■ 状态变更过程如图:
当满足某一条件时,SM调用SetState接口请求EM设置为StateXYZ状态,然后EM先去停止App1的执行并等待确认,然后再去启动App2,完成状态切换。
■ 简介
网络管理是AP Services中的一个功能群,作为AP AUTOSAR平台的服务,网络管理包括一个守护进程,该进程实现网络管理的活动方面。网络管理不直接与自适应应用程序交互,因此RTA-VRTE不提供任何库。
Autosar AP – 网络管理ara::nm()
缩略语 | 解释 |
CBV | Control Bit Vector 控制位向量 |
CM | Communication Management 通信管理 |
CWU | Car Wakeup 汽车唤醒 |
EM | Execution Management 执行管理 |
MTU | Maximum Transmission Unit 最大传输单位 |
NM | Network Management 网络管理 |
NM Node | 支持网络管理的节点 |
PN | Partial Network 局部网络 |
PNI | 局部网络信息 |
PNL | 局部网络学习 |
Bus communication | 物理媒介通信 |
Logical Network | 逻辑网络 |
缩略语 | 解释 |
NM cluster | NM节点搭配NM算法 |
NM message | 数据包中传输的有效载荷 |
NM packet | 以太网帧 |
PN communication | 局部网络通信 |
Physical channel | 使用物理设备(如I/O端口和电缆)进行通信的通道。 |
Repeat Message Request Bit Indication | Repeat Message Bit set in the Control Bit Vector of a received NM message. |
Internally Requested | At least one field NetworkRequestedState associated to that channel/network/PNC/VLAN is set to kFullCom. |
Exernally Requested | A Network Management Message associated to that channel/ network/PNC/VLAN has been received. In case of PNC associated means the bit corresponding to this PNC had the value 1. |
FULL_COM | Communication over the network is possible/allowed, the network is up. |
NO_COM | Communication over the network is impossible/disabled, the network is down. |
■ 框架概述
AP NM提供了请求/查询网络状态的服务,以获取物理网络和PN网络映射的逻辑网路句柄。
1. 请求/释放逻辑网路的句柄;
2. 支持partial networking
左图是NM的网络映射图。
自适应平台规范独立于所使用的基础通信介质,描述了AUTOSAR自适应平台的功能,API设计和网络管理的配置。目前仅考虑以太网,但架构保持总线独立性。网络管理(NM)旨在通过状态管理进行控制,因为部分网络的控制需要通过SM控制的EM的功能组状态与相关应用程序的集合进行协调。
■ 操作模式
NM有如下操作模式:
1. Network Mode(网络模式)
2. Prepare Bus-Sleep Mode(预睡眠模式)
3. Bus-Sleep Mode(睡眠模式)
左侧是状态迁移图。
■ Network Mode(网络模式)
网络模式有如下三种模式:
1. Repeat Message State(重复报文状态)
这个模式被用来确保从Bus-Sleep或Prepare Bus-Sleep到Network Mode的节点被总线上面其他节点发现。这个状态可以用来检测总线上的节点。
该状态分为快速发送状态和正常发送状态。都是发送固定个数网络管理报文,发的次数和时间间隔都是可配置的。
2. Normal Operation State(常规操作状态)
当节点为主动唤醒网络需要与其他节点继续进行通信时,必须保持在常规操作状态,该状态下网络管理报文和应用报文正常发送。
3. Ready Sleep State(准备睡眠状态)
进入该模式节点停止发送网络管理报文,当NM Timeout Timer超时后停止发送应用报文 。
■ 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。
■ Bus-Sleep Mode(睡眠模式)
总线休眠状态的目的是在不交换消息的情况下降低节点的功耗。如果硬件支持关闭传送和接收。
Bus-Sleep Mode的目的是当没有消息被传送的时候可以减少能量的消耗。在Bus-Sleep Mode下面,节点可以被唤醒(如本地唤醒源和CAN线唤醒源)。 nmNetworkTimeout + nmWaitBusSleepTime两个参数在整个总线上面的节点都应该是一样的配置,保证了总线上的节点能够统一的进行休眠。
当进入Bus-Sleep Mode时候,应该通知上层应用。