以下、本発明を実施するための形態に係る無線通信装置を、図面を参照して説明する。なお、図中同一又は相当する部分は同一符号を付す。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係る無線通信システムの構成を示す図である。図1の構成例において、無線通信システム1は、無線通信装置であるマスター端末100と、無線通信装置であるスレーブ端末200とから構成される。マスター端末100と複数のスレーブ端末200a〜200cとは、Bluetooth(登録商標)と呼ばれる近距離無線通信規格に基づいて、互いに無線通信を行う。
マスター端末100は、デスクトップ型又はノート型のパーソナルコンピュータなどである。一方、スレーブ端末200a〜200cは、スマートフォン、タブレット型パーソナルコンピュータなどである。なお、各スレーブ端末200a〜200cを特段区別する必要がない場合は、まとめてスレーブ端末200と称して以下説明する。
マスター端末100がスレーブ端末200と互いに無線通信を行うためには、スレーブ端末200を接続対象として認識し、接続対象として認識したスレーブ端末200との間で接続(ペアリング)を確立する必要がある。マスター端末100は、同期信号の音波が到達する時差を利用し、離れた位置にあるスレーブ端末200は接続対象から除外し、近隣にあるスレーブ端末200のみを接続対象として認識することができる。
マスター端末100は、ランダムな時間間隔で同期信号である音波をスレーブ端末200に送信(発信)する。同期信号は、スレーブ端末200に応答信号を送信するタイミングを伝達するために送信される信号である。つぎに、スレーブ端末200は、同期信号である音波を受信(取得)すると即座に応答信号を無線通信によりマスター端末100に送信する。マスター端末100は、同期信号を送信してから次の同期信号を送信するまでスレーブ端末200から送信された応答信号を受信する。マスター端末100は、同期信号を送信する時間間隔が短くても、距離Rより近い場所にあるスレーブ端末200a及び200cからの応答信号を漏れなく受信できる。一方、距離Rより離れた場所にあるスレーブ端末200bに音波が到達するまでに時間がかかるため、マスター端末100は、同期信号を送信する時間間隔が短いと、遠くにあるスレーブ端末200bからの応答信号を受信できない。
マスター端末100は、スレーブ端末200毎に応答信号を受信すると、スレーブ端末200毎に同期信号を送信した時間間隔と、応答信号を受信した時間間隔と、が一致するか判定する。マスター端末100は、距離Rより近い場所にあるスレーブ端末200a及び200cからの応答信号は漏れなく受信しているため、スレーブ端末200a及び200cからの応答信号の時間間隔と同期信号の時間間隔は一致する。一方、マスター端末100は、距離Rより離れた位置にあるスレーブ端末200bからの応答信号の受信に漏れがあるため、スレーブ端末200bからの応答信号の時間間隔と同期信号の時間間隔は一致しない。マスター端末100は、同期信号の時間間隔と応答信号の時間間隔とが一致しないスレーブ端末200bを接続対象から除外し、一致する近隣のスレーブ端末200a及び200cを接続対象として認識する。また、スレーブ端末200bがマスター端末から距離R以内の近隣に近づき同期信号の時間間隔と応答信号の時間間隔とが一致するようになった場合は、マスター端末100は、スレーブ端末200bを接続対象として認識する。また、スレーブ端末200a又は/及び200cがマスター端末100から距離Rより離れ同期信号の時間間隔と応答信号の時間間隔とが一致しないようになった場合は、マスター端末100は、距離Rより離れたスレーブ端末200a又は/及び200cを接続対象から除外する。この結果、マスター端末100は、距離Rより近い距離のスレーブ端末200のみを接続対象として認識する。また、マスター端末100は、同期信号をランダムな時間間隔で送信しているため、同期信号を受信できない場所にあるスレーブ端末が同期信号を受信せずに応答信号を送信した場合、同期信号の時間間隔と応答信号の時間間隔は一致しないため、このスレーブ端末は接続対象から除外される。以下では、この実施の形態に係るマスター端末100の構成について説明する。
マスター端末100は、図2に示すように、制御部110と、無線通信部120と、アンテナ121、スピーカ130と、ROM(Read Only Memory)140と、RAM(Random Access Memory)150と、表示部160と、操作部170と、タイマ180とを備える。
制御部110は、CPU(Central Processing Unit)等によって構成される。制御部110は、ROM140に記憶されたプログラム(例えば、後述する同期信号を送信する処理や応答信号の受信処理などを実現するためのプログラム)に従ってソフトウエア処理を実行することにより、マスター端末100が具備する機能を実現する。制御部110は、このような構成により、同期信号発信部111と、乱数発生部112、応答信号取得部113と、時間間隔判定部114と、接続対象更新部115と、して機能する。
同期信号発信部111は、音波である同期信号をスピーカ130からスレーブ端末200に送信し、タイマ180が0.001秒単位で測定した同期信号の送信時間をRAM150の同期信号の送信時間リストに格納する。乱数発生部112は、ランダムな値を発生し、発生した値に基づいてスレーブ端末200からの応答信号を受信する応答待ち時間Wを決定する。応答待ち時間Wの範囲は、Wmin≦W≦Wmaxである。Wminの値は、特に限定されないが、マスター端末100からユーザが接続したい距離の範囲にあるスレーブ端末200に音波が到達する時間に基づいて決定される。例えば、音波の速度を340(m/s)、マスター端末100からユーザが接続したい範囲にあるスレーブ端末200までの距離をR(m)、スレーブ端末200が同期信号を受信してから応答信号を送信するまでの時間をD(s)とすると、Wmin=R/340+D(s)である。例えば、R=10(m)、D=0.02(s)とすると、Wmin=0.05(s)である。Wmaxの値は、特に限定されないが、例えば、Wmax=50×Wminとすることができる。
応答信号取得部113は、アンテナ121を介して無線通信部120が受信した応答信号を取得する。取得した応答信号を何れのスレーブ端末200から送信されたか応答信号に含まれる端末IDに基づいて識別する。何れのスレーブ端末200から送信された応答信号であるか識別する端末IDの情報と、タイマ180が0.001秒単位で測定した応答信号の受信時間とをRAM150の応答信号の受信リストに格納する。
時間間隔判定部114は、スレーブ端末200毎に同期信号を送信した時間間隔と応答信号を受信した時間間隔を比較し、誤差範囲内であれば一致すると判定する。誤差範囲は、特に限定されないが、マスター端末100等の性能やWminの値などによって定められ、例えば、0.03(s)とすることができる。
接続対象更新部115は、時間間隔判定部114が同期信号の送信時間の時間間隔と応答信号の受信時間の時間間隔とが一致すると判定した場合、同期信号と応答信号の時間間隔が一致するスレーブ端末200を接続対象として認識する。接続対象更新部115は、ユーザの操作を受け付けることにより、接続対象として認識したスレーブ端末200と無線通信の接続を確立するか、または、自動的に接続対象として認識したスレーブ端末200と無線通信の接続を確立する。同期信号の時間間隔と応答信号の時間間隔とが一致しないと判定した場合、同期信号と応答信号の時間間隔が一致しないスレーブ端末200を接続対象から除外する。
無線通信部120は、例えば、無線周波数(RF:Radio Frequency)回路やベースバンド(BB:Base Band)回路等から構成される。無線通信部120は、アンテナ121を介して、Bluetoothに基づく無線信号の送信及び受信を行う。
スピーカ130は、同期信号を音波により送信する。スピーカ130から送信される音波は、特に限定されず、例えば超音波である。
ROM140は、フラッシュメモリ等の不揮発性メモリから構成され、上述したように制御部110が各種機能を実現するためのプログラムやデータを記憶する。RAM150は、揮発性メモリから構成され、制御部110が各種処理を行うためのプログラムを記憶するための作業領域として用いられる。
表示部160は、液晶ディスプレイ等から構成され、制御部110から伝達された情報を表示する。操作部170は、タッチパネル、キーボード、ボタン、ポインティングデバイス等の、ユーザの操作を受け付ける操作受け付け装置と、操作受け付け装置が受け付けた操作の情報を制御部110に伝達する伝達部と、から構成され、ユーザの操作内容をマスター端末100に入力するために用いられる。
タイマ180は、実際の時間を1000分の1秒の精度で計測可能なタイマであり、同期信号の送信時間や応答信号の受信時間を計測する。
図3に示すスレーブ端末200は、制御部210と、無線通信部220と、アンテナ221、マイク230と、ROM240と、RAM250と、表示部260と、操作部270と、を備える。
制御部210は、CPUによって構成される。制御部210は、ROM240に記憶されたプログラム(例えば、後述する同期信号を受信する処理を実現するためのプログラム)に従ってソフトウエア処理を実行することにより、スレーブ端末200が具備する各機能を実現する。制御部210は、このような構成により、同期信号取得部211と、同期信号判定部212と、応答信号発信部213、として機能する。
同期信号取得部211は、マイク230を介して入力された音波を取得する。
同期信号判定部212は、同期信号取得部211が受信した音波にマスター端末100から送信された同期信号が含まれているか判定する。
応答信号発信部213は、同期信号判定部212が同期信号を含んでいると判定した場合、即座に応答信号を無線通信部220からアンテナ221を介して、無線通信によりマスター端末100に送信する。
無線通信部220は、無線周波数回路やベースバンド回路等を用いて構成される。無線通信部220は、アンテナ221を介して、Bluetoothに基づく無線信号の送信及び受信を行う。
マイク230は、マスター端末100のスピーカ130から音波で送信される同期信号を受信し、電気信号に変換する。
ROM240は、フラッシュメモリ等の不揮発性メモリから構成され、制御部210が各種機能を実現するためのプログラム、データや自端末の端末IDを記憶する。RAM250は、揮発性メモリから構成され、制御部210が各種処理を行うためのデータを記憶するための作業領域として用いられる。
ここで、マスター端末100がスレーブ端末200を接続対象として認識する前提となる処理である接続対象検出処理1を、図4に示すフローチャートを参照しながら説明する。
マスター端末100は、起動と同時に又はユーザの操作に応じて接続対象検出処理1を開始する。同期信号発信部111は、スピーカ130からスレーブ端末200に同期信号である音波を送信し、同期信号を送信した時間を図6に示す同期信号の送信時間リストに格納する(ステップS101)。マスター端末100は、乱数発生部112が発生したランダムな値に基づいて応答待ち時間Wを決定する(ステップS102)。マスター端末100は、応答待ち時間Wを図7に示す応答待ち時間Wリストに格納する(ステップS103)。
つぎに、同期信号の送信時間リストに格納された最新の送信時間から応答待ち時間Wリストに格納された最新の応答待ち時間Wが経過しているか判定する(ステップS104)。具体的には、例えば、図6に示す最新の同期信号の送信時間である12:30:25.0427から図7に示す最新の応答待ち時間である0.0210が経過していないか判定する。応答待ち時間を経過していないと判定した場合(ステップS104;No)、マスター端末100は、以下の処理を行う。
応答信号取得部113は、応答待ち時間Wの間、スレーブ端末200から無線通信部120に送信された応答信号を何れのスレーブ端末200から送信されたか識別して受信する(ステップS105)。つぎに応答信号を受信したか判定する(ステップS106)。応答信号を受信しなかった場合(ステップS106;NO)、ステップS104の処理に戻る。応答信号を受信した場合(ステップS106;YES)、何れのスレーブ端末200から送信されたか識別する情報(端末ID)と応答信号の受信時間とを図8に示す応答信号の受信時間リストに格納する(ステップS107)。この後、ステップS104の処理に戻る。このように、応答待ち時間が経過するまでステップS104〜S107の処理をループする。
応答待ち時間を経過していると判定した場合(ステップS104;YES)、マスター端末100が、同期信号をN回以上送信したか判定する(ステップS108)。同期信号をN回以上送信した場合(ステップS108;YES)、マスター端末100は、応答信号を送信したスレーブ端末200を接続対象とするか判定する接続対象更新処理を行う(ステップS109)。同期信号をN回以上送信していない場合(ステップS108;NO)、ステップS101に戻る。このように、同期信号をN回以上送信するまでステップS101〜S107の処理をループする。
つぎに、接続対象更新処理1を、図5に示すフローチャートを参照しながら説明する。まず、すべてのスレーブ端末200について同期信号の時間間隔と応答信号の時間間隔とを比較して一定の誤差範囲内であるか判定済みであるか判定する(ステップS201)。すべてのスレーブ端末200について判定済みでない場合(ステップS201;NO)、マスター端末100は、判定済みでないスレーブ端末200の端末IDをセットする(ステップS202)。判定済みでないスレーブ端末200が複数ある場合は、そのうちの一つを任意に選択して端末IDをセットする。つぎに、マスター端末100は、この端末IDの応答信号の受信時間を抽出する(ステップS203)。マスター端末100は、図9に示すように過去N回分の抽出した端末IDの応答信号の受信時間の時間間隔と、過去N回分の同期信号の時間間隔と、の差の絶対値を求める(ステップS204)。Nの値は、特に限定されないが、N=8とすることができる。マスター端末100は、同期信号の送信時間の時間間隔と応答信号の受信時間の時間間隔との差の絶対値が全て一定の値以下(誤差範囲)であるか判定する(ステップS205)。ここでは、誤差範囲を0.03(s)とする。図9に示す時間間隔の差の絶対値は、全て0.03(s)以下であるので、一定の誤差範囲で一致していると判定される。なお、ステップS205では、同期信号の時間間隔と応答信号の時間間隔との差の絶対値の平均が一定の誤差範囲であるか判定してもよい。
同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致している場合、(ステップS205;YES)、マスター端末100は、送信時間の時間間隔と応答時間の時間間隔が一致しているスレーブ端末200を接続対象として認識する。接続対象として認識したスレーブ端末200の端末IDを接続対象IDリストに格納する。マスター端末100は、このスレーブ端末200の端末IDを表示しユーザの操作を受け付けることにより、又は自動的に、スレーブ端末200と接続を確立する。この後、ステップS201に戻る。
一方、ステップS205に戻って、別の例として図10に示す時間間隔の差の絶対値は、7番目と8番目とが一定の値(誤差範囲)0.03(s)を超えているため、一定の誤差範囲で一致していないと判定される。同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致していない場合、(ステップS205;NO)、誤差範囲に収まっていないスレーブ端末200を接続対象から除外する(ステップS207)。誤差範囲に収まっていないスレーブ端末200がマスター端末100と接続している場合、このスレーブ端末200との接続を遮断する。この後、この端末IDを接続対象IDリストから除外し、ステップS201に戻る。
すべてのスレーブ端末IDについて同期信号の時間間隔と応答信号の時間間隔とが一致しているか判定済みである場合(ステップS201;YES)、接続対象更新処理を終了する。この処理を繰り返すことでマスター端末100は近隣のスレーブ端末200のみを接続対象とする。
つぎに、スレーブ端末200が、マスター端末100との間で接続を確立するために行う同期信号応答処理1を、図11に示すフローチャートを参照しながら説明する。スレーブ端末200は、起動と同時に又はユーザの操作に応じて音波を受信する処理を開始する。まず、同期信号取得部211が、マイク230を介して音波を受信する(ステップS301)。
つぎに、同期信号判定部212は、ステップS301で受信した音波が同期信号であるか判定する(ステップS302)。
音波が同期信号であると判定した場合(ステップS302;YES)、応答信号発信部213は、無線通信部220からマスター端末100に自端末の端末IDを含む応答信号を即座に送信し(ステップS303)、終了する。応答信号は、図12に示すように端末IDの情報と応答信号である旨の情報を含む。音波が同期信号でないと判定した場合(ステップS302;NO)、終了する。マスター端末100が近隣にある場合、この処理を繰り返すことでスレーブ端末200は、接続を確立できる。
つぎに、本実施の形態のマスター端末100が実施する処理を、具体例に基づいて図13のシーケンス図を参照しながら説明する。マスター端末100と、スレーブ端末200a及び200bと、の無線通信のシーケンスを図13に示す。本実施の形態では、マスター端末100は、近い距離にあるスレーブ端末200のみを接続対象として認識し、遠い距離にあるスレーブ端末200を接続対象から除外することができる。
マスター端末100からスレーブ端末200aまでの距離は、マスター端末100からスレーブ端末200bまでの距離より短い。また、この図13の例では前提としてマスター端末100は、過去3回分のスレーブ端末200からの応答信号の時間間隔と同期信号の時間間隔とを比較し誤差範囲で一致していると判定すると、一致するスレーブ端末200を接続対象と認識する。
同期信号1乃至4は、マスター端末100から送信される同期信号の音波である。同期信号1乃至4を特段区別する必要がない場合は、まとめて同期信号と称して以下説明する。応答信号a1乃至a3、b1乃至b3は、スレーブ端末200a、200bからマスター端末100に送信される応答信号である。応答信号a1乃至a3、b1乃至b3を特段区別する必要がない場合は、まとめて応答信号と称して以下説明する。
マスター端末100は、同期信号1を音波でスレーブ端末200aと200bとに送信し、同期信号の送信時間を同期信号の送信時間リストに格納する(図4;ステップS101)。同期信号1乃至4を示す矢印が斜めになっているのは、同期信号が音波で送信されていることにより、離れた距離には遅れて到達するからである。近くにあるスレーブ端末200aが先に同期信号を受信し、遠くにあるスレーブ端末200bはスレーブ端末200aより遅く同期信号を受信する(図11;ステップS301)。
同期信号1を受信したスレーブ端末200aは、応答信号a1をマスター端末100に送信する(図11;ステップS303)。同様に、同期信号1を受信したスレーブ端末200bは、応答信号b1をマスター端末100に送信する(図11;ステップS303)。
応答信号a1及び応答信号b1は、応答待ち時間W1内にマスター端末100に到達したため、マスター端末100は応答信号a1及び応答信号b1を受信する(図4;ステップS105)。マスター端末100は、受信した応答信号a1の受信時間及びスレーブ端末200aの端末IDと、応答信号b1の受信時間及びスレーブ端末200bの端末IDと、を応答信号の受信時間リストに格納する(図4;ステップS107)。
次に、応答待ち時間Wの値を小さくした場合について説明する。応答待ち時間W2は応答待ち時間W1より短い時間である。マスター端末100が、同期信号2を音波でスレーブ端末200aと200bとに送信する(図4;ステップS101)。遠くにあるスレーブ端末200bは、スレーブ端末200aより後に同期信号を受信する。
同期信号2を受信したスレーブ端末200aは、応答信号a2をマスター端末100に送信する(図11;ステップS303)。同期信号2を受信したスレーブ端末200bは、応答信号b2をマスター端末100に送信する(図11;ステップS303)。
応答信号a2は、応答待ち時間W2内にマスター端末100に到達するため、マスター端末100は応答信号a2を受信する(図4;ステップS105)。一方、応答信号b2は応答信号a2より遅れて送信されるため、応答信号b2は応答待ち時間W2内にマスター端末100に到達せず、マスター端末100は、応答信号b2を受信しない。マスター端末100は、受信した応答信号a2の受信時間とスレーブ端末200aの端末IDのみを応答信号リストに格納する(図4;ステップS107)。
つぎに、マスター端末100は、同期信号3をスレーブ端末200aと200bとに送信する(図11;ステップS303)。同期信号3の応答待ち時間Wは、同期信号1と同様に短くないため、マスター端末100は、スレーブ端末200aと200bとから応答信号a3とb3とを受信する(図4;ステップS105)。マスター端末100は、受信した応答信号a3の受信時間及びスレーブ端末200aの端末IDと、応答信号b3の受信時間及びスレーブ端末200bの端末IDと、を応答信号の受信時間リストに格納する(図4;ステップS107)。以後、上述のようにマスター端末100は、同期信号をランダムな時間間隔で送信し、応答待ち時間Wにスレーブ端末200からの応答信号を受信する。つぎに、マスター端末100が応答信号3を送信した後実行する接続対象更新処理について説明する。
マスター端末100は、同期信号の時間間隔とスレーブ端末200aからの過去3回分の応答信号の時間間隔との差の絶対値を求め(図5;ステップS204)、一定の誤差範囲であるか判定する(図5;ステップS205)。マスター端末100から送信された過去3回の同期信号は、同期信号1、2および3である。応答待ち時間Wごとに同期信号を送信しているため、同期信号1と同期信号2との時間間隔はW1、同期信号2と同期信号3の時間間隔はW2となる。スレーブ端末200aの応答信号の受信時間リストに格納された過去3回の応答信号は、応答信号a1、a2、a3である。過去3回分の応答信号の時間間隔は、応答信号a1とa2との時間間隔と、応答信号a2とa3との時間間隔とである。スレーブ端末は同期信号を受信すると即座に応答信号を送信しているため、応答信号a1とa2との時間間隔はW1と、応答信号a2とa3との時間間隔はW2と誤差範囲で一致する。
同様に、マスター端末100は、同期信号の時間間隔とスレーブ端末200bからの応答信号の時間間隔との差の絶対値を求め(図5;ステップS204)、一定の誤差範囲であるか判定する(図5;ステップS205)。マスター端末100は応答待ち時間Wごとに同期信号を送信しているため、同期信号1と同期信号2との送信時間の時間間隔はW1、同期信号2と同期信号3の時間間隔はW2となる。スレーブ端末200aの応答信号の受信時間リストに格納された過去3回の応答信号は、応答信号b0、b1、b3である。応答信号b0は、同期信号1より前に送信された同期信号0に対する応答信号である。また、応答信号b2は応答待ち時間Wまでにマスター端末100が受信できなかったために応答信号の受信時間リストに格納されていない。過去3回分の応答信号の時間間隔は、応答信号b0とb1との時間間隔と、応答信号b1とb3との時間間隔とである。応答信号b0とb1の時間間隔はW1と誤差範囲で一致するか不明であり、応答信号b1とb3との時間間隔はおおよそW1+W2であり、W2とは誤差範囲で一致しない。
マスター端末100は、同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致するスレーブ端末200aを接続対象として認識し、接続を確立する。一方、マスター端末100は、同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致しないスレーブ端末200bを接続対象から除外する。
応答待ち時間Wと、マスター端末100とスレーブ端末200との間の距離と、の関係について説明する。音波の速度を340(m/s)、マスター端末100とスレーブ端末200との間の距離をR(m)とする。また、スレーブ端末200が同期信号を受信してから応答信号を送信するまでの時間をD(s)とする。マスター端末100から送信された音波がスレーブ端末200に到達する時間は、R/340(s)である。マスター端末から同期信号が送信されてからスレーブ端末200が応答信号を送信する時間Tは、R/340+D(s)である。本実施の形態では、応答信号は電波を用いて送信しているため、応答信号がスレーブ端末200からマスター端末100に到達する時間は無視する。
R/340+D(s)が応答待ち時間W以下である場合、マスター端末100は、応答待ち時間W内に応答信号を受信することができる。これに対して、R/340+D(s)が応答待ち時間Wより大きい場合、マスター端末100は、応答待ち時間W内に応答信号を受信することができない。したがって、R≦340(W−D)である場合、マスター端末100は、スレーブ端末200からの応答信号を応答待ち時間W内に受信することができる。これに対して、R>340(W−D)である場合、マスター端末100は、スレーブ端末200からの応答信号を応答待ち時間W内に受信することができない。
例えば、応答待ち時間Wの最小時間Wminを0.05(s)とし、スレーブ端末200が同期信号を受信してから応答信号を送信するまでの時間Dを0.02(s)とすると、R≦10.2(m)である場合、マスター端末100は、スレーブ端末200からの応答信号を応答待ち時間Wmin内に受信することができる。これに対して、R>10.2(m)である場合、マスター端末100は、スレーブ端末200からの応答信号を応答待ち時間Wmin内に受信することができない。このように、最小時間Wminを十分短い時間間隔に設定することで、応答待ち時間Wが最小時間Wminである場合、マスター端末100の近隣にあるスレーブ端末200のみの応答信号を受信するように調整することができる。
上述のように、マスター端末100は、スレーブ端末200aから応答信号a1〜a3を応答待ち時間W内に受信し、応答信号の受信時間等を応答信号の受信時間リストに格納する。スレーブ端末200aはマスター端末100の近隣にあるため、マスター端末100は応答待ち時間Wが短くても、スレーブ端末200aから応答信号を受信することができる。このように、マスター端末100が、連続するN回以上の同期信号に対してスレーブ端末200aからの応答信号を漏れなく応答待ち時間Wに受信できた場合、応答信号の受信時間等を応答信号リストに格納でき、同期信号の送信時間の時間間隔と応答信号の受信時間の時間間隔とを比較すると誤差範囲で一致する。
これに対して、スレーブ端末200bは、マスター端末100の近隣にないため、マスター端末100からスレーブ端末200bに同期信号が到達するのに時間がかかる。このため、スレーブ端末200bからマスター端末100に応答信号を送信する時間も遅れる。応答待ち時間WがW2のように短い場合、マスター端末100はスレーブ端末200bからの応答信号を応答待ち時間W内に受信できない。このため、マスター端末100は、W2のように短い応答待ち時間Wを含む場合、連続するN回以上の同期信号に対してスレーブ端末200bからの応答信号の受信に漏れが生ずる。このため、スレーブ端末200bからの応答信号の受信時間の時間間隔は、同期信号の送信時間の時間間隔と誤差範囲内で一致しない。
スレーブ端末200aからの応答信号の時間間隔が同期信号の時間間隔と誤差範囲で一致すると、マスター端末100は、スレーブ端末200aがすでに接続されていない場合は、マスター端末100は、スレーブ端末200aを接続対象と認識し、接続を確立する。その後、スレーブ端末200aの端末IDを接続対象IDに追加する。これに対して、スレーブ端末200bからの応答信号の時間間隔は同期信号の時間間隔と誤差範囲で一致しないため、マスター端末100は、スレーブ端末200bと接続を接続対象としない。
応答待ち時間Wの最小時間Wminを例えば0.05sのように十分短い時間間隔に設定し、応答待ち時間WがWminになる確率をN回のうち1回以上とすることで、マスター端末100は、近隣にあるスレーブ端末200aとマスター端末100から離れた場所にあるスレーブ端末200bを区別し、マスター端末100の近隣にあるスレーブ端末200aのみを選択して接続対象と認識し、その接続対象と接続を確立することができる。
(第2の実施の形態)
本発明の第2の実施の形態に係る無線通信システム2について図面を参照しながら説明する。なお、第1の実施の形態と同一の構成には同一番号を付し、詳しい説明は省略する。
図14は、本発明の第2の実施の形態に係る無線通信システム2の構成を示す図である。図14の構成例において、無線通信システム2は、無線通信装置であるマスター端末100と、無線通信装置であるスレーブ端末200a、200bとから構成される。マスター端末100と複数のスレーブ端末200a、200bとは、Bluetoothと呼ばれる近距離無線通信規格に基づいて、互いに無線通信を行う。
マスター端末100は、例えば、スマートフォン、タブレット型パーソナルコンピュータである。一方、スレーブ端末200a、200bは、例えば、腕時計型端末などのウエアラブル端末である。なお、各スレーブ端末200a、200bを特段区別する必要がない場合は、まとめてスレーブ端末200と称して以下説明する。
第1の実施の形態では、マスター端末100は、同期信号としての音波をスレーブ端末200に送信する。スレーブ端末200は、マイクで音波を受信し、応答信号としての電波を送信する。マスター端末100は、この応答信号としての電波を受信し、同期信号と応答信号との時間間隔が一致したスレーブ端末200を接続対象として認識する。このため、マスター端末100は、音波が伝わる空間にあるスレーブ端末200を接続対象として認識できる。これに対して、第2の実施の形態では、マスター端末100は、同期信号としての振動をスレーブ端末200に送信する。スレーブ端末200は、加速度センサで振動を検知し、応答信号としての振動を発信する。マスター端末100は、加速度センサで応答信号としての振動を検知し、同期信号と応答信号との時間間隔が一致したスレーブ端末200を接続対象として認識する。このため、加速度センサで振動を検知することから、物理的に接触したスレーブ端末200aに限って接続対象として認識し、接続を確立できる。
図15に示すように、第1の実施の形態のマスター端末100と比較して、第2の実施の形態のマスター端末100は、加速度センサ190をさらに備える。
加速度センサ190は、接触しているスレーブ端末200から送信された応答信号である振動を受信する。具体的には、加速度センサ190は、接触したスレーブ端末200aからの振動として検知することにより応答信号を受信する。なお、本実施の形態では、加速度センサ190は、接触していないスレーブ端末200からの振動は検知できないため、接触していないスレーブ端末200からの応答信号を受信できない。加速度センサ190は、例えば、スマートフォンなどに内蔵されている加速度センサを用いてもよい。
つぎに、スレーブ端末200の構成について説明する。図16に示すように、加速度センサ280と、スピーカ290とをさらに備える。
加速度センサ280は、接触しているマスター端末100から送信された同期信号である振動を取得する。具体的には、加速度センサ280は、接触したマスター端末100からの振動を検知することにより同期信号を受信する。なお、本実施の形態では、加速度センサ280は、接触していないマスター端末100からの振動は検知できないため、加速度センサ280は、接触していないマスター端末100からの同期信号を受信できない。加速度センサ280は、例えば、ウエアラブル端末などに内蔵されている加速度センサを用いてもよい。
スピーカ290は、マスター端末100の加速度センサ190が振動として検知できる振動を応答信号として送信する。スピーカ290は、例えば、ウエアラブル端末などに内蔵されているスピーカを用いてもよい。
つぎに、マスター端末100がスレーブ端末200を接続対象として認識する前提となる処理である接続対象検出処理2を、図17に示すフローチャートを参照しながら説明する。
マスター端末100は、起動と同時に又はユーザの操作に応じて接続対象検出処理2を開始する。同期信号発信部111は、スレーブ端末200に同期信号である振動を発信し、同期信号を送信した時間を同期信号の発信時間リストに格納する(ステップS401)。マスター端末100は、応答待ち時間Wを決定し(ステップS402)、応答待ち時間Wを応答待ち時間Wリストに格納する(ステップS403)。
つぎに、応答待ち時間Wが経過しているか判定する(ステップS404)。応答待ち時間を経過していないと判定した場合(ステップS404;NO)、マスター端末100は、以下の処理を行う。
応答信号取得部113は、応答待ち時間Wの間、スレーブ端末200から送信された応答信号である振動を受信したか判定する(ステップS405)。振動を受信しなかった場合(ステップS405;NO)、ステップS404の処理に戻る。振動を受信した場合(ステップS405;YES)、端末IDと応答信号の受信時間とを応答信号の受信時間リストに格納する(ステップS406)。この後、ステップS404の処理に戻る。このように、応答待ち時間が経過するまでステップS404〜S406の処理をループする。具体的には、図14に示す無線通信システム2の場合、マスター端末100は、物理的に接触しているスレーブ端末200aからの振動を加速度センサ190で検知し、スレーブ端末200aの端末IDと応答信号である音波の受信時間とを応答信号の受信時間リストに格納する。
応答待ち時間を経過していると判定した場合(ステップS404;YES)、マスター端末100が、同期信号をN回以上送信したか判定する(ステップS407)。同期信号をN回以上送信した場合(ステップS407;YES)、マスター端末100は、応答信号を送信したスレーブ端末200を接続対象とするか判定する接続対象更新処理を行う(ステップS408)。同期信号をN回以上送信していない場合(ステップS407;NO)、ステップS401に戻る。このように、同期信号をN回以上送信するまでステップS401〜S407の処理をループする。
つぎに、接続対象更新処理2を、図18に示すフローチャートを参照しながら説明する。まず、全スレーブ端末200について同期信号と応答信号との時間間隔が一定の誤差範囲内であるか判定済みであるか判定する(ステップS501)。具体的には、図14に示す無線通信システム2の場合、マスター端末100は、物理的に接触しているスレーブ端末200aについて一定の誤差範囲内であるか判定済みであるか判定する。スレーブ端末200aについて判定済みでない場合(ステップS501;NO)、マスター端末100は、判定済みでないスレーブ端末200aの端末IDをセットする(ステップS502)。判定済みでないスレーブ端末200が複数ある場合は、そのうちの一つを任意に選択して端末IDをセットする。つぎに、マスター端末100は、この端末IDの応答信号である振動の受信時間を抽出する(ステップS503)。マスター端末100は、過去N回分の抽出した端末IDの応答信号である振動の受信時間の時間間隔と、過去N回分の同期信号である振動の時間間隔と、の差の絶対値を求める(ステップS504)。マスター端末100は、同期信号の時間間隔と応答信号の時間間隔との差の絶対値の平均が一定の値以下(誤差範囲)であるか判定する(ステップS505)。
同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致している場合、(ステップS505;YES)、マスター端末100は、送信時間の時間間隔と応答時間の時間間隔が一致しているスレーブ端末200aを接続対象として認識する(ステップS506)。接続対象として認識したスレーブ端末200aの端末IDを接続対象IDリストに格納する。マスター端末100は、このスレーブ端末200aの端末IDを表示しユーザの操作を受け付けることにより、又は自動的に、スレーブ端末200aと接続を確立する。この後、ステップS501に戻る。
一方、ステップS505に戻って、別の例として、同期信号の時間間隔と応答信号の時間間隔とが誤差範囲で一致していない場合、(ステップS505;NO)、誤差範囲に収まっていないスレーブ端末200を接続対象として認識しない(ステップS507)。この後、ステップS501に戻る。
全スレーブ端末IDについて同期信号の時間間隔と応答信号の時間間隔とが一致しているか判定済みである場合(ステップS501;YES)、接続対象更新処理を終了する。マスター端末100に複数のスレーブ端末200が接触している場合で、全スレーブ端末200について判定済みでない場合(ステップS501;NO)、残りのスレーブ端末200についてステップS502以降の処理を行う。図14に示す無線通信システム2の場合、この処理を繰り返すことでマスター端末100は、同期信号と応答信号との時間間隔が一致する場合、物理的に接触したスレーブ端末200aを接続対象として認識し、接続を確立する。これに対して、マスター端末100は、物理的に接触していないスレーブ端末200bを接続対象と認識しない。
つぎに、スレーブ端末200が、マスター端末100との間で接続を確立するために行う同期信号応答処理2を、図19に示すフローチャートを参照しながら説明する。スレーブ端末200は、起動と同時に又はユーザの操作に応じて振動を受信する処理を開始する。まず、同期信号取得部211は、振動を受信したか判定する(ステップS601)。同期信号取得部211は、加速度センサ280により振動の振動を検知したか判定する。例えば、図14に示す無線通信システム2の場合、物理的に接触しているスレーブ端末200aは、加速度センサ280が振動を検知できるため、振動を受信できる。これに対して、物理的に接触していないスレーブ端末200bは、加速度センサ280が振動を検知できないため、振動を受信できない。振動を受信していない場合(ステップS601;NO)、振動を受信するまでステップS601を繰り返す。
振動を受信した場合(ステップS601;Yes)、同期信号判定部212は、加速度センサ280を介して受信した振動が同期信号であるか判定する(ステップS602)。
振動が同期信号であると判定した場合(ステップS602;YES)、応答信号発信部213は、スピーカ290からマスター端末100に自端末の端末IDを含む応答信号を振動で即座に送信し(ステップS603)、終了する。振動が同期信号でないと判定した場合(ステップS602;NO)、終了する。マスター端末100に接触している場合、この処理を繰り返すことでスレーブ端末200は、接続を確立できる。
上述のように、スレーブ端末200は、接触しているマスター端末100から振動を加速度センサ280で検知し、応答信号である振動を送信する。マスター端末100は、接触しているスレーブ端末200から振動を加速度センサ190で検知し、同期信号の時間間隔と、応答信号の時間間隔が誤差範囲で一致するスレーブ端末200と接続を確立する。このため、マスター端末100は、物理的に接触したスレーブ端末200aと接続を確立することができる。これに対して、物理的に接触したスレーブ以外の端末とは接続しない。この結果、加速度センサが振動を検知できる範囲(本実施の形態では、物理的に接触している範囲)に限った接続確立をすることができる。したがって、ユーザは、PINを入力するなどの設定操作をせずに、マスター端末100とスレーブ端末200とを接触させることで、これらの端末の接続を確立することができる。
また、マスター端末100が備える加速度センサ190をマイクに変更してもよく、スレーブ端末200が備える加速度センサ280をマイクに変更してもよい。この場合、スレーブ端末200がマスター端末100から送信された振動の同期信号を受信できる距離にあり、かつ、マスター端末100がスレーブ端末200から送信された振動の応答信号を受信できる距離にある場合、マスター端末100は、スレーブ端末200と接続を確立できる。
また、マスター端末100のスピーカ130を、スレーブ端末200の加速度センサ280が検知できる振動を発生させる振動モータなどで代用してもよい。同様に、スレーブ端末200のスピーカ290を、振動モータなどで代用してもよい。これにより、スピーカの音波に代わる振動で上述した接続に係る処理を行うことができる。
(変形例)
上記実施の形態のマスター端末100は、同期信号を音波で送信しているが、同期信号を光信号で送信してもよい。ここでいう光信号は、例えば、赤外線、可視光線、紫外線などである。同期信号を光信号で送信した場合、マスター端末100は、マスター端末100から光信号が到達する範囲のスレーブ端末200のみを接続対象にでき、その接続対象のみと接続を確立できる。例えば、光信号が外部に漏れないように仕切られた場所にマスター端末100を設置した場合、その仕切られた場所にあるスレーブ端末200のみを接続対象とすることができる。
上記実施の形態のマスター端末100は、同期信号をランダムな時間間隔で送信しているが、一定の時間間隔で送信してもよい。この一定の時間間隔の間隔は、一定期間ごとに変更してもよい。一定期間とは、例えばマスターの電源を入れる毎などである。また、上記実施の形態のマスター端末100は、同期信号を送信してから応答待ち時間の間、スレーブ端末200から応答信号を受信しているが、マスター端末100は、応答待ち時間を設定せずにスレーブ端末200から応答信号を受信してもよい。この場合、マスター端末100は、同期信号が到達する範囲のスレーブ端末200のみを接続対象とすることができる。また、マスター端末100は、同期信号を受信し、受信した同期信号に対して応答信号を送信するスレーブ端末200のみを接続対象とすることができる。
上記実施の形態のマスター端末100は、同期信号をランダムな時間間隔で送信しているが、等間隔の時間間隔で送信してもよい。また、上記実施の形態のマスター端末100は、同期信号を送信する時間間隔と応答待ち時間Wとは同じであるが、マスター端末100は、同期信号を送信する時間間隔と応答待ち時間Wとを独立した値にしてもよい。
さらに安全なペアリングをするために、マスター端末100とスレーブ端末200とのPIN(暗証番号)をランダムに変更することが好ましい。この場合、スレーブ端末200からマスター端末100にPINを暗号化して送信することが好ましい。暗号化して送信することで、PINを第三者に知られる虞が低減でき、安全性がさらに高まる。
PINを暗号化してスレーブ端末200からマスター端末100に送信するために、まず、マスター端末100は、暗号化のための公開鍵を含んだ同期信号をスレーブ端末200に送信する。スレーブ端末200は、受信した同期信号から暗号化のための公開鍵を取得し、取得した公開鍵でPINを暗号化する。スレーブ端末200は、暗号化したPINを含む応答信号をマスター端末100に送信する。マスター端末100は、暗号化したPINを含む応答信号を受信する。マスター端末100は、受信した応答信号に含まれる暗号化されたPINを秘密鍵にて暗号を解除(復号)し、PINを取得する。マスター端末100は、取得したPINを用いてスレーブ端末200と接続を確立する。
また、制御部110、ROM140、RAM150、等から構成される無線通信装置が実行する接続対象検出処理及び接続対象更新処理を行う中心となる部分は、専用のシステムによらず、通常の情報携帯端末、パーソナルコンピュータなどを用いて実行可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM(Digital Versatile Disc Read Only Memory))等に格納して配布し、当該コンピュータプログラムを情報携帯端末などにインストールすることにより、前記の処理を実行する無線通信装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常の情報処理端末などがダウンロード等することで無線通信装置を構成してもよい。
また、無線通信装置の機能を、OS(Operating System)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
以上、本発明の好ましい実施の形態について説明したが、本発明は係る特定の実施の形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
同期信号を複数回発信する発信手段と、
前記同期信号を取得した他の無線通信装置が発信した応答信号を取得する取得手段と、
前記同期信号を発信した時間間隔と前記応答信号を取得した時間間隔とを比較する比較手段と、
前記比較手段が比較した結果に基づいて、前記他の無線通信装置を接続対象として認識する接続対象認識手段と、
を備えることを特徴とする無線通信装置。
(付記2)
前記比較手段は、前記同期信号を発信した時間間隔と前記応答信号を取得した時間間隔が一致するか判定し、
前記接続対象認識手段は、前記比較手段が、前記同期信号を発信した時間間隔と前記応答信号を取得した時間間隔とが一致すると判定した場合、前記他の無線通信装置を接続対象として認識する、
ことを特徴とする付記1に記載の無線通信装置。
(付記3)
前記発信手段は、前記同期信号を音波で発信する、
ことを特徴とする付記1または2に記載の無線通信装置。
(付記4)
前記取得手段は、前記他の無線装置が音波で発信した前記応答信号を取得する、
ことを特徴とする付記1乃至3の何れかに記載の無線通信装置。
(付記5)
前記取得手段は、前記他の無線装置から発信された振動を検知して、前記応答信号を取得する、
ことを特徴とする付記1乃至3の何れかに記載の無線通信装置。
(付記6)
前記発信手段は、同期信号をランダムな時間間隔で発信する、
ことを特徴とする付記1乃至5の何れかに記載の無線通信装置。
(付記7)
前記取得手段は、応答待ち時間をランダムに決定し、前記同期信号を発信してから該応答待ち時間が経過するまでの間、前記他の無線通信装置から発信される応答信号を取得する、
ことを特徴とする付記1乃至6の何れかに記載の無線通信装置。
(付記8)
前記接続対象認識手段が認識した前記他の無線通信装置と接続をする接続手段を、
備えることを特徴とする付記1乃至7の何れかに記載の無線通信装置。
(付記9)
前記発信手段は、暗号化のための公開鍵を前記同期信号に含めて発信し、
前記取得手段は、他の無線通信装置が前記公開鍵で暗号化した暗証番号を含む応答信号を取得し、
前記取得した応答信号から暗号化された前記暗証番号を前記公開鍵と対応する秘密鍵で復号し、該復号した暗証番号を用いて自装置と、前記接続対象認識手段が接続対象として認識した他の無線通信装置と、の接続を確立する、
ことを特徴とする付記1乃至7の何れかに記載の無線通信装置。
(付記10)
同期信号を複数回発信するステップと、
前記同期信号を取得した無線通信装置が発信した応答信号を取得するステップと、
前記同期信号を発信した時間間隔と前記応答信号を取得した時間間隔とを比較する比較ステップと、
前記比較ステップが比較した結果に基づいて、前記無線通信装置を接続対象として認識するステップと、
を備えることを特徴とする無線通信方法。
(付記11)
コンピュータを、
同期信号を複数回発信する発信手段、
前記同期信号を取得した無線通信装置が発信した応答信号を取得する取得手段と、
前記同期信号を発信した時間間隔と前記応答信号を取得した時間間隔とを比較する比較手段、
前記比較手段が比較した結果に基づいて、前記無線通信装置を接続対象として認識する接続対象認識手段、
として機能させるためのプログラム