AUTOSAR 软件架构的核心是分层(Layering):把整车软件从「贴近硬件的底层驱动」到「面向功能的应用逻辑」分成若干层,每层只依赖下层提供的标准接口。AUTOSAR 提供两套平台:面向实时控制的经典平台(CP)与面向高性能计算的自适应平台(AP)。
一句话定位
CP 分层解决「实时控制软件的标准化」,AP 分层解决「智能汽车高算力软件的标准化」。
经典平台(CP)分层架构
flowchart TD A["应用层 Application Layer"] --> B["运行时环境 RTE"] B --> C["基础软件层 BSW"] C --> D["微控制器 Microcontroller"] A --> A1["软件组件 SWC"] A --> A2["原子组件 / 组合组件"] B --> B1["SWC 间通信"] B --> B2["SWC 与 BSW 通信"] C --> C1["服务层 Services"] C --> C2["ECU 抽象层 ECU Abstraction"] C --> C3["复杂驱动 CDD"] C1 --> C11["操作系统 OS"] C1 --> C12["通信服务 COM"] C1 --> C13["存储服务 NVM"] C1 --> C14["诊断服务 DEM / DCM"] C2 --> C21["通信硬件抽象"] C2 --> C22["内存硬件抽象"] C2 --> C23["IO 硬件抽象"] D --> D1["微控制器抽象层 MCAL"] D1 --> D11["驱动: ADC / CAN / PWM / DIO"]
各层职责
- 应用层(Application Layer):实现具体业务功能,由若干**软件组件(SWC)**构成。SWC 只通过端口收发数据,不关心通信实现。
- RTE(Runtime Environment,运行时环境):应用层与基础软件之间的「中间人」,负责把 SWC 之间、SWC 与 BSW 之间的通信落地为实际的总线报文或函数调用。
- BSW(Basic Software,基础软件层):提供操作系统、通信、存储、诊断等通用服务,进一步细分:
- 服务层(Services):OS、COM、NVM、DEM/DCM 等。
- ECU 抽象层(ECU Abstraction):屏蔽具体 ECU 硬件差异。
- 复杂驱动(CDD):标准接口覆盖不到的特殊外设驱动。
- MCAL(Microcontroller Abstraction Layer,微控制器抽象层):最底层,直接操作寄存器,封装 ADC、CAN、PWM、DIO 等 MCU 外设驱动,是「换芯片只改这里」的关键。
自适应平台(AP)分层架构
flowchart TD A["自适应应用 Adaptive Application"] --> B["自适应 AUTOSAR 运行时 ARA"] B --> C["自适应基础软件"] C --> D["POSIX 操作系统"] B --> B1["通信管理 ARA::COM"] B --> B2["持久化 ARA::Persistence"] B --> B3["诊断 ARA::DM"] C --> C1["功能集群: 执行管理"] C --> C2["状态管理"] C --> C3["更新与配置管理"]
CP 与 AP 对比
| 维度 | 经典平台 CP | 自适应平台 AP |
|---|---|---|
| 目标场景 | 实时控制(ECU) | 高性能计算(域控 / 中央计算) |
| 编程语言 | C | C++ |
| 操作系统 | AUTOSAR OS(OSEK) | POSIX(Linux 等) |
| 通信 | CAN / LIN / FlexRay | 面向服务(SOME/IP、以太网) |
| 更新方式 | 刷写整包 | 支持动态更新与部署 |
共享功能
加密技术、网络管理(NM)、时间同步等,在 CP 与 AP 中都以功能簇(Functional Cluster)形式提供。