当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]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的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0),

  之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后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(12位) =X12+X11+X3+X2+X+1

  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,0 XOR 1=1,即相同为0,不同为1)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文中,小编将对无线模块予以介绍,如果你想对无线模块的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 无线模块 寄存器 处理器

计算机网络编程中一个非常基本的问题:该怎样表示client与server之间交互的数据,在往下看之前先想一想这个问题。

关键字: 计算机 二进制

最经典的2DFF 1-bit同步器如下,下图结构通常用于单bit控制信号的异步处理:

关键字: 异步电路 寄存器

(全球TMT2022年8月30日讯)近日,浪潮M6服务器的带外管理模块固件BMC获得了由中国网络安全审查技术与认证中心发布的IT产品信息安全认证EAL4证书,这表明浪潮M6系列服务器在产品及信息安全保障方面均获得顶级认...

关键字: 信息安全 网络安全 ASSURANCE CRC

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等...

关键字: 单片机 寄存器

dsPIC33CH/dsPIC33CK系列数字电源控制器芯片,在目前诸多典型应用中都得到了广泛使用。在闭环控制中,尤其是电压模式控制中,对PWM数据寄存器进行实时更新是必要的一个动作,本文主要就这一话题做一些分析和讨论

关键字: 数字电源控制器 寄存器

中国,北京 – 2022年5月5日 – Analog Devices, Inc.(Nasdaq:ADI)推出新一代16至24位超高精度逐次逼近寄存器(SAR)模数转换器(ADC)系列产品,可简化仪器仪表、工业和医疗健康应...

关键字: ADI 模数转换器 寄存器

外部数据总线是中央处理器CPU(Central Processing Unit)的一部分,是CPU与外部数据传输的通道。外部数据总线一次可传输二进制数据的位数越大,CPU与外部交换数据的能力越强。

关键字: 外部数据线 CPU 二进制

星标「嵌入式大杂烩」,一起进步!链接:https://www.cnblogs.com/jozochen/p/8541714.html一、问题复现稳定复现问题才能正确的对问题进行定位、解决以及验证。一般来说,越容易复现的问...

关键字: 嵌入式开发 函数 代码 寄存器

文|周立功日期|2021年11月29日ZLG致远电子创始人周立功你用的mcu涨价了,这还不是最坏的结果。过去20多年里芯片涨价,半年后基本上都会缓和下来。今年不一样,接近年底了,还没有任何迹象表明明年何时恢复供应,很多企...

关键字: MCU 寄存器 软件开发 CK

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭