您现在的位置是:首页 > 汽车

汽车CAN网络测试开发方法

2020-03-03 02:26:05

汽车CAN网络测试开发方法

 一、前言

  随着汽车电子技术的发展和对汽车性能要求的提高,汽车上电控单元(ECU, Electronic Control Unit)数量越来越多,各个电控单元之间的交互信息通过CAN、LIN、MOST总线组成的网络来实现。因而对整车网络的开发显得尤为必要。当前整车网络的开发流程一般都是基于国际上通用的V模式开发流程。

  整车网络开发V模式流程包括以下几个主要方面:网络需求定义、网络规范制定、网络测试验证。当前期的网络需求定义以及网络规范制定完成后,就进入后期的网络设计与测试验证阶段,网络测试验证阶段主要是对已经设计出来的样品或产品进行网络测试验证,以确保样品或产品的功能与前期的需求一致。

   网络测试验证阶段主要从事网络测试需求分析、网络测试规范制定、网络测试系统的开发以及网络测试实施、对测试过程中出现问题进行分析等。

二、CAN网络测试开发流程

   整车CAN网络测试开发流程主要包括以下几个方面:测试计划制订、规范制定、自动化测试系统开发、测试实施以及测试报告总结。

   测试计划制订主要考虑网络测试工作所需要的资源需求(工具需求以及人力需求等)、任务划分、时间需求等,以确保后续的工作能顺利地、有效地开展。

   测试规范的制定主要是确定网络需测试内容。在整个网络开发过程当中,网络测试规范应在网络需求规范完成后开展。网络测试的目的是确认供应商提供的 ECU产品是否符合网络需求规范的要求。正因为如此,CAN网络测试规范的制定必须依据CAN网络需求规范。测试规范里需要包含所有的测试项内容以及对每一测试项测试所需要的测试环境需求、测试步骤、测试工具需求的描述。

   测试系统开发包括软件系统开发、硬件系统开发、软硬件系统集成。软件系统开发主要包括:

软件架构的划分;
基于测试内容的测试程序开发;
基于网络通信报文的库文件开发;
用来控制测试执行等方面的测试面板开发;
用来控制不同的测试系统使之有效工作的相关控制程序开发。

硬件系统开发主要包括:

网络测试辅助控制器开发;
测试工具的选型(如程控电源、CAN网络通信设备、CAN网络干扰设备、CAN网络波形采集设备等)。

软硬件系统集成其目的是对软件开发系统与硬件开发系统进行调试使之无缝集成在一起并有效的工作。

测试实施是CAN网络测试的具体的实施环节,主要包括:

测试环境的搭建(测试台架的搭建等);
对被测ECU网络测试的执行;
记录测试结果并保存测试记录。

   测试报告总结主要是根据测试结果对被测ECU进行分析,确定被测ECU是否符合CAN网络需求规范的要求。

 
图1 CAN网络测试流程图
三、CAN网络测试开发工具

   CAN网络测试开发需要以下主要的开发工具:DOORS、Visual C++、Matlab/Simulink、CANoe.Matlab Interface、CANoe、CANdela、CANoe.DiVa、CANcard、CANdb++、CANscope、CANstress、 Code Warrior、Protel等。

    DOORS为需求管理工具,可以利用该工具整理网络测试内容并对后续开发工具提供测试需求的输入。Visual C++主要用于开发硬件系统之间协调工作的控制程序和人机交互操作界面的控制程序。Matlab/Simulink和CANoe.Matlab Interface主要用于基于模型的测试内容的建模,用来实现测试代码的自动生成。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.Matlab Interface生成相应的测试程序,并在CANoe环境下进行集成;
4)根据2)完成的诊断数据库,利用CANoe.DiVa生成诊断测试程序,并在CANoe环境下进行集成;
5)利用CANoe、Matlab/Simulink和Visual C++进行控制面板方面的软件开发;
6)根据测试规范的测试需求,利用Visual C++、Code Warrior和Protel进行网络辅助控制器以及其他诸如故障植入等方面的软硬件开发;
7)利用Visual C++开发CANstress、CANscope和程控电源等测试工具的控制程序;
8)利用Visual C++进行系统集成。


网络自动化测试系统架构和示意图如图2、图3所示。


图2 CAN网络自动测试系统


图3 CAN网络自动化测试系统示意图
五、结论

   本文首先详细介绍了CAN网络测试流程;其次,介绍了CAN网络测试开发所需要使用的开发工具并介绍了这些开发工具的具体功能;最后,基于该流程并利用这些开发工具,详细的介绍了开发流程中自动化测试系统的开发细节。