一、前言
- 为什么要引入网络管理呢?上电同时启动,下电同时关闭,它不香吗?
- 汽车启动时, ECU之间怎么保持同步唤醒的呢?
- 下电时, ECU又是怎样协同罢工的呢?
- 本文基于AutoSar CP官方文档AUTOSAR_SWS_CANNetworkManagement.pdf(R21-11)
汽车上ECU节点千千万万,不可能点火时所有ECU都正常工作,而是当用户需要请求相关功能时,参与该功能的相关ECU节点才需要启动起来,否则带来的只是过多对电池的无用消耗。
为了更好的去利用整车的能源,防止出现不必要的电池浪费,网络管理(Network Management,以下简称NM)便可以很好的解决此类问题,最大可能的高效利用整车电池能源,节约用车成本,延长电池使用寿命。
虽然汽车上网络总线类型多种多样,有CAN, FlexyRay、 Lin、 Ethernet等,但基本原理相似,本文将以最为常见的CAN总线的NM来讲述
二、总体说明
- AUTOSAR CanNm算法基于分散的直接网络管理策略,使得每个节点能够独立运行。该策略利用周期性的网络管理PDU来保持网络管理集群的唤醒状态,并确保所有节点同步。当网络处于低活动状态时,节点进入总线休眠模式以节省能量消耗,从而提高通信系统的效率(同睡同醒)
- 每一个CanNm节点(ECU)连接在一个共用的集群总线上,每个CanNm节点的收发会以广播的形式,即发送PDU给集群总线上的所有结点,接收集群总线上所有发出来的PDU(广播收发)
- 每个CanNm节点会收发两种数据: 网络管理报文(NM PDU) , 应用报文(APP PDU)
- 如果CanNm集群总线上的某一个节点没有收到PDU,则它会启动一个定时器来检测是否需要进入总线休眠模式,在该过程中,该结点只收不发,如果收到PDU,则该结点会推迟进入总线休眠模式(准备总线睡眠模式,只收不发)
- 如果CanNm集群总线进入休眠状态后,总线上的任何节点需要总线通信,则该节点会唤醒总线,并发送一个唤醒信号给集群总线上的所有节点,唤醒信号会唤醒总线上的所有节点(更多详细信息在ComM有介绍)
- 对于CanNm集群总线上的节点,如果它需要总线通信, 就应定期传输⽹络管理PDU,否则, 它不应传输任何⽹络管理PDU(见表4.2节)
- 如果 CanNmStayInPbsEnabled 被禁⽤,且CanNm集群中的总线通信被释放(总线上没有PDU传输?),且在 CanNmTimeoutTime + CanNmWaitBusSleepTime 时间内,没有收到任何网络管理PDU,那么将进入总线休眠模式
三、网络管理报文(NM PDU)格式
- NM PDU中, Byte0-Source Node Identifier(节点源地址)和Byte1-Control Bit Vector(控制字节)。这两个字节在NM PDU中的位置是可以配置的(可以交换位置,也可以都不存在)
- Source Node Identifier(节点源地址),是节点的标识符,网络中所有节点的源地址是唯一的
- Byte1-Control Bit Vector(控制字节),在节点初始化的时候被置为0x00,具体含义如下
四、每个节点的CanNm状态机的状态(三大三小)
4.1. 三大三小状态说明
- 网络模式(Network Mode)
- 节点在该模式下,所有阶段都会收发APP PDU,但只有RMS和NOS阶段会收发NM PDU
- Repeat Message State(报文重复阶段-RMS)
- 当节点从其他模式进入Network Mode时,默认进入Repeat Message State,该阶段是网络正式开始工作前的准备阶段,用来等待网络中所有相关节点进行网络准备,开启通信
- Repeat Message State(报文重复阶段-RMS)
- Normal Operation State(常规运行阶段-NOS

最低0.47元/天 解锁文章
2638

被折叠的 条评论
为什么被折叠?



