【IF-SAFE-01】功能安全入门:ISO 26262与TC3xx安全架构

英飞凌AURIX™ TC3xx功能安全专题开篇。本文从ISO 26262标准体系出发,详解ASIL等级判定方法,深入TC3xx fail-safe架构的分层安全机制设计,并覆盖SMU故障响应全流程与MCU+PMIC系统级协同方案。

系列导航

序号 文章 状态
IF-SAFE-01 功能安全入门:ISO 26262与TC3xx安全架构 本文
IF-SAFE-02 TC3xx安全机制详解:从Lockstep到ECC 规划中

一、安全概念:ISO 26262标准体系

1.1 功能安全的本质

功能安全(Functional Safety)的核心目标:确保系统在任何故障情况下都能进入安全状态

这与传统功能开发完全不同——功能安全不关心系统"做什么",而是关注系统"出了故障怎么办"。一个功能完美的制动系统,如果无法在故障发生时安全降级,就不满足功能安全要求。

ISO 26262是汽车功能安全的国际标准,定义了从概念阶段到硬件/软件开发的完整生命周期,覆盖以下V模型阶段:

V模型左侧(开发) V模型右侧(验证)
相关项定义与HARA 集成测试
功能安全概念 功能安全验证
技术安全概念 系统级安全确认
软件开发 软件验证
硬件开发 硬件集成测试

1.2 ASIL等级判定

ASIL(Automotive Safety Integrity Level)是ISO 26262定义的风险评估等级,分为四级:

ASIL等级 危险程度 典型应用 要求严格度
ASIL-A 最低 车内氛围灯、雨量传感器 基本安全措施
ASIL-B 中等 仪表盘、座舱域控制器 独立监控+冗余
ASIL-C 较高 电动助力转向(基础功能) 高诊断覆盖率
ASIL-D 最高 自动紧急制动(AEB)、动力电池管理 最高冗余+诊断要求

ASIL判定基于三个参数的组合:

  • 严重度(Severity, S0–S3):故障对人身安全的危害程度。S0为无伤害,S3为致命伤或多人重伤
  • 暴露率(Exposure, E0–E4):运行场景中出现危险的概率。E0为极低概率,E4为高概率(>10%操作时间)
  • 可控性(Controllability, C0–C3):驾驶员或涉事人员避免伤害的能力。C0为通常可控,C3为难以控制或不可控

判定示例:自动紧急制动(AEB)系统失效 → 严重度S3(高速碰撞致命)+ 暴露率E4(驾驶场景高频)+ 可控性C3(驾驶员无法避免)= ASIL-D

TC3xx家族功能安全架构

图1:AURIX™ TC3xx家族功能安全特性概览(来源:AN1002 Ch1 Figure 1)。图中紫红色圆形标记A-Q对应不同安全特性,如A=冗余空间分离外设、B=安全SPB、C=安全DMA等

1.3 HARA分析流程

HARA(Hazard Analysis and Risk Assessment)是功能安全开发的第一步,将驾驶场景中的潜在危害转化为可量化的安全目标:

步骤 内容 产出
1. 场景分析 识别所有运行场景下的潜在危害事件 危害事件清单
2. 危害评估 对每个危害事件确定S/E/C评级 S/E/C组合
3. ASIL判定 查ISO 26262 Part3 TableA1-A6确定等级 ASIL等级
4. 安全目标 为每个ASIL≥B的危害定义安全目标(SG) 功能安全需求(FSR)
5. 安全需求 将FSR分解为技术安全需求(TSR)和硬件/软件安全需求 TSR/HSR/SSR

关键概念:FTTI(Fault Tolerant Time Interval)——从故障发生到系统必须进入安全状态的最大时间窗口。FTTI决定了安全机制响应速度的下限,是硬件安全架构设计的核心约束参数。

二、机制原理:TC3xx安全架构全景

2.1 芯片级安全设计理念

AURIX™ TC3xx被设计为fail-safe架构——MCU必须在检测到故障时确保进入安全状态。这意味着:

  • 检测优先:所有关键硬件模块都有内置故障检测机制
  • 响应分层:从软件中断到硬件复位,响应粒度可配
  • 路径冗余:内部SMU响应 + 外部FSP/PMIC响应,双重保险

MCU安全特性概览

图2:MCU各模块主要安全特性概览(来源:AN1002 Ch2 Figure 2)。左侧为功能模块列表,右侧标注对应的安全机制

从图2可以看到,TC3xx将安全机制分层部署在四个层级:

层级 安全机制 覆盖范围 对应ASIL
基础设施层 电源监控(EVR/ADC)、时钟监控、复位控制 全局供电与时钟 ASIL-D
处理单元层 CPU Lockstep、ECC、LBIST/MBIST CPU与存储 ASIL-D
通信层 总线EDC/ECC、端到端保护(E2E) 片上/片外通信 ASIL-B/D
系统层 SMU安全监控单元、看门狗 系统级故障收集与响应 ASIL-D

2.2 电源域安全监控

电源是共因故障(CCF)的首要来源。TC3xx对每个电源域实施主/副双通道监控

主通道监控(Primary Monitors):

  • 内置电压调节器(EVR)的过载/短路检测
  • 主ADC对VDD、VDDP3、VEXT等电源轨的过压/欠压评估
  • 检测结果直接上报SMU_core

副通道监控(Secondary Monitors):

  • 独立的Secondary ADC通道,与Primary ADC物理隔离
  • 使用独立的参考电压源
  • 检测结果同时上报SMU_core和SMU_stdby

主副通道交叉验证:当两个通道检测结果不一致时,触发更高优先级的SMU告警,确保单通道失效不影响安全检测能力。

2.3 时钟系统安全监控

时钟系统同样是CCF的关键来源。TC3xx对时钟链路的每个环节都部署了监控机制:

时钟环节 监控机制 检测目标
时钟源 备份时钟看门狗 外部晶振是否停振
PLL 输出频率与备份时钟对比 PLL是否失锁
时钟分配 CCU合理性校验 分频比是否被篡改
外设时钟 Clock Alive Monitor 外设时钟是否运行

时钟配置寄存器(SFRs)通过Safety Flip-Flop(SFF)机制保护——任何单比特翻转都会被检测,防止时钟分频比被意外修改。

2.4 安全机制分类矩阵

TC3xx的全部安全机制按功能分类如下:

类别 机制 功能 诊断覆盖率 覆盖等级
冗余 Lockstep CPU 双核同步执行,周期比较输出 >99% ASIL-D
编码 ECC/EDC 内存错误检测与纠正 SECDED/DECTED ASIL-B/D
监控 看门狗 程序执行时序监督 时间窗口约束 ASIL-B
自检 LBIST/MBIST 逻辑/内存上电自检 结构化测试 ASIL-D
协议 E2E Protection 通信数据完整性保护 CRC+Counter ASIL-B/D
告警 SMU 故障统一收集与分级响应 全局告警汇聚 ASIL-D
访问 MPU/Endinit 寄存器写保护 非法访问拦截 ASIL-B/D

2.5 Lockstep双核冗余

TC3xx的高性能CPU核心(TC1.6P/TC1.6E)采用Lockstep架构实现高诊断覆盖率:

工作原理:

  1. 主核(Master)与影子核(Shadow)物理上独立,执行相同指令流
  2. 主核延迟2个时钟周期后,影子核执行相同操作
  3. 比较器(Comparator)逐周期核对两核输出
  4. 输出一致 → 正常运行;输出不一致 → 立即上报SMU告警
  5. 支持故障注入(Fault Injection),用于测试Lockstep检测能力

覆盖范围:

  • 指令取指与执行
  • 数据搬移(内部RAM到CPU/总线接口)
  • 异常处理

非Lockstep CPU(如TC1.6E性能核):采用软件自检+LBIST替代方案,诊断覆盖率低于Lockstep,适用于ASIL-B或作为ASIL-D系统中的非安全核。

2.6 ECC纠错编码

ECC(Error-Correcting Code)是TC3xx内存安全的基础。其工作原理:

ECC概念

图3:ECC编码与解码概念(来源:AN1002 Ch3 Figure 7)

写入路径:IP模块发出数据 → ECC编码器生成校验位 → 数据+校验位存入存储

读取路径:从存储读出数据+校验位 → ECC解码器校验 → 输出数据;如检测到错误,上报可纠正错误(CE)或不可纠正错误(UCE)

不同存储类型使用不同ECC策略:

存储类型 ECC方案 汉明距离 检测能力 纠正能力
DSPR/PSPR (CPU本地RAM) SECDED 4 2-bit检测 1-bit纠正
PFlash DECTED 6 4-bit检测 2-bit纠正
LMU/DAM (共享RAM) SECDED 4 2-bit检测 1-bit纠正
总线数据相位 SEDC 2 1-bit检测 无纠正

SECDED = Single Error Correction, Double Error Detection;DECTED = Double Error Correction, Triple/Quadruple Error Detection

RAM告警分级:每个RAM向SMU上报三类告警:
1. CE(可纠正错误):单比特错误,ECC自动纠正,SMU记录
2. UCE(不可纠正错误):多比特错误,ECC无法纠正,SMU触发高优先级响应
3. 地址错误:地址解码逻辑故障,独立的Address Error Monitor检测

2.7 SMU安全监控单元

SMU(Safety Management Unit)是TC3xx安全架构的核心枢纽,负责收集所有硬件安全机制的告警并执行分级响应。

SMU结构与响应

图4:SMU结构与响应机制(来源:AN1002 Ch9 Figure 18/19)

SMU分为两个物理隔离的子系统:

子系统 位置 告警来源 独立性
SMU_core 核心域 大多数硬件监控器(CPU、存储、外设) 主安全路径
SMU_stdby 待机域 电源、温度、时钟、核心存活信号 物理隔离,抗共因故障

SMU_core与SMU_stdby之间通过smu_core_alive心跳信号相互监督:SMU_stdby监控SMU_core是否正常运行,反之亦然。任一方失效都会触发对方的告警,避免单点故障导致整个安全监控体系失效。

SMU状态机:SMU_core运行一个严格的状态机(SSM),主要状态包括:

状态 说明
START 上电初始状态,等待配置完成
RUN 正常运行状态,处理所有告警
FAULT 检测到故障,执行配置的响应动作
FAULT2 二次故障状态(可配置)
STOP 安全关断状态

值得注意的是,即使在START状态,看门狗超时告警和Recovery Timer告警也会被处理——这确保了上电阶段的软件异常也能被捕获。

三、配置实现:TC3xx安全机制的关键配置

3.1 SMU告警配置

每个安全机制产生的告警都路由到SMU,配置分为告警路由和响应动作两个维度:

告警路由配置:SMU_core支持最多12个告警组(AG0-AG11),每组最多32个告警ID。通过RTAC(Reaction)寄存器为每个告警配置响应动作:

// SMU告警配置示例(伪代码)
typedef struct {
    uint8_t alarm_group;      // 告警组(0-11)
    uint8_t alarm_id;         // 告警ID(0-31)
    smu_reaction_t reaction;  // 响应动作
} smu_alarm_config_t;

// SMU支持的6种响应动作(按严重程度递进)
typedef enum {
    SMU_ACTION_NONE = 0,      // 无动作(仅记录到状态寄存器)
    SMU_ACTION_INT,           // 向配置的CPU集发送中断
    SMU_ACTION_NMI,           // 向所有CPU发送不可屏蔽中断
    SMU_ACTION_RESET_CPU,     // 选择性CPU复位
    SMU_ACTION_RESET_SYSTEM,  // 系统复位
    SMU_ACTION_FSP            // FSP外部故障协议(通知PMIC)
} smu_reaction_t;

配置原则

  • ASIL-B告警通常配置为INT或NMI,允许软件恢复
  • ASIL-D告警通常配置为CPU复位或系统复位,确保硬件级安全响应
  • FSP用于需要外部PMIC协同的场景,建立MCU外部的次级安全路径
  • 所有告警状态具有sticky属性,即使系统复位也不会清除,便于故障诊断

3.2 看门狗配置

TC3xx提供多层级看门狗机制,从单核到系统级逐层防护:

看门狗类型 用途 监控对象 对应SMU告警
CPU WDT 任务执行超时 单核软件执行流 各CPU独立告警
Safety WDT 系统级监控 多核任务调度+安全寄存器保护 全局WDT告警
Window WDT 喂狗窗口验证 防止虚假喂狗 同Safety WDT
// 看门狗配置示例
void WDT_Init(void) {
    // Safety Endinit保护:必须先解锁才能配置看门狗
    WDT_SafetyEndInit();  // 进入安全配置模式

    // Safety Watchdog配置
    WDT_SetTimeout(WDT_SAFETY, 100ms);          // 超时时间
    WDT_SetWindow(WDT_SAFETY, 20ms, 80ms);      // 喂狗窗口:20-80ms

    // 喂狗密码:每个看门狗有独立密码,防止误操作
    // 密码通过WDTxCON0寄存器写入,需按特定顺序操作

    WDT_SafetyEndInit();  // 退出安全配置模式,锁定配置
}

关键机制:Safety Endinit保护

Safety Endinit是TC3xx的安全寄存器保护机制——安全相关的配置寄存器(包括看门狗、SMU、时钟等)在配置完成后即被锁定,任何修改都需要经过两步解锁流程。这防止了软件Bug或恶意代码篡改安全配置。

看门狗喂狗窗口

窗口看门狗要求喂狗操作必须在时间窗口内完成——过早喂狗(在窗口打开前)或过晚喂狗(超时后)都视为异常。这有效防止了以下攻击模式:

  • 死循环中虚假喂狗(过早喂狗会被拒绝)
  • 中断风暴导致喂狗延迟(过晚喂狗触发超时)

3.3 ECC配置

ECC保护是TC3xx内存安全的基础,需要在初始化阶段正确配置:

// ECC配置示例
void ECC_Init(void) {
    // 使能SRAM ECC
    for (int i = 0; i < SRAM_COUNT; i++) {
        SRAM_ECC_Enable(i);
        SRAM_ECC_SetMode(i, ECC_MODE_CORRECT_AND_DETECT);  // SECDED模式
    }

    // 配置PFlash ECC(更强的DECTED)
    PFLASH_ECC_SetMode(PFLASH_ECC_MODE_DECTED);

    // 配置ECC错误注入(用于测试,仅调试模式)
    #ifdef DEBUG
    ECC_InjectError(SRAM_BANK0, ECC_SINGLE_BIT_ERROR);  // 注入1-bit错误
    ECC_InjectError(SRAM_BANK0, ECC_DOUBLE_BIT_ERROR);  // 注入2-bit错误
    #endif
}

MBIST(Memory Built-In Self Test):上电阶段,MBIST对SRAM执行结构化测试(March算法),确保SRAM阵列本身没有制造缺陷。MBIST在启动时自动运行,测试完成后才允许CPU访问SRAM。

四、故障响应:从检测到安全状态的完整路径

4.1 故障响应全流程

当安全机制检测到故障时,TC3xx的响应遵循以下完整路径:

阶段 动作 时间约束
1. 检测 硬件监控器触发告警 纳秒级(硬件自动)
2. 汇聚 SMU收集告警并判断严重度 微秒级
3. 响应 SMU按配置执行响应动作 配置依赖
4. 恢复 软件ISR处理可恢复故障 FTI内完成
5. 外部上报 FSP通知PMIC(如配置) 毫秒级
6. 安全状态 系统进入安全状态 FTTI内完成

4.2 SMU故障上报的三种模式

AN1002定义了三种故障上报路径,覆盖不同故障场景:

① 内部上报(Internal Reporting)

SMU_core直接响应,CPU接收中断/NMI/复位请求:

  • 中断(INT):向配置的CPU集发送可屏蔽中断,适用于可恢复故障
  • NMI:向所有CPU发送不可屏蔽中断,适用于需要立即处理的故障
  • CPU复位:选择性复位故障CPU,其他CPU继续运行
  • 系统复位:全局复位,进入安全初始状态

适用于:Lockstep不一致、ECC UCE、看门狗超时等CPU/存储相关故障。

② 外部上报(External Reporting)

外部故障上报

图5:外部故障上报接口与故障响应示例(来源:AN1002 Ch9 Figure 20)。SMU通过FSP引脚(P33.8)通知TLF35584/TLF35585,PMIC通过NMI/INT反馈MCU

通过FSP(Fault Signaling Protocol)引脚通知外部PMIC(如TLF35584/TLF35585),建立MCU与外部安全监控器的冗余路径:

  • 正常状态:SMU在FSP引脚上产生周期性toggling信号(心跳)
  • 故障状态:SMU停止toggling或改变信号模式,PMIC检测到异常
  • 紧急停止(Emergency Stop):SMU可配置为直接请求PMIC执行紧急停止,将指定引脚置为复位状态

③ 备用外部上报(Alternate External Reporting)

通过SMU_stdby的独立路径上报共因故障:

  • 时钟失效
  • 电源异常(过压/欠压)
  • 温度超限
  • SMU_core自身故障

与外部上报形成物理隔离——即使SMU_core完全失效,SMU_stdby仍可通过独立的FSP引脚通知PMIC。

4.3 PMIC协同响应

TC3xx通常配合英飞凌TLF35584/TLF35585 PMIC使用,形成MCU+PMIC的系统级安全方案:

PMIC连接

图6:TLF35584/TLF35585与TC3xx连接图(来源:AN1002 Ch10 Figure 21)。图中左侧为PMIC内部功能模块,右侧为TC3xx,信号连接包括FSP/ERR、PORST/ROT、NMI、SSx等

PMIC独立监控的信号:

监控项 PMIC引脚 监控内容
QUC (VEXT) 主MCU电源 VEXT域供电电压
QST (VEVRSB) 待机域电源 待机域供电电压
QVR (VAREF) ADC参考电压 模拟参考电压精度

ERR信号监控机制

PMIC的ERR脚持续监控TC3xx的FSP心跳信号:

ERR信号状态 PMIC判断 PMIC响应
正常 toggling MCU正常运行 无动作
静态高/低 SMU故障或引脚短路 触发安全反应
频率过高/过低 时钟异常 触发安全反应
占空比异常 信号完整性问题 触发安全反应

警告 vs 严重安全反应的区分

PMIC通过Recovery Delay机制区分瞬态错误和永久故障:

  • 瞬态错误(如SEU导致的单次ECC纠正):SMU恢复FSP toggling,PMIC在Recovery Delay内检测到信号恢复,仅触发INT中断
  • 永久故障(如Lockstep持续不一致):SMU无法恢复FSP toggling,PMIC Recovery Delay超时后执行严重安全反应(SS1/SS2),直接切断供电或拉低安全输出
故障类型 PMIC状态转换 复位类别 响应时序
电源过压/欠压 → FAILSAFE 冷复位(电源循环) <200μs
窗口看门狗无效触发 保持当前状态 INT中断 <200μs
窗口看门狗持续错误 → INIT 热复位 <200μs
ERR信号瞬态故障(Recovery Delay内恢复) 保持当前状态 INT中断 <200μs
ERR信号持续故障(Recovery Delay超时) → INIT 热复位 <200μs

五、硬件联动:安全机制与系统级框架的对接

5.1 与AUTOSAR的集成

TC3xx安全机制与AUTOSAR Classic Platform的集成点主要在BSW层和MCAL层:

AUTOSAR层级 安全相关模块 对应TC3xx硬件
Application ASIL混合部署的SWC
RTE S/R、C/S接口封装
BSW E2E Profile Wrapper CRC硬件引擎
BSW Watchdog Manager (WdgM) Safety WDT + CPU WDT
BSW Dem(诊断事件管理) SMU告警状态寄存器
MCAL Smu驱动 SMU_core/stdby
MCAL Wdt驱动 各类看门狗定时器
MCAL Ecc驱动 ECC配置寄存器

Watchdog Manager(WdgM):AUTOSAR的WdgM管理多个逻辑监督实体(Supervised Entity),每个SE对应一个软件功能模块的执行流监控。WdgM汇总所有SE的存活状态,最终映射到TC3xx的硬件看门狗喂狗操作。这种分层设计使得应用层无需直接操作硬件看门狗。

Dem与SMU的对接:AUTOSAR的Dem模块可读取SMU告警状态寄存器,将硬件告警映射为DTC(Diagnostic Trouble Code),实现安全故障的诊断记录。这满足了ISO 26262对故障记录的要求。

5.2 E2E通信保护

端到端(End-to-End)保护是AUTOSAR推荐的通信安全机制,在RTE层实现,不依赖底层通信协议的可靠性:

保护机制 功能 检测能力
CRC 数据完整性校验 比特翻转/篡改
Sequence Counter 帧顺序校验 丢帧/重复帧
Alive Counter 存活检测 发送端卡死
Timeout Detection 超时检测 通信中断
Data ID 消息标识 错误路由

E2E与TC3xx硬件的协同:CRC校验可利用TC3xx内置的FCE(Fast CRC Engine)模块加速计算,降低CPU开销。

5.3 安全路径设计

安全路径(Safety Path)是从MCU到执行器的冗余信号链,是系统级功能安全的核心设计:

安全路径

图7:主安全路径与次安全路径示例(来源:AN1002 Ch10 Figure 24)。Primary Path由MCU直接控制,Secondary Path由PMIC独立控制

路径类型 说明 独立性要求
Primary Safety Path MCU通过软件逻辑控制的执行器信号 依赖MCU正常工作
Secondary Safety Path PMIC/外部硬件控制的冗余路径 独立于MCU,抗共因故障

设计原则

  • 主次路径必须物理独立:不同PCB走线、不同BGA引脚区域、不同电源域
  • 次级路径必须不依赖MCU软件:即使MCU完全卡死,PMIC也能独立执行安全关断
  • FTTI约束:从故障检测到安全状态的时间必须小于FTTI

六、共因失效考虑

6.1 CCF分析的重要性

Common-Cause Failure(CCF,共因失效)是安全系统设计的最大挑战——单一原因同时影响冗余通道,使冗余保护失效。

TC3xx通过以下措施降低CCF风险:

  1. 物理隔离:不同功能域使用独立电源轨和时钟域
  2. 空间分离:冗余ADC通道使用不同BGA球组,避免单点物理损坏
  3. 多样化设计:SMU_core与SMU_stdby采用不同实现逻辑
  4. 主副双通道监控:电压、温度等关键参数同时由主/副通道监控

6.2 引脚分配建议

TC3xx的BGA封装将I/O分为多个物理隔离组。部署安全相关信号时:

  • Mission信号和Monitor信号应选择非相邻I/O组
  • 避免单个BGA球短路同时影响两个通道
  • 参考AN1002 Ch11的I/O配置图(Figure 29-30),根据具体封装选择引脚

本篇总结

核心要点

  1. ISO 26262是汽车功能安全的基础标准,ASIL等级通过S/E/C三维度判定,FTTI是硬件安全设计的核心约束
  2. TC3xx采用fail-safe分层架构,基础设施层→处理单元层→通信层→系统层,每层独立防护
  3. Lockstep + ECC + 看门狗 构成TC3xx三大核心安全机制,诊断覆盖率分别可达>99%、SECDED/DECTED、时间窗口约束
  4. SMU提供三级故障响应:内部中断/NMI/复位、外部FSP协议、备用外部路径,物理隔离确保抗共因故障
  5. 系统级安全需要MCU+PMIC协同,PMIC独立监控电源+ERR心跳,主次安全路径互补设计
  6. 主副双通道监控贯穿电压/温度/时钟等关键参数,有效应对CCF挑战

下篇预告

IF-SAFE-02将深入解析TC3xx的具体安全机制实现:

  • Lockstep与非Lockstep CPU的差异与选型策略
  • ECC/EDC在SRAM/PFlash中的具体实现与汉明距离
  • LBIST/MBIST自检机制与FTTI计算
  • 看门狗配置与Safety Endinit保护详解

参考资料

  1. Infineon, AN1002 - FuSa in a nutshell: Introduction to AURIX™ TC3xx functional safety, V1.1 2025-07-14
  2. ISO 26262:2018, Road vehicles — Functional safety
  3. Infineon, TC3xx User Manual Part1 - System Control Units, SMU Chapter
  4. Infineon, TLF35584/TLF35585 Datasheet - OPTIREG™ PMIC

英飞凌TC3XX/硬件功能安全专栏https://blog.csdn.net/weixin_43391096/category_13168776.html

🔍 搜"叶修"找到我 | CSDN:叶修_A | 知乎/小红书/抖音:叶修

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐