宋磊锋,陈姿霖,张龙岗
(陕西重型汽车有限公司汽车工程研究院,陕西 西安 710200)
基于示波器的实车网络自动化测试系统开发
宋磊锋,陈姿霖,张龙岗
(陕西重型汽车有限公司汽车工程研究院,陕西 西安 710200)
介绍利用示波器实现CAN网络自动化测试的思路和方法,比较不同方案的优缺点,系统地阐述整个开发过程。
测试;自动化测试;示波器;测试软件
随着汽车控制器数量增多,为了各控制器间协同工作,大部分控制器(如BCM、DCM、IC、VCU等)都具有CAN、LIN通信功能。在使用CAN、LIN这种数据高速公路进行数据高速、可靠交换时,必须保证这条高速公路的稳定、安全;通常,这些控制器开发完成后会进行单节点的CAN网络测试,包括了物理层、数据链路层、网络层、应用层等各方面完整测试,此阶段可以用自动化测试机柜或手动测试的方法进行测试;在样车试制阶段,会将所有控制器装配在实车上,验证功能的同时,需要进行整车网络测试,此时大多数进行物理层测试,由于无法接入自动化测试机柜,此阶段基本上只能以手动测试的方法进行测试。
在实车上进行手动网络测试时,使用的工具为示波器、万用表、CANoe、电脑。测试项为CANH,CANL,CANdiff的隐性输出电压、显性输出电压、差分电压、上升时间、下降时间、位时间、网络负载率、上电后第1帧报文发送时间、掉电后网络关闭时间、终端电阻值。笔者对这些测试项进行分析后,确认可以在不增加任何工具的情况下开发出自动化测试系统,用自动化测试系统进行实车测试,不仅操作简单,不会使用示波器的人都可以进行一键测试,还有准确度高、速度快、有传承性等优点。本文将介绍这种实车网络自动化测试系统的设计方法。
根据实际掌握的知识制定了以下3种方案。接下来对3个方案一一列举说明。
方案1:使用Vb.net编写管理界面、测试用例,调用示波器进行自动抓波形,自动测量,自动输出最终报告。
方案2:使用CAPL编写管理代码、测试用例,CANoe调用示波器进行自动抓波形,自动化测量,输出测试结果。
方案3:使用Vb.net编写管理界面,调用方案2中的CANoe工程,获取测试结果,自动生成最终报告。
方案1不需要CANcase、CANoe软件,可以方便地生成定制的报告,但是测试用例等都是固化到程序中的,不便进行测试用例的维护。
方案2和方案3都需要CANoe和CANcase,测试用例都是写在CAPL中的,方便维护。方案2的不足是不能生成定制的报告,方案3弥补了所有不足,但是考虑到本系统测试项数量少,方向单一,没有必要使用方案3这种复杂的架构,最终我们选择了方案2。
支持SCPI标准的示波器1台,CANcase 1个,笔记本电脑。
电脑安装VISA驱动,与示波器通过USB连接,示波器通道1接待测整车网络CANH、通道2接CANL,外部触发通道接15电。CANoe通道1接待测整车网络CAN总线。
4.1 编写示波器读写驱动
根据VISA协议编写示波器的写命令,读取,查询,截图等接口函数,编译为动态链接库,供随后CANoe调用。
4.2 程序框架
程序包括CAPL_Set.can、HSCAN_Vehicle.can、Scope.cin、ParaStd.cin、SaveData.cin、CaseSelect.cin这6个模块。
1)CAPL_Set.can是设置模块,作用是启动测试时选择被测总线的速率,当CANoe的Start按钮按下时调用。
2)HSCAN_Vehicle.can是测试主模块,所有测试用例在此模块中,当Test Module的Start按钮按下时调用。
3)Scope.cin是示波器自动测量模块,里面存放了一些通用的示波器自动测量函数,如示波器初始化、显性电压、隐性电压、位时间等测量函数。
4)ParaStd.cin是测试标准模块,其中设置保存了测试结果的评判标准,需要修改时可在此修改。
5)SaveData.cin是测试报告模块,其中存放了用于生成测试结果文件的函数。测试结束后,所有测试结果被输出到一个Ini文件中。
6)CaseSelect.cin是测试用例管理模块,其中存放了要执行的测试用例,不需要执行的测试用例注释掉再运行即可。
4.3 设置模块
通过CANoe的命令行输出的提示,选择设置选项,选择的参数通过环境变量传入系统。如果需要设置参数较多,也可以用CANoe制作一个面板进行设置,这种方式操作更方便,如设置被测系统电压、要执行的测试用例等。如图1所示,按下按键1将会调用250 K通信速率下的测试程序及参数。
4.4 示波器自动测量模块
通过给示波器发送SCPI指令,实现示波器初始化、自动抓有效波形、时间测量、电压测量等操作。编制时需要参考示波器厂家提供的编程手册,里面提供了该示波器所有支持的SCPI指令以及自定义指令,根据这些指令确定算法以及评估。例如本文中使用的示波器不支持读取某一时刻电压值,导致上电第1帧报文的发送时间无法采用自动测量的方式测量,如果使用的示波器支持这个指令,则可以将外部触发通道与15电连接,示波器采集触发设置为外部触发。图2展示的是示波器初始化的过程,“:AUTosetup”命令会清除上一次的波形以及一些比率设置,“:MEASure:CLEar”命令用来清除上一次的测量结果,“:channel1:PROBE 1”、“:channel1:scale 0.5”、“:channel1:OFFSET -1.93”命令是用来调整波形在示波器上显示的位置、大小等。以上命令的参数值的确定,是根据在示波器上手动调节波形到最佳位置,记录相关参数得到的。
图1 设置模块
4.5 测试标准模块
所有测试标准在此模块中定义为一个全局变量,新增、修改、删除测试在此模块中皆可方便操作。测试标准模块如图3所示。
4.6 测试报告模块
由于本测试系统测试结果数量少,同时为了缩短开发周期,未开发直接生成Excel版报告的接口,而是将测试结果写入到一个Ini文件中,同时将测试的波形及示波器测量结果截图保存在指定文件夹中。
4.7 测试用例管理模块
将要执行的测试用例放在此模块中,不需要执行的测试用例屏蔽即可,相关测试用例的参数也可通过此处设置。如图4所示。4.8 测试主模块
图4 测试用例管理模块
负责调用以上介绍的所有模块,具体测试用例的实现也在此模块中编制,测试用例编制过程中要注意发送的命令示波器是否支持、是否进入死循环以及输出结果与测量结果的一致性。其中上电后第1帧报文发送时间由于示波器不支持部分指令,无法进行自动测量,只能人为读取。终端电阻值也是通过万用表人为测量,要实现电阻自动测量不仅需要购置支持编程接口的万用表,还需要开发驱动接口,相比人为测量代价太大。
5.1 测试界面
图5为测试程序运行时的界面。窗口1中列出整个测试过程中的报文;窗口2为测试进度窗口,可以查看测试运行的状态;窗口3是Write窗口,输出了系统以及程序运行的Log;窗口4可以设置是否将Trace记录下来;窗口5可以设置测试端口、数据库等。5.2 测试结果
图5 测试界面
测试完成后,程序自动在TestData文件夹中生成测试过程中示波器截图(bmp文件)、测试报告文件(ini文件)。测试结果见图6。
图6 测试结果
本系统只使用电脑、示波器和CANoe,实现了CANH,CANL,CANdiff的隐性输出电压、显性输出电压、差分电压、上升时间、下降时间、位时间、网络负载率、掉电后网络关闭时间、自动化测试;为脱离测试机柜基于示波器的CAN、LIN网络测试提供了参考案例。
[1] 广州致远电子股份有限公司. ZDS2000系列示波器编程手册[Z].
(编辑 凌 波)
Vehicle CAN-bus Automatic Testing System Development Based on Oscilloscope
SONG Lei-feng,CHEN Zi-lin,ZHANG Long-gang
(Automobile Engineering Research Institute,Shanxi Heavy Duty Automobile Co.,Ltd.,Xi′an 710200,China)
This article introduces design idea and method of the authentic vehicle CAN-bus automatic test system based on oscilloscope,compares pros and cons of different strategies,and systematically demonstrates the whole design process.
test; automatic test; oscilloscope; testing software
U463.6
A
1003-8639(2017)03-0054-03
2016-08-29;
2016-10-20
宋磊锋(1989-),男,陕西人,工程师,主要从事整车CAN、LIN系统设计研发及自动化测试工作;陈姿霖(1984-),女,陕西人,工程师,主要从事整车CAN总线系统和诊断系统设计研发及自动化测试工作;张龙岗(1984-),男,陕西人,工程师,主要从事计量设计工作。