ST SPC5 FCCU 与安全手册:MCU 功能安全的收集-反应-潜伏三层
本质与导读
本质 SPC574K72xx 是按 SEooC 开发的 delayed-lockstep ASIL D MCU,安全手册(AN4446)给的是 conditions of use——assumption 不满足,随附 FMEDA 即失效。功能安全靠 lockstep + FCCU/FOSU + STL/BIST 分工成立,而它们存在的唯一理由是把 failure indication time + 系统反应时间压进 FTTI(10ms)以内。
1. 定位:delayed-lockstep ASIL D MCU(SEooC)
SPC574K72xx 是 e200z4 双核 delayed lockstep 32-bit MCU,按 ISO 26262 作 SEooC 开发(开发过程满足 ASIL D,可用于 ASIL A/B/C/D)。Mission profile:Lifetime 20 年 = 20000h active;trip time(driving cycle)12h;FTTI = PST = 10ms(保守);Tj 最高 165°C@200h。安全手册是给系统集成商的 assumptions of use 清单:外部须有 EXWD + 电源 LVD/HVD + 监控 failure 引脚的 ERRM 并能独立把系统拉入 safe state,凡不满足某条 assumption,SPC574K72xx 的 FMEDA 即失效(须自证等效或重算 SPFM/LFM)。
2. FCCU 架构
FCCU 是全片故障的收集与控制中枢。
4 类 fault source:① MCU 内各模块的 failure indication;② FCCU 自身监控的 control logic;③ 软件触发的 failure indication;④ 外部 failure 输入(经 FI[0])。各 source 对应一个 FCCU channel(lockstep = fault/alarm #51;DFT = channel 46–49)。
fault reaction(每 source 独立配):Maskable IRQ / NMI / Reset / 改 failure indication 引脚状态 / No reaction;另可在 error state 禁通信控制器发送。SW 从 FCCU_RF_S 读故障源(reset 前后均可)。failure indication 引脚 FI[0]/FI[1] 三协议:Dual rail / Time switching / Bi-stable(bi-stable 可只用一脚)。fault state machine 含 CONFIG state:配置寄存器仅 CONFIG 态可写,退出 CONFIG 前必须清 pending fault。
FOSU(FCCU Output Supervision Unit)= 二级监督:独立第二路径,FCCU 在固定 1000 IRCOSC cycles(≈62.5µs) 内未对 enabled fault 反应 → FOSU 触发 reset。FOSU 无需 SW 配置;FCCU 处 CONFIG 态时 FOSU 不监控(CONFIG 是 FOSU 盲区,这正是"退 CONFIG 前必清 pending fault"是硬 assumption 的原因)。
3. failure indication time 预算
故障从发生到被指示出去的时间必须卡在 FTTI 内,AN4446 把它拆成三段:
indication time = recognition + internal processing + indication:recognition 取所有相关 SM 最大值(最长两个:FMPLL loss-of-clock ≈20µs;软件自检 diagnostic cycle time);internal processing ≤10 IRCOSC cycles(IRCOSC 16MHz → ≈625ns);indication 是 fast switching max 64µs / slow switching 取 error-out 周期(61Hz toggle → ≈16.4ms)/ bi-stable max 64µs。故 bi-stable / fast 路径的 indication time ≈ recognition(≈20µs)+ processing(≈0.6µs)+ 64µs ≈ 84.6µs(§6 lockstep 场景 recognition 只 1 IRCOSC,压到 ≈64.7µs)。约束:failure indication time + 系统反应时间 < FTTI(10ms)。
4. 达 ASIL D 的三层配合
ASIL D 不是靠单点冗余,而是三层按"故障寿命"分工。先把"达 ASIL D"量化成硬指标——ISO 26262-5:2018 对硬件架构度量的 ASIL D 目标(Table 4/5/6):SPFM ≥ 99%(单点故障度量,撑它的是 lockstep 的运行期检出)、LFM ≥ 90%(潜伏故障度量,撑它的是 STL/BIST 在潜伏故障演化成 multiple-point fault 前把它查出)、PMHF < 10 FIT(随机硬件失效概率度量,即 < 1e-8/h)。三层正是分别把这三个数顶上去:
① Lockstep(检测层,撑 SPFM):checker core 输入延迟 2 个时钟周期,输出与 master 比较,由 RCCU 比对,差异交 FCCU。delayed(非 zero-delay)是抗共因:让同一时刻的 EMI/电压 glitch 对两核产生不同效果从而被捕获。② FCCU+FOSU(收集反应层):把全片 fault 汇聚成统一反应,FOSU 作 maker≠checker 的二级监督。③ STL/BIST(潜伏故障层,撑 LFM):STCU2 统管 LBIST(scan-based,逻辑 10 partition,MISR 签名)+ MBIST(测全部 RAM/ROM),boot 离线执行,POR/external/destructive reset 自动跑;对应 secondary goal(ASIL B,每 driving cycle 检一次任一 SM 是否永久不可用)。
选型含义:选 ASIL D MCU 不能只看"有没有 lockstep"——要看 STL 的 latent-fault 覆盖与诊断周期能否满足 LFM。SPFM 靠 lockstep,LFM 靠 STL,二者分工。
5. 其他关键安全机制
围绕三层的支撑机制(均有具体覆盖率/约束):ECC——Flash SEC/DED(2.5MB NVM),RAM 修正 Hamming(部分 RAM 把地址纳入 ECC 覆盖寻址故障),XBAR 用 E2E ECC,MEMU 收集报 FCCU;Flash 区分 multibit 靠 4 次读(单读 DC≈70% → 4 读 DC≈99%)。看门狗——内部 SWT(窗口<FTTI)+ 外部 EXWD(ASIL D 强制),EXWD 覆盖 MCU 完全失效的 CCF(含电源故障),且不可被 MCU reset 输出复位。Clock monitor——CMU 由独立 16MHz IRCOSC 驱动(±6% post-trim),ASIL D 下强制。Voltage monitor——PMC 的 LVD/HVD 故障直接经 MC_RGM 异步 reset 进 safe state,比 FCCU 的 IRCOSC-clocked IRQ 路径快(防 brownout 来不及)。Reset escalation——FRET/DRET 双计数防 Reset–Start / Reset–Self-test–Reset 死循环。
reset 不算 safe stat…
reset 不算 safe state 连续 Reset–Start 或 Reset–Self-test–Reset 循环会给"制造该循环的故障"无限重试机会、削弱检出能力——"进 reset" 当安全反应而不防循环 = 系统级漏洞。ST 用 MC_RGM 的 FRET/DRET 双计数硬件兜底短循环,长循环须 SW 兜(清计数前先比对历史 FCCU 状态)。
6. Worked Design — SPC574K72xx EPS ECU ASIL D 配置五步核算
本 worked design 针对 48V EPS ECU:SPC574K72xx 作主控 ASIL D MCU,TLF35584 作 SBC,安全目标 = 避免意外转向助力 >15 Nm(ASIL D,FTTI = 10 ms)。
Step 1 — 故障路径与 FCCU channel 映射
lockstep 比对失败 → FCCU channel #51(fault/alarm 双 channel) → 配 reaction = bi-stable FI[0]/FI[1](dual-rail 双线互补)。外部 ERRM(TLF35584 FS0b 引脚)检测 FI 变化 → 拉低 PWM_EN → 关断全桥 → safe state。选 bi-stable 而非 slow switching 的原因:slow switching 约 16.4 ms > FTTI 10 ms,直接超标(G1)。
Step 2 — failure indication time 全链核算
| 时间段 | 数值 | 来源 / 约束 |
|---|---|---|
| recognition(lockstep) | ≈62.5 ns(1 IRCOSC) | 锁步故障同 cycle 检出 |
| internal processing | ≤10 IRCOSC = 625 ns | AN4446 §4 |
| indication(bi-stable) | ≤64 µs | AN4446 §4 |
| HW path 合计 | ≈64.7 µs | — |
| ERRM 系统反应时间 | ≤1 ms | TLF35584 FS0b + 继电器 |
| 总端到端时间 | ≈1.065 ms | — |
| FTTI = 10 ms,余量 | 9.4× | ✓ PASS |
Step 3 — FOSU 备份核算
FOSU 独立计时 = 1000 × 62.5 ns = 62.5 µs。若 FCCU 正常路径失效,FOSU 在 62.5 µs 内触发 reset。
FOSU 备份路径端到端 = 62.5 µs(FOSU reset)+ ERRM 处理 ≤1 ms ≈ 1.063 ms < FTTI 10 ms ✓。两路并存取最坏(正常路径 64.7 µs > FOSU 62.5 µs),端到端 ≈ 1.065 ms。
Step 4 — CONFIG 状态窗口管理
FOSU 在 CONFIG 态盲(不监控)。CONFIG 态须在系统激活运行功能前完成:POR → LBIST(~100 ms,10 partition)→ MBIST → FCCU 配置(CONFIG 态,清 pending fault)→ 退出 CONFIG → NORMAL 态 → MCU 发 INIT_COMPLETE → TLF35584 释放 FS0b → 激活 PWM_EN。PWM_EN power-on default = disabled,确保 LBIST / CONFIG 期间 HV 功率级不激活(C2)。
Step 5 — STL 诊断周期 LFM 核算
secondary goal(AN4446):每 driving cycle(≤12 h)执行一次全量 STL 检查 → LBIST 10 partition 全覆盖 → CPU logic DC ≥ 99%(撑 SPFM)→ 潜伏故障存活窗口 ≤ 12 h。满足条件:每次行程开始 POR/destructive reset → STL 自动运行 → LFM 目标 ≥ 90% ✓。
收口:五步核算确认 SPC574K72xx 满足 AN4446 全量 assumptions → FMEDA 有效 → SPFM ≥ 99%,LFM ≥ 90%,PMHF < 10 FIT。
7. 设计陷阱 G1–G7
工程中 SPC574K72xx FCCU 配置最常见的七类失误。
G1 — slow switching 协议直接违 FTTI
slow switching indication = FI 引脚以约 61 Hz 的频率 toggle,一个完整切换周期 ≈ 16.4 ms,比 FTTI = 10 ms 长 64%。使用 slow switching 时 failure indication time 最差情形 = recognition + processing + 16.4 ms >> FTTI。正确选项:bi-stable(max 64 µs)或 fast switching(max 64 µs);slow switching 仅适用于 FTTI > 20 ms 的低要求场合。
G2 — FI 引脚 ERRM 悬空或接错
FI[0]/FI[1] 须接外部 ERRM(独立安全 SBC / 继电器监控),才能把 MCU failure 转成 HW safe state。若 FI 引脚只接 LED 或空悬,AN4446 assumption 11 直接违背,随附 FMEDA 失效。芯片不报错、系统调试期可能完全不可见,只在故障注入测试或独立审计时才暴露。
G3 — CONFIG 态期间系统功能已激活
FCCU CONFIG 态时 FOSU 盲,此时若 PWM 功能已使能,FTTI 窗口内故障得不到任何 HW 级保护。正确做法:power-on default = disabled,PWM_EN 在 MCU 退出 CONFIG 进入 NORMAL 后由 SBC FS0b 统一释放;开机顺序里 LBIST / CONFIG 阶段 HV 功率级保持关断。
G4 — EXWD 被 MCU RESET_B 信号复位
AN4446 明确 EXWD 不可被 MCU reset 输出复位。若 PCB 上把 SBC RESET_IN 接到 MCU RESET_B 输出(常见"省线"布局),当 MCU 完全失效(总线短路/电源崩溃)时 RESET_B 拉低把 EXWD 一并复位,MCU 完全失效的 CCF 正好是 EXWD 要覆盖的失效模式——共因保护完全失效。
G5 — 低 ASIL 应用误以为可放松 AoU
SPC574K72xx 被 ASIL B 应用采用时,开发者有时认为"ASIL B 要求低于 D,部分 assumption 可省"。错:AN4446 的 AoU 是芯片 FMEDA 成立的充分条件,与应用 ASIL 等级无关。缺失任何 assumption,FMEDA 无效,应用侧须自证等效(通常代价更高)。
G6 — LBIST 启动时间未做 power-up gate 处理
SPC574K72xx boot 阶段 LBIST 10 partition 合计 ~100 ms,期间片上 SM 被旁路,FCCU NORMAL 未建立。若 HV 主驱在 LBIST 期间上电完成,FTTI 无法保证。正确做法:把"MCU boot complete + FCCU in NORMAL"作为 SBC FS0b 释放的前提条件,HV 使能晚于 boot gate。
G7 — Reset 循环后 FCCU_RF_S 未读
FRET/DRET 双计数防短循环,但 SW 必须在清计数前读 FCCU_RF_S 并记录故障源。若不读直接清计数,工厂检测时无法区分"正常 POR"和"lockstep 故障引发的 reset",FMEDA 故障检测路径缺少追溯证据,独立安全审计会标为 evidence gap。
8. 工作极限 C1–C3
三个边界情形超出常规设计视野但在量产中确实出现。
C1 — 高温 IRCOSC 精度影响 FOSU 窗口边界
IRCOSC ±6%(post-trim)使 FOSU 超时基准随温度漂移:IRCOSC +6%(高温 / 高速)时 T_IRCOSC = 59.0 ns,FOSU = 59.0 µs;IRCOSC −6%(低温 / 低速)时 T_IRCOSC = 66.5 ns,FOSU = 66.5 µs。当 FOSU 最短窗口(59.0 µs)短于 FCCU 正常 HW path(≈64.7 µs)时,热角下 FOSU 会先于 FCCU 正常路径触发 reset。两者都是安全反应,但 FOSU 型 reset 走 destructive reset 路径,清更多寄存器状态(包括 FRET/DRET 计数),造成连续启动时 fault 诊断信息丢失。对策:注意 bi-stable indication 本身 max 64 µs 已使正常 HW path(≈64.7 µs)高于热角 FOSU 最短窗口(59.0 µs),而 indication 下限受这 64 µs 钉死(即便随 IRCOSC 同比缩至 ≈60.4 µs 仍 > 59 µs),靠压缩时序预算无法让正常路径抢先——不能设一个凑不出来的 < 55 µs 目标。正确做法是接受热角下 FOSU 可能先触发,并确保 FOSU 型 destructive reset 在清 FRET/DRET 前先锁存 / 读出 FCCU_RF_S 故障源(见 §5 reset escalation 与 G7),避免连续启动丢诊断信息。
C2 — 多 partition LBIST 与 HV 上电顺序冲突
SPC574K72xx LBIST 10 partition 顺序执行合计 ~100 ms,期间 FCCU 不处于 NORMAL 态,FOSU 监控能力受限。若平台 ECU 的 HV 主驱(400 V 逆变器)在 LBIST 期间上电完成(例如 HV 预充在 12 V 上电后即启动),则 FTTI 不能保证。正确功率分区顺序:12 V MCU 上电 → boot + LBIST → FCCU NORMAL → SBC FS0b 释放 → HV 预充使能。在有多 ECU 或 domain controller 的系统中,HV 上电的网络 wake-up 时序须与 MCU boot 时序显式对齐。
C3 — SEooC AoU 跨平台 variant 传递失效
Tier1 平台 ECU 策略中,SPC574K72xx AoU 验证在基线 HW 上完成(FMEDA 有效)。当 variant HW(EMC 或认证版本)在 FI[0]/FI[1] 引脚到 ERRM 的走线上加 RC 滤波(如 R=1 kΩ + C=1 nF → RC = 1 µs 额外时延),bi-stable 协议边沿速率下降,实测 indication time 超过 AN4446 规格(64 µs)。该 AoU 只在基线 HW 验证过,variant 未重新测量 indication time,FMEDA 跨 variant 传递失效。正确做法:每次 HW variant 改动 FI 引脚负载或走线时触发 indication time 实测(HALT 或 FI 输出波形测量),并记入 variant 级别的 AoU 验证记录。
核心要点
- SPC574K72xx = Power Architecture delayed-lockstep ASIL D MCU(SEooC),FTTI=10ms,安全手册=assumptions of use
- FCCU 收 4 类 fault source → 每 source 独立配反应(IRQ/NMI/reset/FI 引脚);FI 三协议(dual-rail/time-switching/bi-stable)
- FOSU 二级监督:FCCU 1000 IRCOSC(≈62.5µs)未反应即触发 reset;CONFIG 态是 FOSU 盲区 → 退 CONFIG 前必清 pending fault
- indication time 五步核算:recognition 62.5 ns + processing 625 ns + indication 64 µs ≈ 64.7 µs;加 ERRM 系统反应 1 ms → 端到端 1.065 ms,FTTI 余量 9.4×
- 三层达 ASIL D:lockstep(2 拍延迟比对,抗共因,撑 SPFM)/ FCCU+FOSU(收集反应)/ STL-BIST(LBIST 10 partition,抓潜伏,撑 LFM)
- EXWD 是 ASIL D 强制(覆盖 MCU 完全失效 CCF,不可被 MCU reset 复位);电压监控走 MC_RGM 异步 reset(比 FCCU IRQ 快,防 brownout)
- reset 不算 safe state:防 reset 循环(FRET/DRET 双计数)是系统级陷阱;循环后必须读 FCCU_RF_S 再清计数
- slow switching 违 FTTI(G1):16.4 ms > FTTI 10 ms,必须选 bi-stable 或 fast switching
- LBIST 启动 ~100 ms 是 power-up gate(G6):HV 功率级使能须晚于 boot + FCCU NORMAL
缩写表
只列本页用到的工业标准缩写;通用英语…
只列本页用到的工业标准缩写;通用英语 / 单位 / 月份 / 我们的
层/Lxtag 不列。覆盖不到的术语见正文 inline 注释。
| 缩写 | 全称 | 中文 / 备注 |
|---|---|---|
| ST | STMicroelectronics | 意法半导体 |
| MCU | Microcontroller Unit | 微控制器(本页多指车规多核 MCU) |
| ASIL | Automotive Safety Integrity Level | ISO 26262 安全完整性等级 QM→A→B→C→D |
| FTTI | Fault Tolerant Time Interval | 容错时间间隔 |
| FMEDA | Failure Modes, Effects and Diagnostic Analysis | 含诊断覆盖的 FMEA |
| SPFM | Single-Point Fault Metric | 单点失效度量 |
| LFM | Latent Fault Metric | 潜伏故障度量 |
| SM | Safety Mechanism | 安全机制 |
| DC | Diagnostic Coverage | 诊断覆盖率(功能安全语境) |
| CCF | Common Cause Failure | 共因失效 |
| ISO | International Organization for Standardization | 国际标准化组织 |
| FCCU | Fault Collection and Control Unit | 故障收集与控制单元 |
| FOSU | FCCU Output Supervision Unit | FCCU 输出监督单元(二级监督) |
| RCCU | Read Clock Control Unit | 锁步比对单元(ST 术语) |
| IRCOSC | Internal RC Oscillator | 内部 RC 振荡器(16 MHz,±6% post-trim) |
| ERRM | External Reset Manager | 外部复位管理器 / 安全切换控制器 |
| EXWD | External Watchdog | 外部看门狗 |
| POR | Power-On Reset | 上电复位 |
| AoU | Assumptions of Use | 使用假设(SEooC 术语) |
| SEooC | Safety Element out of Context | 脱离上下文的安全单元(ISO 26262-10) |
| SBC | System Basis Chip | 系统基础芯片 |
| STL | Software Test Library | 软件测试库(运行时 CPU/RAM 自检) |
| LBIST | Logic Built-In Self-Test | 逻辑内建自测 |
| MBIST | Memory Built-In Self-Test | 内存内建自测 |
| ECC | Error Correcting Code | 纠错码(Flash SEC/DED / RAM Hamming) |
| SWT | Software Watchdog Timer | 软件看门狗定时器 |
| EMI | Electromagnetic Interference | 电磁干扰 |
| E2E | End-to-End protection | 端到端通信保护(AUTOSAR) |
| CCF | Common Cause Failure | 共因失效 |
Cross-references
- ← 索引
- 功能安全(Functional Safety):ASIL/SPFM/LFM/FTTI 总框架
- Lockstep 双核深度:delayed lockstep 与 RCCU 比对原理
- STL / BIST 运行时自测:LBIST/MBIST 与在线自测的通用原理
- 诊断覆盖率分类:SPFM/LFM 与 DC 的关系
- AURIX TC3xx ASIL D:Infineon 对偶 MCU FuSa 架构(横向对比)
- TI Hercules TMS570 ASIL D:TI lockstep MCU(横向对比)
- 安全机制目录:FCCU/lockstep/ECC/CMU 在 SM catalog 的位置
- MPC5744P + MC33907 集成:NXP FCCU bi-stable + SBC 集成参考(横向对比)