通信数据校验的CRC算法的理论基础
CRC 通信数据校验理论基础一、核心本质CRC 循环冗余校验 基于「模 2 除法」的多项式除法运算用原始数据除以一个固定生成多项式得到的余数就是 CRC 校验码。二、数学理论基础最核心1. 模 2 运算Modulo-2无进位加法 异或 XOR000011101110无借位减法 同样是异或 XOR移位 二进制左移 / 右移CRC 全部运算只靠移位 异或不做加减乘除2. 二进制多项式表示任意二进制串都可写成多项式例1011x³ x¹ x⁰生成多项式 G (x)通信双方约定固定决定检错能力CAN CRC15G(x) x¹⁵x¹⁴x¹⁰x⁸x⁵x⁴x²1CAN CRC17G(x) x¹⁷x¹⁶x¹⁴x¹³x¹¹x⁶x⁴x²x13. CRC 计算数学步骤理论数据左移 r 位r 多项式位数CRC15→15 位CRC17→17 位模 2 除法移位后数据 ÷ 生成多项式 G (x)取余数余数位数 r就是CRC 校验码发送数据 CRC接收整体 ÷ G (x)余数 0 → 正确≠0 → 出错三、CRC 适合通信理论依据1. 极强的检错能力数学可证明可检测所有单比特错误可检测所有双比特错误可检测所有奇数个比特错误可检测所有长度 ≤ r 的突发错误可检测绝大多数长突发错误2. 硬件极容易实现只用移位寄存器 XOR 门速度极快成本极低适合 UART/CAN/ 以太网 / USB 等所有通信3. 计算高效软件查表法 O (n)硬件流水线并行计算无复杂乘法适合嵌入式四、通信领域必须用 CRC通信信道存在 3 类干扰热噪声→ 随机比特翻转电磁干扰→ 突发多位错误同步误差→ 丢位 / 多位CRC 对这三类错误都有极强检测能力且软硬都好实现。五、总结CRC 以模 2 多项式除法为数学基础通过移位与异或得到校验码检错能力强、硬件友好、计算高效是数字通信最通用的校验方式。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2542784.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!