(57)【要約】【課題】ＵＳＢインタフェースにおける本来の転送モードにかかわらず、データ転送の速度を向上することができるデータ転送装置を提供する。【解決手段】コンピュータ１は、バルクパケット生成部１２１と、アイソクロナスパケット送信部１３１とを備える。バルクパケット生成部１２１は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有するバルクパケット（又はコントロールパケット）を、第１のデータ領域に転送対象データを記述することにより生成する。アイソクロナスパケット送信部１３１は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個のバルクパケットを第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介して、携帯電話２にアイソクロナス転送する。【選択図】  図１
2006285378.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する第１の単位パケット処理部と、
ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する第１のアイソクロナスパケット処理部とを備える
ことを特徴とするデータ転送装置。
【請求項２】
ＵＳＢインタフェースを介してアイソクロナス転送されたＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の単位パケットを取り出す第２のアイソクロナスパケット処理部と、
ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットにおける前記第１のデータ領域から、転送対象データを取り出す第２の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
【請求項３】
第１のデータ転送装置と、第２のデータ転送装置と、これらの間を接続するＵＳＢインタフェースとからなるデータ転送装置であって、
前記第１のデータ転送装置は、更に、
ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する第１の単位パケット処理部と、
ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、前記ＵＳＢインタフェースを介して前記第２のデータ転送装置にアイソクロナス転送する第１のアイソクロナスパケット処理部とを備え、
前記第２のデータ転送装置は、更に、
前記ＵＳＢインタフェースを介して前記第１のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の前記単位パケットを取り出す第２のアイソクロナスパケット処理部と、
前記単位パケットにおける前記第１のデータ領域から転送対象データを取り出す第２の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
【請求項４】
前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第１エラーチェック領域を含み、
前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第２エラーチェック領域を含み、
前記第２の単位パケット処理部は、前記第１エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う
ことを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
前記第２の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成し、
前記第２のアイソクロナスパケット処理部は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記第２の単位パケット処理部により生成された単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する
ことを特徴とする請求項４に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置に関し、特に、ＵＳＢインタフェースにより接続して相互にデータ転送を行う例えばコンピュータと携帯電話のようなデータ転送装置に関する。
【背景技術】
【０００２】
ＵＳＢ（Universal Serial Bus）インタフェースは、コンピュータと種々の周辺機器との間の接続を１種類のインタフェースに統一できるので、多用されている。ＵＳＢインタフェースには、例えば、アイソクロナス転送、バルク転送、コントロール転送、インタラプト転送と言う転送モードがある。これらは、用途に応じて使い分けられている。例えば、アイソクロナス転送は、データエラー時の再送方法が無いために、１ビットのデータが欠けてもあまり影響の大きくない例えば音声データや動画データの転送に用いられる。バルク転送は、多くの周辺機器で用いられ、例えばディジタルカメラ、ＭＯ、ＣＤ−ＲＯＭ、プリンタ、スキャナ等における大量のデータ転送に用いられる。コントロール転送は、例えばマウスにおけるデータ転送に用いられる。
【０００３】
なお、ＵＳＢインタフェースのこれらの転送モードを、ホストコンピュータとディジタルカメラとの間で用途に応じて使い分ける技術が提案されている（特許文献１参照）。
【特許文献１】特開２００１−１７７７４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、ＵＳＢインタフェースにおいては、各々の各電子装置に対して１ｍｓ（ミリ秒）に１回づつデータ転送の機会が与えられる。しかし、１個のコンピュータに複数のＵＳＢインタフェースに従う電子装置（以下、ＵＳＢ機器）が接続された場合、１個のＵＳＢ機器の使用可能な帯域が減る。この結果、以下のような問題を生じる。
【０００５】
即ち、アイソクロナス転送は、音声データ等のリアルタイム性を保証するために高い優先度とされる。従って、アイソクロナス転送を行うＵＳＢ機器には、一定の周期で（例えば１ｍｓに１回）確実にデータ転送機会が与えられる。しかし、バルク転送やコントロール転送は、元々転送速度が保証されていない。従って、アイソクロナス転送を行うＵＳＢ機器が増えると、そのデータ転送が優先され、バルク転送やコントロール転送を行うＵＳＢ機器にはデータ転送の機会が与えられ難くなる。このため、バルク転送やコントロール転送を行うＵＳＢ機器において単位時間（例えば１ｍｓ）あたりに転送できるデータ量が減り、ＵＳＢインタフェースがデータ転送のボトルネックとなってしまう。
【０００６】
以上とは別に、バルク転送の１パケットあたりの転送量は６４バイトであり、１ｍｓに1回（１個のパケット）の転送機会が与えられたとすると、５１２ｋｂｐｓ（キロビット／秒）のデータ転送速度しか期待できない。逆に、これをＵＳＢインタフェースから見ると、定期的にデータ転送の機会を与えるにもかかわらず、極めて効率の悪いデータ転送に見える。又は、極めて効率の悪いデータ転送に対して、限られたデータ転送の機会を与えなければならない。コントロール転送も同様である。一方、バルク転送やコントロール転送を行うＵＳＢ機器における単位時間あたりのデータ転送量は、増える傾向にある。しかし、前述のように、多くの周辺機器がバルク転送を用いるので、この点からも、ＵＳＢインタフェースがデータ転送のボトルネックとなってしまう。
【０００７】
本発明は、ＵＳＢインタフェースにおける本来の転送モードにかかわらず、データ転送の速度を向上することができるデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のデータ転送装置は、第１の単位パケット処理部、第１のアイソクロナスパケット処理部を備える。第１の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する。第１のアイソクロナスパケット処理部は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する。
【０００９】
また、本発明のデータ転送装置は、第２のアイソクロナスパケット処理部、第２の単位パケット処理部を備える。第２のアイソクロナスパケット処理部は、ＵＳＢインタフェースを介してアイソクロナス転送されたＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の単位パケットを取り出す。第２の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットにおける前記第１のデータ領域から、転送対象データを取り出す。
【００１０】
また、本発明のデータ転送装置は、第１のデータ転送装置、第２のデータ転送装置、これらの間を接続するＵＳＢインタフェースからなる。前記第１のデータ転送装置は、更に、第１の単位パケット処理部、第１のアイソクロナスパケット処理部を備える。第１の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する。第１のアイソクロナスパケット処理部は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、前記ＵＳＢインタフェースを介して前記第２のデータ転送装置にアイソクロナス転送する。前記第２のデータ転送装置は、更に、第２のアイソクロナスパケット処理部、第２の単位パケット処理部を備える。第２のアイソクロナスパケット処理部は、前記ＵＳＢインタフェースを介して前記第１のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の前記単位パケットを取り出す。第２の単位パケット処理部は、前記単位パケットにおける前記第１のデータ領域から転送対象データを取り出す。
【００１１】
また、好ましくは、前記データ転送装置において、前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第１エラーチェック領域を含む。前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第２エラーチェック領域を含む。前記第２の単位パケット処理部は、前記第１エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う。
【００１２】
また、好ましくは、本発明のデータ転送装置において、前記第２の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成する。第２のアイソクロナスパケット処理部は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記第２の単位パケット処理部により生成された単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する。
【発明の効果】
【００１３】
本発明のデータ転送装置においては、アイソクロナスパケットのデータ領域に単位パケットを組み込み、アイソクロナス転送する。また、本発明のデータ転送装置においては、アイソクロナス転送されたアイソクロナスパケットを受信して、そのデータ領域に組み込まれた単位パケットを取り出し、単位パケットのデータ領域から転送対象データを取り出す。また、本発明のデータ転送装置においては、アイソクロナスパケットのデータ領域に単位パケットを組み込み、アイソクロナス転送する。その上で、このアイソクロナス転送されたアイソクロナスパケットを受信して、そのデータ領域に組み込まれた単位パケットを取り出し、単位パケットのデータ領域から転送対象データを取り出す。
【００１４】
以上のように、本発明のデータ転送装置は、本来はバルク転送やコントロール転送を行うＵＳＢ機器であっても、ＵＳＢインタフェースにおける本来の転送モードにかかわらず、バルク転送やコントロール転送に基づいたアイソクロナス転送を行う。アイソクロナス転送の優先度は高いので、アイソクロナス転送を行うＵＳＢ機器には、一定の周期でデータ転送機会が与えられる。これにより、アイソクロナス転送を行うＵＳＢ機器が増えて、バルク転送やコントロール転送を行うＵＳＢ機器にはデータ転送の機会が与えられ難くなった場合でも、一定の周期で（例えば１ｍｓに１回）確実にデータ転送の機会を得ることができる。これにより、データ転送速度をある程度保証することができる。
【００１５】
これに加えて、アイソクロナスパケットには複数個のバルク転送やコントロール転送のパケット（単位パケット）を組み込むことができる。従って、本来はバルク転送やコントロール転送を行うＵＳＢ機器でも、単位時間（例えば１ｍｓ）あたりに転送できるデータ量を増やすことができる。例えば、バルク転送に期待できるデータ転送速度は、前述のように、５１２ｋｂｐｓである。これに対して、本発明によれば、１個のアイソクロナスパケットあたりの転送量は１０２４バイトであり、１ｍｓに1回の転送機会が与えられたとすると、最大８Mｂｐｓ（メガビット／秒）のデータ転送速度が期待できる。従って、本来バルク転送やコントロール転送を行うＵＳＢ機器における単位時間（例えば１ｍｓ）あたりのデータ転送量が増えたとしても、十分にデータ転送を行うことができる。これにより、ある程度高速でのデータ転送を可能とすることができる。
【００１６】
好ましくは、前記データ転送装置において、単位パケットに含まれるエラーチェックのための情報を用いて、取り出した転送対象データのエラーチェックを行う。また、好ましくは、本発明のデータ転送装置において、エラーチェックの結果を記述した単位パケットをアイソクロナスパケットに組み込み、アイソクロナス転送する。
【００１７】
以上のように、本発明のデータ転送装置は、本来はデータエラーのチェック及び再送が行われないアイソクロナス転送において、本来のアイソクロナス転送に加えて、データエラーのチェックを行いその結果をアイソクロナス転送し（ハンドシェークして）、これに基づくエラーデータ（ロストデータ）の再送を可能とする。これにより、本来はバルク転送やコントロール転送を行うＵＳＢ機器が、前述のようにアイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができ、また、その結果に基づきエラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
【発明を実施するための最良の形態】
【００１８】
図１は、データ転送装置構成図であり、本発明のデータ転送装置の構成の一例を示す。この例では、本発明のデータ転送装置（データ転送システム）は、（パーソナル）コンピュータ１、携帯電話２、ＵＳＢインタフェース３からなる。
【００１９】
コンピュータ１は、上流側のデータ転送装置（ホスト）であり、第１のデータ転送装置である。携帯電話２は、下流側のデータ転送装置又は周辺機器（ターゲット）であり、第２のデータ転送装置である。ＵＳＢインタフェース（ＵＳＢバス）３は、これらの間を接続する周知の高速シリアルインタフェース（高速シリアルバス）である。
【００２０】
コンピュータ１は、ＣＰＵ（中央演算処理装置）又はハブであっても良い。携帯電話２は、本来はバルク転送を行うＵＳＢ機器であるディジタルカメラ、ＭＯ、ＣＤ−ＲＯＭ、プリンタ、スキャナ、ＭＯＤＥＭ、ハードディスク、フレキシブルディスク、（フラッシュ）メモリスティック等の各種のメディアカード等であっても良い。又は、携帯電話２は、本来はコントロール転送を行うＵＳＢ機器であるマウスであっても良い。ＵＳＢインタフェース３は、無線で接続されるものであっても良い。
【００２１】
コンピュータ１は、第１のデータ生成解析部１１、第１の単位パケット処理部であるバルクパケット処理部１２、第１のアイソクロナスパケット処理部１３を備える。データ生成解析部（又は、第１ＯＳ／ＡＰ）１１は、転送対象データを生成し又は保存し、第１のオペレーティングシステム（ＯＳ）１１１、第１のアプリケーションプログラム（以下、アプリケーション（ＡＰ））１１２からなる。第１のＯＳ１１１は、コンピュータ１のＯＳであり、当該コンピュータ１を制御する。第１のアプリケーション１１２は、種々のデータを処理するプログラムである。バルクパケット処理部１２は、バルクパケットを処理し、バルクパケット生成部１２１、バルクパケット取出部１２２からなる。アイソクロナスパケット処理部１３は、本発明に従ってバルクパケットを組み込んだアイソクロナスパケットを処理し、アイソクロナスパケット送信部１３１、アイソクロナスパケット受信部１３２からなる。
【００２２】
この例において、本発明に従ってアイソクロナスパケットに組み込まれる単位パケットは、ＵＳＢのバルク転送におけるバルクパケットからなる。単位パケットは、ＵＳＢのコントロール転送におけるコントロールパケットであっても良い。
【００２３】
図２（Ａ）は、バルクパケット及びアイソクロナスパケットの構成を示す。バルクパケットは、ＵＳＢのバルク転送におけるパケットであって、図２（A）に示すように、第１のデータ領域ＤＡＴＡ１を含む所定の構成を有する。アイソクロナスパケットは、ＵＳＢのアイソクロナス転送におけるパケットであって、図２（A）に示すように、第２のデータ領域ＤＡＴＡ２を含む所定の構成を有する。
【００２４】
バルクパケットは、第１のデータ領域ＤＡＴＡ１の前に、データ転送パターンＰＩＤ１、アドレスＡＤＤＲ、エンドポイントＥＮＤＰをこの順に含む。また、バルクパケットは、第１のデータ領域ＤＡＴＡ１の後に、当該バルクパケットのエラーチェックのための情報を記述する第１エラーチェック領域ＣＲＣ１を含む。なお、コントロールパケットもほぼ同様の構成である。
【００２５】
データ転送パターンＰＩＤ１は、１バイト（固定長）からなり、当該パケットのデータ転送パターン（モード）がコントロール転送であるかバルク転送であるかの区別を示す。コントロール転送の場合「00h 」とされ、バルク転送の場合「01h 」とされる。アドレスＡＤＤＲは、１バイト（固定長）からなり、当該バルクパケットのあて先（ＩＰアドレス）を示す。エンドポイントＥＮＤＰは、１バイト（固定長）からなり、当該バルクパケットのあて先（ＩＰアドレス及びポート番号）を示す。第１のデータ領域ＤＡＴＡ１は、０バイト〜６４バイト（可変長）からなり、当該バルクパケットのデータからなる。第１エラーチェック領域ＣＲＣ１は、２バイト（固定長）からなり、当該バルクパケットをＣＲＣによりチェックするためのデータからなる。
【００２６】
図２（Ｂ）は、具体的なバルクパケットの一例を示す。データ転送パターンＰＩＤ１は、バルク転送であるので「01h 」とされる。アドレスＡＤＤＲは、当該バルクパケットのあて先「０（即ち「00h 」）」を示す。エンドポイントＥＮＤＰは、当該バルクパケットのあて先「２（即ち「02h 」）」を示す。第１のデータ領域ＤＡＴＡ１は、送信すべき任意のデータからなる。第１エラーチェック領域ＣＲＣ１は、当該バルクパケットをＣＲＣによりチェックするためのデータ「xxxxh 」からなる。従って、このパケットは、アドレス「０」のエンドポイント「２」へバルク転送されるバルクパケットであるが、本発明に従って、当該アドレスの当該エンドポイントへアイソクロナス転送される。
【００２７】
また、図２（Ａ）に示すように、アイソクロナスパケットは、第２のデータ領域ＤＡＴＡ２の前に、同期フィールドＳＹＮＣ、パケット識別フィールドＰＩＤをこの順に含む。また、アイソクロナスパケットは、第２のデータ領域ＤＡＴＡ２の後に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第２エラーチェック領域ＣＲＣ２を含む。
【００２８】
同期フィールドＳＹＮＣは、アイソクロナス転送における同期を取るための領域であり、１バイト（固定長）からなり、固定の値「01h 」とされる。パケット識別フィールドＰＩＤは、１バイト（固定長）からなり、２個の値ＤＡＴＡ＃Ａ（例えば「０」）又はＤＡＴＡ＃Ｂ（例えば「１」）が交互に用いられる（これらのトグルデータである）。第２のデータ領域ＤＡＴＡ２は、０バイト〜１０２４バイト（可変長）からなり、当該アイソクロナスパケットのデータからなる。第２エラーチェック領域ＣＲＣ２は、２バイト（固定長）からなり、当該アイソクロナスパケットをＣＲＣによりチェックするためのデータからなる。
【００２９】
携帯電話２は、第２のデータ生成解析部２１、第２の単位パケット処理部であるバルクパケット処理部２２、第２のアイソクロナスパケット処理部２３を備えるコンピュータからなる。データ生成解析部（又は、第２ＯＳ／ＡＰ）２１は、第２のＯＳ２１１、第２のアプリケーション２１２からなる。第２のＯＳ２１１は、携帯電話２のＯＳであり、当該携帯電話２を制御する。第２のアプリケーション２１２は、種々のデータを処理するプログラムである。バルクパケット処理部２２は、バルクパケット生成部２２１、バルクパケット取出部２２２からなる。アイソクロナスパケット処理部２３は、アイソクロナスパケット送信部２３１、アイソクロナスパケット受信部２３２からなる。
【００３０】
携帯電話２は、コンピュータ１と類似の構成を備える。即ち、第２のアプリケーション２１２が例えば電子メールアドレスや電話番号の管理プログラムからなる場合、第１のアプリケーション１１２も電子メールアドレスや電話番号の管理プログラムからなる。これにより、第１のアプリケーション１１２と第２のアプリケーション２１２との間で、本発明のアイソクロナス転送による高速でのデータ転送が行われる。
【００３１】
即ち、第１のアプリケーション１１２は、転送対象（又は、送信すべき）のデータを作成して、例えばバルクパケットの第１データ領域ＤＡＴＡ１の大きさ（データ長即ち６４バイト）を単位として、バルクパケット生成部１２１に送る。また、第１のアプリケーション１１２は、取り出された転送対象の（又は、受信した）データを、バルクパケット取出部１２２から送られ、これを受け取る。第１のアプリケーション１１２は、受け取った転送対象データに基づいて所定の処理、例えばデータの保存、書換え、解析等を行う。これにより、データ転送の依頼元であるアプリケーション１１２等は、その負担無しで、かつ、アイソクロナス転送を意識することなく、アイソクロナス転送を用いることができる。また、ＵＳＢインタフェース３又はその転送モードの規格の変更の必要無しで、アプリケーション１１２等は、アイソクロナス転送を用いることができる。
【００３２】
転送対象データがバルクパケットの第１データ領域の大きさ（６４バイト）より大きい場合、第１のアプリケーション１１２は、転送対象データを複数のブロックに分割し、各々のブロックを転送対象データとして、その順にバルクパケット生成部１２１に送る。１個のブロックの大きさは、第１データ領域ＤＡＴＡ１の大きさを上限とする。バルクパケット取出部１２２も同様である。
【００３３】
第２のアプリケーション２１２も、第１のアプリケーション１１２と同様の処理を行う。通常、第１のＯＳ１１１がバルク転送及びコントロール転送を行うことは無いが、第１のＯＳ１１１がバルク転送及びコントロール転送を行うようにしても良い。第２のＯＳ２１１も同様である。
【００３４】
バルクパケット処理部１２及びアイソクロナスパケット処理部１３は、各々、バルクパケット処理部２２及びアイソクロナスパケット処理部２３と同一の構成を有する。従って、以下の説明において、バルクパケット処理部２２及びアイソクロナスパケット処理部２３についての詳細な説明は省略する。
【００３５】
バルクパケット生成部１２１は、バルクパケットを、第１のデータ領域ＤＡＴＡ１に転送対象の（送信すべき）データを記述することにより生成する。第１のデータ領域ＤＡＴＡ１が最大６４バイトであるので、バルクパケット生成部１２１は、６４バイトを基本単位として、必要な個数のバルクパケットを当該データの順に生成する。この時、バルクパケット生成部１２１は、各々のバルクパケット毎に、前述の各領域のデータを設定すると共に、第１のデータ領域ＤＡＴＡ１の内容に基づいてＣＲＣ情報（後述する）を生成して第１エラーチェック領域ＣＲＣ１に組み込む。バルクパケット生成部１２１は、生成したバルクパケットをアイソクロナスパケット送信部１３１に送る。
【００３６】
アイソクロナスパケット送信部１３１は、アイソクロナスパケットを生成し、ＵＳＢインタフェース３を介して、携帯電話２（のアイソクロナスパケット受信部２３２）にアイソクロナス転送する。アイソクロナスパケットは、少なくとも１個のバルクパケットを第２のデータ領域ＤＡＴＡ２に当該バルクパケットの順に組み込むことにより生成される。アイソクロナスパケットに組み込まれる複数のバルクパケットは、そのアドレスＡＤＤＲ及びエンドポイントＥＮＤＰが同一である。即ち、同一のＵＳＢ機器の同一のポートにアイソクロナス転送される。
【００３７】
第１のデータ領域ＤＡＴＡ１が最大６４バイトであり、第２のデータ領域ＤＡＴＡ２が１０２４バイトであるから、アイソクロナスパケットには約１５個のバルクパケットを組み込むことができる。組み込み可能なバルクパケットの数は、各々のバルクパケットの第１のデータ領域ＤＡＴＡ１の長さに依存する。生成されたバルクパケットの個数が１個のアイソクロナスパケットに組み込めない程多い場合、必要な個数のアイソクロナスパケットが生成される。
【００３８】
アイソクロナスパケット受信部１３２は、ＵＳＢインタフェース３を介して、アイソクロナス転送されたアイソクロナスパケットを受信して、第２のデータ領域ＤＡＴＡ２に組み込まれた少なくとも１個のバルクパケットを取り出す。アイソクロナスパケットは前述のような構成を有するので、バルクパケットを区別することができる。バルクパケットが複数ある場合、その順に取り出される。アイソクロナスパケット受信部１３２は、取り出したバルクパケットをバルクパケット取出部１２２に送る。
【００３９】
なお、バルクパケットのバルクパケット取出部１２２への送信に先立って、アイソクロナスパケット受信部１３２が、第２エラーチェック領域ＣＲＣの情報を用いて、ＣＲＣにより当該第２のデータ領域ＤＡＴＡ２のエラーチェックを行うようにしても良い。このエラーチェックの結果、エラーが検出された場合、アイソクロナスパケット受信部１３２が、アイソクロナスパケット送信部（２３１）に当該アイソクロナスパケットを再送させるようにしても良い。
【００４０】
バルクパケット取出部１２２は、バルクパケットにおける第１のデータ領域ＤＡＴＡ１から、転送対象の（受信した）データを取り出す。バルクパケットが複数ある場合、その各々から、その順に転送対象データが取り出される。バルクパケットは前述のような構成を有するので、相互にかつ転送対象データを区別することができる。これにより、元の転送対象データが得られる。バルクパケット取出部１２２は、取り出した転送対象のデータを第１のアプリケーション１１２に送る。
【００４１】
以上のように、本来はバルク転送を行うＵＳＢ機器（例えば携帯電話２）でも、本来の転送モードにかかわらず、バルク転送に基づいたアイソクロナス転送を行うことができる。これにより、携帯電話２は、一定の周期で（例えば１ｍｓに１回）確実にデータ転送の機会を得ることができるので、携帯電話２のデータ転送速度をある程度保証することができる。これに加えて、アイソクロナスパケットには複数個のバルクパケットを組み込むことができる。これにより、携帯電話２は、単位時間（例えば１ｍｓ）あたりに転送できるデータ量を、前述のように、例えば５１２ｋｂｐｓから最大８Mｂｐｓまで増やすことができ、ある程度高速でのデータ転送を可能とすることができる。
【００４２】
転送対象データ（受信データ）の第１のアプリケーション１１２への送信に先立って、バルクパケット取出部１２２は、取り出された転送対象データにおける第１エラーチェック領域ＣＲＣ１の情報を用いて、当該取り出した転送対象データのエラーチェックを行う。この例では、エラーチェックは、例えばＣＲＣ（Cyclic Redundancy Check）により行われる。従って、第１エラーチェック領域ＣＲＣ１の情報は、周知のＣＲＣのための情報（ＣＲＣ情報）である。バルクパケット取出部１２２は、エラーチェックの結果をバルクパケット生成部１２１に送る。
【００４３】
エラーチェックの結果に基づいて、バルクパケット生成部１２１は、ハンドシェーク用のバルクパケットを生成する。ハンドシェーク用のバルクパケットは、エラーチェックの結果を通知するためのバルクパケットであり、第１のデータ領域ＤＡＴＡ１に転送対象データとしてエラーチェックの結果を記述することにより生成される。
【００４４】
エラーチェックの結果は、例えば、エラーを検出しなかった場合「00h 」とされ、エラーを検出した場合「FFh 」と記述される。「00h 」はＡＣＫ（正常受信の通知）を示すものとされ、「FFh 」はＮＡＫ（異常受信の通知）を示すものとされる。
【００４５】
アイソクロナスパケット送信部１３１は、ハンドシェーク用のアイソクロナスパケットを生成し、ＵＳＢインタフェース３を介して、アイソクロナス転送する。ハンドシェーク用のアイソクロナスパケットは、エラーチェックの結果を通知するためのアイソクロナスパケットであり、バルクパケット生成部１２１により生成された少なくとも１個のハンドシェーク用のバルクパケットを、第２のデータ領域ＤＡＴＡ２に組み込むことにより生成される。これにより、本来はデータエラーのチェックが行われないアイソクロナス転送において、本来のアイソクロナス転送の後に、データエラーのチェックを行いその結果をアイソクロナス転送する（ハンドシェークする）ことができる。従って、本来はバルク転送を行うＵＳＢ機器（例えば、携帯電話２）が、アイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができる。
【００４６】
図３（Ａ）は、ハンドシェーク用のバルクパケット及びアイソクロナスパケットの構成を示す。これらは、基本的には、図２（A）に示すバルクパケット及びアイソクロナスパケットと同様の構成を有する。
【００４７】
但し、ハンドシェーク用のバルクパケットは、本来の転送モードにおいては不要なものであるので、本来のバルクパケットと同様の構成としてバルクパケット処理部１２の負担を軽減し、かつ、一部の領域の意味を変更している。即ち、データ転送パターンＰＩＤ１、アドレスＡＤＤＲ及びエンドポイントＥＮＤＰにより、当該アドレスの当該エンドポイントに当該転送モードで転送した（例えばバルク転送した）データについて、エラーチェックの結果を通知することを示す。ハンドシェーク用のバルクパケットは、エラーチェックの結果を通知するのみであるので、第１のデータ領域ＤＡＴＡ１は固定長の小さい領域とされる。即ち、第１のデータ領域ＤＡＴＡ１は２バイト（固定長）からなる。
【００４８】
図３（Ｂ）は、具体的なハンドシェーク用のバルクパケットの一例を示す。例えば、図２（Ｂ）に示すバルクパケットが正常に受信された場合、そのハンドシェーク用のバルクパケットは、以下のようになる。即ち、アドレス「０」のエンドポイント「２」へバルク転送されたパケットが正常であったので、データ転送パターンＰＩＤ１はバルク転送を示す「01h 」とされ、アドレスＡＤＤＲは「０（即ち「00h 」）」とされ、エンドポイントＥＮＤＰは「２（即ち「02h 」）」とされ、第１のデータ領域ＤＡＴＡ１はＡＣＫ（正常受信の通知）を示す「00h 」とされる。
【００４９】
アイソクロナスパケット受信部１３２は、アイソクロナス転送されたハンドシェーク用のアイソクロナスパケットを受信して、第２のデータ領域ＤＡＴＡ２に組み込まれた少なくとも１個のハンドシェーク用のバルクパケットを取り出す。バルクパケット取出部１２２は、アイソクロナスパケット受信部１３２で取り出されたハンドシェーク用のバルクパケットの第１のデータ領域ＤＡＴＡ１から、エラーチェックの結果を取り出し、これをバルクパケット生成部１２１に送る。これに応じて、バルクパケット生成部１２１は、エラーチェックの結果においてエラーとされたバルクパケットを、再度、アイソクロナスパケット送信部１３１に送る。
【００５０】
アイソクロナスパケット送信部１３１は、バルクパケット生成部１２１から再度送られたバルクパケットを第２のデータ領域ＤＡＴＡ２に組み込むことにより、アイソクロナスパケットを生成し、ＵＳＢインタフェース３を介して、先のアイソクロナス転送先と同一の転送先（即ち、同一のアドレス及びエンドポイント、例えば携帯電話２）へアイソクロナス転送する。これにより、本来はエラーデータの再送が行われないアイソクロナス転送において、本来のアイソクロナス転送の後に、データエラーのチェックに基づいてエラーデータを再送することができる。従って、本来はバルク転送を行うＵＳＢ機器（例えば携帯電話２）が、アイソクロナス転送を利用しつつ、本来の転送モードと同様に、エラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
【００５１】
図４乃至図６は、データ転送処理フローであり、本発明のデータ転送装置におけるデータ転送処理の一例を示す。図４乃至図６は、コンピュータ１から携帯電話２に対して、データを転送する（ダウンロードする）場合について示し、特に、図４はコンピュータ１から携帯電話２のアイソクロナス転送処理を示し、図５はエラーが発見された場合の処理を示し、図６はエラーが発見されなかった場合の処理を示す。なお、図４乃至図６において、データの双方向への流れを示すので、バルクパケット処理部（１２、２２）及びアイソクロナスパケット処理部（１３、２３）として示す。
【００５２】
図４において、コンピュータ１の第１のアプリケーション１１２が転送対象データを作成して、携帯電話２のアドレスＡＤＤＲ及びエンドポイントＥＮＤＰと共に、バルクパケット生成部１２１に送る（＃１１）。携帯電話２のアドレスＡＤＤＲ及びエンドポイントＥＮＤＰは、第１のアプリケーション１１２により予め保持される。このバルクパケットを受信したバルクパケット生成部１２１が、前記アドレスＡＤＤＲ及びエンドポイントＥＮＤＰを用い、第１のデータ領域（バルクデータ部）ＤＡＴＡ１に転送対象データを記述し、この記述に基づいてエラーチェックのための情報を作成して第１エラーチェック領域ＣＲＣ１に記述することにより、バルクパケット（バルク転送パケットとも言う）を生成して（＃１２）、アイソクロナスパケット送信部１３１に送る（＃１３）。データ転送パターンＰＩＤ１はバルク転送を示す値とされる。バルクパケットは、ハンドシェークのため及び再送のため、所定の十分な期間だけ（例えば、次のアイソクロナス転送を受信するまで）、バルクパケット生成部１２１に保持される。これを受信したアイソクロナスパケット送信部１３１が、アイソクロナスパケットの第２のデータ領域（アイソクロナスデータ部）ＤＡＴＡ２の先頭から順にバルクパケットを組み込む（＃１４）。
【００５３】
処理＃１１乃至処理＃１４は複数回（ｎ回）繰り返され、複数個（ｎ個）のバルクパケットがアイソクロナスパケットに組み込まれる。アイソクロナスパケットの第２のデータ領域ＤＡＴＡ２に空きが無くなると（＃１５）、アイソクロナスパケット送信部１３１が、作成したアイソクロナスパケットを、ＵＳＢインタフェース３を介して、携帯電話２のアイソクロナスパケット受信部２３２にアイソクロナス転送する（＃１６）。なお、アイソクロナス転送のタイミングになると、その時点でバルクパケットの組み込みを中断して、アイソクロナス転送が行われるようにしても良い。また、アドレスＡＤＤＲ及びエンドポイントＥＮＤＰのいずれかが異なるバルクパケットを受信した時点で、それ以前に受信したバルクパケットをアイソクロナス転送するようにしても良い。
【００５４】
携帯電話２のアイソクロナスパケット受信部２３２は、当該携帯電話２に送信されたアイソクロナスパケットを受信して、第２のデータ領域ＤＡＴＡ２に組み込まれたｎ個のバルクパケットを取り出し（＃１７）、バルクパケット取出部２２２に送る（＃１８）。バルクパケット取出部２２２は、第２のアプリケーション２１２に送る前に、ｎ個のバルクパケットの各々について、当該第１のデータ領域ＤＡＴＡ１から転送対象データを取り出し、当該第１エラーチェック領域ＣＲＣ１の情報を用いてＣＲＣによるエラーチェックを行う（＃１９）。
【００５５】
図５において、バルクパケット取出部２２２は、エラーチェックの結果エラーを検出した場合、これをバルクパケット生成部２２１に送る。バルクパケット生成部２２１は、保持していたアドレスＡＤＤＲ及びエンドポイントＥＮＤＰを用いると共に、その旨（ＮＡＫ）を第１のデータ領域ＤＡＴＡ１に記述することにより、ハンドシェーク用のバルクパケットを生成し（＃２１）、アイソクロナスパケット送信部２３１に送る（＃２２）。これを受信したアイソクロナスパケット送信部２３１は、アイソクロナスパケットの第２のデータ領域ＤＡＴＡ２の先頭から順にハンドシェーク用のバルクパケットを組み込む（＃２３）。
【００５６】
処理＃２１乃至処理＃２３は、例えばエラーであったバルクパケットの数（ｘ個）だけ繰り返され、当該ｘ個のバルクパケットについての応答であるｘ個のハンドシェーク用のバルクパケットがアイソクロナスパケットに組み込まれる。この後、アイソクロナスパケット送信部２３１は、作成したハンドシェーク用のアイソクロナスパケットを、ＵＳＢインタフェース３を介して、コンピュータ１のアイソクロナスパケット受信部１３２にアイソクロナス転送する（＃２４）。
【００５７】
これを受信したアイソクロナスパケット受信部１３２は、受信したハンドシェーク用のアイソクロナスパケットの第２のデータ領域ＤＡＴＡ２に組み込まれたｘ個のハンドシェーク用のバルクパケットを取り出し（＃２５）、バルクパケット取出部１２２に送る（＃２６）。バルクパケット取出部１２２は、ｘ個のハンドシェーク用のバルクパケットの各々について、当該第１のデータ領域ＤＡＴＡ１からエラーチェックの結果（ＮＡＫ）を取り出し、どのアドレスのどのエンドポイントにバルク転送したどのバルクパケットがエラーであったかを知る（＃２７）。バルクパケット取出部１２２は、この結果をバルクパケット生成部１２１に送る。
【００５８】
これにより、コンピュータ１は、図５及び図４の符号（ａ）に示すように、保持している転送対象データを用いて、図４の処理＃１２乃至＃１６を再度実行することにより、エラーチェックの結果においてエラーとされたｘ個のバルクパケットを、再度携帯電話２にアイソクロナス転送する。これに応じて、携帯電話２は、図４の処理＃１７乃至＃１９を再度実行することにより、アイソクロナス転送された前記ｘ個のバルクパケットを得る。これにより、先のアイソクロナス転送においてエラーとされたｘ個のバルクパケットを、次のコンピュータ１からのアイソクロナス転送の機会に再送することができる。
【００５９】
なお、図５の場合、エラーとされたｘ個のバルクパケットが、先のアイソクロナスパケットにおける何番目のものであるかを示す必要がある。このために、例えば第１のデータ領域ＤＡＴＡ１において、異常受信の記述「ＮＡＫ」に続けて（又は、先立って）、当該何番目であるかを記述するようにすれば良い。前述のように、組み込まれるバルクパケットの最大個数は１５個であるので、１バイトで表示することができる。従って、この分ハンドシェーク用のバルクパケットが大きくなる。これは、以下の図６の場合においても、同様である。
【００６０】
図６において、バルクパケット取出部２２２は、エラーチェックの結果エラーでなかったバルクパケット（ｙ個）を、第２のアプリケーション２１２に送る（＃３１）。この後、バルクパケット取出部２２２は、エラーチェックの結果エラーを検出しなかった場合、これをバルクパケット生成部２２１に送る。バルクパケット生成部２２１は、保持していたアドレスＡＤＤＲ及びエンドポイントＥＮＤＰを用いると共に、その旨（ＡＣＫ）を第１のデータ領域ＤＡＴＡ１に記述することにより、ハンドシェーク用のバルクパケットを生成し（＃３２）、アイソクロナスパケット送信部２３１に送る（＃３３）。これを受信したアイソクロナスパケット送信部２３１は、アイソクロナスパケットの第２のデータ領域ＤＡＴＡ２の先頭から順にハンドシェーク用のバルクパケットを組み込む（＃３４）。
【００６１】
処理＃３１乃至処理＃３３は、例えばエラーでなかったバルクパケットの数（ｙ個）だけ繰り返され、当該ｙ個のバルクパケットについての応答であるｙ個のハンドシェーク用のバルクパケットがアイソクロナスパケットに組み込まれる。この後、アイソクロナスパケット送信部２３１は、作成したハンドシェーク用のアイソクロナスパケットを、ＵＳＢインタフェース３を介して、コンピュータ１のアイソクロナスパケット受信部１３２にアイソクロナス転送する（＃３５）。
【００６２】
これを受信したアイソクロナスパケット受信部１３２は、受信したハンドシェーク用のアイソクロナスパケットの第２のデータ領域ＤＡＴＡ２に組み込まれたｙ個のハンドシェーク用のバルクパケットを取り出し（＃３６）、バルクパケット取出部１２２に送る（＃３７）。バルクパケット取出部１２２は、ｙ個のハンドシェーク用のバルクパケットの各々について、当該第１のデータ領域ＤＡＴＡ１からエラーチェックの結果（ＡCＫ）を取り出し、どのアドレスのどのエンドポイントにバルク転送したどのバルクパケットがエラーでなかったかを知り（＃３８）、処理を終了する。これにより、アイソクロナス転送したバルクパケットのデータの信頼性を保証することができる。
【００６３】
なお、実際は、図４乃至図６の処理フローは一連の処理を示す。即ち、図４の処理フローのみを実行するようにしても良いが、図４の処理フローに連続して図５及び図６の処理フローを実行することが望ましい。図５及び図６の処理フローは、実際は、混然一体となって実行される。
【００６４】
例えば、同一のアイソクロナスパケットに組み込まれた１番目及び２番目のバルクパケットがエラーでない場合及びエラーである場合、ハンドシェーク用のアイソクロナスパケットにおけるハンドシェーク用の１番目及び２番目のバルクパケットが、各々、ＡＣＫ及びＮＡKを含むようにされる。これにより、同一のアイソクロナスパケットに組み込まれた複数のバルクパケットの各々について、それに対応する順でエラーチェックの結果（ＡＣＫ又はＮＡK）を記述した複数のバルクパケットを、アイソクロナス転送により得ることができる。従って、エラーデータの検出を早期に知ることができ、これに基づいて早期にエラーデータを再送することができる。
【００６５】
また、この後のエラーデータであるバルクパケットの再送も、同様に行われる。例えば、同一のアイソクロナスパケットに組み込まれた１番目及び２番目のバルクパケットがエラーでない場合及びエラーである場合、再送用のアイソクロナスパケットにおける１番目のバルクパケットの第１データ領域ＤＡＴＡ１は「空（１バイト又は２バイト）」とされ、２１番目のバルクパケットの第１データ領域ＤＡＴＡ１は先の内容と同一とされる。これにより、早期にエラーデータを再送することができる。
【００６６】
なお、図４の処理フローに連続して図５又は図６の処理フローのいずれか一方を実行するようにしても良い。例えば、図４の処理フローに連続して図５の処理フローを実行し、図６の処理フローを実行しないようにしても良い。この場合、図５の処理によりエラーチェックの結果としてＮＡＫを通知されなかったバルクパケットについては、エラーが検出されなかったことにすれば良い。逆に、図４の処理フローに連続して図６の処理フローを実行し、図５の処理フローを実行しないようにしても良い。また、１個のアイソクロナスパケット内の全てのバルクパケットにエラーが無い場合にハンドシェーク用のアイソクロナスパケットを送信することを止め、その他の場合にはハンドシェーク用のアイソクロナスパケットを送信するようにしても良い。
【００６７】
更に、図４乃至図６の処理フローは、コンピュータ１から携帯電話２へデータを送信（アイソクロナス転送）する例であるが、逆に、携帯電話２からコンピュータ１にデータを送信（アイソクロナス転送）する場合でも同様である。また、図４乃至図６の処理フローは、バルクパケットを送信（アイソクロナス転送）する例であるが、コントロールパケットを送信（アイソクロナス転送）する場合でも同様である。
【００６８】
以上の説明から理解されるように、本発明によれば、以下のような実施の態様が把握される。
【００６９】
（付記１）ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する第１の単位パケット処理部と、
ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する第１のアイソクロナスパケット処理部とを備える
ことを特徴とするデータ転送装置。
【００７０】
（付記２）ＵＳＢインタフェースを介してアイソクロナス転送されたＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の単位パケットを取り出す第２のアイソクロナスパケット処理部と、
ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットにおける前記第１のデータ領域から、転送対象データを取り出す第２の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
【００７１】
（付記３）第１のデータ転送装置と、第２のデータ転送装置と、これらの間を接続するＵＳＢインタフェースとからなるデータ転送装置であって、
前記第１のデータ転送装置は、更に、
ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データを記述することにより生成する第１の単位パケット処理部と、
ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記単位パケットを前記第２のデータ領域に組み込むことにより生成し、前記ＵＳＢインタフェースを介して前記第２のデータ転送装置にアイソクロナス転送する第１のアイソクロナスパケット処理部とを備え、
前記第２のデータ転送装置は、更に、
前記ＵＳＢインタフェースを介して前記第１のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の前記単位パケットを取り出す第２のアイソクロナスパケット処理部と、
前記単位パケットにおける前記第１のデータ領域から転送対象データを取り出す第２の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
【００７２】
（付記４）前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第１エラーチェック領域を含み、
前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第２エラーチェック領域を含み、
前記第２の単位パケット処理部は、前記第１エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う
ことを特徴とする付記３に記載のデータ転送装置。
【００７３】
（付記５）前記第２の単位パケット処理部は、ＵＳＢのパケットであって、第１のデータ領域を含む所定の構成を有する単位パケットを、前記第１のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成し、
前記第２のアイソクロナスパケット処理部は、ＵＳＢのアイソクロナス転送におけるパケットであって、第２のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも１個の前記第２の単位パケット処理部により生成された単位パケットを前記第２のデータ領域に組み込むことにより生成し、ＵＳＢインタフェースを介してアイソクロナス転送する
ことを特徴とする付記４に記載のデータ転送装置。
【００７４】
（付記６）前記第１のアイソクロナスパケット処理部は、前記第２のアイソクロナスパケット処理部からアイソクロナス転送されたアイソクロナスパケットを受信して、前記第２のデータ領域に組み込まれた少なくとも１個の前記単位パケットを取り出し、
前記第１の単位パケット処理部は、前記第１のアイソクロナスパケット処理部で取り出された前記単位パケットの前記第１のデータ領域から、前記エラーチェックの結果を取り出し、前記エラーチェックの結果においてエラーとされた単位パケットを再度前記第１のアイソクロナスパケット処理部に送り、
前記第１のアイソクロナスパケット処理部は、前記第１の単位パケット処理部から再度送られた単位パケットを第２のデータ領域に組み込むことによりアイソクロナスパケットを生成し、ＵＳＢインタフェースを介して前記第２のデータ転送装置にアイソクロナス転送する
ことを特徴とする付記５に記載のデータ転送装置。
【００７５】
（付記７）前記単位パケットは、ＵＳＢのバルク転送におけるバルクパケット、又は、ＵＳＢのコントロール転送におけるコントロールパケットである
ことを特徴とする付記１乃至付記３のいずれかに記載のデータ転送装置。
【００７６】
（付記８）前記第１のデータ転送装置は、更に、第１のオペレーティングシステム又は第１のアプリケーションを備え、
前記第２のデータ転送装置は、更に、第２のオペレーティングシステム又は第２のアプリケーションを備え、
前記転送対象データは、前記単位パケットの第１データ領域の大きさを単位として、前記第１のオペレーティングシステム又は第１のアプリケーションから前記第１の単位パケット処理部に送られ、
取り出された前記転送対象データは、前記第２の単位パケット処理部から前記第２のオペレーティングシステム又は第２のアプリケーションに送られる
ことを特徴とする付記６に記載のデータ転送装置。
【００７７】
（付記９）前記単位パケットは、更に、データ転送パターン、アドレス、エンドポイントを含む
ことを特徴とする付記１乃至付記３のいずれかに記載のデータ転送装置。
【００７８】
（付記１０）前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第１エラーチェック領域を含む
ことを特徴とする付記１又は付記２記載のデータ転送装置。
【００７９】
（付記１１）前記アイソクロナスパケットは、更に、同期フィールド、パケット識別フィールドを含む
ことを特徴とする付記１乃至付記３のいずれかに記載のデータ転送装置。
【００８０】
（付記１２）前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第２エラーチェック領域を含む
ことを特徴とする付記１又は付記２記載のデータ転送装置。
【産業上の利用可能性】
【００８１】
以上説明したように、本発明によれば、データ転送装置において、ＵＳＢインタフェースにおける本来の転送モードにかかわらず、バルク転送やコントロール転送に基づいたアイソクロナス転送を行う。これにより、一定の周期で確実にデータ転送の機会を得ることができ、かつ、転送できるデータ量を増やすことができる。従って、ある程度高速でのデータ転送速度を保証し、ＵＳＢインタフェースがデータ転送のボトルネックとなることを防止することができる。
【００８２】
また、本発明によれば、データ転送装置において、アイソクロナス転送においてデータエラーのチェック及び結果の通知を行う。これにより、前述のようにアイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができ、また、その結果に基づきエラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
【００８３】
また、本発明によれば、データ転送装置において、データ転送の依頼元であるアプリケーション等の負担無しで、かつ、ＵＳＢインタフェース又はその転送モードの規格変更無しで、前述のような、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
【図面の簡単な説明】
【００８４】
【図１】本発明のデータ転送装置の構成を示す構成図である。
【図２】本発明のデータ転送処理説明図である。
【図３】本発明のデータ転送処理説明図である。
【図４】本発明のデータ転送処理フローである。
【図５】本発明のデータ転送処理フローである。
【図６】本発明のデータ転送処理フローである。
【符号の説明】
【００８５】
１  コンピュータ（第１のデータ転送装置）
２  携帯電話（第２のデータ転送装置）
３  ＵＳＢインタフェース
１１、２１  データ生成解析部
１２、２２  バルクパケット処理部
１３、２３  アイソクロナスパケット処理部
１２１、２２１  バルクパケット生成部
１２２、２２２  バルクパケット取出部
１３１、２３１  アイソクロナスパケット送信部
１３２、２３２  アイソクロナスパケット受信部
【図１】
2006285378.tif 000003
【図２】
2006285378.tif 000004
【図３】
2006285378.tif 000005
【図４】
2006285378.tif 000006
【図５】
2006285378.tif 000007
【図６】
2006285378.tif 000008