基于UART传输的数据完整性校验

UART硬件上支持对每一字节帧数据进行奇偶检验,但在底层使用 UART 进行数据传输时,数据传输层的完整性校验需结合UART 的硬件特性(仅支持简单奇偶校验) 和传输层的软件校验机制,以弥补 UART 硬件校验能力的不足(奇偶校验仅能检测 1 位错误,无法纠错、无法检测多 bit 错误或突发错误)。

一、奇校验和偶校验

校验类型 核心规则 适用场景
偶校验(Even) 数据位 + 校验位的总 bit 数为 “偶数” 通用场景,多数默认选择
奇校验(Odd) 数据位 + 校验位的总 bit 数为 “奇数” 需与偶校验区分的特殊通信协议

示例:若传输 1 字节数据0x12(二进制00010010,含 2 个 “1”):

  • 偶校验:需补充 1 位 “0”,使总 “1” 的个数为 2(偶数),最终数据帧含 9bit(8 数据位 + 1 校验位);
  • 奇校验:需补充 1 位 “1”,使总 “1” 的个数为 3(奇数),最终数据帧含 9bit。

纠错能力:仅能检测 “1 位错误”,无法检测 “2 位及以上同时翻转” 的错误

二、基础校验:校验和(Checksum)

1. 原理

通过对传输数据的所有字节进行累加 / 异或运算,生成 1 字节或 2 字节的 “校验和”,随数据帧一起发送;接收方对收到的数据重复相同运算,若结果与校验和一致,则认为数据完整。常见类型:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值