BusOff恢复流程

2025-07-18 20:41:55

总线关闭是CAN节点比较重要的错误处理机制,在总线关闭状态下,CAN节点的恢复流程是怎样的?如何理解节点恢复流程的“快恢复”和“慢恢复”机制? 下面将通过CANScope详细介绍总线关闭的机制和原理。

工具/原料

CANScope总线分析仪

电脑

Win7操作系统

上位机软件CANScope

总线关闭原理

1、为避免某一通信节点故障影响其它节点通信,CAN网络具有严格的错误处理机制,每个CAN控制器中有一个发送错误计数器TEC和一个接收错误计数器REC。具体的状态转换如下图所示。

BusOff恢复流程
BusOff恢复流程

2、主动错误、被动错误和总线蔡龇呶挞关闭三种错误状态表示发生故障的严重程度,总线关闭是节点最严重的错误状态。错误主动和错误被动两种状态下节点的恢复过弛贾班隧程一般不需要MCU进行额外的编程处理,直接使用CAN控制器固有功能即可。总线关闭,需要对其进行编程控制,MCU不能进行自我处理。

快恢复和慢恢复策略

1、MCU自恢复原理:CAN控制器在检测到128次11个连续的隐性位即可恢复通信,进入总线关闭状态后,三种恢复情况:a、仅MCU自动恢复,检测到128次11个连续的隐性位恢复通信。芟鲠阻缒b、MCU没有开启自动恢复,也未做编程处理,只能通过重新上电的方式使节点恢复。

BusOff恢复流程

2、c、MCU进行编程处理,各厂家采用先“快恢复”后“慢恢复”的恢复策略。

BusOff恢复流程

MCU如何实现“快恢复”和“慢恢复”?

1、MCU编程“快恢复”和“慢恢复”流程如下。

BusOff恢复流程

2、当发送错误计数器超过255,这时MCU控制CAN控制器进入“快恢复”过程。当节点“快恢复”计数达到设定的值N(如5次),MCU把恢复总线通信的殪讧唁跬等待时间T2进行延长(如1000ms),这样便实现了“慢恢复”过程。通过MCU对于总线关闭后的恢复行为进行编程控制,实际上是对CAN控制器的错误管理和恢复机制进行了补充,使得总线关闭状态后的恢复过程更加灵活。

实测总线关闭恢复流程

1、通过CANScope总线分析仪的流量分析功能,可快速分析总线关闭的快恢复和慢恢复时间。连接DUT但先不要上电。按以下配置,使能接收干扰功能,并开启报文读取功能。

BusOff恢复流程

2、给DUT上电,并采集一段时间报文,停止采集后使用流量分析功能进行分析。

BusOff恢复流程

3、鼠标放置于多帧密集帧的波形之间读取恢复时间。

BusOff恢复流程

4、结论:该设备进行了编程控制,先进行了一次“快恢复”过程,后续进行“慢恢复”过程,两个恢复过程的恢复时间分别为27.5ms和209.5ms。整个总线关闭及恢复流程如下,把多帧密集帧的波形放大得到下图:

BusOff恢复流程

5、可以清晰的看到,波形“团”中包含共32帧CAN报文。DUT上电后,初始发送和接收错误计数都为0。由于在测试时配置了接收干扰绂茴幌蟾功能,当DUT开始发送报文后,每一帧报文都受到CAN总线分析仪的干扰而出现发送错误,第一次发送时发送错误计数加8,并自动重发,第二次发送时错误计数再加8,直到发送了32次后,发送错误计数大于255。这时DUT跳转为总线关闭状态,MCU控制进入“快恢复”过程同时对“快恢复”次数进行计数,并等待约27ms后,MCU控制DUT从总线关闭状态恢复为错误主动状态,由MCU继续启动发送,由于仍然受CAN总线分析仪的持续干扰,发送32帧后再次进入总线关闭状态,再次执行“快恢复”或“慢恢复”过程,以此类推。

常见问题

1、CANScope测试时,为什么波形显示有错误,对应报文显示却是绿色的呢?答:解码是因为存在毛刺,而解码规则是根据脉宽,报文的采集规则是根据采样点,硬件配置中,两者同步但不同路,此时以报文为准,波形有误。

2、当CANScope设备不接PORT头或Stress板,是否可以进行报文发送?答:不可以。因为发送报文是需要硬件支撑的,即收发器,而收发器又位于 PORT 头和Stress 板中,所以节点就无法发送报文。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢