4. 诊断覆盖率分类
诊断覆盖率(Diagnostic Coverage,DC)是功能安全量化评估中的关键参数,它描述的是:当被监控的硬件失效发生时,诊断机制能够检测并报出该失效的比例。DC 不是一个“有或无”的开关,而是一个从 0% 到 99% 的连续区间。工程上为了便于选型、估算和审核,通常把 DC 划分为高覆盖率、中覆盖率、低覆盖率、无诊断四档。理解这四档的划分依据与典型数值,是正确使用 FMEDA、计算安全失效分数(SFF)和确定硬件架构约束(HFT/SC)的前提。
一、划分依据:不是“感觉”,而是可验证的检测能力
DC 的划分依据并非主观判断,而是基于诊断机制对特定失效模式的检测能力。核心判断维度包括:
- 检测范围:诊断是覆盖全部危险失效模式,还是只覆盖其中一部分?例如电源监控只覆盖电源相关失效,不覆盖 MCU 内核逻辑失效。
- 检测时机:是连续检测(如看门狗、窗口看门狗、锁步核),还是周期性自检(如上电自检、周期 RAM/ROM 测试)?连续检测通常能获得更高 DC。
- 检测独立性:诊断通道是否与被诊断通道共享电源、时钟、参考源?共享资源会降低有效 DC。
- 诊断的故障覆盖证明:是否有 FMEDA 分析、故障注入测试或安全手册数据支撑?没有证据的“高覆盖率”在审核中通常不被接受。
因此,DC 分档的本质是:诊断机制对危险失效模式的检测比例,以及该比例是否有可追溯的工程证据。
二、四档划分与典型数值
在 ISO 26262、IEC 61508 以及多数芯片安全手册中,DC 常按以下区间划分。注意:不同标准、不同器件类别(数字、模拟、电源、传感器)的典型值会有差异,下表给出的是工程中广泛引用的参考区间。
| 等级 | DC 区间 | 典型取值 | 典型诊断机制 | 证据要求 |
|---|---|---|---|---|
| 高覆盖率 | ≥ 99% | 99% | 锁步核、双核比较、ECC、窗口看门狗、连续 CRC、冗余采样 | FMEDA + 故障注入 + 安全手册 |
| 中覆盖率 | 90% ~ 99% | 90% / 95% | 周期 RAM/ROM 测试、看门狗、电压/时钟监控、CRC 校验 | FMEDA + 部分测试报告 |
| 低覆盖率 | 60% ~ 90% | 60% / 70% | 上电自检、简单比较、软件超时、有限范围监控 | 分析报告 + 设计评审 |
| 无诊断 | 0% ~ 60% | 0% | 无专用诊断,或仅有不影响安全目标的普通功能检查 | 无 |
提示:表中“无诊断”一档并非严格等于 0%。当诊断机制存在但检测能力很弱、且无法给出可信覆盖率时,工程上常按 0% 处理,以避免高估安全完整性。
三、从 DC 到 SFF:数值如何影响安全论证
DC 直接参与安全失效分数(SFF)的计算。对于硬件架构约束,SFF 决定了系统能达到的 ASIL 等级。简化关系如下:
λ_DU = λ_D × (1 - DC)
SFF = (λ_S + λ_DD) / (λ_S + λ_D + λ_DU)
其中:
λ_D :危险失效总失效率
λ_DD :可诊断的危险失效
λ_DU :不可诊断的危险失效
λ_S :安全失效
举例:某 MCU 内核危险失效率 λ_D = 100 FIT。若采用锁步核,DC = 99%,则 λ_DU = 1 FIT;若仅采用周期自检,DC = 90%,则 λ_DU = 10 FIT。两者相差 10 倍,直接导致 SFF 和硬件架构约束不同。因此,DC 分档不是“贴标签”,而是会显著改变安全论证结论的量化输入。
四、典型场景:同一器件在不同诊断下的分档
以常见的 MCU 为例,不同诊断组合会得到不同 DC 等级:
- 高覆盖率场景:锁步核 + ECC + 窗口看门狗 + 连续 CRC。适用于 ASIL D 安全目标,DC 通常取 99%。
- 中覆盖率场景:单核 + 周期 RAM/ROM 测试 + 看门狗 + 电压监控。适用于 ASIL B/C,DC 通常取 90% 或 95%。
- 低覆盖率场景:仅上电自检 + 软件超时。适用于 ASIL A 或 QM 升级场景,DC 通常取 60%。
- 无诊断场景:无任何专用安全机制,仅依赖系统级功能检查。DC 按 0% 处理。
需要强调的是,同一颗芯片在不同安全目标下,DC 取值可以不同。例如,某诊断对“输出错误”有效,但对“内核锁死”无效。因此,DC 必须按失效模式分别评估,不能用一个笼统的“芯片 DC”覆盖所有危险失效。
五、误区与复盘:DC 分档中最容易犯的错
误区一:把“有诊断”等同于“高覆盖率”。看门狗存在不等于 DC 高。若看门狗时钟与 CPU 同源,或喂狗逻辑可被失效程序绕过,其有效 DC 会大幅下降。
误区二:忽略共因失效。诊断通道与被诊断通道共享电源、时钟或参考电压时,共因失效会同时影响两者,导致实际 DC 低于理论值。
误区三:用厂商典型值代替项目实际值。安全手册给出的 DC 是“在特定使用假设下”的参考值。若项目未满足假设条件,必须重新评估或降档。
误区四:只算不测。高覆盖率通常需要故障注入或测试证据支撑。仅靠纸面分析声称 99%,在功能安全审核中容易被质疑。
复盘建议:在项目早期就建立“失效模式—诊断机制—DC 取值—证据来源”的对应表,并随着 FMEDA 迭代更新。对于无法给出证据的诊断,宁可保守降档,也不要高估 DC。保守的 DC 会带来更严格的架构约束,但能避免后期审核返工和安全论证失效。
总结来说,高、中、低、无诊断四档的划分,本质上是把“诊断机制对危险失效的检测能力”量化为可比较的数值区间。高覆盖率通常对应 ≥99%,中覆盖率对应 90%~99%,低覆盖率对应 60%~90%,无诊断对应 0%~60%。在工程实践中,应结合具体失效模式、诊断独立性和证据强度,选择保守且可论证的 DC 取值,而不是简单套用典型值。