什么是功能安全?

前言

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

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

一、ISO26262定义

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

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

        初步来看,功能的安全是由故障产生的,那我们在发布软件之前进行测试,将所有的故障都消除掉,是不是可以了?很显然并不是,测试消除掉的是BUG,这是软件发布时不允许有的。功能安全做的并不是消除由BUG引起的故障,而是那些原本好的电子电气由于老化等不可能控的原因造成的。

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

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

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

        他们有可能一辈子也不会相撞,但是只要撞上了一次,就是一个事故,这是我们不允许的。

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

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

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

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

三、功能安全做什么?

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

        ISO26262-Part1中如下描述:

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

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

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

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

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

        等等。。。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452818.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天拓四方:边缘计算网关功能、特点与应用举例

传统的数据处理方式面临网络延迟、带宽限制和安全风险等问题。为了解决这些问题,边缘计算技术应运而生,而边缘计算网关作为其核心组件,正发挥着越来越重要的作用。边缘计算网关位于数据源和云数据中心之间。它具备数据采集、协议转换、数据处…

NLP_语言模型的雏形N-Gram

文章目录 N-Gram 模型1.将给定的文本分割成连续的N个词的组合(N-Gram)2.统计每个N-Gram在文本中出现的次数,也就是词频3.为了得到一个词在给定上下文中出现的概率,我们可以利用条件概率公式计算。具体来讲,就是计算给定前N-1个词时&#xff0…

打开双重el-dialog后出现遮罩后如何解决?

背景&#xff1a; 打开el-dialog后&#xff0c;再次打开另外一个el-dialog&#xff0c;出现以下画面。 解决方式&#xff1a;在第二个el-dialog增加append-to-body <el-dialog :close-on-click-modal“true” :visible.sync“createVisible” v-if“createVisible” :width…

ReactNative实现弧形拖动条

我们直接看效果 先看下面的使用代码 <CircularSlider5step{2}min{0}max{100}radius{100}value{30}onComplete{(changeValue: number) > this.handleEmailSbp(changeValue)}onChange{(changeValue: number) > this.handleEmailDpd(changeValue)}contentContainerStyle{…

Vue中nextTick方法的作用与原理

在Vue的开发中&#xff0c;你可能会遇到一些异步更新的问题&#xff0c;如在改变数据后需要等待DOM更新完毕后再进行下一步操作。这时就可以使用Vue提供的nextTick方法来解决这个问题。 nextTick方法的作用是在DOM更新之后执行回调函数&#xff0c;确保在下次DOM更新循环结束之…

nginx slice模块的使用和源码分析

文章目录 1. 为什么需要ngx_http_slice_module2. 配置指令3. 加载模块4. 源码分析4.1 指令分析4.2 模块初始化4.3 slice模块的上下文4.2 $slice_range字段值获取4.3 http header过滤处理4.4 http body过滤处理5 测试和验证 1. 为什么需要ngx_http_slice_module 顾名思义&#…

【开源】基于JAVA+Vue+SpringBoot的数据可视化的智慧河南大屏

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏&#xff0c;包含了GDP、…

Cadence——输出文件部分

本文章基于凡亿教育基础入门66讲 &#xff08;一&#xff09;MARK点&#xff0c;工艺边&#xff0c;阻抗说明相关准备文件 &#xff08;1&#xff09;MARK点 a,点击设置&#xff0c;用户偏好设置 b,指定MARK焊盘路径和封装路径 c,点击放置&#xff0c;手动 d,点击高级设置,将…

【快速上手QT】01-QWidgetQMainWindow QT中的窗口

总所周知&#xff0c;QT是一个跨平台的C图形用户界面应用程序开发框架。它既可以开发GUI程序&#xff0c;也可用于开发非GUI程序&#xff0c;当然我们用到QT就是要做GUI的&#xff0c;所以我们快速上手QT的第一篇博文就讲QT的界面窗口。 我用的IDE是VS2019&#xff0c;使用QTc…

ReactNative实现文本渐变

我们直接上图&#xff0c;可以看到上面文本的效果&#xff0c;使用SVG实现 1.首先还是要引入react-native-svg库 2.使用该库下面的LinearGradient和Text 好&#xff0c;话不多说&#xff0c;我们看具体代码 <Svg width{422} height{30} viewBox{0 0 422 30}><Defs&…

管理类联考-复试-全流程演练-导航页

文章目录 整体第一步&#xff1a;学校导师两手抓——知己知彼是关键学校校训历史 导师 第二步&#xff1a;面试问题提前背——押题助沟通自我介绍——出现概率&#xff1a;100%为什么选择这个专业&#xff1f;今后如何打算&#xff1f;你认为自己本科专业和现在所考的专业有什么…

JAVASE进阶:Collection高级(2)——源码剖析ArrayList、LinkedList、迭代器

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;JAVASE进阶&#xff1a;Collection高级&#xff08;1&#xff09;——源码分析contains方法、lambda遍历集合 &#x1f4da;订阅…