(57)【要約】  時間同期ネットワーク中のノード間のクロックドリフトを補償するための種々の実施形態を開示する。ノードは、上記ネットワーク内で、親ノードから時間同期情報を受信する。上記時間同期情報に基づいて、上記ノードのクロックと親ノードのクロックとの間のドリフトを決定する。上記ノードは、親ノードから伝送された前回の時間同期情報に基づいて、最後の時間同期の実施以降のネットワークのタイムスロットの数を識別する。補償間隔を算出する。この補償間隔は、上記ノードのクロックが親ノードに対してある既定義の補償値だけ偏移するタイムスロットの数を表す。上記ノードは、上記補償間隔に従って、上記タイムスロットのうちの１つを上記補償値だけ補償する。【選択図】図４
2017513285.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによる、ネットワーク内のノードのクロックドリフト補償のための方法であって：
前記ネットワーク内で、親ノードから時間同期情報を受信するステップ；
前記時間同期情報に基づいて、前記ノードのクロックと前記親ノードのクロックとの間のドリフトを決定するステップ；
前記親ノードから受信した前回の時間同期情報に基づいて、最後の時間調整の実施以降に経過した前記ネットワークのタイムスロットの数を決定するステップ；
前記ドリフト中のクロック単位の数を算出するステップ；
前記タイムスロットの数を前記クロック単位の数で除算して補償間隔を得ることにより、前記ドリフトの１クロック単位をもたらす経過した前記タイムスロットの数を算出するステップ；及び
前記補償間隔を用いて、選択された前記タイムスロットを、１クロック単位だけ補償するステップであって、前記選択されたタイムスロットは、前記補償間隔内の１つの前記タイムスロットに対応する、ステップ
を含む、方法。
【請求項２】
前記タイムスロットの数を決定するステップ、前記算出するステップ及び前記補償するステップは、前記ドリフトが既定義のしきい値以上である場合に実施される、請求項１に記載の方法。
【請求項３】
後続の時間同期情報に基づいて、後続のドリフトが前記しきい値以上となるまで、前記補償するステップを繰り返すステップを更に含む、請求項２に記載の方法。
【請求項４】
前記後続のドリフトが前記しきい値以上となり：
前記ノードの前記クロックの前記同期以降の、前記ネットワークの後続の前記タイムスロットの数を識別するステップ；
前記ノードの前記クロックが前記親ノードに対して１クロック単位だけ偏移する前記後続のタイムスロットの数を表す、後続の補償間隔を算出するステップ；及び
前記後続の補償間隔に従って、前記タイムスロットのうちの１つを１クロック単位だけ補償するステップ
を更に含む、請求項３に記載の方法。
【請求項５】
前記後続のドリフトが前記しきい値以上となるまで、前記補償間隔を保持するステップを更に含む、請求項３に記載の方法。
【請求項６】
前記ネットワークは、米国電気電子技術者協会（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ：ＩＥＥＥ）８０２．１５．４ｅによって定義される、請求項１に記載の方法。
【請求項７】
前記時間同期情報は、前記ネットワーク上のビーコン中で伝送される、請求項６に記載の方法。
【請求項８】
前記ノードは、前記ネットワーク中の別のノードの親ノードでもある、請求項１に記載の方法。
【請求項９】
ネットワークのノードデバイス中で実行可能なプログラムを実現する、非一時的コンピュータ可読媒体であって：
ノードの親ノードから前記ネットワークを介して時間同期情報を受信するコード；
前記時間同期情報に基づいて、前記ノードのクロックと前記親ノードのクロックとの間のドリフトを決定するコード；並びに
前記ドリフトが既定義のしきい値以上である場合に、前記ドリフトを補償するコードであって：
前記親ノードから受信した前回の前記時間同期情報に基づいて、最後の時間調整以降に経過した前記ネットワークのタイムスロットの数を識別するコード；
既定義の補償値に関して、前記ノードの前記クロックが前記親ノードに対して前記補償値だけ偏移する前記タイムスロットの数を算出することによって、補償間隔を決定するコード；及び
前記補償間隔及び前記補償値を用いて、選択された前記タイムスロットを前記補償間隔内で調整することにより、前記選択されたタイムスロットが前記補償値だけ調整され、前記選択されたタイムスロットは前記補償間隔内の１つの前記タイムスロットとなる、コード
を含む、コード
を備える、非一時的コンピュータ可読媒体。
【請求項１０】
前記ドリフトを補償する前記コードは、後続の前記時間同期情報に基づいて、後続の前記ドリフトが前記しきい値以上となるまで繰り返されるよう構成される、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記補償間隔は、前記後続のドリフトが前記しきい値以上となるまで保持される、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記ネットワークは、米国電気電子技術者協会（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ：ＩＥＥＥ）８０２．１５．４ｅによって定義されるメッシュネットワークである、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記補償値は、前記ノードの前記クロックのクロック単位に等しい、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記ノードは、前記ネットワーク中の別のノードの親ノードでもある、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１５】
ノードであって：
プロセッサ；
ネットワーク上での通信のためのネットワークインタフェース；及び
前記ノード内で実行されるドリフト補償アプリケーションによって構成されたメモリ
を備え、
前記ドリフト補償アプリケーションは、前記ノードに：
前記ネットワークを介して、前記ノードの親ノードから時間同期情報を受信させ；
前記時間同期情報に基づいて、前記ノードのクロックと前記親ノードのクロックとの間のドリフトを決定させ；
前記ドリフトが既定義のしきい値以上である場合に、前記ドリフト補償アプリケーションは更に、前記ノードに：
前記親ノードから伝送された前回の前記時間同期情報に基づいて、最後の時間同期の実施以降の前記ネットワークのタイムスロットの数を決定させ；
前記ノードの前記クロックが前記親ノードに対して既定義の補償値だけ偏移する前記タイムスロットの数を表す、補償間隔を算出させ；また
後続の前記時間同期情報に基づいて、後続の前記ドリフトが前記しきい値以上となるまで、前記補償間隔に従って、前記タイムスロットのうちのいくつかを、前記補償値だけ補償させる、ノード。
【請求項１６】
前記ノードは、前記ネットワーク中の別のノードの親ノードでもある、請求項１５に記載のシステム。
【請求項１７】
前記ノードの前記クロックに対する調整は、前記ノードの前記クロックと前記別のノードのクロックとの間のドリフトに影響を及ぼす、請求項１６に記載のシステム。
【請求項１８】
前記後続のドリフトが前記しきい値以上となるまで、前記補償間隔を保持することを更に含む、請求項１５に記載のシステム。
【請求項１９】
前記後続のドリフトが前記しきい値以上となり、かつ：
前記ノードの前記クロックの前記同期以降の、前記ネットワークの後続の前記タイムスロットの数を識別すること；
前記ノードの前記クロックが前記親ノードに対して前記補償値だけ偏移する前記後続のタイムスロットの数を表す、後続の補償間隔を算出すること；及び
前記後続の補償間隔に従って、前記タイムスロットのうちの１つを前記補償値だけ補償すること
を更に含む、請求項１５に記載のシステム。
【請求項２０】
前記ネットワークは、時間同期チャネルホッピング（ｔｉｍｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｃｈａｎｎｅｌ  ｈｏｐｐｉｎｇ：ＴＳＣＨ）ネットワークである、請求項１５に記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２０１４年２月２１日出願の米国仮特許出願第６１／９４３，１７６号に対する優先権を主張するものであり、その内容は参照により本明細書に援用される。
【背景技術】
【０００２】
ＩＥＥＥ８０２．１５．４ｅに定義されているような時間同期チャネルホッピング（ｔｉｍｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｃｈａｎｎｅｌ  ｈｏｐｐｉｎｇ：ＴＳＣＨ）ネットワークでは、ネットワーク通信は定義されたタイムスロット内で実行されるため、ネットワークのノードを互いに同期する必要がある。あるノードとその親ノードといった２つのノードにおいて、それらの電子ハードウェアの仕様の許容誤差に起因するドリフトが時間と共に生じることがある。ノードが高精度の発振器を使用している場合は、そのドリフトが小さくなり得る。しかしある時点において、ネットワークの安定性及び性能に悪影響を与え、ネットワーク障害を発生させる程度に、累積的なドリフトが大きくなる。
【発明の概要】
【０００３】
本発明の種々の態様は、時間同期ネットワークにおいて、あるノードとその親ノードとの間に通信リンクを確立するために使用される無線のクロック間のドリフトを補償することに関する。一態様では、ネットワーク内で、あるノードが親ノードから時間同期情報を受信する。このネットワークは、ＩＥＥＥ８０２．１５．４ｅに定義されているようなＴＳＣＨネットワークであってよい。上記ノードは、上記時間同期情報に基づいて、それ自体のクロックと親ノードのクロックとの間のドリフトを決定する。上記ノードは、親ノードから伝送された前回の時間同期情報に基づいて、最後の時間同期の実施以降のネットワークのタイムスロットの数を識別することにより、上記ドリフトの補償を開始してよい。いくつかの実施形態では、上記ノードは、ドリフトの補償を開始する前に、ドリフトが既定義のしきい値以上であるかどうかを決定する。
【０００４】
続いてこのノードは、このノードのクロックが親ノードに対して偏移するタイムスロットの数を表す補償間隔を、補償値によって計算する。そしてこのノードは、上記補償間隔に従って、タイムスロットのうちの１つ又は複数を上記補償値で補償する。このノードは、後続のドリフトが既定義のしきい値以上であると決定されるまで、補償値及び補償間隔を用いてドリフトの補償を続けてよい。ドリフトが再びしきい値以上になれば、このノードは、最近のドリフト値に基づいて新しい補償間隔を決定する動作を繰り返してよい。
【０００５】
本開示の多数の態様は、以下の図面を参照するとより良好に理解できる。図面中の構成要素は、必ずしも一定の縮尺ではなく、むしろ本開示の原理を明確に説明することに重点が置かれている。またこれらの図面において、同様の参照番号は複数の図面を通して対応する部分を指示している。
【図面の簡単な説明】
【０００６】
【図１】図１は、本開示の種々の実施形態によるメッシュネットワークの図である。
【図２】図２は、本開示の種々の実施形態によるメッシュネットワーク内の複数のノードのクロック同期図である。
【図３】図３は、本開示の種々の実施形態によるメッシュネットワーク内の複数のノードのクロック同期図である。
【図４】図４は、本開示の種々の実施形態による図１のメッシュネットワーク内のあるノードによって実装される機能の一例を示すフローチャートである。
【図５】図５は、本開示の種々の実施形態による図１のメッシュネットワーク内で使用されるノードの一例を示す概略ブロック図
【発明の詳細な説明】
【０００７】
本開示の技術は、ＴＳＣＨネットワークのような時間同期ネットワーク内のノード間のクロックドリフトを補償することを目指している。このような補償は、複数のノードが、あるノードとその親ノードとの間のクロックドリフトを低減するために、上記ノード間の無線リンクにおいて使用される選択されたタイムスロットを調整することにより達成できる。例えば、各ノードは、通信可能な他のノード（一般に隣接ノードと呼ばれる）を取得又は識別でき、また通信を容易にするために、これらのノードに関する所定の情報及び性能メトリックを取得できる。ノードはこのメトリックを用いて、識別した各ノードにスコアを付けることにより、情報を目的地まで送るために、及びメッセージを受信するために、上記識別したノードのうちのどれが最良の選択肢を提供するかを、すなわち、親ノードを決定する。親ノードを識別したノードは、これと同じものを指して、上記親ノードの子ノードと呼ぶことができる。
【０００８】
上述のように他のノードを識別してこれらのノードとの通信リンクを確立することにより、各ノードはそれ自体のノードのネットワークを確立し、上記ネットワークを活用して、メッシュネットワーク内で情報を送信及び受信できる。あるノードは、その親ノードに頼って、例えば中央ノード又は他のノードからのメッセージを受信できる。ノードはその親ノードまで辿ることができるが、通信リンクを確立するために各ノードが使用する無線装置は、上記無線装置が使用するクロック間のクロックドリフト（又は単に「ドリフト」と呼ばれる）の結果として、非同調状態となり得る。ノードがそのクロックを同期するために使用できる時間同期情報は、１つ又は複数のメッセージ伝送を使用して、ノードの間で共有してよい。一例としてビーコンがあるが、時間同期情報は他の種類のメッセージで搬送してよい。
【０００９】
しかしながら、時間同期情報の頻繁な伝送や、頻繁なクロック同期をノードに要求することに関連する処理オーバーヘッドには、追加電力の使用が必要となり、これは例えば、いくつかのメッシュネットワークで使用されるバッテリ駆動のノードのような低電力使用環境には、有害となり得る。時間同期情報への依存及び頻繁な同期動作を低減するために、本明細書における実装形態は、あるノードが親ノードとの通信リンクにおいて選択したタイムスロットのスロット幅を調整することに重点を置く。
【００１０】
この目的のために、例示的な実施形態では、時間同期情報が親ノードから受信されると、あるノードとその親ノードとの間のドリフトが決定される。ドリフトがしきい値を超えている場合は、選択されたタイムスロットのスロット幅を所定の補償値で調整することにより、ドリフトが次回の時間同期情報の受信時に低減される。所定の補償値の一例は、ノードの発振器のクロック単位に相当する。本発明では、スロット幅を決定された補償間隔で僅かに変更し、ドリフトが再びドリフトしきい値を超えた場合には、新しい調整パラメータ（例えば補償間隔、補償値等）を算出してよい。このようにして、ネットワーク層を通した伝播のための連続的な時間調整の必要が最小化される。
【００１１】
本明細書において定義すると、「ノード」は、メッシュネットワーク内でのメッセージの配信に関する機能を実行できるインテリジェントデバイスを含む。一つのシステムにおいて、ノードは、家又はアパートのような施設に配置されて、ガス、水道又は電力のような公共サービスの消費量を測定するメーターとすることができる。このようなメーターは高度メータリングインフラストラクチャ（ＡＭＩ）、無線周波数（ＲＦ）ネットワークの一部であってもよい。ノードの他の例は、ネットワークに接続され、通信チャネルを介して情報の送信、受信又は転送を行うことができる、ルータ、コレクタ若しくは収集ポイント、ホストコンピュータ、ハブ又はその他の電子デバイスを含む。
【００１２】
ノードは、本発明の実装形態内でノードが機能できるようにする、いくつかの構成要素を含む。例えばノードは、メッシュネットワークにおける類似のノード及び／又は他の装置との通信を可能にする無線装置を含むことができる。各ノードの無線装置は、上記無線装置が、本明細書に記載の本発明の実装形態を提供するためのコンピュータ及びコマンド機能を実行するコンピュータのように機能することを可能にすることができる、プログラマブルロジックコントローラ（ＰＬＣ）のようなデバイスを有してよい。またノードは、他のノードとの通信に関する情報を記憶するための記憶媒体も含んでよい。このような記憶媒体は例えば、メモリ、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ、又はノードに内蔵された、若しくはネットワークを介してノードがアクセス可能な他の記憶装置を含むことができる。またノードは、計時機能を提供する水晶発振器（すなわちクロック）、及びバックアップ用電源を提供するバッテリも含んでよい。いくつかのノードがバッテリ電源のみで動作してもよい。
【００１３】
ノードは、種々の周波数チャネルを介して、メッシュネットワーク内の他のノードと通信できる。同じ周波数ホッピングシーケンスを共有する、すなわち周波数間を同時にホップする複数のノードは、同じ周波数を介して互いに通信できる。したがって、ＴＳＣＨネットワークでは、複数のノードは異なる時点においてホップすることにより、利用可能な周波数スペクトルにおいて、例示的な実装形態によれば例えば２４０チャネルを介した他のノードとの通信を確立できる。ノードは、ある時間増分又は滞留時間、例えば７００ミリ秒にしたがってホップでき、このときノードは、ある所与のチャネル又は周波数を介してメッセージを伝送又は受信できる。ある所与のチャネルに関する各滞留時間は複数のタイムスロットに分割され、これらのタイムスロットは集合的にスロットフレームと呼ぶことができる。本明細書に記載のチャネルは例えば、２４０チャネル周波数範囲内に存在し、例えば７００ミリ秒といったある時間増分により分離されており、上記時間増分は周波数チャネル間の「スペース」に相当し得る。したがって、例示的な実装形態によると、メッシュネットワーク内で２４０の個別の通信を同時に行うことができ、各通信は別々のチャネルで行われる。このような通信は、２４０チャネルネットワークの全帯域幅を利用できる。
【００１４】
本明細書で使用する場合、「時間同期情報」は、あるメッセージ又は複数のメッセージのシーケンス中で通信される情報を指し、ノードはこの情報から、メッシュネットワーク内の他のノードと通信するための無線装置で使用されるクロックを同期できる。ＩＥＥＥ８０２．１５．４ｅで定義されたネットワークのいくつかの実施形態では、時間同期情報をビーコンによって搬送してよい。ビーコンは、スケジュール駆動及び／又はイベント駆動に基づいて伝送してよい。
【００１５】
本明細書で使用する場合、「補償値」は、ある通信リンクに関するタイムスロットのスロット幅を、ノードがドリフト補償のために調整する際の、調整の時間量を指す。補償値は、ある所与のノードのために予め定義されていてよく、また補償値は、ノードが無線通信リンクのためのタイムスロットの幅を調整するのに好適な任意の小さな調整値であってよい。一実装形態では、補償値はクロック単位である。
【００１６】
本明細書で使用する場合、「補償間隔」は、スロット幅が補償値によって調整されることになる、規定のタイムスロットの数を指す。例えば１０００という補償間隔は、１０００スロット毎に１スロットのスロット幅が補償値によって調整されることを示すことになる。
【００１７】
ここで図面を参照すると、図１は、本明細書に記載のシステムを実装するための例示的なメッシュネットワーク１０を示す。メッシュネットワーク１０は、コレクタノード２０及び無線ノード２１−３１を含むことができる。コレクタノード２０は、ノードに関連付けられた施設におけるガス、水道又は電力の消費量の測定値といった情報をノード２１−３１がコレクタ送信する収集ポイントとして機能する。ノード２１−３１は前述のように、メッシュネットワークにおいて他のノードと通信するために、及び上記通信を容易にするためのインテリジェントな決定をするために、十分なネットワーキング及び計算能力を有することができる。「コレクタノード」は、少なくともノード２１−３１が有するものと同一の機能性及び能力を有するように構成できる。更に、コレクタノード２０は、ノード２１−３１からの情報を記憶するために十分な記憶能力と、いくつかの実施例では、ノードから受信した情報を処理するためのより高い計算能力とを備えてよい。他の実施例では、ノードから受信した情報を処理するために、指令センタ又は他の計算デバイス（図示せず）を使用できる。
【００１８】
図１では、メッシュネットワーク１０におけるノードの層が３つ示されている（層１、層２及び層３）。他の構成では、層はこれより少なくても多くてもよい。ノードは、コレクタノード２０に対するノードの論理距離及びそのデータ伝送の信頼性といった特定の要因に基づいて、ある特定の層に関連付けることができる。要因及び／又は要因に付与された重みは、ネットワークが異なれば変化し得る。層１に位置するノードは、これらノードがコレクタノード２０に対する「比較的良好な」接続を有し、コレクタノード２０との通信のために仲介ノードを使用する必要がないことを指示している。より大きな番号の層に位置するノードは、少なくとも１つの仲介ノードを介してコレクタノード２０と通信する。例えば、層２に位置するノードは層１の親ノードに対する子ノードであり、層３に位置するノードは層２の親ノードに対する子ノードである（すなわち、ここでは層２のノードは、異なるノードとのペアリングにおいて、親ノードとしても子ノードとしても働き得る）。したがって、層３のノードはその親である層２のノードを介してコレクタノードと通信し、層２のノードはその親である層１のノードと通信し、層１のノードはコレクタと通信する。図１は、層１のノードが層２のノードよりもコレクタノード２０に近く、層２のノードが層３のノードよりもコレクタノード２０に近いことを示しているが、これらの層は単に物理的な距離のみによって決定できるものではない。ノードを評価する方法によっては、層１のノードが層２のノードよりもコレクタノード２０から遠くに位置してよい。
【００１９】
前述のように、通常動作中、メッシュネットワーク１０内での通信のためにノード２１−３１の無線装置によって使用されるクロックは、クロックの変動及び／又は不正確さに起因する同期状態からのドリフトを生じることがある。図２にクロック同期図を示す。これは、親ノードの無線装置のためのクロック信号２０６と、親ノードと通信する子ノードの無線装置のためのクロック信号２０８との間に生じ得るドリフトの例を示している。図２のクロック同期図は、一対のノードの無線装置の間に時間と共に蓄積される典型的な不一致の例示的な結果を示している。クロック信号２０６、２０８のエッジの対応する位置の差がドリフト２１１を表す。
【００２０】
図１に戻って、本明細書において開示された技術を用いることにより、メッシュネットワーク１０のノード２１−３１間のドリフトを最小化でき、これによってノード２１−３１間の長期にわたる時間同期が改善される。その結果、メッシュネットワーク１０の性能及び効率を改善できる一方で、要求される時間同期動作の数を削減することによって、ノード２１−３１の消費電力を大幅に削減できる。時間同期情報への依存及び頻繁な同期動作を低減するために、子ノードは、タイムスロット化ネットワーク内の通信リンクのために使用されるタイムスロットのうちの１つ又は複数の幅を調整することにより、あるノードの無線装置とその親ノードの無線装置との間に観察されるドリフトを補償してよい。
【００２１】
この目的のために、ノード２１−３１がその親ノードから第１の時間同期情報を受信すると、ノード２１−３１は、それ自体のクロックを親ノードのクロックに同期させてよい。その後、親ノードから後続の時間同期情報を受信すると、ノード２１−３１はそれ自体のクロックと親ノードのクロックとの間のドリフト量を決定してよい。ドリフトがしきい値以上でない場合は、親ノードに対する調整（すなわち時間同期情報の使用）は行われない。
【００２２】
ある実施形態では、ドリフトがしきい値以上である場合は、ノード２１−３１は、時間同期情報に基づいて、最後の時間調整以降に経過した、上記ノード２１−３１とその親ノードとの間の通信リンクのタイムスロットの数を決定してよい。本開示において後により詳細に説明するように、最後の時間調整以降のドリフト量及び最後の時間調整以降に経過したタイムスロットの数に基づいて、ノードは、既定義の補償値に相当するドリフト量が発生したであろうタイムスロットの数、すなわち補償間隔を決定してよい。その後ノードは、補償間隔にしたがってタイムスロットを調整してよく（例えば、１０００タイムスロット毎に１タイムスロットを調整してよく）、ここで各間隔内に行われる調整は補償値に等しい（例えば、１０００スロット毎に１タイムスロットを４マイクロ秒だけ調整する）。この技術を用いると、ドリフトを増分制御の形で補償でき、種々のノード間の通信を混乱させ得る通信リンクのクロック生成の突然の変動を最小化できる。
【００２３】
例えば、２００マイクロ秒のドリフトが検出され、最後の時間調整から２０，０００タイムスロットが経過している場合、１００タイムスロット毎に平均１マイクロ秒のドリフトがあることになる。この例において、望ましい補償値が４マイクロ秒に予め定義されている場合、４００タイムスロットごとに１タイムスロットを補償値４マイクロ秒だけ調整することにより、次の２０，０００タイムスロットに亘るドリフトに対する補償が得られることになる。上記の例におけるドリフトの補償の結果として、図３のクロック同期図は、親ノードの無線装置のためのクロック信号３０６と、上記親ノードと通信するノードの無線装置のためのクロック信号３０８との間の同期の例を示している。クロック信号３０６、３０８のエッジの対応する位置の差はドリフト３１１を表し、これは現在のところ、ノード間に識別可能なドリフトが存在しないことを示している。
【００２４】
図１に戻ると、タイムスロットに適用されるドリフト補償動作は、ドリフトが再びしきい値以上になったと判断されるまで、同一の調整パラメータを用いて続行してよい。これを実施する場合、ノードは上記動作を繰り返して、最近のドリフト値と、親ノードとの最新の時間同期以降に経過したタイムスロットの数とを用いて、新しいドリフト補償間隔を決定できる。
【００２５】
次に図４にはフローチャートが示されており、これは、種々の実施形態による、メッシュネットワーク１０内の子ノードのための、方法４００のドリフト補償動作の一例を示している。なお、図４のフローチャートは、本明細書に記載されているような方法４００のドリフト補償動作を実装するために採用できる多くの異なる種類の機能的配置の一例を提供するに過ぎない。図４のフローチャートに示された動作は、メッシュネットワーク１０内のあるノードがその親ノードに対して既に時間を同期した後、そのノードによって開始される。
【００２６】
ブロック４０３から開始して、ノードはその親ノードから時間同期情報を受信し、上記ノードはこの時間同期情報を用いて、それ自体のローカルクロックを親ノードのクロックと比較できる。ＩＥＥＥ８０２．１５．４ｅに定義されているようなＴＳＣＨネットワークのいくつかの実施形態では、時間同期情報はビーコンメッセージとして具現化してよい。次にブロック４０６において、ノードは、上記時間同期情報を用いて、最新の時間同期の実施以降にそれ自体のクロックと親ノードのクロックとの間に生じたドリフト量を決定してよい。
【００２７】
続いてブロック４０９において、ノードは、ドリフトが既定義のドリフトしきい値を超えているか否かを判断する。非限定的な例として、ノードは既定義のドリフトしきい値を１２８マイクロ秒と予め定義してよく、これにより、上記ノードとその親ノードとの間のドリフトがこのドリフトしきい値以上となった場合にのみ、ドリフト補償が開始されるか又は調整される。フローチャートの説明に戻ると、ブロック４０９において、ドリフトがドリフトしきい値より小さい場合は、方法４００はブロック４２１に進む。
【００２８】
あるいは、ドリフトがドリフトしきい値以上となった場合、ブロック４１２において、ノードは、メッシュネットワーク１０を介して受信した時間同期情報に基づいて、最後の時間調整以降に経過した、親ノードと共有される通信リンクのタイムスロットの数を決定してよい。ある実施形態では、下記の関数を使用して、最後の時間同期以降に経過したタイムスロットの数を計算できる。
【００２９】
（数１）
（経過時間）・（タイムスロット周波数）＝経過したスロット
【００３０】
上記の関数において、「経過時間（ｅｌａｐｓｅｄ  ｔｉｍｅ）」は、時間同期情報を使用するノードによる最後の時間調整動作以降に経過した時間であり、「タイムスロット周波数（ｔｉｍｅ  ｓｌｏｔ  ｆｒｅｑｕｅｎｃｙ）」は、親ノードと子ノードとの間の通信リンクに関して生じるタイムスロットのレートであり、「経過したスロット（ｓｌｏｔｓ  ｅｌａｐｓｅｄ）」は、時間同期情報を用いた前回の時間調整以降に経過したタイムスロットの数である。例えば、最後の時間調整から１０秒が経過しており、かつタイムスロットが毎秒４０スロットの周波数で（すなわち２５ミリ秒ごとに１スロット）発生する場合、最後の時間同期から４００タイムスロットが経過している。
【００３１】
続いて、ブロック４１５において、ノードは、親ノードに対して観察されたドリフトを補償するために、無線通信リンクの１つ又は複数のタイムスロットがある補償値によって調整されることになる補償間隔を決定する。ある実施形態では、下記の関数を使用して、補償間隔を決定できる。
【００３２】
（数２）
（経過したスロット）・（補償値）／（ドリフト）＝補償間隔
【００３３】
上記の関数において、「経過スロット（ｓｌｏｔｓ  ｅｌａｐｓｅｄ）」は、最後の時間同期以降に経過したスロットの数であり、「ドリフト（ｄｒｉｆｔ）」は、最新の時間同期情報に基づいて子ノードと親ノードとの間に観察されるクロックドリフトの量であり、「補償値（ｃｏｍｐｅｎｓａｔｉｏｎ  ｖａｌｕｅ）」は、１つ又は複数のタイムスロットを調整するべき既定義の量であり、「補償間隔（ｃｏｍｐｅｎｓａｔｉｏｎ  ｉｎｔｅｒｖａｌ）」は、１タイムスロットが調整されることになるタイムスロットの数である（例えば補償間隔１００は、１００タイムスロット毎に１タイムスロットが調整されることを意味する）。
【００３４】
例えば、２００マイクロ秒のドリフトが検出され、最後の時間調整から２０，０００タイムスロットが経過している場合は、４マイクロ秒に予め定義された補償値を用いると、補償間隔は４００タイムスロットとなり、これは、４００タイムスロット毎に１タイムスロットが、上記補償値と等しい量だけ調整されることを意味する。一実装形態では、補償値はノードのクロック周期又はクロック単位に基づいている。
【００３５】
別の例として、２２３マイクロ秒のドリフトが検出され、最後の時間調整から５，０４５タイムスロットが経過している場合は、補償値として４．２６マイクロ秒のクロック単位を使用すると、補償間隔は約９６タイムスロットとなり、これは、９６タイムスロット毎に１タイムスロットが、クロック単位と等しい量だけ調整されることを意味する。補償間隔を整数個のタイムスロット境界に揃えること（すなわち補償間隔９６．３７５を用いない）、及び／又は他の数学的精度に関する制約の結果として、調整動作は、観察されたドリフトのすべてを正確に補償できない場合がある。本例では、９６スロット毎に１タイムスロットを４．２６マイクロ秒だけ補償すれば、次の５，０４５タイムスロットに亘って約２２３．９マイクロ秒を補償する結果となる。
【００３６】
次に、ブロック４１８において、ブロック４１５において決定された補償間隔を用いて補償を開始する前に、ノードは、受信した時間同期情報を用いて次のタイムスロットを調整して親に揃えてよく、これによりノードのクロックとその親のクロックとが再び同期される。別の時間同期を行うことにより、ノードに関するクロックを、同期された状態で開始でき、また本明細書に開示された技術を用いて、観察されたドリフトに基づいて親と子との間に予測されるドリフトにしたがって調整できる。
【００３７】
次にブロック４２１において、ノードは、補償間隔及び補償値にしたがって、選択されたタイムスロットの幅を調整することにより、親ノードのクロックとの間に観察されたドリフトの補償を開始してよい。続いて、ブロック４２４において、ノードは、他の時間同期情報が受信されたか否かを判断する。他の時間同期情報が受信された場合は、ノードのための方法４００はブロック４０６に戻る。あるいは、他の時間同期情報がまだ受信されていない場合は、ブロック４２１において、ノードは、前回決定されたものと同一の補償間隔及び補償値を用いて、タイムスロットに適用されるドリフト補償動作を継続する。
【００３８】
次に、図５にブロック図が示されており、これは、無線メッシュネットワーク又は他のデータネットワーク内に、本明細書に開示された技術を実装するために使用される、ノード２１−３１の例を示している。
【００３９】
ノード２１−３１は、処理装置５０２を含むことができる。処理装置５０２の非限定的な例は、マイクロプロセッサ、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：ＡＳＩＣ）、状態機械、又は他の好適な処理装置を含む。処理装置５０２は、１個を含むいずれの個数の処理装置を含むことができる。処理装置５０２は、メモリ装置５０４等のコンピュータ可読媒体と通信可能に接続できる。処理装置５０２は、メモリ装置５０４に記憶されたコンピュータ実行可能なプログラム命令を実行でき、及び／又はメモリ装置５０４に記憶された情報にアクセスできる。
【００４０】
メモリ装置５０４は命令を記憶でき、処理装置５０２がこの命令を実行すると、処理装置５０２は本明細書に記載の動作を実行する。メモリ装置５０４は、コンピュータ可読命令をプロセッサに提供できる、（限定するものではないが）電子、光学、磁気又は他の記憶装置といった可読コンピュータ可読媒体である。このような光学、磁気又は他の記憶装置の非限定的な例は、１つ若しくは複数の読み出し専用メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ：ＲＯＭ）デバイス、１つ若しくは複数のランダムアクセスメモリ（ＲＡＭ）デバイス、１つ若しくは複数の磁気ディスク、１つ若しくは複数の磁気テープ若しくは他の磁気記憶、１つ若しくは複数のメモリチップ、ＡＳＩＣ、１つ若しくは複数の構成されたプロセッサ、１つ若しくは複数の光学記憶デバイス、又はコンピュータプロセッサが命令を読み出すことができる任意の他の媒体を含む。命令は、任意の好適なコンピュータプログラミング言語で書かれたコードからコンパイラ及び／又はインタープリタが生成した、プロセッサ固有命令を含んでよい。好適なコンピュータプログラミング言語の非限定的な例は、Ｃ、Ｃ＋＋、Ｃ＃、ＶｉｓｕａｌＢａｓｉｃ、Ｊａｖａ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ等を含む。
【００４１】
ノード２１−３１は、ノード２１−３１の１つ又は複数の構成要素を通信可能に接続できるバス５０６を含むことができる。プロセッサ５０２、メモリ５０４及びバス５０６は、図５では互いに通信する個別の構成要素として示されているが、他の実装形態が可能である。例えば、プロセッサ５０２、メモリ５０４及びバス５０６は、プリント回路基板の構成要素、又はプログラミングコードを記憶して実行するためにノード２１−３１に配置できる他の好適なデバイスとすることができる。
【００４２】
ノード２１−３１はネットワークインタフェースデバイス５０８を含むこともできる。ネットワークインタフェースデバイス５０８は、アンテナ５１０を介して無線通信リンクのうちの１つ又は複数を確立するように構成された、送受信デバイスとすることができる。ネットワークインタフェースデバイス５０８の非限定的な例はＲＦトランシーバであり、またメッシュネットワーク１０内で他のノード２１−３１との通信リンクを確立するための１つ又は複数の構成要素を含むことができる。
【００４３】
請求の対象である主題の完全な理解を提供するために、本明細書には多くの具体的な詳細を記載している。しかしながら、当業者であれば、これらの具体的な詳細を用いずに、上記請求の対象である主題を実施可能であることを理解するであろう。他の例では、請求の対象である主題を不明瞭にしないよう、当業者に公知であろう方法、装置又はシステムについては詳細に説明しなかった。
【００４４】
いくつかの部分は、コンピュータメモリ等の計算システムメモリ内に記憶されたデータビット又は２進ディジタル信号による動作のアルゴリズム又は記号表現の形で提供される。これらのアルゴリズムの記述又は表現は、データ処理技術分野において当業者が他の当業者に研究の実質を伝達するために使用する技術の例である。アルゴリズムは、望ましい結果へと繋がる複数の動作又は類似の処理の自己矛盾のないシーケンスである。これに関して、動作又は処理は物理量の物理操作を含む。このような量は典型的には、記憶、移動、結合、比較又はその他の操作が可能な電気又は磁気信号の形をとり得るが、必ずしもそうとは限らない。場合によっては、主に共用化のために、上述のような信号をビット、データ、数値、要素、記号、文字、項、番号、数等と呼ぶと便利であることが分かっている。しかしながら、これらの及び類似の用語はすべて、適切な物理量に対応付けられており、単に便利な標識に過ぎないことを理解すべきである。そうでないことが言明されていない限り、本明細書全体を通して、「処理（ｐｒｏｃｅｓｓｉｎｇ）」、「計算（ｃｏｍｐｕｔｉｎｇ）」、「算出（ｃａｌｃｕｌａｔｉｎｇ）」、「判断・決定（ｄｅｔｅｒｍｉｎｉｎｇ）」及び「識別（ｉｄｅｎｔｉｆｙｉｎｇ）」等の用語を使用した議論は、計算プラットフォームのメモリ、レジスタ又は他の記憶装置、送信装置若しくは表示装置内において物理的な電子又は磁気量で表されるデータを操作又は変換する、１つ又は複数のコンピュータ又は類似の電子計算装置等の計算装置の動作又は処理に関するものである。
【００４５】
本明細書において議論した１つ又は複数のシステムは、いずれの特定のハードウェアアーキテクチャ又は構成に限定されない。計算デバイスは、１つ又は複数の機能呼出しを条件とする結果を提供する複数の構成要素の任意の好適な配列を含むことができる。好適な計算デバイスは多目的マイクロプロセッサベースのコンピュータシステムを含み、これは、汎用計算装置から、本発明の主題の１つ又は複数の態様を実装する専用計算装置へと、計算システムをプログラム又は構成する、記憶されたソフトウェアにアクセスする。任意の好適なプログラミング言語、記述言語、又は他の種類の言語若しくは言語の組み合わせを使用して、本明細書に含まれる教示内容を、プログラミング又は計算装置の構成に使用されるソフトウェアに実装してよい。
【００４６】
本明細書に開示した方法の態様は、上述のような計算デバイスの動作において実行できる。上述の例で示したブロックの順番は変更でき、例えば、ブロックを並び替え、結合し、そして／又はサブブロックに分割できる。複数の特定のブロック又は処理は並列に実行できる。
【００４７】
本明細書における「…するよう適合される（ａｄａｐｔｅｄ  ｔｏ）」又は「…するよう構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）」の使用は、無制限かつ包括的な用語法を意図したものであり、デバイスが更なるタスク又はステップを実行するよう適合される又は構成されることを除外しない。また、「に基づく（ｂａｓｅｄ  ｏｎ）」の使用は、無制限かつ包括的であることを意図したものであり、１つ又は複数の記載された条件又は値「に基づく」処理、ステップ、計算、又はその他の動作が、実際には、記載されたもの以外の更なる条件又は値「に基づく」ものであってもよい。本明細書に含まれる表題、リスト、及び番号付与は、説明を容易にするためだけのものであり、限定を意図したものではない。
【００４８】
本発明の主題をその具体的な態様について詳細に説明したが、当業者は、前述の理解に到達することにより、このような態様の変更、変形及び均等物を容易に生み出すことができることが理解されるだろう。したがって、本開示は、限定ではなく例示の目的で提示されたものであり、本発明の主題に対する上述のような改変、変形及び／又は追加が、当業者にとって容易に明らかなものとして含まれていることを排除するものではないということを理解すべきである。
【図１】
2017513285.tif 000003
【図２】
2017513285.tif 000004
【図３】
2017513285.tif 000005
【図４】
2017513285.tif 000006
【図５】
2017513285.tif 000007
【国際調査報告】
2017513285.tif 000008
2017513285.tif 000009
2017513285.tif 000010
2017513285.tif 000011