码迷,mamicode.com
首页 > 其他好文 > 详细

基于CAN的autosar网络管理

时间:2020-01-07 18:10:54      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:定义   应用   三种模式   timeout   center   运行   控制器   机制   使用   

车载网络总线管理的目的是使网络中的ECU节点有序地睡眠和唤醒,在没有通信需求的时候睡眠,可以节约电池的能量。

CAN总线上的网络管理,是一种无中心式的网络管理,网络中的每个节点都依赖于自己和别人的网络管理报文(NM PDU)来实现通信的睡眠和唤醒,这个NM PDU是周期性发送的,对于每个ECU来说,收到别的ECU发送的NM PDU则意味着当前的网络有通信需求,自己发出NM PDU则是告知别的ECU自己有通信需求。如果某个ECU打算进入Bus-Sleep-Mode,它就会通止发送NM PDU,在进入Bus-Sleep-Mode之前会有一段延时,如果在这段延时中没有收到任何NM PDU,则它就会转入Bus-Sleep-Mode状态了。

技术图片

AUTOSAR中定义的网络管理PDU

上图定义了NM PDU的格式,byte 0标识ECU的节点地址,byte 1是控制信息。

CAN NM为ECU的网络管理定义了三种模式(Mode):

  1. Bus-Sleep Mode
  2. Prepare Bus-Sleep Mode
  3. Network Mode

最后的Network Mode又分为三个状态(state),

  1. Repeat Message State
  2. Normal Operation State
  3. Ready Sleep State

CAN总线上的网络管理的核心,就是ECU在这3种模式和3个状态之间的转换的状态机。

技术图片

基于CAN的网络管理中ECU的NM状态机

跟着状态机走一遍,就会对这个过程有比较直观的了解了。

ECU最初处于Bus-Sleep Mode中,当它有了通信需求(比如接收其他ECU的NM报文,或者它的逻辑功能要求自己唤醒,比如车门控制器收到了遥控钥匙的信号),它就会进入Network Mode,Repeat Message状态是Network Mode的入口状态,到达这个状态之后,ECU会启动一个Repeat Message Timer,在这个Timer定义的时间内,ECU会一直处于Repeat Message状态。当这个timer结束后,如果有通信需求,ECU则进入Normal Operation状态,如果没有通信需求,则进入Ready Sleep 状态。Normal Operation状态就是ECU正常运行的状态,此时它的应用报文和NM报文都会正常收发。当ECU没有通信需求,它会瞬间进入Ready Sleep状态,在Ready Sleep中,如果又出现了通信需求,ECU则瞬间再回复到Normal Operation,如果在一个Timeout Timer中一直没有通信需求,ECU就进入Prepare Bus-Sleep Mode,在Prepare Bus-Sleep状态中,也会启动一个Timeout Timer,如果在这段时间内有了通信需求,ECU又会立即回到Repeat Message状态,如果过了这个timer还没有通信需求,则ECU会回到Bus-Sleep Mode中。

综上所述,ECU网络管理的实现的核心就是实现这个状态机,在AUTOSAR中,这些状态之间的跳变就是由AUTOSAR定义的各种接口函数实现的。但是真实使用的时候不是这么简单,还有很多机制,暂不深究。

基于CAN的autosar网络管理

标签:定义   应用   三种模式   timeout   center   运行   控制器   机制   使用   

原文地址:https://www.cnblogs.com/still-smile/p/12162643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!