(57)【要約】【課題】省電力の効果を向上させることを課題とする。【解決手段】ノードは、対向装置とノードとの間の時刻差を用いて、対向装置のクロック周波数とノードのクロック周波数との誤差であるクロック誤差を類推する。ノードは、類推されたクロック誤差にしたがって、データ通信を行うための準備時間を決定する。ノードは、対向装置との通信を抑制する省電力状態から、対向装置との通信を実行する通常状態へ復帰する時間を、準備期間分前に設定する。【選択図】図４
2018166315.tif 000002
【特許請求の範囲】
【請求項１】
通信装置において、
対向装置と前記通信装置との間の時刻差を用いて、前記対向装置のクロック周波数と前記通信装置のクロック周波数との誤差であるクロック誤差を類推する類推部と、
類推された前記クロック誤差にしたがって、データ通信を行うための準備時間を決定する決定部と、
前記対向装置との通信を抑制する省電力状態から、前記対向装置との通信を実行する通常状態へ復帰する時間を、前記準備期間分前に設定する設定部と
を有することを特徴とする通信装置。
【請求項２】
前記対向装置から受信したパケットの受信時刻と前記パケットの送信時刻とに基づいて、前記対向装置と前記通信装置との間の時刻差を算出する算出部と、
前記対向装置とのデータ通信が終了した後に前記省電力状態に遷移し、次のデータ通信の開始時刻から前記準備時間前に、前記省電力状態から前記通常状態に復帰する状態遷移部をさらに有することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記算出部は、前記対向装置が送信時刻を報知する報知パケットから前記送信時刻を取得し、取得した送信時刻と、前記報知パケットのサイズと、前記対向装置と前記通信装置との間の通信速度とを用いて、前記報知パケットを受信する受信理論時刻を算出し、前記受信理論時刻と前記受信時刻とから前記時刻差を算出し、
前記類推部は、前記時刻差を前記データ通信の実行間隔を示す時刻情報で除算した値を前記クロック誤差と類推することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記類推部は、前記報知パケットを複数回受信した場合に、各報知パケットに基づく前記時刻差のうち最大の時刻差を特定し、前記最大の時刻差を用いて前記クロック誤差を類推することを特徴とする請求項３に記載の通信装置。
【請求項５】
対向装置から受信したパケットの受信時刻と、予め設定された前記パケットの受信予定時刻とから、前記対向装置と前記通信装置との間の前記時刻差を算出する算出部をさらに有し、
前記設定部は、前記データ通信の開始に伴って、前記省電力状態から前記通常状態への復帰を開始する時刻を、前記準備期間分早める指示を前記対向装置に送信することを特徴とする請求項１に記載の通信装置。
【請求項６】
通信装置が、
対向装置と前記通信装置との間の時刻差を用いて、前記対向装置のクロック周波数と前記通信装置のクロック周波数との誤差であるクロック誤差を類推し、
類推された前記クロック誤差にしたがって、データ通信を行うための準備時間を決定し、
前記対向装置との通信を抑制する省電力状態から、前記対向装置との通信を実行する通常状態へ復帰する時間を、前記準備期間分前に設定する
処理を実行することを特徴とする通信方法。
【請求項７】
通信装置に、
対向装置と前記通信装置との間の時刻差を用いて、前記対向装置のクロック周波数と前記通信装置のクロック周波数との誤差であるクロック誤差を類推し、
類推された前記クロック誤差にしたがって、データ通信を行うための準備時間を決定し、
前記対向装置との通信を抑制する省電力状態から、前記対向装置との通信を実行する通常状態へ復帰する時間を、前記準備期間分前に設定する
処理を実行させることを特徴とする通信プログラム。
【請求項８】
管理装置と通信装置とを含む通信システムにおいて、
前記管理装置は、
予めされた送信契機になると、送信時刻を含む報知パケットを前記通信装置に送信する送信部を有し、
前記通信装置は、
前記報知パケットを受信した場合に、前記報知パケットに含まれる前記送信時刻と、前記報知パケットのサイズと、前記管理装置と前記通信装置と間の通信速度とを用いて、前記報知パケットを受信する受信理論時刻を算出する算出部と、
前記受信理論時刻と前記受信時刻とから時刻差を算出し、前記時刻差を用いて、前記管理装置のクロック周波数と前記通信装置のクロック周波数との誤差であるクロック誤差を類推する類推部と、
類推された前記クロック誤差にしたがって、データ通信を行うための準備時間を決定する決定部と、
前記管理装置とのデータ通信が終了した後に、前記データ通信を抑制する省電力状態に遷移し、次のデータ通信の開始時刻から前記準備時間前に、前記省電力状態から通常状態に復帰する状態遷移部と
を有することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、通信プログラムおよび通信システムに関する。
【背景技術】
【０００２】
従来から、ＩｏＴ（Internet  of  Things）に代表されるように、様々な「モノ」に対して通信機能を持たせることが増加している。例えば、水位、ガスの使用量、電気の使用量などをセンシングするセンサ装置に通信機能を持たせて、周期的にセンシングデータをゲートウェイ（ＧＷ）などの対向装置に送信することで、クラウドサーバで一括管理することが行われている。
【０００３】
通信機能を持たせる対象の装置は、安定して給電される電源駆動に限らず、電力が有限である電池駆動の場合やエネルギーハーベスティングにより生成される電力で動作する場合もある。このような場合、装置は、限られた電力の中で動作することになるので、通信機能に対して低消費電力化が行われている。近年では、ＢＡＮ（Body  Area  Network）などのように、通信や処理を行わない期間は装置をスリープ状態に遷移させる近距離無線技術が知られている。
【０００４】
例えば、ハブであるＧＷとノードである装置との間での通信が完了すると、装置はタイマに設定された時間だけ、スリープ状態となる。このスリープ時間は、ＧｕａｒｄＴｉｍｅ（以下、ＧＴと記載する場合がある）と呼ばれる「装置の立ち上がり時間や処理オーバーヘッド等を考慮した上で確実に通信できるまでの時間」を考慮して設定される。具体的には、装置は、センシングデータの送信処理の完了時に、次のセンシングデータの送信処理が発生する時刻よりもＧＴだけ前に復帰（Ｗａｋｅｕｐ）するようにタイマを設定してスリープ状態となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２８５０３号公報
【特許文献２】特開２０１１−２９９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、スリープ期間中は電力を消費しないので、消費電力の削減が期待できるが、装置ごとに適切なＧＴを算出することが難しく、省電力の効果が小さい。
【０００７】
具体的には、タイマに設定するＧＴの算出時には、装置の通信モジュールで用いるＭＣＵ（Micro  Control  Unit）のクロック誤差も考慮されるが、通信モジュール毎にクロック誤差の幅に個体差がある。このため、各装置に用いられる通信モジュールが同じであっても、すべてが同じクロック周波数で動作するとは限らない。
【０００８】
したがって、各装置に用いられる全通信モジュールのクロック周波数のズレを網羅できるＧＴを設定することになるので、結果としてスリープ状態の時間が短くなり、期待するほどの省電力効果が得られない可能性がある。なお、管理者等が、各装置の通信モジュールが保証する最大のクロック誤差を一つずつ確認して、装置ごとにＧＴを設定することも考えられるが、非常に作業時間がかかり、装置の数が膨大な場合は現実的ではない。
【０００９】
一つの側面では、省電力の効果を向上させることができる通信装置、通信方法、通信プログラムおよび通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、通信装置は、対向装置と前記通信装置との間の時刻差を用いて、前記対向装置のクロック周波数と前記通信装置のクロック周波数との誤差であるクロック誤差を類推する類推部を有する。通信装置は、類推された前記クロック誤差にしたがって、データ通信を行うための準備時間を決定する決定部と、前記対向装置との通信を抑制する省電力状態から、前記対向装置との通信を実行する通常状態へ復帰する時間を、前記準備期間分前に設定する設定部とを有する。
【発明の効果】
【００１１】
一実施形態によれば、省電力の効果を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１にかかるシステムの全体構成例を示す図である。
【図２】図２は、ノードのセンシング例を示す図である。
【図３】図３は、ＢＡＮのフレーム構成を説明する図である。
【図４】図４は、実施例１にかかる各装置の機能構成を示す機能ブロック図である。
【図５】図５は、ノードの補正幅ＤＢに記憶される情報の例を示す図である。
【図６】図６は、ＢＡＮによる時刻同期を説明する図である。
【図７】図７は、実施例１にかかるＧＴ設定処理の流れを示すフローチャートである。
【図８】図８は、実施例１にかかる同期処理の流れを示すフローチャートである。
【図９】図９は、実施例１にかかるデータ送信処理の流れを示すフローチャートである。
【図１０】図１０は、効果試算時の前提条件を示す図である。
【図１１】図１１は、効果試算時の無線条件を示す図である。
【図１２】図１２は、効果試算の結果を示す図である。
【図１３】図１３は、実施例２の時刻誤差の類推を説明する図である。
【図１４】図１４は、実施例２にかかる各装置の機能構成を示す機能ブロック図である。
【図１５】図１５は、ＢＡＮのフレーム構成を説明する図である。
【図１６】図１６は、実施例２にかかるデータ送信処理の流れを示すフローチャートである。
【図１７】図１７は、実施例２にかかるＧＴ算出処理の流れを示すフローチャートである。
【図１８】図１８は、ＧＷ装置のハードウェア構成例を示す図である。
【図１９】図１９は、ノードのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する通信装置、通信方法、通信プログラムおよび通信システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
［全体構成］
図１は、実施例１にかかるシステムの全体構成例を示す図である。図１に示すように、このシステムは、管理サーバ５、ＧＷ装置１０、複数のノード３０を有する。ＧＷ装置１０と複数のノード３０は、ネットワークＮを介して、相互に通信可能に接続される。なお、ネットワークＮは、有線や無線を問わず、インターネットや専用線など各種通信網を採用することができる。
【００１５】
管理サーバ５は、ＧＷ装置１０を介して、各ノード３０からセンシングデータを取得し、一括管理するサーバ装置の一例である。例えば、管理サーバ５は、水位、ガスの使用量、電気の使用量などを一括管理する。
【００１６】
ＧＷ装置１０は、各ノード３０と管理サーバ５との通信を集約するネットワーク装置の一例である。例えば、ＧＷ装置１０は、各ノード３０から定期的に送信されたセンシングデータを受信して、管理サーバ５に送信する。
【００１７】
各ノード３０は、無線などの通信機能を有し、水位、ガスの使用量、電気の使用量などをセンシングして、管理サーバ５に送信するセンサ装置の一例である。各ノード３０は、定期的にセンシングを実行して、センシングデータを送信する。
【００１８】
ここで、各ノードのセンシング例を説明する。図２は、ノードのセンシング例を示す図である。図２に示すように、各ノード３０は、通信モジュールＡと水位センサＢとを有し、マンホールなどに設置される。そして、各ノード３０は、ＧＷ装置１０から指定された間隔で水位データを測定して、指定された帯域を使用してＧＷ装置１０に送信する。
【００１９】
次に、ＧＷ装置１０と各ノード３０の無線通信について説明する。ＧＷ装置１０と各ノード３０との間では、ＢＡＮ（Body  Area  Network）を用いて、センシングデータのやり取りが実行される。図３は、ＢＡＮのフレーム構成を説明する図である。図３に示すように、ＧＷ装置１０と各ノード３０との間では、無線フレーム内でsuperframeと呼ばれる同期単位が設定されており、この同期単位内でセンシングデータの送信が実行される。ＧＷ装置１０と各ノード３０との間では、各superframeの開始タイミング（時刻）が共通情報として設定されている。
【００２０】
具体的には、superframe内は、１つのBeacomと、複数のEAP（Exclusive  Access  Phase）とRAP（Random  Access  Phase）とMAP（Managed  Accsess  Pase）とから構成される。Beaconは、報知信号（報知パケット）を送信する領域である。EAPとRAPは、どのノードでも通信可能な共有領域であり、衝突の可能性があるのでCSMA（Carrier  Sense  Multiple  Access）／CA（Collision  Avoidance）方式で制御される。MAPは、帯域を割り当てられたノードのみが通信可能な領域であり、ＧＷ装置１０（Hub）との接続時にノードからの要求に応じて、ＧＷ装置１０がノード毎の帯域（通信タイミング）を割り当てる。すなわち、MAPの中で、ノード毎の通信帯域が固定的に割当てられる。
【００２１】
一方で、各ノード３０は、superframe内において、ＧＷ装置１０とデータ通信を実行しない状態ではスリープ状態となり、データ通信が発生するタイミングで復帰する。具体的には、Ｔ０のsuperframe内のBeaconの開始タイミングで復帰し、その後スリープ状態に遷移した後、MAP内で自ノードに割当てられた送信タイミングになると復帰し、データ送信の完了後にスリープ状態となり、次のＴ１のsuperframe内のBeaconの開始タイミングで再度復帰する。
【００２２】
このように、各ノード３０は、データ送信を行うときだけ通常状態となり、それ以外はデータ送信などを抑制するスリープ状態となることで、電力消費を抑制する。ここで、各ノード３０は、Beaconの開始タイミングよりも、装置の立ち上がり時間や処理オーバーヘッド等を考慮した上で確実に通信できるまでの時間を考慮したＧＴだけ早く復帰する。すなわち、各ノード３０は、Beaconの開始時間ｔ、ＧＴが３０秒である場合、ｔよりも３０秒早く復帰する。
【００２３】
一般的に、このＧＴには、各ノード３０に用いられる全通信モジュールのクロック周波数（動作クロック）のズレを網羅できる期間を設定することになるので、結果としてスリープ状態の時間が短くなり、省電力の効果が小さい。
【００２４】
そこで、実施例１では、各ノード３０は、ＧＷ装置１０と自ノードとの間の時刻差を用いて、ＧＷ装置１０のクロック周波数と自ノードのクロック周波数との誤差であるクロック誤差を類推する。そして、各ノード３０は、類推されたクロック誤差にしたがって、データ通信を行うための準備時間であるＧＴを決定して設定する。すなわち、各ノード３０は、通信モジュール毎に違うクロック誤差の傾向を把握し、通信モジュール毎に最適なＧＴを動的に設定するので、省電力の効果を向上させることができる。
【００２５】
［機能構成］
図４は、実施例１にかかる各装置の機能構成を示す機能ブロック図である。ここでは、ＧＷ装置１０の機能構成とノード３０の機能構成について説明する。
【００２６】
（ＧＷ装置の構成）
図４に示すように、ＧＷ装置１０は、通信部１１、記憶部１２、制御部２０を有する。なお、記憶部１２は、メモリやハードディスクなどの記憶装置の一例であり、制御部２０は、プロセッサなどの一例である。
【００２７】
通信部１１は、各ノード３０との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、各ノード３０に報知信号（Beacon）を送信し、各ノード３０からセンシングデータを受信する。
【００２８】
記憶部１２は、プログラムやデータを記憶する記憶部であり、センサ値ＤＢ１３を記憶する。センサ値ＤＢ１３は、ノード毎に、各ノード３０から受信したセンサ値を記憶するデータベースである。例えば、センサ値ＤＢ１３は、ノードを識別する識別子、ノードが測定したセンサ値、センサ値を取得した日時などを対応付けて記憶する。
【００２９】
制御部２０は、ＧＷ装置１０全体を司る処理部であり、報知部２１とデータ受信部２２とを有する。なお、報知部２１とデータ受信部２２は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。また、制御部２０は、各ノードにデータ送信時間の割当て、すなわち上記MAP内の割当てを実行する。
【００３０】
報知部２１は、時刻情報を含めた報知信号を生成して、各ノード３０に送信する処理部である。例えば、報知部２１は、各superframeの先頭である報知信号の送信タイミングに到達すると、現在のsuperframeの先頭からの経過時間を含めた報知信号を生成する。そして、報知部２１は、時刻情報として経過時間を含む報知信号を、各ノード３０に送信する。
【００３１】
データ受信部２２は、各ノード３０からセンシングデータを受信する処理部である。具体的には、データ受信部２２は、MAPの時間に到達すると、各ノードに割当てた時間で、各ノードからセンシングデータを受信する。そして、データ受信部２２は、受信したセンシングデータからセンサ値を取得して、センサ値ＤＢ１３に格納する。なお、データ受信部２２は、受信したセンシングデータを管理サーバ５に送信することもできる。
【００３２】
（ノードの構成）
図４に示すように、ノード３０は、通信部３１、記憶部３２、制御部４０を有する。なお、記憶部３２は、メモリやハードディスクなどの記憶装置の一例であり、制御部４０は、プロセッサなどの一例である。
【００３３】
通信部３１は、ＧＷ装置１０との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部３１は、ＧＷ装置１０から報知信号を受信し、ＧＷ装置１０にセンシングデータを送信する。
【００３４】
記憶部３２は、プログラムやデータを記憶する記憶部であり、ＧＴ値ＤＢ３３と補正幅ＤＢ３４を記憶する。ＧＴ値ＤＢ３３は、ノードが設定するＧＴ値を記憶するデータベースである。ＧＴ値ＤＢ３３に記憶される情報は、データ通信の開始時は初期値が設定され、その後は後述する決定部４６によって更新される。なお、初期値には、クロック制度の最大誤差のカタログ値を使用する。例えば、ＧＴの初期値は、「初期値＝ハードウェア起動時間＋（最大クロック誤差［ppm］×スリープ設定時間）」で算出される。なお、スリープ設定時間は、スリープしている時間であり、例えばBeaconの間隔、言い換えるとsuperframeの間隔である。
【００３５】
補正幅ＤＢ３４は、ＧＷ装置１０とノード３０との間の時間誤差の補正履歴を記憶するデータベースである。図５は、ノード３０の補正幅ＤＢに記憶される情報の例を示す図である。図５に示すように、補正幅ＤＢ３４は、「回数、時刻補正幅（ｍｓｅｃ）」を記憶する。「回数」は、補正回数を示し、「時刻補正幅」は、補正された時刻を示す。図５の場合、１回目は６．４ｍｓｅｃ補正され、２回目は、５．６ｍｓｅｃ補正されたことを示す。
【００３６】
制御部４０は、ノード３０の全体を司る処理部であり、センシング部４１、データ処理部４２、状態遷移部４３、受信部４４、補正部４５、決定部４６を有する。なお、センシング部４１、データ処理部４２、状態遷移部４３、受信部４４、補正部４５、決定部４６は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００３７】
センシング部４１は、センサを用いてセンサ値を取得する処理部である。例えば、センシング部４１は、定期的にまたはデータ送信タイミングで、センサからセンサ値を取得する。そして、センシング部４１は、取得したセンサ値をデータ処理部４２に出力する。
【００３８】
データ処理部４２は、センシングデータをＧＷ装置１０に送信する処理部である。具体的には、データ処理部４２は、センシングデータの送信タイミングになると、センシング部４１から取得したセンサ値を含むセンシングデータを生成してＧＷ装置１０に送信する。例えば、データ処理部４２は、ＢＡＮのsuperframe内のMAPにおいて、自ノードの送信タイミングになると、センシングデータをＧＷ装置１０に送信する。
【００３９】
状態遷移部４３は、データ通信が発生しない期間はノード３０をスリープさせ、データ通信が発生するタイミングで復帰させる処理部である。具体的には、状態遷移部４３は、図３に示すように、Beaconの開始タイミングで復帰させ、その後スリープ状態に遷移させた後、MAP内で自ノードに割当てられた送信タイミングになると復帰させ、データ送信の完了後にスリープ状態に遷移させて、次のBeaconの開始タイミングで再度復帰させる。なお、ここで設定されるＧＴは、ＧＴ値ＤＢ３３に記憶されるＧＴ値に基づいて設定される。つまり、初期段階では初期値が設定、ＧＴ値が更新されると、更新後のＧＴ値が設定される。
【００４０】
受信部４４は、ＧＷ装置１０から報知信号を受信する処理部である。具体的には、受信部４４は、ＧＷ装置１０が各superframe内のBeaconのタイミングで送信した報知信号を受信し、当該報知信号を補正部４５に出力する。
【００４１】
補正部４５は、ＧＷ装置１０とノード３０との間の時刻差を算出して、時刻同期を実行する処理部である。具体的には、補正部４５は、報知信号が送信された時刻と報知信号を受信した時刻との差分を時刻差として算出する。
【００４２】
さらに、補正部４５は、ＧＷ装置１０とノード３０との間の送信レートと、報知信号のデータサイズとを考慮して、報知信号を受信すると予想される理論的な受信時刻を算出する。そして、補正部４５は、報知信号から予測された理論的な受信時刻と、実際に報知信号を受信した受信時刻との差分を時刻差として算出することもできる。
【００４３】
ここで、ＢＡＮの無線フレームで送信される報知信号に基づく時刻同期を算出する。図６は、ＢＡＮによる時刻同期を説明する図である。図６に示すように、ＧＷ装置１０は、Beaconのタイミングになると、無線フレーム（superframe）の先頭からの経過時間をペイロードに設定した報知信号をノード３０に送信する。また、ノード３０の補正部４５は、報知信号を受信したときの受信時刻を無線フレームの先頭からの経過時間と特定する。そして、補正部４５は、報知信号内の経過時間（時刻情報）＋報知信号の転送時間と、受信時刻（経過時間）とを比較し、差分がある場合は、ノード３０の時刻を補正する。そして、補正部４５は、時刻補正幅を補正幅ＤＢ３４に格納する。
【００４４】
一例を挙げると、報知信号内の送信時刻（時刻情報）が５０ｍｓｅｃ、通信レートが１００ｋｂｐｓ、報知信号のデータサイズを５０ｂｙｔｅｓ、報知信号の受信時の経過時間を６０ｍｓｅｃとして説明する。この場合、補正部４５は、送信時間を考慮して「５０＋５０ｂｙｔｅｓ／１００ｋｂｐｓ＝５０＋（５０×８）／１００＝５４ｍｓ」を算出し、ＧＷ装置１０側で無線フレームの先頭から５４ｍｓｅｃ後に受信が完了する予定であると計算する。しかし、補正部４５は、報知信号の受信時の経過時間が６０ｍｓｅｃであったことから、６０−５４＝６を時刻差として算出する。そして、補正部４５は、自ノード３０の時刻を６ｍｓｅｃ遅くするように補正する。
【００４５】
決定部４６は、時刻補正の補正幅を用いて、ＧＷ装置１０のクロック周波数とノード３０のクロック周波数の誤差であるクロック誤差を算出する処理部である。また、決定部４６は、算出したクロック誤差を用いて、ＢＴ値を決定する処理部である。具体的には、決定部４６は、補正部４５によって補正された時刻差を用いてクロック誤差を算出することもでき、時刻同期が所定回数実行された後、補正幅ＤＢ３４に記憶される最大の補正幅を用いてクロック誤差を算出することもできる。
【００４６】
例えば、決定部４６は、最大誤差が７ｍｓｅｃであり、スリープ設定時間が１時間である場合、クロック誤差を「７．０ｍｓｅｃ／１時間≒２ｐｐｍ」と算出する。そして、決定部４６は、上記ＧＴの算出手法を用いて、「（３６００秒×２ｐｐｍ）＋３ｍｓ（ハードウェア起動時間）＝１０．５ｍｓｅｃ」をＧＴとして算出する。その後、決定部４６は、算出したＧＴ（１０．５ｍｓｅｃ）をＧＴ値ＤＢ３３に格納する。
【００４７】
［ＧＴ設定処理の流れ］
図７は、実施例１にかかるＧＴ設定処理の流れを示すフローチャートである。図７に示すように、ノード３０の決定部４６は、ノード３０が初回起動すると、ＧＴの初期値を設定する（Ｓ１０１）。
【００４８】
その後、補正部４５は、報知信号が受信されるたびに、同期処理を実行する（Ｓ１０２）。そして、決定部４６は、規定回数以上の時刻同期が実行されると（Ｓ１０３：Ｙｅｓ）、補正幅ＤＢ３４を参照して、最大補正幅を取得する（Ｓ１０４）。
【００４９】
そして、決定部４６は、最大補正幅を用いてクロック誤差を算出するとともに、クロック誤差を用いてＧＴを更新する（Ｓ１０５）。その後、ノード３０は、スリープ状態となり、報知信号の待ち状態となる（Ｓ１０６）。なお、Ｓ１０３において、時刻同期が規定回数未満の場合（Ｓ１０３：Ｎｏ）、Ｓ１０６が実行される。
【００５０】
［同期処理の流れ］
図８は、実施例１にかかる同期処理の流れを示すフローチャートである。なお、ここで実行される処理は、図７のＳ１０２で実行される処理に該当する。
【００５１】
図８に示すように、ノード３０の受信部４４は、報知信号を受信すると（Ｓ２０１）、報知信号から、対向装置の時刻情報を抽出する（Ｓ２０２）。続いて、補正部４５は、報知信号を受信した時の自装置の時刻情報を取得し（Ｓ２０３）、両方の時刻情報を用いて差分を算出する（Ｓ２０４）。
【００５２】
その後、補正部４５は、算出した差分を用いて自装置の時刻を補正し（Ｓ２０５）、算出した差分を時刻補正幅として補正幅ＤＢ３４に格納する（Ｓ２０６）。
【００５３】
［データ送信処理の流れ］
図９は、実施例１にかかるデータ送信処理の流れを示すフローチャートである。なお、データ送信処理とＧＴ設定処理とは、依存関係はなく独立して実行される。
【００５４】
図９に示すように、ノード３０の状態遷移部４３は、スリープ状態からＧＴに到達すると（Ｓ３０１：Ｙｅｓ）、ノード３０をスリープ状態から復帰させる（Ｓ３０２）。続いて、状態遷移部４３は、報知信号が受信されると（Ｓ３０３：Ｙｅｓ）、ノード３０をスリープ状態にする（Ｓ３０４）。
【００５５】
その後、状態遷移部４３は、データ送信時間になると（Ｓ３０５：Ｙｅｓ）、ノード３０をスリープ状態から復帰させて通常状態に遷移させる（Ｓ３０６）。そして、センシング部４１は、センサ値を取得し（Ｓ３０７）、データ処理部４２は、センサ値をＧＷ装置１０に送信する（Ｓ３０８）。その後、状態遷移部４３は、センサ値の送信が完了すると、ノード３０をスリープ状態にする（Ｓ３０９）。
【００５６】
［効果］
上述したように、各ノード３０は、報知信号受信時に同期処理を実行し、同期処理実行時、時刻の補正幅を算出して蓄積しておく。そして、各ノード３０は、同期処理を規定回数完了した後、蓄積している時刻補正幅の中で最大の値を選択し、対向装置とのクロック誤差を類推する。続いて、各ノード３０は、類推したクロック誤差を利用してＧＴを初期値から更新する。
【００５７】
つまり、各ノード３０は、自装置のクロック周波数の誤差を求めて、自装置に適切なＧＴを設定することができる。このため、各ノード３０に一律なＧＴを設定することなく、各ノード３０の性能に一致したスリープ時間および復帰時間を設定することができるので、省電力の効果を向上させることができる。
【００５８】
次に、一般的な省電力の効果と実施例１による省電力の効果を試算した結果を説明する。図１０は、効果試算時の前提条件を示す図である。図１０に示すように、クロック周波数は１６ＭＨｚ、クロック誤差の最大誤差は２０ｐｐｍ、スリープ時の消費電力が０．００５ｍＡ、通常時の消費電力が５０ｍＡ、データ送信時の消費電力が６０ｍＡ、ハードウェア起動時間などのマージンが３ｍｓｅｃ、データ転送レートを１００ｋｂｐｓとする。
【００５９】
次に、効果試算時の無線条件を説明する。図１１は、効果試算時の無線条件を示す図である。ここでは、図３に示したＢＡＮを簡略化した無線フレームを図１１に示す。図１１に示すように、スリープ設定時間を１時間に設定し、１時間ごとに復帰とスリープとを繰り返す。また、送信対象のデータは５０ｋｂｐｓとし、データ転送時間は、「（５０×８）／１００ｋｐｂｓ＝４ｍｓ」とする。また、ＧＴは、マージン（３ｍｓ）＋クロック誤差に基づく値となる。ここで、クロック誤差は、最大２０ｐｐｍであり、実施例１で測定した実測値は２ｐｐｍとする。
【００６０】
このような条件において、従来と実施例１のそれぞれについて、ＧＴの試算結果と消費電力の試算結果とを図１２に示す。図１２は、効果試算の結果を示す図である。図１２に示すように、従来のＧＴは、「（３６００秒×２０ｐｐｍ）＋３ｍｓｅｃ＝７２ｍｓｅｃ＋３ｍｓｅｃ＝７５ｍｓｅｃ」となる。一方で、実施例１では、「（３６００秒×２ｐｐｍ）＋３ｍｓｅｃ＝７．２ｍｓｅｃ＋３ｍｓｅｃ＝１０．２ｍｓｅｃ」となる。したがって、実施例１の方が従来に比べて、６４．８ｍｓｅｃもスリープ時間が長い。
【００６１】
また、１時間あたりの各消費電力は、スリープ時間の消費電力＋通常時の消費電力＋データ送信時の消費電力として算出できる。すなわち、従来の消費電力は、「（（３６０００００−７５−４）×０．００５＋（７５×５０）＋（４×６０））／３６００＝０．００６１０８ｍＡｈ」となり、実施例１の消費電力は、「（（３６０００００−１０．２−４）×０．００５＋（１０．２×５０）＋（４×６０））／３６００≒０．００５２０８ｍＡｈ」となる。この結果、消費電流を１４．７％削減でき、電池の持続時間が１７．２％向上する結果を得ることができる。
【実施例２】
【００６２】
実施例１では、各ノード３０がＧＴを算出して設定する例を説明したが、これに限定されるものではなく、ＧＷ装置１０が各ノード３０のＧＴを算出することもできる。そこで、実施例２では、ＧＷ装置１０が各ノード３０のＧＴを算出して、各ノード３０に通知する例を説明する。なお、システムの全体構成等は、実施例１と同様なので、詳細な説明は省略する。
【００６３】
［算出手法］
まず、実施例２におけるＧＴの算出手法を説明する。具体的には、ＧＷ装置１０はいくつかの手法を用いて処理することができる。例えば、各ノード３０は、ノード３０側で報知信号を用いた時刻補正を行った際の時刻補正幅を保持しておき、センサシングデータ送信と併せてＧＷ装置１０側に補正幅を通知する。ＧＷ装置１０は、ノード３０側の時刻補正幅を受信すると、実施例１と同様の方式で時刻補正幅の蓄積を行う。そして、ＧＷ装置１０は、実施例１のノード３０と同様の手法を用いて、ノード３０のクロック誤差を類推してＧＴを算出し、算出したＧＴをノード３０に通知する。
【００６４】
別例としては、ＧＷ装置１０は、ＧＷ装置１０と各ノード３０との間でデータ送信タイミング（帯域）が固定的に割り当てられている場合、ＧＷ装置１０側のデータ受信時刻を用いて、時刻誤差を類推することもできる。具体的には、ＧＷ装置１０は、ノード３０毎の帯域割当（データ送信開始）時刻と送信データ長より、ＧＷ装置１０側でデータの受信予定時刻を算出する。そして、ＧＷ装置１０は、算出した時刻と実際の受信完了時刻の差分より、ノード３０との時刻誤差を類推し、内部のテーブルに保持する。
【００６５】
図１３は、実施例２の時刻誤差の類推を説明する図である。図１３に示すように、ＧＷ装置１０とノード３０との間では、データ送信時刻が予め取り決められている。この状態で、ノード３０は、予め決められた時間になると、ノード３０が認識しているアップリンク用の帯域を用いてセンシングデータをＧＷ装置１０に送信する。ＧＷ装置１０は、センシングデータを実際に受信したときの受信時刻と、送信時間等を用いて算出した受信予定時刻（理論値）と比較して、ＧＷ装置１０とノード３０との時刻差を算出する。その後、ＧＷ装置１０は、時刻差からクロック誤差を算出し、クロック誤差からＧＴを算出して、ノード３０に通知する。ノード３０は、通知されたＧＴを設定する。
【００６６】
［機能構成］
図１４は、実施例２にかかる各装置の機能構成を示す機能ブロック図である。ここでは、図１３で説明した手法を説明する。
【００６７】
（ＧＷ装置の構成）
図１４に示すように、ＧＷ装置１０は、通信部１１、記憶部１２、制御部２０を有する。なお、通信部１１および記憶部１２は、実施例１と同様なので、詳細な説明を省略する。制御部２０は、ＧＷ装置１０全体を司る処理部であり、データ受信部２３、類推部２４、通知部２５を有する。
【００６８】
データ受信部２３は、センシングデータをノード３０から受信する処理部である。具体的には、データ受信部２３は、ノード３０が予め指定された時間になったときに送信したセンシングデータを受信する。
【００６９】
類推部２４は、ノード３０との時刻差、ノード３０とのクロック誤差を類推する処理部である。例えば、ノード３０からＧＷ装置１０へのセンシングデータ送信用の帯域が、無線フレームの先頭から１００ｍｓｅｃの時刻と割り当てられており、その帯域を用いてノード３０からＧＷ装置１０に対して通信レート１００ｋｂｐｓで５０バイトのデータを送信したとする。
【００７０】
この場合、類推部２４は、「１００＋５０バイト／１００ｋｂｐｓ」によって、ＧＷ装置１０側で無線フレームの先頭から１０４ｍｓｅｃ後に受信が完了する予定であると計算する。しかし、類推部２４は、実際のデータ受信完了時刻が無線フレームの先頭から１０９ｍｓｅｃであった場合、１０９−１０４＝５ｍｓｅｃがＧＷ装置１０とノード３０とのの時刻誤差であると類推する。
【００７１】
さらに、類推部２４は、クロック誤差として、「時刻差／スリープ設定時間＝５．０ｍｓｅｃ／１時間≒１ｐｐｍ」を算出する。この結果、類推部２４は、「ＧＴの初期値＝ハードウェア起動時間＋（最大クロック誤差［ｐｐｍ］×スリープ設定時間）」を用いて、「３ｍｓ（ハードウェア起動時間）＋（３６００秒×１ｐｐｍ）＝６．６ｍｓｅｃ」をＧＴとして算出する。そして、類推部２４は、算出結果「ＧＴ＝６．６ｍｓｅｃ」を通知部２５に出力する。
【００７２】
通知部２５は、類推部２４によって決定されたＧＴの値を該当するノード３０に送信する処理部である。例えば、通知部２５は、算出結果「ＧＴ＝６．６ｍｓｅｃ」をノード３０に送信して、ノード３０にＧＴの更新を指示する。
【００７３】
（ノードの構成）
図１４に示すように、ノード３０は、通信部３１、記憶部３２、制御部４０を有する。なお、通信部３１および記憶部３２は、実施例１と同様なので、詳細な説明を省略する。制御部４０は、ノード３０全体を司る処理部であり、センシング部４１、データ処理部４２、状態遷移部４３、ＧＴ補正部４７を有する。このうち、ここでは、実施例１とは異なる処理を実行するデータ処理部４２とＧＴ補正部４７について説明する。
【００７４】
データ処理部４２は、予め指定した時間になると、時刻情報を含めたセンシングデータを生成して、ＧＷ装置１０に送信する処理部である。例えば、データ処理部４２は、各superframeにおいて、送信タイミングに到達すると、現在のsuperframeの先頭からの経過時間およびセンサ値を含めたセンシングデータを生成する。そして、データ処理部４２は、センシングデータを、ＧＷ装置１０に送信する。
【００７５】
ＧＴ補正部４７は、ＧＴの初期設定および更新を実行する処理部である。例えば、ＧＴ補正部４７は、ノード３０の初回起動時はＧＴ値ＤＢ３３に初期値を設定する。なお、初期値は、実施例１と同様の手法で算出することができる。そして、ＧＴ補正部４７は、ＧＷ装置１０からＧＴ値を受信すると、受信したＧＴ値でＧＴ値ＤＢ３３に記憶される値を更新する。
【００７６】
［フレーム構成］
図１５は、実施例２におけるＢＡＮのフレーム構成を説明する図である。上述した手法により、各ノード３０は、報知信号も使用しない状態で、自装置のデータ送信タイミングを認識していることから、MAPで割り与えられたデータ送信の直前に復帰することができる。このとき、図１５示すように、ノード３０は、データ送信の開始時刻よりも、ＧＷ装置１０から通知されたＧＴ時間分だけ前に復帰する。この結果、スリープ状態をより長くすることができる。
【００７７】
［データ送信処理］
図１６は、実施例２にかかるデータ送信処理の流れを示すフローチャートである。図１６に示すように、ノード３０の状態遷移部４３は、スリープ状態からＧＴに到達すると（Ｓ４０１：Ｙｅｓ）、ノード３０をスリープ状態から復帰させる（Ｓ４０２）。
【００７８】
続いて、センシング部４１は、センサ値を取得し（Ｓ４０３）、データ処理部４２は、時刻情報およびセンサ値を含むセンシングデータをＧＷ装置１０に送信する（Ｓ４０４）。その後、状態遷移部４３は、センシングデータの送信が完了すると、ノード３０をスリープ状態にする（Ｓ４０５）。
【００７９】
［ＧＴ算出処理］
図１７は、実施例２にかかるＧＴ算出処理の流れを示すフローチャートである。図１７に示すように、ＧＷ装置１０の類推部２４は、データ受信部２３によってセンシングデータを受信すると（Ｓ５０１：Ｙｅｓ）、受信時刻を特定する（Ｓ５０２）。
【００８０】
続いて、類推部２４は、センシングデータに含まれる時刻情報等を用いて、受信予定時刻（理論値）を算出し（Ｓ５０３）、受信時刻と理論値との差分を用いてクロック誤差を類推し（Ｓ５０４）、類推結果を用いてＧＴを算出する（Ｓ５０５）。そして、通知部２５は、算出したＧＴの値をノード３０に通知する（Ｓ５０６）。
【００８１】
［効果］
図１５に示したように、各ノード３０は、MAPで割り与えられたデータ送信の開始時刻よりも、ＧＷ装置１０から通知されたＧＴ時間分だけ前に復帰することができるので、スリープ状態をより長くすることができ、消費電力をより削減することができる。
【実施例３】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００８３】
［通信手法］
上記実施例１−２では、無線通信を例にして説明したが、これに限定されるものではなく、各種有線による通信であっても同様に処理することができる。また、実施例１では、superframeで通常状態に遷移した後、データ送信時までスリープ状態に再度遷移する例を説明したが、これに限定されるものではない。例えば、ノード３０は、superframeで通常状態に遷移した後、データ送信時まで通常状態を維持し、データ送信完了後から次のsuperframeまでスリープ状態になるように制御することもできる。
【００８４】
［ノード単位］
上記実施例１−２で説明した処理は、各ノード単位で実行することができる。また、定期的に実行することで、内蔵する電子回路の経年劣化に追従して、ＧＴを更新することができる。また、実施例１と２は、矛盾のない範囲内で適宜組み合わせることができる。
【００８５】
［システム］
記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８７】
［ＧＷ装置１０のハードウェア構成］
図１８は、ＧＷ装置１０のハードウェア構成例を示す図である。図１８に示すように、ＧＷ装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。
【００８８】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードや無線インタフェースなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。
【００８９】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【００９０】
また、ＧＷ装置１０は、プログラムを読み出して実行することで通信方法を実行する情報処理装置として動作する。つまり、ＧＷ装置１０は、報知部２１とデータ受信部２２と同様の機能を実行するプログラムやデータ受信部２３、類推部２４、通知部２５と同様の機能を実行するプログラムを実行する。この結果、ＧＷ装置１０は、報知部２１、データ受信部２２、データ受信部２３、類推部２４、通知部２５と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、ＧＷ装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００９１】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【００９２】
［ノード３０のハードウェア構成］
図１９は、ノード３０のハードウェア構成例を示す図である。図１９に示すように、ノード３０は、無線部３０ａ、センサ３０ｃ、ＨＤＤ３０ｄ、メモリ３０ｅ、プロセッサ３０ｆを有する。
【００９３】
無線部３０ａは、アンテナ３０ｂを介して、他の装置の通信を制御する無線インタフェースなどである。センサ３０ｃは、水位などを測定するセンサ装置である。ＨＤＤ３０ｄは、プログラムやデータなどを記憶する記憶装置の一例である。
【００９４】
メモリ３０ｅの一例としては、ＳＤＲＡＭ等のＲＡＭ、ＲＯＭ、フラッシュメモリ等が挙げられる。プロセッサ３０ｆの一例としては、ＭＣＵやＣＰＵ等が挙げられる。
【００９５】
また、ノード３０は、プログラムを読み出して実行することで通信方法を実行する情報処理装置として動作する。つまり、ノード３０は、センシング部４１、データ処理部４２、状態遷移部４３、受信部４４、補正部４５、決定部４６、ＧＴ補正部４７と同様の機能を実行するプログラムを実行する。この結果、ノード３０は、データ処理部４２、状態遷移部４３、受信部４４、補正部４５、決定部４６、ＧＴ補正部４７と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、ノード３０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００９６】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００９７】
１０  ＧＷ装置
１１  通信部
１２  記憶部
１３  センサ値ＤＢ
２０  制御部
２１  報知部
２２、２３  データ受信部
２４  類推部
２５  通知部
３０  ノード
３１  通信部
３２  記憶部
３３  ＧＴ値ＤＢ
４０  制御部
４１  センシング部
４２  データ処理部
４３  状態遷移部
４４  受信部
４５  補正部
４６  決定部
４７  ＧＴ補正部
【図１】
2018166315.tif 000003
【図２】
2018166315.tif 000004
【図３】
2018166315.tif 000005
【図４】
2018166315.tif 000006
【図５】
2018166315.tif 000007
【図６】
2018166315.tif 000008
【図７】
2018166315.tif 000009
【図８】
2018166315.tif 000010
【図９】
2018166315.tif 000011
【図１０】
2018166315.tif 000012
【図１１】
2018166315.tif 000013
【図１２】
2018166315.tif 000014
【図１３】
2018166315.tif 000015
【図１４】
2018166315.tif 000016
【図１５】
2018166315.tif 000017
【図１６】
2018166315.tif 000018
【図１７】
2018166315.tif 000019
【図１８】
2018166315.tif 000020
【図１９】
2018166315.tif 000021