前言:
本文主要以简单易懂的描述向大家介绍功能安全基础知识。
如下三个问题是大家学习ISO2626时Zui常问的三个问题。将尝试一一解答,本文只讲第一个问题,后面两个问题将在第二讲和第三讲中阐述。
ISO26262要实现的目的是什么?即这个标准的诞生是为了解决什么问题?
每个安全等级是怎么定义出来的,为什么该产品的这个功能要满足ASIL A 或 ASILD?在定义这些等级时,要考量哪些因素?
每个等级对应的有哪些工作要做,这些工作做完了,是不是说就永远安全了?
本人关于功能安全入门系列的文章有第一讲至第三讲,其中
第一讲:功能安全ISO26262轻松入门第一讲
第二讲:功能安全ISO26262轻松入门第二讲[预计更新时间 TBD]
第三讲:功能安全ISO26262轻松入门第三讲[预计更新时间 TBD]
本文章适合汽车行业刚刚入门的嵌入式软件工程师、系统工程师、测试工程师及其余对功能安全感兴趣的朋友们。本文由PeterPan先生提供,由于作者水平有限,本文章中难免会出现疏漏和不当之处,敬请批评与指正,问题反馈邮@163.com
欢迎关注本团队关于汽车车身电子系统嵌入式软件开发入门系列文章
《汽车车身电子系统嵌入式软件开发入门》
用电子手刹(EPB)举例,在车上它的作用是为了在停车后,防止车辆溜车。工作原理是通过把轮胎抱紧来防止溜车。从功能安全角度分析EPB系统时,我们会问如果EPB功能失效会怎么样?会对人产生危险的伤害。问,会对人产生什么样的伤害?此时就需要细分,如果车停在斜坡上,停在平地上,驾驶员在车内,驾驶员已离开车辆,等等场景。
场景1:如果车停在斜坡上,肯定会往下溜,往下溜就有可能撞到路边的物体和行人。无论是撞到行人还是物体,这都很危险。
场景2:如果驾驶员在车内,车溜的时候,驾驶员反应过来后,可以踩刹车,让车子停住;
场景3:如果驾驶员不在车内,车子溜的时候,几乎没有任何措施可以控制车辆,此时就非常危险。
我们会对所有的场景进行细分,取出一个Zui严重的场景。这个Zui严重的场景评分就代表了该零件的Zui高安全等级。
什么是风险(Risk)?
风险(Risk)是危害的严重程度(Severity)乘以发生可能性(Probability)或频率(Frequency)
Risk=Severity×Frequency
严重度一般大家都能理解,那发生频率如何理解?在上面的例子中,发生频率指的是驻车这件事发生的频率,因为每次用车周期内都用到驻车,它的发生频率就很高。有个例子非常好地解释了发生频率这个概念。它就是安全气囊,安全气囊的伤害场景可以分为两类,一类是在发生严重碰撞时没有爆炸;另一类是在正常行驶时爆炸了。发生严重碰撞的事故很少发生,一个驾驶员一生也许只会发生一次,正常行驶却天天发生,严重碰撞的发生频率很低,而正常行驶的发生频率很高。发生严重碰撞安全气囊没有弹开的安全等级是ASILA,而正常行驶时发生安全气囊爆炸是ASIL D。
上述提到的风险除了对人生命产生的伤害,对人健康产生伤害也算风险。比如夏天的时候,粗心的父母离开车辆时,把孩子忘在了车的后排座椅上。太阳暴晒,在密封的情况下,车内的温度可以在xx分钟内上升到xx度,孩子会受到不可逆的身体损伤。
按照ISO26262执行,风险是不是就完全不存在了?当然不是,任何事情都不可能那么。如下图,黑色的箭头从左到右风险越来越高。
Zui右侧的黄色方框代表一个特定功能会产生的危害(没有任何额外的保护机制)
绿色代表当前社会大众可以容忍的风险
蓝色代表ISO26262需要把风险降低到这个位置。即在大众可容忍的风险以下。
一个已经存在的风险,期望彻底把它消除是不现实的。我们能做的的是把风险降低到可以被社会大众接受的水平。这里有一个概念需要强调“社会大众可以容忍的风险”。其实在不同的历史时期,不同的国家,不同的社会群体之间,大家对风险的接受程度是不一样的。从历史阶段看,在汽车刚刚诞生的时候,没有安全带,没有安全气囊;今天不仅有安全带,安全气囊等被动安全的配置,还有很多主动安全的配置。这就说明现代人对安全更重视,即对风险的接受程度比以前低了。从不同国家看,在欧洲,交通法规对行车规范的要求非常高,这样的好处是出现交通事故的概率会很低;在印度,索马里,阿富汗等国家,显然交通法规的意识非常淡薄,即这些国家的人们对风险的容忍程度比欧洲要高。从社会群体看,在2021年的今天,中国马路上行驶的汽车中,有些车连安全气囊都没有,比如五菱宏光;有些车不仅有前气囊,还有侧气囊。这两类车的消费群体对风险的容忍也是不一样的。
下图中左下角的绿色部分表示可接受风险,右上角部分是不可接受的风险。一个危害当前是落在右上角不可接受风险区域,如果想把这个危害降低到可接受区域,理论上有两个方法,第一个是降低严重度(Severity),第二个是降低发生频率(Frequency)。
举两个例子,分别介绍如何在两个维度上降低风险。
例1.刹车系统如果意外失效,会导致很严重的事故。如果我们在刹车系统中加入诊断功能,当诊断出刹车故障时,在仪表上亮起故障提示客户,屏蔽车辆的油门踏板信号,避免车辆继续加速。这样出现碰撞事故,事故造成伤害的严重程度也会大大减轻。
例2.燃油车每辆车都有一个油箱,当发生碰撞,油箱是有爆炸风险的。爆炸这件事情一旦发生,后果都是非常严重的,很难在严重度上降低风险。在车辆设计的时候,油箱被放在了乘员仓的下面,而不是放在发动机仓。原因是乘员舱是Zui安全的,被直接碰撞的概率非常小。这就从发生的频率的维度降低风险。
下面用一张图上述内容:
X轴是Level of severity(严重度等级), Y轴是Probability ofharm(危险发生的可能性)。
分析一个特定功能的失效,它的严重度(Severity)是确定的。比如说车辆在高速行驶时,由于转向助力系统发生失效,导致转向系统卡死。这种场景下产生的危害,毫无疑问Zui坏的情况是车毁人亡。其严重性是确定的。
需要分析该伤害发生的场景,以及该场景在所有用车场景中的占比。标准用了一个名词叫暴露度(Exposion)来说明。如何理解暴露度,我们还是用转向系统卡死这个例子来解释。转向系统卡死,在车辆静止时,是不会产生伤害的;只有车辆行驶时,才有可能产生伤害。汽车行业一般认为车速小于5km/h时与行人发生碰撞是安全的;当车速大于5km/h时与行人发生碰撞是危险的;当车速大于30km/h撞到树上,就可能发生生命危险。转向系统卡死这个失效的暴露度,就是车速大于5km/h的用车场景在所有场景中的占比。显然这个占比非常高,以本文作者的用车习惯,这个占比高达95%以上。
Zui后需要分析,当失效发生后,驾驶员可以在多大程度上控制车辆(Controllability),避免伤害发生。还是用转向系统卡死举例,当方向盘转不动的时候,驾驶员唯一可以做的是踩刹车减速,来尽可能降低伤害。只有在驾驶员要转动方向盘时,才会发现转不动。此时有可能是要转弯,有可能是要变道。如果是转弯,那直接撞在护栏上了;如果是要变道,驾驶员可以放弃变道,踩刹车Zui终让车停下来,由于无法转动方向盘,车辆Zui终停止的位置可能是路中央,在停车过程中和停车后极容易发生碰撞事故。驾驶员的控制度是很低的。
上述暴露度(Exposion)和控制度(Controllability)的分析,Zui后可以得出危害发生的可能性(Probabilityof theharm)。有了伤害的严重度(Severity)和伤害发生的可能性(Probability),在上述坐标轴上就可以确定一个点,当前图中该点所在位置的风险,是不可接受的区域。
既然这个风险是不可接受的,那么我们就要想办法把它降到可接受的范围。选择降低严重度几乎是不可能的,因为一件伤害的危害几乎是确定的。一般选择降低发生的可能性。通过安全分析提出一些降低发生可能性的设计需求,把Zui终的风险降低到可接受的范围。
一个产品,有的客户没有提出安全要求;有的客户要求ASIL A;有的客户要求ASILB。那经常有同事问,这些要求在开发上有什么不同?如何理解一个安全措施是不是满足要求?这是一个很复杂的问题,以后有机会会详细介绍,本文为了让大家定性地理解这一点。我举了一个生活中的例子。大家可能在很多场合都接触过消防知识,当发生火灾,逃生的过程中有两种保护措施。一种是用湿毛巾捂住口鼻,趴在地上匍匐前进;另一种是带上防毒面具,趴在地上匍匐前进。两种措施都可以起到保护作用,两者的区别是什么?湿毛巾可以在5分钟内维持人的生命,防毒面具可以在30分钟内维持人的生命。如果家住5楼及以下的人,家中可以不备防毒面具,湿毛巾就够用了。家住20楼以上的人,家中就必须要备防毒面具了,因为从20楼下到地面,5分钟是远远不够的。
回顾本文的主题,ISO26262要实现的目的是什么?在本文上述的讲述中,提到了风险是无法被完全消除的,我们能做的是降低风险,把风险降低到社会大众可接受的水平。ISO26262给出了风险评级的方法,以及如何把一个特定风险降低到社会大众可接受的水平,这分别是第二讲和第三讲的内容。