CRC校验原理

CRC校验原理,第1张

CRC校验用于检验数据传输过程中数据是否有错误。CRC的错误检测能力依赖于关键多项式的阶次以及所使用的特定关键多项式。误码多项式E(x)是接收到的消息码字与正确消息码字的异或结果。当且仅当误码多项式能够被CRC多项式整除的时候CRC算法无法检查到错误。

我们传输的信息都可以通过二进制来表示,假设我们传输的信息为1010011,该二进制同时可以用多项式来表示,1010011可以表示为 x^6 + x^4 + x^1 + x^0,该多项式表示对应的二进制码一共6位,第0位,第1位,第4位,第6位为1,其他位为0,即1010011。

生成多项式是校验双方共同约定的一个多项式,在传输过程中,该多项式始终不变。生成多项式的最高位和最低位必须是1,。通常有一些标准的生成多项式,例如:

CRC-4 x4+x+1 3 ITU G.704

CRC-8 x8+x5+x4+1 31 DS18B20

CRC-12 x12+x11+x3+x2+x+1 80F

假设我们约定的生成多项式为CRC-4 x^4+x+1(这个通常自己选择,选择标准的生成多项式即可),转换成二进制编码就是10011。

假设我们传输的数据是1010011,加密过程就是在我们传输数据后面0,然后除以(模2除法)生成多项式的二进制编码,得到的余数即为校验码,最后将校验码附在传输数据的后面即可,最终的传输数据为1010011xxxx。

传输数据补0的个数为生成多项式的位数减1,如上生成多项式为CRC-4时,二进制编码为10011,补0的个数为4个,计算时使用1010011 0000 ,然后除以(模2除法)10011,得到余数为0111,最终我们传输的数据为1010011 0111 。接收方收到1010011 0111 后除以(模2除法)10011,余数为0,即很大概率传输过程中数据是正确的。但如果传输的数据是10100100100,其对10011进行模2除法后,余数也为0,此时是CRC无法校验出错误。CRC校验的精准程度随着选择的多项式的位数越高而越精准,通常意义上,64位比32位更难出现碰撞。

CRC即循环冗余校验码,CRC校验失败可能原因和解决方法如下:

可能是安装包有问题 从新下载个安装包就好了。

2.有错误文件。解决方法:试着在解压时勾选保留错误文件,如果不行的话看看杀毒软件里是不是把这个文件隔离了。

3.可能是硬件原因,比如内存不够。只能换硬件了

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

任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

基本原则

若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得

V(x)=A(x)g(x)=xRm(x)+r(x)

其中: m(x)为K次原始的信息多项式, r(x)为R-1次校验多项式(即CRC校验和),

g(x)称为生成多项式:

g(x)=g0+g1x1+ g2x2+...+g(R-1)x(R-1)+gRxR

发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。

crc校验码的计算方法:

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

2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。

例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

注意事项

是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。

在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接收方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。

应满足以下条件:

1、生成多项式的最高位和最低位必须为1。

2、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。

3、不同位发生错误时,应该使余数不同。

4、对余数继续做除,应使余数循环。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6720021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存