如果汽车在行驶中,如果CAN控制器出现总线关闭错误,该怎么办?

问题描述 投票:5回答:8

我知道在CAN控制器中,如果错误计数达到某个阈值(例如255),则会发生总线断开,这意味着特定的CAN节点将从CAN网络中断开。因此,根本不会进行任何通信。但是,如果上述情况发生在汽车行驶且包含ECU(包括CAN控制器)的情况下怎么办?

CAN控制器中是否有任何自动恢复机制可以避免上述任何情况?

can-bus
8个回答
1
投票

即使发动机控制单元失去了CAN通讯,也不会发生任何壮观的事情。汽车将继续运行。


1
投票

在总线关闭期间,该节点将被隔离。

CAN等待强制时间段,即128 x 11位(对于250 kbit / s系统为1408位-5.6毫秒),然后尝试重新初始化节点。


1
投票

发生总线断开时,CAN网络隔离该节点,然后重置该节点,该节点可以开始通信。


1
投票

恢复机制取决于所使用的软件堆栈。大多数新车都具有符合AUTOSAR的软件实现。在AUTOSAR通信堆栈中,CanSM(状态管理器)模块具有可配置的BusOff监视和恢复。您可以在http://autosar.org中阅读更多内容。

但是,在行驶中的车辆中,BusOff是一种严重的情况。在车辆级别如何处理这是非常特定于系统设计的。但是,在大多数情况下,系统将进入安全操作模式,并且所有参数都将采用预设的故障值,以使车辆以降低的功能运行。您会看到仪表板上的警告灯熄灭以警告驾驶员。 ECU通常符合某种级别的ASIL(https://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level)标准。这样可以确保在设计和开发过程中考虑并照顾到这种情况。


0
投票

如您所述,达到特定的错误计数后,该节点将断开连接/禁止在总线上传输任何内容。这是对总线端的描述。

在控制器侧,每个CAN控制器都会在BUS_OFF上产生一个中断。控制器有责任重置CAN控制器并将其恢复到正常状态。

任何汽车中的每个CAN控制器都必须严格遵守。而且这一切都在几毫秒内发生...因此对于驱动程序而言,什么也没有发生!


0
投票

汽车有一种称为Li行模式,这是汽车网络中所有ecu都失效的情况。然后初始化一组用于ECU的默认参数,然后初始化系统,即在OEM正确维修之前,您的汽车只能继续运行一段时间。


0
投票

是,如果CAN Tx错误计数达到255,则节点将关闭并可能自行复位。如果问题仍然存在,一个好的实现将不会继续重置节点。

除了此安全机制之外,ECU(电气控制单元)还对它们希望接收的消息的有效传输之间的持续时间进行计时。因此,如果引擎控制器离线,则车辆中几乎每个ECU都会报告“与引擎控制器的通讯丢失”。

通常,此类CAN问题由以U开头的DTC(诊断故障代码)标识,例如:http://www.obd-codes.com/u0115

根据问题的严重性,车辆可能会进入“ lim行回家”模式,或者可能被完全禁用。除非有一些篡改,否则车辆上的CAN总线出现的问题极为罕见。


0
投票

当ECU检测到BUS_OFF故障时,ECU应该停止排放,因此这是一个很好的问题。

具有自动恢复机制:

  • 对于前三个检测,CAN控制器无延迟地重置其寄存器
  • 对于下一次检测,ECU在复位之前等待1秒
© www.soinside.com 2019 - 2024. All rights reserved.