HSI — Hardware-Software Interface 文档

功能安全L3别名 HSI · Hardware-Software Interface · 硬件软件接口 · HSI 文档 · HSI specification · HSI 规范 · 更新

本质与导读

本质 HSI 是 ISO 26262 项目里 Part 4 / Part 5 / Part 6 之间的合同。任何寄存器映射、中断号、配置参数、诊断标志、安全机制都必须显式写在这份受控文档里,三方(系统 / 硬件 / 软件)联合签字才算落地。审计员开口第一句话经常是"你的 HSI 文档版本号?"——因为 HSI 漏一项或不同步,就是 build 错产品、release 前才被发现要返工的根因。本页把 HSI 的 5 类必含信息、三方签字制度、变更生命周期、逆变器实战示例串成一份能直接当 review checklist 用的实务指南。

主线坐标:横轨 · 功能安全(跨站) · ↑ 全景主线

1. HSI 为什么是三方契约

ISO 26262 把硬件设计(Part 5)和软件设计(Part 6)拆成两本独立标准,两侧靠 HSI 这份文档对接。Part 4(系统)给出 TSC,Part 5 写硬件需求规范、Part 6 写软件需求规范,HSI 把两侧的约束精确锁定下来:寄存器在哪个地址、中断号是几号、配置写一次就 lock、错误位读后写清。任意一方单方面改动而不同步,另一方 build 出来就和硬件对不上。

HSI 是三方契约

工程实务上,系统架构师拟初稿、硬件和软件 lead 联审,三方签字才进版本控制。变更走 6 步 CCB 流程(见 §5)。Part 4-6.4.6 明确写"HSI shall be jointly agreed by system, hardware and software development"——这是车规审计员引用频次最高的条款之一。

2. HSI 必含 5 类信息

Part 6 Clause 6.4.6 + Part 4 Annex B 一起规定 HSI 必须涵盖 5 类信息。任一类缺失都不算合规 HSI,审计员会逐类问"⑤ 安全机制在哪一页?"

HSI 5 类必含信息

5 类内容速览:

内容例子
① HW resources寄存器映射 / 中断号 / DMA 通道 / 共享 RAM 区 / 外设 base addrADC0 = 0x40012000,IRQ24 = FaultLine
② Config paramsPLL 倍频 / Flash wait-state / ADC 采样窗 / PWM 死区 / WDT 超时PWM = 10 kHz,死区 =
③ Constraints读写顺序 / 中断屏蔽窗口 / 资源互斥 / 写保护期 / 复位顺序lock 后写 X → HardFault
④ DiagnosticsECC 状态位 / 奇偶 flag / 温度告警 / BIST 触发寄存器 / 硬件错误码DERR_STA[3] = 1 → SafeState
⑤ Safety mechLockstep 状态 / MPU/DAM 配置 / WDT 喂狗序列 / SafeState 进入路径SMU_CTRL.SS = 1 → 切母线

第 ⑤ 类是审计员重点查的部分——必须每项标注 ASIL 等级 + SW 响应路径。

3. 逆变器 HSI 节选示例

下面是一份典型 800V 主驱 ECU 的 HSI 节选,覆盖 ADC 同步采样、PWM 死区、Fault IRQ、ECC、WDT、Lockstep 状态六大类。每行有唯一 ID + ASIL + verification status,实际项目单 ECU 量级 200-500 行。

逆变器 HSI 节选

工程要点:

  • ADC SYNC = PWM_CC0:采样窗对齐 PWM 中点 ,确保电流采样不踩开关瞬态。SW 不可运行时改 sync 源,校验回读 ≠ 写值 → 进 SafeState。
  • PWM 死区 @ 100 MHz:写保护,lock 后写 → HardFault;CRC 入 calib 区,启动验校。
  • Fault IRQ vector 24:latency 必须 < ,NMI 级 priority 0;ISR 直接拉 GATE_OFF,不进调度器。
  • RAM ECC DERR_STA:双 bit 错(unrecoverable)立刻进 SafeState;单 bit 计数 + 日志,周期阈值触发降级。
  • WDT 喂狗 0x55AA / 0xAA55 序列:windowed key,早 / 晚都 reset,迫使 SW 用主循环喂狗而非中断里。
  • Lockstep SMU_CTRL.SS:HW 置 1 = 已切 SafeState,SW 只读不参与状态机决策——避免软件再误清错误位。

实际项目 HSI 单条目还要附:verification method(static review / functional test / fault injection)、owner(HW / SW / Sys 三方某人)、status(open / verified / waived)、linked TSR(追溯到 TSC 哪一条)。

4. HSI 不能用 Excel 维护

200-500 行 + 每行 6-8 列 + 双向追溯到 TSC / SW SR / 测试用例 + 三方签字时间戳——Excel 维护不到一个月就崩。ASIL D 项目必须用受控工具:

工具适用优点痛点
Excel + Git< 50 项 / Demo 项目零成本,版本可追无 baseline 锁、追溯需手维
Polarion ALM中-大型 Tier-1 项目DOORS-class 追溯 / 集成 V-cycle许可贵 (~5k USD/seat 年)
DOORS Next大型 OEM 项目业界标准、ASIL D 项目首选学习曲线、UI 陈旧
Codebeamer中型 + Agile 项目现代 UI / API 易集成国内代理稀少
Jama ConnectOEM 跨域协同跨地域协作好性能弱、宏视图差

判断阈值:HSI 行数 > 50 或 ASIL ≥ C 或 OEM-Tier1 协同必装 DOORS / Polarion / Codebeamer 之一。

5. HSI 变更生命周期

任何一方提出 HSI 改动都走 6 步——CCB(Change Control Board)是审批节点。紧急改动允许 24 小时 cycle,但三方签字一项都不能省

HSI 变更 6 步生命周期

责任方关键产出
① Change Request提案方(Sys/HW/SW 任一)CR 编号 + 描述 + 紧迫度
② Impact Analysis三方 + Safety Engineer受影响 work product 清单
③ Safety Impact Analysis (SIA)Safety Engineeryes/no + 是否触发 HARA 重审
④ 三方 Review (CCB)Sys + HW + SW lead + SE决策 approve / reject / defer
⑤ Version bump + tagConfiguration Mgrv1.3 → v1.4,changelog 写明
⑥ DistributeCM + Tooling推 Part 5/6 团队,触发回归

审计员最爱问的问题:"上次 v1.4 改了什么?三方都谁签的?触发了哪些回归?"——所以 changelog 必须可追溯。

6. 端到端 Worked Design — TC397 EPS ECU HSI 文档片段

本节展示一份 ASIL D EPS ECU 的 HSI 关键条目,覆盖 5 类 × 10 条,并量化 FTTI 时序预算。真实项目 HSI 单 ECU 量级 200-500 行,本示例抽取最具代表性的安全关键条目作为模板。

系统背景:TC397(Infineon AURIX 三核 Lockstep)+ TLF35584(SBC)+ 1EDI3035AS(gate driver)+ 6× SCT3080AL(SiC MOSFET)。FTTI = 50 ms(ASIL D 扭矩安全)。

6.1 HSI 文档头字段

HSI 受控文档的头字段是追溯与责任的源头——审计员直接对照版本号、基线日期和签字人进行交叉核查:

字段示例值说明
Doc IDEPS-ECU-HSI-001唯一编号,入变更管理系统
Versionv1.3语义版本,每次 CCB 后递增
Baseline Date2026-03-01冻结后 SW 才可按此设计
ASIL ContextD (分解 B(D)+B(D))决定 HSI 严格度等级
Sys SignatoryZhang San (Sys Lead)三方之一
HW SignatoryLi Si (HW Lead)三方之二
SW SignatoryWang Wu (SW Lead)三方之三
Safety Manual RefTC397 Safety Manual v2.3SEooC 器件 AoU 来源版本

6.2 10 条代表性 HSI 条目

每条 HSI 覆盖:ID、类别、需求描述、关键约束值(Part A)和 ASIL、验证、Owner、状态(Part B)。

Part A — 需求与约束

ID描述关键约束ASIL
HSI-001ADC0 同步触发源 = GTM_CH0TRIG0 source = GTM-CH0;不可运行时修改D
HSI-002ADC 采样窗口(PWM 中点)fsw = 10 kHz,T = 100 µs;中点触发窗 ±0.5 µs;不与开关瞬态区重叠D
HSI-003PWM 死区寄存器GTM-TOM DEADTIME = 450 cycles @ 300 MHz = 1.5 µs;写保护;CRC 入 NVMD
HSI-004Safety WDT 服务窗口Twdt = 10 ms;窗口 = [30%, 70%] = [3 ms, 7 ms];Ttask = 5 ms;5 ms ∈ [3 ms, 7 ms] ✓D
HSI-005Fault IRQ 向量及优先级向量 24,NMI priority 0;latency < 10 µs;ISR 直接拉 GATE_OFF,禁止进调度器D
HSI-006SMU 命令写入顺序SCMD = 0x4 (ASCE) 激活 SafeState;写顺序不可颠倒;激活后 100 ms 内禁止 SW 清除 SMU_CMDD
HSI-007RAM ECC 双 bit 错标志SMU_AG3.SF3 = 1 → 双 bit 不可恢复错误 → 立即进 SafeState;单 bit 计数 + 日志,阈值触发降级D
HSI-008Lockstep 比较错误标志SMU_AG0.SF0 → CPU Lockstep 比较失配 → 立即 SafeState;响应必须在 FDTI = 30 ms 内完成D
HSI-009SMU_SMR 安全模式寄存器SW 只读;HW 在 SafeState 下置位;SW 禁止清除——防软件遮盖 HW 检出的故障D
HSI-010TLF35584 FS0B 路径SMU_AG* 告警 → TLF35584 FS0B LOW → 1EDI3035AS EN LOW → PWM 关断;全链路时延 < 10 msD

Part B — 验证状态

ID验证方法Owner状态
HSI-001Static reviewHWVerified
HSI-002Func testSWVerified
HSI-003Static + FIHWVerified
HSI-004Func testSWVerified
HSI-005Timing measSWVerified
HSI-006Static reviewSWOpen
HSI-007FISWVerified
HSI-008FISWVerified
HSI-009Static reviewSWVerified
HSI-010FI + timingSYSVerified

6.3 FTTI 时序预算推导

从 HSI 条目出发,FTTI 预算必须端到端量化——否则 HSI 只是"数字列表",不是安全约束文件:

FTTI = 50 ms(EPS ASIL D 扭矩路径)

SW 路径:

  • FDTI_SW = 30 ms:200 Hz 扭矩环每 5 ms 检测一次,6 个周期 × 5 ms = 30 ms 检测窗
  • FRTI_SW = 5 ms:下一个 5 ms 任务周期内完成 SafeState 指令
  • 余量 = 50 − 35 = 15 ms(30%)

HW 路径(DESAT → FS0B → PWM 关断):

  • 源自 topic-desat-protection worked design:tblank + tdetect ≈ 1.2 µs;HSI-010 全链 < 10 ms 为 HW 路径 FRTI 上限

ADC 采样窗口合规性(HSI-002):

关键在于区分采样点开关边沿。中心对齐 PWM 的开关边沿发生在占空比翻转处,而载波峰/谷(即"PWM 中点")恰好落在导通(或关断)区间的正中——这正是选它做 ADC 触发点的原因:它离最近的开关边沿最远,而非落在开关瞬态里。以 ()、占空比 50% 为例,采样点到最近开关边沿约 :

故采样窗与开关瞬态区不重叠 ✓,HSI-002 合规成立(对应 Part B 标 Verified)。:切勿把开关瞬态区误摆到周期中点(采样点所在处)——那样会算出虚假重叠。实际 EV 逆变器用三角载波峰/谷触发 ADC,精确触发点与死区裕量仍需在具体 GTM 配置中核验;HSI 条目应注明"ADC trigger locked to GTM carrier peak,不允许软件改变触发源"。

6.4 FMEDA DC 贡献映射

HSI-007、HSI-008、HSI-009 三条安全机制直接贡献到 FMEDA 的诊断覆盖率(DC)分子——任何一条 HSI 条目 status=Open,对应 SM 的 DC 不能计入:

HSI ID对应 SMDC 贡献FMEDA 影响
HSI-007RAM ECC(双 bit → SafeState)99% (ASIL D 目标)贡献 SPFM 分子;DC 漏算 → SPFM 低估
HSI-008Lockstep 比较99%贡献 SPFM 分子
HSI-009SMU_SMR 只读策略验证 SW 不会清错误位间接维护 DC 的有效性

HSI 条目未 Verified 时,审计员会要求将对应 SM 的 DC 回退到 0%,导致 SPFM 不达标。

7. 设计陷阱 G1–G7

HSI 文档有七类高频、高代价的设计陷阱,多数到集成后期才暴露,修复成本极高。

G1: HSI 缺 ⑤ 安全机制类

审计员第一优先查类别⑤。只列了 HW resources 和 config,没有 Lockstep 状态读取约束、SMU SafeState 进入路径、WDT 服务序列——Confirmation Reviewer 直接退回,导致 HSI 版本冻结推迟 2-4 周。根因:安全机制通常在系统层设计时已决定,但"写进 HSI"这一动作被遗漏。

G2: 三方签字过期

HSI 签字人离职或换岗后,文件变成"无主文件"——审计员判定"未签 = 未交付"。规模 200 人以上的 Tier-1 项目,3 年开发周期内签字人变动概率接近 100%。纪律:每次 CCB 后若签字人已变动,必须新签字人重审并签字,不能沿用前任。

G3: 变更没走 CCB

最危险的场景:HW lead 把 Fault IRQ 优先级从 0 改为 5(认为是"小改"),SW 团队不知道 → ISR latency 假设失效 → 集成测试时 FTTI 超标才发现。即使是"只改一个 bit"的 HSI 修改,都必须走 CCB → SIA → 三方 Review,否则追溯链断裂。

G4: 追溯断链

HSI-008 的 ECC 告警寄存器地址从 SMU_AG3.SF3 变成了 SMU_AG2.SF5(MCU 版本升级),但 FMEDA 里的 DC 计算还引用旧地址的覆盖描述。FMEDA 重算时找不到这条 HSI 与测试用例的链接 → 审计员判定 DC 不可信 → SPFM 重新核算可能不达标。

G5: HSI 写在代码注释里

常见于初创公司或学术衍生项目:SW 把寄存器宏用注释标注为"HSI",但代码注释没有版本控制基线、没有签字、没有 CCB 历史。OEM 审计员看到"HSI 文档"指向 GitHub README → 立刻判定"no controlled HSI"→ 整批 ASIL D work product 被挂起。

G6: Safety Manual 版本不同步

TC397 Safety Manual v2.3 规定 WDT 服务窗口为 30-70%;如果厂商发布 v2.4 将窗口收紧为 40-60%,而系统 HSI 未更新,则 SW 仍按 30-70% 服务 → 实际上不满足 AoU → ASIL D 声明失效。芯片厂商 Safety Manual 更新通知必须强制触发 HSI Change Review,不能等到下个 milestone 才对齐。

G7: ASIL 分解路径共用 HSI 条目

当 ASIL D 分解为 B(D)+B(D) 时,两条路径必须独立。如果 HSI-008 Lockstep 标志被两条路径同时引用且只有一个 SM,则两路径共享同一硬件机制 → independence argument 崩溃 → Part 5 Annex E 的 SPFM 计算不成立。正确做法:B(D) 路径 A 有独立 WDT-A 和 ECC-A,路径 B 有独立 WDT-B 和 ECC-B,各自在 HSI 中单独成行。

8. 工作极限 C1–C3

三种场景下 HSI 管理面临结构性压力,需要在系统层预先规划缓解。

C1: 变更速度瓶颈 — 晚期集成压力

EPS ECU 进入系统集成阶段(距 SOP T-3 个月),SW 发现 ADC 触发时序假设与实际 GTM 实现不符 → 提出 HSI-002 变更 → CCB → SIA → ASIL D 三方 Review = 5-7 个工作日。若同期还有 3 条待审 CR,串行走完需 15-21 天,集成冻结直接推迟 3 周。缓解:HSI 草稿在 Part 6 设计启动前完成并通过三方 Review;独立无依赖的 CR 可并行进 CCB;紧急 CR 设立 24 小时快速通道(但签字不可省)。

C2: SEooC 双层 HSI — Safety Manual AoU 是隐式第一层

TC397 Safety Manual 规定的 AoU(Assumptions of Use)是芯片级 HSI(第一层);系统 HSI 是第二层。第一层发生变化时,第二层必须联动更新。典型场景:Safety Manual v2.4 新增 AoU"SW 激活 ASCE 命令后 100 ms 内禁止清除 SMU_CMD"(HSI-006 中已有此约束),但初版系统 HSI(基于 v2.3)未包含此项。集成测试时 SW 复位 SMU_CMD 触发安全机制误清 → FI 测试失败 → 追溯发现 AoU 未进系统 HSI。纪律:系统 HSI 头字段显式记录 Safety Manual 版本号;厂商更新通知 → 30 天内必须 HSI Review 对齐。

C3: 跨 MCU HSI 条目遗漏 — 多处理器接口盲区

EPS ECU 采用双 MCU 冗余架构(MCU-A ASIL D 监控 + MCU-B ASIL C 控制),两者通过内部 SPI 总线交换心跳和 CRC 校验。MCU-A 的 HSI 文档只描述 MCU-A 自身寄存器;MCU-B 的 HSI 只描述 MCU-B 自身。两份 HSI 都没有 inter-MCU 接口条目:SPI 帧格式、心跳超时(Thb)、CRC 多项式、共享 RAM 的地址分区。集成时双方对 SPI 帧大小、超时阈值各有假设 → 集成测试第一天就崩。缓解:创建"Inter-Processor HSI"专节(或独立文档)覆盖:共享内存布局、SPI 协议帧格式、心跳/挑战-应答时序、FTTI 贡献分配;三方签字覆盖到这份 inter-HSI。

9. 与其他 work product 的接口

HSI 不孤立存在,输入是 TSC + HSI 初稿,输出影响 Part 5/6 全套设计。下游影响范围:

  • TSC(Part 4 输出)→ HSI 是 TSC 的技术实例化。TSC 改"扭矩超 5% 进 SafeState",HSI 要落到具体 IRQ / 寄存器。
  • HW SR(Part 5)→ HSI ① ② ④ 直接对硬件需求生成约束。硬件设计师按 HSI 选 SoC、定 ADC 通道、画 PCB。
  • SW SR(Part 6)→ HSI ② ③ ⑤ 是软件驱动的输入。SW lead 必须每条 HSI 都映射到 driver 实现。
  • FMEDA(Part 5)→ ④ Diagnostics 项决定 DC 数值——HSI 改 → FMEDA 重算 SPFM/LFM
  • Safety Validation(Part 4)→ HSI ⑤ Safety mech 每条都要 fault injection 测试覆盖。

结论:改 HSI 一条,至少有 5 个下游 work product 要同步。这就是为什么 CCB 流程不能省。

10. ASIL 等级与 HSI 严格度

不同 ASIL 项目对 HSI 严格度要求不同,工具与签字制度是硬性门槛:

ASILHSI 严格度工具三方签字
QM可以 wiki / MarkdownGit 版本即可建议但不强制
A受控文档(Excel + Git)Excel 可接受I1 reviewer
BDOORS / Polarion / Codebeamer选其一I2 reviewer
CDOORS / Polarion 必须强制I2 + 部分 I3
DDOORS / Polarion + Tool QualificationTCL2+I3 全程

ASIL D 项目 HSI 改一条 → CCB → SIA → 三方 Review → FMEDA 重算 → 回归测试 → release note,平均 cycle 5-7 个工作日。

核心要点

  • HSI = Part 4 / Part 5 / Part 6 三方契约,不是单方"硬件交付物"。
  • 5 类必含:HW resources / Config / Constraints / Diagnostics / Safety mech——缺一不合规。
  • 三方联合签字(Part 6-6.4.6)是审计员引用频次最高的条款之一。
  • 逆变器 HSI 实战(TC397 EPS ECU):FTTI 50 ms → SW 路径 FDTI + FRTI = 35 ms 余量 30%;WDT 服务窗 [3, 7] ms @ 10 ms 超时,5 ms 任务周期服务 ∈ 窗口 ✓。
  • Excel 维护不到一个月就崩——ASIL ≥ C 必上 DOORS / Polarion / Codebeamer。
  • 变更走 6 步 CCB,紧急改动也不能省三方签字,ASIL D 均值 5-7 个工作日/条。
  • 改 HSI 一条至少 5 个下游 work product 要同步——TSC / HW SR / SW SR / FMEDA / Safety Validation。
  • 7 大陷阱:缺安全机制类 / 签字过期 / 绕 CCB / 追溯断链 / 代码注释代 HSI / Safety Manual 版本不同步 / ASIL 分解路径共用 SM。
  • 3 极限场景:晚期变更瓶颈(5-7 天/条 × 并发 CR)/ SEooC 双层 AoU 未联动 / 跨 MCU 接口条目盲区。

Cross-references