蔡营,王永峰,岳意娥,杨丽莎
(东风汽车公司技术中心电子电器部,湖北武汉 430058)
基于OSEK标准的整车CAN网络管理设计及测试验证
蔡营,王永峰,岳意娥,杨丽莎
(东风汽车公司技术中心电子电器部,湖北武汉 430058)
为了有效地管理网络资源,降低控制器在车辆停止工作后的能源消耗,在整车网络设计中需增加CAN网络管理。OSEK网络管理标准能够有效地保证各个节点实时、可靠通信,能够满足CAN网络对实时性、可靠性的要求;在整车CAN网络设计中增加OSEK网络管理,能够在保证网络正常可靠运行的情况下,有效地分配网络资源,协调各控制器高效工作,并且能够实时监督各节点运行状态。实际应用表明,OSEK网络管理在整车CAN网络中能够协调各控制器正常工作,监督整车网络运行状态,降低能源消耗。最后设计一套有效的测试方法,能够对整车网络管理协调的有效性进行核查。测试结果表明,整车网络管理设计能满足整车CAN网络性能要求。
OSEK;网络管理;测试验证
得益于汽车电子技术的高速发展,汽车上的功能日趋健全和复杂,整车控制器数量也大大增加,控制器之间的交互变得更多。为了能够让各控制器之间相互协调,共享整车网络资源,在整车上设计高效的车载计算机网络成为车辆设计的一个重要部分。目前,车载网络使用了多种传输技术,能够通过采用多条不同速率的现场总线,将不同功能的控制器分类连接起来,在网关服务器的协调作用下,完成正常的信息交换和网络管理功能。CAN总线技术以其高实时性、可靠性、传输速率等优势,在车载网络中得到了广泛的应用,是目前车载网络中最常见的总线之一。在整车CAN网络设计过程中,随着ECU数量的增加,网络越来越复杂,在通信过程中,可能会出现因其他控制器故障或未加入网络而导致信号丢失。为了完成对整车网络的实时监控和资源管理,在设计过程中加入网络管理,能大大提高信息传输的安全性和准确性。OSEK/VDX(Vehicle Distributed execute)是欧洲汽车厂商和汽车电子研究机构共同推出的一种汽车开放式系统及其接口的软件标准,其中的网络管理规范提供了标准的网络管理策略和方法,通过其提供的接口和服务能够完成整车各控制器的管理和监控[1]。本文在研究OSEK网络管理的原理基础上,将其应用到整车CAN网络开发中,并提出了一套网络管理测试方法,对设计的有效性进行检验。
OSEK/VDX由操作系统规范(OSEKOperating System,OSEK OS)、网络管理规范(OSEK Net Management,OSEK NM)、通信规范(OSEK Communication,OSEK COM)和OSEK实现语言(OSEK ImplementationLanguage,OIL)四大部分组成。
1.1 OSEK网络管理分类
根据OSEK网络管理标准,把OSEK网络管理系统分为2个类型:①直接网络管理——支持网络配置管理、网络状态管理、网络睡眠协商、数据管理、错误管理、操作模式管理等;②间接网络管理——包括统一监控周期的间接网络管理和非统一监控周期的间接网络管理,均支持网络配置管理、网络状态管理、错误管理、操作模式管理等。间接网络管理中,虽然两者具有相同的网络管理功能,但非统一周期的间接网络管理在监控应用程序消息时,监控周期采用各个应用程序对应OSEK COM里的IPDU的死限监控周期,而统一周期的间接网络管理在一个周期内对所有的应用程序消息进行监控。一个ECU节点可以同时具有以上2个版本的网络管理或多个同一版本的网络管理并存,用来管理多个网络,而各个网络管理系统相互独立且互不影响。
1.2 OSEK网络管理运行机理
一般情况下,ECU有正常操作和节电模式。为了保护电池的能量,NM必须决定何时关闭节点。直接NM提供一个协商机制,负责与网络相连的所有节点在同一时刻进入睡眠。如需要将节点切换到睡眠模式,则需发送睡眠请求消息和睡眠应答消息来同步完成,其基本流程如下[2]。
1)应用程序调用GotoMode(BusSleep)要求总线进入睡眠。节点下一次接收ring消息时,NM组件将发送睡眠请求域为真的ring消息,进入NMNormal-PreSleep睡眠前准备状态。
2)如果在LimpHome模式下接收,则发送睡眠请求域为真的imphome消息,进入NMLimpHomePreSleep睡眠前准备状态。
3)当睡眠协商正在进行时,如果必须发送alive消息,那么发送的alive消息的睡眠请求域置为真,进入睡眠前准备状态NMNormalPreSleep。
4)当ring消息已经在逻辑环中完成一周传输,所有接收网络管理消息的睡眠请求域都为真,并且当前网络状态允许睡眠时,发出睡眠请求的第1个节点开始发送睡眠请求和睡眠应答都为真的ring消息,并设置睡眠等待报警,其余节点如果都进行了睡眠请求,当收到睡眠应答为真的消息时,也要设置睡眠等待报警。
5)当各个节点的睡眠报警出现时,则进入睡眠状态。
6)当前节点处在睡眠等待状态NMTwbsNormal或NMTwbsLimpHome,如果收到睡眠请求域不为真的消息,则返回睡眠前准备状态。
7)当应用程序调用GotoMode(Awake)或收到数据链路层的唤醒信号,则睡眠节点将被唤醒。
整车CAN网络管理有2种实现方式,即间接网络管理和直接网络管理。在某车型网络设计中,整车网络拓扑结构如图1所示。该车型中,各控制器的用电情况主要分为2类:点火钥匙控制电源(IGN 15供电)和带常电(IGN 30供电)。使用ING 15供电的系统,通过监测网络中的关键报文,来获取整车网络状态。此类控制器采用的是间接网络管理方式,如控制器A、B、C;使用IGN 30供电的系统,通过蓄电池供电,不受点火钥匙控制,当整车电源处于OFF挡时,控制器具备进入睡眠状态的条件。此类控制器采用直接网络管理方式,通过发送网络管理报文参与网络管理,如控制器D、E、F、G。
图1 整车网络拓扑结构
2.1 直接网络管理
2.1.1 直接网络管理报文
直接网络管理中,网络管理报文用于传递节点状态的信息。网络管理报文的基本格式见表1。
表1 网络管理报文格式
表1中ID基址表示报文ID分配的区间,在该车型设计中,定义网络管理报文的ID Base=0x5,即所有参与直接网络管理节点发出的网络管理报文的ID为0x5xx。控制场的定义及取值说明见表2。
根据功能不同,可以将网络管理报文分为:Alive报文、Ring报文和LimpHome报文。其中Ring报文是逻辑环报文,在稳定的逻辑环中,节点通过该报文传递各自状态信息;Alive报文是网络中完成初始化操作或者建环时被其他节点跳过后,节点发出的用以申明加入逻辑环的管理报文;LimpHome报文是在节点接收错误计数器或者发送错误计数器超过阈值时发送。
表2 控制场定义
2.1.2 逻辑环机制
逻辑环机制是指逻辑环中的节点根据节点地址的大小顺序依次发送逻辑环报文。通过该机制,逻辑环中的节点能够交换节点信息。每个节点在初始化完成之后发送Alive报文,并等待TTyp时间,同时根据网络上是否有其它节点发送Alive或Ring报文而进行不同的操作:如果没有其它节点发送Alive或Ring报文,则发送指向自身的Ring报文(目标地址=自身节点地址);如果有其它节点发送Alive或Ring报文,则节点根据这些报文的地址信息参与到逻辑环的常规运行中;每个节点完成上述操作后,则逻辑环被建立。
在逻辑环建立后,每个直接网络管理节点进入逻辑环的常规运行中。逻辑环中,每个均有一个前继节点和后继节点。前继节点和后继节点是通过节点地址来确定自己的。比如在此车型中,参与直接网络管理的节点为D、E、F、G,其中D节点物理地址为0x501(即D节点发出的网络管理报文ID为501),E节点为0x502,F节点为0x50B、G节点为0x50C。那么根据建环规则,D的后继节点为E,前继节点为G;E节点的后继节点为F,前继节点为D;F节点的后继节点为G,前继节点为E;G节点的后继节点为D,前继节点为F。E、F、G、D组成的逻辑环结构如图2所示。
图2 逻辑环结构
2.1.3 直接网络管理状态
2.1.3.1 网络管理状态定义
在OSEK整车网络管理设计中,定义了如图3所示的网络管理状态:①NMOn、NMOff和NMShutDown为第1层状态;②NMBusSleep、NMAwake、NMInit和NMActive、NMPassive是并列的2组状态,且均为NMOn的子状态;③NMReset、NMNormal和NM-LimpHome均为NMAwake的子状态。其中,“NMBus-Sleep、NMAwake、NMInit和NMActive、NMPassive是并列的2组状态”是指在NMOn状态下,这2组状态可以同时存在。例如,当某节点处于NMAwake状态时,同时该节点还可以是NMActive或NMPassive状态。
图3 直接网络管理状态
2.1.3.2 网络管理状态转换
为了有效监控网络中各个节点的状态,网络管理各状态间能够在一定条件下实现相互转换。在整车网络管理设计时,对转换条件进行细化和明确。
1)NMOFF-NMOn-NMShutDown间转换节点进入NMOn状态;调用StopNM服务后,节点进入NMShutDown状态;节点执行完此状态的操作后,自动进入NMOff状态。
2)NMInit-NMAwake-NMBusSleep间转换NMInit状态为默认初始状态,当执行完此状态的操作后,节点进入NMAwake状态;当网络允许睡眠后,进入NMBus-Sleep状态;当节点收到通信请求后,进入NMInit状态。
3)NMActive-NMPassive转换NMActive为默认初始状态,当应用程序调用SilentNM服务后,进入NM-Passive状态;节点调用TalkNM服务后,进入NMActive状态。
各状态之间的转换如图4所示。
2.1.4 睡眠与唤醒
在该车型设计中,参与直接网络管理的节点包括D、E、F、G,此4个节点形成逻辑环,发生本地或远程事件时,节点恢复通行,整个逻辑环被唤醒,逻辑环的睡眠过程如下。
图4 NM网络管理状态转换
1)网段中某一节点判断自身睡眠条件满足,则发送“网段中某一节点判断自等于1的Ring管理报文。
2)其后继节点接收该Ring报文后,判断自身是否满足睡眠条件:若满足,则将自身要发送的Ring报文中的“Sleep.Ind”位也置1;反之,则“Sleep.Ind”位仍为0。
3)其余节点也按照2)规则传递Ring报文。
4)待某一个节点监测到逻辑环中所有节点都将“待某一个节点监测到逻位置为1时,该节点发送“,该节点发送监测到逻等于1的Ring报文。
5)监测到“Sleep.ACK”位置为1的Ring报文后,逻辑环中的所有节点设置TWaitBusSleep定时器。
6)TWaitBusSleep期间节点进入准备睡眠状态,在此期间如果没有收到Sleep.Ind=0的网络管理报文并且未发生本地唤醒事件,则节点将进入睡眠状态。
7)如果在TWaitBusSleep期间接收到Sleep.Ind=0的网络管理报文或发生本地唤醒事件,节点退出准备睡眠状态,重新进入网络管理复位状态。
2.2 间接网络管理
1)间接网络管节点状态IGN15供电的系统采用间接网络管理方式,在该车型设计中,采用间接网络管理的节点为A、B、C。参与间接网络管理的节点共有3种工作状态:网络激活状态、网络启动状态和网络非激活状态。节点处于激活状态下,按功能需求发送应用报文,而一旦进入非激活状态,则不允许发送应用报文。
2)间接网络管理实现参与间接网络管理的系统根据自己的功能需要,检测网络中关键CAN报文。关键报文选取发送节点发给接收节点所有报文中周期最小的报文。当接收节点关键报文周期的5倍时间内没有检测到该报文,则节点认为被检测节点已脱离整车网络。当没有激活的触发事件存在时,节点停止对其他节点检测,系统自动进入睡眠状态。节点重新上电后,立刻脱离睡眠状态,进入激活模式[3]。
该车型在设计过程中,网络管理验证主要包括3个方面:台架集成测试、实车集成测试和耐久车网络集成测试。每项测试中均包括了直接网络管理测试和间接网络管理测试。其中直接网络管理测试主要检验参与直接网络管理节点逻辑环建立及睡眠唤醒等性能,间接网络管理主要测试网络启动和关闭时网络基本性能[4]。本文以直接网络管理测试为例,讲解在该车型设计时,网络管理验证测试的方法和步骤。
直接网络管理测试包括:网络建环能力、逻辑环稳定性、总线睡眠、总线睡眠保持和总线唤醒。
测试设备包括:带CANoe软件计算机、整车诊断口连接线束、CANoe工具(CANCase、CANCard)。整车集成测试电路图如图5所示。测试方法及步骤如下。
图5 网络管理测试电路
1)整车上电到ON挡,启动CANoe。通过整车OBD接口,读取整车CAN网络报文,筛选出网络管理报文,验证参与直接网络管理节点D、E、F、G所发网络管理报文是否建立一个完整的逻辑环。
2)用CANoe软件建立3个模拟节点,将此3个模拟节点加入网络中,验证是否能重新建立逻辑环;正常建立后,撤销3个模拟节点,验证逻辑环是否恢复正常。
3)整车下电到OFF挡,关闭车门及后备厢门,等待车辆睡眠,查看节点网络管理报文中是否将“,等待车辆睡眠,查看节点网络管理置1,以及总线上出现Sleep.ACK=1的Ring报文之后,所有节点停止发送报文。
4)记录整车从下电OFF挡到整车睡眠的时间。
5)通过远程唤醒和本地唤醒2种方式唤醒网络。核查节点被唤醒后,是否发送Alive报文,并唤醒整个网络,之后正常发送Ring报文。
逻辑环稳定性测试结果如图6所示。
The Design and Test Verification of Vehicle CAN Network M anagement Based on OSEK Standard
CAI Ying,WANG Yong-feng,YUE Yi-e,YANG Li-sha
(Electrical and Electronic Department,Dongfeng Motor Corporation Technical Centre,Wuhan 430058)
In order to better manage network resources and reduce the energy consumptions of CAN controllers after the vehicle is stationary,when design the network of whole vehicle,it is necessary to take the CAN network management into consideration.OSEK network management standards could effectively ensure that all nodes are in real-time,reliable communication,which satisfies the requirements on real-time and reliability for CAN network.By applying OSEK network management to the design of vehicle CAN network,it can allocation network resources effectively,coordinate all controllers to work together efficiently,and supervise the status of each nodes in real-time. The practical application indicates that OSEK network management in the vehicle CAN network is capable of coordinating the work,monitoring network status of vehicle operation and reducing energy consumption.At last,a valid method of testing is designed to verify the effectiveness of the vehicle network management.Test results show that the network management design can meet the requirements of the vehicle CAN network performance.
OSEK;network management;test&verification
U463.6
A
1003-8639(2016)08-0038-04
2016-02-02;
2016-03-08
蔡营,男,硕士,辅助工程师,主要研究方向为汽车CAN网络设计及测试。