(57)【要約】【課題】簡易な構成によってリアルタイム性を確保すること。【解決手段】１つの態様において、通信システムは、複数の機器１０と、機器１０間のデータの伝送を中継する中継器３０とを有する。機器１０は、送信するデータを、複数のグループのいずれに分類するかを判定するグループ判定部と、グループ毎に設定された時間帯のうち、グループ判定部によって分類されたグループに対応する時間帯にデータを送信する送信部とを備える。【選択図】図１
2014131247.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器と、前記機器間のデータの伝送を中継する中継器とを有する通信システムであって、
前記機器は、
送信するデータを、複数のグループのいずれに分類するかを判定するグループ判定部と、
グループ毎に設定された時間帯のうち、前記グループ判定部によって分類されたグループに対応する時間帯に前記データを送信する送信部と
を備える通信システム。
【請求項２】
前記中継器は、中継するデータを一時的に記憶するバッファを備え、
前記グループは、前記バッファがあふれないように設定される請求項１に記載の通信システム。
【請求項３】
前記時間帯は、前記バッファがあふれないように設定される請求項１に記載の通信システム。
【請求項４】
前記グループ判定部は、データの優先度に基づいてデータを分類する請求項１から３のいずれか１つに記載の通信システム。
【請求項５】
前記時間帯は、当該時間帯に対応するグループに分類されるデータの前記優先度に応じたマージンを有する請求項４に記載の通信システム。
【請求項６】
前記機器は、受信したデータの多数決判定を行うか否かを時間帯に応じて切り替える多数決判定部をさらに備える請求項１から５のいずれか１つに記載の通信システム。
【請求項７】
送信するデータを、複数のグループのいずれに分類するかを判定するグループ判定部と、
グループ毎に設定された時間帯のうち、前記グループ判定部によって分類されたグループに対応する時間帯に前記データを送信する送信部と
を備える機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムおよび機器に関する。
【背景技術】
【０００２】
イーサネット（登録商標）ネットワークにおいては、中継器として、スイッチングハブ（レイヤ２スイッチ）が広く利用されている。スイッチングハブは、比較的安価であるが、衝突やバッファあふれによって、パケットロスや遅延を生じさせることがある（例えば、非特許文献１参照）。このため、スイッチングハブを含む通信システムは、そのままでは、リアルタイム性が求められる用途に適用することは難しい。
【０００３】
スイッチングハブに専用のハードウェアを追加することによって、リアルタイム性を確保する技術が知られている（例えば、特許文献１参照）。このような技術によれば、イーサネットネットワークに接続される機器間で高精度な時刻同期が実現され、やりとりされるそれぞれのパケットが、送信開始から受信完了まで通信経路を占有するように制御が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００８／１２４８５４号
【非特許文献】
【０００５】
【非特許文献１】“フローコントロール機能って？”、［online］、プラネックスコミュニケーションズ株式会社、［平成２４年１２月４日検索］、インターネット＜URL：http://www.planex.co.jp/product/hub/kino/fllow.shtml＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、やりとりされるそれぞれのパケットが、送信開始から受信完了まで通信経路を占有するように制御する場合、機器間で高精度な時刻同期の実現が求められる。このため、ネットワーク接続される機器および中継器の構成が複雑化し、開発・製造コストが増大する。本発明は、上記に鑑みてなされたものであって、簡易な構成によってリアルタイム性を確保することができる通信システムおよび機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様において、通信システムは、複数の機器と、前記機器間のデータの伝送を中継する中継器とを有する通信システムであって、前記機器は、送信するデータを、複数のグループのいずれに分類するかを判定するグループ判定部と、グループ毎に設定された時間帯のうち、前記グループ判定部によって分類されたグループに対応する時間帯に前記データを送信する送信部とを備える。
【０００８】
他の態様において、機器は、送信するデータを、複数のグループのいずれに分類するかを判定するグループ判定部と、グループ毎に設定された時間帯のうち、前記グループ判定部によって分類されたグループに対応する時間帯に前記データを送信する送信部とを備える。
【発明の効果】
【０００９】
本発明に係る通信システムおよび機器は、簡易な構成によってリアルタイム性を確保することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る通信システムの構成を示す図である。
【図２】図２は、機器のブロック図である。
【図３】図３は、通信制御について説明するための図である。
【図４】図４は、ポート毎に独立してバッファが設けられる例を示す図である。
【図５】図５は、多数決判定について説明するための図である。
【図６】図６は、多数決判定について説明するための図である。
【図７】図７は、クロックマスタが実行する処理の処理手順の例を示すフローチャートである。
【図８】図８は、データ送信処理の処理手順の例を示すフローチャートである。
【図９】図９は、データ受信処理の処理手順の例を示すフローチャートである。
【図１０】図１０は、複数の中継器を含む通信システムの例を示す図である。
【図１１】図１１は、通信制御部の機能をソフトウェアを用いて実現する場合の機器の構成の例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に、通信システムおよび機器の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、この実施例における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
【実施例】
【００１２】
本実施例に係る通信システムの構成について説明する。図１は、本実施例に係る通信システムの構成を示す図である。図１に示す通信システムは、機器１０ａ〜１０ｄと、クロックマスタ２０と、中継器３０を含む。機器１０ａ〜１０ｄおよびクロックマスタ２０は、中継器３０を介して相互に通信可能に構成される。機器１０ａ〜１０ｄおよびクロックマスタ２０が採用する通信方式は、イーサネットである。以下の説明では、機器１０ａ〜１０ｄを、いずれであるかを特定することなく、機器１０と総称することがある。
【００１３】
機器１０は、リアルタイム処理を実行する。例えば、機器１０は、他の機器１０がある処理を完了すると、その処理結果に基づく処理を所定の時間内に完了するように構成される。機器１０は、リアルタイム性を確保するために、送信するデータを複数のグループのいずれかに分類し、グループ毎に設定された時間帯に、そのグループに分類されたデータを送信する。機器１０による通信制御の詳細については後述する。
【００１４】
機器１０は、何かを検出する機器であってもよいし、他の機器を駆動する機器であってもよいし、他の機器によって駆動される機器であってもよい。
【００１５】
クロックマスタ２０は、機器１０間の時刻同期を実現する。具体的には、クロックマスタ２０は、所定の周期毎に同期メッセージを機器１０ａ〜１０ｄへ送信する。同期メッセージは、ほぼ同時に機器１０ａ〜１０ｄに届くように、例えば、同報通信によって送信される。機器１０ａ〜１０ｄは、同期メッセージを受信した時刻に基づいて、時刻同期を行う。
【００１６】
中継器３０は、機器１０間でのパケットの送信および受信を中継する。中継器３０が中継するパケットには、データが収容されたパケットと、同期メッセージ等の制御用のパケットとが含まれる。中継器３０は、通常のスイッチングハブであってよい。中継器３０は、複数のポート３１（Ｐ＃１〜Ｐ＃５）と、スイッチング部３２とを有する。ポート３１（Ｐ＃１〜Ｐ＃５）は、それぞれ、ケーブル４０を介して機器１０ａ〜１０ｄおよびクロックマスタ２０に接続される。
【００１７】
スイッチング部３２は、あるポート３１で受信されたパケットが、そのパケットの送信先の機器１０が接続されたポート３１から出力されるように、出力先の切り替えを行う。スイッチング部３２による出力先の切り替えは、パケットに設定された送信先アドレスに基づいて行われる。スイッチング部３２は、複数のポート３１において同時にパケットを受信した場合でもパケットロスが生じないように、受信したパケットを一時的に記憶するバッファ３３を有する。
【００１８】
図２を参照しながら、機器１０の構成について、さらに詳しく説明する。図２は、機器１０ａのブロック図である。機器１０ｂ〜１０ｄは、機器１０ａと同様の構成を有する。図２に示すように、機器１０ａは、処理部１１と、ネットワークインターフェース１２と、通信制御部１３とを有する。
【００１９】
処理部１１は、機器１０ａに固有の機能を実現するための各種処理を実行する。処理部１１が実行する処理は、機器１０ａ〜１０ｄのそれぞれで異なってもよい。ネットワークインターフェース１２は、ケーブル４０が接続されるインターフェースである。ケーブル４０は、機器１０ａと中継器３０とを通信可能に接続する。ネットワークインターフェース１２は、例えば、物理層レベル、データリンク層レベル、ネットワーク層レベル、およびトランスポート層レベルでの接続を実現する。
【００２０】
通信制御部１３は、リアルタイム性を確保するための通信制御を実行する。通信制御部１３による通信制御は、例えば、セッション層およびプレゼンテーション層のレベルで行われる。通信制御部１３は、受付部１３１と、グループ判定部１３２と、時間帯判定部１３３と、送信部１３４と、送信バッファ１３５と、受信部１３６と、多数決判定部１３７と、受信バッファ１３８とを有する。
【００２１】
受付部１３１は、他の機器１０へ送信すべきデータを処理部１１から受け付け、データを送信バッファ１３５に格納する。受付部１３１が受け付けるデータは、処理部１１によって予めパケットに形成される。受付部１３１は、パケットに形成されていないデータを処理部１１から受け付けるように構成されてもよい。その場合、データのパケット化は、受付部１３１または送信部１３４が行う。
【００２２】
グループ判定部１３２は、受付部１３１が受け付けたデータを予め設定された複数のグループのうちどのグループに分類するかを判定する。グループは、時間帯と対応付けられ、データは、分類されたグループに対応する時間帯に送信される。グループおよび時間帯は、それぞれの時間帯において、通信システム内で送受信されるデータ（パケット）の量が時間帯内に伝送可能な量を超えないように、通信システム内で共通して設定される。
【００２３】
例えば、グループは、データの優先度に基づいてデータがグループに分類されるように設定される。データの優先度は、通信システム内で伝送されるデータ（パケット）の優先度毎の量が周期的に一貫している場合に、分類の基準として好適である。周期的に一貫しているとは、ある周期毎の量がほぼ一定であることを意味する。分類の基準は、通信システム内で伝送されるデータ（パケット）のグループ毎の量が周期的に一貫している限り、どのような基準でもよい。例えば、データの種類、データが生成される頻度、データのサイズ、データの送信先等が分類の基準として用いられてもよい。
【００２４】
時間帯判定部１３３は、受付部１３１が受け付けたデータをどの時間帯で送信するかを判定する。それぞれのグループに対応する時間帯は、周期的に到来する。時間帯判定部１３３は、グループ判定部１３２によって分類されたグループに対応する次の時間帯を、データを送信する時間帯と判定する。
【００２５】
送信部１３４は、送信バッファ１３５に格納されているデータ（パケット）を、時間帯判定部１３３によって判定された時間帯の開始時にネットワークインターフェース１２を介して送信する。同じ時間帯に送信すべきデータ（パケット）が複数ある場合、送信部１３４は、それらを続けて送信する。送信バッファ１３５に格納されているデータがパケットに形成されていない場合、送信部１３４は、パケットに形成した後にデータを送信する。
【００２６】
送信バッファ１３５は、受付部１３１で受け付けられたデータを一時的に記憶する。送信バッファ１３５に記憶されるデータは、パケット化されていてもよいし、いなくてもよい。
【００２７】
受信部１３６は、ネットワークインターフェース１２を介してパケットを受信する。受信部１３６が受信するパケットは、データが収納されたパケットと、クロックマスタ２０から送信された同期メッセージ等の制御用のパケットを含む。データが収納されたパケットが受信された場合、データの取り出しは、受信部１３６または処理部１１が行う。
【００２８】
多数決判定部１３７は、冗長化されたデータが受信された場合に、多数決判定を行う。多数決判定の詳細については後述する。
【００２９】
受信バッファ１３８は、受信部１３６で受信されたデータを一時的に記憶する。受信バッファ１３８に記憶されるデータは、パケット化されていてもよいし、いなくてもよい。
【００３０】
図３を参照しながら、図１に示した通信システムにおける通信制御についてより詳細に説明する。図３は、通信制御について説明するための図である。図３は、機器１０ａから機器１０ｂへのデータを送信するための制御について説明しているが、他の機器１０間でも同様の制御が行われる。
【００３１】
通信制御は、周期的に実行される。１つの周期の長さは、少なくとも、リアルタイム処理において機器１０間でのデータの送受信に許容されている遅延時間以下に設定される。各周期には、予め設定されている複数のグループのそれぞれに対応する時間帯が設けられる。
【００３２】
各周期の初めには、同期処理が行われる。同期処理においては、クロックマスタ２０が、各機器１０に同期メッセージを送信する。同期メッセージを受信すると、機器１０の通信制御部１３は、それぞれ、受信時刻に基づいて時刻同期を行う。こうして時刻同期を行うことにより、各グループに対応する時間帯の開始時刻を、全ての機器１０間で一致させることができる。機器１０は、同期メッセージを受信した場合、または時刻同期が完了した場合に、クロックマスタ２０に応答を返してもよい。同期処理の長さは、少なくとも、同期メッセージの伝送と、機器１０における時刻同期とに要する時間よりも長く設定される。
【００３３】
機器１０ａの処理部１１は、他の機器１０へ送信するデータを生成する。データの生成は、通信制御部１３による通信制御の周期とは非同期に実行されてもよい。すなわち、処理部１１は、リアルタイム性を確保するために機器１０間の通信がどのように制御されているかを考慮することなく、予め決められた処理を実行してもよい。このような構成により、通信制御部１３の仕様に合わせて、処理部１１の仕様を変更する必要がなくなる。
【００３４】
図３に示す例では、機器１０ｂへ送信すべきデータａ〜ｈが、処理部１１によって順次生成されている。データａ、データｄ、およびデータｇは、グループ判定部１３２によって「グループ１」に分類されるデータである。データｂおよびデータｅは、グループ判定部１３２によって「グループ２」に分類されるデータである。データｃ、データｆおよびデータｈは、グループ判定部１３２によって「グループｎ」に分類されるデータである。
【００３５】
データａ〜ｈは、送信バッファ１３５に一時的に格納される。そして、データａ〜ｈは、複数のグループのいずれか１つに分類され、分類されたグループに対応する時間帯が到来したときに送信される。
【００３６】
データａは、第１周期におけるグループ１用の時間帯の到来前に生成されているため、第１周期におけるグループ１用の時間帯の開始時に機器１０ｂへ送信される。データｄおよびデータｇは、第１周期におけるグループ１用の時間帯と第２周期におけるグループ１用の時間帯の間の期間に生成されているため、第２周期におけるグループ１用の時間帯の開始時に機器１０ｂへ送信される。
【００３７】
データｂは、第１周期におけるグループ２用の時間帯の到来前に生成されているため、第１周期におけるグループ２用の時間帯の開始時に機器１０ｂへ送信される。データｅは、第１周期におけるグループ２用の時間帯と第２周期におけるグループ２用の時間帯の間の期間に生成されているため、第２周期におけるグループ２用の時間帯の開始時に機器１０ｂへ送信される。
【００３８】
データｃは、第１周期におけるグループｎ用の時間帯の到来前に生成されているため、第１周期におけるグループｎ用の時間帯の開始時に機器１０ｂへ送信される。データｆおよびデータｈは、第１周期におけるグループｎ用の時間帯と第２周期におけるグループｎ用の時間帯の間の期間に生成されているため、第２周期におけるグループｎ用の時間帯の開始時に機器１０ｂへ送信される。
【００３９】
このように、それぞれのグループに対応する時間帯では、そのグループに分類されたデータのみが送信される。既に説明したように、グループは、対応する時間帯において、通信システム内で送受信されるパケットの量が時間帯内に伝送可能な量を超えないように設定される。このため、ある期間に大量のデータが機器１０間で送受信され、遅延またはパケットロスが発生し、それによってリアルタイム性が失われる事態が発生することを抑制することができる。
【００４０】
さらに、この方式では、機器１０は、ある程度の幅をもつ時間帯内にデータが受信されるようにデータを送信すればよく、１つの時間帯内に複数のデータの伝送が可能である。このため、１つのパケットが、送信開始から受信完了まで通信経路を占有するように制御する場合と比べて、時刻同期の精度を緩和しても良好な伝送効率を維持することができる。このため、機器１０および中継器３０の構成を簡易にし、開発・製造コストを低減することができる。中継器３０として、通常のスイッチングハブを用いることもできる。
【００４１】
リアルタイム性を確保するため、各時間帯の長さは、衝突によるパケットの再送またはロスが生じないように設定される。具体的には、時間帯の長さは、その時間帯に通信システム内で送受信されるパケットの量が図１に示した中継器３０のバッファ３３の容量を超えないように設定される。送受信されるパケットの量がバッファ３３の容量を超えなければ、ある機器１０に複数の機器１０が同時にパケットを送信しても、衝突によるパケットの再送またはロスは生じない。このため、パケットは、所定の期間内に送信先へ伝送される。
【００４２】
時間帯に通信システム内で送受信されるパケットの量がバッファ３３の容量を超えないようにする設定は、時間帯の長さだけでなく、データをグループに分類する分類の基準によって実現されてもよい。例えば、ある時間帯に送受信されるパケットの量がバッファ３３の容量を超える恐れがある場合には、その時間帯に対応するグループが複数のグループに分割されるように、分類の基準を設定してもよい。
【００４３】
図１では、全てのポート３１がバッファ３３を共有する例を示したが、中継器３０は、ポート３１毎に独立したバッファを持つように構成されてもよい。図４は、ポート３１毎に独立してバッファが設けられる例を示す図である。図４において、機器１０ａ〜１０ｄおよびポート３１（Ｐ＃１〜Ｐ＃４）は、重複して図示されている。左側に図示された機器１０ａ〜１０ｄおよびポート３１は、パケットの送信に関連する。右側に図示された機器１０ａ〜１０ｄおよびポート３１は、パケットの受信に関連する。図４では、ポート３１（Ｐ＃５）およびクロックマスタ２０の図示を省略している。
【００４４】
図４に示した例では、機器１０ａ〜１０ｄから送信されたパケットは、それぞれ、受信バッファ３４ａ〜３４ｄに格納される。そして、パケットは、スイッチング部３２によって送信先に振り分けられる。機器１０ａ〜１０ｄに振り分けられたパケットは、それぞれ、送信バッファ３５ａ〜３５ｄに格納される。その後、パケットは、送信バッファ３５ａ〜３５ｄから、対応する機器１０へ送信される。
【００４５】
このような構成の場合、時間帯の長さと分類の基準とは、その時間帯に機器１０が送信するパケットの量が、受信バッファ３４ａ〜３４ｄのうち対応する受信バッファの容量を超えないように設定される。このように設定することにより、ポート３１毎に独立してバッファが設けられている場合でも、衝突によるパケットの再送またはロスが生じない。
【００４６】
時間帯の長さと分類の基準とは、中継器３０のバッファ３３または受信バッファ３４ａ〜３４ｄだけでなく、機器１０ａ〜１０ｄの受信バッファ１３８があふれないように設定されてもよい。
【００４７】
時間帯の長さは、データ量に加えて、通信システムの性能も考慮して決定される。具体的には、時間帯の長さは、その時間帯に対応するグループに振り分けられたデータを含むパケットを機器１０が受信するのに必要な時間またはそれよりも長い時間に設定される。
【００４８】
時間帯ｎの長さＴｎは、例えば、以下の式を満たすように設定される。
【００４９】
Ｔｎ  ≧  ＲＴｎ＿ｍａｘ  ＋  Ｍｎ
【００５０】
ここで、ＲＴｎ＿ｍａｘは、時間帯ｎに対応するグループに振り分けられたデータを含むパケットの受信に機器１０が要する時間の最大値である。例えば、時間帯ｎに機器１０ａ〜１０ｄが受信するパケットの量が、それぞれ、１０ｋＢｙｔｅ、５ｋＢｙｔｅ、６ｋＢｙｔｅ、３ｋＢｙｔｅであり、機器１０ａ〜１０ｄの受信性能が、それぞれ、５０Ｍｂｐｓ、６０Ｍｂｐｓ、４０Ｍｂｐｓ、４０Ｍｂｐｓであるとする。この場合、機器１０ａ〜１０ｄがパケットの受信に要する時間は、それぞれ、１．６ｍｓ、０．６ｍｓ、１．２ｍｓ、０．６ｍｓとなる。この場合のＲＴｎ＿ｍａｘは、１．６ｍｓである。
【００５１】
Ｍｎは、マージンである。マージンは、時間帯毎に異なってもよい。例えば、時間帯内に１つの機器１０に対して複数の機器１０がパケットを送信する場合、中継器３０での処理時間が長くなる可能性がある。したがって、この時間帯のマージンは、他の時間帯のマージンよりも長く設定してもよい。あるいは、時間帯内に送信されるデータの優先度に応じてマージンを変更してもよい。具体的には、優先度の高いデータが送信される期間のマージンは、時間帯内でのデータの送信に失敗する可能性を小さくするために、他の時間帯のマージンよりも長く設定してもよい。
【００５２】
図５および図６を参照しながら、図１に示した通信システムにおける多数決判定についてより詳細に説明する。図５および図６は、多数決判定について説明するための図である。
【００５３】
重要な処理は、冗長性を確保するため、複数の機器１０で実行され、それぞれの実行結果を示すデータが他の装置にほぼ同時に送信されるように構成されることがある。例えば、図５に示す例では、機器１０ｂ〜１０ｄが、それぞれ同じ処理を実行し、同じ実行結果を示すデータＷをほぼ同時に機器１０ａへ送信している。このように冗長化されたデータが分類されるグループは予め決められている。
【００５４】
機器１０ａの通信制御部１３は、冗長化されたデータが分類されるグループに対応する時間帯では、受信したデータを受信バッファ１３８に一時的に格納し、多数決判定によって選択したデータのみを処理部１１に出力する。多数決判定が実行されるタイミングは、時間帯が終わるとき、または同じ種類のデータが時間帯内で最初に受信されてから所定の時間が経過したときである。
【００５５】
一方、通常の処理は、１つの機器１０で実行され、実行結果を示すデータが、他の装置に送信される。例えば、図６に示す例では、機器１０ｂ〜１０ｄが、それぞれ異なる処理を実行し、それぞれの実行結果を示すデータＸ〜データＺを機器１０ａへ送信している。機器１０ａの通信制御部１３は、冗長化されたデータが分類されないグループに対応する時間帯では、受信したデータを、そのまま処理部１１に出力する。
【００５６】
このように、機器１０は、時間帯に応じて、多数決判定を行うか否かを切り替える。このため、冗長化されたデータが分類されるグループに対応する時間帯では、送信されるデータの信頼性が向上し、冗長化されたデータが分類されないグループに対応する時間帯では、より多くのデータを伝送することができる。
【００５７】
図７〜図９を参照しながら、図１に示した通信システムにおいて実行される処理の処理手順について説明する。
【００５８】
図７は、クロックマスタ２０が実行する処理の処理手順の例を示すフローチャートである。図７に示す処理手順は、繰り返して実行される。クロックマスタ２０は、新たな周期が開始するかを判定する（ステップＳ１０１）。具体的には、クロックマスタ２０は、同期メッセージを前回送信してから周期の長さに相当する時間が経過した場合に、新たな周期が開始すると判定する。新たな周期が開始する場合（ステップＳ１０１，Ｙｅｓ）、クロックマスタ２０は、機器１０のそれぞれに同期メッセージを送信する（ステップＳ１０２）。新たな周期が開始しない場合（ステップＳ１０１，Ｎｏ）、同期メッセージは送信されない。
【００５９】
このように、クロックマスタ２０は、新たな周期が開始する度に、機器１０に同期メッセージを送信し、時刻同期を行う。機器１０が、十分に正確な計時機能を有する場合、クロックマスタ２０は、複数の周期毎（例えば、１０周期毎）に、機器１０に同期メッセージを送信してもよい。
【００６０】
図８は、機器１０の通信制御部１３によるデータ送信処理の処理手順の例を示すフローチャートである。図８に示す処理手順は、繰り返して実行される。通信制御部１３は、クロックマスタ２０から同期メッセージを受信したかを判定する（ステップＳ２０１）。同期メッセージを受信した場合（ステップＳ２０１，Ｙｅｓ）、通信制御部１３は、時刻同期処理を実行する（ステップＳ２０２）。同期メッセージを受信していない場合（ステップＳ２０１，Ｎｏ）、時刻同期処理は実行されない。
【００６１】
続いて、通信制御部１３は、処理部１１からデータ（パケット）を受信したかを判定する（ステップＳ２０３）。データを受信した場合（ステップＳ２０３，Ｙｅｓ）、通信制御部１３は、データをどのグループに分類するかを判定し（ステップＳ２０４）、データを送信バッファ１３５に格納する（ステップＳ２０５）。ステップＳ２０５は、ステップＳ２０４よりも前に実行されてもよい。データを受信していない場合（ステップＳ２０３，Ｎｏ）、ステップＳ２０４およびステップＳ２０５は実行されない。
【００６２】
続いて、通信制御部１３は、新たな時間帯が開始するかを判定する（ステップＳ２０６）。具体的には、通信制御部１３は、時刻同期処理によって同期された時刻からの経過時間に基づいて、新たな時間帯が開始するか否かを判定する。新たな時間帯が開始する場合（ステップＳ２０６，Ｙｅｓ）、通信制御部１３は、その時間帯に送信すべきデータがあるかを判定する（ステップＳ２０７）。
【００６３】
送信すべきデータがある場合（ステップＳ２０７，Ｙｅｓ）、通信制御部１３は、そのデータを送信バッファ１３５から取得し（ステップＳ２０８）、ネットワークインターフェース１２経由で送信する（ステップＳ２０９）。新たな時間帯が開始しない場合（ステップＳ２０６，Ｎｏ）、または送信すべきデータがない場合（ステップＳ２０７，Ｎｏ）、ステップＳ２０８およびステップＳ２０９は実行されない。
【００６４】
このように、通信制御部１３は、送信すべきデータをグループのいずれかに分類し、グループに対応する時間帯内でデータを送信する。図８では、時刻同期処理（ステップＳ２０１〜ステップＳ２０２）が、データ送信処理の一部として実行されているが、時刻同期処理は、図９に示すデータ受信処理の一部として実行されてもよいし、独立して実行されてもよい。
【００６５】
図９は、機器１０の通信制御部１３によるデータ受信処理の処理手順の例を示すフローチャートである。図９に示す処理手順は、繰り返して実行される。通信制御部１３は、現在の時間帯が冗長化されたデータが受信される時間帯、すなわち、多数決判定の必要な時間帯であるかを判定する（ステップＳ３０１）。
【００６６】
多数決判定の必要な時間帯でない場合（ステップＳ３０１，Ｎｏ）、通信制御部１３は、中継器３０からデータを受信したかを判定する（ステップＳ３０２）。データを受信した場合（ステップＳ３０２，Ｙｅｓ）、通信制御部１３は、データを処理部１１へ出力する（ステップＳ３０３）。データを受信していない場合（ステップＳ３０２，Ｎｏ）、ステップＳ３０３は、実行されない。
【００６７】
その後、通信制御部１３は、時間帯が終了するかを判定する（ステップＳ３０４）。時間帯が終了しない場合（ステップＳ３０４，Ｎｏ）、通信制御部１３は、ステップＳ３０２に戻る。時間帯が終了する場合（ステップＳ３０４，Ｙｅｓ）、通信制御部１３は、図９に示す処理手順を終了する。
【００６８】
多数決判定の必要な時間帯である場合（ステップＳ３０１，Ｙｅｓ）、通信制御部１３は、中継器３０からデータを受信したかを判定する（ステップＳ３０５）。データを受信した場合（ステップＳ３０５，Ｙｅｓ）、通信制御部１３は、データを受信バッファ１３８に格納する（ステップＳ３０６）。データを受信していない場合（ステップＳ３０５，Ｎｏ）、ステップＳ３０６は、実行されない。
【００６９】
その後、通信制御部１３は、時間帯が終了するかを判定する（ステップＳ３０７）。時間帯が終了しない場合（ステップＳ３０７，Ｎｏ）、通信制御部１３は、ステップＳ３０５に戻る。時間帯が終了する場合（ステップＳ３０７，Ｙｅｓ）、通信制御部１３は、受信バッファ１３８からデータを取得し（ステップＳ３０８）、多数決判定処理を行う（ステップＳ３０９）。そして、通信制御部１３は、多数決判定処理において選択されたデータを処理部１１へ出力し（ステップＳ３１０）、図９に示す処理手順を終了する。
【００７０】
このように、通信制御部１３は、時間帯に応じて多数決判定を行うか否かを切り替えることにより、信頼性の向上と伝送効率の向上とを両立させる。
【００７１】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例で示した通信制御方法は、イーサネットネットワーク以外のネットワークに適用してもよい。上記の実施例では、クロックマスタ２０が独立して設けられる例を示したが、クロックマスタ２０の機能は、機器１０のいずれかによって実現されてもよいし、中継器３０によって実現されてもよい。
【００７２】
上記の実施例では、１つの中継器を含む通信システムの例を示したが、通信システムは、複数の中継器を含んでもよい。図１０は、複数の中継器を含む通信システムの例を示す図である。図１０に示す通信システムは、中継器３０ａおよび中継器３０ｂを含む。中継器３０ａおよび中継器３０ｂは、中継器３０と同様の構成を有する。中継器３０ａのポート３１の１つは、ケーブル４０を介して、中継器３０ｂのポート３１の１つと接続されている。
【００７３】
このように、中継器を相互に接続することにより、中継器の構成を複雑にすることなく、通信システムに接続可能な機器１０の数を増やすことができる。図１に示した通信システムには、機器１０ａ〜１０ｄの４台が接続されているが、図１０に示した通信システムには、機器１０ａ〜１０ｇの７台が接続されている。
【００７４】
機器１０の通信制御部１３の機能（より具体的には、受付部１３１、グループ判定部１３２、時間帯判定部１３３、送信部１３４、受信部１３６、および多数決判定部１３７の少なくとも１つの機能）は、ソフトウェアを用いて実現されてもよい。ソフトウェアは、オペレーションシステム（ＯＳ）の一部であってもよいし、アプリケーションプログラムであってもよいし、ＯＳとアプリケーションプログラムの間を仲介するミドルウェアであってもよい。一般に、ソフトウェアを用いた制御では、ハードウェアによる制御と比較して、時刻同期の精度が低下する。しかしながら、上記の通信制御方式では、時刻同期の精度への要求が緩和されるため、ソフトウェアを用いた制御でも、リアルタイム性を確保することができる。
【００７５】
図１１は、通信制御部１３の機能をソフトウェアを用いて実現する場合の機器の構成の例を示すブロック図である。図１１に示す機器５０は、ネットワークインターフェース５１と、記憶部５２と、制御部５３とを有する。ネットワークインターフェース５１は、図２に示すネットワークインターフェース１２に相当する。
【００７６】
記憶部５２は、ソリッドステートドライブ、ハードディスクドライブ等の非一過的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）な記憶媒体を有する。記憶部５２は、データおよびプログラムを記憶する。記憶部５２に記憶されるプログラムには、アプリケーション５２ａと、通信制御プログラム５２ｂとが含まれる。アプリケーション５２ａは、図２に示す処理部１１の機能を提供する。通信制御プログラム５２ｂは、図２に示す通信制御部１３の機能を提供する。
【００７７】
制御部５３は、機器５０を統括的に制御する。具体的には、制御部５３は、ＣＰＵ（Central Processing Unit）等の演算装置と、ＲＡＭ（Random Access Memory）等の記憶装置を有する。そして、制御部５３は、記憶部５２に記憶されているプログラムを記憶装置上に割り当てられた記憶領域に展開し、演算装置によって実行することにより、各種の機能を実現する。例えば、制御部５３は、アプリケーション５２ａを実行することによって、処理部１１の機能を実現し、通信制御プログラム５２ｂを実行することによって、通信制御部１３の機能を実現する。
【００７８】
通信制御プログラム５２ｂは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されてもよい。例えば、通信制御プログラム５２ｂの一部または全部が、アプリケーション５２ａに統合されてもよい。
【００７９】
通信システムは、中継器３０において、パケットの送信待ちまたはスイッチング部３２の切り替えによる遅延が発生しないように構成されてもよい。具体的には、１つの時間帯において、１つの機器１０に複数の機器１０からパケットが送信されないように、グループおよび時間帯が設定されてもよい。このように構成することにより、周期の長さを短くし、それによって、リアルタイム性を向上させることができる。
【００８０】
上記の通信システムおよび通信制御方法は、例えば、ロケットおよび宇宙船等の宇宙機の制御システムに適用することができる。この場合、宇宙機に搭載される各種のアビオニクスが機器１０に相当する。宇宙機における制御システムでは、各種の処理が周期的に行われる。このため、アビオニクス間でデータを伝送する周期がほぼ一貫しており、グループおよび時間帯の設定が容易である。
【００８１】
グループおよび時間帯の設定を自動化してもよい。例えば、グループおよび時間帯を設定せずにシステムを一定期間稼動させる間に、中継器３０が、データの送信される時間、送信されるデータのサイズ、種類、優先度等を記録し、記録された情報に基づいて、中継器３０またはクロックマスタ２０が、グループおよび時間帯を設定してもよい。設定されたグループおよび時間帯は、機器１０に通知される。
【符号の説明】
【００８２】
１０ａ〜１０ｇ  機器
１１    処理部
１２    ネットワークインターフェース
１３    通信制御部
１３１  受付部
１３２  グループ判定部
１３３  時間帯判定部
１３４  送信部
１３５  送信バッファ
１３６  受信部
１３７  多数決判定部
１３８  受信バッファ
２０  クロックマスタ
３０、３０ａ、３０ｂ  中継器
３１    ポート
３２    スイッチング部
３３    バッファ
３４ａ〜３４ｄ  受信バッファ
３５ａ〜３５ｄ  送信バッファ
４０    ケーブル
５０    機器
５１    ネットワークインターフェース
５２    記憶部
５２ａ  アプリケーション
５２ｂ  通信制御プログラム
５３    制御部
【図１】
2014131247.tif 000003
【図２】
2014131247.tif 000004
【図３】
2014131247.tif 000005
【図４】
2014131247.tif 000006
【図５】
2014131247.tif 000007
【図６】
2014131247.tif 000008
【図７】
2014131247.tif 000009
【図８】
2014131247.tif 000010
【図９】
2014131247.tif 000011
【図１０】
2014131247.tif 000012
【図１１】
2014131247.tif 000013