CRC(循环冗余校验)是一种根据数据产生简短固定位数校验码的常用方法,主要用来检查数据传输或者保存后是否有错误。CRC计算单元的工作过程如下:
1. 首先,CRC计算单元会初始化一个寄存器(通常是一个32位或64位的寄存器),初始值是生成多项式(在这个问题中是0x4C11DB7)。
2. 然后,CRC计算单元会逐位处理输入的数据缓冲区。对于每一个数据位,它都会将寄存器的当前值与这一位进行异或操作。
3. 如果结果的最高位(第31位或第63位)是1,那么CRC计算单元就会将寄存器与生成多项式进行模2除法,并将余数保留在寄存器中。
4. 这个过程会持续到所有的数据位都被处理完。最后,寄存器中的值就是CRC码。
注意,这个过程中的关键步骤就是异或操作和模2除法,它们都是计算机科学中的基本操作。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
寄存器
+关注
关注
31文章
5623浏览量
130626 -
crc
+关注
关注
0文章
206浏览量
31003
发布评论请先 登录
相关推荐
热点推荐
【量产烧录】Verify通过还报错?拆一次CRC校验的实现机制就明白问题在哪
+内核的MCU,采用I2C BSL方式烧录。开发一套烧录工具时,CRC算法完全参照官方BSL协议文档实现,本地计算结果与芯片返回的CRC始终对不上。
换了地址范围,换
发表于 02-13 10:10
飞凌嵌入式ElfBoard-标准IO接口之设置缓冲区
文件默认采用全缓冲模式。
size:指定缓冲区的大小。
4)返回值
成功返回0,失败将返回一个非0值,并且会设置errno
发表于 11-14 09:02
查找表与多项式近似算法实现初等函数
查找表与多项式近似结合算法是一种把查找表算法和多项式近似算法综合到一起的算法。这种算法综合了两种基本算法各自优势,通过将多项式各项系数存入查找表提高计算效率。
发表于 10-28 08:10
求助,关于TC39x使用Fce_crc在特定PFlash范围内进行CRC32校验失败的问题求解
上使用 Fce_crc 时会出现一致的 CRC32 失败 :
0x80000000 – 0x802FFFFF
0x80C00000 –
发表于 08-01 07:47
请问USB缓冲区取数据可以多次取吗?
在使用USB软件获取数据是,下位机给我发送了13个32位数据到USB IN缓冲区,为什么我调用API函数想要第一次取1个32位数据,取完之后
发表于 07-16 08:12
这个CRC计算单元是如何基于固定的生成多项式(0x4C11DB7)来获取给定数据缓冲区的CRC码的?
评论