3. 安全目标定义

概念阶段,说白了就是回答三个问题:我们要做什么?会出什么危险?怎么防止危险?

我见过不少团队,一上来就急着写代码、画原理图,结果做到一半发现安全目标没定清楚,回头再补HARA,那叫一个痛苦。所以,概念阶段千万别赶进度,地基打不牢,后面全是坑。

3.1 项目定义(Item Definition)

项目定义是功能安全的第一步。你得把你要开发的系统说清楚:它是什么、装在哪、跟谁通信、怎么用。

项目定义的核心输出:
  • 系统边界:哪些功能归你管,哪些是外部依赖
  • 功能清单:列出所有主要功能和子功能
  • 运行模式:正常模式、故障模式、维护模式等
  • 环境条件:温度、振动、电磁干扰等
  • 法规要求:ISO26262之外,还有没有其他标准要满足

我个人习惯,在项目定义阶段就拉上系统工程师、硬件工程师、软件工程师一起过一遍。为什么?因为很多边界问题,一个人想不全。比如一个电动助力转向系统,你以为是纯电子的,结果机械工程师告诉你转向柱的机械限位会影响故障响应时间——这种坑,我踩过不止一次。

3.2 HARA:危害分析与风险评估

HARA(Hazard Analysis and Risk Assessment)是整个功能安全流程的基石。它的目标就一个:找出所有可能造成人身伤害的系统故障,并给每个危害定个等级。

3.2.1 HARA的三要素

做HARA之前,你得先理解三个核心参数:

参数 含义 取值
S(Severity) 危害的严重度 S0(无伤害)~ S3(致命)
E(Exposure) 暴露在危险场景中的概率 E0(几乎不)~ E4(非常高)
C(Controllability) 驾驶员或其他人控制风险的能力 C0(完全可控)~ C3(几乎不可控)

这三个参数组合起来,就得到了ASIL等级(Automotive Safety Integrity Level):

  • ASIL A:最低安全等级
  • ASIL B:中等
  • ASIL C:较高
  • ASIL D:最高安全等级(比如刹车、转向)
  • QM:质量管理即可,无安全要求
一个小技巧: 我一般先做S、E、C的初步评估,再跟团队一起评审。因为一个人打分容易偏,三个人一起讨论,结果会更客观。有一次我们做ADAS的HARA,我打了S2,系统工程师坚持S3,最后发现他考虑的场景我确实漏了——多个人看,确实不一样。

3.2.2 HARA的执行步骤

  1. 场景分析:列出所有可能的运行场景(高速、城市、停车、充电等)
  2. 危害识别:每个场景下,系统故障会导致什么危害?
  3. 风险评估:对每个危害,评估S、E、C,确定ASIL等级
  4. 安全目标定义:每个危害对应一个安全目标

举个例子,一个电子刹车助力系统:

危害 场景 S E C ASIL
刹车助力突然失效 高速行驶中 S3 E3 C2 ASIL D
刹车助力延迟响应 城市拥堵 S2 E4 C1 ASIL B
刹车意外自动触发 停车场低速 S1 E2 C1 QM
注意: HARA不是一次性工作。系统设计变了、使用场景变了,HARA就要跟着更新。我曾经在一个项目里,因为没及时更新HARA,导致后期安全机制设计跟实际风险不匹配,最后返工了两个月。嗯,从那以后,我每次需求变更都会问一句:HARA要不要改?

3.3 功能安全概念(Functional Safety Concept)

有了安全目标,接下来就是功能安全概念。说白了,就是怎么用功能手段来实现安全目标。

3.3.1 功能安全概念的核心内容

  • 安全机制:检测故障、防止故障、减轻故障后果的具体方法
  • 故障响应时间:从故障发生到安全机制生效的最大允许时间
  • 安全状态:系统进入安全状态后的行为(比如降级运行、关闭、保持当前状态)
  • 功能冗余:是否需要备份路径

举个例子,还是那个电子刹车助力系统,它的安全目标是:“防止刹车助力在高速行驶中突然完全失效”(ASIL D)。

对应的功能安全概念可能是:

  1. 故障检测:监控助力电机电流和位置传感器,检测异常
  2. 故障响应:检测到故障后,50ms内切换到机械备份模式
  3. 安全状态:降级为纯机械刹车(无助力,但能刹住)
  4. 冗余设计:主控制器失效时,独立监控芯片直接触发安全状态

3.3.2 功能安全概念的分配

功能安全概念要分配到具体的系统元素上:

安全机制 分配给 ASIL等级
电机电流监控 硬件(电流传感器+ADC) ASIL D
故障诊断逻辑 软件(诊断模块) ASIL D
机械备份切换 硬件(电磁离合器) ASIL D
独立监控芯片 硬件(独立看门狗+安全逻辑) ASIL D
我的经验: 功能安全概念阶段,一定要写清楚故障响应时间。很多项目后期出问题,就是因为响应时间没定死,硬件说我能50ms,软件说我要100ms,最后谁都不改,系统达不到安全目标。所以,概念阶段就把时间线画清楚,后面才好落地。

3.4 概念阶段的知识体系

下面这张图,是我自己总结的概念阶段核心流程,你一看就明白了:

概念阶段核心流程 概念阶段核心流程 项目定义 HARA 场景分析 危害识别 风险评估 安全目标 功能安全概念 安全机制 故障响应时间 安全状态 功能冗余 概念阶段输出:项目定义文档 + HARA报告 + 功能安全概念文档 这些文档是后续系统、硬件、软件开发的输入,必须经过评审和确认

3.5 避坑指南

概念阶段常见的坑,我列几个:

  • 项目定义太模糊:边界不清,导致HARA漏掉关键场景。我建议用系统边界图把内外接口画清楚。
  • HARA打分靠拍脑袋:没有数据支撑,全靠“我觉得”。最好参考历史项目数据或行业基准。
  • 安全目标写得太笼统:比如“防止刹车失效”,没有具体时间和条件。要写成“在高速行驶中,刹车助力失效后,50ms内进入机械备份模式”。
  • 功能安全概念不考虑成本:ASIL D的方案当然好,但成本也高。要在安全目标和工程成本之间找到平衡点。
最后提醒一句: 概念阶段的文档,一定要版本管理。我见过一个项目,HARA改了三次,但功能安全概念还是第一版,结果安全机制跟实际风险对不上。嗯,从那以后,我每次更新HARA,都会同步更新功能安全概念,并且做一次一致性检查。