赞
踩
1、CRC(循环冗余校验)概述
CRC(循环冗余校验)是一种编码技术,主要作用是确保传输的数据准确无误。
2、CRC编码原理
CRC编码采用多项式除法的原理,将要传输的信息除以一个预先确定的多项式,得到的余式就是所需的CRC检验码。
假设需要发送的信息为1000_0000,CRC生成多项式为g(x) = x^8+x^2+x+1(二进制序列为1_0000_0111)。
1、依据CRC生成多项式可知CRC校验码的位宽为(8=9-1)。
2、初始化CRC校验码的值为0,并将其添加到信息后,使信息序列转换为1000_0000_0000_0000。
3、依据“模2运算法”计算CRC校验码,计算步骤如下图所示。每次计算都是消除高次项,然后移入新的数据,再进行下一次计算,直到所有的数据计算完成。
生成多项式 | __________1_0_0_0_0_0_1_1 | 商 |
100000111 | 1000_0000_0_0_0_0_0_0_0_0 | |
1000_0011_1 | ||
_000_0011_1_0 | 余数 | |
_000_0000_0_0 | ||
__00_0011_1_0_0 | 余数 | |
__00_0000_0_0_0 | ||
___0_0011_1_0_0_0 | 余数 | |
___0_0000_0_0_0_0 | ||
_____0011_1_0_0_0_0 | 余数 | |
_____0000_0_0_0_0_0 | ||
______011_1_0_0_0_0_0 | 余数 | |
______000_0_0_0_0_0_0 | ||
_______11_1_0_0_0_0_0_0 | 余数 | |
_______10_0_0_0_0_1_1_1 | ||
________1_1_0_0_0_1_1_1_0 | 余数 | |
________1_0_0_0_0_0_1_1_1 | ||
__________1_0_0_0_1_0_0_1 | 余数 |
4、CRC计算步骤描述。
如上图所示,其计算结果可以描述为如下:
1、初始化crc寄存器的值为1000_0000。
2、检测crc寄存器的最高位是否为1;
crc[15]=1;crc = (crc<<1 )^ g(x);
crc[15]=0;crc = crc<<1;
3、一直循环8次后,输出CRC校验码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。