详解crc校验算法原理及实现 crc校验代码
admin
2023-10-21 00:23:16

这里以循环冗余校验CRC)为例,介绍一种常见的信号传输完整性解决方案

03 什么是循环冗余校验(CRC)?

CRC 是循环冗余校验的缩写,全称是 Cyclical Redundancy Check

CRC 的基本原理是发送端根据 CRC 算法,对总线上要传输的原始数据进行计算,得到一个 CRC 校验码(简称 A),这个校验码 A 与原始数据存在着固有的关系。发送端把原始数据和校验码 A 组合在一起,发送给接收端。

接收端收到数据之后,通过算法对原始数据进行独立计算,得到一个新的 CRC 校验码(简称 B),并将两个 CRC 校验码(A 和 B)进行比较验证,若不一致则表示数据在传输过程中出错,从而提高了总线传输数据的完整性。

假设原始数据可用 n阶多项式P(x) 来表示,如下:

循环冗余校验CRC是什么?它如何提高民机信号传输的完整性?

其中 a 为 0 或 1;x用来表明二进制数据的排列位置。例如一个 10 位二进制数 1101011011 用多项式表示,如下:

循环冗余校验CRC是什么?它如何提高民机信号传输的完整性?

P(x) 除以一个下图所示的 CRC 多项式后,可得到一个余数 R(x),即 CRC 校验码。

循环冗余校验CRC是什么?它如何提高民机信号传输的完整性?

CRC算法中的,常见的生成多项式,如上图所示。

注:由于多项式表示或二进制表示较为繁琐,造成交流不便,因此实际使用时多采用 16 进制简写法来表示。同时考虑到多项式最高位为 1,而最高位的位置可由原始数据的位宽确定,因此十六进制简记式中,将最高位的 1 去掉了。

04 CRC校验码如何产生?

在 CRC 算法中,多项式的乘除法,可以对应到二进制数的模 2 运算,这就是我们通常所说的异或运算

在工程应用中,我们希望余数的位数固定以便在实现时可以节省资源。常见的 CRC 方案是 16 位或 32 位。若原始数据的长度比 CRC 码短,必须扩展到 16/32 位以上才能到一个 16/32 位的余数。通常的做法是在原始数据的右边添加相应的 CRC 码位数。

这里列举一个简单的例子,用于阐明 CRC 校验码的计算过程

假设原始二进制数据为 1101011011,采用 4 位 CRC 校验,则除数多项式选取CRC-4,即 10011。计算过程如下所示(计算前将原始数据后面补 4 个 0)。

循环冗余校验CRC是什么?它如何提高民机信号传输的完整性?

最后得到的余数为 1110,即计算得到的 4 位 CRC 校验码。16/32 位 CRC 校验码的计算过程与之类似。

05 总结

理论上 32 位 CRC 可提供 99.999999976716935634613037109375% 的错误检测率,或者说传输链路完整性可达到 2.328E-10(1/2的 32 次方),因此 32 位 CRC 在高完整性数据传输过程中,得到了广泛应用。

当然啦,CRC 只是提高传输信号完整性的一种措施,并非唯一。感兴趣的朋友,欢迎留言,我们一起探讨民机的世界!

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...