数据通信系统的基本任务是高效率无差错地传送数据,但在任何一种通信线路上都不可避免地存在一定程度的噪声。信道噪声所造成的后果是使得接收端接收到的数据和发送端所发送的数据不一致,即造成传输差错。循环冗余校验码(CRC码)是普遍采用的一种差错检验方法。

16位的CRC校验码的检错原理如下:

首先把待发送的二进制数据(设为n位)看作多项式

p(x)=anxn+an-1 xn-1 ++a1x+a0

若发送数据的第i位为1,则ai1,否则ai取值为0

然后用一个预先取定的多项式qx=x16+x12+x5+1作为除式,p(x)乘以qx)的最高次幂x16 anxn+16+an-1 xn+15 ++a1x17+a0 x16)作为被除式,得到商m (x)和余式n(x),将余式转换为16位二进制数,附在待发送数据后作为CRC码,与原数据一起发送。(如图1-18所示)

当接收方收到n+16位数据后,生成对应的多项式,并除以相同的q(x)。如果余数为0,则表示没有差错,否则,发回差错信息给发送方,要求重传。


评论

该日志第一篇评论

发表评论

评论也有版权!