3. AUTOSAR架构总览

AUTOSAR 并不是单一软件栈,而是一套由方法论、模板规范和两套运行时平台共同构成的标准化体系。量产项目中最常见的困惑是:同一个 ECU 项目里既有 Classic Platform(CP)的 CAN 通信栈,又听说要引入 Adaptive Platform(AP)做 SOA 服务,两者到底如何分工?理解这一点的关键,是先看清两套平台各自的分层结构与安全模块落点。

一、两套平台的分层架构与定位

Classic Platform 面向深嵌入式、硬实时、资源受限的 MCU,典型场景是车身、动力、底盘域控制器。它的分层自下而上为:微控制器抽象层(MCAL)、ECU 抽象层(ECU Abstraction)、服务层(Services)、RTE,最上层是应用层的 SWC。BSW 由 MCAL、ECU 抽象、服务层和复杂驱动(CDD)共同组成,通过标准化接口向 RTE 暴露能力。

Adaptive Platform 面向高性能 SoC,运行 POSIX 兼容操作系统(如 Linux、QNX),以 C++ 应用和 SOA 服务为核心。它的分层为:硬件与操作系统层、功能集群(Functional Cluster)、ARA(AUTOSAR Runtime for Adaptive Applications)API,最上层是 Adaptive Application(AA)。功能集群包括执行管理(EM)、状态管理(SM)、通信管理(CM)、诊断、持久化、平台健康管理(PHM)、加密与更新配置管理等。

AUTOSAR 双平台分层架构与安全模块落点 Classic Platform(MCU / 硬实时) SWC 应用软件组件 Sensor / Application / Actuator · 端口-接口模型 RTE 运行时环境 VFB 实现 · 通信映射 · 任务调度绑定 BSW 基础软件 服务层:EcuM / ComM / NvM / Dcm / Dem / WdgM ECU 抽象层:CanIf / FrIf / IoHwAb / MemIf MCAL:Can / Adc / Pwm / Dio / Fls / Mcu CDD 复杂驱动 直接访问硬件,绕过标准栈 微控制器 MCU + 外设 单核/多核 · 无 MMU 或轻量 MPU 安全相关模块(CP) WdgM · E2E · CSM/CryIf · SecOC · FiM · MPU Adaptive Platform(SoC / 高性能) Adaptive Application(AA) C++ 应用 · 服务提供者 / 消费者 ARA API 运行时接口 ara::com / ara::exec / ara::diag / ara::crypto 功能集群 Functional Cluster 执行管理 EM · 状态管理 SM · 平台健康管理 PHM 通信管理 CM · 诊断 · 持久化 · 日志追踪 加密 · 更新与配置管理 UCM · 时间同步 POSIX OS(Linux / QNX / PikeOS) 进程隔离 · 多核调度 · 内存保护 高性能 SoC + Hypervisor 多虚拟机 · 大算力 · 高带宽 安全相关模块(AP) Idsm · 加密 FC · IAM · SecOC · PHM 监督 网关 SOME/IP

二、RTE 与 SWC:CP 的“胶水层”与“积木”

SWC 是应用功能的封装单元,只通过端口(Port)和端口接口(Port Interface)描述交互,不关心对方在哪个 ECU、走哪条总线。RTE 则负责把虚拟功能总线(VFB)上的连接“落地”:把 Sender-Receiver 或 Client-Server 通信映射为实际的任务调用、队列读写或 COM 信号收发。因此 RTE 是生成代码,不是手写代码,其行为由 ARXML 配置决定。

量产中一个典型误区是把 RTE 当成普通中间件去“优化”。实际上 RTE 的调度绑定、可运行实体(Runnable)到任务的映射、以及数据一致性机制,直接决定实时性与功能安全表现。例如同一 SWC 内的 Runnable 若被分配到不同任务,共享数据必须通过 RTE 的 Exclusive Area 或队列保护,否则会出现数据撕裂。

三、安全相关模块的落点

功能安全与信息安全在 AUTOSAR 中并非独立层,而是横切到各层。下表给出量产项目最常打交道的模块及其职责。

模块 所属平台 核心职责 量产关注点
WdgM CP 监督实体存活、截止期与逻辑执行顺序 监督周期与喂狗窗口标定
E2E CP / AP 端到端保护:CRC、计数器、Data ID Profile 选择与信号组划分
CSM / CryIf CP 加解密、哈希、密钥管理的统一接口 HSM 固件与密钥槽规划
SecOC CP / AP 报文认证与防重放 Freshness 同步与总线负载
FiM CP 功能抑制管理,联动 Dem 事件 降级策略与整车一致性
PHM / Idsm AP 平台健康监督与入侵检测上报 监督周期、告警上报通道

四、案例:域控制器中的 CP 与 AP 协同

某智能座舱域控制器采用“AP 主控 + CP 实时协处理”的架构。AP 侧运行 Linux,承载语音、导航等 SOA 服务,通过 ara::com 发布服务;CP 侧 MCU 负责车身 CAN 报文收发与安全监控。两者之间通过以太网 SOME/IP 网关桥接。安全链路如下:

CP: SWC(Sensor) -> RTE -> COM -> PduR -> CanIf -> CAN Driver
CP: SecOC 在 PduR 层对报文做 MAC 计算与校验
CP: E2E 在 COM 层对信号组加 CRC 与计数器
网关: CAN -> SOME/IP 转换,携带 Freshness Value
AP: ara::com 接收服务 -> 应用校验 -> Idsm 上报异常
AP: PHM 监督进程存活,超时触发 SM 状态切换
配置建议:SecOC 的 Freshness Value 必须由统一的同步机制管理,CP 与 AP 两侧的计数器窗口要留足总线抖动余量,否则量产阶段会出现偶发认证失败。

五、常见误区与复盘

  • 误区一:把 AP 当成“更快的 CP”。AP 不保证硬实时,其调度基于 POSIX 优先级与资源预算,安全机制依赖进程隔离与 PHM,而非 WdgM 式监督。
  • 误区二:认为 RTE 可以手工改写。RTE 由配置生成,手工修改会在下次生成时被覆盖,正确做法是调整 ARXML 中的 Runnable 映射与 Exclusive Area。
  • 误区三:安全模块只在应用层做。SecOC 在 PduR、E2E 在 COM、CSM 在服务层,落点分散,需在架构设计阶段就规划好各层职责边界。
  • 复盘要点:先画清“信号从传感器到服务”的完整路径,再在路径上标注每个安全模块的拦截点,能有效避免安全功能漏配或重复保护。
掌握双平台分层与安全模块落点,是后续配置 BSW、生成 RTE、集成 HSM 与设计 SOA 服务的前提。架构图不是文档装饰,而是量产问题定位时的第一张“地图”。