以下、本発明の実施形態について図面を参照して説明する。
(第1実施形態)
図1に示すように、本発明の第1実施形態に係る無線通信システム1は、無線通信装置であるペリフェラル100と、ペリフェラル100とは異なる他の無線通信装置であるセントラル200とから構成される。
ペリフェラル100とセントラル200とは、Bluetooth(登録商標) low energy(以下、BLEという。)に基づいて、互いに無線通信を行う。BLEとは、Bluetooth(登録商標)と呼ばれる近距離無線通信規格において、低消費電力を目的として策定された規格(モード)である。
ここで、ペリフェラル100は、セントラル200にサービスを提供する。セントラル200は、ペリフェラル100から提供されたサービスを利用する。
ペリフェラル100及びセントラル200は、例えば、携帯電話機、スマートフォン、タブレット型パーソナルコンピュータ、ノート型パーソナルコンピュータ、時計等の持ち運びが可能であって、BLEに基づく無線通信機能を有する端末である。
本実施形態では、一例として、ペリフェラル100は、電子時計とし、セントラル200は、ペリフェラル100から各種データを受信して表示部260に表示する無線通信端末とする。
以下、本実施形態に係るペリフェラル100の構成について説明する。図2に示すように、ペリフェラル100は、バスラインBLで接続されている、無線通信部110と、制御部120と、RAM(Random Access Memory)130と、ROM(Read Only Memory)140と、操作部150と、表示部160と、計時部170と、クロック信号生成部180とを備える。
無線通信部110は、例えば無線周波数(RF:Radio Frequency)回路、ベースバンド(BB:Base Band)回路、集積回路(LSI:Large Scale Integration)等から構成される。無線通信部110は、アンテナ111を介して信号の送受信を行い、他の無線通信装置であるセントラル200とBLEに基づく無線通信を行う。
制御部120は、例えばCPU(Central Processing Unit)によって構成される。制御部120は、ROM140に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、ペリフェラル100の全体の動作を制御する。
RAM130は、揮発性メモリから構成され、制御部120が各種処理を行うためにデータを一時的に記憶するための作業領域として用いられる。
ROM140は、フラッシュメモリ等の不揮発性メモリから構成され、制御部120が各種機能を制御するためのプログラムや各種データを記憶する。
操作部150は、操作ボタンやタッチパネル等から構成され、ユーザが指示を入力するために用いられるインタフェースである。
表示部160は、例えば、LCD(Liquid Crystal Display)、EL(Electroluminescence)ディスプレイ等によって構成され、制御部120から入力された画像データに応じて画像を表示する。
計時部170は、ペリフェラル(自装置)100のクロック信号のパルス数をカウントするカウンタ回路から構成される。計時部170はカウントされるパルス数に基づいて時刻を計時する。また、制御部120は、計時部170がカウントするパルス数に基づいたタイミングで各種制御を実行する。
クロック信号生成部180は、基準クロックを生成する水晶発振器及び基準クロックから所望の周波数のクロック信号を生成する可変PLL等から構成され、ペリフェラル(自装置)100のクロック信号を生成する。このクロック信号の周波数は、可変PLL(phase-locked loop)の分周比を変えることによって制御される。
次に、ペリフェラル100の無線通信部110及び制御部120の機能的構成について説明する。
無線通信部110は、通信制御部112と、RAM114と、ROM115とを備える。通信制御部112は、例えばCPUによって構成される。通信制御部112は、ROM115に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、無線通信部110の全体の動作を制御する。また、通信制御部112は、自装置アドレス生成部113としても機能する。
ここで、以下の説明において、自装置の識別情報(デバイスアドレス)を「自装置アドレス」と称し、他の無線通信装置の識別情報(デバイスアドレス)を「他装置アドレス」と称する。なお、「自装置」と「他装置」の区別は、その装置から見て自装置であるか他装置であるかによって判断される。例えば、ペリフェラル100にとって自装置アドレスであっても、セントラル200にとっては他装置アドレスである。
無線通信部110のRAM114には、自装置アドレスが記憶される。無線通信部110のROM115には、自装置アドレスの生成に必要な基データが記憶される。ここで、RAM114に記憶される自装置アドレスは、後述する自装置アドレス更新部124によって適宜更新される。一方、ROM115に記憶される基データは製造時に記憶され、その後のユーザ操作によって更新されることはない。
通信制御部112の自装置アドレス生成部113は、ROM115から基データを読み出して、この基データを暗号化することによって自装置アドレスを生成する。基データの暗号化は、ハッシュ関数に基づいて生成される乱数によって行われる。
制御部120は、アドバタイズメント送信部121、接続要求受信部122、切断要求受信部123、自装置アドレス更新部124として機能する。
アドバタイズメント送信部121は、アドバタイズメントを無線通信部110及びアンテナ111を介してセントラル200に送信する。アドバタイズメントの送信は、プログラムの処理に応じて定期的なタイミングで、又はユーザ操作が発生したタイミングで行われる。なお、アドバタイズメントとは、自己の存在を知らしめるための告知情報である。また、アドバタイズメントは、自装置アドレスを含む情報である。
接続要求受信部122は、セントラル200からの接続要求をアンテナ111及び無線通信部110を介して受信してセントラル200との接続を確立する。この接続の確立によってセントラル200とのデータ通信が可能となる。
切断要求受信部123は、セントラル200から接続を切断するための切断要求をアンテナ111及び無線通信部110を介して受信し、セントラル200との接続を切断する。
自装置アドレス更新部124は、自装置アドレス更新処理を実行し、自装置アドレスを更新する。自装置アドレス更新処理については後述する。
以上、本実施形態に係るペリフェラル100の構成について説明した。次に、本実施形態に係るセントラル200の構成について説明する。
図3に示すように、セントラル200は、バスラインBLで接続されている、無線通信部210と、制御部220と、RAM230と、ROM240と、操作部250と、表示部260と、計時部270と、クロック信号生成部280とを備える。
無線通信部210は、例えばRF回路、BB回路、LSI等から構成される。無線通信部210は、アンテナ211を介して、他の無線通信装置であるペリフェラル100とBLEに基づく無線通信を行う。なお、無線通信部210には、製造時において自装置アドレスが設定される。この自装置アドレスは、ユーザ操作によって更新されることはない。
制御部220は、例えばCPUによって構成される。制御部220は、ROM240に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、セントラル200の全体の動作を制御する。
RAM230は、揮発性メモリから構成され、制御部220が各種処理を行うためにデータを一時的に記憶するための作業領域として用いられる。
ROM240は、フラッシュメモリ等の不揮発性メモリから構成され、制御部220が各種機能を制御するためのプログラムやデータを記憶する。
操作部250は、タッチパネル等から構成され、ユーザの操作を受け付けるインタフェースである。
表示部260は、例えば、LCD、ELディスプレイ等によって構成され、制御部220から入力された画像データに応じて画像を表示する。
計時部270は、セントラル(自装置)200のクロック信号のパルス数をカウントするカウンタ回路から構成される。計時部270はカウントされるパルス数に基づいて時刻を計時する。また、制御部220は、計時部270がカウントするパルス数に基づいたタイミングで各種制御を実行する。
クロック信号生成部280は、基準クロックを生成する水晶発振器及び基準クロックから所望の周波数のクロック信号を生成する可変PLL等から構成され、セントラル(自装置)200のクロック信号を生成する。このクロック信号の周波数は、可変PLLの分周比を変えることによって制御される。
次に、セントラル200の制御部220の機能的構成について説明する。制御部220は、アドバタイズメント受信部221、接続要求送信部222、切断要求送信部223として機能する。
アドバタイズメント受信部221は、スキャン指示に基づいて、ペリフェラル100から送信されるアドバタイズメントをアンテナ211及び無線通信部210を介して受信する。これにより、セントラル200は、ペリフェラル100の存在を認識する。スキャン指示のためのユーザ操作としては、例えば、ペリフェラル100のサービスを利用するためのアプリケーションの起動などが考えられる。また、スキャン指示は、ユーザ操作に限らずアプリケーション起動後、定期的に行われてもよい。
接続要求送信部222は、無線通信部210及びアンテナ211を介してペリフェラル100に接続を要求する接続要求の送信を行う。接続要求は、ペリフェラル100から送信されるアドバタイズメントを受信後、接続が必要な場合に送信される。なお、接続要求には、自装置アドレス(セントラル200のデバイスアドレス)が含まれる。
切断要求送信部223は、無線通信部210を介して接続されているペリフェラル100に接続を切断するための切断要求の送信を行う。切断要求は、例えば、接続されているペリフェラル100とのデータ通信が終了した場合又はユーザの切断操作があった場合に送信される。
次に、図4を参照しながら、ペリフェラル100の自装置アドレス更新処理について説明する。この処理は、制御部120の自装置アドレス更新部124を主体として実行される。この処理は、ペリフェラル100の無線通信部110のRAM114から他装置アドレス(例えばセントラル200のデバイスアドレス)が削除されることを契機に実行される。
まず、制御部120の自装置アドレス更新部124は、無線通信部110の自装置アドレス生成部113に自装置アドレスを生成させる(ステップS101)。自装置アドレスは上述した方法によって生成される。
次に、制御部120の自装置アドレス更新部124は、生成された自装置アドレスを更新する(ステップS102)。なお、本願において、「更新」とは、データ(すなわちデバイスアドレス)の一部を書き換えて上書きすることを意味する。
ここで、更新されるデバイスアドレスについて説明する。図5に示すように、デバイスアドレスは、octet 0〜5の6octetから構成される。1octetは2桁の16進数から構成される。各octetにおいて「0x」は、16進数表記であることを意味する。16進数の値は、無線通信装置毎(デバイス毎)に設定されるランダムな値である。なお、MSB(Most Significant bit)は最上位ビットであることを示し、LSB(Least Significant bit)は最下位ビットであることを示す。
BLEにおいて、使用されるアドレスタイプには、RPA(Resolvable Private Address)、NRPA(Non-Resolvable Private Address)、Random Static、Public Addressの4種類がある。
デバイスアドレスのアドレスタイプは、デバイスアドレスに含まれる最上位2ビットで判別される。本実施形態で使用されるデバイスアドレスは、Random Staticである。
本実施形態の場合、デバイスアドレスのアドレスタイプがRandom Staticであることを識別できるように、図5に示されるデバイスアドレスにおいて、octet5の2桁の16進数のうち、2桁目の「○」の部分には、C、D、E、Fのいずれかの値が使用される。すなわち、図5の「X」で示される部分には、16進数の1〜Fのいずれの値も採用され得るが、「○」の部分で採用され得るのは、16進数のC〜Fのいずれかの値のみである。
デバイスアドレスの更新では、octet 0及びoctet 1の2つのoctetと、octet 5のうち「○」の部分とが書き換えられる。その他の部分は、既存の値が継続使用される。
octet 0の値は、更新時における現在時刻の秒数、すなわち0x00〜0x59の値に書き換えられる。自装置アドレス更新部124は、現在時刻の秒数を計時部170から読み出してoctet 0の2桁の数値を書き換える。
octet 1の値は、更新時におけるカウント値すなわち0x00〜0xFFに書き換えられる。自装置アドレス更新部124は、クロック信号生成部180の低速側タイムベースカウンタレジスタ回路からカウント値を読み出してoctet 1の2桁の数値を書き換える。カウント値は、低速側タイムベースカウンタレジスタ回路の8ビットカウンタ(1〜128Hzのいずれかの周波数クロック)によってカウントアップされる値である。
octet 5の「○」の部分は、更新時における現在時刻の秒数に基づく値に書き換えられる。自装置アドレス更新部124は、現在時刻の秒数を計時部170から読み出して、0〜14秒の場合には「C」を、15〜29秒の場合には「D」を、30〜44秒の場合には「E」を、45〜59秒の場合には「F」をoctet 5の「○」の部分の値として書き換える。
以上、説明した方法で自装置アドレスが更新される。その後、図4に示すように、制御部120の自装置アドレス更新部124は、更新後の自装置アドレスをRAM130と、無線通信部110のRAM114とに記憶させる(ステップS103)。
なお、以上説明した自装置アドレス更新処理は、通常時(無線通信部110の電源がON状態の場合)におけるデバイスアドレスの更新処理である。これに対し、特殊時(無線通信部110の電源がOFF状態の場合)におけるデバイスアドレスの更新では、自装置アドレス更新部124は、上述した通常時における自装置アドレス更新処理と異なる更新処理を実行する。
上述した通常時における自装置アドレス更新処理では、無線通信部110を使用して自装置アドレスを更新している。これに対し、特殊時には、無線通信部110の電源がOFF状態であるため、無線通信部110を使用して自装置アドレスを更新する場合、無線通信部110の電源をONにしなければならない。しかし、ペリフェラル100において他装置アドレスを削除(例えば電子時計のリュウズ引き)すると共に無線通信部110の電源をONにして自装置アドレスを更新する場合、処理が複雑であるために不具合が生じる虞がある。
そのため、特殊時には、無線通信部110の電源がOFF状態のままであっても自装置アドレス更新処理を実行可能とするために、無線通信部110を使用しない自装置アドレス更新処理を使用する。具体的には、通常時の自装置アドレス更新処理において無線通信部110を使用して自装置アドレスを生成する処理(ステップS101)が省略される。その代わり、自装置アドレス更新部124は、RAM130に記憶されている既存の自装置アドレスを読み出して更新する。
特殊時の自装置アドレス更新処理では、octet 2及びoctet 3の2つのoctetと、octet 5のうち「○」の部分とが書き換えられる。その他の部分は、既存の値が継続使用される。すなわち、特殊時の場合には、通常時の場合に比べて書き換える部分が異なる。
特殊時のデバイスアドレスの書き換え方法は、通常時とほぼ同様である。octet 2の値は、更新時における現在時刻の秒数すなわち0x00〜0x59の値に書き換えられる。自装置アドレス更新部124は、現在時刻の秒数を計時部170から読み出してoctet 2の2桁の数値を書き換える。
octet 3の値は、更新時におけるカウント値すなわち0x00〜0xFFに書き換えられる。自装置アドレス更新部124は、クロック信号生成部180の低速側タイムベースカウンタレジスタ回路からカウント値を読み出してoctet 3の2桁の数値を書き換える。
特殊時の場合、以上説明した方法で自装置アドレスが更新された後、制御部120の自装置アドレス更新部124は、更新後の自装置アドレスをRAM130に記憶させる。なお、無線通信部110のRAM114にも無線通信部110の電源がON状態になった際に記憶させる。
次に、上述した自装置アドレス更新処理が適用された場合におけるペリフェラル100及びセントラル200のペアリング動作処理について説明する。ペアリング動作処理は、例えば、ペリフェラル100又はセントラル200において、ユーザがソフトウェアの起動操作をした場合等を契機として実行される。なお、ペアリング動作処理の開始時において、ペリフェラル100とセントラル200の間でペアリングは未だ済んでいないものとする。
まず、図6に示すように、ペアリング動作処理が開始されると、ペリフェラル100の制御部120は、自装置アドレスの更新処理を実行する(ステップS201)。この処理は、自装置アドレス更新部124によって実行され、上述した図4のステップS101〜103に相当する。ただし、通常時でない特殊時の場合は上述した異なる更新処理が適用される。
次に、ペリフェラル100の制御部120は、アドバタイズメントをセントラル200に送信する(ステップS202)。この処理は、アドバタイズメント送信部121によって実行される。また、アドバタイズメントには、更新された自装置アドレス(ペリフェラル100のデバイスアドレス)が含まれる。
セントラル200の制御部220は、無線通信部210を介してアドバタイズメントを受信する(ステップS301)。アドバタイズメントは、アドバタイズメント受信部221が、アドバタイズメントが送信される周波数帯域のチャンネルをスキャンすることによって受信される。
セントラル200の制御部220は、無線通信部210を介して、接続要求をペリフェラル100に送信する(ステップS302)。この処理は、接続要求送信部222によって実行される。また、接続要求には、自装置アドレス(セントラル200のデバイスアドレス)が含まれる。
ペリフェラル100の制御部120は、無線通信部110を介して接続要求を受信する(ステップS203)。接続要求は、接続要求受信部122によって受信される。接続要求受信部122は、接続要求を受信すると、セントラル200との接続を確立する。
このように、ペリフェラル100とセントラル200との接続が確立すると、ペリフェラル100及びセントラル200は、それぞれペアリングを実行する(ステップS204、ステップS303)。具体的には、ペリフェラル100の制御部120は、受信した接続要求に含まれる他装置アドレス(セントラル200のデバイスアドレス)を無線通信部110のRAM114及びRAM130に記憶させる。セントラル200の制御部220は、受信したアドバタイズメントに含まれる他装置アドレス(ペリフェラル100のデバイスアドレス)を無線通信部210及びRAM230に記憶させる。
ペアリング済みになると、ペリフェラル100とセントラル200の間においてペアリング済みの各種通信処理が行われる(ステップS205、ステップS304)。ここで、ペアリング済みの各種通信処理とは、ユーザ操作等によって実行される処理であり、例えばデータ通信、接続の切断・再接続等の処理である。
接続の切断は、ペリフェラル100がセントラル200から切断要求を受信することによって実行される。切断要求の送受信は、ペリフェラル100の切断要求受信部123とセントラル200の切断要求送信部223によって実行される。
接続切断後の再接続は、上述したアドバタイズメントの送受信及び接続要求の送受信によって行われる。なお、再接続において、ペアリング及び自装置アドレスの更新処理は不要である。なお、ペアリング済みの各種通信処理が行われることなく、ペリフェラル100のRAM114又はRAM130から他装置アドレス(セントラル200のデバイスアドレス)が削除された場合、上述のステップS205、ステップS304はスキップされる。
ここで、ペリフェラル100の制御部120は、ペリフェラル100のRAM114又はRAM130から他装置アドレスが削除されていないかどうかを定期的に判別する(ステップS206)。他装置アドレスが削除されていないと判別された場合(ステップS206;No)、ペリフェラル100の制御部120は、上述したペアリング済みの各種通信処理を継続する。他装置アドレスが削除されたと判別された場合(ステップS206;Yes)、ペリフェラル100の制御部120は、ステップS201に戻って、再び自装置アドレス更新処理等を実行する。
一方、セントラル200の制御部220は、ペリフェラル100からアドバタイズメントを受信する際、そのアドバタイズメントがペアリング済みのものかどうかを判別する(ステップS305)。
上述のように、ペリフェラル100が他装置アドレスを削除(ステップS206;Yes)した後に、自装置アドレス更新処理(ステップS201)が実行されると、その後に送信されるアドバタイズメントには、元のペリフェラル100のデバイスアドレスとは異なるデバイスアドレスが含まれている。この場合、セントラル200の制御部220は、受信したアドバタイズメントがペアリングしてないものと判別する(ステップS305;Yes)。そうすると、再び接続要求送信(ステップS302)に戻ってペアリング(ステップS303)を実行する。
なお、図6のフローチャートでは、この2度目のペアリングも1度目と同一のセントラル200に対して行われている。しかし、2度目のペアリングが行われるセントラル200は、別のセントラル(不図示)であってもよい。例えば、セントラル200のOSのアップデート等で不具合が生じた場合には、ユーザはペリフェラル100を同一のセントラル200に対してペアリングし直そうとする。この場合、2度目のペアリングも1度目と同一のセントラル200に対して行われる。一方、ユーザがセントラル200ではなく別のセントラル(不図示)とペアリングさせたい場合にはその別のセントラルに対してペアリングさせようとする。
なお、ペリフェラル100が他装置アドレスを削除してない限り(ステップS206;No)、自装置アドレス更新処理(ステップS201)が実行されない。そのため、その後に送信されるアドバタイズメントには、ペリフェラル100のデバイスアドレスには同一のデバイスアドレスが含まれている。この場合、セントラル200の制御部220は、受信したアドバタイズメントがペアリング済みのものと判別し(ステップS305;No)、ペアリング済みの各種通信処理(ステップS304)が継続される。
以上説明したように、ペリフェラル100は、制御部120がRAM114又はRAM130から他装置アドレスを削除すると、自装置アドレスを更新する。そして、ペリフェラル100は、その後にセントラル200に送信するアドバタイズメントに更新後の自装置アドレスを含めている。この場合、ペリフェラル100は、セントラル200のRAM230等からペリフェラル100の元の自装置アドレスを削除しなくても、更新後の自装置アドレスを使用してセントラル200とペアリングすることができる。
このように、本実施形態の無線通信システム1によれば、ペリフェラル100とセントラル200のペアリングを解消するための操作は、ペリフェラル100に記憶されている他装置アドレスを削除するだけである。そのため、ペリフェラル100とセントラル200のペアリングを解消するための操作を簡略化してユーザの利便性を向上することができる。
ペリフェラル100の自装置アドレス更新処理において、計時部170の計時時刻と、クロック信号生成部180のカウント値と、が使用されている。このため、ペリフェラル100の制御部120は、自装置アドレスを更新のタイミングに応じた値に書き換えることができる。
ペリフェラル100の自装置アドレス更新処理において、通常時と特殊時とによって異なる更新処理が実行される。そのため、無線通信部110が電源ON状態である場合であっても、無線通信部110が電源OFF状態である場合であっても、ペリフェラル100は、不具合無く更新処理を実行することができる。
(第2実施形態)
本実施形態では、第1実施形態とは異なる方法でペリフェラルが自装置アドレスを更新する例について説明する。以下、本発明の第2実施形態について図面を参照して説明する。
本実施形態において、第1実施形態と共通する構成要素については同一の符号を付する。また、本実施形態の構成要素は、特に明示する場合を除き、第1実施形態の構成要素と任意に組み合わせ可能なものとする。
図7に示すように、本実施形態に係る無線通信システム2は、無線通信装置であるペリフェラル400と、ペリフェラル400とは異なる他の無線通信装置であるセントラル500とから構成される。
ペリフェラル400とセントラル500とは、BLEに基づいて、互いに無線通信を行う。セントラル500は、ネットワーク50を介して、ペリフェラル400のデバイスアドレスを管理するサーバ300と通信を行う。ネットワーク50は、WAN(Wide Area Network)であってもよいし、LAN(Local Area Network)であってもよい。
ペリフェラル400及びセントラル500は、第1実施形態に係るペリフェラル100及びセントラル200と同様なハードウェアで構成されるが、機能的構成が異なる。以下、ペリフェラル400及びセントラル500の詳細な構成について説明する。
図8に示すように、ペリフェラル400は、第1実施形態に係るペリフェラル100の無線通信部110と制御部120とに代えて、無線通信部410と制御部420とを備える。
無線通信部410は、例えばRF回路、BB回路、LSI等から構成される。無線通信部410は、アンテナ111を介して信号の送受信を行い、他の無線通信装置であるセントラル500とBLEに基づく無線通信を行う。
制御部420は、例えばCPUから構成される。制御部420は、ROM140に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、ペリフェラル400の全体の動作を制御する。
次に、ペリフェラル400の無線通信部410及び制御部420の機能的構成について説明する。
無線通信部410は、通信制御部412と、RAM414と、ROM415とを備える。通信制御部412は、例えばCPUによって構成される。通信制御部412は、ROM415に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、無線通信部410の全体の動作を制御する。なお、通信制御部412は、第1実施形態に係るペリフェラル100の通信制御部112とは異なり、自装置アドレス生成部113を有しない。
無線通信部410のRAM414には、自装置アドレスが記憶される。無線通信部410のROM415には、自装置アドレスの初期値が記憶される。
ここで、RAM414に記憶される自装置アドレスは、後述する自装置アドレス更新部424によって適宜更新される。一方、ROM415に記憶される自装置アドレスの初期値は製造時に記憶され、その後のユーザ操作によって更新されることはない。
なお、本実施形態では、第1実施形態と同様に、デバイスアドレスのアドレスタイプとして、Random Staticを使用するものとする。また、本実施形態では、自装置アドレスの初期値として、0xD1D1D1D1D1D1が設定されているものとする。なお、自装置アドレスの初期値は、0xC00000000000〜0xFFFFFFFFFFFFのうちの任意の値であればよい。
制御部420は、アドバタイズメント送信部121、接続要求受信部122、切断要求受信部123、自装置アドレス更新部424として機能する。
自装置アドレス更新部424は、自装置アドレス更新処理を実行し、第1実施形態に係る自装置アドレス更新部124とは異なる方法で自装置アドレスを更新する。自装置アドレス更新処理については後述する。
以上、本実施形態に係るペリフェラル400の構成について説明した。次に、本実施形態に係るセントラル500の構成について説明する。
図9に示すように、セントラル500は、第1実施形態に係るセントラル200の無線通信部210と制御部220とRAM230に代えて、無線通信部510と制御部520とRAM530とを備える。
無線通信部510は、例えばRF回路、BB回路、LSI等から構成される。無線通信部510は、アンテナ211を介して、他の無線通信装置であるペリフェラル400とBLEに基づく無線通信を行う。
また、無線通信部510は、アンテナ211を介して中継装置、アクセスポイント等と無線通信を行う。無線通信部510は、中継装置、アクセスポイント等を介してネットワーク50に接続され、サーバ300と通信する。なお、無線通信部510には、製造時において自装置アドレスが設定される。この自装置アドレスは、ユーザ操作によって更新されることはない。
制御部520は、例えばCPUから構成される。制御部520は、ROM240に記憶された各種プログラム(例えば、後述する制御処理を実現するためのプログラム)を実行することにより、セントラル500の全体の動作を制御する。
RAM530は、揮発性メモリから構成され、制御部520が各種処理を行うためにデータを一時的に記憶するための作業領域として用いられる。RAM530は、ペリフェラル400のデバイスアドレスの初期値が記憶される点でRAM230と異なる。
このデバイスアドレスの初期値は、セントラル500の製造時又は出荷時において予め記憶させておくものであり、セントラル500が他の装置から受信したアドバタイズメントに、そのデバイスアドレスが含まれていた場合に、デバイスアドレスの初期値として認識するためのものである。すなわち、セントラル500のRAM530には、ペリフェラル400のデバイスアドレスの初期値が、ペリフェラル400とペアリングしたことがない時点から記憶されていることになる。
次に、セントラル500の制御部520の機能的構成について説明する。制御部520は、第1実施形態に係る制御部220と同様にアドバタイズメント受信部221、接続要求送信部222、切断要求送信部223として機能し、さらに、デバイスアドレス取得部524としても機能する。
デバイスアドレス取得部524は、サーバ300から送信されるデバイスアドレスを無線通信部510に受信させ、サーバ300からデバイスアドレスを取得する。
次に、図10を参照しながら、ペリフェラル400の自装置アドレス更新処理について説明する。この処理は、制御部420の自装置アドレス更新部424とセントラル500とサーバ300とが協働することによって実行される。この処理は、ペリフェラル400の無線通信部410のRAM414から他装置アドレス(例えばセントラル500のデバイスアドレス)が削除されることを契機に実行される。
まず、制御部420の自装置アドレス更新部424は、RAM414に記憶されている自装置アドレスを、ROM415に記憶されている自装置アドレスの初期値(0xD1D1D1D1D1D1)に初期化して更新する(ステップS401)。
次に、ペリフェラル400の制御部420は、アドバタイズメントをセントラル500に送信する(ステップS402)。この処理は、アドバタイズメント送信部121によって実行される。また、アドバタイズメントには、初期化された自装置アドレス(ペリフェラル400のデバイスアドレス)が含まれる。
セントラル500の制御部520は、無線通信部510を介してアドバタイズメントを受信する(ステップS501)。アドバタイズメントは、アドバタイズメント受信部221が、アドバタイズメントが送信される周波数帯域のチャンネルをスキャンすることによって受信される。
セントラル500の制御部520は、受信した他装置アドレス(ペリフェラル400のデバイスアドレス)が初期値であるかどうかを判別する(ステップS502)。これは、受信した他装置アドレスが、RAM530に記憶されているデバイスアドレスの初期値と同一であるかどうかによって判別される。
受信した他装置アドレスが初期値でないと判別した場合(ステップS502;No)、セントラル500の制御部520は、以降の処理(ステップS503、S504)をスキップしてデバイスアドレス更新処理を終了する。
受信した他装置アドレスが初期値であると判別した場合(ステップS502;Yes)、セントラル500の制御部520のデバイスアドレス取得部524は、サーバ300に未使用のデバイスアドレスの送信を要求する。その後、セントラル500の制御部520のデバイスアドレス取得部524は、サーバ300から送信される未使用のデバイスアドレスを無線通信部510に受信させ、未使用のデバイスアドレスを取得する(ステップS503)。
セントラル500の制御部520は、無線通信部510を制御して、デバイスアドレス取得部524が取得した未使用のデバイスアドレスをペリフェラル400へ送信させる(ステップS504)。
ペリフェラル400の制御部420は、無線通信部410に、セントラル500から送信される未使用のデバイスアドレスを受信させる(ステップS403)。
ペリフェラル400とセントラル500との通信接続後に、ペリフェラル400の制御部420の自装置アドレス更新部424は、初期値になっていた自装置アドレスを、セントラル500から受信した未使用の自装置アドレスに更新し(ステップS404)、更新後の自装置アドレスをRAM130と、無線通信部410のRAM414とに記憶させる(ステップS405)。なお、上記「ペリフェラル400とセントラル500との通信接続」は、ステップS501のアドバタイズメント受信時からステップS504までの間に、セントラル500がペリフェラル400に接続要求を送信することによって確立される。
以上、ペリフェラル400の自装置アドレス更新処理について説明した。ペリフェラル400及びセントラル500のペアリング動作処理は、第1実施形態と同様な処理を適用可能であるため、詳細な説明を省略する。以下、第1実施形態と比較した場合の本実施形態の利点について説明する。
先に述べた第1実施形態において、ペリフェラル100が生成する自装置アドレスが取り得る値は約274×10^11(11は10の指数)通りもある。かかる多くの値の中から、自装置アドレスがランダムに生成されるため、自装置アドレスの値が重複する確率は非常に低い。しかし、自装置アドレスの値が重複する確率は、厳密にはゼロとはいえない。
なお、自装置アドレスの値が重複する確率とは、例えば、更新後の自装置アドレスの値が、更新以前に使用されたことのある自装置アドレスと同一になる確率、他のペリフェラル(不図示)がある場合に更新以前に使用されたことのある当該他のペリフェラルの自装置アドレスと同一になる確率等である。
これに対し、本実施形態によれば、サーバ300でペリフェラル400に割り当てるデバイスアドレスが管理されるため、ペリフェラル400が更新する自装置アドレスの値が重複することを防止することができる。
自装置アドレスの値の重複を防止する一例として、例えば、サーバ300は、発行順で昇順又は降順となるような値のデバイスアドレスを生成する構成にすればよい。
昇順で発行する場合、例えば、0xC00000000000、0xC00000000001、0xC00000000002、・・・と生成する。降順で発行する場合、例えば、0xFFFFFFFFFFFF、0xFFFFFFFFFFFE、0xFFFFFFFFFFFD、・・・と生成する。なお、最初に発行されるデバイスアドレスはこれらの例に限らず、他の値から発行開始してもよい。また、サーバ300は、デバイスアドレスの生成する際に、デバイスアドレスの初期値を採用しないように構成しなければならない。
サーバ300は、このように生成したデバイスアドレスを、ペリフェラル400に割り当てる自装置アドレスとしてセントラル500に送信するように構成すればよい。この場合、過去に発行したことのある使用済みデバイスアドレスが使用されないため、自装置アドレスの値が重複することがない。また、デバイスアドレスを発行するたびに使用済みデバイスアドレスが増加していくが、0xC00000000000〜0xFFFFFFFFFFFFという膨大な量には達しにくい。
自装置アドレスの値の重複を防止する他の例として、例えば、サーバ300は、過去に発行したことのある使用済みデバイスアドレスと、新たに発行するデバイスアドレスとが重複するか否かを判別し、重複しないと判別されたデバイスアドレスを、ペリフェラル400に割り当てる自装置アドレスとしてセントラル500に送信するように構成してもよい。この場合も、上記と同様に、自装置アドレスの値が重複することがない。なお、サーバ300の構成は、自装置アドレスの値の重複を防止する構成であれば、適宜変形可能である。
以上で実施形態の説明を終了するが、上記実施形態(第1実施形態と第2実施形態)は一例に過ぎない。そのため、ペリフェラル100、400とセントラル200、500とサーバ300との具体的な構成や処理の内容などは上記実施形態で説明したものに限られない。以下、上記実施形態の変形例について説明する。
(変形例)
第1実施形態において、ペリフェラル100の制御部120は、計時部170の計時時刻と、クロック信号生成部180のカウント値と、を使用して自装置アドレス更新処理を行っている。しかし、自装置アドレスを書き換えるためのランダムな値の生成方法は、このような方法に限られない。
例えば、ペリフェラル100の制御部120に乱数を生成する機能を設けて、その乱数に基づいて自装置アドレスを書き換えてもよい。この場合、上記実施形態のように更新時のタイミングに依存する値(計時時刻とカウント値)を使用する場合より、自装置アドレスを書き換えるための値のランダム性を高めることができる。
また、自装置アドレスの書き換え部分は、上記実施形態のように、octet 0、octet 1及びoctet 5の「○」部分やoctet 2、octet 3及びoctet 5の「○」部分等に限られない。自装置アドレスの書き換え部分(桁やビット位置等)は、適宜変形可能である。
第1実施形態の場合、自装置アドレスの更新処理において、0〜14秒の場合には「C」を、15〜29秒の場合には「D」を、30〜44秒の場合には「E」を、45〜59秒の場合には「F」をoctet 5の「○」の部分の値として書き換えている。しかし、octet 5の「○」の部分の書き換えは、このような規則に限られない。計時時刻0〜59秒を任意の4つの時間に分けて、それら4つの時間を値C〜Fと関連付けて規則としてもよい。
また、第1実施形態の場合、自装置アドレスの更新処理において、秒単位の計時時刻を使用して自装置アドレスを書き換えるのではなく分単位の計時時刻を使用して自装置アドレスを書き換えてもよい。このように、自装置アドレスの書き換えは、更新時のタイミングでランダムな値を使用すれば何でもよく、ランダムな値の生成方法も何でもよい。
第1実施形態において、自装置アドレスや他装置アドレス等のデータは、ペリフェラル100のRAM114又はRAM130に記憶されたり、セントラル200の無線通信部210又はRAM230に記憶されたりしている。しかし、自装置アドレスや他装置アドレス等のデータは、ROM115、140、240等に記憶されてもよい。すなわち、自装置アドレスや他装置アドレス等の記憶先は、RAMやROM等の記憶部であれば何でもよい。このような変形は、第2実施形態においても可能である。
第1実施形態において、ペリフェラル100は、制御部120及び無線通信部110の通信制御部112のそれぞれがCPUから構成されている。しかし、ペリフェラル100の構成は、通信制御部112を無線通信部110の構成要素ではなく、制御部120の構成要素として1つのCPUにされてもよい。また、ペリフェラル100の構成は、無線通信部110のRAM114やROM115も省略して、RAM130やROM140にRAM114やROM115の役割を果たす構成にされてもよい。このような変形は、第2実施形態においても可能である。
ペリフェラル100の制御部120は、表示部160に自装置アドレスを表示させ、セントラル200の制御部220は、表示部260に他装置アドレスを表示させるように構成されてもよい。この場合、ユーザは、ペリフェラル100の自装置アドレス更新処理によって更新されるデバイスアドレスをペリフェラル100の表示部160又はセントラル200の表示部260で確認することができる。このような変形は、第2実施形態においても可能である。
第1実施形態の場合、ペリフェラル100が1台のセントラル200のデバイスアドレスしか記憶できない場合を前提として構成されている。もし、ペリフェラル100が複数台のセントラル200のデバイスアドレスを記憶(すなわち複数台のセントラル200とペアリング)できる場合には、自装置アドレスの更新処理は、ペアリング済みの他装置アドレスがペリフェラル100の記憶部(RAMやROM)からすべて削除される際に実行するように構成すればよい。
これにより、ペアリング済みの複数台のセントラル200のうち1台のデバイスアドレスだけが削除される際にペリフェラル100の自装置アドレスが更新され、その他のデバイスアドレスが削除されていないセントラル200と接続できなくなる虞を除外することができる。このような変形は、第2実施形態においても可能である。
上記実施形態(第1実施形態と第2実施形態)において、セントラル200、500は、長期間(例えば3年間)にわたって接続実績がない他装置アドレス(ペアリング済みのペリフェラル100、400のデバイスアドレス)をRAM230、530から削除するように構成されてもよい。
この場合、ペリフェラル100、400においてセントラル200、500とのペアリングが解消されているにもかかわらず、セントラル200、500のRAM230、530に、ペアリング済みのペリフェラル100、400のデバイスアドレスが記憶されたままになる問題を軽減することができる。
また、第2実施形態に係るセントラル500は、さらに、長期間にわたって接続実績がない他装置アドレスをRAM530から削除したこと及び削除した他装置アドレスを、サーバ300に通知するように構成されてもよい。この場合、サーバ300に、使用済みのデバイスアドレスが増加していく問題を軽減することができる。
第1実施形態において、アドバタイズメントや接続要求にデバイスアドレスを含めることによって、ペリフェラル100とセントラル200との間で互いのデバイスアドレスを通知している。しかし、デバイスアドレスは、別の方法で通知されてもよい。このような変形は、第2実施形態においても可能である。
上記実施形態(第1実施形態と第2実施形態)において、ペリフェラル100、400は、RAM114、414又はRAM130から他装置アドレス(ペアリング済みのセントラル200、500のデバイスアドレス)が削除されたことを契機に、自装置アドレス更新処理又はデバイスアドレス更新処理を実行するように構成されている。
しかし、本発明はこれに限られない。例えば、2つの変形例が考えられる。1つ目の変形例として、ペリフェラル100、400は、RAM114、414又はRAM130において、他装置アドレスの記憶領域を変更する指示(ユーザ操作)を受け付けたことを契機に、自装置アドレス更新処理又はデバイスアドレス更新処理を実行するように構成されてもよい。なお、この場合、RAM114、414又はRAM130において、ペアリングされている他装置アドレスとペアリングされていない他装置アドレスとで記憶領域が異なるように構成する必要がある。
また、2つ目の変形例として、ペリフェラル100、400は、RAM114、414又はRAM130に記憶されている他装置アドレスを、接続先から解除されたことを示す値に変更して更新する指示を受け付けたことを契機に、自装置アドレス更新処理又はデバイスアドレス更新処理を実行するように構成されてもよい。接続先から解除されたことを示す値は、予め定められた値である。この場合、ペリフェラル100、400は、接続先から解除されたことを示す値になっている他装置アドレスはペアリングされていない他装置アドレスであると識別できるように構成される必要がある。
上記2つの変形例からわかるように、ペリフェラル100、400がRAM114、414又はRAM130に記憶されている他装置アドレスを接続先から解除する指示(ペアリングを解消するためのユーザ操作)を受け付けたことを契機として、自装置アドレス更新処理又はデバイスアドレス更新処理が実行されるように、ペリフェラル100、400が構成されてもよい。
上記実施形態(第1実施形態と第2実施形態)では、BLEに基づいて互いに無線通信を行うペリフェラル100、400及びセントラル200、500を無線通信装置の一例として示している。しかし、本発明は、BLEに基づいて無線通信を行う無線通信装置に限られない。例えば、本発明は、Wi−Fi(登録商標)又はZigBee(登録商標)等に基づく無線通信を行う無線通信装置等であってもよい。
また、本発明に係るペリフェラル100、400及びセントラル200、500は、上記装置によらず、例えば、コンピュータがプログラムを実行することで、ペリフェラル100、400の機能及びセントラル200、500の機能を実現してもよい。ペリフェラル100、400の機能及びセントラル200、500の機能を実現するためのプログラムは、USB(Universal Serial Bus)メモリ、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disc)、HDD(Hard Disc Drive)等のコンピュータ読み取り可能な記録媒体に記憶されてもよいし、ネットワークを介してコンピュータにダウンロードされてもよい。
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
他の無線通信装置と近距離無線通信を行う無線通信部と、
前記無線通信部を介して取得した前記他の無線通信装置の識別情報である他装置アドレスを記憶する記憶部と、
前記他装置アドレスを接続先から解除する指示を受け付けると、自装置の識別情報である自装置アドレスを更新する制御部と、
を備えることを特徴とする無線通信装置。
(付記2)
前記他装置アドレスを接続先から解除する指示は、前記記憶部から前記他装置アドレスを削除する指示であることを特徴とする付記1に記載の無線通信装置。
(付記3)
前記他装置アドレスを接続先から解除する指示は、前記記憶部において前記他装置アドレスの記憶領域を変更する指示であることを特徴とする付記1に記載の無線通信装置。
(付記4)
前記他装置アドレスを接続先から解除する指示は、前記記憶部に記憶された前記他装置アドレスを該接続先から解除されたことを示す値に変更して更新する指示であることを特徴とする付記1に記載の無線通信装置。
(付記5)
前記制御部は、
前記他装置アドレスを接続先から解除する指示を受け付けると、前記自装置アドレスを初期値に更新し、さらに該更新した自装置アドレスを、前記無線通信部が受信した受信信号が示す識別情報に変更して更新することを特徴とする付記1に記載の無線通信装置。
(付記6)
前記制御部は、前記自装置アドレスを、乱数に基づいて更新することを特徴とする付記1から4のいずれか1つに記載の無線通信装置。
(付記7)
前記制御部は、前記自装置アドレスを、前記更新のタイミングに応じた値に更新することを特徴とする付記1から4のいずれか1つに記載の無線通信装置。
(付記8)
さらに、時刻を計時する計時部を備え、
前記制御部は、前記自装置アドレスを、前記計時部によって計時される時刻を使用して前記更新のタイミングに応じた値に更新する、
ことを特徴とする付記7に記載の無線通信装置。
(付記9)
前記制御部は、前記自装置アドレスを更新する際に、前記無線通信部が電源ON状態である場合と、前記無線通信部が電源OFF状態である場合と、によって前記自装置アドレスの異なる部分を変更する、
ことを特徴とする付記1から4又は付記6から8のいずれか1つに記載の無線通信装置。
(付記10)
さらに、前記自装置アドレスを表示する表示部を備え、
前記表示部に表示される自装置アドレスが、前記制御部によって異なる値に更新される、
ことを特徴とする付記1から4又は付記6から9のいずれか1つに記載の無線通信装置。
(付記11)
付記1から10のいずれか1つに記載の無線通信装置を備えることを特徴とする電子時計。
(付記12)
前記他の無線通信装置が無線通信端末であり、該無線通信端末と前記近距離無線通信を行うことを特徴とする付記11に記載の電子時計。
(付記13)
近距離無線通信によって取得した他の無線通信装置の識別情報である他装置アドレスを記憶する記憶ステップと、
前記記憶ステップで記憶した前記他装置アドレスを接続先から解除する指示を受け付けると、自装置の識別情報である自装置アドレスを更新する更新ステップと、
を備えることを特徴とする無線通信方法。
(付記14)
他の無線通信装置の識別情報である他装置アドレスを表示する表示ステップと、
近距離無線通信によって前記他の無線通信装置に自装置の識別情報である自装置アドレスを通知する通知ステップと、
前記近距離無線通信によって前記他の無線通信装置から、前記他の無線通信装置によって更新された他装置アドレスを受信する受信ステップと、
前記表示ステップで表示される前記他装置アドレスが、異なる値に更新される更新ステップと、
を備えることを特徴とする無線通信方法。
(付記15)
前記受信ステップで受信した他装置アドレスが初期値である場合、サーバと通信を行い、該サーバから識別情報を取得する取得ステップと、
前記他の無線通信装置に、前記他装置アドレスを前記取得ステップで取得された識別情報に更新させるための信号を送信する送信ステップと、
を備えることを特徴とする付記14に記載の無線通信方法。
(付記16)
他の無線通信装置と近距離無線通信を行う無線通信部と、
前記無線通信部を介して取得した前記他の無線通信装置の識別情報である他装置アドレスを記憶する記憶部と、
前記記憶部から前記他装置アドレスを削除する際に、自装置の識別情報である自装置アドレスを更新する制御部と、
を備えることを特徴とする無線通信装置。
(付記17)
近距離無線通信によって取得した他の無線通信装置の識別情報である他装置アドレスを記憶する記憶ステップと、
前記記憶ステップで記憶した前記他装置アドレスを削除する際に、自装置の識別情報である自装置アドレスを更新する更新ステップと、
を備えることを特徴とする無線通信方法。