0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

这个CRC计算单元是如何基于固定的生成多项式(0x4C11DB7)来获取给定数据缓冲区的CRC码的?

丙丁先生的自学旅程 来源:丙丁先生的自学旅程 作者:丙丁先生的自学旅 2024-05-16 16:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CRC(循环冗余校验)是一种根据数据产生简短固定位数校验码的常用方法,主要用来检查数据传输或者保存后是否有错误。CRC计算单元的工作过程如下:
1. 首先,CRC计算单元会初始化一个寄存器(通常是一个32位或64位的寄存器),初始值是生成多项式(在这个问题中是0x4C11DB7)。
2. 然后,CRC计算单元会逐位处理输入的数据缓冲区。对于每一个数据位,它都会将寄存器的当前值与这一位进行异或操作。
3. 如果结果的最高位(第31位或第63位)是1,那么CRC计算单元就会将寄存器与生成多项式进行模2除法,并将余数保留在寄存器中。
4. 这个过程会持续到所有的数据位都被处理完。最后,寄存器中的值就是CRC码。

注意,这个过程中的关键步骤就是异或操作和模2除法,它们都是计算机科学中的基本操作。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5589

    浏览量

    129069
  • crc
    crc
    +关注

    关注

    0

    文章

    205

    浏览量

    30624
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    硬件循环冗余校验(CRC)模块介绍

    CRC是一种错误检测,用于检测数据传输或存储中的意外更改。它通过对数据应用特定的算法生成一个固定
    发表于 11-21 07:39

    飞凌嵌入ElfBoard-标准IO接口之设置缓冲区

    文件默认采用全缓冲模式。 size:指定缓冲区的大小。 4)返回值 成功返回0,失败将返回一个非0值,并且会设置errno
    发表于 11-14 09:02

    CRC校验的原理和应用

    = 商 ... 余数 → 余数 = CRC。 接收方用同样的多项式去除接收到的数据(含CRC),余数为
    发表于 11-14 06:48

    CRC校验的本质和物理意义

    01 多项式:x^16 + x^15 + x^2 + 1 通过多项式长除法计算得到的余数即为
    发表于 11-13 07:58

    8种常用的CRC算法分享

    CRC 计算单元可按所选择的算法和参数配置来生成数据流的 CRC 。有些应用中,可利用
    发表于 11-13 07:25

    RVMCU课堂「19」: 手把手教你玩转RVSTAR—CRC计算

    寄存器CRC_DATA 固定CRC计算多项式0x4C11DB7,与以太网
    发表于 10-30 07:49

    查找表与多项式近似算法实现初等函数

    查找表与多项式近似结合算法是一种把查找表算法和多项式近似算法综合到一起的算法。这种算法综合了两种基本算法各自优势,通过将多项式各项系数存入查找表提高计算效率。
    发表于 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)计算单元

    本篇文章介绍了CRC(循环冗余校验),其计算单元CRC-32多项式,32位数据寄存器,
    的头像 发表于 05-29 11:00 932次阅读
    第十八章 浅谈循环冗余校验(<b class='flag-5'>CRC</b>)<b class='flag-5'>计算</b><b class='flag-5'>单元</b>

    想从linux系统读回CYC65215部件的配置程序映像,并检查其CRC是否正确(假设它有附加 CRC),图像有CRC吗?

    我想从 linux 系统读回 CYC65215 部件的配置程序映像,并检查其 CRC 是否正确(假设它有附加 CRC)。图像有 CRC 吗? CRC 是否使用标准
    发表于 05-23 06:22

    求助,关于ad7616序列器模式+crc的两个问题求解

    我在使用序列器模式+CRC时,发现只有序列器最后一组 通道会出crc数据,比如序列器配置为2组数据,第二组数据出来后会跟出
    发表于 04-15 08:23

    FreeRTOS进阶使用之流缓冲区:高效处理字节流的秘密武器

    工具,通过合理设置触发阈值和缓冲区大小,可显著提升系统性能。实际开发中需注意多核同步、阻塞策略及数据格式设计,必要时结合消息缓冲区实现更复杂的通信需求。掌握这一机制,将助你在嵌入开发
    发表于 03-24 11:37

    基于Verilog语言实现CRC校验

    CRC即循环冗余校验:是数据通信领域中最常用的一种查错校验,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种
    的头像 发表于 03-24 10:36 2185次阅读
    基于Verilog语言实现<b class='flag-5'>CRC</b>校验

    RTOS的流缓冲区机制解析

    SAFERTOS中的流缓冲区(Stream buffer)机制,可以实现任务到任务或中断到任务之间的通信。字节流是由发送方写入缓冲区,接收方读取缓冲区数据。流
    的头像 发表于 02-14 11:33 976次阅读
    RTOS的流<b class='flag-5'>缓冲区</b>机制解析