AUTOSAR CAN Busoff处理

Busoff产生机制

CAN通信Busoff即总线关闭态,一个CAN节点有三种状态,主动错误状态、被动错误状态以及总线关闭态。如下图可知进入Busoff的原因是因为发错错误大于255,在此状态节点不能收发报文。

image-20220922133126781

单节点特殊情况

根据CAN规范,单节点发送报文NO ACK的错误也会使发送节点的TEC不断增加,那么TEC是否会增加到大于255,进而产生Busoff?实际测试是不会的,TEC只会增加到128,这是为什么呢?如果总线上只有一个节点,也就没有必要通信,自然也没必要进入Busoff,当节点TEC增加到128后按上图是进入到被动错误状态。

根据如下规范内容描述:节点发出错误标志时,发送错误加8,但是节点如果处于被动错误态检测到ACK错误就不再发出错误标识了,TEC保持不变。这种情况也很好理解,就是发送节点一直发送报文,但是在TEC累计到128之前一直没有接收节点应答ACK,因此到128后就没必要一直发送了。

image-20220922134909429

Busoff诊断故障代码处理机制

下图是一个客户需求,由图可知Busoff发生后快恢复100ms,Busoff一直存在连续恢

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AUTOSAR中的CANSM模块是一种用于控制CAN总线的软件模块。当CAN总线出现故障时,CANSM模块会触发一种称为Busoff(总线断线)的状态。Busoff状态表示CAN控制器无法与总线进行正常通信,可能是由于电缆断开、节点供电故障或其他硬件故障引起。在Busoff状态下,CANSM模块将发送诊断信息通知系统的其他部分,以便进行相应的处理。 当CANSM模块检测到总线故障时,它将触发一系列的行为。首先,它会将相关信息发送给其他相关模块,以通知它们总线已经进入Busoff状态。然后,它会尝试重新初始化CAN控制器,恢复与总线的通信。如果重新初始化失败,则CANSM模块将继续保持Busoff状态,并且系统中的其他模块将根据需要采取相应的措施,例如切换到备用通信总线。 在Busoff状态下,CANSM模块还会监控总线状态的恢复。一旦检测到总线再次可用,CANSM模块将尝试重新初始化CAN控制器,以便系统能够恢复正常通信。如果重新初始化成功,CANSM模块将切换回通常的运行状态,并继续处理CAN总线上的数据。如果重新初始化失败,则CANSM模块将保持在Busoff状态,并通知其他模块总线仍然不可用。 总之,AUTOSAR中的CANSM模块用于处理CAN总线故障时的Busoff状态。它通过发送诊断信息、尝试重新初始化CAN控制器和通知其他模块来处理总线故障。只有当总线恢复可用,并且重新初始化成功时,CANSM模块才会切换回正常运行状态。否则,它将继续保持Busoff状态,并通知系统其他部分总线仍然不可用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

钢琴上的汽车软件

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值