MUNIK解读ISO26262--系统架构
功能安全之系统阶段-系统架构
我们来浅析下功能安全系统阶段重要话题——“系统架构”
目录概览:
- 系统架构的作用
- 系统架构类型
- 系统架构层级的相关安全机制梳理
1.系统架构的作用
架构的思维包括抽象思维、分层思维、结构化思维和演化思维。通过将复杂系统分解为小的单元来简化开发。并且会在解决问题的过程中权衡利弊找到最优解(在设计时通常会结合选型分析报告综合来判断)。
在ISO26262标准中Part 6.4.3提到了系统架构设计的总则是:由技术系统实现的所选系统层面解决方案,系统架构设计旨在同时满足所分配的技术安全要求和非安全要求。
综上所述,系统架构设计是我们在产品开发中不可忽视的重要阶段,下面我们着重探讨“系统的架构类型”和“系统架构层级相关的安全机制”。
2. 系统架构类型
2.1架构模型
根据ISO26262中的定义,相关项由一个或者多个系统组成,而一个系统应该至少包括1个传感器、1个控制单元和1个执行器,
系统组成示意
如下图所示:
在一个系统中有几种经典的架构,通常会见到这几个名词fail-safe、fail-silent和fail-operational。画个图来简单示意下这几种架构设计的相互关系。如下图所示,Fail-Safe包含:fail-operational 和 fail-silent两种,它们都属于是安全的失效。
fail-safe、fail-silent、fail-operational关系图
Fail-Safe:该架构通常芯片设计层级使用较多,当芯片发生error时,芯片会执行POWER down、Reset、紧急运行等的操作。或者当程序轮询监控到对应的寄存器有问题时请求MCU判断执行后续操作(MCU的操作要在合理的FTTI之内完成才有效),从而使得IC进入安全的静默(silent)状态。
Fail-Operational: 该架构通常整车层级和系统层级使用较多,该架构通常应用MooN(D)架构可以实现不同形式的fail-operational架构。简单的Fail- Operational可以理解为当通道1失效后,作为冗余的通道2还可以接替它的工作,使得整个系统处于安全的状态。
针对MooN(D) 系统架构在此篇不做细化的分析,在后续文章中有机会我们再细聊,我举个域控制器中我们实际研发的例子让大家感受下MOON(D)的概念。
MooN(D)解释说明图
1oo2D域控制器架构示例:
下图是常用的域控制器的架构方案。(MCU对于2个SOC的监控是独立的,它有不同的寄存器ID对应)

域控制器1oo2D示意图
此架构方案由并联的两个通道组成,在其中一个失效后,启用另外一个。冗余的传感器可以是雷达模组或者其他传感器的系统。对于该系统而言在MCU检测出main SOC出问题时启动fullback 的SOC并关闭main SOC(前提是两个SOC的设计不会发生DFA的相关性失效)以此来保证系统的正常运行。
2.2软件经典的架构讨论
说到软件架构讨论,不得不提一下经典的E-Gas 模型。E-gas属于我们上述所说的1oo1D的架构

三层概念图(带锁步核)
(1)Level 1层:功能应用层,实现设计的基本功能的软件(层级),较为复杂
(2)Level 2层:功能监控层,基于功能层级(Level 1)的输出结果的监控, 并且会计算程序流控制
(3)Level 3层:控制器监控层,控制器监控是指软件和硬件结构之间的相互作用。它可以检测功能控制器(控制器核心,RAM/ROM中受影响的区域)的错误操作。
注释:监控模块是独立于域控制器的
E-gas本质是每个层各司其职、相互只是调用关系,可以减少联系、做到各层按照对应需求的ASIL等级去开发。它能够清晰地实现递进式的层级设计及安全监控,对于复杂的系统来讲可以借鉴该思路。
3. 系统架构层级的相关安全机制梳理

上文NO2.1开头提到一个系统的简单组成至少包括:一个传感器、一个处理器和一个执行器,那么在系统层级我们来分析下它都有哪些安全机制。
3个模块之间少不了有通讯或者系统层级需要有程序的烧录等情况出现,模块可能会通过CAN,CAN-FD,UART,I2C,SPI,PHY等进行片内或片外、板内或板外的通讯或者程序的烧录,下面以串口UART举例说明通讯模块的安全机制都有哪些。
注释:以上是基于ISO26262标准及经验的总结,仅供参考,具体项目还需实际分析及动态调整。
对于软件层级(Auto sar)来说它的核心安全机制可以分为以下几类供大家参考:
(1)内存分区
(2)逻辑监控
(3)E2E 保护
(4)Timing Monitor
(5)CRC等
注释:对于细化的安全机制的分析我们会在后续的文章中逐步提及,在此不做赘述。
结论:功能安全是系统架构设计中不可忽视的重要方面。通过在设计阶段就充分考虑安全需求,采用分层的安全策略,设计安全关键组件,以及进行严格的安全验证和确认,可以有效地提高系统的安全性。同时,系统架构还应该具备易于维护和更新的特性,以应对长期的安全挑战。通过这些措施,可以确保系统在面对故障和风险时,能够保持在一个安全的状态,从而保护人员和财产的安全。
参考书籍:ak-egas-v6-0-en
功能安全技术基础
相关文章:
MUNIK解读ISO26262--系统架构
功能安全之系统阶段-系统架构 我们来浅析下功能安全系统阶段重要话题——“系统架构” 目录概览: 系统架构的作用系统架构类型系统架构层级的相关安全机制梳理 1.系统架构的作用 架构的思维包括抽象思维、分层思维、结构化思维和演化思维。通过将复杂系统分解…...
STM32第十五课:LCD屏幕及应用
文章目录 需求一、LCD显示屏二、全屏图片三、数据显示1.显示欢迎词2.显示温湿度3.显示当前时间 四、需求实现代码 需求 1.在LCD屏上显示一张全屏图片。 2.在LCD屏上显示当前时间,温度,湿度。 一、LCD显示屏 液晶显示器,简称 LCD(Liquid Cry…...
Java--继承
1.继承的本质是对某一批类的抽象,从而实现对世界更好的建模 2.extends的意思是“扩展”,子类是父亲的扩展 3.Java中只有单继承,没有多继承 4.继承关系的两个类,一个为子类(派生类),一个为父类…...
Github与本地仓库建立链接、Git命令(或使用Github桌面应用)
一、Git命令(不嫌麻烦可以使用Github桌面应用) git clone [] cd [] git branch -vv #查看本地对应远程的分支对应关系 git branch -a #查看本地和远程所有分支 git checkout -b [hongyuan] #以当前的本地分支作为基础新建一个【】分支,命名为h…...
c++之旅第十一弹——顺序表
大家好啊,这里是c之旅第十一弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一,数据结构…...
深入了解 PXE:定义、架构、原理、应用场景及常见命令体系
引言 PXE(Preboot Execution Environment,预启动执行环境)是一种允许计算机通过网络启动操作系统而无需本地存储设备的技术。本文将详细介绍 PXE 的定义、架构、原理、应用场景及常见命令体系,特别是以 CentOS 为例,展…...
《每天5分钟用Flask搭建一个管理系统》第9章:API设计
第9章:API设计 9.1 RESTful API的概念 RESTful API是一种基于HTTP协议的网络服务接口设计方法,它使用标准的HTTP方法,如GET、POST、PUT、DELETE等,来执行资源的操作。 9.2 Flask-RESTful扩展的使用 Flask-RESTful是一个Flask扩…...
CCM的作用及原理
CCM调试的理论依据_ccm矩阵sat调试-CSDN博客 CCM是在WB之后,就是当AWB将白色校正之后其他颜色也会跟着有明显变化,CCM的作用就是要保持白色不变,把其他色彩校正到非常精准的地步。 校正后的颜色(target值是一个固定的值)CCM矩阵*原始的颜色…...
10.09面试题目记录
艾融软件 - 线上面试题 排序算法的时间复杂度 O(n^2):冒泡,选择,插入 O(logn):折半插入排序 O(nlogn):希尔,归并,快速,堆 O(nk):桶,…...
14-29 剑和诗人3 – 利用知识图谱增强 LLM 推理能力
知识图谱提供了一种结构化的方式来表示现实世界的事实及其关系。通过将知识图谱整合到大型语言模型中,我们可以增强它们的事实知识和推理能力。让我们探索如何实现这一点。 知识图谱构建 在利用知识图谱进行语言模型增强之前,我们需要从可靠的来源构建…...
【代码大全2 选读】看看骨灰级高手消灭 if-else 逻辑的瑞士军刀长啥样
文章目录 1 【写在前面】2 【心法】这把瑞士军刀长啥样3 【示例1】确定某个月份的天数(Days-in-Month Example)4 【示例2】确定保险费率(Insurance Rates Example)5 【示例3】灵活的消息格式(Flexible-Message-Format …...
深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)
6,dropout 6,1 线性分类器中的正则化 在线性分类器中,我们提到过正则化,其目的就是为了防止过度拟合。例如,当我们要用一条curve去拟合一些散点的数据时,常常是不希望训练出来的curve过所有的点,…...
【C++】 解决 C++ 语言报错:Undefined Reference
文章目录 引言 未定义引用(Undefined Reference)是 C 编程中常见的错误之一,通常在链接阶段出现。当编译器无法找到函数或变量的定义时,就会引发未定义引用错误。这种错误会阻止生成可执行文件,影响程序的正常构建。本…...
【博士每天一篇文献-算法】Adult neurogenesis acts as a neural regularizer
阅读时间:2023-12-20 1 介绍 年份:2022 作者:Lina M. Tran,Adam Santoro,谷歌DeepMind 期刊: Proceedings of the National Academy of Sciences 引用量:13 代码:https://github.c…...
在Spring Boot项目中引入本地JAR包的步骤和配置
在Spring Boot项目中,有时需要引入本地JAR包以便重用已有的代码库或者第三方库。本文将详细介绍如何在Spring Boot项目中引入本地JAR包的步骤和配置,并提供相应的代码示例。 1. 为什么需要本地JAR包 在开发过程中,可能会遇到以下情况需要使…...
Android Studio中使用命令行gradle查看签名信息
Android Studio中使用命令行gradle查看签名信息: 使用 Gradle 插件生成签名报告 打开 Android Studio 的 Terminal。 运行以下命令:./gradlew signingReport 将生成一个签名报告,其中包含 MD5、SHA1 和 SHA-256 的信息。 如果失败…...
昇思25天学习打卡营第5天 | 神经网络构建
1. 神经网络构建 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。一个神经网络模型表示为一个Cell,它由不同…...
Web缓存—Nginx和CDN应用
目录 一、代理的工作机制 二、概念 三、作用 四、常用的代理服务器 二.Nginx缓存代理服务器部署 1.在三台服务器上部署nginx 此处yum安装 2.准备测试界面 三、CDN概念及作用 1.CDN的工作过程 一、代理的工作机制 (1)代替客户机向网站请求数据…...
Linux 端口
什么是虚拟端口 计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。 IP地址相当于小区地址,在小区内可以有许多用户(程序)&…...
菜鸡的原地踏步史02(◐‿◑)
每日一念 改掉自己想到哪写哪的坏习惯 二叉树 二叉树的中序遍历 class Solution {/**中序遍历左 - 中 - 右*/private List<Integer> res new ArrayList<>();public List<Integer> inorderTraversal(TreeNode root) {if(root null) {return res;}tranve…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...
