从零学习VH6501(七) —— Bus Off 的基本理解和测试用例设计

📙 相关文章

在这里插入图片描述


📘前言

  • 我们前面做了很多的关于VH6501的基础工作,回到工程上还是要应用,Bus Off 测试 就是VH6501的一个典型使用场景
  • 下面这张图是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.

在这里插入图片描述


在这里插入图片描述

End

🌎总结

23

请添加图片描述

🍅 本系列文章,意在,以较为简单的方式让初学者,理解CAPL库并掌握VH6501的使用,中心不在CASE设计上,这篇文章,也以简单的方式让大家理解Bus Off ,实际项目需求种,测试还要更复杂

🍅 如果小伙伴看完了这几章节文章,再去看 官方 Demo 一定会更加轻松的。

🍅 官方示例路径,多多研究权威文章
C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 11.0.55\CAN\MoreExamples\CANDisturbanceInterface

🍅 有需要这个系列演示文章所用demo工程的,可以关注下方公众号网盘自取啦,感谢阅读。
7

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩 有微信的小伙伴可以关注下浪哥车载诊断,一个行业内小小圈子,群里有网盘资料源码还有各路大神 闲时交流交流技术,聊聊工作机会啥的。

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    18
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值