总线54讲[2],busoff到底是个啥?

文摘   2024-09-22 16:15   上海  


通俗易懂,简明扼要

我们之前介绍过关于VH6501的基础工作,回到工程上还是要应用,Bus Off 测试 就是VH6501的一个典型使用场景

总线54讲,busoff测试之干扰神器-VH6501

这篇文章的作者是怿星科技,大家应该能够品品,它们当年是多么亲密无间,可惜,这景象再也看不到了。

BusOff基本流程

下面这张图是ISO 11898 -1中关于 Bus off的实现机制的描述。

其中:

REC 接收错误计数器

TEC 发送错误计数器

接下来我将结合代码来解读下这张图

CAN Bus Off 的理解

1、什么是CAN Bus Off

某个ECU , 一直向总线上发送消息,可怎么都发送不出去( ECU发送失败:发送错误计数 + 8, ECU发送成功:发送错误计数 - 1)如果这个发送错误计数累计到255 (即连续发了32次都失败) ECU进入Busoff模式

2、总线Bus Off之后会做何处理

ECU 在自己内部检测到BUS OFF后,就自暴自弃了,报个DTC后然后就不发任何消息了。但是现在各厂商的策略都是快慢恢复的测略

快恢复:过了 一段时间(快回复主流时间<100ms) ;ECU的大脑MCU说,喂,CAN模块老兄,你咋了,不要放弃啊,你再重启下,继续发送试一试啊;于是ECU就连续尝试发送报文,如果发送成功,则Bus Off状态解除;如果发送失败,继续计数,再次达到255(32帧错误报文),则Bus off 计数 就 +1 ,

一直这样尝试 ,直到记录了N次Bus OFF(N的取值取决于厂商5-10次不等)都以失败告终。

则MCU就说了,得了,你也别费劲了。你还是转到慢恢复状态吧(200ms -1000ms ),从此以后ECU就以慢恢复的时间尝试发送报文,如果有一天发送成功了,则解除Bus Off,否则慢恢复持续。

CAN Bus Off 的实际测试案例

比如我现在使用的ECU,bus off 需求 如下:

当ECU 连续发送错误帧达到32帧时,进入Bus off 时,要进入快恢复状态 Tq = 100ms;当5次快恢复仍然没有恢复的,要进入慢恢复状态,Ts = 1000ms

① case 1 : 连续错误帧31 ,则不进入bus off

② case 2 : 连续错误帧32 ,则不进入bus off,观察下一帧发出的时间差

这个时候连续 1次 快恢复失败了,ECU还是在快恢复状态,所以时间间隔是100ms ,只有5次快恢复都失败后,才会装入1000ms的慢恢复

③ case 3 : 连续错误帧192 帧,观察下一帧发出的时间差,

这个时候连续 5次 快恢复都失败了,ECU就进入了慢恢复状态, 所以两帧时间间隔是1000ms.


【推荐】
汽车行业,千万不要去干外包
恒润和意昂,两扇窗户,看懂行业的过去、当下和未来
总线10讲,东半球最好用的excel2dbc工具,永远免费送


车辆技术
致力于汽车研发测试技术的研究推广,帮助同行互通有无,为提升职业价值感,为产业崛起而奋斗!
 最新文章