(57)【要約】【課題】バーストエラーが長期間発生した場合でも、データを途切れずに再生させること。【解決手段】送信側通信装置のデータ処理装置１０２において、第１のバッファ２０３と第２のバッファ２０４を設け、第２のバッファ２０４には１度以上転送したデータパケットを保存しておく。通信コントローラ１０３が再送を断念したと判断されるならば第２のバッファ２０４からデータパケットを転送し、さもなければ第１のバッファ２０３からデータパケットを転送する。通信コントローラ１０３が再送を断念したかどうかは、送信側通信装置の通信コントローラ１０３からのデータ要求信号の時間間隔を測定し、その時間間隔が指定された値以上かどうかで判定する。【選択図】        図２
2004187010.tif 000002
【特許請求の範囲】
【請求項１】
データをパケット化してデータパケットを生成するデータパケット生成手段と、
前記生成されたデータパケットを記憶する記憶手段と、
データ要求信号を検出するデータ要求信号検出手段と、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するデータパケット出力手段と、
データ要求信号を検出してからの経過時間を計時する計時手段と、
前記計時手段により計時された経過時間が所定の条件を満たすか否かを判定する判定手段とを備え、
前記判定手段により経過時間が所定の条件を満たすと判定された場合、以前に出力したデータパケットを出力することを特徴とするデータ処理装置。
【請求項２】
前記判定手段は、前記計時手段により計時された経過時間を予め定められた所定の値と比較する比較手段を含むことを特徴とする、請求項１に記載のデータ処理装置。
【請求項３】
前記判定手段は、前記比較手段により経過時間が前記所定の値よりも等しいかまたは大とされた場合に前記所定の条件を満たすと判定することを特徴とする、請求項２に記載のデータ処理装置。
【請求項４】
前記判定手段は、前記計時手段により計時された経過時間をそれまでに検出されたデータ要求信号の検出時刻に基づき定まる時間間隔と比較する比較手段を含むことを特徴とする、請求項１に記載のデータ処理装置。
【請求項５】
前記判定手段は、前記比較手段により前記経過時間が前記時間間隔よりも大とされた場合に前記所定の条件を満たすと判定することを特徴とする、請求項４に記載のデータ処理装置。
【請求項６】
データをパケット化してデータパケットを生成するデータパケット生成手段と、
前記生成されたデータパケットを記憶する記憶手段と、
データ要求信号を検出するデータ要求信号検出手段と、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するデータパケット出力手段と、
エラー信号が検出されたことに応じて、該エラー信号の検出時刻に基づき以前に出力したデータパケットの中から出力するデータパケットを決定する決定手段とを備え、
前記データパケット出力手段は、前記エラー信号が検出された場合、前記決定手段により決定されたデータパケットを出力することを特徴とするデータ処理装置。
【請求項７】
前記記憶手段は、前記出力手段によりデータパケットが送信された時刻を該データパケットに対応付けて記憶し、
前記決定手段は、前記エラー信号が検出された時刻と、前記データパケットに対応付けられた時刻と、予め定められた再送期間とに基づき以前に出力したデータパケットの中から出力するデータパケットを決定することを特徴とする、請求項６に記載のデータ処理装置。
【請求項８】
データをパケット化してデータパケットを出力するデータ処理手段と、前記データ処理手段から出力されるデータパケットを通信フレーム化してデータフレームを送信する通信コントローラとを含む通信装置であって、
前記データ処理手段は、
データをパケット化してデータパケットを生成するパケット生成手段と、
前記生成されたデータパケットを記憶する記憶手段と、
前記通信コントローラから出力されてくるデータ要求信号を検出するデータ要求信号検出手段と、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して前記通信コントローラに出力するデータパケット出力手段と、
データ要求信号を検出してからの経過時間を計時する計時手段と、
前記計時手段により計時された経過時間が所定の条件を満たすか否かを判定する判定手段とを備え、
前記データパケット出力手段は、前記判定手段により経過時間が所定の条件を満たすと判定された場合、以前に出力したデータパケットを出力し、
前記通信コントローラは、
前記データ処理手段に対してデータパケットの出力を要求するデータ要求信号を出力するデータ要求信号出力手段と、
前記データ処理手段から出力されてくるデータパケットを受信するデータパケット受信手段と、
データパケットを通信フレーム化してデータフレームを生成するデータフレーム生成手段と、
前記生成されたデータフレームを送信するデータフレーム送信手段とを備えることを特徴とする通信装置。
【請求項９】
データをパケット化してデータパケットを出力するデータ処理手段と、前記データ処理手段から出力されるデータパケットを通信フレーム化してデータフレームを送信する通信コントローラとを含む通信装置であって、
前記データ処理手段は、
データをパケット化してデータパケットを生成するデータパケット生成手段と、
前記生成されたデータパケットを記憶する記憶手段と、
前記通信コントローラから出力されてくるデータ要求信号を検出するデータ要求信号検出手段と、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するデータパケット出力手段と、
前記通信コントローラからデータフレームが送信されなかったことを示すエラー信号が検出されたことに応じて、該エラー信号の検出時刻に基づき以前に出力したデータパケットの中から出力するデータパケットを決定する決定手段とを備え、
前記データパケット出力手段は、前記エラー信号が検出された場合、前記決定手段により決定されたデータパケットを出力し、
前記通信コントローラは、
前記データ処理手段に対してデータパケットの出力を要求するデータ要求信号を出力するデータ要求信号出力手段と、
前記データ処理手段から出力されるるデータパケットを受信するデータパケット受信手段と、
前記受信されたデータパケットを通信フレーム化してデータフレームを生成するデータフレーム生成手段と、
前記生成されたデータフレームを送信するデータフレーム送信手段と、
前記データフレームを送信できなかった場合に、前記データ処理手段にエラー信号を出力するエラー信号出力手段とを備えたことを特徴とする、通信装置。
【請求項１０】
データ要求信号によりデータパケットを出力する方法であって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ要求信号を検出するステップと、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
データ要求信号を検出してからの経過時間を計時するステップと、
前記計時ステップにより計時された経過時間が所定の条件を満たすか否かを判定するステップを有し、
前記データパケット出力ステップは、前記判定ステップにより経過時間が所定の条件を満たすと判定された場合、以前に出力されたデータパケットを出力することを特徴とする、データ処理方法。
【請求項１１】
エラー信号の検出によりデータパケットを出力する方法であって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ送信要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
出力したデータパケットが送信されなかったことを示すエラー信号が検出されたことに応じて、該エラー信号の検出時刻に基づき以前に出力したデータパケットの中から出力するデータパケットを決定するステップとを有し、
前記データパケット出力ステップは、前記エラー信号が検出された場合に前記決定ステップにより決定されたデータパケットを出力することを特徴とする、データ処理方法。
【請求項１２】
データ要求信号によりデータパケットを出力するステップを有するプログラムであって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ要求信号を検出するステップと、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
データ要求信号を検出してからの経過時間を計時するステップと、
前記計時ステップにより計時された経過時間が所定の条件を満たすか否かを判定するステップとを有し、
前記データパケット出力ステップは、前記判定ステップにより経過時間が所定の条件を満たすと判定された場合、以前に出力されたデータパケットを出力することを特徴とする、データ処理プログラム。
【請求項１３】
エラー信号の検出によりデータパケットを出力するステップを有するプログラムであって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ送信要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
出力したデータパケットが送信されなかったことを示すエラー信号が検出されたことに応じて、該エラー信号の検出時刻に基づき以前に出力したデータパケットの中から出力するデータパケットを決定するステップとを有し、
前記データパケット出力ステップは、前記エラー信号が検出された場合に前記決定ステップにより決定されたデータパケットを出力することを特徴とする、データ処理プログラム。
【請求項１４】
データ要求信号によりデータパケットを出力するステップを有するプログラムを記録した媒体であって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ要求信号を検出するステップと、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
データ要求信号を検出してからの経過時間を計時するステップと、
前記計時ステップにより計時された経過時間が所定の条件を満たすか否かを判定するステップとを有し、
前記データパケット出力ステップは、前記判定ステップにより経過時間が所定の条件を満たすと判定された場合、以前に出力されたデータパケットを出力するデータ処理プログラムを、記録したコンピュータ読取可能な記録媒体。
【請求項１５】
エラー信号の検出によりデータパケットを出力するステップを有するプログラムを記録した媒体であって、
データをパケット化したデータパケットを生成するステップと、
前記生成されたデータパケットを記憶手段に記憶するステップと、
データ送信要求信号の検出に応じて、前記記憶手段からデータパケットを読出して出力するステップと、
出力したデータパケットが送信されなかったことを示すエラー信号が検出されたことに応じて、該エラー信号の検出時刻に基づき以前に出力したデータパケットの中から出力するデータパケットを決定するステップとを有し、
前記データパケット出力ステップは、前記エラー信号が検出された場合に前記決定ステップにより決定されたデータパケットを出力するデータ処理プログラムを、記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信装置、データ伝送方式および通信システムにおける層構造での再送制御方法等に関し、特にバーストエラーが発生しうる伝送路上で有効な技術に関するものである。
【０００２】
【従来の技術】
通信処理をＯＳＩ参照モデルに従うと、物理層／データリンク層／トランスポート層などの階層構造に分けられる。物理層は、実際にデータ伝送を行う通信媒体のことである。通信媒体の例としては、より対線、光ファイバー、無線、赤外線、電話線、電力線などがある。
【０００３】
データリンク層は、通信媒体で直接接続された機器間で通信するための制御を行う。具体的には、データの識別やエラー検出、転送などを行う。データリンク層は、さらにＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ−媒体アクセス制御）副層とＬＬＣ（Ｌｏｇｉｃａｌ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ−論理リンク制御）副層に分かれる。ＭＡＣ副層は、通信媒体の違いを吸収する役割を持ち、ＬＬＣ副層は、論理的なインタフェースを提供する役割を持つ。ＭＡＣ副層は、一般的に、物理層の特性に依存した仕様となっている。
【０００４】
データリンクの例としては、Ｅｔｈｅｒｎｅｔ（Ｒ）、ＦＤＤＩ（ＦｉｂｅｒＤｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）、ＩＥＥＥ１３９４などがある。データリンク層は、通信コントローラとして全てをハードウェアで実現されている場合が多いが、一部ソフトウェアとの連動において実現されている場合もある。
【０００５】
トランスポート層は、エンド−エンド間のデータ伝送の管理を行う。例えば、データ伝送の信頼性を高める、伝送遅延時間を一定に保つ、データの到着順序を送信元と同じになるように保証する、などの役割を持つ。これは、エンド−エンド間のデータ伝送において、データが誤ったりまたは失われたり、伝送遅延時間のゆらぎが発生したり、データの到着順序が入れ替わることがあるためである。
【０００６】
トランスポート層における、データ誤りの対処方法として、１．何もしない、２．ＡＲＱ（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ−自動再送要求）、３．ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ−順方向誤り訂正）等が代表的である。
【０００７】
１．は、ネットワーク経路上でデータが誤ったり失われたりしても何もしない。１．の例としては、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）がある（例えば、非特許文献１参照）。ＵＤＰは、プロトコルが単純で遅延が少ないため、映像や音声など高速性が求められるアプリケーションに向く。
【０００８】
２．のＡＲＱは、受信側からの応答確認によって再送制御を行うことで、ネットワーク経路上でデータが誤ったり失われたりしても、必要なデータを再度送信し、データ伝送を確実に行う方法である。送信側は、データをある単位に区切って順序番号を付け、また、誤りを検出できるようにＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を付加する。２．の例としては、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）がある（例えば、非特許文献１参照）。ＴＣＰは、データ伝送の信頼性が高く、ＬＡＮトラフィックのような信頼性が要求されるアプリケーションに向く。
【０００９】
３．のＦＥＣは、送信側からデータを送信するときに、冗長性を持たせることで、たとえ一部のデータが誤ったり失われたりしても、受信側で正しく受信された残りのデータから完全なデータを再現する方法である。３の例としては、ＵＤＰ上に簡易的な信頼性を組み込んだＲＵＤＰ（Ｒｅｌｉａｂｌｅ  Ｕｓｅｒ  Ｄａｔａ  Ｐｒｏｔｏｃｏｌ）というプロトコルがある（例えば、非特許文献２参照）。ＦＥＣは、送信側から一方向のデータ伝送であるため、逆方向のデータ伝送がなく、伝送遅延時間はほぼ一定になるという利点がある。そのため、電話など伝送遅延時間が一定であることが求められるアプリケーションに向く。
【００１０】
実際の通信システムはもう少し複雑で、トランスポート層より低い層でＡＲＱやＦＥＣを行うことがある。例えば、無線ＬＡＮの８０２．１１では、ＭＡＣ副層に相当するプロトコルが、ＣＳＭＡ／ＣＡ（Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ  ｗｉｔｈ  Ｃｏｌｌｉｓｉｏｎ  Ａｖｏｉｄａｎｃｅ）と呼ばれるデータ伝送手順になっており、送信側がデータを送信すると、受信側はＡＣＫ（ｐｏｓｉｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅ−肯定確認応答）やＮＡＣＫ（Ｎｅｇａｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ−否定確認応答）を返し、ＡＲＱを行っている。
【００１１】
また、電力線通信のＨｏｍｅＰｌｕｇでは、たたみ込み符号やリード・ソロモン符号などを用いたＦＥＣを行っている。いずれにせよ、データリンク層以下を受け持つ通信コントローラが、物理層である伝送路の特性に応じて、ＡＲＱやＦＥＣを行っている。ＡＲＱやＦＥＣは、とりわけ伝送路の誤り率が悪いときに、実施されることが多い。伝送路の誤り率を改善して、信頼性のある伝送路を上位層に提供するためである。
【００１２】
しかしながら、通信コントローラがＡＲＱやＦＥＣを行っても、バーストエラーなどの伝送路の誤りに対する耐性能力には限界がある。そのため、トランスポート層が、データリンク層とは独立して、再度ＡＲＱを行うことは意味がある。
【００１３】
また、本特許に関連する先行特許文献として次のようなものがある。ＯＳＩ参照モデルのレイヤ３からレイヤ２へ送られる情報に対してレイヤ２が確認形のデータ転送を行うデータ再送方法において、レイヤ２からレイヤ３に対してデータ転送の成功もしくは失敗を通知し、レイヤ３はレイヤ２に対して情報を再送する通信プロトコルを備えた再送方法がある（例えば、特開平１０−１３６０５３号公報参照）。ここで、レイヤ２はＭＡＣ層（または通信コントローラ）、レイヤ３はトランスポート層に対応すると考えられる。
【００１４】
【特許文献１】
特開平１０−１３６０５３号公報
【００１５】
【非特許文献１】
竹下隆史ほか著、「マスタリングＴＣＰ／ＩＰ  入門編  第２版」、オーム社出版、１９９８年、第５章「ＴＣＰとＵＤＰ」
【００１６】
【非特許文献２】
Ｊｏｎａｔｈａｎ  Ｄａｖｉｄｓｏｎ／Ｊａｍｅｓ  Ｐｅｔｅｒｓ著、シスコシステムズ監修、「ＶｏＩＰ  基本ガイド」、Ｃｉｓｃｏ  Ｐｒｅｓｓ出版、２００１年、ｐ１９９−２０１「転送プロトコル」
【００１７】
【発明が解決しようとする課題】
しかしながら、上述した従来技術においては下記の問題がある。データが誤ったり失われたりしても何もしない方法では、データが確実に届く保証がないため、信頼性に欠ける。ネットワーク経路上の誤り特性ＢＥＲ（Ｂｉｔ  ＥｒｒｏｒＲａｔｅ）が十分良い時には問題はないが、ネットワーク経路上ではランダムエラーやバーストエラーが発生すると考えられるため、誤り特性ＢＥＲが悪くなると、映像や音声はノイズがのったり途切れたりすることになる。
【００１８】
ＡＲＱを行う方法は、データ伝送の信頼性は高くなるが、再送に伴って伝送遅延時間の増大や伝送遅延時間のゆらぎが発生するため、映像や音声などのアプリケーションに適用しづらいという問題がある。また、確認応答のために、アプリケーションデータを伝送する方向とは逆方向のデータ伝送が発生する。つまり、逆方向のデータ伝送に伴って、伝送遅延時間が増大することになる。映像や音声などのアプリケーションでは、許容される伝送遅延時間が制限されており、伝送遅延時間の増大は問題になると考えられる。
【００１９】
また、確認応答そのものが、ネットワーク経路上で失われたりすることもある。この場合、一定の時間だけ待っても確認応答が来なければ、データが喪失されたと判断して、もう一度同じデータを送信する、などの処理を行うが、タイムアウトまでの遅延時間が問題になることが考えられる。
【００２０】
ＦＥＣを行う方法は、受信側にデータが確実に届いたかどうかの保証はないが、受信側で多少のエラーならば回復できるため、ある程度の信頼性を付加するものと考えられる。しかし、ＦＥＣを有効に機能させるためには、大きな冗長性を持たせなければならない。とりわけ、ＦＥＣを十分に機能させるために、必要な帯域が元の帯域と比べて２倍から数倍となってしまうこともある。伝送路の帯域を必要以上に占有することになりかねず、伝送効率が悪くなる。したがって、映像のような帯域の広いアプリケーションに適用することは難しい。加えて、バーストエラーが発生した場合には、ＦＥＣはほとんど効果がない。
【００２１】
また、データリンク層としてＡＲＱやＦＥＣまたはその両方を行う通信コントローラは、伝送路の誤り率を改善して、信頼性のある伝送路を上位層に提供している。しかし、通信コントローラが行う再送の回数は上限が決められており、この回数だけ再送を行ってもなお受信エラーが発生した場合、通信コントローラは送信を断念する。この回数（最大再送リトライ回数）は、伝送路の特性などに基づいて通信コントローラが決めている。最大再送リトライ回数を超えるような長いバーストエラーが発生した場合、通信コントローラは送信を断念するため、データは受信側に届かないことになる。このような場合、トランスポート層で再度ＡＲＱを行うことはもちろん可能である。しかし、さきほど述べたように逆方向のデータ伝送遅延が発生して、全体として伝送遅延時間の増大につながる。アプリケーションによっては伝送遅延時間の増大は問題になる。可能ならば、一方向のデータ伝送のみで、対応することが望まれる。
【００２２】
以上述べたように、映像や音声などのアプリケーションに求められるような伝送特性、すなわち、伝送遅延時間を短く、信頼性を確保して伝送することは、一般的に難しい。本発明が解決しようとする課題は、上記の課題であり、特にバーストエラーが発生しうるような伝送路上で有効である。
【００２３】
また特開平１０−１３６０５３号公報では、レイヤ２からレイヤ３に対して、データ送信の可否を通知する。従って、レイヤ２からレイヤ３に対して、データ送信の可否が通知されない場合には、適用することができない。また、たとえレイヤ２からレイヤ３に対してデータ送信の可否が通知されたとしても、レイヤ３が連続的にデータを伝送しているとき、送信に失敗したデータを特定する情報が明示的に与えられない限り、レイヤ３はどのデータを再送すべきなのかを知ることができない。
【００２４】
この発明は上述の問題点を解決するためになされたもので、この発明の目的は、通信コントローラが再送を断念するような長いバーストエラーが発生しても、データを途切れなく再生させることが可能なデータ処理装置、通信装置、データ処理方法、データ処理プログラム、データ処理プログラムを記録したコンピュータ読取可能な記録媒体を提供することである。
【００２５】
【課題を解決するための手段】
通信装置は、データ処理装置と通信コントローラとを含む。尚、データ処理装置は、装置で無く同等の構成手段を有するデータ処理手段であっても良い。データ処理装置は、通信コントローラからのデータ要求信号に従って、次に送信すべきデータを通信コントローラに転送するが、このデータ処理装置は、データを転送した後も、以前に転送したデータを指定された量だけ保存する記憶手段を備える。
【００２６】
さらに、このデータ処理装置は、通信コントローラが再送を断念したことを判断する手段を備える。データ処理装置は、通信コントローラが再送を断念したと判断した時に、以前に転送したデータを保存するバッファからデータを再度転送する。したがって、送信側の通信装置は、通信コントローラが再送を断念したときでも、データ処理装置が以前に送信したデータと同じデータを再度送信することにより、受信側の通信装置でデータを途切れなく受信することができる。
【００２７】
通信コントローラが再送を断念したかどうかを判断する手段であるが、２つの方法が考えられる。一つ目は、通信コントローラからのデータ要求信号の発生する時間間隔を測定する方法である。伝送路が正常な状態であれば、通信コントローラからのデータ要求信号はほぼ一定の時間間隔で発生する。伝送路に異常が発生すると、通信コントローラが再送を継続している間、データ要求信号は発生しなくなる。したがって、通信コントローラからのデータ要求信号の発生する時間間隔を測定し、指定された値と比較することによって、通信コントローラが再送を断念したかどうかを判断できる。
【００２８】
二つ目は、通信コントローラから直接状態を取得して判断する方法である。通信コントローラから状態を取得して、通信コントローラが再送を断念したかどうかを判断できる。さらにこの場合、通信コントローラから破棄されたデータを特定する情報が明示的に与えられていなくても、データ処理装置は、時刻情報から破棄されたデータを推測することができる。
【００２９】
データ処理装置は、破棄されたと推測されるデータより古いデータを、再送の対象外と判断して、それらを消去することで、効率よく再送できる。いずれの場合でも、受信側通信装置のデータ処理装置は、同じデータを２度以上受信することがあるため、同じデータを受信した時は、そのデータを破棄する処理が必要である。これは、送信側通信装置のデータ処理装置で、データパケットの先頭にデータパケットを識別するシーケンス番号を付加し、受信側通信装置のデータ処理装置でデータパケットのシーケンス番号を監視することで、実現する。
【００３０】
その結果、通信コントローラが再送を断念するような長いバーストエラーが発生しても、受信側通信装置はデータを途切れなく再生することができる。
【００３１】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の実施の形態を説明する。ここでは、詳細な処理手順をソフトウェアの形態で説明しているが、これはハードウェアでも実現可能である。
【００３２】
又、先に説明した従来技術等で層構造との関連において説明している。実施例に先の説明と関連させて、上位層・下位層と事例的に記述しているが、データ処理装置、通信コントローラ等は、必ずしも層構造になっている必要性は無い。
【００３３】
＜第１の実施の形態＞
第１の実施の形態として、通信コントローラからエラー信号が通知されない場合の実施例を述べる。図１に、本発明の第１の実施の形態と後述の第２の実施の形態に係るデータ伝送システムの構成を示す。システムとしては、アイソクロナスデータ生成装置１００、送信側通信装置装置１０１、伝送路１１０、アイソクロナスデータ再生装置１２０、受信側通信装置１２１から構成される。
【００３４】
送信側通信装置１０１は、データ処理装置１０２と、通信コントローラ１０３、物理層１０４とを含む。受信側通信装置１２１は、データ処理装置１２２と、通信コントローラ１２３、物理層１２４とを含む。
【００３５】
アイソクロナスデータ生成装置１００は、映像や音声など同期型のデータの発生元となる装置である。例えばＤＶＤプレーヤーやチューナーなどに相当する。
【００３６】
アイソクロナスデータ再生装置１２０は、映像や音声などの同期側データを表示または再生する装置である。例えば、ＴＶやスピーカーなどに相当する。アイソクロナス（Ｉｓｏｃｈｒｏｎｏｕｓ）データとは、単位時間あたり一定量発生するデータのことである。
【００３７】
アイソクロナスデータ生成装置１００で生成されたアイソクロナスデータは、送信側通信装置１０１のデータ処理装置１０２と通信コントローラ１０３と物理層１０４を経由して伝送路１１０上に送出される。伝送路１１０上を流れるアイソクロナスデータは、受信側通信装置１２１の物理層１２４と通信コントローラ１２３とデータ処理装置１２２を経由して、アイソクロナスデータ再生装置１２０で再生される。
【００３８】
データ処理装置は、エンド−エンド間のデータ伝送路の管理を行う。具体的には、データ伝送の信頼性を高める、伝送遅延時間を一定に保つ、データの到着順序を送信元と同じになるよう保証する、などを行う。
【００３９】
通信コントローラは、データリンク層の役割を提供する。すなわち、ＭＡＣ副層においては、通信媒体の違いを吸収し、ＬＬＣ副層においては論理的なインタフェースを提供する。さらに、伝送路の誤り率を改善するために、ＭＡＣレベルのＡＲＱを行う。具体的には、送信側の通信コントローラが受信側の通信コントローラの確認応答を受けて、再送制御を行う。
【００４０】
物理層は、データの電気信号を伝送路に合わせた形に変換する。具体的には、変復調、デジタル−アナログ変換、信号増幅などを行う。
【００４１】
送信側通信装置１０１において、データ処理装置１０２から通信コントローラ１０３へデータを転送するときには、一方的にデータを転送し続けることはなく、フローコントロールが行われるのが一般的である。すなわち、通信コントローラ１０３が送信を完了するまで、または、通信コントローラ１０３のバッファに空きができるまで、データ転送を中断する仕組みである。具体的には、通信コントローラ１０３がデータ要求信号、ビジー信号、割り込み信号など、これらのいずれかの信号を用いてデータ処理装置１０２へ通知する。
【００４２】
データ要求信号で通知する場合は、通信コントローラ１０３は送信完了またはバッファに空きが出るとデータ要求信号を出力する。データ処理装置は、データ要求信号を検出すると次のデータを転送する。
【００４３】
ビジー信号で通知する場合は、通信コントローラ１０３は送信中またはバッファが満杯である場合にビジー信号を出力する。データ処理装置は、ビジー信号を検出している間はデータを転送せず、ビジー信号が解除されると次のデータを転送する。
【００４４】
割り込み信号で通知する場合は、通信コントローラ１０３が送信を完了するまたはバッファに空きが出ると割り込みをかける。データ処理装置は、割り込みを検出すると割り込みハンドラが起動され通信コントローラから割り込み要因をリードし、送信完了割り込みならば次のデータを転送する。
【００４５】
これらの信号は名称こそ異なるが、いずれも通信コントローラからデータ処理装置に対してデータを要求するという点で同じ機能を果たす。本明細書では、これらの信号をまとめてデータ要求信号とする。
【００４６】
図２に、本発明の実施の形態に係る送信側通信装置のデータ処理装置１０２の構成を示す。データ処理装置１０２は、アイソクロナスＩ／Ｆ部２０１と、データパケット生成部２０２と、第１のバッファ２０３と、第２のバッファ２０４とを含む記憶部２０５と、データパケット出力部２０６と、レジスタ２０７と、タイマー２０８と、計時部２０９と比較部２１０とデータ要求信号検出部２１２とを含む判定部２１１とを含む。
【００４７】
データ処理装置１０２は、アイソクロナスＩ／Ｆ部２０１を介して、アイソクロナスデータ生成装置１００からアイソクロナスデータを入力する。データ処理装置１０２は、アイソクロナスデータを単位時間あたり一定量入力し続ける。
【００４８】
データパケット生成部２０２で、入力されたアイソクロナスデータをアセンブルまたはフラグメンテーションして、適当な長さのデータパケットを生成する。生成されたデータパケットは第１のバッファ２０３にまず蓄えられる。第２のバッファ２０４には、一度以上通信コントローラ１０３に転送したデータパケットを指定された量だけ保存しておく。
【００４９】
データパケット出力部２０６は、通信コントローラ１０３からデータ要求信号を検出すると、第１のバッファ２０３もしくは第２のバッファ２０４からデータパケットを転送する。どちらのバッファからデータパケットを転送するかは、判定部２１１にて決定される。
【００５０】
計時部２０９は、データ要求信号を検出すると、その時の時刻（タイマー２０８の値）を保存し、前回のデータ要求信号が発生した時刻との差（経過時間）を計算する。この経過時間が二つのデータ要求信号間の時間間隔となる。
【００５１】
比較部２１０において、その時間間隔がレジスタ２０７に保存されている所定の値と比較してそれと等しいか、あるいはより大きいかが判定される。実施例の所定の値は、予め決められた固定値、あるいはそれまでに検出されたデータ要求信号の時間間隔より統計的に導き出せる値等である。
【００５２】
上記比較は、時間比較であるが、単位時間の計数を比較する等、経過を比較する同一概念の他の手法で実現しても良い。又、所定の値は、経験的、実験的に、あるいは設計的要素に定める時間・計数等で表した基準値である。
【００５３】
判定部２１１は、時間間隔が、レジスタ２０７に保存されている指定された値より大きければ通信コントローラ１０３が再送を断念したと判断して、第２のバッファ２０４からデータパケットを転送するようにデータパケット出力部２０６へ指示を出す。
【００５４】
第１のバッファ２０３からデータパケットを転送するとき、転送されたデータパケットは第２のバッファ２０４へ移される。第２のバッファ２０４からデータパケットを転送するとき、転送されたデータパケットは第２のバッファ２０４に留まる。第１のバッファおよび第２のバッファは指定された量のデータパケットしか保存できないため、バッファが満杯になった場合、第２のバッファの最も古いデータパケットから順に捨てられる。
【００５５】
一度、第２のバッファ２０４からデータパケットを転送し始めると、第２のバッファ２０４に蓄えられているデータパケットを転送し続ける。第２のバッファ２０４からデータパケットを転送している間は、データ要求信号の時間間隔が指定された値よりも小さくても、第２のバッファ２０４からデータパケットを転送する。これは、第２のバッファ２０４にあるすべてのデータパケットを転送するまで継続される。第２のバッファ２０４からデータパケットを転送している間に、再度データ要求信号の時間間隔が指定された値よりも大きいことを検出すると、第２のバッファ２０４の一番古いデータパケットからもう一度転送し始める。第２のバッファ２０４にあるすべてのデータパケットを転送し終えると、その後は、データ要求信号の時間間隔に応じて第１のバッファ２０３または第２のバッファ２０４からデータパケットを転送する。
【００５６】
ここで、第２のバッファのサイズは、通信コントローラ１０３の持つバッファのサイズよりも大きくなければならない。第２のバッファのサイズが、通信コントローラ１０３の持つバッファのサイズよりも小さければ、通信コントローラ１０３が再送を断念したフレームの一部を失ってしまい、アイソクロナスデータを途切れなく再生することができなくなるからである。第２のバッファのサイズは、通信コントローラ１０３に依存するので、コンフィグアブル、すなわちソフトウェアによって設定可能であるように設計することが望ましい。例えば、第２のバッファのサイズをレジスタ２０７によって書き換えられるようにする。第２のバッファのサイズを０に設定すると、本発明の効果を無効にすることができる。
【００５７】
また、第１のバッファのサイズも、アプリケーションに依存するため、コンフィグアブル、すなわちソフトウェアによって設定可能であるように設計することが望ましい。アプリケーションによって、必要とされる伝送帯域や最大許容遅延が異なるためである。第１のバッファのサイズを調整することで、アプリケーションの種類に応じた伝送が可能となる。例えば、第１のバッファのサイズを小さくすると、より早くバッファが満杯になり、第２のバッファの最も古いデータパケットから順に捨てられるため、必然的に再送回数が減ることになる。その結果、不必要に何度も再送されるといったことがなくなる。伝送帯域が狭く、最大許容遅延が小さいアプリケーションに対しては、第１のバッファのサイズを小さく設定すればよい。逆に、伝送帯域が広く、最大許容遅延が大きいアプリケーションに対しては、第１のバッファのサイズを大きく設定すればよい。
【００５８】
図３に、データ要求信号の発生する様子を示す。
（１）伝送路上にバーストエラーが発生せず、通信コントローラ１０３が順調に送信している間は、データ要求信号はほぼ一定の間隔で出力される。
【００５９】
（２）しかし、バーストエラーが発生すると、通信コントローラ１０３が再送制御を行い、しばらくの間データ要求信号が出力されなくなる。
【００６０】
（３）（４）（５）一定時間が経過してなおバーストエラーが続いた場合、通信コントローラ１０３が再送を断念し、次の新しいデータを要求するため、データ要求信号を出力する。通信コントローラ１０３が持つバッファの分だけ、データ要求信号を出力すると考えられる。この間、すなわち、通信コントローラ１０３が再送を継続している間、データ要求信号の発生が一時的に止まる。
【００６１】
従って、データ要求信号が発生する時間間隔を測定し、その時間間隔がある値以上になれば、通信コントローラ１０３が再送を断念したと、判断することができる。この値は、通信コントローラ１０３に依存するので、コンフィグアブル、すなわちソフトウェアによって設定可能であるように設計する。例えば、この値をレジスタ２０７によって書き換えられるようにする。
【００６２】
図４に、送信側通信装置のデータ処理装置１０２と受信側通信装置のデータ処理装置１２２のバッファ占有率について説明する。なお、送信側通信装置のデータ処理装置１０２のバッファは第１のバッファのことである。
【００６３】
（Ｉ）はバーストエラーが発生していない時のバッファの状態である。
送信側通信装置のデータ処理装置１０２のバッファにアイソクロナスデータが単位時間あたり一定量の割合で入力される。通信コントローラ１０３が順調にデータレームを送信している間は、送信側通信装置のデータ処理装置１０２のバッファにはほとんどデータパケットがたまらない。これは、伝送路の帯域の方がアイソクロナスデータの帯域よりも広いためである。伝送路の帯域は、伝送エラーによるリカバリ（ＦＥＣやＡＲＱ）を考慮して、アイソクロナスデータの帯域よりも広くとるのが一般的である。受信側通信装置のデータ処理装置１２２のバッファからはアイソクロナスデータが単位時間あたり一定量の割合で出力される。受信側通信装置のデータ処理装置１２２は、いったん再生を開始し始めると、再生を開始し始めた時点のバッファ占有率のままほぼ一定に推移する。
【００６４】
（ＩＩ）はバーストエラーが発生した時のバッファの状態である。
バーストエラーが発生して、伝送路上にデータが流れなくなると、送信側通信装置のデータ処理装置１０２のバッファにデータパケットがたまってくる。バッファから出力されないにもかかわらず、アイソクロナスデータが入力され続けるからである。受信側通信装置のデータ処理装置１２２のバッファは逆に空になっていく。バッファに入力されないにもかかわらず、アイソクロナスデータが出力され続けるからである。送信側通信装置のデータ処理装置１０２のバッファが満杯になるか、受信側通信装置のデータ処理装置１２２のバッファが空にならない限り、アイソクロナスデータは途切れずに再生される。
【００６５】
以上のように、バーストエラーが発生してもデータ処理装置のバッファの容量が許す限りの時間ならば、途切れずに再生することができる。従って、本来ならば、バーストエラーに耐えられる時間は、データ処理装置のバッファの容量によって決まる、と言ってよい。
【００６６】
しかしながら、通信コントローラが再送を断念するまでの時間が、データ処理装置のバッファの容量が許す限りの時間より短い場合を考える。たとえ、データ処理装置に十分な容量のバッファがあったとしても、通信コントローラが早々に再送を断念すると、結果として、アイソクロナスデータの再生が途切れることになる。アイソクロナスデータを途切れずに再生させるためには、送信側通信装置のデータ処理装置１０２に図２のような工夫をもうける。
【００６７】
すなわち、図３で示した（３）（４）（５）のタイミングにおいて、送信側通信装置のデータ処理装置１０２は通信コントローラ１０３が再送を断念したと判断して、第２のバッファ２０４から以前に転送したデータパケットと同じデータパケットを再度転送する。それ以外の場合は、第１のバッファ２０３から新しいデータパケットを転送する。このようにすると、アイソクロナスデータを途切れずに再生させることができる。
【００６８】
本発明の目的は、通信コントローラが定めている最大再送リトライ回数、すなわち、再送を断念するまでの時間を超えて、バーストエラーが発生した場合でも、データ処理装置に工夫をもうけることによって、アイソクロナスデータを途切れずに再生させることができる、簡便な手法を提供することである。
【００６９】
以下、詳細な処理手順をソフトウェアの形態で説明する。
図５に、第１のバッファと第２のバッファの実施例を示す。
【００７０】
（Ｉ）は、第１のバッファと第２のバッファを異なるアドレス空間で実現した例である。この例では、第１のバッファから第２のバッファへパケットの移動（コピー）が必要である。データの移動（コピー）を行うと、バスが一定時間占有されることになる。可能ならばデータの移動（コピー）を不要にすることが望ましい。
【００７１】
（ＩＩ）は、第１のバッファと第２のバッファを同一のアドレス空間で実現した例である。この例では、データの移動（コピー）が不要である。これは一般的なリングバッファ方式のＦＩＦＯを拡張することで実現可能である。
【００７２】
以下の事例では、記憶部をリングバッファ方式のＦＩＦＯ（ｆｉｒｓｔ  ｉｎｆｉｒｓｔ  ｏｕｔのメモリ）で構成した例を開示しているが、記憶部は、ＦＩＦＯあるいはリングバッファに固定したメモリ処理に限定せずランダムメモリであっても良い。
【００７３】
図６に、一般的なリングバッファ方式のＦＩＦＯを示す。リングバッファは配列で実現され、読み出しポインタ（ｒｄ）と、書き込みポインタ（ｗｒ）を持つ。バッファに書き込む時は、バッファ内の書き込みポインタ（ｗｒ）の指す場所へデータパケットを書き込み、書き込みポインタ（ｗｒ）をインクリメントする。バッファが満杯の状態で、バッファに書き込むと、どのように処理すべきか決まっていないが、一つの例としては、一番古いデータパケットを捨てて、新しいデータパケットを書き込むようにする。バッファから読み出す時は、バッファ内の読み出しポインタ（ｒｄ）の指す場所からデータパケットを読み出し、読み出しポインタ（ｒｄ）をインクリメントする。バッファが空の状態で、バッファから読み出すと、どのように処理すべきか決まっていないが、一つの例としては、無効なデータパケットを返す。
【００７４】
読み出しポインタ（ｒｄ）と書き込みポインタ（ｗｒ）は、どちらも、インクリメントした結果の値が配列の長さ（ｌｅｎ）に等しくなれば０に戻る。以後、繰り返し記載しないが、ポインタをインクリメントする時は必ず０に戻すような処理を追加する。
【００７５】
図７に、拡張したリングバッファ方式のＦＩＦＯを示す。リングバッファは同じく配列で実現され、読み出しポインタ（ｒｄ）と、読み出しポインタ２（ｒｄ２）と、書き込みポインタ（ｗｒ）を持つ。読み出しポインタ（ｒｄ）と読み出しポインタ２（ｒｄ２）との間の領域が、第２のバッファである。配列内のそれ以外の領域が第１のバッファである。このように、第１のバッファと第２のバッファはまとめて、同一アドレス空間上に存在できる。
【００７６】
バッファに書き込む時は、バッファ内の書き込みポインタ（ｗｒ）の指す場所へデータパケットを書き込む。バッファから読み出す時は２通りある。第１のバッファから読み出す時は、バッファ内の読み出しポインタ（ｒｄ）の指す場所からデータパケットを読み出す。第２のバッファから読み出す時は、バッファ内の読み出しポインタ（ｒｄ２）の指す場所からデータパケットを読み出す。
【００７７】
以下、拡張したリングバッファ方式のＦＩＦＯを使って、本発明の実施例を詳しく説明する。図８に、以降の処理手順の説明に出てくる変数名の説明と初期値を示す。各変数は、あらかじめ図８に示されている初期値に初期化されているものとする。
【００７８】
図９に、送信側通信装置のデータ処理装置における、下位層（通信コントローラ）とのインタフェース処理手順を示す。下位層（通信コントローラ）からデータ要求信号を検出すると、Ｓ１０１に処理が移る。Ｓ１０２にて、判断ルーチンが実行される。判断ルーチンでは、下位層（通信コントローラ）が再送を断念したかどうかが判定され、再送を断念した場合にはｔｒｕｅが、さもなければｆａｌｓｅが返る。
【００７９】
Ｓ１０３にて、拡張したリングバッファ方式のＦＩＦＯから読み出しが実行される。Ｓ１０３の引数として、Ｓ１０２の判断ルーチンの返値を渡す。Ｓ１０３では、引数を手がかりに、第１のバッファから読み出すか、第２のバッファから読み出すかを決定する。いずれか適切なバッファから読み出しされ、データパケットを返す。
【００８０】
Ｓ１０４で、Ｓ１０３の返値のデータパケットが無効であるかどうかチェックし、データパケットが無効ならば何もせずにＳ１０６で終了する。データパケットが有効ならば、Ｓ１０５にてデータパケットを下位層（通信コントローラ）に転送する。その後、Ｓ１０６で終了する。
【００８１】
図１０に、第１の実施の形態に係る判断ルーチンの処理手順を示す。Ｓ２０１で判断ルーチンを開始する。Ｓ２０２で現在時刻を取得して一時変数ｃｕｒｒｅｎｔに保存する。現在時刻はタイマー２０６から取得できる。なお、現在時刻は０以上の値で表されるものとする。
【００８２】
Ｓ２０３で返値ｒｅｔにｆａｌｓｅを代入する。Ｓ２０４でこの判断ルーチンが初回呼び出しかどうかを判定する。初回呼び出しかどうかは、ｌａｓｔ＿ｔｉｍｅｒが負であるかどうかで判定できる（なぜなら、初回呼び出し時のみｌａｓｔ＿ｔｉｍｅｒは初期値の−１がセットされており、それ以降はｌａｓｔ＿ｔｉｍｅｒには０以上の値が入るため。）。
【００８３】
初回呼び出しならばＳ２０７に移り、さもなければＳ２０５に移る。Ｓ２０５で、前回にこの判断ルーチンが呼ばれた時刻と現在時刻との差ｃｕｒｒｅｎｔ−ｌａｓｔ＿ｔｉｍｅｒを計算し、それが指定された値（ｐｅｒｉｏｄ）以上かどうかを判定する。指定された値以上ならばＳ２０６に移り、さもなければＳ２０７に移る。
【００８４】
Ｓ２０６で返値ｒｅｔにｔｒｕｅを代入する。Ｓ２０７で先に取得した現在時刻（一時変数ｃｕｒｒｅｎｔに格納されている）を変数ｌａｓｔ＿ｔｉｍｅｒに保存する。Ｓ２０８で終了し、返値ｒｅｔを返す。
【００８５】
図１１に、拡張したリングバッファ方式のＦＩＦＯから読み出しの処理手順を示す。Ｓ４０１で処理が開始される。この時、引数にｔｒｕｅまたはｆａｌｓｅが与えられる。
【００８６】
Ｓ４０２で返値ｐｋｔにｎｕｌｌを代入する。ｎｕｌｌとは無効なデータパケットのことである。Ｓ４０３で引数がｔｒｕｅかどうを判定し、ｔｒｕｅならばＳ４０４へ移り、さもなければＳ４０５へ移る。Ｓ４０４で後述する処理Ａを実行する。
【００８７】
Ｓ４０５で第２のバッファから読み出し中であるかどうかを判定し、第２のバッファから読み出し中であるならばＳ４０６へ移り、さもなければＳ４０７へ移る。第２のバッファから読み出し中であるかどうかは、読み出しポインタ３（ｒｄ３）が０以上かどうかで判定できる。
【００８８】
Ｓ４０６で後述する処理Ｂを実行する。Ｓ４０７で後述する処理Ｃを実行する。Ｓ４０４の処理Ａ、Ｓ４０６の処理Ｂ、Ｓ４０７の処理Ｃが完了すると、Ｓ４０８で拡張したリングバッファ方式のＦＩＦＯから読み出しを終了し、返り値ｐｋｔを返す。
【００８９】
以下、図１２を用いて処理Ａの手順について説明する。Ｓ４２１で第２のバッファが空かどうか判定し、第２のバッファが空ならばＳ４２２へ移り、さもなければＳ４２３へ移る。第２のバッファが空かどうかは、読み出しポインタ２（ｒｄ２）が読み出しポインタ（ｒｄ）と等しいかどうかで判定できる。Ｓ４２２で後述する処理Ｃを実行する。
【００９０】
Ｓ４２３で読み出しポインタ３（ｒｄ３）に読み出しポインタ２（ｒｄ２）を代入する。なお、読み出しポインタ２（ｒｄ２）は常に０以上である。
【００９１】
Ｓ４２４で後述する処理Ｂを実行する。Ｓ４２４の処理Ｂ、Ｓ４２２の処理Ｃが完了すると処理Ａは終了する。
【００９２】
以下、図１３を用いて処理Ｂの手順について説明する。なお、処理Ｂは第２のバッファから読み出しを行う。Ｓ４４１でバッファ内の読み出しポインタ３（ｒｄ３）の指す場所からデータパケットを読み出し、ｐｋｔに代入する。Ｓ４４２で読み出しポインタ３（ｒｄ３）をインクリメントする。
【００９３】
Ｓ４４３で第２のバッファからデータパケットをすべて読み出したかどうかを判定し、すべて読み出したならばＳ４４４に移り、さもなければ処理Ｂを終了する。第２のバッファからデータパケットをすべて読み出したかどうかは、読み出しポインタ３（ｒｄ３）が読み出しポインタ（ｒｄ）に等しくなったかどうかで判定できる。
【００９４】
Ｓ４４４で読み出しポインタ３（ｒｄ３）に−１を代入する。その後、処理Ｂを終了する。
【００９５】
以下、図１４を用いて処理Ｃの手順について説明する。なお、処理Ｃは第１のバッファから読み出しを行う。
【００９６】
Ｓ４６１で第１のバッファが空かどうか判定し、空ならば処理Ｃを終了し、さもなければＳ４６２に移る。第１のバッファが空かどうかは、ｅｍｐｔｙを見ることで判定できる。
【００９７】
Ｓ４６２でバッファ内の読み出しポインタ（ｒｄ）の指す場所からデータパケットを読み出し、ｐｋｔに代入する。Ｓ４６３で読み出しポインタ（ｒｄ）をインクリメントする。
【００９８】
Ｓ４６４で第２のバッファにデータパケットがたまっているかどうかを判定し、データパケットがたまっていればＳ４６５へ移り、さもなければＳ４６６へ移る。第２のバッファにデータパケットがたまっているというのは、第２のバッファに指定された量（ｌｅｎ２）のデータパケットがある、ということである。第２のバッファにデータパケットがたまっているかどうかは、ｅｘｔｅｎｔｉｏｎが０であるかどうかで判定できる。
【００９９】
Ｓ４６５で読み出しポインタ２（ｒｄ２）をインクリメントする。Ｓ４６６でｅｘｔｅｎｔｉｏｎを１減らす。Ｓ４６７でｆｕｌｌにｆａｌｓｅを代入する。
【０１００】
Ｓ４６８で第１のバッファが空になったかどうかを判定し、空になったらばＳ４６９に移り、さもなければ処理Ｃを終了する。第１のバッファが空になったかどうかは、読み出しポインタ（ｒｄ）が書き込みポインタ（ｗｒ）と等しくなったかどうかで判定できる。
【０１０１】
Ｓ４６９でｅｍｐｔｙにｔｒｕｅを代入する。その後、処理Ｃを終了する。
図１５に、送信側通信装置のデータ処理装置における、上位層（アイソクロナスデータ生成装置）とのインタフェース処理手順を示す。上位層（アイソクロナスデータ生成装置）からアイソクロナスデータが入力され、１データパケット（ｐｋｔ）が生成された時点で、Ｓ５０１に処理が移る。
【０１０２】
Ｓ５０１では引数としてデータパケット（ｐｋｔ）が与えられる。Ｓ５０２でバッファが満杯であるかどうかを判定し、満杯ならばＳ５０３に移り、さもなければＳ５０４に移る。バッファが満杯であるかどうかはｆｕｌｌを見て判定できる。
【０１０３】
Ｓ５０３でバッファ内の最も古いデータパケットを１つ捨てる。具体的には読み出しポインタ（ｒｄ）と読み出しポインタ２（ｒｄ２）をそれぞれインクリメントする。Ｓ５０４でバッファ内の書き込みポインタ（ｗｒ）の指す場所にデータパケットを書き込む。Ｓ５０５で書き込みポインタ（ｗｒ）をインクリメントする。Ｓ５０６でｅｍｐｔｙにｆａｌｓｅを代入する。
【０１０４】
Ｓ５０７でバッファが満杯になったかどうかを判定し、満杯になったならばＳ５０８に移り、さもなければＳ５０９に移る。バッファが満杯になったかどうかは書き込みポインタ（ｗｒ）が読み出しポインタ２（ｒｄ２）と等しくなったかどうかで判定できる。
【０１０５】
Ｓ５０８でｆｕｌｌにｔｒｕｅを代入する。Ｓ５０９で終了する。
図１６に本発明が想定している通信コントローラの送信ブロックの実施例を示す。通信コントローラの役割は、データパケットを通信フレーム化してデータフレームを送信することを伝送媒体の特性に応じて制御を行うものであるが、ここでは再送機能を有するものとする。
【０１０６】
再送機能（ＡＲＱ）にはいくつかの方式があるが、中でも誤ったデータフレームだけ再送するＳＲ−ＡＲＱ（Ｓｅｌｅｃｔｉｖｅ  Ｒｅｐｅａｔ  ＡＲＱ）と呼ばれるタイプの方式が最も効率がよい。ここではＳＲ−ＡＲＱタイプの再送方式を実施する例を示す。
【０１０７】
通信コントローラ１０３は、データパケット入力部３０１、内部メモリ３０２、内部メモリ管理部３０３、再送制御部３０４、物理層Ｉ／Ｆ３０５、データフレーム生成部３０６、データ要求信号出力部３０７、エラー信号出力部３０８、データフレーム送信部３０９と、から構成される。ＳＲ−ＡＲＱタイプの再送方式では、ＦＩＦＯでは実現できないため、任意の場所にアクセスできる内部メモリが必要である。そのため、内部メモリに書き込みする位置、読み出しする位置を決定する制御部が必要である。
【０１０８】
内部メモリ管理部３０３は、内部メモリの状態を管理し、内部メモリに空きがあれば、データ要求信号出力部３０７を通してデータ要求信号を出力し、上位層（データ処理装置）にデータを受け付ける準備ができていることを通知する。
【０１０９】
上位層（データ処理装置）はデータ要求信号を検出すると、次に送信すべきデータパケットを通信コントローラに転送する。通信コントローラは、データパケット入力部３０１を通じて受け取ったデータパケットを、データフレーム化していったん内部メモリ３０２に書き込む。内部メモリ３０２に書き込む位置は、内部メモリ管理部３０３によって決定される。
【０１１０】
通信コントローラは、物理層Ｉ／Ｆ３０５を通じて物理層への制御あるいは状態センスを行い、送信タイミングを待って、内部メモリに保持されているデータフレームを物理層へ転送する。
【０１１１】
物理層は伝送媒体を通じてデータを送信する。その後、物理層は受信側通信装置からＡＣＫまたはＮＡＣＫを受信する。
【０１１２】
再送制御部３０４は、物理層Ｉ／Ｆ３０５を通じてＡＣＫまたはＮＡＣＫを受け取り、どのデータフレームが届き、どのデータフレームが届かなかったのかを判定する。受信側通信装置からＡＣＫまたはＮＡＣＫを受信しなかった場合、一定時間待った後タイムアウトとする。タイムアウトが発生するとＮＡＣＫと同等の処理を行うのが一般的である。届いたデータフレームについては、内部メモリ３０２から破棄される。届かなかったデータフレームは再送の対象となる。
【０１１３】
再送制御部３０４は、ＡＣＫまたはＮＡＣＫを受け取り、内部メモリ管理部３０３に対して、再送の対象となるデータフレームを通知する。内部メモリ管理部３０３は、内部メモリの状態と、再送制御部３０４からの情報をもとに、読み出し位置を決定する。再送制御については、最大再送リトライ回数が設けられているのが一般的である。
【０１１４】
最大再送リトライ回数分繰り返し再送して、なおＮＡＣＫまたはタイムアウトが発生した場合、内部メモリに留まっているデータフレームを破棄し、上位層（データ処理装置）に対して新しいデータを要求する。この時、通信コントローラは、エラー信号を出力し、最大再送リトライ回数オーバーによるデータフレーム破棄が発生したことを、上位層（データ処理装置）に明示的に伝達する手段を持ってもよい。データフレーム破棄ある場合の処理は、第２の実施の形態で述べる。
【０１１５】
実際の通信コントローラは、ここで説明した機能以外にも受信ブロック、ビーコンの送受信やホストインタフェースなどさまざまな機能があるが、本発明とは関連性が低いため、これ以上の説明はしない。
【０１１６】
以上で、送信側通信装置のデータ処理装置の上位層（アイソクロナスデータ生成装置）および下位層（通信コントローラ）とのインタフェース処理手順が示された。このようにすると、図３における（３）（４）（５）のタイミングで、第２のバッファから以前に転送したデータパケットと同じデータパケットを再度転送し、それ以外の場合は、第１のバッファから新しいデータパケットを転送することができる。従って、通信コントローラが早々に再送を断念しても、データ処理装置のバッファが許す限りアイソクロナスデータを途切れずに再生させることができる。
【０１１７】
なお、受信側通信装置のデータ処理装置について補足説明する。受信側通信装置のデータ処理装置では、同じデータパケットを複数回受信することがあるため、同じデータパケットを受信した場合は破棄する手順が必要である。
【０１１８】
また、通信コントローラがデータの順序性を保証していない場合は、受信側データ処理装置でデータを順に並べ替える手順が必要となる。これらは、送信側通信装置のデータ処理装置で、データパケットのヘッダ部にシーケンス番号を付けることで解決される。シーケンス番号はデータパケット毎に１ずつインクリメントされながら付加される。
【０１１９】
従って、受信側通信装置のデータ処理装置でシーケンス番号を見ることで、以前に受信したデータパケットと同じデータパケットであるかどうか、また、データパケットの正しい順序がわかる。これらは従来技術で実現されており、ここではこれ以上の説明はしない。
【０１２０】
以上説明したように第１の実施の形態における送信側通信装置１０１のデータ処理装置１０２では、通信コントローラ１０３から出力されてくるデータ要求信号が検出されてからの経過時間が、指定された値ｐｅｒｉｏｄ以上の場合に、第２のバッファ２０４に記憶されている以前に出力されたデータパケットが通信コントローラ１０３に再度転送される。このため、通信コントローラ１０３で再送を断念したデータパケットであっても、データ処理装置１０２でリカバリできる。その結果、伝送路１１０の通信状態が悪く、バーストエラーが発生する場合であっても、受信側通信装置１２１に連続するデータパケットを送信することができ、アイソクロナスデータ再生装置１２０で、連続するデータを途切れることなく再生することができる。
【０１２１】
また、第２のバッファには、通信コントローラ１０３に１度でも転送されたデータパケットが予め定められた数（ｌｅｎ２）だけ記憶するようにしたので、予め定められた数だけ前に出力されたデータパケットを再度転送することができる。
【０１２２】
さらに、データ要求信号が検出されてからの経過時間が比較される、指定された値ｐｅｒｉｏｄを、通信コントローラ１０３が再送を継続してもなお送信できず再送を断念したと判断することができる期間としたので、通信コントローラ１０３からデータ要求信号以外の信号を受信することなく、通信コントローラ１０３で送信を失敗したか成功したかの判定をすることができる。
【０１２３】
さらに、データ要求信号を検出してからの経過時間が、それまでに受信されたデータ要求信号の受信時刻に基づき定まる時間間隔、すなわち、直前に算出されたデータ要求信号の時間間隔、または、これまでに算出されたデータ要求信号の時間間隔の平均と比較するようにしたので、データ要求信号が検出される時間間隔の変化から、通信コントローラ１０３で送信を失敗したことを判定することができる。
【０１２４】
＜第２の実施の形態＞
第２の実施の形態として、通信コントローラからエラー信号が通知される場合の実施例を述べる。ここでエラー信号とは、通信コントローラがその再送処理において、最大再送リトライ回数を超えてもなお正常に送信できず、通信コントローラがデータフレームを破棄する時に出力される信号である。
【０１２５】
エラー信号には、データ処理装置にとって、破棄されたデータパケットを特定できる情報は含まれていないものとする。しかし、データ処理装置に工夫を設けることによって、エラー信号の発生した時刻を見て、その時刻から破棄されたデータパケットを推定し、それ以降のデータパケットのみを再送することができる。
【０１２６】
時刻から破棄されたデータパケットを推定する方法についてであるが、まずデータ処理装置において、通信コントローラへ転送したパケットの時刻を、データパケットと関連付けて保存しておく。
【０１２７】
通信コントローラへ転送されたデータパケットは、通信コントローラにおいて最大再送リトライ回数に達するまで再送が継続される。通信コントローラが再送を継続する時間はほぼ一定であるとみなせる。この再送継続時間は、あらかじめデータ処理装置に設定されているものとする。
【０１２８】
データ処理装置は、エラー信号を検出すると、それが発生した時刻から再送継続時間を減ずる。この値と、通信コントローラへデータパケットを転送した時刻を比較することにより、破棄されたデータパケットを推定する。
【０１２９】
図１７に、エラー信号がある場合のデータ処理装置の構成図を示す。アイソクロナスＩ／Ｆ部４０１、データパケット生成部４０２、第１のバッファ４０３、第２のバッファ４０４、データパケット出力部４０７、レジスタ４０８と、タイマー４０９については、図２の同名ブロックと同じであるため再度説明しない。記憶部４０６は、第１のバッファと第２のバッファの他に、転送時刻記憶部４０５を持つ。
【０１３０】
転送時刻記憶部４０５には、データパケット出力部４０７が通信コントローラ１０３へデータパケットを転送した時の時刻を保存する。転送時刻記憶部４０５は、時刻を第２のバッファ４０４に蓄えられるデータパケットと対応付けて保存する。同じデータパケットを複数回転送する場合は、最後に転送した時刻だけを保存する。
【０１３１】
決定部４１２は、破棄パケット推定部４１０と、再送対象外パケット消去部４１１と、エラー信号検出部４１３とを含む。
【０１３２】
破棄パケット推定部４１０は、エラー信号が発生した時刻を保存し、その時刻から、あらかじめレジスタ４０８に設定されている再送継続時間を減算し、破棄されたと推定されるデータパケットを推定する。
【０１３３】
再送対象外データパケット消去部４１１は、第２のバッファ４０４に蓄えられているデータパケットのうち、破棄パケット推定部４１０で破棄されたと推定されたデータパケットより古いデータパケットを消去する。
【０１３４】
決定部４１２は、データ要求信号に従い第１のバッファまたは第２のバッファのどちらからデータパケットを転送するかの決定をする。
【０１３５】
以下、エラー信号がある場合の詳細な処理手順をソフトウェアの形態で説明する。
【０１３６】
基本的には、第１の実施例で述べた処理手順をそのまま使用できる。さらに、エラー信号がある場合には、エラー信号が発生した時刻を取得し、破棄されたデータパケットを推定し、第２のバッファに蓄えられているデータパケットの中から、破棄されたと推定されるデータパケットより古いデータパケットを再送の対象外として削除する手順を追加する。
【０１３７】
図１８に、エラー信号を検出した時の処理で使用される、変数名の説明と初期値を示す。各変数は、あらかじめ図１８に示されている初期値に初期化されているものとする。
【０１３８】
図１８の変数ｒｅｔｒｙｔｉｍｅが再送継続時間である。この値は、通信コントローラ１０３に依存するので、コンフィグアブル、すなわちソフトウェアによって設定可能であるように設計することが望ましい。レジスタ４０８に記憶される。
【０１３９】
図１９に、エラー信号を検出した時の処理を示す。エラー信号を検出するとＳ６０１に処理が移る。Ｓ６０２で現在時刻を取得する（ｃｕｒｒｅｎｔ）。現在時刻はタイマー４０９から取得する。
【０１４０】
Ｓ６０３で破棄されたデータパケットを推定する。正確には、破棄されたと推測されるデータパケットを転送した時刻を計算する。これは現在時刻から決められた再送期間を減ずることで得られる（ｌｏｓｔｔｉｍｅ←ｃｕｒｒｅｎｔ−ｒｅｔｒｙｔｉｍｅ）。
【０１４１】
Ｓ６０４で第２のバッファが空かどうかを判定し、第２のバッファが空ならばＳ６０８で処理を終了する。さもなければＳ６０５に移る。
【０１４２】
Ｓ６０５で第２のバッファの先頭データパケットが再送の対象から外せるかどうかを判定する。具体的には、第２のバッファの先頭データパケットを最後に転送した時刻（ｓｅｎｄｏｕｔ［ｒｄ２］）が、Ｓ６０３で求めた時刻（ｌｏｓｔｔｉｍｅ）より古いかどうかを比較する。古ければ再送の対象から外せると判定する。Ｓ６０５で第２のバッファの先頭データパケットが再送の対象から外せると判定されれば、Ｓ６０６に移る。さもなければＳ６０８にて処理を終了する。
【０１４３】
Ｓ６０６で読み出しポインタ２（ｒｄ２）をインクリメントする。これは、第２のバッファの先頭データパケットを１つ削除することを意味する。Ｓ６０７でｅｘｔｅｎｔｉｏｎを１減らす。再びＳ６０４に戻り、第２のバッファが空でない限り、以上の手順を繰り返す。
【０１４４】
図１９の処理手順により、エラー信号があった場合に、その時刻から破棄されたデータパケットを推定し、それ以降のデータパケットのみを再送することができる。
【０１４５】
図２０に、第２の実施の形態に係る判断ルーチンの処理手順を示す。これは、図９におけるＳ１０２の処理である。Ｓ３０１で判断ルーチンを開始する。
【０１４６】
Ｓ３０２で通信コントローラから再送状態を取得する。これは、通信コントローラからの特定の信号（たとえば、図１６のエラー信号に相当するようなもの）をリードする、などの方法で取得する。
【０１４７】
Ｓ３０３で通信コントローラが送信を失敗したかどうかを判断し、送信を失敗したと判断されればＳ３０４に移り、さもなければＳ３０５に移る。Ｓ３０４で返値ｒｅｔにｔｒｕｅを代入する。Ｓ３０５で返値ｒｅｔにｆａｌｓｅを代入する。Ｓ３０６で終了し、返値ｒｅｔを返す。
【０１４８】
以上説明したように、第２の実施の形態における送信側通信装置１０１のデータ処理装置１０２は、エラー信号の検出時刻に基づき、第２のバッファに記憶されている、以前に出力したデータパケットの中から、再度転送すべきデータパケットを決定して転送する。このため、通信コントローラ１０３で送信されなかったフレームに対応するデータパケットを再度転送することができる。このため、伝送路１１０にバーストエラーが発生して、通信コントローラ１０３で送信できないフレームが発生したとしても、そのフレームに対応するデータパケットが再度通信コントローラ１０３に転送される。このため、アイソクロナスデータ再生装置１２０では、アイソクロナスデータを途切れることなく再生することができる。
【０１４９】
また、データ処理装置１０２は、エラー信号が検出された時刻と予め定められた再送期間（再送継続時間ｒｅｔｒｙｔｉｍｅ）とから通信コントローラ１０３で破棄されたフレームに対応するデータパケットが出力された時刻が求められる。このため、通信コントローラ１０３からエラー信号を受信するだけで、通信コントローラ１０３で送信されずに破棄されたフレームに対応するデータパケットを特定することができる。
【０１５０】
＜第３の実施の形態＞
図２１に、本発明の第１、第２の実施の形態におけるデータ処理装置を装置で無く同等の手段として再度見直して実装した場合の通信装置の構成を念の為示している。各構成要素はデータ処理手段を除き実施の形態で説明した図１と同じである。しかしながらデータ処理手段は実施の形態で説明したデータ処理装置の各手段を同等に実現できるものであり、ハードウェアまたはソフトウェアで実現される。
【０１５１】
システムとしては、アイソクロナスデータ生成装置１００、通信装置５０１、伝送路１１０、受信装置５０４から構成される。通信装置５０１は、データ処理手段５０２と、通信コントローラ１０３、物理層１０４とを含む。
【０１５２】
受信側通信装置５２１は、データ処理手段５２２と、通信コントローラ１２３、物理層１２４とを含む。
【０１５３】
アイソクロナスデータ生成装置１００は、映像や音声など同期型のデータの発生元となる装置である。例えばＤＶＤプレーヤーやチューナーなどに相当する。アイソクロナスデータ再生装置１２０は、映像や音声などの同期型データを表示または再生する装置である。例えば、ＴＶやスピーカーなどに相当する。アイソクロナス（Ｉｓｏｃｈｒｏｎｏｕｓ）データとは、単位時間あたり一定量発生するデータのことである。
【０１５４】
アイソクロナスデータ生成装置１００で生成されたアイソクロナスデータは、通信装置５０１のデータ処理手段５０２と通信コントローラ１０３と物理層１０４を経由して伝送路１１０上に送出される。伝送路１１０上を流れるアイソクロナスデータは、受信側通信装置５２１の物理層１２４と通信コントローラ１２３とデータ処理手段５２２を経由して、アイソクロナスデータ再生装置１２０で再生される。
【０１５５】
データ処理手段は、エンド−エンド間のデータ伝送路の管理を行う。具体的には、データ伝送の信頼性を高める、伝送遅延時間を一定に保つ、データの到着順序を送信元と同じになるよう保証する、などを行う。
【０１５６】
通信コントローラは、データリンク層の役割を提供する。すなわち、ＭＡＣ副層においては、通信媒体の違いを吸収し、ＬＬＣ副層においては論理的なインタフェースを提供する。さらに、伝送路の誤り率を改善するために、ＭＡＣレベルのＡＲＱを行う。具体的には、送信側の通信コントローラが受信側の通信コントローラの確認応答を受けて、再送制御を行う。
【０１５７】
物理層は、データの電気信号を伝送路に合わせた形に変換する。具体的には、変復調、デジタル−アナログ変換、信号増幅などを行う。
【０１５８】
通信装置５０１において、データ処理手段５０２から通信コントローラ１０３へデータを転送するときには、一方的にデータを転送し続けることはなく、フローコントロールが行われるのが一般的である。すなわち、通信コントローラ１０３が送信を完了するまで、または、通信コントローラ１０３のバッファに空きができるまで、データ転送を中断する仕組みである。具体的には、通信コントローラ１０３がデータ要求信号、ビジー信号、割り込み信号など、これらのいずれかの信号を用いてデータ処理手段５０２へ通知する。
【０１５９】
データ要求信号で通知する場合は、通信コントローラ１０３は送信完了またはバッファに空きが出るとデータ要求信号を出力する。データ処理手段は、データ要求信号を検出すると次のデータを転送する。
【０１６０】
ビジー信号で通知する場合は、通信コントローラ１０３は送信中またはバッファが満杯である場合にビジー信号を出力する。データ処理手段は、ビジー信号を検出している間はデータを転送せず、ビジー信号が解除されると次のデータを転送する。
【０１６１】
割り込み信号で通知する場合は、通信コントローラ１０３が送信を完了するまたはバッファに空きが出ると割り込みをかける。データ処理手段は、割り込みを検出すると割り込みハンドラが起動され通信コントローラから割り込み要因をリードし、送信完了割り込みならば次のデータを転送する。
【０１６２】
これらの信号は名称こそ異なるが、いずれも通信コントローラからデータ処理手段に対してデータを要求するという点で同じ機能を果たす。本明細書では、これらの信号をまとめてデータ要求信号とする。
【０１６３】
更に、第１・第２の実施例を方法の角度でまとめ直すと以下のようになる。図２２に、データ処理方法のパケット出力を行なうための手順を示す。
【０１６４】
上記データの処理手順は、データ処理装置の実施例として図９と連携したフローチャートを用いて既に詳細に説明済みである。ここで改めて整理すれば、データ処理方法は、まずデータを受信するとＳ７０１にて処理を開始する。Ｓ７０２にてデータパケットを生成して、生成したデータパケットをＳ７０３にて記憶手段に記憶して、Ｓ７０４にて終了する。
【０１６５】
また、データ要求信号を検出するとＳ７１０にて処理を開始する。Ｓ７１１にてデータ要求信号を検出した時刻と前回のデータ要求信号を検出した時刻から経過時間を計時する。Ｓ７１２にて経過時間が所定の条件を満たすか否かの判定を行う。
【０１６６】
Ｓ７１３にて、Ｓ７１２の判定結果を基に、記憶手段に記憶されていて以前に出力されたデータパケットを出力するか、もしくは、記憶手段に記憶されていて以前に出力していないデータパケットを出力するかの処理を行う。Ｓ７１４にて処理を終了する。
【０１６７】
図２３に、エラー信号の検出がある場合のデータ処理方法のパケット出力を行なうための手順を示す。上記データ処理手順は、データ処理装置の実施例として図９と連携したフローチャートを用いて、既に説明済みである。
【０１６８】
ここで改めて整理すれば、データ処理方法は、まずデータを受信するとＳ８０１にて処理を開始する。Ｓ８０２にてデータパケットを生成して、生成したデータパケットをＳ８０３にて記憶手段に記憶して、Ｓ８０４にて終了する。
【０１６９】
また、データ要求信号を検出するとＳ８１０にて処理を開始する。Ｓ８１１にてエラー信号が発生したかどうか、その有無を判定する。Ｓ８１２にてＳ８１１の判定結果を基に、記憶手段に記憶されていて以前に出力されたデータパケットを出力するか、もしくは、記憶手段に記憶されていて以前に出力していないデータパケットを出力するかの処理を行う。Ｓ８１３にて、データパケットを出力した時刻を記憶手段に記憶する。時刻はデータパケットに関連付けられて記憶される。Ｓ８１４にて処理を終了する。
【０１７０】
また、エラー信号を検出するとＳ８２０にて処理を開始する。Ｓ８２１にてエラー信号を検出した時刻を測定する。Ｓ８２２にて、エラー信号を検出した時刻から再送継続時間を減算し、破棄されたデータパケットを推定する。Ｓ８２３にて、Ｓ８２２で推定したデータパケットより古いデータパケットを再送対象外のパケットとして消去する。Ｓ８２４にて処理を終了する。その後、データ要求信号を検出すると、Ｓ８１０からＳ８１４までの処理に従い、データパケットを出力する。
【０１７１】
尚、記述した方法をプログラムでソフト化可能であり、それらを記録し、コンピュータで読取可能な媒体の形成も可能である。
【０１７２】
（１）  本発明の他の局面によれば、データ処理装置は、データをパケット化してデータパケットを生成するデータパケット生成手段と、
前記生成されたデータパケットを生成された順に記憶する記憶手段と、
データ要求信号を検出するデータ要求信号検出手段と、
データ要求信号の検出に応じて、前記記憶手段からデータパケットを生成された順に読出して出力するデータパケット出力手段と、
データ要求信号を検出してからの経過時間を計時する計時手段と、
前記計時手段により計時された経過時間が所定の条件を満たすか否かを判定する判定手段とを備え、
前記データパケット出力手段は、判定手段による判定結果に基づいて前記記憶手段に記憶されたデータパケットを読出す順を変更する。
【０１７３】
（２）  前記判定手段は、今回データ要求信号が検出された時刻と前回データ要求信号が検出された時刻との時間間隔が、所定の条件を満たすか否かを判定する。
【０１７４】
（３）  前記判定手段は、今回検出されたデータ要求信号と前回検出されたデータ要求信号との時間間隔を予め定められた所定の値と比較する比較手段を含む。
【０１７５】
（４）  前記記憶手段は、未だ出力されていないデータパケットを記憶する第１の記憶手段と、少なくとも１度は出力されたデータパケットを記憶する第２の記憶手段とを含み、
前記データパケット出力手段は、前記比較手段により時間間隔が前記所定の値よりも等しいかまたは大とされた場合に、前記第２の記憶手段に記憶されたデータパケットから読出して出力する。
【０１７６】
（５）  前記判定手段は、前記比較手段により時間間隔がそれまでに検出されたデータ要求信号の検出時刻に基づき定まる時間間隔と比較する比較手段を含む。
【０１７７】
（６）  前記記憶手段は、未だ出力されていないデータパケットを記憶する第１の記憶手段と、少なくとも１度は出力されたデータパケットを記憶する第２の記憶手段とを含み、
前記出力手段は、前記判定手段により時間間隔がそれまでに検出されたデータ要求信号の検出時刻に基づき定まる時間間隔よりも大とされた場合に、前記第２の記憶手段に記憶されたデータパケットから読出して出力する。
【０１７８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】データ伝送システムの構成図である。
【図２】第１の実施の形態に係るデータ処理装置の構成図である。
【図３】データ要求信号の発生する様子を描いた図である。
【図４】データ処理装置のバッファの動作を描いた図である。
【図５】第１のバッファと第２のバッファの実施例である。
【図６】一般的なリングバッファ方式のＦＩＦＯを示した図である。
【図７】拡張したリングバッファ方式のＦＩＦＯを示した図である。
【図８】変数名の説明と初期値を示した図である。
【図９】送信側通信装置のデータ処理装置の下位層（通信コントローラ）とのインタフェース処理手順を示した図である。
【図１０】第１の実施の形態に係る判断ルーチン処理手順を示した図である。
【図１１】拡張したリングバッファ方式のＦＩＦＯから読み出し処理手順を示した図である。
【図１２】図１１のステップＳ４０４で実行される処理Ａの流れを示す図である。
【図１３】図１１のステップＳ４０６または図１２のステップＳ４２４で実行される処理Ｂの流れを示す図である。
【図１４】図１１のステップＳ４０７または図１２のステップＳ４２２で実行される処理Ｃの流れを示す図である。
【図１５】送信側通信装置のデータ処理装置の上位層（アイソクロナスデータ生成装置）とのインタフェース処理手順を示した図である。
【図１６】通信コントローラの送信ブロックの構成を示した図である。
【図１７】第２の実施の形態に係るデータ処理装置の構成図である。
【図１８】第２の実施の形態に係る変数名の説明と初期値を示した図である。
【図１９】第２の実施の形態に係る破棄信号を検出した時の処理を示した図である。
【図２０】第２の実施の形態に係る判断ルーチン処理手順を示した図である。
【図２１】通信装置の構成図である。
【図２２】データ処理方法の手順を示した図である。
【図２３】エラー信号の検出がある場合のデータ処理方法の手順を示した図である。
【符号の説明】
１００  アイソクロナスデータ生成装置、１０１  送信側通信装置、１０２  データ処理装置、１０３、１２３  通信コントローラ、１０４、１２４  物理層、１１０  伝送路、１２０  アイソクロナスデータ再生装置、１２１  受信側通信装置、１２２  データ処理装置、２０１、４０１  アイソクロナスＩ／Ｆ部、２０２、４０２  データパケット生成部、２０３、４０３  第１のバッファ、２０４、４０４  第２のバッファ、２０５、４０６  記憶部、２０６、４０７  データパケット出力部、２０７、４０８  レジスタ、２０８、４０９  タイマー、２０９  計時部、２１０  比較部、２１１  判定部、２１２  データ要求信号検出部、３０１  データパケット入力部、３０２  内部メモリ、３０３  内部メモリ管理部、３０４  再送制御部、３０５  物理層Ｉ／Ｆ、３０６  データフレーム生成部、３０７  データ要求信号出力部、３０８  エラー信号出力部、３０９データフレーム送信部、４０５  転送時刻記憶部、４１０  破棄パケット推定部、４１１  再送対象外パケット消去部、４１２  決定部、４１３  エラー信号検出部、５０１  通信装置、５０２、５２２  データ処理手段、５２１  受信側通信装置。
【図１】
2004187010.tif 000003
【図２】
2004187010.tif 000004
【図３】
2004187010.tif 000005
【図４】
2004187010.tif 000006
【図５】
2004187010.tif 000007
【図６】
2004187010.tif 000008
【図７】
2004187010.tif 000009
【図８】
2004187010.tif 000010
【図９】
2004187010.tif 000011
【図１０】
2004187010.tif 000012
【図１１】
2004187010.tif 000013
【図１２】
2004187010.tif 000014
【図１３】
2004187010.tif 000015
【図１４】
2004187010.tif 000016
【図１５】
2004187010.tif 000017
【図１６】
2004187010.tif 000018
【図１７】
2004187010.tif 000019
【図１８】
2004187010.tif 000020
【図１９】
2004187010.tif 000021
【図２０】
2004187010.tif 000022
【図２１】
2004187010.tif 000023
【図２２】
2004187010.tif 000024
【図２３】
2004187010.tif 000025