案例研究:Tata Elxsi——用于自动化SIL测试的ECU虚拟化
借助自动化SIL测试,减少ECU测试时间,从10天减少至不到8小时
客户
Tata Elxsi是全球领先的设计与技术服务提供商之一,业务涵盖汽车、广播、通信、医疗保健和交通运输等多个行业。Tata Elxsi与汽车和交通运输行业的领先整车厂及供应商合作,提供从架构设计到产品上市乃至后续阶段的研发、设计、生成式人工智能(GenAI)及产品工程服务。公司汇聚自动驾驶、电动汽车、联网汽车技术以及软件定义汽车(SDV)等领域的专业经验,并依托遍布全球的设计工作室和开发中心网络,以及由超过11000名工程师和专家组成的全球人才库。


挑战
通过虚拟化AUTOSAR ECU、模拟外部组件,并将手动测试流程转换为可执行的自动化测试用例,从而在软件在环(SIL)环境中实现测试。
传统的硬件在环(HIL)测试需要物理台架测试和人工操作。软件在环(SIL)测试通过在虚拟环境中执行ECU软件,减少对物理硬件的依赖,从而无需硬件支持,并实现可扩展的测试。
一个关键需求是,虚拟ECU(vECU)必须运行与量产ECU相同的软件。如果软件存在差异,则需要在硬件上重复测试,从而减少虚拟化的价值。保持行为和接口的一致性至关重要。
在此使用场景中,ECU处理来自物理输入控制装置的输入信号,以实现各种应用功能。ECU通过I²C等串行接口与外围设备通信,而与其他车辆ECU之间的数据交换则通过CAN网络进行。
另一个挑战涉及休眠和唤醒场景。ECU可能处于休眠模式或已断电。当通过CAN接收到网络管理帧,或从外围设备接收到GPIO信号时,ECU必须唤醒或通电。应用程序必须识别唤醒源并执行正确的操作,例如特定的启动序列和系统状态检查。这些行为必须在虚拟环境中模型化并验证。
来自连接外设和串行接口的信号也需要进行仿真,以实现与vECU的全面交互。手动测试步骤必须转换为自动化测试用例,以支持持续集成和回归测试。
目标是在无需硬件的情况下尽早进行软件测试,减少人工工作量,同时将自动化测试集成到持续集成/持续测试(CI/CT)管道中。这种方法有助于加快开发周期并确保测试覆盖率的一致性。
解决方案
使用虚拟MCAL驱动程序和基于CANoe的总线仿真,创建一个3级vECU,以便在软件认证级别进行全面测试。


为了实现SIL测试,使用vVIRTUALtarget创建了一个3级vECU1。该工具将操作系统和MCAL驱动程序替换为虚拟等效组件。复杂设备驱动程序(CDD)已被移植到虚拟平台。这种方法确保相同的软件既可在虚拟ECU上运行,也可在真实ECU上运行,从而在不同环境间保持功能等效性。
该虚拟化方案涵盖CAN收发器驱动程序。这使得即使在vECU处于睡眠模式或断电状态下,也能进行精确的网络仿真,包括CAN报文的发送和接收以及网络管理帧的处理。一个虚拟网络收发器负责监视CAN流量,可以通过激活虚拟供电电源或通过GPIO触发唤醒中断来触发唤醒或上电状态转换,从而复现物理设置的行为。
CAPL脚本可在CANoe配置中模拟外围设备。CANoe系统变量提供向虚拟ECU发送模拟和数字信号的手段,从而实现与按钮、开关及其他输入设备的交互。I²C等串行通信接口也通过此机制进行仿真,确保全面覆盖各种通信场景。该设置创建一个逼真的环境,使虚拟ECU能够与模拟的外部设备和网络交互,仿佛其在物理系统中运行一般。
手动测试流程被转换为自动化测试用例,通过CANoe执行并使用vTESTstudio进行管理。这为基于服务器的管道(例如使用CANoe Server Editions)中的持续集成和持续测试(CI/CT)奠定了基础。
通过虚拟化驱动程序、硬件组件及外设交互,该解决方案提供一个完全虚拟化的测试环境,能够复现硬件行为、支持早期软件验证,并无缝集成到自动化工作流中。它使集成软件无需真实硬件即可进行早期测试,从而在修复缺陷和处理变更请求后,能够高效地进行重新测试和回归测试。
优势
提前进行测试、软件再利用和自动化,有助于加快交付速度、提高质量并及早规避风险。
- 测试时间从10天减少至不到8小时
- 手动测试被自动化测试用例取代,使开发更加敏捷,并为软件定义汽车做好准备
- 无需真实硬件系统即可进行闭环测试和调试过程
- 相同的应用软件和AUTOSAR BSW既可在虚拟ECU目标上运行,也可在真实ECU目标上运行
- 虚拟环境支持并行运行,且易于扩展
- “左移”策略使开发周期中的验证工作得以提前进行,从而减少后期缺陷和集成问题
