以下、本発明を実施するための最良の形態(以下実施形態という)を、図面に従って説明する。
本実施形態では、河川水位監視システムを例にして述べる。図1は本実施形態における無線通信システム1の全体構成を示している。無線通信システム1は、各種情報を取得する子ノード100−1〜100−15と、各子ノードが取得した情報を収集する親ノード300と、親ノード300の設定を変更可能な端末であるPC(パーソナルコンピュータ)26と、を有し、親ノード300は公衆回線網500を介して監視センター700に接続されている。ここで、図1に示した子ノード100−1〜100−15及び親ノード300を接続する破線は無線回線であり、公衆回線網500及び監視センター700を接続する実線は有線回線であっても無線回線であってもよい。親ノード300と子ノード100との接続関係は実線の矢印で示し、各ノードはAグループからDグループの4区分に便宜上分けて示している。次に、親ノードと子ノードの構成を述べる。
図2は親ノード300の構成を示している。親ノード300は、子ノードと通信するための子ノード用通信部10と、公衆回線網に接続するための外部ネットワーク接続部24と、を備えている。子ノード用通信部10は、子ノードと無線通信するために、送受信アンテナ11と、送信部12と、受信部13と、制御部14と、記憶部16と、表示部15と、電源17と、を有している。子ノード用通信部10は、例えば、特定小電力無線規格(「ATRIB STD−T67]、一例として、送受信周波数429MHz帯、空中線電力10mW、通信速度4800bps、無線エリア半径約100〜300m)に準拠し、受信部13にて検出した電界強度を制御部14が監視している。また、外部ネットワーク接続部24を介して、公衆回線に接続可能であり、制御用のPC26にUSB回線やRS−232C回線等のシリアル回線25にて接続可能であると共に、通信キャリアと接続する無線通信用の送信部22,受信部23,送受信アンテナ21等を有している。
図3は子ノード100の構成を示している。子ノード100は、親ノード用通信部30と、特定小電力無線規格に準拠し、親ノード又は親ノードと無線通信可能な他の子ノード100を中継して通信するために、送受信アンテナ31と、送信部32と、受信部33と、制御部34と、記憶部36と、表示部35と、太陽電池52により充電可能な二次電池37と、を有している。
また、子ノード100が配置された場所の様々な情報を取得するため、周辺機器として、ON/OFF信号を検出するスイッチ入力部50と、温度,ガス,化学物質,水位等を測定するセンサ51と、A/D変換部38と、二次電池37を充電すると共に、日照により発電をする太陽電池52と、を有している。また、子ノード100は、子ノード100の場所を特定し易くするため、光や音を発する警報器39(回転等、ライト又はスピーカ等)を有している。なお、太陽電池52は、二次電池の充電を行うと共に、日照センサとしても機能する。
本実施形態に係る主な通信動作は、親ノードと子ノード又は子ノードの中継を行う子ノードとの第1の通信動作と、子ノードとその他の子ノードへの第2の通信動作と、を含んでいる。最初に、第1の通信動作を確立する前段階として、子ノードから親ノードへ各子ノードの情報を送信する。例えば、図1の各子ノード100−4は親ノード300までの中継回数が最も少ない他の子ノード100−2に情報を送信した後、所定時間中継先となる他の子ノード100−2からの情報が送信されているかを傍受する。もし、その中継先となる他の子ノード100−2から情報が送信されていないときは、子ノード100−4内のルーティングテーブルに基づいて中継先となる子ノードの候補の中から親ノードまでの中継回数が次に少ない他の子ノード100−7に切り替えて情報を送信する。このようにして、各子ノードの情報は親ノードに送信されることになる。
図1の子ノード100は、センサ情報を定期的に取得し、親ノード300に向けてイベントシグナルを送信する。イベントシグナルを受信した親ノード300は、監視センター700にイベントシグナルを送信することによりセンサ情報を伝達する。子ノード100に降雨センサと水位計とを接続し、監視センター700にて河川上流に設置した子ノード100のイベントシグナルを受信し、水位の上昇に関する注意を促す必要がある場合には、監視センター700から河川下流に設置した子ノード100の警報器を作動させる等の利用が可能である。なお、局地的な降雨の場合には、子ノード100からの水位情報を元に、監視センター700にて水位の閾値を定め、閾値を越えた地域より下流側の子ノード100の警報器を作動させる等の処理を行うことも可能となる。
次に、無線通信システム内で通信される無線パケットについて詳説する。図4は無線パケットのフォーマット構成を示している。無線パケットは、大きく分けてヘッダ部41と、データ部42と、誤り検出符号43で構成されている。ヘッダ部41は、無線パケットを中継送信するためのルート情報を有する部分であり、データ部42は測定した温度情報や親ノード300までの中継回数などのデータを有する無線パケットである。また、誤り検出符号43は、ヘッダ部41のシステム識別符号からデータ部42の終端までのデータを無線送信した際に、電波障害などによりデータに誤りが発生したかどうかを検出するための誤り検出情報である。以下、ヘッダ部の各情報について述べる。
図4のヘッダ部41には、第1番目のビット同期から第19番目のN段目中継ノード識別子までの情報を含んでいる。最初に、第1番目のビット同期は受信側で送信側のビットタイミング同期を取るための41ビット信号「01010101,01010101,01010101,01010101,01010101,0」であり、第2番目のフレーム同期は受信側で無線パケットフォーマット位置を認識するための31ビット信号「11100100,01010111,10110100,1100000」である。
第3番目のシステム識別子は無線パケットの送受信を行う親ノード300、子ノード100(図1の100−1〜100−15)を特定するための識別子であり、子ノードは、自ノードに予め設定されている識別子と異なるシステム識別子の無線パケットの電文(第8番目の電文種別)を受信しても、その電文は処理しない。
第4番目の中継先識別子は、無線パケットを受信すべき親ノード300又は子ノード100の識別子を表し、中継先識別子の8ビットがオールビットオン(FFH:ブロードキャスト)であれば、どのノードでも受信すべき無線パケットとなる。
第5番目の中継元識別子は無線パケットを実際に送信した親ノード300,子ノード100の識別子を表している。第8番目の送信先識別子は無線パケットを最終的に受信すべき最終端の親ノード300、又は子ノード100の識別子を表し、第4番目の中継先識別子がブロードキャストとなった場合には、第13番目から第19番目の通信経路45は付加しない。
第6番目の連送カウンタは、子ノード100が低消費電流化を図るために間欠受信動作している場合に利用するカウンタである。例えば、子ノード100が低消費電流化を図るために間欠受信周期5秒で動作しているケースを例にして述べる。子ノード100は5秒周期で受信部を起動し、また、制御部を低消費電流モードから通常モードに移行させた後、キャリアセンスにより受信部からのキャリアセンス信号を監視して受信できる無線パケットがあるかを判定する。もし、受信できる無線パケットが無ければ受信部を停止させ、制御部を低消費電流モードに戻す。また、キャリアセンスにより受信できる無線パケットがあると判断したならば、無線パケットの受信を開始する。このとき、無線パケットの連続送信終了を連送カウンタがゼロになることで判断することになる。なお、無線パケットを送信する親ノード300や他の子ノード100は、間欠受信周期よりも長い周期、無線パケットを繰り返し連続送信する必要がある。このとき、連送カウンタには残りの送信回数が入る。
第7番目の生存カウンタは、万が一、無線ネットワーク上でパケット間をループしてしまった場合に、そのようなパケットを消滅させるためのカウンタである。生存カウンタを用いることにより、例えば、子ノード100がイベント通知パケットを送信する際に生存カウンタがゼロになったならば中継回数が多いと判断して無線パケットの中継を行わないようにすることができる。
第8番目の送信先識別子は無線パケットを最終的に受信すべき最終端の親ノード、又は子ノード100の識別子を表し、第9番目の送信元識別子は無線パケットを送信する発端となった親ノード300、又は子ノード100の識別子を表す。第10番目の電文種別44は、無線パケットの電文がどのような内容であるかを示すものであり、7ビットのコマンド番号と1ビットのレスポンスビットで構成されている。
第11番目のデータ長はデータ部42のバイト数を表し、データ部42の長さはコマンド毎、レスポンス毎に変化する。第12番目の通信経路情報46は、送信元から送信先に無線パケットを中継送信する場合に利用される情報であり、7ビットの中継段数と1ビットのモードビットで構成されている。モードビットがオン(1)の場合には、通信経路指定モードとなり、通信経路45が付加される。通信経路45には、1段目中継ノードの識別子、2段目中継ノードの識別子、・・・N段目の中継ノードの識別子が順に格納され、子ノード100は、この通信経路情報46と通信経路45を利用して無線パケットを送信する。
次に、通信経路情報の構成について述べる。図4の通信経路情報46は、送信元から送信先にパケットを中継送信する場合に利用される情報であり、1ビットのモードビットと、7ビットの中継回数で構成されている。モードビットがオフ(0)の場合は、通信経路未指定モードとなり通信経路45は無い。また、モードビットがオン(1)の場合には、通信経路指定モードとなる。中継経路が付加され親ノード300から子ノード100にパケットを送信する際には、通信経路情報46はどの子ノード100を中継するかを表し、子ノードから親ノードに無線パケットを送信する場合には、通信経路情報46に中断した子ノードを記録する。
ここで、親ノード300が子ノード100に送信するコマンドの無線電文を「呼び出し無線電文」と呼び、親ノード300からの「呼び出し無線電文」に対して子ノードが返す応答を「応答無線電文」と呼ぶ。この電文を送信するためのフォーマットを図5に示す。図5は無線パケット種別の構成を示し、左からレスポンスビット、コマンド番号、電文内容、データ部42及び送信元である。例えば、レスポンスビットがオフ(0)の場合には「呼び出し無線電文」となり、コマンド番号は「2」,電文内容は「データ要求」,データ部は「なし」,送信元は「親ノード」となる。レスポンスビットがオン(1)の場合には、「応答無線電文」、つまり、コマンドを受信した子ノードがコマンドを送信した親ノードにその結果を返すための電文となり、コマンド番号は「2」,電文内容は「データ応答」,データ部は「センサデータ」,送信元は「子ノード」になる。以上、上述した内容が無線通信システムの概要及びデータ構造である。
次に、監視センター(親ノード)が各子ノードまでの通信経路を決定するまでの処理の概要を図1と図11〜14を用いて説明する。図11〜14は、図1の無線通信システム1における親ノード300から各子ノード100までの通信経路を決定するためのルーティング情報を示している。なお、親ノード300と子ノード(100−1〜15)の接続経路は、親ノード300に近い子ノード100から親ノード300までの接続及び中継回数により決まり、親ノードからの距離を表すことから、便宜上AグループからDグループまでの4グループにおけるルーティング情報に分けて説明する。
例えば、図1の子ノード100−1(Aグループ)は、電源がONになると、最初にブロードキャストとなる無線パケットを送出して、無線通信可能な親ノード300又は子ノード100の識別符号と受信レベルを検出する。次に、親ノード300と自ノードの間で中継される回数を無線パケットにより検出した後、親ノード300と通信する際に必要となる送信先の識別符号を決定する。以後、決定した識別符号を送信先として無線パケットを送出することになる。次に、図6のフローチャートを用いて子ノードメインルーチンの流れを説明する。
図6は子ノード100のメインルーチンの流れを示している。例えば、図1の子ノード100−1(Aグループ)では、電源が投入されると、ステップS10において、ブロードキャストとなる無線パケットを送出して通信可能な子ノード及び中継回数を取得するための次段中継ノード探索パケット送信を行う。ステップS10が実行されると、子ノード100−1は、図11のルーティング情報に示される通信可能な親ノード300及び子ノード100−2,6,3,5の識別符号と、親ノード300までの中継回数と、無線パケットの受信レベルと、を取得して自ノードのルーティングテーブルに記憶する。図6のステップS12において、取得したルーティング情報から次段中継ノードを中継回数が最も少ない無線通信先を決定することになる。子ノード100−1は、中継回数が「0」で親ノード300と無線通信できることから無線通信先は親ノード300となる。なお、Aグループの子ノード100−1,2は親ノードに最も近いため中継ノードとなる子ノードを中継することなく、直接親ノード300と無線通信が可能である。
図1のBグループの子ノード100−3は、図12のルーティング情報に示すように、無線通信可能なノードは子ノード100−1,5,8となり、親ノード300に接続するため、子ノード100−1を中継して親ノード300へ接続する経路と、子ノード100−5と子ノード100−1とを中継して親ノード300へ接続する経路と、を有する。この場合、中継回数が1回となる子ノード100−1を無線通信先とする。
また、図1のCグループの子ノード100−8は、図13のルーティング情報に示すように、無線通信可能なノードは子ノード100−3,5,9となり、親ノード300に接続するためには、子ノード100−3,1を中継して親ノード300へ接続する経路と、子ノード100−5,1を中継して親ノード300へ接続する経路と、子ノード100−9,5,1,を中継して親ノード300へ接続する経路と、を有する。この場合、中継回数が2回となる子ノード100−3,5の2経路があるが、受信レベルが大きい子ノード100−3を無線通信先とする。また、図14に示すDグループの子ノード100−14も同様にして無線通信先を決定することになり、図6のステップS12において、全ての子ノード100−1〜15の無線通信先が決まる。
図6のステップS14において、各子ノード100は、他の子ノード100あるいは親ノード300からの無線パケットを受信できたかを確認し、受信した無線パケットに従った処理を行うことになる。また、ステップS16において、受信した無線パケットが「次段中継ノード探査パケット」である場合には、ステップS18の次段中継ノード応答パケット送信サブルーチンを実行する。また、ステップS20において、「次段中継決定パケット」と判定した場合には、ステップS22の次段中継ノード更新サブルーチンを実行する。また、ステップS24において、中継すべき「中継パケット」であると判定した場合には、ステップS26において、パケット中継送信サブルーチンを実行する。さらに、自ノード内で測定した情報を送信する必要がある場合には、ステップS28においてイベントを発生させ、ステップS30においてイベントの内容に対応して「イベント通知パケット」を親ノード300へ送信し、処理を繰り返す。
図7は子ノード100の無線通信における次段中継ノード応答パケット送信サブルーチンの処理の流れを示している。「次段中継ノード探索パケット」を受信した親ノード300と子ノード100は、自ノードの次段中継ノード候補が決定済みであり、自ノードから親ノードまでの最小中継回数を記憶済みであれば、「次段中継ノード応答パケット」を、次段中継ノード探査パケットを送信した子ノード100に向けて返信することになる。
「次段中継ノード応答パケット」を送信する際には、各子ノード100又は親ノード300が一斉に無線パケットを送信することによって発生する混信を避ける必要がある。このことから、図7のステップS40では、タイムスロット番号による送受信タイミングの制御を行うために、タイムスロットカウンタを起動する。ステップS42では、自ノードが次段中継ノードの応答パケットを送信するタイミングを次回送信タイムスロット番号として算出する。ステップS44の判定処理において、算出した次回送信タイムスロット番号が予め決められたタイムスロット最大値よりも大きい場合には、次段中継ノード応答パケット受信待ち時間を経過したことになるので、処理を中断してメインルーチンに戻る。
また、タイムスロット最大値よりも小さい場合にはステップS46に移る。ステップS46において、次段中継ノード応答パケット受信待ち時間内で次回送信タイムスロット番号のタイミングで次段中継ノード応答パケットを送信できる場合には、タイムスロットカウンタと次回送信タイムスロット番号が一致するまで送信待ちをした後、ステップS48において、次段中継ノード応答パケット送信を行う。このような処理により、各子ノード100の次段中継ノード応答パケット送信タイミングが分散され、仮に、同一タイミングで送信したとしても、無線パケットを時間を空けて複数回送信するので、次段中継ノード探索パケット送信した子ノード100が次段中継ノード応答パケットを受信できる確率は極めて高くなる。
図8は子ノードの無線通信における次段中継ノード決定サブルーチンの処理の流れを示している。次段中継ノード決定するため、子ノード100は、次段中継ノード探索パケット送信サブルーチンを実行した後、本サブルーチンを実行する。なお、無線ネットワーク上での長い迂回ルートは無線パケットの輻輳が発生するおそれがあるので、本サブルーチンでは、自ノードより中継回数が大きいノード(親ノード方向とは逆方向ルート)にパケットを中継することを避けている。
次に、図8のステップS50において、子ノード100又は親ノード300から「次段中継ノード応答パケット」を受信したかを判断し、受信した場合には、ステップS52において、次段中継ノード候補と今回受信した次段中継ノード応答パケットの中継候補の中継回数と受信レベルを比較し、今回受信した無線パケットの中継回数と受信レベルとにより候補にすべきと判断した場合にはステップS56にて次段中継ノード候補にしてステップS50に戻る。また、ステップS54にて、次段中継ノード応答パケット受信待ち時間が経過した場合には、次段中継ノード候補が決定したことになる。このように、中継ノードが決定すると、自ノードで決定した中継ノードを他の子ノードに通知するために、ステップS58において、「次段中継ノード決定パケット」を送信する。
図9は子ノードの無線通信における次段中継ノード更新サブルーチンの処理の流れを示している。図6のステップS20において、「次段中継決定パケット」を受信した場合には、図9の次段中継ノード更新サブルーチンを実行する。次段中継決定パケットを受信した他の子ノード100は、ステップS60において、受信無線パケットの中継回数と無線パケットの受信時の受信レベルを利用して、自ノード次段中継ノード候補よりも良い条件であるかを判定する。もし、良い条件であれば、ステップS62において、次段中継ノード決定パケットの送信元ノードを次段中継ノード候補にする。そして、ステップS64において、今回受信した無線パケットを第1優先レベルであると判断した場合には、ステップS66において、「次段中継ノードパケット」を送信する。なお、この次段中継ノード決定パケットを受信したその他の子ノード100も次段中継ノード更新処理を実行することになる。
図10は他の子ノード100から測定結果などのイベント通知パケットを受信して、当該パケットを中継送信するパケット中継送信サブルーチンの処理の流れを示している。次段中継ノードに対してイベント通知パケットを中継送信する場合は、処理を開始するのに先立って、イベント通知パケットが正常に中継されない場合に対応するため、再度イベント通知パケットを送信するためのリトライカウンタ(例えば3回)をステップS70においてセットする。
図10のステップS74〜S82において、次段中継ノード候補の内の一つにイベント通知パケットを送信する。リトライカウンタが「0」の時は、優先レベルの高い次段中継ノードに無線パケットを送信し、リトライカウンタが「1」のときは第2優先レベルの次段中継ノードへ送信し、リトライカウンタが「2」の時は第3優先レベルの次段中継ノードを送信する。もし、次段中継ノード候補が1個のみの場合には、常に、第1優先レベルの次段中継ノードに無線パケットを送信すればよい。なお、受信したイベント通知パケットの中継元識別子、送信元識別子が次段中継ノードである場合には、当該次段中継ノード候補には送信せずに、他の候補を割り当てることにより、候補が短時間に変化するピンポン現象を防止する。
通常は、次段中継ノードが送信したイベント通知パケットを正常に受信できるので、一定時間内で受信できた場合には、正常と判断する。もし、ステップS76において、一定時間内に受信できない場合には、ステップS78において、リトライ回数を減算し、ステップS82にてリトライ回数がゼロでなければ再度ステップS72からの処理を繰り返す。正常に受信できた場合には、ステップS84において、次段中継ノード探索パケット送信を行い、ステップS86において、次段中継ノード決定を実行する。
次に、各子ノードが自ノードのルーティングテーブル情報を親ノードに通知する処理を述べる。各子ノードは、自ノードのルーティングテーブル情報が決定した場合、自ノードのルーティングテーブル情報を格納した無線パケットを親ノードにイベント通知する。このイベント通知を受信した親ノードは、無線パケットから当該子ノードのルーティングテーブル情報を取得する。これにより、親ノードは、全子ノードのルーティングテーブル情報を持つことになり、各子ノードへポーリングするときの経路を決定できる。なお、各子ノードがルーティングテーブル情報を親ノードに送信するのは、ルーティングテーブル情報に変更があったとき、及び、定期的に送信する。ただし、定期的に送信する場合は、輻輳が懸念されるため、ルーティングテーブル情報に変更があった時のみ実施する方法でもよい。
以上、上述した処理を実行することで、図1の無線通信システム1における実線の矢印のようなルーティング経路が決定され、各子ノード100−1〜15がルーティング情報を記憶すると共に、各子ノード100で測定された情報がイベント通知パケットとして親ノード300及び監視センター700へ送信される。また、親ノード300及び監視センター700が各子ノード100のルーティングテーブルの情報を持つことにより、子ノード100へのポーリングが可能となるだけでなく、各子ノード100の位置関係を把握することも可能となる。
次に、監視センターから子ノードにコマンドを通信経路指定モードにてコマンドを送信する処理の流れについて述べる。図15は通信経路指定モードによる無線パケットの送信例を示し、監視センター700から子ノード100にコマンドを送信する処理を示している。最初に、監視センター700は、図14のルーティング情報から子ノード100−15への経路を探索する。これは、子ノード100−15から親ノード300への経路を探索すればよい。よって、親ノード300,子ノード100−2,子ノード100−7,子ノード100−12,子ノード100−15という経路が決定する。次に、監視センター700は、親ノード300にコマンドを送信する。このとき監視センター700が親ノード300に送信するコマンドの電文フォーマットは、図4のヘッダ部41におけるシステム識別子以降である。
図15の監視センター700からのコマンドを受信した親ノード300は、子ノード100−2にコマンドの無線パケットを送信する。このとき、図4のヘッダ部には、(1)中継先識別子を子ノード100−2の識別子、(2)中継元識別子を親ノード300の識別子、(3)送信先識別子を子ノード100−15の識別子、(4)送信元識別子を親ノード300の識別子、(5)通信経路情報46のモードビットを「ON」、(6)中継段数を「3」、(7)通信経路45の一段目中継ノード識別子を子ノード100−2の識別子、(8)二段目中継ノード識別子を子ノード100−7の識別子、(9)三段目中継ノードの識別子を子ノード100−12の識別子、として無線パケットを送信する。
無線パケットを受信した子ノード100−2は、中継先識別子が自ノードの識別子、送信先識別子が子ノード100−15の識別子であるので、自ノードが中継送信すべき無線パケットであると認識する。そして、子ノード100−2は、通信経路情報46のモードビットが通信経路指定モードであるので、次段の中継ノードを、通信経路情報46の中継段数と通信経路45から探索する。具体的には、通信経路45の一段目中継ノードが自ノード(子ノード100−2)なので、二段目中継ノード識別子である子ノード100−7に中継すべきであると判断する。
子ノード100−2は、子ノード100−7に無線パケットを送信する。このとき、(1)中継先識別子を子ノード100−7の識別子、(2)中継元識別子を自ノードの識別子、(3)送信先識別子以降は、再計算した誤り検出符号43を除き、受信した無線パケットの内容をそのまま送信する。
無線パケットを受信した子ノード100−7は、中継先識別子が自ノードの識別子、送信先識別子が子ノード100−15の識別子であるので、自ノードが中継送信すべき無線パケットであると認識する。そして、子ノード100−7は、通信経路情報46のモードビットが通信経路指定モードであるので、次段の中継ノードを通信経路情報46の中継段数と通信経路45から探索する。具体的には、通信経路45の二段目中継ノードが自ノード(子ノード100−7)なので、三段目中継ノード識別子である子ノード100−12に中継すべきであると判断する。子ノード100−7は、子ノード100−12に無線パケットを送信する。このとき、(1)中継先識別子を子ノード100−12の識別子、(2)中継元識別子を自ノードの識別子、(3)送信先識別子以降は、再計算した誤り検出符号43を除き、受信した無線電文内容をそのまま送信する。
無線パケットを受信した子ノード100−12は、(1)中継先識別子が自ノードの識別子、(2)送信先識別子が子ノード100−15であるので、自ノードが中継送信すべき無線パケットであると認識する。そして、子ノード100−12は、通信経路情報46のモードビットが通信経路指定モードであるので、次段の中継ノードを、通信経路情報46の中継段数と通信経路45から検索する。具体的には、通信経路45の三段目中継ノードが自ノード(子ノード100−12)であり、中継段数も3であるから、自ノードが終端の中継ノードであることがわかるので、送信先識別子で指定されている子ノード100−15へ送信すべき無線パケットであると判断する。
子ノード100−12は、子ノード100−15に無線パケットを送信する。このとき、(1)中継先識別子を子ノード100−15の識別子、(2)中継元識別子を自ノードの識別子、送信先識別子以降は、再計算した誤り検出符号43を除き、受信した無線パケットの内容をそのまま送信する。
無線パケットを受信した子ノード100−15は、(1)中継先識別子が自ノードの識別子、送信先識別子も自ノードの識別子であるので、自ノードが最終的に受信すべき無線電文であると認識する。そして、子ノード100−15は、当該コマンドに関する処理を行った後に、送信元である親ノード300にレスポンスの無線パケットを送信する。
子ノード100−15は、レスポンスの無線パケットを送信する際、まず、コマンドの無線パケットの通信経路情報46が通信経路指定モードであったので、コマンドの無線パケットの通信経路情報46の中継段数と、通信経路45を利用してレスポンス電文の経路を得る。具体的には、コマンドの無線パケットの通信経路45の中継ノード識別子を逆順にすると、(1)一段目中継ノードは子ノード100−12,(2)二段目中継ノードは子ノード100−7,(3)三段目中継ノードは100−2となり、これがレスポンスの無線パケットの通信経路45となる。
子ノード100−15は、(1)レスポンスの無線電文のヘッダ部41の中継先識別子を子ノード100−12、(2)中継元識別子を自ノードの識別子、送信先識別子を親ノードの識別子、(3)送信元識別子を自ノードの識別子とし、(4)電文種別44のレスポンスビットをON、(5)通信経路情報46のモードビットを「ON」(通信経路指定モード)、(6)中継段数を「3」、(7)一段目中継ノード識別子を子ノード100−12の識別子、(8)二段目中継ノード識別子を子ノード100−7の識別子、(9)三段目中継ノード識別子を子ノード100−2の識別子として、子ノード100−12に無線パケットを送信する。そして、これ以降は、これまでに説明した手順により、レスポンスの無線パケットが親ノード300まで送信されることになる。
図16は監視センター700から子ノードに別経路によりコマンドを送信する処理を示している。具体的には、親ノード300から子ノード100−15への無線パケット送信において、子ノード100−7が中継不能になった場合の処理である。まず、子ノード100−2は、無線パケットを子ノード100−7へ送信した後、一定時間、子ノード100−7の無線パケットを傍受することで、送信した無線パケットを子ノード100−7が受信したかを確認する。
子ノード100−2は、無線パケットを送信した後、一定時間経過しても子ノード100−7の無線パケットを傍受できない場合は、再度、無線パケットを子ノード100−7に送信して一定時間、無線パケットを傍受する。この処理を指定回数(例えば、3回)繰り返す。指定回数が終了しても子ノード100−7の無線パケットを受信できない場合は、中継不能と判断し、子ノード100−7が異常である旨を親ノード300に送信する。
このとき、子ノード100−2は、(1)中継先識別子を親ノード300の識別子、(2)中継元識別子を自ノードの識別子、(3)送信先識別子を親ノード300の識別子、(4)送信元識別子を自ノード識別子、(5)電文種別44のレスポンスビットを「OFF」、(6)コマンド番号を「14」,(7)通信経路情報46のモードビットを「OFF」、(8)中継段数を「0」とし、(9)データ部42に中継不能である子ノード100−7の識別子を格納して、親ノード300に無線パケットを送信する。
無線パケットを受信した親ノード300は、データ部42から子ノード100−7が中継不能であることを知り、中継不能な子ノード100−7を除いた中継回数の少ない経路を図12の子ノード100−4と、図13の子ノード100−12から探索して、親ノード300,子ノード100−2,子ノード100−4,子ノード100−15という経路を決定する。以後、この経路を利用して子ノード100−15に無線パケットを送信する。
図17は子ノードを固定ノードと移動ノードに分け、移動ノードの位置を監視するため、移動ノードが自ノードの位置を親ノードに通知する処理の流れを示している。予め配置された固定ノードで構築された無線通信システムにおいて、移動ノードがどの固定ノードの近傍に位置しているかの情報を親ノードが収集することで、移動ノードの位置を監視する。なお、本実施形態は、予め、固定ノードと親ノードとの間で通信経路を構築しておき、その通信経路上に移動ノードが入り込むことにより、移動ノードの位置を探索するものである。移動ノードは、例えば、周期タイミングや押しボタン押下げなどの自ノードの事象が発生した場合、ステップS90にてその事象を検出し、ステップS92において次段中継に利用する固定ノードと固定ノードの近傍に位置している移動ノードを探索するために、次段中継ノード探索パケットを送信する。固定ノードは移動ノードからの次段中継ノード探索パケットを受信すると、次段中継ノード応答パケット送信により次段中継ノード応答パケットを受信する。さらに、移動ノードは、ステップS94の近傍ノード決定により固定ノードである次段中継ノード候補と他の固定ノードである近傍ノードを決定して、ステップS96において、イベント通知パケット送信により、これらの情報が親ノードに送信される。
図18は、移動ノードで実行される近傍ノード決定サブルーチンである。移動ノードがステップS100において、次段中継ノード応答パケットを受信すると、ステップS102を実行し、近傍の固定ノードが次段中継ノード候補になれるかどうかを中継回数と、受信強度レベルから判断して、ステップS102において、次段中継ノード応答パケットの送信元ノードを次段中継ノード候補とする。ステップS108において、この候補の中から、受信電界強度レベルが最大のものを取り出し、近接ノードを決定する。さらに、ステップS104において、次段中継ノード応答パケット受信待ち時間が経過した場合には、近接ノードが確定する。このような処理により、移動ノードの位置把握が容易に実現することが可能である。
各子ノードが自律的に構築した親ノードまでの経路情報を親ノードに通知することで、親ノード又は各子ノードまでの経路情報を把握することができるため、親ノードから各子ノードにポーリングできる。その後、親ノードが収集した各子ノードからの経路情報を元にして、各子ノードを中心にした経路情報を構築して、その経路情報を当該ノードに登録し固定化することにより、ノード間で通信経路情報の交換を行うことなく、ノード間通信を行うことができる。
図19は子ノード間ルーティングテーブル作成に関する中継処理を示し、子ノード100−4からその他の子ノードと通信する場合について示している。図19中、各ノードにおけるaグループからdグループの4区分は、子ノード100−4を中心にした接続関係を示している。次に、子ノード100−4を例にして、子ノード間ルーティングテーブル作成処理について述べる。
図20は子ノード間ルーティングテーブル作成処理の流れを示し、上述した親ノードと子ノード間の通信開始から親ノードから子ノードへのポーリングに必要な下りルーティング情報を作成した後、親ノードが子ノード間ルーティング情報を作成する一連の流れを示している。本実施形態で特徴的な事項の一つは、親ノードから子ノードへのポーリングに必要なルーティング情報を利用して、子ノード間ルーティング情報を作成し、その情報を子ノードに記憶させることである。
図20の処理が開始すると、ステップS122において、最初に親ノードと子ノード間の通信が開始する。ステップS122により、子ノード近傍の他の子ノード又は親ノードの存在が明らかになる。次に、ステップS124において、親ノードは、子ノードから上りルーティング情報を取得する。ステップS128において、その上りルーティング情報に基づいて、親ノードから各子ノードへのポーリングを可能にする下りルーティング情報を親ノードが作成する。次に、ステップS128において、作成した下りルーティング情報に基づいて、親ノードは、各子ノード間ルーティング情報を作成する。
図21は親ノードによって作成された子ノード間ルーティング情報における子ノード100−4のルーティングテーブルを示している。図21のルーティングテーブルは、子ノード100−4から親ノード300に通信するための上りルーティングテーブルと、子ノード100−4から他の子ノード100−1〜100−15に通信するための子ノード間ルーティングテーブルと、を含んでいる。図21の第1候補〜第3候補は中継回数の少ない順に中継先の候補が示されている。子ノード100−4は、このルーティングテーブルを用いて、各ノードへの通信が可能となる。また、何らかの原因で第1候補との通信ができない場合には、第2候補,第3候補に変更して通信を維持できることになる。この処理により、上述した経路情報の交換が不要となり輻輳などの低減が実現できる。
次に、子ノード100−4から子ノード100−1への通信における第1候補の決定手順を図22のルーティング情報と図19の中継処理図とに基づいて説明する。子ノード100−4から子ノード100−1への中継ルートは、子ノード100−2を中継するルートと、子ノード100−7,100−2を中継するルートと、子ノード100−12,100−7,100−2を中継するルートの3つがある。それぞれ、中継回数は1,2,3となり、図22に示すように、ルーティング100−4→100−2→100−1の中継回数1回を決定する。親ノードにて決定された子ノード間ルーティング情報は、図23に示すデータ部のデータフォーマットに格納されて子ノード100−4に送信されることになる。図23は子ノード間ルーティング情報を送信するデータ部42のデータフォーマットを示し、図21に示した各ノード毎に第1〜第3候補の情報をデータ部42に格納する。
以上、上述したように、本実施形態に係る無線通信システムを用いることにより、4つの利点がある。第1の利点は、低速な無線通信であっても自律型ネットワーク化が可能であるという利点である。また、第2の利点は、従来よりも簡単なプロトコルで信頼性を確保できる無線通信システムを実現することが可能となるという利点である。また、第3の利点は、無線通信システムにより、子ノードのルーティングテーブルの容量を最小限に抑えると共に、移動や故障した子ノードを判別し易く、子ノードからのイベント通信、親ノードからのポーリング通信等を容易にするという利点である。さらに、第4の利点は、子ノード間ルーティング情報を子ノードが固定化し、子ノードから他の子ノードへの通信が可能となることにより、経路情報の無駄な送信が低減できるという利点である。
なお、親ノードと子ノードとを接続する処理において、中継回数が同じ中継ノードがある場合には、受信レベルの高い中継ノードを選択したが、これに限定するものではなく、各経路におけるトータルの受信電界強度又は伝送エラー率を利用し、無線電波の良好な経路を選択してもよい。
また、親ノードが作成した子ノード間ルーティングテーブルを親ノードに接続したPCに送ることで表示、可視化することができ、どのノードがどのようなルーティングテーブルを有しているのかを簡単に把握することができる。さらに、作成された子ノード間ルーティングテーブルの手動修正も可能になることから、障害物によるマルチパスフェージングの影響を加味したルーティングテーブルとすることも可能となる。