4、ASIL分解策略:对称分解与非对称分解

各位工程师,咱们直接进入正题。ASIL分解,说白了就是“分而治之”。你想想看,一个ASIL D的需求,如果让一个模块单独扛,那设计压力、验证成本都高得吓人。那能不能把它拆成两个模块,每个模块分担一部分安全等级?这就是分解的核心思想。

我个人习惯把分解看作一种“责任分摊”。不是降低安全目标,而是把实现路径变得更灵活。ISO 26262-9第5章明确说了,分解后每个要素的ASIL等级可以降低,但整体必须满足原来的安全目标。

核心原则: 分解不改变安全目标,只改变实现路径。分解后的组合必须提供与原始ASIL等级同等的安全完整性。

4.1 对称分解:ASIL D = ASIL D + ASIL D

对称分解,就是“双保险”。两个模块都承担同样的最高等级。我在项目中遇到过不少次,客户上来就说“我要对称分解,两个D,绝对安全”。嗯,这里要注意,对称分解其实并不常见,因为成本太高了。

适用场景:

  • 两个独立通道,每个通道都独立完成安全目标
  • 需要最高级别的故障容错(比如刹车系统的双回路)
  • 两个通道之间没有依赖关系,完全冗余

验证要求:

  • 每个通道都要按ASIL D独立验证
  • 必须证明两个通道之间没有共因失效(CCF)
  • 需要做故障注入测试,验证单点故障不会同时影响两个通道
避坑指南: 我曾经见过一个团队,两个通道用了同一款MCU、同一版编译器、同一个PCB布局。结果一个电源纹波问题,两个通道同时挂了。这叫共因失效,分解白做了。记住:对称分解的前提是“独立性”,不是“复制粘贴”。

4.2 非对称分解:ASIL D = ASIL C + ASIL B

这才是工程实践中的主流。非对称分解允许两个要素承担不同的ASIL等级,只要它们的组合能满足原始等级。我个人最喜欢这种分解方式,因为它给了设计很大的灵活性。

为什么可以这样?

ISO 26262的安全逻辑是:两个独立要素,一个承担主要安全责任(高等级),另一个承担辅助或监控责任(低等级)。只要两者独立,且组合后的安全机制能覆盖所有危险事件,等级就可以“错配”。

常见分解模式:

原始等级 分解方案 典型应用
ASIL D ASIL C + ASIL B 主控+监控架构
ASIL D ASIL D + ASIL A 主通道+诊断通道
ASIL C ASIL B + ASIL A 功能模块+安全机制
ASIL B ASIL A + ASIL A 双通道低等级冗余
经验之谈: 我建议在项目初期就确定分解方案。别等到HARA做完了再想分解,那时候架构已经定了,改起来很痛苦。先想清楚:哪个要素做高等级,哪个做低等级,它们之间怎么通信、怎么互检。

4.3 分解后的验证要求

分解不是“分完就完事了”。验证才是重头戏。我见过太多项目,分解方案画得漂漂亮亮,一到验证就露馅。

验证核心要点:

  1. 独立性验证: 必须证明分解后的两个要素之间没有非预期的相互影响。包括:共享资源(电源、时钟、总线)、软件干扰(内存越界、优先级反转)、硬件耦合(共模噪声、温度漂移)。
  2. 安全机制验证: 每个要素的安全机制必须按它承担的ASIL等级来验证。比如ASIL C的要素,它的安全机制就要按ASIL C来测,不能降级。
  3. 组合验证: 两个要素合在一起,必须能覆盖原始ASIL D的所有安全目标。这需要做集成测试和故障注入。
  4. 共因失效分析(CCF): 这是分解验证的“必答题”。ISO 26262-9第6章给出了CCF的检查清单,包括:物理隔离、电气隔离、时序独立性、软件多样性等。
验证清单速查:
  • ✅ 每个要素的ASIL等级是否与分解方案一致?
  • ✅ 两个要素之间是否有独立的故障检测机制?
  • ✅ 是否做了CCF分析?覆盖率是否达标?
  • ✅ 组合后的安全目标是否被完整覆盖?
  • ✅ 是否有证据表明分解没有引入新的危险?

我曾经在一个项目中,分解方案是ASIL D = ASIL C + ASIL B。结果验证时发现,两个要素共享了同一个看门狗定时器。这意味着如果看门狗失效,两个要素同时失去监控。这就是典型的CCF,最后不得不重新设计硬件隔离方案。所以,验证一定要早做、做透。

4.4 知识结构图:ASIL分解全景

下面这张图总结了ASIL分解的核心逻辑和验证路径。你可以把它当作项目中的快速参考。

ASIL分解策略全景图 ASIL分解策略全景图 原始 ASIL D 对称分解 非对称分解 ASIL D + ASIL D 双通道完全冗余 ASIL C + ASIL B 主控+监控架构 验证要求 独立性验证 | 安全机制验证 | 组合验证 | 共因失效分析 CCF检查清单:物理隔离、电气隔离、时序独立性、软件多样性 分解不改变安全目标,只改变实现路径。验证是分解成功的唯一保障。

4.5 实战建议

最后,给各位几个实在的建议:

  • 别盲目追求对称分解: 除非你有明确的冗余需求,否则非对称分解更经济、更灵活。
  • 分解方案要早定: 最好在系统架构设计阶段就确定,别等到详细设计再改。
  • 验证要贯穿始终: 从分解方案评审开始,到最终的集成测试,每一步都要有证据。
  • CCF分析别偷懒: 这是分解验证的“命门”,做不好前面全白费。
我的习惯: 每次做分解方案,我都会先画一张“独立性矩阵”,把两个要素之间的所有共享资源列出来,然后逐个分析有没有共因失效的可能。这张表最后会作为验证计划的一部分,评审时特别好用。