本文首发于微信公众号“汽车控制与人工智能”欢迎关注。
今天整理下AUTOSAR中的CAN网络管理。
AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。
图1 CAN架构
图2 网络管理和其他模块的联系
AUTOSAR网络管理基于分散的直接网络管理策略,这意味着每个网络节点仅依赖于通信系统中接收或传输的网络管理pdu来执行自给自足的活动。网络管理算法基于周期性的网络管理PDUs,通过广播传输被集群中的所有节点接收。接收网络管理PDUs表明发送节点希望保持网络管理集群处于唤醒状态。如果有节点准备进入总线休眠模式,它将停止发送网络管理PDU,但是只要接收到来自其他节点的网络管理PDU,它就会延迟向总线休眠模式的转换。如果由于不再接收网络管理PDU而导致计时器超时,则每个节点都将启动到总线休眠模式的转换。
如果网络管理集群中的任何节点需要总线通信,则可以通过传输网络管理PDU将网络管理集群从总线休眠模式中唤醒。
下面介绍几个相关的概念。
唤醒请求(Wake Up Request)
唤醒请求可分为两种:
● 主动唤醒请求:来自模块内部对网络的请求。主动唤醒节点的网络管理报文必须先于应用报文发送。
● 被动唤醒请求:来自总线上其他模块对该模块的网络请求。被动唤醒的节点,发送网络管理报文和应用报文的先后顺序无特别要求。
网络状态(Network States)
节点的网络状态包括以下两种:
● 网络请求:模块需要主动与总线上其他节点进行信息交换时,它必须通过发送网络管理报文来请求网络,并将其网络状态设置为“网络请求”;
● 网络释放:模块不需要主动与总线上其他节点进行信息交换时,必须将其网络状态设置为“网络释放”;需要注意的是,在网络释放状态下模块仍可能因总线上的其他节点请求网络而与其进行信息交互。
总线唤醒(Bus wake up)
采用AUTOSAR CAN 网络管理方式的ECU必须选择符合 ISO 11898-5 标准的高速 CAN 收发器。若ECU处于低功耗模式,仅在总线上出现符合ISO 11898-5标准定义的唤醒序列,且该 ECU成功接收到该网段定义的唤醒报文时才能够被总线唤醒。这里这条唤醒报文必须是该网段中 ECU 的网络管理报文。
理解上面几个概念后,我们可以看下AUTOSAR 网络管理模式(AUTOSAR Network Management Operational Modes)了,AUTOSAR网