AUTOSAR CAN网络管理状态机的优化方案

一、背景:

       在AUTOSAR CAN网络管理框架下,如果所有的节点都按照状态机要求,在ReadSleep状态下停发NM帧,在Prepare Bus-Sleep模式下停发App帧,所有节点可以从Prepare Bus-Sleep模式开始同步进入Bus-Sleep模式。如下图所示

二、意外情况:

      如果某个节点由于软件Bug进入Prepare Bus-Sleep模式后并没有停发应用帧,或者网络上有其它干扰报文。那么在经过时间T-Wait Bus Sleep后所有控制器一起休眠,过一会儿对于只支持任意帧唤醒SBC芯片的ECU又会被这个干扰App帧唤醒控制器。然后ECU检测到该帧并非唤醒帧,持续一段时间后重新走休眠流程,然后又会被唤醒。如此ECU反复的休眠->唤醒->休眠->唤醒....这是不正常的现象。严重时可能导致ECU SBC芯片异常再也不能被唤醒。导致驾驶员重新点火后该ECU不工作,使车辆不能开动。

      另外,该ECU反复的休眠->唤醒->休眠->唤醒....时间太长可能会引起蓄电池匮电,甚至将耗尽电能。

三、解决方案:

在Prepare Bus-Sleep模式,只要收到任意非网络管理帧,就复位T-Wait Bus Sleep计时器。直到网络上没有任何报文,计时T-Wait Bus Sleep再休眠。如果网络上持续存在异常报文,且任意帧间隔小于T-Wait Bus Sleep,则ECU就一直处于Prepare Bus-Sleep模式永不休眠,直至被测试人员发现或电池耗尽。但可以避免ECU反复的休眠->唤醒->休眠->唤醒....导致ECU SBC芯片异常。

即,对AUTOSAR CAN网络管理状态机增加如下黄色处理。

从CPU视角看程序里的状态机如下,

四、小结:

1. 对于只支持任意帧唤醒SBC芯片的ECU,通过这个方法在测试阶段可以防止ECU反复休眠->唤醒->休眠->唤醒....导致ECU SBC芯片异常。

2. 在Prepare Sleep有ECU依然发出非网络管理帧属于软件Bug,在量产车上必须要解决掉,否则休眠时间过长会导致电池严重匮电。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值