以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
<<実施形態1>>
本実施形態の制御局(制御局装置)や端末局(通信装置、以下ノードと記載)の構成及び制御動作について、図1から図16を参照して説明する。
図1は、本実施形態に係る、制御局とノードの構成例を表す図である。図1において、101は本実施形態に係る冗長通信経路(中継装置を経由する伝送経路)生成処理を実行する制御局である。102〜107は各々中継ノードとして動作可能なノードである。108は制御局101の無線通信範囲である。109は各ノードへ伝送するデータを生成するデータ処理装置である。110〜116は各ノードが無線通信可能なノードを表すテーブルである。
図2は、制御局101及びノード102〜107の構成を示すブロック図である。ただし、図2では、ノードの代表例としてノード102の構成を示しているが、ノード103〜107の構成も同様である。
図2において、201、207は、伝送路上の電波を検出するキャリア検出部として機能するとともに、電波を用いたデータの送受信とアンテナを制御する機能を有する無線通信部である。特に、無線通信部207は、外部装置からの無線信号を受信する信号受信手段として機能する。202、208は、本実施形態に係る処理を行う制御部である。203、209は、データ及び制御プログラムを保存するメモリである。204、210は、通信制御で必要となる時間計測を行う為のタイマであり、複数の独立したタイマで構成されている。205は、データ処理装置109から制御局101へ、データ及び制御情報などを通信するための外部インターフェイスである。210は、制御局101から受信したデータの処理を行う信号処理部である。206、211は、無線通信部201、207の送受信に対して電波を入出力する為のアンテナである。
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
本実施形態では、説明の便宜のため、制御局、ノードをそれぞれ1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、各装置上で仮想的に実現される処理単位毎にリソースを分散し、並列処理を行うようにしてもよい。
図3は、制御局101がノード102〜107を検出するシーケンスを示すシーケンス図である。図4は、制御局101の制御部202が実行を制御するノード検出処理の手順を示すフローチャートである。図5は、制御局101の指示によりノードが無線通信可能な周辺ノード検索(検出)を行うシーケンスを表すシーケンス図である。図6は、制御局101からノードが無線通信可能な周辺ノード検索を行うために、制御部202が実行を制御するノード検出処理の手順を示すフローチャートである。図7は、制御局101のメモリ203に保存される各ノード102〜107が周辺ノード検索を行った結果の情報テーブルの例を示す図である。図3〜図7については、後の記述において参照して説明する。
図8は、本実施形態で伝送されるデータを模式的に示す図である。801〜806はデータ処理装置109で生成される各ノード伝送データであり、例えば、音響信号のストリームデータである。807はデータの有効時間である。808は各ノードの伝送データ801〜806が無線伝送のために時間軸上で圧縮多重されたデータである。809は808のデータを無線伝送するために必要な時間である。810は制御局101から全ノードに対して出力されるビーコン信号である。811から813は中継ノードが受信データを中継伝送するまでの時間である。
図9は、制御局101の制御部202が実行を制御する、中継通信スロット数を決定する為の処理の手順を示すフローチャートである。図10は、制御局101の制御部202が実行を制御する、複数ノードから中継ノード選択設定するための中継ノード選択設定処理(冗長パス設定処理)の手順を示すフローチャートである。図11は、制御局101の制御部202で中継ノード選択処理を行う為にメモリ203に保存される、各ノード102〜107が周辺ノード検索を行った結果の情報テーブルを再構成した結果を例示する図である。図12は、制御局101とノード102〜107のデータ伝送及び中継伝送動作を示すシーケンス図である。図9〜図12についても、後の記述において参照して説明する。
図13は、制御局101とノード102〜107で伝送されるフレームフォーマットであり、データフレーム伝送時に用いられる情報を示した図である。1301はフレームの種別を識別するフレームタイプフィールドであり、1302はコマンドフレーム、1303はレスポンスフレーム、1304はデータフレームを各々示すコードが記載される事を示している。1305は通信相手の固有識別情報(識別情報)、又は、全てのノードで受信可能なブロードキャスト情報を書き込む宛先アドレスフィールドである。1306は送信元の固有識別情報を書き込む送信元アドレスフィールドである。
1307はフレーム伝送で必要となる情報を書き込む制御フィールドであり、1308のサブタイプ領域と1309のパラメータ領域により構成される。1310はデータフレームを示すコードがサブタイプ領域1308に書かれていることを示し、1311はデータフレームで伝送されるデータの多重数を記載する領域である。1312はデータの識別情報を書き込む領域であり、制御局から伝送されるデータ−フレームはソースを示すコードが記載され、中継ノードから伝送されるデータフレームでは中継を示すコードが記載される。1313はタイムスタンプ情報を記載するフィールドである。1314はフレームタイプフィールドからタイムスタンプフィールドまでのフレームヘッダの誤りを検出するためのフレームチェックシーケンスである。
1315は各ノードデータを格納する情報フィールドであり、各ノードデータが全て格納される。1316は、情報フィールド1315に格納されている一つのノードデータを識別する為のデータ識別情報領域であり、例えばノードA102を示すアドレスやデータ配列番号などのノードを識別可能な情報が記載される。1317はその後に続くデータ長を示すレングス(length)情報領域である。1318はノード宛てのデータが格納されるデータ/誤り訂正符号領域である。データ/誤り訂正符号領域1318には、転送するデータそのもののみならず、例えば、リードソロモン符号や畳込み符号などの誤り訂正符号により符号化されたデータをも格納することができる。これにより、データ/誤り訂正符号領域1318に格納された情報を用いて誤り訂正が出来るように構成する事が出来る。1319はデータ識別情報領域1316からデータ領域1318までのデータの誤り検出を行う為のフレームチェックシーケンスを格納する領域である。
図14は、各ノード(例えば102)の制御部208が実行を制御する、データ受信処理の手順を示すフローチャートである。図15は、中継ノードとして選択されたノードの制御部208が実行を制御する、データ中継処理の手順を示すフローチャートである。図16は、制御局101によるノードを検出する他の手法を示すシーケンス図である。図14〜図16についても、後の記述において参照して説明する。
(処理の概要)
図1に例示した構成において、データ処理装置109からのデータを伝送するために、制御局101とノード102〜107は、以下の処理を実行して当該データをノード102〜107に伝送する。
(1)ノード検出処理
まず、制御局101は、当該制御局101と無線通信可能なノードを検出することによって、データの送信先となるノードを検出する処理を行う。
(2)周辺ノード検索処理
次に、ノード102〜107は、当該ノードが無線通信可能な他のノードを検索(検出)する処理を行い、検索されたノードの識別情報を制御局101に通知する。
(3)中継通信スロット演算処理
次に、制御局101は、ビーコン周期に割り当て可能な中継通信スロット数を算出する。ここでは、ビーコン周期に伝送すべきデータの量と、装置間における通信可能帯域と、に基づいて、ビーコン周期に伝送すべきデータの伝送時間を演算し、この伝送時間とビーコン周期と、に基づいてビーコン周期に割り当て可能な中継通信スロット数を算出する。なお、中継通信スロットは、データの中継伝送を行うための期間であり、中継の通信タイミングに相当する。
(4)中継ノード選択設定処理
次に、制御局101は、受信した識別情報に基づいて、データの伝送を中継する中継ノード(中継装置)を複数のノードから選択し、選択された中継装置による中継の通信タイミングを決定する。この中継装置の選択と、通信タイミングの決定は、中継通信スロット演算処理において算出された中継通信スロット数に基づいて行われる。そして、選択された中継装置に対して、データ中継の指示と通信タイミングを通知する。ここで、上記の決定は、制御局101から2以上の伝送経路を介してデータを受信するノードが存在するようになされる。
(5)データ伝送処理
次に、制御局101は、伝送すべきデータを送信する。中継装置として選択されたノードは、受信したデータを中継する処理を行う。即ち、データ中継の指示と通信タイミングが制御局101から通知されているノードは、受信したデータを通知された通信タイミングに合わせて送出制御する。
以下、各処理の詳細を説明する。
(ノード検出処理)
次に、ノード検出処理(接続処理)について図1〜図4を参照して説明する。以下、図3に示されたシーケンスと、図4のフローチャートの手順に沿って順に説明する。
初めに制御局101の電源が投入されると、制御部202は無線通信部201の初期化処理とビーコン周期などのビーコン送信に必要な情報を設定し、ビーコン信号301の送信を開始する。ビーコン送信指示が完了した制御部202は、図4のステップS401において、タイマ204に接続待機タイマ値を設定した後に、接続処理動作に移行し接続待機タイマをスタートさせる。そして、ノードからの接続要求確認ステップS402に移行し接続要求の確認を行う。ここで、接続要求が検出されない場合(ステップS402でNO)は、接続待機時間のタイムアウト監視ステップS407に移行し接続待機時間のタイムアウトを確認する。そこで、接続待機時間が経過していない場合(ステップS407でNO)には、再度接続要求確認ステップS402に移行し接続要求の確認を行う。ステップS402において、接続要求が検出される(ステップS402でYES)か、待機時間が経過する(ステップS407でYES)までの間はこの処理を繰り返す。つまり、ステップS401で接続待機タイマをスタートさせてからは、接続待機タイマがタイムアウトするまで、ノードからの接続要求の受信を待機する。
仮に接続待機時間のタイムアウト監視ステップS407に於いて、接続待機時間のタイムアウト315を検出する(ステップS407でYES)と、制御部202は一旦接続処理を完了し、既に複数のノードが検出されているかを確認する。ここで、複数のノードが検出されていない場合で、データ処理装置109からのデータ送信指示がない場合には再度、ステップS401に戻り接続処理を行う。また、制御局101の制御部202が、既に複数の検出ノードがあることを検知した場合には、接続処理を行わず、図6に示すノード検索処理へ移行する。
一方、各ノード102〜107は、電源投入後、制御部208の制御により無線通信部207の初期化を行い、その後、制御局101から送信されるビーコン301の受信検出動作を繰り返す。
図3の例では、ノードF107に於いてビーコン301が検出されると、ノードF107の無線通信部207から制御部208に対してビーコン検出情報が出される。このビーコン検出情報を受けた制御部208は、無線通信部207に対して制御局101への接続要求信号送信指示を出す。この指示を受けた無線通信部207は、はじめにランダムに値が生成されるランダムバックオフ時間302の間だけ無線空間伝送路上のキャリアセンスを行う。そして、ランダムバックオフ時間の間に他ノードのキャリアが検出されなかった場合は、図3のように、制御局101に対して接続要求303を送信し、接続許可信号307の受信を待機する。
制御局101で接続要求受信304を検出すると(ステップS402でYES)、制御局101の制御部202の接続処理はステップS403へ移行し、接続待機タイマのリセットを行う。そして、ステップS404へ移行し接続許可信号を送信する処理を行う。接続許可信号送信処理(ステップS404)では、接続要求304に含まれるノードFの固有識別情報を宛先アドレスにセットした接続許可信号306を生成し、無線通信部201を介してノードF107へ伝送する。そして、検出ノード登録処理を行うステップS405へ移行する。ステップS405では、先に取得したノードF107の固有識別情報を検出ノードテーブル308に登録しメモリ203へ保存する。そして、ステップS406において、接続待機タイマをスタートさせた後に、再度接続要求検出動作を行う。
一方、図3のように、制御局101からの接続許可信号307を受信したノードF107は、接続状態となり、制御局101からの周辺ノード検索指示信号、若しくは、データの受信を待機する。
図3の例では、続いてノードB103からの接続要求310が送信されている。これに対して、接続要求311を受信すると、制御局101は、ノードF107の接続処理と同様の処理により接続許可信号312を送信し、検出ノードテーブル314にノードB103の情報を登録する。一方、制御局101からの接続許可信号313を受信したノードB103は、ノードF107同様に接続状態に移行し、制御局101からの周辺ノード検索指示信号、若しくは、データ受信を待機する。このようにして制御局101の制御部202で接続処理が繰り返し行われ、接続待機時間が経過した後に複数の検出ノードがあることを検知すると、接続処理を終了しノード検索処理へ移行する。
本実施形態では、制御局101の接続待機時間のタイムアウトと検出ノード数に基づいて、ノード検索処理の実行を制御する構成について例示的に説明している。しかし、制御局101が、外部インターフェイス205を介してデータ処理装置109から、あらかじめ通信するノード数情報を通知されている場合には、この通知情報に基づいて接続処理を制御することが可能である。例えば、データ処理装置109から、通信ノード数が6台と通知され、ノード検出が3台しかない場合には、接続待機時間がタイムアウトした後に検出ノードが2台検知されても、接続処理を継続するように構成する事が可能である。また、この動作で制御局101の制御部202に於いて、接続待機時間の最大タイムアウト回数を設定し、この回数を超えても所定のノード数が検出されない場合に、データ処理装置109にエラー情報を伝送し処理を完了するように構成する事も可能である。
また、先の説明では制御局101からビーコン信号301を送出し、このビーコン信号301を受信したノード102〜107が自動的に接続動作に移行する例を示した。しかし、ノード検出動作はこれに限らず、図16に示すように制御局101から能動的にノード検索を行ってもよい。このような処理を適宜実行する事で、あらかじめ接続すべきノードの数がわかっていて、検出されたノード数がその値に満たない場合には、その検出時間を短縮できる可能性が高くなる。以下、図16を参照して、能動的にノード検出を行う動作について説明する。
先の説明と同様に、制御局101の制御部202でノード検出動作に移行すると、制御局101は全てのノードが受信可能なブロードキャストを用いて機器検索信号1601を生成し無線通信部201を介して送信する。そして、あらかじめ定めたノード検出時間をタイマ204に設定し、機器検索応答時間の計測を開始する(1602)。この機器検索信号1603を受信したノード102〜107はアクセス競合回避のためのランダムバックオフ時間1604だけキャリアセンスを行い、このランダムバックオフ時間が早く終了したノードF107が機器検索応答信号1605を送信する。この機器検索応答信号1606を受信した制御局101では、前記説明と同様に機器検索応答信号に含まれるノードF107の固有識別情報を検出ノードテーブル1607に登録しメモリ203へ保存する。
そして、ノードF107の機器検索応答1605の送信が完了し、無線伝送路上の電波が検出されなくなると、機器検索信号1601を受信した他のノードが再度ランダムバックオフ手順1608を行い、前記同様に送信を試みる。そして、ランダムバックオフ時間が早く終了したノード104が機器検索応答信号1609を送信し、この信号1610を受信した制御局101は、前記同様に検出ノードテーブル1611を更新する。
しかし、機器検索信号1601を受信し、ランダムバックオフ手順により、送信機会が得られなかったノード106Eは、アクセスリトライオーバー1612となり、応答信号送信を中断してしまう。そこで、制御局101では、機器検索応答受信はノード検出時間の設定時間を経過するまで継続した後に、この時間がタイムアウト1613すると、再度機器検索信号を送信する。この手順の繰り返しは、前記ビーコン検出による処理と同様である。
以上説明したように、制御局101から能動的に機器検索を行わせるようにしてもよい。この場合、ノード検出時間間隔を短く設定する事で、ノードがこの検索信号を受信する機会を増やし、結果的に検索時間を短縮できる可能性がある。なお、この機器検索信号の詳細については説明を省いているが、この信号にノード検出時間の設定値を含める事で、同信号の有効期間を通知でき、新たに送信される機器検索信号とノードからの応答信号の衝突を回避できる。
なお、ここでは、制御局101と無線通信可能なノードを検出する手法として、制御局101とノードとの通信に基づくものを例示的に説明したが、これに限られない。例えば、送信対象のノードの識別情報のリスト情報を入手したり、ユーザからの指示入力に基づいて検出してもよい。或いは、GPS(Global Positioning System)を制御局101及び各ノードに設けて制御局101と無線通信可能なノードを検出してもよい。
(周辺ノード検索処理)
次に、各ノードが無線通信可能な周辺ノードを検索するノード検索処理(周辺ノード検索処理)について、図1、図2及び図5〜図7を参照して説明する。
制御局101の制御部202に於いて複数のノードが検出され、接続処理からノード検索処理が行われると、同制御部202はステップS601へ移行し、メモリ203に保存した検出ノードテーブル501を読み出す。そして、このテーブル501に登録されているノード情報のうち、周辺ノード検索を行っていないノードの固有識別情報を読み出して、ステップS602で周辺ノード検索時間をタイマ204に設定しステップS603へ移行する。
ステップS603では、先に読み出したノード(例えば107)の固有識別情報を宛先とした周辺ノード検索時間情報を含む周辺ノード検索指示信号(指示情報)502を無線通信部201を介して送信(送出制御)する。周辺ノード検索指示信号502の送信が完了すると、周辺ノード検索指示応答待機時間をタイマ204に設定後、当該タイマ204をスタートさせる(S604)。そして、ステップS605、S606において、周辺ノード検索指示に対する応答の受信505を待機する。ここで、仮に周辺ノード検索指示応答待機時間を経過しても応答信号が得られない場合(ステップS605でNO、ステップS606でYES)には、ステップS607へ移行する。ステップS607では、あらかじめ設定されている最大再送回数の範囲で、同一ノードF107に対して検索指示信号502の送信を繰り返す。
そして、周辺ノード検索指示応答505が受信される(ステップS605でYES)と、ステップS608へ移行する。ステップS608では、タイマ204に設定された周辺ノード検索時間計測タイマを起動し、ステップS609へ移行し、この時間が経過するまでの間待機する。
一方、周辺ノード検索指示信号503を受信したノードF107は、この信号に含まれる周辺ノード検索時間をタイマ210に設定すると共に、制御局101を宛先にした周辺ノード検索指示応答504を無線通信部207を介して送信する。周辺ノード検索指示応答504の送信が完了すると、タイマ210に設定された周辺ノード検索時間計測タイマを起動する。そして、制御部208でブロードキャストアドレスを設定した機器検索信号507生成して、無線通信部207を介して送信すると共に、タイマ210により機器検索応答待機時間の計測を開始508する。
この信号を受信した周辺ノード106、105、102は、制御局101との接続動作と同様ランダムバックオフ時間キャリアセンスした後に、キャリアを検出していないノードE106が機器検索応答信号509を送信する。機器検索応答信号510を受信したノードF107は、この信号に含まれる固有識別情報を周辺ノード検索結果テーブル511に登録しメモリ209に保存し、他のノードからの応答を待機する。また、先に機器検索信号507を受信し、ノードE106と送信タイミングの競合が発生したノードD105とノードA102は、ノードE106の送信完了後、再度ランダムバックオフ手順を実施し、応答信号送信を試みる。そして、この手順で先にバックオフ時間が経過したノードD105が、自局固有識別情報を含む機器検索応答信号512を送信する。この機器検索応答信号513を受信したノードF107は、ノードE106検出時と同様に、この信号に含まれる固有識別情報を周辺ノード検索結果テーブル514に更新し、メモリ209に保存する。ノードF107による一度の機器検索信号送信に対する一連の動作は、機器検索応答待機時間が経過するまで継続し、この待機時間が経過すると516、再度機器検索信号517を送信する。ここで、周辺ノード検索応答504送信後に起動した周辺ノード検索時間計測タイマの設定時間が経過すると518、ノードF107は一連の周辺機器検索動作を終了する。
同様に周辺ノード検索時間計測タイマの設定時間が経過520した事を検知した制御局101の制御部202は、ステップS610に移行する。そして、ノードF107の固有識別情報を宛先にしたノード検索結果要求信号521を生成し、無線通信部201を介して送信する。その後に、制御局101の制御部202は、同信号の応答待機タイマを起動し(ステップS611)、応答を受信するまで待機する(ステップS612、S613)。仮にこのノード検索結果要求応答待機時間が経過しても応答が得られない場合(ステップS612でNO、ステップS613でYES)はS614へ移行し、最大再送回数の範囲でノード検索結果要求信号521の送信を繰り返す。
このノード検索結果要求信号522を受信したノードF107では、周辺ノード検索テーブルの情報を含むノード検索結果応答信号523を生成し、無線通信部207を介して制御局101に送信する。ノード検索結果応答信号524を受信した制御局101の制御部202は、この信号に含まれる周辺ノード検索テーブル525の情報をノードF107の固有識別情報と関連付けて保存(ステップS615)し、検出ノードテーブル501に検索完了フラグを付加する。そして、次にステップS616へ移行する。ステップS616では、周辺ノード検索が完了していないノードがあるか否かを確認し、完了していないノードがある場合にはステップS601へ移行し、一連の動作を繰り返す。そして、制御局101が検出した全てのノードについての、周辺ノード検索結果テーブル図7を作成し、メモリ203へ保存する。また、未完了ノードがない場合には、周辺ノード検索処理を完了し中継通信スロットの設定処理を行う。
なお、ここでは、ノードと無線通信可能な他のノードを検出する手法として、ノード間の通信に基づくものを例示的に説明したが、これに限られない。例えば、送信対象のノードの識別情報のリスト情報を入手したり、ユーザからの指示入力に基づいて検出してもよい。或いは、GPSを各ノードに設けて無線通信可能なノードを検出してもよい。
(中継通信スロット演算処理)
次に、中継通信スロット演算処理(冗長パス演算処理)について図2、図8、図9を参照し説明する。
制御局101が検出した全てのノードについて周辺ノード検索結果テーブル図7の作成が完了すると、ステップS901の処理を行う。ステップS901において、制御部202は、データ処理装置109から、伝送すべきノードデータ801〜806の数と各データの伝送速度(ビットレート)を含む情報を取得する。
次に、ステップS902において、ステップS901で取得した情報と検出ノードテーブルから、データ伝送で多重すべきデータ数を読み出す。
次に、ステップS903において、無線通信部201が無線通信可能な無線伝送速度(ビットレート)を示す無線伝送速度情報を無線通信部201から取得する。
次に、ステップS904において、この伝送すべきデータ1チャネルあたりの伝送速度(ビットレート)と、伝送チャネル多重数から、全てのノードへデータを伝送するために必要な通信帯域を算出する。そして、ステップS903で取得した無線伝送速度情報で示される無線伝送速度で、この算出された通信帯域のデータを伝送した場合に必要となる伝送時間を算出する。なお、図8では、説明の簡略化のため、ノード毎に送出するデータが異なっている場合を例示的に示しているが、複数のノードに同一のデータを伝送する場合にも本実施形態に係る構成を適用することができる。そして、複数のノードに同一のデータを伝送する場合には、同一データを重複して多重化する必要はない。例えば、図8において、データ801と、データ802、803が同一である場合は、データ801〜803を重複して多重化する必要はなく、データ801と、データ804〜806を多重化するだけでよい。このように、異なるデータのみを多重化することで、通信帯域を有効に利用して効率的なデータ伝送を行うことが可能となる。
次に、ステップS905へ移行し、データ処理装置から伝送されるデータ801〜806のデータ有効時間807とステップS904で算出した全データの無線伝送に要する時間から、中継通信スロットの割当可能な時間を算出する。即ち、データ有効時間807をデータ伝送時間809で割り算することにより、データ有効時間807内に割り当て可能な中継通信スロット数(=データ有効時間807/データ伝送時間809)を算出する。なお、図8のように、データ有効時間807は、ビーコン810信号の周期と等しい。そして、この算出結果を中継通信スロット数としてメモリ203に保存し中継通信スロット演算処理を終了する。
本実施形態では、データ処理装置109から示されるノードデータ数と、検出ノード数が同じ場合の処理について例示的に説明している。しかし、検出ノード数がノードデータ数よりも少ない場合や、逆に多い場合なども考えられる。ノードデータが少ない場合の処理としては、データ処理装置109が指定する宛先ノード以外の通信路を切断することができる。ただし、後述の中継ノード選択設定処理により中継経路が有効な場合には中継ノードとして設定する事も可能である。また、ノードデータが検出ノードの数よりも多い場合には、先に周辺ノード検索結果テーブルを参照し、制御局が未検出なノードがある場合には再度接続処理動作を行う事が可能である。また、接続処理動作で、検出できない場合にはノードデータは多重化して伝送し、未検出ノードに対して中継ノード経由で複数通信経路を確保するように中継ノードを選択する事も可能である。
(中継ノード選択設定処理)
以下に中継ノード選択設定処理(冗長パス設定処理)について図2、図10〜図12を参照して説明する。
中継通信スロット演算が終了した制御局101の制御部202では、図10に示す中継ノード選択処理を開始する。初めにステップS1001において、先に算出した中継通信スロット数を読み出した後に、ステップS1002へ移行し周辺ノード検索結果テーブル(図7)を読み出す。
そして、ステップS1003において、周辺ノード検索結果テーブル(図7)の内容を参照し、各ノードで無線通信可能な周辺ノードの数が多いものから順番に並び替えてテーブルを再構成する(図11)。図7の例では、ノードB〜D(103〜105)、ノードF107の周辺ノード数が3つであるのに対し、ノードA102とノードE106の周辺ノード数が5つと多い。このため、ステップS1003では、図11のように、周辺ノード数の多いノードA102とノードE106の順位が繰り上がるように並び替えを行っている。
次に、ステップS1004において、再構成した周辺ノード検索結果テーブルの上位ノードから順に中継通信スロット数だけノードを選択する。次に、ステップS1005において、各ノードが中継可能なノードに対する経路から、全てのノードに対する通信経路の数を計算する。
そして、ステップS1006において、この計算の結果、全てのノードに対して二つ以上の通信経路が設定できているかを検証する。仮に二つ以上の通信経路が設定できていない場合(ステップS1006でNO)には、ステップS1007へ移行する。
そして、ステップS1007で条件を満足していないノードを検出し、周辺ノード検索結果テーブル(図11)から、このノードと無線通信可能な2つ以上のノードを新たな中継ノード(中継装置)として選択する。そして、ステップS1005へ移行し、再度通信経路数の計算を行う。この手順は条件を満足できる中継ノードが見つかるか、あらかじめ定めた最大計算回数に達するまで行われる。この処理が完了する(ステップS1006でYES)と、S1008へ移行する。このような処理により、本実施形態では、無線通信可能な他のノードの数が最も多いノードから優先的に中継装置として選択することになる。また、制御局101から2以上の伝送経路を介してデータを受信するノードが存在することになる。
そして、ステップS1008において、中継ノードの選択を行う。このときに、通信経路計算処理が最大計算回数に達したために終了した場合には、条件を満足したノードの数が最も少ない中継ノードを選択する。
ステップS1008における中継ノード選択が完了するとステップS1009へ移行し、中継ノードとして選択されたノードが無線通信可能な、他の選択された中継ノード(図11の1101、1102)を検出し、ステップS1010へ移行する。ステップS1010では、S1009の結果から、他の中継ノードを多く含む一つの中継ノードから順番に選択し、中継通信スロットの割り当て順序を決定する。そして、ステップS1011において、中継通信スロットの割り当てが完了すると、各中継ノードに割り当てる通信タイミングを算出する。
次に、ステップS1012へ移行し、この算出されたタイミング情報と選択された中継ノードの固有識別情報を含む中継ノード設定指示信号(1201、1207、1213)を生成し、無線通信部201を介して各中継ノードへ送信(通知制御)する。この中継ノード設定指示信号1203、1209、1215を受信した各中継ノードは、制御局101に対して中継ノード設定指示応答1204、1210、1216を送信する。また、各中継ノードは、中継ノード設定指示信号1203、1209、1215に含まれる中継通信スロット情報を各中継ノードのタイマ210に設定し、設定処理を完了する。
(データ伝送処理)
次に、データ伝送処理動作(データ受信処理、データ中継処理、データ伝送制御処理)について図2、図12〜図15を参照し説明する。
まず、外部インターフェイス205を介してデータ処理装置109からデータ送信要求信号を受信すると、制御局101の制御部202は、データ処理装置109に対して応答信号を送信する。その後、データ処理装置109から外部インターフェイス205を介して、通信すべきノードデータを受信すると、制御部202は、このデータを一旦メモリ203へ保存する。そして、受信された各データに対して、誤り訂正符号化とフレームチェックシーケンス1319の演算を行い、その後、データ毎に各ノード宛てデータ識別情報1316とレングス情報1317を生成する。
全てのノードデータに対しての処理が完了すると、続いて図13に示すデータ−フレームのヘッダの生成処理を行う。ヘッダ生成処理では、フレームタイプ1301にデータを示すコード1304を設定し、宛先アドレス1305にブロードキャストアドレスを、送信元アドレス1306には自局の固有識別情報を設定する。次に、制御フィールド1307のサブタイプ領域1308にデータ1310を示すコードを設定し、パラメータ領域1309のデータ多重数1311に、データ処理装置109から伝送されるデータチャネル数を設定する。
その後、データ種別1312にソースを示すコードを設定し、タイムスタンプフィールド1313に、例えば、ストリームデータの生成時間情報などを設定し、ヘッダ全てのフレームチェックシーケンス演算を行った後、FCS1314を設定する。この一連の処理が完了すると、制御局101の制御部202は、図12に示すように、無線通信部201を介して全てのノードに対してデータを送信1223する。
次に、図14を参照して、ノードに於けるデータ受信処理を説明する。無線通信部207を介してデータを受信すると、ノードの制御部208は、一旦受信データをメモリ209へ保存し、データ受信処理を開始する。そして、ステップS1401において、データフレームのフレームチェックシーケンス(FCS:Frame Check Sequence)演算を行い、ヘッダの誤りを確認する(ステップS1402)。ここで、ヘッダに誤りがある場合には受信したデータフレームは破棄し、誤りが無ければステップS1403で、フレームタイプ1301を識別し、ステップS1405でデータフレーム受信である事を確認する。なお、本実施形態ではヘッダ識別をデータ処理で行っているが、フレームを受信しメモリ209に転送する時点で、フレームタイプ1301の識別を行い、フレームタイプに合った処理を起動させてもよい。
データフレームの識別が完了すると、ステップS1406において送信先アドレス1306を読み出し、ステップS1407,S1408において、制御局101のアドレス又は中継局のアドレスと一致するか否かを判定する。一致する場合は、受信したデータは適正であるが、一致しない場合は適正ではないことになる。
まず、ステップS1407において制御局のアドレスと一致するか否かを判定する。制御局のアドレスと送信元アドレス1306とが一致する場合(ステップS1407でYES)は、ステップS1409へ進む。一方、制御局のアドレスと送信元アドレス1306とが一致しない場合(ステップS1407でNO)は、ステップS1408において、送信元アドレス1306が中継局のアドレスと一致するか否かを判定する。一致する場合(ステップS1408でYES)はステップS1409へ進み、一致しない場合(ステップS1408でNO)は処理を終了する。
ステップS1409では、制御情報フィールドを読み出し、ステップS1410へ進む。ステップS1410では、自局が中継局として設定されているか否かを確認する。そして、自局が中継局として設定されている場合にはステップS1411へ移行し、受信データをメモリ209の中継データ保存領域へ転送して、ステップS1412へ移行し、そうでない場合には、そのままステップS1412へ移行する。
ステップS1412では、受信したフレ−ムの情報フィールド1315からデータ識別情報1316を検出し、自局宛識別情報を有するデータブロックをレングス情報1317を参照して取り込む。その後ステップS1413/S1414で、自局データ1318の誤り訂正処理とフレームチェックシーケンスによるエラーチェックを行う。この誤り訂正のうち、誤り訂正符号を用いたエラー訂正は、無線通信部207からフレーム受信時のメモリ209への転送と同時に、制御部208によるヘッダ解析を行うことで、受信データ転送時に行う構成も可能となる。
ここで示す、エラー修復処理(ステップS1414)では、今回のフレーム受信をする以前に正しいデータ受信の有無を判定する処理が含まれ、仮に既に正しいデータを受信している場合には、エラー修復処理(ステップS1414)を完了する。また、受信した全て自局宛データに誤りがある場合には、複数の受信データを用いて最尤処理によるエラー修復を行う処理も含まれる。そして、一連のデータ受信処理が終わるとデータ受信処理を完了する。
次に、中継ノードに設定されているノードの処理について説明する。まず、中継局として設定されているノードは、上述のように制御局101からの中継ノード設定指示信号に含まれる中継通信スロット情報に基づいて、制御局101から送信されるビーコン1219受信後、スロット時間計測を開始する(1220〜1222)。そして、制御局101から受信したデータフレームの受信処理を完了すると、制御部206ではデータ中継処理を開始し、ステップS1501で受信された全てのデータブロックに対してエラーの有無をチェックする。そこで、データブロック中に誤りを検出(ステップS1502)すると、既に複数の受信フレームが有るか否かを判定(ステップS1503)する。複数のデータフレームを受信している場合(ステップS1503でYES)には、エラーが検出されているデータブロックの比較を行う(ステップS1504)。そして、他のデータフレームに含まれるデータブロックが、誤りを含むデータブロックと置き換え可能な場合は、エラーを含むデータブロックを正しいデータブロックに置き換えてデータフレームの再構成を行う(ステップS1505、S1506)。ここで、データブロックのエラーを修復できない場合や、エラーを含まないデータフレームがある場合には、データフレームの再構成は行わず次の処理へ移行する。特に、エラーを含むデータフレームを中継伝送するのは、先に説明した様にデータ受信処理のエラー修復処理で複数のデータブロックを用いて最尤処理を行う為である。
この処理が完了するとステップS1507へ移行し、送信元アドレスフィールド1308への自局固有識別情報設定や、データ種別1312への中継を示すコードへの再設定などのヘッダ生成処理を行う。そして、ステップS1508へ移行し、先に開始した中継通信スロット時間の経過を監視し、時間が設定時間を超えていなければ、ステップS1509において、ノードからのデータ受信の有無を確認する。この動作は、前記何れかの条件を満たすまで繰り返し続けられ、仮に中継通信スロット時間に達した場合には、中継データを無線通信部207を介して、他のノードに送信した後に、処理を終了する。
上記のように、本実施形態においては、制御局101が複数のノード(端末局、端末装置)102〜107を検出し、この検出された各ノードに対して、無線通信可能な周辺端末局の検索を行わせ、検出された周辺端末の識別情報を収集する。そして、この収集された周辺端末の識別情報から制御局装置から2以上の伝送経路を介してデータを受信するノードが存在するように中継端末局を選び、中継端末(中継装置)としての役割を割り当てる。ただし、この中継端末は制御局101から伝送されるデータを中継伝送する処理を行う。即ち、制御局101から伝送される全ての端末局宛てのデータを受信すると、中継端末局に割り当てられたノードは、中継通信タイミングで他の端末局にデータを中継する。このため、この中継データは、中継端末局も含めて少なくとも二つ以上の通信経路を介してノードに受信されることになる。
したがって、本実施形態に係る構成によれば、仮に制御局101や他の中継局など一方の通信経路が一時的に切断し正しくデータを受信できない場合でも、通信が瞬断することなく、他の通信経路から適正なデータを取得できる確率を向上する事が出来る。このため、例えば、特にデータの有効時間が短い音響信号や映像信号のようなストリームデータを無線伝送する場合の様に、再送手順の適用が困難な環境下でも信頼性の高い無線データ伝送を行うことが可能となる。
<<実施形態2>>
本実施形態では、更に、端末間の通信品質に基づいて中継装置を選択する、即ち、伝送経路を決定する構成について説明する。実施形態2の制御動作について図11、図12・図17〜図20を参照して説明する。
図17は制御局101がノード102〜107を検出した後に、各ノード間との通信品質を測定する動作を示すシーケンス図である。図18は通信品質を測定した結果を示す通信品質測定結果テーブルである。図19は、制御局101とノード間102〜107で通信品質測定処理を示すフローチャートである。図20は、通信品質情報を参照した中継ノード選択設定処理を示すフローチャートである。
(通信品質測定動作の説明)
以下に制御局101とノード102〜107の間での通信品質測定動作について、図2、図13、図17〜図19を参照して説明する。
まず制御局101の制御部202は実施形態1に示す手順と同様の手順により無線通信可能なノードの検出を行う(図19のS401〜S407)。この一連の動作によりノード検索が完了すると、検出ノードテーブル308を読み出し、通信品質測定が完了していないノードF107を検出する。次に、ノードF107が検出されると、このノードF107の固有識別情報を宛先アドレス1305に設定し、制御フィールド1307のデータ多重数1311に1を設定した測定データフレームヘッダを生成する。
そして、タイマ204に対してあらかじめ定めた測定データ送信時間を設定し、ステップS1902で計測を開始した後にステップS1903へ移行する。ステップS1903では、先に生成したヘッダを有する測定データフフレームを無線通信部201を介して測定データ送信時間が終了するまで送信する(1701)。測定データフレーム1702を受信したノードF107では、このフレームを受信した時の受信電界強度情報をメモリ209に蓄積すると共に、データ−のエラーレート測定を行う。このエラーレート測定では、誤り訂正符号を用いてエラー数を検出すること出来るが、情報フィールドに配置されるデータ−ブロックを複数に分割して多重化し、各データブロックのFCS1319演算により簡略化した測定を行う事も出来る。また、ノードF107による測定は制御局からの測定データフレームが終了するまでの間行われ、同フレームの受信が終了すると、先に検出した受信電界強度レベルと共に通信品質測定結果テーブルとして作成し(1703)、メモリ209へ保存する。
このようにして測定データフレームを伝送し、制御局101のタイマ204により測定データ送信時間のタイムアウトが検出されると、制御部202送信データの送信を終了する。そして、測定データフレームの送信が完了するとステップS1905へ移行し、ノードF107に測定結果送信指示1704を送信し(1704)、結果応答を受信するか最大再送回数の範囲で結果応答受信まで要求動作を繰り返す。
この測定結果送信指示1705を受信したノードF107は、メモリ209に保存された通信品質測定結果テーブル1703を含む測定結果信号1706を制御局101へ送信する。この測定結果信号1707受信した制御局101では、ノードF107との間の通信品質情報として通信品質測定結果テーブル図18を更新し、メモリ203に保存して、S1910へ移行する。ステップS1910では、この通信品質測定が完了していないノードの有無を検出し、制御局に接続されている全てのノードに対する測定が完了している場合にはこの処理を終了し、残っているノードがある場合には前記動作を繰り返す。
以上の手順により、制御局101と接続されている全てのノード102〜107間の通信品質情報を取得する事が可能である。したがって、この情報を中継ノードの選択や中継通信スロットの割り当てを行う判断パラメータとして用いる事でより信頼性の高い冗長データ伝送を実現できる。
また、本実施形態の説明では受信電界強度1801とエラーレート1802について記載しているが、この情報は必ずしも両方の情報が必要でない事は言うまでもない。また、説明を簡単にする為に通信品質情報は各々一つの値しか示していないが、伝送路のゆらぎ(変動)がある事を考慮して最高値と最低値(最悪値)のように複数の値を持たせることも可能である。
(通信品質情報に基づく中継ノード選択設定処理)
以下に図11、図12、図18、図20を参照し、通信品質情報を参照した中継ノード選択設定動作の説明を行う。
前記通信品質情報の取得後に、実施形態1と同様の手順により制御局101の制御部202に於いて中継通信スロット演算が完了すると、中継ノード選択設定動作を開始する。中継ノード選択設定動作では、中継通信スロット数と周辺ノード検索結果テーブルを読み出し(ステップS1001、S1002)、続いて通信品質測定結果テーブル図18を読み出す(ステップS2001)。そして、ステップS1003へ移行し、各ノードで無線通信可能な周辺ノードの数が多いものから順番に並び替えてテーブルを再構成した後にステップS2002へ移行する。
ステップS2002では、通信品質測定結果テーブル(図18)を参照し、上記無線通信可能な周辺ノードの数が一致しているノードの中で、通信品質の良い順番に並び替えたテーブルを再度構成する。そして、再構成した周辺ノード検索結果テーブルの上位ノードから順に中継通信スロット数の数だけ選択し(ステップS1004)、各ノードが中継可能なノードに対する経路から、全てのノードに対する通信経路の数を計算する(ステップS1005)。次に、実施形態1と同様処理により、全てのノードに対して2つ以上の通信経路を設定処理を行い(ステップS1005〜S1007)、中継ノード選択処理(ステップS1008)で、中継ノードの選択を行う。このときに、通信経路計算処理が最大計算回数に達したために終了した場合には、条件を満足したノードの数が最も少ない中継ノードを選択する。
中継ノード選択が完了すると、ステップS1009へ移行し、中継ノードとして選択されたノードが無線通信可能な、他の選択された中継ノード(図11)1101、1102を検出し、ステップS2003へ移行する。ステップS2003では、制御局101との通信品質が最も良い中継ノードを第一中継ノードとして選択し、次にステップS1009の結果から、他の中継ノードを多く含む一つの中継ノードから順番に選択する。そして、この選択された順番にしたがって、中継通信スロットの割り当て順序を決定する。中継通信スロットの割り当てが完了すると、各中継ノードに割り当てる通信タイミングを算出し、中継ノード設定指示信号1201、1207、1211を各中継ノードへ送信する。この中継ノード設定指示信号1203、1209、1215を受信した各中継ノードは、制御局101に対して中継ノード設定指示応答1204、1210、1216を送信する。また、各中継ノードは、中継ノード設定指示信号1203、1209、1215に含まれる中継通信スロット情報を各中継ノードのタイマ210に設定し設定処理を完了する。
ここで、本実施形態では通信タイミングを各中継ノードに通知し、選択された各中継ノードがビーコンタイミングから中継伝送する為の送信タイミングを計測している。しかし、先に算出された通信タイミングを制御局101で管理し、このタイミングに合わせて各中継ノードへ送信許可する事も可能である。
上記のように、本実施形態に係る構成においては、端末間の通信品質に基づいて中継装置を選択する。このため、更に信頼性の高いデータ伝送が可能となる。
<<その他の実施形態>>
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラム、若しくは、記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)等が含まれる。
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをHD等の記録媒体にダウンロードする形態も考えられる。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部、又は、全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部、又は、全部を行い、その処理によっても前述した実施形態の機能が実現される。