ST SPC5 FCCU 与安全手册:MCU 功能安全的收集-反应-潜伏三层

功能安全L5别名 SPC5 FCCU · SPC574K72xx safety manual · Fault Collection and Control Unit · FOSU · ST 安全 MCU · 更新

本质与导读

本质 SPC574K72xx 是按 SEooC 开发的 delayed-lockstep ASIL D MCU,安全手册(AN4446)给的是 conditions of use——assumption 不满足,随附 FMEDA 即失效。功能安全靠 lockstep + FCCU/FOSU + STL/BIST 分工成立,而它们存在的唯一理由是把 failure indication time + 系统反应时间压进 FTTI(10ms)以内。

主线坐标:第 6 站 · 电机 + 控制采样 · ↑ 全景主线

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 是全片故障的收集与控制中枢。

SPC5 FCCU 架构:4 类 fault source(模块 failure 指示/FCCU 自监控/软件触发/外部 FI 引脚)→ 每 source 一个 channel(lockstep=#51)→ 可配反应(maskable IRQ / NMI / reset / 改 FI 引脚 / no reaction);FI[0/1] 三协议(dual-rail/time-switching/bi-stable);FOSU 独立监督 1000 IRCOSC 超时

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 machineCONFIG 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 把它拆成三段:

SPC5 failure indication time 预算:recognition(各 SM 最大值,FMPLL loss-of-clock ≈20µs)+ internal processing(≤10 IRCOSC ≈625ns)+ indication(fast 64µs / slow ≈16.4ms / bi-stable 64µs);failure indication time + 系统反应 < FTTI 10ms;FOSU 1000 IRCOSC ≈62.5µs 兜底

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)。三层正是分别把这三个数顶上去:

SPC5 达 ASIL D 三层:① lockstep(checker 延迟 2 拍比对,RCCU,抓运行期单点,撑 SPFM)② FCCU+FOSU(收集全片 fault → 统一反应,FOSU 二级监督)③ STL/BIST(LBIST 10 partition + MBIST + 在线自测,抓潜伏故障,撑 LFM,secondary goal 每 driving cycle 一次)

① 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 nsAN4446 §4
indication(bi-stable)≤64 µsAN4446 §4
HW path 合计≈64.7 µs
ERRM 系统反应时间≤1 msTLF35584 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

缩写表

只列本页用到的工业标准缩写;通用英语…

只列本页用到的工业标准缩写;通用英语 / 单位 / 月份 / 我们的 层/Lx tag 不列。覆盖不到的术语见正文 inline 注释。

缩写全称中文 / 备注
STSTMicroelectronics意法半导体
MCUMicrocontroller Unit微控制器(本页多指车规多核 MCU)
ASILAutomotive Safety Integrity LevelISO 26262 安全完整性等级 QM→A→B→C→D
FTTIFault Tolerant Time Interval容错时间间隔
FMEDAFailure Modes, Effects and Diagnostic Analysis含诊断覆盖的 FMEA
SPFMSingle-Point Fault Metric单点失效度量
LFMLatent Fault Metric潜伏故障度量
SMSafety Mechanism安全机制
DCDiagnostic Coverage诊断覆盖率(功能安全语境)
CCFCommon Cause Failure共因失效
ISOInternational Organization for Standardization国际标准化组织
FCCUFault Collection and Control Unit故障收集与控制单元
FOSUFCCU Output Supervision UnitFCCU 输出监督单元(二级监督)
RCCURead Clock Control Unit锁步比对单元(ST 术语)
IRCOSCInternal RC Oscillator内部 RC 振荡器(16 MHz,±6% post-trim)
ERRMExternal Reset Manager外部复位管理器 / 安全切换控制器
EXWDExternal Watchdog外部看门狗
PORPower-On Reset上电复位
AoUAssumptions of Use使用假设(SEooC 术语)
SEooCSafety Element out of Context脱离上下文的安全单元(ISO 26262-10)
SBCSystem Basis Chip系统基础芯片
STLSoftware Test Library软件测试库(运行时 CPU/RAM 自检)
LBISTLogic Built-In Self-Test逻辑内建自测
MBISTMemory Built-In Self-Test内存内建自测
ECCError Correcting Code纠错码(Flash SEC/DED / RAM Hamming)
SWTSoftware Watchdog Timer软件看门狗定时器
EMIElectromagnetic Interference电磁干扰
E2EEnd-to-End protection端到端通信保护(AUTOSAR)
CCFCommon Cause Failure共因失效

Cross-references