10

Arduino (またはその他のマイクロコントローラー) のフェイルセーフ メカニズムを開発しているとします。つまり、プライマリ コントローラに障害が発生した場合、セカンダリ マイクロコントローラまたは別のボードが責任を負う必要があります。

次の 2 つのメカニズムが考えられます。

方法 1 - クライアント サーバー メカニズム

  • 別々に電源が供給される 2 つの同一のシステムがあります。
  • セカンダリ システムは定期的に要求を送信し、プライマリ システムは応答します。
  • プライマリ システムが応答しない場合 (数回) は、セカンダリ システムが担当します。

方法 2 - ハートビートのメカニズム

  • 別々に電源が供給される 2 つの同一のシステムがあります。
  • プライマリ システムは定期的にハートビート メッセージを送信します。
  • ハートビートがある場合、セカンダリ ノードはプライマリ ノードが稼働していることを認識します。
  • ハートビートがない場合、プライマリ ノードは停止していると見なされます。セカンダリ ノードが制御を取得します。

これを実装するためのより良いメカニズムを知っていますか?

4

1 に答える 1

14

通常、商用の組み込みシステムでは、ウォッチドッグ タイマーを使用して、定期的に "犬を蹴る" ことでプロセッサが応答しない場合にプロセッサをリセットします。すべての AVR マイクロコントローラー (および他のほとんどのブランドではないにしても多く) には、内部ウォッチドッグ タイマーがあります。ただし、独立した外部ウォッチドッグ タイマーを備えた設計は、通常、より堅牢で信頼性が高くなります。このように:

外部ウォッチドッグのセットアップ

航空宇宙アプリケーションなど、さらに高度なフォールト トレランスを必要とするシステムでは、三重冗長または三重モジュラー冗長アーキテクチャが使用されます。

三重冗長システムでは、3 つの同一の処理コンポーネントが同じタスクを同時に実行します。結果は投票回路、またはジョン・フォン・ノイマンが「多数派機関」と呼んだものに送られます (セクション 4.2.2)。投票回路の出力は、3 つの処理コンポーネントの多数意見です。

三重の冗長性

これにより、システムの動作に影響を与えることなく、処理コンポーネントの 1 つに障害が発生する可能性があります。ただし、投票回路に障害が発生すると、システム全体にも障害が発生します。トリプル モジュラー冗長システムは、3 つの投票回路も実装することで、この単一障害点を排除します。

トリプル モジュラー リダンダント

ただし、最終的には、3 つの出力を再び 1 つの結果に結合する必要があり、単一点障害が発生します。その失敗のポイントが、それぞれが同じ温度を監視している 3 つのゲージを見ている人間であったとしても。

決定する必要があるのは、システムに必要な耐障害性と、システムが処理できる平均故障間隔 (MTBF) の種類です。次に、それを中心に冗長システムを設計します。

于 2012-10-15T12:48:59.873 に答える