2. 功能安全基础

各位好,欢迎来到第二章。这一章我们要聊的,是功能安全里最基础、也最绕不开的两个概念——安全生命周期和ASIL等级。

说实话,我刚入行那会儿,觉得这些东西太理论了。什么V模型、什么ASIL分解,听着就像PPT上的漂亮话。直到我第一次参与一个实际项目,在安全评审会上被专家问住,才意识到这些概念不是纸上谈兵,而是实打实的工程准则。

好,我们直接进入正题。

2.1 安全生命周期V模型

安全生命周期,说白了就是一套流程。它告诉你:从项目启动到产品退役,每一步该做什么、该产出什么。

ISO 26262推荐的是V模型。为什么是V?你想想看,左边是设计阶段,右边是验证阶段,中间是集成和测试。左边做什么,右边就验证什么,一一对应。

核心思想:每个设计活动都有对应的验证活动。没有验证的设计,等于没做。

我画了一张V模型的示意图,你看一眼就明白了。

安全生命周期V模型 1. 危害分析与风险评估 2. 安全目标定义 3. 功能安全概念 4. 技术安全概念 5. 系统/软件/硬件设计 安全确认 安全验证 集成测试 单元测试 代码实现 左侧:设计活动 → 右侧:验证活动 每个设计都有对应的验证,缺一不可

这个模型有几个关键点,我挑重要的说。

2.1.1 左侧:从概念到实现

左侧是从上往下走。先做危害分析,定义安全目标,然后逐步细化到功能安全概念、技术安全概念,最后落到系统、软件、硬件的具体设计。

每一步都在问一个问题:这个层级上,安全需求是什么?

2.1.2 右侧:从实现到确认

右侧是从下往上走。先做单元测试,然后集成测试,再验证安全概念,最后做安全确认。

每一步也在问一个问题:这个层级上,安全需求被满足了吗?

我的经验:很多团队只重视左侧的设计,忽略了右侧的验证。结果就是设计文档写得漂亮,但实际代码跑起来全是问题。我个人习惯是,在设计阶段就规划好验证方案,两边一起推进。

2.2 ASIL等级:A、B、C、D

ASIL,全称是Automotive Safety Integrity Level,汽车安全完整性等级。它定义了系统需要达到的安全严格程度。

ASIL有四个等级:A、B、C、D。D是最严格的,A是最宽松的。还有一个QM(Quality Management),意思是只做质量管理就行,不需要额外安全措施。

ASIL等级 严格程度 典型应用场景 所需安全措施
QM 无安全要求 信息娱乐系统 标准质量管理
ASIL A 低 尾灯控制 少量安全机制
ASIL B 中 雨刮控制、车窗升降 中等安全机制
ASIL C 高 自适应巡航(部分功能) 较强安全机制
ASIL D 最高 制动系统、转向系统 最严格安全机制

ASIL等级是怎么确定的?ISO 26262给出了三个参数:

  • 严重度(Severity, S):如果发生危害,对人员伤害有多严重?S0到S3。
  • 暴露概率(Exposure, E):这种危害场景出现的频率有多高?E0到E4。
  • 可控性(Controllability, C):驾驶员或其他人员能在多大程度上控制住危害?C0到C3。

三个参数组合,查表就能得到ASIL等级。

举个例子:制动系统失效。严重度S3(可能致命),暴露概率E4(每次开车都可能用到制动),可控性C3(很难控制)。查表结果:ASIL D。

2.3 ASIL等级分解

这里有个很实用的技巧——ASIL分解。什么意思呢?

假设一个功能要求ASIL D。直接实现ASIL D,成本高、难度大。但如果你把这个功能分解成两个独立的部分,每个部分承担一部分安全责任,那么每个部分的ASIL等级就可以降低。

比如:ASIL D可以分解为ASIL C(D) + ASIL A(D)。注意括号里的D表示原始等级,前面的C和A是分解后的等级。

分解规则是这样的:

原始ASIL 分解方案1 分解方案2 分解方案3
ASIL D ASIL C(D) + ASIL A(D) ASIL B(D) + ASIL B(D) ASIL D(D) + QM(D)
ASIL C ASIL B(C) + ASIL A(C) ASIL C(C) + QM(C) —
ASIL B ASIL A(B) + ASIL A(B) ASIL B(B) + QM(B) —
ASIL A ASIL A(A) + QM(A) — —

注意:分解后的两个部分必须相互独立。如果它们共享同一个故障模式,那分解就无效了。我曾经见过一个项目,把ASIL D分解成两个ASIL B,结果两个部分用了同一个电源芯片。电源一坏,两个都完蛋。这种分解就是自欺欺人。

2.4 安全目标与安全状态定义

安全目标,是安全生命周期中最顶层的安全需求。它回答一个问题:系统要避免什么?

比如:

  • 安全目标1:制动系统在单点故障下,仍能提供至少50%的制动力。
  • 安全目标2:转向系统在失效时,不能产生非预期的转向力矩。

每个安全目标都要分配一个ASIL等级。这个等级就是前面通过危害分析确定的。

安全状态,是系统在检测到故障后,要进入的状态。说白了就是:出问题了怎么办?

常见的安全状态有:

  • 安全关闭:系统完全关闭,比如切断电机电源。
  • 降级运行:系统以降低性能的方式继续运行,比如限速30km/h。
  • 故障容错:系统继续运行,但使用冗余通道。
  • 紧急操作:系统执行预设的安全动作,比如自动刹车。

我的建议:定义安全状态时,一定要考虑系统的实际物理行为。比如电动助力转向,安全关闭意味着方向盘突然变重,驾驶员能不能接受?降级运行到多少速度才安全?这些都要和系统工程师、整车工程师一起讨论。我见过一个项目,安全状态定义成“切断电源”,结果在高速上切断电源导致方向盘锁死,反而更危险。

安全目标和安全状态的关系,可以用一个简单的表格来梳理:

安全目标 ASIL 触发条件 安全状态 退出条件
避免非预期加速 D 油门踏板传感器故障 限制扭矩输出 故障消除或车辆重启
避免制动失效 D 主制动回路压力丢失 切换到冗余制动回路 维修后复位
避免转向锁死 D 电机过流故障 降低助力至50% 故障消除或车辆重启

嗯,这一章的内容就到这里。安全生命周期是骨架,ASIL等级是标尺,安全目标是方向,安全状态是底线。把这几个概念理清楚,后面的章节就好办了。