(57)【要約】【課題】第１、第２のＵＳＢデバイス間でのデータ転送を可能にするデータ転送制御装置、接続機器及びデータ転送制御方法の提供。【解決手段】  接続機器に用いられる転送コントローラ８０は、ＵＳＢデバイス１、ＵＳＢデバイス２のいずれか一方又は両方に対して時間間隔Ｔ１でＩＮトークンを発行する。ＵＳＢデバイス１に発行したＩＮトークンに対する応答として、ＮＡＫ（或いは零長パケット）ではなくデータを受信した場合には、ＵＳＢデバイス１から受信したデータをＵＳＢデバイス２に送信する。ＮＡＫ（或いは零長パケット）ではないデータを受信した後は、Ｔ１よりも短い時間間隔Ｔ２でＩＮトークンを発行する。ＮＡＫの連続受信回数が所与の回数を超えた場合等には、ＩＮトークン発行の時間間隔をＴ２からＴ１に戻す。【選択図】        図２
2005100008.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ（Universal Serial Bus）を用いて第１、第２のＵＳＢデバイスを接続する接続機器のためのデータ転送制御装置であって、
転送データを一時的に格納するデータバッファと、
データ転送を制御する転送コントローラとを含み、
前記転送コントローラが、
前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、
発行したＩＮトークンに対する応答として、前記第１、第２のＵＳＢデバイスの一方のＵＳＢデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のＵＳＢデバイスの他方のＵＳＢデバイスに対してＯＵＴトークンを発行して、前記一方のＵＳＢデバイスから受信したデータを前記他方のＵＳＢデバイスに送信し、
ＮＡＫではなく零長ではないデータを一方のＵＳＢデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
前記転送コントローラが、
前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫ又は零長のデータを連続して所与の回数だけ受信した場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項３】
請求項１において、
前記転送コントローラが、
前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫではなく零長ではないデータを、所与の時間だけ受信しなかった場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記転送コントローラが、
前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してインタラプト転送を用いて定期的にＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項５】
請求項１乃至３のいずれかにおいて、
前記転送コントローラが、
前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してバルク転送を用いて定期的に又は不定期にＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項６】
請求項１乃至５のいずれかのデータ転送制御装置と、
前記第１のＵＳＢデバイスを接続するための第１のコネクタと、
前記第２のＵＳＢデバイスを接続するための第２のコネクタと、
を含むことを特徴とする接続機器。
【請求項７】
ＵＳＢ（Universal Serial Bus）を介して第１、第２のＵＳＢデバイス間でデータを転送するためのデータ転送制御方法であって、
前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、
発行したＩＮトークンに対する応答として、前記第１、第２のＵＳＢデバイスの一方のＵＳＢデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のＵＳＢデバイスの他方のＵＳＢデバイスに対してＯＵＴトークンを発行して、前記一方のＵＳＢデバイスから受信したデータを前記他方のＵＳＢデバイスに送信し、
ＮＡＫではなく零長ではないデータを一方のＵＳＢデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御方法。
【請求項８】
第１、第２のデバイスを接続する接続機器のためのデータ転送制御装置であって、
転送データを一時的に格納するデータバッファと、
データ転送を制御する転送コントローラとを含み、
前記転送コントローラが、
前記第１、第２のデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、
発行したＩＮトークンに対する応答として、前記第１、第２のデバイスの一方のデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のデバイスの他方のデバイスに対してＯＵＴトークンを発行して、前記一方のデバイスから受信したデータを前記他方のデバイスに送信し、
ＮＡＫではなく零長ではないデータを一方のデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御装置。
【請求項９】
請求項８において、
前記転送コントローラが、
前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫ又は零長のデータを連続して所与の回数だけ受信した場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のデバイスのいずれか一方又は両方に対してＩＮトークンを発行することを特徴とするデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置、接続機器及びデータ転送制御方法に関する。
【背景技術】
【０００２】
従来より、パーソナルコンピュータなどのホストとペリフェラルデバイスを接続するためのシリアルバス・インターフェース規格として、ＵＳＢ（Universal Serial Bus）が知られている。また、従来のＵＳＢ１．１規格に対する互換性を保ちながら、高速な４８０Ｍｂｐｓ（ＨＳモード）の転送速度を実現できる規格としてＵＳＢ２．０も策定され、注目を浴びている。
【特許文献１】特開２００２−１３５１３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＵＳＢにおいては、ＩＥＥＥ１３９４とは異なり、データ転送の主導権をホストが有している。即ちデータ転送のトランザクションを発行するのはホストであり、データ転送に関する大部分の制御はホストが行う。従って第１、第２のＵＳＢデバイス（ペリフェラルデバイス）間でデータのやり取りを行う場合には、パーソナルコンピュータを用意し、このパーソナルコンピュータに第１、第２のＵＳＢデバイスを接続する必要がある。このため、第１、第２のＵＳＢデバイス間を直接に接続してデータ転送を行うことが難しかった。
【０００４】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、第１、第２のＵＳＢデバイス間でのデータ転送を可能にするデータ転送制御装置、接続機器及びデータ転送制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、ＵＳＢ（Universal Serial Bus）を用いて第１、第２のＵＳＢデバイスを接続する接続機器のためのデータ転送制御装置であって、転送データを一時的に格納するデータバッファと、データ転送を制御する転送コントローラとを含み、前記転送コントローラが、前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、発行したＩＮトークンに対する応答として、前記第１、第２のＵＳＢデバイスの一方のＵＳＢデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のＵＳＢデバイスの他方のＵＳＢデバイスに対してＯＵＴトークンを発行して、前記一方のＵＳＢデバイスから受信したデータを前記他方のＵＳＢデバイスに送信し、ＮＡＫではなく零長ではないデータを一方のＵＳＢデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行するデータ転送制御装置に関係する。
【０００６】
本発明によれば、第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンが発行される。そしてこのＩＮトークンに対する応答してデータ（データそのもの、コマンドを含むデータ、或いはステータスを含むデータ）を一方のＵＳＢデバイスから受信すると、ＯＵＴトークンが他方のＵＳＢデバイスに発行されて、一方のＵＳＢデバイスからの受信データが他方のＵＳＢデバイスに送信される。そしてその後は、第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して、第１の時間間隔よりも短い第２の時間間隔でＩＮトークンが発行されるようになる。即ちＩＮトークン発行の時間間隔が可変に制御される。これにより、ＵＳＢデバイス側に主導権を持たせながら、第１、第２のＵＳＢデバイス間でデータを転送することが可能になる。またＩＮトークン発行による無駄な電力の消費を抑えながらも、データ転送を高速化できる。
【０００７】
また本発明では、前記転送コントローラが、前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫ又は零長のデータを連続して所与の回数だけ受信した場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行するようにしてもよい。また本発明では、前記転送コントローラが、前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫではなく零長ではないデータを、所与の時間だけ受信しなかった場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行するようにしてもよい。このようにすれば、一方のＵＳＢデバイスから他方のＵＳＢデバイスに送信すべきデータが無いのに、無駄な電力が消費されてしまうという事態を防止できる。
【０００８】
また本発明では、前記転送コントローラが、前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してインタラプト転送を用いて定期的にＩＮトークンを発行するようにしてもよい。
【０００９】
また本発明では、前記転送コントローラが、前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してバルク転送を用いて定期的に又は不定期にＩＮトークンを発行するようにしてもよい。
【００１０】
また本発明は、上記のいずれかのデータ転送制御装置と、前記第１のＵＳＢデバイスを接続するための第１のコネクタと、前記第２のＵＳＢデバイスを接続するための第２のコネクタとを含む接続機器に関係する。このような構成の接続機器によれば、あたかも第１、第２のＵＳＢデバイス間で直接にデータ転送しているかのように見えるデータ転送を実現できる。
【００１１】
また本発明は、ＵＳＢ（Universal Serial Bus）を介して第１、第２のＵＳＢデバイス間でデータを転送するためのデータ転送制御方法であって、前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、発行したＩＮトークンに対する応答として、前記第１、第２のＵＳＢデバイスの一方のＵＳＢデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のＵＳＢデバイスの他方のＵＳＢデバイスに対してＯＵＴトークンを発行して、前記一方のＵＳＢデバイスから受信したデータを前記他方のＵＳＢデバイスに送信し、ＮＡＫではなく零長ではないデータを一方のＵＳＢデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のＵＳＢデバイスのいずれか一方又は両方に対してＩＮトークンを発行するデータ転送制御方法に関係する。
【００１２】
また本発明は、第１、第２のデバイスを接続する接続機器のためのデータ転送制御装置であって、転送データを一時的に格納するデータバッファと、データ転送を制御する転送コントローラとを含み、前記転送コントローラが、前記第１、第２のデバイスのいずれか一方又は両方に対して第１の時間間隔でＩＮトークンを発行し、発行したＩＮトークンに対する応答として、前記第１、第２のデバイスの一方のデバイスから、ＮＡＫ（Negative AcKnowledgment）ではなく零長ではないデータを受信した場合には、前記第１、第２のデバイスの他方のデバイスに対してＯＵＴトークンを発行して、前記一方のデバイスから受信したデータを前記他方のデバイスに送信し、ＮＡＫではなく零長ではないデータを一方のデバイスから受信した後は、前記第１の時間間隔よりも短い第２の時間間隔で前記第１、第２のデバイスのいずれか一方又は両方に対してＩＮトークンを発行するデータ転送制御装置に関係する。
【００１３】
また本発明では、前記転送コントローラが、前記第２の時間間隔で発行したＩＮトークに対する応答として、ＮＡＫ又は零長のデータを連続して所与の回数だけ受信した場合には、前記第２の時間間隔よりも長い前記第１の時間間隔で前記第１、第２のデバイスのいずれか一方又は両方に対してＩＮトークンを発行するようにしてもよい。
【発明を実施するための最良の形態】
【００１４】
以下、本実施形態について説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００１５】
１．ＵＳＢ
ＵＳＢではデータ転送の主導権をホストが有している。このためホストの処理負荷は重くなるが、ホストとなるパーソナルコンピュータ等は高性能なＣＰＵ（プロセッサ）を有しているため、それほど問題にはならない。一方、ＵＳＢデバイス（ＵＳＢデバイス機器、ターゲット）はホストからの要求に対して単に応答するだけでよいため、ＵＳＢデバイス側の処理、構成については簡素化できるという利点がある。ＵＳＢではこのようなホスト主導のデータ転送を実現するために、図１（Ａ）に示すようなエンドポイント（ＥＰ０〜１５）がＵＳＢデバイス側に用意される。ホストは、デバイスアドレスとエンドポイント番号を指定することで、所望のエンドポイントへのデータ送信や、所望のエンドポイントからのデータ受信を自由に行うことができる。
【００１６】
なおＵＳＢでは、データ転送のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送が用意されている。コントロール転送は、ホストとＵＳＢデバイス（ターゲット）との間でエンドポイント０を介して行われる制御用の転送モードである。アイソクロナス転送は、画像や音声のデータを定期的に転送するために用意された転送モードである。インタラプト転送は、比較的低い転送速度で少量のデータを定期的に転送するために用意された転送モードである。バルク転送は、不定期に発生する大量のデータを転送するために用意された転送モードである。
【００１７】
図１（Ｂ）に示すように、ＵＳＢのトランザクションは、トークンパケットと、オプショナルなデータパケットと、オプショナルなハンドシェークパケットにより構成される。
【００１８】
ここでトークンパケットは、ホストがＵＳＢデバイスのエンドポイントのリードやライトを要求する場合などに使用されるパケットである。このトークンパケットは、ＰＩＤ（ＯＵＴ、ＩＮ、ＳＯＦ、ＳＥＴＵＰなどのパケットＩＤ）、ＡＤＤＲ（デバイスアドレス）、ＥＮＤＰ（エンドポイント番号）、ＣＲＣ（Cyclic Redundancy Check）のフィールドを有する。データパケットは、データの実体（data body）を送るためのパケットであり、ＰＩＤ（ＤＡＴＡ０、ＤＡＴＡ１）、ＤＡＴＡ、ＣＲＣのフィールドを有する。ハンドシェークパケットは、データ受信に成功したか否かを受信側が送信側に伝えるためのパケットであり、ＰＩＤ（ＡＣＫ、ＮＡＫ、ＳＴＡＬＬ）のフィールドを有する。
【００１９】
ＯＵＴトランザクション（ホストがＵＳＢデバイスに情報を出力するトランザクション）では、図１（Ｃ）に示すように、まず、ホストがＵＳＢデバイスに対してＯＵＴトークン（トークンパケット）を発行する。次に、ホストはＵＳＢデバイスに対してＯＵＴデータ（データパケット）を送信する。そして、ＵＳＢデバイスは、ＯＵＴデータの受信に成功すれば、ホストに対してＡＣＫ（ハンドシェークパケット）を送信する。このようにすることで、ホストがＵＳＢデバイスにデータをライトする処理が実現される。
【００２０】
一方、ＩＮトランザクション（ホストがＵＳＢデバイスから情報を入力するトランザクション）では、図１（Ｄ）に示すように、まず、ホストがＵＳＢデバイスに対してＩＮトークン（トークンパケット）を発行する。そして、ＩＮトークンを受信したＵＳＢデバイスは、ホストに対してＩＮデータ（データパケット）を送信する。そしてホストは、ＩＮデータの受信に成功すると、ＵＳＢデバイスに対してＡＣＫを送信する。このようにすることで、ホストがＵＳＢデバイスからデータをリードする処理が実現される。
【００２１】
なお図１（Ｃ）（Ｄ）において、”Ｄ←Ｈ”は、ホストからＵＳＢデバイスに対して情報が転送されることを意味し、”Ｄ→Ｈ”は、ＵＳＢデバイスからホストに対して情報が転送されることを意味する。
【００２２】
図１（Ｃ）（Ｄ）に示すようにＵＳＢでは、ライト処理の場合にはホストがＯＵＴトークンを発行し、リード処理の場合にはホストがＩＮトークンを発行するというように、データ転送の主導権をホストが有している。従って第１、第２のＵＳＢデバイス間でデータのやり取りを行う場合には、常にパーソナルコンピュータなどのホストが必要になるという課題があった。
【００２３】
２．構成例
図２に、以上のような課題を解決できる本実施形態のデータ転送制御装置（データ転送制御回路、データ転送制御ＩＣ）の構成例を示す。なお図２の一部の機能ブロックを省略する構成としてもよい。また図２の機能ブロックはハードウェア回路のみにより実現してもよいし、ハードウェア回路とファームウェア（ソフトウェア）の両方により実現してもよい。
【００２４】
データ転送制御装置１１０はトランシーバ１０-1、１０-2を含む。このトランシーバ１０-1、１０-2は、差動データ信号ＤＰ、ＤＭを用いてＵＳＢ（広義にはバス）のデータを送受信する回路であり、ＵＳＢの物理層回路を含む。トランシーバ１０-1、１０-2は、ＵＳＢポートを介してＵＳＢデバイスが接続可能となっている。
【００２５】
データ転送制御装置１１０はルートハブ２０を含む。このルートハブ２０はホストコントローラ３０に直接接続されるハブである。ルートハブ２０は、ホストコントローラ３０と１又は複数のＵＳＢポートとの間のコネクションを提供する。
【００２６】
データ転送制御装置１１０はホストコントローラ３０（広義には転送コントローラ。他の説明でも同様）を含む。このホストコントローラ３０はＵＳＢを介したデータ転送を制御するものである。具体的にはＩＮトークン（ＩＮトークンパケット）やＯＵＴトークン（ＯＵＴトークンパケット）を発行する処理や、パケットを組み立てたり分解する処理や、ハンドシェークパケットを発行する処理などを行う。なお本実施形態のホストコントローラ３０は、パーソナルコンピュータのホストコントローラに要求されるような全てのホスト機能を具備する必要はなく、例えばＵＳＢ Ｏｎ−Ｔｈｅ−Ｇｏ（ＯＴＧ）規格のホストコントローラに要求されるような簡易的なホスト機能（少なくともＩＮトランザクション、ＯＵＴトランザクションを発生できる機能）を具備すれば十分である。
【００２７】
ホストコントローラ３０はメインコントローラ３２（ＣＰＵ、プロセッサ）とＳＩＥ（Serial Interface Engine）３４を含む。メインコントローラ３２はホストコントローラ３０の処理シーケンス等を制御するものであり、例えばＵＳＢのドライバ・ソフトウェアなどにより動作する。ＳＩＥ３４は、ＵＳＢのパケット・ハンドル処理、トランザクション管理処理などを行うものである。
【００２８】
データ転送制御装置１１０はデータバッファ４０（ＦＩＦＯ、パケットバッファ）を含む。データバッファ４０は、ＵＳＢを介して転送されるデータ（送信データ又は受信データ）を一時的に格納（バッファリング）するためものである。このデータバッファ４０はＲＡＭ（Random Access Memory）などのメモリにより構成できる。
【００２９】
本実施形態ではホストコントローラ３０（ＩＮトークン発行部）が、ＵＳＢデバイス１、ＵＳＢデバイス２のいずれか一方又は両方に対してＩＮトークン（ＩＮトークンのパケット）を発行し、転送すべきデータが無いか否かを確かめる。そして本実施形態では後述するように、ホストコントローラ３０が、ＩＮトークンを発行する時間間隔（発行周期）を可変に制御する。
【００３０】
ＩＮトークンの発行は、インタラプト転送などを用いて例えば定期的に行うことができる。即ちホストコントローラ３０は、パケットの転送順序を制御、管理し、各転送タイプのパケットの転送を指示する。このためにホストコントローラ３０は、フレーム管理を行い、フレーム（１ｍｓ、１２５μｓ）毎に、ＳＯＦ（Start Of Frame）パケットをＵＳＢデバイス（ペリフェラル機器）に発行する。ここでＳＯＦは、フレームの先頭を示すためのトークンパケットであり、ＰＩＤとフレーム番号とＣＲＣを含む。またフレームは、ＳＯＦと次のＳＯＦとの間のインターバルである。ホストコントローラ３０は、１つのトランザクションが複数のフレームにまたがらないようにスケジューリング管理を行うことになる。このＳＯＦを利用することでホストコントローラ３０は、ＩＮトークンパケットを定期的にＵＳＢデバイスに発行することができる。
【００３１】
なおＩＮトークンの発行を、バルク転送を用いて定期的又は不定期に行ってもよい。或いは他の転送モード（アイソクロナス転送、コントロール転送）を利用してＩＮトークンを発行してもよい。
【００３２】
ホストコントローラ３０は、ＵＳＢデバイス１、ＵＳＢデバイス２の一方のＵＳＢデバイスに発行したＩＮトークンに対する応答として、ＮＡＫ（ＮＡＫのハンドシェークパケット）ではなく、零長（零長のデータパケット）でもないデータ（データパケット）を、その一方のＵＳＢデバイスから受信すると、ＵＳＢデバイス１、ＵＳＢデバイス２の他方のＵＳＢデバイスに対してＯＵＴトークンを発行する。そして一方のＵＳＢデバイスから受信したデータ（転送すべきデータ、コマンドを含むデータ、或いはステータスを含むデータ）を、このＯＵＴトークンを利用して他方のＵＳＢデバイスに送信する。別の言い方をすれば、一方のＵＳＢデバイスから受信したデータ（データ、コマンド、ステータス）を、コマンド等の解釈を行わずに（ある程度の解釈を行ってもよい）、そのまま他方のＵＳＢデバイスに送信することで、ＵＳＢデバイス１、ＵＳＢデバイス２間でのピア・ツー・ピア（peer to peer）のデータ転送を実現する。
【００３３】
そして本実施形態ではホストコントローラ３０が、上記のようなピアー・ツー・ピアのデータ転送が行われた後は、しばらくの間、ＩＮトークンの発行の時間間隔を短くする。
【００３４】
具体的にはホストコントローラ３０は、最初は第１の時間間隔Ｔ１（第１の発行周期）でＩＮトークンを発行する。この時間間隔Ｔ１としては、特に限定はされないが１ｍｓｅｃ〜数ｍｓｅｃを採用できる。なお時間間隔Ｔ１は常に一定である必要はなく、時間間隔Ｔ１自体を状況に応じて可変に制御して変化させてもよい。
【００３５】
一方、ホストコントローラ３０は、ＮＡＫ（ＮＡＫハンドシェークパケット）ではなく零長（零長データパケット）ではないデータ（データパケット）を一方のＵＳＢデバイスから受信した後は、第１の時間間隔Ｔ１よりも短い第２の時間間隔Ｔ２（第２の発行周期）でＵＳＢデバイス１、ＵＳＢデバイス２のいずれか一方又は両方に対してＩＮトークンを発行する。即ちＩＮトークン発行の時間間隔を短くする。この時間間隔Ｔ２としては、特に限定はされないが数μｓｅｃ〜数十μｓｅｃを採用できる。なお時間間隔Ｔ２は常に一定である必要はなく、時間間隔Ｔ２自体を状況に応じて可変に制御して変化させてもよい。
【００３６】
以上のようにＩＮトークン発行の時間間隔を短くすることで、ＵＳＢデバイス１、ＵＳＢデバイス２間での転送レートを高めることができる。
【００３７】
そして、その後、ＩＮトークンに対する応答として、ＮＡＫしか返って来なくなった場合には、ＩＮトークンの発行間隔を元に戻す。具体的には、時間間隔Ｔ２で発行したＩＮトークに対する応答として、ＮＡＫ又は零長のデータを連続して所与の回数だけ受信した場合に、ＩＮトークン発行の時間間隔をＴ２からＴ１に戻す。或いは、ＮＡＫではなく零長ではないデータを所与の時間だけ受信しなかったことを条件として、ＩＮトークン発行の時間間隔をＴ２からＴ１に戻すようにしてもよい。
【００３８】
このようにＩＮトークン発行の時間間隔を元の長い時間間隔に戻すことで、ＩＮトークンが頻繁に発行されることに起因する無駄な電力消費を最小限に抑えることができる。
【００３９】
なおデータ転送制御装置１１０の構成は図２の構成に限定されない。例えば図３（Ａ）に示すように、ＵＳＢデバイス１用（第１のＵＳＢポート用）のトランシーバ１０-1、ルートハブ２０-1、ホストコントローラ３０-1、データバッファ４０-1と、ＵＳＢデバイス２用（第２のＵＳＢポート用）のトランシーバ１０-2、ルートハブ２０-2、ホストコントローラ３０-2、データバッファ４０-2を別々に設けてもよい。即ち図２の構成では、ＵＳＢデバイス１、ＵＳＢデバイス２は１つのＵＳＢにより接続されている。これに対して図３（Ａ）の構成では、ＵＳＢデバイス１が接続されるＵＳＢと、ＵＳＢデバイス２が接続されるＵＳＢとは異なっている。
【００４０】
図３（Ａ）のような構成にすれば、ＵＳＢデバイス１とデータ転送制御装置１１０との間の第１のＵＳＢデータ転送と、ＵＳＢデバイス２とデータ転送制御装置１１０との間の第２のＵＳＢデータ転送を、並列（独立）に行うことが可能になる。これによりデータ転送の高速化を図れる。例えばＵＳＢデバイス１との間でＩＮトランザクションのデータ転送を行っている最中に、ＵＳＢデバイス２との間でＯＵＴトランザクションのデータ転送を行うことなどが可能になる。
【００４１】
なお図３（Ａ）のような構成を採用する場合、図３（Ｂ）に示すようにデータバッファ４０をホストコントローラ３０-1、３０-2で共用するようにしてもよい。このようにすれば回路の小規模化を図りながらも、ＵＳＢデバイス１との間の第１のＵＳＢデータ転送とＵＳＢデバイス２との間の第２のＵＳＢデータ転送を、並列（独立）に行うことが可能になる。
【００４２】
３．接続機器
図４（Ａ）に本実施形態のデータ転送制御装置１１０を含む接続機器１００（広義には電子機器）の一例を示す。
【００４３】
この接続機器１００は、データ転送制御装置１１０（データ転送制御ＩＣ）が内蔵される封止部１１２（接続部、中継部、カバー部）と、封止部１１２の一端にその一端が接続されるケーブル１２０と、封止部１１２の他端にその一端が接続されるケーブル１２２と、ケーブル１２０の他端に接続されるコネクタ１３０（シリーズＢコネクタ）と、ケーブル１２２の他端に接続されるコネクタ１３２（シリーズＢコネクタ）を含む。このコネクタ１３０、１３２にはＵＳＢデバイス１、ＵＳＢデバイス２が接続可能になっている。また第１のコネクタ１３０はデータ転送制御装置１１０の第１のＵＳＢポートと電気的に接続され、第２のコネクタ１３２はデータ転送制御装置１１０の第２のＵＳＢポートと電気的に接続されている。
【００４４】
なおコネクタ１３０、１３２は、プラグ（Ｂ-Plug）であってもよいし、受け側コネクタであるレセプタクル（B-Receptacle）であってもよい。また図４（Ｂ）に示すように一方のケーブル１２０を設けない構成にしたり、図４（Ｃ）に示すように両方のケーブル１２０、１２２を設けない構成としてもよい。
【００４５】
図４（Ａ）（Ｂ）（Ｃ）に示す接続機器１００を用いれば、ＵＳＢデバイス１とＵＳＢデバイス２を接続機器１００を介して接続できる。そしてデータ転送制御装置１１０を用いて、ＵＳＢデバイス１、ＵＳＢデバイス２間でのピア・ツー・ピアのデータ転送を実現できる。例えばＵＳＢデバイス１がデジタルカメラ、携帯電話などの携帯型電子機器であり、ＵＳＢデバイス２がプリンタである場合には、いわゆるダイレクト・プリンティングを実現できる。またＵＳＢデバイス１が携帯型電子機器であり、ＵＳＢデバイス２が光ディスクドライブ、ハードディスクドライブなどのストレージ装置である場合には、ＵＳＢデバイス１のデータをこれらのストレージ装置にダイレクトにセーブすることが可能になる。
【００４６】
４．ＵＳＢデバイス用データ転送制御装置の構成
図５に、ＵＳＢデバイス側に内蔵されるデータ転送制御装置１９０の構成例を示す。なお図５の一部の機能ブロックを省略する構成としてもよい。
【００４７】
データ転送制御装置１９０はトランシーバ６０を含む。このトランシーバ６０は、差動データ信号ＤＰ、ＤＭを用いてＵＳＢのデータを送受信する回路である。このトランシーバ６０としては、ＵＳＢ２．０の物理層回路や論理層回路の一部についてのインターフェースを定義したＵＴＭＩ（USB2.0 Transceiver Macrocell Interface）に準拠したマクロセルなどを用いることができる。
【００４８】
データ転送制御装置１９０はペリフェラルコントローラ８０（広義には転送コントローラ。他の説明でも同様）を含む。このペリフェラルコントローラ８０はＵＳＢを介したデータ転送を制御するものである。なおペリフェラルコントローラ８０としてＯＴＧ規格に準拠したコントローラ（ペリフェラル機能とホスト機能の両方を有するコントローラ）を用いてもよい。
【００４９】
データ転送制御装置１９０はデータバッファ９０（ＦＩＦＯ、パケットバッファ）を含む。データバッファ９０は、ＵＳＢを介して転送されるデータ（送信データ又は受信データ）を一時的に格納（バッファリング）するためものである。このデータバッファ９０はＲＡＭなどのメモリにより構成できる。
【００５０】
そして本実施形態ではペリフェラルコントローラ８０は、ＵＳＢデバイス２に送信すべきデータ（データそのもの、コマンドを含むデータ、或いはステータスを含むデータ。他の説明でも同様）が無い場合には、図４（Ａ）（Ｂ）（Ｃ）の接続機器１００が含むデータ転送制御装置１１０（ホストコントローラ）からのＩＮトークン受信時に、ＮＡＫ（ＮＡＫのハンドシェークパケット）をデータ転送制御装置１１０に送信する。なお送信すべきデータが無い場合にペリフェラルコントローラ８０が、零長パケット（零長のデータパケット、ショートパケット）を送信するようにしてもよい。
【００５１】
一方、ペリフェラルコントローラ８０は、ＵＳＢデバイス２に送信すべきデータがある場合には、ＩＮトークン受信時に、そのデータをデータ転送制御装置１１０（ホストコントローラ）に送信する。するとデータ転送制御装置１１０はＵＳＢデバイス２に対してＯＵＴトークンを発行する。すると、このＯＵＴトークンにより、ペリフェラルコントローラ８０（ＵＳＢデバイス１）からの送信データが、データ転送制御装置１１０を介して、ＵＳＢデバイス２に送信される。
【００５２】
５．動作
５．１  基本的な動作
図６（Ａ）〜（Ｃ）は、本実施形態のデータ転送制御手法の基本動作を説明する図である。本実施形態のデータ転送制御手法では、ホストコントローラ３０が、ＵＳＢデバイス１、ＵＳＢデバイス２のいずれか一方又は両方に対してＩＮトークンを発行する。そして発行したＩＮトークンに対する応答として、ＵＳＢデバイス１、ＵＳＢデバイス２の一方のＵＳＢデバイスから、ＮＡＫではなく零長ではないデータ（零長ではないデータパケット）を受信した場合には、一方のＵＳＢデバイスから受信したデータを、他方のＵＳＢデバイスにそのまま送信する（例えば解釈することなく送信する）。
【００５３】
具体的には図６（Ａ）に示すように、ホストコントローラ３０（ホストと同義。他の説明でも同様）は、ＵＳＢデバイス１に対して例えばインタラプト転送により定期的に、データ受信のためのＩＮトークンを発行する。このＩＮトークンは例えば１ｍｓｅｃというように長い時間間隔Ｔ１で発行される。なおインタラプト転送以外の転送モードでＩＮトークンを発行してもよい。またＩＮトークンを不定期に発行してもよい。また図６（Ａ）ではＵＳＢデバイス１に対してだけデータ受信のためのＩＮトークンを発行しているが、ＵＳＢデバイス１のみならずＵＳＢデバイス２に対しても、データ受信のためのＩＮトークンを定期的に或いは不定期に発行してもよい。
【００５４】
図６（Ａ）に示すようにＵＳＢデバイス１は、ＵＳＢデバイス２に送信すべきデータ（データそのもの、コマンドを含むデータ、或いはステータスを含むデータ）が無い場合には、ＩＮトークンに対する応答としてＮＡＫ（Negative AcKnowledgment）を返送する。
【００５５】
なおＵＳＢデバイス１が、送信すべきデータが無い場合に、ホストコントローラ３０からのＩＮトークンに対する応答として零長パケット（零長のデータパケット、ショートパケット）を送信するようにしてもよい。この零長パケットは、ＩＲＰ（Ｉ／Ｏリクエストパケット）によるデータ転送を終了させる場合などに使用されるものである。ホストコントローラ３０は、ＵＳＢデバイス１に発行したＩＮトークンに対する応答として、ＵＳＢデバイス１から零長パケットを受信すると、ＵＳＢデバイス１に対してＡＣＫ（AcKnowledgment）のハンドシェークパケットを送信する。そして、その後に、再度、ＵＳＢデバイス１（或いはＵＳＢデバイス２）に対してＩＮトークンを発行することになる。
【００５６】
図６（Ｂ）に示すようにＵＳＢデバイス１は、ＵＳＢデバイス２に転送すべきデータがある場合には、ＩＮトークンに対する応答として、ＮＡＫ（零長パケット）ではなく、その転送データをホストコントローラ３０に送信する。この場合に送信する転送データは、画像データ、音声データ、或いはプリントデータなどのデータそのものであってもよいし、コマンド又はステータスを含むデータ（パケットのデータ本体のフィールドにコマンド又はステータスを埋め込んだもの）であってもよい。
【００５７】
そして図６（Ｃ）に示すようにホストコントローラ３０は、ＵＳＢデバイス１（一方のＵＳＢデバイス）からデータを受信すると、ＵＳＢデバイス２（他方のＵＳＢデバイス）に対してデータ送信のためのＯＵＴトークンを発行する。そしてＯＵＴトークンで発生したＯＵＴトランザクションにおいて、ＵＳＢデバイス１からの受信データをＵＳＢデバイス２に送信する。
【００５８】
以上のようにすることでＵＳＢデバイス１からＵＳＢデバイス２にデータを送信することが可能になる。これにより、画像データ、音声データ、或いはプリントデータなどのデータそのものをＵＳＢデバイス１からＵＳＢデバイス２に送信できる。これにより、例えばＵＳＢデバイス１がデジタルカメラや携帯電話であり、ＵＳＢデバイス２がプリンタである場合には、いわゆるダイレクト・プリンティングを実現できる。またこの本実施形態のデータ転送制御手法を用いれば、コマンドやステータスを、ＵＳＢデバイス１からＵＳＢデバイス２に送信することも可能になる。この場合にはホストコントローラ３０は、このコマンドやステータスを解釈することなくそのままＵＳＢデバイス１からＵＳＢデバイス２にコマンドやステータスを転送すればよい。
【００５９】
なおＵＳＢデバイス２からＵＳＢデバイス１にデータ（データそのもの、コマンドを含むデータ、或いはステータスを含むデータ）を送信する場合には、ホストコントローラ３０が、ＵＳＢデバイス２に対してデータ受信のためのＩＮトークンを発行し、ＵＳＢデバイス１に対してデータ送信のためのＯＵＴトークンを発行すればよい。
【００６０】
５．２  ＩＮトークン発行の時間間隔の制御
本実施形態のデータ転送制御手法では図６（Ａ）（Ｂ）に示すように、ホストコントローラ３０が、例えば１ｍｓｅｃというように比較的長い時間間隔Ｔ１でＩＮトークンを発行している。このように長い時間間隔Ｔ１でＩＮトークンを発行すれば、ＩＮトークンの発行に起因する無駄な電力消費を低減できる。
【００６１】
しかしながら図６（Ｂ）（Ｃ）に示すように、一度、ＵＳＢデバイス１、ＵＳＢデバイス２間でデータ転送が開始された後は、ＩＮトークン発行の時間間隔がＴ１というように長いと、データ転送を高速化できないおそれがある。
【００６２】
そこで本実施形態ではホストコントローラ３０がＩＮトークン発行の時間間隔を可変に制御している。より具体的には図６（Ｂ）のようにＮＡＫ（或いは零長パケット）ではなく通常のデータを受信した後は、ＩＮトークン発行の時間間隔を短くする。
【００６３】
例えば図７のＡ１、Ａ２、Ａ３では、ホストコントローラ３０が長い時間間隔Ｔ１（例えば１ｍｓｅｃ）でＩＮトークンをＵＳＢデバイス１、ＵＳＢデバイス２に発行している。一方、Ａ４に示すようにホストコントローラ３０がＩＮトークンに対する応答としてＮＡＫではない通常のデータを受信した後は、Ａ５〜Ａ１０に示すようにＴ１よりも短い時間間隔Ｔ２（例えば１０μｓｅｃ）でＩＮトークンを発行する。このようにＮＡＫではない通常のデータを受信した後には、頻繁にＩＮトークンを発行することで、データ転送の高速化を期待できる。
【００６４】
例えば、ＵＳＢデバイス１からＵＳＢデバイス２へのデータの送信が、ＵＳＢデバイス１からホストコントローラ３０へのＩＮ転送とホストコントローラ３０からＵＳＢデバイス２へのＯＵＴ転送からなる１回のデータ転送では完了せずに、送信すべきデータが残ってしまう場合がある。このような場合にも、図７のＡ５〜Ａ１０に示すように短い時間間隔でＩＮトークンを発行するようにすれば、残った送信データを素速く送信することが可能となり、データ転送を高速化できる。
【００６５】
そして、例えばＮＡＫ（或いは零長パケット）を連続して所定の回数（Ｎ回）だけ受信した場合には、ＩＮトークン発行の時間間隔をＴ１に戻すようにすれば、その後は、余計なＩＮトークンが発行されるのが防止される。従って、ＩＮトークン発行に起因する無駄な電力消費を抑えることができる。この結果、データ転送の高速化と省電力化を両立できる。なおＮＡＫ（或いは零長パケット）ではない通常のデータを、所与の時間だけ受信しなかったこと条件に、ＩＮトークン発行の時間間隔をＴ２からＴ１に戻すようにしてもよい。或いは他の要因を条件にＩＮトークン発行の時間間隔をＴ２からＴ１に戻してもよい。また時間間隔Ｔ１、Ｔ２そのものを種々の条件に基づいて可変に制御してもよい。
【００６６】
５．３  詳細な動作例
次に本実施形態の詳細な動作例を説明する。なお本実施形態では、ＵＳＢデバイス１、ＵＳＢデバイス２が、通常のＵＳＢ規格で定義されるデバイスでありながら、能動的な動作を実行できるデバイスであるものとして説明する。このようなＵＳＢデバイスの能動的な動作は、このような動作を実現するプログラム（ファームウェア、アプリケーション層プログラム）をＵＳＢデバイス側のデータ転送制御装置（図５参照）に実装することで実現できる。
【００６７】
図８に本実施形態のデータ転送制御手法のフェーズ遷移を示す。まず、ＵＳＢデバイス１がアイドル状態からコマンドフェーズに移行する。そしてＵＳＢデバイス１が、コマンドを含むデータを送信すると、ＵＳＢデバイス２もコマンドフェーズに移行する。次にＵＳＢデバイス１、ＵＳＢデバイス２がデータフェーズに移行して、データ転送が行われる。データ転送が完了すると、ＵＳＢデバイス２がステータスフェーズに移行し、ステータスを含むデータを送信する。そしてＵＳＢデバイス２もステータスフェーズに移行して、データ転送の完了を確認する。
【００６８】
図９（Ａ）〜図１０（Ｃ）に本実施形態のデータ転送制御手法の詳細な動作説明図を示す。まず図９（Ａ）に示すように、ホストコントローラ３０がＵＳＢデバイス１、ＵＳＢデバイス２に対してＩＮトークンを発行する。この時のＩＮトークン発行の時間間隔は図７で説明しようにＴ１となる。ＵＳＢデバイス１、ＵＳＢデバイス２は、送信すべきデータが無い場合には、ＩＮトークンに対する応答としてＮＡＫ（或いは零長パケット）を送信する。
【００６９】
一方、ＵＳＢデバイス１は、送信すべきデータがある場合には、図８の（２）に示すようにコマンドフェーズに移行し、図９（Ｂ）に示すようにＩＮトークンに対する応答として、ＮＡＫ（零長パケット）ではなく、ライトコマンドを含むデータを送信する。
【００７０】
ホストコントローラ３０はこのライトコマンドを解釈せずに（ある程度解釈してもよい）、図９（Ｃ）に示すように、ＵＳＢデバイス２に対してＯＵＴトークンを発行して、ライトコマンドを含むデータ（データパケット）をＵＳＢデバイス２に送信する。これにより図８の（３）に示すようにＵＳＢデバイス２はコマンドフェーズに移行する。
【００７１】
次に図１０（Ａ）に示すようにホストコントローラ３０はＵＳＢデバイス１に対してＩＮトークンを発行し、このＩＮトークンに対する応答としてＵＳＢデバイス１からデータを受信する。またＵＳＢデバイス２に対してＯＵＴトークンを発行し、ＵＳＢデバイス１からの受信データをＵＳＢデバイス２に送信する。即ち図８の（４）に示すようにＵＳＢデバイス１、ＵＳＢデバイス２はデータフェーズに移行してデータ転送を行う。なお図１０（Ａ）に示すように、この時のＩＮトークン発行の時間間隔はＴ１よりも短いＴ２になっている。従って、ＵＳＢデバイス１とＵＳＢデバイス２との間のデータ転送を高速に行うことができ、データ転送を早期に完了できる。
【００７２】
データ転送が完了すると、ＵＳＢデバイス２は図８の（５）のようにステータスフェーズに移行する。そして図１０（Ｂ）に示すようにＵＳＢデバイス２は、ホストコントローラ３０からのＩＮトークンに対する応答として、ステータス（転送コンプリート）を含むデータをホストコントローラ３０に送信する。するとホストコントローラ３０は、ＵＳＢデバイス１に対してＯＵＴトークンを発行し、ＵＳＢデバイス２から受信したステータスを含むデータを、ＵＳＢデバイス１に送信する。これにより図８の（６）のようにＵＳＢデバイス１もステータスフェーズに移行する。以上のようにしてＵＳＢデバイス１、ＵＳＢデバイス２間の一連のデータ転送処理が完了する。
【００７３】
なお、図１１（Ａ）〜図１２（Ｃ）に、ＵＳＢデバイス１がＵＳＢデバイス２からのデータを受信する場合の動作説明図を示す。この場合には図１１（Ａ）に示すようにホストコントローラ３０はＵＳＢデバイス１、ＵＳＢデバイス２に対して時間間隔Ｔ１でＩＮトークンを発行する。そして図１１（Ｂ）に示すようにホストコントローラ３０は、ＩＮトークンに対する応答として、リードコマンドを含むデータをＵＳＢデバイス１から受信すると、図１１（Ｃ）に示すようにＵＳＢデバイス２にＯＵＴトークンを発行する。そして受信したリードコマンドを含むデータをＵＳＢデバイス２に送信する。
【００７４】
次に、図１２（Ａ）に示すようにホストコントローラ３０は、ＵＳＢデバイス２に対してＩＮトークンを発行し、ＵＳＢデバイス２１からデータを受信する。またＵＳＢデバイス１に対してＯＵＴトークンを発行し、ＵＳＢデバイス２からの受信データをＵＳＢデバイス１に送信する。その後、図１２（Ｂ）（Ｃ）に示すように、ＵＳＢデバイス２にＩＮトークンを発行して、ステータスを含むデータを受信し、ＵＳＢデバイス１にＯＵＴトークンを発行して、受信したステータスを含むデータをＵＳＢデバイス１に送信する。
【００７５】
図９（Ａ）〜図１２（Ｃ）のデータ転送制御手法によれば、ホストコントローラ３０は、ＵＳＢデバイス１やＵＳＢデバイス２から受信したデータに含まれるコマンドやステータスを解釈しなくても済む。即ちホストコントローラ３０は、ＵＳＢデバイス１、ＵＳＢデバイス２のいずれか一方のＵＳＢデバイスから、ＩＮトークンに対する応答として受信したデータを、他方のＵＳＢデバイスに単純に送信するだけで済む。従ってホストコントローラ３０の回路構成やシーケンス制御を簡素化することができ、ホストコントローラ３０（データ転送制御装置）の小規模化、低コスト化を図れる。しかも本実施形態によれば、ＩＮトークン発行の時間間隔を可変に制御することで、データ転送の高速化を実現しながらも省電力化を図れるという利点がある。
【００７６】
５．４  ホストコントローラのステート遷移
図１３にホストコントローラ３０のステート遷移例を示す。まずＵＳＢバスにアタッチ（接続）されると、ホストコントローラ３０のステートはサスペンド状態に移行する。その後、ＵＳＢデバイスからのレジュームにより、ステートはアイドル状態に移行する。なおＵＳＢバスへのアタッチ後、すぐにアイドル状態に移行するようにしてもよい。
【００７７】
ステートがアイドル状態に移行すると、ホストコントローラ３０は、時間間隔Ｔ１でＩＮトークンをＵＳＢデバイスに対して発行する。そしてＮＡＫ（或いは零長パケット）ではない通常のデータを受信すると、ステートは通常転送状態に移行する。するとホストコントローラ３０は、Ｔ１よりも短い時間間隔Ｔ２でＩＮトークンをＵＳＢデバイスに対して発行するようになる。
【００７８】
次に、ＮＡＫの連続受信回数がＭ回（Ｍは２以上の自然数）を超えると、ホストコントローラ３０のステートはアイドル状態に移行する。そしてＩＮトークン発行の時間間隔はＴ２からＴ１に戻る。一方、ＮＡＫの連続受信回数がＮ回（Ｎ＞Ｍ。Ｎは２以上の自然数）を超えると、ホストコントローラ３０のステートはサスペンド状態に移行する。そしてホストコントローラ３０はサスペンド状態が解除されるまでＩＮトークンの発行を停止する。
【００７９】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【００８０】
例えば、本発明のデータ転送制御装置の構成は図２、図３（Ａ）（Ｂ）、図５等で説明した構成に限定されず、接続機器の構成も図４（Ａ）（Ｂ）（Ｃ）で説明した構成に限定されない。また図６（Ａ）〜図１３で説明したデータ転送制御手法以外の手法によりデータ転送を制御してもよい。また本発明のデータ転送制御装置は接続機器以外の電子機器にも適用できる。また本実施形態では、ホストからのＩＮトークンに対する応答としてＵＳＢデバイスがＮＡＫを送信する場合について主に説明したが、ホストからのＩＮトークンに対する応答としてＵＳＢデバイスが零長パケット（零長のデータパケット）を送信する場合にも本発明は適用できる。
【００８１】
また、明細書や図面中の記載において広義又は同義な用語（転送コントローラ、一方のＵＳＢデバイス、他方のＵＳＢデバイス、電子機器等）として引用された用語（ホストコントローラ・ペリフェラルコントローラ、ＵＳＢデバイス１、ＵＳＢデバイス２、接続機器等）は、明細書や図面中の他の記載においても広義又は同義な用語に置き換えることができる。
【００８２】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【００８３】
また本発明は、ＵＳＢ１．１、ＵＳＢ２．０、或いはこれらの規格と同様の思想に基づく規格や、これらの規格を発展させた規格におけるデータ転送制御手法にも適用できる。
【図面の簡単な説明】
【００８４】
【図１】図１（Ａ）〜（Ｄ）はＵＳＢの転送手法の説明図である。
【図２】本実施形態のデータ転送制御装置の構成の一例である。
【図３】図３（Ａ）（Ｂ）は本実施形態のデータ転送制御装置の構成の他の例である。
【図４】図４（Ａ）（Ｂ）（Ｃ）は接続機器の構成例である。
【図５】ＵＳＢデバイス用のデータ転送制御装置の構成例である。
【図６】図６（Ａ）（Ｂ）（Ｃ）はデータ転送制御手法の動作説明図である。
【図７】ＩＮトークン発行の時間間隔を可変に制御する手法の説明図である。
【図８】データ転送制御手法のフェーズ遷移図である。
【図９】図９（Ａ）（Ｂ）（Ｃ）はデータ転送制御手法の詳細な動作説明図である。
【図１０】図１０（Ａ）（Ｂ）（Ｃ）もデータ転送制御手法の詳細な動作説明図である。
【図１１】図１１（Ａ）（Ｂ）（Ｃ）はデータ転送制御手法の詳細な動作説明図である。
【図１２】図１２（Ａ）（Ｂ）（Ｃ）もデータ転送制御手法の詳細な動作説明図である。
【図１３】ホストコントローラのステート遷移図である。
【符号の説明】
【００８５】
１０-1、１０-2  トランシーバ、２０  ルートハブ、
３０  ホストコントローラ（転送コントローラ）、３２  メインコントローラ、
３４  ＳＩＥ、４０  データバッファ（ＦＩＦＯ）、
６０  トランシーバ、８０  ペリフェラルコントローラ（転送コントローラ）、
８２  メインコントローラ、８４  ＳＩＥ、９０  データバッファ（ＦＩＦＯ）、
１００  接続機器、１１０  データ転送制御装置（接続機器用）、
１１２  封止部、１２０、１２２  ケーブル、１３０、１３２  コネクタ
１９０  データ転送制御装置（ＵＳＢデバイス用）、
【図１】
2005100008.tif 000003
【図２】
2005100008.tif 000004
【図３】
2005100008.tif 000005
【図４】
2005100008.tif 000006
【図５】
2005100008.tif 000007
【図６】
2005100008.tif 000008
【図７】
2005100008.tif 000009
【図８】
2005100008.tif 000010
【図９】
2005100008.tif 000011
【図１０】
2005100008.tif 000012
【図１１】
2005100008.tif 000013
【図１２】
2005100008.tif 000014
【図１３】
2005100008.tif 000015