(57)【特許請求の範囲】
【請求項１】
システムを構成する複数の機器及びクロックマスタが接続される複数のインターフェース部と、
前記インターフェース部を介して前記複数の機器のそれぞれから受信するメッセージに含まれる情報に基づいて、前記システムを構成する前記複数の機器の構成を判定する制御部と、
前記インターフェース部の各々が接続され、あるインターフェース部で受信されたパケットが、前記パケットの送信先の機器が接続されたインターフェース部から出力されるように、出力先の切り替えを行う接続部と、
を備え、
前記制御部は、前記複数のインターフェース部の１つに接続される前記機器のエラーを検出した場合に、当該機器のエラーを検出した回数に応じて、当該機器のリセット、再起動、または切り離しを行い、
前記機器のエラーを検出した回数が第１の閾値よりも多い場合に、前記インターフェース部を介して前記機器にリセットを指示し、
前記インターフェース部に接続される前記機器にリセットを指示した回数が第２の閾値よりも多い場合に、当該インターフェース部を介して当該機器に再起動を指示し、
前記クロックマスタは、前記インターフェース部を介して所定の周期毎に同期メッセージを前記複数の機器の各々へ送信し、
前記接続部は、前記インターフェース部において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファを有し、
前記同期メッセージは、同時に前記複数の機器に届くように、同報通信によって送信され、
前記複数の機器は、前記同期メッセージを受信した時刻に基づいて、時刻同期を行うシステム管理装置。
【請求項２】
前記制御部は、前記メッセージに含まれる前記情報に基づいて、前記複数の機器のそれぞれが冗長構成を成しているか否かを判定する請求項１に記載のシステム管理装置。
【請求項３】
前記制御部は、冗長構成を成していると判定した機器から受信した情報を多数決判定し、当該多数決判定によって選択した情報を他の機器へ送信する請求項２に記載のシステム管理装置。
【請求項４】
前記複数の機器は、センサとして機能する機器と、前記センサの検出する値に基づいて動作部の動作を制御する制御機器と、前記動作部を有する被制御機器とを含む請求項１から３のいずれか１つに記載のシステム管理装置。
【請求項５】
宇宙機に搭載されるシステムであって、
複数の機器と、
前記複数の機器が接続されるシステム管理装置と、を含み、
前記システム管理装置は、
前記複数の機器及びクロックマスタが接続される複数のインターフェース部と、
前記インターフェース部を介して前記複数の機器のそれぞれから受信するメッセージに含まれる情報に基づいて、前記システムを構成する前記複数の機器の構成を判定する制御部と、
前記インターフェース部の各々が接続され、あるインターフェース部で受信されたパケットが、前記パケットの送信先の機器が接続されたインターフェース部から出力されるように、出力先の切り替えを行う接続部と、
を備え、
前記制御部は、前記複数のインターフェース部の１つに接続される前記機器のエラーを検出した場合に、当該機器のエラーを検出した回数に応じて、当該機器のリセット、再起動、または切り離しを行い、
前記機器のエラーを検出した回数が第１の閾値よりも多い場合に、前記インターフェース部を介して前記機器にリセットを指示し、
前記インターフェース部に接続される前記機器にリセットを指示した回数が第２の閾値よりも多い場合に、当該インターフェース部を介して当該機器に再起動を指示し、
前記クロックマスタは、前記インターフェース部を介して所定の周期毎に同期メッセージを前記複数の機器の各々へ送信し、
前記接続部は、前記インターフェース部において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファを有し、
前記同期メッセージは、同時に前記複数の機器に届くように、同報通信によって送信され、
前記複数の機器は、前記同期メッセージを受信した時刻に基づいて、時刻同期を行うシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム管理装置およびシステムに関する。
【背景技術】
【０００２】
複数の機器を通信可能に接続して構成されるシステムが知られている。例えば、特許文献１は、分散配置された複数の通信局を情報伝送路を介して互いに接続してなる分散システムが開示されている。特許文献１は、さらに、各通信局が、他の通信局から送信された時刻情報の中から多数決で選択したシステム時刻と、自局の時刻とを比較して時刻の修正を行うことを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平３−７７１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のように、システムを構成する機器が、システムを動作させるために多数決判定のような処理をそれぞれ行うと、それぞれの機器の構成が複雑化するおそれがある。本発明は、上記に鑑みてなされたものであって、複数の機器を通信可能に接続して構成されるシステムを簡易に実現することができるシステム管理装置およびそのシステム管理装置を用いたシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
１つの態様において、システム管理装置は、システムを構成する複数の機器及びクロックマスタが接続される複数のインターフェース部と、インターフェース部を介して複数の機器のそれぞれから受信するメッセージに含まれる情報に基づいて、システムを構成する複数の機器の構成を判定する制御部と、インターフェース部の各々が接続され、あるインターフェース部で受信されたパケットが、パケットの送信先の機器が接続されたインターフェース部から出力されるように、出力先の切り替えを行う接続部とを備える。制御部は、複数のインターフェース部の１つに接続される機器のエラーを検出した場合に、当該機器のエラーを検出した回数に応じて、当該機器のリセット、再起動、または切り離しを行い、機器のエラーを検出した回数が第１の閾値よりも多い場合に、インターフェース部を介して機器にリセットを指示し、インターフェース部に接続される機器にリセットを指示した回数が第２の閾値よりも多い場合に、当該インターフェース部を介して当該機器に再起動を指示する。クロックマスタは、インターフェース部を介して所定の周期毎に同期メッセージを複数の機器の各々へ送信する。接続部は、インターフェース部において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファを有する。同期メッセージは、同時に複数の機器に届くように、同報通信によって送信される。複数の機器は、同期メッセージを受信した時刻に基づいて、時刻同期を行う。
【０００６】
他の態様において、システムは、宇宙機に搭載されるシステムであって、複数の機器と、複数の機器が接続されるシステム管理装置とを含む。システム管理装置は、複数の機器及びクロックマスタが接続される複数のインターフェース部と、インターフェース部を介して複数の機器のそれぞれから受信するメッセージに含まれる情報に基づいて、システムを構成する複数の機器の構成を判定する制御部と、インターフェース部の各々が接続され、あるインターフェース部で受信されたパケットが、パケットの送信先の機器が接続されたインターフェース部から出力されるように、出力先の切り替えを行う接続部とを備える。制御部は、複数のインターフェース部の１つに接続される機器のエラーを検出した場合に、当該機器のエラーを検出した回数に応じて、当該機器のリセット、再起動、または切り離しを行い、機器のエラーを検出した回数が第１の閾値よりも多い場合に、インターフェース部を介して機器にリセットを指示し、インターフェース部に接続される機器にリセットを指示した回数が第２の閾値よりも多い場合に、当該インターフェース部を介して当該機器に再起動を指示する。クロックマスタは、インターフェース部を介して所定の周期毎に同期メッセージを複数の機器の各々へ送信する。接続部は、インターフェース部において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファを有する。同期メッセージは、同時に複数の機器に届くように、同報通信によって送信される。複数の機器は、同期メッセージを受信した時刻に基づいて、時刻同期を行う。
【発明の効果】
【０００７】
本発明に係るシステム管理装置およびシステムは、複数の機器を通信可能に接続して構成されるシステムを簡易に実現することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１Ａ】図１Ａは、システム管理装置とそれを含むシステムの例を示す図である。
【図１Ｂ】図１Ｂは、システム管理装置が有する制御部のブロック図である。
【図１Ｃ】図１Ｃは、システム管理装置が有する記憶部のブロック図である。
【図２】図２は、システムの起動時の動作の例を示す図である。
【図３】図３は、構成テーブルの例を示す図である。
【図４】図４は、システム管理装置の動作の例を示すフローチャートである。
【図５】図５は、制御部および記憶部がインターフェース部から独立して設けられたシステム管理装置の構成の例を示す図である。
【図６】図６は、制御部および記憶部がインターフェース部から独立して設けられたシステム管理装置の構成の他の例を示す図である。
【図７】図７は、複数のシステム管理装置を含むシステムの例を示す図である。
【図８】図８は、システム管理装置の動作の他の例を示すフローチャートである。
【図９】図９は、実施例２に係るシステムの構成を示す図である。
【図１０】図１０は、機器のブロック図である。
【図１１】図１１は、通信制御について説明するための図である。
【図１２】図１２は、インターフェース部毎に独立してバッファが設けられる例を示す図である。
【図１３】図１３は、多数決判定について説明するための図である。
【図１４】図１４は、多数決判定について説明するための図である。
【図１５】図１５は、クロックマスタが実行する処理の処理手順の例を示すフローチャートである。
【図１６】図１６は、データ送信処理の処理手順の例を示すフローチャートである。
【図１７】図１７は、データ受信処理の処理手順の例を示すフローチャートである。
【図１８】図１８は、クロックマスタの機能がシステム管理装置によって実現される例を示す図である。
【図１９】図１９は、複数のシステム管理装置を含むシステムの例を示す図である。
【図２０】図２０は、システム管理装置を含まないシステムの例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、システム管理装置およびシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、この実施例における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
【実施例１】
【００１０】
図１Ａ、図１Ｂ、および図１Ｃを参照しながら、本実施例に係るシステム管理装置１０とそれを含むシステムについて説明する。図１Ａは、システム管理装置１０とそれを含むシステムの例を示す図である。図１Ｂは、システム管理装置１０が有する制御部１２０のブロック図である。図１Ｃは、システム管理装置１０が有する記憶部１３０のブロック図である。図１Ａに示す例において、システム管理装置１０は、２台の機器２０ａ（機器Ａ）と、２台の機器２０ｂ（機器Ｂ）と、２台の機器２０ｃ（機器Ｃ）と接続され、これらの機器の間での情報の送受信を仲介するように構成されている。
【００１１】
システム管理装置１０、機器２０ａ、機器２０ｂ、および機器２０ｃは、システムを構成する。例えば、機器２０ａは、センサとして機能する機器であり、機器２０ｂは、センサの検出する値に基づいて動作部の動作を制御する制御機器であり、機器２０ｃは、動作部を有する被制御機器である。すなわち、機器２０ａ、機器２０ｂ、および機器２０ｃは、機器間で情報を送受信することによって、システムの動作を実現させる。
【００１２】
機器２０ａ、機器２０ｂ、および機器２０ｃは、信頼性を高めるために冗長化されている。具体的には、機器２０ａ、機器２０ｂ、および機器２０ｃは、それぞれ、２台が並行して動作するように構成されている。２台の機器２０ａは、略同じ周期で同じ処理を実行する。２台の機器２０ｂは、略同じ周期で同じ処理を実行する。２台の機器２０ｃは、略同じ周期で同じ処理を実行する。
【００１３】
システム管理装置１０を介さずに機器２０ａ、機器２０ｂ、および機器２０ｃを接続する場合、これらの機器は、例えば、図２０に示すように接続される。図２０に示す例では、一方の機器２０ｂは、２台の機器２０ａおよび２台の機器２０ｃと接続されている。もう一方の機器２０ｂも同様に、２台の機器２０ａおよび２台の機器２０ｃと接続されている。このように、システム管理装置１０を介さずに機器２０ａ、機器２０ｂ、および機器２０ｃを接続する場合、接続経路が多くなり構成が複雑化する。例えば、機器２０ａと機器２０ｃとの間での情報のやりとりが必要になった場合、冗長度をさらに高めることが必要になった場合、あるいは他の機器を追加することが必要になった場合には、接続経路が増加し、構成がさらに複雑になる。加えて、接続経路の増加に対応するために、個々の機器の改修が必要になる場合もある。
【００１４】
システム管理装置１０を介して機器２０ａ、機器２０ｂ、および機器２０ｃを接続することにより、このような問題は解決される。システム管理装置１０を介してこれらの機器を接続することにより、個別の接続経路を設けることなく、任意の機器間で情報を伝送することが可能になる。冗長度をさらに高めることが必要になった場合、あるいは他の機器を追加することが必要になった場合でも、新たな機器をシステム管理装置１０に接続すれば、新たな機器と既存の機器の間の通信が可能になる。
【００１５】
システム管理装置１０を介して機器２０ａ、機器２０ｂ、および機器２０ｃを接続することにより、冗長構成の実現も容易になる。例えば、図２０に示した構成の場合、冗長化された機器が正常に動作しているか否かの監視、冗長化された機器から送信された情報のいずれを採用するかを決定するための多数決処理等を、個々の機器が行わなければならない。一方、システム管理装置１０を介して機器２０ａ、機器２０ｂ、および機器２０ｃを接続する構成の場合、監視および多数決判定の機能をシステム管理装置１０に集約することができる。
【００１６】
図１Ａに示すように、システム管理装置１０は、インターフェース部１０１〜１０６（ＩＦ＃１〜ＩＦ＃６）と、接続部１１１〜１１３とを有する。
【００１７】
インターフェース部１０１〜１０６には、それぞれ、２台の機器２０ａ、２台の機器２０ｂ、および２台の機器２０ｃが接続される。インターフェース部１０１〜１０６のそれぞれは、データ信号を送受信するためのポート（ポート＃１Ｄ〜ポート＃６Ｄ）と、リセットまたは再起動のための信号を送受信するためのポート（ポート＃１Ｒ〜ポート＃６Ｒ）とを有する。このように、リセットまたは再起動のための信号を送受信するためのポートを独立して設けることにより、データ信号を送受信するための接続経路に一時的な障害が発生した場合に、対応する機器をリセットまたは再起動させて障害を解消することができる。
【００１８】
ポートの種別は、インターフェース部毎に異なってもよい。ポートの種別は、データ信号を送受信するためのポートと、リセットまたは再起動のための信号を送受信するためのポートとで異なってもよい。すなわち、複数の種別のポートがシステム管理装置１０に混在していてもよい。例えば、シリアル通信に対応した機器が接続されるインターフェース部は、ＵＳＢ（Universal  Serial  Bus）、ＲＳ−２３２Ｃ等のポートを有してもよい。例えば、パラレル通信に対応した機器が接続されるインターフェース部は、ＳＣＳＩ（Small  Computer  System  Interface）等のポートを有してもよい。
【００１９】
接続部１１１〜１１３は、インターフェース部１０１〜１０６を相互に電気的に接続する。接続部１１１〜１１３は、インターフェース部１０１〜１０６を接続するために、スター型、リング型、バス型等の各種の接続形態を採用することができる。接続部１１１〜１１３のそれぞれは、同じ信号を伝送する。すなわち、システム管理装置１０の内部において、インターフェース部１０１〜１０６間の接続経路は、３重に冗長化されている。このように、内部の接続経路を冗長化することにより、システム管理装置１０の信頼性を向上することができる。
【００２０】
インターフェース部１０１〜１０６のそれぞれは、さらに、制御部１２０と、記憶部１３０とを有する。制御部１２０は、各種の制御を実行する。制御部１２０が行う制御には、例えば、システムに含まれる機器の構成の管理、インターフェース部が機器から受信した情報の送信先の判定、機器および接続部のエラーの検出、エラーの検出にともなう異常処理等に関する制御が含まれる。
【００２１】
図１Ｂに示すように、制御部１２０は、構成管理部１２１と、多数決判定部１２２と、異常処理部１２３とを有する。構成管理部１２１および異常処理部１２３は、１つのインターフェース部に含まれるものが有効化され、他のインターフェース部に含まれるものは無効化される。どの構成管理部１２１および異常処理部１２３が有効化されるかは、例えば、予め定められたインターフェース部１０１〜１０６の優先順位に基づいて判定される。有効化されている構成管理部１２１および異常処理部１２３を有するインターフェース部に異常が生じた場合、優先順位が次に高いインターフェース部が有する構成管理部１２１および異常処理部１２３が有効化される。
【００２２】
構成管理部１２１は、システム管理装置１０に接続されている機器の構成を管理する。機器の構成は、システム管理装置１０にどのような機器が接続され、それぞれの機器がどのような状態にあるかを示す。機器の構成には、どの機器とどの機器が冗長構成を成しているかに関する情報が含まれる。構成管理部１２１は、それぞれの機器が起動中にシステム管理装置１０へ送信する起動通知メッセージ等のメッセージに含まれる情報に基づいて、機器の構成に関する初期の情報を作成する。さらに、構成管理部１２１は、異常処理部１２３による機器のリセット、再起動、または切り離し、機器からの通知等に応じて、機器の構成に関する情報を更新する。機器の構成に関する情報は、各インターフェース部に配信され、各インターフェース部の記憶部１３０に、構成テーブル１３１として記憶される。
【００２３】
多数決判定部１２２は、多数決判定によって、冗長構成を成している機器から送信された複数の情報のうちのいずれを採用するかを判定する。多数決判定を実現するための手法については、任意の公知の各種の手法を用いてよい。例えば、冗長構成を成している機器が２台の場合、多数決判定部１２２は、予め定められた基準（例えば、起動通知メッセージが受信された順序等）に基づく優先度を用いて、採用する情報を決定してもよい。
【００２４】
さらに、多数決判定部１２２は、接続部１１１〜１１３のいずれを経由した情報を、送信元の機器から送信された情報として採用するかを判定するための多数決判定を、機器から送信された情報毎に実行する。この多数決判定は、冗長構成を成している機器から送信された複数の情報に対する多数決判定の前に行われる。すなわち、多数決判定部１２２は、接続部１１１〜１１３のいずれかに障害が発生していても、それぞれの機器から送信された情報を高い確率で正しく受信できるように構成されている。
【００２５】
このように、多数決判定部１２２は、外部の冗長構成に関する多数決判定と、内部の冗長構成に関する多数決判定という２重の多数決判定を行う。多数決判定を２重に実行することによって、システム管理装置１０の信頼性を高めることができる。
【００２６】
異常処理部１２３は、インターフェース部１０１〜１０６のいずれかにおいてエラーが検出された場合に、エラーに対する対処を実行する。例えば、異常処理部１２３は、ある機器のエラーが検出された場合、その機器のエラーが検出された回数に応じて、その機器のリセット、再起動、または切り離しを実行する。
【００２７】
制御部１２０の機能は、ソフトウェアによって実現されてもよい。この場合、制御部１２０は、例えば、ＣＰＵ（Central  Processing  Unit）等の演算装置と、ＲＡＭ（Random  Access  Memory）等の記憶装置を有する。そして、制御部１２０は、予め用意されているプログラムを記憶装置上に割り当てられた記憶領域に展開し、演算装置によって実行することにより、各種の機能を実現する。プログラムは、記憶部１３０に記憶されていてもよい。制御部１２０の機能がソフトウェアによって実現される場合、構成管理部１２１、多数決判定部１２２、および異常処理部１２３は、ソフトウェアが実行されたときに実体化する。構成管理部１２１および異常処理部１２３は、有効化されるときに実体化されてもよい。
【００２８】
記憶部１３０は、ソリッドステートドライブ、ハードディスクドライブ等の非一過的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）な記憶媒体を有する。記憶部１３０は、データおよびプログラムを記憶することができる。図１Ｃに示すように、記憶部１３０に記憶されるデータには、構成テーブル１３１と、状態データ１３２とが含まれる。構成テーブル１３１は、機器の構成に関する情報を保持する。
【００２９】
状態データ１３２は、インターフェース部に接続されている機器の状態を示す情報を保持する。機器の状態を示す情報には、例えば、対応する機器から最後に受信した情報、対応する機器へ最後に送信した情報等が含まれる。状態データ１３２は、異常処理部１２３が機器のリセットまたは再起動を実行するときに利用される。リセット前または再起動前の状態を示す情報を機器に伝えることにより、機器がリセット前または再起動前の状態から処理を再開することができる。
【００３０】
システム管理装置１０の構成は、図１Ａに示す例に限定されない。例えば、システム管理装置１０が有するインターフェース部の数は、６個に限定されない。各インターフェース部が有するポートは、データ信号を送受信するためのポートと、リセットまたは再起動のための信号を送受信するためのポートとを兼ねていてもよい。接続部の冗長度は、３に限定されない。
【００３１】
図２および図３を参照しながら、構成管理部１２１による機器の構成の管理について説明する。図２は、システムの起動時の動作の例を示す図である。図３は、構成テーブル１３１の例を示す図である。
【００３２】
図２に示すように、機器２０ａ、機器２０ｂ、および機器２０ｃは、起動中に、機器の有する機能の種別を示す値を含むメッセージをシステム管理装置１０へ送信する。機器の有する機能の種別とは、機器の役割（用途）も含めて決定される種別であり、物理的に同一の装置であっても役割が異なれば異なる種別が割り当てられることもある。また、物理的に一つの装置であっても複数の異なる機能／役割が割り当てられれば、複数の種別が割り当てられることもある。起動中とは、起動が開始してから、定常的な処理が開始されるまでの期間を意味する。
【００３３】
図２に示す例において、２台の機器２０ａは、機器の有する機能の種別が「Ａ」であることを示すメッセージをシステム管理装置１０へ送信する。２台の機器２０ｂは、機器の有する機能の種別が「Ｂ」であることを示すメッセージをシステム管理装置１０へ送信する。２台の機器２０ｃは、機器の有する機能の種別が「Ｃ」であることを示すメッセージをシステム管理装置１０へ送信する。
【００３４】
こうして送信されたメッセージに基づいて、構成管理部１２１は、ＩＦ＃１およびＩＦ＃２には、種別が「Ａ」の機器が接続され、これらが冗長構成を成していることを検出することができる。さらに、構成管理部１２１は、ＩＦ＃３およびＩＦ＃４には、種別が「Ｂ」の機器が接続され、これらが冗長構成を成していることを検出することができる。さらに、構成管理部１２１は、ＩＦ＃５およびＩＦ＃６には、種別が「Ｃ」の機器が接続され、これらが冗長構成を成していることを検出することができる。
【００３５】
構成管理部１２１は、メッセージに含まれる種別を、メッセージを受信したインターフェース部と対応付けて、構成テーブル１３１を作成する。構成テーブル１３１の例を図３に示す。図３に示すように、構成テーブル１３１は、ＩＦ番号、種別、ステータス、エラー回数、リセット回数、再起動回数、エラー発生時間といった項目を有する。構成テーブル１３１には、インターフェース部毎に情報が格納される。
【００３６】
ＩＦ番号の項目には、インターフェース部を識別するための番号が設定される。種別の項目には、インターフェース部に接続されている機器の有する機能の種別を示す値が設定される。種別の項目に同じ値が設定され、ステータスの項目に「ａｃｔｉｖｅ」が設定されているインターフェース部に接続されている機器は、冗長構成を成している機器とみなされる。
【００３７】
ステータスの項目には、インターフェース部に接続されている機器の現在の状態を示す値が設定される。機器の現在の状態を示す値には、例えば、「ｓｔａｒｔｉｎｇ  ｕｐ」、「ａｃｔｉｖｅ」、および「ｄｅｔａｃｈｅｄ」が含まれる。「ｓｔａｒｔｉｎｇ  ｕｐ」は、機器が起動中であることを意味する。「ａｃｔｉｖｅ」は、機器が定常的な処理を実行可能であることを意味する。「ｄｅｔａｃｈｅｄ」は、機器が故障したと判定され、システムから論理的または物理的に切り離されたことを意味する。
【００３８】
エラー回数の項目には、インターフェース部に接続されている機器のエラーが検出された回数が設定される。リセット回数の項目には、インターフェース部に接続されている機器がリセットされた回数が設定される。再起動回数の項目には、インターフェース部に接続されている機器が再起動された回数が設定される。エラー発生時間の項目には、インターフェース部に接続されている機器のエラーが最後に検出された日時が設定される。
【００３９】
リセットは、再起動よりも簡易的に機器を起動し直す方式で実現され、システムの動作に及ぼす影響がより小さい。例えば、再起動では、機器全体の電源が一旦ＯＦＦにされるのに対して、リセットでは、機器の一部の電源がＯＮに保たれる。あるいは、再起動では、機器全体が初期化されるのに対して、リセットでは、機器の一部が初期化されずにそのまま保たれる。あるいは、再起動では、機器の電源がＯＦＦにされた状態が一定期間継続するのに対して、リセットでは、機器の電源がＯＦＦにされた後に即座にＯＮにされる。
【００４０】
エラー回数、リセット回数、再起動回数、およびエラー発生時間の項目の値は、エラーの検出、または異常処理部１２３による異常処理に応じて更新される。いずれかのインターフェース部が、機器のエラーを検出すると、その情報が、有効化されている構成管理部１２１に伝えられる。構成管理部１２１は、構成テーブル１３１の対応する行のエラー回数の項目の値に１を加算し、その行のエラー発生時間の項目に現在の日時を設定する。そして、エラー回数の項目の値が、閾値ｎを超えた場合には、異常処理部１２３は、対応する機器をリセットする。
【００４１】
異常処理部１２３によって機器がリセットされると、構成管理部１２１は、構成テーブル１３１の対応する行のリセット回数の項目の値に１を加算する。そして、リセット回数の項目の値が、閾値ｍを超えた場合には、異常処理部１２３は、対応する機器を再起動する。異常処理部１２３によって機器が再起動されると、構成管理部１２１は、構成テーブル１３１の対応する行の再起動回数の項目の値に１を加算する。そして、再起動回数の項目の値が、閾値ｋを超えた場合には、異常処理部１２３は、対応する機器を論理的または物理的に切り離す。
【００４２】
本実施例において、構成管理部１２１は、機器がリセットまたは再起動されるときに、エラー回数の項目の値を０に設定し直す。構成管理部１２１は、機器が再起動されるときに、リセット回数の項目の値を０に設定し直す。システム管理装置１０は、エラー回数の項目の値を０に設定し直さずに、エラー回数の項目の値を閾値で除算した余りに基づいて、機器をリセットまたは再起動するタイミングを判定してもよい。システム管理装置１０は、リセット回数の項目の値を０に設定し直さずに、リセット回数の項目の値を閾値で除算した余りに基づいて、機器を再起動するタイミングを判定してもよい。閾値は、機器の有する機能の種別毎に異なってもよい。
【００４３】
構成管理部１２１は、更新した構成テーブル１３１を他のインターフェース部に配信する。構成管理部１２１は、機器のエラーが最後に検出されてから所定の期間が経過した場合に、エラー回数、リセット回数、および再起動回数の項目の値を０に戻してもよい。具体的には、構成管理部１２１は、構成テーブル１３１のエラー発生時間の項目に設定されている日時から所定の期間が経過した場合に、同じ行のエラー回数、リセット回数、および再起動回数の項目の値を０に戻してもよい。このように構成することにより、一時的な理由で生じたエラーの影響を低減することができる。一時的な理由で生じたエラーには、例えば、宇宙線の影響で生じたエラーが含まれる。
【００４４】
このように、異常処理部１２３は、機器のエラーが検出された場合に、段階的に機器の復旧を試みる。このため、異常処理部１２３は、復旧可能な機器が切り離される可能性を低減することができる。異常処理部１２３による異常処理の詳細については、後述のシステム管理装置１０の動作と併せて、記述する。
【００４５】
図４を参照しながら、システム管理装置１０の動作について説明する。図４は、システム管理装置１０の動作の例を示すフローチャートである。システムが起動されると、システム管理装置１０は、図４に示すように、ステップＳ１０１〜ステップＳ１０２で、初期処理を実行する。具体的には、有効化されている構成管理部１２１は、ステップＳ１０１で、構成情報を収集する。すなわち、構成管理部１２１は、インターフェース部１０１〜１０６が接続された機器から受信したメッセージを取得し、メッセージに含まれる情報に基づいて機器の有する機能の種別を判定する。そして、制御部１２０は、ステップＳ１０２で、構成テーブル１３１を作成し、他のインターフェース部に配信する。
【００４６】
この段階において、構成テーブル１３１の種別の項目には、対応するインターフェース部に接続されている機器の有する機能の種別を示す値が設定される。エラー回数、リセット回数、および再起動回数の項目の値は、０に設定される。エラー発生時間の項目は、空欄に設定される。ステータスの項目には、対応するインターフェース部に接続されている機器の起動が完了した後に、「ａｃｔｉｖｅ」が設定される。
【００４７】
続いて、システム管理装置１０は、ステップＳ１０３〜ステップＳ１０６で、定常処理を実行する。具体的には、システム管理装置１０に接続されている機器が、それぞれの周期に従って処理を実行し、他の機器へ送信すべき情報を、送信先の機器の有する機能の種別を示す値と共にシステム管理装置１０へ送信する。情報を送信した機器が接続されたインターフェース部の制御部１２０は、ステップＳ１０３で、情報を受信し、送信先の機器の有する機能の種別を示す値に基づいて、情報を他のインターフェース部に転送する。制御部１２０は、構成テーブル１３１のステータスの項目に「ａｃｔｉｖｅ」以外の値が設定されているインターフェース部を転送先として無視する。情報を転送されたインターフェース部の制御部１２０は、ステップＳ１０４で、多数決判定処理を行う。
【００４８】
システム管理装置１０およびインターフェース部１０１〜１０６に接続された機器は、時刻同期して動作する。具体的には、システム管理装置１０および機器は、同期した基準クロックに基づいて、所定の周期で処理を実行する。周期は、機器の有する機能の種別毎に異なってもよい。インターフェース部１０１〜１０６に接続された機器は、同じ種別の機器が、ほぼ同じタイミングで同じ処理を独立して実行するように制御される。このため、システム管理装置１０は、ステップＳ１０３では、同じ種別の機器がほぼ同じタイミングで送信した情報を受信する。そして、システム管理装置１０は、ステップＳ１０４では、同じ種別の機器がほぼ同じタイミングで送信した情報から、採用すべき情報を、多数決判定によって判定する。
【００４９】
例えば、２台の機器２０ａは、情報を、送信先の機器の有する機能の種別を示す値「Ｂ」と共にシステム管理装置１０へ送信する。機器２０ａは、「Ｂ」の種別に対応する機器がシステム管理装置１０に何台接続されているかを知らなくてよい。この場合、機器２０ａが接続されているインターフェース部１０１および１０２の制御部１２０は、それぞれ、構成テーブル１３１を参照し、インターフェース部１０３および１０４を情報の転送先として選択する。そして、インターフェース部１０１および１０２の制御部１２０は、接続部１１１〜１１３のそれぞれを介して、情報をインターフェース部１０３および１０４へ転送する。
【００５０】
インターフェース部１０３および１０４の制御部１２０は、この場合、それぞれ、計６個の情報を受信する。そして、それぞれの制御部１２０は、まず、送信元のインターフェース部毎に、接続部１１１〜１１３を介して転送された３つの情報から多数決判定によって１つの情報を選択し、さらに、送信元のインターフェース部毎に選択された２つの情報から多数決判定によって１つの情報を選択する。
【００５１】
システム管理装置１０とインターフェース部１０１〜１０６に接続された機器とを時刻同期させるための処理は、初期処理および定常処理の少なくとも一方で実行される。時刻同期させるための処理は、システム管理装置１０が主導してもよいし、インターフェース部１０１〜１０６に接続された機器のいずれかが主導してもよい。
【００５２】
システム管理装置１０は、ステップＳ１０５で、ステップＳ１０３からステップＳ１０４でエラーが検出されたかを判定する。例えば、制御部１２０は、冗長構成を成している機器の一方から情報を受信したが他方から情報を受信しない場合、他方の機器のエラーを検出する。あるいは、制御部１２０は、冗長構成を成している機器のうち、多数決判定によって採用した情報と異なる情報を送信した機器がある場合、その機器のエラーを検出する。
【００５３】
エラーが検出されない場合（ステップＳ１０５，Ｎｏ）、システム管理装置１０は、ステップＳ１０６に進む。情報を転送されたインターフェース部の制御部１２０は、ステップＳ１０６で、多数決判定で採用した情報を、送信先の機器へ送信する。
【００５４】
ステップＳ１０６で情報が送信された後、システム管理装置１０は、ステップＳ１０３に戻り、次の情報の処理を行う。
【００５５】
ステップＳ１０５でエラーが検出された場合（ステップＳ１０５，Ｙｅｓ）、有効化されている異常処理部１２３を有する制御部１２０は、ステップＳ１０７〜ステップＳ１１８で、構成テーブル１３１に基づいて異常処理を実行する。異常処理において更新された構成テーブル１３１は、他のインターフェース部に配信される。具体的には、制御部１２０は、ステップＳ１０７で、エラー回数の項目の値に１を加算し、加算後の値が閾値ｎよりも多いかを判定する。加算後の値が閾値ｎよりも多くない場合（ステップＳ１０７，Ｎｏ）、制御部１２０は、ステップＳ１１８に進む。
【００５６】
制御部１２０は、ステップＳ１１８で、エラーが検出された機器に再処理を指示する。再処理を指示された機器は、システム管理装置１０へ送信した情報を得た処理を再実行してもよいし、情報をシステム管理装置１０へ送信する処理のみを再実行してもよい。エラーが検出された機器が他の機器と冗長構成を成している場合、制御部１２０は、エラーが検出された機器と冗長構成を成している機器にも再処理を指示してもよい。エラーが検出された機器が他の機器と冗長構成を成しており、かつ、多数決処理で他の機器から送信された情報を採用した場合、制御部１２０は、エラーが検出された機器に再処理を指示しなくてもよい。
【００５７】
その後、システム管理装置１０は、ステップＳ１０３に戻る。
【００５８】
加算後のエラー回数の項目の値が閾値ｎよりも多い場合（ステップＳ１０７，Ｙｅｓ）、有効化されている異常処理部１２３を有する制御部１２０は、ステップＳ１０８に進む。この場合、制御部１２０は、エラー回数の項目の値を０に戻す。制御部１２０は、ステップＳ１０８で、エラーが検出された機器を含む冗長系統の数が１より多いか、すなわち、エラーが検出された機器が冗長構成を成しているかを判定する。
【００５９】
エラーが検出された機器を含む冗長系統の数が１より多い場合（ステップＳ１０８，Ｙｅｓ）、制御部１２０は、ステップＳ１０９に進む。制御部１２０は、ステップＳ１０９で、必要に応じて、冗長系統の切り替えを行う。例えば、エラーが検出された機器が、主系と従系とを有する冗長構成の主系に設定されている場合、制御部１２０は、エラーが検出された機器を従系に設定する。あるいは、冗長構成に含まれる機器に設定されている優先度を用いて多数決判定が行われる場合、制御部１２０は、エラーが検出された機器の優先度を下げる。このように、制御部１２０は、エラーが検出された機器にその後もエラーが継続して検出されてもエラーの影響が小さくなるように、冗長系統の切り替えを行う。
【００６０】
その後、制御部１２０は、ステップＳ１１０に進む。エラーが検出された機器を含む冗長系統の数が１の場合、すなわち、エラーが検出された機器が冗長構成を成していない場合（ステップＳ１０８，Ｎｏ）、制御部１２０は、ステップＳ１０９を実行せずに、ステップＳ１１０に進む。
【００６１】
制御部１２０は、ステップＳ１１０で、リセット回数の項目の値に１を加算し、加算後の値が閾値ｍよりも多いかを判定する。加算後の値が閾値ｍよりも多くない場合（ステップＳ１１０，Ｎｏ）、制御部１２０は、ステップＳ１１１に進む。制御部１２０は、ステップＳ１１１で、エラーが検出された機器へリセット信号を送出し、機器にリセットを実行させる。そして、制御部１２０は、ステップＳ１１２で、リセットが完了したことを示すために機器から送信されるリセット完了通知が受信されるのを待ち受ける。リセット完了通知が受信されるまで、機器に対応するステータスの項目の値は、「ｓｔａｒｔｉｎｇ  ｕｐ」に設定される。
【００６２】
ステップＳ１１１からステップＳ１１２において、制御部１２０は、リセットした機器に対応するインターフェース部の状態データ１３２から、リセットした機器の状態を示す情報を取得し、リセットした機器に送信する。情報を送信するタイミングは、例えば、リセット完了通知が受信されたときである。このように、状態を示す情報を機器に送信することにより、機器がリセット前と同じ状態から処理を再開することが可能になる。制御部１２０は、エラーが検出された機器へリセット信号を送出する前に、機器に最新の状態を示す情報を送信するように要求し、送信された情報をリセット完了後に機器に送信してもよい。
【００６３】
リセット完了通知を受信した後、制御部１２０は、ステップＳ１１８に進む。制御部１２０は、ステップＳ１１８で、リセットした機器に再処理を指示し、その後、ステップＳ１０３に戻る。システム管理装置１０は、ステップＳ１１１が実行された後、ステップＳ１１２およびステップＳ１１８を実行しつつ、これと並行して、ステップＳ１０３以降の処理を実行してもよい。すなわち、システム管理装置１０は、リセット完了通知が受信される前に、次の情報の処理を開始してもよい。
【００６４】
加算後のリセット回数の項目の値が閾値ｍよりも多い場合（ステップＳ１１０，Ｙｅｓ）、有効化されている異常処理部１２３を有する制御部１２０は、ステップＳ１１３に進む。この場合、制御部１２０は、リセット回数の項目の値を０に戻す。制御部１２０は、ステップＳ１１３で、再起動回数の項目の値に１を加算し、加算後の値が閾値ｋよりも多いかを判定する。
【００６５】
加算後の再起動回数の項目の値が閾値ｋよりも多くない場合（ステップＳ１１３，Ｎｏ）、制御部１２０は、ステップＳ１１４に進む。制御部１２０は、ステップＳ１１４で、エラーが検出された機器へ再起動信号を送出し、機器に再起動を実行させる。そして、制御部１２０は、ステップＳ１１５で、再起動が完了したことを示すために機器から送信される再起動完了通知が受信されるのを待ち受ける。再起動完了通知が受信されるまで、機器に対応するステータスの項目の値は、「ｓｔａｒｔｉｎｇ  ｕｐ」に設定される。
【００６６】
ステップＳ１１４からステップＳ１１５において、制御部１２０は、再起動した機器に対応するインターフェース部の状態データ１３２から、再起動した機器の状態を示す情報を取得し、再起動した機器に送信する。情報を送信するタイミングは、例えば、再起動完了通知が受信されたときである。このように、状態を示す情報を機器に送信することにより、機器が再起動前と同じ状態から処理を再開することが可能になる。制御部１２０は、エラーが検出された機器へ再起動信号を送出する前に、機器に最新の状態を示す情報を送信するように要求し、送信された情報を再起動完了後に機器に送信してもよい。
【００６７】
再起動完了通知を受信した後、制御部１２０は、ステップＳ１１８に進む。制御部１２０は、ステップＳ１１８で、再起動した機器に再処理を指示し、その後、ステップＳ１０３に戻る。システム管理装置１０は、ステップＳ１１４が実行された後、ステップＳ１１５およびステップＳ１１８を実行しつつ、これと並行して、ステップＳ１０３以降の処理を実行してもよい。すなわち、システム管理装置１０は、再起動完了通知が受信される前に、次の情報の処理を開始してもよい。
【００６８】
加算後の再起動回数の項目の値が閾値ｋよりも多い場合（ステップＳ１１３，Ｙｅｓ）、有効化されている異常処理部１２３を有する制御部１２０は、ステップＳ１１６に進む。制御部１２０は、ステップＳ１１６で、エラーが検出された機器を含む冗長系統の数が１より多いか、すなわち、エラーが検出された機器が冗長構成を成しているかを判定する。
【００６９】
エラーが検出された機器を含む冗長系統の数が１より多い場合（ステップＳ１１６，Ｙｅｓ）、制御部１２０は、ステップＳ１１７に進む。制御部１２０は、ステップＳ１１７で、エラーが検出された機器が今後使用されないように、切り離し処理を実行する。切り離し処理において、制御部１２０は、エラーが検出された機器に対応するステータスの項目の値を「ｄｅｔａｃｈｅｄ」に変更する。制御部１２０は、さらに、エラーが検出された機器を停止させるための停止信号の送出等の他の処置を行ってもよい。
【００７０】
その後、制御部１２０は、ステップＳ１１８に進む。この場合、制御部１２０は、切り離した機器には再処理を指示しない。エラーが検出された機器を含む冗長系統の数が１の場合、すなわち、エラーが検出された機器が冗長構成を成していない場合（ステップＳ１１６，Ｎｏ）、制御部１２０は、ステップＳ１１４に進む。
【００７１】
上述してきたように、システム管理装置１０を用いることにより、複数の機器を接続するための接続経路を減少させることができ、さらに、冗長構成に関する各種の機能をシステム管理装置１０に集約することができる。このため、複数の機器を通信可能に接続して構成されるシステムを簡易に実現することが可能になる。
【００７２】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例では、機器のエラーを検出した回数に応じて機器をリセットし、機器をリセットした回数に応じて機器を再起動し、機器を再起動した回数に応じて機器を切り離す例について説明したが、異常処理の制御は、これに限定されない。システム管理装置は、機器のリセットまたは再起動の一方を行わなくてもよい。
【００７３】
上記の実施例では、制御部１２０および記憶部１３０がインターフェース部毎に設けられる例を示したが、システム管理装置の構成はこれに限定されない。制御部１２０の機能の一部または全部は、インターフェース部から独立して設けられてもよい。記憶部１３０に記憶されるデータの一部または全部は、インターフェース部から独立して設けられた記憶部に記憶されてもよい。
【００７４】
図５は、制御部および記憶部がインターフェース部から独立して設けられたシステム管理装置の構成の例を示す図である。図５に示すシステム管理装置１１は、インターフェース部１０１ｘ〜１０６ｘと、コントローラ部１５１〜１５３とを備える。
【００７５】
インターフェース部１０１ｘ〜１０６ｘは、制御部１２０および記憶部１３０をもたないことを除いて、図１に示したシステム管理装置１０のインターフェース部１０１〜１０６と同様の構成を有する。すなわち、インターフェース部１０１ｘ〜１０６ｘには、それぞれ、２台の機器２０ａ、２台の機器２０ｂ、および２台の機器２０ｃが接続される。インターフェース部１０１ｘ〜１０６ｘのそれぞれは、データ信号を送受信するためのポート（ポート＃１Ｄ〜ポート＃６Ｄ）と、リセットまたは再起動のための信号を送受信するためのポート（ポート＃１Ｒ〜ポート＃６Ｒ）とを有する。インターフェース部１０１ｘ〜１０６ｘは、接続部１１１〜１１３のそれぞれによって、電気的に接続される。
【００７６】
コントローラ部１５１〜１５３は、それぞれ、制御部１２０および記憶部１３０を有する。コントローラ部１５１〜１５３は、接続部１１１〜１１３のそれぞれによって、電気的に接続される。さらに、コントローラ部１５１〜１５３は、接続部１１１〜１１３のそれぞれによって、インターフェース部１０１ｘ〜１０６ｘと接続される。
【００７７】
制御部１２０および記憶部１３０は、図１に示したシステム管理装置１０の制御部１２０および記憶部１３０と同様の機能を有する。制御部１２０が備える構成管理部１２１および異常処理部１２３は、１つのコントローラ部に含まれるものが有効化され、他のコントローラ部に含まれるものは無効化される。どの構成管理部１２１および異常処理部１２３が有効化されるかは、例えば、予め定められたコントローラ部１５１〜１５３の優先順位に基づいて判定される。有効化されている構成管理部１２１および異常処理部１２３を有するコントローラ部に異常が生じた場合、優先順位が次に高いコントローラ部が有する構成管理部１２１および異常処理部１２３が有効化される。
【００７８】
例えば、コントローラ部１５１〜１５３の制御部１２０は、同じ情報を受信し、並行して同じ処理を実行するとともに、他のコントローラ部の制御部１２０の処理結果を取得する。そして、各コントローラ部の制御部１２０の処理結果を多数決判定することにより、他のコントローラ部に異常があればそれを検出する。
【００７９】
このように、制御部１２０および記憶部１３０は、システム管理装置１１においては、インターフェース部１０１ｘ〜１０６ｘから独立して、コントローラ部１５１〜１５３に設けられている。このように制御部１２０および記憶部１３０をインターフェース部から独立させることにより、必要な制御部１２０および記憶部１３０の数を減らすことができる。例えば、図１に示したシステム管理装置１０は、６個の制御部１２０および記憶部１３０を必要とするが、システム管理装置１１では、制御部１２０および記憶部１３０の数は３個で済む。さらに、システム管理装置１０においては、インターフェース部の数を増やした分だけ制御部１２０および記憶部１３０の数を増やす必要があるが、システム管理装置１１においては、インターフェース部の数を増やしても制御部１２０および記憶部１３０の数はそのままでよい。
【００８０】
制御部１２０および記憶部１３０の数を減らすことにより、部品点数が少なくなるため、故障発生率が低減し信頼性が向上する。さらに、部品点数が少なくなる上に、部品を実装するボードの面積が小さくて済むようになるために、システム管理装置のサイズおよび質量を小さくすることができる。この特徴は、特に、システム管理装置を、ロケットおよび宇宙船等の重量削減が重要視される機械に搭載する場合に有利である。さらに、制御部１２０および記憶部１３０は比較的高価な部品であるため、制御部１２０および記憶部１３０の数の削減は、コストの低減に寄与する。
【００８１】
上述したように、制御部１２０に含まれる多数決判定部１２２は、外部の冗長構成に関する多数決判定と、内部の冗長構成に関する多数決判定という２重の多数決判定を行う。システム管理装置１１は、制御部１２０の機能のうち、内部の冗長構成に関する多数決判定を行う機能をもつ制御部と、内部の冗長構成に関する多数決判定に関連する情報を記憶する記憶部とをインターフェース部１０１ｘ〜１０６ｘのそれぞれに備え、その他の機能をもつ制御部と、その他の機能に関連する情報を記憶する記憶部とをコントローラ部１５１〜１５３のそれぞれに備えてもよい。すなわち、システム管理装置１１は、内部の冗長構成に関する多数決判定を行うための構成要素が、コントローラ部１５１〜１５３のそれぞれからインターフェース部１０１ｘ〜１０６ｘのそれぞれに移動した構成を有してもよい。この構成の場合、インターフェース部１０１ｘ〜１０６ｘの内部冗長構成に関する多数決判定部は、単純な一致／不一致の照合を行えばよく、図１Ａのインターフェース部１０１ｘ〜１０６ｘの制御部１２０から機能が削減されるので、コスト低減に寄与する。
【００８２】
図６は、制御部および記憶部がインターフェース部から独立して設けられたシステム管理装置の構成の他の例を示す図である。図６に示すシステム管理装置１２は、インターフェース部１０１ｘｘ〜１０３ｘｘと、コントローラ部１５１〜１５３とを備える。システム管理装置１２では、制御部１２０および記憶部１３０は、インターフェース部１０１ｘｘ〜１０３ｘｘから独立して、コントローラ部１５１〜１５３に設けられている。さらに、インターフェース部１０１ｘｘ〜１０３ｘｘは、それぞれ２つの機器を接続することができるように構成されている。このように１つのインターフェース部に複数の機器を接続できるように構成することにより、接続可能な機器の数を維持しつつ、部品点数をさらに減らすことができる。
【００８３】
なお、図５および６では、制御部１２０および記憶部１３０がコントローラ部１５１〜１５３のそれぞれに備えられている例、すなわち、制御部１２０および記憶部１３０の機能が３重に冗長化されている例について説明した。しかしながら、制御部１２０および記憶部１３０の機能の冗長度は３に限定されず、必要な冗長度が設定されてよい。
【００８４】
上記の実施例では、１つのシステム管理装置を含むシステムの例を示したが、システムは、複数のシステム管理装置を含んでもよい。図７は、複数のシステム管理装置を含むシステムの例を示す図である。図７に示すシステムは、システム管理装置１３およびシステム管理装置１４を含む。システム管理装置１３およびシステム管理装置１４は、システム管理装置１０と同様の構成を有する。システム管理装置１３のインターフェース部１０７および１０８は、それぞれ、システム管理装置１４のインターフェース部の１つと接続されている。このように複数のシステム管理装置が接続される場合、１つのシステム管理装置が主系となり、他は従系となる。構成管理部１２１および異常処理部１２３は、主系のシステム管理装置において有効にされ、有効にされた構成管理部１２１および異常処理部１２３が、従系のシステム管理装置に関する制御も担当する。
【００８５】
このように、システム管理装置を相互に接続することにより、システム管理装置の構成を複雑にすることなく、システムに接続可能な機器の数を増やすことができる。さらに、遠方に設置されている機器をシステムに含めることができる。さらに、複数のインターフェース部を用いてシステム管理装置間を複数の経路で接続することにより、システムの信頼性を向上させることができる。システム管理装置を相互に接続する場合、接続部同士を直接接続してもよい。
【００８６】
システム管理装置は、システム全体の動作を制御する機能を有してもよい。この場合、システム管理装置に接続された機器は、システム管理装置の指示に応じて各種処理を実行する。システム全体の動作を制御する機能を有するシステム管理装置の動作について、図８を参照しながら説明する。図８におけるステップＳ２０１〜ステップＳ２０２の初期処理と、ステップＳ２０７〜ステップＳ２１８の異常処理は、図４に示した例と同様であるので、説明を省略する。
【００８７】
システム管理装置は、ステップＳ２０３で、どの種別の機器にどの処理を実行させるかを判定し、判定した機器に判定した処理の実行を指示する。どの種別の機器にどの処理を実行させるかは、例えば、予め設定されたスケジュール、それ以前に機器から受信した情報、予め設定された判定ロジック等に基づいて決定される。システム管理装置は、ステップＳ２０４で、機器から処理結果を示す情報を受信し、ステップＳ２０５で、多数決判定処理を行って、採用する情報を判定する。
【００８８】
続いて、システム管理装置は、ステップＳ２０６で、ステップＳ２０４からステップＳ２０５でエラーが検出されたかを判定する。エラーが検出されない場合（ステップＳ２０６，Ｎｏ）、システム管理装置は、ステップＳ２０３に戻り、どの種別の機器にどの処理を実行させるかを再び判定する。この判定は、ステップＳ２０５で採用した情報に応じて変動することがある。エラーが検出された場合（ステップＳ２０６，Ｙｅｓ）、システム管理装置は、ステップＳ２０７〜ステップＳ２１８で、異常処理を実行する。
【００８９】
上記のシステム管理装置１０〜１４は、例えば、ロケットおよび宇宙船等の宇宙機に搭載されるシステムに適用することができる。この場合、宇宙機に搭載される各種のアビオニクスが機器２０ａ〜２０ｃに相当する。宇宙機に搭載されるシステムは、高度な信頼性が要求されるが、接続される機器の構成を簡易にしつつ冗長構成を容易に実現することができるシステム管理装置１０〜１４は、そのようなシステムの構築に好適である。
【実施例２】
【００９０】
実施例１で説明したシステム管理装置に接続された各機器が時刻同期して動作するシステムの例について説明する。以下の説明において、既に説明した部分と同様の部分には、当該部分と同じ符号を付し、その説明を重ねて行わないことがある。
【００９１】
以下の説明においては、説明を簡単にするため、冗長化されている接続部のうち、接続部１１１のみについて説明し、他の接続部についての説明を省略する。さらに、接続部１１１の接続形態はスター型であると想定する。さらに、データ信号を送受信するためのポート＃１Ｄと、リセットまたは再起動のための信号を送受信するためのポート＃１ＲとをまとめてポートＰ＃１のように記載する。
【００９２】
本実施例に係るシステムの構成について説明する。図９は、本実施例に係るシステムの構成を示す図である。図９に示すシステムは、機器２０ｄ〜２０ｇと、クロックマスタ３０と、システム管理装置１０を含む。機器２０ｄ〜２０ｇおよびクロックマスタ３０は、システム管理装置１０を介して相互に通信可能に構成される。機器２０ｄ〜２０ｇおよびクロックマスタ３０が採用する通信方式は、イーサネット（登録商標）である。以下の説明では、機器２０ｄ〜２０ｇを、いずれであるかを特定することなく、機器２０と総称することがある。
【００９３】
機器２０は、リアルタイム処理を実行する。例えば、機器２０は、他の機器２０がある処理を完了すると、その処理結果に基づく処理を所定の時間内に完了するように構成される。機器２０は、リアルタイム性を確保するために、送信するデータを複数のグループのいずれかに分類し、グループ毎に設定された時間帯に、そのグループに分類されたデータを送信する。機器２０による通信制御の詳細については後述する。
【００９４】
機器２０は、何かを検出する機器であってもよいし、他の機器を駆動する機器であってもよいし、他の機器によって駆動される機器であってもよい。
【００９５】
クロックマスタ３０は、機器２０間の時刻同期を実現する。具体的には、クロックマスタ３０は、所定の周期毎に同期メッセージを機器２０ｄ〜２０ｇへ送信する。同期メッセージは、ほぼ同時に機器２０ｄ〜２０ｇに届くように、例えば、同報通信によって送信される。機器２０ｄ〜２０ｇは、同期メッセージを受信した時刻に基づいて、時刻同期を行う。
【００９６】
システム管理装置１０は、機器２０間でのパケットの送信および受信を中継する。システム管理装置１０が中継するパケットには、データが収容されたパケットと、同期メッセージ等の制御用のパケットとが含まれる。システム管理装置１０は、インターフェース部１０１〜１０５と、接続部１１１とを有する。インターフェース部１０１〜１０５は、それぞれ、ケーブル４０を介して機器２０ｄ〜２０ｇおよびクロックマスタ３０に接続される。
【００９７】
接続部１１１は、あるインターフェース部で受信されたパケットが、そのパケットの送信先の機器２０が接続されたインターフェース部から出力されるように、出力先の切り替えを行う。接続部１１１による出力先の切り替えは、パケットに設定された送信先アドレスに基づいて行われる。接続部１１１は、複数のインターフェース部において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファ１４０を有する。
【００９８】
図１０を参照しながら、機器２０の構成について、さらに詳しく説明する。図１０は、機器２０ｄのブロック図である。機器２０ｅ〜２０ｇは、機器２０ｄと同様の構成を有する。図１０に示すように、機器２０ｄは、処理部２１と、ネットワークインターフェース２２と、通信制御部２３とを有する。
【００９９】
処理部２１は、機器２０ｄに固有の機能を実現するための各種処理を実行する。処理部２１が実行する処理は、機器２０ｄ〜２０ｇのそれぞれで異なってもよい。ネットワークインターフェース２２は、ケーブル４０が接続されるインターフェースである。ケーブル４０は、機器２０ｄとシステム管理装置１０とを通信可能に接続する。ネットワークインターフェース２２は、例えば、物理層レベル、データリンク層レベル、ネットワーク層レベル、およびトランスポート層レベルでの接続を実現する。
【０１００】
通信制御部２３は、リアルタイム性を確保するための通信制御を実行する。通信制御部２３による通信制御は、例えば、セッション層およびプレゼンテーション層のレベルで行われる。通信制御部２３は、受付部２３１と、グループ判定部２３２と、時間帯判定部２３３と、送信部２３４と、送信バッファ２３５と、受信部２３６と、多数決判定部２３７と、受信バッファ２３８とを有する。
【０１０１】
受付部２３１は、他の機器２０へ送信すべきデータを処理部２１から受け付け、データを送信バッファ２３５に格納する。受付部２３１が受け付けるデータは、処理部２１によって予めパケットに形成される。受付部２３１は、パケットに形成されていないデータを処理部２１から受け付けるように構成されてもよい。その場合、データのパケット化は、受付部２３１または送信部２３４が行う。
【０１０２】
グループ判定部２３２は、受付部２３１が受け付けたデータを予め設定された複数のグループのうちどのグループに分類するかを判定する。グループは、時間帯と対応付けられ、データは、分類されたグループに対応する時間帯に送信される。グループおよび時間帯は、それぞれの時間帯において、システム内で送受信されるデータ（パケット）の量が時間帯内に伝送可能な量を超えないように、システム内で共通して設定される。
【０１０３】
例えば、グループは、データの優先度に基づいてデータがグループに分類されるように設定される。データの優先度は、システム内で伝送されるデータ（パケット）の優先度毎の量が周期的に一貫している場合に、分類の基準として好適である。周期的に一貫しているとは、ある周期毎の量がほぼ一定であることを意味する。分類の基準は、システム内で伝送されるデータ（パケット）のグループ毎の量が周期的に一貫している限り、どのような基準でもよい。例えば、データの種類、データが生成される頻度、データのサイズ、データの送信先等が分類の基準として用いられてもよい。
【０１０４】
時間帯判定部２３３は、受付部２３１が受け付けたデータをどの時間帯で送信するかを判定する。それぞれのグループに対応する時間帯は、周期的に到来する。時間帯判定部２３３は、グループ判定部２３２によって分類されたグループに対応する次の時間帯を、データを送信する時間帯と判定する。
【０１０５】
送信部２３４は、送信バッファ２３５に格納されているデータ（パケット）を、時間帯判定部２３３によって判定された時間帯の開始時にネットワークインターフェース２２を介して送信する。同じ時間帯に送信すべきデータ（パケット）が複数ある場合、送信部２３４は、それらを続けて送信する。送信バッファ２３５に格納されているデータがパケットに形成されていない場合、送信部２３４は、パケットに形成した後にデータを送信する。
【０１０６】
送信バッファ２３５は、受付部２３１で受け付けられたデータを一時的に記憶する。送信バッファ２３５に記憶されるデータは、パケット化されていてもよいし、いなくてもよい。
【０１０７】
受信部２３６は、ネットワークインターフェース２２を介してパケットを受信する。受信部２３６が受信するパケットは、データが収納されたパケットと、クロックマスタ３０から送信された同期メッセージ等の制御用のパケットを含む。データが収納されたパケットが受信された場合、データの取り出しは、受信部２３６または処理部２１が行う。
【０１０８】
多数決判定部２３７は、冗長化されたデータが受信された場合に、多数決判定を行う。多数決判定の詳細については後述する。
【０１０９】
受信バッファ２３８は、受信部２３６で受信されたデータを一時的に記憶する。受信バッファ２３８に記憶されるデータは、パケット化されていてもよいし、いなくてもよい。
【０１１０】
図１０に示した例では、ネットワークインターフェース２２及び通信制御部２３が機器２０ｄに配置されているが、ネットワークインターフェース２２及び通信制御部２３は、システム管理装置１０に配置されてもよい。すなわち、図１０に示した処理部２１、ネットワークインターフェース２２及び通信制御部２３のうち、システム管理装置１０等のシステム管理装置がネットワークインターフェース２２及び通信制御部２３を備え、システム管理装置に接続される機器が処理部２１のみを備える構成でもよい。
【０１１１】
図１１を参照しながら、図９に示したシステムにおける通信制御についてより詳細に説明する。図１１は、通信制御について説明するための図である。図１１は、機器２０ｄから機器２０ｅへデータを送信するための制御について説明しているが、他の機器２０間でも同様の制御が行われる。
【０１１２】
通信制御は、周期的に実行される。１つの周期の長さは、少なくとも、リアルタイム処理において機器２０間でのデータの送受信に許容されている遅延時間以下に設定される。各周期には、予め設定されている複数のグループのそれぞれに対応する時間帯が設けられる。
【０１１３】
各周期の初めには、同期処理が行われる。同期処理においては、クロックマスタ３０が、各機器２０に同期メッセージを送信する。同期メッセージを受信すると、機器２０の通信制御部２３は、それぞれ、受信時刻に基づいて時刻同期を行う。こうして時刻同期を行うことにより、各グループに対応する時間帯の開始時刻を、全ての機器２０間で一致させることができる。機器２０は、同期メッセージを受信した場合、または時刻同期が完了した場合に、クロックマスタ３０に応答を返してもよい。同期処理の長さは、少なくとも、同期メッセージの伝送と、機器２０における時刻同期とに要する時間よりも長く設定される。
【０１１４】
機器２０ｄの処理部２１は、他の機器２０へ送信するデータを生成する。データの生成は、通信制御部２３による通信制御の周期とは非同期に実行されてもよい。すなわち、処理部２１は、リアルタイム性を確保するために機器２０間の通信がどのように制御されているかを考慮することなく、予め決められた処理を実行してもよい。このような構成により、通信制御部２３の仕様に合わせて、処理部２１の仕様を変更する必要がなくなる。
【０１１５】
図１１に示す例では、機器２０ｅへ送信すべきデータａ〜ｈが、処理部２１によって順次生成されている。データａ、データｄ、およびデータｇは、グループ判定部２３２によって「グループ１」に分類されるデータである。データｂおよびデータｅは、グループ判定部２３２によって「グループ２」に分類されるデータである。データｃ、データｆおよびデータｈは、グループ判定部２３２によって「グループｎ」に分類されるデータである。
【０１１６】
データａ〜ｈは、送信バッファ２３５に一時的に格納される。そして、データａ〜ｈは、複数のグループのいずれか１つに分類され、分類されたグループに対応する時間帯が到来したときに送信される。
【０１１７】
データａは、第１周期におけるグループ１用の時間帯の到来前に生成されているため、第１周期におけるグループ１用の時間帯の開始時に機器２０ｅへ送信される。データｄおよびデータｇは、第１周期におけるグループ１用の時間帯と第２周期におけるグループ１用の時間帯の間の期間に生成されているため、第２周期におけるグループ１用の時間帯の開始時に機器２０ｅへ送信される。
【０１１８】
データｂは、第１周期におけるグループ２用の時間帯の到来前に生成されているため、第１周期におけるグループ２用の時間帯の開始時に機器２０ｅへ送信される。データｅは、第１周期におけるグループ２用の時間帯と第２周期におけるグループ２用の時間帯の間の期間に生成されているため、第２周期におけるグループ２用の時間帯の開始時に機器２０ｅへ送信される。
【０１１９】
データｃは、第１周期におけるグループｎ用の時間帯の到来前に生成されているため、第１周期におけるグループｎ用の時間帯の開始時に機器２０ｅへ送信される。データｆおよびデータｈは、第１周期におけるグループｎ用の時間帯と第２周期におけるグループｎ用の時間帯の間の期間に生成されているため、第２周期におけるグループｎ用の時間帯の開始時に機器２０ｅへ送信される。
【０１２０】
このように、それぞれのグループに対応する時間帯では、そのグループに分類されたデータのみが送信される。既に説明したように、グループは、対応する時間帯において、システム内で送受信されるパケットの量が時間帯内に伝送可能な量を超えないように設定される。このため、ある期間に大量のデータが機器２０間で送受信され、遅延またはパケットロスが発生し、それによってリアルタイム性が失われる事態が発生することを抑制することができる。
【０１２１】
さらに、この方式では、機器２０は、ある程度の幅をもつ時間帯内にデータが受信されるようにデータを送信すればよく、１つの時間帯内に複数のデータの伝送が可能である。このため、１つのパケットが、送信開始から受信完了まで通信経路を占有するように制御する場合と比べて、時刻同期の精度を緩和しても良好な伝送効率を維持することができる。このため、機器２０およびシステム管理装置１０の構成を簡易にし、開発・製造コストを低減することができる。
【０１２２】
リアルタイム性を確保するため、各時間帯の長さは、衝突によるパケットの再送またはロスが生じないように設定される。具体的には、時間帯の長さは、その時間帯にシステム内で送受信されるパケットの量が図９に示したシステム管理装置１０のバッファ１４０の容量を超えないように設定される。送受信されるパケットの量がバッファ１４０の容量を超えなければ、ある機器２０に複数の機器２０が同時にパケットを送信しても、衝突によるパケットの再送またはロスは生じない。このため、パケットは、所定の期間内に送信先へ伝送される。
【０１２３】
時間帯にシステム内で送受信されるパケットの量がバッファ１４０の容量を超えないようにする設定は、時間帯の長さだけでなく、データをグループに分類する分類の基準によって実現されてもよい。例えば、ある時間帯に送受信されるパケットの量がバッファ１４０の容量を超える恐れがある場合には、その時間帯に対応するグループが複数のグループに分割されるように、分類の基準を設定してもよい。
【０１２４】
図９では、全てのインターフェース部がバッファ１４０を共有する例を示したが、システム管理装置１０は、インターフェース部毎に独立したバッファを持つように構成されてもよい。図１２は、インターフェース部毎に独立してバッファが設けられる例を示す図である。図１２において、機器２０ｄ〜２０ｇおよびインターフェース部１０１〜１０４は、重複して図示されている。左側に図示された機器２０ｄ〜２０ｇおよびインターフェース部１０１〜１０４は、パケットの送信に関連する。右側に図示された機器２０ｄ〜２０ｇおよびインターフェース部１０１〜１０４は、パケットの受信に関連する。図１２では、インターフェース部１０５およびクロックマスタ３０の図示を省略している。
【０１２５】
図１２に示した例では、機器２０ｄ〜２０ｇから送信されたパケットは、それぞれ、受信バッファ１６１〜１６４に格納される。そして、パケットは、接続部１１１によって送信先に振り分けられる。機器２０ｄ〜２０ｇに振り分けられたパケットは、それぞれ、送信バッファ１７１〜１７４に格納される。その後、パケットは、送信バッファ１７１〜１７４から、対応する機器２０へ送信される。受信バッファ１６１〜１６４および送信バッファ１７１〜１７４は、それぞれ、インターフェース部１０１〜１０４の記憶部１３０に設けられてもよい。
【０１２６】
このような構成の場合、時間帯の長さと分類の基準とは、その時間帯に機器２０が送信するパケットの量が、受信バッファ１６１〜１６４のうち対応する受信バッファの容量を超えないように設定される。このように設定することにより、インターフェース部毎に独立してバッファが設けられている場合でも、衝突によるパケットの再送またはロスが生じない。
【０１２７】
時間帯の長さと分類の基準とは、システム管理装置１０のバッファ１４０または受信バッファ１６１〜１６４だけでなく、機器２０ｄ〜２０ｇの受信バッファ２３８があふれないように設定されてもよい。
【０１２８】
時間帯の長さは、データ量に加えて、システムの性能も考慮して決定される。具体的には、時間帯の長さは、その時間帯に対応するグループに振り分けられたデータを含むパケットを機器２０が受信するのに必要な時間またはそれよりも長い時間に設定される。
【０１２９】
時間帯ｎの長さＴｎは、例えば、以下の式を満たすように設定される。
【０１３０】
Ｔｎ  ≧  ＲＴｎ＿ｍａｘ  ＋  Ｍｎ
【０１３１】
ここで、ＲＴｎ＿ｍａｘは、時間帯ｎに対応するグループに振り分けられたデータを含むパケットの受信に機器２０が要する時間の最大値である。例えば、時間帯ｎに機器２０ｄ〜２０ｇが受信するパケットの量が、それぞれ、１０ｋＢｙｔｅ、５ｋＢｙｔｅ、６ｋＢｙｔｅ、３ｋＢｙｔｅであり、機器２０ｄ〜２０ｇの受信性能が、それぞれ、５０Ｍｂｐｓ、６０Ｍｂｐｓ、４０Ｍｂｐｓ、４０Ｍｂｐｓであるとする。この場合、機器２０ｄ〜２０ｇがパケットの受信に要する時間は、それぞれ、１．６ｍｓ、０．６ｍｓ、１．２ｍｓ、０．６ｍｓとなる。この場合のＲＴｎ＿ｍａｘは、１．６ｍｓである。
【０１３２】
Ｍｎは、マージンである。マージンは、時間帯毎に異なってもよい。例えば、時間帯内に１つの機器２０に対して複数の機器２０がパケットを送信する場合、システム管理装置１０での処理時間が長くなる可能性がある。したがって、この時間帯のマージンは、他の時間帯のマージンよりも長く設定してもよい。あるいは、時間帯内に送信されるデータの優先度に応じてマージンを変更してもよい。具体的には、優先度の高いデータが送信される期間のマージンは、時間帯内でのデータの送信に失敗する可能性を小さくするために、他の時間帯のマージンよりも長く設定してもよい。
【０１３３】
図１３および図１４を参照しながら、図９に示したシステムにおける多数決判定の例についてより詳細に説明する。図１３および図１４は、多数決判定について説明するための図である。
【０１３４】
重要な処理は、冗長性を確保するため、複数の機器２０で実行され、それぞれの実行結果を示すデータが他の装置にほぼ同時に送信されるように構成されることがある。例えば、図１３に示す例では、機器２０ｅ〜２０ｇが、それぞれ同じ処理を実行し、同じ実行結果を示すデータＷをほぼ同時に機器２０ｄへ送信している。このように冗長化されたデータが分類されるグループは予め決められている。
【０１３５】
機器２０ｄの通信制御部２３は、冗長化されたデータが分類されるグループに対応する時間帯では、受信したデータを受信バッファ２３８に一時的に格納し、多数決判定によって選択したデータのみを処理部２１に出力する。多数決判定が実行されるタイミングは、時間帯が終わるとき、または同じ種類のデータが時間帯内で最初に受信されてから所定の時間が経過したときである。
【０１３６】
一方、通常の処理は、１つの機器２０で実行され、実行結果を示すデータが、他の装置に送信される。例えば、図１４に示す例では、機器２０ｅ〜２０ｇが、それぞれ異なる処理を実行し、それぞれの実行結果を示すデータＸ〜データＺを機器２０ｄへ送信している。機器２０ｄの通信制御部２３は、冗長化されたデータが分類されないグループに対応する時間帯では、受信したデータを、そのまま処理部２１に出力する。
【０１３７】
このように、機器２０は、時間帯に応じて、多数決判定を行うか否かを切り替える。このため、冗長化されたデータが分類されるグループに対応する時間帯では、送信されるデータの信頼性が向上し、冗長化されたデータが分類されないグループに対応する時間帯では、より多くのデータを伝送することができる。
【０１３８】
図１５〜図１７を参照しながら、図９に示したシステムにおいて実行される処理の処理手順について説明する。
【０１３９】
図１５は、クロックマスタ３０が実行する処理の処理手順の例を示すフローチャートである。図１５に示す処理手順は、繰り返して実行される。クロックマスタ３０は、新たな周期が開始するかを判定する（ステップＳ３０１）。具体的には、クロックマスタ３０は、同期メッセージを前回送信してから周期の長さに相当する時間が経過した場合に、新たな周期が開始すると判定する。新たな周期が開始する場合（ステップＳ３０１，Ｙｅｓ）、クロックマスタ３０は、機器２０のそれぞれに同期メッセージを送信する（ステップＳ３０２）。新たな周期が開始しない場合（ステップＳ３０１，Ｎｏ）、同期メッセージは送信されない。
【０１４０】
このように、クロックマスタ３０は、新たな周期が開始する度に、機器２０に同期メッセージを送信し、時刻同期を行う。機器２０が、十分に正確な計時機能を有する場合、クロックマスタ３０は、複数の周期毎（例えば、１０周期毎）に、機器２０に同期メッセージを送信してもよい。
【０１４１】
図１６は、機器２０の通信制御部２３によるデータ送信処理の処理手順の例を示すフローチャートである。図１６に示す処理手順は、繰り返して実行される。通信制御部２３は、クロックマスタ３０から同期メッセージを受信したかを判定する（ステップＳ４０１）。同期メッセージを受信した場合（ステップＳ４０１，Ｙｅｓ）、通信制御部２３は、時刻同期処理を実行する（ステップＳ４０２）。同期メッセージを受信していない場合（ステップＳ４０１，Ｎｏ）、時刻同期処理は実行されない。
【０１４２】
続いて、通信制御部２３は、処理部２１からデータ（パケット）を受信したかを判定する（ステップＳ４０３）。データを受信した場合（ステップＳ４０３，Ｙｅｓ）、通信制御部２３は、データをどのグループに分類するかを判定し（ステップＳ４０４）、データを送信バッファ２３５に格納する（ステップＳ４０５）。ステップＳ４０５は、ステップＳ４０４よりも前に実行されてもよい。データを受信していない場合（ステップＳ４０３，Ｎｏ）、ステップＳ４０４およびステップＳ４０５は実行されない。
【０１４３】
続いて、通信制御部２３は、新たな時間帯が開始するかを判定する（ステップＳ４０６）。具体的には、通信制御部２３は、時刻同期処理によって同期された時刻からの経過時間に基づいて、新たな時間帯が開始するか否かを判定する。新たな時間帯が開始する場合（ステップＳ４０６，Ｙｅｓ）、通信制御部２３は、その時間帯に送信すべきデータがあるかを判定する（ステップＳ４０７）。
【０１４４】
送信すべきデータがある場合（ステップＳ４０７，Ｙｅｓ）、通信制御部２３は、そのデータを送信バッファ２３５から取得し（ステップＳ４０８）、ネットワークインターフェース２２経由で送信する（ステップＳ４０９）。新たな時間帯が開始しない場合（ステップＳ４０６，Ｎｏ）、または送信すべきデータがない場合（ステップＳ４０７，Ｎｏ）、ステップＳ４０８およびステップＳ４０９は実行されない。
【０１４５】
このように、通信制御部２３は、送信すべきデータをグループのいずれかに分類し、グループに対応する時間帯内でデータを送信する。図１６では、時刻同期処理（ステップＳ４０１〜ステップＳ４０２）が、データ送信処理の一部として実行されているが、時刻同期処理は、図１７に示すデータ受信処理の一部として実行されてもよいし、独立して実行されてもよい。
【０１４６】
図１７は、機器２０の通信制御部２３によるデータ受信処理の処理手順の例を示すフローチャートである。図１７に示す処理手順は、繰り返して実行される。通信制御部２３は、現在の時間帯が冗長化されたデータが受信される時間帯、すなわち、多数決判定の必要な時間帯であるかを判定する（ステップＳ５０１）。
【０１４７】
多数決判定の必要な時間帯でない場合（ステップＳ５０１，Ｎｏ）、通信制御部２３は、システム管理装置１０からデータを受信したかを判定する（ステップＳ５０２）。データを受信した場合（ステップＳ５０２，Ｙｅｓ）、通信制御部２３は、データを処理部２１へ出力する（ステップＳ５０３）。データを受信していない場合（ステップＳ５０２，Ｎｏ）、ステップＳ５０３は、実行されない。
【０１４８】
その後、通信制御部２３は、時間帯が終了するかを判定する（ステップＳ５０４）。時間帯が終了しない場合（ステップＳ５０４，Ｎｏ）、通信制御部２３は、ステップＳ５０２に戻る。時間帯が終了する場合（ステップＳ５０４，Ｙｅｓ）、通信制御部２３は、図１７に示す処理手順を終了する。
【０１４９】
多数決判定の必要な時間帯である場合（ステップＳ５０１，Ｙｅｓ）、通信制御部２３は、システム管理装置１０からデータを受信したかを判定する（ステップＳ５０５）。データを受信した場合（ステップＳ５０５，Ｙｅｓ）、通信制御部２３は、データを受信バッファ２３８に格納する（ステップＳ５０６）。データを受信していない場合（ステップＳ５０５，Ｎｏ）、ステップＳ５０６は、実行されない。
【０１５０】
その後、通信制御部２３は、時間帯が終了するかを判定する（ステップＳ５０７）。時間帯が終了しない場合（ステップＳ５０７，Ｎｏ）、通信制御部２３は、ステップＳ５０５に戻る。時間帯が終了する場合（ステップＳ５０７，Ｙｅｓ）、通信制御部２３は、受信バッファ２３８からデータを取得し（ステップＳ５０８）、多数決判定処理を行う（ステップＳ５０９）。そして、通信制御部２３は、多数決判定処理において選択されたデータを処理部２１へ出力し（ステップＳ５１０）、図１７に示す処理手順を終了する。
【０１５１】
このように、通信制御部２３は、時間帯に応じて多数決判定を行うか否かを切り替えることにより、信頼性の向上と伝送効率の向上とを両立させる。
【０１５２】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例で示した通信制御方法は、イーサネットネットワーク以外のネットワークに適用してもよい。上記の実施例では、クロックマスタ３０が独立して設けられる例を示したが、クロックマスタ３０の機能は、機器２０のいずれかによって実現されてもよいし、システム管理装置１０〜１４のいずれかによって実現されてもよい。
【０１５３】
図１８は、クロックマスタ３０の機能がシステム管理装置１１によって実現される例を示す図である。図１８に示す例では、クロックマスタ３０の機能は、３重に冗長化されているコントローラ部１５１〜１５３のいずれかによって実現される。
【０１５４】
上記の実施例では、１つのシステム管理装置を含むシステムの例を示したが、システムは、複数のシステム管理装置を含んでもよい。図１９は、複数のシステム管理装置を含むシステムの例を示す図である。図１９に示すシステムは、システム管理装置１０ａおよびシステム管理装置１０ｂを含む。システム管理装置１０ａおよびシステム管理装置１０ｂは、システム管理装置１０と同様の構成を有する。システム管理装置１０ａのインターフェース部１０１〜１０５の１つは、ケーブル４０を介して、システム管理装置１０ｂのインターフェース部１０１〜１０５の１つと接続されている。
【０１５５】
このように、システム管理装置を相互に接続することにより、システム管理装置の構成を複雑にすることなく、システムに接続可能な機器２０の数を増やすことができる。図９に示したシステムには、機器２０ｄ〜２０ｇの４台が接続されているが、図１９に示したシステムには、機器２０ｄ〜２０ｊの７台が接続されている。
【０１５６】
機器２０の通信制御部２３の機能（より具体的には、受付部２３１、グループ判定部２３２、時間帯判定部２３３、送信部２３４、受信部２３６、および多数決判定部２３７の少なくとも１つの機能）は、ソフトウェアを用いて実現されてもよい。ソフトウェアは、オペレーションシステム（ＯＳ）の一部であってもよいし、アプリケーションプログラムであってもよいし、ＯＳとアプリケーションプログラムの間を仲介するミドルウェアであってもよい。一般に、ソフトウェアを用いた制御では、ハードウェアによる制御と比較して、時刻同期の精度が低下する。しかしながら、上記の通信制御方式では、時刻同期の精度への要求が緩和されるため、ソフトウェアを用いた制御でも、リアルタイム性を確保することができる。通信制御部２３の機能は、ＦＰＧＡロジック等を用いたハードウェアで実現されてもよい。
【０１５７】
上記のシステムおよび通信制御方法は、例えば、ロケットおよび宇宙船等の宇宙機の制御システムに適用することができる。この場合、宇宙機に搭載される各種のアビオニクスが機器２０に相当する。宇宙機における制御システムでは、各種の処理が周期的に行われる。このため、アビオニクス間でデータを伝送する周期がほぼ一貫しており、グループおよび時間帯の設定が容易である。
【０１５８】
グループおよび時間帯の設定を自動化してもよい。例えば、グループおよび時間帯を設定せずにシステムを一定期間稼動させる間に、システム管理装置１０が、データの送信される時間、送信されるデータのサイズ、種類、優先度等を記録し、記録された情報に基づいて、システム管理装置１０またはクロックマスタ３０が、グループおよび時間帯を設定してもよい。設定されたグループおよび時間帯は、機器２０に通知される。
【符号の説明】
【０１５９】
１０、１０ａ、１０ｂ、１１、１２、１３、１４  システム管理装置
１０１〜１０８  インターフェース部
１１１〜１１３  接続部
１２０  制御部
１２１  構成管理部
１２２  多数決判定部
１２３  異常処理部
１３０  記憶部
１３１  構成テーブル
１３２  状態データ
１４０  バッファ
１５１〜１５３  コントローラ部
１６１〜１６４  受信バッファ
１７１〜１７４  送信バッファ
２０ａ〜２０ｊ  機器
２１  処理部
２２  ネットワークインターフェース
２３  通信制御部
３０  クロックマスタ
４０  ケーブル
２３１  受付部
２３２  グループ判定部
２３３  時間帯判定部
２３４  送信部
２３５  送信バッファ
２３６  受信部
２３７  多数決判定部
２３８  受信バッファ
【図１Ａ】
0006415161.tif 000002
【図１Ｂ】
0006415161.tif 000003
【図１Ｃ】
0006415161.tif 000004
【図２】
0006415161.tif 000005
【図３】
0006415161.tif 000006
【図４】
0006415161.tif 000007
【図５】
0006415161.tif 000008
【図６】
0006415161.tif 000009
【図７】
0006415161.tif 000010
【図８】
0006415161.tif 000011
【図９】
0006415161.tif 000012
【図１０】
0006415161.tif 000013
【図１１】
0006415161.tif 000014
【図１２】
0006415161.tif 000015
【図１３】
0006415161.tif 000016
【図１４】
0006415161.tif 000017
【図１５】
0006415161.tif 000018
【図１６】
0006415161.tif 000019
【図１７】
0006415161.tif 000020
【図１８】
0006415161.tif 000021
【図１９】
0006415161.tif 000022
【図２０】
0006415161.tif 000023