(57)【特許請求の範囲】
【請求項１】
ネットワークのホッピングシーケンスを決定する方法であって、
ノードにおいて、前記ネットワークを介したメッセージにより受信したシード値に少なくとも部分的に基づいて、チャネル番号のシーケンスを複数生成する生成ステップと、
前記ノードにおいて、前記シーケンスを連結してホッピングシーケンス候補とする連結ステップであって、前記シーケンスのそれぞれが該ホッピングシーケンス候補のセグメントである、連結ステップと、
前記ホッピングシーケンス候補を調整し、前記ホッピングシーケンスを生成する調整ステップとを有し、当該調整ステップでは、
前記ホッピングシーケンス候補の最初の位置が前記ホッピングシーケンス候補の最後の位置と同じチャネル番号であるとき、前記ノードにおいて、前記ホッピングシーケンス候補の第１のセグメントの最初の２つの位置または前記ホッピングシーケンス候補の最終セグメントの最後の２つの位置を入れ替えることによって、前記ホッピングシーケンス候補の端点を調整する処理と、
前記ホッピングシーケンス候補のある１つのセグメントの最後の位置が前記ホッピングシーケンス候補の次のセグメントの最初の位置と同じチャネル番号であるとき、前記ノードにおいて、前記ホッピングシーケンス候補の前記１つのセグメントの最後の２つの位置または前記ホッピングシーケンス候補の前記次のセグメントの最初の２つの位置を入れ替えて、前記ホッピングシーケンス候補のセグメント境界点を調整する処理とが行われ、
該方法は、前記ネットワークを介して通信を行うために、前記ホッピングシーケンスを用いた前記ノードのネットワークインターフェースの構成を行うステップをさらに有する、方法。
【請求項２】
請求項１に記載の方法であって、
前記シーケンスのそれぞれは、長さが少なくとも３である、前記シーケンスのそれぞれの位置のチャネル番号が異なる、利用可能なチャネルのセットの固有チャネル番号の数に長さが等しいという特徴のうち、１つ以上を有する、方法。
【請求項３】
請求項１に記載の方法であって、
前記シーケンスの生成ステップは、前記シーケンスのそれぞれに異なるシード値を用い、該異なるシード値はそれぞれ少なくとも部分的に前記シード値に基づく、方法。
【請求項４】
請求項１に記載の方法であって、
前記ノードにおいて、前記ノードにアクセス可能な別のネットワークからの別のメッセージを受信するステップをさらに有し、
前記別のメッセージは前記ノードが前記別のネットワークで通信するための前記ネットワークインターフェースを構成する別のシード値を含む、方法。
【請求項５】
請求項１に記載の方法であって、
前記ホッピングシーケンスは前記ホッピングシーケンス候補である、方法。
【請求項６】
請求項１に記載の方法であって、
前記ホッピングシーケンス候補は３以上のセグメントを含み、
前記ホッピングシーケンス候補の複数のセグメント境界それぞれについて、前記セグメント境界点の調整処理を繰り返すステップ、をさらに含む方法。
【請求項７】
コンピューティングデバイスのプロセッサによって実行可能なプログラムを格納する非一時的なコンピュータ読取可能媒体であって、前記プログラムは、
少なくとも部分的にシード値に基づいて、チャネル番号のシーケンスを複数生成する生成処理と、
前記シーケンスを連結して、ネットワークのホッピングシーケンス候補であって前記シーケンスのそれぞれがそのセグメントとなるホッピングシーケンス候補を形成する連結処理と、
前記ホッピングシーケンス候補を調整してホッピングシークエンスを生成する調整処理と、
を前記プロセッサに実行させるコードを含み、前記調整処理では、
前記ホッピングシーケンス候補の最初の位置が前記ホッピングシーケンス候補の最後の位置と同じチャネル番号であるとき、前記ホッピングシーケンス候補の第１のセグメントの最初の２つの位置または前記ホッピングシーケンス候補の最終セグメントの最後の２つの位置を入れ替えることによって、前記ホッピングシーケンス候補の端点を調整する処理と、
前記ホッピングシーケンス候補のある１つのセグメントの最後の位置が前記ホッピングシーケンス候補の次のセグメントの最初の位置と同じチャネル番号であるとき、前記ホッピングシーケンス候補の前記１つのセグメントの最後の２つの位置または前記ホッピングシーケンス候補の前記次のセグメントの最初の２つの位置を入れ替えることによって、前記ホッピングシーケンス候補のセグメント境界点を調整する処理とが行われ、
前記プログラムは、前記ネットワークを介して通信を行うために、前記ホッピングシーケンスを用いた前記コンピューティングデバイスのネットワークインターフェースの構成を前記プロセッサに実行させるコードをさらに含む、コンピュータ読取可能媒体。
【請求項８】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記シーケンスは第１シーケンスと第２シーケンスとを備え、前記第１シーケンスは前記シード値を含むよう構成されるシーケンス生成部を用いて生成され、前記第２シーケンスは前記シード値と異なる第２シード値を含むよう構成される前記シーケンス生成部を用いて生成される、コンピュータ読取可能媒体。
【請求項９】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記プログラムは、前記ネットワークのビーコンで前記シード値を送信するコードをさらに含む、コンピュータ読取可能媒体。
【請求項１０】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記シーケンスのそれぞれは、少なくともチャネル番号３つの長さを有する、コンピュータ読取可能媒体。
【請求項１１】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記セグメント境界点の調整処理は、前記ホッピングシーケンス候補の各セグメント境界について、前記セグメント境界点を調整することを含む、コンピュータ読取可能媒体。
【請求項１２】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記シーケンスの生成処理は、前記シーケンスのそれぞれに異なるシード値を用い、前記異なるシード値はそれぞれ少なくとも部分的に前記シード値に基づく、コンピュータ読取可能媒体。
【請求項１３】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記シーケンスそれぞれの長さは、候補となるチャネル番号の数に等しい、コンピュータ読取可能媒体。
【請求項１４】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記シード値は前記ネットワークを介してビーコンで受信される、コンピュータ読取可能媒体。
【請求項１５】
請求項７に記載の非一時的なコンピュータ読取可能媒体であって、
前記プログラムは、前記ノードにアクセス可能な別のネットワークのステータスデータを受信するコードをさらに含み、
前記ステータスデータは、前記ノードが前記別のネットワークで通信するための前記ネットワークインターフェースを構成することを可能とする別のシード値を含む、コンピュータ読取可能媒体。
【請求項１６】
ノードであって、
プロセッサと、
ネットワークのステータスデータであって、シード値を含むステータスデータを受信するよう構成されたネットワークインターフェースと、
前記ノードで実行されるネットワークアプリケーションで構成されたメモリとを備え、
前記ネットワークアプリケーションは、
少なくとも部分的に前記シード値に基づいて、チャネル番号のシーケンスを複数生成する生成処理と、
前記シーケンスを連結して、前記ネットワークのホッピングシーケンス候補であって前記シーケンスのそれぞれがそのセグメントとなるホッピングシーケンス候補を形成する連結処理と、
前記ホッピングシーケンスを調整してホッピングシークエンスを生成する調整処理と、
を前記ノードに行わせるものであり、前記調整処理では、
前記ホッピングシーケンス候補の最初の位置が前記ホッピングシーケンス候補の最後の位置と同じチャネル番号であるとき、前記ホッピングシーケンス候補の第１のセグメントの最初の２つの位置または前記ホッピングシーケンス候補の最終セグメントの最後の２つの位置を入れ替えることによって、前記ホッピングシーケンス候補の端点を調整する処理と、
前記ホッピングシーケンス候補のある１つのセグメントの最後の位置が前記ホッピングシーケンス候補の次のセグメントの最初の位置と同じチャネル番号であるとき、前記ホッピングシーケンス候補の前記１つのセグメントの最後の２つの位置または前記ホッピングシーケンス候補の前記次のセグメントの最初の２つの位置を入れ替えることによって、前記ホッピングシーケンス候補のセグメント境界点を調整する処理とが行われ、
前記前記ネットワークアプリケーションは、前記ネットワークを介して通信を行うために、前記ホッピングシーケンスを用いた前記ネットワークインターフェースの構成を前記ノードに行わせるものである、ノード。
【請求項１７】
請求項１６に記載のノードであって、
前記ネットワークアプリケーションは、前記ノードにアクセス可能な別のネットワークの別のステータスデータを受信する処理をさらに備え、
前記別のステータスデータは、前記別のネットワークで通信するための前記ネットワークインターフェースを前記ノードが構成することを可能とする別のシード値を含む、ノード。
【請求項１８】
請求項１６に記載のノードであって、
前記ホッピングシーケンス候補は３以上のセグメントを含み、
前記ネットワークアプリケーションは、前記ホッピングシーケンス候補の複数のセグメント境界それぞれについて、前記セグメント境界点の調整を繰り返す処理をさらに備える、ノード。
【請求項１９】
請求項１６に記載のノードであって、
前記各シーケンスにおいて、前記各シークエンスの各位置が異なるチャネル番号を有する、ノード。
【請求項２０】
請求項１６に記載のノードであって、
前記シーケンスの生成は、前記シーケンスのそれぞれに異なるシード値を用い、前記異なるシード値はそれぞれ少なくとも部分的に前記シード値に基づく、ノード。
【発明の詳細な説明】
【背景技術】
【０００１】
時間同期チャネルホッピング（ＴＳＣＨ）ネットワークなどのメッシュネットワークは、ネットワーク上でアクティブな装置がデータを送受信する周波数チャネルを周期的に変更する。任意のネットワーク上でアクティブな装置は、それぞれ、ネットワーク通信に用いられるチャネルのシーケンスを特定する定義済みチャネルホッピングシーケンス（または単に「ホッピングシーケンス」）を含むよう構成されている。ホッピングシーケンスの最後に到達すると、ネットワーク上の装置は最初からホッピングシーケンスを繰り返すことができる。短いおよび／または予測可能なチャネルホッピングシーケンスを用いることで、ノードが近傍のネットワークを発見することが難しくなったり、無線干渉の可能性が高まったりすることがある。長いチャネルホッピングシーケンスを用いると、近傍のネットワークを発見する可能性が向上するが、隣接する反復チャネルを含むこともあり、無線干渉の可能性が高まる。
【発明の概要】
【０００２】
本発明の様々な態様は、ネットワークで使用するための最適化されたチャネルホッピングシーケンス（または単に「ホッピングシーケンス」）の生成に関する。一実施例において、ノードは、少なくとも部分的にシード値に基づいてチャネル番号のシーケンスを生成する。シード値は、ネットワーク経由で受信されるビーコンまたは他のタイプのステータスデータの一部として受信することができる。ネットワークは、ＩＥＥＥ８０２．１５．４規格のファミリーで記述されるような、ＴＳＣＨネットワークであってもよい。シーケンスは、最小長、シーケンス内でチャネルを繰り返さない、シーケンスごとに異なるシード値を用いる等、１以上の特徴を有することができる。ノードは、シーケンスを連結してホッピングシーケンスを形成する。ホッピングシーケンスを形成するシーケンスのそれぞれは、ホッピングシーケンスの「セグメント」と称することができる。
【０００３】
そして、ノードは、ホッピングシーケンスの最初の位置がホッピングシーケンスの最後の位置と同じチャネル番号であるとき、ホッピングシーケンスの端点を調整する。端点の調整は、ホッピングシーケンスの第１のセグメント内の最初の２つの位置、またはホッピングシーケンスの最終セグメント内の最後の２つの位置の入れ替えを含む。
【０００４】
ホッピングシーケンスの１以上のセグメント境界点は、ホッピングシーケンスのあるセグメントの最後の位置がこのホッピングシーケンスの次のセグメントの最初の位置と同じチャネル番号であるとき、調整される。ホッピングシーケンスの１以上のセグメント境界点の調整は、ホッピングシーケンスのセグメントの最後の２つの位置、またはこのホッピングシーケンスの次のセグメントの最初の２つの位置を入れ替えることを含む。ノードは、ホッピングシーケンス内の境界点を全て調べて、調整が必要であるかどうかを判断することができる。ノードは、ネットワーク経由で通信を行うためにホッピングシーケンスを用いてそのネットワークインターフェースを構成する。ネットワークインターフェースを構成する代わりに、ノードは、後に予想されるネットワークインターフェースの構成に用いることができるよう、チャネルホッピングシーケンスを格納することができる。
【図面の簡単な説明】
【０００５】
本開示における多くの態様は、以下の図面を参照してよりよく理解することができる。各図における構成要素は、本開示の原理を明確に図示することを重視し、必ずしも縮尺通りとはなっていない。また、図面において、いくつかの図を通じて対応する部分には同一の参照番号を付している。
【図１】図１は、本開示の様々な実施形態によるメッシュネットワークの図である。
【図２】図２は、様々なシーケンスの一図であり、本開示の各種実施形態にかかるチャネルホッピングシーケンスの生成に用いることができる動作を示す。
【図３】図３は、様々なシーケンスの一図であり、本開示の各種実施形態にかかるチャネルホッピングシーケンスの生成に用いることができる動作を示す。
【図４】図４は、様々なシーケンスの一図であり、本開示の各種実施形態にかかるチャネルホッピングシーケンスの生成に用いることができる動作を示す。
【図５】図５は、本開示の様々な実施形態にかかるメッシュネットワークの別の図である。
【図６】図６は、本開示の様々な実施形態にかかる図１のメッシュネットワークにおいて、ノードなどのネットワーク装置によって実施される機能の一例を説明するフローチャートである。
【図７】図７は、本開示の様々な実施形態にかかる図１のメッシュネットワークにおいて用いられるノードを示す一例の概略ブロック図である。
【発明を実施するための形態】
【０００６】
本発明は、ネットワークにおいて用いられる最適化されたチャネルホッピングシーケンスを生成するシステムおよび方法に関する。ノードまたはコレクタなどのネットワーク装置は、少なくとも部分的にシード値に基づいてチャネル番号のシーケンスを生成する。ネットワーク装置は、これらのシーケンスを連結してホッピングシーケンスを形成し、シーケンスのそれぞれがホッピングシーケンスのセグメントとなる。ホッピングシーケンスの端点およびセグメント間の１以上の境界点の位置が調べられて、隣接する位置で同じチャネル番号が現れるかどうかが判断される。もし現れる場合、隣接する反復チャネル番号の少なくとも一方の位置が調整され、チャネル番号が分離される。その後、ネットワーク装置は、ホッピングシーケンスを格納および／または使用して、ネットワークを介して通信を行うためにそのネットワークインターフェースを構成することができる。
【０００７】
本明細書において、「ノード」は、メッシュネットワークにおいてメッセージの配信に関する機能を果たすことができるインテリジェント装置を含む。あるシステムでは、ノードは、一戸建て家屋または集合住宅などの施設にある、ガス、水道、または電力などの資源の消費量を測定するメータであってもよい。このようなメータは、ａｄｖａｎｃｅｄ
ｍｅｔｅｒｉｎｇ ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＡＭＩ）や無線周波数（ＲＦ）ネットワークの一部であってもよい。ノードの他の例としては、ネットワークに接続されて、通信チャネルを介して情報を送受信または転送することができる、ルータ、コレクタ、収集点、ホストコンピュータ、ハブ、またはその他の演算装置（ｃｏｍｐｕｔｉｎｇ ｄｅｖｉｃｅ）がある。
【０００８】
ノードは、本発明の実施例における機能を可能とする複数の構成要素を含んでいてもよい。例えば、ノードは、このノードがメッシュネットワーク内の同様のノードおよび／または他の装置と通信することを可能にすることができる無線機を含んでもよい。各ノードの無線機は、無線機をコンピュータのように機能させるプログラマブルロジックコントローラ（ＰＬＣ）のような装置を有することができ、コンピュータおよびコマンド機能を実行し本明細書に記載の本発明の実施を提供することができる。また、ノードは、他のノードとの通信に関する情報を保存する記憶媒体を含んでもよい。このような記憶媒体は、例えば、ノードの内部に設けられた、またはネットワークを介してノードがアクセス可能な、メモリ、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ、またはその他のメモリ装置を含んでもよい。また、ノードは、計時を行う水晶発振器（すなわち、クロック）と、バックアップ電源となるバッテリーとを含んでもよい。ノードには、バッテリーのみで電力供給されるものがあってもよい。
【０００９】
ノードは、メッシュネットワーク内の他のノードと、いくつかの周波数チャネルを介して通信することができる。同じチャネルホッピングシーケンスを共有する、すなわち、周波数間を同時にホップするノードは、同じ周波数を介して互いに通信することができる。よって、ＴＳＣＨネットワークにおいては、ノードは、その時々においてホップし、利用可能な周波数スペクトル、例えば、例示の実施例によれば４つのチャネルを介して、他のノードとの通信を確立することができる。ノードは、例えば７００ミリ秒など、一定の時間増加または滞留時間に応じてホップすることができ、このとき、ノードは任意のチャネルまたは周波数を介してメッセージを送受信することができる。用いられるホッピングシーケンスの長さは、ホッピングシーケンスにおいていくらかの重複を促すために、チャネル数の倍数であってもよい。例えば、チャネルが４つある場合には、ホッピングシーケンスの長さは１２などの４の倍数とすることができ、ホッピングシーケンスが１２のスロットまたは位置を有するようにしてもよい。これにより、非干渉のランダム化を行いつつ、地理的に近いコレクタのホッピングシーケンス内にある程度の重複が発生する可能性が高くなる。
【００１０】
本明細書において、「コレクタノード」は、ネットワーク内、およびこのネットワークとコントロールセンターなどの他のネットワークとの間で、特定のルートでメッセージを転送するために用いられるノードを指す。ノードは、任意のコレクタのネットワークの一部であるとき、このコレクタ上で「アクティブ」になる、またはこのコレクタに「関連」付けられているということができる。
【００１１】
本明細書において、「ステータスデータ」はメッセージまたはメッセージのシーケンス中で伝達される情報を指し、ノードは、このメッセージまたはメッセージのシーケンスから任意のコレクタに関連付けられたネットワークステータス情報を獲得することができる。ステータスデータは、ノードによって、コレクタから直接的にまたは１以上の介在ノードを介して、受信されてもよい。ＩＥＥＥ８０２．１５．４ｅによって定義されるネットワークの実施形態のいくつかでは、ステータスデータはビーコンによって伝達されてもよい。ビーコンは、スケジュール駆動型および／またはイベント駆動型ベースで送信されてもよい。
【００１２】
本明細書において、「チャネルホッピングシーケンス」または単に「ホッピングシーケンス」は、チャネルホッピングネットワークを介して通信を行うために装置によって使用されるチャネルのシーケンスを指す。チャネルホッピングシーケンスは、チャネル番号のシーケンスを２つ以上連結を含んでもよく、このシーケンスは、それぞれ、チャネルホッピングシーケンスの「セグメント」と呼ぶことができる。
【００１３】
本明細書において、「セグメント境界」は、２つのシーケンスが連結されてチャネルホッピングシーケンスの全てまたは一部を形成するポイントを指す。すなわち、チャネルホッピングシーケンスの２つのセグメントが接するポイントである。各セグメント境界において、チャネルホッピングシーケンスのセグメントの最後の位置が、チャネルホッピングシーケンスの次のセグメントの最初の位置に論理的に隣接している。
【００１４】
本明細書において、チャネルホッピングシーケンスの「端点」は、チャネルホッピングシーケンスの最初と最後の位置を指す。
【００１５】
ここで図面を参照すると、図１は、本明細書に記載の動作を実施するよう構成された例示的メッシュネットワーク１０を示す。メッシュネットワーク１０は、コレクタノード１９と、無線ノード２１〜２８と、ステータスデータ１１９と、場合によってはその他の図示しない構成要素とを含む。コレクタノード１９は、ノード２１〜２８がノードと関連付けられた施設におけるガス、水道、または電力などの消費量の測定値などの情報を送信することができる収集点として機能することができる。すでに述べたように、ノード２１〜２８は、メッシュネットワーク内の他のノードと通信してこの通信を容易にするための高度な決定を行うための、ネットワークおよびコンピュータとしての十分な性能を備えることができる。
【００１６】
コレクタノード１９は、少なくともノード２１〜２８と同じ機能および性能を有するよう構成することができる。また、コレクタノード１９は、ノード２１〜２８からの情報を保存する十分なストレージ性能を備えてもよく、いくつかの例では、ノードから受信した情報を処理するためのより高い計算能力を備えてもよい。他の例では、ノードから受信した情報の処理に、コマンドセンターまたは計算装置（不図示）を用いてもよい。
【００１７】
ネットワーク１０のステータスデータ１１９は、コレクタ１９によって発信され、ノード２８などのノード候補によってネットワーク１０を見つけるために用いられてもよく、またノード２１〜２７など、ネットワークにおいて現在アクティブなノード間の同期を維持するために用いられてもよい。ステータスデータ１１９の情報は、１以上のネットワーク識別子、シード値、時間同期データ、および／または認識され得るその他のステータス情報を含むことができる。ネットワーク識別子は、ステータスデータ１１９が関連付けられているネットワーク１０を識別する。シード値は、ネットワークに加わろうとしているノード候補によりネットワーク１０のチャネルホッピングシーケンスを導出することを可能にする。時間同期データは、ネットワークのノードが各ノードの無線機によって使用されるクロック間の同期を維持することを可能にする。ステータスデータ１１９の一例が、ビーコンまたは高度ビーコンである。
【００１８】
次に、ネットワーク１０のコレクタ１９および／またはノード２１〜２８において実施されるチャネルホッピングシーケンスの生成に関する動作について、例示的に説明する。説明の便宜上、ノード２８で行われる動作について説明するが、ネットワーク１０のいずれの装置においても類似の動作が行われることは言うまでもない。まず、ノード２８は、コレクタ１９またはコレクタ１９に接続されたノードからステータスデータ１１９を受信する。ステータスデータ１１９は、スケジュール駆動型および／またはイベント駆動型ベースで、ネットワーク１０の１以上のチャネルで送信されてもよい。ステータスデータ１１９が受信される時点では、ノード２８は、どのネットワークとも関連付けられてなくてよく、ネットワーク１０とは別のネットワークと関連付けられていてもよい。ノード２８は、時間経過で変化する１以上のチャネルを走査することにより、指示されたチャネルを受け付けることにより、および／またはその他考えられる技術を介して、ノード２８が未だアクティブとなっていないネットワークであるネットワーク１０のステータスデータ１１９を得ることができる。
【００１９】
ノード２８は、ステータスデータ１１９からネットワーク１０のシード値を取得することができる。コレクタ１９などのコレクタは、任意のネットワークのステータスデータの送信を開始することができる。チャネルホッピングシーケンスを生成する必要があるのがノードではなくコレクタである場合、シード値は、まずコレクタによって生成されてもその他の動作によって生成されてもよい。シード値とシーケンスに含まれることになるチャネル番号とを用いて、図２に示すように複数のチャネル番号のシーケンスを生成することができる。図２に示す例では、３つのシーケンスが示されており、各シーケンスはチャネル４〜７の４つのチャネルから構成されている。様々な実施形態において、シーケンス生成動作は、シーケンス内でチャネル番号を繰り返さない、全シーケンスが固定長である、最小シーケンス長、シーケンスのそれぞれは利用可能なチャネルのセットを全て使用する、各シーケンスは異なるシード値を用いて生成される、および／またはその他考えられる特徴などの、様々な特徴の１以上を有するシーケンスを生成するよう構成することができる。
【００２０】
本開示を通じて、説明例では、生成されたシーケンスが、各シーケンス内で繰り返すチャネルがない、および各シーケンスは少なくとも３つのチャネルからなるという特徴を有するものとしている。シード値は、多項式関数などの予めプログラムされた数学的動作を用いて実施されてシーケンスを生成する、１以上の「シーケンス生成部」との組み合わせで用いられてもよい。シーケンス生成部の一例として、多項式関数（ｘ１６＋ｘ１１＋１）を実施し、シード値を入力として用いてシーケンスを生成する、リニアフィードバックシフトレジスタ（ＬＦＳＲ）がある。異なるシード値を用いて各シーケンスを生成する場合には、シード値は、ステータスデータ１１９内に形成されてもよく、または単一のシード値からその他の予めプログラムされた数学的動作によって導出されてもよい。後者の例として、ノードは、ステータスデータ内で受信したシード値を用いて第１シーケンスを生成し、第１シード値を４ビットシフトした第２シード値を用いて第２シーケンスを生成し、第２シード値にビット単位のＮＯＴ操作を行った第３シード値を用いて第３シーケンスを生成する、等を行ってもよい。
【００２１】
その後、図３に示すように、ノード２８は、様々なシーケンスを連結してチャネルホッピングシーケンスを構成することができる。図３に示すホッピングシーケンスは、図２に示す３つのシーケンスの考えられる連結の結果である。ホッピングシーケンスを構成する連結された個々のシーケンスは、それぞれ、ホッピングシーケンスの「セグメント」と呼ぶことができる。この段階では、ホッピングシーケンスはホッピングシーケンス候補と呼ばれるが、これはまだノード２８によって調べられておらず、連結の結果隣接する反復チャネルが存在するかどうかが判断されていないためである。もし存在するのであれば、隣接する反復チャネル番号の少なくとも一方の位置が調整され、チャネル番号が分離される。隣接する反復チャネルを有するホッピングシーケンスでは、干渉の低減など、チャネルホッピングを実施する利点が損なわれることがある。結果として、繰り返されるシーケンスに隣接するチャネルのないホッピングシーケンスが望ましい。
【００２２】
図３に示す例では、ホッピングシーケンスの同じチャネルに隣接したチャネルを強調しており、これらは位置１と１２、位置４と５、および位置８と９に発生している。なお、ネットワーク１０などのネットワークにおいて採用される場合、ホッピングシーケンスの使用は、通常、ホッピングシーケンスの最後の位置にあるチャネルを用いた後に同じホッピングシーケンスの最初の位置にあるチャネルが使用されるといったように、環状に繰り返される。このような構成を踏まえると、ホッピングシーケンスの最初と最後の位置は、隣接する反復チャネルを除去するという目的においては、隣接する位置と考えられる。
【００２３】
続けて、図４に、図３に示す隣接する反復チャネルを除去するためにホッピングシーケンスに行うべき調整の、考えられる例を示す。図３のホッピングシーケンスの最初と最後の位置（すなわち、位置１および１２）に現れる隣接する反復チャネル４を除去するため、図４のホッピングシーケンスの最後の２つの位置（すなわち、位置１１および１２）における強調したチャネルを入れ替えた。図３のホッピングシーケンスのセグメント１および２の間の境界（すなわち、位置４および５）で隣接する反復チャネル６を除去するため、図４のセグメント１の最後の２つの位置（すなわち、位置３および４）の強調表示したチャネルを入れ替えた。
【００２４】
同様に、図３のホッピングシーケンスのセグメント２および３の間の境界（すなわち、位置８および９）で隣接する反復チャネル７を除去するため、図４のセグメント２の最後の２つの位置（すなわち、位置７および８）の強調表示したチャネルを入れ替えた。なお、図４では特定の位置を選択して入れ替えているが、図６との関連で本明細書に開示するように、代わりにその他の位置を入れ替えて同等の結果となるよう特定の隣接する反復を除去することもできる。適切に相互運用を行うために、隣接する反復チャネルを取り除くために適用される特定の位置入れ替え動作には、ネットワーク１０のノード２１〜２８およびその他の装置の間で一貫性を持たせるべきである。
【００２５】
チャネルホッピングシーケンスに調整を行う際、ノード２８は、ネットワーク１０上で通信を行うためのネットワークインターフェースをホッピングシーケンスを用いて構成してもよい。ある実施形態においては、ノード２８は、図５の例に示すように、ホッピングシーケンスを後で利用するために保存してもよい。図５に、図１に関連して上述したコレクタ１９、ノード２１〜２８、ステータスデータ１１９を示す。ただし、図５では、ノード２８は、ステータスデータ１１９のシード値から引き出されたネットワーク１０のホッピングシーケンスとのネットワークインターフェースを構成した後、ノード２５とのリンクを介して、ネットワーク１０に加わっている。加えて、図５は、コレクタ５１９とノード５２９〜５３１からなる別のネットワーク５００を含んでいる。ネットワーク５００のステータスデータ５２０は、コレクタ５１９によって発信され、ノード２８などのノード候補によって近傍のネットワーク５００を見つけるために用いられてもよく、またノード５２９〜５３１などのネットワーク５００において現在アクティブなノード間の同期を維持するために用いられてもよい。
【００２６】
ネットワーク１０上でアクティブである間、ノード２８は、ネットワーク１０のホッピングシーケンスに従うことができる。しかし、ノード２８は、ノード２８がアクティブとなっていないネットワークであるネットワーク５００のステータスデータ５２０を、２つのネットワークのチャネルのある時点での確率的な重複、指示されたチャネルを周期的に受け付けること、および／またはその他考えられる技術を介して、得ることができる。２つのネットワーク間でのチャネルの重複は、ネットワーク１０とネットワーク５００のチャネルホッピングシーケンスにおいて、同一期間に同じチャネルが利用される結果として起こることがある。ランダム化した長いチャネルホッピングシーケンスを使用することの利点の一つが、これによってチャンネルがときおり重複する可能性が高まり、ノードが近傍にある他のネットワークを見つけることができるということである。これらの近傍のネットワークは、任意のノードが現在アクティブであるネットワークからのフェイルオーバーを選択および／または性能を向上させることができる。
【００２７】
例えば、一定時間から開始して、ネットワーク１０のホッピングシーケンスが[4  5  6
7  6  4  7  5  7  6  4  5]、ネットワーク５００のホッピングシーケンスが[5  6  7  4  5  7  4  6  7  5  6  4]であってもよい。これら２つのホッピングシーケンスにおいて、上に強調して示したように両方のネットワークがチャネル７を使用しているシーケンスの９番目の位置を除いては、チャネルは、１２の位置それぞれで異なっている。この時にネットワーク５００から送信されるならば、この間、ノード２８はネットワーク５００のステータスデータ５１９を受信してもよい。ステータスデータ５１９がシード値と合わせて受信されると、本明細書で開示するように、ノード２８はネットワーク５００のホッピングシーケンスを導出することができる。その後、ノード２８はネットワーク５００のホッピングシーケンスを保存してもよく、これを後で用いてノード２８のネットワークインターフェースを構成することができる。いくつかの実施形態において、ノード２８は、ステータスデータ５００に含まれ得るその他の様々なデータを用いて、ネットワーク５００の性能を現在のネットワーク１０と比較してより好ましいネットワークを選択してもよく、および／または、ネットワーク１０が中断された場合には、ネットワーク５００が適切なフェイルオーバー選択であるかどうかを判断してもよい。
【００２８】
次に図６を参照すると、ネットワーク１０などの様々な実施形態にかかるＴＳＣＨネットワークにおいて、コレクタおよび／またはノードの方法６００のチャネルホッピングシーケンス生成動作の一例を示すフローチャートを示す。図６のフローチャートが、本明細書で説明する方法６００のネットワーク最適化動作を実施するために採用し得る、数多くのタイプの異なる機能構成の一例に過ぎないことは言うまでもない。図６のフローチャートに示す例示的な動作は、ネットワークのコレクタおよび／またはノードによって、シード値を得た後、開始される。上述の通り、ノード２１〜２８などのノードは、ネットワーク用に送信されるステータスデータからシード値を得てもよい。コレクタ１９などのコレクタは、シード値をローカルで生成してもよく、またはシード値を含むよう構成されてもよく、コレクタによって編成されたネットワークのステータスデータ中のシード値を送信することになる。
【００２９】
ブロック６０３から始めると、方法６００は、少なくとも部分的にシード値に基づいて、チャネル番号のシーケンスを複数生成する。シード値は、シーケンスを生成するよう、１以上の予めプログラムされた数学的動作と組み合わせて用いられてもよい。様々な実施形態において、シーケンス生成動作は、シーケンス内でチャネル番号を繰り返さない、全シーケンスが固定長である、最小シーケンス長、シーケンスのそれぞれは利用可能なチャネルのセットを全て使用する、各シーケンスは異なるシード値を用いて生成される、および／またはその他考えられる特徴などの、様々な特徴の１以上を有するシーケンスを生成するよう構成することができる。異なるシード値を用いて各シーケンスを生成する場合には、シード値は、ネットワークのステータスデータ内に形成されてもよく、または単一のシード値から導出されてもよい。例えば、シーケンス１＝[1  2  3]、シーケンス２＝[3  2  1]、シーケンス３＝[2  3  1]のように、それぞれ３つのチャネル番号を有するシーケンスを３つ生成してもよい。
【００３０】
次に、ブロック６０６において、様々なシーケンスが連結してチャネルホッピングシーケンスをする。チャネルホッピングシーケンスを形成構成する連結された個々のシーケンスは、それぞれ、チャネルホッピングシーケンスの「セグメント」と呼ぶことができる。この段階では、ホッピングシーケンスは、ホッピングシーケンス候補と呼ばれるが、これはまだ調べられておらず、連結の結果隣接する反復チャネルが存在するかどうか判断されていないためである。隣接する反復チャネルが存在する場合、隣接する反復チャネル番号の少なくとも一方の位置が調整され、チャネル番号が分離される。隣接する反復チャネルを有するチャネルホッピングシーケンスでは、干渉の低減など、チャネルホッピングを実施する利点が損なわれることがある。結果として、繰り返されるシーケンスに隣接するチャネルのないホッピングシーケンスが望ましい。例えば、上の例で考えられる３つのシーケンスの連結（シーケンス１＋シーケンス２＋シーケンス３）の結果、[1  2  3  3  2  1  2  3  1]というホッピングシーケンスが形成される。
【００３１】
続けて、ブロック６０９において、ホッピングシーケンスを調べてホッピングシーケンスの最初と最後の位置に同じチャネルがあるかどうかを判断する。なお、ネットワーク１０などのネットワークにおいて採用される場合、ホッピングシーケンスの使用は、通常、ホッピングシーケンスの最後の位置にあるチャネルを用いた後に同じシーケンスの最初の位置にあるチャネルが使用されるといったように、環状に繰り返される。このような構成を踏まえると、ホッピングシーケンスの最初と最後の位置は、隣接する反復チャネルを除去するという目的においては、隣接する位置と考えられる。ホッピングシーケンス[1  2  3  3  2  1  2  3  1]を有する上の例に戻ると、ホッピングシーケンスの最初と最後の強調表示した位置でチャネル１が繰り返されている。
【００３２】
ホッピングシーケンスの最初と最後の位置で同じチャネルが検出されると、方法６００はブロック６１２へ進む。あるいは、ホッピングシーケンスの最初と最後の位置で異なるチャネルが検出されると、方法６００はブロック６１５へ進む。ブロック６１２において、方法６００は、ホッピングシーケンスの第１のセグメントの最初の２つの位置またはホッピングシーケンスの最終セグメントの最後の２つの位置を入れ替える。上の例に戻ると、ホッピングシーケンスを、第１のセグメントの最初の２つの位置を強調表示のように調整して[2 1  3  3  2  1  2  3  1]となるように調整、または最終セグメントの最後の２つの位置を強調表示のように調整して[1  2  3  3  2  1  2  1 3]となるように調整する。なお、適切に相互運用を行うために、隣接する反復チャネルを取り除くために適用される特定の位置入れ替え動作には、ネットワークのノード、コレクタ、およびその他の装置の間で一貫性を持たせるべきである。
【００３３】
次に、ブロック６１５において、方法６００は、あるセグメントの最後の位置と次のセグメントの最初の位置に同じチャネルがあるかどうかを判断する。それぞれチャネルを３つ有するセグメント３つから最初に生成されるホッピングシーケンス[2  1  3 3  2  1  2  3  1]の例で続けると、第１のセグメントの最後の位置と第２のセグメントの最初の位置で、強調表示したようにチャネル３が繰り返されている。あるセグメントの最後の位置と次のセグメントの最初の位置に同じチャネルが存在する場合、方法６００はブロック６１８へ進む。あるいは、あるセグメントの最後の位置と次のセグメントの最初の位置で異なるチャネルが検出されると、方法６００はブロック６２１へ進む。
【００３４】
ブロック６１８において、方法６００は、ホッピングシーケンスのあるセグメントの最後の２つの位置またはホッピングシーケンスの次のセグメントの最初の２つの位置を入れ替える。上の例に戻ると、ホッピングシーケンス[2  1  3  3  2  1  2  3  1]を、第１のセグメントの最後の２つの位置を強調表示のように調整して[2  3 1  3  2  1  2  3  1]となるように調整、または最終セグメントの最初の２つの位置を強調表示のように調整して[1  2  3  2 3  1  2  1  3]となるように調整する。なお、適切に相互運用を行うために、隣接する反復チャネルを取り除くために適用される特定の位置入れ替え動作には、ネットワークのノード、コレクタ、およびその他の装置の間で一貫性を持たせるべきである。
【００３５】
次に、ブロック６２１において、方法６００は、ホッピングシーケンス内に調べるべきセグメント境界がまだ残っているかどうかを判断する。３つのシーケンスが連結して生成されたホッピングシーケンスの例に戻ると、第１および第２のセグメント間の第１のセグメント境界が調べられて調整されたが、ホッピングシーケンスの第２および第３のセグメント間にもさらにセグメント境界が存在する。ただし、ホッピングシーケンス[2 3 1 3 2 1 2
3 1]を用いる場合は、強調表示した第２および第３のセグメントの境界位置には同じチャネルが存在しないため、これ以上調整を行う必要はない。
【００３６】
続けて、調べるべきセグメント境界が残っていれば、方法６００の実行はブロック６１５に戻る。あるいは、方法６００の実行はブロック６２４へ進む。ブロック６２４において、方法６００は、隣接する反復チャネルを取り除くよう調整されたホッピングシーケンスを用いて、ネットワーク内の同じくホッピングシーケンスを用いる他の装置と通信するネットワークインターフェースを構成してもよい。ある実施形態において、ノードまたはその他の装置は、まず、後に予想される使用のためにホッピングシーケンスを保存してもよい。
【００３７】
次に、無線メッシュネットワークまたはその他のデータネットワークにおいて、本明細書に開示する技術を実施するために用いられるノード２１〜２８の例を示すブロック図を、図７に示す。ノード２１〜２８は、処理装置７０２を含んでもよい。処理装置７０２の非限定的な例には、マイクロプロセッサ、特定用途向け集積回路（「ＡＳＩＣ」）、ステートマシン、その他の適した処理装置などがある。処理装置７０２は、１を含む任意の数の処理装置を含んでもよい。処理装置７０２は、メモリデバイス７０４などのコンピュータ読取可能媒体に通信可能に連結することができる。処理装置７０２は、メモリデバイス７０４に格納されたコンピュータ実行可能プログラムのインストラクションを実行、および／またはメモリデバイス７０４にそれぞれ格納された情報にアクセスすることができる。
【００３８】
メモリデバイス７０４は、処理装置７０２によって実行されると本明細書に記載された動作を処理装置７０２に行わせるインストラクションを格納してもよい。メモリデバイス７０４は、電子、光学、磁気、またはその他のメモリ装置などの（ただしこれに限定されない）、プロセッサにコンピュータ読取可能なインストラクションを与えるコンピュータ読取可能媒体であってもよい。このような光学、磁気、またはその他のメモリ装置の非限定的な例として、リードオンリー（「ＲＯＭ」）装置、ランダムアクセスメモリ（「ＲＡＭ」）装置、磁気ディスク、磁気テープ、またはその他の磁気ストレージ、メモリチップ、ＡＳＩＣ構成のプロセッサ、光学メモリ装置、またはコンピュータプロセッサがインストラクションを読み取ることができるその他任意の媒体がある。インストラクションは、任意の適切なコンピュータプログラム言語で記述されたコードから、コンパイラおよび／またはインタープリターによって生成された、特定プロセッサ用インストラクションを含んでおよい。適切なコンピュータプログラム言語の非限定的な例として、Ｃ言語、C++、C#、Visual Basic、Java（登録商標）、Python、Perl、JavaScript（登録商標）、等がある。
【００３９】
ノード２１〜２８は、ノード２１〜２８の１以上の構成要素を通信可能に連結することができるバス７０６を含んでもよい。プロセッサ７０２、メモリ７０４、およびバス７０６は、図７では互いに通信可能な別構成要素として描かれているが、別の形で実施することも可能である。例えば、プロセッサ７０２、メモリ７０４、およびバス７０６は、ノード２１〜２８に配置してプログラムコードを格納および実行することのできるプリント回路基板またはその他の適切な装置の構成要素であってもよい。
【００４０】
また、ノード２１〜２８は、ネットワークインターフェース装置７０８を含んでもよい。ネットワークインターフェース装置７０８は、アンテナ７１０を介して１以上の無線通信リンクを確立するよう構成された送受信装置とすることができる。ネットワークインターフェース装置７０８の非限定的な例の一つが無線トランシーバーであり、メッシュネットワーク１０内の他のノード２１〜２８との間で無線通信リンクを確立する１以上の構成要素を含むことができる。
【００４１】
本明細書においては、請求の主題の十分な理解を与えられるよう、数多くの具体的詳細を説明している。しかしながら、請求の主題がこれらの具体的詳細を欠いても実現可能であることは、当業者には言うまでもないことであろう。当業者に知られるその他の例、方法、装置、またはシステムについては、請求の主題を曖昧なものにしないためにも詳細な説明を省いている。
【００４２】
コンピュータメモリなどのコンピュータシステムメモリに格納されるデータビットや２値デジタル信号での動作のアルゴリズムや記号表現との関連で、提示する部分もある。これらのアルゴリズム的記述または表現は、データ処理分野の当業者によって仕事の内容を別の当業者に伝達するために用いられる技術の例である。アルゴリズムは、所望の結果をもたらすための、首尾一貫した動作のシーケンスまたは類似の処理である。この文脈では、動作または処理は、物理量の物理的操作を含むものである。必須ではないが、通常、このような物理量は、保存、転送、結合、比較、またはその他の操作を行うことが可能な電気または磁気信号の形をとる。主として一般的な用法上の理由から、このような信号を、ビット、データ、数値、要素、記号、文字、用語、番号、数字、等と呼ぶことが、時に便利であることがわかっている。しかしながら、これら全ておよび類似の用語が適切な物理量と関連付けられるべきものであり、単に便利なラベルにすぎないことは言うまでもない。特に記載がない限り、本明細書を通じて、「処理」「演算」「計算」「判断」「識別」等の用語を用いた議論は、メモリ、レジスタ、またはその他のメモリ装置内の物理的な電子量または磁気量として表現されるデータの操作または変換を行う１以上のコンピュータまたは類似の電子計算装置などの計算装置、送信装置、またはコンピュータプラットフォームの表示装置の、動作または処理を指すものであることは言うまでもない。
【００４３】
本明細書で論じたシステムまたは複数のシステムは、特定のハードウェア構造や構成に限定されるものではない。計算装置は、１以上の関数呼び出しによって条件付けられる結果をもたらす構成要素の任意の適切な配列を含んでもよい。適切な計算装置は、本主題の１以上の態様を実施するものである汎用演算装置から専用演算装置までを含む演算システムをプログラムするまたは構成する格納されたソフトウェアにアクセスする、多目的マイクロプロセッサベースのコンピュータシステムを含むことができる。任意の適切なプログラム、スクリプト、またはその他のタイプの言語、または言語の組み合わせを用いて、計算装置のプログラムまたは構成に用いられることになるソフトウェアにおいて、本明細書に記載の技術を実施することができる。
【００４４】
本開示の方法の態様は、このような計算装置の動作において行うことができる。上の例で提示されたブロックの順番は、例えばブロックの並び替え、結合、および／またはサブブロックへの分解など、変更可能である。いくつかのブロックまたは処理を並行して行うこともできる。
【００４５】
本明細書における「に適している」または「よう構成される」の使用は、非限定的かつ包括的な言語を意味し、追加的なタスクやステップを行うことに適したりそのように構成されたりする装置を除外するものではない。加えて、「基づく」の使用は、非限定的かつ包括的な意味であり、１以上の規定の条件または値に「基づく」プロセス、ステップ、計算、またはその他の動作は、実際には、規定外の追加的な条件または値に基づいてもよい。本明細書の見出し、リスト、および番号は、単に説明をわかりやすくするためのものであり、限定を意味するものではない。
【００４６】
本明細書の主題をその具体的な態様に関連して詳細に説明したが、先の説明の理解が得られるならば、これらの態様の修正例、変形例、およびその等価例を容易に生み出すことができることは、当業者には言うまでもない。したがって、本開示は、限定ではなく例示を目的として提示されたものであり、当業者には容易にわかるように、本明細書の主題に対する修正、変形、および／または追加の包含を除外するものではないことは、言うまでもない。
【図１】
0006572306.tif 000002
【図２】
0006572306.tif 000003
【図３】
0006572306.tif 000004
【図４】
0006572306.tif 000005
【図５】
0006572306.tif 000006
【図６】
0006572306.tif 000007
【図７】
0006572306.tif 000008