本文共 3471 字,大约阅读时间需要 11 分钟。
AUTOSAR CAN Network Management 介绍
写在前面, 这里只对AUTOSARCAN Network Management的功能和需求进行介绍,对于使用AUTOSAR CAN Network Management 的好处不再这里讨论
现在说说几个概念
AUTOSAR CAN NetworkManagement 分为3个 Mode
1. Bus-Sleep Mode
2. Network Mode
3. Prepare Bus-Sleep Mode
Network Mode 又分为三种state
1. Repeat Message State
1.1NM PDU Normal transmit State
1.2NM PDU Normal immediate State
2. Normal Operation State
3. Ready Sleep State
AUTOSAR CAN NetworkManagement 所管理的唤醒源分为2种
1. Active Wake up
主动唤醒:ECU 作为主唤醒节点,当检测到主动唤醒源输入信号时(如KL15)主动唤醒自己,并通过发送NMFRAME 尝试唤醒其他ECU
2. Passive Wake up
被动唤醒:ECU 作为从唤醒节点,自己不能主动唤醒自己,只能通过接收到其他 ECU发来的NM FRAME来唤醒自己
Network Requested:检测到主动唤醒源输入信号,请求切换至主动唤醒模式
Network Released:检测到主动唤醒源输入信号丢失,请求切换至被动唤醒模式(有时在接收到NMFRAME 中包含的CBV也可作为主动唤醒源的输入信号)
结合上图,详谈CANNetwork Management中的mode 和 state是如何切换的
Frame 发送对比图
Mode | State | Network is Released? | NM Frame Transmission? | Normal Frame Transmission? |
Bus-Sleep Mode | None | Any | No | No |
Normal Mode | Repeat Message State
| Any | Yes | Yes |
Normal Operation State
| No | Yes | Yes | |
| Ready Sleep State
| Yes | No | Yes |
Prepare Bus-Sleep Mode | None | Any | No | No |
NM Frame 发送周期变化对比
State | NM Frame Cycle Time | NM Frame 发送时长 |
Repeat Message Stateà NM PDU Normal transmit State | 正常 | Repeat message Timer |
Repeat Message Stateà NM PDU Normal immediate State | 快发(周期和次数由客户指定) | Repeat message Timer |
Normal Operation State
| 正常 | Always |
NM_01: IG ON 之后, CAN NM完成init, 立刻进入Bus-Sleep Mode
NM_02: 当ECU检测被动唤醒源但未检测到主动唤醒时,NetworkManagement 进入到Passive Wake up phase, 同时NetworkManagement mode 由 Bus-Sleep Mode 切换至NormalNode,由于当前Network 处于Released状态,因此此时state 处于
Repeat Message State àNMPDU Normal transmit State
NM_03: 当ECU检测到主动唤醒时,NetworkManagement 进入到Active Wake up phase, 同时Network Management mode 由 Bus-Sleep Mode 切换至Normal Node,由于当前Network 处于Requested状态,因此此时state 处于
Repeat Message State àNMPDU Normal immediate State, NM Frame 处于faster transmission 状态中
NM_04: 当Fastertransmission 次数达到时, State由Repeat Message State àNM PDU Normal immediateState 切换至RepeatMessage State àNMPDU Normal State。此 NM Frame 按照正常报文周期发送
NM_05 :当Repeat message Timer时间到了之后,同时ECU还处于Activewake up Phase. 那么 State由Repeat Message State àNM PDU Normal State 切换至NormalOperation State, 此时NMFrame按照正常周期一直发送
NM_06:当检测到主动唤醒源输入信号丢失(networkReleased),NM Frame立刻停止发送(此时APPFrame还在正常发送), 同时State由Normal Operation State
切换到ReadySleep State
NM_07: 当检测到主动唤醒源输入信号之后,NMFrame立刻按正常周期发送同时State由ReadySleep State切换到Normal Operation State
NM_08: Repeatmessage Timer时间到了之后,同时ECU还处于Passivewake up Phase,
那么State由RepeatMessage State àNMPDU Normal State 切换至Ready Sleep State, NM Frame停止发送
NM_09: 在Ready SleepState 下, 如果在NM_Timeout_Timer时间下都没有收到任何NMFrame。此时NetworkManagement mode 由Normal Mode切换至Prepare Bus-Sleep Mode,
NM_10(NM_02): 在PrepareBus-Sleep Mode 下,如果收到其他ECU发来的NM Frame, 则ECU进入Passivewake up Phase, Mode由Prepare Bus-Sleep Mode切换至NormalMode, 由于当前Network 处于Released状态,因此此时state 处于Repeat Message State àNM PDU Normal transmitState
NM_11 (NM_03): 在PrepareBus-Sleep Mode 下,如果检测到有效唤醒源, 则ECU进入active wake up Phase, Mode由PrepareBus-Sleep Mode切换至Normal Mode, 由于当前Network 处于Request状态,因此此时state 处于Repeat Message State àNM PDU Normal immediateState
NM_12: 在PrepareBus-Sleep Mode 下,如果wait bus-sleep timer时间到了,此时NetworkManagement mode 由Prepare Bus-Sleep Mode 切换到Bus-Sleep Mode
CAN Network Management Timer管理
Name | Start Timer | Reset/Stop Timer |
Repeat message Timer | Enter Repeat Message State |
|
NM_Timeout_Timer | Enter Normal Mode Defect Active wake up | Receive NM Frame
|
Wait bus-sleep timer | Leave Ready Sleep State |
|
全被动唤醒状态流向
NM_01àNM_02àNM_08àNM_09àNM_12
全主动唤醒状态流向
NM_01àNM_03àNM_05