(57)【要約】【課題】起動用無線信号の伝播範囲内に配置されるセンサノード同士での重複が生じないように起動用ＩＤを自律的に設定するセンサノードを提供する。【解決手段】第１の起動用ＩＤが記憶される第１の記憶部１１４と、第２の記憶部１２４に記憶されている第２の起動用ＩＤと、第１の起動用ＩＤとの間に重複があれば、重複が解消するように第１の起動用ＩＤを更新する更新部１２１と、電源１０２からセンサ主要部１２０に対する電力供給を制御するスイッチ回路１０３と、隣接するセンサノードのいずれかから第３の起動用ＩＤを包含する無線信号を受信する受信部１１１と、無線信号を電力に変換する整流器１１５と、整流器１１５の出力電力に基づき第３の起動用ＩＤを検出する検出部１１２と、第３の起動用ＩＤが第１の起動用ＩＤに一致すれば、スイッチ回路１０３を制御し、電力供給を開始させる制御部１１７とを具備する。【選択図】      図１
2010050909.tif 000002
【特許請求の範囲】
【請求項１】
センサネットワークを構成するセンサノードにおいて、
電源と、
（ａ）センサ素子を用いて情報を取得するセンシング処理及び（ｂ）前記センシング処理によって得られた情報をサーバに向けて送信するマルチホップルーティング処理を行うセンサ部と、
第１の起動用ＩＤが記憶される第１の記憶部と、
隣接するセンサノードのいずれかを通信相手として無線信号を送信する第１の送信部と、
前記通信相手から第２の起動用ＩＤを格納する第１のメッセージを受信する第１の受信部と、
前記第２の起動用ＩＤが逐次記憶される第２の記憶部と、
前記通信相手に第２のメッセージを送信する第２の送信部と、
前記第２の記憶部に記憶されている第２の起動用ＩＤと、前記第１の起動用ＩＤとの間に重複があれば、当該重複が解消するように第１の起動用ＩＤを更新する更新部と、
前記電源から前記センサ部、前記第１の送信部、前記第２の記憶部、前記第２の送信部、前記第１の受信部及び前記更新部に対する電力供給を制御するスイッチ回路と、
前記隣接するセンサノードのいずれかから第３の起動用ＩＤを包含する無線信号を受信する第２の受信部と、
前記無線信号を電力に変換する整流器と、
前記前記整流器の出力電力に基づき前記第３の起動用ＩＤを検出する検出部と、
前記第３の起動用ＩＤが前記第１の起動用ＩＤに一致すれば、前記電力を利用して前記スイッチ回路を制御し、前記電力供給を開始させる制御部と
を具備することを特徴とするセンサノード。
【請求項２】
前記第１のメッセージに格納される第２の起動用ＩＤは、前記通信相手に設定される第４の起動用ＩＤと、当該通信相手に隣接するセンサノードの各々に設定される第５の起動用ＩＤを含むことを特徴とする請求項１記載のセンサノード。
【請求項３】
前記更新部は、更に、前記第２の記憶部に記憶されている第２の起動用ＩＤの間に重複があれば、当該重複が解消するように第２の起動用ＩＤを更新させるための第３のメッセージを前記隣接するセンサノードのうち当該重複が生じるセンサノードに送信することを特徴とする請求項１記載のセンサノード。
【請求項４】
前記第２の送信部は、前記第１の起動用ＩＤが更新部によって更新されると、更新後の第１の起動用ＩＤを通知する第４のメッセージを前記隣接するセンサノードに送信し、前記第２の記憶部に記憶されている第２の起動用ＩＤが前記第１のメッセージに基づき更新されると、更新後の第２の起動用ＩＤを通知する第５のメッセージを前記隣接するセンサノードに送信することを特徴とする請求項１記載のセンサノード。
【請求項５】
前記第１の送信部が前記通信相手に前記無線信号を送信し、前記第１の受信部が当該通信相手から前記第１のメッセージを受信したのち、前記センサ部が前記第２の送信部を利用して前記マルチホップルーティング処理を行うことを特徴とする請求項１記載のセンサノード。
【請求項６】
前記更新部は、前記第２の起動用ＩＤの数が使用可能な起動用ＩＤの数を超える場合には、前記第１の起動用ＩＤの更新を省略することを特徴とする請求項１記載のセンサノード。
【請求項７】
前記更新部は、前記センサネットワークを構成するセンサノードの各々に設定される優先度に従って、前記第１の起動用ＩＤの更新を実行／省略することを特徴とする請求項１記載のセンサノード。
【請求項８】
前記センサ部が（ｃ）通信用アドレスを自律的に設定するアドレス設定処理を更に行う場合には、前記第１の送信部が前記通信相手に前記無線信号を送信し、前記第１の受信部が当該通信相手から前記第１のメッセージを受信したのち、当該アドレス設定処理が前記第２の送信部を利用して行われることを特徴とする請求項１記載のセンサノード。
【請求項９】
センサネットワークを構成するセンサノードの起動用ＩＤの自律設定方法において、
隣接するセンサノードのいずれかを通信相手として無線信号を送信することと、
前記通信相手から第１の起動用ＩＤを格納するメッセージを受信することと、
前記第１の起動用ＩＤを第１の記憶部に逐次記憶させることと、
前記第１の記憶部に記憶されている第１の起動用ＩＤと、第２の記憶部に記憶されている第２の起動用ＩＤとの間に重複があれば、当該重複が解消するように第２の起動用ＩＤを更新することと
を具備することを特徴とするセンサノードの起動用ＩＤの自律設定方法。
【請求項１０】
センサネットワークを構成するセンサノードの起動用ＩＤの自律設定プログラムにおいて、
コンピュータを
隣接するセンサノードのいずれかを通信相手として無線信号を送信する手段、
前記通信相手から第１の起動用ＩＤを格納するメッセージを受信する手段、
前記第１の起動用ＩＤを第１の記憶部に逐次記憶させる手段、
前記第１の記憶部に記憶されている第１の起動用ＩＤと、第２の記憶部に記憶されている第２の起動用ＩＤとの間に重複があれば、当該重複が解消するように第２の起動用ＩＤを更新する手段
として機能させるためのセンサノードの起動用ＩＤの自律設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサネットワークに使用されマルチホップルーティング処理を行うセンサノード及びこれの起動用ＩＤの自律的設定方法に関する。
【背景技術】
【０００２】
アドホックネットワークの一種であるセンサネットワークは、センシング処理及びルーティング処理を行う複数のセンサノード（無線センサ装置）により構築される。即ち、センサネットワークでは複数のセンサノードが個々にセンシング処理を行って得た温度や照度などのデータを互いに連携して順次転送することにより目的の機器（例えばサーバ）に送信（マルチホップルーティング処理）し、上記データを当該サーバが収集することにより複雑な状況や環境が把握可能となる。マルチホップルーティング処理によれば、各センサノードがサーバと直接的に無線通信を行う必要が無いので、より広範にセンサノードを配置できる。マルチホップルーティング処理を実現するための具体的アルゴリズムはＩＥＴＦ  ＭＡＮＥＴ  ＷＧ等において議論されており、例えばＤＳＲ（Dynamic Source Routing）及びＯＬＳＲ（Optimized Link State Routing）等が知られている。
【０００３】
しかしながら、広範にセンサノードを配置すれば、個々のセンサノードのメンテナンスが煩雑になる。具体的には、センサノードを例えば大規模な農場において構築した場合に、個々のセンサノードのバッテリを頻繁に交換することは、管理者にとって容易な作業ではない。従来、センサノードの消費電力を低減してバッテリの消耗を抑えるために、センサノードの電源制御が試みられている。
【０００４】
上記センサノードの電源制御において、高感度整流器が利用されることがある。高感度整流器は、アンテナによって受信された無線信号を整流し、電力に変換する。上記電力は、センサノードの電源制御に利用できる。例えば、センサノードがデータを送信する前に起動用の無線信号（以下、単に起動用無線信号と称する）を通信相手のセンサノードに送信するようにしておけば、通信相手のセンサノードは上記起動用無線信号を高感度整流器によって変換した電力を用いて電源制御することができる。即ち、通信相手のセンサノードは高感度整流器及び起動用無線信号の受信部以外の構成要素（例えば、ＣＰＵ等）への電力供給を平常時には停止しておき、起動用無線信号を受信すると上記電力供給を再開する（起動する）といった電源制御が可能となる。高感度整流器は待機電力が非常に小さいので、上記電源制御によればセンサノードの低消費電力化が可能となる。
【０００５】
尚、上記高感度整流器を用いたセンサノードの電源制御において、高感度整流器が整流を行う起動用無線信号に区別が無い点に注意を要する。例えば、あるセンサノードが通信相手のセンサノードに対して起動用無線信号を送信した場合に、当該通信相手以外のセンサノードにも起動用無線信号が伝播することがある。各センサノードにおいて受信された起動用無線信号は区別無く電力に変換されてしまうため、通信相手以外のセンサノードが無駄に起動してしまうおそれがある。
【０００６】
そこで、各センサノードにＩＤ（以下、単に起動用ＩＤと称する）を付与し、当該起動用ＩＤを上記電源制御に組み合わせて利用することがある。即ち、上記起動用無線信号に起動用ＩＤを包含させるようにしておき、各センサノードは受信した起動用無線信号に包含された起動用ＩＤを検出用回路によって検出し、当該検出された起動用ＩＤと自ノードに付与された起動用ＩＤとが一致する場合に、前述した電源制御を行うようにする。高感度整流器及び起動用ＩＤを利用した電源制御によれば、通信（特に、ルーティング処理における通信）に必要でないセンサノードの無駄な起動を回避できる。
【０００７】
各センサノードの無線伝播範囲内に配置されたセンサノードの間で起動用ＩＤが重複すると前述したセンサノードの無駄な起動が生じるため、上記重複を回避することが望ましい。また、起動用ＩＤの検出回路の規模の増大に伴って当該検出回路の消費電力が増大するため、現実的に使用可能な起動用ＩＤは数ビット程度に限られる。従って、限りある起動用ＩＤを各センサノードに対して効率的に付与することが重要となる。
【０００８】
起動用ＩＤを付与する手法の１つとして、センサネットワークの管理者が当該センサネットワークを構成する個々のセンサノードに起動用ＩＤを直接的に付与する手法が挙げられる。しかしながら、センサネットワークの規模が大きく（センサノードの数が多く）なるほど管理者の負担が増大し、また、新たなセンサノードの追加に柔軟に対応できないため現実的でない。従って、センサネットワークを構成する各センサノードが起動用ＩＤを自律的に設定することが望ましい。
【０００９】
アドホックネットワークにおいて、各ノードの情報を自律的に設定するための手法は数多く提案されている。特許文献１には、局所解に陥ることなく、隠れ端末問題の生じない周波数配置を自律的に設定することを目的とする自律分散周波数割当方法が記載されている。特許文献２には、アドホックネットワークにおいて通信アドレスを自律的に設定することを目的とするアドレス設定方法が記載されている。
【特許文献１】特開２００７−２３５８２８号公報
【特許文献２】特開２００４−１４６９８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
後述するように、センサノードの起動用ＩＤの設定における制約条件と、周波数割当及びアドレス設定における制約条件とは異なる。従って、特許文献１記載の自律分散周波数割当方法及び特許文献２記載のアドレス設定方法は、センサノードの起動用ＩＤの自律的設定方法として流用できない。
【００１１】
特許文献１記載の自律分散周波数割当方法は、衝突検知が可能な周波数との重複を許容し、衝突検知が不可能な周波数との重複を禁止したうえで周波数割当を行う。また、特許文献２記載のアドレス設定方法は、アドホックネットワーク全体において通信アドレスの重複を禁止したうえでアドレス設定を行う。一方、センサノードの起動用ＩＤの設定において、各センサノードの起動用無線信号の伝播範囲内に配置されるセンサノード同士での起動用ＩＤの重複は禁止されるが、当該条件が満たされていればセンサネットワーク全体での起動用ＩＤの重複は許容される。
【００１２】
従って、本発明は起動用無線信号の伝播範囲内に配置されるセンサノード同士での重複が生じないように起動用ＩＤを自律的に設定するセンサノードを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様に係るセンサノードは、センサネットワークを構成するセンサノードにおいて、電源と、（ａ）センサ素子を用いて情報を取得するセンシング処理及び（ｂ）前記センシング処理によって得られた情報をサーバに向けて送信するマルチホップルーティング処理を行うセンサ部と、第１の起動用ＩＤが記憶される第１の記憶部と、隣接するセンサノードのいずれかを通信相手として無線信号を送信する第１の送信部と、前記通信相手から第２の起動用ＩＤを格納する第１のメッセージを受信する第１の受信部と、前記第２の起動用ＩＤが逐次記憶される第２の記憶部と、前記通信相手に第２のメッセージを送信する第２の送信部と、前記第２の記憶部に記憶されている第２の起動用ＩＤと、前記第１の起動用ＩＤとの間に重複があれば、当該重複が解消するように第１の起動用ＩＤを更新する更新部と、前記電源から前記センサ部、前記第１の送信部、前記第２の記憶部、前記第２の送信部、前記第１の受信部及び前記更新部に対する電力供給を制御するスイッチ回路と、前記隣接するセンサノードのいずれかから第３の起動用ＩＤを包含する無線信号を受信する第２の受信部と、前記無線信号を電力に変換する整流器と、前記前記整流器の出力電力に基づき前記第３の起動用ＩＤを検出する検出部と、前記第３の起動用ＩＤが前記第１の起動用ＩＤに一致すれば、前記電力を利用して前記スイッチ回路を制御し、前記電力供給を開始させる制御部とを具備する。
【発明の効果】
【００１４】
本発明によれば、起動用無線信号の伝播範囲内に配置されるセンサノード同士での重複が生じないように起動用ＩＤを自律的に設定するセンサノードを提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明の実施形態について説明する。
【００１６】
（第１の実施形態）  
図１に示すように、本発明の第１の実施形態に係るセンサノード１００は、アンテナ１０１、主電源１０２、スイッチ回路１０３、起動制御部１１０及びセンサ主要部１２０を有する。センサノード１００は、例えば無線ＬＡＮを利用して他のセンサノードと無線通信を行う。
【００１７】
アンテナ１０１は、他のセンサノードから送信された後述する起動用無線信号及び通信用無線信号を受信したり、他のセンサノードへ向けて起動用無線信号及び通信用無線信号を送信したりする。本実施例では起動用無線と通信用無線で同一の周波数帯を利用する形態について説明するが、起動用無線と通信用無線で異なる周波数帯を利用する場合は、起動用無線用のアンテナと通信用無線用のアンテナの2つを備える構成でも適用できる。
【００１８】
主電源１０２は、例えばバッテリであり、起動制御部１１０への電力供給を行うと共に、スイッチ回路１０３を介してセンサ主要部１２０への電力供給を選択的に行う。スイッチ回路１０３は、起動制御部１１０によって制御され、主電源１０２からセンサ主要部１２０への電力供給をＯＮ／ＯＦＦする。
【００１９】
以降、主電源１０２からセンサ主要部１２０への電力供給が行われている状態を起動状態または電源ＯＮ状態と称し、電力供給が行われていない状態を休止状態または電源ＯＦＦ状態と称する。起動制御部１１０の消費電力はセンサ主要部１２０の消費電力に比べて小さいため、センサノード１００の休止状態における消費電力は、起動状態における消費電力に比べて小さく抑えられる。
【００２０】
起動制御部１１０は、起動用無線信号受信部１１１、起動用ＩＤ検出部１１２、起動判定部１１３、第２のメモリ１１４、高感度整流器１１５、タイマ部１１６及び電源制御部１１７を含む。センサ主要部１２０は、ＣＰＵ（Central Processing Unit）１２１、起動用無線信号送信部１２２、通信用無線信号送受信部１２３、第１のメモリ１２４、ディスク１２５及びセンサ素子１２６を含む。
【００２１】
起動用無線信号受信部１１１は、アンテナ１０１によって受信された起動用無線信号を高感度整流器１１５に入力する。高感度整流器１１５は、起動用無線信号受信部１１１から入力される起動用無線信号を整流し、電力に変換して起動用ＩＤ検出部１１２に入力する。
【００２２】
起動用ＩＤ検出部１１２は、高感度整流器１１５からの出力電力の電位に基づき上記起動用無線信号に包含される起動用ＩＤを検出する。起動用ＩＤ検出部１１２は、検出した起動用ＩＤを起動判定部１１３に入力する。
【００２３】
起動判定部１１３は、第２のメモリ１１４から自ノードの起動が必要となる起動用ＩＤを読み出し、起動用ＩＤ検出部１１２から入力される起動用ＩＤと照合する。起動判定部１１３は、両起動用ＩＤが一致すれば、電源制御部１１７に対し主電源１０２から供給されている電力を有効にさせる。一方、起動判定部１１３は、両起動用ＩＤが一致しなければ、電源制御部１１７に対し主電源１０２から供給されている電力を無効にさせる。電源制御部１１７は、後述する起動判定部１１３によって上記電力を有効にされた場合には、当該電力を制御信号として利用してスイッチ回路１０３を制御し、センサノード１００を起動状態に遷移させる。
【００２４】
ここで、自ノードの起動が必要となる起動用ＩＤを説明する。当該起動用ＩＤは２つの類型に大別できる。一方は各センサノード１００に１つずつ設定される起動用ＩＤ（以下、単に個別起動ＩＤと称する）であり、他方は全てのセンサノード１００に共通に設定される起動用ＩＤ（以下、単に全起動ＩＤと称する）である。例えば、起動用ＩＤが４ビットで表現される情報であれば、全起動用ＩＤとして１種類が使用され、個別起動ＩＤとして残りの１５種類が使用される。尚、後述するように個別起動ＩＤは自律的に設定されるため、個々のセンサノード１００に初期に設定される個別起動ＩＤは任意である。
【００２５】
第２のメモリ１１４には、自ノードの個別起動ＩＤ及び全起動ＩＤが記憶されており、起動判定部１１３によって適宜読み出されたり、ＣＰＵ１２１によって適宜更新されたりする。
【００２６】
タイマ部１１６は、ＣＰＵ１２１によって、センサノード１００の自律的な起動が必要な時刻が設定される。タイマ部１１６は、設定された時刻が到来すると限時動作を行って電源制御部１１７を介してスイッチ回路１０３を制御し、センサノード１００を起動状態に遷移させる。ここで、センサノード１００の自律的な起動が必要な時刻には、例えばセンサノード１００がセンシング処理を行う時刻（以下、単にセンシング時刻と称する）及びセンサノード１００がマルチホップルーティング処理を開始する時刻（以下、単にルーティング開始時刻と称する）が含まれる。即ち、高感度整流器１１５を利用した起動には、他のセンサノード１００からの起動用無線信号が必要なので、当該起動用無線信号が受信されないセンシング時刻及びルーティング開始時刻に起動する場合にはタイマ部１０６が利用される。尚、タイマ部１０６に設定する時刻は、例えばディスク１２５に記憶されている。
【００２７】
ＣＰＵ１２１は、第１のメモリ１２４またはディスク１２５からプログラムを読み出し、センサノード１００の各種処理を実行する。起動用無線信号送信部１２２は、通信相手となるセンサノードの個別起動ＩＤまたは全起動ＩＤを包含させた起動用無線信号を、アンテナ１０１を介して送信する。以降、起動用無線信号を他のセンサノードに対して送信することを、他のセンサノードを起動させるとも称する。
【００２８】
通信用無線信号送受信部１２３は、自ノードの通信用アドレスまたは後述するブロードキャストアドレスが付加された通信用無線信号をアンテナ１０１を介して受信したり、通信相手となるセンサノードの通信用アドレスまたはブロードキャストアドレスを付加した通信用無線信号をアンテナ１０１を介して送信したりする。通信用アドレスは、例えばＩＰアドレスであるが、これに限られない。
【００２９】
第１のメモリ１２４には、センサノード１００が起動状態に遷移すると、ディスク１２５から全起動ＩＤ、自ノードの個別起動ＩＤ、自ノード及びサーバの通信用アドレス、後述する経路情報、隣接センサノード情報及び関連センサノード情報等が読み込まれる。第１のメモリ１２４の記憶内容は、ＣＰＵ１２１によって適宜読み出しまたは書き換えられ、センサノード１００が休止状態に遷移する際にディスク１２５に待避される。ディスク１２５には、前述した第１のメモリ１２４に読み込まれる情報に加えて、センシングデータ、センシング時刻及びルーティング開始時刻等が記憶される。
【００３０】
センサ素子１２６は、例えば温度センサや湿度センサ等であって、センサノード１００によるセンシング処理を実現する。センサ素子１２６は、センシングデータとして温度データや湿度データ等を定期的（センシング時刻の到来毎）に取得する。
【００３１】
以上説明したように、センサノード１００は、平常時には休止状態であり、センシング時刻及びルーティング開始時刻が到来するとタイマ部１０６によって起動状態に遷移し、また、自ノードの個別起動ＩＤまたは全起動ＩＤが包含された起動用無線信号を受信すると高感度整流器１１５、起動用ＩＤ検出部１１２及び起動判定部１１３によって起動状態に遷移する。従って、個別起動ＩＤが適切に設定されていれば、センサノード１００は無駄なく起動することができる。
【００３２】
以降、図２に示すセンサネットワークを例として、本実施形態に係るセンサノード１００の自律的な起動用ＩＤ（個別起動ＩＤ）の設定を説明する。まず、図２のセンサネットワークを具体的に説明する。
【００３３】
図２のセンサネットワークは、センサノードＡ、Ｂ及びＣと、サーバとしても機能するセンサノードＤとで構成される。各センサノードＡ、Ｂ、Ｃ及びＤの起動用無線信号の伝播範囲と通信用無線信号の伝播範囲とは一致するものとし、単に無線伝播範囲と総称する。サーバとしてのセンサノードＤに対して直接的に通信できないセンサノードＡ及びＢは、センシング処理によって得られたセンシングデータをセンサノードＤに対してルーティング処理により送信する。サーバとしてのセンサノードＤのディスク１２５には、これらセンサノードＡ、Ｂ、Ｃ及びＤからのセンシングデータが蓄積される。以降、センサノード間において通信用無線信号によって送受信されるデータを、メッセージと総称する。メッセージには、送信元ノードの通信用アドレスと送信先（宛先）ノードの通信用アドレスとが少なくとも含まれている。
【００３４】
図２のセンサネットワークにおいて、センサノードＢの無線伝播範囲内には、センサノードＡ及びセンサノードＣが配置されている。以降、各センサノードの無線伝播範囲内に配置されるセンサノード、即ち、直接的に無線通信が可能なセンサノードを、当該センサノードの１ホップ先の隣接センサノードと称する。図２のセンサネットワークにおいて、センサノードＢの１ホップ先の隣接センサノードは、センサノードＡ及びＣである。また、各センサノードの１ホップ先の隣接センサノードの更に１ホップ先の隣接センサノードを、当該センサノードの２ホップ先の隣接センサノードと称する。図２のセンサネットワークにおいて、センサノードＢの２ホップ先の隣接センサノードは、センサノードＤである。
【００３５】
また、１ホップ先の隣接センサノード全てを宛先としてメッセージを送信することをブロードキャストと称する。ブロードキャストされるメッセージには、ブロードキャストアドレスと呼ばれる通信用アドレスが付加される。ブロードキャストアドレスは、全てのセンサノードに共通の通信用アドレスであり、個々のセンサノードの通信用アドレスとは無関係に受信処理の対象となる。図２のセンサネットワークにおいて、センサノードＢがメッセージをブロードキャストすると、センサノードＡ及びＣはいずれも当該メッセージを受信する。
【００３６】
次に、既存のマルチホップルーティングアルゴリズムの１つである、ＤＳＲを説明するが、本実施形態に係るセンサノードによって構成されるセンサネットワークに適用可能なアルゴリズムはこれに限られない。
【００３７】
ＤＳＲは、ＲＤ（Route Discovery）及びＳＲ（Source Routing）の２つのフェーズに大別できる。ＳＲは、実際に送信すべきデータ（例えばセンシングデータ）をＳＲＭ（Source Routing Message）と呼ばれるメッセージとしてサーバに向けて送信するフェーズである。一方、ＲＤは、ＳＲを実行する際に必要な経路情報を探索するフェーズである。即ち、ＤＳＲにおいて各センサノードは、ＲＤの実行によってサーバへの経路情報を予め獲得してからＳＲを実行してセンシングデータを送信する。ここで、経路情報とは、送信元のセンサノードからどのセンサノードを経由して最終宛先のセンサノード（例えばサーバ）に辿り着くかを示す情報である。
【００３８】
ＲＤを実行するセンサノードは、まず、第１のメモリ１２４に記憶されている経路情報から最終宛先ノードまでの経路情報を検索する。最終宛先ノードまでの経路情報が第１のメモリ１２４から検索されれば、上記センサノードは当該経路情報を利用してＳＲを実行する。最終宛先ノードまでの経路情報が第１のメモリ１２４から検索されなければ、上記センサノードはＲＤＱ（Route Discovery Query）と呼ばれるメッセージをブロードキャストする。ＲＤＱには、送信元ノードの通信用アドレスが記載された経路情報と最終宛先ノードの通信用アドレスとが少なくとも格納されている。
【００３９】
ＲＤＱを受信したセンサノードは、当該ＲＤＱに格納された経路情報に自ノードの通信用アドレスを追加して更新する。また、上記センサノードは、ＲＤＱに格納された最終宛先ノードの通信用アドレスを自ノードの通信用アドレスと照合する。ＲＤＱに格納された最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致しなければ、上記センサノードはＲＤＱをブロードキャストする。一方、ＲＤＱに格納された最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致すれば、上記センサノードは当該ＲＤＱの送信元ノードに対してＲＤＲ（Route Discovery Response）と呼ばれるメッセージを返信する。ＲＤＲは、上記ＲＤＱに最終的に格納されていた経路情報を逆に辿って送信元ノードに到達する。ＲＤＲには、上記ＲＤＱに最終的に格納されていた経路情報が格納されているため、当該ＲＤＱの送信元ノードは最終宛先ノードへの経路情報を獲得できる。ＲＤＱの送信元ノードは、獲得した経路情報を第１のメモリ１２４に記憶させる。
【００４０】
ＳＲを実行するセンサノードは、最終宛先ノードへの経路情報と、送信すべきデータとを少なくとも含むＳＲＭを、当該経路情報に従って送信する。ＳＲＭを受信したセンサノードは、当該ＳＲＭ内の経路情報に従って転送する。尚、経路上のセンサノードの故障等の原因によりＳＲＭの転送が失敗すると、当該ＳＲＭの送信元ノードに対してRouting Errorと呼ばれるメッセージが返信される。Routing Errorを受信した送信元ノードは、再びＲＤを実行して適切な経路情報を獲得する。
【００４１】
以下、図３を用いて図２のセンサネットワークにおけるＤＳＲの実行例を説明する。尚、以下の説明はあくまでＤＳＲの一般的な実行例なので、各センサノードの起動／休止状態の切り替えに関して特に考慮せず、常時起動状態であるものとする。  
センサノードＡは、第１のメモリ１２４からサーバ（センサノードＤ）への経路情報を検索できなかったので、最終宛先ノードをサーバとするＲＤＱをブロードキャストする。センサノードＡの無線伝播範囲内にはセンサノードＢが配置されており、上記ＲＤＱを受信する。センサノードＢは、受信したＲＤＱに格納された経路情報に自ノードの通信用アドレスを追加する。また、センサノードＢは、受信したＲＤＱに格納された最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致しないので、ＲＤＱをブロードキャストする。
【００４２】
センサノードＢの無線伝播範囲内にはセンサノードＡ及びＣが配置されており、上記ＲＤＱを受信する。処理済みのＲＤＱを再び処理する必要は無いので、センサノードＡは受信したＲＤＱを破棄する。一方、センサノードＣは、受信したＲＤＱに格納された経路情報に自ノードの通信用アドレスを追加する。また、センサノードＣは、受信したＲＤＱに格納された最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致しないので、ＲＤＱをブロードキャストする。
【００４３】
センサノードＣの無線伝播範囲内にはセンサノードＢ及びＤ（サーバ）が配置されており、上記ＲＤＱを受信する。センサノードＢは、受信したＲＤＱを破棄する。一方、センサノードＤは、受信したＲＤＱに格納された経路情報に自ノードの通信用アドレスを追加する。また、センサノードＤは、受信したＲＤＱに格納された最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致するので、当該ＲＤＱの送信元ノードＡに対して上記経路情報を格納させたＲＤＲを返信する。
【００４４】
センサノードＤから返信されたＲＤＲは、経路情報に従ってセンサノードＣ及びセンサノードＢを経由してセンサノードＡに到達する。センサノードＡは、受信したＲＤＲに格納された経路情報を第１のメモリ１２４に記憶させて、ＳＲを続けて実行する。センサノードＡは、上記経路情報に従ってＳＲＭを送信する。センサノードＡから送信されたＳＲＭは、経路情報に従ってセンサノードＢ及びセンサノードＣを経由してセンサノードＤに到達する。
【００４５】
以下、図４乃至図８を用いて、ＤＳＲが実行されるセンサネットワークにおける個別起動ＩＤの自律設定方法を説明する。  
図４は、図１のセンサノード１００の起動後の動作例を示す。センサノード１００の起動は、タイマ部１０６の作用に基づく起動と、他のセンサノード１００からの起動用無線信号による起動とに大別される。センサノード１００がタイマ部１０６の作用により起動した場合には処理はステップＳ２０３に進み、他のセンサノード１００からの起動用無線信号により起動した場合には処理はステップＳ２０２に進む（ステップＳ２０１）。
【００４６】
ステップＳ２０２において、センサノードはＮＩＭ（Neighbor Information Message）と呼ばれるメッセージをブロードキャストし、処理はステップＳ２１６に進む。ＮＩＭには、隣接センサノード情報が格納される。隣接センサノード情報は、自ノードの個別起動ＩＤ及び通信用アドレスと、１ホップ先の隣接センサノードの個別起動ＩＤ及び通信用アドレスとを含む。尚、当然ながら、隣接センサノード情報に含めることのできる１ホップ先の隣接センサノードの個別起動ＩＤ及び通信用アドレスは、ＮＩＭをブロードキャストするセンサノードにとって既知のものに限られる。即ち、１ホップ先の隣接センサノードの個別起動ＩＤ及び通信用アドレスが不明であれば、ＮＩＭには当該ＮＩＭの送信元ノードの個別起動ＩＤ及び通信用アドレスのみが隣接センサノード情報として含まれることとなる。
【００４７】
ＮＩＭを送信することの技術的意義を説明する。まず、第１に、ＮＩＭを送信することにより、当該ＮＩＭの送信元ノードの起動を確認することができる。即ち、起動用無線信号を送信したセンサノードが、ＮＩＭの受信の有無によって通信相手のセンサノードが本当に起動しているか否かを確認することができる。第２に、起動用無線信号を送信したセンサノードが、最大で２ホップ先の隣接センサノードの個別起動ＩＤ及び通信用アドレスを把握することができる。以降、自ノードから２ホップ先までの隣接センサノードを関連センサノードと称し、当該関連センサノードの個別起動ＩＤ及び通信用アドレスを関連センサノード情報と称する。
【００４８】
ステップＳ２０３よりセンサノードはＤＳＲを実行する。尚、実際にはタイマ部１０６による起動は、ルーティング処理の開始でなくセンシング処理の開始を意味する場合もあり得るが、後者は通信とは関係しないため説明を省略する。ステップＳ２０３において、センサノードは第１のメモリ１２４からサーバへの経路情報を検索する。サーバへの経路情報が検索されれば処理はステップＳ２１０に進み、検索されなければ処理はステップＳ２０４に進む。
【００４９】
ステップＳ２０４乃至ステップＳ２０９の処理は、前述したＲＤに対応する。ステップＳ２０４において、センサノードは全起動ＩＤを包含する起動用無線信号をブロードキャストする。センサノードは、１ホップ先の隣接センサノードからのＮＩＭを待機する（ステップＳ２０５）。ステップＳ２０５において、センサノードが待機する時間は、１ホップ先の隣接センサノードが起動用無線信号を受信してから起動状態への遷移が完了するまでの時間よりも長いものとする。一例として、センサノードは、自ノードの起動に要する時間を予め計測しておき、当該起動に要する時間の２倍の時間だけ待機する。一定時間が経過すると、センサノードはサーバを最終宛先ノードとするＲＤＱをブロードキャストする（ステップＳ２０６）。その後、センサノードはサーバからのＲＤＲの返信を待機する（ステップＳ２０９）。センサノードがＲＤＲを受信できないまま一定時間が経過すると（ステップＳ２０８）、処理はステップＳ２１６に進む。一方、センサノードがＲＤＲを受信すると、処理はステップＳ２１０に進む。
【００５０】
ステップＳ２１０乃至ステップＳ２１５の処理は、前述したＳＲに対応する。ステップＳ２１０において、センサノードは経路情報からＳＲＭを送信すべき１ホップ先（next hop）の隣接センサノードを検索する。次に、センサノードは、検索された１ホップ先の隣接センサノードの個別起動ＩＤを包含する起動用無線信号を送信する（ステップＳ２１６）。その後、センサノードは上記隣接センサノードからのＮＩＭを待機する（ステップＳ２１２）。センサノードがＮＩＭを受信できないまま一定時間が経過すると（ステップＳ２１３）、処理はステップＳ２１６に進む。一方、センサノードがＮＩＭを受信すると、処理はステップＳ２１５に進む。ステップＳ２１５において、センサノードは上記隣接センサノードにＳＲＭを送信し、処理はステップＳ２１６に進む。
【００５１】
ステップＳ２１６において、センサノードは他のセンサノードからのメッセージを待機する。ステップＳ２１６において受信したメッセージに応じて、後述する図５乃至図８のいずれかの処理が実行される。一方、センサノードが他のセンサノードからのメッセージを一定時間受信しなければ（ステップＳ２１７）、センサノードは次の起動時刻をタイマ部１０６に設定し（ステップＳ２１８）、休止状態に遷移し（ステップＳ２１９）、処理は終了する。
【００５２】
センサノードが他のセンサノードからＲＤＱを受信すると、図５に示す処理を実行する。まず、センサノードは、処理対象のＲＤＱが既に処理済みのＲＤＱであるか否かを確認する（ステップＳ３０１）。処理対象のＲＤＱが既に処理済みのＲＤＱであれば処理はステップＳ３０９に進み、そうでなければ処理はステップＳ３０２に進む。
【００５３】
ステップＳ３０２において、センサノードは処理対象のＲＤＱに格納される経路情報を更新する。即ち、センサノードは自ノードの通信用アドレスを上記経路情報に追加する。次に、センサノードは処理対象のＲＤＱに格納された最終宛先ノードの通信用アドレスを自ノードの通信用アドレスと照合する（ステップＳ３０３）。最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致すれば処理はステップＳ３０８に進み、そうでなければ処理はステップＳ３０４に進む。ステップＳ３０４において、センサノードは第１のメモリ１２４から最終宛先ノードへの経路情報の検索を試みる。最終宛先ノードへの経路情報が検索されれば、センサノードは当該経路情報を上記ＲＤＱに格納される経路情報に追加して更新し、処理はステップＳ３０８に進む。一方、最終宛先ノードへの経路情報が検索されなければ、処理はステップＳ３０５に進む。
【００５４】
ステップＳ３０５において、センサノードは、全起動ＩＤを包含する起動用無線信号をブロードキャストする。センサノードは、１ホップ先の隣接センサノードの起動を待機してから（ステップＳ３０６）、ステップＳ３０２において更新したＲＤＱをブロードキャストし（ステップＳ３０７）、処理は終了する。
【００５５】
ステップＳ３０８において、センサノードは処理対象のＲＤＱの送信元ノードに向けてＲＤＲを返信し、処理は終了する。また、ステップＳ３０９において、センサノードは処理対象のＲＤＱを破棄し、処理は終了する。
【００５６】
センサノードが他のセンサノードからＲＤＲを受信すると、図６に示す処理を実行する。まず、センサノードは、処理対象のＲＤＲに格納された最終宛先ノード（即ち、対応するＲＤＱの送信元ノード）の通信用アドレスを自ノードの通信用アドレスと照合する（ステップＳ４０１）。最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致すれば処理はステップＳ４０３に進み、そうでなければ処理はステップＳ４０２に進む。
【００５７】
ステップＳ４０２において、センサノードは処理対象のＲＤＲに格納された経路情報に従って当該ＲＤＲを転送し、処理は終了する。ＲＤＲを転送する際には、センサノードは起動用無線信号を予め送信しなくてもよい。ＲＤＲは、ＲＤＱが転送された経路を逆に辿って転送されるため、ＲＤＲが転送される経路上のセンサノードは、ＲＤＱを転送する過程で既に起動していると考えられるからである。尚、起動用無線信号を予め送信することによりＲＤＲの転送先ノードを確実に起動させてもよいが、通信回数の増加のために消費電力が増大する点に注意を要する。
【００５８】
ステップＳ４０３において、センサノードは処理対象のＲＤＲが既に処理済みのＲＤＲであるか否かを確認する。処理対象のＲＤＱが既に処理済みのＲＤＱであれば処理はステップＳ４０５に進み、そうでなければ処理はステップＳ４０４に進む。
【００５９】
ステップＳ４０４において、センサノードは処理対象のＲＤＲに格納された経路情報を第１のメモリ１２４に保存し、処理は前述したステップＳ２１０に進む。即ち、ステップＳ４０１、Ｓ４０３及びＳ４０４の処理は、前述したステップＳ２０９及びＳ２１０の間に行われるものである。一方、ステップＳ４０５において、センサノードは処理対象のＲＤＲを破棄し、処理は終了する。
【００６０】
センサノードが他のセンサノードからＳＲＭを受信すると、図７に示す処理を実行する。まず、センサノードは、処理対象のＳＲＭが既に処理済みのＳＲＭであるか否かを確認する（ステップＳ５０１）。処理対象のＳＲＭが既に処理済みのＳＲＭであれば処理はステップＳ５０９に進み、そうでなければ処理はステップＳ５０２に進む。ステップＳ５０９において、センサノードは処理対象のＳＲＭを破棄し、処理は終了する。
【００６１】
ステップＳ５０２においてセンサノードは、処理対象のＳＲＭに格納された最終宛先ノードの通信用アドレスを自ノードの通信用アドレスと照合する。最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致すれば処理はステップＳ５０８に進み、そうでなければ処理はステップＳ５０３に進む。
【００６２】
ステップＳ５０３において、センサノードは処理対象のＳＲＭに格納された経路情報に従って次のセンサノードへと転送するために、当該次のセンサノードの個別起動ＩＤを包含する起動用無線信号を送信する。その後、センサノードは、上記次のセンサノードからのＮＩＭを待機する。センサノードが上記次のセンサノードからのＮＩＭを受信できないまま一定時間が経過すると（ステップＳ５０４）、処理はステップＳ５０７に進む。一方、センサノードが上記次のセンサノードからのＮＩＭを受信すると、処理はステップＳ５０６に進む。
【００６３】
ステップＳ５０６において、センサノードは上記次のセンサノードに処理対象のＳＲＭを転送し、処理は終了する。一方、ステップＳ５０７において、センサノードは処理対象のＳＲＭの送信元ノードに向けてRoute Errorを送信し、処理は終了する。
【００６４】
また、ステップＳ５０８において、センサノードは処理対象のＳＲＭに応じたデータ処理を行って、処理は終了する。尚、ステップＳ５０８においてセンサノードが行うデータ処理の具体的内容はセンサネットワークの目的に依存して決まるため、特に言及しないが、例えば、処理対象のＳＲＭがセンシングデータを含んでいればセンサノードは当該センシングデータをディスク１２５に保存する。
【００６５】
センサノードが他のセンサノードからＮＩＭを受信すると、図８に示す処理を実行する。まず、センサノードは、処理対象のＮＩＭに格納された隣接センサノード情報に基づいて、第１のメモリ１２４に記憶されている隣接センサノード情報及び関連センサノード情報の更新を試みる（ステップＳ６０１）。
【００６６】
次に、センサノードは、ステップＳ６０１における隣接センサノード情報及び関連センサノード情報の更新の結果、自ノードの個別起動ＩＤの更新が必要か否かを判定する（ステップＳ６０２）。センサノードが自ノードの個別起動ＩＤの更新が必要であると判定すれば処理はステップＳ６０３に進み、そうでなければ処理はステップＳ６０５に進む。個別起動ＩＤの更新の要否の判定は次のように行われる。センサノードは、自ノードの個別起動ＩＤが、関連センサノード情報に含まれる個別起動ＩＤのいずれかと重複するか否かを確認する。自ノードの個別起動ＩＤと関連センサノード情報に含まれる個別起動ＩＤとの間に重複がなければ、センサノードは自ノードの個別起動ＩＤの更新が不要であると判定する。
【００６７】
一方、自ノードの個別起動ＩＤと関連センサノード情報に含まれる個別起動ＩＤとの間に重複がある場合には、センサノードは自ノード及び個別起動ＩＤが重複する関連センサノードのいずれが個別起動ＩＤを更新すべきかを判定する。例えば、各センサノードには個別起動ＩＤの更新に関し、互いに異なる優先度が夫々与えられているとする。この場合、センサノードは、自ノードに与えられた優先度が、個別起動ＩＤが重複するセンサノードに与えられた優先度に比べて高ければ、自ノードの個別起動ＩＤの更新が不要であると判定する。また、センサノードは、自ノードに与えられた優先度が、個別起動ＩＤが重複するセンサノードに与えられた優先度に比べて低ければ、自ノードの個別起動ＩＤの更新が必要であると判定する。
【００６８】
ここで、優先度として、例えば通信用アドレスの値をそのまま用いてもよいし、通信用アドレスの値に何らかの変換を施した値を用いてもよい。通信用アドレスとしてのＩＰアドレスの値を優先度として利用する場合であれば、「１９２．１６８．０．５」が設定されたセンサノードに比べて「１９２．１６８．０．３」が設定されたセンサノードの方が優先度は低い。尚、通信用アドレス以外にも、優先度として各センサノードに対し一意に与えられる識別情報が利用されてもよい。
【００６９】
ステップＳ６０３において、センサノードは自ノードの個別起動ＩＤの更新を試みる。センサノードは、自ノードよりも高い優先度が与えられた関連センサノードの個別起動ＩＤ及び全起動ＩＤ以外の起動用ＩＤのうち任意の１つを新たな自ノードの個別起動ＩＤとして選択し、設定する。ここで、センサノードが選択可能な個別起動ＩＤは任意であると述べたが、自ノードよりも低い優先度が与えられた関連センサノードが使用している個別起動ＩＤよりも、いずれの関連センサノードも使用していない個別起動ＩＤを選択することが望ましい。上記低い優先度が与えられた関連センサノードの個別起動ＩＤの更新が後に必要となるからである。また、センサノードが選択可能な個別起動ＩＤが１つも無い場合には、個別起動ＩＤの更新を中止し、ステップＳ６０４の処理を省略してもよい。具体的には、センサノードは自ノードよりも高い優先度が与えられた関連センサノードの数が個別起動ＩＤの総数を超える場合には、個別起動ＩＤの重複は避けられないから自ノードの個別起動ＩＤの更新を省略できる。
【００７０】
ステップＳ６０４において、センサノードは自ノードの個別起動ＩＤの更新を１ホップ先の隣接センサノードに通知するためにＮＩＭをブロードキャストし、処理はステップＳ６０５に進む。
【００７１】
ステップＳ６０５において、センサノードは転送すべきＳＲＭがあるか否かを確認し、転送すべきＳＲＭがあれば処理は前述したステップＳ５０１に進み、そうでなければ処理は終了する。
【００７２】
以下、図２のセンサネットワークにおけるセンサノードの個別起動ＩＤの自律設定例を図９及び図１０を用いて説明する。尚、初期状態において、センサノードＡの通信用アドレス（ＩＰアドレス）及び個別起動ＩＤとして「１９２．１６８．０．１００」及び「００１」、センサノードＢの通信用アドレス及び個別起動ＩＤとして「１９２．１６８．０．９０」及び「０１０」、センサノードＣの通信用アドレス及び個別起動ＩＤとして「１９２．１６８．０．８０」及び「０１０」、センサノードＤの通信用アドレス及び個別起動ＩＤとして「１９２．１６８．０．７０」及び「０１１」が夫々与えられているものとする。起動用ＩＤは、上記説明から明らかなように３ビットであり、全起動ＩＤとして「０００」が設定されているものとする。前述した個別起動ＩＤの優先度は、通信用アドレスとしてのＩＰアドレスの値がそのまま利用される。即ち、センサノードＡに与えられる優先度が最も高く、センサノードＤに与えられる優先度が最も低い。
【００７３】
図９は、センサノードＡがセンサノードＤに対してＤＳＲを実行する場合の図２のセンサネットワークのシーケンス図である。まず、タイマ部１０６の作用により、センサノードＡが起動状態に遷移する（８０１）。センサノードＡは、センサノードＤを最終宛先ノードとする経路情報を第１のメモリ１２４に保持していないため、ＲＤを開始する。即ち、センサノードＡは、全起動ＩＤを包含する起動用無線信号をブロードキャストする（８０２）。センサノードＡからの起動用無線信号を受信すると、センサノードＢは起動状態に遷移する（８０３）。センサノードＢは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８０４）。
【００７４】
センサノードＡは、センサノードＢからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８０５）。隣接センサノード情報の更新があったので、センサノードＡはＮＩＭをブロードキャストする（８０６）。センサノードＢは、センサノードＡからのＮＩＭに基づき隣接センサノード情報を更新する（８０７）。
【００７５】
次に、センサノードＡは、センサノードＤを最終宛先ノードとするＲＤＱをブロードキャストする（８０８）。上記ＲＤＱを受信したセンサノードＢは、自ノードの通信用アドレス「１９２．１６８．０．９０」を当該ＲＤＱに格納された経路情報に追加し、ＲＤＱを更に転送すべく、全起動ＩＤを包含する起動用無線信号をブロードキャストする（８０９）。
【００７６】
センサノードＢからの起動用無線信号を受信すると、センサノードＣは起動状態に遷移する（８１０）。センサノードＣは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８１１）。
【００７７】
センサノードＢは、センサノードＣからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８１２）。隣接センサノード情報の更新があったので、センサノードＢはＮＩＭをブロードキャストする（８１３）。センサノードＡは、センサノードＢからのＮＩＭに基づき関連センサノード情報を更新する（８１４）。また、センサノードＣは、センサノードＢからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８１５）。このとき、センサノードＣの第１のメモリ１２４に保持されている関連センサノード情報は図１０に示す通りである。即ち、第１のメモリ１２４には、１ホップ先の隣接センサノードの情報としてセンサノードＢの通信用アドレス及び個別起動ＩＤが記憶され、２ホップ先の隣接センサノードの情報としてセンサノードＡの通信用アドレス及び個別起動ＩＤが記憶されている。
【００７８】
センサノードＣの個別起動ＩＤは「０１０」であり、１ホップ先の隣接センサノードＢの個別起動ＩＤも「０１０」である。更に、センサノードＢの優先度は、センサノードＣの優先度に比べて高い。従って、センサノードＣは、個別起動ＩＤを更新し（８１６）、当該更新内容を通知すべくＮＩＭをブロードキャストする（８１７）。
【００７９】
センサノードＢは、センサノードＣからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８１８）。隣接センサノード情報の更新があったので、センサノードＢはＮＩＭをブロードキャストする（８１９）。センサノードＡは、センサノードＢからのＮＩＭに基づき関連センサノード情報を更新する（８２０）。また、センサノードＣは、センサノードからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８２１）。
【００８０】
次に、センサノードＢは、ＲＤＱをブロードキャストする（８２２）。上記ＲＤＱを受信したセンサノードＣは、自ノードの通信用アドレス「１９２．１６８．０．８０」を当該ＲＤＱに格納された経路情報に追加し、ＲＤＱを更に転送すべく、全起動ＩＤを包含する起動用無線信号をブロードキャストする（８２３）。
【００８１】
センサノードＣからの起動用無線信号を受信すると、センサノードＤは起動状態に遷移する（８２４）。センサノードＤは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８２５）。
【００８２】
センサノードＣは、センサノードＤからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８２６）。隣接センサノード情報の更新があったので、センサノードＣはＮＩＭをブロードキャストする（８２７）。センサノードＢは、センサノードＣからのＮＩＭに基づき関連センサノード情報を更新する（８２８）。また、センサノードＤは、センサノードＣからのＮＩＭに基づき隣接センサノード情報及び関連センサノード情報を更新する（８２９）。
【００８３】
次に、センサノードＣは、ＲＤＱをブロードキャストする（８３０）。上記ＲＤＱを受信したセンサノードＤは、自ノードの通信用アドレス「１９２．１６８．０．７０」を当該ＲＤＱに格納された経路情報に追加する。更に、センサノードＤは、上記ＲＤＱの最終宛先ノードの通信用アドレスが自ノードの通信用アドレスと一致するため、送信元ノードＡに向けてＲＤＲを返信する。センサノードＤからのＲＤＲは、経路情報に従ってセンサノードＣに送信される（８３１）。
【００８４】
センサノードＣは、受信したＲＤＲを経路情報に従ってセンサノードＢに転送する（８３２）。センサノードＢは、受信したＲＤＲを経路情報に従ってセンサノードＡに転送する（８３３）。センサノードＡは、受信したＲＤＲからセンサノードＤを最終宛先ノードとする経路情報を獲得し、第１のメモリ１２４に保存する。次に、センサノードＡはＳＲを実行する。
【００８５】
まず、センサノードＡは、最終宛先ノードをＤとするＳＲＭを送信すべく、センサノードＢの起動用ＩＤを包含する起動用無線信号を送信する（８３４）。センサノードＡからの起動用無線信号を受信すると、センサノードＢは起動状態に遷移する。センサノードＢは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８３５）。センサノードＡは、センサノードＢからのＮＩＭを受信することにより、起動を確認したうえでＳＲＭをセンサノードＢに対し送信する（８３６）。
【００８６】
センサノードＢは、センサノードＡからのＳＲＭに格納された経路情報に従って、当該ＳＲＭをセンサノードＣに転送すべく、センサノードＣの起動用ＩＤを包含する起動用無線信号を送信する（８３７）。センサノードＢからの起動用無線信号を受信すると、センサノードＣは起動状態に遷移する。センサノードＣは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８３８）。センサノードＢは、センサノードＣからのＮＩＭを受信することにより、起動を確認したうえでＳＲＭをセンサノードＣに対し転送する（８３９）。
【００８７】
センサノードＣは、センサノードＢからのＳＲＭに格納された経路情報に従って、当該ＳＲＭを最終宛先ノードであるセンサノードＤに転送すべく、センサノードＤの起動用ＩＤを包含する起動用無線信号を送信する（８４０）。センサノードＣからの起動用無線信号を受信すると、センサノードＤは起動状態に遷移する。センサノードＤは、第１のメモリ１２４から隣接センサノード情報を読み出し、ＮＩＭをブロードキャストする（８４１）。センサノードＣは、センサノードＤからのＮＩＭを受信することにより、起動を確認したうえでＳＲＭをセンサノードＤに対し転送する（８４２）。
【００８８】
以上説明したように本実施形態に係るセンサノードは、隣接するセンサノード同士で、自ノード及び１ホップ先の隣接センサノードの個別起動ＩＤを格納したＮＩＭを交換するようにしている。従って本実施形態に係る各センサノードは、２ホップ先までの隣接センサノードの個別起動ＩＤを把握し、各センサノードの無線伝播範囲内において重複が生じないように個別起動ＩＤを自律的に設定することが可能となる。
【００８９】
尚、本実施形態に係るセンサノードは、ＤＳＲ以外のルーティングプロトコルが適用される場合であっても同様の効果を奏する。即ち、いずれのルーティングプロトコルが適用される場合であっても、センサノードは、当該ルーティングプロトコルに基づく通信を行う前に起動用無線信号によって通信相手を起動させ、ＮＩＭを交換することにより、個別用起動ＩＤを自律的に設定できる。
【００９０】
（第２の実施形態）  
前述した第１の実施形態に係るセンサノードは、２ホップ先までの隣接センサノードの個別起動ＩＤ及び通信用アドレスを管理し、自ノードの個別起動ＩＤの更新に利用していた。本発明の第２の実施形態に係るセンサノードは、１ホップ先までの隣接センサノードの個別起動ＩＤ及び通信用アドレスを管理し、自ノード及び１ホップ先の隣接センサノードの個別起動ＩＤの更新に利用する。以下の説明では、前述した第１の実施形態と異なる部分を中心に述べる。
【００９１】
本実施形態に係るセンサノードが送信するＮＩＭには、隣接センサノード情報は格納されず、当該センサノードの個別起動ＩＤ及び通信用アドレスが格納される。センサノードが他のセンサノードからＮＩＭを受信すると、図１１に示す処理を実行する。まず、センサノードは、処理対象のＮＩＭに格納された個別起動ＩＤ及び通信用アドレスに基づいて、第１のメモリ１２４に記憶されている隣接センサノード情報の更新を試みる（ステップＳ７０１）。
【００９２】
次に、センサノードは、ステップＳ７０１における隣接センサノード情報の更新の結果、自ノードの個別起動ＩＤの更新が必要か否かを判定する（ステップＳ７０２）。センサノードが自ノードの個別起動ＩＤの更新が必要であると判定すれば処理はステップＳ７０３に進み、そうでなければ処理はステップＳ７０５に進む。個別起動ＩＤの更新の要否の判定は次のように行われる。センサノードは、自ノードの個別起動ＩＤと、１ホップ先の隣接センサノードのいずれかの個別起動ＩＤとが重複するか否かを確認する。自ノードの個別起動ＩＤと、１ホップ先の隣接センサノードのいずれかの個別起動ＩＤとの間に重複がなければ、センサノードは自ノードの個別起動ＩＤの更新が不要であると判定する。
【００９３】
一方、自ノードの個別起動ＩＤと１ホップ先の隣接センサノードのいずれかの個別起動ＩＤとの間に重複がある場合には、センサノードは例えば前述した優先度に基づき自ノード及び個別起動ＩＤが重複する１ホップ先の隣接センサノードのいずれが個別起動ＩＤを更新すべきかを判定する。
【００９４】
ステップＳ７０３において、センサノードは自ノードの個別起動ＩＤの更新を試みる。センサノードは、例えば自ノードよりも高い優先度が与えられた１ホップ先の隣接センサノードの個別起動ＩＤ及び全起動ＩＤ以外の起動用ＩＤのうち任意の１つを新たな自ノードの個別起動ＩＤとして選択し、設定する。次に、センサノードは自ノードの個別起動ＩＤの更新を１ホップ先の隣接センサノードに通知するためにＮＩＭをブロードキャストし、処理はステップＳ７０５に進む。（ステップＳ７０４）。
【００９５】
ステップＳ７０５において、センサノードは１ホップ先の隣接センサノードの個別起動ＩＤの更新が必要か否かを判定する。１ホップ先の隣接センサノードの個別起動ＩＤの更新が必要であれば処理はステップＳ７０６に進み、そうでなければ処理はステップＳ７０７に進む。１ホップ先の隣接センサノードの個別起動ＩＤの更新の要否の判定は次のように行われる。センサノードは、１ホップ先の隣接センサノードの間で個別起動ＩＤに重複があるか否かを確認する。１ホップ先の隣接センサノードの間で個別起動ＩＤに重複があれば、センサノードは上記隣接センサノードの個別起動ＩＤの更新が必要であると判定する。一方、１ホップ先の隣接センサノードの間で個別起動ＩＤに重複がなければ、センサノードは上記隣接センサノードの個別起動ＩＤの更新が必要でないと判定する。
【００９６】
ステップＳ７０６において、センサノードは個別起動ＩＤの更新が必要な１ホップ先の隣接センサノードに対してＣＩＤＱ（Change ID Query)を送信する。ＣＩＤＱには、上記隣接センサノードに対して新たに設定すべき個別起動ＩＤが含まれる。例えば、センサノードは、１ホップ先の隣接センサノードの間で個別起動ＩＤに重複があれば、当該重複の生じるセンサノードのうち前述した優先度の最も高いセンサノード以外の全てのセンサノードに対し、新たな個別起動ＩＤを計算し、当該個別起動ＩＤをＣＩＤＱに格納して夫々送信する。ＣＩＤＱを受信したセンサノードは、当該ＣＩＤＱに格納された個別起動ＩＤを自ノードの新たな個別起動ＩＤとして設定し、ＮＩＭをブロードキャストして１ホップ先の隣接センサノードに個別起動ＩＤの更新を通知する。次に、処理はステップＳ７０７に進む。
【００９７】
ステップＳ７０７において、センサノードは転送すべきＳＲＭがあるか否かを確認し、転送すべきＳＲＭがあれば処理は前述したステップＳ５０１に進み、そうでなければ処理は終了する。
【００９８】
以上説明したように、本実施形態に係るセンサノードは、自ノードの個別起動ＩＤ及び通信アドレスをＮＩＭとして１ホップ先の隣接センサノードと交換し、自ノードの個別起動ＩＤの更新の要否及び上記隣接センサノードの個別起動ＩＤの更新の要否を判定し、個別起動ＩＤを適宜更新することにより自律的に設定している。従って、本実施形態に係るセンサノードは、前述した第１の実施形態に係るセンサノードとは異なり、２ホップ先の隣接センサノードの個別起動ＩＤを上記更新において考慮しなくてもよいため、例えば個別起動ＩＤの重複を判定する際の演算量を削減したり、管理すべき情報量を削減したりできる。
【００９９】
（第３の実施形態）  
前述した第１の実施形態及び第２の実施形態に係るセンサノードによって構成されるセンサネットワークでは、各センサノードが個別起動ＩＤを自律設定することができる。本実施形態に係るセンサノードは、センサノードが比較的頻繁に追加されるセンサネットワークへの適用を想定されており、通信用アドレスの自律設定機能を備える。
【０１００】
通信用アドレスの自律設定手法は、ＩＥＴＦ  ＭＡＮＥＴ  ＷＧ等において議論されている。例えば、INTERNET DRAFTである"IP Address Auto-configuration for Ad Hoc Networks"は、アドホックネットワークにおける通信用アドレスの自律設定手法の１つである。新規にアドホックネットワークに参加するノードは、通信用アドレスをランダムに選択し、当該通信用アドレスの利用要求（ＡＲＥＱ；Address Request）をアドホックネットワーク全体にフラッディングする。フラッディングとは、ネットワークを構成する全ノードに対しメッセージを転送することを指し、メッセージを受信したノードが前述したブロードキャストを行って当該メッセージを他のノードに転送することを順次繰り返して実現される。
【０１０１】
ＡＲＥＱを受信したノードは、当該ＡＲＥＱに格納されている通信用アドレスが、自ノードの通信用アドレスと一致すれば、アドレス返答（ＡＲＥＰ；Address Reply）を返信する。ＡＲＥＱの送信元ノード（新規参加ノード）は、当該ＡＲＥＱのフラッディング開始から一定時間以内にＡＲＥＰを受信しなければ、当該ＡＲＥＱに格納した通信用アドレスを使用する。即ち、新規参加ノードは、一定時間以内にＡＲＥＰを受信しなければ、上記ＡＲＥＱに格納された通信用アドレスを使用しているノードがネットワーク中に存在しないと推定する。
【０１０２】
上記既存の通信用アドレスの自律設定手法を、前述した第１の実施形態及び第２の実施形態に係るセンサノードに適用する場合、センサノードが常時起動しているわけではない点に注意を要する。即ち、前述した第１の実施形態及び第２の実施形態に係るセンサノードと同様に、ＡＲＥＱ及びＡＲＥＰといったメッセージを送信する前に、通信相手に対し起動用無線信号を送信し、ＮＩＭを待機することが望ましい。
【０１０３】
以上説明したように、本実施形態に係るセンサノードは、通信用アドレスの自律設定手法においてメッセージを送信する前に、通信相手のセンサノードに対し起動用無線信号を送信し、ＮＩＭを待機している。従って、本実施形態に係るセンサノードによれば、前述した第１の実施形態及び第２の実施形態に係るセンサノードに既存の通信用アドレスの自律設定手法を適用することが可能となる。
【０１０４】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１０５】
【図１】第１の実施形態に係るセンサノードを示すブロック図。
【図２】図１のセンサノードによって構成されるセンサネットワークを示すブロック図。
【図３】図２のセンサネットワークにおけるＤＳＲの実行例を示すシーケンス図。
【図４】図１のセンサノードの起動後の動作を示すフローチャート。
【図５】図１のセンサノードのＲＤＱ受信後の動作を示すフローチャート。
【図６】図１のセンサノードのＲＤＲ受信後の動作を示すフローチャート。
【図７】図１のセンサノードのＳＲＭ受信後の動作を示すフローチャート。
【図８】図１のセンサノードのＮＩＭ受信後の動作を示すフローチャート。
【図９】図２のセンサネットワークの動作例を示すシーケンス図。
【図１０】図９におけるセンサノードＣが保持する関連センサノード情報を示す図。
【図１１】第２の実施形態に係るセンサノードのＮＩＭ受信後の動作を示すフローチャート。
【符号の説明】
【０１０６】
１００・・・センサノード
１０１・・・アンテナ
１０２・・・主電源
１０３・・・スイッチ回路
１１０・・・起動制御部
１１１・・・起動用無線信号受信部
１１２・・・起動用ＩＤ検出部
１１３・・・起動判定部
１１４・・・第２のメモリ
１１５・・・高感度整流器
１１６・・・タイマ部
１１７・・・電源制御部
１２０・・・センサ主要部
１２１・・・ＣＰＵ
１２２・・・起動用無線信号送信部
１２３・・・通信用無線信号送受信部
１２４・・・第１のメモリ
１２５・・・ディスク
【図１】
2010050909.tif 000003
【図２】
2010050909.tif 000004
【図３】
2010050909.tif 000005
【図４】
2010050909.tif 000006
【図５】
2010050909.tif 000007
【図６】
2010050909.tif 000008
【図７】
2010050909.tif 000009
【図８】
2010050909.tif 000010
【図９】
2010050909.tif 000011
【図１０】
2010050909.tif 000012
【図１１】
2010050909.tif 000013