在CAN总线中,任何一个单元可能处于下列3种故障状态之一:错误**状态(ErrorActive)、错误认可状态(Error Passitive)和总线关闭状态(Bus off)。
1、什么是CAN Bus Off
举例:
车上一个ECU 1, 一直向总线上发送消息,可怎么都发送不出去。
如果这个累计到一定的次数(255),按照CAN总线协议:
ECU 1自己的进入 BUSOFF模式,这个时候ECU 1 一时半会是不能发送信息了。
2、总线Bus Off之后会做何处理
ECU 1在自己内部检测到BUS OFF后,默默的从逻辑上退出了总线,
暂时他没妨碍大家,
ECU 1他自己也搞不明白啥回事,
于是ECU 1拿着小本子,记下了 x年x月x日x时x分x秒, 但是汽车电压,里程,xxx 是多少多少,我bus off 了
写完备案后,ECU 1 开始数时间,等待 5 秒后,重启自己的CAN模块
3、Bus Off时计数的变化规律
bus off是个非常集体的概念,
ECU自己发送失败,TX error count + 8,
ECU自己发送成功,TX error count - 1,
这个TX error count 超过255,ECU就必须进入Bus Off 状态,并需要逻辑上断开总线
4、CAN frame 的一些常见错误
发送ECU检查:
有无ACK
CRC检查,CRC Delimiter, ACK Delimiter,EOF等
BIT监控, 送的那个ECU,自己校对每个BIT,看有没有都送对(ID区域,和ACK区域除外)
接收ECU检查:
CRC检查,CRC Delimiter, ACK Delimiter,EOF等
检查有无联系6比特是全0、或全1的