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 字节的 “校验和”,随数据帧一起发送;接收方对收到的数据重复相同运算,若结果与校验和一致,则认为数据完整。常见类型:

最低0.47元/天 解锁文章
3399

被折叠的 条评论
为什么被折叠?



