以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。ただし、以下の説明において特に断らない限り、方向や向きに関する記述は、当該説明の便宜上、図面に対応するものであり、例えば実施品、製品または権利範囲等を限定するものではない。
<1. 実施の形態>
図1は、本発明に係る無線通信システム1を示す図である。無線通信システム1は、無線モジュール2、照明装置30,31,32、無線中継機40,41,42およびコントローラ9を備えている。詳細は後述するが、無線通信システム1は、無線中継機40,41,42によって無線通信を中継するマルチホップ型のネットワークを構成している。
なお、無線通信システム1が備える無線モジュール2、照明装置30,31,32、無線中継機40,41,42、および、コントローラ9の数は、いずれも図1に示す数に限定されるものではない。また、説明を簡単にするために、照明装置30,31,32は、設置位置の異なる同一の装置として説明するが、完全に同一の装置でなくてもよい。無線中継機40,41,42についても同様である。
また、以下の説明において、「ユニキャスト」とは、受信すべき相手(送信先)を1つに限定して情報を送信する形態を意味するものとする。また、「ブロードキャスト」とは、最終的な宛先は特定されているものの、受信すべき相手を1つに限定せずに情報を送信する形態を意味するものとする。
また、最終的な宛先までの通信経路が確定していない状態で実行するユニキャストを「経路探索用のユニキャスト」と称し、通信経路が確定している状態で実行するユニキャストを「通常時のユニキャスト」と称し、両者を区別する場合がある。本実施の形態における経路探索用のユニキャストの再送制限回数は「0(再送しない)」とする一方で、通常時のユニキャストの再送制限回数は「3」とする。すなわち、無線通信システム1は、経路探索用のユニキャストにおける再送制限回数が通常時のユニキャストにおける再送制限回数よりも少なく設定されている。ただし、再送制限回数は、このような回数に限定されるものではない。
さらに、以下の説明において、無線通信システム1が備える無線モジュール2、照明装置30,31,32および無線中継機40,41,42のそれぞれを個別に識別する識別情報を、それぞれの符号を用いて表現する。すなわち、以下の説明において、識別情報とは、無線モジュール2、照明装置30,31,32および無線中継機40,41,42のうちのいずれかを示す。例えば、識別情報が「30」であれば、当該識別情報は、「照明装置30」を示すものとする。ただし、実際の無線通信システム1において用いる識別情報は、例えば、ネットワークアドレスなどが好ましい。
図2は、無線モジュール2のブロック図である。図2に示すように、無線モジュール2は、CPU20、記憶装置21、操作部22、表示部23、有線通信部24および無線通信部25を備えている。詳細は後述するが、無線モジュール2は、通信情報901を無線通信により送信する無線送信機としての機能を有している。
CPU20は、記憶装置21に格納されているプログラム210を読み取りつつ実行し、各種データの演算や制御信号の生成等を行う。これにより、CPU20は、無線モジュール2が備える各構成を制御するとともに、各種データを演算し作成する機能を有している。すなわち、無線モジュール2は、一般的なコンピュータとして構成されている。
記憶装置21は、無線モジュール2において各種データを記憶する機能を提供する。言い換えれば、記憶装置21が無線モジュール2において電子的に固定された情報を保存する。
記憶装置21としては、CPU20の一時的なワーキングエリアとして使用されるRAMやバッファ、読み取り専用のROM、不揮発性のメモリ(例えばNANDメモリなど)、専用の読み取り装置に装着された可搬性の記憶媒体(PCカード、SDカード、USBメモリなど)等が該当する。図2においては、記憶装置21を、あたかも1つの構造物であるかのように図示している。しかし、通常、記憶装置21は、上記例示した各種装置(あるいは媒体)のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、記憶装置21は、無線モジュール2において、データを記憶する機能を有する装置群の総称である。
また、現実のCPU20は高速にアクセス可能なRAMを内部に備えた電子回路である。しかし、このようなCPU20が備える記憶装置も、説明の都合上、記憶装置21に含めて説明する。すなわち、一時的にCPU20自体が記憶するデータも、記憶装置21が記憶するとして説明する。図2に示すように、記憶装置21は、プログラム210、経路情報211、指示情報900および通信情報901などを記憶するために使用される。
操作部22は、無線モジュール2に対して作業者やユーザ等が指示を入力するために操作するハードウェアである。操作部22としては、例えば、各種キーやボタン類、ディップスイッチなどが該当する。
表示部23は、各種データを表示することにより作業者やユーザ等に対して出力する機能を有するハードウェアである。無線モジュール2においては、複雑な画像や多量の文字情報などを表示する必要はないので、無線モジュール2のコストを考慮すれば、表示部23としては、例えば、ランプやLED、簡易な液晶表示パネルなどの比較的安価なデバイスが好ましい。しかし、表示部23は、CRTや液晶ディスプレイ、有機ELディスプレイなどであってもよい。
有線通信部24は、コントローラ9との間で有線による通信を実現する。有線通信部24は、コントローラ9から送信される指示情報900を有線通信により受信する機能を提供する。
無線通信部25は、無線通信システム1が備える照明装置30,31,32や、無線中継機40,41,42との間で無線による通信を用いて、通信情報901の送受信を行う機能を有している。これにより、無線モジュール2は、照明装置30,31,32および無線中継機40,41,42に対しては無線通信システム1における親機として機能する。
図3は、無線モジュール2が備える機能ブロックをデータの流れとともに示す図である。図3に示す情報作成部200、通信制御部201および経路決定部202は、CPU20がプログラム210に従って動作することにより実現される機能ブロックである。
情報作成部200は、指示情報900を参照して、通信情報901を作成する機能を有している。また、情報作成部200は、新たな通信情報901を作成するときに、照明装置30,31,32や無線中継機40,41,42から受信した通信情報901を参照する場合もある。
図4は、無線通信システム1における通信情報901の構造の概略を例示する図である。通信情報901は、無線モジュール2、照明装置30,31,32および無線中継機40,41,42の間で送受信される情報の総称である。図4に示すように、通信情報901は、各種のデータフィールドが定義されたフレーム構造の情報である。
図4において「NEXT」で示されているフィールドは、当該通信情報901の送信先を示す識別情報が格納されるフィールドである。なお、送信先とは、当該通信情報901が送信された場合に、受信させる相手先の意味であり、最終的な宛先に限らず、中継先も含む意味である。言い換えれば、NEXTフィールドに格納されている識別情報は、当該通信情報901を受信する権限を与えられた装置を示す。
図4に示すように、NEXTフィールドに「42」が格納されている場合、当該通信情報901の送信先は無線中継機42であり、無線中継機42のみがこの通信情報901を受信することができる。なお、本実施の形態における無線通信システム1では、NEXTフィールドに「FFFF」が格納されている場合は、当該通信情報901の送信先が特定されていないことを示すものとする。通信情報901のNEXTフィールドに「FFFF」が格納されている場合、当該通信情報901はブロードキャストされるべき情報であることを示す。
図4において「SRC」で示されているフィールドは、当該通信情報901の送信元を示す識別情報が格納されるフィールドである。図4に示すように、SRCフィールドに「2」が格納されている場合、当該通信情報901の送信元は無線モジュール2であることを示している。
なお、送信元とは、当該通信情報901を送信した装置の意味である。したがって、通信情報901が転送された場合には、SRCフィールドに格納される識別情報が書き換えられる。例えば、無線中継機40によって受信された後、無線中継機40から転送により送信された通信情報901のSRCフィールドは「40」に書き換えられる。
図4において「LLC」で示されているフィールドから「CoAPframe」で示されるフィールドまでを、以下の説明では、制御情報902と称する。
制御情報902のうち、「LLC」で示されているフィールドは、当該通信情報901がリピーターフレームであるか否かを示す情報が格納されるフィールドである。なお、リピーターフレームとは、始点(発信源であり中継点を含まない。)から終点(最終的な宛先)まで、直接送信されるのではなく、例えば、中継点を介して、転送されながら送信されるフレームである。
制御情報902のうち、「DST」で示されているフィールドは、当該通信情報901の最終的な宛先(終点)を示す情報が格納されるフィールドである。図4に示すように、DSTフィールドに「31」が格納されている場合は、当該通信情報901が、最終的に、「照明装置31」宛であることを示している。言い換えれば、当該通信情報901は、照明装置31を制御対象とする制御情報902を含んでいることを示している。通信情報901のDSTフィールドは、当該通信情報901が転送されても書き換えられることはない。
制御情報902のうち、「ORG」で示されているフィールドは、当該通信情報901を作成し、送信を開始した始点(発信源)を示す情報が格納されるフィールドである。図4に示すように、ORGフィールドに「2」が格納されている場合は、当該通信情報901が「無線モジュール2」において作成され、送信が開始された情報であることを示している。すなわち、無線モジュール2が当該通信情報901の発信源であることを示している。通信情報901のORGフィールドは、当該通信情報901が転送されても書き換えられることはない。
制御情報902のうち、「SEQ」で示されているフィールドは、当該制御情報902のシーケンス番号を示す情報が格納されるフィールドである。情報作成部200は、新たな制御情報902を作成するたびに、SEQフィールドに格納するシーケンス番号をインクリメントする。一方で、制御情報902が宛先に到着しなかった場合などにおいて、同じ制御情報902を再送するときには、シーケンス番号はインクリメントされず、同一のシーケンス番号が用いられる。
制御情報902のうち、「HLMT」で示されているフィールドは、当該通信情報901を伝送する際の転送回数(ホップ回数)に関する情報が格納されるフィールドである。図4に示すように、HLMTフィールドに「44」が格納されている場合は、上位桁で表現されるホップ制限回数が「4」で、下位桁で表現されるホップ残数が「4」であることを示している。
ホップ制限回数は、通信情報901が転送されても変化しない。ホップ制限回数は、無線モジュール2、照明装置30,31,32および無線中継機40,41,42において、それぞれ独自に設定しておくことが可能である。ただし、本実施の形態においては、説明を簡単にするために、ホップ制限回数を共通であるものとし、具体的には「4」であるとして説明する。
一方、ホップ残数は、通信情報901が作成されたとき、ホップ制限回数と一致しているものの、当該通信情報901が転送されるたびにデクリメントされる。そして、ホップ残数が「0」となった通信情報901は、それ以上、転送されることはない。このように、ホップ残数をカウントすることにより、無線通信システム1は、通信情報901の転送回数を有限な回数に制限することができる。したがって、通信情報901の転送が無制限に繰り返され、トラフィックが増大することを抑制することができる。
なお、通信情報901の受信側において、当該通信情報901の経路上における転送回数(始点から自機に到着するまでに転送された回数)は、「ホップ制限回数−ホップ残数+1」を計算することによって求めることができる。以下、この値を、「ホップ消化数」と称する。
制御情報902のうち、「CoAPframe」で示されているフィールドは、例えば、指示情報900によって具体的に指示された処理(動作)などを、照明装置30,31,32または無線中継機40,41,42において実現するために必要となる情報を格納するためのフィールドである。このような情報としては、例えば、点灯コマンドや消灯コマンド、調光コマンド、モード切替コマンドなどが想定される。
また、照明装置30,31,32または無線中継機40,41,42で作成される制御情報902としては、通信情報901の受信完了を返信するための応答情報(ACK)や、新たな制御情報902を要求する情報などが想定される。ただし、CoAPframeフィールドに格納される情報は、このような情報に限定されるものではない。
このように、情報作成部200は、指示情報900を解析して、必要な制御情報902を適切な宛先(ノード)に送信するために、適宜、通信情報901を作成する。なお、情報作成部200は、通信情報901を作成するときに、指示情報900だけでなく、経路情報211や、他機から受信した通信情報901なども参照する。
また、情報作成部200は、経路情報211を参照した結果を再送カウンタ212に記録する。本実施の形態における再送カウンタ212は、経路情報211において通信経路が確定していない場合に「0(経路探索用のユニキャストの再送制限回数)」、通信経路が確定している場合に「3(通常時のユニキャストの再送制限回数)」が格納される。ただし、再送カウンタ212は、このような値に限定されるものではない。
図3に戻って、通信制御部201は、有線通信部24または無線通信部25によって受信された情報を記憶装置21に転送し、記憶させる機能を有している。
有線通信部24がコントローラ9から受信する情報としては、図3に示す指示情報900がある。有線通信部24が指示情報900を受信すると、通信制御部201は、当該指示情報900を記憶装置21に転送し、記憶させる。
なお、説明を簡単にするために、本実施の形態における無線通信システム1においては、コントローラ9のみが指示情報900を作成し、無線モジュール2がこれを受信するものとして説明する。しかし、本来、指示情報900に相当する情報は、コントローラ9が作成するものに限定されるものではない。例えば、人の入退出を検出するセンサなどが無線通信システム1に接続されている場合などにおいては、それらのセンサが観測結果に応じて指示情報900を作成してもよい。あるいは、無線モジュール2の操作部22が操作されることによって指示情報900が入力されてもよい。
無線通信部25が照明装置30,31,32や無線中継機40,41,42から受信する通信情報901としては、例えば、無線モジュール2から送信された通信情報901が届いたときに、受信側からの返信として送信される情報(いわゆる「ACK」)が想定される。より詳細には、制御情報902のCoAPframeフィールドに、ACKを示す情報が格納された通信情報901である。このようなACKを含む通信情報901を、以下の説明では、単に、「応答のための通信情報901」と称する場合がある。
無線通信システム1では、ユニキャストによって送信された通信情報901を受信した場合の受信側と、通信情報901が終点まで届いた場合の当該終点とが、応答のための通信情報901を返すように構成されている。
これにより、例えば、無線通信システム1では、ブロードキャストされた情報を受信した複数の受信先が、無秩序に通信情報901を作成し送信することを防止できる。したがって、ブロードキャストが用いられたときのシステム全体におけるトラフィック(主に送受信回数)を抑制することができ、衝突による情報の喪失を抑制することができる。
なお、ユニキャストによって送信された通信情報901を受信した場合の受信側が送信する応答のための通信情報901は、当該ユニキャストを行った送信先にのみ送信され、例えば、始点まで転送されることはない。一方、通信情報901が終点まで届いた場合の当該終点が送信する応答のための通信情報901は、必要に応じて転送等もされた上で、始点まで伝送される。
通信制御部201は、無線通信部25が通信情報901を受信すると、当該通信情報901の始点(ORGフィールド)と、シーケンス番号(SEQフィールド)とを確認し、これらが同一の通信情報901が、受信履歴として、すでに記憶装置21に存在しているか否かを確認する。そして、これらが同一の通信情報901が記憶装置21に存在しない場合は、未だ受信していない新しい通信情報901であるとみなして、当該通信情報901を記憶装置21に転送し、記憶させる。また、図示は省略するが、通信制御部201は、通信情報901を記憶装置21に記憶させるときに、当該通信情報901が受信されたときの受信信号強度(RSSI:Received Signal Strength Indicator)を、当該通信情報901に関連づける。
一方、通信制御部201は、当該通信情報901の始点と、シーケンス番号とが同一の通信情報901が記憶装置21に存在していた場合、さらに、記憶装置21に存在する通信情報901に関連づけられているRSSI値が閾値以上か否かを判定する。そして、当該RSSI値が閾値以上である場合には、今回受信した通信情報901は不要であると判定し、破棄する。
また、通信制御部201は、記憶装置21に存在する通信情報901のRSSI値が閾値より小さい場合には、さらに、今回受信した通信情報901のRSSI値が閾値以上か否かを判定する。そして、今回受信した通信情報901のRSSI値が閾値より小さい場合は、今回受信した通信情報901は不要であると判定し、破棄する。
また、通信制御部201は、記憶装置21に存在する通信情報901のRSSI値が閾値より小さく、かつ、今回受信した通信情報901のRSSI値が閾値以上である場合、今回受信した通信情報901を記憶装置21に転送し、すでに記憶装置21に存在する通信情報901(始点とシーケンス番号とが同一の通信情報901)に上書きすることにより記憶させる。
始点とシーケンス番号とが同一の通信情報901は、二重に届いた通信情報901である蓋然性が高い。このような通信情報901が受信された場合、原則として、通信制御部201は、後に届いた通信情報901を破棄する(すなわち、早い者勝ちルールを採用する。)。ただし、先に届いた通信情報901のRSSI値が閾値より小さい場合には、当該通信情報901によって劣悪な通信経路が確定されている可能性がある。したがって、そのような場合には、二重に届いた通信情報901であっても、通信制御部201は、記憶装置21に当該通信情報901(遅参者)を転送し、記憶させる。
さらに、通信制御部201は、有線通信部24または無線通信部25を制御して、必要な情報を送信させる機能も有している。
通信制御部201は、通信情報901を送信する形態として、ユニキャストまたはブロードキャストを選択する。通信制御部201は、送信する通信情報901のNEXTフィールドに「FFFF」が格納されている場合にのみ、当該通信情報901をブロードキャストにより送信するように、無線通信部25を制御する。したがって、通信情報901のNEXTフィールドに「識別情報」が格納されている場合は、当該通信情報901はユニキャストされる。
また、通信制御部201は、無線通信部25にユニキャストを指示するときに、再送カウンタ212を参照する。そして、再送カウンタ212が「0」の場合、通信制御部201は、経路探索用のユニキャスト(再送制限回数「0」)を実行するように、無線通信部25を制御する。一方、再送カウンタ212が「3」の場合、通常時のユニキャスト(再送制限回数「3」)を実行するように、無線通信部25を制御する。
経路探索用のユニキャストとは、通信経路が確定していない終点に対するユニキャストである。したがって、経路探索用のユニキャストは、通常時のユニキャストに比べて、失敗する確率が高いユニキャストと言える。このようなユニキャストについて、通常時と同じ回数だけ再送を繰り返すように設定すると、再送による遅延が増大する危険性がある。
詳細は後述するが、無線通信システム1は、経路探索用のユニキャストについては、再送制限回数を減らし、すみやかにブロードキャストに移行するように構成されている。これにより、制御開始(例えば指示情報900の入力)から、制御完了(例えば、応答のための通信情報901の送信)までの時間を短縮することができる。
一方、無線通信システム1は、通常時のユニキャストについては、再送制限回数を増やし、ブロードキャストへの移行を遅らせるように構成されている。通信経路が確定している終点については、通信に失敗した場合であっても、再送によって成功する可能性が高いと期待される。したがって、ブロードキャストへの移行を遅らせることにより、直ちにブロードキャストによる経路探索を開始する場合に比べて、効率よく通信情報901を伝送することができる。
さらに、通信制御部201は、通常時のユニキャストが失敗した場合には、無線通信部25を制御して、ユニキャストによる再送を繰り返させる。このとき、通信制御部201は、再送カウンタ212をデクリメントして、再送回数をカウントする。
経路決定部202は、無線通信部25によって受信された通信情報901と、当該通信情報901に関連づけられているRSSIの値に基づいて、当該通信情報901の始点(照明装置30,31,32または無線中継機40,41,42のうちのいずれか)に対する通信経路を決定する。さらに、経路決定部202は、決定した通信経路を、経路情報211として記憶装置21に記憶させる。
図5は、経路情報211の構造を示す図である。経路情報211は、終点(最終的な宛先)ごとに1つのレコードが作成されるテーブル構造のデータベースである。経路決定部202が通信経路を決定する動作の詳細は後述するが、経路情報211の各レコードには、終点と、送信先と、経路評価値とが格納され、互いに関連づけられている。
経路情報211の各レコードにおける終点とは、当該レコードによって表現される通信経路の終点を示す。
経路情報211の各レコードにおいて、終点に関連づけられている送信先とは、当該終点宛に通信情報901を送信する場合の送信先を示す。経路情報211において、終点と送信先とが異なるレコードは、当該終点に向けて通信情報901を送信するときに、当該通信情報901を直接送信することができず、転送が必要であることを意味する。
また、経路情報211の各レコードにおいて、終点に関連づけられている経路評価値とは、当該終点宛の通信経路を評価するときの指標となる情報である。本実施の形態における経路評価値は、値が小さいほど、当該通信経路の評価が高いことを意味する。詳細は後述するが、経路情報211の各レコードにおける経路評価値は、当該レコードが示す通信経路のホップ回数や、当該通信経路を経て受信した情報の通信品質(RSSI値)等に応じて、適宜、経路決定部202によって書き換えられる。
経路決定部202によって作成された経路情報211に基づいて、特定の終点に対する送信先を取得するときには、当該終点の識別情報を検索キーとして、経路情報211に「終点」として格納されている識別情報を検索し、当該識別情報に送信先として関連づけられている識別情報を取得すればよい。
例えば、照明装置31宛に制御情報902を送信する場合、情報作成部200は、識別情報「31」を検索キーとして経路情報211を検索する。そして、当該識別情報「31」に関連づけられている識別情報「42」を取得して、識別情報「42」を通信情報901のNEXTフィールドに格納する。
このように、無線通信システム1は、特定の終点に対する通信経路が確定し、当該通信経路上に多くの中継機が存在していたとしても、当該通信経路上のすべての中継機を当該通信経路として記憶するわけではない。図5に示すように、無線通信システム1は、各通信経路について、1つの送信先と、当該通信経路に対する経路評価値とを記憶するだけでよい。したがって、無線通信システム1は、通信経路上のすべてのノードを記憶しなければならない場合に比べて、記憶すべき通信経路(経路情報211)のデータサイズを抑制することができる。
以上が、無線通信システム1が備える無線モジュール2の構成および機能の説明である。次に、無線通信システム1が備える照明装置30,31,32および無線中継機40,41,42について説明する。
図6は、照明装置30のブロック図である。図6に示すように、照明装置30は、CPU35、記憶装置36、操作部37、照明部38および無線通信部39を備えている。
なお、本実施の形態における無線通信システム1において、照明装置30,31,32および無線中継機40,41,42は、いずれもハードウェア構成が同一の装置として構成されている。したがって、以下の説明では、特に断らない限り、照明装置30,31,32および無線中継機40,41,42の構成および機能を、照明装置30を例にして説明する。すなわち、図示を省略するが、照明装置31,32および無線中継機40,41,42も、照明装置30と同様に、それぞれがCPU35、記憶装置36、操作部37、照明部38および無線通信部39を備えている。
CPU35は、記憶装置36に格納されているプログラム360を読み取りつつ実行し、各種データの演算や制御信号の生成等を行う。これにより、CPU35は、照明装置30が備える各構成を制御するとともに、各種データを演算し作成する機能を有している。すなわち、照明装置30は、一般的なコンピュータとして構成されている。照明装置31,32および無線中継機40,41,42も、照明装置30と同様に、一般的なコンピュータとして構成されている。
記憶装置36は、照明装置30において各種データを記憶する機能を提供する。言い換えれば、記憶装置36が照明装置30において電子的に固定された情報を保存する。
記憶装置36としては、CPU35の一時的なワーキングエリアとして使用されるRAMやバッファ、読み取り専用のROM、不揮発性のメモリ(例えばNANDメモリなど)等が該当する。図6においては、記憶装置36を、あたかも1つの構造物であるかのように図示している。しかし、通常、記憶装置36は、上記例示した各種装置(あるいは媒体)のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、記憶装置36は、データを記憶する機能を有する装置群の総称である。
また、現実のCPU35は高速にアクセス可能なRAMを内部に備えた電子回路である。しかし、このようなCPU35が備える記憶装置も、説明の都合上、記憶装置36に含めて説明する。すなわち、一時的にCPU35自体が記憶するデータも、記憶装置36が記憶するとして説明する。図6に示すように、記憶装置36は、プログラム360や経路情報361あるいは通信情報901などを記憶するために使用される。
操作部37は、照明装置30に対して作業者などが指示を入力するために操作するハードウェアである。本実施の形態における操作部37は、いわゆる電源ボタンである。なお、操作部37は、電源ボタンに限定されるものではなく、例えば、各種キーやボタン類、ディップスイッチなどを含んでいてもよい。
照明装置30,31,32および無線中継機40,41,42に、それぞれ設けられる電源ボタン(操作部37)は、出荷時に「切」の状態となっている。電源ボタンは、通常は、設置時に作業者によって一度だけ「入」に操作された後は、そのまま「入」の状態で運用される。ただし、取り外されるときや、付け替えなどがされる場合には、操作ボタンが「切」に操作されてもよい。
照明部38は、詳細は図示しないが、光源となる発光ダイオードと、当該発光ダイオードの明るさを調整する調整回路とを備えた電子回路である。照明部38は、発光ダイオードを発光させることにより周囲を照明する。調整回路は、CPU35からの制御信号により、発光ダイオードへの電力供給量を調整して発光ダイオードの明るさを調整する(すなわち、調光が実現される。)。なお、照明部38の光源は、発光ダイオードに限定されるものではなく、点灯または消灯のみを明るさとして制御可能な蛍光灯や白熱電球などであってもよい。
このように、無線通信システム1は、照明装置30,31,32および無線中継機40,41,42が、照明部38を備えている。したがって、無線通信システム1は、設置された空間を照明する照明システムを構成している。
無線通信部39は、無線による通信を行う機能を有している。すなわち、照明装置30,31,32および無線中継機40,41,42は、いずれも無線通信部39を備えることにより、通信情報901を無線によって送受信することができる。
照明装置30,31,32における無線通信部39は、無線モジュール2や無線中継機40,41,42との間で無線による通信を行う。言い換えれば、照明装置30、照明装置31および照明装置32は、互いに無線通信を行うことはない。照明装置30,31,32における無線通信部39は、通信情報901を受信するとともに、応答のための通信情報901を送信する。これにより、照明装置30,31,32は、無線モジュール2に対する無線の子機としての機能を有する。
無線中継機40,41,42における無線通信部39は、無線モジュール2や照明装置30,31,32との間で無線による通信を行うだけでなく、無線中継機40,41,42との間でも無線による通信を行う。これにより、無線中継機40,41,42は、無線モジュール2に対する無線の子機としての機能と、無線モジュール2と照明装置30,31,32との間の無線による通信の中継機としての機能とを有する。
図7は、照明装置30が備える機能ブロックをデータの流れとともに示す図である。図7に示す動作モード切替部350、経路決定部351、通信制御部352、情報作成部353、および、制御実行部354は、CPU35がプログラム360に従って動作することにより実現される機能ブロックである。
動作モード切替部350は、自機を終点として送信された通信情報901に含まれる制御情報902(自機宛の動作切替コマンド)に応じて、自機の動作モードをリピーターモードとアンチリピーターモードとの間で切り替える機能を有している。動作モード切替部350は、リピーターモードに移行すべきことが当該制御情報902に指示されている場合には、モードフラグ362を「1」に更新する。一方で、アンチリピーターモードに移行すべきことが当該制御情報902に指示されている場合には、モードフラグ362を「0」に更新する。
すでに説明したように、無線通信システム1における照明装置30,31,32および無線中継機40,41,42は、同一のハードウェア構成である。より詳細には、無線中継機40,41,42は、受信した情報を必要に応じて転送する機能を有している以外は、照明装置30,31,32と等価な装置として構成されている。照明装置30,31,32において、モードフラグ362が「1」に書き換えられると、動作モードがリピーターモードに切り替わり、無線中継機40,41,42となる。逆に、無線中継機40,41,42において、モードフラグ362が「0」に書き換えられると、動作モードがアンチリピーターモードに切り替わり、照明装置30,31,32となる。
このように、無線通信システム1は、モードフラグ362を書き換えるだけで、照明装置30,31,32と無線中継機40,41,42とを容易に交換することができる。したがって、照明の必要性や外観などを重視して照明装置30,31,32のレイアウトを決定した後に、当該レイアウトにおける無線による通信の状態に応じて適切な位置の照明装置30,31,32を、容易に、無線中継機40,41,42とすることができる。すなわち、レイアウトの汎用性、計画性、あるいは、容易性が向上する。
経路決定部351は、自機が受信した通信情報901に応じて、経路情報361を作成する。
本実施の形態における経路情報361は、図4に示す経路情報211と同様の構造を有するデータベースである。したがって、経路情報361も経路情報211と同様に、終点ごとに1つのレコードが作成される。経路情報361の各レコードには、終点、送信先および経路評価値が格納される。照明装置30,31,32および無線中継機40,41,42における経路決定部351の動作の詳細については後述する。
通信制御部352は、無線通信部39が通信情報901を受信したときに、当該通信情報901を記憶装置36に転送し、記憶させる機能を有している。また、図示は省略するが、通信制御部352は、通信情報901を記憶装置36に記憶させるときに、当該通信情報901が受信されたときのRSSI値を関連づける。
通信制御部352は、受信した通信情報901の始点(ORGフィールド)と、シーケンス番号(SEQフィールド)とを確認し、これらが同一の通信情報901がすでに記憶装置36に存在しているか否かを確認する。そして、これらが同一の通信情報901が記憶装置36に存在しない場合は、未だ受信していない新しい通信情報901であるとみなして、当該通信情報901を記憶装置36に転送し、記憶させる。
一方、通信制御部352は、当該通信情報901の始点と、シーケンス番号とが同一の通信情報901が記憶装置36に存在していた場合、さらに、記憶装置36に存在する通信情報901に関連づけられているRSSI値が閾値以上か否かを判定する。そして、当該RSSI値が閾値以上である場合には、今回受信した通信情報901は不要であるとみなして破棄する。
また、通信制御部352は、記憶装置36に存在する通信情報901のRSSI値が閾値より小さい場合には、さらに、今回受信した通信情報901のRSSI値が閾値以上か否かを判定する。そして、今回受信した通信情報901のRSSI値が閾値より小さい場合は、今回受信した通信情報901は不要であるとみなして破棄する。
また、通信制御部201は、記憶装置36に存在する通信情報901のRSSI値が閾値より小さく、かつ、今回受信した通信情報901のRSSI値が閾値以上である場合、今回受信した通信情報901を記憶装置36に転送し、すでに記憶装置36に存在する通信情報901(始点とシーケンス番号とが同一の通信情報901)に上書きすることにより記憶させる。
無線モジュール2の場合と同様に、始点とシーケンス番号とが同一の通信情報901は、二重に届いた通信情報901である蓋然性が高い。このような通信情報901が受信された場合、原則として、通信制御部352は、後から届いた通信情報901を破棄する(すなわち、早い者勝ちルールを採用する。)。
ただし、先に届いた通信情報901のRSSI値が閾値より小さいものであった場合には、詳細は後述するが、当該通信情報901によって劣悪な通信経路が確定されている可能性がある。したがって、そのような場合には、二重に届いた通信情報901であっても、通信制御部352は、記憶装置36に当該通信情報901(遅参者)を転送し、記憶させる。
また、通信制御部352は、モードフラグ362を参照することにより、動作モードを確認しつつ、無線通信部39が受信した通信情報901を取捨選択する。通信制御部352は、モードフラグ362が「0(アンチリピーターモード)」のとき、受信した通信情報901のDSTフィールドを確認して、当該通信情報901の終点が自機でない場合には、当該通信情報901を破棄する。すなわち、照明装置30,31,32の通信制御部352は、転送機能を有していない(リピーターモードで動作していない)ので、自機を終点とする通信情報901のみ、記憶装置36に転送し、記憶させる。
さらに、通信制御部352は、無線通信部39を制御して、作成された通信情報901を送信する機能も有している。
通信制御部352は、通信情報901を送信する形態として、ユニキャストまたはブロードキャストを選択する。通信制御部352は、送信する通信情報901のNEXTフィールドに「FFFF」が格納されている場合にのみ、当該通信情報901をブロードキャストにより送信するように、無線通信部39を制御する。したがって、通信情報901のNEXTフィールドに「識別情報」が格納されている場合は、当該通信情報901はユニキャストされる。
また、通信制御部352は、無線通信部39にユニキャストを指示するときに、再送カウンタ363を参照する。そして、再送カウンタ363が「0」の場合、通信制御部352は、経路探索用のユニキャスト(再送制限回数「0」)を実行するように、無線通信部39を制御する。一方、再送カウンタ363が「3」の場合、通常時のユニキャスト(再送制限回数「3」)を実行するように、無線通信部39を制御する。
情報作成部353は、自機が受信した通信情報901、あるいは、動作モード切替部350や制御実行部354による制御結果などに基づいて、自機から送信する通信情報901を作成する。情報作成部353によって作成される通信情報901としては、自機宛の通信情報901に対する返信としての応答のための通信情報901がある。
無線中継機40,41,42は、すでに説明したように、リピーター機能が有効となっている。したがって、無線中継機40,41,42は、自機宛でない通信情報901を受信し、一旦、記憶装置36に記憶することもある。詳細は後述するが、無線中継機40,41,42における情報作成部353は、このようにして記憶された自機宛でない通信情報901の送信先などを、経路情報361に基づいて書き換える機能も有している。
また、情報作成部353は、経路情報361を参照した結果を再送カウンタ363に記録する。再送カウンタ363とは、経路情報361において通信経路が確定していない場合に「0(経路探索用のユニキャストの再送制限回数)」、通信経路が確定している場合に「3(通常時のユニキャストの再送制限回数)」が格納される。
制御実行部354は、自機を終点として受信された通信情報901に含まれる制御情報902を解析し、指示された制御を実行する機能を有している。例えば、制御実行部354は、制御情報902に基づいて、照明部38を制御する。このように、無線通信システム1は、無線モジュール2から送信された制御情報902を通信情報901として受信し、意図した制御を、最終的な宛先の制御実行部354によって実現する。なお、制御実行部354によって制御される対象は、照明部38に限定されるものではない。
図8は、コントローラ9のブロック図である。図8に示すように、コントローラ9は、CPU90、記憶装置91、操作部92、表示部93および通信部94を備えている。
CPU90は、記憶装置91に格納されているプログラム910を読み取りつつ実行し、各種データの演算や制御信号の生成等を行う。これにより、CPU90は、コントローラ9が備える各構成を制御するとともに、各種データを演算し作成する機能を有している。すなわち、コントローラ9は、一般的なコンピュータとして構成されている。
記憶装置91は、コントローラ9において各種データを記憶する機能を提供する。言い換えれば、記憶装置91がコントローラ9において電子的に固定された情報を保存する。
記憶装置91としては、CPU90の一時的なワーキングエリアとして使用されるRAMやバッファ、読み取り専用のROM、不揮発性のメモリ(例えばNANDメモリなど)、比較的大容量のデータを記憶するハードディスク、専用の読み取り装置に装着された可搬性の記憶媒体(CD−ROM、DVD−ROM、PCカード、SDカード、USBメモリなど)等が該当する。図8においては、記憶装置91を、あたかも1つの構造物であるかのように図示している。しかし、通常、記憶装置91は、上記例示した各種装置(あるいは媒体)のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、記憶装置91は、コントローラ9においてデータを記憶する機能を有する装置群の総称である。
また、現実のCPU90は高速にアクセス可能なRAMを内部に備えた電子回路である。しかし、このようなCPU90が備える記憶装置も、説明の都合上、記憶装置91に含めて説明する。すなわち、一時的にCPU90自体が記憶するデータも、記憶装置91が記憶するとして説明する。図8に示すように、記憶装置91は、プログラム910および指示情報900などを記憶するために使用される。
操作部92は、コントローラ9に対して作業者やユーザ等が指示を入力するために操作するハードウェアである。操作部92としては、例えば、各種キーやボタン類、スイッチ、タッチパネル、ポインティングデバイス、あるいは、ジョグダイヤルなどが該当する。
表示部93は、各種データを表示することにより作業者やユーザ等に対して出力する機能を有するハードウェアである。表示部93としては、例えば、ランプやLED、液晶パネルなどが該当する。なお、コントローラ9は、表示部93として、CRTや液晶ディスプレイ、有機ELディスプレイなどを備えていてもよい。
通信部94は、無線モジュール2との間で有線による通信を実現する。これにより、コントローラ9は、無線モジュール2との間で、情報の送受信を行うことが可能となる。すでに説明したように、通信部94は、指示情報900を無線モジュール2に向けて送信する。
コントローラ9は、無線通信システム1に指示情報900を与えるために作業者やユーザによって用いられる装置として説明する。すなわち、作業者やユーザは、コントローラ9の操作部92を操作することにより、無線通信システム1に各種の設定情報やコマンド情報を入力する。このようにして入力された情報のうち無線モジュール2に送信すべき情報を、コントローラ9は指示情報900として無線モジュール2に送信する。
以上が、無線通信システム1の構成および機能の説明である。次に、無線通信システム1を用いた無線による通信において、通信経路を決定する方法について説明する。
図9および図10は。無線通信システム1によって実行される無線通信方法を示す流れ図である。
図9および図10に示す各工程は、無線通信システム1に対してなんらかの制御が企図され、指示情報900が無線通信システム1に入力されることによって開始される。すでに説明したように、本実施の形態では、指示情報900はコントローラ9において入力され、コントローラ9から無線モジュール2に向けて送信されるものとして説明する。
また、図9および図10に示す各工程が開始されるまでに、適宜、動作切替コマンドが送信され、すでに無線中継機40,41,42がリピーターモードで動作を開始しており、かつ、照明装置30,31,32がアンチリピーターモードで動作を開始しているものとする。
さらに、図9および図10に示す各工程が開始されるまでに、照明装置30,31,32および無線中継機40,41,42の無線通信部39は、いずれも通信情報901を受信することができる状態となっており、各装置の通信制御部352は通信情報901の受信を監視している。すなわち、図9および図10に示す各工程が開始されるときには、すでに、照明装置30,31,32および無線中継機40,41,42は、いわゆる通信情報901に対する待ち受け状態となっている。
コントローラ9から送信された指示情報900を受信すると、無線モジュール2は、当該指示情報900を解析し、新たに通信情報901を作成する(ステップS1)。より詳細には、指示情報900に基づいて、無線モジュール2の情報作成部200が、制御すべき対象(終点)と、当該終点において意図した制御を実現するための情報(すなわち、終点に届けるべき情報であって、例えば、コマンド情報。)とを決定して、新たな通信情報901を作成する。
以下の説明では、適宜、具体例として、制御対象が「照明装置31」であり、制御内容が「点灯」である場合について説明する。すなわち、通信情報901(制御情報902)のDSTフィールドに「31」が格納され、CoAPframeフィールドに「点灯コマンド」が格納される例を用いて説明する。
また、情報作成部200は、新たに作成した通信情報901のHLMTフィールドに、ホップ回数に関して予め設定されている値を格納する。すでに説明したように、ここで示す例では、ホップ制限回数は「4」である。また、ステップS1において作成された通信情報901は、未だ転送(ホップ)されていない情報であるから、ホップ残数はホップ制限回数と同じく「4」である。したがって、ステップS1において、情報作成部200は、新たに作成した通信情報901のHLMTフィールドに、「44」を格納する。
ステップS1において作成される通信情報901は、無線モジュール2において作成され、無線モジュール2から送信される。すなわち、当該通信情報901の始点(発信源)および送信元は、いずれも無線モジュール2である。したがって、情報作成部200は、当該通信情報901のORGフィールドおよびSRCフィールドに、いずれも「2」を格納する。
また、ステップS1において作成される通信情報901(制御情報902)は、新しく作成されたものである。したがって、情報作成部200は、当該制御情報902に対して、新たなシーケンス番号を付与する。したがって、当該通信情報901のSEQフィールドには、当該新たなシーケンス番号が格納される。
さらに、ステップS1において、情報作成部200は、終点の識別情報を検索キーとして経路情報211の終点(DST)を検索する。ここに示す具体例では、情報作成部200は、「31」を検索キーとして経路情報211の検索を行う。
情報作成部200が、終点の識別情報で経路情報211を検索したときに、当該終点に関するレコードが経路情報211に存在していない場合(当該検索がヒットしない場合)とは、すなわち、当該終点に関する通信経路が未だ確定していないことを意味する。
従来の技術(特開2015−104013号公報)では、通信経路が未だ確定していない場合、直ちにブロードキャストを実行して情報を送信するように構成している。これに対して、無線通信システム1は、通信経路が確定していないときであっても、当該終点に向けたユニキャストにより通信情報901を送信することを試みる。
したがって、当該終点に関するレコードが経路情報211に存在していなかった場合、情報作成部200は、新たに作成した通信情報901のDSTフィールドに格納されている識別情報と同一の識別情報をNEXTフィールドに格納することにより、当該通信情報901の終点を送信先とする。このとき、情報作成部200は、再送カウンタ212を「0(経路探索用のユニキャストの再送制限回数)」に更新する。
一方、情報作成部200が、終点の識別情報で経路情報211を検索したときに、当該終点に関するレコードがすでに経路情報211に存在している場合(当該検索がヒットした場合)とは、すなわち、当該終点に関する通信経路がすでに確定していることを意味する。この場合、情報作成部200は、経路情報211に存在する当該レコードから送信先として格納されている識別情報を取得して、新たに作成した通信情報901のNEXTフィールドに格納する。
例えば、照明装置31について、図5に示す経路情報211のように、すでに「31(DST),42(NEXT),2(経路評価値)」というレコードが存在していたとすると、情報作成部200は、新たに作成した通信情報901のNEXTフィールドに「42」を格納する。このとき、情報作成部200は、再送カウンタ212を「3(通常時のユニキャストの再送制限回数)」に更新する。
次に、情報作成部200は、新たに作成した通信情報901のDSTフィールドに格納した識別情報と、当該通信情報901のNEXTフィールドに格納した識別情報とを比較する。そして、これらが互いに異なる場合、当該通信情報901は直接終点宛に送信されるのではなく、転送されるべき情報であると判定し、当該通信情報901のLLCフィールドに、リピーターフレームであることを示す情報を格納する。一方、通信情報901のDSTフィールドに格納した識別情報と、当該通信情報901のNEXTフィールドに格納した識別情報とが同一の場合、情報作成部200は、当該通信情報901は転送されるべきでない情報であると判定し、当該通信情報901のLLCフィールドに、リピーターフレームでないことを示す情報を格納する。
このようにして、新しい通信情報901を作成すると、次に、無線モジュール2は、作成した通信情報901の宛先に対する通信経路が確定されているか否かを判定する(ステップS2)。
ステップS2において、無線モジュール2の通信制御部201は、再送カウンタ212を参照することにより、通信経路が確定されているか否かを判定する。より詳細には、通信制御部201は、再送カウンタ212が経路探索用のユニキャストの再送制限回数である「0」であるか否かを判定する。
再送カウンタ212が「0」の場合(ステップS2においてNo。)、通信制御部201は、ステップS1において作成された通信情報901を送信するように無線通信部25を制御する。
ここまでの説明で明らかなように、ステップS2を実行するときまでに、通信情報901のNEXTフィールドに、「FFFF」が格納されることはない。したがって、この時点で通信制御部201が通信情報901のNEXTフィールドを参照して、ブロードキャストとユニキャストとのいずれを無線通信部25に指示すべきか判定すれば、必ずユニキャストが選択される。また、ステップS2においてNoと判定されていることから、このときのユニキャストは、通信経路が確定していないときのユニキャストであり、通常時のユニキャストではなく、経路探索用のユニキャストである。
これにより、無線通信部25は、通信情報901(制御情報902を含む。)を経路探索用のユニキャストで送信する(ステップS3)。ここに示す具体例では、通信情報901のNEXTフィールドおよびDSTフィールドには、いずれも照明装置31の識別情報「31」が格納されている。したがって、無線通信部25は、当該通信情報901を照明装置31に向けてユニキャストする。
このように、無線通信システム1は、通信経路が確定していない場合においても、最初に終点を送信先とするユニキャストにより通信情報901を送信する。したがって、このユニキャストが成功すれば、ブロードキャストはされない。すなわち、無線通信システム1は、トラフィック(通信量)が増大するブロードキャストが実行される回数を、従来の技術に比べて抑制することができる。これにより、無線通信システム1は、通信経路を探索するときに生じる衝突による情報喪失(ロスト)を抑制することができる。
特に、本実施の形態のように、無線通信システム1が照明システムを構成している場合、システムのレイアウトの特性上(空間内に暗がりなどが生じさせないため)、親機(無線モジュール2)からの電波が比較的届きやすい場所に、制御対象となる子機(照明装置30,31,32および無線中継機40,41,42)が設置されている蓋然性が高いという特性がある。このような特性を有するシステムにおいては、通信経路が確定していない場合であっても、ユニキャストによる送信が成功する可能性が高い。したがって、従来の技術のように、いきなりブロードキャストによって通信経路の探索を開始するよりも、一旦、ユニキャストによる送信を試みることによる効果は高い。
ステップS3を実行すると、無線モジュール2は、応答のための通信情報901を受信したか否かを判定する(ステップS4)。
より詳細には、ステップS3を実行した後、無線モジュール2は、応答のための通信情報901の受信を監視する状態となる。この状態のときに応答のための通信情報901を受信すれば、無線モジュール2は、ステップS4においてYesと判定する。一方、この状態で所定の時間が経過するまでに、応答のための通信情報901を受信しなかった場合には、無線モジュール2は、ステップS4においてNoと判定する。
ステップS4においてNoと判定すると、無線モジュール2は、ステップS3において経路探索用のユニキャストにより送信した通信情報901を、ブロードキャストにより送信する(ステップS5)。
より詳細には、情報作成部200が、ステップS3において送信された通信情報901のNEXTフィールドを「FFFF」に書き換える。このような通信情報901が作成されると、通信制御部201は、当該通信情報901をブロードキャストするように、無線通信部25を制御する。これにより、無線通信部25は、当該通信情報901をブロードキャストにより送信する。
このように、無線通信システム1では、経路探索用のユニキャストの再送制限回数が「0」にセットされているため、通信経路が確定していない場合には、1回のタイムアウト(ユニキャスト失敗)によって、ステップS4においてNoと判定され、送信の形態がブロードキャストに切り替わる。これにより、通信経路が確定していない場合には、ユニキャストの失敗による再送遅延時間を短縮することができる。
ブロードキャストが実行されると、無線通信システム1は、情報伝送処理を実行した後(ステップS6)、ステップS4に戻る。
ステップS6の情報伝送処理の詳細は後述するが、例えブロードキャストであっても、送信された通信情報901が無事に終点に到着すれば、情報伝送処理において、当該終点から応答のための通信情報901が返信される。そして、情報伝送処理によって、当該応答のための通信情報901が無事に始点にまで伝送されれば、当該応答のための通信情報901が無線モジュール2によって受信される。したがって、情報伝送処理において問題が発生しなければ、ステップS6が実行された後のステップS4においてYesと判定される。
一方、図9では、応答のための通信情報901を受信しない限り、ステップS4ないしS6が繰り返されるように図示している。すなわち、図9に示す流れ図によれば、無限にブロードキャストによる再送が繰り返される。しかしながら、実際の無線通信システム1においては、ブロードキャストにも再送制限回数が設けられており、ブロードキャストによる再送が無限に繰り返されることは防止されている。
ステップS3またはステップS5において送信された通信情報901に対して、終点から送信される応答のための通信情報901が無線通信部25によって受信されると(ステップS4においてYes。)、通信制御部201は、受信された当該応答のための通信情報901を記憶装置21に転送し、記憶させる。
応答のための通信情報901が記憶装置21に記憶されると、当該通信情報901に基づいて、経路決定部202が経路決定処理を実行する(ステップS7)。
図11は、経路決定処理を示す流れ図である。経路決定処理とは、自機が受信した通信情報901に基づいて、当該通信情報901の始点と自機との間の通信経路を決定し、経路情報に登録する処理である。
なお、無線通信システム1において実行される経路決定処理は、通信経路が確定されていないときにのみ限定的に実行される処理ではなく、通信経路が確定した後にも当該通信経路を更新するために実行される場合がある。
また、以下では、経路決定部202が、通信経路を決定して経路情報211を作成(更新)する場合を例に経路決定処理を詳細に説明する。ただし、経路決定部202だけでなく、経路決定部351も、同様に、経路決定処理を実行して経路情報361を作成(更新)する機能を有している。
経路決定処理が開始されると、経路決定部202は、受信した通信情報901のための通信経路が経路情報211に存在しているか否かを判定する(ステップS20)。
ステップS20において、経路決定部202は、当該通信情報901のDSTフィールドに格納されている識別情報を取得して、当該識別情報を検索キーとして経路情報211を検索することにより、当該通信経路が存在しているか否かを判定する。
なお、ステップS7において実行される経路決定処理は、通信情報901の終点への経路が確定していないときに実行される処理である。したがって、ステップS7における経路決定処理であれば、ステップS20では必ずNoと判定される(すなわち、判定する必要がない。)。しかし、詳細は後述するが、経路決定処理は、他の状況で実行される場合もあるため、ステップS20が設けられている。
ステップS20においてNoの場合(通信経路が存在しない場合)、経路決定部202は、受信された通信情報901に関連づけられているRSSI値が閾値以上であるか否かを判定する(ステップS21)。
RSSI値が閾値以上の場合(ステップS21においてYes。)、さらに経路決定部202は、通信経路がすでに存在しているか否かを判定する(ステップS22)。
ステップS22において、経路決定部202は、受信された通信情報901のORGフィールドに格納されている識別情報を取得する。
当該識別情報は、受信された通信情報901の始点を示している。自機が通信情報901を受信したということは、当該通信情報901の始点から自機まで、当該通信情報901を無事に伝送することができたことを意味している。逆に言えば、自機からみれば、当該通信情報901を受信したことによって、自機から当該始点までの通信経路が確定できたことを意味する。すなわち、当該始点を終点とした通信経路が確定できたことを意味する。
したがって、経路決定部202は、取得した当該識別情報を検索キーとして、経路情報211の終点を検索し、すでに当該識別情報によって示される装置を終点とするレコードが経路情報211に存在しているか否かを判定する。当該レコードが存在している場合とは、受信された通信情報901が伝送されてきた通信経路が、すでに経路情報211において確定していることを意味する。
当該レコードが存在している場合(ステップS22においてYes。)、経路決定部202は、当該レコードに格納されている経路評価値を取得する。また、経路決定部202は、受信した通信情報901のHLMTフィールドからホップ制限回数およびホップ残数を取得して、当該通信情報901が到着するまでのホップ消化数を演算する。さらに、経路決定部202は、取得した経路評価値と求めたホップ消化数とを比較し、当該経路評価値より、当該ホップ消化数の方が小さいか否かを判定する(ステップS23)。
ホップ消化数は、通信経路において、通信情報901を転送する回数を示している。すなわち、ホップ消化数が小さいほど、当該通信経路における転送回数が少なくて済むことを表している。さらに、通信経路における転送回数が少ない方が、転送遅延やトラフィックを抑制することができるため、優れた通信経路と評価できる。したがって、ホップ消化数によって、無線通信システム1における通信経路を評価することができる。
求めたホップ消化数が経路評価値以上の場合(ステップS23においてNo。)、経路決定部202は、新たな通信経路(今回受信した通信情報901が伝送された通信経路)の方が、過去の通信経路よりも優れているわけではないとみなして、経路情報211を更新することなく、経路決定処理を終了する。
求めたホップ消化数の方が経路評価値より小さい場合(ステップS23においてYes。)、経路情報211にすでに登録されている過去の通信経路よりも、今回受信した通信情報901が伝送された新たな通信経路の方が優れているとみなして、過去の通信経路を更新する(ステップS24)。
ステップS24において、経路決定部202は、今回受信した通信情報901のSRCフィールドに格納されている識別情報(送信元)を取得して、過去の通信経路を示すレコード(ステップS22において検索したレコード)の送信先に上書きにより当該識別情報を格納する。また、経路決定部202は、ステップS23において演算により求めたホップ消化数を、当該レコードの経路評価値に上書きにより格納する。このようにして、すでに通信経路が確定していた終点に対する送信先および経路評価値が更新される。
このように、無線通信システム1は、通信経路が確定している場合(ステップS22においてYes。)であっても、過去の通信経路よりも、優れた通信経路が発見されたとみなせる場合には、当該優れた通信経路を新たに登録することができる。
ステップS24において更新によって新たに登録される通信経路は、ステップS21においてYesと判定されているため、RSSI値も閾値以上であり、その点でも優れた通信経路である。なお、ステップS24を実行し、経路情報211を更新すると、経路決定部202は、経路決定処理を終了する。
一方、ステップS22においてNoの場合(通信経路が確定していない場合)、経路決定部202は、経路情報211のレコードを新たに作成する(ステップS25)。
ステップS25において、経路決定部202は、今回受信した通信情報901のORGフィールドに格納されている識別情報を終点とする新たなレコードを作成する。次に、経路決定部202は、今回受信した通信情報901のSRCフィールドに格納されている識別情報(送信元)を取得して、新しく作成したレコードの送信先として格納する。さらに、経路決定部202は、ステップS23と同様にして、ホップ消化数を演算し、当該レコードの経路評価値として格納する。
このように、無線通信システム1は、通信経路が確定していない終点については、当該終点からの通信情報901を受信することにより、通信経路を決定し、経路情報211に登録することができる。
ステップS25において新たに登録される通信経路は、ステップS21においてYesと判定されているため、RSSI値も閾値以上であり、その点でも優れた通信経路である。なお、ステップS25を実行し、経路情報211を作成すると、経路決定部202は、経路決定処理を終了する。
次に、ステップS21に戻って、ステップS21においてNoと判定した場合について説明する。ステップS21においてNoと判定される場合とは、受信した通信情報901に関連づけられているRSSI値が閾値未満であった場合である。
ステップS21においてNoと判定した場合も、ステップS22と同様に、経路決定部202は、通信経路が存在しているか否かを判定する(ステップS26)。
すでに通信経路が確定している場合(ステップS26においてYes。)、経路決定部202は、経路情報211を更新することなく、経路決定処理を終了する。ステップS26においてYesと判定される場合とは、すでに通信経路が存在しているだけでなく、今回受信した通信情報901が伝送された通信経路のRSSI値が低い場合である。
このように、無線通信システム1は、RSSI値が低く、伝送路として劣っている通信経路については、すでに確定している限り、通信経路を更新することはない。
未だ通信経路が確定していない場合(ステップS26においてNo。)、経路決定部202は、今回受信した通信情報901が伝送された通信経路におけるホップ消化数を、評価としての最低値とする(ステップS27)。
すでに説明したように、本実施の形態における無線通信システム1においては、ホップ制限回数は「4」である。したがって、本実施の形態における経路決定部202は、ステップS27において、ホップ消化数を評価としての最低値である「4」とする。
ステップS27を実行すると、経路決定部202は、ステップS25と同様に、経路情報211のレコードを新たに作成する(ステップS28)。
ステップS28が実行されると、すでにステップS27が実行されているために、新たに作成されたレコードの経路評価値は、「4」となる。
このように、無線通信システム1は、通信経路が確定していない終点については、例えRSSI値が閾値より小さく、通信経路として劣っている場合でも、ひとまず通信経路を決定し、経路情報211に登録する。これにより、通信経路が不確定である状態を早期に解消することができる。
一方で、無線通信システム1は、通信経路のRSSI値が閾値より小さく、通信経路として劣っている場合には、ステップS27を実行して経路評価値を低く設定する。これにより、経路評価値が低く設定された通信経路は、ステップS23においてYesと判定されやすくなり、ステップS24の更新が実行されやすくなる。
このように、無線通信システム1は、RSSI値が低い通信経路を登録した場合でも、RSSI値が閾値以上の新しい通信経路に更新される可能性を高めることができる。なお、ステップS28を実行し、経路情報211を作成すると、経路決定部202は、経路決定処理を終了する。
次に、ステップS20においてYesの場合について説明する。ステップS20においてYesの場合とは、受信した通信情報901のための通信経路がすでに存在する場合である。この場合、経路決定部202は、当該通信情報901のSRCフィールドに格納されている送信元と、経路情報211から取得したレコード(通信経路)に関連づけられている送信先(NEXT)とが同一か否かを判定する(ステップS29)。
受信した通信情報901のSRCフィールドに格納されている送信元と、経路情報211から取得したレコード(通信経路)に関連づけられている送信先(NEXT)とが同一である場合に、当該通信情報901を、当該通信経路に従って送信先に送信すると、当該通信情報901を送信元に返信することになる。すなわち、ステップS29においてYesと判定される場合とは、何らかの原因で、ループ経路が形成されている場合である。
ループ経路が形成されている場合に、これを放置すると、不要な通信が繰り返され、トラフィックが増大する。したがって、経路決定部202は、ステップS29を実行して、ループ経路を検出し、当該通信経路を修正するために、経路情報211を更新する(ステップS30)。
具体的には、ステップS30において、経路決定部202は、検出された経路情報211のレコードの送信先(NEXT)を、通信情報901の終点に書き換えることにより更新する。すなわち、今後、当該通信情報901と同一の終点の通信情報901を受信した場合、当該通信情報901は、終点に向けてユニキャストで送信されることとなる。
このユニキャストは必ずしも受信されるとは限らない。言い換えれば、ループ経路が検出された場合、無線通信システム1は、終点への直接送信を試みる。そして、例え、この試みが失敗したとしても、それによって、改めて経路決定処理が実行され、通信経路の探索がされることとなる。したがって、無線通信システム1におけるループ経路が改められ、適切な通信経路が経路情報211に記録されることが期待される。なお、ステップS30を実行し、経路情報211を更新すると、経路決定部202は、経路決定処理を終了する。
一方、ループ経路が形成されていない場合(ステップS29においてNo。)、経路決定部202は、すでに説明したステップS21以下の処理を実行する。
以上が、経路決定処理の説明である。
図9に戻って、ステップS7における経路決定処理を終了すると、無線通信システム1は、ステップS1において作成した通信情報901に対する処理を終了する。
次に、図9のステップS2においてYesと判定された場合について説明する。ステップS2においてYesと判定される場合とは、ステップS1において作成された通信情報901の終点に対する通信経路が、すでに確定されている場合である。
再送カウンタ212が「0」でなく、通信経路がすでに確定されている場合(ステップS2においてYes。)、通信制御部201は、通信情報901を送信するように無線通信部25を制御する。
ここまでの説明で明らかなように、ステップS12を実行するときまでに、通信情報901のNEXTフィールドに、「FFFF」が格納されることはない。したがって、この時点で通信制御部201が通信情報901のNEXTフィールドを参照して、ブロードキャストとユニキャストとのいずれを無線通信部25に指示すべきか判定すれば、必ずユニキャストが選択される。また、ステップS2においてYesと判定されていることから、このときのユニキャストは、通信経路が確定しているときのユニキャストであり、通常時のユニキャストである。
したがって、無線通信部25は、通信制御部201の制御により、通信情報901(制御情報902を含む。)を通常時のユニキャストで送信する(ステップS12)。
ここに示す具体例では、作成された通信情報901のNEXTフィールドには、無線中継機42の識別情報「42」が格納されている。したがって、無線通信部25は、当該通信情報901を無線中継機42に向けてユニキャストする。ただし、当該通信情報901のDSTフィールドには、照明装置31の識別情報「31」が格納されている。したがって、当該通信情報901は、直接、照明装置31に伝送されるのではなく、少なくとも無線中継機42によって中継され、転送される。
無線モジュール2(無線通信部25)によりステップS12が実行されると、無線通信システム1は、情報伝送処理に移行する(ステップS13)。
ステップS13の情報伝送処理の詳細は後述するが、ステップS12のユニキャストによって送信された通信情報901が無事に終点に到着すれば、情報伝送処理によって、当該終点から応答のための通信情報901が返信される。そして、情報伝送処理によって、当該応答のための通信情報901が無事に始点にまで伝送されれば、当該応答のための通信情報901が無線モジュール2によって受信される。したがって、ステップS13における情報伝送処理において問題が発生しなければ、応答のための通信情報901が無線モジュール2によって受信される。
無線通信システム1が情報伝送処理に移行しているとき、無線モジュール2は、応答のための通信情報901の受信を監視する状態に移行している(ステップS14)。より詳細には、ステップS12を実行した後、無線モジュール2は、応答のための通信情報901の受信を監視する状態となる。ただし、ステップS14において監視する応答のための通信情報901は、ユニキャストの成功のみを示す通信情報901(無線中継機42のACKを含む通信情報901)ではなく、終点まで到着したことを示す通信情報901(照明装置31のACKを含む通信情報901)である。
この状態ときに応答のための通信情報901を受信すれば、無線モジュール2は、ステップS14においてYesと判定する。一方、この状態で所定の時間が経過する(ユニキャストのタイムアウト)までに、応答のための通信情報901を受信しなかった場合には、無線モジュール2は、ステップS14においてNoと判定する。
ステップS12において送信された通信情報901に対して、終点から送信される応答のための通信情報901が無線通信部25によって受信されると(ステップS14においてYes。)、通信制御部201は、受信された当該応答のための通信情報901を記憶装置21に転送し、記憶させる。
応答のための通信情報901が記憶装置21に記憶されると、当該通信情報901に基づいて、経路決定部202が経路決定処理を実行する(図9:ステップS7)。ステップS7以降の処理は、すでに説明したので、ここでは説明を省略する。
一方、ステップS14においてNoと判定すると、無線モジュール2は、通常時のユニキャストの再送がすでに3回(合計4回)実行されたか否かを判定する(ステップS15)。より詳細には、無線モジュール2の通信制御部201が再送カウンタ212を参照し、当該再送カウンタ212が「0」か否かを判定する。
再送カウンタ212が「0」でない場合(ステップS15においてNo。)、通信制御部201は、再送カウンタ212をデクリメントする(ステップS16)。
ステップS16を実行すると、無線モジュール2は、ステップS12に戻って処理を繰り返す。これにより、ステップS12による通常時のユニキャストが繰り返される。
このように、無線通信システム1は、通信経路が確定している状態では、通常時のユニキャストを実行する。また、この通常時のユニキャストに失敗しても、すぐにブロードキャストに移行するのではなく、再送制限回数として設定されている回数だけ、通常時のユニキャストによる再送を繰り返す。
再送カウンタ212が「0」の場合(ステップS15においてYes。)、通常時のユニキャストの再送回数がすでに再送制限回数に達したと判断し、経路決定部202は、再送制限回数に達した通信経路の経路評価値をインクリメントする(ステップS17)。
すでに説明したように、本実施の形態では、経路評価値が低い方が通信経路の評価としては高いことを意味する。したがって、ステップS17において、経路決定部202が通信経路の経路評価値をインクリメントしてその値を上げることは、当該通信経路の評価を下げることに相当する。詳細は省略するが、ステップS17の処理は、例えば、ステップS15においてYesと判定した通信制御部201が、その旨を経路決定部202に通知することによって実行することができる。
このように、無線通信システム1は、再送制限回数に達した通信経路の経路評価値を上げることにより、当該通信経路が更新され、新たな通信経路に切り替わる可能性が高くなる。したがって、より通信品質のよい(経路評価値の低い)通信経路が新たに採用される可能性が高まる。
なお、経路評価値がインクリメントされ、ホップ制限回数よりも大きくなった場合には、当該通信経路を経路情報211から削除してもよい。また、経路決定部202が通信経路に対する評価を下げる処理(ステップS17)は、図10に示すタイミングに限定されるものではない。例えば、通常時のユニキャストに失敗(ステップS14においてNo。)と判定するたびに評価を下げてもよい。
ステップS17が実行されると、無線モジュール2は、図9に示すステップS5に戻って処理を繰り返す。すでに説明したように、ステップS5では、ブロードキャストが実行される。ステップS5以降の処理は、すでに説明したので、ここでは説明を省略する。
次に、ステップS6およびステップS13において実行される情報伝送処理の詳細について説明する。
図12および図13は、情報伝送処理を示す流れ図である。情報伝送処理は、照明装置30,31,32および無線中継機40,41,42によって実行される処理である。
本実施の形態における無線通信システム1において、情報伝送処理は、無線モジュール2から送信された通信情報901を終点まで伝送し、当該終点から返信として送信される応答のための通信情報901を無線モジュール2に向けて伝送するための処理である。すでに説明したように、照明装置30,31,32および無線中継機40,41,42は、情報伝送処理が開始されるまでに、いわゆる通信情報901に対する待ち受け状態となっている。
また、情報伝送処理は、無線モジュール2から通信情報901が送信されることにより開始される。すなわち、情報伝送処理が開始されるトリガは、無線モジュール2からの通信情報901の送信である。ただし、情報伝送処理の開始は、照明装置30,31,32および無線中継機40,41,42に対して明確に通知されるわけではない。
情報伝送処理が開始されると、照明装置30,31,32および無線中継機40,41,42のCPU35は、自機の無線通信部39が通信情報901を受信したか否かを判定する(ステップS31)。
図示の都合上、ステップS31においてNoと判定されたとき、情報伝送処理は終了するように図示している。しかし、実際には、無線モジュール2における情報伝送処理の経過時間(開始のトリガとなる通信情報901を送信してからの経過時間)がタイムアウトに到達するまでは、通信情報901を受信するたびに、ステップS31においてYesと判定される。
一方で、無線モジュール2における情報伝送処理の経過時間がタイムアウトに到達すると、ステップS31においてNoと判定され、情報伝送処理が終了する。また、このときの情報伝送処理の終了についても、照明装置30,31,32および無線中継機40,41,42に明確に通知されるわけではない。情報伝達処理が終了した場合であっても、照明装置30,31,32および無線中継機40,41,42は、引き続き待ち受け状態を継続する。
また、情報伝送処理が開始されるためのトリガとなる無線モジュール2からの通信情報901の送信は、ユニキャストによる送信の場合もあれば、ブロードキャストによる送信の場合もある。したがって、無線モジュール2は、情報伝送処理の終了の可否を判定するためのタイムアウトとして、ユニキャストのタイムアウトを計測している場合もあれば、ブロードキャストのタイムアウトを計測している場合もある。
ステップS31においてYesの場合、通信制御部352は、受信された通信情報901の始点(ORGフィールドの識別情報)と、シーケンス番号(SEQフィールドの値)とを取得する。そして、それらの情報に基づいて、受信された通信情報901が、これまでに受信された通信情報901と同一の情報であるか否かを判定する(ステップS32)。すなわち、通信制御部352は、受信された通信情報901を受信履歴と照合する。
同一の情報である場合(ステップS32においてYes。)、通信制御部352は、受信された通信情報901を破棄する(ステップS33)。これにより、同一の通信情報901が無限に転送されることによる不要なトラフィックの発生を抑制することができる。
図12では、ステップS32においてYesと判定すると、直ちに、通信情報901を破棄するように図示している。ただし、先に受信し、受信履歴として記録されている通信情報901に関連づけられているRSSI値が閾値より小さい場合には、以前に図11に示すステップS28が実行され、RSSI値の低い通信情報901によって経路評価値の低い通信経路が経路情報361に登録されている可能性がある。このような場合には、RSSI値が閾値以上の通信情報901によって通信経路を更新することが好ましい。
したがって、ステップS32においてYesと判定した場合であっても、先に受信していた通信情報901に関連づけられているRSSI値が閾値より小さく、かつ、今回受信された通信情報901を受信したときのRSSI値が閾値以上である場合、図示は省略するが、通信制御部352は、例外として、今回受信された通信情報901により、先に受信していた通信情報901を上書きするように記憶装置36に転送する。これにより、経路決定部351によって、後述するステップS36,S37の処理が実行され、条件によっては、経路評価値の低い通信経路が更新される。
なお、ステップS33が実行されると、CPU35は、ステップS31に戻り、再び、通信情報901の受信を監視する状態に戻る。
ステップS32においてNoの場合(同一情報でない場合)、通信制御部352は、受信された通信情報901を記憶装置36に転送し、記憶させる。このとき、通信制御部352は、当該通信情報901が無線通信部39によって受信されたときのRSSI値を、当該通信情報901に関連づける。
このようにして、受信された通信情報901が記憶装置36に記憶されると、情報作成部353は、当該通信情報901の終点(最終宛先)が自機であるか否かを判定する(ステップS34)。なお、ステップS34における判定は、例えば、受信された通信情報901のDSTフィールドに自機の識別情報が格納されているか否かによって判定することができる。
受信された通信情報901の終点が自機である場合(ステップS34においてYes。)、無線通信部39は、当該通信情報901の始点(発信源)に対して、応答のための通信情報901を送信する(ステップS35)。
自機を最終的な宛先とする通信情報901が受信された場合とは、すなわち、始点から送信された通信情報901が、無事に、最終的な宛先まで到着したことを意味する。したがって、ステップS35において送信される応答のための通信情報901は、始点から送信された通信情報901に対する返信としての応答のための通信情報901である。
ステップS35では、まず、制御実行部354が当該通信情報901のCoAPframeフィールドを解析して、制御情報902を自機において実行する。例えば、制御情報902に点灯コマンドが含まれている場合には、制御実行部354は照明部38を点灯させる。これにより、指示情報900において所望された制御が、所望された制御対象において実現される。
制御実行部354による制御情報902の実行と並行して、情報作成部353は、当該通信情報901に対する返信としての応答のための通信情報901を作成する。情報作成部353による応答のための通信情報901の作成は、例えば、以下のように実行される。
まず、情報作成部353は、CoAPframeフィールドに受信完了(ACK)を格納し、SEQフィールドに新たなシーケンス番号を格納して、新しい通信情報901を作成する。また、情報作成部353は、新しく作成した通信情報901のHLMTフィールドに「44(設定値)」を格納する。また、情報作成部353は、新しく作成した通信情報901のORGフィールドおよびSRCフィールドに自機の識別情報を格納する。
また、情報作成部353は、受信された通信情報901のORGフィールドに格納されている識別情報(始点を示す。)を取得して、新しく作成した通信情報901のDSTフィールドに格納する。これにより、新しく作成した通信情報901の最終的な宛先が、受信された通信情報901の発信源(始点)となるように設定される。
また、情報作成部353は、受信された通信情報901のSRCフィールドに格納されている識別情報(送信元を示す。)を取得して、新しく作成した通信情報901のNEXTフィールドに格納する。
このように、新しく作成された通信情報901のNEXTフィールドには、「FFFF」でない値が格納されるため、以下の処理において、当該通信情報901はユニキャストにより送信されることになる。また、このとき作成される新しい通信情報901の送信先は、当該相手から送信された通信情報901を自機が受信できた相手である。したがって、新しく作成された通信情報901をユニキャストによって送信したとしても成功する可能性が高いと言える。
ステップS35において新たに作成された通信情報901の終点は、受信された通信情報901の始点である。すなわち、例え、新しく作成された通信情報901の終点に対する通信経路が、ステップS35が実行される時点において経路情報361に登録されていなかったとしても、受信された通信情報901が受信されたことによって、必ず、受信された通信情報901に基づいて当該終点に対する通信経路が確定され、経路情報361に登録される。したがって、情報作成部353は、ステップS35において作成する通信情報901の終点に対する通信経路が確定しているか否かを判定する必要はない。ステップS35において、情報作成部353は、再送カウンタ363を、通常時のユニキャストの再送制限回数である「3」にセットする。
さらに、情報作成部353は、新しく作成した通信情報901について、DSTフィールドに格納した識別情報と、NEXTフィールドに格納した識別情報とを比較する。そして、これらが同一の場合には、新しく作成した通信情報901のLLCフィールドにリピーターフレームでないことを示す情報を格納する。一方、情報作成部353は、比較した情報が同一でない場合、新しく作成した通信情報901のLLCフィールドにリピーターフレームであることを示す情報を格納する。
このようにして、受信された通信情報901の終点において、情報作成部353により、当該通信情報901に対する返信としての応答のための通信情報901が作成される。
応答のための通信情報901が作成されると、通信制御部352は、作成された通信情報901をユニキャストにより送信するように、無線通信部39を制御する。これにより、無線通信部39が応答のための通信情報901をユニキャストにより送信する。これがステップS35における始点への応答となる。
ステップS35において送信された通信情報901が始点にまで到達すると、始点(無線モジュール2)は、終点からの返信としての応答のための通信情報901を受信したとして、ステップS4またはS14においてYesと判定する。
なお、詳細な説明を省略するが、ステップS35において実行されるユニキャストが失敗した場合には、通常時のユニキャストの再送制限回数だけ再送が繰り返される。そしてさらにユニキャストに失敗すると、通信制御部352が送信の形態をブロードキャストに切り替え、無線通信部39が当該通信情報901をブロードキャストにより送信する。
また、厳密には、ステップS34においてYesと判定される通信情報901としては、自機からのユニキャスト(例えば、ステップS35や後述するステップS45,S49など)により送信された通信情報901が、単に、送信先(終点ではない。)に受信されたことのみを通知する通信情報901が存在する。詳細は省略するが、このような通信情報901に対しては、ステップS35は実行されない。当該通信情報901は、当該ユニキャストが成功したか否かを判定するために用いる。
ステップS35における始点への応答が完了すると、CPU35は、経路決定処理を実行する(ステップS36)。ステップS36における経路決定処理は、図9に示すステップS7における経路決定処理(図11)と同様に実行することができる。したがって、ここでは説明を省略する。
ステップS36を実行すると、CPU35は、受信履歴を更新して(ステップS37)、ステップS31に戻り、再び、通信情報901の受信を監視する状態に戻る。なお、ステップS37における受信履歴の更新とは、今回受信された通信情報901を記憶装置36に記録しておくための処理である。本実施の形態では、ステップS32においてNoと判定された時点で、通信制御部352によって通信情報901は記憶装置36に記憶される。したがって、本実施の形態においては、ステップS37の処理は、単に、記憶装置36に記憶されている通信情報901を削除しないだけである。ただし、ステップS37において、例えば、履歴情報を別途作成して、通信情報901を格納して別途管理してもよい。あるいは、そのときに、通信情報901に含まれる情報のうち、後に必要となる情報のみ取捨選択して記憶し管理するようにしてもよい。
次に、ステップS34においてNoと判定された場合について説明する。ステップS34においてNoと判定される場合とは、受信された通信情報901の最終宛先が自機でない場合である。このような通信情報901は、自機が最終宛先に向けて転送する必要がある。
したがって、ステップS34においてNoと判定されると、通信制御部352は、モードフラグ362を参照して、自機がリピーターモードで動作しているか否かを判定する(ステップS38)。より詳細には、通信制御部352は、モードフラグが「1」か否かを判定する。
モードフラグが「0」の場合(ステップS38においてNo。)、自機は、通信情報901を転送する機能を有していないので、通信制御部352は、受信された通信情報901を記憶装置36(受信履歴)から削除することにより破棄し(ステップS33)、ステップS31に戻る。
このように、無線通信システム1では、リピーター機能を有さない照明装置30,31,32が他機を最終宛先とする通信情報901を受信したとしても、当該通信情報901は破棄される。すなわち、無線通信システム1は、照明装置30,31,32のリピーター機能を無効にすることにより、通信情報901の無秩序な転送を、容易に抑制することができる。
モードフラグが「1」の場合(ステップS38においてYes。)、情報作成部353は、受信された通信情報901のHLMTフィールドを参照し、ホップ消化数がホップ制限回数に到達しているか否かを判定する(ステップS39)。ステップS39における判定は、ホップ消化数を求めて判定してもよいが、例えば、受信された通信情報901のホップ残数が「1」以下か否かによって判定することもできる。
ホップ残数が「1」以下の場合(ステップS39においてYes。)、受信された通信情報901のホップ消化数がホップ制限回数に到達しており、当該通信情報901は、当該通信情報901をさらに転送することを禁止される。したがって、通信制御部352は、受信された通信情報901を記憶装置36(受信履歴)から削除することにより破棄し(ステップS33)、ステップS31に戻る。
このように、無線通信システム1は、通信情報901のホップ回数を管理することにより、通信情報901の転送が無制限に繰り返されることを、容易に抑制することができる。
ステップS39においてNoの場合(ホップ残数がホップ制限回数に到達していない場合)、情報作成部353は、受信された通信情報901を解析することにより、当該通信情報901がブロードキャストによって送信されたか否かを判定する(図13:ステップS40)。ステップS40における判定は、例えば、当該通信情報901のNEXTフィールドを参照し、格納されている情報が「FFFF」か否かによって判定することができる。
受信された通信情報901がブロードキャストにより送信されたものでない場合(ステップS40においてNo。)、無線通信部39は、送信元に対して応答する(ステップS41)。送信元に対する応答とは、送信先が自機に対して実行したユニキャストが成功したことに対する応答であって、図12に示すステップS35とは異なり、始点まで伝送されることはない。
なお、受信された通信情報901の送信元が始点であった場合、ステップS41における応答も、結果的には、ステップS35と同じく始点にまで伝送される。ただし、その場合であっても、ステップS34においてNoと判定されているため、受信された通信情報901は自機宛ではない。すなわち、当該通信情報901に含まれる制御情報902が自機において実行されることはないので、ステップS41において送信される応答のための通信情報901に含まれる制御情報902は、終点からの返信としてのACKではない。したがって、ステップS41において送信される通信情報901を例え始点が受信したとしても、当該始点は、終点からの返信としての応答のための通信情報901を受信したとは判定しない。すなわち、ステップS41において送信される応答のための通信情報901を受信したとしても、無線モジュール2は、ステップS4またはS14においてYesと判定することはない。
また、詳細な説明は省略するが、ステップS41における送信は、通常時のユニキャストではなく、専用のフレーム(ACKフレーム)を用いたユニキャストにより実行される。当該ACKフレームは、ユニキャストで送信された特定のフレームを正しく受信したことを伝達するためのフレームである。
一方、ステップS40においてYesと判定された場合、情報作成部353は、ステップS41の処理をスキップする。したがって、自機を最終的な宛先としない通信情報901をブロードキャストにより受信した場合には、ステップS41が実行されることがないため、応答のための通信情報901が送信されることはない。すなわち、ブロードキャストに対しては、逐次の応答確認はされない。
次に、経路決定部351は、今回受信された通信情報901に基づいて、経路決定処理を実行する(ステップS42)。ステップS42における経路決定処理は、図9に示すステップS7における経路決定処理(図11)と同様に実行することができる。したがって、ここでは説明を省略する。
ステップS42における経路決定処理が完了すると、情報作成部353は、受信された通信情報901を他機に転送するために、新たに通信情報901を作成する処理を開始する。
まず、情報作成部353は、受信された通信情報901のホップ残数が「2」より大きいか否かを判定する(ステップS43)。ステップS43における判定は、情報作成部353が、受信された通信情報901のHLMTフィールドの下位桁を参照することにより実現できる。なお、ステップS43が実行される時点では、すでにステップS39においてNoと判定されている。したがって、ステップS43が実行される時点において、受信された通信情報901のホップ残数は「2」以上である。
ホップ残数が「2」以下の場合(ステップS43においてNo。)、情報作成部353は、情報作成部353は、受信された通信情報901を複写することにより、新しい通信情報901を作成した上で、当該新しく作成した通信情報901のHLMTフィールドの下位桁をデクリメントする。これにより、新しく作成した通信情報901のホップ残数がデクリメントされる(ステップS44)。ステップS44におけるホップ残数のデクリメントは、自機による転送によって、当該通信情報901のホップ残数が減少することを記録するためのものである。
次に、情報作成部353は、新しく作成した通信情報901のSRCフィールドを自機の識別情報に書き換える。これにより、新しく作成された通信情報901を受信した相手に対して、送信元が自機であることを伝達することができる。
ここで、ステップS43においてNoと判定される場合とは、すなわち、受信された通信情報901のホップ残数が「2」の場合である。受信された通信情報901のホップ残数が「2」の場合、自機において当該通信情報901を転送することは許可される(ホップ残数を「1」として転送する。)。しかし、自機から転送された通信情報901は、受信側においてホップ消化数がホップ制限回数となるため、受信側において、さらなる転送は禁止される。
このように、受信側において転送が禁止される通信情報901を自機から送信する場合、当該自機からの送信によって、当該通信情報901が終点(最終宛先)に到着するのでなければ、結局、受信側において破棄されるため、送信する意味がない。すなわち、当該送信をブロードキャストして、終点以外の装置に受信させる意味はない。
したがって、ステップS43においてNoと判定された場合、情報作成部353は、受信した通信情報901のDSTフィールドに格納されている識別情報を、新しく作成した通信情報901のNEXTフィールドに格納する。これは、新しく作成された通信情報901が、終点に対するユニキャストで送信されることを意味する。
さらに、情報作成部353は、通信情報901のDSTフィールドに格納されている識別情報によって、経路情報361を検索し、通信経路が確定しているか否かを判定する。そして、通信経路が確定している場合は再送カウンタ363を「3」にセットし、通信経路が確定していない場合は再送カウンタ363を「0」にセットする。
このようにして、ステップS44において、新しい通信情報901の作成が完了すると、通信制御部352は、新しく作成された通信情報901を送信するように無線通信部39を制御する。これにより、無線通信部39は、新しく作成された通信情報901を、終点に向けてユニキャストする(ステップS45)。
図13において図示を省略しているが、ステップS45において実行されるユニキャストは、通常時のユニキャストである場合もあれば、経路探索用のユニキャストである場合もある。
したがって、通信制御部352は、ステップS45において実行されたユニキャストが失敗した場合には、再送カウンタ363を参照し、適宜デクリメントしつつ、再送するか否かを決定し、ステップS45を繰り返す。
そして、通信制御部352は、最終的に、ユニキャストが成功したか否かを判定する(ステップS46)。
ユニキャストに成功しなかった場合(ステップS46においてNo。)、当該通信情報901をさらにブロードキャストする意味はないので、通信制御部352は、受信された通信情報901および新たに作成された通信情報901を破棄し(ステップS33)、ステップS31に戻る。このとき、経路決定部351は、経路決定部202によって実行されるステップS17と同様に、通信経路の経路評価値をインクリメントする(評価としては下げる)。
一方、ユニキャストに成功した場合(ステップS46においてYes。)、経路決定部351は、ユニキャストの成功を通知してきた通信情報901(応答のための通信情報901)に基づいて、経路決定処理を実行するために、ステップS36以降の処理を実行する。
ステップS43においてYesの場合(ホップ残数が「2」より大きい場合。)、情報作成部353は、情報作成部353は、受信された通信情報901を複写することにより、新しい通信情報901を作成した上で、当該新しく作成した通信情報901のHLMTフィールドの下位桁をデクリメントする。これにより、新しく作成した通信情報901のホップ残数がデクリメントされる(ステップS47)。ステップS47におけるホップ残数のデクリメントは、自機による転送によって、当該通信情報901のホップ残数が減少することを記録するためのものである。
次に、情報作成部353は、受信された通信情報901のDSTフィールドに格納されている識別情報を取得し、取得した識別情報を検索キーとして、経路情報361を検索する。これにより、情報作成部353は、受信された通信情報901の終点に対するレコードが経路情報361に存在しているか否かを判定する。すなわち、当該終点に対する通信経路が確定しているか否かを判定する(ステップS48)。
該当するレコードが存在している場合(ステップS48においてYes。)、情報作成部353は、当該レコードに格納されている送信先の識別情報を取得して、新しく作成した通信情報901の送信先に格納する。また、情報作成部353は、再送カウンタ363を「3」に更新する。
このようにして、情報作成部353によって、転送する通信情報901が新しく作成されると、通信制御部352は、当該新しく作成された通信情報901をユニキャストで送信するように無線通信部39を制御する。これにより、無線通信部39が、当該通信情報901をユニキャストによって送信する(ステップS49)。
ステップS49が実行されると、通信制御部352は、ステップS49におけるユニキャストが成功したか否かを判定する(ステップS50)。
ステップS49におけるユニキャストは通常時のユニキャストである。したがって、図13において詳細は省略しているが、当該ユニキャストに失敗しても、再送制限回数まではユニキャストが繰り返される。そして、再送カウンタ363により、再送回数が再送制限回数に達したときに、最終的に、ステップS49におけるユニキャストが失敗したと判定される。
ユニキャストが成功した場合(ステップS50においてYes。)、経路決定部351は、受信された通信情報901に基づいて、経路決定処理を実行するために、ステップS36以降の処理を実行する。
最終的にユニキャストが失敗した場合(ステップS50においてNo。)、情報作成部353は、新しく作成した通信情報901のNEXTフィールドを「FFFF」に書き換える。なお、このとき、経路決定部351は、経路決定部202によって実行されるステップS17と同様に、通信経路の経路評価値をインクリメントする(評価としては下げる)。
このようにして、転送する通信情報901が情報作成部353によって更新されると、通信制御部352は、当該通信情報901をブロードキャストで送信するように無線通信部39を制御する。これにより、無線通信部39が、当該通信情報901をブロードキャストによって送信する(ステップS51)。
ステップS51が実行されると、経路決定部351は、受信された通信情報901に基づいて、経路決定処理を実行するために、ステップS36以降の処理を実行する。
一方、該当するレコードが存在しない場合(ステップS48においてNo。)、情報作成部353は、新しく作成した通信情報901の送信先に「FFFF」を格納する。これにより、新しく作成した通信情報901はブロードキャストされるが、このとき、情報作成部353は、再送カウンタ363を「0」に更新してもよい。
このようにして、情報作成部353によって、転送する通信情報901が新しく作成されると、通信制御部352は、当該新しく作成された通信情報901をブロードキャストで送信するように無線通信部39を制御する。これにより、無線通信部39が、当該通信情報901をブロードキャストによって送信する(ステップS51)。
ステップS51が実行されると、経路決定部351は、受信された通信情報901に基づいて、経路決定処理を実行するために、ステップS36以降の処理を実行する。
以上のように、無線通信システム1は、通信情報901を無線通信により送信する無線モジュール2と、通信情報901を無線通信により受信する照明装置30,31,32と、無線モジュール2から照明装置30,31,32に向けて送信された通信情報901を受信して、照明装置30,31,32に向けて送信することが可能な無線中継機40,41,42とを備えている。そして、無線モジュール2は、照明装置30,31,32(無線中継機40,41,42)に対する通信経路を経路情報211として記憶する記憶装置21と、通信情報901を照明装置30,31,32(無線中継機40,41,42)に向けて送信する無線通信部25と、照明装置30,31,32(無線中継機40,41,42)に対する通信経路が記憶装置21に記憶されていない場合に、照明装置30,31,32(無線中継機40,41,42)を送信先とする経路探索用のユニキャストにより、当該通信情報901を照明装置30,31,32(無線中継機40,41,42)に向けて送信するように無線通信部25を制御する通信制御部201とを備える。これにより、例えば、照明装置30に対する通信経路が確定していない状況でも、まずは、通信情報901を経路探索用のユニキャストによって、照明装置30に向けて直接送信することにより、いきなりブロードキャストによって送信する場合に比べて、トラフィックを抑制することができる。
また、経路探索用のユニキャストは信頼度が低く、通常時のユニキャストに比べて失敗する可能性が高い。したがって、経路探索用のユニキャストについて設定される再送制限回数は、通常時のユニキャストについて設定される再送制限回数よりも少ない回数であることにより、ユニキャストの失敗が蓄積することによる遅延を抑制することができる。
また、通信制御部201は、経路探索用のユニキャストによる送信が失敗したときに、通信情報901の終点を最終的な宛先とするブロードキャストにより、当該通信情報を送信するように無線通信部25を制御する。これにより、経路探索用のユニキャストに失敗しても、終点が通信情報901を受信する可能性が高まる。したがって、無線受信機に対する通信経路が決定される可能性が高まる。
また、自機が受信した通信情報901に基づいて、当該通信情報901の発信源に対する通信経路を決定する経路決定部202(経路決定部351)をさらに備える。したがって、通信経路を自動的に生成することができる。
また、通信経路に経路評価値が設定されており、経路決定部202(経路決定部351)は、当該経路評価値に応じて、当該経路評価値が設定された通信経路を評価して、当該評価が高くなるように当該通信経路を更新する。このように、経路決定部202,351が、評価の高い通信経路に切り替えることにより、通信経路の信頼性が向上する。
また、通信経路における通信情報901のホップ消化数(転送回数)をカウントし、転送回数の少ない通信経路の経路評価値に対する評価が高くなるように、当該経路評価値を設定することにより、通信経路が、転送回数の少ない通信経路に切り替わりやすくなる。
また、受信した通信情報901の受信信号強度(RSSI値)を計測し、受信信号強度が高い通信経路の経路評価値に対する評価が高くなるように、当該経路評価値を設定することにより、通信経路が、受信信号強度の高い通信経路に切り替わりやすくなる。
また、通信経路における通信情報901の再送カウンタ212,363(再送回数)をカウントし、再送回数の少ない通信経路の経路評価値に対する評価が高くなるように、経路評価値を設定する。これにより、通信経路が、再送回数の少ない通信経路に切り替わりやすくなる。
また、無線通信システム1は、受信した通信情報901の送信元と、当該受信した通信情報の最終的な宛先に対する通信経路における送信先とが同一の場合、ループ経路が形成されているとみなして、当該通信経路を破棄する。これにより、トラフィックの増大を抑制することができる。
特に、破棄した通信経路(ループ経路とみなした通信経路)に代わって、当該受信した通信情報の最終的な宛先(終点)を宛先とする通信経路を新たに決定することにより、今後、直接のユニキャストを試させることができる。したがって、当該ユニキャストに成功すれば、通信経路の決定に要する時間を抑制することができる。
また、通信情報901に転送制限回数を設定し、無線中継機40,41,42は、当該通信情報901を受信したとき、当該転送制限回数に応じて当該通信情報901の転送の適否を判定する。これにより、通信情報901が無限に転送されることを防止できる。したがって、通信負荷を抑制することができる。
また、無線中継機40,41,42は、他機を最終的な宛先とし、かつ、あと1回の転送によって転送制限回数に達する通信情報901を受信したとき、当該通信情報901の最終的な宛先を宛先とするユニキャストにより、当該通信情報901を送信する。受信されても転送されない通信情報は、ブロードキャストで転送しても無駄になる。したがって、このような場合は、ユニキャストによって直接送信(転送)する。これにより、無駄なブロードキャストを回避できる。したがって、通信負荷を抑制することができる。
また、通信情報901は、当該通信情報901の発信源と、当該発信源において当該通信情報を識別するためのシーケンス番号を含んでいる。そして、無線通信システム1は、当該通信情報901を受信した場合に、当該通信情報901に含まれる発信源およびシーケンス番号に基づいて、当該通信情報901と同一の通信情報901を過去に受信していたか否かを判定し、判定結果に応じて、当該通信情報901を破棄する。これにより、二重制御を防止することができるばかりではなく、トラフィックを抑制することもできる。
また、照明装置30,31,32は、他機を最終的な宛先とする通信情報901を受信したときに、当該通信情報901の最終的な宛先を宛先として送信する機能(リピーター機能)がない場合には、当該通信情報901を破棄する。これにより、不要な通信情報901が記憶装置36に蓄積することを抑制できる。
また、照明装置30,31,32および無線中継機40,41,42は、リピーターモードで動作するか否かを、容易に切り替えることができる。したがって、無線通信システム1における照明装置30,31,32および無線中継機40,41,42のレイアウトの自由度が増す。
<2. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
例えば、上記実施の形態に示した各工程は、あくまでも例示であって、上記に示した順序や内容に限定されるものではない。すなわち、同様の効果が得られるならば、適宜、順序や内容が変更されてもよい。
また、上記実施の形態に示した機能ブロックは、ソフトウェア的に実現されると説明した。例えば、情報作成部200や通信制御部201、経路決定部202は、CPU20がプログラム210に従って動作することにより、実現されると説明した。しかし、このようなソフトウェア的に実現されると説明した機能ブロックの一部または全部を専用の論理回路で構成し、ハードウェア的に実現してもよい。
また、上記実施の形態では、説明を簡単にするために、情報作成部200は、指示情報900に基づいて制御情報902を作成すると説明した。しかし、情報作成部200は、指示情報900以外の情報に基づいて制御情報902を作成してもよい。例えば、情報作成部200は、操作部22が操作されることにより入力された情報や、予め設定されたスケジュール情報、あるいは、照明装置30,31,32または無線中継機40,41,42から受信した情報などに基づいて、制御情報902を作成してもよい。
また、無線通信システム1が備える無線受信機(照明装置)は、リピーターモードで動作する機能を有していなくてもよい。すなわち、自機宛の通信情報901(制御情報902)のみを受信して処理する専用の装置として構成されていてもよい。また、そのような装置が、照明装置30,31,32と混在していてもよい。
また、無線通信システム1が備える無線中継機は、無線中継機40,41,42のように、照明部38を備えていなくてもよい。すなわち、無線通信システム1が備える無線中継機は、少なくとも通信情報901を他の装置に向けて転送する機能を有していればよいのであって、照明器具として兼用されるように構成されていなくてもよい。また、そのような転送専用の装置が、無線中継機40,41,42と混在していてもよい。
また、コントローラ9および無線モジュール2は、それぞれの機能を有する1つの装置として構成されていてもよい。