
认识CAN 总线错误的第一步就是了解认识CAN 总线协议和它的具体功能,这样才能更容易地理解CAN 总线是如何去发现并解决错误的。首先没有系统是完美的 ,错误难免发生,但一个优秀的系统知道如何检测错误,检查并重新发送修正后的数据。CAN 总线虽然也会出现错误,但却可以高效的解决错误。
在开始学习之前,我们需要先了解一下CAN 总线的数据帧,其如图所示。

对于标准CAN 数据帧而言,它有一个更详细的版本(如下图所示),它可以帮助我们了解错误位的位置和工作原理。

● 分隔符位:它们是隐性位,通常为完成一个特定动作提供时间/空间。这些位确保了在没有显性位填充的字段中,存在位转换。位转换对于恢复时间的同步是必要的,否则可能由于NRZ 编码而无法实现同步。除了为同步提供时间外,分隔符在错误检测中还有一个特殊的地方,即分隔符位必须在一个预定的位置,以便保持CAN 帧的格式。
● CRC 分隔符:CRC 分隔符位给ECU 提供时间或空间来计算CRC。
● ACK 分隔符:一旦收到数据,接收端会向发送节点发送确认,这需要一些时间,因此使用ACK分隔符。
● 位填充:一个节点在连续传输了五个相同值的位后,会在发出的位流中增加第六个相反的位。这个额外的位被接收器移除,不仅避免了总线上过多的直流

本文深入探讨CAN总线的错误类型,包括位错误、填充错误、格式错误、CRC错误和ACK错误,并解释错误帧如何中断传输并促使重传。同时,介绍了CAN总线的错误状态,如主动错误、被动错误和总线关闭,以及错误状态与错误计数器的关系。
最低0.47元/天 解锁文章
1万+





