3、ASIL等级与传感器设计:ASIL等级定义、ASIL分解在传感器中的应用、如何确定传感器的ASIL等级。
3.1 ASIL等级到底是个啥?别被字母吓住了
说实话,我刚入行那会儿,看到ASIL A、B、C、D这几个字母,第一反应是——这跟汽车机油标号有啥关系?后来才明白,ASIL全称是Automotive Safety Integrity Level,汽车安全完整性等级。说白了,它就是ISO 26262标准里用来衡量功能安全风险的一套分级体系。
ASIL等级从低到高分为A、B、C、D四个级别。D级最高,A级最低。还有个QM(Quality Management),意思是“质量管理即可”,不需要额外做功能安全开发。你想想看,一个车窗升降按钮,出故障了最多就是窗户关不上,这顶多算QM。但要是刹车系统的传感器出问题,那可能就是人命关天的事了。
我习惯用一个简单的表格来帮团队理解这个分级逻辑:
| ASIL等级 | 严重度(S) | 暴露概率(E) | 可控性(C) | 典型应用场景 |
|---|---|---|---|---|
| QM | S0/S1 | E0/E1 | C0/C1 | 信息娱乐、车窗控制 |
| ASIL A | S1 | E2 | C2 | 尾灯、非安全相关照明 |
| ASIL B | S2 | E2 | C2 | 雨刮器、部分ADAS传感器 |
| ASIL C | S2 | E3 | C2 | 制动助力、转向系统 |
| ASIL D | S3 | E3 | C3 | 制动、转向、安全气囊 |
这个表格怎么用?举个例子。你设计一个超声波雷达,如果它失效了,最坏情况是车倒车时撞到人。严重度S2(重伤),暴露概率E3(每次倒车都可能发生),可控性C2(驾驶员有一定反应时间但有限)。查表,S2+E3+C2,对应的就是ASIL B或C。具体是B还是C,得看更细的量化分析。
核心要点:ASIL等级不是拍脑袋定的,它是基于风险分析的结果。S、E、C三个参数缺一不可。
3.2 ASIL分解:把大目标拆成小任务
好,现在你确定了一个传感器需要达到ASIL D。但问题来了——ASIL D意味着单点故障度量要大于99%,潜伏故障度量要大于90%。你一个几十块钱的传感器芯片,怎么可能做到?
这时候就需要ASIL分解了。我最早接触这个概念是在做激光雷达项目时,客户要求整个感知模块达到ASIL D。但激光雷达的发射单元、接收单元、处理单元,每个单独做到ASIL D,成本直接翻三倍。后来我们用了分解策略,把ASIL D(D)分解成ASIL B(B) + ASIL B(B),两个独立通道各承担一半责任。
ASIL分解的核心逻辑是这样的:
- 冗余分解:ASIL D(D) → ASIL B(D) + ASIL B(D)。两个独立通道,每个通道按ASIL B开发,但组合起来满足ASIL D要求。
- 功能分解:ASIL D(D) → ASIL C(D) + ASIL A(D)。主功能承担大部分安全责任,辅助功能承担小部分。
- 混合分解:ASIL D(D) → ASIL B(D) + ASIL B(D) + QM(D)。三个通道,两个做安全,一个做监控。
注意看括号里的(D),它表示“分解后的目标等级”。什么意思?就是说,虽然你按ASIL B开发,但你的安全目标依然是ASIL D级别的。你不能因为分解了就降低安全目标。
我的经验:ASIL分解最容易被忽视的是独立性要求。两个通道之间不能有共因失效。我曾经见过一个项目,两个传感器共用同一个电源芯片,结果电源一失效,两个通道同时挂掉。这分解了个寂寞。
3.3 如何确定传感器的ASIL等级?三步走
确定传感器的ASIL等级,我总结了一个三步法。这个方法我在多个项目中验证过,比较实用。
第一步:危害分析与风险评估(HARA)
这是最基础的一步。你需要列出传感器所有可能的失效模式,然后分析每个失效模式会导致什么后果。比如一个轮速传感器,失效模式可能是“输出信号丢失”,后果是“ABS系统无法正常工作,制动距离增加”。
HARA的输出是一张表格,包含:
- 危害事件描述
- 运行场景(高速、低速、停车等)
- 严重度S(0-3)
- 暴露概率E(0-3)
- 可控性C(0-3)
- 初步ASIL等级
第二步:安全目标定义
有了HARA结果,你就可以定义安全目标了。安全目标是一句“如果...那么...”的陈述。例如:
安全目标:防止轮速传感器输出错误信号导致ABS误触发。
ASIL等级:ASIL B
安全状态:传感器输出默认安全值,ABS系统进入降级模式
故障容错时间间隔:100ms
这里要注意,安全目标不是写出来就完事了。它需要被分解到具体的硬件和软件模块。我习惯用一张安全目标分解表来跟踪:
| 安全目标ID | 描述 | ASIL等级 | 分配模块 | 验证方法 |
|---|---|---|---|---|
| SG-01 | 防止传感器输出卡死 | ASIL B | 信号处理单元 | 故障注入测试 |
| SG-02 | 防止传感器输出超范围 | ASIL B | ADC采样模块 | 边界值测试 |
| SG-03 | 防止通信数据损坏 | ASIL B | CAN收发器 | CRC校验测试 |
第三步:ASIL等级确认与分解
最后一步,确认每个安全目标的ASIL等级是否合理。如果某个目标等级太高,考虑分解。如果太低,检查是否有遗漏的风险。
我建议用这个检查清单:
- ☐ 每个安全目标都有对应的HARA记录
- ☐ ASIL等级与S、E、C参数一致
- ☐ 分解后的子目标满足独立性要求
- ☐ 安全状态定义清晰可执行
- ☐ 故障容错时间间隔合理
避坑指南:我曾经犯过一个错误——把传感器的ASIL等级定得太高,结果硬件选型时发现根本没有合适的ASIL D级别的MCU。后来不得不重新做HARA,发现其实ASIL C就够用了。所以我的建议是:先做HARA,再定等级,不要反过来。
3.4 一个实际案例:毫米波雷达的ASIL分解
最后,我分享一个实际案例。去年我做的一个77GHz毫米波雷达项目,客户要求整个雷达模块达到ASIL C。我们做了HARA后发现,主要的危害事件是“目标检测丢失导致AEB不触发”。
我们做了这样的分解:
- 射频前端:ASIL B(D) — 负责信号发射和接收,独立供电
- 基带处理:ASIL B(D) — 负责FFT和CFAR检测,独立时钟
- 目标跟踪:ASIL A(D) — 负责卡尔曼滤波和航迹管理
- 诊断模块:QM(D) — 负责自检和健康监控
注意,射频前端和基带处理都是ASIL B(D),但它们是两个独立的通道。如果射频前端失效,基带处理可以通过自检发现异常并进入安全状态。反过来也一样。这样组合起来,整体就满足了ASIL C的要求。
嗯,这就是ASIL等级在传感器设计中的落地方法。说白了,就是先搞清楚风险有多大,再决定怎么保护,最后用分解来平衡成本和安全性。你想想看,是不是这个理?