以下、本発明の一実施形態に係る通信システムについて、添付図面を参照しながら詳細に説明する。
まず、図1に示すように、本実施形態の通信システムSは、利用機(第1利用機)PC1や利用機(第2利用機)PC2と接続され、全体として、通信システムSysを構成する。この場合、利用機PC1や利用機PC2から見ると、通信システムSは、1台の高速のモデムのようなデータ伝送(通信)装置に見える。
例えば利用機PC1内の動画データ等を通信データとして、利用機PC2に伝送する場合、利用機PC1から出力された通信データは、インタフェースIF1を介して、通信システムS内の通信装置1に入力され、通信網(ネットワーク)NWを介して、通信装置2に入力され、インタフェースIF2を介して、利用機PC2に入力される。
ここで、通信システムSの通信装置1は、図示のように、親機10と複数(2個のみ図示)の子機11、12を備え、通信装置2は、同様に親機20と複数(2個のみの図示)の子機21、22を備え、上記の場合、利用機PC1からの通信データは、親機10により子機11、12に分配され、それぞれ別の回線を介して子機21、22に送信され、親機20で統合・復元されて、利用機PC2に入力される。
この場合、子機11と子機21とを接続する側の回線と、子機12と子機22とを接続する側の回線としては、双方ともISDN回線でも良いし、一方あるいは双方が携帯電話でも良い。すなわち、同一方式あるいは異種の方式を混在させて利用でき、上記のほか、例えばPHSや衛星携帯電話等でも良く、あるいは国内ではPDC(Personal Digital Cellular)や、(IMT−2000に認定された)W−CDMA(Wideband Code Division Multiple Access)、海外ではGSM(Global System for Mobile communications)等々、いわゆる第二、第三世代の各種無線方式の回線等を利用できる。
もちろん、例えば有線を含むいわゆるインターネットや各種のローカルエリアネットワーク(LAN:イーサネット(登録商標:Ethernet)、10/100ベース(Base)等)を利用したIP電話網なども採用できる。また、室内およびそれに近い近距離で用いられるパーソナルエリアネットワーク(PAN)に適したBluetooth(登録商標)やワイヤレスLAN(IEEE802.11b等)などの無線LANを利用することも可能である。
また、例えば子機11側の接続先は携帯電話網でありながら、子機21側は有線のISDN回線網であるなど、送信側と受信側で別系統の通信網であっても、回線が確保できれば良く、この例では、電話網として電話番号による発呼により1つの(1系統の)回線を確保できるので、回線として利用できる。
そして、これらの場合、通信システムSでは、低速の公衆回線等を利用するので単独では低速であっても、複数の回線を同時に利用して分担(複数回線を束ねて利用)することによって、高速のデータ通信を行うことができる。
また、通信装置1(または通信装置2)は、いわゆるパソコン等よりも小型化しやすい。すなわち、パソコン等では、キーボード等のマンマシンインタフェースがあるため、小型化に限界があるが、通信装置1の場合、親機10も子機11等にしても、薄膜化などの小型化技術を適用しやすい回路系だけでよいので、全体として小型化し易い。例えば一般的な携帯電話と同等機能の子機11等であっても、回路的にはいわゆるカードサイズ以下で済むので、この種の子機を数台分搭載した通信装置1であっても、例えばB5サイズの厚手の辞書程度(あるいはB5版ノート型パソコン程度)以下のサイズで実現できる。
次に、上記の利用機PC1、PC2としては、代表的なものとしてパソコン等が利用される。この場合のインタフェースIF1、IF2としては、上記の各種LANを介したものでも良いし、シリアルデータ通信(RS−232C、USB、IEEE1394等)でも、パラレルデータ通信(セントロニクス等)でも良い。また、上述した各種の無線LANを利用することも可能である。
ただし、通信システムSによる通信が高速になるほど、このインタフェースIF1、IF2の通信速度が通信システムSys全体の制限(限界)になる可能性が高くなるので、できる限り高速のインタフェースであることが望ましい。また、上述の例ではパソコン等の利用機PC1と利用機PC2との間の伝送なので、通信装置1、通信装置2としては、双方向通信(送受信)が可能なものが好ましい。
次に、例えば前述の被災地等において、TV中継車の代わりに通信システムSを利用する場合、携帯型カメラとそれに接続されたパソコン等とのセットを利用機PC1として、あるいは直接接続できるものであれば携帯型カメラ単体を利用機PC1として、それらに適した方式のインタフェースIF1を介して、通信システムSを利用でき、この場合も、ネットワークNWとして携帯電話やPHSなど公衆回線を利用しつつ、複数回線を束ねて利用することで高速通信が可能になる。
また、この場合、例えばテレビ局のパソコン(あるいは画像編集等を行う専用機器)等を利用機PC2として、インタフェースIF2を介して通信システムSに接続しておけば、携帯型カメラにより現場で撮像した画像データを、通信システムSを介して高速で(理想的にはリアルタイムで)入手して、放送に利用できる。
また、上述と同様の利用機PC1として、TV電話装置などの映像電送装置を通信システムSに接続して利用することもできる。また、上述では公衆回線としたが、例えばインマルサット衛星電話を2〜3台束ねて回線を確保すれば、現場の映像を迅速に伝送して放送利用できる。
なお、上述のように通信システムSを利用する場合、データの通信は利用機PC1側から利用機PC2側への一方通行なので、この種の利用方法に限られる場合、通信装置1を送信専用、通信装置2を受信専用にすることもできる。
また、通信システムSにおいては、後述するように、データ送受信の前(最初)に、回線を確保する通信手順を行うが(図7参照)、地震などの大規模災害が発生した場合、利用する回線によっては、災害発生直後に通話規制がなされることがあり、このような場合、現場の撮影データを通信データとして伝送する直前に回線確保がままならなくなる場合がある。このことを避けるため、例えば地震等が発生した旨のメールを受信したり、その他何らかの自動検出等により地震等を検知した場合に、自動的に回線確保のための通信手順を始めるようにすることもできる。これにより、通話規制を回避でき、より多くの回線を確保することで、切断されにくい安定した通信を行うことができる。
次に、通信システムSの構成について、より具体的に、以下に詳述する。
図2に示すように、通信システムSは、ネットワークNWと、それを介して双方向通信を行う通信装置1および通信装置2と、を備えている。
なお、ここでのネットワークNWには、有線、無線を問わず、また、パケットで通信するタイプ(パケット交換方式)か、電話番号による発呼により回線を接続して確保するタイプ(回線交換方式)か、などを問わず、あらゆるネットワークを含み、m系統(mは2以上の整数)の通信経路を有するものとし、通信システムSでは、このうちのn系統(nは2≦n≦mとなる整数)の通信経路を、n系統の回線として確保可能であるものとする。
ただし、説明の便宜上、以下では、回線を占有することで比較的安定性に富む回線交換方式のネットワークNWとして、説明する。すなわち、通信装置1が利用可能なn個の電話番号と、通信装置2が利用可能なn個の電話番号との間で、1対1の通信がn系統分(n回線分:n本分)だけ可能になるものとして説明する。
通信装置1は、親機10と、n個の子機11〜1nを備え、それぞれ内部のLAN30を介して接続されている。また、子機11〜1nのそれぞれ(以下、適宜「各子機11〜1n」や「各子機11等」と略す)は、対応する回線アダプタまたはモデム(以下「アダプタ」と総称)CA1〜CAnと接続され、アダプタCA1〜CAnのそれぞれ(以下、適宜「各アダプタCA1〜CAn」や「各アダプタCA1等」と略す)を介してネットワークNWを利用可能になっている。
また、各子機11等と各アダプタCA1等は、図示のように、PCカード仕様等の各1枚のカードの形態で通信装置1の本体のスロットに脱着可能に装着されている。このため、各カードを差し替えたり、カードを脱着するだけで、子機の種類や数を変更できる。
通信装置2も通信装置1と同様に構成され、親機20と、n個の子機21〜2nを備え、内部のLAN40を介して接続され、各子機21〜2n(各子機21等)は、対応する各アダプタCA21〜CA2n(各アダプタCA21等)と接続され、それらを介してネットワークNWを利用可能になっている。また、各子機21等と各アダプタCA21等は、同様に各1枚のカードの形態で通信装置2のスロットに脱着可能に装着されている。
なお、1枚のカード内に複数の子機とアダプタの組を搭載することも可能であり、また、他の形態(パッケージやボードその他の形態)で搭載することも可能なので、以下では、各子機11等と各アダプタCA1等との組合せの各組を、論理的(機能的、概念的)な各組として、チャネルCH1等と呼ぶ。すなわち、通信装置1および通信装置2は、それぞれ子機セットとも言えるチャネル(チャネル手段)をn個ずつ備えている。
また、例えば通信装置1の子機11と通信装置2の子機22の組合せ、子機12と子機23との組合せ、子機13と子機21との組合せなど、発呼する電話番号の組合せを変えれば、各組合せは任意にできるが、以下では、説明および図示の都合上、通信装置1の子機11(CH1)と通信装置2の子機21(CH21)のように、図示上の対応する子機(対応するチャネル)同士で通話(通信)するものとして説明する。
また、通信装置1と通信装置2のそれぞれにn個のチャネルが最低限あればよいので、通信装置1と通信装置2の構成が同じ必要はないが、説明の簡素化のため、以下では、同一の構成とし、さらにチャネル数n=4とする(図示の通信装置2側の括弧内は通信装置1の同一構成要素の符号を示す)。
そこで、図2および図3に示すように、通信装置1(または通信装置2)は、インタフェースIF1(IF2)を介して利用機PC1(PC2)に接続された親機10(20)と、ネットワークNWを介して送受信を行うn=4個のチャネルCH1〜CH4(CH21〜CH24)とを備え、各チャネルCH1〜CH4(CH21〜CH24)内の子機11〜14(21〜24)と親機10(20)とは、それぞれ内部のLAN30(40)を介して接続されている。以下、()内の通信装置2についての説明は、通信装置1と同様として省略する。
図3に示すように、親機10は、MPU(Micro Processing Unit)101、ROM102、RAM103、LANコントローラ(以下「LANC」)104、データ装置(Data Equipment)インタフェース(以下「DIF」)105を備え、互いに内部バス106により接続されている。
ROM102は、MPU101で処理する制御プログラムや制御データ等を記憶している。また、RAM103は、スタックやFIFOなど各種データ領域や各種バッファ領域を有し、各種処理の作業領域として使用される。また、LANC104は、ゲートアレイやカスタムLSIなどにより構成された論理回路や機能回路などを有し、MPU101の機能を補うとともにLAN30を介した各子機等とのインタフェースを扱う。また、DIF105は、同様に構成された論理回路や機能回路などを有し、MPU101の機能を補うとともにインタフェースIF1を介した利用機PC1とのインタフェースを扱う。
そして、MPU101は、上記の構成により、ROM102内の制御プログラムに従って、ROM102やRAM103内の各種データ等を処理し、LANC104を介して各子機等と各種制御信号や各種データ等の授受を行い、DIF105を介して利用機PC1等と各種制御信号や各種データ等の授受を行うことにより、親機10自体ばかりでなく、通信装置1全体を制御している。
また、チャネルCH1は、子機11の本体と、アダプタCA1を備えている。アダプタCA1は、子機11のタイプ(送受信等の通信方式や回線種別等)に適合する各種の回路を有し、いわゆる回線アダプタやモデム等として、子機11の機能を補うとともにネットワークNWとのインタフェースを扱う。
子機11は、親機10と同様の構成を有し、MPU111、ROM112、RAM113、LANC114、DIF115を備え、互いに内部バス116により接続されている。すなわち、RAM113は、スタックやFIFOなど各種データ領域や各種バッファ領域を有し、各種処理の作業領域として使用され、LANC114は、各種回路を有して、MPU111の機能を補うとともにLAN30を介した親機10等とのインタフェースを扱う。
また、DIF115は、各種回路を有して、MPU111の機能を補うとともに、アダプタCA1と協同(連動)して、ネットワークNWとのインタフェースを扱う。また、ROM112は、MPU111で処理する制御プログラムや制御データ等を記憶している。この場合の制御データには、子機11が自己の電話番号とする数値データや自己のタイプ(回線種別等)を示す識別データ等が含まれ、初期設定により記憶される。なお、この場合の「初期設定」は、各カード等として組み込む(装着する)前に予め書き込むタイプでも良いし、ROM112等としてフラッシュROM等の書換可能なROMを用いて、親機10からの指示により書換(設定)可能なタイプとすることもできる(図6の「設定」参照)。
そして、MPU111は、上記の構成により、ROM112内の制御プログラムに従って、ROM112やRAM113内の各種データ等を処理し、LANC114を介して親機10等と各種制御信号や各種データ等の授受を行い、DIF115を介してネットワークNWとの間の各種制御信号や各種データ等の授受を行うことにより、子機11自体ばかりでなく、チャネルCH1全体を制御している。
他のチャネルCH2〜4のそれぞれも、チャネルCH1と同様に構成され、各子機12等の本体と、アダプタCA2等とを備えている。他の詳細な説明は、上記と同様になるので、省略する。
次に、通信システムSにおける通信データその他のデータの流れについて、具体例を挙げて、以下に詳述する。
まず、通信システムSの親機10は、実際の通信データの送信以前および送信と並行して、接続されている各チャネルの回線の通信速度(回線状態を加味した回線速度等の評価値:得点)を調査する(詳細は後述)。ここでは、チャネルCH1〜CH4の回線の全てが無事接続されているものとし、また、簡易にイメージを示すため、仮にチャネルCH3のみ他のチャネルCH1、CH2、CH4の約2倍の回線速度とし、他の3つのチャネルは同一速度とする。
この状態で、図4に示すように、利用機PC1から通信データDATA1が入力されると、親機10は、接続されているチャネルCH1〜CH4の各回線速度に応じて、相手方(通信装置2の親機20)への伝達時間が概ね同一になるように、通信データDATA1の先頭から順にブロックデータBLK1、BLK2、BLK3、BLK4、BLK5、BLK6……と分割(抽出)し、チャネルCH1、CH2、CH3、CH4、CH1、CH2……のように割り当てる。ここでは、チャネルCH3のみ約2倍の速度なので、割り当てるブロックデータBLK3のデータ量(ここではデータ長)を、他のブロックデータBLK1等の約2倍とする。
次に、親機10は、各ブロックデータBLK1等の先頭に16ビット(2バイト)のシリアルナンバーSNと、同じく2バイトのデータ長DLを付加して、各チャネル用のシリアル番号付データ(以下「チャネルデータ」)CHD1等として、対応するチャネルCH1等に入力する(同図では、ブロックデータBLK2をチャネルデータCHD2としてチャネルCH2に入力した様子のみ図示)。
各チャネルCH1等は、各チャネルデータCHD1等を、ネットワークNWを介して、回線交換により接続された相手方(通信装置2)のチャネルCH21等に送信する。相手方である通信装置2の各チャネルCH21等は、各チャネルデータCHD1等を、ネットワークNWを介して入力(受信)して、親機20に渡す。
親機20では、シリアルナンバーSNを参照して、ブロックデータBLK1等として再配置し、FIFOバッファに格納済みの最終データのシリアルナンバーに連続するときには、FIFOバッファにブロックデータBLK1等を追加格納する。FIFOバッファ内に順に格納されたデータは、全体として通信データDATA1を復元した通信データDATA2として、親機20から利用機PC2に出力される。
次に、図4で上述のデータの流れに沿って、通信システムSにおける各部のデータ構造等について、以下に詳述する。
図5に示すように、利用機PC1から親機10に入力された通信データDATA1は、まず、上述のように、例えばチャネルCH1の通信(回線)速度に応じて、先頭から順にブロックデータBLK1等として分割(抽出)され、先頭に各2バイトのシリアルナンバーSNとデータ長DLが付加されるが、さらに詳細には、これらの末尾にチェックサムSMが付加された状態(構造)で、チャネルデータCHD1等に成る。
ここで、シリアルナンバーSNの2バイト領域には、16進(ヘキサ)表示の「0000」(以下、ヘキサ表示を[]で囲み、[0000]等のように示す)〜[FFFF]までの数値が格納可能であるが、このうち、シリアルナンバーSNとしては、[0001]〜[7FFF]を使用し、後述のデータ再送時(例えば図9のRCD2再送やRCD4再送等参照)には、各シリアルナンバーの1の補数(各ビットを反転したもの)を用いる。すなわち、最初の送信時のシリアルナンバー[0001]〜[7FFF]に対して、再送時には[FFFE]〜[8000]を使用する。また、シリアルナンバーSN=[0000](再送時[FFFF])は、制御データ(制御用ブロックデータ)を示すものとする。
また、親機10では、上記のチャネルデータCHD1等の前(先頭)に、親機における(親機からの)1バイトのコマンドCMD(図6に主なものを示す「親機コマンド」:ここではブロック送信なので[06])を付加してから、チャネルCH1等の子機11等に出力する。
次に、子機11等では、親機10から入力されたチャネルデータCHD1等に対して、2バイトの識別子(識別コード)IDと、子機用の1バイトのコマンドCMD(図6に主なものを示す「子機コマンド」)と、各チャネル毎のシリアルナンバーに相当する2バイトのレコードナンバー(チャネル内レコード番号)RNを付加して、例えばチャネルCH1のレコードデータRCD1(以下、「レコードデータC1RCD1」等という)などとし、相手(通信装置2)のチャネルCH21等の子機21等に、ネットワークNWを介して送信する。
なお、このため、図4で前述のブロックデータBLK2は、チャネルデータCHD2を含むレコードデータC2RCD1として、また、ブロックデータBLK3は、チャネルデータCHD3を含むレコードデータC3RCD1として、また、ブロックデータBLK4は、チャネルデータCHD4を含むレコードデータC4RCD1として、ネットワークNWを介して送信され、続いて、ブロックデータBLK5は、チャネルCH1における次のレコードデータの一部となるので、チャネルデータCHD5を含むレコードデータC1RCD2として、また、ブロックデータBLK6は、チャネルCH2からのチャネルデータCHD6を含むレコードデータC2RCD2として、ネットワークNWを介して送信される。
ただし、このネットワークNWを介しての通信の際には、相手先と発信元(自己)の電話番号等に基づいて回線種別に依存する各種ヘッダHEADが適宜付加され、参照利用された後に削除され、子機21等において、レコードデータC1RCD1等として判別され、そのうちのチャネルデータCHD1等の分を抽出し、子機(応答)用の1バイトのコマンドCMD(図6参照:ここではブロック受信なので[07])を付加して、親機20に出力する。
そして、親機20では、前述のように、シリアルナンバーSNを参照して、ブロックデータBLK1等の復元、再配置〜通信データDATA1を復元して、通信データDATA2として、利用機PC2に出力する。
次に、通信システムSにおける通信手順について、以下に詳述する。
図7に示すように、まず、回線を確保(接続)することを要求する側(以下「発呼側」:ここでは仮に通信装置1側とする)の親機(親機10)から1個の子機(仮に子機11)に対して発呼要求がされると(図6の「発呼」参照)、子機11がそれに応答して、接続を要求される側(以下「応呼側」:ここでは通信装置2側とする)の予定の1個の子機(仮に子機21)の電話番号を発信(発呼)する。これにより、ネットワークNW上の回線が確保(接続)されると、発呼側および応呼側の双方から相手に対して自己の識別コードを送る(図6の「識別コード送信」参照)。
ここで、予定の通信相手の識別コードであると認められない場合、認められない側の子機(発呼側の子機11または応呼側の子機21)が回線を切断する(図6の「回線切断」参照)。
一方、通信相手として確認された場合、次に、応呼側から発呼側へ利用可能な回線情報を送信し、発呼側でそれを受信して格納する(図6の「回線情報送信」「回線情報受信」参照)。この場合の回線情報は、回線数と、その数分の回線種別と電話番号から成り、例えば「回線数」「回線種別、電話番号」「回線種別、電話番号」……等のフォーマットで送信される。
例えば上述ではn=4としていたので、「4」の後に4回線分だけ「回線種別、電話番号」を付加しても良いし、最初の1回線については既知なので、他の3回線分についてのみ知らせる仕様としても良い。
なお、上述の応呼側において、例えば親機20が自己側の回線情報の全てを記憶していない場合、各子機に自局電話番号を要求し、それに応答させることによって、全ての回線情報を収集できる(図6の「自局電話番号」を参照)。すなわち、例えばチャネル用のカード交換等により電話番号を含む回線情報が変わっても、これを用いて回線情報を収集できる。
一方、発呼側では、親機10が、受信した回線情報に基づいて、残りの各子機(ここでは子機12〜14)に対して、それぞれの相手先(の子機:例えば子機22〜24)の電話番号を付随情報として、発呼要求すると(図6の「発呼」参照)、各子機12等がそれに応答して、各電話番号を発信(発呼)する。
これにより、ネットワークNW上の各回線が確保(接続)されると、最初の発呼のときと同様に、発呼側の各子機12等および応呼側の各子機22等の双方から相手の各子機22等や各子機12等に対して自己の識別コードを送る(図6の「識別コード送信」参照)。この場合も相手を通信相手として認められない場合、回線を切断する(図6の「回線切断」参照)。
一方、通信相手として確認された場合、必要とする各回線が確保(接続)された状態となるので、これらの回線(ここではn=4系統の回線)を利用して(4系統の回線を束ねて)、高速通信が可能になる。
なお、この場合、後述の異常発生検出時等においてリダイヤルしたり、例えば災害発生時等において、最初から全回線(n回線)を確保(接続)したいときのために、上記の発呼要求された各子機12等に所定の相手(例えば上記の発呼の相手)の子機22等の電話番号を記憶しておいても良い。例えば上記の発呼要求時に付随情報として親機10から取得した相手電話番号をそのまま記憶しても良いし(リダイヤルに有効)、改めて初期設定等として記憶(設定)しても良い。
次に、正常な状態が続く場合の通信手順について、以下に詳述する。なお、以下では、上述の発呼側=送信側、上述の応呼側=受信側とするが、通信に使用する回線が確保されているので、その逆の関係にして、発呼側=受信側、応呼側=送信側とすることもでき、また、交互に立場を変えて、複数回線(n=4本の回線)を束ねた高速双方向通信もできる。
ここで、送信側(例えば通信装置1側)から受信側(例えば通信装置2側)に通信データを高速通信する場合、まず、親機10から各子機11等のそれぞれに、それぞれの通信速度に応じたチャネルデータCHD1等を付随情報として、ブロック送信を要求する(図6の「ブロック送信」参照)。
子機11では、これに応答して、チャネルデータCHD1等を入力し、2バイトの識別子IDと、1バイトのコマンドCMDと、2バイトのレコードナンバーRNを付加して、レコードデータC1RCD1等として、相手(通信装置2)のチャネルCH21の子機21に、ネットワークNWを介して送信する。他のチャネルにおいても同様であり、例えばチャネルCH2では、子機12が親機10からのブロック送信要求に応答して、チャネルデータCHD2等を入力し、識別子ID、コマンドCMD、レコードナンバーRNを付加して、レコードデータC2RCD1等として、通信装置2のチャネルCH22の子機22に、ネットワークNWを介して送信する。
このため、以下の説明では、各チャネルCH1〜CH4のそれぞれ最初のレコードデータC1RCD1、C2RCD1、C3RCD1、C4RCD1を代表して、任意の1のチャネルの最初のレコードデータRCD1とし、同様に、各チャネルの次のレコードデータC1RCD2、C2RCD2、C3RCD2、C4RCD2を代表して、任意の1のチャネルの次のレコードデータRCD2とし、同様に、任意の1のチャネルについてのさらに次のレコードデータRCD3、RCD4、……等とする。
ここで、任意の1のチャネルについて、レコードデータRCD1等を「レコード1(RCD1)」のように示すと、図8に示すように、正常時のデータ通信では、送信側(例えば通信装置1側)から受信側(例えば通信装置2側)に対して、ほぼ等間隔で、レコード1(RCD1)、レコード2(RCD2)、レコード3(RCD3)、レコード4(RCD4)、……のように送信し、正常受信なので、応答もほぼ等間隔で、レコード1(RCD1)受信に対して肯定応答(ACKnowledgement:以下「ACK」と略す)1、レコード2(RCD2)受信に対してACK2、レコード3(RCD3)受信に対してACK3、レコード4(RCD4)受信に対してACK4、……を送信する。
次に、何らかの異常が発生した場合の通信手順について、以下に詳述する。なお、各子機11等では、異常発生時に再送を可能とする旨を設定(以下「再送設定」)することができ、この場合には、送信したデータに対応するACKの応答を受信するまでは、送信したデータを保持する。また、ACKの受信が無くても、送信バッファに余裕がある間は、再送設定か否かに拘わらず、次々にデータを送信する。また、所定時間が過ぎてもACKの受信がない場合には異常と判断する。ただし、この場合に、回線を切断するか、データを再送するか、などは設定に従う。以下の説明では、再送設定があるもの(再送設定時)とする。
図9に示すように、まず、上記と同様に、親機10からのブロック送信要求に応じて、例えばチャネルCH1の子機11等が、通信装置2の子機21等に対して、ほぼ等間隔で、レコード1(RCD1)、レコード2(RCD2)、レコード3(RCD3)、レコード4(RCD4)……のように送信したものとする。
ここで、例えば、子機21等において、レコード1(RCD1)を正常に受信すると、子機11等に対して、ACK1を送信する。次に、例えば、何らかの異常発生により、回線の途中で、レコード2(RCD2)が喪失した場合、この時点では、子機11等側も子機21等側も、レコード喪失を検出できないので、そのまま通信手順は継続される。続いて、子機11等から、レコード3(RCD3)を送信し、子機21等において正常に受信すると、子機11等に対して、ACK3を送信する。
この場合、子機11等では、ACK3を受信すると、その前に、ACK2を受信していないので、途中で何らかの異常が発生したことを検出できる。この場合の異常としては、子機11等から子機21等の途中でレコード2(RCD2)が喪失したか、子機21等から子機11等の途中でACK2が喪失したか、の可能性があり、ここでは(再送設定なので)、いずれの場合も、レコード2(RCD2)を再送する。この場合、前述のように、シーケンスナンバーSNを補数として(反転させ)、再送である旨を子機21等に報知する。
なお、上述の場合、子機21等では、レコード3(RCD3)を受信した時点で、レコードナンバーRN(またはシリアルナンバーSN)により、その前のレコード2(RCD2)を受信していないことを、異常(エラー)として検出可能である。このため、仕様上、このような場合には、一旦、エラー検出を示すように、否定応答(Negative ACKnowledgement:以下「NAK」と略す)2を、子機11等に対して送信し、その後、ACK3を送信するようにしても良い。これにより、子機11等では、解析上、エラーの内容を、ACK2喪失でなく、レコード2(RCD2)の喪失に絞ることができる。
次に、例えば、子機21等において、レコード4(RCD4)を受信したが、そのレコード4(RCD4)から何らかの異常が検出された場合、子機21等では、NAK4を、子機11等に対して送信する。この場合の異常としては、例えばチェックサムの不一致、ヘッダHEADの一部欠損、一部異常(子機11等を示していない等)、などの可能性があり、子機11等では、NAK4を受信すると、(再送設定なので)レコード4(RCD4)を再送する。
なお、この再送の際においても、例えばレコード4(RCD4)を喪失したり、ACK4を喪失した場合、子機11等では、ACK4を受信できないので、異常(エラー)検出して、設定に従って、再々送など、次の手順を行う。
次に、各子機11等が行う自己の回線状態の評価(回線自己評価)について、詳述する。
ここでは、基本的に、例えば子機11が、親機10からチャネルデータCHD1等を入力し、レコードナンバーRN等を付加してレコードデータC1RCD1(RCD1)等を準備して(図4、図5等参照)、送信バッファ(FIFO)に格納してから(状態として送信済みと判断可能な状態になってから)、それに対応するACK1等またはNAK1等の受信を検出するまでの時間を計測し、この計測結果(平均時間)に基づいて評価する。
この場合、送信バッファが空の場合の上記(送信バッファ格納〜ACK受信)の時間(図8のtaに相当する時間)を基準として、その一定期間内の平均時間を基準値(基準時間)Taとして評価(得点)を決定する。このため、子機11等は、回線が接続されている間は、たとえ送信すべきブロック(データ)が無くても、空のブロック(ダミーデータ)を送信して、回線(自己)評価を行い、親機10等からの要求に応じて、自己評価の結果(得点:回線状態情報)を応答する(図6の「回線評価」参照)。
まず、基本形について説明する。例えば送信バッファ内に待ちブロックがない場合(バッファが空の場合)の評価(得点)は、上記の基準値Taとなるが、直前(現在)のブロックを送信した後、自ブロックが送信されるまでに待たされる時間(図8のtbに相当する時間)の平均を、平均待ち時間Tbとすると、
待ちブロックが1つある場合(待ちブロック数Bw=1の場合)の得点は、
Tb+Ta
となり(この時間のイメージは図8のRCD1送信〜RCD2送信〜ACK2受信までの時間tb+taのイメージ)、
待ちブロックが2つ(Bw=2)の場合には、
2×Tb+Ta
となるので(同様に図8のRCD1送信〜RCD2送信〜RCD3送信〜ACK3受信までの時間tb+tb+taのイメージ)、
一般的に、待ちブロック数Bwの場合には、
Bw×Tb+Ta …… (1)式
または、係数K=Tb/Taとして、
(Bw×K+1)×Ta …… (2)式
となる。
すなわち、例えば、平均して、直前のブロックのACKを受信するのと同時に次のブロックを送信する場合、そのタイミングでは、Tb=Ta(K=1)となるので、
(Bw+1)×Ta …… (3)式
となり、例えば待ちブロックが2つ(Bw=2)であれば、3Taとなる。
もちろん、例えば最初のブロックのACK受信までに(その半分程度のタイミングで)次のブロックを送信し、さらにその次のブロックの送信と最初のACK受信のタイミングが一致する場合、K=1/2=0.5のため、Tb=Ta/2=0.5×Taとなり、待ちブロックが2つ(Bw=2)であっても、2Taとなる。
ただし、子機11等における回線評価には、回線状態等に基づく異常発生等の結果も反映できるようにしている。すなわち、実際には異常(エラー)発生により、再送が必要な場合があるので、子機11等では、このエラー数Erを計測し、それを反映させる。
具体的には、基準個数(例えば100個)のブロックを送信する間のエラー数(エラー率:異常発生率)Erを評価式に組み込み(考慮し)、係数K=Tb/Taとして、
(Bw×K+1)×(Er+100)×Ta …… (4)式
として、親機10からの問い合わせには、この値を応答する。なお、回線が何らかの異常によって切断され、全く送信できないような場合には、最大値(例えば全ビット1)を応答する。
次に、上述のような子機11等に対する親機10等について、説明する。送信側の場合、親機10等は、利用機PC1等からの通信データDATA1をバッファリングし、バッファが一定量を超えるか、一定時間が過ぎると、前述のように、子機11等用にブロックを分割(抽出)して、チャネルデータCHD1等として、子機11等に渡す(図4〜図5、図6の「ブロック送信」等参照)。
この場合、どの子機にどれだけのデータ量のチャネルデータを担当させるか(割り当てるか)は、上述の自己評価の得点を各子機11等から入手し(図6の「回線評価」参照)、それを、親機10等が評価して決定する。
なお、ここで、子機11等からの応答値が、回線切断時の値(最大値)である場合には、その子機11等に渡し済みのチャネルデータ等を引き揚げて、他の子機(他のチャネル)に渡すか、そのデータを捨てるか、または、同じ子機に再接続(図6の「発呼」:ここではリダイアル)を要求するか、などは設定に従う。
次に、受信の場合、子機21等において、受信したデータ(ヘッダ付のレコードデータ)をチャネルデータCHD1等のレベルまで分解(復元)するので(図4〜図5参照)、親機20等は、子機21等からの送信要求(相手先からのデータの受信要求:図6の「ブロック受信」参照)に応じて、チャネルデータCHD1等を受け取り、シリアルナンバーSNに基づいて各ブロックデータBLK1等に復元して利用機PC2への送信バッファに格納し、それらによる通信データDATA1の復元を行って、通信(復元)データDATA2として、利用機PC2等へ出力する。この送信バッファの時点で、受信データに何らかの異常が検出された場合には、再送要求を出すか、そのまま利用機PC2に渡すか、などは設定に従う。
上述のように、本実施形態の通信システムSでは、まず、m系統(mは2以上の整数)の通信経路を有するネットワーク(通信網)NWを利用するが、この場合のネットワークNWとしては、相互に非同期の2系統を含んでも良いので、現在いわゆる「通信網」等と呼ばれる種類のもの殆ど全部が、このネットワークNWとなり得る。そして、ネットワークNWが有するm系統のうち、現場の環境や状況に応じて確保可能なn系統(nは2≦n≦mとなる整数)の通信経路をn系統の回線として確保すれば良い。
もちろん、この場合のn系統は、m系統のうちの「任意」のn系統なので、相互に非同期の2系統がこのn系統に含まれても良いことを前提とする。具体的に上述の実施形態では、各子機11等が固有の電話番号(回線番号)を有し、子機間で電話番号を介して回線を確保(接続)するので、電話番号で接続可能なあらゆる形態の回線を利用でき、これらには、回線方式(回線種別)の異なる多くの種類の無線回線をも含むので、他の回線とは非同期となる場合が多い。
すなわち、ISDN等の同期を要する公衆回線を利用できない環境や状況等であっても、n系統の回線を確保すればよいので、何らかの通信網を有する離島や郊外はもちろんのこと、被災地等においても利用しやすい。そして、上述の例では、通信装置(第1通信装置)1から通信装置(第2通信装置)2に対して、確保したn(例えばn=4)系統の回線を介して、利用機PC1からの通信データ(一連の通信データ)DATA1を伝送(送信)するが、n(=4)系統(複数系統)の回線を介するので、高速通信が可能になる。もちろん、このことはnが大きくなるほど顕著になると共に、確保した各回線の通信速度が早いほど顕著になる。
また、上述の実施形態では、通信装置1において、確保した(n=)4系統の回線の通信速度に応じたデータ量のブロックデータBLK1等を、通信データDATA1の先頭から順に抽出して、抽出順を示すシリアルナンバー(シリアル番号情報)SN等を付してレコードデータC1RCD1等として、各回線を介して送信し、それらを、通信装置2において受信し、シリアルナンバーSNに基づいて、通信データDATA1を復元して、受信(通信)データDATA2とする(図4〜図5等参照)。
この場合、ブロックデータBLK1等を先頭から順に抽出して送信し、それらのシリアルナンバーSNに基づいて復元するので、(n=)4系統の回線が互いに同期する必要がなく、仮にシリアルナンバーSNに関してバラバラの順で受信されても、シリアルナンバーSNに基づいて忠実に復元できる。
しかも、上述の通信システムSでは、各回線で伝送するブロックデータBLK1等は、各回線の回線状況をも加味した回線速度(通信速度)に応じたデータ量であり、先頭から順に抽出して送信するので、受信順がバラバラになる可能性も低く、多少前後しても、先頭からの連番のブロックデータBLK1等を受信次第、順に復元できる。
したがって、上述の通信システムSでは、状況に応じて確保可能な複数の通信経路が互いに非同期であっても、それらを利用して、高速で安定した通信ができる。
また、上述の通信システムSでは、通信装置1の装置本体は、親機10としての機能を有し、各チャネル(チャネル手段)CH1等は、子機11等としての機能を有し、親機10は、ブロックデータBLK1等の抽出とシリアルナンバーSNの付加を行い、チャネルデータCHD1等として、担当のチャネルCH1等にに配給することにより、子機11に対する通信データの配給を処理(分担)し、チャネルCH1等は、担当する各回線用のチャネルデータCHD1等の送信機能を担当して、担当の回線を介したデータ送信を処理(分担)するので、n(例えばn=4:複数)系統の回線を用いた(回線を束ねた)通信による高速化ばかりでなく、親機と子機としての機能分担によって、例えば並行処理が可能になるなど、さらなる高速化が図れる。
また、n(=4)個のチャネルCH1等は、例えばパッケージ、カード、ボードその他の交換単位基材に搭載されて、装置本体に脱着可能に装着されるので、子機11等としての機能に故障が発生した場合にも、その交換単位基材を新品に交換するだけで容易に復旧できると共に、通信方式や回線方式等の回線種別が異なる子機の機能を搭載した交換単位基材に交換すれば、回線種別の異なる回線を利用できる。このため、前述の被災地等において、その状況に応じて利用する回線種別を変更するなどの、臨機応変な対応がし易くなる。
また、上述の場合、例えば1枚のカード等の交換単位基材の種類によって、1個(子機とアダプタの1組)のチャネルCH1等を搭載するか、n(例えばn=4)個のチャネルCH1〜CH4等を搭載するかを変えられるようにして、その交換単位基材の交換によって、通信データの送信のために確保可能な回線数nを可変できるようにしても良い。
また、この種の交換単位基材を装置本体に複数枚(例えばn=4枚)装着可能な構成にし、装着する交換単位基材の枚数(個数)によって、確保可能な回線数nを可変できるようにしても良いし、上述したように回線種別の異なる各種のものを用意して、交換単位基材の交換によって、回線種別も回線数も、自由自在に変えられるようにすることもできる。これらにより、前述の被災地等において、その状況に応じて、さらに臨機応変な対応が可能になる。
また、上述の通信システムSでは、通信装置1の親機10は、n個の各子機11等に対して、各子機11等として使用する回線の回線種別や電話番号を示す自局電話番号情報(回線種別情報&回線番号情報:図6の「自局電話番号」参照)を要求でき、各子機11等は、親機10からの要求に応じて、記憶された自局電話番号情報を親機10に応答するので、親機10としては、最初から全ての子機11等の自局電話番号情報を把握(記憶)しておく必要はない。
また、このため、各子機11等を交換しても各子機に要求するだけで自局電話番号情報を取得できるので、異なる回線種別のものあるいは異なる電話番号(回線番号)に交換することも容易になり、前述の被災地等において、その状況に応じて利用する回線種別や電話番号を変更する場合にも、臨機応変な対応が容易に可能になる。
また、上述の通信システムSでは、通信装置1の親機10は、n個の各子機11等に対して、各子機11等として使用する回線の回線状態の評価結果(得点:平均的な通信速度を含む回線状態を示す回線状態情報:図6の「回線評価」参照)を要求でき、各子機11等は、親機10からの要求に応じて、回線状態の評価結果(得点)を応答するので、親機10は、子機11等からの評価結果に基づいて、抽出する各ブロックデータBLK1等のデータ量を決定でき、各子機11等の回線状態に応じたデータ長DL(データ量)のブロックデータBLK1等を抽出してチャネルデータCHD1等として配給することが容易になり、これにより、前述の被災地等において、回線状況の変化に応じた臨機応変な対応が容易に可能になる。
また、この場合、回線状態の評価は、正常動作時の送信〜応答に要する平均時間ばかりでなく、送信異常の発生率にも基づくので(前述の(4)式等参照)、親機10は、各回線の異常発生率をも加味して、ブロックデータBLK1等の抽出〜チャネルデータCHD1等の配給が可能になり、さらに臨機応変な対応が可能になる。
また、上述の回線評価のため、通信装置1の各子機11等では、送信すべきデータがないときに、ダミーデータを送信するので、回線状態の常時監視(常時モニタ)ができ、これにより、回線状態の変化に敏感に対応でき、さらに適切且つ臨機応変な対応が可能になる。
また、上述の通信システムSでは、通信装置2も同様の構成なので、通信装置2の親機20は、n個の各子機21等に対して、自局電話番号情報を要求でき、各子機21等は、親機20からの要求に応答するので、親機20としては、最初から全ての子機21等の自局電話番号情報を把握(記憶)しておく必要はない。また、各子機21等を交換しても自局電話番号情報を取得できるので、異なる回線種別または異なる電話番号(回線番号)に交換することも容易になり、通信装置1と同様に、状況に応じて利用する回線種別や電話番号を変更する場合にも、臨機応変に対応できる。
また、上述の通信システムSにおいて、通信装置1では、通信装置2のn個の子機21等の電話番号のうちの少なくとも1を相手番号として記憶しておき、その相手番号をネットワーク(通信網)NWに対して発呼することにより、まず、その1系統の回線を確保し、通信装置2では、通信装置1からの(相手番号を使用した)最初の呼出しに対して、それ以外のn−1個の電話番号(他回線番号情報)を含む回線情報(回線種別+電話番号)を通信装置1に応答する。通信装置1では、この情報に基づいて、ネットワークNWに対して発呼することにより、残りのn−1系統の回線(n−1個の回線番号に対応する回線)を確保する。このため、この通信システムSの通信装置1は、通信装置2のn個のうちの1の電話番号を記憶しておくだけで、n個の回線を確保可能になる。
なお、前述のように、通信システムSysにおいて(図1参照)、利用機PC1や利用機PC2から見て、上述の通信システムSは、1台の高速モデムに見える。このため、利用法としては、例えば利用機PC1から通信装置1に、利用機PC2に対する通信を要求し、通信装置1では、通信装置2に対する接続に成功すればその旨(例えば「CONNECT」等のメッセージ)を利用機PC1に返し、接続に失敗したり何らかの異常(エラー)が検出されたときにはその旨(例えば「NO CARRIER」や「ERROR」のメッセージやエラーステータス)などを利用機PC1に返すようにすれば良い。
また、上述の場合、例えば上述の相手番号を利用機PC2の電話番号と見なして、利用機PC1から通信装置1への通信要求に、上述の相手番号となる電話番号を含ませるようにしても良い。この場合、通信装置1では、上記の相手番号となる1の電話番号(のみ)を、利用機PC1から入手できるので、最初は通信装置2の電話番号を全く知らなくても、利用機PC1の送信要求に応じて通信を開始でき、さらに臨機応変に対応しやすくなり、応用範囲はさらに広まる。
また、上述の通信システムSでは、通信装置1の各子機11等は、自己に配給されたチャネルデータCHD1等に対して、自己からの送信順を示すレコードナンバー(チャネル内レコード番号)RNを付して、レコードデータC1RCD1(RCD1)等として準備して送信する。これに対して、通信装置2の各子機21等は、対応する通信装置1の子機11等からのレコードデータRCD1等を受信し、そのレコードナンバーRNに基づいて、レコードデータRCD1等の通信が正常か否かを検査して、チャネルデータCHD1等を復元するので、これにより、自己の回線を常時モニタして評価しながら安定に確保しつつ、レコードデータRCD1等を受信して、チャネルデータCHD1を復元できる。
また、チャネルデータ(シリアル番号付データ)CHD1等には、シリアルナンバー(シリアル番号情報)SNばかりでなく、内部に含まれるブロックデータBLK1等のデータ長(データ量を示すデータ量情報)DLがさらに含まれるので、通信装置2では、通信速度に応じて異なるデータ長DLとなり得るブロックデータBLK1をさらに容易且つ確実に復元できる。
また、上述の通信システムSでは、通信装置2は、通信装置1と同一構成の通信装置なので、論理的(概念的、機能的)には、同一構成の2台の通信装置1を、ネットワークNWを挟んで対向させた構成(の論理、の機能)となるが、この場合、通信装置1と通信装置2の双方が、上述してきた送信側の通信装置(第1通信装置)としての各種利点および受信側の通信装置(第2通信装置)としての各種利点を兼ね備えることになり、これにより、高速で安定した双方向通信が可能になる。
また、上述の通信システムSにおいて、n系統の回線には、公衆無線回線が含ませることができ、その利用により、高速で安定なばかりでなく、比較的廉価な通信が可能になる。また、n系統の回線には、回線交換方式により占有した回線を含ませることができ、これにより、さらに確実で安定した高速通信が可能になる。
そもそも、近年の移動体無線通信方式としては、W−CDMAに代表される第三世代携帯電話網の他、PDC方式、GSM方式、PHS、衛星携帯電話などがある。第三世代携帯電話網は、通信速度は速いが、通信可能範囲がまだ狭い。一方、衛星携帯電話は通信可能範囲は最も広いが、通信コストが高く、また通信速度も遅い。最も普及しているいわゆる第二世代のPDC方式やGSM方式は、通信可能範囲は第三世代携帯電話網よりも広いが、通信速度は遅い。
このため、本発明の通信システムでは、それぞれ特徴を有する上述の各種且つ複数の通信手段を有して、通信速度・コスト・通信可能範囲に応じて、適宜切り替えて使用できるようにすることによって、通信回線を安定的に確保し、その状況に応じて最速あるいは最も安価な回線を選択して使用することが可能になる。また、これらの無線を使用した回線は、有線と異なり通信品質が常に変動するため、常に通信速度のモニタを相互で(且つできれば双方向に)行い、通信品質が悪化した回線に割り振られたデータを他の回線に迂回させるなどの措置を講じることによって、状況に応じて適切な通信を確保できる。
なお、応用例として、例えば送信側の第1通信装置のn(例えばn=4)個のチャネルのうちのそれぞれ2個のチャネルに対応する受信側の第2通信装置、第3通信装置のように、送信側と受信側とで1対複数の通信をできるようにしても良い。この場合、例えば第1通信装置側では、同じ通信データの同じチャネルデータCHD1をチャネルCH1とチャネルCH3に、続くチャネルデータCHD2をチャネルCH2とチャネルCH4に配給し、第1通信装置のチャネルCH1、CH2を第2通信装置1に対応させ、チャネルCH3、CH4を第3通信装置に対応させて、同じ通信データについて、別の2カ所(の通信装置)で復元できるようにすることも可能である。
また、単に時々刻々の回線状況をモニタするだけではなく、例えば通信装置1等に各子機(チャネル)カードばかりでなく、GPS(Global Positioning System)カード等を搭載させ、GPS機能を利用して、予め「接続情報」を記録して学習可能にしても良い。この場合、例えば(基地局種別等を含む)回線種別や時間帯(接続日時等)や電界強度その他を、通信装置1の位置情報と連携(関連)させて、「接続情報」として記憶(学習)しておき、次回の回線接続時に参照する。
すなわち、m系統(mは2以上の整数)の通信経路を有するネットワーク(通信網)NWを利用し、利用場所や利用時間等の利用条件に基づいて、優先的に利用する回線(回線の優先順位:プライオリティ)をn系統(この場合のnは1≦n≦mとなる整数)決めておき、それを例えばデータベース化しておいて、必要に応じて参照して接続したり、また自動的に検索して接続することにより、最適の回線(ホットスポット接続)を安定して確保可能になる。
また、回線の切断が発生した場合の自動接続によるリカバリー等にも応用でき、あるいは回線の状態の悪化を監視により検出(または予知)して回線切断の前に他の回線に切り替えたりなど、予防制御にも有効な情報となる。なお、これらの場合、通信速度(スループット)を優先させるか、エラー検出からリカバリーなど障害対応による安定性を優先させるかなどを、適宜、選択・設定できるようにしておくことが、さらに好ましい。
そして、上述のように、本発明の通信装置は、上述した各種の利点を有する通信装置(第1通信装置)1または通信装置(第2通信装置)2として機能するので、通信システムSや通信システムSysを構成することにより、状況に応じて確保可能な複数の通信経路が互いに非同期であっても、それらを利用して、高速で安定した通信ができる。
また、上述した通信装置の各種機能やそれによる各種処理方法(通信方法、チャネルの交換方法、回線評価方法、それらのための情報採取などの準備方法など)は、プログラム処理可能な各種の通信装置によって処理されるプログラムとして適用でき、その種のプログラムを記憶するための例えばCD、MD、DVD等の記憶媒体にも適用でき、この種のプログラムを記憶しておいて、あるいは記憶媒体等から読み出して、実行することにより、状況に応じて確保可能な複数の通信経路が互いに非同期であっても、それらを利用して、高速で安定した通信ができる。もちろん、その他、要旨を逸脱しない範囲で、適宜変更も可能である。