ASIL 分解(ASIL Decomposition)
本质与导读
本质 把一条 ASIL D 安全需求拆成两路更低 ASIL 子需求(典型 D → ASIL B(D) + ASIL B(D)),整体仍达 ASIL D,从而大幅省开发成本——但成立的唯一前提是两路真正独立、无共因失效;共用 MCU / 电源 / 算法会让分解形同虚设,系统实际只剩低 ASIL。
1. 为什么要分解
ASIL D 工程比 ASIL B 贵 5-10×——在 MCU 选型、工具链(certified compiler)、verification 强度、文档密度上都成倍上涨。但 OEM 给的安全目标常常就是 ASIL D。ASIL 分解是把"系统级 ASIL D"在两个独立路径上分担,各路降到 ASIL B,大幅减成本——前提是两路真独立。
1.1 成本对比
ASIL D 与 ASIL B 在 4 个开发维度上都成倍上涨——MCU 单价、编译器认证费、测试 effort、文档密度,合起来 5-10× 总成本差。
| 维度 | ASIL D | ASIL B | 倍数 |
|---|---|---|---|
| MCU 选型 | TC397 / S32K344(锁步 + ECC + LBIST) | 普通 ASIL B MCU | 2-3× 单价 |
| 编译器 | 认证版(LDRA / Polyspace) | 普通 GCC + 静态分析 | 5-10× 工具费 |
| 测试覆盖率 | MC/DC + 边界条件 + 故障注入 | 语句覆盖 + 分支 | 5× test effort |
| 文档密度 | Safety Case + FMEDA + DFA + FTA + Audit | 简化文档 | 3-5× |
| 总开发成本 | 100 | 15-25 | 5-10× |
ASIL 分解 D → B + B 直接把 5-10× 的成本压回 2× 多一点(两路 ASIL B 各 ~25,合计 ~50)。
2. 五种合法分解组合
ISO 26262-9:2018 §5.4.9(配 Figure 2)给出合法的 ASIL 分解方案——D 族 3 种 + C 族 2 种共 5 种,任何分解都要落在标准方案里,否则不合规(2018 版正文并无 Table 1/3,老引用是 2011 版习惯,勘正 2026-07-10)。
2.1 ASIL D 分解的 3 种组合
ASIL D 可以分成 3 种合法组合——按"两路 ASIL 等级和"必须 ≥ D 的伪加法规则。最常用是 B + B(对称冗余),C + A 用于"主控复杂 + 简单监控"或反过来"简单主控 + 复杂监控"。注意:C(D)+A(D) 和 A(D)+C(D) 是同一种分解——只是 main/monitor 角色互换,标准 §5.4.9 把它当一个方案,不是两种。
| 原 ASIL | 子路径组合 | 标记 | 适用场景 |
|---|---|---|---|
| D | ASIL D(D) + QM(D) | D + QM | 一路完整 ASIL D 实施,另一路只做无关功能 |
| D | ASIL C(D) + ASIL A(D) | C + A | 不对称 —— 哪边 C / 哪边 A 视架构而定 |
| D | ASIL B(D) + ASIL B(D) | B + B | 最常用 —— 两路对称冗余 |
常见误解:很多人(包括国内一些教材)…
常见误解:很多人(包括国内一些教材)以为"D = A + C 不合法"——这是错的。标准 ISO 26262-9:2018 §5.4.9(Figure 2)明确列出 C(D) + A(D) 为合法组合,无论标 "C+A" 还是 "A+C" 都指同一种分解。误解源头通常是把 A(D) 当成普通 ASIL A 而忽略 (D) 括号的含义——见 §3.1。
2.2 ASIL C 分解的 3 种组合
ASIL C 同理可分 3 种组合——成本压力比 D 小,实务里很少真正分解 C(因为 C 本身开发成本不算高)。
| 原 ASIL | 路径 1 | 路径 2 | 标记 |
|---|---|---|---|
| C | ASIL C | QM | C + QM |
| C | ASIL B(C) | ASIL A(C) | B + A |
| C | ASIL A(C) | ASIL B(C) | A + B |
2.3 不允许的组合
下面这些组合ISO 26262 明确不允许——分解出的 ASIL 等级不能任意组合:
- ❌ ASIL D → ASIL B(D) + ASIL A(D) (B + A 总和不够 D)
- ❌ ASIL C → ASIL A(C) + ASIL A(C) (两个 A 不够 C)
- ❌ ASIL B → A(B) + QM(B)(1+0=1 < 2,不够 B)——但 ASIL B 可分解为 A(B) + A(B) 或 B(B) + QM(B)
- ❌ ASIL A → QM(A) + QM(A)(0 < 1)——ASIL A 可分解为 A(A) + QM(A)
关键认知:ASIL D 与 C 的分解等级数总和满足"D = 4 / C = 3 / B = 2 / A = 1 / QM = 0"的伪加法——D = D+QM(4+0)= C+A(3+1)= B+B(2+2)。注意这是按等级序数加,不是某些教材里"D=6"那种取 SPFM 百分比意会算法。
3. ASIL B(D) / A(D) 标记的含义
ASIL B(D) 是 ISO 26262 的特殊标记 —— B 是这一路开发的实际 ASIL,(D) 是 inherited(继承的)系统级 ASIL。两个含义都重要:
| 用 ASIL | 何时 |
|---|---|
| B | 选 MCU / 编译器 / 验证策略时,按 B 等级流程 |
| D(继承) | DFA 时检查独立性,仍要按 D 标准做共因分析 |
最容易踩的坑:开发时按 ASIL B 跑工具链没问题,但 DFA / 独立性论证仍要按 ASIL D 严格度——否则两路共因失效让分解失效,系统降回 ASIL B。
3.1 (D) 是"独立性税"——A(D) 不等于普通 ASIL A
很多人看到 D = A + C 的 A 那一侧,以为可以"按 ASIL A 流程做就行"——错。括号里的 (D) 不只是个标签,它带来一组实打实的额外义务,让 A(D) 的真实成本接近 D 而不是 A:
| 维度 | 普通 ASIL A | ASIL A(D) | 是否减负 |
|---|---|---|---|
| MCU / 工具链 | ASIL A 等级 | 可用 ASIL A | ✓ 减负 |
| 单元测试覆盖率 | statement | statement | ✓ 减负 |
| 独立性论证(DFA) | 按 A | 按 D —— 与 C(D) 那侧的共因要全切断 | ✗ 不减 |
| 集成 / 系统测试 | 按 A | 按 D —— 联合通道仍走 ASIL D 测试 | ✗ 不减 |
| 变更管理 / 配置管理 | 按 A | 按 D —— 全程 ASIL D 流程 | ✗ 不减 |
| 失效率账(SPFM/LFM) | ASIL A 无量化要求(-) | 联合到 ASIL D 预算,不能单独脱钩 | ✗ 不减 |
| Safety case 文档密度 | 简化 | 按 D 走完整论证 | ✗ 不减 |
结论:A(D) 的成本通常接近 ASIL B/C,而非 ASIL A。这就是为什么 industry 实务里 80% 项目选 B(D)+B(D) 而不选 A(D)+C(D)——B+B 对称带来的工程便利(同平台、同测试方法、同组织结构)远比"省几个 ASIL 等级"重要。
4. 4 个独立性硬约束
ASIL 分解的合法性完全建立在两路独立——独立性破坏时,分解 illusion 立刻碎。ISO 26262 列了 4 类必须独立的方面:
4.1 硬件独立(no shared hardware)
两路必须用物理上分离的硬件资源——同一颗 MCU 的两个 core 一般不算独立(共时钟 / 共电源 / 共封装),除非特殊设计。
| 共享项 | 是否破坏独立 |
|---|---|
| 同 MCU 同 core | ✗ 完全不算独立 |
| 同 MCU 不同 core(非 lockstep) | △ 视设计,共时钟 / 电源算共因 |
| 同 MCU lockstep 双核 | △ 实际是 ASIL D 单元,不是分解 |
| 不同 MCU | ✓ 真独立(典型 ASIL B(D) + B(D) 配置) |
| 同电源域 | ✗ 共因 |
| 同时钟源 | ✗ 共因 |
| 同 reset 域 | ✗ 共因 |
典型 ASIL D → B(D) + B(D) 实施:主 MCU + 监控 MCU(不同 vendor、不同电源、不同时钟、不同 reset)。
4.2 软件独立(no shared software)
两路代码必须没有共享 module / library / 算法逻辑。
| 共享项 | 是否破坏独立 |
|---|---|
| 同算法用两次 | ✗ 同 bug 同时出错 |
| 同 OS / RTOS | △ 取决于隔离机制(MMU / hypervisor) |
| 同 compiler | △ 编译器 bug 是共因 |
| 不同算法不同实现 | ✓ 真软件多样性 |
| 不同语言 / 不同 compiler | ✓ 最强多样性 |
4.3 数据独立(no shared data / signal)
两路用的输入数据 / 信号不能完全相同来源——否则数据出错两路同时算错。
4.4 规范独立(no shared specification)
两路的需求规范不能完全同源——同一个规范错误让两路同时实现错。
| 共享项 | 是否破坏独立 |
|---|---|
| 同需求文档 | ✗ 需求 bug 共因 |
| 同需求拆两个职能写 | △ 改善但仍同源 |
| 同需求由独立 team 写两次 | ✓ 高级实施(航天用) |
实务里规范独立要求最难达到——大多数车企 OEM 给一份规范,Tier1 自己实现两路。这种情况严格上算 partial independence,DFA 时要把"规范错误"列为共因风险。
5. 经典实例
5.1 EPS:主控 + 监控双 MCU
EPS 是 ASIL D → B(D) + B(D) 分解的教科书案例:
| 路径 | 角色 | ASIL |
|---|---|---|
| 主控 MCU(如 TC275) | 计算扭矩 + 控制 PWM | B(D) |
| 监控 MCU(如 STM8AF) | 独立计算扭矩 + 比较 + 触发 STO | B(D) |
独立性论证:不同 vendor / 不同电源 / 不同时钟 / 不同 reset / 软件不同 team 写。
5.2 主驱:Lockstep 单 MCU + ASC 硬件双通道
主驱典型不用 D → B + B 分解,而用 D 单 MCU + 硬件 STO 通道:
| 路径 | 角色 |
|---|---|
| Lockstep MCU(TC397 锁步) | 单元素就是 ASIL D |
| SBC + Safety MCU(独立监控) | 不算分解,算冗余监控 |
这是另一种合法架构:ASIL D 单元 + 独立 ASIL D 监控通道。比 B+B 实施成本高但开发周期短。
5.3 BMS:D + QM 分解
BMS 的 cell monitor 是 D + QM 分解的典型:
| 路径 | 角色 | ASIL |
|---|---|---|
| 主 BMS MCU | SOC 计算 + 接触器控制 | ASIL D |
| HMI 显示 IC | 仅显示电量 | QM |
关键:HMI 显示完全不影响安全(显示错误用户最多惊讶,不会触发 hazard),所以 QM 即可。
6. ASIL 分解的 4 步操作流程
把分解从概念变成可执行走 4 步——每步缺失或错误都让分解失效。
| 步 | 动作 |
|---|---|
| 1 识别候选需求 | 哪条 ASIL D 安全需求适合分解(实施成本高 / 有自然双路结构) |
| 2 提议分解组合 | D + QM / C + A / B + B / A + C 选哪种,看现有架构和成本 |
| 3 独立性论证 | DFA 走 4 类独立(HW / SW / Data / Spec)逐项验证 |
| 4 追踪分配 | 后续 traceability 中明确每个低 ASIL 子需求继承的(D)标记 |
7. 5 个 ASIL 分解反模式
ASIL 分解失败集中在 5 个反模式——这 5 个共同特征是"看起来合法但实际共因没消除",让 ASIL D 系统实际只是 ASIL B 保护。
| 反模式 | 表现 | 修法 |
|---|---|---|
| 共 MCU 单 core | ASIL D 拆成两个 ASIL B 软件模块跑同 core | 必须不同 core / 不同 MCU |
| 共算法 | 两路用同一个 control law 实现,只是输入不同 | 用算法多样性(不同实现) |
| 共电源 / 时钟 / reset | "不同 MCU 但同 SBC 供电" | DFA 必走,把电源 / 时钟 / reset 拆开 |
| DFA 没做 | 提议 B + B 但没系统性走 DFA 4 项独立 | 强制每个分解都附 DFA 报告 |
| 规范独立失败 | OEM 一份规范,内部一个 team 写两路实现 | 至少两个 team 独立 review,记录"规范错误"为共因风险 |
| A(D) 当普通 A 做 | 因为标 "A" 就用 ASIL A 流程,DFA / 测试 / 文档全走 A | 见 §3.1—— (D) 括号意味独立性 + 集成测试 + 文档全按 D 走 |
7.1 共 MCU 单 core 的隐蔽危险
最常见也最致命的反模式:工程师以为"两个 ASIL B 软件模块就是 D + D = D 等价"——其实两路跑在同 core 同 OS,单点 core 故障两路同时挂。这种"分解"完全是 illusion。修法:即使两个软件模块,也要跨 core(或者用 lockstep,但那时整体本来就是 ASIL D 单元,不算分解)。
7.2 规范独立失败的隐蔽成本
绝大多数车企项目里规范独立这条做不到——OEM 一份 TSR,Tier1 内部一个 system engineer 写,两路 dev team 都按这一份实施。这意味着规范本身的错误会同时传播到两路。修法:DFA 时把"规范错误"列为已知共因风险,在两路验证阶段加 specification cross-check(test team 用不同人独立 review)。
深入 CCF (Common Cau…
深入 CCF (Common Cause Failure) 量化 + 7 类 DFI + lockstep 三重缓解 + 5 反模式 → 共因失效 CCF 深度
8. EPS B(D)+B(D) 完整 DFA Worked Design — 电动助力转向双 MCU 分解
ASIL 分解的完整操作包含 4 步:识别候选需求 → 提议分解组合 → DFA 独立性论证 → 追踪 ASIL B(D) 分配。本节以 48V EPS(电动助力转向)ASIL D → B(D)+B(D) 分解为对象,走完全部 4 步,并在每步给出「什么会让分解失效」的工程理由。
8.1 候选安全需求与分解选型
EPS 的 HARA 给出 SG-1:「避免意外转向扭矩超出 ±1.0 Nm」,ASIL D。这条安全需求需要落到架构实现。
选择 B(D)+B(D) 而非 C(D)+A(D) 的理由:
- 主控和监控功能天然对称(两侧都要算扭矩并判断是否合理)
- 同一 Tier1 工具链可复用 ASIL B 等级的工具,对称架构减少配置管理复杂度
- 相比不对称 C+A,B+B 的两路在同一 MCU 家族(如 Infineon AURIX 产品线)有良好支持,集成测试体系成熟
分解声明:SG-1(ASIL D)分解为:
- SR-1a:主控 MCU(TC275)计算并输出电机目标扭矩,ASIL B(D)
- SR-1b:监控 MCU(CYPRESS CY8C4145)独立计算参考扭矩并对比主控输出,检测超偏则触发 STO,ASIL B(D)
8.2 DFA 独立性论证(4 维逐项)
DFA 的核心输出是「证明两路没有单一共因能同时让两路失效」。以下按 4 维展开。
维度 1:硬件独立性
| 检查项 | 设计状态 | 独立性结论 |
|---|---|---|
| MCU 型号与厂商 | 主:Infineon TC275(Tricore);监:Cypress CY8C4145(Cortex-M0+) | ✓ 不同 die,不同 fab |
| 电源域 | 主:TLF35584 SBC Ch1(5V);监:TLF35584 SBC Ch2(3.3V,独立 LDO) | ⚠ 同一 SBC!见 §8.3 讨论 |
| 时钟源 | 主:板载 40MHz XTAL;监:内置 RC 振荡器(±2% 精度)校准用外部 32kHz 晶振(独立) | ✓ 物理不共享 |
| Reset 电路 | 主:TC275 内置 ESR + TLF35584 WD;监:CY8C4145 内置 POR | ⚠ WD 由同一 TLF35584 驱动主路 |
| 通信接口 | 两路通过 SPI 互发 heartbeat + torque compare;该 SPI 是监控通道,非控制通道 | ✓ 监控用途,不共用控制数据 |
维度 2:软件独立性
两路代码由不同 team 开发(主控:A 组;监控:B 组),但有以下需要 DFA 标记的项:
| 检查项 | 设计状态 | 独立性结论 |
|---|---|---|
| 算法实现 | 主:Park 变换 + PI 电流环算目标扭矩;监:基于轴向力矩估算(不同方法) | ✓ 算法多样性 |
| 编译器 | 主:TASKING V6.3r1(Tricore 认证版);监:IAR EWARM 8.50(Cortex-M 认证版) | ✓ 不共用 |
| RTOS | 主:AUTOSAR OS on EB tresos;监:无 RTOS(裸机 ISR) | ✓ OS 不同,降低 OS-bug 共因风险 |
| 代码 review | 两 team 交叉 review 各自接口规范,不交叉看实现 | ✓ 规范独立见维度 4 |
维度 3:数据/信号独立性
| 检查项 | 设计状态 | 独立性结论 |
|---|---|---|
| 转向轴转矩传感器 | 主:Torque Sensor A(SPI 通道 1);监:Torque Sensor B(SPI 通道 2)—— 两个独立物理传感器 | ✓ |
| 车速信号 | 两路均来自同一 CAN 消息(VCU 广播) | ⚠ 共因:VCU CAN 广播故障两路同时丢 |
| 电流采样 | 主:ADC-A 采样相电流;监:独立电流传感器 IC(不共 ADC) | ✓ |
维度 4:规范独立性
| 检查项 | 设计状态 | 独立性结论 |
|---|---|---|
| 安全需求文档 | 主监两路的需求来自同一份 TSR(System Arch 写) | ⚠ 规范单一来源:规范错误为共因 |
| 需求 review | 两 team 独立 review,但 review 的是同一文档 | △ 部分改善 |
8.3 共因失效识别与缓解(CCF 分析)
DFA 识别出以下残留共因失效(CCF),并给出缓解措施:
| CCF ID | 共因 | 影响 | 缓解措施 | 缓解后状态 |
|---|---|---|---|---|
| CCF-1 | TLF35584 同一 SBC 供电两路 | SBC 失效两路同时失电 | 将监控 MCU 改为由独立 LDO(如 TPS7A16)供电,非 SBC 路径 | ✓ 缓解后独立 |
| CCF-2 | 车速 CAN 消息单一来源 | VCU CAN bug 两路同时用错速度 | (a) 在两路分别加 E2E/CRC 保护;(b) 监控路可用独立轮速脉冲作 fallback | △ ISO 26262 不强制双物理源——单源若经 E2E/超时检测能被两路各自识别、且检测到即各自进安全态即可接受,但共享源仍作 coupling factor 留在 DFA |
| CCF-3 | TSR 规范单一来源 | 规范错误被两路同时实现 | 在 Safety Case 中登记此项为 known CCF;系统级测试加「规范级别」的错误注入(独立测试工程师制独立测试规范) | △ 部分缓解;DFA 报告中标 residual risk |
| CCF-4 | PCB 电磁场(同板相邻) | 辐射 EMI 同时干扰两 MCU | 主监 MCU 用物理屏蔽隔离(接地铜皮 + 独立 I/O 路径),EMC DV 测试覆盖 | ✓(EMC DV 覆盖后接受) |
8.4 SPFM / LFM 门槛与 CCF 失效率账
ISO 26262-5:2018 对随机硬件失效给出两个硬件架构度量门槛,ASIL D 的 item 整体须满足:SPFM ≥ 99%(§8.4.5 Table 4)、LFM ≥ 90%(§8.4.6 Table 5),并满足 PMHF < 10 FIT(< 1e-8/h,Table 6)。B(D)+B(D) 分解后,每路作为 ASIL B 要素只需达到 ASIL B 门槛——SPFM ≥ 90%、LFM ≥ 60%(注意不是 97%/80%,那是 ASIL C 的值;这一栏是 ASIL 分解最容易记混的载重数字)。
| ASIL | SPFM(Table 4) | LFM(Table 5) | PMHF(Table 6) |
|---|---|---|---|
| B | ≥ 90% | ≥ 60% | < 100 FIT |
| C | ≥ 97% | ≥ 80% | < 100 FIT |
| D | ≥ 99% | ≥ 90% | < 10 FIT |
但降门槛的前提是两路的联合失效率仍达 ASIL D 目标——而这个账被共因失效(CCF)封顶。按 IEC 61508-6 Annex D 的 beta-factor 模型,冗余通道的共因贡献是单通道失效率乘一个 β 因子:
冗余把两路「独立」部分的联合失效压到二阶小量(近似正比于 λ 平方 × 检测窗口),但 CCF 项 是一阶的,不随冗余下降——它是分解后系统残余危险失效率的地板。IEC 61508-6 Annex D 给 β 的典型区间:逻辑器件 0.5%–5%,传感器/执行末端 1%–10%,由约 40 项 checklist 打分定值。因此 §8.3 的 CCF 缓解不是走过场:每条缓解都在把 β 往下压,β 压不下去 就顶破 ASIL D 的 PMHF 预算。
注意 ISO 26262-9:2018 Clause 7 的 DFA 本身是定性分析(识别 dependent failure initiator 与 coupling factor),不强制给出数值 β;β 的量化沿用 IEC 61508 的 beta-factor 法。DFA 的定性结论(哪些 coupling factor 未消除)直接决定 β 落在区间的高端还是低端——所以 DFA 不是纸面 checklist,其结论要反馈进失效率预算。
8.5 追踪与 Safety Case 闭合
分解完成后,每个 SR-1a / SR-1b 都携带 (D) 标记进入需求追踪体系:
- 需求追踪:DOORS 中 SG-1(ASIL D) → SR-1a ASIL B(D) + SR-1b ASIL B(D),双向可追溯
- 测试:单元测试按 ASIL B 跑(代码覆盖率、MC/DC 部分放宽),集成和系统测试仍按 ASIL D 严格度(两路合并验证 + 故障注入全覆盖)
- DFA 报告:每个 CCF 条目有 ID / 描述 / 缓解措施 / 验证方法 / 责任人 / 状态
- 变更控制:任何对主控或监控 MCU/PCB/算法的变更,都触发 DFA 影响分析(不能只改一路忘了检查共因)
9. Gotcha 链(7 条 — ASIL 分解域高频陷阱)
ASIL 分解的 gotcha 大多在「看起来分解了但实际没有」的模式——DFA 跑了但漏了真正的共因。以下 7 条是从真实审计中总结的高频错误。
Gotcha-1: 同 SBC 供电「独立」双 MCU。工程师的两颗 MCU 用不同 PCB 区域、不同电源 pin,自认为「硬件独立」。DFA 复查后发现:两路都由同一颗 TLF35584 SBC 供电,SBC 是单点故障。真实案例:SBC 内部 LDO 出现短路(BOM 不一致导致降额失败),两颗 MCU 同时掉电,B+B「分解」失效,系统实际只有 QM 级保护。修法:监控 MCU 改用独立路径供电(独立 LDO 或独立 SBC),在 DFA 电源独立性检查表中明确标注每路的 power rail 来源,追溯到 PCB 物理铜皮和连接器。
Gotcha-2: 同 CAN 消息两路都订阅。两路 MCU 用来自同一 ECU(如 VCU)的同一帧 CAN 消息做算法输入(车速、加速度踏板信号)。VCU CAN node 故障时,两路同时丢失/错误接收。根本问题:数据源独立性被破坏。缓解方案有三:① 两路订阅物理上不同的传感器(如 Resolver + Hall 双传感器方案);② 若只有一路信号,在每路 MCU 上独立加 E2E 保护(不同 CRC 多项式),并且在 Safety Case 中登记「CAN 源单一为已知 CCF,通过 E2E+独立超时检测降低风险」;③ 最强方案:监控路不依赖 CAN,用独立物理信号(如 PWM 轮速脉冲)。
Gotcha-3: 锁步 MCU 当 B+B 分解。项目方选用 TC397 AURIX 锁步 MCU,声称「两个 CPU Core 构成 B(D)+B(D) 分解」。根本错误:锁步是单 ASIL D 元素的内部诊断机制(两 Core 执行相同代码、比较输出,检测 transient/random fault),不是 ASIL 分解。两 Core 共享 die、共时钟、共电源,本质是一个硬件单元。锁步的 SPFM/LFM 是 ASIL D 单元的失效覆盖度,不能拆开算 B+B 的独立两路。若想分解,主监必须是不同物理器件(不同封装)。
Gotcha-4: A(D) 路按 ASIL A 跑 DV 测试。D = A(D) + C(D) 分解,A(D) 路工程师看到自己负责的是「ASIL A」,用 ASIL A 的测试覆盖率跑 DV(statement coverage,不做 MC/DC,不做故障注入)。错误:(D) 括号在 DV 阶段意味着「与 C(D) 路的集成测试必须按 ASIL D 严格度」——联合验证要覆盖 D 级要求(含故障注入覆盖 ASIL D SPFM 目标)。每路单独测试按各自 ASIL(A 或 C),但系统集成测试不能简化为 A 级,否则 DFA 中的 CCF 缓解措施(需要系统级故障注入验证)根本没有覆盖到。
Gotcha-5: 变更后 DFA 未更新。M8 ECO:主控 MCU 因供货问题从 TC275 更换为 TC277(同平台但不同封装/supply variant)。工程师认为「只是封装变了,功能一样」,未更新 DFA。真实风险:TC277 与 TC275 的 PMIC 兼容性不同,更换后 TLF35584 的电流输出裕量降低,导致冷启动期间 SBC 过流——之前 CCF-1 已经「缓解」的结论在新硬件上失效。规则:任何 safety-relevant element 的变更(MCU、电源 IC、连接器、PCB stack-up)都必须触发 DFA 影响分析(change management checklist 中加 DFA-revisit 为 mandatory gate)。
Gotcha-6: 规范独立性只靠「分开 team」。DFA 声称:「我们两个 team 独立写了两个 Safety Requirements Specification(SRS),满足规范独立性」。审计发现:两个 SRS 都来自同一个上级 TSR 文档,TSR 本身没有经过独立 review。TSR 里有一个转矩限值写错(阈值单位混淆,mN·m 写成 N·m)——两个 SRS 都继承了该错误,两路 MCU 都按错误阈值实现。结论:规范独立不是「写两份文档」,而是「文档的错误不共传播」。最低要求:TSR 本身由独立人员做交叉 review,review 结论进 Safety Case;理想:监控路 SRS 由不同背景 engineer 从 SG 重新推导,而非从 TSR 复制。
Gotcha-7: 独立性证据只有纸面 DFA,缺运行态验证。DFA 报告写了「两路无硬件共因」,但未包含故障注入测试(将一路 MCU 主动断电/注入 stuck-at fault,验证另一路确实能检测并触发 STO)。实质:纸面 DFA 是假设,运行态故障注入才是地面真相。若监控 MCU 的 torque compare 窗口设置错误(阈值用了 mN·m 单位但实际阈值是 N·m,放宽了 100×),在正常运行中两路一起工作时绝不会发现,直到故障注入测试才能揭露。ISO 26262-9:2018 用 Clause 5 定义分解、Clause 7 的 DFA 提供「充分独立」的证据——独立性声明必须有对应验证活动(含故障注入)作为 evidence,否则分解在 Clause 7 层面根本不成立。
10. Corner 分析(3 条 — 边界工况下分解判断如何变化)
分解的判据不是二值的,几类边界工况会改变结论。以下 3 条是实务里最常引发争论的边界。
Corner-1: 工具链统一 vs 规范独立要求。Tier1 为了成本效率,主控和监控共用同一 IDE(Vector DaVinci + TASKING),同一版本控制系统(Git Monorepo),甚至同一 AUTOSAR BSW(EB tresos 双许可证)。表面上「两路独立」,实际上 IDE 本身的 bug(配置丢失、代码生成错误)是共因。结论:工具链是否算「共因」取决于 ISO 26262-8:2018 Clause 11(软件工具置信度)。TCL 由 Tool Impact(TI1 无影响 / TI2 可能引入或漏检错误)× Tool error Detection(TD1 高 / TD2 中 / TD3 低,能否检出或防止工具错误)推出 TCL1–TCL3:TI1 → TCL1(无需鉴定);TI2 时 TCL 随 TD 变差而升高,TCL2/TCL3 的工具需 qualification(增加使用信心、评估开发流程、验证、或按安全标准开发)。判据是:若共用工具达 TCL1(错误要么不影响安全功能、要么必被检出),共用可接受;若工具落在 TCL2/TCL3 且缺独立检出手段,共用同一版本就是 coupling factor,须版本/工具链分离或补独立验证。
Corner-2: ASIL D 系统降级为 ASIL C 后分解策略变化。项目中期,HARA 复审后某 SG 从 ASIL D 降到 ASIL C(E 重新评估降了一级)。原有 B(D)+B(D) 架构此时可简化为 ASIL B(C)+ASIL A(C),理论上节省监控路一档开发成本。实战建议:不要为降一档而重构——已有 B(D)+B(D) 架构在 ASIL C 场景下等价或超满足,重构引入的变更风险(DFA 重跑、认证重做)远大于节省的开发成本。这是「ASIL 过设计」的正面案例:设计选档略高于需求,变更稳定后才优化。
Corner-3: 供应链风险下的独立性(同 fab 两颗不同 MCU)。主监 MCU 来自不同品牌(Infineon + Cypress),但两者都在台积电 40nm 制程加工。fab 级别的工艺系统缺陷(如某批次 40nm 栅氧化层问题)理论上可同时影响两路。ISO 26262 的处理:制程级系统缺陷属 systematic failure,不在 FMEDA 随机失效范围,标准把它交由 DFA 定性排查 + 在 SEooC 的 AoU 中声明「不同 die / 不同设计的同 fab 共因不在本 DFA 范围内」,由 OEM 系统集成方承担这一已知 residual risk。需说明:ISO 26262 并不强制不同 fab——对最高关键项(如制动、转向),个别 OEM 出于商务要求主监使用不同晶圆厂的 die 以彻底消除 fab 共因,这非标准条款,会显著增加供应链管理成本,需 OEM 商务决策。
核心要点
- ASIL 分解是架构层成本优化技巧——D → B + B 把开发成本压回 ~2× 而非 5-10×
- 合法组合(ISO 26262-9 §5.4.9/Figure 2):D→D(D)+QM(D) / C(D)+A(D) / B(D)+B(D);C→C(C)+QM(C) / B(C)+A(C);不允许 A+A、B+A 等不足组合承接 D
- ASIL B(D) 标记:B 是实际开发等级,(D) 是继承的系统级——DFA 仍按 D 严格度
- 4 个独立性硬约束:no shared HW / SW / Data / Specification —— 任一破坏分解失效
- 典型实施:主 MCU + 独立监控 MCU(EPS),Lockstep MCU + 硬件 STO 通道(主驱),D + QM(BMS HMI)
- 4 步操作:识别候选 → 提议组合 → DFA 独立性论证 → 追踪 ASIL B(D) 分配
- 5 反模式戒除:共 MCU / 共算法 / 共电源时钟 reset / DFA 没做 / 规范独立失败
- 完整 DFA worked design(§8):48V EPS ASIL D → B(D)+B(D),4 维独立性矩阵 + 4 条残留 CCF(SBC 共电源 / CAN 单源 / TSR 单源 / PCB EMI)逐条缓解 + DOORS 追踪闭合
- CCF 是失效率地板:每路降到 ASIL B 门槛 SPFM ≥ 90% / LFM ≥ 60%(非 97%/80%,那是 ASIL C),但 CCF 项(β·λ,IEC 61508-6 Annex D β=1–10%)是一阶失效率不随冗余下降,联合路径仍须达 ASIL D 的 PMHF < 10 FIT
Engineering Objects
引用此页的结构化 Engineeri…
引用此页的结构化 Engineering Object(v2.0 Copilot 自动生成,不要手动编辑此段)。
- standard ·
standard_iso26262_part9— ISO 26262 Part 9 ASIL Analyses
Cross-references
- ← 索引
- 功能安全
- HARA 危害分析与风险评估 — HARA 输出 ASIL,分解决定如何在架构层达成
- DFA / FMEDA / FTA 三种核心分析方法 — DFA 是分解合法性的论证手段
- ISO 26262 硬件要素三类分类 — 分解后两路各自的硬件要素分类
- 安全机制目录 — 不同 ASIL 等级 SM 组合的复杂度差
- 汽车 MCU — Lockstep vs Software diversity 的实施方式
- SBC 系统基础芯片 — Safety MCU + SBC 作为独立监控通道
- 转矩安全 — EPS / 主驱的 ASIL 分解实例
- 失效模式速查