(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-20
(45)【発行日】2024-11-28
(54)【発明の名称】滞留時間制限に従った無線送信の開始または延期
(51)【国際特許分類】
H04W 72/02 20090101AFI20241121BHJP
H04W 72/53 20230101ALI20241121BHJP
H04W 72/566 20230101ALI20241121BHJP
H04W 74/08 20240101ALI20241121BHJP
H04W 4/38 20180101ALI20241121BHJP
【FI】
H04W72/02
H04W72/53
H04W72/566
H04W74/08
H04W4/38
(21)【出願番号】P 2022504623
(86)(22)【出願日】2020-07-22
(86)【国際出願番号】 US2020042991
(87)【国際公開番号】W WO2021016304
(87)【国際公開日】2021-01-28
【審査請求日】2023-06-19
(32)【優先日】2019-07-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】513113895
【氏名又は名称】ランディス・ギア イノベーションズ インコーポレイテッド
【氏名又は名称原語表記】LANDIS+GYR INNOVATIONS, INC.
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100189544
【氏名又は名称】柏原 啓伸
(72)【発明者】
【氏名】ローウェル,アラン ブレア
【審査官】横田 有光
(56)【参考文献】
【文献】国際公開第2018/237226(WO,A1)
【文献】国際公開第2019/095332(WO,A1)
【文献】国際公開第2018/191538(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24- 7/26
H04W 4/00-99/00
3GPP TSG RAN WG1-4
SA WG1-4、6
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
データ送信をゲートするための方法であって、
送信のための第1のパケットを特定するステップと、
前記第1のパケットの送信のための無線チャネルを決定するステップと、
前記第1のパケットが制限されたクラスにあると決定するステップと、
前記第1のパケットが前記制限されたクラスにあることに応答して、予約時間および滞留時間制限に基づいて、前記無線チャネル上の動的最大利用可能時間を決定するステップと、
前記無線チャネル上での第1の費やされた滞留時間と前記動的最大利用可能時間との比較に基づいて、前記無線チャネル上の第1の残りの滞留時間を計算するステップと、
前記無線チャネル上で前記第1のパケットを送信するための第1の送信持続時間を決定するステップと、
前記第1の残りの滞留時間が前記第1の送信持続時間未満であることに応答して、前記第1のパケットを延期するステップと
を含む、方法。
【請求項2】
前記動的最大利用可能時間を決定するステップは、前記第1のパケットが
前記制限されたクラスであることに応答して、
前記滞留時間制限から
前記予約時間を減算するステップを含む、
請求項1に記載の方法。
【請求項3】
更に、
第2のパケットが許可されたクラスにあることを決定するステップと、
前記第2のパケットが前記許可されたクラスにあることに応答して、前記無線チャネル上の前記動的最大利用可能時間を前記滞留時間制限に設定するステップと、
前記無線チャネル上での第2の費やされた滞留時間と前記動的最大利用可能時間との比較に基づいて、前記無線チャネル上の第2の残りの滞留時間を計算するステップと、
前記無線チャネル上で前記第2のパケットを送信するための第2の送信持続時間を決定するステップと、
前記第2の残りの滞留時間が前記第2の送信持続時間未満であることに応答して、前記第2のパケットを延期するステップと
を含む、請求項1に記載の方法。
【請求項4】
パケットのための前記動的最大利用可能時間は、前記パケットが前記許可されたクラスにあるかどうかに基づく、
請求項3に記載の方法。
【請求項5】
更に、
ローリングタイムウィンドウを2つ以上の固定時間ウィンドウに分割するステップと、
前記無線チャネルにカウンタサブセットを割り当てるステップであって、該カウンタサブセットは、前記ローリングタイムウィンドウにおける前記無線チャネルの費やされた滞留時間を共に表す2つ以上のカウンタからなる、割り当てるステップと、
前記カウンタサブセットの各カウンタを、前記2つ以上の固定時間ウィンドウのうちの夫々の固定時間ウィンドウに割り当てるステップと、
前記カウンタサブセット内の2つ以上のカウンタの合計に基づいて、前記第1の費やされた滞留時間を決定するステップと
を含む、請求項1に記載の方法。
【請求項6】
更に、
前記無線チャネル上で前記第1のパケットを送信するステップと、
前記第1の送信持続時間によって、前記カウンタサブセット内の第1のカウンタを増加するステップと
を含み、
前記第1のカウンタは、前記第1のパケットが送信される時間を含む第1の固定時間ウィンドウに割り当てられている、
請求項5に記載の方法。
【請求項7】
更に、
複数の利用可能な無線チャネルの各無線チャネルに夫々のカウンタサブセットを割り当てるステップを含み、
各カウンタサブセットは、前記ローリングタイムウィンドウの内部の夫々の無線チャネルの夫々の費やされた滞留時間を示す、
請求項5に記載の方法。
【請求項8】
動的最大利用可能時間を決定するステップは、
前記滞留時間制限から
前記予約時間を減算するステップを含み、
前記第1の残り
の滞留時間を計算するステップは、
ローリングタイムウィンドウを2つ以上の固定時間ウィンドウに分割するステップと、
費やされた滞留時間を共に表す2つ以上のカウンタを含む、カウンタサブセットの各カウンタを、前記2つ以上の固定時間ウィンドウの夫々の固定時間ウィンドウに割り当てるステップと、
前記カウンタサブセット内の2つ以上のカウンタの合計に基づいて、前記第1の費やされた滞留時間を決定するステップと、
前記動的最大利用可能時間から前記第1の費やされた滞留時間を減算するステップと
を含む、
請求項1に記載の方法。
【請求項9】
更に、
前記ローリングタイムウィンドウを2つ以上の固定時間ウィンドウに分割するステップと、
複数の利用可能な無線チャネルの各無線チャネルに対して、
夫々のカウンタサブセットの各カウンタを、前記2つ以上の固定時間ウィンドウのうちの対応する固定時間ウィンドウに割り当てるステップと
を含み、
前記複数の
利用可能な無線チャネルの各無線チャネルに対して、前記カウンタサブセットの各カウンタは、前記対応する固定時間ウィンドウにおける夫々の部分的な費やされた滞留時間を表す、
請求項8に記載の方法。
【請求項10】
ノードであって、
複数の利用可能な無線チャネルに亘って複数のパケットを送信するように構成された無線機と、
コンピュータ可読命令を実行するように構成されたプロセッサと、
前記プロセッサによって実行されると、前記プロセッサに動作を実行させる、前記コンピュータ可読命令を格納するように構成されたメモリと
を含み、
前記動作は、
送信のための第1のパケットを識別するステップと、
前記第1のパケットの送信のために、前記複数の
利用可能な無線チャネルのうち、無線チャネルを決定するステップと、
前記第1のパケットが制限されたクラスであると決定するステップと、
前記第1のパケットが前記制限されたクラスにあることに応答して、予約時間および滞留時間制限に基づいて、前記無線チャネル上の動的最大利用可能時間を決定するステップと、
前記無線チャネル上での第1の費やされた滞留時間と前記動的最大利用可能時間との比較に基づいて、前記無線チャネル上の第1の残りの滞留時間を計算するステップと、
前記無線チャネル上で
前記第1のパケットを送信するための第1の送信持続時間を決定するステップと、
前記第1の残りの滞留時間が前記第1の送信持続時間未満であることに応答して、前記第1のパケットを延期するステップと
を含む、
ノード。
【請求項11】
前記ノードは、ユーティリティメータである、
請求項10に記載のノード。
【請求項12】
前記動作は、更に、
第2のパケットが許可されたクラスであると決定するステップと、
前記第2のパケットが前記許可されたクラスにあることに応答して、前記無線チャネル上の
前記動的最大利用可能時間を前記滞留時間制限に設定するステップと、
前記無線チャネル上での第2の費やされた滞留時間と前記動的最大利用可能時間との比較に基づいて、前記無線チャネル上の第2の残りの滞留時間を計算するステップと、
前記無線チャネル上で
前記第2のパケットを送信するための第2の送信持続時間を決定するステップと、
前記第2の残りの滞留時間が前記第2の送信持続時間未満であることに応答して、前記第2のパケットを延期する。ステップと
を含む、請求項10に記載のノード。
【請求項13】
更に、複数のカウンタサブセットを含むカウンタセットを含み、
各カウンタサブセットは、複数の利用可能な無線チャネルの夫々の無線チャネルに割り当てられ、
前記動作は、更に、
前記無線機によって、前記無線チャネル上で前記第2のパケットを送信するステップと、
前記第1の送信持続時間によって、前記無線チャネルに割り当てられたカウンタサブセット内の第1のカウンタを増加させるステップと
を含み、
前記第1のカウンタは、前記第1のパケットが送信される時間を含む第1の固定時間ウィンドウに割り当てられている、
請求項12に記載のノード。
【請求項14】
パケットのための前記動的最大利用可能時間は、前記パケットが前記許可されたクラスにあるかどうかに基づいている、
請求項12に記載のノード。
【請求項15】
前記動作は、更に、
ローリングタイムウィンドウを2つ以上の固定時間ウィンドウに分割するステップと、
前記無線チャネルにカウンタサブセットを割り当てるステップであって、前記カウンタサブセットは、前記ローリングタイムウィンドウにおける前記無線チャネルの費やされた滞留時間を共に表す2つ以上のカウンタからなる、割り当てるステップと、
前記カウンタサブセットの第1のカウンタを前記2つ以上の固定時間ウィンドウのうちの第1の固定時間ウィンドウに割り当てるステップであって、前記第1のカウンタは前記第1の固定時間ウィンドウにおける部分的な費やされた滞留時間を示す、割り当てるステップと、
前記無線機によって、前記無線チャネル上で前記第1のパケットを送信するステップと、
前記第1のパケットが送信される時間が前記第1の固定時間ウィンドウ内に入ることに応答して、前記第1のカウンタを前記第1の送信持続時間だけ増加させるステップと
を含む、
請求項10に記載のノード。
【請求項16】
前記動作は、更に、
前記複数の利用可能な無線チャネルの夫々の無線チャネルに夫々のカウンタサブセットを割り当てるステップを含み、
夫々のカウンタサブセットは、前記ローリングタイムウィンドウの内部の前記夫々の無線チャネルの夫々の費やされた滞留時間を示す、
請求項15に記載のノード。
【請求項17】
前記複数の
利用可能な無線チャネルの各無線チャネルに対して、該無線チャネルの夫々のカウンタサブセット内の夫々のカウンタは
、対応する固定時間ウィンドウ内の夫々の部分的な費やされた滞留時間を表す、
請求項16に記載のノード。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の様々な実施形態は、無線通信に関し、より詳細には、滞留時間制限を遵守して無線送信を開始または延期することに関するものである。
【背景技術】
【0002】
無線周波数(RF)無線機は、連邦通信委員会(FCC)または他の規制機関の規制により、利用可能な各無線チャネルのチャネル占有時間を制限することが要求されている。より具体的には、FCCは、各無線機が、各ローリング20秒ウィンドウ中に400ミリ秒を超えないようにチャネルを占有することを要求している。この規制は、実質的な内容を持つデータパケット、および確認応答やその他のネットワーク・メンテナンス・パケットに適用される。さらに、この規制は各無線機に対して個別に適用され、1台の無線機に対して、各無線チャネルに対して個別にチャネル占有量の制限が適用される。一般的に、ユーティリティメータは、メッシュネットワークや他のネットワークに参加するため、ネットワーク内の他のノードと通信する目的でRF無線を組み込むことがある。その結果、ユーティリティメータは、無線チャネル上のチャネル占有時間(滞留時間とも呼ばれる)に関連するあらゆる規制に準拠することが求められる。
【0003】
1つのメッシュネットワーク内のユーティリティメータを含むノードは、確立されたチャネルホッピングスケジュールに従って無線チャネル間でホップする。例えば、スケジュールは、メッシュネットワークによって使用されるチャネルの順序を示し、ノードは一般に、所定の長さを有する時間スロットに対してその順序の単一チャネル上で送受信する。したがって、各ノードは、各タイムスロットにどのチャネルを使用するか、およびタイムスロットの終了時にどのチャネルにホップするかについて認識している。
【0004】
ユーティリティメータの分野では、メッシュネットワークは、実質的なデータパケットだけでなく、ビーコンや確認応答などの管理パケットも送信するために使用される。ビーコンは、メッシュネットワーク内の無線機間の同期を維持するために定期的に送信される。例えば、ビーコンは、ネットワーク内のノードがどのチャネルをどの時間に使用するかを知るように、上述の無線チャネルのスケジュールを示し、ビーコンは、無線デバイスによる使用のための現在時刻を示すことができる。例えば、ビーコンは、送信に15ミリ秒を必要とし、したがって、無線チャネルに15ミリ秒を必要とする場合がある。公共料金メーターは、通常、データパケットの受信に応答して確認応答を送信し、確認応答は、データパケットを受信したことを送信者に確認する。確認応答は送信に2ミリ秒を必要とする場合があり、したがって2ミリ秒を利用する。ビーコンと確認応答の両方、および他の管理パケットは、滞留時間としてカウントされる。
【0005】
北米では、電力量計が使用する周波数帯に64の無線チャネルがある場合があり、滞留時間の制限は、各無線チャネルに個別に適用される。その結果、無線を利用するデバイスは、各無線チャネルでの滞留時間を追跡する方法を見つけなければならない。また、それ以外のチャネル数を使用する場合もある。例えば、香港では同様のデバイスが使用する無線チャネルは11個しかなく、インドでは10個かもしれない。無線チャネル数が減ると、滞留時間の効率的な利用がより重要になる。
【発明の概要】
【0006】
本発明の実施の非限定的な例は、データ送信にゲートするための方法である。この方法は、送信のためのパケットを識別することと、パケットの送信のための無線チャネルを決定することとを含む。本方法は、パケットが制限されたクラスにあることを決定することと、パケットが制限されたクラスにあることに応答して、予約時間および滞留時間制限に基づいて無線チャネル上の動的最大利用可能時間を決定することとを更に含む。本方法は、無線チャネル上での費やされた滞留時間と動的最大利用可能時間との比較に基づいて、無線チャネル上の残りの滞留時間を計算することを更に含む。更に、本方法は、無線チャネル上でパケットを送信するための送信持続時間を決定することと、残りの滞留時間が送信持続時間未満であることに応答して、パケットを延期することとを含む。
【0007】
本発明の実施の形態の別の非限定的な例は、ノードである。このノードは、複数の利用可能な無線チャネルに亘って複数のパケットを送信するように構成された無線機と、コンピュータ可読命令を実行するように構成されたプロセッサと、コンピュータ可読命令を格納するように構成されたメモリとを含む。プロセッサによって実行されると、コンピュータ可読命令は、プロセッサに以下の動作を実行させる。プロセッサは、送信のためのパケットを識別し、パケットの送信のための無線チャネルを、複数の無線チャネルの中から決定する。プロセッサは、パケットが制限されたクラスにあることを決定し、パケットが制限されたクラスにあることに応答して、予約時間および滞留時間制限に基づいて、無線チャネル上の動的最大利用可能時間を決定する。プロセッサは、無線チャネル上での費やされた滞留時間と動的最大利用可能時間との比較に基づいて、無線チャネル上の残りの滞留時間を計算する。更に、プロセッサは、無線チャネル上でパケットを送信するための送信持続時間を決定し、残りの滞留時間が送信持続時間未満であることに応答して、パケットを延期する。
【0008】
本発明の実施の形態のさらに別の非限定的な例は、無線伝送をゲートするためのコンピュータプログラムプロダクトである。このコンピュータプログラムプロダクトは、具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プログラム命令は、プロセッサによって実行可能であり、プロセッサに以下の動作を実行させる。プロセッサは、送信のためのパケットを識別し、パケットの送信のための無線チャネルを決定する。プロセッサは、パケットが制限されたクラスにあることを決定し、パケットが制限されたクラスにあることに応答して、予約時間および滞留時間制限に基づいて無線チャネル上の動的最大利用可能時間を決定する。プロセッサは、無線チャネル上での費やされた滞留時間と動的最大利用可能時間との比較に基づいて、無線チャネル上での残りの滞留時間を計算する。更に、プロセッサは、無線チャネル上でパケットを送信するための送信持続時間を決定し、残りの滞留時間が送信持続時間未満であることに応答して、パケットを延期する。
【0009】
これらの例示的な側面および特徴は、現在説明されている主題を制限または定義するためではなく、本願で説明される概念の理解を助けるために例を提供するために言及されている。現在説明されている主題の他の側面、利点、および特徴は、本出願全体を検討した後に明らかになるであろう。
【図面の簡単な説明】
【0010】
本開示のこれらおよび他の特徴、態様、および利点は、以下の詳細な説明を添付図面を参照しながら読むと、よりよく理解される。
【0011】
【
図1】
図1は、本発明のいくつかの実施態様による、統合ゲーティングシステムを有するノードの概念図である。
【
図2】
図2は、本発明のいくつかの実施態様による、統合ゲーティングシステムを有するノードのアーキテクチャ図である。
【
図3】
図3は、本発明のいくつかの実施態様による、統合ゲーティングシステムを有するユーティリティメータのブロック図である。
【
図4A】
図4A-
図4Bは、本発明のいくつかの実施態様による、ゲーティングシステムによって使用するための、無線チャネルに関連付けられた例示的なカウンタサブセットの概念図である。
【
図4B】
図4A-
図4Bは、本発明のいくつかの実施態様による、ゲーティングシステムによって使用するための、無線チャネルに関連付けられた例示的なカウンタサブセットの概念図である。
【
図5A】
図5A-5Bは、本発明のいくつかの実施態様による、ゲーティングシステムによって使用するための、無線チャネルに関連付けられた別の例示的なカウンタサブセットの概念図である。
【
図5B】
図5A-5Bは、本発明のいくつかの実施態様による、ゲーティングシステムによって使用するための、無線チャネルに関連けられた別の例示的なカウンタサブセットの概念図である。
【
図6】
図6は、本発明のいくつかの実施態様による、無線送信のために制限されたパケットをゲーティングする方法のフロー図である。
【
図7】
図7は、本発明のいくつかの実施態様による、無線送信のために許可されたパケットをゲーティングする方法のフロー図である。
【発明を実施するための形態】
【0012】
多くの既存の無線機は、特に高トラフィック状態の場合、各チャネルでの滞留時間を非効率的に利用している。ネットワークの運用を維持するためには、ビーコンや確認応答などの管理パケットを期待通りに送受信することが重要である。たとえば、あるノードがデータパケットを受信すると、通常はデータパケットを受信したのと同じチャネルで肯定応答を送信する。しかしながら、ノードが現在のローリングタイムウィンドウ(例えば、20秒)内の現在のチャネルの滞留時間(例えば、400ミリ秒)をすべて使用した場合、ノードは確認応答を送信することができない。その結果、データパケットは廃棄される可能性があり、送信者は確認応答の受信に失敗するとデータパケットを再送信することになる。これは、ネットワーク帯域幅の非効率的な使用と不必要な追加ネットワークトラフィックに繋がる。
【0013】
本発明のいくつかの実施態様は、より効果的に滞留時間を保存することによって、既存の方法論の上記の欠点に対処している。より具体的には、いくつかの実装によるゲーティングシステムは、各チャネルの滞留時間の一部を、本明細書で許可されたパケットと称する、特定のクラスのパケット用に予約する。いくつかの実装では、許可されたパケットは、ビーコンおよび確認応答などの管理パケットである。あるデバイスが無線チャネル上で許可されたパケットを送信する準備をするとき、そのデバイスのゲーティングシステムは、管理パケットの送信のために十分な滞留時間が残っているかどうかを判断する。十分な滞留時間が残っていない場合、許可されたパケットはすぐに送信されるのではなく、保留(例えば、延期)されるか、またはドロップされる。しかし、許可されたパケットでない(例えば、管理用でない)データパケットの場合、ゲーティングシステムは、許可されたパケットのために予約された時間を除外するとき、十分な滞留時間が残っているか否かを判断する。言い換えれば、いくつかの実装では、予約されている時間は、許可されたクラスのパケットによってのみ使用されることが許可される。十分な滞留時間が残っていない場合、データパケットは保留されるか、延期される。
【0014】
いくつかの実装では、現在の時間および現在のチャネルで、本明細書ではパケットとも呼ばれるデータパケットを送信するかどうかの決定は、部分的には、パケットを許可されたパケットとして分類すること、またはその欠如、および許可されたパケットに対する滞留時間の予約に基づくものである。その結果、ゲーティングシステムは、許可されたパケットが必要に応じて送信され得ることを保証し、したがって、ドロップされたパケットに起因する不必要なネットワークトラフィックを低減し得る。
【0015】
図1は、この発明のいくつかの実施態様による、統合ゲーティングシステム100を有するノード105の概念図である。ノード105は、1つ以上の他のノードを含むネットワーク内の通信のために無線機110を利用する装置である。例えば、限定するわけではないが、ネットワーク内の各ノード105は、ユーティリティメータ、ルータ、コレクタ、管理ノード、またはネットワーク通信に参加する他のタイプのノードである。ゲーティングシステム100は、本明細書に記載されるように、無線機110にデータパケットの送信を指示することによってデータパケットの送信を開始するように、ゲーティングシステム100が統合されているものの無線機110と通信していてもよい。
図1の例は、ゲーティングシステム100がノード105と統合されていることを示しているが、代替的に、ゲーティングシステム100は、ノード105とは別個であるがノード105と通信していてもよいことは理解されよう。
【0016】
図1に示されるように、ゲーティングシステム100は、無線機110によってデータパケットを送信するタイミングを決定する、スケジューリングエンジン150を含んでもよい。この目的のために、スケジューリングエンジン150は、各無線チャネル115の費やされた滞留時間を追跡してもよい。いくつかの実装では、この目的のために、ゲーティングシステム100は、本明細書で共にカウンタセット130と呼ばれるカウンタ120のセットを含み、これは、ローリングタイムウィンドウにわたって費やされた滞留時間を追跡し続ける。費やされた滞留時間の追跡を通じて、スケジューリングエンジン150は、ローリングタイムウィンドウ内の滞留時間の上限の遵守を保証し、管理パケットまたは他の許可されたパケット用の時間を確保することの両方が可能である。スケジューリングエンジン150は、ハードウェア、ソフトウェア、またはその両方の組み合わせとして実装されてもよい。例えば、限定するわけではないが、スケジューリングエンジン150は、1つ以上のソフトウェア機能の組み合わせであってもよいし、専用ハードウェア回路であってもよい。
【0017】
いくつかの実装では、カウンタセット130は、カウンタ120の複数のサブセットを含み、カウンタ120の各サブセットは、本明細書ではカウンタサブセット140と称される。各カウンタサブセット140は、1つ以上のカウンタ120を含む。いくつかの実装では、カウンタセット130は、全体としてノード105に関連付けられ、各カウンタサブセット140は、その無線チャネル115に関する滞留時間を追跡するために、対応する無線チャネル115に割り当てられ、したがって関連付けられる。いくつかの実装では、ノード105によって利用されるカウンタサブセット140と無線チャネル115(チャネル115とも呼ばれる)との間に1対1の対応関係がある。例えば、ノード105が64個の無線チャネル115を利用する場合、ノード105は64個のカウンタサブセット140も利用することができる。しかしながら、使用されるカウンタサブセット140の数は変化し得ることが理解されよう。
【0018】
各カウンタ120は、ハードウェア、ソフトウェア、またはその両方の組み合わせで実装されてもよい。例えば、限定するわけではないが、各カウンタ120は、本明細書で説明するように、費やされた滞留時間をカウントする目的に特化した特殊目的レジスタであってもよい。別の例として、各カウンタは、メモリに格納されたソフトウェア変数であってもよい。この変数は、費やされた滞留時間の整数表現のような数値を保持してもよい。様々な可能な実装が存在し、そのような実装の1つ以上が本明細書に記載されるように使用可能であることが理解されよう。
【0019】
いくつかの実装では、無線機110は、所定の無線チャネル115のセットを介してデータパケットを送信するように構成された双方向無線機である。例えば、限定するわけではないが、無線機110は、帯域内の64個の確立されたチャネル115にわたってデータパケットを送信することができる。
【0020】
図2は、この発明のいくつかの実施態様による、統合ゲーティングシステム100を有するノード105のアーキテクチャ図である。
図2に示すように、ノード105は、処理ユニット230、メモリ240、ストレージ250、および無線機110を含んでもよく、これらは、バス260によって互いに通信していてもよい。例えば、限定するわけではないが、メモリはランダムアクセスメモリ(RAM)であってもよく、ストレージ250はフラッシュストレージまたはリードオンリーメモリ(ROM)であってもよい。処理ユニット230、メモリ240、ストレージ250、無線機110、およびバス260は、別個の構成要素であるとして本明細書に示され説明されているが、この区別は説明のためだけであることが理解されよう。例えば、処理ユニット230、メモリ240、及びストレージ250は、マイクロコントローラユニットのような単一チップに一緒に統合されてもよい。
【0021】
本明細書で詳細に説明するように、いくつかの実装では、スケジューリングエンジン150は、ノード105が無線チャネル115上のその滞留時間制限を超えないようにするために様々な動作を実行する。スケジューリングエンジン150の動作は、ストレージ250またはメモリ240などのコンピュータ可読媒体に格納されたプログラム命令として具現化され得る。いくつかの実装では、コンピュータ可読媒体は、非一時的なコンピュータ可読媒体である。本明細書で説明したカウンタセット130は、メモリ240に格納され、処理ユニット230にアクセス可能であってよい。処理ユニット230は、本明細書で説明したカウンタセット130を参照して、スケジューリングエンジン150を実装するためのプログラム命令を実行してもよい。
【0022】
図3は、この発明のいくつかの実施態様による、統合ゲーティングシステム100を有するユーティリティメータ300のブロック図である。ユーティリティメータ300は、本明細書に記載される本発明の実装を利用することができるノード105の一例である。
図3に示すように、ユーティリティメータ300は、構内320で発生するリソース310の消費を測定する。図示しないが、ユーティリティメータ300は、敷地320上のリソース310の使用を測定するために1つ以上の信号を検出する、計測モジュールを含んでもよい。他のタイプのノード105と同様に、ユーティリティメータ300は、処理ユニット230、メモリ240、ストレージ250、および無線機110をさらに含んでもよく、これらはバス260によって互いに通信していてもよい。さらに、上述したように、処理ユニット230は、本明細書に記載された動作を実施するためのプログラム命令を実行してもよい。
【0023】
本明細書で説明されるノード105は、ユーティリティメータ300に限定されないことが理解されよう。むしろ、ノード105は、無線機110を介して通信を送信するように構成された様々なタイプのコンピューティングデバイスであってもよい。例えば、ノード105は、低電力、損失型無線パーソナルエリア・ネットワークのためのIEEE 802.15.4および6LoWPAN技術標準に準拠したコンピューティングデバイスであってもよい。
【0024】
図1に戻って、より一般的には、ノード105は、ノード105の正当な動作の過程でその無線機110によってデータパケットを送信し、ノード105は、スケジュールに従って無線チャネル115間でチャネルホップしてもよい。例えば、限定するわけではないが、ノード105がユーティリティメータ300である場合、またはユーティリティメータ300に接続されている場合、ノード105は、ノード105によって測定またはその他の方法で収集されたリソース消費を記述する消費データを含むデータパケットを定期的に送信してよい。ノード105は、消費データが最終的に分析または請求のためにヘッドエンドユニットに到着するように、メッシュネットワーク内の1つまたは複数の他のノードにそのようなデータパケットを送信してもよい。
【0025】
上述したように、各無線チャネル115について、単一のデバイスの滞留時間は、時間のローリングウィンドウ(例えば、20秒)ごとの滞留時間制限(例えば、400ミリ秒)に上限を設定することができる。従来、無線機110を経由して送信される各データパケットは、同じ扱いを受ける。データパケットを送信すると、デバイスが特定のチャネル115上で20秒のローリングウィンドウ内で400ミリ秒を超えるかどうかが判断され、もしそうなら、データパケットは延期またはドロップされる。特定の種類のパケットのために滞留時間の一部を予約するための既存のメカニズムは存在しない。
【0026】
しかしながら、本発明の実装では、滞留時間の一部は、本明細書では許可されたクラスとも呼ばれる、パケットの第1のクラスのために予約される。この予約の結果は、滞留時間制限の一部が、パケットの第1のクラスの送信のために使用可能な予約時間であるということである。例えば、限定するわけではないが、パケットの第1のクラスは管理パケットであり、滞留時間制限の一部は管理パケットのために予約される。より具体的には、例えば、ビーコンと確認応答は管理的とみなされるパケットであり、他の形式のデータは非管理的とみなされる。しかし、この分類は例示であり、他の分類を用いることができることは理解されよう。
【0027】
いくつかの実装では、予約された時間は、本明細書では制限されたクラスとも呼ばれるデータパケットの第2のクラスのために使用されることはない。制限されたクラスは、許可されたクラスと相互に排他的であってよい。言い換えれば、許可されたクラスのパケットのみが予約時間中に送信されることを許可され、他のすべてのパケットは、いくつかの実装において予約時間中に送信されない制限されたクラスであるとみなされる。したがって、ビーコン、確認応答、および管理的とみなされる他のパケットが許可されたクラスにある上記の例では、非管理的とみなされるすべてのパケットは、予約された時間中に送信することが許可されない。
【0028】
予約時間は、滞留時間制限の所定割合であってもよいし、固定時間であってもよい。例えば、限定するわけではないが、予約時間は、滞留時間制限の5パーセントであってよい。したがって、滞留時間制限が400ミリ秒である場合、予約時間は400ミリ秒の5パーセントであり、これは20ミリ秒である。一般に、いくつかの実装では、許可されたクラスであると分類されたデータパケットのみが、予約時間中に送信される。
【0029】
いくつかの実装では、制限されたクラスのデータパケットが、予約時間より少ない滞留時間制限内に留まりながら第1の無線チャネル115を介して送信できない場合、そのデータパケットは保持される(すなわち、まだ送信されない)。しかし、制限されたクラスのデータパケットが、予約時間より少ない滞留時間制限内に留まりながら第1の無線チャネル115上で送信できる場合、そのデータパケットに対して無線送信が開始され、データパケットは第1の無線チャネル115上で送信される。これに対し、許可されたクラスのパケットが、滞留時間の制限内に留まりながら第1の無線チャネル115を介して送信できない場合、そのデータパケットは保留される。許可されたクラスのデータパケットが完全な滞留時間制限内に留まりながら第1の無線チャネル115を介して伝送され得る場合、データパケットに対して無線伝送が開始され、データパケットは第1の無線チャネル115を介して伝送される。いくつかの実装では、許可されたクラスのデータパケットを延期するかどうかを決定する際に、予約時間は考慮されない(すなわち、滞留時間制限から減算されない)。
【0030】
言い換えれば、パケットのための無線送信を開始するか、データパケットを保持するかを決定するとき、最大利用可能時間が考慮され、その最大利用可能時間は、データパケットが許可されたクラスであるかどうかに基づいて動的である。具体的には、パケットのための無線送信を開始するか、またはデータパケットを保持するかを決定するとき、スケジューリングエンジン150は、最大利用可能時間を、費やされた滞留時間量に当該データパケットを送信する時間を加えたものと比較し得る。いくつかの実装では、許可されたパケットについては、最大利用可能時間は滞留時間制限であり、制限されたパケットについては、最大利用可能時間は滞留時間制限から予約時間を差し引いたものである。滞留時間が各無線チャネル115に対して個別に制限されるのと同様に、最大利用可能時間は各個別の無線チャネル115に適用可能である。言い換えれば、各無線チャネル115について、スケジューリングエンジン150は、そのチャネルに費やされた滞留時間を追跡し、そのチャネル115に費やされた滞留時間に基づいて、最大利用可能滞留時間を超過せずにデータパケットが送信可能か否かを決定する。しかしながら、いくつかの実装では、最大利用可能時間は所定のデータパケットの分類に基づいて動的であるが、滞留時間の制限は固定である。
【0031】
いくつかの実装では、データパケットが無線チャネル115を介して送信されるべきである(すなわち、データパケットが無線チャネル115上の最大利用可能時間を超過させない)と判断されると、データパケットの無線送信は開始される。より具体的には、いくつかの実装では、データパケットは、データパケットが最大利用可能時間内に収まるかどうか(すなわち、費やされた滞留時間に加えてデータパケットを送信することが最大利用可能時間を超えないかどうか)の再決定が起こる必要があるように、直ちにまたはできるだけ早く、あるいは他のデータパケットが現在の無線チャネル115上を送信される前に、無線チャネル115上で送信される。
【0032】
上述したように、データパケットは、第1の無線チャネル115の最大利用可能時間内に収まらないために保持されることがある。より具体的には、いくつかの実装では、ノード105は、そのデータパケットが最大利用可能時間内に(すなわち、滞留時間制限から該当する場合は予約時間を差し引いた時間を超えることなく)送信できるまで、そのようなデータパケットを保持する。いくつかの実装では、ノード105は、無線機110を介して送信されるべきデータパケットのキューを維持する。スケジューリングエンジン150は、第1のパケットがそのそれぞれの最大利用可能時間内に送信され得るかどうかを決定することによって、待ち行列の前部または最上部にあり得る、待ち行列の第1のパケットを考慮してもよい。第1のパケットが、第1のパケットに適用される現在の無線チャネル115の最大利用可能時間内に現在の無線チャネル115を介して送信することができる場合、ノード105は第1のパケットを送信する。しかしながら、第1のパケットに適用される現在の無線チャネル115の最大利用可能時間内に第1のパケットを現在の無線チャネル115を介して送信できない場合、スケジューリングエンジン150は、後の送信のために第1のパケットを延期することができる。
【0033】
上述したように、ノード105は、スケジュールに従ってチャネルホップしてもよい。第1のパケットが保持された後、ノード105が異なる無線チャネル115にホップしたとき、または所定の期間が経過したとき、スケジューリングエンジン150は、保持されている他のデータパケットと共に第1のパケットを送信することを再検討してもよい。各無線チャネル115は、それぞれの費やされた滞留時間量と関連付けられているので、最大利用可能時間を超えることなく第1の無線チャネル115を介してデータパケットを送信することは可能であっても、最大利用可能時間を超えることなく第2の無線チャネル115を介して同じデータパケットを送信することは不可能であってもよい。さらに、滞留時間制限と最大利用可能時間の両方が適用されるローリングタイムウィンドウは、時間の経過後にシフトしているため、ノード105は、より遅い時間に第1のパケットを送信することができる。
【0034】
スケジューリングエンジン150は、カウンタセット130を使用して、各無線チャネル115の費やされた滞留時間(すなわち、どれだけの滞留時間が使用されたか)を追跡してもよく、これは、特定のデータパケットの送信が、ノード105が無線チャネル115の最大利用可能時間を超過する原因となるかどうかを判断するのにいくつかの実装で必要とされるものである。上述したように、各カウンタサブセット140は、それぞれの無線チャネル115に割り当てられ、それによって関連付けられることがある。一緒に、無線チャネル115のためのカウンタサブセット140内のカウンタ120は、ローリングタイムウィンドウにおける費やされた滞留時間を表すことができる。
【0035】
図4A-4Bは、いくつかの実施態様による、単一の無線チャネル115に対応する例示的なカウンタサブセット140の概念図である。
図4A及び
図4Bの実施例に示されるカウンタサブセット140は、第1のカウンタ120a、第2のカウンタ120b、及び第3のカウンタ120cを含み、これらはカウンタ120として総称される。ノード105は、ノード105によって使用される各無線チャネル115に対してこのようなカウンタサブセット140を記憶し、使用してもよく、スケジューリングエンジン150は各カウンタサブセット140を使用して対応する無線チャネル115上での費やされた滞留時間を追跡してもよい。具体的には、
図4Aは、時間T1におけるカウンタサブセット140を示し、
図4Bは、時間T
2=T
1+4、すなわち時間T1の4秒後における同じカウンタサブセット140を示している。
【0036】
カウンタサブセット140は、1つまたは複数のカウンタ120を含む。いくつかの実装では、カウンタサブセット140内の各カウンタ120は、本明細書では固定ウィンドウとも呼ばれる、開始時刻及び終了時刻を有する固定時間ウィンドウを表す。したがって、カウンタ120は、対応する固定時間ウィンドウの間に費やされた滞留時間を追跡し得る。より具体的には、例えば、各カウンタ120は、対応する固定時間ウィンドウにおいて(すなわち、対応する開始時刻と終了時刻との間のスパンで)どれだけの滞留時間が使用されたかを示す数値であってよい。例えば、各カウンタ120は、対応する固定時間ウィンドウで使用された滞留時間のミリ秒数を表してもよい。いくつかの実装では、カウンタサブセット140内の様々なカウンタ120は、共通の幅(すなわち、同じ長さの時間)を有する固定時間ウィンドウを表す。さらに、所与の時間におけるカウンタサブセット140によって表される固定時間ウィンドウは連続してもよく、時間の経過とともに、カウンタ120は定期的にリセットされ、その固定時間ウィンドウは、カウンタサブセット140内の他のカウンタ120によって表される連続する固定時間ウィンドウの終了時に新しい開始時間に更新されてもよい。カウンタ120がそのように更新されるとき、その新しい固定時間ウィンドウは、その前の固定時間ウィンドウと同じ長さ及びカウンタサブセット140によって表される他の固定時間ウィンドウの同じ長さを有してもよい。更新されると、カウンタ120は、その新しい固定時間ウィンドウ内の費やされた滞留時間の追跡を開始してもよい。このように、カウンタサブセット140によって表される固定時間ウィンドウは、現在の時間に追いつくように動的に変化してよい。以下により詳細に説明するように、カウンタサブセット140内のカウンタ120の連続する固定時間ウィンドウの組み合わせは、滞留時間制限が適用されるローリングタイムウィンドウを表すことができる。
【0037】
いくつかの実装では、カウンタサブセット140のカウンタ120によって表される時間の長さの合計は、滞留時間が追跡されているローリングタイムウィンドウの長さを超えるか、又は少なくとも満たす。より具体的には、いくつかの実装では、各カウンタ120は同じ時間の長さLを表し、カウンタサブセット内のカウンタ120の数は1+R/Lの階数であり、これは[R/L]+1とも書け、ここでRはローリングタイムウィンドウの長さである。いくつかの実装は、L及び[R/L]の両方が整数であるようなLの値を利用するが、これらの値に対する整数の使用は必要でないことが理解されよう。
図4A-4Bの例では、各カウンタ120は、20秒のローリングタイムウィンドウ内の10秒のウィンドウを表し、[20/10]+1=3なので、カウンタサブセット140内のカウンタ120の総数は3つである。
【0038】
所与の時間において、カウンタサブセット140は、現在時刻を含む固定時間ウィンドウを表す1つのアクティブカウンタ120を含んでもよい。滞留時間が費やされると、費やされた滞留時間は、費やされた滞留時間の量だけアクティブカウンタ120をインクリメントする(すなわち、増加させる)ことなどによって、アクティブカウンタ120に記録されてもよい。いくつかの実装では、各カウンタ120は、ミリ秒単位で費やされた滞留時間を測定し、したがって、カウンタ120がアクティブなままデータパケットを送信するために使用されるミリ秒の量によって必要に応じてインクリメントされる。残りのカウンタ120は、滞留時間支出が現在非アクティブなカウンタ120でカウントされていないという点で、非アクティブと見なすことができる。各非アクティブなカウンタ120は、経過した固定時間ウィンドウを表すことができる。いくつかの実装では、カウンタサブセット140内のカウンタ120は、連続した固定時間ウィンドウを表し、アクティブなカウンタ120は現在であり、非アクティブなカウンタは最近の過去を表している。
図4A及び4Bでは、各図のそれぞれのアクティブなカウンタ120は白色の背景で現れ、非アクティブなカウンタ120は灰色の背景で現れている。
図4Aでは、アクティブなカウンタ120は、時間T
1を含むカウンタ120cであり、
図4Bでは、アクティブなカウンタ120は、時間T
2=T
1+4を含むカウンタ120aである。
【0039】
いくつかの実装では、現在使用されている無線チャネル115を表すカウンタサブセット140がアクティブであり、そのカウンタサブセット140内では、現在の固定時間ウィンドウを表すカウンタ120がアクティブである。データパケットが無線チャネル115を介して送信されるたびに、スケジューリングエンジン150は、アクティブカウンタサブセット140内のアクティブカウンタ120を、データパケットの送信に使用された時間を示す値でインクリメントしてもよい。言い換えれば、データパケットが無線チャネル115を介して送信されるとき、その無線チャネル115に関連するカウンタサブセット140内のアクティブカウンタ120は、パケットを送信するために必要な時間だけインクリメントされてもよい。このように、アクティブカウンタ120は、現在の時刻を含む固定時間ウィンドウに費やされた滞留時間を維持する。
【0040】
しかしながら、無線チャネル115上で各データパケットを送信する前に、スケジューリングエンジン150は、無線チャネル115に関連付けられたカウンタサブセット140を参照し、データパケットの送信を完了するために十分な滞留時間がローリングタイムウィンドウに残っているかどうかを決定してもよい。より具体的には、データパケットが許可されたクラス内にある場合、スケジューリングエンジン150は、ローリングタイムウィンドウの滞留時間制限からカウンタサブセット140に記録された時間を減算してもよい。その差がデータパケットの推定送信時間(すなわち、持続時間)よりも小さくない場合、スケジューリングエンジン150は、データパケットを現在の無線チャネル115上で送信してもよい。差がデータパケットのための推定送信時間よりも小さい場合、スケジューリングエンジン150は、パケットを保持してもよい。一方、データパケットが制限クラスである場合、スケジューリングエンジン150は、カウンタサブセット140に記録された時間を、滞留時間制限から予約時間を差し引いたものであってもよい。その差がデータパケットの推定送信時間を下回らない場合、スケジューリングエンジン150は、データパケットを無線チャネル115上で送信してもよい。差がデータパケットの推定送信時間より小さい場合、スケジューリングエンジン150はパケットを保持してもよい。
【0041】
ある時点で、時間の経過とともに、アクティブカウンタ120によって表される固定時間ウィンドウが終了する。具体的には、この固定時間ウィンドウは、現在時刻が固定時間ウィンドウの終了時刻を満たしたときに終了する。例示の目的で、
図4A及び
図4Bに示されるカウンタ120a、カウンタ120b、及びカウンタ120cは、それぞれ、カウンタX、カウンタY、及びカウンタZとしてラベル付けされている。この例では、
図4Aは、カウンタZがアクティブなカウンタ120である瞬間T
1を示している。カウンタZが表す10秒の時間ウィンドウは、時間T
1-8で始まり、時間T
1+2で終わる。時間T
1+2において、カウンタセット130は、異なるアクティブなカウンタ120を利用するように更新される。この目的のために、カウンタZは非アクティブにされ、それによって非活性になる。この例では、一度に3つのカウンタ120のみが必要とされ、カウンタ120が現在の時間ウィンドウを表すために必要とされるので、カウンタXが(例えば、ゼロ値に)リセットされ、新しいアクティブなカウンタ120として使用される。より一般的には、いくつかの実装において、現在の時間がアクティブなカウンタ120によって表される固定時間ウィンドウを越えて進行すると、アクティブなカウンタ120は非アクティブとなり、最も古いカウンタ120(すなわち、最も最近アクティブであったカウンタ120)はリセットされて新しいアクティブなカウンタ120になる。
【0042】
最古のカウンタ120のリセット及び再利用は、様々な方法で実施することができる。この例では、
図4AのカウンタXは、
図4BのカウンタXと同じであり、
図4AのカウンタYは、
図4BのカウンタYと同じであり、
図4AのカウンタZは、
図4BのカウンタZと同じである。例えば、各カウンタ120が特定の変数又はレジスタによって表される場合、
図4AのカウンタXと
図4BのカウンタXとで共通の変数又はレジスタが使用されてもよい。しかしながら、代替的に、最も古いカウンタ120を実装するために使用された変数又はレジスタが(例えば、解放されることによって)未使用になり、新しい変数又はレジスタがそのカウンタ120の新しいバージョンに対して使用されてもよい。したがって、いくつかの実装では、カウンタサブセット140内のカウンタ120の数量は一定のままである。これらのカウンタ120の多くの実装が可能であることは、当業者には理解されよう。
【0043】
上述したようなカウンタ120の使用は、既に使用された滞留時間を過大評価する傾向があることが理解されよう。例えば、
図4Aに示す時間T
1において、カウンタサブセット140は、最後の20秒間だけでなく、過去28秒間にわたって費やされた滞留時間を示す。
図4Bに示す時間T
2=T
1+4において、カウンタサブセット140は、時間T
2に至るまでの過去22秒間にわたって費やされた滞留時間を示す。いくつかの実装では、このメカニズムは、費やされた滞留時間が過小評価されないことを保証するが、データパケットが、ローリングタイムウィンドウよりも長い期間にわたって費やされた滞留時間に基づいて保持されることが可能である。
【0044】
精度を上げるために、使用するカウンタ120の数を増やし、各カウンタ120が表す時間の長さを減らしてもよい。例えば、5つのカウンタ120が使用され、各カウンタ120が5秒の時間ウィンドウを表す場合、所定の時間にカウンタサブセット140に費やされた滞留時間が保存される時間の最大のスパンは25秒である。別の例として、21個のカウンタ120が使用され、各カウンタ120が1秒の時間ウィンドウを表す場合、所与の時間にカウンタサブセット140において費やされた滞留時間が保存される時間の最大のスパンは21秒である。
【0045】
図5A-5Bは、いくつかの実装による、単一の無線チャネル115に対応する第2の例示的なカウンタサブセット140の概念図である。
図5A及び
図5Bの例で示されたカウンタサブセット140は、21個のカウンタ120d-120xを含み、これらの各々は、合計20秒のローリングタイムウィンドウに基づく1秒の固定ウィンドウに対応する。例示的なノード105は、ノード105によって使用される各無線チャネル115に対してそのようなカウンタサブセット140を記憶し使用することができ、スケジューリングエンジン150は各カウンタサブセット140を使用して対応する無線チャネル115上での費やされた滞留時間を追跡することができる。具体的には、
図5Aは、時間T
1におけるカウンタサブセット140を示し、
図5Bは、時間T
2=T
1+0.4、すなわち時間T
1の400ミリ秒後における同じカウンタサブセット140を示している。
【0046】
時間T
1において、カウンタ120xはアクティブカウンタ120であり、このカウンタ120がアクティブである間にノード105がデータパケットを送信するたびに、カウンタ120xは当該データパケットの送信に要する時間だけインクリメントされる。時間の経過に伴い、ある時点で、カウンタ120xが表す固定時間ウィンドウは終了し、具体的には、現在時刻が対応する固定時間ウィンドウの終了時刻に合致すると、この固定時間ウィンドウは終了する。T
1から400ミリ秒後の時刻T
2において、カウンタ120xに対応する固定時間ウィンドウが終了したため、最も古いカウンタ120であるカウンタ120dがリセットされ、アクティブカウンタ120となる。したがって、
図5Bに示すように、時間T
2において、カウンタ120dはアクティブなカウンタであり、カウンタ120xは、経過した固定時間ウィンドウを表して、現在非アクティブである。
【0047】
この
図5A-5Bの第2の例では、T
1が、カウンタ120xに対応する固定時間ウィンドウで300ミリ秒残して発生し(すなわち、T
1が固定時間ウィンドウに700ミリ秒発生し)、T
2がT
1の400ミリ秒後に発生するように、T
2が、そのリセット後にカウンタ120dに対応する新しい固定時間ウィンドウに100ミリ秒発生する、と仮定する。その場合、T
1において、カウンタサブセット140は、カウンタ120xの固定時間ウィンドウの700ミリ秒までスパンする過去20.7秒にわたって費やされた滞留時間を示し、T2において、カウンタサブセット140は、カウンタ120dの固定時間ウィンドウの100ミリ秒までスパンする過去20.1秒にわたって費やす滞留時間を示し、ここでは、ローリングタイムウィンドウが20秒間であることを示す。上述したように、ローリングタイムウィンドウの長さに等しくなるために必要とされるよりも1つ多いカウンタ120を含むこの機構は、費やされた滞留時間が過小評価されないことを保証するものである。しかしながら、
図1の例と比較すると、この第2の実施例は、より正確であるが、追加のカウンタ120を維持するためのより多くのスペースを必要とする。
【0048】
カウンタ120の数量が増加すると、使用される記憶スペースが増加する傾向がある。例えば、限定するわけではないが、64個の無線チャネル115の各々にそれぞれのカウンタサブセット140が使用され、さらに、各カウンタサブセット140が、20秒のローリングタイムウィンドウを表す21個の1秒固定時間ウィンドウのトラッキングをサポートするために21個のカウンタ120を含むとする。この例では、各カウンタ120は、対応する1秒の固定時間ウィンドウの間に費やされた(すなわち、使用された)滞留時間のミリ秒を表す16ビット整数によって表される。これらのカウンタ120の記憶には、次に、64個のチャネルの各々について21個の16ビット整数が必要であり、または2688バイト(1バイトは8ビットである)が必要である。これに対して、1チャネル当たり3つのカウンタ120のみが使用される場合、この記憶スペースは7倍削減され、わずか384バイトとなる。ノード105が、ストレージ250が制限されているユーティリティメータ300または他の装置である場合、ストレージスペースをあきらめて精度を高めることは非現実的である可能性がある。
【0049】
図6は、この発明のいくつかの実施態様による、無線送信のための制限されたパケットをゲーティングする(すなわち、送信するかどうかを決定する)方法600のフロー図である。いくつかの実装では、この方法600は、ノード105上のスケジューリングエンジン150によって全体的にまたは部分的に実行される。この方法600は、制限付きパケットをスケジューリングする方法600の一例として、例示のために提供されていることが理解されよう。
【0050】
方法600のブロック605で、スケジューリングエンジン150は、無線機110を介して送信されるパケットを特定する。例えば、スケジューリングエンジン150は、パケットへの参照を受信してもよい。スケジューリングエンジン150がユーティリティメータ300に統合される場合など、いくつかの実装では、ユーティリティメータ300は、ビーコンを定期的に送信するための、リソース310の消費を記述する消費データを送信するための、または他のタイプのパケットを送信するための1以上の処理を実行する。ユーティリティメータ300以外のノード105では、他のプロセスが実行されてもよい。いずれの場合も、そのようなプロセスは、ビーコン、消費データ、または他のデータの形態のパケットが送信される準備が整ったことをスケジューリングエンジン150に通知してもよい。さらに、または代替的に、スケジューリングエンジン150は、パケットを送信する要求を傍受するように、プロセスおよび無線機110間の通信を監視してもよい。スケジューリングエンジン150が送信されるべきデータパケットを認識し、したがって識別する多くのメカニズムが存在することが理解されよう。
【0051】
ブロック610において、スケジューリングエンジン150は、データパケットが送信される可能性のある無線チャネル115を決定する。例えば、いくつかの実装では、ノード105は、スケジュールに従って無線チャネル115間をホッピングし、その場合、現在の無線チャネル115は、確立されたチャネルホッピングシーケンスと現在のタイムスロットとに基づいて決定される。ノード105とネットワークを共有する他のデバイスは、現在のチャネル115を介してデータパケットを受信することを期待することができるので、スケジューリングエンジン150は、この現在の無線チャネル115を、データパケットが送信されるかもしれないチャネル115として識別してもよい。
【0052】
ブロック615において、スケジューリングエンジン150は、パケットがどのクラスに属するか、より具体的には、この例では、パケットが制限クラスに属することを決定する。この目的のために、例えば、スケジューリングエンジン150は、パケットのサイズまたは持続時間を閾値と比較することができる。例えば、閾値より大きいサイズのパケットを非管理型と分類してもよいし、送信に少なくとも閾値の持続時間がかかるパケットを非管理型と分類してもよい。別の例として、スケジューリングエンジン150は、パケットの内容を解析してパケットの分類を決定してもよい。例えば、スケジューリングエンジン150は、パケットを消費データとして認識してもよく、従って、パケットを非管理型として分類してもよい。管理用パケットのみが許可されたクラスに含まれる場合、スケジューリングエンジン150は、したがって、パケットが制限クラスに属すると判断する。さらに、または代替的に、スケジューリングエンジン150は、パケット自体が識別されるのと同じ方法、または類似の方法で、パケットのクラスを決定してもよい。例えば、パケットの送信を要求するプロセスは、スケジューリングエンジン150にクラスを通知してもよいし、パケットのクラスを識別する表示を提供してもよい。
【0053】
ブロック620で、スケジューリングエンジン150は、滞留時間制限と予約時間の両方に基づいて、パケットに適用可能な最大利用可能時間を決定する。いくつかの実装では、この決定は、留置時間制限から予約された時間を減算することを必要とする。例えば、滞留時間制限が400ミリ秒であり、予約時間が20ミリ秒である場合、制限されたクラスにおけるこのパケットの最大利用可能時間は380ミリ秒である。しかしながら、別の例では、スケジューリングエンジン150は、クラスから最大利用可能時間へのマッピングにアクセスすることができる。その場合、スケジューリングエンジン150は、制限されたクラス内のパケットの最大利用可能時間を調べ、それによって、最大利用可能時間が380ミリ秒であると決定してもよい。
【0054】
ブロック625で、スケジューリングエンジン150は、無線チャネル115の残りの滞留時間を計算する。いくつかの実装では、残りの滞留時間を計算することは、最大利用可能時間から、現在の無線チャネル115に関連するカウンタサブセット140の値を減算することを含む。カウンタサブセット140の値は、カウンタサブセット140内の様々なカウンタ120の合計であってよい。例えば、
図1の例では、以下のようになる。4A及び4Bでは、カウンタ120が数値として実装される場合、カウンタサブセット140の値は、カウンタX、カウンタY、及びカウンタZの合計であり、この値を最大利用可能時間から減算して残りの滞留時間を決定してもよい。この例では、最大利用可能時間を決定する際に予約時間を考慮したので、残りの滞留時間は予約時間をカウントせず、したがって、滞留時間制限に予約時間を残すことができる。
【0055】
ブロック630において、スケジューリングエンジン150は、パケットの送信時間を決定し、ここで、送信時間は、無線機110を介してパケットを送信するのにかかる時間の推定値であってよい。いくつかの実装では、パケットのサイズは、例えば、パケットの検査またはパケットに関連するメタデータの検査に基づいて決定され得、無線送信のための送信レートは既知である。したがって、スケジューリングエンジン150は、サイズに伝送レートを乗算することによって伝送時間を決定し得る。
【0056】
決定ブロック635で、スケジューリングエンジン150は、送信時間が無線チャネル115の残りの滞留時間より大きいかどうかを決定する。言い換えれば、スケジューリングエンジン150は、このパケットを送信するために予約された時間が除外された滞留時間制限内でパケットを送信することができるかどうかを判断する。送信時間が残りの滞留時間より大きくない場合、スケジューリングエンジン150は、ブロック640でパケットの送信を開始してもよい。例えば、スケジューリングエンジン150は、無線機110にパケットを送信するように指示してもよく、無線機110はそのようにしてもよい。しかしながら、送信時間が残りの滞留時間よりも大きい場合、ブロック645においてパケットは保持される(例えば、延期される)。例えば、スケジューリングエンジン150は、ノード105が異なる無線チャネル115に切り替えた後、送信のためにパケットを再キューイングしてもよい。しかしながら、将来の時間において、パケットが予約時間を差し引いた滞留時間制限内で送信可能であると判断された場合、スケジューリングエンジン150は、パケットの送信を開始してもよい。
【0057】
図7は、この発明のいくつかの実施態様による、無線送信のために許可されたパケットをスケジューリングする方法700のフロー図である。いくつかの実装では、この方法700は、ノード105上のスケジューリングエンジン150によって全体的にまたは部分的に実行される。この方法700は、許可されたパケットをスケジューリングするための方法700の一例として、説明のために提供されることが理解されるであろう。
【0058】
方法700のブロック705において、スケジューリングエンジン150は、無線機110を介して送信されるパケットを識別する。例えば、スケジューリングエンジン150は、パケットへの参照を受信してもよい。スケジューリングエンジン150がユーティリティメータ300に統合される場合など、いくつかの実装では、ユーティリティメータ300は、ビーコンを定期的に送信するための、リソース310の消費を記述する消費データを送信するための、または他のタイプのパケットを送信するための1以上の処理を実行する。ユーティリティメータ300以外のノード105では、他のプロセスが実行されてもよい。いずれの場合も、そのようなプロセスは、ビーコン、消費データ、または他のデータの形態のパケットが送信される準備ができていることをスケジューリングエンジン150に通知してもよい。さらに、または代替的に、スケジューリングエンジン150は、パケットを送信する要求を傍受するように、プロセスおよび無線機110間の通信を監視してもよい。スケジューリングエンジン150が送信されるべきデータパケットを認識し、したがって識別する多くのメカニズムが存在することが理解されよう。
【0059】
ブロック710で、スケジューリングエンジン150は、データパケットが送信され得る無線チャネル115を決定する。例えば、いくつかの実装では、ノード105は、スケジュールに従って無線チャネル115間をホッピングし、その場合、現在の無線チャネル115は、確立されたチャネルホッピングシーケンスと現在のタイムスロットとに基づいて決定される。ノード105とネットワークを共有する他のデバイスは、現在のチャネル115を介してデータパケットを受信することを期待することができるので、スケジューリングエンジン150は、データパケットが送信されるかもしれないチャネル115としてこの現在の無線チャネル115を識別してもよい。
【0060】
ブロック715において、スケジューリングエンジン150は、パケットがどのクラスに属するか、より具体的には、この例では、パケットが許可されたクラスに属することを決定する。この目的のために、例えば、スケジューリングエンジン150は、パケットのサイズまたは持続時間を閾値と比較することができる。例えば、閾値未満のサイズのパケットは、管理型として分類されてもよく、または、送信に閾値未満の持続時間を要するパケットは、管理型として分類されてもよい。別の例として、スケジューリングエンジン150は、パケットの内容を解析してパケットの分類を決定してもよい。例えば、スケジューリングエンジン150は、パケットをビーコンとして認識してもよく、したがって、パケットを管理用として分類してもよい。すべての管理用パケットが許可されたクラスである場合、スケジューリングエンジン150は、したがって、パケットが許可されたクラスに属すると決定する。さらに、または代替的に、スケジューリングエンジン150は、パケット自体が識別されるのと同じ方法、または類似の方法で、パケットのクラスを決定してもよい。例えば、パケットの送信を要求するプロセスは、スケジューリングエンジン150にクラスを通知してもよいし、パケットのクラスを識別する表示を提供してもよい。
【0061】
ブロック720において、スケジューリングエンジン150は、最大利用可能時間を滞留時間制限に設定する。例えば、パケットが許可されたクラスに属すると認識すると、スケジューリングエンジン150は、単に、最大利用可能時間を滞留時間制限に等しく設定してもよい。しかしながら、別の例では、スケジューリングエンジン150は、クラスから最大利用可能時間へのマッピングにアクセスすることができ、ここで、許可されたクラスは、滞留時間制限にマッピングされる。その場合、スケジューリングエンジン150は、許可されたクラス内のパケットの最大利用可能時間を調べ、それによって最大利用可能時間を滞留時間制限として識別してもよい。
【0062】
ブロック725で、スケジューリングエンジン150は、無線チャネル115の残りの滞留時間を計算する。いくつかの実装では、残りの滞留時間を計算することは、最大利用可能時間から、現在の無線チャネル115に関連するカウンタサブセット140の値を減算することを含む。カウンタサブセット140の値は、カウンタサブセット140内の様々なカウンタ120の合計であってよい。例えば、
図1の例では、以下のようになる。4A及び4Bでは、カウンタ120が数値として実装される場合、カウンタサブセット140の値は、カウンタX、カウンタY、及びカウンタZの合計であり、この値を最大利用可能時間から減算して残りの滞留時間を決定してもよい。この例では、予約時間は考慮されないし、保留されない。残りの滞留時間は、いくつかの実装において、予約された時間が許可されたパケットのために特に意図されているため、予約された時間を含む。したがって、当該許可されたパケットは、予約された時間を使用することが許可される。
【0063】
ブロック730において、スケジューリングエンジン150は、パケットの送信時間を決定し、ここで、送信時間は、無線機110を介してパケットを送信するのにかかる時間の推定値であってよい。いくつかの実装では、パケットのサイズは、例えば、パケットの検査またはパケットに関連するメタデータの検査に基づいて決定され得、無線送信のための送信レートは既知である。したがって、スケジューリングエンジン150は、サイズに伝送レートを乗算することによって伝送時間を決定し得る。
【0064】
決定ブロック735において、スケジューリングエンジン150は、送信時間が無線チャネル115の残りの滞留時間より大きいかどうかを決定する。言い換えれば、スケジューリングエンジン150は、パケットが滞留時間の制限内で送信できるかどうかを決定する。送信時間が残りの滞留時間より大きくない場合、スケジューリングエンジン150は、ブロック740でパケットの送信を開始してもよい。例えば、スケジューリングエンジン150は、無線機110にパケットを送信するように指示してもよく、無線機110はそのようにしてもよい。しかしながら、送信時間が残りの滞留時間よりも大きい場合、ブロック745においてパケットは保持される(例えば、延期される)。例えば、スケジューリングエンジン150は、ノード105が異なる無線チャネル115に切り替えた後、送信のためにパケットを再キューイングしてもよい。しかしながら、将来の時間において、パケットが滞留時間制限内で送信可能であると判断された場合、スケジューリングエンジン150は、パケットの送信を開始してもよい。
【0065】
請求項の主題の完全な理解を提供するために、多数の具体的な詳細が本明細書に記載されている。しかしながら、当業者は、請求項の主題が、これらの具体的な詳細なしに実施され得ることを理解するであろう。他の例では、当業者に知られているであろう方法、装置、又はシステムは、請求項の主題を不明瞭にしないように、詳細には記載されていない。
【0066】
本明細書で議論される特徴は、任意の特定のハードウェアアーキテクチャまたは構成に限定されない。ノード105などのコンピューティングデバイスは、1つ以上の入力を条件とする結果を提供するコンポーネントの任意の適切な配置を含むことができる。好適なコンピューティング装置は、コンピューティングシステムを汎用コンピューティング装置から本主題の1つ以上の態様を実装する特殊コンピューティング装置へとプログラムまたは構成する格納ソフトウェア(すなわち、コンピュータシステムのメモリ上に格納されたコンピュータ可読命令)にアクセスする多目的マイクロプロセッサベースのコンピュータシステムを含む。任意の適切なプログラミング、スクリプト、または他のタイプの言語または言語の組み合わせが、コンピューティング装置をプログラミングまたは構成する際に使用されるソフトウェアにおいて本明細書に含まれる教示を実装するために使用され得る。
【0067】
本明細書に開示された方法の態様は、そのようなコンピューティングデバイスの動作において実行されてもよい。上記の例で提示されたブロックの順序は、変化させることができる。例えば、ブロックは、再順序付けされ、結合され、またはサブブロックに分割されることができる。特定のブロックまたはプロセスは、並行して実行することができる。
【0068】
本明細書における「に適合された」又は「に構成された」の使用は、追加のタスク又はステップを実行するように適合又は構成された装置を妨げない、開放的かつ包括的な言語として意図されている。さらに、「に基づく」の使用は、プロセス、ステップ、計算、または他の動作が、1つまたは複数の言及された条件または値に「基づく」場合、実際には、言及されたものを超える追加の条件または値に基づくことができるという意味で、開放的かつ包括的であることを意図している。本明細書に含まれる見出し、リスト、および番号付けは、説明を容易にするためだけのものであり、限定することを意図するものではない。
【0069】
本主題は、その特定の側面に関して詳細に説明されてきたが、当業者は、前述の理解を得た時点で、そのような側面に対する変更、変形、および同等物を容易に作り出すことができることが理解されよう。したがって、本開示は、限定ではなく例示の目的で提示されており、当業者に容易に明らかになるような本主題に対する変更、変形、または追加を含めることを排除するものではないことを理解されたい。