时间:2024-05-19
王敏
【摘 要】车载电控单元的测试是保证其质量及整车质量的重要手段,而传统意义上理解的测试过于片面,本文从开发流程的角度,阐述了不同开发阶段涉及的所有测试活动。了解各项测试活动的意义、内容及方法,对于合理制定测试方案和计划、有效执行测试意义重大。
【关键词】车载电控单元;开发流程;测试活动
【Abstract】Test of Electronic Control Unit is an important means to ensure its quality and vehicle quality,but the traditionally ECU test is too one-sided.This paper describes all the testing activities involved in various stages of development according to the development process.It is very meaningful to understand the significance,content and methods of testing activities for developing a reasonable test program and executing the test effectively.
【Key words】ECU;Development Process;Testing Activities
0 引言
随着汽车电子控制单元(Electronic Control Unit,以下简称ECU)的发展,ECU的质量对整车质量的影响越来越大,ECU的测试作为其开发过程中必不可少的一部分,对保证其质量是至关重要的。传统意义上理解的ECU测试可能仅仅是对应用功能的测试,但实际上,ECU的开发过程中包含了各种不同侧重点的测试活动,正是这些测试活动组合在一起才能真正有效保证其质量。本文以实际工作经验为基础,阐述了各项测试活动的测试内容、测试意义及测试实施要点,对入行不久的ECU开发测试工程师或其相关的产品设计发布工程师均具有一定的借鉴意义。
1 测试流程
ECU的测试流程与开发流程是息息相关的,不同的开发阶段,测试活动有所偏重,具体如图1所示。需要说明的是,软件开发基础阶段即ECU基本功能实现,协议层较为稳定;软件开发完备阶段即ECU全部功能实现,且基本功能已通过测试验证。同一阶段的测试活动一般没有严格的先后顺序,可以同时进行。
2 测试活动详述
2.1 代码测试
代码测试作为最初级的测试活动,旨在保证代码质量,其包括三个环节,每一个环节都可在专业的测试工具下搭建测试环境进行测试活动。
一是代码审查,可使用DAC工具,通过创建项目、配置项目、选择规则/度量标准、执行检查等操作生成测试结果,然后对生成的结果进行分析整理,形成测试报告。其主要作用是参考MISRA-C等规则检查代码的编程规范。
二是静态分析,可使用Goanna工具,在安装了Goanna的集成开发环境中创建项目,运行Goanna生成测试结果,然后对生成的结果进行分析整理,形成测试报告。其主要作用是检测代码的运行时错误,如数组/指针越界、死循环、死代码等。
三是动态单元测试,测试之前需要根据需求分析文档、软件详细设计文档等设计相应的测试用例,然后可使用Tessy工具,创建测试项目、指定测试环境和添加源文件、编辑测试接口、输入测试用例、执行测试生成测试结果,然后对生成的结果进行分析整理,形成测试报告。其主要作用是通过实际运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。
虽然专业的测试工具有其不可替代的优势,特别是Tessy这种专门用于嵌入式软件动态测试的工具,但考虑到开发成本问题,代码测试也可以通过手动代码审查及在原有开发环境中编写测试脚本进行动态测试来代替。当然,这种测试方式对代码测试人员的专业素质有着更高的要求。
2.2 总线协议测试
总线协议测试包括总线性能测试和诊断协议测试两个部分。总线和诊断是大多数ECU必不可少的功能,具备较强的的通用性。
总线性能测试主要以总线所遵循的标准(如CAN总线基于ISO 11898)、及被测ECU的通讯矩阵等为依据制定测试规范,测试内容[1]包括物理层、数据链路层、交互层、网络管理、网络错误处理等,其一般测试环境配置如图2所示,其中总线监测/模拟系统如Vector的CANoe,总线干扰仪如CANstress,总线示波器如CANscope等。由于Vector的工具彼此适配良好且具备强大的开发功能,我们可以通过编写测试脚本实现总线性能的自动化测试。
诊断协议测试主要以总线所遵循的诊断标准(如CAN总线基于ISO 14229/ISO 15765)、及被测ECU的诊断参数列表为依据制定测试规范,测试内容包括被测ECU的诊断参数列表上定义的所有诊断服务。该测试也可利用特定的测试工具进行自动化测试,如利用Vector的CANdela生成诊断数据库文件,利用CANdiva进行诊断规范的自动化测试等。
2.3 系统功能测试
系统功能测试是最基本的测试活动,其着眼于ECU的应用功能,一般可分为台架测试和实车测试两个部分。无论是台架测试还是实车测试,都需要根据功能需求规范等需求文档进行需求分析并编写测试用例,台架测试应尽可能多的覆盖所有测试用例,而实车测试一般难以覆盖所有的测试用例,如故障情况、极限条件情况、整车供电变化情况等。除此之外,ECU的开发一般与整车开发同步,而开发阶段的实车测试资源有限,这也是实车测试的局限。
正因为实车测试的局限性,为避免测试疏漏,台架测试环境应尽量模拟实车环境。传统台架测试环境一般包括电源、被测ECU、实际/模拟的I/O口、总线监测/模拟工具及其他测试测量工具等,这对于ECU开发初期的功能测试是必不可少的,它便于分析问题原因,便于优化测试用例及测试方法。但当ECU的开发趋于稳定,开发周期越来越短,基于传统台架测试环境的功能测试就显得有些笨拙,我们需要更加智能便捷的自动化测试。典型的自动化测试系统如HIL等[2],它将传统台架测试所需的各个部分集成在一起,并带有测试开发环境,通过编写测试脚本,可以实现大多数测试用例(通常是已经过台架测试优化的)的自动化测试。图3展示了一个HIL系统的测试机柜及其开发环境编写的测试界面。除了专业的自动化测试系统,我们也可以利用常用总线工具(如CANoe、Vehicle Spy)的开发功能,甚至结合方便调用各类硬件接口的开发环境(如LabVIEW)实现半自动化测试,如此既提升了测试效率也兼顾了测试成本。
然而,无论台架测试环境多么仿真实车环境,实车测试仍是必不可少的。实际的测试活动中,实车测试往往能发现许多令人难以想像的问题甚至是设计缺限。对于一般的汽车电子零部件供应商,实车测试常常到主机厂DRE验收测试才进行,但对于主机厂自主开发的ECU,实车测试的进行就相对要便利得多。
2.4 性能参数测试
各ECU的性能参数千差万别,如音视频导航系统的音频、视频、GPS相关性能指标,BCM/PEPS系统的射频、低频通信指标,也有如同最大工作电流、休眠电流等通用的性能参数。性能参数是否达标既依赖于ECU开发初期的硬件选型,也依赖于软件实现。因此,我们不能仅仅依靠硬件供应商提供的性能参数报告,而需要在软件集成达到一定成熟度时,进行整体的性能参数测试。当然,很多性能参数的测试对测试环境及测式设备要求较高,ECU的开发商可以根据自身的测试资源选择自己进行测试或到专业的实验室完成测试。
2.5 可靠性测试
可靠性测试是一个比较宽泛的概念,这里主要指软件的可靠性测试,对于硬件的可靠性测试,则主要在环境试验中体现,下一节将会具体阐述。
软件可靠性测试有压力测试、交互测试、破坏测试、随机测试等测试方式。压力测试通常以最基本的功能为基础,通过制造极端条件(如总线负载率达100%)或大量重复操作(如反复点火)等来验证ECU在压力状态下功能是否正常。交互测试可分为内部交互与外部交互,内部交互主要考虑ECU各功能模块之间的影响,外部交互则考虑被测ECU与车上其他ECU之间的影响。破坏测试即故意制造错误条件,以验证ECU在错误状态下的保护机制,并且能否从错误中恢复。随机测试,顾名思义就是进行随机操作,在没有被预先设定的测试规范所框住的情况下,随机测试常常会有意想不到的收获。
事实上,可靠性测试可以认为是系统功能测试的有效补充,很多ECU的开发甚至不会严格区分这两者,只是在测试的不同阶段,执行上会有所偏重。在ECU开发初期,一般主要进行基本的系统功能测试,当系统功能趋于稳定的时候,会日渐加重可靠性测试的执行度。可靠性测试的执行过程中,压力测试、交互测试、破坏测试可通过自动化测试达到较高的执行效率和执行覆盖度,随机测试则一般通过手动测试进行。
2.6 环境试验及电磁兼容试验
环境试验[3]即考察ECU在不断经受自身及外界气候环境、机械环境影响的情况下,是否仍能在一定寿命时间内保持正常工作。它可以被认为是一种基于硬件性能的可靠性测试。环境试验的具体项目包括电气试验、机械试验、温度试验、湿度试验、盐雾腐蚀试验、耐工业试剂试验、外壳防护试验、可靠性耐久试验等,不同的ECU所需试验的项目及试验要求都不尽相同。按开发阶段划分,环境试验可分为设计验证(Design Validation,DV)和产品验证(Product Validation,PV)两个部分。设计验证需要进行所有项目的试验,试验样品所用的材料、尺寸等必须符合量产状态,试验结果将作为设计冻结的依据,使ECU进入小批量生产阶段;而产品验证可以只选取部分在设计验证试验期间出现失效或者认为风险较高或者生产工艺对试验结果有影响的试验项目,但试验样品必须是从正式生产线制造出来的,试验结果将决定ECU能否正式进入批量生产阶段。
很多时候我们需要在特定的环境试验箱中进行耐久试验,试验过程的监控首先应考虑ECU所有的硬件模块及I/O口,以防设计失效未检测到;其次试验监控数据特别是异常结果应注意保存,它是分析失效原因,改进硬件设计的的重要依据;再者,应尽量使监控流程易于执行,满足长时间周期性监控的要求。在实际的ECU开发过程中,我们应该根据环境试验相关标准(如ISO 16750、IEC 60068等),结合ECU自身特性,确定试验项目和试验计划,并制定及实施试验监控方案。从功能性和经济性考虑,以LabVIEW等作为上位机,结合低成本的总线功具及适应ECU I/O口的负载板的环境试验监控系统有较高的实用性。图4列举了一个基于LabVIEW开发的环境试验监控系统的上位机实例。
电磁兼容试验即测试ECU在其电磁环境中能否正常工作且不对该环境中任何事物造成不能承受的电磁骚扰,它包括电磁骚扰发射试验和抗扰度试验两个部分。同性能参数测试类似,电磁兼容试验对试验场地及试验设备有较高要求,一般ECU供应商会选择委托专业实验室进行。另外,环境试验和电磁兼容试验均以测试ECU硬件为主要目的,对软件完备性没有严苛要求,通常在软件开发初期,软件实现基本功能,能满足试验监控需求即可。
2.7 生产下线检测
ECU从工厂生产线下线后,需要经过测试以验证其生产合格,同时还需要将ECU的生产信息,如序列号、生产日期等写入ECU内部。生产下线检测方式[4]与环境试验监控方式类似,这里不再赘述。需要补充的是,生产下线检测所用软件一般是较为完备的正式软件(具备诊断功能),除了应用功能检测外,还可以利用其故障诊断功能进行自查;其次,由于生产下线检测一般是由没有专业背景的工人来操作,检测系统需要更加简明易行;再者,每个ECU都应保留其检测报告,便于后续问题追溯。
2.8 整车装车测试
整车装车测试是指ECU到达主机厂并装配到实车上后的功能测试,该项测试一般会以点检的形式,选取少数基本功能进行验证。除此以外,还需要通过诊断仪对ECU的零件号、软/硬件版本号、故障码等信息进行确认,有的还需记录ECU与实车的绑定关系、写入实车配置信息等,这些也可以算作装车测试的一部分。整车装车测试应充分适应主机厂总装生产线的环境和装配流程。
3 总结
本文几乎涵盖了ECU开发过程中所涉及的所有测试活动,各项测试活动的目的虽然不尽相同,但测试方法却可互相借鉴。我们若能知其意义、明其方法,在开发立项之初,充分评估各项测试活动所需资源,制定合理的测试方案及测试计划并有效实施,对于保证ECU质量及整车质量必是大有所益。
【参考文献】
[1]QJGAC1523.053-2016,低速CAN ECU总线测试方法[S].广州:广州汽车集团股份有限公司,2016.
[2]黄胜龙.汽车发动机ECU的自动化HIL仿真测试平台的研究与实现[D].吉林:吉林大学,2013.
[3]QJGAC 1523.028-2014,电子电气零部件环境适应性及可靠性通用试验规范[S].广州:广州汽车集团股份有限公司,2014.
[4]翟琰,魏振春,韩江洪,卫星.基于脚本语言建模的汽车ECU测试系统设计[J].计算机工程,2012,38(15):260-263.
[责任编辑:汤静]
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!