当前位置: 首页 > 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

         功能安全技术基础

相关文章:

  • 网络编程:UDP编程笔记
  • (一)Docker基本介绍
  • 【PYG】dataloader和densedataloader
  • 解决Linux环境Qt报“cannot find -lgl“问题
  • 2024.7.5
  • 【单链表】04 试编写算法将带头结点的单链表就地逆置,所谓“就地”是指辅助空间复杂度为0(1)。
  • VPN是什么?
  • 实验三 图像增强—灰度变换
  • Windows 11 安装 安卓子系统 (WSA)
  • Cesium与Three相机同步(3)
  • 安装局部的typeScript环境
  • 【C++】 解决 C++ 语言报错:Undefined Reference
  • window上部署sql server改动端口、和sqlserver的一些还原、批量插入存储过程的命令
  • Django 模版继承
  • Linux Shell 脚本入门教程:开启你的自动化之旅
  • 时间复杂度分析经典问题——最大子序列和
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • C++类的相互关联
  • ES学习笔记(12)--Symbol
  • EventListener原理
  • fetch 从初识到应用
  • LeetCode算法系列_0891_子序列宽度之和
  • Map集合、散列表、红黑树介绍
  • spring boot 整合mybatis 无法输出sql的问题
  • V4L2视频输入框架概述
  • webpack入门学习手记(二)
  • 前端性能优化--懒加载和预加载
  • 设计模式走一遍---观察者模式
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ###C语言程序设计-----C语言学习(3)#
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .net 7 上传文件踩坑
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net 调用php,php 调用.net com组件 --
  • .net程序集学习心得
  • .net打印*三角形
  • .net的socket示例
  • .net中调用windows performance记录性能信息
  • @ConditionalOnProperty注解使用说明
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [20170728]oracle保留字.txt
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [bzoj1038][ZJOI2008]瞭望塔
  • [CAN] 创建解析CAN报文DBC文件教程
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境