对Autosar NM官方文档简单备注
1.网络管理分为3种模式:

2.Network Mode分为3种模式:

3.接收/发送NM PDU,都重启NM-Timeout Timer
4.(1)在NOS状态下接收到RMR=1的NM报文,跳入RMS状态
(2)在NOS状态下,自身RMR=1,跳入RMS状态,在这种状态下,所发NM报文的RMR=1
5.(1)在RSS状态下,有网络请求,则进入NOS状态
(2)在RSS状态下,接收到RMR=1的NM报文,跳入RMS状态
(3)在RSS状态下,自身RMR=1,跳入RMS状态,在这种状态下,所发NM报文的RMR=1
6.(1)在PBS状态下,接收到NM报文,进入PMS状态
(2)在PBS状态下,有网络请求,进入RMS状态
7.(1)在BSM状态下,接收到NM报文,进入PMS状态
(2)在BSM状态下,有网络请求,进入RMS状态
注:在PBS/BSM状态下,网络都被释放,除非有明显的网络请求
8.初始化时,userdata=0xFF,CBV=0x00;
9.NM PDU格式

(1)

(2)CBV说明:


--在BSM、PBS状态下,主动唤醒,AWB=1

--离开网络模式,AWB清0(即从RSS到PBS状态后,AWB清0,如从PSS到NOS/RMS状态,AWB保持上一次状态)


--只有在NOS状态下,才可采用降低总线负载减低机制

--被动进入RMS状态下,需要延时CanNmCycleOffset才可发送NM报文


--从BSM、PBS状态中因为主动唤醒进入,不使用CanNmCycleOffset计数器
总线降低负载算法:



--进入RMS状态,不使用该算法

--进入NOS状态下,如果有总线降低负载算法,则使用

远程睡眠指示位

![]()

--如果在NOS状态下,且在CanNmRemoteSleepIndTime时间内没有接收到NM报文,则回调Nm_RemoteSleepIndication
如果在NOS或RSS状态下,接受到NM报文(包括RMR=1的NM报文),则回调Nm_RemoteSleepCancellation
用户使用数据

被动模式

--被动模式下,只接收NM报文,不发送NM报文
![]()
部分网络

--CanNmPnEnabled = False,则该功能禁用

![]()


--如果接收到PNI = 0且CanNmAllNmMessagesKeepAwake = Ture的NM报文,也不应该忽略接收报文;
接收到PNI = 0且CanNmAllNmMessagesKeepAwake = False的NM报文,则忽略接收报文
接受到PNI = 1且CanNmAllNmMessagesKeepAwake = Ture的NM报文,则使用滤波算法,对接受到的NM报文进行分析
![]()
--在部分组网中,CBV是必须要支持的

![]()
--不支持CanNmPnEnable的时候,PNI = 0,支持PNI = 1
NM PDU过滤算法

--只有一个组网的NM才会让Timeout Timer定时器重启

--初始化时,不会使能NM PDU过滤算法

--PN=0,对网络无请求,PN=1,对网络有请求

![]()
--有关联,不能丢弃;
无关联,CanNmAllNmMessagesKeepAwake = False,丢弃
,CanNmAllNmMessagesKeepAwake = True,不能丢弃
为了保证网关一直唤醒所选机制


--CanNmPnInfoOffset:PN所在位置的偏移字节
--CanNmPnInfoLength:PN所占字节数
以上情况为与关联情况,不能被丢弃处理

![]()

-- 以上两种情况均需要存储PN请求

--CanNmPnResetTime应比CanNmMsgCycleTime大,为了避免在发送PN之前,ECU的请求就被释放

--CanNmPnResetTime应比CanNmTimeoutTime小,为了避免进入PBS状态失效


--内部与外部PN请求所需定时器不一样;内部PN请求可忽略物理通道影响,外部PN请求不可忽略物理通道影响
