编辑推荐: |
本文介绍了为什么需要ASIL分解及ASIL分解的意义相关内容。希望对您的学习有所帮助。
本文来自于微信公众号汽车功能安全,由火龙果软件Alice编辑、推荐。 |
|
为什么需要ASIL分解?我们先谈ASIL分解的意义。
要理解汽车功能安全中ASIL分解的意义,我们可以从“为什么需要分解”“分解的本质是什么”“分解的关键前提”这三个角度,用通俗的方式讲清楚。
先明确:什么是ASIL?
ASIL(汽车安全完整性等级)是ISO 26262标准里给汽车功能安全定的“风险等级”,从A到D,D级最高。简单说:
• ASIL等级越高,意味着这个功能失效后造成的风险(比如车失控、人员伤亡)越大;
• 对应的开发要求也越严:比如需要更严格的测试流程、更高的硬件可靠性(比如“芯片失效概率”要更低)、更复杂的软件验证等。
这就像“建房子”:普通房子(ASIL A)按常规标准建就行;但核电站的控制室(ASIL
D),从设计到材料都要按最高标准,防止出问题。

为什么需要ASIL分解?
问题来了:如果一个功能的安全目标被定为高ASIL等级(比如ASIL
D),直接按ASIL D开发可能会“太难、太贵、甚至做不到”。
比如:假设自动驾驶的“紧急制动功能”,如果安全目标是ASIL D,意味着它的传感器、算法、执行器都要按最高标准开发。
但可能存在:
• 单个传感器(比如激光雷达)很难做到ASIL D的可靠性(技术上暂时达不到);
• 按ASIL D开发的芯片成本太高,车价会飙升;
• 开发周期太长,赶不上产品上市节奏。
这时候,ASIL分解就派上用场了:把原来一个“高ASIL的安全目标”,拆成两个或多个“较低ASIL的子目标”,只要这些子目标同时满足,就能达到原来高ASIL的安全效果。
比如:把“ASIL D”的安全目标,分解成“ASIL B + ASIL
B”——两个子功能分别按ASIL B开发,合起来的安全效果等同于原来的ASIL D。
ASIL分解的本质:用“冗余”降低单个组件的压力
分解的核心逻辑是“冗余”:原来一个组件扛下所有(ASIL D),现在让两个组件“分工合作”,各自扛一部分(ASIL
B),但只要至少一个组件正常工作,整体功能就不会失效。
就像:原来一个人抬100斤(ASIL D),他可能抬不动;现在两个人各抬50斤(ASIL
B),只要两人不同时摔倒,就能把东西抬走——两个人的“冗余”,替代了一个人的“极限压力”。
分解的前提:必须“独立”,否则冗余没用!
但这里有个关键:两个子功能必须“独立”。什么是“独立”?
• 不能有“级联失效”:比如子功能A坏了,会直接导致子功能B也坏(比如A和B共用一根电线,电线断了两个都失效);
• 不能有“共因失效”:比如A和B的芯片来自同一家工厂,批次有问题,导致两个同时坏(同一个原因让两个子功能失效)。
如果不独立,就像“两个人抬东西,但用的是同一根脆弱的扁担”——扁担断了,两个人都得摔,和一个人抬没区别。所以,独立性是ASIL分解的前提,只有独立,冗余才有意义。
ASIL分解的最终意义
总结下来,ASIL分解的核心价值是:
在不降低整体安全目标的前提下(比如原来要达到ASIL D的安全水平),通过“分解+独立冗余”,把高难度、高成本的开发要求,拆成多个低难度、低成本的子要求。
这样一来,单个组件(比如传感器、芯片、软件模块)的开发门槛降低了(从ASIL
D降到ASIL B),更容易实现、成本更低、周期更短,同时又能通过冗余保证整体安全不打折。
举个例子:
自动驾驶的“碰撞预警”功能,安全目标是ASIL D。直接开发一个ASIL
D的预警系统很难,但可以分解成:
• 子功能1:基于摄像头的预警(ASIL B);
• 子功能2:基于毫米波雷达的预警(ASIL B)。
只要摄像头和雷达“独立”(比如用不同的供电、不同的芯片),即使一个失效,另一个还能工作,整体就能达到ASIL
D的安全效果,且单个子功能开发更简单。
所以,ASIL分解的本质是:用“独立冗余”换“开发可行性”,在安全和成本/周期之间找到平衡。
|