(1)奇偶校验
在发送数据时,数据位之后的1位称为奇偶校验位。奇校验时,数据中“1”的个数与在验位“1”的个数之和应为奇数。偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。
接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。奇偶检验只能检验出单个位数出现错误的情况。
例如,数据位为8位,传输内容为00110101,数据中有4个1。如果采用奇校验,则校验位应为1,以保证数据位和校验位中“1”的个数之和为奇数。如果采用偶校验,则校验位应为0,以保证数据位和校验位中“1”的个数之和为偶数。校验位的产生一般由硬件自动完成,用户只需要使能相应的控制位即可。
(2)代码和校验
代码和校验是发送方将所有要发送的数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方在接收数据的同时,对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符表示传输正常,不相符表示传输过程中出现了差错,需要重新发送。
(3)循环冗余校验
循环冗余校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于磁盘信息的传输以及存储区的完整性校验等场合。
【STM32】串行通信的错误校验
最新推荐文章于 2025-04-27 12:36:57 发布