Adaptive AUTOSAR NM 简述

1. 作用

网络管理就是通过在各个ECU的网络上,发送一些命令制定一套规则,来实现各个ECU的协同睡眠和唤醒。

2. 核心思想

如果节点需要保持通信,则节点需要周期的发送NM消息,否则停止发送NM消息。
如果总线上的所有节点不需要使用总线,那么总线上过了一段时间没有NM Messages时,则会进入Bus-Sleep Mode。

3. 工作模式和状态

NM一共有三种工作模式:Network Mode、Prepare Bus-Sleep Mode、Bus-Sleep Mode
其中,Network Mode又包括三种状态:Repeat Message State、Normal Operation State、Ready Sleep State
NM整体的状态图如下所示:
在这里插入图片描述

3.1 Network Mode

这个状态是允许ECU进行正常通信的,一般这个状态下即可以收发网络管理报文也可以收发应用报文。

3.1.1 Repeat Message State

快速的发送一些网络管理报文,尽快的告诉车上的其他ECU,我上线了,需要正常通信了,一块进行整车通信。
这个模式被用来确保从Bus-Sleep或者Prepare Bus-Sleep到Network Mode的节点被总线上面其他节点发现。这个状态可以用来检测总线上的节点。
当进入Repeat Message State时,节点应该开始传送NM Messages。
在Repeat Message State时,当NM-Timeout Timer溢出,Nm模块应该重载Timer。
Nm模块应该在Repeat Message State下保持一段时间,这段时间可以通过NmRepeatMessageTime来进行配置。
当离开Repeat Message State的时候,如果节点需要通信,则进入Normal Operation State;如果节点不需要通信,则进入Ready Sleep State,并且清空Repeat Message Bit。

3.1.2 Normal Operation State

周期性发送网络管理报文及所有的应用报文正常进行通信。
这个状态可以保持总线处于唤醒状态。从Ready sleep state进入这个状态的时候应该发送NM Messages。
在Normal Operation State当NM-Timeout Timer溢出,Nm模块应该重载Timer。
如果节点不需要使用通信,则网络应该被释放,节点应该进入Ready Sleep State。
如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。

3.1.3 Ready Sleep State

这个状态是为了如果本节点已经准备释放总线,而其他节点还需要使用总线的时候,在这个状态下等待其他总线上的节点进入Perpere Bus-Sleep Mode。进入这个状态之后,Nm模块应该停止NM Messages的传送。
如果NM-Timeout Timer溢出,节点将会进入Prepare Bus-Sleep Mode。
如果该节点需要使用总线,则节点进入Nomal Operation State。
如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。

3.2 Prepare Bus-Sleep Mode

这个状态是为了等待总线上的所有节点能够在进入Bus-Sleep Mode之前,有时间停止节点的active状态如清空队列中未发送的报文。在Prepare Bus-Sleep Mode下,所有节点都静默下来(一般不发送网络管理报文和应用报文,)。
当节点进入Prepare Bus-Sleep Mode时,应该通知上层应用。通过配置NmWaitBusSleepTime参数,可以改变节点在Prepare Bus-Sleep Mode停留的时间,在这段时间之后节点将会进入其他状态。
在Prepare Bus-Sleep Mode下面接收到NM Message或者被上层应用请求通信时,节点将进入Network Mode中的Repeat Message State。

3.3 Bus-Sleep Mode

上电初始化时,默认进入该状态,Bus-Sleep Mode的目的是当没有消息被传送的时候可以减少功耗,不发送网络管理报文也不收发应用报文。在Bus-Sleep Mode下,节点可以被唤醒(如a wake-up line)。
NmTimeoutTime + NmWaitBusSleepTime两个参数在整个总线上面的节点都应该是一样的配置,保证了总线上的节点能够统一的进行休眠。
当进入Bus-Sleep Mode时候,应该通知上层应用。
在Bus-Sleep Mode下,如果成功接收到NM Message,则NM模块进入Network Mode 中的Repeat Message State。

4. 时序图

4.1 Communication request

在这里插入图片描述

4.2 Communication release

在这里插入图片描述

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值