2、危害分析与风险评估(HARA):HARA方法论、ASIL等级确定、安全目标定义
好,咱们进入正题。HARA,全称 Hazard Analysis and Risk Assessment,翻译过来就是危害分析与风险评估。这是功能安全设计的起点,也是整个安全生命周期的基石。说白了,就是回答三个问题:系统会不会出问题?出问题有多严重?我们该怎么防?
我见过不少团队,一上来就急着写代码、调算法,结果做到一半发现安全目标没定,ASIL等级没分,最后推倒重来。嗯,那滋味可不好受。所以,咱们先把HARA这块硬骨头啃下来。
2.1 HARA方法论:从场景到危害
HARA不是凭空想象的。它有一套标准流程。我个人习惯把它拆成四步走:
- 场景定义:车在什么路上跑?什么天气?什么速度?有没有行人?
- 功能识别:感知系统在这个场景下要干什么?比如“识别前方静止车辆”。
- 危害识别:如果功能失效,会发生什么?比如“漏识别导致追尾”。
- 风险评估:这个危害有多大概率发生?后果多严重?
举个例子。我在做AEB(自动紧急制动)项目时,遇到过这样一个场景:高速公路上,前方车辆突然急刹,本车感知系统需要立刻识别并触发制动。如果感知系统在这个场景下失效——比如摄像头被强光晃了,或者毫米波雷达没检测到——那危害就是“追尾”。
你想想看,这个危害是不是很直接?但光知道危害还不够,我们得量化它。
2.2 ASIL等级确定:给风险打分
ASIL,全称 Automotive Safety Integrity Level,汽车安全完整性等级。它分四个等级:A、B、C、D,其中D是最严格的(比如刹车系统),A是最宽松的(比如车窗升降)。
怎么确定ASIL等级?ISO 26262给了三个参数:
| 参数 | 含义 | 等级范围 |
|---|---|---|
| S(Severity) | 危害的严重度 | S0(无伤害)~ S3(致命) |
| E(Exposure) | 场景发生的概率 | E0(几乎不)~ E4(非常高) |
| C(Controllability) | 驾驶员能否控制 | C0(完全可控)~ C3(不可控) |
然后查表,得到ASIL等级。比如:
- S3 + E4 + C3 → ASIL D(最严)
- S2 + E3 + C2 → ASIL B
- S1 + E2 + C1 → ASIL A
- 如果三个参数都很低,可能是QM(质量管理,无需按ASIL开发)
我记得有一次,团队里有人争论“感知系统漏检一个行人”的ASIL等级。有人说S3(致命),有人说E3(常见),有人说C2(驾驶员可能反应不过来)。最后我们查了真实事故数据,发现高速场景下驾驶员几乎没时间反应,所以C给了3。最终ASIL D。嗯,这个结论让整个开发团队都紧张起来了——但这就是安全该有的态度。
2.3 安全目标定义:把危害变成可执行的要求
有了ASIL等级,下一步就是定义安全目标(Safety Goal)。安全目标是对危害的顶层安全要求,它必须可验证、可追溯。
格式一般是:“当[触发条件]时,系统应[安全行为],以避免[危害]”。
举个例子,还是刚才那个AEB场景:
- 危害:感知系统漏检前方静止车辆,导致追尾。
- 安全目标:当本车速度 > 30 km/h 且前方存在静止车辆时,感知系统应在 200ms 内输出目标信息,以避免追尾。
- ASIL等级:D
你看,这个安全目标就很具体了。它告诉开发人员:你要在200ms内检测到,而且要保证不漏。同时它也告诉测试人员:我要验证这个200ms的指标。
我建议每个安全目标都要带一个FTTI(Fault Tolerant Time Interval,容错时间间隔)。比如上面那个200ms,就是FTTI。如果系统在200ms内没反应,那就意味着安全目标被违反了。
2.4 实战:一个完整的HARA示例
咱们拿车道保持辅助(LKA)的感知系统来练练手。
场景:高速公路上,本车以100km/h行驶,车道线清晰。感知系统需要识别车道线,并输出车道偏离预警。
危害:感知系统漏识别车道线,导致车辆偏离车道,撞上护栏或相邻车辆。
风险评估:
- S:偏离车道可能撞上对向车辆 → S3(致命)
- E:高速公路上车道偏离场景常见 → E3
- C:驾驶员可能打瞌睡,无法及时控制 → C3
查表 → ASIL D
安全目标:
- SG-01:当本车速度 > 60 km/h 且车道线可见时,感知系统应在 100ms 内输出车道线位置,以避免车道偏离。
- SG-02:当感知系统检测到车道线置信度低于阈值时,应在 50ms 内发出降级提示,并请求驾驶员接管。
你看,两个安全目标,一个管正常情况,一个管故障情况。这就是功能安全设计的精髓——不仅要考虑正常功能,还要考虑功能失效时的应对。
好了,这一章就到这里。下一章咱们聊聊安全架构设计——怎么把安全目标落地到具体的硬件和软件架构中。到时候我会分享一些我在实际项目中用过的架构模式,保证干货满满。