本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線センサーネットワークの概略図である。図1を参照して、この発明の実施の形態による無線センサーネットワーク10は、無線ノード1〜7を備える。
無線ノード1〜7は、無線通信空間に配置される。無線ノード1〜7は、例えば、IEEE802.15.4gに対応した920MHz帯で無線通信を行う。
無線ノード2〜7の各々は、センサーを有する。
無線ノード1〜7は、後述する方法によって、RPL:IPv6 Routing Protocol for Low−Power and Lossy Networks(RFC6550)を用いて各無線ノード2〜7から無線ノード1までの経路を構築する。また、無線ノード1〜7は、後述する方法によって、RPLを用いて各無線ノード2〜7から無線ノード1までの経路を維持する。
そして、各無線ノード2〜7から無線ノード1までの経路が確立された場合、無線センサーネットワーク10は、無線ノード1〜7が階層構造に配置されたトポロジーを有する。この場合、無線ノード1は、最上位層に配置され、無線ノード2〜7は、第2層以下にツリー状に配置される。
この発明の実施の形態においては、無線ノード1を「シンク」とも言う。
無線ノード1〜7の各々は、後述する方法によって、消費電力が最小になるようにサンプリング間隔を決定する。そして、無線ノード1〜7の各々は、その決定したサンプリング間隔で動作する。
また、無線ノード1〜7の各々は、その決定したサンプリング間隔に対応して決定されたフレーム長を用いてウェイクアップ信号を生成し、その生成したウェイクアップ信号を送受信する。
更に、無線ノード2〜7の各々は、センサー(図示せず)によってセンサー値を検出し、その検出したセンサー値を自己から無線ノード1までの経路上に存在する無線ノードを順次起動させながら無線ノード1へ送信する。
この場合、各無線ノード2〜7から無線ノード1までの経路上に存在する無線ノードは、後述する方法によって、他の無線ノードから受信したセンサー値を転送する。
図2は、図1に示す無線ノード1の構成を示す概略図である。図2を参照して、無線ノード1は、アンテナ11,12と、無線通信部13と、制御部14と、経路制御部15と、サンプリング間隔決定部16と、ウェイクアップ信号受信部17と、ウェイクアップ信号判定部18と、フレーム長対応表19とを含む。
無線ノード1は、スリープ状態と、起動状態とを有する。スリープ状態とは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が動作し、無線通信部13、制御部14、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19が動作を停止した状態である。
また、起動状態とは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が動作を停止し、無線通信部13、制御部14、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19が動作している状態である。
アンテナ11は、無線通信部13に接続される。アンテナ12は、ウェイクアップ信号受信部17に接続される。
無線通信部13は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、無線通信部13は、タイマーを内蔵しており、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、一定間隔Tで間欠動作を行う。即ち、無線通信部13は、一定間隔Tのうちの時間T_1の間、起動状態へ移行し、一定間隔Tのうちの時間T_2の間、スリープ状態へ移行する。T_1,T_2は、T_1+T_2=Tを満たす。
無線通信部13は、無線センサーネットワーク10における経路を確立する場合、または確立した経路を維持する場合、制御パケットを制御部14から受け、その受けた制御パケットを変調してアンテナ11を介して送信する。また、無線通信部13は、アンテナ11を介して制御パケットを受信し、その受信した制御パケットを復調して制御部14へ出力する。なお、制御パケットは、DIO,DAOからなる。
また、無線通信部13は、1時間当たりの無線フレームの送信数であるフレーム送信数Nを計測する。そして、無線通信部13は、その計測したフレーム送信数Nをサンプリング間隔決定部16へ出力する。
更に、無線通信部13は、データを含むパケットをアンテナ11を介して受信し、その受信したパケットを復調して制御部14へ出力する。無線通信部13は、データを含むパケットを制御部14から受け、その受けたパケットを変調してアンテナ11を介して送信する。
制御部14は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、制御部14は、タイマーを内蔵しており、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、無線通信部13と同様にして、一定間隔Tで間欠動作を行う。
制御部14は、無線センサーネットワーク10における経路を確立する場合、または確立した経路を維持する場合、制御パケットを経路制御部15から受け、その受けた制御パケットを無線通信部13へ出力する。また、制御部14は、制御パケットを無線通信部13から受け、その受けた制御パケットを経路制御部15へ出力する。
制御部14は、サンプリング間隔をサンプリング間隔決定部16から受ける。制御部14は、送信先の無線ノードのMACアドレスを経路制御部15から受ける。そして、制御部14は、MACアドレスのハッシュ値を演算する。その後、制御部14は、サンプリング間隔に対応し、かつ、フレーム長とデータとの関係を示す対応表をフレーム長対応表19から受け、その受けた対応表に基づいて、ハッシュ値を示すデータをフレーム長に変換する。そうすると、制御部14は、その変換したフレーム長を有する無線フレームを生成し、その生成した無線フレームをウェイクアップ信号として無線通信部13へ出力する。
制御部14は、センサー(図示省略)からセンサー値(=データ)を受け、その受けたセンサー値を含むパケットを生成する。そして、制御部14は、その生成したパケットを無線通信部13へ出力する。
制御部14は、データを含むパケットを無線通信部13から受け、その受けたパケットの送信先が無線ノード1であるか否かを判定する。そして、制御部14は、パケットの送信先が無線ノード1であると判定したとき、パケットからデータを取り出し、その取り出したデータを受理する。一方、制御部14は、パケットの送信先が無線ノード1以外の無線ノードであると判定したとき、データを含むパケットを無線通信部13へ出力する。
制御部14は、無線ノード1の動作モードを決定し、その決定した動作モードをサンプリング間隔決定部16へ出力する。
経路制御部15は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、経路制御部15は、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、無線通信部13と同様にして、一定間隔Tで間欠動作を行う。
経路制御部15は、無線センサーネットワーク10における経路を確立する場合、または確立した経路を維持する場合、制御パケットを生成し、その生成した制御パケットを制御部14へ出力する。経路制御部15は、制御パケットを制御部14から受け、その受けた制御パケットに基づいて、無線センサーネットワーク10における経路を確立または維持する。そして、経路制御部15は、その確立または維持した経路を示す経路情報を保持する。また、経路制御部15は、無線センサーネットワーク10における無線ノード1〜7の配置状態を示すトポロジーを示すトポロジー情報を保持する。
経路制御部15は、無線ノードのMACアドレスの要求に応じて、経路情報を参照して無線ノードのMACアドレスを検出し、その検出したMACアドレスを制御部14へ出力する。
経路制御部15は、サンプリング間隔決定部16からの要求に応じて、経路情報および/またはトポロジー情報をサンプリング間隔決定部16へ出力する。
サンプリング間隔決定部16は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、サンプリング間隔決定部16は、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、無線通信部13と同様にして、一定間隔Tで間欠動作を行う。
サンプリング間隔決定部16は、フレーム送信数Nを無線通信部13から受ける。サンプリング間隔決定部16は、動作モードを制御部14から受ける。サンプリング間隔決定部16は、経路情報および/またはトポロジー情報を経路制御部15から受ける。そして、サンプリング間隔決定部16は、後述する方法によって、総電力量が最小になるときのサンプリング間隔Tinterval_minをフレーム送信数Nに対応して決定する。そして、サンプリング間隔決定部16は、その決定したサンプリング間隔Tinterval_minをウェイクアップ信号受信部17およびフレーム長対応表19へ出力する。
サンプリング間隔決定部16は、経路情報に基づいて、後述する方法によって、サンプリング間隔Tinterval_minを調整する。そして、サンプリング間隔決定部16は、その調整したサンプリング間隔Tinterval_minをウェイクアップ信号受信部17およびフレーム長対応表19へ出力する。
ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、タイマーを内蔵しており、一定の間隔で起動状態へ移行する。
ウェイクアップ信号受信部17は、サンプリング間隔決定部16からサンプリング間隔Tinterval_minを受ける。そして、ウェイクアップ信号受信部17は、起動状態において受信電力を検出すると、アンテナ12を介してウェイクアップ信号を受信し、その受信したウェイクアップ信号の受信信号をサンプリング間隔Tinterval_minで包絡線検波し、その検波した検波値に基づいてフレーム長を検出する。より具体的には、ウェイクアップ信号受信部17は、検波値における“1”の個数をカウントし、そのカウントした個数にサンプリング間隔Tinterval_minを乗算することによってフレーム長を検出する。そして、ウェイクアップ信号受信部17は、その検出したフレーム長をウェイクアップ信号判定部18へ出力する。
ウェイクアップ信号判定部18は、無線ノード1のMACアドレスを予め保持している。また、ウェイクアップ信号判定部18は、サンプリング間隔Tinterval_minに対応し、かつ、フレーム長とデータとの関係を示す対応表をフレーム長対応表19から受ける。更に、ウェイクアップ信号判定部18は、ウェイクアップ信号受信部17からフレーム長を受ける。そして、ウェイクアップ信号判定部18は、対応表を参照して、フレーム長をデータに変換する。その後、ウェイクアップ信号判定部18は、その変換したデータが無線ノード1のMACアドレスに一致するか否かを判定する。
ウェイクアップ信号判定部18は、その変換したデータが無線ノード1のMACアドレスに一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15およびサンプリング間隔決定部16へ出力する。
一方、ウェイクアップ信号判定部18は、その変換したデータが無線ノード1のMACアドレスに一致しないと判定したとき、その変換したデータを破棄し、何も出力しない。
なお、後述するブロードキャストIDまたはマルチキャストIDが用いられる場合、ウェイクアップ信号判定部18は、その変換したデータがブロードキャストIDまたはマルチキャストIDに一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15およびサンプリング間隔決定部16へ出力する。
一方、ウェイクアップ信号判定部18は、その変換したデータがブロードキャストIDまたはマルチキャストIDに一致しないと判定したとき、その変換したデータを破棄し、何も出力しない。
ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、一定の間隔で起動状態へ移行して上述した動作を行い、上述した動作が終了すると、スリープ状態へ移行する。即ち、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、間欠動作を行う。
フレーム長対応表19は、一定の間隔で起動状態へ移行する。フレーム長対応表19は、サンプリング間隔Tinterval_minに対応付けて、フレーム長とデータとの関係を示す対応表を保持する。そして、フレーム長対応表19は、サンプリング間隔決定部16からサンプリング間隔Tinterval_minを受けると、その受けたサンプリング間隔Tinterval_minに対応する対応表を制御部14およびウェイクアップ信号判定部18へ出力する。
なお、図1に示す無線ノード2〜7の各々も、図2に示す無線ノード1と同じ構成からなる。
図3は、制御パケットDIOの構成図である。図3を参照して、制御パケットDIOは、rootのアドレスと、送信先と、送信元と、ID格納部と、Rankと、DTSNとを含む。
rootのアドレスは、シンクである無線ノード1のアドレスからなる。送信先は、制御パケットDIOの送信先の無線ノードのアドレスからなる。送信元は、制御パケットDIOを生成した無線ノードのアドレスからなる。ID格納部は、ESSIDまたはPANIDからなる。Rankは、256×n(nは、正の整数)からなり、無線ノード1(=シンク)からのホップ数が1ホップ増加するごとに“256”づつ増加する。そして、Rankは、数値が小さい程、シンク(=無線ノード1)に近いことを表わす。DTSNは、正の整数からなり、1つの無線ノード(=無線ノード1〜7のいずれか)が新たな制御パケットDIOを生成するごとに“1”づつ増加する。DTSNは、各無線ノード1〜7が同じ無線ノードから制御パケットDIOを受信した場合に、制御パケットDAOを送信するか否かの判定基準になる。より具体的には、各無線ノード1〜7は、同じ無線ノードから制御パケットDIOを受信した場合に、その受信した制御パケットDIOのDTSNが、以前に受信した制御パケットDIOのDTSNよりも増加していると判定したとき、制御パケットDAOを送信し、受信した制御パケットDIOのDTSNが、以前に受信した制御パケットDIOのDTSNよりも増加していないと判定したとき、制御パケットDAOを送信しない。そして、DTSNが増加していることは、親ノードが変更されたことに相当する。
図4は、制御パケットDAOの構成図である。図4を参照して、制御パケットDAOは、親ノードのアドレスと、送信元と、DAOSequenceとを含む。
親ノードのアドレスは、制御パケットDAOを生成する無線ノードよりも1ホップだけシンク側に存在し、制御パケットDAOを生成する無線ノードが無線通信可能な全ての無線ノードのアドレスからなる。
送信元は、制御パケットDAOを生成する無線ノードのアドレスからなる。DAOSequenceは、制御パケットDAOのシーケンス番号である。そして、DAOSequenceの初期値は、“240”である。DAOSequenceは、“0”〜“255”の範囲の整数からなる。DAOSequenceは、新たな制御パケットDAOが送信される毎にインクリメントされる。DAOSequenceが“128”よりも小さい場合、最大値は、“127”であり、DAOSequenceが“128”以上である場合、最大値は、“255”である。DAOSequenceは、“255”の次に、“0”になり、その後、“1”づつインクリメントされる。
制御パケットDAOが新しいか否かは、次の方法によって決定される。ここでは、比較する2つのDAOSequenceをそれぞれA,Bとする。
(i)Aが“128”〜“255”であり、Bが“0”〜“127”である場合
・(256+B−A)がSEQUENCE_WINDOW(=16)以下である場合、Aは、Bよりも小さい。
・(256+B−A)がSEQUENCE_WINDOW(=16)よりも大きい場合、Bは、Aよりも小さい。
そして、大きい方(AまたはB)を有する制御パケットDAOが新しいと判定される。
(ii)両方の値が“127”以下、または“128”以上である場合
・2つの値の差の絶対値がSEQUENCE_WINDOW(=16)以下である場合、比較結果がそのまま結果となる。
・2つの値の差の絶対値がSEQUENCE_WINDOW(=16)よりも大きい場合、同期されていないと判定され、2つのA,Bは、比較できないと判定される。
この場合、受信した制御パケットDAOが最新であると判定しないか、最後に受信したDAOSequenceを有する制御パケットDAOを最新であると判定してもよい。
この発明の実施の形態においては、次の3つのウェイクアップIDを定義する。
(1)ユニキャストID
(2)マルチキャストID
(3)ブロードキャストID
ユニキャストIDは、任意の無線ノードを指し示すウェイクアップIDであり、各無線ノードのMACアドレス等の一意に無線ノードを特定可能なIDである。
マルチキャストIDは、電波範囲内の特定の無線ノードのグループを起動状態へ移行させるためのウェイクアップIDである。
マルチキャストIDは、LocalマルチキャストID、ParentマルチキャストIDおよびChildマルチキャストIDからなる。
LocalマルチキャストIDは、ESSIDまたはPANIDで表わされる同一システムの無線ノードを起動状態へ移行させるためのウェイクアップIDである。
ParentマルチキャストIDは、無線センサーネットワーク10において各無線ノード2〜7から見た場合に親ノードになる得る無線ノード群を示すウェイクアップIDである。
ChildマルチキャストIDは、無線センサーネットワーク10において各無線ノード1〜7から見た場合に子ノードとして収容した無線ノード群を示すウェイクアップIDである。
ブロードキャストIDは、電波範囲内の全ての無線ノードを起動状態へ移行させることができるウェイクアップIDであり、予め無線センサーネットワーク10において決められている。そして、ブロードキャストIDは、無線ノード1〜7の経路制御部15に予め設定されている。
この発明の実施の形態においては、上述したユニキャストID、マルチキャストIDおよびブロードキャストIDをウェイクアップIDとして用いる。
サンプリング間隔決定部16がフレーム送信数Nを取得する方法について説明する。
サンプリング間隔決定部16は、無線センサーネットワーク10におけるセンサー値(=データ)の収集周期、制御フレーム(DIO,DAO)の送信間隔、トポロジーから得られるツリーサイズ(子ノードの総数)およびリンクの通信品質に基づいてフレーム送信数Nを算出する。
ここで、子ノードの総数は、フレーム送信数Nを算出する無線ノードよりも下位の階層に位置し、かつ、フレーム送信数Nを算出する無線ノードを介してシンク(=無線ノード1)へセンサー値を送信可能な無線ノードの総数である。また、全ての子ノードから送信されたセンサー値は、センサー値の収集周期以内にフレーム送信数Nを算出する無線ノードへ届くことを前提としている。更に、制御パケットDIO,DAOのうち、制御パケットDIOのみが送信されることを前提としている。センサー値がシンク(=無線ノード1)へ収集される場合、無線センサーネットワーク10のトポロジーは、安定しており、制御パケットDAOは、送信されないからである。更に、リンクの通信品質は、フレーム送信数Nを算出する無線ノードへの無線フレームの到達率、または受信信号強度RSSIを用いた倍率からなる。無線フレームの到達率は、過去の通信状況から算出され、フレーム送信数Nを算出する無線ノードに実際に到達した無線フレームのフレーム数を送信元の無線ノードから送信された無線フレームのフレーム数で除算することにより算出される。
この方法を用いてフレーム送信数Nを算出する場合、サンプリング間隔決定部16は、例えば、1分間のセンサー値の収集周期と、5分間の制御フレームの送信間隔と、100台の子ノードの総数と、20%の到達率とに基づいて、(60個×100台+12個)/0.2=30060[個/h]のフレーム送信数Nを算出する。
この方法で、子ノードの総数を用いているのは、センサー値を最上位に存在するシンク(=無線ノード1)へ収集するからである。
また、リンクの通信品質として受信信号強度RSSIを用いる場合、RSSI≧−20dBmであれば、倍率が1倍になり、−50dBm≦RSSI<−20dBmであれば、倍率が2倍になり、−80dBm≦RSSI<−50dBmであれば、倍率が5倍になり、RSSI<−80dBmであれば、倍率が10倍になる。従って、サンプリング間隔決定部16は、例えば、1分間のセンサー値の収集周期と、5分間の制御フレームの送信間隔と、100台の子ノードの総数と、−50dBm≦RSSI<−20dBmとに基づいて、(60個×100台+12個)×2=12024[個/h]のフレーム送信数Nを算出する。
このように、リンクの通信品質を用いてフレーム送信数を算出することにより、フレーム送信数Nは、必ず到達した無線フレームのフレーム数になり、フレーム送信数Nの確度を上げることができる。
上述した方法を用いてフレーム送信数Nを算出する場合、サンプリング間隔決定部16は、センサー値の収集周期を制御部14から受け、制御フレームの送信間隔を経路制御部15から受け、経路制御部15から受けたトポロジー情報に基づいてツリーサイズ(子ノードの総数)を得る。
上述した方法によってフレーム送信数Nを算出することによって、フレーム送信数Nを容易に得ることができる。
また、サンプリング間隔決定部16は、無線通信部13が実測したフレーム送信数Nを無線通信部13から受けてもよい。
フレーム送信数Nを実測することによって、無線センサーネットワーク10に即したフレーム送信数Nを得ることができる。
次に、所望のフレーム長を有する無線フレームFRを送信するときの消費電力量と、無線フレームFRを受信するときの消費電力量との和である総電力量が最小となるときのサンプリング間隔Tinterval_minを求める方法について説明する。
図5は、サンプリング間隔の概念図である。図5を参照して、各無線ノード1〜7のウェイクアップ信号受信部17は、検波時間の間、検波し、その後、停止時間の間、停止することを繰り返し実行する。そして、サンプリング間隔は、検波時間と停止時間との和からなる。
また、ウェイクアップ信号受信部17の停止時間の間に消費される電力が停止中の消費電力であり、ウェイクアップ信号受信部17の検波時間の間に消費される電力が検波中の消費電力である。そして、検波中の消費電力は、停止中の消費電力よりも大きい。
無線フレームFRを受信するときのウェイクアップ信号受信部17における1時間当たりの消費電力量をEwr[Wh]とし、ウェイクアップ信号受信部17の検波中の電力をPactiveとし、ウェイクアップ信号受信部17における1時間当たりの総検波時間をTactiveとし、ウェイクアップ信号受信部17の休止中の電力をPsleepとし、ウェイクアップ信号受信部17の1時間当たりの総休止時間をTsleepとする。
そうすると、消費電力量Ewrは、次式によって決定される。
Ewr(Tinterval)=Pactive×Tactive+Psleep×Tsleep・・・(1)
式(1)を用いて消費電力Ewrを求める場合、1時間をサンプリング間隔Tintervalで除算し、検波回数および停止回数を求める。そして、検波時間に検波回数を乗算して1時間当たりの総検波時間Tactiveを求め、停止時間に停止回数を乗算して1時間当たりの総休止時間Tsleepを求める。その後、電力Pactiveに総検波時間Tactiveを積算して消費電力量Pactive×Tactiveを求め、電力Psleepに総休止時間Tsleepを積算して消費電力量Psleep×Tsleepを求める。最後に、消費電力量Pactive×Tactiveと消費電力量Psleep×Tsleepとを加算して消費電力量Ewrを求める。
また、無線フレームFRを送信するときの無線通信部13における1個の無線フレームFRを送信するのに必要な消費電力量をEws[W/フレーム]とし、サンプリング間隔Tintervalで検波可能なフレーム長から求めたフレーム送信時間をTframeとし、無線通信部13の送信中の電力をPtransmitとし、無線通信部13の受信中の電力をPreceiveとし、キャリアセンス時間をTcsとする。
そうすると、消費電力量Ewsは、次式によって決定される。
Ews(Tinterval)=Preceive×Tcs+Ptransmit×Tframe・・・(2)
式(2)を用いて消費電力Ewsを求める場合、フレーム長をサンプリング間隔Tintervalで除算してサンプリング回数を求め、その求めたサンプリング回数にサンプリング間隔Tintervalを乗算してフレーム送信時間Tframeを求める。そして、電力Ptransmitにフレーム送信時間Tframeを乗算して消費電力量Ptransmit×Tframeを求め、電力Preceiveにキャリアセンス時間Tcsを乗算して消費電力量Preceive×Tcsを求める。最後に、消費電力量Ptransmit×Tframeと消費電力量Preceive×Tcsとを加算して消費電力量Ewsを求める。ここで、消費電力量Preceive×Tcsを加算するのは、無線フレームを送信するとき、キャリアセンスを行い、無線通信空間が開いているときに無線フレームを送信するからである。
なお、ACK待ちの消費電力量(Pactive×Twait)を加えて消費電力量Ews(Tinterval)を求めてもよい。
そして、総電力量E(Tinterval)は、次式によって決定される。
E(Tinterval)=Ewr(Tinterval)+Ews(Tinterval)×N・・・(3)
図6は、総電力量とサンプリング間隔との関係を示す図である。図6において、縦軸は、総電力量を表し、横軸は、サンプリング間隔を表す。総電力量は、上述した式(1)〜式(3)を用いて求められたものである。
また、曲線k1〜k8は、それぞれ、1時間当たりのフレーム送信数N[個/h]が0.01[個/h],0.1[個/h],1[個/h],10[個/h],100[個/h],1000[個/h],10000[個/h],100000[個/h]であるときの総電力量とサンプリング間隔との関係を示す。
なお、図6に示す総電力量とサンプリング間隔との関係は、フレーム長とサンプリング間隔との間に、フレーム長を検出するときのサンプリング間隔が長くなるほどフレーム長が長くなり、かつ、サンプリング間隔が短くなるほどフレーム長が短くなる関係が存在することを前提とした場合の総電力量とサンプリング間隔との関係である。
また、図6に示す総電力量とサンプリング間隔との関係は、無線通信部13の稼動時の電力Pactiveが30[mWh]であり、無線通信部13の停止時の電力Psleepが0.5[mWh]であり、無線通信部13における送信に要する電力Ptransmitが25[mWh]であり、無線通信部13における受信に要する電力Preceiveが20[mWh]であり、ウェイクアップ信号受信部17の稼動時の電力Pactiveが50[mWh]であり、ウェイクアップ信号受信部17の停止時の電力Psleepが0.002[mWh]であるときの総電力量とサンプリング間隔との関係である。
図6を参照して、各フレーム送信数Nにおいて、総電力量が最小となるサンプリング間隔Tinterval_minが存在する。また、総電力量が最小となるサンプリング間隔Tinterval_minは、フレーム送信数Nが増えるに従って短くなる(曲線k1〜k8参照)。
更に、フレーム送信数Nが10[個/h],100[個/h],1000[個/h],10000[個/h],100000[個/h]のいずれかである場合、総電力量は、サンプリング間隔が長くなるに従って、低下して最小値に至り、その後、増加する(曲線k4〜k8参照)。そして、総電力量が最小値に至った後、総電力量がサンプリング間隔の増加に伴って増加する関係は、この発明の実施の形態において初めて見出されたものである。
曲線k1〜k8を描画した後、各フレーム送信数Nにおいて、総電力量が最小になるときのサンプリング間隔Tinterval_min(=総電力量が最小となる点A1,A2,A3,A4,A5,A6等におけるサンプリング間隔)を求める。
図7は、サンプリング間隔Tinterval_minとフレーム送信数Nとの関係を示す図である。
図7において、縦軸は、サンプリング間隔Tinterval_minを表し、横軸は、フレーム送信数Nを表す。
各フレーム送信数Nにおいて、総電力量が最小になるときのサンプリング間隔Tinterval_minを求めると、フレーム送信数Nとサンプリング間隔Tinterval_minとの関係をプロットし、近似式を求める。この近似式は、例えば、次式によって表される。
Tinterval_min=αNβ・・・(4)
式(4)において、αおよびβは、無線通信部13の消費電力、ウェイクアップ信号受信部17の消費電力およびウェイクアップ信号を構成するフレーム数によって決定される定数である。
式(4)によって表される近似式は、対数グラフにおいて、曲線k9または直線k10になる。
定数αが14482であり、定数βが−0.482である場合、近似式は、Tinterval_min=14482N−0.482によって表される。
従って、この近似式をサンプリング間隔決定部16に予め設定しておけば、サンプリング間隔決定部16は、無線通信部13から受けたフレーム送信数Nに基づいて、または自己が算出したフレーム送信数Nに基づいて、総電力量E(Tinterval)が最小になるときのサンプリング間隔Tinterval_minを求めることができる。
この発明の実施の形態においては、サンプリング間隔決定部16は、上述した近似式に代えてフレーム送信数Nとサンプリング間隔Tinterval_minとの関係を示す対応表を保持していてもよい。
図8は、フレーム送信数とサンプリング間隔Tinterval_minとの関係を示す対応表を示す図である。
図8を参照して、対応表TBL1は、フレーム送信数とサンプリング間隔Tinterval_minとを含む。フレーム送信数およびサンプリング間隔Tinterval_minは、相互に対応付けられる。
フレーム送信数Nが≧2723[個/h]であるとき、サンプリング間隔Tinterval_minは、160[μsec]である。フレーム送信数Nが646[個/h]≦N<2723[個/h]であるとき、サンプリング間隔Tinterval_minは、320[μsec]である。フレーム送信数Nが153[個/h]≦N<646[個/h]であるとき、サンプリング間隔Tinterval_minは、640[μsec]である。フレーム送信数Nが36[個/h]≦N<153[個/h]であるとき、サンプリング間隔Tinterval_minは、1280[μsec]である。フレーム送信数Nが9[個/h]≦N<36[個/h]であるとき、サンプリング間隔Tinterval_minは、2560[μsec]である。フレーム送信数Nが2[個/h]≦N<9[個/h]であるとき、サンプリング間隔Tinterval_minは、5120[μsec]である。フレーム送信数NがN<2[個/h]であるとき、サンプリング間隔Tinterval_minは、10240[μsec]である。
このように、サンプリング間隔Tinterval_minは、フレーム送信数Nの範囲が1つの範囲だけ減少する毎に2倍になる。これは、次の理由による。1つの理由は、ウェイクアップ信号受信部17の回路構成を簡易化することであり、もう1つの理由は、サンプリング間隔Tinterval_minの種類を抑制することである。各無線ノードのサンプリング間隔Tinterval_minと、それに対応するフレーム長とデータとの対応表を保持する必要があるが、160[μs]単位で線形に増加させると、10240[μs]までの範囲で64個のサンプリング間隔Tinterval_minが必要になる。その結果、対応表も合わせて保持すると、多くのメモリが必要になる。しかし、上述したように、フレーム送信数Nの範囲が1つの範囲だけ減少する毎にサンプリング間隔Tinterval_minを2倍にすることにより、メモリを7個まで減少でき、メモリを節約できる。
サンプリング間隔決定部16は、無線通信部13からフレーム送信数Nを受けると、対応表TBL1を参照して、その受けたフレーム送信数Nに対応するサンプリング間隔Tinterval_minを検出し、その検出したサンプリング間隔Tinterval_minを総電力量が最小になるときのサンプリング間隔として決定する。
なお、対応表TBL1においては、サンプリング間隔Tinterval_minは、フレーム送信数Nが減少するに従って160[μsec]の整数倍ごとに長くなるが、160[μsec]の整数倍は、例示である。従って、対応表TBL1においては、サンプリング間隔Tinterval_minは、フレーム送信数Nが減少するに従って160[μsec]の整数倍以外の単位ごとに長くなるようにしてもよい。
また、サンプリング間隔決定部16は、ウェイクアップ信号を送信する毎に、フレーム送信数Nに基づいてサンプリング間隔Tinterval_minを決定してもよく、例えば、1ヶ月のように、定期的に、フレーム送信数Nに基づいてサンプリング間隔Tinterval_minを決定してもよい。
ウェイクアップ信号を送信する毎に、または定期的に、フレーム送信数Nに基づいてサンプリング間隔Tinterval_minを決定することによって、フレーム送信数Nが変化しても、その変化したフレーム送信数Nに対応してサンプリング間隔Tinterval_minを決定できる。
対応表TBL1に示すように、総電力量が最小になるときのサンプリング間隔Tinterval_minをフレーム送信数Nが減少するに従って160[μsec]の整数倍ごとに長くなるように決定することによって次の効果が得られる。
近似式を用いてサンプリング間隔を算出した場合、サンプリング間隔は、μsecオーダーで算出されるが、対応表TBL1のように160[μsec]の単位でサンプリング間隔Tinterval_minを決定する方がウェイクアップ信号受信部17の回路を簡易化できる。即ち、サンプリング間隔Tinterval_minがμsecオーダーで算出された場合、ウェイクアップ信号受信部17は、μsecオーダーの精度でサンプリングタイミングを決定してサンプリングする必要があるので、ウェイクアップ信号受信部17の回路構成が複雑になる。しかし、サンプリング間隔Tinterval_minが160[μsec]の単位で決定される場合、上述したようにメモリを削減できるので、ウェイクアップ信号受信部17の回路構成を簡易化できる。
その結果、メモリ使用量を抑制しながらフレーム長を複数の無線ノード間で容易に共有できる。
また、対応表TBL1を用いてサンプリング間隔Tinterval_minを決定することによって、サンプリング間隔Tinterval_minを容易に決定できる。
なお、対応表TBL1におけるフレーム送信数Nの範囲は、例示である。従って、この発明の実施の形態においては、図8に示すフレーム送信数Nの範囲と異なるフレーム送信数Nの範囲をサンプリング間隔Tinterval_minに対応付けてもよい。
図9は、サンプリング間隔Tinterval_minと平均フレーム長との関係を示す図である。
図9を参照して、対応表TBL2は、サンプリング間隔Tinterval_minと平均フレーム長とを含む。サンプリング間隔Tinterval_minおよび平均フレーム長は、相互に対応付けられる。
2620[μsec]の平均フレーム長は、10[μsec]のサンプリング間隔Tinterval_minに対応付けられ、3000[μsec]の平均フレーム長は、20[μsec]のサンプリング間隔Tinterval_minに対応付けられ、3760[μsec]の平均フレーム長は、40[μsec]のサンプリング間隔Tinterval_minに対応付けられ、5280[μsec]の平均フレーム長は、80[μsec]のサンプリング間隔Tinterval_minに対応付けられる。
また、8320[μsec]の平均フレーム長は、160[μsec]のサンプリング間隔Tinterval_minに対応付けられ、14400[μsec]の平均フレーム長は、320[μsec]のサンプリング間隔Tinterval_minに対応付けられ、26560[μsec]の平均フレーム長は、640[μsec]のサンプリング間隔Tinterval_minに対応付けられ、50880[μsec]の平均フレーム長は、1280[μsec]のサンプリング間隔Tinterval_minに対応付けられる。
更に、99520[μsec]の平均フレーム長は、2560[μsec]のサンプリング間隔Tinterval_minに対応付けられ、196800[μsec]の平均フレーム長は、5120[μsec]のサンプリング間隔Tinterval_minに対応付けられ、391360[μsec]の平均フレーム長は、10240[μsec]のサンプリング間隔Tinterval_minに対応付けられ、780480[μsec]の平均フレーム長は、20480[μsec]のサンプリング間隔Tinterval_minに対応付けられる。
このように、平均フレーム長は、サンプリング間隔Tinterval_minが長くなるに従って長くなり、サンプリング間隔Tinterval_minが短くなるに従って短くなる。そして、隣接する2つの平均フレーム長の差は、サンプリング間隔Tinterval_minが長くなる方向において、380[μsec],760[μsec],1520[μsec],3040[μsec],6080[μsec],12160[μsec],24320[μsec],48640[μsec],97280[μsec],194560[μsec],389120[μsec]と大きくなる。即ち、隣接する2つの平均フレーム長の差は、サンプリング間隔Tinterval_minが長くなる方向において、380×2m−1(mは正の整数)に従って大きくなる。
これは、平均フレーム長に基づいて複数の無線ノードの複数のウェイクアップIDに割り当てられた複数のフレーム長が複数のサンプリング間隔Tinterval_minの間で重ならないようにするためである。
なお、隣接する2つの平均フレーム長の差は、サンプリング間隔Tinterval_minが長くなる方向において、380×2m−1以外の式に従って長くなってもよい。そして、一般的には、隣接する2つの平均フレーム長の差は、平均フレーム長に基づいて複数の無線ノードの複数のウェイクアップIDに割り当てられた複数のフレーム長が複数のサンプリング間隔Tinterval_minの間で重ならなければ、サンプリング間隔Tinterval_minが長くなる方向において、どのように大きくなっていてもよい。
また、対応表TBL2におけるサンプリング間隔Tinterval_minおよび平均フレーム長の具体値は、例示である。従って、この発明の実施の形態においては、図9に示すサンプリング間隔Tinterval_minの具体値と異なる具体値と、図9に示す平均フレーム長の具体値と異なる具体値とを相互に対応付けて、対応表TBL2を作成してもよい。
図10は、サンプリング間隔Tinterval_minに対応付けられたフレーム長とデータとの関係を示す図である。
図10を参照して、対応表TBL3は、サンプリング間隔Tinterval_minと、フレーム長と、データとを含む。フレーム長およびデータは、相互に対応付けられる。フレーム長とデータとの対応関係は、サンプリング間隔Tinterval_minに対応付けられる。
サンプリング間隔Tinterval_minが160[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、7.04,7.20,7.36,7.52,7.68,7.84,8.00,8.16,8.32,8.48,8.64,8.80,8.96,9.12,9.28,9.44[msec]のフレーム長に対応付けられる。そして、0x0〜0xFの各々は、4ビットからなる。
7.04,7.20,・・・,9.44[μsec]のフレーム長は、160[μsec]のサンプリング間隔Tinterval_minに対応付けられた8.32[msec]の平均フレーム長と、8.32[msec]の平均フレーム長を0.16[msec](=160[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して得られたフレーム長とを含む。
なお、8.32[msec]の平均フレーム長を0.16[msec](=160[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して複数のフレーム長を生成するのは、サンプリング間隔Tinterval_minが160[μsec]であるので、異なる2つのフレーム長を識別できるようにするためである。
サンプリング間隔Tinterval_minが320[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、11.84,12.16,12.48,12.80,13.12,13.44,13.76,14.08,14.40,14.72,15.04,15.36,15.68,16.00,16.32,16.64[msec]のフレーム長に対応付けられる。
11.84,12.16,・・・,16.64[μsec]のフレーム長は、320[μsec]のサンプリング間隔Tinterval_minに対応付けられた14.40[msec]の平均フレーム長と、14.40[msec]の平均フレーム長を0.32[msec](=320[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して得られたフレーム長とを含む。
なお、14.40[msec]の平均フレーム長を0.32[msec](=320[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して複数のフレーム長を生成するのは、サンプリング間隔Tinterval_minが320[μsec]であるので、異なる2つのフレーム長を識別できるようにするためである。
サンプリング間隔Tinterval_minが640[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、21.44,22.08,22.72,23.36,24.00,24.64,25.28,25.92,26.56,27.20,27.84,28.48,29.12,29.76,30.40,31.04[msec]のフレーム長に対応付けられる。
21.44,22.08,・・・,31.04[μsec]のフレーム長は、640[μsec]のサンプリング間隔Tinterval_minに対応付けられた26.56[msec]の平均フレーム長と、26.56[msec]の平均フレーム長を0.64[msec](=640[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して得られたフレーム長とを含む。
なお、26.56[msec]の平均フレーム長を0.64[msec](=640[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して複数のフレーム長を生成するのは、サンプリング間隔Tinterval_minが640[μsec]であるので、異なる2つのフレーム長を識別できるようにするためである。
サンプリング間隔Tinterval_minが1280[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、40.64,41.92,43.20,44.48,45.76,47.04,48.32,49.60,50.88,52.16,53.44,54.72,56.00,57.28,58.56,59.84[msec]のフレーム長に対応付けられる。
40.64,41.92,・・・,59.84[μsec]のフレーム長は、1280[μsec]のサンプリング間隔Tinterval_minに対応付けられた50.88[msec]の平均フレーム長と、50.88[msec]の平均フレーム長を1.28[msec](=1280[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して得られたフレーム長とを含む。
なお、50.88[msec]の平均フレーム長を1.28[msec](=1280[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して複数のフレーム長を生成するのは、サンプリング間隔Tinterval_minが1280[μsec]であるので、異なる2つのフレーム長を識別できるようにするためである。
サンプリング間隔Tinterval_minが2560[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、79.04,81.60,84.16,86.72,89.28,91.84,94.40,96.96,99.52,102.08,104.64,107.20,109.76,112.32,114.88,117.44[msec]のフレーム長に対応付けられる。
79.04,81.60,・・・,117.44[μsec]のフレーム長は、2560[μsec]のサンプリング間隔Tinterval_minに対応付けられた99.52[msec]の平均フレーム長と、99.52[msec]の平均フレーム長を2.56[msec](=2560[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して得られたフレーム長とを含む。
なお、99.52[msec]の平均フレーム長を2.56[msec](=2560[μsec]のサンプリング間隔Tinterval_min)の単位で加算または減算して複数のフレーム長を生成するのは、サンプリング間隔Tinterval_minが2560[μsec]であるので、異なる2つのフレーム長を識別できるようにするためである。
このように、160[μsec],320[μsec],640[μsec],1280[μsec],2560[μsec]のサンプリング間隔Tinterval_minにそれぞれ対応する7.04,7.20・・・,9.44[msec],11.84,12.16,・・・,16.64[msec],21.44,22.08,・・・,31.04[msec],40.64,41.92,・・・,59.84[msec],79.04,81.60,・・・,117.44[msec]のフレーム長は、160[μsec],320[μsec],640[μsec],1280[μsec],2560[μsec]のサンプリング間隔Tinterval_minにそれぞれ対応する8.32[μsec],14.40[μsec],26.56[μsec],50.88[μsec],99.52[μsec]の平均フレーム長をサンプリング間隔Tinterval_minの単位で加算または減算して得られる。
各無線ノード1〜7のフレーム長対応表19は、対応表TBL3を保持している。
図11は、無線フレームのサンプリングの概念図である。図11を参照して、無線フレームFRの受信信号は、160[μsec]のサンプリング間隔Tinterval_min毎に包絡線検波される。そして、包絡線検波された検波値の“1”の個数がカウントされ、“1”の個数に160[μsec]のサンプリング間隔Tinterval_minを乗算してフレーム長が検出される。
無線フレームFR1は、L1のフレーム長を有し、無線フレームFR2は、L2のフレーム長を有する。フレーム長L1およびフレーム長L2は、対応表TBL3における7.04,7.20,・・・,9.44[msec]の複数のフレーム長のうち、隣接する2つのフレーム長からなる。
フレーム長L1,L2は、上述したように無線フレームFR1,FR2の受信信号を160[μsec]のサンプリング間隔Tinterval_minで包絡線検波して検出されるので、無線フレームFR2の受信信号を160[μsec]のサンプリング間隔Tinterval_minで包絡線検波して得られた検波値の“1”の個数は、無線フレームFR1の受信信号を160[μsec]のサンプリング間隔Tinterval_minで包絡線検波して得られた検波値の“1”の個数よりも“1”個だけ大きい。
その結果、フレーム長L2は、フレーム長L1よりも160[μsec](=サンプリング間隔Tinterval_min)だけ長い。
従って、2つのフレーム長L1,L2を識別できる。
160[μsec]以外のサンプリング間隔Tinterval_minが用いられた場合も、同様に、隣接する2つのフレーム長を識別できる。
図12は、ウェイクアップ信号を送信する方法を説明するための図である。
この発明の実施の形態においては、ウェイクアップIDは、フレーム長によって表される。より具体的には、ウェイクアップIDは、WuID1〜WuID4によって表される。従って、ウェイクアップ信号は、WuID1〜WuID4のビット値にそれぞれ対応する4個のフレーム長を有する4個の無線フレームからなる。
図12を参照して、受信ノードは、上述した方法によってサンプリング間隔Tinterval_minを決定し、その決定したサンプリング間隔Tinterval_min(例えば、640μsec)を制御パケットDIOに含めて送信ノードへ送信する。
送信ノードの無線通信部13は、制御パケットDIOを受信し、その受信した制御パケットDIOを復調して制御部14へ出力する。そして、送信ノードの制御部14は、制御パケットDIOを無線通信部13から受け、その受けた制御パケットDIOからサンプリング間隔Tinterval_min(=640μsec)を取り出して保持する。
その後、送信ノードの制御部14は、受信ノードをスリープ状態から起動状態へ移行させるとき、経路制御部15から受信ノードのMACアドレスを受け、その受けたMACアドレスのハッシュ値を演算する。この場合、ハッシュ値は、例えば、[0000000000000001]の16ビットからなるものとする。
そして、送信ノードの制御部14は、フレーム長対応表19に格納された対応表TBL3を参照して、640[μsec]のサンプリング間隔Tinterval_minに対応する21.44,22.08,・・・,31.04[msec]のうち、0x1(=0000)に対応する22.08[msec]のフレーム長と、0x0(=0000)に対応する21.44[msec]のフレーム長と、0x0(=0000)に対応する21.44[msec]のフレーム長と、0x0(=0000)に対応する21.44[msec]のフレーム長とを検出する。
その後、送信ノードの制御部14は、22.08[msec]のフレーム長を有する無線フレームFR1と、21.44[msec]のフレーム長を有する無線フレームFR2と、21.44[msec]のフレーム長を有する無線フレームFR3と、21.44[msec]のフレーム長を有する無線フレームFR4とを生成する。そして、送信ノードの制御部14は、無線フレームFR1〜FR4からなるウェイクアップ信号を無線通信部13へ出力する。
送信ノードの無線通信部13は、無線フレームFR1〜FR4からなるウェイクアップ信号を制御部14から受け、その受けたウェイクアップ信号(=無線フレームFR1〜FR4)を変調する。そして、送信ノードの無線通信部13は、その変調したウェイクアップ信号をアンテナ11を介して送信する。この場合、送信ノードの無線通信部13は、変調した無線フレームFR1〜FR4を順次送信する。
受信ノードのウェイクアップ信号受信部17は、アンテナ12を介してウェイクアップ信号を受信し、その受信したウェイクアップ信号の受信信号をサンプリング間隔Tinterval_min(=640μsec)で包絡線検波してビット列を得る。
その後、受信ノードのウェイクアップ信号受信部17は、ビット列の先頭から“1”の個数をカウントし、ビット列のビット値が“0”になると、カウントを停止し、そのカウントを停止したときのカウント値を“1”の個数N1とするとともにカウント値をリセットする。その後、受信ノードのウェイクアップ信号受信部17は、ビット列のビット値が“1”になると、ビット列のビット値が“0”になるまで“1”の個数をカウントし、ビット列のビット値が“0”になると、カウントを停止し、そのカウントを停止したときのカウント値を“1”の個数N2とするとともにカウント値をリセットする。
受信ノードのウェイクアップ信号受信部17は、この動作をビット列の最後まで繰り返し実行して4つの“1”の個数N1〜N4を得る。
そして、受信ノードのウェイクアップ信号受信部17は、個数N1にサンプリング間隔Tinterval_min(=640μsec)を乗算して22.08msecのフレーム長を取得し、個数N2にサンプリング間隔Tinterval_min(=640μsec)を乗算して21.44msecのフレーム長を取得し、個数N3にサンプリング間隔Tinterval_min(=640μsec)を乗算して21.44msecのフレーム長を取得し、個数N4にサンプリング間隔Tinterval_min(=640μsec)を乗算して21.44msecのフレーム長を取得する。
そうすると、受信ノードのウェイクアップ信号受信部17は、22.08msecのフレーム長、21.44msecのフレーム長、21.44msecのフレーム長、および21.44msecのフレーム長をウェイクアップ信号判定部18へ出力する。
受信ノードのウェイクアップ信号判定部18は、22.08msecのフレーム長、21.44msecのフレーム長、21.44msecのフレーム長、および21.44msecのフレーム長をウェイクアップ信号受信部17から受ける。また、受信ノードのウェイクアップ信号判定部18は、対応表TBL3をフレーム長対応表19から受ける。
そして、受信ノードのウェイクアップ信号判定部18は、対応表TBL3を参照して、サンプリング間隔Tinterval_min(=640μsec)および22.08msecのフレーム長に対応する0x1を検出し、サンプリング間隔Tinterval_min(=640μsec)および21.44msecのフレーム長に対応する0x0を検出し、サンプリング間隔Tinterval_min(=640μsec)および21.44msecのフレーム長に対応する0x0を検出し、サンプリング間隔Tinterval_min(=640μsec)および21.44msecのフレーム長に対応する0x0を検出する。その後、受信ノードのウェイクアップ信号判定部18は、0x1,0x0,0x0,0x0を一列に配列して0x00x00x00x1(=[0000000000000001])からなるウェイクアップIDを取得する。
そして、受信ノードのウェイクアップ信号判定部18は、[0000000000000001]のウェイクアップIDが受信ノードのMACアドレスに一致するか否かを判定する。
受信ノードのウェイクアップ信号判定部18は、[0000000000000001]のウェイクアップIDが受信ノードのMACアドレスに一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15およびサンプリング間隔決定部16へ出力する。これによって、受信ノードは、スリープ状態から起動状態へ移行する。
一方、受信ノードのウェイクアップ信号判定部18は、[0000000000000001]のウェイクアップIDが受信ノードのMACアドレスに一致しないと判定したとき、[0000000000000001]のウェイクアップIDを破棄し、何も出力しない。
このように、送信ノードは、総電力量が最小になるように決定されたサンプリング間隔Tinterval_minに対応して決定されたフレーム長を有する複数の無線フレームからウェイクアップ信号を生成して送信し、受信ノードは、ウェイクアップ信号の受信処理をサンプリング間隔Tinterval_minで行って起動状態へ移行する。
従って、ウェイクアップ信号の送受信による消費電力を減少できる。
この発明の実施の形態においては、ユニキャストIDが用いられる場合、ユニキャストIDにおいては、WuID1は、0x1に固定され、WuID2〜WuID4は、起動対象となる無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
また、ブロードキャストIDが用いられる場合、ブロードキャストIDにおいては、WuID1は、0xFに固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
更に、マルチキャストIDのLocalマルチキャストIDが用いられる場合、マルチキャストIDのLocalマルチキャストIDにおいては、WuID1は、0x2に固定され、WuID2〜WuID4は、PANIDまたはRPL instance ID等の同一システムを示す識別子からなる。PANIDまたはRPL instance IDが12ビットでない場合、PANIDまたはRPL instance IDのハッシュ値を演算して12ビットにする。
更に、マルチキャストIDのParentマルチキャストIDが用いられる場合、マルチキャストIDのParentマルチキャストIDにおいては、WuID1は、0x3に固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
更に、マルチキャストIDのChildマルチキャストIDが用いられる場合、マルチキャストIDのChildマルチキャストIDにおいては、WuID1は、0x4に固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
図13は、図2に示す経路制御部15が保持するルーティングテーブルRTの構成図である。図13を参照して、ルーティングテーブルRTは、送信先と、次の無線ノードと、ホップ数と、Rankとを含む。送信先、次の無線ノード、ホップ数およびRankは、相互に対応付けられる。
送信先は、ウェイクアップ信号、制御パケットDIO,DAOおよびパケット等の受信先の無線ノードのMACアドレスMACaddからなる。次の無線ノードは、送信先までの経路上においてルーティングテーブルRTを保持する無線ノードに送信先側で隣接する無線ノードのMACアドレスMACadd_NBからなる。
ホップ数は、ルーティングテーブルRTを保持する無線ノードから送信先の無線ノードまでのホップ数hからなる。Rankは、送信先(無線ノード)のシンク(=無線ノード)に対する近さの程度を示し、r=256×j(=256,512,768,・・・)からなる。
図14は、図1に示す無線センサーネットワーク10における無線ノード1〜3の配置状態を示す図である。
図14を参照して、無線ノード1〜3は、それぞれ、電波範囲REG1〜REG3を有する。無線ノード1は、2つの電波範囲REG1,REG2が重なった領域に存在する。無線ノード2は、3つの電波範囲REG1〜REG3が重なった領域に存在する。無線ノード3は、2つの電波範囲REG2,REG3が重なった領域に存在する。
このように、自己の電波範囲がシンク(=無線ノード1)まで届かない無線ノードが存在する状態において、各無線ノード2〜7からシンク(=無線ノード1)までの経路の構築が行われる。
経路の構築方法について説明する。図15は、経路を構築するときの動作を説明するためのフローチャートである。図15を参照して、経路を構築する動作が開始されると、無線ノード1(=シンク)の制御部14は、ウェイクアップ信号のウェイクアップIDとしてブロードキャストIDを経路制御部15から受ける。また、制御部14は、フレーム長対応表19から対応表TBL3を受け、サンプリング間隔決定部16からサンプリング間隔Tinterval_min(=1280μsec)を受ける。
そして、無線ノード1の制御部14は、無線ノード2のMACアドレスのハッシュ値を演算し、12ビットのハッシュ値a1a2a3a4a5a6a7a8a9a10a11a12を取得する。その結果、ブロードキャストIDは、a9a10a11a12=0x2、a5a6a7a8=0x0、a1a2a3a4=0x3として、0xF,0x2,0x0,0x3によって表される。
その後、無線ノード1の制御部14は、対応表TBL3を参照して、サンプリング間隔Tinterval_min(=1280μsec)に対応する複数の40.64,41.92,・・・,59.84[msec]のうち、0xFに対応する59.84[msec]のフレーム長FL1と、0x2に対応する43.20[msec]のフレーム長FL2と、0x0に対応する40.64[msec]のフレーム長FL3と、0x3に対応する44.48[msec]のフレーム長FL4とを検出する。
そうすると、無線ノード1の制御部14は、4個のフレーム長FL1〜FL4をそれぞれ有する4個の無線フレームFR1〜FR4を生成して無線通信部13へ出力する。
無線ノード1の無線通信部13は、4個の無線フレームFR1〜FR4を制御部14から受け、その受けた4個の無線フレームFR1〜FR4からなるウェイクアップ信号WuSを変調し、その変調したウェイクアップ信号WuSをアンテナ11を介してブロードキャストする(ステップS1)。
無線ノード2のウェイクアップ信号受信部17は、一定の間隔で起動状態へ移行し、アンテナ12を介して受信電力の有無を確認する。そして、無線ノード2のウェイクアップ信号受信部17は、受信電力を検出すると、アンテナ12を介してウェイアップ信号WuSを受信し、その受信したウェイクアップ信号の受信電波に基づいて、上述した方法によって4個のフレーム長FL1〜FL4を検出する。そうすると、無線ノード1のウェイクアップ信号受信部17は、4個のフレーム長FL1〜FL4をウェイクアップ信号判定部18へ出力する。
無線ノード2のウェイクアップ信号判定部18は、対応表TBL3をフレーム長対応表19から受ける。そして、無線ノード2のウェイクアップ信号判定部18は、4個のフレーム長FL1〜FL4をウェイクアップ信号受信部17から受けると、対応表TBL3を参照して、上述した方法によって4個のフレーム長FL1〜FL4をそれぞれビット値0xF,0x2,0x0,0x3に変換してブロードキャストIDを取得する。そうすると、無線ノード2のウェイクアップ信号判定部18は、ブロードキャストIDが、予め保持したウェイクアップID(=ブロードキャストID)に一致すると判定し、起動信号を生成して無線通信部13、制御部14、経路制御部15およびサンプリング間隔決定部16へ出力する。これによって、無線ノード2は、スリープ状態から起動状態へ移行する(ステップS2)。
その後、無線ノード2の制御部14は、無線ノード2のMACアドレスを含む起動通知を生成し、その生成した起動通知を無線通信部13へ出力する。そして、無線ノード2の無線通信部13は、起動通知を制御部14から受け、その受けた起動通知を変調し、その変調した起動通知をアンテナ11を介してブロードキャストする。
無線ノード1の無線通信部13は、アンテナ11を介して起動通知を受信する。そして、無線ノード1の制御部14は、無線通信部13から起動通知を受ける。
そして、無線ノード1の制御部14は、起動通知を受けると、無線ノード2が起動状態へ移行したことを検知する。
そして、無線ノード1の経路制御部15は、無線ノード1(=シンク)のMACアドレスMACadd1からなるrootのアドレスと、無線ノード2のMACアドレスMACadd2からなる送信先と、無線ノード1(=シンク)のMACアドレスMACadd1からなる送信元と、ESSIDまたはPANIDからなるID格納部と、256からなるRankと、1からなるDTSNとを含むDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を生成し、その生成したDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を制御部14へ出力する。
無線ノード1の制御部14は、DIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を経路制御部15から受け、その受けたDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を無線通信部13へ出力する。
無線ノード1の無線通信部13は、DIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を制御部14から受け、その受けたDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を変調する。そして、無線ノード1の無線通信部13は、その変調したDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]をアンテナ11を介して送信する(ステップS3)。その後、無線ノード1は、起動状態からスリープ状態へ移行する。
一方、無線ノード2の無線通信部13は、アンテナ11を介してDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を受信し(ステップS4)、その受信したDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を制御部14へ出力する。
そして、無線ノード2の制御部14は、DIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を無線通信部13から受け、その受けたDIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を経路制御部15へ出力する。
無線ノード2の経路制御部15は、DIO1=[MACadd1/MACadd2/MACadd1/ESSID/256/1]を制御部14から受ける。そして、無線ノード2の経路制御部15は、DIO1の先頭のアドレスMACadd1を参照して、rootが無線ノード1であることを検知する。また、無線ノード2の経路制御部15は、DIO1の2個目のアドレスMACadd2を参照して、DIO1の送信先が無線ノード2であることを検知する。更に、無線ノード2の経路制御部15は、DIO1の3個目のアドレスMACadd1を参照してDIO1の送信元が無線ノード1(=シンク)であることを検知する。更に、無線ノード2の経路制御部15は、“256”からなるRankおよび“1”からなるDTSNをDIO1から取り出して保持する。そして、無線ノード2の経路制御部15は、“256”からなるRankに基づいて、無線ノード1(=シンク)から無線ノード2までのホップ数が“1”であることを検知する。“256”のRankは、Rankの最小値であり、無線ノード2は、その最小値である“256”からなるRankを無線ノード1(=シンク)から直接受信したからである。また、無線ノード2の経路制御部15は、無線ノード1(=シンク)が最小のRankを有するので、無線ノード1(=シンク)が無線ノード2の親ノードであることを検知する。
そうすると、無線ノード2の経路制御部15は、ルーティングテーブルRTの送信先にMACadd1を格納し、次の無線ノードにMACadd1を格納し、ホップ数に“1”を格納し、Rankに“256”を格納する。そして、無線ノード2の経路制御部15は、“256”のRankに基づいて、無線ノード2のRankが“512”からなることを検知し、“512”のRankを保持する。
その後、無線ノード2の経路制御部15は、DIOを最初に受信したので、“1”からなるDTSNに基づいて、DTSNが増加したことを検知し、DAOを送信すると判定する。
そうすると、無線ノード2の制御部14は、経路制御部15からの依頼に応じて、ウェイクアップ信号のウェイクアップIDとしてユニキャストIDを生成する。DAOは、無線ノード1へ送信されるので、無線ノード2の制御部14は、無線ノード1のMACアドレスMACadd1を経路制御部15から受ける。そして、無線ノード2の制御部14は、MACアドレスMACadd1のハッシュ値を演算し、12ビットのハッシュ値b1b2b3b4b5b6b7b8b9b10b11b12を取得する。その結果、ユニキャストIDは、b9b10b11b12=0x5、b5b6b7b8=0x2、b1b2b3b4=0x8として、0x1,0x5,0x2,0x8によって表される。
その後、無線ノード2の制御部14は、対応表TBL3を参照して、サンプリング間隔Tinterval_min(=1280μsec)に対応する複数の40.64,41.92,・・・,59.84[msec]のうち、0x1に対応する40.64[msec]のフレーム長FL5と、0x5に対応する47.04[msec]のフレーム長FL6と、0x2に対応する43.20[msec]のフレーム長FL7と、0x8に対応する50.88[msec]のフレーム長FL8とを検出する。
そうすると、無線ノード2の制御部14は、4個のフレーム長FL5〜FL8をそれぞれ有する4個の無線フレームFR5〜FR8を生成して無線通信部13へ出力する。
無線ノード2の無線通信部13は、4個の無線フレームFR5〜FR8を制御部14から受け、その受けた4個の無線フレームFR5〜FR8からなるウェイクアップ信号WuSを変調し、その変調したウェイクアップ信号WuSをアンテナ11を介してブロードキャストする(ステップS5)。
無線ノード1のウェイクアップ信号受信部17は、一定の間隔で起動状態へ移行し、受信電力の有無を確認する。そして、無線ノード1のウェイクアップ信号受信部17は、受信電力を検出すると、アンテナ12を介してウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波に基づいて、上述した方法によって4個のフレーム長FL5〜FL8を検出する。そうすると、無線ノード1のウェイクアップ信号受信部17は、4個のフレーム長FL5〜FL8をウェイクアップ信号判定部18へ出力する。
無線ノード1のウェイクアップ信号判定部18は、4個のフレーム長FL5〜FL8をウェイクアップ信号受信部17から受けると、対応表TBL3を参照して、上述した方法によって4個のフレーム長FL5〜FL8をそれぞれビット値0x1,0x5,0x2,0x8に変換してユニキャストIDを取得する。
そうすると、無線ノード1のウェイクアップ信号判定部18は、ユニキャストIDが、予め保持したウェイクアップIDに一致すると判定し、起動信号を生成して無線通信部13、制御部14、経路制御部15およびサンプリング間隔決定部16へ出力する。これによって、無線ノード1は、スリープ状態から起動状態へ移行する(ステップS6)。
その後、無線ノード1は、無線ノード2と同じ方法によって起動通知を生成してブロードキャストする。
そうすると、無線ノード2の経路制御部15は、無線ノード1から送信された起動通知に応じて、MACアドレスMACadd1からなる親ノードのアドレスと、MACアドレスMACadd2からなる送信元と、“1”からなるDAOSequenceとを含むDAO1=[MACadd1/MACadd2/1]を生成して制御部14へ出力する。
無線ノード2の制御部14は、DAO1=[MACadd1/MACadd2/1]を経路制御部15から受け、その受けたDAO1=[MACadd1/MACadd2/1]を無線通信部13へ出力する。
無線ノード2の無線通信部13は、DAO1=[MACadd1/MACadd2/1]を制御部14から受け、その受けたDAO1=[MACadd1/MACadd2/1]を変調する。そして、無線ノード2の無線通信部13は、その変調したDAO1=[MACadd1/MACadd2/1]をアンテナ11を介して送信する(ステップS7)。
その後、無線ノード2は、起動状態からスリープ状態へ移行する。
無線ノード1の無線通信部13は、アンテナ11を介してDAO1=[MACadd1/MACadd2/1]を受信し(ステップS8)、その受信したDAO1=[MACadd1/MACadd2/1]を復調して制御部14へ出力する。
無線ノード1の制御部14は、DAO1=[MACadd1/MACadd2/1]を無線通信部13から受け、その受けたDAO1=[MACadd1/MACadd2/1]を経路制御部15へ出力する。
無線ノード1の経路制御部163は、DAO1=[MACadd1/MACadd2/1]を制御部14から受ける。そして、無線ノード1の経路制御部15は、DAO1の先頭のアドレスMACadd1および2番目のアドレスMACadd2を参照して、無線ノード2が無線ノード1の子ノードであることを検知する。無線ノード1は、無線ノード2からDAO1を直接受信したからである。そうすると、無線ノード2の経路制御部15は、ルーティングテーブルRTの送信先および次の無線ノードにアドレスMACadd2を格納し、ホップ数に“1”を格納し、Rankに“512”を格納する。この場合、無線ノード1の経路制御部15は、DAO1を無線ノード2から直接受信したので、無線ノード1から無線ノード2までのホップ数が“1”であることが解る。また、無線ノード1の経路制御部15は、無線ノード1から無線ノード2までのホップ数が“1”であるので、無線ノード2のRankが“512”であることが解る。
その後、無線ノード2は、ステップS1における無線ノード1の動作と同じ動作を実行し、ウェイクアップ信号WuSをブロードキャストする(ステップS9)。
そして、無線ノード3は、ステップS2における無線ノード2の動作と同じ動作によってスリープ状態から起動状態へ移行し(ステップS10)、アドレスMACadd3を含む起動通知をブロードキャストする。
その後、無線ノード2は、起動通知を受信すると、ステップS3における無線ノード1の動作と同じ動作によってDIOを送信し(ステップS11)、起動状態からスリープ状態へ移行する。
無線ノード3は、DIOを受信し(ステップS12)、その受信したDIOに基づいて、上述した無線ノード2と同じ方法によってルーティングテーブルRTに新たな経路の経路情報を格納する。また、無線ノード3は、受信したDIOに含まれるRank(=512)に基づいて、自己のRankが“768”であることを検知し、“768”からなるRankを保持する。更に、無線ノード3は、受信したDIOに含まれるDTSNの数値が増加していることを検知し、DAOを送信すると判定する。
そうすると、無線ノード3は、ステップS5における無線ノード2の動作と同じ動作によってユニキャストIDを表すフレーム長を有する無線フレームからなるウェイクアップ信号WuSをユニキャストする(ステップS13)。
無線ノード2は、ステップS2における動作と同じ動作によって、スリープ状態から起動状態へ移行し(ステップS14)、無線ノード2のアドレスMACadd2を含む起動通知をブロードキャストする。
無線ノード3は、起動通知を受信すると、ステップS7における動作と同じ動作によってDAOを送信する(ステップS15)。その後、無線ノード3は、起動状態からスリープ状態へ移行する。
無線ノード2は、DAOを受信し(ステップS16)、DAOに含まれるDAOSequenceに基づいて、上述した方法によって、受信したDAOが最新であると判定し、DAOを転送すべきと判定する。
そして、無線ノード2は、ステップS5の動作と同じ動作によってユニキャストIDを表すフレーム長を有する無線フレームからなるウェイクアップ信号WuSを送信する(ステップS17)。
そして、無線ノード1は、ステップS6における動作と同じ動作によってスリープ状態から起動状態へ移行し(ステップS18)、無線ノード1のアドレスMACadd1を含む起動通知をブロードキャストする。
その後、無線ノード2は、起動通知を受信すると、ステップS6における動作と同じ動作によってDAOを送信する(ステップS19)。
無線ノード1は、DAOを受信し(ステップS20)、DAOの親ノードのアドレスがMACadd2からなり、送信元がMACアドレスMACadd3からなるので、ルーティングテーブルRTの送信先にMACアドレスMACadd3を格納し、次の無線ノードにMACアドレスMACadd2を格納し、ホップ数に“2”を格納し、Rankに“768”を格納してルーティングテーブルRTを更新する。なお、無線ノード1は、自己から無線ノード2までのホップ数が“1”であることが無線ノード2を送信先とする経路に対応してルーティングテーブルRTに既に格納されており、無線ノード3の親ノードが無線ノード2であるので、自己から無線ノード3までのホップ数が“2”であることを検知できる。また、無線ノード1は、無線ノード2のRankが“512”であることが無線ノード2を送信先とする経路に対応してルーティングテーブルRTに既に格納されており、無線ノード3の親ノードが無線ノード2であるので、無線ノード3のRankが“768”であることを検知できる。
以降、無線ノード1〜7は、上述した動作を繰り返し実行し、無線ノード1から各無線ノード2〜7までの経路を確立し、その確立した経路の経路情報を含むルーティングテーブルRTを作成する。そして、無線ノード1は、その作成したルーティングテーブルRTに基づいて、無線ノード1〜7のトポロジー状態を示すトポロジー情報を作成して保持する。
図15に示すフローチャートにおいて、無線ノード1は、DIOを送信する場合、ウェイクアップ信号をブロードキャストして無線ノード2を起動状態へ移行させ、その後、DIOを送信する(ステップS1〜S3参照)。そして、無線ノード1は、DIOの送信を完了すると、スリープ状態へ移行する。
また、無線ノード2は、ウェイクアップ信号に応じて起動状態へ移行すると、DIOを受信し、DAOを送信する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、DAOを送信する(ステップS4,S5,S7参照)。そして、無線ノード2は、DAOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード2は、DIOを送信する場合、ウェイクアップ信号をブロードキャストして無線ノード3を起動状態へ移行させ、その後、DIOを送信する(ステップS9〜S11参照)。そして、無線ノード2は、DIOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード3は、ウェイクアップ信号に応じて起動状態へ移行すると、DIOを受信し、DAOを送信する場合、ウェイクアップ信号をユニキャストして無線ノード2を起動状態へ移行させ、その後、DAOを送信する(ステップS12,S13,S15参照)。そして、無線ノード3は、DAOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード2は、ウェイクアップ信号に応じて起動状態へ移行すると、DAOを受信し、DAOを転送する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、DAOを送信する(ステップS16,S17,S19参照)。そして、無線ノード2は、DAOの送信を完了すると、スリープ状態へ移行する。
このように、無線ノード1〜3の各々は、起動状態へ移行すると、必要な動作を行った後、スリープ状態へ移行する。そして、起動状態においては、無線ノード2は、無線ノード3から受信したDAOの転送が必要な場合、DAOの転送を完了した後にスリープ状態へ移行する。その結果、無線ノード3から送信されたDAOは、迅速に無線ノード1へ届けられる。つまり、各無線ノード1〜3は、必要な場合のみ起動状態へ移行して必要な動作を行った後、スリープ状態へ移行する。
また、無線ノード1〜3の各々は、送信先をスリープ状態から起動状態へ移行させる場合、ウェイクアップ信号WuSの送信に必要な消費電力量と、ウェイクアップ信号WuSの受信に必要な消費電力量との和である総電力量が最小になるようにサンプリング間隔Tinterval_minを決定し、その決定したサンプリング間隔Tinterval_minを用いてウェイクアップ信号WuSを送受信する。
従って、無線センサーネットワーク10において、経路を確立するとき、消費電力を低減できる。
図16は、図15に示すフローチャートに従って構築されるトポロジーの例を示す図である。
図16を参照して、図15に示すステップS1〜S8が実行されることにより、無線ノード2が無線ノード1に接続される(図16の(a)参照)。
その後、図15に示すステップS9〜S20が実行されることにより、無線ノード3が無線ノード2に接続される(図16の(b)参照)。
そして、図15に示すステップS1〜ステップS20が繰り返し実行されることにより、無線ノード4が無線ノード1に接続され(図16の(c)参照)、無線ノード5が無線ノード4に接続され、無線ノード6が無線ノード4に接続され、無線ノード7が無線ノード5に接続される(図16の(d)参照)。
シンクである無線ノード1がルーティングテーブルRTを作成する場合、無線ノード1は、無線ノード2〜7の各々が作成した制御パケットDAOを受信し、その制御パケットDAOには、制御パケットDAOを作成した無線ノード(=無線ノード2〜7のいずれか)の親ノードのアドレスが格納されている。従って、無線ノード1は、無線ノード2〜7の各々が作成した制御パケットDAOを順次受信することによって、図16の(d)に示すトポロジーを把握できる。
このように、無線センサーネットワーク10においては、ループ状の経路が存在せず、かつ、ツリー構造のトポロジーがRPLに従って構築される。
そして、無線ノード1がシンクであり、無線ノード2,4の親ノードが無線ノード1である。また、無線ノード2は、無線ノード3の親ノードであり、無線ノード4は、無線ノード5,6の親ノードである。更に、無線ノード5は、無線ノード7の親ノードである。
一方、無線ノード2,4は、無線ノード1の子ノードであり、無線ノード5,6は、無線ノード4の子ノードであり、無線ノード7は、無線ノード5の子ノードである。
その結果、無線ノード1は、2つの無線ノード2,4を子ノードとして持ち、無線ノード2は、1つの無線ノード3を子ノードとして持ち、無線ノード4は、2つの無線ノード5,6を子ノードとして持ち、無線ノード5は、1つの無線ノード7を子ノードとして持つ。
従って、無線ノード1(=シンク)が最上位層に配置され、無線ノード2,4が第2階層に配置され、無線ノード3,5,6が第3階層に配置され、無線ノード7が第4階層に配置される。
このように、無線ノード1〜7は、RPLに従って、階層構造からなるトポロジーを構築する。そして、このトポロジーにおいては、各無線ノードの親ノードは、1個である。従って、無線ノード1〜7は、最上位層から下位層へ向かってツリー状に配置される。
また、同じ値からなるRankを含む複数のDIOを受信した場合、各無線ノードは、単位時間当たりに送受信されるDIOの送受信数である送受信確率を演算し、その演算した送受信確率が最大であるDIOを送信した無線ノードを親ノードとして選択する。
図15に示すフローチャートは、定期的(例えば、30分ごと)に実行され、または新たな無線ノードが無線センサーネットワーク10に参入したときに実行され、または各無線ノード2〜7の親ノードが変更または削除されたときに実行される。また、図15に示すフローチャートは、トポロジーが変化したときに実行される。
新たな無線ノードが無線センサーネットワーク10に参入した場合、新たに参入した無線ノードは、DIOの送信要求であるDISをブロードキャストする。そして、DISを受信した無線ノードがDIOを送信することによって図15に示すフローチャートが実行され、新たなトポロジーが構築される。
図17は、図13に示すルーティングテーブルRTの具体例を示す図である。なお、図17に示すルーティングテーブルRT−1は、図16の(d)に示す無線ノード5におけるルーティングテーブルRTである。
図17を参照して、無線ノード5のルーティングテーブルRT−1は、送信先として、無線ノード1,4,7を有する。送信先が無線ノード4(MACadd4)である場合、送信先に対応する「次の無線ノード」には、無線ノード4のMACアドレスMACadd4が格納される。そして、送信先に対応する「ホップ数」には、“1”が格納される。また、送信先に対応する「Rank」には、“512”が格納される。
無線ノード5は、無線ノード4で生成された制御パケットDIOを無線ノード4から受信し、その受信した制御パケットDIOに含まれる送信元が無線ノード4(=MACadd4)であることを検知することにより、無線ノード4が自己に隣接する無線ノードであること、および無線ノード4までのホップ数が“1”であることを検知する。また、無線ノード5は、無線ノード4から受信した制御パケットDIOに含まれる「Rank」に“512”が格納されていることを検知し、無線ノード4の「Rank」が“512”であることを検知する。従って、無線ノード5は、ルーティングテーブルRT−1の第1行目の経路情報を作成できる。
また、無線ノード5は、無線ノード4から受信した制御パケットDIOに含まれる「Rank」が“512”であり、制御パケットDIOに含まれる「rootのアドレス」がMACadd1であることを検知すると、自己の「Rank」が“768”(=512+256)であることを検知する。そして、無線ノード5は、自己の「Rank」が“768”であり、「Rank」は、1ホップごとに“256”づつ増加するので、“768”を“256”で除算し、その除算結果“3”から“1”を減算することにより、無線ノード1までのホップ数(=2)を取得する。なお、除算結果“3”から“1”を減算するのは、無線ノード1の「Rank」が“256”であるので、ホップ数を求めるには、「Rank」が何回増加したかを求める必要があるからである。また、「rootのアドレス」がMACadd1であるので、無線ノード5は、送信先としての無線ノード1に対応する「Rank」が“256”であることが解る。更に、無線ノード5は、制御パケットDIOを無線ノード4から受信し、無線ノード1までのホップ数が“2”であるので、送信先としての無線ノード1に対応する「次の無線ノード」が無線ノード4(=MACadd4)であることを検知する。従って、無線ノード5は、ルーティングテーブルRT−1の第2行目の経路情報を作成できる。
更に、無線ノード5は、無線ノード7から制御パケットDAOを受信し、その受信した制御パケットDAOに含まれる送信元(=MACadd7)に基づいて、無線ノード7が自己に隣接する子ノードであることを検知する。制御パケットDAOに含まれる「親ノードのアドレス」がMACadd5(=無線ノード5)からなり、制御パケットDAOは、制御パケットDIOの応答であり、かつ、上り方向(各無線ノード2〜7から無線ノード1への方向)で送信される制御パケットである。従って、無線ノード5は、無線ノード7が自己の子ノードであることを検知する。また、無線ノード5は、制御パケットDAOを無線ノード7から直接受信したので、無線ノード7までのホップ数が“1”であることを検知する。更に、無線ノード5は、自己の「Rank」が“768”であり、無線ノード7までのホップ数が“1”であるので、無線ノード7の「Rank」が“1024”であることを検知する。従って、無線ノード5は、ルーティングテーブルRT−1の第3行目の経路情報を作成できる。
なお、無線ノード1がデータを含むデータパケットを無線ノード7へ送信する場合、無線ノード1は、無線ノード1から無線ノード7までの経路情報(=無線ノード1→無線ノード4→無線ノード5→無線ノード7)とデータとを含むデータパケットを生成して送信する。従って、経路情報(=無線ノード1→無線ノード4→無線ノード5→無線ノード7)によって示される経路上の無線ノード4,5の各々は、経路情報(=無線ノード1→無線ノード4→無線ノード5→無線ノード7)を参照することによって、自己から2ホップ以上離れた無線ノードを送信先とする経路情報をルーティングテーブルRTに格納できる。
その結果、無線ノード2〜7の各々は、無線センサーネットワーク10を構成する全ての無線ノードを送信先とする経路情報をルーティングテーブルRTに格納できる。
図18は、図1に示す無線センサーネットワーク10におけるセンサー値の転送動作を説明するためのフローチャートである。
図18を参照して、無線ノード3の制御部14は、内蔵したタイマーから起動時刻を受けると、起動状態へ移行するとともに、無線通信部13、経路制御部15およびサンプリング間隔決定部16を起動状態へ移行させる。これによって、無線ノード3は、起動状態へ移行する。
そして、無線ノード3の制御部14は、センサー値を検出するようにセンサー(図示せず)を制御する。
その後、無線ノード3の制御部14は、センサー(図示せず)からセンサー値を受けると、その受けたセンサー値を無線ノード1(=シンク)へ送信するために無線ノード3の親ノードを経路制御部15に問い合わせる。
そして、無線ノード3の制御部14は、無線ノード3の親ノードである無線ノード2のアドレスMACadd2を経路制御部15から受ける。
そうすると、無線ノード3の制御部14は、MACアドレスMACadd2および対応表TBL3に基づいて、上述した方法によってウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSを無線通信部13へ出力する。
無線通信部13は、ウェイクアップ信号WuSを制御部14から受け、その受けたウェイクアップ信号WuSを変調し、その変調したウェイクアップ信号WuSをアンテナ11を介して送信する(ステップS21)。
そして、無線ノード2は、図15に示すステップS2における動作と同じ動作によって、無線ノード3からのウェイクアップ信号WuSに応じてスリープ状態から起動状態へ移行し(ステップS22)、無線ノード2のアドレスMACadd2を含む起動通知をブロードキャストする。
無線ノード3は、起動通知を受信すると、無線ノード2が起動したことを検知する。そして、無線ノード3の制御部14は、無線ノード1(=シンク)のアドレスMACadd1と、起動通知を送信した無線ノード2のアドレスMACadd2と、無線ノード3のアドレスMACadd3と、センサー値とを含むパケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]を生成し、その生成したパケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]を無線通信部13へ出力する。無線ノード3の無線通信部13は、パケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]を制御部14から受け、その受けたパケットPKT1を変調し、その変調したパケットPKT1をアンテナ11を介して送信する(ステップS23)。その後、無線ノード3は、起動状態からスリープ状態へ移行する。
無線ノード2は、無線ノード3からパケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]を受信する(ステップS24)。そして、無線ノード2は、パケットPKT1の先頭のアドレスが無線ノード1のアドレスMACadd1であることを検知し、パケットPKT1を無線ノード1へ転送すべきことを検知する。
そして、無線ノード2は、ステップS21における無線ノード3の動作と同じ動作によって、ウェイクアップ信号WuSを送信する(ステップS25)。無線ノード1は、無線ノード2からのウェイクアップ信号WuSに応じて、ステップS22における無線ノード2の動作と同じ動作によって、スリープ状態から起動状態へ移行し(ステップS26)、無線ノード1のアドレスMACadd1を含む起動通知をブロードキャストする。
無線ノード2は、起動通知を受信すると、パケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]のアドレスMACadd2をアドレスMACadd1に変えたパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を生成し、その生成したパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を送信する(ステップS27)。そして、無線ノード2は、起動状態からスリープ状態へ移行する。
無線ノード1は、無線ノード2からパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を受信する(ステップS28)。そして、無線ノード1の制御部14は、その受信したパケットPKT2から送信元のアドレスMACadd3およびセンサー値を取り出し、その取り出したアドレスMACadd3およびセンサー値を相互に対応付けて保持する。
その後、無線ノード2は、タイマー割込みによってスリープ状態から起動状態へ移行し、センサー値をセンサー(図示せず)から受ける。そうすると、無線ノード2は、ステップS21における無線ノード3の動作と同じ動作によって、ウェイクアップ信号WuSを送信する(ステップS29)。
無線ノード1は、無線ノード2からのウェイクアップ信号WuSに応じてスリープ状態から起動状態へ移行し(ステップS30)、無線ノード1のアドレスMACadd1を含む起動通知をブロードキャストする。
無線ノード2は、起動通知を受信すると、ステップS23における無線ノード3の動作と同じ動作によって、センサー値を含むパケットPKT3=[MACadd1/MACadd1/MACadd2/センサー値]を送信する(ステップS31)。
無線ノード1は、パケットPKT3=[MACadd1/MACadd1/MACadd2/センサー値]を受信する(ステップS32)。そして、無線ノード1の制御部14は、パケットPKT3から送信元のアドレスMACadd2とセンサー値とを取り出し、その取り出した送信元のアドレスMACadd2およびセンサー値を相互に対応付けて保持する。
このように、図18に示すフローチャートに従って、無線ノード2〜7で検出されたセンサー値が無線ノード1(=シンク)へ送信され、無線ノード1(=シンク)に保持される。
図18に示すフローチャートにおいて、無線ノード3は、センサー値を送信する場合、ウェイクアップ信号をユニキャストして無線ノード2を起動状態へ移行させ、その後、センサー値を送信する(ステップS21〜S23参照)。そして、無線ノード3は、センサー値の送信を完了すると、スリープ状態へ移行する。
また、無線ノード2は、ウェイクアップ信号に応じて起動状態へ移行すると、センサー値を受信し、センサー値を転送する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、センサー値を送信する(ステップS25,S26,S27参照)。そして、無線ノード2は、センサー値の転送を完了すると、スリープ状態へ移行する。
更に、無線ノード2は、自己が検出したセンサー値を送信する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、センサー値を送信する(ステップS29〜S31参照)。そして、無線ノード2は、センサー値の送信を完了すると、スリープ状態へ移行する。
このように、無線ノード1〜3の各々は、センサー値の無線ノード1への送信および転送動作において、起動状態へ移行すると、必要な動作を行った後、スリープ状態へ移行する。そして、起動状態においては、無線ノード2は、無線ノード3から受信したセンサー値を転送する場合、センサー値の転送を完了した後にスリープ状態へ移行する。その結果、無線ノード3から送信されたセンサー値は、迅速に無線ノード1へ届けられる。つまり、各無線ノード1〜3は、必要な場合のみ起動状態へ移行して必要な動作を行った後、スリープ状態へ移行する。
また、無線ノード1〜3の各々は、送信先をスリープ状態から起動状態へ移行させる場合、ウェイクアップ信号WuSの送信に必要な消費電力量と、ウェイクアップ信号WuSの受信に必要な消費電力量との和である総電力量が最小になるようにサンプリング間隔Tinterval_minを決定し、その決定したサンプリング間隔Tinterval_minを用いてウェイクアップ信号WuSを送受信する。
従って、センサー値の無線ノード1への送信および転送動作において、消費電力を低減できる。
[フレーム送信数Nまたはサンプリング間隔Tinterval_minの調整]
フレーム送信数Nをカウントする場合、統計情報を用いるため、フレーム送信数Nの設定にタイムラグが生じる。このフレーム送信数Nの増減は、無線センサーネットワーク10における無線ノード1〜7のトポロジーの変更によって主に生じる。
そこで、トポロジー情報を利用してタイムラグが生じないようにフレーム送信数Nまたはサンプリング間隔Tinterval_minを調整する。
なお、フレーム送信数Nとサンプリング間隔との間には、対応表TBL1によって示される関係があるので、フレーム送信数Nを調整することは、サンプリング間隔Tinterval_minを調整することになる。
図19は、トポロジー情報とサンプリング間隔Tinterval_minとの関係を示す図である。
図19を参照して、対応表TBL4は、トポロジー情報とサンプリング間隔Tinterval_minとを含む。トポロジー情報およびサンプリング間隔Tinterval_minは、相互に対応付けられる。
トポロジー情報は、コスト値、ホップ数およびツリーサイズを含む。コスト値は、各無線ノード2〜7からシンク(=無線ノード1)までの近さを表す。そして、上述したRPLによってトポロジーが構築される場合、コスト値は、例えば、上述したRankからなる。この場合、Rankが小さいほど、シンク(=無線ノード1)に近いことを表す。
ホップ数は、各無線ノード2〜7からシンク(=無線ノード1)までのホップ数であり、各無線ノード2〜7からシンク(=無線ノード1)までの近さを表す。この場合、ホップ数が小さいほど、シンク(=無線ノード1)に近いことを表す。なお、この発明の実施の形態においては、ホップ数は、0,1,2,3,・・・からなる。
ツリーサイズは、フレーム送信数Nまたはサンプリング間隔Tinterval_minを調整する無線ノードADよりも下位層に配置され、かつ、無線ノードADから1ホップ以上の位置に配置された無線ノードの総数である。例えば、図16の(d)に示すトポロジーにおいては、無線ノードADが無線ノード4である場合、ツリーサイズは、“3”である。
コスト値がコスト値<512を満たす場合、サンプリング間隔Tinterval_minは、160μsecに調整され、コスト値が512≦コスト値<1024を満たす場合、サンプリング間隔Tinterval_minは、320μsecに調整され、コスト値が1024≦コスト値<1536を満たす場合、サンプリング間隔Tinterval_minは、640μsecに調整され、コスト値が1536≦コスト値を満たす場合、サンプリング間隔Tinterval_minは、1280μsecに調整される。
このように、サンプリング間隔Tinterval_minは、コスト値が大きくなるに従って(即ち、各無線ノード2〜7がシンク(=無線ノード1)から遠くなるに従って)、大きくなるように調整され、コスト値が小さくなるに従って(即ち、各無線ノード2〜7がシンク(=無線ノード1)に近くなるに従って)、小さくなるように調整される。
これは、次の理由による。コスト値が大きくなった場合、即ち、無線ノードADがシンク(=無線ノード1)から遠くなった場合、無線ノードADは、子ノードの数が減少するので、センサー値を送信および転送する回数が少なくなる。その結果、無線ノードADは、ウェイクアップ信号WuSを送受信する回数が少なくなる。従って、サンプリング間隔Tinterval_minを長くしてウェイクアップ信号WuSの受信における消費電力量を低減させることにしたのである。なお、サンプリング間隔Tinterval_minが長くなると、ウェイクアップ信号WuSを構成する無線フレームのフレーム長は、長くなり(対応表TBL3参照)、ウェイクアップ信号WuSの送信における消費電力が大きくなるが、一定期間にウェイクアップ信号WuSを送受信する回数が少なくなるので、全体の消費電力量は、減少する。
一方、コスト値が小さくなった場合、即ち、無線ノードADがシンク(=無線ノード1)に近くなった場合、無線ノードADは、子ノードの数が増加するので、センサー値を送信および転送する回数が多くなる。その結果、無線ノードADは、ウェイクアップ信号WuSを送受信する回数が多くなる。従って、サンプリング間隔Tinterval_minを短くしてウェイクアップ信号WuSを構成する無線フレームのフレーム長を短くし(対応表TBL3参照)、ウェイクアップ信号WuSの送信における消費電力量を低減させることにしたのである。なお、サンプリング間隔Tinterval_minが短くなると、ウェイクアップ信号WuSの受信時の消費電力量が大きくなるが、ウェイクアップ信号WuSを構成する無線フレームのフレーム長が短くなるので、ウェイクアップ信号WuSの1回の送受信に要する時間が短くなり、ウェイクアップ信号WuSの衝突を回避するとともに遅延を抑制してセンサー値をシンク(=無線ノード1)へ収集できる。
また、ホップ数がホップ数<2を満たす場合、サンプリング間隔Tinterval_minは、160μsecに調整され、ホップ数が2≦ホップ数<4を満たす場合、サンプリング間隔Tinterval_minは、320μsecに調整され、ホップ数が4≦ホップ数<6を満たす場合、サンプリング間隔Tinterval_minは、640μsecに調整され、ホップ数が6≦ホップ数を満たす場合、サンプリング間隔Tinterval_minは、1280μsecに調整される。
このように、サンプリング間隔Tinterval_minは、ホップ数が大きくなるに従って(即ち、各無線ノード2〜7がシンク(=無線ノード1)から遠くなるに従って)、大きくなるように調整され、ホップ数が小さくなるに従って(即ち、各無線ノード2〜7がシンク(=無線ノード1)に近くなるに従って)、小さくなるように調整される。その理由は、コスト値とサンプリング間隔Tinterval_minとの関係において説明した理由と同じである。
更に、ツリーサイズが100<ツリーサイズを満たす場合、サンプリング間隔Tinterval_minは、160μsecに調整され、ツリーサイズが50<ツリーサイズ≦100を満たす場合、サンプリング間隔Tinterval_minは、320μsecに調整され、ツリーサイズが20<ツリーサイズ≦50を満たす場合、サンプリング間隔Tinterval_minは、640μsecに調整され、ツリーサイズがツリーサイズ≦20を満たす場合、サンプリング間隔Tinterval_minは、1280μsecに調整される。
このように、サンプリング間隔Tinterval_minは、ツリーサイズが小さくなるに従って大きくなるように調整され、ツリーサイズが大きくなるに従って小さくなるように調整される。
ツリーサイズが小さくなるに従ってサンプリング間隔Tinterval_minが大きくなるように調整されるのは、ツリーサイズが小さくなるに従って無線ノードADよりも下位層に存在する無線ノードの数(=子ノードの数)が減少してセンサー値を送信および転送する回数が少なくなり、ウェイクアップ信号WuSを送受信する回数が少なくなるので、上述したようにウェイクアップ信号WuSの受信における消費電力量を低減した方が総電力量を低減できるからである。
一方、ツリーサイズが大きくなるに従ってサンプリング間隔Tinterval_minが小さくなるように調整されるのは、ツリーサイズが大きくなるに従って無線ノードADよりも下位層に存在する無線ノードの数(=子ノードの数)が増加してセンサー値を送信および転送する回数が多くなり、ウェイクアップ信号WuSを送受信する回数が多くなるので、上述したように、ウェイクアップ信号WuSの衝突を回避するとともに遅延を抑制してセンサー値をシンク(=無線ノード1)へ収集する必要があるからである。
なお、対応表TBL4においては、サンプリング間隔Tinterval_minは、160μsecの単位で倍々になっているが、これは、ウェイクアップ信号受信部17の回路を簡易化するためである。
図20は、サンプリング間隔Tinterval_minを調整する動作を説明するためのフローチャートである。
図20を参照して、サンプリング間隔Tinterval_minを調整する動作が開始されると、各無線ノード1〜7のサンプリング間隔決定部16は、トポロジー情報を経路制御部15から受ける。そして、各無線ノード1〜7のサンプリング間隔決定部16は、トポロジー情報を参照して、自己が搭載された無線ノード(無線ノード1〜7のいずれか)のRankを取得する。
そうすると、各無線ノード1〜7のサンプリング間隔決定部16は、その取得したRankからなるコスト値がコスト値<512を満たすか否かを判定する(ステップS41)。
ステップS41において、コスト値がコスト値<512を満たすと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを160[μsec]に調整する(ステップS42)。
一方、ステップS41において、コスト値がコスト値<512を満たさないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、コスト値が512≦コスト値<1024を満たすか否かを更に判定する(ステップS43)。
ステップS43において、コスト値が512≦コスト値<1024を満たすと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを320[μsec]に調整する(ステップS44)。
一方、ステップS43において、コスト値が512≦コスト値<1024を満たさないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、コスト値が1024≦コスト値<1536を満たすか否かを更に判定する(ステップS45)。
ステップS45において、コスト値が1024≦コスト値<1536を満たすと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを640[μsec]に調整する(ステップS46)。
一方、ステップS45において、コスト値が1024≦コスト値<1536を満たさないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを1280[μsec]に調整する(ステップS47)。
そして、ステップS42,S44,S46,S47のいずれかの後、一連の動作が終了する。
なお、ステップS45において、コスト値が1024≦コスト値<1536を満たさないと判定されたとき、サンプリング間隔Tinterval_minを1280[μsec]に調整するのは、ステップS45において、コスト値が1024≦コスト値<1536を満たさないと判定されたとき、コスト値が1536以上であることが確定されるからである。
上述したように、Rankは、256,512,768,・・・の値からなる。従って、Rankからなるコストがコスト値<512を満たすと判定されたとき、Rankは、256からなる。そして、256からなるRankを有するのは、上述したように無線ノード1(=シンク)であり、無線ノード2〜7から送信されたセンサー値が無線ノード1(=シンク)に集中する。つまり、無線ノード1(=シンク)が受信する無線フレームの数が増加する。そこで、コストがコスト値<512を満たすと判定されたとき、サンプリング間隔Tinterval_minを最も小さい160[μsec]に調整することにした。
そして、コスト値(=Rank)が増加するに従って、即ち、配置位置がシンクから遠くなるに従って、サンプリング間隔Tinterval_minは、より大きい値に調整される(ステップS44,S46,S47参照)。これは、シンクから遠くなるに従って、無線ノードがセンサー値を送信および転送する回数が減少するので、ウェイクアップ信号の受信時の消費電力量を低減させるためである。
図20に示すサンプリング間隔Tinterval_minを調整する動作が終了した後、各無線ノード1〜7は、調整後のサンプリング間隔Tinterval_minで動作し、図15または図18に示すフローチャートを実行する。
なお、コスト値に代えてホップ数を用いてサンプリング間隔Tinterval_minを調整する場合、ステップS41において、ホップ数がホップ数<2を満たすか否かが判定され、ステップS43において、ホップ数が2≦ホップ数<4を満たすか否かが判定され、ステップS45において、ホップ数が4≦ホップ数<6を満たすか否かが判定される。
また、コスト値に代えてツリーサイズを用いてサンプリング間隔Tinterval_minを調整する場合、ステップS41において、ツリーサイズが100<ツリーサイズを満たすか否かが判定され、ステップS43において、ツリーサイズが50<ツリーサイズ≦100を満たすか否かが判定され、ステップS45において、ツリーサイズが20<ツリーサイズ≦50を満たすか否かが判定される。
コスト値、ホップ数およびツリーサイズの全てを用いてサンプリング間隔Tinterval_minを調整する場合、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かが判定される。
この場合、「コスト値<512、ホップ数<2、100<ツリーサイズ」が1番目の条件であり、「512≦コスト値<1024、2≦ホップ数<4、50<ツリーサイズ≦100」が2番目の条件であり、「1024≦コスト値<1536、4≦ホップ数<6、20<ツリーサイズ≦50」が3番目の条件であり「1536≦コスト値、6≦ホップ数、ツリーサイズ≦20」が4番目の条件である。
図21は、コスト値、ホップ数およびツリーサイズの全てを用いてサンプリング間隔Tinterval_minを調整する動作を説明するためのフローチャートである。
図21を参照して、一連の動作が開始されると、各無線ノード1〜7のサンプリング間隔決定部16は、k=1を設定する(ステップS51)。kは、1,2,3,4のいずれかからなる。
そして、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズ、コスト値およびホップ数のk番目の条件を対応表TBL4から検出する(ステップS52)。
その後、各無線ノード1〜7のサンプリング間隔決定部16は、トポロジー情報を経路制御部15から受ける。そして、各無線ノード1〜7のサンプリング間隔決定部16は、トポロジー情報を参照して、自己が搭載された無線ノード(無線ノード1〜7のいずれか)のRank、ホップ数およびツリーサイズを取得する。
そうすると、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する(ステップS53)。
ステップS53において、ツリーサイズ、コスト値およびホップ数の順で条件を満たさないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、k=k+1を設定する(ステップS54)。そして、一連の動作は、ステップS52へ移行し、ステップS53において、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定されるまで、上述したステップS52〜S54が繰り返し実行される。
ステップS53において、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定されると、各無線ノード1〜7のサンプリング間隔決定部16は、k=1であるか否かを判定する(ステップS55)。
ステップS55において、k=1であると判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを160[μsec]に設定する(ステップS56)。
一方、ステップS55において、k=1でないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、k=2であるか否かを判定する(ステップS57)。
ステップS57において、k=2であると判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを320[μsec]に設定する(ステップS58)。
一方、ステップS57において、k=2でないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、k=3であるか否かを判定する(ステップS59)。
ステップS59において、k=3であると判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを640[μsec]に設定する(ステップS60)。
一方、ステップS59において、k=3でないと判定されたとき、各無線ノード1〜7のサンプリング間隔決定部16は、サンプリング間隔Tinterval_minを1280[μsec]に設定する(ステップS61)。
そして、ステップS56,S58,S60,S61のいずれかの後、一連の動作は、終了する。
ステップS53が1回目に実行される場合、各無線ノード1〜7のサンプリング間隔決定部16は、1番目の条件「コスト値<512、ホップ数<2、100<ツリーサイズ」を用いて、ツリーサイズが100<ツリーサイズを満たすか否かを判定し、ツリーサイズが100<ツリーサイズを満たすと判定すると、次に、コスト値がコスト値<512を満たすか否かを判定し、コスト値がコスト値<512を満たすと判定すると、最後に、ホップ数がホップ数<2を満たすか否かを判定する。
各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズ、コスト値およびホップ数の全てが条件を満たすとき、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズ、コスト値およびホップ数のいずれか1つが条件を満たさないとき、ツリーサイズ、コスト値およびホップ数の順で条件を満たさないと判定する。
また、ステップS53が2回目に実行される場合、各無線ノード1〜7のサンプリング間隔決定部16は、2番目の条件「512≦コスト値<1024、2≦ホップ数<4、50<ツリーサイズ≦100」を用いて、ステップS53が1回目に実行される場合と同様にして、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する。
ステップS53が3回目および4回目に実行される場合、各無線ノード1〜7のサンプリング間隔決定部16は、それぞれ、3番目の条件「1024≦コスト値<1536、4≦ホップ数<6、20<ツリーサイズ≦50」、および4番目の条件「1536≦コスト値、6≦ホップ数、ツリーサイズ≦20」を用いて、同様にして、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する。
なお、コスト値、ホップ数およびツリーサイズのうちの2つを用いてサンプリング間隔Tinterval_minを調整する場合、各無線ノード1〜7のサンプリング間隔決定部16は、図21に示すフローチャートに従ってサンプリング間隔Tinterval_minを調整する。
この場合、各無線ノード1〜7のサンプリング間隔決定部16は、コスト値、ホップ数およびツリーサイズから選択された2つの優先順位に従って条件を満たすか否かを順次判定する。
コスト値、ホップ数およびツリーサイズからツリーサイズおよびコスト値が選択された場合、各無線ノード1〜7のサンプリング間隔決定部16は、ステップS53において、ツリーサイズがk番目の条件を満たすか否かを判定し、ツリーサイズがk番目の条件を満たすとき、コスト値がk番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズおよびコスト値の全てがk番目の条件を満たすとき、ツリーサイズおよびコスト値の順で条件を満たすと判定する。
一方、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズおよびコスト値のいずれかがk番目の条件を満たさないとき、ツリーサイズおよびコスト値の順で条件を満たさないと判定する。
コスト値、ホップ数およびツリーサイズからコスト値およびホップ数が選択された場合、各無線ノード1〜7のサンプリング間隔決定部16は、ステップS53において、コスト値がk番目の条件を満たすか否かを判定し、コスト値がk番目の条件を満たすとき、ホップ数がk番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7のサンプリング間隔決定部16は、コスト値およびホップ数の全てがk番目の条件を満たすとき、コスト値およびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7のサンプリング間隔決定部16は、コスト値およびホップ数のいずれかがk番目の条件を満たさないとき、コスト値およびホップ数の順で条件を満たさないと判定する。
コスト値、ホップ数およびツリーサイズからツリーサイズおよびホップ数が選択された場合、各無線ノード1〜7のサンプリング間隔決定部16は、ステップS53において、ツリーサイズがk番目の条件を満たすか否かを判定し、ツリーサイズがk番目の条件を満たすとき、ホップ数がk番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズおよびホップ数の全てがk番目の条件を満たすとき、ツリーサイズおよびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズおよびホップ数のいずれかがk番目の条件を満たさないとき、ツリーサイズおよびホップ数の順で条件を満たさないと判定する。
このように、各無線ノード1〜7のサンプリング間隔決定部16は、図21に示すフローチャートに従って、ツリーサイズ、コスト値およびホップ数の少なくとも2つを用いてサンプリング間隔Tinterval_minを調整する。そして、各無線ノード1〜7のサンプリング間隔決定部16は、ツリーサイズ、コスト値およびホップ数の少なくとも2つを用いてサンプリング間隔Tinterval_minを調整する場合、ツリーサイズ、コスト値およびホップ数に優先順位を付け、その優先順位に従って、ツリーサイズ等が条件を満たすか否かを判定する。その理由は、次のとおりである。
各無線ノード1〜7が無線フレームを送受信する回数に影響する要因として、ツリーサイズが最も大きく、コスト値が2番目に大きく、ホップ数が最も小さいからである。従って、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定することによって、各無線ノード1〜7が無線フレームを送受信する回数に適したサンプリング間隔Tinerval_minに調整できる。
この発明の実施の形態においては、対応表TBL4のサンプリング間隔Tinterval_minをフレーム送信数Nに代え、コスト値、ホップ数およびツリーサイズに応じてフレーム送信数Nを調整してもよい。
この場合、フレーム送信数Nは、コスト値が大きくなるに従って減少し、コスト値が小さくなるに従って増加するように調整される。また、フレーム送信数Nは、ホップ数が大きくなるに従って減少し、ホップ数が小さくなるに従って増加するように調整される。更に、フレーム送信数Nは、ツリーサイズが大きくなるに従って増加し、ツリーサイズが小さくなるに従って減少するように調整される。そして、フレーム送信数Nが調整される場合、コスト値、ホップ数およびツリーサイズの2つまたは全てが対応表TBL4の条件を満たしたときにフレーム送信数Nを調整するようにしてもよい。
そして、各無線ノード1〜7のサンプリング間隔決定部16は、図20または図21に示すフローチャートに従ってフレーム送信数Nを調整する。
フレーム送信数Nが調整されたとき、対応表TBL1に基づいて、その調整されたフレーム送信数Nに対応するサンプリング間隔Tinterval_minが決定される。
フレーム送信数Nまたはサンプリング間隔Tinterval_minを調整する場合、各無線ノード1〜7のサンプリング間隔決定部16は、対応表TBL4を保持しており、経路制御部15が保持するトポロジー情報およびルーティングテーブルRTを参照して、トポロジー情報(=コスト値、ホップ数およびツリーサイズ)を取得し、その取得したトポロジー情報(=コスト値、ホップ数およびツリーサイズ)および対応表TBL4に基づいて、フレーム送信数Nまたはサンプリング間隔Tinterval_minを調整する。そして、各無線ノード1〜7のサンプリング間隔決定部16は、フレーム送信数Nを調整した場合、対応表TBL1を参照して、その調整したフレーム送信数Nに対応するサンプリング間隔Tinterval_minを検出し、サンプリング間隔を決定する。
上述した方法によってフレーム送信数Nまたはサンプリング間隔Tinterval_minを調整することにより、フレーム送信数Nの変動によるタイムラグを抑制し、無線センサーネットワーク10のトポロジーに即してサンプリング間隔Tinterval_minを設定できる。その結果、無線センサーネットワーク10のトポロジーに即して総電力量を低減できる。
また、トポロジー情報として、コスト値、ホップ数およびツリーサイズを選択することによって、各無線ノード1〜7が存在する位置または最上位層に存在する無線ノード以外の各無線ノード1〜7を経由して送信される無線フレームの数に適したサンプリング間隔Tinterval_minまたはフレーム送信数Nに調整できる。
更に、上述したリンクの通信品質を考慮して、リンクの通信品質が低下するに従って、増加するようにフレーム送信数Nを調整してもよい。即ち、無線フレームの到達率が低くなるに従って、増加するようにフレーム送信数Nを調整してもよく、受信信号強度RSSIが小さくなるに従って、増加するようにフレーム送信数Nを調整してもよい。
なお、上記においては、コスト値は、256,512,・・・からなると説明したが、この発明の実施の形態においては、これに限らず、コスト値は、RPLを用いて経路が構築および/または維持される場合、256,512,・・・以外のRankからなっていてもよい。
また、コスト値は、Rank以外のものからなっていてもよく、無線ノードとシンクとの近さを示すものであれば、どのようなものからなっていてもよい。
更に、対応表TBL4におけるコスト値、ホップ数およびツリーサイズの条件は、例示であり、この発明の実施の形態においては、対応表TBL4は、無線ノードとシンクとの近さの違い、または送受信される無線フレームの数の違いを示すような条件であれば、どのような条件から構成されていてもよい。
[フレーム長とデータとの対応表の別の例]
図22は、サンプリング間隔Tinterval_minに対応付けられたフレーム長とデータとの別の関係を示す図である。
図22を参照して、対応表TBL5は、対応表TBL3(図10参照)と同じ構成からなり、各サンプリング間隔に対応付けられたフレーム長だけが異なる。
サンプリング間隔Tinterval_minが160[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、2.56[msec],3.20[msec],3.84[msec],4.48[msec],5.12[msec],5.76[msec],6.40[msec],7.04[msec],7.68[msec],8.32[msec],8.96[msec],9.60[msec],10.24[msec],10.88[msec],11.52[msec],12.16[msec]のフレーム長に対応付けられる。
そして、2.56[msec],3.20[msec],・・・,12.16[msec]の複数のフレーム長において、隣接する2つのフレーム長間の差は、0.64[msec]=640[μsec]であり、160[μsec]のサンプリング間隔Tinterval_minの4倍である。
サンプリング間隔Tinterval_minが320[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、12.48[msec],13.76[msec],15.04[msec],16.32[msec],17.60[msec],18.88[msec],20.16[msec],21.44[msec],22.72[msec],24.00[msec],25.28[msec],26.56[msec],27.84[msec],29.12[msec],30.40[msec],31.68[msec]のフレーム長に対応付けられる。
そして、12.48[msec],13.76[msec],・・・,31.68[msec]の複数のフレーム長において、隣接する2つのフレーム長間の差は、1.28[msec]=1280[μsec]であり、320[μsec]のサンプリング間隔Tinterval_minの4倍である。
サンプリング間隔Tinterval_minが640[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、32.32[msec],34.88[msec],37.44[msec],40.00[msec],42.56[msec],45.12[msec],47.68[msec],50.27[msec],52.80[msec],55.36[msec],57.92[msec],60.48[msec],63.04[msec],65.60[msec],68.16[msec],70.72[msec]のフレーム長に対応付けられる。
そして、32.32[msec],34.88[msec],・・・,70.72[msec]の複数のフレーム長において、隣接する2つのフレーム長間の差は、2.56[msec]=2560[μsec]であり、640[μsec]のサンプリング間隔Tinterval_minの4倍である。
サンプリング間隔Tinterval_minが1280[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、72.00[msec],77.12[msec],82.24[msec],87.36[msec],92.48[msec],97.60[msec],102.72[msec],107.84[msec],112.96[msec],118.08[msec],123.20[msec],128.32[msec],133.44[msec],138.56[msec],143.68[msec],148.80[msec]のフレーム長に対応付けられる。
そして、72.00[msec],77.12[msec],・・・,148.80[msec]の複数のフレーム長において、隣接する2つのフレーム長間の差は、5.12[msec]=5120[μsec]であり、1280[μsec]のサンプリング間隔Tinterval_minの4倍である。
サンプリング間隔Tinterval_minが2560[μsec]である場合、0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xFのデータは、それぞれ、151.36[msec],161.60[msec],171.84[msec],182.08[msec],192.32[msec],202.56[msec],212.80[msec],223.04[msec],233.28[msec],243.52[msec],253.76[msec],264.00[msec],272.24[msec],284.48[msec],294.72[msec],304.96[msec]のフレーム長に対応付けられる。
そして、151.36[msec],161.60[msec],・・・,304.96[msec]の複数のフレーム長において、隣接する2つのフレーム長間の差は、10.24[msec]=10240[μsec]であり、2560[μsec]のサンプリング間隔Tinterval_minの4倍である。
なお、2.56[msec]のフレーム長は、無線センサーネットワーク10において使用される無線規格における最小のフレーム長である。
図23は、図22に示す160[μsec],320[μsec]のサンプリング間隔Tinterval_minに対応付けられたフレーム長の詳細を示す図である。
サンプリング間隔Tinterval_minが160[μsec]である場合、平均フレーム長は、8.32[msec]である(図9の対応表TBL2参照)。
図23の(a)を参照して、8.32−(0.16[msec]×36)=2.56[msec]であるので、2.56[msec]のフレーム長は、平均フレーム長−(Tinterval_min×36)によって表される。
また、8.32−(0.16[msec]×32)=3.20[msec]であるので、3.20[msec]のフレーム長は、平均フレーム長−(Tinterval_min×32)によって表される。
以下、同様にして、3.84[msec],4.48[msec],・・・,12.16[msec]のフレーム長は、図23の(a)に示す式によって表される。
その結果、2.56[msec],3.20[msec],・・・,12.16[msec]の複数のフレーム長は、サンプリング間隔Tinterval_minに4(i−1)(i=1,2,3,・・・)を乗算した結果を平均フレーム長に加算または減算して得られたフレーム長を含む。
サンプリング間隔Tinterval_minが320[μsec]である場合、平均フレーム長は、14.40[msec]である(図9の対応表TBL2参照)。
図23の(b)を参照して、14.40[msec]−(0.32[msec]×6)=12.48[msec]であるので、12.48[msec]のフレーム長は、平均フレーム長−(Tinterval_min×6)によって表される。
また、14.40[msec]−(0.32[msec]×2)=13.76[msec]であるので、13.76[msec]のフレーム長は、平均フレーム長−(Tinterval_min×2)によって表される。
以下、同様にして、15.04[msec],16.32[msec],・・・,31.68[msec]のフレーム長は、図23の(b)に示す式によって表される。
その結果、12.48[msec],13.76[msec],・・・,31.68[msec]の複数のフレーム長は、サンプリング間隔Tinterval_minに(2+4(i−1))を乗算した結果を平均フレーム長に加算または減算して得られたフレーム長を含む。
図24は、図22に示す640[μsec],1280[μsec],2560[μsec]のサンプリング間隔Tinterval_minに対応付けられたフレーム長の詳細を示す図である。
サンプリング間隔Tinterval_minが640[μsec]である場合、平均フレーム長は、26.56[msec]である(図9の対応表TBL2参照)。
図24の(a)を参照して、26.56[msec]+(0.64[msec]×9)=32.32[msec]であるので、32.32[msec]のフレーム長は、平均フレーム長+(Tinterval_min×9)によって表される。
また、26.56[msec]+(0.64[msec]×13)=34.88[msec]であるので、34.88[msec]のフレーム長は、平均フレーム長+(Tinterval_min×13)によって表される。
以下、同様にして、37.44[msec],40.00[msec],・・・,70.72[msec]のフレーム長は、図24の(a)に示す式によって表される。
その結果、32.32[msec],34.88[msec],・・・,70.72[msec]の複数のフレーム長は、サンプリング間隔Tinterval_minに(9+4(i−1))を乗算した結果を平均フレーム長に加算して得られたフレーム長を含む。
サンプリング間隔Tinterval_minが1280[μsec]である場合、平均フレーム長は、50.88[msec]である(図9の対応表TBL2参照)。
図24の(b)を参照して、50.88[msec]+(1.28[msec]×16.5)=72.00[msec]であるので、72.00[msec]のフレーム長は、平均フレーム長+(Tinterval_min×16.5)によって表される。
また、50.88[msec]+(1.28[msec]×20.5)=77.12[msec]であるので、77.12[msec]のフレーム長は、平均フレーム長+(Tinterval_min×20.5)によって表される。
以下、同様にして、82.24[msec],87.36[msec],・・・,148.80[msec]のフレーム長は、図24の(b)に示す式によって表される。
その結果、72.00[msec],77.12[msec],・・・,148.80[msec]の複数のフレーム長は、サンプリング間隔Tinterval_minに(16.5+4(i−1))を乗算した結果を平均フレーム長に加算して得られたフレーム長を含む。
サンプリング間隔Tinterval_minが2560[μsec]である場合、平均フレーム長は、99.52[msec]である(図9の対応表TBL2参照)。
図24の(c)を参照して、99.52[msec]+(2.56[msec]×20.25)=151.36[msec]であるので、151.36[msec]のフレーム長は、平均フレーム長+(Tinterval_min×20.25)によって表される。
また、99.52[msec]+(2.56[msec]×24.25)=161.60[msec]であるので、161.60[msec]のフレーム長は、平均フレーム長+(Tinterval_min×24.25)によって表される。
以下、同様にして、171.84[msec],182.08[msec],・・・,304.96[msec]のフレーム長は、図24の(c)に示す式によって表される。
その結果、151.36[msec],161.60[msec],・・・,403.96[msec]の複数のフレーム長は、サンプリング間隔Tinterval_minに(20.25+4(i−1))を乗算した結果を平均フレーム長に加算して得られたフレーム長を含む。
従って、図22に示す各サンプリング間隔Tinterval_minに対応付けられた複数のフレーム長は、サンプリング間隔Tinterval_minに実数を乗算した結果(「所望のフレーム長間隔」と言う。)を平均フレーム長に加減算して得られたフレーム長を含む。
図22に示すフレーム長を用いてウェイクアップ信号を生成する場合、各無線ノード1〜7のフレーム長対応表19は、対応表TBL5を保持する。そして、各無線ノード1〜7の制御部14は、フレーム長対応表19から対応表TBL5を読み出して上述した方法によってウェイクアップ信号を生成する。
なお、図10に示すフレーム長は、サンプリング間隔Tinterval_minに4iを乗算した結果を平均フレーム長に加算または減算して得られる。
従って、この発明の実施の形態において、各サンプリング間隔Tinterval_minに対応付けられた複数のフレーム長は、サンプリング間隔Tinterval_minに実数を乗算した結果(=「所望のフレーム長間隔」)を平均フレーム長に加減算して得られたフレーム長を含む。
図10に示す各サンプリング間隔Tinterval_minに対応付けられた複数のフレーム長において隣接する2つのフレーム長間の差は、サンプリング間隔Tinterval_minに等しい。
また、図22に示す各サンプリング間隔Tinterval_minに対応付けられた複数のフレーム長において隣接する2つのフレーム長間の差は、サンプリング間隔Tinterval_minを4倍したものに等しい。
この発明の実施の形態においては、各サンプリング間隔Tinterval_minに対応付けられた複数のフレーム長において隣接する2つのフレーム長間の差は、サンプリング間隔Tinterval_min、およびサンプリング間隔Tinterval_minを4倍したものに限らず、一般的には、サンプリング間隔Tinterval_minを整数倍したものであればよい。隣接する2つのフレーム長間の差がサンプリング間隔Tinterval_minを整数倍したものであれば、2つのフレーム長を識別できるからである。
対応表TBL3,TBL5を用いてビット値をフレーム長に変換し、またはフレーム長をビット値に変換することによって、ビット値とフレーム長との間の相互の変換を容易に行うことができる。また、複数の無線ノードの間で、ビット値とフレーム長との間の相互の変換を同じように行うことができる。その結果、正しいウェイクアップ信号が送受信され、起動させたい無線ノードを正確に起動できる。
[動作モード]
この発明の実施の形態においては、Duty Cyclingモード、Ondemand Wake−upモードおよびDelayed Wake−upモードを各無線ノード1〜7に設定し、フレーム送信数Nまたはトポロジーに応じて、これらの3つのモードを切り替える。
(A)Duty Cyclingモード
このモードでは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18の動作を停止し、各無線ノード1〜7は、定期的に間欠動作を行う。つまり、このモードでは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、動作を完全に停止している。
(B)Ondemand Wake−upモード
このモードでは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、間欠動作を行う。
(C)Delayed Wake−upモード
このモードでは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、後述する2段階の間欠動作を行う。
各無線ノード1〜7の制御部14は、フレーム送信数Nに基づいて動作モードを決定する。より具体的には、各無線ノード1〜7の制御部14は、フレーム送信数Nが20000[個/h]以上であるとき、動作モードをDuty Cyclingモードに決定する。そして、各無線ノード1〜7の制御部14は、停止信号STOPをウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力し、間欠動作を指示する信号ITMを無線通信部13、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19へ出力する。ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、停止信号STOPに応じて動作を完全に停止する。無線通信部13、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19は、信号ITMに応じて、間欠動作を行う。
また、各無線ノード1〜7の制御部14は、フレーム送信数Nが200[個/h]以上20000[個/h]未満であるとき、動作モードをOndemand Wake−upモードに決定する。そして、各無線ノード1〜7の制御部14は、信号ITMをウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力する。ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、信号ITMに応じて間欠動作を行う。
更に、各無線ノード1〜7の制御部14は、フレーム送信数Nが200[個/h]未満であるとき、動作モードをDelayed Wake−upモードに決定する。そして、各無線ノード1〜7の制御部14は、信号DLYをウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力する。ウェイクアップ信号受信部17およびウェイクアップ信号判定部18受信部は、信号DLYに応じて2段階の間欠動作を行う。
図25は、2段階の間欠動作を説明するための図である。図25を参照して、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、パケットPKT1〜PKT6を検出しないとき、100msecの間隔で定期的に起動状態へ移行し、100μsecの間、受信電力の有無を確認する。なお、受信電力があると判定する基準値を予め設定しておき、受信電力が基準値以上であるか否かを判定して受信電力の有無を確認する。
そして、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、タイミングt1でパケットPKT2を検出すると、その後、起動状態を維持し、パケットPKT2〜PKT6の受信が終了した後のタイミングt2でスリープ状態へ移行する。そして、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、パケットPKT2〜PKT6を受信するとき、100[msec]の間隔よりも小さいサンプリング間隔Tinterval_minで動作する。
このように、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、パケットの受信を検出するまでは、100[msec]の長周期で受信電力を確認し、パケットの受信を検出すると、100[msec]よりも小さいサンプリング間隔Tinterval_minで動作する2段階の間欠動作を行う。
フレーム送信数Nが200[個/h]未満である場合、上述した2段階の間欠動作を行う方が消費電力を少なくできる。
図26は、フレーム送信数Nによって動作モードを切り替える動作を説明するためのフローチャートである。
図26を参照して、一連の動作が開始されると、各無線ノード1〜7の制御部14は、無線通信部13からフレーム送信数Nを受け、その受けたフレーム送信数Nが20000[個/h]以上であるか否かを判定する(ステップS71)。
ステップS71において、フレーム送信数Nが20000[個/h]以上であると判定されたとき、各無線ノード1〜7の制御部14は、動作モードをDuty Cyclingモードに設定する(ステップS72)。そして、各無線ノード1〜7の制御部14は、停止信号STOPを生成してウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力するとともに、信号ITMを生成して無線通信部13、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19へ出力する。
各無線ノード1のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、停止信号STOPに応じて動作を停止し、無線通信部13、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19は、信号ITMに応じて、間欠動作を行う(ステップS73)。
一方、ステップS71において、フレーム送信数Nが20000[個/h]以上でないと判定されたとき、各無線ノード1〜7の制御部14は、フレーム送信数Nが200≦N<20000[個/h]を満たすか否かを更に判定する(ステップS74)。
ステップS74において、フレーム送信数Nが200≦N<20000[個/h]を満たすと判定されたとき、各無線ノード1〜7の制御部14は、動作モードをOndemand Wake−upモードに設定する(ステップS75)。
そして、各無線ノード1〜7の制御部14は、信号ITMを生成してウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力する。各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、信号ITMに応じて、間欠動作を行う(ステップS76)。
一方、ステップS74において、フレーム送信数Nが200≦N<20000[個/h]を満たさないと判定されたとき、各無線ノード1〜7の制御部14は、動作モードをDelayed Wake−upモードに設定する(ステップS77)。
そして、各無線ノード1〜7の制御部14は、信号DLYを生成してウェイクアップ信号受信部17およびウェイクアップ信号判定部18へ出力する。各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、信号DLYに応じて2段階の間欠動作を行う(ステップS78)。
そして、ステップS73,S76,S78のいずれかの後、一連の動作は、終了する。
ステップS73においては、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、動作を停止し、無線通信部13、制御部14、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19は、間欠動作を行う。
より具体的には、各無線ノード1〜7の無線通信部13、制御部14、経路制御部15、サンプリング間隔決定部16およびフレーム長対応表19は、定期的に起動状態へ移行し、図15または図18に示すフローチャートに従って必要な動作を行い、その後、スリープ状態へ移行する。
なお、各無線ノード1〜7の制御部14は、無線通信部13がウェイクアップ信号を受信し、その受信したウェイクアップ信号を無線通信部13から受けたとき、その受けたウェイクアップ信号を破棄する。ウェイクアップ信号は、上述したようにフレーム長によって表され、意味のあるビット列を含まないからである。
フレーム送信数Nが20000[個/h]以上であるとき、動作モードがDuty Cyclingモードに設定されるので、このようなフレーム送信数Nが多い場合には、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を停止し、間欠動作を行う方が制御パケットDIO,DAO等の通信遅延を抑制できるとともにウェイクアップ信号受信部17およびウェイクアップ信号判定部18の停止によって各無線ノード1〜7の消費電力を低減できる。
従って、フレーム送信数Nが20000[個/h]以上であるとき、動作モードをDuty Cyclingモードに設定することにした。
また、ステップS74において、フレーム送信数Nが200[個/h]≦N<20000[個/h]を満たさないとき、即ち、フレーム送信数Nが200[個/h]未満であるときに、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が2段階の間欠動作を行うのは、このようにフレーム送信数Nが少ないときは、受信電力を検出するまでは長周期の間欠動作を行い、受信電力を検出すると、サンプリング間隔Tinterval_minで動作する方が各無線ノード1〜7の消費電力を低減できるからである。
図27は、トポロジー情報と動作モードとの関係を示す図である。図27を参照して、対応表TBL6は、トポロジー情報と動作モードとを含む。トポロジー情報および動作モードは、相互に対応付けられる。
トポロジー情報は、上述したように、コスト値、ホップ数およびツリーサイズの少なくとも1つからなる。
コスト値がコスト値<512を満たすとき、動作モードは、Duty Cyclingモードに設定される。コスト値が512≦コスト値<1024を満たすとき、動作モードは、Ondemand Wake−upモードに設定される。コスト値が1024≦コスト値を満たすとき、動作モードは、Delayed Wake−upモードに設定される。
ホップ数がホップ数<2を満たすとき、動作モードは、Duty Cyclingモードに設定される。ホップ数が2≦ホップ数<4を満たすとき、動作モードは、Ondemand Wake−upモードに設定される。ホップ数が4≦ホップ数を満たすとき、動作モードは、Delayed Wake−upモードに設定される。
ツリーサイズが100<ツリーサイズを満たすとき、動作モードは、Duty Cyclingモードに設定される。ツリーサイズが50<ツリーサイズ≦100を満たすとき、動作モードは、Ondemand Wake−upモードに設定される。ツリーサイズがツリーサイズ≦50を満たすとき、動作モードは、Delayed Wake−upモードに設定される。
コスト値が512未満であるとき、コスト値を構成するRankは、256であり、動作モードの設定対象の無線ノードがシンクである。そして、シンクである無線ノードは、多くのセンサー値を受信する。つまり、シンクである無線ノードは、多くの無線フレームを受信する。従って、動作モードは、Duty Cyclingモードに設定される。
ホップ数が2未満であるとき、動作モードの設定対象の無線ノードは、シンクから1ホップの位置に存在し、センサー値を送信および転送する回数が多い。つまり、動作モードの設定対象の無線ノードは、多くの無線フレームを送受信する。従って、動作モードは、Duty Cyclingモードに設定される。
ツリーサイズが100よりも大きいとき、動作モードの設定対象の無線ノードは、多くの子ノードを有するので、センサー値を送信および転送する回数が多い。つまり、動作モードの設定対象の無線ノードは、多くの無線フレームを送受信する。従って、動作モードは、Duty Cyclingモードに設定される。
コスト値が1024以上であるとき、動作モードの設定対象の無線ノードは、第4階層以下に配置される。即ち、動作モードの設定対象の無線ノードは、シンクから離れた位置に配置される。従って、動作モードの設定対象の無線ノードは、センサー値を送信および転送する回数が少ない。つまり、動作モードの設定対象の無線ノードは、少ない無線フレームを送受信する。従って、動作モードは、Delayed Wake−upモードに設定される。ホップ数が4以上である場合、またはツリーサイズが50以下である場合も、同様の理由によって、動作モードは、Delayed Wake−upモードに設定される。
コスト値が512以上1024未満であるとき、またはホップ数が2以上4未満であるとき、またはツリーサイズが50よりも大きく、かつ、100以下であるとき、各無線ノード1〜7が送受信する無線フレームの数は、Duty Cyclingモードにおける無線フレームの数とDelayed Wake−upモードにおける無線フレームの数との間になる。従って、動作モードは、Ondemand Wake−upモードに設定される。
コスト値、ホップ数およびツリーサイズのうちの1つを用いて各無線ノード1〜7の動作モードを切り替えるときの動作は、図26に示すフローチャートに従って実行される。
そして、コスト値を用いて動作モードを切り替える場合、各無線ノード1〜7の制御部14は、ステップS71において、コスト値がコスト値<512を満たすか否かを判定し、ステップS74において、コスト値が512≦コスト値<1024を満たすか否かを判定する。
また、ホップ数を用いて動作モードを切り替える場合、各無線ノード1〜7の制御部14は、ステップS71において、ホップ数がホップ数<2を満たすか否かを判定し、ステップS74において、ホップ数が2≦ホップ数<4を満たすか否かを判定する。
更に、ツリーサイズを用いて動作モードを切り替える場合、各無線ノード1〜7の制御部14は、ステップS71において、ツリーサイズが100<ツリーサイズを満たすか否かを判定し、ステップS74において、ツリーサイズが50<ツリーサイズ≦50を満たすか否かを判定する。
コスト値、ホップ数およびツリーサイズの全てを用いて各無線ノード1〜7の動作モードを切り替える場合、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かが判定される。
この場合、「コスト値<512、ホップ数<2、100<ツリーサイズ」が1番目の条件であり、「512≦コスト値<1024、2≦ホップ数<4、50<ツリーサイズ≦100」が2番目の条件であり、「1024≦コスト値<1536、4≦ホップ数<6、20<ツリーサイズ≦50」が3番目の条件である。また、各無線ノード1〜7の制御部14は、対応表TBL6を保持している。
図28は、コスト値、ホップ数およびツリーサイズの全てを用いて無線ノードの動作モードを切り替える動作を説明するためのフローチャートである。
図28を参照して、一連の動作が開始されると、各無線ノード1〜7の制御部14は、p=1を設定する(ステップS81)。pは、1,2,3のいずれかからなる。
そして、各無線ノード1〜7の制御部14は、ツリーサイズ、コスト値およびホップ数のp番目の条件を対応表TBL6から検出する(ステップS82)。
その後、各無線ノード1〜7の制御部14は、トポロジー情報を経路制御部15から受ける。そして、各無線ノード1〜7の制御部14は、トポロジー情報を参照して、自己が搭載された無線ノード(無線ノード1〜7のいずれか)のRank、ホップ数およびツリーサイズを取得する。
そうすると、各無線ノード1〜7の制御部14は、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する(ステップS83)。
ステップS83において、ツリーサイズ、コスト値およびホップ数の順で条件を満たさないと判定されたとき、各無線ノード1〜7の制御部14は、p=p+1を設定する(ステップS84)。そして、一連の動作は、ステップS82へ移行し、ステップS83において、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定されるまで、上述したステップS82〜S84が繰り返し実行される。
ステップS83において、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定されると、各無線ノード1〜7の制御部14は、p=1であるか否かを判定する(ステップS85)。
ステップS85において、p=1であると判定されたとき、各無線ノード1〜7の制御部14は、動作モードをDuty Cyclingモードに設定する(ステップS86)。その後、上述したステップS73における動作と同じ動作が実行される(ステップS87)。
一方、ステップS85において、p=1でないと判定されたとき、各無線ノード1〜7の制御部14は、p=2であるか否かを判定する(ステップS88)。
ステップS88において、p=2であると判定されたとき、各無線ノード1〜7の制御部14は、動作モードをOndemand Wake−upモードに設定する(ステップS89)。その後、上述したステップS76における動作と同じ動作が実行される(ステップS90)。
一方、ステップS88において、p=2でないと判定されたとき、各無線ノード1〜7の制御部14は、動作モードをDelayed Wake−upモードに設定する(ステップS91)。その後、上述したステップS78における動作と同じ動作が実行される(ステップS92)。
そして、ステップS87,S90,S92のいずれかの後、一連の動作は、終了する。
ステップS83が1回目に実行される場合、各無線ノード1〜7の制御部14は、1番目の条件「コスト値<512、ホップ数<2、100<ツリーサイズ」を対応表TBL6から検出する。そして、各無線ノード1〜7の制御部14は、ツリーサイズが100<ツリーサイズを満たすか否かを判定し、ツリーサイズが100<ツリーサイズを満たすと判定すると、次に、コスト値がコスト値<512を満たすか否かを判定し、コスト値がコスト値<512を満たすと判定すると、最後に、ホップ数がホップ数<2を満たすか否かを判定する。
各無線ノード1〜7の制御部14は、ツリーサイズ、コスト値およびホップ数の全てが条件を満たすとき、ツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7の制御部14は、ツリーサイズ、コスト値およびホップ数のいずれか1つが条件を満たさないとき、ツリーサイズ、コスト値およびホップ数の順で条件を満たさないと判定する。
また、ステップS83が2回目に実行される場合、各無線ノード1〜7の制御部14は、2番目の条件「512≦コスト値<1024、2≦ホップ数<4、50<ツリーサイズ≦100」を対応表TBL6から検出する。そして、各無線ノード1〜7の制御部14は、ステップS83が1回目に実行される場合と同様にして、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する。
ステップS83が3回目に実行される場合、各無線ノード1〜7の制御部14は、3番目の条件「1024≦コスト値<1536、4≦ホップ数<6、20<ツリーサイズ≦50」を対応表TBL6から検出し、同様にして、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定する。
なお、コスト値、ホップ数およびツリーサイズのうちの2つを用いて無線ノードの動作モードを切り替える場合、各無線ノード1〜7の制御部14は、図28に示すフローチャートに従って動作モードを切り替える。
この場合、各無線ノード1〜7の制御部14は、コスト値、ホップ数およびツリーサイズから選択された2つの優先順位に従って条件を満たすか否かを順次判定する。
コスト値、ホップ数およびツリーサイズからツリーサイズおよびコスト値が選択された場合、各無線ノード1〜7の制御部14は、ステップS83において、ツリーサイズがp番目の条件を満たすか否かを判定し、ツリーサイズがp番目の条件を満たすとき、コスト値がp番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7の制御部14は、ツリーサイズおよびコスト値の全てがp番目の条件を満たすとき、ツリーサイズおよびコスト値の順で条件を満たすと判定する。
一方、各無線ノード1〜7の制御部14は、ツリーサイズおよびコスト値のいずれかがp番目の条件を満たさないとき、ツリーサイズおよびコスト値の順で条件を満たさないと判定する。
コスト値、ホップ数およびツリーサイズからコスト値およびホップ数が選択された場合、各無線ノード1〜7の制御部14は、ステップS83において、コスト値がp番目の条件を満たすか否かを判定し、コスト値がp番目の条件を満たすとき、ホップ数がp番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7の制御部14は、コスト値およびホップ数の全てがp番目の条件を満たすとき、コスト値およびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7の制御部14は、コスト値およびホップ数のいずれかがp番目の条件を満たさないとき、コスト値およびホップ数の順で条件を満たさないと判定する。
コスト値、ホップ数およびツリーサイズからツリーサイズおよびホップ数が選択された場合、各無線ノード1〜7の制御部14は、ステップS83において、ツリーサイズがp番目の条件を満たすか否かを判定し、ツリーサイズがp番目の条件を満たすとき、ホップ数がp番目の条件を満たすか否かを判定する。そして、各無線ノード1〜7の制御部14は、ツリーサイズおよびホップ数の全てがp番目の条件を満たすとき、ツリーサイズおよびホップ数の順で条件を満たすと判定する。
一方、各無線ノード1〜7の制御部14は、ツリーサイズおよびホップ数のいずれかがp番目の条件を満たさないとき、ツリーサイズおよびホップ数の順で条件を満たさないと判定する。
このように、各無線ノード1〜7の制御部14は、図28に示すフローチャートに従って、ツリーサイズ、コスト値およびホップ数の少なくとも2つを用いて動作モードを切り替える。
なお、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定するのは、上述したとおりである。従って、ツリーサイズ、コスト値およびホップ数の順で条件を満たすか否かを判定することによって、各無線ノード1〜7が無線フレームを送受信する回数に適した動作モードに調整できる。
図26に示すフローチャートにおいては、ステップS71においてフレーム送信数Nが20000[個/h]以上であると判定されたとき、無線ノードの動作モードは、Duty Cyclingモードに設定され(ステップS72参照)、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、停止する(ステップS73参照)。
一方、ステップS71においてフレーム送信数Nが20000[個/h]以上でないと判定されたとき、無線ノードの動作モードは、Duty Cyclingモード以外のモードに設定され(ステップS75,S77参照)、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、間欠動作を行う(ステップS76,S78参照)。
また、図28に示すフローチャートにおいては、ステップS83においてツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定し、かつ、ステップS85においてp=1であると判定されたとき、無線ノードの動作モードは、Duty Cyclingモードに設定され(ステップS86参照)、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、停止する(ステップS87参照)。
一方、ステップS83においてツリーサイズ、コスト値およびホップ数の順で条件を満たすと判定し、かつ、ステップS85においてp=1でないと判定されたとき、無線ノードの動作モードは、Duty Cyclingモード以外のモードに設定され(ステップS89,S91参照)、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、間欠動作を行う(ステップS90,S92参照)。
従って、各無線ノード1〜7の制御部14は、フレーム送信数Nおよびトポロジー情報(=コスト値、ホップ数およびツリーサイズ)のいずれかに基づいて、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用するか否かを判定する。
これによって、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用しないと判定されたとき、各無線ノード1〜7において、ウェイクアップ信号を受信するときの消費電力量を低減できる。その結果、各無線ノード1の総電力量を低減できる。
また、図26または図28に示すフローチャートに従って無線ノードの動作モードを切り替えることによって、無線ノードが存在する位置または送受信される無線フレームの数に適した動作モードで無線ノードを動作させることができる。その結果、無線ノードにおける無駄な消費電力量を低減できる。
図29は、ノード1台当たりの平均消費電力量とセンサーデータ収集周期との関係のシミュレーション結果を示す図である。
図29において、縦軸は、ノード1台当たりの平均消費電力量を表し、横軸は、センサーデータ収集周期を表す。なお、シミュレーションに用いた無線ノードの台数は、100台である。
図29の紙面上、各センサーデータ収集周期において、最も左側の棒グラフから6番目までの棒グラフは、サンプリング間隔Tinterval_minをそれぞれ320[μsec],640[μsec],1280[μsec],2560[μsec],5120[μsec],10240[μsec]に固定したときのノード1台当たりの平均消費電力量を示す。また、図29の紙面上、各センサーデータ収集周期において、最も右側の棒グラフは、本発明を適用したときのノード1台当たりの平均消費電力量を示す。
図29を参照して、1分、5分、10分、15分、30分および60分のセンサーデータ収集周期において、本発明を適用した場合のノード1台当たりの平均消費電力量は、サンプリング間隔Tinterval_minを固定したときのノード1台当たりの平均消費電力量よりも低減される。
また、センサーデータ収集周期が短くなるに従って、本発明を適用することによる消費電力量の低減量が多くなる。従って、本発明は、特に、センサーデータ収集周期が短い場合に消費電力量を大きく低減できる。
なお、上記においては、無線センサーネットワーク10を例にして本発明を説明したが、この発明の実施の形態においては、これに限らず、本発明は、フレーム長を検出するときのサンプリング間隔が長くなるほど長くなり、かつ、前記サンプリング間隔が短くなるほど短くなる平均フレーム長に所望のフレーム長間隔を加減算して得られたフレーム長を含む複数のフレーム長から選択された少なくとも1つのフレーム長によってスリープ状態から起動状態へ移行させるための無線装置の識別情報を表し、その識別情報を表すフレーム長を有する無線フレームを送受信する無線装置を備えていれば、どのような無線ネットワークに適用されてもよい。
また、上記においては、フレーム送信数Nは、1時間当たりの無線フレームの送信数であると説明したが、この発明の実施の形態においては、これに限らず、フレーム送信数Nは、所望の時間長における無線フレームの送信数であればよい。
更に、この発明の実施の形態においては、上述した各無線ノード1〜7の動作は、プログラムによって実行されてもよい。この場合、各無線ノード1〜7は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Randum Access Memory)を備える。そして、ROMは、各無線ノード1〜7の動作を実行するためのプログラムを格納する。各無線ノード1〜7の動作が行われる場合、各無線ノード1〜7のCPUは、ROMからプログラムを読み出し、その読み出したプログラムを実行する。RAMは、CPUがプログラムを実行しているときに必要な計算を行い、その計算した計算結果を記憶するために使用される。
図30は、各無線ノード1〜7の動作をコンピュータ(CPU)に実行させるためのプログラムを示すフローチャートである。
図30を参照して、各無線ノード1〜7の動作をコンピュータ(CPU)に実行させるためのプログラムPROGは、ステップS101〜107を備える。各無線ノード1〜7の動作が開始されると、CPUは、プログラムPROGをROMから読み出して実行する。
そして、所望の時間長における無線フレームの送信数であるフレーム送信数Nが決定される(ステップS101)。
その後、無線フレームを受信するときの消費電力量である受信電力量と無線フレームを送信するときの消費電力量である送信電力量との和である総電力量が最小になるときの好適なサンプリング間隔Tinterval_minが、上述した方法によって、その決定されたフレーム送信数Nに対応して決定される(ステップS102)。この場合、好適なサンプリング間隔Tinterval_minが対応表TBL1を用いてフレーム送信数Nに対応して決定されてもよい。
そして、無線ネットワークにおける無線装置のトポロジーを示すトポロジー情報を用いて好適なサンプリング間隔Tinterval_minまたはフレーム送信数Nが調整される(ステップS103)。この場合、好適なサンプリング間隔Tinterval_minまたはフレーム送信数Nの調整は、図21に示すフローチャートに従って実行される。
ステップS103の後、フレーム送信数Nおよび無線ネットワークにおける無線装置のトポロジーを示すトポロジー情報のいずれかに基づいてウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用するか否かが判定される(ステップS104)。なお、フレーム送信数Nに基づいてウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用するか否かが判定される場合、その判定動作は、図26に示すフローチャートに従って実行され、トポロジー情報に基づいてウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用するか否かが判定される場合、その判定動作は、図28に示すフローチャートに従って実行される。
ステップS104において、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用しないと判定されたとき、一連の動作は、ステップS106へ移行する。
一方、ステップS104において、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用すると判定されたとき、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、無線フレームを受信するとともに、好適なサンプリング間隔Tinterval_minで動作する(ステップS105)。
そして、ステップS104において、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18を利用しないと判定されたとき、またはステップS105の後、無線装置(=無線ノード1〜7のいずれか)のMACアドレスに基づいて、フレーム長とビット値との対応関係を示す対応表TBL3またはTBL5から識別情報を示すフレーム長が取得される(ステップS106)。
その後、その取得されたフレーム長を有する無線フレームが送信される(ステップS107)。これによって、一連の動作が終了する。
ステップS101においては、2つの方法のいずれかによってフレーム送信数Nが決定される。1つ目の方法は、予め決定されたデータ収集周期と、無線ネットワークにおける無線装置のトポロジーを構築および/または維持するための制御パケットDIO,DAOの送信周期と、ツリーサイズ(=トポロジーが階層構造からなる場合において、プログラムPROGが実行される無線装置よりも下位層に存在し、かつ、プログラムPROGが実行される無線装置から1ホップ以上の位置に存在する無線装置の総数)とを用いて無線フレームの総数を演算し、その演算した無線フレームの総数に対してリンクの通信品質を考慮して無線フレームの総数を増加することによりフレーム送信数Nを演算する方法である。
また、2つ目の方法は、所望の時間長における無線フレームの送信数を計測してフレーム送信数Nを検出する方法である。
ステップS102において、好適なサンプリング間隔Tinterval_minは、定期的に決定されてもよい。
なお、この発明の実施の形態においては、プログラムPROGは、少なくともステップS102,S105を備えていればよい。少なくともステップS102,S105が実行されれば、無線装置(=無線ノード1〜7のいずれか)における全体の消費電力を低減できるからである。
この発明の実施の形態においては、サンプリング間隔Tinterval_minを決定するサンプリング間隔決定部16は、「決定手段」を構成する。
また、この発明の実施の形態においては、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、「受信器」を構成する。
更に、この発明の実施の形態においては、フレーム送信数Nを演算するサンプリング間隔決定部16は、「演算手段」を構成する。
更に、この発明の実施の形態においては、フレーム送信数Nを計測する無線通信部13は、「検出手段」を構成する。
更に、この発明の実施の形態においては、サンプリング間隔Tinterval_minは、「好適なサンプリング間隔」を構成する。
更に、この発明の実施の形態においては、トポロジー情報を用いてサンプリング間隔Tinterval_minまたはフレーム送信数Nを調整するサンプリング間隔決定部16は、「調整手段」を構成する。
更に、この発明の実施の形態においては、スリープ状態から起動状態へ移行させるための無線ノードのMACアドレスに基づいて、対応表TBL3または対応表TBL5からスリープ状態から起動状態へ移行させるための無線ノードの識別情報を示すフレーム長を取得する制御部14は、「取得手段」を構成する。
更に、この発明の実施の形態においては、対応表TBL1は、「第1の対応表」を構成し、対応表TBL3または対応表TBL5は、「第2の対応表」を構成する。
更に、この発明の実施の形態においては、フレーム送信数Nまたはトポロジー情報のいずれかに基づいてウェイクアップ信号受信部17およびウェイクアップ信号判定部18(受信器)を利用するか否かを判定する制御部14は、「判定手段」を構成する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。