跟着近年轿车产业的快速开展,电子产品广泛运用于轿车操控,如发动机操控体系、转向体系、制动体系等设备中都选用电子操控单元ECU(Electronic Control Unit)[1]。一些高级的轿车大约有70个ECU,ECU之间传递的信息超越2500条[2]。为了使ECU之间完结信息同享,诞生了在轿车操控体系中运用的互联网络,即车载网络。跟着轿车中电子单元的增加,网络越来越杂乱,ECU在通讯时,或许由于其他节点未上线或呈现毛病而构成信息丢掉,所以需求专门的网络办理组件对车载网络进行办理,以到达车载网络信息传输准确性、安全性的意图。
OSEK/VDX (Open Systems and the Corresponding Interfaces for Automotive Electronics/Vehicle Distributed eXecutive) 是欧洲首要的轿车厂商和研讨机构联合提出的一种依据轿车电子开放式体系及其接口的软件标准。鉴于轿车网络的安全性和可靠性,OSEK/VDX中的网络办理NM(Network Management)标准供给了标准的办理战略,经过接口和服务来完结轿车网络中ECU节点的监控和办理[3]。OSEK/VDX标准对网络办理提出直接网络办理和直接网络办理两种完结机制。
OSEK/VDX标准是经过自然语言和图表办法进行描绘的,程序开发人员在依据标准编写运用程序时,或许由于对标准的不同了解、编写代码时的失误等原因,导致运用程序与标准的不共同。关于安全性有极高要求的轿车电子体系而言,这种现象是不允许的。因而,有必要经过共同性测验来判别开发的运用程序是否契合预订标准。近年来,学术界对OSEK OS(OSEK Operation System)的共同性测验办法提出了一些解决计划。参考文献[4]提出了一种OSEK OS服务调用标准的共同性测验办法,参考文献[5]规划了一种OSEK OS共同性测验用例生成的办法,可是很少对OSEK NM的共同性测验做相应研讨。
本文在深入研讨OSEK网络办理标准的基础上提出了一种OSEK NM共同性测验办法,规划出一种依据直接网络办理功用的测验架构,并界说了测验计划、测验报文的数据结构和测验流程。
1 OSEK直接网络办理根本原理
在OSEK NM标准中,直接网络办理是一种自组织办法网络办理。网络中节点之间没有主从之分,每个节点都被网络中其他的节点监控,一起该节点也监控网络中的其他节点。直接网络办理经过逻辑环对车载网络进行办理与监控,如图1所示为直接网络办理逻辑环的体系结构。衔接在总线上的A、B、C 3个节点都具有自己仅有的网络办理身份标识ID,且IDAIDBIDC,依据ID的巨细,以A→B→C→A的次序传输特定的网络办理报文,构成一个虚拟逻辑环。在逻辑环中衔接的一切节点依照逻辑环规则的方向发送特定的网络办理报文,完结直接网络办理功用。
图2所示为直接网络办理的情况模型。经过网络办理服务的调用和网络通讯情况的改动,引起网络办理情况的搬迁,如调用StartNM()服务可发动网络办理功用,使节点的情况从NMOff转为NMOn。
在直接网络办理中,为了满意通讯和网络办理的需求,网络办理协议数据单元NMPDU(NM Protocol Data Unit)包含地址域、操控域和数据域。图3是网络办理协议数据单元的根本格局。其间,Source ID表明网络办理报文的源地址,即发送该网络办理报文的节点地址;
Destination ID表明网络办理报文的方针地址,即接纳该网络办理报文的节点地址;Option Code表明操作码,用来设置网络办理报文的类型,其有Ring、Alive、LimpHome三种。 Data表明数据场,用于界说网络办理报文中的附加信息。
直接网络办理中各类型报文的效果:
(1)Ring报文:一个根本的监督报文,当网络情况为正常情况时,网络节点在定时器的触发下,依据节点ID的巨细次序地传送Ring报文。
(2)Alive报文:一个在非正常情况下的特别报文,当一个新的节点要参加网络时,节点向网络中发送Alive报文。
(3)LimpHome报文:当接纳/发送过错计数器超越其阈值或总线呈现严重过错时,节点进入NMLimpHome情况,并周期地发送LimpHome报文。
2 OSEK NM的共同性测验办法
OSEK NM的共同性测验是一种功用性测验,在共同性测验中,测验者不用关怀被测IUT(Implementation Under Test)内部的具体完结,只需关怀其表现出来的外部行为[6-7]。
2.1 测验的体系结构
依据OSEK NM标准,将网络办理的测验体系结构分为两个部分,即被测体系及测验体系。
(1)被测体系,是IUT的载体,在测验体系中完结网络办理功用。
(2)测验体系,用来履行测验事例程序,该设备经过网络跟被测设备彼此通讯。
整个网络办理测验计划分为两个子块,即测验办理模块和辅佐测验模块。测验办理模块由测验事例组成,在测验体系中运转;辅佐测验模块作为被测体系的运用程序在被测设备中运转,用来合作测验办理模块完结网络办理功用的测验。在网络办理功用测验中,辅佐测验模块起到两方面的效果,一方面用来呼应测验体系的发来的恳求,另一方面作为被测体系的运用程序,经过调用NM API函数,操控IUT的运转方式,并搜集被测体系中IUT当时的情况信息,回来给测验体系。
测验办理模块和辅佐测验模块之间的数据信息交流经过运用报文完结,该报文为测验办理协议数据单元(TM_PDU)。该办法下,2个测验模块之间的通讯独立于底层网络办理通讯协议,不影响网络办理功用。
在OSEK 直接网络办理中,网络犯错处理机制是很重要的一部分。依据OSEK NM标准,OSEK NM可以处理一些常见的网络过错,如通讯超时、BusOff等,所以本文在网络办理功用测验体系中增加了模仿和制作网络过错的模块。
综上所述,在直接网络办理的测验架构中,测验体系有必要具有以下功用:
(1)测验体系有必要具有网络办理功用,发送网络办理报文,并能模仿一个或多个网络办理节点的网络联系行为。
(2)测验体系能承受并剖析NMPDU,判别被测体系中的IUT是否契合网络办理标准,即带有OSEK 直接网络办理功用。
(3)测验体系可以经过测验设备中一种特定的测验软件编程来操控相应的硬件设备,使总线呈现特定的网络毛病(如Vector公司的CAN总线搅扰仪CANstress)。
2.2 测验计划和测验办理报文的界说
在直接网络办理模块正常作业时,ECU运用程序经过调用NM API接口函数来操控OSEK NM的相关动作,如功用敞开、封闭及睡觉等。而在直接网络办理的测验进程中,整个测验体系有必要可以模仿这一进程。为了完结这一功用,在测验体系与被测体系之间有两种类型的报文,即直接网络办理报文和测验办理报文。测验办理报文是测验办理模块和辅佐测验模块之间的数据通道,使测验办理模块可以直接操控IUT,然后完结测验功用。图4所示为测验办理模块和辅佐测验模块之间的两种通讯方式。
测验体系用图4(a)所示的通讯方式获取被测体系中NM模块当时的情况以及装备信息,用图4(b)所示的通讯方式操控辅佐测验模块调用NM服务函数,图中虚线箭头表明依据需求服务的回来值可以选择性的传回测验体系。
测验办理报文的格局有apiCall和apiStatus两种:
(1)apiCall:用来恳求辅佐测验模块调用NM API,操控OSEK NM完结特定的动作。报文名界说办法为CallXXX(其间“XXX”表明NM API称号,如:StartNM);
(2)apiStatus:将调用NM API函数的回来值和当时NM的情况信息回来给测验体系,相应的报文有APIStatus,NetStatusMsg等。
测验办理报文两种格局的数据单元映射到CAN报文的数据帧上,如表1所示。其间,报文名编号为不同功用测验办理报文的编号;服务编号为NM API编号,用以标识该报文是操控某个API的调用或对某个API的呼应;意图ID为标识该测验办理报文要发送到的方针网络办理节点;报文数据单元为apiStatus报文专有数据单元,用来存储API函数调用的回来值或当时网络办理单元的装备和情况信息。
2.3 测验的流程
OSEK NM测验可分为以下进程:
(1)依据OSEK NM标准,笼统出需求测验的内容。如从NMNormal→NMBusSleep转化进程中,网络办理内部情况的改变。
(2)依据测验内容和测验办法,将直接网络办理功用分为一个或多个功用模块,针对各个功用模块规划相应的测验用例。
(3)在测验体系中履行测验用例,并记载履行进程中测验体系获取的网络办理情况数据。
(4)将测验成果数据与OSEK NM办理协议做比照,剖析被测功用模块是否与协议共同,并剖析不共同的或许原因。
3 测验办法验证
3.1 测验用例规划
本文以网络办理情况从NMNormal转向NMBusSleep为例进行测验。测验用例分为三个部分,即初始情况、测验进程和希望成果。下面给出测验用例的具体内容:
(1)初始情况
①操作方式为自动方式(NMActive);
②本地NM设置networkstatus.bussleep=0;
③网络办理情况为NMNormal;
④测验体系情况与被测节点共同,在整个网络中已树立逻辑环,并正常作业。
(2)测验进程
①测验设备发送CallGotoMode(Sleep)报文;
②当接纳接下来IUT发来的第一条报文后使测验体系中其他的虚拟节点调用GotoMode(Sleep)服务;
③当接纳到IUT发来的第二条报文后,测验设备发送CallGetStatus报文,等候NetStatusMsg报文的呼应,读取被测节点中IUT当时的情况;
④等候TwaitBusSleep时间段后,再次发送CallGetStatus报文,等候NetStatusMsg报文的呼应,读取被测节点中IUT当时的情况。
(3)希望成果
①IUT发送的第一条网络办理报文中,sleep.ind位被置位;
②IUT发送的第二条网络办理报文中,sleep.ack位被置位,且当时IUT的网络情况为NMTwbsNormal;
③接纳到sleep.ack=1的报文TwaitBusSleep后节点进入NMBusSleep情况;
④整个运转进程中,IUT都处于NMActive情况。
3.2 测验渠道建立与测验
测验设备由装有CANoe软件的PC机、CANcaseXL和CANstress组成。CANoe是由Vector公司开发的网络剖析、规划和测验的专用工具,支撑多种总线体系。CANcaseXL为Vector供给的新一代CAN和LIN的USB 2.0接口卡,与CANoe软件组合运用。CANstress是CAN总线搅扰仪,它可以直接串连到CAN网络中,完结各种触发条件与逻辑的搅扰。被测设备为带有OSEK NM功用的轿车外表,外接12 V直流电源为轿车外表供电。
依据上述测验渠道进行网络办理功用测验。首先在CANoe软件渠道上完结3个CAN节点,并用CAPL语言对每个节点编程,完结依据OSEK 标准的直接网络办理功用,在其间一个节点中增加测验办理功用模块,运转测验用例,完结整体测验办理操控。轿车外表ECU软件中增加辅佐测验程序模块,作为外表的运用软件。最终,依据预先规划好的测验用例对NMNormal到NMBusSleep的情况转化进行共同性测验,并记载测验成果。
3.3 测验成果
图5所示为直接网络办理测验在CANoe的Trace窗口上的显现成果。图中对报文和数据的意义做了相应的阐明。在测验体系的操控下,整个网络进入睡觉情况,并依据测验事例成功读取到直接网络办理的情况信息。
经过对Trace窗口中的数据进行剖析可见,测验成果跟测验事例中的预期成果共同,这阐明外表节点中直接网络办理睡觉流程契合OSEK NM标准。一起也验证了该测验办法的正确性。
本文提出了一种依据OSEK NM办理的共同性测验办法,并具体叙说了测验体系的体系结构、测验计划、测验办理报文的界说,以及测验流程。最终经过对外表节点的直接网络办理睡觉进程的测验,阐明晰该办法的有效性。经过对依据OSEK标准的直接网络办理的测验,可以发现OSEK NM在正常作业中很难呈现的过错,并能有效地验证OSEK NM的正确性,对进步依据OSEK标准的直接网络办理可靠性和稳定性有重要的效果。