本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線センサーネットワークの概略図である。図1を参照して、この発明の実施の形態による無線センサーネットワーク10は、無線ノード1〜6と、サーバ7と、表示端末8とを備える。
無線ノード1〜6およびサーバ7は、無線通信空間に配置される。サーバ7は、パーソナルコンピュータ71と、無線ノード72とを含む。
無線ノード1〜6,72は、例えば、IEEE802.15.4gに対応した920MHz帯で無線通信を行う。
無線ノード1〜6,72は、CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)方式に従って無線通信を行う。無線ノード1〜6の各々は、センサーおよびアクチュエータを有する。
無線ノード1〜6,72は、後述する方法によって、RPL:IPv6 Routing Protocol for Low−Power and Lossy Networks(RFC6550)を用いて各無線ノード1〜6からサーバ7(無線ノード72)までの経路を構築する。また、無線ノード1〜6,72は、後述する方法によって、RPLを用いて各無線ノード1〜6からサーバ7(無線ノード72)までの経路を維持する。
無線ノード1〜6の各々は、センサーによってセンサー値を検出する。そして、無線ノード1〜6の各々は、無線通信のチャネル、無線通信の時間、無線ノードの電力および経路情報の少なくとも1つからなる無線通信資源を指定してサーバ7までの経路上の無線ノードを起動させながらセンサー値をサーバ7(無線ノード72)へ送信する。また、無線ノード1〜6の各々は、アクチュエータを制御するための制御指示をサーバ7から受信し、その受信した制御指示に従ってアクチュエータを動作させる。
この場合、無線ノード1〜6の各々は、後述する方法によって、他の無線ノードから受信したセンサー値を転送し、サーバ7または他の無線ノードから受信した制御指示を転送する。
サーバ7の無線ノード72は、無線ノード1〜6からセンサー値を受信し、その受信したセンサー値をパーソナルコンピュータ71へ出力する。
サーバ7の無線ノード72は、パーソナルコンピュータ71からアクチュエータを制御するための制御指示を受け、その受けた制御指示を無線ノード1〜6へ送信する。
サーバ7のパーソナルコンピュータ71は、無線ノード72からセンサー値を受け、その受けたセンサー値を記憶する。そして、サーバ7のパーソナルコンピュータ71は、その記憶したセンサー値をLAN(Local Area Network)またはWLAN(Wireless Local Area Network)を介して表示端末8へ送信して表示する。
サーバ7のパーソナルコンピュータ71は、アクチュエータを制御するための制御指示を表示端末8から受信し、その受信した制御指示を無線ノード72へ出力する。
表示端末8は、LANまたはWLANを介してセンサー値を受け、その受けたセンサー値を表示する。また、表示端末8は、アクチュエータ18の制御指示を外部から受け、その受けた制御指示をLANまたはWLANを介してパーソナルコンピュータ71へ送信する。
図2は、図1に示す無線ノード1の構成を示す概略図である。図2を参照して、無線ノード1は、アンテナ11,12と、ウェイクアップ信号受信機13と、ウェイクアップ判定器14と、無線通信モジュール15と、ホストシステム16と、センサー17と、アクチュエータ18と、電源制御部19と、電源20とを含む。
無線ノード1は、スリープ状態と、起動状態とを有する。スリープ状態とは、ウェイクアップ信号受信機13およびウェイクアップ判定器14が動作しており、ホストシステム16が起動状態へ移行するための割込みを待ち受けるだけの低消費電力状態であり、更に、無線通信モジュール15、センサー17およびアクチュエータ18が動作を停止した状態を言う。また、起動状態とは、ウェイクアップ信号受信機13、ウェイクアップ判定器14、無線通信モジュール15、ホストシステム16、センサー17およびアクチュエータ18が動作している状態を言う。なお、電源制御部19および電源20は、スリープ状態および起動状態とは無関係であり、常時、動作している。
アンテナ11は、ウェイクアップ信号受信機13に接続される。アンテナ12は、無線通信モジュール15に接続される。
ウェイクアップ信号受信機13は、電源制御部19から供給された電力によって駆動される。ウェイクアップ信号受信機13は、アンテナ11を介してウェイクアップ信号を受信し、その受信したウェイクアップ信号を包絡線検波してウェイクアップ信号(=フレーム長)を抽出する。そして、ウェイクアップ信号受信機13は、その抽出したウェイクアップ信号(=フレーム長)をウェイクアップ判定器14へ出力する。
ウェイクアップ判定器14は、電源制御部19から供給された電力によって駆動される。ウェイクアップ判定器14は、無線ノード1のウェイクアップIDを予め保持している。ウェイクアップ判定器14は、ウェイクアップ信号受信機13からウェイクアップ信号(=フレーム長)を受け、その受けたウェイクアップ信号(=フレーム長)をウェイクアップIDに変換する。そして、ウェイクアップ判定器14は、その変換したウェイクアップIDが、予め保持しているウェイクアップIDに一致するか否かを判定する。ウェイクアップ判定器14は、変換したウェイクアップIDが、予め保持しているウェイクアップIDに一致すると判定したとき、起動信号をホストシステム16へ出力する。
なお、ウェイクアップ判定器14は、変換したウェイクアップIDが、予め保持しているウェイクアップIDに一致しないと判定したとき、その変換したウェイクアップIDを破棄する。
無線通信モジュール15は、電源制御部19から供給された電力によって駆動される。無線通信モジュール15は、アンテナ12を介して制御パケットまたはセンサー値を含むパケットを受信し、その受信した制御パケットまたはセンサー値を含むパケットを復調してホストシステム16へ出力する。また、無線通信モジュール15は、起動通知をホストシステム16から受け、その受けた起動通知をアンテナ12を介して送信する。更に、無線通信モジュール15は、ウェイクアップIDをホストシステム16から受け、その受けたウェイクアップIDを含むウェイクアップ信号を生成する。また、無線通信モジュール15は、ウェイクアップIDと、起動させる無線ノードが起動後に使用する無線通信資源を示す資源情報とをホストシステム16から受け、その受けたウェイクアップIDおよび資源情報を含むウェイクアップ信号を生成する。そして、無線通信モジュール15は、その生成したウェイクアップ信号をアンテナ12を介して送信する。更に、無線通信モジュール15は、制御パケットまたはパケットをホストシステムから受け、その受けた制御パケットまたはパケットを変調し、その変調した制御パケットまたはパケットをアンテナ12を介して送信する。
ホストシステム16は、電源制御部19から供給された電力によって駆動される。この場合、ホストシステム16は、電力W1,W2を受ける。電力W1は、電力W2よりも大きい。電力W1は、ホストシステム16を起動状態で動作させるための電力である。電力W2は、ホストシステム16を低消費電力状態で動作せるための電力である。
ホストシステム16は、ESSIDまたはPANIDまたは送信先のMACアドレスを予め保持している。
ホストシステム16は、ウェイクアップ判定器14から起動信号を受けたとき、または割込み制御によって起動状態へ移行する時刻になったとき、無線ノード1を起動状態へ移行させるための指示信号COM1を生成して電源制御部19へ出力する。その後、ホストシステム16は、電源制御部19から電力W1を受けると、起動状態へ移行する。
ホストシステム16は、ウェイクアップ判定器14からの起動信号に応じて起動状態へ移行すると、起動通知を生成して無線通信モジュール15へ出力する。そして、ホストシステム16は、ESSIDまたはPANIDまたはMACアドレスのハッシュ値を演算して、他の無線ノードまたはサーバ7をスリープ状態から起動状態へ移行させるためのウェイクアップIDを生成する。ホストシステム16は、その生成したウェイクアップIDを無線通信モジュール15へ出力する。その後、ホストシステム16は、制御パケットを生成して無線通信モジュール15へ出力し、または無線通信モジュール15から制御パケットを受ける。そして、ホストシステム16は、その受けた制御パケットを処理し、その受けた制御パケットに対する応答である制御パケットを生成して無線通信モジュール15へ出力する。そうすると、ホストシステム16は、無線ノード1をスリープ状態へ移行させるための指示信号COM2を電源制御部19へ出力する。その後、ホストシステム16は、電源制御部19から電力W2を受けるので、スリープ状態へ移行する。
また、ホストシステム16は、ウェイクアップ判定器14からの起動信号に応じて起動状態へ移行すると、起動通知を生成して無線通信モジュール15へ出力する。そして、ホストシステム16は、センサー17からセンサー値を受けると、ESSIDまたはPANIDまたはMACアドレスのハッシュ値を演算して、他の無線ノードまたはサーバ7をスリープ状態から起動状態へ移行させるためのウェイクアップIDを生成する。また、ホストシステム16は、起動させる他の無線ノードまたはサーバ7が起動状態へ移行後に使用する無線通信資源を示す資源情報を決定する。その後、ホストシステム16は、ウェイクアップIDと資源情報とを無線通信モジュール15へ出力する。そして、ホストシステム16は、他の無線ノードまたはサーバ7(=無線ノード72)から起動通知を受信すると、センサー値を含むパケットを生成して無線通信モジュール15へ出力する。そうすると、ホストシステム16は、指示信号COM2を生成して電源制御部19へ出力する。その後、ホストシステム16は、電源制御部19から電力W2を受けるので、スリープ状態へ移行する。
更に、ホストシステム16は、ウェイクアップ判定器14からの起動信号に応じて起動状態へ移行し、起動通知を無線通信モジュール15へ出力した後、無線通信モジュール15からパケットを受ける。そして、ホストシステム16は、その受けたパケットを処理し、その処理したパケットを無線通信モジュール15へ出力する。そうすると、ホストシステム16は、指示信号COM2を電源制御部19へ出力する。その後、ホストシステム16は、電源制御部19から電力W2を受けるので、スリープ状態へ移行する。
更に、ホストシステム16は、ウェイクアップ判定器14からの起動信号に応じて起動状態へ移行し、起動通知を無線通信モジュール15へ出力した後、無線通信モジュール15から制御指示を受ける。そして、ホストシステム16は、その受けた制御指示に従ってアクチュエータ18を制御する。その後、ホストシステム16は、アクチュエータ制御応答を生成して無線通信モジュール15へ出力する。そうすると、ホストシステム16は、指示信号COM2を電源制御部19へ出力する。その後、ホストシステム16は、電源制御部19から電力W2を受けるので、スリープ状態へ移行する。
センサー17は、電源制御部19から供給された電力によって駆動される。そして、センサー17は、センサー値を検出し、その検出したセンサー値をホストシステム16へ出力する。なお、センサー値は、例えば、温度、湿度、照度、電力、人感、CO2濃度および放射線量等である。
アクチュエータ18は、電源制御部19から供給される電力によって駆動される。そして、アクチュエータ18は、ホストシステム16からの制御に従って動作を行う。
電源制御部19は、電源20から電力を受ける。電源制御部19は、ウェイクアップ信号受信機13およびウェイクアップ判定器14を駆動させるための電力(=例えば、500μW)を、常時、ウェイクアップ信号受信機13およびウェイクアップ判定器14へ供給する。また、電源制御部19は、ホストシステム16から指示信号COM1を受けると、ホストシステム16へ電力W1を供給し、無線通信モジュール15、センサー17およびアクチュエータ18を駆動するための電力を無線通信モジュール15、センサー17およびアクチュエータ18へ供給する。更に、電源制御部19は、ホストシステム16から指示信号COM2を受けると、ホストシステム16へ電力W2を供給し、無線通信モジュール15、センサー17およびアクチュエータ18への電力の供給を停止する。
電源20は、電力を電源制御部19へ供給する。
なお、図1に示す無線ノード2〜6,72の各々も、図2に示す無線ノード1と同じ構成からなる。
図3は、図2に示すホストシステム16の機能ブロック図である。図3を参照して、ホストシステム16は、ルーティングテーブル161と、無線通信部162と、経路制御部163と、状態制御部164と、電源制御部165と、アクチュエータ制御部166と、センサー制御部167と、割込制御部168と、ウェイクアップ制御部169と、タイマー制御部170と、空きリソース検出部171と、空きリソース割当部172とを含む。
ルーティングテーブル161は、経路情報を格納する。
無線通信部162は、無線通信モジュール15を制御し、制御パケットおよびパケット等を送受信する。そして、制御パケットおよびパケット等を送信する場合、無線通信部162は、送信先のアドレスを出力するように経路制御部163に依頼する。
また、無線通信部162は、センサー制御部167からセンサー値を受けると、その受けたセンサー値を無線通信モジュール15へ出力し、センサー値を送信するように無線通信モジュール15を制御する。
更に、無線通信部162は、無線通信モジュール15から制御指示を受けると、その受けた制御指示をアクチュエータ制御部166へ出力する。
更に、無線通信部162は、無線通信モジュール15が行ったバックグランドスキャンの結果を保持しており、空きリソース検出部171から依頼を受けると、バックグランドスキャンの結果を空きリソース検出部171へ出力する。
更に、無線通信部162は、無線通信モジュール15が既に行った無線通信の状況を保持しており、空きリソース検出部171から依頼を受けると、既に行った無線通信の状況を空きリソース検出部171へ出力する。
経路制御部163は、RPLに従って、各無線ノード1〜6からサーバ7までの経路を確立し、その確立した経路の経路情報を含むルーティングテーブル161を作成する。そして、経路制御部163は、その作成したルーティングテーブル161を管理する。
状態制御部164は、割込制御部168からの依頼に応じて、無線ノード1の状態をスリープ状態から起動状態へ移行させるように電源制御部165に依頼する。また、状態制御部164は、経路制御部163からの依頼に応じて、無線ノード1の状態を起動状態からスリープ状態へ移行させるように電源制御部165に依頼する。
電源制御部165は、状態制御部164からの依頼に応じて、指示信号COM1または指示信号COM2を電源制御部19へ出力する。
アクチュエータ制御部166は、無線通信部162から制御指示を受け、その受けた制御指示に従ってアクチュエータ18を制御する。
センサー制御部167は、無線通信部162からセンサー値の読込指示またはセンサー値の通知周期に従ってセンサー値をセンサー17から読み込む。そして、センサー制御部167は、その読み込んだセンサー値を無線通信部162へ出力する。
割込制御部168は、ホストシステム16を起動状態へ移行させるための割込みの要因の設定を行う。ここで、割込みの要因は、次の起動時刻を設定するタイマーによる割込み、またはウェイクアップ信号を受信した場合の割込みである。タイマーによる割込みは、例えば、RTC(Real Time Clock)タイマーによる割込みからなる。
また、割込制御部168は、外部からの割込みを受信して、ホストシステム16を起動状態へ移行させるように状態制御部164に依頼する。
タイマー制御部170は、ホストシステム16をスリープ状態へ移行させる前に、次回の起動時刻を設定するために、タイマー割込みの制御を行う。
空きリソース検出部171は、既に実行された無線通信の状況、または無線通信モジュール15が行ったバックグランドスキャンの結果(=無線通信空間の電波)を無線通信部162から受け、その受けた無線通信の状況またはバックグランドスキャンの結果(=無線通信空間の電波)に基づいて、空いている無線通信資源を検出する。そして、空きリソース検出部171は、空きリソース割当部172からの問合せに応じて、その検出した空いている無線通信資源を空きリソース割当部172へ出力する。
空きリソース割当部172は、空いている無線通信資源を空きリソース検出部171から受け、その受けた空いている無線通信資源を示す資源情報を含むウェイクアップ信号を送信するようにウェイクアップ制御部169に依頼する。
図4は、図1に示すサーバ7の構成を示す概略図である。図4を参照して、サーバ7は、パーソナルコンピュータ71と、無線ノード72と、RS−232C73,74と含む。
パーソナルコンピュータ71は、RS−232C73,74によって無線ノード72に接続される。パーソナルコンピュータ71は、RS−232C73を介して制御指示等を無線ノード72へ出力し、RS−232C74を介してセンサー値等を無線ノード72から受ける。
図5は、図4に示すパーソナルコンピュータ71の構成を示す概略図である。図5を参照して、パーソナルコンピュータ71は、Webサーバ711と、データベース712とを含む。
Webサーバ711は、RS−232C74を介して無線ノード72から送信元のアドレスとセンサー値とを受け、その受けた送信元のアドレスおよびセンサー値を相互に対応付けてデータベース712に格納する。
Webサーバ711は、LANまたはWLANを介して表示端末8からセンサー値の閲覧要求を受け、またはLANまたはWLANを介して表示端末8の表示画面に描画する。
データベース712は、センサー値を送信元のアドレスに対応付けて記憶する。
図6は、制御パケットDIOの構成図である。図6を参照して、制御パケットDIOは、rootのアドレスと、送信先と、送信元と、ID格納部と、Rankと、DTSNとを含む。
rootのアドレスは、サーバ7のアドレス、即ち、無線ノード72のアドレスからなる。
送信先は、制御パケットDIOの送信先の無線ノードのアドレスからなる。送信元は、制御パケットDIOを生成した無線ノードのアドレスからなる。ID格納部は、ESSIDまたはPANIDからなる。Rankは、256×n(nは、正の整数)からなり、サーバ7(=無線ノード72)からのホップ数が1ホップ増加するごとに“256”づつ増加する。そして、Rankは、数値が小さい程、rootに近いことを表わす。DTSNは、正の整数からなり、1つの無線ノード(=サーバ7の無線ノード72および無線ノード1〜6のいずれか)が新たな制御パケットDIOを生成するごとに“1”づつ増加する。DTSNは、各無線ノード1〜6が同じ無線ノードから制御パケットDIOを受信した場合に、制御パケットDAOを送信するか否かの判定基準になる。より具体的には、各無線ノード1〜6は、同じ無線ノードから制御パケットDIOを受信した場合に、その受信した制御パケットDIOのDTSNが、以前に受信した制御パケットDIOのDTSNよりも増加していると判定したとき、制御パケットDAOを送信し、受信した制御パケットDIOのDTSNが、以前に受信した制御パケットDIOのDTSNよりも増加していないと判定したとき、制御パケットDAOを送信しない。そして、DTSNが増加していることは、親ノードが変更されたことに相当する。
図7は、制御パケットDAOの構成図である。図7を参照して、制御パケットDAOは、親ノードのアドレスと、送信元と、DAOSequenceとを含む。
親ノードのアドレスは、制御パケットDAOを生成する無線ノードよりも1ホップだけroot側に存在し、制御パケットDAOを生成する無線ノードが無線通信可能な無線ノードのアドレスからなる。
送信元は、制御パケットDAOを生成する無線ノードのアドレスからなる。DAOSequenceは、制御パケットDAOのシーケンス番号である。そして、DAOSequenceの初期値は、“240”である。DAOSequenceは、“0”〜“255”の範囲の整数からなる。DAOSequenceは、新たな制御パケットDAOが送信される毎にインクリメントされる。DAOSequenceが“128”よりも小さい場合、最大値は、“127”であり、DAOSequenceが“128”以上である場合、最大値は、“255”である。
制御パケット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において各無線ノード1〜6から見た場合に親ノードになる得る無線ノード群を示すウェイクアップIDである。
ChildマルチキャストIDは、無線センサーネットワーク10において各無線ノード1〜6から見た場合に子ノードとして収容した無線ノード群を示すウェイクアップIDである。
ブロードキャストIDは、電波範囲内の全ての無線ノードを起動状態へ移行させることができるウェイクアップIDであり、予め無線センサーネットワーク10において決められている。そして、ブロードキャストIDは、無線ノード1〜6,72に予め設定されている。
この発明の実施の形態においては、上述したユニキャストID、マルチキャストIDおよびブロードキャストIDをウェイクアップIDとして用いる。
なお、ウェイクアップ判定器14およびウェイクアップ制御部169は、ブロードキャストIDを予め保持している。
図8は、フレーム長とデータとの対応表を示す図である。図8を参照して、対応表TBL1は、フレーム長とデータとを含む。フレーム長およびデータは、相互に対応付けられる。
12.80msecのフレーム長は、“0x0”のデータに対応付けられる。12.88msecのフレーム長は、“0x1”のデータに対応付けられる。12.96msecのフレーム長は、“0x2”のデータに対応付けられる。13.04msecのフレーム長は、“0x3”のデータに対応付けられる。
13.12msecのフレーム長は、“0x4”のデータに対応付けられる。13.20msecのフレーム長は、“0x5”のデータに対応付けられる。13.28msecのフレーム長は、“0x6”のデータに対応付けられる。13.36msecのフレーム長は、“0x7”のデータに対応付けられる。
13.44msecのフレーム長は、“0x8”のデータに対応付けられる。13.52msecのフレーム長は、“0x9”のデータに対応付けられる。13.60msecのフレーム長は、“0xA”のデータに対応付けられる。13.68msecのフレーム長は、“0xB”のデータに対応付けられる。
13.76msecのフレーム長は、“0xC”のデータに対応付けられる。13.84msecのフレーム長は、“0xD”のデータに対応付けられる。13.92msecのフレーム長は、“0xE”のデータに対応付けられる。14.00msecのフレーム長は、“0xF”のデータに対応付けられる。
そして、0x0〜0xAの各々は、4ビットからなる。
この発明の実施の形態においては、ウェイクアップIDは、フレーム長によって表される。より具体的には、ウェイクアップIDは、WuID1〜WuIDp(p=4,5,6)によって表される。従って、ウェイクアップ信号は、WuID1〜WuIDpのビット値にそれぞれ対応するp個のフレーム長を有するp個のフレームからなる(対応表TBL1参照)。
そして、ユニキャストIDにおいては、WuID1は、0x1に固定され、WuID2〜WuID4は、起動対象となる無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
また、ブロードキャストIDにおいては、WuID1は、0xFに固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
更に、マルチキャストIDのLocalマルチキャストIDにおいては、WuID1は、0x2に固定され、WuID2〜WuID4は、PANIDまたはRPL instance ID等の同一システムを示す識別子からなる。PANIDまたはRPL instance IDが12ビットでない場合、PANIDまたはRPL instance IDのハッシュ値を演算して12ビットにする。
更に、マルチキャストIDのParentマルチキャストIDにおいては、WuID1は、0x3に固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
更に、マルチキャストIDのChildマルチキャストIDにおいては、WuID1は、0x4に固定され、WuID2〜WuID4は、起動元の無線ノードのMACアドレスから求められた12ビットのハッシュ値からなる。
図9は、図3に示すルーティングテーブル161の構成図である。図9を参照して、ルーティングテーブル161は、送信先と、次の無線ノードと、ホップ数と、Rankとを含む。送信先、次の無線ノード、ホップ数およびRankは、相互に対応付けられる。
送信先は、ウェイクアップ信号、制御パケットDIO,DAOおよびパケット等の受信先の無線ノードのMACアドレスMACaddからなる。次の無線ノードは、送信先までの経路上においてルーティングテーブル161を保持する無線ノードに送信先側で隣接する無線ノードのMACアドレスMACadd_NBからなる。
ホップ数は、ルーティングテーブル161を保持する無線ノードから送信先の無線ノードまでのホップ数hからなる。Rankは、送信先(無線ノード)のサーバ7に対する近さの程度を示し、r=256×n(=256,512,768,・・・)からなる。
図10は、図1に示す無線センサーネットワーク10における無線ノード1,2、サーバ7および表示端末8の配置状態を示す図である。
図10を参照して、無線ノード72,1,2は、それぞれ、電波範囲REG1〜REG3を有する。無線ノード72は、2つの電波範囲REG1,REG2が重なった領域に存在する。無線ノード1は、3つの電波範囲REG1〜REG3が重なった領域に存在する。無線ノード2は、2つの電波範囲REG2,REG3が重なった領域に存在する。
このように、自己の電波範囲がサーバ7まで届かない無線ノードが存在する状態において、各無線ノード1〜6からサーバ7までの経路の構築が行われる。
経路の構築方法について説明する。図11は、経路を構築するときの動作を説明するためのフローチャートである。図11を参照して、経路を構築する動作が開始されると、サーバ7の無線ノード72において、割込制御部168は、タイマー制御部170から起動時刻を受け、無線ノード72を起動状態へ移行するように状態制御部164に依頼する。そして、状態制御部164は、割込み制御部168からの依頼に応じて、無線ノード72を起動状態へ移行するように電源制御部165に依頼する。電源制御部165は、状態制御部164からの依頼に応じて指示信号COM1を電源制御部19へ出力する。そして、無線ノード72は、起動状態へ移行する。そうすると、割込制御部168は、他の無線ノードを起動させるようにウェイクアップ制御部169に依頼する。ウェイクアップ制御部169は、割込制御部168からの依頼に応じて、無線通信モジュール15が送信するウェイクアップ信号のウェイクアップIDとしてブロードキャストIDを選択する。そして、ウェイクアップ制御部169は、対応表TBL1を予め保持しており、対応表TBL1を参照して、ブロードキャストIDのWuID1〜WuID4を4個のフレーム長FL1〜FL4に変換する。そうすると、ウェイクアップ制御部169は、4個のフレーム長FL1〜FL4を無線通信モジュール15へ出力し、4個のフレーム長FL1〜FL4を有する4個のフレームを生成するように無線通信モジュール15を制御する。
無線通信モジュール15は、4個のフレーム長FL1〜FL4をホストシステム16のウェイクアップ制御部169から受け、その受けた4個のフレーム長FL1〜FL4を有する4個のフレームを生成し、その生成した4個のフレームからなるウェイクアップ信号WuSをアンテナ12を介してブロードキャストする(ステップS1)。
無線ノード1のウェイクアップ信号受信機13は、アンテナ11を介してウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号の受信電波を一定周期で包絡線検波する。そして、無線ノード1のウェイクアップ信号受信機13は、包絡線検波の検波値の個数をカウントし、そのカウントした検波値の個数に一定周期を乗算して4個のフレーム長FL1〜FL4を求める。そうすると、無線ノード1のウェイクアップ信号受信機13は、4個のフレーム長FL1〜FL4をウェイクアップ判定器14へ出力する。
無線ノード1のウェイクアップ判定器14は、予め、対応表TBL1を保持しており、4個のフレーム長FL1〜FL4をウェイクアップ信号受信機13から受けると、対応表TBL1を参照して、4個のフレーム長FL1〜FL4をビット値に変換してブロードキャストIDを取得する。そうすると、無線ノード1のウェイクアップ判定器14は、ブロードキャストIDが、予め保持したウェイクアップID(=ブロードキャストID)に一致すると判定し、起動信号を生成してホストシステム16へ出力する。
無線ノード1のホストシステム16において、割込制御部168は、起動信号をウェイクアップ判定器14から受けると、無線ノード1の状態をスリープ状態から起動状態へ移行させるように状態制御部164に依頼し、状態制御部164は、無線ノード1の状態をスリープ状態から起動状態へ移行させるように電源制御部165に依頼する。そして、電源制御部165は、状態制御部164からの依頼に応じて指示信号COM1を生成して電源制御部19へ出力する。電源制御部19は、指示信号COM1に応じて、電力W1をホストシステム16へ供給し、駆動に必要な電力を無線通信モジュール15、センサー17およびアクチュエータ18へ供給する。これによって、無線ノード1は、スリープ状態から起動状態へ移行する(ステップS2)。
その後、無線ノード1のホストシステム16は、無線ノード1のアドレスMACadd1を含む起動通知を生成し、その生成した起動通知を無線通信モジュール15へ出力する。そして、無線ノード1の無線通信モジュール15は、起動通知をホストシステム16から受け、その受けた起動通知をアンテナ12を介してブロードキャストする。
無線ノード72において、無線通信モジュール15は、アンテナ12を介して起動通知を受信する。そして、無線ノード72において、ホストシステム16の無線通信部162は、無線通信モジュール15から起動通知を受け、その受けた起動通知を経路制御部163へ出力する。
無線ノード72において、ホストシステム16の経路制御部163は、無線通信部162から起動通知を受けると、無線ノード1が起動状態へ移行したことを検知する。そして、経路制御部163は、サーバ7(=無線ノード72)のアドレスMACadd72からなるrootのアドレスと、無線ノード1のMACアドレスMACadd1からなる送信先と、サーバ7(=無線ノード72)のアドレスMACadd72からなる送信元と、ESSIDまたはPANIDからなるID格納部と、256からなるRankと、1からなるDTSNとを含むDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を生成し、その生成したDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を無線通信部162へ出力する。
無線ノード72において、ホストシステム16の無線通信部162は、DIO1=[MACadd72/MACadd1/MACadd7/ESSID/256/1]を経路制御部163から受け、その受けたDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を無線通信モジュール15へ出力し、DIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を送信するように無線通信モジュール15を制御する。そうすると、無線ノード72の無線通信モジュール15は、アンテナ12を介してDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を送信する(ステップS3)。
その後、無線ノード72において、ホストシステム16の状態制御部164は、DIO1の送信完了を経路制御部163から受け、無線ノード72を起動状態からスリープ状態へ移行させるように電源制御部165に依頼する。電源制御部165は、状態制御部164からの依頼に応じて指示信号COM2を電源制御部19へ出力する。無線ノード72の電源制御部19は、指示信号COM2に応じて、電力W2をホストシステム16へ供給し、無線通信モジュール15、センサー17およびアクチュエータ18への電力の供給を停止する。これによって、無線ノード72は、起動状態からスリープ状態へ移行する。
一方、無線ノード1の無線通信モジュール15は、DIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]をアンテナ12を介して受信し(ステップS4)、その受信したDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]をホストシステム16へ出力する。
無線ノード1において、ホストシステム16の無線通信部162は、DIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を無線通信モジュール15から受け、その受けたDIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を経路制御部163へ出力する。
無線ノード1において、ホストシステム16の経路制御部163は、DIO1=[MACadd72/MACadd1/MACadd72/ESSID/256/1]を無線通信部162から受ける。そして、無線ノード1の経路制御部163は、DIO1の先頭のアドレスMACadd72を参照して、rootがサーバ7(=無線ノード72)であることを検知する。また、無線ノード1の経路制御部163は、DIO1の2個目のアドレスMACadd1を参照して、DIO1の送信先が無線ノード1であることを検知する。更に、無線ノード1の経路制御部163は、DIO1の3個目のアドレスMACadd72を参照してDIO1の送信元がサーバ7(=無線ノード72)であることを検知する。更に、無線ノード1の経路制御部163は、“256”からなるRankおよび“1”からなるDTSNをDIO1から取り出して保持する。そして、無線ノード1の経路制御部163は、“256”からなるRankに基づいて、サーバ7から無線ノード1までのホップ数が“1”であることを検知する。“256”のRankは、Rankの最小値であり、無線ノード1は、その最小値である“256”からなるRankをサーバ7(=無線ノード72)から直接受信したからである。また、無線ノード1の経路制御部163は、サーバ7が最小のRankを有するので、サーバ7(=無線ノード72)が無線ノード1の親ノードであることを検知する。
そうすると、経路制御部163は、ルーティングテーブル161の送信先にMACadd72を格納し、次の無線ノードにMACadd72を格納し、ホップ数に“1”を格納し、Rankに“256”を格納する。そして、経路制御部163は、“256”のRankに基づいて、無線ノード1のRankが“512”からなることを検知し、“512”のRankを保持する。
その後、無線ノード1の経路制御部163は、DIOを最初に受信したので、“1”からなるDTSNに基づいて、DTSNが増加したことを検知し、DAOを送信すると判定する。
そうすると、無線ノード1において、ウェイクアップ制御部169は、経路制御部163からの依頼に応じて、無線通信モジュール15が送信するウェイクアップ信号のウェイクアップIDとしてユニキャストIDを生成する。DAOは、サーバ7(=無線ノード72)へ送信されるので、ウェイクアップ制御部169は、サーバ7(=無線ノード72)のMACアドレスMACadd72を経路制御部163から受ける。そして、ウェイクアップ制御部169は、MACアドレスMACadd72に基づいて、上述した方法によってユニキャストIDを生成する。
そして、ウェイクアップ制御部169は、保持している対応表TBL1を参照して、ユニキャストIDのWuID1〜WuID4を4個のフレーム長FL1〜FL4に変換する。そうすると、ウェイクアップ制御部169は、4個のフレーム長FL1〜FL4を無線通信モジュール15へ出力し、4個のフレーム長FL1〜FL4を有する4個のフレームを生成するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、4個のフレーム長FL1〜FL4をホストシステム16のウェイクアップ制御部169から受け、その受けた4個のフレーム長FL1〜FL4を有する4個のフレームを生成し、その生成した4個のフレームからなるウェイクアップ信号WuSをアンテナ12を介してユニキャストする(ステップS5)。
無線ノード72のウェイクアップ信号受信機13は、アンテナ11を介してウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波を一定周期で包絡線検波する。そして、無線ノード72のウェイクアップ信号受信機13は、包絡線検波の検波値の個数をカウントし、そのカウントした検波値の個数に一定周期を乗算して4個のフレーム長FL1〜FL4を求める。そうすると、無線ノード72のウェイクアップ信号受信機13は、4個のフレーム長FL1〜FL4をウェイクアップ判定器14へ出力する。
無線ノード72のウェイクアップ判定器14は、4個のフレーム長FL1〜FL4をウェイクアップ信号受信機13から受けると、対応表TBL1を参照して、4個のフレーム長FL1〜FL4をビット値に変換してユニキャストIDを取得する。そうすると、無線ノード72のウェイクアップ判定器14は、ユニキャストIDが、予め保持したウェイクアップIDに一致すると判定し、起動信号を生成してホストシステム16へ出力する。
無線ノード72のホストシステム16において、割込制御部168は、起動信号をウェイクアップ判定器14から受けると、無線ノード72の状態をスリープ状態から起動状態へ移行させるように状態制御部164に依頼し、状態制御部164は、無線ノード72の状態をスリープ状態から起動状態へ移行させるように電源制御部165に依頼する。そして、電源制御部165は、状態制御部164からの依頼に応じて指示信号COM1を生成して電源制御部19へ出力する。電源制御部19は、指示信号COM1に応じて、電力W1をホストシステム16へ供給し、駆動に必要な電力を無線通信モジュール15、センサー17およびアクチュエータ18へ供給する。これによって、無線ノード72は、スリープ状態から起動状態へ移行する(ステップS6)。
その後、無線ノード72は、無線ノード1と同じ方法によって起動通知を生成してブロードキャストする。
そうすると、無線ノード1の経路制御部163は、無線ノード72から送信された起動通知に応じて、MACアドレスMACadd72からなる親ノードのアドレスと、MACアドレスMACadd1からなる送信元と、“1”からなるDAOSequenceとを含むDAO1=[MACadd72/MACadd1/1]を生成して無線通信部162へ出力する。
無線ノード1の無線通信部162は、DAO1=[MACadd72/MACadd1/1]を経路制御部163から受ける。そして、無線ノード1の無線通信部162は、その受けたDAO1=[MACadd72/MACadd1/1]を無線通信モジュール15へ出力し、DAO1=[MACadd72/MACadd1/1]を送信するように無線通信モジュール15を制御する。
その後、無線ノード1の無線通信モジュール15は、無線通信部162からの制御に従ってDAO1=[MACadd72/MACadd1/1]をアンテナ12を介して送信する(ステップS7)。
その後、無線ノード1は、上述した無線ノード72と同じ動作によって起動状態からスリープ状態へ移行する。
無線ノード72の無線通信モジュール15は、アンテナ12を介してDAO1=[MACadd72/MACadd1/1]を受信し(ステップS8)、その受信したDAO1=[MACadd72/MACadd1/1]をホストシステム16へ出力する。
無線ノード72のホストシステム16において、経路制御部163は、無線通信部162を介して無線通信モジュール15からDAO1=[MACadd72/MACadd1/1]を受ける。そして、無線ノード72の経路制御部163は、DAO1の先頭のアドレスMACadd72および2番目のアドレスMACadd1を参照して、無線ノード1がサーバ7の子ノードであることを検知する。無線ノード72は、無線ノード1からDAO1を直接受信したからである。そうすると、無線ノード72の経路制御部163は、ルーティングテーブル161の送信先および次の無線ノードにアドレスMACadd1を格納し、ホップ数に“1”を格納し、Rankに“512”を格納する。この場合、無線ノード72の経路制御部163は、DAO1を無線ノード1から直接受信したので、サーバ7から無線ノード1までのホップ数が“1”であることが解る。また、無線ノード72の経路制御部163は、サーバ7から無線ノード1までのホップ数が“1”であるので、無線ノード1のRankが“512”であることが解る。
その後、無線ノード1は、ステップS1におけるサーバ7(=無線ノード72)の動作と同じ動作を実行し、ウェイクアップ信号WuSをブロードキャストする(ステップS9)。
そして、無線ノード2は、ステップS2における無線ノード1の動作と同じ動作によってスリープ状態から起動状態へ移行し(ステップS10)、アドレスMACadd2を含む起動通知をブロードキャストする。
その後、無線ノード1は、起動通知を受信すると、ステップS3におけるサーバ7(=無線ノード72)の動作と同じ動作によってDIOを送信し(ステップS11)、起動状態からスリープ状態へ移行する。
無線ノード2は、DIOを受信し(ステップS12)、その受信したDIOに基づいて、上述した無線ノード1と同じ方法によってルーティングテーブル161に新たな経路の経路情報を格納する。また、無線ノード2は、受信したDIOに含まれるRank(=512)に基づいて、自己のRankが“768”であることを検知し、“768”からなるRankを保持する。更に、無線ノード2は、受信したDIOに含まれるDTSNの数値が増加していることを検知し、DAOを送信すると判定する。
そうすると、無線ノード2は、ステップS5における無線ノード1の動作と同じ動作によってユニキャストIDを表すフレーム長を有するフレームからなるウェイクアップ信号WuSをユニキャストする(ステップS13)。
無線ノード1は、ステップS2における動作と同じ動作によって、スリープ状態から起動状態へ移行し(ステップS14)、起動通知をブロードキャストする。
無線ノード2は、起動通知を受信すると、ステップS7における動作と同じ動作によってDAOを送信する(ステップS15)。その後、無線ノード2は、起動状態からスリープ状態へ移行する。
無線ノード1は、DAOを受信し(ステップS16)、DAOに含まれるDAOSequence基づいて、上述した方法によって、受信したDAOが最新であると判定し、DAOを転送すべきと判定する。
そして、無線ノード1は、ステップS5の動作と同じ動作によってユニキャストIDを表すフレーム長を有するフレームからなるウェイクアップ信号WuSを送信する(ステップS17)。
そして、サーバ7の無線ノード72は、ステップS6における動作と同じ動作によってスリープ状態から起動状態へ移行し(ステップS18)、起動通知をブロードキャストする。
その後、無線ノード1は、起動通知を受信すると、ステップS7における動作と同じ動作によってDAOを送信する(ステップS19)。
サーバ7の無線ノード72は、DAOを受信し(ステップS20)、DAOの親ノードのアドレスがMACadd1からなり、送信元がMACアドレスMACadd2からなるので、ルーティングテーブル161の送信先にMACアドレスMACadd2を格納し、次の無線ノードにMACアドレスMACadd1を格納し、ホップ数に“2”を格納し、Rankに“768”を格納してルーティングテーブル161を更新する。なお、無線ノード72は、自己から無線ノード1までのホップ数が“1”であることが無線ノード1を送信先とする経路に対応してルーティングテーブル161に既に格納されており、無線ノード2の親ノードが無線ノード1であるので、自己から無線ノード2までのホップ数が“2”であることを検知できる。また、無線ノード72は、無線ノード1のRankが“512”であることが無線ノード1を送信先とする経路に対応してルーティングテーブル161に既に格納されており、無線ノード2の親ノードが無線ノード1であるので、無線ノード2のRankが“768”であることを検知できる。
以降、サーバ7(=無線ノード72)および無線ノード1〜6は、上述した動作を繰り返し実行し、サーバ7から各無線ノード1〜6までの経路を確立し、その確立した経路の経路情報を含むルーティングテーブル161を作成する。そして、無線ノード72は、その作成したルーティングテーブル161に基づいて、無線ノード1〜6,72のトポロジー状態を示すトポロジー図を作成して保持する。
図11に示すフローチャートにおいて、サーバ7の無線ノード72は、DIOを送信する場合、ウェイクアップ信号をブロードキャストして無線ノード1を起動状態へ移行させ、その後、DIOを送信する(ステップS1〜S3参照)。そして、無線ノード72は、DIOの送信を完了すると、スリープ状態へ移行する。
また、無線ノード1は、ウェイクアップ信号に応じて起動状態へ移行すると、DIOを受信し、DAOを送信する場合、ウェイクアップ信号をブロードキャストして無線ノード72を起動状態へ移行させ、その後、DAOを送信する(ステップS4,S5,S7参照)。そして、無線ノード1は、DAOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード1は、DIOを送信する場合、ウェイクアップ信号をユニキャストして無線ノード2を起動状態へ移行させ、その後、DIOを送信する(ステップS9〜S11参照)。そして、無線ノード1は、DIOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード2は、ウェイクアップ信号に応じて起動状態へ移行すると、DIOを受信し、DAOを送信する場合、ウェイクアップ信号をユニキャストして無線ノード1を起動状態へ移行させ、その後、DAOを送信する(ステップS12,S13,S15参照)。そして、無線ノード2は、DAOの送信を完了すると、スリープ状態へ移行する。
更に、無線ノード1は、ウェイクアップ信号に応じて起動状態へ移行すると、DAOを受信し、DAOを転送する場合、ウェイクアップ信号をユニキャストしてサーバ7の無線ノード72を起動状態へ移行させ、その後、DAOを送信する(ステップS16,S17,S19参照)。そして、無線ノード1は、DAOの送信を完了すると、スリープ状態へ移行する。
このように、無線ノード1,2,72の各々は、起動状態へ移行すると、必要な動作を行った後、スリープ状態へ移行する。そして、起動状態においては、無線ノード1は、無線ノード2から受信したDAOの転送が必要な場合、DAOの送信を完了した後にスリープ状態へ移行する。その結果、無線ノード2から送信されたDAOは、迅速にサーバ7へ届けられる。つまり、各無線ノード1,2,72は、必要な場合のみ起動状態へ移行して必要な動作を行った後、スリープ状態へ移行する。
従って、高い省電力性および高いレスポンス性を実現できる。
図12は、図11に示すフローチャートに従って構築されるトポロジーの例を示す図である。
図12を参照して、図11に示すステップS1〜S8が実行されることにより、無線ノード1がサーバ7に接続される(図12の(a)参照)。
その後、図11に示すステップS9〜S20が実行されることにより、無線ノード2が無線ノード1に接続される(図12の(b)参照)。
そして、図11に示すステップS1〜ステップS20が繰り返し実行されることにより、無線ノード3がサーバ7に接続され(図12の(c)参照)、無線ノード4が無線ノード3に接続され、無線ノード5が無線ノード3に接続され、無線ノード6が無線ノード4に接続される(図12の(d)参照)。
rootノードである無線ノード72がルーティングテーブル161を作成する場合、無線ノード72は、無線ノード1〜6の各々が作成した制御パケットDAOを受信し、その制御パケットDAOには、制御パケットDAOを作成した無線ノード(=無線ノード1〜6のいずれか)の親ノードのアドレスが格納されている。従って、無線ノード72は、無線ノード1〜6の各々が作成した制御パケットDAOを順次受信することによって、図12の(d)に示すトポロジーを把握できる。
このように、無線センサーネットワーク10においては、ループ状の経路が存在せず、かつ、ツリー構造のトポロジーがRPLに従って構築される。
そして、サーバ7の無線ノード72がrootであり、無線ノード1,3の親ノードが無線ノード72である。また、無線ノード1は、無線ノード2の親ノードであり、無線ノード3は、無線ノード4,5の親ノードである。更に、無線ノード4は、無線ノード6の親ノードである。
一方、無線ノード1,3は、無線ノード72の子ノードであり、無線ノード4,5は、無線ノード3の子ノードであり、無線ノード6は、無線ノード4の子ノードである。
その結果、無線ノード72は、2つの無線ノード1,3を子ノードとして持ち、無線ノード1は、1つの無線ノード2を子ノードとして持ち、無線ノード3は、2つの無線ノード4,5を子ノードとして持ち、無線ノード4は、1つの無線ノード6を子ノードとして持つ。
このように、無線ノード1〜6,72は、RPLに従って、各無線ノードの親ノードが1個であるようにトポロジーを構築する。
また、同じ値からなるRankを含む複数のDIOを受信した場合、各無線ノードは、単位時間当たりに送受信されるDIOの送受信数である送受信確率を演算し、その演算した送受信確率が最大であるDIOを送信した無線ノードを親ノードとして選択する。
図11に示すフローチャートは、定期的(例えば、30分ごと)に実行され、または新たな無線ノードが無線センサーネットワーク10に参入したときに実行され、または各無線ノード1〜6の親ノードが変更または削除されたときに実行される。また、図11に示すフローチャートは、トポロジーが変化したときに実行される。
新たな無線ノードが無線センサーネットワーク10に参入した場合、新たに参入した無線ノードは、DIOの送信要求であるDISをブロードキャストする。そして、DISを受信した無線ノードがDIOを送信することによって図11に示すフローチャートが実行され、新たなトポロジーが構築される。
図13は、図9に示すルーティングテーブル161の具体例を示す図である。なお、図13に示すルーティングテーブル161−1は、図12の(d)に示す無線ノード4におけるルーティングテーブル161である。
図13を参照して、無線ノード4のルーティングテーブル161−1は、送信先として、無線ノード3,6,72を有する。送信先が無線ノード3(MACadd3)である場合、送信先に対応する「次の無線ノード」には、無線ノード3のMACアドレスMACadd3が格納される。そして、送信先に対応する「ホップ数」には、“1”が格納される。また、送信先に対応する「Rank」には、“512”が格納される。
無線ノード4は、無線ノード3で生成された制御パケットDIOを無線ノード3から受信し、その受信した制御パケットDIOに含まれる送信元が無線ノード3(=MACadd3)であることを検知することにより、無線ノード3が自己に隣接する無線ノードであること、および無線ノード3までのホップ数が“1”であることを検知する。また、無線ノード4は、無線ノード3から受信した制御パケットDIOに含まれる「Rank」に“512”が格納されていることを検知し、無線ノード3の「Rank」が“512”であることを検知する。従って、無線ノード4は、ルーティングテーブル161−1の第1行目の経路情報を作成できる。
また、無線ノード4は、無線ノード3から受信した制御パケットDIOに含まれる「Rank」が“512”であり、制御パケットDIOに含まれる「rootのアドレス」がMACadd72であることを検知すると、自己の「Rank」が“768”(=512+256)であることを検知する。そして、無線ノード4は、自己の「Rank」が“768”であり、「Rank」は、1ホップごとに“256”づつ増加するので、“768”を“256”で除算し、その除算結果“3”から“1”を減算することにより、無線ノード72までのホップ数(=2)を取得する。なお、除算結果“3”から“1”を減算するのは、無線ノード72の「Rank」が“256”であるので、ホップ数を求めるには、「Rank」が何回増加したかを求める必要があるからである。また、「rootのアドレス」がMACadd72であるので、無線ノード4は、送信先としての無線ノード72に対応する「Rank」が“256”であることが解る。更に、無線ノード4は、制御パケットDIOを無線ノード3から受信し、無線ノード72までのホップ数が“2”であるので、送信先としての無線ノード72に対応する「次の無線ノード」が無線ノード3(=MACadd3)であることを検知する。従って、無線ノード4は、ルーティングテーブル161−1の第2行目の経路情報を作成できる。
更に、無線ノード4は、無線ノード6から制御パケットDAOを受信し、その受信した制御パケットDAOに含まれる送信元(=MACadd6)に基づいて、無線ノード6が自己に隣接する子ノードであることを検知する。制御パケットDAOに含まれる「親ノードのアドレス」がMACadd4(=無線ノード4)からなり、制御パケットDAOは、制御パケットDIOの応答であり、かつ、上り方向(各無線ノード1〜6からサーバ7(=無線ノード72)への方向)で送信される制御パケットである。従って、無線ノード4は、無線ノード6が自己の子ノードであることを検知する。また、無線ノード4は、制御パケットDAOを無線ノード6から直接受信したので、無線ノード6までのホップ数が“1”であることを検知する。更に、無線ノード4は、自己の「Rank」が“768”であり、無線ノード6までのホップ数が“1”であるので、無線ノード6の「Rank」が“1024”であることを検知する。従って、無線ノード4は、ルーティングテーブル161−1の第3行目の経路情報を作成できる。
なお、サーバ7(=無線ノード72)が制御指示を含むパケットを無線ノード6へ送信する場合、サーバ7(=無線ノード72)は、無線ノード72から無線ノード6までの経路情報(=無線ノード72→無線ノード1→無線ノード4→無線ノード6)と制御指示とを含むパケットを生成して送信する。従って、経路情報(=無線ノード72→無線ノード1→無線ノード4→無線ノード6)上の無線ノード1,4の各々は、経路情報(=無線ノード72→無線ノード1→無線ノード4→無線ノード6)を参照することによって、自己から2ホップ以上離れた無線ノードを送信先とする経路情報をルーティングテーブル161に格納できる。
その結果、無線ノード1〜6の各々は、無線センサーネットワーク10を構成する全ての無線ノードを送信先とする経路情報をルーティングテーブル161に格納できる。
以下、上述した方法によって各無線ノード1〜6からサーバ7(無線ノード72)までの経路を確立していることを前提として、各無線ノード1〜6がセンサー値をサーバ7へ送信する方法およびサーバ7が制御指示を各無線ノード1〜6へ送信する方法について説明する。
[実施の形態1]
実施の形態1においては、無線通信資源として無線通信のチャネルを用いた場合について説明する。そして、無線センサーネットワーク10に用いられるチャネルは、例えば、3個のチャネルCh1〜Ch3である。
実施の形態1においては、各無線ノード1〜6,72の空きリソース検出部171は、無線通信モジュール15が行うバックグランドスキャンの結果を無線通信部162から受ける。そして、各無線ノード1〜6,72の空きリソース検出部171は、その受けたバックグランドスキャンの結果に基づいて、空いているチャネルChXを検出し、その検出したチャネルChXを保持する。なお、空いているチャネルChXは、1個以上である。
図14は、空いているチャネルChXとフレーム長との対応表を示す図である。図14を参照して、対応表TBL2は、チャネルChXとフレーム長とを含む。チャネルChXおよびフレーム長は、相互に対応付けられる。
チャネルCh1は、15.00msecのフレーム長に対応付けられる。チャネルCh2は、15.08msecのフレーム長に対応付けられる。チャネルCh3は、15.16msecのフレーム長に対応付けられる。
なお、対応表TBL2は、無線センサーネットワーク10に用いられる全てのチャネルCh1〜Ch3を含む。これは、空いているチャネルは、チャネルCh1〜Ch3のうちの少なくとも1つであるので、どのチャネルが空いていても、その空いているチャネルをフレーム長によって表わすことができるようにするためである。
ウェイクアップ判定器14およびウェイクアップ制御部169は、対応表TBL1,TBL2を保持している。
実施の形態1においては、ウェイクアップ信号WuSは、WuID1〜WuID5(p=5)からなる。WuID1〜WuID4は、上述したとおりである。WuID5は、空いているチャネルを示すチャネルIDからなる。
図15は、センサー値を送信する場合の実施の形態1における動作を説明するための図である。図15を参照して、無線ノード1の割込制御部168は、センサー値を無線ノード2へ送信する場合、無線ノード2をスリープ状態から起動状態へ移行させるための依頼をセンサー制御部167から受ける。そして、無線ノード1の割込制御部168は、無線ノード2をスリープ状態から起動状態へ移行させるためのウェイクアップ信号を無線ノード2へ送信するようにウェイクアップ制御部169に依頼する。
無線ノード1のウェイクアップ制御部169は、割込制御部168からの依頼に応じて、空いているチャネルを無線ノード2に割り当てるように空きリソース割当部172に依頼する。
無線ノード1の空きリソース割当部172は、ウェイクアップ制御部169からの依頼に応じて、空いているチャネルを空きリソース検出部171に問い合わせる。無線ノード1の空きリソース検出部171は、無線通信部162が無線通信モジュール15を制御して行うバックグランドスキャンの結果を無線通信部162から受けて保持している。従って、無線ノード1の空きリソース検出部171は、空きリソース割当部172からの問合せに応じて、空いているチャネルを検出して空きリソース割当部172へ出力する。
無線ノード1の空きリソース割当部172は、空いているチャネルを受けると、その受けた空いているチャネルの中から無線ノード2に割り当てるチャネルChXを任意に選択し、その選択したチャネルChXをウェイクアップ制御部169へ出力する。
無線ノード1のウェイクアップ制御部169は、空きリソース割当部172からチャネルChXを受けると、対応表TBL2を参照して、その受けたチャネルChXをフレーム長FL5に変換する。また、無線ノード1のウェイクアップ制御部169は、無線ノード2のMACアドレスMACadd2のハッシュ値を演算して無線ノード2を起動させるためのウェイクアップIDを生成する。そして、無線ノード1のウェイクアップ制御部169は、対応表TBL1を参照して、ウェイクアップIDを4個のフレーム長FL1〜FL4に変換する。そうすると、無線ノード1のウェイクアップ制御部169は、フレーム長FL1〜FL5を無線通信モジュール15へ出力し、フレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを送信するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、フレーム長FL1〜FL5を受けると、その受けたフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSを送信する。つまり、無線ノード1は、ウェイクアップIDと、空いているチャネルChXとを無線ノード2へ送信する。
無線ノード2のウェイクアップ信号受信機13は、無線ノード1からウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波を包絡線検波し、上述した方法によって、フレーム長FL1〜FL5を検出する。そして、無線ノード2のウェイクアップ信号受信機13は、その検出したフレーム長FL1〜FL5をウェイクアップ判定器14へ出力する。
無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号受信機13からフレーム長FL1〜FL5を受け、対応表TBL1を参照して、最初の4個のフレーム長FL1〜FL4をビット列に変換してウェイクアップIDを取得する。また、無線ノード2のウェイクアップ判定器14は、対応表TBL2を参照して、最後のフレーム長FL5をチャネルChXに変換する。
そうすると、無線ノード2のウェイクアップ判定器14は、その取得したウェイクアップIDが、予め保持したウェイクアップIDに一致すると判定する。また、ウェイクアップ判定器14は、無線センサーネットワーク10において使用されるチャネルCh1〜Ch3を予め保持しており、チャネルChXがチャネルCh1〜Ch3に含まれると判定する。そうすると、ウェイクアップ判定器14は、起動信号を生成してホストシステム16へ出力する。
このように、無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号に含まれるウェイクアップIDおよびチャネルChXの両方を用いて無線ノード2を起動させるか否かを判定する。つまり、チャネルChXを示す情報(=資源情報)は、無線ノード2を起動させるか否かの判定に用いられる。
ウェイクアップ判定器14が起動信号をホストシステム16へ出力すると、無線ノード2は、上述した動作によってスリープ状態から起動状態へ移行する。その後、無線ノード2のウェイクアップ判定器14は、チャネルChXをホストシステム16へ出力する。
無線ノード2において、ホストシステム16の無線通信部162は、チャネルChXをウェイクアップ判定器14から受け、その受けたチャネルChXを無線通信モジュール15へ出力する。つまり、ホストシステム16の無線通信部162は、無線ノード2が起動後に使用するチャネルChX(無線通信資源)を無線通信モジュール15(=無線通信を行う通信手段)に設定する。また、無線ノード2の無線通信部162は、チャネルChXで待ち受けている旨の応答Ch_rplを生成して無線通信モジュール15へ出力する。
そうすると、無線ノード2の無線通信モジュール15は、チャネルChXおよび応答Ch_rplを無線通信部162から受け、その受けた応答Ch_rplを送信する。
無線ノード1の無線通信モジュール15は、アンテナ12を介して応答Ch_rplを受信し、その受信した応答Ch_rplを無線通信部162へ出力する。そして、無線ノード1の無線通信部162は、応答Ch_rplに応じて、無線ノード2が起動状態へ移行し、チャネルChXで待ち受けていることを検知する。
そうすると、無線ノード1の無線通信部162は、センサー制御部167から受けたセンサー値と、無線ノード2のMACアドレスMACadd2とを含むパケットを生成して無線通信モジュール15へ出力し、パケットを送信するように無線通信モジュール15を制御する。
そして、無線ノード1の無線通信モジュール15は、無線通信部162から受けたパケットをチャネルChXでアンテナ12を介して送信する。無線ノード2の無線通信モジュール15は、センサー値を含むパケットをチャネルChXで受信し、その受信したパケットを無線通信部162へ出力する。これによって、センサー値は、空いているチャネルChXを用いて無線ノード1から無線ノード2へ送信される。
このように、実施の形態1においては、センサー値の送信元は、センサー値の送信先を起動させるためのウェイクアップ信号に、空いているチャネルからなる起動後のチャネル情報(=資源情報)を含めて送信する。そして、センサー値の送信元は、送信先が起動すると、空いているチャネルを用いてセンサー値を送信先へ送信する。
その結果、干渉によるパケットロスが発生せず、パケットの再送も発生しない。従って、無線通信資源の無駄な消費を抑制できる。
図16は、2つの無線ノード間における無線通信の動作を説明するための実施の形態1におけるフローチャートである。
図16を参照して、一連の動作が開始されると、無線ノード1は、センサー値の送信要求が有るか否かを判定し(ステップS21)、センサー値の送信要求があると判定すると、上述した方法によって、空いているチャネルChXを決定する(ステップS22)。
そして、無線ノード1は、上述した方法によって無線ノード2を起動状態へ移行させるためのウェイクアップIDと、空いているチャネルChXとを含むウェイクアップ信号を生成して送信する(ステップS23)。
無線ノード2は、ウェイクアップ信号を受信し(ステップS24)、その受信したウェイクアップ信号に基づいてウェイクアップIDおよびチャネルChXを検出する(ステップS25)。
そして、無線ノード2は、検出したウェイクアップIDが、予め保持しているウェイクアップIDに一致するか否かを判定する(ステップS26)。また、無線ノード2は、チャネルChXが使用可能なチャネルであるか否かを判定する。
ステップS26において、検出したウェイクアップIDが、予め保持しているウェイクアップIDに一致すると判定され、かつ、チャネルChXが使用可能なチャネルであると判定されたとき、無線ノード2は、上述した方法によって起動状態へ移行する(ステップS27)。
そして、無線ノード2は、チャネルChXで待ち受けていることを示す応答Ch_rplを送信する(ステップS28)。
無線ノード1は、応答Ch_rplを受信したか否かを判定する(ステップS29)。
ステップS29において、応答Ch_rplを受信したと判定されたとき、無線ノード1は、サーバ7(=無線ノード72)のMACアドレスMACadd72からなる送信先と、MACアドレスMACadd1からなる送信元と、センサー値とを含むパケットPKT=[MACadd72/MACadd1/センサー値]を生成し、その生成したパケットPKT=[MACadd72/MACadd1/センサー値]をチャネルChXで送信する(ステップS30)。無線ノード2は、チャネルChXでパケットPKT=[MACadd72/MACadd1/センサー値]を受信する(ステップS31)。
その後、無線ノード1は、起動状態からスリープ状態へ移行する(ステップS32)。
そして、ステップS26において、検出したウェイクアップIDが、予め保持しているウェイクアップIDに一致しないと判定されたとき、またはステップS29において、応答Ch_rplを受信しなかったと判定されたとき、またはステップS32の後、一連の動作が終了する。
このように、無線ノード1は、空いているチャネルChXで無線ノード2を起動状態へ移行させ、センサー値を無線ノード2へ送信すると、スリープ状態へ移行する。
なお、無線ノード2は、無線ノード1から受信したパケットPKT=[MACadd72/MACadd1/センサー値]の送信先(=MACadd72)がサーバ7(=無線ノード72)であるので、パケットPKT=[MACadd72/MACadd1/センサー値]を転送すべきと判定する。
図17は、図1に示す無線センサーネットワーク10におけるセンサー値の転送動作を説明するためのフローチャートである。
図17を参照して、一連の動作が開始されると、無線ノード2は、センサー17によってセンサー値を検出する。そして、無線ノード2は、その検出したセンサー値を含むパケットPKT1=[MACadd72/MACadd2/センサー値]を生成する。その後、無線ノード2は、その生成したパケットPKT1=[MACadd72/MACadd2/センサー値]を図16に示すフローチャートに従って無線ノード1へ送信する(ステップS41)。
無線ノード1は、無線ノード2から受信したパケットPKT1=[MACadd72/MACadd2/センサー値]を図16に示すフローチャートに従ってサーバ7(=無線ノード72)へ送信する(ステップS42)。
サーバ7の無線ノード72は、パケットPKT1=[MACadd72/MACadd2/センサー値]を受信し、その受信したパケットPKT1=[MACadd72/MACadd2/センサー値]をパーソナルコンピュータ71へ出力する。
パーソナルコンピュータ71のWebサーバ711は、パケットPKT1=[MACadd72/MACadd2/センサー値]を無線ノード72から受け、その受けたパケットPKT1=[MACadd72/MACadd2/センサー値]から送信元(=MACadd2)とセンサー値とを取り出し、その取り出した送信元(=MACadd2)およびセンサー値を相互に対応付けてデータベース712に格納する。
その後、無線ノード1は、センサー17によってセンサー値を検出する。そして、無線ノード1は、その検出したセンサー値を含むパケットPKT2=[MACadd72/MACadd1/センサー値]を生成する。その後、無線ノード1は、その生成したパケットPKT2=[MACadd72/MACadd1/センサー値]を図16に示すフローチャートに従ってサーバ7(=無線ノード72)へ送信する(ステップS43)。
サーバ7のWebサーバ711は、パケットPKT2=[MACadd72/MACadd1/センサー値]を無線ノード72から受信すると、パケットPKT2=[MACadd72/MACadd1/センサー値]から送信元(=MACadd1)とセンサー値とを取り出し、その取り出した送信元(=MACadd1)およびセンサー値を相互に対応付けてデータベース712に格納する。
その後、表示端末8は、LANまたはWLANを介してセンサー値の閲覧要求をサーバ7へ送信する(ステップS43)。サーバ7において、パーソナルコンピュータ71のWebサーバ711は、閲覧要求に応じて、データベース712からセンサー値および送信元を読み出し、その読み出したセンサー値および送信元に基づいて、表示端末8の表示画面に無線ノード1〜6のトポロジーを描画するとともに、各無線ノード1〜6が配置された部分に対応するセンサー値を描画する(ステップS44)。
この場合、無線ノード1,2がステップS41においてセンサー値の送受信に用いるチャネルは、無線ノード1およびサーバ7(無線ノード72)がステップS42において用いるチャネルと異なる。
また、無線ノード1およびサーバ7(無線ノード72)がステップS44において用いるチャネルは、無線ノード1およびサーバ7(無線ノード72)がステップS42において用いるチャネルと異なる。
図17に示すフローチャートにおいては、センサー値を送信する無線ノードとして2個の無線ノード1,2のみが示されているが、実際には、無線ノード1〜6がセンサー値をサーバ7へ送信する。そして、各無線ノード1〜6からサーバ7までの各経路上において、隣接する2つの無線ノードは、図16に示すフローチャートに従ってセンサー値を含むパケットを送受信する。
その結果、無線センサーネットワーク10において、センサー値の送信が異なる2つの無線ノード間(例えば、無線ノード1,2および無線ノード4,5間)で同時に行われることもある。しかし、そのような場合でも、センサー値は、空いているチャネルChXを用いて送受信されるので、無線通信の干渉によるパケットロスの発生が抑制される。その結果、パケットの再送が抑制され、時間資源および電波資源の無駄な消費が抑制される。
従って、実施の形態1によれば、無線通信資源を無駄に消費することを抑制できる。
図18は、表示端末8の表示画面の例を示す図である。図18を参照して、表示端末8の表示画面81には、無線ノード1〜6のトポロジーが描画されるとともに、無線ノード1〜6がそれぞれ検出した温度、温度、CO2濃度、照度、湿度、および照度等が表示される。
図19は、図1に示す無線センサーネットワーク10におけるアクチュエータ18の制御動作を説明するためのフローチャートである。
図19を参照して、アクチュエータ18の制御が開始されると、表示端末8は、アクチュエータ18のリスト要求をサーバ7へ送信する(ステップS51)。
サーバ7のパーソナルコンピュータ71は、リスト要求を受信し、データベース712に格納された無線ノード1〜6のアドレスMACadd1〜MACadd6を読み出し、その読み出したアドレスMACadd1〜MACadd6をアクチュエータ18のリストとして表示端末8へ送信する(ステップS52)。
なお、アドレスMACadd1〜MACadd6をアクチュエータ18のリストとするのは、無線ノード1〜6は、全て、アクチュエータ18を備えているので、無線ノード1〜6のアドレスMACadd1〜MACadd6で無線ノード1〜6に備えられたアクチュエータ18を表すことにしたからである。
表示端末8は、アクチュエータ18のリストを受信すると、その受信したアクチュエータ18のリストを表示画面に表示する。そして、端末装置8は、キーボード等の入力装置を介して各アクチュエータ18に対する制御指示を受け付ける。
そうすると、表示端末8は、制御指示をサーバ7へ送信する(ステップS53)。
サーバ7のパーソナルコンピュータ71は、制御指示を受信し、その受信した制御指示をRC−232C73を介して無線ノード72へ出力する。
無線ノード72において、ホストシステム16のアクチュエータ制御部166は、制御指示をパーソナルコンピュータ71から受け、その受けた制御指示を無線通信部162へ出力するとともに制御指示を無線ノード2へ送信するために無線ノード72の子ノードを起動させるように割込制御部168に依頼する。
無線通信部162は、制御指示を受けると、その受けた制御指示を無線ノード2へ送信するための経路を経路制御部163に問い合わせる。経路制御部163は、無線通信部162からの問い合わせに応じて、ルーティングテーブル161を参照して無線ノード72から無線ノード2までの経路=[MACadd72→MACadd1→MACadd2]を検出し、その検出した経路=[MACadd72→MACadd1→MACadd2]を無線通信部162へ出力する。
無線通信部162は、経路=[MACadd72→MACadd1→MACadd2]を受けると、経路=[MACadd72→MACadd1→MACadd2]と制御指示とを無線通信モジュール15へ出力し、制御指示を無線ノード2へ送信するように無線通信モジュール15を制御する。
一方、割込制御部168は、アクチュエータ制御部166からの依頼に応じて、無線ノード72の子ノードを起動させるようにウェイクアップ制御部169に依頼する。ウェイクアップ制御部169は、割込制御部168からの依頼に応じて、制御指示の送信先を無線通信部162に問い合わせ、制御指示の送信先として無線ノード1のアドレスMACadd1を無線通信部162から受ける。
また、無線ノード72の無線通信モジュール15は、経路=[MACadd72→MACadd1→MACadd2]と制御指示とを無線通信部162から受け、その受けた経路=[MACadd72→MACadd1→MACadd2]と制御指示とを含むパケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]を生成する。
その後、無線ノード72は、図16に示すフローチャートに従ってパケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]を無線ノード1へ送信する(ステップS54)。
無線ノード1は、パケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]を無線ノード72から受信し、その受信したパケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]の経路=[MACadd72→MACadd1→MACadd2]を参照して、パケットPKT3を無線ノード2へ送信すればよいことを検知する。
そして、無線ノード1は、図16に示すフローチャートに従ってパケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]を無線ノード1へ送信する(ステップS55)。
無線ノード2は、パケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]を無線ノード1から受信し、その受信したパケットPKT3=[MACadd72→MACadd1→MACadd2/制御指示]の経路=[MACadd72→MACadd1→MACadd2]を参照して、パケットPKT3の送信先が無線ノード2であることを検知する。そして、無線ノード2は、パケットPKT3から制御指示を取り出し、その取り出した制御指示をホストシステム16のアクチュエータ制御部166へ出力する。
無線ノード2において、ホストシステム16のアクチュエータ制御部166は、制御指示を受け、その受けた制御指示に従って、アクチュエータ18を制御する(ステップS56)。
アクチュエータ18の制御が完了すると、アクチュエータ制御部166は、アクチュエータ18の制御が完了したことを示すアクチュエータ制御応答を生成して無線通信部162へ出力し、アクチュエータ制御応答をサーバ7へ送信するように依頼する。
無線ノード2において、ホストシステム16の無線通信部162は、アクチュエータ制御部166からの依頼に応じて、アクチュエータ制御応答をサーバ7へ送信するように無線通信モジュール15を制御する。
その後、無線ノード2は、図16に示すフローチャートに従ってアクチュエータ制御応答を無線ノード1へ送信し(ステップS57)、起動状態からスリープ状態へ移行する。
そして、無線ノード1は、無線ノード2から受信したアクチュエータ制御応答をサーバ7へ転送し(ステップS58)、起動状態からスリープ状態へ移行する。
サーバ7の無線ノード72は、無線ノード1からアクチュエータ制御応答を受信し、その受信したアクチュエータ制御応答をRS−232C74を介してパーソナルコンピュータ71へ出力し、パーソナルコンピュータ71は、無線ノード72から受けたアクチュエータ制御応答をLANまたはWLANを介して表示端末8へ送信する(ステップS59)。そして、無線ノード72は、起動状態からスリープ状態へ移行する。これによって、アクチュエータ18の制御動作が終了する。
図19に示すフローチャートにおいては、ステップS54〜ステップS58において使用されるチャネルは、空いているチャネルChXであるので、無線通信の干渉によるパケットロスの発生が抑制される。従って、上述したように、無線通信資源の無駄な消費を抑制できる。
なお、空いているチャネルChXを含むウェイクアップ信号は、複数の無線ノードから1つの無線ノードへ送信されることも想定される。この場合、起動される無線ノードは、最も早く受信したウェイクアップ信号に従って起動状態へ移行し、起動状態へ移行すると、応答Ch_rplを送信する。これによって、起動される無線ノードが複数のウェイクアップ信号を受信した場合でも、1つのウェイクアップ信号に従って起動状態へ移行できる。
[実施の形態2]
実施の形態2においては、無線通信資源として無線通信の時間(時刻とも言う。)を用いた場合について説明する。
実施の形態2においては、各無線ノード1〜6,72の空きリソース検出部171は、無線通信モジュール15が既に行った無線通信の状況を無線通信部162から受け、その受けた無線通信の状況に基づいて、空いている時刻を検出し、その空いている時刻を保持する。なお、空いている時刻は、1個以上である。
図20は、空いている時刻とフレーム長との対応表を示す図である。図20を参照して、対応表TBL3は、空いている時刻とフレーム長とを含む。空いている時刻およびフレーム長は、相互に対応付けられる。
空いている時刻t1は、16.00msecのフレーム長に対応付けられる。空いている時刻t2は、16.08msecのフレーム長に対応付けられる。空いている時刻t3は、16.16msecのフレーム長に対応付けられる。以下、同様にして、空いている時刻tx(x=1,2,3,・・・)は、16.00+(x−1)×0.08msecのフレーム長に対応付けられる。
ウェイクアップ判定器14およびウェイクアップ制御部169は、対応表TBL1,TBL3を保持している。
実施の形態2においても、ウェイクアップ信号WuSは、WuID1〜WuID5(p=5)からなる。WuID1〜WuID4は、上述したとおりである。そして、実施の形態2においては、WuID5は、空いている時刻txを示す時刻IDからなる。
図21は、センサー値を送信する場合の実施の形態2における動作を説明するための図である。図21を参照して、無線ノード1の割込制御部168は、センサー値を無線ノード2へ送信する場合、無線ノード2をスリープ状態から起動状態へ移行させるための依頼をセンサー制御部167から受ける。そして、無線ノード1の割込制御部168は、無線ノード2をスリープ状態から起動状態へ移行させるためのウェイクアップ信号を無線ノード2へ送信するようにウェイクアップ制御部169に依頼する。
無線ノード1のウェイクアップ制御部169は、割込制御部168からの依頼に応じて、空いている時刻を無線ノード2に割り当てるように空きリソース割当部172に依頼する。
無線ノード1の空きリソース割当部172は、ウェイクアップ制御部169からの依頼に応じて、空いている時刻を空きリソース検出部171に問い合わせる。無線ノード1の空きリソース検出部171は、無線通信部162が無線通信モジュール15を制御して既に行った無線通信の状況を無線通信部162から受けて保持している。従って、無線ノード1の空きリソース検出部171は、空きリソース割当部172からの問合せに応じて、空いている時刻を検出して空きリソース割当部172へ出力する。
無線ノード1の空きリソース割当部172は、空いている時刻を受けると、その空いている時刻の中から無線ノード2に割り当てる時刻txを任意に選択し、その選択した時刻txをウェイクアップ制御部169へ出力する。
無線ノード1のウェイクアップ制御部169は、空きリソース割当部172から時刻txを受けると、対応表TBL3を参照して、その受けた時刻txをフレーム長FL5に変換する。また、無線ノード1のウェイクアップ制御部169は、無線ノード2のMACアドレスMACadd2のハッシュ値を演算して無線ノード2を起動させるためのウェイクアップIDを生成する。そして、無線ノード1のウェイクアップ制御部169は、対応表TBL1を参照して、ウェイクアップIDを4個のフレーム長FL1〜FL4に変換する。そうすると、無線ノード1のウェイクアップ制御部169は、フレーム長FL1〜FL5を無線通信モジュール15へ出力し、5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを送信するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、5個のフレーム長FL1〜FL5を受けると、その受けた5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSを送信する。つまり、無線ノード1は、ウェイクアップIDと、空いている時刻txとを無線ノード2へ送信する。
無線ノード2のウェイクアップ信号受信機13は、無線ノード1からウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波を包絡線検波し、上述した方法によって、フレーム長FL1〜FL5を検出する。そして、無線ノード2のウェイクアップ信号受信機13は、その検出したフレーム長FL1〜FL5をウェイクアップ判定器14へ出力する。
無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号受信機13からフレーム長FL1〜FL5を受け、対応表TBL1を参照して、最初の4個のフレーム長FL1〜FL4をビット列に変換してウェイクアップIDを取得する。また、無線ノード2のウェイクアップ判定器14は、対応表TBL3を参照して、最後のフレーム長FL5を時刻txに変換する。
そうすると、無線ノード2のウェイクアップ判定器14は、その取得したウェイクアップIDが、予め保持したウェイクアップIDに一致すると判定し、その判定した時刻から時刻txまでの時間が経過すると、起動信号をホストシステム16へ出力する。その後、無線ノード2は、上述した動作によってスリープ状態から起動状態へ移行する。そして、無線ノード2は、待機する。このように、無線ノード2のウェイクアップ判定器14は、ウェイクアップIDが、予め保持したウェイクアップIDに一致すると判定した時刻から時刻txまでの時間が経過すると、起動信号をホストシステム16へ出力するので、無線ノード2のウェイクアップ判定器14は、時刻txを示す情報(=資源情報)を用いて無線ノード2を起動させるか否かを判定することになる。
無線ノード1の無線通信部162は、センサー制御部167から受けたセンサー値と、無線ノード2のMACアドレスMACadd2とを含むパケットを生成して無線通信モジュール15へ出力し、パケットを送信するように無線通信モジュール15を制御する。
そして、無線ノード1の無線通信モジュール15は、ウェイクアップ信号WuSを送信した後、時刻txになると、無線通信部162から受けたパケットを所望のチャネルでアンテナ12を介して送信する。無線ノード2の無線通信モジュール15は、センサー値を含むパケットを所望のチャネルで受信し、その受信したパケットを無線通信部162へ出力する。これによって、センサー値は、空いている時刻txで無線ノード1から無線ノード2へ送信される。
このように、実施の形態2においては、センサー値の送信元は、センサー値の送信先を起動させるためのウェイクアップ信号に、空いている時刻txを含めて送信する。そして、センサー値の送信元は、指定した時刻txに送信先が起動すると、空いている時刻txでセンサー値を送信先へ送信する。
その結果、干渉によるパケットロスが発生せず、パケットの再送も発生しない。従って、無線通信資源の無駄な消費を抑制できる。
実施の形態2において、隣接する2つの無線ノード間でセンサー値を送受信する動作は、図16に示すフローチャートに従って実行される。この場合、図16に示すフローチャートにおいて、「チャネルChX」を「空いている時刻tx」と読み替えればよい。そして、ステップS28において、無線ノード2のアドレスMACadd2を含む起動通知が無線ノード1へ送信される。
また、実施の形態2において、各無線ノード1〜6が検出したセンサー値をサーバ7へ送信する動作は、図17に示すフローチャートに従って実行される。
更に、実施の形態2において、アクチュエータ18を制御する動作は、図19に示すフローチャートに従って実行される。
そして、図17に示すフローチャートおよび図19に示すフローチャートに従って無線通信が行われる場合、2つの無線ノード間の無線通信は、送信元の無線ノードが指定した時刻で行われるので、無線通信の干渉によるパケットロスの発生が抑制される。従って、上述したように、無線通信資源の無駄な消費を抑制できる。
また、各無線ノード1〜6は、センサー値を直ぐに送信できない場合でも、指定した時刻txでセンサー値を送信できるので、センサー値を確実にサーバ7へ届けることができる。
更に、例えば、センサー17が温度センサーからなる場合、温度センサーは、安定しないと温度を検出できない。しかし、実施の形態2によれば、各無線ノード1〜6は、空いている時刻txをウェイクアップ信号に含めて送信してから時刻txになるまでに、温度センサーが安定して温度を検出し、その検出した温度を、指定した時刻txで送信できる。従って、正確なセンサー値をサーバ7へ届けることができる。
実施の形態2におけるその他の説明は、実施の形態1における説明と同じである。
[実施の形態3]
実施の形態3においては、無線通信資源として無線通信のチャネルと無線通信の時間(時刻とも言う。)とを用いた場合について説明する。
実施の形態3においては、各無線ノード1〜6,72の空きリソース検出部171は、実施の形態1において説明したように空いているチャネルを検出するとともに、実施の形態2において説明したように空いている時刻を検出する。そして、各無線ノード1〜6,72の空きリソース検出部171は、空いているチャネルおよび空いている時刻を保持する。
実施の形態3においては、ウェイクアップ判定器14およびウェイクアップ制御部169は、対応表TBL1〜TBL3を保持している。
実施の形態3においては、ウェイクアップ信号WuSは、WuID1〜WuID6(p=6)からなる。WuID1〜WuID4は、上述したとおりである。そして、実施の形態3においては、WuID5は、空いているチャネルChXを示すチャネルIDからなり、WuID6は、空いている時刻txを示す時刻IDからなる。
図22は、センサー値を送信する場合の実施の形態3における動作を説明するための図である。図22を参照して、無線ノード1の割込制御部168は、センサー値を無線ノード2へ送信する場合、無線ノード2をスリープ状態から起動状態へ移行させるための依頼をセンサー制御部167から受ける。そして、無線ノード1の割込制御部168は、無線ノード2をスリープ状態から起動状態へ移行させるためのウェイクアップ信号を無線ノード2へ送信するようにウェイクアップ制御部169に依頼する。
無線ノード1のウェイクアップ制御部169は、割込制御部168からの依頼に応じて、空いているチャネルChXおよび空いている時刻txを無線ノード2に割り当てるように空きリソース割当部172に依頼する。
無線ノード1の空きリソース割当部172は、ウェイクアップ制御部169からの依頼に応じて、空いているチャネルおよび空いている時刻を空きリソース検出部171に問い合わせる。無線ノード1の空きリソース検出部171は、無線通信部162が無線通信モジュール15を制御して行ったバックグランドスキャンの結果を無線通信部162から受けて保持している。また、無線ノード1の空きリソース検出部171は、無線通信部162が無線通信モジュール15を制御して既に行った無線通信の状況を無線通信部162から受けて保持している。従って、無線ノード1の空きリソース検出部171は、空きリソース割当部172からの問合せに応じて、空いているチャネルおよび空いている時刻を検出して空きリソース割当部172へ出力する。
無線ノード1の空きリソース割当部172は、空いているチャネルおよび空いている時刻を受けると、その空いているチャネルおよび空いている時刻の中から無線ノード2に割り当てるチャネルChXおよび時刻txを任意に選択し、その選択したチャネルChXおよび時刻txをウェイクアップ制御部169へ出力する。
無線ノード1のウェイクアップ制御部169は、空きリソース割当部172からチャネルChXおよび時刻txを受けると、対応表TBL2を参照して、その受けたチャネルChXをフレーム長FL5に変換し、対応表TBL3を参照して、その受けた時刻txをフレーム長FL6に変換する。また、無線ノード1のウェイクアップ制御部169は、無線ノード2のMACアドレスMACadd2のハッシュ値を演算して無線ノード2を起動させるためのウェイクアップIDを生成する。そして、無線ノード1のウェイクアップ制御部169は、対応表TBL1を参照して、ウェイクアップIDを4個のフレーム長FL1〜FL4に変換する。そうすると、無線ノード1のウェイクアップ制御部169は、フレーム長FL1〜FL6を無線通信モジュール15へ出力し、6個のフレーム長FL1〜FL6を有する6個のフレームからなるウェイクアップ信号を送信するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、6個のフレーム長FL1〜FL6を受けると、その受けた6個のフレーム長FL1〜FL6を有する6個のフレームからなるウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSを送信する。つまり、無線ノード1は、ウェイクアップIDと、空いているチャネルChXと、空いている時刻txとを無線ノード2へ送信する。
無線ノード2のウェイクアップ信号受信機13は、無線ノード1からウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波を包絡線検波し、上述した方法によって、6個のフレーム長FL1〜FL6を検出する。そして、無線ノード2のウェイクアップ信号受信機13は、その検出した6個のフレーム長FL1〜FL6をウェイクアップ判定器14へ出力する。
無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号受信機13から6個のフレーム長FL1〜FL6を受け、対応表TBL1を参照して、最初の4個のフレーム長FL1〜FL4をビット列に変換してウェイクアップIDを取得する。また、無線ノード2のウェイクアップ判定器14は、対応表TBL2を参照して、フレーム長FL5をチャネルChXに変換し、対応表TBL3を参照して、最後のフレーム長FL6を時刻txに変換する。
そうすると、無線ノード2のウェイクアップ判定器14は、その取得したウェイクアップIDが、予め保持したウェイクアップIDに一致すると判定するとともにチャネルChXがチャネルCh1〜Ch3に含まれると判定し、その判定した時刻から時刻txまでの時間が経過すると、起動信号およびチャネルChXをホストシステム16へ出力する。その後、無線ノード2は、上述した動作によってスリープ状態から起動状態へ移行する。なお、この場合も、上述したように、チャネルChXを示すチャネル情報と、時刻txを示す時刻情報とからなる資源情報は、無線ノード2を起動させるか否かのために使用される。
そして、無線ノード2は、実施の形態1において説明したように、応答Ch_rplを生成して送信し、チャネルChXで無線通信を待ち受ける。
無線ノード1の無線通信部162は、無線ノード2から応答Ch_rplを受信すると、センサー制御部167から受けたセンサー値と、無線ノード2のMACアドレスMACadd2とを含むパケットを生成して無線通信モジュール15へ出力し、パケットを送信するように無線通信モジュール15を制御する。
そして、無線ノード1の無線通信モジュール15は、ウェイクアップ信号WuSを送信した後、時刻txになると、無線通信部162から受けたパケットをチャネルChXでアンテナ12を介して送信する。無線ノード2の無線通信モジュール15は、センサー値を含むパケットをチャネルChXで受信し、その受信したパケットを無線通信部162へ出力する。これによって、センサー値は、空いている時刻txで空いているチャネルChXを用いて無線ノード1から無線ノード2へ送信される。
このように、実施の形態3においては、センサー値の送信元は、センサー値の送信先を起動させるためのウェイクアップ信号に、空いているチャネルChXおよび空いている時刻txを含めて送信する。そして、センサー値の送信元は、指定した時刻txに送信先が起動すると、空いている時刻txで空いているチャネルChXを用いてセンサー値を送信先へ送信する。
その結果、干渉によるパケットロスが発生せず、パケットの再送も発生しない。従って、無線通信資源の無駄な消費を抑制できる。
実施の形態3において、隣接する2つの無線ノード間でセンサー値を送受信する動作は、図16に示すフローチャートに従って実行される。この場合、図16に示すフローチャートにおいて、「チャネルChX」を「チャネルChXおよび空いている時刻tx」と読み替えればよい。
また、実施の形態3において、各無線ノード1〜6が検出したセンサー値をサーバ7へ送信する動作は、図17に示すフローチャートに従って実行される。
更に、実施の形態3において、アクチュエータ18を制御する動作は、図19に示すフローチャートに従って実行される。
そして、図17に示すフローチャートおよび図19に示すフローチャートに従って無線通信が行われる場合、2つの無線ノード間の無線通信は、送信元の無線ノードが指定した時刻で、かつ、指定したチャネルを用いて行われるので、無線通信の干渉によるパケットロスの発生が抑制される。従って、上述したように、無線通信資源の無駄な消費を抑制できる。
図23は、実施の形態3における無線通信の方法の応用例を示す図である。図23を参照して、無線ノード1は、上述した方法によって、空いているチャネルChXおよび空いている時刻txを含むウェイクアップ信号WuSを無線ノード2〜4へ送信する。
この場合、無線ノード1は、無線ノード2〜4へそれぞれ送信する時刻tx1〜tx3を相互に異なるようにしてもよいし、無線ノード2〜4へそれぞれ送信するチャネルChX1〜ChX3を相互に異なるようにしてもよいし、無線ノード2〜4へそれぞれ送信するチャネルChX1〜ChX3および時刻tx1〜tx3の両方を相互に異なるようにしてもよい。即ち、無線ノード1は、チャネルChXおよび時刻txの少なくとも1つが無線ノード2〜4間で相互に異なるようにチャネルChXおよび時刻txを無線ノード2〜4へ送信する。
そして、無線ノード2〜4は、チャネルChXおよび時刻txの少なくとも1つが相互に異なるようにセンサー値を無線ノード1へ送信する。
その結果、無線ノード1,2間の無線通信、無線ノード1,3間の無線通信および無線ノード1,4間の無線通信は、チャネルChXおよび時刻txの少なくとも1つが相互に異なる。従って、無線通信の干渉によるパケットロスの発生が抑制され、無線通信資源の無駄な消費を抑制できる。
そして、図23において説明した無線通信の方法は、無線ノード2〜4で検出されたセンサー値をポーリングするときに適用される。
実施の形態3におけるその他の説明は、実施の形態1,2と同じである。
[実施の形態4]
実施の形態4においては、空いているチャネルChXおよび空いている時刻txをウェイクアップ信号に含めて送信し、対象の無線ノード以外の無線ノードは、ウェイクアップ信号を受信して対象の無線ノードにおける無線通信を予測し、その予測した対象の無線ノードにおける無線通信との干渉を回避した無線通信を行うことについて説明する。
なお、実施の形態4においては、無線ノード1〜6,72の無線通信モジュール15は、上述した対応表TBL1〜TBL3を保持しており、ウェイクアップ信号受信機13およびウェイクアップ判定器14と同じ機能を有する。
図24は、実施の形態4における無線通信の動作を説明するための図である。なお、図24においては、無線ノード2〜5は、無線ノード1の通信範囲内に存在する。また、無線ノード3〜5は、起動状態であることを前提とする。
図24を参照して、無線ノード1は、上述したように、空いているチャネルChXおよび空いている時刻txを含むウェイクアップ信号WuSを送信する。
そして、無線ノード1,2は、実施の形態3において説明したように、空いているチャネルChXを用いて空いている時刻txで無線通信を行う。
一方、無線ノード3,4の無線通信モジュール15は、無線ノード1から送信されたウェイクアップ信号WuSをオーバーヒアリングによって受信し、その受信したウェイクアップ信号WuSの受信電波を包絡線検波し、フレーム長FL1〜FL6を検出する。
そして、無線ノード3,4の無線通信モジュール15は、対応表TBL2を参照してフレーム長FL5をチャネルChXに変換し、対応表TBL3を参照してフレーム長FL6を時刻txに変換する。
そうすると、無線ノード3,4の無線通信モジュール15は、チャネルChXおよび時刻txをホストシステム16の無線通信部162へ出力する。
無線ノード3,4の無線通信部162は、チャネルChXおよび時刻txを無線通信モジュール15から受け、その受けたチャネルChXおよび時刻txに基づいて無線ノード1,2間で行われる無線通信を予測する。
そして、無線ノード3は、無線ノード2から起動通知を受信すると、無線ノード1,2間の無線通信と干渉が発生しないようにセンサー値を無線ノード2へ送信する。より具体的には、無線ノード3は、次のいずれかの方法でセンサー値を無線ノード2へ送信する。無線ノード3は、無線ノード1,2間で行われる無線通信の時刻txと異なる時刻で任意のチャネルを用いてセンサー値を無線ノード2へ送信する。また、無線ノード3は、無線ノード1,2間で行われる無線通信のチャネルChXと異なるチャネルを用いて任意の時刻でセンサー値を無線ノード2へ送信する。更に、無線ノード3は、無線ノード1,2間で行われる無線通信のチャネルChXと異なるチャネルを用いて時刻txと異なる時刻でセンサー値を無線ノード2へ送信する。
一方、無線ノード4は、無線ノード1,2間で行われる無線通信を予測すると、無線ノード3と同じ方法によってセンサー値を無線ノード5へ送信する。
従って、無線ノード2,3間の無線通信および無線ノード4,5間の無線通信は、無線ノード1,2間の無線通信と干渉しない。
図25は、実施の形態4における無線通信の動作を説明するためのフローチャートである。
なお、図25においては、対象の無線ノードとは、チャネルChXおよび時刻txを含むウェイクアップ信号WuSを送信する無線ノードと、ウェイクアップ信号WuSによって起動される無線ノードとを言う。また、対象外の無線ノードとは、ウェイクアップ信号WuSをオーバーヒアリングによって受信可能な無線ノードを言う。
図25を参照して、一連の動作が開始されると、対象の無線ノードは、空いているチャネルChXと空いている時刻txとを含むウェイクアップ信号WuSを送信する(ステップS61)。
対象外の無線ノードは、ウェイクアップ信号WuSをオーバーヒアリングによって受信する(ステップS62)。
そして、対象外の無線ノードは、その受信したウェイクアップ信号WuSに含まれるチャネルChXおよび時刻txに基づいて対象の無線ノードにおける無線通信を予測する(ステップS63)。
その後、対象外の無線ノードは、対象の無線ノードにおける無線通信との干渉を回避するように、対象の無線ノードへセンサー値を送信し、または他の無線ノードへセンサー値を送信する(ステップS64)。これによって、一連の動作が終了する。
このように、実施の形態4においては、対象の無線ノードの周辺に存在する対象外の無線ノードは、対象の無線ノードから送信されたウェイクアップ信号をオーバーヒアリングして対象の無線ノードにおいて行われる無線通信を予測し、その予測した無線通信との干渉を回避するように無線通信を行う。
従って、無線通信の干渉によるパケットロスの発生が抑制され、無線通信資源の無駄な消費を抑制できる。
実施の形態4におけるその他の説明は、実施の形態1,3における説明と同じである。
[実施の形態5]
実施の形態5においては、無線通信資源として電源情報を用いた場合について説明する。電源情報は、電源種別または電源の電力量からなる。
実施の形態5においては、各無線ノード1〜6,72は、上述した無線ノード1〜6からサーバ7への経路を構築する段階において各無線ノード1〜6,72の電源20の電力量または種別を制御パケットDIO,DAOに含めて送受信する。そして、各無線ノード1〜6,72の空きリソース検出部171は、制御パケットDIO,DAOに含まれる電源20の電力量または種別を取り出し、その取り出した電力量または種別を制御パケットDIO,DAOの送信元に対応付けて保持する。これによって、各無線ノード1〜6,72の空きリソース検出部171は、無線ノード1〜6,72の電源20の電力量または種別を収集できる。
なお、電源20の種別は、例えば、AC100Vである。即ち、電源20の種別は、各無線ノード1〜6,72がAC100Vに繋がれていることである。
図26は、電源のしきい値とフレーム長との対応表を示す図である。図26を参照して、対応表TBL4は、電源のしきい値とフレーム長とを含む。電源のしきい値およびフレーム長は、相互に対応付けられる。
電源のしきい値Wp1は、17.00msecのフレーム長に対応付けられる。電源のしきい値Wp2は、17.08msecのフレーム長に対応付けられる。電源のしきい値Wp3は、17.16msecのフレーム長に対応付けられる。以下、同様にして、電源のしきい値Wpxは、17.00+(x−1)×0.08msecのフレーム長に対応付けられる。
ウェイクアップ判定器14およびウェイクアップ制御部169は、対応表TBL1,TBL4を保持している。また、ウェイクアップ判定器14は、自己が搭載された無線ノードの電源20の電力量または種別を保持している。
実施の形態5においても、ウェイクアップ信号WuSは、WuID1〜WuID5(p=5)からなる。WuID1〜WuID4は、上述したとおりである。そして、実施の形態5においては、WuID5は、電源のしきい値Wpxを示す電源IDからなる。
図27は、センサー値を送信する場合の実施の形態5における動作を説明するための図である。図27を参照して、無線ノード1の割込制御部168は、センサー値を他の無線ノードへ送信する場合、任意の無線ノードをスリープ状態から起動状態へ移行させるための依頼をセンサー制御部167から受ける。そして、無線ノード1の割込制御部168は、任意の無線ノードをスリープ状態から起動状態へ移行させるためのウェイクアップ信号を任意の無線ノードへ送信するようにウェイクアップ制御部169に依頼する。
無線ノード1のウェイクアップ制御部169は、割込制御部168からの依頼に応じて、しきい値Wpxを割り当てるように空きリソース割当部172に依頼する。
無線ノード1の空きリソース割当部172は、ウェイクアップ制御部169からの依頼に応じて、各無線ノード1〜6,72の電力量を空きリソース検出部171に問い合わせる。無線ノード1の空きリソース検出部171は、空きリソース割当部172からの問合せに応じて、保持している無線ノード1〜6,72のアドレスMACadd1〜MACadd6,MACadd72と、アドレスMACadd1〜MACadd6,MACadd72に対応付けられた電力量とを空きリソース割当部172へ出力する。
無線ノード1の空きリソース割当部172は、アドレスMACadd1〜MACadd6,MACadd72と、アドレスMACadd1〜MACadd6,MACadd72に対応付けられた電力量とを空きリソース検出部171から受け、その受けたアドレスMACadd1〜MACadd6,MACadd72と、アドレスMACadd1〜MACadd6,MACadd72に対応付けられた電力量とに基づいて、しきい値Wpxを決定するとともに、その決定したしきい値Wpx以上の電力量を有する無線ノードのアドレスMACadd_Wpとを検出する。そして、空きリソース割当部172は、しきい値WpxおよびアドレスMACadd_Wpをウェイクアップ制御部169へ出力する。
無線ノード1のウェイクアップ制御部169は、しきい値WpxおよびアドレスMACadd_Wpを受け、対応表TBL4を参照してしきい値Wpxをフレーム長FL5に変換する。また、無線ノード1のウェイクアップ制御部169は、アドレスMACadd_Wpに基づいて、起動させる無線ノードとして無線ノード2を選択する。
そして、無線ノード1のウェイクアップ制御部169は、無線ノード2のMACアドレスMACadd2のハッシュ値を演算して無線ノード2を起動させるためのウェイクアップIDを生成する。そして、無線ノード1のウェイクアップ制御部169は、対応表TBL1を参照して、ウェイクアップIDを4個のフレーム長FL1〜FL4に変換する。そうすると、無線ノード1のウェイクアップ制御部169は、フレーム長FL1〜FL5を無線通信モジュール15へ出力し、5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号を送信するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、5個のフレーム長FL1〜FL5を受けると、その受けた5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSを送信する。つまり、無線ノード1は、ウェイクアップIDと、電源のしきい値Wpxとを無線ノード2へ送信する。
無線ノード2のウェイクアップ信号受信機13は、無線ノード1からウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの電波を包絡線検波し、上述した方法によって、フレーム長FL1〜FL5を検出する。そして、無線ノード2のウェイクアップ信号受信機13は、その検出したフレーム長FL1〜FL5をウェイクアップ判定器14へ出力する。
無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号受信機13からフレーム長FL1〜FL5を受け、対応表TBL1を参照して、最初の4個のフレーム長FL1〜FL4をビット列に変換してウェイクアップIDを取得する。また、無線ノード2のウェイクアップ判定器14は、対応表TBL4を参照して、最後のフレーム長FL5をしきい値Wpxに変換する。
そうすると、無線ノード2のウェイクアップ判定器14は、その取得したウェイクアップIDが、予め保持したウェイクアップIDに一致すると判定し、かつ、無線ノード2の電源20の電力量がしきい値Wpx以上であると判定する。そして、無線ノード2のウェイクアップ判定器14は、起動信号を生成してホストシステム16へ出力する。その後、無線ノード2は、上述した動作によってスリープ状態から起動状態へ移行する。この場合も、無線ノード2のウェイクアップ判定器14は、しきい値Wpx(=資源情報)を用いて無線ノード2を起動させるか否かを判定する。
無線ノード1の無線通信部162は、センサー制御部167から受けたセンサー値と、無線ノード2のMACアドレスMACadd2とを含むパケットを生成して無線通信モジュール15へ出力し、パケットを送信するように無線通信モジュール15を制御する。
そして、無線ノード1の無線通信モジュール15は、無線通信部162から受けたパケットを所望のチャネルでアンテナ12を介して送信する。無線ノード2の無線通信モジュール15は、センサー値を含むパケットを所望のチャネルで受信し、その受信したパケットを無線通信部162へ出力する。これによって、センサー値は、無線ノード1からしきい値Wpx以上の電力量を有する無線ノード2へ送信される。
このように、実施の形態5においては、センサー値の送信元は、センサー値の送信先を起動させるためのウェイクアップ信号に、電源のしきい値Wpxを含めて送信する。そして、センサー値の送信元は、指定したしきい値Wpx以上の電力量を有する送信先が起動すると、センサー値を送信先へ送信する。
その結果、しきい値Wpxよりも少ない電力量を有する無線ノードの起動を阻止し、しきい値Wpx以上の電力量を有する無線ノードのみを起動させることができる。従って、しきい値Wpxよりも少ない電力量を有する無線ノードの無駄な起動を阻止し、無線通信資源の無駄な消費を抑制できる。また、しきい値Wpx以上の電力量を有する無線ノードのみを起動させるので、無線センサーネットワーク10のライフタイムを延長できる。
なお、上記においては、無線ノード2のアドレスMACaddからウェイクアップIDを生成すると説明したが、実際には、ウェイクアップIDは、ブロードキャストIDまたはマルチキャストIDからなる。センサー値の送信元は、無線ノード1〜6,72のうち、しきい値Wpx以上の電力量を有する任意の無線ノードまたは所望の電源種別を有する任意の無線ノードを起動させるからである。
また、上記においては、電源20の電力量をウェイクアップ信号WuSに含めて送信する場合について説明したが、電源種別をウェイクアップ信号WuSに含めて送信してもよい。この場合、無線ノード1は、所望の電源種別を有する無線ノードのみを起動させ、その起動させた無線ノードへセンサー値を送信する。
その結果、所望の電源種別を有さない無線ノードの起動を阻止し、所望の電源種別を有する無線ノードのみを起動させることができる。従って、所望の電源種別を有さない無線ノードの無駄な起動を阻止し、無線通信資源の無駄な消費を抑制できる。
実施の形態5において、隣接する2つの無線ノード間でセンサー値を送受信する動作は、図16に示すフローチャートに従って実行される。この場合、図16に示すフローチャートにおいて、「チャネルChX」を「電源情報(電源の電力量または種別」と読み替えればよい。
また、実施の形態5において、各無線ノード1〜6が検出したセンサー値をサーバ7へ送信する動作は、図17に示すフローチャートに従って実行される。
更に、実施の形態5において、アクチュエータ18を制御する動作は、図19に示すフローチャートに従って実行される。
そして、図17に示すフローチャートおよび図19に示すフローチャートに従って無線通信が行われる場合、2つの無線ノード間の無線通信は、電源情報で指定された電力量または電源種別を有する無線ノードと行われるので、電源情報で指定された電力量または電源種別を有さない無線ノードの無駄な起動が阻止される。従って、無線通信資源の無駄な消費を抑制できる。
実施の形態5におけるその他の説明は、実施の形態1における説明と同じである。
[実施の形態6]
実施の形態6においては、無線通信資源として経路情報を用いた場合について説明する。経路情報は、各無線ノード1〜6からサーバ7(=無線ノード72)までのホップ数、各無線ノード1〜6,72のRankおよびサーバ7(=無線ノード72)のID(例えば、MACアドレス)のいずれかからなる。
実施の形態6においては、各無線ノード1〜6,72の空きリソース検出部171は、無線センサーネットワーク10における無線ノード1〜6,72のトポロジーを予め保持している。そして、トポロジーは、無線ノード1〜6,72のMACアドレスを無線ノード1〜6,72の位置に配置した構成からなる。
図28は、サーバ7までのホップ数とフレーム長との対応表を示す図である。図28を参照して、対応表TBL5は、サーバ7までのホップ数とフレーム長とを含む。サーバ7までのホップ数およびフレーム長は、相互に対応付けられる。
h1のホップ数は、18.00msecのフレーム長に対応付けられる。h2のホップ数は、18.08msecのフレーム長に対応付けられる。h3のホップ数は、18.16msecのフレーム長に対応付けられる。以下、同様にして、hxのホップ数は、18.00+(x−1)×0.08msecのフレーム長に対応付けられる。
なお、経路情報がRankからなる場合、対応表TBL5のサーバ7までのホップ数をRankの値Rxに代えた対応表TBL6が作成される。そして、値Rxは、Rx=256xによって表される。
実施の形態6においては、ウェイクアップ判定器14およびウェイクアップ制御部169は、対応表TBL1,TBL5(または対応表TBL1,TBL6)を保持している。また、ウェイクアップ判定器14およびウェイクアップ制御部169は、ブロードキャストIDを保持している。更に、ウェイクアップ判定器14は、自己が搭載された無線ノードからサーバ7(=無線ノード72)までのホップ数を保持している。
実施の形態6においては、ウェイクアップ信号WuSは、WuID1〜WuID5(p=5)からなる。WuID1〜WuID4は、ブロードキャストIDからなる。WuID5は、経路情報を示す経路IDからなる。
図29は、センサー値を送信する場合の実施の形態6における動作を説明するための図である。図29においては、無線ノード2〜4は、無線ノード1の電波範囲内に存在し、無線ノード5,72は、無線ノード1の電波範囲外に存在し、無線ノード5,72は、無線ノード4の電波範囲内に存在するものとする。また、指定されるサーバ7(=無線ノード72)までのホップ数hxは、“2”であるとする。
図29を参照して、無線ノード1の割込制御部168は、センサー値をサーバ7(=無線ノード72)へ送信する場合、サーバ7(=無線ノード72)までの経路上の所望の無線ノードをスリープ状態から起動状態へ移行させるための依頼をセンサー制御部167から受ける。そして、無線ノード1の割込制御部168は、所望の無線ノードをスリープ状態から起動状態へ移行させるためのウェイクアップ信号をブロードキャストするようにウェイクアップ制御部169に依頼する。
無線ノード1のウェイクアップ制御部169は、割込制御部168からの依頼に応じて、所望のホップ数(サーバ7までのホップ数)を割り当てるように空きリソース割当部172に依頼する。
無線ノード1の空きリソース割当部172は、ウェイクアップ制御部169からの依頼に応じて、無線センサーネットワーク10における無線ノード1〜6,72のトポロジーをリソース検出部171から取得する。
そして、無線ノード1の空きリソース割当部172は、取得したトポロジーを参照して、例えば、最小の中継回数でセンサー値をサーバ7(=無線ノード72)へ届けることができるように、指定すべきサーバ7(=無線ノード72)までのホップ数hxを選択する。無線ノード1の空きリソース割当部172は、その選択したホップ数hxをウェイクアップ制御部169へ出力する。
無線ノード1のウェイクアップ制御部169は、空きリソース割当部172からホップ数hxを受けると、対応表TBL5を参照して、その受けたホップ数hxをフレーム長FL5に変換する。また、無線ノード1のウェイクアップ制御部169は、対応表TBL1を参照して、ブロードキャストID(=ウェイクアップID)を4個のフレーム長FL1〜FL4に変換する。そうすると、無線ノード1のウェイクアップ制御部169は、フレーム長FL1〜FL5を無線通信モジュール15へ出力し、5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号を送信するように無線通信モジュール15を制御する。
無線ノード1の無線通信モジュール15は、5個のフレーム長FL1〜FL5を受けると、その受けた5個のフレーム長FL1〜FL5を有する5個のフレームからなるウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSをブロードキャストする。つまり、無線ノード1は、ウェイクアップIDと、サーバ7(=無線ノード72)までのホップ数hxとをブロードキャストする。
無線ノード2のウェイクアップ信号受信機13は、無線ノード1からウェイクアップ信号WuSを受信し、その受信したウェイクアップ信号WuSの受信電波を包絡線検波し、上述した方法によって、5個のフレーム長FL1〜FL5を検出する。そして、無線ノード2のウェイクアップ信号受信機13は、その検出した5個のフレーム長FL1〜FL5をウェイクアップ判定器14へ出力する。
無線ノード2のウェイクアップ判定器14は、ウェイクアップ信号受信機13から5個のフレーム長FL1〜FL5を受け、対応表TBL1を参照して、最初の4個のフレーム長FL1〜FL4をビット列に変換してウェイクアップID(=ブロードキャストID)を取得する。また、無線ノード2のウェイクアップ判定器14は、対応表TBL5を参照して、フレーム長FL5をホップ数hxに変換する。
そうすると、無線ノード2のウェイクアップ判定器14は、その取得したブロードキャストIDが、予め保持したウェイクアップIDに一致すると判定する。しかし、無線ノード2のウェイクアップ判定器14は、その取得したホップ数hx(=2)が、保持しているホップ数(=3)に一致しないと判定する。そして、無線ノード2のウェイクアップ判定器14は、ブロードキャストIDおよびホップ数hxを破棄する。
また、無線ノード3も、無線ノード2と同様にして、ブロードキャストIDおよびホップ数hxを破棄する。
一方、無線ノード4のウェイクアップ判定器14は、無線ノード2のウェイクアップ判定器14と同様にして、その取得したブロードキャストIDが、予め保持したウェイクアップIDに一致すると判定する。また、無線ノード4のウェイクアップ判定器14は、その取得したホップ数hx(=2)が、保持しているホップ数(=2)に一致すると判定する。
そうすると、無線ノード4のウェイクアップ判定器14は、起動信号を生成してホストシステム16へ出力する。その後、無線ノード4は、上述した動作によってスリープ状態から起動状態へ移行する。この場合、無線ノード4のウェイクアップ判定器14は、ホップ数hx(=資源情報)を用いて無線ノード4を起動させるか否かを判定する。
そして、無線ノード4は、アドレスMACadd4を含む起動通知を生成して送信し、無線通信を待ち受ける。
無線ノード1の無線通信部162は、無線ノード4から起動通知を受信すると、センサー制御部167から受けたセンサー値と、無線ノード4のMACアドレスMACadd4とを含むパケットを生成して無線通信モジュール15へ出力し、パケットを送信するように無線通信モジュール15を制御する。
そして、無線ノード1の無線通信モジュール15は、無線通信部162から受けたパケットを所望のチャネルでアンテナ12を介して送信する。無線ノード4の無線通信モジュール15は、センサー値を含むパケットを所望のチャネルで受信し、その受信したパケットを無線通信部162へ出力する。これによって、センサー値は、無線ノード1から指定されたホップ数hxを有する無線ノード4へ送信される。
このように、センサー値の送信元は、センサー値の送信先を起動させるためのウェイクアップ信号に、指定すべきホップ数hx(=サーバ7(=無線ノード72)までのホップ数)を含めて送信する。そして、センサー値の送信元は、指定したホップ数hxを有する送信先が起動すると、センサー値を送信先へ送信する。
その結果、指定したホップ数hx以外のホップ数を有する無線ノードの起動を抑制するとともに、センサー値が所望の中継回数でサーバ7(=無線ノード72)へ届けられる。従って、無線通信資源の無駄な消費を抑制できる。
なお、経路情報としてRankをウェイクアップ信号に含める場合も、同様にして、指定されたRank(=Rx)を有する任意の無線ノードが起動状態へ移行して起動通知を送信し、無線ノード1は、その起動した無線ノードへセンサー値を送信する。
その結果、指定したRank以外のRankを有する無線ノードの起動を抑制するとともに、センサー値が所望の中継回数でサーバ7(=無線ノード72)へ届けられる。従って、無線通信資源の無駄な消費を抑制できる。
また、経路情報としてサーバ7のIDをウェイクアップIDに含める場合も、同様にして、指定されたサーバ7のIDを有する任意の無線ノードが起動状態へ移行して起動通知を送信し、無線ノード1は、その起動した無線ノードへセンサー値を送信する。
その結果、指定したサーバ7以外のサーバに所属する無線ノードの起動を抑制するとともに、指定されたサーバ7へセンサー値が届けられる。従って、無線通信資源の無駄な消費を抑制できる。
図30は、実施の形態6における無線通信の動作を説明するためのフローチャートである。
図30を参照して、一連の動作が開始されると、無線ノード1は、上述した方法によって、経路情報RTx(=ホップ数hx、Rank(Rx)およびサーバ7のIDのいずれかからなる)とブロードキャストIDとを含むウェイクアップ信号WuSをブロードキャストする(ステップS71)。
無線ノード2〜4は、ウェイクアップ信号WuSを受信する(ステップS72)。そして、無線ノード2〜4は、ウェイクアップ信号WuSに含まれる経路情報RTxとブロードキャストIDとを取得する(ステップS73)。
その後、無線ノード2〜4は、ブロードキャストIDが、保持しているブロードキャストIDに一致するか否かを判定する(ステップS74)。
ステップS74において、ブロードキャストIDが、保持しているブロードキャストIDに一致すると判定されたとき、無線ノード2〜4は、経路情報RTxが、保持している経路情報に一致するか否かを更に判定する(ステップS75)。
ステップS75において、経路情報RTxが、保持している経路情報に一致すると判定されたとき、無線ノード2〜4は、起動状態へ移行し(ステップS76)、起動通知を送信する(ステップS77)。
その後、無線ノード1は、起動通知を受信したか否かを判定する(ステップS78)。
ステップS78において、起動通知を受信したと判定されたとき、無線ノード1は、センサー値を送信する(ステップS79)。
無線ノード2〜4(実際には、経路情報RTxが一致した無線ノード)は、センサー値を無線ノード1から受信する(ステップS80)。
一方、無線ノード1は、スリープ状態へ移行する(ステップS81)。
そして、ステップS74において、ブロードキャストIDが、保持しているブロードキャストIDに一致しないと判定されたとき、またはステップS75において、経路情報RTxが、保持している経路情報に一致しないと判定されたとき、またはステップS78において、起動通知を受信しなかったと判定されたとき、またはステップS81の後、一連の動作は、終了する。
実施の形態6においては、各無線ノード1〜6が検出したセンサー値をサーバ7へ送信する動作は、図30に示すフローチャートを2つの無線ノード間で繰り返し実行することによって実行される。
また、実施の形態6においては、アクチュエータ18を制御する動作は、図30に示すフローチャートを2つの無線ノード間で繰り返し実行して制御指示をサーバ7から制御対象のアクチュエータ18を備える無線ノードまで送信し、アクチュエータ18を制御した後、制御指示を送信した経路に沿ってアクチュエータ制御応答をサーバ7まで送信することによって実行される。
その結果、センサー値または制御指示は、所望の無線ノードのみを起動させて送受信され、所望の無線ノード以外の無線ノードの起動が抑制される。従って、無線通信資源の無駄な消費を抑制できる。
実施の形態6におけるその他の説明は、実施の形態1における説明と同じである。
[実施の形態7]
上述した実施の形態1〜実施の形態6において説明した無線通信の方法では、センサー値または制御指示を中継する動作が1つの無線ノードに集中し、その1つの無線ノードが過負荷状態になる可能性がある。
そこで、実施の形態7においては、負荷が1つの無線ノードに集中しないように負荷を分散させる方法について説明する。
そして、負荷は、各無線ノード1〜6に接続されている無線ノードの台数N、単位時間当たりに送受信されるパケット数、単位時間当たりに送受信されるデータの量、無線ノード1〜6の電源20の電力量、既に行われた無線通信の総時間、無線ノード1〜6の電源20の種別のいずれかからなる。そして、電源20の種別は、例えば、AC100Vからなる。即ち、電源20の種別は、各無線ノード1〜6がAC100Vに接続されていることからなる。
以下においては、各無線ノード1〜6に接続される無線ノードの台数Nを負荷とする場合を例にして負荷を分散する方法について説明する。
各無線ノード1〜6において、ホストシステム16の無線通信部162は、負荷のしきい値N_thを保持している。そして、各無線ノード1〜6において、ホストシステム16の無線通信部162は、経路制御部163を介してルーティングテーブル161を参照して、自己に接続されている無線ノードの台数N(=子ノードの台数)を検出する。そして、各無線ノード1〜6において、ホストシステム16の無線通信部162は、台数Nがしきい値N_thよりも大きいか否かを判定する。各無線ノード1〜6において、ホストシステム16の無線通信部162は、台数Nがしきい値N_thよりも大きいと判定したとき、各無線ノード1〜6が過負荷状態であると判定する。そして、各無線ノード1〜6において、ホストシステム16の無線通信部162は、自己のアドレスMACaddと、過負荷状態であることを示す過負荷情報とを含むパケットを生成して子ノードへ送信する。即ち、各無線ノード1〜6は、自己が過負荷状態であることを子ノードと共有する。
子ノードは、親ノードから過負荷情報を受信すると、自己またはサーバ7(=無線ノード72)からのホップ数を指定して親ノード以外の無線ノードを起動させ、その起動させた無線ノードに親ノードを切り替える。
図31は、負荷を分散させる方法を具体的に説明するための図である。無線ノード1〜6,72は、図31の(a)に示すトポロジー構造を構成している。無線ノード3の無線通信部162は、経路制御部163を介してルーティングテーブル161を参照して、自己に接続している無線ノード4〜6(=子ノード)の台数N(=3)を検出する。
そして、無線ノード3の無線通信部162は、台数N(=3)がしきい値N_thよりも大きいと判定し、無線ノード3が過負荷状態であると判定する。そうすると、無線ノード3の無線通信部162は、アドレスMACadd3と過負荷情報とを含むパケットを生成し、その生成したパケットを無線通信モジュール15によって無線ノード4〜6へ送信する。
無線ノード4〜6の無線通信部162は、無線ノード3からパケットを受信し、その受信したパケットに含まれるアドレスMACadd3および過負荷情報に基づいて、無線ノード3が過負荷状態であることを検知する。
そうすると、無線ノード4〜6の無線通信部162は、経路制御部163を介してルーティングテーブル161を参照して、親ノードである無線ノード3がサーバ7から“2”ホップの位置に存在することを検知し、サーバ7からのホップ数が“2”以外である“1”のホップ数を有する任意の無線ノードを起動させるように経路制御部163を介してウェイクアップ制御部169に依頼する。
そして、無線ノード4〜6のウェイクアップ制御部169は、無線通信部162からの依頼に応じて、ブロードキャストIDと、ホップ数hx(=1)と、送信元のアドレスMACaddとを含むウェイクアップ信号WuSを生成する。より具体的には、無線ノード4〜6のウェイクアップ制御部169は、対応表TBL1を参照して、ブロードキャストIDを4個のフレーム長FL1〜FL4に変換し、対応表TBL5を参照してホップ数hxをフレーム長FL5に変換し、対応表TBL1を参照して、送信元のアドレスMACaddをフレーム長FL6に変換する。なお、アドレスMACaddをフレーム長FL6に変換する場合、ウェイクアップ制御部169は、アドレスMACaddのハッシュ値を演算してアドレスMACaddを4ビットで表現し、対応表TBL1を参照して、その4ビットをフレーム長FL6に変換する。
そうすると、無線ノード4〜6のウェイクアップ制御部169は、6個のフレーム長FL1〜FL6を無線通信モジュール15へ出力し、6個のフレーム長FL1〜FL6を有する6個のフレームからなるウェイクアップ信号WuSを送信するように無線通信モジュール15を制御する。
無線ノード4〜6の無線通信モジュール15は、無線通信部162から6個のフレーム長FL1〜FL6を受け、その受けた6個のフレーム長FL1〜FL6を有する6個のフレームからなるウェイクアップ信号WuSを生成して送信する。
この場合、無線装置4〜6は、ウェイクアップ信号WuSをCSMA/CA方式で送信するので、ウェイクアップ信号WuSの衝突が抑制される。
無線ノード2は、例えば、無線ノード6から送信されたウェイクアップ信号WuSを最も早く受信し、その受信したウェイクアップ信号WuSに基づいて、実施の形態6において説明した方法によって起動状態へ移行する。そして、無線ノード2は、アドレスMACadd2を含む起動通知を送信し、無線ノード6は、起動通知を受信して親ノードを無線ノード3から無線ノード2へ切り替える(図31の(b)参照)。
従って、無線ノード3の負荷を分散できる。
ウェイクアップ信号に含める情報は、ホップ数に限らず、Rankの値Rx、ウェイクアップ信号の送信元のアドレスMACaddxおよび電源20の電力量Wpxのいずれかであってもよい。即ち、実施の形態7においては、ホップ数hx、Rankの値Rx、送信元のアドレスMACaddxおよび電源20の電力量Wpxからなる指定情報INFxをウェイクアップ信号に含める。
Rankの値Rxをウェイクアップ信号に含めた場合、値Rx以上のRankを有する任意の無線ノードが起動状態へ移行する。また、ホップ数hxをウェイクアップ信号に含めた場合、サーバ7までのホップ数がホップ数hx以下である任意の無線ノードが起動状態へ移行する。更に、送信元のアドレスMACaddxをウェイクアップ信号に含めた場合、送信されたアドレスMACaddxの無線ノードを子ノードとして有しない任意の無線ノードが起動状態へ移行する。更に、電源20の電力量Wpxをウェイクアップ信号に含めた場合、電力量Wpx以上の電力量を有する任意の無線ノードが起動状態へ移行する。
図32は、負荷を分散する動作を説明するためのフローチャートである。図32を参照して、一連の動作が開始されると、無線ノード3は、負荷を検出し(ステップS91)、その検出した負荷がしきい値以上であるか否かを判定する(ステップS92)。
ステップS92において、負荷がしきい値以上であると判定されると、無線ノード3は、自己が過負荷情報であると判定し、過負荷状態を示す過負荷情報と、過負荷状態である無線ノード3のアドレスMACadd3とを含むパケットPKT_L=[MACadd3/過負荷情報]を生成して送信する(ステップS93)。
無線ノード4〜6は、パケットPKT_L=[MACadd3/過負荷情報]を受信し(ステップS94)、その受信したパケットPKT_LのMACadd3および過負荷情報に基づいて無線ノード3が過負荷状態であることを検知する(ステップS95)。
そうすると、無線ノード4〜6は、ブロードキャストIDと指定情報INFと自己のアドレスMACaddとを含むウェイクアップ信号WuSを生成し、その生成したウェイクアップ信号WuSをCSMA/CA方式に従って送信する(ステップS96)。より具体的には、無線ノード4〜6は、対応表TBL1を参照してブロードキャストIDをフレーム長FL1〜FL4に変換し、対応表TBL5を参照して、指定情報INFをフレーム長FL5に変換し、対応表TBL1を参照してアドレスMACaddをフレーム長FL6に変換し、その変換した6個のフレーム長FL1〜FL6を有する6個のフレームをウェイクアップ信号WuSとして生成し、その生成したウェイクアップ信号WuSをCSMA/CA方式に従って送信する。
無線ノード2は、無線ノード4〜6のいずれかからウェイクアップ信号WuSを受信する(ステップS97)。そして、無線ノード2は、ウェイクアップ信号WuSに含まれる指定情報INFとブロードキャストIDとアドレスMACaddとを取得する(ステップS98)。より具体的には、無線ノード2は、ウェイクアップ信号WuSの受信電波を包絡線検波し、上述したように6個のフレーム長FL1〜FL6を検出する。そして、無線ノード3は、対応表TBL1を参照してフレーム長FL1〜FL4をブロードキャストIDに変換し、対応表TBL5を参照してフレーム長FL5を指定情報INFに変換し、対応表TBL1を参照してフレーム長FL6をアドレスMACaddに変換する。
そうすると、無線ノード2は、ブロードキャストIDが、保持しているブロードキャストIDに一致するか否かを判定する(ステップS99)。
ステップS99において、ブロードキャストIDが、保持しているブロードキャストIDに一致すると判定されたとき、無線ノード2は、保持している情報が指定情報INFを満たすか否かを更に判定する(ステップS100)。
より具体的には、指定情報INFがRankの値Rxからなる場合、無線ノード2は、無線ノード2のRankが値Rx以上であれば、保持している情報が指定情報INFを満たすと判定し、無線ノード2のRankが値Rxよりも小さければ、保持している情報が指定情報INFを満たさないと判定する。また、指定情報INFがホップ数hxからなる場合、無線ノード2は、無線ノード2からサーバ7までのホップ数がホップ数hx以下であれば、保持している情報が指定情報INFを満たすと判定し、無線ノード2からサーバ7までのホップ数がホップ数hxよりも大きければ、保持している情報が指定情報INFを満たさないと判定する。更に、指定情報INFが送信元のアドレスMACaddxからなる場合、無線ノード2は、自己の子ノードのアドレスがアドレスMACaddxと相違すれば、保持している情報が指定情報INFを満たすと判定し、自己の子ノードのアドレスがアドレスMACaddxと一致すれば、保持している情報が指定情報INFを満たさないと判定する。更に、指定情報INFが電源20の電力量Wpxからなる場合、無線ノード2は、自己の電源20の電力量が電力量Wpx以上であれば、保持している情報が指定情報INFを満たすと判定し、自己の電源20の電力量が電力量Wpxよりも少なければ、保持している情報が指定情報INFを満たさないと判定する。
ステップS100において、保持している情報が指定情報INFを満たすと判定されたとき、無線ノード2は、起動状態へ移行し(ステップS101)、ウェイクアップ信号WuSの送信元のアドレスMACaddを含む起動通知を送信する(ステップS102)。
その後、無線ノード4〜6は、起動通知を受信し(ステップS103)、起動通知に含まれるアドレスMACaddに基づいて起動通知の宛先が自己であるか否かを判定する(ステップS104)。
ステップS104においては、起動通知の宛先が自己であると判定されたとき、無線ノード4〜6のいずれかは、起動した無線ノードに親ノードを切り替える(ステップS105)。
例えば、無線ノード4,5の各々は、ステップS104において、起動通知の宛先が自己でないと判定し、無線ノード6は、ステップS104において、起動通知の宛先が自己であると判定する。そして、無線ノード6は、ステップS105において、起動した無線ノード2に親ノードを切り替える。
そして、ステップS92において、負荷がしきい値よりも小さいと判定されたとき、またはステップS99において、ブロードキャストIDが、保持しているブロードキャストIDに一致しないと判定されたとき、またはステップS100において、保持している情報が指定情報INFを満たさないと判定されたとき、または、ステップS104において、起動通知の宛先が自己でないと判定されたとき、またはステップS105の後、一連の動作は、終了する。
なお、負荷として、単位時間当たりに送受信されるパケット数、単位時間当たりに送受信されるデータの量、電源20の電力量、既に行われた無線通信の総時間、および電源20の種別のいずれかかが用いられた場合も、負荷を分散する動作は、図32に示すフローチャートに従って実行される。
そして、負荷が単位時間当たりに送受信されるパケット数または単位時間当たりに送受信されるデータの量からなる場合、ステップS92において、単位時間当たりに送受信されるパケット数または単位時間当たりに送受信されるデータの量がしきい値以上である否かが判定される。
また、負荷が電源20の電力量からなる場合、ステップS92において、電力量がしきい値以下であるか否かが判定される。そして、電力量がしきい値以下であると判定されたとき、過負荷状態であると判定される。一方、電力量がしきい値よりも大きいと判定されたとき、過負荷状態でないと判定される。
更に、負荷が既に行われた無線通信の総時間からなる場合、ステップS92において、既に行われた無線通信の総時間がしきい値(=360秒)以上であるか否かが判定される。そして、既に行われた無線通信の総時間がしきい値(=360秒)以上であると判定されたとき、過負荷状態であると判定される。一方、既に行われた無線通信の総時間がしきい値(=360秒)よりも小さいと判定されたとき、過負荷状態でないと判定される。
更に、負荷が電源の種別からなる場合、ステップS92において、電源の種別が乾電池であるか否かが判定される。そして、電源の種別が乾電池であると判定されたとき、過負荷状態であると判定される。一方、電源の種別が乾電池でないと判定されたとき、過負荷状態でないと判定される。
このように、無線ノード3が過負荷情報であるとき、無線ノード3を親ノードとする無線ノード4〜6は、無線ノード3以外の無線ノードを指定するための指定情報INFを含むウェイクアップ信号WuSを送信し、その指定情報INFを満たす任意の無線ノード2が起動すると、その起動した無線ノード2に親ノードを切り替える。
その結果、元の親ノードである無線ノード3の負荷が分散される。無線ノード3の過負荷状態が継続すると、無線ノード3を経由する経路を用いてセンサー値または制御指示を送受信するときの時間が長時間になり、通信時間および電波資源を占有するので、無線通信資源を無駄に消費する。しかし、実施の形態7においては、上述したように、過負荷状態である無線ノードの負荷を分散するので、センサー値または制御指示は、遅延を抑制して送受信される。従って、無線通信資源の無駄な消費を抑制できる。
実施の形態7におけるその他の説明は、実施の形態1における説明と同じである。
ウェイクアップIDとしてのマルチキャストIDの実施例について説明する。LocalマルチキャストIDを用いる例としては、複数システムが同時に運用されている例、および待機系ネットワークの例が想定される。また、ParentマルチキャストIDおよびChildマルチキャストIDを用いるのが便利な場合もある。
図33は、複数のシステムが同時に運用される例を示す図である。図33を参照して、白四角は、サーバを表し、白三角および白丸は、無線ノードを表す。サーバSv1,Sv2の各々は、サーバ7と同じ構成からなり、無線ノードN1〜N14の各々は、無線ノード1〜6と同じ構成からなる。
無線ノードN1〜N7は、図11に示すフローチャートに従ってサーバSv1をrootとするツリー構造を形成する。無線ノードN8〜N14は、図11に示すフローチャートに従ってサーバSv2をrootとするツリー構造を形成する。
即ち、サーバSv1および無線ノードN1〜N7は、無線センサーネットワークWSN1を構成し、サーバSv2および無線ノードN8〜N14は、無線センサーネットワークWSN2を構成する。
この場合、LocalマルチキャストIDを用いることによって無線センサーネットワークWSN1に属する無線ノードN1〜N7のみを起動させることができる。即ち、サーバSv1は、無線センサーネットワークWSN1を一意に特定するESSID、PANIDおよびRPL instance IDのいずれかを用いてLocalマルチキャストIDを生成し、その生成したLocalマルチキャストIDを対応表TBL1を参照してフレーム長に変換し、その変換したフレーム長を有するフレームをウェイクアップ信号としてブロードキャストする。
これによって、無線ノードN8〜N14は、サーバSv1から送信されたウェイクアップ信号を受信しても起動状態へ移行せず、無線ノードN1〜N7は、サーバSv1から送信されたウェイクアップ信号を受信して起動状態へ移行する。
無線センサーネットワークWSN2に属する無線ノードN8〜N14のみを起動させる場合も同様に行う。
図34は、待機系ネットワークの例を示す図である。図34を参照して、白四角は、サーバを表し、白三角および白丸は、無線ノードを表す。サーバSv1は、サーバ7と同じ構成からなり、無線ノードN1〜N13の各々は、無線ノード1〜6と同じ構成からなる。
サーバSv1および無線ノードN1〜N13は、図11に示すフローチャートを実行してサーバSv1をrootとするツリー構造を形成している。そして、無線ノードN1〜N8は、主系の無線ノードであり、無線ノードN9〜N13は、待機系の無線ノードである。
サーバSv1は、主系の無線ノードN1〜N8と、待機系の無線ノードN9〜N13とを収容する。そして、無線ノードN1〜N8における使用チャネルは、無線ノードN9〜N13における使用チャネルと異なる。また、無線ノードN1〜N13の各々は、主系のLocalマルチキャストIDと待機系のLocalマルチキャストIDとを予め保持している。更に、主系の無線ノードN1〜N8は、主系のLocalマルチキャストIDで起動し、待機系の無線ノードN9〜N13は、待機系のLocalマルチキャストIDで起動する。
そして、センサー値の収集には、主系の無線ノードN1〜N8を使用し、トポロジーの構築/維持には、待機系の無線ノードN9〜N13を使用する。
無線ノードN8がセンサー値をサーバSv1へ送信する場合、無線ノードN8と無線ノードN5との間で通信障害が発生した場合、無線ノードN8は、待機系のLocalマルチキャストIDを生成し、その生成したLocalマルチキャストIDを対応表TBL1を参照してフレーム長に変換し、その変換したフレーム長を有するフレームを送信して待機系の無線ノードN9〜N13を起動状態へ移行させる。その後、無線ノードN8は、無線ノードN5に代えて無線ノードN13へセンサー値を送信する。これによって、センサー値は、迅速にサーバSv1へ届く。
従って、主系のLocalマルチキャストIDおよび待機系のLocalマルチキャストIDを用いた場合、主系の無線ノードN1〜N8から待機系の無線ノードN9〜N13への切り替えを迅速に行うことができ、無線センサーネットワーク10の信頼性を向上できる。
図35は、ParentマルチキャストIDおよびChildマルチキャストIDを用いる例を示す図である。図35を参照して、白四角は、サーバを表し、白丸は、無線ノードを表す。サーバSv1は、サーバ7と同じ構成からなり、無線ノードN1〜N12の各々は、無線ノード1〜6と同じ構成からなる。
サーバSv1および無線ノードN1〜N12は、図11に示すフローチャートを実行してサーバSv1をrootとするツリー構造を構築している。
無線ノードN6は、自己の親ノードである無線ノードN1〜N3をまとめて起動させる場合、無線ノードN1〜N3をまとめ起動させるためのParentマルチキャストIDをルーティングテーブル161に基づいて生成する。より具体的には、無線ノードN6は、ルーティングテーブル161において、自己のRankよりも“256”だけ小さいRankを有する送信先によって示される全ての無線ノードN1〜N3を検出し、その検出した無線ノードN1〜N3のMACアドレスMACaddN1〜MACaddN3のハッシュ値を演算して無線ノードN1〜N3をまとめ起動させるためのParentマルチキャストIDを生成する。そして、無線ノードN6は、その生成したParentマルチキャストIDを対応表TBL1を参照してフレーム長に変換し、その変換したフレーム長を有するフレームをウェイクアップ信号として送信する。これによって、無線ノードN6は、無線ノードN1〜N3をまとめて起動でき、無線ノードN1〜N3のうちの任意の1つを経由してサーバSv1へ制御パケットDAOを送信できる。従って、制御パケットDAOをサーバ7へ送信するときの経路選択の自由度を大きくできる。図36においては、無線ノード4は、3個の無線ノードN1〜N3を親ノードとして有することを示すが、図36に示すトポロジーは、サーバSv1までの経路を確立する過程において形成されるものであり、最終的に構築されるトポロジーではない。また、RPLに従って構築されたトポロジーにおいては、各無線ノードの親ノードは、本来、1個であるが、親ノードの候補を含めると、ParentマルチキャストIDを用いて複数の親ノードを指定できる。従って、ParentマルチキャストIDを送信して複数の親ノードのいずれかを起動させ、その起動させた無線ノードへセンサー値を送信することができる。
一方、無線ノードN6は、自己の子ノードである無線ノードN9〜N12をまとめ起動させる場合、無線ノードN9〜N12をまとめ起動させるためのChildマルチキャストIDをルーティングテーブル161に基づいて生成する。ChildマルチキャストIDをルーティングテーブル161に基づいて生成するときの具体的な動作は、ParentマルチキャストIDをルーティングテーブル161に基づいて生成するときの具体的な動作と同じである。
無線ノードN6は、ChildマルチキャストIDを生成すると、その生成したChildマルチキャストIDを対応表TBL1を参照してフレーム長に変換し、その変換したフレーム長を有するフレームをウェイクアップ信号として送信する。これによって、無線ノードN6は、無線ノードN9〜N12をまとめて起動でき、無線ノードN9〜N12のうちの任意の1つを経由して制御指示を送信できる。従って、制御指示を無線ノードへ送信するときの経路選択の自由度を大きくできる。
図36は、センサー値を転送するときに親ノードを選択する例を示す図である。図36を参照して、白四角は、サーバを表し、白丸は、無線ノードを表す。サーバSv1は、サーバ7と同じ構成からなり、無線ノードN1〜N8の各々は、無線ノード1〜6と同じ構成からなる。
無線ノードN1〜N8の各々は、ParentマルチキャストIDを保持している。無線ノードN6は、本来の親ノードである無線ノードN2を起動できなかった場合、ParentマルチキャストIDを送信し、いずれかの親ノード(無線ノードN1〜N3のいずれか)を起動させ、起動した親ノードにセンサー値を送信する。
従って、信頼性の高いリンクを代替経路として使用できる。
図37においても、親ノードの候補を含めると、ParentマルチキャストIDを用いて複数の親ノードを指定できるので、ParentマルチキャストIDを送信して無線ノードN1〜N3のいずれかを起動させ、その起動させた無線ノードへセンサー値を送信できる。
図37は、ChildマルチキャストIDを用いる例を示す図である。図37を参照して、白四角は、サーバを表し、白丸は、無線ノードを表す。サーバSv1は、サーバ7と同じ構成からなり、無線ノードN1〜N9の各々は、無線ノード1〜6と同じ構成からなる。
無線ノードN5は、子ノードである無線ノードN6〜N9から一斉にセンサー値を収集する場合、ChildマルチキャストIDを用いて無線ノードN6〜N9を一斉に起動させ、その後、無線ノードN6〜N9へセンサー値の送信要求を送信し、無線ノードN6〜N9からセンサー値を受信する。
従って、単一のウェイクアップ信号によって子ノードのみを起動できる。
このように、LocalマルチキャストID、ParentマルチキャストIDおよびChildマルチキャストIDを用いることによって、上述した実施の形態1〜実施の形態7における動作を迅速に実行できる。
上述した実施の形態1〜実施の形態7においては、ウェイクアップ信号に含まれるウェイクアップIDは、ブロードキャストIDまたは1つのrootノードに繋がる複数の無線ノードを示すIDからなる。
従って、LocalマルチキャストID、ParentマルチキャストIDおよびChildマルチキャストIDをウェイクアップIDとして用いることによって、ウェイクアップ信号を迅速に生成できる。また、LocalマルチキャストID、ParentマルチキャストIDおよびChildマルチキャストIDをウェイクアップIDとして用いることによって、より多くの無線ノードの中から起動させる無線ノードを任意に選択できるので、サーバ7により近い無線ノードを起動させてセンサー値を送信でき、または制御対象のアクチュエータ18を搭載した無線ノードにより近い無線ノードを起動させて制御指示を送信できる。
よって、LocalマルチキャストID、ParentマルチキャストIDおよびChildマルチキャストIDを用いることによって、上述した実施の形態1〜実施の形態7における動作を迅速に実行できる。
上記においては、ウェイクアップ信号は、フレーム長によって表されると説明したが、この発明の実施の形態においては、これに限らず。ウェイクアップ信号は、ビット列によって表されていてもよい。
また、上記においては、ウェイクアップIDと、チャネルChX等の資源情報とをフレーム長によって別のフレームに載せて送信すると説明したが、この発明の実施の形態においては、これに限らず、ウェイクアップIDと、チャネルChX等の資源情報とをフレーム長によって1つのフレームに載せて送信してもよい。
更に、上記においては、センサー17およびアクチュエータ18は、スリープ状態においては電力を供給されないと説明したが、この発明の実施の形態においては、これに限らず、スリープ状態において、電力をセンサー17およびアクチュエータ18へ供給するようにしてもよい。これは、常時、監視が必要なセンサー、または、常時、電力を必要とするアクチュエータが存在するからである。
常時、センサー17へ電力を供給する場合、センサー17から割込制御部168に対して割込みが発生する。そして、センサー17からの割込みが発生した場合、ホストシステム16を起動状態へ移行後に、センサー制御部167がセンサー値を読み出し、無線通信モジュール15を介してセンサー値を送信する。
更に、上記においては、無線ノード1〜6の各々は、センサー17およびアクチュエータ18を備えると説明したが、この発明の実施の形態においては、これに限らず、無線ノード1〜6の各々は、センサー17のみを備えていてもよい。
更に、上記においては、無線ノード1〜6,72は、図11に示すフローチャートに従って無線ノード1〜6からサーバ7(=無線ノード72)までの経路を確立した後に、上述した実施の形態1〜実施の形態7における動作を実行すると説明したが、この発明の実施の形態においては、これに限らず、無線ノード1〜6からサーバ7(=無線ノード72)までの経路は、予め無線ノード1〜6,72に格納されていてもよい。
更に、上記においては、無線センサーネットワークについて説明したが、この発明の実施の形態においては、これに限らず、無線センサーネットワーク以外のネットワークを構成する無線装置が実施の形態1〜実施の形態7における動作を実行してもよい。そして、実施の形態1〜実施の形態7においては、無線通信資源を示す資源情報を含むウェイクアップ信号WuSを送信して任意の無線ノードを起動させることについて説明した。
従って、この発明の実施の形態による無線装置Aは、無線通信の開始要求に応じて任意の無線装置を起動させるためのウェイクアップIDと任意の無線装置の起動判定に使用する無線通信資源を示す資源情報とを含むウェイクアップ信号を生成するウェイクアップ信号生成手段と、ウェイクアップ信号生成手段によって生成されたウェイクアップ信号を送信する送信手段とを備えていればよい。
また、この発明の実施の形態による無線装置Bは、ウェイクアップ信号を送信する無線装置Aからウェイクアップ信号を受信する受信手段と、受信手段によって受信されたウェイクアップ信号に含まれる資源情報を用いて当該無線装置の起動判定を行う判定手段とを備えていればよい。
更に、この発明の実施の形態による無線ネットワークは、無線装置Aと、無線装置Bとを備えていればよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。