2. AURIX安全架构与故障监控基础
AURIX TC3xx 的安全架构不是单一模块,而是一套从“故障产生”到“系统进入安全状态”的纵向链路。理解这条链路,是后续配置 SMU、ALARM、端口和安全管理单元的前提。本节围绕锁步核、SMU、安全管理单元、安全域与安全状态、故障分类与安全机制映射五个核心概念展开,并给出可落地的观察与判断方法。
锁步核:故障检测的第一道防线
AURIX 的 CPU 采用锁步(Lockstep)结构:一个主核(Master Core)和一个校验核(Checker Core)执行相同的指令流,但两者在物理上独立、布局错开,以降低共因失效。每个时钟周期,比较逻辑将两核的关键输出(如地址、数据、控制信号)进行比对。若不一致,比较器立即产生一个故障信号,送入 SMU。锁步核能覆盖 CPU 内部的瞬态与永久故障,但它本身不决定系统如何响应,只负责“发现异常”。
工程上需要关注两个参数:一是锁步比较的延迟,通常在几个周期内;二是故障信号的类型,例如指令比较错误、数据比较错误、地址比较错误。这些信号在 SMU 中对应不同的 ALARM 组,后续可分别映射到不同的安全反应。
SMU:故障的汇聚与分发中心
SMU(Safety Management Unit)是 AURIX 安全架构的中枢。它接收来自锁步核、SRAM/Flash ECC、总线监控、时钟监控、电压监控等数十个故障源,按严重程度和来源分组为若干 ALARM 组。每个 ALARM 组可独立配置反应方式:
- 内部反应:触发中断、复位、进入安全状态;
- 外部反应:通过 SMU 的 FSP(Fault Signaling Protocol)引脚输出到外部安全芯片或系统电源管理;
- 状态记录:将故障写入 SMU 状态寄存器,供软件读取和诊断。
SMU 的关键配置对象是 ALARM 配置寄存器(如 AGC、AGF、CMD 等)。以 TC3xx 为例,每个 ALARM 组可设置“报警反应”为:无反应、中断、复位、或触发 FSP。实际项目中,通常将 CPU 锁步错误、ECC 不可纠正错误等归为高严重度组,配置为立即复位或触发外部安全状态;将可纠正 ECC 错误归为低严重度组,仅记录并产生中断,由软件决定是否降级运行。
安全管理单元与安全域
安全管理单元(Safety Management Unit,部分文档也称 SMU 的扩展管理逻辑)负责将 SMU 的报警信号进一步映射到具体的安全域。安全域是 AURIX 中一组具有相同安全目标的功能集合,例如:
- 安全域 0:与车辆动力、制动相关的关键功能;
- 安全域 1:与车身、舒适相关的非关键功能;
- 安全域 2:诊断与通信功能。
不同安全域可以配置不同的安全状态。安全状态不是“停机”,而是系统在故障后仍能维持最低安全能力的运行模式。例如,动力域进入安全状态时,可能关闭电机输出但保留通信与诊断;车身域进入安全状态时,可能仅关闭相关执行器。安全状态的定义必须与整车功能安全目标(如 ASIL 等级)一致。
故障分类与安全机制映射
AURIX 将故障按来源和可恢复性分类,并映射到对应的安全机制。常见分类如下:
| 故障类别 | 典型来源 | 安全机制 | 典型反应 |
|---|---|---|---|
| 瞬态故障 | 宇宙射线、电磁干扰 | 锁步比较、ECC | 重试、纠正、记录 |
| 永久故障 | 硬件老化、短路 | 锁步比较、BIST | 复位、进入安全状态 |
| 时钟故障 | 晶振失效、PLL失锁 | 时钟监控 | 切换备用时钟、复位 |
| 电压故障 | 电源跌落、过压 | 电压监控 | 触发 FSP、关闭输出 |
| 通信故障 | 总线错误、CRC错误 | 总线监控、ECC | 重发、降级、报警 |
映射的核心原则是:故障的严重度决定反应的强度。可纠正故障优先纠正并记录;不可纠正但可隔离的故障,隔离故障模块并降级;不可隔离且影响安全目标的故障,立即进入安全状态或复位。
从故障到安全状态的完整链路
下面用一张信号链图展示 AURIX 从故障产生到安全状态响应的纵向路径。图中左侧为故障源,中间为 SMU 的汇聚与分发,右侧为安全域与安全状态。该图对应本节的核心知识结构,便于在配置时快速定位每个环节的寄存器与信号。
配置与观察要点
在实际工程中,配置 SMU 通常按以下顺序进行:首先使能各故障源的报警输出,例如在锁步核配置寄存器中打开比较错误报警;然后在 SMU 中为每个 ALARM 组设置反应类型,高严重度组建议配置为“复位”或“FSP 触发”;接着配置 FSP 引脚的行为,包括极性、脉冲宽度和外部安全芯片的握手协议;最后在软件中实现故障中断服务程序,读取 SMU 状态寄存器并记录故障码。
观察结果时,可通过读取 SMU 的 ALARM 状态寄存器确认故障是否被捕获,通过 FSP 引脚示波器波形确认外部反应是否触发,通过安全域的状态寄存器确认系统是否进入预期的安全状态。若故障未被捕获,应检查报警使能位和 ALARM 组映射;若反应不符合预期,应检查 ALARM 组配置和 FSP 协议设置。