fpga_feixiang 发表于 2020-5-30 15:58:37

CRC算法背景

1.  几个基本的概念

1)  帧检测序列FCS(Frame CheckSequence):为进行差错检验而添加的冗余码。

2)  多项式模2除法:不考虑进位、错位的二进制加减法;

3)  生成多项式:当进行CRC检验时,发送方和接受方事先约定一个除数,即生成多项式G(x),常用的CRC码的生成多项式为:

CRC8=X8+X5+X4+1

CRC-CCITT=X16+X12+X5+1

CRC16=X16+X15+X5+1

CRC12=X12+X11+X3+X2+1

CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1

每一个生成二项式与一个二进制序列对应,如CC8对应的二进制序列为:100110001。

2.  CRC校检码的计算

设信息字段为K位,校验字段为R位,则码字长度为N(N=K+R)。设双方事先约定了一个R次多项式g(x),则CRC码:

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

其中:   m(x)为K次信息多项式, r(x)为R-1次校验多项式。

这里r(x)对应的代码即为冗余码,加在原信息字段后即形成CRC码。

r(x)的计算方法为:在K位信息字段的后面添加R个0,再除以g(x)对应的代码序列,得到的余数即为r(x)对应的代码(应为R-1位;若不足,而在高位补0)
————————————————

zxopenhl 发表于 2020-5-30 16:10:07

CRC算法背景

zhangyukun 发表于 2020-5-30 18:07:28

CRC算法背景

大鹏 发表于 2022-3-23 09:50:31

CRC算法背景
页: [1]
查看完整版本: CRC算法背景