一、AUTOSAR的背景介绍
AUTOSAR是AUTOmotive Open System Architecture(汽车开放系统架构)的首字母缩写,是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,是对汽车技术开发一百多年来的经验总结。从2003年起,拟定了一个符合汽车电子软件开发的、开放的以及标准化的软件架构。该架构旨在改善汽车电子系统软件的更新与交换,同时更方便有效地管理日趋复杂的汽车电子软件系统。AUTOSAR规范的运用使得不同结构的电子控制单元的接口特征标椎化,应用软件具备更好的可扩展性以及可移植性,能够实现对现有软件的重用,大大降低了重复性工作,缩短开发周期。
AUTOSAR成员之间开展合作的主要目标是:使基本系统功能以及接口标椎化,使软件开发合作伙伴之间能交换、转换和集成各自的车载网络功能,最大限度地提高车辆售后的软件更新和系统升级效率。有了这个标准,AUTOSAR可以把范例从一个基于ECU的系统转移到基于功能的系统进行设计开发,统筹技术和经济方面对不断增长的E/E复杂性的汽车软件开发的管理。由于AUTOSAR提倡“在标准上合作,在实现上竞争”的原则,其核心思想是“统一标准、分散实施、集中配置”,所以采用AUTOSAR将为OEM带来很多好处,使得他们对于软件采购和控制拥有更大和更灵活的权利。软件系统的开放化和标准化将使更多的软件供应商进入汽车电子软件行业,OEM将有更多的选择,这将有利于提高软件产品的质量。
AUTOSAR的计划目标主要有三个:
- 1)建立分层的体系架构
- 2)为应用程序的开发提供方法论
- 3)制定各种应用接口规范
二、AUTOSAR的分层模型
为了实现应用程序和硬件模块之间的分离,AUTOSAR架构被抽象成四层,由上至下依次为:应用层(Application Layer)、运行时环境层(Run Time Environment,即RTE)、基础软件层(Basic Software,即BSW),以及微控制器层(Microcontroller)。如下图所示。
AUTOSAR软件体系结构包含了完全独立于硬件的应用层(APP)和与硬件相关的基础软件层(BSW),并在两者中间设立了一个运行时环境(RTE),从而使两者分离,形成了一个分层体系架构。RTE是专门为应用软件(AUTOSAR软件组件和/或AUTOSAR传感器/执行器组件)提供通信服务的层。在RTE之上,软件架构风格从“分层”转变为“组件风格”。AUTOSAR软件组件通过RTE与其他组件(内部和/或内部ECU)或服务进行通信。所以,这样的分层结构带来两个最大的好处,一方面,OEM可以专注于开发特定的、有竞争力的应用层软件(位于RTE之上),另一方面,它使OEM所不关心的基础软件层(位于RTE之下)得到标准化。
三、AUTOSAR的方法论
AUTOSAR为汽车电子软件系统开发过程定义了一套通用的技术方法,即AUTOSAR方法论。该方法描述了从系统底层配置到ECU可执行代码产生过程的设计步骤,如下图所示。
AUTOSAR设计和开发流程分为三个阶段:系统配置、ECU设计与配置阶段、代码生成阶段。
- 第一阶段:定义系统配置文件,这是系统设计者或架构师的任务。包括选择硬件和软件组件,定义整个系统的约束条件。AUTOSAR通过使用信息交换格式和模板描述文件来减少初始系统设计时的工作量。系统配置的输入是XML类型的文件,输出是系统配置描述文件,系统配置的主要作用是把软件组件的需求映射到ECU上。
- 第二阶段:根据系统配置描述文件提取单个ECU资源相关的信息,提取出来的信息生成ECU提取文件。根据这个提取文件对ECU进行配置,例如操作系统任务调度,必要的BSW模块及其配置,运行实体到任务的分配等,从而生成ECU配置描述文件。该描述文件包含了特定ECU的所有信息。
- 第三阶段:生成代码,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关代码链接起来形成可执行文件。
具体的开发流程如下:
- 编写系统配置输入描述文件
在AUTOSAR中,所有的描述文件都是XML类型的文件。系统配置输入文件包含三部分内容:
1)软件组件描述,定义了每个涉及的软件组件的接口内容,如数据类型,端口,接口等。
2)ECU资源描述,定义了每个ECU的资源需求,如处理器、存储器、外围设备、传感器和执行器等。
3)系统约束描述,定义了总线信号,软件组件间的拓扑结构和映射关系。 - 系统配置
系统配置的功能主要是在资源和时序关系的前提下,把软件组件映射到各个ECU上,然后借助系统配置生成器生成系统配置描述文件。这个描述文件包括总线映射之类的所有系统信息以及软件组件与某个ECU的映射关系。 - 提取特定ECU的描述
从系统配置描述文件中提取出与各个ECU相关的系统配置描述信息,提取的信息包括ECU通信矩阵、拓扑结构、映射到该ECU上的所有软件组件,并将这些信息放在各个ECU的提取文件中。 - ECU配置
ECU配置主要是为该ECU添加必要的信息和数据,如任务调度、必要的基础软件模块及其配置、运行实体及任务分配等,并将结果保存在ECU配置描述文件中,该文件包含了属于特定ECU的所有信息,换言之,ECU上运行的软件可根据这些信息构造出来。 - 生成可执行文件
根据ECU配置描述文件中的配置信息,生成RTE和基础软件配置代码,完成基础软件和软件组件的集成,最终生成ECU的可执行代码。
四、AUTOSAR的接口类型
通过RTE实现AUTOSAR软件组件之间以及应用层与基础软件之间的通信前提是:软件组件之间必须有标准的AUTOSAR接口。AUTOSAR规范把汽车电子领域内的一些典型的应用划分为若干个由一个或多个软件组件组成的模块,并详细定义了这些软件组件相关的参数,例如名称、范围、类型等。
AUTOSAR定义了三种接口:标椎化接口(Standardized Interface)、AUTOSAR接口(AUTOSAR Interface)和标准化的AUTOSAR接口(Standardized AUTOSAR Interface)。
- AUTOS