3. AUTOSAR架构概览

AUTOSAR(AUTomotive Open System ARchitecture)是汽车电子软件的标准分层架构,其核心价值在于把应用逻辑与底层硬件解耦,使功能安全机制能够在明确的层次边界上被设计、实现和验证。对于功能安全测试工程师而言,理解AUTOSAR架构不是为了写驱动,而是为了知道“安全需求应该落在哪一层、测试点应该插在哪里、故障传播路径如何被切断”。

一、两大平台:经典平台与自适应平台

AUTOSAR目前包含两个并行平台。经典平台(Classic Platform, CP)面向深嵌入式、硬实时、高安全等级控制场景,如发动机控制、制动、转向,运行在MCU上,采用静态配置、OSEK/VDX操作系统、基于信号的通信。自适应平台(Adaptive Platform, AP)面向高性能计算、动态部署、面向服务通信场景,如自动驾驶域控制器、智能座舱,运行在SoC上,采用POSIX PSE51操作系统、C++应用、SOME/IP与DDS通信。

两者在功能安全上的差异非常关键:CP以时间确定性、静态调度、内存保护(OS-Application、Memory Partitioning)为主要安全手段;AP以进程隔离、动态资源管理、执行管理(Execution Management)与状态管理(State Management)实现安全监控。测试策略因此不同:CP侧重时序与栈深度验证,AP侧重进程生命周期与资源竞争验证。

二、分层结构:从应用层到微控制器

AUTOSAR CP自上而下分为应用层(Application Layer)、运行时环境(RTE)、基础软件(BSW)以及微控制器抽象层(MCAL)。应用层由软件组件(SWC)构成,SWC之间不直接通信,必须通过RTE的端口(Port)与接口(Interface)交互。RTE是虚拟功能总线(VFB)的具体实现,负责连接SWC之间以及SWC与BSW之间的通信,是安全机制注入的重要位置。

基础软件进一步划分为服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(MCAL)和复杂驱动(Complex Drivers)。服务层包含操作系统、通信服务、诊断服务、存储服务、看门狗管理器(WdgM)、ECU状态管理器(EcuM)、功能安全管理(FiM)等。其中WdgM、EcuM、FiM与功能安全直接相关,是安全机制的“执行中枢”。

AUTOSAR 经典平台分层架构与安全机制落点 应用层 Application Layer SWC 安全控制 SWC 监控 SWC 执行器 安全相关 SWC(ASIL 等级标注) 运行时环境 RTE 端口/接口映射 · 通信调度 · 数据一致性保护 · 端到端保护(E2E)注入点 E2E 基础软件 BSW 服务层 Services Layer OS · COM · DCM · NvM · WdgM · EcuM · FiM · Dem · DET ECU 抽象层 ECU Abstraction Layer IoHwAb · CanIf · LinIf · FrIf · EthIf · MemIf 微控制器抽象层 MCAL Can · Lin · Adc · Pwm · Dio · Gpt · Wdg · Fls · Mcu 微控制器硬件 MCU(含看门狗、时钟、ADC、CAN 控制器等) WdgM:程序流监控 / 活性监控 检查点序列 · 超时判定 EcuM / FiM:状态与故障响应 安全状态切换 · 功能降级 E2E / Dem:数据保护与诊断 CRC · 计数器 · 故障码记录

三、安全机制的层次落点

功能安全机制在AUTOSAR中并非集中在一个模块,而是按层次分布。应用层负责功能级安全策略,例如扭矩监控、双通道比较;RTE负责通信级保护,例如端到端保护(E2E)的CRC校验、序列计数器、超时监控;BSW服务层负责平台级监控,例如WdgM的程序流监控、EcuM的状态管理、FiM的故障响应;MCAL与硬件层负责底层诊断,例如看门狗硬件、时钟监控、ADC自检。

这种分层意味着测试必须“分层覆盖”。如果只测应用层逻辑,可能漏掉RTE的E2E保护失效;如果只测BSW,可能漏掉应用层安全策略的时序缺陷。因此测试用例设计应沿着“应用层→RTE→BSW→MCAL→硬件”的纵向路径,逐层注入故障并观察安全反应。

四、典型场景:E2E保护与WdgM协同

以电动助力转向(EPS)为例,扭矩传感器信号通过CAN或FlexRay传输。发送端SWC在RTE中调用E2E保护库,对数据附加CRC和计数器;接收端RTE校验CRC与计数器,若连续丢失或CRC错误,则向FiM报告故障,FiM触发功能降级,EcuM将系统切换到安全状态,同时WdgM监控该监控实体是否在规定时间内到达检查点。若未到达,WdgM触发看门狗复位。

/* E2E Profile 1 保护示例(伪代码) */
E2E_P01Protect(&Config, &State, DataPtr);
/* 接收端校验 */
status = E2E_P01Check(&Config, &State, DataPtr);
if (status == E2E_P01STATUS_WRONGCRC) {
    Dem_SetEventStatus(DEM_EVENT_E2E_CRC, DEM_EVENT_STATUS_FAILED);
    FiM_ReportFunctionStatus(FIM_FUNC_EPS_TORQUE, FIM_FAILED);
}

测试时,可在RTE层注入CRC错误、计数器跳变、超时等故障,验证FiM是否正确上报、EcuM是否切换状态、WdgM是否触发复位。这类测试属于“故障注入测试”,是ISO 26262中验证安全机制有效性的关键手段。

五、常见误区与复盘

误区一:把RTE当作透明通道。RTE实际上承担了数据一致性、E2E保护、通信调度等安全职责,测试时必须验证RTE配置与生成代码是否一致。

误区二:只关注应用层ASIL等级。BSW模块也有QM与ASIL之分,WdgM、EcuM、FiM通常需要达到较高ASIL,其配置错误会直接导致安全机制失效。

误区三:忽略AP与CP的测试差异。AP的动态部署与进程隔离机制需要不同的测试方法,不能直接套用CP的静态时序测试。

六、平台对比清单

对比维度 经典平台 CP 自适应平台 AP
目标硬件 MCU,资源受限 SoC,高性能多核
操作系统 OSEK/VDX,静态调度 POSIX PSE51,动态调度
通信方式 基于信号(CAN/LIN/FlexRay) 面向服务(SOME/IP、DDS)
应用形态 SWC,RTE连接 自适应应用,ARA接口
安全机制重点 WdgM、E2E、内存分区、时序监控 进程隔离、执行管理、状态管理、资源监控
典型测试方法 故障注入、时序分析、栈深度测试 进程生命周期测试、资源竞争测试、服务发现测试

掌握AUTOSAR架构的分层与安全机制落点,是后续设计功能安全测试用例、搭建故障注入环境、分析安全需求覆盖度的基础。测试工程师应能够根据安全需求,快速定位其所属层次,并选择对应的测试接口与观测点。