TI Hercules TMS570 / RM48 安全 MCU 工程化 — Cortex-R5F lock-step / CCM-R5 / ESM / SafeTI / ASIL D 路径
本质与导读
本质 Hercules(TMS570 ASIL D / RM4x SIL 3)走的是与 AURIX 相反的极简路线:不堆核、不做可解锁 lock-step、不上复杂 SMU,而是 2 颗 Cortex-R5F 固定 lock-step(CCM-R5 cycle-by-cycle 比较)+ 全路径 SECDED ECC + ESM 集中告警 + nERROR pin 直驱外部 SBC,把安全压成最简硬件路径,软件几乎只需配 ESM mask、PBIST/LBIST/STC 自检序列与 SafeTI 库 hook。代价是必须外挂 TPS6538x-Q1 SBC 才闭合 ASIL D。
1. Hercules 3 支线 + 4 颗主力型号差异
Hercules 一个硅平台、三种认证目标 — TI 2011 年发布时就把"汽车 ASIL D + 工业 SIL 3 + 通用 SIL 2"打包卖,TMS570 和 RM4x 实际是同一硅做不同 safety case 包(汽车标 / 工业标),只是 reference design + Safety Manual 拿不同标走认证。这是后来 NXP S32K3、Infineon AURIX 都没复用的策略 —"一硅多证"省 die 但增了 Tier-1 文档对照负担。
1.1 三支线认证分工
三支线的关键区分是认证目标 + Safety Manual 文档包,不是硅本身:
| 支线 | 认证目标 | 典型应用 | 安全 case 文档 |
|---|---|---|---|
| TMS570 | ISO 26262 ASIL D | 汽车主驱 / EPS / ABS / BMS | TMS570 Safety Manual + AoU bundle |
| RM4x | IEC 61508 SIL 3 | 医疗灌注泵 / 工业伺服 / 铁路信号 / 风电 | RM4x Safety Manual(同硅,不同 standard mapping) |
| TMS470M | IEC 61508 SIL 2(部分) | 通用 / 早期 ARM7 沿用名 | Cortex-M3 单核,无 lock-step,不达 ASIL D |
关键认知:TMS470M 是单 Cortex-M3 核,与 TMS570 没共硅 — 名字相似但定位不同(TMS470 是 2005 年 ARM7 老线沿用,只剩 TMS470MF03107 等少量型号在产);新设计选 Hercules 必从 TMS570 / RM4x 入手。
1.2 四颗主力型号
实际量产 4 颗占 Hercules 出货 80%+。下表 6 列(型号 / 支线 / core / 主频 / Flash+RAM / 场景),外设差异留正文说明:
| 型号 | 支线 | core | 主频 | Flash / RAM | 典型场景 |
|---|---|---|---|---|---|
| TMS570LS3137 | TMS570 | 2× R4F | 180 MHz | 3 MB / 256 KB | EPS / ABS 主流 |
| TMS570LC4357 ★ | TMS570 | 2× R5F | 300 MHz | 4 MB / 512 KB | 主驱 / IDB / 高端 |
| RM48L952 | RM4x | 2× R4F | 220 MHz | 3 MB / 256 KB | 工业伺服 / 医疗 |
| RM57L843 | RM4x | 2× R5F | 330 MHz | 4 MB / 512 KB | 铁路 / 工业高端 |
外设侧:LS3137 / RM48L952(R4F 代)主带 FlexRay + CAN classic + LIN + MIBSPI,适合传统总线 ECU;LC4357 / RM57L843(R5F 代)加 Ethernet(EMAC;LC4357 标 Ethernet,RM57 还含 Ethernet AVB)+ EMIF,适合需要高速通信或外挂 DDR 的场景。
选型决策原则:EPS / ABS = LS3137 默认,主驱 + 高算力 = LC4357,工业 = RM48 默认,工业高端 = RM57。LC4357 与 RM57L843 硅几乎相同,Tier-1 选汽车标走 LC4357,工业标走 RM57 — 同一 BOM 不同 Safety Manual。
1.3 命名规律
TI 命名 TMS570 / RM + L(LDO 集成)/ S(标准)/ C(Cortex-R5F)+ Flash KB ÷ 100。TMS570LC4357 = LC 系列 4 MB Flash + R5F;TMS570LS3137 = LS 系列 3 MB Flash + R4F。
2. CCM-R4/R5 lock-step + 全路径 ECC + 时钟/电压监控
Hercules 的安全哲学是"硬件即一切"。所有关键 fault detection 都在硅里硬连,软件几乎不参与判定(只参与 reaction 决策)。核心三块:CCM(CPU Compare Module)lock-step 比较器 / 全路径 SECDED ECC / DCC + VMON 监控,全部汇集到 ESM。
2.1 CCM-R4/R5 lock-step 机制
Hercules 用 2 颗物理 Cortex-R5F(Master + Checker)做 lock-step,Checker 滞后 Master 2 cycle 执行(配相同输入),CPU Compare Module 在每个 cycle 比较两个 CPU 的输出总线信号(地址 / 数据 / 控制)。注:比较模块命名随核代走 — R4F 代(LS3137 / RM48L952)是 CCM-R4F,R5F 代(LC4357 / RM57L843)是 CCM-R5F;下文 CCM-R5 仅指 R5F 代,R4F 代型号 TRM 里查 CCM-R4F:
- 不一致 → CCM-R5F 拉 CPU compare error → ESM Group2 ch2(不可屏蔽,固定驱动 nERROR + 高优先级中断)→ nERROR pin 拉低(硬件路径,几个 GCLK cycle 内)
- Checker 对软件不可见 — 不出现在地址空间、不可读写、不能单独运行(与 AURIX 可解锁 lock-step 形成对比)
- 2 cycle 延迟目的是滤掉电气瞬态共模错 — 数据手册原文:"To avoid common mode impacts the signals of the CPUs to be compared are delayed by two cycles"(checker 时钟 GCLK2 恒比 GCLK1 滞后 2 cycle)
CCM-R5F 4 种运行模式(SPNS195C §6.5.4):active compare lockstep(正常态,mismatch→compare error)/ self-test(BIST 自检 CCM 本身)/ error-forcing / self-test error-forcing。区分三条 ESM 通道很关键:运行态 CPU compare error → Group2 ch2(致命,强制 nERROR);CCM-R5F self-test error → Group1 ch31(可屏蔽 IRQ,启动/周期自检结果);CCM-R5F operating status(是否在 lockstep)→ Group1 ch92。工程师把 self-test 结果(ch31)误当运行 mismatch(ch2)是常见误读。
关键认知:Hercules lock-step 不可解锁 — 这是它和 AURIX TC3xx 最大的设计差。AURIX 允许 QM 任务时解锁 Checker 跑独立线程做性能,Hercules 永远固定 dual lock-step。好处:safety case 简单,Tier-1 不需要证 lock-step state transition 安全。坏处:die 利用率低,500 DMIPS 的 LC4357 算力 ≈ S32K3 单 M7,Hercules 一直被"算力贵"诟病。
2.2 全路径 ECC 覆盖
Hercules 把 ECC 做到几乎所有存储:
| 存储 | 容量(LC4357) | 保护 | 错误 → ESM 通道 |
|---|---|---|---|
| Flash(程序) | 4 MB | SECDED 64+8 bit(CPU 内 SECDED 块,flash 提供 8-bit ECC / 64-bit) | 可纠 → G1 ch6;不可纠 → 表现为 CPU fatal bus error(bus ECC 0x71)→ G2 ch3 |
| SRAM(L2RAM) | 512 KB | SECDED 64+8 bit + odd/even bank | 单 bit → G1 ch26;双 bit → G3 ch3;type A → G3 ch14;addr/ctrl parity → G3 ch15 |
| L1 I/D-cache | 32 KB each | R5F 代(LC4357)= SECDED ECC(非 parity);R4F 代(LS3137)= parity | correctable → G1 ch46;cache fatal → G3 ch9 |
| 外设 msg RAM(CAN / FlexRay / MibSPI / VIM) | 各模块独立 | SECDED ECC(NHET RAM 为 parity) | 单 bit → G1(如 DCAN1 ch73);不可纠 → G1(DCAN1 ch21 等) |
SECDED(Single Error Correct Double Error Detect)的关键:单 bit 错自动纠正 → Group1(可屏蔽 IRQ)、L2RAM 双 bit 错强制 Group3(最高 severity、不可屏蔽、无中断)→ nERROR。注意错误按 severity 分散到三个 Group,不是"全部 DBE 进 Group2"。Tier-1 必启动时跑 PBIST 把所有 RAM 写一遍以填好 ECC 校验位(否则首次读未初始化 RAM 的随机 ECC syndrome 触发不可纠错 → TI E2E 里 "ESM group3 errors during power-up" 帖正是此因,不是 Group2)。
2.3 DCC + VMON + Temp sensor
时钟 / 电压 / 温度 的硬件监控:
- DCC(Dual-Clock Comparator)× 2:对两路时钟做交叉计数比较 — 主 PLL ↔ LPO 低速振荡器 / FlexRay 外部时钟 ↔ HCLK,PLL 漂移 > 阈值 → ESM Group1 IRQ
- PLL slip detect + LPO monitor:PLL 失锁或 LPO 超频/欠频 → ESM
- VMON:VCC / VCCIO 等电压 OV/UV(粗粒度,精度依赖外部 SBC)
- Temp sensor:LC4357 集成 3 路片上温度传感器(与 MibADC 内部通道复用,经 ADC 读取 —— 非直接 ESM 通道),应用层轮询判定是否降频 / 关核
DCC 是 Hercules 比较独特的设计 — AURIX 用 SMU clock alarm,Hercules 显式给 2 个独立 DCC 计数器跑交叉比较,Tier-1 配置时必给 2 个 DCC 不同时钟源对(否则共模时钟错不可检)。
3. ESM 3 Group 集中告警 + nERROR pin
ESM(Error Signaling Module)是 Hercules 的安全大脑 — 全片所有 SM 的 fault 都汇集到 ESM,ESM 内部分 3 Group,每 Group 决定 reaction 路径。理解 ESM 等于理解 Hercules 90% 的功能安全配置工作。
3.1 ESM 3 Group 分类
注意:Group 编号 = severity 递增,不是"功能分区"。数据手册 SPNS195C §6.19.2 原文:"Group1 is used for errors of the lowest severity while Group3 is used for errors of the highest severity"。三个 Group 的区别是 可屏蔽性 + 是否产生中断 + 对 nERROR 的影响是否固定,LC4357 共 160 通道 = 96 + 32 + 32(表 6-44):
| Group | 通道数 | 可屏蔽? | 触发中断? | 影响 nERROR? | severity | 典型 alarm(LC4357 通道) |
|---|---|---|---|---|---|---|
| Group1 | 96 | ✓ 可屏蔽 | ✓ 低/高优先级 | 可配置(默认不驱动) | 最低 | 外设 parity / 单 bit ECC / DCC error(ch30/62)/ PLL slip(ch10)/ 各类 self-test / CCM-R5F self-test(ch31) |
| Group2 ★ | 32 | ✗ 不可屏蔽 | ✓ 高优先级 | 固定驱动 | 中 | CCM-R5F CPU compare(lock-step mismatch,ch2) / CPU fatal bus error(Flash ECC 不全,ch3)/ L2RAM uncorrectable type B(ch7)/ EPC 不可纠(ch21)/ CCM-R5F VIM compare(ch25) |
| Group3 | 32 | ✗ 不可屏蔽 | ✗ 不产生中断 | 固定驱动 | 最高 | L2RAM 双 bit ECC(ch3) / L2RAM uncorrectable type A(ch14)/ cache fatal(ch9)/ L2RAM addr·ctrl parity(ch15) |
核心规则(修正常见误解):
- Group3 才是最高 severity — 不可屏蔽、不产生中断(纯硬件)、固定拉 nERROR,专收最致命的存储故障(L2RAM 双 bit ECC、cache fatal)。它不是"外设 / 应用层定制区"——那类错(FlexRay PE / CAN bus_off / 应用 fault)大多落在 Group1(可屏蔽)或走外设自身中断
- Group2 是 lock-step 硬骨架 — CCM-R5F CPU compare(runtime mismatch,ch2)固定进 Group2,不可屏蔽、高优先级中断 + 固定 nERROR;Tier-1 绝不可屏蔽 Group2 任何一通道
- Group1 是可屏蔽 IRQ 层 — 单 bit ECC(ch26/46)、DCC error、PLL slip、各类 self-test 结果;可配置为也影响 nERROR(ESMIEPSR),但默认不驱动 —— 页面别把它写成"永不影响 nERROR"
3.2 nERROR pin 物理路径
Hercules 的最后一道硬件保险是 nERROR pin(active low):
- ESM Group2 任意通道 high → ESM 内部 state machine → nERROR pin 在 < 1 μs 内拉低(纯硬件,不经 CPU)
- nERROR 外接 SBC TPS6538x-Q1 的 ENDRV 输入
- SBC 收到 nERROR low → ENDRV / 主输出关闭 → 外部 power stage(MOSFET 驱动 / 主继电器 / STO 触发)断开
- 这是 ASIL D 的 fail-silent 终态 — 系统进入 safe state(无 torque / 无输出)
Tier-1 量产规则:nERROR pin 必走独立 PCB 走线 + 上拉 10 kΩ 到 VCC(SBC 侧拉低),走线短 + 远离 PWM / 大电流。若 nERROR 用作菊花链(多个 fault 源 OR)必加 open-drain 缓冲。
3.3 启动序列硬约束
Hercules 启动必跑安全自检序列,顺序错则 ESM 误触发:
- PBIST(Programmable BIST):RAM 全测一遍,填好 ECC 校验位
- LBIST / STC(Logic BIST via Self-Test Controller):CPU 内部逻辑 stuck-at 测试。实测很快 —— 全测 40 个 interval = 65,160 STC test cycle,STC 最高 110 MHz → ≈0.6 ms(数据手册注 4:"LBIST and PBIST currents are for a short duration, typically less than 10 ms")。只在 cold boot 全跑,warm boot 用 STC 分 interval 补跑
- STC 运行时分 interval:CPU 周期性运行时自检,把 40 个 interval 摊到多个任务周期跑(用于覆盖 latent fault、拉 LFM)
- ECC enable:打开 Flash / SRAM ECC(须在 PBIST 之后)
- ESM init:配 Group mask 和 reaction
- MPU / 应用启动
典型陷阱:LBIST 本身只 ~0.6 ms,不会撑爆 1 s 唤醒窗;真正的 boot-time 压力来自 PBIST 全 RAM + LBIST 全跑串起来的十几 ms —— 对唤醒预算只有几十 ms 的快唤醒 ECU(部分车身 / 底盘周期唤醒件)仍需分流。Tier-1 必区分 cold vs warm reset(读 SYS.SYSESR 的 Power-Up Reset 位判断上电冷启动 vs 其它复位源),冷启动全跑、热启动/低功耗退出只跑必要项 + 运行时 STC interval 补齐。
4. SafeTI Diagnostic Library 调用框架
TI 把 Hercules 的 SM 配置 + 自检调用包装成 SafeTI Diagnostic Library(SDL)— C 语言函数集 + IEC 61508 / ISO 26262 兼容证书,Tier-1 直接 link 进应用,省去自己写 BIST trigger / ECC 测试 / ESM hook 的工作。
5 类 SafeTI hook:
| 类 | SafeTI API 示例 | 触发时机 | 覆盖 SM |
|---|---|---|---|
| CPU self-test | SL_Init_CPU() / SL_RunTime_CPU() | 启动 + 运行周期 | CCM-R5 强制 mismatch 测试 / STC trigger |
| Memory test | SL_Init_MemoryECC() / SL_Test_RAM() | 启动 + 周期 | PBIST trigger / Flash ECC verify |
| Clock check | SL_Init_ClockDiag() | 启动 | DCC 配 + PLL slip |
| ESM handler | SL_ESM_Hook() | ESM IRQ 入口 | Group1/2/3 fault dispatch |
| Peripheral diag | SL_FlexRayDiag() / SL_CANDiag() | 周期 | 外设 register integrity |
SafeTI 包包含:函数库 + IEC 61508 SIL 3 / ISO 26262 ASIL D pre-certification report + AoU bundle(50-150 条)+ FMEDA 数据(每 SM 的 DC / SPFM / LFM 贡献)。Tier-1 用 SafeTI safety case 写作工时 ≈ 6-8 周(从零自写 ≈ 4-6 月)。
SafeTI 局限:只覆盖 MCU 内部 SM,不含 MCU ↔ SBC 跨件 HSI;Tier-1 还需自写 HSI 文档定义 Hercules ↔ TPS6538x 的 SPI 周期 / nERROR 边沿 / 上电时序约束。
5. ASIL D 集成路径 — Hercules + TPS6538x-Q1 + SafeTI
Hercules MCU 单独默认即 ASIL D ready(不像 NXP FS65 SBC 单芯片只到 ASIL B 必加 lock-step MCU)— 但实战 ASIL D 路径必加外部 SBC 做 fail-silent 物理执行(MCU 自己关不掉自己,nERROR 必经外部 SBC 切外部 power)。
TI 的官方组合:Hercules MCU + TPS6538x-Q1 SBC + SafeTI library,三件套构成 ASIL D 最小可量产闭环。
5.1 TPS6538x-Q1 SBC 角色
TI 配 Hercules 的 SBC 有两代实型号:TPS65381-Q1 / TPS65381A-Q1(早期单器件)与 TPS653850A-Q1 / TPS653852A-Q1(多路 multirail,数据手册明确 "supports Hercules TMS570")。下用 TPS653850A-Q1 为例,集成:
- 同步 buck-boost 前级(内置 FET,输入 4–36 V,启动 7–36 V)→ 6 V VPRE preregulator,再下挂多路稳压:MCU core(3.3/5 V,350 mA)/ CAN·外设(5 V,285 mA)/ 两路传感器供电 + charge pump(高于电池 6–11 V)
- Q&A challenge watchdog(MCU 必算出 challenge 回答,防 ISR 卡死),外加各 rail 独立 UV/OV、限流、过温保护
- ENDRV pin(safing 输出,来自 MCU 的 nERROR / 来自 WD 超时 / 任一内部 fault)→ 关外部 power stage
- NRES pin(SBC 给 MCU 的 reset 电路)
- DIAG_OUT pin(多路 SBC 内部模拟/数字信号给 MCU 做独立监控)
- SPI(命令 + 数据带 CRC) 给 MCU 读 SBC fault status
Tier-1 接法:
- MCU nERROR → SBC ENDRV(直驱,硬件路径)
- MCU SPI ↔ SBC SPI(WD challenge / fault status)
- SBC DIAG_OUT → MCU ADC(MCU 独立查 SBC 内部电压 / 温度 — 双向监控)
- SBC fault → MCU GPIO IRQ(SBC 状态变化通知 MCU)
5.2 ASIL B vs ASIL D 路径差异
Hercules 单芯片就达 ASIL D capability,差异在外部 SBC 配置 + safety case 完整度:
| 维度 | ASIL B(简化集成) | ASIL D(SafeTI 全套)★ |
|---|---|---|
| MCU | 同一颗(TMS570LS3137 / LC4357) | 同一颗 |
| 外部 SBC | 可选 TPS6538x 简配 / 或 TLV70x 通用 LDO | 必须 TPS6538x-Q1 + Q&A WD 全开 |
| nERROR → SBC ENDRV 直驱 | 可选 | 必须 + 硬件路径 < 1 μs |
| LBIST + PBIST 启动 | 可选 | 必须每 cold boot 跑 |
| STC 运行时自检 | 可选 | 必须周期跑(每 1-4 小时) |
| SafeTI library hooks | 部分 | 5 类全 hook |
| 典型 FMEDA SPFM | ≥ 90% | ≥ 99% |
| 典型 FMEDA LFM | ≥ 60% | ≥ 90% |
| safety case 工时 | 4-6 周 | 8-12 周 |
5.3 Worked design — EPS 电机不请自来力矩(ASIL D)端到端故障链
以最典型的 Hercules 落地场景 EPS(电动助力转向) 走一遍从器件到 safe state 的完整路径,把上文的通道号 / 时序钉在一个真项目上。
系统与安全目标:EPS 助力电机由 TMS570LC4357 控制,安全目标 = "抑制不请自来的转向力矩(unintended steering torque)",ASIL D。相关失效的 FTTI(Fault Tolerant Time Interval)通常在几十 ms 量级(取决于车速与力矩幅值)。安全状态 = 电机三相断开(无力矩),由外部 SBC 切 gate driver 使能实现。
器件三件套:TMS570LC4357(2× Cortex-R5F @ 300 MHz)+ TPS653850A-Q1 SBC + SafeTI Diagnostic Library。
一条 CPU 逻辑瞬态错的完整链路(数字全部对 SPNS195C):
- Master/Checker 某一 cycle 输出不一致 → CCM-R5F active-compare 拉 CPU compare error → ESM Group2 ch2(不可屏蔽)
- ESM Group2 硬件状态机在几个 GCLK cycle(≪1 μs)内拉低 nERROR pin —— 不经 CPU、与软件是否卡死无关
- nERROR → SBC TPS653850A-Q1 ENDRV 输入 → SBC 关断对 gate driver 的使能 / 主输出 → 三相桥失能 → 电机去磁 → 无力矩 fail-silent
- 从 mismatch 到力矩消失的硬件反应链在 μs 量级,相对几十 ms 的 FTTI 有 3–4 个数量级余量 —— 这正是 Hercules "硬件即一切" 的价值:反应时间不吃软件 jitter
度量闭合(FMEDA 视角):lock-step 覆盖单点随机硬件失效(CCM DC 高)+ 全路径 SECDED ECC(Flash/RAM DC ≥ 99%)撑 SPFM ≥ 99%;LBIST/PBIST/STC 覆盖 latent fault —— 关键动作是把 40 个 STC interval 摊进运行时任务周期,使 CPU 潜伏故障在 FTTI/多点故障探测间隔内被翻出,撑 LFM ≥ 90%。SafeTI 提供每个 SM 的 DC/SPFM/LFM 贡献数,Tier-1 在整车层做汇总。
设计约束落点:① Group2 ch2 在 SafeTI/HALCoGen 里绝不可 mask;② nERROR↔ENDRV 走独立短线(见 §3.2);③ STC interval 调度周期 × interval 数必须 < 多点故障探测时间窗;④ HSI 文档定义 nERROR 边沿、SBC ENDRV 去抖、SPI WD challenge 周期(SafeTI 不覆盖跨件 HSI)。
6. 与 AURIX TC3xx / NXP S32K3 / Renesas RH850 四家横评
ASIL D MCU 是 cohort 市场 — 4 家各有强项,选型由 OEM 平台、Tier-1 历史经验、地域多重决定。
6.1 关键差异
四家的设计哲学可压成一句话:Hercules 简(固定 lock-step + ESM 三 Group)/ AURIX 强(6 核可解锁 lock-step + SMU 4-stage)/ S32K3 通(Cortex-M7 通用生态 + FCCU)/ RH850 私(自有 ISA + 日系闭环)。算力 / Flash / lock-step 灵活性 / SBC 配套是 4 个关键 trade-off 维度:
| 维度 | TI Hercules | Infineon AURIX TC3xx | NXP S32K3 | Renesas RH850/U2x |
|---|---|---|---|---|
| core 数 × 类 | 2× Cortex-R5F | 6× TriCore(3 LS 对) | 2× Cortex-M7 | 4× RH850(2 LS 对) |
| 主频 / 峰值算力 | 300 MHz / 500 DMIPS | 300 MHz × 多核 / 3000+ DMIPS | 240 MHz / 600 DMIPS | 320 MHz / 800 DMIPS |
| Flash / RAM 上限 | 4 MB / 512 KB | 16 MB / 4 MB ★ | 4 MB / 512 KB | 8 MB / 1 MB |
| lock-step 灵活性 | 固定 dual(简单) | 可解锁(灵活) ★ | 固定 dual | 固定 dual(对) |
| 安全集中点 | ESM 3 Group | SMU 4-stage reaction | FCCU | ECM / FOUT |
| 配套 SBC | TPS6538x-Q1 | TLF35584 / OPTIREG | FS65 / FS26 | RAA271xxx |
| 配套 safety lib | SafeTI Diagnostic Library | iLLD + Vector MICROSAR Safety | SafeAssure 套件 | SafeRH850 + FS-Safe |
| 典型工具链 | CCS + HALCoGen | AURIX Studio + iLLD | S32 Design Studio | CS+ / e² studio |
| 国内 Tier-1 主流应用 2026 | EPS / ABS / 中端主驱 / 铁路 / 医疗 | 主驱 / IDB / L3 ADAS(欧系) | EV 主驱 / 转向 / 制动(增量首选) | 主驱 / 仪表 / ADAS(日系) |
| 典型价格 2026(单 1k) | $8-12 | $ 12-22 | $6-10 | $ 10-15 |
6.2 Tier-1 选型决策
Hercules 的不可替代区:
- EPS / ABS — 算力够 + 文档全 + 量产 15 年稳定 → 选 LS3137 不出错
- 工业 SIL 3 — RM4x 在医疗灌注泵 / 工业伺服 / 铁路信号是 IEC 61508 工程的稳产选择(竞品 RH850 + STM32H7 + i.MX RT 都不太占)
- 算力中等 + safety case 要简 — Hercules 架构简单,不会卡 lock-step state transition 评审
Hercules 让位区:
- EV 主驱 — 2024+ 国内 NXP S32K3 + FS65 / TI 自家 AM26x + TPS6538x 抢市场,Hercules LC4357 算力偏紧
- L2+ ADAS / IDB — AURIX TC3xx 多核算力压制,Hercules 不上桌
- 算力刚需 1000+ DMIPS — Hercules 4 MB Flash + 500 DMIPS 不够,必走 AURIX TC397 / RH850/U2C
7. Hercules 在 2026 国内 Tier-1 的实际地位
判定:稳产但不增量。
- 稳产场景:EPS(博世 / 联创 / 拿森均有 Hercules 量产)/ ABS(部分线)/ 工业伺服(汇川等)/ 铁路信号(国铁项目)/ 医疗灌注泵
- 不增量场景:EV 主驱 2024 后新平台几乎全转 NXP S32K3 + FS65 或 Infineon AURIX TC3xx,Hercules 不入新平台短名单
- TI 自己的策略:Hercules 不更新 die(2018 LC4357 后无新型号),转推 AM26x + MSPM0 + Sitara AM2x 系列;Hercules 进入 long-term-supply 维持期(2030+ 仍供货,但不出新硅)
- Tier-1 选 Hercules 的理由:老平台 ECN 风险低 + Safety case 已过审 + 团队熟 + TI 中国 FAE 支持厚 — 这 4 点足够压住"算力老 + 价格中等"的劣势
8. 7 大量产陷阱
每个都是真实 Tier-1 / TI E2E 论坛 top reported:
| # | 陷阱 | 真实后果 | 规避 |
|---|---|---|---|
| 1 | 冷启动 ESM Group3 RAM ECC 假告警 | 未跑 PBIST 就 enable ECC → 首次读未初始化 RAM,随机 ECC syndrome 触发双 bit(不可纠)→ ESM Group3 ch3 立刻 nERROR → ECU 反复 reset(E2E "group3 errors during power-up") | 启动序列严按 PBIST → ECC enable → 用户代码;SafeTI SL_Init_MemoryECC() 必先调 |
| 2 | 误信 "LBIST 很慢",或全 self-test 全跑撑爆快唤醒预算 | 把 LBIST 当成 100 ms 级去做架构裁剪是错的(实测 ~0.6 ms);真问题是 PBIST 全 RAM + LBIST 全跑串起十几 ms,对几十 ms 唤醒窗的周期唤醒件仍超时 | 数字按 SPNS195C 核(全 LBIST=65,160 STC cycle @110 MHz≈0.6 ms);读 SYSESR Power-Up Reset 位分 cold/warm,冷启动全跑、热启动只跑必要项 + 运行时 STC interval 补 |
| 3 | nERROR pin 上拉电阻选错 / 走线长 | 1 kΩ 太小拉不动 / 100 kΩ + 长走线 noise 误触发 → 假 fail-safe | 按 SBC/MCU datasheet 选上拉(常用 10 kΩ 量级)+ 走线短 + 远离 PWM / 大电流 |
| 4 | ESM Group2 错配为可屏蔽 | 工程师按 "Group1 模板" 配 Group2 → CCM-R5F CPU compare(ch2)被 mask → ASIL D 评审 reject | Group2 硬件即不可屏蔽,别在 SafeTI hook 里试图 mask ch2;评审清单必查 |
| 5 | nERROR 与 GIOB[6] 复用,pinmux 配错当 GPIO | nERROR 在 LC4357 与 GIOB[6] 同 ball,IOMM 配成 GPIO 输出 → 安全告警管脚被应用代码接管 → fail-silent 路径失效 | 锁定 IOMM 配置(IOMM mux error 本身 → ESM Group1 ch37);评审查 pinmux 表确认 nERROR 功能 |
| 6 | 单 bit ECC / 潜伏故障不清扫,累积成双 bit | Group1 单 bit(RAM ch26 / cache ch46)只纠不报硬故障,若不 scrub / 不跑 STC interval,潜伏故障累积 → 某天变双 bit(Group3)硬 reset,且 LFM 达不到 | 开 RAM 硬件 scrubbing + 把 40 个 STC interval 摊进运行时任务周期;监控 Group1 单 bit 计数趋势 |
| 7 | SafeTI library 不更新跨 silicon revision | LC4357 silicon rev 间 ESM channel map / errata 有差异,SafeTI 旧版漏配新通道 → fault 漏检 | 锁定 SafeTI 版本 + silicon rev 配对表;对照 errata(SPNZ180)+ TI release note 每版必读 |
9. 3 个 Corner Case — 硬件不兜底的地方
Hercules "硬件即一切" 的叙事有边界:有几类失效不会自动进 Group2/Group3 强制 nERROR,靠软件或配置才闭合。这三个 corner 是 safety case 里最容易被"lock-step 全包"错觉盖过去的:
- Corner 1 — DMA 通路的 ECC 是可屏蔽的 Group1,不是 Group3。DMA 有自己的 MPU 与 ECC,但 DMA ECC uncorrectable → Group1 ch3(可屏蔽 IRQ),不像 CPU 读 L2RAM 双 bit 那样进 Group3 硬 nERROR。含义:一份安全关键变量若经 DMA 搬运被损坏,默认不会触发硬件 fail-silent —— 必须应用层对 DMA 目标做 CRC / 双存 / plausibility 检查,或把该通道升级处理。别假设"DMA 也被 lock-step 兜住"。
- Corner 2 — 时钟故障的反应是"可配置"的,配错就漏检。PLL slip / 振荡器失效可在
SYS.PLLCTL1里配成"产生 reset"或"仅 ESM"(数据手册表 6-46 注 2)。若只配成 ESM Group1(可屏蔽)且被 mask,单一时钟源漂移可能不产生任何安全反应。backstop = 两个 DCC 必须配不同时钟源对做交叉计数(DCC1 ch30 / DCC2 ch62),否则共模时钟错不可检 —— 这是 §2.3 强调"给 2 个 DCC 不同源"的原因。 - Corner 3 — warm boot / 低功耗退出跳过 LBIST,latent CPU 故障只剩运行时 STC 兜。为省唤醒时间热启动 skip 全 LBIST 是合理的(见 §3.3),但代价是:一次长 key-on 周期内 CPU 逻辑潜伏故障(stuck-at)只能靠运行时 STC interval 翻出。若 interval 调度过稀,潜伏故障停留时间超过多点故障探测窗 → LFM 掉到 90% 以下,ASIL D 评审卡 latent metric。收口 = STC interval 周期 × 数量证明 < 多点故障探测时间窗,并写进 safety case 的 LFM 论证。
缩写表
| 缩写 | 全称 |
|---|---|
| ASIL | Automotive Safety Integrity Level |
| AoU | Assumption of Use |
| BIST | Built-In Self-Test |
| CCM-R4 / CCM-R5 | CPU Compare Module — CCM-R4F for Cortex-R4F parts(LS3137 / RM48L952), CCM-R5F for Cortex-R5F parts(LC4357 / RM57L843) |
| CCS | Code Composer Studio |
| DBE | Double-Bit Error |
| DC | Diagnostic Coverage |
| DCC | Dual-Clock Comparator |
| DMIPS | Dhrystone MIPS |
| ECC | Error Correction Code |
| ESM | Error Signaling Module |
| FCCU | Fault Collection & Control Unit |
| FMEDA | Failure Modes, Effects, Diagnostic Analysis |
| FOUT | Fault Output(RH850) |
| FTTI | Fault Tolerant Time Interval(容错时间间隔) |
| IOMM | I/O Multiplexing Module(pinmux 控制) |
| HALCoGen | Hardware Abstraction Layer Code Generator(TI tool) |
| HSI | Hardware-Software Interface |
| iLLD | Infineon Low-Level Driver |
| LBIST | Logic BIST |
| LFM | Latent Fault Metric |
| LPO | Low-Power Oscillator |
| MIBSPI | Multi-Buffered SPI |
| MPU | Memory Protection Unit |
| nERROR | Error pin(active low) |
| PBIST | Programmable BIST |
| PLL | Phase-Locked Loop |
| SBC | System Basis Chip |
| SDL | SafeTI Diagnostic Library |
| SECDED | Single Error Correct Double Error Detect |
| SEU | Single Event Upset |
| SM | Safety Mechanism / Safety Manual |
| SMU | Safety Management Unit(AURIX) |
| SPFM | Single Point Fault Metric |
| STC | Self-Test Controller |
| STO | Safe Torque Off |
| SYSESR | System Exception Status Register |
| VMON | Voltage Monitor |
核心要点
- Hercules 3 支线 一硅多证:TMS570(汽车 ASIL D)/ RM4x(工业 SIL 3)/ TMS470M(单核 SIL 2)— 同一硅不同 Safety Manual 走不同标
- 4 颗主力:TMS570LS3137(EPS 主流)/ TMS570LC4357(高端 R5F)/ RM48L952(工业)/ RM57L843(工业高端)
- CCM lock-step 不可解锁(命名随核代:R4F 代 CCM-R4F / R5F 代 CCM-R5F)— 2× Cortex-R 核 + checker 延迟 2 cycle 比较,runtime CPU compare error 强制 ESM Group2 ch2 → nERROR(self-test 结果另在 Group1 ch31);与 AURIX 可解锁形成对比
- 全路径 SECDED ECC — Flash + SRAM 64+8 bit;LC4357 的 R5F cache 也是 SECDED(非 parity);错误按 severity 分散:单 bit→G1、L2RAM 双 bit→G3、Flash 不全→CPU fatal bus error→G2;启动 PBIST 必跑(否则首次读触发假不可纠错)
- ESM 3 Group = severity 递增,共 96/32/32:Group1 可屏蔽 IRQ(可配 nERROR)/ Group2 不可屏蔽 IRQ + 固定 nERROR(CCM CPU compare)/ Group3 最高 severity、不可屏蔽、无中断、固定 nERROR(L2RAM 双 bit ECC / cache fatal)—— Group3 不是"外设定制区",这是全库常见误解
- nERROR pin → SBC ENDRV → 外部 power 关闭:ASIL D 的硬件 fail-silent 终态,几个 GCLK cycle(≪1 μs)硬件路径
- DCC × 2 + PBIST + LBIST/STC:时钟监控 + 启动自检 + 运行时自检;全 CPU LBIST ≈ 0.6 ms(65,160 STC cycle @110 MHz,非 50-100 ms)
- SafeTI Diagnostic Library 5 类 hook:CPU / Memory / Clock / ESM / Peripheral — 省 4-6 月自写工作
- ASIL D 路径 = Hercules + TPS653850A-Q1(或早期 TPS65381A-Q1)+ SafeTI 三件套(MCU 单独已 ASIL D ready,需外部 SBC 做 power 切断执行)
- 四家横评:Hercules(中端简单)↔ AURIX(高端灵活复杂)↔ S32K3(增量首选)↔ RH850(日系)— Hercules 稳产 EPS / 工业 / 铁路,不增 EV 主驱 / ADAS
- 2026 中国地位:稳产不增量 — EV 主驱让位给 S32K3 / AURIX,EPS / 工业 / 铁路 / 医疗仍主力
- 7 大陷阱:PBIST 漏跑致假不可纠错(Group3)/ 误判 LBIST 慢或全自检串起撑爆快唤醒 / nERROR 上拉错 / Group2 ch2 错配可屏蔽 / nERROR 与 GIOB[6] pinmux 配错 / 单 bit ECC 不清扫累积成双 bit / SafeTI 版本不对 silicon rev
Engineering Objects
family_hercules_3lines(TMS570 / RM4x / TMS470M 一硅多证分工)ccm_r5_lockstep_fixed(checker 延迟 2 cycle + 不可解锁 + runtime CPU compare → Group2 ch2)ecc_path_full(Flash + SRAM SECDED 64+8 + R5F cache SECDED + PBIST 启动;错误按 severity 分散 G1/G2/G3)esm_3group_dispatch(severity 递增 96/32/32:Group1 可屏蔽 IRQ / Group2 不可屏蔽 IRQ+固定 nERROR / Group3 最高 severity 无中断固定 nERROR)nerror_pin_hw_path(几个 GCLK cycle 硬件路径 + 外部 SBC ENDRV 切 power)safeti_sdl_5hook(CPU / Memory / Clock / ESM / Peripheral 5 类 hook)worked_eps_asil_d(EPS unintended-torque:CCM compare ch2 → nERROR → TPS653850A ENDRV → 三相断,μs 链对几十 ms FTTI)path_asil_d_hercules_tps653850(MCU + TPS653850A-Q1 SBC + SafeTI 三件套)vendor_compare_4mcu(Hercules / AURIX / S32K3 / RH850 trade-off)
Cross-references
- ← 索引
- ISO 26262 V-cycle 全栈 — V-cycle hub(本页 §5 ASIL D 路径)
- Safety Mechanism Catalog — SM 总目录(本页 §2-3 CCM/ECC/ESM/DCC 是 MCU 子集)
- NXP FS65 SBC 安全集成 — 横评对偶(MCU+SBC vs Hercules+TPS6538x)
- AURIX TC3xx ASIL D MCU — 直接对照(SMU vs ESM,可解锁 vs 固定 lock-step)
- Confirmation Measures — ASIL D 3 CR review(Hercules safety case 必 I3 audit)
- Safe State Manager — safe state 切换原理(本页 §3 nERROR → SBC fail-silent 的概念基础)
- DIA 写作工程化 — §6 AoU 接受(SafeTI 50-150 AoU 必逐条 verify)
- Safety Manual 写作工程化 — Tier-2 SM 输入(TI Hercules Safety Manual 是 Tier-1 集成 AoU 源)
- HSI 写作工程化 — HSI 12 章(Hercules ↔ TPS6538x 跨件接口必写 HSI)
- 800V SiC 主驱全栈 — EV 主驱中 Hercules 让位给 S32K3 / AURIX 的位置
来源:TMS570LC4357 datasheet SPNS195C(§6.19 ESM 表 6-44 三 Group 定义 / 表 6-45 通道分配 / 表 6-46 reset·error 源;§6.5 CCM-R5F lock-step 2-cycle 延迟 + 4 模式;§6.5.5 CPU self-test 表 6-9 = 全 LBIST 65,160 STC cycle;§6.13.1 PBIST)+ TMS570LS3137 / RM48L952 / RM57L843 datasheet(core / 主频 / Flash-RAM / DMIPS:298 / 365 / 547)+ TI SafeTI Diagnostic Library 描述 + TI TPS653850A-Q1 / TPS65381A-Q1 datasheet(配对 SBC:buck-boost 6 V VPRE / Q&A WD / ENDRV / NRES / DIAG_OUT / SPI-CRC)+ TI E2E forum("ESM group3 errors during power-up" / "ESM Error 1.31 CCM-R5F self-test")+ 行业 ASIL D MCU 横评(AURIX TC3xx Safety Manual / NXP S32K3 Reference Manual / Renesas RH850/U2x datasheet)+ ISO 26262-5:2018 Clause 8 + Clause 9 + IEC 61508-2:2010(同硅多证 mapping)。