Arduino (またはその他のマイクロコントローラー) のフェイルセーフ メカニズムを開発しているとします。つまり、プライマリ コントローラに障害が発生した場合、セカンダリ マイクロコントローラまたは別のボードが責任を負う必要があります。
次の 2 つのメカニズムが考えられます。
方法 1 - クライアント サーバー メカニズム
- 別々に電源が供給される 2 つの同一のシステムがあります。
- セカンダリ システムは定期的に要求を送信し、プライマリ システムは応答します。
- プライマリ システムが応答しない場合 (数回) は、セカンダリ システムが担当します。
方法 2 - ハートビートのメカニズム
- 別々に電源が供給される 2 つの同一のシステムがあります。
- プライマリ システムは定期的にハートビート メッセージを送信します。
- ハートビートがある場合、セカンダリ ノードはプライマリ ノードが稼働していることを認識します。
- ハートビートがない場合、プライマリ ノードは停止していると見なされます。セカンダリ ノードが制御を取得します。
これを実装するためのより良いメカニズムを知っていますか?