首页 > 其他分享 >CRC循环冗余校验码

CRC循环冗余校验码

时间:2024-01-13 12:45:44浏览次数:33  
标签:校验位 多项式 校验码 发送 CRC 余数 接收 冗余

循环冗余校验

"冗余"为什么能检验?

  • 数据传输过程中不能保证所有的位数都是正确的,由于电磁干扰会产生错误,假设传输过程中最多只有1位是传输错误的,并且不需要检验出具体哪一位出现错误,只需要考虑检验数据存在错误即可

不添加校验码

  • 最简单的情况是发送方只发送了一位数据,接收正确为1,接收错误为0
  • 接收方接收到1,可能是发送发送1,被正确接收或者是发送方发送0,出现错误
  • 接收方接收到0,可能是发送发送0,被正确接收或者是发送方发送1,出现错误
  • 怎么进行判断数据传输错误? 增加一位不含信息的数据进行辅助校验

添加校验码

  • 发送方想要发送1,此时添加一位校验位1,发送方会发送11
  • 接收方接收到10,01都表示出现错误

循环如何进行检验?

  • 前面知道校验的可行性,将发送1位数据扩展到n位如何进行考虑检验?
  • 不恰当的想法:发送一个数据的时候,发送两遍,第一遍表示数据,第二遍进行检验,但是这样在发送大量数据的时候,会浪费很多空间

模2除法

  • 首先取与除数相同的位数,看首位是不是够减,够减写1,不够减写0

检验方法

  • 事先通过网络协议规定好一个除数(比如11001),通过待校验的数据除以除数,用得到的余数进行校验;余数为0表示传输正确,余数不为0表示传输错误

例题

CRC计算示例1

CRC keywords

  • 信息码 - 校验的码值,原编码 101001
  • 生成多项式 - G(x) = x3+x2+1
  • 校验位 - 是CRC的长度,根据G(x)最高次幂确定,这里最高位为3,所以校验位是3
  • 多项式对应的二进制数 - 多项式会生成一个二进制数,将其中的每一项,从高次到低次进行排列,将每一项的系数进行提取,就是多项式的二进制数
  • 余数 - 经过除法取模之后得到数,作为真正的校验位

求解过程

  • 找到CRC keywords
  • 余数 - 联合校验位对于信息码进行拼接,拼接三位校验位(用0补充),对多项式二进制数进行除法运算
  • 这里得到的余数是1,真正的余数是001
  • CRC校验码就是(信息码+余数):101001001

CRC 计算实例2

  • 知道多项式二进制数10011和信息码10101011,求CRC?
  • 反推出多项式,得到校验位是4
  • 进行拼接,比较,异或运算

参考视频:https://www.bilibili.com/video/BV1tZ4y117Lj/?spm_id_from=333.337.search-card.all.click&vd_source=96e5e43be309416df48eb06a75ad2f96

标签:校验位,多项式,校验码,发送,CRC,余数,接收,冗余
From: https://www.cnblogs.com/Icer-newer/p/17962135

相关文章

  • 网卡冗余性测试脚本
    #!/bin/bash#检查是否提供了足够的参数if["$#"-ne2];thenecho"Usage:$0<interface_name><gateway_address>"exit1fi#获取参数INTERFACE_NAME="$1"GATEWAY="$2"#检查网关的可达性echo"正在检查网关$GATEWAY的......
  • 应用于指纹门锁上的安全芯片ACM32FP421系列,内核性能高,安全性高,内建 AES、CRC、TRNG 等
     ACM32FP421芯片的内核基于ARMv8-M架构,支持Cortex-M33和Cortex-M4F指令集。内核支持一整套DSP指令用于数字信号处理,支持单精度FPU处理浮点数据,同时还支持MemoryProtectionUnit(MPU)用于提升应用的安全性。内核性能高于ARMv7-M架构的M4F20%。ACM32FP421系列芯......
  • Mac—Scrcpy在Macbook上实现同屏/多屏协同操作安卓手机界面(支持 Win、Mac、Linux)
    1、效果展示:就在那么一瞬间,就成功弹出了手机界面,真的是激动又兴奋,真的很有成就感耶~而且,不单单是投屏,是协同投屏/同屏,电脑端也可以操控手机啦~ 2、背景介绍投屏功能已经满足不了现有需求了,投屏,只是把手机界面投屏到电脑上,但是,不能在电脑端操作手机界面。而且,隔壁华为的手机+......
  • 工业交换机的冗余电源设计
    在市场上,尤其是在工业级交换机上,我们经常能看到一个支持冗余电源的选项。在大多数工业现场中,我们都知道网络的稳定性是非常关键的。而且,像光伏和煤矿这样的行业经常位于偏远地区,环境条件恶劣。因此,在选择使用交换机时,必须考虑解决电源供电的问题。这是因为一旦电源断电,交换机或其他......
  • CRC-Aided Sparse Regression Codes for Unsourced Random Access
    一、摘要随记仅用于个人对论文的分析、初步复现。1.1文件夹介绍随机包含了一篇论文的仿真结果的源代码,该论文的标题是"CRC-aidedSpareRegressionCodesforUnsourcedRandomAccess"。源代码CRC-aided_SPARCs_for_URA-main,一共包括三个文件夹:"CRC-BMSTcodesforst......
  • 突然想到了一个办法针对枚举可以解决一些常量的冗余写法
      {"commodityCode":"Code测试","userId":"1","count":1000,"money":9}!财经网讯实际情况!财经网讯excel里面给的??财经网评论实际情况?财经网评论excel里面给的到财财内容like'%?财经网讯%'内容like'%?......
  • SCConv:用于特征冗余的空间和通道重建卷积
    SCConv:用于特征冗余的空间和通道重建卷积摘要卷积神经网络(CNN)在各种计算机视觉任务中取得了显着的性能,但这是以巨大的计算资源为代价的,部分原因是卷积层提取了冗余特征。最近的工作要么压缩训练有素的大型模型,要么探索精心设计的轻量级模型。在本文中,我们尝试利用特征之间的空间......
  • CRC校验计算
    循环冗余校验(英语:Cyclicredundancycheck,通称“CRC”)是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正......
  • 财贸双全清除系统冗余数据
    管家婆财贸双全清除冗余数据deletefromt_cw_dlyndxwheredraft<>2deletefromt_cw_dlyndxwherevchcodenotin(selectvchcodefromt_cw_dly)TRUNCATETABLEt_CW_bakdlyTRUNCATETABLEt_cw_bakdlysup--TRUNCATETABLET_CW_Dlysup--(里面是支付方式,财务版本里面最......
  • ccrc 评审资料该如何编写【通用型】
    核心思路:各个过程中和安全检查内容进行对应首先应该有信息安全服务规范其次准备好平时项目的所有文档第三,参照规范内容,每一项要求【准备、需求、设计、编码、测试、验收、维保】在原有文档上进行筛选和补充第四,整体检查(计划和其他文件之间的关联性)......