(57)【要約】【課題】通信システムに含まれる各通信装置への設定を簡易にしつつ、各通信装置がリング接続されているかデイジーチェーン接続されているかを判定することが可能な通信システム、通信装置、接続状態判定方法及び制御プログラムを提供する。【解決手段】通信システム１に含まれる各通信装置１００が、一方側に隣接する通信装置からノード番号を受信したときに、指定装置でない場合又は受信したノード番号が所定値未満である場合、ノード番号を更新し、指定装置である場合且つ受信したノード番号が所定値以上である場合、ノード番号を所定値に更新する更新部１１４ａ、１１４ｂと、自発的に、ノード番号を、他方側に隣接する通信装置に送信可能である送信部１２２ａ、１２２ｂと、指定装置である場合且つノード番号が所定値に更新された場合、複数の通信装置がリング接続されていると判定する判定部１４１とを有する。【選択図】図２
2015231217.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置がリング接続又はデイジーチェーン接続される通信システムであって、
前記複数の通信装置のそれぞれが、
ノード番号及び指定装置として指定されているか否かを示す情報を記憶する記憶部と、
一方側に隣接する通信装置から前記一方側に隣接する通信装置のノード番号を受信可能である受信部と、
前記受信部がノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に前記記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が前記所定値以上である場合に前記記憶部に記憶されたノード番号を前記所定値に更新する、更新部と、
自発的に、前記記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能である送信部と、
指定装置として指定されている場合且つ前記更新部が前記記憶部に記憶されたノード番号を前記所定値に更新した場合、前記複数の通信装置がリング接続されていると判定する判定部と、
を有することを特徴とする通信システム。
【請求項２】
前記送信部は、前記複数の通信装置がリング接続されているか否かを示す接続情報を、前記他方側に隣接する通信装置に送信可能である、請求項１に記載の通信システム。
【請求項３】
前記送信部は、定期的に、前記記憶部に記憶されたノード番号を、前記他方側に隣接する通信装置に送信可能であり、
前記複数の通信装置のそれぞれが、
前記接続情報が前記複数の通信装置がリング接続されていることを示しているときに、前記受信部が前記一方側に隣接する通信装置からノード番号を所定期間受信しなかった場合、前記複数の通信装置のリング接続が切断されたと判定する切断判定部をさらに有する、請求項２に記載の通信システム。
【請求項４】
前記記憶部は、第２ノード番号をさらに記憶し、
前記受信部は、前記他方側に隣接する通信装置から前記他方側に隣接する通信装置の第２ノード番号を受信可能であり、
前記更新部は、前記受信部が第２ノード番号を受信した場合、前記記憶部に記憶された第２ノード番号を、受信した第２ノード番号をインクリメントした番号に更新し、
前記送信部は、自発的に、前記記憶部に記憶された第２ノード番号を、前記一方側に隣接する通信装置に送信可能であり、
前記複数の通信装置のそれぞれが、
前記記憶部に記憶されたノード番号及び第２ノード番号の両方の値が所定期間変化しない場合、前記受信部が受信したノード番号及び第２ノード番号の内の少なくとも一方に基づいて、前記複数の通信装置の総数を算出する総数算出部をさらに有する、請求項１〜３の何れか一項に記載の通信システム。
【請求項５】
前記総数算出部は、前記複数の通信装置がリング接続されていない場合、又は、指定装置として指定されていない場合、前記記憶部に記憶されたノード番号と第２ノード番号の和に基づいて、前記複数の通信装置の総数を算出し、前記複数の通信装置がリング接続されている場合且つ指定装置として指定されている場合、前記受信部が受信したノード番号及び第２ノード番号の内の何れか一方に基づいて、前記複数の通信装置の総数を算出する、請求項４に記載の通信システム。
【請求項６】
前記送信部は、定期的に、前記記憶部に記憶されたノード番号を、前記他方側に隣接する通信装置に送信可能であり、
前記複数の通信装置のそれぞれが、
前記ノード番号が一定期間変化しなかった場合、前記送信部が前記ノード番号を送信する間隔を変更する送信間隔変更部をさらに有する、請求項１〜５の何れか一項に記載の通信システム。
【請求項７】
前記送信間隔変更部は、前記ノード番号が一定期間変化しなかった後に、再度変化した場合、前記送信部が前記ノード番号を送信する間隔を再度変更する、請求項６に記載の通信システム。
【請求項８】
前記送信部は、定期的に、前記記憶部に記憶されたノード番号を、前記他方側に隣接する通信装置に送信可能であり、
前記複数の通信装置のそれぞれが、
前記通信装置の通信量に応じて、前記送信部が前記ノード番号を送信する間隔を変更する送信間隔変更部をさらに有する、請求項１〜５の何れか一項に記載の通信システム。
【請求項９】
複数の通信装置がリング接続又はデイジーチェーン接続される通信システムに含まれる通信装置であって、
ノード番号及び指定装置として指定されているか否かを示す情報を記憶する記憶部と、
一方側に隣接する通信装置から自発的に送信される前記一方側に隣接する通信装置のノード番号を受信可能である受信部と、
前記受信部がノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に前記記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が前記所定値以上である場合に前記記憶部に記憶されたノード番号を前記所定値に更新する、更新部と、
自発的に、前記記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能である送信部と、
指定装置として指定されている場合且つ前記更新部が前記記憶部に記憶されたノード番号を前記所定値に更新した場合、前記複数の通信装置がリング接続されていると判定する判定部と、
を有することを特徴とする通信装置。
【請求項１０】
複数の通信装置がリング接続又はデイジーチェーン接続される通信システムにおける接続状態判定方法であって、
前記複数の通信装置のそれぞれが、
ノード番号及び指定装置として指定されているか否かを示す情報を記憶部に記憶し、
一方側に隣接する通信装置から前記一方側に隣接する通信装置のノード番号を受信可能であり、
前記ノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に前記記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が前記所定値以上である場合に前記記憶部に記憶されたノード番号を前記所定値に更新し、
自発的に、前記記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能であり、
指定装置として指定されている場合且つ前記記憶部に記憶されたノード番号が前記所定値に更新された場合、前記複数の通信装置がリング接続されていると判定する、
ことを含むことを特徴とする接続状態判定方法。
【請求項１１】
複数の通信装置がリング接続又はデイジーチェーン接続される通信システムに含まれる通信装置に実行させる制御プログラムであって、
ノード番号及び指定装置として指定されているか否かを示す情報を記憶部に記憶し、
一方側に隣接する通信装置から自発的に送信される前記一方側に隣接する通信装置のノード番号を受信可能であり、
前記ノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に前記記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が前記所定値以上である場合に前記記憶部に記憶されたノード番号を前記所定値に更新し、
自発的に、前記記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能であり、
指定装置として指定されている場合且つ前記記憶部に記憶されたノード番号が前記所定値に更新された場合、前記複数の通信装置がリング接続されていると判定する、
ことを前記通信装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置、接続状態判定方法及び制御プログラムに関し、特に、複数の通信装置がリング接続又はデイジーチェーン接続される通信システムの接続状態を判定する通信システム、通信装置、接続状態判定方法及び制御プログラムに関する。
【背景技術】
【０００２】
複数の通信装置がリング接続又はデイジーチェーン接続されている通信システムでは、各通信装置がリング接続されているかデイジーチェーン接続されているかによって、送信元の通信装置から送信先の通信装置までのデータの送信経路が異なる。したがって、このような通信システムでは、各通信装置は、各通信装置がリング接続されているかデイジーチェーン接続されているかを認識する必要がある。
【０００３】
マスタであるＥＣＵ（制御装置、Electronic Control Unit）と、スレーブである複数の入出力装置がリング接続又はデイジーチェーン接続される車載通信システムが知られている（特許文献１を参照）。この車載通信システムにおいて、ＥＣＵは、アドレス情報を隣の入出力装置へ送信し、その入出力装置はアドレス情報から自アドレスを決定しつつアドレス情報を書き換え、さらに隣の入出力装置へ転送する。アドレス情報は、各入出力装置により書き換えられ、最後に、ＥＣＵが、転送されたアドレス情報を受信してシステム全体の構成を確認して通信を開始する。
【０００４】
また、ホスト機器と、デイジーチェーン接続される複数のモジュールとを有するシステムが知られている（特許文献２を参照）。このシステムにおいて、ホスト機器は、隣接するモジュールにアドレスデータを送信する。隣接するモジュールは、受信したアドレスデータに応じて自身のアドレスを設定し、自身のアドレスに基づいて後段のモジュールに対するアドレスを作成し、作成したアドレスに応じたアドレスデータを後段のモジュールに送信していく。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１２０１６７号公報
【特許文献２】特開２０００−１０９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の車載通信システム及び特許文献２に記載のシステムでは、アドレス情報の送信元であるＥＣＵ及びアドレスデータの送信元であるホスト機器をそれぞれデイジーチェーンの一端に配置するようにシステムの設定を行う必要がある。
【０００７】
本発明の目的は、通信システムに含まれる各通信装置の設定を簡易にしつつ、各通信装置がリング接続されているかを判定することが可能な通信システム、通信装置、接続状態判定方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一側面に係る通信システムは、複数の通信装置がリング接続又はデイジーチェーン接続される通信システムであって、複数の通信装置のそれぞれが、ノード番号及び指定装置として指定されているか否かを示す情報を記憶する記憶部と、一方側に隣接する通信装置から一方側に隣接する通信装置のノード番号を受信可能である受信部と、受信部がノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が所定値以上である場合に記憶部に記憶されたノード番号を所定値に更新する、更新部と、自発的に、記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能である送信部と、指定装置として指定されている場合且つ更新部が記憶部に記憶されたノード番号を所定値に更新した場合、複数の通信装置がリング接続されていると判定する判定部と、を有する。
【０００９】
また、本発明の一側面に係る通信装置は、複数の通信装置がリング接続又はデイジーチェーン接続される通信システムに含まれる通信装置であって、ノード番号及び指定装置として指定されているか否かを示す情報を記憶する記憶部と、一方側に隣接する通信装置から自発的に送信される一方側に隣接する通信装置のノード番号を受信可能である受信部と、受信部がノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が所定値以上である場合に記憶部に記憶されたノード番号を所定値に更新する、更新部と、自発的に、記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能である送信部と、指定装置として指定されている場合且つ更新部が記憶部に記憶されたノード番号を所定値に更新した場合、複数の通信装置がリング接続されていると判定する判定部と、を有する。
【００１０】
また、本発明の一側面に係る接続状態判定方法は、複数の通信装置がリング接続又はデイジーチェーン接続される通信システムにおける接続状態判定方法であって、複数の通信装置のそれぞれが、ノード番号及び指定装置として指定されているか否かを示す情報を記憶部に記憶し、一方側に隣接する通信装置から一方側に隣接する通信装置のノード番号を受信可能であり、ノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場に記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が所定値以上である場合に記憶部に記憶されたノード番号を所定値に更新し、自発的に、記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能であり、指定装置として指定されている場合且つ記憶部に記憶されたノード番号が所定値に更新された場合、複数の通信装置がリング接続されていると判定する、ことを含む。
【００１１】
また、本発明の一側面に係る制御プログラムは、複数の通信装置がリング接続又はデイジーチェーン接続される通信システムに含まれる通信装置に実行させる制御プログラムであって、ノード番号及び指定装置として指定されているか否かを示す情報を記憶部に記憶し、一方側に隣接する通信装置から自発的に送信される一方側に隣接する通信装置のノード番号を受信可能であり、ノード番号を受信したときに、指定装置として指定されていない場合又は受信したノード番号が所定値未満である場合に記憶部に記憶されたノード番号を受信したノード番号をインクリメントした番号に更新し、及び、指定装置として指定されている場合且つ受信したノード番号が所定値以上である場合に記憶部に記憶されたノード番号を所定値に更新し、自発的に、記憶部に記憶されたノード番号を、他方側に隣接する通信装置に送信可能であり、指定装置として指定されている場合且つ記憶部に記憶されたノード番号が所定値に更新された場合、複数の通信装置がリング接続されていると判定する、ことを通信装置に実行させる。
【発明の効果】
【００１２】
本発明によれば、複数の通信装置の内から予めマスタとなる装置を、デイジーチェーンの一端のような特定の位置に限定して設定する必要がなくなる。したがって、本発明に係る通信システム、通信装置、接続状態判定方法及び制御プログラムは、管理者による各通信装置の設定を簡易にしつつ、各通信装置がリング接続されているかを判定することが可能となる。
【図面の簡単な説明】
【００１３】
【図１Ａ】実施形態に係る通信システム１を示す概略構成図である。
【図１Ｂ】実施形態に係る通信システム１を示す概略構成図である。
【図２】通信装置１００のハードウェア構成図である。
【図３】パケットのデータ構造の一例を示す模式図である。
【図４】第１送信間隔変更回路１１６ａのハードウェア構成図である。
【図５】ＣＰＵ１４０の概略構成を示す図である。
【図６】パケット受信処理の動作の例を示すフローチャートである。
【図７】更新処理の動作の例を示すフローチャートである。
【図８】第２更新処理の動作の例を示すフローチャートである。
【図９】制御パケット送信処理の動作の例を示すフローチャートである。
【図１０】データパケット送信処理の動作の例を示すフローチャートである。
【図１１】接続状態判定処理の動作の例を示すフローチャートである。
【図１２】通信装置総数算出処理の動作の例を示すフローチャートである。
【図１３Ａ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１３Ｂ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１３Ｃ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１３Ｄ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１４Ａ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１４Ｂ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１４Ｃ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１４Ｄ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１５Ａ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１５Ｂ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１６Ａ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１６Ｂ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１６Ｃ】ノード番号及び接続情報の変化について説明するための模式図である。
【図１６Ｄ】ノード番号及び接続情報の変化について説明するための模式図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一側面に係る情報処理装置、診断順序決定方法及びコンピュータプログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１５】
図１Ａ及び図１Ｂは、実施形態に係る通信システムを示す図である。図１Ａ及び図１Ｂに示すように、通信システム１は、複数の通信装置１００ａ〜１００ｃを有する。図１Ａは、各通信装置１００ａ〜１００ｃがデイジーチェーン接続される例を示し、図１Ｂは、各通信装置１００ａ〜１００ｃがリング接続される例を示す。
【００１６】
相互に隣接する二つの通信装置は、専用の通信ケーブルを介して接続される。なお、各通信装置は、ＵＳＢ（Universal Serial Bus）等の公知のインターフェースに従ったケーブルを介して相互に接続されてもよい。また、各通信装置は、イーサネット（登録商標）等の有線ＬＡＮ（Local Area Network）により接続されてもよい。その場合、各通信装置は、ＬＡＮケーブルを介して直接接続されるのではなく、リピータハブ、スイッチングハブ、ルータ等を介して接続されてもよい。本実施形態では、「隣接する通信装置」とは、他の通信装置を介さずに接続される通信装置のことを意味し、直接接続により接続される通信装置と、リピータハブ、スイッチングハブ、ルータ等を介して接続される通信装置とが含まれる。
【００１７】
各通信装置１００ａ〜１００ｃが、自装置に記憶しているデータを他の通信装置に高速に送信し、他の通信装置に記憶させることにより、通信システム１は、各通信装置１００ａ〜１００ｃ間でデータを共有する。以下では、各通信装置１００ａ〜１００ｃのそれぞれを通信装置１００と称する場合がある。
【００１８】
図２は、通信装置１００のハードウェア構成図である。各通信装置１００ａ〜１００ｃのハードウェア構成は同一であるため、通信装置１００として共通に説明する。図２に示すように、通信装置１００は、記憶装置１０１と、通信回路１１０と、ＣＰＵ（Central Processing Unit）１４０とを有する。以下、通信装置１００の各部について詳細に説明する。
【００１９】
記憶装置１０１は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶装置１０１には、通信装置１００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が記憶される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶装置１０１にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）等とすることができる。また、記憶装置１０１には、通信システム１に含まれる他の通信装置から受信したデータ、他の通信システムへ送信するデータ等が記憶される。
【００２０】
通信回路１１０は、他の通信装置と通信可能なインターフェース回路を有し、デイジーチェーン接続又はリング接続される通信装置の内の隣接する通信装置と、ケーブルを用いて電気的に接続して各種のデータ及び情報を送受信する。通信回路１１０は、例えばＰＣＩ（Peripheral Component Interconnect）、ＰＣＩ−Ｘ、ＰＣＩ  Ｅｘｐｒｅｓｓ等の規格に準じたカードによって通信装置１００に実装される。なお、通信回路１１０は、プロセッサ上で動作するソフトウェアにより実装される機能モジュールで構成されてもよい。または、通信回路１１０は、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００２１】
なお、通信回路１１０は、ＵＳＢ等のシリアルバスに準じるインターフェース回路を有し、ＵＳＢケーブルを用いて各通信装置と電気的に接続してもよい。または、通信回路１１０は、イーサネット（登録商標）等に準じる回路を有し、ＬＡＮケーブルを用いて各通信装置と電気的に接続してもよい。
【００２２】
通信回路１１０は、第１ポート１１１ａ及び第２ポート１１１ｂと、第１受信回路１１２ａ及び第２受信回路１１２ｂと、指定情報レジスタ１１３と、第１デコーダ１１４ａ及び第２デコーダ１１４ｂ等を有する。通信回路１１０は、さらに第１構成情報レジスタ１１５ａ及び第２構成情報レジスタ１１５ｂと、第１送信間隔変更回路１１６ａ及び第２送信間隔変更回路１１６ｂと、第１タイミングレジスタ１１７ａ及び第２タイミングレジスタ１１７ｂ等を有する。通信回路１１０は、さらに第１タイミング生成回路１１８ａ及び第２タイミング生成回路１１８ｂと、第１構成情報送信回路１１９ａ及び第２構成情報送信回路１１９ｂ等を有する。通信回路１１０は、さらに第１ＤＭＡ（Direct Memory Access）コントローラ１２０ａ及び第２ＤＭＡコントローラ１２０ｂと、第１アービタ１２１ａ及び第２アービタ１２１ｂと、第１送信回路１２２ａ及び第２送信回路１２２ｂ等を有する。
【００２３】
第１ポート１１１ａは、デイジーチェーン接続又はリング接続される通信装置の内の通信装置１００の一方側に隣接する通信装置と、ケーブルを用いて電気的に接続するためのコネクタである。以下では、デイジーチェーン接続又はリング接続される通信装置の内、通信装置１００の一方側に隣接する通信装置を第１隣接通信装置と称する場合がある。なお、通信装置１００がデイジーチェーンの一端に位置する場合、第１ポート１１１ａには他の通信装置が接続されない。
【００２４】
第２ポート１１１ｂは、デイジーチェーン接続又はリング接続される通信装置の内、通信装置１００の他方側に隣接する通信装置と、ケーブルを用いて電気的に接続するためのコネクタである。以下では、デイジーチェーン接続又はリング接続される通信装置の内、通信装置１００の他方側に隣接する通信装置を第２隣接通信装置と称する場合がある。なお、通信装置１００がデイジーチェーンの他端に位置する場合、第２ポート１１１ｂには他の通信装置が接続されない。
【００２５】
第１受信回路１１２ａは、受信部の一例である。第１受信回路１１２ａは、第１隣接通信装置と通信可能なインターフェース回路を有し、第１ポート１１１ａ及びケーブルを介して第１隣接通信装置と接続され、第１隣接通信装置からパケットを受信可能である。
【００２６】
第２受信回路１１２ｂは、受信部の一例である。第２受信回路１１２ｂは、第２隣接通信装置と通信可能なインターフェース回路を有し、第２ポート１１１ｂ及びケーブルを介して第２隣接通信装置と接続され、第２隣接通信装置からパケットを受信可能である。
【００２７】
図３は、他の通信装置との間で送受信されるパケットのデータ構造の一例を示す模式図である。図３に示すように、送受信されるパケットには、ヘッダ及びデータ等が含まれる。ヘッダには、送信先ノード番号、送信元ノード番号、第１ノード番号又は第２ノード番号、第１接続情報又は第２接続情報、パケット種別及びメモリアドレス等が含まれる。
【００２８】
ノード番号は、各通信装置を一意に識別するための識別情報である。送信先ノード番号は、パケットを最終的に受け取る通信装置のノード番号である。送信元ノード番号は、パケットを最初に発信した通信装置のノード番号である。第１ノード番号及び第２ノード番号は、そのパケット自体を送信した通信装置のノード番号である。第１ノード番号は、第１隣接装置側から第２隣接装置側へ向かう方向へ、即ち第１ポート側から第２ポート側へ向かう方向へパケットを送信する際に用いられるノード番号である。第２ノード番号は、第２隣接装置側から第１隣接装置側へ向かう方向へ、即ち第２ポート側から第１ポート側へ向かう方向へパケットを送信する際に用いられるノード番号である。
【００２９】
第１接続情報及び第２接続情報は、通信システム１に含まれる各通信装置がリング接続されているか否か、即ちリング接続されているかデイジーチェーン接続されているかを示す情報である。第１接続情報は、第１隣接装置側から第２隣接装置側へ向かう方向へパケットを送信する際に用いられ、第２接続情報は、第２隣接装置側から第１隣接装置側へ向かう方向へパケットを送信する際に用いられる。パケット種別は、そのパケットが、記憶装置１０１に記憶されたデータを通信装置間で送受信するためのデータパケットであるか、通信システム１の接続構成を判別するための制御パケットであるかを示す情報である。メモリアドレスは、パケットに含まれるデータを格納すべき、送信先の通信装置の記憶装置内のアドレスである。
【００３０】
パケット種別がデータパケットである場合、送信先ノード番号、送信元ノード番号、パケット種別、メモリアドレス及びデータのみが使用され、第１ノード番号又は第２ノード番号と、第１接続情報又は第２接続情報とは使用されない。一方、パケット種別が制御パケットである場合、第１ノード番号又は第２ノード番号と、第１接続情報又は第２接続情報と、パケット種別のみが使用され、送信先ノード番号、送信元ノード番号、メモリアドレス及びデータは使用されない。
【００３１】
指定情報レジスタ１１３は、記憶部の一例であり、通信装置１００が指定装置として指定されているか否かを示す指定情報を記憶する。指定装置は、通信システム１に含まれる各通信装置がリング接続されているか否かを受信したノード番号に基づいて最初に判定する装置であり、通信システム１に含まれる通信装置の内の一つのみに指定される。
【００３２】
第１デコーダ１１４ａは、更新部の一例である。第１デコーダ１１４ａは、第１受信回路１１２ａが第１隣接通信装置からパケットを受信したときに、受信したパケットをデコードして、パケット内のヘッダを判別するとともに、指定情報レジスタ１１３から指定情報を読み出す。第１デコーダ１１４ａは、パケット内のヘッダと指定情報に基づいて、受信したパケットを記憶装置１０１に格納する処理、受信したパケットを第１アービタ１２１ａに送る処理、又は第１構成情報レジスタ１１５ａを更新する処理の内の何れかの処理を実施する。第１デコーダ１１４ａによる処理の詳細については後述する。
【００３３】
第２デコーダ１１４ｂは、更新部の一例である。第２デコーダ１１４ｂは、第２受信回路１１２ｂが第２隣接通信装置からパケットを受信したときに、受信したパケットをデコードして、パケット内のヘッダを判別するとともに、指定情報レジスタ１１３から指定情報を読み出す。第２デコーダ１１４ｂは、パケット内のヘッダと指定情報に基づいて、受信したパケットを記憶装置１０１に格納する処理、受信したパケットを第２アービタ１２１ｂに送る処理、又は第２構成情報レジスタ１１５ｂを更新する処理の内の何れかの処理を実施する。第２デコーダ１１４ｂによる処理の詳細については後述する。
【００３４】
第１構成情報レジスタ１１５ａは、記憶部の一例であり、通信装置１００の第１ノード番号と、第１接続情報とを記憶する。第１ノード番号の初期値は０に設定され、第１接続情報の初期値はデイジーチェーン接続されていることに設定される。
【００３５】
第２構成情報レジスタ１１５ｂは、記憶部の一例であり、通信装置１００の第２ノード番号と、第２接続情報とを記憶する。第２ノード番号の初期値は０に設定され、第２接続情報の初期値はデイジーチェーン接続されていることに設定される。
【００３６】
第１送信間隔変更回路１１６ａは、送信間隔変更部の一例である。第１送信間隔変更回路１１６ａは、第１構成情報送信回路１１９ａが第１送信回路１２２ａを介して制御パケットを送信する間隔（以下、第１制御パケット送信間隔と称する）を所定の条件に従って変更する。第１送信間隔変更回路１１６ａの詳細については後述する。
【００３７】
第２送信間隔変更回路１１６ｂは、送信間隔変更部の一例である。第２送信間隔変更回路１１６ａは、第２構成情報送信回路１１９ｂが第２送信回路１２２ｂを介して制御パケットを送信する間隔（以下、第２制御パケット送信間隔と称する）を所定の条件に従って変更する。第２送信間隔変更回路１１６ｂの詳細については後述する。
【００３８】
第１タイミングレジスタ１１７ａは、第１制御パケット送信間隔を記憶する。第１制御パケット送信間隔は、第１送信間隔変更回路１１６ａにより設定される。なお、第１制御パケット送信間隔は、第１送信間隔変更回路１１６ａにより動的に変更されるのではなく、第１制御パケット送信間隔として、ＣＰＵ１４０により固定値が設定されてもよい。
【００３９】
第２タイミングレジスタ１１７ｂは、第２制御パケット送信間隔を記憶する。第２制御パケット送信間隔は、第２送信間隔変更回路１１６ｂにより設定される。なお、第２制御パケット送信間隔は、第２送信間隔変更回路１１６ｂにより動的に変更されるのではなく、第２制御パケット送信間隔として、ＣＰＵ１４０により固定値が設定されてもよい。
【００４０】
第１タイミング生成回路１１８ａは、第１タイミングレジスタ１１７ａに記憶された第１制御パケット送信間隔に従って、第１送信回路１２２ａが制御パケットを送信するタイミングを指定する第１タイミング信号を生成し、第１構成情報送信回路１１９ａに送る。
【００４１】
第２タイミング生成回路１１８ｂは、第２タイミングレジスタ１１７ｂに記憶された第２制御パケット送信間隔に従って、第２送信回路１２２ｂが制御パケットを送信するタイミングを指定する第２タイミング信号を生成し、第２構成情報送信回路１１９ｂに送る。
【００４２】
第１構成情報送信回路１１９ａは、第１タイミング生成回路１１８ａから受け取った第１タイミング信号に従って、第１構成情報レジスタ１１５ａから第１ノード番号及び第１接続情報を読み出す。第１構成情報送信回路１１９ａは、読み出した第１ノード番号及び第１接続情報を含み且つパケット種別が制御パケットであるパケットを作成し、第１アービタ１２１ａに送る。
【００４３】
第２構成情報送信回路１１９ｂは、第２タイミング生成回路１１８ｂから受け取った第２タイミング信号に従って、第２構成情報レジスタ１１５ｂから第２ノード番号及び第２接続情報を読み出す。第２構成情報送信回路１１９ｂは、読み出した第２ノード番号及び第２接続情報を含み且つパケット種別が制御パケットであるパケットを作成し、第２アービタ１２１ｂに送る。
【００４４】
第１ＤＭＡコントローラ１２０ａは、ＣＰＵ１４０からの要求に従って、記憶装置１０１に記憶されたデータを読み出し、ヘッダを付加してデータパケットを作成し、第１アービタ１２１ａに送る。
【００４５】
第２ＤＭＡコントローラ１２０ｂは、ＣＰＵ１４０からの要求に従って、記憶装置１０１に記憶されたデータを読み出し、ヘッダを付加してデータパケットを作成し、第２アービタ１２１ｂに送る。
【００４６】
第１アービタ１２１ａは、第１デコーダ１１４ａから受け取ったデータパケット、第１構成情報送信回路１１９ａから受け取った制御パケット及び第１ＤＭＡコントローラ１２０ａから受け取ったデータパケットを第１送信回路１２２ａに送る。第１アービタ１２１ａは、各パケットを第１送信回路１２２ａに送る順序を調整するための調整回路を有し、所定の順序に従って、各パケットを第１送信回路１２２ａに送る。
【００４７】
第２アービタ１２１ｂは、第２デコーダ１１４ｂから受け取ったデータパケット、第２構成情報送信回路１１９ｂから受け取った制御パケット及び第２ＤＭＡコントローラ１２０ｂから受け取ったデータパケットを第２送信回路１２２ｂに送る。第２アービタ１２１ｂは、各パケットを第２送信回路１２２ｂに送る順序を調整するための調整回路を有し、所定の順序に従って、各パケットを第２送信回路１２２ｂに送る。
【００４８】
第１送信回路１２２ａは、送信部の一例である。第１送信回路１２２ａは、第２隣接通信装置と通信可能なインターフェース回路を有し、第２ポート１１１ｂ及びケーブルを介して第２隣接通信装置と接続され、第２隣接通信装置へパケットを送信可能である。
【００４９】
第２送信回路１２２ｂは、送信部の一例である。第２送信回路１２２ｂは、第１隣接通信装置と通信可能なインターフェース回路を有し、第１ポート１１１ａ及びケーブルを介して第１隣接通信装置と接続され、第１隣接通信装置へパケットを送信可能である。
【００５０】
図４は、第１送信間隔変更回路１１６ａのハードウェア構成図である。なお、第２送信間隔変更回路１１６ｂのハードウェア構成は第１送信間隔変更回路１１６ａのハードウェア構成と同様であるため、以下では代表して第１送信間隔変更回路１１６ａについてのみ説明し、第２送信間隔変更回路１１６ｂについての説明は省略する。
【００５１】
図４に示すように、第１送信間隔変更回路１１６ａは、第１ノード番号レジスタ１３１ａと、遅延レジスタ１３２ａと、第１比較器１３３ａと、カウンタ回路１３４ａと、第２比較器１３５ａとを有する。以下、第１送信間隔変更回路１１６ａの各部について詳細に説明する。
【００５２】
第１ノード番号レジスタ１３１ａには、第１構成情報レジスタ１１５ａから第１ノード番号を読み出すタイミングを指定する読出タイミング信号が入力される。第１ノード番号レジスタ１３１ａは、読出タイミング信号に従って、第１構成情報レジスタから第１ノード番号を読み出し、読み出した第１ノード番号を遅延レジスタ１３２ａと第１比較器１３３ａに出力する。
【００５３】
遅延レジスタ１３２ａには、第１ノード番号レジスタ１３１ａから入力された第１ノード番号を出力するタイミングを指定する第１クロック信号が入力される。遅延レジスタ１３２ａは、第１クロック信号に従って、第１ノード番号レジスタ１３１ａから入力された第１ノード番号を所定時間だけ遅延させて第１比較器１３３ａに出力する。
【００５４】
第１比較器１３３ａは、第１ノード番号レジスタ１３１ａから入力された第１ノード番号と、遅延レジスタ１３２ａから入力された第１ノード番号、即ち第１クロック信号に基従って所定時間だけ遅延して入力された第１ノード番号とを比較する。第１比較器１３３ａは、入力された二つの第１ノード番号が一致する場合、０を出力し、入力された二つの第１ノード番号が異なる場合、１を出力する。即ち、第１ノード番号が変化した場合、第１比較器１３３ａから出力される信号は１になる。
【００５５】
カウンタ回路１３４ａには、カウンタ値を更新するタイミングを指定する第２クロック信号が入力される。カウンタ回路１３４ａは、第２クロック信号で指定されたタイミングにおいて、第１比較器１３３ａから入力された信号が０である場合、カウンタ値をインクリメントし、第１比較器１３３ａから入力された信号が１である場合、カウンタ値を０にリセットする。カウンタ回路１３４ａは、現在のカウンタ値を第２比較器に出力する。即ち、カウンタ回路１３４ａが出力するカウンタ値は、第１ノード番号が変化していない時間を表す。
【００５６】
第２比較器１３５ａには、所定閾値と、カウンタ回路１３４ａから出力されたカウンタ値とが入力される。第２比較器１３５ａは、カウンタ値が所定閾値未満である場合、第１間隔値を第１制御パケット送信間隔として出力し、カウンタ値が所定閾値以上である場合、第１間隔値より大きい第２間隔値を第１制御パケット送信間隔として出力する。
【００５７】
このように、第１送信間隔変更回路１１６ａは、第１ノード番号が一定期間変化しなかった場合、第１制御パケット送信間隔を変更する。通信装置１００の起動直後は、ノード番号が変化するため、制御パケットの送信間隔は短く、通信装置１００は、各通信装置がリング接続されているか否かを短期間に判別することができる。一方、各通信装置がリング接続されているか否かが一旦判別された後は、ノード番号が変化しないため、制御パケットの送信間隔は長くなり、通信装置１００は、通信データ量が増大することを抑制することができる。
【００５８】
また、第１送信間隔変更回路１１６ａがハードウェアにより実現されるため、通信装置１００は、ＣＰＵ１４０の処理負荷を低減させるとともに、受信したノード番号が変化する頻度をより短期間且つ高精度に判別することができる。
【００５９】
なお、第１送信間隔変更回路１１６ａは、第１制御パケット送信間隔として、二つの間隔値の内の何れかを出力するのではなく、三つ以上の間隔値の内の何れかを出力してもよい。その場合、第１送信間隔変更回路１１６ａは、カウンタ値が大きいほど出力する間隔値を大きくする。これにより、通信装置１００は、通信データ量をより柔軟に変更することができる。
【００６０】
また、第１送信間隔変更回路１１６ａは、カウンタ値が所定閾値以上となったときに、第２間隔値を第１制御パケット送信間隔として出力し、その後、再度所定閾値未満になった場合、第１間隔値を第１制御パケット送信間隔として出力する。このように、第１送信間隔変更回路１１６ａは、第１ノード番号が一定期間変化しなかった後に、再度変化した場合、第１制御パケット送信間隔を再度変更する。これにより、通信装置１００は、通信システム内の接続構成が変化した場合に、制御パケットを送信する間隔を再度短くして、各通信装置がリング接続されているか否かを短期間に判別することができる。
【００６１】
また、第１送信間隔変更回路１１６ａは、通信装置１００の通信量を計数し、通信装置１００の通信量に応じて、第１制御パケット送信間隔を変更してもよい。その場合、第１送信間隔変更回路１１６ａは、通信装置１００の通信量が大きいほど、第１制御パケット送信間隔を大きくし、通信装置１００の通信量が小さいほど、第１制御パケット送信間隔を小さくする。これにより、データパケットの送受信量が大きい場合は制御パケットの送信量が小さくなり、データパケットの送受信量が小さい場合は制御パケットの送信量が大きくなるため、通信システム１内の全体の通信量を一定に保つことが可能となる。
【００６２】
ＣＰＵ１４０は、記憶装置１０１及び通信回路１１０と接続され、これらの各部を制御する。ＣＰＵ１４０は、通信回路１１０を介した他の通信装置との通信制御、記憶装置１０１の制御等を行う。
【００６３】
図５は、ＣＰＵ１４０の概略構成を示す図である。図５に示すように、ＣＰＵ１４０は、判定部１４１、切断判定部１４２及び総数算出部１４３等を有する。これらの各部は、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。なお、これらの各部は、それぞれ独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００６４】
図６は、通信装置１００によるパケット受信処理の動作の例を示すフローチャートである。以下、図６に示したフローチャートを参照しつつ、パケット受信処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。なお、パケット受信処理は、第１隣接通信装置から受信したパケットと、第２隣接通信装置から受信したパケットのそれぞれに対して同様に実行される。以下では、代表して第１隣接通信装置から受信したパケットに対するパケット受信処理についてのみ説明し、第２隣接通信装置から受信したパケットに対するパケット受信処理についての説明は省略する。
【００６５】
最初に、第１受信回路１１２ａは、第１隣接通信装置からパケットを受信すると（ステップＳ１０１）、受信したパケットを第１デコーダ１１４ａに送る（ステップＳ１０２）。
【００６６】
次に、第１デコーダ１１４ａは、受信したパケットがデータパケットであるか否かを判別する（ステップＳ１０３）。
【００６７】
受信したパケットがデータパケットである場合、第１デコーダ１１４ａは、受信したデータパケットの送信先ノード番号が自装置のノード番号であるか否かを判別する（ステップＳ１０４）。
【００６８】
受信したデータパケットの送信先ノード番号が自装置のノード番号である場合、第１デコーダ１１４ａは、受信したパケットのデータ部分を記憶装置１０１に記憶し（ステップＳ１０５）、一連のステップを終了する。第１デコーダ１１４ａは、受信したデータパケットのデータ部分を、受信したパケットのメモリアドレスで指定されたアドレスに記憶する。
【００６９】
一方、受信したデータパケットの送信先ノード番号が自装置のノード番号でない場合、第１デコーダ１１４ａは、受信したデータパケットを第１アービタ１２１ａに送る（ステップＳ１０６）。次に、第１アービタ１２１ａは、受け取ったデータパケットを送信可能な順番になったときに、第１送信回路１２２ａに送る（ステップＳ１０７）。次に、第１送信回路１２２ａは、受け取ったデータパケットを第２隣接通信装置に送信し（ステップＳ１０８）、一連のステップを終了する。このデータパケットは、送信先ノード番号に対応する通信装置に到達するまで各通信装置の間で転送される。
【００７０】
一方、ステップＳ１０３において、受信したパケットが制御パケットであった場合、第１デコーダ１１４ａは、第１構成情報レジスタに記憶された第１ノード番号及び第１接続情報を更新する更新処理を実行し（ステップＳ１０９）、一連のステップを終了する。
【００７１】
図７は、第１デコーダ１１４ａによる更新処理の動作の例を示すフローチャートである。図７に示す動作のフローは、図６に示すフローチャートのステップＳ１０９において実行される。
【００７２】
最初に、第１デコーダ１１４ａは、指定情報レジスタ１１３に記憶された指定情報に基づいて、通信装置１００が指定装置として指定されているか否かを判別する（ステップＳ２０１）。
【００７３】
通信装置１００が指定装置として指定されている場合、第１デコーダ１１４ａは、受信した制御パケットに含まれる第１ノード番号が所定値（例えば１０）以上であるか否かを判別する（ステップＳ２０２）。所定値は、通信システム１が有することができる通信装置の最大数に予め設定される。
【００７４】
第１ノード番号が所定値以上である場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１ノード番号を所定値に更新する（ステップＳ２０３）。次に、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報をリング接続されていることに設定し（ステップＳ２０４）、一連のステップを終了する。
【００７５】
一方、ステップＳ２０１において通信装置１００が指定装置として指定されていなかった場合又はステップＳ２０２において第１ノード番号が所定値未満であった場合、第１デコーダ１１４ａは、処理をステップＳ２０５へ移行する。この場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１ノード番号を、受信した制御パケットに含まれる第１ノード番号をインクリメントした番号に更新する（ステップＳ２０５）。次に、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報を受信したパケットに含まれる第１接続情報に更新し（ステップＳ２０６）、一連のステップを終了する。
【００７６】
第１構成情報レジスタ１１５ａにおいて更新された各情報は、後述する制御パケット送信処理により他の通信装置へ送信される。したがって、ノード番号は、各通信装置で受信されるたびにインクリメントされ、指定装置として指定されている通信装置においてノード番号が所定値以上になったことが検出されると、接続情報はリング接続されていることに設定される。リング接続されていることに設定された接続情報も、後述する制御パケット送信処理により他の通信装置へ送信される。
【００７７】
図８は、通信装置１００による第２更新処理の動作の例を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。なお、第２更新処理は、第１デコーダ１１４ａ及び第２デコーダ１１４ｂのそれぞれにより同様に実行される。以下では、代表して第１デコーダ１１４ａによる第２更新処理についてのみ説明し、第２デコーダ１１４ｂによる第２更新処理についての説明は省略する。
【００７８】
最初に、第１デコーダ１１４ａは、第１受信回路１１２ａが第１隣接通信装置から制御パケットを所定期間受信していない状態になるまで待機する（ステップＳ３０１）。
【００７９】
第１受信回路１１２ａが第１隣接通信装置から制御パケットを所定期間受信していない場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１ノード番号を０に更新する（ステップＳ３０２）。次に、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報をデイジーチェーン接続されていることに設定し（ステップＳ３０３）、処理をステップＳ３０１へ戻す。
【００８０】
このように、特定の通信装置において、所定期間、制御パケットが受信されなかった場合、ノード番号が０に初期化され、接続情報はデイジーチェーン接続されていることに設定される。これらの各情報は、後述する制御パケット送信処理により他の通信装置へ送信される。
【００８１】
図９は、通信装置１００による制御パケット送信処理の動作の例を示すフローチャートである。以下、図９に示したフローチャートを参照しつつ、制御パケット送信処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。なお、制御パケット送信処理は、第２隣接通信装置へ送信する場合と、第１隣接通信装置へ送信する場合とで同様に実行される。以下では、代表して第２隣接通信装置へ送信する場合の制御パケット送信処理についてのみ説明し、第１隣接通信装置へ送信する場合の制御パケット送信処理についての説明は省略する。
【００８２】
最初に、第１構成情報送信回路１１９ａは、第１タイミング生成回路１１８ａからの第１タイミング信号に従って、制御パケットを送信するタイミングになるまで待機する（ステップＳ４０１）。
【００８３】
第１構成情報送信回路１１９ａは、制御パケットを送信するタイミングになると、第１構成情報レジスタ１１５ａから第１ノード番号及び第１接続情報を読み出す。第１構成情報送信回路１１９ａは、読み出した第１ノード番号及び第１接続情報を含み且つパケット種別が制御パケットであるパケットを作成し、第１アービタ１２１ａに送る（ステップＳ４０２）。
【００８４】
次に、第１アービタ１２１ａは、受け取った制御パケットを送信可能な順番になったときに、受け取った制御パケットを第１送信回路１２２ａに送る（ステップＳ４０３）。次に、第１送信回路１２２ａは、受け取った制御パケットを第２隣接通信装置に送信し（ステップＳ４０４）、一連のステップを終了する。
【００８５】
このように、第１送信回路１２２ａは、第１タイミング信号に従ったタイミングで、自発的に、第１構成情報レジスタ１１５ａに記憶された第１ノード番号及び第１接続情報を第２隣接通信装置に送信する。「自発的に送信する」とは、他の通信装置からパケットを受信したタイミング、又は通信システム１で規定される各通信装置に共通のタイミング等の外部から指定されるタイミングでなく、各通信装置により決定される独立したタイミングで送信することを意味する。さらに、第１送信回路１２２ａは、第１タイミングレジスタ１１７ａに記憶された第１制御パケット送信間隔に従って、定期的に、第１ノード番号及び第１接続情報を第２隣接通信装置に送信する。
【００８６】
図１０は、通信装置１００が送信元となるデータパケット送信処理の動作の例を示すフローチャートである。以下、図１０に示したフローチャートを参照しつつ、データパケット送信処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。なお、データパケット送信処理は、第２隣接通信装置へ送信する場合と、第１隣接通信装置へ送信する場合とで同様に実行される。以下では、代表して第２隣接通信装置へ送信する場合のデータパケット送信処理についてのみ説明し、第１隣接通信装置へ送信する場合の制御パケット送信処理についての説明は省略する。
【００８７】
最初に、第１ＤＭＡコントローラ１２０ａは、ＣＰＵ１４０から送信指示を受け付けると（ステップＳ５０１）、記憶装置１０１に記憶されたデータを読み出し、ヘッダを付加してデータパケットを作成し、第１アービタ１２１ａに送る（ステップＳ５０２）。データパケットのヘッダに含まれる送信先ノード番号、送信元ノード番号、パケット種別及びメモリアドレスは、ＣＰＵ１４０により指定される。送信元ノード番号は通信装置１００の第１ノード番号であり、パケット種別はデータパケットである。
【００８８】
次に、第１アービタ１２１ａは、受け取ったデータパケットを送信可能な順番になったときに、第１送信回路１２２ａに送る（ステップＳ５０３）。次に、第１送信回路１２２ａは、受け取ったデータパケットを第２隣接通信装置に送信し（ステップＳ５０４）、一連のステップを終了する。
【００８９】
図１１は、ＣＰＵ１４０による接続状態判定処理の動作の例を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。この動作のフローは、ＣＰＵ１４０により定期的に実行される。なお、ＣＰＵ１４０は、第１構成情報レジスタ１１５ａに記憶された第１接続情報及び第２構成情報レジスタ１１５ｂに記憶された第２接続情報の内、予め定められた何れか一方の情報に基づいて、各通信装置がリング接続されているか否かを判定する。以下では、ＣＰＵ１４０が、第１接続情報に基づいて、各通信装置がリング接続されているか否かを判定する例について説明する。
【００９０】
最初に、判定部１４１は、第１構成情報レジスタ１１５ａから第１接続情報を読み出し、読み出した第１接続情報が、通信システム１に含まれる各通信装置がリング接続されていることを示しているか否かを判定する（ステップＳ６０１）。
【００９１】
第１接続情報が、各通信装置がリング接続されていることを示している場合、判定部１４１は、通信システム１に含まれる各通信装置がリング接続されていると判定し（ステップＳ６０２）、一連のステップを終了する。
【００９２】
前述したように、通信装置１００が指定装置として指定されている場合且つ受信した第１ノード番号が所定値以上である場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１ノード番号を所定値に更新する。この場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報をリング接続されていることに設定する。即ち、判定部１４１は、通信装置１００が指定装置として指定された場合且つ第１デコーダ１１４ａが第１構成情報レジスタ１１５ａに記憶された第１ノード番号を所定値に更新した場合、通信システム１に含まれる各通信装置がリング接続されていると判定する。
【００９３】
また、通信装置１００が指定装置として指定されていなかった場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報を、受信した第１接続情報に更新する。即ち、通信装置１００が指定装置として指定されていなかった場合、第１デコーダ１１４ａは、指定装置として指定された通信装置がリング接続と判定したときに、通信システム１に含まれる各通信装置がリング接続されていると判定する。
【００９４】
一方、第１接続情報が、各通信装置がデイジーチェーン接続されていることを示している場合、判定部１４１は、通信システム１に含まれる各通信装置がデイジーチェーン接続されていると判定する（ステップＳ６０３）。
【００９５】
次に、切断判定部１４２は、判定部１４１が直前に判定した各通信装置の接続状態がリング接続であったか否かを判定する（ステップＳ６０４）。直前に判定した各通信装置の接続状態がリング接続であった場合、切断判定部１４２は、通信システム１に含まれる各通信装置のリング接続が切断されたと判定し（ステップＳ６０５）、一連のステップを終了する。一方、直前に判定した各通信装置の接続状態がリング接続でなかった場合、切断判定部１４２は、通信システム１に含まれる各通信装置は、前回の判定時から継続してデイジーチェーン接続されていたと判定し、一連のステップを終了する。
【００９６】
これにより、通信装置１００は、通信システム１に含まれる各通信装置を接続するケーブルの切断又は何れかの通信装置の故障を検出することが可能となる。
【００９７】
前述したように、第１受信回路１１２ａが第１隣接通信装置から制御パケットを所定期間受信していない場合、第１デコーダ１１４ａは、第１構成情報レジスタ１１５ａに記憶された第１接続情報をデイジーチェーン接続されていることに設定する。即ち、一旦、各通信装置の接続状態がリング接続であると判定されてから、第１接続情報がデイジーチェーン接続に更新されるということは、第１受信回路１１２ａが第１隣接通信装置から制御パケットを所定期間受信していないことを意味する。つまり、判定部１４１は、第１接続情報が、各通信装置がリング接続されていることを示しているときに、第１受信回路１１２ａが第１隣接通信装置から制御パケットを所定期間受信しなかった場合、各通信装置のリング接続が切断されたと判定する。
【００９８】
なお、判定部１４１は、第１接続情報と第２接続情報の両方に基づいて、各通信装置がリング接続されているか否かを判定してもよい。例えば、判定部１４１は、第１接続情報及び第２接続情報の内の少なくとも一方がリング接続を示している場合、リング接続と判定し、第１接続情報と第２接続情報の両方がデイジーチェーン接続を示している場合、デイジーチェーン接続と判定する。または、判定部１４１は、第１接続情報と第２接続情報の両方がリング接続を示している場合、リング接続と判定し、第１接続情報及び第２接続情報の内の少なくとも一方がデイジーチェーン接続を示している場合、デイジーチェーン接続と判定してもよい。
【００９９】
図１２は、ＣＰＵ１４０による通信装置総数算出処理の動作の例を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶装置１０１に記憶されているプログラムに基づき主にＣＰＵ１４０により通信装置１００の各要素と協働して実行される。以下に説明する動作のフローは、ＣＰＵ１４０により定期的に実行される。
【０１００】
最初に、総数算出部１４３は、第１構成情報レジスタ１１５ａに記憶された第１ノード番号及び第２構成情報レジスタ１１５ｂに記憶された第２ノード番号の両方の値が所定期間変化していない状態になるまで待機する（ステップＳ７０１）。
【０１０１】
例えば、通信装置１００は、通信回路１１０に、第１構成情報レジスタ１１５ａに記憶された第１ノード番号及び第２構成情報レジスタ１１５ｂに記憶された第２ノード番号の値の変化を検出する検出回路（不図示）を備える。総数算出部１４３は、その検出回路による検出結果に基づいて、第１ノード番号及び第２ノード番号の両方の値が変化していない状態が所定期間を超えるか否かを判定する。
【０１０２】
第１ノード番号及び第２ノード番号の両方の値が所定期間変化していない場合、総数算出部１４３は、判定部１４１が各通信装置がリング接続されていると判定しているか否かを判定する（ステップＳ７０２）。
【０１０３】
各通信装置がデイジーチェーン接続されている場合、総数算出部１４３は、第１構成情報レジスタ１１５ａに記憶された第１ノード番号と第２構成情報レジスタ１１５ｂに記憶された第２ノード番号の和に基づいて通信システム１内の通信装置の総数を算出する。総数算出部１４３は、第１ノード番号と第２ノード番号の和に１を加算した値を、通信システム１に含まれる通信装置の総数として算出し（ステップＳ７０３）、一連のステップを終了する。
【０１０４】
一方、各通信装置がリング接続されている場合、総数算出部１４３は、通信装置１００が指定装置として指定されているか否かを判定する（ステップＳ７０４）。
【０１０５】
通信装置１００が指定装置として指定されていない場合、総数算出部１４３は、第１構成情報レジスタ１１５ａに記憶された第１ノード番号と第２構成情報レジスタ１１５ｂに記憶された第２ノード番号の和に基づいて通信システム１内の通信装置の総数を算出する。総数算出部１４３は、第１ノード番号から所定値を減算した値と第２ノード番号から所定値を減算した値の和を、通信システム１に含まれる通信装置の総数として算出し（ステップＳ７０５）、一連のステップを終了する。
【０１０６】
一方、通信装置１００が指定装置として指定されている場合、総数算出部１４３は、第１隣接通信装置から受信した第１ノード番号及び第２隣接通信装置から受信した第２ノード番号の内の何れか一方に基づいて通信システム１内の通信装置の総数を算出する。総数算出部１４３は、受信した第１ノード番号又は第２ノード番号に１を加算した値から所定値を減算した値を、通信システム１に含まれる通信装置の総数として算出し（ステップＳ７０６）、一連のステップを終了する。
【０１０７】
このように、通信システム１内の各通信装置は、ノード番号に基づいて、通信システム１に含まれる通信装置の総数を算出することができる。これにより、管理者によって、通信システム１内の各通信装置に、通信装置の総数が設定されることなく、各通信装置は、通信装置の総数を認識することができ、データパケットを送信する際の経路を適切に設定することができる。
【０１０８】
さらに、各通信装置は、自装置のノード番号を認識することができるとともに、通信システム１に含まれる他の通信装置のノード番号を、各通信装置との間に存在する通信装置の数から認識することができる。これにより、管理者によって、通信システム１内の各通信装置に、他の通信装置のノード番号が設定されることなく、各通信装置は、他の通信装置のノード番号を認識することができ、通信相手となる通信装置を適切に設定することができる。
【０１０９】
図１３Ａ〜図１３Ｄ、図１４Ａ〜図１４Ｄ、図１５Ａ〜図１５Ｂ及び図１６Ａ〜図１６Ｄは、通信システム１に含まれる各通信装置のノード番号及び接続情報の変化について説明するための模式図である。以下では、説明を容易にするために、各通信装置が同時に制御パケットを送信した場合の各通信装置の第１ノード番号、第２ノード番号及び第１接続情報の変化について説明する。
【０１１０】
図１３Ａ〜図１３Ｄは、通信システム１に含まれる各通信装置がデイジーチェーン接続されている場合の例を示す。
【０１１１】
図１３Ａは、各通信装置が起動した直後の状態を示す。各通信装置の第１ノード番号及び第２ノード番号は、初期値である０に設定され、第１接続情報は初期値であるデイジーチェーン接続に設定される。
【０１１２】
図１３Ｂは、図１３Ａの状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。左側に接続する通信装置がない通信装置１００ａの第１ノード番号と、右側に接続する通信装置がない通信装置１００ｄの第２ノード番号は０のままである。一方、他の第１ノード番号は、左隣りの通信装置の第１ノード番号（０）をインクリメントした値（１）に更新され、他の第２ノード番号は、右隣りの通信装置の第１ノード番号（０）をインクリメントした値（１）に更新される。
【０１１３】
図１３Ｃは、図１３Ｂの状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。通信装置１００ａの第１ノード番号と通信装置１００ｄの第２ノード番号は０のままである。通信装置１００ｂの第１ノード番号は１となり、通信装置１００ｃ及び通信装置１００ｄの第１ノード番号は２となる。一方、通信装置１００ｃの第２ノード番号は１となり、通信装置１００ｂ及び通信装置１００ａの第１ノード番号は２となる。
【０１１４】
図１３Ｄは、図１３Ｃの状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。通信装置１００ａ、１００ｂ、１００ｃ、１００ｄの第１ノード番号はそれぞれ０、１、２、３となり、第２ノード番号はそれぞれ３、２、１、０となる。以降、各通信装置の第１ノード番号及び第２ノード番号は変化しない。そのため、第１ノード番号は所定値（１０）以上とならず、第１接続情報はデイジーチェーン接続から変化しない。各通信装置において、第１ノード番号と第２ノード番号の和（３）に１を加算した値（４）が、通信装置の総数を示す。
【０１１５】
図１４Ａ〜図１４Ｄ及び図１５Ａ〜図１５Ｂは、通信システム１に含まれる各通信装置がリング接続されている場合の例を示す。この例では、通信装置１００ｂが指定装置として指定されているものとする。
【０１１６】
図１４Ａは、各通信装置が起動した直後の状態を示す。各通信装置の第１ノード番号及び第２ノード番号は、初期値である０に設定され、第１接続情報は初期値であるデイジーチェーン接続に設定される。
【０１１７】
図１４Ｂは、図１４Ａの状態から、各通信装置から隣接する通信装置に対して制御パケットが１０ずつ送信された状態を示す。全ての通信装置の両隣には他の通信装置が接続されているため、各通信装置の第１ノード番号と第２ノード番号は１０になる。
【０１１８】
図１４Ｃは、図１４Ｂの状態から、各通信装置から隣接する通信装置に対して制御パケットが１つずつ送信された状態を示す。指定装置である通信装置１００ｂが受信した第１ノード番号及び第２ノード番号が所定値（１０）以上であるため、通信装置１００ｂの第１ノード番号及び第２ノード番号は所定値（１０）に更新され、第１接続情報はリング接続に更新される。他の通信装置の第１ノード番号及び第２ノード番号は１１に更新される。
【０１１９】
図１４Ｄは、図１４Ｃの状態から、各通信装置から隣接する通信装置に対して制御パケットが１つずつ送信された状態を示す。通信装置１００ｂの第１ノード番号と第２ノード番号は１０のままとなる。通信装置１００ｂの右隣に位置する通信装置１００ｃの第１ノード番号と、通信装置１００ｂの左隣に位置する通信装置１００ａの第２ノード番号は１１のままとなり、他の通信装置の第１ノード番号と第２ノード番号は１２に更新される。また、通信装置１００ｂの右隣に位置する通信装置１００ｃの第１接続情報はリング接続に更新される。
【０１２０】
図１５Ａは、図１４Ｄの状態から、各通信装置から隣接する通信装置に対して制御パケットが１つずつ送信された状態を示す。通信装置１００ａの第１ノード番号と、通信装置１００ｃの第２ノード番号は１３に更新される。また、通信装置１００ｄの第１接続情報はリング接続に更新される。
【０１２１】
図１５Ｂは、図１５Ａの状態から、各通信装置から隣接する通信装置に対して制御パケットが２つずつ送信された状態を示す。全ての通信装置の第１接続情報はリング接続となる。以降、各通信装置の第１ノード番号及び第２ノード番号は変化しない。指定装置である通信装置１００ｂでは、以降に受信する第１ノード番号又は第２ノード番号（１３）に１を加算した値から所定値（１０）を減算した値（４）が通信装置の総数を示す。他の通信装置では、第１ノード番号から所定値（１０）を減算した値と第２ノード番号から所定値（１０）を減算した値の和（４）が通信装置の総数を示す。
【０１２２】
図１６Ａ〜図１６Ｄは、通信システム１に含まれる各通信装置のリング接続が切断される場合の例を示す。
【０１２３】
図１６Ａは、図１５Ｂに示す状態から、通信装置１００ａと通信装置１００ｄの間の接続が切断された状態を示す。左隣の通信装置から制御パケットを所定期間受信しない通信装置１００ａの第１ノード番号と、右隣の通信装置から制御パケットを所定期間受信しない通信装置１００ｄの第２ノード番号は０に更新される。また、通信装置１００ａの第１接続情報はデイジーチェーン接続に更新される。
【０１２４】
図１６Ｂは、図１６Ａに示す状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。通信装置１００ａの第１ノード番号と、通信装置１００ｄの第２ノード番号は０のままであり、通信装置１００ｂの第１ノード番号と通信装置１００ｃの第２ノード番号は１に更新される。また、通信装置１００ｂの第１接続情報はデイジーチェーン接続に更新される。
【０１２５】
図１６Ｃは、図１６Ｂに示す状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。通信装置１００ｃの第１ノード番号と通信装置１００ｂの第２ノード番号は２に更新される。また、通信装置１００ｃの第１接続情報はデイジーチェーン接続に更新される。
【０１２６】
図１６Ｄは、図１６Ｃに示す状態から、各通信装置から隣接する通信装置に対して制御パケットが一つずつ送信された状態を示す。通信装置１００ｄの第１ノード番号と通信装置１００ａの第２ノード番号は３に更新される。全ての通信装置の第１接続情報はデイジーチェーン接続に更新される。以降、各通信装置の第１ノード番号及び第２ノード番号はそれぞれ変化しない。
【０１２７】
以上詳述したように、図６〜図１２に示したシーケンスに従って動作することにより、各通信装置は、一方側に隣接する通信装置から受信したノード番号をインクリメントして他方側に隣接する通信装置に自発的に送信し、ノード番号に基づいて接続状態を判定する。これにより、通信システムの管理者は、複数の通信装置の内から予めマスタとなる装置を、デイジーチェーンの一端のような特定の位置に限定して設定する必要がなくなる。したがって、通信システム１は、通信システムに含まれる各通信装置への管理者による設定を簡易にしつつ、各通信装置がリング接続されているかデイジーチェーン接続されているかを判定することが可能となった。
【０１２８】
これにより、管理者による各通信装置の設定作業の作業時間の短縮が可能となるとともに、設定の人為的誤りを防止することが可能となった。
【０１２９】
また、各通信装置は、自発的に制御パケットを送信するため、通信システム１に新たな通信装置が加えられた場合、又は通信システム１から特定の通信装置が除かれた場合に、各通信装置のノード番号、接続状態、通信装置の総数等の変化が自動的に検出される。
【０１３０】
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、通信装置１００において、ＣＰＵ１４０及び／又は記憶装置１０１は、通信回路１１０外に設けられるのではなく、通信回路１１０内に設けられてもよい。また、データパケット内のデータを記憶する記憶装置１０１は、通信回路１１０外と通信回路１１０内の両方に設けられてもよい。これにより、通信装置１００は、データの種類等によって、データを記憶する領域を柔軟に変更することができ、ユーザはデータを適切に管理することが可能となる。
【０１３１】
また、通信回路１１０において、第１ポート１１１ａ側へデータを送るための構成と、第２ポート１１１ｂ側へデータを送るための構成の内の何れか一方は省略されてもよい。即ち、第１受信回路１１２ａ、第１デコーダ１１４ａ、第１構成情報レジスタ１１５ａ、第１送信間隔変更回路１１６ａ、第１タイミングレジスタ１１７ａ、第１タイミング生成回路１１８ａ及び第１構成情報送信回路１１９ａは省略されてもよい。その場合、第１ＤＭＡコントローラ１２０ａ、第１アービタ１２１ａ及び第１送信回路１２２ａも省略される。または、第２受信回路１１２ｂ、第２デコーダ１１４ｂ、第２構成情報レジスタ１１５ｂ、第２送信間隔変更回路１１６ｂ、第２タイミングレジスタ１１７ｂ、第２タイミング生成回路１１８ｂ及び第２構成情報送信回路１１９ｂが省略されてもよい。その場合、第２ＤＭＡコントローラ１２０ｂ、第２アービタ１２１ｂ及び第２送信回路１２２ｂも省略される。
【０１３２】
また、第１接続情報及び第２接続情報の内の何れか一方は省略されてもよい。例えば、第２接続情報が省略される場合、第２デコーダ１１４ｂは、第２接続情報を更新しない。即ち、第２デコーダ１１４ｂによって図７の更新処理が実施される場合、ステップＳ２０４及びＳ２０６の処理は省略される。また、ステップＳ２０２において、第２デコーダ１１４ｂは、第２ノード番号が所定値以上であるか否かを判別する代わりに、第１接続情報がリング接続されていることに設定されているか否かを判別してもよい。また、図１１に示す接続状態判定処理において、判定部１４１は、第１接続情報に基づいて、通信システム１に含まれる各通信装置がリング接続されているか否かを判定する。
【０１３３】
また、第１接続情報及び第２接続情報の両方が省略されてもよい。その場合、第１デコーダ１１４ａ及び第２デコーダ１１４ｂは、それぞれ第１接続情報及び第２接続情報を更新しない。判定部１４１は、通信装置１００が指定装置として指定されている場合、第１ノード番号又は第２ノード番号に基づいて、通信システム１に含まれる各通信装置がリング接続されているか否かを判定する。その場合でも、指定装置として指定されている通信装置１００は、各通信装置がリング接続されているか否かを判定することができる。
【０１３４】
また、第１送信回路１２２ａ及び第２送信回路１２２ｂは、制御パケットを任意のタイミングで送信すればよく、定期的に送信しなくてもよい。
【０１３５】
また、図１１のステップＳ６０４〜Ｓ６０５に示した、通信システム１に含まれる各通信装置のリング接続が切断されたか否かを判定する処理が省略されてもよい。その場合、ＣＰＵ１４０において切断判定部１４２が省略可能である。
【０１３６】
また、図１２に示した通信装置総数算出処理が省略されてもよい。その場合、ＣＰＵ１４０において総数算出部１４３が省略可能である。
【０１３７】
また、制御パケットは固定の間隔で送信されてもよい。その場合、通信回路１１０において第１送信間隔変更回路１１６ａ及び第２送信間隔変更回路１１６ｂが省略可能である。
【符号の説明】
【０１３８】
１    通信システム
１００ａ〜１００ｄ    通信装置
１０１    記憶装置
１１０    通信回路
１１２ａ    第１受信回路
１１２ｂ    第２受信回路
１１４ａ    第１デコーダ
１１４ｂ    第２デコーダ
１１５ａ    第１構成情報レジスタ
１１５ｂ    第２構成情報レジスタ
１１６ａ    第１送信間隔変更回路
１１６ｂ    第２送信間隔変更回路
１２２ａ    第１送信回路
１２２ｂ    第２送信回路
１４０    ＣＰＵ
１４１    判定部
１４２    切断判定部
１４３    総数算出部
【図１Ａ】
2015231217.tif 000003
【図１Ｂ】
2015231217.tif 000004
【図２】
2015231217.tif 000005
【図３】
2015231217.tif 000006
【図４】
2015231217.tif 000007
【図５】
2015231217.tif 000008
【図６】
2015231217.tif 000009
【図７】
2015231217.tif 000010
【図８】
2015231217.tif 000011
【図９】
2015231217.tif 000012
【図１０】
2015231217.tif 000013
【図１１】
2015231217.tif 000014
【図１２】
2015231217.tif 000015
【図１３Ａ】
2015231217.tif 000016
【図１３Ｂ】
2015231217.tif 000017
【図１３Ｃ】
2015231217.tif 000018
【図１３Ｄ】
2015231217.tif 000019
【図１４Ａ】
2015231217.tif 000020
【図１４Ｂ】
2015231217.tif 000021
【図１４Ｃ】
2015231217.tif 000022
【図１４Ｄ】
2015231217.tif 000023
【図１５Ａ】
2015231217.tif 000024
【図１５Ｂ】
2015231217.tif 000025
【図１６Ａ】
2015231217.tif 000026
【図１６Ｂ】
2015231217.tif 000027
【図１６Ｃ】
2015231217.tif 000028
【図１６Ｄ】
2015231217.tif 000029