高完整性系统工程(十一):Fault Tolerant Design

本文介绍了容错系统的基本概念,包括故障的定义、类型和原因,以及硬件和软件故障的区别。重点讲述了冗余作为提高系统可靠性的方法,如硬件冗余、投票机制(包括多数投票、通用k-多数投票和中位数投票)以及N模块冗余和清除策略。文章还讨论了故障的独立性和相关性,以及如何通过冗余技术来应对不同类型的故障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. INTRODUCTION TO FAULT TOLERANCE

1.2 Definitions

1.3 Two Kinds of Faults

1.4 Hardware vs Software Faults

1.4.1 Failure Curve for Hardware

1.4.2 Hardware and Software Failures

1.5 Causes of Failures

1.6 3 Ways to Class Failures

1.6.1 Temporal Behaviour

1.6.2 Output Behaviour

1.7 Independence vs Correlated 独立性与相关性

2. REDUNDANCY

2.1 冗余 Redundancy

2.2 Hardware Redundancy 硬件冗余

2.2.1 Detecting Errors

2.3 投票(Voting)

2.3.1 近似一致(Approximate Agreement)

2.3.2 投票算法(Voting Algorithms)

2.3.3 多数投票(Majority Voting)

2.3.4 通用k-多数投票(Generalised k-plurality voting)

2.3.5 通用中位数投票(Generalised Median Voting)

2.3.6 Comparison of Voters 

2.4 N模块冗余(N-Modular Redundancy)

2.5 清除(Purging)


1. INTRODUCTION TO FAULT TOLERANCE

容错系统:如果系统能在有限数量的故障存在的情况下,依然按照规定的规格运行,那么这个系统就被认为是容错的。

  • "有限数量的故障"指的是我们作为工程师选择的容错等级,具体容错等级的选择通常基于HAZOP(危害及可操作性研究)等工具。
  • "按照规定的规格在故障存在的情况下运行"意味着系统必须能够检测到故障的发生,并进行故障处理。

1.2 Definitions

  • 故障(Failure):系统行为偏离规定的规格。
  • 缺陷(Fault):故障的原因,可能是错误的步骤,过程,数据定义等。
  • 错误(Error):缺陷的表现(发生)。
  • 可靠性(Reliability):系统在特定时间内无故障运行的概率。

1.3 Two Kinds of Faults

  • 硬件缺陷:物理缺陷,可能导致系统或组件产生错误。 A physical defect that can cause the system or component to produce an error
  • 软件缺陷:软件源代码中的缺陷,可能导致系统或组件产生错误。A defect in the source of the software that can cause the system or component to produce an error

1.4 Hardware vs Software Faults

硬件和软件以不同的方式失败。硬件通常会随着时间的推移出现故障,如元件的退化或环境条件的改变。反观软件,则在相同的状态和输入下,每次都会失败或每次都会成功,这就使得软件的故障更加系统性。

1.4.1 Failure Curve for Hardware

Does this make sense for software failures? No!

1.4.2 Hardware and Software Failures

Hardware (tends to) fail randomly 硬件(倾向于)随机故障

  • e.g. degradation of components 组件的退化
  • e.g. changes in environmental conditions 环境条件的变化

Software (tends to) fail systematically 软件(倾向于)系统性故障

  • with same state, same inputs, fails every time or succeeds every time (although beware concurrency and other sources of nondeterminism) 相同的状态,相同的输入,每次都失败或每次都成功(但要注意并发性和其他非确定性的来源)

1.5 Causes of Failures

  • 规格中的缺陷 Faults in the Specification:需要良好的规格验证技术。
  • 系统组件中的缺陷 Faults in System Components(软件或硬件):需要良好的工程技术(本课程的重点)。
  • 环境影响导致的缺陷 Faults due to Environment Effects:例如,对于太空船来说可能是辐射,对于其他系统可能是温度,G力等。(在HAZOP等工具中应被识别出来)

1.6 3 Ways to Class Failures

  • 时间行为 Temporal Behaviour:永久的,间歇的或瞬态的 permanent, intermittent or transient。
  • 输出行为 Output Behaviour:非恶意的或拜占庭式的 Non-Malicious or Byzantine。
  • 独立性和相关性 Independence and Correlation:独立的或相关的 Independen
STM32F103是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的微控制器,广泛应用于工业控制、物联网设备等领域。本资料包主要提供了STM32F103在实现RS485通信及Modbus RTU协议的主机和从机模式下的源代码实例,帮助开发者快速理解和应用这一通讯技术。 RS485是一种物理层通信标准,用于构建多点数据通信网络,具有传输距离远、抗干扰能力强的特点。它采用差分信号传输方式,可以实现双向通信,适合于长距离的工业环境。在RS485网络中,通常有一个主机(Master)和一个或多个从机(Slave),主机负责发起通信,从机响应主机的请求。 Modbus RTU(Remote Terminal Unit)是一种常用的过程控制工业通信协议,基于ASCII或RTU(远程终端单元)报文格式,常用于PLC(可编程逻辑控制器)和嵌入式系统之间的通信。Modbus RTU使用串行通信接口,如RS485,以减少布线成本和提通信效率。 在STM32F103上实现RS485 Modbus RTU通信,首先需要配置GPIO口作为RS485的硬件接口,包括数据线(一般为RX和TX)和方向控制线(DE和RE)。DE线用于控制发送数据时的数据线方向,RE线则用于接收数据时的方向。这些设置可以通过STM32的HAL库或LL库进行编程。 接着,你需要编写Modbus RTU协议栈的实现,这包括解析和构造Modbus报文、错误检测与处理、超时管理等。Modbus RTU报文由功能码、地址、数据和CRC校验码组成。主机向从机发送请求报文,从机会根据接收到的功能码执行相应的操作,并返回响应报文。 在主机端,你需要实现发送请求和接收响应的函数,以及解析从机返回的数据。在从机端,你需要监听串口,解析接收到的请求,执行相应的功能并构造响应报文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值