大家好,我是林译川,今天我们来聊聊CAN Bus Off状态下的节点恢复问题。你有没有遇到过车上的ECU发不出信息的情况?这就是CAN Bus Off状态,今天我们就来深入探讨一下。
什么是CAN Bus Off?
CAN Bus Off是一种错误状态,当ECU发送消息失败累计到一定次数时,ECU会进入BUSOFF模式,这时它就不能发送信息了。
总线Bus Off之后会做何处理?
ECU进入BUS OFF状态后,会记录下当前的时间、电压、里程等信息,然后等待5秒后重启自己的CAN模块。
Bus Off时计数的变化规律
ECU发送失败,TX error count + 8;ECU发送成功,TX error count - 1;当TX error count超过255,ECU必须进入Bus Off状态。
CAN frame的一些常见错误
- 发送ECU检查:有无ACK、CRC检查、BIT监控等。
- 接收ECU检查:CRC检查、CRC Delimiter、ACK Delimiter、EOF等。
总线关闭状态的恢复流程
CAN节点在总线关闭状态下,需要进行恢复。恢复流程分为“快恢复”和“慢恢复”两种机制。
为什么需要“快恢复”和“慢恢复”?
当节点进入总线关闭状态后,如果直接恢复通信,存在较高的风险。因此,通过MCU对CAN控制器的恢复过程进行编程处理,以控制节点从总线关闭状态恢复到错误主动状态的等待时间,实现“快恢复”和“慢恢复”策略。
MCU如何实现“快恢复”和“慢恢复”?
MCU通过编程控制CAN控制器,实现“快恢复”和“慢恢复”过程。具体过程包括:控制CAN控制器停止报文收发,等待一定时间后重新启动恢复CAN控制器参与总线通信。
实测总线关闭恢复过程
通过CAN总线分析仪的流量分析功能,可以分析总线关闭后节点的恢复过程及测试“快恢复”和“慢恢复”的恢复时间。
总结
在总线关闭状态下,“快恢复”和“慢恢复”机制是通过MCU编程实现的,使恢复过程更具有灵活性。
我是林译川,关注「新派编程网」(www.xjpbg.com),更多技术知识等你来探索。
