1.5.5 汽车软件设计
控制软件是汽车电子控制系统的核心。软件开发的任务是通过程序实现系统的控制功能,并可以支持在特定的硬件平台上实现功能的不断增加,以满足汽车市场竞争的需要。传统的汽车电子软件开发手段已越来越难以适应不断增长的功能需求。从汽车电子工程师的角度来看,如何更加方便和可靠地实现更多的功能,是汽车电子软件开发方法发展的重要目标。
汽车电子软件开发方法遵循“V”形开发模式。“V”形开发模式是由控制方案设计、快速控制原型、目标代码生成、硬件在回路仿真和标定等阶段组成。这些不同的阶段排列成“V”形,在系统开发的每一个阶段都有相关的工具进行支持。控制方案设计阶段主要解决的问题是系统的整体方案设计和建模。这一步是整个设计过程的核心,不同的控制方案将决定最终的控制效果。
快速控制原型允许反复修改模型设计,进行离线及实时仿真。使用该技术,可以在最终产品硬件投产之前,仔细研究诸如离散化及采样频率等的影响、算法的性能等问题。通过将快速原型硬件系统与所要控制的实际设备相连,可以反复研究使用不同传感器及驱动机构时系统的性能特征,而且还可以利用旁路技术将原型电控单元或控制器集成于开发过程中,从而逐步完成从原型控制器到产品型控制器的顺利转换。硬件在回路仿真是指控制系统设计结束,产品型控制器已制作完成,在闭环下对控制系统进行详细测试。
代码自动生成是现代汽车电子软件开发的重要特点。采用Targetlink等工具,可以从MATLAB/Simulink及Stateflow中自动生成标准C代码的产品级代码。Targetlink生成的代码可靠性高,易读性好。可产生定点运算代码,适应多种微处理器和编译器。与传统的手工代码相比,Targetlink具有很多优越性,如自动从Simulink/Stateflow模型转换到目标处理器,以缩短系统实现周期。
基于模型的软件开发思想是将模型作为软件设计的中心,通过模型抽象出软件系统的关键问题并加以描述,通过模型表达出系统的解决方案。基于模型的软件开发思想的核心是通过采用形式化的工具对系统模型的验证,以保证系统设计的正确性。模型提供了一个物理系统的抽象,可以让工程师们通过忽略无关的细节而把注意力放到系统的重要部分来思考。工程中的所有工作形式都依赖模型来理解复杂的真实世界的系统。
基于模型的软件开发方法通过对目标系统建模,抽象出系统的关键问题用模型加以表达,使得开发者可以围绕模型对系统进行深入的思考和分析,以保证对系统理解的正确性。基于模型的软件设计方法的重点是系统的建模和模型的验证。
汽车电子软件系统的开发不仅需要考虑软件的正确性,还需考虑软件的可移植性、实时性和可靠性。特别是在汽车电子系统集成过程中对于应用程序在分布式系统中的优化将直接影响整个系统的性能。汽车电子系统一般具有如下特性。
(1)可移植性
软件可移植性是指软件产品从一种软硬件环境迁移到另外一种软硬件环境的能力。面对如此多汽车厂商、汽车零部件生产商以及芯片厂商,良好的可移植性可以增加软件代码的复用程度、减少软件的维护花费、延长软件的生命周期。目前,提高汽车电子软件可移植性的方法主要是通过制定相应的标准来完成,如OSEK/VDX标准、AUTOSAR标准。这些标准规范了汽车电子软件体系结构,对整个软件系统进行了“垂直分割”或“水平分割”。这不仅增加了汽车电子应用程序的通用性,也增加了系统软件在各个硬件平台的可移植性。
(2)实时性
实时性是指汽车电子系统对于任何一个外界输入都能获得及时的响应。汽车电子系统中的应用程序,如构件、任务或其他可运行的功能实体都必须在一定的时间限制内完成。如果未能在时间限制内完成,将会严重影响应用程序功能,甚至可能造成严重后果。在软件设计阶段,设计者必须对每个应用程序的最坏执行时间做出评估,然后根据当前的系统环境分析应用程序的最坏响应时间,并保证其不超过截止时间。
(3)可靠性
可靠性是指系统在规定条件下以及规定时间内执行所要求功能的能力。嵌入式系统容易受到电磁干扰、剧烈震动和高温高压等外部不确定因素干扰。除了这些外部环境所带来的瞬时错误以外,软件之间的冲突也可能使系统发生故障。因此,必须在软件设计阶段考虑系统的容错能力,并对系统的容错能力做出评估。
为了应对汽车电子软件的可移植性和可重用性问题,全球各大车厂、零部件生产商以及半导体公司都在努力推动汽车电子标准化。在汽车电子迅猛发展的今天,推动国内汽车电子软件标准化,增强汽车电子应用程序和系统软件的可移植性与可重用性,增强汽车电子系统的实时性,提高系统可靠性,对于提高我国汽车电子软件技术水平有着重要的意义。