每个汽车公司的ECU开发部门都需要快速且高效地测试他们的产品。从2012开始,戴姆勒就一直在使用定制的生成工具来自动化生成乘用车的发动机控制器的网络测试用例。Vector基于CANoe为戴姆勒定制开发了该工具,它可以自动生成从网络管理、报文周期、E2E保护到网关转发等关键测试点的测试脚本。它的出现使单调乏味的测试脚本编写、调试和维护的工作变成了过去时。
软件的测试工作总是占用了整个ECU开发周期中的一大部分。每个新版本的软件都需要经历特定的发布流程,在这个过程中ECU需要通过各种各样的测试项,并且所有的测试报告都需要完整的记录下来,作为ECU已经达到软件成熟证明。如果没有自动化测试,当前ECU的复杂程度会使得这个过程变得不可控。但是自动化测试脚本从来都不是非常简单的事情。
为了提高测试工作的效率,戴姆勒于几年前针对其乘用车发动机ECU发开了基于CANoe软件的网络测试工具CANSpector。该工具支持当时基于OSEKNM的所有网络管理需求。用户只需要在该工具里选择测试内容,工具会自动生成测试脚本、运行测试脚本并且产生测试报告。但是其他方面的测试任然需要戴姆勒工程师基于CANoe手动执行,包括测试脚本的创建,测试工程的配置以及执行测试和生成报告等工作。
在戴姆勒当前的动力域的架构中,需要同时开发多种发动机控制器和网关。由于软件平台技术在汽车行业的广泛使用,发动机控制器的网络控制软件非常相似。假使每年同时开发两个ECU,每个ECU需要四轮的测试,那么就需要进行八轮近乎一样的网络测试。如果网络测试能够自动化生成,那么总的测试工作量就会明显地降低。
在新的车型平台上,戴姆勒已经全面地使用符合AUTOSAR规范的基础软件。由于缺少对AUTOSAR规范、FlexRay总线和新数据库格式的支持,戴姆勒在2011年停止了自研的网络测试工具CANSpector的维护。考虑到工具的扩展和维护成本,戴姆勒决定将自动化测试工具项目外包给专业的工具供应商并且最终选择Vector开发和维护新的网络测试工具COMSpector。相比于老的网络测试工具,COMSpetor明显地扩展了测试的范围。基于CANoe的TFS函数库,新工具可以提供更多的自动化测试功能。除此之外,CANoe还可以提供残余总线仿真、记录数据回放、测试报告生成等多种功能。由于戴姆勒的各个部门已经长期且广泛地使用CANoe,所以COMSpetor可以无缝地集成到戴姆勒现有的工具链中。
在戴姆勒目前的网络架构中,发动机控制器和动力域控制器通过CAN总线直接连接。发动机控制器还通过另外一路CAN连接到变速箱控制器(TCM)和各种传感器。动力域控制器(CPC)作为动力域ECU和整车的接口,除了多路CAN总线外,该控制器还有一路FlexRay总线连接到ESP、雷达等控制器。COMSpetor可以覆盖目前奔驰品牌乘用车所有的7种类型相关控制器的网络测试。
使用COMSpetor创建测试脚本的流程通常是这样的:第一步选择网络通信数据库,数据库可以是AUTOSAR ECU提取文件、系统描述文件、DBC数据库或者是网关路由表。然后通过鼠标在它的GUI上选择被测试的ECU、测试内容以及参数配置。最后只需要单击生成按钮,COMSpector就可以自动化生成对应的测试脚本。COMSpector作为一个独立的软件工具,所有的用户都可以在自己的PC上安装。它生成的测试脚本可以导入到CANoe中,CANoe执行这些测试脚本并且生成对应的测试报告(如图1所示)。
COMSpector支持主动和被动两种类型的测试用例。主动测试用例指的是在单节点测试时,CANoe仿真其他ECU(即常说的残余总线仿真,简写为RBS)对被测ECU进行激励并且检查被测ECU输出是否正确的测试。CANoe的交互层(Interaction Layer,简写为IL)功能在通信数据库的帮助下,可以完整地模拟各种ECU的报文发送行为,进而仿真被测ECU在实车上的网络环境。因此在ECU开发的早期阶段,我们就可以把ECU放置在接近真实的网络环境中进行测试。
在被动测试中,测试系统主要扮演的是观测的角色。换句话说就是在测试的过程中测试系统不会主动地向总线上发送任何的数据。因此被动测试主要应用在由真实ECU所组成的测试环境中。被动测试主要用来检查ECU的报文发送行为是否符合规范的要求,主要覆盖了以下的测试内容:
> 报文发送周期是否符合规定;
> 所有要求的报文是否全部发出;
> 报文中包含的Rolling Counter和Checksum是否正确;
> 总线负载是否过高;
> 测试过程中是否出现总线拥堵现象。被动测试不仅适用于单网段测试,同样也适用于跨网段的测试。
对于网关ECU的路由功能测试,COMSpector支持路由延时测试、数据一致性测试、周期或者非周期型路由测试、AUTOSAR Update Bit的转发测试等测试项。COMSpector生成的测试用例可以长时间检测网关的工作,每当路由功能发生错误(比如路由转发超时或者数据不一致)时,CANoe会自动在测试报告中记录错误的内容和发生的时间。
除此之外,对于报文的发送周期、Rolling Counter和Checksum等测试项COMSpector也支持类似的测试方法。用户可以在COMSpector中定义相关的测试参数(如图2所示),比如最大报文路由时间、最大或最小报文周期,测试脚本会根据这些测试参数来判定测试结果是通过还是失败。以报文的最大或最小周期参数为例,在测试过程中,如果测试脚本检测到周期报文的发送周期大于最大报文发送周期或者小于最小报文发送周期,CANoe会自动在测试报告中记录错误类型以及发生的时间戳。于此同时,网络上出现的所有报文都会被记录下来。测试工程师可以非常方便的使用CANoe回放这些记录文件,根据记录文件和测试报告,CANoe可以帮助测试工程师定位错误发生的原因。
在主动测试中,CANoe会仿真网络上除被测ECU外的其他节点发送报文。这时候测试系统可以完成一些特定的测试项目。对于网关ECU的测试,CANoe可以仿真不同内容(比如报文中的信号分别取最小值、最大值和中间值)的报文发给网关,检查网关在不同条件下的路由功能是否满足需求。和被动测试类似,主动测试也包含路由时间、数据一致性和转发顺序等测试项。网关的主动测试还包含了故障条件下的路由测试和传输层报文的路由测试。
由于在主动测试中,总线上的报文是通过CANoe仿真出来的,因此报文的周期以及报文中包含的Rolling Counter、Checksum以及Update Bits都可以任意修改。CANoe可以发送错误的数据给被测ECU,然后通过读取诊断DTC判断ECU是否检测到这些错误。COMSpector也会自动生成这一类的诊断测试脚本。
网络管理(NM)控制ECU的报文发送行为以及ECU的唤醒和休眠。错误的网络管理功能可能会影响整车正常进入休眠,最终导致车辆在短时间内发生亏电。合适的网络管理测试可以在ECU开发过程中检测出潜在的错误,避免造成更大的损失。戴姆勒定义了一系列的测试规范来保证ECU正确地实现了网络管理功能。COMSpector可以自动生成符合戴姆勒规范的网络管理测试脚本。目前COMSpector支持基于CAN和FlexRay总线的网络管理测试。
戴姆勒对Vector提供的网络测试方案尤其满意的一点是这是一个非常轻量级的测试方案。除去PC,测试工程师只需要一到两个CAN或者FlexRay接口卡和一个BOB盒就可以完成整个测试过程。BOB盒主要用来提供12V电源、点火信号以及总线连接端口。由此可以看出,即使不依赖昂贵的第三方硬件,Vector的工具也可以很好的完成ECU的网络测试工作。
基于COMSpector和CANoe的方案只需要很少的人力资源就可以在短时间内生成和执行多种ECU的网络测试脚本。例如,过去测试工程师在测试报文的发送周期时,需要手动逐条检查报文的周期是否满足要求,现在只需要在COMSpector中简单的配置一下就可以同时对所有报文的周期进行检查。过去即使针对某个ECU编写了自动化测试脚本,也需要消耗大量人力资源来维护这些CAPL脚本去适配不同的被测对象。现在即使是没有CAPL编程经验的工程师也可以通过COMSpector配置生成高质量的自动化测试脚本。目前COMSpector已经被戴姆勒的总部、美国和中国分公司广泛地使用。
COMSpector已经成为戴姆勒不可缺少的网络测试工具。它取代了费时费力的脚本编写和适配工作,帮助工程师把精力集中在测试分析和提高产品质量的工作上而不必分心于测试工具的开发。在戴姆勒的乘用车上,几乎所有的ECU和网关都需要经过COMSpector的测试,测试工程师可以直接提交CANoe生成的测试报告和记录文件作为ECU通过测试的证明材料。
为了满足CANFD和车载以太网的测试需求,目前戴姆勒和vector正在合作对COMSpector进行升级,相信升级后的COMSpector可以更好地帮助戴姆勒的工程师简化测试过程、增加测试深度。
Vector中国致力于向国内汽车行业的OEM和供应商提供高效、可靠的网络测试解决方案和工程服务。
如需了解更多信息请联系:info@cn.vector.com