(57)【特許請求の範囲】
【請求項１】
ネットワークにおけるノードのネットワークイベントタイマを最適化する方法であって、
前記ネットワークを介して前記ノードが送信するデータを取得し、前記ノードは前記ネットワークに関連付けられたアクションを判断する根拠としてクロックのタイムインターバルを用いるものであり、
この方法はさらに、前記ネットワークのデータ転送速度と前記データのサイズとに基づいて、前記ネットワークを介して前記データを送信する時間に対応する送信にかかる時間を計算し、
前記送信にかかる時間に基づいて送信遅延を計算し、該送信遅延は、クロック間隔よりも短く、前記ノードが前記データの送信を完了する時を制御するものであり、
この方法はさらに、前記送信遅延の終了後、前記データを送信し、
受信先からの前記データの確認応答の受信を待機し、前記データの送信が完了するとイベントタイマが開始され、前記イベントタイマが、前記イベントタイマが開始してから経過した前記タイムインターバルのカウントに基づいて時間を測定する、方法。
【請求項２】
さらに、
前記タイムインターバルの長さで割った前記送信にかかる時間から、残り時間に等しいオフセットを計算し、
前記オフセットと前記タイムインターバルの長さとの差異に等しい前記送信遅延を計算する、請求項１に記載の方法。
【請求項３】
前記データの送信は、前記タイムインターバルのうち１以上のタイムインターバルが経過した後に、前記送信遅延に等しい長さの時間に続いて開始される、請求項１に記載の方法。
【請求項４】
前記ネットワークが、電気電子技術者協会（ＩＥＥＥ）８０２．１５．４規格を使用する、請求項１に記載の方法。
【請求項５】
前記ノードは、さらに、前記クロックよりも分解能が高い送信タイマを備え、前記送信タイマは、いつ前記データを送信するかを判断する、請求項１に記載の方法。
【請求項６】
前記ネットワークを介して送信された前記データは、前記データの前記受信先からの前記確認応答の送信を必要とし、前記イベントタイマは前記確認応答の受信のタイムアウトと関連付けられている、請求項１に記載の方法。
【請求項７】
前記データは、ペイロードと、前記ネットワーク上で前記ペイロードを送信するフレームとを含む、請求項１に記載の方法。
【請求項８】
ノードにおいて実行可能なプログラムを具現する非一時的なコンピュータ可読媒体であって、前記プログラムはコードを含み、
該コードは前記ノードにネットワークを介して前記ノードが送信するデータを取得させるものであり、前記ノードは前記ネットワークに関連付けられたアクションを判断する根拠としてクロックのタイムインターバルを用いるものであり、
前記コードは前記ノードに、前記ネットワークのデータ転送速度と前記データのサイズとに基づいて、前記ネットワークを介して前記データを送信する時間に対応する送信にかかる時間を計算させ、
前記送信にかかる時間に基づいて送信遅延を計算させるものであり、該送信遅延は、クロック間隔よりも短くかつ前記ノードが前記データの送信を完了する時を制御するものであり、
前記コードは前記ノードに、前記送信遅延の終了後、前記データを送信させ、
前記データの送信が完了するとイベントタイマを開始させるものであり、前記イベントタイマは前記イベントタイマが開始してから経過した前記タイムインターバルのカウントに基づいて時間を測定するものである、非一時的なコンピュータ可読媒体。
【請求項９】
前記データの送信は、前記タイムインターバルのうち１以上のタイムインターバルが経過した後に、前記送信遅延に等しい長さの時間に続いて開始される、請求項８に記載の非一時的なコンピュータ可読媒体。
【請求項１０】
前記プログラムはさらに、
前記タイムインターバルの長さで割った前記送信にかかる時間から、残り時間に等しいオフセットを計算するコードと、
前記オフセットと前記タイムインターバルの長さとの差異に等しい前記送信遅延を計算するコードとを含む、請求項８に記載の非一時的なコンピュータ可読媒体。
【請求項１１】
前記ノードは、さらに、前記クロックよりも分解能が高い送信タイマを備え、前記送信タイマは、いつ前記データを送信するかを判断する、請求項８に記載の非一時的なコンピュータ可読媒体。
【請求項１２】
前記データは、ペイロードと、前記ネットワーク上で前記ペイロードを送信するフレームとを含む、請求項８に記載の非一時的なコンピュータ可読媒体。
【請求項１３】
前記ネットワークを介して送信された前記データは、前記データの受信先からの確認応答の送信を必要とし、前記イベントタイマは前記確認応答の受信のタイムアウトと関連付けられている、請求項８に記載の非一時的なコンピュータ可読媒体。
【請求項１４】
ノードであって、
プロセッサと、
ネットワーク上で通信するためのネットワークインターフェースと、
前記ノードにおいて実行されるタイマ最適化アプリケーションによって構成されるメモリと、を備え、
前記タイマ最適化アプリケーションは、前記ノードに、
前記ネットワークを介して前記ノードが送信するデータを取得させ、前記ネットワークに関連付けられたアクションを判断する根拠としてクロックのタイムインターバルを用いさせ、
前記ネットワークのデータ転送速度と前記データのサイズとに基づいて、前記ネットワークを介して前記データを送信する時間に対応する送信にかかる時間を計算させ、
前記送信にかかる時間に基づいて送信遅延を計算させ、該送信遅延は、クロック間隔よりも短く、前記ノードが前記データの送信を完了する時を制御するものであり、
前記送信遅延の終了後、前記データを送信させ、
受信先からの前記データの確認応答の受信を待機させるものであり、
前記データの送信が完了するとイベントタイマが開始され、前記イベントタイマは前記イベントタイマが開始してから経過した前記タイムインターバルのカウントに基づいて時間を測定するものである、ノード。
【請求項１５】
前記データの送信は、前記タイムインターバルのうち１以上のタイムインターバルが経過した後に、前記送信遅延に等しい長さの時間に続いて開始される、請求項１４に記載のノード。
【請求項１６】
前記ノードは、さらに、前記クロックよりも分解能が高い送信タイマを備え、前記送信タイマは、いつ前記データを送信するかを判断する、請求項１４に記載のノード。
【請求項１７】
前記タイマ最適化アプリケーションは、さらに、前記ノードに、
前記タイムインターバルの長さで割った前記送信にかかる時間から、残り時間に等しいオフセットを計算させ、
前記オフセットと前記タイムインターバルの長さとの差異に等しい前記送信遅延を計算させる、請求項１４に記載のノード。
【請求項１８】
前記ネットワークを介して送信された前記データは、前記データの前記受信先からの前記確認応答の送信を必要とし、前記イベントタイマは前記確認応答の受信のタイムアウトと関連付けられている、請求項１４に記載のノード。
【請求項１９】
前記データは、ペイロードと、前記ネットワーク上で前記ペイロードを送信するフレームとを含む、請求項１４に記載のノード。
【請求項２０】
前記タイムインターバルのうちある１つのタイムインターバルの経過後の許容範囲の閾値内に、前記データの送信が完了する、請求項１４に記載のノード。
【発明の詳細な説明】
【背景技術】
【０００１】
電気電子技術者協会（ＩＥＥＥ）８０２．１５．４ファミリーの規格で定義されるワイヤレスメッシュネットワーク等のネットワークにおいて、データ受信先からの確認応答が期待されるデータ送信が行われることがある。ネットワーク規格は、送信元が確認応答を受けるべきタイムアウト期間を定義することができる。タイムアウト期間中に確認応答を受け取れない場合、データの送信元は、受信先へのデータの再送信、エラー生成、および／またはその他の考えられる対応等の対応アクションを開始することができる。ネットワークが効率的に動作し、かつネットワーク規格に準拠するために、ネットワーク内で通信する装置は、データ送信と確認応答受け取りの間等の様々なネットワークイベント間の経過時間にある一定の精度で合致する必要がある。ネットワーク装置のクロックは十分に正確であるが、タイムアウトを測定するタイマは、状況によってはネットワーク規格に準拠するために必要な精度を欠いていることがある。
【発明の概要】
【０００２】
本発明の様々な態様は、ネットワーク内のノードのネットワークイベントタイマの最適化に関する。一実施形態において、ノードは、ネットワークを介してノードが送信するデータを取得する。ノードは、クロックのタイムインターバル（タイムインターバル）を、ネットワークに関連付けられたアクションの判断の根拠として用いる。ネットワークを介したデータの送信に必要な時間を表す送信にかかる時間は、ネットワークを介したデータ転送速度とデータのサイズに基づいて計算される。ノードは、各タイムインターバルの長さで割った送信にかかる時間から、残り時間に等しいオフセットを計算してもよい。また、ノードは、オフセットと各タイムインターバルの長さとの差異に等しい送信遅延を計算してもよい。
【０００３】
ノードは、送信にかかる時間に基づく送信遅延の後にネットワークを介してデータを送信する。送信遅延は、クロックのタイムインターバルのいずれかの完了に一致するまたはその後の閾値内に送信が完了する場合に、データ送信が始まるようにすることができる。データの送信は、タイムインターバルのいずれかの完了の後に始まってもよく、その後送信遅延に等しい長さの時間が続く。送信が完了すると、ノードはイベントタイマを開始し、イベントタイマは、イベントタイマの開始から経過したタイムインターバルのカウントに基づいて時間を測定する。イベントタイマは、ノードにより、受信先からデータの確認応答の受け取りを待機する時間の長さを測定するために用いることもできる。
【図面の簡単な説明】
【０００４】
本開示の多くの態様は、以下の図面を参照することでより良く理解される。各図の要素は縮尺通りとは限らず、本開示の原則を明確に表すことに重点を置いている。また、図面を通して、各図における類似の参照番号は対応する要素を示す。
【０００５】
【図１】図１は、本開示の様々な実施形態にかかるメッシュネットワークを示す図である。
【０００６】
【図２】図２は、本開示の様々な実施形態にかかるネットワークにおけるノードの例示的なタイミング図である。
【図３】図３は、本開示の様々な実施形態にかかるネットワークにおけるノードの例示的なタイミング図である。
【０００７】
【図４】図４は、本開示の様々な実施形態にかかる図１のネットワークにおけるノードによって実施される機能の一例を示すフローチャートである。
【０００８】
【図５】図５は、本開示の様々な実施形態にかかる図１のネットワークにおいて用いられるノードの一例を示す模式的なブロック図である。
【発明を実施するための形態】
【０００９】
本明細書において開示される技術は、ＩＥＥＥ８０２．１５．４ファミリーの規格で定義されるワイヤレスメッシュネットワークまたはその他の考えられる種類のネットワーク等、ネットワーク内の装置のネットワークイベントタイマの分解能の最適化を目的とするものである。例えば、メッシュネットワークにおいて、各ノードは、これと通信可能な他のノード（通常、隣接ノードと呼ばれる）を得るまたは識別することができ、これらノードについてのある種の情報およびパフォーマンスメトリックを取得して通信を容易にすることができる。ノードは、このメトリックを用いて、識別したノードのそれぞれをスコア付けし、識別されたノードのうち、メッセージを受信する送信先すなわち親ノードへの情報の送信にどのノードが最適なオプションであるかを判断することができる。親ノードを識別したノードは、同意的に、親ノードの子ノードと呼ぶことができる。
【００１０】
このように他のノードを識別し、これらのノードと通信リンクを確立することにより、各ノードは、メッシュネットワーク内における情報の送受信に利用可能な、自身のノードネットワークを確立する。ノードは、その親ノードに、例えば中央ノードまたは他のノードからのメッセージの受信を頼ってもよい。ネットワーク規格によっては、メッセージの受信が成功した際に受信ノードが送信元ノードに確認応答（通常、「ＡＣＫ」と呼ばれる）を送信するように１以上のメッセージタイプを定義することができる。受信後に確認応答を送信する対象のメッセージを、「確認応答フレーム」と呼んでもよい。また、これらの規格はタイムアウト期間を定義してもよく、このタイムアウト期間中にメッセージ受信先から確認応答が受信されない場合、確認応答フレームの送信元が対応アクション（例：フレームの再送信）を開始する。このような規格を順守し、ネットワークにおける適切な動作を保証するために、ネットワーク内のノードは、タイムアウト期間等の定義された期間の時間を正確に測定するタイマを用いることになる。
【００１１】
ノードは十分に正確なクロックを使用することができるが、ノードのタイマは、ネットワークイベントにおけるタイマの開始から経過したクロック（ｃｌｏｃｋ）の「チック(ｔｉｃｋｓ)」を単位として、ネットワークイベントの経過時間を、測定することができる。クロックのチックは、クロックのタイムインターバルの間の境界を示す。例えば、クロックは１ミリ秒（ｍｓ）のタイムインターバルを用いてもよく、これにより、クロックのチック間で経過する時間はタイムインターバルの1つ、この例では１ｍｓに等しい。タイマがタイムインターバルの開始時以外に開始された場合、次のクロックのチックまでの経過時間は、１タイムインターバルの全長未満となる。ただし、それでも、１タイムインターバルの全長が経過したものとしてクロックのチックをカウントするようノードのタイマを構成することができる。したがって、カウントの正確さを向上するために、本明細書の実施例においては、タイムインターバルの最初にタイマを開始するよう構成される。
【００１２】
このため、データ送信が完了するとイベントタイマが開始されることになる場合、ノードは、送信がタイムインターバルの終了と同時に完了するようなスケジュールでデータの送信にかかる時間を判断する必要がある。言うまでもなく、タイムインターバルの終了直後の許容できる範囲の閾値内にデータ送信が完了するようにしてもよい。このように、クロックのタイムインターバルの開始時以外にタイマを開始することによる経過時間のランダムな変化からタイマを離すことにより、任意の許容範囲内でネットワークタイマの正確さが最適化される。
【００１３】
本明細書において、「ノード」は、メッシュネットワークにおけるメッセージの分配に関する機能を果たすことができるインテリジェント装置を含む。あるシステムでは、ノードは、家やアパート等の施設におかれたガス、水道、電力等の公益資源の消費量を測定するメータであってもよい。このようなメータは、アドバンスド・メータリング・インフラストラクチャ（ＡＭＩ）や、無線周波数（ＲＦ）ネットワークの一部であってもよい。ノードの他の例としては、ネットワークに取り付けられ、通信チャネル上で情報を送受信または転送することができる、ルータ、コレクタもしくは収集点、ホストコンピュータ、ハブ、またはその他の電子機器がある。
【００１４】
ノードは、本発明の実施例においてノードを機能させることができる複数の要素を含んでもよい。例えば、ノードは、ノードをメッシュネットワーク内の類似のノードおよび／または他の装置と通信可能とすることができる無線機を含んでもよい。各ノードの無線機は、この無線機をコンピュータのように機能させることができるプログラマブルロジックコントローラ（ＰＬＣ）のような装置を含んでもよく、コンピュータ機能およびコマンド機能を実行し、本明細書に記載される本発明の実施例を実現することができる。また、ノードは、他のノードとの通信に関する情報を保存する記憶媒体を含んでもよい。このような記憶媒体には、例えば、ノードの内部に設けられた、またはネットワークを介してノードがアクセス可能な、メモリ、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、またはその他の記憶装置がある。また、ノードは、計時を行う水晶発振器（すなわちクロック）と、バックアップ電源となるバッテリとを含んでもよい。ノードには、バッテリのみにより電力供給されるものもある。
【００１５】
本明細書において、「送信にかかる時間」は、所定量のデータの送信に必要な時間の長さを指す。ある実施例では、データは、ペイロードと、ネットワーク上でペイロードを送信するためのフレームとを含む。
【００１６】
次に図を参照すると、図１に、本明細書に記載の技術を実施可能な例示的メッシュネットワーク１０を示す。メッシュネットワーク１０は、コレクタノード２０と無線ノード２１〜３１とを含むことができる。コレクタノード２０は、ノード２１〜３１がノードに関連付けられた施設におけるガス、水道、電力の消費量の測定等の情報を送信する収集点として機能してもよい。すでに述べたように、ノード２１〜３１は、メッシュネットワーク内の他のノードと通信してそのような通信を容易にするためのインテリジェントな判断を行うために十分なネットワークワーキングおよび演算能力を備えることができる。「コレクタノード」は、少なくともノード２１〜３１と同じ機能と性能を備えるよう構成されてもよい。加えて、コレクタノード２０は、ノード２１〜３１からの情報を格納するに十分なストレージ性能、およびいくつかの例では、ノードから受信した情報を処理するためのより高い演算能力を備えることができる。別の例では、コマンドセンタもしくは他のタイプのヘッドエンドシステム等のヘッドエンドシステム、またはその他のコンピュータ装置（不図示）を、ノードから受信した情報の処理に用いてもよい。
【００１７】
すでに述べたように、通常の動作中において、タイマがノードのクロックによって用いられるタイムインターバルとは非同期的に開始されるとき、ノード２０〜３１でのネットワークイベントで用いられるタイマが見せる正確さは低い。図２に、ノードのクロックとの非同期性によりノード２０〜３１のタイマの正確さが低減される状況の例を示すタイミング図を示す。
【００１８】
この例では、ノードがネットワークを介して送信するデータを取得する。ノードのクロックのタイムライン２０３において、クロックのタイムインターバル間の境界は、境界マーカＴ１〜Ｔ１３で示されている。タイムインターバルの長さは任意の適切な時間であってよいが、この例においてはタイムインターバルの長さを１ｍｓとする。図に示すように、境界Ｔ２において、ノードが送信するデータが取得され、ネットワークを介して送信できるようになっている。データの送信にかかる時間２０６または送信完了時のクロックのタイムインターバル位置を考慮することなく、ノードはすぐに境界Ｔ２から開始するデータの送信を開始する。
【００１９】
境界Ｔ５およびＴ６の間のマーカ２０９において、ノードによるデータの送信が完了する。この例では、ノードにより送信されたデータは確認応答フレームであり、ネットワーク規格によりデータの送信元がデータの送信完了後５ｍｓ以内にＡＣＫを受信することが規定されている。また、ネットワーク規格は、確認応答フレームの送信後ＡＣＫが受信されない場合には、データの送信元がデータを再送信することを規定する。よって、確認応答フレームを送信するための５ｍｓの待機時間を満たすために、送信元ノードはタイマを確認応答フレームのデータ送信の完了後５ｍｓに設定する。そのため、タイマもマーカ２０９で開始されることになる。
【００２０】
既に述べたように、ノードのタイマは、経過クロックチックをカウントすることにより経過時間を測定するよう構成される。この例におけるタイマが５ｍｓに設定され、クロックチックのタイムインターバルが１ｍｓであるため、タイマは、セットされてから５クロックチックが経過した後に完了することになる。したがって、イベントタイマ時間２１２は、タイマがマーカ２０９で開始してから５クロックチック後であるＴ１０で終了する。５クロックチックが経過しても、経過時間は５ｍｓの時間を意味する意図されたタイマ時間２１５よりも短いが、これはタイマがＴ５境界ではなくＴ５とＴ６の境界の間のマーカ２０９で開始されるからである。そのため、タイマの第１クロックチック（すなわちＴ６境界）における経過時間は、タイムインターバルの全長よりも短い。アラインメント差２１８は、５ｍｓの意図されたタイマ時間２１５と約４．５ｍｓとなる実際のイベントタイマ時間２１２との差を示す。
【００２１】
ノードのタイマが不正確であることの結果は、多様である。図２に示す状況では、タイマを短くすると、受信先へのデータの再送信、エラー生成、等のノードによる対応アクションが早すぎる（すなわち５ｍｓではなく４．５ｍｓ後）ことにつながり、ネットワーク規格が規定する５ｍｓの期間を満たすＡＣＫを無視することにもなり得る。実際には、ノードのアラインメント差２１８の長さには、ノードのクロックのタイムインターバルに対するタイマが開始されるポイントによって、ほぼゼロからほぼ１ｍｓ（すなわち１タイムインターバル）の間でばらつきがある。タイマがタイムインターバルの開始時点の近くで開始された場合にはアラインメント差はほぼゼロとなる一方、タイムインターバルが終了する直前で開始された場合には、アラインメント差がタイムインターバルの期間に近いものとなることがある。図２に示す例では、タイマは、ノードによるデータの送信後に開始される。よって、データの送信が１クロックチックまたはその後の閾値範囲内で完了する場合、各データ送信についてのアラインメント差はほぼゼロとなる。
【００２２】
そのため、図３に、ノード２０〜３１のタイマの精度が、送信用のタイマがノードのクロックのクロックチックと一致して、またはそのクロックチックの後の閾値内に開始されるようにデータ送信をスケジューリングすることにより最適化される状況の例を示すタイミング図を示す。この例では、ノードは、ネットワークを介して送信する対象のデータを再度取得する。ノードのクロックのタイムライン３０３において、クロックのタイムインターバルの間の境界（すなわちクロックのチック）は、境界マーカＴ１〜Ｔ１３で示される。タイムインターバルの長さは任意の適切な期間であってよいが、この例で議論するために、タイムインターバルの長さは図２と同じ１ｍｓとなっている。図に示すように、境界Ｔ２において、ノードが送信する対象のデータが取得されて、ネットワークを介して送信できるようになっている。図３のノードは、即座にまたはランダムな時間にデータを送信するのではなく、データの送信にかかる時間がどれくらいの長さかを判断する。ノードが通信する様々なネットワークにおいて、送信にかかる時間は、送信する対象のデータのサイズ、ネットワークの速度ならびに／または帯域、および場合によってはその他の留意事項に基づいてもよいことは言うまでもない。
【００２３】
図３に示す例において、送信にかかる時間は、送信する対象のデータのサイズおよびネットワークに基づいて３．５ｍｓと判断される。一般に、その後オフセットが計算されて、もしあるならば、タイムインターバルのどの部分がデータの送信に必要とされることになるかを判断する。ここで、クロックのタイムインターバルが１ｍｓ、送信時間が３．５ｍｓとすると、オフセットは、データの送信には３つの完全なタイムインターバルとさらに別のタイムインターバルの０．５ｍｓが必要となるため、０．５ｍｓとなる。ノードは、０．５ｍｓのオフセットおよび１ｍｓのタイムインターバルに基づいて、データ送信が後に続くタイムインターバル（すなわち後続クロックチック）の完了と同期的に完了するために必要なクロックチックからの遅延量を表す０．５ｍｓの送信遅延を計算する。すなわち、送信にかかる時間が３．５ｍｓ、タイムインターバルが１ｍｓとすると、データ送信が４タイムインターバル経過後に完了するよう、ノードは０．５ｍｓの送信遅延を用いることになる。送信遅延は、図３に送信遅延３０５と示す。
【００２４】
よって、データの送信が後続のタイムインターバルの終了と同時に完了するためには、ノードはデータの送信をクロックチックから０．５ｍｓだけ遅延させる。図３に示すように、ノードはＴ２境界の０．５ｍｓ後に送信を開始する。ノードにおける送信遅延３０５は、必要な精度を有するハードウェアタイマまたはその他のタイマ装置を用いることにより実現することができる。ノードは、Ｔ３〜Ｔ５で示すクロックのチックの間、データの送信を継続し、送信にかかる時間３０６はマーカＴ６でタイムインターバルの終了と同時に完了する。
【００２５】
この例では、図２の例のように、ノードによって送信されるデータは確認応答フレームであり、ネットワーク規格によりデータの受信先がデータ受信から５ｍｓ以内にＡＣＫを送信することが規定されている。また、ネットワーク規格は、確認応答フレームの送信後ＡＣＫが受信されない場合には、データの送信元がデータを再送信することを規定する。よって、確認応答フレームを送信するための５ｍｓの待機時間を満たすために、送信元ノードはタイマを確認応答フレームのデータ送信の完了後５ｍｓに設定する。そのため、タイマもマーカＴ６で開始されることになる。
【００２６】
上述のように、ノードのタイマは、経過クロックチックをカウントすることにより経過時間を測定するよう構成される。この例におけるタイマが５ｍｓに設定され、クロックチックのタイムインターバルが１ｍｓであるため、タイマは、セットされてから５クロックチックが経過した後に完了することになる。したがって、イベントタイマ時間３１２は、タイマがマーカＴ６で開始してから５クロックチック後であるＴ１１に終了する。ここで、図２の例とは異なり、タイマがクロックチックと同時に開始されクロックのチック間の各タイムインターバルが完全な１ｍｓであるため、５クロックチックのカウントは５ｍｓの長さに等しい。よって、５ｍｓの長さを示す意図されたタイマ時間３１５もまたＴ１１で終了する。この時、送信されたフレームの確認応答がまだノードにより受信されていない場合には、ノードはエラー報告やフレームの再送信等の任意に判断されたアクションを行ってもよい。タイマがデータ送信等のネットワークイベント後の経過時間を正確に測定するため、ノードはかかるイベントへの時宜を得たレスポンスを指定するネットワーク規格に準拠することができる。
【００２７】
図２および図３で議論した例は確認応答フレームの送信後のタイマに関するものであるが、本明細書に記載の技術は、データ送信後の経過時間の測定に用いられる任意のタイマに適用することができる。言うまでもないが、例えば、ノードは、あるタイムインターバルに従ってデータを送信（例：１０ｍｓごとにフレームを送信）するよう構成されてもよいし、タイムアウト値内に別のノードからの回答としてデータを受信するよう構成されてもよいし、および／またはその他の考えられる状況であってもよい。
【００２８】
次に図４に、様々な実施形態にかかるネットワーク１０におけるノード２０〜３１の方法４００のタイマ最適化動作の一例を示すフローチャートを示す。言うまでもなく、図４のフローチャートは、本明細書に記載の方法４００のタイマ最適化動作に実装可能な様々な種類の機能構成の一例を示すにすぎない。図４のフローチャートに示す動作は、ネットワーク１０のノード２０〜３１が、送信完了後の経過時間を測定することになる送信対象データを取得することにより開始することができる。
【００２９】
ブロック４０３において、ノードはネットワークを介して送信する対象のデータを取得する。データは、ＩＥＥＥ８０２．１５．４ファミリーの規格で定義される確認応答フレームであっても、周期的に送信されるデータであっても、ノードがタイムアウト値内に別のノードからの回答もしくはレスポンスを受信することになるデータであっても、および／またはその他の送信完了後の経過時間を測定することになる送信対象のデータであってもよい。
【００３０】
次に、ノードは、ノードのクロックのタイムインターバルの終了と一致してまたはその後の閾値内にデータの送信が完了するために必要な送信遅延を判断する。送信遅延の判断動作の考えられる構成を、ブロック４０６〜４１２に示す。
【００３１】
ブロック４０６において、ノードは、まず、データの送信にかかる送信にかかる時間を判断する。ノードが通信する様々なネットワークにおいて、送信にかかる時間は、送信する対象のデータのサイズ、ネットワークの速度ならびに／または帯域（「データ転送速度」または「ビットレート」と呼ぶ）、および場合によってはその他の留意事項に基づいてもよいことは言うまでもない。一般に、送信にかかる時間は以下の数式で表すことができる。
（数１）
送信時間＝（送信されたオクテットの数）（８ビット／オクテット）
（ネットワークビットレート）
【００３２】
例えば、２５０キロビット/秒（kb/s）のネットワークデータビットレートで６４オクテット（バイトと呼ばれることもある）のデータを送信するためには、以下の計算式に示されるように、送信にかかる時間は０．００２０４８秒または２．０４８ｍｓと判断される。
（数２）
送信時間＝０．００２０４８ｓ＝（６４オクテット）（８ビット／オクテット）
（２５０ｋｂ／ｓ）
【００３３】
そして、ブロック４０９において、オフセットが計算されて、もしあるならば、データの送信に必要とされるタイムインターバルの部分を判断する。オフセットは以下の数式で表すことができる。
（数３）
オフセット＝（送信時間）ｍｏｄ（タイムインターバルの長さ）
【００３４】
前の例に戻ると、ノードのタイムインターバルの長さが１ｍｓである場合、以下の計算式に示されるように、オフセットは０．０４８ｍｓまたは４８マイクロ秒（μｓ）となる。
（数４）
オフセット＝０．０４８ｍｓ＝（２．０４８ｍｓ）ｍｏｄ（１ｍｓ）
【００３５】
続けて、ブロック４１２において、送信遅延が計算され、タイムインターバルの終了と一致してまたはその後の閾値内に連続送信を完了させるためにノードがデータの送信の遅延に用いることになるタイムインターバル境界（すなわちクロックのチック）の後の時間の長さを判断する。送信遅延の計算式は以下の通りである。
（数５）
送信遅延＝（タイムインターバルの長さ）−（オフセット）
【００３６】
前の例に戻ると、オフセットが０．０４８ｍｓ、タイムインターバルの長さが１ｍｓである場合、以下の計算式に示されるように、送信遅延は０．９５２ｍｓ（９５２μｓ）となる。
（数６）
送信遅延＝０．９５２ｍｓ＝（１ｍｓ）−（０．０４８ｍｓ）
【００３７】
次に、ブロック４１５において、ノードは、データの送信に先立って送信遅延を開始する基準点としての使用する対象のタイムインターバル境界を待つ。データの送信を促すため、ノードは送信遅延が計算された後に来る最初のタイムインターバル境界を用いることがある。しかしながら、ネットワークイベントタイマを最適化するために、代わりにその後に続くタイムインターバル境界を用いてもよい。使用する対象のタイムインターバル境界が来ていない場合、方法４００の処理は、ブロック４１５に戻って待機を継続する。
【００３８】
代替的に、使用する対象のタイムインターバル境界が検出された場合には、ブロック４１８において、ノードは送信遅延を開始し、その後データがネットワークへ送信される。これを実行するために、ノードは、送信遅延値が設定された補助タイマを用いてもよく、このタイマはタイムインターバル境界が来ると開始される。言うまでもなく、タイマ自体が精度の許容範囲内にある意図された時刻にデータの送信を開始するために十分な分解能を有する必要がある。ある実施形態では、補助タイマノードは、ノードに用いられるクロックよりも分解能が高いハードウェアタイマであってもよい。
【００３９】
次に、ブロック４２１において、ノードは、送信が完了したか否かを判断する。送信が完了していない場合、処理はブロック４２１に戻る。そうではなく、データの送信が完了した場合、ブロック４２４において、ノードは、データ送信の後の待機時間に関連付けられたネットワークイベントタイマを開始する。言うまでもないが、すでに述べたように、この待機時間の目的は、受信先からデータ送信の確認応答の受信待ち、追加データの送信に先立つ期間の待機（すなわちデータを１０ｍｓごとに送信する）、および／またはその他の考えられる目的等、様々であってよい。その後、図示するように、ノードにおいて実施される方法４００のこの部分の処理が終了する。方法４００は、ノードにより、自身が任意のデータ送信を行うために実行することができ、このデータ送信の後に時間定義された待機時間が続く。
【００４０】
次に、図５に、ワイヤレスメッシュネットワークまたはその他のデータネットワークにおいて、本明細書において開示される技術を実施するために用いられるノード２０〜３１の一例を示すブロック図を示す。ノード２０〜３１は、処理装置５０２を含んでもよい。処理装置５０２の非限定的な例として、マイクロプロセッサ、特定用途向け集積回路（「ＡＳＩＣ」）、状態機械、またはその他の適切な処理装置がある。処理装置５０２は、１を含む任意の数の処理装置を含むことができる。処理装置５０２は、記憶装置５０４等のコンピュータ可読媒体に通信可能に連結されてもよい。処理装置５０２は、それぞれ記憶装置５０４に格納されたコンピュータ実行可能なプログラム命令を実行するおよび／または情報にアクセスすることができる。
【００４１】
記憶装置５０４は、処理装置５０２により実行されると処理装置５０２に本明細書に記載の動作を行わせる命令を格納することができる。記憶装置５０４は、プロセッサにコンピュータ可読命令を与えることができる、電子、光学、磁気、またはその他のストレージ装置（ただしこれに限らない）等の、コンピュータ可読媒体であってもよい。このような光学、磁気、またはその他のストレージ装置の非限定的な例としては、リードオンリー（「ＲＯＭ」）装置、ランダムアクセスメモリ（「ＲＡＭ」）装置、磁気ディスク、磁気テープもしくはその他の磁気ストレージ、メモリチップ、ＡＳＩＣ、設定されたプロセッサ、光学ストレージ装置、またはコンピュータプロセッサが命令を読み取ることのできるその他の任意の媒体がある。この命令は、任意の適切なコンピュータプログラム言語で記述されたコードからコンパイラおよび／またはインタプリタによって生成されたプロセッサ固有の命令を含んでもよい。適切なコンピュータプログラム言語の非限定的な例としては、Ｃ言語、Ｃ＋＋、Ｃ＃、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｊａｖａ（登録商標）、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ（登録商標）、等がある。
【００４２】
ノード２０〜３１は、ノード２０〜３１の１以上の構成要素を通信可能に連結することのできるバス５０６を含んでもよい。図５には、プロセッサ５０２、メモリ５０４、バス５０６を互いに通信する独立した構成要素として図示しているが、その他の実施例も考えられる。例えば、プロセッサ５０２、メモリ５０４、バス５０６は、ノード２０〜３１に設けてプログラムコードを格納および実行することのできるプリント回路基板またはその他の適切な装置の構成要素であってもよい。
【００４３】
また、ノード２０〜３１は、ネットワークインターフェース装置５０８を含んでもよい。ネットワークインターフェース装置５０８は、アンテナ５１０を介して１以上のワイヤレス通信リンクを確立するよう構成された送受信装置であってもよい。ネットワークインターフェース装置５０８の非限定的な例としては、ＲＦ送受信機があり、メッシュネットワーク１０内の他のノード２０〜３１と通信リンクを確立する１以上の要素を含むことができる。
【００４４】
本明細書においては、請求項に記載された主題の十分な理解を与えられるよう、数多くの具体的詳細を説明している。しかしながら、これらの具体的詳細がなくても請求項に記載された主題が実現可能であることは、当業者には言うまでもないことであろう。当業者に知られるその他の例、方法、装置、またはシステムについては、請求項に記載された主題が曖昧にならないよう、詳細な説明を省いている。
【００４５】
コンピュータメモリ等のコンピュータシステムメモリに保存されるデータビットや２値デジタル信号での動作のアルゴリズムや記号表現との関連で提示される部分もある。これらのアルゴリズム的記述または表現は、データ処理分野の当業者によって仕事の内容を別の当業者に伝達するために用いられる技術の例である。アルゴリズムは、所望の結果をもたらすための、首尾一貫した動作のシーケンスまたは類似の処理である。この文脈では、動作または処理は、物理量を有する物理的操作を含むものである。必須ではないが、通常、このような物理量は、保存、転送、結合、比較、またはその他の操作を行うことが可能な電気または磁気信号の形をとる。このような信号を、ビット、データ、数値、要素、記号、文字、用語、番号、数字、等と呼ぶことが、主として一般的な用法上の理由から、便利な場合があることがわかっている。しかしながら、これら全ておよび類似の用語が適切な物理量と関連付けられるべきものであり、単に便利なラベルにすぎないことは言うまでもない。特に記載がない限り、本明細書を通じて、「処理」「演算」「計算」「判断」「識別」等の用語を用いた議論は、メモリ、レジスタ、またはその他の記憶装置内の物理的な電子量または磁気量として表現されるデータの操作または変換を行う１以上のコンピュータまたは類似の電子計算装置等の計算装置、送信装置、またはコンピュータプラットフォームの表示装置の、動作または処理を指すものであることは言うまでもない。
【００４６】
本明細書で論じたシステムまたは複数のシステムは、特定のハードウェア構造や構成に限定されるものではない。計算装置は、１以上の関数呼び出しによって条件付けられる結果をもたらす要素の任意の適切な配列を含んでもよい。適切な計算装置は、本発明の主題の１以上の様態を実施するものである汎用演算装置から専用演算装置までを含む演算システムをプログラムするまたは構成する格納されたソフトウェアにアクセスする、多目的マイクロプロセッサベースのコンピュータシステムを含むことができる。任意の適切なプログラム、スクリプト、またはその他のタイプの言語、または言語の組み合わせを用いて、計算装置のプログラムまたは構成に用いられることになるソフトウェアにおいて、本明細書に記載の技術を実施することができる。
【００４７】
本開示の方法の態様は、このような計算装置の動作において行うことができる。これらの例で提示されたブロックの順番は、例えばブロックの並び替え、結合、および／またはサブブロックへの分解等、変更可能である。いくつかのブロックまたは処理を並行して行うこともできる。
【００４８】
本明細書における「に適している」または「よう構成される」という表現の使用は、非限定的かつ包括的な言語を意味し、追加的なタスクやステップを行うことに適したりそのように構成されたりする装置を除外するものではない。加えて、「基づく」の使用は、非限定的かつ包括的な意味であり、１以上の規定の条件または値に「基づく」プロセス、ステップ、計算、またはその他の動作は、実際には、規定外の追加的な条件または値に基づいてもよい。本明細書の見出し、リスト、および番号は、単に説明をわかりやすくするためのものであり、限定を意味するものではない。
【００４９】
本発明の主題をその具体的な態様に関して詳細に説明したが、上記内容の理解を得られるならば、当業者にはこれら態様の修正例、変形例、および等価例を生み出すことが容易に可能であることは言うまでもない。したがって、本開示は限定のためではなく例示のために提示されたものであること、ならびに当業者には容易にわかるように、本発明の主題へのかかる修正、変更、および／または追加の包含を除外するものではないことは言うまでもない。
【図１】
0006670851.tif 000002
【図２】
0006670851.tif 000003
【図３】
0006670851.tif 000004
【図４】
0006670851.tif 000005
【図５】
0006670851.tif 000006