(57)【特許請求の範囲】
【請求項１】
ネットワーク上でマスターもしくはスレーブとして動作する通信装置であって、
表示部能力及び操作部能力に関する情報をネットワークに存在するマスターから取得する取得手段と、
前記取得手段により取得した前記マスターの表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較手段と、
前記比較手段による比較結果に応じて、前記通信装置が新たなマスターになるか否かを判別する判別手段と、
前記判別手段により前記通信装置が新たなマスターになる判別した場合、前記マスターに対してネットワークの再構築を要求する要求手段と、
前記判別手段による判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定手段と、
を有することを特徴とする通信装置。
【請求項２】
前記設定手段は、次にマスターの探索を行うまでの待機時間を設定することを特徴とする請求項１記載の通信装置。
【請求項３】
マスターを検知する検知手段を有し、
前記要求手段は、前記検知手段により検知したマスターに対して、前記再構築の要求を行うことを特徴とする請求項１又は２記載の通信装置。
【請求項４】
前記判別手段は、表示部能力及び操作部能力が高い装置がマスターになると判定することを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記設定手段は、前記通信装置が新たなマスターになると判定した場合、前記待機時間をマスターの待機時間よりも短い値に設定することを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
ネットワーク上でマスターもしくはスレーブとして動作する通信装置であって、
表示部能力及び操作部能力に関する情報をネットワークに存在する他の通信装置から取得する取得手段と、
前記取得手段により取得した前記他の通信装置の表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較手段と、
前記比較手段による比較結果に応じて、前記他の通信装置が新たなマスターになるか否かを判別する判別手段と、
前記判別手段により前記他の通信装置が新たなマスターになる判別した場合、前記他の通信装置をマスターとして指定する指定手段と、
前記判別手段による判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定手段と、
を有することを特徴とする通信装置。
【請求項７】
前記設定手段は、次にマスターの探索を行うまでの待機時間を設定することを特徴とする請求項６記載の通信装置。
【請求項８】
前記設定手段は、前記他の通信装置が新たなマスターになると判定した場合、前記待機時間を前記他の通信装置の待機時間よりも長い値に設定することを特徴とする請求項６又は７記載の通信装置。
【請求項９】
通信装置の制御方法であって、
表示部能力及び操作部能力に関する情報をネットワークに存在するマスターから取得する取得工程と、
前記取得工程において取得した前記マスターの表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較工程と、
前記比較工程における比較結果に応じて、前記通信装置が新たなマスターになるか否かを判別する判別工程と、
前記判別工程において前記通信装置が新たなマスターになる判別した場合、前記マスターに対してネットワークの再構築を要求する要求工程と、
前記判別工程における判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定工程と、
を有することを特徴とする通信装置の制御方法。
【請求項１０】
通信装置の制御方法であって、
表示部能力及び操作部能力に関する情報をネットワークに存在する他の通信装置から取得する取得工程と、
前記取得工程において取得した前記他の通信装置の表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較工程と、
前記比較工程における比較結果に応じて、前記他の通信装置が新たなマスターになるか否かを判別する判別工程と、
前記判別工程において前記他の通信装置が新たなマスターになる判別した場合、前記他の通信装置をマスターとして指定する指定工程と、
前記判別工程における判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定工程と、
を有することを特徴とする通信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でマスターもしくはスレーブとして動作する通信装置に関する。
【背景技術】
【０００２】
近年、ＩＥＥＥ８０２．１１無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）をはじめとする無線機能を備える機器が数多く製品化され利用されている。
【０００３】
複数の機器間で無線ネットワークを介した通信を行うとき、機器によってネットワーク内での役割が異なる場合がある。例えば、他の機器の識別情報やネットワークへの参加、脱退等の管理を行う「マスター」と、マスターの指示に基づいて動作する「スレーブ」のどちらか一方の役割を担って通信を行うシステムがある。
【０００４】
このようなマスター−スレーブ間で通信を行うシステムにおいて、マスターとスレーブの役割を切替える方法に関して、数々の提案がなされている（例えば特許文献１〜３）。
【特許文献１】特開２００２−２８０９２５
【特許文献２】特開２００３−２２９７８２
【特許文献３】特開平１０−１５５１８４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
複数の種類の機器間でネットワークを構成する場合は、マスターに適した能力を有する機器がマスターとして動作する方が好ましい。例えば、表示部を有していない機器がマスターになった場合、同一ネットワーク内にいる通信可能な機器をユーザは簡単に知ることができない。
【０００６】
しかし、同一ネットワーク内にいる機器を表示可能な表示部を備えている機器がマスターになれば、どの機器がネットワークに参加しているかユーザが確認することができる。更に、表示された機器の中からデータの転送先を指定できる操作部を有していれば、簡単に所望の相手とデータ通信を行うことができる。
【課題を解決するための手段】
【０００７】
本発明は、ネットワーク上でマスターもしくはスレーブとして動作する通信装置であって、表示部能力及び操作部能力に関する情報をネットワークに存在するマスターから取得する取得手段と、前記取得手段により取得した前記マスターの表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較手段と、前記比較手段による比較結果に応じて、前記通信装置が新たなマスターになるか否かを判別する判別手段と、前記判別手段により前記通信装置が新たなマスターになる判別した場合、前記マスターに対してネットワークの再構築を要求する要求手段と、前記判別手段による判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定手段と、を有することを特徴とする。また、ネットワーク上でマスターもしくはスレーブとして動作する通信装置であって、表示部能力及び操作部能力に関する情報をネットワークに存在する他の通信装置から取得する取得手段と、前記取得手段により取得した前記他の通信装置の表示部能力及び操作部能力と、前記通信装置の表示部能力及び操作部能力とを比較する比較手段と、前記比較手段による比較結果に応じて、前記他の通信装置が新たなマスターになるか否かを判別する判別手段と、前記判別手段により前記他の通信装置が新たなマスターになる判別した場合、前記他の通信装置をマスターとして指定する指定手段と、前記判別手段による判別に基づいて、新たなマスターを決定するための動作開始までの待機時間を設定する設定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、参加したネットワークに既にマスターが存在する場合であっても、表示能力及び操作部能力に基づいてマスターに適した機器が新たなマスターになることができる。従って、通信相手を表示及び選択できる機器がマスターになることができる。
【発明を実施するための最良の形態】
【０００９】
ここからの各実施例では、機器間で直接無線通信を行うアドホックネットワークを構成する場合の処理について説明する。なお、本実施例におけるアドホックネットワークでは、各機器がマスター、もしくはスレーブとして動作する。
【００１０】
本実施例では、新たなネットワークを構築した機器がマスターとなる。その後、マスター機器は同一ネットワーク内に存在する他の機器のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス等の管理を行う。また、マスター機器はスレーブ機器に対して機器能力の送信要求等を行い、スレーブ機器は、マスター機器からの指示に従い、機器能力の送信等を行う。ここで、機器能力情報には、機器の種別（プリンタ、デジタルカメラ、ｅｔｃ）、ディスプレイ等の表示部の能力、ボタン等の操作部の能力、等が含まれる。また、マスター、スレーブともに、定期的に自分の存在通知（マスター宣言、スレーブ宣言）を行う。
【００１１】
（第１の実施形態）
図１は、第１の実施形態に係る通信システムの構成を示す図である。
【００１２】
１０１および１０２はそれぞれプリンタ（機器Ａ）とデジタルカメラ（機器Ｂ）である。プリンタ１０１は、無線通信機能１０５として８０２．１１無線ＬＡＮを有し、通信設定ボタン１０３を押下することにより、機器間での直接通信を行うアドホックネットワークを構成することが可能である。また、デジタルカメラ１０２も、無線通信機能１０６として８０２．１１無線ＬＡＮを有し、通信設定ボタン１０４を押下することによりアドホックネットワークを構成することが可能である。
【００１３】
図２は、本実施例におけるプリンタ１０１のブロック構成を示す図である。
【００１４】
２０２はプリンタ１０１全体の動作を制御する制御部である。２０３は画像処理部であり、画像データのエンコード、デコード、フォーマット変換等を司る。２０４は制御部２０２が後述する図５、７、１１、１４、２０等の各種制御を行うためのプログラムが格納されているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、２０５はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。２０６は８０２．１１無線ＬＡＮの通信制御を行う無線通信処理部、２０７はアンテナ、２０８はアンテナ制御部である。２０９はプリンタ用紙の給紙、排紙を行う給紙排紙部、２１０はプリンタの印字制御を行うプリンタエンジン部である。２１１は画像が格納された記録メディアカードの制御を行うカードインタフェース部である。２１２は表示部であり、ＣＲＴや液晶ディスプレイなどにより実現される。２１３は操作部、２１４は電源部、２１５はＵＳＢやＩＥＥＥ１３９４などの通信インターフェース部である。２１６は通信設定ボタンであり、機器間で直接通信を行うアドホックネットワークへ参加する動作の起動を行う。
【００１５】
図３は、本実施例におけるデジタルカメラ１０２のブロック構成を示す図である。
【００１６】
図３において、３０２はデジタルカメラ１０２全体の動作を制御する制御部である。３０３は画像処理部であり、画像データのエンコード、デコード、フォーマット変換等を司る。３０４は制御部３０２が後述する図５、６、１０、１３、１９等の各種制御を行うためのプログラムが格納されているＲＯＭであり、３０５はＲＡＭである。３０６は８０２．１１無線ＬＡＮの通信制御を行う無線通信処理部、３０７はアンテナ、３０８はアンテナ制御部である。３０９はＣＣＤ３１０から入力された画素信号を取り込む撮像部である。３１１は撮像した画像や設定情報が格納された記録メディアカードの制御を行うカードインタフェース部である。３１２は表示部であり、ＣＲＴや液晶ディスプレイなどにより実現される。３１３は操作部であり、撮影指示、再生、設定などのボタンが含まれる。３１４は電源部、３１５はＵＳＢやＩＥＥＥ１３９４などの通信インターフェース部である。３１６は通信設定ボタンであり、機器間で直接通信を行うアドホックネットワークへ参加する動作の起動を行う。
【００１７】
本実施例においてはプリンタ１０１が先にアドホックネットワークを形成し、マスターとして動作しているところに、後からデジタルカメラ１０２がネットワークに参加する場合の処理について説明する。
【００１８】
図４は、第１の実施形態における動作シーケンスを示す図である。
【００１９】
機器Ａの通信設定ボタン１０３が押されるとアドホックネットワークへの接続処理が開始され、マスター問合せＦ４０１がブロードキャスト送信される。
【００２０】
マスター問合せに対する応答がないまま応答待ち時間が経過すると、機器Ａはアドホックネットワークに参加しているマスター機器がいないと判断し、マスター宣言メッセージＦ４０２を送信してマスター機器となる。その後も機器Ａはマスター宣言メッセージを定期的にブロードキャスト送信する。
【００２１】
次に、機器Ｂの通信設定ボタン１０４が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ４０３がブロードキャスト送信される。
【００２２】
その後、マスター問合せに対する機器Ａからのマスター宣言メッセージＦ４０４を機器Ｂが受信すると、機器Ｂはマスター機器がアドホックネットワークに存在することを検知する。そして、マスター宣言メッセージＦ４０４の送信元ＭＡＣアドレスから機器ＡのＭＡＣアドレスを記憶する。
【００２３】
マスター機器を検知した機器Ｂは、マスタースレーブ交換を開始するために機器ＡのＭＡＣアドレス宛にリスタート要求Ｆ４０５を送信する。
【００２４】
機器Ａは、受信したリスタート要求Ｆ４０５の送信元ＭＡＣアドレスから機器ＢのＭＡＣアドレスを記憶する。そして、機器ＢのＭＡＣアドレス宛にリスタート許可Ｆ４０６を送信した後、リスタート開始Ｆ４０７を送信し、リスタート状態へ移行する。
【００２５】
機器Ｂは、リスタート許可Ｆ４０６を受信したことを記憶しておき、リスタート開始の受信を待つ。そして、リスタート開始Ｆ４０７を受信するとリスタート状態へ移行する。
【００２６】
ここで、リスタート状態とは一旦マスター、もしくはスレーブとしての役割を解除し、再度ネットワークを構築しようとする状態のことをいう。リスタート要求とは、リスタート状態への移行を要求する信号のことをいう。
【００２７】
リスタート状態へ移行した機器Ａは、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間経過するのを待つ。
【００２８】
リスタート状態へ移行した機器Ｂは、マスター問合せ起動時間をＴＳに設定し、ＴＳ時間経過するのを待つ。ここで、マスター問合せ起動時間ＴＳはマスター問合せ起動時間ＴＬよりも短い値に設定される。これにより、リスタート要求を送信した機器Ｂがリスタート要求を受信した機器Ａよりも先にマスター問合せを送信するようになる。
【００２９】
つまり、各機器にはリスタート要求を受信した場合に設定するＴＬと、リスタート要求を送信し、リスタート許可を受信した場合に設定するＴＳの値を予めＲＡＭ２０５、３０５に記憶しておく。そして、状況に応じてＴＬもしくはＴＳを設定する。
【００３０】
機器Ｂはマスター問合せ起動時間ＴＳが経過すると、マスター問合せＦ４０８をブロードキャスト送信する。そして、他の機器からマスター宣言メッセージの受信がないまま応答待ち時間が経過すると、マスター宣言メッセージＦ４０９をブロードキャスト送信する。こうして、機器Ｂはその後マスターとして動作する。
【００３１】
一方、機器Ａはマスター問合せ起動時間ＴＬが経過すると、マスター問合せＦ４１０をブロードキャスト送信する。そして、マスターとなっている機器Ｂからのマスター宣言メッセージＦ４１１を受信すると、スレーブ宣言メッセージＦ４１２を機器Ｂ宛に送信する。こうして、機器Ａはその後スレーブとして動作する。
【００３２】
図５は、本実施例における各機器の動作アルゴリズムを示す図である。
【００３３】
通信設定ボタンが押されることにより、アドホックネットワークへの接続処理が開始されると、マスター問合せをブロードキャスト送信する（ステップＳ５０１）。
【００３４】
そして、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを判別する（ステップＳ５０２）。マスター宣言メッセージを受信することにより、マスター機器が検知された場合は（ステップＳ５０２のＹｅｓ）、リスタート処理を行う（ステップＳ５０３）。リスタート処理の詳細は、図６を参照して後述する。マスター宣言メッセージを受信せずに応答待ち時間が経過した場合は、マスター機器が検知されなかったと判断し（ステップＳ５０２のＮｏ）、マスター処理を行う（ステップＳ５０４）。マスター処理の詳細は図７を参照して後述する。
【００３５】
図６は、図５のフローにおけるリスタート処理（Ｓ５０３）の動作アルゴリズムを示す図である。
【００３６】
リスタート処理を開始する機器は、まずマスター機器に対してリスタート要求を送信する（ステップＳ６０１）。これは、図４におけるリスタート要求Ｆ４０５の送信に該当する。
【００３７】
ステップＳ６０２では、マスター機器からのリスタート許可を受信したか否かを判別する。リスタート許可を受信した場合は（ステップＳ６０２のＹｅｓ）、リスタート許可を受信したことを記憶してステップＳ６０３へ進む。リスタート許可を受信しない場合は（ステップＳ６０２のＮｏ）、処理を終了する。
【００３８】
ステップＳ６０３では、マスター機器からのリスタート開始を受信したか否かを判別する。リスタート開始を受信した場合は（ステップＳ６０３のＹｅｓ）、ステップＳ６０４へ進み、リスタート開始を受信しない場合は（ステップＳ６０３のＮｏ）、処理を終了する。
【００３９】
ステップＳ６０４では、マスター問合せ起動時間をＴＳに設定する。そして、マスター問合せ起動時間ＴＳが経過するのを待つ（ステップＳ６０５）。
【００４０】
マスター問合せ起動時間ＴＳが経過すると、マスター問合せをブロードキャスト送信する（ステップＳ６０６）。これは、図４におけるマスター問合せＦ４０８の送信に該当する。
【００４１】
ステップＳ６０７では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを判別する。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ６０７のＹｅｓ）、ステップＳ６０８へ進む。マスター機器を検知しない場合は（ステップＳ６０７のＮｏ）、ステップＳ６０９へ進む。
【００４２】
ステップＳ６０８では、マスター機器宛にスレーブ宣言メッセージを送信する。なお、マスター機器のＭＡＣアドレスは、マスター宣言メッセージの送信元ＭＡＣアドレスを見ることによって記憶することができる。
【００４３】
ステップＳ６０９では、マスター機器を検知しなかったため、自らマスター機器となり、マスター宣言メッセージを送信する。これは、図４におけるマスター宣言メッセージＦ４０９の送信に該当する。
【００４４】
その後、マスター宣言に対する応答期間内にスレーブ宣言メッセージを受信するか否かを判別する（ステップＳ６１０）。スレーブ宣言メッセージを受信した場合は（ステップＳ６１０のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（ステップＳ６１０のＮｏ）、ステップＳ６０９へ戻り、再びマスター宣言メッセージを送信する。
【００４５】
図７は、図５のフローにおけるマスター処理（Ｓ５０４）の動作アルゴリズムを示す図である。
【００４６】
マスター処理を開始する機器は、マスター宣言メッセージを送信する（ステップＳ７０１）。これは、図４におけるマスター宣言メッセージＦ４０２に該当する。
【００４７】
その後、スレーブ宣言を受信したか調べる（ステップＳ７０２）。スレーブ宣言を受信した場合は（ステップＳ７０１のＹｅｓ）、ステップＳ７０１に戻り、再びマスター宣言メッセージを送信する。スレーブ宣言を受信しない場合は（ステップＳ７０１のＮｏ）、ステップＳ７０３に進み、スレーブ宣言を受信した場合は（ステップＳ７０２のＹｅｓ）、ステップＳ７０１に戻る。
【００４８】
ステップＳ７０３では、リスタート要求を受信したかを調べ、リスタート要求を受信した場合は（ステップＳ７０３のＹｅｓ）、ステップＳ７０４へ進む。リスタート要求を受信しない場合は（ステップＳ７０３のＮｏ）、ステップＳ７０１に戻り、再びマスター宣言メッセージを送信する。ステップＳ７０４では、リスタート要求の送信元ＭＡＣアドレスを宛先としてリスタート許可を送信する。これは、図４におけるリスタート許可Ｆ４０６の送信に該当する。
【００４９】
次に、ステップＳ７０５では、リスタート要求の送信元ＭＡＣアドレスを宛先としてリスタート開始を送信する。これは、図４におけるリスタート開始Ｆ４０７の送信に該当する。
【００５０】
リスタート開始を送信した後、マスター問合せ起動時間をＴＬに設定する（ステップＳ７０６）。そして、マスター問合せ起動時間ＴＬが経過するのを待った後（ステップＳ７０７）、マスター問合せをブロードキャスト送信する（ステップＳ７０８）。これは、図４におけるマスター問合せＦ４１０の送信に該当する。
【００５１】
ステップＳ７０９では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ７０９のＹｅｓ）、マスター機器宛にスレーブ宣言メッセージを送信する（ステップＳ７１０）。これは、図４におけるスレーブ宣言メッセージＦ４１２の送信に該当する。マスター機器を検知しなかった場合は（ステップＳ７０９のＮｏ）、ステップＳ７１１へ進み、自らマスター機器となりマスター宣言メッセージを送信する。その後、マスター宣言に対する応答期間内にスレーブ宣言メッセージを受信するか否かを判別する（ステップＳ７１２）。スレーブ宣言メッセージを受信した場合は（ステップＳ７１２のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（ステップＳ７１２のＮｏ）、ステップＳ７１１へ戻り、再びマスター宣言メッセージを送信する。
【００５２】
なお、本実施例では、新たにネットワークに参加する機器は、マスター機器を検知すると、常にリスタート要求を行うものとして説明したが、リスタート要求を行うか否かは機器によって予め設定しておいてもよい。たとえば、デジタルカメラはマスターを検知するとリスタート要求を送信し、プリンタはマスターを検知してもリスタート要求を送信しない設定にしておく。これにより、マスターに適しているとして予め決められた機器がネットワークに参加するときのみマスターとスレーブを交換することができる。
【００５３】
本実施例では、新たにネットワークに参加する機器が、既にマスター機器として動作している機器に対してリスタート要求を送信し、リスタート許可を受信した場合にはリスタート状態へ移行し、前記マスター機器よりも先にマスター問合せを送信する。これにより、既にネットワークにマスター機器が存在する場合であっても、新たにネットワークに参加した機器がマスターとして動作することができる。
【００５４】
（第２の実施形態）
図８は、第２の実施形態に係る通信システムの構成を示す図である。
【００５５】
図８において、８０１、８０２及び８０３はそれぞれプリンタ８０１（機器Ａ）、デジタルカメラ８０２（機器Ｂ）及びデジタルカメラ８０３（機器Ｃ）であり、３者間でアドホックネットワークを構成する。各機器はそれぞれ、無線通信機能８０７、８０８、８０９として８０２．１１無線ＬＡＮを備えており、通信設定ボタン８０４、８０５、８０６を押下することでアドホックネットワークに接続することが可能である。なお、各機器のブロック構成は第１の実施形態における図２、３と同じであるのでここでは説明を省略する。
【００５６】
図９は、第２の実施形態における動作シーケンスを示す図である。
【００５７】
機器Ａの通信設定ボタン８０４が押されるとアドホックネットワークへの接続処理が開始され、マスター問合せＦ９０１がブロードキャスト送信される。
【００５８】
マスター問合せに対する応答がないまま応答待ち時間が経過すると、機器Ａはアドホックネットワークに参加しているマスター機器がいないと判断し、マスター宣言メッセージＦ９０２を送信してマスター機器となる。その後も機器Ａはマスター宣言メッセージを定期的にブロードキャスト送信する。
【００５９】
その後、機器Ｂの通信設定ボタン８０５が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ９０３がブロードキャスト送信される。
【００６０】
また、機器Ｃの通信設定ボタン８０６が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ９０４がブロードキャスト送信される。
【００６１】
マスター問合せに対する機器Ａからのマスター宣言メッセージＦ９０５を機器Ｂ、機器Ｃが受信すると、機器Ｂ、機器Ｃはマスター機器がアドホックネットワークに存在することを検知する。そして、機器Ｂ、機器Ｃはマスタースレーブ交換を開始するために機器Ａにそれぞれリスタート要求Ｆ９０６、Ｆ９０７を送信する。
【００６２】
ここで、機器Ａがマスター宣言メッセージＦ９０５の送信後、次のマスター宣言メッセージ送信までの応答待ち時間内に、機器Ｂ、機器Ｃからのリスタート要求Ｆ９０６、Ｆ９０７を受信したとする。
【００６３】
機器Ａは、受信したリスタート要求Ｆ９０６、Ｆ９０７の送信元ＭＡＣアドレスから機器Ｂ、機器ＣのＭＡＣアドレスを記憶する。そして、機器Ｂ宛にリスタート拒否Ｆ９０８を送信し、機器Ｃ宛にリスタート許可Ｆ９０９を送信する。その後、リスタート開始Ｆ９１０、Ｆ９１１を機器Ｂ及び機器Ｃに対して送信し、リスタート状態へ移行する。
【００６４】
なお、リスタート拒否もしくはリスタート許可の決定は、特定の判別基準に従うこととする。一例として、一番最初に受信したリスタート要求の送信元機器に対してリスタート許可を送信する方法や、送信元機器のＭＡＣアドレスの辞書式順序を見て、最も大きい値の機器に対してリスタート許可を送信する方法等がある。
【００６５】
機器Ｂおよび機器Ｃは、それぞれリスタート開始Ｆ９１０、Ｆ９１１を受信するとリスタート状態へ移行する。
【００６６】
リスタート状態へ移行した機器Ａは、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間経過するのを待つ。
【００６７】
リスタート状態へ移行した機器Ｂは、リスタート許可を受信していないので、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間が経過するのを待つ。
【００６８】
リスタート状態へ移行した機器Ｃは、リスタート許可を受信していることを記憶しているので、マスター問合せ起動時間をＴＳに設定し、ＴＳ時間が経過するのを待つ。ここで、マスター問合せ起動時間ＴＬはマスター問合せ起動時間ＴＳよりも長く設定される。これにより、リスタート許可を受信した機器Ｃが最初にマスター問合せを送信するようになる。
【００６９】
つまり、各機器にはリスタート要求を受信した場合、又はリスタート要求を送信し、リスタート拒否を受信した場合に設定するＴＬと、リスタート要求を送信し、リスタート許可を受信した場合に設定するＴＳの値を予めＲＡＭ２０５，３０５に記憶しておく。そして、状況に応じてＴＬもしくはＴＳを設定する。
【００７０】
機器Ｃがマスター問合せＦ９１２をブロードキャスト送信し、他の機器からのマスター宣言メッセージがないまま応答待ち時間が経過すると、マスター宣言メッセージＦ９１３をブロードキャスト送信してマスター機器となる。
【００７１】
一方、機器Ａ及び機器Ｂはマスター問合せ起動時間ＴＬの経過後、マスター問合せＦ９１４、Ｆ９１５をブロードキャスト送信する。既にマスター機器になっている機器Ｃは、マスター問合せに対する応答として、マスター宣言メッセージＦ９１６を送信する。マスター宣言メッセージを受信した機器Ａ、機器Ｂは、スレーブ宣言メッセージＦ９１７、Ｆ９１８を機器Ｃ宛に送信してスレーブ機器となる。
【００７２】
本実施例における各機器の動作アルゴリズムは、第１の実施形態の図５で示されるフローと同じであるが、リスタート処理（Ｓ５０３）とマスター処理（Ｓ５０４）の動作が異なる。
【００７３】
本実施例におけるリスタート処理（図５のＳ５０３）の動作アルゴリズムについて図１０を用いて説明する。
【００７４】
リスタート処理を開始する機器は、マスター機器に対してリスタート要求を送信する（ステップＳ１００１）。これは、図９におけるリスタート要求Ｆ９０６またはＦ９０７の送信に該当する。
【００７５】
ステップＳ１００２では、マスター機器からのリスタート許可を受信したか否かを判別する。リスタート許可を受信した場合は（ステップＳ１００２のＹｅｓ）、リスタート許可を受信したことを記憶してステップＳ１００３へ進み、リスタート許可を受信しない場合は（ステップＳ１００２のＮｏ）、ステップＳ１００９へ進む。
【００７６】
ステップＳ１００３では、マスター機器からのリスタート開始を受信したか否かを判別する。リスタート開始を受信した場合は（ステップＳ１００３のＹｅｓ）、ステップＳ１００４へ進み、リスタート開始を受信しない場合は（ステップＳ１００３のＮｏ）、処理を終了する。
【００７７】
ステップＳ１００４では、マスター問合せ起動時間をＴＳに設定する。そして、マスター問合せ起動時間ＴＳが経過するのを待つ（ステップＳ１００５）。
【００７８】
マスター問合せ起動時間ＴＳが経過したら、マスター問合せをブロードキャスト送信する（ステップＳ１００６）。これは、図９におけるマスター問合せＦ９１２の送信に該当する。
【００７９】
ステップＳ１００７では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ１００７のＹｅｓ）、ステップＳ１００８へ進む。マスター機器を検知しない場合は（ステップＳ１００７のＮｏ）、ステップＳ１０１１へ進む。
【００８０】
ステップＳ１００８では、マスター機器宛にスレーブ宣言メッセージを送信する。なお、マスター機器のＭＡＣアドレスは、マスター宣言メッセージの送信元ＭＡＣアドレスを見ることによって記憶することができる。
【００８１】
ステップＳ１００９では、マスター機器からリスタート拒否を受信したか否かを判別する。リスタート拒否を受信した場合は（ステップＳ１００９のＹｅｓ）、ステップＳ１０１０に進み、リスタート拒否を受信しない場合は（ステップＳ１００９のＮｏ）、処理を終了する。
【００８２】
ステップＳ１０１０では、マスター機器からのリスタート開始を受信したか否かを判別する。リスタート開始を受信した場合は（ステップＳ１０１０のＹｅｓ）、ステップＳ１０１１へ進み、リスタート開始を受信しない場合は（ステップＳ１０１０のＮｏ）、処理を終了する。
【００８３】
ステップＳ１０１１では、マスター問合せ起動時間をＴＬに設定し、ステップＳ１００５に進む。
【００８４】
ステップＳ１０１２では、自らマスター機器となり、マスター宣言メッセージをブロードキャスト送信する。これは、図９におけるマスター宣言メッセージＦ９１３の送信に該当する。
【００８５】
ステップＳ１０１３では、マスター宣言に対する応答期間内にスレーブ宣言メッセージを受信したか否かを判別する。スレーブ宣言メッセージを受信した場合は（ステップＳ１０１３のＹｅｓ）、処理を終了し、スレーブ宣言メッセージを受信しない場合は（ステップＳ１０１３のＮｏ）、ステップＳ１０１２へ戻り、再びマスター宣言メッセージを送信する。
【００８６】
このように、本実施例では、リスタート要求を送信した機器のうち、リスタート許可を受信した機器はリスタート許可を受信しない機器よりもマスター問合せ起動時間が短い値に設定されるため、先にマスター問合せを送信することになる。
【００８７】
図１１は、本実施例におけるマスター処理（図５のＳ５０４）の動作アルゴリズムを示す図である。なお、図１１のフローにおけるＳ１１０１〜Ｓ１１０３、Ｓ１１０５〜Ｓ１１１２は第一の実施例における図７のフロー中のＳ７０１〜Ｓ７０３、Ｓ７０５〜Ｓ７１２と同じであり、Ｓ１１０４の処理がＳ７０４の処理と異なる。
【００８８】
ステップＳ１１０４では、リスタート要求を送信してきた機器全てに対して、リスタート許可を送信するのではなく、それぞれの機器毎にリスタート拒否、もしくはリスタート許可を送信する。
【００８９】
このように、リスタート要求を送信してきた複数の機器のうち、新たにマスター機器になる機器に対してのみリスタート許可を送信する。
【００９０】
なお、本実施例では、新たにネットワークに参加する機器は、マスター機器を検知すると、常にリスタート要求を行うものとして説明したが、リスタート要求を行うか否かは機器によって予め設定しておいてもよい。たとえば、デジタルカメラはマスターを検知するとリスタート要求を送信し、プリンタはマスターを検知してもリスタート要求を送信しない設定にしておく。これにより、マスターに適しているとして予め決められた機器がネットワークに参加するときのみマスターとスレーブを交換することができる。
【００９１】
本実施例によれば、マスター機器に対して複数の機器からリスタート要求があった場合は、新たにマスター機器になるべき機器に対してのみリスタート許可が送信される。そして、リスタート許可を受信した機器は、それまでのマスター機器やリスタート拒否を受信した機器よりも先にマスター問合せを送信するようになるので、新たにマスター機器になることができる。
【００９２】
なお、本実施例では、リスタート要求を送信した機器のうち、新たなマスターになる機器以外の機器に対してはリスタート拒否を送信していたが、必ずしもリスタート拒否を送信する必要はない。例えば、リスタート要求を送信した機器は、リスタート許可の受信がないままリスタート開始を受信した場合は、マスター問合せ起動時間をＴＬに設定することにより、同様の作用効果を得ることができる。
【００９３】
（第３の実施形態）
第３の実施形態に係る通信システムの構成は、第１の実施形態における図１で示される通信システムの構成と同じである。
【００９４】
図１２は、本実施例における動作シーケンスを示す図である。
【００９５】
機器Ａの通信設定ボタン１０３が押されるとアドホックネットワークへの接続処理が開始され、マスター問合せＦ１２０１がブロードキャスト送信される。
【００９６】
マスター問合せに対する応答がないまま応答待ち時間が経過すると、機器Ａはアドホックネットワークに参加しているマスター機器がいないと判断し、マスター宣言メッセージＦ１２０２を送信してマスター機器となる。その後も機器Ａはマスター宣言メッセージを定期的にブロードキャスト送信する。
【００９７】
次に機器Ｂの通信設定ボタン１０４が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ１２０３がブロードキャスト送信される。
【００９８】
その後、マスター問合せに対する機器Ａからのマスター宣言メッセージＦ１２０４を機器Ｂが受信すると、機器Ｂはマスター機器がネットワークに存在することを検知する。
【００９９】
そして、マスタースレーブ交換判別処理Ｆ１２０５が開始される。マスタースレーブ交換判別処理について図１５を参照して説明する。
【０１００】
マスター機器がアドホックネットワークに存在することを検知した機器Ｂは、マスター（機器Ａ）に対してスレーブ宣言メッセージＦ１５０１（図１５）を送信する。
【０１０１】
スレーブ宣言メッセージを受信した機器Ａは、機器Ｂ宛に機器能力収集要求Ｆ１５０２を送信する。なお、機器能力収集要求の中に自身の機器能力も入れて送信する。
【０１０２】
機器Ｂは、受信した機器能力収集要求の中に含まれるマスター機器の機器能力を取得する。また、機器能力収集応答Ｆ１５０３として機器Ｂ自身の機器能力を機器Ａへ送信する。なお、後述するように、機器能力の比較は機器Ｂ側で行われるため、機器能力収集応答Ｆ１５０３を返信しなくてもよい。
【０１０３】
ここで機器Ｂは、機器Ａの機器能力と機器Ｂ自身の機器能力を比較し、どちらがマスターにふさわしいかを決定する。
【０１０４】
図１６は、機器能力および機器能力比較のデータ構造、および表示部にて表示される通信可能機器一覧を示す図である。
【０１０５】
機器能力収集要求Ｆ１５０２、機器能力収集応答Ｆ１５０３のデータ構造の一例を１６０１に示す。
【０１０６】
宛先ＭＡＣアドレス、送信元ＭＡＣアドレスに続いて、メッセージ種別が記述される。メッセージ種別には、機器能力収集要求または機器能力収集応答のどちらかを示す値が格納される。さらに、機器能力のデータが機器能力属性値を列挙する形で記述される。データ構造１６０１では、機器能力属性が４項目からなる例が示されている。
【０１０７】
機器能力比較のデータ構造の一例を１６０２に示す。１６０２では、機器のＭＡＣアドレスと機器能力属性値がマスター機器と自機器で比較できるように列挙される。
【０１０８】
ここでは機器能力属性として、機器ＩＤ、機器種別、表示部能力、操作部能力が示されている。これらの情報を比較することにより、どちらがマスターに適しているか判断を行う。
【０１０９】
例えば、ユーザインターフェースの能力について比較が行われ、画像を表示することができる表示部能力とキーやボタンの数が多い操作部能力の高いデジタルカメラがマスターに適している、と判断される。なお、この判断は所定の判断基準によって機器が自動的に行っても良いし、ユーザの指定により行っても良い。
【０１１０】
新しくマスター機器になるデジタルカメラでは、通信可能機器一覧として機器種別と機器ＩＤを表示部３１２に表示することができる。デジタルカメラの表示部３１２に表示される通信可能機器一覧の一例を１６０３に示す。これによって、ユーザはネットワーク参加機器を知ることができ、データ転送する際にはユーザインターフェースを使用して送信先の機器を選択することもできる。
【０１１１】
このように、機器能力を比較した結果、マスターとスレーブを交換する場合は、機器Ｂは機器Ａに対してリスタート要求Ｆ１５０４を送信する。そして、リスタート要求を受信した機器Ａは機器Ｂ宛にリスタート許可Ｆ１５０５を送信する。機器Ｂは、リスタート許可Ｆ１５０５を受信するとリスタート許可を受信したことを記憶してリスタート開始の受信を待つ。
【０１１２】
図１２の説明に戻る。次に機器Ａはリスタート開始Ｆ１２０６を機器Ｂに対して送信し、リスタート状態へ移行する。機器Ｂはリスタート開始を受信すると、リスタート状態へ移行する。
【０１１３】
リスタート状態へ移行した機器Ａは、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間が経過するのを待つ。
【０１１４】
リスタート状態へ移行した機器Ｂは、リスタート許可を受信したことを記憶しているので、マスター問合せ起動時間をＴＳに設定し、ＴＳ時間が経過するのを待つ。ここで、マスター問合せ起動時間ＴＳはマスター問合せ起動時間ＴＬよりも短い値に設定される。これにより、新しくマスターになる機器Ｂが機器Ａよりも先にマスター問合せを送信するようになる。
【０１１５】
つまり、各機器にはリスタート要求を受信した場合に設定するＴＬと、リスタート要求を送信し、リスタート許可を受信した場合に設定するＴＳの値をＲＡＭ２０５、３０５に予め記憶しておく。そして、状況に応じてＴＬもしくはＴＳを設定する。
【０１１６】
機器Ｂはマスター問合せ起動時間ＴＳが経過すると、マスター問合せＦ１２０７をブロードキャスト送信する。そして、他の機器からマスター宣言メッセージの受信がないまま応答待ち時間が経過すると、マスター宣言メッセージＦ１２０８をブロードキャスト送信する。こうして、機器Ｂはその後マスターとして動作する。
【０１１７】
一方、機器Ａはマスター問合せ起動時間ＴＬが経過すると、マスター問合せＦ１２０９をブロードキャスト送信する。そして、マスター機器になっている機器Ｂからのマスター宣言メッセージＦ１２１０を受信すると、スレーブ宣言メッセージＦ１２１１を機器Ｂ宛に送信する。こうして、機器Ａはその後スレーブとして動作する。
【０１１８】
このようにして、機器Ａと機器Ｂの間でマスターとスレーブの役割が交換される。
【０１１９】
本実施例における各機器の動作アルゴリズムは、第１の実施形態の図５で示されるフローと同じであるが、リスタート処理（Ｓ５０３）とマスター処理（Ｓ５０４）の動作が異なる。
【０１２０】
本実施例におけるリスタート処理（図５のＳ５０３）の動作アルゴリズムについて図１３を用いて説明する。
【０１２１】
まず、ステップＳ１３０１では、マスター機器宛にスレーブ宣言メッセージを送信する。これは、図１５におけるスレーブ宣言メッセージＦ１５０１の送信に該当する。
【０１２２】
ステップＳ１３０２では、マスター機器から機器能力収集要求を受信したか否かが判別される。機器能力収集要求を受信した場合は（ステップＳ１３０２のＹｅｓ）、ステップＳ１７０３へ進み、機器能力収集要求を受信しない場合は（ステップＳ１３０２のＮｏ）、受信待ちを継続する。
【０１２３】
ステップＳ１３０３では、マスター機器宛に機器能力収集応答を送信する。これは、図１５における機器能力収集応答Ｆ１５０３の送信に該当する。
【０１２４】
ステップＳ１３０４では、図１６で示したような機器能力の比較を行い、マスターとスレーブを交換すべきか判別を行う。そして、マスタースレーブ交換をする場合は（ステップＳ１３０５のＹｅｓ）、ステップＳ１３０６へ進み、マスタースレーブ交換をしない場合は（ステップＳ１３０６のＮｏ）、処理を終了する。
【０１２５】
ステップＳ１３０６では、マスター機器宛にリスタート要求を送信する。これは、図１５におけるリスタート要求Ｆ１５０４の送信に該当する。
【０１２６】
ステップＳ１３０７では、マスター機器からリスタート許可を受信したか否かが判別される。リスタート許可を受信した場合は（ステップＳ１３０７のＹｅｓ）、ステップＳ１３０８へ進む。リスタート許可を受信しない場合は（ステップＳ１３０７のＮｏ）、処理を終了する。
【０１２７】
ステップＳ１３０８では、リスタート開始を受信したか否かを判別する。リスタート開始を受信した場合は（ステップＳ１３０８のＹｅｓ）、ステップＳ１３０９へ進み、マスター問合せ起動時間をＴＳに設定する。リスタート開始を受信しない場合は（ステップＳ１３０８のＮｏ）、処理を終了する。
【０１２８】
ステップＳ１３１０では、マスター問合せ起動時間ＴＳが経過するのを待つ。そして、マスター問合せ起動時間ＴＳが経過したら、マスター問合せをブロードキャスト送信する（ステップＳ１３１１）。これは、図１２におけるマスター問合せＦ１２０７の送信に該当する。
【０１２９】
ステップＳ１３１２では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ１３１２のＹｅｓ）、ステップＳ１３１３へ進み、マスター機器を検知しない場合は（ステップＳ１３１２のＮｏ）、ステップＳ１３１４へ進む。
【０１３０】
ステップＳ１３１３では、マスター機器宛にスレーブ宣言メッセージを送信する。
【０１３１】
ステップＳ１３１４では、マスター機器を検知しなかったので、自らマスター機器となり、マスター宣言メッセージを送信する。これは、図１２におけるマスター宣言メッセージＦ１２０８の送信に該当する。
【０１３２】
ステップＳ１３１５では、マスター宣言に対する応答期間内にスレーブ宣言メッセージを受信するか否かを判別する。スレーブ宣言メッセージを受信した場合は（ステップＳ１３１５のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（ステップＳ１３１５のＮｏ）、ステップＳ１３１４へ戻り、定期的にマスター宣言メッセージを送信する。
【０１３３】
図１４は、本実施例におけるマスター処理（図５のＳ５０４）の動作アルゴリズムを示す図である。
【０１３４】
まず、ステップＳ１４０１ではマスター宣言メッセージをブロードキャスト送信する。これは、図１２におけるマスター宣言メッセージＦ１２０４の送信に該当する。
【０１３５】
そして、ステップＳ１４０２ではマスター宣言に対する応答として、スレーブ宣言メッセージを受信したか否かを判別する。スレーブ宣言メッセージを受信した場合は（ステップＳ１４０２のＹｅｓ）、ステップＳ１４０３へ進み、スレーブ宣言メッセージを受信しない場合は（ステップＳ１４０２のＮｏ）、ステップＳ１４０１に戻る。
【０１３６】
ステップＳ１４０３では、スレーブ宣言メッセージの送信元機器に対して機器能力収集要求を送信する。これは、図１５における機器能力収集要求Ｆ１５０２の送信に該当する。
【０１３７】
ステップＳ１４０４では、機器能力収集応答を受信したか否かの判別を行う。機器能力収集応答を受信した場合は（ステップＳ１４０４のＹｅｓ）、ステップＳ１４０５へ進み、機器能力収集応答を受信しない場合は（ステップＳ１４０４のＮｏ）、受信待ちを継続する。
【０１３８】
ステップＳ１４０５では、リスタート要求を受信したか否かを判別する。リスタート要求を受信した場合は（ステップＳ１４０５のＹｅｓ）、ステップＳ１４０６へ進み、リスタート要求を受信しない場合は（ステップＳ１４０５のＮｏ）、処理を終了する。
【０１３９】
ステップＳ１４０６では、リスタート要求の送信元機器に対してリスタート許可を送信する。これは、図１５におけるリスタート許可Ｆ１５０５の送信に該当する。
【０１４０】
ステップＳ１４０７では、リスタート要求の送信元機器に対してリスタート開始を送信する。これは、図１２におけるリスタート開始Ｆ１２０６の送信に該当する。
【０１４１】
そして、マスター問合せ起動時間をＴＬに設定する（ステップＳ１４０８）。その後、マスター問合せ起動時間ＴＬが経過するのを待ち（ステップＳ１４０９）、ＴＬ時間が経過したら、マスター問合せをブロードキャスト送信する（ステップＳ１４１０）。これは、図１２におけるマスター問合せＦ１２０７の送信に該当する。
【０１４２】
ステップＳ１４１１では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ１４１１のＹｅｓ）、ステップＳ１４１２へ進む。マスター機器を検知しない場合は（ステップＳ１４１１のＮｏ）、ステップＳ１４１３に進む。
【０１４３】
ステップＳ１４１２では、マスター機器宛にスレーブ宣言メッセージを送信する。これは、図１２におけるスレーブ宣言メッセージＦ１２１１の送信に該当する。
【０１４４】
ステップＳ１４１３では、マスター機器を検知しなかったので、自らマスター機器となり、マスター宣言メッセージを送信する。
【０１４５】
ステップＳ１４１４では、マスター宣言に対する応答期間内にスレーブ宣言メッセージを受信するか否かを判別する。スレーブ宣言メッセージを受信した場合は（ステップＳ１４１４のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（ステップＳ１４１４のＮｏ）、ステップＳ１４１２へ戻り、定期的にマスター宣言メッセージを送信する。
【０１４６】
本実施例によれば、新たにネットワークに参加した機器は、マスターから機器能力を受信し、マスター機器と自身の機器能力を比較する。そして、自分の方がマスター機器に適していると判断した場合にのみ第１の実施形態と同様にリスタート要求を送信することにより、新たにマスター機器になる。従って、既にマスター機器が存在する場合であっても、マスターに適した機器が新たにマスター機器になることができる。
【０１４７】
（第４の実施形態）
第４の実施形態に係る通信システムの構成は、第２の実施形態における図８で示される通信システムの構成と同じである。
【０１４８】
図１７は、本実施形態における動作シーケンスを示す図である。
【０１４９】
機器Ａの通信設定ボタン８０４が押されるとアドホックネットワークへの接続処理が開始され、マスター問合せＦ１７０１がブロードキャスト送信される。
【０１５０】
マスター問合せに対する応答がないまま応答待ち時間が経過すると、機器Ａはアドホックネットワークに参加しているマスター機器がいないと判断し、マスター宣言メッセージＦ１７０２を送信してマスター機器となる。その後も機器Ａはマスター宣言メッセージを定期的にブロードキャスト送信する。
【０１５１】
次に、機器Ｂの通信設定ボタン８０５が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ１７０３がブロードキャスト送信される。
【０１５２】
また、機器Ｃの通信設定ボタン８０６が押されてアドホックネットワークへの接続処理が開始されると、マスター問合せＦ１７０４がブロードキャスト送信される。
【０１５３】
その後、機器Ｂ、機器Ｃはそれぞれのマスター問合せに対する機器Ａからのマスター宣言メッセージＦ１７０５を受信すると、マスター機器がネットワークに存在することを検知する。そして、マスタースレーブ交換判別処理Ｆ１７０６が開始される。マスタースレーブ交換判別処理について図１８を参照して説明する。
【０１５４】
マスター機器がアドホックネットワークに存在することを検知した機器Ｂ、機器Ｃは、マスター（機器Ａ）に対してスレーブ宣言メッセージＦ１８０１、Ｆ１８０２（図１８）を送信する。
【０１５５】
スレーブ宣言メッセージを受信した機器Ａは、機器Ｂ、機器Ｃに対して機器能力収集要求Ｆ１８０３、Ｆ１８０４を送信する。なお、機器能力収集要求の中に自身の機器能力も入れて送信する。
【０１５６】
機器能力収集要求を受信した機器Ｂ、機器Ｃは、機器能力収集応答Ｆ１８０５、Ｆ１８０６として自身の機器能力を機器Ａへ送信する。
【０１５７】
機器Ａは、機器Ａ自身の機器能力と機器能力収集応答Ｆ１８０５、Ｆ１８０６で取得した機器Ｂ、機器Ｃの機器能力を比較し、機器Ｂまたは機器Ｃとマスタースレーブ交換を行うか否かを判別する。ここでは、機器Ｃとマスタースレーブ交換を行うと判別した場合について、説明を行う。
【０１５８】
機器Ａは機器Ｃとの間でマスターとスレーブの役割を交換すると判断した場合、機器Ｃに対してマスター指定Ｆ１８０７を送信する。機器Ｃは、機器Ａからマスター指定Ｆ１８０７を受信すると、機器Ａ宛にリスタート要求Ｆ１８０８を送信する。
【０１５９】
機器Ａは、機器Ｃからリスタート要求Ｆ１８０８を受信すると、機器Ｃに対してリスタート許可Ｆ１８０９を送信する。機器Ｃは、機器Ａからリスタート許可Ｆ１８０９を受信すると、リスタート許可を受信したことを記憶してリスタート開始の受信を待つ。
【０１６０】
図１７の説明に戻る。機器Ａは、機器Ｂ、機器Ｃに対してリスタート開始Ｆ１７０７、Ｆ１７０８を送信し、リスタート状態へ移行する。リスタート開始Ｆ１７０７、Ｆ１７０８を受信した機器Ｂ、機器Ｃもリスタート状態へ移行する。
【０１６１】
リスタート状態へ移行した機器Ａは、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間が経過するのを待つ。
【０１６２】
リスタート状態へ移行した機器Ｂは、マスタースレーブ交換判別処理においてリスタート許可を受信していないので、マスター問合せ起動時間をＴＬに設定し、ＴＬ時間が経過するのを待つ。
【０１６３】
リスタート状態へ移行した機器Ｃは、マスタースレーブ交換判別処理においてリスタート許可を受信したことを記憶しているので、マスター問合せ起動時間をＴＳに設定し、ＴＳ時間が経過するのを待つ。ここで、マスター問合せ起動時間ＴＳはマスター問合せ起動時間ＴＬよりも短い値に設定される。これにより、新しくマスターになる機器Ｃが機器Ａ、機器Ｂよりも先にマスター問合せを送信するようになる。
【０１６４】
つまり、各機器にはリスタート要求を受信した場合に設定するＴＬと、リスタート要求を送信し、リスタート許可を受信した場合に設定するＴＳの値をＲＡＭ２０５、３０５に予め記憶しておく。そして、状況に応じてＴＬもしくはＴＳを設定する。
【０１６５】
機器Ｃはマスター問合せ起動時間ＴＳが経過すると、マスター問合せＦ１７０９をブロードキャスト送信する。そして、他の機器からマスター宣言メッセージの受信がないまま応答待ち時間が経過すると、マスター宣言メッセージＦ１７１０をブロードキャスト送信する。こうして、機器Ｂはその後マスターとして動作する。
【０１６６】
一方、機器Ａはマスター問合せ起動時間ＴＬが経過すると、マスター問合せＦ１７１１をブロードキャスト送信する。そして、マスター機器になっている機器Ｃからのマスター宣言メッセージＦ１７１３を受信すると、スレーブ宣言メッセージＦ１７１４を機器Ｃに対して送信する。こうして、機器Ａはその後スレーブとして動作する。
【０１６７】
また、機器Ｂはマスター問合せ起動時間ＴＬが経過すると、マスター問合せＦ１７１２をブロードキャスト送信する。そして、マスター機器になっている機器Ｃからのマスター宣言メッセージＦ１７１３を受信すると、スレーブ宣言メッセージＦ１７１５を機器Ｃに対して送信する。こうして、機器Ｂはそのままスレーブとして動作する。
【０１６８】
本実施例における各機器の動作アルゴリズムは、第１の実施形態の図５で示されるフローと同じであるが、リスタート処理（Ｓ５０３）とマスター処理（Ｓ５０４）の動作が異なる。
【０１６９】
本実施例におけるリスタート処理（図５のＳ５０３）の動作アルゴリズムについて図１９を用いて説明する。
【０１７０】
まず、ステップＳ１９０１では、マスター機器に対してスレーブ宣言メッセージを送信する。これは、図１８におけるスレーブ宣言メッセージＦ１８０１およびＦ１８０２の送信に該当する。
【０１７１】
ステップＳ１９０２では、マスター機器から機器能力収集要求を受信するのを待つ。機器能力収集要求を受信した場合は（ステップＳ１９０２のＹｅｓ）、ステップＳ１９０３へ進み、機器能力収集要求を受信しない場合は（ステップＳ１９０２のＮｏ）、受信待ちを継続する。
【０１７２】
ステップＳ１９０３では、マスター機器宛に機器能力収集応答を送信する。これは、図１８における機器能力収集応答Ｆ１８０５またはＦ１８０６の送信に該当する。
【０１７３】
ステップＳ１９０４では、マスター機器からマスター指定を受信したか否かを判別する。マスター指定を受信した場合は（ステップＳ１９０４のＹｅｓ）、ステップＳ１９０５へ進み、マスター指定を受信しない場合は（ステップＳ１９０４のＮｏ）、ステップＳ１９０７へ進む。
【０１７４】
ステップＳ１９０５では、マスター機器に対してリスタート要求を送信する。これは、図１８におけるリスタート要求Ｆ１８０８の送信に該当する。
【０１７５】
ステップＳ１９０６では、マスター機器からリスタート許可を受信したか否かを判別する。リスタート許可を受信した場合は（ステップＳ１９０６のＹｅｓ）、リスタート許可を受信したことを記憶し、ステップＳ１９０７へ進む。リスタート許可を受信しない場合は（ステップＳ１９０６のＮｏ）、処理を終了する。
【０１７６】
ステップＳ１９０７では、リスタート開始を受信したか否かを判別する。リスタート開始を受信した場合は（ステップＳ１９０７のＹｅｓ）、ステップＳ１９０８へ進み、リスタート開始を受信しない場合は（ステップＳ１９０７のＮｏ）、処理を終了する。
【０１７７】
ステップＳ１９０８では、ステップＳ１９０６でリスタート許可を受信したことを記憶しているか否かにより処理が分かれる。リスタート許可を受信していた場合は（ステップＳ１９０８のＹｅｓ）、ステップＳ１９０９へ進み、マスター問合せ起動時間をＴＳに設定する。リスタート許可を受信していなかった場合は（ステップＳ１９０８のＮｏ）、ステップＳ１９１０へ進み、マスター問合せ起動時間をＴＬに設定する。
【０１７８】
そして、マスター問合せ起動時間が経過するのを待ち（ステップＳ１９１１）、マスター問合せ起動時間が経過したらマスター問合せを送信する（ステップＳ１９１２）。これは、図１７におけるマスター問合せＦ１７０９またはマスター問合せＦ１７１２の送信に該当する。
【０１７９】
ステップＳ１９１３では、マスター問合せの応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ１９１３のＹｅｓ）、ステップＳ１９１４へ進み、マスター機器を検知しない場合は（ステップＳ１９１３のＮｏ）、ステップＳ１９１５へ進む。
【０１８０】
ステップＳ１９１４では、マスター機器に対してスレーブ宣言メッセージを送信する。これは図１７におけるスレーブ宣言メッセージＦ１７１５の送信に該当する。
【０１８１】
ステップＳ１９１５では、自らマスター機器となり、マスター宣言メッセージを送信する。これは、図１７におけるマスター宣言メッセージＦ１７１３の送信に該当する。
【０１８２】
そして、スレーブ宣言メッセージを受信するか否かを判別し、スレーブ宣言メッセージを受信した場合は（Ｓ１９１６のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（Ｓ１９１６のＮｏ）、ステップＳ１９１５に戻り、定期的にマスター宣言メッセージを送信する。
【０１８３】
本実施例におけるマスター処理（図５のＳ５０４）の動作アルゴリズムについて図２０を用いて説明する。
【０１８４】
まず、ステップＳ２００１では、マスター宣言メッセージをブロードキャスト送信する。
【０１８５】
そして、ステップＳ２００２では、マスター宣言に対する応答としてスレーブ宣言メッセージを受信したか否かの判別を行う。スレーブ宣言メッセージを受信した場合は（ステップＳ２００２のＹｅｓ）、ステップＳ２００３へ進み、スレーブ宣言メッセージを受信しない場合は（ステップＳ２００２のＮｏ）、ステップＳ２００１に戻る。
【０１８６】
ステップＳ２００３では、スレーブ宣言メッセージの送信元機器に対して機器能力収集要求を送信する。これは、図１８における機器能力収集要求Ｆ１８０３およびＦ１８０４の送信に該当する。
【０１８７】
ステップＳ２００４では、スレーブ機器からの機器能力収集応答を受信したか否かを判別する。機器能力収集応答を受信した場合は（ステップＳ２００４のＹｅｓ）、ステップＳ２００５へ進み、機器能力収集応答を受信しない場合は（ステップＳ２００４のＮｏ）、処理を終了する。
【０１８８】
ステップＳ２００５では、機器能力比較によるマスタースレーブ交換判別処理を行い、マスタースレーブ交換をする場合は（ステップＳ２００６のＹｅｓ）、ステップＳ２００７へ進む。マスタースレーブ交換をしない場合は（ステップＳ２００６のＮｏ）、マスタースレーブ交換をせずに処理を終了する
ステップＳ２００７では、新たにマスター機器となるべき機器宛にマスター指定を送信する。これは、図１８におけるマスター指定Ｆ１８０７の送信に該当する。
【０１８９】
ステップＳ２００８では、マスター指定を送信した機器からのリスタート要求を受信したか否かを判別する。リスタート要求を受信した場合は（ステップＳ２００８のＹｅｓ）、ステップＳ２００９へ進み、リスタート要求を受信しない場合は（ステップＳ２００８のＮｏ）、処理を終了する。
【０１９０】
ステップＳ２００９では、リスタート要求の送信元機器に対してリスタート許可を送信する。これは、図１８におけるリスタート許可Ｆ１８０９の送信に該当する。
【０１９１】
ステップＳ２０１０では、スレーブ機器に対してリスタート開始を送信する。これは、図１７におけるリスタート開始Ｆ１７０７，１７０８の送信に該当する。
【０１９２】
そして、マスター問合せ起動時間をＴＬに設定する（ステップＳ２０１１）。その後、マスター問合せ起動時間ＴＬが経過するのを待ち（ステップＳ２０１２）、ＴＬ時間が経過したら、マスター問合せをブロードキャスト送信する（ステップＳ２０１３）。これは、図１７におけるマスター問合せＦ１７１１の送信に該当する。
【０１９３】
ステップＳ２０１４では、マスター問合せに対する応答待ち時間内にマスター宣言メッセージを受信したかを調べる。マスター宣言メッセージを受信することにより、マスター機器を検知した場合は（ステップＳ２０１４のＹｅｓ）、ステップＳ２０１５へ進む。マスター機器を検知しない場合は（ステップＳ２０１４のＮｏ）、ステップＳ２０１６に進む。
【０１９４】
ステップＳ２０１５では、新たなマスター機器宛にスレーブ宣言メッセージを送信する。これは、図１７におけるスレーブ宣言メッセージＦ１７１４の送信に該当する。
【０１９５】
ステップＳ２０１６では、自らマスター機器となり、マスター宣言メッセージを送信する。そして、スレーブ宣言メッセージを受信するか否かを判別し、スレーブ宣言メッセージを受信した場合は（Ｓ２０１７のＹｅｓ）、処理を終了する。スレーブ宣言メッセージを受信しない場合は（Ｓ２０１７のＮｏ）、ステップＳ２０１６に戻り、定期的にマスター宣言メッセージを送信する。
【０１９６】
本実施例では、マスター機器はネットワーク内に存在する機器の機器能力の収集及び比較を行い、新たにマスターになるべき機器に対してマスター指定を送信する。そしてマスター指定を受信した機器が第２の実施形態と同様にリスタート要求を送信することにより、新たにマスターになることができる。従って、ネットワークに参加した順序に拘らず、よりマスターに適した機器がマスターとなることができる。
【０１９７】
なお、機器能力情報の収集要求は、スレーブ宣言を受信した場合に毎回送信せず、スレーブ機器が所定数以上になった時に送信するようにしてもよい。また、マスター機器になってから新たにネットワークに参加した機器が所定数に達したときに送信するようにしてもよい。これにより、マスター機器の負荷やネットワーク上のトラフィックを低減することができると共に、マスター−スレーブ交換によるリスタート処理が頻発するのを避けることができる。
【０１９８】
また、マスター機器はそれまでに収集した機器能力を記憶しておき、次回からは新たにネットワークに参加した機器のみから機器能力を収集するようにしてもよい。これにより、毎回全ての機器に対して機器能力の収集を行う必要がなくなるので、マスター機器の負荷やネットワーク上のトラフィックを低減することができる。
【０１９９】
なお、上記各実施例では、新たにマスターになる機器は、設定した待機時間が経過した後、最初にマスター問合せを行うことによってマスターになる例について説明したが、新たにマスター機器になる方法であれば、他の方法でも構わない。例えば、待機時間の経過後、最初にマスター宣言を行うことにより、新たなマスター機器となる方法等が挙げられる。
【０２００】
なお、本実施例におけるマスターは、新たなネットワークを構築した機器がマスターとなり、その後、同一ネットワーク内に存在する他の機器のＭＡＣアドレスの管理等を行うものとしたが、マスターの定義はこれに限定されない。例えば、マスターは新たなネットワークを構築するだけで、その後の管理等は他の機器が行う場合もある。また、ネットワークの管理を行うのがマスター機器であり、ネットワークの構築は別の機器が行う場合もある。
【０２０１】
上記各実施例では、無線通信装置としてプリンタとデジタルカメラについて記載しているが、カムコーダ、ディスプレイ、プロジェクタなどの無線通信機能の搭載可能な機器においても本発明が適用可能であることをここに明記しておく。
【０２０２】
また、上記各実施例では無線通信として無線ＬＡＮについて記載しているが、Ｂｌｕｅｔｏｏｔｈ、Ｗｉｒｅｌｅｓｓ  ＵＳＢ、Ｗｉｒｅｌｅｓｓ  １３９４、ＵＷＢ，ＷｉＭＡＸなどの他の無線通信においても本発明が適用可能であることをここに明記しておく。また、無線通信に限らず有線ＬＡＮ、ＵＳＢ、ＩＥＥＥ１３９４などの有線通信においても本発明は適用可能である。
【図面の簡単な説明】
【０２０３】
【図１】第１、第３の実施形態に係る通信システムの構成図。
【図２】本実施形態に係るプリンタのブロック構成図。
【図３】本実施形態に係るデジタルカメラのブロック構成図。
【図４】第１の実施形態における動作シーケンスを示す図。
【図５】第１〜第４の実施形態における動作アルゴリズムを示す図。
【図６】第１の実施形態における図５のリスタート処理の動作アルゴリズムを示す図
【図７】第１の実施形態における図５のマスター処理の動作アルゴリズムを示す図
【図８】第２、第４の実施形態に係る通信システムの構成図。
【図９】第２の実施形態における動作シーケンスを示す図。
【図１０】第２の実施形態における図５のリスタート処理の動作アルゴリズムを示す図。
【図１１】第２の実施形態における図５のマスター処理の動作アルゴリズムを示す図。
【図１２】第３の実施形態における動作シーケンスを示す図。
【図１３】第３の実施形態における図５のリスタート処理の動作アルゴリズムを示す図。
【図１４】第３の実施形態における図５のマスター処理の動作アルゴリズムを示す図。
【図１５】図１２におけるマスタースレーブ交換判別処理の動作シーケンスを示す図。
【図１６】第３、第４の実施形態に係る無線通信装置における機器能力および機器能力比較のデータ構造、および通信可能機器一覧表示を示す図
【図１７】第４の実施形態における動作シーケンスを示す図。
【図１８】図１７におけるマスタースレーブ交換判別処理の動作シーケンスを示す図
【図１９】第４の実施形態における図５のリスタート処理の動作アルゴリズムを示す図。
【図２０】第４の実施形態における図５のマスター処理の動作アルゴリズムを示す図。
【符号の説明】
【０２０４】
１０１、２０１、８０１  プリンタ
１０３、２１６、８０４  プリンタの通信設定ボタン
１０２、３０１、８０２、８０３  デジタルカメラ
１０４、３１６、８０５、８０６  デジタルカメラの通信設定ボタン
２０２  制御部
２０３  画像処理部
２０４  ＲＯＭ
２０５  ＲＡＭ
２０６  無線通信処理部
２０７  アンテナ
２０８  アンテナ制御部
２０９  給紙排紙部
２１０  プリンタエンジン部
２１１  カードインタフェース部
２１２  表示部
２１３  操作部
２１４  電源部
２１５  通信インタフェース部
２１６  通信設定ボタン
３０２  制御部
３０３  画像処理部
３０４  ＲＯＭ
３０５  ＲＡＭ
３０６  無線通信処理部
３０７  アンテナ
３０８  アンテナ制御部
３０９  撮像部
３１０  ＣＣＤ
３１１  カードインタフェース
３１２  表示部
３１３  操作部
３１４  電源部
３１５  通信インタフェース部
３１６  通信設定ボタン
【図１】
0004829600.tif 000002
【図２】
0004829600.tif 000003
【図３】
0004829600.tif 000004
【図４】
0004829600.tif 000005
【図５】
0004829600.tif 000006
【図６】
0004829600.tif 000007
【図７】
0004829600.tif 000008
【図８】
0004829600.tif 000009
【図９】
0004829600.tif 000010
【図１０】
0004829600.tif 000011
【図１１】
0004829600.tif 000012
【図１２】
0004829600.tif 000013
【図１３】
0004829600.tif 000014
【図１４】
0004829600.tif 000015
【図１５】
0004829600.tif 000016
【図１６】
0004829600.tif 000017
【図１７】
0004829600.tif 000018
【図１８】
0004829600.tif 000019
【図１９】
0004829600.tif 000020
【図２０】
0004829600.tif 000021