文章目录
前言:
AutoSAR网络管理就是协调总线上各节点(ECU)休眠、唤醒的一套机制,有通讯需求的时候就“唤醒”,没有通讯需求的时候就“休眠”,低功耗、省电。
在AutoSAR网络管理中,ECU控制器的唤醒和休眠与NM的唤醒和休眠是两个概念,唤醒ECU控制器是唤醒NM的必要不充分条件。
一、主动唤醒和被动唤醒
主动唤醒:ECU上电后,如果检测到预设的本地唤醒事件,如实时时钟(RTC)定时唤醒、硬线唤醒信号(如KL15信号)或其他内部条件满足,会触发主动唤醒过程。
被动唤醒:当一个处于休眠或低功耗模式的ECU接收到网络上的特定管理报文时,就会发生被动唤醒。这些报文通常是由网络中的其他活跃节点发送的,用于指示有即将到来的数据传输需求或网络活动,需要目标ECU参与通信。
二、网络主动唤醒和被动唤醒
网络主动唤醒:ECU根据其内部需求(如时间到了或特定任务待执行)自主决定参与网络通信。,ECU会主动通过调用CanNm_NetworkRequest()
函数向网络发出一帧网络管理(NM)报文,作为唤醒过程的第一步,表示网络自己有需求去主动唤醒ECU,且第一帧是NM报文。
网络被动唤醒:ECU并非因为自身的主动请求而唤醒,而是由于外界因素或网络上的其他设备发来的信息触发。ECU通过执行CanNm_PassiveStartUp()
接口响应这些外部唤醒源,随后加入网络活动。这里的唤醒过程最初不是由网络管理报文启动,而是由应用层(APP)的数据传输需求引起,因此首帧报文是APP报文。
三、状态机转换
1.状态机
AutoSar网络管理的机制是所有节点同睡同醒,需要通信就发网络管理报文,不需要就停止发送。它的状态机有三种模式 :睡眠模式(Bus Sleep Mode),预睡眠模式(Prepare Bus Sleep Mode),网络模式(Network Mode),网络模式又有三种状态:重复报文状态(Repeat Message State),常规操作状态(Normal Operation State),准备睡眠状态(Ready Sleep State)。
首先我们先看一下CanNM的状态机及各个状态下报文发送的情况(一个汽车的ECU在CANNM处于不同状态时,对于CAN应用报文和CANNM报文有着不同的发送要求。
NM State | Send App messages | Send NM messages |
---|---|---|
Bus-Sleep-Mode | × | × |
Repeat Message State | √ | √ |
Normal Opearation State | √ | √ |
Read Sleep State | √ | × |
Prepear Bus-Sleep Mode | × | × |
2.时间参数示例(不同的车企,CANNM的时间参数需求一般都不一致)
参数 parameter | 描述 Description | 冗余 | 值/ms Value/ms |
---|---|---|---|
T NM-Timeout | 网络管理超时定时器 NM-Timeout Timer. | +/-10% | 2000 |
T Repeat-Message | 重复消息定时器 Repeat Message Timer. | +/-10% | 1600 |
T Wait-Bus-Sleep | 等待总线睡眠定时器 Wait-Bus-Sleep Timer. | +/-10% | 2000 |
T NM Cycle Fast | NM PDU的快速发送周期 The cycle of NM PDU is fast. | +/-10% | 20 |
T NM Cycle Normal | NM PDU的正常发送周期 The cycle of NM PDU is normal. | +/-10% | 500 |
后续持续更新,尽请期待,谢谢大家。