首页 > 其他分享 >MUNIK解读ISO26262--系统架构

MUNIK解读ISO26262--系统架构

时间:2024-07-11 09:26:07浏览次数:24  
标签:架构设计 层级 架构 -- 系统 MUNIK 安全 fail 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,安全,fail,ISO26262
From: https://blog.csdn.net/m0_61714886/article/details/140210727

相关文章

  • 大模型备案全网最详细流程【附附件】
    本文要点:大模型备案最详细说明,大模型备案条件有哪些,《算法安全自评估报告》模板,大模型算法备案,大模型上线备案,生成式人工智能(大语言模型)安全评估要点,网信办大模型备案。大模型备案安全评估流程详细说明,见下图:大模型安全评估流程图算法备案安全评估流程详细说明,见下图:算......
  • PHP 程序员是学 Swoole ?还是学 Go ?
    大家好,我是码农先森。面临现状这次为什么要讨论这个话题,因为Swoole和Go在PHP程序员坊间一直都是茶语饭后的谈资,觉得懂Swoole和Go的就高人一等。相信有很多的PHP程序员,自打Swoole发布以来就从来没有使用过。还记得Swoole官方有一遍入门文章中曾建议学习Swoole......
  • 如何实现网络隔离状态下,文件摆渡的全生命周期管控?
    随着信息化建设的不断推进,计算机技术的飞速发展,电子文档已经成为了企业信息资产的主要载体,例如Office文档、源代码、CAD图纸、配方工艺、方案、竞标书等。为了符合国家等保要求,保护数据在存储、传输、处理过程中不被泄漏、破坏和免受未授权的修改的信息安全类要求,大部分企业会进行......
  • ECS 宝塔安装PGSQL, pgvector整合的一次记录
    前提安装宝塔面板准备好pgvector ESC>su-upostgres>psql//新建一个用户createuseraideepinwithpassword'123456';//新建一个数据库createdatabaseaideepinowneraideepin;//查看用户SELECTrolname,rolpasswordFROMpg_authid;//修改用户密码......
  • C++ 避免内存泄露的手段和措施
    在C++中,内存泄露是一个常见问题,指的是已分配的内存由于某种原因未被释放,导致程序无法再次使用这部分内存。为了避免内存泄露,C++提供了多种手段和措施,主要包括以下几种:智能指针(SmartPointers):智能指针是C++标准库中的一部分,用于自动管理内存,确保在适当的时候释放内存。......
  • 文件数据跨境传输这些常见问题,要怎么解决?
    越来越多的企业和机构面临文件数据跨境传输的场景和需求,数据跨境流通的过程还是比较复杂的,所以在传输过程中会面临各种问题。比如法律法规和数据保护、技术标准、网络带宽和速度、数据安全风险控制等,企业要如何解决这些问题呢?这里推荐看看飞驰云联的《数据跨境传输管控解决方案白......
  • pandas导出excel
    工具类cvsutil.py#!/usr/bin/envpython#-*-coding:utf-8-*-importcsvimportcodecsimportioclassUTF8Recoder:"""IteratorthatreadsanencodedstreamandreencodestheinputtoUTF-8"""def__init_......
  • WPF 实现 图标按钮
    假设需要实现一个图标和文本结合的按钮,普通做法是直接重写该按钮的模板;如果想作为通用的呢?两种做法:附加属性自定义控件推荐使用附加属性的形式第一种:附加属性创建Button的附加属性 ButtonExtensions1publicstaticclassButtonExtensions2{3//Using......
  • [1028] Creating your very own Python library
    Ah,creatingyourveryownPythonlibrary—howexciting!......
  • lazarus 线程1
    标准线程用法TypeTAnalyzedataThread=class(TThread)privateprocedureDoProcedure;protectedprocedureExecute;override;publicConstructorCreate(CreateSuspended:boolean);end;constructorTAnalyzedataThread.Create(CreateSuspended:boolean);beginFree......