MCU + SBC 配对实现 ASIL D:S32K344 + FS26(与经典 MPC5744P + MC33907)集成案例

功能安全L5别名 MPC5744P MC33907 集成 · S32K344 FS26 配对 · SBC + 安全 MCU 配对 · ASIL D MCU SBC · Freescale SafeAssure · lockstep + SBC 监测 · external watchdog ASIL D · challenger window watchdog · FSM Fail Safe Machine · FTTI 预算 · 更新

本质与导读

本质 ASIL D 是系统级目标,ISO 26262-5 对随机硬件失效定了三条硬指标:单点故障度量 SPFM ≥ 99%、潜伏故障度量 LFM ≥ 90%、随机硬件失效概率 PMHF < 10 FIT(即 < 1e-8/h)。单颗 die 的 MCU 无论内部多冗余,都无法独立自证自己的电源失效、时钟失效、以及会同时打击冗余两路的共因失效(common cause failure)——因为诊断这些故障的电路和被诊断的电路在同一 die / 同一电源 / 同一时钟上,故障可以同时吃掉两者。所以量产 ASIL D 的必经路径是 lockstep MCU + 安全 SBC 双芯片:MCU 管计算冗余(delayed lockstep + RCCU + ECC + FCCU),SBC 在独立的 die / 电源域 / 时钟域上做 challenger 窗口看门狗 + 电压监控 + 一条绕开 MCU 的独立第二关断路径(FS0B)直接把功率级拽进安全态。物理多样性(diverse redundancy)绕开共因失效——这不是捷径,是 ASIL D 的必经。

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

1. 物理本质:为什么 ASIL D 单 die 扛不住

先把"为什么一定要两颗芯片"从功能安全度量推清楚,后面所有机制分区都是这条约束的直接推论。ISO 26262-5:2018(clause 8-9)对整个安全相关硬件件给三条量化目标,ASIL D 一栏是:SPFM ≥ 99%(单点/残余故障里被安全机制覆盖的比例)、LFM ≥ 90%(潜伏故障覆盖率)、PMHF < 1e-8/h = 10 FIT(ASIL B/C 是 100 FIT)。1 FIT = 十亿器件小时 1 次失效。

这三条里,SPFM 是决定要不要第二颗芯片的关键。残余故障(residual fault)= 一个故障发生后,没有任何安全机制在 FTTI(见 §7)内把它抓住并带进安全态,于是它直接违反安全目标。要把 SPFM 抬到 99%,意味着几乎每个能独立引发危害的故障都必须有一个独立于故障源的诊断。三类故障单 die 天然做不到独立诊断:

  • 电源失效:MCU 核电源塌了,MCU 连同它片内的电压监控一起失效——"监控者"和"被监控者"同生共死,诊断覆盖率(DC)≈ 0。
  • 时钟失效:片内时钟停/漂,基于同一时钟计时的片内看门狗也停,发现不了自己不走了。
  • 共因失效(CCF):局部过热、电源反弹、时钟谐振、单粒子事件可同时命中 lockstep 的主核和检查核,让"比较两路"的机制误判为一致。ISO 26262-9 专门要求做相关失效(dependent failure)分析,CCF 是其中最难压的一类。

因果结论:要覆盖上述三类,诊断电路必须坐在另一个 die、另一个电源域、另一个时钟域上——这就是"安全 SBC"。它给 MCU 供电,又反过来监控 MCU 是否活着、供电是否正常,并保留一条不经过 MCU 的关断路径。MCU 与 SBC 互为对方的独立监测通道,合起来消灭单点。这是"MCU+SBC 配对"这一量产模式的第一性原理来源,不是习惯。

2. 安全分区:两条独立通道各管什么

有了 §1 的约束,ASIL D 系统就分成两条相互独立、相互监测的通道,分区原则是"谁监控谁必须在不同域"。下表把职责与所在域摊开,后面 §3/§4 分别把两侧的机制讲透。

通道典型器件覆盖的故障类独立性来源
计算通道(MCU)S32K344 / MPC5744P(lockstep Cortex-M7 / e200)计算错误、总线/内存翻转、指令流跑飞片内空间+时间冗余(lockstep)
监测通道(SBC)FS26 / MC33907/08供电失效、时钟失效、MCU 死机/跑飞、SBC 自身潜伏故障独立 die / 独立电源 / 独立带隙基准 / 独立振荡器

关键判断点:两条通道的独立性不能只停在"两颗芯片"层面,还要一路下沉到电源、时钟、基准。FS26 的 fail-safe 逻辑块自带独立稳压器、独立带隙基准、独立振荡器,和它自己管电源的 main 逻辑块最大程度隔离——这样即便 SBC 主体电路出问题,监测逻辑仍独立判决。物理布局上专门划隔离区,防芯片局部扰动同时打击"监测"与"被监测"。这一层隔离做不到位,系统级 FMEDA 里 CCF 项会把 SPFM 直接拖下 99%。

3. 计算通道(MCU 端):lockstep 把计算错误变成可检测

MCU 侧的目标只有一个:让"算错了"这件事变成一个可被硬件抓到、可上报的离散事件,而不是悄悄输出错结果。现代 ASIL D MCU 用四层机制叠加做到,下面用 S32K344(delayed lockstep Cortex-M7)与经典 MPC5744P(e200z4 Sphere of Replication)两颗真件对照讲。

3.1 Delayed lockstep + RCCU 冗余比较

lockstep 的物理招式是空间冗余 + 时间冗余并用。两个物理核跑同一指令流,但影子核(checker)的输入被延迟若干时钟周期(S32K3 为几个周期、量级 2;MPC5744P 的 SoR 同理延一拍),主核输出再延同样周期对齐,送进 **RCCU(Redundancy Control and Checker Unit)**逐周期比较地址/数据/控制信号。延迟这一拍是关键:它让一个瞬态(如单粒子)命中"当前那一拍"时只影响其中一路,比较即不一致而暴露,而不是两路同时中招被掩盖——这是压制 CCF 的核心手段。任一不一致 RCCU 立即报 FCCU。

被复制的不止 CPU 核,还有中断控制器、总线 crossbar、MPU、L1 内存控制器等——整条执行路径冗余,而不是只冗余 ALU。这是 SPFM ≥ 99% 对"计算子系统"那部分覆盖率的物理基础。

3.2 ECC 覆盖所有 SRAM / Flash

片上 SRAM 和 Flash 全程带 ECC(典型 SECDED:single-error-correct / double-error-detect)。单 bit 翻转自动纠错,双 bit 翻转纠不了但能检出,报异常给 FCCU。它处理的是宇宙射线等造成的 SEU(single event upset)——在汽车 FIT 预算里非可忽略,且属于会累积成潜伏故障的类型,ECC 的检出正是 LFM ≥ 90% 的一块贡献。

3.3 FCCU:片上故障收集与控制枢纽

FCCU(Fault Collection and Control Unit)是片内集中故障枢纽,所有硬件模块的错误信号(RCCU 不一致、ECC 双错、CMU 时钟告警、片内看门狗、软件报告的故障等)都汇进来。FCCU 的价值在于它即使 CPU 已经跑飞也能独立上报(独立于 CPU 的故障上报机制)。它可编程决定每类故障的反应:

  • 仅记录(诊断,事后读)
  • 触发中断(交软件在运行时处理)
  • 直接驱动片外 error 输出引脚(通知外部 SBC)

工程要点:FCCU 的 error 输出必须接到 SBC 的 error 输入引脚,这条链路把"MCU 觉得自己出错了"传给"系统级 fail-safe 控制者"。断了它,MCU 的自检结果就下不了片,SBC 也就无从据此拽系统进安全态。

3.4 CMU 时钟监控 + 寄存器保护

CMU(Clock Monitor Unit)监控主时钟频率并检测 PLL 失锁,晶振失效时切到内部 RC 备用并报 FCCU;寄存器保护对关键安全寄存器要求先解锁再写,防跑飞代码意外改写配置。两者单看不起眼,但在 FMEDA 里各贡献 SPFM 几个百分点,且时钟监控是"片内时钟这一 CCF 敏感点"的一层内部防线(外层还有 SBC 的独立振荡器兜底,见 §4)。

4. 监测通道(SBC 端):FS26 做对的事

SBC 侧要同时干两件事——给整个 ECU 供电,又在独立域上监控 MCU 与供电本身,故障时主动把系统拽进安全态。下面用 NXP FS26(与其同族的 FS84/FS85C 共用同一 fail-safe 安全 IP)把机制逐条讲清,数值锚 FS84/FS85C 数据手册 Rev.6。

4.1 电源:一个前级 buck 喂后级,核轨单独 buck

FS26 的电源拓扑是"前级中间总线 + 后级细分",目的是把 LDO 的耗散压下去。各轨如下(FS26 产品页 / AN14492):

输出类型电压电流用途
VPRE同步 buck(集成 FET)可配中间总线至 1.5 A前置总线,喂后级 LDO,降 LDO 耗散
VCORE同步 buck(集成 FET)可配核压0.8 A 或 1.65 A(按型号)MCU 核电源(如 S32K344 内核)
VBST异步 boost 控制器(外部低侧管)可配可扩冷启动 low-crank 前级 / 后级升压
LDO1LDO3.3 / 5.0 VMCU I/O 供电
LDO2LDO3.3 / 5.0 V系统外设 / 传感器供电

判断点:VCORE 是核轨、动态最狠,单独 buck 而非 LDO;VPRE 先把电池 12/24 V 降到一条 5 V 级中间总线,LDO1/LDO2 从这条总线落到 3.3/5 V,LDO 上的压差和耗散因此小得多。每一条对 MCU 关键的轨都进 §4.3 的 VMON 监控。

4.2 Challenger 窗口看门狗:窗口 + 问答双重覆盖

看门狗不是"周期喂就行"。FS26/FS85 用**窗口 + 问答(challenger)**双重机制,覆盖的失效模式远多于简单脉冲喂狗(机制细节锚 FS84/FS85C DS Rev.6 §32.4):

  • 窗口:一个看门狗周期分前半 CLOSED、后半 OPEN。只有在 OPEN 窗口内给出正确答案才算一次 good refresh;在 CLOSED 窗口喂、OPEN 窗口没喂、或答案错,都算 bad refresh。这样 MCU 喂早了也报错——纯脉冲狗只能发现"不喂",发现不了"喂太快"(定时器跑飞变快)。
  • 问答(challenger):SBC 内一个 16-bit LFSR(线性反馈移位寄存器,默认种子 0x5AB2)生成伪随机"问题",MCU 读出后做一次预定运算,把答案经 SPI 写回,SBC 校验。答对则窗口重启并生成新 LFSR,答错则 WD 错误计数器 +2 且 LFSR 不变。运算式(FS84/FS85C DS Rev.6 图 46):
answer = NOT( ( (seed × 4) + 6 ) − 4 ) / 4      # 在 16-bit 字段上运算

这个"算一道题"覆盖了简单脉冲狗抓不到的一大类:MCU 跑飞但定时器还在——它能按时喂,却算不出正确答案,于是照样触发。SPI 总线异常则"答非所问",也触发。

覆盖的失效模式对照:

MCU 失效模式简单脉冲狗Challenger 窗口狗
完全死机(stuck-at,不喂)抓到(超时)抓到(OPEN 窗口无 refresh)
定时器跑飞变快(喂太勤)抓不到抓到(CLOSED 窗口喂 = bad)
跑飞但仍能定时喂抓不到抓到(答案算错)
SPI 链路异常抓不到抓到(答非所问)

4.3 电压监控 VMON:UV/OV 阈值 + 去毛刺时间

FS26 用 VMON1–4 + VCOREMON + VDDIO 监控多条外部轨的过压/欠压。阈值和去毛刺时间可配(锚 FS84/FS85C DS Rev.6:VCOREMON 门限 §、去毛刺 OTP_CFG_DGLT 表):

  • 门限:OV 可配 +4.5% 到 +12%(步进 0.5%),UV 可配 −4.5% 到 −12%,门限精度 ±2%。
  • 去毛刺时间(deglitch):UV 可配 5 / 15 / 25 / 40 µs,OV 可配 25 / 45 µs——这个时间直接进 §7 的电压故障检测延迟预算。
  • VSUP 欠压:VSUP_UV7 门限约 7.2–7.8 V,滤波时间 6–15 µs;电池掉到这里下面走扩展/降级路径。

因果:去毛刺时间是"抗瞬态误触发"与"检测快"之间的旋钮。设太短,LC 纹波/负载阶跃的正常瞬态会误判 UV 触发安全态(误停);设太长,真欠压反应变慢、吃掉 FTTI 预算。核轨用较短(如 5–15 µs),对噪声轨适当放宽。

4.4 三级安全输出 PGOOD / RSTB / FS0B + 故障错误计数器

FS26 有严格分级的安全输出,优先级 1-PGOOD → 2-RSTB → 3-FS0B(FS84/FS85C DS Rev.6 §32),对应"从软到硬"的反应梯度:

  • PGOOD:电源就绪指示,最软。
  • RSTB:复位 MCU,把 MCU 拽回安全初始态(中等)。
  • FS0B:控制系统外部 fail-safe 电路——切电机驱动使能、断高压继电器、亮告警灯。这是把"系统"带进安全态,不只是复位 MCU(最硬)。

多少个故障才升级到拉 FS0B,由故障错误计数器 FLT_ERR_CNT 管(FS84/FS85C DS Rev.6 §32.8.1):POR 后从 1 起,最大值可配 2 / 6 / 8 / 12(默认 6),对应的中间值为 1 / 3 / 4 / 6。到中间值触发 FS0B(或 RSTB 脉冲,由 FLT_ERR_IMPACT 配),到最终值进 DEEP-FS(深度失效安全,芯片自身进最低活性)。计数器靠"连续若干次 good WD refresh"往下减——这套"计数+滞回"是为了滤掉单次瞬态、只对持续故障升级,避免一个抖动就误停整车。

4.5 ABIST / LBIST:监控自己的监控(打潜伏故障)

监测通道本身也会坏,而且这类故障常是潜伏的(latent)——平时不显,等真故障来了才发现监控早已失效,直接违反安全目标。这正是 LFM ≥ 90% 要覆盖的。FS26/FS85 用上电自检打这一类:

  • LBIST(logic BIST):上电时先跑逻辑自检,校验 fail-safe 状态机数字逻辑;伴随一个 8 s 的 RSTB 监控定时器。
  • ABIST1(analog BIST):在释放 FS0B 之前跑,校验各轨的 UV/OV 监控通路本身是否工作;ABIST1 失败不阻止 RSTB/PGOOD 释放,但保持 FS0B 拉低且故障计数器 +1——即"监控坏了就不许离开安全态"。
  • ABIST2:INIT 之后再校验一批轨。LBIST/ABIST 任一失败都阻止 FS0B 释放

因果:这三个自检在**每次上电(key-on)**跑一遍,把"监控通路的潜伏故障"的暴露间隔压到一个驾驶循环以内(即 §7 的 MPFDTI),这是 LFM 达标的主力。

5. MCU + SBC 物理接口:4 条线全对才算 ASIL D

ASIL D 配对的关键不是单独 MCU 或 SBC 多强,而是两者之间这几条接口全部正确连接——这是新手最容易做错、也最白白浪费方案价值的地方。

MCU + SBC ASIL D 集成 — lockstep MCU 与安全 SBC 互监(Q-A 看门狗/电压监控/独立第二关断路径/error pin/ASC),消单点失效

把这几条接口放进整体视图:MCU 端做计算冗余、把自检结果经 FCCU error pin 抛出;SBC 端用 challenger 窗口狗反问 MCU、监所有电源轨,并保留一条绕开 MCU 的独立第二关断路径(FS0B)直接拽功率级进安全态。两者互监形成无单点。

接口方向语义失效后果 / 反应
SPI双向看门狗问答、配置、读 SBC 状态、读 AMUX通信失败 → SBC 收不到 good refresh → 超时 → RSTB/FS0B
FCCU error 输出MCU → SBCMCU 内部错误汇总(lockstep/ECC/CMU)SBC 的 FCCU 输入收到 → 据配置拉 FS0B 和/或 RSTB
RSTBSBC → MCU复位 MCU任何 MCU 死机被拽回初始态
FS0BSBC → 系统系统级安全态切主驱使能、断高压、亮灯报警

常见架构错误:只接 SPI + RSTB、不接 FCCU + FS0B。结果 MCU 的自检失效信息传不给 SBC,SBC 也控制不了系统外部硬件,等于把 ASIL D 的 SBC 降级成"高级 LDO + 看门狗"——花了钱却拿不到系统级安全,SPFM 上不去。另一条:FS0B 只接了亮灯没接主驱关断,同样不成立(灯亮但电机还在转,没进安全态)。

6. Challenger 窗口看门狗时序推导

看门狗窗口是整个 FTTI 预算里最慢的一条检测路径(见 §7),所以它的时序值得单独推清楚。参数与取值全锚 FS84/FS85C DS Rev.6 §32.4(FS26 共用同族 IP,窗口/计数策略相同)。

窗口周期与占空:窗口周期 WDW_PERIOD 可配 1.0 ms 到 1024 ms(离散档:1/2/3/4/6/8/12/16/24/32/64/128/256/512/1024 ms,默认 3.0 ms);占空 WDW_DC 可配 CLOSED 段 31.25% 到 68.75%(默认 50/50)。记窗口周期为 Twin、OPEN 段占比为 kopen,则每周期 MCU 必须在 CLOSED 段之后、宽度 kopen·Twin 的 OPEN 段里答对一次。

错误计数器收敛:每次 bad refresh,WD 错误计数器 +2;每次 good refresh −1。到达上限 WD_ERR_LIMIT(可配 8 / 6 / 4 / 2,默认 6)则拉 RSTB/FS0B。这套"+2/−1"设计保证周期性 OK/NOK 交替最终收敛到检出(坏的涨得比好的减得快),同时容忍偶发单次抖动。达上限所需连续 bad refresh 次数 Nbad:

Nbad = ceil( WD_ERR_LIMIT / 2 )

默认 WD_ERR_LIMIT = 6 → Nbad = 3(连续 3 次坏才拉);设为 2 → Nbad = 1(单次坏即拉,最快)。

最坏检测延迟:MCU 在一次 good refresh 后紧接着死机是最坏相位——当前窗口刚重启,要等这一整个 Twin 走完 OPEN 段无 refresh 才记一次 bad。于是覆盖"MCU 死机"这类故障的最坏检测延迟:

FDTImax(WD) ≈ Nbad × Twin + (SPI/逻辑传播,< 0.1 ms)

INIT_FS:上电初始化阶段有个 256 ms 的 INIT_FS 窗口,必须在超时前用第一次 good refresh 关闭它,否则超时会增故障计数并重开——这条约束定了启动期看门狗第一次喂的时限。

7. 端到端 worked design:S32K344 + FS26 的 FTTI 预算

把上面所有机制拉进一条时间轴,回答 ASIL D 系统设计的核心问题:从故障发生到系统进入安全态,总时间必须 ≤ FTTI。这一节走一遍真实预算,并给出一个"默认配置撞不进 FTTI"的反例——这正是 datasheet 有没有读进去的分水岭。

FTTI 是什么:Fault Tolerant Time Interval,故障容错时间间隔,是从故障发生若不干预就会发生危害的时间窗,由整车 HARA(危害分析与风险评估)导出,是系统级输入、不是芯片参数。ISO 26262 把它拆成两段,要求:

FDTI (故障检测时间) + FRTI (故障反应时间) ≤ FTTI

worked 场景(假设,取一个 EPS/电驱类的代表值):三相电机驱动,ASIL D,安全目标"避免非预期扭矩",经 HARA 定 FTTI = 10 ms;安全态 = 关断逆变器栅极驱动使能(coast/freewheel)。MCU = S32K344(delayed lockstep Cortex-M7),SBC = FS26。安全态由 FS0B 直接驱动栅驱的使能(secondary path),不经 MCU。

各故障类的检测→反应路径(把 §3/§4 机制填进预算):

故障类覆盖机制FDTI(检测)FRTI(反应)备注
lockstep 计算错RCCU→FCCU→SBC FCCU pin→FS0B逐周期比较,~µsFS0B→栅驱关,~µs最快
SRAM/Flash 双 bitECC→FCCU→FS0B访问即检,~µs~µs
时钟失效CMU→FCCU→FS0B / SBC 独立振荡器~µs–数十 µs~µs
VCORE 欠压FS26 VMONdeglitch 5–40 µsFS0B→栅驱,~µs§4.3
MCU 死机/跑飞FS26 challenger 窗口狗Nbad × Twin(ms 级)FS0B→栅驱,~µs最慢,定预算
SBC 监控潜伏坏ABIST/LBIST(上电)≤ 一个驾驶循环(MPFDTI)不释放 FS0B打 LFM

关键洞察:硬件类故障(lockstep/ECC/CMU/VMON)检测都在 µs 级,远快于 FTTI;看门狗路径是 ms 级、独占 FTTI 预算。所以设计动作就是选 Twin 和 WD_ERR_LIMIT 让看门狗路径塞进 FTTI 且留裕度

预算算例(达标配置):取 Twin = 4 ms、WD_ERR_LIMIT = 2(Nbad = 1,单次坏即拉),FS0B 反应含内部传播 + 外部栅驱关断路径保守取 0.5 ms:

FDTImax(WD) ≈ 1 × 4 ms + 0.1 ms ≈ 4.1 ms
FRTI        ≈ 0.5 ms
合计        ≈ 4.6 ms  <  FTTI = 10 ms   ✓(裕度 ~5.4 ms)

反例(默认配置撞线):若沿用默认 WD_ERR_LIMIT = 6(Nbad = 3)且 Twin = 4 ms:

FDTImax(WD) ≈ 3 × 4 ms = 12 ms
合计        ≈ 12.5 ms  >  FTTI = 10 ms   ✗(超预算 2.5 ms)

默认看门狗配置直接违反 10 ms FTTI——必须缩短 Twin(如 2 ms → 3×2+0.5 = 6.5 ms ✓)或把 WD_ERR_LIMIT 降到 2。这就是为什么 challenger 狗的 Twin 与错误上限不能拿默认值交差,得从 FTTI 反推。缩 Twin 的代价是 MCU 喂狗更频繁(占 CPU、SPI 带宽),降 WD_ERR_LIMIT 的代价是对瞬态更敏感(误停风险),两者要在"够快"和"别误触"之间折中。

潜伏故障那条独立预算(MPFDTI):上面 FTTI 只管单点故障的检测反应。监测通道自身的潜伏故障走另一条时间约束——多点故障检测时间间隔 MPFDTI,通常要求 ≤ 一个驾驶循环。FS26 靠每次上电跑 LBIST + ABIST把这条填满:key-on 自检覆盖"监控通路本身是否还活着",不达标就不释放 FS0B。这是 LFM ≥ 90% 的主力,和 FTTI 是两套独立的时间预算,别混。

8. 设计陷阱(实战 checklist)

前面机制都对,真实项目翻车往往在这几处"看着连上了、其实没进安全态"的地方——逐条对照。

  • FS0B 必须接到真正的关断执行器,不能只接告警灯:FS0B 亮灯但没切栅驱使能 = 灯亮车照跑,没进安全态,ASIL D 不成立。
  • FCCU error pin 必须真接进 SBC 的 FCCU 输入并配对极性(bi-stable/时间协议):只接 SPI+RSTB 会让 MCU 自检失效传不下片。
  • 看门狗 Twin/WD_ERR_LIMIT 从 FTTI 反推,别用默认:默认 6 档 × 默认窗口很容易超 10 ms 级 FTTI(见 §7 反例)。
  • VMON 去毛刺时间要按轨分级:核轨设短(快),噪声轨放宽(抗误触);一刀切要么误停要么反应慢。
  • INIT_FS 256 ms 内必须首次 good refresh:启动期 MCU boot + 自举太慢会 INIT 超时,进不了 normal 模式(NXP 社区高频问题)。
  • 调试模式会关掉看门狗判决:debug 下 WD 窗口全开、FS0B 不释放,别把"调试能跑"当"安全机制在工作"——量产件 debug 脚必须接 GND。
  • 别让 RSTB 复位环把整车拖进复位循环:MCU 反复 boot 失败 → 反复 RSTB → 需配置在故障计数到最终值时进 DEEP-FS,而不是无限重启。
  • SBC 供电轨要进自己的 VMON:VCORE/VDDIO 都要被监控,漏掉一条就有未覆盖的单点。

9. 工作极限与权衡(corner)

worked design 给的是标称配置;真投产要守住这些边界与折中,它们决定安全论证(safety case)站不站得住。

  • 看门狗窗口:快 vs 误触:Twin 越短、WD_ERR_LIMIT 越低,FTTI 裕度越大,但 MCU 喂狗开销和瞬态误停风险越高。甜点是"塞进 FTTI 且留 ~30%–50% 裕度"的最长窗口。
  • VMON 去毛刺:抗噪 vs 反应:去毛刺 5 µs 抗噪弱但快,40 µs 稳但吃预算;跟随该轨的实际纹波/瞬态谱定。
  • 故障计数滞回:抗瞬态 vs 升级慢:计数上限高滤瞬态好,但真持续故障升级到 FS0B 慢;安全相关轨倾向低上限。
  • 独立性的边界:SBC 给 MCU 供电,这本身是一条依赖——VPRE/VCORE 失效会同时影响 MCU 和(若设计不当)监测逻辑。FS26 用 fail-safe 块的独立稳压/基准/振荡器切断这条依赖,但布局/去耦做砸会把独立性打回原形,FMEDA 的 CCF 项即现形。
  • ASIL 分解 vs 单件 ASIL D:也可用两个 ASIL B(D) 冗余通道做分解,但 MCU+SBC 这种"一强算力 + 一独立监测"是量产最省的分区;纯双 MCU 冗余成本更高,多用于线控/自动驾驶更高完整性场景。
  • AMUX 反向校验:MCU 可经 SBC 内模拟 MUX(SPI 选通)读 SBC 的内部基准/温度反向校验 SBC 健康——这是"被监控者也监控监控者"的补充诊断,别浪费这条通道。

10. FMEDA 量化核算:C(D)+A(D) 分解架构 PMHF 预算

本节把 §1–§5 的机制分区拉进 ISO 26262-5:2018 Annex B 的 PMHF 公式,给出 S32K344(ASIL C(D))+ FS26(ASIL A(D)) C(D)+A(D) 分解架构的量化核算。器件失效率取 NXP S32K3/FS26 器件类的代表性量级——精确值须以订到的 NXP Safety Manual(NDA)版本为准;方法与 ISO 26262-9 DFA worked design §5 一致。

C(D)+A(D) 分解声明(ISO 26262-9 §5.4.9,序数 3+1=4,合法):

分支器件分解 ASIL主要安全机制
Channel 1(主控)S32K344(lockstep Cortex-M7)ASIL C(D)delayed lockstep + RCCU + ECC + FCCU 四层
Channel 2(独立监控)FS26(challenger WD + VMON)ASIL A(D)Q&A 窗口狗 + VMON UV/OV + ABIST/LBIST

器件参数(代表性量级,方法可复核):

参数S32K344 ASIL C(D)FS26 ASIL A(D)
(安全相关总失效率)100 FIT40 FIT
DCspf(单点故障诊断覆盖率)99%(lockstep 四层组合)90%(ABIST + VMON + Q&A WD)
DClfm(潜伏故障诊断覆盖率)60%(周期 BIST)60%(上电 ABIST)
1.0 FIT4.0 FIT
40 FIT16 FIT

CCF β 因子(IEC 61508-6 Annex D 评分法):S32K344(数字 Cortex-M7 CMOS,40 nm 级)与 FS26(模拟 BCD 混合信号,180 nm+)工艺彻底不同、元件类别彻底不同(MCU vs SBC/PMIC)——多样性和元件类别两项拿满,落 IEC 61508-6 Annex D 中高分档,β ≈ 2%(异工艺异元件典型值;与 ISO 26262-9 DFA §5.3 TC397+TLF35584 评分结论对齐)。

PMHF 三项叠加(ISO 26262-5:2018 Annex B,目标 ASIL D < 10 FIT = ISO 26262-5 Table 6):

① 单点故障贡献:S32K344 lockstep 残余 = 1.0 FIT;FS26 独立监控对此兜底,覆盖率 ≈ 90%(工程近似:取 1 − λSPF,FS26/λD,FS26 = 1 − 4/40;严格做法须逐失效模式核 FS26 实际检测率,与 ISO 26262-9 §5.4 方法对齐):

② 潜伏故障对贡献(周期诊断间隔 TD = 1000 h,对应年检循环):

③ CCF 贡献:

关键发现:CCF 贡献占 89%,与 TC397+TLF35584 同架构(见 ISO 26262-9 §5.4)计算结论一致。降低 β(异工艺/异元件)比提高单通道 DCspf 的工程回报高一个数量级——ASIL D 配对选型的第一指标是工艺/元件类别多样性。若改为同类 CMOS MCU 做监控通道(β ≈ 5%),PMHF 升至 2.1 FIT(仍 PASS 但裕度从 11× 降至 4.8×)。

核心要点

  • ASIL D 是系统级目标:ISO 26262-5 要 SPFM ≥ 99% / LFM ≥ 90% / PMHF < 10 FIT;单 die 无法独立自证电源/时钟/共因失效,故必须 lockstep MCU + 独立域安全 SBC 双芯片
  • MCU 端四层:delayed lockstep + RCCU(空间+时间冗余,延一拍破 CCF)/ ECC 全覆盖 / FCCU(CPU 跑飞也能独立上报)/ CMU 时钟监控
  • SBC 端(FS26/FS85 同族 IP):challenger 窗口狗(窗口抓喂太快、问答抓跑飞算错)/ VMON UV/OV(门限 ±4.5%~12%、去毛刺 5–45 µs)/ 三级输出 PGOOD→RSTB→FS0B / 故障计数器(默认 max 6、中间值触 FS0B)/ ABIST/LBIST 上电自检打潜伏故障
  • Challenger 狗时序:窗口 1–1024 ms 可配、CLOSED/OPEN 分段、bad +2 / good −1,达上限 WD_ERR_LIMIT(8/6/4/2)拉 FS0B;连续坏次数 Nbad = ceil(limit/2)
  • FTTI 预算:FDTI + FRTI ≤ FTTI(HARA 定);硬件故障 µs 级、看门狗路径 ms 级独占预算;worked 例(FTTI=10 ms):Twin=4 ms + WD_ERR_LIMIT=2 → ~4.6 ms ✓;默认 limit=6 → 12.5 ms ✗,必须从 FTTI 反推窗口/上限
  • 潜伏故障走独立预算 MPFDTI(≤ 一个驾驶循环),靠 key-on 的 ABIST/LBIST 填,是 LFM 主力,与 FTTI 不混
  • 4 条接口全对才算 ASIL D:SPI(喂狗)+ FCCU error(自检下片)+ RSTB(复位)+ FS0B(拽系统);只接 SPI+RSTB = SBC 降级成高级 LDO+看门狗,SPFM 上不去
  • FS0B 必须接真关断执行器(切栅驱使能/断高压),不能只亮灯
  • FMEDA 量化:C(D)+A(D) 分解(S32K344 ASIL C(D) + FS26 ASIL A(D));β ≈ 2%(异工艺 CMOS/BCD);PMHF = 0.9 FIT ≪ 10 FIT PASS(余量 11×);CCF 主导 89%,异工艺选型是核心杠杆

缩写表

缩写全称
ASIL DAutomotive Safety Integrity Level D(最高汽车安全完整性等级)
SPFM / LFMSingle-Point / Latent Fault Metric(单点 / 潜伏故障度量)
PMHFProbabilistic Metric for random HW Failures(随机硬件失效概率度量)
FITFailures In Time(1 FIT = 1e-9 /h)
FTTIFault Tolerant Time Interval(故障容错时间间隔)
FDTI / FRTIFault Detection / Reaction Time Interval(故障检测 / 反应时间)
MPFDTIMulti-Point Fault Detection Time Interval(多点故障检测间隔)
CCFCommon Cause Failure(共因失效)
SBCSystem Basis Chip(系统基础芯片 / 伴随 IC)
lockstep双核锁步冗余(delayed = 延迟锁步)
RCCURedundancy Control and Checker Unit(冗余比较单元)
FCCUFault Collection and Control Unit(故障收集与控制单元)
CMUClock Monitor Unit(时钟监控单元)
ECC / SECDEDError Correcting Code / Single-Error-Correct Double-Error-Detect
VMONVoltage Monitor(电压监控)
ABIST / LBISTAnalog / Logic Built-In Self-Test(模拟 / 逻辑内建自检)
FS0B / RSTB / PGOODFail-Safe 输出 / 复位 / 电源就绪(SBC 三级安全输出)
LFSRLinear Feedback Shift Register(线性反馈移位寄存器)
HARAHazard Analysis and Risk Assessment(危害分析与风险评估)
DEEP-FSDeep Fail-Safe(深度失效安全态)

Cross-references