浅谈AUTOSAR架构及开发方法

AUTOSAR软件架构

AUTOSAR软件整体框架为分层式设计,以中间件RTE(Runtime Environment)为界,隔离上层的应用层(Application Layer)与下层的基础软件(Basic Software)。如下图所示AUTOSAR体系架构分层标准。

图 1 AUTOSAR体系架构分层标准

应用层软件由1个或多个软件组件SWC(Software Component)实现,SWC中封装了部分或者全部ECU功能,包括对其具体功能的实现以及对应描述,如控制大灯,空调等部件的运作,但与ECU硬件系统没有连接。

 

中间层RTE主要是给应用层提供通信手段,这里的通信是一种广义的通信,可以理解成接口。应用层与其他软件的信息交互有两种,第一种是应用层中的不同SWC之间的信息交互;第二种是应用层SWC与基础软件之间的信息交互。而RTE就是这些交互使用的接口的集散地,它汇总了所有交互的接口。

 

不同SWC之间的通信是通过调用RTE提供的API函数实现的,都在RTE的管理和控制之下。每个API遵循统一的命名规则,且只和软件组件自身的描述有关。RTE层的软件都是由工具供应商提供的配置工具自动生成的。而SWC的软件可以通过工具生成也可以由用户自行编写,但要符合RTE层的API接口。

 

基础软件通常是实现ECU的基础功能,如IO操作,AD操作,诊断,CAN通信,操作系统等。根据不同功能,可对基础软件继续细分成四部分,分别为服务层(Service Layer),ECU抽象层(ECUAbstract Layer),复杂驱动(ComplexDriver)和MCAL(Microcontroller Absstraction Layer),四部分之间的互相依赖程度不尽相同。为了满足不同ECU间的互操作性,基础软件通常也是借助工具提供商的工具自动生成。

图 2 AUTOSAR分层架构

服务层部分主要为应用程序、RTE以及基础模块提供服务如:操作系统功能、网络通信与管理服务、存储服务、诊断服务、ECU管理、看门狗管理。

图 3 服务层

ECU抽象层包含许多外部设备驱动,使得更高层软件与ECU硬件分布无关。如外部CAN Transceiver驱动、外部EEPROM驱动。

图4 ECU抽象层

微控制器抽象层包含许多内部驱动,使得更高层软件与为微控制器无关。如IO驱动、AD驱动、CAN驱动。

图5 微控制器抽象层

复杂驱动层实现复杂传感器模拟和执行器控制(直接访问具体中断或复杂微控制器外设),以及不支持AUTOSAR BSW分层架构的驱动,如喷射控制,电子阀控制等。

图6 复杂驱动层

 

AUTOSAR开发方法

AUTOSAR方法论描述了从系统底层配置到ECU可执行代码产生过程的设计步骤,可以分为建立抽象系统描述(需求)、建立VFB系统描述、开发软件组件、开发系统和子系统、开发BSW、软件集成这几个步骤,从大的阶段来讲可分为系统配置、ECU设计与配置、软件集成三个阶段。图7表述了从SWC描述阶段到ECU提取的过程。

图7 AUTOSAR开发方法

通过建立抽象系统描述,可描述为1个或多个SWC组件,通过VFB系统,将1个或多个SWC组件组合起来构成整个系统。使用支持SWC软件开发组件的工具根据ECU描述、系统约束描述将软件需求映射到ECU上。图8描述了借助AUTOSAR配置工具从系统底层配置到ECU可执行代码生成的过程。

图8 AUTOSAR开发方法

首先借助配置工具生成系统配置描述文件,再提取各个ECU相关的描述将SWC映射到各个ECU上,再将子系统独立出来,之后就可以开发单个ECU的SWC、BSW最后将生成的代码集成,生成可执行文件下载到ECU上运行。