安全关键型嵌入式系统设计模式整理及应用实例

news/2024/11/6 15:13:51 标签: 安全, 设计模式, iso26262, do178

在这里插入图片描述

本文提供了对安全关键型嵌入式系统设计模式的全面概述,这些模式旨在提高系统在面临潜在故障时的安全性和可靠性。文中详细介绍了15种设计模式,包括同质冗余(HmD)、异质冗余(HtD)、三模冗余(TMR)、M-N冗余(M-oo-N)、监控-执行器(MA)、理智检查(SC)、看门狗(WD)、安全执行(SE)、N版本编程(NVP)、恢复块(RB)、接受投票(AV)、N自检查编程(NSCP)、恢复块与备份投票(RBBV)、保护单通道(PSC)和三级安全监控(3-LSM)。每种模式都详细说明了其概念、结构、应用背景以及具体实施方式,并通过实际应用实例来展示其在实际系统中的应用。这些模式覆盖了从硬件冗余到软件多样性的不同策略,以及如何通过这些策略来处理随机和系统故障,确保系统在故障发生时能够安全地继续运行或转换到安全状态。

  1. Homogeneous Duplex Pattern (HmD)

    • 说明:此模式通过使用两个相同的模块(主模块和备用模块)来处理随机故障。正常操作时,主模块工作,备用模块处于待命状态。当主模块发生故障时,系统会自动切换到备用模块。
    • 例子:在汽车的刹车系统中,可以使用HmD模式,其中两个相同的刹车系统模块可以确保在主刹车系统发生故障时,备用系统能够立即接管,保证车辆安全
  2. Heterogeneous Duplex Pattern (HtD)

    • 说明:与HmD类似,但HtD使用两个设计和实现不同的模块来处理随机和系统故障,增加了对系统故障的容忍度。
    • 例子:在飞机的导航系统中,可以使用HtD模式,其中两个不同的导航系统(例如,一个基于GPS,另一个基于惯性导航系统)可以确保即使一个系统发生故障,另一个系统仍然可以提供导航服务。
  3. Triple Modular Redundancy Pattern (TMR)

    • 说明:此模式使用三个相同的模块并行运行,通过投票系统来确定正确的输出,即使其中一个模块发生故障,系统仍能继续工作。
    • 例子:在核电站的控制系统中,TMR模式可以用于关键的安全系统,如温度监控,三个独立的传感器模块可以确保在任何单一故障情况下系统的可靠性。
  4. M-Out-Of-N Pattern (M-oo-N)

    • 说明:此模式包含N个相同的模块,但只需要M个模块正常工作即可保证系统运行,适用于需要不同级别冗余的情况。
    • 例子:在卫星通信系统中,可以使用M-oo-N模式,其中多个相同的通信模块可以确保即使部分模块失效,仍然有足够的模块保持通信连接。
  5. Monitor-Actuator Pattern (MA)

    • 说明:此模式包含一个执行动作的主通道和一个监控通道,监控通道用于检测主通道的故障并将其置于安全状态。
    • 例子:在工业机器人的控制系统中,MA模式可以用于确保机器人的手臂在检测到异常运动时停止,以防止对人员或设备造成伤害。
  6. Sanity Check Pattern (SC)

    • 说明:此模式通过一个简单的监控通道来检查主通道的输出是否在预期范围内,以确保基本的正确性。
    • 例子:在家庭安全系统中,SC模式可以用于检查烟雾探测器的输出是否在正常范围内,以避免误报。
  7. Watchdog Pattern (WD)

    • 说明:此模式使用一个看门狗计时器来监控系统的行为,如果系统未能在预定时间内响应,看门狗将重置系统。
    • 例子:在嵌入式系统中,WD模式可以用于确保操作系统在预定的时间内执行任务,防止系统挂起。
  8. Safety Executive Pattern (SE)

    • 说明:此模式适用于复杂和高度安全关键的系统,它结合了看门狗和一个额外的安全执行组件,用于在检测到故障时迅速关闭系统。
    • 例子:在化工工厂的控制系统中,SE模式可以用于确保在检测到潜在的化学泄漏时,迅速关闭相关的生产流程。
  9. N-Version Programming Pattern (NVP)

    • 说明:此模式通过独立生成N个功能等价的软件模块来提高软件的可靠性和安全性。
    • 例子:在航空电子系统中,NVP模式可以用于飞行控制软件的开发,通过多个独立的团队开发不同的软件版本,并通过投票系统确定最终的控制信号。
  10. Recovery Block Pattern (RB)

    • 说明:此模式通过执行多个独立的软件版本,并在每个版本后进行接受测试来检测和恢复错误。
    • 例子:在金融交易系统中,RB模式可以用于确保交易的正确性,通过多个版本的交易处理软件并行运行,并使用接受测试来验证结果。
  11. Acceptance Voting Pattern (AV)

    • 说明:此模式结合了N版本编程和接受测试,通过投票算法来确定最终的正确输出。
    • 例子:在医疗设备中,如心率监测器,AV模式可以用于确保心率读数的准确性,通过多个版本的监测软件并行运行,并使用投票系统来确定最终的心率值。
  12. N-Self Checking Programming Pattern (NSCP)

    • 说明:此模式通过添加冗余来实现自我检查,以提高软件的可靠性。
    • 例子:在汽车的ABS系统中,NSCP模式可以用于确保制动压力的正确计算,通过多个版本的计算软件并行运行,并进行自我检查。
  13. Recovery Block with Backup Voting Pattern (RBBV)

    • 说明:此模式结合了恢复块和N版本编程的思想,通过备份投票来提高恢复块方法的可靠性。
    • 例子:在电力供应系统中,RBBV模式可以用于确保在主供电系统发生故障时,备用供电系统能够正确地接管。
  14. Protected Single Channel Pattern (PSC)

    • 说明:此模式通过在单个通道中添加检查和监控来提高系统的安全性和可靠性。
    • 例子:在铁路信号系统中,PSC模式可以用于确保信号的正确性,通过在信号传输过程中添加监控和验证机制。
  15. 3-Level Safety Monitoring Pattern (3-LSM)

    • 说明:此模式结合了监控-执行器模式和看门狗模式,用于需要连续安全监控的系统。
    • 例子:在电梯控制系统中,3-LSM模式可以用于确保电梯的安全运行,通过三个级别的监控来检测和响应任何异常情况。

http://www.niftyadmin.cn/n/5741001.html

相关文章

运维高可用架构设计

一、硬件 1、服务器 2、网络架构 二、软件 1、基础组件 组件名称 高可用方式 最少节点数 负载均衡(Tenginx) corsyncpacemaker互为主备 多组集群通过DNS轮循实现一个大集群 2DNS主从集群2RabbitMQ原生HA镜像集群3Zookeeper原生分布式集群3Kafka原生分布式集群3ES原生分布式集…

STL 迭代器iteratior 详解

C的标准模板库(STL)中,迭代器是一种重要的工具,用于访问容器中的元素。 迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从…

大模型面试题:目前大模型中的位置编码有哪些?

获取更多面试真题的集合,请移步至 https://pica.zhimg.com/80/v2-7fd6e77f69aa02c34ca8c334870b3bcd_720w.webp?sourced16d100b 目前大模型中的位置编码有哪些? 在大模型中,位置编码主要分为两大派:绝对位置编码和相对位置编码…

celery加速爬虫 使用flower 可视化地查看celery的实时监控情况

重点: celery ==5.4.0 python 3.11 flower ==2.0.1 请对齐celery与flower的版本信息,如果过低会导致报错 报错1: (venv) PS D:\apploadpath\pythonPath\Lib\site-packages> celery -A tasks flower Traceback (most recent call last):File …

Unity SRP学习笔记(二)

Unity SRP学习笔记(二) 主要参考: https://catlikecoding.com/unity/tutorials/custom-srp/ https://docs.unity.cn/cn/2022.3/ScriptReference/index.html 中文教程部分参考(可选): https://tuncle.blog/c…

【VScode】C/C++多文件夹下、多文件引用、分别编译——仅一个设置【适合新人入手】

【VScode】C/C多文件夹内的多文件引用编译 1、问题2、前提(最简环境)3、核心(关键配置)4、成功享用~ 1、问题 在使用 VScode 编写一个简单项目的时候,没有特别配置的情况下,若主文件(.c)引用了自定义的头文…

09.外观模式设计思想

09.外观模式设计思想 目录介绍 01.外观模式基础 1.1 外观模式由来1.2 外观模式定义1.3 外观模式场景1.4 外观模式思考1.5 解决的问题 02.外观模式实现 2.1 罗列一个场景2.2 外观结构2.3 外观基本实现2.4 有哪些注意点2.5 设计思想 03.外观实例演示 3.1 需求分析3.2 代码案例实…

qt获取本机IP和定位

前言: 在写一个天气预报模块时,需要一个定位功能,在网上翻来翻去才找着,放在这里留着回顾下,也帮下有需要的人 正文: 一开始我想着直接调用百度地图的API来定位, 然后我就想先获取本机IP的方…