通信機器、マスタスレーブ確定方法、およびコンピュータプログラム
【課題】2台のモデムなどの通信機器の役割の確定を従来よりも簡単に行う。
【解決手段】モデム10Aに、マスタとしてモデム10Bを相手にリンクを確立するためのメッセージのやり取りを行うマスタ側メッセージ交換処理部105と、スレーブとしてモデム10Bを相手にメッセージのやり取りを行うスレーブ側メッセージ交換処理部106と、マスタ側メッセージ交換処理部105およびスレーブ側メッセージ交換処理部106に、交互にかつランダムな時間間隔でメッセージのやり取りを行わせる、マスタスレーブ決定部101と、マスタ側メッセージ交換処理部105によってメッセージのやり取りが正常に完了した場合はモデム10A自身をマスタに確定し、スレーブ側メッセージ交換処理部106によってメッセージのやり取りが正常に完了した場合はモデム10A自身をスレーブに確定し、リンクの確立のための回線設定を行うリンク確立処理部107と、を設ける。
【解決手段】モデム10Aに、マスタとしてモデム10Bを相手にリンクを確立するためのメッセージのやり取りを行うマスタ側メッセージ交換処理部105と、スレーブとしてモデム10Bを相手にメッセージのやり取りを行うスレーブ側メッセージ交換処理部106と、マスタ側メッセージ交換処理部105およびスレーブ側メッセージ交換処理部106に、交互にかつランダムな時間間隔でメッセージのやり取りを行わせる、マスタスレーブ決定部101と、マスタ側メッセージ交換処理部105によってメッセージのやり取りが正常に完了した場合はモデム10A自身をマスタに確定し、スレーブ側メッセージ交換処理部106によってメッセージのやり取りが正常に完了した場合はモデム10A自身をスレーブに確定し、リンクの確立のための回線設定を行うリンク確立処理部107と、を設ける。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、SHDSL方式のモデムなどの通信機器および当該通信機器における役割の確定方法などに関する。
【背景技術】
【0002】
従来、様々な通信方式によって2台のモデムなどの通信機器同士で通信が行われている。例えば、Symmetric Digital Subscriber Line(SDSL)方式によると、2台のモデムが、1対の電話線を介して、一方のモデムから他方のモデムへの通信および反対方向の通信を、同じ速度で行う。さらに、Symmetric High-speed Digital Subscriber Line(SHDSL)方式によると、SDSL方式よりも高速に通信を行うことができるほか、電話線の長さをSDSL方式よりも長くすることができる。
【0003】
電話線などを介して2台のモデムなどの通信機器によって通信を行う際は、通常、一方の通信機器をマスタに設定し、もう一方の通信機器をスレーブに設定する(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】ラド・ジャパン株式会社ウェブサイト、”ASM−31”、URL「http://www.raddata.co.jp/Article/0,6583,39296-2-Wire_Multirate_Short_Range_Modem,00.html」、2010年1月24日検索
【発明の概要】
【発明が解決しようとする課題】
【0005】
工場などの広い敷地において、モデムなどの通信機器を2台、離れたところに固定的に設置し構内伝送のための通信を行う場合は、運用保守者が予め、通信環境の構築を計画する。この際に、運用保守者は、一方の通信機器をマスタに設定し、もう一方の通信機器をスレーブに設定する。
【0006】
しかし、例えば災害が発生した場合など、一時的に2つの拠点同士を結ぶ通信環境を構築する必要がある場合は、2台の通信機器のうちの一方をマスタに設定しもう一方をスレーブに設定する作業を速やかに行わなければならない。
【0007】
ところが、従来の方法では、運用保守者による計画および設定の手間が掛かり、通信を行う環境が整うまでに時間が掛かってしまう。
【0008】
本発明は、このような問題点に鑑み、2台のモデムなどの通信機器の役割の確定を従来よりも簡単に行うことができるようにすることを、目的とする。
【課題を解決するための手段】
【0009】
本発明の一形態に係る通信機器は、他の通信機器と通信を行う通信機器であって、マスタとして前記他の通信機器を相手に役割を確立するためのメッセージのやり取りを行うマスタ処理手段と、スレーブとして前記他の通信機器を相手に前記メッセージのやり取りを行うスレーブ処理手段と、前記マスタ処理手段および前記スレーブ処理手段に、交互にかつランダムな時間間隔で前記メッセージのやり取りを行わせる、切換手段と、前記マスタ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信機器の役割を前記マスタに確定し、前記スレーブ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信装置の役割を前記スレーブに確定する、確定手段と、を有する。
【発明の効果】
【0010】
本発明によると、2台のモデムなどの通信機器の役割の確定を従来よりも簡単に行うことができる。
【図面の簡単な説明】
【0011】
【図1】広域ネットワークの全体的な構成の例を示す図である。
【図2】モデムのハードウェア構成の例を示す図である。
【図3】モデムの機能的構成の例を示す図である。
【図4】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図5】リンクの確立の際のモデムの全体的な処理の流れの例を説明するフローチャートである。
【図6】リンクの確立の際のモデムの全体的な処理の流れの例を説明するフローチャートである。
【図7】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図8】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図9】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図10】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図11】モデムのプラットフォームの例を示す図である。
【図12】接続用ソフトウェアによって実現される機能的構成の例を示す図である。
【図13】マスタモード処理部の例を示す図である。
【図14】スレーブモード処理部の例を示す図である。
【発明を実施するための形態】
【0012】
図1は広域ネットワーク30の全体的な構成の例を示す図、図2はモデム10のハードウェア構成の例を示す図、図3はモデム10の機能的構成の例を示す図、図4はハンドシェーキングメッセージのやり取りの例を示す図である。
【0013】
広域ネットワーク30は、図1に示すように、複数のローカルエリアネットワーク40を有する。以下、各ローカルエリアネットワーク40をそれぞれ「ローカルエリアネットワーク40A」、「ローカルエリアネットワーク40B」、「ローカルエリアネットワーク40C」、…と区別して記載することがある。
【0014】
ローカルエリアネットワーク40は、モデム10、ハブ11、および1台または複数台の端末装置12などを有する。
【0015】
ハブ11は、そのハブ11が属するローカルエリアネットワーク40内のモデム10と各端末装置12との間の通信を中継する。
【0016】
モデム10は、Symmetric Digital Subscriber Line(SDSL)またはSymmetric High-speed Digital Subscriber Line(SHDSL)などの通信方式によって他のモデム10と通信を行う。また、モデム10は、Local Area Network(LAN)または無線LANなどの通信方式によって端末装置12と通信を行う。
【0017】
さらに具体的には、モデム10は、他のモデム10とメタル回線などの電話線によって繋がれている。さらに、モデム10は、LANケーブルなどによってハブ11と繋がれている。なお、モデム10にハブ11の機能が備えられている場合もある。
【0018】
そして、モデム10は、そのモデム10が属するローカルエリアネットワーク40内の端末装置12と、他のローカルエリアネットワーク40内の端末装置12との間でやり取りされるデータを、当該他のローカルエリアネットワーク40に属する他のモデム10などを介して中継する。
【0019】
端末装置12は、ワープロ、電子メール、Webブラウザ、またはIP電話などのアプリケーションを備えた装置である。端末装置12として、パーソナルコンピュータまたはワークステーションなどが用いられる。
【0020】
モデム10は、図2に示すように、Micro Processing Unit(MPU)10p、Random Access Memory(RAM)10q、Read Only Memory(ROM)10r、液晶パネル10s、操作ボタン10t、および通信部10uなどを有する。
【0021】
通信部10uは、LANケーブルを介して端末装置12から送られてきたデジタル信号をアナログ信号に変調し、電話線を介して他のモデム10へ送信する。また、電話線を介して他のモデム10から送られてきたアナログ信号をデジタル信号に復調し、LANケーブルを介して端末装置12へ送信する。
【0022】
操作ボタン10tは、ユーザがモデム10に対して指令およびデータを入力するためのボタンである。
【0023】
液晶パネル10sは、モデム10の状態のほか、ユーザが入力した指令またはデータなどを表示する。
【0024】
また、操作ボタン10tと液晶パネル10sは、同等の機能を有する端末装置をモデム10の外部に接続する形態であっても構わない。
【0025】
ROM10rには、図3に示すようなマスタスレーブ決定部101、乱数発生部102、マスタモード切換処理部103、スレーブ側切換処理部104、マスタ側メッセージ交換処理部105、スレーブ側メッセージ交換処理部106、およびリンク確立処理部107などを実現するためのプログラムおよびデータが記憶されている。これらのプログラムおよびデータはMPU10pによって実行される。
【0026】
図3の各部によると、モデム10を他のモデム10に新たに接続する際の処理を従来よりも容易に行うことができる。
【0027】
ところで、一般的に、2台のモデム10を接続する際は、いずれか一方がマスタの役割を果たし、もう一方がスレーブの役割を果たすことを運用保守者が計画、設定しなければならない。
【0028】
接続つまりリンクの確立に際して、マスタとスレーブとの間でやり取りされるメッセージは、図4に示すように、最初は、マスタ側から発信される。すなわち、最初に、マスタは、特定の内容のメッセージMG1を、電話線を介してスレーブへ発信(送信)する。
【0029】
スレーブは、メッセージMG1を受信すると、それに対する応答のメッセージとして特定の内容を示すメッセージMG2をマスタへ発信する。以下、同様に、マスタおよびスレーブは、通信方式に応じてメッセージのやり取りを行う。そして、メッセージのやり取りがすべて完了したら、その時の役割に応じて従来通りの回線などに関する設定を行うことで、マスタおよびスレーブの間でリンクが確立される。
【0030】
次に、図3に示すモデム10の各部の処理内容について、詳細に説明する。
【0031】
マスタスレーブ決定部101は、モデム10自身がマスタとして動作するのかスレーブとして動作するのかを決定する。以下、マスタとして動作するモードを「マスタモード」と記載し、スレーブとして動作するモードを「スレーブモード」と記載する。
【0032】
マスタスレーブ決定部101は、乱数発生部102と連携し、モデム10自身のモードをマスタモードおよびスレーブモードのいずれにするのかを、次のように決定する。
【0033】
モデム10の電源がオンになると、マスタスレーブ決定部101は、マスタモードおよびスレーブモードのうちの予め決められた方を、モデム10自身のモードに決定する。または、乱数を発生させることによって、どちらのモードにするのかを決めてもよい。
【0034】
乱数発生部102は、マスタスレーブ決定部101によってモードが決定されるごとに、所定の範囲の乱数を発生させる。この乱数は、後述するようにモードを継続する秒数を表すのに用いられる。
【0035】
所定の範囲の下限値は、マスタとスレーブとがモードを確定する際にハンドシェーキングメッセージ(Handshaking Massage)のやり取りをすべて完了するのに必要な時間以上であることが、望ましい。例えば、ハンドシェーキングメッセージのやり取りを行うのに必要な時間が2〜3秒であれば、下限値を「3」ないし「5」程度に設定しておく。
【0036】
一方、所定の範囲の上限値は、任意の値で構わないが、大きすぎないほうがよい。例えば、「20」ないし「60」程度に設定しておく。
【0037】
さらに、マスタスレーブ決定部101は、モードを決定した後、乱数発生部102が発生させた乱数分の時間(秒)が経過したら、モードを、現在とは別のモードに決定し直す。
【0038】
さらに、マスタスレーブ決定部101がモードを決定し直した後も、乱数発生部102は乱数を発生させる。そして、マスタスレーブ決定部101は、その乱数分の時間(秒)が経過したら、モードを、現在とは別のモードに決定し直す。
【0039】
したがって、マスタスレーブ決定部101および乱数発生部102によると、モデム10のモードが、ランダムな時間間隔でマスタモード、スレーブモード、マスタモード、スレーブモード、…、と決定される。または、ランダムな時間間隔でスレーブモード、マスタモード、スレーブモード、マスタモード、…、と決定される。なお、決定の処理は、他のモデム10とのハンドシェーキングメッセージのやり取りが正常に完了したと判断できたら中止する。
【0040】
マスタモード切換処理部103は、マスタスレーブ決定部101によってモードがマスタモードに決定されまたは決定し直されたタイミングで、モデム10自身のモードをマスタモードに切り換える。
【0041】
スレーブ側切換処理部104は、マスタスレーブ決定部101によってモードがスレーブモードに決定されまたは決定し直されたタイミングで、モデム10自身のモードをスレーブモードに切り換える。
【0042】
マスタ側メッセージ交換処理部105は、モデム10のモードがマスタモード切換処理部103によってマスタモードに切り換えられたタイミングで、メッセージMG1をスレーブへ発信する。さらに、通信方式に従って、スレーブからメッセージを受信し特定のメッセージをスレーブへ発信するなど、スレーブとの間でメッセージ(ハンドシェーキングメッセージ)のやり取りを行う。なお、メッセージのやり取りについては、図4で説明した通りである。
【0043】
スレーブ側メッセージ交換処理部106は、モデム10のモードがスレーブ側切換処理部104によってスレーブモードに切り換えられたタイミングで、マスタからメッセージMG1が送信されてくるのを待つ。そして、メッセージMG1を受信すると、通信方式に従って、図4で説明したように、マスタとの間でメッセージ(ハンドシェーキングメッセージ)のやり取りを行う。
【0044】
リンク確立処理部107は、接続相手である他のモデム10との間でのハンドシェーキングメッセージのやり取りが正常に完了したことで、モードが確定できたと判断し、当該他のモデム10とのリンクの確立を完了するための回線の設定などの処理を行う。
【0045】
図5および図6はリンクの確立の際のモデム10の全体的な処理の流れの例を説明するフローチャート、図7ないし図10はハンドシェーキングメッセージのやり取りの例を示す図である。
【0046】
次に、図1に示すローカルエリアネットワーク40Aのモデム10がローカルエリアネットワーク40Bのモデム10と未だ接続されておらず、これから新たに接続する場合を例に、図3の各部の処理の手順を、図5および図6に示すフローチャートを参照しながら説明する。以下、ローカルエリアネットワーク40Aおよびローカルエリアネットワーク40Bそれぞれのモデム10を「モデム10A」および「モデム10B」と区別して記載する。
【0047】
ローカルエリアネットワーク40Aにいるユーザは、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム10Aに繋げる。さらに、モデム10Aの電源をオンにする。
【0048】
すると、モデム10Aにおいて、マスタスレーブ決定部101は、モデム10Aのモードをマスタモードおよびスレーブモードのうちのいずれかに決定する(図5の#71)。マスタモードに決定された場合は(#72でYes)、乱数発生部102は、所定の範囲の乱数を発生させる(#73)。乱数の発生の処理と前後してまたは並行して、マスタスレーブ決定部101は、ハードウェアの設定値などをリセットし(#74)、マスタモード切換処理部103は、モデム10Aのモードをマスタモードに設定する(#75)。
【0049】
マスタ側メッセージ交換処理部105は、マスタとして、モデム10Bを相手にハンドシェーキングメッセージのやり取りを行う(#77)。したがって、マスタ側メッセージ交換処理部105は、最初のメッセージであるメッセージMG1をモデム10Bへ発信する。
【0050】
モデム10Bがスレーブとして動作している場合は、メッセージMG1がモデム10Bによって受信されるので、マスタ側メッセージ交換処理部105は、ハンドシェーキングメッセージのやり取りを開始することができる。しかし、そうでない場合は、開始することができない。
【0051】
そこで、マスタ側メッセージ交換処理部105は、ステップ#73で発生した乱数に対応する時間だけ、ハンドシェーキングメッセージのやり取りを試行する。つまり、マスタ側メッセージ交換処理部105は、メッセージMG1を定期的に(例えば、0.1〜0.5秒ごとに)発信する。
【0052】
そして、時間内にハンドシェーキングメッセージのやり取りが完了できた場合は(#78でYes)、リンク確立処理部107はモデム10Bがスレーブとして動作していると判断し、これによりモデム10Aのモードをマスタに確定する(#79)。そして、モデム10Aは、従来通り、回線などに関する種々の設定を行う(#80)。
【0053】
一方、時間内にハンドシェーキングメッセージのやり取りを完了できなかった場合は(#78でNo、#76でYes)、マスタスレーブ決定部101は、モデム10Aのモードをスレーブモードに決定し直し、各部は図6に示す処理を適宜実行する。また、電源がオンになって最初にモデム10Aのモードをスレーブモードに決定した場合も(#72でNo)、各部は図6に示す処理を実行する。
【0054】
乱数発生部102は、所定の範囲の乱数を発生させる(#81)。乱数の発生の処理と前後してまたは並行して、マスタスレーブ決定部101は、ハードウェアの設定値などをリセットし(#82)、スレーブ側切換処理部104は、モデム10Aのモードをスレーブモードに設定する(#83)。
【0055】
スレーブ側メッセージ交換処理部106は、スレーブとして、モデム10Bを相手にハンドシェーキングメッセージのやり取りを行う(#85)。したがって、スレーブ側メッセージ交換処理部106は、最初のメッセージであるメッセージMG1がモデム10Bから送信されてくるのを待つ。
【0056】
モデム10Bがマスタとして動作している場合は、メッセージMG1が送信されてくるので、スレーブ側メッセージ交換処理部106は、メッセージMG1を受信したらハンドシェーキングメッセージのやり取りを開始することができる。しかし、そうでない場合は、開始することができない。
【0057】
そこで、スレーブ側メッセージ交換処理部106は、ステップ#81で発生した乱数に対応する時間だけ、ハンドシェーキングメッセージのやり取りを試行する。つまり、メッセージMG1をその時間だけ待ち続ける。
【0058】
そして、時間内にハンドシェーキングメッセージのやり取りが完了できた場合は(#86でYes)、リンク確立処理部107はモデム10Bがマスタとして動作していると判断し、これによりモデム10Aのモードをスレーブに確定する(#87)。そして、モデム10Aは、従来通り、回線などに関する種々の設定を行う(#88)。
【0059】
一方、時間内にハンドシェーキングメッセージのやり取りを完了できなかった場合(#86でNo、#84でYes)は、マスタスレーブ決定部101は、モデム10Aのモードをマスタモードに決定し直し、各部は図5に示すステップ#74〜#80の処理を適宜実行する。
【0060】
ローカルエリアネットワーク40Bにいるユーザも同様に、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム10Bに繋げる。さらに、モデム10Bの電源をオンにする。
【0061】
すると、モデム10Bも、モデム10Aを相手に、図5および図6に示す各処理を適宜実行する。
【0062】
これにより、モデム10Aおよびモデム10Bそれぞれのモードがランダムに変わる。したがって、図7または図8に示すように、一方のモデム10がマスタモードでありもう一方のモデム10がスレーブモードである時間帯が生じる。そして、この時間帯に、モデム10Aおよびモデム10Bはハンドシェーキングメッセージのやり取りを行い、モードを確定させることができる。
【0063】
なお、図9または図10に示すように、ハンドシェーキングメッセージのやり取りを行っている途中で一方のモデム10のモードの切換が行われると、ハンドシェーキングメッセージのやり取りを完了することができずモードを確定できない。しかし、このような場合も、モデム10Aおよびモデム10Bそれぞれのモードがランダムな時間間隔で変わる。よって、モデム10Aおよびモデム10Bは、ハンドシェーキングメッセージのやり取りの機会を再度得ることができ、モードの確定を図ることができる。
【0064】
本実施例によると、ユーザは、2台のモデム10のマスタおよびスレーブの役割分担を、事前の計画を行うことなく従来よりも容易に行うことができる。
【0065】
〔SHDSL対応のモデムの例〕
図11はモデム50のプラットフォームの例を示す図、図12は接続用ソフトウェア563によって実現される機能的構成の例を示す図、図13はマスタモード処理部504の例を示す図、図14はスレーブモード処理部505の例を示す図である。
【0066】
次に、モデム10としてSHDSL対応のモデム50を用いかつ既存のドライバなどを用いる場合の実施例を説明する。
【0067】
広域ネットワーク30の全体的な構成は、前に図1に示した通りである。モデム50のハードウェアの構成も、前に図2に示したモデム10のハードウェアの構成と基本的に同じである。つまり、図11に示すように、モデム50は、MPU50p、RAM50q、ROM50r、液晶パネル50s、操作ボタン50t、および通信部50uなどを有する。
【0068】
ただし、モデム50のROM50rには、図11に示すように、物理レイヤ制御用ファームウェア561、ドライバ562、および接続用ソフトウェア563が記憶されている。
【0069】
物理レイヤ制御用ファームウェア561は、SHDSLおよびイーサネット(登録商標)に従って通信が行われるように各ハードウェアを制御するためのプログラムである。さらに、物理レイヤ制御用ファームウェアには、Application Program Interface(API)が用意されている。
【0070】
ドライバ562は、物理レイヤ制御用ファームウェア561に用意されているAPIの関数(機能)を適宜呼び出すなどしてモデム50のハードウェアを制御するプログラムである。
【0071】
物理レイヤ制御用ファームウェア561およびドライバ562は、モデム50のベンダが予め用意したものである。機種によっては、物理レイヤ制御用ファームウェア561とドライバ562とが1組のソフトウェア(ファームウェア)として一体的に構成される場合もある。
【0072】
ところで、SHDSLで使用する電話線(2BASE−TL)の規格は、Institute of Electrical and Electronics Engineers(IEEE)802.3によって規定されている。したがって、物理レイヤ制御用ファームウェア561およびドライバ562は、IEEE802.3に準拠している。そして、ドライバ562には、IEEE802.3で規定されるレジスタが備わっている。
【0073】
接続用ソフトウェア563は、モデム50自身を他のモデム50に新たに接続する際の処理を従来よりも容易に行うためのソフトウェアである。つまり、図3に示した各部と基本的に同じ役割を果たす。
【0074】
しかし、図11の例は、図3に示した各部の機能を、接続用ソフトウェア563だけでなく、物理レイヤ制御用ファームウェア561およびドライバ562によって実現する。
【0075】
接続用ソフトウェア563には、図12に示すようなマスタスレーブ決定部501、リセット指令部502、マスタスレーブ切換部503、マスタモード処理部504、およびスレーブモード処理部505などを実現するためのプログラムおよびデータが含まれている。これらのプログラムは、MPU50pによって実行される。
【0076】
次に、図12に示すモデム50の各部の処理内容などについて、説明する。なお、図3で説明した事項と共通する事項については、説明を省略する。
【0077】
マスタスレーブ決定部501は、図3のマスタスレーブ決定部101と同様に、モデム50自身のモードをマスタモードとするのかスレーブモードとするのかを決定する。
【0078】
リセット指令部502は、マスタスレーブ決定部501によってモードの決定がなされるごとに、ハードウェアの設定値などをリセットする。リセットは、例えば、リセット用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、行えばよい。
【0079】
マスタスレーブ切換部503は、マスタスレーブ決定部501がモードをマスタモードに決定した場合は、マスタモード処理部504を有効にして、スレーブモード処理部505を無効にする。一方、マスタスレーブ決定部501がモードをスレーブモードに決定した場合は、マスタスレーブ切換部503は、スレーブモード処理部505を有効にして、マスタモード処理部504を無効にする。
【0080】
マスタモード処理部504は、図13に示すように、マスタモード設定指令部571、モード確定処理開始指令部572、乱数発生部573、モード確定チェック部574、および回線設定指令部575などを有する。このような構成により、マスタモード処理部504は、マスタとして他のモデム50と接続するための処理を行う。この処理は、マスタスレーブ切換部503によってマスタモード処理部504が有効に切り換えられたタイミングで開始される。
【0081】
マスタモード設定指令部571は、モデム50自身のモードをマスタモードに設定する処理を、ドライバ562または物理レイヤ制御用ファームウェア561に行わせる。この際に、マスタモード設定指令部571は、マスタモードへの切換用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定すればよい。すると、ドライバ562または物理レイヤ制御用ファームウェア561は、モードをマスタモードに設定する。後述するスレーブモード設定指令部581(図14参照)によるスレーブモードの設定の場合も、同様である。
【0082】
モード確定処理開始指令部572は、マスタモードへの設定の完了後、マスタとしてハンドシェーキングメッセージのやり取りを開始するようにドライバ562に対して指令する。指令は、IEEE802.3のReg6.16つまり「45.2.6.6 10P/2B aggregation discovery control register (Register 6.16)」というレジスタの「Discovery Operation (Bit [1:0])」に「Get(BitVal=10)」を設定することによって、行えばよい。すると、ドライバ562および物理レイヤ制御用ファームウェア561によって通信部50uなどが制御され、最初のメッセージつまりメッセージMG1が相手方へ発信される。
【0083】
乱数発生部573は、マスタモードに設定されるごとに、所定の範囲の乱数を発生させる。
【0084】
モード確定チェック部574は、マスタモードに設定されてから乱数発生部573が発生させた乱数分の時間(秒)が経過するまでの間、他のモデム50とのリンクが確立されたか否かを、次のようにチェックする。
【0085】
モード確定チェック部574は、IEEE802.3のReg3.60つまり「45.2.3.17 10P/2B capability register (register 3.60)」というレジスタの「Remote PAF supported Bit[11]」の値をドライバ562から読み出す。そして、モード確定チェック部574は、読み出した値が「link partner supports PAF(BitVal=1)」に変化したことでハンドシェーキングメッセージのやり取りが正常に完了したと判断し、モードが確定されたと判定する。そうでなければ、モードが確定されていないと判定する。
【0086】
ここで、自身と他のモデム50は、前記IEEE802.3のReg3.60の「PAF available Bit[12]」の値が「PAF supported(BitVal=1)」であることが前提である。(PAF:PME Aggregation Functionの略称であり、SHDSLチップでは一般的に実装されている機能である。)
回線設定指令部575は、モードが確定されたとモード確定チェック部574によって判定(検知)されたら、モデム50自身のモードをマスタモードとして回線設定を行う。その設定は、例えば、回線設定用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、モデム50自身がマスタとして動作するための、回線などに関する種々の設定を行えばよい。
【0087】
図12に戻って、スレーブモード処理部505は、図14に示すように、スレーブモード設定指令部581、乱数発生部582、モード確定チェック部583、および回線設定指令部584などを有する。このような構成により、スレーブモード処理部505は、スレーブとして他のモデム50と接続するための処理を行う。この処理は、マスタスレーブ切換部503によってスレーブモード処理部505が有効に切り換えられたタイミングで開始される。
【0088】
スレーブモード設定指令部581は、モデム50自身のモードをスレーブモードに設定する処理をドライバ562または物理レイヤ制御用ファームウェア561に行わせる。
【0089】
乱数発生部582は、スレーブモードに設定されるごとに、所定の範囲の乱数を発生させる。
【0090】
モード確定チェック部583は、スレーブモードに設定されてから乱数発生部573が発生させた乱数分の時間(秒)が経過するまでの間、他のモデム50とのリンクが確立されたか否かをチェックする。チェックの方法は、前に説明したモード確定チェック部574によるチェックの方法と、同様である。つまり、モード確定チェック部583は、IEEE802.3のReg3.60の「Remote PAF supported Bit[11]」の値が「link partner supports PAF(BitVal=1)」に変化したことでハンドシェーキングメッセージのやり取りが正常に完了したと判断し、モードが確定されたと判定する。そうでなければ、モードが確定されていないと判定する。
【0091】
回線設定指令部584は、モードが確定されたとモード確定チェック部583によって判定(検知)されたら、モデム50自身のモードをスレーブモードとして回線設定を行う。その設定は、例えば、回線設定指令部575と同様、回線設定用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、モデム50自身がスレーブとして動作するための、回線などに関する種々の設定を行えばよい。
【0092】
図12に戻って、マスタスレーブ決定部501は、乱数発生部573または乱数発生部582が発生させた乱数に対応する時間が経過してもモード確定チェック部574またはモード確定チェック部583がモード確定を検知しなかった場合に、モデム50自身のモードを、現在のモードとは反対のモードに決定し直す。
【0093】
このような構成により、モデム50のモードは、所定の範囲のランダムな時間間隔でマスタモード、スレーブモード、マスタモード、スレーブモード、…、と決定される。または、同様の時間間隔でスレーブモード、マスタモード、スレーブモード、マスタモード、…、と決定される。そして、他のモデム50とのハンドシェーキングメッセージのやり取りが正常に完了したら、モードが確定したこととなり決定の処理が中止される。
【0094】
モデム50の全体的な処理の流れは、基本的に、前に図5および図6に示すフローチャートで説明した通りである。以下、モデム50において既存のドライバなどを用いた場合の各ステップの処理について、説明する。
【0095】
ローカルエリアネットワーク40Aにはモデム50としてモデム50Aが備えられている。一方、ローカルエリアネットワーク40Bにはモデム50としてモデム50Bが備えられている。モデム50Aとモデム50Bとは未だ繋がれておらず、これから接続が試みられる。
【0096】
ローカルエリアネットワーク40Aにいるユーザは、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム50Aに繋げる。さらに、モデム50Aの電源をオンにする。
【0097】
すると、モデム50Aは、モデム10Aと同様の処理を実行する。つまり、モデム50Aにおいて、マスタスレーブ決定部501、リセット指令部502、およびマスタスレーブ切換部503は、ランダムな時間間隔でモデム50Aのモードをマスタモードおよびスレーブモードのいずれかに繰り返し切り換える(図5の#71〜#75、図6の#81〜#83)。
【0098】
マスタモード処理部504は、マスタモードである間、マスタとしてモデム50Bとのモードの確定を試みる(#77)。この際に、マスタモード処理部504は、Reg6.16の「Discovery Operation (Bit [1:0])」に「Get(BitVal=10)」を設定する。これにより、物理レイヤ制御用ファームウェア561およびドライバ562によって通信部50uが制御され、メッセージMG1がモデム50Bへ送信される。メッセージMG1がモデム50Bによって受信されない場合は、スレーブモードに切り換えられるまで定期的にメッセージMG1がモデム50Aからモデム50Bへ送信される。
【0099】
そして、スレーブモードに切り換わるまでに、メッセージMG1がモデム50Bによって受信され、ハンドシェーキングメッセージのやり取りが正常に完了したら(#78でYes)、モデム50Aの役割がマスタに確定し、回線設定を行うことでリンクが確立する(#79、#80)。以後、モデム50Aはマスタとしてモデム50Bと通信を行う。なお、モードの確定の検知は、Reg3.60の「Remote PAF supported Bit[11]」の値をチェックすることによって行うことができる。
【0100】
一方、スレーブモードである間、スレーブモード処理部505は、スレーブとしてモデム50Bとのモードの確定を試みる(#85)。この際に、モデム50BからメッセージMG1が送信されてくるのを待つ。
【0101】
そして、マスタモードに切り換わるまでに、メッセージMG1がモデム50Bから届き、ハンドシェーキングメッセージのやり取りが正常に完了したら(#86でYes)、モデム50Aの役割がスレーブに確定する(#87、#88)、以後、モデム50Aはスレーブとしてモデム50Bと通信を行う。スレーブモードにおけるモードの確定の検知も、Reg3.60の「Remote PAF supported Bit[11]」の値をチェックすることによって行うことができる。
【0102】
モデム50Bも同様に、モデム50Aを相手に、図5および図6に示した手順で、上に説明した各処理を適宜実行する。
【0103】
本実施例によると、予め用意されている、IEEE802.3に規定されるレジスタを用いることによって簡単に、2台のモデム10のマスタおよびスレーブの役割分担を行うことができる。
【0104】
上述の各実施例では、マスタモードを継続する時間およびスレーブモードを継続する時間を、モードの決定または再決定の際に決定したが、それ以外の決定方法を用いてもよい。例えば、モデム10、50は、モードの決定または再決定の後、ハンドシェーキングメッセージのやり取りをすべて完了するのに要する時間が経過したら、所定の時間(例えば、1秒)を経過するごとに乱数を発生させる。そして、発生させた乱数が所定の値であれば、モードを決定し直す。そうでなければ、モードを継続する。
【0105】
その他、広域ネットワーク30、ローカルエリアネットワーク40、モデム10、50の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【0106】
10、50 モデム(通信機器)
105 マスタ側メッセージ交換処理部(マスタ処理手段)
106 スレーブ側メッセージ交換処理部(スレーブ処理手段)
101、501 マスタスレーブ決定部(切換手段)
102 乱数発生部(切換手段)
103 マスタモード切換処理部(切換手段)
104 スレーブ側切換処理部(切換手段)
107 リンク確立処理部(確定手段)
503 マスタスレーブ切換部(切換手段)
504 マスタモード処理部(マスタ処理手段)
505 スレーブモード処理部(スレーブ処理手段)
【技術分野】
【0001】
本発明は、SHDSL方式のモデムなどの通信機器および当該通信機器における役割の確定方法などに関する。
【背景技術】
【0002】
従来、様々な通信方式によって2台のモデムなどの通信機器同士で通信が行われている。例えば、Symmetric Digital Subscriber Line(SDSL)方式によると、2台のモデムが、1対の電話線を介して、一方のモデムから他方のモデムへの通信および反対方向の通信を、同じ速度で行う。さらに、Symmetric High-speed Digital Subscriber Line(SHDSL)方式によると、SDSL方式よりも高速に通信を行うことができるほか、電話線の長さをSDSL方式よりも長くすることができる。
【0003】
電話線などを介して2台のモデムなどの通信機器によって通信を行う際は、通常、一方の通信機器をマスタに設定し、もう一方の通信機器をスレーブに設定する(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】ラド・ジャパン株式会社ウェブサイト、”ASM−31”、URL「http://www.raddata.co.jp/Article/0,6583,39296-2-Wire_Multirate_Short_Range_Modem,00.html」、2010年1月24日検索
【発明の概要】
【発明が解決しようとする課題】
【0005】
工場などの広い敷地において、モデムなどの通信機器を2台、離れたところに固定的に設置し構内伝送のための通信を行う場合は、運用保守者が予め、通信環境の構築を計画する。この際に、運用保守者は、一方の通信機器をマスタに設定し、もう一方の通信機器をスレーブに設定する。
【0006】
しかし、例えば災害が発生した場合など、一時的に2つの拠点同士を結ぶ通信環境を構築する必要がある場合は、2台の通信機器のうちの一方をマスタに設定しもう一方をスレーブに設定する作業を速やかに行わなければならない。
【0007】
ところが、従来の方法では、運用保守者による計画および設定の手間が掛かり、通信を行う環境が整うまでに時間が掛かってしまう。
【0008】
本発明は、このような問題点に鑑み、2台のモデムなどの通信機器の役割の確定を従来よりも簡単に行うことができるようにすることを、目的とする。
【課題を解決するための手段】
【0009】
本発明の一形態に係る通信機器は、他の通信機器と通信を行う通信機器であって、マスタとして前記他の通信機器を相手に役割を確立するためのメッセージのやり取りを行うマスタ処理手段と、スレーブとして前記他の通信機器を相手に前記メッセージのやり取りを行うスレーブ処理手段と、前記マスタ処理手段および前記スレーブ処理手段に、交互にかつランダムな時間間隔で前記メッセージのやり取りを行わせる、切換手段と、前記マスタ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信機器の役割を前記マスタに確定し、前記スレーブ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信装置の役割を前記スレーブに確定する、確定手段と、を有する。
【発明の効果】
【0010】
本発明によると、2台のモデムなどの通信機器の役割の確定を従来よりも簡単に行うことができる。
【図面の簡単な説明】
【0011】
【図1】広域ネットワークの全体的な構成の例を示す図である。
【図2】モデムのハードウェア構成の例を示す図である。
【図3】モデムの機能的構成の例を示す図である。
【図4】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図5】リンクの確立の際のモデムの全体的な処理の流れの例を説明するフローチャートである。
【図6】リンクの確立の際のモデムの全体的な処理の流れの例を説明するフローチャートである。
【図7】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図8】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図9】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図10】ハンドシェーキングメッセージのやり取りの例を示す図である。
【図11】モデムのプラットフォームの例を示す図である。
【図12】接続用ソフトウェアによって実現される機能的構成の例を示す図である。
【図13】マスタモード処理部の例を示す図である。
【図14】スレーブモード処理部の例を示す図である。
【発明を実施するための形態】
【0012】
図1は広域ネットワーク30の全体的な構成の例を示す図、図2はモデム10のハードウェア構成の例を示す図、図3はモデム10の機能的構成の例を示す図、図4はハンドシェーキングメッセージのやり取りの例を示す図である。
【0013】
広域ネットワーク30は、図1に示すように、複数のローカルエリアネットワーク40を有する。以下、各ローカルエリアネットワーク40をそれぞれ「ローカルエリアネットワーク40A」、「ローカルエリアネットワーク40B」、「ローカルエリアネットワーク40C」、…と区別して記載することがある。
【0014】
ローカルエリアネットワーク40は、モデム10、ハブ11、および1台または複数台の端末装置12などを有する。
【0015】
ハブ11は、そのハブ11が属するローカルエリアネットワーク40内のモデム10と各端末装置12との間の通信を中継する。
【0016】
モデム10は、Symmetric Digital Subscriber Line(SDSL)またはSymmetric High-speed Digital Subscriber Line(SHDSL)などの通信方式によって他のモデム10と通信を行う。また、モデム10は、Local Area Network(LAN)または無線LANなどの通信方式によって端末装置12と通信を行う。
【0017】
さらに具体的には、モデム10は、他のモデム10とメタル回線などの電話線によって繋がれている。さらに、モデム10は、LANケーブルなどによってハブ11と繋がれている。なお、モデム10にハブ11の機能が備えられている場合もある。
【0018】
そして、モデム10は、そのモデム10が属するローカルエリアネットワーク40内の端末装置12と、他のローカルエリアネットワーク40内の端末装置12との間でやり取りされるデータを、当該他のローカルエリアネットワーク40に属する他のモデム10などを介して中継する。
【0019】
端末装置12は、ワープロ、電子メール、Webブラウザ、またはIP電話などのアプリケーションを備えた装置である。端末装置12として、パーソナルコンピュータまたはワークステーションなどが用いられる。
【0020】
モデム10は、図2に示すように、Micro Processing Unit(MPU)10p、Random Access Memory(RAM)10q、Read Only Memory(ROM)10r、液晶パネル10s、操作ボタン10t、および通信部10uなどを有する。
【0021】
通信部10uは、LANケーブルを介して端末装置12から送られてきたデジタル信号をアナログ信号に変調し、電話線を介して他のモデム10へ送信する。また、電話線を介して他のモデム10から送られてきたアナログ信号をデジタル信号に復調し、LANケーブルを介して端末装置12へ送信する。
【0022】
操作ボタン10tは、ユーザがモデム10に対して指令およびデータを入力するためのボタンである。
【0023】
液晶パネル10sは、モデム10の状態のほか、ユーザが入力した指令またはデータなどを表示する。
【0024】
また、操作ボタン10tと液晶パネル10sは、同等の機能を有する端末装置をモデム10の外部に接続する形態であっても構わない。
【0025】
ROM10rには、図3に示すようなマスタスレーブ決定部101、乱数発生部102、マスタモード切換処理部103、スレーブ側切換処理部104、マスタ側メッセージ交換処理部105、スレーブ側メッセージ交換処理部106、およびリンク確立処理部107などを実現するためのプログラムおよびデータが記憶されている。これらのプログラムおよびデータはMPU10pによって実行される。
【0026】
図3の各部によると、モデム10を他のモデム10に新たに接続する際の処理を従来よりも容易に行うことができる。
【0027】
ところで、一般的に、2台のモデム10を接続する際は、いずれか一方がマスタの役割を果たし、もう一方がスレーブの役割を果たすことを運用保守者が計画、設定しなければならない。
【0028】
接続つまりリンクの確立に際して、マスタとスレーブとの間でやり取りされるメッセージは、図4に示すように、最初は、マスタ側から発信される。すなわち、最初に、マスタは、特定の内容のメッセージMG1を、電話線を介してスレーブへ発信(送信)する。
【0029】
スレーブは、メッセージMG1を受信すると、それに対する応答のメッセージとして特定の内容を示すメッセージMG2をマスタへ発信する。以下、同様に、マスタおよびスレーブは、通信方式に応じてメッセージのやり取りを行う。そして、メッセージのやり取りがすべて完了したら、その時の役割に応じて従来通りの回線などに関する設定を行うことで、マスタおよびスレーブの間でリンクが確立される。
【0030】
次に、図3に示すモデム10の各部の処理内容について、詳細に説明する。
【0031】
マスタスレーブ決定部101は、モデム10自身がマスタとして動作するのかスレーブとして動作するのかを決定する。以下、マスタとして動作するモードを「マスタモード」と記載し、スレーブとして動作するモードを「スレーブモード」と記載する。
【0032】
マスタスレーブ決定部101は、乱数発生部102と連携し、モデム10自身のモードをマスタモードおよびスレーブモードのいずれにするのかを、次のように決定する。
【0033】
モデム10の電源がオンになると、マスタスレーブ決定部101は、マスタモードおよびスレーブモードのうちの予め決められた方を、モデム10自身のモードに決定する。または、乱数を発生させることによって、どちらのモードにするのかを決めてもよい。
【0034】
乱数発生部102は、マスタスレーブ決定部101によってモードが決定されるごとに、所定の範囲の乱数を発生させる。この乱数は、後述するようにモードを継続する秒数を表すのに用いられる。
【0035】
所定の範囲の下限値は、マスタとスレーブとがモードを確定する際にハンドシェーキングメッセージ(Handshaking Massage)のやり取りをすべて完了するのに必要な時間以上であることが、望ましい。例えば、ハンドシェーキングメッセージのやり取りを行うのに必要な時間が2〜3秒であれば、下限値を「3」ないし「5」程度に設定しておく。
【0036】
一方、所定の範囲の上限値は、任意の値で構わないが、大きすぎないほうがよい。例えば、「20」ないし「60」程度に設定しておく。
【0037】
さらに、マスタスレーブ決定部101は、モードを決定した後、乱数発生部102が発生させた乱数分の時間(秒)が経過したら、モードを、現在とは別のモードに決定し直す。
【0038】
さらに、マスタスレーブ決定部101がモードを決定し直した後も、乱数発生部102は乱数を発生させる。そして、マスタスレーブ決定部101は、その乱数分の時間(秒)が経過したら、モードを、現在とは別のモードに決定し直す。
【0039】
したがって、マスタスレーブ決定部101および乱数発生部102によると、モデム10のモードが、ランダムな時間間隔でマスタモード、スレーブモード、マスタモード、スレーブモード、…、と決定される。または、ランダムな時間間隔でスレーブモード、マスタモード、スレーブモード、マスタモード、…、と決定される。なお、決定の処理は、他のモデム10とのハンドシェーキングメッセージのやり取りが正常に完了したと判断できたら中止する。
【0040】
マスタモード切換処理部103は、マスタスレーブ決定部101によってモードがマスタモードに決定されまたは決定し直されたタイミングで、モデム10自身のモードをマスタモードに切り換える。
【0041】
スレーブ側切換処理部104は、マスタスレーブ決定部101によってモードがスレーブモードに決定されまたは決定し直されたタイミングで、モデム10自身のモードをスレーブモードに切り換える。
【0042】
マスタ側メッセージ交換処理部105は、モデム10のモードがマスタモード切換処理部103によってマスタモードに切り換えられたタイミングで、メッセージMG1をスレーブへ発信する。さらに、通信方式に従って、スレーブからメッセージを受信し特定のメッセージをスレーブへ発信するなど、スレーブとの間でメッセージ(ハンドシェーキングメッセージ)のやり取りを行う。なお、メッセージのやり取りについては、図4で説明した通りである。
【0043】
スレーブ側メッセージ交換処理部106は、モデム10のモードがスレーブ側切換処理部104によってスレーブモードに切り換えられたタイミングで、マスタからメッセージMG1が送信されてくるのを待つ。そして、メッセージMG1を受信すると、通信方式に従って、図4で説明したように、マスタとの間でメッセージ(ハンドシェーキングメッセージ)のやり取りを行う。
【0044】
リンク確立処理部107は、接続相手である他のモデム10との間でのハンドシェーキングメッセージのやり取りが正常に完了したことで、モードが確定できたと判断し、当該他のモデム10とのリンクの確立を完了するための回線の設定などの処理を行う。
【0045】
図5および図6はリンクの確立の際のモデム10の全体的な処理の流れの例を説明するフローチャート、図7ないし図10はハンドシェーキングメッセージのやり取りの例を示す図である。
【0046】
次に、図1に示すローカルエリアネットワーク40Aのモデム10がローカルエリアネットワーク40Bのモデム10と未だ接続されておらず、これから新たに接続する場合を例に、図3の各部の処理の手順を、図5および図6に示すフローチャートを参照しながら説明する。以下、ローカルエリアネットワーク40Aおよびローカルエリアネットワーク40Bそれぞれのモデム10を「モデム10A」および「モデム10B」と区別して記載する。
【0047】
ローカルエリアネットワーク40Aにいるユーザは、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム10Aに繋げる。さらに、モデム10Aの電源をオンにする。
【0048】
すると、モデム10Aにおいて、マスタスレーブ決定部101は、モデム10Aのモードをマスタモードおよびスレーブモードのうちのいずれかに決定する(図5の#71)。マスタモードに決定された場合は(#72でYes)、乱数発生部102は、所定の範囲の乱数を発生させる(#73)。乱数の発生の処理と前後してまたは並行して、マスタスレーブ決定部101は、ハードウェアの設定値などをリセットし(#74)、マスタモード切換処理部103は、モデム10Aのモードをマスタモードに設定する(#75)。
【0049】
マスタ側メッセージ交換処理部105は、マスタとして、モデム10Bを相手にハンドシェーキングメッセージのやり取りを行う(#77)。したがって、マスタ側メッセージ交換処理部105は、最初のメッセージであるメッセージMG1をモデム10Bへ発信する。
【0050】
モデム10Bがスレーブとして動作している場合は、メッセージMG1がモデム10Bによって受信されるので、マスタ側メッセージ交換処理部105は、ハンドシェーキングメッセージのやり取りを開始することができる。しかし、そうでない場合は、開始することができない。
【0051】
そこで、マスタ側メッセージ交換処理部105は、ステップ#73で発生した乱数に対応する時間だけ、ハンドシェーキングメッセージのやり取りを試行する。つまり、マスタ側メッセージ交換処理部105は、メッセージMG1を定期的に(例えば、0.1〜0.5秒ごとに)発信する。
【0052】
そして、時間内にハンドシェーキングメッセージのやり取りが完了できた場合は(#78でYes)、リンク確立処理部107はモデム10Bがスレーブとして動作していると判断し、これによりモデム10Aのモードをマスタに確定する(#79)。そして、モデム10Aは、従来通り、回線などに関する種々の設定を行う(#80)。
【0053】
一方、時間内にハンドシェーキングメッセージのやり取りを完了できなかった場合は(#78でNo、#76でYes)、マスタスレーブ決定部101は、モデム10Aのモードをスレーブモードに決定し直し、各部は図6に示す処理を適宜実行する。また、電源がオンになって最初にモデム10Aのモードをスレーブモードに決定した場合も(#72でNo)、各部は図6に示す処理を実行する。
【0054】
乱数発生部102は、所定の範囲の乱数を発生させる(#81)。乱数の発生の処理と前後してまたは並行して、マスタスレーブ決定部101は、ハードウェアの設定値などをリセットし(#82)、スレーブ側切換処理部104は、モデム10Aのモードをスレーブモードに設定する(#83)。
【0055】
スレーブ側メッセージ交換処理部106は、スレーブとして、モデム10Bを相手にハンドシェーキングメッセージのやり取りを行う(#85)。したがって、スレーブ側メッセージ交換処理部106は、最初のメッセージであるメッセージMG1がモデム10Bから送信されてくるのを待つ。
【0056】
モデム10Bがマスタとして動作している場合は、メッセージMG1が送信されてくるので、スレーブ側メッセージ交換処理部106は、メッセージMG1を受信したらハンドシェーキングメッセージのやり取りを開始することができる。しかし、そうでない場合は、開始することができない。
【0057】
そこで、スレーブ側メッセージ交換処理部106は、ステップ#81で発生した乱数に対応する時間だけ、ハンドシェーキングメッセージのやり取りを試行する。つまり、メッセージMG1をその時間だけ待ち続ける。
【0058】
そして、時間内にハンドシェーキングメッセージのやり取りが完了できた場合は(#86でYes)、リンク確立処理部107はモデム10Bがマスタとして動作していると判断し、これによりモデム10Aのモードをスレーブに確定する(#87)。そして、モデム10Aは、従来通り、回線などに関する種々の設定を行う(#88)。
【0059】
一方、時間内にハンドシェーキングメッセージのやり取りを完了できなかった場合(#86でNo、#84でYes)は、マスタスレーブ決定部101は、モデム10Aのモードをマスタモードに決定し直し、各部は図5に示すステップ#74〜#80の処理を適宜実行する。
【0060】
ローカルエリアネットワーク40Bにいるユーザも同様に、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム10Bに繋げる。さらに、モデム10Bの電源をオンにする。
【0061】
すると、モデム10Bも、モデム10Aを相手に、図5および図6に示す各処理を適宜実行する。
【0062】
これにより、モデム10Aおよびモデム10Bそれぞれのモードがランダムに変わる。したがって、図7または図8に示すように、一方のモデム10がマスタモードでありもう一方のモデム10がスレーブモードである時間帯が生じる。そして、この時間帯に、モデム10Aおよびモデム10Bはハンドシェーキングメッセージのやり取りを行い、モードを確定させることができる。
【0063】
なお、図9または図10に示すように、ハンドシェーキングメッセージのやり取りを行っている途中で一方のモデム10のモードの切換が行われると、ハンドシェーキングメッセージのやり取りを完了することができずモードを確定できない。しかし、このような場合も、モデム10Aおよびモデム10Bそれぞれのモードがランダムな時間間隔で変わる。よって、モデム10Aおよびモデム10Bは、ハンドシェーキングメッセージのやり取りの機会を再度得ることができ、モードの確定を図ることができる。
【0064】
本実施例によると、ユーザは、2台のモデム10のマスタおよびスレーブの役割分担を、事前の計画を行うことなく従来よりも容易に行うことができる。
【0065】
〔SHDSL対応のモデムの例〕
図11はモデム50のプラットフォームの例を示す図、図12は接続用ソフトウェア563によって実現される機能的構成の例を示す図、図13はマスタモード処理部504の例を示す図、図14はスレーブモード処理部505の例を示す図である。
【0066】
次に、モデム10としてSHDSL対応のモデム50を用いかつ既存のドライバなどを用いる場合の実施例を説明する。
【0067】
広域ネットワーク30の全体的な構成は、前に図1に示した通りである。モデム50のハードウェアの構成も、前に図2に示したモデム10のハードウェアの構成と基本的に同じである。つまり、図11に示すように、モデム50は、MPU50p、RAM50q、ROM50r、液晶パネル50s、操作ボタン50t、および通信部50uなどを有する。
【0068】
ただし、モデム50のROM50rには、図11に示すように、物理レイヤ制御用ファームウェア561、ドライバ562、および接続用ソフトウェア563が記憶されている。
【0069】
物理レイヤ制御用ファームウェア561は、SHDSLおよびイーサネット(登録商標)に従って通信が行われるように各ハードウェアを制御するためのプログラムである。さらに、物理レイヤ制御用ファームウェアには、Application Program Interface(API)が用意されている。
【0070】
ドライバ562は、物理レイヤ制御用ファームウェア561に用意されているAPIの関数(機能)を適宜呼び出すなどしてモデム50のハードウェアを制御するプログラムである。
【0071】
物理レイヤ制御用ファームウェア561およびドライバ562は、モデム50のベンダが予め用意したものである。機種によっては、物理レイヤ制御用ファームウェア561とドライバ562とが1組のソフトウェア(ファームウェア)として一体的に構成される場合もある。
【0072】
ところで、SHDSLで使用する電話線(2BASE−TL)の規格は、Institute of Electrical and Electronics Engineers(IEEE)802.3によって規定されている。したがって、物理レイヤ制御用ファームウェア561およびドライバ562は、IEEE802.3に準拠している。そして、ドライバ562には、IEEE802.3で規定されるレジスタが備わっている。
【0073】
接続用ソフトウェア563は、モデム50自身を他のモデム50に新たに接続する際の処理を従来よりも容易に行うためのソフトウェアである。つまり、図3に示した各部と基本的に同じ役割を果たす。
【0074】
しかし、図11の例は、図3に示した各部の機能を、接続用ソフトウェア563だけでなく、物理レイヤ制御用ファームウェア561およびドライバ562によって実現する。
【0075】
接続用ソフトウェア563には、図12に示すようなマスタスレーブ決定部501、リセット指令部502、マスタスレーブ切換部503、マスタモード処理部504、およびスレーブモード処理部505などを実現するためのプログラムおよびデータが含まれている。これらのプログラムは、MPU50pによって実行される。
【0076】
次に、図12に示すモデム50の各部の処理内容などについて、説明する。なお、図3で説明した事項と共通する事項については、説明を省略する。
【0077】
マスタスレーブ決定部501は、図3のマスタスレーブ決定部101と同様に、モデム50自身のモードをマスタモードとするのかスレーブモードとするのかを決定する。
【0078】
リセット指令部502は、マスタスレーブ決定部501によってモードの決定がなされるごとに、ハードウェアの設定値などをリセットする。リセットは、例えば、リセット用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、行えばよい。
【0079】
マスタスレーブ切換部503は、マスタスレーブ決定部501がモードをマスタモードに決定した場合は、マスタモード処理部504を有効にして、スレーブモード処理部505を無効にする。一方、マスタスレーブ決定部501がモードをスレーブモードに決定した場合は、マスタスレーブ切換部503は、スレーブモード処理部505を有効にして、マスタモード処理部504を無効にする。
【0080】
マスタモード処理部504は、図13に示すように、マスタモード設定指令部571、モード確定処理開始指令部572、乱数発生部573、モード確定チェック部574、および回線設定指令部575などを有する。このような構成により、マスタモード処理部504は、マスタとして他のモデム50と接続するための処理を行う。この処理は、マスタスレーブ切換部503によってマスタモード処理部504が有効に切り換えられたタイミングで開始される。
【0081】
マスタモード設定指令部571は、モデム50自身のモードをマスタモードに設定する処理を、ドライバ562または物理レイヤ制御用ファームウェア561に行わせる。この際に、マスタモード設定指令部571は、マスタモードへの切換用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定すればよい。すると、ドライバ562または物理レイヤ制御用ファームウェア561は、モードをマスタモードに設定する。後述するスレーブモード設定指令部581(図14参照)によるスレーブモードの設定の場合も、同様である。
【0082】
モード確定処理開始指令部572は、マスタモードへの設定の完了後、マスタとしてハンドシェーキングメッセージのやり取りを開始するようにドライバ562に対して指令する。指令は、IEEE802.3のReg6.16つまり「45.2.6.6 10P/2B aggregation discovery control register (Register 6.16)」というレジスタの「Discovery Operation (Bit [1:0])」に「Get(BitVal=10)」を設定することによって、行えばよい。すると、ドライバ562および物理レイヤ制御用ファームウェア561によって通信部50uなどが制御され、最初のメッセージつまりメッセージMG1が相手方へ発信される。
【0083】
乱数発生部573は、マスタモードに設定されるごとに、所定の範囲の乱数を発生させる。
【0084】
モード確定チェック部574は、マスタモードに設定されてから乱数発生部573が発生させた乱数分の時間(秒)が経過するまでの間、他のモデム50とのリンクが確立されたか否かを、次のようにチェックする。
【0085】
モード確定チェック部574は、IEEE802.3のReg3.60つまり「45.2.3.17 10P/2B capability register (register 3.60)」というレジスタの「Remote PAF supported Bit[11]」の値をドライバ562から読み出す。そして、モード確定チェック部574は、読み出した値が「link partner supports PAF(BitVal=1)」に変化したことでハンドシェーキングメッセージのやり取りが正常に完了したと判断し、モードが確定されたと判定する。そうでなければ、モードが確定されていないと判定する。
【0086】
ここで、自身と他のモデム50は、前記IEEE802.3のReg3.60の「PAF available Bit[12]」の値が「PAF supported(BitVal=1)」であることが前提である。(PAF:PME Aggregation Functionの略称であり、SHDSLチップでは一般的に実装されている機能である。)
回線設定指令部575は、モードが確定されたとモード確定チェック部574によって判定(検知)されたら、モデム50自身のモードをマスタモードとして回線設定を行う。その設定は、例えば、回線設定用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、モデム50自身がマスタとして動作するための、回線などに関する種々の設定を行えばよい。
【0087】
図12に戻って、スレーブモード処理部505は、図14に示すように、スレーブモード設定指令部581、乱数発生部582、モード確定チェック部583、および回線設定指令部584などを有する。このような構成により、スレーブモード処理部505は、スレーブとして他のモデム50と接続するための処理を行う。この処理は、マスタスレーブ切換部503によってスレーブモード処理部505が有効に切り換えられたタイミングで開始される。
【0088】
スレーブモード設定指令部581は、モデム50自身のモードをスレーブモードに設定する処理をドライバ562または物理レイヤ制御用ファームウェア561に行わせる。
【0089】
乱数発生部582は、スレーブモードに設定されるごとに、所定の範囲の乱数を発生させる。
【0090】
モード確定チェック部583は、スレーブモードに設定されてから乱数発生部573が発生させた乱数分の時間(秒)が経過するまでの間、他のモデム50とのリンクが確立されたか否かをチェックする。チェックの方法は、前に説明したモード確定チェック部574によるチェックの方法と、同様である。つまり、モード確定チェック部583は、IEEE802.3のReg3.60の「Remote PAF supported Bit[11]」の値が「link partner supports PAF(BitVal=1)」に変化したことでハンドシェーキングメッセージのやり取りが正常に完了したと判断し、モードが確定されたと判定する。そうでなければ、モードが確定されていないと判定する。
【0091】
回線設定指令部584は、モードが確定されたとモード確定チェック部583によって判定(検知)されたら、モデム50自身のモードをスレーブモードとして回線設定を行う。その設定は、例えば、回線設定指令部575と同様、回線設定用のコマンドまたはAPI関数をドライバ562または物理レイヤ制御用ファームウェア561に対して指定することによって、モデム50自身がスレーブとして動作するための、回線などに関する種々の設定を行えばよい。
【0092】
図12に戻って、マスタスレーブ決定部501は、乱数発生部573または乱数発生部582が発生させた乱数に対応する時間が経過してもモード確定チェック部574またはモード確定チェック部583がモード確定を検知しなかった場合に、モデム50自身のモードを、現在のモードとは反対のモードに決定し直す。
【0093】
このような構成により、モデム50のモードは、所定の範囲のランダムな時間間隔でマスタモード、スレーブモード、マスタモード、スレーブモード、…、と決定される。または、同様の時間間隔でスレーブモード、マスタモード、スレーブモード、マスタモード、…、と決定される。そして、他のモデム50とのハンドシェーキングメッセージのやり取りが正常に完了したら、モードが確定したこととなり決定の処理が中止される。
【0094】
モデム50の全体的な処理の流れは、基本的に、前に図5および図6に示すフローチャートで説明した通りである。以下、モデム50において既存のドライバなどを用いた場合の各ステップの処理について、説明する。
【0095】
ローカルエリアネットワーク40Aにはモデム50としてモデム50Aが備えられている。一方、ローカルエリアネットワーク40Bにはモデム50としてモデム50Bが備えられている。モデム50Aとモデム50Bとは未だ繋がれておらず、これから接続が試みられる。
【0096】
ローカルエリアネットワーク40Aにいるユーザは、ローカルエリアネットワーク40Aとローカルエリアネットワーク40Bとの間に敷設されている電話線をモデム50Aに繋げる。さらに、モデム50Aの電源をオンにする。
【0097】
すると、モデム50Aは、モデム10Aと同様の処理を実行する。つまり、モデム50Aにおいて、マスタスレーブ決定部501、リセット指令部502、およびマスタスレーブ切換部503は、ランダムな時間間隔でモデム50Aのモードをマスタモードおよびスレーブモードのいずれかに繰り返し切り換える(図5の#71〜#75、図6の#81〜#83)。
【0098】
マスタモード処理部504は、マスタモードである間、マスタとしてモデム50Bとのモードの確定を試みる(#77)。この際に、マスタモード処理部504は、Reg6.16の「Discovery Operation (Bit [1:0])」に「Get(BitVal=10)」を設定する。これにより、物理レイヤ制御用ファームウェア561およびドライバ562によって通信部50uが制御され、メッセージMG1がモデム50Bへ送信される。メッセージMG1がモデム50Bによって受信されない場合は、スレーブモードに切り換えられるまで定期的にメッセージMG1がモデム50Aからモデム50Bへ送信される。
【0099】
そして、スレーブモードに切り換わるまでに、メッセージMG1がモデム50Bによって受信され、ハンドシェーキングメッセージのやり取りが正常に完了したら(#78でYes)、モデム50Aの役割がマスタに確定し、回線設定を行うことでリンクが確立する(#79、#80)。以後、モデム50Aはマスタとしてモデム50Bと通信を行う。なお、モードの確定の検知は、Reg3.60の「Remote PAF supported Bit[11]」の値をチェックすることによって行うことができる。
【0100】
一方、スレーブモードである間、スレーブモード処理部505は、スレーブとしてモデム50Bとのモードの確定を試みる(#85)。この際に、モデム50BからメッセージMG1が送信されてくるのを待つ。
【0101】
そして、マスタモードに切り換わるまでに、メッセージMG1がモデム50Bから届き、ハンドシェーキングメッセージのやり取りが正常に完了したら(#86でYes)、モデム50Aの役割がスレーブに確定する(#87、#88)、以後、モデム50Aはスレーブとしてモデム50Bと通信を行う。スレーブモードにおけるモードの確定の検知も、Reg3.60の「Remote PAF supported Bit[11]」の値をチェックすることによって行うことができる。
【0102】
モデム50Bも同様に、モデム50Aを相手に、図5および図6に示した手順で、上に説明した各処理を適宜実行する。
【0103】
本実施例によると、予め用意されている、IEEE802.3に規定されるレジスタを用いることによって簡単に、2台のモデム10のマスタおよびスレーブの役割分担を行うことができる。
【0104】
上述の各実施例では、マスタモードを継続する時間およびスレーブモードを継続する時間を、モードの決定または再決定の際に決定したが、それ以外の決定方法を用いてもよい。例えば、モデム10、50は、モードの決定または再決定の後、ハンドシェーキングメッセージのやり取りをすべて完了するのに要する時間が経過したら、所定の時間(例えば、1秒)を経過するごとに乱数を発生させる。そして、発生させた乱数が所定の値であれば、モードを決定し直す。そうでなければ、モードを継続する。
【0105】
その他、広域ネットワーク30、ローカルエリアネットワーク40、モデム10、50の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【0106】
10、50 モデム(通信機器)
105 マスタ側メッセージ交換処理部(マスタ処理手段)
106 スレーブ側メッセージ交換処理部(スレーブ処理手段)
101、501 マスタスレーブ決定部(切換手段)
102 乱数発生部(切換手段)
103 マスタモード切換処理部(切換手段)
104 スレーブ側切換処理部(切換手段)
107 リンク確立処理部(確定手段)
503 マスタスレーブ切換部(切換手段)
504 マスタモード処理部(マスタ処理手段)
505 スレーブモード処理部(スレーブ処理手段)
【特許請求の範囲】
【請求項1】
他の通信機器と通信を行う通信機器であって、
マスタとして前記他の通信機器を相手にモードを確定するためのメッセージのやり取りを行うマスタ処理手段と、
スレーブとして前記他の通信機器を相手に前記メッセージのやり取りを行うスレーブ処理手段と、
前記マスタ処理手段および前記スレーブ処理手段に、交互にかつランダムな時間間隔で前記メッセージのやり取りを行わせる、切換手段と、
前記マスタ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信機器を前記マスタに確定し、前記スレーブ処理手段によって前記メッセージのやり取りが完了した場合は当該通信装置を前記スレーブに確定する、確定手段と、
を有する通信機器。
【請求項2】
2台の通信機器のリンクを確立する際に当該2台の通信機器のそれぞれをマスタおよびスレーブのうちのいずれかに確定するマスタスレーブ確定方法であって、
前記2台の通信機器のそれぞれに、前記マスタとして他方の通信機器を相手に前記モードを確定するためのメッセージをやり取りするマスタ処理と、前記スレーブとして当該他方の通信機器を相手に前記メッセージをやり取りするスレーブ処理とを、交互にかつランダムな時間間隔で実行させ、
前記2台の通信機器のそれぞれを、前記マスタ処理が完了した場合は前記マスタに確定し、前記スレーブ処理が完了した場合は前記スレーブに確定する、
マスタスレーブ確定方法。
【請求項3】
通信機器を他の通信機器に接続させるためのコンピュータプログラムであって、
前記通信機器に、
マスタとして前記他の通信機器を相手に前記モードを確定するためのメッセージをやり取りするマスタ処理と、スレーブとして前記他の通信機器を相手に前記メッセージをやり取りするスレーブ処理とを、交互にかつランダムな時間間隔で実行させる、
コンピュータプログラム。
【請求項4】
前記時間間隔は、前記メッセージをすべてやり取りする所要時間以上である、
請求項3記載のコンピュータプログラム。
【請求項5】
前記通信機器には前記通信装置に前記マスタ処理を開始させる事を設定するレジスタが設けられており、前記レジスタに前記マスタ処理を開始させる値を設定する、
請求項3または請求項4記載のコンピュータプログラム。
【請求項6】
前記通信機器には前記マスタ処理および前記スレーブ処理を交互に実行するのを終了させる事を設定するレジスタが設けられており、前記レジスタに終了させる値を設定する、
請求項3ないし請求項5のいずれかに記載のコンピュータプログラム。
【請求項1】
他の通信機器と通信を行う通信機器であって、
マスタとして前記他の通信機器を相手にモードを確定するためのメッセージのやり取りを行うマスタ処理手段と、
スレーブとして前記他の通信機器を相手に前記メッセージのやり取りを行うスレーブ処理手段と、
前記マスタ処理手段および前記スレーブ処理手段に、交互にかつランダムな時間間隔で前記メッセージのやり取りを行わせる、切換手段と、
前記マスタ処理手段によって前記メッセージのやり取りが正常に完了した場合は当該通信機器を前記マスタに確定し、前記スレーブ処理手段によって前記メッセージのやり取りが完了した場合は当該通信装置を前記スレーブに確定する、確定手段と、
を有する通信機器。
【請求項2】
2台の通信機器のリンクを確立する際に当該2台の通信機器のそれぞれをマスタおよびスレーブのうちのいずれかに確定するマスタスレーブ確定方法であって、
前記2台の通信機器のそれぞれに、前記マスタとして他方の通信機器を相手に前記モードを確定するためのメッセージをやり取りするマスタ処理と、前記スレーブとして当該他方の通信機器を相手に前記メッセージをやり取りするスレーブ処理とを、交互にかつランダムな時間間隔で実行させ、
前記2台の通信機器のそれぞれを、前記マスタ処理が完了した場合は前記マスタに確定し、前記スレーブ処理が完了した場合は前記スレーブに確定する、
マスタスレーブ確定方法。
【請求項3】
通信機器を他の通信機器に接続させるためのコンピュータプログラムであって、
前記通信機器に、
マスタとして前記他の通信機器を相手に前記モードを確定するためのメッセージをやり取りするマスタ処理と、スレーブとして前記他の通信機器を相手に前記メッセージをやり取りするスレーブ処理とを、交互にかつランダムな時間間隔で実行させる、
コンピュータプログラム。
【請求項4】
前記時間間隔は、前記メッセージをすべてやり取りする所要時間以上である、
請求項3記載のコンピュータプログラム。
【請求項5】
前記通信機器には前記通信装置に前記マスタ処理を開始させる事を設定するレジスタが設けられており、前記レジスタに前記マスタ処理を開始させる値を設定する、
請求項3または請求項4記載のコンピュータプログラム。
【請求項6】
前記通信機器には前記マスタ処理および前記スレーブ処理を交互に実行するのを終了させる事を設定するレジスタが設けられており、前記レジスタに終了させる値を設定する、
請求項3ないし請求項5のいずれかに記載のコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−160164(P2011−160164A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−19756(P2010−19756)
【出願日】平成22年1月29日(2010.1.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願日】平成22年1月29日(2010.1.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]