MUNIK解读ISO26262--什么是DFA
我们在学习功能安全过程中,经常会听到很多安全分析方法,有我们熟知的FMEA(Failure Modes Effects Analysis)和FTA(Fault Tree Analysis)还有功能安全产品设计中几乎绕不开的FMEDA(Failure Modes Effects and Diagnostic Analysis),相比于它们而言,今天我们的主角DFA(Dependent Failure Analysis)可能会稍微有点陌生。
在开发功能安全产品过程中,我们会进行大量的定性分析工作,其中主要就包含上面提到的FMEA和FTA。这两种分析方法一个是从底层的要素出发,分析要素故障会对系统造成何种失效影响,一个是从系统已知的单一失效模式出发,深挖造成失效发生的根本原因。无论如何,它们的研究对象都是单独的要素和系统之间的关系,并且是建立在这些底层要素之间不会发生互相影响的前提下,但是在实际的电子电气产品中,要素之间的相互影响是普遍存在的,要素之间的这种影响会不会影响我们终极目标(顶层安全目标)的实现?我们只有执行了DFA才会知道答案。
反过来讲,我们执行DFA就是为了验证我们设计中的要素之间互相影响的可能性和严重程度都比较低,它们之间尽可能不要互相影响,其实这就是在证明标准讲的“独立性”,标准对于独立性的定义是:两个或多个要素之间不存在导致违背安全要求的相关失效。意思就是只要要素具有充足的独立性以后,也就不会发生相关失效。这里面的相关失效其实就两种情况,一种叫级联失效,一种叫共因失效。关于级联失效的解释,标准是分为了内部原因和外部原因这两种情况,无论是内部原因还是外部原因,归根结底都是前者的故障最终导致后者的失效。共因失效是由于一些公用资源,公用信息等发生故障,从而导致多个组件同时发生失效的情况。
所有项目都要做DFA吗?
首先DFA(相关失效分析)的执行与ASIL没有关系,这是与FMEA还有FTA明显的一个区别,其次就是在架构设计过程中若产生了ASIL分解,有要素共存的情况(低等级的要素我们通常会认为他的开发要求不够严谨,可能会对高要求的产品造成不利影响),有冗余设计,功能电路和安全机制等情况时,那么就要执行相关失效分析。
DFA分析对象
在功能安全设计中,DFA一般在整个产品架构设计结束后执行,因为分析对象是整个产品,所以没必要细化到某一个子组件内部进行分析,将产品的架构设计框图作为DFA分析的输入信息就可以。
DFA的执行流程
标准对于DFA执行的详细流程见下图,此图虽然是定位于芯片层面,但是任何层面的产品,使用同样的方法,那么思考逻辑就是一样的。
上图中重要的活动可概括为以下四点:
- 目标识别:就是明确分析对象。因为相关失效分析是分析要素之间是否会有影响,所以分析对象肯定是要素组,在实际产品设计中,内部的要素数量一般会比较庞大,那么我们在考虑分析产品内部是否存在共因失效或者级联失效时,如果将产品所有的组件进行配对分析的话,这个工作量会很巨大。标准也考虑了这个问题,因此对实施相关失效分析对象也是做了提前的分类和筛选的。这些互相可能发生相关失效的要素,他们之间会存在一些比较明显的关系特征,比如:我们在架构设计中进行了ASIL分解,那么分解后的两个要素,就要考虑之间会不会有相关失效的发生,或者有要素共存的情况发生时,若低等级的要素和高等级的要素进行了交互,那么它们之间就要执行相关失效分析。如果有冗余设计,功能电路和其安全机制这种关系也要对其进行相关失效分析,我们在进行其他安全分析比如FMEA分析过程中多次出现的具有相似失效模式的相似元器件或组件,FTA过程中出现重复的相同事件,这些都是可以作为DFA分析的输入指导。
- 确定耦合因子类型:在明确产品中可能会发生相关失效的要素之后,按照标准中的要求进行耦合因子类型的判断。标准对于耦合因子进行了总结和归纳分为了共享资源,共享信息输入,环境抗干扰能力不足,系统耦合,相同类型的组件,通信,非预期接口这七类。
- 失效分析:在确定了要素组的耦合因子类型后,对于每种耦合因子深层次的失效原因,故障模式(也就是故障发生如何导致系统失效),故障影响进行分析。根本的失效原因我们通常称之为相关失效引发源,缩写DFI。
我们举个例子,
第一步目标识别:假设我们的架构设计中存在PLL(锁相环,实现外部输入信号与内部震荡信号同步)和对其的监控电路CMC,它们之间的关系就属于功能电路和安全机制的关系,所以我们要分析这两者会不会发生相关失效。
第二部分析耦合因子的类型:我们分析后发现PLL和CMC共用了一个电源,因此就满足“共享资源”类型的耦合因子。
第三步失效分析:也就是目前的这个阶段,我们对这种情况分析后发现,如果共用电源电压过高或过低,PLL和CMC都无法工作,最终影响了产品安全目标的实现。因此我们就要制定安全措施来对此情况进行处理,也就是我们的下一个环节。
- 措施:通过上面的分析活动之后,进入到第四步制定措施,因为共享电源的故障会导致PLL和CMC的失效,最终违反安全目标,我们对电源增加独立的PVT监控电路(安全机制),当电源电压过高或过低时,PVT会检测到异常,并将异常上报给CPU进行故障诊断,最终结果可能会向外发送一个异常信号。从发现异常,到上报异常,再到系统发送出异常信号,整个过程会控制在60ms以内(其中发送出异常信号就是经常讲的安全状态,其中的60ms应小于它最终分配到的FTTI)。这些增加的安全措施最终都要通过一些验证或测试手段证明他的有效性。
需要注意的是这里的安全措施不局限于安全机制。
相关文章:

MUNIK解读ISO26262--什么是DFA
我们在学习功能安全过程中,经常会听到很多安全分析方法,有我们熟知的FMEA(Failure Modes Effects Analysis)和FTA(Fault Tree Analysis)还有功能安全产品设计中几乎绕不开的FMEDA(Failure Modes Effects and Diagnostic Analysis),相比于它们…...
启动spring boot项目停止 提示80端口已经被占用
可能的情况: 检查并结束占用进程: 首先,你需要确定哪个进程正在使用80端口。在Windows上,可以通过命令行输入netstat -ano | findstr LISTENING | findstr :80来查看80端口的PID,然后在任务管理器中结束该进程。在...

SOLIDWORKS分期许可(订阅形式),降低前期的投入成本!
SOLIDWORKS 分期许可使您能够降低前期软件成本,同时提供对 SOLIDWORKS 新版本和升级程序的即时访问,以及在每个期限结束时调整产品的灵活性,帮助您跟上市场需求和竞争压力的步伐。 目 录: ★ 1 什么是SOLIDWORKS分期许可 ★ 2 …...
详细分析Spring Boot 数据源配置的基本知识(附配置)
目录 前言1. 基本知识2. 模版3. 实战经验前言 对于Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)1. 基本知识 包括数据源的概念、连接池的作用、多数据源的实现与管理、Druid 连接池…...
海思SD3403/SS928V100开发(15)9轴IMU ICM-20948模块SPI接口调试
1.前言 芯片平台: 海思SD3403/SS928V100 操作系统平台: Ubuntu20.04.05【自己移植】 9轴IMU模块:ICM-20948 通讯接口: SPI 模块datasheet手册: https://download.csdn.net/download/jzwjzw19900922/89517096 2. 调试记录 2.1 pinmux配置 #spi0 bspmm 0x0102F01D8 …...

大力出奇迹:大语言模型的崛起与挑战
随着人工智能(AI)技术的迅猛发展,特别是在自然语言处理(NLP)领域,大语言模型(LLM)的出现与应用,彻底改变了我们与机器互动的方式。本文将探讨ChatGPT等大语言模型的定义、…...

【算法 - 哈希表】两数之和
这里写自定义目录标题 两数之和题目解析思路解法一 :暴力枚举 依次遍历解法二 :使用哈希表来做优化 核心逻辑为什么之前的暴力枚举策略不太好用了?所以,这就是 这道题选择 固定一个数,再与其前面的数逐一对比完后&…...
【深度学习】图形模型基础(5):线性回归模型第一部分:认识线性回归模型
1. 回归模型定义 最简单的回归模型是具有单一预测变量的线性模型,其基本形式如下: y a b x ϵ y a bx \epsilon yabxϵ 其中, a a a 和 b b b 被称为模型的系数或更一般地,模型的参数。 ϵ \epsilon ϵ 代表误差项&#…...

2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享
B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…...
Yarn有哪些功能特点
Yarn是一个由Facebook团队开发,并联合Google、Exponent和Tilde等公司推出的JavaScript包管理工具,旨在提供更优的包管理体验,解决npm(Node Package Manager)的一些痛点。Yarn的功能特点主要包括以下几个方面࿱…...
深度学习算法bert
bert 属于自监督学习的一种(输入x的部分作为label) 1. bert是 transformer 中的 encoder ,不同的bert在encoder层数、注意力头数、隐藏单元数不同 2. 假设我们有一个模型 m ,首先我们为某种任务使用大规模的语料库预训练模型 m …...

PyTorch - 神经网络基础
神经网络的主要原理包括一组基本元素,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2… xn ,如果总和大于激活电位,则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…...

docker-compose搭建minio对象存储服务器
docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理,了解了一下例如aliyun或者腾讯云的oss对象存储服务,但是呢涉及到对象存储以及经费有限的缘故,决定自己手动搭建一个oss对象存储服务器; 首先…...
vue3使用pinia中的actions,需要调用接口的话
actions,需要调用接口的话,假如页面想要调用actions中的方法获取数据, 必须使用try catch async await 进行包裹,详情看下面代码 import {defineStore} from pinia import {reqCode,reqUserLogin} from ../../api/hospital/i…...

Python酷库之旅-第三方库Pandas(003)
目录 一、用法精讲 4、pandas.read_csv函数 4-1、语法 4-2、参数 4-3、功能 4-4、返回值 4-5、说明 4-6、用法 4-6-1、创建csv文件 4-6-2、代码示例 4-6-3、结果输出 二、推荐阅读 1、Python筑基之旅 2、Python函数之旅 3、Python算法之旅 4、Python魔法之旅 …...
社交电商中的裂变营销利器,二级分销模式,美妆家具成功案例分享
二级分销返佣模式是一种帮助商家迅速扩大市场覆盖的有效营销策略,不仅能降低营销成本,还能提升品牌知名度。下面通过两个具体的案例来说明这种模式的好处和优势。 某知名美妆品牌在市场竞争日益激烈的情况下,决定采用二级分销返佣模式进行市场…...

【国产开源可视化引擎Meta2d.js】图层
独立图层 每个图元都有先后绘画顺序,即每个图元拥有一个独立图层,即meta2d.data().pens的数组索引。 可以通过meta2d.top/bottom/up/down等函数改变独立图层顺序。 分组图层 通过标签可以标识一个分组图层,通过meta2d.find(图层标签)获取…...

基于Redisson实现分布式锁
基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文,但是并没有真正自己实操过。现在对AOP有了更深一点的理解,就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁,单体应…...

Android Studio下载Gradle特别慢,甚至超时,失败。。。解决方法
使用Android studio下载或更新gradle时超级慢怎么办? 切换服务器,立马解决。打开gradle配置文件 修改服务器路径 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip 最后,同步,下载,速…...

leetcode--二叉树中的最长交错路径
leetcode地址:二叉树中的最长交错路径 给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。 如果前进方向为右,那么移动到当前节点的的右子节点&…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...