题目来源
有很多网友在QQ上问关于CAN总线上数据需不需要加校验,换句话说,CAN总线支不支持校验,我们需要在我们的数据场(数据域)加上校验码吗?答案是否定的。CAN总线在传输过程中采用多种抗干扰的措施。两种重要的方式如下:
1. 位填充
2. CRC校验
CAN总线上的消息帧结构
- CAN的消息帧结构
CAN总线上的校验机制
CAN总线采用多种抗干扰措施以减少消息帧在传输过程中的出错。
- 位填充技术是其中很重的一种。在CAN消息帧中,帧起始,仲裁场。控制场,数据场和CRC段,均以位填充方法进行编码。当发送器在发送流中检测到5个极性相同的连续位时,自动插入一个部补位码。
- CRC场包括CRC序列和CRC界定符,用于检验的CRC序列特别适用于位数小于127位帧的循环冗余码(BCH码)校验驱动。CAN发送器会根据帧起始位,仲裁场,控制场,数据场,和进行编码CRC序列。接受器接受数据时,按照同样的规则对接受的数据进行CRC计算。然后比较,以判定数据在传输的过程中是否出错。
小结
综上说述,我们只关心我们怎么发送数据,不用担心数据在总线上会出错,CAN技术以为我们解决了数据是否出错的检验工作。如果数据在总线出错,我们的CAN驱动,有相应的函数可以读取错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)