0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是busoff?BUSOFF是如何产生的?BUSOFF恢复机制和故障码记录

jf_EksNQtU6 来源:智能汽车电子与软件 2023-09-04 09:48 次阅读

1、什么是busoff?

BUSOFF,从字面意思可以看出,表示总线的关闭,此时ECU从总线脱离,既不能接收总线的报文,也不能向总线发送报文。

2、BUSOFF是如何产生的?

CAN总线上存在多种错误状态,包括:位错误(Bit Check Error)、位填充错误(Bit Stuff Error)、CRC错误(CRC Error)、帧格式错误( Check Error)、应答错误(Acknowledgment Error)。

CAN模块配有接收错误计数器(REC)及发送错误计数器(TEC);CAN错误存在三种状态,即主动错误、被动错误、总线关闭;

1.当发送错误计数器和接收错误计数器值都小于128,为“主动错误”

2.当发送错误计数器或接收错误计数器值大于等于128,变为“被动错误”

3.当发送错误计数器大于等于256时,“总线关闭”。

58977178-4a41-11ee-97a6-92fbcf53809c.jpg

因此:节点进入busoff状态,一定是因为节点自身识别到自己发送错误,TEC大于255导致的。

3、BUSOFF恢复机制和故障码记录

1)恢复机制

11898-1规范中,规定:当节点busoff以后,至少要等待连续128个11 bit隐性位;

当有节点发生busoff时,为了不干扰同网段内的其他节点通信,故障节点不应过快地参与通信。先让故障节点进行一个快恢复,这样,因为偶发干扰导致的节点故障可以快速恢复,重新参与通信。如果故障节点经过了几次快恢复,仍然没有恢复正常通信,为了尽可能地降低对同网段其他节点的通信干扰,可以让故障节点进入慢恢复,即:让故障节点不要过快地加入总线,降低其对总线的干扰。

快恢复(L1)

恢复时间, <=100ms

恢复次数,5~10次不等

慢恢复(L2)

恢复间隔, [200ms, 1s]

恢复次数, 不限

2)DTC使能条件

成熟条件:恢复N次不能成功之后,记录DTC

Bus Off产生后,不再记录通信丢失类DTC

3、哪些因素会导致BUSOFF?

引起错误的原因主要包括:

1)CAN_H开路、

2)CAN_L开路

3)CAN_H对CAN_L短路/开路、

4) CAN_L对VBAT短路

5) CAN_H对GND短路

6) CAN_L对GND短路

7)终端电阻开路

8)CAN控制器收发器元器件故障

9)CAN总线信号干扰导致

5、BUSOFF发生后如何处理?

BUSOFF故障发生后,一般可以重启CAN控制器或是重新上电;

当发生CAN总线关闭时,我们可以检查Bus Off寄存器的值,对CAN控制器的驱动及相关寄存器进行初始化操作。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    2975

    浏览量

    104791
  • CAN总线
    +关注

    关注

    145

    文章

    1812

    浏览量

    129600
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    92995
  • CRC效验
    +关注

    关注

    0

    文章

    30

    浏览量

    1072
  • 终端电阻
    +关注

    关注

    1

    文章

    87

    浏览量

    11608

原文标题:CAN总线busoff原理介绍

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    将TC397的MCMCAN模块的canh和canl短接到GND,MCMCAN模块进入到bus off状态后无法继续正常发送的原因?

    中,MCMCAN模块进入到bus off状态后,故障移除后,无法继续正常发送。请问是因为AURIX也有类似下述从busoff自动恢复的寄存器未配置吗?还是别的原因?
    发表于 02-01 07:21

    请问TC275造busoff故障后的状态标志位是哪个?

    1.先关闭busoff恢复,然后造busoff故障2.去读取CAN_NSRx寄存器的BOFF位,一直为0 现在想做busoff的快慢
    发表于 02-06 07:26

    TC275由于错误帧太多了,导致进入busoff状态怎么解决?

    由于错误帧太多了,导致进入busoff状态,这时候需要怎么才能恢复,退出busoff状态?节点控制寄存器Node x Control Register 中的INIT(Node Initialization)这一位应该怎么操作?
    发表于 02-18 06:03

    spc560p怎么使用中止机制

    你好伙计们 我正在使用spc560p的flexcan模块,现在我想使用中止机制通过软件而不是硬件自动从busoff状态恢复can总线,因为硬件恢复太快了。因此,当我捕获ESR寄存器中的
    发表于 11-12 10:33

    怎样对CAN节点的Busoff恢复时间进行准确测量?

    如何准确测量CAN节点的Busoff恢复时间?
    发表于 05-20 06:17

    ti280025 CAN通信

    急!!!ti280025CAN通信出现busoff恢复之后我需要把邮箱里的数据清除,再发需要的数据。各位大神怎么清除邮箱里现有的数据?我没找到对应的寄存器。
    发表于 07-30 21:43

    求助,有没有S32K1 busoff相关的demo代码?

    有没有S32K1 busoff相关的demo代码?
    发表于 04-03 07:01

    S32K118在高负载时Busoff中断丢失的原因?

    测试用例反复短路 CANH 和 CANL。如果 S32K118 的负载较低,则恢复策略可以正常工作。步骤1。Busoff 引发中断并设置标志。第2步。在主循环中,如果标志被设置,DeInit
    发表于 04-17 06:19

    一种嵌入式Linux系统多重备份与恢复机制

    出现故障,触发 watchdog 机制重启,激活自动备份与恢复机制,保证系统任何时候都有一个可用的系统运行。该方法在S5PV210处理器和Linux平台下进行模拟实验,得到很好的验证。当故障
    发表于 09-20 07:01

    基于基本回路的MPLS网络重路由故障恢复机制

    研究MPLS网络中的重路由故障恢复机制,提出一种新的计算备用路径的方法,将备用路径的计算分为预处理和在线计算2个过程,给出一种基于基本回路的重路由故障恢复机制(FC-R)。仿
    发表于 04-23 10:34 29次下载

    分布式文件系统中恢复机制的研究

    在分布式系统中,共享的文件资源可根据用户的需求保存多个副本,并且由系统自动保证这些副本的一致性。本文阐述了当某机器出现故障后的恢复机制,系统将恢复故障期间未
    发表于 06-15 08:17 16次下载

    基于硬件的密钥安全备份和恢复机制

    本文基于Diffie-Hellman 密钥协定协议和Shamir 门限体制设计了一种密钥安全备份和恢复机制。该机制不需要第三方可信机构的参与,安全地实现了硬件加密设备的密钥备份和恢复。在整
    发表于 09-11 15:51 5次下载

    一种端节点启动的光网络快速恢复机制

    针对当前大多数光网络恢复机制仅某一个端节点启动恢复的缺陷,为进一步减少恢复时间,提出一种基于端节点启动的双向快速恢复机制。仿真证明,该机制
    发表于 09-17 11:23 6次下载

    经验分享:节点BusOff恢复过程分析与测试

    总线关闭是CAN节点比较重要的错误处理机制。在总线关闭状态下,CAN节点的恢复流程是怎样的?如何理解节点恢复流程的“快恢复”和“慢恢复
    发表于 02-08 17:11 6次下载
    经验分享:节点<b class='flag-5'>BusOff</b><b class='flag-5'>恢复</b>过程分析与测试

    CanSM模块如何处理Busoff等问题呢

    如果节点在NOS状态下,一直处于慢恢复,会带来什么问题呢?节点一直在慢恢复期,意味着该节点不会外报文(应用报文和网络管理报文均不会外发),其他节点会上报对应的节点丢失故障
    的头像 发表于 08-29 18:04 1w次阅读
    CanSM模块如何处理<b class='flag-5'>Busoff</b>等问题呢