(実施形態1)
図1は、実施形態1に係る中継判定システム1のシステム構成例を示す図である。図1に示すように、中継判定システム1には、無線通信によりマルチホップでデータを中継伝送する複数の通信装置100と、通信装置100からのデータを集約する集約装置200とが含まれる。なお、本実施形態は、集約装置200が明示的に存在せず、複数の通信装置100で構成されるマルチホップネットワークやメッシュネットワークにおいても適用することができる。
上述した構成において、通信装置100は、受信データを中継候補データとして、中継候補データが自ノード宛てのデータであるか否かを判定する。具体的には、通信装置100は、自ノード宛てのデータ、自ノード宛てではないデータを含む受信データ全てを中継候補データとして、中継候補データが自ノード宛てのデータであるか否かを判定する。
このとき、通信装置100は、自ノード宛てのデータであると判定された中継候補データを第1のデータとして分類し、自ノード宛てのデータではないと判定された中継候補データを第2のデータとして分類する。具体的には、通信装置100は、自ノード宛てのデータであると判定された中継候補データを、中継データの一つである第1のデータとして分類する。すなわち、自ノード宛てのデータは、中継すべきデータであることから、中継データの一つである第1のデータとして分類される。また、通信装置100は、自ノード宛てのデータではないと判定された中継候補データを、後述する判定処理の対象として第2のデータに分類する。
そして、通信装置100は、第2のデータから、中継データとするための判定基準を満たす第3のデータを抽出する。具体的には、通信装置100は、中継候補データとして残っている第2のデータのうち、中継データとして適用する判定基準を満たすものを、中継データの一つである第3のデータとして抽出する。なお、判定基準の詳細については後述する。その後、通信装置100は、第1のデータと、第3のデータとを中継データとして決定する。具体的には、通信装置100は、自ノード宛てのデータである第1のデータと、中継データとして適用する判定基準を満たした中継候補データである第3のデータとを中継データとして決定する。
つまり、通信装置100は、自ノード宛てのデータに加え、自ノード宛てのデータではない中継候補データのうち、中継データとして適用する判定基準を満たす中継候補データを中継データとして決定する。換言すると、通信装置100は、受信データ全てを中継データとして中継するのではなく、中継データとして適用する判定基準を満たすデータを中継データとして中継する。この結果、通信装置100は、ネットワーク負荷の増大や無線帯域の逼迫を抑制し、通信の高信頼化を実現することができる。
図2は、実施形態1に係る通信装置100のハードウェア構成例を示す図である。図2に示すように、通信装置100は、CPU(Central Processing Unit)12と、RAM(Random Access Memory)13と、ROM(Read Only Memory)14と、通信I/F15と、I/O16と、センサデバイス17とを有する。各ハードウェアは、システムバス11により互いに接続される。
CPU12は、通信装置100全体の動作を制御する。CPU12は、RAM13等を作業領域として、ROM14等に記憶されたプログラムを実行することで、データの送受信や中継伝送する中継データの判定、センサによる計測、スリープ制御等、通信装置100全体の動作を制御する。RAM13は、計測データや各種処理に関する情報等を一時的に記憶するとともに、ROM14等に格納されたプログラムの実行時の作業領域である。ROM14は、通信装置100による処理を実現するためのプログラムを記憶する。通信I/F15は、無線による通信を制御するインタフェースである。例えば、通信I/F15は、IEEE802.11.a/b/g/n/ac等の無線LAN(Local Area Network)や、Bluetooth(登録商標)、Zigbee(登録商標)、920MHz無線等のLANやPAN(Personal Area Network)に適用可能な様々な無線規格に適合したものを用いることができる。I/O16は、計測データや、センサデバイス17に対する制御信号等の各種情報の入出力を制御する。センサデバイス17は、光や熱、音等をセンシングする各種センサであり、計測データを入力する。計測データは、中継データの一つとして採用され得る。
図3は、実施形態1に係る通信装置100の機能構成例を示すブロック図である。図3に示すように、通信装置100は、受信制御部101と、判定部102と、分類部103と、抽出部104と、測定部105と、決定部106と、センサ制御部107と、送信制御部108と、スリープ制御部109とを有する。上記各部は、これらの一部又は全てがソフトウェア(プログラム)で実現されても良いし、ハードウェアで実現されても良い。
受信制御部101は、通信I/F15による無線信号である受信データの受信処理を制御する。判定部102は、受信データを中継候補データとして、中継候補データが自ノード宛てのデータであるか否かを判定する。より具体的には、判定部102は、受信制御部101から受け付けた受信データを中継候補データとして、中継候補データに関する情報を中継候補リストに追加する。そして、判定部102は、中継候補リストをもとに、各中継候補データに対し自ノード宛てのデータであるか否かを判定する。例えば、自ノード宛てのデータであるか否かについては、受信データに含まれる宛先固有識別子をもとに判定される。宛先固有識別子とは、送信元の通信装置100が宛先として設定したノードのアドレスである。すなわち、受信データに含まれる宛先固有識別子が自身のアドレスと一致するのであれば、該受信データは、自ノード宛てのデータであると判定される。
分類部103は、自ノード宛てのデータであると判定された中継候補データを第1のデータとして分類し、自ノード宛てのデータではないと判定された中継候補データを第2のデータとして分類する。より具体的には、分類部103は、判定部102による判定結果をもとに、自ノード宛てのデータであると判定された中継候補データを、中継データの一つである第1のデータとして分類する。また、分類部103は、判定部102による判定結果をもとに、自ノード宛てのデータではないと判定された中継候補データを、中継データとして適用するか否かの判定処理の対象である第2のデータとして分類する。なお、分類部103は、中継データの一つである第1のデータとして分類した中継候補データについて、中継候補リストから削除する。
抽出部104は、第2のデータから、中継データとするための判定基準を満たす第3のデータを抽出する。より具体的には、抽出部104は、分類部103によって分類された第2のデータを、中継データとして適用するための判定基準を用いた判定処理の対象として、第2のデータのうち判定基準を満たした第3のデータを抽出する。第3のデータは、中継データの一つとして採用される。抽出部104は、中継データの一つである第3のデータとして抽出した中継候補データについて、中継候補リストから削除する。実施形態1では、中継候補リストに含まれる中継候補データのうち、自ノードとの通信品質がより低い送信元のノードから受信された中継候補データが第3のデータとして抽出される。通信品質は、測定部105によって測定される。
測定部105は、自ノードと送信元ノードとの間の通信品質を示すパラメータを測定する。例えば、通信品質は、無線信号の受信電波強度やRSSI(Received Signal Strength Indicator)等の受信電波強度を示すインジケータ、パケットエラーレート、SNR(Signal to Noise Ratio)等を適用することができる。測定部105は、測定した通信品質を中継候補リストに追加する。これにより、抽出部104は、測定部105によって測定された通信品質をもとに、中継候補リストを通信品質が低い順にソートし、通信品質が低いT個(T≧0)のデータを第3のデータとして抽出する。ここで、「T」には、中継判定システム1に含まれる通信装置100の数やネットワーク構成等により、任意の数が設定される。通信品質がより低い中継候補リストの中継候補データを中継データとすることは、自ノードとの空間的な距離がより遠い送信元ノードから受信された受信データを中継データとして適用していくことを意味する。
また、通信品質に関する判定基準を使用する場合は、例えばフェージング等の瞬間的な無線通信品質の劣化によって、第3のデータを好適に抽出できない可能性がある。このため、通信品質は、データ受信時の通信品質だけではなく、過去の通信品質についても考慮するようにしても良い。例えば、通信装置100は、中継候補リストに通信品質を追加し、中継候補リスト自体を削除せずに、次回以降のデータの受信時に、中継候補リストに保持されている送信元ノードのアドレスを表す送信元固有識別子をもとに、過去の通信品質のパラメータも加味して、通信品質の平均値を算出すれば良い。例を挙げると、通信品質の平均値をとる際は、「通信品質の平均値=過去の通信品質の平均値×α+瞬時的な通信品質×(1−α)」のような移動平均を適用することができる。但し、「0<α<1」である。通信品質の平均値をとることにより、瞬時的な無線通信品質の劣化の影響を抑制することができる。
また、親ノードの選定アルゴリズムが無線通信品質の良いノードを優先的に選定するアルゴリズムである場合に、以下のように通信品質を設定することができる。例えば、通信装置100は、自ノードが子ノードによって宛先として選定された回数を表す宛先選定回数と、該子ノードからの受信データを受信した回数を表す受信回数とを、中継候補リストに追加する。そして、通信装置100は、宛先選定回数を受信回数で除算した結果を、通信品質として適用する。かかる通信品質は、上述した通信品質の平均値と等価である。すなわち、無線通信品質の良いノードを優先的に選定するアルゴリズムである場合は、受信回数に対する宛先選定回数の比率が高くなるため、「宛先選定回数/受信回数」を通信品質の平均値と同等とみなして適用することができる。なお、宛先選定回数や受信回数は複数のデータ受信に応じてカウントされるものであるため、中継候補リストは、削除されずに更新(インクリメント)されることになる。
決定部106は、第1のデータと、第3のデータとを中継データとして決定する。より具体的には、決定部106は、分類部103によって分類された第1のデータと、抽出部104によって抽出された第3のデータとを中継データとして決定する。また、中継データには、これらの他にも、センサデバイス17によって計測された計測データも含まれても良い。センサ制御部107は、センサデバイス17による計測を制御し、決定部106による中継データの決定の際に、計測データを入力する。これにより、決定部106は、第1のデータ及び第3のデータに加え、センサ制御部107によって入力された計測データも中継データとして決定する。
送信制御部108は、通信I/F15による無線信号である送信データの送信処理を制御する。送信データは、決定部106によって決定された中継データに対応する。スリープ制御部109は、上述してきた各部のスリープ及びウェイクアップを制御する。スリープ制御部109による処理のタイミングについては後述する。本実施形態は、送受信の機会が限定された省電力動作が可能な無線メッシュネットワークや無線メッシュプロトコルにおける通信高信頼化技術であるが、これに限られることなく、他の無線メッシュネットワークや無線メッシュプロトコルにも適用することができる。
図4は、実施形態1に係る通信装置100の無線通信方法の例を示す図である。図4に示すように、本実施形態では、自ノードが宛先とするノードであって、集約装置200により近い上位のノードを親ノードと定義する。同様に、自ノードを宛先としているノードであって、集約装置200からより遠い下位のノードを子ノードと定義する。また、複数存在する親ノード、子ノードをそれぞれグループ化し、親ノードのグループを親グループと定義し、子ノードのグループを子グループと定義する。同様に、自ノードを含むグループは、自グループと定義する。なお、図4では、親グループを中継階層1とし、自グループを中継階層2とし、子グループを中継階層3として、中継階層Nまで存在する中継判定システム1を例に挙げる。
本実施形態に係る無線通信方法では、時間をスロットと呼ばれる単位に分割した時分割通信を採用し、スロットを束ねたフレームの周期で、各ノードから集約装置200への上り方向の通信が実施される。各ノードには、1フレーム内で1のスロットが送信の機会として割り当てられる。また、集約装置200に対する中継の階層に応じてグループ化され、中継階層が大きい順にスロットが割り当てられる。図4に示す例では、各グループに10スロットが割り当てられ、中継階層Nから順に10スロットずつ割り当てられている。
自グループの各ノード(自ノード)は、子ノードからのデータを中継するために、子グループ用の10スロットで受信待機の状態となる。また、自グループの各ノード(自ノード)は、親ノードと時刻同期をとるためや、各ノード(自ノード)が送信したデータが中継されているか否かを確認するために、親グループ用の10スロットで受信待機の状態となる。自グループの各ノード(自ノード)は、自グループ内においては、自グループに割り当てられた送信スロットで送信待機・送信を実施する。自グループの各ノード(自ノード)は、子グループ、自グループ及び親グループ以外のスロットにおいてスリープすることで省電力化を実現している。すなわち、通信装置100は、子グループ用の受信待機のスロット、自グループ用の送信待機・送信のスロット、親グループ用の受信待機のスロット以外のスロットにおいてスリープし、子グループ用の受信待機のスロットでウェイクアップする。なお、図4では、宛先が予め設定されている経路を中継経路(実線の矢印)とし、経路冗長化による経路を冗長経路(破線の矢印)として表している。
本実施形態に係る通信装置100は、電源が投入されると、無線メッシュネットワークに参加するためのネットワーク参加状態に遷移する。ここでは、ネットワークに参加するために使用されるパラメータの収集や親ノードの決定が行われる。具体的には、通信装置100は、受信待機の状態になり、周囲のノードから送信される無線信号を受信し、中継階層や宛先、送信スロット等の情報を収集する。このとき、通信装置100は、上述した通信品質についても測定を実施する。親ノードを選定する際には、中継階層や受信強度が用いられる。例えば、中継階層が小さく、通信品質が良いノードを、親ノードに選定しても良い。親ノードの選定が完了すると、スリープ状態や送受信可能な送受信の状態に遷移する。スリープ状態では、送受信スロットやセンサデバイス17からの計測データの取得等、その他の処理すべきタスクが存在しない場合に、CPUやマイコン等のプロセッサや、通信I/F15等をスリープ状態にして低消費電力化をはかる。
また、送受信の状態では、上述した子グループ用の受信待機、自グループ用の送信待ち・送信、親グループ用の受信待機の3つの状態が存在する。これらの3つの状態では、子ノードからのデータの受信、親ノードへのデータの送信、親ノードからのデータの受信が実施される。なお、送受信の状態であっても、処理すべきタスクが存在しないのであれば、都度、スリープ状態に遷移して省電力化を実現するようにしても良い。通信装置100は、送受信の状態において、時刻同期のずれやノイズ等により親ノードからのデータを一定回数受信できなくなった場合に、ネットワーク参加状態に再度遷移して、周囲のノードの再探索を実施する。
図5は、実施形態1に係る中継判定システム1で使用される通信フレームの例を示す図である。図5に示すように、通信フレームには、送信元固有識別子と、宛先固有識別子と、フレーム長と、使用スロット番号と、送信データと、0又は1以上の中継データとが含まれる。通信装置100は、データを送信する際に、送信元固有識別子に自身のアドレスを格納し、宛先固有識別子に宛先のアドレスを格納する。上述したように、通信装置100は、データの受信時に、受信データに含まれる宛先固有識別子と自身のアドレスとを比較して、一致する場合は自ノード宛ての受信データであると判定し、一致しない場合は自ノード宛ての受信データではないと判定する。
フレーム長とは、図4に示したフレームの長さを表す情報である。使用スロット番号とは、送信元のノードによるデータの送信時に割り当てられたスロット番号を表す情報である。使用スロット番号と、フレーム長と、予め決められたスロット長とから、フレーム全体と、全体のスロット数とを算出することができる。なお、フレーム長を予め決定しているシステムである場合は、通信フレームから除外することもできる。また、スロット長を通信フレーム内に含めるようにしても良い。
図6は、実施形態1に係る判定基準を用いた処理の例を説明する図である。実施形態1に係る判定基準とは、自ノードとの通信品質がより低いノードから受信された中継候補データを中継データの一つとすることである。図6では、通信装置100としてのノードA、ノードB、ノードC、ノードD、ノードE、ノードF、ノードG及びノードHを例に挙げる。また、ノードA及びノードBは中継階層4に含まれ、ノードC、ノードD及びノードEは中継階層3に含まれ、ノードG、ノードF及びノードHは中継階層2に含まれるものとする。なお、図6では、説明の便宜上、一部の冗長経路(破線の矢印)を省略している。また、実線の矢印は、中継経路を表している。
図6に示すように、中継階層4のノードAは、中継階層3のノードCに対して、データaを中継経路により送信する。中継階層3のノードCは、中継階層2のノードGに対して、ノードAから受信したデータaと、自身で送信するデータcとを中継経路により送信する。中継階層3のノードDは、中継階層2のノードFに対して、データdを中継経路により送信する。また、中継階層3のノードDは、中継階層2のノードGに対して、データdを冗長経路により送信する。中継階層4のノードBは、中継階層3のノードEに対して、データbを中継経路により送信する。中継階層3のノードEは、中継階層2のノードHに対して、ノードBから受信したデータbと、自身で送信するデータeとを中継経路により送信する。また、中継階層3のノードEは、中継階層2のノードGに対して、ノードBから受信したデータbと、自身で送信するデータeとを冗長経路により送信する。
ここで、中継階層2のノードGが送信する中継データについて説明する。中継階層2のノードGは、ノードC、ノードD及びノードEからのデータを受信できている。このため、ノードGにおける中継候補リストには、ノードC、ノードD及びノードEから受信したデータに関する情報が保持されていることになる。このとき、ノードGは、ノードCから受信したデータについて、宛先固有識別子が自ノードのアドレスである、すなわち自ノード宛てのデータであるため、ノードCから受信したデータa及びデータcを、中継データの一つである第1のデータとする。
そして、ノードGは、ノードD及びノードEから受信したデータについて、通信品質に関する判定基準を用いて、中継データとして選定するか否かを判定する。通信品質の測定の結果、ノードGは、ノードEの方がノードDよりも自ノードとの空間的な距離が遠いことから通信品質がより低くなる場合に、N=1の条件において、ノードEから受信したデータb及びデータeを中継データの一つである第3のデータとして抽出する。これらの結果、ノードGは、データa、データc、データb、データe、及び、センサデバイス17等により計測された計測データを含む自身で送信するデータgを、中継データとして上位ノードに対して送信する。すなわち、通信装置100は、空間的な距離がより遠い子ノードから受信したデータを中継データとして送信するため、冗長経路を空間的により拡散することができる。
なお、実施形態1に係る判定基準を用いた処理を実施する前に、通信品質に関する所定閾値と比較して、所定閾値よりも通信品質が高い子ノードから受信されたデータに対し、中継候補リストから削除するようにしても良い。例えば、中継候補となる子ノード全てが自ノードに空間的に近くに存在する場合を想定する。中継候補となる子ノード全てが自ノードに空間的に近くに存在する場合は、冗長経路が空間的に近い経路となるため、経路冗長化の効果が低くなってしまう可能性がある。このため、通信品質に関する所定閾値との比較により、経路冗長化の効果の低下を抑制することができる。
図7は、実施形態1に係る子グループ用の受信待機時の処理の流れの例を示すフローチャートである。図7に示すように、通信装置100は、子グループ用の受信待機が開始された場合に(ステップS101:Yes)、子ノードからのデータを受信したか否かを判定する(ステップS102)。通信装置100は、子グループ用の受信待機が開始されていない場合に(ステップS101:No)、該受信待機の開始待ちの状態となる。このとき、通信装置100は、処理すべきタスクがなければスリープ状態に遷移する可能性がある。
通信装置100は、子ノードからのデータを受信した場合に(ステップS102:Yes)、受信データを中継候補データとして、中継候補リストに保存する(ステップS103)。中継候補リストには、受信データに含まれる送信元固有識別子、宛先固有識別子、子ノードの送信データ及び中継データを含む情報が追加される。一方、通信装置100は、子ノードからのデータを受信していない場合に(ステップS102:No)、ステップS104の処理を実行する。通信装置100は、子グループ用の受信待機が終了したか否かを判定する(ステップS104)。このとき、通信装置100は、子グループ用の受信待機が終了していない場合に(ステップS104:No)、ステップS102の処理を実行する。一方、通信装置100は、子グループ用の受信待機が終了した場合に(ステップS104:Yes)、処理を終了する。すなわち、通信装置100は、子グループ用の受信待機の状態において、子ノードからのデータを受信した場合には、受信データを中継候補データとして、中継候補リストに追加していく処理を継続して実施する。
図8は、実施形態1に係る自グループ用の送信時の処理の流れの例を示すフローチャートである。図8に示すように、通信装置100は、子グループ用の受信待機時に生成された中継候補リストを確認し、宛先固有識別子をもとに自ノード宛てのデータが存在するか否かを判定する(ステップS201)。このとき、通信装置100は、自ノード宛てのデータが存在する場合に(ステップS201:Yes)、自ノード宛てのデータを中継データの一つである第1のデータとして分類する(ステップS202)。一方、通信装置100は、自ノード宛てのデータが存在しない場合に(ステップS201:No)、ステップS204の処理を実行する。そして、通信装置100は、第1のデータとして分類した中継候補データについて、中継候補リストから削除する(ステップS203)。
続いて、通信装置100は、自ノード宛てではないデータを第2のデータとして分類し(ステップS204)、判定基準を満たす第2のデータが存在するか否かを判定する(ステップS205)。判定基準を満たす第2のデータが存在するか否かを判定する処理では、自ノードと子ノードとの瞬時的な通信品質が測定される。また、判定基準は、上述したように、自ノードとの通信品質がより低い子ノードから受信したデータを中継データとすることである。このとき、通信装置100は、判定基準を満たす第2のデータが存在する場合に(ステップS205:Yes)、中継データの一つとして適用する第3のデータを抽出する(ステップS206)。一方、通信装置100は、判定基準を満たす第2のデータが存在しない場合に(ステップS205:No)、ステップS207の処理を実行する。
その後、通信装置100は、中継候補リストを削除し(ステップS207)、第1のデータや第3のデータ、センサデバイス17によって計測された計測データ等を、中継データとして決定する(ステップS208)。そして、通信装置100は、自ノードに割り当てられた送信スロットで、中継データを親ノードに対して送信する(ステップS209)。また、通信装置100は、送信が完了した中継データを破棄する(ステップS210)。これらの後、自グループ用の送信の状態が終了する。
また、上述したように、通信品質は、過去の通信品質のパラメータを加味しても良い。過去の通信品質のパラメータを加味する場合は、中継候補リストの削除は行なわない。過去の通信品質のパラメータを使用する処理の流れを以下で説明する。なお、子グループ用の受信待機時の処理については、図7に示した処理の流れのうち、ステップS103の処理が異なる。具体的には、過去の通信品質のパラメータを加味するため、受信データに対応する中継候補リストが存在すれば更新し、存在しなければ図7と同様に受信データを中継候補データとして中継候補リストに保存する、といった処理になる。また、通信品質の平均値については、この時点で求めるようにしても良いし、以下で説明する中継データの送信時に求めるようにしても良い。
図9は、実施形態1に係る自グループ用の送信時の処理の流れの例を示すフローチャートである。図9に示すように、通信装置100は、子グループ用の受信待機時に更新された中継候補リストを確認し、宛先固有識別子をもとに自ノード宛てのデータが存在するか否かを判定する(ステップS301)。このとき、通信装置100は、自ノード宛てのデータが存在する場合に(ステップS301:Yes)、自ノード宛てのデータを中継データの一つである第1のデータとして分類する(ステップS302)。一方、通信装置100は、自ノード宛てのデータが存在しない場合に(ステップS301:No)、ステップS303の処理を実行する。ここでは、次回以降においても通信品質に関する情報を使用するため、中継候補リストの削除は行なわない。
そして、通信装置100は、自ノード宛てではないデータを第2のデータとして分類し(ステップS303)、判定基準を満たす第2のデータが存在するか否かを判定する(ステップS304)。判定基準を満たす第2のデータが存在するか否かを判定する処理では、過去の通信品質の平均値や、自ノードと子ノードとの瞬時的な通信品質が使用される。また、判定基準は、自ノードとの通信品質がより低い子ノードから受信したデータを中継データとすることである。このとき、通信装置100は、判定基準を満たす第2のデータが存在する場合に(ステップS304:Yes)、中継データの一つとして適用する第3のデータを抽出する(ステップS305)。一方、通信装置100は、判定基準を満たす第2のデータが存在しない場合に(ステップS304:No)、ステップS306の処理を実行する。また、ここでは、次回以降においても通信品質に関する情報を使用するため、中継候補リストの削除は行なわない。
続いて、通信装置100は、第1のデータや第3のデータ、センサデバイス17によって計測された計測データ等を、中継データとして決定する(ステップS306)。そして、通信装置100は、自ノードに割り当てられた送信スロットで、中継データを親ノードに対して送信する(ステップS307)。また、通信装置100は、送信が完了した中継データを破棄する(ステップS308)。これらの後、自グループ用の送信の状態が終了する。なお、宛先選定回数と受信回数とを使用した通信品質を適用する場合は、中継候補リストを削除しないため、図9に示したフローチャートにて実現することができる。
実施形態によれば、通信装置100は、子グループに含まれる複数の子ノードから受信された受信データから、判定基準に従って中継データを抽出して送信するので、ネットワークの負荷の増大や無線帯域の逼迫を抑制し、通信の高信頼化を実現することができる。また、通信装置100は、子ノードからのデータの受信に伴い、中継データを選定して経路を冗長化するので、子ノード側で送信データに何らかの追加をすることなく、自律的に経路を冗長化することができる。
また、通信装置100は、瞬時的な通信品質や過去の通信品質の平均値、また、親ノードの選定アルゴリズムが無線通信品質の良いノードを優先的に選定する場合に使用される受信回数に対する宛先選定回数の比率等を、通信品質のパラメータとして使用するので、種々の状況に応じて、好適な通信品質を適用した中継データの選定を実現することができる。
(実施形態2)
図10は、実施形態2に係る通信装置100aの機能構成例を示すブロック図である。実施形態2では、実施形態1に係る通信装置100の機能構成と同様の構成については同一の符号を付し、その詳細な説明を省略する場合がある。具体的には、以下に説明する抽出部104a以外の各部の機能は、実施形態1に係る各部の機能と同様である。
図10に示すように、通信装置100aは、受信制御部101と、判定部102と、分類部103と、抽出部104aと、測定部105と、決定部106と、センサ制御部107と、送信制御部108と、スリープ制御部109とを有する。上記各部は、これらの一部又は全てがソフトウェア(プログラム)で実現されても良いし、ハードウェアで実現されても良い。
抽出部104aは、第1のデータとの類似度がより低い第2のデータを中継データとする判定基準を満たす第3のデータを抽出する。より具体的には、抽出部104aは、中継候補リストに含まれる中継候補データのうち、既に中継データの一つとされている第1のデータとの類似度がより低い第2のデータを第3のデータとして抽出する。類似度は、同一のデータがどれだけ含まれているかを表す情報である。例えば、データX「a,b,c」と、データY「a,c,d」との類似度については、「a,c」が同一であるため類似度は「2」となる。同様に、データX「a,b,c」と、データZ「b,e,f」との類似度については、「b」が同一であるため類似度は「1」となる。この例では、データXとの類似度がより低いのはデータZという結果になる。
図11は、実施形態2に係る判定基準を用いた処理の例を説明する図である。実施形態2に係る判定基準とは、既に中継データとされている第1のデータとの類似度がより低い中継候補データを中継データの一つとすることである。図11では、通信装置100aとしてのノードA、ノードB、ノードC、ノードD、ノードE、ノードF、ノードG及びノードHを例に挙げる。また、ノードA及びノードBは中継階層4に含まれ、ノードC、ノードD及びノードEは中継階層3に含まれ、ノードG、ノードF及びノードHは中継階層2に含まれるものとする。なお、図12では、説明の便宜上、一部の冗長経路(破線の矢印)を省略している。また、実線の矢印は、中継経路を表している。
図11に示すように、中継階層4のノードAは、中継階層3のノードCに対して、データaを中継経路により送信する。また、中継階層4のノードAは、中継階層3のノードDに対して、データaを冗長経路により送信する。中継階層3のノードCは、中継階層2のノードGに対して、ノードAから受信したデータaと、自身で送信するデータcとを中継経路により送信する。中継階層3のノードDは、中継階層2のノードFに対して、ノードAから受信したデータaと、自身で送信するデータdとを中継経路により送信する。また、中継階層3のノードDは、中継階層2のノードGに対して、ノードAから受信したデータaと、自身で送信するデータdとを冗長経路により送信する。中継階層4のノードBは、中継階層3のノードEに対して、データbを中継経路により送信する。中継階層3のノードEは、中継階層2のノードHに対して、ノードBから受信したデータbと、自身で送信するデータeとを中継経路により送信する。また、中継階層3のノードEは、中継階層2のノードGに対して、ノードBから受信したデータbと、自身で送信するデータeとを冗長経路により送信する。
ここで、中継階層2のノードGが送信する中継データについて説明する。中継階層2のノードGは、ノードC、ノードD及びノードEからのデータを受信できている。このため、ノードGにおける中継候補リストには、ノードC、ノードD及びノードEから受信したデータに関する情報が保持されていることになる。このとき、ノードGは、ノードCから受信したデータについて、宛先固有識別子が自ノードのアドレスである、すなわち自ノード宛てのデータであるため、ノードCから受信したデータa及びデータcを、中継データの一つである第1のデータとする。
そして、ノードGは、ノードD及びノードEから受信したデータについて、第1のデータとの類似度に関する判定基準を用いて、中継データとして選定するか否かを判定する。図11に示した例では、第1のデータであるノードCから受信したデータ「a,c」と、第2のデータであるノードDから受信したデータ「a,d」との類似度、第1のデータであるノードCから受信したデータ「a,c」と、第2のデータであるノードEから受信したデータ「b,e」との類似度それぞれが求められる。第1のデータであるノードCから受信したデータ「a,c」と、第2のデータであるノードDから受信したデータ「a,d」との類似度は、「1」となる。第1のデータであるノードCから受信したデータ「a,c」と、第2のデータであるノードEから受信したデータ「b,e」との類似度は、「0」となる。
類似度を求めた結果、ノードGは、ノードEから受信したデータの方がノードDから受信したデータよりも、ノードCから受信した(既に中継データとされた)データとの類似度がより低くなる場合に、N=1の条件において、ノードEから受信したデータb及びデータeを中継データの一つである第3のデータとして抽出する。これらの結果、ノードGは、データa、データc、データb、データe、及び、センサデバイス17等により計測された計測データを含む自身で送信するデータgを、中継データとして上位ノードに対して送信する。すなわち、通信装置100aは、自身が中継するデータに対し、より異なるデータを中継データとすることで、経路の冗長性をより高くすることができる。
図12は、実施形態2に係る自グループ用の送信時の処理の流れの例を示すフローチャートである。図12に示すように、通信装置100aは、子グループ用の受信待機時に生成された中継候補リストを確認し、宛先固有識別子をもとに自ノード宛てのデータが存在するか否かを判定する(ステップS401)。このとき、通信装置100aは、自ノード宛てのデータが存在する場合に(ステップS401:Yes)、自ノード宛てのデータを中継データの一つである第1のデータとして分類する(ステップS402)。一方、通信装置100aは、自ノード宛てのデータが存在しない場合に(ステップS401:No)、ステップS404の処理を実行する。そして、通信装置100aは、第1のデータとして分類した中継候補データについて、中継候補リストから削除する(ステップS403)。
続いて、通信装置100aは、自ノード宛てではないデータを第2のデータとして分類し(ステップS404)、判定基準を満たす第2のデータが存在するか否かを判定する(ステップS405)。判定基準を満たす第2のデータが存在するか否かを判定する処理では、既に中継データの一つとして分類した第1のデータと、自ノード宛てではない第2のデータとの類似度が求められる。また、判定基準は、上述したように、第1のデータとの類似度がより低い第2のデータを中継データとすることである。このとき、通信装置100aは、判定基準を満たす第2のデータが存在する場合に(ステップS405:Yes)、中継データの一つとして適用する第3のデータを抽出する(ステップS406)。一方、通信装置100aは、判定基準を満たす第2のデータが存在しない場合に(ステップS405:No)、ステップS407の処理を実行する。なお、第1のデータと第2のデータとの類似度を求める際に、第1のデータが存在しない場合には、実施形態1で説明した通信品質を用いた処理を行っても良い。
その後、通信装置100aは、中継候補リストを削除し(ステップS407)、第1のデータや第3のデータ、センサデバイス17によって計測された計測データ等を、中継データとして決定する(ステップS408)。そして、通信装置100aは、自ノードに割り当てられた送信スロットで、中継データを親ノードに対して送信する(ステップS409)。また、通信装置100aは、送信が完了した中継データを破棄する(ステップS410)。これらの後、自グループ用の送信の状態が終了する。
実施形態によれば、通信装置100aは、子グループに含まれる複数の子ノードから受信された受信データに対し、自ノードの送信データとの類似度を求め、類似度がより低い受信データを中継データとして適用する判定基準に従って、中継データを抽出して送信するので、ネットワーク負荷の増大や無線帯域の逼迫を抑制し、通信の高信頼化を実現することができる。
(実施形態3)
図13は、実施形態3に係る通信装置100bの機能構成例を示すブロック図である。実施形態3では、実施形態1に係る通信装置100の機能構成と同様の構成については同一の符号を付し、その詳細な説明を省略する場合がある。具体的には、以下に説明する抽出部104b以外の各部の機能は、実施形態1に係る各部の機能と同様である。
図13に示すように、通信装置100bは、受信制御部101と、判定部102と、分類部103と、抽出部104bと、測定部105と、決定部106と、センサ制御部107と、送信制御部108と、スリープ制御部109とを有する。上記各部は、これらの一部又は全てがソフトウェア(プログラム)で実現されても良いし、ハードウェアで実現されても良い。
抽出部104bは、親ノードが前回送信した中継データに、自ノードの中継データが含まれているか否かを表す中継情報を用いて、自ノードの中継データが含まれていないことを表す中継情報を有する第2のデータを中継データとするための判定基準を満たす第3のデータを抽出する。実施形態3では、各通信装置100bの送信データに中継フラグが追加される。中継フラグとは、親ノードが前回送信した中継データに、自ノードの中継データが含まれているか否かを表すフラグである。すなわち、親ノードが前回送信した中継データに、自ノードの中継データが含まれていない場合に、次回のデータ送信時に親ノードに中継してもらうことで、経路を冗長化することができる。
かかる中継フラグは、親グループ用の受信待機の状態において更新される。例えば、通信装置100bは、親グループ用の受信待機の状態が開始されると、中継フラグをFalseに初期化する。中継フラグがFalseの場合は、親ノードが前回送信した中継データに、自ノードの中継データが含まれていないことを指す。そして、通信装置100bは、親ノードからデータを受信した際に、親ノードが前回送信した中継データに、自ノードの中継データが含まれているか否かを確認し、含まれている場合には中継フラグをTrueに更新する。なお、中継フラグを次回のデータ送信の際に追加することで、親ノードに対し、前回のデータ送信時に自ノードの送信データが中継されなかったことを通知することができる。
図14は、実施形態3に係る中継判定システム1で使用される通信フレームの例を示す図である。実施形態3では、子グループ用の受信待機の状態において、中継候補リストに中継フラグを含む以下の情報を保持する。図15に示すように、通信フレームには、送信元固有識別子と、宛先固有識別子と、フレーム長と、使用スロット番号と、中継フラグと、送信データと、0又は1以上の中継データとが含まれる。
抽出部104bによって用いられる判定基準は、中継フラグを含む中継候補リストにおいて、中継フラグがFalseのデータを中継データとすることである。これにより、中継フラグがFalseであるデータを受信した親ノードは、中継データとして選定し、経路を冗長化することで、受信が失敗してしまう可能性が高いノードからのデータを冗長経路によって中継することができる。
図15は、実施形態3に係る中継フラグの更新処理の流れの例を示すフローチャートである。図15に示すように、通信装置100bは、親グループ用の受信待機の状態が開始されると、中継フラグをFalseに初期化する(ステップS501)。そして、通信装置100bは、親ノードからのデータを受信したか否かを判定する(ステップS502)。このとき、通信装置100bは、親ノードからのデータを受信した場合に(ステップS502:Yes)、親ノードが前回送信した中継データに、自ノードの送信データが含まれているか否かを判定する(ステップS503)。一方、通信装置100bは、親ノードからのデータを受信していない場合に(ステップS502:No)、ステップS505の処理を実行する。
そして、通信装置100bは、親ノードが前回送信した中継データに、自ノードの送信データが含まれている場合に(ステップS503:Yes)、中継候補リストに含まれる中継フラグをTrueに更新する(ステップS504)。一方、通信装置100bは、親ノードが前回送信した中継データに、自ノードの送信データが含まれていない場合に(ステップS503:No)、ステップS505の処理を実行する。
通信装置100bは、親グループ用の受信待機の状態が終了した場合に(ステップS505:Yes)、処理を終了する。また、通信装置100bは、親グループ用の受信待機の状態が終了していない場合に(ステップS505:No)、ステップS502の処理を実行する。すなわち、通信装置100bは、親グループ用の受信待機の状態において、中継フラグをFalseに初期化し、親ノードからのデータを受信すると、親ノードが前回送信した中継データに自ノードの送信データが含まれていなければ、中継フラグを更新せずにFalseのままとする。
また、中継フラグは、親グループ用の受信待機の状態とは異なるタイミングで更新されても良い。具体的には、通信装置100bは、親グループ用及び子グループ用のスロットの他に、親ノードが前回のフレームにおいて自ノードのデータを中継できなかったことを判定した場合に、中継できなかったことを通知するための受信スロットを、親ノード側で確保する。かかる受信スロットを中継失敗通知用受信スロットと呼ぶ。通信装置100bは、中継失敗通知用受信スロットにおいて受信された子ノードのデータを、同一のフレームにおける送信スロットで中継伝送する。つまり、中継失敗通知用受信スロットにおける受信の有無を、中継フラグのFalse/Trueとして設定する。
図16A及び図16Bは、実施形態3に係る通信装置100bの無線通信方法の例を示す図である。図16A及び図16Bに示すように、中継失敗通知用受信スロットは、中継階層2を自グループとすると、中継階層3の子グループに割り当てられた受信スロットよりも前の時間に割り当てられる。すなわち、中継失敗通知用受信スロットは、フレーム内で中継できなかったデータを送信することを目的として割り当てられている。図16Aでは、中継階層2の自グループのノード全てに、1の受信スロットを割り当てている。図16Bでは、中継階層2の自グループのノードに、中継階層4のグループに割り当てられた受信スロット群を割り当てている。
図16Aに示した例について、中継階層4のグループに割り当てられた受信スロットの何れかを、中継失敗通知用受信スロットとして割り当てている。すなわち、中継階層がLであるノードにとっては、中継階層L+2以上のグループに割り当てられたスロットの何れかが割り当てられれば良い。図16Aでは、中継階層2であるノードC、ノードD及びノードEは、中継階層4のグループに割り当てられた受信スロットの先頭スロットを中継失敗通知用受信スロットとして、受信待機を実施する。中継失敗通知用受信スロットで受信されたデータは、中継フラグをFalseとして、自ノード宛てのデータであるか否かに関わらず、中継データとして中継伝送される。ノードC、ノードD及びノードEに対して子ノードであるノードF及びノードGは、前回のフレームで親ノードが自データを中継していなかった場合に、次のフレームの親ノード及び親グループの中継失敗通知用受信スロットでウェイクアップしてデータを伝送する。図16Aに示した例の場合、子ノードは、ブロードキャストによりデータを伝送することで、親グループが受信可能な距離に存在するノード全てに対して経路の冗長化を依頼することができる。このとき、前回のフレームで中継されなかったデータを再送しても良い。
図16Bに示した例について、中継階層4のグループに割り当てられた受信スロット群を、中継失敗通知用受信スロットとして割り当てている。図16Bでは、中継階層2であるノードC、ノードD及びノードEは、中継階層4のグループに割り当てられた受信スロット群を中継失敗通知用受信スロットとして、受信待機を実施する。また、ノードC、ノードD及びノードEに対して子ノードであるノードF及びノードGは、中継階層4のグループの何れかのスロットを中継失敗時に使用することができる。
図16Aに示すように、1のスロットを割り当てる場合は、複数の子ノードが1の中継失敗通知用受信スロットを使用するため、親ノードにとっては受信待機の時間を抑制することができ、消費電力を抑制することができる。図16Bに示すように、スロット群を割り当てる場合は、複数の子ノードが中継失敗した場合であっても、それぞれ別のスロットを使用して送信することで、衝突することなく親グループのノードへデータを送信することができる。中継失敗通知用受信スロットの割り当てについては、搭載されるアプリケーションやシステムにおいて切り替えることができる。なお、中継失敗通知用受信スロットを使用することによる、通常のデータ通信への干渉の発生を抑制するために、例えば、通常のデータ通信とは異なる周波数、チャネルを用いることが好ましい。
図17は、実施形態3に係る中継フラグの更新処理の流れの例を示すフローチャートである。図17に示すように、通信装置100bは、中継失敗通知用受信スロットが開始されると、中継フラグをFalseに初期化する(ステップS601)。そして、通信装置100bは、親ノードからのデータを受信した場合に(ステップS602:Yes)、親ノードが前回送信した中継データに、自ノードの送信データが含まれているか否かを判定する(ステップS603)。一方、通信装置100bは、親ノードからのデータを受信していない場合に(ステップS602:No)、ステップS605の処理を実行する。
そして、通信装置100bは、親ノードが前回送信した中継データに、自ノードの送信データが含まれている場合に(ステップS603:Yes)、中継候補リストに含まれる中継フラグをTrueに更新する(ステップS604)。一方、通信装置100bは、親ノードが前回送信した中継データに、自ノードの送信データが含まれていない場合に(ステップS603:No)、ステップS605の処理を実行する。
通信装置100bは、中継失敗通知用受信スロットが終了した場合に(ステップS605:Yes)、処理を終了する。また、通信装置100bは、中継失敗通知用受信スロットが終了していない場合に(ステップS605:No)、ステップS602の処理を実行する。
実施形態によれば、通信装置100bは、親ノードが前回送信した中継データに、自ノードの中継データが含まれているか否かにより更新される中継フラグをもとに、自ノードの中継データが含まれていないことを表す中継フラグである場合に、対応するデータを中継データとして選定させるので、データの受信失敗の可能性がより高いノードからのデータを冗長経路によって中継することができる。
上記文書中や図面中等で示した処理手順、制御手順、具体的名称、各種のデータやパラメータ等を含む情報は、特記する場合を除いて任意に変更することができる。また、図示した装置の各構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散又は統合の具体的形態は、図示のものに限られず、その全部又は一部を各種の負担や使用状況等に応じて、任意の単位で機能的又は物理的に、分散又は統合することができる。
例えば、上述してきた実施形態を組み合わせた処理により中継データの判定を実現することができる。以下に、中継データの判定の順序の例を説明する。
(1)中継候補リストにおいて中継フラグがFalseであるデータを中継データとする
(2)(1)を満たす中継データの数がNよりも小さい場合、すなわち送信可能な中継データの数に余裕がある場合に、第1のデータと、残りの中継候補リストのデータとの類似度を求め、類似度がより低いデータを中継データとする
(3)(2)を満たす中継データの数がNよりも小さい場合に、残りの中継候補リストのデータに対応する子ノードとの間の通信品質がより低いデータを中継データとする
これらの結果、前回のフレームで中継されなかったデータを優先的に中継させつつ、類似度のより低いデータを中継することで、経路の冗長性をより高くすることができる。
また、上記実施形態に係る通信装置100は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることで実現することが可能である。実行されるプログラムは、上述してきた各機能を含むモジュール構成となっている。また、実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供しても、ROM等に予め組み込んで提供しても良い。
また、上述した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。また、各実施形態は、内容を矛盾させない範囲で適宜組み合わせることが可能である。また、各実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。