(57)【要約】【課題】  省電力化のために一定時間間隔で動作状態と休止状態を繰り返す間欠動作を行う複数のセンサノード間の時刻を高精度に同期させること。【解決手段】  第１の子ノードは、第１の動作状態において第１のセンサデータを取得して親ノードに送信する。第２の子ノードは、第２の動作状態において第２のセンサデータを取得して上記親ノードに送信する。親ノードは、第１及び第２の子ノードの動作間隔に基づいて時刻同期信号を送信するタイミングを設定して送信する。時刻同期信号を送信するタイミングに基づいて、第１の子ノードは第１の休止状態から第３の動作状態に移行し、第２の子ノードは第２の休止状態から第４の動作状態に移行する。親ノードは、時刻同期信号を送信するタイミングで時刻同期信号をブロードキャスト送信する。第１及び第２の子ノードは、時刻同期信号に含まれる時刻に自己の時刻を調整する。【選択図】  図４
2010016576.tif 000002
【特許請求の範囲】
【請求項１】
第１の子ノードと、第２の子ノードと、上記第１及び第２の子ノードと無線通信を行う親ノードと、からなるセンサネットワークシステムにおけるノード時刻同期方法であって、
上記第１の子ノードは、第１の動作状態と第１の休止状態とを繰り返し、上記第１の動作状態において第１のセンサデータを取得して上記親ノードに送信し、
上記第２の子ノードは、第２の動作状態と第２の休止状態とを繰り返し、上記第２の動作状態において第２のセンサデータを取得して上記親ノードに送信し、
上記親ノードは、上記第１及び上記第２の子ノードの動作間隔に基づいて時刻同期信号を送信するタイミングを設定し、上記第１及び第２のセンサデータを受信して上記時刻同期信号を送信するタイミングを示す信号を上記第１及び第２の子ノードに送信し、
上記第１の子ノードは、上記時刻同期信号を送信するタイミングに基づいて上記第１の休止状態から第３の動作状態に移行し、
上記第２の子ノードは、上記時刻同期信号を送信するタイミングに基づいて上記第２の休止状態から第４の動作状態に移行し、
上記親ノードは、上記時刻同期信号を送信するタイミングで上記時刻同期信号をブロードキャスト送信し、
上記第１の子ノードは、上記第３の動作状態において受信する上記時刻同期信号に含まれる時刻に、自己の時刻を調整し、
上記第２の子ノードは、上記第４の動作状態において受信する上記時刻同期信号に含まれる時刻に、自己の時刻を調整するノード時刻同期方法。
【請求項２】
請求項１に記載のノード時刻同期方法であって、
上記第１の子ノードが受信する時刻同期信号を送信するタイミングとは、上記第１のセンサデータを受信する時刻と上記第３の動作状態に移行する時刻との差を示す時間であり、
上記第２の子ノードが受信する時刻同期信号を送信するタイミングとは、上記第２のセンサデータを受信する時刻と上記第４の動作状態に移行する時刻との差を示す時間であるノード時刻同期方法。
【請求項３】
請求項１に記載のノード時刻同期方法であって、
上記第１の子ノードは、上記第１のセンサデータの送信に続けて、第１のデータ要求コマンドを送信し、
上記第２の子ノードは、上記第２のセンサデータの送信に続けて、第２のデータ要求コマンドを送信し、
上記第１の子ノードが受信する時刻同期信号を送信するタイミングとは、上記第１のデータ要求コマンドを受信する時刻と上記第３の動作状態に移行する時刻との差を示す時間であり、
上記第２の子ノードが受信する時刻同期信号を送信するタイミングとは、上記第２のデータ要求コマンドを受信する時刻と上記第４の動作状態に移行する時刻との差を示す時間であるノード時刻同期方法。
【請求項４】
請求項１に記載のノード時刻同期方法であって、
上記時刻同期信号を送信するタイミングを示す信号には、上記時刻同期信号に含まれる時刻を含むノード時刻同期方法。
【請求項５】
請求項１に記載のノード時刻同期方法であって、
上記第１及び第２の子ノードは、時刻調整を行った後、上記調整した時刻及び時間調整幅を含む時刻調整通知を上記親ノードに送信するノード時刻同期方法。
【請求項６】
請求項１に記載のノード時刻同期方法であって、
上記親ノードは、上記第１及び第２の子ノードのクロックの精度に基づいて予め決められた間隔を経過した場合であって、上記第１及び第２のセンサデータを受信したとき、上記時刻同期信号を送信するタイミングを示す信号を送信するノード時刻同期方法。
【請求項７】
請求項１に記載のノード時刻同期方法であって、
上記親ノードは、自己の時刻を標準時刻に同期を取る機能を有しているノード時刻同期方法。
【請求項８】
第１の動作状態と第１の休止状態とを繰り返し、上記第１の動作状態において第１のセンサデータを取得する第１のセンサと、上記第１のセンサデータを送信する第１の無線部と、を有する第１の子ノードと、
第２の動作状態と第２の休止状態とを繰り返し、上記第２の動作状態において第２のセンサデータを取得する第２のセンサと、上記第２のセンサデータを送信する第２の無線部と、を有する第２の子ノードと、
上記第１及び上記第２の子ノードの動作間隔に基づいて時刻同期信号を送信するタイミングを設定する制御部と、上記第１及び第２のセンサデータを受信して上記時刻同期信号を送信するタイミングを示す信号を上記第１及び第２の子ノードに対して送信する送受信部と、を有する親ノードと、を備え、
上記第１の子ノードは、上記時刻同期信号を送信するタイミングに基づいて上記第１の休止状態から第３の動作状態に移行し、
上記第２の子ノードは、上記時刻同期信号を送信するタイミングに基づいて上記第２の休止状態から第４の動作状態に移行し、
上記親ノードの送受信部は、上記時刻同期信号を送信するタイミングで上記時刻同期信号をブロードキャスト送信し、
上記第１の子ノードは、上記第３の動作状態において受信する上記時刻同期信号に含まれる時刻に、自己の時刻を調整し、
上記第２の子ノードは、上記第４の動作状態において受信する上記時刻同期信号に含まれる時刻に、自己の時刻を調整するセンサネットワークシステム。
【請求項９】
請求項８に記載のセンサネットワークシステムであって、
上記時刻同期信号を送信するタイミングを示す信号には、上記時刻同期信号に含まれる時刻を含むセンサネットワークシステム。
【請求項１０】
請求項８に記載のセンサネットワークシステムであって、
上記第１及び第２の子ノードは、時刻調整を行った後、上記調整した時刻及び時間調整幅を含む時刻調整通知を上記親ノードに送信するセンサネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、省電力化のために一定時間間隔で動作状態と休止状態を繰り返す間欠動作を行うセンサノードの利用システムに関し、特に、システム内のセンサノード全体で、あるいは一部の複数のセンサノード間で時刻同期を取る技術に関する。
【背景技術】
【０００２】
近年、センサに無線通信機能を有する小型の電子回路を付加して、現実世界の様々な情報をリアルタイムに情報処理装置に取り込むネットワークシステム（以下、センサネットワークシステムという）が検討されている。
【０００３】
また、センサ機能を搭載した小型無線センサノード(以下、センサノード)、中継機、基地局、及びセンサネット管理サーバ(以下、管理サーバ)から構成されるセンサネットワークシステムの開発が進められている。センサノードは、人又は場所の状態等に関するデータ（センサデータ）を取得し、取得したセンサデータを中継機によりマルチホップに中継し、基地局を経由して管理サーバに送信する。
【０００４】
センサネットワークシステムは、複数のセンサノードのセンサデータを収集し、一括管理して、アプリケーションに応じたデータ処理（解析や表示）をし、様々なサービスを実現する。例えば、ある構造物上である距離を離れた複数箇所に加速度センサノードを設置すると、それぞれの加速度の時間変化から、地震などの揺れに応じた構造物の線、面、３次元の挙動が解析できる。
【０００５】
また、電池駆動を基本とするセンサノードは、低消費電力動作が要求される。そのため、センサノードは、通常間欠動作を行う。これは、センシングやデータ送信のようなタスクを実行する時のみ必要なハードウェアを駆動する動作状態と、実行すべきタスクがない時はマイコン、無線通信機能等を低電力モードで休眠させる休止状態を繰り返す動作である。間欠動作を行うことにより、センサノードは、限られたバッテリの下で長時間動作が可能となる。
【０００６】
このセンサノード各々の時刻調整を行う方法として、親局と子局との間の１対１で、時刻同期を行う方法がある（例えば、特許文献１参照）。
また、前述のセンサノードを個別に時刻同期させる方式に対して、親ノードから送信される同じ時刻同期信号で、複数の子ノードを一斉に時刻同期させる方法がある。一般に、RBS(Reference Broadcast Synchronization)と分類され、短時間で高精度な同期精度が可能である。
【０００７】
【特許文献１】特開2007-005991号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ある構造物上である距離を離れた複数箇所に加速度センサノードを設置して、それぞれの加速度の時間変化から地震などの揺れに応じた構造物の線、面、あるいは三次元の挙動を解析する場合、揺れに対する加速度の値は時刻に対して急激に変化するので、センシングの時刻精度が非常に重要となる。例えば、複数の加速度センサノードそれぞれが100Hzで加速度をサンプリングしている場合、複数のセンサノードのサンプリングデータ間の時刻は少なくとも1/200秒以内のズレに維持するように運用保守する必要がある。
【０００９】
ここで、1/200秒（5ミリ秒）以内は，複数のセンサノードでの加速度データから線上，面上，あるいは三次元上で挙動を正確に解析をする場合に，同時刻でのサンプリングであることの対応付けが可能な精度を取るための制限である。
【００１０】
特許文献１では、親局と子局の間で通信する度に１対１の時刻同期手順を踏んでいる。このように、子局各々を個別に時刻同期させようとした場合、親局が信号を発してから、子局がその信号を受信して時刻調整するまでの所要時間に揺らぎが存在する。  
例えば送信処理において、電波の衝突を避けるためのCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)処理や信頼性向上のための再送処理（ack信号を受信しなかった場合に再送する）が必要であるが、それぞれの処理において規格として未確定（乱数）の遅延時間が発生する。そのため、複数の子局間での時刻同期の要求精度が低い場合、例えば親局と子局の間で通信に必要な時刻同期を実現する場合には適切かもしれないが、子局間の時刻同期精度を高めるのは困難である。そのため、上述したような高頻度で加速度をサンプリングしているような場合の、センサノード間の時刻同期の要求精度を満たすことはできない。
【００１１】
また、同じ時刻同期信号で複数の子ノードを一斉に時刻同期させる方法は、子ノードが常時受信可能な状態であることを前提としており、センサノードの消費電力が大きな問題となる。間欠動作している複数のセンサノード間で、同一の時刻同期信号を確実に受信できるように考慮する必要がある。
【００１２】
そこで本発明は、省電力化のために一定時間間隔で動作状態と停止状態を繰り返す複数のセンサノード間の時刻を、高精度に同期させることを目的とする。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
【００１４】
第１の子ノードは、第１の動作状態と第１の休止状態とを繰り返し、第１の動作状態において第１のセンサデータを取得して親ノードに送信する。第２の子ノードは、第２の動作状態と第２の休止状態とを繰り返し、第２の動作状態において第２のセンサデータを取得して親ノードに送信する。親ノードは、第１及び第２の子ノードの動作間隔に基づいて時刻同期信号を送信するタイミングを設定し、第１及び第２のセンサデータを受信して時刻同期信号を送信するタイミングを示す信号を第１及び第２の子ノードに送信する。第１の子ノードは、時刻同期信号を送信するタイミングに基づいて第１の休止状態から第３の動作状態に移行する。第２の子ノードは、上記時刻同期信号を送信するタイミングに基づいて第２の休止状態から第４の動作状態に移行する。親ノードは、時刻同期信号を送信するタイミングで上記時刻同期信号をブロードキャスト送信する。第１の子ノードは、第３の動作状態において受信する時刻同期信号に含まれる時刻に、自己の時刻を調整し、第２の子ノードは、第４の動作状態において受信する時刻同期信号に含まれる時刻に、自己の時刻を調整する。
【発明の効果】
【００１５】
本発明によれば、複数のセンサノードそれぞれで高頻度に取得されるデータ（例えば加速度センサによる３軸加速度）間の時刻同期を高精度に行うことが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例１】
【００１７】
図１は、複数のセンサノードを用いた多地点観測システムの一構成例である。複数のセンサノード２１０〜２５０、無線基地局１１０、無線中継器（または単に，中継器）１６０，管理サーバ３０、クライアント端末４０からなる。複数のセンサノード２１０〜２５０及び無線基地局１１０，無線中継器１６０は、無線通信可能であり、無線基地局１１０、管理サーバ３０、クライアント端末４０はネットワーク２０で接続されているものとする。なお、複数のセンサノードの個数は５個に限定せず，無線基地局１１０や無線中継器１６０の個数も１個ずつに限定しない。
【００１８】
複数のセンサノードは、電池駆動により間欠動作をしており、センサノード毎に設定された間隔で動作状態と休止状態を繰り返す。起動時には搭載されているセンサ（温度センサ、加速度センサ、照度センサなど）で予め指定されたサンプリング周波数で物理量を観測し、その結果は無線通信により無線基地局１１０まで送信される。観測した物理量は，無線基地局１１０からネットワーク２０を介して、管理サーバ３０へ転送される。
【００１９】
無線基地局１１０，あるいは，無線中継器１６０にはセンサノードが接続されており，無線基地局１１０，あるいは，無線中継器１６０は，接続されているセンサノードの通信ＩＤやその通信ＩＤと対応付けられたセンサノード毎の間欠動作の動作間隔を知る手段を持っている。具体的には，無線基地局１１０，あるいは，無線中継器１６０が，自身で接続されているセンサノードの情報（動作間隔等）を管理してもよいし，管理サーバ３０でセンサノードの情報一括管理しておいて，無線基地局１１０，あるいは，無線中継器１６０が必要時に管理サーバ３０にセンサノードの情報を問合せるようにしても良い。
【００２０】
管理サーバ３０では、送受信部、記憶部、及び制御部（図示省略）を備える。送受信部は、基地局との間で、データの送信及び受信を行う。記憶部は、ハードディスクやフラッシュメモリなどの不揮発記憶装置によって構成され、システム全体の様々な構成情報（センサノードの動作間隔などの動作パラメータ，搭載しているセンサデバイスの種類，各ノードの各種識別子等）、制御部によって実行されるプログラムなどを格納する。制御部は、記憶部に格納されたプログラムを実行することによって、データ解析や管理者による構成情報の設定や更新等を実行する。
【００２１】
クライアント端末４０は，利用者の要求に基づいて，観測データやそれを解析した結果を表示する。すなわち，利用者は、クライアント端末４０を通して、観測データやそれを解析した結果を閲覧できる。
【００２２】
また，ネットワーク２０を広域ネットワークにすることにより，遠隔監視サービスが実現できる。管理サーバ３０を大容量ストレージを共にデータセンタなどに置くことにより，データの蓄積，解析，提供等を含むサービス事業を行うことも可能である。 
図１では、複数のセンサノード２１０〜２５０はある構造物１０に設置してあり、複数センサノードには、少なくとも加速度センサが搭載されている。構造物１０に対して、何らかの振動（例えば、地震）が作用した場合、各地点がそれぞれ揺れを生じ、各センサノード２１０〜２５０の加速度センサがその揺れを検出することが可能であり、検出した揺れの結果を管理サーバ３０に収集することによって、どのような揺れが構造物に発生し、伝わっていったかを解析することができる。
【００２３】
ただし、このような解析を行うためには、収集するセンサデータの時刻情報（または、タイムスタンプ）が高精度に時刻同期が取れている必要がある。例えば、センサノードの加速度センサのサンプリング周波数が100Hzだった場合、複数センサノード間で、サンプリングの周期、すなわち10msec、が正しく区別できる精度で時刻同期が取れている必要がある。
【００２４】
図２Aは、無線基地局１１０及びセンサノード２１０のハードウェア構成例、図２Bは中継器１６０のハードウェア構成例を示す。
【００２５】
無線基地局１１０は、アンテナ１１０１、ＲＦ回路１１０２、電源１１０３、ＭＣ（マイクロコントローラ）１１０４、ＲＴＣ（Real-Time Clock）１１０５、及び不揮発メモリ１１０６，上位通信部１１０７からなり、ＭＣ１１０４上のプログラムにより動作を制御する。
【００２６】
センサノード２１０は、アンテナ２１０１、ＲＦ回路２１０２、電源２１０３、ＭＣ２１０４、ＲＴＣ２１０５、不揮発メモリ２１０６、センサ２１０７からなり、ＭＣ（マイコン，または，マイクロコントローラ）２１０４上のプログラムにより動作を制御する。２１１０から２１１９はプログラムの機能ブロックを示し、休止状態では電源制御部２１１８がＲＴＣ２１０５以外の電源を遮断し、消費電力を抑える。ＲＴＣ２１０５のタイマ割込みによりＭＣ２１０４を駆動し、プログラムに従い、タスク制御部２１１０が動作を制御する。タイマ割込み後に起動したタスク制御部２１１０の動作は，大よそ次の通りである。まず電源制御部２１１８により，電源回路切替I/F（レジスタ）２１１９を操作し，センサノード上の各機能ブロックに電源を供給する。次にセンサ制御部２１１４を介して，センサI/F（レジスタ）を操作し，その結果加速度データを取得する。取得した加速度データは，データ管理部２１１６を介して，不揮発メモリI/F（レジスタ）を操作し，不揮発メモリ２１０６に蓄積される。それと同時にシステム上位へのデータが作成される。数サンプリングの加速度データが溜まると，タスク制御部２１１０は，無線通信部２１１２を介して，RF回路I/F（レジスタ）を操作し，溜まってデータをシステム上位へ向かって無線送信する。こうした一連のサンプリング動作は，タイマ割込みレジスタ２１１１の信号をトリガに実行される。
【００２７】
中継器１６０は、アンテナ１６０１、ＲＦ回路１６０２、電源１６０３、ＭＣ（マイクロコントローラ）１６０４、ＲＴＣ１６０５、及び不揮発性メモリ１６０６からなる。中継器はアンテナを介してセンサデータを受信し、不揮発性メモリ１６０６に蓄積後、基地局１１０に転送される。これらの動作は、ＭＣ上のプログラムにより動作を制御される。
【００２８】
ここで、センサノードの時刻同期を実現する従来の手段は大きく２種類ある。１つは、親ノードが複数の子ノードと個別にデータ通信した上で時刻同期処理を実行する方法、もう１つは、親ノードが発信する信号を複数の子ノードが同時に受信し、時刻同期処理を実行する方法である。
【００２９】
図３は、時刻同期を実現するための従来の一例を表すシーケンス図であり、親ノードと子ノードとが１対１で時刻同期する場合を説明している。図３では、時刻情報を提供するノードを親ノード（Parent Node）、時刻情報を受けるノードを子ノード（Child Node）とする。また，図３のシーケンス図では、親ノードと子ノードの動作シーケンスをアプリ部（Appli）と無線部（RF）に分けている。アプリ部はノードの動作制御を司る部分であり、無線部はアプリ部の指示を受けて、無線の送受信処理を実行するモジュールである。無線部はネットワーク階層構造のＭＡＣ層（Media Access Control Layer）を表している。ここで，アプリ部（Appli）と無線部（RF）に分けているのは一般的な分け方の１つである。
【００３０】
親ノード（Parent Node）では、あるタイミングで時刻同期要求（Time-Sync-Request 301）が発生する。その後で、子ノード（Child Node）のアプリ部では自分宛のデータの有無を無線部経由で問合せる（Data-Polling 701）。親ノードの無線部（RF）は，子ノードからデータ要求のメッセージ（Data-Request-CMD 601）を無線通信で受け取ると、確認のための信号（ACK 602）を無線通信ですぐに返す。親ノードのアプリ部（Appli）は無線部からデータ要求メッセージ（Data-Request-CMD 302）が転送されてくると，自分の保持しているRTCから現在時刻Ｔ１を取得し（Get Time 401）、その時刻情報Ｔ１を子ノードに送信するように無線部に指示する（Time-Sync-CMD(T1) 303）。そして，親ノードの無線部は，子ノードに対して，時刻同期コマンド（Time-Sync-CMD(T1) 603）を無線通信で送信する。時刻同期コマンドを受信した子ノードの無線部は，時刻同期コマンド(Time-Sync-CMD(T1) 303)をアプリ部に転送し、アプリ部は自分の時刻をＴ１に設定する（Set Time(T1) 801）。また、時刻同期コマンドを受信した子ノードの無線部は、確認のメッセージ（ACK602）を親ノードに送信し、当該メッセージを受信した親ノードの無線部は、アプリ部に時刻同期コマンドが送信されたことを示す信号(Time-Sync-CMD-Sent 304)を送信する。
【００３１】
ここで、子ノードがデータ要求のメッセージを無線で送信しようとしたとき、及び、親ノードが時刻情報を含むメッセージを無線で送信しようとしたときに、無線送信処理で不確定な所要時間がかかり，時刻同期精度の揺らぎの原因となる。この不確定な所要時間とは、CSMA/CA処理によるものである。
【００３２】
CSMA/CA処理を使ったメッセージ送信の概要は、次の通りである。データを伝送しようとするデバイスはまずチャンネル上で通信が行われていないかどうかを確認する。通信を検出するとランダムな長さの待ち時間の後に、もう一度起動して通信の有無を確認することを数回繰り返す。そして、チャンネルが空いていればメッセージを送信する。繰り返す回数は規格により決まっていたり、実装依存であったりして一意には決まっていない。この繰り返し回数が、時刻調整にかかる所要時間，すなわち時刻同期精度の揺らぎの原因の一つとなる。
【００３３】
あるデバイスが、他のデバイスに対して現在の時刻を通知しようとした場合、待ち時間の繰り返しは、送信元のアプリ部で時刻をエンコードした後、無線部で実際にチャンネルの空きを検出して送出されるまでの間に入る処理である。この所要時間をメッセージ受信側で知る術はなく、受信側での補正が不可能である。なお、揺らぎがある所要時間は、例えば０秒から数十ミリ秒である。
【００３４】
なお、CSMA/CA処理でチャンネルが空いたことを確認してから、送信する時刻をメッセージにエンコードする手順も考えられるが、これではエンコードしている間に他のデバイスがチャンネルを使ってしまう可能性があり、CSMA/CAの本来の目的が達成できなくなってしまう。
【００３５】
不確定な所要時間には、ＣＳＭＡ／ＣＡにおけるＣＣＡ（Clear Channel Assessment）という無線チャンネルの利用状況を確認する手順が含まれている。ＣＣＡは、IEEE 802.11やIEEE 802.15.4などの無線通信の規格で定められた動作手順である。ＲＦ部は、無線でデータ送信しようとする際にＣＣＡを実行し（Check CCA 501）、その結果無線チャンネルが使用されていなければ、その直後に送信したいデータを無線送信するが、無線チャンネルが使用されている状況であれば、ランダム時間待機した後に再度ＣＣＡを実行する。ＣＣＡは、無線チャンネルの未使用状態を検出するまで、あるいは、規定の回数に達するまで繰り返し実行される。
【００３６】
図３の上半分では、子ノードからの無線送信時はＣＣＡを１回のみで無線チャンネルの未使用状態を検出し、親ノードからの無線送信時はＣＣＡを３回実行して無線チャンネルの未使用状態を検出した例を示している。すなわち、ＣＣＡを何回実行するかは、そのときの無線チャンネル空間の状況により、一定ではない。また、この回数を通常は受信側で判断できる手段がない。また、図３の下半分では、親ノードからの時刻同期コマンド（Time-Sync-CMD(T2) 603）に対する確認のメッセージ（ACK 602）が親ノードで確認できず、親ノードではACK信号待ちが時間切れとなった（ACK Time-out 502）後，同じ時刻同期コマンドを再送しているケースを示している。
【００３７】
図３の上半分と下半分のそれぞれのケースのように，ＣＣＡ処理の実行回数が異なったり，コマンドの再送処理の有無の差があるために，親ノードから時刻同期コマンド（Time-Sync-CMD 603）を送信して子ノードに時刻情報が届くまでの所要時間（遅延時間 Time Error）は一定になり得ない。また，図３の上半分及び下半分のいずれの場合でも、子ノードが遅延時間（Time Error）を知る術はない。したがって、この手順で複数のセンサノードが個別に親ノード（無線基地局）と時刻同期を取ろうとした場合に、少なくとも遅延時間のばらつきによる誤差は避けられない。ＣＣＡを繰り返す周期は、例えば数msecから数十msecであり、例えば100Hzのような高頻度で加速度をサンプリングしている場合には、この誤差は許容範囲を超えており、時刻同期手段としては要求精度を満たさない。なお、温度などを1Hzよりも低頻度でサンプリングするような場合には、図３の従来の方式でも対応可能である。
【００３８】
次に、従来のもう１つの方法の課題を説明する。親ノードが発信する信号を複数の子ノードが同時に受信し、複数の子ノードが一斉に時刻同期処理を実行する方法は、子ノードが同一の信号で一斉に時刻同期処理をするため、子ノード間の遅延時間のばらつきは問題にしなくてもよい。ただし、親ノードが信号を発信する段階で、対象となる子ノードが全て受信可能状態になければ効果がない。ところが、間欠動作をするセンサノードでは、常時無線を受信可能な状態に維持することは消費電力の観点で困難であり、上記方法を単純に適用することはできない。
【００３９】
図４は、本実施例による時刻同期方式を、１つの親ノード（Parent Node）１１０が２台の子ノード（Child Node）２１０及び２２０を同時に時刻同期させる場合を例に説明するシーケンス図である。ここで、親ノードは、図１の無線基地局１１０又は中継器１６０、子ノードは、センサノード２１０〜２５０に相当する。
【００４０】
なお，図４では，ネットワーク階層の第２層（MAC層: Media Access Control層）よりも一段上の層でのシーケンス図としているため，親ノードと子ノードのいずれにおいてもアプリ部（Appli）と無線部（RF）の区別を表現しておらず，Acknowledge信号も記載していない。これは、ＣＣＡ処理を行った場合でも子ノード間の遅延時間のばらつきが発生しないため、省略したものである。
【００４１】
さらにまた，親ノードと子ノードのいずれにおいても無線部（RF）において，送信時には無線通信フレームへのエンコード，受信時には無線通信フレームからのデコード処理を行う。
【００４２】
子ノードは、子ノード毎に決められた間隔で間欠的に動作しており、１回の動作では起動後にセンサを動作させ加速度を観測し（sensing ８０２），無線部を動作させて（RF-working ８０３），観測データを親ノードに送信（Data-Sending ６０４）した直後に、続けてデータ要求メッセージ（Data-Req-CMD ６０１）を親ノードに送信する。
【００４３】
一方、親ノード１１０は、あるタイミングで時刻同期要求（Time-Sync-Request３０１）が発生すると、次に時刻同期信号をブロードキャスト送信するタイミング（子ノードが次に動作状態に移行するタイミング）を、子ノードの動作間隔に基づいて予め決めておく（Decide Time To Sync, 402）。この時刻同期要求は、定期的にタイマにより発生したり、上位システム（例えば、図１における管理サーバ３０）から時刻同期の指示を受けて発生したりする。親ノード１１０は、時刻同期要求が発生している（すなわち、時刻同期信号をブロードキャスト送信するタイミングが決まっている）状態で、１つの子ノード（Child Node #1）２１０からデータ要求メッセージ（Data-Req-CMD ６０１）を受け取ると、時刻同期のタイミングをその時点からの相対時間（T1）として計算し（Calculate Time ４０３），その時間（T1）を通知するメッセージ（Wakeup-later-CMD(T1) ６０５）を子ノード＃１に送信する。
【００４４】
その相対時間（T1）を受信した子ノード２１０は、その時間（T1）経過後に起動するようにタイマセットして休止状態に移行する。
【００４５】
もう１つの子ノード（Child Node #2）２２０が観測データ送信（Data Sending ６０４）後にデータ要求メッセージ（Data-Req-CMD ６０１）を送信した場合も同様に、親ノード１１０は時刻同期信号をブロードキャスト送信するタイミングをその時点からのの相対時間（T2）として通知するメッセージ（Wakeup-later-CMD(T2) ６０６）をその子ノード２２０に送信し、子ノード２２０はその時間（T2）経過後に起動するようにタイマセットして休止状態に移行する。
【００４６】
そして、親ノードが時刻同期信号（Time-Sync-CMD(T)６０７）をブロードキャスト送信するタイミングで、全ての子ノード（図４ではChild Node #1 ２１０とChild Node #2 ２２０）は動作状態に移行し、無線受信可能状態になっており、時刻同期信号を受信した子ノードは一斉に時刻Ｔに時刻を調整する(Set Time (T))。
なお、親ノードが子ノードからデータ要求メッセージを受信した時点からの相対時間を計算する例について説明したが、センサデータを受信した時点からの相対時間を計算してもよい。つまり、親ノードがセンサデータを受信して相対時間を送信することにより、子ノードはデータ要求メッセージを送信しなくても時刻調整を行うことが可能となる。これにより、さらなる消費電力の低減を図ることができる。
【００４７】
このように，親ノードにおいて時刻同期を行うタイミングを決め，そのタイミングを予め各子ノードに通知するメッセージを導入する。そして、間欠動作を行う複数の子ノードに対して一斉に時刻同期信号をブロードキャスト送信する。これにより、子ノードの低消費電力を維持することができ、かつ、子ノード間の遅延時間のばらつきがないため、複数の子ノード間で高精度な時刻同期が可能となる。 
また，それぞれの子ノードのマイコンが数MHzの動作クロックで動作していることを前提とした場合，時刻同期信号を受信してから実際に子ノード自身の時刻を調整するタイミングの個体差は数サイクル（数マイクロ秒）程度になるので，1/200秒（5ミリ秒）以内に抑えることが十分に可能である。
【００４８】
なお、親ノードが子ノードに相対時間を通知するメッセージ（Wakeup-later-CMD ６０５及び６０６）において、同時に時刻同期信号をブロードキャスト送信する時刻（Ｔ）を予め含めて通知しておいてもよい。こうすることによって、時刻同期信号（Time-Sync-CMD ６０７）を受信する際の時刻情報のデコード処理を事前に実施しておくことができ、時刻設定時の親ノードとの遅延を小さくすることが可能である。
【００４９】
また、通常，時刻を刻むＲＴＣの動作タイミングを決めるクロック・モジュール（水晶振動子と発振回路からなる電子部品）には個体差があるため，上記の時刻同期処理を、所定の間隔が経過した場合に実行することが望ましい。ここでの所定の間隔とは、子ノードが行うセンシングの間隔とは異なり、加速度センサのサンプリング周波数が100Hzである場合、複数のセンサノード間でサンプリング周期10msecが正しく区別できる精度を保つことを可能にする間隔である。
【００５０】
この時刻同期処理を実行する間隔は、子ノードの持つクロック・モジュールの精度に基づいて予め決定し，システムにパラメータを組み込んでおく。例えば，センサノードが部品として採用しているクロック・モジュールの精度に関する仕様（通常製品のデータシートに記載されている）から，タイマのズレが最大10msecになり得る時間を求め，それより短い適当な時間間隔でTime-Sync-Requestを発生させることが考えられる。一般的にはこの間隔は数時間で，１日に数回程度の時刻同期処理が必要になると考えられる。
【００５１】
なお、図４では、説明を簡単にするために子ノードの数を２台としているが、言うまでもなく２台に限定しない。
【００５２】
次に、親ノードが時刻同期信号（Time-Sync-CMD(T) ６０７）をブロードキャスト送信する時刻Ｔを決める方法を詳しく説明する。図１で説明したように、（１）親ノードは自分に接続している子ノードを通信ＩＤ（通信フレーム内に含まれている）で管理している。（２）各子ノードは、子ノード毎に決められた間隔で間欠動作している。（３）親ノードは自分に接続している全ての子ノードのそれぞれの間欠動作の間隔（動作周期）を知っている（前述した通り，間欠動作の間隔は、構成管理機能を持っている管理サーバに問合せてもよいし、親ノードが管理していても良い）。
【００５３】
このとき、次の手順で時刻Ｔを決定する。親ノードは、時刻同期要求が発生すると、自分に接続している子ノード全ての動作周期の最大値を求め、現時刻から、その最大値の時間に適当なマージン時間を加えた時間経過後のタイミングを時刻同期信号(Time-Sync-CMD ６０７)の送信タイミングＴとする。
【００５４】
なお、子ノード側で、センサによるセンシング処理と時刻同期信号を受信するタイミングが重なってしまう場合は、時刻にズレがある状態ではセンシングデータの価値が下がるため、時刻同期処理を優先すると良い。
【実施例２】
【００５５】
次に、実施例１に時刻同期検証ステップを追加した第２の実施例について説明する。
【００５６】
図５は実施例２の動作を示すシーケンス図である。図４との違いは、子ノード＃１及び＃２が、親ノードから時刻同期信号（Time-Sync-CMD(T) ６０７）を受信した直後に、その時刻同期信号によって時刻調整をしたことを示す時刻調整通知を送信している点である。具体的には、調整した時刻Ｔ、及び、調整した際に生じていた時刻のズレ（Δt1及びΔ
t2）を通知する（Data-sending (T、Δt1)６０８、 Data-sending (T、Δt2)６０９）。
【００５７】
これにより、親ノードは、自分が管理している子ノード全てが時刻同期できたか否かを検証できる。したがって、システムの信頼度が高くなる。例えば，親ノードは，一部の子ノードから時刻調整通知（６０８あるいは６０９に相当）が届かない場合（事前に設定した所定の時間受信しない場合）は、時刻同期信号（６０７）をブロードキャスト送信する時刻を再設定して、手順を最初から実行しても良い。これにより、時刻同期の信頼性を向上することが可能となる。
【００５８】
また，これらの時刻同期状況は，親ノードが管理サーバ３０に結果を通知し，管理サーバが管理することができる。管理サーバが時刻同期状態テーブルを用いてセンサノードの時刻同期状況を管理する例について、図６を用いて説明する。図６においては，センサノードのIDに対応づけて、”Sync-Failed”と”Latest Sync-Time Reported”と”Latest Time 
Error”が記録されている。”ID”はセンサノードの識別子を表し，”Sync-Failed”は各センサノードが時刻同期に連続して失敗した回数，”Latest Sync-Time Reported”は各センサノードが最後に時刻同期を実行した時刻，”Latest Time Error”は”Latest Sync-Time Reported”に調整した際の時間のズレを表す。
【００５９】
次に、図６のテーブルの作成手順及び更新手順を説明する。テーブルの作成はシステム構築時に，システム構成管理の一環でシステムに含まれるセンサノード全てに対応するエントリを作成しておく。システムの運用中において，Time-Sync-Request301が発生した際に，対象となる全てのセンサノードの”Sync-Failed”の値を＋１インクリメントしておく。管理サーバは，親ノード経由でセンサノード時刻調整通知を受けると，”Sync-Failed”の値を１削減して，”Latest Sync-Time Reported”及び”Latest Time Error”を更新する。
【００６０】
管理サーバは、図６のテーブルをシステム構成管理情報の一部として管理してもよい。管理サーバでは，図６に示すテーブルを参照することにより、各センサノードから収集する観測データに付加されている時刻情報の信頼度を確認でき、アプリケーションがデータを活用してよいかどうかの判断指標に活用できる。例えば、Sync−Failedが所定値より大きい場合、Last Sync−Time Reported以降のタイムスタンプが付いている観測データを解析データとして用いるか否かを決定してもよい。具体的には，管理サーバは、アプリケーションの要求としての時刻同期精度を確認し，”Sync-Falied”の値が１以上の場合であって，”Latest Time Error”の値が要求される時刻精度より大きいとき，管理サーバは、”Last Sync-Time Reported”以降のタイムスタンプが付与されている観測データを用いないで解析するようにする。これにより，データの信頼性を保証する効果がある。
【００６１】
さらにまた、図６の時刻同期状態テーブルの”Last Time Error”の値の分布を用いて、必要な時刻同期精度を維持するための定期的な時刻同期処理の間隔を最適化することが可能となる。すなわち，定期的に時刻同期処理を実行しつつしばらく試験運用した後で，各センサノードの”Time Error”の値を確認し，その値がシステムが要求する時間精度よりも大きい場合は，時刻同期処理を実行する間隔を短くする方向に調整し，逆にその”Time Error”の値が要求する時間精度よりも小さい場合は，時刻同期処理の間隔を長くする方向に調整することが考えられる。
【００６２】
なお、親ノードが、例えばＧＰＳ(Global Positioning System)や電波時計などで標準時刻に同期を取る機能を備えていれば、ＧＰＳや電波時計が提供可能な時刻同期精度で、絶対時刻に対する同期精度も上げることができる。こうすることによって、より広域な範囲（例えばマルチホップの範囲）のセンサノード間の時刻同期精度を向上できる。
【００６３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものでなく、種々変形実施可能であり、上述した各実施形態を適宜組み合わせることが可能であることは、当業者に理解されよう。
【産業上の利用可能性】
【００６４】
本発明は，構造物の地震などの揺れに対する応答解析のデータ収集に用いることが可能である。特に有線センサの設置が困難な場合に有効である。
【図面の簡単な説明】
【００６５】
【図１】センサネットワークシステム構成図の一例
【図２Ａ】無線基地局及びセンサノードのハードウェア構成図の一例
【図２Ｂ】無線中継器のハードウェア構成図の一例
【図３】従来例である親ノードと子ノードが１対１である時刻同期処理のシーケンス図の一例
【図４】実施例１の時刻同期処理のシーケンス図の一例
【図５】実施例２の時刻同期処理のシーケンス図の一例
【図６】実施例２の時刻同期状態テーブルの一例
【符号の説明】
【００６６】
１０…構造物
２０…ネットワーク
３０…管理サーバ
４０…クライアント端末
１１０…無線基地局
１６０…無線中継器
２１０、２２０、２３０、２４０、２５０…センサノード
【図１】
2010016576.tif 000003
【図２Ａ】
2010016576.tif 000004
【図２Ｂ】
2010016576.tif 000005
【図３】
2010016576.tif 000006
【図４】
2010016576.tif 000007
【図５】
2010016576.tif 000008
【図６】
2010016576.tif 000009