CAN通信基础:总线关闭(BUS OFF)的概念和处理方式
创作时间:
作者:
@小白创作中心
CAN通信基础:总线关闭(BUS OFF)的概念和处理方式
引用
CSDN
1.
https://blog.csdn.net/wendy_mooncat/article/details/144477239
1. BUS OFF的概念
在CAN通信中,BUS OFF是指节点由于发送错误帧超出一定数量,而被总线“关闭”的状态。当节点进入BUS OFF状态时,它将无法再发送或接收任何消息,直到被重置或自动恢复。BUS OFF是CAN通信提供的一种错误处理机制,它可以防止错误节点继续影响整个网络。
2. BUS OFF故障
2.1 通信节点状态
CAN节点的状态转移包括以下几个阶段:
主动错误(Error Active):
ECU上电或重启后,默认进入主动错误状态,TEC(发送错误计数器)和REC(接收错误计数器)清零;
主动错误状态下,通信节点可以正常发送和接收消息;
主动错误状态下,通信节点若检测到错误,则发送主动错误标志(连续6个显性位)。
被动错误(Error Passive):
当ECU的TEC或REC计数大于127,ECU自主动错误状态进入被动错误状态;
被动错误状态下,通信节点可以发送和接收消息,但会受到一定的限制(如传输暂停);
被动错误状态下,通信节点若检测到错误,则发送被动错误标志(连续6个隐性位)。
被动错误状态下,若TEC和REC计数均小于127,ECU则可以返回主动错误状态;若TEC技术大于255,ECU进入总线关闭状态。
总线关闭(Bus Off):节点因发送错误帧过多而被总线关闭,无法发送或接收消息。
当被动错误状态下的通信节点,TEC大于255时,ECU进入总线关闭状态;
总线关闭状态下,通信节点不能接受和发送消息;
CAN协议提供了总线关闭状态的恢复策略,即上层控制且通信节点检测到128次11个连续隐性后,ECU可以清零TEC和REC并重新进入主动错误状态。
2.2 错误计数器累加原则
说明:以下计数器累加原则,翻译自ISO-11898:2015 12.1.4.2 Error counting章节。
- 当Receiver检测到错误时,接收REC应增 1,除非检测到的错误是在发送有效错误标志或过载标志时发生的位错误。
- 当Receiver在发送错误标志后的第一位检测到一个显性位时,REC应递增 8。
- 当Transmitter发送错误标志时,TEC应递增 8。
- 例外 1:如果Transmitter处于被动错误状态,由于没有检测到显性ACK位而产生ACK错误,TEC不增加;如果Transmitter处于被动错误状态,发错被动错误标志时没有检测到显性位,TEC不增加。
- 例外 2:如果Transmitter发送错误标志是因为在仲裁过程中发生了位错误,即发送隐性位,而回读到显性位,TEC不增加。
- 如果Transmitter在发送主动错误标志或过载标志时检测到位错误,发送错误计数器应递增 8。
- 如果Receiver在发送主动错误标志或过载标志时检测到位错误,则接收错误计数器应递增 8。
- 任何节点在发送主动错误标志、被动错误标志或过载标志后,应最多容忍 7 个连续的主位。在检测到连续 14 个显性位后(在主动错误标志或过载标志的情况下),或在被动错误标志后检测到连续 8 个显性位后,以及在每个额外的连续 8 个显性位序列后,每个Transmitter应将其TEC递增 8,每个Receiver应将其REC递增 8。
- 传输帧成功后(获得 ACK 且在 EOF 结束前未检测到错误),TEC应减 1,除非它已为 0。
- 成功接收帧后(接收到 ACK 时隙前无错误且成功发送 ACK 位),如果REC在 1 和 127 之间,则应递减 1。如果REC为 0,则应保持为 0;如果大于 127,则应设置为 119 至 127 之间的值。
3. BUS OFF恢复策略
3.1 BUS OFF恢复
当通信节点进入BUS OFF状态后,需执行如下操作:
- 通信节点的初始化CAN模块。
- 通信节点在指定时间内禁止发送报文,处于只听状态。指定时间为快恢复时间或者慢恢复时间,参考3.2章节。
- 通信节点恢复CAN正常通信。
3.2 BUS OFF恢复策略
恢复策略选择
- 自动恢复:ECU使用自动恢复功能,ECU检测到128次11个连续隐性位便可恢复通信。请参考节点状态图中Bus Off→Error Active的恢复策略。
- 重启控制器:ECU不适用自动恢复功能,且不主动干预BUS OFF错误,则ECU无法自BUS OFF状态恢复总线通信。只能通过重新上电的方式,使节点进入主动错误状态。
- 主动控制(快恢复和慢恢复):ECU对于BUS OFF恢复状态进行编程控制,使用快恢复+慢恢复的策略,减少严重错误的ECU对于总线通信的干扰。主动控制是更为常见的方式。
恢复策略介绍
- ECU进入BUS OFF状态后,会先执行快恢复操作。快恢复过程中,ECU会尝试向总线上发送报文(Tx Attempt阶段),若出现发送错误,TEC正常累加。TEC累加至255后,ECU再次进入BUS OFF状态。此时,ECU会在tBusOffQuick时间内,不再尝试向总线发送报文。等待tBusOffQuick时间后,ECU再次尝试向总线发送报文。
- ECU在连续5次快恢复,即6次进入BUS OFF状态,将执行慢恢复操作。备注:具体次数由ECU设计决定,5次是常见值。
- ECU执行慢恢复,会在进入BUS OFF状态等待tBusOffSlow时间后,再尝试向总线发送报文。
参数 | 最小值(ms) | 标称值(ms) | 最大值(ms) |
|---|---|---|---|
tBusOffQuick | 45 | 50 | 70 |
tBusOffSlow | 180 | 200 | 220 |
4. BUS OFF与DTC记录
- 连续nBusOffCount次BUS OFF,且没有报文成功发送,则ECU需要记录BUS OFF的故障码。下表中值仅供参考,具体值需要参考OEM对于ECU的诊断设计。
参数 | 最小值 | 标称值 | 最大值 |
|---|---|---|---|
nBusOffCount | - | 8 | - |
- 当ECU进入BUS OFF模式后,只应存储BUS OFF故障码,不应存储节点丢失或通信超时故障码。因为BUS OFF状态无法接受总线报文,不能判定其他节点丢失或通信超时。
热门推荐
空姐体检:严苛考验下的蓝天通行证
商场保安应急处置指南
南宁三日游攻略:带娃游玩景点推荐及费用预算
GI值和GL值:高血糖、糖尿病患者的饮食指南
南方科技大学:创新驱动与科研突破,助力建设一流研究型大学
解构人性:东西方哲学视角下的深度思考
绘画心理分析师是如何做到“读其画、读其心”?
法律上12岁属于什么人
量子物理学:定义与理论
高中的私立学校:选择、好处及优质教育的展望
如何利用BAPC模型进行GBD数据库的全球疾病负担趋势预测
为什么汾酒大曲被称为“国曲”之本
如何选择高性能鼠标?专家推荐五大关键因素
小朋友做功課超易分心?勁有效3招提升選擇性專注力
为什么人类热衷于亲亲?这也许是恋爱脑的科学解释...
错题本用对了,高考提分快一倍!
一本、二本、三本和专科的差距到底有多大?看完瞬间清醒!
如何用Excel制作数据看板并实现数据可视化?从入门到精通的完整指南
心血管疾病患者喝茶指南:从冠心病到脑血栓,全面解析喝茶对心血管健康的影响
大运偏财流年劫财:八字命理中的财富流转
延迟性肌肉酸痛:提醒你更好地调整训练量和训练强度
东莞虎门“社区干部”月薪为何能到2万
樊宝英:鲁迅评《文心雕龙》
23家券商人均薪酬放榜:11家下滑,中信证券最高79万
如何制定实现财务自由的计划?实现财务自由的过程中需要注意哪些问题?
恋与深空新手超全易懂的养卡攻略
牙疼不是病,疼起来真要命!对于牙疼,您真的了解吗?
阿托伐他汀禁止与哪些食物、药物同服?药食冲突是如何产生的?
无人机驾驶证含金量高吗?用途有哪些?
共同犯罪中对犯罪数额的认定与法律适用