AutoSAR NM 状态机总结
AutoSAR NM 是 AutoSAR 软件架构默认的一种网络管理策略。AutoSAR NM 是一种分布式直接网络管理,每个节点根据网络管理帧的状态独立的控制自己的网络状态。
状态机转换
- CanNm_PassiveStartup() 被动唤醒,即 DUT 收到 NM 消息
- CanNm_NetworkRequest() DUT 主动请求网络,为本地唤醒源,RSS -> NOS 时诊断请求也视为一个 CanNm_NetworkRequest()
- 当从 BSM 或 PBSM 状态由于 CanNM_NetworkRequest() 也即本地唤醒源唤醒进入 RMS, 触发即时传输机制
- 当从 NOS 或 RSS 状态由于自身需要 RepeatMessageRequest() 请求进入 RMS,触发即时传输机制,注意收到 RMB = 1 的 NM 报文不属于自身请求,进入 RMS 但不触发即时机制。
- 即时传输机制要求以周期 T_NM_ImmediateCycleTime 连续发 N_ImmediateNM_TIMES 帧
- 当从 PBSM, NOS 或 RSS 进入 RMS 时要求第一帧 NM 在 T_START_NM_TX 时间内发出
- 离开 RMS 有本地保持唤醒源时,将进入 NOS,否则释放网络进入 RSS
- 本地唤醒后 AWB 置位为 1,直到进入 PBSM 才清除,下一次重新唤醒才会重新置位
- 与 AWB 在 PBSM 下重置不同,wake up reason 会一直保持到 BSM 下次唤醒才会重新置位
- Keep wake up reason 不会保持,是动态变化的,按照唤醒源优先级 电源 > 其它本地 > NM Timer > Diag 置位
- 当前软件策略为所有诊断请求,包括收到其它节点的诊断报文,都会让 TBOX 保持唤醒
- 当前软件策略为 RSS 状态下,依旧可以发出诊断报文,如与网关的认证报文
NM 报文结构
NM 报文字节结构
报文字节 | 字节内容 |
---|---|
Byte 0 | ECU Address |
Byte 1 | Control Bit Vector |
Byte 2 | User data 0 |
Byte 3 | User data 1 |
Byte 4 | User data 2 |
Byte 5 | User data 3 |
Byte 6 | User data 4 |
Byte 7 | User data 5 |
NM 报文 Byte 1(Control Bit Vector) 结构
Byte 1 | Control Bit Vector | Interpretation |
---|---|---|
bit 0 | Repeat Message Request | 0: Repeat Message State not requested 1: Repeat Message State requested |
bit 1 | Res | |
bit 2 | Res | |
bit 3 | Res | |
bit 4 | Active Wakeup Bit | 0: Node has not woken up the network(passive wakeup) 1: Node has woken up the network(active wakeup) |
bit 5 | Res | |
bit 6 | Res | |
bit 7 | Res |