![AUTOSAR规范与车用控制器软件开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/976/27125976/b_27125976.jpg)
2.2 AUTOSAR分层架构
AUTOSAR规范主要包括分层架构、方法论和应用接口三部分内容。其中,分层架构是实现软硬件分离的关键,它使汽车嵌入式系统控制软件开发者摆脱了以往ECU软件开发与验证时对硬件系统的依赖。
在AUTOSAR分层架构中,汽车嵌入式系统软件自上而下分别为应用软件层(Application Software Layer,ASW)、运行时环境(Runtime Environment,RTE)、基础软件层(Basic Software Layer,BSW)和微控制器(Microcontroller),如图2.3所示。为保证上层与下层的无关性,在通常情况下,每一层只能使用下一层所提供的接口,并向上一层提供相应的接口。
![](https://epubservercos.yuewen.com/9494DD/15489080605459006/epubprivate/OEBPS/Images/image8.jpeg?sign=1738869280-hPSVDk34Z5R7nPtqRgpiPBT5MaCn4bP5-0-71fe268534cd3a82c7a082b8bea759b1)
图2.3 AUTOSAR分层架构
2.2.1 AUTOSAR应用软件层
应用软件层(Application Software Layer,ASW)包含若干个软件组件(Software Component,SWC),软件组件间通过端口(Port)进行交互。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体中封装了相关控制算法,其可由RTE事件(RTE Event)触发。
2.2.2 AUTOSAR运行时环境
运行时环境(Runtime Environment,RTE)作为应用软件层与基础软件层交互的桥梁,为软硬件分离提供了可能。RTE可以实现软件组件间、基础软件间以及软件组件与基础软件之间的通信。RTE封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口,使得应用层可以通过RTE接口函数调用基础软件的服务。此外,RTE抽象了ECU之间的通信,即RTE通过使用标准化的接口将其统一为软件组件之间的通信。由于RTE的实现与具体ECU相关,所以必须为每个ECU分别实现。
2.2.3 AUTOSAR基础软件层
基础软件层(Basic Software Layer,BSW)又可分为四层,即服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer,MCAL)和复杂驱动(Complex Drivers),如图2.4所示。
![](https://epubservercos.yuewen.com/9494DD/15489080605459006/epubprivate/OEBPS/Images/image9.jpeg?sign=1738869280-Awyigjq8UB6Ab6dubuA1MMaTOHXyDdYi-0-4d5fe329a93ac32ee766524fb388208a)
图2.4 AUTOSAR基础软件层
上述各层又由一系列基础软件组件构成,包括系统服务(System Services)、存储器服务(Memory Services)、通信服务(Communication Services)等,如图2.5所示。它们主要用于提供基础软件服务,包括标准化的系统功能和功能接口。
![](https://epubservercos.yuewen.com/9494DD/15489080605459006/epubprivate/OEBPS/Images/image10.jpeg?sign=1738869280-Uhm45tUgzh8H2QeOqRcgvH5WrnU9HXb8-0-f3c8ebfa5a3caa1fc7714df53c8ab860)
图2.5 AUTOSAR基础软件层结构
(1)服务层
服务层(Services Layer)提供了汽车嵌入式系统软件常用的一些服务,其可分为系统服务(System Services)、存储器服务(Memory Services)以及通信服务(Communication Services)三大部分。提供包括网络通信管理、存储管理、ECU模式管理和实时操作系统(Real Time Operating System,RTOS)等服务。除了操作系统外,服务层的软件模块都是与ECU平台无关的。
(2)ECU抽象层
ECU抽象层(ECU Abstraction Layer)包括板载设备抽象(Onboard Devices Abstraction)、存储器硬件抽象(Memory Hardware Abstraction)、通信硬件抽象(Communication Hardware Abstraction)和I/O硬件抽象(Input/Output Hardware Abstraction)。该层将ECU结构进行了抽象,负责提供统一的访问接口,实现对通信、存储器或者I/O的访问,从而不需要考虑这些资源是由微控制器片内提供的,还是由微控制器片外设备提供的。该层与ECU平台相关,但与微控制器无关,这种无关性正是由微控制器抽象层来实现的。
(3)微控制器抽象层
微控制器抽象层(Microcontroller Abstraction Layer,MCAL)是实现不同硬件接口统一化的特殊层。通过微控制器抽象层可将硬件封装起来,避免上层软件直接对微控制器的寄存器进行操作。微控制器抽象层包括微控制器驱动(Microcontroller Drivers)、存储器驱动(Memory Drivers)、通信驱动(Communication Drivers)以及I/O驱动(I/O Drivers),如图2.6所示。
![](https://epubservercos.yuewen.com/9494DD/15489080605459006/epubprivate/OEBPS/Images/image11.jpeg?sign=1738869280-CRqgiJKHoDAhH2SUJ3rNLYLQ9rChTZ03-0-4f90ecbfbda7a3e7876eb9ffdfc1188b)
图2.6 微控制器抽象层
(4)复杂驱动层
由于对复杂传感器和执行器进行操作的模块涉及严格的时序问题,难以抽象,所以在AUTOSAR规范中这部分没有被标准化,统称为复杂驱动(Complex Drivers)。