当前位置: 首页 > news >正文

循环冗余校验CRC

循环冗余校验(Cyclic Redundancy Check, CRC)是一种广泛应用于数字通信和存储系统中的检错码技术。其核心原理是在待发送的数据末尾附加若干位冗余码(FCS,帧检验序列),使得到的新数据能够被一个预先选定的除数整除。接收端用相同的除数除以接收到的数据,若余数为零,则认为数据在传输过程中未发生错误;否则,判定数据出错。CRC以强大的检错能力和高效的硬件实现著称,是计算机网络(如以太网)、存储介质(硬盘、光盘)及众多通信协议中的标准检错方案。


一、CRC的核心原理

1.1 基本原理框图

设待发送的原始数据为二进制序列 M,其长度为 k 位。收发双方预先约定一个长度为 r+1 位的生成多项式(除数)G

发送端执行如下步骤:

  1. 在原始数据 M 末尾添加 r 个 0,得到 M * 2^r(相当于左移 r 位)

  2. 用模2除法(即异或运算)计算 M * 2^r 除以 G 的余数 R

  3. 将 R 作为冗余码附加到原始数据 M 后,构成最终发送的帧 T = M * 2^r + RM 的长度为 k 位,R 的长度为 r 位,T 的长度为 k + r 位

接收端收到数据后,用同一个除数 G 除以接收到的数据 T'。若余数为 0,则判定数据无错;若余数不为 0,则判定数据在传输过程中发生了错误。

1.2 模2除法(多项式除法)

模2除法是CRC运算的基础,其特点如下:

  • 减法和加法等价,都等同于按位异或(XOR)操作

  • 不产生进位或借位

  • 每一步比较被除数的最高位和除数的最高位,若被除数当前最高位为1,则商1并执行异或操作;若为0,则商0并直接跳过

模2除法计算示例:计算101101除以1101

text

1 1 1 0 0 1 (商) _______________ 1101 | 1 0 1 1 0 1 1 1 0 1 -------(异或) 1 1 0 0 1 1 0 1 ------- 0 0 1 0 1 1 1 0 1 ------- 1 0 0 0 1 1 0 1 ------- 1 0 1

运算结果:余数为101

二、生成多项式的选择

生成多项式 

http://www.jsqmd.com/news/740752/

相关文章:

  • 中国企业的DevOps工具链选型:本土化与安全的双重考验
  • B站视频永久保存专业指南:m4s-converter快速转换工具完整教程
  • 拆解ASPICE认证5个等级:从‘能做出来’到‘持续创新’,你的团队卡在哪一级?
  • 如何轻松为Windows添加HEIC缩略图预览?5分钟高效解决方案!
  • Windows右键菜单终极清理指南:5分钟打造高效工作环境
  • Operit:轻量级运维自动化平台部署与实战指南
  • Godot与Bevy ECS融合开发:高性能游戏逻辑与高效编辑器工作流实践
  • SAP BOM批量创建避坑指南:手把手教你用BAPI_MATERIAL_BOM_GROUP_CREATE(附完整ABAP代码)
  • 终极GTA V辅助工具YimMenu完整指南:从新手到高手
  • 2026年4月纪念日布置房间的西双版纳民宿名称,西双版纳民宿/民宿/西双版纳住宿/住宿/西双版纳酒店,西双版纳民宿费用 - 品牌推荐师
  • 仅限首批200名嵌入式安全工程师开放:C语言量子通信终端调试内参(含NSA NIST IR 8403兼容性补丁集与抗侧信道时序攻击加固模板)
  • 微信聊天记录解密终极指南:3分钟掌握WechatDecrypt完整教程
  • 从工具配置到工程能力:掌握CI/CD流水线核心技能与实践指南
  • 大语言模型低比特量化技术解析与实践
  • 如何快速提取Unity Live2D资源:新手友好的完整指南 [特殊字符]
  • 【GitHub】OpenClaw:开源个人AI助手的新标杆
  • 基于向量数据库与LangChain构建智能记忆对话系统:实现无限上下文与成本优化
  • Habitus:基于行为分析自动生成AI助手配置文件的智能工具
  • 无人机轻量级人体姿态估计技术解析与实践
  • Cadence Allegro 16.6保姆级教程:从Gerber到钢网,PCB打样前必须导出的7个文件
  • 使用curl命令直接调用Taotoken的Codex模型进行代码补全
  • 手写笔记终极方案:如何在Obsidian中实现零延迟电子墨水屏体验
  • 别再手动写SUMO车流了!用trip文件+duarouter自动规划路线,效率翻倍
  • 3步轻松管理英雄联盟回放:ReplayBook终极指南
  • 3大核心功能全面解析:Dell G15开源温控软件实战指南
  • 嵌入式C代码可追溯性失效=注册失败?:构建符合FDA 21 CFR Part 11 IEC 62304要求的双向需求-代码-测试追踪链(实战案例全流程)
  • OpenWrt软路由进阶玩法:AdGuard Home + MosDNS v5.3.1 组合拳,打造无广告且智能解析的家庭网络
  • Linux服务器上遇到mpatha设备占用?手把手教你安全停用多路径并释放NVMe硬盘
  • 无网也能用:小白转文字离线语音识别技术优势
  • 内网环境必备:手把手教你在银河麒麟V10上配置Docker私有镜像仓库(从离线安装到镜像推送)