JP4541949B2 - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
JP4541949B2
JP4541949B2 JP2005101185A JP2005101185A JP4541949B2 JP 4541949 B2 JP4541949 B2 JP 4541949B2 JP 2005101185 A JP2005101185 A JP 2005101185A JP 2005101185 A JP2005101185 A JP 2005101185A JP 4541949 B2 JP4541949 B2 JP 4541949B2
Authority
JP
Japan
Prior art keywords
packet
data
bulk
isochronous
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005101185A
Other languages
English (en)
Other versions
JP2006285378A (ja
Inventor
嘉宏 高松屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005101185A priority Critical patent/JP4541949B2/ja
Priority to US11/191,086 priority patent/US7447976B2/en
Publication of JP2006285378A publication Critical patent/JP2006285378A/ja
Application granted granted Critical
Publication of JP4541949B2 publication Critical patent/JP4541949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、データ転送装置に関し、特に、USBインタフェースにより接続して相互にデータ転送を行う例えばコンピュータと携帯電話のようなデータ転送装置に関する。
USB(Universal Serial Bus)インタフェースは、コンピュータと種々の周辺機器との間の接続を1種類のインタフェースに統一できるので、多用されている。USBインタフェースには、例えば、アイソクロナス転送、バルク転送、コントロール転送、インタラプト転送と言う転送モードがある。これらは、用途に応じて使い分けられている。例えば、アイソクロナス転送は、データエラー時の再送方法が無いために、1ビットのデータが欠けてもあまり影響の大きくない例えば音声データや動画データの転送に用いられる。バルク転送は、多くの周辺機器で用いられ、例えばディジタルカメラ、MO、CD−ROM、プリンタ、スキャナ等における大量のデータ転送に用いられる。コントロール転送は、例えばマウスにおけるデータ転送に用いられる。
なお、USBインタフェースのこれらの転送モードを、ホストコンピュータとディジタルカメラとの間で用途に応じて使い分ける技術が提案されている(特許文献1参照)。
特開2001−177746号公報
一般に、USBインタフェースにおいては、各々の各電子装置に対して1ms(ミリ秒)に1回づつデータ転送の機会が与えられる。しかし、1個のコンピュータに複数のUSBインタフェースに従う電子装置(以下、USB機器)が接続された場合、1個のUSB機器の使用可能な帯域が減る。この結果、以下のような問題を生じる。
即ち、アイソクロナス転送は、音声データ等のリアルタイム性を保証するために高い優先度とされる。従って、アイソクロナス転送を行うUSB機器には、一定の周期で(例えば1msに1回)確実にデータ転送機会が与えられる。しかし、バルク転送やコントロール転送は、元々転送速度が保証されていない。従って、アイソクロナス転送を行うUSB機器が増えると、そのデータ転送が優先され、バルク転送やコントロール転送を行うUSB機器にはデータ転送の機会が与えられ難くなる。このため、バルク転送やコントロール転送を行うUSB機器において単位時間(例えば1ms)あたりに転送できるデータ量が減り、USBインタフェースがデータ転送のボトルネックとなってしまう。
以上とは別に、バルク転送の1パケットあたりの転送量は64バイトであり、1msに1回(1個のパケット)の転送機会が与えられたとすると、512kbps(キロビット/秒)のデータ転送速度しか期待できない。逆に、これをUSBインタフェースから見ると、定期的にデータ転送の機会を与えるにもかかわらず、極めて効率の悪いデータ転送に見える。又は、極めて効率の悪いデータ転送に対して、限られたデータ転送の機会を与えなければならない。コントロール転送も同様である。一方、バルク転送やコントロール転送を行うUSB機器における単位時間あたりのデータ転送量は、増える傾向にある。しかし、前述のように、多くの周辺機器がバルク転送を用いるので、この点からも、USBインタフェースがデータ転送のボトルネックとなってしまう。
本発明は、USBインタフェースにおける本来の転送モードにかかわらず、データ転送の速度を向上することができるデータ転送装置を提供することを目的とする。
本発明のデータ転送装置は、第1のデータ転送装置、第2のデータ転送装置、これらの間を接続するUSBインタフェースからなる。前記第1のデータ転送装置は、更に、第1のバルクパケット処理部、第1のアイソクロナスパケット処理部を備える。第1のバルクパケット処理部は、USBのパケットであって、第1のデータ領域を含む所定の構成を有するバルクパケットを、前記第1のデータ領域に転送対象データを記述することにより生成する。第1のアイソクロナスパケット処理部は、USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記バルクパケットを前記第2のデータ領域に組み込むことにより生成し、前記USBインタフェースを介して前記第2のデータ転送装置にアイソクロナス転送する。前記第2のデータ転送装置は、更に、第2のアイソクロナスパケット処理部、第2のバルクパケット処理部を備える。第2のアイソクロナスパケット処理部は、前記USBインタフェースを介して前記第1のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の前記バルクパケットを取り出す。第2のバルクパケット処理部は、前記バルクパケットにおける前記第1のデータ領域から転送対象データを取り出す。
これに加えて、前記データ転送装置において、前記バルクパケットは、更に、当該バルクパケットのエラーチェックのための情報を記述する第1エラーチェック領域を含む。前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第2エラーチェック領域を含む。前記第2のバルクパケット処理部は、前記第1エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う。
また、好ましくは、本発明のデータ転送装置において、前記第2のバルクパケット処理部は、USBのパケットであって、第1のデータ領域を含む所定の構成を有するバルクパケットを、前記第1のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成する。第2のアイソクロナスパケット処理部は、USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記第2のバルクパケット処理部により生成されたバルクパケットを前記第2のデータ領域に組み込むことにより生成し、USBインタフェースを介してアイソクロナス転送する。
本発明のデータ転送装置においては、アイソクロナスパケットのデータ領域にバルクパケット(以下、単位パケットとも言う)を組み込み、アイソクロナス転送する。また、本発明のデータ転送装置においては、アイソクロナス転送されたアイソクロナスパケットを受信して、そのデータ領域に組み込まれた単位パケットを取り出し、単位パケットのデータ領域から転送対象データを取り出す。また、本発明のデータ転送装置においては、アイソクロナスパケットのデータ領域に単位パケットを組み込み、アイソクロナス転送する。その上で、このアイソクロナス転送されたアイソクロナスパケットを受信して、そのデータ領域に組み込まれた単位パケットを取り出し、単位パケットのデータ領域から転送対象データを取り出す。
以上のように、本発明のデータ転送装置は、本来はバルク転送やコントロール転送を行うUSB機器であっても、USBインタフェースにおける本来の転送モードにかかわらず、バルク転送やコントロール転送に基づいたアイソクロナス転送を行う。アイソクロナス転送の優先度は高いので、アイソクロナス転送を行うUSB機器には、一定の周期でデータ転送機会が与えられる。これにより、アイソクロナス転送を行うUSB機器が増えて、バルク転送やコントロール転送を行うUSB機器にはデータ転送の機会が与えられ難くなった場合でも、一定の周期で(例えば1msに1回)確実にデータ転送の機会を得ることができる。これにより、データ転送速度をある程度保証することができる。
これに加えて、アイソクロナスパケットには複数個のバルク転送やコントロール転送のパケット(単位パケット)を組み込むことができる。従って、本来はバルク転送やコントロール転送を行うUSB機器でも、単位時間(例えば1ms)あたりに転送できるデータ量を増やすことができる。例えば、バルク転送に期待できるデータ転送速度は、前述のように、512kbpsである。これに対して、本発明によれば、1個のアイソクロナスパケットあたりの転送量は1024バイトであり、1msに1回の転送機会が与えられたとすると、最大8Mbps(メガビット/秒)のデータ転送速度が期待できる。従って、本来バルク転送やコントロール転送を行うUSB機器における単位時間(例えば1ms)あたりのデータ転送量が増えたとしても、十分にデータ転送を行うことができる。これにより、ある程度高速でのデータ転送を可能とすることができる。
更に、以上に加えて、前記データ転送装置において、単位パケットに含まれるエラーチェックのための情報を用いて、取り出した転送対象データのエラーチェックを行う。また、好ましくは、本発明のデータ転送装置において、エラーチェックの結果を記述した単位パケットをアイソクロナスパケットに組み込み、アイソクロナス転送する。
以上のように、本発明のデータ転送装置は、本来はデータエラーのチェック及び再送が行われないアイソクロナス転送において、本来のアイソクロナス転送に加えて、データエラーのチェックを行いその結果をアイソクロナス転送し(ハンドシェークして)、これに基づくエラーデータ(ロストデータ)の再送を可能とする。これにより、本来はバルク転送やコントロール転送を行うUSB機器が、前述のようにアイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができ、また、その結果に基づきエラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
図1は、データ転送装置構成図であり、本発明のデータ転送装置の構成の一例を示す。この例では、本発明のデータ転送装置(データ転送システム)は、(パーソナル)コンピュータ1、携帯電話2、USBインタフェース3からなる。
コンピュータ1は、上流側のデータ転送装置(ホスト)であり、第1のデータ転送装置である。携帯電話2は、下流側のデータ転送装置又は周辺機器(ターゲット)であり、第2のデータ転送装置である。USBインタフェース(USBバス)3は、これらの間を接続する周知の高速シリアルインタフェース(高速シリアルバス)である。
コンピュータ1は、CPU(中央演算処理装置)又はハブであっても良い。携帯電話2は、本来はバルク転送を行うUSB機器であるディジタルカメラ、MO、CD−ROM、プリンタ、スキャナ、MODEM、ハードディスク、フレキシブルディスク、(フラッシュ)メモリスティック等の各種のメディアカード等であっても良い。又は、携帯電話2は、本来はコントロール転送を行うUSB機器であるマウスであっても良い。USBインタフェース3は、無線で接続されるものであっても良い。
コンピュータ1は、第1のデータ生成解析部11、第1の単位パケット処理部であるバルクパケット処理部12、第1のアイソクロナスパケット処理部13を備える。データ生成解析部(又は、第1OS/AP)11は、転送対象データを生成し又は保存し、第1のオペレーティングシステム(OS)111、第1のアプリケーションプログラム(以下、アプリケーション(AP))112からなる。第1のOS111は、コンピュータ1のOSであり、当該コンピュータ1を制御する。第1のアプリケーション112は、種々のデータを処理するプログラムである。バルクパケット処理部12は、バルクパケットを処理し、バルクパケット生成部121、バルクパケット取出部122からなる。アイソクロナスパケット処理部13は、本発明に従ってバルクパケットを組み込んだアイソクロナスパケットを処理し、アイソクロナスパケット送信部131、アイソクロナスパケット受信部132からなる。
この例において、本発明に従ってアイソクロナスパケットに組み込まれる単位パケットは、USBのバルク転送におけるバルクパケットからなる。単位パケットは、USBのコントロール転送におけるコントロールパケットであっても良い。
図2(A)は、バルクパケット及びアイソクロナスパケットの構成を示す。バルクパケットは、USBのバルク転送におけるパケットであって、図2(A)に示すように、第1のデータ領域DATA1を含む所定の構成を有する。アイソクロナスパケットは、USBのアイソクロナス転送におけるパケットであって、図2(A)に示すように、第2のデータ領域DATA2を含む所定の構成を有する。
バルクパケットは、第1のデータ領域DATA1の前に、データ転送パターンPID1、アドレスADDR、エンドポイントENDPをこの順に含む。また、バルクパケットは、第1のデータ領域DATA1の後に、当該バルクパケットのエラーチェックのための情報を記述する第1エラーチェック領域CRC1を含む。なお、コントロールパケットもほぼ同様の構成である。
データ転送パターンPID1は、1バイト(固定長)からなり、当該パケットのデータ転送パターン(モード)がコントロール転送であるかバルク転送であるかの区別を示す。コントロール転送の場合「00h 」とされ、バルク転送の場合「01h 」とされる。アドレスADDRは、1バイト(固定長)からなり、当該バルクパケットのあて先(IPアドレス)を示す。エンドポイントENDPは、1バイト(固定長)からなり、当該バルクパケットのあて先(IPアドレス及びポート番号)を示す。第1のデータ領域DATA1は、0バイト〜64バイト(可変長)からなり、当該バルクパケットのデータからなる。第1エラーチェック領域CRC1は、2バイト(固定長)からなり、当該バルクパケットをCRCによりチェックするためのデータからなる。
図2(B)は、具体的なバルクパケットの一例を示す。データ転送パターンPID1は、バルク転送であるので「01h 」とされる。アドレスADDRは、当該バルクパケットのあて先「0(即ち「00h 」)」を示す。エンドポイントENDPは、当該バルクパケットのあて先「2(即ち「02h 」)」を示す。第1のデータ領域DATA1は、送信すべき任意のデータからなる。第1エラーチェック領域CRC1は、当該バルクパケットをCRCによりチェックするためのデータ「xxxxh 」からなる。従って、このパケットは、アドレス「0」のエンドポイント「2」へバルク転送されるバルクパケットであるが、本発明に従って、当該アドレスの当該エンドポイントへアイソクロナス転送される。
また、図2(A)に示すように、アイソクロナスパケットは、第2のデータ領域DATA2の前に、同期フィールドSYNC、パケット識別フィールドPIDをこの順に含む。また、アイソクロナスパケットは、第2のデータ領域DATA2の後に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第2エラーチェック領域CRC2を含む。
同期フィールドSYNCは、アイソクロナス転送における同期を取るための領域であり、1バイト(固定長)からなり、固定の値「01h 」とされる。パケット識別フィールドPIDは、1バイト(固定長)からなり、2個の値DATA#A(例えば「0」)又はDATA#B(例えば「1」)が交互に用いられる(これらのトグルデータである)。第2のデータ領域DATA2は、0バイト〜1024バイト(可変長)からなり、当該アイソクロナスパケットのデータからなる。第2エラーチェック領域CRC2は、2バイト(固定長)からなり、当該アイソクロナスパケットをCRCによりチェックするためのデータからなる。
携帯電話2は、第2のデータ生成解析部21、第2の単位パケット処理部であるバルクパケット処理部22、第2のアイソクロナスパケット処理部23を備えるコンピュータからなる。データ生成解析部(又は、第2OS/AP)21は、第2のOS211、第2のアプリケーション212からなる。第2のOS211は、携帯電話2のOSであり、当該携帯電話2を制御する。第2のアプリケーション212は、種々のデータを処理するプログラムである。バルクパケット処理部22は、バルクパケット生成部221、バルクパケット取出部222からなる。アイソクロナスパケット処理部23は、アイソクロナスパケット送信部231、アイソクロナスパケット受信部232からなる。
携帯電話2は、コンピュータ1と類似の構成を備える。即ち、第2のアプリケーション212が例えば電子メールアドレスや電話番号の管理プログラムからなる場合、第1のアプリケーション112も電子メールアドレスや電話番号の管理プログラムからなる。これにより、第1のアプリケーション112と第2のアプリケーション212との間で、本発明のアイソクロナス転送による高速でのデータ転送が行われる。
即ち、第1のアプリケーション112は、転送対象(又は、送信すべき)のデータを作成して、例えばバルクパケットの第1データ領域DATA1の大きさ(データ長即ち64バイト)を単位として、バルクパケット生成部121に送る。また、第1のアプリケーション112は、取り出された転送対象の(又は、受信した)データを、バルクパケット取出部122から送られ、これを受け取る。第1のアプリケーション112は、受け取った転送対象データに基づいて所定の処理、例えばデータの保存、書換え、解析等を行う。これにより、データ転送の依頼元であるアプリケーション112等は、その負担無しで、かつ、アイソクロナス転送を意識することなく、アイソクロナス転送を用いることができる。また、USBインタフェース3又はその転送モードの規格の変更の必要無しで、アプリケーション112等は、アイソクロナス転送を用いることができる。
転送対象データがバルクパケットの第1データ領域の大きさ(64バイト)より大きい場合、第1のアプリケーション112は、転送対象データを複数のブロックに分割し、各々のブロックを転送対象データとして、その順にバルクパケット生成部121に送る。1個のブロックの大きさは、第1データ領域DATA1の大きさを上限とする。バルクパケット取出部122も同様である。
第2のアプリケーション212も、第1のアプリケーション112と同様の処理を行う。通常、第1のOS111がバルク転送及びコントロール転送を行うことは無いが、第1のOS111がバルク転送及びコントロール転送を行うようにしても良い。第2のOS211も同様である。
バルクパケット処理部12及びアイソクロナスパケット処理部13は、各々、バルクパケット処理部22及びアイソクロナスパケット処理部23と同一の構成を有する。従って、以下の説明において、バルクパケット処理部22及びアイソクロナスパケット処理部23についての詳細な説明は省略する。
バルクパケット生成部121は、バルクパケットを、第1のデータ領域DATA1に転送対象の(送信すべき)データを記述することにより生成する。第1のデータ領域DATA1が最大64バイトであるので、バルクパケット生成部121は、64バイトを基本単位として、必要な個数のバルクパケットを当該データの順に生成する。この時、バルクパケット生成部121は、各々のバルクパケット毎に、前述の各領域のデータを設定すると共に、第1のデータ領域DATA1の内容に基づいてCRC情報(後述する)を生成して第1エラーチェック領域CRC1に組み込む。バルクパケット生成部121は、生成したバルクパケットをアイソクロナスパケット送信部131に送る。
アイソクロナスパケット送信部131は、アイソクロナスパケットを生成し、USBインタフェース3を介して、携帯電話2(のアイソクロナスパケット受信部232)にアイソクロナス転送する。アイソクロナスパケットは、少なくとも1個のバルクパケットを第2のデータ領域DATA2に当該バルクパケットの順に組み込むことにより生成される。アイソクロナスパケットに組み込まれる複数のバルクパケットは、そのアドレスADDR及びエンドポイントENDPが同一である。即ち、同一のUSB機器の同一のポートにアイソクロナス転送される。
第1のデータ領域DATA1が最大64バイトであり、第2のデータ領域DATA2が1024バイトであるから、アイソクロナスパケットには約15個のバルクパケットを組み込むことができる。組み込み可能なバルクパケットの数は、各々のバルクパケットの第1のデータ領域DATA1の長さに依存する。生成されたバルクパケットの個数が1個のアイソクロナスパケットに組み込めない程多い場合、必要な個数のアイソクロナスパケットが生成される。
アイソクロナスパケット受信部132は、USBインタフェース3を介して、アイソクロナス転送されたアイソクロナスパケットを受信して、第2のデータ領域DATA2に組み込まれた少なくとも1個のバルクパケットを取り出す。アイソクロナスパケットは前述のような構成を有するので、バルクパケットを区別することができる。バルクパケットが複数ある場合、その順に取り出される。アイソクロナスパケット受信部132は、取り出したバルクパケットをバルクパケット取出部122に送る。
なお、バルクパケットのバルクパケット取出部122への送信に先立って、アイソクロナスパケット受信部132が、第2エラーチェック領域CRCの情報を用いて、CRCにより当該第2のデータ領域DATA2のエラーチェックを行うようにしても良い。このエラーチェックの結果、エラーが検出された場合、アイソクロナスパケット受信部132が、アイソクロナスパケット送信部(231)に当該アイソクロナスパケットを再送させるようにしても良い。
バルクパケット取出部122は、バルクパケットにおける第1のデータ領域DATA1から、転送対象の(受信した)データを取り出す。バルクパケットが複数ある場合、その各々から、その順に転送対象データが取り出される。バルクパケットは前述のような構成を有するので、相互にかつ転送対象データを区別することができる。これにより、元の転送対象データが得られる。バルクパケット取出部122は、取り出した転送対象のデータを第1のアプリケーション112に送る。
以上のように、本来はバルク転送を行うUSB機器(例えば携帯電話2)でも、本来の転送モードにかかわらず、バルク転送に基づいたアイソクロナス転送を行うことができる。これにより、携帯電話2は、一定の周期で(例えば1msに1回)確実にデータ転送の機会を得ることができるので、携帯電話2のデータ転送速度をある程度保証することができる。これに加えて、アイソクロナスパケットには複数個のバルクパケットを組み込むことができる。これにより、携帯電話2は、単位時間(例えば1ms)あたりに転送できるデータ量を、前述のように、例えば512kbpsから最大8Mbpsまで増やすことができ、ある程度高速でのデータ転送を可能とすることができる。
転送対象データ(受信データ)の第1のアプリケーション112への送信に先立って、バルクパケット取出部122は、取り出された転送対象データにおける第1エラーチェック領域CRC1の情報を用いて、当該取り出した転送対象データのエラーチェックを行う。この例では、エラーチェックは、例えばCRC(Cyclic Redundancy Check)により行われる。従って、第1エラーチェック領域CRC1の情報は、周知のCRCのための情報(CRC情報)である。バルクパケット取出部122は、エラーチェックの結果をバルクパケット生成部121に送る。
エラーチェックの結果に基づいて、バルクパケット生成部121は、ハンドシェーク用のバルクパケットを生成する。ハンドシェーク用のバルクパケットは、エラーチェックの結果を通知するためのバルクパケットであり、第1のデータ領域DATA1に転送対象データとしてエラーチェックの結果を記述することにより生成される。
エラーチェックの結果は、例えば、エラーを検出しなかった場合「00h 」とされ、エラーを検出した場合「FFh 」と記述される。「00h 」はACK(正常受信の通知)を示すものとされ、「FFh 」はNAK(異常受信の通知)を示すものとされる。
アイソクロナスパケット送信部131は、ハンドシェーク用のアイソクロナスパケットを生成し、USBインタフェース3を介して、アイソクロナス転送する。ハンドシェーク用のアイソクロナスパケットは、エラーチェックの結果を通知するためのアイソクロナスパケットであり、バルクパケット生成部121により生成された少なくとも1個のハンドシェーク用のバルクパケットを、第2のデータ領域DATA2に組み込むことにより生成される。これにより、本来はデータエラーのチェックが行われないアイソクロナス転送において、本来のアイソクロナス転送の後に、データエラーのチェックを行いその結果をアイソクロナス転送する(ハンドシェークする)ことができる。従って、本来はバルク転送を行うUSB機器(例えば、携帯電話2)が、アイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができる。
図3(A)は、ハンドシェーク用のバルクパケット及びアイソクロナスパケットの構成を示す。これらは、基本的には、図2(A)に示すバルクパケット及びアイソクロナスパケットと同様の構成を有する。
但し、ハンドシェーク用のバルクパケットは、本来の転送モードにおいては不要なものであるので、本来のバルクパケットと同様の構成としてバルクパケット処理部12の負担を軽減し、かつ、一部の領域の意味を変更している。即ち、データ転送パターンPID1、アドレスADDR及びエンドポイントENDPにより、当該アドレスの当該エンドポイントに当該転送モードで転送した(例えばバルク転送した)データについて、エラーチェックの結果を通知することを示す。ハンドシェーク用のバルクパケットは、エラーチェックの結果を通知するのみであるので、第1のデータ領域DATA1は固定長の小さい領域とされる。即ち、第1のデータ領域DATA1は2バイト(固定長)からなる。
図3(B)は、具体的なハンドシェーク用のバルクパケットの一例を示す。例えば、図2(B)に示すバルクパケットが正常に受信された場合、そのハンドシェーク用のバルクパケットは、以下のようになる。即ち、アドレス「0」のエンドポイント「2」へバルク転送されたパケットが正常であったので、データ転送パターンPID1はバルク転送を示す「01h 」とされ、アドレスADDRは「0(即ち「00h 」)」とされ、エンドポイントENDPは「2(即ち「02h 」)」とされ、第1のデータ領域DATA1はACK(正常受信の通知)を示す「00h 」とされる。
アイソクロナスパケット受信部132は、アイソクロナス転送されたハンドシェーク用のアイソクロナスパケットを受信して、第2のデータ領域DATA2に組み込まれた少なくとも1個のハンドシェーク用のバルクパケットを取り出す。バルクパケット取出部122は、アイソクロナスパケット受信部132で取り出されたハンドシェーク用のバルクパケットの第1のデータ領域DATA1から、エラーチェックの結果を取り出し、これをバルクパケット生成部121に送る。これに応じて、バルクパケット生成部121は、エラーチェックの結果においてエラーとされたバルクパケットを、再度、アイソクロナスパケット送信部131に送る。
アイソクロナスパケット送信部131は、バルクパケット生成部121から再度送られたバルクパケットを第2のデータ領域DATA2に組み込むことにより、アイソクロナスパケットを生成し、USBインタフェース3を介して、先のアイソクロナス転送先と同一の転送先(即ち、同一のアドレス及びエンドポイント、例えば携帯電話2)へアイソクロナス転送する。これにより、本来はエラーデータの再送が行われないアイソクロナス転送において、本来のアイソクロナス転送の後に、データエラーのチェックに基づいてエラーデータを再送することができる。従って、本来はバルク転送を行うUSB機器(例えば携帯電話2)が、アイソクロナス転送を利用しつつ、本来の転送モードと同様に、エラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
図4乃至図6は、データ転送処理フローであり、本発明のデータ転送装置におけるデータ転送処理の一例を示す。図4乃至図6は、コンピュータ1から携帯電話2に対して、データを転送する(ダウンロードする)場合について示し、特に、図4はコンピュータ1から携帯電話2のアイソクロナス転送処理を示し、図5はエラーが発見された場合の処理を示し、図6はエラーが発見されなかった場合の処理を示す。なお、図4乃至図6において、データの双方向への流れを示すので、バルクパケット処理部(12、22)及びアイソクロナスパケット処理部(13、23)として示す。
図4において、コンピュータ1の第1のアプリケーション112が転送対象データを作成して、携帯電話2のアドレスADDR及びエンドポイントENDPと共に、バルクパケット生成部121に送る(#11)。携帯電話2のアドレスADDR及びエンドポイントENDPは、第1のアプリケーション112により予め保持される。このバルクパケットを受信したバルクパケット生成部121が、前記アドレスADDR及びエンドポイントENDPを用い、第1のデータ領域(バルクデータ部)DATA1に転送対象データを記述し、この記述に基づいてエラーチェックのための情報を作成して第1エラーチェック領域CRC1に記述することにより、バルクパケット(バルク転送パケットとも言う)を生成して(#12)、アイソクロナスパケット送信部131に送る(#13)。データ転送パターンPID1はバルク転送を示す値とされる。バルクパケットは、ハンドシェークのため及び再送のため、所定の十分な期間だけ(例えば、次のアイソクロナス転送を受信するまで)、バルクパケット生成部121に保持される。これを受信したアイソクロナスパケット送信部131が、アイソクロナスパケットの第2のデータ領域(アイソクロナスデータ部)DATA2の先頭から順にバルクパケットを組み込む(#14)。
処理#11乃至処理#14は複数回(n回)繰り返され、複数個(n個)のバルクパケットがアイソクロナスパケットに組み込まれる。アイソクロナスパケットの第2のデータ領域DATA2に空きが無くなると(#15)、アイソクロナスパケット送信部131が、作成したアイソクロナスパケットを、USBインタフェース3を介して、携帯電話2のアイソクロナスパケット受信部232にアイソクロナス転送する(#16)。なお、アイソクロナス転送のタイミングになると、その時点でバルクパケットの組み込みを中断して、アイソクロナス転送が行われるようにしても良い。また、アドレスADDR及びエンドポイントENDPのいずれかが異なるバルクパケットを受信した時点で、それ以前に受信したバルクパケットをアイソクロナス転送するようにしても良い。
携帯電話2のアイソクロナスパケット受信部232は、当該携帯電話2に送信されたアイソクロナスパケットを受信して、第2のデータ領域DATA2に組み込まれたn個のバルクパケットを取り出し(#17)、バルクパケット取出部222に送る(#18)。バルクパケット取出部222は、第2のアプリケーション212に送る前に、n個のバルクパケットの各々について、当該第1のデータ領域DATA1から転送対象データを取り出し、当該第1エラーチェック領域CRC1の情報を用いてCRCによるエラーチェックを行う(#19)。
図5において、バルクパケット取出部222は、エラーチェックの結果エラーを検出した場合、これをバルクパケット生成部221に送る。バルクパケット生成部221は、保持していたアドレスADDR及びエンドポイントENDPを用いると共に、その旨(NAK)を第1のデータ領域DATA1に記述することにより、ハンドシェーク用のバルクパケットを生成し(#21)、アイソクロナスパケット送信部231に送る(#22)。これを受信したアイソクロナスパケット送信部231は、アイソクロナスパケットの第2のデータ領域DATA2の先頭から順にハンドシェーク用のバルクパケットを組み込む(#23)。
処理#21乃至処理#23は、例えばエラーであったバルクパケットの数(x個)だけ繰り返され、当該x個のバルクパケットについての応答であるx個のハンドシェーク用のバルクパケットがアイソクロナスパケットに組み込まれる。この後、アイソクロナスパケット送信部231は、作成したハンドシェーク用のアイソクロナスパケットを、USBインタフェース3を介して、コンピュータ1のアイソクロナスパケット受信部132にアイソクロナス転送する(#24)。
これを受信したアイソクロナスパケット受信部132は、受信したハンドシェーク用のアイソクロナスパケットの第2のデータ領域DATA2に組み込まれたx個のハンドシェーク用のバルクパケットを取り出し(#25)、バルクパケット取出部122に送る(#26)。バルクパケット取出部122は、x個のハンドシェーク用のバルクパケットの各々について、当該第1のデータ領域DATA1からエラーチェックの結果(NAK)を取り出し、どのアドレスのどのエンドポイントにバルク転送したどのバルクパケットがエラーであったかを知る(#27)。バルクパケット取出部122は、この結果をバルクパケット生成部121に送る。
これにより、コンピュータ1は、図5及び図4の符号(a)に示すように、保持している転送対象データを用いて、図4の処理#12乃至#16を再度実行することにより、エラーチェックの結果においてエラーとされたx個のバルクパケットを、再度携帯電話2にアイソクロナス転送する。これに応じて、携帯電話2は、図4の処理#17乃至#19を再度実行することにより、アイソクロナス転送された前記x個のバルクパケットを得る。これにより、先のアイソクロナス転送においてエラーとされたx個のバルクパケットを、次のコンピュータ1からのアイソクロナス転送の機会に再送することができる。
なお、図5の場合、エラーとされたx個のバルクパケットが、先のアイソクロナスパケットにおける何番目のものであるかを示す必要がある。このために、例えば第1のデータ領域DATA1において、異常受信の記述「NAK」に続けて(又は、先立って)、当該何番目であるかを記述するようにすれば良い。前述のように、組み込まれるバルクパケットの最大個数は15個であるので、1バイトで表示することができる。従って、この分ハンドシェーク用のバルクパケットが大きくなる。これは、以下の図6の場合においても、同様である。
図6において、バルクパケット取出部222は、エラーチェックの結果エラーでなかったバルクパケット(y個)を、第2のアプリケーション212に送る(#31)。この後、バルクパケット取出部222は、エラーチェックの結果エラーを検出しなかった場合、これをバルクパケット生成部221に送る。バルクパケット生成部221は、保持していたアドレスADDR及びエンドポイントENDPを用いると共に、その旨(ACK)を第1のデータ領域DATA1に記述することにより、ハンドシェーク用のバルクパケットを生成し(#32)、アイソクロナスパケット送信部231に送る(#33)。これを受信したアイソクロナスパケット送信部231は、アイソクロナスパケットの第2のデータ領域DATA2の先頭から順にハンドシェーク用のバルクパケットを組み込む(#34)。
処理#31乃至処理#33は、例えばエラーでなかったバルクパケットの数(y個)だけ繰り返され、当該y個のバルクパケットについての応答であるy個のハンドシェーク用のバルクパケットがアイソクロナスパケットに組み込まれる。この後、アイソクロナスパケット送信部231は、作成したハンドシェーク用のアイソクロナスパケットを、USBインタフェース3を介して、コンピュータ1のアイソクロナスパケット受信部132にアイソクロナス転送する(#35)。
これを受信したアイソクロナスパケット受信部132は、受信したハンドシェーク用のアイソクロナスパケットの第2のデータ領域DATA2に組み込まれたy個のハンドシェーク用のバルクパケットを取り出し(#36)、バルクパケット取出部122に送る(#37)。バルクパケット取出部122は、y個のハンドシェーク用のバルクパケットの各々について、当該第1のデータ領域DATA1からエラーチェックの結果(ACK)を取り出し、どのアドレスのどのエンドポイントにバルク転送したどのバルクパケットがエラーでなかったかを知り(#38)、処理を終了する。これにより、アイソクロナス転送したバルクパケットのデータの信頼性を保証することができる。
なお、実際は、図4乃至図6の処理フローは一連の処理を示す。即ち、図4の処理フローのみを実行するようにしても良いが、図4の処理フローに連続して図5及び図6の処理フローを実行することが望ましい。図5及び図6の処理フローは、実際は、混然一体となって実行される。
例えば、同一のアイソクロナスパケットに組み込まれた1番目及び2番目のバルクパケットがエラーでない場合及びエラーである場合、ハンドシェーク用のアイソクロナスパケットにおけるハンドシェーク用の1番目及び2番目のバルクパケットが、各々、ACK及びNAKを含むようにされる。これにより、同一のアイソクロナスパケットに組み込まれた複数のバルクパケットの各々について、それに対応する順でエラーチェックの結果(ACK又はNAK)を記述した複数のバルクパケットを、アイソクロナス転送により得ることができる。従って、エラーデータの検出を早期に知ることができ、これに基づいて早期にエラーデータを再送することができる。
また、この後のエラーデータであるバルクパケットの再送も、同様に行われる。例えば、同一のアイソクロナスパケットに組み込まれた1番目及び2番目のバルクパケットがエラーでない場合及びエラーである場合、再送用のアイソクロナスパケットにおける1番目のバルクパケットの第1データ領域DATA1は「空(1バイト又は2バイト)」とされ、21番目のバルクパケットの第1データ領域DATA1は先の内容と同一とされる。これにより、早期にエラーデータを再送することができる。
なお、図4の処理フローに連続して図5又は図6の処理フローのいずれか一方を実行するようにしても良い。例えば、図4の処理フローに連続して図5の処理フローを実行し、図6の処理フローを実行しないようにしても良い。この場合、図5の処理によりエラーチェックの結果としてNAKを通知されなかったバルクパケットについては、エラーが検出されなかったことにすれば良い。逆に、図4の処理フローに連続して図6の処理フローを実行し、図5の処理フローを実行しないようにしても良い。また、1個のアイソクロナスパケット内の全てのバルクパケットにエラーが無い場合にハンドシェーク用のアイソクロナスパケットを送信することを止め、その他の場合にはハンドシェーク用のアイソクロナスパケットを送信するようにしても良い。
更に、図4乃至図6の処理フローは、コンピュータ1から携帯電話2へデータを送信(アイソクロナス転送)する例であるが、逆に、携帯電話2からコンピュータ1にデータを送信(アイソクロナス転送)する場合でも同様である。また、図4乃至図6の処理フローは、バルクパケットを送信(アイソクロナス転送)する例であるが、コントロールパケットを送信(アイソクロナス転送)する場合でも同様である。
以上の説明から理解されるように、本発明によれば、以下のような実施の態様が把握される。
(付記1)USBのパケットであって、第1のデータ領域を含む所定の構成を有する単位パケットを、前記第1のデータ領域に転送対象データを記述することにより生成する第1の単位パケット処理部と、
USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記単位パケットを前記第2のデータ領域に組み込むことにより生成し、USBインタフェースを介してアイソクロナス転送する第1のアイソクロナスパケット処理部とを備える
ことを特徴とするデータ転送装置。
(付記2)USBインタフェースを介してアイソクロナス転送されたUSBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の単位パケットを取り出す第2のアイソクロナスパケット処理部と、
USBのパケットであって、第1のデータ領域を含む所定の構成を有する単位パケットにおける前記第1のデータ領域から、転送対象データを取り出す第2の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
(付記3)第1のデータ転送装置と、第2のデータ転送装置と、これらの間を接続するUSBインタフェースとからなるデータ転送装置であって、
前記第1のデータ転送装置は、更に、
USBのパケットであって、第1のデータ領域を含む所定の構成を有する単位パケットを、前記第1のデータ領域に転送対象データを記述することにより生成する第1の単位パケット処理部と、
USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記単位パケットを前記第2のデータ領域に組み込むことにより生成し、前記USBインタフェースを介して前記第2のデータ転送装置にアイソクロナス転送する第1のアイソクロナスパケット処理部とを備え、
前記第2のデータ転送装置は、更に、
前記USBインタフェースを介して前記第1のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の前記単位パケットを取り出す第2のアイソクロナスパケット処理部と、
前記単位パケットにおける前記第1のデータ領域から転送対象データを取り出す第2の単位パケット処理部とを備える
ことを特徴とするデータ転送装置。
(付記4)前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第1エラーチェック領域を含み、
前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第2エラーチェック領域を含み、
前記第2の単位パケット処理部は、前記第1エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う
ことを特徴とする付記3に記載のデータ転送装置。
(付記5)前記第2の単位パケット処理部は、USBのパケットであって、第1のデータ領域を含む所定の構成を有する単位パケットを、前記第1のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成し、
前記第2のアイソクロナスパケット処理部は、USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記第2の単位パケット処理部により生成された単位パケットを前記第2のデータ領域に組み込むことにより生成し、USBインタフェースを介してアイソクロナス転送する
ことを特徴とする付記4に記載のデータ転送装置。
(付記6)前記第1のアイソクロナスパケット処理部は、前記第2のアイソクロナスパケット処理部からアイソクロナス転送されたアイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の前記単位パケットを取り出し、
前記第1の単位パケット処理部は、前記第1のアイソクロナスパケット処理部で取り出された前記単位パケットの前記第1のデータ領域から、前記エラーチェックの結果を取り出し、前記エラーチェックの結果においてエラーとされた単位パケットを再度前記第1のアイソクロナスパケット処理部に送り、
前記第1のアイソクロナスパケット処理部は、前記第1の単位パケット処理部から再度送られた単位パケットを第2のデータ領域に組み込むことによりアイソクロナスパケットを生成し、USBインタフェースを介して前記第2のデータ転送装置にアイソクロナス転送する
ことを特徴とする付記5に記載のデータ転送装置。
(付記7)前記単位パケットは、USBのバルク転送におけるバルクパケット、又は、USBのコントロール転送におけるコントロールパケットである
ことを特徴とする付記1乃至付記3のいずれかに記載のデータ転送装置。
(付記8)前記第1のデータ転送装置は、更に、第1のオペレーティングシステム又は第1のアプリケーションを備え、
前記第2のデータ転送装置は、更に、第2のオペレーティングシステム又は第2のアプリケーションを備え、
前記転送対象データは、前記単位パケットの第1データ領域の大きさを単位として、前記第1のオペレーティングシステム又は第1のアプリケーションから前記第1の単位パケット処理部に送られ、
取り出された前記転送対象データは、前記第2の単位パケット処理部から前記第2のオペレーティングシステム又は第2のアプリケーションに送られる
ことを特徴とする付記6に記載のデータ転送装置。
(付記9)前記単位パケットは、更に、データ転送パターン、アドレス、エンドポイントを含む
ことを特徴とする付記1乃至付記3のいずれかに記載のデータ転送装置。
(付記10)前記単位パケットは、更に、当該単位パケットのエラーチェックのための情報を記述する第1エラーチェック領域を含む
ことを特徴とする付記1又は付記2記載のデータ転送装置。
(付記11)前記アイソクロナスパケットは、更に、同期フィールド、パケット識別フィールドを含む
ことを特徴とする付記1乃至付記3のいずれかに記載のデータ転送装置。
(付記12)前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第2エラーチェック領域を含む
ことを特徴とする付記1又は付記2記載のデータ転送装置。
以上説明したように、本発明によれば、データ転送装置において、USBインタフェースにおける本来の転送モードにかかわらず、バルク転送やコントロール転送に基づいたアイソクロナス転送を行う。これにより、一定の周期で確実にデータ転送の機会を得ることができ、かつ、転送できるデータ量を増やすことができる。従って、ある程度高速でのデータ転送速度を保証し、USBインタフェースがデータ転送のボトルネックとなることを防止することができる。
また、本発明によれば、データ転送装置において、アイソクロナス転送においてデータエラーのチェック及び結果の通知を行う。これにより、前述のようにアイソクロナス転送を利用しつつ、本来の転送モードと同様に、データエラーのチェックを行うことができ、また、その結果に基づきエラーデータを再送することができる。従って、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
また、本発明によれば、データ転送装置において、データ転送の依頼元であるアプリケーション等の負担無しで、かつ、USBインタフェース又はその転送モードの規格変更無しで、前述のような、ある程度高速でのデータ転送速度を保証し、その上で、データエラー時の再送を可能とすることができる。
本発明のデータ転送装置の構成を示す構成図である。 本発明のデータ転送処理説明図である。 本発明のデータ転送処理説明図である。 本発明のデータ転送処理フローである。 本発明のデータ転送処理フローである。 本発明のデータ転送処理フローである。
符号の説明
1 コンピュータ(第1のデータ転送装置)
2 携帯電話(第2のデータ転送装置)
3 USBインタフェース
11、21 データ生成解析部
12、22 バルクパケット処理部
13、23 アイソクロナスパケット処理部
121、221 バルクパケット生成部
122、222 バルクパケット取出部
131、231 アイソクロナスパケット送信部
132、232 アイソクロナスパケット受信部

Claims (5)

  1. 第1のデータ転送装置と、前記第1のデータ転送装置とUSBインタフェースによって接続される第2のデータ転送装置とからなるデータ転送装置であって、
    前記第1のデータ転送装置は、更に、
    USBのパケットであって、第1のデータ領域を含む所定の構成を有するバルクパケットを、前記第1のデータ領域に転送対象データを記述することにより生成する第1のバルクパケット処理部と、
    USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記バルクパケットを前記第2のデータ領域に組み込むことにより生成し、前記USBインタフェースを介して前記第2のデータ転送装置にアイソクロナス転送する第1のアイソクロナスパケット処理部とを備え、
    前記第2のデータ転送装置は、更に、
    前記USBインタフェースを介して前記第1のデータ転送装置からアイソクロナス転送された前記アイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の前記バルクパケットを取り出す第2のアイソクロナスパケット処理部と、
    前記バルクパケットにおける前記第1のデータ領域から転送対象データを取り出す第2のバルクパケット処理部とを備え、
    前記バルクパケットは、更に、当該バルクパケットのエラーチェックのための情報を記述する第1エラーチェック領域を含み、
    前記アイソクロナスパケットは、更に、当該アイソクロナスパケットのエラーチェックのための情報を記述する第2エラーチェック領域を含み、
    前記第2のバルクパケット処理部は、前記第1エラーチェック領域の情報を用いて、取り出した前記転送対象データのエラーチェックを行う
    ことを特徴とするデータ転送装置。
  2. 前記第2のバルクパケット処理部は、USBのパケットであって、第1のデータ領域を含む所定の構成を有するバルクパケットを、前記第1のデータ領域に転送対象データとして前記エラーチェックの結果を記述することにより生成し、
    前記第2のアイソクロナスパケット処理部は、USBのアイソクロナス転送におけるパケットであって、第2のデータ領域を含む所定の構成を有するアイソクロナスパケットを、少なくとも1個の前記第2のバルクパケット処理部により生成されたバルクパケットを前記第2のデータ領域に組み込むことにより生成し、USBインタフェースを介してアイソクロナス転送する
    ことを特徴とする請求項1に記載のデータ転送装置。
  3. 前記第1のアイソクロナスパケット処理部は、前記第2のアイソクロナスパケット処理部からアイソクロナス転送されたアイソクロナスパケットを受信して、前記第2のデータ領域に組み込まれた少なくとも1個の前記バルクパケットを取り出し、
    前記第1のバルクパケット処理部は、前記第1のアイソクロナスパケット処理部で取り出された前記バルクパケットの前記第1のデータ領域から、前記エラーチェックの結果を取り出し、前記エラーチェックの結果においてエラーとされたバルクパケットを再度前記第1のアイソクロナスパケット処理部に送り、
    前記第1のアイソクロナスパケット処理部は、前記第1のバルクパケット処理部から再度送られたバルクパケットを第2のデータ領域に組み込むことによりアイソクロナスパケットを生成し、USBインタフェースを介して前記第2のデータ転送装置にアイソクロナス転送する
    ことを特徴とする請求項2に記載のデータ転送装置。
  4. 前記第1のデータ転送装置は、更に、第1のオペレーティングシステム又は第1のアプリケーションを備え、
    前記第2のデータ転送装置は、更に、第2のオペレーティングシステム又は第2のアプリケーションを備え、
    前記転送対象データは、前記バルクパケットの第1データ領域の大きさを単位として、前記第1のオペレーティングシステム又は第1のアプリケーションから前記第1のバルクパケット処理部に送られ、
    取り出された前記転送対象データは、前記第2のバルクパケット処理部から前記第2のオペレーティングシステム又は第2のアプリケーションに送られる
    ことを特徴とする請求項3に記載のデータ転送装置。
  5. 前記第2のアイソクロナスパケット処理部が、前記第2エラーチェック領域の情報を用いて、前記第2のデータ領域のエラーチェックを行い、
    前記エラーチェックの結果、エラーが検出された場合、前記第2のアイソクロナスパケット処理部が、前記第1のアイソクロナスパケット処理部に前記アイソクロナスパケットを再送させる
    ことを特徴とする請求項1に記載のデータ転送装置。
JP2005101185A 2005-03-31 2005-03-31 データ転送装置 Expired - Fee Related JP4541949B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005101185A JP4541949B2 (ja) 2005-03-31 2005-03-31 データ転送装置
US11/191,086 US7447976B2 (en) 2005-03-31 2005-07-28 Data transfer apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005101185A JP4541949B2 (ja) 2005-03-31 2005-03-31 データ転送装置

Publications (2)

Publication Number Publication Date
JP2006285378A JP2006285378A (ja) 2006-10-19
JP4541949B2 true JP4541949B2 (ja) 2010-09-08

Family

ID=37072046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005101185A Expired - Fee Related JP4541949B2 (ja) 2005-03-31 2005-03-31 データ転送装置

Country Status (2)

Country Link
US (1) US7447976B2 (ja)
JP (1) JP4541949B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4789507B2 (ja) * 2005-05-24 2011-10-12 株式会社小松製作所 変速装置
US7978357B2 (en) * 2006-01-30 2011-07-12 Marvell International Technology Ltd. Printing system and method that uses a universal serial bus (USB) high-speed interrupt out pipe to transfer print data from the host computer to the printer
US7653773B2 (en) * 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
TW200947210A (en) * 2008-02-07 2009-11-16 Qualcomm Inc Method and system for wireless USB transfer of isochronous data using bulk data transfer type
US20100198999A1 (en) * 2009-02-05 2010-08-05 Qualcomm Incorporated Method and system for wireless usb transfer of isochronous data using bulk data transfer type
JP4802229B2 (ja) 2008-08-25 2011-10-26 株式会社日立製作所 複数の集積回路を備えたストレージシステム
US9461763B2 (en) * 2008-11-28 2016-10-04 Computer Performance, Inc. Method and apparatus for reformatting and retiming digital telecommunications data for reliable retransmission via USB
US8332557B2 (en) * 2008-12-12 2012-12-11 Qualcomm, Incorporated System, apparatus, and method for broadcasting USB data streams
TWI423037B (zh) * 2009-05-15 2014-01-11 Etron Technology Inc 一種提升於通用串列匯流排協定中傳輸同時型傳輸類型的封包之效率之方法與裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229857A (ja) * 2002-01-31 2003-08-15 Alpine Electronics Inc シリアルバスシステム、シリアルバスの帯域管理機器および通信機器
JP2004056376A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 半導体装置及びデータ転送制御方法
JP2004334273A (ja) * 2003-04-30 2004-11-25 Tokai Univ デバイスおよびデバイスの制御方法およびデバイス制御用プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3799726B2 (ja) * 1997-04-01 2006-07-19 ソニー株式会社 信号処理回路
JPH11122302A (ja) * 1997-10-15 1999-04-30 Toshiba Corp ケーブルモデム終端システム及びケーブルモデム
US6717947B1 (en) * 1998-12-03 2004-04-06 Lsi Logic Corporation Method and apparatus for isochronous data transfer with retry capability
JP3424620B2 (ja) * 1999-09-24 2003-07-07 日本電気株式会社 アイソクロナスパケット転送方法,該転送用制御プログラムの記録媒体,ブリッジ及びパケット転送制御lsi
JP4191869B2 (ja) 1999-12-20 2008-12-03 富士フイルム株式会社 ディジタルカメラを用いたコンピュータシステム
JP2002281001A (ja) 2001-03-15 2002-09-27 Ricoh Co Ltd データ通信システム
JP2002281034A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 情報転送装置
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP3671925B2 (ja) * 2002-03-20 2005-07-13 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US6892234B2 (en) * 2002-06-12 2005-05-10 Electronic Data Systems Corporation Multi-tiered enterprise management system and method including a presentation services unit external to the enterprise
JP2004054504A (ja) 2002-07-18 2004-02-19 Canon Inc 印字制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229857A (ja) * 2002-01-31 2003-08-15 Alpine Electronics Inc シリアルバスシステム、シリアルバスの帯域管理機器および通信機器
JP2004056376A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 半導体装置及びデータ転送制御方法
JP2004334273A (ja) * 2003-04-30 2004-11-25 Tokai Univ デバイスおよびデバイスの制御方法およびデバイス制御用プログラム

Also Published As

Publication number Publication date
JP2006285378A (ja) 2006-10-19
US20060224936A1 (en) 2006-10-05
US7447976B2 (en) 2008-11-04

Similar Documents

Publication Publication Date Title
JP4541949B2 (ja) データ転送装置
US11379278B2 (en) Methods and apparatus for correcting out-of-order data transactions between processors
JP5038148B2 (ja) 巡回冗長検査を実行するためのシステム及び方法
JP3970282B2 (ja) Icカード、データ転送装置、データ転送方法及びデータ転送方法のプログラム
US8732306B2 (en) High speed parallel data exchange with transfer recovery
CN109964215B (zh) 具有环形缓冲区镜像的远程直接存储器访问数据通信中的流控制
US7634692B2 (en) SATA primitive prediction and correction
US20200210224A1 (en) Methods and apparatus for verifying completion of groups of data transactions between processors
WO2022001416A1 (zh) 数据传输方法、数据传输装置及数据传输设备
US9201623B2 (en) Control device and image forming apparatus with two controllers
US10516789B2 (en) Information processing apparatus and image processing apparatus that perform transmission and reception of data, and method of controlling information processing apparatus
US9473273B2 (en) Memory system capable of increasing data transfer efficiency
US6745360B1 (en) Method and system for controlling the rate of acknowledgment of communication packets
CN1322444C (zh) 传输和处理命令与数据的方法
JP4606216B2 (ja) 通信データ制御装置
US5721891A (en) Detection of N length bit serial communication stream
TWI423037B (zh) 一種提升於通用串列匯流排協定中傳輸同時型傳輸類型的封包之效率之方法與裝置
US6934790B2 (en) Data transmitting and receiving system with speedy retransmission of missing data and data receiving device
JP6136754B2 (ja) 通信制御装置及び画像形成装置
JP2002358177A (ja) 画像形成装置、該装置のシリアル通信方法および該方法をコンピュータに実行させるプログラム並びに該プログラムを記録した記録媒体
CN109120628A (zh) 打印系统千兆网通信方法、终端及系统
JP4581925B2 (ja) データ転送装置およびデータ転送方法
CN108664441B (zh) Usb只读控制系统及方法
JP2008148181A (ja) 通信装置及び通信制御方法
JP5713136B2 (ja) 制御装置、第1制御装置、第2制御装置、画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090910

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090910

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100514

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100624

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees