■ 简介
AP autosar NM是一种网络管理机制,用于控制和协调不同类型的总线(如CAN,FlexRay,ETH等)之间的通信和睡眠状态¹。它的目的是在满足ECU节点正常通信需求的情况下,又能节省汽车蓄电池电量²。
网络管理是AP Services中的一个功能群,作为AP AUTOSAR平台的服务,网络管理包括一个守护进程,该进程实现网络管理的活动方面。
网络管理不直接与自适应应用程序交互,因此RTA-VRTE不提供任何库。
AUTOSAR NM基于分散的网络管理策略,这意味着每个网络节点仅根据通信系统内接收和/或发送的NM消息独立执行活动。AUTOSAR NM算法基于周期性NM消息,群集中的所有节点都通过多播消息来接收它们。
NM消息的接收指示发送节点要保持NM群集处于唤醒状态。如果任何节点准备好进入睡眠模式,它将停止发送NM消息,但是只要接收到来自其他节点的NM消息,它将推迟过渡到睡眠模式。最后,如果由于不再接收NM消息而经过了专用计时器,则每个节点都将执行到睡眠模式的转换。
如果NM群集中的任何节点需要总线通信,它可以通过启动传输NM消息来使NM群集保持唤醒状态。
Autosar AP – 网络管理ara::nm()
■ 框架概述
AP NM提供了请求/查询网络状态的服务,以获取物理网络和PN网络映射的逻辑网路句柄。
1. 请求/释放逻辑网路的句柄;
2. 支持partial networking
左图是NM的网络映射图。
自适应平台规范独立于所使用的基础通信介质,描述了AUTOSAR自适应平台的功能,API设计和网络管理的配置。目前仅考虑以太网,但架构保持总线独立性。网络管理(NM)旨在通过状态管理进行控制,因为部分网络的控制需要通过SM控制的EM的功能组状态与相关应用程序的集合进行协调。
网络管理(NM)旨在通过状态管理进行控制,因为部分网络的控制需要通过SM控制的EM的功能组状态与相关应用程序的集合进行协调。
操作模式
NM有三种操作模式:
1. Network Mode(网络模式)
2. Prepare Bus-Sleep Mode(预睡眠模式)
3. Bus-Sleep Mode(睡眠模式)
左侧是状态迁移图。
NM有三种操作模式:
1. Network Mode(网络模式)
2. Prepare Bus-Sleep Mode(预睡眠模式)
3. Bus-Sleep Mode(睡眠模式)
1.Network Mode(网络模式)
网络模式有三种状态:
1. Repeat Message State(重复报文状态)
这个模式被用来确保从Bus-Sleep或Prepare Bus-Sleep到Network Mode的节点被总线上面其他节点发现。这个状态可以用来检测总线上的节点。
该状态分为快速发送状态和正常发送状态。都是发送固定个数网络管理报文,发的次数和时间间隔都是可配置的。
2. Normal Operation State(常规操作状态)
当节点为主动唤醒网络需要与其他节点继续进行通信时,必须保持在常规操作状态,该状态下网络管理报文和应用报文正常发送。
3. Ready Sleep State(准备睡眠状态)
进入该模式节点停止发送网络管理报文,当NM Timeout Timer超时后停止发送应用报文 。
2. Prepare Bus-Sleep Mode(预睡眠模式)
这个状态是为了等待总线上的所有节点能够在进入Bus-Sleep Mode之前,有时间停止节点的active状态如清空队列中为发送的报文。在Prepare Bus –Sleep Mode下,所有节点都静默下来。
当节点进入PrepareBus Mode时,应该通知上层应用。通过配置CANNM_WAIT_BUS_SLEEP_TIME参数,可以改变节点在PrepareBus-Sleep Mode停留的时间,在这段时间之后节点将会进入其他状态。
在Prepare Bus-Sleep Mode下面接收到NMPDU或者被上层应用请求通信时,节点将进入Network Mode中的Normal operation State。
3. Bus-Sleep Mode(睡眠模式)
总线休眠状态的目的是在不交换消息的情况下降低节点的功耗。如果硬件支持关闭传送和接收。
Bus-Sleep Mode的目的是当没有消息被传送的时候可以减少能量的消耗。在Bus-Sleep Mode下面,节点可以被唤醒(如本地唤醒源和CAN线唤醒源)。 nmNetworkTimeout + nmWaitBusSleepTime两个参数在整个总线上面的节点都应该是一样的配置,保证了总线上的节点能够统一的进行休眠。
当进入Bus-Sleep Mode时候,应该通知上层应用。
NM的主要目的是协调内部协调状态机中基础网络(部分网络,VLAN或物理通道)的正常运行和总线睡眠模式之间的转换。它为状态管理提供了一个service interface,用于请求和释放网络以及查询其实际状态。它协调不同实例(网络句柄)的请求,并通过网络提供汇总的计算机请求。
如果使用了部分网络功能,则Nm消息可以包含部分网络(PN)请求,从而使ECU可以忽略不请求与ECU相关的任何PN的Nm消息。尽管在其他部分网络中仍在进行通讯,但这可以关闭ECU(或其部分)。
AP autosar NM有三种主要的操作模式,分别是:
Network Mode(网络模式):这是总线有通讯的模式,ECU节点处于活跃状态。在这个模式下,NM报文又收又发,APP报文又收又发。
Network Mode中又有三种子状态:
- Repeat Message State(重复报文状态)
- Normal Operation State(正常运行状态)
- Ready Sleep State(准备睡眠状态)³。
Prepare Bus-Sleep Mode(预睡眠模式):这是总线无通讯的模式,ECU节点准备进入睡眠状态。在这个模式下,NM报文只收不发,APP报文不收不发。
如果在预定的时间内没有接收到任何NM报文或唤醒请求,ECU节点将转换到Bus-Sleep Mode³。
Bus-Sleep Mode(睡眠模式):这是总线无通讯的模式,ECU节点处于低功耗状态。
在这个模式下,NM报文只收不发,APP报文不收不发。如果接收到唤醒请求或者自身有通信需求,ECU节点将转换到Network Mode³。
(1) AP AUTOSAR平台设计(11)——网络管理 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/128623632.
(2) 浅析PREEvision中AUTOSAR NM开发 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/419396213.
(3) 浅析PREEvision中AUTOSAR NM开发 - 知乎 - 知乎专栏. https://bing.com/search?q=AP+autosar+NM%e7%9a%84%e4%b8%89%e7%a7%8d%e6%93%8d%e4%bd%9c%e6%a8%a1%e5%bc%8f.
(4) Autosar AP – 状态管理ara_ap状态管理_小火球2.0的博客-CSDN博客. https://blog.csdn.net/wangxu696200/article/details/123337733.
(1) 睡眠模式
- 当节点没有主动网络唤醒及被动唤醒请求时,ECU通信控制器切换至睡眠模式,ECU功耗降低至适当水平。
- OEM一般通过测量静态电流的方法来检测各个ECU是否满足设计要求。
- 在睡眠模式下,节点的网络管理报文和应用报文禁止发送,同时节点在该模式下,如果检测到有效的唤醒源,节点必须唤醒。
(2) 预睡眠模式
- 该模式是为进入与睡眠模式之前的状态,各个ECU要实现总线活动静止下来。
- 进入该模式后,已经下发送队列的报文允许发送到网络上,不再往发送队列中放置报文,禁止发送网络管理报文和应用报文,但应该对总线上的报文进行ACK应答(CAN收发器自动完成)。
- 在预睡眠模式下会设定一个可配置的定时器,参数为CANNM_WAIT_BUS_SLEEP_TIME, 一旦超时,网络管理状态应该离开预睡眠模式,进入睡眠模式。
(3) 网络模式
分为三种状态,重复报文状态、常规操作状态、准备睡眠状态。
① 重复报文状态
该状态分为快速发送状态和正常发送状态。都是发送固定个数网络管理报文,发的次数和时间间隔都是可配置的。
② 常规操作状态
当节点为主动唤醒网络需要与其他节点继续进行通信时,必须保持在常规操作状态,该状态下网络管理报文和应用报文正常发送。
③ 准备睡眠状态
进入该模式节点停止发送网络管理报文,当NM Timeout Timer超时后停止发送应用报文。