原创 CRC校验

2009-5-9 14:48 3450 9 9 分类: MCU/ 嵌入式

CRC循环冗余校验是将输出的数据左移N位(N是多项式的位数如:CRC-16那么N=16)异或一个多项式后得到的最终数据在加载到移位后的数据末尾这样就完成了CRC校验码。


接收后解开数据与计算校验码一样,将接收到的数据(不用左移了)异或多项式最终得到的数位0 说明传输正常。


例:CRC-4 采用的多项式y(x)=x4+x2+1;x=2;y(x)=19;


将数据转换位二进制数:19=10011;原数据:0X45=01000101;


010001010000


  10011   异或时记住高位必要位1


  00010010000


       10011000


       00001000


得到的校验码就是8;


现在将码解开判断是否为零


010001011000


  10011


  00010011000


       10011000


       00000000


得到的数位0 说明数据正常。

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条