AUTOSAR 分层软件架构(Layered Software Architecture)

📄 文档 ID:053 🏷 类型:EXP(说明文档) 📅 版本:AUTOSAR CP 4.4.0 📑 页数:104 📌 状态:Final 🔗 原 PDF:AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

目录

介绍(Introduction)

文档目的(Purpose of this document)

分层软件架构(Layered Software Architecture)描述了 AUTOSAR 的软件架构:

本文档不包含需求,仅作说明性参考。本文中给出的示例意味着在所有方面都是完整的。

本文档侧重于概念性分层软件架构的静态视图规定具有详细静态和动态接口描述的结构化软件架构设计——这些信息包含在各基础软件模块自身的规范中。

输入(Inputs)

本文档基于 AUTOSAR 的规范和需求文档。

应用范围与可扩展性(Scope and Extensibility)

AUTOSAR 的应用范围(Application scope of AUTOSAR)

AUTOSAR 专为汽车 ECU 设计。此类 ECU 具有以下特性:

注意:在 AUTOSAR 概念中,ECU 意味着一个微控制器加上其外设和相应的软件/配置。机械设计不在 AUTOSAR 范围内。这意味着,如果一个外壳中布置了多个微控制器,则每个微控制器都需要自己的 AUTOSAR-ECU 实例描述。

AUTOSAR 的可扩展性(AUTOSAR extensibility)

AUTOSAR 软件架构是一种通用方法:

1 架构(Architecture)

1.1 软件层概览(Overview of Software Layers)

顶层视图(Top view)

AUTOSAR 架构在最高抽象级别上区分三个软件层:

  1. 应用层(Application Layer)
  2. 运行时环境(Runtime Environment,RTE)
  3. 基础软件(Basic Software,BSW)

这三层运行在微控制器之上。

图:AUTOSAR 顶层架构
┌─────────────────────────────────┐
│       Application Layer          │  ← 应用 SW-C
├─────────────────────────────────┤
│  Runtime Environment (RTE)      │  ← SW-C 间通信
├─────────────────────────────────┤
│       Basic Software (BSW)       │  ← 标准化服务
└─────────────────────────────────┘
              ▼
       Microcontroller
  

粗略视图(Coarse view)

AUTOSAR 基础软件进一步分为多个层:

图:AUTOSAR 完整分层架构
┌─────────────────────────────────────────┐
│           Application Layer              │
├─────────────────────────────────────────┤
│        Runtime Environment (RTE)         │
├─────────────────────────────────────────┤
│           Services Layer                 │  ← OS、EcuM、Dem、WdgM 等
├─────────────────────────────────────────┤
│        ECU Abstraction Layer             │  ← CanIf、LinIf、MemIf 等
├─────────────────────────────────────────┤
│  Microcontroller Abstraction Layer (MCAL)│  ← Can、Lin、Spi、Adc 等
├─────────────────────────────────────────┤
│           Complex Drivers                │  ← CDD(直接硬件访问)
└─────────────────────────────────────────┘
                    ▼
            Microcontroller
  

1.2 软件层内容(Content of Software Layers)

应用层(Application Layer)

应用层包含 AUTOSAR 软件组件(SW-C),实现应用逻辑。SW-C 通过端口(Ports)与 RTE 通信。

SW-C 类型:

RTE 层

RTE 是 AUTOSAR 的运行时环境,是 VFB 的具体实现:

RTE 由配置工具生成,对 SW-C 透明。

服务层(Services Layer)

服务层为应用层和基础软件的其他层提供后台服务。包括:

ECU 抽象层(ECU Abstraction Layer)

ECU 抽象层将 MCAL 的接口抽象为ECU 级的接口:

MCAL 层

MCAL 是直接访问微控制器外设的层:

复杂驱动(Complex Drivers)

复杂驱动(CDD)可以绕过 ECU 抽象层和 MCAL 直接访问硬件:

CDD 是非标准化的 AUTOSAR 模块,由集成商自行实现。

1.3 多核系统中的软件层内容(Content of Software Layers in Multi-Core Systems)

多核系统中:

AUTOSAR 支持以下多核分布模式:

1.4 混合关键系统中的软件层内容(Content of Software Layers in Mixed-Critical Systems)

混合 ASIL/QM 系统中:

ASIL 等级说明:

1.5 模块概览(Overview of Modules)

AUTOSAR 包含约 90+ 个标准化的 BSW 模块。完整模块清单见 AUTOSAR_TR_BSWModuleList.pdf

主要模块分组:

代表模块
服务层OS、EcuM、WdgM、BswM、Dem、Det、Dcm、Com、ComM、Nm、KeyM(4.4)等
通信服务CanTp、FrTp、FrArTp、LinTp、J1939Tp、CanNm、UdpNm、SoAd、Sd、DoIP、SecOC、E2EXf 等
通信硬件抽象CanIf、LinIf、FrIf、EthIf 等
通信驱动Can、Lin、Fr、Eth、Spi(部分)等
内存硬件抽象MemIf、Fee、Ea 等
内存驱动Fls、Eep、FlsTst、RamTst 等
I/O 硬件抽象IoHwAb、Dio、Adc、Pwm、Icu、Ocu 等
微控制器驱动Mcu、Gpt、Port、Spi、Watchdog(驱动)等
加密Csm、CryIf、Crypto、KeyM 等
车载以太网TcpIp、Eth、EthSwt、EthTrcv、SoAd 等
复杂驱动CDD(用户实现)

1.6 接口(Interfaces)

1.6.1 通用(General)

AUTOSAR 中存在多种接口类型

1.6.2 层间交互(示例)(Interaction of Layers (Examples))

示例 1:SW-C 发送 CAN 帧

应用 SW-C
   ↓ Rte_Send() / Rte_Write()
RTE
   ↓ CanIf_Transmit()
CAN 接口(CanIf)
   ↓ Can_Write()
CAN 驱动(Can)
   ↓ 硬件寄存器访问
微控制器 CAN 控制器

示例 2:SW-C 读取传感器值

应用 SW-C
   ↓ Rte_Read()
RTE
   ↓ Adc_ReadGroup()
ADC 驱动(Adc)
   ↓ 硬件寄存器访问
微控制器 ADC

2 配置(Configuration)

AUTOSAR 通过配置(Configuration)来描述 ECU 软件的具体实例化

配置类(Configuration Class):

配置工具:

详细配置规则见各模块的 SWS 规范。

3 集成与运行时方面(Integration and Runtime Aspects)

本节描述 AUTOSAR 软件的集成过程运行时行为

集成步骤

  1. 系统设计:定义 ECU 拓扑与通信;
  2. ECU 配置:配置 BSW 模块与 RTE;
  3. 代码生成:生成 RTE、BSW 配置代码;
  4. 编译与链接:生成可执行文件;
  5. 集成验证:测试 ECU 行为。

运行时关键方面

详细集成与运行时流程见各 SWS 规范及方法论文档(如 AUTOSAR_TR_AIMeasurementCalibrationDiagnostics)。

📋 校对记录

校对轮次:L1 自动校对(2026-06-13)