AUTOSAR(AUTotmotive Open System ARchitecture)汽车开放系统架构是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,是对汽车技术开发一百多年来的经验总结。AUTOSAR架构旨在改善汽车电子系统软件的更新与交换,同时更方便有效地管理日趋复杂地汽车电子软件系统。AUTOSAR规范的运用使得不同结构电子控制单元的接口特征标准化,大大缩短了汽车电子软件的开发周期,提高了汽车电子软件的质量。AUTOSAR联盟目前包括的成员如下图所示。
AUTOSAR架构有利于汽车电子行业之间的软件系统的合作开发,提高汽车厂商更换软件模块的效率,促进软件的升级、更新,提高复杂系统软件的管理效率。
AUTOSAR成员之间开展合作的主要目标是:使基本系统功能以及功能接口标准化,使得软件开发合作伙伴之间能交换、转换和集成各自的车载网络功能,最大限度地提高车辆售后的软件更新和系统升级效率。
AUTOSAR的计划目标主要有三个:一是建立分层的体系架构;二是为应用程序的开发提供方法论;三是制定各种应用接口规范。
为了实现应用程序和硬件模块之间的分离,汽车电子软件架构被抽象成四层,如下图所示。由上至下依次为:应用层(Application Layer)、运行时环境(Run Time Environment,RTE)、基础软件层(Basic Software, BSW)以及微控制器(Microcontroller)。
AUTOSAR为汽车电子软件系统开发过程定义了一套通用的方法,这种方法被称为AUTOSAR方法论。AUTOSAR规范规定了汽车电子软件系统一般的设计步骤。
AUTOSAR规范把汽车电子领域内一些典型的应用划分为若干个由一个或多个软件组件组成的模块,并详细定义了这些软件组件相关的参数,例如名称、范围、类型等。AUTOSAR定义了三种接口:标准化接口(Standardlized Interface)、AUTOSAR接口(AUTOSAR Interface)和标准化的AUTOSAR接口(Standardlized AUTOSAR Interface)。
1)AUTOSAR接口是一种与应用相关的接口,与RTE一并生成。基于AUTOSAR接口的端口可以用于软件组件(Software Compenent, SWC)之间或者软件组件与ECU固件之间的通信。
2)标准化AUTOSAR接口是一种特殊的AUTOSAR接口。这些在AUTOSAR规范中定义过的接口被SWC用于访问AUTOSAR BSW模块提供的接口被SWC用于访问AUTOSAR BSW模块提供的服务,比如ECU管理模块或者诊断事件管理模块。
3)标准化接口是AUTOSAR规范中用C语言定义的API。这些接口用于ECU内部BSW模块之间,RTE和操作系统之间或者RTE和COM之间。
基础软件之间是通过标准化的接口进行数据通信和操作调用的。这样,基础软件之间可以相互调用各自的API函数,但是微控制器抽象层只能被ECU抽象层所调用。底层驱动信息通过ECU抽象层传递给服务层使用。
AUTOSAR方法论描述了从系统层配置到ECU可执行代码产生过程的设计步骤,如下图所示。
AUTOSAR设计和开发流程分为三个阶段:系统配置阶段、ECU设计与配置阶段、代码生成阶段。
首先定义系统配置文件,包括选择硬件和软件组件,定义整个系统的约束条件。AUTOSAR通过使用信息交换格式和模块描述文件来减少初始系统设计时的工作量。系统配置的输入时XML类型的文件,输出时系统配置描述文件,系统配置的主要作用是把软件组件的需求映射到ECU上。
第二阶段是根据系统配置描述文件提取单个ECU资源相关的信息,提取出来的信息生成ECU提取文件。根据这个提取文件对ECU进行配置,从而生成ECU配置描述文件。该描述文件包含了特定ECU的所有信息。
最后一个阶段,即代码生成,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关的代码连接起来形成可执行文件。
Vector公司在AUTOSAR的开发过程中为用户提供一套完整的工具链,方便用户高效地开发基于AUTOSAR地应用软件,并最终生成符合AUTOSAR规范地嵌入式代码。下图显示了Vector公司在每个开发环节所提供地相关工具。在系统设计阶段,PREEvision软件用于架构设计,CANdealStudio用于诊断文件的设计。在ECU设计阶段,Vector公司提供的Davinci工具可以方便客户完成SWC和BSW的设计并生成相应的代码。