MPC5744P + MC33907/08 集成 — ASIL D 完整 case study
本质与导读
本质 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)
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 → MCU | 4 路供电 |
| RSTb → RESET_B | SBC → MCU | reset 触发 |
| INTb → NMI | SBC → MCU | 中断告警 |
| FCCU_F[0]/F[1] → IO_2/IO_3 | MCU → SBC | 错误反馈 |
| SPI(4 线) | MCU ↔ SBC | 配置 + WD refresh |
| FS0b | SBC → 外部 | fail-safe 切电源 |
2. 3 个 Ground 分离 — PGND / QGND / AGND
ASIL D ECU 板上有 SMPS 高瞬态切换(MC33907 内置 2.4 MHz buck + 外部 buck-boost)+ 数字 IO + 12-bit ADC 模拟测量 —— 三种信号性质完全不同,必须物理 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 之间的"血管",必须连得精确(电阻值 + 电容值 + 上下拉方向)。
3.1 5 个信号的连接细节
FCCU 双线 + RSTb + SPI 反馈 + Watchdog refresh = 5 根线,每根的上拉 / 下拉方向 / 滤波 cap都不能错,否则 stuck-at fault 漏检直接挂 DC 指标:
| 信号 | 方向 | 上拉/下拉 | 滤波 | 用途 |
|---|---|---|---|---|
| FCCU_F[0] → IO_2 | MCU → SBC | 5.1 kΩ ↑ to VDDIO | — | 正常态 = 0(bi-stable F[0]) |
| FCCU_F[1] → IO_3 | MCU → SBC | 5.1 kΩ ↓ to GND | — | 正常态 = 1(F[0] 反相) |
| INTb → NMI | SBC → MCU | 内部 | — | 中断告警 |
| RSTb → RESET_B | SBC → MCU | 5.1 kΩ ↑ + 1 nF | 1 nF C | 防 ringing,慢 rise |
| FS0b → fail-safe | SBC → 外部 | 10 kΩ ↑ to VSUP3 + 10 nF | 10 nF C | open-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。
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 对照:
| 名称 | 类型 | 电压 | 电流 | 用途 |
|---|---|---|---|---|
| Vpre | buck-boost SMPS | 6.0-7.0 V | 2 A | 中间总线 |
| Vcore | buck 2.4 MHz | 1.2 / 3.3 V | 0.8 / 1.5 A | MCU 核 |
| Vcca | linear (int / ext PNP) | 3.3 / 5 V | 100 / 300 mA | MCU IO + ADC |
| Vaux | linear ext PNP | 3.3 / 5 V | 300 mA | sensor 供电 |
| Vcan | linear | 5 V | 100 mA | CAN 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 / Vaux | SELECT 电阻 |
|---|---|
| 3.3 V / 3.3 V | 5.1 kΩ |
| 5.0 V / 5.0 V | 12 kΩ |
| 3.3 V / 5.0 V | 24 kΩ |
| 5.0 V / 3.3 V | 51 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 ms | MCU boot 时间 |
| Vcore PNP ballast | NJD2873 | 提电流到 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。
- MPC5744P 的 Sphere of Replication 包括哪些子系统?
- MC33907 FSM 为什么有独立 bandgap 和 oscillator?
- 5 路 voltage regulator 各负责什么?Vpre 为什么是 buck-boost?
- 3 个 ground 域分别是哪些?在哪汇合?
- FCCU bi-stable 如何检测 stuck-at fault?正常态值是?
- RESET_B 和 FS0b 的电阻/cap 值各是多少?为什么 FS0b 慢?
- WD Error Counter +2/-1 不对称设计的理由?
- Reset Error Counter 到 3 和到 6 各触发什么?
- INIT 阶段 WD window 多大?为什么要这么大?
- Functional Reset 与 Destructive Reset 的升级关系?
Engineering Objects
引用此页的结构化 Engineeri…
引用此页的结构化 Engineering Object(v2.0 Copilot 自动生成,不要手动编辑此段)。
- mechanism ·
mechanism_lockstep_mcu— Lockstep MCU(双核硬件锁步)
Cross-references
- ← 索引
- topic-functional-safety — 总框架
- topic-mcu-sbc-asil-d-integration — 通用 MCU + SBC 集成(本页是其 case study)
- topic-sbc-mc33907-design — MC33907 SBC 硬件单独深入
- topic-e-gas-architecture — 3 层监控架构(本 ECU 的逻辑层)
- topic-voting-redundancy — lockstep 与 1oo2D(本 MCU 内部冗余基础)
- topic-iso26262-part5-hardware — Part 5 HW + SPFM / LFM / PMHF
- topic-asil-decomposition — ASIL D = B+B 在本 case 的应用
- topic-safety-mechanism-catalog — 各级 SM 在本 ECU 的对应
- topic-automotive-mcu — AURIX / S32K3 等其他 ASIL D MCU