(A)第1の実施形態
以下では、本発明に係る無線通信装置、プログラム及び方法の第1の実施形態を、図面を参照しながら詳細に説明する。
(A−1)第1の実施形態の構成
[システム全体構成]
図1は、第1の実施形態に係る無線通信システム(ネットワーク)の全体構成の一例を示す全体構成図である。
図1において、第1の実施形態に係る無線通信システムNTは、基地局(BS)10と、複数(図1では4台)の移動局(ノード)20(20−1〜20−4)とを有する。
無線通信システムNTでは、基地局10を「根」とし、各ノード20を「節」、「葉」としたツリー構造の無線マルチホップネットワークを構成している。基地局10及びノード20の数は限定されない。
以下では、基地局10及び各ノード20を総じて「局」と呼ぶこともある。また、各ノード20が、基地局10を最終的な宛先としてデータパケットを送信する際に、次に転送するノードを「親ノード」と呼ぶ。つまり、自ノード20から基地局10までの経路において、親ノードは、自ノード20よりも基地局10に近い側にある。言い換えれば、親ノードの基地局10までのホップ数は、自ノードのそれよりも少ないものとなる。
図1において、各局10及び20を結ぶ直線は、2つの局同士が通信可能であることを示している。無線マルチホップネットワークを構成している各局(各ノード)は、例えば、IEEE802.15.4を利用した通信に対応可能なものとすることができる。なお、無線通信方式は、各局間で無線マルチホップ通信が可能であれば、IEEE802.15.4に限定されない。
無線通信システムNTを構成する基地局10及び各ノード20が対応する無線通信の物理使用については限定されないが、例えば、種々の移動体通信網と同様の物理構成を適用することができる。また、無線通信システムNTを構成する基地局10及び各ノード20には、TDMAフレーム上のタイムスロットが割り当てられているものとして説明する。
基地局10及び各ノード20には、それぞれネットワーク上で固有のアドレス(例えば、MACアドレス、ショートアドレス、IPアドレス等)が割り当てられている。
[基地局及び移動局]
基地局10は、固定配置された無線通信装置(無線機)であり、無線通信システムNT全体を管理するものである。基地局10を固定局とも呼ぶ。基地局10は、マルチホップ通信により、各ノード20からデータを含む情報(パケット)を受信してデータを収集する。なお、基地局10が収集したデータについては、基地局10において保存するようにしてもよいし、若しくは、基地局10と無線接続又は有線接続する情報処理装置に提供されるようにしてもよいが、この実施形態は収集データの利用については特に限定しない。
各ノード20(20−1〜20−4)は、移動体に取り付けられた無線通信装置(無線機)である。各ノード20は、センサを備えており、センサからセンサデータを取得し、そのセンサデータを含むパケットを、基地局10を最終的な宛先としてマルチホップ通信する。また、無線通信装置が取り付けられる移動体は、特に限定されないが、例えば、人体、自転車、自動車、可動型ロボット、無人航空機等の移動可能なものを広く適用することができる。
[無線通信装置]
図2は、第1の実施形態に係る無線通信装置100の内部構成を示す内部構成図である。
図2の無線通信装置100は、基本的には、基地局10と各ノード20のいずれにも搭載することができるものであるが、ここでは、無線通信装置100が各ノード20に搭載されるものであることを想定して説明する。
図2において、第1の実施形態に係る無線通信装置100は、アンテナ部101、無線信号送受信部102、データ処理部103、ネットワーク管理部104、親ノード決定部105、アドレス生成部106、中継処理判定部107、送信タイミング判定部108、パケット生成部109を有する。
無線通信装置100は、CPU、ROM、RAM、EEPROM、入出力インタフェース等の装置や通信手段(無線インターフェース)等を搭載している。無線通信装置100における各種機能は、CPU(コンピュータ)が処理プログラム(無線通信プログラム)を実行することにより実現される。また無線通信プログラムがインストールされることによりシステム構築されるようにしてもよく、その場合でも、無線通信プログラムは図2に示す各要素として表すことができる。
また、無線通信装置100は外部システム110と接続している。この外部システム110は、例えばセンサなどを適用できる。外部システム110は、センサに限定されるものではなく、局の無線通信機能以外の機能も含む概念であり、例えばアプリケーション等とするようにしてもよい。この実施形態では、説明を容易にするために、外部システム110がセンサであることを想定して説明する。
アンテナ部101は、ノードとノードとの間で、またはノードと基地局との間で無線信号を送受信するものである。
無線信号送受信部102は、アンテナ部101を用いて無線信号を送受信する処理を行なう。具体的には、無線信号送受信部102は、アンテナ部101により捕捉された電波の受信信号を復調し、その受信信号に含まれているパケットを受信する。そして、パケットに含まれているデータをデータ処理部103に与える。また、無線信号送受信部102は、パケット生成部109から取得したパケットを含む信号を変調し、その変調した信号をアンテナ部101に与える。
データ処理部103は、無線信号送受信部102により受信されたパケットを処理する。例えば、データ処理部103は、無線信号送受信部102から得られたパケットの種類を判別する処理を行なう。また、データ処理部103は、受信したパケットのデータが、ネットワークに関する情報である場合には、その情報をネットワーク管理部104に与える。また、受信したパケットのデータが、外部システム110に与えるべきデータ(例えば基地局10からのセンサデータ送信指示コマンド等のデータ)である場合には、当該データを外部システム110に与える。
ネットワーク管理部104は、データ処理部103からネットワークに関する情報を取得すると、マルチホップ無線通信に関するネットワーク処理を行なう。例えば、ネットワーク管理部104は、データ処理部103から制御パケットに関する情報を取得した場合には、その制御パケットに関する情報を親ノード決定部105に与える。また、ネットワーク管理部104は、データ処理部103から他ノードが送信したデータパケットに関する情報を取得した場合には、そのデータパケットに関する情報を中継処理判定部107に与える。また、ネットワーク管理部104は、データ処理部103から、データ衝突回避に係るキャリアセンスの判定結果を取得した場合には、そのキャリアセンスの判定結果を送信タイミング判定部108に与える。
また、ネットワーク管理部104は、自ノードがデータパケットを送信する際や、他ノードのデータパケットを中継する際には、送信タイミング判定部108から指定された時刻に、アドレス生成部106により生成されたアドレス宛に、データパケットを送信するようパケット生成部109に指示する。
親ノード決定部105は、ネットワーク管理部104から制御パケットに関する情報を取得すると、その制御パケットに関する情報を格納し、制御パケットに関する情報に基づいて複数の親ノードを決定する。親ノード決定部105は、決定した複数の親ノードに関する情報をアドレス生成部106に与える。
アドレス生成部106は、親ノード決定部105から複数の親ノードのそれぞれに関する情報を取得し、それら親ノードに関する情報に基づいて、自ノードのデータパケットを送信するためのアドレス情報と、他ノードのデータパケットを中継するためのアドレス情報を生成する。また、アドレス生成部106は、生成したアドレス情報を、ネットワーク管理部104に与える。
中継処理判定部107は、ネットワーク管理部104から取得した、他ノードが送信したデータパケットに関する情報に基づいて、自ノードが受信パケットの中継処理を行なうか否かを判定し、その判定結果を、送信タイミング判定部108に与える。
送信タイミング判定部108は、自ノードがデータパケットを送信する送信タイミングを決定し、データパケットを送信する時刻をネットワーク管理部104に与える。ここで、自ノードがデータパケットを送信する場合には、自ノードにおいて獲得したセンサデータを含むパケットを送信する場合と、他ノードから受信したデータパケットを更に他ノードに中継する場合とがある。送信タイミング判定部108は、中継処理判定部107から、他ノードにデータパケットを中継するか否かの判定結果に基づいて中継するか否かを判断し、中継する時刻を決定する。
パケット生成部109は、ネットワーク管理部104から送信時刻とアドレス情報を取得し、データを含むパケットを生成し、そのデータパケットを無線信号送受信部102に与える。例えば、自ノードで獲得したセンサデータを送信する場合、パケット生成部109は、外部システム110から取得したセンサデータに、ネットワーク管理部104から取得したアドレス情報を付与してパケットを生成する。そして、ネットワーク管理部104から取得した送信時刻に、データパケットを無線信号送受信部102に与える。また例えば、他ノードからのデータパケットを中継する場合、パケット生成部109は、ネットワーク管理部104から取得した他ノードのデータに、ネットワーク管理部104から取得したアドレス情報を付与してパケットを生成する。そして、ネットワーク管理部104から取得した送信時刻に、データパケットを無線信号送受信部102に与える。
[TDMAフレーム構造]
図3は、第1の実施形態に係る無線通信システムNTで用いられるTDMAフレームの構造を説明する説明図である。
図3では、1サイクル分のTDMAフレームは複数のスロット構成となっている。ここでは、無線通信システムNTに参加するノードがn台である場合を例示する。その場合、TDMAフレームは、時系列順に、n個のスロット(TS1、TS2、…、TSi(1≦i≦n)、…TSn)が設けられている。
スロットとは、あるノード(以下、「スロットオーナー」とも呼ぶ。)のデータ送信期間を表している。また各スロットには、当該スロットが割り当てられているノード(スロットオーナー)のデータを、他ノードが中継する際に、どのホップ数のノードがデータ伝送するかを表すデータ中継期間が設けられている。図3では、データ中継期間を「ホップk」等で表記している。各スロットに設けられるデータ中継期間は、ホップ数の大きいノードから順番にデータ伝送するものとする。
例えば、スロットTSiが割り当てられたノードは、スロットTSiのスロットオーナーであり、スロットTSiで表すデータ送信期間に、自ノードのデータを、基地局10を最終宛先としてマルチホップで送信する。このとき、スロットオーナーが送信したデータを転送しようとする他ノードは、自身のホップ数と各スロットのデータ中継期間とに基づいて、スロットオーナーからのデータを中継する。
つまり、スロットオーナーからのデータを転送しようとする各ノードに関して、自身のホップ数kであるノードは、データ中継期間「ホップk」のタイミングで、次の転送先ノード(すなわち、ホップ数k−1のノード)にデータ転送する。同様に、自身のホップ数k−1のノードは、データ中継期間「ホップk−1」のタイミングで、次の転送先ノード(すなわち、ホップ数k−2のノード)にデータ転送する。また、自身のホップ数「1」のノードは、データ中継期間「ホップ1」のタイミングで、基地局10にデータ転送する。
上述したように、各スロットには、マルチホップ中継時に、どのホップ数のノードがデータ伝送するかを表すデータ中継期間が設けられている。例えばデータ中継期間「ホップk」では、kホップのノードからk−1ホップのノードへの通信が行なわれ、データ中継期間「ホップ1」では、1ホップのノードから基地局10への通信が行なわれる。
無線通信システムNTでは、基地局10を起点としたマルチホップの最大数(最大ホップ数)が定められているものとする。その場合、各スロットには、最大ホップ数に応じたデータ中継期間が設けられているものとする。
そうすると、無線通信システムNTにおいて、事前に規定されている最大ホップ数(図3ではkホップ)に、スロットオーナーのホップ数が満たない場合、スロット開始時からスロットオーナーのホップの時間まではパケットが送信されないアイドル時間となる。
例えば、最大ホップ数が「4ホップ」とするシステムにおいて、スロットオーナーのホップ数が「2」であるとき、当該スロット中の「ホップ4」、「ホップ3」の期間はパケットが送信されないことになり、2ホップ分のデータ中継期間にて、スロットオーナーからその親ノードへのパケットの送信が行なわれる。
(A−2)第1の実施形態の動作
次に、第1の実施形態に係る無線通信システムNTにおける無線通信処理の動作を、図面を参照しながら詳細に説明する。
以下では、無線通信システムNTが、図1に例示するネットワークトポロジで構成されているものとする。例えば、無線通信システムNTに参加するノード数が4台であるものとする。
図1において、円は基地局10又はノード20を表している。その円中のアルファベットはノード識別情報を表しており、カッコ内の数字はホップ数を表している。例えば、図1において、円中の「A」はノード識別情報(ノードID)を表しており、「(1)」はノードAのホップ数を表している。また、図1において、ノード間を結んでいる実線の両端のノードが通信可能であることを表している。
以下の動作説明では、例えば、ノード20のうち、あるノードを指して説明する場合には「ノードA」等と表記して説明する。
この実施形態に係る無線通信システムNTでは、ネットワークトポロジを構築して経路情報を構築する経路構築期間における処理と、各ノード20が基地局10を最終的な宛先としてデータパケットを送信するデータ送信期間における処理とに大別することができる。したがって、以下では、経路構築期間における処理と、データ送信期間における処理と区別して説明する。
[経路構築期間]
経路構築期間では、基地局10を含む全てのノード20が、ネットワークトポロジを構築するためのプロトコルにしたがって、制御パケットを送受信する。これにより、各ノード20は、無線通信システムNTにおける経路等を決定し、自身のホップ数と、親ノードを決定することができる。
なお、無線通信システムNTを構成する基地局10及び各ノード20には、固有のアドレス(例えば、MACアドレス、ショートアドレス等)が割り当てられている。
以下では、基地局10と各移動局20とにより構成されるネットワークの構成方法を説明する。
まず、基地局10は、所定のタイミングで、ネットワークトポロジを構築するプロトコルの制御パケットを送信する。また、制御パケットを受信した各ノード20は、ランダム時間後に制御パケットを送信する。このようにすることで、無線通信システムNTの全体に制御パケットが行き渡ることになる。
なお、ネットワークトポロジの構築に係るプロトコルは、特に限定されるものではなく、様々なプロトコルを適用することができる。例えば、フラッディングベースのプロトコルを用い、全ノードが自身の制御パケットを送信するようにしてもよいし、AODV(Ad hoc On−Demand Distance Vector)プロトコルを用いてもよい。
例えば、基地局10が制御パケットを送信すると、基地局10の電波到達範囲内に存在しているノードAとノードBが、直接制御パケットを受信する。
制御パケットを受信した各ノード20では、無線信号送受信部102が制御パケットを受信し、制御パケット受信時の受信電力値を計測する。また、無線信号送受信部102は、受信した制御パケットに含まれているデータをデータ処理部103に与える。
データ処理部103は、無線信号送受信部102からのパケットに含まれているパケット種別に関する情報に基づいて、当該受信パケットが制御パケットであることを判断する。そうすると、データ処理部103は、受信した制御パケットに含まれているデータを、ネットワーク管理部104に与える。
ネットワーク管理部104は、制御パケットの内容を解析して、制御パケットに含まれている隣接ノードに関する情報を抽出して、隣接ノードに関する情報を親ノード決定部105に与える。例えば、ネットワーク管理部104は、受信した制御パケットから、隣接ノードのホップ数に関する情報、通信路環境に関する情報などを抽出して、これら隣接ノードのホップ数に関する情報、通信路環境に関する情報等を、親ノード決定部105に与える。
ここで、制御パケットには、隣接ノードに関する情報が含まれており、少なくとも、隣接ノードのホップ数に関する情報、通信路環境に関する情報等が含まれている。例えば、制御パケットには、当該制御パケットを送信した基地局10や各ノードの識別情報(例えば、アドレス情報、ノードIDなどを含む情報)がそのまま保持され、最新の送信先ノードの識別情報が付与される。これにより、制御パケットを送信した複数の送信元ノードの識別情報が保持されると共に、最新の送信先ノードの識別情報と基地局10までのホップ数とが付与される。したがって、制御パケットを受信したノードは、隣接ノードのホップ数を知ることができる。
また、制御パケットには、リンクコストやパスコスト等のように通信路環境に関する情報が含まれる。ノード20から基地局10宛にデータを送信する際のネットワークの品質は、どの枝を用いるかによって変わる。従って、各枝に対して通信品質を評価した評価値としてリンクコストを付与するようにしてもよい。例えば、通信品質が良いもの程、リンクコストの値は小さく設定される。そして、各移動局から基地局までのリンクコストの和であるパスコストを導出し、パスコストが小さい経路を用いるようにしてもよい。なお、基地局10は自らのパスコストを「0」とし、基地局10からの信号を直接受信できたノード20は、基地局10を「親」として、自ノード20と基地局10との間の通信品質をパスコストとする。
親ノード決定部105は、受信した複数の制御パケットのうちから、事前に定められたアルゴリズムに従って、2台の親ノードを決定する。
例えば、無線通信システムNTの全体に制御パケットをフラッディングする際、制御パケットを受信した各ノード20が、当該受信した制御パケットを送信することになる。そうすると、あるノード20は、自ノード20の近傍に存在している複数の隣接ノード20から制御パケットを受信することが可能となる。例えば、図1において、ノードCは、少なくともノードA、Bから制御パケットを受信することができる。このように、親ノード決定部105は、受信した制御パケットに含まれる情報に基づいて、2台の親ノードを決定する。
ここで、親ノード決定アルゴリズムは、様々なものを適用するようにしてもよい。例えば、親ノード決定部105は、制御パケットに含まれる情報に基づいて、隣接ノードのホップ数に関する情報に基づいて、基地局10までのホップ数が少ない隣接ノードを親ノードの候補とする。そして、その親ノードの候補の中から、制御パケットの受信時の受信信号強度の高いものから順番に、2台の親ノードを決定するようにしてもよい。つまり、受信信号強度が高いということは、制御パケットを送信したノードと自ノードとの間で通信路環境が良好であると考えられるので、これにより、通信路環境の良好な2台の親ノードを決定することができる。
親ノード決定部105は、決定した2台の親ノードのそれぞれの識別情報(例えば、アドレス情報、ノードID等)をアドレス生成部106に与える。
アドレス生成部106は、親ノード決定部105から取得した、2台の親ノードの各識別情報を、ブルームフィルタに掛けることで送信アドレスを生成する。ここで、ブルームフィルタとは、それぞれのノードを識別できるビット列をハッシュ関数により生成するフィルタである。
[アドレス生成処理]
ここでは、図4、図5を用いて、アドレス生成部106によるアドレス生成処理を説明する。
図4は、第1の実施形態のブルームフィルタに係るハッシュテーブル51の構成を示す構成図である。図5は、第1の実施形態に係るアドレス生成部106が生成する送信アドレスのビット列を説明する説明図である。
アドレス生成部106は、図4に例示するハッシュテーブル51を保持しており、ハッシュテーブル51を参照して、2台の親ノードの各識別情報を、ブルームフィルタに掛けることで送信アドレスを生成する。
図4において、ブルームフィルタに係るハッシュテーブル51は、無線通信システムNTに参加する各ノードA〜Dに対するものであり、入力とハッシュ値とを対応付けたテーブルである。
なお、図4のハッシュテーブル51は、無線通信システムNTを構成する基地局10及び各ノード20が保持しているものである。このハッシュテーブル51を各ノード20に周知する方法は、様々な方式を適用することができ、特に限定されるものではない。例えば、各ノード20が無線通信システムNTに参加するときに、基地局10が全てのノード20に行き渡るようにフラッディングすることにより周知しても良いし、制御パケットにハッシュテーブル51を含めるようにしてもよい。
図4において、入力は、各ノードA〜Dの固有値(例えば、図4ではノードID)を表しており、ハッシュ関数の値をh1、h2、h3の3種類用意している。
ここで、図4のハッシュテーブル51のハッシュ関数の値は、送信アドレスのビット列のうち、何ビット目を「1」とするかを表している。
例えば、アドレス生成部106が生成する送信アドレスが、8ビットで構成されるものとする。また、図1のノードCでは、親ノード決定部105が、2台の親ノードとして、ノードAとノードBを決定したものとし、その場合、ノードCのアドレス生成部106は、図4のハッシュテーブル51を参照して、送信アドレスを生成する場合を例示する。
このとき、2台の親ノードがノードAとノードBであるため、アドレス生成部106は、図4を参照し、入力「ノードA」に対応するハッシュ値が「1ビット目」、「3ビット目」、「8ビット目」であり、入力「ノードB」のハッシュ値が「1ビット目」、「4ビット目」、「6ビット目」であることを知る。そうすると、アドレス生成部106は、8ビットで構成する送信アドレスのうち、1、3、4、6、8ビット目の値を「1」とする。
そうすると、図5に示すように、アドレス生成部106により生成される送信アドレスは、1ビット目から順に、[10110101]のビット列ができる。
アドレス生成部106は、生成されたビット列を送信アドレスとしてネットワーク管理部104に与える。
[データ送信時間]
次に、無線通信システムNTにおける各ノード20がデータを送信するデータ送信期間の処理を説明する。
ここで、各ノード20には、図3のTDMAフレームのスロットが割り当てられているものとする。すなわち、各ノード20の送信タイミング判定部108には、TDMAフレームにおける自ノードのスロットの開始時刻を保持しているものとする。
TDMAフレームのスロットの開始時刻を各ノード20に周知する方法は、様々な方式を適用することができ、特に限定されるものではない。例えば、基地局が、TDMAフレームの各スロットの各スロットのスケジューリング(各ノード20へのスロットの割り当て)を行ない、そのスケジューリング情報をフラッディング等により、無線通信システムNTの各ノード20に周知するようにしてもよい。より具体的には、例えば、各ノード20が無線通信システムNTに参加するときに、基地局10が割り当てたスロットを周知してもよいし、制御パケットにスロットの割り当てを含めるようにしてもよい。
図1に示す無線通信システムNTの最大ホップ数は「2」である。各ノード20は、TDMAにおける自ノードに割り当てられたスロットの開始時刻になると、データ送信を開始する。具体的には、各ノード20において、送信タイミング判定部108が、自ノードのスロットの開始時刻を監視しており、自ノードのスロットの開始時刻になると、送信タイミング判定部108がネットワーク管理部104に対してデータパケットを送信するように指示を出す。
ここでは、図1のノードCが、2台の親ノードとしてノードA、Bを決定し、ノードA又はノードBを通じて、基地局10を最終宛先とするデータパケットを送信する場合を例示する。
ノードCのホップ数は「2」であるため、図2のTDMAフレームにおけるノードCのスロットの「ホップ2」のタイミングでデータパケットの送信を行なう。
ノードCにおいて、ネットワーク管理部104は、アドレス生成部106により生成された送信アドレスを取得し、その送信アドレスをパケット生成部109に与える。ここで、アドレス生成部106が生成する送信アドレスは、2台の親ノードの各識別情報を、ブルームフィルタに掛けて生成した送信アドレスである。
ノードCにおいて、パケット生成部109は、送信アドレスをパケットに付与してデータパケットを生成し、データパケットを無線信号送受信部102に与える。これにより、データパケットが送信される。
[データパケットの中継手順]
次に、ノードCが送信したデータパケットの中継手順を説明する。
ノードCがデータパケットを送信すると、ノードA又はノードBが、ノードCからのデータパケットを受信する。ここでは、ノードCからデータパケットを受信したノードA及びBはいずれも同じ中継処理を行なうが、ここでは、ノードAに着目してノードAにおける中継処理を説明する。
ノードAでは、受信したパケットが無線信号送受信部102に受信される。無線信号送受信部102により受信されたパケットの内容は、データ処理部103に与えられる。データ処理部103では、受信したパケットの内容を解析して、パケット種別がデータを含むものであると判断し、ネットワーク管理部104にパケットに含まれるデータを与える。さらに、ネットワーク管理部104は、ノードCが送信したデータパケットを中継処理判定部107に与える。
中継処理判定部107は、図4のハッシュテーブル51を参照し、受信したパケットに含まれている送信アドレスのビット列を確認する。例えば、ノードCが送信したデータパケットに、[10110101]のビット列が含まれているものとする。
ノードAにおいて、中継処理判定部107は、図4のハッシュテーブル51を参照し、自ノード(すなわち、ノードA)のハッシュ値が1、3、8ビット目であることを確認する。そして、ノードAの中継処理判定部107は、受信パケットに含まれている送信アドレスのビット列[10110101]のうち、1、3、8ビット目が「1」であることから、自ノードが中継を行う必要があると判断する。
ノードAの中継処理判定部107は、自ノードが中継を行なう必要があると判断すると、その結果を送信タイミング判定部108に通知し、送信タイミング判定部108は、TDMAフレームのノードCに割り当てられたスロット中の「ホップ1」においてデータパケットを中継すると判断する。
同様に、ノードBの中継処理判定部107も、図4のハッシュテーブル51を参照し、自ノード(すなわち、ノードB)のハッシュ値が1、4、6ビット目であることを確認し、受信パケットの含まれている送信アドレスのビット列[10110101]のうち、1、4、6ビット目が「1」であることから、自ノードが中継を行う必要があると判断する。したがって、ノードBの中継処理判定部107は、自ノードが中継を行なう必要があると判断し、ノードBの送信タイミング判定部108は、TDMAフレームのノードCに割り当てられたスロット中の「ホップ1」においてデータパケットを中継すると判断する。
ここで、ノードAとノードBとは同じ中継処理判定を行なうので、ノードBとの間で同時にパケット送信する可能があり、パケット衝突が生じ得る。そこで、ノードAとノードBとの間でパケットの衝突を防ぐために、ノードA及びノードBのそれぞれにおいて、送信タイミング判定部108は、「ホップ1」の開始時刻の際に、ランダムなバックオフを取るようにする。
このバックオフの取り方は、特に限定されるものではなく、様々な手法を用いることができ、例えばIEEE802.15.4の規定に則って、例えばキャリアセンスを行なうようにしてもよい。この場合、例えば、ノードA及びBのネットワーク管理部104がキャリアセンスを行ない、送信タイミング判定部108は、ネットワーク管理部104からのキャリアセンスの結果を取得し、その結果に基づいてデータパケットの送信可能か否かを判断するようにしてもよい。
具体的には、ノードAにおいて、送信タイミング判定部108は、バックオフが終わるまでの間にノードBからのデータパケット送信をキャリアセンスすると、パケットの衝突を避けるため、自ノードのデータパケットの中継を行わないと判断する。
送信タイミング判定部108は、ネットワーク管理部104からキャリアセンスの結果に基づいてパケット衝突がなく送信可能であると判断すると、ネットワーク管理部104は、TDMAフレームのノードCに割り当てられたスロット中の「ホップ1」のバックオフ終了後の開始時刻に、自ノードの親ノードである基地局10宛にデータパケットを送信するようパケット生成部109に通知し、ノードCのデータパケットを中継する。
上述した中継手順により、ノードCのデータパケットは基地局10までマルチホップで伝送される。
(A−3)第1の実施形態の効果
第1の実施形態によれば、TDMAを用いたマルチホップ無線通信システムにおいて、各ノードは親ノードの選択時に、2台の親ノードを決定し、データ送信時にはマルチキャストでそれらの親ノードにパケットを送信することでルートダイバーシティ効果を利用し、データ収集率を向上させる。
例えば、従来のように、各ノードが1台のノードを親ノードとして決定してユニキャストで送信する場合、ノードCは、ノードAとBのうち1台の親ノードを選択しなければならず、その選択した親ノードとの間の通信品質が良好でないときには、通信が失敗する可能性があり、データ収集率の劣化を招くことも生じ得る。
しかし、第1の実施形態によれば、複数の親ノードを決定することで、同じ内容のデータを複数の経路で伝送するルートダイバーシティ効果を得ることができ、データ収集率を高めることができる。
また、一般的にマルチキャストを行なう場合は、送信先アドレスを複数台分記述する必要があり、その結果、パケット長が冗長になるが、第1の実施形態によれば、パケット長を長くすることなく、マルチキャストを実現できる。
(B)第2の実施形態
以下では、本発明に係る無線通信装置、プログラム及び方法の第2の実施形態を、詳細に説明する。
(B−1)第2の実施形態の構成
図6は、第2の実施形態に係る無線通信装置100Aの内部構成を示す内部構成図である。
図6の無線通信装置100Aは、基本的には、基地局10と各ノード20のいずれにも搭載することができるものであるが、ここでは、無線通信装置100Aが各ノード20に搭載されるものであることを想定して説明する。
図6において、第2の実施形態に係る無線通信装置100Aは、アンテナ部101、無線信号送受信部102、データ処理部103、ネットワーク管理部104、親ノード決定部105、アドレス生成部106A、中継処理判定部107、送信タイミング判定部108A、パケット生成部109を有する。
第2の実施形態では、無線通信装置100Aのアドレス生成部106A及び送信タイミング判定部108Aの処理が、第1の実施形態と異なるので、第2の実施形態では、第1の実施形態と異なる点を中心に説明する。
アドレス生成部106Aは、親ノード決定部105により決定された2個の親ノードに関する情報を取得し、2台の親ノードの各識別情報を、ブルームフィルタに掛けることで送信アドレスを生成するものである。
また、アドレス生成部106Aは、各ノード20の2個のアドレス情報を有している。ここで、2個のアドレス情報は、メイン親ノード(第1の親ノード)としてのアドレス(以下では、「メインアドレス」とも呼ぶ。)と、サブ親ノード(第2の親ノード)としてのアドレス(以下では、「サブアドレス」とも呼ぶ。)とである。メインアドレス及びサブアドレスはそれぞれ、無線通信システムNTに参加する各ノード20を一意に識別することができる識別情報である。
アドレス生成部106Aは、無線通信システムNTに参加する全てのノード20のメインアドレスとサブアドレスとを含むアドレス情報52を保持している。
そして、アドレス生成部106Aは、親ノード決定部105により決定された2台の親ノードについて、一方の親ノードをメイン親ノードとし、他方の親ノードをサブ親ノードとして、メイン親ノードの識別情報とサブ親ノードの識別情報を、ブルームフィルタに掛けることで送信アドレスを生成する。
図7は、第2の実施形態のブルームフィルタに係るハッシュテーブル51Aの構成を示す構成図である。
図7のハッシュテーブル51Aは、基本的に図4のハッシュテーブル51の構成と同じであるが、無線通信システムNTに参加する各ノードA〜Fのメインアドレスとサブアドレス毎に、入力とハッシュ値とを対応付けたテーブルである。これにより、ハッシュテーブル51Aは、ノードA〜F毎に、メインアドレス用のハッシュ値とサブアドレス用のハッシュ値の2つのハッシュ値を保持することができる。
アドレス生成部106は、図7に例示するハッシュテーブル51Aを保持しており、ハッシュテーブル51Aを参照して、メイン親ノードの識別情報とサブ親ノードの識別情報を、ブルームフィルタに掛けることで送信アドレスを生成する。これにより、親ノードとして機能する各ノード20は、受信パケットに含まれる送信アドレスを解析することで、自ノードがメイン親ノードであるのか又はサブ親ノードであるのかを判断することができる。
なお、図7のハッシュテーブル51Aは、無線通信システムNTを構成する基地局10及び各ノード20が保持しているものである。このハッシュテーブル51を各ノード20に周知する方法は、第1の実施形態と同様に、様々な方式を適用することができ、特に限定されるものではない。例えば、各ノード20が無線通信システムNTに参加するときに、基地局10が全てのノード20に行き渡るようにフラッディングすることにより周知しても良いし、制御パケットにハッシュテーブル51Aを含めるようにしてもよい。
送信タイミング判定部108が、自ノードのスロットの開始時刻を監視しており、送信タイミング判定部108は、TDMAフレームにおける自ノードのスロットよりも1つ前のスロット中の中継時刻「ホップ1」のタイミングで、データパケットを送信するように、ネットワーク管理部104に指示を出す。
(B−2)第2の実施形態の動作
図8は、第2の実施形態に係る無線通信システムNTの構成を示す構成図である。
図8では、無線通信システムNTに参加するノード数が6台であるとする。図8において、ノード間を結んでいる実線の両端のノードが通信可能であることを表しており、6台のノードA〜ノードFで構成されるネットワークトポロジは図8に示す通りである。図8の無線通信システムNTにおける最大ホップ数は「3」とする。
第2の実施形態の無線通信システムNTも、第1の実施形態と同様に、経路構築期間における処理と、データ処理期間における処理とに大別することができる。
[経路構築期間]
上述したように、無線通信システムNTに参加する全てのノードA〜Fは、メインアドレスとサブアドレスとを有している。
全てのノードA〜Fには、各ノードA〜Fのメインアドレスとサブアドレスとを含むアドレス情報52が周知となっている。
全てのノードA〜Fのメインアドレスとサブアドレスとを含むアドレス情報52の周知方法は、様々な方法を適用することができ、例えば、ノード20が無線通信システムNTに参加する際に、基地局10から当該ノード20に送信することで、アドレス情報52が周知されるようにしてもよいし、また例えば、制御パケットに自ノード20のメインアドレスとサブアドレスの両方を記入してフラッディングすることで、無線通信システムNT全体に周知にするようにしてもよい。
無線通信システムNTの経路構築期間では、第1の実施形態と同様に、基地局10を含む全てのノード20が、ネットワークトポロジを構築するためのプロトコルにしたがって、制御パケットを送受信する。これにより、各ノード20は、無線通信システムNTにおける経路等を決定し、自身のホップ数と、親ノードを決定することができる。
制御パケットを受信した各ノード20では、無線信号送受信部102が、制御パケット受信時の受信電力値を計測し、データ処理部103は、無線信号送受信部102からの制御パケットに含まれているデータを、ネットワーク管理部104に与える。
ネットワーク管理部104は、制御パケットの内容を解析して、制御パケットに含まれている、隣接ノードのホップ数に関する情報、通信路環境に関する情報などを抽出して、これら隣接ノードのホップ数に関する情報、通信路環境に関する情報等を、親ノード決定部105に与える。
親ノード決定部105は、受信した複数の制御パケットのうちから、事前に定められたアルゴリズムに従って、2台の親ノードを決定する。
ここで、親ノード決定部105は、2台の親ノードのうち、一方の1台の親ノードをメイン親ノード(以下では、「メイン親」とも呼ぶ。)、他方の1台の親ノードをサブ親ノード(以下では、「サブ親」とも呼ぶ。)とする。メイン親とサブ親との決定方法は、例えば、制御パケットの受信時の受信信号強度が高いものをメイン親として決定する方法を適用できる。いずれにしても、自ノードと通信路環境が良好なものをメイン親とすることが望ましい。
アドレス生成部106Aは、親ノード決定部105により決定された2台の親ノードに関する情報を取得すると、メイン親ノードの識別情報とサブ親ノードの識別情報を、ブルームフィルタに掛けることで送信アドレスを生成する。
[データ送信期間]
各ノードA〜Fには、第1の実施形態と同様に、図3のTDMAフレームのスロットが割り当てられており、各ノードA〜Fの送信タイミング判定部108は、TDMAフレームにおける自ノードのスロットの開始時刻を保持しているものとする。
各ノードA〜Fの送信タイミング判定部108が、自ノードのスロットの開始時刻を監視しており、送信タイミング判定部108は、TDMAフレームにおける自ノードのスロットよりも1つ前のスロット中の中継時刻「ホップ1」で、データパケットを送信するように、ネットワーク管理部104に指示を出す。
図9は、第2の実施形態のノードの送信タイミングを説明する説明図である。図9では、図8のノードEが、データパケットを送信する場合を例示して説明する。
図9(B)は、図3のTDMAフレームにおいて、ノードEに割り当てられたスロットTSiの期間を示している。
これに対して、図9(A)は、図3のTDMAフレームにおいて、ノードEに割り当てられたスロットTSiの1つ前のスロットTS(i−1)の期間を示し、図9(C)は、図3のTDMAフレームにおいて、ノードEに割り当てられたスロットTSiの1つ後のスロットTS(i+1)の期間を示している。
ノードEにおいて、ノードEの送信タイミング判定部108Aは、TDMAフレームの自ノードのスロットTSiよりも1つ前のスロットTS(i−1)の「ホップ1」で、データパケットを送信するようネットワーク管理部104に指示を出す。
ノードEのネットワーク管理部104は、送信タイミング判定部108Aから指示された、「自ノードのスロットTSiの1つ前のスロットTS(i−1)のホップ1」の時刻になると、アドレス生成部106Aにより生成された送信アドレス宛に、データパケットを送信するようパケット生成部109に指示を出し、パケット生成部109がデータパケットを送信する。
ここで、ノードEの送信タイミング判定部108Aが、TDMAフレームの自ノードのスロットTSiよりも1つ前のスロットTS(i−1)の「ホップ1」で、データパケットの送信指示することに関して説明する。
ノードEは、基地局10までのホップ数が「3」であるので、3ホップノードである。
これに対して、スロットTS(i−1)は、ノードEとは異なる他ノード(ここでは、「ノード(E−1)」と表記する。)がスロットオーナーである。
そして、ノードEとは異なる他ノード(E−1)のスロットTS(i−1)では、スロットオーナー(他ノード(E−1))のデータパケットの送信、又は、中継が行われている。
ここで、スロットTS(i−1)の「ホップ1」は1ホップノードから基地局10への通信であり、ノードEのデータ送信は、3ホップから2ホップノードへの通信であり、距離的に離れていることが想定され、どちらの通信もキャプチャ効果により送受信に成功する。
つまり、スロットTS(i−1)の「ホップ1」における通信時に、1ホップノードから基地局10の通信と、3ホップノードであるノードEから次の2ホップノードへの通信が同時に行なわれたとしても、距離が離れた状態で行なわれる通信であるので、両方の通信が成功すると考えられる。
そのため、ノードEの送信タイミング判定部108Aが、TDMAフレームの自ノードのスロットよりも1つ前のスロットの「ホップ1」で、データパケットの送信を指示する。
なお、自ノードのスロットよりも1つ前のスロットの「ホップ1」で送信指示をすることができるノードのホップ数は、無線通信システムNTのネットワーク構成に応じて決定することができ、例えば、少なくとも3ホップ以上であることが望ましい。
[データパケットの中継手順]
図10は、第2の実施形態のデータ中継手順を説明する説明図である。
図10は、図9のTDMAフレームにおけるスロット列及びデータ中継期間「ホップ」に沿って、データパケットの送信元ノードと宛先ノードとを対応付けている。
図10では、メイン親を経由するマルチホップの経路をメインルートと呼び、サブ親を経由するマルチホップの経路をサブルートと呼ぶ。また、例えば、「E→C」は、データパケットの送信元ノードと宛先ノードとを表しており、この場合、送信元ノードがノードEであり、宛先ノードがノードCであることを表している。
ノードEでは、2台の親ノードのうち、メイン親を「ノードC」とし、サブ親を「ノードD」とするものとする。
上述したように、ノードEでは、ネットワーク管理部104が、自ノードのスロットTSiの1つ前のスロットTS(i−1)のホップ1の時刻になると、アドレス生成部106Aにより生成された送信アドレス宛に、データパケットを送信するようパケット生成部109に指示を出し、パケット生成部109がデータパケットを送信する。
メイン親であるノードC及びサブ親であるノードDでは、無線信号送受信部102がノードEのデータパケットを受信する。データ処理部103は、受信したパケットデータをネットワーク管理部104に与える。ネットワーク管理部104は、他ノードからのデータパケットであると判断すると、中継すべきか否かを判定させるために、データパケットを中継処理判定部107に与える。
まず、メイン親であるノードCを経由するメインルートを説明する。メイン親であるノードCでは、中継処理判定部107が、図7のハッシュテーブルを参照して、受信パケットに含まれている送信アドレスのビット列から、自ノードがメイン親であることを確認する。
メイン親であるノードCにおいて、送信タイミング判定部108Aは、自ノードがメイン親であるという情報を中継処理判定部107から通知されると、ノードEの送信スロットのホップ3の時刻で、データパケットを中継するようネットワーク管理部104に通知する。
このとき、メイン親であるノードCの送信タイミング判定部108Aは、スロットTS(i−1)のデータ中継期間「ホップ1」で、ノードEからデータパケットを受信するが、その直後のデータ中継期間(すなわち、スロットTSiのデータ中継期間「ホップ3」)の時刻で、データパケットの中継を行なうように指示する。このようにすることで、TDMAフレームの各スロットにおいて、他のノードが中継するパケットとの衝突を回避しながら、データパケットの中継に利用されていない「空き」となる期間を有効に利用することができる。
ネットワーク管理部104は、ホップ3の時刻で、アドレス生成部106から送られてきた送信アドレス宛にデータパケットを中継するようパケット生成部109に通知し、中継処理が行われる。
なおノードCにおいてもメイン親とサブ親とが決定されているが、ここでは、説明を容易にするため、ノードCにおけるメイン親をノードAとしており、ノードCが、メイン親であるノードAのみに中継する場合のみを示している。
ノードCから中継パケットを受信したノードAは、上述した処理と同一の手順を経て、ノードEのデータパケットを基地局10に送信する。
次に、サブ親であるノードDを経由するサブルートを説明する。サブ親であるノードDにおいても、中継処理判定部107が、図7のハッシュテーブルを参照して、受信パケットに含まれている送信アドレスのビット列から、自ノードがサブ親であることを確認する。
サブ親であるノードDにおいて、送信タイミング判定部108Aは、自ノードがサブ親であるという情報を中継処理判定部107から通知される。
そうすると、ノードDの送信タイミング判定部108Aは、メインルートとの送信パケットの衝突を回避するため、ノードEのスロットTSiのホップ1の時刻で、データパケットを中継するようネットワーク管理部104に通知する。
ネットワーク管理部104は、ノードEのスロットTSiのホップ1の時刻で、アドレス生成部106から送られてきた送信アドレス宛にデータパケットを中継するようパケット生成部109に通知し、中継処理が行われる。
ここで、ノードDにおいてもメイン親とサブ親とが決定されている。ここでは、説明を容易にするため、ノードDにおけるメイン親をノードBとしており、ノードDが、メイン親であるノードBのみに中継する場合のみを示している。
ノードDから中継パケットを受信したノードBは、ノードEのスロットTSiの次のスロットTS(i+1)の「ホップ3」の時刻で、データパケットを基地局10に中継する。
このとき、サブ親であるノードDの送信タイミング判定部108Aは、メインルートでパケットを中継する時のホップ数と、サブルートでパケットを中継するときのホップ数とに基づいて、中継タイミングを判定する。具体的には、メインルート経由のホップ数とサブルート経由のホップ数との差分値に基づいて、パケット衝突を回避するタイミングを判定する。
例えば、次のスロットTS(i+1)の「ホップ3」では、スロットTS(i+1)のスロットオーナーのデータ送信が行なわれるが、スロットオーナーが3ホップノードでなければ、当該スロットTS(i+1)のホップ3は使用されないため、送信パケットの衝突は発生しない。また、3ホップノードであったとしても、3ホップノードのパケット送信と1ホップノードのパケット送信では距離的に離れているため、キャプチャ効果により送受信に成功する。
(B−3)第2の実施形態の効果
以上のように、第2の実施形態によれば、TDMAを用いたマルチホップ無線通信システムにおいて、各ノードは親ノードの選択時に、メイン親ノード(メイン親)と、サブ親ノード(サブ親)の2台の親ノードを決定する。そして、データ送信時には、マルチキャストでそれらの親ノードにパケットを送信することでルートダイバーシティ効果を利用し、中継ノードはデータ収集率を向上させる。
第1の実施形態は、複数の親ノードがお互いをキャリアセンスすることができる範囲内に存在する場合には有効な方式である。これに対して、第2の実施形態では、他のノードと隠れ端末の位置関係に存在するトポロジにおいてもルートダイバーシティを実現することができる。その結果、データ収集率を向上させることができる。
また、第2の実施形態によれば、各ノードが、メイン親としてのメインアドレスと、サブ親としてのサブアドレスを有することで、パケット中継時にメイン親とサブ親が異なる動作を実施することが可能となる。
例えば、第2の実施形態を適用しない場合には、スロットオーナーのスロットの次に続くスロットTS(i+1)の「ホップ3(最大ホップ数のデータ中継期間)」は、通信が行われない無駄な時間となる可能性がある。これに対して、第2の実施形態によれば、スロットオーナーのスロットの次に続くスロットTS(i+1)の「ホップ3(最大ホップ数のデータ中継期間)」を有効に利用でき、ネットワークの時間効率を向上させることができる。
(C)他の実施形態
上述した第1、第2の実施形態においても種々の変形実施形態を言及したが、本発明は、以下の変形実施形態にも適用できる。
(C−1)第1、2の実施形態では、複数の親ノードとして2台の親ノードを選択したが、必ずしも2台でなければならないわけではなく、3台以上の親ノードを選択し本発明を適用してもよい。
(C−2)第1の実施形態では2ホップノード、第2の実施形態では3ホップノードに本発明を適用したが、必ずしも特定のホップ数のノードに適用しなければならないわけではなく、ネットワークに参加するすべてのホップ数のノードに本発明を適用してもよい。
また、本発明を適用するネットワークの最大ホップ数は2ホップまたは3ホップに限ったものでなく、TDMAを用いたマルチホップネットワークであれば本発明を適用してもよい。
(C−3)第1の実施形態では、複数の親ノードには優劣関係を付けなかったが、第2の実施形態のようにメイン親とサブ親を設定し、メイン親はバックオフの時間を短くすることで中継する確率を高くしてもよい。
(C−4)第2の実施形態では、サブ親を自ノードよりもホップ数が少ないノードから選択ようにしたが、サブ親を同一ホップ数のノードから選択するようにしてもよい。
その場合のメインルートとサブルートのデータパケットの中継手順を、図11を参照しながら説明する。
図11では、図6の無線通信システムNTと同じネットワークトポロジとしており、ノードEが、データパケットを送信した場合の中継手順を示している。
ノードEが、メイン親をノードCとし、サブ親をノードF(ノードEと同じホップ数のノード)としている。
図11に示すように、ノードEでは、ネットワーク管理部104が、自ノードのスロットTSiの1つ前のスロットTS(i−1)のホップ1の時刻になると、アドレス生成部106Aにより生成された送信アドレス宛に、データパケットを送信するようパケット生成部109に指示を出し、パケット生成部109がデータパケットを送信する。
ノードFは、自ノードがサブ親であることを認識すると、ノードFの送信タイミング判定部108Aは、メインルートとの送信パケットの衝突を回避するため、ノードEのスロットTSiのホップ2の時刻で、ノードDを宛先とするデータパケットを中継するようネットワーク管理部104に通知する。
さらに、ノードFからデータパケットを受信したノードDは、メインルートとの送信パケットの衝突を回避するため、ノードEのスロットTSiのホップ1の時刻で、ノードB宛にデータパケットを中継するようネットワーク管理部104に通知する。
そして、ノードDから中継パケットを受信したノードBは、ノードEのスロットTSiの次のスロットTS(i+1)の「ホップ3」の時刻で、データパケットを基地局10に中継する。
なお、各ノードの送信タイミングは、図10や図11に示すタイミングに限られるものではない。第2の実施形態で説明したように、メインルートとサブルートのパケット送信タイミングが、キャプチャ効果を利用して決定しているため、キャプチャ効果を得ることができるのであれば、図10や図11に限定されない。
(C−5)第1、第2の実施形態において、キャプチャ効果を得るために、基地局10が各ノード20のTDMAスロットの割り当てやこれらの実施形態を適用するノードを変更してもよい。例えば、最大ホップ数のノードと1ホップノードのスロットを交互に配置し、最大ホップ数のノードにこれらの実施形態を適用し、1ホップノードには適用しないようにすることで、キャプチャ効果を高めつつ通信に失敗する確率の高い最大ホップ数のノードにルートダイバーシティを提供しスロットの利用効率を上げることができる。