汽车电控单元自动化诊断测试系统设计

2022-04-18 18:18李璐蔡永祥史延雷王炜唐鹏
时代汽车 2022年7期
关键词:自动化测试诊断

李璐 蔡永祥 史延雷 王炜 唐鹏

摘 要:汽车诊断需求随着电子技术的发展而不断提高,手动测试及单个ECU专用测试系统已经很难满足测试需求,因此有必要设计一种灵活性及通用性高的诊断自动测试系统。设计的测试系统基于VT System开发,硬件使用Vector工具链的VT板卡及VH6501配置测试环境。系统通过vTESTstudio编写测试脚本,在CANoe环境下进行测试,通过参数变量化、函数模块化的方式,使系统具有很强的柔性,适应多种车型和ECU。

关键词:诊断 VT System 自动化测试 柔性设计

1 引言

汽车技术在朝着电子化和智能化发展的过程中,汽车故障诊断技术也随之快速发展,ECU(Electronic Control Unit,电子控制单元)内部已经实现了故障识别和故障码存储[1]。随着CAN总线的广泛使用和ISO标准的制定,汽车故障诊断逐渐由分散走向统一[2]。

汽车诊断协议也随着汽车技术的发展而发展,当前应用广泛的UDS(Unified Diagnostic Services)诊断协议,由ISO 14229、ISO 15765标准定义。KWP2000及LIN线诊断基本已处于退出诊断市场的状态,OBD(On Board Diagnostics)診断由SAE标准定义,主要定义排放与动力相关诊断,OBD接口也可作为诊断接口实现实车与外界设备互联[3],且该接口同样支持UDS协议。本文主要面对UDS诊断协议相关测试内容,开发一套车载电控单元柔性自动化诊断测试系统。

柔性控制是现代控制理念中新发展出来的一种先进控制概念,追求更少的时间周期、高适应性、开放式及分布式的控制系统[4]。参照控制理念,自动测试系统也应具有相当的柔性以满足测试需求。本文中,柔性可以理解为一种设计理念,使用较少的变动即可满足同一网段所有ECU,乃至整车所有网段ECU的诊断测试。通过柔性理念设计的测试系统,可以应用到不同的汽车网络架构,使测试系统开发周期缩短、灵活性更高。这也符合汽车诊断多功能化、智能化及资源共享的发展趋势[5]。

车载电控单元诊断测试主要分为三部分:诊断协议测试、诊断刷写测试、诊断DTC(诊断故障码)测试。其中诊断协议测试、诊断刷新测试两部分,在当前市面上已有成熟的测试软件进行测试,如Diva、vFlash等软件,且这两部分对硬件的依赖程度较低。而诊断DTC测试则不同,它分为两中测试类型:网络通信相关DTC测试、电气相关DTC测试。诊断DTC测试具有以下特点:

● 定制化测试逻辑开发

● 差异化参数配置

● 测试环境复杂

● 手动测试时间参数控制困难

在ECU总线数据中,DTC由4个字节数据组成,前三个字节数据为故障代码,最后一个字节数据表示该故障代码的状态掩码。其中故障代码由主机厂定义在诊断调查表中,如0x910401表示近光灯继电器故障,0xD80297表示某节点通信丢失故障,等。状态掩码的使用说明如下表1,状态掩码代表该故障的状态。

对于诊断DTC测试,主要关注两种DTC状态:当前故障码状态和历史故障码状态。如果为当前故障码状态,则bit(0)=1,如果为历史故障码状态,则bit(3)=1。

由于以上特点及需求,导致诊断DTC测试难以手动进行,为解决诊断DTC测试困难的问题,需要设计一套自动化测试系统。本文以VT System为硬件基础,辅以中汽研(天津)汽车工程研究院有限公司自研的测试电路配置板卡,以CANoe为软件平台,以柔性设计作为理念,设计了一种新的汽车电控单元诊断自动测试系统,较手动测试而言,该系统具有自动化程度高、通用性强、灵活性高等优点,能覆盖电气故障码及网络故障码测试,且能够扩展支持诊断协议测试、诊断刷新测试,测试内容全面。

2 系统概述

2.1 测试工具

测试系统包含的工具有软件和硬件两部分:软件部分包括CANoe、vTESTstudio、测试管理软件;硬件部分包括VT System、程控电源、测试电路配置板卡等。

CANoe是德国Vector公司开发的分布式系统设计、仿真、测试、评估的工具软件,功能强大,本测试系统主要应用它的仿真和测试功能,另外,CANoe自带功能强大的数据管理工具CANdb++,可以创建和修改数据库[6],该功能可以实现将变量加载入测试工程,变量化参数对于提高系统的柔性有很大的帮助。系统的测试脚本由vTESTstudio软件编写,vTESTstudio是Vector公司开发的测试开发软件,由于其支持CAPL编程、C#编程、表格和流程图编程等多种编程方式,又能无缝加载到CANoe测试环境进行测试执行,因此优化了测试脚本编程过程。VT System板卡从属于Vector产品体系,用于测试硬件配置。VT板卡有总线模块、电源管理模块、仿真模块、负载及测量模块等,常用数/模IO模块等[7],能实现大多数诊断所需功能。

2.2 测试系统硬件搭建

系统硬件主要由VT板卡、测试电路配置板卡、供电电源、PC机等组成,连接方式如图1所示。

其中CAN总线采用实车双绞线束,提高总线抗干扰能力[8]。对于其它有特殊要求的线路,例如SDM模块的传感器接线要双绞线加屏蔽,EPS与助力电机供电线要加粗等,按实际需求连接,以保证测试结果的可靠性。

需要指出的是,网关样件网络故障码的测试较为特殊,因网关样件的诊断CAN与产生DTC的其他CAN总线为分开的网段,无法做到一路总线通道完成测试,因此需要将总线干扰仪VH6501切换到不同的网段中分别进行干扰测试。例如,某网关样件共有5路CAN通道,分别为CAN1、CAN2、CAN3、CAN4和诊断CAN,则该网关样件的Busoff故障码共4个,分别通过VH6501在CAN1、CAN2、CAN3、CAN4网段上进行干扰产生故障码,所以需要设计测试电路配置板卡来满足上述情况的测试,测试电路配置板卡的通道切换功能示意如图2。

另外,测试电路配置板卡还包括终端电阻配置,总线通断及短路控制等功能,以满足不同的测试环境配置需求。该测试电路配置板卡由中汽研(天津)汽车工程研究院有限公司自主研发,以满足市场需求。

2.3 测试系统软件搭建

测试系统软件包括Vector测试工具软件系列CANoe、vTESTstudio,测试管理软件,测试脚本工程等。CANoe提供多种变量定义的途径,包括系统变量定义、DBC环境变量加载等,为系统柔性的增强提供了可能。每个测试样件所需配置VT板卡的资源是不同的,需要将被测ECU的引脚与各个相应功能的VT板卡通道一一对应连接,最大程度的模拟ECU实车状态,以避免在测试的过程中某些DTC(诊断故障码)对其它DTC的记录及恢复机制产生影响。CANoe和vTESTstudio是比较成熟的软件,这里不再赘述,测试管理软件为中汽研(天津)汽车工程研究院有限公司自主开发的测试执行端软件,下面阐述其主要设计理念及功能。

2.4 测试配置软件

测试配置软件包含与用户交互的UI界面、参数配置模块、报告生成模块等。其柔性设计理念的应用如下:

● 变量化设计

在本文测试结果分析中有具体体现,如报文丢失数量N,报文恢复数量M等,但不局限于文章描述的形式。变量化设计能够通过定义参数,使程序适用不同的测试逻辑。

● 通用化设计

通用化设计是将每一个单独DTC的测试内容,归纳整理出一种通用的测试流程,通过适配相应的测试逻辑脚本及变量,使其能够适用不同ECU乃至不同车型的诊断DTC测试。

● 模块化设计

模块化设计指将通用化流程中,测试重复使用的步骤,封装成子函数或动态链接库dll函数,缩短代码量的同时,又能灵活运用。

● 高适应性设计

适配多种测试场景,如单件级单通道测试、多样件单通道测试、网关样件多通道测试等,测试程序也可以部署到机柜式测试系统或便携式测试系统,使用场景比较灵活。

根据上述设计理念,结合车载电控单元诊断测试的需求,测试管理软件被设计具有测试配置功能、测试脚本工程调用功能、自动生成测试报告功能。

针对测试配置功能,在配置所需测试的车型和样件基本信息后,针对每个ECU进入其故障码配置界面,界面中可以填入变量具体的值、測试信息等。示例如图3所示。

测试车型和样件配置的基本信息包括:车型名称及测试阶段、ECU节点名称、ECU是否有终端电阻、ECU诊断请求ID和诊断响应ID等。而更深一层的针对每个ECU配置故障码信息时,则体现了每个ECU的差异性。

对于通信相关故障码测试,差异性配置内容如下:故障类型及DTC、节点超时周期倍数、超时恢复周期倍数、节点丢失伙伴ID及周期、Busoff记录故障码次数、诊断欠压值、诊断过压值等参数等。

对于电气故障码测试,在通用配置信息之外,还需要故障类型及DTC、故障产生条件、故障恢复条件等,并需要进行资源映射表Map配置,如表2所示,分别从ECU端口、VT System端口、连接件端口进行映射配置,实际接入样件时,需按照表中内容匹配接线。

3 测试流程

诊断测试通信,也是基于CAN协议的ISO定义7层参考模型。诊断的实现是通过软件控制,由协议解析模块实现ECU对总线数据的解析[9]。本测试系统主要是用于电气故障码测试和网络故障码测试,满足总线通信环境,通过集成Diva软件或二次开发软件等,可以实现相应的测试内容,因此具有较高的可扩展性。

3.1 电气故障码测试

电气故障码测试主要验证ECU所处的电气环境出现异常及恢复时,ECU能否正常记录DTC,并正确调整状态掩码的值。电气故障码测试流程如图4。

需求分析在电气故障码测试中占有至关重要的作用,影响到整个测试的可行性。由于电气故障码测试时,需要使用VT板卡模拟DUT(被测样件)的实车电气工作状态,因此,每个测试的ECU都需要单独配置VT板卡资源,配置资源的依据,包括DUT接头引脚定义、DUT所带负载参数、物理信号参数等。例如,蒸发器温度信号输入为电阻值R,其蒸发器温度F与阻值R按定义的插值运算规则可相互转换,若要满足ECU在某种蒸发器温度状态下进行测试,需按逆向计算得到频率R,再通过调整VT板卡对应输出通道的电阻值,来模拟某种蒸发器温度状态。插值算法:设函数。

(1)

式中α和β为主机厂定义参数。

假设温度F=F1,则反解R为:

(2)

体现在ECU端口上为反馈电压值U

(3)

其中δ为比例系数,R1为上拉电阻阻值

因此,VT板卡可以使用电阻器模拟电阻值的方式,也可以使用回馈电压的方式模拟蒸发器温度状态。其他信号如PWM波等参数,根据ECU需求具体分配。

VT板卡的另一个作用便是模拟ECU电气环境故障状态,使ECU满足电气故障码记录条件。举例说明,例如某DTC记录条件为传感器短接到电源,通过控制VT板卡传感器模拟通道的继电器动作,使传感器输出端短接到电源正极,则满足了该DTC成熟条件。当然,VT板卡同样能够控制该故障状态的恢复。

3.2 网络故障码测试

网络故障码测试流程如图5。

网络故障码主要分为报文丢失故障码、信号无效值故障码及Busoff故障码。当然对于存在Checksum(校验和)与Alivecounter(计数器)的报文,可能还存在关于Checksum错误DTC和Alivecounter错误DTC。对于网络故障码测试,本系统可以实现在测试某一个DTC(诊断故障码)时,不会额外产生其它DTC,也就弥补了一般诊断测试系统不能判断是否产生误报DTC的漏洞。而实现该功能主要工作在于测试模型的建立,使用CANoe建立测试模型时,根据加载的DBC(车型数据库)文件,对每一个导入的虚拟节点单独编写控制程序,设置正确的工程参数,就可以通过CAPL程序的逻辑控制,实现对某一帧报文的发送与停止控制。同时,通过系统变量的映射,可以精准控制模拟报文的信号值,例如模拟Checksum信号值错误状态、Alivecounter信号值错误状态、接收电源信号状态等。CANoe提供的IL控制及系统变量控制模式,为网络故障码诊断测试提供了可行性和便捷的操作方式。控制程序示意如图6。

例如,在虚拟节点程序中,使用Environment variables控制整个节点的发送与停止,可以使用ILControlStart();与ILControlStop();进行控制,主程序与虚拟节点程序之间,通过System variables可以进行单帧报文的发送与停止控制。因此,CANoe自有函数,加上诊断通信模型的开发,使测试的自动化程度更高。

3.3 诊断刷写测试

本系统支持诊断刷写(Bootloader)测试,简称BT测试,针对不同主机厂的不同刷写流程,需要进行定制化程序开发。系统支持.s19或.hex格式的刷写文件,且支持多个App文件刷写的需求。

对于刷写测试,除正常刷写流程外,还应检测刷写可靠性,如擦除内存中断电测试、数据传输中断电测试、无效应用程序下载测试等。

对于应用vFlash软件或定制开发的BT测试,本文这里不做赘述。

3.4 诊断协议测试

CANoe Option.Diva为诊断协议测试专用软件,加载诊断数据库CDD文件后,支持自主配置测试内容,并生成自动化测试执行序列,加载到CANoe运行环境下进行测试。诊断协议测试的测试内容主要包括以下几点:

● 诊断协议中定义的诊断服务肯定响应测试;

● 诊断协议中定义的诊断服务否定响应测试;

● 诊断协议中定义的具有超时机制诊断服务超时测试;

● Transport Layer参数测试等。

对于诊断协议测试,除使用成熟的Diva产品之外,也可以根据测试内容定制开发测试脚本程序,本文这里不做赘述。

4 测试结果分析

对于电气故障码测试,结果主要关注两点:一是硬线信号是否正确,二是总线故障码数据是否正确。硬线信号的检测通过VT板卡实现,反馈當前硬线信号状态。总线故障码数据读取由CANoe的通信模型实现,可以实时请求并分析总线诊断数据信息。

对于报文丢失故障码,主要关注时间参数,标准定义为丢失N帧报文记录当前故障码,连续恢复M帧,变为历史故障码,对于存在老化机制的DTC,一般定义无故障状态下点火循环L次,故障码老化清除。经过试验测试,CAPL程序发送报文存在0~±1ms的误差,考虑实际ECU的发送也存在误差,因此检测丢失时间时,以等待N-1倍报文周期时间和N+1倍报文周期时间作为测试时间检测,若丢失N-1帧时间不记录故障码,而丢失N+1帧时间记录故障码,则认为测试结果正确。同理,若恢复M-1帧时间故障码仍为当前故障码,而恢复M+1帧时间故障码变为历史故障,则认为测试结果正确。N、M、L变量即为柔性化设计的一种体现,能够适应不同车型或不同ECU的不同测试标准。

对于信号无效值故障,测试流程与评价与报文丢失故障码类似,同样主要关注时间参数,标准定义为连续接收N帧信号值为无效的信号时记录当前故障码,连续恢复M帧非无效值信号后,变为历史故障码,对于存在老化机制的信号无效值DTC,一般定义无故障状态下点火循环L次,故障码老化清除。

对于Busoff故障码测试,只关注故障码是否产生,标准定义为连续N次进入Busoff时记录当前故障码,恢复报文正常发送变为历史故障码,因此在读取时一般只能读到历史故障码。

通过对以上多种测试内容的多次验证,得到的测试结果与ECU真实状态相符,测试结果满足正确性和准确性。

5 结语

基于VT System的汽车电控单元柔性自动化测试系统,通过变量化、模块化和通用化的柔性设计理念,使系统对于诊断DTC测试的兼容性达到了较高层次,不再局限于为车型或ECU定制程序,而是能够以较小的时间及人力消耗,实现对于诊断DTC的测试,极大提高了测试系统的整体测试效率。

参考文献:

[1]张永刚.汽车ECU诊断自动化测试系统[J].电子测试.2015.3:105-107.

[2]张宏.基于CAN总线的汽车故障诊断系统研究与设计[J].汽车工程.2008.30(10):934-937.

[3]盛铭,陈凌珊等.基于单分类支持向量机的CAN总线异常检测方法[J].汽车技术.2020.(5):21-25.

[3] 刘英姿.柔性(Flexibility)的概念及其控制模型[J].机械与电子.2002.(1):46-48

[4]侯军兴.汽车故障诊断技术的现状与发展趋势[J].农业装备与车辆工程.2006.(6):22-24.

[5]丁志华.基于CANoe的汽车故障诊断系统研制[J].汽车工程.2007,29(5):449-452.

[6]裴军伟.基于VT系统下自动化诊断的实现[J].汽车电器.2015.(7):49-51.

[7]何长伟.车联网中车载网络负载与线束优化[C].2014中国汽车工程学会年会优秀论文(选登).2014,9:1-4.

[8]杨会.基于GMLAN的汽车诊断通信仿真[J].汽车工程.2010.32(10):902-904.

猜你喜欢
自动化测试诊断
Hadoop性能测试自动化研究
数据驱动和关键字驱动的研究与应用
浅谈空调控制器自动化测试
基于多总线结构的电路板测试系统设计研究
航空航天与国防电子新形势下自动化测试系统的应用
常见羽毛球运动软组织损伤及诊断分析
基于CTI—TET和SeleniumWebdriver的Web应用自动化测试框架的设计与实现
红外线测温仪在汽车诊断中的应用
窄带成像联合放大内镜在胃黏膜早期病变诊断中的应用
浅析智能变电站二次设备的运行诊断及其调试