您的位置首页生活百科

BusOff恢复流程

BusOff恢复流程

的有关信息介绍如下:

BusOff恢复流程

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

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

主动错误、被动错误和总线关闭三种错误状态表示发生故障的严重程度,总线关闭是节点最严重的错误状态。

错误主动和错误被动两种状态下节点的恢复过程一般不需要MCU进行额外的编程处理,直接使用CAN控制器固有功能即可。总线关闭,需要对其进行编程控制,MCU不能进行自我处理。

MCU自恢复原理:CAN控制器在检测到128次11个连续的隐性位即可恢复通信,进入总线关闭状态后,三种恢复情况:

a、仅MCU自动恢复,检测到128次11个连续的隐性位恢复通信。

b、MCU没有开启自动恢复,也未做编程处理,只能通过重新上电的方式使节点恢复。

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

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

当发送错误计数器超过255,这时MCU控制CAN控制器进入“快恢复”过程。

当节点“快恢复”计数达到设定的值N(如5次),MCU把恢复总线通信的等待时间T2进行延长(如1000ms),这样便实现了“慢恢复”过程。

通过MCU对于总线关闭后的恢复行为进行编程控制,实际上是对CAN控制器的错误管理和恢复机制进行了补充,使得总线关闭状态后的恢复过程更加灵活。

通过CANScope总线分析仪的流量分析功能,可快速分析总线关闭的快恢复和慢恢复时间。

连接DUT但先不要上电。按以下配置,使能接收干扰功能,并开启报文读取功能。

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

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

结论:该设备进行了编程控制,先进行了一次“快恢复”过程,后续进行“慢恢复”过程,两个恢复过程的恢复时间分别为27.5ms和209.5ms。

整个总线关闭及恢复流程如下,把多帧密集帧的波形放大得到下图:

可以清晰的看到,波形“团”中包含共32帧CAN报文。

DUT上电后,初始发送和接收错误计数都为0。由于在测试时配置了接收干扰功能,当DUT开始发送报文后,每一帧报文都受到CAN总线分析仪的干扰而出现发送错误,第一次发送时发送错误计数加8,并自动重发,第二次发送时错误计数再加8,直到发送了32次后,发送错误计数大于255。

这时DUT跳转为总线关闭状态,MCU控制进入“快恢复”过程同时对“快恢复”次数进行计数,并等待约27ms后,MCU控制DUT从总线关闭状态恢复为错误主动状态,由MCU继续启动发送,由于仍然受CAN总线分析仪的持续干扰,发送32帧后再次进入总线关闭状态,再次执行“快恢复”或“慢恢复”过程,以此类推。

CANScope测试时,为什么波形显示有错误,对应报文显示却是绿色的呢?

答:解码是因为存在毛刺,而解码规则是根据脉宽,报文的采集规则是根据采样点,硬件配置中,两者同步但不同路,此时以报文为准,波形有误。

当CANScope设备不接PORT头或Stress板,是否可以进行报文发送?

答:不可以。因为发送报文是需要硬件支撑的,即收发器,而收发器又位于 PORT 头和Stress 板中,所以节点就无法发送报文。