(57)【特許請求の範囲】
【請求項１】
送信対象のノード装置の通信状況を監視し、前記送信対象のノード装置が他のノード装置と通信を行っている場合には、前記送信対象のノード装置にパケットを送信することを待機し、前記送信対象のノード装置が他のノード装置と通信を行っていない場合には、前記送信対象のノード装置にパケットを送信する送信部と、
自ノード装置の基準時間を送信対象のノード装置に通知する場合には、自ノード装置から前記送信対象のノード装置までの伝送遅延時間に、前記送信部の待機時間を加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自ノード装置から中継先のノード装置までの伝送遅延時間と、前記送信部の待機時間とを加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する遅延時間調整部と
を有することを特徴とするノード装置。
【請求項２】
前記遅延時間調整部は、パケットのデータ量と伝送レートとを基にして、前記伝送遅延時間を算出することを特徴とする請求項１に記載のノード装置。
【請求項３】
前記上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合に、前記基準時間と前記伝送遅延時間とを加算した時間に基づいて、自ノード装置の基準時間を補正する補正部を更に備えたことを特徴とする請求項１または２に記載のノード装置。
【請求項４】
複数のノード装置が無線通信によってパケットを伝送し、各ノード装置で時間を同期する時間同期システムであって、
前記ノード装置は、
送信対象のノード装置の通信状況を監視し、前記送信対象のノード装置が他のノード装置と通信を行っている場合には、前記送信対象のノード装置にパケットを送信することを待機し、前記送信対象のノード装置が他のノード装置と通信を行っていない場合には、前記送信対象のノード装置にパケットを送信する送信部と、
自ノード装置の基準時間を送信対象のノード装置に通知する場合には、自ノード装置から前記送信対象のノード装置までの伝送遅延時間に、前記送信部の待機時間を加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自ノード装置から中継先のノード装置までの伝送遅延時間と、前記送信部の待機時間とを加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する遅延時間調整部と
を有することを特徴とする時間同期システム。
【請求項５】
コンピュータが実行する時間同期方法であって、
自コンピュータの基準時間を送信対象のノード装置に通知する場合には、自コンピュータから前記送信対象のノード装置までの伝送遅延時間に、パケットを送信するまで待機した待機時間を加算し、基準時間と伝送遅延時間とをパケットに格納して、該パケットを送信し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自コンピュータから中継先のノード装置までの伝送遅延時間と、前記待機時間とを加算し、基準時間と伝送遅延時間とをパケットに格納して、該パケットを送信することを特徴とする時間同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード装置等に関する。
【背景技術】
【０００２】
近年、水位や温度などを計測するノード装置を複数箇所に配置し、各ノード装置の計測結果を収集するセンサーネットワークが存在する。このセンサーネットワークでは、各ノード装置を有線で接続するとケーブルを敷設する作業が大変である。このため、センサーネットワークでは、各ノード装置を無線で接続し、各ノード装置をバッテリー駆動させることが多い。
【０００３】
ここで、ノード装置をバッテリー駆動させると、管理者はノード装置のバッテリーを定期的に交換することになる。ノード装置のバッテリーの消費が激しいと、管理者がノード装置のバッテリーを交換する頻度が高くなってしまうため、ノード装置の消費電力を低減させることが求められる。
【０００４】
ノード装置の消費電力を低減させる方法として、スリープ機能を利用するものがある。ここで、センサーネットワークのネットワークトポロジーが、マルチホップ型のネットワークトポロジーであった場合、管理装置からの制御信号により、全てのノード装置のスリープ状態を制御することは難しい。このため、センサーネットワークに含まれる各ノード装置の時間を同期させ、定期的にスリープ状態への移行、スリープ状態の解除を行うように設定することで、消費電力を低減させることができる。
【０００５】
センサーネットワークの各ノード装置が時刻を同期させる方法について説明する。センサーネットワークのネットワークトポロジーは、マルチホップ型のネットワークトポロジーであるため、各ノード装置が時間情報を配下のノード装置に伝送する。各ノード装置は受信した時間情報を利用して時間同期を行うことになる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】鄭立、Zigbee開発ハンドブック、非ビーコン・ネットワークのデータ伝送モデル、第１版、株式会社リックテレコム、２００６年２月、８９頁
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、各ノード装置間で、正確に時刻を同期させることができないという問題があった。このように、各ノード装置間で正確に時刻を同期させることができないと、効率的に消費電力を低減させることができない。
【０００８】
まず、時間が同期していない場合の問題を説明した後に、時間が同期できない理由の一例を示す。図１９は、時間が同期していない場合の問題点を説明するための図である。図１９に示す例では、ノード１０ａ〜１０ｆが無線により接続されている。ここでは、ノード１０ａ〜１０ｄと、ノード１０ｅ、１０ｆとで時間が同期していないものとする。この場合には、ノード１０ａ〜１０ｄのスリープ状態が解除されるタイミングと、ノード１０ｅのスリープ状態が解除されるタイミングとが異なる。このため、例えば、ノード１０ａ〜１０ｄのスリープ状態が解除されている期間に、ノード１０ｅ、１０ｆがスリープ状態となっており、図１９に示すように、ノード１０ｂとノード１０ｅとの間で通信を行うことができなくなる。
【０００９】
次に、時間が同期できない理由の一例について説明する。時間が同期できない理由は、時間情報を伝送する場合に、伝送遅延が発生するためである。
【００１０】
図２０は、伝送遅延を説明するための図である。図２０に示すように、このセンサーネットワークには、ノード装置１０ａ〜１０ｄが含まれ、ノード装置１０ａ、１０ｂ、１０ｃ、１０ｄの順に、時間情報１ａが転送されるものとする。ノード間の伝送遅延を１秒とすると、ノード装置１０ａからノード装置１０ｂに時間情報が転送されるまでに、１秒の転送遅延２ａが発生する。また、ノード装置１０ｂからノード装置１０ｃに時刻情報が転送されるまでに、１秒の転送遅延２ｂが発生する。また、ノード装置１０ｃからノード装置１０ｄに時間情報が転送されるまでに、１秒の転送遅延２ｃが発生する。
【００１１】
図２０に示したように、伝送遅延を考慮しないで、ノード装置１０ａ〜１０ｄで時間を同期させると、ノード装置１０ａの時間とノード装置１０ｂの時間との間で１秒のずれが生じる。同様に、ノード装置１０ａの時間とノード装置１０ｃの時間との間で２秒のずれが生じ、ノード装置１０ａの時刻とノード装置１０ｄの時刻との間で３秒のずれが生じる。このため、伝送遅延を考慮して各ノード装置間で時間を同期させることが重要になる。
【００１２】
伝送遅延を測定する技術としては、ＮＴＰやＳＮＴＰといった一般的なプロトコルが実現している、通信開始前に測定パケットを相手のノードに送信し、相手のノードからの折り返し応答を待って伝送遅延を計測するものがある。しかし、この技術では、通信を行うたびに伝送時間を計測するため非効率である。
【００１３】
このように従来技術では、伝送遅延を正確に計測するために、パケットを往復させることで消費電力が増大する。従って、伝送遅延の影響を受けない程度に、スリープ期間を短めに設定することで、消費電力を低減するしかなく、効率的に消費電力を低減させているとは言い難かった。
【００１４】
開示の技術は、上記に鑑みてなされたものであって、正確に時間を同期させることができるノード装置等を提供することを目的とする。なお、上記課題は、センサーネットワークに限らず、マルチホップ型のネットワークトポロジーとなるネットワークで時間を同期する場合にも同様に発生する課題である。
【課題を解決するための手段】
【００１５】
開示のノード装置は、送信対象のノード装置の通信状況を監視し、前記送信対象のノード装置が他のノード装置と通信を行っている場合には、前記送信対象のノード装置にパケットを送信することを待機する。また、開示のノード装置は、前記通信対象のノード装置が他のノード装置と通信を行っていない場合には、前記送信対象のノード装置にパケットを送信する。また、開示のノード装置は、自ノード装置から前記送信対象のノード装置までの伝送遅延時間に、前記送信部の待機時間を加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する。または、開示のノード装置は、該伝送遅延時間に、自ノード装置から中継先のノード装置までの伝送遅延時間と、前記送信部の待機時間とを加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する。
【発明の効果】
【００１６】
開示のノード装置によれば、正確に時間を同期することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本実施例にかかるセンサーネットワークのシステム構成を示す図である。
【図２】図２は、中継ノード装置の構成を示す機能ブロック図である。
【図３】図３は、要求パケットのデータ構造を示す図である。
【図４】図４は、応答パケットのデータ構造を示す図である。
【図５】図５は、同報パケットのデータ構造を示す図である。
【図６】図６は、ノード装置の構成を示す機能ブロック図である。
【図７】図７は、中継ノード装置の処理手順を示すフローチャートである。
【図８】図８は、中継ノード装置におけるパケットのデータの変化を説明する図である。
【図９】図９は、ノード装置の処理手順を示すフローチャートである。
【図１０】図１０は、時間反映処理の処理手順を示すフローチャートである。
【図１１】図１１は、中継処理の処理手順を示すフローチャートである。
【図１２】図１２は、ノード装置がパケットを中継する場合のパケットのデータの変化を説明する図である。
【図１３】図１３は、センサーネットワークの全体の処理手順を示すフローチャートである。
【図１４】図１４は、図１３に示した要求パケットの基準時間および伝送遅延時間を示す図である。
【図１５】図１５は、センシングデータを収集するセンサーネットワークの処理手順を示すフローチャート（１）である。
【図１６】図１６は、センシングデータを収集するセンサーネットワークの処理手順を示すフローチャート（２）である。
【図１７】図１７は、同報パケットによってノード装置の時間が同期される場合の処理を説明するための図である。
【図１８】図１８は、要求パケットをユニキャストすることでノード装置の時間が同期される場合の処理を説明するための図である。
【図１９】図１９は、時間が同期していない場合の問題点を説明するための図である。
【図２０】図２０は、伝送遅延を説明するための図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示するノード装置、時間同期システム、時間同期方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１９】
本実施例にかかるセンサーネットワークのシステム構成について説明する。図１は、本実施例にかかるセンサーネットワークのシステム構成を示す図である。図１に示すように、このセンサーネットワークは、ノード装置１００ａ〜１００ｇ、中継ノード装置２００、集約サーバ３００を有する。
【００２０】
ノード装置１００ａ〜１００ｇは、水位や温度などを定期的に計測する装置である。ノード装置１００ａ〜１００ｇが計測したデータをセンシングデータと表記する。ノード装置１００ａ〜１００ｇは、センシングデータを中継ノード装置２００に通知する。
【００２１】
また、ノード装置１００ａ〜１００ｇでは、上位のノード装置から下位のノード装置に、時間に関する情報を含んだパケットを順に伝送することで、時間を同期させる。ノード装置１００ａ〜１００ｇの詳細な処理は後述する。
【００２２】
ところで、ノード装置１００ａ〜１００ｇは、隣接するノード装置または中継ノード装置２００と無線通信を行う。例えば、ノード装置１００ａ〜１００ｇは、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式に基づいて無線通信を行うものとする。
【００２３】
例えば、ノード装置１００ａは、中継ノード装置２００、ノード装置１００ｂと無線通信を行う。ノード装置１００ｂは、ノード装置１００ａ、１００ｃ、１００ｄと無線通信を行う。ノード装置１００ｃは、ノード装置１００ｂと無線通信を行う。ノード装置１００ｄは、ノード装置１００ｂと無線通信を行う。ノード装置１００ｅは、中継ノード装置２００、ノード装置１００ｆと無線通信を行う。ノード装置１００ｆは、ノード装置１００ｅ，１００ｇと無線通信を行う。ノード装置１００ｇは、ノード装置１００ｆと無線通信を行う。なお、本実施例では、各ノード装置間の距離を１ｋｍ程度とする。
【００２４】
中継ノード装置２００は、ノード装置１００ａ〜１００ｇからセンシングデータを収集し、収集したセンシングデータを集約サーバ３００に通知する装置である。また、中継ノード装置２００は、有線ネットワーク５０を介して集約サーバ３００に接続され、集約サーバ３００との間で時間を同期させる。そして、中継ノード装置２００は、時間に関する情報を含んだパケットをノード装置１００ａ、１００ｅに送信する。
【００２５】
集約サーバ３００は、中継サーバ装置２００からセンシングデータを受信し、センシングデータをデータベースに保存する装置である。管理者は、入力装置等を用いて集約サーバ３００を操作することで、センシングデータを確認することができる。また、集約サーバ３００は時刻管理機能を有し、自身の時間情報を中継ノード装置２００に通知する。
【００２６】
次に、図１に示した中継ノード装置２００、ノード装置１００ａ〜１００ｇの構成について説明する。
【００２７】
図２は、中継ノード装置２００の構成を示す機能ブロック図である。図２に示すように、中継ノード装置２００は、有線インターフェース部２１０、有線通信制御部２２０、時間管理部２３０、センシングデータ要求部２４０、時間同期制御部２５０、伝送遅延時間算出部２６０、無線インターフェース部２７０を有する。
【００２８】
有線インターフェース部２１０は、集約サーバ３００との間で有線による通信を行う処理部である。有線インターフェース部２１０は、集約サーバ３００から受信したデータを、有線通信制御部２２０に出力する。この集約サーバ３００から受信するデータには、例えば、集約サーバ３００の時間情報が含まれる。また、集約サーバ３００から受信するデータには、センシングデータの収集要求が含まれる。
【００２９】
また、有線インターフェース部２１０は、有線通信制御部２２０から取得したデータを集約サーバ３００に送信する。この有線通信制御部２２０から取得するデータには、センシングデータ等が含まれる。
【００３０】
有線通信制御部２２０は、集約サーバ３００からのデータに応答して、センシングデータの収集や時間管理部２３０の時間を修正する処理部である。
【００３１】
有線通信制御部２２０は、集約サーバ３００からのデータにセンシングデータの収集要求が含まれている場合には、センシングデータの収集要求をセンシングデータ要求部２４０に出力する。ノード装置１００ａ〜１００ｇのセンシングデータは、センシングデータ要求部２４０によって収集させる。有線通信制御部２２０は、センシングデータ要求部２４０からセンシングデータを取得し、センシングデータを有線インターフェース部２１０に出力する。
【００３２】
有線通信制御部２２０は、集約サーバ３００からのデータに時間情報が含まれている場合には、この時間情報と同じ時間となるように時間管理部２３０の時間を修正する。
【００３３】
時間管理部２３０は、時計機能を有し、自中継ノード装置２００の時間を管理する処理部である。センサーネットワークのノード装置１００ａ〜１００ｇは、この時間管理部２３０の時間と同期するように処理を行うことになる。以下の説明において、時間管理部２３０の時間を基準時間と表記する。
【００３４】
センシングデータ要求部２４０は、センシングデータの収集要求を取得した場合に、各ノード装置にセンシングデータを要求するための要求パケットを生成する処理部である。センシングデータ要求部２４０は、要求パケットを時間同期制御部２５０に出力する。
【００３５】
ここで、センシングデータ要求部２４０が生成する要求パケットのデータ構造について説明する。図３は、要求パケットのデータ構造を示す図である。図３に示すように、この要求パケットは、無線ヘッダ、基準時間、伝送遅延時間、センシング要求を含む。
【００３６】
ここで、無線ヘッダは、宛先となるノード装置のアドレスと、送信元となる中継ノード装置２００のアドレスとを含む。例えば、センシングデータ要求部２４０は、各ノード装置１００ａ〜１００ｇのアドレステーブルを保持し、このアドレステーブルを利用して、無線ヘッダに宛先となるノード装置のアドレスを設定する。センシングデータ要求部２４０は、要求パケットを、複数のノード装置に送信する場合には、送信対象となるノード装置の数だけ要求パケットを生成し、各要求パケットの無線ヘッダに送信対象となるノード装置のアドレスをそれぞれ設定する。
【００３７】
基準時間は、時間管理部２３０の基準時間に対応する。この基準時間は、時間同期制御部２５０によって設定される。伝送遅延時間は、要求パケットを伝送する場合に発生する遅延時間に対応する。この伝送遅延時間は、伝送遅延時間算出部２６０に設定され、無線インターフェース部２７０によって補正される。センシング要求は、要求パケットがセンシングデータを要求している旨を示す情報である。
【００３８】
センシングデータ要求部２４０は、要求パケットをノード装置に送信した後に、宛先のノード装置から応答パケットを受信する。センシングデータ要求部２４０は、応答パケットに含まれるセンシングデータを、有線通信制御部２２０に出力する。
【００３９】
ここで、応答パケットのデータ構造について説明する。図４は、応答パケットのデータ構造を示す図である。図４に示すように、この応答パケットは、無線ヘッダ、センシングデータを含む。この無線ヘッダは、応答パケットの送信元となるノード装置のアドレスが含まれる。
【００４０】
図２の説明に戻る。時間同期制御部２５０は、配下のノード装置１００ａ〜１００ｇに基準時間を通知する処理部である。ここでは、時間同期制御部２５０が、ユニキャストメッセージによって基準時間を通知する処理とブロードキャストメッセージによって基準時間を通知する処理について順に説明する。
【００４１】
まず、ユニキャストメッセージによって基準時間を通知する処理について説明する。時間同期制御部２５０は、センシングデータ要求部２４０から要求パケットを取得した場合に、ユニキャストメッセージによって基準時間を通知する。時間同期制御部２５０は、要求パケットを取得した場合に、時間管理部２３０から基準時間を取得する。そして、時間同期制御部２５０は、基準時間を要求パケットに格納し、要求パケットを伝送遅延時間算出部２６０に出力する。
【００４２】
次に、ブロードキャストメッセージによって基準時間を通知する処理について説明する。時間同期制御部２５０は、一定時間毎、または、所定の時間に同報パケットを生成する。
【００４３】
同報パケットのデータ構造について説明する。図５は、同報パケットのデータ構造を示す図である。図５に示すように、この同報パケットは、無線ヘッダ、基準時間、伝送遅延時間を含む。この無線ヘッダには、ブロードキャストメッセージである旨を示すアドレスが含まれる。このアドレスは、例えば、全て「１」のビット列となる。基準時間、伝送遅延時間に関する説明は、図３にて説明した基準時間および伝送遅延時間に関する説明と同様である。
【００４４】
時間同期制御部２５０は、同報パケットを生成した後に、時間管理部２３０から基準時間を取得する。そして、時間同期制御部２５０は、基準時間を同報パケットに格納し、同報パケットを伝送遅延時間算出部２６０に出力する。
【００４５】
伝送遅延時間算出部２６０は、パケットサイズと現在の伝送レートから、隣接するノード装置にパケットが伝送されるまでの時間を伝送遅延時間として算出する処理部である。具体的に、伝送レートがＡ［bps］、パケットサイズがＢ［bit］の場合には、伝送遅延時間算出部２６０は、Ｂ÷Ａによって伝送遅延時間を算出する。
【００４６】
ここで、要求パケット、同報パケットを取得した場合の伝送遅延時間算出部２６０の処理を説明する。伝送遅延時間算出部２６０は、時間同期制御部２５０から要求パケットを取得した場合には、要求パケットのパケットサイズを伝送レートで割った値を、要求パケットの伝送遅延時間に設定する。そして、伝送遅延時間算出部２６０は、要求パケットを無線インターフェース部２７０に出力する。
【００４７】
伝送遅延時間算出部２６０は、時間同期制御部２５０から同報パケットを取得した場合には、同報パケットのパケットサイズを伝送レートで割った値を、同報パケットの伝送遅延時間に設定する。そして、伝送遅延時間算出部２６０は、同報パケットを無線インターフェース部２７０に出力する。
【００４８】
ところで、伝送遅延時間算出部２６０は、パケットサイズと伝送レートとを基にして伝送遅延時間を算出し、各ノード装置間の距離に基づく遅延を無視する。無線通信では、光の速度によってデータが移動するため、中継ノード装置とノード装置との間またはノード装置間の距離が短ければ、距離に基づく遅延を無視しても問題がない。
【００４９】
ここで、光の速度を３０万ｋｍ／ｓとし、装置間の距離を１ｋｍとすると、データが装置間を移動するのに要する時間は、約３μsecとなる。中継ノード装置２００およびノード装置１００ａ〜１００ｇが管理する時間の最小単位を１ｍsecとすると、この最小単位に対して、３μsecは、０．３％の時間に過ぎない。このため、伝送遅延時間算出部２６０が距離に基づく遅延を無視しても問題ない。
【００５０】
無線インターフェース部２７０は、ＣＳＭＡ／ＣＡ方式によって、ノード装置１００ａ、１００ｅとの間で無線通信を行う処理部である。図２に示すように、無線インターフェース部２７０は、パケット送受信部２７１および待機時間測定部２７２を有する。なお、無線インターフェース部２７０は、無線アンテナに接続される。
【００５１】
パケット送受信部２７１は、パケットを送受信する処理部である。パケット送受信部２７１がパケットを送信する場合の処理と、パケット送受信部２７１がパケットを受信する場合の処理について順に説明する。
【００５２】
パケット送受信部２７１がパケットを送信する場合の処理について説明する。パケット送受信部２７１が送信するパケットは、上記の要求パケットまたは同報パケットに対応する。パケット送受信部２７１は、パケットを送信する場合には、他のノード装置が送信対象のノード装置にパケットを送信しているか否かを判定する。例えば、パケット送受信部２７１は、無線アンテナを介して、他のノード装置から送信されたパケットを受信している場合には、他のノード装置がパケットを送信していると判定する。
【００５３】
パケット送受信部２７１は、他のノード装置がパケットを送信していない場合には、パケットを隣接のノード装置に送信する。一方、パケット送受信部２７１は、他のノード装置がパケットを送信している場合には、一定時間待機した後に、再度他のノード装置がパケットを送信しているか否かを判定し、上記の処理を繰り返す。
【００５４】
パケット送受信部２７１がパケットを受信した場合の処理について説明する。ここでは、パケット送受信部２７１が受信するパケットは、上記の応答パケットとする。パケット送受信部２７１は、応答パケットを受信した場合に、応答パケットをセンシングデータ要求部２４０に出力する。
【００５５】
待機時間測定部２７２は、パケット送受信部２７１が送信対象となるパケットを伝送遅延時間算出部２６０から取得してから、該パケットを送信するまでの待機時間を測定し、測定した待機時間を、パケットの伝送遅延時間に加算する処理部である。
【００５６】
例えば、パケット送受信部２７１が要求パケットを送信するまでにＣ秒かかった場合には、待機時間測定部２７２は、要求パケットの伝送遅延時間にＣ秒加算する。パケット送受信部２７１は、このように、伝送遅延時間が補正された後に、要求パケットを送信するものとする。
【００５７】
同様に、パケット送受信部２７１が同報パケットを送信するまでにＣ秒かかった場合には、待機時間測定部２７２は、同報パケットの伝送遅延時間にＣ秒加算する。パケット送受信部２７１は、このように、伝送遅延時間が補正された後に、同報パケットを送信するものとする。
【００５８】
なお、図２において、パケット送受信部２７１は、送信部の一例である。伝送遅延時間算出部２６０、待機時間測定部２７２は、遅延時間調整部の一例である。
【００５９】
次に、ノード装置１００ａの構成について説明する。図６は、ノード装置の構成を示す機能ブロック図である。なお、ノード装置１００ｂ〜１００ｇの構成は、ノード装置１００ａと同じであるため、説明を省略する。図６に示すように、無線インターフェース部１１０、受信制御部１２０、センシングデータ通知部１３０、伝送遅延時間算出部１４０、時間同期部１５０、時間管理部１６０、スリープ制御部１７０を有する。
【００６０】
無線インターフェース部１１０は、ＣＳＭＡ／ＣＡ方式によって、中継ノード装置２００または他のノード装置との間で無線通信を行う処理部である。図６に示すように、無線インターフェース部１１０は、パケット送受信部１１１および待機時間計測部１１２を有する。なお、無線インターフェース部１１０は、無線アンテナに接続される。
【００６１】
パケット送受信部１１１は、パケットを送受信する処理部である。パケット送受信部１１１がパケットを送信する場合の処理と、パケット送受信部１１１がパケットを受信する場合の処理について順に説明する。
【００６２】
パケット送受信部１１１がパケットを送信する場合の処理について説明する。パケット送受信部１１１が送信するパケットは、要求パケット、応答パケット、同報パケットに対応する。パケット送受信部１１１は、パケットを送信する場合には、他のノード装置がパケットを送信しているか否かを判定する。例えば、パケット送受信部１１１は、無線アンテナを介して、他のノード装置から送信されたパケットを受信している場合には、他のノード装置がパケットを送信していると判定する。
【００６３】
パケット送受信部１１１は、他のノード装置がパケットを送信していない場合には、パケットを隣接のノード装置に送信する。一方、パケット送受信部１１１は、他のノード装置がパケットを送信している場合には、一定時間待機した後に、再度他のノード装置がパケットを送信しているか否かを判定し、上記の処理を繰り返す。
【００６４】
パケット送受信部１１１がパケットを受信した場合の処理について説明する。ここでは、パケット送受信部１１１が受信するパケットは、要求パケット、応答パケットまたは同報パケットに対応する。パケット送受信部１１１は、受信したパケットを、受信制御部１２０に出力する。
【００６５】
待機時間測定部１１２は、パケット送受信部１１１が送信対象となるパケットを伝送遅延時間算出部１４０から取得してから、該パケットを送信するまでの待機時間を測定し、測定した待機時間を、パケットの伝送遅延時間に加算する処理部である。なお、応答パケットには、伝送遅延時間が含まれない。このため、待機時間測定部１１２は、応答パケットに対して待機時間の加算を行わないものとする。
【００６６】
例えば、パケット送受信部１１１が要求パケットを送信するまでにＣ秒かかった場合には、待機時間測定部１１２は、要求パケットの伝送遅延時間にＣ秒加算する。パケット送受信部１１１は、このように、伝送遅延時間が補正された後に、要求パケットを送信するものとする。
【００６７】
同様に、パケット送受信部１１１が同報パケットを送信するまでにＣ秒かかった場合には、待機時間測定部１１２は、同報パケットの伝送遅延時間にＣ秒加算する。パケット送受信部１１１は、このように、伝送遅延時間が補正された後に、同報パケットを送信するものとする。
【００６８】
受信制御部１２０は、無線インターフェース部１１０からパケットを取得し、取得したパケットに応じて各種の処理を実行する処理部である。以下において、受信制御部１２０が、要求パケットを取得した場合の処理、同報パケットを取得した場合の処理、応答パケットを取得した場合の処理の順に、受信制御部１２０の処理を説明する。
【００６９】
受信制御部１２０が要求パケットを取得した場合の処理について説明する。受信制御部１２０は、要求パケットの無線ヘッダを参照し、自ノード装置１００ａ宛の要求パケットであるか否かを判定する。自ノード装置宛の要求パケットの場合には、要求パケットをセンシングデータ通知部１３０および時間同期部１５０に出力する。これに対して、自ノード装置宛の要求パケットではない場合には、要求パケットを伝送遅延時間算出部１４０に出力する。
【００７０】
受信制御部１２０が同様パケットを取得した場合の処理について説明する。受信制御部１２０は、同報パケットを伝送遅延時間算出部１４０および時間同期部１５０に出力する。
【００７１】
受信制御部１２０が応答パケットを取得した場合の処理について説明する。受信制御部１２０は、応答パケットを無線インターフェース部１１０に出力する。
【００７２】
センシングデータ通知部１３０は、要求パケットを取得した場合に、温度センサーや水位センサーからセンシングデータを取得し、応答パケットにてセンシングデータを中継ノード装置に通知する処理部である。
【００７３】
例えば、センシングデータ通知部１３０は、受信制御部１２０から要求パケットを取得した場合に、応答パケットを生成する。また、センシングデータ通知部１３０は、応答パケットの無線ヘッダに宛先として中継ノード装置のアドレスを設定する。また、センシングデータ通知部１３０は、センシングデータを応答パケットに格納する。そして、センシングデータ通知部１３０は、応答パケットを無線インターフェース部１１０に出力する。
【００７４】
伝送遅延時間算出部１４０は、パケットサイズと現在の伝送レートから、隣接するノード装置にパケットが伝送されるまでの時間を伝送遅延時間として算出する処理部である。具体的に、伝送レートがＡ［bps］、パケットサイズがＢ［bit］の場合には、伝送遅延時間算出部１４０は、Ｂ÷Ａによって伝送遅延時間を算出する。
【００７５】
ここで、要求パケット、同報パケットを取得した場合の伝送遅延時間算出部１４０の処理を説明する。伝送遅延時間算出部１４０は、受信制御部１２０から要求パケットを取得した場合には、要求パケットのパケットサイズを伝送レートで割った値を、伝送遅延時間として算出する。そして、伝送遅延時間算出部１４０は、算出した伝送遅延時間を、要求パケットの伝送遅延時間に加算する。そして、伝送遅延時間算出部１４０は、要求パケットを無線インターフェース部１１０に出力する。
【００７６】
例えば、要求パケットのパケットサイズから算出した伝送遅延時間をＤ秒とし、要求パケットの伝送遅延時間をＥ秒とすると、伝送遅延時間算出部１４０は、要求パケットの伝送遅延時間を「Ｄ＋Ｅ秒」に設定し、無線インターフェース部１１０に出力する。
【００７７】
同様に、伝送遅延時間算出部１４０は、受信制御部１２０から同報パケットを取得した場合には、同報パケットのパケットサイズを伝送レートで割った値を、伝送遅延時間として算出する。そして、伝送遅延時間算出部１４０は、算出した伝送遅延時間を、同報パケットの伝送遅延時間に加算する。そして、伝送遅延時間算出部１４０は、同報パケットを無線インターフェース部１１０に出力する。
【００７８】
例えば、同報パケットのパケットサイズから算出した伝送遅延時間をＤ秒とし、同報パケットの伝送遅延時間をＥ秒とすると、伝送遅延時間算出部１４０は、同報パケットの伝送遅延時間を「Ｄ＋Ｅ秒」に設定し、無線インターフェース部１１０に出力する。
【００７９】
時間同期部１５０は、要求パケットまたは同報パケットに含まれる基準時間および伝送遅延時間に基づいて、時間管理部１６０の時間を同期させる処理部である。時間同期部１５０は、基準時間と伝送遅延時間を加算した時間と同じ時間となるように、時間管理部１６０の時間を修正する。
【００８０】
ここで、時間同期部１５０の処理を具体的に説明する。ここでは説明の便宜上、時間管理部１６０の時間精度を秒オーダーとし、基準時間と伝送遅延時間とを加算した時間の時間精度をミリ秒オーダーとする。
【００８１】
まず、時間同期部１５０は、基準時間と伝送遅延時間を加算し、加算した時間のミリ秒の桁の数が０か否かを判定する。例えば、時間が「２０１０／１／１  ０：００：２．０００」の場合には、時間同期部１５０は、時間のミリ秒の桁の数が０と判定する。この場合には、時間同期部１５０は、算出した時間によって時間管理部１６０の時間を修正する。
【００８２】
これに対して、例えば、基準時間と伝送遅延時間を加算した時間が「２０１０／１／１  ０：００：１．１３０」の場合には、時間同期部１５０は、時間のミリ秒の桁の数が０ではないと判定する。この場合には、時間同期部１５０は、時間のミリ行の桁の数が０となるまでの時間「２０１０／１／１  ０：００：２．０００」まで待機する。時間「２０１０／１／１  ０：００：１．１３０」から時間「２０１０／１／１  ０：００：２．０００」となるまでには、８７０ｍｓｅｃかかるため、時間同期部１５０は、８７０ｍｓｅｃ待機することになる。
【００８３】
時間同期部１５０は、待機する間、経過時間に合わせて時間をカウントアップする。そして、時間同期部１５０は、時間のミリ秒の桁の数が０となった時点で、カウントアップした時間「２０１０／１／１  ０：００：２．０００」によって、時間管理部１６０の時間を修正する。
【００８４】
時間管理部１６０は、時計機能を有し、自ノード装置１００ａの時間を管理する処理部である。上記のように、時間管理部１６０の時間は、時間同期部１５０によって修正される。
【００８５】
スリープ制御部１７０は、時間管理部１６０から時間情報を取得し、時間管理部１６０以外の処理部をスリープ状態に移行させる処理およびスリープ状態を解除する処理を行う処理部である。例えば、スリープ制御部１７０は、所定の時間間隔で、スリープ状態に移行させ、所定の時間間隔でスリープ状態を解除する。例えば、スリープ制御部１７０は、無線インターフェース部１１０、受信制御部１２０、センシングデータ通知部１３０、伝送遅延時間算出部１４０、時間同期部１５０をスリープ状態に移行させる。
【００８６】
なお、図６において、パケット送受信部１１１は、送信部の一例である。伝送遅延時間算出部１４０、待機時間測定部１１２は、遅延時間調整部の一例である。時間同期部１５０は、補正部の一例である。
【００８７】
次に、中継ノード装置２００の処理手順について説明する。図７は、中継ノード装置の処理手順を示すフローチャートである。図７に示す処理は、例えば、要求パケットや同報パケットを送信する場合に実行される。なお、図７において、パケットは、要求パケットまたは同報パケットに対応するものとする。
【００８８】
図７に示すように、中継ノード装置２００は、基準時間を取得し（ステップＳ１０１）、パケットに基準時間を格納する（ステップＳ１０２）。中継ノード装置２００は、伝送遅延時間を算出し（ステップＳ１０３）、パケットに伝送遅延時間を格納する（ステップＳ１０４）。
【００８９】
中継ノード装置２００は、送信対象のノード装置が、他のノード装置と通信を行っているか否かを判定する（ステップＳ１０５）。通信を行っていない場合には（ステップＳ１０６，Ｎｏ）、中継ノード装置２００は、伝送遅延時間に待機時間を加算し（ステップＳ１０７）、パケットを送信する（ステップＳ１０８）。
【００９０】
一方、ステップＳ１０６において、通信を行っている場合には（ステップＳ１０６，Ｙｅｓ）、中継ノード装置２００は、一定時間待機する（ステップＳ１０９）。そして、中継ノード装置２００は、待機時間を更新し（ステップＳ１１０）、ステップＳ１０６に移行する。
【００９１】
次に、中継ノード装置２００におけるパケットのデータの変化の一例に説明する。図８は、中継ノード装置におけるパケットのデータの変化を説明する図である。前提として、時間管理部２３０の基準時間を「２０１０／１／１  ０：００：０．０００」とする。また、伝送遅延時間算出部２６０が算出する伝送遅延時間を「５００ｍｓ」とする。また、待機時間測定部２７２が測定する待機時間を「３０ｍｓ」とする。
【００９２】
図８に示すように、時間同期制御部２５０は、パケットの基準時間に「２０１０／１／１  ０：００：０．０００」を設定する（ステップＳ１０）。そして、伝送遅延時間算出部２６０は、伝送遅延時間に「５００ｍｓ」を設定する（ステップＳ１１）。そして、待機時間測定部２７２は、待機時間「３０ｍｓ」を伝送遅延時間「５００ｍｓ」に加算して、伝送遅延時間を「５３０ｍｓ」に設定する（ステップＳ１２）。無線インターフェース部２７０は、ステップＳ１２の状態のパケットを隣接するノード装置に送信することになる。
【００９３】
次に、ノード装置１００ａの処理手順について説明する。図９は、ノード装置の処理手順を示すフローチャートである。図９に示す処理は、他のノード装置から要求パケットや同報パケットを受信した場合に実行される。図９において、パケットは、要求パケットまたは同報パケットに対応するものとする。
【００９４】
図９に示すように、ノード装置１００ａは、パケットを受信し（ステップＳ２０１）、自ノード装置宛のパケットか否かを判定する（ステップＳ２０２）。ノード装置１００ａは、自ノード装置宛のパケットの場合には（ステップＳ２０２，Ｙｅｓ）、時間反映処理を実行する（ステップＳ２０３）。
【００９５】
一方、ノード装置１００ａは、自ノード装置宛のパケットではない場合には（ステップＳ２０２，Ｎｏ）、中継処理を実行する（ステップＳ２０４）。
【００９６】
続いて、図９のステップＳ２０３に示した時間反映処理の処理手順と図９のステップＳ２０４に示した中継処理の処理手順について順に説明する。
【００９７】
図１０は、時間反映処理の処理手順を示すフローチャートである。図１０に示すように、ノード装置１００ａは、基準時間と遅延時間とを加算して現在の時間を算出する（ステップＳ３０１）。
【００９８】
ノード装置１００ａは、現在の時間のミリ秒の桁の数が０か否かを判定する（ステップＳ３０２）。ノード装置１００ａは、現在の時間のミリ秒の桁の数が０の場合には（ステップＳ３０２，Ｙｅｓ）、時間を反映する（ステップＳ３０３）。
【００９９】
一方、ノード装置１００ａは、現在の時間のミリ秒の桁の数が０ではない場合には（ステップＳ３０２，Ｎｏ）、現在の時間に１ｍｓｅｃ加算する（ステップＳ３０４）。ノード装置１００ａは、１ｍｓｅｃ待機し（ステップＳ３０５）、ステップＳ３０２に移行する。
【０１００】
図１１は、中継処理の処理手順を示すフローチャートである。図１１に示すように、ノード装置１００ａは、伝送遅延時間を算出し（ステップＳ４０１）、パケットの伝送遅延時間に算出した伝送遅延時間を加算する（ステップＳ４０２）。
【０１０１】
ノード装置１００ａは、送信対象のノード装置が、他のノード装置と通信を行っているか否かを判定する（ステップＳ４０３）。ノード装置１００ａは、送信対象のノード装置が他のノードと通信を行っていない場合には（ステップＳ４０４，Ｎｏ）、伝送遅延時間に待機時間を加算し（ステップＳ４０５）、パケットを送信する（ステップＳ４０６）。
【０１０２】
一方、ノード装置１００ａは、送信対象のノード装置が他のノードと通信を行っている場合には（ステップＳ４０４，Ｙｅｓ）、一定時間待機する（ステップＳ４０７）。そして、ノード装置１００ａは、待機時間を更新し（ステップＳ４０８）、ステップＳ４０４に移行する。
【０１０３】
次に、ノード装置１００ａがパケットを中継する場合のパケットのデータの変化について説明する。図１２は、ノード装置がパケットを中継する場合のパケットのデータの変化を説明する図である。前提として、他のノード装置から受信したパケットの基準時間を「２０１０／１／１  ０：００：０．０００」とし、伝送遅延時間を「５３０ｍｓ」とする。また、伝送遅延時間算出部１４０が算出する伝送遅延時間を「５００ｍｓ」とする。また、待機時間測定部１１２が測定する待機時間を「１００ｍｓ」とする。
【０１０４】
図１２に示すように、伝送遅延時間算出部１４０は、パケットを取得する（ステップＳ１３）。伝送遅延時間算出部１４０は、伝送遅延時間に「５００ｍｓ」加算し、伝送遅延時間を「１０３０ｍｓ」に設定する（ステップＳ１４）。そして、待機時間測定部１４０は、待機時間「１００ｍｓ」を伝送遅延時間「１０３０ｍｓ」に加算して、伝送遅延時間を「１１３０ｍｓ」に設定する（ステップＳ１５）。無線インターフェース部１１０は、ステップＳ１５の状態のパケットを隣接するノード装置に送信することになる。
【０１０５】
次に、センサーネットワークの全体の処理手順について説明する。図１３は、センサーネットワークの全体の処理手順を示すフローチャートである。ここでは一例として、中継ノード装置２００が、ノード装置１００ｂに要求パケットを送信する場合について説明する。また、要求パケットの基準時間および伝送遅延時間も合わせて説明する。図１４は、図１３に示した要求パケットの基準時間および伝送遅延時間を示す図である。
【０１０６】
図１３において、中継ノード装置２００は、基準時間を読み出し、基準時間を要求パケットに設定する（ステップＳ５０１）。例えば、基準時間を「ｘｘ分ｙｙ秒」とすると、図１４のステップＳ２０のように、要求パケットの基準時間に「ｘｘ分ｙｙ秒」が設定される。
【０１０７】
図１３において、中継ノード装置２００は、伝送遅延時間を算出し、伝送遅延時間を要求パケットに設定する（ステップＳ５０２）。例えば、伝送遅延時間を「ａ秒」とすると、図１４のステップＳ２１のように、要求パケットの伝送遅延時間に「ａ秒」が設定される。
【０１０８】
図１３において、中継ノード装置２００は、ＣＳＭＡ／ＣＡを実施して、伝送遅延時間に待機時間を加算し、要求パケットをノード装置１００ａに送信する（ステップＳ５０３）。例えば、待機時間を「ｂ秒」とすると、図１４のステップＳ２２のように、要求パケットの伝送遅延時間に「ａ秒＋ｂ秒」が設定される。
【０１０９】
図１３において、ノード装置１００ａは、中継ノード装置２００から要求パケットを受信し（ステップＳ５０４）、伝送遅延時間を算出し、伝送遅延時間を加算する（ステップＳ５０５）。例えば、ノード装置１００ａが算出した伝送遅延時間を「ａ秒」とすると、図１４のステップＳ２３のように、要求パケットの伝送遅延時間に「ａ秒＋ｂ秒＋ａ秒」が設定される。
【０１１０】
図１３において、ノード装置１００ａは、ＣＳＭＡ／ＣＡを実施して、伝送遅延時間に待機時間を加算し、要求パケットをノード装置１００ｂに送信する（ステップＳ５０６）。例えば、待機時間を「ｃ秒」とすると、図１４のステップＳ２４に示すように、要求パケットの伝送遅延時間に「ａ秒＋ｂ秒＋ａ秒＋ｃ秒」が設定される。
【０１１１】
図１３において、ノード装置１００ｂは、ノード装置１００ａから要求パケットを受信し（ステップＳ５０７）、現在の時間を算出する（ステップＳ５０８）。例えば、要求パケットの基準時間が「ｘｘ分ｙｙ秒」、伝送遅延時間が「ａ秒＋ｂ秒＋ａ秒＋ｃ秒」の場合には、現在の時間は、「（ｘｘ分ｙｙ秒）＋（ａ秒＋ｂ秒＋ａ秒＋ｃ秒）」となる。ノード装置１００ｂは、時間を修正する（ステップＳ５０９）。
【０１１２】
次に、センシングデータを収集するセンサーネットワークの処理手順について説明する。図１５および図１６は、センシングデータを収集するセンサーネットワークの処理手順を示すフローチャートである。ここでは一例として、中継ノード装置２００が、ノード装置１００ａに要求パケットを送信した後に、ノード装置１００ｂに要求パケットを送信するものとする。
【０１１３】
図１５に示すように、中継ノード装置２００は、要求パケットにセンシング要求を設定し（ステップＳ６０１）、基準時間および伝送遅延時間を設定する（ステップＳ６０２）。中継ノード装置２００は、ＣＳＭＡ／ＣＡを実施して伝送遅延時間を修正し、要求パケットをノード装置１００ａに送信する（ステップＳ６０３）。
【０１１４】
ノード装置１００ａは、要求パケットを受信し（ステップＳ６０４）、現在の時間を算出する（ステップＳ６０５）。ノード装置１００ａは、時間を修正し（ステップＳ６０６）、センシングデータを応答パケットに格納する（ステップＳ６０７）。
【０１１５】
ノード装置１００ａは、ＣＳＭＡ／ＣＡを実施して、応答パケットを中継ノード装置２００に送信する（ステップＳ６０８）。中継ノード装置２００は、応答パケットを受信する（ステップＳ６０９）。
【０１１６】
図１６の説明に移行する。中継ノード装置２００は、新たな要求パケットにセンシング要求を設定し（ステップＳ６１０）、基準時間および伝送遅延時間を設定する（ステップＳ６１１）。中継ノード装置２００は、ＣＳＭＡ／ＣＡを実施して伝送遅延時間を修正し、要求パケットをノード装置１００ａに送信する（ステップＳ６１２）。
【０１１７】
ノード装置１００ａは、要求パケットを受信し（ステップＳ６１３）、要求パケットの伝送遅延時間を更新する（ステップＳ６１４）。ノード装置１００ａは、ＣＳＭＡ／ＣＡを実施して伝送遅延時間を修正し、要求パケットをノード装置１００ｂに送信する（ステップＳ６１５）。
【０１１８】
ノード装置１００ｂは、要求パケットを受信し（ステップＳ６１６）、現在の時間を算出する（ステップＳ６１７）。ノード装置１００ｂは、時間を補正し（ステップＳ６１８）、センシングデータを応答パケットに格納する（ステップＳ６１９）。
【０１１９】
ノード装置１００ｂは、ＣＳＭＡ／ＣＡを実施して、応答パケットをノード装置１００ａに送信する（ステップＳ６２０）。ノード装置１００ａは、応答パケットを受信し（ステップＳ６２１）、ＣＳＭＡ／ＣＡを実施して、応答パケットを中継ノード装置２００に送信する（ステップＳ６２２）。中継ノード装置２００は、応答パケットを受信する（ステップＳ６２３）。
【０１２０】
次に、同報パケットをブロードキャストすることで、ノード装置１００ａ〜１００ｆの時間が同期される場合の処理について説明する。図１７は、同報パケットによって各ノード装置の時間が同期される場合の処理を説明するための図である。例えば、中継ノード装置２００の基準時間を「２０１０／１／１  １：３０：１５．０００」とし、伝送遅延時間を「６００ｍｓ」とする。この伝送遅延時間は、同報パケットを送信する場合の待機時間を含むものとする。
【０１２１】
中継ノード装置２００は、基準時間に「２０１０／１／１  １：３０：１５．０００」を格納し、伝送遅延時間に「６００ｍｓ」を格納した同報パケット２０ａを送信する。この同報パケット２０ａは、ノード装置１００ａ、１００ｄに到達する。
【０１２２】
ノード装置１００ａは、同報パケット２０ａの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。その後、ノード装置１００ａは、同報パケット２０ｂを送信する。例えば、ノード装置１００ａの待機時間を含む伝送遅延時間を「３００ｍｓ」とする。ノード装置１００ａが伝送遅延時間を加算することで、同報パケット２０ｂの伝送遅延時間は「９００ｍｓ」となる。この同報パケット２０ｂは、ノード装置１００ｂに到達する。
【０１２３】
ノード装置１００ｂは、同報パケット２０ｂの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。その後、ノード装置１００ｂは、同報パケット２０ｃを送信する。例えば、ノード装置１００ｂの待機時間を含む伝送遅延時間を「４００ｍｓ」とする。ノード装置１００ｂは、伝送遅延時間を加算することで、同報パケット２０ｃの伝送遅延時間は「１３００ｍｓ」となる。この同報パケットは、ノード装置１００ｃに到達する。ノード装置１００ｃは、同報パケット２０ｃの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。
【０１２４】
ノード装置１００ｄは、同報パケット２０ａの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。その後、ノード装置１００ｄは、同報パケット２０ｄを送信する。例えば、ノード装置１００ｄの待機時間を含む伝送遅延時間を「５００ｍｓ」とする。ノード装置１００ｄは、伝送遅延時間を加算することで、同報パケット２０ｄの伝送遅延時間は「１１００ｍｓ」となる。この同報パケットは、ノード装置１００ｅ、１００ｆに到達する。
【０１２５】
ノード装置１００ｅは、同報パケット２０ｄの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。また、ノード装置１００ｆは、同報パケット２０ｄの基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。
【０１２６】
次に、要求パケットをユニキャストすることで、ノード装置１００ｃの時間が同期される場合の処理について説明する。図１８は、要求パケットをユニキャストすることでノード装置２００の時間が同期される場合の処理を説明するための図である。例えば、中継ノード装置の基準時間を「２０１０／１／１  １：３０：１５．０００」とし、伝送遅延時間を「６００ｍｓ」とする。この伝送遅延時間は、要求パケットを送信する場合の待機時間を含むものとする。
【０１２７】
中継ノード装置２００は、基準時間に「２０１０／１／１  １：３０：１５．０００」を格納し、伝送遅延時間に「６００ｍｓ」を格納した要求パケット３０ａをノード装置１００ａに送信する。
【０１２８】
ノード装置１００ａは、要求パケット３０ａを受信した後に、要求パケット３０ｂをノード装置１００ｂに送信する。例えば、ノード装置１００ａの待機時間を含む伝送遅延時間を「３００ｍｓ」とする。ノード装置１００ａは、伝送遅延時間を加算することで、要求パケット３０ｂの伝送遅延時間は「９００ｍｓ」となる。
【０１２９】
ノード装置１００ｂは、要求パケット３０ｂを受信した後に、要求パケット３０ｃをノード装置１００ｃに送信する。例えば、ノード装置１００ｂの待機時間を含む伝送遅延時間を「４００ｍｓ」とする。ノード装置１００ｂは、伝送遅延時間を加算することで、要求パケット３０ｃの伝送遅延時間は「１３００ｍｓ」となる。
【０１３０】
ノード装置１００ｃは、基準時間および伝送遅延時間を加算した時間に基づいて、時間を修正する。また、ノード装置１００ｃはセンシングデータを含む応答パケットを、ノード装置１００ｂ、１００ａを介して、中継ノード装置２００に送信する。
【０１３１】
次に、本実施例にかかる中継ノード装置２００およびノード装置１００の効果について説明する。中継ノード装置２００は、パケットを送信する場合の待機時間を伝送遅延時間に加算し、加算した伝送遅延時間と基準時間とをパケットに格納し、パケットを送信対象のノード装置に送信する。また、ノード装置１００は、上位のノード装置からパケットを受信した場合には、パケットの伝送遅延時間に、待機時間を加味した伝送遅延時間を加算し、送信対象のノード装置にパケットを送信する。このため、ＣＳＭＡ／ＣＡ方式によるパケット送信の待機時間を加味した伝送遅延時間と基準時間とを各ノード装置に通知することができ、各ノード装置は、この伝送遅延時間と基準時間により、正確に時間を同期することができる。
【０１３２】
このように、中継ノード装置２００およびノード装置１００は、正確に時間を同期することができるため、各ノード装置間で誤差なくスリープ機能を利用でき、効率的に消費電力を低下させることができる。
【０１３３】
また、本実施例にかかる中継ノード装置２００およびノード装置１００は、パケットのデータ量と伝送レートとを基にして、伝送遅延時間を算出し、この伝送遅延時間に待機時間を加算して、最終的な伝送遅延時間を算出する。このため、中継ノード装置２００およびノード装置１００は、自ノード装置から送信対象のノード装置までに発生する伝送遅延時間を正確に求めることができ、この伝送遅延時間を順次配下のノード装置に通知することができる。
【０１３４】
また、本実施例にかかるノード装置１００は、パケットを受信した場合に、基準時間と伝送遅延時間とを加算した時間に基づいて時間管理部１６０の時間を補正する。このため、各ノード装置１００は正確に時間を同期させることができる。また、この補正方法によれば、各ノード装置間でパケットを送受信しなくても、正確な伝送遅延時間を知ることができるので、効率的に時間を同期させることもできる。
【０１３５】
ところで、図２に示した中継ノード装置２００、図６に示したノード装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、中継ノード装置２００、ノード装置１００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、無線インターフェース部２７０の機能を、外部の通信装置などに組み込んでも良い。
【０１３６】
また、図２、図６に示した各処理部は、各種の装置に対応する。例えば、有線インターフェース部２１０は、通信カードに対応する。無線インターフェース１１０，２７０は、無線通信カードに対応する。また各処理部１３０〜１７０、２２０〜２６０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。または、上記処理部１３０〜１７０、２２０〜２６０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【０１３７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３８】
（付記１）送信対象のノード装置の通信状況を監視し、前記送信対象のノード装置が他のノード装置と通信を行っている場合には、前記送信対象のノード装置にパケットを送信することを待機し、前記通信対象のノード装置が他のノード装置と通信を行っていない場合には、前記送信対象のノード装置にパケットを送信する送信部と、
自ノード装置の基準時間を送信対象のノード装置に通知する場合には、自ノード装置から前記送信対象のノード装置までの伝送遅延時間に、前記送信部の待機時間を加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自ノード装置から中継先のノード装置までの伝送遅延時間と、前記送信部の待機時間とを加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する遅延時間調整部と
を有することを特徴とするノード装置。
【０１３９】
（付記２）前記遅延時間調整部は、パケットのデータ量と伝送レートとを基にして、前記伝送遅延時間を算出することを特徴とする付記１に記載のノード装置。
【０１４０】
（付記３）前記上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合に、前記基準時間と前記伝送遅延時間とを加算した時間に基づいて、自装置の基準時間を補正する補正部を更に備えたことを特徴とする付記１または２に記載のノード装置。
【０１４１】
（付記４）複数のノード装置が無線通信によってパケットを伝送し、各ノード装置で時間を同期する時間同期システムであって、
前記ノード装置は、
送信対象のノード装置の通信状況を監視し、前記送信対象のノード装置が他のノード装置と通信を行っている場合には、前記送信対象のノード装置にパケットを送信することを待機し、前記通信対象のノード装置が他のノード装置と通信を行っていない場合には、前記送信対象のノード装置にパケットを送信する送信部と、
自ノード装置の基準時間を送信対象のノード装置に通知する場合には、自ノード装置から前記送信対象のノード装置までの伝送遅延時間に、前記送信部の待機時間を加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自ノード装置から中継先のノード装置までの伝送遅延時間と、前記送信部の待機時間とを加算し、基準時間と伝送遅延時間とを前記送信部が送信するパケットに格納する遅延時間調整部と
を有することを特徴とする時間同期システム。
【０１４２】
（付記５）前記遅延時間調整部は、パケットのデータ量と伝送レートとを基にして、前記伝送遅延時間を算出することを特徴とする付記４に記載の時間同期システム。
【０１４３】
（付記６）前記上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合に、前記基準時間と前記伝送遅延時間とを加算した時間に基づいて、自ノード装置の基準時間を補正する補正部を更に備えたことを特徴とする付記４または５に記載の時間同期システム。
【０１４４】
（付記７）コンピュータが実行する時間同期方法であって、
自コンピュータの基準時間を送信対象のノード装置に通知する場合には、自コンピュータから前記送信対象のノード装置までの伝送遅延時間に、パケットを送信するまで待機した待機時間を加算し、基準時間と伝送遅延時間とをパケットに格納して、該パケットを送信し、
上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合には、該伝送遅延時間に、自コンピュータから中継先のノード装置までの伝送遅延時間と、前記待機時間とを加算し、基準時間と伝送遅延時間とをパケットに格納して、該パケットを送信することを特徴とする時間同期方法。
【０１４５】
（付記８）パケットのデータ量と伝送レートとを基にして、前記伝送遅延時間を算出することを特徴とする付記７に記載の時間同期方法。
【０１４６】
（付記９）前記上位のノード装置から基準時間と伝送遅延時間とを含むパケットを受信した場合に、前記基準時間と前記伝送遅延時間とを加算した時間に基づいて、自コンピュータの基準時間を補正することを特徴とする付記７または８に記載の時間同期方法。
【符号の説明】
【０１４７】
１００ａ  ノード装置
１１０    無線インターフェース部
１２０    受信制御部
１３０    センシングデータ通知部
１４０    伝送遅延時間算出部
１５０    時間同期部
１６０    時間管理部
１７０    スリープ制御部
【図１】
0005605096.tif 000002
【図２】
0005605096.tif 000003
【図３】
0005605096.tif 000004
【図４】
0005605096.tif 000005
【図５】
0005605096.tif 000006
【図６】
0005605096.tif 000007
【図７】
0005605096.tif 000008
【図８】
0005605096.tif 000009
【図９】
0005605096.tif 000010
【図１０】
0005605096.tif 000011
【図１１】
0005605096.tif 000012
【図１２】
0005605096.tif 000013
【図１３】
0005605096.tif 000014
【図１４】
0005605096.tif 000015
【図１５】
0005605096.tif 000016
【図１６】
0005605096.tif 000017
【図１７】
0005605096.tif 000018
【図１８】
0005605096.tif 000019
【図１９】
0005605096.tif 000020
【図２０】
0005605096.tif 000021