CRC 校验计算

一、简介

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。

其根本思想就是先在要发送的帧后面附加校验码,再发送给接收端。校验码要使所生成的码能与发送端和接收端共同选定的某个特定数整除(模2除)。到达收端后,再把接收到的新帧除以这个选定的除数。结果应该是没有余数,如果有余数,则表明该帧在传输过程中出现了差错。

二、计算例子

现假设选择的CRC生成多项式为G(x)=x^4+x^3+1,要求出二进制序列10110011的CRC校验码。下面是具体的计算过程:

①将多项式转化为二进制序列,由G(x)=x^4+x^3+1可知二进制一种有五位,第4位、第三位和第零位分别为1,则序列为11001

②多项式的位数位5,则在数据帧的后面加上5-1位0,数据帧变为101100110000然后使用模2除法除以除数11001,得到余数。

③将计算出来的CRC校验码添加在原始帧的后面,真正的数据帧为101100110100再把这个数据帧发送到接收端。

④接收端收到数据帧后,模2除11001,验证余数是否为0,如果为0,则说明数据帧没有出错。

参考文章:

CRC校验原理及步骤

(转载于上文,如有侵权请及时联系删除)

猜你喜欢

转载自blog.csdn.net/weixin_39731083/article/details/81201610