汽车开发领域有着垂直性较强的一系列需求,其中最为瞩目的需求之一就是对安全高效的软件测试方法的需求。传统的汽车开发偏向使用硬件原型与真实ECU进行软件测试,但由于硬件设备往往在开发周期的中后阶段才生产完成,给汽车开发带来了成本与时间方面的挑战。最近一项研究表明,约60%的开发项目遇到没有真实硬件可用的情况,10%的工程师被迫在真实车辆上进行测试。 真实硬件的缺失及搭建虚拟硬件的高昂成本正带来一系列困境:
- 测试能力有限。
- 只有在真实测试时才能发现集成中的缺点。
- 无法在开发阶段验证设计,也无法提供快速更新。
- 无法应对当前市场中不断缩短的开发周期。
01.什么是虚拟ECU验证?
虚拟ECU验证(通常称为vECU)是一种突破性的方法,可以在暂无硬件原型的情况下测试软件功能。通过创建独立于硬件的虚拟环境,开发人员可以在PC机上使用仿真模型闭环执行ECU、模拟各种场景,并在早期阶段评估软件功能、与环境模型的交互以及组件模型。这种安全且高效的方法使得道路、台架测试得以转移至PC机,支持在开发阶段进行全面测试,以最有效和最可行的方式确保ECU软件的可用性。 其优点有:- 及早发现集成问题:虚拟ECU验证有助于及早发现与集成相关的缺陷,使工程师能够在进入下一个开发阶段之前及时解决这些问题。通过消除对硬件原型的依赖,可以更有效地识别和解决潜在问题,从而节省时间和资源。
- 可扩展的环境:虚拟ECU平台提供了一个可扩展的环境,可以适应特定的测试要求。开发人员可以在相同的时间内运行更多测试,从而提高生产力并加快整个开发进程。
- 减少验证工作:由于减少了对物理原型的需求,最大限度地减少了验证工作量和相关成本,开发人员可以专注于测试软件堆栈的复杂性,而不受硬件可用性的限制。
- 稳定可靠的测试环境:虚拟ECU平台提供稳定可靠的测试环境,不受物理原型的不确定性和限制。这种受控设置可以对软件功能进行精确测试和准确评估,确保在实际场景中具有强大的性能。
- 重用可用的硬件测试用例:通过将软件测试与硬件原型分离,虚拟ECU验证允许重用可用的硬件测试用例,不会丢失有价值的测试场景。
02.虚拟ECU是如何工作的?
虚拟ECU不依赖硬件,通过虚拟化环境来测试软件堆栈的复杂性,从而帮助开发人员构建ECU。通过连接外部环境模型的输入和输出信号,虚拟ECU得以使应用软件读取传感器值并设置执行器,并且可在相同时间内运行更多测试。 根据其使用情况,虚拟ECU有着不同的利用率级别:- 0级vECU(控制器模型):最简单的vECU 类型,由控制器模型或由其生成的 C 代码组成,主要用于测试控制算法本身。
- 1级vECU(应用级):包含特定于虚拟ECU的应用软件代码,无需使用总线或网络。
- 2级vECU(模拟BSW):在1级的基础上提供模拟底层软件(BSW)功能,可以在信号级别以及总线或网络级别进行通信。
- 3级vECU(生产BSW):不仅包括应用软件,还包括用于测试目的的底层软件(BSW),能够评估真正ECU的硬件独立软件,并作为在各种测试级别测试BSW的手段。
- 4级vECU(目标二进制文件):以真实ECU编译的代码为代表。作为实时系统最接近的表示形式,4级vECU包括硬件依赖性,允许评估潜在的故障和问题。