李 芳,宋 伟,陈燕梅
(南京依维柯汽车有限公司产品工程部,江苏 南京 210028)
OSEK(德文:OffeneSystemeand deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)体系是1993年德国汽车工业界提出的,其含义是汽车电子开放式系统及其接口。这个体系的最早倡导者有:宝马、博世、戴姆勒克莱斯勒、欧宝、西门子、大众和卡尔鲁斯厄大学的工业信息技术研究所。法国的汽车制造商标致和雷诺于1994年加入了OSEK体系,并将法国汽车工业使用的汽车分布式运行系统 (Vehicle Distributed Ex-ecutivr,VDX)也纳入这一体系。
在1995年召开的研讨会上,众多汽车厂商对OSEK和VDX的认识达成了共识,产生了OSEK/VDX规范,OSEK网络管理 (OSEK Net Management,OSEK NM) 只是OSEK/VDX规范中的一部分[1], 以下是基于南京依维柯车型对OSEK管理进行阐述。
PD2014 CAN网络管理有两种实现机制,即直接网络管理和间接网络管理,节点清单见表1,网络拓扑图如图1所示。其中ECU根据其电源情况可分为两种类型,包括点火钥匙控制型 (+15电节点)和常电型 (+30电节点)。
+15节点是指在点火钥匙处于非OFF档时ECU获得电源,OFF档时ECU失去电源。+15节点的网络管理采用间接网络管理策略。
表1 节点清单
+30节点是指ECU电源不受点火钥匙控制,点火钥匙处于OFF档时进入睡眠状态。+30节点网络管理采用直接网络管理策略。
+15节点采用间接网络管理策略,在PD2014车型上采用间接网络管理的节点为:EDC,TCU,IMMO,行驶记录仪,安全气囊模块,ESP。
2.1.1 网络启动
在网络管理中+15节点具有3种状态:网络非激活状态 (Network inactive)、网络启动状态 (Network startup)、 网络激活状态 (Network active)。 3种状态之间的转换见图2。
网络非激活状态向网络激活状态的转换由IGN OFF到IGN ON的改变引起的。一旦进入网络启动状态,节点须开启从CAN总线上接收报文的功能;一旦进入网络激活状态,节点须立刻开始传输指定的周期性应用报文。
2.1.2 网络非激活状态
网络激活状态向网络非激活状态的转换由IGN ON到IGN OFF的改变引起。在网络非激活状态下,节点不允许传输应用报文。网络激活状态到网络非激活状态的转换时间 (tShutdownIGN)见表2。
表2 间接网络管理定时参数
直接网络管理是一种自组织形式的网络管理,网络节点中没有主从之分,每个节点都被网络中其他节点监控,同时该节点也监控网络中的其他节点,在PD2014车型上采用直接网络管理的节点为:仪表和BCM。
2.2.1 逻辑环
在直接网络管理中,网段中节点通过节点地址的先后顺序依次发送网络管理报文,这种发送顺序在逻辑上形成一种结构,称之为逻辑环。逻辑环中每一个节点都具备一个前任者和后继者。每个节点的前任者和后继者是通过节点地址的数值确定的。逻辑环中,节点地址大小的关系是:前任节点<本地节点<后继节点。每个节点接收到的来自前任者指向自己的环报文,之后向自己的后继者发送出自己的环报文。地址最大的节点的后继者是地址最小的节点。这样,有规律地向各自的逻辑后继者发送同步环报文,以此来监控已建立的环,实现了直接网络管理功能,如图3所示。PD2014车型的逻辑环如图4所示,仪表的地址为0x17,BCM的地址为0x21,仪表是BCM的前任者,BCM是仪表的后继者。
2.2.2 网络管理报文类型
1)Ring报文 在稳定的逻辑环形成后,环中的每个节点在接收到其前任的Ring报文后,向后继者发送自己的Ring报文。
2)Alive报文 网络中的节点初始化完成后,发送Alive报文,用于表明有新的节点加入到网络的逻辑环中。
3)LimpHome报文 当接收/发送错误计数器超过其阈值或总线出现严重错误时,节点进入NMLimpHome状态,并周期发送LimpHome报文。
2.2.3 网络管理报文格式
节点的网络管理报文将和PGN、数据长度一起发送。网络管理报文的类型都可以通过标志位来识别,此标志位是网络管理CAN数据帧数据场的一部分。表3定义了网络管理报文的基本参数。表4定义了网络管理CAN数据帧的数据场的格式。
表3 网络管理报文基本参数
以PD2014车型仪表为例,其网络管理报文格式见表5。
表5 仪表报文格式
2.2.4 直接网络管理定时参数 (表6)
表6 直接网络管理定时参数
2.2.5 直接网络管理策略
网络管理策略规定了节点网络管理报文的时序流程,其目的是建立和维护节点之间的联系。网络管理策略只是提供网络的状态信息,而不同状态的控制方法由应用程序负责。网络中各个节点状态见表7,状态之间的转换关系见图5。
1)睡眠状态 当睡眠条件满足时,节点需要进入睡眠状态。通过对Ring报文中的:“Sleep indication=1”和 “Sleep acknowledge=1”来切换到睡眠状态。
睡眠协商通过以下步骤完成 (图6):①睡眠条件满足后,下一个要发送的Ring报文中的位Sleepindication置1;②当Ring报文在逻辑环中传递一周,并且所有接收Ring报文中的位Sleep indication都被置1,那么最先发出Sleep indication=1 Ring报文的节点发送Ring报文,并将位Sleep acknowledge置1;③所有接收到Sleep acknowledge=1的Ring报文的节点停止发送任何应用报文,所有节点进入到睡眠状态, 启动定时器TWaitBusSleep, 在TWaitBusSleep期间, 没有网络启动条件发生,当TWaitBusSleep后总线进入非激活状态。
表7 节点状态
2)网络启动 每个节点的启动顺序都一样,见图7。
图7表示了节点A发生了本地唤醒之后的网络启动顺序。
①在tNwStartupLocal,A时间,节点A能够接收数据。为了唤醒网络上的其它节点,节点A发送激活报文。此唤醒报文开始了节点B和节点C的初始化。只要节点A没有接收到其它节点的CAN协议应答,节点A的CAN控制器将重复发送激活报文 (总线负载为100%),直到被别的节点应答。
②在节点A第一次发送激活报文之后的tNwStartupRemote,B时间,节点B能接收应用报文。节点B接收激活报文,同时CAN控制器进行应答。节点A的CAN控制器停止重复发送激活报文。
③节点C比节点B的启动过程要慢。它没有接收到节点A的激活报文,在节点A第一次发送的激活报文之后的tNwStartupRemote,C时间,节点C也可以接收应用报文。
④节点B在tNwStartupRemote,B时间, 节点C在tNwStartupRemote,C时间分别发送各自的激活报文,但是这些报文不影响网络的启动行为。
⑤tNwActive,A时间之后,节点A从网络启动状态转移到网络激活状态。这是节点A最早可以发送应用报文的时间,因为至少在此时,所有的节点能够接收应用报文。此时,节点A允许发送包含导致网络唤醒的信号信息的应用报文。
3)激活状态 在激活状态下,节点主要在“逻辑环”中进行Ring报文的接收和发送。
4)跛行状态 跛行状态表明网络通信存在故障。进入跛行状态的前提条件:NM报文发送失败;在TMax时间内没有收到有效的Ring报文。
当以上情况的发生使得网络管理计数器NMRxcount、NMTxcount的数值超过各自的阈值NNm-RxLimit、NNmTxLimit时,节点进入跛行状态。跛行状态下,节点以Terror周期地发送LimpHome报文,使得网络上的所有节点仍然能够监听到它。接收到LimpHome报文的节点应更新自身网络的LimpHome配置。当总线进入睡眠或接收到任意一条NM报文后,LimpHome状态结束。
PD2014网络管理测试主要包括:3轮台架测试,2轮labcar集成测试,2轮在车测试,1轮EMC测试,4轮道路试验。
每轮测试包括间接网络管理测试和直接网络管理测试。间接网络管理测试包括网络启动性能测试、网络停止性能测试。直接网络管理测试包括正常网络管理通信测试、网络唤醒和睡眠测试、电源电压情况测试、网络启动测试、网络关闭测试、跛行状态下节点收发能力测试、网络管理配置测试。下面以直接网络管理中的睡眠测试为例,介绍网络管理台架测试的方法。
1)测试设备 笔记本电脑PC,CANcardXL(包含CANcab),插接件若干 (DB9转接头、OBD-DB9转接头等),120Ω终端电阻 (2个),可调电源。
2)测试环境 ①如果待测节点未集成终端电阻,则电路需要连接 图8中 “1” 和“2”终端网络;②如果待测节点集成了120 Ω的终端电阻,则电路只需要连接图8中 “1” 终端网络。
3)测试步骤 ①CANoe建立3个具备网络管理功能的虚拟节点;②启动CANoe,使虚拟节点在线;③本地事件触发DUT通信;④CANoe监测总线报文,查看DUT是否和虚拟节点建立稳定逻辑环;⑤满足DUT睡眠条件;⑥等待2000ms;⑦CANoe监测总线上的报文,查看DUT是否发送网络管理报文将 “SleepIndication” 位置 “1”。
4)评价指标 DUT发送SI置1的Ring报文。
本文介绍了OSEK网络管理原理,并对南京依维柯PD2014车型网络管理实现机制进行了阐述。对深入理解OSEK网络管理和将OSEK网管应用到具体的工程项目中,以及研究或开发特定要求的总线OSEK网络系统具有指导意义。
[1]熊毅.基于OSEK规范的网络管理的研究与改进[J].计算机应用研究,2007,24(9):217-220.
[2]张利.OSEK网络管理在汽车CAN系统中的研究与实现[J].电子测量与仪器学报, 2011, 25 (6): 522-527.
[3]程安宇.OSEK/VDX直接网络管理一致性测试方法设计[J]. 计算机技术与应用, 2012, 38 (4): 133-136.