本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図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は、無線センサーネットワーク10における無線ノード1〜7のトポロジーに基づいて、後述する方法によって、フレーム長およびフレーム数によって規定されるウェイクアップIDを無線ノード1〜7に割り当てる。ウェイクアップIDは、各無線ノード1〜7をスリープ状態から起動状態へ移行させるためのIDである。
無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、その割り当てたウェイクアップIDを無線ノード2〜7へ送信する。より具体的には、無線ノード1は、無線ノード2に割り当てたウェイクアップIDと、無線ノード2に隣接する無線ノード1,3,5のウェイクアップIDとを無線ノード2へ送信する。無線ノード1は、同様にして、各無線ノード3〜7に割り当てられたウェイクアップIDと、各無線ノード3〜7に隣接する無線ノードに割り当てられたウェイクアップIDとを各無線ノード3〜7に送信する。
無線ノード2〜7の各々は、自己のウェイクアップIDと、自己に隣接する無線ノードのウェイクアップIDとを無線ノード1から受信し、その受信した自己のウェイクアップIDと、自己に隣接する無線ノードのウェイクアップIDとを保持する。
無線ノード2〜7の各々は、センサー(図示せず)によってセンサー値を検出する。そして、無線ノード2〜7の各々は、その検出したセンサー値を自己から無線ノード1までの経路上に存在する無線ノードをウェイクアップIDを用いて順次起動させながら無線ノード1(=シンク)へ送信する。
この場合、各無線ノード2〜7から無線ノード1までの経路上に存在する無線ノードは、後述する方法によって、他の無線ノードから受信したセンサー値を転送する。
無線ノード1〜7の各々は、ウェイクアップIDが割り当てられていないとき、またはウェイクアップIDが誤っている場合、MACアドレスをバックアップIDとして用い、隣接する無線ノードを起動させる。
図2は、図1に示す無線ノード1の構成を示す概略図である。図2を参照して、無線ノード1は、アンテナ11,12と、無線通信部13と、制御部14と、経路制御部15と、割当部16と、ウェイクアップ信号受信部17と、ウェイクアップ信号判定部18とを含む。
無線ノード1は、スリープ状態と、起動状態とを有する。スリープ状態とは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が動作し、無線通信部13、制御部14、経路制御部15および割当部16が動作を停止した状態である。
また、起動状態とは、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が動作を停止し、無線通信部13、制御部14、経路制御部15および割当部16が動作している状態である。
アンテナ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は、データを含むパケットをアンテナ11を介して受信し、その受信したパケットを復調して制御部14へ出力する。無線通信部13は、データを含むパケットを制御部14から受け、その受けたパケットを変調してアンテナ11を介して送信する。
更に、無線通信部13は、1時間当たりの無線フレームの送信数であるフレーム送信数Nを計測する。そして、無線通信部13は、その計測したフレーム送信数Nを制御部14へ出力する。
制御部14は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、制御部14は、タイマーを内蔵しており、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、無線通信部13と同様にして、一定間隔Tで間欠動作を行う。
制御部14は、無線センサーネットワーク10における経路を確立する場合、または確立した経路を維持する場合、制御パケットを経路制御部15から受け、その受けた制御パケットを無線通信部13へ出力する。また、制御部14は、制御パケットを無線通信部13から受け、その受けた制御パケットを経路制御部15へ出力する。
制御部14は、無線通信部13からフレーム送信数Nを受け、その受けたフレーム送信数Nを割当部16へ出力する。
制御部14は、無線ノード1〜7に割り当てられたウェイクアップIDを割当部16から受ける。また、制御部14は、無線センサーネットワーク10におけるトポロジーを経路制御部15から受ける。そうすると、制御部14は、トポロジーを参照して、各無線ノード1〜7に隣接する無線ノードを検出する。そして、制御部14は、無線ノード1のウェイクアップIDと、無線ノード1に隣接する無線ノードのウェイクアップIDとを保持する。また、制御部14は、無線ノード2のウェイクアップIDと、無線ノード2に隣接する無線ノードのウェイクアップIDとを含むパケットを生成し、その生成したパケットを無線通信部13へ出力する。更に、制御部14は、同様にして、無線ノード3〜7の各々についても、無線ノードA(=無線ノード3〜7のいずれか)のウェイクアップIDと、無線ノードAに隣接する無線ノードのウェイクアップIDとを含むパケットを生成し、その生成したパケットを無線通信部13へ出力する。
制御部14は、無線ノード1に隣接する無線ノードADJをスリープ状態から起動状態へ移行させるとき、保持している無線ノードADJのウェイクアップIDを規定するフレーム長を有し、かつ、無線ノードADJのウェイクアップIDを規定するフレーム数に等しい個数の無線フレームを生成し、その生成した無線フレームをウェイクアップ信号として無線通信部13へ出力する。
制御部14は、無線ノードADJのMACアドレスを経路制御部15から受ける。そして、制御部14は、割当部16によって割り当てられたウェイクアップIDが誤っている場合、無線ノードADJのMACアドレス(=バックアップID)のハッシュ値を演算する。その後、制御部14は、その演算したハッシュ値を後述する方法によってフレーム長に変換し、その変換したフレーム長を有する無線フレームを生成し、その生成した無線フレームをウェイクアップ信号として無線通信部13へ出力する。
制御部14は、センサー(図示省略)からセンサー値(=データ)を受け、その受けたセンサー値を含むパケットを生成する。そして、制御部14は、その生成したパケットを無線通信部13へ出力する。
制御部14は、データを含むパケットを無線通信部13から受け、その受けたパケットの送信先が無線ノード1であるか否かを判定する。そして、制御部14は、パケットの送信先が無線ノード1であると判定したとき、パケットからデータを取り出し、その取り出したデータを受理する。一方、制御部14は、パケットの送信先が無線ノード1以外の無線ノードであると判定したとき、データを含むパケットを無線通信部13へ出力する。
経路制御部15は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。また、経路制御部15は、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18が停止しているとき、無線通信部13と同様にして、一定間隔Tで間欠動作を行う。
経路制御部15は、無線センサーネットワーク10における経路を確立する場合、または確立した経路を維持する場合、制御パケットを生成し、その生成した制御パケットを制御部14へ出力する。経路制御部15は、制御パケットを制御部14から受け、その受けた制御パケットに基づいて、無線センサーネットワーク10における経路を確立または維持する。そして、経路制御部15は、その確立または維持した経路を示す経路情報を保持する。また、経路制御部15は、無線センサーネットワーク10における無線ノード1〜7の配置状態を示すトポロジーを示すトポロジー情報を保持する。
経路制御部15は、無線ノードのMACアドレスの要求に応じて、経路情報を参照して無線ノードのMACアドレスを検出し、その検出したMACアドレスを制御部14へ出力する。
割当部16は、ウェイクアップ信号判定部18から起動信号を受けると、スリープ状態から起動状態へ移行する。割当部16は、起動状態において経路制御部15からトポロジー情報を受ける。そして、割当部16は、トポロジー情報を参照して、後述する方法によってフレーム長およびフレーム数によって規定されるウェイクアップIDを無線ノード1〜7に割り当て、その割り当てたウェイクアップIDを制御部14へ出力する。
ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、タイマーを内蔵しており、一定の間隔で起動状態へ移行する。
ウェイクアップ信号受信部17は、起動状態において受信電力を検出すると、アンテナ12を介してウェイクアップ信号を受信し、その受信したウェイクアップ信号の受信信号をサンプリング間隔で包絡線検波し、その検波した検波値に基づいてフレーム長を検出する。より具体的には、ウェイクアップ信号受信部17は、検波値における“1”の個数をカウントし、そのカウントした個数にサンプリング間隔を乗算することによってフレーム長を検出する。そして、ウェイクアップ信号受信部17は、フレーム長の検出を少なくとも1回行い、フレーム長とフレーム数とを検出する。そうすると、ウェイクアップ信号受信部17は、その検出したフレーム長およびフレーム数をウェイクアップ信号判定部18へ出力する。
ウェイクアップ信号判定部18は、無線ノード1のウェイクアップID(=フレーム長およびフレーム数)およびMACアドレスを予め保持している。また、ウェイクアップ信号判定部18は、フレーム長とデータとの関係を示す対応表を予め保持している。更に、ウェイクアップ信号判定部18は、ウェイクアップ信号受信部17からフレーム長およびフレーム数を受ける。
そうすると、ウェイクアップ信号判定部18は、その受けたフレーム長およびフレーム数がウェイクアップIDを規定するフレーム長およびフレーム数に一致するか否かを判定する。ウェイクアップ信号判定部18は、その受けたフレーム長およびフレーム数がウェイクアップIDを規定するフレーム長およびフレーム数に一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15および割当部16へ出力する。
一方、ウェイクアップ信号判定部18は、その受けたフレーム長およびフレーム数がウェイクアップIDを規定するフレーム長およびフレーム数に一致しないと判定したとき、ウェイクアップ信号受信部17から受けたフレーム長を対応表を参照してデータに変換する。そして、ウェイクアップ信号判定部18は、その変換したデータが、保持しているMACアドレスに一致するか否かを判定する。ウェイクアップ信号判定部18は、その変換したデータがMACアドレスに一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15および割当部16へ出力する。
一方、ウェイクアップ信号判定部18は、その変換したデータがMACアドレスに一致しないと判定したとき、フレーム長およびフレーム数を破棄し、何も出力しない。
なお、後述するブロードキャストIDまたはマルチキャストIDが用いられる場合、ウェイクアップ信号判定部18は、その変換したデータがブロードキャストIDまたはマルチキャストIDに一致すると判定したとき、起動信号を生成して無線通信部13、制御部14、経路制御部15および割当部16へ出力する。
一方、ウェイクアップ信号判定部18は、その変換したデータがブロードキャストIDまたはマルチキャストIDに一致しないと判定したとき、その変換したデータを破棄し、何も出力しない。
ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、一定の間隔で起動状態へ移行して上述した動作を行い、上述した動作が終了すると、スリープ状態へ移行する。即ち、ウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、間欠動作を行う。
なお、図1に示す無線ノード2〜7の各々は、図2に示す無線ノード1から割当部16を削除した構成からなる。そして、無線ノード2〜7の制御部14は、無線通信部13からフレーム送信数Nを受けると、その受けたフレーム送信数Nを含むパケットを生成し、その生成したパケットを無線通信部13およびアンテナ11を介して無線ノード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として用いる。
図5は、ウェイクアップIDを構成するフレーム長およびフレーム数を示す図である。なお、図5に示す割当表TBL1は、1つのフレーム長で表現可能なビット数が4ビットであることを前提としている。
図5を参照して、割当表TBL1は、ウェイクアップID(以下、「WuID」と言う。)と、第1フレーム長、第2フレーム長、第3フレーム長、・・・および第m(mは1以上の整数)フレーム長とを含む。
WuIDは、少なくとも1つのフレーム長および少なくとも1つのフレーム数によって規定される。WuID1は、10.8[ms]のフレーム長および1個のフレーム数によって規定される。WuID2は、12.8[ms]のフレーム長および1個のフレーム数によって規定される。以下、同様にして、WuID3〜WuID16は、それぞれ14.8[ms],16.8[ms],18.8[ms],20.8[ms],22.8[ms],24.8[ms],26.8[ms],28.8[ms],30.8[ms],32.8[ms],34.8[ms],36.8[ms],38.8[ms],40.8[ms]のフレーム長と、1個のフレーム数とによって規定される。
10.8[ms]のフレーム長は、無線センサーネットワーク10において使用される無線システムにおける最も短いフレーム長である。そして、フレーム長を識別可能な間隔として2[ms]を随時加算して12.8[ms]〜40.8[ms]のフレーム長が得られた。従って、1個のWuIDを1個のフレーム長によって表した場合、識別可能なWuIDは、WuID1〜WuID16の16個になる。1つのフレーム長が4ビットを表すので、24=16であるからである。そして、WuID1〜WuID16は、短い順に割り当てられた1個のフレーム長および1個のフレーム数によって規定される。
WuIDを17個以上作成する必要がある場合、17個目以降のWuIDは、2個のフレーム長および2個のフレーム数によって規定される。
より具体的には、WuID17は、10.8[ms],12.8[ms]のフレーム長および2個のフレーム数によって規定される。WuID18は、12.8[ms],14.8[ms]のフレーム長および2個のフレーム数によって規定される。WuID19は、14.8[ms],16.8[ms]のフレーム長および2個のフレーム数によって規定される。WuID20は、16.8[ms],18.8[ms]のフレーム長および2個のフレーム数によって規定される。以下、同様して、WuID31は、38.8[ms],40.8[ms]のフレーム長および2個のフレーム数によって規定される。
WuID17〜WuID31は、第1フレーム長と第2フレーム長との和が短い順に割り当てられた2個のフレーム長および2個のフレーム数によって規定される。
WuIDを32個以上作成する必要がある場合、WuID32は、10.8[ms],12.8[ms],14.8[ms]のフレーム長および3個のフレーム数によって規定される。WuID33は、12.8[ms],14.8[ms],16.8[ms]のフレーム長および3個のフレーム数によって規定される。34個目以降のWuIDも、同様に3個のフレーム長および3個のフレーム数によって規定される。このように、32個目以降のWuIDは、3つのフレーム長の和が短い順に割り当てられた3個のフレーム長および3個のフレーム数によって規定される。
3個のフレーム長および3個のフレーム数によってWuIDを規定できなくなった場合、WuIDは、4個のフレーム長の和が短い順に割り当てられた4個のフレーム長および4個のフレーム数によって規定される。
以下、同様にして、WuIDは、m個のフレーム長およびm個のフレーム数によって規定される。
無線ノード1の割当部16は、割当表TBL1を保持しており、割当表TBL1を参照して、後述する各種の方法によって無線ノード1〜7にウェイクアップIDを割り当てる。
なお、上記においては、1つのフレーム長が4ビットのビット値を表し、かつ、2個のフレーム長および2個のフレーム数によって15個のWuIDを規定する場合を説明したが、この発明の実施の形態においては、2個のフレーム長が同じである場合も許容されるので、1つのフレーム長が4ビットのビット値を表し、かつ、2個のフレーム長および2個のフレーム数によってWuIDを規定する場合、16×16=256個のWuIDを規定できる。また、1つのフレーム長が4ビットのビット値を表し、かつ、3個のフレーム長および3個のフレーム数によってWuIDを規定する場合、同様にして、16×16×16=4096個のWuIDを規定できる。従って、1つのフレーム長が4ビットのビット値を表し、かつ、m個のフレーム長およびm個のフレーム数によってWuiDを規定する場合、16m個のWuIDを規定できる。そして、2個以上のフレーム長および2個以上のフレーム数でWuIDを規定する場合、2個以上のフレーム長の和が短い順にフレーム長およびフレーム数が割り当てられる。
また、割当表TBL1においては、2つのフレーム長間の差は、2[ms]に限らず、2つのフレーム長を識別可能な差であれば、2[ms]以外であってもよい。
更に、割当表TBL1においては、1つのフレーム長は、4ビット以外のビット値を表してもよい。一般に、1つのフレーム長がj(jは正の整数)ビットのビット値を表す場合、1個のフレーム長および1個のフレーム数によって規定されるWuIDの個数は、2j個になる。従って、1つのフレーム長がjビットのビット値を表し、かつ、m個のフレーム長およびm個のフレーム数によってWuIDを規定する場合、(2j)m個のWuIDを規定できる。
図6は、フレーム長とデータとの対応関係を示す対応表を示す図である。図6を参照して、対応表TBL2は、フレーム長とデータとを含む。フレーム長およびデータは、相互に対応付けられる。
11.8[ms]のフレーム長は、0x0に対応付けられ、12.1[ms]のフレーム長は、0x1に対応付けられ、12.4[ms]のフレーム長は、0x2に対応付けられ、12.7[ms]のフレーム長は、0x3に対応付けられ、13.0[ms]のフレーム長は、0x4に対応付けられ、13.3[ms]のフレーム長は、0x5に対応付けられ、13.6[ms]のフレーム長は、0x6に対応付けられる。
また、13.9[ms]のフレーム長は、0x7に対応付けられ、14.2[ms]のフレーム長は、0x8に対応付けられ、14.5[ms]のフレーム長は、0x9に対応付けられ、14.8[ms]のフレーム長は、0xAに対応付けられ、15.1[ms]のフレーム長は、0xBに対応付けられ、15.4[ms]のフレーム長は、0xCに対応付けられ、15.7[ms]のフレーム長は、0xDに対応付けられ、16.0[ms]のフレーム長は、0xEに対応付けられ、16.3[ms]のフレーム長は、0xFに対応付けられる。0x0〜0xFの各々は、4ビットのビット値からなる。
各無線ノード1〜7の制御部14およびウェイクアップ信号判定部18は、対応表TBL2を保持している。そして、各無線ノード1〜7の制御部14は、MACアドレスのハッシュ値を演算し、その演算したハッシュ値を対応表TBL2を参照してフレーム長に変換する。
また、各無線ノード1〜7のウェイクアップ信号判定部18は、ウェイクアップ信号受信部17から受けたフレーム長を対応表TBL2を参照してデータ(ビット値)に変換する。
図7は、図2に示す経路制御部15が保持するルーティングテーブルRTの構成図である。図7を参照して、ルーティングテーブルRTは、送信先と、次の無線ノードと、ホップ数と、Rankとを含む。送信先、次の無線ノード、ホップ数およびRankは、相互に対応付けられる。
送信先は、ウェイクアップ信号、制御パケットDIO,DAOおよびパケット等の受信先の無線ノードのMACアドレスMACaddからなる。次の無線ノードは、送信先までの経路上においてルーティングテーブルRTを保持する無線ノードに送信先側で隣接する無線ノードのMACアドレスMACadd_NBからなる。
ホップ数は、ルーティングテーブルRTを保持する無線ノードから送信先の無線ノードまでのホップ数hからなる。Rankは、送信先(無線ノード)のシンク(=無線ノード)に対する近さの程度を示し、r=256×j(=256,512,768,・・・)からなる。
図8は、図1に示す無線センサーネットワーク10における無線ノード1〜3の配置状態を示す図である。
図8を参照して、無線ノード1〜3は、それぞれ、電波範囲REG1〜REG3を有する。無線ノード1は、2つの電波範囲REG1,REG2が重なった領域に存在する。無線ノード2は、3つの電波範囲REG1〜REG3が重なった領域に存在する。無線ノード3は、2つの電波範囲REG2,REG3が重なった領域に存在する。
このように、自己の電波範囲がシンク(=無線ノード1)まで届かない無線ノードが存在する状態において、各無線ノード2〜7からシンク(=無線ノード1)までの経路の構築が行われる。
経路の構築方法について説明する。図9は、経路を構築するときの動作を説明するためのフローチャートである。図9を参照して、経路を構築する動作が開始されると、無線ノード1(=シンク)の制御部14は、ウェイクアップ信号のウェイクアップIDとしてブロードキャストIDを経路制御部15から受ける。
そして、無線ノード1の制御部14は、無線ノード2のMACアドレスのハッシュ値を演算し、12ビットのハッシュ値a1a2a3a4a5a6a7a8a9a10a11a12を取得する。その結果、ブロードキャストIDは、a9a10a11a12=0x2、a5a6a7a8=0x0、a1a2a3a4=0x3として、0xF,0x2,0x0,0x3によって表される。
その後、無線ノード1の制御部14は、対応表TBL2を参照して、0xFに対応する16.3[ms]のフレーム長FL1と、0x2に対応する12.4[ms]のフレーム長FL2と、0x0に対応する11.8[ms]のフレーム長FL3と、0x3に対応する12.7[ms]のフレーム長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を受信し、その受信したウェイクアップ信号WuSの受信電波に基づいて、4個のフレーム長FL1〜FL4を検出する。
より具体的には、無線ノード2のウェイクアップ信号受信部17は、アンテナ12を介してウェイクアップ信号を受信し、その受信したウェイクアップ信号の受信信号をサンプリング間隔(=10μs)で包絡線検波してビット列を得る。
その後、無線ノード2のウェイクアップ信号受信部17は、ビット列の先頭から“1”の個数をカウントし、ビット列のビット値が“0”になると、カウントを停止し、そのカウントを停止したときのカウント値を“1”の個数N1とするとともにカウント値をリセットする。その後、無線ノード2のウェイクアップ信号受信部17は、ビット列のビット値が“1”になると、ビット列のビット値が“0”になるまで“1”の個数をカウントし、ビット列のビット値が“0”になると、カウントを停止し、そのカウントを停止したときのカウント値を“1”の個数N2とするとともにカウント値をリセットする。
無線ノード2のウェイクアップ信号受信部17は、この動作をビット列の最後まで繰り返し実行して4つの“1”の個数N1〜N4を得る。
そして、無線ノード2のウェイクアップ信号受信部17は、個数N1にサンプリング間隔(=10μsec)を乗算して16.3[ms]のフレーム長を取得し、個数N2にサンプリング間隔(=10μsec)を乗算して12.4[ms]のフレーム長を取得し、個数N3にサンプリング間隔(=10μs)を乗算して11.8[ms]のフレーム長を取得し、個数N4にサンプリング間隔(=10μs)を乗算して12.7[ms]のフレーム長を取得する。
そうすると、無線ノード2のウェイクアップ信号受信部17は、16.3[ms]のフレーム長、12.4[ms]のフレーム長、11.8[ms]のフレーム長、および12.7[ms]のフレーム長をウェイクアップ信号判定部18へ出力する。
無線ノード2のウェイクアップ信号判定部18は、16.3[ms]のフレーム長、12.4[ms]のフレーム長、11.8[ms]のフレーム長、および12.7[ms]のフレーム長をウェイクアップ信号受信部17から受ける。
そして、無線ノード2のウェイクアップ信号判定部18は、対応表TBL2を参照して、16.3[ms]のフレーム長に対応する0xFを検出し、12.4[ms]のフレーム長に対応する0x2を検出し、11.8[ms]のフレーム長に対応する0x0を検出し、12.7[ms]のフレーム長に対応する0x3を検出する。その後、無線ノード2のウェイクアップ信号判定部18は、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は、対応表TBL2を参照して、0x1に対応する12.1[ms]のフレーム長FL5と、0x5に対応する13.3[ms]のフレーム長FL6と、0x2に対応する12.4[ms]のフレーム長FL7と、0x8に対応する14.2[ms]のフレーム長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から受けると、対応表TBL2を参照して、上述した方法によって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のトポロジー状態を示すトポロジー情報を作成して保持する。
このように、無線センサーネットワーク10において、最初に経路を構築する場合、バックアップIDであるMACアドレスを用いて各無線ノード1〜7をスリープ状態から起動状態へ移行させる。これは、フレーム長およびフレーム数によって規定されるウェイクアップID(=WuID)が各無線ノード1〜7に割り当てられていないからである。
図9に示すフローチャートにおいて、無線ノード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〜7の消費電力を最小限に抑制できる。
図10は、図9に示すフローチャートに従って構築されるトポロジーの例を示す図である。
図10を参照して、図9に示すステップS1〜S8が実行されることにより、無線ノード2が無線ノード1に接続される(図10の(a)参照)。
その後、図9に示すステップS9〜S20が実行されることにより、無線ノード3が無線ノード2に接続される(図10の(b)参照)。
そして、図9に示すステップS1〜ステップS20が繰り返し実行されることにより、無線ノード4が無線ノード1に接続され(図10の(c)参照)、無線ノード5が無線ノード4に接続され、無線ノード6が無線ノード4に接続され、無線ノード7が無線ノード5に接続される(図10の(d)参照)。
シンクである無線ノード1がルーティングテーブルRTを作成する場合、無線ノード1は、無線ノード2〜7の各々が作成した制御パケットDAOを受信し、その受信した制御パケットDAOには、制御パケットDAOを作成した無線ノード(=無線ノード2〜7のいずれか)の親ノードのアドレスが格納されている。従って、無線ノード1は、無線ノード2〜7の各々が作成した制御パケットDAOを順次受信することによって、図10の(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を送信した無線ノードを親ノードとして選択する。
図9に示すフローチャートは、定期的(例えば、30分ごと)に実行され、または新たな無線ノードが無線センサーネットワーク10に参入したときに実行され、または各無線ノード2〜7の親ノードが変更または削除されたときに実行される。また、図9に示すフローチャートは、トポロジーが変化したときに実行される。
新たな無線ノードが無線センサーネットワーク10に参入した場合、新たに参入した無線ノードは、DIOの送信要求であるDISをブロードキャストする。そして、DISを受信した無線ノードがDIOを送信することによって図9に示すフローチャートが実行され、新たなトポロジーが構築される。
図11は、図7に示すルーティングテーブルRTの具体例を示す図である。なお、図11に示すルーティングテーブルRT−1は、図10の(d)に示す無線ノード5におけるルーティングテーブルRTである。
図11を参照して、無線ノード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に格納できる。
以下、フレーム長およびフレーム数によって規定されるウェイクアップID(WuID)を各無線ノード1〜7に割り当てる方法について説明する。
(A)ウェイクアップIDの割当方法1
図12は、ウェイクアップIDが割当方法1によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1の経路制御部15は、無線センサーネットワーク10における無線ノード1〜7の配置状態を示すトポロジーを保持する。
そして、無線ノード1の経路制御部15は、その保持するトポロジーを示すトポロジー情報を割当部16へ出力する。
無線ノード1の割当部16は、トポロジー情報を経路制御部15から受け、その受けたトポロジー情報に基づいて無線センサーネットワーク10を構成する無線ノード1〜7の総数(=7個)を検出する。
その後、無線ノード1の割当部16は、割当表TBL1を参照して、ウェイクアップID(WuID1)〜ウェイクアップID(WuID7)までの7個のウェイクアップIDを抽出する。即ち、無線ノード1の割当部16は、最も短いフレーム長および最も少ないフレーム数によって規定されたウェイクアップID(WuID1)からフレーム長が順次増加するように7個のウェイクアップID(WuID1〜WuID7)を抽出する。なお、ウェイクアップID(WuID1)を「基準ウェイクアップID」と言う。
そうすると、無線ノード1の割当部16は、その抽出した7個のウェイクアップID(WuID1〜WuID7)を無線ノード1〜7にランダムに割り当てる。
その結果、例えば、ウェイクアップID(WuID6),ウェイクアップID(WuID4),ウェイクアップID(WuID1),ウェイクアップID(WuID7),ウェイクアップID(WuID2),ウェイクアップID(WuID3),ウェイクアップID(WuID5)は、それぞれ、無線ノード1〜7に割り当てられる(図12参照)。
なお、無線センサーネットワーク10を構成する無線ノードの総数が20個であれば、無線ノード1の割当部16は、割当表TBL1から20個のウェイクアップID(=WuID1〜WuID20)を抽出する。そして、無線ノード1の割当部16は、20個のウェイクアップID(=WuID1〜WuID20)を20個の無線ノードにランダムに割り当てる。この場合、WuID1〜WuID16は、1個のフレーム長および1個のフレーム数によって規定され、WuID17〜WuID20は、2個のフレーム長および2個のフレーム数によって規定される。
このように、無線ノード1の割当部16は、無線センサーネットワーク10を構成する無線ノードの総数を検出し、その検出した無線ノードの総数に等しい数のWuIDを基準ウェイクアップID(WuID1)からフレーム長またはフレーム長およびフレーム数が順次増加するように割当表TBL1から抽出し、その抽出したWuIDを無線センサーネットワーク10を構成する無線ノードにランダムに割り当てる。
これによって、無線センサーネットワーク10においては、より短いフレーム長およびより少ないフレーム数によって規定されたウェイクアップIDを用いて各無線ノードがスリープ状態から起動状態へ移行されるので、一定のフレーム数によって規定されるウェイクアップIDを用いる場合よりも、ウェイクアップIDの送信による消費電力およびウェイクアップIDの受信による消費電力を低減して各無線ノードをスリープ状態から起動状態へ移行させることができる。
無線ノード1の割当部16は、7個のウェイクアップID(WuID1〜WuID7)を無線ノード1〜7に割り当てると、その割り当てた割当結果を制御部14へ出力する。
無線ノード1の制御部14は、割当結果を割当部16から受け、トポロジー情報を経路制御部15から受ける。そして、無線ノード1の制御部14は、トポロジー情報に基づいて、無線ノード1に隣接する無線ノードが無線ノード2であることを検出する。そうすると、無線ノード1の制御部14は、割当結果に基づいて、無線ノード1に割り当てられたウェイクアップID(WuID6)と、無線ノード2に割り当てられたウェイクアップID(WuID4)とを保持する。
また、無線ノード1の制御部14は、トポロジー情報に基づいて、無線ノード2に隣接する無線ノード1,3,5と、無線ノード3に隣接する無線ノード2,4,6と、無線ノード4に隣接する無線ノード3,7と、無線ノード5に隣接する無線ノード2と、無線ノード6に隣接する無線ノード3と、無線ノード7に隣接する無線ノード4とを検出する。
そして、無線ノード1の制御部14は、割当結果に基づいて、無線ノード2に割り当てられたウェイクアップID(WuID4)と、無線ノード1,3,5にそれぞれ割り当てられたウェイクアップID(WuID6),ウェイクアップID(WuID1),ウェイクアップID(WuID2)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID4)と、ウェイクアップID(WuID6,WuID1,WuID2)とを含むWuIDリスト1=[WuID2/WuID6,WuID1,WuID2]を作成し、その作成したWuIDリスト1=[WuID2/WuID6,WuID1,WuID2]を無線通信部13およびアンテナ11を介して無線ノード2へ送信する。
また、無線ノード1の制御部14は、割当結果に基づいて、無線ノード3に割り当てられたウェイクアップID(WuID1)と、無線ノード2,4,6にそれぞれ割り当てられたウェイクアップID(WuID4),ウェイクアップID(WuID7),ウェイクアップID(WuID3)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID1)と、ウェイクアップID(WuID4,WuID7,WuID3)とを含むWuIDリスト2=[WuID1/WuID4,WuID7,WuID3]を作成し、その作成したWuIDリスト2=[WuID1/WuID4,WuID7,WuID3]を無線通信部13およびアンテナ11を介して無線ノード3へ送信する。
更に、無線ノード1の制御部14は、割当結果に基づいて、無線ノード4に割り当てられたウェイクアップID(WuID7)と、無線ノード3,7にそれぞれ割り当てられたウェイクアップID(WuID1),ウェイクアップID(WuID5)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID7)と、ウェイクアップID(WuID1,WuID5)とを含むWuIDリスト3=[WuID7/WuID1,WuID5]を作成し、その作成したWuIDリスト3=[WuID7/WuID1,WuID5]を無線通信部13およびアンテナ11を介して無線ノード4へ送信する。
更に、無線ノード1の制御部14は、割当結果に基づいて、無線ノード5に割り当てられたウェイクアップID(WuID2)と、無線ノード2に割り当てられたウェイクアップID(WuID4)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID2)と、ウェイクアップID(WuID4)とを含むWuIDリスト4=[WuID2/WuID4]を作成し、その作成したWuIDリスト4=[WuID2/WuID4]を無線通信部13およびアンテナ11を介して無線ノード5へ送信する。
更に、無線ノード1の制御部14は、割当結果に基づいて、無線ノード6に割り当てられたウェイクアップID(WuID3)と、無線ノード3に割り当てられたウェイクアップID(WuID1)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID3)と、ウェイクアップID(WuID1)とを含むWuIDリスト5=[WuID3/WuID1]を作成し、その作成したWuIDリスト5=[WuID3/WuID1]を無線通信部13およびアンテナ11を介して無線ノード6へ送信する。
更に、無線ノード1の制御部14は、割当結果に基づいて、無線ノード7に割り当てられたウェイクアップID(WuID5)と、無線ノード4に割り当てられたウェイクアップID(WuID7)とを検出する。
そうすると、無線ノード1の制御部14は、ウェイクアップID(WuID5)と、ウェイクアップID(WuID7)とを含むWuIDリスト6=[WuID5/WuID7]を作成し、その作成したWuIDリスト6=[WuID5/WuID7]を無線通信部13およびアンテナ11を介して無線ノード7へ送信する。
このように、無線ノード1は、各無線ノード1〜7にウェイクアップIDを割り当てると、無線ノード(=無線ノード2〜7のいずれか)に割り当てられたウェイクアップIDと無線ノード(=無線ノード2〜7のいずれか)に隣接する無線ノードに割り当てられたウェイクアップIDとを含むWuIDリストを作成して無線ノード(=無線ノード2〜7のいずれか)へ送信する。
各無線ノード2〜7の制御部14は、WuIDリストを無線ノード1から受信し、その受信したWuIDリストに基づいて、自己に割り当てられたウェイクアップIDと、自己に隣接する無線ノードに割り当てられたウェイクアップIDとを検出して保持する。
(B)ウェイクアップIDの割当方法2
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1〜7の制御部14は、自己がスリープ状態から起動状態へ移行した起動回数を所望の時間長において計測する。そして、無線ノード2〜7の制御部14は、その計測した起動回数を無線ノード1へ送信する。
無線ノード1の制御部14は、無線ノード2〜7から起動回数を受信し、その受信した起動回数と自己が計測した起動回数とを割当部16へ出力する。
無線ノード1の割当部16は、無線ノード1〜7の起動回数を制御部14から受ける。そして、無線ノード1の割当部16は、無線ノード1〜7の起動回数に基づいて、起動回数が最も多い無線ノードから起動回数が最も少ない無線ノードに向かって、基準ウェイクアップIDからフレーム長またはフレーム長およびフレーム数が順次増加するようにウェイクアップIDを各無線ノード1〜7に割り当てる。
即ち、無線ノード1の割当部16は、起動回数が多いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップID(WuID)を割り当てる。
より具体的に説明する。無線ノード1〜7の起動回数がそれぞれ10回,8回,7回,5回,1回,3回,2回である場合、無線ノード1の割当部16は、WuID1〜WuID7を割当表TBL1から抽出し、WuID1を無線ノード1に割り当て、WuID2を無線ノード2に割り当て、WuID3を無線ノード3に割り当て、WuID4を無線ノード4に割り当て、WuID5を無線ノード6に割り当て、WuID6を無線ノード7に割り当て、WuID7を無線ノード5に割り当てる。
なお、起動回数が同じである無線ノードが複数存在する場合には、その複数の無線ノードには、ランダムにウェイクアップIDを割り当てる。
これによって、一定のフレーム数によって規定されるウェイクアップIDを用いる場合よりも、起動回数が多い無線ノードにおける消費電力を低減して無線ノードをスリープ状態から起動状態へ移行させることができる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(C)ウェイクアップIDの割当方法3
図13は、ウェイクアップIDが割当方法3によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1の割当部16は、トポロジー情報を経路制御部15から受ける。
そして、無線ノード1の割当部16は、トポロジー情報に基づいて、各無線ノード1〜7の無線ノード1からの近さを示す近さ指標CLNを検出する。近さ指標CLNは、無線ノード1からのホップ数であってもよく、各無線ノード1〜7のRankであってもよい。
無線ノード1の割当部16は、近さ指標CLNを検出すると、シンク(=無線ノード1)に最も近い無線ノードからシンク(=無線ノード1)に最も遠い無線ノードに向かって、基準ウェイクアップID(WuID1)からフレーム長またはフレーム長およびフレーム数が順次増加するようにウェイクアップIDを無線ノード1〜7に割り当てる。
即ち、無線ノード1の割当部16は、無線ノード1(=シンク)に近いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを割り当て、無線ノード1(=シンク)から遠いほど、より長いフレーム長およびより多いフレーム数によって規定されるウェイクアップIDを割り当てる。
無線ノード1(=シンク)に近いほど、起動回数が多くなり、無線ノード1(=シンク)から遠いほど、起動回数が少なくなる。従って、無線ノード1(=シンク)に近いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを用いることによって、スリープ状態から起動状態へ移行させるときの消費電力を低減できる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(D)ウェイクアップIDの割当方法4
図14は、ウェイクアップIDが割当方法4によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1の割当部16は、トポロジー情報を経路制御部15から受ける。
そして、無線ノード1の割当部16は、トポロジー情報に基づいて、各無線ノード1〜7に隣接する隣接無線ノードの個数を検出する。図14に示す場合、無線ノード1に隣接する無線ノードの個数は、1個であり、無線ノード2に隣接する無線ノードの個数は、3個であり、無線ノード3に隣接する無線ノードの個数は、4個であり、無線ノード4に隣接する無線ノードの個数は、1個であり、無線ノード5に隣接する無線ノードの個数は、1個であり、無線ノード6に隣接する無線ノードの個数は、1個であり、無線ノード7に隣接する無線ノードの個数は、1個である。
無線ノード1の割当部16は、各無線ノード1〜7について、隣接無線ノードの個数を検出すると、隣接無線ノードの個数が最も多い無線ノードから隣接無線ノードの個数が最も少ない無線ノードに向かって、基準ウェイクアップID(WuID1)からフレーム長またはフレームおよびフレーム数が順次増加するようにウェイクアップIDを無線ノード1〜7に割り当てる。
より具体的には、無線ノード1の割当部16は、隣接無線ノードの個数が最も多い無線ノード3にウェイクアップID(WuID1)を割り当て、隣接無線ノードの個数が2番目に多い無線ノード2にウェイクアップID(WuID2)を割り当てる。そして、無線ノード1の割当部16は、無線ノード1,4〜7に隣接する無線ノードの個数が同じ(=1個)であるので、WuID3〜WuID7を無線ノード1,4〜7にランダムに割り当てる。
隣接無線ノードの個数が多い無線ノードは、スリープ状態から起動状態へ移行する回数が多いので、上記のように隣接無線ノードの個数が多いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを割り当てることによって、消費電力を低減してスリープ状態から起動状態へ移行させることができる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(E)ウェイクアップIDの割当方法5
図15は、ウェイクアップIDが割当方法5によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、各無線ノード1〜7の無線通信部13は、隣接する無線ノードから制御パケットまたはデータパケットを受信したときの受信信号強度RSSIを検出する。この場合、各無線ノード1〜7の無線通信部13は、隣接する無線ノードとの間で複数の無線リンクを有する場合、その複数の無線リンクの全てについて受信信号強度RSSIを検出する。
そして、各無線ノード1〜7の無線通信部13は、その検出した受信信号強度RSSIを制御部14へ出力する。
無線ノード1の制御部14は、受信信号強度RSSIを受けると、その受けた受信信号強度RSSIを割当部16へ出力する。
無線ノード2〜7の制御部14は、受信信号強度RSSIを受けると、その受けた受信信号強度RSSIと無線ノード2〜7のMACアドレスとを含むパケットPKT_RSSIを生成し、その生成したパケットPKT_RSSIを無線通信部13を介して無線ノード1へ送信する。この場合、無線ノード2〜7の制御部14は、複数の受信信号強度RSSIを送信するとき、各受信信号強度RSSIを隣接無線ノードに対応付けて無線ノード1へ送信する。
無線ノード1の無線通信部13は、パケットPKT_RSSIを無線ノード2〜7から受信し、その受信したパケットPKT_RSSIを制御部14へ出力し、制御部14は、パケットPKT_RSSIを割当部16へ出力する。
無線ノード1の割当部16は、パケットPKT_RSSIを受けると、パケットPKT_RSSIから受信信号強度RSSIを取り出す。
この場合、無線ノード1の割当部16は、無線ノード2における受信信号強度RSSIとして、無線ノード1に対応付けられた受信信号強度RSSI(=−65dBm)と、無線ノード3に対応付けられた受信信号強度RSSI(=−70dBm)と、無線ノード5に対応付けられた受信信号強度RSSI(=−60dBm)とを取り出す。また、無線ノード1の割当部16は、無線ノード3における受信信号強度RSSIとして、無線ノード2に対応付けられた受信信号強度RSSI(=−70dBm)と、無線ノード4に対応付けられた受信信号強度RSSI(=−65dBm)と、無線ノード6に対応付けられた受信信号強度RSSI(=−75dBm)とを取り出す。更に、無線ノード1の割当部16は、無線ノード4における受信信号強度RSSIとして、無線ノード3に対応付けられた受信信号強度RSSI(=−70dBm)と、無線ノード7に対応付けられた受信信号強度RSSI(=−85dBm)とを取り出す。更に、無線ノード1の割当部16は、無線ノード5における受信信号強度RSSIとして、無線ノード2に対応付けられた受信信号強度RSSI(=−65dBm)を取り出す。更に、無線ノード1の割当部16は、無線ノード6における受信信号強度RSSIとして、無線ノード3に対応付けられた受信信号強度RSSI(=−70dBm)を取り出す。更に、無線ノード1の割当部16は、無線ノード7における受信信号強度RSSIとして、無線ノード4に対応付けられた受信信号強度RSSI(=−80dBm)を取り出す。
そして、無線ノード1の割当部16は、複数の無線リンクを有する無線ノードについては、最も小さい受信信号強度RSSIを検出する。即ち、無線ノード1の割当部16は、無線ノード2については、−70dBmの受信信号強度RSSIを検出し、無線ノード3については、−75dBmの受信信号強度RSSIを検出し、無線ノード4については、−85dBmの受信信号強度RSSIを検出する。
そうすると、無線ノード1の割当部16は、受信信号強度RSSIが最も小さい無線リンクを有する無線ノードから受信信号強度RSSIが最も大きい無線リンクを有する無線ノードに向かって、基準ウェイクアップID(WuID1)からフレーム長またはフレーム長およびフレーム数が増加するようにウェイクアップIDを無線ノード1〜7に割り当てる。
より具体的には、無線ノード1の割当部16は、受信信号強度RSSIが最も小さい無線リンクを有する無線ノード4にウェイクアップID(WuID1)を割り当て、受信信号強度RSSIが2番目に小さい無線リンクを有する無線ノード7にウェイクアップID(WuID2)を割り当てる。また、無線ノード1の割当部16は、受信信号強度RSSIが3番目に小さい無線リンクを有する無線ノード3にウェイクアップID(WuID3)を割り当て、受信信号強度RSSIが4番目に小さい無線リンクを有する無線ノード2,6にウェイクアップID(WuID4,WuID5)をランダムに割り当てる。更に、無線ノード1の割当部16は、受信信号強度RSSIが5番目に小さい無線リンクを有する無線ノード5にウェイクアップID(WuID6)を割り当て、受信信号強度RSSIが最も大きい無線リンクを有する無線ノード1にウェイクアップID(WuID7)を割り当てる。
このように、受信信号強度RSSIが小さい無線リンクを有する無線ノードに、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップID(WuID)を割り当てることにより、受信信号強度RSSIが小さい無線リンクを有する無線ノードがスリープ状態から起動状態へ移行するのに失敗する確率を低減できる。また、起動するのに失敗し、ウェイクアップ信号を再送するときのオーバーヘッドを下げることができる。
また、無線ノード1の割当部16は、受信信号強度RSSIのしきい値RSSI_REFを保持しており、受信信号強度RSSIがしきい値RSSI_REFよりも小さい無線リンクを有する無線ノードを優先して、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップID(WuID)を割り当ててもよい。この場合、受信信号強度RSSIがしきい値RSSI_REFよりも小さい無線リンクを有する無線ノードが複数存在するとき、その複数の無線ノードにフレーム長の短い順および/またはフレーム数の少ない順にウェイクアップID(WuID)をランダムに割り当てる。また、受信信号強度RSSIがしきい値RSSI_REF以上である無線リンクを有する無線ノードが複数存在するとき、その複数の無線ノードにフレーム長の短い順および/またはフレーム数の少ない順にウェイクアップID(WuID)をランダムに割り当てる。
このようにウェイクアップID(WuID)を割り当てた場合も、上記の効果を得ることができる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(F)ウェイクアップIDの割当方法6
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1の割当部16は、トポロジー情報に基づいて、h(hは1以上の整数)ホップ離れた無線ノードに同じウェイクアップID(WuID)を割り当てながら、基準ウェイクアップIDからフレーム長またはフレーム長およびフレーム数が順次増加するようにウェイクアップID(WuID)割り当てる。
h=1である場合、全ての無線ノード1〜7に同じウェイクアップID(WuID)を割り当てるため、ウェイクアップ信号を送信した無線ノードに隣接する全ての無線ノードがスリープ状態から起動状態へ移行する。
h=2である場合、ウェイクアップ信号を送信した無線ノードに隣接する複数の無線ノードがスリープ状態から起動状態へ移行する可能性がある。
h=3である場合、ウェイクアップ信号を送信した無線ノードに隣接する1個の無線ノードのみがスリープ状態から起動状態へ移行する。
図16は、h=3である場合にウェイクアップIDを割り当てた例を示す図である。図16を参照して、ウェイクアップID(WuID1)を無線ノード1に割り当てた場合、無線ノード1から3ホップの位置に存在する無線ノード4にウェイクアップID(WuID1)を割り当てる。無線ノード6は、無線ノード1から3ホップの位置に存在するが、無線ノード4から3ホップよりも少ない2ホップの位置に存在するので、ウェイクアップID(WuID1)は、無線ノード6に割り当てられない。
無線ノード2は、無線ノード1から1ホップの位置に存在するので、ウェイクアップID(WuID1)と異なるウェイクアップID(WuID2)を無線ノード2に割り当てる。そして、無線ノード2から3ホップの位置に存在する無線ノード7にウェイクアップID(WuID2)を割り当てる。
無線ノード3は、無線ノード2から1ホップの位置に存在するので、ウェイクアップID(WuID2)と異なるウェイクアップID(WuID3)を無線ノード3に割り当てる。
無線ノード5は、無線ノード3から2ホップの位置に存在するので、ウェイクアップID(WuID3)と異なるウェイクアップID(WuID4)を無線ノード5に割り当てる。
無線ノード6は、無線ノード5から3ホップの位置に存在するので、ウェイクアップID(WuID4)を無線ノード6に割り当てる。
その結果、無線ノード2がWuID1を送信した場合、無線ノード1のみが起動し、無線ノード7がWuID1を送信した場合、無線ノード4のみが起動する。
また、無線ノード2がWuiD4を送信した場合、無線ノード5のみが起動し、無線ノード3がWuID4を送信した場合、無線ノード6のみが起動する。
更に、無線ノード1がWuID2を送信した場合、無線ノード2のみが起動し、無線ノード4がWuID2を送信した場合、無線ノード7のみが起動する。
更に、無線ノード3がWuID2を送信した場合、無線ノード2のみが起動し、無線ノード5がWuID2を送信した場合、無線ノード2のみが起動する。
更に、無線ノード6がWuID3を送信した場合、無線ノード3のみが起動し、無線ノード3がWuID1を送信した場合、無線ノード4のみが起動する。
従って、3ホップ離れた無線ノードに同じウェイクアップIDを割り当てても、1個の無線ノードのみが起動する。
3ホップ離れた無線ノードに同じウェイクアップIDを割り当てても、1個の無線ノードのみが起動するのであるから、4ホップ以上離れた無線ノードに同じウェイクアップIDを割り当てても、1個の無線ノードのみが起動する。
このように、hホップ離れた無線ノードに同じウェイクアップIDをフレーム長の短い順および/またはフレーム数の少ない順に割り当てることによって、使用するフレーム長をより短くでき、使用するフレーム数をより少なくできる。
その結果、無線センサーネットワーク10を構成する無線ノード1〜7を起動させるときの消費電力を低減できる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(G)ウェイクアップIDの割当方法7
図17は、ウェイクアップIDが割当方法7によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1〜7の各々は、フレーム送信数Nを取得する。フレーム送信数Nを取得する方法について説明する。
各無線ノード1〜7の制御部14は、無線センサーネットワーク10におけるセンサー値(=データ)の収集周期、制御フレーム(DIO,DAO)の送信間隔、トポロジーから得られるツリーサイズ(子ノードの総数)およびリンクの通信品質に基づいてフレーム送信数Nを算出する。
ここで、子ノードの総数は、フレーム送信数Nを算出する無線ノードよりも下位の階層に位置し、かつ、フレーム送信数Nを算出する無線ノードを介してシンク(=無線ノード1)へセンサー値を送信可能な無線ノードの総数である。また、全ての子ノードから送信されたセンサー値は、センサー値の収集周期以内にフレーム送信数Nを算出する無線ノードへ届くことを前提としている。更に、制御パケットDIO,DAOのうち、制御パケットDIOのみが送信されることを前提としている。センサー値がシンク(=無線ノード1)へ収集される場合、無線センサーネットワーク10のトポロジーは、安定しており、制御パケットDAOは、送信されないからである。更に、リンクの通信品質は、フレーム送信数Nを算出する無線ノードへの無線フレームの到達率、または受信信号強度RSSIを用いた倍率からなる。無線フレームの到達率は、過去の通信状況から算出され、フレーム送信数Nを算出する無線ノードに実際に到達した無線フレームのフレーム数を送信元の無線ノードから送信された無線フレームのフレーム数で除算することにより算出される。
この方法を用いてフレーム送信数Nを算出する場合、制御部14は、例えば、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倍になる。従って、制御部14は、例えば、1分間のセンサー値の収集周期と、5分間の制御フレームの送信間隔と、100台の子ノードの総数と、−50dBm≦RSSI<−20dBmとに基づいて、(60個×100台+12個)×2=12024[個/h]のフレーム送信数Nを算出する。
このように、リンクの通信品質を用いてフレーム送信数Nを算出することにより、フレーム送信数Nは、必ず到達した無線フレームのフレーム数になり、フレーム送信数Nの確度を上げることができる。
上述した方法を用いてフレーム送信数Nを算出する場合、制御部14は、センサー値の収集周期を予め保持しており、制御フレームの送信間隔を経路制御部15から受け、経路制御部15から受けたトポロジー情報に基づいてツリーサイズ(子ノードの総数)を得る。
上述した方法によってフレーム送信数Nを算出することによって、フレーム送信数Nを容易に得ることができる。
また、制御部14は、無線通信部13が実測したフレーム送信数Nを無線通信部13から受けてもよい。
フレーム送信数Nを実測することによって、無線センサーネットワーク10に即したフレーム送信数Nを得ることができる。
無線ノード1の制御部14は、上述した方法によってフレーム送信数Nを取得すると、その取得したフレーム送信数Nを割当部16へ出力する。また、無線ノード2〜7の制御部14は、上述した方法によってフレーム送信数Nを取得すると、その取得したフレーム送信数Nを含むパケットを生成する。そして、無線ノード2〜7の制御部14は、その生成したパケットを無線通信部13およびアンテナ11を介して無線ノード1(=シンク)へ送信する。
無線ノード1の無線通信部13は、フレーム送信数Nを含むパケットを無線ノード2〜7から受信し、その受信したパケットを復調して制御部14へ出力する。無線ノード1の制御部14は、無線通信部13からパケットを受け、その受けたパケットから送信元のアドレスとフレーム送信数Nとを取り出し、その取り出した送信元のアドレスおよびフレーム送信数Nを相互に対応付けて割当部16へ出力する。
無線ノード1の割当部16は、送信元のアドレスおよびフレーム送信数Nを制御部14から受け、その受けた送信元のアドレスおよびフレーム送信数Nを相互に対応付けて保持する。
無線ノード1〜7のフレーム送信数Nは、例えば、図17に示すようになる。無線ノード1の割当部16は、無線ノード1〜7のフレーム送信数Nを収集すると、フレーム送信数Nが最も多い無線ノードからフレーム送信数Nが最も少ない無線ノードに向かって、基準ウェイクアップID(WuID1)からフレーム長またはフレーム長およびフレーム数が増加するようにウェイクアップIDを無線ノード1〜7に割り当てる。
より具体的には、無線ノード1の割当部16は、フレーム送信数Nが最も多い無線ノード2にウェイクアップID(WuID1)を割り当て、フレーム送信数Nが2番目に多い無線ノード3にウェイクアップID(WuID2)を割り当てる。また、無線ノード1の割当部16は、フレーム送信数Nが3番目に多い無線ノード4にウェイクアップID(WuID3)を割り当て、フレーム送信数Nが4番目に多い無線ノード6にウェイクアップID(WuID4)を割り当てる。更に、無線ノード1の割当部16は、フレーム送信数Nが5番目に多い無線ノード7にウェイクアップID(WuID5)を割り当て、フレーム送信数Nが6番目に多い無線ノード5にウェイクアップID(WuID6)を割り当て、フレーム送信数Nが最も少ない無線ノード1にウェイクアップID(WuID7)を割り当てる。
このように、フレーム送信数Nが多いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを割り当てることによって、ウェイクアップIDの送信および受信による消費電力を低減できる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
(H)ウェイクアップIDの割当方法8
図18は、ウェイクアップIDが割当方法8によって無線ノード1〜7に割り当てられた例を示す図である。
無線センサーネットワーク10における経路が図9に示すフローチャートに従って構築されると、無線ノード1の割当部16は、トポロジー情報を経路制御部15から受ける。そして、無線ノード1の割当部16は、トポロジー情報に基づいて、各無線ノード1〜7の子ノードの総数を検出する。
そうすると、無線ノード1の割当部16は、子ノードの総数が最も多い無線ノードから子ノードの総数が最も少ない無線ノードに向かって、基準ウェイクアップID(WuID1)からフレーム長またはフレーム長およびフレーム数が増加するようにウェイクアップIDを無線ノード1〜7に割り当てる。
より具体的には、無線ノード1の割当部16は、子ノードの総数が最も多い無線ノード1にウェイクアップID(WuID1)を割り当て、子ノードの総数が2番目に多い無線ノード2にウェイクアップID(WuID2)を割り当てる。また、無線ノード1の割当部16は、子ノードの総数が3番目に多い無線ノード3にウェイクアップID(WuID3)を割り当て、子ノードの総数が最も少ない無線ノード4〜7にウェイクアップID(WuID6,WuID4,WuID5,WuID7)をランダムに割り当てる。
このように、子ノードの総数が多いほど、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを割り当てることによって、ウェイクアップIDの送信および受信による消費電力を低減できる。
なお、無線ノード1は、無線ノード1〜7にウェイクアップIDを割り当てると、上述した方法によって、WuIDリストを各無線ノード2〜7へ送信する。
図19は、この発明の実施の形態によるウェイクアップIDの割当方法を説明するためのフローチャートである。
図19を参照して、ウェイクアップIDを割り当てる動作が開始されると、無線ノード1の経路制御部15は、無線センサーネットアーク10を構成する無線ノード1〜7の配置状態を示すトポロジーを検出し(ステップS21)、その検出したトポロジーを割当部16へ出力する。
そして、無線ノード1の割当部16は、トポロジーを経路制御部15から受け、その受けたトポロジーを示すトポロジー情報に基づいて、無線センサーネットワーク10を構成する無線ノード1〜7の総数、シンク(=無線ノード1)からの近さの度合いを示す近さ指標CLN、各無線ノード1〜7に隣接する隣接無線ノードの個数、各無線ノード間のホップ数およびツリーサイズ(=子ノードの総数)のいずれかを検出し、各無線ノード1〜7の起動回数、各無線ノード1〜7における受信信号強度RSSIおよび各無線ノード1〜7のフレーム送信数Nのいずれかを収集する(ステップS22)。
その後、無線ノード1の割当部16は、ステップS22における検出結果または収集結果に基づいて、最も短いフレーム長および最も少ないフレーム数によって規定される基準ウェイクアップIDからフレーム長またはフレーム長およびフレーム数が順次増加するようにウェイクアップIDを全ての無線ノード1〜7に割り当てる割当処理ASGNを実行する(ステップS23)。
これによって、ウェイクアップIDを割り当てる動作が終了する。
図20は、図19に示すステップS23の詳細な動作を示すフローチャートである。図20を参照して、図19のステップS22の後、無線ノード1の割当部16は、無線ノードの総数を検出したか否かを判定する(ステップS231)。
ステップS231において、無線ノードの総数を検出したと判定されたとき、無線ノード1の割当部16は、無線ノードの総数に基づいて割当処理ASGNを実行する(ステップS232)。
一方、ステップS231において、無線ノードの総数を検出しなかったと判定されたとき、無線ノード1の割当部16は、無線ノードの起動回数を収集したか否かを更に判定する(ステップS233)。
ステップS233において、無線ノードの起動回数を収集したと判定されたとき、無線ノード1の割当部16は、起動回数が最も多い無線ノードから起動回数が最も少ない無線ノードに向かって割当処理ASGNを実行する(ステップS234)。
一方、ステップS233において、無線ノードの起動回数を収集しなかったと判定されたとき、無線ノード1の割当部16は、近さ指標CLNを検出したか否かを更に判定する(ステップS235)。
ステップS235において、近さ指標CLNを検出したと判定されたとき、無線ノード1の割当部16は、シンク(=無線ノード1)に最も近い無線ノードからシンク(=無線ノード1)から最も遠い無線ノードに向かって割当処理ASGNを実行する(ステップS236)。
一方、ステップS235において、近さ指標CLNを検出しなかったと判定されたとき、無線ノード1の割当部16は、隣接無線ノードの個数を検出したか否かを更に判定する(ステップS237)。
ステップS237において、隣接無線ノードの個数を検出したと判定されたとき、無線ノード1の割当部16は、隣接無線ノードの個数が最も多い無線ノードから隣接無線ノードの個数が最も少ない無線ノードに向かって割当処理ASGNを実行する(ステップS238)。
一方、ステップS237において、隣接無線ノードの個数を検出しなかったと判定されたとき、無線ノード1の割当部16は、受信信号強度RSSIを収集したか否かを更に判定する(ステップS239)。
ステップS239において、受信信号強度RSSIを収集したと判定されたとき、無線ノード1の割当部16は、受信信号強度RSSIが最も小さい無線リンクを有する無線ノードから受信信号強度RSSIが最も大きい無線リンクを有する無線ノードに向かって割当処理ASGNを実行する(ステップS240)。
一方、ステップS239において、受信信号強度RSSIを収集しなかったと判定されたとき、無線ノード1の割当部16は、ホップ数を検出したか否かを更に判定する(ステップS241)。
ステップS241において、ホップ数を検出したと判定されたとき、無線ノード1の割当部16は、ホップ数がhホップである2つの無線ノードに同じウェイクアップIDを割り当てながら割当処理ASGNを実行する(ステップS242)。
一方、ステップS241において、ホップ数を検出しなかったと判定されたとき、無線ノード1の割当部16は、フレーム送信数Nを収集したか否かを更に判定する(ステップS243)。
ステップS243において、フレーム送信数Nを収集したと判定されたとき、無線ノード1の割当部16は、フレーム送信数Nが最も多い無線ノードからフレーム送信数が最も少ない無線ノードに向かって、割当処理ASGNを実行する(ステップS244)。
一方、ステップS243において、フレーム送信数Nを収集しなかったと判定されたとき、無線ノード1の割当部16は、子ノードの総数が検出されたと判定し、子ノードの総数が最も多い無線ノードから子ノードの総数が最も少ない無線ノードに向かって、割当処理ASGNを実行する(ステップS245)。
そして、ステップS232,S234,S236,S238,S240,S242,S244,S245のいずれかの後、一連の動作は、図19の“終了”へ移行する。
なお、ステップS231,S233,S235,S237,S239,S241,S243は、任意の優先順位で実行されてもよい。
また、ステップS231,S233,S235,S237,S239,S241,S243を実行せずに、ステップS232,S234,S236,S238,S240,S242,S244,S246から1つのステップを任意に選択し、その選択した1つのステップを実行するようにしてもよい。
(G)ウェイクアップIDの自律的な割当
上記においては、無線ノード1(=シンク)がウェイクアップIDを無線ノード1〜7に割り当てると説明したが、この発明の実施の形態においては、無線ノード1〜7がウェイクアップIDを自律的に割り当ててもよい。
以下に説明するウェイクアップIDの自律的な割当は、ウェイクアップIDの割当が完了した割当済無線ノードASGN_CPLと、ウェイクアップIDの割当が完了していない未割当無線ノードASGN_NonCPLとが混在することを前提としている。
例えば、上述した割当方法1から割当方法6のいずれかを用いてウェイクアップIDが無線ノード1〜7に割り当てられた後、無線ノードが新たに無線センサーネットワーク10に参入した場合である。
また、ウェイクアップIDの自律的な割当が実行される場合、無線ノード2〜7の各々は、図2に示す無線ノード1と同じ構成からなる。
未割当無線ノードASGN_NonCPLは、ウェイクアップID(WuID)の割当を要求する割当要求メッセージを送信する。割当要求メッセージは、ビット列およびフレーム長によって表される。そして、割当要求メッセージを表すフレーム長のセットは、予め決定され、各無線ノード1〜7の割当部16およびウェイクアップ信号判定部18に格納されている。
そして、無線ノード(未割当無線ノードASGN_NonCPLおよび割当済無線ノードASGN_CPL)は、無線通信部13またはウェイクアップ信号受信部17によって割当要求メッセージを受信する。
無線ノード(未割当無線ノードASGN_NonCPLおよび割当済無線ノードASGN_CPL)は、無線通信部13によって割当要求メッセージを受信した場合、割当要求メッセージの受信信号を復調して割当要求メッセージを受信したことを検知する。
また、無線ノード(未割当無線ノードASGN_NonCPLおよび割当済無線ノードASGN_CPL)は、ウェイクアップ信号受信部17によって割当要求メッセージを受信した場合、受信信号のフレーム長を検出し、その検出したフレーム長が割当要求メッセージを表すフレーム長に一致するとき、割当要求メッセージを受信したことを検知する。
そして、無線ノード(未割当無線ノードASGN_NonCPLおよび割当済無線ノードASGN_CPL)は、スリープ状態において、割当要求メッセージを受信すると、必ず、スリープ状態から起動状態へ移行する。
割当要求メッセージを送信した未割当無線ノードASGN_NonCPL以外の未割当無線ノードASGN_NonCPLは、割当要求メッセージを受信して割当要求メッセージを検知すると、ウェイクアップIDの割当を要求する動作を一時停止する。
割当済無線ノードASGN_CPLは、割当要求メッセージを受信してスリープ状態から起動状態へ移行すると、自己のウェイクアップIDと、自己に隣接する無線ノードのウェイクアップIDとを含むウェイクアップIDリストを作成して送信する。
そして、割当済無線ノードASGN_CPLは、ウェイクアップIDの割当が完了したことを示す割当完了メッセージを受信するまでスリープ状態へ移行しない。
起動状態にある割当済無線ノードASGN_CPLは、割当要求メッセージを受信すると、ウェイクアップIDリストを作成して送信する。
割当要求メッセージを送信した未割当無線ノードASGN_NonCPLは、一定時間、ウェイクアップIDリストの受信を待ち、一定時間が経過すると、割当要求メッセージの送信回数が基準値に達するまで割当要求メッセージを再送する。ここで、割当要求メッセージを再送するのは、ウェイクアップIDを正しく受信しない無線ノードが存在する可能性があり、またはウェイクアップIDリストの返信が衝突する可能性があるためである。
また、未割当無線ノードASGN_NonCPLは、2回目以降に、割当要求メッセージを送信する場合、ウェイクアップIDリストを既に受信した無線ノードの情報をペイロードに含めて割当要求メッセージを送信する。これは、ウェイクアップIDリストの返信によるパケットの衝突を緩和するためである。
未割当無線ノードASGN_NonCPLは、ウェイクアップIDリストの収集が完了すると、その収集したウェイクアップIDリストに含まれるウェイクアップID以外のウェイクアップIDにおいて、最も短いフレーム長および最も少ないフレーム数によって規定されるウェイクアップIDを選択し、その選択したウェイクアップIDを自己に割り当てる。
未割当無線ノードASGN_NonCPLは、自己にウェイクアップIDを割り当てると、自己に隣接する隣接無線ノードの間で同じウェイクアップIDが割り当てられた無線ノードが存在するか否かを判定する。即ち、未割当無線ノードASGN_NonCPLは、隣接無線ノード間でウェイクアップIDのコンフリクトが生じているか否かを判定する。そして、未割当無線ノードASGN_NonCPLは、隣接無線ノード間でウェイクアップIDのコンフリクトが生じていると判定したとき、ウェイクアップIDの再割当を指示する再割当指示を隣接無線ノードへ送信する。この場合、未割当無線ノードASGN_NonCPLは、ウェイクアップIDの再割当をしないでよい隣接無線ノードを選択し、その選択した隣接無線ノード以外の隣接無線ノードに再割当指示を送信する。
未割当無線ノードASGN_NonCPLは、自己にウェイクアップIDを割り当て、かつ、隣接無線ノードの間で同じウェイクアップIDが割り当てられた無線ノードが存在しないと判定したとき、自己に割り当てられたウェイクアップIDと隣接無線ノードに割り当てられたウェイクアップIDとを含む割当完了メッセージを生成して送信する。
割当完了メッセージを受信した未割当無線ノードASGN_NonCPLは、自己の割当要求を再開する。
割当済無線ノードASGN_CPLは、ウェイクアップIDのコンフリクトが生じているとき、再割当指示を受信すると、ウェイクアップIDの割当完了メッセージを受信するまで待機し、または受信した割当完了メッセージに基づいて、自己のウェイクアップIDを再決定する。そして、割当済無線ノードASGN_CPLは、自己のウェイクアップIDを再決定したとき、再決定後のウェイクアップIDを含む変更通知を生成して隣接無線ノードへ送信する。
図21は、フレーム長とデータとの対応関係を示す別の対応表を示す図である。図21を参照して、対応表TBL3は、フレーム長とデータとを含む。フレーム長およびデータは、相互に対応付けられる。
11.5[ms]のフレーム長は、0x0に対応付けられ、11.9[ms]のフレーム長は、0x1に対応付けられ、12.3[ms]のフレーム長は、0x2に対応付けられ、12.7[ms]のフレーム長は、0x3に対応付けられ、13.1[ms]のフレーム長は、0x4に対応付けられ、13.5[ms]のフレーム長は、0x5に対応付けられ、13.9[ms]のフレーム長は、0x6に対応付けられる。
また、14.3[ms]のフレーム長は、0x7に対応付けられ、14.7[ms]のフレーム長は、0x8に対応付けられ、15.1[ms]のフレーム長は、0x9に対応付けられ、15.5[ms]のフレーム長は、0xAに対応付けられ、15.9[ms]のフレーム長は、0xBに対応付けられ、16.3[ms]のフレーム長は、0xCに対応付けられ、16.7[ms]のフレーム長は、0xDに対応付けられ、17.1[ms]のフレーム長は、0xEに対応付けられ、17.5[ms]のフレーム長は、0xFに対応付けられる。
各無線ノード1〜7の割当部16およびウェイクアップ信号判定部18は、対応表TBL3を保持している。そして、各無線ノード1〜7の割当部16は、ウェイクアップIDの割当要求を示すビット列(例えば、c1c2c3c4c5c6c7c8c9c10c11c12の12ビットからなる)をc1c2c3c4,c5c6c7c8,c9c10c11c12に分割し、その分割したc1c2c3c4,c5c6c7c8,c9c10c11c12を対応表TBL3を参照してそれぞれフレーム長FL9,FL10,FL10に変換する。そうすると、各無線ノード1〜7の割当部16は、c1c2c3c4をペイロードに含み、かつ、フレーム長FL9を有する無線フレームFR9と、c5c6c7c8をペイロードに含み、かつ、フレーム長FL10を有する無線フレームFR10と、c9c10c11c12をペイロードに含み、かつ、フレーム長FL11を有する無線フレームFR11とを生成する。そして、各無線ノード1〜7の割当部16は、制御部14、無線通信部13およびアンテナ11を介して無線フレームFR9〜FR11を順次送信する。これによって、ウェイクアップIDの割当要求メッセージが送信される。
各無線ノード1〜7のウェイクアップ信号受信部17は、アンテナ12を介して無線フレームFR9〜FR11を順次受信し、その受信した無線フレームFR9〜FR11の受信信号に基づいて、上述した方法によってフレーム長FL9〜FL11を検出する。そして、各無線ノード1〜7のウェイクアップ信号受信部17は、その検出したフレーム長FL9〜FL11をウェイクアップ信号判定部18へ出力する。各無線ノード1〜7のウェイクアップ信号判定部18は、フレーム長FL9〜FL11を受け、その受けたフレーム長FL9〜FL11を対応表TBL3を参照してそれぞれビット値c1c2c3c4,c5c6c7c8,c9c10c11c12に変換する。そうすると、各無線ノード1〜7のウェイクアップ信号判定部18は、ビット値c1c2c3c4,c5c6c7c8,c9c10c11c12を一列に配列したビット列c1c2c3c4c5c6c7c8c9c10c11c12がウェイクアップIDの割当要求メッセージを示すことを検知し、起動信号を無線通信部13、制御部14、経路制御部15および割当部16へ出力し、その後、割当要求メッセージの検知信号を割当部16へ出力する。そして、各無線ノード1〜7の割当部16は、検知信号に基づいて、ウェイクアップIDの割当要求メッセージを受信したことを検知する。
また、各無線ノード1〜7の無線通信部13は、アンテナ11を介して無線フレームFR9〜FR11を順次受信し、その受信した無線フレームFR9〜FR11の受信信号を復調してビット列c1c2c3c4c5c6c7c8c9c10c11c12を制御部14へ出力する。各無線ノード1〜7の制御部14は、無線通信部13から受けたビット列c1c2c3c4c5c6c7c8c9c10c11c12を割当部16へ出力し、割当部16は、ビット列c1c2c3c4c5c6c7c8c9c10c11c12に基づいてウェイクアップIDの割当要求メッセージを受信したことを検知する。
図22は、ウェイクアップIDの自律的な割り当てを行う動作を説明するフローチャートである。なお、図22に示すフローチャートは、未割当無線ノードASGN_NonCPLにおける動作を説明するフローチャートである。
図22を参照して、一連の動作が開始されると、未割当無線ノードASGN_NonCPLの割当部16は、n=0を設定するとともに、当該無線ノードへウェイクアップIDリスト(WuIDリスト)を送信した無線ノードの情報を初期化する(ステップS31)。
そして、未割当無線ノードASGN_NonCPLの割当部16は、当該無線ノードへWuIDリストを送信した無線ノードの情報を含むWuIDの割当要求メッセージを上述した方法によって制御部14、無線通信部13およびアンテナ11を介して送信する(ステップS32)。
その後、未割当無線ノードASGN_NonCPLの割当部16は、n=n+1を設定し(ステップS33)、WuIDリストを受信したか否かを判定する(ステップS34)。
ステップS34において、WuIDリストを受信したと判定されたとき、未割当無線ノードASGN_NonCPLの割当部16は、当該無線ノードへWuIDリストを送信した無線ノードの情報を更新する(ステップS35)。
そして、ステップS34において、WuIDリストを受信しなかったと判定されたとき、またはステップS35の後、未割当無線ノードASGN_NonCPLの割当部16は、n<Nrであるか否かを判定する(ステップS36)。Nrは、WuIDの割当要求メッセージの送信回数であり、例えば、5回に設定される。
ステップS36において、n<Nrであると判定されたとき、一連の動作は、ステップS32に戻り、ステップS36において、n<Nrでないと判定されるまで、ステップS32〜ステップS36が繰り返し実行される。
そして、ステップS36において、n<Nrでないと判定されると、未割当無線ノードASGN_NonCPLの割当部16は、受信したWuIDリストに基づいて当該無線ノードにWuIDを割り当てる(ステップS37)。より具体的には、未割当無線ノードASGN_NonCPLの割当部16は、受信したWuIDリストに含まれるウェイクアップID以外のウェイクアップIDにおいて、最も短いフレーム長および最も少ないフレーム数によって規定されるウェイクアップIDを選択し、その選択したウェイクアップIDを当該無線ノードに割り当てる。
その後、未割当無線ノードASGN_NonCPLの割当部16は、他の無線ノード間でWuIDのコンフリクトを検出したか否かを判定する(ステップS38)。即ち、未割当無線ノードASGN_NonCPLの割当部16は、受信したWuIDリストに基づいて、当該無線ノードに隣接する隣接無線ノードの間で同じウェイクアップIDが割り当てられた隣接無線ノードが存在するか否かを判定する。
ステップS38において、他の無線ノード間でWuIDのコンフリクトを検出したと判定されたとき、未割当無線ノードASGN_NonCPLの割当部16は、WuIDの再割当指示を制御部14、無線通信部13およびアンテナ11を介して送信する(ステップS39)。
そして、ステップS38において、他の無線ノード間でWuIDのコンフリクトを検出しなかったと判定されたとき、またはステップS39の後、未割当無線ノードASGN_NonCPLの割当部16は、当該無線ノードに割り当てたウェイクアップIDと、当該無線ノードから1ホップの位置に存在する無線ノードのウェイクアップIDとを含むWuIDの割当完了メッセージを生成し、その生成した割当完了メッセージを制御部14、無線通信部13およびアンテナ11を介して送信する(ステップS40)。これにより、一連の動作が終了する。
なお、ステップS34において、WuIDリストを受信したと判定されることなく、ステップS36の“NO”を経由してステップS37へ移行する場合もある。この場合、未割当無線ノードASGN_NonCPLの割当部16は、他の無線ノードから受信したWuIDリストを保持しないが、割当表TBL1を保持するので、ステップS37において、割当表TBL1を参照して、最も短いフレーム長および最も少ないフレーム数によって規定されるウェイクアップIDを当該無線ノードに割り当てる。このように、受信されたWuIDリストの個数が“0”であることもあるので、WuIDの割当要求メッセージの送信回数nは、ステップS31において、n=0が設定される。
図23は、未割当無線ノードASGN_NonCPLによる割込ルーチンを示すフローチャートである。
図23を参照して、割込ルーチンが開示されると、未割当無線ノードASGN_NonCPLの割当部16は、他の無線ノードからWuIDの割当要求メッセージを上述した方法によって受信する(ステップS41)。
そして、未割当無線ノードASGN_NonCPLの割当部16は、当該無線ノードにおけるWuIDの割当処理を中断し、待機する(ステップS42)。
その後、未割当無線ノードASGN_NonCPLの割当部16は、待機してから一定時間が経過したか否かを判定することにより、タイムアウトを検出したか否かを判定する(ステップS43)。なお、一定時間は、例えば、10秒に設定される。
ステップS43において、タイムアウトを検出しなかったと判定されたとき、未割当無線ノードASGN_NonCPLの割当部16は、WuIDの割当完了メッセージを受信したか否かを更に判定する(ステップS44)。
ステップS44において、割当完了メッセージを受信しなかったと判定されたとき、一連の動作は、ステップS42へ戻り、ステップS44において、割当完了メッセージを受信したと判定されるまで、ステップS42〜S43が繰り返し実行される。
そして、ステップS43において、タイムアウトを検出したと判定されたとき、またはステップS44において、割当完了メッセージを受信したと判定されたとき、一連の動作は、図20に示す“スタート”へ遷移し(ステップS45)、割込ルーチンの動作が終了する。
図24は、ウェイクアップIDの自律的な割当において、ウェイクアップIDの割当要求メッセージを受信した割当済無線ノードの動作を説明するフローチャートである。
図24を参照して、一連の動作が開始されると、割当済無線ノードASGN_CPLの割当部16は、他の無線ノードからWuIDの割当要求メッセージを受信する(ステップS51)。
そして、割当済無線ノードASGN_CPLの割当部16は、割当要求メッセージ内に当該無線ノードのWuIDを検出したか否かを判定する(ステップS52)。
ステップS52において、割当要求メッセージ内に当該無線ノードのWuIDを検出しなかったと判定されたとき、割当済無線ノードASGN_CPLの割当部16は、当該無線ノードのWuIDと、当該無線ノードから1ホップの位置に存在する無線ノードのWuIDとを含むWuIDリストを生成し、その生成したWuIDリストを送信する(ステップS53)。
ステップS52において、割当要求メッセージ内に当該無線ノードのWuIDを検出したと判定されたとき、またはステップS53の後、割当済無線ノードASGN_CPLは、スリープ禁止状態へ移行し(ステップS54)、一定時間が経過したか否かを判定することによりタイムアウトを検出したか否かを判定する(ステップS55)。なお、この場合も、一定時間は、例えば、10秒に設定される。
ステップS55において、タイムアウトを検出しなかったと判定されたとき、割当済無線ノードASGN_CPLの割当部16は、WuIDの割当完了メッセージを受信したか否かを更に判定する(ステップS56)。
ステップS56において、WuIDの割当完了メッセージを受信しなかったと判定されたとき、一連の動作は、ステップS54へ戻り、ステップS56において、WuIDの割当完了メッセージを受信したと判定されるまで、ステップS54〜S56が繰り返し実行される。
そして、ステップS55において、タイムアウトを検出したと判定されたとき、またはステップS56において、WuIDの割当完了メッセージを受信したと判定されたとき、割当済無線ノードASGN_CPLは、スリープ禁止状態を解除する(ステップS57)。これによって、一連の動作が終了する。
割当済無線ノードASGN_CPLがステップS52において割当要求メッセージ内に当該無線ノードのWuIDを検出しなかったと判定したときにWuIDリストを送信する(ステップS53参照)のは、割当済無線ノードASGN_CPLに割り当てられたWuIDと割当済無線ノードASGN_CPLに隣接する隣接無線ノードに割り当てられたWuIDとを送信することにより、未割当無線ノードASGN_NonCPLが割当済無線ノードASGN_CPLおよび割当済無線ノードASGN_CPLの隣接無線ノードと同じWuIDを自己に割り当てないようにするためである。
また、割当要求メッセージ内に当該無線ノードのWuIDを検出したと判定されたとき、またはステップS53の後、割当済無線ノードASGN_CPLがスリープ禁止状態へ移行するのは、割当済無線ノードASGN_CPLがタイムアウトにならない範囲でWuIDの割当完了メッセージを受信できるようにするためである。
図25は、ウェイクアップIDの自律的な割当において、ウェイクアップIDの再割当指示を受信した割当済無線ノードの動作を説明するフローチャートである。
図25を参照して、一連の動作が開始されると、割当済無線ノードASGN_CPLの割当部16は、WuIDの再割当指示を受信する(ステップS61)。そして、割当済無線ノードASGN_CPLの割当部16は、WuIDの割当完了メッセージを受信するまで待機する(ステップS62)。
その後、割当済無線ノードASGN_CPLの割当部16は、WuIDの割当完了メッセージを受信したか否かを判定する(ステップS63)。
ステップS63において、WuIDの割当完了メッセージを受信しなかったと判定されたとき、一連の動作は、ステップS62へ戻り、ステップS63において、WuiDの割当完了メッセージを受信したと判定されるまでステップS62,S63が繰り返し実行される。
そして、ステップS63において、WuIDの割当完了メッセージを受信したと判定されると、割当済無線ノードASGN_CPLの割当部16は、受信した情報に基づいてWuIDの再割当を行う(ステップS64)。
そして、割当済無線ノードASGN_CPLの割当部16は、当該無線ノードに再割当したウェイクアップIDと当該無線ノードに隣接する無線ノードに割り当てられたウェイクアップIDとを含むWuIDの変更通知を生成し、その生成した変更通知を送信する。そして、割当済無線ノードASGN_CPLは、スリープ禁止状態を解除する(ステップS65)。これによって、一連の動作が終了する。
上述した図22から図25に示すフローチャートを繰り返し実行することにより、ウェイクアップIDが未割当無線ノードSGN_NonCPLに割り当てられる。
図22から図25のフローチャートによって示すように、ウェイクアップIDの自律的な割当においては、未割当無線ノードSGN_NonCPLは、ウェイクアップIDの割当要求メッセージを送信して他の無線ノードからWuIDリストを受信するとともに(図22のステップS32,S34の“YES”,S35参照)、WuIDのコンフリクトを検出したとき、WuIDの再割当指示を送信する(図22のステップS38の“YES”,S39参照)。割当済無線ノードASGN_CPLは、WuIDの割当要求メッセージを受信し、割当要求メッセージに自己のWuIDが含まれていないとき、自己のWuIDと自己の隣接無線ノードのWuIDとを含むWuIDリストを送信する(図24のステップS51,S52の“NO”,S53参照)。
その結果、未割当無線ノードSGN_NonCPLは、割当済無線ノードASGN_CPLからWuIDリストを収集でき、その収集したWuIDリストに含まれていないウェイクアップIDのうちで、最も短いフレーム長および最も少ないフレーム数によって規定されるウェイクアップIDを自己に割り当てる。
従って、ウェイクアップIDの自律的な割当が終了すると、無線センサーネットワーク10を構成する無線ノードには、より短いフレーム長およびより少ないフレーム数によって規定されるウェイクアップIDを割り当てることができる。
また、割当済無線ノードASGN_CPLは、WuIDの再割当指示を受信すると、WuIDの割当完了メッセージを受信するまで待機し、割当完了メッセージを受信すると、WuIDの再割当を行い、WuIDの変更通知を送信する(図25のステップS61,S62,S63,S64,S65参照)。
その結果、割当済無線ノードASGN_CPLは、未割当無線ノードSGN_NonCPLにおけるウェイクアップIDの割当が完了した後に、ウェイクアップIDの再割当を行う。
従って、ウェイクアップIDの更なるコンフリクトを抑制できる。
図26は、無線ノードを起動させる動作を示す図である。図26を参照して、無線ノード2は、ウェイクアップID=WuID2を有する。WuID2は、12.8[ms]のフレーム長および1個のフレーム数によって規定される(割当表TBL1参照)。
無線ノード1が無線ノード2を起動させる場合、無線ノード1の制御部14は、12.8[ms]のフレーム長を有する1個の無線フレームFR12を生成し、その生成した無線フレームFR12を無線通信部13へ出力する。無線ノード1の無線通信部13は、無線フレームFR12を変調し、その変調した無線フレームFR12をアンテナ11を介して送信する。
無線ノード2のウェイクアップ信号受信部17は、無線フレームFR12をアンテナ12を介して受信し、その受信した無線フレームFR12の受信信号に基づいて、上述した方法によって12.8[ms]のフレーム長を検出する。そして、無線ノード2のウェイクアップ信号受信部17は、その検出した12.8[ms]のフレーム長をウェイクアップ信号判定部18へ出力する。
無線ノード2のウェイクアップ信号判定部18は、12.8[ms]のフレーム長をウェイクアップ信号受信部17から受け、その受けた12.8[ms]のフレーム長が予め保持するWuID2のフレーム長に一致し、かつ、受信した無線フレームFR12のフレーム数(=1個)がWuID2のフレーム数に一致することを検知する。そうすると、無線ノード2のウェイクアップ信号判定部18は、起動信号を生成して無線通信部13、制御部14、経路制御部15および割当部16へ出力する。これによって、無線ノード2は、スリープ状態から起動状態へ移行する。
なお、ウェイクアップID(WuID)に誤りが生じた場合、各無線ノード1〜7は、バックアップIDとしてのMACアドレスを用いて隣接無線ノードを起動させる。
ウェイクアップID(WuID)に誤りが生じた場合としては、例えば、一部の無線ノードが割当変更通知を受信できなかった場合および起動対象の無線ノードの起動に連続して失敗した場合等が考えられる。
バックアップIDとしてのMACアドレスを用いて隣接無線ノードを起動させる場合、無線ノード1の制御部14は、MACアドレスのハッシュ値を演算し、その演算したハッシュ値のビット列を対応表TBL2を参照して少なくとも1つのフレーム長に変換し、その変換した少なくとも1つのフレーム長を有する少なくとも1つの無線フレームを生成する。そして、無線ノード1の制御部14は、その生成した少なくとも1つの無線フレームを無線通信部13およびアンテナ11を介して送信する。
無線ノード2のウェイクアップ信号受信部17は、アンテナ12を介して、少なくとも1つの無線フレームを受信し、その受信した少なくとも1つの無線フレームの受信信号に基づいて、上述した方法によって、少なくとも1つのフレーム長を検出し、その検出した少なくとも1つのフレーム長をウェイクアップ信号判定部18へ出力する。
無線ノード2のウェイクアップ信号判定部18は、少なくとも1つのフレーム長をウェイクアップ信号受信部17から受け、その受けた少なくとも1つのフレーム長を対応表TBL2を参照してビット値に変換してMACアドレスを取得する。そして、無線ノード2のウェイクアップ信号判定部18は、その取得したMACアドレスが、保持しているMACアドレスに一致する場合、起動信号を生成して無線通信部13、制御部14および経路制御部15(割当部16を備えている場合は割当部16へも)へ出力する。これによって、無線ノード2は、起動する。そして、無線ノード2の制御部14は、無線ノード2が起動すると、無線ノード2に割り当てられたウェイクアップID(WuID)を無線ノード1(=隣接無線ノード)へ送信する。
そして、無線ノード1の制御部14は、無線ノード2からウェイクアップID(WuID)を受信し、その受信したウェイクアップID(WuID)を保持して無線ノード2のウェイクアップIDを更新する。
これによって、無線ノード2の新しいウェイクアップID(WuID)を共有することができる。
ウェイクアップIDが上述した各種の方法によって無線ノード1〜7に割り当てられた後、無線ノード1〜7は、割り当てられたウェイクアップIDを用いて図26に示す動作によって隣接無線ノードを起動させながら制御パケットDIO,DAOを送受信し、図9に示すフローチャートを実行する。これにより、無線センサーネットワーク10における経路が維持される。
その結果、無線ノード1〜7の全てに同じフレーム数によって規定されたウェイクアップIDが割り当てられた場合に比べ、ウェイクアップID(WuID)を送信するときの消費電力およびウェイクアップID(WuID)を受信するときの消費電力を低減して無線センサーネットワーク10における経路を維持できる。
図27は、図1に示す無線センサーネットワーク10におけるセンサー値の転送動作を説明するためのフローチャートである。なお、上述した方法によって、ウェイクアップID(WuID3)が無線ノード1に割り当てられ。ウェイクアップID(WuID5)が無線ノード2に割り当てられているものとする。
図27を参照して、無線ノード3の制御部14は、内蔵したタイマーから起動時刻を受けると、起動状態へ移行するとともに、無線通信部13および経路制御部15を起動状態へ移行させる。これによって、無線ノード3は、起動状態へ移行する。
そして、無線ノード3の制御部14は、センサー値を検出するようにセンサー(図示せず)を制御する。
その後、無線ノード3の制御部14は、センサー(図示せず)からセンサー値を受けると、その受けたセンサー値を無線ノード1(=シンク)へ送信するために無線ノード3の親ノードを経路制御部15に問い合わせる。
そして、無線ノード3の制御部14は、無線ノード3の親ノードである無線ノード2のアドレスMACadd2を経路制御部15から受ける。
そうすると、無線ノード3の制御部14は、MACアドレスMACadd2に対応する無線ノード2のウェイクアップID(WuID5)を検出し、18.8[ms]のフレーム長を有する1個の無線フレームを生成する。そして、無線ノード3の制御部14は、その生成した無線フレームからなるウェイクアップ信号WuSを無線通信部13へ出力する。
無線通信部13は、ウェイクアップ信号WuSを制御部14から受け、その受けたウェイクアップ信号WuSを変調し、その変調したウェイクアップ信号WuSをアンテナ11を介して送信する(ステップS71)。
そして、無線ノード2は、図26において説明した動作と同じ動作によって、無線ノード3からのウェイクアップ信号WuSに応じてスリープ状態から起動状態へ移行し(ステップS72)、無線ノード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を介して送信する(ステップS73)。その後、無線ノード3は、起動状態からスリープ状態へ移行する。
無線ノード2は、無線ノード3からパケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]を受信する(ステップS74)。そして、無線ノード2は、パケットPKT1の先頭のアドレスが無線ノード1のアドレスMACadd1であることを検知し、パケットPKT1を無線ノード1へ転送すべきことを検知する。
そして、無線ノード2は、ステップS71における無線ノード3の動作と同じ動作によって、14.8[ms]のフレーム長を有する1個の無線フレームからなるウェイクアップ信号WuSを送信する(ステップS75)。無線ノード1は、無線ノード2からのウェイクアップ信号WuSに応じて、ステップS72における無線ノード2の動作と同じ動作によって、スリープ状態から起動状態へ移行し(ステップS76)、無線ノード1のアドレスMACadd1を含む起動通知をブロードキャストする。
無線ノード2は、起動通知を受信すると、パケットPKT1=[MACadd1/MACadd2/MACadd3/センサー値]のアドレスMACadd2をアドレスMACadd1に変えたパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を生成し、その生成したパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を送信する(ステップS77)。そして、無線ノード2は、起動状態からスリープ状態へ移行する。
無線ノード1は、無線ノード2からパケットPKT2=[MACadd1/MACadd1/MACadd3/センサー値]を受信する(ステップS78)。そして、無線ノード1の制御部14は、その受信したパケットPKT2から送信元のアドレスMACadd3およびセンサー値を取り出し、その取り出したアドレスMACadd3およびセンサー値を相互に対応付けて保持する。
その後、無線ノード2は、タイマー割込みによってスリープ状態から起動状態へ移行し、センサー値をセンサー(図示せず)から受ける。そうすると、無線ノード2は、ステップS71における無線ノード3の動作と同じ動作によって、14.8[ms]のフレーム長を有する1個の無線フレームからなるウェイクアップ信号WuSを送信する(ステップS79)。
無線ノード1は、無線ノード2からのウェイクアップ信号WuSに応じてスリープ状態から起動状態へ移行し(ステップS80)、無線ノード1のアドレスMACadd1を含む起動通知をブロードキャストする。
無線ノード2は、起動通知を受信すると、ステップS73における無線ノード3の動作と同じ動作によって、センサー値を含むパケットPKT3=[MACadd1/MACadd1/MACadd2/センサー値]を送信する(ステップS81)。
無線ノード1は、パケットPKT3=[MACadd1/MACadd1/MACadd2/センサー値]を受信する(ステップS82)。そして、無線ノード1の制御部14は、パケットPKT3から送信元のアドレスMACadd2とセンサー値とを取り出し、その取り出した送信元のアドレスMACadd2およびセンサー値を相互に対応付けて保持する。
このように、図27に示すフローチャートに従って、無線ノード2〜7で検出されたセンサー値が無線ノード1(=シンク)へ送信され、無線ノード1(=シンク)に保持される。
図27に示すフローチャートにおいて、無線ノード3は、センサー値を送信する場合、ウェイクアップ信号をユニキャストして無線ノード2を起動状態へ移行させ、その後、センサー値を送信する(ステップS71〜S73参照)。そして、無線ノード3は、センサー値の送信を完了すると、スリープ状態へ移行する。
また、無線ノード2は、ウェイクアップ信号に応じて起動状態へ移行すると、センサー値を受信し、センサー値を転送する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、センサー値を送信する(ステップS75,S76,S77参照)。そして、無線ノード2は、センサー値の転送を完了すると、スリープ状態へ移行する。
更に、無線ノード2は、自己が検出したセンサー値を送信する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、センサー値を送信する(ステップS79〜S81参照)。そして、無線ノード2は、センサー値の送信を完了すると、スリープ状態へ移行する。
このように、無線ノード1〜3の各々は、センサー値の無線ノード1への送信および転送動作において、起動状態へ移行すると、必要な動作を行った後、スリープ状態へ移行する。そして、起動状態においては、無線ノード2は、無線ノード3から受信したセンサー値を転送する場合、センサー値の転送を完了した後にスリープ状態へ移行する。その結果、無線ノード3から送信されたセンサー値は、迅速に無線ノード1へ届けられる。つまり、各無線ノード1〜3は、必要な場合のみ起動状態へ移行して必要な動作を行った後、スリープ状態へ移行する。
また、無線ノード1〜3の各々は、送信先をスリープ状態から起動状態へ移行させる場合、上述した方法によって割り当てられたウェイクアップIDを用いる。
従って、センサー値の無線ノード1への送信および転送動作において、ウェイクアップIDの送信時の消費電力および受信時の消費電力を低減できる。
この発明の実施の形態においては、上述した各無線ノード1〜7の動作は、プログラムによって実行されてもよい。
この場合、各無線ノード1〜7は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Randum Access Memory)を備える。
そして、ROMは、図9に示すステップS1,S3,S6,S8,S18,S20からなるプログラムPROG1、図9に示すステップS2,S4,S5,S7,S9,S11,S14,S16,S17,S19からなるプログラムPROG2、図9に示すステップS10,S12,S13,S15からなるプログラムPROG3、図19に示すステップS21〜S23および図20に示すステップS231〜S245からなるプログラムPROG4、図22に示すステップS31〜S40からなるプログラムPROG5、図22に示すステップS31〜S40および図23に示すステップS41〜S45からなるプログラムPROG6、図24に示すステップS51〜S57からなるプログラムPROG7、図25に示すステップS61〜S65からなるプログラムPROG8、図26に示すステップS71,S73からなるプログラムPROG9、図27に示すステップS72,S74,S75,S77,S79,S81からなるプログラムPROG10、図27に示すステップS76,S78,S80,S82からなるプログラムPROG11、割当表TBL1および対応表TBL2,3を記憶する。
CPUは、ROMに記憶されたプログラムPROG1〜PROG11のいずれかを読み出して実行する。
CPUは、プログラムPROG4を実行してウェイクアップIDの割り当てを行う場合、割当表TBL1をROMから読み出して参照する。
また、CPUは、プログラムPROG5またはプログラムPROG6を実行してウェイクアップIDを自律的に割り当てる場合、対応表TBL3をROMから読み出して参照する。
更に、CPUは、プログラムPROG1〜PROG3,PROG9〜PROG11のいずれかを実行する場合において、バックアップIDとしてのMACアドレスを用いて無線ノードを起動させるとき、対応表TBL2をROMから読み出して参照する。
更に、CPUは、RAMを用いてMACアドレスのハッシュ値を演算する。
このように、プログラムPROG1〜PROG11のいずれかは、各無線ノード1〜7の動作をコンピュータ(CPU)に実行させるためのプログラムである。
そして、各無線ノード1〜7の動作をプログラムによって実行した場合も、上述した各種の効果を享受できる。
なお、上記においては、無線センサーネットワーク10を例にして本発明を説明したが、この発明の実施の形態においては、これに限らず、本発明は、どのような無線ネットワークに適用されてもよい。
また、上記においては、無線センサーネットワーク10を構成する無線ノード1〜7をスリープ状態から起動状態へ移行させるためのウェイクアップID(WuID)を無線ノード1〜7に割り当てる例を説明したが、この発明の実施の形態においては、これに限らず、無線センサーネットワーク10を構成する無線ノード1〜7を起動状態からスリープ状態へ移行させるための識別情報(=ID)を無線ノード1〜7に割り当ててもよい。そして、各無線ノード1〜7をスリープ状態から起動状態へ移行させること、および各無線ノード1〜7を起動状態からスリープ状態へ移行させることは、各無線ノード1〜7を制御することに相当する。
従って、この発明の実施の形態においては、一般的には、フレーム長およびフレーム数によって規定され、かつ、無線ノード1〜7を制御するための識別情報を上述した方法によって各無線ノード1〜7に割り当てるものであればよい。
その結果、ウェイクアップID(=WuID)は、無線ノードを制御するための「識別情報」を構成し、上述した基準ウェイクアップID(=WuID1)は、「基準識別情報」を構成する。
また、上述した「起動回数」は、「制御回数」または「制御される回数」に相当する。
更に、ウェイクアップIDによって起動された無線ノードが送信する起動通知は、各無線ノードが制御可能状態であることを示す通知に相当する。
更に、ウェイクアップIDの割当要求は、無線ノードを制御するための識別情報の割当要求に相当する。
更に、ウェイクアップIDリストは、識別情報リストに相当する。
更に、無線ノード1〜7を起動状態からスリープ状態へ移行させるための識別情報(=ID)を無線ノード1〜7に割り当てた場合、各無線ノード1〜7のウェイクアップ信号受信部17およびウェイクアップ信号判定部18は、無線ノード1〜7の起動状態においても動作する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。