历史上的今天
返回首页

历史上的今天

今天是:2025年07月11日(星期五)

正在发生

2019年07月11日 | 详解CAN及CAN FD通信中的循环冗余校验(CRC)方法

2019-07-11 来源:EEWORLD

摘要:数据校验是为保证数据的完整性进行的一种验证操作。CAN通信采用CRC校验作为一种重要的错误检测手段,是节点判断CAN帧信息的完整性并产生确认应答的依据。

 

在现场总线通信和控制的实际应用中,工业应用环境往往是极端的温度以及电磁噪声或是其他的恶劣环境,系统在这种条件下能否正常工作至关重要,试想一下倘若生产线设备发送的位置信息在传输过程出现了错误,轻则可能造成生产瘫痪,重则可能导致设备损坏甚至人员伤害。

 

在CAN总线通信过程中CAN控制器具备完整的错误检测能力,其中包含:位错误检测、格式错误检测、填充错误检测、应答错误检测和CRC错误检测。作为一种重要的错误检测手段,CRC错误检测是接收节点判断CAN帧信息的完整性并向总线确认应答的依据。

 

一、 常见的校验方法

 

  1. 最简单的校验是数据发送后进行主动回读,结果一致才确认传输成功,很显然这种传输沟通的方式很直观并非常精准,但是由于回读的操作使得数据传输量翻倍,也就是传输对带宽要求高且效率低下;

 

  1. 奇偶校验,就是传输中使用额外1个位来记录传输数据二进制数中1的个数是奇数还是偶数,这个方案适合绝大多数硬件,传输开销适中,因此被广泛使用,例如常见的串口通信;

 

  1. 累加和校验,该算法原理是对数据逐一进行累加后得到一个数值,接收方在接收数据同时也进行数据的累加并最终与发送过来的累加和进行比较,该算法计算简单,无论在硬件或是软件实现都能保证较高的效率,常用于低速串行数据通信校验和芯片代码的完整性判断;

 

  1. CRC检验,该算法是基于一个多项式除法取余的结果,其根据位数需求和多项式变化有数十种版本,凭借其硬件实现简单,位反转侦错能力较强及运算开销适中的优点被广泛应用与数字网络传输以及数据存储领域,如磁盘数据校验、USB、GSM/CDMA通信,在计算机应用中经常接触到的RAR和ZIP文件的压缩/解压数据完整性检查也采用了该算法;

 

  1. MD5、SHA为代表的信息摘要校验,数据摘要算法也被称为哈希(Hash)算法、散列算法,摘要算法用于数据量比较大的场合。它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密,如软件注册授权文件的内容保护,还有经常遇到的互联网下载大文件(例如大小到GB级别的ISO镜像)通常会带有MD5、SHA1等信息方便用户检查传输数据的完整性。

 

二、 CAN帧中的CRC检验

 

  1. CRC域在CAN帧中的位置

 

 

图1

 

如图1橙色块方框所示,一个传统CAN帧结构中,CRC域放置在数据结束后应答检测之前,对于CAN FD也是相同的位置,该信息对于用户应用界面来说是不可见的,可以通过CANscope总线分析仪解码窗口或者带有CAN协议解码能力的示波器从总线模拟波形上得到对应的CRC数据展示,见图2。

 

 

图2

 

  1. CRC的在CAN帧中的生成

 





在经典CAN中,使用15位CRC,在硬件可使用移位和异或运算完成CRC的计算,而CAN FD规范中对帧数据长度进行了扩展,对于数据长度小于等于16字节的CAN FD帧,采用17位CRC,对于数据长度大于16字节的CAN FD帧采用21位CRC。CAN总线中使用的若干版本CRC生成多项式g整理如表1所示。

 

表1

image.png?imageView2/2/w/550


CRC是如何完成校验工作的
 

 

CAN帧基于CRC多项式的安全校验是发送器根据发送的比特计算校验值,并在CAN帧结构CRC字段中提供该结果。接收器使用相同的多项式来计算总线上所见位的校验值,将自我计算的校验值与接收的校准值进行比较,如果匹配,则认为帧被正确接收,接收节点在ACK时隙位中发送显性状态,从而覆盖发送器的隐性状态。在不匹配的情况下,接收节点在ACK定界符之后发送错误帧。

 

目前CAN FD的控制器CRC校验实现过程会相对复杂一点,在一个CAN总线网络中,帧起始被检测到后所有的节点开始使用三组多项式g15、g17和g21同步计算CRC序列,其中也包含发送节点,由于CRC的计算受CAN帧类型和DLC长度影响,直到CAN帧的控制域以及DLC确认后才选择采用对应的CRC生成序列,确定的CRC序列会在帧结构中CRC字段被采纳用于发送或者用于接收比较。

 

  1. 有关CRC的ISO CAN FD、non-ISO CAN FD兼容性问题

 

当前CAN FD协议有两个版本,为提高故障(错误)检测能力,新版本特别引入了一个3位填充位计数器和一个额外的奇偶校验位。此外,CRC计算方法也发生了变化。这些改进使最新的CAN FD协议与博世(BOSCH)开发的原始CAN FD协议不兼容。负责ISO的工作组已完成其文件,并已将其提交给DIS(国际标准草案)在进行投票程序。

 

 

为了避免误解,CiA建议使用术语“ISO CAN FD”和“non-ISO CAN FD”。所有符合ISO 11898-2:2015的产品都应称为“ISO CAN FD”。执行博世(BOSCH)原始CAN FD协议的产品应命名为“non-ISO CAN FD”,在这个过度阶段的产品主要目的是用于前期评估和开发,将来所有产品都将符合ISO标准。

 

请注意,早前一些供应商提供的组件或者工具是针对non-ISO CAN FD协议的,包括目前在售的部分CAN FD产品,CiA建议仅使用ISO CAN FD产品进行设计和开发,不过你可继续使用non-ISO CAN FD做评估和前期开发,因为协议的改变对于用户界面是不可见,但注意的是不能同一个网络混用non-ISO CAN FD和ISO CAN FD接口设备,这样会造成CAN总线错误无法完成发送和接收,如果仅仅是发送或接收传统的CAN帧将不会受到任何影响,幸运的是部分设备供应商提供的组件或者工具允许用户选择支持ISO或者non-ISO模式,这样能很好地在过渡时期帮助你完成工作。

 

三、总结:

 

传统CAN以及目前CAN FD采取的校验机制,保证传输过程中遭受破坏的帧数据几乎不会被接收以及应答成功,能有效防止物理层传输错误,让用户界面不需要额外关注帧传输数据的正确性。


推荐阅读

史海拾趣

E Connector Solutions公司的发展小趣事

人才是企业发展的核心竞争力。E Connector Solutions公司高度重视人才培养和团队建设。公司建立了完善的人才培养机制,通过内部培训、外部引进等方式不断提升员工的专业技能和综合素质。同时,公司还注重团队建设,鼓励员工之间的协作与交流,营造积极向上的工作氛围。这种注重人才培养和团队建设的做法为公司的发展提供了坚实的人才保障。

请注意,以上故事均为虚构,旨在为您提供一个关于电子连接器解决方案公司发展起来的故事框架。如果您需要了解特定公司的具体发展情况,建议您查阅相关公司的官方网站或行业报告。

骅讯(Cmedia)公司的发展小趣事

为了进一步提升品牌影响力和市场竞争力,骅讯积极寻求与知名品牌的合作。通过与音频市场上的主要品牌建立合作关系,骅讯成功将其先进的音频技术应用于各种音频产品中,为消费者带来了更为优质的音频体验。这种合作模式不仅促进了骅讯技术的推广和应用,也为其带来了更为广阔的市场空间。

Everspin Technologies公司的发展小趣事

在寻求更广泛的市场应用和技术合作方面,Everspin与Quicklogic Corporation签订了分包协议。根据协议,Quicklogic将其部分开发服务分包给Everspin,共同推进战略辐射加固现场可编程门阵列原型项目的开发。这一合作不仅展示了Everspin在电子行业中的技术实力和市场影响力,也为其未来的发展开辟了新的道路。

以上五个故事概述了Everspin Technologies公司在电子行业中发展起来的关键历程和成就。这些故事展示了Everspin在MRAM技术领域的领先地位、创新能力和市场应用方面的成功。

Hammond公司的发展小趣事

在寻求更广泛的市场应用和技术合作方面,Everspin与Quicklogic Corporation签订了分包协议。根据协议,Quicklogic将其部分开发服务分包给Everspin,共同推进战略辐射加固现场可编程门阵列原型项目的开发。这一合作不仅展示了Everspin在电子行业中的技术实力和市场影响力,也为其未来的发展开辟了新的道路。

以上五个故事概述了Everspin Technologies公司在电子行业中发展起来的关键历程和成就。这些故事展示了Everspin在MRAM技术领域的领先地位、创新能力和市场应用方面的成功。

蜂鸟无线公司的发展小趣事
根据电动机的特性和应用需求,确定PWM信号的频率和占空比范围,以确保调速效果。
德立电子(DDY)公司的发展小趣事

随着电子行业的快速发展,德立电子意识到技术创新的重要性。公司加大研发投入,不断推出高频贴片绕线电感、立式电感、磁环电感等新产品,满足市场多样化需求。同时,德立电子还注重知识产权保护,申请多项专利,确保技术领先。

问答坊 | AI 解惑

用定时中断扫描键盘和LED显示

用5ms的定时中断扫描键盘模块的LED现实模块, 键盘20ms一次  显示100ms一次  请高手指点下,最好有流程图 编程的话用汇编…

查看全部问答>

让你的软件飞起来

  ---------------------------------------     文章的确很不错, 尤其是《让你的软件飞起来》,作者的精益求精、奇思妙想,令人叫绝。读后深受启迪,受益匪浅。     不推荐对不起天下人,故写了这几句话。  ...…

查看全部问答>

急救警报手镯 随时保证你的安全

急救警报手镯        在人潮涌动的海边玩耍,如果遇到危险,呼救的声音往往会被人声和海浪声淹没。即便有救生员在高塔上时刻监控,危险依旧难以避免。设计师便根据这一情况,推出了这款急救手镯。 …

查看全部问答>

Windows CENET中断架构分析和高速AD驱动程序的开发.pdf

Windows CENET中断架构分析和高速AD驱动程序的开发.pdf…

查看全部问答>

s3c2410电池管理

怎么像手机一样提示电池电量? 接触过的朋友帮帮忙,谢谢!…

查看全部问答>

大家有什么好建议

想做一个让人看了有点神奇,迷惑不解,会发光之类的玩意,大家有什么好的建议或意见?电子钟,交通灯,流水灯,摇摇棒人家都做了。。。我改做什么呢?大家都玩过些啥玩意  给点建议好吗? 谢谢。。。。…

查看全部问答>

流明学习笔记之十六PWM点亮液晶

又好久没泡一下了哈,唉最近时下是忙唉,单位一堆事,回家也一堆事,搞搞东西时在是不容易啊!   唉!   有人说你忙得糊涂了,PWM怎么能点亮段显LCD,嘿嘿!我还真没糊涂清楚的很啊!!!   来真格地:   脉冲宽度调制 ...…

查看全部问答>

转让手中的2440开发板给需要的人(已出)

大学毕业了 工作和嵌入式不相关  所以转让手中的2440开发板给需要的人  版型是mini2440   板子买的时候就标配256M  nand flash  免除升级麻烦说句过来人的话给学习arm的人 现在很多新人都追求arm11  因为它可以跑And ...…

查看全部问答>

MSP-EXP430G2开发板导学资料及原理图

有关MSP430 LaunchPad的文件资料都是在TI官网上都可以下载。如果你手头有这个板子或者即将有这款板子,我先推荐这两个资料是你初步学习的最好资料。经管都是英文,大家还是要慢慢地适应,学电子这一行都是国外的东西,看英文文档是最习以为常的。我 ...…

查看全部问答>