CAN总线局部网络管理机制及实现
近年来,汽车的节能问题备受关注,消减不必要的能源损耗是一种非常有效的方法。当前,大多数车辆在点火钥匙打到OFF档之后,部分功能仍需要使用,例如:车辆防盗、电子驻车功能等。为了降低电量消耗,避免蓄电池电量消耗过多导致汽车无法启动,需要KL30节点在OFF档之后能进入低功耗状态,关闭大部分不需要的功能,尽可能减少电量消耗。对于分布式功能网络,由于连接到总线上的节点需要协同工作,所以各节点遵循同样的协议以实现同步睡眠及唤醒。
当前,大多数的车辆都是遵循OSEK或者AUTOSAR网络管理协议,来实现节点休眠唤醒功能的。由于目前车辆的电子电气系统越来越复杂,KL30节点也越来越多,当前的网络管理协议也逐渐呈现出一些弊端。例如:IG OFF时,当某个功能需要总线上的一个节点与另一个节点进行通信时需要把该网段上的所有节点唤醒,如果跨网段,还需要唤醒两个网段上的所有节点,不相关的节点都进入非低功耗状态,这样就造成不必要的电量消耗。又例如:为了保证车辆安全,在点火钥匙打到OFF档后,部分节点还需要通信一段时间,通常为几分钟到几十分钟,此时,由于部分节点的通信需求,网段上的所有节点都不能进入低功耗状态,极大地消耗蓄电池电量。
为了解决这个问题,欧洲一些汽车厂商已经开始制定新的网络管理方案-局部网络(Partial Network,简称PN)管理,以实现分组睡眠和唤醒。
局部网络管理概念
与传统网络管理同睡同醒的逻辑不同,局部网络管理根据不同的电子电气EE功能(feature)在整个网络内划分出多个虚拟的局部网络,各个局部网络间可以实现单独的休眠唤醒功能,互不影响。如图1所示,根据EE功能(feature),网络上的若干节点被划分为2个PN组,PN1组为车门解锁相关feature,PN2组为Radio相关feature。在点火钥匙处于OFF档且所有节点处于睡眠状态后,PEPS需要对车门解锁,此时PEPS只需唤醒与解锁功能相关的BCM和IC,其他与该功能不相关的节点仍然处于睡眠状态。
图1 局部网络示例
1)唤醒逻辑:节点只有收到所属PN组内的特定报文(通常是网络管理报文),才被唤醒。PEPS发送的NM报文只能将IC和BCM唤醒,而Radio和Tuner仍处于睡眠状态;
2)睡眠逻辑:节点所属的PN组内的所有节点均满足该PN的睡眠条件后,该PN组内的节点实现协同睡眠。其他PN组的节点通信不受影响。
因此,根据功能来划分局部网络的方式,可以在一个功能激活的时候,仅使相关节点被唤醒并进行通信,而其他的节点仍然可以保持睡眠状态,这样就极大程度上减少了电量消耗。PN组的划分非常灵活,不仅可以对同一网段上的节点进行分组,还可以将跨网段的节点划分到同一PN组内,除此之外,一个节点可以属于一个或多个PN。
局部网络管理实现
相对于传统的CAN通信硬件和软件实现,局部网络管理需要实现以下几个部分:
评论