(57)【要約】【課題】データ転送する信号の減衰を低減することができる通信制御方法及びインターフェース装置を提供すること。【解決手段】ＵＳＢホスト装置１のＡ／Ｄ変換回路２０は、ＵＳＢデバイス装置からの差動信号の振幅値を測定してデバイス差動振幅値Ｄｄ１を生成する。ＵＳＢデバイス装置のマイクロコントローラは、デバイス差動振幅値Ｄｄ１に基づいて、ＨＳドライバ回路の駆動電流を上げる。また、ＵＳＢデバイス装置のＡ／Ｄ変換回路は、ＵＳＢホスト装置１からの差動信号の振幅値を測定してホスト差動振幅値Ｄｄ２を生成する。ＵＳＢホスト装置１のマイクロコントローラ８は、ホスト差動振幅値Ｄｄ２に基づいて、ＨＳドライバ回路１１の駆動電流を上げる。【選択図】図２
2010287035.tif 000002
【特許請求の範囲】
【請求項１】
インターフェース装置がシリアルバスを介してデータ転送を行う通信制御方法であって、
一方のインターフェース装置がドライバ回路を介してデータを他方のインターフェース装置に送信する工程と、
前記他方のインターフェース装置が前記データを受信し、受信した前記データの振幅値を測定する工程と、
前記他方のインターフェース装置が測定した前記データの振幅値に応じて、前記ドライバ回路の駆動電流を制御して前記データの振幅値を変更する工程と
を有することを特徴とする通信制御方法。
【請求項２】
インターフェース装置が終端抵抗で終端されたシリアルバスを介してデータ転送を行う通信制御方法であって、
一方のインターフェース装置がデータを他方のインターフェース装置に送信する工程と、
前記他方のインターフェース装置が前記データを受信し、受信した前記データの振幅値を測定する工程と、
前記他方のインターフェース装置が測定した前記データの振幅値に応じて、前記シリアルバスを終端する終端抵抗の抵抗値を制御して前記データの振幅値を変更する工程と
を有することを特徴とする通信制御方法。
【請求項３】
請求項１又は２に記載の通信制御方法であって、
第１の転送速度と、該第１の転送速度よりも遅い第２の転送速度とでデータ転送を行い、
第２の転送速度でデータ転送を行う期間に、前記他方のインターフェース装置が前記一方のインターフェース装置からの前記データの振幅値を測定することを特徴とする通信制御方法。
【請求項４】
請求項１〜３のいずれか１つに記載の通信制御方法であって、
前記シリアルバスはＵＳＢであることを特徴とする通信制御方法。
【請求項５】
請求項４に記載の通信制御方法であって、
前記第２の転送速度で前記データの送受信を行う期間は、
ＵＳＢホストの前記インターフェース装置がＵＳＢデバイスの前記インターフェース装置の接続を検出する期間であり、
前記シリアルバスを介して受信した前記データは、
チャープ信号であることを特徴とする通信制御方法。
【請求項６】
シリアルバスを介してデータ転送を行うインターフェース装置であって、
他のインターフェース装置に送信データを出力するとともに、その送信データの振幅値を駆動電流にて制御するドライバ回路と、
前記他のインターフェース装置から前記シリアルバスを介して受信した受信データの振幅値を測定する測定部と、
前記他のインターフェース装置の測定部が測定した前記送信データの振幅値に応じて、前記ドライバ回路の駆動電流を制御する制御部と
を有することを特徴とするインターフェース装置。
【請求項７】
ＵＳＢを介してデータ転送を行うインターフェース装置であって、
他のインターフェース装置に送信データを出力するとともに、その送信データの振幅値を駆動電流又は前記ＵＳＢを終端する終端抵抗の抵抗値にて制御するドライバ回路と、
前記他のインターフェース装置から前記ＵＳＢを介して受信したチャープ信号の振幅値を測定する測定部と、
前記他のインターフェース装置の測定部が測定した前記チャープ信号の振幅値を記憶し、前記チャープ信号の振幅値が低下してフルスピード転送を開始すると、又は、ハイスピード転送において送信データの振幅値が低下すると、その記憶した前記他のインターフェース装置の測定部が測定した前記チャープ信号の振幅値に応じて、前記ドライバ回路の駆動電流又は前記ＵＳＢを終端する終端抵抗の抵抗値を制御する制御部と
を有することを特徴とするインターフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
通信制御方法及びインターフェース装置に関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータと、キーボード、マウス、プリンタなどの各種コンピュータ周辺機器とを接続するためのインターフェース規格として、ユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）が用いられている。このＵＳＢは、コンピュータ周辺機器に関するプラグ＆プレイ機能、ホットプラグ・プラグアウト機能、コネクタケーブルの共通化などの特徴を有している。
【０００３】
近年、従来の１．５Ｍｂｐｓでデータ転送を行うロウスピード（Ｌｏｗ  Ｓｐｅｅｄ）モード、及び、１２Ｍｂｐｓでデータ転送を行うフルスピード（Ｆｕｌｌ  Ｓｐｅｅｄ）モードに加え、新たに４８０Ｍｂｐｓで高速なデータ転送を可能にするハイスピード（Ｈｉｇｈ  Ｓｐｅｅｄ）モードを設けたＵＳＢ２．０の規格が策定されている。ＵＳＢ２．０では、このようなハイスピードモードを備えているため、プリンタ、オーディオ、カメラなどにおけるデータ転送のみならず、ハードディスクドライブや光ディスクドライブ（ＣＤ−ＲＯＭ，ＤＶＤ）などのストレージ機器におけるデータ転送も実現できるようになる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３４４５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、終端抵抗やドライバ電流のずれやＵＳＢケーブルが長くなると、データ転送する信号が減衰してしまう。特に４８０Ｍｂｐｓで高速にデータ転送を行うハイスピードモードでは、データ転送する信号が大きく減衰してしまう。このため、ＵＳＢ２．０に対応した各種コンピュータ周辺機器をホストコンピュータに接続しても、ハイスピードモードのデータ転送ができない場合があった。
【０００６】
この通信制御方法及びインターフェース装置は、データ転送する信号の減衰を低減することを目的とする。
【課題を解決するための手段】
【０００７】
この通信制御方法は、インターフェース装置がシリアルバスを介してデータ転送を行う通信制御方法であって、一方のインターフェース装置がドライバ回路を介してデータを他方のインターフェース装置に送信する工程と、前記他方のインターフェース装置が前記データを受信し、受信した前記データの振幅値を測定する工程と、前記他方のインターフェース装置が測定した前記データの振幅値に応じて、前記ドライバ回路の駆動電流を制御して前記データの振幅値を変更する工程とを有するようにした。
【発明の効果】
【０００８】
開示された通信制御方法及びインターフェース装置は、データ転送する信号の減衰を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態のネットワークシステムの概略図である。
【図２】第１実施形態のＵＳＢホスト装置のブロック図である。
【図３】第１実施形態のＵＳＢデバイス装置のブロック図である。
【図４】ＵＳＢホスト装置とＵＳＢデバイス装置の動作波形図である。
【図５】ＨＳドライバ回路の駆動電流調整処理のフロー図である。
【発明を実施するための形態】
【００１０】
以下、実施形態を図１〜図５に従って説明する。
図１は、ＵＳＢホスト装置１、ＵＳＢデバイス装置２のシステム構成を示し、シリアルインターフェースの一つであるＵＳＢ２．０に準拠したデータ転送を行うネットワークシステムを概略的に示すブロック図である。ネットワークシステムは、ＵＳＢホスト装置１とＵＳＢデバイス装置２がＵＳＢケーブル５を介して接続されている。例えば、ＵＳＢホスト装置１はパーソナルコンピュータ、ＵＳＢデバイス装置２はキーボード、マウス、プリンタなどの各種コンピュータ周辺機器が考えられる。
【００１１】
ＵＳＢケーブル５は、第１データ線ＤＰと第２データ線ＤＭからなるツイストペア信号線と、第１電源線Ｌ１と第２電源線Ｌ２からなる非ツイスト電源線を有している。
ツイストペア信号線を構成する第１データ線ＤＰと第２データ線ＤＭは、相補信号線である。そして、ＵＳＢホスト装置１からＵＳＢデバイス装置２に出力される信号は、ＵＳＢホスト装置１にて相補信号（以下、差動信号という）に変換され、それぞれ対応する第１データ線ＤＰまたは第２データ線ＤＭを介して、ＵＳＢデバイス装置２に出力される。同様に、ＵＳＢデバイス装置２からＵＳＢホスト装置１に出力される信号は、ＵＳＢデバイス装置２にて差動信号に変換されて、それぞれ対応する第１データ線ＤＰまたは第２データ線ＤＭを介して、ＵＳＢホスト装置１に出力される。
【００１２】
また、非ツイスト電源線を構成する第１電源線Ｌ１は、電源ＶＢＵＳがＵＳＢホスト装置１から印加される。また、第２電源線Ｌ２は、ＵＳＢホスト装置１を介してグランドに接続されている。
【００１３】
ＵＳＢ２．０では、１．５Ｍｂｐｓでデータ転送を行うロウスピード（Ｌｏｗ  Ｓｐｅｅｄ）モード、１２ｂｐｓでデータ転送を行うフルスピード（Ｆｕｌｌ  Ｓｐｅｅｄ）モード、４８０Ｍｂｐｓでデータ転送を行うハイスピード（Ｈｉ  Ｓｐｅｅｄ）モードの３種類の転送モードが設けられている。
【００１４】
上記のデータ転送を行うため、図２に示すように、ＵＳＢホスト装置１は、インターフェース回路６、制御回路７、マイクロコントローラ８を含んでいる。
インターフェース回路６は、制御回路７で処理されたデータを第１及び第２データ線ＤＰ，ＤＭを介して前記ＵＳＢデバイス装置２に送信するための差動信号に変換する。また、インターフェース回路６は、第１及び第２データ線ＤＰ，ＤＭを介して受信するＵＳＢデバイス装置２からの差動信号を制御回路７で処理するためのデータに変換する。
【００１５】
インターフェース回路６は、ＵＳＢ２．０に規定されたＨＳドライバ回路１１、ＬＳ／ＦＳドライバ回路１２、ＨＳレシーバ回路１３、ＬＳ／ＦＳレシーバ回路１４を有している。また、インターフェース回路６は、ノイズ検出回路（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｅｎｖｅｌｏｐｅ  Ｄｅｔｅｃｔｏｒ）１５、切断検出回路（Ｄｉｓｃｏｎｎｅｃｔｉｏｎ  Ｅｎｖｅｌｏｐｅ  Ｄｅｔｅｃｔｏｒ）１６、シングル・エンデット・レシーバ（Ｓｉｎｇｌｅ  Ｅｎｄｅｄ  Ｒｅｃｅｉｖｅｒ）１７，１８、終端抵抗Ｒｓ、プルダウン抵抗Ｒｐｄを有している。さらに、本実施形態では、インターフェース回路６はＡ／Ｄ変換回路２０を含んでいる。
【００１６】
ＨＳドライバ回路１１はハイスピードモード用のデータドライバであって、ハイスピードモードにおいて、制御回路７からＨＳ送信データＤ１、マイクロコントローラ８から駆動電流値Ｄｒが入力される。ＨＳ送信データＤ１は、ハイスピードモードにおいて、ＨＳドライバ回路１１で差動信号に変換されて第１及び第２データ線ＤＰ，ＤＭを介してＵＳＢデバイス装置２に送信されるデータである。
【００１７】
駆動電流値Ｄｒは、ＨＳドライバ回路１１の駆動電流を制御し、ＵＳＢホスト装置１からの差動信号の振幅値を制御するデータである。本実施形態では、駆動電流値Ｄｒが大きいほど、ＨＳドライバ回路１１は、駆動電流を増大させて出力する差動信号の振幅値を大きくする。反対に、駆動電流値Ｄｒが小さいほど、ＨＳドライバ回路１１は、駆動電流を減少させて出力する差動信号の振幅値を小さくする。
【００１８】
ＬＳ／ＦＳドライバ回路１２はロウ・フルスピードモード用のデータドライバであって、ロウ・フルスピードモードにおいて、制御回路７からＬＳ／ＦＳ送信データＤ２が入力される。ＬＳ／ＦＳドライバ回路１２は、その入力されたＬＳ／ＦＳ送信データＤ２を差動信号に変換してそれぞれ終端抵抗Ｒｓを介してＵＳＢケーブル５に出力する。詳述すると、終端抵抗Ｒｓを介してそれぞれ出力された差動信号は、ＵＳＢケーブル５の対応する第１データ線ＤＰ、第２データ線ＤＭを介してＵＳＢデバイス装置２に出力される。
【００１９】
尚、ＬＳ／ＦＳドライバ回路１２は、ハイスピードモードにおいては、第１及び第２データ線ＤＰ，ＤＭにそれぞれＬレベルの信号をそれぞれ出力することで、第１及び第２データ線ＤＰ，ＤＭを終端抵抗Ｒｓで終端させている。なお、終端抵抗Ｒｓの抵抗値は、ＵＳＢ２．０に規定されている「４５Ω」になっている。
【００２０】
ＨＳレシーバ回路１３はハイスピードモード用のデータレシーバであって、ハイスピードモードにおいて、第１及び第２データ線ＤＰ，ＤＭを介してＵＳＢデバイス装置２からの差動信号を入力する。ＨＳレシーバ回路１３は、その入力された差動信号を制御回路７に対応したＨＳ受信データＤ３に変換して制御回路７に出力する。
【００２１】
ＬＳ／ＦＳレシーバ回路１４はロウ・フルスピードモード用のデータレシーバであって、ロウ・フルスピードモードにおいて、第１及び第２データ線ＤＰ，ＤＭを介してＵＳＢデバイス装置２からの差動信号を入力する。ＬＳ／ＦＳレシーバ回路１４は、その入力された差動信号を制御回路７に対応したＬＳ／ＦＳ受信データＤ４に変換して制御回路７に出力する。
【００２２】
ノイズ検出回路１５は、ＵＳＢデバイス装置２から第１及び第２データ線ＤＰ，ＤＭを介して入力される差動信号とノイズとを判別する。切断検出回路１６は、ＵＳＢホスト装置１とＵＳＢデバイス装置２との切断を検出する。
【００２３】
シングル・エンデット・レシーバ１７，１８は、それぞれ第１及び第２データ線ＤＰ，ＤＭから信号が入力される。シングル・エンデット・レシーバ１７，１８は、共にＬレベルの信号が入力されると、リセット状態を検出する。
【００２４】
Ａ／Ｄ変換回路２０は、ＵＳＢデバイス装置２から第１及び第２データ線ＤＰ，ＤＭを介して差動信号が入力される。Ａ／Ｄ変換回路２０は、入力された差動信号の振幅値を測定し、その測定した差動信号の振幅値のデータであるデバイス差動振幅値Ｄｄ１を制御回路７に出力する。
【００２５】
プルダウン抵抗Ｒｐｄは第１及び第２データ線ＤＰ，ＤＭとグランドの間に接続され、第１及び第２データ線ＤＰ，ＤＭをプルダウンしている。プルダウン抵抗Ｒｐｄの抵抗値は、ＵＳＢ２．０に規定されている「１５ｋΩ」になっている。
【００２６】
制御回路７は、ＵＳＢ２．０に準拠したデータ転送のための種々の処理を行う。詳しくは、送信時には、送信データにＵＳＢホスト装置１とＵＳＢデバイス装置２とを同期させるためのＳＹＮＣ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）データ、フレームの始まりを示すＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）パケット、パケットの終わりを示すＥＯＰ（Ｅｎｄ  Ｏｆ  Ｐａｃｋｅｔ）などを付加する処理や、同じ論理値のデータが続いた場合にＵＳＢホスト装置１とＵＳＢデバイス装置２とを同期させるためのビットスタッフィング処理などを行う。一方、受信時には、受信データのＳＹＮＣデータ、ＳＯＦパケット、ＥＯＰを検出／削除する処理や、ビットスタッフィング処理されたデータを復元するビットアンスタッフィング処理などを行う。
【００２７】
制御回路７は、ハイスピードモードにおいて、ＨＳドライバ回路１１にＨＳ送信データＤ１を出力し、ＨＳレシーバ回路１３からＨＳ受信データＤ３を入力する。一方、制御回路７は、ロウ・フルスピードモードにおいて、ＬＳ／ＦＳドライバ回路１２にＬＳ／ＦＳ送信データＤ２を出力し、ＬＳ／ＦＳレシーバ回路１４からＬＳ／ＦＳ受信データＤ４を入力する。
【００２８】
制御回路７は、バスの調停、エラー処理や、接続されるＵＳＢデバイス装置２が３種類の転送モードのどの転送モードに対応しているかを判定する処理などを行う。
ここで、ＵＳＢデバイス装置２がどの転送モードに対応しているか判定する処理中において、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間で行われる信号のやりとりの転送速度（第２の転送速度）は、４８０Ｍｂｐｓのハイスピードモード及び１２Ｍｂｐｓのフルスピードモードでデータ転送する転送速度（第１の転送速度）より遅くなっている。
【００２９】
制御回路７は、ＵＳＢデバイス装置２がどの転送モードに対応するかを判定する処理中において、Ａ／Ｄ変換回路２０を介して入力されたＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が予め設定されたハイスピードモードを示す振幅値Ｖｋ１より小さい場合、後述するＵＳＢデバイス装置２に対して同ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を上げるように制御する。
【００３０】
具体的には、転送モード判定処理中において、制御回路７は、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が減衰していると判定すると、ＵＳＢ２．０に規定されたコントロール転送によって、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流をその時のデバイス差動振幅値Ｄｄ１に基づいて上げるように、ＵＳＢデバイス装置２に対してＨＳドライバ回路１１ａの駆動電流を上げるための信号を出力する。
【００３１】
なお、コントロール転送は、ＵＳＢ２．０に規定された標準デバイスリクエスト（標準リクエスト）、論理クラスによって特定された内容を持つもの（クラスリクエスト）、ベンダによって任意に決められたもの（ベンダーリクエスト）がある。本実施形態では、上記のようなＵＳＢホスト装置１からＵＳＢデバイス装置２への要求をベンダーリクエストとして予め設定し、その予め設定されたベンダーリクエストのコントロール転送を行っている。
【００３２】
また、制御回路７は、ハイスピードモードでのデータ転送処理中において、ＨＳレシーバ回路１３から入力されるＨＳ受信データＤ３の時間当たりの転送エラー量が予め設定された時間当たりの転送エラー量Ｅ１以上の場合、ＵＳＢデバイス装置２からの差動信号の振幅値（デバイス差動振幅値Ｄｄ１）が減衰し過ぎて転送エラーが生じたとして、まず、Ａ／Ｄ変換回路２０を介してＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１を入力する。なお、転送エラー量は、タイムアウト、パケットＩＤエラー、ＣＲＣエラーなどが発生した数をいう。
【００３３】
制御回路７は、ハイスピードモードでのデータ転送処理中において、そのデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２以上か否かを判定する。つまり、制御回路７は、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号のデバイス差動振幅値Ｄｄ１が減衰してハイスピード転送を行うことができるか否かを判定する。
【００３４】
制御回路７は、ハイスピードモードでのデータ転送処理中において、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が減衰してハイスピード転送を行うことができないと判定すると、後述するＵＳＢデバイス装置２に対して同ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を上げるように制御する。
【００３５】
詳しくは、制御回路７は、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が減衰していると判定すると、ＵＳＢ２．０に規定されたコントロール転送によって、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流をその時のデバイス差動振幅値Ｄｄ１に基づいて上げるように、ＵＳＢデバイス装置２に対してＨＳドライバ回路１１ａの駆動電流を上げるための信号を出力する。
【００３６】
また、制御回路７は、ハイスピードモードでのデータ転送処理中において、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２以上の場合（デバイス差動振幅値Ｄｄ１が減衰していない場合）、ＵＳＢデバイス装置２に対して、ＨＳドライバ回路１１を介して、ＵＳＢホスト装置１からＵＳＢデバイス装置２に出力した差動信号のホスト差動振幅値Ｄｄ２のデータ要求するＨＳ送信データＤ１を出力する。
【００３７】
そして、制御回路７は、要求に応答してＵＳＢデバイス装置２から、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２の信号をＨＳ受信データＤ３として受信すると、そのホスト差動振幅値Ｄｄ２をマイクロコントローラ８に出力する。
【００３８】
マイクロコントローラ８は、制御回路７からホスト差動振幅値Ｄｄ２が入力される。マイクロコントローラ８は、ホスト差動振幅値Ｄｄ２を入力すると、そのホスト差動振幅値Ｄｄ２に応じて、ＨＳドライバ回路１１の駆動電流を変更するための駆動電流値ＤｒをＨＳドライバ回路１１に出力する。
【００３９】
すなわち、マイクロコントローラ８は、ＨＳドライバ回路１１から出力される差動信号の振幅値（ホスト差動振幅値Ｄｄ２）に応じて、ＨＳドライバ回路１１の駆動電流を大きくして差動信号のホスト差動振幅値Ｄｄ２を予め設定された振幅値Ｖｋ２以上になるように制御している。つまり、マイクロコントローラ８は、差動信号のホスト差動振幅値Ｄｄ２が低くて予め設定された振幅値Ｖｋ２との差が大きいほど、駆動電流値Ｄｒを大きくしてＨＳドライバ回路１１の駆動電流の増加量を増大させている。反対に、マイクロコントローラ８は、差動信号のホスト差動振幅値Ｄｄ２が予め設定された振幅値Ｖｋ２より低く、且つ、その差が小さいほど、駆動電流値Ｄｒの増加量を小さくしてＨＳドライバ回路１１の駆動電流の増加量を減少させている。
【００４０】
一方、ＵＳＢデバイス装置２は、図３に示すように、インターフェース回路３１、制御回路３２、マイクロコントローラ３３を有している。
インターフェース回路３１は、ＵＳＢホスト装置１のインターフェース回路６の構成から、プルダウン抵抗Ｒｐｄを無くし、プルアップ抵抗Ｒｐｕ及びスイッチＳＷ１を加えた構成になっている。このため、その他の構成は、ＵＳＢホスト装置１のインターフェース回路６の符号に対してサフィックス「ａ」を付け、その説明を省略する。
【００４１】
プルアップ抵抗Ｒｐｕ及びスイッチＳＷ１の直列回路は、第１データ線ＤＰと電源ＶＢＵＳとの間に接続されている。ＵＳＢデバイス装置２がＵＳＢケーブル５を介してＵＳＢホスト装置１に接続されると、制御回路３２はスイッチＳＷ１をオンさせて第１データ線ＤＰを電源ＶＢＵＳにプルアップする。そして、ＵＳＢデバイス装置２がハイスピードモードになると、制御回路３２はスイッチＳＷ１をオフさせて第１データ線ＤＰとプルアップ抵抗Ｒｐｕとを切断する。
【００４２】
制御回路３２は、ＵＳＢ２．０に準拠したデータ転送のための種々の処理を行う。しかし、ＵＳＢホスト装置１の制御回路７と異なり、制御回路３２は、バスの調停、エラー処理や、接続されるＵＳＢデバイス装置２がどの転送モードに対応しているかを判定する処理を行わない。
【００４３】
マイクロコントローラ３３は、上記したＵＳＢホスト装置１のマイクロコントローラ８の構成が同じになっている。
上述したようにＵＳＢ２．０は３種類の転送モードが規定されているため、ＵＳＢホスト装置１は、接続されたＵＳＢデバイス装置２がどの転送モードに対応しているかを判定する必要がある。そこで、ＵＳＢデバイス装置２がＵＳＢケーブル５を介してＵＳＢホスト装置１に接続されると、ＵＳＢホスト装置１は、ＵＳＢ２．０に規定されたＵＳＢデバイス装置２との信号のやりとりを行い、ＵＳＢデバイス装置２がどの転送モードに対応しているかを判定している。
【００４４】
次に、ＵＳＢホスト装置１にハイスピードモードに対応したＵＳＢデバイス装置２が接続された場合について、ＵＳＢケーブル５の第１及び第２データ線ＤＰ，ＤＭの電位を示した図４、及び、図５のフローチャートに従って説明する。
【００４５】
まず、時刻ｔ１において、ＵＳＢデバイス装置２がＵＳＢケーブル５を介してＵＳＢホスト装置１に接続されると（ステップＳ１）、ＵＳＢホスト装置１からＵＳＢデバイス装置２に電源ＶＢＵＳが供給される。ＵＳＢデバイス装置２は、電源ＶＢＵＳが供給されると、第１データ線ＤＰを電源ＶＢＵＳにプルアップする。
【００４６】
具体的には、ＵＳＢデバイス装置２の制御回路３２がスイッチＳＷ１をオンして第１データ線ＤＰにプルアップ抵抗Ｒｐｕが接続される。これにより、第１データ線ＤＰが電源ＶＢＵＳにプルアップされる。そして、ＵＳＢホスト装置１の制御回路７は、電源ＶＢＵＳにプルアップされた第１データ線ＤＰの電圧値をＡ／Ｄ変換回路２０にて検出することで、ＵＳＢデバイス装置２がＵＳＢケーブル５を介して接続されたことを判断する。
【００４７】
ＵＳＢデバイス装置２がＵＳＢケーブル５を介して接続されたことを判断すると（時刻ｔ２）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢケーブル５にバスリセット信号（ＳＥ０）を出力してバスリセットする（ステップＳ２）。バスリセット信号（ＳＥ０）は、第１及び第２データ線ＤＰ，ＤＭをＬレベルにする信号をいう。そして、ＵＳＢデバイス装置２の制御回路３２は、シングル・エンデット・レシーバ１７ａ，１８ａを介してこのバスリセット信号（ＳＥ０）を検出して、バスリセットを認識してリセット状態に遷移する。
【００４８】
リセット状態に遷移すると（時刻ｔ３）、ＵＳＢデバイス装置２の制御回路３２は、ＨＳドライバ回路１１ａを介してチャープＫ信号をＵＳＢホスト装置１に出力する。チャープＫ信号（ＣｈｉｒｐＫ）は、第１データ線ＤＰをＬレベル、第２データ線ＤＭをＨレベルにする信号をいう。
【００４９】
ＵＳＢデバイス装置２からチャープＫ信号が出力されると、ＵＳＢホスト装置１のＡ／Ｄ変換回路２０は、ＵＳＢデバイス装置２から入力されるチャープＫ信号のデバイス差動振幅値Ｄｄ１を測定する（ステップＳ３）。Ａ／Ｄ変換回路２０は、測定したＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１を制御回路７に出力する。制御回路７は、そのチャープＫ信号のデバイス差動振幅値Ｄｄ１を制御回路７に内蔵されたメモリに記憶する。
【００５０】
次に、ＵＳＢホスト装置１の制御回路７は、ステップ３において測定したチャープＫ信号のデバイス差動振幅値Ｄｄ１が予め設定されたハイスピードモードを示す振幅値Ｖｋ１以上か否かを判定する（ステップ４）。
【００５１】
ＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１がハイスピードモードを示す振幅値Ｖｋ１以上と判断すると（ステップ４でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢデバイス装置２がハイスピードモード対応のＵＳＢデバイス装置と判断し、ステップＳ５に移り、ハイスピードモードの設定処理を実行する。
【００５２】
ハイスピードモード設定処理は、ＵＳＢホスト装置１の制御回路７は、チャープＫ信号及びチャープＪ信号を交互に３回ずつＨＳドライバ回路１１を介してＵＳＢデバイス装置２に出力する。なお、チャープＪ信号（ＣｈｉｒｐＪ）は、第１データ線ＤＰをＨレベル、第２データ線ＤＭをＬレベルにする信号をいう。
【００５３】
このとき、ＵＳＢデバイス装置２のＡ／Ｄ変換回路２０ａは、ＵＳＢホスト装置１から入力されるチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２を測定し、その測定したホスト差動振幅値Ｄｄ２を制御回路３２に出力する。制御回路３２は、そのチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２を制御回路３２に内蔵されたメモリに記憶する。
【００５４】
そして、ＵＳＢホスト装置１から交互に３回ずつ出力されるチャープＫ信号及びチャープＪ信号をＨＳレシーバ回路１３ａを介して入力すると（時刻ｔ５）、ＵＳＢデバイス装置２の制御回路３２は、スイッチＳＷ１をオフさせて第１データ線ＤＰとプルアップ抵抗Ｒｐｕとを切断する。次にＵＳＢデバイス装置２の制御回路３２は、ＬＳ／ＦＳドライバ回路１２ａを介してＬレベルの信号を第１及び第２データ線ＤＰ，ＤＭにそれぞれ出力して第１及び第２データ線ＤＰ，ＤＭを終端抵抗Ｒｓで終端させる。
【００５５】
一方、ＵＳＢホスト装置１の制御回路７は、ＬＳ／ＦＳドライバ回路１２からＬレベルの信号を第１及び第２データ線ＤＰ，ＤＭにそれぞれ出力して第１及び第２データ線ＤＰ，ＤＭを終端抵抗Ｒｓで終端させる。
【００５６】
第１及び第２データ線ＤＰ，ＤＭの両端が終端抵抗Ｒｓで終端すると、ＵＳＢホスト装置１の制御回路７は、ＨＳドライバ回路１１を介してＵＳＢデバイス装置２にチャープＫ信号及びチャープＪ信号を交互に一定回数出力する。このとき、ＵＳＢホスト装置１のＨＳドライバ回路１１から出力されるチャープＫ信号及びチャープＪ信号は、ＵＳＢホスト装置１及びＵＳＢデバイス装置２の終端抵抗Ｒｓで第１及び第２データ線ＤＰ，ＤＭを終端することで、図４に示すようにその電圧値が低下している。
【００５７】
そして、ＵＳＢデバイス装置２のＡ／Ｄ変換回路２０ａは、ＵＳＢホスト装置１から入力されるこのチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２を測定し、その測定したホスト差動振幅値Ｄｄ２を制御回路３２に出力する。制御回路３２は、そのチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２を制御回路３２に内蔵されたメモリに記憶する。
【００５８】
従って、制御回路３２に内蔵されたメモリには、第１及び第２データ線ＤＰ，ＤＭの両端を終端抵抗Ｒｓで終端する前後におけるチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２が記憶される。
【００５９】
そして、第１及び第２データ線ＤＰ，ＤＭの両端を終端抵抗Ｒｓで終端するとともに、第１及び第２データ線ＤＰ，ＤＭの両端を終端抵抗Ｒｓで終端する前後におけるチャープＫ信号及びチャープＪ信号のホスト差動振幅値Ｄｄ２を記憶すると、ハイスピードモード転送処理を完了し、時刻ｔ６においてＵＳＢホスト装置１及びＵＳＢデバイス装置２はハイスピード転送を開始する（ステップＳ６）。
【００６０】
尚、ステップ４において、ＵＳＢホスト装置１の制御回路７がＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１がハイスピードモードを示す振幅値Ｖｋ１未満と判定したとき（ステップ４でＮＯ）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を調整した回数が予め設定された回数Ｃ１以上か否かを判定するようになっている（ステップＳ７）。
【００６１】
この時点では、ＨＳドライバ回路１１ａの駆動電流を調整した回数は「０」なので（ステップＳ７でＮＯ）、ＵＳＢホスト装置１の制御回路７は、ステップＳ３においてメモリに記憶したＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１を読み出し、ＵＳＢ２．０に規定されたコントロール転送によって、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流をデバイス差動振幅値Ｄｄ１に基づいて変更する（ステップＳ８）。
【００６２】
詳しくは、コントロール転送は、ＵＳＢホスト装置１が、セットアップトランザクション、データトランザクション、ステータストランザクションの順で出力し、ＵＳＢデバイス装置２のコントロール、又は、ＵＳＢデバイス装置２の情報収集をすることができる。
【００６３】
具体的には、まず、セットアップトランザクションにおいて、ベンダーリクエストのコントロール転送を行うため、ＵＳＢホスト装置１の制御回路７は、ベンダーリクエストを選択する「２」のリクエストタイプフィールド、及び、予め設定されたＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を変更するためのデバイスリクエストを含むパケットをＬＳ／ＦＳドライバ回路１２を介してＵＳＢデバイス装置２に出力する。このパケットをＬＳ／ＦＳレシーバ回路１４ａを介して入力すると、ＵＳＢデバイス装置２の制御回路３２は、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を変更するためのデバイスリクエストを認識する。
【００６４】
次に、データトランザクションにおいて、ＵＳＢホスト装置１の制御回路７は、ステップ３において測定されたＵＳＢデバイス装置２からのチャープＫのデバイス差動振幅値Ｄｄ１を含む予め設定したフォーマットのパケットを、ＬＳ／ＦＳドライバ回路１２を介してＵＳＢデバイス装置２に出力する。このパケットをＬＳ／ＦＳレシーバ回路１４ａを介して入力すると、ＵＳＢデバイス装置２の制御回路３２は、ステップ３において測定されたＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１をマイクロコントローラ３３に出力する。
【００６５】
マイクロコントローラ３３は、ステップ３において測定されたＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１に応じた駆動電流値ＤｒをＨＳドライバ回路１１ａに出力し、ＨＳドライバ回路１１ａの駆動電流を変更する。
【００６６】
続いて、ステータストランザクションにおいて、ＵＳＢデバイス装置２の制御回路３２は、ＨＳドライバ回路１１ａの駆動電流の変更が成功したか否かを示すパケットを、ＬＳ／ＦＳドライバ回路１２ａを介してＵＳＢホスト装置１に出力する。本実施形態では、ＨＳドライバ回路１１ａの駆動電流の変更が成功したか否かを示すパケットは、ＵＳＢ２．０に規定されているＡＣＫなどのハンドシェイクパケットを使用している。
【００６７】
ステップＳ８において、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流をデバイス差動振幅値Ｄｄ１に基づいて変更すると、ステップＳ２に移り、前記と同様な処理を実行する。つまり、ＵＳＢデバイス装置２がハイスピードモード対応のデバイスであるにも拘わらず、チャープＫ信号が第１及び第２データ線ＤＰ，ＤＭで大きく減衰してチャープＫ信号のデバイス差動振幅値Ｄｄ１がハイスピードモードを示す振幅値Ｖｋ１未満になったものと判断し、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動能力を上げてリトライを行う。
【００６８】
そして、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動能力を上げてリトライを行って、ＵＳＢデバイス装置２からのチャープＫ信号のデバイス差動振幅値Ｄｄ１がハイスピードモードを示す振幅値Ｖｋ１以上になると（ステップＳ４でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢデバイス装置２がハイスピードモード対応のデバイスと判断し、ステップＳ５に移り、ハイスピードモードの設定処理を実行する。
【００６９】
一方、リトライする回数が、即ち、ＨＳドライバ回路１１ａの駆動電流を調整した回数が予め設定された回数Ｃ１以上になると（ステップＳ７でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢデバイス装置２がハイスピードモード対応のデバイスではないと判断し、ＨＳドライバ回路１１ａの駆動電流の調整を中止する。このため、ＵＳＢホスト装置１の制御回路７は、バスリセット信号をＵＳＢケーブル５に出力してバスリセットする。そして、ＵＳＢホスト装置１の制御回路７は処理を終了し、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でフルスピード転送を開始するための処理に移行するようになっている。
【００７０】
そして、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間において、ハイスピードモードでデータ転送が行われているとき（ステップＳ６）、ＵＳＢホスト装置１の制御回路７は、時間当たりの転送エラー量を監視して予め設定された時間当たりの転送エラー量Ｅ１以上か否かを判定する（ステップＳ９）。時間当たりの転送エラー量が予め設定された時間あたりの転送エラー量Ｅ１未満の場合（ステップＳ９でＮＯ）、引き続き、ＵＳＢホスト装置１及びＵＳＢデバイス装置２はハイスピード転送を継続する。
【００７１】
すなわち、ＵＳＢホスト装置１の制御回路７は、転送エラーが予め設定された時間当たりの転送エラー量より少なく正常にハイスピード転送を行われているため、このままハイスピード転送を継続している。
【００７２】
反対に、時間当たりの転送エラー量が予め設定された時間あたりの転送エラー量Ｅ１以上の場合（ステップＳ９でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、差動信号が第１及び第２データ線ＤＰ，ＤＭで大きく減衰して正常にハイスピード転送ができなくなってきていると判断して、ＵＳＢホスト装置１及びＵＳＢデバイス装置２のＨＳドライバ回路１１，１１ａの駆動電流を調整した回数が予め設定された回数Ｃ２未満か否かを判定する（ステップＳ１０）。
【００７３】
この時点では、ＨＳドライバ回路１１，１１ａの駆動電流を調整した回数が「０」なので（ステップＳ１０でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、Ａ／Ｄ変換回路２０を介してＵＳＢデバイス装置２から入力される差動信号のデバイス差動振幅値Ｄｄ１を測定する（ステップＳ１１）。
【００７４】
続いて、ＵＳＢホスト装置１の制御回路７は、測定したＵＳＢデバイス装置２から入力される差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２以上か否かを判定する（ステップＳ１２）。そして、ＵＳＢデバイス装置２から入力される差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２未満の場合（ステップ１２でＮＯ）、ＵＳＢホスト装置１の制御回路７は、何らかの原因で差動信号が大きく減衰して差動信号のデバイス差動振幅値Ｄｄ１が振幅値Ｖｋ２未満になって転送エラーが生じていると判断し、ＵＳＢ２．０の規定されたコントロール転送によって、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を変更する処理を実行する（ステップＳ１３）。
【００７５】
具体的には、まず、セットアップトランザクションにおいて、ベンダーリクエストのコントロール転送を行うため、ＵＳＢホスト装置１の制御回路７は、ベンダーリクエストを選択する「２」のリクエストタイプフィールド、及び、予め設定されたＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を変更するためのデバイスリクエストを含むパケットをＵＳＢデバイス装置２に出力する。このパケットをＨＳレシーバ回路１３ａを介して入力すると、ＵＳＢデバイス装置２の制御回路３２は、ＵＳＢデバイス装置２のＨＳドライバ回路１１ａの駆動電流を変更するためのデバイスリクエストを認識する。
【００７６】
次に、データトランザクションにおいて、ＵＳＢホスト装置１の制御回路７は、ステップ１１において測定されたＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１を含む予め設定したフォーマットのパケットを、ＨＳドライバ回路１１を介してＵＳＢデバイス装置２に出力する。このパケットをＨＳレシーバ回路１３ａを介して入力すると、ＵＳＢデバイス装置２の制御回路３２は、ステップ１１において測定されたＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１をマイクロコントローラ３３に出力する。
【００７７】
マイクロコントローラ３３は、ステップ１１において測定されたＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１に応じた駆動電流値ＤｒをＨＳドライバ回路１１ａに出力する。ＨＳドライバ回路１１ａは、マイクロコントローラ３３からの駆動電流値Ｄｒに応じて駆動電流を上げる（ステップＳ１３）。
【００７８】
そして、ＵＳＢホスト装置１の制御回路７はステップＳ６に移行し、ＵＳＢホスト装置１及びＵＳＢデバイス装置２との間でハイスピード転送を継続する。
すなわち、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２より小さい場合には、ＨＳドライバ回路１１ａの駆動電流を上げることで、正常なデータ転送を行うことができる可能性がある。そこで、ＵＳＢホスト装置１の制御回路７は、ＨＳドライバ回路１１ａの駆動電流を調整して上げている。
【００７９】
一方、ステップＳ１１において、測定したＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２以上の場合（ステップＳ１２でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、ＵＳＢ２．０に規定されたコントロール転送を用いて、上記のＵＳＢデバイス装置２にＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を要求する（ステップＳ１４）。
【００８０】
詳述すると、まず、セットアップトランザクションにおいて、ベンダーリクエストのコントロール転送を行うため、ＵＳＢホスト装置１の制御回路７は、ベンダーリクエストを選択する「２」のリクエストタイプフィールド、及び、予め設定されたＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を要求するためのデバイスリクエストを含むパケットをＵＳＢデバイス装置２に出力する。このパケットをＨＳレシーバ回路１３ａを介して入力すると、ＵＳＢデバイス装置２の制御回路３２は、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を要求するためのデバイスリクエストを認識する。
【００８１】
次に、データトランザクションにおいて、ＵＳＢデバイス装置２の制御回路３２は、メモリに記憶されたＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を含む予め設定したフォーマットのパケットを、ＨＳドライバ回路１１ａを介してＵＳＢホスト装置１に出力する。ＵＳＢホスト装置１の制御回路７は、上記のパケットをＨＳレシーバ回路１３を介して入力する。
【００８２】
換言すると、ＵＳＢホスト装置１の制御回路７は、ステップＳ１１においてＵＳＢデバイス装置２のＨＳドライバ回路１１ａから出力される差動信号のデバイス差動振幅値Ｄｄ１は正常であって問題がないと判定した。このため、ＵＳＢホスト装置１の制御回路７は、ＵＳＢホスト装置１からＵＳＢデバイス装置２に送信する差動信号が大きく減衰してその差動信号のデバイス差動振幅値Ｄｄ１が振幅値Ｖｋ２未満になって転送エラーが生じていると判断し、ＵＳＢホスト装置１のＨＳドライバ回路１１の駆動電流の調整を行う処理に移行する。
【００８３】
そして、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２をＵＳＢデバイス装置２に要求してから予め設定された時間経過した後、ＵＳＢホスト装置１の制御回路７は、要求したデータを受信したか否かを判定する（ステップＳ１５）。
【００８４】
そして、要求したデータを予め設定された時間以内に受信した場合（ステップＳ１５でＹＥＳ）、ＵＳＢホスト装置１の制御回路７は、入力したＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２をマイクロコントローラ８に出力する。マイクロコントローラ８は、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を入力すると、このホスト差動振幅値Ｄｄ２に応じた駆動電流値ＤｒをＨＳドライバ回路１１に出力する。ＨＳドライバ回路１１は、マイクロコントローラ８からの駆動電流値Ｄｒに応じて駆動電流を上げる（ステップＳ１６）。
【００８５】
そして、ＵＳＢホスト装置１の制御回路７は、ステップＳ６に移行し、ＵＳＢホスト装置１及びＵＳＢデバイス装置２との間でハイスピード転送を継続する。すなわち、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２が何らかの原因で振幅値Ｖｋ２より小さくなった場合には、ＨＳドライバ回路１１の駆動電流を上げることで、正常なデータ転送を行うことができることから、ＵＳＢホスト装置１の制御回路７は、ＨＳドライバ回路１１の駆動電流を調整して上げている。
【００８６】
一方、予め設定された時間以内に要求したデータを受信することができないと（ステップＳ１５でＮＯ）、ＵＳＢホスト装置１の制御回路７は、最小値のホスト差動振幅値Ｄｄ２をマイクロコントローラ８に出力する。マイクロコントローラ８は、最小値のホスト差動振幅値Ｄｄ２を入力すると、ＨＳドライバ回路１１の駆動電流を規格範囲の最大値まで上げる駆動電流値ＤｒをＨＳドライバ回路１１に出力する。ＨＳドライバ回路１１は、マイクロコントローラ８からの駆動電流値Ｄｒに応じて駆動電流を規格範囲の最大値まで上げる（ステップＳ１７）。そして、ＵＳＢホスト装置１及びＵＳＢデバイス装置２は、ステップＳ１０に移行する。
【００８７】
つまり、ベンダーリクエストのコントロール転送において、ＵＳＢホスト装置１の制御回路７は、予め設定された時間経過しても要求したデータを受信することができないと、ＨＳドライバ回路１１を介してパケットをＵＳＢデバイス装置２に正常にデータ転送することができなかったと判定する。ＵＳＢホスト装置１の制御回路７は、正常なデータ転送をするためにＨＳドライバ回路１１の駆動電流をどれだけ上げれば良いか認識することができないと判断して、ＨＳドライバ回路１１の駆動電流を規格範囲の最大値まで一回上げてから、ＨＳドライバ回路１１の駆動電流の調整を再度行うようになっている。
【００８８】
尚、ステップＳ１０において、ＨＳドライバ回路１１，１１ａの駆動電流を調整した回数が予め設定された回数Ｃ２以上になると（ステップＳ１０でＮＯ）、ＵＳＢホスト装置１の制御回路７は、ＨＳドライバ回路１１，１１ａの駆動電流の調整を中止する。このため、ＵＳＢホスト装置１の制御回路７は、バスリセット信号をＵＳＢケーブル５に出力してバスリセットする。そして、ＵＳＢホスト装置１の制御回路７は処理を終了し、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でフルスピード転送を開始するための処理に移行する。
【００８９】
換言すると、ＨＳドライバ回路１１，１１ａの駆動電流を予め設定された回数Ｃ２調整しても、転送エラーが予め設定された転送エラー量Ｅ１より少なくならなかった。ＵＳＢホスト装置１の制御回路７は、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でデータ転送を正常に行うことができないため、ハイスピード転送をあきらめてフルスピード転送を開始する。
【００９０】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）ＵＳＢホスト装置１に、Ａ／Ｄ変換回路２０を設け、そのＡ／Ｄ変換回路２０にて、ＵＳＢデバイス装置２から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号のデバイス差動振幅値Ｄｄ１を測定するようにした。
【００９１】
また、ＵＳＢホスト装置１の制御回路７は、デバイス差動振幅値Ｄｄ１がハイスピードモードでデータ転送できないほど減衰したとき、ＵＳＢデバイス装置２から出力される差動信号のデバイス差動振幅値Ｄｄ１が、ハイスピードモードでデータ転送できるように予め設定された振幅値以上になるように、ＵＳＢデバイス装置２に対してＨＳドライバ回路１１ａの駆動電流を上げるための信号を出力するようにした。
【００９２】
そして、ＵＳＢデバイス装置２のマイクロコントローラ３３が、測定したＵＳＢホスト装置１からの駆動電流を上げるための信号に応答して、差動信号のデバイス差動振幅値Ｄｄ１をハイスピードモードでデータ転送できるように調整して予め設定された振幅値以上にすることができ、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でハイスピード転送を行うことができる。
【００９３】
従って、終端抵抗ＲｓやＨＳドライバ回路１１，１１ａの駆動電流のずれが原因で差動信号が減衰している場合でも、差動信号の振幅値（デバイス差動振幅値Ｄｄ１）が予め設定された振幅値以上にすることができ、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でハイスピード転送を行うことができる。
【００９４】
（２）また、ＵＳＢデバイス装置２に、Ａ／Ｄ変換回路２０ａを設け、そのＡ／Ｄ変換回路２０ａにて、ＵＳＢホスト装置１から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号のホスト差動振幅値Ｄｄ２を測定するようにした。また、ＵＳＢデバイス装置２の制御回路３２は、ＵＳＢホスト装置１から出力した差動信号のホスト差動振幅値Ｄｄ２のデータ要求があったとき、ＵＳＢホスト装置１に対してホスト差動振幅値Ｄｄ２のデータを出力するようにした。
【００９５】
そして、ＵＳＢホスト装置１のマイクロコントローラ８は、ＵＳＢデバイス装置２からのホスト差動振幅値Ｄｄ２に基づいて、ＵＳＢホスト装置１から出力される差動信号のホスト差動振幅値Ｄｄ２をハイスピードモードでデータ転送できるように、調整するようにした。
【００９６】
従って、終端抵抗ＲｓやＨＳドライバ回路１１の駆動電流のずれが原因で差動信号が減衰している場合でも、差動信号の振幅値（ホスト差動振幅値Ｄｄ２）が予め設定された振幅値以上にすることができ、ＵＳＢホスト装置１とＵＳＢデバイス装置２との間でハイスピード転送を行うことができる。
【００９７】
（３）ＵＳＢホスト装置１に接続されるＵＳＢデバイス装置２の転送モードを判定する処理において、Ａ／Ｄ変換回路２０，２０ａが、第１及び第２データ線ＤＰ，ＤＭを介して入力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）を測定するようにした。つまり、ハイスピード転送及びフルスピード転送より遅い転送速度において、Ａ／Ｄ変換回路２０，２０ａが第１及び第２データ線ＤＰ，ＤＭを介して入力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）を測定することができる。従って、Ａ／Ｄ変換回路２０，２０ａは、簡単な回路構成で第１及び第２データ線ＤＰ，ＤＭを介して入力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）を容易に測定することができる。
【００９８】
尚、上記実施の形態は、以下の態様で実施してもよい。
・本実施形態において、ＨＳドライバ回路１１，１１ａの駆動電流を変更することで、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）を上げていた。これに限らず、終端抵抗Ｒｓの抵抗値を変更することで、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）を上げてもよい。
【００９９】
例えば、終端抵抗Ｒｓは、抵抗とスイッチよりなる直列回路が並列に複数接続されて構成され、駆動電流値Ｄｒに応じて、その抵抗値を変更する。終端抵抗Ｒｓは、入力された駆動電流値Ｄｒに応じて、スイッチをオン・オフすることでその抵抗値を変更している。
【０１００】
つまり、終端抵抗Ｒｓは、駆動電流値Ｄｒが大きいほど、スイッチをオンする数が多くなって並列接続する抵抗の数が多くなる。これにより、終端抵抗Ｒｓの抵抗値が小さくなる。終端抵抗Ｒｓは、駆動電流値Ｄｒが小さいほど、スイッチをオンする数が少なくなって並列接続する抵抗の数が少なくなる。これにより、終端抵抗Ｒｓの抵抗値が大きくなる。
【０１０１】
さらに、ＨＳドライバ回路１１，１１ａの駆動電流を変更してから終端抵抗Ｒｓの抵抗値を変更するような構成や、終端抵抗Ｒｓの抵抗値を変更してからＨＳドライバ回路１１，１１ａの駆動電流を変更するような構成にしてもよい。従って、ＨＳドライバ回路１１，１１ａの駆動電流を変更する場合と比較して、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）をより上げることができる。この結果、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１，ホスト差動振幅値Ｄｄ２）が大きく減衰してもハイスピード転送を行うことができる。
【０１０２】
・本実施形態では、Ａ／Ｄ変換回路２０が、ＵＳＢデバイス装置２から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定してデバイス差動振幅値Ｄｄ１を生成していた。また、Ａ／Ｄ変換回路２０ａが、ＵＳＢホスト装置１から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（ホスト差動振幅値Ｄｄ２）を測定して対応するホスト差動振幅値Ｄｄ２を生成していた。
【０１０３】
これに限らず、ＵＳＢ２．０の規定されたノイズ検出回路１５ａ、切断検出回路１６ａ、シングル・エンデット・レシーバ１７ａ，１８ａや、新たに追加したコンパレータ回路の閾値により、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定し、その測定結果に基づいて制御回路７がデバイス差動振幅値Ｄｄ１を生成してもよい。また、ＵＳＢ２・０の規定されたノイズ検出回路１５、切断検出回路１６、シングル・エンデット・レシーバ１７，１８や、新たに追加したコンパレータ回路の閾値により、第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（ホスト差動振幅値Ｄｄ２）を測定し、その測定結果に基づいて制御回路３２がホスト差動振幅値Ｄｄ２を生成してもよい。
【０１０４】
従って、ＵＳＢホスト装置１及びＵＳＢデバイス装置２は、Ａ／Ｄ変換回路２０，２０ａの回路分、回路規模を縮小することができる。
・本実施形態では、Ａ／Ｄ変換回路２０は、ＵＳＢデバイス装置２から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定してデバイス差動振幅値Ｄｄ１を生成していた。また、Ａ／Ｄ変換回路２０ａは、ＵＳＢホスト装置１から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（ホスト差動振幅値Ｄｄ２）を測定してホスト差動振幅値Ｄｄ２を生成していた。
【０１０５】
これに限らず、Ａ／Ｄ変換回路２０は、ＨＳドライバ回路１１から第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定する。マイクロコントローラ８は、その測定結果に基づいてＨＳドライバ回路１１の駆動能力を変更してもよい。また、Ａ／Ｄ変換回路２０ａは、ＨＳドライバ回路１１ａから第１及び第２データ線ＤＰ，ＤＭに出力される差動信号の振幅値（ホスト差動振幅値Ｄｄ２）を測定する。マイクロコントローラ３３は、その測定結果に基づいてＨＳドライバ回路１１ａの駆動能力を変更してもよい。
【０１０６】
・本実施形態では、ハイスピードモードでのデータ転送処理中において、時間あたりの転送エラー量が予め設定された転送エラー量Ｅ１以上になり、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１が予め設定された振幅値Ｖｋ２未満の場合、ＵＳＢホスト装置１の制御回路７は、Ａ／Ｄ変換回路２０を介してＵＳＢデバイス装置２から入力される差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定していた。
【０１０７】
これに限らず、ＵＳＢホスト装置１の制御回路７は、ＵＳＢデバイス装置２からの差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定することが容易なデータ（例えば、「０」、「１」の変化をなるべく少なくしたパターンのデータ）を送信するよう、ＵＳＢデバイス装置２に要求してもよい。これにより、Ａ／Ｄ変換回路２０は、簡単な回路構成でＵＳＢデバイス装置２からの差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を容易に測定することができる。
【０１０８】
・本実施形態では、ハイスピードモードでのデータ転送処理中において、時間あたりの転送エラー量が予め設定された転送エラー量Ｅ１以上になると、ＵＳＢデバイス装置２からの差動信号の振幅値（デバイス差動振幅値Ｄｄ１）が予め設定された振幅値Ｖｋ２以上の場合、マイクロコントローラ８は、ＵＳＢホスト装置１のＨＳドライバ回路１１ａの駆動能力を変更していた。
【０１０９】
これに限らず、ハイスピードモードでのデータ転送処理中において、時間あたりの転送エラー量が予め設定された転送エラー量Ｅ１以上になると、まず、マイクロコントローラ８は、ＵＳＢホスト装置１のＨＳドライバ回路１１ａの駆動能力を変更してもよい。
【０１１０】
・本実施形態では、ハイスピードモードでのデータ転送処理中において、時間あたりの転送エラー量の検出前に、ＵＳＢホスト装置１からの差動信号の振幅値（ホスト差動振幅値Ｄｄ２）、及び、ＵＳＢデバイス装置２からの差動信号の振幅値（デバイス差動振幅値Ｄｄ１）を測定していた。
【０１１１】
これに限らず、時間あたりの転送エラー量の検出後に、ＵＳＢデバイス装置２からの差動信号のデバイス差動振幅値Ｄｄ１、及び、ＵＳＢホスト装置１からの差動信号のホスト差動振幅値Ｄｄ２を測定してもよい。これにより、マイクロコントローラ８は、デバイス差動振幅値Ｄｄ１及びホスト差動振幅値Ｄｄ２の最新の測定値に基づいて、ＨＳドライバ回路１１，１１ａの駆動能力を変更することができる。
【符号の説明】
【０１１２】
１  ＵＳＢホストのインターフェース装置（ＵＳＢホスト装置）
２  ＵＳＢデバイスのインターフェース装置（ＵＳＢデバイス装置）
５  シリアルバス（ＵＳＢケーブル）
８，３３  制御部（マイクロコントローラ）
１１，１１ａ  ドライバ回路（ＨＳドライバ回路）
２０，２０ａ  測定部（Ａ／Ｄ変換回路）
Ｒｓ  終端抵抗
Ｄｄ１，Ｄｄ２  振幅値（デバイス差動振幅値，ホスト差動振幅値）
【図１】
2010287035.tif 000003
【図２】
2010287035.tif 000004
【図３】
2010287035.tif 000005
【図４】
2010287035.tif 000006
【図５】
2010287035.tif 000007