请问什么是CRC校验码

如题所述

Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error

Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。

根据应用环境与习惯的不同,CRC又可分为以下几种标准:

①CRC-12码;

②CRC-16码;

③CRC-CCITT码;

④CRC-32码。

CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT码则用是来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。CRC-32码大都被采用在一种称为Point-to-Point的同步传输中。

下面以最常用的CRC-16为例来说明其生成过程。

CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。

下面为CRC的计算过程:

1.设置CRC寄存器,并给其赋值FFFF(hex)。

2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。

4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。

5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。

6.重复第2至第5步直到所有数据全部处理完成。

7.最终CRC寄存器的内容即为CRC值。

 常用的CRC循环冗余校验标准多项式如下:

  CRC(16位) = X16+X15+X2+1

  CRC(CCITT) = X16+X12 +X5+1

  CRC(32位) = X32+X26+X23+X16+X12+X11+X10+ X8+X7+X5+X4+X2+X+1

  以CRC(16位)多项式为例,其对应校验二进制位列为1 1000 0000 0000 0101。

  注意:这儿列出的标准校验多项式都含有(X+1)的多项式因子;各多项式的系数均为二进制数,所涉及的四则运算仍遵循对二取模的运算规则。

 (注:对二取模的四则运算指参与运算的两个二进制数各位之间凡涉及加减运算时均进行XOR异或运算,即:1 XOR 1=0,0 XOR 0=0,1 XOR 0=1)
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-04-21

CRC校验是什么?
CRC校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能。可以对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。CRC校验中有两个关键点,一是预先...

CRC是什么意思?
CRC意思是循环冗余码校验。校验原理:(M-R)\/G=Q+0\/G 说明:以接收到的校验码除以约定的除数,若余数为0,则可认为接收到的数据是正确的。例:有效信息1101,生成多项式样1011 循环校验码解:有效信息1101(k=4),即M(x)=x3+x2+x0,生成多项式1011(r+1=4,即r=3);即G(x)=x3+...

什么是CRC校验码?
CRC即循环冗余校验码,CRC校验失败可能原因和解决方法如下:1、可能是安装包有问题 从新下载个安装包就好了。2、有错误文件。解决方法:试着在解压时勾选保留错误文件,如果不行的话看看杀毒软件里是不是把这个文件隔离了。3、可能是硬件原因,比如内存不够。只能换硬件了 校验原理 系统内部预先设置根据...

什么是CRC校验码?有何注意事项?
1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+...

CRC校验是什么意思啊?
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体...

crc数据是什么意思?
CRC 数据是指循环冗余校验码,是用于检测和校验数据传输过程中是否发生错误的一种方式。在数据传输过程中,可能会因为噪声、干扰、信号损耗等原因导致数据出现错误,而 CRC 数据可以通过算法计算出数据的校验值,从而保证数据的完整性和正确性。CRC 数据在计算机网络和通信领域中广泛应用。在数据传输过程中,...

请问什么是CRC校验码
Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。根据应用环境与习惯的不同,CRC又可分为以下几种标准:①CRC...

什么是CRC校验?这是加密解密中看到的. BY: Pedoc.
CRC即 循环冗余校验码 (Cyclic Redundancy Check):是 数据通信 领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

crc是什么意思
CRC(Cyclic Redundancy Check),即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。CRC也就是循环冗余校验码,是计算机网络通信领域常用...

信道编码——CRC校验
CRC,即循环冗余校验码,用于确保数据在传输过程中的完整性。发送时,原始的K位二进制数据A会被附加一个R位检验序列B,形成总长度为K+R的序列C。接收端会通过校验多项式G(x)进行运算,无误则结果为0,否则不为0,从而检测出可能的错误。帧检验序列FCS是CRC的一部分,用于数据差错检测,其生成过程是...

相似回答