以下、添付図面を参照しながら、実施形態の無線通信システム、無線子機およびチャンネル探索方法について詳細に説明する。以下で示す実施形態では、所定エリア内に分散配置された複数の計測装置により計測されたデータを、無線通信を利用して収集するシステムへの適用例を想定するが、適用可能なシステムはこれに限らない。本発明は、周辺の電波環境に応じて無線通信に使用するチャンネルの切り替えが行われる無線通信システムに対し、広く適用可能である。
図1は、本実施形態の無線通信システム1の構成例を示す図である。本実施形態の無線通信システム1は、無線親機10と、複数の無線子機20a,20b,20c,20dとを含む。無線子機20a,20bは、無線親機10との間で直接、無線通信を行う。また、無線子機20c,20dは、無線親機10との間で無線子機20aを介して無線通信を行う。つまり、無線子機20aは、無線親機10と無線子機20c,20dとの間の無線通信を中継する機能を持つ。このように、本実施形態の無線通信システム1は、無線親機10を頂点として複数の無線子機20a,20b,20c,20dがツリー状に接続された、いわゆるツリー型のマルチホップ無線ネットワークとして構成されている。
無線親機10は、データ収集装置2と接続されている。また、複数の無線子機20a,20b,20c,20d(以下、これらを総称する場合は無線子機20と表記する)は、所定エリア内に分散配置された複数の計測装置3a,3b,3c,3d(以下、これらを総称する場合は計測装置3と表記する)と各々接続されている。複数の計測装置3は、データ収集装置2が分析の対象とする所定のデータを計測する装置である。データ収集装置2は、複数の計測装置3の計測データを収集して分析する情報処理装置である。
無線親機10および複数の無線子機20は、それぞれ、例えば無線チップやこれを制御するCPUなどのプロセッサ、プロセッサの動作領域として利用されるRAM、プロセッサが実行する動作プログラムや各種データを格納するROM、周辺回路などを基板上に実装した無線モジュールとして構成される。無線モジュールとして構成される無線親機10や無線子機20は、例えばドングルやカードなどの形態でUSBポートなどの汎用ポートあるいは専用ポートを介してデータ収集装置2や計測装置3に接続される。また、無線モジュールとして構成される無線親機10や無線子機20は、データ収集装置2や計測装置3の内部基板上に搭載され、データ収集装置2や計測装置3に内蔵された形態であってもよい。
本実施形態の無線通信システム1においては、無線親機10と複数の無線子機20との間の無線通信を通じて、データ収集装置2が複数の計測装置3の計測データを収集して分析することができる。ここで、本実施形態の無線通信システム1では、使用可能な複数の無線チャンネルのうちの1つのチャンネルを選択的に使用して、無線親機10と複数の無線子機20との間の無線通信が行われる。なお、図1に示す無線通信システム1の構成は一例であり、無線子機20の数や接続形態などは、適用されるシステムの構成に合せて任意に変更すればよい。
図2は、無線親機10の機能的な構成の一例を示すブロック図である。無線親機10は、例えば図2に示すように、送信部11、受信部12、出力部13、チャンネル切り替え部14、応答処理部15および記憶部16を備える。送信部11、受信部12、出力部13、チャンネル切り替え部14および応答処理部15は、例えば、プロセッサがRAMを動作領域として利用し、ROMに格納された動作プログラムに従って無線チップや周辺回路などの動作を制御することで実現される機能部である。記憶部16は、例えばROMなどを用いて実現される機能部であり、子機リスト17を記憶している。
子機リスト17は、無線親機10の通信相手となる無線子機20のリストである。子機リスト17には、無線親機10の通信相手となる各無線子機20を識別する識別情報が事前に登録される。本実施形態では、子機リスト17に登録される無線子機20の識別情報として、MAC(Media Access Control)アドレスを想定するが、これに限らない。
送信部11は、所定の無線通信プロトコルに従って、無線子機20に対して無線信号を送信する。受信部12は、所定の無線通信プロトコルに従って、無線子機20から送信された無線信号を受信する。送信部11が無線子機20に対して送信する無線信号としては、計測装置3の計測データを無線親機10に要求するデータ要求や、後述の応答処理部15の制御に応じて送信されるチャンネルスキャン応答(応答信号)などがある。受信部12が無線子機20から受信する無線信号としては、データ要求の応答として無線子機20から送信された計測データや、無線通信で使用するチャンネルを探索するために無線子機20から送信されたチャンネルスキャン要求(要求信号)などがある。これらの無線信号の送受信は、上述のように、複数のチャンネルのうちの1つを使用して行われる。
出力部13は、受信部12が無線信号として無線子機20から計測装置3の計測データを受信した場合に、この計測データをデータ収集装置2に出力する。
チャンネル切り替え部14は、無線親機10の周辺の電波環境を監視し、電波環境が悪化した場合に、無線子機20との間の無線通信に使用するチャンネルの切り替えを行う。例えば、チャンネル切り替え部14は、受信部12による受信信号強度(RSSI:Received Signal Strength Indicator)、受信電力のデシベル値または真値、SNR(Signal Noise Rate)などのいずれかもしくは組合せにより無線子機20との間の無線通信の状態を判定し、無線子機20との間の無線通信の状態が所定の基準を満たさない場合に電波環境が悪化したと判断して、無線子機20との間の無線通信に使用するチャンネルの切り替えを行う。なお、チャンネル切り替え部14が電波環境の悪化を判断する方法は、ここで例示する方法に限らない。
また、チャンネル切り替え部14は、ユーザ操作に応じて無線子機20との間の無線通信に使用するチャンネルを切り替える構成であってもよい。例えば、無線親機10に対する各種の設定を行うための設定ツールを用いてユーザがチャンネルを変更する操作を行った場合に、チャンネル切り替え部14が、無線子機20との間の無線通信に使用するチャンネルの切り替えを行う。また、チャンネル切り替え部14は、周辺の電波環境に応じて自動的にチャンネルの切り替えを行う機能と、ユーザ操作に応じてチャンネルの切り替えを行う機能との双方を併せ持つ構成であってもよい。
チャンネル切り替え部14によりチャンネルの切り替えが行われた場合、無線子機20側は無線親機10をロストするため、無線子機20側で後述のチャンネル探索処理が行われ、無線子機20から無線親機10に対してチャンネルスキャン要求が送信される。また、無線子機20の起動時においても、無線子機20側で後述のチャンネル探索処理が行われ、無線子機20から無線親機10に対してチャンネルスキャン要求が送信される。ここで、無線子機20が無線親機10と一致したチャンネル、つまりチャンネル切り替え部14による切り替え後のチャンネルでチャンネルスキャン要求を送信した場合、このチャンネルスキャン要求が受信部12により受信されることとなる。チャンネルスキャン要求には、このチャンネルスキャン要求の送信元となる無線子機20の識別情報(例えばMACアドレス)が含まれている。
応答処理部15は、受信部12が無線子機20からチャンネルスキャン要求を受信した場合に、このチャンネルスキャン要求に含まれる無線子機20の識別情報(例えばMACアドレス)を、記憶部16が記憶する子機リスト17と照合する。そして、受信部12が受信したチャンネルスキャン要求に含まれる識別情報が、子機リスト17に登録されている識別情報のいずれかと一致する場合に、このチャンネルスキャン要求の送信元である無線子機20に対して、送信部11からチャンネルスキャン応答を送信する。
図3は、無線子機20の機能的な構成の一例を示すブロック図である。無線子機20は、例えば図3に示すように、送信部21、受信部22、取得部23、チャンネル探索処理部24、回数カウンタ25およびタイマ26を備える。送信部21、受信部22、取得部23、チャンネル探索処理部24、回数カウンタ25およびタイマ26は、例えば、プロセッサがRAMを動作領域として利用し、RAMに格納された動作プログラムに従って無線チップや周辺回路などの動作を制御することで実現される機能部である。
送信部21は、所定の無線通信プロトコルに従って、無線親機10に対して無線信号を送信する。受信部22は、所定の無線通信プロトコルに従って、無線親機10から送信された無線信号を受信する。送信部21が無線親機10に対して送信する無線信号としては、無線親機10からのデータ要求に応答して送信される計測装置3の計測データや、後述のチャンネル探索処理部24の制御に応じて送信されるチャンネルスキャン要求などがある。受信部22が無線親機10から受信する無線信号としては、上述のデータ要求やチャンネルスキャン応答などがある。これらの無線信号の送受信は、上述のように、複数のチャンネルのうちの1つを使用して行われる。
取得部23は、受信部22が無線親機10からデータ要求を受信した場合に、このデータ要求に応じて計測装置3から計測データを取得する。取得部23が取得した計測装置3の計測データは、送信部21から無線親機10に送信される。
チャンネル探索処理部24は、無線子機20の起動時、または、受信部22が無線親機10からの無線信号を所定時間受信しない場合に、チャンネル探索処理を行う。チャンネル探索処理は、無線親機10との間の無線通信で使用するチャンネルを探索する処理であり、無線通信で使用するチャンネルを変更しながら無線親機10に対してチャンネルスキャン要求を送信し、無線親機10からチャンネルスキャン応答を受信したときのチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する処理である。なお、受信部22が無線親機10からの無線信号を所定時間受信しない場合の典型例として、無線親機10のチャンネル切り替え部14が、無線通信に使用するチャンネルを切り替えた場合が挙げられる。
ここで、本実施形態におけるチャンネル探索処理では、チャンネルスキャン要求の送信を1つのチャンネルで1回のみ行うのではなく、ランダムに設定される送信間隔で所定回数行う。すなわち、チャンネル探索処理部24は、無線子機20の起動時、または、無線親機10からの無線信号を所定時間受信しない場合に、送信部21から無線親機10に対してチャンネルスキャン要求を送信するが、無線親機10からのチャンネルスキャン応答が受信部22により受信されない場合、一定時間経過後にチャンネルを変更してチャンネルスキャン要求を再度送信するのではなく、同じチャンネルで所定回数(例えば3回など)を限度に、チャンネルスキャン要求の送信を繰り返す。このとき、チャンネルスキャン要求の送信間隔は、所定の時間範囲(例えば1.2秒~2.8秒など)内でランダムに設定される。
チャンネル探索処理部24は、1つのチャンネルでチャンネルスキャン要求を所定回数送信しても無線親機10からチャンネルスキャン応答を受信できない場合に、チャンネルを変更して所定回数のチャンネルスキャン要求の送信を繰り返す。そして、チャンネル探索処理部24は、チャンネルスキャン要求に対する応答として無線親機10から送信されたチャンネルスキャン応答を受信部22が受信した場合に、そのときのチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する。
回数カウンタ25は、チャンネルスキャン要求の送信回数をカウントするカウンタである。この回数カウンタ25は、送信部21からチャンネルスキャン要求が送信されるたびに値がインクリメントされ、チャンネルが変更されるとリセットされる。チャンネル探索処理部24は、この回数カウンタ25を参照することで、1つのチャンネルでチャンネルスキャン要求を何回送信したかを判断できる。
タイマ26は、無線親機10から無線信号を受信していない時間を計測するタイマである。タイマ26は、無線親機10から何らかの無線信号を受信するとリセットされる。チャンネル探索処理部24は、このタイマ26を参照することで、無線親機10から無線信号を受信していない時間が所定時間に達したかどうかを判断できる。
図4は、無線子機20のチャンネル探索処理部24による処理手順の一例を示すフローチャートである。無線子機20のチャンネル探索処理部24は、無線子機20の起動時、または、無線親機10からの無線信号を所定時間受信しない場合に、例えば図4のフローチャートに示す手順でチャンネル探索処理を行う。
チャンネル探索処理が開始されると、無線子機20のチャンネル探索処理部24は、まず、現在設定されているチャンネルで、送信部21から無線親機10に対し、無線親機10との間の無線通信に使用するチャンネルを探索するためのチャンネルスキャン要求を送信する(ステップS101)。このチャンネルスキャン要求には、送信元を示す情報として無線子機20のMACアドレスが含まれている。
次に、チャンネル探索処理部24は、受信部22によって無線親機10からのチャンネルスキャン応答が受信されたか否かを判定する(ステップS102)。そして、受信部22がチャンネルスキャン応答を受信していない場合(ステップS102:No)、チャンネル探索処理部24は、現在設定されているチャンネルで無線親機10に対して送信したチャンネルスキャン要求の送信回数が所定回数に達したか否かを判定する(ステップS103)。
ここで、現在設定されているチャンネルでチャンネルスキャン要求を所定回数送信していない場合(ステップS103:No)、チャンネル探索処理部24は、ステップS101に戻って、無線親機10に対するチャンネルスキャン要求を送信部21から再度送信する。このとき、前回のチャンネルスキャン要求の送信と今回のチャンネルスキャン要求の送信との間の間隔(送信間隔)は、所定の時間範囲内でランダムに設定される。
一方、現在設定されているチャンネルで無線親機10に対して送信したチャンネルスキャン要求の送信回数が所定回数に達した場合(ステップS103:Yes)、チャンネル探索処理部24は、現在設定されているチャンネルを、無線親機10との間の無線通信に使用可能な他のチャンネルに変更する(ステップS104)。そして、チャンネル探索処理部24は、ステップS101に戻って、ステップS104で変更後のチャンネルで、送信部21から無線親機10に対し、チャンネルスキャン要求を再度送信する。
チャンネル探索処理部24は、受信部22によって無線親機10からのチャンネルスキャン応答が受信されるまで、以上のステップS101からステップS104の処理を繰り返す。そして、受信部22によって無線親機10からのチャンネルスキャン応答が受信されると(ステップS102:Yes)、現在設定されているチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定し(ステップS105)、チャンネル探索処理を終了する。
以上のチャンネル探索処理により無線親機10との間の無線通信に使用するチャンネルが確定すると、無線子機20は、その後、確定したチャンネルを使用して、受信部22による無線親機10からのデータ要求の受信や、送信部21による無線親機10に対する計測データの送信を行う。
図5は、無線親機10の応答処理部15による処理手順の一例を示すフローチャートである。無線親機10の応答処理部15は、上述の無線子機20のチャンネル探索処理部24によってチャンネル探索処理が行われる際に、例えば図5のフローチャートで示す手順でチャンネル探索処理に対する応答処理を行う。
すなわち、無線親機10の応答処理部15は、まず、受信部12によって無線子機20からのチャンネルスキャン要求が受信されたか否かを判定する(ステップS201)。このとき、無線親機10と無線子機20との間で使用するチャンネルが一致していれば、無線子機20からのチャンネルスキャン要求が受信部12によって受信されることになる。
応答処理部15は、受信部12によって無線子機20からのチャンネルスキャン要求が受信された場合(ステップS201:Yes)、次に、このチャンネルスキャン要求に含まれる無線子機20のMACアドレスを記憶部16が記憶する子機リスト17と照合し、チャンネルスキャン要求に含まれる無線子機20のMACアドレスが子機リスト17に登録されたいずれかのMACアドレスと一致するか否かを判定する(ステップS202)。そして、応答処理部15は、チャンネルスキャン要求に含まれる無線子機20のMACアドレスが子機リスト17に登録されたいずれかのMACアドレスと一致する場合(ステップS202:Yes)、このチャンネルスキャン要求の送信元の無線子機20を宛先としてチャンネルスキャン応答を送信し(ステップS203)、応答処理を終了する。
一方、チャンネルスキャン要求に含まれる無線子機20のMACアドレスが子機リスト17に登録されたいずれのMACアドレスとも一致しない場合(ステップS202:No)、応答処理部15は、チャンネルスキャン要求の送信元が無線親機10の通信相手ではないと判断し、チャンネルスキャン応答を送信することなく応答処理を終了する。
ここで、図1の構成例における無線親機10と無線子機20aとの間の無線通信に注目し、本実施形態の無線通信システム1の具体的な動作の一例について、図6および図7を参照して説明する。図6は、無線子機20aの起動時における無線通信システム1の動作の一例を説明するシーケンス図であり、図7は、無線親機10がチャンネルを切り替えた際の無線通信システム1の動作の一例を説明するシーケンス図である。なお、ここでは無線子機20aが1つのチャンネルで送信するチャンネルスキャン要求の回数が3回までと定められているものとする。
まず、図6を参照して、無線子機20aの起動時における動作例を説明する。無線子機20aは、起動時に、現在設定されているチャンネルで無線親機10に対しチャンネルスキャン要求を送信する(ステップS301)。このとき、無線子機20aに設定されているチャンネルは、無線親機10に設定されているチャンネルと一致しないものとする。このため、無線子機20aが送信したチャンネルスキャン要求は無線親機10に受信されず、無線親機10から無線子機20aに対してチャンネルスキャン応答が送信されることはない。
無線子機20aは、無線親機10からチャンネルスキャン応答を受信できないため、現在設定されているチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS302、ステップS303)。このとき、チャンネルスキャン要求の送信間隔、つまり、ステップS301でチャンネルスキャン要求を送信してからステップS302でチャンネルスキャン要求を送信するまでの間隔と、ステップS302でチャンネルスキャン要求を送信してからステップS303でチャンネルスキャン要求を送信するまでの間隔は、それぞれ所定の時間範囲(例えば1.2秒~2.8秒など)内でランダムに設定される。
無線子機20aは、現在設定されているチャンネルで無線親機10に対して合計3回(所定回数の一例)チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、現在設定されているチャンネルを、無線通信に使用可能な他のチャンネルに変更する(ステップS304)。そして、無線子機20aは、ステップS304で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS305)。このとき、ステップS304で変更した後のチャンネルは、無線親機10に設定されているチャンネルと一致しているとする。このため、無線子機20aが送信したチャンネルスキャン要求は、無線親機10によって受信される。
無線親機10は、無線子機20aからチャンネルスキャン要求を受信すると、このチャンネルスキャン要求に含まれる送信元のMACアドレスを、記憶部16が記憶する子機リスト17と照合する(ステップS306)。ここでは、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致しているものとする。無線親機10は、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致していることを確認すると、このMACアドレスを宛先として(つまり、チャンネルスキャン要求の送信元の無線子機20aを宛先として)、チャンネルスキャン応答を送信する(ステップS307)。
このとき、無線子機20aは無線親機10と共通のチャンネルを使用しているため、無線親機10から送信されたチャンネルスキャン応答は、無線子機20aによって受信される。無線子機20aは、無線親機10からのチャンネルスキャン応答を受信すると、現在設定されているチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する(ステップS308)。
なお、図6に示す例では、ステップS305で無線子機20aが送信したチャンネルスキャン要求が無線親機10により受信されるものとしているが、無線子機20aが無線親機10と一致するチャンネルでチャンネルスキャン要求を送信しても、例えば無線信号の混信などの影響によりこのチャンネルスキャン要求が無線親機10に受信されないこともある。しかし、本実施形態では、無線子機20aが1つのチャンネルで無線親機10に対するチャンネルスキャン要求の送信を所定回数(例えば3回)を限度に繰り返すので、無線子機20aが無線親機10と一致するチャンネルでチャンネルスキャン要求を送信すれば、このチャンネルスキャン要求が無線親機10により受信される可能性は極めて高い。
ステップS308で無線子機20aがチャンネルを確定した後、無線親機10が無線子機20aに対してデータ要求を送信すると(ステップS309)、このデータ要求が無線子機20aによって受信される。無線子機20aは、無線親機10からのデータ要求を受信すると、計測装置3aの計測データを取得し、データ要求に対する応答として、取得した計測データを無線親機10に対して送信する(ステップS310)。この計測データは無線親機10により受信され、データ収集装置2に出力される。以降、無線親機10においてチャンネルの切り替えが行われるまでの間は、無線親機10と無線子機20aとの間で、共通のチャンネルを使用してデータ要求と計測データの送受信が行われる。
次に、図7を参照して、無線親機10がチャンネルを切り替えた際の動作例について説明する。無線親機10がチャンネルを切り替える前は、無線親機10と無線子機20aが共通のチャンネルを使用して無線通信を行うため、無線親機10が無線子機20aに対してデータ要求を送信すると(ステップS401)、このデータ要求が無線子機20aにより受信される。そして、このデータ要求に対する応答として、無線子機20aから無線親機10に対し計測装置3aの計測データが送信され(ステップS402)、この計測データが無線親機10により受信され、データ収集装置2に出力される。
ここで、無線親機10の周辺の電波環境が悪化したとする。この場合、無線親機10は、電波環境の悪化を検知して(あるいはユーザ操作に応じて)無線通信に使用するチャンネルの切り替えを行う(ステップS403)。無線親機10が無線通信に使用するチャンネルの切り替えを行うと、無線親機10と無線子機20aとの間で無線通信に使用するチャンネルが一致しなくなる。このため、無線親機10が無線子機20aに対してデータ要求を送信しても(ステップS404)、このデータ要求は無線子機20aに受信されない。
無線子機20aは、無線親機10から無線信号を受信しない時間(例えばステップS401で無線親機10から送信されたデータ要求を受信してからの経過時間)が所定時間Txに達すると、現在設定されているチャンネルで無線親機10に対しチャンネルスキャン要求を送信する(ステップS405)。このとき、無線子機20aに設定されているチャンネルは、無線親機10に設定されているチャンネル(つまり、ステップS403で切り替えた後のチャンネル)と一致しないため、無線子機20aが送信したチャンネルスキャン要求は無線親機10に受信されず、無線親機10から無線子機20aに対してチャンネルスキャン応答が送信されることはない。
無線子機20aは、無線親機10からチャンネルスキャン応答を受信できないため、現在設定されているチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS406、ステップS407)。このとき、チャンネルスキャン要求の送信間隔、つまり、ステップS405でチャンネルスキャン要求を送信してからステップS406でチャンネルスキャン要求を送信するまでの間隔と、ステップS406でチャンネルスキャン要求を送信してからステップS407でチャンネルスキャン要求を送信するまでの間隔は、それぞれ所定の時間範囲内でランダムに設定される。
無線子機20aは、現在設定されているチャンネルで無線親機10に対し合計3回チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、現在設定されているチャンネルを、無線通信に使用可能な他のチャンネルに変更する(ステップS408)。そして、無線子機20aは、ステップS408で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS409)。このとき、ステップS408で変更した後のチャンネルは、無線親機10に設定されているチャンネル(ステップS403で切り替えた後のチャンネル)と一致しないものとする。このため、無線子機20aが送信したチャンネルスキャン要求は無線親機10に受信されず、無線親機10から無線子機20aに対してチャンネルスキャン応答が送信されることはない。
無線子機20aは、無線親機10からチャンネルスキャン応答を受信できないため、ステップS408で変更した後のチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS410、ステップS411)。このときのチャンネルスキャン要求の送信間隔も、それぞれ所定の時間範囲内でランダムに設定される。
無線子機20aは、ステップS408で変更した後のチャンネルで無線親機10に対し合計3回チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、ステップS408で変更したチャンネルを、さらに別のチャンネルに変更する(ステップS412)。そして、無線子機20aは、ステップS412で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS413)。このとき、ステップS412で変更した後のチャンネルは、無線親機10に設定されているチャンネル(ステップS403で切り替えた後のチャンネル)と一致しているとする。このため、無線子機20aが送信したチャンネルスキャン要求は、無線親機10によって受信される。
無線親機10は、無線子機20aからチャンネルスキャン要求を受信すると、このチャンネルスキャン要求に含まれる送信元のMACアドレスを、記憶部16が記憶する子機リスト17と照合する(ステップS414)。ここでは、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致しているものとする。無線親機10は、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致していることを確認すると、このMACアドレスを宛先として(つまり、チャンネルスキャン要求の送信元の無線子機20aを宛先として)、チャンネルスキャン応答を送信する(ステップS415)。
このとき、無線子機20aは無線親機10と共通のチャンネルを使用しているため、無線親機10から送信されたチャンネルスキャン応答は、無線子機20aによって受信される。無線子機20aは、無線親機10からのチャンネルスキャン応答を受信すると、現在設定されているチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する(ステップS416)。
なお、図7に示す例では、ステップS413で無線子機20aが送信したチャンネルスキャン要求が無線親機10により受信されるものとしているが、無線子機20aが無線親機10と一致するチャンネルでチャンネルスキャン要求を送信しても、例えば無線信号の混信などの影響によりこのチャンネルスキャン要求が無線親機10に受信されないこともある。しかし、本実施形態では、無線子機20aが1つのチャンネルで無線親機10に対するチャンネルスキャン要求の送信を所定回数(例えば3回)を限度に繰り返すので、無線子機20aが無線親機10と一致するチャンネルでチャンネルスキャン要求を送信すれば、このチャンネルスキャン要求が無線親機10により受信される可能性は極めて高い。
さらに、本実施形態では、無線子機20aが無線親機10に対しチャンネルスキャン要求を送信する間隔がランダムに設定されるので、無線信号の混信のリスクを低減できる。すなわち、無線親機10が無線通信に使用するチャンネルの切り替えを行った場合、複数の無線子機20のそれぞれが無線親機10をロストするため、複数の無線子機20のそれぞれが無線親機10に対して一斉にチャンネルスキャン要求を送信することが想定される。しかし、本実施形態では、複数の無線子機20のそれぞれがランダムに設定される送信間隔で無線親機10に対しチャンネルスキャン要求を所定回数送信するので、チャンネルスキャン要求の送信タイミングが分散されることとなり、チャンネルスキャン要求の送信タイミングが集中することで混信が生じるリスクを低減できる。これにより、無線親機10と一致するチャンネルで無線子機20が送信したチャンネルスキャン要求が無線親機10により受信される可能性をさらに高めることができる。
ステップS416で無線子機20aがチャンネルを確定した後、無線親機10が無線子機20aに対してデータ要求を送信すると(ステップS417)、このデータ要求が無線子機20aによって受信される。そして、このデータ要求に対する応答として、無線子機20aから無線親機10に対し計測装置3aの計測データが送信され(ステップS418)、この計測データが無線親機10により受信されてデータ収集装置2に出力される。以降、無線親機10がさらにチャンネルの切り替えを行うまでの間は、無線親機10と無線子機20aとの間で、共通のチャンネルを使用してデータ要求と計測データの送受信が行われる。
次に、図1の構成例における無線親機10と無線子機20cとの間の無線通信に注目し、本実施形態の無線通信システム1の具体的な動作の一例について、図8および図9を参照して説明する。無線子機20cの基本的な動作は上述の無線子機20aと同様であるが、無線親機10との間の無線通信が無線子機20aを介して行われる。図8は、無線子機20cの起動時における無線通信システム1の動作の一例を説明するシーケンス図であり、図9は、無線親機10がチャンネルを切り替えた際の無線通信システム1の動作の一例を説明するシーケンス図である。なお、ここでは無線子機20cが1つのチャンネルで送信するチャンネルスキャン要求の回数が無線子機20cと同様に3回までと定められているものとするが、1つのチャンネルで送信するチャンネルスキャン要求の回数(所定回数)は無線子機20ごとに定められていてもよい。
まず、図8を参照して、無線子機20cの起動時における動作例を説明する。無線子機20cは、起動時に、現在設定されているチャンネルで無線親機10に対しチャンネルスキャン要求を送信する(ステップS501)。このとき、無線親機10と無線子機20aは共通のチャンネルが設定されているが、無線子機20cに設定されているチャンネルは、無線親機10や無線子機20aに設定されているチャンネルと一致しないものとする。このため、無線子機20cが送信したチャンネルスキャン要求は無線子機20aに受信されず、無線子機20aから無線親機10に転送されないため、無線親機10から無線子機20cに対してチャンネルスキャン応答が送信されることはない。
無線子機20cは、無線親機10からチャンネルスキャン応答を受信できないため、現在設定されているチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS502、ステップS503)。このとき、無線子機20cが送信するチャンネルスキャン要求の送信間隔は、所定の時間範囲内でランダムに設定される。
無線子機20cは、現在設定されているチャンネルで無線親機10に対して合計3回(所定回数の一例)チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、現在設定されているチャンネルを、無線通信に使用可能な他のチャンネルに変更する(ステップS504)。そして、無線子機20cは、ステップS504で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS505)。このとき、ステップS504で変更した後のチャンネルは、無線親機10や無線子機20aに設定されているチャンネルと一致しているとする。このため、無線子機20aが送信したチャンネルスキャン要求は、無線子機20aによって無線親機10に転送され、無線親機10により受信される。
無線親機10は、無線子機20cからチャンネルスキャン要求を受信すると、このチャンネルスキャン要求に含まれる送信元のMACアドレスを、記憶部16が記憶する子機リスト17と照合する(ステップS506)。ここでは、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致しているものとする。無線親機10は、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致していることを確認すると、このMACアドレスを宛先として(つまり、チャンネルスキャン要求の送信元の無線子機20cを宛先として)、チャンネルスキャン応答を送信する(ステップS507)。
このとき、無線子機20aと無線子機20cは無線親機10と共通のチャンネルを使用しているため、無線親機10から送信されたチャンネルスキャン応答は、無線子機20aによって無線子機20cに転送され、無線子機20cにより受信される。無線子機20cは、無線親機10からのチャンネルスキャン応答を受信すると、現在設定されているチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する(ステップS508)。
ステップS508で無線子機20cがチャンネルを確定した後、無線親機10が無線子機20cに対してデータ要求を送信すると(ステップS509)、このデータ要求が無線子機20aによって無線子機20cに転送され、無線子機20cにより受信される。そして、このデータ要求に対する応答として、無線子機20cから無線子機20aを介して無線親機10に対し計測装置3aの計測データが送信され(ステップS510)、この計測データが無線親機10によって受信され、データ収集装置2に出力される。以降、無線親機10がチャンネルの切り替えを行うまでの間は、無線親機10と無線子機20cとの間で、共通のチャンネルを使用して、データ要求と計測データの送受信が無線子機20aを介して行われる。
次に、図9を参照して、無線親機10がチャンネルを切り替えた際の動作例について説明する。無線親機10がチャンネルを切り替える前は、無線親機10と無線子機20aと無線子機20cとが共通のチャンネルを使用して無線通信を行うため、無線親機10が無線子機20aに対してデータ要求を送信すると(ステップS601)、このデータ要求が無線子機20aによって無線子機20cに転送され、無線子機20cにより受信される。そして、このデータ要求に対する応答として、無線子機20cから無線子機20aを介して無線親機10に対し、計測装置3aの計測データが送信され(ステップS602)、この計測データが無線親機10により受信されてデータ収集装置2に出力される。
ここで、無線親機10の周辺の電波環境が悪化したとする。この場合、無線親機10は、電波環境の悪化を検知して(あるいはユーザ操作に応じて)無線通信に使用するチャンネルの切り替えを行う(ステップS603)。無線親機10が無線通信に使用するチャンネルの切り替えを行うと、無線親機10と無線子機20aおよび無線子機20cとの間で無線通信に使用するチャンネルが一致しなくなる。このため、無線親機10が無線子機20cに対してデータ要求を送信しても(ステップS604)、このデータ要求は無線子機20aに受信されず、無線子機20aから無線子機20cに転送されないため、無線子機20cに受信されない。
無線子機20cは、無線親機10から無線信号を受信しない時間(例えばステップS601で無線親機10から無線子機20aを介して送信されたデータ要求を受信してからの経過時間)が所定時間Txに達すると、現在設定されているチャンネルで無線親機10に対しチャンネルスキャン要求を送信する(ステップS605)。このとき、無線子機20cに設定されているチャンネルは、無線子機20aに設定されているチャンネルとは一致するが、無線親機10に設定されているチャンネル(つまり、ステップS603で切り替えた後のチャンネル)と一致しない。このため、無線子機20cが送信したチャンネルスキャン要求は無線子機20aに受信されるが、この無線子機20aが転送するチャンネルスキャン要求は無線親機10に受信されず、無線親機10から無線子機20cに対してチャンネルスキャン応答が送信されることはない。
無線子機20cは、無線親機10からチャンネルスキャン応答を受信できないため、現在設定されているチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS606、ステップS607)。このとき、無線子機20cが送信するチャンネルスキャン要求の送信間隔は、所定の時間範囲内でランダムに設定される。
無線子機20cは、現在設定されているチャンネルで無線親機10に対し合計3回チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、現在設定されているチャンネルを、無線通信に使用可能な他のチャンネルに変更する(ステップS608)。そして、無線子機20cは、ステップS608で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS609)。
なお、ステップS603で無線親機10が無線通信に使用するチャンネルを切り替えると、無線子機20cとは独立して、無線子機20aにおいてもチャンネル探索処理が行われる。本例では、無線子機20cがステップS607でチャンネルスキャン要求を送信してからステップS609でチャンネルスキャン要求を送信するまでの間に、無線子機20aのチャンネル探索処理により無線子機20aが無線通信に使用するチャンネルが、無線親機10に設定されているチャンネル(ステップS603で切り替えた後のチャンネル)と一致したものとする。また、無線子機20cがステップS608で変更した後のチャンネルは、無線親機10と無線子機20aが使用するチャンネルと一致しないものとする。このため、無線子機20aがステップS609で送信したチャンネルスキャン要求は無線子機20aに受信されず、無線子機20aから無線親機10に転送されないため、無線親機10から無線子機20cに対してチャンネルスキャン応答が送信されることはない。
無線子機20cは、無線親機10からチャンネルスキャン応答を受信できないため、ステップS608で変更した後のチャンネルで無線親機10に対するチャンネルスキャン要求の送信を繰り返す(ステップS610、ステップS611)。このときのチャンネルスキャン要求の送信間隔も、それぞれ所定の時間範囲内でランダムに設定される。
無線子機20cは、ステップS608で変更した後のチャンネルで無線親機10に対し合計3回チャンネルスキャン要求を送信しても無線親機10からのチャンネルスキャン応答を受信できないため、ステップS608で変更したチャンネルを、さらに別のチャンネルに変更する(ステップS612)。そして、無線子機20aは、ステップS612で変更した後のチャンネルで、無線親機10に対してチャンネルスキャン要求を送信する(ステップS613)。このとき、ステップS612で変更した後のチャンネルは、無線親機10と無線子機20aが使用するチャンネルと一致しているとする。このため、無線子機20aが送信したチャンネルスキャン要求は、無線子機20aによって無線親機10に転送され、無線親機10により受信される。
無線親機10は、無線子機20cからチャンネルスキャン要求を受信すると、このチャンネルスキャン要求に含まれる送信元のMACアドレスを、記憶部16が記憶する子機リスト17と照合する(ステップS614)。ここでは、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致しているものとする。無線親機10は、受信したチャンネルスキャン要求に含まれる送信元のMACアドレスが、子機リスト17に登録されたMACアドレスのうちの1つと一致していることを確認すると、このMACアドレスを宛先として(つまり、チャンネルスキャン要求の送信元の無線子機20cを宛先として)、チャンネルスキャン応答を送信する(ステップS615)。
このとき、無線子機20aと無線子機20cは無線親機10と共通のチャンネルを使用しているため、無線親機10から送信されたチャンネルスキャン応答は、無線子機20aによって無線子機20cに転送され、無線子機20cにより受信される。無線子機20cは、無線親機10からのチャンネルスキャン応答を受信すると、現在設定されているチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定する(ステップS616)。
ステップS616で無線子機20cがチャンネルを確定した後、無線親機10が無線子機20cに対してデータ要求を送信すると(ステップS617)、このデータ要求が無線子機20aによって無線子機20cに転送され、無線子機20cにより受信される。そして、このデータ要求に対する応答として、無線子機20cから無線子機20aを介して無線親機10に対し計測装置3aの計測データが送信され(ステップS618)、この計測データが無線親機10によって受信され、データ収集装置2に出力される。以降、無線親機10がさらにチャンネルの切り替えを行うまでの間は、無線親機10と無線子機20cとの間で、共通のチャンネルを使用して、データ要求と計測データの送受信が無線子機20aを介して行われる。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の無線通信システム1では、無線親機10との間で無線通信を行う無線子機20が、起動時、または、無線親機10からの信号を所定時間受信しない場合に、チャンネル探索処理を行う。特に本実施形態では、このチャンネル探索処理において、無線子機20がチャンネルスキャン要求の送信を1つのチャンネルで1回のみ行うのではなく、ランダムに設定される送信間隔で所定回数行う。すなわち、無線子機20は、同じチャンネルで所定回数を限度に、ランダムに設定される送信間隔でチャンネルスキャン要求の送信を繰り返す。そして、無線子機20は、チャンネルスキャン要求を所定回数送信しても無線親機10からチャンネルスキャン応答を受信しない場合は、チャンネルを変更して、ランダムに設定される送信間隔で無線親機10に対するチャンネルスキャン要求の送信を繰り返し、無線親機10からチャンネルスキャン応答を受信した場合に、そのときのチャンネルを無線親機10との間の無線通信に使用するチャンネルとして確定するようにしている。
したがって、本実施形態の無線通信システム1によれば、複数の無線子機20が無線親機10に対してチャンネルスキャン要求を送信するタイミングが集中することで無線信号の混信が生じるリスクを低減できるとともに、たとえ混信が生じたとしても、無線子機20が無線親機10と一致するチャンネルで送信したチャンネルスキャン要求を、無線親機10に適切に受信させることができる。これにより、無線子機20は、無線親機10との間の無線通信に使用するチャンネルを適切に探索することができ、無線親機10に設定されているチャンネルと一致するチャンネルを、無線親機10との間の無線通信に使用するチャンネルとして確定することができる。
また、本実施形態の無線通信システム1では、無線親機10が無線子機20から送信されたチャンネルスキャン要求を受信した場合に、このチャンネルスキャン要求に含まれる送信元の無線子機20の識別情報(例えばMACアドレス)を、無線親機10の通信相手となる無線子機20の識別情報が事前に登録された子機リスト17と照合する。そして、無線親機10は、受信したチャンネルスキャン要求に含まれる識別情報が、子機リスト17に登録された識別情報のいずれかと一致する場合に、チャンネルスキャン要求の送信元の無線子機20に対し、チャンネルスキャン応答を送信するようにしている。
したがって、本実施形態の無線通信システム1によれば、無線親機10や無線子機20が配置される所定エリア内に他の無線通信システムが混在し、無線親機10が他の無線通信システムに含まれる無線子機から送信されたチャンネルスキャン要求を受信した場合であっても、無線親機10からこの無線子機に対してチャンネルスキャン応答が送信されることがない。これにより、他の無線通信システムに含まれる無線子機、つまり、無線親機10の通信相手ではない無線子機が、無線親機10と一致するチャンネルを無線通信に使用するチャンネルとして確定してしまう不都合を有効に防止することができる。
以上、本発明の具体的な実施形態について説明したが、上述した実施形態は本発明の一適用例を示したものである。本発明は、上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々の省略、置き換え、変更を加えて具体化することができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。