软件定义汽车,那么软件从何而来?
无人驾驶、自动泊车、驾驶员疲劳提醒……随着汽车智能化、网联化的深入推进,汽车在从燃油车向电动汽车进阶的过程中,也在从一个普通的交通工具,向智能汽车方向全力前进,很多人甚至把汽车看成是继手机之后的下一个最具前景的智能终端设备。因此,无论是各国政府、传统汽车企业,还是初创企业、投资机构,甚至互联网、软件企业都在汽车领域投入了更多的关注。所有人普遍的共识,都认为“软件定义汽车”是未来汽车的方向,甚至有车企领导者认为:“软件将占未来汽车创新的 90%。
应该说,汽车是到目前为止,真正完整经历了从自动化到电气化,又到数字化、智能化的工业化产品。那么作为汽车智能化和“软件定义”中最核心的部分,汽车嵌入式软件在整车研发过程中的价值就不言而喻了。
知道了软件对于汽车的价值,那么我们就必须知道:汽车上软件都是从何而来?
汽车嵌入式软件开发,是一个相当专业的领域。应该说,现在软件的产生,不是靠程序人员一行一行写代码了,因为有效率更高的方法:模型驱动(MDD, Model-Driven Developement)被广泛地认为是一种开发汽车子系统更安全有效的方法。
![](http://n4.ikafan.com/assetsj/blank.gif)
生成式MDD/XIL工作流自动生产正确的系统
简单来说,利用MDD方式做汽车嵌入式软件开发,首先要由软件开发人员和汽车设计师一起,创建定义一个包含车辆系统内的通信网络、传感器、执行器以及电子控制单元( ECU Electronic Control Unit)功能模型。进而通过MIL(Model in loop模型闭环仿真)、SIL(Software in loop软件闭环仿真)和HIL(Hardware in loop硬件闭环仿真)三个验证过程,最终得到经过验证的、安全的汽车嵌入式软件。
其中,MIL是为了验证控制算法模型是否准确地满足了设计的功能需求;SIL是在PC上验证软件代码实现的功能,是否与模型一致。模型通过验证之后,会根据模型自动生成程序代码。进而,生成的代码将被集成到 ECU 硬件和平台软件(即固件)中,进行最后的HIL测试:在最终硬件系统环境里验证代码所实现的功能,是否与需求定义一致——一般情况下,会利用ECU硬件的模型在虚拟环境下来执行HIL测试,也被称为vHIL。
之所以要整段讨论艰涩深奥的软件开发知识,是为了说明:实际上,虽然MDD已经是一个相当自动化的模式,而且作为一个被软件开发领域普遍认为能够解决软件开发复杂性的方法,具有开发快、成本低、质量高等各种优势。但针对汽车嵌入式软件开发场景,其依然存在巨大的不足。
西门子数字化工业软件日前推出的《汽车嵌入式系统研发》白皮书指出:由于该软件研发模式受到不同提取水平、不同语言、信号、实施、工具、仿真工具、执行序列等因素的影响,其核心流程节点“测试”严重缺乏重用的可能性,是一个重大缺陷。而由此带来的业务隐患在于:汽车企业很可能在项目早期不能发现软件的问题,由此需要投入更大的成本在项目后期进行修改。更糟糕的是,这还将直接影响包括机械、电子电气等汽车其他系统的研发进度,从而带来更为灾难性后果。
![](http://n4.ikafan.com/assetsj/blank.gif)
测试自动化软件用测试台暴露的接口对 SUT 进行排序,并访问其中的数据
![](http://n4.ikafan.com/assetsj/blank.gif)
用数字孪生进行左移测试和验证,提早发现问题
《汽车嵌入式系统研发》白皮书中提出一个用于测试自动化工具与测试台之间通信的 API 标准ASAM XIL,同时详细讲解、分析了一个“更好的测试架构 ”:建立一个以标准为中心,并且由MDD/XIL生成式工作流内自动模型转换增强的测试架构。白皮书强调:该方法将能够帮助汽车企业可以项目早期发现问题,将纠正成本降到最低;同时还能再在整个MDD/XIL工作流中,重用测试案例,保护测试投资;甚至还将帮助汽车企业拓展验证覆盖范围,提高安全性,在现场部署之前发现问题。
![](http://n4.ikafan.com/assetsj/blank.gif)
当数据、语言或者工具发生变化时,各XIL级之间的接口不匹配
![](http://n4.ikafan.com/assetsj/blank.gif)
ASAM XIL提供了一个灵活的标准测试架构
![](http://n4.ikafan.com/assetsj/blank.gif)
用ASAM XIL映射和配置层来适配测试台接口,从而在各MDD/XIL配置中重用测试案例
嵌入式软件研发,是一个相当专业的问题。但是对于汽车行业来说,这也是关系到未来长期发展的关键一课。
![](http://n4.ikafan.com/assetsj/blank.gif)