(57)【要約】【課題】  通信パラメータの設定を自動で、かつ、確実に行え、複数の通信装置の間でも通信パラメータを交換可能とする。【解決手段】  通信装置同士が相手装置と直接通信するネットワークにおける通信装置において、ネットワーク上に存在する通信装置の能力を示す情報に基づいて、通信パラメータを提供する提供装置と該通信パラメータを受理する受理装置とを決定し、決定した提供装置と受理装置に通信パラメータの転送方向を通知する。【選択図】      図２６
2006311138.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
ネットワーク上に存在する他の通信装置の能力を示す情報に基づいて、他のネットワークを形成するための通信パラメータを提供する提供装置と該通信パラメータを受理する受理装置とを決定する決定手段と、
前記決定手段で決定した前記提供装置又は前記受理装置に前記通信パラメータの転送方向を通知する通知手段とを有することを特徴とする通信装置。
【請求項２】
前記通信装置の能力を示す情報を収集する収集手段を更に有し、
前記決定手段は、前記収集した情報に基づいて前記通信パラメータを提供する提供装置と前記通信パラメータを受理する受理装置とを決定することを特徴とする請求項１記載の通信装置。
【請求項３】
前記通知手段は、前記決定手段で自装置を前記提供装置と決定した場合、自装置の識別情報を前記受理装置に通知し、また前記決定手段で自装置を前記受理装置と決定した場合、自装置の識別情報を前記提供装置に通知し、前記提供装置の識別情報を前記受理装置に通知することを特徴とする請求項２記載の通信装置。
【請求項４】
前記ネットワーク上に存在する通信装置の識別情報を収集する識別情報収集手段を更に有し、
前記通知手段は、前記識別情報収集手段で収集した通信装置の識別情報を前記受理装置に通知することを特徴とする請求項３記載の通信装置。
【請求項５】
前記決定手段で２台以上の通信装置を前記提供装置と決定した場合、転送方向エラーを示すメッセージ情報を表示させる表示制御手段を有することを特徴とする請求項３記載の通信装置。
【請求項６】
通信パラメータ設定方法であって、
ネットワーク上に存在する通信装置の能力を示す情報に基づいて、他のネットワークを形成するための通信パラメータを提供する提供装置と該通信パラメータを受理する受理装置とを決定する決定工程と、
前記決定工程で決定した前記提供装置又は前記受理装置に前記通信パラメータの転送方向を通知する通知工程とを有し、
前記通知工程で通知された転送方向に従って前記提供装置から前記受理装置へ前記通信パラメータが転送され、転送された前記通信パラメータが前記受理装置に設定されることを特徴とする通信パラメータ設定方法。
【請求項７】
前記提供装置は、前記受理装置に対して認証処理を要求する工程と、前記認証処理で正しいと判断された前記受理装置に対して暗号鍵の交換を要求する工程と、前記暗号鍵を用いて通信フレームフォーマット中で前記通信パラメータを暗号化して前記受理装置に送信する工程とを有し、
前記受理装置は、前記通信フレームフォーマットのうち前記暗号鍵を用いて前記通信パラメータを復号化して記憶する工程とを有することを特徴とする請求項６記載の通信パラメータ設定方法。
【請求項８】
前記決定工程を実行する通信装置を決定する第２の決定工程を有し、
前記第２の決定工程において決定された通信装置が、前記決定工程を実行することを特徴とする請求項６記載の通信パラメータ設定方法。
【請求項９】
通信装置であって、
第１のネットワークに参加している状態で、第２のネットワークを形成するための通信パラメータを提供する提供装置又は前記提供装置から通信パラメータの提供を受ける受理装置を決定する決定手段と、
前記決定手段による決定に基づいて、他の通信装置に対して前記提供装置となったことを通知、もしくは、前記提供装置から通信パラメータの提供を受ける受理装置となったことを通知する通知手段とを有することを特徴とする通信装置。
【請求項１０】
通信パラメータを設定するための通信方法であって、
第１のネットワークに参加している状態で、第２のネットワークを形成するための通信パラメータを提供する提供装置または前記提供装置から通信パラメータの提供を受ける受理装置を決定する決定工程と、
前記決定工程における決定に基づいて、他の通信装置に対して前記提供装置となったことを通知、もしくは、前記提供装置から通信パラメータの提供を受ける受理装置となったことを通知する通知工程とを有することを特徴とする通信方法。
【請求項１１】
通信方法であって、
通信パラメータ設定時に各機器で通信パラメータ設定用のネットワークを形成する工程と、
他のネットワークを形成するための通信パラメータを提供する提供装置を決定する決定装置を決定する工程と、
前記決定装置が、他の機器の情報を収集する工程と、
収集した情報に基づいて、前記提供装置を決定する工程と、
前記提供装置から他の機器に前記他のネットワークを形成するための通信パラメータを通知する工程とを有することを特徴とする通信方法。
【請求項１２】
前記通信パラメータを用いて、前記他のネットワークを形成するステップを有することを特徴とする請求項１１記載の通信方法。
【請求項１３】
前記提供装置の決定に伴い、前記提供装置から通信パラメータの提供を受ける受理装置を決定する工程と、
前記提供装置と受理装置の決定に基づいて、前記提供装置となったことを通知、もしくは、前記受理装置となったことを他の機器に通知する工程とを有することを特徴とする請求項１１記載の通信方法。
【請求項１４】
前記提供装置に対して、受理装置の識別情報を通知する工程を有することを特徴とする請求項１３記載の通信方法。
【請求項１５】
前記受理装置に対して、提供装置の識別情報を通知する工程を有することを特徴とする請求項１３記載の通信方法。
【請求項１６】
請求項６乃至８記載の通信パラメータ設定方法もしくは請求項１乃至１５の通信方法をコンピュータに実行させるためのプログラム。
【請求項１７】
請求項１６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置におけるネットワーク接続に必要となる各種通信パラメータを設定する技術に関する。
【背景技術】
【０００２】
ユーザにとって煩雑といわれているSSID（Service Set Identifier、サービス・セット識別子）や暗号方式、暗号鍵、認証方式、認証鍵などの無線通信パラメータ設定を自動で行う方法が提案されている。例えば、無線ＬＡＮの自動設定については、アクセスポイント（中継器）とステーション（端末）との無線パラメータ設定を簡単な操作で中継器から端末に自動で転送する方法なども実際に製品として実現されている。
【０００３】
また、無線インタフェースと有線インタフェースを備えた機器同士で通信パラメータの設定を行う場合、有線インタフェースを介して通信パラメータの決定及び通信パラメータの転送方向を決定し、決定したパラメータを使って機器同士で無線インタフェースを介して通信パラメータの設定を行う場合の動作が特許文献１に記載されている。
【０００４】
また、無線ネットワークに接続するためのアダプタとして、２つの通信パラメータ情報を有し、第１の通信パラメータで作った無線ネットワークを使い、第２の通信パラメータを相手機器に直接無線通信（アドホック通信）で転送する場合の動作が特許文献２に記載されている。
【０００５】
また、家電製品を利用する無線ＬＡＮへの適用として、無線ネットワークを介する通信に必要な通信情報の要求が行われた場合、通信情報として予め設定されている無線ネットワークの識別情報とセキュリティに関する情報を返信する場合の動作が特許文献３に記載されている。
【特許文献１】特開2002-359623号公報
【特許文献２】特開2003-163668号公報
【特許文献３】特開2004-320162号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例は、アクセスポイントからステーションへ通信パラメータを転送する場合など、通信パラメータを保持している機器が事前に特定できる場合の通信パラメータ交換方法である。不特定な機器がネットワークに参加し、各機器が管理されていないネットワーク、即ちアドホックなネットワークの場合には通信パラメータの転送方向を事前に特定できず、通信パラメータの設定が行えない。
【０００７】
また、複数の機器間で通信パラメータの設定を行う場合、特にアドホック通信でこれを行う場合に、無線ＬＡＮにおいては同一ネットワーク上にどんな端末がいつ参加していつ脱退したかなどネットワーク上の機器状態を管理する仕組みがないため、複数の機器間で通信を開始することができなかった。
【０００８】
また、プリンタ、カメラなどの操作系が充実していない機器においては、自機器が通信パラメータを提供したいのか受理したいのか、提供したい場合には誰に対して提供したいのか、受理したい場合には誰から受理したいのか、等の操作が困難であった。
【０００９】
本発明は上述した課題を解決するためになされたものであり、通信パラメータの設定を自動で、かつ、確実に行え、複数の通信装置の間でも通信パラメータを交換可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、通信装置であって、ネットワーク上に存在する他の通信装置の能力を示す情報に基づいて、他のネットワークを形成するための通信パラメータを提供する提供装置と該通信パラメータを受理する受理装置とを決定する決定手段と、前記決定手段で決定した前記提供装置又は前記受理装置に前記通信パラメータの転送方向を通知する通知手段とを有することを特徴とする。
【００１１】
また、本発明は、通信パラメータ設定方法であって、ネットワーク上に存在する通信装置の能力を示す情報に基づいて、他のネットワークを形成するための通信パラメータを提供する提供装置と該通信パラメータを受理する受理装置とを決定する決定工程と、前記決定工程で決定した前記提供装置又は前記受理装置に前記通信パラメータの転送方向を通知する通知工程とを有し、前記通知工程で通知された転送方向に従って前記提供装置から前記受理装置へ前記通信パラメータが転送され、転送された前記通信パラメータが前記受理装置に設定されることを特徴とする。
【００１２】
更に、本発明は、通信装置であって、第１のネットワークに参加している状態で、第２のネットワークを形成するための通信パラメータを提供する提供装置又は前記提供装置から通信パラメータの提供を受ける受理装置を決定する決定手段と、前記決定手段による決定に基づいて、他の通信装置に対して前記提供装置となったことを通知、もしくは、前記提供装置から通信パラメータの提供を受ける受理装置となったことを通知する通知手段とを有することを特徴とする。
【００１３】
また、本発明は、通信パラメータを設定するための通信方法であって、第１のネットワークに参加している状態で、第２のネットワークを形成するための通信パラメータを提供する提供装置または前記提供装置から通信パラメータの提供を受ける受理装置を決定する決定工程と、前記決定工程における決定に基づいて、他の通信装置に対して前記提供装置となったことを通知、もしくは、前記提供装置から通信パラメータの提供を受ける受理装置となったことを通知する通知工程とを有することを特徴とする。
【００１４】
更に、本発明は、通信方法であって、通信パラメータ設定時に各機器で通信パラメータ設定用のネットワークを形成する工程と、他のネットワークを形成するための通信パラメータを提供する提供装置を決定する決定装置を決定する工程と、前記決定装置が、他の機器の情報を収集する工程と、収集した情報に基づいて、前記提供装置を決定する工程と、前記提供装置から他の機器に前記他のネットワークを形成するための通信パラメータを通知する工程とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、通信パラメータの設定を自動で、かつ、確実に行うことができ、複数の通信装置の間でも通信パラメータを交換することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１７】
［第１の実施形態］
図１は、第１の実施形態における無線ＬＡＮの構成の一例を示す図である。図１に示すように、無線通信機器ＡはIEEE802.11準拠の無線通信機能１０４を有するデジタルカメラ１００であり、ユーザが通信パラメータ設定起動ボタン１０２を押下することにより通信パラメータ設定モードのネットワークを構成することが可能である。また、無線通信機器ＢはIEEE802.11準拠の無線通信機能１０５を有するプリンタ１０１であり、機器Ａと同様に、ユーザが通信パラメータ設定起動ボタン１０３を押下することにより通信パラメータ設定モードのネットワークを構成することが可能である。
【００１８】
次に、図２及び図３を用いて、通信パラメータ設定制御機能を有する機器Ａ及び機器Ｂの構成及び動作について説明する。
【００１９】
図２は、デジタルカメラ１００（機器Ａ）の構成の一例を示す概略ブロック図である。図２において、２０１はデジタルカメラ１００を制御する制御部、２０２は画像処理部、２０３は制御命令（プログラム）や制御データが格納されているＲＯＭ、２０４はＲＡＭである。ＲＡＭ２０４には、通信パラメータ設定用ネットワークを形成するための設定用通信パラメータが予め記憶されている。２０５は無線通信処理部であり、無線ＬＡＮにおける通信制御を行う。２０６はアンテナ、２０７はアンテナ制御部である。
【００２０】
２０８は撮像部であり、２０９のＣＣＤから入力された画素信号を取り込む。２１０は撮像画像や設定情報を格納する記録メディアカードの制御を行うカードインタフェース、２１１は表示部である。２１２は操作部であり、撮影、再生、設定などを指示するボタンを含む。２１３は二次電池を含む電源部である。２１４は無線以外の通信インタフェース部であり、例えばＵＳＢやIEEE1394などの有線インタフェースである。２１５は通信パラメータ設定ボタンであり、通信パラメータ設定起動を行う。
【００２１】
図３は、プリンタ１０１（機器Ｂ）の構成の一例を示す概略ブロック図である。図３において、３０１はプリンタ１０１を制御する制御部、３０２は画像処理部、３０３は制御命令（プログラム）や制御データが格納されているＲＯＭ、３０４はＲＡＭ、３０５は電源部である。ＲＡＭ３０４には、通信パラメータ設定用ネットワークを形成するための設定用通信パラメータが予め記憶されている。３０６は無線以外の通信インタフェース部であり、例えばＵＳＢやIEEE1394などの有線インタフェースである。
【００２２】
３０７はプリンタ用紙の給紙排紙を行う給紙排紙部である。３０８はプリンタエンジンであり、電子写真方式やインクジェット方式などの印字制御を行う。３０９は画像が格納された記録メディアカードの制御を行うカードインタフェース、３１０は表示部である。３１１は操作部であり、メニュー、設定などのボタンを含む。３１２は無線通信処理部であり、無線ＬＡＮにおける通信制御を行う。３１３はアンテナ、３１４はアンテナ制御部である。３１５は通信パラメータ設定ボタンであり、通信パラメータ設定起動を行う。
【００２３】
次に、図４を用いて、IEEE802.11準拠の無線ＬＡＮのアドホックネットワークにおける機器Ａと機器Ｂとの間で無線パラメータのデータを設定する処理について説明する。
【００２４】
図４は、第１の実施形態における無線パラメータ設定シーケンスを示す図である。以下では、図４に示すように全体の流れを６つのステップに分け、それぞれのステップを順に説明する。
【００２５】
＜通信パラメータ設定ネットワーク形成ステップ４０１＞
ここでは、機器Ａと機器Ｂの間で通信パラメータ設定用ネットワークをアドホック接続によって形成する処理を行う。
【００２６】
＜マスター機器決定ステップ４０２＞
ここでは、機器Ａと機器Ｂの間でどちらの機器が通信パラメータ設定用ネットワークのマスター機器となり、どちらの機器がスレーブ機器となるかを決定する処理と、各機器は相手が同一ネットワーク上に存在するか否かの監視処理を継続的に行う。
【００２７】
＜機器能力収集ステップ４０３＞
ここでは、ステップ４０２で決定されたマスター機器が同一ネットワーク上に存在するスレーブ機器が所有している機器能力属性値をスレーブ機器に問い合わせて収集する処理を行う。
【００２８】
＜通信パラメータ転送方向決定ステップ４０４＞
ここでは、ステップ４０３でマスター機器が収集した各スレーブ機器の機器能力属性値と自マスター機器の機器能力属性値とを比較し、どの機器からどの機器へ通信パラメータの転送を行うかをマスター機器が決定し、かつ、各スレーブ機器に対して通信パラメータの転送を行う上で必要となる、あて先や発信元情報などの指示を転送する。
【００２９】
＜通信パラメータ転送ステップ４０５＞
ここでは、ステップ４０４で決定された通信パラメータの転送方向に従って実際に通信パラメータ提供能力を持つ機器から通信パラメータ受理能力を持つ機器へ通信パラメータを転送する。
【００３０】
＜通信パラメータ設定ネットワーク終了ステップ４０６＞
ここでは、ステップ４０５の転送終了をきっかけに通信パラメータ設定ネットワークを終了するために必要となる処理を行う。尚、通信パラメータ設定ネットワーク終了ステップ４０６が終了した後は、通信パラメータ転送ステップ４０５において転送された通信パラメータを用いて新たなネットワークを構築することになる。
【００３１】
次に、上述した６つの通信パラメータ設定シーケンスで示す各ステップについて詳細に説明する。
【００３２】
まず、デジタルカメラ１００とプリンタ１０１との間の通信パラメータ設定ネットワーク形成ステップ４０１について説明する。デジタルカメラ１００（機器Ａ）の通信パラメータ設定起動ボタン２１５と、プリンタ１０１（機器Ｂ）の通信パラメータ設定起動ボタン３１５とを押下することで、デジタルカメラ１００とプリンタ１０１とで構成される通信パラメータ設定用アドホックネットワークを形成する。このネットワークは、ＲＡＭ２０４、３０４に記憶されている設定用通信パラメータを用いて形成する。
【００３３】
尚、以下に説明する各ステップの処理は、全てステップ４０１で形成したネットワーク上で通信を行うことにより遂行されるものである。
【００３４】
次に、デジタルカメラ１００とプリンタ１０１との間で行われるマスター機器決定ステップ４０２について、その詳細を説明する。
【００３５】
まず、マスター機器決定ステップ４０２において、機器Ａ及び機器Ｂ間で送受信されるメッセージのフォーマットについて、図５を参照しながら説明する。
【００３６】
図５に示すように、マスター機器決定ステップ４０２において、各機器間で送受信するメッセージには、少なくとも送受信元を示すアドレス情報（宛先ＭＡＣアドレス５０１、送信元ＭＡＣアドレス５０２）と、通信パラメータ設定制御機能における識別子（ＩＤ）を示すＩＤ情報５０３と、マスター機器決定ステップ４０２における各機器の存在時間（Expire Time）を示す存在時間情報とが含まれる。尚、存在時間情報の値が“０”である場合は、メッセージを送信した機器がネットワークから即座に離脱することを示す。
【００３７】
次に、図６を参照しながらネットワーク参加時に各機器が行うマスター機器とスレーブ機器の決定処理手順について説明する。
【００３８】
図６は、ネットワーク参加時に各機器が行うマスター機器とスレーブ機器の決定処理を示すフローチャートである。
【００３９】
マスター機器決定ステップ４０２を開始後、ステップＳ６０１へ進み、機器はランダムタイマＴ１を起動する。このタイマＴ１により、この後の処理で行われる問合せメッセージの送信をランダム時間分だけ遅らせることで、複数の機器が、同時にマスター機器決定ステップ４０２を開始した場合に、メッセージの一斉送信によるメッセージの衝突を回避することができる。
【００４０】
次に、ステップＳ６０２において、機器はマスター機器の存在を通知するマスター宣言メッセージの受信を確認する。ここで、マスター宣言メッセージを受信した場合は、ネットワーク中に既にマスター機器が存在すると判断し、後述するステップＳ６０８へ進む。また、マスター宣言メッセージを受信していない場合はステップＳ６０３へ進み、タイマＴ１のタイムアップを確認する。タイマＴ１がタイムアップしていない場合はステップＳ６０２に戻り、マスター宣言メッセージを受信するか、或いはタイマＴ１がタイムアップするまで、上述した処理を繰り返す。この処理により、メッセージ衝突回避を目的としたランダム待ち時間中にマスター宣言メッセージを受信した場合でも、速やかにステップＳ６０８で説明するマスター宣言受信時の処理を行うことが可能となる。
【００４１】
また、ステップＳ６０３で、タイマＴ１がタイムアップした場合はステップＳ６０４へ進み、機器はマスター機器の存在を問い合わせるマスター問合せメッセージをネットワークへブロードキャスト送信し、マスター問合せ送信タイマＴ２を起動する。このマスター問合せ送信タイマＴ２は、マスター問合せメッセージを一定間隔で送信するために用いられる。
【００４２】
次に、ステップＳ６０５において、機器はマスター宣言メッセージの受信を確認し、マスター宣言メッセージを受信した場合は、ネットワーク中に既にマスター機器が存在することを認識し、後述するステップＳ６０８へ進む。また、マスター宣言メッセージを受信していない場合はステップＳ６０６へ進み、タイマＴ２のタイムアップを確認する。タイマＴ２がタイムアップしていない場合はステップＳ６０５に戻り、マスター宣言メッセージを受信するか、或いはタイマＴ２がタイムアップするまで上述の処理を繰り返す。
【００４３】
また、ステップＳ６０６で、タイマＴ２がタイムアップした場合はステップＳ６０７へ進み、機器はマスター問合せメッセージを所定回数送信したか否かを確認する。所定回数送信していない場合はステップＳ６０４に戻り、マスター問合せメッセージの送信が所定回数完了するか、或いはマスター宣言メッセージを受信するまで、ステップＳ６０４〜Ｓ６０７の処理を繰り返す。
【００４４】
一方、機器がマスター宣言メッセージを受信した場合はステップＳ６０８へ進み、受信したメッセージよりマスター機器のＭＡＣアドレス５０１を取得し、ＲＡＭに記憶しているマスター機器管理テーブル（図１９参照）に取得したＭＡＣアドレスを登録する。また、受信したメッセージの存在時間情報５０４よりマスター機器の存在時間を取得し、マスター機器存在タイマＴ７に取得した存在時間をセットしてタイマＴ７を起動する。タイマＴ７は、マスター機器がネットワークに存在している時間を確認するために用いられ、タイマＴ７がタイムアップした場合、機器はマスター機器がネットワークから離脱したと判断する。
【００４５】
ステップＳ６０８でタイマＴ７を起動後、ステップＳ６２３において、機器はランダムタイマＴ９を起動する。このタイマＴ９により、この後の処理で行われる問合せスレーブ宣言メッセージの送信をランダム時間分だけ遅らせることで、マスター宣言メッセージに対して複数の機器がスレーブ宣言メッセージを送信する場合の、スレーブ宣言メッセージの衝突を回避することができる。ランダムタイマＴ９を起動後ステップＳ６２４へ進み、タイマＴ９のタイムアップを待つ。
【００４６】
その後、タイマＴ９がタイムアップするとステップＳ６０９へ進み、自機器がスレーブ機器であることを通知するスレーブ宣言メッセージをマスター機器へ送信する。そして、ステップＳ６１０において、機器はスレーブ宣言メッセージ送信用タイマＴ５を起動する。タイマＴ５は、スレーブ宣言メッセージの周期的な送信を行うために用いられ、タイマＴ５がタイムアップした際にスレーブ宣言メッセージを再送信する。ここで、タイマＴ５はスレーブ宣言メッセージに記述される存在期限時間よりも短い値に設定され、存在期限が切れないよう周期的にメッセージの送信を行う。タイマＴ５を起動後、機器は後述するスレーブ機器の動作を行う。
【００４７】
また、上述のステップＳ６０７で、マスター問合せメッセージを所定回数送信完了した場合はステップＳ６１１へ進み、機器はマスター宣言メッセージ受信用タイマＴ３を起動する。そして、機器はタイマＴ３がタイムアップするまで他の機器からメッセージを受信するのを待ち、メッセージを受信すると、メッセージの種類に応じて以下に説明する処理を行う。
【００４８】
ステップＳ６１２において、機器はマスター宣言メッセージの受信を確認し、マスター宣言メッセージを受信した場合は、ネットワーク中に既にマスター機器が存在することを認識してステップＳ６０８へ進む。また、メッセージを受信していない場合はステップＳ６１３へ進む。
【００４９】
ステップＳ６１３において、機器はマスター問合せメッセージの受信を確認し、マスター問合せメッセージを受信した場合は、ネットワーク中にマスター機器が存在せず、かつ自機器以外にマスター機器になり得る機器が存在する、マスター問合せ衝突状態であると判定してステップＳ６１４へ進み、マスター衝突解決処理を行う。また、マスター問合せメッセージを受信していない場合はステップＳ６１５へ進む。
【００５０】
ステップＳ６１４で、機器はマスター問合せ衝突状態を解決するマスター衝突解決処理を行う。ここでは、受信したマスター問合せメッセージの送信元ＭＡＣアドレス５０２と、自機器のＭＡＣアドレスとを辞書式順序で比較する。比較の結果、自機器のＭＡＣアドレスが辞書式順序で小さかった場合はWinnerと判定し、自機器のＭＡＣアドレスが辞書式順序で大きかった場合は判定Loserと判定する。そして、判定結果を記憶し、詳細は後述するステップＳ６１７において判定結果を利用した処理を行う。
【００５１】
尚、３台以上の機器がマスター機器決定ステップ４０２の処理を行っている場合、各々の機器はマスター宣言受信タイマＴ３がタイムアップするまでに複数の機器とステップＳ６１４で説明したマスター衝突解決処理を行うことが考えられるが、この場合、一度でもLoserと判定すると、その判定結果をLoserと記憶し、また全てのマスター衝突解決処理においてWinnerと判定した場合にのみ、その判定結果をWinnerと記憶する。
【００５２】
次に、ステップＳ６１５において、機器はマスター宣言受信タイマＴ３のタイムアップを確認する。タイマＴ３がタイムアップした場合、機器はネットワーク内にマスター機器が存在しない状態であると判断してステップＳ６１６へ進む。また、タイマＴ３がタイムアップしていない場合はステップＳ６１２に戻る。
【００５３】
ステップＳ６１６において、機器はマスター宣言受信タイマＴ３がタイムアップするまでにマスター衝突解決処理を行ったか否かを確認する。ここで、マスター衝突解決処理を行っていた場合はステップＳ６１７へ進み、行っていなかった場合はステップＳ６１８へ進む。
【００５４】
ステップＳ６１７において、機器はマスター衝突解決処理における判定結果を確認する。判定結果がWinnerであった場合はステップＳ６１８へ進み、判定結果がLoserであった場合はステップＳ６２０へ進む。
【００５５】
ステップＳ６１８において、機器は自機器がマスター機器であることを通知するマスター宣言メッセージをネットワークへブロードキャスト送信する。
【００５６】
ステップＳ６１９において、機器はマスター宣言メッセージ送信タイマＴ４を起動する。タイマＴ４は、マスター宣言メッセージの周期的な送信を行うために用いられ、タイマＴ４がタイムアップした際にはマスター宣言メッセージを再送信する。ここでタイマＴ４はマスター宣言メッセージに記述される存在期限時間よりも短い値に設定され、存在期限が切れないよう周期的にメッセージの送信を行う。タイマＴ４を起動後、機器は後述するマスター機器の動作を行う。
【００５７】
ステップＳ６２０において、機器はマスター宣言受信待ちタイマＴ８を起動する。このタイマＴ８は、上述したステップＳ６１７の判定でLoserとなった機器がWinnerとなった機器からのマスター宣言メッセージの受信を一定期間待つために用いられる。
【００５８】
ステップＳ６２１において、機器はマスター宣言メッセージの受信を確認し、マスター宣言メッセージを受信した場合は上述したステップＳ６０８へ進む。また、マスター宣言メッセージを受信しなかった場合はステップＳ６２２へ進む。ステップＳ６２２において、機器はマスター宣言受信待ちタイマＴ８のタイムアップを確認する。ここでタイマＴ８がタイムアップした場合、機器は期間内にマスター機器からのメッセージを受け取ることができなかったとしてエラー終了する。また、タイマＴ８がタイムアップしていない場合はステップＳ６２１に戻る。
【００５９】
尚、ステップＳ６２２において、タイマＴ８がタイムアップした場合はエラー終了しているが、タイマＴ８がタイムアップした場合にステップＳ６０１に戻り、マスター問合せメッセージを再送信しても良い。このように処理することにより、期間内にマスター機器からメッセージを受け取ることができなかった場合でも、マスター機器とスレーブ機器の決定処理を速やかに再試行することが可能となる。
【００６０】
また、図６に示すマスター機器とスレーブ機器の決定処理において、ステップＳ６０４のマスター問合せメッセージの送信が完了するまでに、他の機器からマスター問合せメッセージを受信した場合は、ステップＳ６１４のマスター衝突解決処理を行い、判定結果がLoserであれば、その後、マスター問合せメッセージの送信を行わなくても良い。これにより、ネットワークへの無駄なメッセージの送信を抑えることが可能となる。
【００６１】
以上の手順をもって、マスター機器とスレーブ機器の決定処理が行われる。
【００６２】
次に、図７〜図１２を参照しながらマスター機器決定ステップ４０２におけるマスター機器の動作について説明する。
【００６３】
マスター機器は、ネットワークの他の機器からメッセージを受信した場合や、マスター機器内部のタイマがタイムアップした場合に、各々の状態に応じて以下に説明する処理を行う。
【００６４】
まず、マスター機器がネットワーク内の他の機器よりマスター問合せメッセージを受信した場合に行う、マスター問合せメッセージ応答処理について説明する。
【００６５】
図７は、マスター問合せメッセージへの応答処理を示すフローチャートである。マスター機器は処理開始後、ステップＳ７０１において、マスター宣言メッセージをマスター問合せメッセージの送信元の機器へ送信する。そして、このメッセージを送信後、マスター機器はマスター問合せメッセージ応答処理を終了する。
【００６６】
尚、ステップＳ７０１において、マスター問合せメッセージの応答としてマスター宣言メッセージを送信する場合、上述のようにメッセージの送信元の機器へユニキャスト送信を行う方法とは別に、マスター宣言メッセージをブロードキャスト送信する方法も考えられる。前者の方法は無駄の無いメッセージ送信を行える利点があるが、後者の方法は複数の機器へ一度にマスター宣言メッセージを送信できるため、複数の機器がマスター問合せの状態であった場合に、効率良くマスター宣言メッセージを送信できるという利点がある。このように、２つの方法はそれぞれ異なる利点を有しており、ここではマスター問合せメッセージの応答としてのマスター宣言メッセージの送信方法について、限定は行わず、どちらの方法を用いても良いものとする。
【００６７】
次に、上述したステップＳ６１９又は後述するステップＳ８０２で起動されたマスター宣言メッセージ送信用タイマＴ４がタイムアップした場合にマスター機器が行う、マスター宣言メッセージ定期送信処理について説明する。
【００６８】
図８は、マスター宣言メッセージ定期送信処理を示すフローチャートである。処理開始後、マスター機器はステップＳ８０１においてマスター宣言メッセージをネットワークへブロードキャスト送信を行う。そして、メッセージを送信後、ステップＳ８０２においてマスター宣言メッセージ送信用タイマＴ４をマスター機器の存在時間よりも短い値に設定して再起動する。タイマ再起動後、マスター機器はマスター宣言メッセージ定期送信処理を終了する。
【００６９】
次に、マスター機器がスレーブ宣言メッセージを受信した場合に行う、スレーブ機器管理処理について説明する。
【００７０】
図９は、スレーブ機器管理処理を示すフローチャートである。処理開始後、マスター機器はステップＳ９０１においてスレーブ宣言メッセージの存在時間情報５０４に記述されている存在時間の値を参照し、その値が“０”か否かを確認する。ここで、存在時間の値が“０”であった場合には、マスター機器はスレーブ宣言メッセージを送信したスレーブ機器がネットワークから離脱すると判断してステップＳ９０２へ進み、また、存在時間の値が“０”ではなかった場合には、ステップＳ９０３へ進む。
【００７１】
ステップＳ９０３において、マスター機器は受信したスレーブ宣言メッセージの送信元ＭＡＣアドレス５０２がＲＡＭに記憶しているスレーブ機器管理テーブル（図１０参照）に登録されているか否かを確認する。図１０に示すスレーブ機器管理テーブルは、マスター機器がネットワークに参加中のスレーブ機器を把握するために、スレーブ機器のＭＡＣアドレスをインデックス番号で登録したテーブルである。
【００７２】
ここで、送信元ＭＡＣアドレスがテーブルに登録されていなかった場合、マスター機器はスレーブ宣言メッセージを送信したスレーブ機器がネットワークに参加したと判断してステップＳ９０４へ進む。また、送信元ＭＡＣアドレスがテーブルに登録されていた場合、マスター機器はスレーブ機器の存在時間の更新を行うためにステップＳ９０５へ進む。
【００７３】
ステップＳ９０４において、マスター機器は受信したスレーブ宣言メッセージの送信元ＭＡＣアドレス５０２をスレーブ機器管理テーブルに登録する。そして、マスター機器は登録したスレーブ機器のテーブルにおけるインデックス番号ｎに対応するスレーブ機器存在タイマＴ６ｎに上述のステップＳ９０１で参照した存在時間をセットしてタイマを起動する。タイマＴ６は、スレーブ機器管理テーブルに登録されたスレーブ機器の台数分だけ起動され、タイマＴ６ｎがタイムアップした場合、マスター機器は対応するスレーブ機器がネットワークから離脱したと判断する。
【００７４】
また、ステップＳ９０５において、マスター機器はスレーブ宣言メッセージを送信したスレーブ機器に対応するスレーブ機器存在タイマＴ６ｎのタイマ値を、上述のステップＳ９０１で参照した存在時間に更新してタイマを再起動する。
【００７５】
一方、ステップＳ９０２において、マスター機器はスレーブ宣言メッセージを送信したスレーブ機器に対応するインデックス番号ｎのスレーブ機器のＭＡＣアドレスをスレーブ機器管理テーブルから削除する。
【００７６】
以上の手順をもって、マスター機器のスレーブ機器管理処理が行われる。
【００７７】
ここで、上述のステップＳ９０４又はステップＳ９０５で起動されたスレーブ機器存在タイマＴ６ｎがタイムアップした場合にマスター機器が行う、スレーブ機器離脱時処理について説明する。
【００７８】
図１１は、スレーブ機器離脱時処理を示すフローチャートである。処理開始後、マスター機器はステップＳ１１０１においてタイムアップしたタイマに対応するスレーブ機器がネットワークから離脱したと判断し、スレーブ機器管理テーブルにおけるタイムアップしたタイマに対応するインデックス番号ｎのスレーブ機器のＭＡＣアドレスをテーブルから削除する。削除後、マスター機器はスレーブ機器離脱時処理を終了する。
【００７９】
次に、ユーザ操作や上位アプリケーション等からの指示によって機器がマスター機器としての動作を正常終了する場合にマスター機器が行う、マスター機器終了時処理について説明する。
【００８０】
図１２は、マスター機器終了時処理を示すフローチャートである。処理開始後、マスター機器はステップＳ１２０１において存在時間情報５０４に“０”を記述したマスター宣言メッセージをブロードキャスト送信する。このメッセージ送信により、マスター機器が離脱することをスレーブ機器に通知する。そして、このメッセージを送信後、ステップＳ１２０２においてスレーブ機器存在タイマＴ６を停止した後に、スレーブ機器管理テーブルを破棄し、またマスター宣言メッセージ送信タイマＴ４を停止することで、マスター宣言メッセージの定期送信を終了し、マスター機器の動作を終了する。
【００８１】
以上の手順をもって、マスター機器決定ステップ４０２におけるマスター機器の動作が行われる。
【００８２】
ここまで説明したように、第１の実施形態ではネットワークに参加した機器がマスター問合せメッセージを送信し（ステップＳ６０４）、マスター宣言メッセージの受信を確認する（ステップＳ６０５）。一方、マスター機器はマスター問合せメッセージを受信すると直ちにマスター宣言メッセージを送信する（ステップＳ７０１）。
【００８３】
これにより、マスター機器がネットワークに存在する場合は、ネットワークに参加した機器が定期的にメッセージの受信を確認してからメッセージを送信する方式よりも速やかにマスター機器を検知することが可能となる。
【００８４】
また、上述した存在時間情報５０４を利用した機器管理処理により、機器は存在時間を“０”に設定されたメッセージを受信することで機器の離脱を検知可能となり、一定期間毎に確認を行うよりも迅速に機器状態を把握することが可能となる。
【００８５】
次に、図１３〜図１６を参照しながらマスター機器決定ステップ４０２におけるスレーブ機器の動作について説明する。
【００８６】
スレーブ機器は、マスター機器からメッセージを受信した場合や、スレーブ機器内部のタイマがタイムアップした場合に、各々の状態に応じて以下に説明する処理を行う。
【００８７】
まず、上述のステップＳ６１０又は後述するステップＳ１３０２で起動されたスレーブ宣言メッセージ送信用タイマＴ５がタイムアップした場合にスレーブ機器が行う、スレーブ宣言メッセージ定期送信処理について説明する。
【００８８】
図１３は、スレーブ宣言メッセージ定期送信処理を示すフローチャートである。処理開始後、スレーブ機器はステップＳ１３０１においてスレーブ宣言メッセージをマスター機器へ送信し、メッセージを送信後、ステップＳ１３０２においてスレーブ宣言メッセージ送信用タイマＴ５をスレーブ機器の存在時間よりも短い値に設定して再起動する。そして、タイマ再起動後、スレーブ機器はスレーブ宣言メッセージ定期送信処理を終了する。
【００８９】
次に、スレーブ機器がマスター宣言メッセージを受信した場合に行う、マスター機器管理処理について説明する。
【００９０】
図１４は、マスター機器管理処理を示すフローチャートである。処理開始後、スレーブ機器はステップＳ１４０１においてマスター宣言メッセージ中の存在時間情報５０４に記述されている存在時間の値を参照し、存在時間の値が“０”か否かを確認する。存在時間の値が“０”であれば、スレーブ機器はマスター機器がネットワークから離脱すると判断してステップＳ１４０３へ進み、存在時間の値が“０”でなければ、ステップＳ１４０２へ進む。
【００９１】
ステップＳ１４０２において、スレーブ機器はマスター機器存在タイマＴ７のタイマ値を上述のステップＳ１４０１で参照した存在時間に更新してタイマを再起動する。
【００９２】
ステップＳ１４０３において、スレーブ機器はマスター機器存在タイマＴ７を停止後にマスター機器管理テーブルを破棄する。また、スレーブ宣言メッセージ送信用タイマＴ５を停止することでスレーブ宣言メッセージの定期送信を終了し、スレーブ機器の動作を終了する。
【００９３】
以上の手順をもって、マスター機器管理処理が行われる。
【００９４】
次に、上述のステップＳ６０８又はステップＳ１４０２で起動されたマスター機器存在タイマＴ７がタイムアップした場合にスレーブ機器が行う、マスター機器離脱時処理について説明する。
【００９５】
図１５は、マスター機器離脱時処理を示すフローチャートである。処理開始後、スレーブ機器はステップＳ１５０１において、マスター機器存在タイマＴ７を停止後にマスター管理テーブルを破棄する。また、スレーブ宣言メッセージ送信用タイマＴ５を停止することでスレーブ宣言メッセージの定期送信を終了し、スレーブ機器の動作を終了する。
【００９６】
次に、ユーザ操作や上位アプリケーション等からの指示によってスレーブ機器の動作を正常終了する場合にスレーブ機器が行う、スレーブ機器終了時処理について説明する。
【００９７】
図１６は、スレーブ機器終了時処理を示すフローチャートである。処理開始後、スレーブ機器はステップＳ１６０１において、存在時間情報５０４に“０”を記述したスレーブ宣言メッセージをマスター機器へ送信する。このメッセージ送信により、スレーブ機器が離脱することをマスター機器に通知する。このメッセージ送信後、ステップＳ１６０２において、マスター機器存在タイマＴ７を停止後にマスター機器管理テーブルを破棄する。また、スレーブ宣言メッセージ送信タイマＴ５を停止することでスレーブ宣言メッセージの定期送信を終了し、スレーブ機器の動作を終了する。
【００９８】
尚、上述のステップＳ１４０３及びステップＳ１５０１において、スレーブ機器の動作を終了した後、機器は図６に示すマスター機器とスレーブ機器の決定処理を再試行しても良い。これにより、例えば３台以上の機器間で無線パラメータ自動設定を行っている際にマスター機器が終了した場合でも、残った機器の間で速やかにマスター機器決定ステップ４０２を再開し、無線パラメータ自動設定処理を行うことが可能となる。
【００９９】
以上の手順をもって、マスター機器決定ステップ４０２におけるスレーブ機器の動作が行われる。
【０１００】
次に、図１に示すデジタルカメラ１００（機器Ａ）とプリンタ１０１（機器Ｂ）が図５〜図１６を用いて説明したマスター機器決定ステップ４０２において、マスター機器決定を行う際の動作について、図１７、図１８を用いて詳細に説明する。
【０１０１】
まず、ネットワーク内にマスター機器が存在せず、機器Ａが処理を開始した後に機器Ｂが処理を開始し、機器間でマスター機器とスレーブ機器を決定する際の動作について説明する。
【０１０２】
図１７は、機器Ａが処理を開始した後に機器Ｂが処理を開始した場合のマスター機器とスレーブ機器とを決定するシーケンスを示す図である。
【０１０３】
機器Ａが処理を開始した後、マスター問合せ起動時間（ＴＨ１７００）の間、ランダムタイマＴ１を起動してメッセージの送信を待機する（Ｓ６０１、Ｓ６０２、Ｓ６０３の処理に相当）。これは、ステップＳ６０１で説明したように、複数の機器が同時にマスター機器決定ステップ４０２を開始した際に、メッセージの一斉送信によるメッセージ衝突を回避するために行われる。
【０１０４】
その後、ランダムタイマＴ１がタイムアップすると、機器Ａはマスター問合せ送信タイマＴ２にマスター問合せ送信間隔（ＴＨ１７０１）を設定して起動して、マスター問合せ送信タイマＴ２のタイムアップ毎にマスター問合せメッセージを送信する（Ｓ６０４、Ｓ６０５、Ｓ６０６、Ｓ６０７の処理に相当）。この例の場合、マスター問合せメッセージの送信を３回行う（Ｆ１７０２、Ｆ１７０３、Ｆ１７０４）。
【０１０５】
機器Ａはマスター問合せメッセージを送信した後、マスター宣言受信タイマＴ３を起動し、マスター問合せ応答待ち時間（ＴＨ１７０５）の間にマスター宣言メッセージを受信するのを待つ（Ｓ６１１、Ｓ６１２、Ｓ６１３、Ｓ６１５の処理に相当）。この例の場合、機器Ａは所定時間（ＴＨ１７０５）の間にメッセージを受信しないため、マスター宣言受信タイマＴ３のタイムアップ後に、マスター宣言メッセージのブロードキャスト送信（Ｆ１７０６）を行い、機器Ａがマスター機器であることを他の機器に通知する（Ｓ６１６、Ｓ６１８の処理に相当）。
【０１０６】
マスター宣言メッセージを送信後、機器Ａはマスター宣言送信タイマＴ４にマスター宣言送信間隔（ＴＨ１７０７）を設定して起動し、マスター宣言送信タイマＴ４のタイムアップ毎に周期的にマスター宣言メッセージをブロードキャスト送信（Ｆ１７０８）を行う（Ｓ６１９、Ｓ８０１、Ｓ８０２の処理に相当）。
【０１０７】
図１７に示す例では、機器Ａがマスター宣言メッセージの定期送信開始後（Ｆ１７０６とＦ１７０８の間）に機器Ｂの処理が開始される。
【０１０８】
機器Ｂが処理を開始した後、マスター問合せ起動時間（ＴＨ１７０９）の間、ランダムタイマＴ１を起動してメッセージの送信を待機する。ランダムタイマＴ１がタイムアップした後、機器Ｂはマスター問合せ送信タイマＴ２にマスター問合せ送信間隔（ＴＨ１７１０）を設定して起動し、マスター問合せ送信タイマＴ２のタイムアップ毎にマスター問合せメッセージを３回送信する（Ｆ１７１１、Ｆ１７１２、Ｆ１７１３）。
【０１０９】
これにより、機器Ａが機器Ｂからのマスター問合せメッセージ（Ｆ１７１１）に応答し、マスター宣言メッセージを機器Ｂへ送信（Ｆ１７１４）する（Ｓ７０１の処理に相当）。機器Ｂはマスター問合せメッセージを送信後にマスター宣言受信タイマを起動し、マスター問合せ応答待ち時間（ＴＨ１７１５）の間にメッセージが送信されるのを待つ。
【０１１０】
図１７に示す例では、機器Ｂは所定時間（ＴＨ１７１５）の間に、機器Ａよりマスター宣言メッセージを受信するため、機器Ａがマスター機器であることを検知する。そして、マスター機器管理テーブル（図１９）に機器ＡのＭＡＣアドレスを登録し、マスター機器存在タイマＴ７にマスター宣言メッセージより取得した機器Ａの存在時間を設定してタイマを起動し、機器Ａへスレーブ宣言メッセージを送信（Ｆ１７１６）する（Ｓ６０８、Ｓ６０９の処理に相当）。
【０１１１】
一方、機器Ａが機器Ｂのスレーブ宣言メッセージを受信すると、スレーブ機器管理テーブル（図１０）に機器ＢのＭＡＣアドレスを登録し、機器Ｂのスレーブ機器存在タイマＴ６にスレーブ宣言メッセージより取得した機器Ｂの存在時間を設定してタイマを起動する（Ｓ９０１、Ｓ９０３、Ｓ９０４の処理に相当）。
【０１１２】
機器Ｂが、スレーブ宣言メッセージを送信後、スレーブ宣言送信タイマＴ５にスレーブ宣言送信間隔（ＴＨ１７１７）を設定して起動し、スレーブ宣言送信タイマＴ５のタイムアップ毎に周期的にスレーブ宣言メッセージを機器Ａへ送信（Ｆ１７１８）する（Ｓ６１０、Ｓ１３０１、Ｓ１３０２の処理に相当）。
【０１１３】
これ以降、機器Ａと機器Ｂは宣言送信タイマに従って周期的に宣言メッセージを送信し、宣言メッセージを受信すると、メッセージ中の存在時間に存在タイマを再設定して再起動する（Ｓ９０５、Ｓ１４０２の処理に相当）。
【０１１４】
以上の手順をもって、図１７に示すシーケンスに従ってマスター機器とスレーブ機器が決定される。
【０１１５】
次に、ネットワーク内にマスター機器が存在せず、機器Ａと機器Ｂがほぼ同時に処理を開始し、機器間でマスター機器とスレーブ機器を決定する際の動作について説明する。
【０１１６】
また、この例では、機器ＡのＭＡＣアドレスが機器ＢのＭＡＣアドレスよりも辞書式順序が小さく、機器Ａがマスター衝突解決処理においてWinnerと判定されるものとする。
【０１１７】
図１８は、機器Ａと機器Ｂがほぼ同時に処理を開始した場合のマスター機器とスレーブ機器を決定するシーケンスを示す図である。
【０１１８】
機器Ａが処理を開始した後、マスター問合せ起動時間（ＴＨ１８００）の間、ランダムタイマＴ１を起動してメッセージの送信を待機する。
【０１１９】
その後、ランダムタイマＴ１がタイムアップすると、機器Ａはマスター問合せ送信タイマＴ２にマスター問合せ送信間隔（ＴＨ１８０１）を設定して起動して、マスター問合せ送信タイマＴ２のタイムアップ毎にマスター問合せメッセージを送信する。この例の場合、マスター問合せメッセージの送信を３回行う（Ｆ１８０２、Ｆ１８０３、Ｆ１８０４）。
【０１２０】
また機器Ａと同時に、機器Ｂも処理を開始後、マスター問合せ起動時間（ＴＨ１８０５）の間、ランダムタイマＴ１を起動してメッセージの送信を待機する。
【０１２１】
その後、ランダムタイマＴ１がタイムアップすると、機器Ｂはマスター問合せ送信タイマＴ２にマスター問合せ送信間隔（ＴＨ１８０６）を設定して起動して、マスター問合せ送信タイマＴ２のタイムアップ毎にマスター問合せメッセージを３回送信する（Ｆ１８０７、Ｆ１８０８、Ｆ１８０９）。
【０１２２】
機器Ａはマスター問合せメッセージを送信した後、マスター宣言受信タイマＴ３を起動し、マスター問合せ応答待ち時間（ＴＨ１８１０）の間にメッセージを受信するのを待つ。この例の場合、機器Ａは所定時間（ＴＨ１８１０）の間に、機器Ｂよりマスター問合せメッセージを受信するため、マスター衝突解決処理を行う（Ｓ６１３、Ｓ６１４）。ここでは、機器Ａがマスター衝突解決処理においてWinner判定されるため、機器Ａはマスター宣言受信タイマＴ３のタイムアップ後、マスター衝突解決処理においてWinner判定されたことを認識する（Ｓ６１７の処理に相当）。そして、マスター宣言メッセージのブロードキャスト送信を行うことで機器Ａがマスター機器であることを機器Ｂに通知する（Ｆ１８１２）。
【０１２３】
機器Ａはマスター宣言メッセージを送信後、マスター宣言送信タイマＴ４にマスター宣言送信間隔（ＴＨ１８１３）を設定して起動し、マスター宣言送信タイマＴ４のタイムアップ毎に周期的にマスター宣言メッセージをブロードキャスト送信（Ｆ１８１６）を行う。
【０１２４】
一方、機器Ｂもマスター問合せメッセージを送信後に、マスター宣言受信タイマＴ３を起動し、マスター問合せ応答待ち時間（ＴＨ１８１１）の間にメッセージを受信するのを待つ。この例の場合、機器Ｂは所定時間（ＴＨ１８１１）の間に、機器Ａよりマスター宣言メッセージを受信するため、機器Ａがマスター機器であることを検知する。
【０１２５】
これにより、機器Ｂはマスター機器管理テーブル（図１９）に機器ＡのＭＡＣアドレスを登録し、マスター機器存在タイマＴ７にマスター宣言メッセージより取得した機器Ａの存在時間を設定してタイマを起動し、機器Ａへスレーブ宣言メッセージを送信（Ｆ１８１４）する。
【０１２６】
機器Ａが機器Ｂからスレーブ宣言メッセージを受信すると、スレーブ機器管理テーブル（図１０）に機器ＢのＭＡＣアドレスを登録し、機器Ｂのスレーブ機器存在タイマＴ７にスレーブ宣言メッセージより取得した機器Ｂの存在時間を設定してタイマを起動する。
【０１２７】
機器Ｂが、スレーブ宣言メッセージを送信後、スレーブ宣言送信タイマＴ５にスレーブ宣言送信間隔（ＴＨ１８１５）を設定して起動し、スレーブ宣言送信タイマＴ５のタイムアップ毎に周期的にスレーブ宣言メッセージを機器Ａへ送信（Ｆ１８１７）する。
【０１２８】
これ以降、機器Ａと機器Ｂは宣言送信タイマに従って周期的に宣言メッセージを送信し、宣言メッセージを受信すると、メッセージ中の存在時間に存在タイマを再設定して再起動する。
【０１２９】
以上の手順をもって、図１８に示すシーケンスに従ってマスター機器とスレーブ機器が決定される。
【０１３０】
次に、上述したマスター機器決定ステップ４０２で決定したマスター機器が同一ネットワークに参加しているスレーブ機器から機器能力を収集する機器能力収集ステップ４０３について説明する。
【０１３１】
図２０は、マスター機器であるデジタルカメラ１００（機器Ａ）がスレーブ機器であるプリンタ１０１（機器Ｂ）に対して機器能力を収集するシーケンスを示す図である。以下詳細に説明する。
【０１３２】
まず、マスター機器であるデジタルカメラ１００が機器能力収集要求をプリンタ１０１に対して行う（Ｆ２００１）。スレーブ機器であるプリンタ１０１はこの要求に応答する形で機器能力収集応答を要求元のデジタルカメラ１００へ自機器が有する機器能力属性値データを含む形で返信する（Ｆ２００２）。この場合、マスター機器では、機器能力収集ステップタイマＴＣＭ１００を起動し、その間に現在存在しているはずのスレーブ機器に対して上述した機器能力収集を行う。
【０１３３】
図２４は、自動通信パラメータ設定に対応したマスター機器が機器能力収集ステップで行う判断処理なども含むフローチャートである。以下詳細に説明する。
【０１３４】
マスター機器において、現在の状況がスレーブ機器の参加受付状態にあるか否かを調べる（Ｓ２４０１）。参加受付状態が締め切られている場合には、既にネットワークに参加している機器の機器能力属性値の収集が完了したため、次の通信パラメータ転送方向決定ステップ４０４へ進む（Ｓ２４０６）。
【０１３５】
一方、まだ受付中であれば、新規のスレーブ機器（機器能力属性をまだ取得していないスレーブ機器）が存在するかを確認し（Ｓ２４０２）、存在する場合には、新規スレーブ機器へ機器能力収集要求を送信する（Ｓ２４０３）。そして機器能力収集応答をスレーブ機器から受信すると（Ｓ２４０４）、受信した機器能力属性値を記憶する（Ｓ２４０５）。
【０１３６】
図３７は、機器能力の属性値を記憶するメモリの構成の一例を示す図である。図３７に示すように、マスター機器は自機器が保有している属性値のテーブル３７０１と、その他今回スレーブ機器より受信した属性値のリスト３７０２を記憶する。図３７に示す例では、機器を識別するためのＭＡＣアドレスと複数の属性値のリスト（属性値１、属性値２、属性値３）から構成される。
【０１３７】
ここで、記憶した機器能力属性値情報に基づいて通信パラメータの転送方向を決定する（Ｓ２４０６）。図３７に示す例では、属性値１については自機器及びスレーブ機器共に「ＹＥＳ」であるが、属性値２については自機器が「ＹＥＳ」で、スレーブ機器が「ＮＯ」であるため、通信パラメータ情報の提供者として自機器を選択する。
【０１３８】
このように、マスター機器は、常時スレーブ機器の検出を行いながら、それと独立した処理として、並行してスレーブ機器の機器能力属性値収集を行うことが可能になるため、参加受付状態を締め切り後にスレーブ機器の機器能力属性値を収集する場合に比べて処理に必要な時間を短縮することが可能になる。
【０１３９】
図２２は、自動通信パラメータ設定に対応したスレーブ機器が機器能力収集ステップで行う処理のフローチャートである。以下詳細に説明する。
【０１４０】
自機器がスレーブ機器の場合には、マスター機器からの機器能収集要求を受信した後（Ｓ２２０１）、マスター機器へ自機器の機器能力を示す情報を含む機器能力収集応答メッセージを送信する（Ｓ２２０２）。
【０１４１】
図３６は、自動通信パラメータ設定に対応した機器が機器能力収集ステップで送受信するメッセージフォーマットを示す図である。まず、マスター機器では宛先ＭＡＣアドレス３６０１に機器能力収集要求送信先のスレーブ機器のＭＡＣアドレスを挿入する。また、マスター機器である自機器のＭＡＣアドレスを送信元ＭＡＣアドレス３６０２に挿入し、自機器が有する属性値のリストを含むメッセージを生成する。そして、そのメッセージを属性リスト３６０３に挿入する。
【０１４２】
次に、スレーブ機器ではマスター機器からの機器能力収集要求コマンド受信の応答レスポンスとして、宛先ＭＡＣアドレス３６０１にマスター機器のＭＡＣアドレスを挿入する。また、送信元ＭＡＣアドレス３６０２には自スレーブ機器のＭＡＣアドレスを挿入し、マスター機器と同様に、自スレーブ機器が有する機器能力属性値を属性値リスト３６０３に挿入し、マスター機器へ本メッセージを応答として返送する。
【０１４３】
このように、マスター機器の要求メッセージとスレーブ機器からの応答メッセージとに各機器の機器能力属性値を含めることで、両者で互いの機器能力を把握することが可能になる。また、これによってスレーブ機器もマスター機器からの機器能力収集要求メッセージに含まれる属性値と自機器が有する機器能力属性値に一致が見られないと判断した場合には、機器能力属性値の応答を返さずに、即座に自動通信パラメータ設定の停止を行うことが可能になり、ユーザにすばやく自動通信パラメータ設定の処理結果を通知することができる。
【０１４４】
次に、マスター機器がスレーブ機器の機器能力属性値を収集し、通信パラメータの転送方向を決定する処理について説明する。ここでは、図３２及び図３７を参照しながら詳細に説明する。
【０１４５】
図３２は、通信パラメータの転送方向決定処理を示すフローチャートである。まず、マスター機器であるデジタルカメラ１００がスレーブ機器であるプリンタ１０１の機器能力属性値を収集し（Ｓ３２０１）、機器能力属性値テーブルを図３７に示す形式３７０２でＲＡＭ２０４に記憶する（Ｓ３２０２）。そして、全てのスレーブ機器の機器能力属性値テーブルの全属性値が確認完了済みか否かを調べ（Ｓ３２０３）、完了していなければ、マスター機器、スレーブ機器の機器能力属性値が記憶されている機器能力属性値テーブルの現属性値が「ＹＥＳ」の機器を抽出する（篩いにかけて残す）（Ｓ３２０４）。次に、抽出した機器が一台か否か（篩いにかけて残った機器の台数）を調べる（Ｓ３２０５）。
【０１４６】
ここで、抽出した機器が一台でなければ、現在比較中の属性値を次の比較対象となる属性値に進め（Ｓ３２０６）、上述の処理を繰り返す（Ｓ３２０３）。また全属性値の確認が完了し、抽出した機器が一台だけの場合には（Ｓ３２０７）、抽出した機器をパラメータ提供者に設定する（Ｓ３２０８）。また、抽出した機器が複数台存在した場合には転送方向決定がエラーとなった旨を通知する（Ｓ３２０９）。
【０１４７】
このように、複数の属性値から構成される属性値リストを比較してパラメータ提供者を一台の機器になるよう構成することが可能となる。また、マスター機器、スレーブ機器を含めた属性比較を行うことにより、通信用パラメータ設定用ネットワークを構成する全ての機器からマスター機器であるか、スレーブ機器であるか関係なく、通信パラメータ提供者を決めることができる。
【０１４８】
ここで、通信パラメータ転送方向決定ステップ４０４において通信パラメータ提供者と受理者との間で行われる通信パラメータの交換シーケンスについて説明する。
【０１４９】
まず、図２６を用いて、マスター機器であるデジタルカメラ１００（機器Ａ）が通信パラメータの提供者となり、スレーブ機器であるプリンタ１０１（機器Ｂ）が受理者となった場合に、デジタルカメラ１００からプリンタ１０１へ通信パラメータが転送される旨を通知するシーケンスについて説明する。
【０１５０】
図２６は、マスター機器が通信パラメータ提供者で、受理者のスレーブ機器へ通信パラメータを提供する際のシーケンスを示す図である。まずデジタルカメラ１００が「パラメータ転送方向受理者要求」メッセージをプリンタ１０１に送信する（Ｆ２６０１）。通信パラメータ受理者となったプリンタ１０１はその応答「パラメータ転送方向受理者応答」をデジタルカメラ１００へ返信する（Ｆ２６０２）。その後、通信パラメータ交換処理をデジタルカメラ１００からプリンタ１０１に対して行い（詳細は後述する）、処理が完了すれば、デジタルカメラ１００は終了を表すメッセージ「パラメータ転送方向受理者完了要求」をプリンタ１０１へ送信する（Ｆ２６０３）。そして、プリンタ１０１はその応答「パラメータ転送方向受理者完了応答」メッセージをデジタルカメラ１００へ返信する（Ｆ２６０４）。
【０１５１】
また、この時、図３１に示すように、デジタルカメラ１００は通信パラメータ受理者となったプリンタ１０１に対して通信パラメータ提供者となった自機器のＭＡＣアドレスを通知する。そして、プリンタ１０１がそのアドレスを受信後、通信パラメータ提供者から送信される通信パラメータをＲＡＭ３０４などに保存する。
【０１５２】
次に、図２７を用いて、マスター機器であるデジタルカメラ１００（機器Ａ）が通信パラメータの受理者となり、スレーブ機器であるプリンタ１０１（機器Ｂ）が提供者となった場合に、プリンタ１０１からデジタルカメラ１００へ通信パラメータを転送するように通知するシーケンスについて説明する。
【０１５３】
図２７は、マスター機器が通信パラメータ受理者で、通信パラメータ提供者のスレーブ機器から通信パラメータを受理する際のシーケンスを示す図である。まずデジタルカメラ１００が「パラメータ転送方向提供者要求」メッセージをプリンタ１０１に送信する（Ｆ２７０１）。通信パラメータ提供者となったプリンタ１０１はその応答「パラメータ転送方向提供者応答」をデジタルカメラ１００へ返信する（Ｆ２７０２）。その後、通信パラメータ交換処理をプリンタ１０１からデジタルカメラ１００に対して行い（詳細は後述する）、処理が完了すれば、プリンタ１０１は終了を表すメッセージ「パラメータ転送方向提供者完了要求」をデジタルカメラ１００へ送信する（Ｆ２７０３）。そして、デジタルカメラ１００はその応答「パラメータ転送方向提供者完了応答」メッセージをプリンタ１０１へ返信する（Ｆ２７０４）。
【０１５４】
また、この時、図３８に示すように、デジタルカメラ１００は通信パラメータ提供者となったプリンタ１０１に対して通信パラメータ受理者となった自機器のＭＡＣアドレスを通知する。そして、プリンタ１０１がそのアドレスを受信後、通信パラメータ受理者となったデジタルカメラ１００へ通信パラメータを送信する。そして、デジタルカメラ１００はプリンタ１０１から送信される通信パラメータをＲＡＭ２０４に保存する。
【０１５５】
このように、マスター機器とスレーブ機器の関係とは別に通信パラメータ受理者と通信パラメータ提供者を決定することが可能となり、ネットワーク管理を行う処理と通信パラメータ転送を独立した機能として動作させることが可能になる。
【０１５６】
次に、図２９を用いて、マスター機器において自動通信パラメータ設定に対応した機器が通信パラメータ提供者か通信パラメータ受理者かを決定する転送方向決定処理について説明する。
【０１５７】
図２９は、マスター機器転送方向決定処理を示すフローチャートである。まずマスター機器である機器Ａは、同一ネットワーク上に存在するスレーブ機器の台数を確認する（Ｓ２９０１）。次に、全スレーブ機器との処理が完了したか否かをチェックする（Ｓ２９０２）。もし未完了であれば、スレーブ機器アドレスリストに含まれるスレーブ機器の中でパラメータ転送方向を未だ通知していないスレーブ機器を選択する（Ｓ２９０３）。そして、マスター機器自身が通信パラメータ提供者となったか否かをチェックする（Ｓ２９０４）。マスター機器自身が通信パラメータ提供者となった場合は、ステップＳ２９０３で選択したスレーブ機器に送信する転送方向要求メッセージに、図３１に示すように、パラメータ提供者となった自身のＭＡＣアドレスを設定し（Ｓ２９０５）、選択したスレーブ機器へパラメータ転送方向受理者要求を示すメッセージを送信する（Ｓ２９０６）。
【０１５８】
次に、選択したスレーブ機器からのパラメータ転送方向受理者応答メッセージの受信を待つ（Ｓ２９０７）。その後、受信すると、選択したスレーブ機器を転送方向通知完了に設定し（Ｓ２９０８）、ステップＳ２９０２に戻り、全スレーブ機器との処理が完了するまで上述の処理を繰り返す。
【０１５９】
また、マスター機器は自身が通信パラメータ受理者の場合には（Ｓ２９０４）、選択したスレーブ機器が通信パラメータ提供者か否かをチェックする（Ｓ２９０９）。ここで、通信パラメータの提供者である場合には、選択したスレーブ機器に送信する転送方向要求メッセージには、図３８に示すようにパラメータ受理者となった自身のＭＡＣアドレスに加えて他にスレーブ機器が存在していればそれらの機器のＭＡＣアドレスを設定し（Ｓ２９１０）、選択したスレーブ機器へパラメータ転送方向提供者要求を示すメッセージを送信する（Ｓ２９１１）。
【０１６０】
次に、選択したスレーブ機器からのパラメータ転送方向提供者応答メッセージの受信を待つ（Ｓ２９０７）。その後、受信すると、選択したスレーブ機器を転送方向通知完了に設定し（Ｓ２９０８）、ステップＳ２９０２に戻り、全スレーブ機器との処理が完了するまで上述の処理を繰り返す。
【０１６１】
更に、マスター機器自身が通信パラメータの受理者、かつ選択スレーブ機器が通信パラメータ受理者の場合には（Ｓ２９０４，Ｓ２９０９）、選択したスレーブ機器に送信する転送方向要求メッセージにはパラメータ提供者となったスレーブ機器のＭＡＣアドレスを設定する（Ｓ２９１２）。そして、選択したスレーブ機器へパラメータ転送方向受理者要求を示すメッセージを送信する（Ｓ２９１３）。
【０１６２】
次に、選択したスレーブ機器からのパラメータ転送方向受理者応答メッセージの受信を待つ（Ｓ２９０７）。その後、受信すると、選択したスレーブ機器を転送方向完了に設定し（Ｓ２９０８）、ステップＳ２９０２に戻り、全スレーブ機器との処理が完了するまで上述の処理を繰り返す。
【０１６３】
次に、図３０を用いて、スレーブ機器において自動通信パラメータ設定に対応した機器が通信パラメータ提供者か通信パラメータ受理者かを決定する転送方向決定処理について説明する。
【０１６４】
図３０は、スレーブ機器転送方向決定処理を示すフローチャートである。まずマスター機器からの通信パラメータ転送方向要求メッセージの受信チェックを行い（Ｓ３００１）、受信するとマスター機器へ通信パラメータ転送方向応答メッセージを送信する（Ｓ３００２）。ここで、マスター機器からの転送方向要求の役割が通信パラメータ提供者であれば（Ｓ３００３のＹＥＳ）、通信パラメータ転送方向要求メッセージに含まれる通信パラメータ受理者のＭＡＣアドレスリストを記憶する（Ｓ３００４）。また、マスター機器からの転送方向要求の役割が通信パラメータ受理者であれば（Ｓ３００３のＮＯ）、通信パラメータ転送方向要求に含まれる通信パラメータ提供者のＭＡＣアドレスを記憶する（Ｓ３００５）。
【０１６５】
このように、マスター機器とスレーブ機器との間で提供者及び受理者を指示する処理を行い、事前にパラメータ転送方向をユーザに指示させることなく、各機器が通信パラメータをやりとりすべき相手機器を明らかにできる。
【０１６６】
図３３は、通信パラメータの提供者と受理者との間で通信パラメータのデータを送受信する場合のシーケンスを示す図である。尚、ここでは、デジタルカメラ１００が通信パラメータの提供者となり、プリンタ１０１が受理者となった場合を例に説明する。
【０１６７】
通信パラメータの提供者となったデジタルカメラ１００は、通信パラメータのデータの送受信に先立ちプリンタ１０１に対して暗証番号の入力を要求する（Ｆ３３０１）。これに対して、プリンタ１０１は暗証番号の要求に応答する形で暗証番号の値を含むデータを応答する（Ｆ３３０２）。次に、暗号鍵設定要求メッセージをデジタルカメラ１００からプリンタ１０１へ送信する（Ｆ３３０３）。これを受けたプリンタ１０１は暗号鍵設定応答をデジタルカメラ１００へ返信する（Ｆ３３０４）。
【０１６８】
次に、データ要求処理に移行し、デジタルカメラ１００はプリンタ１０１に対して通信パラメータデータを送信するが、デジタルカメラ１００は通信パラメータのデータを先の暗号鍵で暗号化し、もし通信パラメータのデータが十分に大きなサイズの場合は分割する必要があるため、データ継続を示す継続（Continue）信号を付加して送信する（Ｆ３３０５）。それに応じてプリンタ１０１はデータ応答処理で継続信号の場合は更なる要求を、ＯＫの場合はデータ送信の終了の意味を表すものとして応答信号をデジタルカメラ１００へ返信する（Ｆ３３０６）。
【０１６９】
その後、プリンタ１０１は受信し終わった通信パラメータデータを先の暗号鍵で復号化し、復号化した通信パラメータデータを保存する。
【０１７０】
このように、通信の暗号化以外に第１の実施形態の中で最もセキュリティ上問題となる通信パラメータ部分を個別に暗号化することによって、より安全なセキュリティを施した通信パラメータ転送を行うことができる。
【０１７１】
ここで、通信パラメータの提供者（この例ではデジタルカメラ１００）と受理者（この例ではプリンタ１０１）とで通信パラメータのデータを授受する場合に、通信パラメータの提供者となった機器（この例ではデジタルカメラ１００）で執り行われる処理について詳細に説明する。
【０１７２】
図３４は、通信パラメータを提供する機器での処理を示すフローチャートである。まず、通信パラメータの提供者であるデジタルカメラ１００は、通信パラメータ情報を転送しなければならない通信パラメータ受理者の台数をデジタルカメラ１００のＲＡＭ２０４に設定記憶する（Ｓ３４０１）。次に、全ての通信パラメータ受理者となる機器に対して通信パラメータの送信が完了したか否かを調べ（Ｓ３４０２）、完了していれば正常終了とし、また完了していなければ以下の処理を繰り返し実行する。
【０１７３】
まず、通信パラメータを未送信のパラメータ受理者機器のアドレスを送信先のアドレスとして設定する（Ｓ３４０３）。次に、設定した送信先のアドレスを表すパラメータ受理者機器に暗証番号要求メッセージを送信する（Ｓ３４０４）。そして、パラメータ受理者機器から暗証番号応答メッセージを受信するまで待ち（Ｓ３４０５）、受信すると、暗証番号応答メッセージに含まれる応答暗証番号が正しいか否かを調べる（Ｓ３４０６）。
【０１７４】
ここで、応答暗証番号が正しければ、引き続いてパラメータ受理者機器に暗号鍵の要求メッセージを送信し（Ｓ３４０７）、パラメータ受理者機器から暗号鍵応答メッセージの受信を待つ（Ｓ３４０８）。受信すると、暗号鍵応答メッセージとして送られてきた暗号鍵を用いて今から送信したい通信パラメータ情報を暗号鍵で暗号化し（Ｓ３４０９）、暗号化通信パラメータ情報をパラメータ受理者機器へ送信する（Ｓ３４１０）。そして、受理者機器から通信パラメータ情報応答メッセージの受信を待ち（Ｓ３４１１）、受信すると、次のパラメータ受理者機器を選択する処理へ移行する（Ｓ３４１２）。
【０１７５】
また、パラメータ受理者機器から受信した暗証番号応答メッセージに含まれる暗証番号が正しくないと判断した場合は（Ｓ３４０６のＮＯ）、暗証番号再要求をパラメータ受理者機器に送信する（Ｓ３４１３）。もしその応答として暗証番号要求の拒否メッセージを受信した場合は（Ｓ３４１４のＹＥＳ）、エラー終了となる。また、暗証番号要求の拒否メッセージではなく、暗証番号応答メッセージを受信した場合は（Ｓ３４０５のＹＥＳ）、上述した処理を繰り返し行う。
【０１７６】
次に、通信パラメータの提供者（この例ではデジタルカメラ１００）と受理者（この例ではプリンタ１０１）とで通信パラメータのデータを授受する場合に、通信パラメータの受理者となった機器（この例ではプリンタ１０１）で執り行われる処理について詳細に説明する。
【０１７７】
図３５は、通信パラメータを受理する機器での処理を示すフローチャートである。まず、通信パラメータの受理者であるプリンタ１０１は、通信パラメータの提供者であるデジタルカメラ１００から暗証番号要求メッセージの受信を待つ（Ｓ３５０１）。要求を受信した場合、操作部３１０に暗証番号の入力をユーザに促す表示を行い、ユーザにより入力された暗証番号を通信パラメータ提供者機器へ暗証番号応答メッセージとして送信する（Ｓ３５０２）。そして、通信パラメータの提供者機器から暗証番号再要求メッセージを受信した場合は（Ｓ３５０３のＹＥＳ）、暗証番号を誤って入力した場合などが考えられるので、処理を中止するか否かをプリンタ１０１の表示部３１０に表示し、操作の中止を表すキャンセルなどが操作部３１２より入力されれば（Ｓ３５０４のＹＥＳ）、プリンタ１０１はデジタルカメラ１００へ暗証番号要求拒否メッセージを送信し、エラー終了となる（Ｓ３５０５）。
【０１７８】
また、暗証番号が正しく入力されていれば、続けて通信パラメータ提供者機器から暗号鍵要求が送信されるのでこれを受信するまで待ち（Ｓ３５０６）、通信パラメータ提供者であるデジタルカメラ１００に対して暗号鍵を応答として送信する（Ｓ３５０７）。その後、通信パラメータ提供者機器から通信パラメータ要求メッセージを受信するまで待ち（Ｓ３５０８）、受信すると、通信パラメータ提供者機器に通信パラメータ情報応答メッセージを送信し（Ｓ３５０９）、通信パラメータ要求メッセージを先の暗号鍵にて復号化し（Ｓ３５１０）、通信パラメータを取得し、保存して（Ｓ３５１１）正常終了となる。
【０１７９】
各機器は、ステップＳ３５１１で通信パラメータ情報を記憶すると、該通信パラメータを新規ネットワークの通信パラメータとして設定することにより、通信パラメータ設定用ネットワークから抜け出し、新規ネットワークを形成する。
【０１８０】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。第１の実施形態では、２台の機器間における自動通信パラメータ設定について説明したが、第２の実施形態では複数の機器間における自動通信パラメータ設定の特徴的な部分について説明する。
【０１８１】
図４０は、第２の実施形態における無線ＬＡＮの構成の一例を示す図である。図４０に示すように、無線通信機器Ａ、Ｂ、Ｃは、デジタルカメラ１００（機器Ａ）、プリンタ１０１（機器Ｂ）、デジタルカメラ１０６（機器Ｃ）であり、３者間でアドホック通信の無線通信パラメータ設定を行う。
【０１８２】
デジタルカメラ１００は無線通信機能１０４として無線ＬＡＮを有し、通信パラメータ設定起動ボタン１０２を押下することにより通信パラメータ設定モードのネットワークを構成することが可能である。またプリンタ１０１も無線通信機能１０５として無線ＬＡＮを有し、通信パラメータ設定起動ボタン１０３を押下することにより通信パラメータ設定モードのネットワークを構成することが可能である。更にデジタルカメラ１０６も無線通信機能１０８として無線ＬＡＮを有し、通信パラメータ設定起動ボタン１０７を押下することにより通信パラメータ設定モードのネットワークを構成することが可能である。
【０１８３】
尚、デジタルカメラ１００（機器Ａ）及びデジタルカメラ１０６（機器Ｃ）、プリンタ１０１（機器Ｂ）の構成は、第１の実施形態で図２、図３を用いて説明した構成と同様であり、ここでの説明は省略する。
【０１８４】
次に、第１の実施形態と同様に、アドホックネットワークにおいてマスター機器が存在しない場合に、図２に示す機器Ａと機器Ｂと機器Ｃとの間でマスター機器とスレーブ機器を決定する処理について、図２１を用いて説明する。
【０１８５】
図２１は、第２の実施形態におけるマスター機器とスレーブ機器とを決定するシーケンスを示す図である。尚、図２１に示す例では、機器Ａが処理を開始した後に機器Ｂが処理を開始し、更に機器Ｃが処理を開始する場合を例に説明する。また、この例では、機器Ｃ、機器Ａ、機器Ｂの順にＭＡＣアドレスの辞書式順序が小さいものとする。
【０１８６】
機器Ａが処理を開始した後、マスター問合せ起動時間（ＴＨ２１００）の間、ランダムタイマを起動してメッセージの送信を待機する。
【０１８７】
その後、ランダムタイマがタイムアップすると、機器Ａはマスター問合せ送信タイマにマスター問合せ送信間隔（ＴＨ２１０１）を設定して起動し、マスター問合せ送信タイマのタイムアップ毎にマスター問合せメッセージを送信する。この例の場合、マスター問合せメッセージの送信を３回行う（Ｆ２１０２、Ｆ２１０３、Ｆ２１０４）。
【０１８８】
機器Ｂが処理を開始した後、マスター問合せ起動時間（ＴＨ２１０５）の間、ランダムタイマを起動してメッセージの送信を待機する。
【０１８９】
その後、ランダムタイマがタイムアップすると、機器Ｂはマスター問合せ送信タイマにマスター問合せ送信間隔（ＴＨ２１０６）を設定して起動し、マスター問合せ送信タイマのタイムアップ毎にマスター問合せメッセージを３回送信する（Ｆ２１０７、Ｆ２１０８、Ｆ２１０９）。
【０１９０】
機器Ｃが処理を開始した後、マスター問合せ起動時間（ＴＨ２１１０）の間、ランダムタイマを起動してメッセージの送信を待機する。
【０１９１】
その後、ランダムタイマがタイムアップすると、機器Ｃはマスター問合せ送信タイマにマスター問合せ送信間隔（ＴＨ２１１１）を設定して起動し、マスター問合せ送信タイマのタイムアップ毎にマスター問合せメッセージを３回送信する（Ｆ２１１２、Ｆ２１１３、Ｆ２１１４）。
【０１９２】
次に、機器Ａがマスター問合せメッセージを送信後、マスター宣言受信タイマを起動し、マスター問合せ応答待ち時間（ＴＨ２１１５）の間にメッセージが送信されるのを待つ。この例の場合、機器Ａは所定時間（ＴＨ２１１５）の間に機器Ｂ、機器Ｃよりマスター問合せメッセージを受信するため、マスター衝突解決処理を二回行う。
【０１９３】
第２の実施形態でも第１の実施形態と同様に、機器Ａがマスター衝突解決処理において機器Ｂに対してはWinner、機器Ｃに対してはLoserと判定されるため、機器Ａはマスター宣言受信タイマのタイムアップ後、マスター宣言受信待ちタイマを起動し、所定時間（ＴＨ２１１８）の間にマスター宣言メッセージが送信されるのを待つ（図８に示すＳ８２０の処理に相当）。
【０１９４】
ここで、機器Ｂはマスター問合せメッセージを送信後、マスター宣言受信タイマを起動し、マスター問合せ応答待ち時間（ＴＨ２１１６）の間にメッセージが送信されるのを待つ。この例の場合、機器Ｂは所定時間（ＴＨ２１１６）の間に機器Ｃよりマスター問合せメッセージを受信するため、マスター衝突解決処理を行う。
【０１９５】
第２の実施形態でも第１の実施形態と同様にマスター衝突解決処理を行い、機器Ｂがマスター衝突解決処理において機器Ｃに対してはLoserと判定されたとする。機器Ｂはマスター宣言受信タイマのタイムアップ後、マスター宣言受信待ちタイマを起動し、所定時間（ＴＨ２１１９）の間にマスター宣言メッセージが送信されるのを待つ。
【０１９６】
また、機器Ｃはマスター問合せメッセージを送信後、マスター宣言受信タイマを起動し、マスター問合せ応答待ち時間（ＴＨ２１１７）の間にメッセージが送信されるのを待つ。この例の場合、機器Ｃは所定時間（ＴＨ２１１７）の間にはマスター問合せメッセージを受信しないため、機器Ｃはマスター宣言受信タイマのタイムアップ後、マスター宣言メッセージのブロードキャスト送信を行うことで、機器Ｃがマスター機器であることを他の機器に通知する（Ｆ２１２０）。
【０１９７】
機器Ｃは、マスター宣言メッセージを送信後、マスター宣言送信タイマにマスター宣言送信間隔（ＴＨ２１２１）を設定して起動し、マスター宣言送信タイマのタイムアップ毎に周期的にマスター宣言メッセージをブロードキャスト送信（Ｆ２１２２）する。
【０１９８】
これにより、機器Ｂは所定時間（ＴＨ２１１９）の間に機器Ｃよりマスター宣言メッセージを受信し、機器Ｃがマスター機器であることを検知する。そして、機器Ｂはマスター機器管理テーブルに機器ＣのＭＡＣアドレスを登録し、マスター機器存在タイマにマスター宣言メッセージより取得した機器Ｃの存在時間を設定してタイマを起動し、機器Ｃへスレーブ宣言メッセージを送信（Ｆ２１２３）する。
【０１９９】
機器Ｂは、スレーブ宣言メッセージを送信後、スレーブ宣言送信タイマにスレーブ宣言送信間隔（ＴＨ２１２４）を設定して起動し、スレーブ宣言送信タイマのタイムアップ毎に周期的にスレーブ宣言メッセージを機器Ｃへ送信（Ｆ２１２５）する。
【０２００】
一方、機器Ａは所定時間（ＴＨ２１１８）の間に機器Ｃよりマスター宣言メッセージを受信し、機器Ｃがマスター機器であることを検知する。そして、機器Ａはマスター機器管理テーブルに機器ＣのＭＡＣアドレスを登録し、マスター機器存在タイマにマスター宣言メッセージより取得した機器Ｃの存在時間を設定してタイマを起動し、機器Ｃへスレーブ宣言メッセージを送信（Ｆ２１２６）する。
【０２０１】
機器Ａは、スレーブ宣言メッセージを送信後、スレーブ宣言送信タイマにスレーブ宣言送信間隔（ＴＨ２１２７）を設定して起動し、スレーブ宣言送信タイマのタイムアップ毎に周期的にスレーブ宣言メッセージを機器Ｃへ送信（Ｆ２１２８）する。
【０２０２】
以上の手順をもって、図２１に示す第２の実施形態において、マスター機器とスレーブ機器が決定される。
【０２０３】
次に、第１の実施形態と同様に、マスター機器決定ステップ４０２で決定したマスター機器が同一ネットワークに参加しているスレーブ機器から機器能力を収集する第２の実施形態における機器能力収集ステップ４０３について説明する。
【０２０４】
図２３は、マスター機器としてのデジタルカメラ１０６（機器Ｃ）がスレーブ機器としてのプリンタ１０１（機器Ｂ）及びデジタルカメラ１００（機器Ａ）から機器能力を収集するシーケンスを示す図である。以下詳細に説明する。
【０２０５】
まず、デジタルカメラ１０６（機器Ｃ）は、マスター機器として現在同一ネットワーク上に存在するスレーブ機器の機器能力属性値データを収集するために、プリンタ１０１（機器Ｂ）に対して機器能力収集要求を送信する（Ｆ２３０１）。これを受信したプリンタ１０１は自身の機器能力属性値を含む機器能力収集応答を返信する（Ｆ２３０２）。
【０２０６】
また、デジタルカメラ１０６はスレーブ機器であるデジタルカメラ１００（機器Ａ）に対して機器能力収集要求を送信する（Ｆ２３０３）。これを受信したデジタルカメラ１００は自身の機器能力属性値を含む機器能力収集応答を返信する（Ｆ２３０４）。
【０２０７】
このように、マスター機器であるデジタルカメラ１０６は現在同一ネットワーク上に存在する全てのスレーブ機器の機器能力属性値データを収集する。そして、マスター機器がネットワーク管理者として同一ネットワーク上に存在する各スレーブ機器の機器能力収集を行うことにより、３台以上の機器が同一ネットワーク上に存在し、任意のタイミングでスレーブ機器の参加が発生しても、その都度、即座にマスター機器による機器能力収集を行うことが可能になる。
【０２０８】
図２５は、マスター機器が同一ネットワーク上の全ての機器から機器能力属性を収集した後の機器能力属性テーブルを示す図である。以下、この機器能力属性値からどのようにして通信パラメータ情報提供者を決定するかについて説明する。
【０２０９】
尚、この決定処理は、第１の実施形態で図３２を用いて説明した通信パラメータの転送方向決定処理を適用可能である。
【０２１０】
まず、属性値１についてフィルタをかける。属性値１の機能を持つ機器、即ち、属性値１が「ＹＥＳ」の機器は次の比較ステップの候補となる。従って、図２５に示すように、機器番号が「２」の属性値１は「ＮＯ」であるため、機器番号「２」は比較対象から脱落する。
【０２１１】
次に、属性値２について残った機器番号「１」、「３」、「４」に対して比較を行う。この場合、機器番号「１」の機器が、属性値２が「ＮＯ」であるため、機器番号「１」は以後比較対象から脱落する。
【０２１２】
次に、属性値３について機器番号「３」と「４」に対して比較を行う。この場合、機器番号「３」が、属性値３が「ＹＥＳ」のため、最終的に残り、通信パラメータ情報提供者として選択される。
【０２１３】
このように、複数の属性値からなる属性値リストで順次フィルタをかけて最終的な通信パラメータ情報提供者を決定することが可能となり、複数の属性値に重み付けを付けることにより、ある特定の機器能力を有するものを通信パラメータ情報提供者として選択することが可能となる。
【０２１４】
次に、図２８を用いて、デジタルカメラ１００（機器Ａ）とプリンタ１０１（機器Ｂ）がスレーブ機器で、デジタルカメラ１０６（機器Ｃ）がマスター機器の場合に、マスター機器であるデジタルカメラ１０６（機器Ｃ）がスレーブ機器であるデジタルカメラ１００（機器Ａ）に対して通信パラメータ受理者である旨を通知し、また、スレーブ機器であるプリンタ１０１（機器Ｂ）に対して通信パラメータ提供者である旨を通知し、機器Ｂからの通信パラメータを機器Ａ、機器Ｃへ転送するシーケンスについて説明する。
【０２１５】
尚、この処理は、第１の実施形態で図２９を用いて説明した処理と同様である。
【０２１６】
図２８は、第２の実施形態における通信パラメータの転送シーケンスを示す図である。マスター機器であるデジタルカメラ１０６（機器Ｃ）は、先の通信パラメータの提供者を決定する処理により、スレーブ機器であるデジタルカメラ１００を通信パラメータの受理者、スレーブ機器であるプリンタ１０１を通信パラメータの提供者、そして、自身を通信パラメータの受理者と決定したとする。
【０２１７】
そこで、デジタルカメラ１０６（機器Ｃ）はデジタルカメラ１００（機器Ａ）に対して通信パラメータ受理者を要求する「パラメータ転送方向受理者要求」メッセージを図３１に示すような通信パラメータ提供者のアドレスを含めて送信する（Ｆ２８０１）。デジタルカメラ１００は、その応答として「パラメータ転送方向受理者応答」メッセージを返信し、通信パラメータ受理者となることを容認する（Ｆ２８０２）。
【０２１８】
また、デジタルカメラ１０６（機器Ｃ）は同様に、プリンタ１０１（機器Ｂ）に対して通信パラメータ提供者を要求する「パラメータ転送方向提供者要求」メッセージを図３９に示すように（図３９では受理者機器が６台の場合である）、全ての通信パラメータ受理者のアドレスを含めて送信する（Ｆ２８０３）。プリンタ１０１は、その応答として「パラメータ転送方向提供者応答」メッセージを返信し、通信パラメータ提供者となることを容認する（Ｆ２８０４）。
【０２１９】
その後、プリンタ１０１（機器Ｂ）はデジタルカメラ１００（機器Ａ）と無線パラメータ交換シーケンスを行い、完了後、デジタルカメラ１００はマスター機器であるデジタルカメラ１０６に対して通信パラメータ受理者処理の完了を表す「パラメータ転送方向受理者完了要求」メッセージを要求する（Ｆ２８０５）。デジタルカメラ１０６は、その応答として「パラメータ転送方向受理者完了応答」メッセージを返信する（Ｆ２８０６）。
【０２２０】
また、デジタルカメラ１０６（機器Ｃ）とプリンタ１０１（機器Ｂ）も無線パラメータ交換シーケンスを行い、完了後、プリンタ１０１はマスター機器であるデジタルカメラ１０６に対して通信パラメータ提供者処理の完了を表す「パラメータ転送方向提供者完了要求」メッセージを要求する（Ｆ２８０７）。デジタルカメラ１０６は、その応答として「パラメータ転送方向提供者完了応答」メッセージを返信する（Ｆ２８０８）。各機器は、通信パラメータ提供者が提供した通信パラメータを新規ネットワークの通信パラメータとして設定することにより、通信パラメータ設定用ネットワークから抜け出し、新規ネットワークを形成する。
【０２２１】
また、第２の実施形態では明記していないが、マスター機器は自身が通信パラメータの受理者となった場合の各スレーブ機器への転送方向要求を送信する順序に関しては、まず通信パラメータの受理者となった各スレーブ機器に対して通信パラメータ受理者要求メッセージを送信する。その後、通信パラメータの提供者となったスレーブ機器に対して通信パラメータ提供者要求メッセージを送信するという順序規則を適用する。これにより、通信パラメータ交換処理で、第２の実施形態にあるような複数の機器間でも通信パラメータの提供者は、特に各通信パラメータの受理者がマスター機器から通信パラメータ受理者メッセージを既に受信したか否かを通信パラメータ提供者が調べる必要がなくなる。また、パラメータ受理者の順序を意識することもなく、即座に無線パラメータ交換シーケンスへと処理を進めることが可能となる。
【０２２２】
［他の実施形態］
第１及び第２の実施形態では、無線通信として、無線ＬＡＮを例に挙げて説明したが、例えばBluetooth（登録商標）、WirelessUSB、Wireless1394、UWB、WiMAXなどの他の無線通信方式に本発明を適用することも可能である。
【０２２３】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【０２２４】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２２５】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０２２６】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０２２７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２８】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０２２９】
【図１】第１の実施形態における無線ＬＡＮの構成の一例を示す図である。
【図２】デジタルカメラ１００（機器Ａ）の構成の一例を示す概略ブロック図である。
【図３】プリンタ１０１（機器Ｂ）の構成の一例を示す概略ブロック図である。
【図４】第１の実施形態における無線パラメータ設定シーケンスを示す図である。
【図５】機器Ａ及び機器Ｂ間で送受信されるメッセージのフォーマットを示す図である。
【図６】ネットワーク参加時に各機器が行うマスター機器とスレーブ機器の決定処理を示すフローチャートである。
【図７】マスター問合せメッセージへの応答処理を示すフローチャートである。
【図８】マスター宣言メッセージ定期送信処理を示すフローチャートである。
【図９】スレーブ機器管理処理を示すフローチャートである。
【図１０】スレーブ機器管理テーブルの構成の一例を示す図である。
【図１１】スレーブ機器離脱時処理を示すフローチャートである。
【図１２】マスター機器終了時処理を示すフローチャートである。
【図１３】スレーブ宣言メッセージ定期送信処理を示すフローチャートである。
【図１４】マスター機器管理処理を示すフローチャートである。
【図１５】マスター機器離脱時処理を示すフローチャートである。
【図１６】スレーブ機器終了時処理を示すフローチャートである。
【図１７】機器Ａが処理を開始した後に機器Ｂが処理を開始した場合のマスター機器とスレーブ機器とを決定するシーケンスを示す図である。
【図１８】機器Ａと機器Ｂがほぼ同時に処理を開始した場合のマスター機器とスレーブ機器を決定するシーケンスを示す図である。
【図１９】マスター機器管理テーブルの構成の一例を示す図である。
【図２０】マスター機器であるデジタルカメラ１００（機器Ａ）がスレーブ機器であるプリンタ１０１（機器Ｂ）に対して機器能力を収集するシーケンスを示す図である。
【図２１】第２の実施形態におけるマスター機器とスレーブ機器とを決定するシーケンスを示す図である。
【図２２】自動通信パラメータ設定に対応したスレーブ機器が機器能力収集ステップで行う処理のフローチャートである。
【図２３】マスター機器としてのデジタルカメラ２００（機器Ａ）がスレーブ機器としてのプリンタ２０１（機器Ｂ）及びデジタルカメラ２０２（機器Ｃ）から機器能力を収集するシーケンスを示す図である。
【図２４】自動通信パラメータ設定に対応したマスター機器が機器能力収集ステップで行う判断処理なども含むフローチャートである。
【図２５】マスター機器が同一ネットワーク上の全ての機器から機器能力属性を収集した後の機器能力属性テーブルを示す図である。
【図２６】マスター機器が通信パラメータ提供者で、受理者のスレーブ機器へ通信パラメータを提供する際のシーケンスを示す図である。
【図２７】マスター機器が通信パラメータ受理者で、通信パラメータ提供者のスレーブ機器から通信パラメータを受理する際のシーケンスを示す図である。
【図２８】第２の実施形態における通信パラメータの転送シーケンスを示す図である。
【図２９】マスター機器転送方向決定処理を示すフローチャートである。
【図３０】スレーブ機器転送方向決定処理を示すフローチャートである。
【図３１】通信パラメータ受理者に送信する通信パラメータ提供者のアドレスを示す図である。
【図３２】通信パラメータの転送方向決定処理を示すフローチャートである。
【図３３】通信パラメータの提供者と受理者との間で通信パラメータのデータを送受信する場合のシーケンスを示す図である。
【図３４】通信パラメータを提供する機器での処理を示すフローチャートである。
【図３５】通信パラメータを受理する機器での処理を示すフローチャートである。
【図３６】自動通信パラメータ設定に対応した機器が機器能力収集ステップで送受信するメッセージフォーマットを示す図である。
【図３７】機器能力の属性値を記憶するメモリの構成の一例を示す図である。
【図３８】通信パラメータ提供者に送信する通信パラメータ受理者のアドレスを示す図である。
【図３９】通信パラメータ提供者に送信する通信パラメータ受理者のアドレスリストを示す図である。
【図４０】第２の実施形態における無線ＬＡＮの構成の一例を示す図である。
【図１】
2006311138.tif 000003
【図２】
2006311138.tif 000004
【図３】
2006311138.tif 000005
【図４】
2006311138.tif 000006
【図５】
2006311138.tif 000007
【図６】
2006311138.tif 000008
【図７】
2006311138.tif 000009
【図８】
2006311138.tif 000010
【図９】
2006311138.tif 000011
【図１０】
2006311138.tif 000012
【図１１】
2006311138.tif 000013
【図１２】
2006311138.tif 000014
【図１３】
2006311138.tif 000015
【図１４】
2006311138.tif 000016
【図１５】
2006311138.tif 000017
【図１６】
2006311138.tif 000018
【図１７】
2006311138.tif 000019
【図１８】
2006311138.tif 000020
【図１９】
2006311138.tif 000021
【図２０】
2006311138.tif 000022
【図２１】
2006311138.tif 000023
【図２２】
2006311138.tif 000024
【図２３】
2006311138.tif 000025
【図２４】
2006311138.tif 000026
【図２５】
2006311138.tif 000027
【図２６】
2006311138.tif 000028
【図２７】
2006311138.tif 000029
【図２８】
2006311138.tif 000030
【図２９】
2006311138.tif 000031
【図３０】
2006311138.tif 000032
【図３１】
2006311138.tif 000033
【図３２】
2006311138.tif 000034
【図３３】
2006311138.tif 000035
【図３４】
2006311138.tif 000036
【図３５】
2006311138.tif 000037
【図３６】
2006311138.tif 000038
【図３７】
2006311138.tif 000039
【図３８】
2006311138.tif 000040
【図３９】
2006311138.tif 000041
【図４０】
2006311138.tif 000042