【AutoSar】网络管理

1、NM做了什么?

AutoSAR NM的主要功能是确保同一域中的所有ECU一起休眠和唤醒。从而使得ECU功耗降到最低。
当ECU检测到任何保持清醒源或唤醒源时,它需要被唤醒或保持通信,如果无法检测到保持清醒源,ECU将进入睡眠状态并关闭。

2、网络状态?

AUTOSAR网络管理节点内部有两个状态,一个是Requested - 被请求状态,另一个是Released - 被释放状态,当节点的应用层需要使用总线进行通讯的时候,会调用接口使得节点进入请求状态,当应用层没有通信需求的时候,调用接口使得节点进入释放状态。

需要注意的是,即使节点当前处于释放状态,节点的通讯依然有可能是处于开启状态,因为网络上的其它节点有可能正在请求总线。所以这个状态代表的是节点应用层是否有通信需求,并不代表总线开启或关闭。有通讯需求的时候处于请求状态,无通讯需求的时候处于释放,但总线是否在通讯不仅仅取决于当前节点自己,而是取决于网络上的所有节点。

节点上电初始化后默认进入释放状态。

3、State Transition Diagram

在这里插入图片描述

4、Operating Modes

一个CAN网络通信节点包含以下运行模式:
在这里插入图片描述

4.1. Bus-Sleep Mode(睡眠模式-BSM)

当ECU的电源状态从Battery power off 到 Battery power on,ECU的CanNm模块应执行CAN_NM initialization,初始化完成后,也就是节点上电或复位后ECU应进入总线休眠模式。

如果在总线睡眠模式下检测到有效的唤醒源(主动唤醒请求或被动唤醒请求),则ECU应被唤醒。

当没有检测到主动唤醒请求或被动唤醒请求时,ECU的通信控制器切换到总线睡眠模式,功耗降低到足够的水平。

在总线休眠模式中,禁止NM PDU和其他PDU的传输。

4.2. Prepare Bus-Sleep Mode(预睡眠模式-PBM)

如果NM-Timeout Timer(NM-超时定时器)在Ready Sleep State(准备睡眠状态)下到期,则应进入Prepare Bus Sleep(准备总线睡眠)模式。

在总线休眠模式中,禁止NM PDU和其他PDU的传输。

对来自总线的消息有ACK响应。

CANNM_WAIT_BUS_SLEEP_time时间到期后,应进入总线休眠模式。

4.3. Network Mode:

4.3.1. Repeat Message State(报文重复阶段-RMS):

当节点从其他模式进入Network Mode时,默认进入Repeat Message State,该阶段是网络正式开始工作前的准备阶段,用来等待网络中所有相关节点进行网络准备,开启通信。

4.3.1.1. NM PDU Normal Transmit State

当ECU处于总线休眠模式时,如果接收到有效的NM PDU,则ECU应进入NM PDU正常传输状态。

进入NM PDU正常传输状态后,ECU应使用正常传输周期作为重复消息定时器到期前的循环时间来传输NM PDU。

在NM PDU正常传输状态中,在接收到的来自第一活动请求NM PDU的CanNmMsgCycleOffSet之后允许NM PDU的传输,并且在接收到第一活动请求NMPDU的Tx_Enable_Time之后允许其他PDU的传输。

4.3.1.2. NM PDU Immediate Transmit State

当ECU处于总线睡眠模式时,如果检测到主动唤醒请求,ECU应通过开始传输NM PDU来主动激活网络,并进入NM PDU立即传输状态。

在NM PDU立即传输状态下,NM PDU的传输应使用立即周期时间(CanNmImmediateNmCycleTime)循环触发。

计数器CanNmImmediateNmTransmissions降至零后,应执行从NM PDU立即传输状态到NM PDU正常传输状态的转换,然后NM PDU的传输应使用正常周期时间。

在NM PDU立即传输状态中,允许NM PDU的传输,并且在从第一个立即NM PDU传输起的Tx_Enable_Time之后允许其它PDU的传输。

4.3.2. Normal Operation State(常规运行阶段-NOS):

节点由Repeat Message State进入Normal Operation State,该状态为节点通信正常工作状态。

对于主动唤醒网络ECU,CAN NM状态应保持在正常操作状态。

在正常操作状态下,允许NM PDU和其他PDU的传输。

4.3.3. Ready Sleep State(准备睡眠阶段-RSS):

节点工作完成后,由Normal Operation State状态进入Ready Sleep State,准备进入睡眠状态。

对于释放网络ECU,CAN NM状态应保持在就绪睡眠状态。

NM PDU的传输应停止,所有应用程序消息应在NM超时定时器到期后立即停止。

每次在就绪睡眠状态下成功接收NM PDU时,应重新启动NM超时定时器。

在就绪睡眠状态下,禁止传输NM PDU。

5、State Transition Sequence Diagram

在这里插入图片描述

6、网络管理报文的格式

在这里插入图片描述
其中有用的两个字节就是Byte0-Source Node Identifier(节点源地址)和Byte1-Control Bit Vector(控制字节)。这两个字节在NM PDU中的位置是可以配置的。

(1)节点源地址 - Source Node Identifier
节点源地址是节点的标识符,网络中所有节点的源地址是唯一的,通常位于0x400-0x4FF范围内。

(2)控制位向量 - Control Bit Vector
Control Bit Vector的定义如下,在节点初始化的时候被置为0x00:
在这里插入图片描述
Bit 0: Repeat Message Request
0: Repeat Message State not requested
1: Repeat Message State requested
该位置1的时候表示当前节点请求所有节点进入报文重复阶段。
Bit 3: NM Coordinator Sleep Bit
0: Start of synchronized shutdown is not requested by main coordinator
1: Start of synchronized shutdown is requested by main coordinator
该位置1时表示主协调节点请求开始进入同步休眠。
Bit 4 Active Wakeup Bit
0: Node has not woken up the network (passive wakeup),即当前节点收到网络管理报文,被其它节点唤醒。
1: Node has woken up the network (active Wakeup),即当前节点主动唤醒网络(通过Request),亦称本地唤醒。
Bit 6 Partial Network Information Bit (PNI)
0: NM PDU contains no Partial Network request information
1: NM PDU contains Partial Network request information
该位表示该条网络管理报文中是否包含部分网络激活信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值