MCU + SBC 配对实现 ASIL D:MPC5744P + MC33907/08 集成案例
本质与导读
本质 ASIL D 是系统级目标,MCU 再"安全"也扛不住电源/时钟/共因失效,所以量产路径是 MCU + SBC 双芯片配对:MCU(lockstep + ECC + FCCU)管计算冗余,SBC 管供电、windowed watchdog 与故障时主动驱动 safe state。两块独立 die / 电源域 / 时钟,用物理多样性绕开 ISO 26262 的 common cause failure——不是捷径,是 ASIL D 的必经。
1. MPC5744P:MCU 端做对的 4 件事
1.1 双核 lockstep + RCCU 检查
MPC5744P 是 e200z425n3 双发射核,采用 Sphere of Replication (SoR) 架构 ——主核和检查核同时执行同一指令流,延迟一个时钟周期(避免共因瞬态故障同时影响两核)。RCCU(Redundancy Control and Checker Unit) 在每个 SoR 输出处比较两核结果,不一致即触发 fail-safe。
被复制的不只是 CPU,还有 DMA / 中断控制器 / 总线 crossbar / MPU / Flash 与 RAM 控制器 / 桥接模块 / 系统定时器 / 看门狗定时器 / 寄存器保护——整个执行路径都冗余,而不是只冗余 ALU。这是 ISO 26262 ASIL D 对硬件元件 SPFM ≥ 99% 的物理基础。
1.2 ECC 覆盖所有 SRAM / Flash
片上 SRAM 和 Flash 都带 ECC(典型 SECDED:single error correct, double error detect)。单 bit 翻转自动纠错,双 bit 翻转报告异常给 FCCU。这处理的是 ISO 26262-5 关心的 transient memory error——量产场景中宇宙射线造成的 SEU(Single Event Upset)在汽车电子里 FIT 计算非可忽略。
1.3 Fault Collection and Control Unit (FCCU)
FCCU 是片上的集中故障收集枢纽,所有硬件模块的错误信号(RCCU 不一致、ECC double-error、看门狗超时、电压监控告警等)都汇到 FCCU。FCCU 可编程地决定每种故障的处理方式:
- 仅记录(诊断,后续读)
- 软件中断(让运行时处理)
- 直接拉出片上 fail-safe 引脚(通知外部 SBC)
工程要点:FCCU 输出信号必须接到 SBC 的错误输入引脚,这是把"MCU 觉得自己出错了"传递给"系统硬件级 fail-safe 控制者"的关键链路。
1.4 各种内部冗余:寄存器保护 + 时钟监控
寄存器保护(register protection):关键安全寄存器写入需要先解锁,防止跑飞代码意外改写;时钟监控:外部晶振失效时切到内部 RC 备用并报警。这两件单看不起眼,但 FMEDA 计算时贡献 SPFM 几个百分点。
2. MC33907/08:SBC 端做对的 7 件事
2.1 5 路电源全配齐
这一节先把“5 路电源全配齐”的判断维度收拢到同一视图里,后面的表格用于横向比较各选项的边界。
| 输出 | 类型 | 电压 | 电流 | 用途 |
|---|---|---|---|---|
| Vpre | SMPS Buck/Buck-boost | 6V 中间总线 | 2A | 给后级 LDO 供电,降低 LDO 耗散 |
| Vcore | DC-DC | 1.2-3.3V | 0.8/1.5A | MCU 核电源 |
| Vcca | LDO | 3.3/5V | 100mA(int) / 300mA(PNP) | MCU IO + ADC,精度 ±1% |
| Vaux | LDO + 外置 PNP | 3.3/5V | 300mA | ECU 内 / 外部传感器 |
| Vcan | LDO | 5V | 100mA | 内置 CAN 收发器专供 |
关键: Vcca 给 MCU ADC 当参考,精度 ±1% 是 ADC 实际能拿到 12bit 精度的前提(详见 ADC 应用精度)。
2.2 内置 CAN / LIN 收发器
省掉外置 TJA1043 / TJA1145 之类的独立收发器。安全意义:同一颗 die 上做的收发器,通信失效模式与 SBC 内监控直接耦合,故障检测覆盖率比外置高;但也是 single-die common cause 风险点,系统级 FMEDA 必须把它当 Type II 元件评估。
2.3 Windowed Watchdog with Question/Answer
不是简单的"周期性喂狗就行"——MCU 必须在窗口期内回答 SBC 的问题(SBC 通过 SPI 提问,MCU 算出答案再 SPI 回)。窗口期外喂(早 / 晚)都触发故障。这种协议覆盖更多失效模式:
- MCU 死机(stuck-at)→ 不喂,超时 reset
- MCU 跑飞但还能定时喂狗 → 算错答案,触发 reset(纯脉冲喂狗发现不了)
- SPI 总线异常 → 答非所问,触发 reset
2.4 Fail Safe Machine (FSM) 独立子系统
FSM 内部有自己独立的电压稳压器、独立带隙基准、独立振荡器——和 SBC 主体业务电路最大程度隔离。物理布局上专门划区,避免共因失效(芯片局部过热 / 电源反弹 / 时钟谐振)同时打击 FSM 和被监控逻辑。
FSM 三件子模块:
- Voltage Supervisor (VS):监控所有电源轨,任一超规触发
- Fail Safe State Machine (FSSM):状态机,综合各种 fault 决定动作
- Fail Safe Output (FSO):两个引脚 RSTB / FS0B 输出到 MCU + 系统外部硬件
2.5 双 fail-safe 输出:RSTB + FS0B
这一节先给出“双 fail-safe 输出:RSTB + FS0B”需要同时考虑的几个判断点,后面的条目按工程优先级展开。
- RSTB:复位 MCU(把 MCU 拽回安全初始状态)
- FS0B:控制系统外部 fail-safe 电路——切断电机驱动 / 切断高压继电器 / 点亮告警灯。这是把"系统"带进安全状态,不只是 MCU
工程上 FS0B 必须接到主驱逆变器的关断使能、点亮仪表盘安全灯、CAN 总线发送 fault frame 等。如果只接 RSTB 不接 FS0B,SBC 等于"只能让 MCU 死机重启"——MCU 重启期间整车失控,不是 ASIL D。
2.6 模拟 MUX 给 MCU ADC 看 SBC 内部状态
MC33907/08 内部有个 4 选 1 模拟 MUX,通过 SPI 选择,把电池电压 / 内部 2.5V 参考 / IO_0 / IO_1 / die 温度送到 MCU ADC。这是 MCU 反向校验 SBC 是否健康的通道——MCU 读 SBC 内部基准,如果偏差超限说明 SBC 自己出问题了。
2.7 LPOFF Sleep:整车熄火低功耗
ECU 在整车熄火后进入 LPOFF,SBC 关掉除自己监控逻辑外的所有 regulator。MCU 完全断电,睡眠电流 < 50µA。CAN/LIN/IO 触发任意一个就唤醒 SBC,重启 power-up sequence + Vpre 配置自检 + 喂 Vcore 给 MCU。
3. MCU + SBC 物理接口
ASIL D 配对的关键不是单独的 MCU 或 SBC 强,是两者之间的 4 条接口全部正确连接:
把这 4 条接口放进整体视图看:MCU 端做计算冗余、把自检结果经 FCCU error pin 抛出;SBC 端用 Q-A 看门狗反问 MCU、监所有电源轨,并保留一条**绕开 MCU 的独立第二关断路径(secondary path)**直接拽功率级进安全态。两者互监形成无单点。
| 接口 | 方向 | 语义 | 失效后果 |
|---|---|---|---|
| SPI | 双向 | watchdog Q/A、配置、读 SBC 状态 | 通信失败 → SBC 不喂狗超时 → reset |
| FCCU error output | MCU → SBC | MCU 内部错误汇总输出 | MCU 觉得自己有问题,SBC 收到立即拉 FS0B |
| RSTB | SBC → MCU | 复位 MCU | MCU 任何死机被拽回初始态 |
| FS0B | SBC → 系统 | 系统级安全状态 | 切断主驱、关闭高压、亮灯报警 |
只接 SPI + RSTB 不接 FCCU + FS0B 是常见架构错误——MCU 自检失效信息不能传递给 SBC,SBC 也不能控制系统外部硬件,等于 SBC 只是"高级 LDO + 看门狗",白白浪费 ASIL D 解决方案的价值。
核心要点
- ASIL D 必须靠 MCU + SBC 双芯片配对,单 die 解不了 common cause failure
- MPC5744P 4 件套:lockstep 双核 / RCCU 检查 / ECC 全覆盖 / FCCU 故障枢纽
- MC33907/08 的 FSM 用独立电源 + 独立时钟 + 独立带隙避开共因失效
- Windowed watchdog Q/A 比简单脉冲喂狗多覆盖 "MCU 跑飞但还能喂狗" 的失效模式
- RSTB + FS0B 两个 fail-safe 输出必须都接,只接 RSTB 等于 SBC 只会复位 MCU 不会拽系统
- MCU FCCU 错误输出必须接到 SBC 的错误输入,否则 MCU 自检失效不能传递
Cross-references
- ← 索引
- SBC / 伴随 IC:SBC 通用架构与选型
- 汽车 MCU:lockstep MCU 选型
- ISO 26262 硬件要素三类分类:MCU + SBC 是 II 类硬件元件
- 功能安全(Functional Safety):ASIL D 系统级达成框架
- ASIL D 案例研究:量产 ASIL D 系统案例
- 扭矩安全(Torque Safety ASIL D):应用层安全功能实现
- 软件 ASIL D:配套软件验证要求
- ADC 应用精度:Vcca 参考精度对 ADC 影响