2、HARA分析基础:HARA的目的与意义、危害的定义与分类、运行场景与运行模式
好,我们正式开始进入功能安全概念阶段的核心环节——HARA分析。
很多刚入行的朋友问我:“HARA到底有什么用?不就是填几张表格吗?”
说实话,我刚开始做功能安全时也这么想过。直到有一次,我在一个ADAS项目中漏掉了一个关键危害——摄像头在隧道出口瞬间的光线变化导致目标丢失。嗯,后果很严重。从那以后,我再也不敢轻视HARA了。
2.1 HARA的目的与意义
HARA,全称是Hazard Analysis and Risk Assessment,危害分析与风险评估。
说白了,就是回答三个问题:
- 系统会不会出问题?(危害识别)
- 出问题后果多严重?(风险评估)
- 需要多高的安全等级?(ASIL等级确定)
我个人习惯把HARA比作“安全体检”。你想想看,一个人去医院体检,不是为了证明自己没病,而是为了提前发现潜在风险。HARA也一样——它不是用来证明系统安全的,而是用来找出那些隐藏的、可能致命的漏洞。
核心意义:HARA是功能安全活动的起点,也是后续所有安全措施的依据。没有HARA,ASIL分解、安全目标、安全需求全都是空中楼阁。
我在项目中遇到过最典型的反面案例:某团队直接照搬竞品的HARA结果,结果因为运行场景不同(一个在高速,一个在市区),导致ASIL等级定低了。最后项目评审时被安全审计师当场打回,整个开发周期延期了3个月。
我的建议:HARA一定要自己做,不要偷懒。每个系统的运行场景、功能边界、使用环境都不一样,别人的结果只能参考,不能照搬。
2.2 危害的定义与分类
什么是危害?ISO 26262里定义得很清楚:危害是由系统功能异常导致的、可能对人员造成伤害的潜在事件。
注意关键词:功能异常。不是硬件故障,不是软件bug,而是功能层面的异常行为。
举个例子:
- 刹车踏板踩下去没反应 → 功能异常(危害)
- 刹车灯不亮但刹车功能正常 → 不是危害(只是故障)
危害的分类,我一般按影响对象来分:
| 分类 | 说明 | 典型例子 |
|---|---|---|
| 对乘员的危害 | 直接伤害车内人员 | 安全气囊意外展开、座椅调节夹伤 |
| 对行人的危害 | 伤害车外人员 | 自动紧急制动失效、转向误动作 |
| 对车辆本身的危害 | 导致车辆失控或损坏 | 动力中断、转向锁死、制动失效 |
| 对环境/公共安全的危害 | 影响其他交通参与者 | 信号灯控制错误、V2X通信异常 |
还有一种分类方式是按功能异常类型:
- 功能缺失:该有的功能没了(比如制动助力消失)
- 功能误动作:不该有的功能出现了(比如非预期加速)
- 功能超限:功能在错误的时间/幅度执行(比如转向过度)
- 功能时序错误:功能执行的顺序乱了(比如换挡逻辑错乱)
避坑指南:我曾经见过一个团队把“功能超限”和“功能误动作”混为一谈,结果ASIL等级定错了。记住:误动作是“有和无”的问题,超限是“多和少”的问题,两者风险等级完全不同。
2.3 运行场景与运行模式
这是HARA里最容易出问题的地方,也是我花时间最多的部分。
运行场景,指的是系统在什么环境下工作。包括:
- 道路环境:高速、城市、乡村、隧道、桥梁
- 天气条件:晴天、雨天、雪天、雾天、夜间
- 交通状况:畅通、拥堵、混合交通、行人密集
- 车辆状态:静止、低速、高速、转弯、上下坡
运行模式,指的是系统当前处于什么工作状态。比如:
- 正常模式
- 故障模式(降级模式)
- 维护模式
- 初始化/自检模式
- 紧急模式
为什么要区分场景和模式?
因为同一个危害,在不同场景和模式下,风险等级可能天差地别。
举个例子:
- “制动助力失效”这个危害,在高速场景下,ASIL等级可能是C或D
- 但在停车场低速挪车时,可能只有ASIL A甚至QM
我个人的习惯是:先穷举场景,再匹配模式。不要一上来就想着“这个危害在什么模式下最严重”,那样容易漏掉一些边界情况。
实战技巧:我在做EPS(电动助力转向)项目时,列了一个“场景-模式”矩阵表。横轴是运行场景(高速、低速、倒车、泊车等),纵轴是运行模式(正常、降级、故障等)。每个交叉点都问自己一句:“如果这个危害在这里发生,会怎样?”
嗯,这里要注意:场景不是越多越好。我见过有人列了50多个场景,结果大部分场景的危害等级都一样,纯属浪费时间。一般来说,5-8个典型场景就够用了,关键是覆盖所有极端和边界情况。
我的建议:场景选择要基于实际使用数据。比如你做的车主要在中国北方销售,那“冰雪路面”就是必选场景。如果主要卖到南方,“暴雨积水”场景就比“冰雪”更重要。别闭门造车,多问问市场部和售后团队。
小结
这一节我们讲了HARA的基础三要素:
- 目的与意义:HARA不是填表,是找漏洞
- 危害的定义与分类:功能异常才是危害,硬件故障不是
- 运行场景与模式:场景决定风险,模式决定严重度
下一节,我们会深入讲ASIL等级的确定方法——严重度S、暴露概率E、可控性C这三个参数到底怎么打分。到时候我会分享一个我踩过的坑,关于“可控性”打分的主观性有多可怕。
好,今天就到这里。有什么问题,欢迎在课程群里讨论。