什么是功能安全?

本文介绍了功能安全的概念,通过解释ISO26262标准,探讨了为何需要进行功能安全,以及其在防止系统故障导致的安全风险中的作用。文章以火车与汽车安全为例,说明功能安全的重要性,并阐述了功能安全涉及的硬件设计、软件代码故障检测措施,以及在检测到故障后的应对策略,确保系统进入安全状态。
摘要由CSDN通过智能技术生成

前言

        在上一家公司的时候,有幸参加过公司内部的技术分享会,有一个同事跟我们分享了功能安全的一些内容。在提问环节,我问了一个问题“什么是功能安全?”他回答不上来。这也是我们很多人在工作中常犯的一个问题:我们做了某件事,但是我们往往不知道为什么要做这件事。

        在弄清楚什么是功能安全之前,我们先弄清楚为什么要做功能安全?

一、ISO26262定义

        ISO26262-part1给出了如下定义:随着技术复杂性、软件内容和机电一体化的日益增加,在实施过程中,系统故障和随机硬件故障的风险越来越大,这些被认为是在功能安全的范围内。

描述了与安全相关的故障是E/E系统产生的,而不是一些自然灾害,人为破坏等。

        初步来看,功能的安全是由故障产生的,那我们在发布软件之前进行测试,将所有的故障都消除掉,是不是可以了?很显然并不是,测试消除掉的是BUG,这是软件发布时不允许有的。

        功能安全做的并不是消除由软件BUG引起的故障,而是那些原本好的电子电气由于老化等不可能控的原因造成的故障,这些故障可能会对人生安全产生危害。

二、为什么要做功能安全?

        在讲为什么要做功能安全之前,我先跟大家讲一个例子。在也是我当初在日企,一个日本的功能安全工程师给我们讲解的一个例子,我觉得特别好,虽然他讲的日语我完全没听懂,好在这个例子,我记住了。

        火车,相信大家都知道。如下图,火车在下面的轨道上行驶,汽车,羊群,在自己的道路上移动,看着是没有问题的。但是如果火车来了,汽车也来了,他们速度很快,没刹住,是不是就撞上了。

        他们有可能一辈子也不会相撞,但是只要撞上了一次,就是一个事故,就会对生命产生危害,这是我们不希望看到的。

        所以,如何避免这样的事情发生呢?

        机智的你可能想到了,如下图,加个红绿灯,就可以了。理想很美好,但是现实啊,往往总是差强人意。 并不是所有人都遵守交通规则,闯红灯的比比皆是,那么还是不安全啊。

        那我们就再加一个栏杆,加一个看守员不就好了,在火车来之前几分钟,把栏杆落下来。  火车走后,再把栏杆抬起来,这样就能完美解决问题了。

看到这里,你对功能安全是不是有一点点自己的了解了?

三、功能安全做什么?

        通过上面的例子,我想你们应该大概能猜到,功能安全要做什么了,当然上述的例子只是整个功能安全中的一部分。

        ISO26262-Part1中如下描述:

        简单来说功能安全就是对流程,生产,交付做了一些约束;对硬件设计,软件代码,做了一些故障的检测。

        比如在通信的时候,为了保证数据的完整性及连续性: 我们用CRC, Rolling counter来确保

        堆栈的溢出:我们增加堆栈溢出的检测

        内存的错误:MCU支持ECC内存错误检测

        代码有没有跑飞:使用看门狗来保证

        等等。。。

        检测到故障是第一步, 然后就是要根据故障的严重程度,对车辆进行功能降级啊,或者功能完全禁止啊又或者其他的一些列操作,来使车辆进入一个安全的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常学常思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值