TI Hercules TMS570 / RM48 安全 MCU 工程化 — Cortex-R5F lock-step / CCM-R5 / ESM / SafeTI / ASIL D 路径

功能安全L4别名 TI Hercules · TMS570 · TMS570LS3137 · TMS570LC4357 · RM48 · RM48L952 · RM57L843 · Cortex-R5F lock-step · CCM-R5 · ESM · DCC · PBIST · LBIST · SafeTI · SafeTI Diagnostic Library · TPS65381A-Q1 SBC · TPS653850A-Q1 · TPS6538x-Q1 · 更新

本质与导读

本质 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 文档对照负担

Hercules 家族 3 支线 — TMS570(汽车 ASIL D)/ RM4x(工业 SIL 3)/ TMS470M(通用 SIL 2)

1.1 三支线认证分工

三支线的关键区分是认证目标 + Safety Manual 文档包,不是硅本身:

支线认证目标典型应用安全 case 文档
TMS570ISO 26262 ASIL D汽车主驱 / EPS / ABS / BMSTMS570 Safety Manual + AoU bundle
RM4xIEC 61508 SIL 3医疗灌注泵 / 工业伺服 / 铁路信号 / 风电RM4x Safety Manual(同硅,不同 standard mapping)
TMS470MIEC 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典型场景
TMS570LS3137TMS5702× R4F180 MHz3 MB / 256 KBEPS / ABS 主流
TMS570LC4357TMS5702× R5F300 MHz4 MB / 512 KB主驱 / IDB / 高端
RM48L952RM4x2× R4F220 MHz3 MB / 256 KB工业伺服 / 医疗
RM57L843RM4x2× R5F330 MHz4 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。

TMS570 / RM4x 安全架构 — CCM-R4/R5 lock-step + 全路径 ECC + 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 MBSECDED 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 KBSECDED 64+8 bit + odd/even bank单 bit → G1 ch26;双 bit → G3 ch3;type A → G3 ch14;addr/ctrl parity → G3 ch15
L1 I/D-cache32 KB eachR5F 代(LC4357)= SECDED ECC(非 parity);R4F 代(LS3137)= paritycorrectable → 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 通道)
Group196✓ 可屏蔽✓ 低/高优先级可配置(默认不驱动)最低外设 parity / 单 bit ECC / DCC error(ch30/62)/ PLL slip(ch10)/ 各类 self-test / CCM-R5F self-test(ch31)
Group232✗ 不可屏蔽✓ 高优先级固定驱动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)
Group332✗ 不可屏蔽✗ 不产生中断固定驱动最高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 误触发:

  1. PBIST(Programmable BIST):RAM 全测一遍,填好 ECC 校验位
  2. 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 补跑
  3. STC 运行时分 interval:CPU 周期性运行时自检,把 40 个 interval 摊到多个任务周期跑(用于覆盖 latent fault、拉 LFM)
  4. ECC enable:打开 Flash / SRAM ECC(须在 PBIST 之后)
  5. ESM init:配 Group mask 和 reaction
  6. 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-testSL_Init_CPU() / SL_RunTime_CPU()启动 + 运行周期CCM-R5 强制 mismatch 测试 / STC trigger
Memory testSL_Init_MemoryECC() / SL_Test_RAM()启动 + 周期PBIST trigger / Flash ECC verify
Clock checkSL_Init_ClockDiag()启动DCC 配 + PLL slip
ESM handlerSL_ESM_Hook()ESM IRQ 入口Group1/2/3 fault dispatch
Peripheral diagSL_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 接法:

  1. MCU nERROR → SBC ENDRV(直驱,硬件路径)
  2. MCU SPI ↔ SBC SPI(WD challenge / fault status)
  3. SBC DIAG_OUT → MCU ADC(MCU 独立查 SBC 内部电压 / 温度 — 双向监控)
  4. 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):

  1. Master/Checker 某一 cycle 输出不一致 → CCM-R5F active-compare 拉 CPU compare error → ESM Group2 ch2(不可屏蔽)
  2. ESM Group2 硬件状态机在几个 GCLK cycle(≪1 μs)内拉低 nERROR pin —— 不经 CPU、与软件是否卡死无关
  3. nERROR → SBC TPS653850A-Q1 ENDRV 输入 → SBC 关断对 gate driver 的使能 / 主输出 → 三相桥失能 → 电机去磁 → 无力矩 fail-silent
  4. 从 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 历史经验、地域多重决定。

ASIL D 安全 MCU 四家横评 — Hercules / AURIX / S32K3 / RH850

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 HerculesInfineon AURIX TC3xxNXP S32K3Renesas RH850/U2x
core 数 × 类2× Cortex-R5FTriCore(3 LS 对)2× Cortex-M74× RH850(2 LS 对)
主频 / 峰值算力300 MHz / 500 DMIPS300 MHz × 多核 / 3000+ DMIPS240 MHz / 600 DMIPS320 MHz / 800 DMIPS
Flash / RAM 上限4 MB / 512 KB16 MB / 4 MB ★4 MB / 512 KB8 MB / 1 MB
lock-step 灵活性固定 dual(简单)可解锁(灵活)固定 dual固定 dual(对)
安全集中点ESM 3 GroupSMU 4-stage reactionFCCUECM / FOUT
配套 SBCTPS6538x-Q1TLF35584 / OPTIREGFS65 / FS26RAA271xxx
配套 safety libSafeTI Diagnostic LibraryiLLD + Vector MICROSAR SafetySafeAssure 套件SafeRH850 + FS-Safe
典型工具链CCS + HALCoGenAURIX Studio + iLLDS32 Design StudioCS+ / e² studio
国内 Tier-1 主流应用 2026EPS / 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 补
3nERROR pin 上拉电阻选错 / 走线长1 kΩ 太小拉不动 / 100 kΩ + 长走线 noise 误触发 → 假 fail-safe按 SBC/MCU datasheet 选上拉(常用 10 kΩ 量级)+ 走线短 + 远离 PWM / 大电流
4ESM Group2 错配为可屏蔽工程师按 "Group1 模板" 配 Group2 → CCM-R5F CPU compare(ch2)被 mask → ASIL D 评审 rejectGroup2 硬件即不可屏蔽,别在 SafeTI hook 里试图 mask ch2;评审清单必查
5nERROR 与 GIOB[6] 复用,pinmux 配错当 GPIOnERROR 在 LC4357 与 GIOB[6] 同 ball,IOMM 配成 GPIO 输出 → 安全告警管脚被应用代码接管 → fail-silent 路径失效锁定 IOMM 配置(IOMM mux error 本身 → ESM Group1 ch37);评审查 pinmux 表确认 nERROR 功能
6单 bit ECC / 潜伏故障不清扫,累积成双 bitGroup1 单 bit(RAM ch26 / cache ch46)只纠不报硬故障,若不 scrub / 不跑 STC interval,潜伏故障累积 → 某天变双 bit(Group3)硬 reset,且 LFM 达不到开 RAM 硬件 scrubbing + 把 40 个 STC interval 摊进运行时任务周期;监控 Group1 单 bit 计数趋势
7SafeTI library 不更新跨 silicon revisionLC4357 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 论证。

缩写表

缩写全称
ASILAutomotive Safety Integrity Level
AoUAssumption of Use
BISTBuilt-In Self-Test
CCM-R4 / CCM-R5CPU Compare Module — CCM-R4F for Cortex-R4F parts(LS3137 / RM48L952), CCM-R5F for Cortex-R5F parts(LC4357 / RM57L843)
CCSCode Composer Studio
DBEDouble-Bit Error
DCDiagnostic Coverage
DCCDual-Clock Comparator
DMIPSDhrystone MIPS
ECCError Correction Code
ESMError Signaling Module
FCCUFault Collection & Control Unit
FMEDAFailure Modes, Effects, Diagnostic Analysis
FOUTFault Output(RH850)
FTTIFault Tolerant Time Interval(容错时间间隔)
IOMMI/O Multiplexing Module(pinmux 控制)
HALCoGenHardware Abstraction Layer Code Generator(TI tool)
HSIHardware-Software Interface
iLLDInfineon Low-Level Driver
LBISTLogic BIST
LFMLatent Fault Metric
LPOLow-Power Oscillator
MIBSPIMulti-Buffered SPI
MPUMemory Protection Unit
nERRORError pin(active low)
PBISTProgrammable BIST
PLLPhase-Locked Loop
SBCSystem Basis Chip
SDLSafeTI Diagnostic Library
SECDEDSingle Error Correct Double Error Detect
SEUSingle Event Upset
SMSafety Mechanism / Safety Manual
SMUSafety Management Unit(AURIX)
SPFMSingle Point Fault Metric
STCSelf-Test Controller
STOSafe Torque Off
SYSESRSystem Exception Status Register
VMONVoltage 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

来源: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)。