3. 硬件架构设计:从层级划分到度量指标

大家好,我是老周。做了十几年功能安全硬件,今天咱们聊聊硬件架构设计这块硬骨头。说实话,很多工程师一上来就盯着代码和电路图,忽略了架构层面的思考。结果呢?评审的时候被安全专家问得哑口无言。嗯,咱们今天就把这事掰扯清楚。

3.1 硬件架构层级划分

我个人习惯把硬件架构分成三个层级来看。这样分层,思路会清晰很多。

层级 范围 典型对象 我关注什么
系统级 ECU/控制器整体 域控制器、BMS、EPS 功能分区、通信拓扑、电源分配
子系统级 功能模块/芯片组 MCU、PMIC、SBC、传感器 冗余结构、诊断覆盖、独立性
元件级 单个IC/分立器件 ADC、运放、MOSFET 失效率λ、故障模式、安全机制

你想想看,如果系统级架构没搭好,后面子系统做得再漂亮,也可能白费功夫。我在一个EPS项目中就吃过这个亏——系统级没考虑独立供电域,结果诊断覆盖率怎么算都差一点。

核心原则:层级划分要跟ASIL分解、安全目标分配对齐。每个层级都要明确:谁负责什么安全机制?故障怎么检测?检测到了怎么反应?

3.2 冗余设计原则:1oo1、1oo2、2oo2

冗余设计,说白了就是用多个通道来兜底。但怎么兜,差别很大。我给大家拆开讲。

3.2.1 1oo1(1 out of 1)

单通道架构。一个通道干活,没有冗余。故障直接导致安全目标违背。适用于QM或ASIL A/B的低风险场景。

  • 优点:成本低、设计简单
  • 缺点:单点故障覆盖率要求极高
  • 我的经验:很多工程师觉得1oo1简单,但SPFM要达标,诊断覆盖率得做到99%以上。我见过一个项目,1oo1架构下漏了一个共因失效,PMHF直接超标。

3.2.2 1oo2(1 out of 2)

双通道并联。两个通道独立执行相同功能,只要一个通道正常,系统就能工作。故障时另一个通道继续运行。

  • 优点:高可用性、高安全性
  • 缺点:成本翻倍、需要比较器/表决器
  • 注意:两个通道必须独立——独立电源、独立时钟、独立布局。否则共因失效会让你前功尽弃。

3.2.3 2oo2(2 out of 2)

双通道串联。两个通道必须同时输出一致结果,系统才动作。任何一个通道故障,系统就进入安全状态。

  • 优点:安全性极高,单点故障不会导致危险
  • 缺点:可用性低——一个通道故障,系统就停了
  • 适用场景:安全关键且允许停机维护的系统,比如安全气囊控制器
架构 安全性 可用性 成本 典型ASIL
1oo1 中 高 低 ASIL A/B
1oo2 高 高 高 ASIL C/D
2oo2 极高 低 高 ASIL D

避坑指南:我曾经在一个ADAS项目中选了2oo2架构,结果客户抱怨系统频繁进入安全状态,影响用户体验。后来改成了1oo2加快速诊断,才平衡了安全和可用性。选型时一定要跟客户确认:安全优先还是可用优先?

3.3 诊断覆盖率概念

诊断覆盖率,英文叫Diagnostic Coverage,简称DC。它衡量的是:当故障发生时,你的安全机制能检测到它的概率。

公式很简单:

DC = λ_detected / λ_total

其中λ_detected是能被检测到的故障失效率,λ_total是该元件所有故障的总失效率。

ISO 26262把DC分成了几个等级:

  • 低(Low):DC < 60%
  • 中(Medium):60% ≤ DC < 90%
  • 高(High):90% ≤ DC < 99%
  • 极高(Very High):DC ≥ 99%

嗯,这里要注意:DC不是拍脑袋定的。你得基于故障模式分析(FMEA/FMEDA)来算。我习惯把每个元件的每个故障模式列出来,然后逐个评估安全机制能不能覆盖它。

小技巧:对于复杂芯片(比如MCU),别自己从头算。直接用芯片厂商提供的Safety Manual里的DC数据。但一定要确认:这些数据是基于什么假设?有没有共因失效的考量?

3.4 硬件架构度量指标:SPFM、LFM、PMHF

这三个指标,是功能安全硬件设计的“成绩单”。评审的时候,安全专家第一个看的就是它们。

3.4.1 SPFM(Single-Point Fault Metric)

单点故障度量。衡量的是:系统对单点故障的鲁棒性。说白了,就是看有多少单点故障被你覆盖了。

SPFM = 1 - (λ_SPF + λ_RF) / λ_total

其中λ_SPF是单点故障失效率,λ_RF是残余故障失效率。

ASIL等级 SPFM目标值
ASIL B ≥ 90%
ASIL C ≥ 97%
ASIL D ≥ 99%

3.4.2 LFM(Latent Fault Metric)

潜伏故障度量。衡量的是:系统对潜伏故障的检测能力。潜伏故障就是那种“坏了但没被发现,直到另一个故障来了才出事”的情况。

LFM = 1 - λ_LF / λ_total

其中λ_LF是潜伏故障失效率。

ASIL等级 LFM目标值
ASIL B ≥ 60%
ASIL C ≥ 80%
ASIL D ≥ 90%

3.4.3 PMHF(Probabilistic Metric for Random Hardware Failures)

随机硬件失效概率度量。这是唯一一个跟时间挂钩的指标,单位是FIT(Failures In Time,每10^9小时失效次数)。

PMHF = λ_total × (1 - DC) × 安全机制覆盖率 × 暴露时间

ISO 26262对PMHF的要求:

  • ASIL B:< 100 FIT
  • ASIL C:< 100 FIT
  • ASIL D:< 10 FIT

关键提醒:PMHF是概率值,不是绝对值。你算出来9.5 FIT,不代表实际产品就一定低于10 FIT。它只是告诉你:在统计意义上,这个设计有95%的概率满足要求。评审时专家会关注你的计算假设是否合理。

3.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了。我建议你保存下来,做架构设计时对照着看。

硬件架构设计知识体系 硬件架构设计知识体系 硬件架构层级划分 系统级 → 子系统级 → 元件级 冗余设计原则 1oo1(单通道) 1oo2(双通道并联) 2oo2(双通道串联) 诊断覆盖率(DC) 低(<60%)| 中(60-90%)| 高(90-99%)| 极高(≥99%) 硬件架构度量指标 SPFM(单点故障度量) LFM(潜伏故障度量) PMHF(概率度量) ASIL B: ≥90% | ≥60% | <100 FIT ASIL D: ≥99% | ≥90% | <10 FIT 核心逻辑:架构层级决定冗余策略 → 冗余策略影响诊断覆盖率 → 诊断覆盖率决定度量指标

3.6 实战建议

最后,给大家几个实战建议:

  1. 先定架构,再定指标。别反过来。指标是验证架构是否达标的工具,不是设计目标。
  2. 冗余不是越多越好。1oo2成本高、面积大,2oo2可用性低。选型时要权衡。
  3. 诊断覆盖率要留余量。我一般会在目标值上加2-3%的余量,防止计算偏差。
  4. PMHF计算要保守。用最坏情况的失效率,别用典型值。评审时专家会质疑你的乐观假设。

我的习惯:每次做完架构设计,我都会画一张类似上面的体系图,然后问自己三个问题:层级清楚吗?冗余够吗?指标达标吗?三个问题都回答“是”,再往下走。