功能安全基础与 ISO 26262:功能安全概念、ASIL 等级定义、安全生命周期模型

各位好,欢迎来到第二章。这一章我们聊聊功能安全的基础,说白了就是 ISO 26262 这个标准到底在讲什么。我刚开始接触功能安全时,觉得这标准又厚又绕,后来做项目多了才发现,它的核心逻辑其实很清晰——就是一套系统化的「防错」和「容错」方法论。

功能安全概念:到底在防什么?

功能安全不是「不出故障」,而是「即使出了故障,系统也能把风险控制在可接受的水平」。你想想看,线控转向没有机械连接,方向盘和车轮之间全靠电信号。一旦信号出错或丢失,后果是什么?

所以功能安全的核心就两件事:

  • 识别危险——什么情况下系统会失效?
  • 控制风险——失效后怎么保证安全?

我在做第一个线控转向项目时,团队花了两周时间专门做 HARA(危害分析与风险评估)。当时大家争论最多的是「方向盘卡死」算不算危险?后来达成一致:算,因为驾驶员会失去对车辆的横向控制。

关键点:功能安全不是追求「零故障」,而是追求「故障可接受」。ISO 26262 给了你一套框架,让你知道「可接受」的标准是什么。

ASIL 等级定义:风险有多高?

ASIL(Automotive Safety Integrity Level)是 ISO 26262 里最出名的概念。它把风险分成四个等级:A、B、C、D,外加一个 QM(质量管理级)。

等级怎么定的?看三个参数:

  • Severity(严重度)——事故对人造成的伤害程度
  • Exposure(暴露概率)——危险场景出现的频率
  • Controllability(可控性)——驾驶员能否避免事故

举个例子:线控转向的「非预期转向」——严重度 S3(生命危险),暴露概率 E4(几乎每次开车都会遇到),可控性 C3(驾驶员很难纠正)。三个参数一查表,妥妥的 ASIL D。

参数 等级 说明
Severity (S) S0 ~ S3 S3 代表致命伤害
Exposure (E) E0 ~ E4 E4 代表高频暴露
Controllability (C) C0 ~ C3 C3 代表几乎不可控

我的经验:ASIL 等级不是拍脑袋定的。我见过有人把「方向盘抖动」定成 ASIL D,其实它最多 ASIL A。定级一定要基于 HARA 数据,别凭感觉。

安全生命周期模型:从概念到退役

ISO 26262 把整个开发过程分成三个阶段:概念阶段、产品开发阶段、生产与运行阶段。每个阶段都有明确的活动和交付物。

我习惯把安全生命周期想象成一条流水线——每个环节都要有输入、输出和验证。漏掉任何一个环节,后面都可能出大问题。

ISO 26262 安全生命周期模型 概念阶段 HARA 安全目标 功能安全概念 产品开发阶段 系统级设计 硬件/软件设计 安全验证 生产与运行 生产发布 运行监控 退役处理 反馈与持续改进 ⚠ 注意 安全生命周期不是线性的。每个阶段都有验证活动, 发现问题要回溯到前一阶段修改。 安全计划 定义安全活动 安全案例 证据与论证 安全确认 最终验证

概念阶段的核心活动

概念阶段是安全生命周期的起点。我见过不少项目在这个阶段草草了事,结果后面改得痛不欲生。概念阶段主要做三件事:

  1. HARA(危害分析与风险评估)——识别所有可能的危险事件,评估风险等级
  2. 定义安全目标——针对每个危险事件,制定最高层级的安全要求
  3. 功能安全概念——把安全目标分解到系统架构中,明确「谁来做什么」

避坑指南:我曾经在一个项目里,HARA 只做了「转向失效」这一个场景。结果测试时发现「转向卡滞」和「转向抖动」都没覆盖到。后来补了三个安全目标,整个架构都要改。HARA 一定要做全,别偷懒。

ASIL 等级如何影响开发?

ASIL 等级越高,对开发过程的要求越严格。举个例子:

活动 ASIL A ASIL B ASIL C ASIL D
需求管理 推荐 推荐 必须 必须
代码覆盖率 语句覆盖 分支覆盖 MC/DC MC/DC
独立评审 可选 推荐 必须 必须
工具置信度 TCL1 TCL2 TCL3 TCL3

你看,ASIL D 要求 MC/DC 覆盖率,这意味着你的测试用例必须能证明每个条件独立影响结果。我当年做线控转向的 ASIL D 模块时,光写测试用例就花了两周。

安全生命周期中的验证与确认

验证和确认是安全生命周期的「守门员」。验证是「做对了没有」,确认是「做对了没有」——嗯,听起来绕,但区别很关键:

  • 验证(Verification):检查每个阶段的输出是否符合输入要求。比如,安全机制是否按设计实现?
  • 确认(Validation):检查最终产品是否满足安全目标。比如,线控转向在真实场景下是否安全?

我习惯用一句话记:验证是「过程正确」,确认是「结果正确」。两者缺一不可。

小技巧:做验证时,我建议用 checklist 逐条核对。做确认时,一定要用实车测试或高保真仿真。我在一个项目里用纯仿真做确认,结果实车测试时发现一个转向回正的问题,差点翻车。

总结一下

这一章我们聊了功能安全的基础:

  • 功能安全是「故障可接受」,不是「零故障」
  • ASIL 等级由严重度、暴露概率、可控性决定
  • 安全生命周期分三个阶段,每个阶段都有验证活动

这些概念是后面所有章节的基石。你理解了它们,后面讲安全机制、测试策略、故障注入时,就不会觉得飘在空中了。