APP下载

基于CAN-ECU的汽车自动化故障诊断测试系统研究

2019-02-05何医天

时代汽车 2019年22期
关键词:自动测试右键对话框

何医天

1.上海交通大学自动化学院 上海市 200030 2.采埃孚(中国)投资有限公司 上海市 201615

1 引言

ECU软件在现代车辆的车身、动力、底盘与安全系统中的广泛应用,使汽车的故障诊断和测试更加复杂化。为了改善传统车辆ECU诊断系统开发方式的缺点,本文使用Vector CANdelaStudio与CANoe,建立ECU诊断功能数据库,在CANoe环境中加载ODX档案,建立虚拟ECU的诊断功能,帮助汽车制造商、系统供货商及车辆维修商,缩短开发时程,节省生产成本,提高汽车维护、维修效率。

2 自动测试系统设计

2.1 自动测试系统架构设计

在完成车辆网络诊断功能测试开发工具的应用规划后,先规划出“ECU诊断伺服功能自动测试机”开发的输入格式,并建立输入工具、设定或编辑软件功能,以及输出报告档案的整体架构,以利开发人员进行ECU 诊断服务测试软件的研发。首先,根据OEM 或系统供货商提供的ECU 诊断服务功能规格文件(ECU diagnostic requirements spec.,简称RS),通过CANdelaStudio 产生ODX 与ODX-C 档案,并搭配ECU 诊断测试规格文件(ECU diagnostic services testing spec.,简称TS),在CANoe开发工具环境内,建构虚拟ECU 与诊断测试器的诊断服务功能以及诊断服务自动测试功能。在CANoe整合开发环境中,通过仿真实际网络通讯的方式,执行ECU诊断伺服自动测试软件;依序完成所有测试项目后,产生ECU诊断功能测试报告。本文采取的车辆网络ECU诊断功能测试架构详如图1所示,ECU诊断伺服功能自动测试机开发的规格需求则整理如表1所示。

表1 车辆网络ECU 诊断功能测试规格需求表

2.2 功能模块设计

2.2.1 使用CANdelaStudio编辑诊断描述文件

CANdelaStudio(图2)为Vector(车用网络软件开发公司)的产品,开发人员可以根据OEM 提供诊断需求规格(RS)文件,建立ECU 诊断功能,并产生ODX 2.0.1 格式的诊断描述档案,提供Vector CANoe使用,以进行ECU诊断功能及诊断测试器的模拟测试。

图2 CANdelaStudio 编辑环境

2.2.2 建立ECU诊断功能文件

首先,在工作窗口中的主选单中,选择File选单中的New 选项,根据OEM 提供ECU诊断功能需求规格,选择CANdelaStudio内建的UDSonCANExample 或KWPonCAN-Example 的诊断文件样板(图3),作为建立符合OEM 规格的ECU诊断功能描述文件的基本架构。

图3 建立ECU诊断功能文件

(1)ECU诊断功能信息

ECU信息(ECU Information)章节中包括:

(1)ECU信息文字叙述编辑页面;

(2)选择ECU支持接口页面与诊断通讯接口参数输入页面等三种。依照OEM 提供的ECU诊断功能需求文件,首先在ECU信息页面中,输入该ECU所使用的诊断通讯协议的文字叙述;并在ECU支持接口页面中,选择Diagnostic CAN,作为ECU的通讯接口;最后,在诊断通讯接口参数页面,输入诊断通讯参数数据。

(2)建立诊断服务类型

在共享诊断功能中,按照OEM提供文件,输入共享支持诊断类型的文字叙述。诊断服务类型主要用来定义可执行的各种诊断服务功能,CANdelaStudio内建UDSonCAN 诊断文件样板,含有ECU支持诊断服务类型。用户可依照OEM或系统供货商所提供ECU 诊断功能规格文件,勾选诊断服类型页面的诊断服务类型,可将共享诊断版本支持的诊断服务加入诊断功能描述文件中。

(3)Sessions

诊断通讯联机起始页面(Session)中,可在描述区的空白处点击鼠标右键,选择New Session…指令,使用Session Wizard来对新的诊断通讯联机进行相关设定。

(4)Session Wizard

设定对话框的设置步骤中,先输入诊断通讯联机的名称,以及加入要求信息所传输的数据对象。接着在诊断服务清单里,依照OEM 的诊断规格,勾选ECU 在此诊断通讯所支持的诊断服务。

2.2.3 ODX格式档案输出模块

当输入数据、开启或储存文件时,CANdelaStudio 会执行数据一致性检查,它检查诊断服务数据对象与诊断文件样板所指定的需求是否符合,例如诊断文件样板中的诊断数据,最小长度定义为8位,则数据讯框至少含有一个8位的数据对象。输出ODX 档案前,需在主选单上选择Extra”选单中的Check document consistency”,检验诊断文件中与诊断文件样板的数据格式、位置的一致性。

使用者可以在主选单Extra”的Option”项目下,ODX 档案输出分页标签中,设定ODX 档案内容的输出项目或附加档案;在下一个研发阶段使用CANoe时,加载*.odx 与*.odx-c 两种档案,以分析与显示ODX 档案。因此,我们必须在ODX 档案输出设定页面中,勾选Export COMPARAM-SPEC”选项,输出可检视测试器节点产生的测试报告,对测试程序修正,并重新进行测试。完成执行诊断数据一致性检查,以及设定ODX诊断通讯参数档案输出后,点选主选单File”的Export 选项,选择Open Diagnostic Exchange (ODX)”后,出现储存档案对话框选择档案储存路径与输入文件名,再选择档案版本为ODX 2.0.1,产生ODX档案。

图4 输出ODX档案

3 系统测试与结果分析

3.1 使用CANoe建立测试环境

CANoe为车辆诊断测试开发工具,它可以加载CANdelaStudio所输出ECU的ODX 档案;并通过CANoe诊断测试功能,显示ODX档案中所有的诊断服务,并分析信息内容的正确性。在CANoe 环境中,亦可以建构虚拟CAN-bus网络ECU 节点的诊断测试开发环境;通过读取ECU的ODX与ODX-C档案,编辑虚拟ECU节点的诊断通讯功能,并使用CANoe提供的Diagnostic Console与Fault Memory window 等诊断功能测试工具,来分析与显示ODX 档案中的诊断服务信息内容。

CANoe整合测试环境中,用户可通过车辆网络测试器节点,开发诊断伺服自动测试环境。在测试器节点中,通过CAPL browser针对各种诊断服务类型所制定的测试项目,配合CAPL内建的诊断函式以及测试函式,编辑诊断服务测试项目(Test case)函式。在CANoe虚拟环境下测试完成后,使用者可检视测试器节点产生的测试报告,对测试程序修正,并重新进行测试。

3.2 建立CAN-ECU节点

首先,在CANoe 虚拟网络环境下,加入网络系统数据文件(*.dbc),让ECU 仿真节点传输数据。使用CANoe 附属网络数据库工具软件CANdb++,建立网络数据库,在左方网络系统树状目录下,Network node项目上,点击鼠标右键,选择New…新增ECU节点数据(图5)。出现ECU节点设定对话框后,在Definition分页中输入ECU名称。

在左方窗口中点击右键,并在选单中选择Insert network node”,即可在CAN 网络系统中新增虚拟ECU节点。

图5 新增ECU网络节点数据

(1)加入ODX 档案

在CANoe 主工具栏中的Configuration选单中,选择Diagnostic/ISO TP configuration…”,开启设定对话框,能够为虚拟ECU 节点加入诊断功能描述文件档案(*.cdd 或*.odx)。点选Add”按钮,选择Add multi file ODX diagnostic description(XML)…”选项,加入ECU的ODX与ODX-C档案。

用户以右键点击虚拟ECU节点,点选Configuration”选项,出现Node Configuration”节点设定对话框。在title”字段,输入虚拟ECU 节点名称;CANdb Name”必须选择网络数据库档案中建立的节点名称,若设为<<default>>,在进行系统仿真会出现错误信息;虚拟节点状态为模拟(simulated)或关闭(off);最下方的File…”、Edit”与Compile”分别能够加载、编辑和编译节点程序档案。

(2)建立CAN-ECU仿真诊断功能

使用者必须配合使用在ODX 或CDD 诊断描述档案中定义的诊断对象,才能使CAPL的诊断函式命令,可以存取诊断服务与数据。在诊断服务回应函式的程序代码编辑区中,点击右键,并选择Diagnostic objects from CANdela…”选项;然后,在Selection of diagnostic objects”对话框里,用户可选择诊断服务对象,存取诊断服务。当存取诊断服务参数时,点选右键选择其中Diagnostic parameters from CANdela …”选项。在Selection of diagnostic objects parameter”对话框中,箭头向右为传送端诊断服务信息的参数,箭头向左为接收端响应诊断服务中所包含的参数,使用者可在诊断响应函式加入诊断参数、读取或修改参数内容。

图6 新增诊断服务参数数据

(3)ECU节点模型诊断功能的验证

CANoe诊断功能模块,提供发展与测试ECU诊断功能的辅助软件工具;使用Diagnostic Console 与Fault Memory window,可以检验虚拟ECU 节点,能否正确响应与ODX 档案内容相符的诊断信息与故障码。

诊断中控台是用来描述ECU 诊断功能的ODX或CDD档案内容,使用者可选择诊断服务,以对ECU发出要求信息,以及设定诊断服务中的参数与显示回传信息内容;并对虚拟ECU节点,执行ODX 档案中的所有诊断服务,并分析诊断中控台所显示的回传信息内容,是否与ECU 诊断规格文件内容符合。

故障码检窗口能直接读取ECU内存的故障码(DTC),以及删除ECU故障码与不断更新读取故障码数据。使用故障码检窗口,可以对虚拟ECU 节点分别传送读取与消除故障码信息,测试已加载ODX 档案的虚拟ECU 节点故障码功能的正确性。

3.3 加入测试器模块

(1)建立测试项目、群组、流程控制

用户可在Simulation Setup 窗口中的虚拟总线上,点击鼠标右键,选择“Insert test module”,新增测试器节点模块,以CAPL语法来编辑测试程序。测试器节点上方分别有铅笔、编译、播放等图形,可用来编辑测试器节点程序、组译程序代码,以及按下播放钮,开始执行测试程序。

(2)测试器节点设定对话框

在测试器节点上,点击鼠标右键,选择“Configuration”,出现“Testnode Configuration”节点设定对话框。其中有“Common”、“Report”、“Report Filter”、“Modules”、“Buses”等分页,可供使用者设定测试器节点的外部功能。

使用者可在Modules分页下方,点击“Add”,以为测试器节点新增软件模块。测试器节点必须透过传输层,将数据长度较长的诊断服务信息,分批传输至总线上。在此加入传输层模块(OSEK_TP.dll),以便使用者通过CAPL browser,加入传输层函式。

(3)CAPL 诊断测试程序编辑

测试器节点程序编辑,主要编辑“TestControl”目录下的MainTest( )与Testcase( ),以及在“Callback function”目录下,新增OSEK_TP 传输层函式等三部分。使用者也可依不同需求,在“Function”目录下,新增自定义功能的函式;或是在“Timer”目录下,新增定时器等。

用户可在测试项目目录中,点击鼠标右键选择“New”,新增测试项目。在新增的测试项目函式中,用户可透过点击鼠标,在右键选单中,选择“Diagnostic object from CANdela…”或“Diagnostic parameter from CANdela…”,使用ODX 档案数据库里的诊断服务以及诊断服务参数,搭配测试器节点CAPL 诊断函式与测试器节点常用CAPL测试函数式,来编辑各种测试程序。

3.4 虚拟节点模型自动测试与结果

ECU节点模型与测试器模块建构完成后,先在CANoe 的虚拟网络系统环境中,进行CAN-ECU 的诊断功能自动测试,逐一检视各个诊断服务的测试报告,并修改测试程序,使诊断功能自动测试环境的功能更完整。在CANoe的标准任务栏上,将测试环境的工作模式改为“Simulated bus”,再按下闪电图形的“Start”钮,启动测试环境。测试器模块窗口右下方,按下图形为播放钮的“Start”,进行ECU的诊断服务自动测试,测试界面和如图7所示。

表2 诊断测试类型

图7 CANoe诊断功能自动测试画面

本研究分别针对(1)General requirement test;(2)Read DTC Information;(3)Clear Diagnostic Information;(4)Network Layer Timeout;(5)Test service;(6)Tester Present;(7)Read Data By Identifier 等进行测试,部分测试结果及HTML报告如图8所示。

图8 诊断服务功能测试结果与HTM测试报告

4 结论

本研究使用Vector车辆网络开发工具,进行ECU诊断功能自动测试环境的开发。先通过CANdelaStudio编辑ECU诊断功能描述文件,并产生ODX档案;接着,在CANoe虚拟网络系统环境,加载ODX档案,建立ECU节点模型的诊断通讯功能,再以测试器模块执行自动测试,所有项目的测试步骤、过程与结果,也都记录在测试模块所产生HTML测试报告中;诊断功能仿真测试结果与ECU规格文件是一致的。本研究使用的方法与传统诊断服务功能测试方法的差别,主要在于ECU诊断功能的规划、诊断功能节点模型建立、模型验证与测试等,皆符合V-model开发程序,并以ODX格式档案,来衔接各个开发阶段所需的诊断数据。此“CAN-ECU诊断服务功能自动测试”方法,可以协助汽车制造厂与ECU 供货商,在ECU诊断服务功能研发时期,通过通用的ODX 格式档案,可在异地分别进行V-model开发程序各阶段工作,并加入仿真节点测试功能,可尽早发现错误与缺陷,并可节省ECU开发成本及提升开发效率。

猜你喜欢

自动测试右键对话框
故障录波装置自动测试系统设计与实现
基于CANoe的商用车SAE J1939网络自动测试方法
直升机某型舵机自动测试系统设计分析
轻松整理Win10右键菜单
自定义“开始”右键控制菜单
液晶显示器及其电源适配器能效自动测试系统的研制
Bootlace Worms’Secret etc.
What Is Beauty?
用右键菜单管理右键菜单
浅谈VB的通用对话框《CommonDialog》控件的使用