以下、本実施形態に係る通信装置について、図面を参照しながら詳細に説明する。以下では、IEEE802.11シリーズに準拠した無線LANシステムを用いた例について説明するが、通信形態は必ずしもIEEE802.11準拠の無線LANには限らない。また、通信パラメータの自動設定処理としてWPSを用いる場合について説明するが、他の自動設定処理においても適用は可能である。
<実施形態1>
本実施形態に好適な事例におけるハードウェア構成について説明する。
図1は、後述の各装置の構成の一例を表すブロック図である。101は装置全体を示す。102は、記憶部103に記憶される制御プログラムを実行することにより装置全体を制御する制御部である。制御部102は、他の装置との間で行われる通信パラメータ自動設定の制御も行う。103は制御部102が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する各種動作は、記憶部103に記憶された制御プログラムを制御部102が実行することにより行われる。
104は無線通信を行うための無線部である。105は各種表示を行う表示部であり、LCDやLEDのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。
106は通信パラメータ自動設定処理を開始するトリガを与える設定ボタンである。制御部102は、ユーザによる設定ボタン106の操作を検出すると、後述する処理を開始する。
107はアンテナ制御部、そして108はアンテナである。109は、ユーザが各種入力を行うための入力部である。
図2は、後述の通信パラメータ設定動作において、通信パラメータの提供を受ける装置(受信装置)が実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。
201は装置全体を示している。202は通信パラメータ自動設定機能ブロックである。本実施形態では、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線通信を行うために必要な通信パラメータの自動設定を行う。
203は各種通信にかかわるパケットを受信するパケット受信部である。204は各種通信にかかわるパケットを送信するパケット送信部である。
205はプローブリクエストなどの機器検索信号の送信を制御する検索信号送信部である。なお、プローブリクエストは、所望のネットワークを検索するためのネットワーク検索信号ということもできる。プローブリクエストの送信は、検索信号送信部205により行われる。
206は他の装置からのプローブレスポンスなどの機器検索信号に対する応答信号の受信を制御する検索信号受信部である。プローブレスポンスの受信は、検索信号受信部206により行われる。なおプローブレスポンスには、送信元の機器の各種情報(自己情報)が付加される。
207は、ネットワークへの参加、離脱等を制御するネットワーク制御部である。アクセスポイントへの無線接続処理などは、ネットワーク制御部207により実施される。
通信パラメータ自動設定機能ブロック202において、208は、通信パラメータ自動設定処理を制御する自動設定制御部である。後述の通信パラメータ自動設定処理は、自動設定制御部208の制御に基づいて行われる。また、通信パラメータの自動設定処理が開始されてからの経過時間が当該設定処理の制限時間を越えたか否かの判定も、自動設定制御部208で行われる。また、当該制限時間を超えたと判定した場合には、自動設定制御部208の制御により、自動設定処理が中止される。
209は、通信パラメータを提供する装置(提供装置)より通信パラメータを受信する通信パラメータ受信部である。後述の通信パラメータ受信処理は、自動設定制御部208の制御に基づいて、通信パラメータ受信部209により行われる。
210は、起動中アクセスポイントを検出する起動中アクセスポイント検出部である。ここで、起動中アクセスポイントとは、自ら提供装置として通信パラメータの自動設定処理を起動中のアクセスポイント、または通信パラメータの自動設定処理を起動中の提供装置(以下、外部提供装置)と通信可能なアクセスポイントのことを指す。アクセスポイントから送信されるプローブレスポンスに付加された自己情報には、通信パラメータの自動設定処理により通信パラメータを提供可能な状態であるか否かを示す情報(通信パラメータの提供機能が有効であるか否かを示す情報)が含まれる。なお、WPSでは、通信パラメータを提供可能な状態であるか否かを示す情報として、“Selected Registrar”がある。
自ら提供装置として通信パラメータの自動設定処理を起動したアクセスポイントから送信されるプローブレスポンスには、通信パラメータを提供可能な状態であることを示す情報が付加される。また、アクセスポイントは、通信パラメータの自動設定処理を起動した外部提供装置からの通知メッセージ(起動通知)を受信した場合も、通信パラメータを提供可能な状態であることを示す情報をプローブレスポンスに付加して送信する。起動中アクセスポイント検出部210は、検索信号受信部206により受信したプローブレスポンス中の自己情報を解析することで、周囲に存在するアクセスポイントの中から起動中アクセスポイントを検出する。
211は、初期化時に設定される通信パラメータとは異なる通信パラメータが設定されているアクセスポイント(以下、設定済アクセスポイント)を検出する設定済アクセスポイント検出部である。なお、初期化時に設定される通信パラメータとは、工場出荷時にアクセスポイントに設定されている通信パラメータである。アクセスポイントから送信されるプローブレスポンスに付加された自己情報には、自装置が設定済アクセスポイントか否かを示す情報が含まれる。なお、WPSにおいては、初期化時に設定される通信パラメータとは異なる通信パラメータが設定されているか否かを示す情報として、“Wi−Fi Protected Setup State”がある。
設定済アクセスポイント検出部211は、検索信号受信部206により受信したプローブレスポンス中の自己情報を解析することで、周囲に存在するアクセスポイントの中から設定済アクセスポイントを検出する。
なお、設定済アクセスポイントには、当該アクセスポイントと通信可能な外部提供装置から受信した通信パラメータが設定されている可能性がある。すなわち、設定済アクセスポイントが存在するということは、設定済アクセスポイントへ通信パラメータを提供した外部提供装置が存在する可能性があるということである。
また、外部提供装置の中には、通信パラメータの受信を希望する受信装置の存在を認識した後に、提供装置としての通信パラメータの自動設定処理を起動可能となる機器も存在する。この場合、受信装置は設定済アクセスポイントへ無線接続し、外部提供装置に対して自装置の存在を通知することで、外部提供装置が自動設定処理を起動可能な状態へ遷移させることができる。具体例としては、受信装置からの通信パラメータの要求を受信すると、外部提供装置の表示部に設定開始操作を促す情報(受信装置のアイコン等)が表示され、ユーザが設定開始操作を行うことによって外部提供装置における自動設定処理が起動される。
212は、通信パラメータの自動設定処理において、無線接続するアクセスポイントを選択するアクセスポイント選択部である。
後述のアクセスポイント選択処理は、自動設定制御部208の制御により、起動中アクセスポイント検出部210と設定済アクセスポイント検出部211の検出結果に基づいて、アクセスポイント選択部212により行われる。
図3は、通信装置301、第1のアクセスポイントA302(以下、アクセスポイントA)、および第2のアクセスポイントB303(以下、アクセスポイントB)を示した図である。図3には更に、アクセスポイントBに有線LANにより接続された外部装置304が示されている。
通信装置301は通信パラメータ自動設定処理により通信パラメータを受信する機能を備え、先に説明した図1、図2の構成を有している。また、アクセスポイントAと外部装置304は、通信パラメータ自動設定処理により通信パラメータを提供する機能を備える。外部装置304は外部提供装置としてアクセスポイントBへ通信パラメータを提供し、アクセスポイントBには、外部装置304から受信した通信パラメータが設定されている。つまり、アクセスポイントBは設定済アクセスポイントである。なお、外部装置304は通信パラメータの受信を希望する受信装置の存在を認識した後に、提供装置として通信パラメータの自動設定処理を起動することが可能となる。アクセスポイントBは、自らが通信パラメータの提供装置としては動作しないが、提供装置として動作する外部装置304と受信装置として動作する通信装置301間の通信パラメータ自動設定のための各種メッセージの中継を行う。また、アクセスポイントAはアクセスポイントBよりも小さな無線LANチャネル(周波数チャネル)番号で通信を行っているものとする。
ここで、通信装置301が通信パラメータを受信するために、通信装置301の設定ボタン106が操作された場合を考える。
図4は、本実施形態における受信装置の動作を説明するフローチャート図である。通信装置301の設定ボタン106が操作されると、図4に示す処理は開始される。
まず、自動設定制御部208は記憶部103に周辺アクセスポイント情報が記憶されているか否かを確認する(S401)。周辺アクセスポイント情報には、周囲に存在するアクセスポイントの識別子と、各アクセスポイントから受信したプローブレスポンスに付加された自己情報が記憶されている。また、各アクセスポイントが自装置との間で通信パラメータ自動設定処理を行ったか否かに関する情報も併せて記憶されている。なお、後述するように、通信パラメータ自動設定処理を行った場合とは、通信パラメータの自動設定のためのプロトコル処理が途中でエラーになった場合である。
周辺アクセスポイント情報が記憶されていない場合は、自動設定制御部208は検索信号送信部205と検索信号受信部206を用いて周囲に存在するアクセスポイントを検索する(S402)。具体的には、検索信号送信部205によりプローブリクエストを送信し、検索信号受信部206により、周囲に存在するアクセスポイントから返信されるプローブレスポンスの受信を待機する。検索結果には、少なくとも周囲に存在するアクセスポイントの識別子と、各アクセスポイントから受信したプローブレスポンスに付加された自己情報が含まれる。検索後、自動設定制御部208はステップS402にて取得した検索結果を周辺アクセスポイント情報として記憶部103に記憶する(S411)。
周辺アクセスポイント情報が記憶されている場合は、自動設定制御部208は記憶されている周辺アクセスポイント情報を読み出す(S403)。
その後、アクセスポイント選択部212は、ステップS402またはステップS403にて取得した情報を基に、無線接続するアクセスポイントを選択する(S404、S405)。
S404において、起動中アクセスポイント検出部210は、周辺アクセスポイント情報中の各アクセスポイントの自己情報を解析することで、起動中アクセスポイントを検出する。なお本実施形態では、起動中アクセスポイント検出部210は周辺アクセスポイント情報に含まれるアクセスポイントのうち、通信装置301との間で通信パラメータ自動設定処理を実施済みのアクセスポイントを検出対象から除外する。これにより、一度設定処理を行ったアクセスポイント、すなわち自動設定のためのプロトコル処理が途中でエラーになった場合のアクセスポイントが再度選択されるのを防止することができる。
起動中アクセスポイントを検出しなかった場合は、後述するステップS405へ進む。起動中アクセスポイントを検出した場合は、アクセスポイント選択部212は当該アクセスポイントを無線接続するアクセスポイントとして選択し、後述するステップS406へ進む。なお、起動中アクセスポイントを複数検出した場合には、アクセスポイント選択部212は通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択する。
S405において、設定済アクセスポイント検出部211は、周辺アクセスポイント情報中の各アクセスポイントの自己情報を解析することで、設定済アクセスポイントを検出する。なお本実施形態では、設定済アクセスポイント検出部211は周辺アクセスポイント情報に含まれるアクセスポイントのうち、通信装置301との間で通信パラメータ自動設定処理を実施済みのアクセスポイントを検出対象から除外する。これにより、一度設定処理を行ったアクセスポイント、すなわち自動設定のためのプロトコル処理が途中でエラーになった場合の設定済アクセスポイントが再度選択されるのを防止することができる。
設定済アクセスポイントを検出しなかった場合、自動設定制御部208は記憶されている周辺アクセスポイント情報を破棄(S412)してステップS402へ戻り、周囲に存在するアクセスポイントを再検索する。設定済アクセスポイントを検出した場合は、アクセスポイント選択部212は当該アクセスポイントを無線接続するアクセスポイントとして選択し、後述するステップS406へ進む。なお、設定済アクセスポイントを複数検出した場合には、アクセスポイント選択部212は通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択する。
S406において、ネットワーク制御部207は、選択されたアクセスポイントへ無線接続する。無線接続後、自動設定制御部208は通信パラメータ自動設定のためのプロトコル処理を行う(S407)。ここで、自動設定のためのプロトコル処理とは、提供装置から受信装置へ通信パラメータを提供するために予め定められた各種メッセージの送受信を行う処理のことをいう。なお、WPSでは上記プロトコル処理のことを“Registration Protocol”と呼んでいる。本実施形態では説明を簡単にするため、受信装置から提供装置に対して通信パラメータを要求するためのメッセージを送信し、該メッセージに応じて提供装置が通信パラメータを提供するメッセージを送信するものとして説明する。通信パラメータの提供を行うための提供装置と受信装置間での認証、及び暗号処理に関するメッセージの送受信処理等を行ってもよい。
自動設定制御部208は、ステップS407にて行われた通信パラメータ自動設定プロトコルの処理結果を確認する(S408)。自動設定プロトコル処理が成功し、通信パラメータ受信部209により通信パラメータを受信できた場合には、記憶部103に記憶されている周辺アクセスポイント情報を破棄して(S409)、図4の処理を終了する。
自動設定プロトコル処理が失敗した場合には、ステップS407にて自動設定プロトコル処理を行ったアクセスポイントを、通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイント情報を更新する(S410)。情報更新後、ステップS401へ戻り、周辺アクセスポイント情報に基づく新たな接続先アクセスポイントの選択を行う。
図5は、本実施形態における各装置間のシーケンスの一例を示した図である。図5では、通信装置301が、自ら提供装置として動作するアクセスポイントAから通信パラメータを受信する場合について説明する。
ユーザにより通信装置301の設定ボタンが操作されると、通信装置301は図4の処理を開始する。この時点では、周辺アクセスポイント情報が記憶部103に記憶されていないため(S401のNo)、通信装置301は周囲のアクセスポイントを検索するためにプローブリクエストを送信する(F501、S402)。
アクセスポイントAにてユーザによる自動設定処理の開始操作が行われると、アクセスポイントAは提供装置として通信パラメータの自動設定処理を起動する。アクセスポイントAは、通信装置301から送信されたプローブリクエストに対して、自装置が起動中アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F502)。また、アクセスポイントBは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F502)。
通信装置301は受信したプローブレスポンスを解析し(S411、S404のYes)、起動中アクセスポイントであるアクセスポイントAを無線接続するアクセスポイントとして選択する(F503)。
通信装置301は、アクセスポイントAへ無線接続する(F504、F505、S406)。無線接続後、通信装置301はアクセスポイントAに対して通信パラメータを要求するメッセージを送信し(F506)、アクセスポイントAから通信パラメータを受信する(F507、S407、S408のYes)。
このように、受信装置は起動中アクセスポイントを自動的に選択して無線接続し、速やかに通信パラメータを受信することが可能となる。
次に、通信装置301がアクセスポイントBを介して外部装置304から通信パラメータを受信する場合の動作について説明する。
図6は、本実施形態における各装置間のシーケンスの別の一例を示した図である。なお、ここでは説明を簡単にするため、アクセスポイントAは動作していないものとする。
ユーザにより通信装置301の設定ボタンが操作されると、通信装置301は図4の処理を開始する。この時点では、周辺アクセスポイント情報が記憶部103に記憶されていないため(S401のNo)、通信装置301は周囲のアクセスポイントを検索するためにプローブリクエストを送信する(F601、S402)。
アクセスポイントBは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F602)。
通信装置301は受信したプローブレスポンスを解析し(S411、S404のNo、S405のYes)、設定済アクセスポイントであるアクセスポイントBを無線接続するアクセスポイントとして選択する(F603)。
通信装置301は、アクセスポイントBへ無線接続する(F604、F605、S406)。無線接続後、通信装置301は通信パラメータを要求するメッセージをアクセスポイントBへ送信し(S407)、アクセスポイントBは、受信した要求メッセージを外部装置304へ転送する(F606)。
この時点では、外部装置304は提供装置として通信パラメータの自動設定処理を起動していないため、受信した要求メッセージに対してエラー通知を送信する(F607)。ここで、外部装置304は要求メッセージを受信したことにより、通信パラメータの受信を希望する通信装置301の存在を認識し、提供装置として通信パラメータの自動設定処理を起動可能な状態となる。
そこで、ユーザが外部装置304において自動設定処理の開始操作を行うことにより(F608)、外部装置304は提供装置として通信パラメータの自動設定処理を起動する。外部装置304は自動設定処理を起動すると、アクセスポイントBへ自装置が提供装置としての動作を開始したことを通知するメッセージ(起動通知)を送信する(F609)。アクセスポイントBは起動通知を受信後にプローブリクエストを受信した場合、プローブレスポンスに付加する自己情報に、自装置が起動中アクセスポイントであることを示す情報を含めて送信する。
通信装置301はエラー通知を受信すると(S408のNo)、アクセスポイントBを通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイント情報を更新し(S410)、S401に戻る。通信装置301は、記憶している周辺アクセスポイント情報を再度確認する(S403)。ここでは、未だ選択済みでない設定済アクセスポイントが存在しないため(S404のNo、S405のNo)、周辺アクセスポイント情報を破棄し(S412)、S402に戻る。
そして、通信装置301は周囲のアクセスポイントを再検索するためにプローブリクエストを送信する(F610、S402)。アクセスポイントBは、通信装置301から送信されたプローブリクエストに対して、自装置が起動中アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F611)。
通信装置301は受信したプローブレスポンスを解析し(S411、S404のYes)、起動中アクセスポイントであるアクセスポイントBを、無線接続するアクセスポイントとして選択する(F612)。
通信装置301は、アクセスポイントBへ無線接続する(F613、F614、S406)。無線接続後、通信装置301はアクセスポイントBに対して通信パラメータを要求するメッセージを送信し(S407)、アクセスポイントBは受信した要求メッセージを外部装置304へ転送する(F615)。この時点では、外部装置304は提供装置として通信パラメータの自動設定処理を起動しているため、通信装置301に対して通信パラメータを提供する(F616、S408)。
このように、受信装置は設定済アクセスポイントを自動的に選択して無線接続し、外部提供装置から通信パラメータを受信することが可能となる。
次に、設定済アクセスポイントが複数存在する場合の動作について説明する。
図7は、本実施形態における各装置間のシーケンスの更に別の一例を示した図である。なお、アクセスポイントAはアクセスポイントBと同様に、初期化時とは異なる通信パラメータが設定されているものとする。また、アクセスポイントAは提供装置としての通信パラメータの自動設定処理を起動していないものとする。
ユーザにより通信装置301の設定ボタンが操作されると、通信装置301は図4の処理を開始する。この時点では、周辺アクセスポイント情報が記憶部103に記憶されていないため(S401のNo)、通信装置301は周囲のアクセスポイントを検索するためにプローブリクエストを送信する(F701、S402)。
アクセスポイントAは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F702)。また、アクセスポイントBも、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F702)。
通信装置301は受信したプローブレスポンスを解析し(S411、S404のNo)、設定済アクセスポイントであるアクセスポイントAとアクセスポイントBを検出する(S405のYes)。アクセスポイントAはアクセスポイントBよりも小さな無線LANチャネル番号で通信を行っているため、通信装置301はアクセスポイントAを無線接続するアクセスポイントとして選択する(F703)。
通信装置301は、アクセスポイントAへ無線接続する(F704、F705、S406)。無線接続後、通信装置301はアクセスポイントAに対して、通信パラメータを要求するメッセージを送信する(F706、S407)。アクセスポイントAは提供装置として通信パラメータの自動設定処理を起動していないため、通信装置301に対してエラー通知を送信する(F707)。
エラー通知を受信した通信装置301は、アクセスポイントAを通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイント情報を更新し(S408のNo、S410)、S401に戻る。通信装置301は、再度周辺アクセスポイント情報を解析し(S404のNo,S405のYes)、設定済アクセスポイントであるアクセスポイントBを無線接続するアクセスポイントとして選択する(F708)。
通信装置301は、アクセスポイントBへ無線接続する(F709、F710、S406)。無線接続後、通信装置301は通信パラメータを要求するメッセージをアクセスポイントBへ送信し(S407)、アクセスポイントBは、受信した要求メッセージを外部装置304へ転送する(F711)。
この時点では、外部装置304は提供装置として通信パラメータの自動設定処理を起動していないため、受信した要求メッセージに対してエラー通知を送信する(F712)。ここで、外部装置304は要求メッセージを受信したことにより、通信パラメータの受信を希望する通信装置301の存在を認識し、提供装置として通信パラメータの自動設定処理を起動可能な状態となる。
そこで、ユーザが外部装置304において自動設定処理の開始操作を行うことにより(F713)、外部装置304は提供装置として通信パラメータの自動設定処理を起動する。外部装置304は自動設定処理を起動すると、アクセスポイントBへ自装置が提供装置としての動作を開始したことを通知するメッセージ(起動通知)を送信する(F714)。アクセスポイントBは起動通知を受信後にプローブリクエストを受信した場合、プローブレスポンスに付加する自己情報に、自装置が起動中アクセスポイントであることを示す情報を含める。
通信装置301はエラー通知を受信すると、アクセスポイントBを通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイント情報を更新し(S408のNo、S410)、S401に戻る。
通信装置301は記憶している周辺アクセスポイント情報を再度確認する(S403)。ここでは、未だ選択済みでない設定済アクセスポイントが存在しないため(S404のNo、S405のNo)、周辺アクセスポイント情報を破棄し(S412)、S402に戻る。
そして、通信装置301は周囲のアクセスポイントを再検索するためにプローブリクエストを送信する(F715、S402)。アクセスポイントAは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F716)。アクセスポイントBは、通信装置301から送信されたプローブリクエストに対して、自装置が起動中アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F716)。
通信装置301は受信したプローブレスポンスを解析し(S411、S404のYes)、起動中アクセスポイントであるアクセスポイントBを無線接続するアクセスポイントとして選択する(F717)。
通信装置301は、アクセスポイントBへ無線接続する(F718、F719、S406)。無線接続後、通信装置301はアクセスポイントBに対して通信パラメータを要求するメッセージを送信し(S407)、アクセスポイントBは受信した要求メッセージを外部装置304へ転送する(F720)。この時点では外部装置304は提供装置として通信パラメータの自動設定処理を起動しているため、通信装置301に対して通信パラメータを提供する(F721、S408のYes)。
このように、受信装置は設定済アクセスポイントが複数存在する場合でも、アクセスポイントを自動的に選択して無線接続し、外部提供装置から通信パラメータを受信することが可能となる。
以上説明したように、本実施の形態によれば、通信パラメータの受信を希望する装置は、自動的に無線接続するアクセスポイントを選択し、自動設定プロトコル処理を行う。従って、ユーザが無線接続するアクセスポイントを手動で選択すること無く、提供装置から通信パラメータを受信することが可能となる。また、起動中アクセスポイントと設定済アクセスポイントの両方が検出された場合には、通信パラメータの受信が成功する可能性の高い起動中アクセスポイントを優先的に選択するので、通信パラメータ受信までの時間を短縮できる。また、アクセスポイント自身が提供装置として動作する場合も、アクセスポイントと通信する外部装置が提供装置として動作する場合も区別することなく、同様の処理で通信パラメータを受信することができる。
なお、ステップS402の検索処理ではプローブリクエストに対するプローブレスポンスの受信を待機することにより、アクセスポイントを検索する方法(アクティブスキャン)について説明した。アクセスポイントは、自己情報を付加したビーコン信号(報知信号)を定期的に送信するので、受信装置は一定時間、ビーコンを監視することにより、アクセスポイントを検索する方法(パッシブスキャン)を用いるようにしてもよい。また、アクティブスキャンとパッシブスキャンの両方を用いてアクセスポイントを検索するようにしてもよい。
また、ステップS404とステップS405において、起動中アクセスポイントまたは設定済アクセスポイントが複数検出された場合には、通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択した。
ここで、アクセスポイントの選択方法としては、無線LANチャネル番号の最も大きなアクセスポイントを選択するようにしてもよいし、他の情報に基づいて選択するようにしてもよい。例えば受信信号強度やSSID、BSSID(Basic Service Set Identifier)、アクセスポイントのMACアドレスなどを用いて選択してもよい。
<実施形態2>
実施形態1で説明した図4の処理では、受信装置は最初に周辺のアクセスポイントを検索し、設定済アクセスポイントを複数検出した場合に、検出したアクセスポイントのうちの1つを接続先として選択し、通信パラメータの提供を要求する。該要求に対してアクセスポイントからエラー通知が送信されてきた場合は、他の設定済みアクセスポイントに接続を切替え、同様に通信パラメータの提供を要求する。通信パラメータを受信できるまでこれらの処理を繰り返し、検出した設定済アクセスポイント全てからエラー通知を受信した場合、即ち検出した全てのアクセスポイントを選択済みの場合に、周辺のアクセスポイントの再検索を行う。
ここで、前述したように、設定済アクセスポイントと接続されている外部提供装置の中には、通信パラメータの要求を受信すると通信パラメータの自動設定処理を起動可能となる装置もある。このような外部提供装置が通信パラメータの要求を受信したことをトリガに自動設定処理を起動し、設定済みアクセスポイントが起動中アクセスポイントに切替わったとしても、再検索が行われるまでは当該アクセスポイントと再接続はされない。従って、既に通信パラメータ自動設定処理を起動済みの外部提供装置が存在するにも拘らず、通信パラメータの受信が完了するまでに長時間を要してしまう可能性がある。また、アクセスポイント自身が提供装置として動作する場合も、受信装置がアクセスポイントよりも先に通信パラメータの自動設定処理を起動した場合には、同様の問題が生じる可能性がある。そこで、実施形態2においては、提供装置が受信装置よりも遅れて通信パラメータの自動設定処理を起動する場合であっても、通信パラメータの受信までの時間を短縮できるようにするための処理例について説明する。
実施形態2においても、装置構成、およびネットワーク構成は実施形態1と同様である。
図8は、本実施形態における受信装置の動作を説明するフローチャート図である。通信装置301の設定ボタン106が操作されると、図8に示す処理は開始される。
まず、自動設定制御部208は検索信号送信部205と検索信号受信部206を用いて周囲に存在するアクセスポイントを検索する(S801)。
起動中アクセスポイント検出部210は、ステップS801にて取得した検索結果に含まれる各アクセスポイントの自己情報を解析し、起動中アクセスポイントを検出する(S802)。
起動中アクセスポイントを検出しなかった場合は、後述するステップS803へ進む。起動中アクセスポイントを検出した場合は、アクセスポイント選択部212は検出したアクセスポイントを無線接続するアクセスポイントとして選択し、後述するステップS807へ進む。なお、解析の結果、起動中アクセスポイントを複数検出した場合には、アクセスポイント選択部212は通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択する。
S803において、自動設定制御部208は記憶部103に周辺アクセスポイント情報が記憶されているか否かを確認する。周辺アクセスポイント情報が記憶されている場合は、S801にて取得した検索結果に基づいて周辺アクセスポイント情報を更新する(S804)。周辺アクセスポイント情報が記憶されていない場合、自動設定制御部208はステップS801にて取得した検索結果を周辺アクセスポイント情報として記憶部103に記憶し(S812)、ステップ805へ進む。
設定済アクセスポイント検出部211は、周辺アクセスポイント情報中の各アクセスポイントの自己情報を解析することで、設定済アクセスポイントを検出する(S805)。なお本実施形態では、設定済アクセスポイント検出部211は周辺アクセスポイント情報に含まれるアクセスポイントのうち、通信装置301との間で通信パラメータ自動設定処理を実施済みのアクセスポイントを検出対象から除外する。これにより、一度設定処理を行ったアクセスポイント、すなわち自動設定プロトコル処理が途中でエラーになった場合の設定済アクセスポイントが再度選択されるのを防止することができる。
設定済アクセスポイントを検出しなかった場合、自動設定制御部208は記憶されている周辺アクセスポイント情報を破棄(S806)してステップS801へ戻り、周囲に存在するアクセスポイントを再検索する。設定済アクセスポイントを検出した場合は、アクセスポイント選択部212は検出したアクセスポイントを無線接続するアクセスポイントとして選択し、後述するステップS807へ進む。なお、設定済アクセスポイントを複数検出した場合には、アクセスポイント選択部212は通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択する。
S807において、ネットワーク制御部207は、選択されたアクセスポイントへ無線接続する。無線接続後、自動設定制御部208は通信パラメータ自動設定のためのプロトコル処理を行う(S808)。
自動設定制御部208は、ステップS808にて行われた通信パラメータ自動設定プロトコルの処理結果を確認する(S809)。自動設定プロトコル処理が成功し、通信パラメータ受信部209により通信パラメータを受信できた場合には、記憶部103に記憶されている周辺アクセスポイント情報を破棄して(S810)、図8の処理を終了する。
自動設定プロトコル処理が失敗した場合には、ステップS808にて自動設定プロトコル処理を行ったアクセスポイントを、通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイントの情報を更新する(S811)。情報更新後、自動設定制御部208はステップS801へ戻り、アクセスポイントを再検索する。上述したように、S808の自動設定プロトコル処理を開始した時点では、アクセスポイント又はアクセスポイントに接続された外部提供装置が自動設定処理を起動しておらず、自動設定プロトコル処理がエラー終了してしまう場合がある。しかしながら、自動設定プロトコル処理のメッセージを受信した後に、当該アクセスポイントが提供装置として通信パラメータの自動設定処理を起動し、起動中アクセスポイントに切替わる可能性がある。また、自動設定プロトコル処理のメッセージ受信をトリガとして外部提供装置における通信パラメータの自動設定処理が起動され、アクセスポイントが起動中アクセスポイントに切替わる可能性もある。そこで、自動設定プロトコル処理がエラー終了した場合は、再度アクセスポイントの検索を行うことにより、起動中アクセスポイントに切替わったアクセスポイントを速やかに検出し、再度自動設定プロトコル処理を行うことができる。なお、アクセスポイントの再検索を行う際には、外部提供装置において自動設定処理が起動される時間、及びアクセスポイントに対して起動通知を送信する時間等を考慮し、エラー通知を受信してから一定時間経過後に再検索を行うようにするとよい。
図9は、本実施形態における各装置間のシーケンスの一例を示した図である。図9では、通信装置301がアクセスポイントAから通信パラメータを受信する場合の動作について説明する。なお、アクセスポイントAには初期化時とは異なる通信パラメータが設定されているものとする。また、アクセスポイントAは通信パラメータの自動設定処理を起動していないものとする。
ユーザにより通信装置301の設定ボタンが操作されると、通信装置301は図8の処理を開始する。まず、通信装置301は周囲のアクセスポイントを検索するためにプローブリクエストを送信する(F901、S801)。
アクセスポイントAは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F902)。また、アクセスポイントBも、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F902)。
通信装置301は受信したプローブレスポンスを解析し(S802のNo、S803のNo、S812)、設定済アクセスポイントであるアクセスポイントAとアクセスポイントBを検出する(S805のYes)。アクセスポイントAはアクセスポイントBよりも小さな無線LANチャネル番号で通信を行っているため、通信装置301はアクセスポイントAを無線接続するアクセスポイントとして選択する(F903)。
通信装置301は、アクセスポイントAへ無線接続する(F904、F905、S807)。無線接続後、通信装置301はアクセスポイントAに対して、通信パラメータを要求するメッセージを送信する(F906、S808)。この時点では、アクセスポイントAは提供装置として通信パラメータの自動設定処理を起動していないため、通信装置301に対してエラー通知を送信する(F907)。
ここで、アクセスポイントAにてユーザによる自動設定処理の開始操作が行われると(F908)、アクセスポイントAは提供装置として通信パラメータの自動設定処理を起動する。
通信装置301はエラー通知を受信すると(S809のNo)、アクセスポイントAを通信パラメータ自動設定処理済みのアクセスポイントとするよう周辺アクセスポイント情報を更新し(S811)、S801に戻る。そして、通信装置301は周囲のアクセスポイントを再検索するためにプローブリクエストを送信する(F909)。
アクセスポイントAは、通信装置301から送信されたプローブリクエストに対して、自装置が起動中アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F910)。また、アクセスポイントBは、通信装置301から送信されたプローブリクエストに対して、自装置が設定済アクセスポイントであることを示す自己情報を付加したプローブレスポンスを返信する(F910)。
通信装置301は受信したプローブレスポンスを解析し(S802のYes)、起動中アクセスポイントであるアクセスポイントAを無線接続するアクセスポイントとして選択する(F911)。
通信装置301は、アクセスポイントAへ無線接続する(F912、F913、S807)。無線接続後、通信装置301はアクセスポイントAに対して通信パラメータを要求するメッセージを送信する(F914、S808)。この時点では、アクセスポイントAは提供装置として通信パラメータの自動設定処理を起動しているため、アクセスポイントAは通信装置301に対して通信パラメータを提供する(F915、S809のYes)。
このように、本実施の形態では、通信パラメータの自動設定プロトコル処理がエラー終了する度にアクセスポイントの検索を行うことで、設定済アクセスポイントが起動中アクセスポイントに切替わった場合も即座に検出することができる。従って、実施形態1の効果に加え、提供装置が受信装置よりも遅れて通信パラメータの自動設定処理を起動した場合でも、受信装置は速やかに提供装置から通信パラメータを受信することが可能となる。
なお、ステップS801の検索処理ではプローブリクエストに対するプローブレスポンスの受信を待機することにより、アクセスポイントを検索する方法(アクティブスキャン)について説明した。アクセスポイントは、自己情報を付加したビーコン信号を定期的に送信するので、受信装置は一定時間、ビーコンを監視することにより、アクセスポイントを検索する方法(パッシブスキャン)を用いるようにしてもよい。また、アクティブスキャンとパッシブスキャンの両方を用いてアクセスポイントを検索するようにしてもよい。
また、ステップS802とステップS805において、起動中アクセスポイントまたは設定済アクセスポイントが複数検出された場合には、通信を行う無線LANチャネル番号の最も小さなアクセスポイントを選択した。ここで、アクセスポイントの選択方法としては、無線LANチャネル番号の最も大きなアクセスポイントを選択するようにしてもよいし、他の情報に基づいて選択するようにしてもよい。例えば受信信号強度やSSID、BSSID、アクセスポイントのMACアドレスなどを用いて選択してもよい。
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例のみに限定する趣旨ではない。本発明の要旨を逸脱しない範囲で、実施形態は種々に変形することが可能である。
また、上記説明はIEEE802.11準拠の無線LANを例に説明した。しかしながら、本発明は、ワイヤレスUSB、MBOA、Bluetooth(登録商標)、UWB、ZigBee等の他の無線媒体において実施してもよい。また、有線LAN等の有線通信媒体において実施してもよい。
ここで、MBOAは、Multi Band OFDM Allianceの略である。また、UWBは、ワイヤレスUSB、ワイヤレス1394、WINETなどが含まれる。
また、通信パラメータとしてネットワーク識別子、暗号方式、暗号鍵、認証方式、認証鍵を例にしたが、他の情報であってもよいし、他の情報も通信パラメータには含まれるようにしてもよいことは言うまでも無い。
本発明は前述の機能を実現するソフトウェアのコンピュータプログラムコードを記録した記録媒体をシステム又は装置に供給し、システム又は装置のコンピュータ(CPU、MPU)が記録媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSが実際の処理の一部または全部を行い、前述の機能を実現してもよい。OSとは、Operating Systemの略である。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、そのプログラムコードの指示に基づき、機能拡張ボードや機能拡張ユニットに備わるCPUが実際の処理の一部または全部を行い、前述の機能を実現してもよい。