1.应用软件层
应用软件层(Application Software Layer,ASW)由若干个软件组件(Software Component,SWC)组成,软件组件间通过端口(Port)进行交互(软件组件之间的交互必须经过RTE层)。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体可以简单的理解为软件中具体的逻辑控制、算法等函数。应用软件层也必须通过RTE调用基础软件层的服务。
2.运行时环境
运行时环境(Runtime Environment,RTE)作为应用软件层与基础软件层交互的桥梁。RTE主要的作用就是实现软件组件间、基础软件间以及软件组件与基础软件之间的通信。RTE层是AUTOSAR标准化的关键。因为RTE封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口,使得应用层可以通过RTE接口函数调用基础软件的服务。此外,RTE抽象了ECU之间的通信,即RTE通过使用标准化的接口将其统一为软件组件之间的通信。这样解决了应用软件层和基础软件层之间的耦合性。比如,当底层硬件改动(如MCU更改),应用软件层也不再需要改动。
3.基础软件层
基础软件层(Basic Software Layer,BSW)又可分为四层,即服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer,MCAL)和复杂驱动(Complex Drivers)。
基础软件层的作用可见一斑,为应用软件层提供基础软件服务:包括硬件驱动,通信协议(CAN、LIN),诊断服务(如UDS),系统服务(如任务调度,资源分配等)等。目前AUTOSAR规范定义最为详细的部分就是基础软件层。而且判断某个软件架构是否遵守AUTOSAR规范的主要依据就在于基础软件层。
其中微控制器抽象层软件(Microcontroller Abstraction Layer,MCAL)通常由芯片厂商提供,服务层软件通常由第三方软件服务商提供(如Vector, EB等), ECU抽象层(ECU Abstraction Layer)和复杂驱动(Complex Drivers)通常由Tier1(零部件供应商)或者OEM(汽车主机厂)提供。
![](https://i-blog.csdnimg.cn/blog_migrate/4729987283ac9c8c6df60cffd1fc1ffb.png)