奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
为什么同步传输常用奇校验,异步传输常用偶校验?
这个并无校验原理上的规定,只是从工程实现的代价和实现的便利上的考量。
要大致知道同步传输和异步传输的基本工作原理,同步传输是多位数据在同步控制信号的控制下同时从发送端发到接收端;异步传输往往是在收发双方应答控制性信号的作用下逐bit 发送,且发送序列中至少有一高电平的停止位;
如果被传输的数据为全0,此时采用奇校验时,接收端至少会收到1个1,很容易判断确实有传送发生;如果采用偶校验,此时收发双方都是0,不容易判断是否有信号传来。而对于异步传输,因为有停止位的缘故,采用偶校验,接收方也至少能收到1个1,当然,此时采用奇校验也是可以的;
既然对异步传输而言采用奇校验和偶校验都可以,为什么建议采用偶校验? 只要你认真研究奇校验和偶校验的实现电路不难发现,偶校验位的产生直接对待发送的数据依次做异或运算就可以得到,而产生奇校验位还要在偶校验电路的输出取非,相对而言,产生奇校验位的代价高,速度也相对慢(慢一个逻辑门的时延) |