王涛 杨年炯 宋李栋
摘 要:随着智能网联车辆技术的迅速发展,汽车自动化程度越来越高,当总线网络需要更多数量的电子控制单元(ECU,electronic control unit),车载总线的布局越来越复杂时,传统搭建车载总线测试台架效率较低、通用性差,不能满足主机厂测试需求.通过深入研究车载控制器局域网(CAN,controller area network)总线的测试,分析了传统测试台架的缺点,提出了一种基于Vector工具链车载CAN总线自动化测试系统.该系统通过Vector工具链之间的功能联系,采用能被CAPL语言调用的C++语言开发的底层驱动,以实现车载CAN总线、LIN(local interconnect network)总线自动化测试.本文设计了与人工测试的对比实验,验证了该系统不仅能解决车载总线测试通用性差的缺点,而且还提高了测试效率.
关键词:CAN总线;自动化测试;Vector工具链
中图分类号:TP273;U463.6 DOI:10.16375/j.cnki.cn45-1395/t.2021.01.009
0 引言
CAN是控制器局域网(controller area network)的简称,是德国Bosch开发的一种数据通信协议,主要进行汽车执行元件之间的数据通信[1].目前国内中高档轿车中至少包含20~30个电子控制单元(ECU,electronic control unit),这些电控单元分布在3~5种不同的网段中,有可能造成总线网络异常,难以保障汽车安全性.随着ECU数量的增加以及子网段数量的增加,国内外普遍采用自动化的网络测试系统完成各子网段不同ECU的网络测试工作.
对此,国内外学者均做了一定的研究.曹尚贵 等[2]解决了测试精度差、偶发网络故障等问题;郭志刚、李中伟等[3-4]研究一套车载总线自动化测试系统解决总线通讯安全、测试效率低的问题;王征宇等[5-7]提出基于Vector工具链车载总线硬件在环自动化测试系统.虽然上述总线测试系统都有各自的优点,但是还不能满足当前主机厂总线测试需求.文中提出了一种基于Vector工具链车载总线自动化测试系统,该系统具有通用性强(可实现CAN总线和LIN总线测试)、测试效率高的优点,解决以往车载总线测试项目中周期长、测试类型单一的缺点.
1 测试需求分析
目前,多数汽车的控制器联网都以CAN作为通信协议,在人工测试环境下,效率较低,影响主机厂生产效率[8],因此,拥有一整套车载总线自动化测试成为主机厂的迫切需求.实车电子控制单元总线自动化测试需求表现在以下几个方面.
1.1 测试环境
传统测试环境如图1所示.根据测试需求,把被测设备与测试仪器进行连接.测试过程中不断改变供电情况,反复切换电源开关,这样复杂的线路连接可能导致线路短接、断开等.
1.2 测试效率
随着现代汽车智能化的快速发展,车载CAN总线结构越来越复杂,测试时间成倍增加,测试周期较长,因此,测试效率成为考核自动化测试系统的一个重要指标.
1.3 自动生成测试报告功能
完成测试后,需要做出测试报告,每个主机厂对报告格式的要求不同.测试数据整理完成后,人工输出测试报告,大量耗费测试人员的时间,效率较低.自动化测试系统根据主机厂测试规范自动生成测试报告,大大提高了测试效率.
1.4 測试范围广
本文研究的自动化测试系统可完成包括CAN通信测试、CAN网关测试和LIN总线测试等,实现一体多用.
2 软件与硬件平台实现自动化
车载总线自动化测试系统分硬件平台与软件管理平台两大部分.通过Vector工具(CANcase、CANscope、CANstress等)实现集成硬件平台,主要对被测ECU实现电源管理、数据记录、诊断分析、波形分析等功能[9].自动化测试系统软件管理平台,通过CANoe(CAN open environment)[10]实现自动化测试系统软件管理平台的仿真模型建立.通过CAPL程序语言,开发自动化测试程序,根据测试规范编写用例.CANoe导入DBC(database can)完成数据配置.设备程控管理、自动执行总线测试、测试报告表的生成及上传等功能[11-12],通过CAPL程序实现,并调用底层库函数.
2.1 硬件平台设计
测试平台的各个硬件设备之间的连接需要有序实现测试过程中设备之间的交互通信,安装设备在机柜中的位置选择需要充分考虑人性化[13].
电源管理模块用于供电控制测试系统,可以通断电源,同时具备保护电路功能.如图2 所示,PDU电源模块有独立开关,可以实现启动和关闭,防止突然断电或短路等而损坏设备.高精度网络示波器(agilent DSO-X 3014A)主要实现对CAN信号输出特性的精确捕捉、测量及分析.该示波器可以通过波形分析实现CAN总线物理层测试,且其带有示波器程控接口,具有CAN/LIN信号采集分析能力,带CAN/LIN解码模块,可同时测量两路不同速率的CAN信号,自动获取波特率.CANstress主要是对CAN总线信号、物理属性及逻辑电位进行干扰,自动化测试系统通过CAPL程序执行命令,干扰逻辑控制短路、线/电源(地)短路及断路、位错误模拟,这些有目的的干扰节点,可破坏CAN报文特定的位域.
硬件平台设计的核心部分是多通道测试板卡,如图3所示.多通道测试板卡的功能主要是对机柜电源及信号的控制.板卡通过对继电器矩阵的 控制,可实现对CANH、CANL、GENG、Power Supply等的控制;板卡内部有CANstress、Input、 Output接口,用于连接放置在机柜内部的CAN stress设备(在物理层测试时断开CANstress设备,避免其干扰总线物理层波形);IO板卡可模拟被测控制器的触发信号,实现事件报文的测试;通过硬件平台设计的多通道测试板卡的不同总线信号控制,实现不同总线的测试.接口面板固定在测试板卡前面板中,通过接口面板可以连接ECU的两路电源、地、CANH、CANL及IO控制端.
2.2 软件管理平台系统
通过上位机实现测试设备、被测设备之间的交互是自动化测试的关键.实现自动化首先要通过编写驱动底层的驱动程序来控制设备,建立基本通信.在自动化测试机柜中,开发程控电源、示波器和CANstress DR底层驱动,主要实现测试用的自动执行和对设备远程控制.开发语言需要能被CAPL调用的底层驱动.采用C++语言,在CANoe软件提供的CAPLDLL工程中对设备的调用进行封装,生成capldll.dll文件[10].具备测试执行、数据库管理功能的 CAN总线网络测试管理系统,也是前台运行软件,主要实现以下功能:
1)数据记录:测试执行过程中的相关数据按测试用例保存至系统指定文件夹,方便对结果的分析.对于CAN测试,测试过程的日志(LOG)文件将以 ASC 格式的测试数据文件自动存储在特定的文件夹目录中,并可以打开查看.
2)测试报告:测试报告主要用来记录测试结果.在测试执行完成后点击测试执行界面的“生成测试报告”即可生成excel格式的测试报告.测试报告中不仅有目录,还有详细的测试标准,程序会根据测试结果和评价标准准确判断该测试项通过与否,测试人员可以根据测试报告清楚知道问题出在哪里.
3)参数配置:可以通过参数配置面板进行常用参数配置,具体配置参数在测试程序开发中定义.
4)导入配置:除了通过配置面板进行参数配置,也可以采用参数导入方式增加配置.例如测试信息录入:采用特定的excel模板可自动导入DUT版本信息,包括测试人员信息、被测设备供电电压以及测试时间等.
2.3 管理软件与执行软件交互方式
动态链接库、INI配置文件是执行软件与测试管理软件之间的交互方式.管理软件将从执行软件中获得的信息存入数据库中,用来生成测试报告(包括当前测试及历史测试).管理软件与执行软件的交互可以实现测试管理软件对CAN总线测试软件的调用,并获得最终的测试状态(例如是否测试执行完成).对于用户输入的数据和文件,上位机管理软件会自动生成对应的INI文件,在测试执行过程中进行调用.图4为交互流程图.
3 自动化测试系统实验验证
为验证自动化测试系统测试效率与通用性,以某主机厂BCM(body control module)车身模块CAN总线“BUS OFF”和LIN主节点调度表测试为例,设计人工测试和自动化测试系统测试,通过比较分析,验证了自动化测试系统的测试效率高、通用性强.
3.1 人工测试分析
BUS OFF是BCM发送错误帧计数器累计超过255后进入的总线关闭状态.CAN总线通讯协议定义每个节点都有一个接收和发送错误帧计数器,发送或接收有错误帧,计数器增加特定的值,如果计数器减1,说明发送或接收成功.BCM进入BUS OFF状态后,进入连续5次快速恢复模式,如果总线上仍有错误帧,将执行慢速恢复,直到总线关闭,故障恢复,并且慢速恢复模式结束.DUT上电,总线通信稳定,DUT所发送的报文用CANoe记录,使用CAN stress(DR)使ID报文发生 32*6次干扰,监控DUT快速恢复的次数.
首先,通过有线连接搭建BCM测试台架,人为制造BUS OFF故障.用电脑连接台架记录通訊数据,如图5所示为CANoe的Trace窗口记录情况.Trace窗口中标记之间分别是一次快恢复和一次慢恢复,通过观察Trace窗口的报文记录快(上)、慢(下)恢复次数.由于快恢复需要50 s左右,慢恢复需要差不多190 s,Trace窗口报文数量较多,需要整理数据才能完成测试报告,使BCM主机厂测试耗时长且效率低.
3.2 CAN总线自动化测试
自动化测试系统只需从测试系统接出CANH、CANL、KL30电、KL15电和GND与被测BCM相连接,即可开始测试.自动化测试环境如图6所示.
与手动测试相比,自动化测试系统有良好的测试环境,不会发生导线之间短路导致测试过程中出现错误帧的情况.自动化测试系统通过测试工程师登录测试系统界面,根据测试需求进行测试类型和测试用例的选取;其次,填写节点配置表(主节点、有无终端电阻等内容),一键导入DBC配置节点属性信息;然后,测试人员运行测试系统,自动分析数据后执行系统会调用CANoe;最后,自动生成测试报告.图7为系统自动生成的测试报告,直接显示出进行BUS OFF测试的快速恢复和慢恢复次数.由于被测BCM BUS OFF满足测试定义,进行了5次快速恢复再进入慢恢复,所以该项测试结果为通过项.整个自动测试过程时间大概30 s,这相比于手动测试速度提升了十几倍,验证了自动化测试系统的高效的执行率.
3.3 LIN总线主节点调度表自动化测试分析
现对LIN主节点调度表顺序测试,进一步验证测试系统的通用性.首先自动化测试系统接入BCM样件,运行系统,测试系统自动调用Trace记录窗口,清楚地看到BCM发送“LIN主节点”的数据,如图8 Trace记录窗口所示.如果主节点判断没有新的调度表需要处理,当前运行的调度表将一直顺序执行,结束后再从开始循环执行.当主节点判断需要切换新的调度表时,必须在帧时隙开始时进行切换,以保证不破坏之前传输的报文.
最后,系统自动生成测试报告.如图9所示,“LIN主节点调度测试表”实际发送LIN主节点ID与标准ID有部分不一致,主节点判断需要切换新的调度表,保证不破坏报文传输.
4 结论
本文针对车载总线自动化测试展开讨论,通过CAPL语言环境实现上机位平台操作,提出一种基于Vector工具链车载总线自动化测试系统.最后进行手动测试与自动化测试的比较分析并结合实践操作,通过验证后得出以下结论:
1)通过与手动测试的比较分析,验证了自动化测试系统在很大程度上提高了主机厂测试效率.
2)通过“LIN主节点调度表”测试,验证了自动化测试系统的通用性.
车载总线自动化测试系统相对于传统测试能大大提高主机厂效率,且能实现一体多用,对车载总线自动化测试有一定借鉴作用.
参考文献
[1] 张培仁.CAN总线设计及分布式控制[M].北京:清华大学出版社,2012.
[2] 曹尚贵,张颂,田飞雄.基于网关架构的车载网络总线自动化测试系统[J].工业仪表与自动化装置,2020(4):52-56.
[3] 郭志刚.车载总线自动化测试系统研究[D].天津:河北工业大学,2015.
[4] 李中伟,谭凯,关亚东,等.车载CAN总线脱离 攻击及其入侵检测算法[J/OL].计算机应用:1-7 [2020-09-19].http://kns.cnki.net/kcms/detail/51.1307.TP.20200721.1710.016.html.
[5] 王征宇,程小猛,陆海峰.基于CAN总线和虚拟仪器技术的变频调速实时监控系统[J/OL].电测与仪表:1-5[2020-09-19].http://kns.cnki.net/kcms/detail/23.1202.TH.20200722.1013.018.html.
[6] 保志远. 基于硬件在环技术的车辆诊断自动化测试系统的开发与应用[D].重庆:重庆大学,2018.
[7] 熊贤超.CAN总线测试与仿真平台的系统设计[D].上海:上海工程技术大学,2016.
[8] 丁张根,罗文广.基于CANoe-MATLAB的电动机仿真控制的研究[J].广西科技大学学报,2014,25(2):58-63.
[9] LIU X N,FANG Z Y,SHI L J.Securing vehicular ad hoc networks[C]//International Conference on Pervasive Computing and Applications. New York:IEEE Xplore,2007:424-429.DOI:10.1109/ICPCA.2007.4365481.
[10] MANDUCHI G,DE MARCHI E,MANDELLI A. A new LabVIEW interface for MDSplus[J]. Fusion Engineering and Design,2013,88 (6-8):1196-1199.
[11] FREIBERGER S,ALBRECHT M,K?UFL J.Reverse engineering technologies for remanufacturing of automotive systems communicating via CAN bus[J].Journal of Remanufacturing,2011,6(1):1-14.https://doi.org/10.1186/2210-4690-1-6.
[12] JAIN S,GUAJARDO MERCHAN J,DAS S. Methods for minimizing side channel leakage for group key agreement for controller area network:US2018/021604[P].2018-09-13.
[13] 魏曉兵,乔维高,杜常清,等.基于LabVIEW的拖拉机电气故障检测系统设计与试验[J].中国农机化学报,2020,41(7):143-149.