应用于HIL系统中的自动诊断程序的研究设计
2016-08-06杨光北京汽车研究总院有限公司北京101300
杨光(北京汽车研究总院有限公司,北京 101300)
应用于HIL系统中的自动诊断程序的研究设计
杨光
(北京汽车研究总院有限公司,北京101300)
针对基于NI公司平台的HIL测试系统,提出一种经济可行的方法来实现在自动测试序列中针对CAN总线中的故障诊断码DTC的测试。
HIL;CAN;故障诊断
1 设计背景和目的
随着电子技术的飞速发展,汽车上使用的电控单元越来越多。网络技术在汽车上的广泛应用,使得ECU的软件功能越来越复杂,各控制器间的联系也越来越紧密。对汽车上的ECU进行全面综合的测试,尤其是故障情况和极限条件下的测试显得格外重要。硬件在回路仿真HIL是一种可行的测试手段,通过HIL可以在虚拟环境中对新的电控单元及软件进行大量测试,而无需在真实的汽车或原型上进行。这种测试系统性强,而且非常安全,即使测试中超过极限条件,也不会造成任何损坏,随时可以重现ECU的错误。还可以搭建自动测试序列,简化了测试流程,提高了测试的效率。HIL系统基本组成如图1所示。
图1 HIL系统基本组成图
2 设计介绍
故障注入模块是HIL测试系统的重要组成部分,在实际走线中是串联于信号通路中。当不进行故障注入时,仅相当于导线。故障注入模块模拟常见的车载电气故障,比如导线的开路、短路 (对电源,对搭铁,对其他信号)等情况,以测试控制器的故障诊断功能。ECU在正常工作时会实时监测自身工作情况,一旦发现故障会将故障码存入内存,同时根据故障的轻重等级决定是否点亮故障灯。实际的HIL测试台架如图2所示。
图2 HIL测试台架
在基于NI公司平台的HIL测试系统中,在进行硬线故障注入后,可以很方便地在系统中测量到线路通道的电信号和通断情况,但是由于硬件资源驱动和系统软件都运行于下位机的实时系统中,这种情况下对于ECU中自动产生的故障码DTC无能为力进行识别。但是在进行自动测试时,对于DCT正确性与否的验证很有必要。那么有没有一种方法,能够脱离于下位机的实时模型系统而又能够实现对于故障码DTC的自动测试呢?针对这种实际存在的需求和系统的功能短板,本文设计了一种脱离于下位机模型存在的软件诊断程序,从而使自动化的故障诊断流程变为可能。
本设计已应用于北汽的Cxx车型项目。本应用设计的重点是要绕过硬件在环系统下位机的实时运行环境而进行自动的故障诊断测试。在系统中本身包含CAN板卡设备,但是其调用完全是在模型和实时系统中,很难进行编程更改并且满足自动的故障诊断的要求,所以我们必须考虑使用其他的方法进行创新。在本设计中,借助了一个经济USB的总线设备,实现了在上位机编程,并能自动进行故障诊断测试。
USB接口CAN卡选用KVASER LEAF设备,此设备构造小巧、成本经济,能够通过USB口和上位机进行快速连接并且无需额外供电,它能够兼容高速CAN、低速CAN和LIN总线协议。我们使用此设备可以快速构建起系统所需的总线环境。KVASER LEAF设备如图3所示。
图3 KVASER LEAF设备
图4 诊断体系结构
图5 诊断多帧报文收发结构
图6 多帧报文收发程序
在进行上位机程序设计时,软件开发平台采用NI LabVIEW,它是图形化开发环境,内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,提供强大功能的同时还保证了系统灵活性。进行程序设计必须严格遵循故障诊断的相关规范,包括ISO 15765[1]和ISO 14229[2]以及ISO 11898[3]。诊断功能实现的体系结构如图4所示。
以诊断多帧报文传送机制举例,根据 《ISO 15765 -2网络层服务》规范定义中,上位机与控制器之间的多帧报文传送应当依据如图5所示的规则进行。
根据 《ISO 14229-1道路车辆统一诊断服务》[2]定义,诊断服务包含如诊断和通信管理功能、数据传输功能、传输存储的数据功能、输入输出控制功能、远程激活例程功能、上传下载功能等项目。下文中示范了请求DTC的子功能,并将此功能加入到自动的测试序列当中。
多帧报文收发程序如图6所示。上位机发送请求报文到控制器,首先是头帧,跟着是流控帧,随后控制器返回一个多帧报文给上位机。通过返回多帧报文的解析,可以知道报文中的内容,其内容中就包含有由于我们人为注入故障而产生的故障码DTC。
在解析完成报文中的内容之后,我们得到了相应的DTC代码。这时候还需要根据控制器的功能规范,将此DCT与控制器中定义的具体故障码进行比对和匹配,从而能够正确显示出故障的具体信息。具体故障码的匹配程序如图7所示。
图7 故障码匹配程序
在完成故障定位之后,还需要清除控制器中的错误信息,从而开始新的测试。在此处,还示范了如何清除控制器中的错误代码信息。如图8所示。
图8 控制器故障码清除程序
3 实际应用
本程序作为独立的子程序,完全脱离于下位机的实时运行环境而独立运行。作为程序模块,可以被上位机中的测试管理软件TestStand调用和配置,从而将此功能融入到整个车辆子系统的自动测试序列当中。
在实际应用中,例如在Cxx车型的车身控制器测试项目中,诊断子程序被上位机管理软件调用,加载进测试流程序列脚本中,和原有流程脚本可以无缝连接。在进行基本的功能测试项之中,可以完美实现对控制器故障诊断码的反馈定位。自动测试序列如图9所示。
依照上述的方法和思路,可以进一步优化和扩充,从而将 《ISO 14229-1道路车辆统一诊断服务》[2]中定义的更多种类的功能模块加入到自动测试序列当中,此处只举例了请求DTC的子功能,更多功能开发不在此一一赘述。
此程序模块设计完成后,一直应用于北汽的Cxx车型项目中,功能稳定可靠,为车型的设计开发解决了大量的实际问题。
[1]ISO 15765—3(2004),道路车辆——控制局域网络诊断[S].
[2]ISO 14229—1,道路车辆统一诊断服务[S].
[3]ISO 11898,道路车辆控制器局域网络[S].
(编辑杨景)
Research and Design of Automatic Diagnostic Program Applied In HIL System
YANG Guang
(Beijing Automotive Technology Center,Beijing 101300,China)
An economic and viable approach to test the fault diagnosis codes in CAN bus is proposed based on the NI HIL test system.
HIL;CAN bus;fault diagnosis
U463.835
A
1003-8639(2016)02-0063-03
2015-11-09;
2015-12-14
杨光 (1984-),工程师,从事汽车电子电器测试相关工作。