1、CRC原理:
2、CRC校验码的计算示例:
除数是随机数或按标准选定,CRC的关键是如何求出余数(CRC校验码)。假设选择的CRC生成多项式为G(x)=x^4+x^3+1 要求计算出二进制的序列10110011的CRC校验码。
(1)、
将多项式转为二进制数,由G(x)=x^4+x^3+1得知,一共5位(总位数=最高位的幂次+1,即4+1=5)根据多项式的含义(多项式只列出二进制值为1的位,也就是这个二进制的第4位、第3位、第0位的二进制均为1,其它位均为0,所有二进制的比特串(除数)为11001
(2)、
A.原数帧:10110011
B.除数:11001 (5位数)
C.新数帧:在原数据帧后面补上(除数总位数-1个)0 ----> 10110011 0000
D.CRC校验码:C/B的余数,余数的位数只能比B少一位不够在左边补0,------> 10110011 0000/11001 = 100(这里只有三位,所以需要在100左边补0为 0100)
E.新发送帧:在A后面加上D(10110011 0100), 接收端收到E,使用E/B看是否有余数,如果没有余数则表明该帧在传输过程中没有出错,否则出了差错 -----> 10110011 0100/11001 =10101000余数为0