SBC Watchdog 深度 — Simple / Window / Q&A + MCU 协同
本质与导读
本质 Watchdog 是 SBC 独立监视 MCU 是否真在按预期跑代码 —— 不是靠 MCU 自证。所以 ASIL D 主驱要上 Q&A WD:SBC 出题、MCU 算 CRC/查表后回答,验的是 CPU+Flash+算法链全活,而非只看喂狗 task 在跑。trip 时 SBC 直接拉硬件 STO 进 safe state、不经 MCU 决策,这才是 ASIL D 分解 channel B 物理/时钟/软件/电源四项独立的核心。
主线坐标:旁支 · 低压控制域 · ↑ 全景主线
1. 3 类看门狗协议
看门狗的本质都是"MCU 定时喂狗,超时则 reset",但喂的方式 + 验证深度决定保护强度。Simple 只看时间;Window 加时间窗口;Q&A 还验算法正确性。下图把三类时序 + Q&A 详细协议一次画清:
2. Simple Watchdog
最基础形式:MCU 任何时间在 Tmax 内喂一次,WD 计数器 reset;超 Tmax 未喂 → WD trip → SBC 拉 nRESET。
实现:
void main_task(void) {
while (1) {
// application code...
feed_watchdog(); // GPIO toggle 或 SPI write
delay_ms(50);
}
}
保护强度:
- ✓ MCU 整体卡死 (CPU hang) → 喂狗 task 也停 → reset
- ✗ 死循环里调 feed_watchdog():仍喂狗,WD 不 trip,application 实际挂了
- ✗ stuck loop:也喂狗,WD 不查 application 在哪里
ASIL 上限 B。EV 主驱不够。
3. Window Watchdog
升级版:喂狗必须在时间窗口 [Tmin, Tmax] 内,早喂也 trip。
典型:
- Tmin = 5 ms
- Tmax = 15 ms
- 喂狗时间窗口宽度 10 ms
实现:
void main_task(void) {
uint32_t last_feed_us = get_time_us();
while (1) {
// application code...
uint32_t now = get_time_us();
if (now - last_feed_us >= T_MIN_US) {
feed_watchdog();
last_feed_us = now;
}
// 不在窗口内不喂
}
}
保护强度:
- ✓ 同 Simple WD
- ✓ 防"死循环喂狗" — 死循环执行快,会早喂触发 reset
- ✓ 防 stuck loop(任务慢 → 错过窗口)
- ✗ 不能验"喂狗代码"是否真在 main task 里跑(还是被错误调度跑了)
ASIL 上限 C-D。EV 主驱够用但偏简单。
4. Q&A Watchdog (Challenge-Response)
最严:SBC 出题 → MCU 算 → 答。整个 protocol 验CPU + Flash + 算法真在执行。
典型 SBC (NXP FS65) Q&A 算法:
- SBC 每 10 ms 生成 4-bit seed + 4-bit 计数器(合 8-bit Q)
- MCU 必须用预存查表 + CRC + counter算出 16-bit response
- SBC 比对 expected response,匹配 → 喂狗 + 下一题;不匹配 → 错次 +1
- 连续 3 次错 → 拉 nRESET + STO
典型协议:
// MCU 端
void wd_task_10ms(void) {
uint8_t Q = sbc_read_question(); // SPI 读 SBC
uint16_t A = compute_answer(Q); // 加密 / 查表 / CRC
sbc_write_answer(A);
}
uint16_t compute_answer(uint8_t Q) {
// 算法在 Flash table + RAM 状态
uint8_t seed = (Q >> 4) & 0x0F;
uint8_t counter = Q & 0x0F;
uint16_t base = ANSWER_LUT[seed];
return crc16(base + counter); // 真涉及 Flash + RAM + CPU
}
保护强度:
- ✓ Window WD 所有
- ✓ 验 CPU 真在执行算法(死循环喂狗也算不对答案)
- ✓ 验 Flash 完整性(LUT 数据正确)
- ✓ 验 RAM 状态(counter 递增)
- ✗ 仍不能验 application 逻辑正确(算法本身可能 bug)
ASIL 上限 D,EV 主驱 ASIL D 首选。
5. 主流 SBC Q&A 协议 (2026)
下表汇总主流 SBC 内置 Q&A 协议特征:
| SBC | Q 长度 | A 长度 | 周期 | 算法 |
|---|---|---|---|---|
| NXP FS65 | 8-bit | 16-bit | 10 ms | LUT + CRC8 |
| Infineon TLF35584 | 32-bit | 32-bit | 5-20 ms 可配 | 多项式 + counter |
| TI TPS65381 | 4-bit | 4-bit | 50 ms | XOR + LUT |
| ST L9784 | 8-bit | 16-bit | 10 ms | CRC + seed |
| MPS MP2932 | 简化 simple WD | — | — | 不支 Q&A,经济款 |
EV ASIL D 主流配对:TC397 + TLF35584 / S32K3 + FS65 — 都 Q&A。
6. Watchdog Trip 后的硬件反应
watchdog 错次达阈值 → SBC 不是只 reset,而是多硬件信号同时拉:
- nRESET 拉低 → MCU 复位 → 应用停
- STO pin 拉低 → 栅极驱动 IC 关栅 → 主驱 safe state
- FAIL_OUT pin 通知 VCU(可选)
- 内部状态机 进 FAULT 永久态 — 需重新上 12V 才能恢复
EV 主驱watchdog trip 直接拉硬件 STO,不靠 MCU 决策 — 这是 ASIL D 分解 channel B 的本质。
链接:SafeState Manager §3 2nd-Level
7. 调试常见问题
EV PEU 开发中 watchdog 是最容易 debug 失败的模块。下表 5 个反复出现的:
7.1 Q&A 算法 mismatch
MCU 端算法跟 SBC 期望不一致(版本 / 多项式 / seed 用错) → 量产瞬间所有 ECU watchdog trip。
对策:
- 用 SBC 厂商的 reference C code(NXP / Infineon 都给)
- 集成测试覆盖 Q&A 至少 1000 个不同 seed
7.2 timing 不够
MCU 算 Q→A 时间超过 SBC timeout(典型 ≤ 100 μs)→ 假 fail。
对策:
- profile MCU 算法时间,留 50% margin
- 把 LUT 放 Flash 0 wait state 区
- 关键算法 inline,避免函数调用开销
7.3 SPI bus 失常
Q&A 通过 SPI 通讯,SPI bus 错(CRC / 通讯丢)→ 假 fail。
对策:
- SPI 走线短 + 屏蔽
- 每 Q&A 帧带 CRC + retransmit (但要避免延误 timeout)
7.4 多任务调度抢占
RTOS 下 wd task 被高优先级中断抢占 → 没及时回答 → fail。
对策:
- wd task 设最高优先级
- 关键中断不超过 50 μs
7.5 单元测试缺失
集成测试不模拟 watchdog fail → 量产后无 way to test → 真 fail 时 reaction 错。
对策:
- 必有"unit test: SBC fault injection 模拟 Q answer wrong"
- HIL 测试包 Q&A 故障 scenario
8. ASIL D DFA 中 watchdog 的角色
ASIL D = B(D) + B(D) 分解时,SBC Q&A WD 是 channel B 的核心:
- channel A:主 MCU 双核 lockstep(开发 B 等级)
- channel B:SBC + Q&A WD + STO 硬件(开发 B 等级)
DFA 4 项独立性证据(见 topic-asil-decomposition-deep §3):
- 物理独立:SBC 单独 IC,独立 LDO
- 时钟独立:SBC 内部时钟,不共享 MCU 时钟
- 软件独立:Q&A 算法跑 SBC 内部 ROM,跟 MCU SW 完全分离
- 电源独立:12V → SBC 独立 buck,不共享 MCU 主 power
watchdog 是 SBC 监视 MCU 的主要手段,SBC 自身不需要被 MCU 监视(双向不对称是 OK 的)。
9. 设计参数速查
EV 主驱 ASIL D Q&A WD 典型参数:
| 参数 | 典型值 | 来源 |
|---|---|---|
| Q 长度 | 8-16 bit | SBC datasheet |
| A 长度 | 16-32 bit | SBC datasheet |
| Q&A 周期 | 10 ms | 项目级配置 |
| MCU 算法时间 | < 100 μs | profile,SBC timeout 决定 |
| 错次阈值 | 3 次 | SBC 内部 (部分可配) |
| Trip 反应时间 | < 1 μs (硬件) | SBC datasheet |
| FTTI | < 100 ms (整链) | ISO 26262 + HARA 决定 |
10. 5 个工程陷阱
watchdog 设计失败往往不是协议本身,而是配置 / timing / 测试 4 类问题。下表 5 个典型坑:
| 陷阱 | 描述 | 预防 |
|---|---|---|
| Simple WD 用于 ASIL D | 防不了死循环 | 必上 Q&A |
| MCU 算法太慢 | timeout fail | profile + LUT inline |
| Q&A 算法 mismatch | 量产瞬间所有 ECU trip | 用 vendor ref code + 集成测试 |
| WD task 被中断抢占 | 假 fail | task 最高优先级 + IRQ < 50μs |
| 没 HIL 测试 WD trip | 量产 fail 才发现 | FI test 必涵盖 |
核心要点
- 3 类 WD:Simple (ASIL B 上限) / Window (ASIL C-D) / Q&A (ASIL D 首选)。
- Q&A protocol 让 SBC 验 CPU + Flash + RAM + 算法链 真在跑,Simple WD 不行。
- EV 主驱 ASIL D 必 Q&A,典型 10ms 一轮 + 3 次错阈值 + 硬件 STO 反应。
- 主流 SBC:FS65 + TLF35584 + TPS65381 全内置 Q&A。
- WD trip 直接拉 STO 硬件 pin,不靠 MCU 决策 — ASIL D 分解 channel B 的本质。
- DFA 4 项独立性:物理 / 时钟 / 软件 / 电源 必证。
- 5 个工程陷阱集中在 配置 + timing + 算法 mismatch + 测试,代码逻辑反而少。
缩写表
只列本页用到的工业标准缩写;通用英语…
只列本页用到的工业标准缩写;通用英语 / 单位 / 月份 / 我们的
层/Lxtag 不列。覆盖不到的术语见正文 inline 注释。
| 缩写 | 全称 | 中文 / 备注 |
|---|---|---|
| SBC | System Basis Chip | 系统基础芯片(电源 + 收发器 + 监控集成) |
| MCU | Microcontroller Unit | 微控制器(本页多指车规多核 MCU) |
| STO | Safe Torque Off | 安全转矩关闭 (IEC 61800-5-2) |
| NXP | NXP Semiconductors | 恩智浦半导体 |
| TI | Texas Instruments | 德州仪器 |
| ISO | International Organization for Standardization | 国际标准化组织 |
| EV | Electric Vehicle | 电动车 |
| ASIL | Automotive Safety Integrity Level | ISO 26262 安全完整性等级 QM→A→B→C→D |
| DFA | Dependent Failure Analysis | 相关失效分析(ISO 26262-9) |
| ST | STMicroelectronics | 意法半导体 |
| VCU | Vehicle Control Unit | 整车控制器 |
| ECU | Electronic Control Unit | 电子控制单元 |
| SPI | Serial Peripheral Interface | 串行外设接口 |
| RTOS | Real-Time Operating System | 实时操作系统 |
| LDO | Low Dropout Regulator | 低压差线性稳压器 |
| FTTI | Fault Tolerant Time Interval | 容错时间间隔 |
| HARA | Hazard Analysis and Risk Assessment | 危害分析与风险评估,part 3 |
| FMEDA | Failure Modes, Effects and Diagnostic Analysis | 含诊断覆盖的 FMEA |
Cross-references
- ← 索引
- 功能安全工程师指南 hub — V-cycle + 27 篇深度页全集 (本页在 §12.3 HW 安全设计)
- 辅助电源全栈 hub — Chain 流路 + 8 主题
- 低压辅助电源 hub
- SafeState Manager 深度 — 2nd-Level B(D) 角色
- SBC 多 rail sequencing
- ASIL 分解深度 — DFA 4 项
- Fault Injection Test 深度 — Q&A FI scenarios
- Aurix TC3xx ASIL D — MCU 配 SBC
- 辅助电源 FMEDA + DFA 深度 — SBC 在 AUX 链 FMEDA 主战场的工程化