以下、この発明を実施するための形態を、図面を参照して説明する。なお、以下の説明で参照する図面においては、同一もしくは相当する部分には同一の符号を付している。
実施の形態1.
図1は、この発明の実施の形態1に係る探索通信装置100の機能構成の一例を示すブロック図である。実施の形態1の探索通信装置100はアンテナ110、送信器120、受信機130、MAC(Medium Access Control)処理部140、探索管理部150、グループ制御部160を備えている。
アンテナ110は無線での信号の送信および受信を行う。送信器120は、無線方式に応じて定められた高周波信号処理、変調処理などの無線での信号送信に必要な処理を実施して、処理した信号をアンテナ110に入力する。また、受信器130は、アンテナ110で受信された信号を受け取り、無線方式に応じて定められた高周波信号処理、復調処理などの無線で受信した無線に必要な処理を実施する。MAC処理部140は無線で送信または受信する信号について、無線方式で定められたMAC層の処理を実施する。MAC処理部140は、送信の処理では処理後の信号を送信器120に入力し、受信側の処理では受信器220から入力される信号を処理する。
探索制御部150は探索通信装置100が行う他の通信装置を探索する探索処理を制御する。探索処理部150は、探索処理に関わるデータの送信、受信をMAC処理部140経由で行う。グループ制御部160は探索制御部150が行った探索処理の結果に基づいて、複数の探索通信装置100で構成するグループに関わる制御を行う。また、グループの制御に関わるデータの送信、受信をMAC処理部140経由で行う。
また、図2は、この発明の実施の形態1に係る被探索通信装置200の機能構成の一例を示すブロック図である。実施の形態1の被探索通信装置200はアンテナ210、送信器220、受信機230、MAC処理部240、探索処理部250を備える。アンテナ210、送信器220、受信機230、MAC処理部240はそれぞれ、探索通信装置100が備えるアンテナ110、送信器120、受信機130、MAC処理部140と同様である。また、探索制御部250は探索通信装置100が行う探索処理に関わる処理の制御を行う。
なお、探索通信装置100は、実際にはユーザにサービスを提供するなどの他の機能を備えてもよい。また、被探索通信装置200も、探索通信装置100と同様にユーザにサービスを提供するなどの他の機能を備えてもよい。探索通信装置100の具体例として、自動車のヘッドユニット、カーナビゲーション機器、カーオーディオ機器、リアシートモニターなどがある。また、被探索無線通信装置200の具体例として、タブレットPC、ラップトップPC、スマートフォン、携帯ゲーム機器、携帯音楽プレイヤなどがある。
探索通信装置100が備える送信器120、受信器130、MAC処理部140、探索制御部150、グループ制御部160はASIC(Application Specific Integrated Circuit)等を用いた回路で実現することが可能であるし、あるいはプロセッサとプロセッサ上で動作するプログラムで実現することも可能である。また、ASIC等とプロセッサおよびプロセッサ上で実行されるプログラムを組み合わせて実現することも可能であり、例えば、送信器120、受信器130が行う無線で送受信される高周波信号の処理を専用の回路で実施し、MAC処理部140、探索制御部150、グループ制御部160の処理をプログラムで実現することが考えられる。被探索通信装置200も同様に、ASIC等を用いた回路、プロセッサとプロセッサ上で実行されるプログラム、あるいはこれらの組み合わせで実現することができる。
図3は図1、図2に示した探索通信装置100(または被探索通信装置200)の機能の一部をプロセッサとプロセッサ上で実行されるプログラムで実現した場合のハードウェア構成の一例を示すブロック図である。この例は、MAC処理部140(240)、探索制御部150(250)、グループ制御部160をプロセッサとプロセッサ上で実行されるソフトウェアで実現する場合の例である。探索通信装置100(または被探索通信装置200)は、アンテナ110(210)と、送信器120(220)、受信器130(230)と、プロセッサ410とメモリ420を備えている。また、バス420は各ブロックを相互に接続するバスである。MAC処理部140(240)、探索制御部150(250)の各機能を実現するプログラムはメモリ420に記憶され、プロセッサ410がメモリ420を用いて実行する。
次に動作を説明する。なお、探索通信装置100が備えるアンテナ110、送信器120、受信器130、MAC処理部140は、この発明の装置が用いる無線通信方式に応じて定められた通常の無線信号の送信処理、受信処理を行うものであり、この発明の特徴と直接に関係するものではないことから、説明を簡略化するために詳細な説明を省略する。被探索通信装置200についても同様である。また以降では、IEEE802.11規格で定められた無線LANが探索通信装置100および被探索通信装置200が用いる無線通信方式であるものとし、探索通信装置100および被探索通信装置200は2.4GHz帯でch1からch11の11個の周波数(無線チャネル)を使用するものする。なお、この発明は上記の無線チャネルに限定されるものではない。5GHzや60GHzなどの他の周波数帯を用いてもよいし、あるいは、IEEE802.11規格の無線LANではない他の無線通信方式を用いる無線チャネルを使用するものであってもよい。
図4は、既存のグループのいずれにも属していない探索通信装置100が行うグループ構築の処理の一例を示すフロー図である。なお、図4およびこれ以降に参照するフロー図は一例のフローを示すものであり、同等の結果を得られる限りにおいて、他の順序で処理を実施したり、あるいは、複数の処理を並列に実施したりしてもよい。
まず、探索通信装置100の探索制御部150がMAC処理部140に対して、IEEE802.11規格で定められた探索要求(Probe Request)の送信を、使用可能なすべての無線チャネルに送信するよう要求する(S001)。これにより、前述の通り、ch1からch11の11個の無線チャネルを使用しているルので、探索通信装置100はこれらのすべての無線チャネルに探索要求を生成する。し、使用可能な無線チャネルの全てに送信する(S001)。
探索通信装置100が送信する探索要求は図5にフォーマットの例を示す情報を含む。なお、この実施の形態では探索要求のVendorSpecificInfoフィールドにこの情報が格納されるものとする。図5において、Element IDは図5のフォーマットの情報を識別するための識別子である。また、Lengthはこのフィールドのバイト長を示す。また、OUI(Organizationally Unique Identifier)、OUItypeはIEEEが管理する識別子である。また、探索通信装置は、応答オフセット時間(Offset)、応答チャネル(Channel)、グループID(Group ID)、GPS(Global Positioning System)情報(GPS Information)を格納する。
応答オフセット時間は、探索要求を受信した通信装置が探索応答(Probe Response)を送信するまでの待機時間(例えば5ミリ秒)を示す。なお、応答オフセット時間は探索通信装置100からすべての無線チャネルに探索要求を送信するために要する時間以上であるほうが望ましい。応答チャネルは、探索応答を送信する際に使用する無線チャネル(すなわちch1からch11のいずれか)を示す。グループIDは、探索要求を送信した探索通信装置100が属しているグループを識別する識別子を示す。なお、S001では探索通信装置100はいずれのグループにも属していないためグループIDは無効値とする。GPS情報はGPS受信器(図示せず)から得た、探索要求を送信する探索通信装置100の位置情報である。なお、探索要求を送信する探索通信装置の絶対的もしくは相対的な位置を表す情報であれば、必ずしもGPSから取得される情報である必要はない。
次に、探索通信装置100の探索制御部150は、送信した探索要求への応答として探索通信装置100および被探索通信装置200が応答チャネルで送信する探索応答を待ち受けする(S002)。S002での探索応答の待受けをする第1の待受時間は、最初の探索要求を送信した後、応答オフセット時間とIEEE802.11規格のMinChannelTimeで規定される時間(例えば3ミリ秒)が経過するまでとする。
S002の待ち受けを終了すると、探索制御部150は被探索通信装置200または他の探索通信装置100からの探索応答を受信したか否かを判定する(S003)。S003の判定で探索応答を受信していなかった場合には、実施中の処理を終了し、あらかじめ定められた待機時間(例えば50ミリ秒)を待機(S011)した後、再びS001を実施する。S003の処理で、探索応答を受信したと判定した場合には、MAC制御部140はさらに第2の待受時間が経過するまで探索応答の待ち受けを行う(S004)。ここで、第2の待ち受け時間はIEEE802.11規格のMaxChannelTimeで規定される時間(例えば7ミリ秒)が経過するまでとする。
S004の待ち受けが終了すると、探索通信装置100の探索制御部150は、被探索通信装置200から受信した探索応答の処理を行う(S005)。この実施の形態における探索応答は図6にフォーマットの例を示す情報を含む。なお、この実施の形態では探索応答のVendorSpecificInfoフィールドにこれらの情報を含むこととする。図6において、Element IDは図6のフォーマットの情報を識別するための識別子である。また、Lengthはこのフィールドのバイト長を示す。また、OUI、OUItypeはIEEEが管理する識別子である。
また、装置種別は探索応答を送信した装置の種別を示す識別子であり、グループに属していない探索通信装置(グループ外装置と称す)、グループに属している探索通信装置(グループ内装置と称す)、被探索通信装置の3種類を示す。例えば、グループ外装置=0x10、グループ内装置=0x11、被探索通信装置=0x00などのように各装置の種別を示すコードを定めておけばよい。また、GPS情報(GPS Information)はその探索応答を送信した装置の位置情報である。また、走行情報は、探索応答を送信した装置の移動する方向と速度の情報である。なお、走行情報は時間の異なる2つ以上の位置情報から探索応答を受信した装置が求めるようにしてもよい。
S005の処理では、探索制御部150は受信した探索応答を解析し、探索応答を送信した被探索通信装置200の識別情報、被探索通信装置200の位置情報等を取り出して、取り出した情報を被探索装置情報として記憶する。被探索装置情報は、例えば図7に示すようにテーブル構造とすればよい。なお、ここでは被探索通信装置200の識別情報を被探索通信装置200のMACアドレスとし、位置情報を緯度、経度、高度で表し、走行情報を方向と速度としている。なお、被探索通信装置200からの探索応答を受信してない場合には、被探索装置情報として何も記憶しない。
次に、探索通信装置100の探索処理部150は、他の探索通信装置100からの探索応答を受信したか否かを判断する(S006)。S006の処理で他の探索通信装置100から探索応答を受信してない場合には、実施中の処理を終了して、S011を実施する。
S006で探索通信装置からの探索応答を1つ以上受信した場合、探索処理部150は受信した探索応答をグループ制御部160に渡し、グループ制御部160がグループ化処理をする(S007)。図8はS007のグループ化処理の詳細処理フローの一例を示すフロー図である。
まず、グループ制御部160はグループ化をするか否かを判断する(S020)。判断方法は種々の方法が可能であるが、一例として、ここでは探索応答から取得される位置情報と走行情報を使用し、走行速度と走行方向がほぼ等しく、走行位置があらかじめ定めた基準距離(例えば20メートル)以内に自身を含む複数の探索通信装置100があるか否かを判断し、基準距離以内にある探索通信装置100が所属するグループを構築するものとする。次にグループ制御部160はグループオーナを選択する(S021)。グループオーナはグループを代表する探索通信装置100である。グループオーナを選択する基準は種々考えられるが、ここでは一例として、他の探索通信装置100までの距離の平均が最短である探索通信装置100をグループオーナとして選択することとする。そして次に、グループ制御部160は自身がグループオーナであるか否かを判定する。S020でグループを構築しないと判断した場合、あるいは、S022で自身がグループオーナではないと判断した場合には、グループ化処理を終了する。なお、構築されたグループに属するグループオーナ以外の探索通信装置100をグループメンバと称する。
S022で自身がグループオーナであると判定された場合、グループ制御部160は、構築するグループを識別するためのグループIDを決定する(S023)。グループIDは例えば乱数を発生して決定したり、グループオーナのMACアドレスのハッシュ値を求めたりするなど、種々の方法が考えられる。そしてグループ制御部160は、探索応答から抽出した他の探索通信装置100の識別情報、位置情報等をグループ情報として、例えば図9に示すテーブル構造で記憶する(S024)。なお、ここではテーブルの先頭に登録されたMACアドレスを有する探索通信装置がグループオーナであるものとする。
S007の処理のあと、探索通信装置100のグループ制御部160はMAC処理部140を介して情報共有通知を応答チャネルで送信する(S008)。情報共有通知は管理フレームとして定義されるものであり、この実施の形態における情報共有通知は図10にフォーマットの例を示す情報を含む。なお、この実施の形態ではVendorSpecificInfoフィールドとしてこれらの情報を含むこととする。ただし、被探索装置情報およびグループ情報に他の装置を記憶していない場合には、フィールドを削除したり、あるいは無効な情報であることを示すようにしたりすればよい。また、S007の処理の結果、グループを構築しない場合はS008の情報共有通知の送信を実施しないようにしてもよい。
図10において、Element IDは図10のフォーマットの情報を識別するための識別子である。また、Lengthはこのフィールドのバイト長を示す。また、OUI、OUItypeはIEEEが管理する識別子である。また、被探索装置情報は探索制御部150が記憶する情報であり、グループ情報はグループ制御部160が記憶する情報である。なお、情報共有通知はブロードキャスト送信してもよいし、それぞれの探索通信装置100に個別にユニキャスト送信してもよい。
S008のあとグループ制御部160は、グループ化を行ったか否かを判定し(S009)、グループ化を行っていた場合は、グループオーナとして後述のグループ管理処理を開始する。一方、グループ化を行っていなかった場合には、S011を実施する。
次に、グループに未所属の探索通信装置100が他の探索通信装置100からの探索要求を受信したときの動作を説明する。グループに未所属の探索通信装置100は上述の単独探索の処理を定期的に実施しており、他の探索通信装置100からの探索要求を受信した場合にこの処理を行う。図11は、他の装置からの探索要求を受信した探索通信装置の動作の一例を示すフロー図である。なお、図11および以下の説明に示す元のチャネルとは、探索通信装置100が通常時に信号の送信と受信を行っている無線チャネルである。この実施の形態ではch1からch11のいずれかのチャネルである。
探索通信装置100の探索制御部150は、探索要求(Probe Request)を受信すると受信した探索要求の解析を行う(S101)。具体的には、探索要求から応答オフセット時間、応答チャネルを取得する。次に、探索制御部150は、探索要求を送信した探索通信装置100が送信する情報共有通知を受信する時刻(情報共有通知受信時刻)の見積りを行う(S102)。この見積りは、送信オフセット時間、第1の待受時間、第2の待ち受け時間に基づいて行う。なお、第1の待受時間、第2の待受時間は、すべての探索通信装置100で共通の値を探索制御部150が保持するものとする。
次に、探索通信装置100の探索制御部150は、S101で取得した応答オフセット時間が経過するまで待機する(S103)。そして、探索制御部150は、MAC制御部140に対して、送信、受信を行う周波数チャネルをS101で取得した応答チャネルに変更させる(S104)。次に、探索制御部150は、探索要求を送信した探索通信装置に対して、探索応答を送信する(S105)。ここで送信する探索応答は、前述の通り図6に示したVendorSpecificInfoフィールドを含む。このとき、装置種別はグループ外装置である。そして、探索制御部150はMAC制御部140に使用する無線チャネルを元のチャネルに変更させる(S106)。
次に探索制御部150は、探索応答の送信に成功したか否かを判定する(S107)。ここで、成功したか否かの判定は、IEEE802.11のMAC層の制御フレームであるACK(Acknowledge)フレームを探索応答の送信先の探索通信装置100から受信したか否かを確認することで可能である。探索応答の送信が失敗した場合、探索制御部150は探索要求受信時の処理を終了する。なお、探索応答の送信に失敗した場合に、定められた回数(例えば2回)の再送信を行うようにしてもよい。一方、S107の処理で探索応答の送信に成功した場合、探索制御部150はS102で見積りを行った情報共有通知受信時間まで待機する(S108)。そして、情報共有通知受信時刻になると、探索制御部150は使用する無線チャネルを再び応答チャネルに変更させる(S109)。
S109の次に、探索通信装置100の探索制御部150は情報共有通知を待ち受けする(S110)。情報共有通知を待ち受けする時間の長さは、例えば5ミリ秒など、あらかじめ定めておけばよい。また、情報共有通知を受信した場合には、待ち受けする時間の途中であっても待ち受けを終了するようにしてもよい。
情報共有通知の待ち受けを終了すると次に、探索制御部160は、MAC制御部140に使用する無線チャネルを元のチャネルに変更させる(S111)。そして、探索制御部150は、情報共有通知を受信したか否かを判定する(S112)。ここで情報共有通知を受信していなかった場合には、探索制御部150は探索要求受信時の処理を終了する。S112で情報共有通知を受信していた場合、探索制御部160は情報共有通知の処理を実施する(S113)。
S113の処理で探索制御部150は、情報共有通知内に有効な被探索装置情報がある場合、この被探索装置情報を抽出して記憶することで被探索通信装置を検出する。そして、情報共有通知をグループ制御部160に渡す。S113の処理の後、グループ制御部160はグループ化処理を実施する(S114)。S114の処理では、グループ制御部160は情報共有通知のグループ情報に自装置の情報があるか否かを確認し、自装置がグループ情報に含まれていた場合にグループ化をする。具体的には、情報共有通知に含まれるグループ情報を記憶する。S114の処理によりグループ制御部160は自装置が生成されたグループに所属することを検知する。なお、この実施の形態ではMACアドレスによって自装置が情報共有通知のグループ情報に含まれるか確認することが可能である。一方、情報共有通知に自装置の情報が含まれない場合には、グループ制御部160はグループ化を行わない。また、情報共有通知に有効なグループ情報が存在しない場合も同様にグループ化を行わない。
S114の次に、グループ制御部160はS114でグループ化を行ったか否かを判定する(S115)。S114でグループ化を行っていなかった場合には、グループ制御部150は探索要求受信時の処理を終了する。一方、S114でグループ化を行っていた場合には、グループ制御部150はS116を実施する。S116ではグループ制御部160は、探索制御部150が実施しているグループ構築のための探索処理を終了させる。
探索要求を受信した探索通信装置100の処理は以上要であるが、探索要求を受信した被探索通信装置の処理は図11に示したフローのうちのS101からS106までと同様である。ただだし、送信される探索応答の装置種別は被探索通信装置である。また、探索通信装置の場合と同様に、探索応答の送信に失敗した場合には、再送信するようにしてもよい。
なお、ここで説明した例では、グループ構築を行う探索通信装置は、自装置がグループオーナになる場合のみグループ構築を行ったが、自装置がグループオーナであるか否かに関わらずグループ構築を行い、グループ情報を通知する際にグループオーナになる探索通信装置を指定するようにして、指定された探索通信装置がグループオーナになるようにしてもよい。
次に、グループ構築の装置間の処理の流れを説明する。図12には本実施の形態の探索通信装置100と被探索通信装置200を含むネットワーク構成の一例を示すブロック図である。図12は探索通信装置100a、100b、100cと被探索通信装置200a、200bを示している。図12において、探索通信装置100a、100b、100cは、それぞれch1からch11までの無線チャネルの任意のいずれかを用いることにより、被探索通信装置200a、200bと通信可能である。また、探索通信装置100a、100b、100cは相互に通信することが可能である。
図6に示す探索通信装置100a、100b、100cと被探索通信装置200a、200bが存在する場合のグループ構成の処理を説明する。図13は図6に示した探索通信装置100が行うグループ構築動作時の装置間シーケンスの一例を示すシーケンス図である。なお、探索通信装置100a、100b、100cはいずれのグループにも属していないものとし、ここでは探索通信装置100aが探索要求を送信してグループ化を行う場合の例を説明する。探索通信装置100aが通常の通信で使用する無線チャネルをch11とし、探索要求で指定する応答チャネルをch11とする。また、探索通信装置100b、100c、被探索通信装置200a、200bが通常の通信で使用する無線チャネルをそれぞれch1、ch6、ch10、ch11とする。図13ではProbe Request、Probe Response、情報共有通知とともにそれぞれが送信される無線チャネルを示している。
まず、探索通信装置100aがch1からch11に順にProbe Request(探索要求)を送信する(時刻1)。探索通信装置100aはProbe Requestの送信後、応答チャネルであるch11でProbe Response(探索応答)の待ち受けを開始する(時刻2)。探索通信装置100b、100c、被探索通信装置100a、100bはそれぞれしが使用しているch1、ch6、ch10、ch11で送信されたProbe Requestを受信する。Probe Requestを受信した探索通信装置100bは、指定された応答オフセット時間の待機後に、応答チャネルであるch11でProbe Responseを探索通信装置100aあてに送信する(時刻3)。同様に探索通信装置100c、被探索通信装置200a、200bもch11でProbe Responseを探索通信装置100aあてに送信する。
探索通信装置100aは、Probe Requestの送信後、最初のProbe Requestの送信から応答オフセット時間とMinChannelTimeの和である第1の待受時間までProbe Requestを待ち受けする(時刻4)。図13の例では時刻4までにProbe Responseを受信しているのでさらに応答オフセット時間の経過後の時刻からMaxChannelTimeの時間が経過する時刻まで第2の待ち受け時間の間Probe Responseの待ち受けをする(時刻5)。探索通信装置100aは時刻5までに受信したProbe Responseを処理する。ここで、探索通信装置100aは探索通信装置100aがグループオーナとなるグループ化を行ったものとする。そして、探索通信装置100aは被探索通信装置200a、200bに関する被探索装置情報と、探索通信装置100a、100bに関するグループ情報を含む共有情報通知を応答チャネルであるch11で送信する。一方、探索通信装置100b、100cは時刻5以降にch11で送信される情報共通通知の待ち受けをしており、探索通信装置100b、100cは探索通信装置100aが送信した情報共通通知を受信する。探索通信装置100b、100cは情報共通通知の待ち受け時間が過ぎると受信した情報共通通知を処理する(時刻6)。
次に、グループオーナである探索通信装置100が行うグループ管理に関わる処理を説明する。図13は、本実施の形態におけるグループオーナである探索通信装置100が行うグループ管理に関わる処理の処理フローの一例を示すフロー図である。図14のフロー図において、S201の処理は図4に示したフロー図のS001の処理と同様である。ただし、グループIDには当該探索通信装置100がグループオーナとなっているグループのグループIDが設定される。また、S202からS204までの処理は図4のフロー図のS002からS004までと同様である。なお、S203において探索応答を受信していなかった場合には、探索制御部150は記憶している被探索装置情報を消去し(S211)、次に、グループ制御部160がグループ情報を消去して(S212)、グループ管理の処理を終了する。
次に、探索制御部150は被探索通信装置200から受信した探索応答を処理して被探索通信装置情報の更新を行う(S205)。具体的には、図7に示したテーブルについて、新たに探索応答を受信した被探索通信装置200をこのテーブルに追加し、反対に探索応答を受信しなかった被探索通信装置200はテーブルから削除する。また、テーブルに登録済みの被探索通信装置200からの探索応答の情報でこのテーブルを上書きする。
次に、探索制御部150は探索通信装置100からの探索応答を受信しているか否かを判定する(S206)。受信してなかった場合、探索制御部150は探索通信装置100からの探索応答の未受信をグループ制御部160に通知し、グループ制御部160は前述のS212を実施する。一方、他の探索通信装置100からの探索応答を受信していた場合には、探索制御部150は受信した探索通信装置100からの探索応答をグループ制御部160に渡し、グループ制御部150がグループ情報の更新を行う(S207)。
図15はS207のグループ情報更新の処理を詳細フローの一例である。グループ制御部160は、受信した探索応答に対応する探索装置100のグループ情報への追加または更新を行う(S220)。S220の処理は、一例として、図15に示すS221からS224の処理を含む。まず、受信したグループ制御部160は受信した探索応答がグループ情報に未登録の探索通信装置100からの探索応答であるか否かを判定する(S221)。なお、未登録か否かはグループ情報のMACアドレスで確認することも可能であるし、探索応答に含まれる装置種別がグループ外装置であるか、グループ内装置であるかによっても可能である。
S221で未登録の探索通信装置100からの探索応答であった場合には、グループ制御部160は当該探索通信装置100をグループに加えるか否かを判定する(S222)。なお、この判定はS020におけるグループ化を実施するか否かと同様の判定基準で行えばよい。また、別の基準を設けてもよい。そして、S222でグループ追加を判定した場合には、受信した探索応答に基づいたグループ情報への追加処理を行う。具体的には図9に示したテーブルに登録する(S223)。
また、S221で受信した探索応答がグループ情報にすでに含まれる探索通信装置100から送信されたものと判定された場合には、グループ制御部160は当該探索通信装置100をグループに残留させるか否かの判定をする(S224)。S224の判定はS222と同様の基準で判定すればよい。S224でグループに残留させると判定した場合には、グループ制御部160は受信した探索応答内容でグループ情報を更新する(S225)。
なお、受信した探索応答が複数ある場合には、S220の処理をぞれぞれの探索応答に応じて複数回実施すればよい。そして、受信した探索応答に対してS220の処理を行ったあと、グループ情報に登録された探索通信装置100の情報のうちS220の処理で未更新の情報の消去を行う(S226)。なお、未更新の情報の消去は、複数回のS207の処理で連続して未更新であった場合に行われるようにしてもよい。
S207の処理の後、グループ制御部160は、S009と同様に情報共有通知を送信する(S208)。なお、S208の情報共有通知の送信では、S207のグループ情報の更新でグループ情報から情報が消去された探索通信装置100に対しても送信する。次に、グループ制御部160はグループ情報に探索通信装置100の情報が登録されているか否かを判定する。グループ情報に探索通信装置100の情報が1つでも登録されている場合には所定の待機時間(例えば50ミリ秒)の待機(S210)をした後、再びS201が行われる。一方、S209の処理でグループ情報に探索通信装置100の情報が存在しなかった場合には、グループ管理処理を終了する。上述のように、グループ管理処理を終了した以降は、探索制御部150は上述のグループ構築処理を再び開始する。
次にグループメンバとなっている探索通信装置100が行うグループ管理の処理を説明する。図16は、グループメンバとなった探索通信装置100が行うグループ管理処理のフローの一例を示すフロー図である。グループメンバの探索通信装置100は、探索要求の送信を行わず、他の探索通信装置100が送信する探索要求(Probe Request)を受信して処理を行う。まず、探索通信装置100の探索制御部150は他の探索通信装置100が送信する探索要求を待ち受けし(S301)、探索要求を受信したか否かの判定を行う(S302)。探索要求を受信していた場合、探索制御部150は受信した探索要求を解析し、図5に示した情報要素を取得する(S303)。S303で取得したグループIDを確認し、探索制御部150は受信した探索要求が自装置の所属するグループの探索要求でるかどうかを判定する(S304)。S304で自装置所属するグループの探索要求であった場合、図11に示したフローのS102からS112までと同様の処理であるS305からS316までの処理を行う。
S316の次に、探索制御部150から情報共有通知を受け取ったグループ制御部160はグループ残留処理を行う(S316)。S316の処理では、グループ制御部160は、情報共有通知のグループ情報に自装置が含まれているか否かを確認し、含まれていればグループに残留することを判断して、受信した情報共有通知の情報で記憶しているグループ情報を更新する。また、自装置が情報共有通知のグループ情報に自装置が含まれていない場合には、グループからの離脱を判断して、記憶しているグループ情報の更新を行わない。そしてS317のあと、グループ制御部160はグループ残留であったか否かを判定し(S318)、グループ残留であった場合には再びS301に戻る。一方、S318でグループ残留でなかった場合、グループ離脱処理となり、グループ制御部160は記憶しているグループ情報を消去する(S320)。ここで、探索制御部150に通知して被探索施制御情報を消去するようにしてもよい。なお、グループ離脱の場合には、探索制御部150およびグループ制御部160はグループ管理処理を終了する。そして、被探索通信装置100は再びグループ構築処理を開始する。
また、S302の処理で探索要求を受信していなかった場合には、探索制御部150は探索要求を受信しない時間があらかじめ定められた規定値(例えば100ミリ秒)以上であるかどうかを判定する(S319)。S319で規定値以上でない場合、S301に戻り、探索制御部150は探索要求の待ち受けを継続する。一方、S319で規定値以上であった場合には、上述のS320を実行してグループを離脱する。また、上述のS310で探索応答の送信に失敗した場合、S315で情報共有通知を受信しなかった場合にもS319を実施する。また、S304で受信した探索要求が所属するグループのものではなかった場合、探索制御部150はS301に戻り、探索要求の待ち受けを継続する。
以上のように、この発明の実施の形態1に係る探索通信装置は、探索要求を送信する複数の探索通信装置と探索応答を送信する複数の被探索通信装置を有し、探索通信装置が、探索要求を送信し当該探索要求に対する応答の探索応答を被探索通信装置から受信して、被探索通信装置を検出する無線通信システムで用いられる探索通信装置であって、探索要求を送信し、当該探索要求に対する応答である被探索通信装置からの探索応答を当該探索応答に含まれる装置種別で識別し、当該識別した探索応答に基づいて被探索通信装置を検出し、自装置がグループに属していない場合、他の探索通信装置からの探索要求を受信すると装置種別が探索通信装置を示す探索応答を送信し、探索応答の送信先の他の探索通信装置から送信される情報共有通知に含まれる当該他の探索通信装置で検出された被探索通信装置の情報である被探索装置情報に基づいて被探索通信装置を検出する探索制御部と、自装置がグループに属しておらず自装置から探索要求が送信された場合、当該探索要求に対する応答であり装置種別が探索通信装置である1つ以上の探索応答に基づいて当該1つ以上の探索応答の送信元の探索通信装置の少なくとも1つと自装置を含むグループを構築し、探索制御部で検出された被探索通信装置に関する被探索装置情報と構築したグループに属する探索通信装置の情報であるグループ情報とを含む情報共有通知を構築したグループに属する探索通信装置に送信し、自装置が探索応答を送信した場合、当該探索応答の送信先の探索通信装置から送信された情報共有通知に含まれるグループ情報に基づいて自装置がグループに属したことを検知するグループ制御部と、を備えるようにした。
また、この発明の実施の形態1に係る被探索通信装置は、探索通信装置から探索要求を受信した場合に、送信元が被探索通信装置であることを示す識別子を含む探索応答を探索要求の送信元の被探索通信装置に送信する探索制御部を備えるようにした。
これにより、探索要求を送信して通信相手の探索を実施する複数の探索通信装置と、探索対象であり探索応答を送信する複数の被探索通信装置とを含む通信システムにおいて、複数の探索通信装置で構成されるグループを構築して、当該グループを構築した探索通信装置が検出した被探索通信装置の情報をグループ内の他の探索通信装置に情報共有通知を用いて通知することで、通信システム内の被探索通信装置の探索に関わる通信量を削減することができ、探索要求および探索応答の無線上での衝突などに起因して探索通信装置が実施する被探索通信装置の探索が失敗する可能性を低減することができる。
なお、この実施の形態では同じ情報共有通知に被探索装置情報とグループ情報を含むようにしたが、被探索装置情報を含む第1の情報共有通知とグループ情報を含む第2の情報共有通知の2種類の情報共有通知を定めて用いるようにしてもよい。
この実施の形態では、探索要求(Probe Request)を受信した探索通信装置の探索制御部が当該探索要求に対応した情報共有通知の受信時刻を見積もるようにしたが、探索要求に情報共有通知の送信予定時刻を含むようにして、探索要求から情報共有通知の受信時刻が取得されるようにしてもよい。これにより、探索要求を受信した探索通信装置の探索制御部はより正確な情報共有通知の受信時刻を得ることが可能になる。
また、ある探索通信装置が送信した探索要求を受信した探索通信装置において、図11に示したS107、S112、S114の処理の結果、グループ化が行われなかった場合、一定時間を経過するまで同じ探索通信装置が送信した探索要求を受信してもこれを破棄して以降の処理を実施しないようにしてもよい。これにより、グループ化されない探索通信装置の通信を削減することができる
また、図16において、グループメンバであった探索通信装置がS319の処理を行って所属していたグループを離脱した場合、一定時間を経過するまで以前に所属していたグループのグループオーナの探索通信装置が送信する探索要求を受信してもこれを破棄していこの処理をしないようにしてもよい。これにより、グループに加入しない探索通信装置と当該グループのグループオーナの探索通信装置の間の通信を削減することができる。
また、図16において、S310で送信される探索応答の例えば送信者種別判定情報に、グループから離脱する意思を示す情報を設定できるようにしてもよい。このとき、S310でグループ離脱の意思を示した探索通信装置では、S310の処理の後S319の処理に移行する。なお、グループ離脱の意思を示す探索応答を受信したグループオーナの探索通信装置では、S316の処理でグループに残留しないグループメンバとして処理する。
また、図5に示したフォーマットでは、探索要求に含まれる応答オフセット時間は1つであるが、例えば探索通信装置用と被探索通信装置用など複数の応答オフセット時間を設定できるようにしてもよい。このようにした場合、探索通信装置と非被探索通信装置の探索応答の送信タイミングを分けることができ、無線チャネル上で衝突する可能性を低減することができる。
また、図9おいて、グループメンバの探索通信装置はグループオーナの探索通信装置100が送信する探索要求を受信した場合に探索応答を送信するが、グループ管理処理を実行する周期に合わせて、グループメンバの探索通信装置が自発的に探索応答を送信して以降の処理を実施するようにしてもよい。これにより、グループオーナの探索通信装置からの探索要求の受信に失敗した場合でも、グループに係属して所属することが可能になる。
また、図9において、グループメンバの探索通信装置は過去に送信した規定の回数の探索応答の位置情報と現在の位置情報に変化がないか、変化が規定のしきい値以下である場合には、探索通信装置からの探索応答の送信が省略されるようにしてもよい。これにより、無線に送信される探索応答の数を削減することができる。
また、この実施の形態では、探索通信装置がグループ構築もしくはグループ管理の処理で送信する探索要求は、1回の探索要求の送信機会(すなわち1回のS001またはS201)において無線チャネル1個につき探索要求1個1であるが、無線チャネル1個につき複数個の探索要求を送信するようにしてもよい。これにより、探索要求が正常に受信される確率を向上することができる。なお、探索通信装置が1個の無線チャネルに複数個の探索要求を送信する場合には、応答オフセット時間、第1の待受時間、第2の待受時間を探索要求の送信に対応して変更しても良い。なお、探索要求を受信した探索通信装置においては、1個の探索要求(例えば最初に受信した探索要求)に対してのみ処理を行うようにすればよい。
また、グループメンバである探索通信装置が複数のグループに所属できるようにしてもよい。この場合、図9のS304で所属グループでない探索要求を受信した場合には、図11に示した探索要求を受信した場合の処理を探索通信装置が行うようにすればよい。
また、図9のS310の処理で探索応答の送信に失敗した場合にS319のグループからの離脱処理に遷移せず、S311以降の情報共有通知の受信処理を実施するようにしてもよい。
実施の形態2.
実施の形態1ではグループ構築を行う探索通信装置について説明した。実施の形態2では、グループオーナとの通信が途絶した場合のグループ再構築の機能を有するに探索通信装置について説明する。例えばグループオーナの探索通信装置が故障した場合など、グループオーナとグループメンバ間の通信が継続できなくなり、グループの再構築が必要になる場合がある。このような場合、グループメンバであった探索通信装置が実施の形態1に示した動作を再度実施すると、グループの再構築が行われるまでグループメンバであった探索通信装置が探索処理を行うことになって、一時的に通信トラヒックが増加してしまうことが考えられる。これに対し、グループメンバが共通に保持しているグループ情報を活用してグループを再構築することができれば、一時的な通信トラヒックの増加を防止することが可能である。
この実施の形態の探索通信装置100の構成は、図1に示した実施の形態1の探索通信装置100の構成と同様である。
次に、動作を説明する。なお、実施の形態2の探索通信装置100が行うグループに所属する前のグループ構築の動作は実施の形態1と同様である。ここでは、実施の形態2の探索通信装置100の特徴であるグループ再構築の動作を中心に説明する。図17はグループメンバである探索通信装置100が行うグループオーナの探索通信装置100との通信が途絶した時の処理フローの一例を示すフロー図である。なお、グループオーナの探索通信装置100との通信の途絶は、Probe Requestの未受信、Probe Responseの応答失敗、情報共有通知の未受信などで判断することができる。
グループオーナの探索通信装置100との通信が途絶したグループメンバの探索通信装置100のグループ制御部160は、記憶しているグループ情報を参照して新しいグループオーナを決定する(S401)。なお、同じグループのグループメンバであった探索通信装置100のグループ制御部160は同じ内容のグループ情報を記憶しているので、このグループ情報を参照してそれぞれが独立して一意に新しいグループオーナを決定することが可能である。この方法の例として、例えば元のグループオーナに最も走行位置が近いグループメンバを選択したり、あるいはグループ情報のリストの最上位にあるグループメンバを選択したりすることが考えられる。
S401の処理で自装置がグループオーナであった場合にはグループオーナのグループ管理処理を開始し、グループメンバであった場合にはグループメンバのグループ管理処理を開始する。グループオーナの探索通信装置100が行うグループ管理処理は、図14に例を説明した上述のグループオーナが行うグループ管理処理と同様である。また、グループメンバの管理処理は図16を例に説明したグループメンバが行うグループ管理処理と同様である。
なお、ここではすべてのグループメンバの探索通信装置100がグループオーナの探索通信装置100と通信できなくなった場合について説明したが、必ずしもすべてのグループメンバの探索通信装置100が通信できなくなった場合に限られるものではない。一部のグループメンバの探索通信装置100がグループオーナの探索通信装置100と通信できなくなった場合であっても、S401での新グループオーナに決定の条件に合致するグループメンバの探索通信装置100を含む2つ以上のグループメンバの探索通信装置100がグループオーナの探索通信装置100と通信できなくなった場合も、上述の実施の形態2と同様の動作をすることができる。