<実施形態1>
以下、本実施形態に係る通信装置について、図面を参照しながら詳細に説明する。以下では、IEEE802.11シリーズに準拠した無線LANシステムを用いた例について説明するが、通信形態は必ずしもIEEE802.11準拠の無線LANには限らない。
本実施形態に好適な事例におけるハードウェア構成について説明する。
図1は本発明を適用できる実施形態に係る、後述の各装置の構成の一例を表すブロック図である。101は装置全体を示す。102は、記憶部103に記憶される制御プログラムを実行することにより装置全体を制御する制御部である。制御部102は、他の装置との間で通信パラメータの設定制御も行う。103は制御部102が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する各種動作は、記憶部103に記憶された制御プログラムを制御部102が実行することにより行われる。
104はIEEE802.11シリーズに準拠した無線LAN通信を行うための無線部である。105は各種表示を行う表示部でありLCDやLEDのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。
106は通信パラメータ設定処理を開始するトリガを与える設定ボタンである。設定ボタン106が操作されると、通信パラメータの自動設定処理が開始される。制御部102は、ユーザによる設定ボタン106の操作を検出すると、後述する処理を実施する。
107はアンテナ制御部、そして108はアンテナである。
図2は、後述の通信パラメータの自動設定動作を実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。
201は装置全体を示している。202は通信パラメータの自動設定機能ブロックである。本実施形態では、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線LAN通信を行うために必要な通信パラメータの自動設定を行う。なお、通信パラメータの自動設定を、以下、自動設定と簡略化する。
203は各種通信にかかわるパケットを受信するパケット受信部である。ビーコン(報知信号)の受信は、パケット受信部203によって行われる。204は各種通信にかかわるパケットを送信するパケット送信部である。ビーコンの送信は、パケット送信部204によって行われる。なおビーコンには、送信元の機器の各種情報が付加される。
205はプローブリクエストなどの機器検索信号の送信を制御する検索信号送信部である。なお、プローブリクエストは、所望のネットワークを検索するためのネットワーク検索信号ということもできる。プローブリクエストの送信は、検索信号送信部205により行われる。また、受信したプローブリクエストに対する応答信号であるプローブレスポンスの送信も検索信号送信部205により行われる。本実施形態では、ユーザが設定ボタン106を操作し、自動設定処理を開始した場合は、ビーコン、プローブリクエスト及びプローブレスポンスに自動設定中(自動設定動作中)であることを示す情報(IE(インフォーメーション エレメント)を付加して送信する。
206は他の装置からのプローブリクエストなどの機器検索信号の受信を制御する検索信号受信部である。プローブリクエストの受信は、検索信号受信部206により行われる。また、プローブレスポンスの受信も検索信号受信部206により行われる。なお機器検索信号、及びその応答信号には、送信元の機器の各種情報が付加される。
207は、ネットワーク接続を制御するネットワーク制御部である。無線LANアドホックネットワークへの接続処理などは、ネットワーク制御部207により実施される。
自動設定機能部202において、208は相手機器より通信パラメータを受信(受理)する通信パラメータ受信部であり、209は相手機器に通信パラメータを提供する通信パラメータ提供部である。210は、自動設定における各種プロトコルを制御する自動設定制御部である。後述の自動設定処理は、自動設定制御部210の制御に基づいて、通信パラメータ受信部208、通信パラメータ提供部209により行われる。また、通信パラメータの自動設定処理を開始してからの経過時間が当該設定処理の制限時間を越えたか否かの判定も、自動設定制御部210で行われる。また、当該制限時間を超えたと判定した場合には、自動設定制御部210の制御により、自動設定処理を中止する。
211は、通信パラメータの提供装置を検出する提供元検出部である。提供元検出部211は、検索信号送信部205および検索信号受信部206による検索信号の送信と応答により、通信パラメータの提供装置の検出を行う。また、提供元検出部211は、パケット受信部203によるビーコンの受信により、提供装置の検出を行うこともできる。そして、通信パラメータの提供を受ける場合は、検出した提供装置に通信パラメータの提供を依頼し、通信パラメータの提供を受ける。
212は、通信パラメータ記憶部であり、提供装置から提供を受けた通信パラメータを記憶する。なお、通信パラメータ記憶部212は、記憶部103に相当する。
213は、ビーコン制御部であり、ビーコン(報知信号)の送信タイミングを制御する。214は、ビーコン生成部であり、ビーコンを生成する。生成したビーコンは、パケット送信部204によりネットワークへ送信される。なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上記機能ブロックは一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
図3は、通信装置A32(以下、装置A)、通信装置B33(以下、装置B)、通信装置C34(以下、装置C)および通信装置D35(以下、装置D)を示した図である。これら全ての装置は、先に説明した図1、図2の構成を有している。
装置Aは通信パラメータの提供装置として、ネットワークA31(以下、ネットワークA)の構成情報を記憶している。装置Bは、通信パラメータを提供装置から受け取る受信装置であり、装置Aとの間で通信パラメータ自動設定を実施し、装置AからネットワークAの通信パラメータの提供を受けている。
以降の説明では、既存のネットワークAに存在する通信パラメータの提供装置の意味として、装置Aという言葉を使用し、既存のネットワークAに存在する通信パラメータの受信装置の意味として、装置Bという言葉を使用する。
ネットワークAは、装置Aと装置Bとにより構築されるアドホックネットワークである。アドホックネットワークは、IBSS(Independ Basic Service Set)と呼ばれ、各ネットワークはネットワーク識別子であるBSSIDにより区別される。
ここで、装置Cと装置Dとが通信パラメータの自動設定処理を実施する場合を考える。自動設定処理を実施した後のネットワークは、図4のように、全ての装置が同一のネットワークAに統一される場合と、図5のように、装置Aが生成したネットワークAとは別に、装置Cと装置DとでネットワークBを新たに構成する場合との二種類の構成をとりうる。
本実施形態においては、装置Cおよび装置Dでの設定ボタン106の操作後に、ネットワークAの構成装置の設定ボタン106を押すか否かにより、図4または図5で示した上記二種類の構成のどちらをとるかをユーザが制御できる。
図9は、既に構築されているネットワークAの通信パラメータ提供装置である装置Aと、装置Cと、装置Dとの間で実施される処理シーケンスの一例を示した図である。
装置Aは予め、装置Bとの間でネットワークAを構築している(F901)。ネットワークAを構築するために、装置Aは装置Bとの間で自動設定処理を実行済みである。前述した通り、本実施形態の説明に置いては、ネットワークAを構築する際に、装置Aが通信パラメータの提供装置として動作し、装置Bが通信パラメータの受信装置として動作していたとする。
ネットワークAが構築済みの環境下で、装置Cのユーザは、自動設定処理を実施するために設定ボタン106を操作する(F902)。
設定ボタン106が操作された装置Cは、自動設定処理を開始する。
まず、自動設定処理を実際に実施する相手装置を検索するために、プローブリクエストをブロードキャストする(F903)。このプローブリクエストには、自動設定処理中であることを示す情報が付加されている。
装置Aは、装置Cからのプローブリクエストに対してプローブレスポンスを返信する(F904)。装置Aは設定ボタン106が操作されていないので、装置Aが返信したプローブレスポンスには、自動設定処理中である情報は付加されていない。
装置Cは、装置Aからのプローブレスポンスを受信することで、近隣にネットワークAが構築されていることを認識する(F906)。また、プローブレスポンスを返信した装置Aは自動設定処理中ではないことも認識する。装置AがネットワークAを構築していると判断する方法については、後述する。
一方、装置Dのユーザも、通信パラメータの自動設定処理を実施するために設定ボタン106を操作する(F905)。
装置Cは定期的にネットワーク検索処理を実施しているため、装置Dの設定ボタン106が操作された後にも、装置Cが再びネットワーク検索のためにプローブリクエストをブロードキャストする(F907)こともある。この場合は装置Aのプローブレスポンスの返信(F908)と共に、装置Dもプローブレスポンスを返信する(F909)。装置Dが送信したプローブレスポンスは、装置Dの設定ボタン106が操作された後に送信されるので、自動設定処理中であることを示す情報が付加されている。
従って、装置Cは、装置Dからのプローブレスポンスの受信をもって、自動設定処理中の装置Dの存在を認識する(F910)。
ここで、装置Cが、ネットワークAと装置Dとを判別する方法について説明する。例えば次に述べる2つの方法がある。
第一の方法:
F903からF909までのプローブリクエストの送信およびプローブレスポンスの受信をビーコンインターバルよりも十分に大きい時間内に複数回実施する。ネットワークAは装置Aと装置Bとから構成されているため、同一BSSIDのプローブレスポンスが装置Aと装置Bとの異なるMACアドレスから送信されてくる。この場合に、装置Aと装置Bとで構成されるネットワークAが存在すると判定できる。同一BSSIDのプローブレスポンスが全て同一のMACアドレス(本実施の形態では装置DのMACアドレス)からであり、自動設定処理中を示すIEが付加されていれば、自動設定処理中の装置Dが存在すると判定できる。つまり、該当するBSSIDは、通信パラメータの自動設定処理中の1つの装置だけが使用していることを判定できる。
第二の方法:
通信パラメータの自動設定処理によってネットワークを構築又は参加している通信装置は、特別な情報を付加してプローブレスポンスを返信するようにする。特別な情報としては、自動設定処理により通信パラメータが設定されたネットワークが構築されていることを示す情報(IE)、又は、自動設定処理を実施し、通信パラメータを提供した通信装置の数を示す情報(IE)である。
このようにすれば、プローブレスポンスを受信した通信装置が受信した情報を判定して、ネットワークAの存在、装置Dの存在を判定できる。例えば、受信したプローブレスポンスに、自動設定処理により通信パラメータが設定されたネットワークが構築されていることを示すIEが付与されている場合は、ネットワークAを判別できる。受信したプローブレスポンスに、自動設定処理により通信パラメータが設定されたネットワークが構築されていることを示すIEがなく、自動設定処理中を示すIEが付加されている場合は、通信パラメータの自動設定処理を開始している装置Dを判別できる。また、受信したプローブレスポンスに、自動設定処理を実施して通信パラメータを提供した通信装置の数が1以上のIEが付加されていた場合には、ネットワークAを判別できる。また、そのようなIEが付加されてなく、自動設定処理中を示すIEが付加されている場合は、自動設定処理を開始したばかりの装置Dを判別できる。なお、これらのIEは、全くの新規要素でも良いし、既存のIEを流用してもよい。また、第一の方法と第二の方法とを組み合わせることによってネットワークAと装置Dとを判別してもよい。
ここで図9の説明に戻る。F905において、ユーザにより設定ボタン106が操作された装置Dは、装置Cと同様に、自動設定処理を開始する。即ち、通信パラメータの自動設定処理を実施する相手装置を検索するために、プローブリクエストをブロードキャストする(F911)。このプローブリクエストには、自動設定処理中であることを示す情報が含まれているので、装置Cはこの信号を受信することでも、自動設定動作中の装置Dを認識することもできる。
装置Aのプローブレスポンスの返信(F912)と共に、装置Cもプローブレスポンスの返信(F913)を行う。装置Aは自動設定処理中ではないので、プローブレスポンスには、自動設定処理中であることを示す情報は含まれない。従って、装置Dは、装置Aからのプローブレスポンスを受信することで、近隣にネットワークAが構築されていることを認識する(F914)。また、装置Cは自動設定処理中なので、装置Cが送信したプローブレスポンスには、自動設定処理中であることを示す情報が付加されている。従って、装置Dは、装置Cからのプローブレスポンスを受信することで、近隣に自動設定動作中の装置Cが存在することを認識する(F915)。
装置Cおよび装置Dともに、近隣に、通信パラメータ自動設定で構築されたネットワークAが存在することと共に、通信パラメータの自動設定処理を開始している他の装置が存在することを認識している。
そこで、装置Cおよび装置Dは、ネットワークAの通信パラメータ提供装置である、装置Aが通信パラメータの提供処理を開始するかどうかを一定時間監視する。
装置Aのユーザが設定ボタン106を操作する(F916)と、装置Aは、通信パラメータの提供機能を開始したことを、報知する(F917)。この報知は、例えばビーコン信号に、提供機能の開始を通知するための情報を含めて送信することにより行われる。他の方法として、プローブリクエスト、プローブレスポンス、その他の信号に、提供機能の開始を通知するための情報を含めて送信してもよい。また、この報知信号には、ネットワークAのBSSIDが含まれるため、該報知信号を受信した装置は、ネットワークAに属する装置からの報知信号であることを認識できる。この報知により、装置Aは自身の存在を周囲に通知すると共に、後述する図6の処理を実施する。
F917の報知信号を受信した、装置Cおよび装置Dはそれぞれ、ネットワークAの装置Aが、通信パラメータの提供機能を開始したことを認識する。装置Aが提供機能を開始したことを認識した装置C及び装置Dはそれぞれ、装置Aとの間で通信パラメータの自動設定処理を実施する(F918,F919)。装置C及び装置Dが装置Aと自動設定処理を実施する場合は、装置C及び装置Dは、装置Aに通信パラメータの提供を要求する。この要求を受けた装置Aは、装置C及び装置DにネットワークAの通信パラメータを提供する。これにより、装置Cおよび装置Dは、装置AからネットワークAに参加するための通信パラメータの提供を受け、ネットワークAに追加参加できる。
なお、一定時間内に装置Aの設定ボタン106が操作されなかった場合は、装置Cと装置Dとの間で通信パラメータの自動設定処理を実施する(F920)。この自動設定処理により、装置Cと装置Dの一方が、通信パラメータの提供装置となり、他方が、通信パラメータの提供を受ける受信装置となり、提供装置から受信装置に通信パラメータが提供される。そして、この通信パラメータにより新しくネットワークBを構築する。
ここで、装置Cと装置Dのどちらが提供装置になるか、受信装置になるかは、動的に決定しても良いし、予め定めていてもよい。
なお、F918またはF919、およびF920の実施前に、装置Cもしくは装置Dの表示部105に、通信パラメータの提供処理を開始することをユーザに確認させるための確認表示をしてもよい。この場合、設定ボタン106の再操作を待って、再度操作されると、提供処理を実施してもよい。本動作を追加することにより、ユーザの意思によりすみやかに通信パラメータの提供処理を開始することができる。
また、装置Cおよび装置Dが、装置Aによる通信パラメータの提供処理の開始を待つ時間については、ユーザ操作により、短縮させることも可能である。例えば、装置Cの表示部105上に「装置Dとの間で新規にネットワークを構築しますか?」のような確認表示を行い、ユーザに新規ネットワークを構築するか否かを選択させる。または、装置C、Dの表示部105上に、「ネットワークAが既に存在します、このネットワークに参加しますか?」と表示し、ユーザに既存ネットワークに参加するか否かを選択させる。または、装置C、Dの表示部105上に、「ネットワークAが既に存在します、このネットワークに参加しますか? 新規にネットワークを構築しますか?」を表示し、ユーザに既存ネットワークに参加するか、新規にネットワークを構築するかを選択させる。このように、ユーザに既存ネットワークに参加するか、新規にネットワークを構築するかを選択させ、該選択に応じて、通信パラメータの自動設定処理を行う。つまり、上記選択に応じて、既存ネットワークの提供装置から通信パラメータの提供を受けるか、通信パラメータの自動設定を開始したばかりの装置同士で通信パラメータの自動設定処理を行う。このようにすることにより、通信パラメータが自動設定されるまでの時間を短縮でき、速やかに既存ネットワークに参加、又は新規ネットワークを構築できる。
また別の例としては、装置Cと装置Dとで予め定めた特定のパターンで設定ボタン106又は入力部109を操作することによって、ネットワークAとは無関係に装置Cと装置Dとだけで新しいネットワークをすみやかに構築してもよい。
なお、装置CがネットワークAに追加参加したか、装置Dと新規ネットワークを構築したかの区別をユーザに判り易くする処理を行ってもよい。例えば、それぞれの装置の表示部105において、同一ネットワークであれば同一のLEDパターンやカラー表示をしてもよい。
また、ネットワーク検索処理として、本実施の形態は、プローブリクエストを送信し、プローブレスポンスを受信することで相手装置を判定するアクティブスキャン方式にて説明を行った。このアクティブスキャン方式ではなく、ビーコンおよびプローブレスポンスを受信し、相手装置を判定するパッシブスキャン方式でもよく、他のネットワークの検索方法でも良い。もちろん、アクティブスキャン方式と、パッシブスキャン方式との両方式を用いて検索しても良い。
全体のシーケンス図の説明に引き続き、それぞれの装置の処理についてフローチャートに基づいて説明を行う。
図6は、通信パラメータの提供装置である装置Aの処理フローチャートを示した図である。図6のフローチャートは、装置Aの制御部102が記憶部103に記憶されている制御プログラムを実行することにより実施される。また、図6のフローチャートは、図2に示した各機能ブロックが、各ブロックの役割に従って動作することにより実施される。
本処理は、装置Aと装置Bとの間でネットワークAを構築する際および、ネットワークA構築後、装置Cまたは装置Dへ、通信パラメータを提供する際に実施される。
装置Aの制御部102は、設定ボタン106がユーザにより押下されたか否か監視する(S601)。設定ボタン106の押下を検出すると(S601)、制御部102は、自動設定機能部202による通信パラメータの自動設定処理を開始する。なお、装置AはネットワークAを構築するための通信パラメータの提供装置として機能する。自動設定処理を開始した制御部102は、自動設定処理の制限時間(第1の所定時間)の計時を開始する(S602)。この第1の所定時間が満了すると、通信パラメータの自動設定処理は中止される。制御部102は、自動設定処理の開始すると、通信パラメータの提供機能を開始したことを報知する(S603)。例えば、ビーコン信号に、提供機能の開始を通知するための情報を含めて送信する。また、装置Aはプローブリクエストの受信を待つ(S604)。プローブリクエストを受信した装置Aは、その返答として、通信パラメータの自動設定処理中であること及び提供機能を開始していることを示す付加情報を付加したプローブレスポンスを送信する(S605)。このプローブレスポンスの送信も、提供処理を開始していることの報知の一種である。プローブリクエストを受信しない場合は、ステップS606に進む。
提供機能の開始を示す情報を付加したビーコン、プローブレスポンスは、提供装置が自動設定処理の実行中に返すプローブレスポンスである。提供機能を開始していない場合には、該情報を付加しないビーコン、プローブレスポンスを送信する。
この付加情報付のビーコン、プローブレスポンスを受信した通信パラメータの受信装置は、通信パラメータの提供装置に通信パラメータの提供を要求するために、提供装置へ通信パラメータの自動設定開始要求を送信する。そのため、装置Aは、通信パラメータの自動設定の開始要求(提供の要求)の到着を待つ(S606)。
自動設定の開始要求を受信した装置Aは(S606)、通信パラメータを受信装置との間で共有するための処理を開始する(S607)。つまり、受信装置に通信パラメータを提供する処理を実施する(S607)。上記開始要求を受信しない場合は、設定ボタンの押下が検出されてから第1の所定時間が経過したかを判定する(S608)。第1の所定時間が経過していなければ、ステップS603に戻る。上記開始要求を受信しないまま、第1の所定時間が経過した場合は、自動設定処理を終了する。この場合、通信パラメータを提供することなく、処理を終了することになる。
なお、通信パラメータ自動設定処理中であることを示す付加情報は、通信パラメータの自動設定機能が有効であることを示す付加情報でもあり、設定ボタンの押下状況は、前記付加情報に含まれる一つのパラメータであってもよい。
図7は、図9で説明を行ったシーケンスを実施するための装置Cの動作フローチャートを示した図である。なお、図7は、装置Cの動作フローチャートとして説明するが、装置Dも同様に動作する。図7のフローチャートは、装置Cの制御部102が記憶部103に記憶されている制御プログラムを実行することにより実施される。また、図7のフローチャートは、図2に示した各機能ブロックが、各ブロックの役割に従って動作することにより実施される。
装置Cの制御部102は、ユーザにより設定ボタン106が操作(押下)されたか否かを監視する(S701)。制御部102は、設定ボタン106の押下を検出すると、自動設定機能部202による通信パラメータの自動設定処理を開始する。自動設定処理を開始した制御部102は、通信パラメータの自動設定処理の制限時間(第1の所定時間)と、既存ネットワーク内の装置が通信パラメータの提供機能を開始したか否かを監視する制限時間(第2の所定時間)の計時を開始する(S702)。第1の所定時間が満了すると、通信パラメータの自動設定処理は中止される。また、第2の所定時間は、第1の所定時間よりも短い時間である。
タイマを開始後、装置Cの制御部102は、自動設定処理を開始した通信装置を検出するために、ネットワーク検索処理を実施する(S703)。ネットワーク検索処理は、例えば、前述のように、プローブリクエストの送信及びプローブレスポンスの受信、ビーコン信号の受信により行われる。
プローブレスポンス、ビーコン信号に付加されている情報を確認することによって、通信パラメータの自動設定処理を開始している提供装置を検出することができる。なお、プローブリクエストにも自動設定処理中を示す付加情報が付加されて送信される。これにより、当該プローブリクエストを受信した装置は、通信パラメータの自動設定処理を開始している受信装置を検出することができる。
S703によるネットワーク検索処理の結果、通信パラメータ自動設定処理を完了していない装置Dを検出したか否かを判定する(S704)。
S704において、装置Dを検出した場合は、装置Dのほかに、ネットワークAが存在しているかどうかを判定する(S705)。
なお、装置Dの検出と、ネットワークAの検出とは、同一のネットワーク検索結果を用いて判定しても良いし、その都度検索処理を実施しても良い。
S705において、ネットワークAを検出した場合、すでに構築済みのネットワークAの通信パラメータを管理している提供装置が提供機能を開始しているかどうかを判定する(S706)。つまり、提供装置が自動設定処理を開始しているかどうかを判定する。
前記判定処理としては、例えば、提供装置である装置Aからのビーコン信号、プローブレスポンスの内容を判定することにより、装置Aの設定ボタン106が押された状態にあるかどうかを判断する。なお、通信パラメータの提供装置は、装置Aでなく、同一ネットワークAに存在する装置Bであっても良いことは言うまでもない。S706の判定処理によって、装置Aが自動設定処理を開始し、パラメータ交換可能であることが判明した場合は、装置Cは装置Aと通信パラメータの自動設定処理を実施(S707)する。この自動設定処理により、装置Cは装置AからネットワークAの通信パラメータの提供を受け、装置CはネットワークAへ参加する。装置Cが装置Aと自動設定処理を実施するためには、装置Cが装置Aに通信パラメータの提供を要求する。この要求を受信した装置Aは、装置Cに通信パラメータを提供する。
一方、S706の判定処理において、装置Aの提供機能が未起動であることを確認した場合は、第2の所定時間が経過したかを判定する(S708)。第2の所定時間が経過していなければ、ステップS703に戻り、ネットワークの検索処理を継続する。第2の所定時間が経過しても、装置Aが提供機能を開始しなければ(S708)、装置Dとの間で、通信パラメータ自動設定処理を実施する(S709)。これにより、装置Cと装置Dとで新たなネットワークBを構築する。また、第2の所定時間が経過するまでにネットワークAが検出されなくても(S705、S708)、装置Cは装置Dとの間で、通信パラメータ自動設定処理を実施し、新たなネットワークBを構築する。(S709)。
なお、S703の検索処理によりネットワークAおよび装置Dの存在を検出した場合は、検索処理は終了し、第2の所定時間が経過するまでにネットワークAに参加している装置が提供機能を開始するかどうかを監視するようにしてもよい。
また、S704において、装置Dを検出しなかった場合でも、ネットワークAが存在しているかどうかを判定する(S710)。
なお、ここでも装置Dの検出処理とネットワークAの検出処理とは、同一のネットワーク検索結果を用いて判定しても良いし、その都度検索処理を実施してもよい。S710において、ネットワークAを検出した場合、すでに構築済みのネットワークAの通信パラメータを管理している提供装置が提供機能を開始しているかどうかを判定する(S711)。つまり、ネットワークAの提供装置が自動設定処理を開始しているか否かを判定する。
S711の判定処理によって、提供装置である装置Aが提供機能を開始し、パラメータ交換可能であることが判明した場合は、装置Cは装置Aと自動設定処理を実施(S712)し、装置CはネットワークAへ参加する。
一方、S710の判定処理でネットワークAを検出しなかった場合、あるいは、S711の判定処理において、装置Aの提供機能が未起動であることを確認した場合は、第1の所定時間が経過したかを判定する(S713)。第1の所定時間が経過していなければ(S713)、ステップS703に戻り、再度ネットワーク検索処理を行う。第1の所定時間が経過していれば(S713)、自動設定処理を行わずに、処理を終了する。
このように本実施の形態によれば、通信パラメータの自動設定処理によって構築されたネットワークが既にある場合に、新規通信装置が、既存ネットワークに参加するか、新規通信装置同士で新たなネットワークを構築するかを明示的に制御することができる。つまり、ユーザが既存ネットワークの装置に提供機能を開始させれば、新規通信装置は既存ネットワークの提供装置から通信パラメータの提供を受けることができる。よって、新規通信装置を既存ネットワークに参加させることができる。また、既存ネットワークの装置に提供機能を開始させなければ、自動設定処理をユーザに指示された新規通信装置同士で通信パラメータの自動設定処理を行うことができる。よって、新規通信装置同士で新たなネットワークを構築させることができる。
<実施形態2>
実施形態1では、すでに存在しているネットワーク上の通信パラメータの提供装置が、通信パラメータ提供機能を開始したかを確認する場合について説明した。つまり、既存ネットワーク上の提供装置の、提供機能の開始のトリガとなるボタンが押下されたかを確認する場合について説明した。実施形態2においては、既存ネットワークが構築された時間を考慮して、参加するネットワークを判定する例について説明する。
実施形態2においても、装置構成およびネットワーク構成および、装置間の処理シーケンスは実施形態1と同様である。また、装置Aの処理についても実施形態1と同様である。
実施形態2においては、装置Cおよび装置Dの処理が実施形態1とは異なる。実施形態2における装置Cの動作フローチャート図を示したものが図8である。
これより図8を用いて、実施形態2における装置Cの動作フローについて説明する。なお、図8は装置Cの動作フローチャートとして説明するが、装置Dも同様に動作する。また、図7と同じ処理ついては図7と同じ符号を付している。また、図8のフローチャートは、装置Cの制御部102が記憶部103に記憶されている制御プログラムを実行することにより実施される。また、図8のフローチャートは、図2に示した各機能ブロックが、各ブロックの役割に従って動作することにより実施される。
装置Cの制御部102は、ユーザにより設定ボタン106が操作(押下)されたか否かを監視する(S701)。制御部102は、設定ボタン106の押下を検出すると、自動設定機能部202による通信パラメータの自動設定処理を開始する。自動設定処理を開始した制御部102は、通信パラメータの自動設定処理の制限時間(第1の所定時間)と、既存ネットワーク内の装置が通信パラメータの提供機能を開始したか否かを監視する制限時間(第2の所定時間)の計時を開始する(S702)。第1の所定時間が満了すると、通信パラメータの自動設定処理は中止される。また、第2の所定時間は、第1の所定時間よりも短い時間である。
タイマを開始後、装置Cの制御部102は、自動設定処理を開始した通信装置を検出するために、ネットワーク検索処理を実施する(S703)。ネットワーク検索処理は、例えば、プローブリクエストの送信及びプローブレスポンスの受信、ビーコン信号の受信により行われる。
プローブレスポンス、ビーコン信号に付加されている情報を確認することによって、通信パラメータの自動設定処理を開始している提供装置を検出することができる。なお、プローブリクエストにも自動設定処理中を示す付加情報が付加されて送信される。これにより、当該プローブリクエストを受信した装置は、通信パラメータの自動設定処理を開始している受信装置を検出することができる。
S703によるネットワーク検索処理の結果、通信パラメータの自動設定処理を完了していない装置Dを検出したか否かを判定する(S704)。
S704において、装置Dを検出した場合は、装置Dのほかに、ネットワークAが存在しているかどうかを判定する(S705)。
なお、装置Dの検出と、ネットワークAの検出とは、同一のネットワーク検索結果を用いて判定しても良いし、その都度検索処理を実施しても良い。
S705において、ネットワークAを検出した場合、装置Cは、ネットワークAが構築されてからどの程度の時間が経過しているのかを判定する(S801)。
ネットワークAが構築されてからの時間を判定するための処理としては、例えば次のような処理を行う。
IEEE802.11規格における無線LANネットワークでは、TSFタイマーと呼ばれるタイマーが規定されていて、該タイマーの値によりネットワーク構築の時間を計測することができる。TSFとは、Timing Synchronization Functionの略であり、本来は無線LAN端末間の同期に用いられる機能である。
TSFタイマーは、IEEE802.11のパケットフレーム内にタイムスタンプフィールドとして付与されている。TSFタイマーは64ビットのカウンタであり、2の64乗マイクロ秒まで測定することができる。
タイムスタンプフィールドにおいては、IBSSネットワークの構築時に0クリアされ、ネットワークが存在していればインクリメントされていく。2の64乗マイクロ秒経過後、カウンタは0にリセットされる。
2の64乗マイクロ秒とは、およそ584554年経過後であるため、ネットワークが構築されてからの時間を判定するためには十分である。よって、装置Cが、ネットワークAのビーコンまたはプローブレスポンスなどのパケットに付与されているタイムスタンプフィールドを参照することで、ネットワークAの構築時間を判定することができる。
S801において、装置Cが通信パラメータの自動設定処理を開始した時点から、ネットワークAが一定時間内(例えば1時間以内)に構築されている場合は、ステップS706に進む。ステップS706では、すでに構築済みのネットワークAの通信パラメータを管理している通信パラメータ提供装置が提供機能を実施しているかどうかを判定する。つまり、提供装置が自動設定処理を開始しているかどうかを判定する。
前記判定処理としては、例えば、提供装置である装置Aからのビーコン信号、プローブレスポンスの内容を判定することにより、装置Aがボタン押し状態にあるかどうかを判断する。
S706の判定処理によって、装置Aが自動設定処理を開始し、装置Aがパラメータ交換可能であることが判明した場合は、装置Cは装置Aと通信パラメータの自動設定処理を実施(S707)する。この自動設定処理により、装置Cは装置AからネットワークAの通信パラメータの提供を受け、装置CはネットワークAへ参加する。装置Cが装置Aと自動設定処理を実施するためには、装置Cが装置Aに通信パラメータの提供を要求する。この要求を受信した装置Aは、装置Cに通信パラメータを提供する。
一方、S801の判定処理において、ネットワークAの構築時間が一定時間以上過去である場合には、ネットワークAに参加することは無く、装置Dとの間で、通信パラメータの自動設定処理を実施する(S709)。これにより、装置Cと装置Dとで新たなネットワークBを構築する。
また、S706の判定処理において、装置Aの提供機能が未起動であることを確認した場合は、第2の所定時間が経過したかを判定する(S708)。第2の所定時間が経過していなければ、ステップS703に戻り、ネットワークの検索処理を継続する。第2の所定時間が経過しても、装置Aが提供機能を開始しなければ(S708)、装置Cは装置Dとの間で、通信パラメータの自動設定処理を実施する(S709)。これにより、装置Cと装置Dとで新たなネットワークBを構築する。また、第2の所定時間が経過するまでにネットワークAが検出されなくても(S705、S708)、装置Cは装置Dとの間で、通信パラメータの自動設定処理を実施し、新たなネットワークBを構築する。(S709)。
なお、S703の検索処理によりネットワークAおよび装置Dの存在を検出し、ネットワークAが装置Cの通信パラメータ設定処理を開始した時点から一定時間内(例えば1時間以内)に構築されている場合は、検索処理は終了する。そして、第2の所定時間が経過するまでにネットワークAに参加している装置が提供機能を開始するかどうかを監視するようにしてもよい。
また、S704において、装置Dを検出しなかった場合でも、ネットワークAが存在しているかどうかを判定する(S710)。
なお、ここでも装置Dの検出処理とネットワークAの検出処理とは、同一のネットワーク検索結果を用いて判定しても良いし、その都度検索処理を実施してもよい。
S710において、ネットワークAを検出した場合、ネットワークAが構築されてからどの程度の時間が経過しているのかを判定する(S802)。
S802において、ネットワークAが一定時間内に構築されている場合は、すでに構築済みのネットワークAの通信パラメータを管理している提供装置が提供機能を実施しているかどうかを判定する(S711)。
S711の判定処理によって、提供装置である装置Aが提供機能を開始していて、パラメータ交換可能であることが判明した場合は、装置Cは装置Aと通信パラメータの自動設定処理を実施(S712)し、装置CはネットワークAへ参加する。装置Cが装置Aと自動設定処理を実施するためには、装置Cが装置Aに通信パラメータの提供を要求する。この要求を受信した装置Aは、装置Cに通信パラメータを提供する。
一方、S710の判定処理でネットワークAを検出しなかった場合は、第1の所定時間が経過したかを判定する(S713)。また、S802の判定処理においてネットワークAの構築時間が一定時間以上過去である場合、あるいは、S711の判定処理において、装置Aの提供機能が未起動であることを確認した場合も、第1の所定時間が経過したかを判定する(S713)。第1の所定時間が経過していなければ(S713)、ステップS703に戻り、再度ネットワーク検索処理を行う。第1の所定時間が経過していれば(S713)、自動設定処理を行わずに、処理を終了する。
本実施の形態によれば、通信パラメータの自動設定機能によって構築されたネットワークが既にあり、そのネットワークが構築された時期が自動設定処理を開始した時間と近い場合に、新規通信装置を、既にあるネットワークに参加させることが容易となる。また、構築されてからかなり時間がたっている場合には、新規通信装置同士で新たなネットワークを構築することができる。このようにすることにより、例えば、一定時間より前に集っているユーザ達の装置により構築されているネットワークとは、別に、一定時間内に集ったユーザの装置によりネットワークを構築できる。
また、上記説明では、既存ネットワークが一定時間内に構築されたネットワークであれば、新規通信装置はそのネットワークに参加するようにした。しかしながら、既存ネットワークが一定時間より前に構築されたネットワークであれば、新規通信装置はそのネットワークに参加するようにしてもよい。また、ネットワークが構築された時間もしくは時間帯をユーザが指定できるようにし、該時間(時間帯)に構築されたネットワークが存在すれば、該ネットワークに参加するようにしてもよい。この場合、指定された時間(時間帯)に構築されたネットワークが存在しなければ、新規通信装置同士で新たなネットワークを構築するようになる。
以上のようにすることにより、既存ネットワークが構築された時間に応じて、既存ネットワークに参加するか、新規ネットワークを構築するかを切り替えることができる。従って、既存ネットワークが構築された時間も考慮した通信相手と通信することができる。
特に、複数台の新規参加装置が存在する場合に、新規参加通信装置同士で異なるネットワークを構築してしまうことを防止でき、多人数で実施する会議などにおける一時的ネットワーク構築に効果的である。
また、上記説明は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が実際の処理の一部または全部を行い、前述の機能を実現してもよい。