概念阶段:项目定义、HARA分析、安全目标定义、功能安全概念

概念阶段,说白了就是给整个功能安全项目打地基。我见过太多项目,上来就画架构、写代码,结果做到一半发现安全目标定得太高,或者压根没覆盖到真正的风险点。嗯,这时候再回头改,成本就大了去了。

这一阶段的核心任务,就是把「这辆车要做什么」和「它可能出什么危险」这两件事彻底搞清楚。我个人习惯把概念阶段拆成四个步骤,每一步都有它存在的道理。

概念阶段四步走:
项目定义 → HARA分析 → 安全目标定义 → 功能安全概念

1. 项目定义:先搞清楚我们要做什么

项目定义听起来简单,但坑不少。你得明确这系统是干什么的、装在什么车上、谁会用、在什么环境下跑。举个例子,一个自动泊车辅助系统,装在10万块的A级车和装在50万的豪华车上,安全要求能一样吗?

我建议你在项目定义阶段至少把下面这些信息写清楚:

  • 系统边界:哪些功能归你管,哪些是外部系统的事
  • 功能清单:每个功能的具体行为描述
  • 运行场景:高速、城市、地库、雨雪天……
  • 用户群体:驾驶员、乘客、维修人员
  • 已知约束:成本、功耗、算力、法规

我曾经在一个项目里,项目定义写得模棱两可,结果HARA分析时发现有个场景根本没考虑——车辆在隧道里突然失去GPS信号。你说这算不算运行场景?当然算。但项目定义里没写,后面就得补,一补就是好几周的工作量。

2. HARA分析:找到所有可能出事的点

HARA(Hazard Analysis and Risk Assessment)是概念阶段的重头戏。它的目标就一个:找出所有可能导致人员受伤的危险事件,然后评估它们的严重度。

HARA分析的标准流程是这样的:

  1. 识别危险:系统功能失效时,会发生什么?
  2. 分析场景:在什么情况下这个危险会变成事故?
  3. 评估风险:用S(严重度)、E(暴露概率)、C(可控性)三个维度打分
  4. 确定ASIL等级:根据S、E、C的组合,算出ASIL A/B/C/D或QM

这里我多说一句。很多人做HARA时容易犯一个错——把「系统失效」和「危险事件」混为一谈。系统失效是内部原因,危险事件是外部后果。比如「刹车助力失效」是失效,「车辆在高速上无法减速导致追尾」才是危险事件。你想想看,这两个东西能一样吗?

危险事件 S(严重度) E(暴露概率) C(可控性) ASIL
高速行驶中突然失去动力 S3(生命危险) E3(中高频) C3(难控制) ASIL D
倒车时影像延迟 S1(轻伤) E2(中等) C2(一般可控) ASIL A
车内氛围灯异常闪烁 S0(无伤害) E4(高频) C0(完全可控) QM

你看,同样是功能失效,ASIL等级可以差出好几个级别。这就是HARA的意义——把有限的开发资源,花在最需要安全措施的地方。

避坑指南: 我曾经见过一个团队,把HARA分析做成了「填空题」。每个危险事件都套用同样的S/E/C值,结果所有功能都变成了ASIL D。这既不现实,也没意义。HARA一定要结合真实场景,每个危险事件都要单独评估。

3. 安全目标定义:把危险变成要求

HARA分析做完,你手里会有一堆危险事件和对应的ASIL等级。下一步,就是把每个危险事件转化成一个「安全目标」。安全目标说白了就是一句话:系统不能做什么,或者必须做什么。

举个例子:

  • 危险事件:车辆在高速行驶中突然失去动力
  • 安全目标:车辆在行驶过程中,不得非预期地失去驱动力(ASIL D)

安全目标有几个关键属性:

  • 唯一性:每个安全目标只对应一个危险事件
  • 可验证:能不能通过测试或分析来确认它被满足了?
  • ASIL等级:继承自对应的危险事件
  • FTTI(容错时间间隔):从失效发生到危险发生,系统有多少时间反应

FTTI这个东西,很多人容易忽略。我建议你在定义安全目标时,就把FTTI写进去。比如「非预期加速必须在100ms内被检测并抑制」。没有这个时间约束,后面的安全机制设计就没法做。

4. 功能安全概念:把目标变成方案

安全目标定义好了,接下来就是功能安全概念(Functional Safety Concept, FSC)。这一步的任务是:把每个安全目标,分解成具体的安全机制和功能要求。

功能安全概念通常包含:

  • 安全机制:用什么方法检测和应对失效?比如冗余、自检、降级模式
  • 故障响应:检测到故障后,系统做什么?报警、降级、还是安全停车?
  • ASIL分解:如果一个安全目标是ASIL D,能不能拆成两个ASIL C的子系统?
  • 安全状态:系统进入什么状态才算安全?

我举个例子。假设安全目标是「转向系统不得非预期丧失助力」,ASIL C。功能安全概念可以这样设计:

  • 主助力控制器失效时,备用控制器接管(冗余设计)
  • 如果两个控制器都失效,系统进入机械直连模式(降级模式)
  • 仪表盘点亮黄色警告灯,提示驾驶员(故障响应)

你看,一个安全目标,可以分解出好几个安全机制。每个机制都有自己的ASIL等级、触发条件和响应时间。

个人经验: 功能安全概念阶段,我建议你多和系统架构师、硬件工程师、软件工程师坐在一起讨论。因为安全机制最终是要落地的,如果架构不支持,或者硬件算力不够,再好的概念也是空中楼阁。

概念阶段知识体系总览

下面这张图,把概念阶段的四个步骤和它们之间的关系画清楚了。你可以把它当作一个检查清单,做每一步时都回头看看,有没有遗漏。

概念阶段知识体系总览 概念阶段知识体系总览 项目定义 系统边界·功能·场景 HARA分析 危险识别·风险评估 安全目标 ASIL·FTTI·可验证 功能安全 概念(FSC) 项目定义要点 • 系统边界与接口 • 功能行为描述 • 运行场景清单 • 用户与使用模式 • 已知约束条件 HARA分析步骤 ① 识别危险事件 ② 分析运行场景 ③ 评估S/E/C等级 ④ 确定ASIL等级 ⑤ 输出HARA报告 安全目标属性 • 唯一对应危险事件 • ASIL等级继承 • FTTI容错时间 • 可验证性要求 • 安全状态定义 FSC要素 安全机制 故障响应 ASIL分解 安全状态 FTTI分配 概念阶段输出物 项目定义文档 + HARA报告 + 安全目标列表 + 功能安全概念文档 关键提醒 • 每个步骤的输出都是下一步的输入,不要跳步 • HARA分析的质量直接决定安全目标是否合理,值得花时间反复评审

概念阶段这四个步骤,每一步都环环相扣。项目定义不清,HARA就找不到真正的危险;HARA做得糙,安全目标就是拍脑袋;安全目标没定好,功能安全概念就是空中楼阁。嗯,说白了,地基打不牢,后面盖再高的楼也白搭。

我个人习惯在概念阶段结束时,组织一次跨部门评审。把项目定义、HARA报告、安全目标列表和功能安全概念文档摆在一起,让系统、硬件、软件、测试、质量的人一起过一遍。你想想看,这时候发现问题,改起来成本最低。等代码写完了再改?那叫救火。