基于CAN的网络管理(network management)

2020年2月26日 评论 1,587 1260字

车载网络总线管理的目的是使网络中的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状态了。

基于CAN的网络管理(network management)

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的网络管理(network management)

基于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定义的各种接口函数实现的。

来源:汽车ECU网络诊断技术 ,作者:zdybupt

继续阅读
weinxin
立即关注公众号:
1、免费领取线束设计资料包(资源); 2、进入线束技术交流专家群(进群);3、免费获取发布求职招聘信息。
转载
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: