一、前言
由于汽车电子技术迅速发展,各个电控单元(ECU)的复杂程度不断增加,对整车而言还集成了各种总线通讯功能、在线故障诊断(OBD)等功能,传统的检测方法无法高质量高效率地满足复杂的测试需求。目前,国外普遍通过采用硬件在回路技术(HIL:Hardware In the Loop)建立完整的"虚拟车辆"测试平台。通过该测试平台,工作人员可以对待测试车型进行仿真,建立相应的车辆模型,并将其运行于实时环境中,与各个电控系统闭环工作,从而实现对车辆运行工况的模拟,完成对整车网络和各个电控单元的手动测试和自动化测试。
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品着称的德国BOSCH公司开发了的,并终成为国际标准(ISO11898)。是国际上应用广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
二、CAN网络测试开发流程
整车CAN网络总线系统的开发采用国际通用的经典V字形开发流程,大致分为:功能需求的分析,网络拓扑结构的设计,ECU节点的功能定义,网络协议(应用层协议、故障诊断协议)的制定,以及ECU软硬件的开发、仿真、集成、测试等阶段。
测试计划制订主要考虑网络测试工作所需要的资源需求(工具需求以及人力需求等)、任务划分、时间需求等,以确保后续的工作能顺利地、有效地开展。
测试规范的制定主要是确定网络需测试内容。在整个网络开发过程当中,网络测试规范应在网络需求规范完成后开展。网络测试的目的是确认供应商提供的ECU产品是否符合网络需求规范的要求。正因为如此,CAN网络测试规范的制定必须依据CAN网络需求规范。测试规范里需要包含所有的测试项内容以及对每一测试项测试所需要的测试环境需求、测试步骤、测试工具需求的描述。
测试系统开发包括软件系统开发、硬件系统开发、软硬件系统集成。软件系统开发主要包括:
软件架构的划分;
基于测试内容的测试程序开发;
基于网络通信报文的库文件开发;
用来控制测试执行等方面的测试面板开发;
用来控制不同的测试系统使之有效工作的相关控制程序开发。
硬件系统开发主要包括:
网络测试辅助控制器开发;
测试工具的选型(如程控电源、CAN网络通信设备、CAN网络干扰设备、CAN网络波形采集设备等)。
软硬件系统集成其目的是对软件开发系统与硬件开发系统进行调试使之无缝集成在一起并有效的工作。
测试实施是CAN网络测试的具体的实施环节,主要包括:
测试环境的搭建(测试台架的搭建等);
对被测ECU网络测试的执行;
记录测试结果并保存测试记录。
测试总结主要是根据测试结果对被测ECU进行分析,确定被测ECU是否符合CAN网络需求规范的要求。
图1CAN网络测试流程图
三、CAN网络测试开发工具
CAN网络测试开发需要以下主要的开发工具:DOORS、VisualC++、Matlab/Simulink、CANoe.MatlabInteRFace、CANoe、CANdela、CANoe.DiVa、CANcard、CANdb++、CANscope、CANstress、CodeWarrior、Protel等。
DOORS为需求管理工具,可以利用该工具整理网络测试内容并对后续开发工具提供测试需求的输入。VisualC++主要用于开发硬件系统之间协调工作的控制程序和人机交互操作界面的控制程序。Matlab/Simulink和CANoe.MatlabInterface主要用于基于模型的测试内容的建模,用来实现测试代码的自动生成。CANoe为网络仿真、测试工具,在CANoe下开发网络通信相关的测试程序,同时利用CANoe生成网络测试。CANscope用于CAN信号物理特性的测量与分析,具有多种采样触发方式,在网络自动化测试系统中用于采集被测ECU的波形。CANstress用于干扰CAN网络通信以测试ECU及网络系统的容错能力,在网络自动化测试系统中用于干扰被测网络,CANdela用于编辑基于KWP2000和UDS的诊断数据库,CANoe.DiVa用于生成诊断相关的测试程序,其输入文件为CANdela编辑的库文件,输出文件为CANoe的诊断相关的测试程序,CANdb++用于编辑CAN通信报文的数据库。
四、一种CAN网络自动化测试系统的实现
根据第二节介绍的测试流程,采用第三节介绍的相应开发工具来开发出一种CAN网络自动化测试系统。该CAN自动化测试系统的功能包括:测试流程的控制、测试用例的自动执行、数据采集以及处理、自动生成测试。
1)测试规范的制定:采用DOORS需求管理工具,根据网络需求规范和诊断需求规范,制定出CAN网络单元测试规范、系统测试规范和诊断测试规范;
2)利用CANdb++进行CAN报文数据库方面的软件开发,CANdela进行诊断数据库方面的开发;
3)根据1)制定的网络单元测试规范和系统测试规范,利用Matlab/Simulink和CANoe.MatlabInteRFace生成相应的测试程序,并在CANoe环境下进行集成;
4)根据2)完成的诊断数据库,利用CANoe.DiVa生成诊断测试程序,并在CANoe环境下进行集成;
5)利用CANoe、Matlab/Simulink和VisualC++进行控制面板方面的软件开发;
6)根据测试规范的测试需求,利用VisualC++、CodeWarrior和Protel进行网络辅助控制器以及其他诸如故障植入等方面的软硬件开发;
7)利用VisualC++开发CANstress、CANscope和程控电源等测试工具的控制程序;
8)利用VisualC++进行系统集成。
网络自动化测试系统架构和示意图如图2、图3所示。
图3CAN网络自动化测试系统示意图
五、结论
本文首先详细介绍了CAN网络测试流程;其次,介绍了CAN网络测试开发所需要使用的开发工具并介绍了这些开发工具的具体功能;,基于该流程并利用这些开发工具,详细的介绍了开发流程中自动化测试系统的开发细节
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。