概述
一、CRC校验概念
即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种查错校验码,循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。其特征是信息字段和校验字段的长度可以任意选定。
二、循环冗余校验码(CRC)的基本原理
在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。
三、生成步骤
1、将生成多项式G(X)转换成对应的二进制数。
2、将信息码左移R(R为G(X)的阶)位,相当于给对应的信息多项式M(X)*X^R。
3、用生成多项式(二进制数)对信息码做除,即:(M(X)*X^R)/G(X)得到R位的余数。
4、将余数拼到信息码左移后空出的位置,得到完整的CRC码。
注意事项:
A、生成多项式的最高位和最低位必须为1。
B、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。
C、不同位发生错误时,应该使余数不同。
D、对余数继续做除,应使余数循环。
E、CRC校验码位数 = 生成多项式位数 - 1。
示例1:
示例2:
四、CRC和FCS的区别
1、CRC是一种差错检验方法;
2、FCS是帧校验序列,即冗余码;
3、两者不是同一个概念,FCS是冗余码,它可以通过CRC得到,也可以通过其他差错检测方法得到。
最后
以上就是腼腆火车为你收集整理的循环冗余校验----CRC校验的全部内容,希望文章能够帮你解决循环冗余校验----CRC校验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复