(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】無線通信装置および無線通信システム
(51)【国際特許分類】
H04W 52/02 20090101AFI20240912BHJP
H04W 56/00 20090101ALI20240912BHJP
H04W 84/10 20090101ALI20240912BHJP
H04W 84/18 20090101ALI20240912BHJP
H04L 13/00 20060101ALI20240912BHJP
H04L 7/00 20060101ALI20240912BHJP
【FI】
H04W52/02 110
H04W56/00
H04W84/10 110
H04W84/18
H04L13/00
H04L7/00 990
(21)【出願番号】P 2021089908
(22)【出願日】2021-05-28
【審査請求日】2023-11-28
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】杉本 大樹
(72)【発明者】
【氏名】大神 健司
【審査官】鈴木 重幸
(56)【参考文献】
【文献】特表2020-533851(JP,A)
【文献】特開2012-195840(JP,A)
【文献】国際公開第2020/046270(WO,A1)
【文献】国際公開第2010/071194(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24- 7/26
H04W 4/00-99/00
H04L13/00
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
クロック信号を生成する発振器と、
前記クロック信号に応じてカウント値を順次更新するカウンタと、
前記カウント値の範囲によって表され、外部とのパケットの通信を許可する期間であるアクティブ期間と、前記カウント値の範囲によって表され、外部とのパケットの通信を禁止する期間である非アクティブ期間と、を定めたスケジュールデータを保持するメモリと、
前記スケジュールデータと前記カウンタの前記カウント値とから得られる前記アクティブ期間で、外部とパケットを通信する無線通信インタフェースと、
前記スケジュールデータと前記カウンタの前記カウント値とから得られる前記非アクティブ期間で、前記無線通信インタフェースへの供給電力を遮断する電源コントローラと、
外部からのパケットを受信する受信動作時に、受信したパケットに格納される同期データ値に基づいて前記カウンタの前記カウント値を更新し、外部へパケットを送信する送信動作時に、更新した前記カウント値に基づいて前記同期データ値を定め、定めた前記同期データ値を、送信するパケットに格納する同期コントローラと、
を備える、
無線通信装置。
【請求項2】
請求項1記載の無線通信装置において、
前記同期コントローラは、前記受信動作時に、受信したパケットに格納される前記同期データ値で前記カウンタの前記カウント値を更新し、前記送信動作時に、更新した前記カウント値に、自装置でのパケットの送信処理に要する予測遅延時間を反映させることで前記同期データ値を定め、定めた前記同期データ値を、送信するパケットに格納する、
無線通信装置。
【請求項3】
請求項2記載の無線通信装置において、
前記同期コントローラは、自装置で生成したパケットを外部へ送信するイニシエータとして動作する場合、自装置でのパケットの送信処理に要する予測遅延時間を反映して定めた前記同期データ値を、送信するパケットに格納する、
無線通信装置。
【請求項4】
請求項1記載の無線通信装置において、
前記同期コントローラは、前記受信動作時に、受信したパケットに格納される前記同期データ値に、送信側の装置でのパケットの送信処理に要する予測遅延時間を反映させることで前記同期データ値を変更し、変更した前記同期データ値で前記カウンタの前記カウント値を更新し、前記送信動作時に、変更した前記同期データ値を、送信するパケットに格納する、
無線通信装置。
【請求項5】
請求項4記載の無線通信装置において、
前記同期コントローラは、自装置で生成したパケットを外部へ送信するイニシエータとして動作する場合、パケットを準備した時刻での前記カウンタの前記カウント値を前記同期データ値に定め、送信するパケットに格納する、
無線通信装置。
【請求項6】
請求項2または4記載の無線通信装置において、
前記同期コントローラは、前記予測遅延時間を予め定めた固定値に定める、
無線通信装置。
【請求項7】
請求項2または4記載の無線通信装置において、
前記同期コントローラは、前記予測遅延時間を、パケット長に応じた可変値に定める、
無線通信装置。
【請求項8】
請求項1または2記載の無線通信装置において、
前記同期コントローラは、
前回の前記アクティブ期間で第1のパケットを受信した時刻での第1の前記カウント値と今回の前記アクティブ期間で第2のパケットを受信した時刻での第2の前記カウント値とに基づいて第1の受信間隔を計測し、
前記第1のカウント値と、前記第2のパケットに格納される前記同期データ値とに基づいて前記第2のパケットを送信した他装置が認識している第2の受信間隔を算出し、
前記第1の受信間隔と前記第2の受信間隔との誤差をゼロに近づけるように前記スケジュールデータを補正する、
無線通信装置。
【請求項9】
請求項1記載の無線通信装置において、
前記同期コントローラは、送信するパケットに格納する前記同期データ値を、予め定めた基準のカウント値との差分値を用いて定める、
無線通信装置。
【請求項10】
請求項1記載の無線通信装置において、
前記無線通信装置は、“Bluetooth mesh”規格の対応装置である、
無線通信装置。
【請求項11】
複数の無線通信装置を備える無線通信システムであって、
前記複数の無線通信装置のそれぞれは、
クロック信号を生成する発振器と、
前記クロック信号に応じてカウント値を順次更新するカウンタと、
前記カウント値の範囲によって表され、他の無線通信装置とのパケットの通信を許可する期間であるアクティブ期間と、前記カウント値の範囲によって表され、他の無線通信装置とのパケットの通信を禁止する期間である非アクティブ期間と、を定めたスケジュールデータを保持するメモリと、
前記スケジュールデータと前記カウンタの前記カウント値とから得られる前記アクティブ期間で、他の無線通信装置とパケットを通信する無線通信インタフェースと、
前記スケジュールデータと前記カウンタの前記カウント値とから得られる前記非アクティブ期間で、前記無線通信インタフェースへの供給電力を遮断する電源コントローラと、
他の無線通信装置からのパケットを受信する受信動作時に、受信したパケットに格納される同期データ値に基づいて前記カウンタの前記カウント値を更新し、他の無線通信装置へパケットを送信する送信動作時に、更新した前記カウント値に基づいて前記同期データ値を定め、定めた前記同期データ値を、送信するパケットに格納する同期コントローラと、
を備える、
無線通信システム。
【請求項12】
請求項11記載の無線通信システムにおいて、
前記同期コントローラは、前記受信動作時に、受信したパケットに格納される前記同期データ値で前記カウンタの前記カウント値を更新し、前記送信動作時に、更新した前記カウント値に、自装置でのパケットの送信処理に要する予測遅延時間を反映させることで前記同期データ値を定め、定めた前記同期データ値を、送信するパケットに格納する、
無線通信システム。
【請求項13】
請求項12記載の無線通信システムにおいて、
前記同期コントローラは、自装置で生成したパケットを外部へ送信するイニシエータとして動作する場合、自装置でのパケットの送信処理に要する予測遅延時間を反映して定めた前記同期データ値を、送信するパケットに格納する、
無線通信システム。
【請求項14】
請求項11記載の無線通信システムにおいて、
前記同期コントローラは、前記受信動作時に、受信したパケットに格納される前記同期データ値に、送信側の無線通信装置でのパケットの送信処理に要する予測遅延時間を反映させることで前記同期データ値を変更し、変更した前記同期データ値で前記カウンタの前記カウント値を更新し、前記送信動作時に、変更した前記同期データ値を、送信するパケットに格納する、
無線通信システム。
【請求項15】
請求項14記載の無線通信システムにおいて、
前記同期コントローラは、自装置で生成したパケットを外部へ送信するイニシエータとして動作する場合、パケットを準備した時刻での前記カウンタの前記カウント値を前記同期データ値に定め、送信するパケットに格納する、
無線通信システム。
【請求項16】
請求項12または14記載の無線通信システムにおいて、
前記同期コントローラは、前記予測遅延時間を予め定めた固定値に定める、
無線通信システム。
【請求項17】
請求項12または14記載の無線通信システムにおいて、
前記同期コントローラは、前記予測遅延時間を、パケット長に応じた可変値に定める、
無線通信システム。
【請求項18】
請求項11または12記載の無線通信システムにおいて、
前記同期コントローラは、
前回の前記アクティブ期間で第1のパケットを受信した時刻での第1の前記カウント値と今回の前記アクティブ期間で第2のパケットを受信した時刻での第2の前記カウント値とに基づいて第1の受信間隔を計測し、
前記第1のカウント値と、前記第2のパケットに格納される前記同期データ値とに基づいて前記第2のパケットを送信した無線通信装置が認識している第2の受信間隔を算出し、
前記第1の受信間隔と前記第2の受信間隔との誤差をゼロに近づけるように前記スケジュールデータを補正する、
無線通信システム。
【請求項19】
請求項11記載の無線通信システムにおいて、
前記同期コントローラは、送信するパケットに格納する前記同期データ値を、予め定めた基準のカウント値との差分値を用いて定める、
無線通信システム。
【請求項20】
請求項11記載の無線通信システムにおいて、
前記無線通信システムは、“Bluetooth mesh”規格に対応するシステムである、
無線通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信装置および無線通信システムに関する。
【背景技術】
【0002】
特許文献1には、“Bluetooth(登録商標) mesh”規格に対応する無線通信装置において、少ないチャネル数で、より広範囲の通信範囲をカバーする技術が示される。具体的には、当該無線通信装置は、不特定の複数の他装置とブロードキャスト通信を行うアドバタイズ通信制御部と、特定の他装置と1対1通信を行うコネクション通信制御部と、を有する。無線コネクション通信制御部により通信可能なコネクションクラスタ内の他装置とのメッセージの送受信は、コネクション通信制御部を用いて行われる。一方、コネクションクラスタ外の他装置とのメッセージの送受信は、コネクションクラスタ内において許可された装置のアドバタイズ通信制御部を用いて行われる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、特許文献1に記載されるような、“Bluetooth mesh”(明細書ではBTメッシュと略す)規格に対応する無線通信装置および無線通信システムが知られている。BTメッシュ規格は、Bluetooth SIG(Special Interest Group)によって策定されたメッシュネットワークの規格である。BTメッシュ規格では、非同期でのフラッディング、言い換えればブロードキャストを用いて、パケット、言い換えればメッセージを通信することが基本動作となっている。BTメッシュを構成する無線通信装置は、ノードと呼ばれる。
【0005】
ここで、BTメッシュでは、例えば、一部のノードを、リレー機能、すなわちパケットの中継機能を有しないロウパワーノードに定めることが可能である。ロウパワーノードは、パケットの受信期間を自ノードで定めることができるため、この受信期間を除く期間ではスリープ状態であってよい。一方、ロウパワーノードを除く各ノードは、非同期に発生するパケットを受信するため、常時、パケットを受信可能な状態で待機する必要がある。このため、BTメッシュでは、ネットワーク全体として、消費電力が増大するおそれがあった。
【0006】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0007】
一実施の形態による無線通信装置は、クロック信号を生成する発振器と、クロック信号に応じてカウント値を順次更新するカウンタと、メモリと、無線通信インタフェースと、電源コントローラと、同期コントローラと、を備える。メモリは、外部とのパケットの通信を許可するカウント値の範囲であるアクティブ期間と、外部とのパケットの通信を禁止するカウント値の範囲である非アクティブ期間と、を定めたスケジュールデータを保持する。無線通信インタフェースは、スケジュールデータとカウンタのカウント値とから得られるアクティブ期間で、外部とパケットを通信する。電源コントローラは、スケジュールデータとカウンタのカウント値とから得られる非アクティブ期間で、無線通信インタフェースへの供給電力を遮断する。同期コントローラは、外部からのパケットを受信する受信動作時に、受信したパケットに格納される同期データ値に基づいてカウンタのカウント値を更新し、外部へパケットを送信する送信動作時に、更新したカウント値に基づいて同期データ値を定め、当該定めた同期データ値を、送信するパケットに格納する。
【発明の効果】
【0008】
前記一実施の形態によれば、無線通信装置および無線通信システムにおいて、消費電力の低減が実現可能になる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1の無線通信システムの構成例を示す概略図である。
【
図2】実施の形態1の無線通信システムで用いる通信方式の一例を説明する模式図である。
【
図3】
図2の通信方式で用いる時刻の同期方法の一例を説明する図である。
【
図4】本発明の実施の形態1の無線通信装置の構成例を示す概略図である。
【
図5】
図4の無線通信装置が担うネットワーク上の役割の一例を説明する図である。
【
図6】実施の形態1の無線通信システムにおいて、スケジュールデータの詳細な一例を説明するタイミングチャートである。
【
図7】実施の形態1の無線通信システムにおいて、初期同期に伴う動作例を説明するタイミングチャートである。
【
図8】実施の形態1の無線通信システムにおいて、同期の維持に伴う動作例を説明するタイミングチャートである。
【
図9】実施の形態1の無線通信システムにおいて、パケットのフォーマットの一例を示す概略図である。
【
図10】実施の形態1の無線通信システムにおいて、カウント値を用いた同期方法の動作例を示すタイミングチャートである。
【
図11A】実施の形態1の無線通信システムにおいて、同期データ値に伴う処理方法の一例を説明するタイミングチャートである。
【
図11B】
図11Aとは異なる処理方法の一例を説明するタイミングチャートである。
【
図12】実施の形態2の無線通信システムにおいて、実際の通信有効期間の一例を示すタイミングチャートである。
【
図13】実施の形態2の無線通信システムにおいて、通信有効期間の拡大方法の一例を説明するタイミングチャートである。
【
図14】実施の形態2の無線通信システムにおいて、通信有効期間の拡大方法の一例を説明するタイミングチャートである。
【発明を実施するための形態】
【0010】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【0011】
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0012】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0013】
(実施の形態1)
<無線通信システムの概略>
図1は、実施の形態1の無線通信システムの構成例を示す概略図である。
図1には、無線通信システムの一例としてBTメッシュのネットワーク構成例が示される。BTメッシュでは、受信したパケットをフラッディングによって順次中継することで、通信距離を延ばすことが可能となっている。
図1には、複数のノードA~Tが示される。ノードA~Tのそれぞれは、BTメッシュ規格に対応する無線通信装置である。
【0014】
ノードA~Tの中には、通常ノードA~H,N,Tと、リレーノードQ,R,Sと、フレンドノードO,Pと、ロウパワーノードI~Mと、が含まれる。通常ノードA~Hは、所定の宛先を含んだパケットを生成し、当該生成したパケットを送信する機能と、自ノードを宛先とするパケットを受信する機能とを担う。リレーノードQ,R,Sは、受信したパケットを他の複数のノードへフラッディングによって送信する機能を担う。
【0015】
フレンドノードO,Pは、ロウパワーノードI~Mを宛先とするパケットを一時的に保持する機能を担う。ロウパワーノードI~Mは、フレンドノードO,Pに対して、自ノードを宛先とするパケットを保持しているか否かを間欠的に問い合わせ、保持している場合には当該パケットをフレンドノードO,Pから受信する。このため、ロウパワーノードI~Mは、問い合わせを行う際にアクティブ状態となり、それ以外の期間では非アクティブ状態、言い換えればスリープ状態であってよい。アクティブ状態は、通常電力での動作状態であり、スリープ状態は、省電力での動作状態である。
【0016】
図1における具体的な動作例として、例えば、通常ノードTは、ロウパワーノードLを宛先とするパケットを生成し、当該パケットをリレーノードSに向けてGATTベアラと呼ばれる通信手段を用いて送信する。GATTベアラは、1対1の通信手段である。リレーノードSは、通常ノードTからのパケットをADVベアラと呼ばれる通信手段を用いてフラッディングによって中継する。ADVベアラは、1対多の通信手段である。フレンドノードOは、リレーノードSが中継した、ロウパワーノードLを宛先とするパケットを受信し、保持する。そして、フレンドノードOは、ロウパワーノードLからの問い合わせに応じて、保持しているパケットをロウパワーノードLに送信する。
【0017】
このような無線通信システムにおいて、ロウパワーノードI~Mを除く、通常ノードA~H,N,T、リレーノードQ,R,SおよびフレンドノードO,Pは、通常、非同期に発生するパケットを受信するため、常時、パケットを受信可能な状態で待機する必要がある。その結果、ネットワーク全体として、消費電力の増大が生じ得る。そこで、後述する実施の形態の通信方式を用いることが有益となる。
【0018】
<通信方式の概略>
図2は、実施の形態1の無線通信システムで用いる通信方式の一例を説明する模式図である。実施の形態1の無線通信システムでは、
図2に示されるように、ネットワークに参加する全ての無線通信装置(ノード)ND1~ND3は、予め定めた共通のスケジュールに同期して動作する。
図2のスケジュールの例では、繰り返し生じる周期Tcの中に、アクティブ期間Taと、スリープ期間(非アクティブ期間)Tsと、が含まれる。
【0019】
複数の無線通信装置ND1~ND3は、共に、アクティブ期間Ta内の任意のタイミングでパケットの通信、すなわち送信または受信を行う。また、複数の無線通信装置ND1~ND3は、共に、アクティブ期間Ta内でパケット送信をしていない期間ではパケットの受信を待ち受ける。一方、複数の無線通信装置ND1~ND3は、スリープ期間Tsでは、共に、パケットの通信を行わず、所定の省電力モードで動作する。なお、明細書では、複数の無線通信装置(ノード)ND1~ND3を総称して、無線通信装置(ノード)NDと呼ぶ。
【0020】
このように、共通のスケジュールに同期して動作するため、複数の無線通信装置ND1~ND3は、時刻を同期する。詳細には、複数の無線通信装置ND1~ND3のそれぞれは、例えば、自装置に設けられるカウンタのカウント値によって時刻を管理する。この場合、複数の無線通信装置ND1~ND3は、適宜、カウント値を同期すればよい。また、カウント値を用いる場合、アクティブ期間Taは、カウント値の範囲によって表され、外部とのパケットの通信を許可する期間となる。一方、スリープ期間Tsは、カウント値の範囲によって表され、外部とのパケットの通信を禁止する期間となる。
【0021】
図3は、
図2の通信方式で用いる時刻の同期方法の一例を説明する図である。各無線通信装置NDは、他の無線通信装置NDと時刻を同期するため、他の無線通信装置NDへ送信するパケットに時刻情報であるカウント値を格納する。一方、パケットを受信した他の無線通信装置NDは、受信したパケットに格納されるカウント値に基づいて、自装置のカウンタのカウント値を更新する。
【0022】
図3の例では、通信を始める無線通信装置ND1は、送信するパケットを準備する時、パケット(TX)に自装置のカウント値を格納して送信する。続いて、パケットを中継する無線通信装置ND2は、無線通信装置ND1からのパケット(RX)を受信し、受信したパケットに格納されているカウント値で自装置のカウント値を更新する。これにより、無線通信装置ND1と無線通信装置ND2とで、カウント値、言い換えれば時刻を同期することが可能になる。
【0023】
詳細には、無線通信装置ND1は、例えば、時刻t0でパケットを準備し、遅延時間Δtdを経たのち、時刻t1でパケットの送信を完了する。遅延時間Δtdは、このパケットの送信処理に要する遅延時間であり、例えば、パケットの準備を開始した時刻からパケットの送信を完了する時刻までの時間である。一方、無線通信装置ND2は、時刻t1でパケットの受信を完了し、その時刻でカウント値を同期する。したがって、無線通信装置ND1からのパケットに格納される理想的なカウント値は、時刻t1でのカウント値である。
【0024】
ここで、無線通信装置ND1が、仮に、パケットを準備する時刻である時刻t0におけるカウント値をパケットに格納すると、理想値である時刻t1に対して遅延時間Δtd分の誤差が生じ得る。そこで、無線通信装置ND1は、例えば、この遅延時間Δtdを予測遅延時間として予め定めておき、時刻t0で、当該予測遅延時間を反映させたカウント値、すなわち時刻t1により近いカウント値をパケットに格納することが望ましい。ただし、遅延時間Δtdが十分に短い場合には、必ずしも予測遅延時間を反映させる必要はない。
【0025】
無線通信装置ND2は、無線通信装置ND1からのパケット(RX)に格納されるカウント値に基づいて自装置のカウント値を更新したのち、当該パケットを他の無線通信装置(例えばND3)へ送信する。この際にも、無線通信装置ND1の場合と同様の遅延時間Δtdが生じ得る。したがって、遅延時間Δtdが問題となる場合、無線通信装置ND2は、無線通信装置ND1の場合と同様に、更新したカウント値に予測遅延時間を反映させ、当該予測遅延時間を反映させたカウント値、すなわち時刻t2により近いカウント値を、送信するパケット(TX)に格納することが望ましい。すなわち、無線通信装置ND2は、無線通信装置ND1からのパケットに格納されているカウント値を書き換えることが望ましい。
【0026】
以降同様にして、パケットが後段の装置へ中継される度に、送信側の装置と受信側の装置の間で、時刻の同期が行われる。その結果、
図2に示したようなアクティブ期間Taおよびスリープ期間Tsに基づく通信制御を高精度に行うことが可能になる。すなわち、同期ズレに伴うパケットのロス等を防止することで通信の信頼性を高めつつ、スリープ期間Tsによって消費電力を低減することが可能になる。なお、ここでは、例えば、無線通信装置ND1が時刻t
1に対応するカウント値を送信したが、代わりに、無線通信装置ND2が無線通信装置ND1からの時刻t
0でのカウント値を受けて、時刻t
1に対応するカウント値を予測することも可能である。
【0027】
<無線通信装置の概略>
図4は、本発明の実施の形態1の無線通信装置の構成例を示す概略図である。
図4に示す無線通信装置NDは、演算処理部10と、発振器11と、カウンタ12と、メモリ13と、無線通信インタフェース14と、アンテナ15と、電源コントローラ16とを備える。演算処理部10は、代表的には、メモリ13に保持されるプログラムを実行するプロセッサ等で実現される。ただし、演算処理部10は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)等で実現されてもよい。演算処理部10は、例えば、パケットの送受信制御や、パケットのベースベンド処理等に加えて、無線通信装置NDの役割に応じた所定の処理を行う。
【0028】
発振器11は、例えば、PLL(Phase Locked Loop)回路等で構成され、クロック信号CKを生成する。カウンタ12は、発振器11からのクロック信号CKに応じて、カウント値t[x]を順次更新する。カウンタ12は、レジスタ等に保持するカウント値t[x]を演算処理部10からのカウント値t[y]で更新することが可能となっている。メモリ13は、例えば、RAM(Random Access Memory)と不揮発メモリとの組み合わせで構成される。メモリ13は、
図2に示したような、アクティブ期間Taとスリープ期間(非アクティブ期間)Tsとを定めたスケジュールデータ21を保持する。
【0029】
無線通信インタフェース14は、RFIC(Radio Frequency Integrated Circuit)等で構成され、アンテナ15を介して無線通信を行う。無線通信インタフェース14は、スケジュールデータ21とカウンタ12のカウント値t[x]とから得られるアクティブ期間Taで、外部とパケットを通信する、すなわちパケットの送信または受信を行う。詳細には、例えば、演算処理部10が、スケジュールデータ21およびカウント値t[x]に基づいてアクティブ期間Taを判別し、この期間で無線通信インタフェース14を介してパケットの通信を行う。
【0030】
電源コントローラ16は、例えば、電源管理IC等で構成され、無線通信装置ND全体の電源を管理する。その一つとして、電源コントローラ16は、スケジュールデータ21とカウント値t[x]とから得られるスリープ期間Tsで、無線通信インタフェース14への供給電力を遮断する。詳細には、例えば、演算処理部10が、スケジュールデータ21およびカウント値t[x]に基づいてスリープ期間Tsを判別し、この期間を電源コントローラ16へ指示すればよい。これにより、特に消費電力が大きいユニットとなる無線通信インタフェース14において、消費電力を低減することが可能になる。
【0031】
ここで、演算処理部10は、同期コントローラ20を有する。同期コントローラ20は、例えば、
図3の無線通信装置ND2のように、外部から受信したパケットを外部へ送信するリレーとして動作する場合、次のような処理を行う。すなわち、同期コントローラ20は、外部からのパケットを受信する受信動作時に、受信したパケットに格納される同期データ値、ここではカウント値に基づいて更新するカウント値t[y]を定め、当該カウント値t[y]でカウンタ12のカウント値t[x]を更新する。そして、同期コントローラ20は、外部へパケットを送信する送信動作時に、当該更新したカウント値t[y]に基づいて同期データ値を定め、定めた同期データ値を、送信するパケットに格納する。
【0032】
また、同期コントローラ20は、外部から自装置宛のパケットを受信するターゲットとして動作する場合、前述した受信動作時の処理のみを行う。一方、同期コントローラ20は、例えば、
図3の無線通信装置ND1のように、自装置で生成したパケットを外部へ送信するイニシエータとして動作する場合、次のような処理を行う。すなわち、同期コントローラ20は、送信動作時に、自装置のカウンタ12のカウント値t[x]に基づいて同期データ値を定め、当該定めた同期データ値を、送信するパケットに格納する。
【0033】
なお、
図4の無線通信装置NDは、特に、
図1に示したBTメッシュの無線通信システムにおける各ノードに適用されて有益なものとなる。ただし、当該無線通信装置NDの適用先は、BTメッシュに限らず、他の無線通信システム、言い換えれば無線通信ネットワークであってもよい。この場合、特に、時刻同期の観点から、適用先を、フラッディング方式を用いたネットワークにするとよい。また、明細書では、無線通信ネットワークへの適用を前提とするが、実施の形態1の通信方式は、場合によっては、有線通信ネットワークに適用することも可能である。
【0034】
<通信方式の詳細>
[ノードのネットワーク上の役割]
図5は、
図4の無線通信装置が担うネットワーク上の役割の一例を説明する図である。
図5において、複数の無線通信装置(ノード)ND1~ND3のそれぞれは、イニシエータINI、リレーRLY、またはターゲットTGTのいずれか一つの役割を担う。イニシエータINIは、通信の起点となる役割を担う。リレーRLYは、パケットを中継する役割を担う。ターゲットTGTは、通信の終点となる役割を担う。
【0035】
各ノードNDのネットワーク上の役割は、固定では無く、適宜、変更され得る。
図5の例では、あるアクティブ期間Taにおいて、ノードND1,ND2,ND3は、それぞれ、リレーRLY、イニシエータINI、ターゲットTGTの役割を担っている。一方、所定のアクティブ期間Taで役割変更が行われると、その後のアクティブ期間Taにおいて、ノードND1,ND2,ND3は、それぞれ、イニシエータINI、ターゲットTGT、リレーRLYの役割を担う。
【0036】
[スケジュールデータの設定方法]
複数のノードNDに、
図2および
図4に示した共通のスケジュールデータ21を設定する方法として、例えば、次のような方法が挙げられる。第1の方法として、システム管理者が、予め、複数のノードNDのメモリ13に共通のスケジュールデータ21を格納しておく方法が挙げられる。第2の方法として、対象のノードNDをBTメッシュに参加させるためのプロビジョニングと呼ばれる手続きを行う際に、プロビジョナーが、対象のノードNDにスケジュールデータ21を通知する方法が挙げられる。
【0037】
第3の方法として、予め定めた所定の手続きに基づいて、BTメッシュ全体で共通のスケジュールデータ21を動的に変更・共有する方法が挙げられる。具体的には、スケジュールデータ21を変更したいノードNDが、BTメッシュを用いて他のノードNDに変更後の共通のスケジュールデータ21を伝達する方法が挙げられる。なお、第1~第3の方法は、適宜、組み合わせて用いることも可能である。
【0038】
[スケジュールデータの詳細]
図6は、実施の形態1の無線通信システムにおいて、スケジュールデータの詳細な一例を説明するタイミングチャートである。前述したように、スケジュールデータ21では、カウント値によってアクティブ期間Taとスリープ期間(非アクティブ期間)Tsとが定められる。
図6の例では、カウンタ12は、クロック信号CKに応じて、カウント値t[x]を0~nの範囲で巡回的に+1ずつインクリメントしている。そして、スケジュールデータ21では、アクティブ期間Taは、0~mのカウント値t[x]の範囲に定められ、スリープ期間Tsは、“m+1”~nのカウント値t[x]の範囲に定められる。この場合、スケジュールデータ21は、mの値と、nの値とによって適宜変更され得る。
【0039】
各ノードNDは、スケジュールデータ21と、カウンタ12のカウント値t[x]と、に基づいて、アクティブ期間Taとスリープ期間Tsとを判別する。そして、各ノードNDは、アクティブ期間Taでパケットを通信する。一方、各ノードNDは、スリープ期間Tsではパケットの通信を行わず、無線通信インタフェース14への供給電力を遮断することで、省電力モードで動作する。
【0040】
[初期同期の動作]
図7は、実施の形態1の無線通信システムにおいて、初期同期に伴う動作例を説明するタイミングチャートである。
図7において、全てのノードND1,ND2は、システムリセット後、アクティブ期間Ta1で動作する。当該アクティブ期間Ta1において、送信側のノードND1が最初のパケットPK1aを送信し、受信側のノードND2が当該最初のパケットPK1aを受信することで、ノードND1とノードND2とは同期を確立する(ステップS101)。
【0041】
全てのノードND1,ND2は、同期を確立したのちのアクティブ期間Ta2において、任意のタイミングでパケットPK2aの通信が可能である(ステップS102)。また、同期を確立したのちの各アクティブ期間では、常にパケットの通信が行われる必要はなく、パケットの通信が行われないアクティブ期間Ta3があってもよい(ステップS103)。
【0042】
[同期の維持]
図8は、実施の形態1の無線通信システムにおいて、同期の維持に伴う動作例を説明するタイミングチャートである。例えば、
図4の発振器11からのクロック信号CKには、ノードND毎に偏差があるため、パケットの送受信が行われない時間が続くと、同期ズレ、すなわちカウント値t[x]のズレが生じ得る。そして、この同期ズレが過大になると、ノードND間での正常なパケットの通信が困難となるおそれがある。
【0043】
そこで、例えば、
図5で述べたイニシエータINI等に、最大送信間隔等を設定することが望ましい。イニシエータINIとなるノードND1は、例えば、送信すべきパケットが存在しない場合には、最大送信間隔を超えないようダミーのパケットPKd等を送信する(ステップS200)。このようにして定期的に同期を再確立することで、各ノードND1,ND2は、同期を維持することができる。
【0044】
[パケットのフォーマット]
図9は、実施の形態1の無線通信システムにおいて、パケットのフォーマットの一例を示す概略図である。BTメッシュ規格で用いられる従来のパケット、言い換えればメッセージは、送信元アドレスを含むヘッダフィールド25と、宛先アドレス(DST)フィールド26と、“Transport PDU(Protocol Data Unit)”のフィールド27と、MIC(Message Integrity Check)フィールド28とを備える。
【0045】
BTメッシュ規格では、“Upper Transport”層で暗号化された“Upper Transport Access PDU”が“Lower Transport”層で1個のパケットに収まるように分割され、分割されたPDUが“Transport PDU”となる。“Transport PDU”は、宛先アドレス(DST)と合わせて“Network”層で暗号化される。MICフィールド28は、PDUが正しく暗号化されているかをチェックするためのフィールドである。
【0046】
ここで、実施の形態1で用いるパケットは、従来のパケットのフォーマットをそのまま利用し、“Transport PDU”のフィールド27内に、同期データ値、ここでは、カウント値を格納するためのフィールド27aが設けられる。この例では、フィールド27aのサイズは、4オクテット(32ビット)となっている。これに伴い、従来における最大128オクテットの“Transport PDU”のフィールド27は、最大124オクテットの“Transport PDU”のフィールド27bとして用いられる。各ノードNDは、送信動作時には、フィールド27aに同期データ値を格納し、受信動作時には、フィールド27aに格納された同期データ値を取得する。
【0047】
[カウント値を用いた同期方法(1)]
図10は、実施の形態1の無線通信システムにおいて、カウント値を用いた同期方法の動作例を示すタイミングチャートである。この例では、全てのノードND1~ND3は、同期開始前の状態から始まっている。ステップS301において、ノードND1は、同期データ値(カウント値)“101”を格納したパケットを送信する。ノードND1からのパケットを受信したノードND2,ND3は、当該パケットに格納される同期データ値“101”で、自ノードのカウント値を更新することで、ノードND1に同期する。
【0048】
その後、ある程度の期間が経過すると、ノードND1~ND3のカウント値には誤差が生じ得る。ステップS302では、この誤差が生じている状態で、ノードND3は、同期データ値“507”を格納したパケットを送信する。ノードND3からのパケットを受信したノードND2は、そのままでは“506”となる自ノードのカウント値を、受信したパケットに格納される同期データ値“507”で更新することで、ノードND3に同期する。同様に、ノードND3からのパケットを受信したノードND1は、そのままでは“508”となる自ノードのカウント値を、受信したパケットに格納される同期データ値“507”で更新することで、ノードND3に同期する。
【0049】
なお、各ノードND1~ND3の同期コントローラ20は、送信するパケットに格納する同期データ値を、カウント値そのものではなく、予め定めた基準のカウント値との差分値を用いて定めてもよい。具体例として、同期コントローラ20は、例えば、
図6において、m/2のカウント値を基準のカウント値として、この基準のカウント値との差分値を同期データ値に定めてもよい。その結果、同期データ値の取り得る範囲を約半分程度に狭めることが可能になり、ひいては、
図9に示したフィールド27aのサイズを小さくすることが可能になる。
【0050】
[同期データ値の詳細]
同期データ値は、
図3で述べたように、予測遅延時間を反映させないカウント値であってよく、望ましくは、予測遅延時間を反映させたカウント値であってよい。ここでは、予測遅延時間を反映させたカウント値を用いる場合について詳細に説明する。
図11Aは、実施の形態1の無線通信システムにおいて、同期データ値に伴う処理方法の一例を説明するタイミングチャートである。
図11Bは、
図11Aとは異なる処理方法の一例を説明するタイミングチャートである。
【0051】
図11Aでは、イニシエータINIとして動作するノードND1のカウント値を基準として同期が確立される。まず、ノードND1は、自ノードでのパケットの送信処理に要する予測遅延時間Δtd[0]を反映して定めた同期データ値t[1]’を、送信するパケット(TX)に格納して後段へ送信する。
【0052】
詳細には、ノードND1は、パケット、詳細には
図9のフィールド27aを準備した時刻t
0での自ノードのカウント値t[0]に、予測遅延時間Δtd[0]を加えることで、予測遅延時間Δtd[0]を反映させた同期データ値t[1]’を定める。予測遅延時間Δtd[0]は、例えば、パケットを準備した時刻t
0からパケットの送信を完了する時刻t
1までの時間である。これにより、同期データ値t[1]’、すなわちカウント値は、時刻t
1でのカウント値t[1]にほぼ等しくなる。
【0053】
リレーRLYとして動作するノードND2は、ノードND1がパケット(TX)の送信が完了した時刻t1で、当該パケット(RX)の受信を完了する。そして、ノードND2は、当該時刻t1において、受信したパケット(RX)に格納される同期データ値t[1]’で自ノードのカウント値を更新する。その結果、ノードND2のカウント値t[1]’は、ノードND1のカウント値t[1]に同期する。
【0054】
その後、ノードND2は、当該更新したカウント値t[1]’に、自ノードでのパケットの送信処理に要する予測遅延時間Δtd[1]を反映させることで同期データ値t[2]’を定める。詳細には、ノードND2は、更新したカウント値t[1]’に、予測遅延時間Δtd[1]を加えることで同期データ値t[2]’を定める。予測遅延時間Δtd[1]は、例えば、パケットの受信を完了した時刻t1から当該受信したパケットの送信、すなわち中継を完了する時刻t2までの時間である。これにより、同期データ値t[2]’、すなわちカウント値は、時刻t2でのカウント値t[2]にほぼ等しくなる。そして、ノードND2は、当該定めた同期データ値t[2]’を、送信するパケット(TX)に格納して後段へ送信する。
【0055】
以降同様にしてパケットが順次中継されることで、例えば、ノードND2からのパケットを受信したノード(例えばND3)のカウント値は、ノードND2のカウント値、ひいては、ノードND1のカウント値に同期する。そして、最終的に、ターゲットTGTとして動作するノードNDnのカウント値も、前段の全てのノードNDのカウント値に同期する。その結果、送信処理に要する遅延時間を反映した高精度な同期が実現できる。
【0056】
図11Bでは、
図11Aの場合と同様に、イニシエータINIとして動作するノードND1のカウント値を基準として同期が確立される。ただし、
図11Bでは、
図11Aの場合と異なり、予測遅延時間が、送信動作時ではなく、受信動作時に反映される。以下、
図11Aとの違いに着目して説明を行う。
【0057】
まず、ノードND1は、
図11Aの場合と異なり、パケットを準備した時刻t
0での自ノードのカウント値t[0]を同期データ値に定め、送信するパケット(TX)に格納する。そして、ノードND1は、
図11Aの場合と同じく、時刻t
1でパケットの送信を完了する。一方、ノードND2は、ノードND1から受信したパケット(RX)に格納される同期データ値t[0]に、送信側のノードND1でのパケットの送信処理に要する予測遅延時間Δtd[0]を反映させることで同期データ値を変更する。そして、ノードND2は、当該変更した同期データ値で自ノードのカウント値を更新する。
【0058】
詳細には、ノードND2は、受信したパケット(RX)に格納される同期データ値t[0]に、予測遅延時間Δtd[0]を加えることで同期データ値をt[0]からt[1]’に変更する。変更した同期データ値t[1]’、すなわち、カウント値は、
図11Aの場合と同様に、時刻t
1でのカウント値t[1]にほぼ等しくなる。そして、ノードND2は、当該変更した同期データ値t[1]’で自ノードのカウント値を更新する。その結果、ノードND2のカウント値t[1]’は、ノードND1のカウント値t[1]に同期する。
【0059】
その後、ノードND2は、当該変更した同期データ値t[1]’を、送信するパケット(TX)に格納し、後段へ送信する。以降同様にして、ターゲットTGTとして動作するノードNDnに向けて、順次、パケットの中継が行われる。その際には、同様にして、受信側のノードNDによって予測遅延時間が反映させることで、送信処理に要する遅延時間を反映した高精度な同期が実現できる。
【0060】
なお、各ノードNDの同期コントローラ20は、
図11Aおよび
図11Bに示した予測遅延時間Δtd[0],Δtd[1],…を様々な方法で定めることができる。例えば、同期コントローラ20は、予測遅延時間を予め定めた固定値に定めてもよい。詳細には、無線通信システム全体で共通の固定値を定める方法や、ノード毎に固有の固定値を定める方法が挙げられる。固定値の大きさは、例えば、シミュレーションや実測等に基づいて定められる。また、同期コントローラ20は、予測遅延時間を、パケット長に応じた可変値や、自ノードNDの動作状態に応じた可変値に定めてもよい。前者に関し、同期コントローラ20は、例えば、パケット長が長くなるほど所定の比例係数で増加するような可変値を定めてもよい。
【0061】
<実施の形態1の主要な効果>
以上、実施の形態1の方式では、スリープ期間を含むスケジュールに基づいて通信制御が行われると共に、時刻同期の仕組みが設けられる。その結果、代表的には、消費電力の低減が実現可能になり、特に、BTメッシュ等のメッシュネットワークにおいて有益な効果が得られる。例えば、
図1のBTメッシュでは、ロウパワーノードI~Mのみならず、通常ノードA~H,N,TおよびリレーノードQ,R,Sの消費電力を低減できる。
【0062】
また、時刻同期に関しては、例えば、ネットワーク全体の時刻を管理する単一の管理ノードを設けて時刻同期を実現するような方式ではなく、複数のノード間で行われる通常の通信を利用して時刻同期を実現する方式を用いている。このため、障害への耐性を高めることができ、また、管理ノードで用いられる同期専用のパケット等を新たに規定する必要もない。
【0063】
さらに、スケジュールを任意に定めることができるため、ネットワーク全体で生じるトラフィックや消費電力を適宜平準化することが可能になる。詳細には、例えば、ネットワーク全体に含まれるノードを2つのセグメントに分け、一方のセグメントがアクティブ期間である場合に、他方のセグメントがスリープ期間となるようにスケジュールを定めることが可能になる。
【0064】
(実施の形態2)
<通信有効期間について>
図12は、実施の形態2の無線通信システムにおいて、実際の通信有効期間の一例を示すタイミングチャートである。例えば、
図11A等に示したような通信方式を用いて同期を確立した場合であっても、同期データ値に反映されている予測遅延時間の誤差や、カウンタ12の誤差等により、実際には、
図12に示されるように、各ノードND間でアクティブ期間の時刻にズレが生じ得る。その結果、全部ではなく一部のノードNDがアクティブとなる期間が生じ、この期間は、通信不可期間Ti1,Ti2となる。
【0065】
一方、通信不可期間Ti1,Ti2での無駄なパケットの送信を避けるためには、各ノードND1~ND3のアクティブ期間内に予測遅延時間の誤差を考慮したマージン期間を設ける必要がある。このマージン期間は、例えば、送信を禁止し、受信のみを許可する受信限定期間Tr1,Tr2に定められる。そして、アクティブ期間から受信限定期間Tr1,Tr2を除いた期間がノードND1~ND3毎の送受信可能期間Trxに定められる。通信有効期間Tvは、実際にパケットの送受信が可能な期間であり、複数のノードND1~ND3の送受信可能期間Trxの論理積によって定められる。
【0066】
受信限定期間Tr1,Tr2は、ノードND1~ND3毎に、システムの要求に応じて十分な期間に設定される。ただし、アクティブ期間に占める受信限定期間Tr1,Tr2の割合が大きくなるほど、通信効率が低下し、消費電力の観点からも非効率となる。このため、受信限定期間Tr1,Tr2を短縮して、通信有効期間Tvを拡大することが望まれる。
【0067】
<通信有効期間の拡大方法>
図13および
図14は、実施の形態2の無線通信システムにおいて、通信有効期間の拡大方法の一例を説明するタイミングチャートである。概略的には、
図4の同期コントローラ20は、前回のアクティブ期間でパケットPKyを受信した時刻でのカウント値t[n-1]と今回のアクティブ期間でパケットPKxを受信した時刻でのカウント値t[n]とに基づいて受信間隔Δt[n]を計測する。また、同期コントローラ20は、カウント値t[n-1]と、パケットPKxに格納される同期データ値t[n]’とに基づいてパケットPKxを送信した他ノードNDxが認識している受信間隔Δt[n]’を算出する。
【0068】
そして、同期コントローラ20は、自ノードNDの計測に基づく受信間隔Δt[n]と他ノードNDxの認識に基づく受信間隔Δt[n]’との誤差をゼロに近づけるように、スケジュールデータ21を補正する。これにより、複数のノードND間で、実際上のスケジュールの誤差を低減することができる。その結果、受信限定期間Tr1,Tr2を短く定めることができ、通信有効期間Tvを拡大することが可能になる。
【0069】
詳細には、
図13において、他ノードNDxからのパケットPKxを受信した時の自ノードNDの時刻をt[n]とし、他ノードNDyからのパケットPKyを受信した時の自ノードNDの時刻をt[n-1]とする。他ノードNDyと他のノードNDxとは、同一ノードであってもよい。なお、自ノードNDの時刻は、自ノードのカウント値と等価である。
【0070】
パケットPKxに格納されている同期データ値(カウント値)をt[n]’とする。自ノードNDが時刻t[n-1]でパケットPKyを受信してから時刻t[n]でパケットPKxを受信するまでの間隔をΔt[n]とする。間隔Δt[n]は、自ノードNDが実際に計測した受信間隔となる。パケットPKyを受信した時刻t[n-1]からパケットPKxに格納される同期データ値が表す時刻t[n]’までの間隔をΔt[n]’とする。間隔Δt[n]’は、他ノードNDxが認識している受信間隔を意味する。
【0071】
また、式(1)に示されるように、他ノードNDxの認識に基づく受信間隔Δt[n]’と自ノードの計測に基づく受信間隔Δt[n]との差分値を誤差e[n]とする。式(2)に示されるように、自ノードの計測に基づく受信間隔Δt[n]に対する誤差e[n]の比を誤差比率e[n]’とする。そして、同期コントローラ20は、式(3)に示されるように、パケットを受信する毎に誤差比率e[n]’を算出し、過去M回分の誤差比率e[n]’の平均誤差値E[n]を算出する。
【0072】
【0073】
【0074】
【0075】
ここで、
図14に示されるように、アクティブ期間とスリープ期間の一周期をTとすると、自ノードNDのカウント値に基づく周期Tには、他ノードと比較して、平均的に、周期Tに対して平均誤差値E[n]を乗じた誤差が生じていると推定できる。そこで、同期コントローラ20は、式(4)に示されるように、この推定誤差T・E[n]をキャンセルするように周期Tを補正することで、補正後周期T’を算出する。
【0076】
【0077】
そして、同期コントローラ20は、この補正後周期T’に基づいてスケジュールデータ21を補正する。例えば、同期コントローラ20は、推定誤差T・E[n]を、アクティブ期間とスレーブ期間とに比例分配すればよい。なお、誤差を推定する際のアルゴリズムは移動平均に限らず、デジタル信号処理による種々のアプローチを適用可能である。
【0078】
<実施の形態2の主要な効果>
以上、実施の形態2の方式を用いることで、通信有効期間を拡大することができる。その結果、実施の形態1で述べた各種効果に加えて、更なる消費電力の低減等が実現可能になる。
【0079】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0080】
11 発振器
12 カウンタ
13 メモリ
14 無線通信インタフェース
16 電源コントローラ
20 同期コントローラ
21 スケジュールデータ
CK クロック信号
INI イニシエータ
ND 無線通信装置
PK パケット
RLY リレー
TGT ターゲット
Ta アクティブ期間
Ts スリープ期間(非アクティブ期間)
t[x] カウント値
Δtd[n] 予測遅延時間