深圳市航顺芯片技术研发有限公司
直播中

赵辉

13年用户 967经验值
私信 关注
[问答]

AUTOSAR CAN网络管理状态机介绍

AUTOSAR CAN网络管理状态机为什么停发应用帧?有什么解决办法吗?

回帖(1)

刘琴

2021-9-24 17:52:46
  一、背景:
  在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,在量产车上必须要解决掉,否则休眠时间过长会导致电池严重匮电。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分