裴军伟,韩可强,唐风敏
(中国汽车技术研究中心,天津 300300)
随着我国汽车工业的迅速发展,汽车数量急剧增多。人们对汽车的安全性、舒适性及燃油经济性的要求越来越苛刻,这使得控制单元之间的信息交换越来越密集,传感器和导线的数量越来越多,另外汽车上的电子控制设备增多,控制也越来越复杂,因而对汽车故障的诊断和排除的难度加大。而目前的诊断主要是人工诊断,运用诊断仪对单个控制单元进行故障的测试,对其进行分析,但这种诊断方法效率不高,不能一次性测试很多控制单元,精度也达不到人们的期望值,因此,一种自动化的诊断技术实现越来越迫切。本文探讨了利用CANoe软件实现诊断自动化测试,通过VT System和CANoe中的编程语言CAPL分别实现硬件和软件的设计。从而使诊断自动化测试程度更高,通用性强,灵活性好,满足客户的需要。
CANoe软件被应用在CAN总线系统的设计、建模、仿真、开发、测试及验证当中,为客户提供强大且完整的CAN总线网络开发仿真分析解决方案。在诊断中,CANoe可以分析上层协议为KWP2000和UDS。诊断控制台 (Diagnostics Console)——“Diagnostic Feature Set”的一部分,可以在CANdela Studio[1]的诊断描述文件的基础上,提供对诊断服务的交互式访问功能。诊断需求可以选择,参数化,并在它们相关的响应中显示。Fault Memory Console提供了快速而简便的访问ECU故障存储区域的功能。用户可编程就意味着用户可以按自己的要求对CANoe/DENoe的功能进行扩展。在数据流程图的任意节点里都可以插入模块模型,并且可以编写用户自己的程序来实现功能。CAPL就是用来实现可编程能力的编程语言,它是面向应用的类C语言,并且包含了交互式的开发环境,在这个环境下,用户能容易地创建、修改、编译CAPL[2]的程序。在CANoe的软件支持下,可以通过编程来控制所生成的诊断测试序列,根据自己的需要和单节点本身的特点进行序列添加和删减,以最少的测试用例完成需求的测试项目;通过搭建自动化测试系统,定义测试用例,设定通过标准;采用自动化测试,可以减少测试人员对分析数据、采集数据所消耗的精力与时间,同时自动化测试可以最大范围减少人为多次测量引入的误差,自动化测试系统还可以精确地进行时间触发、采样和记录,有利于提高测试精度、准确度和可靠性。
由于该硬件设计主要是通过VT System[1]来实现,而VT System的各个板卡可实现各个测试的用途,VT System各个板卡及通道的配置可通过CANoe软件实现,并通过CAPL语言对整个VT System的板卡通道进行操作,从而可以更有效地根据需要来实现控制。同时VT System是通过TCP/IP协议与CANoe进行数据通信,由于该诊断平台需要对所测的ECU进行供电,而VT中的供电模块为M1_VT7001,通过M1_VT7001的开始状态图可以清楚地发现其内部的连接情况,并能分析其如何与ECU进行连接并控制ECU电源的通断。
该硬件的设计主要有下面几个步骤,首先对VT进行供电,然后把KL30电和KL15电分别连接到VT System的VT7001电源板卡上的电源输出通道1和通道2上,通过与VT System的供电模块相连接,可以快速准确地对ECU电源进行控制,并且能通过CAPL程序对电压的大小和范围来进行控制,从而为自动化测试的CANoe与被测试样件提供纽带。ECU的CANH和CANL通过转接线连接到 CANCASE[3]上,可实现ECU与CAN网络通信,并能对总线故障进行模拟,上位机采用CANoe软件进行数据处理与数据分析,诊断故障码 (DTC)测试图如图1所示,诊断自动化测试平台如图2所示。
传统的诊断测试,只是编好数据库导入diva进行测试,有很多支持的服务或诊断功能不能没有测试或验证,目前各个车厂还没有对DTC(故障码)进行系统或统一的验证,究其原因就是测试DTC需要建立HIL(硬件在环系统)的测试环境,实现上比较麻烦,且对硬件要求比较高。而VT System的参与,可以更好地测试出DTC,对汽车的故障检测比较方便。
首先是配置VT System的通道和参数,并通过CAPL语言对其进行控制,然后将配置好CANoe.VT配置文件导入到diva中,就可以实现诊断故障码的自动化测试,效率大大提高,能满足汽车越来越复杂的功能和电控模块自诊断协议,且更好地节约成本。图3为诊断自动化的工作流程图。
首先通过CANoe配置其测试环境,搭建虚拟节点[2]和测试程序,每个虚拟节点的添加通过CAPL Browser编写网络管理逻辑,CAPL语言可用于仿真节点的动态建模,为了测试结果的正确性,要运用CANoe中XML来提取测试序列,测试用例可以根据需要通过Test Automation Editor来添加,而TAE可以清晰地构建测试组中的测试用例,并且可以图形的生成参数化的测试用例。当测试用例生成后,可以在其中加入一些程序,来实现自动化的诊断。
当硬件和软件都配置好以后,根据硬件图连接,配置好CANoe的测试环境,在diva软件中导入相对节点已编好的cdd,生成所需要的所有测试项。由于diva里的程序是已经设置好的,所以它生成的测试项是固定的,有时候不能满足客户的需求,这就需要在CANoe中通过添加程序,生成所需要的序列,使诊断的范围覆盖率更高。当diva的测试项生成后,直接导入到CANoe中,就可进行自动化的诊断测试。另外一种自动化测试方法是,可以直接在CANoe中导入编好的cdd。在诊断中,对故障码的测试尤为重要,我们可以在CANoe中设置好要测的DTC和需要生成的序列,从而实现自动化的诊断,达到所期待的结果。图4为在CANoe软件下的自动化诊断的界面。
此自动化诊断平台的搭建很好地解决了网络通信故障的测试,对于汽车内的模块,如BCM、DCM和ABS,只要模块内部支持诊断,都可以根据提供的故障策略进行测试。一般测试的故障都是与通信相关的,比如在极限电压下记录故障码的能力,还有被测模块与其它模块失去通信而记录的故障。
此平台在许多项目中也得到了很好的应用,比如力帆820 BCM模块,需要测试故障码B100016(供电电压过低)和B100017(供电电压过高),通过该平台制造故障,读取其故障码,可以验证故障产生和恢复策略的正确性。江铃E31项目中RBCM模块,需要测试B112011(左后转向灯开路)、B112015(左后转向灯短路)、B112611(倒车灯开路)、B112715(倒车灯短路)。除了以上测试之外,此诊断平台将会应用到更多的项目当中,比如即将合作的力帆和北汽银翔,还有五菱及东风项目。
本文主要介绍自动化诊断平台的搭建,而自动化诊断的实现可以更好地应用到汽车模块诊断中,使诊断的效率和精度更高,具有很重要的意义,更能促进汽车行业的发展。相信在不久的将来,诊断的技术会越来越高。其中主要通过配置不同的VT板卡,自动化诊断测试平台还能完成更多功能需求、更复杂的环境要求的测试。
[1]明星.基于VT System的汽车电子自动测试系统的研制及应用[J]. 汽车电器, 2012 (8): 62-64.
[2]潘俊家,杨芝华,龚进峰,等.CAN总线网络自动化测试平台应用[J].交通信息与安全,2013.06.20:1-3.
[3]王鹏.汽车车身控制器自动测试系统的设计与实现[D].武汉:华中科技大学机械电子工程学科硕士学位论文,2007:1-6.