CRC(循环冗余校验)是一种根据数据产生简短固定位数校验码的常用方法,主要用来检查数据传输或者保存后是否有错误。CRC计算单元的工作过程如下:
1. 首先,CRC计算单元会初始化一个寄存器(通常是一个32位或64位的寄存器),初始值是生成多项式(在这个问题中是0x4C11DB7)。
2. 然后,CRC计算单元会逐位处理输入的数据缓冲区。对于每一个数据位,它都会将寄存器的当前值与这一位进行异或操作。
3. 如果结果的最高位(第31位或第63位)是1,那么CRC计算单元就会将寄存器与生成多项式进行模2除法,并将余数保留在寄存器中。
4. 这个过程会持续到所有的数据位都被处理完。最后,寄存器中的值就是CRC码。
注意,这个过程中的关键步骤就是异或操作和模2除法,它们都是计算机科学中的基本操作。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
寄存器
+关注
关注
31文章
5440浏览量
124963 -
crc
+关注
关注
0文章
204浏览量
30170
发布评论请先 登录
相关推荐
热点推荐
求助,关于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
想从linux系统读回CYC65215部件的配置程序映像,并检查其CRC是否正确(假设它有附加 CRC),图像有CRC吗?
我想从 linux 系统读回 CYC65215 部件的配置程序映像,并检查其 CRC 是否正确(假设它有附加 CRC)。图像有 CRC 吗? CRC 是否使用标准
发表于 05-23 06:22
求助,关于3014的缓冲区设置疑问求解
和数量改为34kb,6。rgb24 1080p@60fps无法出图?
dma缓冲区大小和数量是否有什么说法吗?需要对应?
fx3可用的dma大小为多少?
根据usbcap抓取数据以及demo来看
发表于 05-06 13:42
求助,关于ad7616序列器模式+crc的两个问题求解
我在使用序列器模式+CRC时,发现只有序列器最后一组
通道会出crc数据,比如序列器配置为2组数据,第二组数据出来后会跟出
发表于 04-15 08:23
FreeRTOS进阶使用之流缓冲区:高效处理字节流的秘密武器
工具,通过合理设置触发阈值和缓冲区大小,可显著提升系统性能。实际开发中需注意多核同步、阻塞策略及数据格式设计,必要时结合消息缓冲区实现更复杂的通信需求。掌握这一机制,将助你在嵌入式开发
发表于 03-24 11:37
L9663如何使用上行缓冲区发送同步脉冲?
我根据L9663 Datasheet这个手册,想使用这个配置“通过带有上行数据缓冲区的SPI触发。微控制器发送相应的SPI命令以发送同步脉冲。然后,同步脉冲触发发生器根据上行
发表于 03-13 08:15
求助,关于ADS125H02数据通讯格式及CRC校验问题求解
of the initial data.
第1条中,将所有数据“左移扩展为40bit,最右边用1补齐”,与传统的crc计算方法不一致,传统的计算方法是在
发表于 12-03 06:54
单片机中的几种环形缓冲区的分析和实现
单片机中的几种环形缓冲区的分析和实现一、简介环形缓冲区(RingBuffer)是一种高效的使用内存的方法,它将一段固定长度的内存看成一个环形结构,用于存储数据,能够避免使用动态申请内存

评论