嵌入式系统/奇偶校验

维基教科书,自由的教学读本
维基百科中的相关条目:

在很多情况下,尤其是在传输中,一定量的错误检查信息是非常重要的。这样能保证错误信息能够被辨别、忽略,重新发送新的信息。奇偶校验(Parity)是最简单的校验方法之一,可分为奇校验(Odd Parity)和偶校验(Even Parity)。奇偶校验能够检查每个字节信息的组成,判断它是正确或错误的。

奇偶校验广泛应用于计算机的信息传输和存储中。UART自带奇偶校验功能,但其他协议需要手动配置

原理[编辑]

在1个字节(Byte)中,有8个二进制位(bit)。其中7个位是需要传输/存储的数据,剩下1个位是校验信息。校验信息位的值随其余7个位的值而变化,使各位之和总是奇数,或总是偶数。校验位在传输/存储之前被确定,添加到字节当中。如果接收或者读取的字节的奇偶性与规定不同,则判断信息是错误的,反之则说明信息正确。

分类[编辑]

奇校验[编辑]

位和为奇数的校验方法。

偶校验[编辑]

位和为偶数的校验方法。

局限[编辑]

由于奇偶校验只是将位和的奇偶作为检验标准,这种方法能检验出错误,却不能保证通过奇偶校验的数据都是正确的。比如,1个字节中有2位或4位发生了错误,那么奇偶性依然保持不变,被视为正确。

若每一位上发生错误的概率是P,则在一个字节中发生2位错误的概率是。在数字电子设备中,P小于百分之一,那么产生2位错误的概率至多不到千分之三。产生4、6、8位错误的概率则指数递减。

计算概率可以知道,在错误率很低的情况下,发生2位错误的概率小于1%,属于小概率事件。因此在一定程度上,奇偶校验能够避免绝大多数错误。但对于高精密设备,依旧无法满足苛刻的要求,需要更高级的校验方法。