(57)【特許請求の範囲】
【請求項１】
自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出する障害検出手段と、
前記障害検出手段により障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定するオートネゴシエーション手段と
を備え、
前記オートネゴシエーション手段は、
前記障害検出手段により障害が検出されない場合、前記他通信装置の識別子と前記自通信装置の動作モードとの組を記憶手段に記憶し、
リンクを確立するときに、前記記憶手段から、当該リンクに係る他通信装置の識別子に対応する前記自通信装置の動作モードを取得し、前記自通信装置の動作モードが、取得した動作モードとなるように、当該リンクに係る他通信装置との間で、前記自通信装置と当該リンクに係る他通信装置との動作モードを決定する
通信装置。
【請求項２】
前記障害検出手段は、リンクの切断を検出したとき、または、リンクにおける通信のエラー率が所定値以上のときに、当該リンクの障害として検出する
請求項１に記載の通信装置。
【請求項３】
前記自通信装置と前記他通信装置との間のリンクは、前記自通信装置と前記他通信装置のうちの、動作モードがスレーブの通信装置が、動作モードがマスタの通信装置から受信したデータより抽出されたクロックを用いたクロック同期を行うことにより、確立される
請求項１または２に記載の通信装置。
【請求項４】
自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出し、
前記他通信装置との間に確立されたリンクの障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定し、
前記他通信装置との間に確立されたリンクの障害が検出されない場合、前記他通信装置の識別子と前記自通信装置の動作モードとの組を記憶手段に記憶し、
リンクを確立するときに、前記記憶手段から、当該リンクに係る他通信装置の識別子に対応する前記自通信装置の動作モードを取得し、前記自通信装置の動作モードが、取得した動作モードとなるように、当該リンクに係る他通信装置との間で、前記自通信装置と当該リンクに係る他通信装置との動作モードを決定する
通信方法。
【請求項５】
前記他通信装置との間に確立されたリンクの障害の有無を検出する場合、リンクの切断を検出したとき、または、リンクにおける通信のエラー率が所定値以上のときに、当該リンクの障害として検出する
請求項４に記載の通信方法。
【請求項６】
前記自通信装置と前記他通信装置との間のリンクは、前記自通信装置と前記他通信装置のうちの、動作モードがスレーブの通信装置が、動作モードがマスタの通信装置から受信したデータより抽出されたクロックを用いたクロック同期を行うことにより、確立される
請求項４または５に記載の通信方法。
【請求項７】
コンピュータに、
自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出し、
前記他通信装置との間に確立されたリンクの障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定し、
前記他通信装置との間に確立されたリンクの障害が検出されない場合、前記他通信装置の識別子と前記自通信装置の動作モードとの組を記憶手段に記憶し、
リンクを確立するときに、前記記憶手段から、当該リンクに係る他通信装置の識別子に対応する前記自通信装置の動作モードを取得し、前記自通信装置の動作モードが、取得した動作モードとなるように、当該リンクに係る他通信装置との間で、前記自通信装置と当該リンクに係る他通信装置との動作モードを決定する
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及び、プログラムに関し、特に、マスタ／スレーブで定義される動作モードに従ってリンクを確立し、通信を行うシステムにおける、通信装置、通信方法、及び、プログラムに関する。
【背景技術】
【０００２】
ギガビットイーサネット（登録商標）のクロック同期方法として、接続される２つの装置の一方の動作モードをマスタ、他方をスレーブに設定し、スレーブ装置が、マスタ装置から受信したデータからクロックを抽出し、同期をとる方法が用いられている。
【０００３】
図９は、通信装置における、ギガビットイーサネットに対応したインタフェース部８１０の構成例を示すブロック図である。図９に示すように、インタフェース部８１０は、コネクタ８１１、及び、ＰＨＹ（Physical Layer Device）８１２を含む。ＰＨＹ８１２は、送信部９１０、受信部９２０、クロック抽出部９３０、位相同期部９４０、及び、オートネゴシエーション部９８０を含む。スレーブ装置のクロック抽出部９３０は、マスタ装置から受信したデータからクロックを抽出する。位相同期部９４０は、抽出されたクロックをもとに同期クロックを生成し、送信部９１０、及び、受信部９２０に供給する。オートネゴシエーション部９８０は、接続される２つの装置間で、オートネゴシエーションを行い、どちらの装置をマスタ、スレーブに設定するかを決定する。
【０００４】
なお、関連技術として、特許文献１には、ギガビットイーサネットのオートネゴシエーションを行う伝送装置が開示されている。また、特許文献２には、通信の状態に応じて、オートネゴシエーションを再実行する通信装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１１０４５７号公報
【特許文献２】特開２０１１−２２３５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のクロック同期方法では、マスタ装置のジッタ性能や、スレーブ装置の位相同期部９４０の特性が、通信品質に大きな影響を及ぼす。マスタ装置からの送信データのジッタが大きい場合、スレーブ装置でのクロック抽出が正常に行われず、クロックの同期がとれないため、通信エラー、または、リンクダウンが発生する。また、スレーブ装置の位相同期部９４０の特性が悪い場合にも、正常な同期クロックが生成されず、同様に、通信エラー、または、リンクダウンが発生する。
【０００７】
本発明の目的は、上述の課題を解決し、ギガビットイーサネットのように、２つの通信装置が、マスタ／スレーブで定義される動作モードに従ってリンクを確立し、通信を行うシステムにおいて、通信品質が向上した通信装置、通信方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の通信装置は、自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出する障害検出手段と、前記障害検出手段により障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定するオートネゴシエーション手段とを備える。
【０００９】
本発明の通信方法は、自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出し、前記他通信装置との間に確立されたリンクの障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定する。
【００１０】
本発明のプログラムは、コンピュータに、自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って前記他通信装置との間に確立されたリンクの障害の有無を検出し、前記他通信装置との間に確立されたリンクの障害が検出された場合に、前記自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、前記他通信装置との間で、前記自通信装置と前記他通信装置との動作モードを決定する処理を実行させる。
【発明の効果】
【００１１】
本発明の効果は、２つの通信装置が、マスタ／スレーブで定義される動作モードに従ってリンクを確立し、通信を行うシステムにおいて、通信品質を向上できることである。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、通信装置１００の全体的な構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、インタフェース部１１０の構成を示すブロック図である。
【図４】本発明の第１の実施の形態における、通信装置１００の処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における、現在動作モード情報３０１の例を示す図である。
【図６】本発明の第２の実施の形態における、インタフェース部１１０の構成を示すブロック図である。
【図７】本発明の第２の実施の形態における、通信装置１００の処理を示すフローチャートである。
【図８】本発明の第２の実施の形態における、正常時動作モード情報３０２の例を示す図である。
【図９】通信装置における、ギガビットイーサネットに対応したインタフェース部８１０の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
（第１の実施の形態）
次に、本発明の第１の実施の形態について説明する。
【００１４】
はじめに、本発明の第１の実施の形態の構成について説明する。図２は、本発明の第１の実施の形態における、通信装置１００の全体的な構成を示すブロック図である。図２は、通信装置１００がルータである場合の例を示している。
【００１５】
図２を参照すると、本発明の第１の実施の形態の通信装置１００は、インタフェース部１１０、ＣＰＵ（Central Processing Unit）１２０、ＲＡＭ（Random Access Memory）１３０、及び、ＲＯＭ（Read Only Memory）１４０を含む。
【００１６】
ここで、インタフェース部１１０は、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）のネットワークへの接続を行う。インタフェース部１１０は、例えば、ＲＪ−４５コネクタ等、イーサネットケーブルが接続されるコネクタ１１１、及び、ギガビットイーサネット（１０００Ｂａｓｅ−Ｔ／ＩＥＥＥ８０２．３ａｂ）の規格に従って、送信波形の生成、及び、データの送受信を行うＰＨＹ（Physical Layer Device）１１２を含む。ＣＰＵ１２０は、例えば、ネットワーク間でのデータ転送を行うためのプログラムを実行する。
【００１７】
図３は、本発明の第１の実施の形態における、インタフェース部１１０の構成を示すブロック図である。図３を参照すると、インタフェース部１１０のＰＨＹ１１２は、送信部２１０、受信部２２０、クロック抽出部２３０、位相同期部２４０、リンク状態監視部２５０、エラーカウント部２６０、障害検出部２７０、及び、オートネゴシエーション部２８０を含む。
【００１８】
ここで、送信部２１０は、コネクタ１１１を介してイーサネットケーブルにより接続された他の通信装置（相手装置）へデータを送信する。受信部２２０は、相手装置からのデータを受信する。クロック抽出部２３０は、自通信装置１００（自装置）の動作モードがスレーブ（スレーブ装置）の場合、動作モードがマスタである相手装置（マスタ装置）から受信したデータからクロックを抽出する。位相同期部２４０は、抽出されたクロックをもとに同期クロックを生成し、送信部２１０、及び、受信部２２０に供給する。
【００１９】
リンク状態監視部２５０は、相手装置との間で確立したリンクの状態を監視する。エラーカウント部２６０は、リンクにおける通信エラー数をカウントする。障害検出部２７０は、リンクの状態、エラー率をもとに、リンク障害の有無を検出する。
【００２０】
オートネゴシエーション部２８０は、オートネゴシエーション実行部２８１、再オートネゴシエーション制御部２８２、及び、記憶部２８３を含む。オートネゴシエーション実行部２８１は、相手装置との間で、オートネゴシエーションを実行し、自装置の動作モードを決定する。再オートネゴシエーション制御部２８２は、リンク障害が検出された場合に、自装置の動作モードを変更し、オートネゴシエーション実行部２８１に、再オートネゴシエーションの実行を指示する。記憶部２８３は、現在動作モード情報３０１を記憶する。図５は、本発明の第１の実施の形態における、現在動作モード情報３０１の例を示す図である。現在動作モード情報３０１は、自装置の現在の動作モード（現在動作モード）を含む。
【００２１】
なお、障害検出部２７０とオートネゴシエーション部２８０の全部、または、一部は、ＣＰＵとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、障害検出部２７０とオートネゴシエーション部２８０の全部、または、一部が、上述のＣＰＵ１２０上で動作するプログラムとＲＡＭ１３０やＲＯＭ１４０により実現されてもよい。例えば、障害検出部２７０、再オートネゴシエーション制御部２８２がＣＰＵ１２０上のプログラム、記憶部２８３がＲＡＭ１３０により実現されてもよい。
【００２２】
次に、本発明の第１の実施の形態におけるオートネゴシエーションについて説明する。
【００２３】
上述のように、ギガビットイーサネットでは、接続される２つの通信装置の一方の動作モードをマスタ、他方をスレーブに設定し、スレーブ装置が、マスタ装置から受信したデータからクロックを抽出する。動作モード（マスタ／スレーブ）の設定は、２つの通信装置がイーサネットケーブルで接続されたときのオートネゴシエーションの中で行われる。
【００２４】
オートネゴシエーションでは、２つの通信装置の各々が、自装置に設定を希望する動作モード（マスタ／スレーブ）を指定したネゴシエーション通知を、相手装置に送信する。また、ネゴシエーション通知では、ネゴシエーションの方法として「自動設定」または「強制設定」が指定される。ここで、「自動設定」は、指定した動作モードでの設定を希望するが、２つの通信装置が希望する動作モードが同じ場合は、動作モードを変更可能であることを示す。２つの通信装置が希望する動作モードが同じ場合、例えば、乱数の大小等により、動作モードが決定される。「強制設定」は、指定した動作モードのみの設定が可能であることを示す。
【００２５】
例えば、装置Ａが「自動設定：マスタ」を送信し、装置Ｂが「自動設定：スレーブ」を送信した場合、装置Ａがマスタ、装置Ｂがスレーブに設定される。また、装置Ａと装置Ｂが「自動設定：マスタ」を送信した場合、乱数により、例えば、装置Ａがマスタ、装置Ｂがスレーブに設定される。また、装置Ａが「強制設定：マスタ」を送信し、装置Ｂが「自動設定：マスタ」を送信した場合、装置Ａがマスタ、装置Ｂがスレーブに設定される。
【００２６】
なお、本発明の実施の形態では、各インタフェース部１１０について、イーサネットケーブルにより相手装置と接続したときの最初のオートネゴシエーションで、「自動設定：マスタ」「自動設定：スレーブ」うちのどちらを送信するかを、管理者等が、予め、設定していると仮定する。
【００２７】
また、本発明の実施の形態では、オートネゴシエーションにより決定された動作モードに従って、相手装置との間でクロック同期が行われ、通信可能となることを、当該相手装置との間の「リンクの確立（リンクアップ）」と定義する。また、ジッタ等の影響により、クロックはずれが発生し、通信不可能となることを場合、「リンクの切断（リンクダウン）」と定義する。
【００２８】
次に、本発明の第１の実施の形態における通信装置１００の動作について説明する。図４は、本発明の第１の実施の形態における、通信装置１００の処理を示すフローチャートである。
【００２９】
はじめに、インタフェース部１１０が、イーサネットケーブルにより、相手装置と接続される（ステップＳ１０１）。
【００３０】
次に、オートネゴシエーション実行部２８１は、相手装置との間で、オートネゴシエーションを実行する（ステップＳ１０２）。ここで、オートネゴシエーション実行部２８１は、管理者等による設定に従って、ネゴシエーション通知「自動設定：マスタ」または「自動設定：スレーブ」を送信して、オートネゴシエーションを行い、自装置と相手装置との動作モードを決定する。
【００３１】
例えば、オートネゴシエーション実行部２８１は、自装置を「スレーブ」、相手装置を「マスタ」に決定する。この場合、自装置において、相手装置から受信したデータから抽出されたクロックをもとに、クロック同期が行われ、リンクが確立する。
【００３２】
再オートネゴシエーション制御部２８２は、障害検出部２７０を介して、相手装置との間でリンクが確立（リンクアップ）しているかどうかを確認する（ステップＳ１０３）。
【００３３】
リンクアップしている場合（ステップＳ１０３／Ｙｅｓ）、再オートネゴシエーション制御部２８２は、オートネゴシエーション実行部２８１から、ステップＳ１０２で決定された自装置の動作モードを取得する（ステップＳ１０４）。再オートネゴシエーション制御部２８２は、取得した動作モードを現在動作モード情報３０１の現在動作モードに設定する。
【００３４】
例えば、再オートネゴシエーション制御部２８２は、図５に示すように、現在動作モード情報３０１の現在動作モードに、オートネゴシエーション実行部２８１から取得した動作モード「スレーブ」を設定する。
【００３５】
次に、障害検出部２７０は、所定の周期で、リンク状態監視部２５０の監視状態をもとに、相手装置との間でリンクが切断（リンクダウン）しているかどうかを確認する（ステップＳ１０５）。リンクダウンしていない場合（ステップＳ１０５／Ｎｏ）、障害検出部２７０は、エラーカウント部２６０から取得した通信エラー数をもとにエラー率を算出し、エラー率が所定の閾値以上かどうかを確認する（ステップＳ１０６）。ここで、エラー率は、例えば、リンクアップしてからの累積受信パケット数に対する累積エラー数の割合である。また、通信エラー率は、直近の所定時間内の受信パケット数に対するエラー数の割合でもよい。
【００３６】
ステップＳ１０５で、リンクダウンしている場合（ステップＳ１０５／Ｙｅｓ）、または、ステップＳ１０５で、エラー率が所定の閾値以上の場合（ステップＳ１０６／Ｙｅｓ）、障害検出部２７０は、「リンク障害あり」と判断する。この場合、再オートネゴシエーション制御部２８２は、現在動作モード情報３０１の現在動作モードを変更する（ステップＳ１０７）。ここで、再オートネゴシエーション制御部２８２は、現在動作モード情報３０１の現在動作モードに「スレーブ」が設定されている場合は、「マスタ」に変更し、「マスタ」が設定されている場合は、「スレーブ」に変更する。
【００３７】
例えば、自装置において、相手装置から受信したデータのジッタが大きくなったために、クロックが正常に抽出されず、同期はずれが発生し、障害検出部２７０でリンクダウンによるリンク障害が検出されたと仮定する。この場合、再オートネゴシエーション制御部２８２は、現在動作モード情報３０１の現在動作モードを「マスタ」に変更する。
【００３８】
再オートネゴシエーション制御部２８２は、変更後の動作モードを指定した「強制設定」によるオートネゴシエーションを、オートネゴシエーション実行部２８１に指示する。オートネゴシエーション実行部２８１は、変更後の動作モードを指定して、ネゴシエーション通知「強制設定」を送信して、再度、オートネゴシエーションを行う（ステップＳ１０８）。
【００３９】
例えば、オートネゴシエーション実行部２８１は、「強制設定：マスタ」による再オートネゴシエーションを行う。この結果、オートネゴシエーション実行部２８１は、自装置を「マスタ」、相手装置を「スレーブ」に決定する。これにより、相手装置において、自装置から受信したデータから抽出されたクロックをもとに、クロック同期が行われ、再度、リンクが確立する。
【００４０】
以降、ステップＳ１０５からステップＳ１０８が繰り返し実行される。
【００４１】
例えば、上述のように、自装置が「マスタ」、相手装置が「スレーブ」に設定された後に、障害検出部２７０によりリンク障害が検出されない場合（リンクダウンが発生しておらず、エラー率が所定の閾値未満の場合）、当該動作モードで、通信が続けられる。さらに、その後、再び障害検出部２７０により障害が検出された場合、オートネゴシエーション実行部２８１が「強制設定：スレーブ」による再オートネゴシエーションを行うことにより、自装置が「スレーブ」、相手装置が「マスタ」に設定される。
【００４２】
なお、ステップＳ１０５からステップＳ１０８の繰り返し回数が、所定の回数以上となった場合は、処理を終了してもよい。
【００４３】
以上により、本発明の第１の実施の形態の動作が完了する。
【００４４】
なお、本発明の第１の実施の形態の構成においては、通信方式がギガビットイーサネット（１０００Ｂａｓｅ−Ｔ／ＩＥＥＥ８０２．３ａｂ）の場合を例に、構成、及び、動作を説明したが、動作モード（マスタ／スレーブ）に従って、リンク確立を行うものであれば、通信方式は他の方式でもよい。
【００４５】
また、本発明の第１の実施の形態の構成においては、通信装置１００がルータである場合を例に説明したが、動作モード（マスタ／スレーブ）に従って、リンク確立を行うインタフェースを備えるものであれば、通信装置１００は他の装置でもよい。
【００４６】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００４７】
図１を参照すると、通信装置１００は、障害検出部２７０、及び、オートネゴシエーション部２８０を含む。障害検出部２７０は、自通信装置と他通信装置のうちの一方がマスタ、他方がスレーブとなるように設定された動作モードに従って他通信装置との間に確立されたリンクの障害の有無を検出する。オートネゴシエーション部２８０は、障害検出部２７０により障害が検出された場合に、自通信装置の動作モードがスレーブからマスタ、または、マスタからスレーブに変更されるように、他通信装置との間で、自通信装置と他通信装置との動作モードを決定する。
【００４８】
本発明の第１の実施の形態によれば、２つの通信装置が、マスタ／スレーブで定義される動作モードに従ってリンクを確立し、通信を行うシステムにおいて、通信品質を向上できる。その理由は、リンク障害が検出された場合に、オートネゴシエーション部２８０が、自装置の動作モードがマスタからスレーブ、または、スレーブからマスタに変更されるように、相手装置との間で再オートネゴシエーションを行うためである。これにより、動作モードに従って行われるクロック同期の性能が向上し、同期はずれに起因したリンクダウンや通信エラーの発生が抑制される。
【００４９】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００５０】
本発明の第２の実施の形態においては、相手装置と正常に通信できたときの動作モードを正常時動作モード情報３０２として記憶し、当該正常時動作モード情報３０２を用いて、再オートネゴシエーションを行う点において、本発明の第１の実施の形態と異なる。
【００５１】
なお、本発明の第２の実施の形態においては、相手装置の識別子として、ＭＡＣ（Media Access Control）アドレスを用いる。
【００５２】
はじめに、本発明の第２の実施の形態の構成について説明する。図６は、本発明の第２の実施の形態における、インタフェース部１１０の構成を示すブロック図である。図６を参照すると、本発明の第２の実施の形態におけるＰＨＹ１１２は、第１の実施の形態におけるＰＨＹ１１２の構成に加えて、ＭＡＣアドレス抽出部２９０を含む。
【００５３】
ＭＡＣアドレス抽出部２９０は、相手装置から受信したデータから、当該相手装置のＭＡＣアドレスを抽出する。
【００５４】
また、記憶部２８３は、現在動作モード情報３０１に加えて、正常時動作モード情報３０２を記憶する。図８は、本発明の第２の実施の形態における、正常時動作モード情報３０２の例を示す図である。正常時動作モード情報３０２は、相手装置のＭＡＣアドレス毎に、当該ＭＡＣアドレスの相手装置との間で確立したリンクが正常であったときの自装置の動作モード（正常時動作モード）を含む。
【００５５】
再オートネゴシエーション制御部２８２は、正常時動作モード情報３０２をもとに、オートネゴシエーション実行部２８１に、再オートネゴシエーションの実行を指示する。
【００５６】
次に、本発明の第２の実施の形態における通信装置１００の動作について説明する。図７は、本発明の第２の実施の形態における、通信装置１００の処理を示すフローチャートである。
【００５７】
ここでは。相手装置のＭＡＣアドレスが「11:11:11:11:11:11」である場合を例に、動作を説明する。
【００５８】
はじめに、インタフェース部１１０が、イーサネットケーブルにより、相手装置と接続される（ステップＳ２０１）。次に、オートネゴシエーション実行部２８１は、相手装置との間で、オートネゴシエーションを実行する（ステップＳ２０２）。
【００５９】
例えば、オートネゴシエーション実行部２８１は、自装置を「スレーブ」、相手装置を「マスタ」に決定する。
【００６０】
再オートネゴシエーション制御部２８２は、障害検出部２７０を介して、相手装置との間でリンクが確立（リンクアップ）しているかどうかを確認する（ステップＳ２０３）。
【００６１】
リンクアップしている場合（ステップＳ２０３／Ｙｅｓ）、再オートネゴシエーション制御部２８２は、ＭＡＣアドレス抽出部２９０から、相手装置のＭＡＣアドレスを取得する。そして、再オートネゴシエーション制御部２８２は、正常時動作モード情報３０２に、相手装置のＭＡＣアドレスが登録されているかどうかを確認する（ステップＳ２０４）。
【００６２】
相手装置のＭＡＣアドレスが登録されている場合（ステップＳ２０４／Ｙｅｓ）、再オートネゴシエーション制御部２８２は、正常時動作モード情報３０２から、相手装置のＭＡＣアドレスに対応する正常時動作モードを取得する。再オートネゴシエーション制御部２８２は、取得した正常時動作モードを指定した「強制設定」によるオートネゴシエーションを、オートネゴシエーション実行部２８１に指示する。オートネゴシエーション実行部２８１は、指示された正常時動作モードを指定して、ネゴシエーション通知「強制設定」を送信して、再度、オートネゴシエーションを行う（ステップＳ２０５）。また、再オートネゴシエーション制御部２８２は、取得した正常時動作モードを現在動作モード情報３０１の現在動作モードに設定する。
【００６３】
一方、相手装置のＭＡＣアドレスが登録されていない場合（ステップＳ２０４／Ｎｏ）、再オートネゴシエーション制御部２８２は、第１の実施の形態（ステップＳ１０４）と同様に、自装置の動作モードを取得する（ステップＳ２０６）。
【００６４】
例えば、相手装置のＭＡＣアドレス「11:11:11:11:11:11」が正常時動作モード情報３０２に登録されていない場合、再オートネゴシエーション制御部２８２は、図５に示すように、現在動作モード情報３０１の現在動作モードに、オートネゴシエーション実行部２８１から取得した動作モード「スレーブ」を設定する。
【００６５】
次に、障害検出部２７０は、所定の周期で、リンク状態監視部２５０の監視状態をもとに、相手装置との間でリンクが切断（リンクダウン）しているかどうかを確認する（ステップＳ２０７）。リンクダウンしていない場合（ステップＳ２０７／Ｎｏ）、障害検出部２７０は、エラーカウント部２６０から取得した通信エラー数をもとにエラー率を算出し、エラー率が所定の閾値以上かどうかを確認する（ステップＳ２０８）。
【００６６】
ステップＳ２０７で、リンクダウンしている場合（ステップＳ２０７／Ｙｅｓ）、または、ステップＳ２０７で、通信エラー数が所定の閾値以上の場合（ステップＳ２０８／Ｙｅｓ）、障害検出部２７０は、「リンク障害あり」と判断する。そして、本発明の第１の実施形態（ステップＳ１０７、Ｓ１０８）と同様に、再オートネゴシエーション制御部２８２が、現在動作モード情報３０１の現在動作モードを変更し（ステップＳ２０９）、オートネゴシエーション実行部２８１が、変更後の動作モードを指定して、再度、オートネゴシエーションを行う（ステップＳ２１０）。
【００６７】
例えば、障害検出部２７０でリンク障害が検出された場合、再オートネゴシエーション制御部２８２は、図５に示す現在動作モード情報３０１の現在動作モードを「マスタ」に変更する。オートネゴシエーション実行部２８１は、「強制設定：マスタ」による再オートネゴシエーションを行い、自装置を「マスタ」、相手装置を「スレーブ」に決定する。これにより、相手装置において、自装置から受信したデータから抽出されたクロックをもとに、クロック同期が行われ、再度、リンクが確立する。
【００６８】
一方、ステップＳ２０８で、通信エラー数が所定の閾値未満の場合（ステップＳ２０８／Ｎｏ）、障害検出部２７０は、「リンク障害なし」と判断する。この場合、再オートネゴシエーション制御部２８２は、現在の動作モードにより確立されたリンクは正常であると判断し、正常時動作モード情報３０２を更新する（ステップＳ２１１）。ここで、再オートネゴシエーション制御部２８２は、ＭＡＣアドレス抽出部２９０から相手装置のＭＡＣアドレスを取得し、当該ＭＡＣアドレスと現在の動作モードとの組を正常時動作モード情報３０２に登録する。
【００６９】
例えば、上述のように、自装置が「マスタ」、相手装置が「スレーブ」に設定された後に、障害検出部２７０により障害が検出されない場合（リンクダウンが発生しておらず、エラー率が所定の閾値未満の場合）、オートネゴシエーション実行部２８１は、相手装置のＭＡＣアドレス「11:11:11:11:11:11」と動作モード「マスタ」の組を、図８のように、正常時動作モード情報３０２に登録する。
【００７０】
以降、ステップＳ２０７からステップＳ２１１が繰り返し実行される。そして、相手装置の電源が一旦オフとなった後にオンとなった場合や、イーサネットケーブルが一旦抜かれた後に再接続された場合、ステップＳ２０１からの処理が、再び、実行される。
【００７１】
例えば、ＭＡＣアドレス「11:11:11:11:11:11」の相手装置と再度接続された場合、相手装置のＭＡＣアドレスは、図８のように、正常時動作モード情報３０２に登録されている。従って、ステップＳ２０５において、再オートネゴシエーション制御部２８２は、ＭＡＣアドレス「11:11:11:11:11:11」に対応する正常時動作モード「マスタ」を指定した「強制設定」によるオートネゴシエーションを、オートネゴシエーション実行部２８１に指示する。そして、オートネゴシエーション実行部２８１は、再オートネゴシエーションを行い、自装置を「マスタ」、相手装置を「スレーブ」に決定する。再オートネゴシエーション制御部２８２は、現在動作モード情報３０１の現在動作モードに、動作モード「マスタ」を設定する。
【００７２】
以降、障害検出部２７０によりリンク障害が検出されない場合、当該動作モードで、通信が続けられる。
【００７３】
なお、本発明の第２の実施の形態では、再オートネゴシエーション制御部２８２が、リンク障害が検出されない場合に、正常時動作モード情報３０２を更新している（ステップＳ２１１）が、再オートネゴシエーション制御部２８２は、リンク障害が検出されない状態が所定時間以上継続した場合に、正常時動作モード情報３０２を更新してもよい。また、再オートネゴシエーション制御部２８２は、リンク障害後の再オートネゴシエーション（ステップＳ２１０）で、リンク障害が検出されなくなった場合（リンクの状態が改善された場合）に、正常時動作モード情報３０２を更新してもよい。
【００７４】
また、本発明の第２の実施の形態では、相手装置の識別子として、ＭＡＣアドレスを用いているが、イーサネットケーブルによって接続された相手装置が識別できれば、ＭＡＣアドレス以外の識別子を用いてもよい。
【００７５】
本発明の第２の実施の形態によれば、第１の実施の形態に比べて、さらに、短時間で、適切な動作モードが設定できる。その理由は、オートネゴシエーション部２８０が、相手装置と正常に通信できたときの動作モードを示す正常時動作モード情報３０２を用いて、再オートネゴシエーションを行うためである。
【００７６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７７】
１００    通信装置
１１０    インタフェース部
１１１    コネクタ
１１２    ＰＨＹ
１２０    ＣＰＵ
１３０    ＲＡＭ
１４０    ＲＯＭ
２１０    送信部
２２０    受信部
２３０    クロック抽出部
２４０    位相同期部
２５０    リンク状態監視部
２６０    エラーカウント部
２７０    障害検出部
２８０    オートネゴシエーション部
２８１    オートネゴシエーション実行部
２８２    再オートネゴシエーション制御部
２８３    記憶部
２９０    ＭＡＣアドレス抽出部
３０１    現在動作モード情報
３０２    正常時動作モード情報
８１０    インタフェース部
８１２    ＰＨＹ
８１１    コネクタ
９１０    送信部
９２０    受信部
９３０    クロック抽出部
９４０    位相同期部
９８０    オートネゴシエーション部
【図１】
0005576421.tif 000002
【図２】
0005576421.tif 000003
【図３】
0005576421.tif 000004
【図４】
0005576421.tif 000005
【図５】
0005576421.tif 000006
【図６】
0005576421.tif 000007
【図７】
0005576421.tif 000008
【図８】
0005576421.tif 000009
【図９】
0005576421.tif 000010