一文了解AUTOSAR网络管理
在本文中,我们将讨论 NM(网络管理)接口和 CAN 总线特定的 NM 模块,它们是 AUTOSAR 分层软件架构的服务层的一部分。
1 网络管理接口:
Network Management Interface 是介于ComM 和Bus Specific NM 模块之间的一个模块,在本文中我们将CANNM 视为总线特定的NM。NM接口有两个功能,
-
基本功能– 充当总线特定 NM 模块和 ComM 模块之间的适配模块。NM 接口和ComM 模块之间的通信接口独立于底层总线特定模块。
图1 网络管理
-
NM Coordinator – 网关ECU 使用它来同步关闭通信总线。它使用 NM 协调算法来关闭连接各个 ECU 的总线。使用 NM Coordinator 功能的 ECU 称为 NM Coordinator。
当各个ECU处于唤醒状态且未处于“总线睡眠模式”时,进行网络网络管理算法,统筹总线上各个ECU进行协调关闭。NM Coordinator对要处于“总线睡眠模式”的网络进行监控,只要协调集群中的一条总线(NM 集群– 使用 NM 算法协调的一组 NM 节点)是醒着的,NM 协调器仍应保持网络活动。 当协调算法启动时,为协调网络中当前活动的信道启动关闭延迟定时器。当 Shutdown Delay 定时器超时时,NM 应该释放 NM 网络。当所有网络都被释放并且所有网络都处于“总线睡眠模式”时,协调各个ECU关闭的算法就完成了。
2 CAN网络管理
CANNM 用来协调网络种的正常操作和总线休眠模式之间的模式切换。也可以用来检测所有存在的节点来检测网络中是否所有节点都准备好休眠。 每个 ECU 的 CANNM 需要根据在通信系统内接收或发送的网络管理 PDU 来执行自给自足的活动。 CANNM 算法基于周期性的网络管理 PDU,集群中的所有节点都通过广播发送接收这些 PDU。网络管理 PDU 的接收表明发送节点希望保持网络管理集群处于唤醒状态。如果任何节点准备进入总线睡眠模式,它就会停止发送网络管理 PDU,但只要收到来自其他节点的网络管理 PDU,它就会推迟到总线睡眠模式的转换。最后,如果由于不再接收到网络管理 PDU 而导致专用计时器超时,则每个节点启动到总线睡眠模式的转换。 如果网络管理集群中的任何节点需要总线通信,它可以通过发送网络管理PDU将网络管理集群从总线睡眠模式唤醒。
2.1 CANNM 的内部行为
-
当NM 集群中的网络节点需要访问总线,它应该周期性地传输 NM 消息,否则它不应该传输任何 NM PDU。 如果 CanNm 集群中的总线通信被释放,并且在由 CANNM_TIMEOUT_TIME + CANNM_WAIT_BUS_SLEEP_TIME(两个配置参数)确定的可配置时间量内,总线上没有网络管理 PDU,则应执行到总线睡眠模式的转换。
2.2 CANNM 状态机:
图2 CAN网络管理状态机
CAN网络管理状态机存在以下状态:
-
Ready Sleep 状态: ECU 准备休眠,无 NM 消息传输,当收到 NM 消息时重新启动超时计时器。 正常操作状态:NM 消息传输和消息传输和接收超时定时器的重新启动。 准备睡眠状态:如果配置的定时器超时并且没有发送或接收 NM 消息。 Bus-Sleep 状态:在配置的定时器之后,网络转换到 Bus-Sleep 模式,其中总线上没有通信发生。