CAN总线的数据校验

题目来源

有很多网友在QQ上问关于CAN总线上数据需不需要加校验,换句话说,CAN总线支不支持校验,我们需要在我们的数据场(数据域)加上校验码吗?答案是否定的。CAN总线在传输过程中采用多种抗干扰的措施。两种重要的方式如下:
1. 位填充
2. CRC校验

CAN总线上的消息帧结构

  1. CAN的消息帧结构

CAN总线的数据校验_第1张图片

CAN总线上的校验机制

CAN总线采用多种抗干扰措施以减少消息帧在传输过程中的出错。

  1. 位填充技术是其中很重的一种。在CAN消息帧中,帧起始,仲裁场。控制场,数据场和CRC段,均以位填充方法进行编码。当发送器在发送流中检测到5个极性相同的连续位时,自动插入一个部补位码。
  2. CRC场包括CRC序列和CRC界定符,用于检验的CRC序列特别适用于位数小于127位帧的循环冗余码(BCH码)校验驱动。CAN发送器会根据帧起始位,仲裁场,控制场,数据场,和进行编码CRC序列。接受器接受数据时,按照同样的规则对接受的数据进行CRC计算。然后比较,以判定数据在传输的过程中是否出错。

小结

综上说述,我们只关心我们怎么发送数据,不用担心数据在总线上会出错,CAN技术以为我们解决了数据是否出错的检验工作。如果数据在总线出错,我们的CAN驱动,有相应的函数可以读取错误。

你可能感兴趣的:(J1939协议栈)