【车载开发系列】车载总线的Busoff功能需求

【车载开发系列】车载总线的Busoff功能需求

【车载开发系列】车载总线的Busoff功能需求

  • 【车载开发系列】车载总线的Busoff功能需求
    • [一. 什么是Busoff](#一. 什么是Busoff)
    • [二. Busoff机制需求](#二. Busoff机制需求)
    • [三. Busoff监控开启/关闭条件](#三. Busoff监控开启/关闭条件)
    • [四. 记录故障码条件](#四. 记录故障码条件)
    • [五. 消除故障码条件](#五. 消除故障码条件)
    • [六. 快恢复模式](#六. 快恢复模式)
    • [七. 慢恢复模式](#七. 慢恢复模式)
    • [八. 故障后的超时监测](#八. 故障后的超时监测)

一. 什么是Busoff

BusOff就是总线掉线的意思。当前节点Can线发生短路(物理短接)或发向总线的报文被干扰出错(NO ACK错误也会导致TEC++),这个时候当前节点需要向总线发送错误帧,发送错误计数器(TEC)开始计数(发一帧错误帧TEC+8,成功发送一帧正常帧TEC - 1),当TEC > 255,当前节点进入就进入了BusOff状态,此时节点将不再接收/发送报文。

根据错误计数器值,节点可以分为主动错误状态,被动错误状态以及Busoff发生状态三种。

上面这个就是ECU节点错误的状态图,其中TEC(发送错误计数器)/REC(接收错误计数器) 都是硬件计数器的意思,这些硬件的计数器都是由硬件寄存器来实现的。

二. Busoff机制需求

Bus Off为ECU总线通讯关闭,ECU进入Bus Off故障后报文发送被禁止。通过访问CAN控制器状态识别Bus Off错误,当ECU检测到Bus Off错误后,需进行Bus Off恢复计时,并且CAN控制器要立即执行初始化。

ECU首次进入BusOff需执行快恢复,五次连续的快恢复(连续的快恢复是指两次快恢复之间该ECU未发送任何正常报文)之后再次进入Bus Off故障需执行慢恢复。

三. Busoff监控开启/关闭条件

ECU Bus Off错误监控开启条件一般情况下与网络相关诊断开启条件一致,也就是ECU在唤醒状态下,供电电压范围在网络相关诊断开启电压范围(9-16V)之内,TDiagStart以及TReStart发生超时的时候,Busoff将会被触发。

如果ECU没有唤醒(通讯关闭,报文停止发送),或者供电电压范围在网络相关诊断开启电压范围(9-16V)之外,或者TDiagstart没有超时,那么即便Busoff故障,故障码也不会发生。

四. 记录故障码条件

当ECU进入Busoff之后快恢复要被执行,如果ECU经历三次连续快恢复之后仍然不能恢复,ECU需在第四次进入BUSOFF故障时,记录BUSOFF的故障码(在这里目前常规情况下第八次记录Busoff、故障的比较居多)

ECU处于Busoff故障时网络管理状态必须不能被影响。

五. 消除故障码条件

在快慢恢复计时器满后,ECU尝试在总线发送报文,当成功发送一帧及以上正常报文,表示ECU从Busoff状态恢复。

ECU成功从Busoff状态恢复,且持续100ms内没有再次进入Busoff状态的情况下,ECU需要清除Busoff故障码的当前故障,保持历史故障。

快恢复和慢恢复过程是强制的,所有周期型混合型的报文要在ECU离开Busoff之后尽可能快的发送出来。

根据主机厂的不同,Busoff故障码清除条件也不同。

时间 计时开始条件 标准值
快恢复计时器T_BusoffQuick ECU发送错误计时器达到了255,进入故障时开始计时 100ms±10ms
慢恢复计时器T_BusoffSlow ECU发送错误计时器达到了255,进入故障时开始计时 1000ms±50ms

六. 快恢复模式

进入Busoff之后ECU需要立刻重新初始化CAN控制器,同时开启T_busoffQuick计时器,关闭ACK应答机制(快恢复期间不发送报文)。连续5次快恢复之后进入慢恢复状态。

在ECU初始化CAN控制器完成之后,检测到累计128次11个连续隐性位后控制器可以打开ACK应答机制。

七. 慢恢复模式

进入Busoff之后ECU需要重新初始化CAN控制器,同时开启T_busoffSlow计时器,关闭ACK应答机制。

在ECU初始化CAN控制器完成之后,检测到累计128次11个连续隐性位后控制器可以打开ACK应答机制。

八. 故障后的超时监测

Busoff故障发生之后,ECU内部计数器(NBusOffCount)加1,当计数器累加到NBusOffCount的时候,就记录Busoff的故障码。

当ECU进入Bus Off模式后,ECU应只存储Bus Off故障码,不存储超时故障码。

参数 最小值 标称值 最大值
NBusOffCount - 8次 -

☆当NBusOffCount等于8时,即执行5次快恢复,2次慢恢复后仍然没有恢复通信,在进入第三次慢恢复之前记录Bus Off故障

☆NBusOffCount 清零策略:节点连续5s 未发生Bus Off,计数器清零

相关推荐
千里马学框架15 小时前
敏感权限如何自动授权?pkms的permission部分常用命令汇总
android·车载系统·framework·perfetto·权限·系统开发·pkms
进击的横打17 小时前
【车载开发系列】安全算法与安全访问
算法·安全·车载系统
MatrixData2 天前
网络通讯子系统
车载系统·智能座舱·座舱子系统
码界奇点3 天前
基于Spring MVC的缺陷管理系统设计与实现
java·spring·车载系统·毕业设计·mvc·源代码管理
杰克崔3 天前
脚本抓取elf文件里有任务映射使用的部分大小及脚本使用注意事项
linux·运维·服务器·车载系统
码界奇点5 天前
基于Spring Boot与MyBatis-Plus的后台管理系统设计与实现
spring boot·后端·车载系统·毕业设计·mybatis·源代码管理
杰克崔7 天前
kprobe及kretprobe的基于例子来调试分析其原理
linux·运维·服务器·车载系统
Coder个人博客8 天前
Linux6.19-ARM64 boot Makefile子模块深入分析
linux·车载系统·系统架构·系统安全·鸿蒙系统
合兴软件@9 天前
芯片适配快讯:合兴软件ISDT成功适配英飞凌TC3/TC4系列MCU
测试工具·车载系统·嵌入式实时数据库
杰克崔12 天前
内核调度子系统专栏导航——包括免费专栏里调度子系统部分(持续更新)
linux·运维·服务器·车载系统