当前位置: 首页 > news >正文

MUNIK解读ISO26262--系统架构

功能安全之系统阶段-系统架构

我们来浅析下功能安全系统阶段重要话题——“系统架构”

目录概览:

  1. 系统架构的作用
  2. 系统架构类型
  3. 系统架构层级的相关安全机制梳理

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过所有的点&#xff0c…...

【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 的信息。 如果失败&#xf…...

昇思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…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...