中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 472查看
  • 0回复

[模块网络] CAN通讯系列13- Bus off 你知多少?

[复制链接]


该用户从未签到

发表于 3-12-2023 08:03:00 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在前面几篇文章


CAN/CAN-FD的Bus-Off排查和定位之基础1CAN/CAN-FD的Bus-Off排查和定位之错误帧2CAN/CAN-FD的Bus-Off排查和定位之CAN FD 错误帧3CAN通讯系列11- 错误帧的基本信息提到总线关闭态,即CAN Bus off,节点的三种错误状态之一,如下所示:
CAN通讯系列13- Bus off 你知多少?w1.jpg

Source: CAN入门书,renesas当节点处于总线关闭态,将不能参加总线通讯,即CAN报文的接收和发送均被禁止。这意味着对该节点的通讯影响很大,因此本文接下来将详细介绍什么是Bus off,怎么产生的,又该如何恢复等内容。   1 Bus off是什么  

根据CAN总线协议的定义,当节点处于被动错误状态时,发送错误计数值(TEC)大于255,那么节点就会跳转到总线关闭态,即Bus off,这时节点就不能参与总线通讯,无法发送和接收CAN报文。2 Bus off 是怎么产生的  

为了彻底了解Bus off产生的机制,需要将前面文章的几个概念串起来理解,包括错误类型和错误状态等内容。首先要了解发送错误计数值(TEC),它是根据CAN总线协议的相关定义来变化。比如:
    发送节点在输出错误标志时,TEC需要+8;发送节点在发送主动错误标志时,检测出位错误,TEC需要+8等;
假设场景:某节点处于主动错误状态,初始TEC为0,一直向总线发送一条报文,但因干扰原因每次都发送失败(输出错误标志),那就意味着每次发送都会使得TEC+8,因此发送了16次(TEC=8*16=128)该节点跳转到被动错误状态,再发送16次(TEC=128+8*16=256),该节点跳转到Bus off。因此,需要理解好下面这个表所列的情况与TEC,REC的变化关系:   
CAN通讯系列13- Bus off 你知多少?w2.jpg

Source: CAN入门书,renesas要理解好上表,本质上是要了解错误类型有哪些以及错误帧的定义,可以参考前面文章。最后要了解错误状态的跳转关系,即主动错误状态,被动错误状态和总线关闭态3者之间的跳转。通过TEC和REC来决定进入何种状态,根据定义有:
    当TEC<127且REC<127时,节点处于主动错误状态;当TEC>127或REC>127时,节点处于被动错误状态;当TEC>255时,节点处于总线关闭态;当在总线上检测到128次连续11个位的隐性位时,节点会从总线关闭态跳到主动错误状态。
通过以上内容就构建了由错误的出现引起错误计数值变化,进而导致错误状态的跳转,引起节点功能的变化。   3 Bus off 是怎么恢复的,引自[4]  

当节点进入Bus off后,如果MCU仅是开启自动恢复功能,CAN控制器在检测到128次11个连续的隐性位后即可恢复通信,在实际的CAN通信中,这一条件是很容易达到的。而当进入Bus off时,节点已经发生了严重的错误,处于不可信状态,如果迅速恢复参与总线通信,具有较高的风险。因此,在实际的应用中,往往会通过MCU对CAN控制器Bus off的恢复过程进行编程处理,以控制节点从Bus off恢复到主动错误状态的等待时间,达到既提高灵活性又保证节点在功能上的快速响应性的目的。具体包括“快恢复”和“慢恢复”策略,两种策略一般同时应用。https://www.zlg.cn/can/article/detail/id/1055.html
即当节点进入Bus off后,可以通过以下几种方法恢复:
    MCU仅开启CAN控制器的自动恢复功能,节点只需检测到128次11个连续的隐性位便可恢复通信。MCU没开启CAN控制器的自动恢复功能,也不主动干预总线关闭错误,节点将一直无法“自动”恢复总线通信,只能通过重新上电的方式使节点恢复, 恢复过程如下所示。

CAN通讯系列13- Bus off 你知多少?w3.jpg
source:节点BusOff恢复过程分析与测试-广州致远 3. MCU对CAN控制器的恢复过程进行编程处理,即节点的恢复行为由具体的编程逻辑决定,各厂家普遍采用了先“快恢复”后“慢恢复”的恢复策略,恢复过程如下所示。
CAN通讯系列13- Bus off 你知多少?w4.jpg
    source:节点BusOff恢复过程分析与测试-广州致远 一般OEM都会对ECU零部件供应商提出相应的Bus off恢复策略,比如:先快恢复后慢恢复以及恢复时间等需求:
    对于快恢复,恢复时间应小于100ms,恢复次数为5次;对于慢恢复,恢复间隔为1000ms,恢复次数 不限。
其实所谓的快恢复和慢恢复,即进入CAN Bus off后,ECU重新初始化CAN模块,并等待一段恢复时间后,重新使能总线报文的发送。如果报文发送成功,则Bus off恢复成功。4 小结以上就是对Bus off相关概念的简单介绍,需要了解更多关于Bus off的内容,可参考:
    CAN总线从入门到放弃(二)- CAN总线错误状态转换 CAN总线错误帧详解-EDN 电子技术设计 CAN通信:Busoff问题知多少 CAN总线“错误”不在可怕节点BusOff恢复过程分析与测试

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 20-11-2024 19:28 , Processed in 0.433925 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.