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 为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。 如果前进方向为右,那么移动到当前节点的的右子节点&…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
