大家好,欢迎来到IT知识分享网。
在前面几篇文章
CAN/CAN-FD的Bus-Off排查和定位之基础1
CAN/CAN-FD的Bus-Off排查和定位之错误帧2
CAN/CAN-FD的Bus-Off排查和定位之CAN FD 错误帧3
CAN通讯系列11- 错误帧的基本信息
提到总线关闭态,即CAN Bus off,三种错误状态之一,如下所示:

Source: CAN入门书,renesas
当节点处于总线关闭态,将不能参加总线上通讯,即CAN报文的接收和发送均被禁止。这意味着对CAN通讯的影响很大,因此本文接下来将详细介绍什么是Bus off,怎么产生的,又该如何处理等内容。
1 Bus off是什么
从CAN总线协议的定义来说,就是当节点处于被动错误状态时,发送错误计数值(TEC)大于255,那么节点就会跳转到总线关闭态,即Bus off,这时节点就不能参与总线通讯,无法发送和接收CAN报文。
2 Bus off 怎么产生的
为了彻底了解Bus off产生的机制,需要将前面文章的几个概念串起来理解,包括错误类型和错误状态等内容。
首先要了解发送错误计数值(TEC),它是根据CAN总线协议的相关定义来变化。比如:
- 发送节点在输出错误标志时,TEC需要+8;
- 发送节点在发送主动错误标志时,检测出位错误,TEC需要+8;
假设有这么一个场景:某节点处于主动错误状态,初始TEC为0,一直向总线发送报文,但因干扰原因每次都发送失败(输出错误标志),那么就意味着每次发送都会使得TEC+8,因此发送了16次(TEC=8*16=128)该节点跳转到被动错误状态,再发送16次(TEC=128+8*16=256),该节点跳转到总线关闭态。
因此,理解好下面这个表所列的情况与TEC,REC的变化关系:

Source: CAN入门书,renesas
要理解好上表,本质上是要了解错误类型有哪些以及错误帧的定义,可以参考前面文章。最后要了解错误状态的跳转关系,即主动错误状态,被动错误状态和总线关闭态3种状态之间的跳转关系。通过TEC和REC来决定进入何种状态,根据定义有:
- 当TEC<127且REC<127时,节点处于主动错误状态;
- 当TEC>127或REC>127时,节点处于被动错误状态;
- 当TEC>255时,节点处于总线关闭态;
- 当在总线上检测到128次连续11个位的隐性位时,节点会从总线关闭态跳到主动错误状态。
通过以上内容就构建了由错误的出现引起错误计数值变化,进而导致错误状态的跳转,引起节点功能的变化。
3 Bus off怎么恢复,引自[4]
当节点进入总线关闭状态后,如果MCU仅是开启自动恢复功能,CAN控制器在检测到128次11个连续的隐性位后即可恢复通信,在实际的CAN通信总线中,这一条件是很容易达到的。以125K的波特率为例,12811(1/)= 0.011264s。这意味着如果节点所在的CAN总线的帧间隔时间大于0.011264s,节点在总线空闲时间内便可轻易恢复通信。我们已经知道,当进入总线关闭状态时,节点已经发生了严重的错误,处于不可信状态,如果迅速恢复参与总线通信,具有较高的风险,因此,在实际的应用中,往往会通过MCU对CAN控制器总线关闭状态的恢复过程进行编程处理,以控制节点从总线关闭状态恢复到错误主动状态的等待时间,达到既提高灵活性又保证节点在功能上的快速响应性的目的。具体包括“快恢复”和“慢恢复”策略,两种策略一般同时应用。
通过以上的讨论,我们可以知道,节点进入总线关闭状态后,存在以下几种恢复情况:
- MCU仅开启CAN控制器的自动恢复功能,节点只需检测到128次11个连续的隐性位便可以恢复通信。
- MCU没有开启CAN控制器的自动恢复功能,也不主动干预总线关闭错误,节点将一直无法“自动”恢复总线通信,只能通过重新上电的方式使节点恢复, 恢复过程如下图所示。

(3)MCU对CAN控制器的恢复过程进行编程处理,这时,节点的恢复行为由具体的编程逻辑决定,各厂家普遍采用了先“快恢复”后“慢恢复”的恢复策略,恢复过程如下图所示。

一般OEM对ECU零部件供应商提出了相应的Bus off恢复策略,比如:先快恢复后慢恢复,恢复时间等需求:
对于快恢复,恢复时间应小于100ms,恢复次数为5次;
对于慢恢复,恢复间隔为1000ms,恢复次数 不限。
其实所谓的快慢恢复,即进入CAN总线关闭态后,ECU重新初始化CAN模块,并等待一段恢复时间后,重新使能总线报文的发送。如果报文发送成功,则Bus off恢复成功。
4 参考
CAN总线从入门到放弃(二)- CAN总线错误状态转换 – 知乎 (zhihu.com)
CAN总线错误帧详解-EDN 电子技术设计 (ednchina.com)
CAN通信:Busoff问题知多少 (.com)
CAN总线“错误”不在可怕-广州致远电子股份有限公司 (zlg.cn)
节点BusOff恢复过程分析与测试-广州致远电子股份有限公司 (zlg.cn)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/188501.html