Functional specification
Coordination algorithm
AUTOSAR CanNm 基于分散的直接网络管理策略,这意味着每个网络节点仅根据在通信系统内接收或传输的网络管理 PDU 执行自给自足的活动。AUTOSAR CanNm 算法基于周期性的网络管理 PDU,集群中的所有节点通过广播传输接收这些 PDU。
网络管理 PDU 的接收表明发送节点希望保持网络管理集群处于唤醒状态。 如果任何节点准备好进入 Bus-Sleep 模式,它会停止发送网络管理 PDU,但只要收到来自其他节点的网络管理 PDU,它就会推迟转换到 Bus-Sleep 模式。 最后,如果由于不再接收到网络管理 PDU 而导致专用计时器超时,则每个节点都会启动到总线睡眠模式的转换。
如果网管集群中的任何节点需要总线通信,它可以通过发送网管PDU将网管集群从Bus-Sleep模式唤醒。AUTOSAR CanNm 算法的主要概念可以通过以下两个关键要求来定义:
- CanNm 集群中的每个网络节点只要需要总线通信,就应该定期发送网络管理 PDU; 否则它将不发送网络管理 PDU。
- 如果 CanNm 集群中的总线通信被释放,并且总线上没有网络管理 PDU 在可配置的时间内由 CanNmTimeoutTime + CanNmWaitBusSleepTime(两个配置参数)确定,则应执行转换到总线睡眠模式.
AUTOSAR CanNm 算法的整体状态机可以定义如下:
- AUTOSAR CanNm 状态机应包含从网络管理集群中单个节点的角度来看的 AUTOSAR CanNm 算法所需的状态、状态转换和触发器。(状态转换必须在下一个主要功能中最晚执行。)
Operational Modes
AUTOSAR CanNm 应包含在模块界面上可见的三种操作模式: ? 网络模式 ? 准备总线睡眠模式 ? 总线睡眠模式 AUTOSAR CanNm 操作模式的变化应通过回调函数通知上层。当 CanNm_GetState 被调用时,CanNm 将返回当前的 NM 状态和模式。
Network Mode
网络模式应包括三个内部状态: ? Repeat Message State ? Normal Operation State ? Ready Sleep State
模式切换
网络管理报文结构
- 源节点标识符的位置应可通过 CanNmPduNidPosition 配置为字节 0、字节 1 或关闭(默认值:字节 0)。
- 控制位向量的位置应可通过 CanNmPduCbvPosition 配置为字节 0、字节 1 或关闭(默认值:字节 1)。
The Control Bit Vector is initialized with 0x00 during initialization
CanNm 模块应使用配置参数 CanNmNodeId 设置源节点标识符,除非 CanNmPduNidPosition 设置为关闭。
如果 CanNm 由于调用 CanNm_NetworkRequest(即由于主动唤醒)而执行从总线睡眠模式或准备总线睡眠模式到网络模式的状态更改并且 CanNmActiveWakeupBitEnabled 为 TRUE,则 CanNm 应在 CBV 中设置 ActiveWakeupBit
如果 CanNm 模块离开网络模式并且 CanNmActiveWakeupBitEnabled 为 TRUE,则 CanNm 模块应清除 CBV 中的 ActiveWakeupBit
Configuration specification
参考文章
AUTOSAR基础篇之CanNM 浅谈汽车应用中的KL15与KL30
|