【问题标题】:Arduino Fail-Safe MechanismArduino 故障安全机制
【发布时间】:2012-10-05 07:59:16
【问题描述】:

假设我正在为 Arduino(或任何其他微控制器)开发故障安全机制。换句话说,当主控制器发生故障时,辅助微控制器或单独的板应该承担责任。

两种可能的机制如下。

方法 1 - 客户端服务器机制

  • 有 2 个相同的系统单独供电。
  • 辅助系统定期发送请求,主系统回复。
  • 如果主系统未能回复(多次)辅助系统 系统开始负责。

方法 2 - 心跳机制

  • 有 2 个相同的系统单独供电。
  • 主系统定期发送心跳消息。
  • 如果有心跳,则辅助节点知道主节点已启动。
  • 如果没有心跳,则假定主节点已死亡。辅助节点获得控制权。

你们知道有什么更好的机制来实现这个吗?

【问题讨论】:

    标签: arduino embedded microcontroller pic


    【解决方案1】:

    通常在商业嵌入式系统中,watchdog timer 将用于在处理器无法通过周期性“踢狗”响应的情况下重置处理器。所有 AVR 微控制器(以及许多其他品牌,如果不是大多数)都有一个内部看门狗定时器。尽管具有独立外部看门狗定时器的设计通常更加稳健和可靠。赞this

    对于需要更高容错度的系统,例如航空航天应用,使用三重冗余或triple modular redundant 架构。

    在三重冗余系统中,三个相同的处理组件同时执行相同的任务。然后将结果发送到投票电路或 John von Neumann 所说的“majority organ”(第 4.2.2 节)。投票电路的输出是三个处理组件的多数意见。

    这允许其中一个处理组件发生故障,而不会影响系统的运行。但是,如果投票电路发生故障,那么整个系统也会发生故障。三重模块化冗余系统还通过实施三个投票电路消除了这种单点故障。

    但最终,这三个输出将需要再次组合成一个结果,从而导致单点故障。即使那个故障点是人类查看三个仪表,每个仪表都监控相同的温度。

    您需要确定的是您的系统需要如何fault-tolerant,以及您的系统可以处理哪种mean time between failures (MTBF)。然后围绕它设计你的冗余系统。

    【讨论】:

    • 该死的漂亮图表!你用了什么?
    • @drozzy 实际上不是我的图表。我从一个现在似乎是死链接的网站上复制了它们。我已经更新了原始论文的链接,不幸的是,它没有那么好的图表。
    猜你喜欢
    • 2021-06-14
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多