MPC5744P + MC33907/08 集成 — ASIL D 完整 case study

功能安全L4别名 MPC5744P · MC33907 · MC33908 · MCU SBC integration · ASIL D 集成 · PwrSBC · SafeAssure · lockstep MCU · Sphere of Replication · SoR · FCCU bi-stable · Q&A windowed watchdog · Reset Error Counter · WD Error Counter · Reset Escalation · AN5099 · Tomas Kulig相关[[topic-e-gas-architecture]][[topic-voting-redundancy]][[topic-asil-decomposition]][[topic-safety-mechanism-catalog]][[topic-automotive-mcu]]

本质与导读

本质 NXP AN5099 把 ASIL D MCU(MPC5744P lockstep)和 ASIL D SBC(MC33907/08)集成进量产 ECU 的价值不在 ISO 26262 流程,而在那些决定能否上电、能否安全 reset 的真实 PCB 细节:电源 ramp 时序、PGND/QGND/AGND 三地分离、FCCU/INTb/RSTb/FS0b 错误信号的电阻滤波连接,以及把故障收敛进 Fail Safe 的 state machine 与 Reset Escalation。

核心要点

  • MPC5744P = PowerPC e200z425n3 dual-issue lockstep core(Sphere of Replication)+ RCCU + ECC + MPU
  • MC33907/08 = PMIC(5 路电源)+ CAN/LIN phy + Q&A WD + FSM(独立 bandgap + oscillator)
  • 5 路 voltage regulator:Vpre(buck-boost SMPS 2A,6-7V)/ Vcore(buck 2.4 MHz,1.2-3.3V)/ Vcca/Vaux(linear ext PNP 300mA)/ Vcan(5V linear 100mA)
  • 3 个 ground 分离:PGND(SMPS 高瞬态)/ QGND(其他)/ AGND(ADC reference),Vbat 端单点汇合
  • 5 个错误信号:FCCU_F[0]/F[1] bi-stable 防 stuck-at + INTb(→ NMI)+ RSTb(→ RESET_B)+ FS0b(→ 外部 fail-safe switch)
  • WD Error Counter:0-6,RNOK +2 / ROK -1,到 6 → reset
  • Reset Error Counter:0-6,任何 reset +1 / 7×ROK -1,到 3 → FS0b,到 6 → Deep Fail
  • Reset Escalation:Functional Reset + Destructive Reset 软件可配
  • 符合 ISO 26262 ASIL D 3 个 Safety Requirement:SAG_MPC5744P_041(WD)/042(power monitor)/043(FCCU monitor)

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

1. 系统总览

ASIL D 完整集成需要 MCU 内部冗余(防 random failure)+ SBC 外部异构监控(防 systematic failure),两者协同。

系统总览

1.1 MPC5744P 内部架构(MCU 侧)

PowerPC e200z425n3 是 dual-issue lockstep core:

  • Sphere of Replication(SoR) — 完整冗余,包括 CPU / DMA / Interrupt Controller / Crossbar / MPU / Flash & RAM 控制器 / System Timer / Watchdog Timer / Register Protection
  • RCCU(Redundancy Control and Checker Unit) — 每个 SoR 输出端比较两路结果
  • ECC — Flash + RAM 单错纠正双错检测
  • FCCU(Fault Collection and Control Unit) — 内部错误集中 + 外部 F[0]/F[1] 输出

LV/HV monitor 仅监测 1.2V core 和 3.3V supplies 的欠压(LVD),但 HVD 不存在于 3.3V 域 —— 必须外部 SBC 监测 3.3V 过压,这是 SAG_MPC5744P_042 的根源。

1.2 MC33907/08 内部架构(SBC 侧)

5 大子系统:

  • Voltage regulators — 5 路独立(Vpre/Vcore/Vcca/Vaux/Vcan)
  • Fail Safe Machine(FSM) — VS(Voltage Supervisor)+ FSSM(Fail Safe State Machine)+ FSO(Fail Safe Output)
  • Q&A windowed watchdog — LFSR 8-bit seed + 1/2/3/4/8/16/.../1024 ms 可选 window
  • CAN/LIN phy — ISO 11898-2/-5 + LIN 1.3-2.2
  • Analog Mux + SPI Slave — 配置 + 监控

FSM 是 SBC 内独立子系统,有自己的 bandgap reference 和 oscillator,物理 layout 也尽量与其他电路隔离 —— 防 common cause failure。

1.3 5 大信号桥

MPC5744P 和 MC33907 之间一共 5 类信号桥——4 路电源 + reset + error 反馈 + 双向 SPI + watchdog,缺一条都让 SBC 监控失效:

信号方向用途
Power(Vcore/Vcca/Vaux 等)SBC → MCU4 路供电
RSTb → RESET_BSBC → MCUreset 触发
INTb → NMISBC → MCU中断告警
FCCU_F[0]/F[1] → IO_2/IO_3MCU → SBC错误反馈
SPI(4 线)MCU ↔ SBC配置 + WD refresh
FS0bSBC → 外部fail-safe 切电源

2. 3 个 Ground 分离 — PGND / QGND / AGND

ASIL D ECU 板上有 SMPS 高瞬态切换(MC33907 内置 2.4 MHz buck + 外部 buck-boost)+ 数字 IO + 12-bit ADC 模拟测量 —— 三种信号性质完全不同,必须物理 ground 分离

3 个 Ground 分离

2.1 三个 Ground 域

PCB 上 3 个 Ground 域必须逻辑分离 + 单点 star 汇合——把 SMPS 瞬态噪声、数字信号回流、ADC reference 三路隔开,否则 ADC 抖 LSB 直接挂误码:

  • Power GND(PGND) — SMPS 高瞬态电流环路 + MC33907 DGND + MPC5744P DGND
  • Quiet GND(QGND) — MC33907 AGND + GND_COM + 其他不参与 SMPS 的器件
  • Analog GND(AGND) — MPC5744P VSS_HV_ADREx(ADC reference)

2.2 单点汇合规则

PGND ↔ QGND ↔ AGND 必须在 Vbat 输入端单点汇合,理由:

  • SMPS 切换在 PGND 上产生数 mV pp ripple
  • 如果 PGND 与 QGND 在 MC33907 IC 处汇合,噪声会通过 GND 传到 analog
  • Vbat 端汇合让噪声电流走最短路径回 SMPS,不流经 sensitive analog
  • AGND 通过 ferrite + cap(700 Ω @ 100 MHz)与 QGND 隔离,防数字噪声进 ADC

2.3 实测影响

不做 ground 分离的典型后果:

  • ADC 1-2 LSB 抖动(12-bit ADC,1 LSB ≈ 0.8 mV @ 3.3V ref)
  • LIN/CAN 收发错误率上升
  • FS0B 误触发(SMPS 启动瞬间)

3. Error Management 完整连接

5 个错误信号是 MCU + SBC 之间的"血管",必须连得精确(电阻值 + 电容值 + 上下拉方向)。

Error Management 连接

3.1 5 个信号的连接细节

FCCU 双线 + RSTb + SPI 反馈 + Watchdog refresh = 5 根线,每根的上拉 / 下拉方向 / 滤波 cap都不能错,否则 stuck-at fault 漏检直接挂 DC 指标:

信号方向上拉/下拉滤波用途
FCCU_F[0] → IO_2MCU → SBC5.1 kΩ ↑ to VDDIO正常态 = 0(bi-stable F[0])
FCCU_F[1] → IO_3MCU → SBC5.1 kΩ ↓ to GND正常态 = 1(F[0] 反相)
INTb → NMISBC → MCU内部中断告警
RSTb → RESET_BSBC → MCU5.1 kΩ ↑ + 1 nF1 nF C防 ringing,慢 rise
FS0b → fail-safeSBC → 外部10 kΩ ↑ to VSUP3 + 10 nF10 nF Copen-drain,慢响应防假触发

3.2 FCCU bi-stable 协议

F[0] = 反相 F[1] —— 任何时候两线状态必须互补:

  • 正常态:F[0] = 0,F[1] = 1
  • 自检 / reset:F[0:1] = high-impedance(被电阻拉到默认)
  • 故障态:F[0:1] = 10(F[0] = 1,F[1] = 0)

stuck-at fault 检测:如果两线同电平(00 或 11),SBC 检测为 fault → INCR Reset Error Counter。

3.3 FS0b open-drain + 慢滤波

FS0b 是 open-drain,默认 VSUP3 上拉(10 kΩ + 10 nF)。10 nF 比 1 nF 大 10×,理由:

  • FS0b 触发后慢启动外部 fail-safe switch(切关键负载电源)
  • 防止 SMPS 启动瞬间的 noise 误触发
  • 慢响应可接受:ASIL D safe state 不需要 μs 级响应,ms 级足够

4. 3 个 State Machine — Error Counter 渐进响应

SBC 不直接 reset MCU,而是用 3 个嵌套 counter 实现渐进响应,避免误关键 ECU。

Error Counter State Machine

4.1 WD Error Counter — 单 cycle 错答(0-6)

每个 WD refresh 周期:

  • RNOK(refresh not OK) → +2(快速恶化)
  • ROK(refresh OK) → -1(慢速康复)
  • 到 6 → 触发 RESET(Reset Error Counter +1)

不对称的 +2/-1 设计避免间歇性 noise 反复 +1/-1 不收敛。要从满状态(5)恢复到 0,需要 5 次连续 ROK,而 3 次 RNOK 即触发 reset。

4.2 Reset Error Counter — 多次 reset 累积(0-6)

不是每次 reset 都立即关电源,而是 0-6 计数:

  • 任何触发(11 种 fault)→ +1
  • 连续 7 次 WD ROK → -1
  • 到 3 → FS0b assert(外部 fail-safe 关键电源关)
  • 到 6 → Deep Fail Mode(所有 regulator 关,需 key off/on 才能唤醒)

这是 "graceful degradation" 设计 —— 偶发故障(单粒子翻转 / EMI 干扰)被 counter 吸收,持续故障才升级。

4.3 11 种触发 Reset Error Counter 的故障

硬件错(5 种):

  • RSTb_short2hi(RSTb 短路到 Vhigh)
  • ABIST_Fail(power-on built-in self test 失败)
  • SPI_DED(SPI 双错检测)
  • IO_01/45_ERR(IO 引脚错)
  • IO23_ERR(IO_2/IO_3 错)

电压错(3 种):

  • Undervoltage(任何 regulator)
  • Overvoltage(任何 regulator)
  • FS0b_short2vdd(FS0b 异常短路)

软件错(3 种):

  • WD Error Counter == 6(单 cycle 重错)
  • WD Refresh NOK during INIT or WD timeout
  • Reset by SPI(主动 reset)/ External Reset

5. Voltage Regulator 完整设计

MC33907 提供 5 路独立电源,每路有自己的工程细节。

5.1 5 路电压一览

MC33907 一颗芯片包 5 路独立电源,电压 / 电流 / 拓扑 / 用途各不一样——MCU 核走 buck,IO 走 LDO,5V 外设走 buck-boost,Vsense 走 tracker。下表是 BOM 对照:

名称类型电压电流用途
Vprebuck-boost SMPS6.0-7.0 V2 A中间总线
Vcorebuck 2.4 MHz1.2 / 3.3 V0.8 / 1.5 AMCU 核
Vccalinear (int / ext PNP)3.3 / 5 V100 / 300 mAMCU IO + ADC
Vauxlinear ext PNP3.3 / 5 V300 mAsensor 供电
Vcanlinear5 V100 mACAN phy 专用

5.2 Vcore Ripple 估算示例

,,,,(MC33908):

Inductor 电流纹波:

输出电压超调(等效 ):

ESR 电压纹波( ESR = 20 mΩ):

实测峰峰 4.4 mV(Figure 6),与理论一致。

5.3 Vcca / Vaux 共用 PNP + SELECT 电阻配置

Vcca 和 Vaux 都用外部 PNP(BCP52-16)做 ballast 提升电流到 300 mA。电压选择通过 SELECT 引脚的电阻决定:

Vcca / VauxSELECT 电阻
3.3 V / 3.3 V5.1 kΩ
5.0 V / 5.0 V12 kΩ
3.3 V / 5.0 V24 kΩ
5.0 V / 3.3 V51 kΩ

精度要求 ±5%,使能 SBC 启动时自动检测配置。

6. Power-up Sequence

ASIL D 安全启动顺序由 SBC 内部 BIST 控制,不依赖软件。

6.1 启动时序

SBC 内部 BIST 在 power-up 阶段就接管时序,5 路 reg 不是同时上电,而是按依赖顺序串行——MCU 必须在 SBC 完成 BIST 后才被释放 reset,否则启动竞态:

0 ms:   VSUP 上升到 5.6 V (VSUP_UV_5 阈值)
        SBC 离开 PowerDown 模式
        Vpre 开始 activate
        ↓
~0.5 ms: Vcore / Vcca / Vaux 同步 ramp-up
        ABIST(Analog Built-in Self Test)运行
        ↓
~3 ms:   RESET_B de-assert(MCU 离开 reset)
        SBC 进入 INIT 阶段(256 ms 大 WD window)
        ↓
~5 ms:   MCU 配置 SBC SPI,设置 WD seed / FS pin reaction
        正常运行

6.2 INIT 阶段的容忍

INIT 阶段 SBC 允许 256 ms 大 WD window(运行时是 1-1024 ms 可选),给 MCU 充分时间 boot 起来 + 配置 SBC。

如果 MCU boot 失败,SBC 等待 INIT 超时 → Reset Error Counter +1 → 重启 MCU 至多 6 次 → Deep Fail Mode。

7. Reset Escalation — Functional + Destructive

MPC5744P 内 RGM(Reset Generation Module)实现两级 escalation,防止"软件 bug 卡在永久 reset 循环"。

7.1 Functional Reset Escalation(RGM_FRET)

写非零值到 RGM_FRET 寄存器后,N 次 functional reset 内没收到软件确认 → 升级为 destructive reset

用途:软件可以容忍前 N-1 次 functional reset(可能是间歇性 hardware glitch),但累积超过 N 次说明问题严重。

7.2 Destructive Reset Escalation(RGM_DRET)

写非零值到 RGM_DRET 寄存器后,N 次 destructive reset 后,MCU 卡在 reset 状态,直到 power-on

用途:防止永久卡死,需要 hard power-cycle(车主关 key 再开)。

7.3 与 SBC 协同

reset 不是 MCU 单方决定,SBC 也参与——MCU 卡死后 SBC 会触发 Deep Fail Mode 切全部电源,只能 hard power-cycle 唤醒。这是 ASIL D"防 RAM 死锁卡产线"的关键机制:

  • MPC5744P 卡死 reset 状态 → MC33907 检测到 RSTb 持续 low → 进入 Deep Fail Mode
  • Deep Fail Mode 下所有 regulator 关 → MPC5744P 完全断电
  • 唤醒方式:
    • Key off / on(关再开,触发 POR)
    • IO_0 transition(IO_0 = 0 → 1,通常接车 ignition key)

8. 工程 cheat-sheet

下表总结集成中最易出错的决策点。

决策推荐原因
Ground 数量3 个(PGND/QGND/AGND)SMPS noise 隔离
Ground 汇合点Vbat 输入端最短电流路径回 SMPS
FCCU 协议bi-stable F[0]=¬F[1]防 stuck-at
RESET_B 上拉5.1 kΩ + 1 nF防 ringing
FS0b 上拉10 kΩ + 10 nF慢响应防误触发
WD Window 默认3 ms(可配 1-1024)平衡响应 vs 容忍
WD Error +/-+2 / -1 不对称防 noise 反复抖动
Reset Error 升级3 → FS0b / 6 → Deep Fail渐进响应
INIT 窗口256 msMCU boot 时间
Vcore PNP ballastNJD2873提电流到 0.8/1.5 A

9. 常见误区

MPC5744P + MC33907 集成最常见 4 类设计错误,每条都会导致量产返工或 ASIL D 评级降档:

  • ❌ "PGND/QGND 用一个 GND" — SMPS 噪声进 ADC,ADC 抖 1-2 LSB
  • ❌ "RESET_B 不加滤波 cap" — ringing 导致重复 reset
  • ❌ "FCCU 单线传输" — stuck-at fault 检不出,必 bi-stable
  • ❌ "WD Window 选最小 1 ms" — 软件抖动会持续触发,选 3 ms 起
  • ❌ "每次 SBC reset 都重启关键 ECU" — Counter 设计允许 7×ROK 恢复
  • ❌ "Reset Escalation 寄存器写 0" — 永远不升级,卡死循环

10. 自检题

前 4 题考架构,5-7 考 ground / error 连接,8-10 考 state machine。

  1. MPC5744P 的 Sphere of Replication 包括哪些子系统?
  2. MC33907 FSM 为什么有独立 bandgap 和 oscillator?
  3. 5 路 voltage regulator 各负责什么?Vpre 为什么是 buck-boost?
  4. 3 个 ground 域分别是哪些?在哪汇合?
  5. FCCU bi-stable 如何检测 stuck-at fault?正常态值是?
  6. RESET_B 和 FS0b 的电阻/cap 值各是多少?为什么 FS0b 慢?
  7. WD Error Counter +2/-1 不对称设计的理由?
  8. Reset Error Counter 到 3 和到 6 各触发什么?
  9. INIT 阶段 WD window 多大?为什么要这么大?
  10. Functional Reset 与 Destructive Reset 的升级关系?

Engineering Objects

引用此页的结构化 Engineeri…

引用此页的结构化 Engineering Object(v2.0 Copilot 自动生成,不要手动编辑此段)。

  • mechanism · mechanism_lockstep_mcu — Lockstep MCU(双核硬件锁步)

Cross-references