一、什么是CAN网络管理及它的作用
现在的车辆是由大量的ECU节点组成的,为了能使各ECU能够正确并及时地进行CAN通信,需要有一套机制来统一协调总线上各节点的休眠唤醒,这套机制就是CAN网络管理(NM)。 网络管理的目的是保证同一网段基于KL.30电工作(即钥匙在点火锁的OFF位置时仍然工作)的节点能够协同睡眠和唤醒,以实现各节点在需要通信时可以正常收发报文,在不需要工作的时候可以进入低功耗状态。 网络管理的重要任务是确保ECU通讯网络的安全性和可靠性。 网络管理提供的服务包括ECU资源的初始化,网络的启动,网络和节点的运行状态的检测,处理和信号发送,全局运行模式的协调
AUTOSAR CAN网络管理是一种与硬件无关的协议,只能在CAN上使用。 其主要目的是协调网络正常运行和总线睡眠模式之间的转换。 除了核心功能外,还提供了可配置的功能,例如 实现一项服务以检测所有当前节点或检测所有其他节点是否准备就绪。 CAN网络管理(CanNm)功能提供了网络管理接口和CAN接口模块之间的适配。
Autosar网络管理是一种基于CAN网络的多主的直接网络管理策略,有点拗口,大家可以多读几遍,在Autosar中是基于网络报文的发送和接收的NM Msg来管理自身的一个状态转换。其主要是通过发送和接收周期性的网络管理报文来实现,各个节点通过发送网络管理报文来表示自身的状态,同时检查其他节点是否需要自身保持的状态,如果自身无需保持则进入预休眠状态,等到所有的节点都进入休眠,即可统一进入休眠状态。
简单来说就是:整车网络中,如果节点对总线通信有需求,则周期性的发送网络管理报文,否则则停发网络管理报文;如果节点对总线不再有需求,并且在T_NM_Timeout + T_Wait_Bus_Sleep超时前没有接收到网络管理报文,该节点将进入总线睡眠模式。
二、常见的CAN网络管理方案
网络管理的方式分为:
1、直接网络管理:通过专门的网络管理报文来实现网络管理;
2、间接网络管理:不使用专门的网络管理报文来实现网络管理。
目前,常见的CAN网络管理标准有AUTOSAR网络管理和OSEK网络管理。
直接、间接网络管理区别
1、AUTOSAR网络管理与OSEK直接网络管理一样属于功能全面且扩展性很强的协议,其在实时性和复杂性上较OSEK要好一些。
2、OSEK直接网络管理功能比较全面,扩展性很强,采用了逻辑环的管理策略。但当总线中连接的节点数量增加以后,逻辑环在总线中传递一周的时间就会变长,网络管理的实时性就会降低。
3、OSEK间接网络管理相对比较简单,对网络的监控和节点的同步唤醒和休眠都有定义,且实时性较强。采用了主从结构的设计,如果主节点失效则整个网络管理就同时失效,使得其在使用过程中不够灵活和安全,适用于配置固定简单、对网络安全性要求不高的网络。
参数名称 | AUTOSAR直接网络管理 | OSEK直接网络管理 | OSEK间接网络管理 |
应用范围 | CAN | CAN | CAN |
管理报文发送 | 周期 | 逻辑环 | 应用报文 |
总线负载 | 高 低(低负载) | 低 | 低 |
节点配置 | 网络管理报文 | 逻辑环 | 主从 |
休眠管理 | 有 | 有 | 有 |
错误处理 | 无 | BusOff | BusOff |