(57)【要約】【課題】ＵＳＢデバイスの消費電力の低減を図ることができるＵＳＢインターフェイス回路を提供する。【解決手段】ＵＳＢインターフェイス回路は、第１のＵＳＢ機器が接続される第１のＵＳＢポートと、第２のＵＳＢ機器が接続される第２のＵＳＢポートと、前記第１のＵＳＢポートと前記第２のＵＳＢポートとの間に配置された第１の制御部と、を含み、前記第２のＵＳＢ機器が待機状態にあるときにおいて、前記第１の制御部は、前記第１のＵＳＢ機器から出力される所定の通信情報を受信すると前記第２のＵＳＢ機器を前記待機状態から動作状態に移行させるための第１のイベントを発生させることを特徴とする。【選択図】図１
2011258095.tif 000002
【特許請求の範囲】
【請求項１】
第１のＵＳＢ機器が接続される第１のＵＳＢポートと、
第２のＵＳＢ機器が接続される第２のＵＳＢポートと、
前記第１のＵＳＢポートと前記第２のＵＳＢポートとの間に配置された第１の制御部と、を含み、
前記第２のＵＳＢ機器が待機状態にあるときにおいて、
前記第１の制御部は、前記第１のＵＳＢ機器から出力される所定の通信情報を受信すると前記第２のＵＳＢ機器を前記待機状態から動作状態に移行させるための第１のイベントを発生させることを特徴とするＵＳＢインターフェイス回路。
【請求項２】
前記第２のＵＳＢ機器が前記待機状態にあるときは、前記第１の制御部が前記第１のＵＳＢ機器との通信を行うことを特徴とする請求項１に記載のＵＳＢインターフェイス回路。
【請求項３】
前記第２のＵＳＢ機器が前記待機状態にあるときは、前記第１の制御部が前記第２のＵＳＢ機器の機能をエミュレートすることを特徴とする請求項１又は２に記載のＵＳＢインターフェイス回路。
【請求項４】
前記第２のＵＳＢ機器が前記待機状態にあるときに前記第１のＵＳＢ機器と前記第１の制御部との間で行われた通信の中の一部の通信が、前記第２のＵＳＢ機器が動作状態になってから前記第１の制御部と前記第２のＵＳＢ機器との間で行われることを特徴とする請求項１乃至３のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項５】
前記一部の通信には、コントロール転送が含まれることを特徴とする請求項４に記載のＵＳＢインターフェイス回路。
【請求項６】
前記第１のイベントは、第１の信号線を介して前記第２のＵＳＢ機器に伝達されることを特徴とする請求項１乃至５のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項７】
前記第１の制御部は、前記第１のＵＳＢ機器によりエニュメレーションが行われ、
前記第２のＵＳＢ機器は、前記第１のイベントの発生の後に、前記第１の制御部によりエニュメレーションが行われることを特徴とする請求項１乃至６のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項８】
更に、外部入力ポートを含み、
前記第１の制御部は、前記外部入力ポートから入力された第２のイベント信号を検出すると、前記第１のＵＳＢ機器のＵＳＢポートがサスペンド状態にあるときは、前記第１のＵＳＢ機器に対してリモートウエイクアップを行うと共に、前記第２のＵＳＢ機器に対して前記第１のイベントを発生させることを特徴とする請求項１乃至７のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項９】
前記第２のＵＳＢ機器に対してのバスリセットは、前記第１のＵＳＢ機器と前記第１の制御部との間の通信速度が確定した後に、前記第１の制御部により行われることを特徴とする請求項１乃至８のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項１０】
前記第１のＵＳＢ機器へのアタッチは、前記第２のＵＳＢポートにおけるアタッチが検出されてから行われることを特徴とする請求項１乃至９のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項１１】
前記第２のＵＳＢ機器が前記動作状態のときは、前記第１のＵＳＢ機器と前記第２のＵＳＢ機器との間の通信が前記第１の制御部を介して行われることを特徴とする請求項１乃至１０のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項１２】
更に、前記第１の制御部は記憶部を備え、
前記第２のＵＳＢ機器が前記動作状態から前記待機状態に移行するときは、前記第２のＵＳＢ機器の制御情報が前記記憶部に保存され、
前記第２のＵＳＢ機器が前記待機状態から前記動作状態に移行するときは、前記制御情報が前記記憶部から読み出され、前記第２のＵＳＢ機器の所定の場所に戻されることを特徴とする請求項１乃至１１のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項１３】
前記第１の制御部は、前記制御情報の保存のための転送終了後に前記第２のＵＳＢ機器に対する電源供給を停止させ、前記所定の通信情報を受信すると前記第２のＵＳＢ機器に対する電源供給を開始させることを特徴とする請求項１２に記載のＵＳＢインターフェイス回路。
【請求項１４】
更に、前記第２のＵＳＢ機器と接続される外部インターフェイスを備えることを特徴とする請求項１乃至１３のいずれか一項に記載のＵＳＢインターフェイス回路。
【請求項１５】
第１のＵＳＢ機器と第２のＵＳＢ機器との間に配置され、前記第１のＵＳＢ機器と前記第２のＵＳＢ機器との間の通信を仲介するＵＳＢインターフェイス回路の制御方法であって、
前記第１のＵＳＢ機器と前記ＵＳＢインターフェイス回路との間の通信を行う第１の処理と、
前記第１の処理において所定の通信情報を受信すると第１のイベントを発生させる第２の処理と、
前記第１の処理において行われた通信の中の一部の通信を、前記第２のＵＳＢ機器と前記ＵＳＢインターフェイス回路との間で行う第３の処理と、を含み、
前記第１のイベントは、前記第２のＵＳＢ機器を待機状態から動作状態に移行させるための信号であり、
前記第３の処理は、前記第２の処理の実行後に行われることを特徴とするＵＳＢインターフェイス回路の制御方法。
【請求項１６】
前記ＵＳＢインターフェイス回路は、前記第１の処理を行う第１のエミュレーターと、前記第３の処理を行う第２のエミュレーターとを有し、
前記第１のエミュレーターは、前記第１のＵＳＢ機器におけるＵＳＢデバイス装置として制御され、
前記第２のエミュレーターは、前記第２のＵＳＢ機器におけるＵＳＢホスト装置として制御されることを特徴とする請求項１５に記載のＵＳＢインターフェイス回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパーソナルコンピューターなどに用いられる周辺機器のＵＳＢインターフェイス回路及びＵＳＢインターフェイス回路の制御方法に関する。
【背景技術】
【０００２】
従来、パーソナルコンピューターなどの所謂ホスト装置と周辺装置とを接続をするための汎用インターフェイスの規格としてＵＳＢが存在する。ＵＳＢは使い勝手がよく、広く普及しているインターフェイスである。このため、ＵＳＢインターフェイスを有する周辺装置（以降ＵＳＢ周辺装置若しくはＵＳＢデバイス機器と呼ぶ）の種類は多く、複数の周辺機器を一台のホスト装置（以降ＵＳＢホスト装置と呼ぶ）に接続して使用される場合がある。ＵＳＢ周辺装置は、ＵＳＢから供給される電力で動作するものがあり、この場合の電力はＵＳＢホスト装置から供給される。
【０００３】
一般的に、ＵＳＢホスト装置における電力供給の負荷を低減させることは好ましいことである。ＵＳＢ周辺装置は、サスペンド状態に移行すると消費電力が低減する。従って、ＵＳＢ周辺装置を積極的にサスペンド状態に移行させることで、ＵＳＢホスト装置の電力供給の負荷を低減させることができると考えられる。例えば、特許文献１には、ＵＳＢデバイス機器のＵＳＢトランシーバー部で通信の監視を行い、一定期間ＳＯＦパケット以外に有効なパケットの受信がない場合には、ＵＳＢコントローラー部にＳＯＦパケットの送信を行わないようにすることで、ＵＳＢデバイス機器をサスペンド状態に移行させることが記載されている。また、特許文献１には、ＵＳＢデバイス機器のＵＳＢトランシーバー部は、ＳＯＦパケット以外のパケットの受信若しくはレジューム信号を受信することによりＵＳＢデバイス機器のサスペンド状態を解除するための制御を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−８４２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１におけるＵＳＢデバイス機器は、ホストコンピューターがＳＯＦパケットを出し続ける場合においてもサスペンド状態に移行することができるものの、ＵＳＢハブなどを介して接続されているような場合、他のＵＳＢデバイス機器に対してのＳＯＦ以外のパケットも受信することになることから、サスペンド状態に移行できる条件が成立しにくくなることが考えられ、また、サスペンド状態に移行したとしても、複数のＵＳＢデバイス機器が接続されている場合にはサスペンド状態から解除される条件が成立しやすいことが考えられ、ＵＳＢデバイス機器における期待通りの消費電力低減がなされないことが考えられる。
【課題を解決するための手段】
【０００６】
本発明は、上述した課題若しくは問題点の少なくともひとつを解決するためになされたものであり、以下の適用例又は実施形態をとることができる。
【０００７】
［適用例１］
本適用例にかかるＵＳＢインターフェイス回路は、第１のＵＳＢ機器が接続される第１のＵＳＢポートと、第２のＵＳＢ機器が接続される第２のＵＳＢポートと、前記第１のＵＳＢポートと前記第２のＵＳＢポートとの間に配置された第１の制御部と、を含み、前記第２のＵＳＢ機器が待機状態にあるときにおいて、前記第１の制御部は、前記第１のＵＳＢ機器から出力される所定の通信情報を受信すると前記第２のＵＳＢ機器を前記待機状態から動作状態に移行させるための第１のイベントを発生させることを特徴とする。
【０００８】
この構成によれば、所定の通信情報を受信してから待機状態にある第２のＵＳＢ機器を動作状態に移行させることで、少なくとも所定の通信情報を受信するまでの間、第２のＵＳＢ機器を待機状態とすることができ、第２のＵＳＢ機器の消費する電力量の削減を図ることができる。所定の通信情報とは、ＵＳＢインターフェイス回路が識別できる通信情報であり、ＵＳＢインターフェイス回路に対してのコマンドのようなものでよい。尚、待機状態とは、第２のＵＳＢ機器においてアプリケーションなどの処理の実行ができない状態のことをいう。従って、待機状態には、ＵＳＢに対してサスペンドとなっている状態、第２のＵＳＢ機器のアプリケーションなどを実行する処理部に対しての動作クロックが供給されていない状態若しくは電源供給がなされていない状態などが含まれる。また、動作状態は、待機状態にないときのことをいう。
【０００９】
［適用例２］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第２のＵＳＢ機器が前記待機状態にあるときは、前記第１の制御部が前記第１のＵＳＢ機器との通信を行うことが好ましい。
【００１０】
この構成によれば、第２のＵＳＢ機器が待機状態にあるときに第１の制御部が第１のＵＳＢ機器との通信を行うことで、第１のＵＳＢ機器に第２のＵＳＢ機器が動作状態にあると認識させた上で第２のＵＳＢ機器を待機状態とすることができる。これにより、第２のＵＳＢ機器を待機状態とする時間をより長くすることができ、第２のＵＳＢ機器が消費する電力量の削減を図ることができる。
【００１１】
［適用例３］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第２のＵＳＢ機器が前記待機状態にあるときは、前記第１の制御部が前記第２のＵＳＢ機器の機能をエミュレートすることが好ましい。
【００１２】
この構成によれば、第２のＵＳＢ機器が待機状態にあるときに第１の制御部が第２のＵＳＢ機器の機能をエミュレートすることにより、第２のＵＳＢ機器を待機状態とする時間を、エミュレートを行わないときに比べて長くすることができる。これにより、第２のＵＳＢ機器が消費する電力量の削減を図ることができる。
【００１３】
［適用例４］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第２のＵＳＢ機器が前記待機状態にあるときに前記第１のＵＳＢ機器と前記第１の制御部との間で行われた通信の中の一部の通信が、前記第２のＵＳＢ機器が動作状態になってから前記第１の制御部と前記第２のＵＳＢ機器との間で行われることが好ましい。
【００１４】
この構成によれば、第２のＵＳＢ機器が動作状態になってから、第１の制御部と第１のＵＳＢ機器との間で行われた通信の一部が第１の制御部と第２のＵＳＢ機器との間で行われることで、第２のＵＳＢ機器は、待機状態にあるときに第１のＵＳＢ機器から送信された通信情報の一部を受信することができる。また、これにより第１のＵＳＢ機器による再送信の処理回数の低減を図ることができる。また、第１の制御部は第２のＵＳＢ機器に必要とされる通信のみを選別して第２のＵＳＢ機器に送信することができ、第２のＵＳＢ機器が消費する電力量の削減を図ることができる。
【００１５】
［適用例５］
上記適用例にかかるＵＳＢインターフェイス回路において、前記一部の通信には、コントロール転送が含まれることが好ましい。
【００１６】
この構成によれば、第２のＵＳＢ機器は、動作状態に移行した後に、待機状態にあるときに第１のＵＳＢ機器との間で行われたコントロール転送を行うことができる。これにより、第１のＵＳＢ機器は、第２のＵＳＢ機器が待機状態にあるときでも、第２のＵＳＢ機器に対してのＵＳＢアドレスなどの設定の処理を行うことができる。
【００１７】
［適用例６］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第１のイベントは、第１の信号線を介して前記第２のＵＳＢ機器に伝達されることが好ましい。
【００１８】
この構成によれば、第１の信号線を用いることで、第１のイベントを容易に第２のＵＳＢ機器に伝達することができる。第１の信号線がない場合には、第２のＵＳＢポートを介して第１のイベントを伝える必要がある。第２のＵＳＢポートを介して第１のイベントを伝達する場合には、第２のＵＳＢ機器におけるＵＳＢの送受信回路に第１のイベントの受信に対応した制御回路が必要となるが、第１の信号線を介して伝達することで、該制御回路を不要とすると共に、待機状態において第２のＵＳＢ機器のＵＳＢの送受信回路に対する電源供給を停止することが可能となる。
【００１９】
［適用例７］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第１の制御部は、前記第１のＵＳＢ機器によりエニュメレーションが行われ、前記第２のＵＳＢ機器は、前記第１の制御部によりエニュメレーションが行われることが好ましい。
【００２０】
この構成によれば、第１の制御部が第１のＵＳＢ機器によりエニュメレーションが行われ、第２のＵＳＢ機器が第１の制御部によりエニュメレーションが行われることで、第２のＵＳＢ機器の状態に関わらず第１のＵＳＢ機器はエニュメレーションを実行することができる。これにより、第２のＵＳＢ機器が待機状態にあるときでも第１のＵＳＢ機器はエニュメレーションを実行することができ、第２のＵＳＢ機器を待機状態とする時間をより長くすることができ、第２のＵＳＢ機器が消費する電力量の削減を図ることができる。
【００２１】
［適用例８］
上記適用例にかかるＵＳＢインターフェイス回路において、更に、外部入力ポートを含み、前記第１の制御部は、前記外部入力ポートから入力された第２のイベント信号を検出すると、前記第１のＵＳＢ機器のＵＳＢポートがサスペンド状態にあるときは、前記第１のＵＳＢ機器に対してリモートウエイクアップを行うと共に、前記第２のＵＳＢ機器に対して前記第１のイベントを発生させることが好ましい。
【００２２】
この構成によれば、ＵＳＢインターフェイス回路が外部入力ポートを備え外部入力ポートからの第２のイベントを検出し、第１のＵＳＢ機器に対してのリモートウエイクアップを行うと共に第２のＵＳＢ機器に対して第１のイベントを発生させることで、第１のＵＳＢ機器におけるサスペンドからの復帰の処理と平行して第２のＵＳＢ機器を動作状態に移行させる処理行うことができる。第２のイベントを第２のＵＳＢ機器の入力とすると、第２のＵＳＢ機器が動作状態になってから第１のＵＳＢ機器に対してのリモートウエイクアップを行うことになる。このため、第２のイベントをＵＳＢインターフェイス回路の入力とすることにより、第１のＵＳＢ機器のリモートウエイクアップをより早く実行することができ、第２のイベントに対する処理の開始を早めることができる。
【００２３】
［適用例９］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第２のＵＳＢ機器に対してのバスリセットは、前記第１のＵＳＢ機器と前記第１の制御部との間の通信速度が確定した後に、前記第１の制御部により行われることが好ましい。
【００２４】
この構成によれば、第１の制御部と第１のＵＳＢ機器との間の通信速度が確定した後で第２のＵＳＢ機器のバスリセットが行われることで、第１の制御部と第２のＵＳＢ機器との間の通信速度の設定を第１の制御部と第１のＵＳＢ機器との間の通信速度と同じに設定することができる。
【００２５】
［適用例１０］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第１のＵＳＢ機器へのアタッチは、前記第２のＵＳＢポートにおけるアタッチが検出されてから行われることが好ましい。
【００２６】
アタッチとは、デバイス側（スレーブ側）の装置がホスト側の装置に対して接続を要求する動作のことをいう。ホスト側の装置は、アタッチによりデバイス側の装置の存在を検出することになる。この構成によれば、第１のＵＳＢ機器に対してのアタッチが第２のＵＳＢポートにおけるアタッチが検出されてから行われることで、第２のＵＳＢ機器の存在検出が行われてから第１のＵＳＢ機器に対しての接続要求を行うことができる。これにより、第２のＵＳＢ機器の存在を検出する前に、第１の制御部が第１のＵＳＢ機器にアタッチすることを防ぐことができ、ＵＳＢインターフェイス回路の消費電力の低減を図ることができる。
【００２７】
［適用例１１］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第２のＵＳＢ機器が前記動作状態のときは、前記第１のＵＳＢ機器と前記第２のＵＳＢ機器との間の通信が前記第１の制御部を介して行われることが好ましい。
【００２８】
この構成によれば、第２のＵＳＢ機器が動作状態にあるときに第１のＵＳＢ機器と第２のＵＳＢ機器との間の通信が第１の制御部を介して行われることで、第２のＵＳＢ機器が待機状態にあったときに使用される第１の制御部に対しての信号線を第２のＵＳＢ機器が動作状態にあるときにも使用することができる。また、第１の制御部を介することにより第１のＵＳＢ機器との通信と第２のＵＳＢ機器との通信内容を独立したものとすることができ、例えば第１の制御部が第２のＵＳＢ機器のエニュメレーションを実行している間に第１のＵＳＢ機器からの第２のＵＳＢ機器への通信に対しての応答を第１の制御部が行うことができる。
【００２９】
［適用例１２］
上記適用例にかかるＵＳＢインターフェイス回路において、更に、前記第１の制御部は記憶部を備え、前記第２のＵＳＢ機器が前記動作状態から前記待機状態に移行するときは、前記第２のＵＳＢ機器の制御情報が前記記憶部に保存され、前記第２のＵＳＢ機器が前記待機状態から前記動作状態に移行するときは、前記制御情報が前記記憶部から読み出され、前記第２のＵＳＢ機器の所定の場所に戻されることが好ましい。
【００３０】
この構成によれば、第１の制御部が記憶部を備え、第２のＵＳＢ機器が動作状態から待機状態に移行する際に第２のＵＳＢ機器の制御情報を記憶部に保存することで、第２のＵＳＢ機器が待機状態から動作状態に移行するときの動作モードなどの再設定を容易に行うことができる。
【００３１】
［適用例１３］
上記適用例にかかるＵＳＢインターフェイス回路において、前記第１の制御部は、前記制御情報の保存のための転送終了後に前記第２のＵＳＢ機器に対する電源供給を停止させ、前記所定の通信情報を受信すると前記第２のＵＳＢ機器に対する電源供給を開始させることが好ましい。
【００３２】
この構成によれば、第２のＵＳＢ機器が待機状態にあるときに第２のＵＳＢ機器の電源供給を停止することができ、第２のＵＳＢ機器における電力消費の低減を図ることができる。
【００３３】
［適用例１４］
上記適用例にかかるＵＳＢインターフェイス回路において、更に、前記第２のＵＳＢ機器と接続される外部インターフェイスを備えることが好ましい。
【００３４】
この構成によれば、ＵＳＢインターフェイス回路が第２のＵＳＢ機器と接続される外部インターフェイスを備えることにより、第２のＵＳＢ機器からＵＳＢインターフェイス回路の制御が容易に行えると共にＵＳＢインターフェイス回路から第２のＵＳＢ機器に対しての制御も容易に行うことができる。
【００３５】
［適用例１５］
本適用例にかかるＵＳＢインターフェイス回路の制御方法は、第１のＵＳＢ機器と第２のＵＳＢ機器との間に配置され、前記第１のＵＳＢ機器と前記第２のＵＳＢ機器との間の通信を仲介するＵＳＢインターフェイス回路の制御方法であって、前記第１のＵＳＢ機器と前記ＵＳＢインターフェイス回路との間の通信を行う第１の処理と、前記第１の処理において所定の通信情報を受信すると第１のイベントを発生させる第２の処理と、前記第１の処理において行われた通信の中の一部の通信を前記第２のＵＳＢ機器と前記ＵＳＢインターフェイス回路との間で行う第３の処理と、を含み、前記第１のイベントは、前記第２のＵＳＢ機器を待機状態から動作状態に移行させるための信号であり、前記第３の処理は、前記第２の処理の実行後に行われることを特徴とする。
【００３６】
この方法によれば、第１の処理において第１のＵＳＢ機器との間の通信の制御を行い、第１の処理において所定の通信情報を受信すると、第２の処理において第２のＵＳＢ機器を待機状態から動作状態に移行させる制御を行い、第３の処理において第１の処理で行われた通信の中の一部の通信を第２のＵＳＢ機器との間で行う制御を行うことにより、第２のＵＳＢ機器の電力消費の低減を図ることができる。
【００３７】
［適用例１６］
上記適用例にかかるＵＳＢインターフェイス回路の制御方法において、前記ＵＳＢインターフェイス回路は、前記第１の処理を行う第１のエミュレーターと、前記第３の処理を行う第２のエミュレーターとを有し、前記第１のエミュレーターは、前記第１のＵＳＢ機器におけるＵＳＢデバイス装置として制御され、前記第２のエミュレーターは、前記第２のＵＳＢ機器におけるＵＳＢホスト装置として制御されることが好ましい。
【００３８】
この方法によれば、第１の処理を行う第１のエミュレーターが第１のＵＳＢ機器におけるＵＳＢデバイス（スレーブ）装置として制御され、第３の処理を行う第２のエミュレーターが第２のＵＳＢ機器に対するＵＳＢホスト装置として制御されることで、ＵＳＢインターフェイス回路を介して第１のＵＳＢ機器と第２のＵＳＢ機器との間の通信を行うことができる。
【図面の簡単な説明】
【００３９】
【図１】ＵＳＢインターフェイス回路を含む情報システムのブロック図。
【図２】ＵＳＢインターフェイス回路の一部を示すブロック図。
【図３】情報システムにおけるデータ転送フローの模式図。
【図４】情報システムにおけるデータ転送フローの模式図。
【図５】ＵＳＢ上の信号の模式図。
【図６】ＵＳＢ上の信号の模式図。
【図７】ＵＳＢ上の信号の模式図。
【図８】ＵＳＢ上の信号の模式図。
【発明を実施するための形態】
【００４０】
以下、本発明の実施形態について図を用いて説明する。尚、以降の説明において、実施形態の説明の中でＵＳＢの規格書若しくは解説書などで用いられる用語を使用するが、ＵＳＢ規格は一般に知られた規格であることから、用いられる用語などの説明は特に行わない。また、以降の説明において用いる「伝達」という言葉は、情報が活用できるレベルで伝わっていることを意味するものとして使用する。従って、情報が送信されたが受信側で破棄されたような場合は情報の伝達がされたことにはならない。
【００４１】
（第１実施形態）
図１に示したのは、本発明を適用したシステム１０００のブロック図である。システム１０００は、ＵＳＢインターフェイス回路１（以降ＵＳＢＩ回路１と記載する）、ＵＳＢホスト２及びＵＳＢデバイス３を含む。ＵＳＢＩ回路１は、ＵＳＢホスト２から所定の通信情報を受信すると待機状態にあるＵＳＢデバイス３を待機状態から動作状態に移行させるための第１のイベントを発生する。所定の通信情報は、コントロール転送により行われる。第１のイベントの発生要因は、ベンダータイプのデバイスリクエストを以って定義される。
【００４２】
図１で示した構成要素について、簡単に説明する。ＵＳＢＩ回路１は、ＵＳＢホスト２及びＵＳＢデバイス３の間に配置され、ＵＳＢホスト２とＵＳＢデバイス３との間の通信の仲立ちをする部分である。ＵＳＢホスト２は、所謂パーソナルコンピューターである。ＵＳＢホスト２は、バス信号であるＵＳＢ２１を介してＵＳＢＩ回路１のアップストリームポート２００（以降ＵＳポート２００と呼ぶ）に接続されている。ＵＳＢデバイス３は、所謂ＵＳＢ周辺装置である。ＵＳＢデバイス３は、バス信号であるＵＳＢ３１を介してＵＳＢＩ回路１のダウンストリームポート３００（以降ＤＳポート３００と呼ぶ）に接続されている。尚、図１において、ＵＳＢＩ回路１とＵＳＢデバイス３とを独立した装置のように図示しているが、ＵＳＢＩ回路１とＵＳＢデバイス３とでひとつの装置となるように構成してもかまわない。この場合、ＵＳＢ３１は該ひとつの装置の中に納まる形となる。尚、ＵＳＢホスト２、ＵＳＢＩ回路１及びＵＳＢデバイス３は、いずれもハイスピードモードをサポートする。説明の便宜上、以降の説明は、ハイスピードモードにおけるものとするが、他のスピードモードにおいては、ＵＳＢ規格に沿った形で同様の処理が行われるものとする。
【００４３】
ＵＳポート２００には、ＵＳＢのドライバー、レシーバー、ＮＲＺＩ変換回路及びバス信号のプルアップ制御回路など、少なくともＵＳＢデバイスとしての機能に必要とされる制御回路が含まれる。同様にＤＳポート３００には、ＵＳＢのドライバー、レシーバー及びＮＲＺＩ変換回路など、少なくともＵＳＢホストとしての機能に必要とされる制御回路が含まれる。また、ＵＳＢＩ回路１は、第１の制御部１００を含む。更に、第１の制御部１００は、第１エミュレーター１１０及び第２エミュレーター１２０を含む。
【００４４】
ＵＳＢホスト２から出力されるＮＲＺＩ信号はＵＳポート２００においてＮＲＺ信号に変換され、第１受信信号１０２としてＵＳＢＩ回路１に取り込まれる。また、ＮＲＺ信号である第１送信信号１０１は、ＵＳポート２００においてＮＲＺＩ信号に変換され、ＵＳＢホスト２に送信される。
【００４５】
同様に、ＵＳＢデバイス３から出力されるＮＲＺＩ信号はＤＳポート３００においてＮＲＺ信号に変換され、第２受信信号２０１としてＵＳＢＩ回路１に取り込まれる。また、ＮＲＺ信号である第２送信信号２０２は、ＤＳポート３００においてＮＲＺＩ信号に変換され、ＵＳＢデバイス３に送信される。
【００４６】
また、システム１０００は、ＵＳＢＩ回路１とＵＳＢデバイス３との間に、第１イベント信号１１、第２イベント信号１２、データタイミング信号３２、データ信号３３及び外部アクセス信号３４を有する。また、外部イベント信号６０１がＵＳＢデバイス３に入力される。
【００４７】
図２に、第１の制御部１００のブロック図を示す。第１の制御部１００は、上述したように第１エミュレーター１１０及び第２エミュレーター１２０を含む。また、第１の制御部は、更に、第１セレクター１５０、第２セレクター１６０、状態制御部１３０及び記憶部１４０を含む。
【００４８】
第１エミュレーター１１０は、ＵＳＢＩ回路１とＵＳＢホスト２との間の通信を行う回路であり、ＵＳＢデバイス３の機能をエミュレートする。エミュレートを行う期間やＵＳＢホスト２からの通信に対してどのような応答をするかは、状態制御部１３０から出力されるＥ１制御信号１３１により規定される。第１エミュレーターは内部にＵＳＢ２１における通信の状態を示す情報を有する。以降の説明において、通信の状態を示す情報をステータスと呼び、情報の値が変化することをステータスが変化するという呼び方を行う。ステータスは状態制御部１３０から読み出すことが可能であり、Ｅ１Ｒデータ信号１３２を介して定期的に読み出される。Ｅ１Ｒデータ信号１３２を介して読み出されるデータの指定はＥ１制御信号１３１により行われる。
【００４９】
また、第１エミュレーター１１０は、擬似エンドポイント（図示せず）を有する。擬似エンドポイントは、ＵＳＢホスト２との間で行うトランザクションに対応するためのもので、ＵＳＢホスト２は擬似エンドポイントをＵＳＢデバイス３が有するエンドポイントであると認識してパケットの送信を行ってくる。第１エミュレーター１１０は複数の擬似エンドポイントを有してもよいし、ひとつの擬似エンドポイントにＵＳＢデバイス３の異なるエンドポイントに対してのパケットが送信されるようにしてもよい。擬似エンドポイントの数については、設計事項のひとつと判断し、特に本実施形態において特定は行わない。擬似エンドポイントに送信されたデータは状態制御部１３０によりＥ１Ｒデータ信号１３２を介して読み出され、記憶部１４０に保存される。
【００５０】
第２エミュレーター１２０は、ＵＳＢＩ回路１とＵＳＢデバイス３との間の通信を行う回路であり、ＵＳＢホスト２の機能をエミュレートする回路である。どのようにエミュレートするかは、状態制御部１３０から出力されるＥ２制御信号１３６により規定される。上述したＵＳＢホスト２から第１エミュレーター１１０の擬似エンドポイントに送信されたデータは、状態制御部１３０により記憶部１４０から読み出され、Ｅ２Ｗデータ信号１３７を介して第２エミュレーター１２０に出力される。第２エミュレーター１２０は、Ｅ２Ｗデータ信号１３７を介して入力されたデータをＵＳＢデバイス３に送信する。第２エミュレーター１２０は内部にＵＳＢ３１における通信の状態を示す情報を有し、第１エミュレーター１１０と同様に、この情報をステータスと呼ぶ。ステータスは、Ｅ２Ｒデータ信号１３８を介して、状態制御部１３０により定期的に読み出される。
【００５１】
第１セレクター１５０は、第１送信信号１０１及び第１受信信号１０２に対しての接続を、Ｅ１送信信号１０４及びＥ１受信信号１０３、又は、通信信号３０１及び通信信号３０２、のいずれかに切替えるための回路である。第１セレクター１５０の接続の切替えは、状態制御部１３０から出力されるＳ１制御信号１３４により行われる。また、第２セレクター１６０は、第２送信信号２０２及び第２受信信号２０１に対しての接続を、Ｅ２受信信号２０４及びＥ２送信信号２０３、又は、通信信号３０１及び通信信号３０２、のいずれかと切替えるための回路である。第２セレクター１６０の接続の切換えは、状態制御部１３０から出力されるＳ２制御信号１３９により行われる。第１セレクター１５０及び第２セレクター１６０が共に通信信号３０１及び通信信号３０２に接続されると、ＵＳＢホスト２とＵＳＢデバイス３との間における通信が第１エミュレーター１１０及び第２エミュレーター１２０を介さずに行われる。
【００５２】
状態制御部１３０は、ＵＳＢＩ回路１内部の状態監視及びＵＳＢＩ回路１内部の制御を行うための回路であり、ＵＳＢＩ回路１内部の制御を行うための制御信号の生成を行う。図示はしないが、状態制御部１３０は内部にＵＳＢＩ回路１の制御情報、データ及び制御プラグラムなどを保存する制御記憶部を有する。また、本実施形態においては、ＵＳＢデバイス３のディスクリプターの情報が予め上述した制御記憶部にデータとして保存されているものとする。尚、制御記憶部へのＵＳＢデバイス３のディスクリプターの情報の保存方法については、様々な方法があるので、本実施形態においては特に言及しない。
【００５３】
記憶部１４０には、ＵＳＢホスト２とＵＳＢデバイス３との間の通信情報やＵＳＢデバイス３における制御情報などが保存される。記憶部１４０は、状態制御部１３０により制御される。記憶部１４０は第１エミュレーター１１０と第２エミュレーター１２０の同時動作に対応できるように、少なくとも２組のデータ入出力ポートを有する。第１エミュレーター１１０に対してのデータ転送に用いられるのは第１アドレス信号１４１、ＲＷ１制御信号１４２及び第１入出力データ信号１４３である。ＲＷ１制御信号１４２は、データの書込み又はデータの読み出しを指定する信号である。第２エミュレーター１２０に対してのデータ転送に用いるのは第２アドレス信号１４６、ＲＷ２制御信号１４７及び第２入出力データ信号１４８である。ＲＷ２制御信号１４７は、データの書込み又はデータの読み出しを指定する信号である。
【００５４】
また、外部インターフェイス４０がＵＳＢデバイス３と状態制御部１３０との間に接続されている。外部インターフェイス４０は特別な規格のものでなく、Ｉ２Ｃバスのような既存のバスでもよいし、単に汎用ポートを接続するだけの簡単なものでもよい。状態制御部１３０とＵＳＢデバイス３との間で、お互いのメモリマップを公開しアクセスできるようにすることで、より細かな制御が可能となる。
【００５５】
電源検出信号７０１については後述する。尚、以降の説明において、ＵＳＢホスト２とＵＳＢＩ回路１との接続、若しくは、ＵＳＢＩ回路１とＵＳＢデバイス３との接続において、ＵＳポート２００若しくはＤＳポート３００を介して接続されているもののデバイスとして検出がされていない接続状態又は接続を、「物理的接続状態」又は「物理的接続」と便宜上呼ぶことにする。また、ＵＳＢのホスト側の装置若しくは回路によりＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮがなされた後における接続状態又は接続を、「論理的接続状態」又は「論理的接続」と便宜上呼ぶことにする。以降、複数の実施例の説明を行うが、いずれの実施例においても、用いられるハードウェアは上述した形態をとる。
【実施例１】
【００５６】
上述したように、ＵＳＢＩ回路１は、ＵＳＢホスト２とＵＳＢデバイス３との間に配置される。本実施例は、まず、ＵＳＢホスト２とＵＳＢＩ回路１との間、及び、ＵＳＢＩ回路１とＵＳＢデバイス３との間がいずれも物理的接続状態となり、その後にＵＳＢホスト２とＵＳＢＩ回路１との間が論理的接続状態となり、その後に第１イベントの発生を受けてＵＳＢＩ回路１とＵＳＢデバイス３との間が論理的接続状態となるときの制御動作例及び制御方法である。
【００５７】
図３は、ＵＳＢホスト２（ＵＳＢ−Ｈｏｓｔ）、ＵＳＢＩ回路１（ＵＳＢＩＣ）及びＵＳＢデバイス３（ＵＳＢ−Ｄｅｖｉｃｅ）の間で行われる通信の流れを模式的に示したものである。縦の線は時間の経過を示す。実線矢印は、ＵＳＢＩ回路１とＵＳＢデバイス３との間の通信におけるパケット転送の方向を示す。図３−（１）の時点で、ＵＳＢホスト２とＵＳＢＩ回路１との間、及び、ＵＳＢＩ回路１とＵＳＢデバイス３との間が物理的接続状態にある。また、ＵＳＢデバイス３は第１イベント信号による割込み処理に対応するための処理回路以外の部分への動作クロックの供給は行われていない。
【００５８】
状態制御部１３０は、第１エミュレーター１１０に対して、ＵＳＢ２１において論理的接続を確立することを指示する。第１エミュレーター１１０は、ＵＳポート２００を制御し、ＵＳＢ２１のＤ＋ラインを一時的にプルアップする。ＵＳＢ２１のＤ＋ラインを一時的にプルアップすることで、ＵＳＢホスト２は、ＵＳＢ２１に接続されたＵＳＢＩ回路１の接続を検出する（図３−（Ａ）・Ａｔｔａｃｈ）。その後、ＵＳＢホスト２と第１エミュレーター１１０との間でリセット及びスピードネゴシエーション（図３−（Ａ）・Ｒｅｓｅｔ／Ｓｐｅｅｄ  Ｎｅｇｏｔｉａｔｉｏｎ）が行われる。ＵＳＢホスト２と第１エミュレーター１１０との間のスピードネゴシエーションが終了すると、第１エミュレーター１１０は、ステータスを変化させる。状態制御部１３０はＥ１Ｒデータ信号１３２を介してステータスを読み出すことにより、ＵＳＢ２１におけるバスリセットが終了したことを認識する。
【００５９】
次に、ＵＳＢホスト２は、ＵＳＢＩ回路１からＵＳＢデバイス３のディスクリプターの読み出し処理を行う（図３−（Ｂ）・（ｂ１））。上述したがＵＳＢデバイス３のディスクリプターの情報は予め状態制御部１３０に保存されており、ＵＳＢホスト２に送信されるディスクリプターは、Ｅ１Ｗデータ信号１３３を介して第１エミュレーター１１０に出力される。
【００６０】
図３−（Ｂ）・（ｂ１）において、少なくともＵＳＢホスト２に送信する必要のあるディスクリプターの数だけの回数の、コントロール転送が行われる。状態制御部１３０は、ＵＳＢホスト２から送られたコントロール転送によるデバイスリクエストをＥ１Ｒデータ信号１３２により読み出し解読することで、コントロール転送により要求されたディスクリプターの種類の判定を行い、第１エミュレーター１１０にＥ１Ｗデータ信号１３３を介して該当するディスクリプターの情報を出力する。第１エミュレーター１１０は、ＩＮトランザクションにおいて該当するディスクリプターの情報をＵＳＢホスト２に送信する。
【００６１】
ＵＳＢホスト２は、必要なディスクリプターの入手を終えるとコントロール転送によりＳＥＴ＿ＡＤＤＲＥＳＳのデバイスリクエストを行い、ＵＳＢデバイス３のＵＳＢアドレスの送信を行う（図３−（Ｂ）・（ｂ２））。コントロール転送に対しての応答は、第１エミュレーター１１０により行われる。送られたＵＳＢアドレスは、第１エミュレーター１１０にセットされると共に、Ｅ１Ｒデータ信号１３２を介して状態制御部１３０により読み出され、記憶部１４０に保存される。
【００６２】
次に、ＵＳＢホスト２と第１エミュレーター１１０との間で、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮのデバイスリクエストが行われる（図３−（Ｂ）・（ｂ３））。ＵＳＢホスト２から送られたデバイスリクエストの内容は状態制御部１３０によりＥ１Ｒデータ信号１３２を介して読み出され、記憶部１４０に保存される。これにより、ＵＳＢホスト２とＵＳＢＩ回路１との間の接続状態は論理的接続状態となる（図３−（２）の時点）。状態制御部１３０は、論理的接続状態となったことを認識すると、第１イベントの発生のデバイスリクエストを有するトランザクション以外のトランザクションにおけるハンドシェイクパケットをＮＡＫとするように、Ｅ１制御信号１３１を介して第１エミュレーター１１０に指示を行う。
【００６３】
以降、図３−（Ｃ）のトランザクションが行われるまでの間、ＵＳＢホスト２とＵＳＢＩ回路１との間で行われるトランザクションにおけるハンドシェイクにおいて、第１エミュレーター１１０はＮＡＫを送信する。
【００６４】
図３−（Ｃ）は、第１イベントの発生のデバイスリクエストに属するセットアップトランザクションである。第１エミュレーターはハンドシェイクにおいてＡＣＫを送信する。状態制御部１３０は、擬似エンドポイントの内容をＥ１Ｗデータ信号１３３により読み出し解析することにより第１イベントの発生を定義づけたコマンドが送信されたことを検出すると、第１イベント信号１１をオンにすることにより第１イベントをＵＳＢデバイス３に伝達する（図３・Ｅｖｅｎｔ１）。図３−（Ｃ）より後のＵＳＢホスト２とのトランザクションにおいてハンドシェイクパケットをＮＡＫとする第１エミュレーターに対しての指示は、第１イベントの発生を定義づけたコマンドを受信した以降も有効である。
【００６５】
ＵＳＢデバイス３において、第１イベントの発生を検出することによる割込み処理が行われ、動作クロックの供給が開始される。動作クロックの供給が開始された後ＵＳＢデバイス内部の必要な初期設定が行われ、その後、ＵＳＢデバイス３はＵＳＢ３１に対してのアタッチを行う（図３−（Ａ１）・Ａｔｔａｃｈ）。第２エミュレーター１２０は、ＵＳＢデバイス３に対してのＵＳＢホスト装置として機能する。ＵＳＢ３１に対してのアタッチは第２エミュレーター１２０により検出され、その後、ＵＳＢデバイス３と第２エミュレーター１２０との間でリセット及びスピードネゴシエーション（図３−（Ａ１）・Ｒｅｓｅｔ／Ｓｐｅｅｄ  Ｎｅｇｏｔｉａｔｉｏｎ）が行われる。ＵＳＢデバイス３と第２エミュレーター１２０との間のスピードネゴシエーションが終了すると、第２エミュレーター１２０は、ステータスを変化させる。状態制御部１３０は、Ｅ２Ｒデータ信号１３８を介してステータスを読み出し、ＵＳＢデバイス３に対してのバスリセット及びスピードネゴシエーションが終了したことを認識する。
【００６６】
状態制御部１３０は、ＵＳＢデバイス３との間のスピードネゴシエーションが終了したことを認識すると、第２エミュレーター１２０にディスクリプターの読み出しを指示する。これを受けて、第２エミュレーター１２０は、ＵＳＢデバイス３のディスクリプターの読み出し処理を行う（図３−（Ｂ１）・（ｂ１１））。上述したが、ＵＳＢデバイス３のディスクリプターの情報はすでにＵＳＢホスト２に読み出されている。従って、（図３−（Ｂ１）・（ｂ１１））のトランザクションは必ずしも必要とされるものではない。
【００６７】
次に、状態制御部１３０は、記憶部１４０に保存されたＵＳＢアドレスの情報をＥ２Ｗデータ信号１３７により出力し、ＵＳＢアドレスをＵＳＢデバイス３に送信するように、第２エミュレーター１２０に対してＥ２制御信号１３６により指示する。これを受けて第２エミュレーター１２０は、コントロール転送によりＳＥＴ＿ＡＤＤＲＥＳＳのデバイスリクエストを行い、ＵＳＢアドレスをＵＳＢデバイス３に送信する。（図３−（Ｂ１）・（ｂ１２））。
【００６８】
次に、状態制御部１３０は、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮのデバイスリクエストを行うように、第２エミュレーター１２０に対してＥ２制御信号１３６により指示する。これを受けて、第２エミュレーター１２０とＵＳＢデバイス３との間でＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮのデバイスリクエストが行われる（図３−（Ｂ１）・（ｂ１３））。デバイスリクエストの内容は、記憶部１４０に保存されたＵＳＢホスト２と第１エミュレーター１１０との間で行われたＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮのデバイスリクエストの内容である。この内容は、状態制御部１３０により第２エミュレーター１２０に伝達される。ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮのデバイスリクエストが行われることにより、第２エミュレーター１２０とＵＳＢデバイス３との間の接続状態が論理的接続状態となる（図３−（３）の時点）。第２エミュレーター１２０は、ＵＳＢデバイス３が論理的接続状態になったことを認識するとステータスを変化させる。状態制御部１３０は、Ｅ２Ｒデータ信号１３８を介してステータスを読み出し、これにより、状態制御部１３０は、ＵＳＢデバイス３に対してのＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮが終了したことを認識する。
【００６９】
状態制御部１３０は、ＵＳＢデバイス３に対してのＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮが終了したことを認識すると、ＵＳＢホスト２と第１エミュレーター１１０との間のトランザクションの合間を検出して第１セレクター１５０及び第２セレクター１６０の接続の制御を行う。第１セレクター１５０はＳ１制御信号１３４により制御され、通信信号３０１及び通信信号３０２が第１送信信号１０１及び第１受信信号１０２に接続される。第２セレクター１６０はＳ２制御信号１３９により制御され、通信信号３０１及び通信信号３０２が第２受信信号２０１及び第２送信信号２０２に接続される。これにより、ＵＳＢホスト２とＵＳＢデバイス３との間の通信は、ＵＳＢＩ回路１を介するものの、第１エミュレーター１１０及び第２エミュレーター１２０を介さずに行われることが可能となる。ＵＳＢホスト２から送信された信号は、ＵＳポート２００、第１セレクター１５０、第２セレクター１６０及びＤＳポート３００を介してＵＳＢデバイス３に送信される。ＵＳＢデバイス３から送信された信号は、ＤＳポート３００、第２セレクター１６０、第１セレクター１５０及びＵＳポート２００を介してＵＳＢホスト２に出力される。
【００７０】
また、図３−（Ｃ）のトランザクションが実行されてから図３−（３）までの間、ＵＳＢホスト２とＵＳＢＩ回路１との間で行われるトランザクション（図示しない）においては、ハンドシェイクにおいて第１エミュレーター１１０によりＮＡＫが送信されている。
【実施例２】
【００７１】
本実施例の説明において、実施例１で用いた図１及び図２に示したブロック図を流用する。本実施例は、ＵＳＢホスト２とＵＳＢデバイス３との間の通信に第１エミュレーター１１０と第２エミュレーター１２０とが介在する制御動作及び制御方法を示すものである。この場合、ＵＳＢＩ回路１に示した通信信号３０１及び通信信号３０２は用いられない。ＵＳＢデバイス３が論理的接続状態となる以前のＵＳＢホスト２、ＵＳＢＩ回路１及びＵＳＢデバイス３における制御動作及び制御方法は実施例１で説明した通りである。ＵＳＢＩ回路１とＵＳＢホスト２との間の接続及びＵＳＢＩ回路１とＵＳＢデバイス３との間の接続がいずれも論理的接続になってからも、第１エミュレーター１１０がＵＳＢホスト２に対しての応答を行い、第２エミュレーター１２０がＵＳＢデバイス３に対しての応答を行い、状態制御部１３０が第１エミュレーター１１０と第２エミュレーター１２０との間におけるトランザクションの伝達制御を行う。
【００７２】
図４に、ＵＳＢホスト２（ＵＳＢ−Ｈｏｓｔ）、ＵＳＢＩ回路１（ＵＳＢＩＣ）及びＵＳＢデバイス３（ＵＳＢ−Ｄｅｖｉｃｅ）の間で行われる通信の流れを模式的に示す。図３と同様に縦線は時間の経過を示すが、ＵＳＢＩ回路１を示す縦線を太くし、縦線の中にＵＳポート２００とＤＳポート３００との間を伝達される通信情報の流れを模式的に示した。また、便宜上、同一方向へのパケットが連続する場合は、通信情報の流れを示す矢印を太く描くことで表記を簡略化した。例えば図４−（Ａ）の（ＣＯＮ１）は、トークンパケットとデータパケットとを合わせて表現している。尚、以降の記載において、ＡＣＫのＰＩＤを示すハンドシェイクパケットを（ＡＣＫ＊）と記載する。＊は、異なるパケットに対しての応答であることを識別するためのもので、数字を記載する。また、ＮＡＫのＰＩＤを示すハンドシェイクパケット及びＮＹＥＴを示すハンドシェイクパケットも同様の記載方法で記載する。
【００７３】
図４−（Ａ）は、コントロール転送におけるセットアップトランザクションの例を示している。（ＣＯＮ１）は、トークンパケットとデータパケットとを含む。（ＣＯＮ１）を受信すると、第１エミュレーター１１０はＵＳＢホスト２に対して（ＡＣＫ１）を送信する。これによりＵＳＢホスト２と第１エミュレーター１１０との間のトランザクションは終了し、ＵＳＢホスト２はＵＳＢデバイス３に対してのコントロール転送におけるセットアップトランザクションが正常に終了したと認識する。
【００７４】
（ＣＯＮ１）の内容は、状態制御部１３０によりＥ１Ｒデータ信号１３２を介して読み出され、一旦記憶部１４０に保存される。その後、状態制御部１３０は、（ＣＯＮ１）の内容を記憶部１４０から読み出しＥ２Ｗデータ信号１３７を介して出力すると共に、（ＣＯＮ１）の内容をＵＳＢデバイス３へ送信するように第２エミュレーター１２０に指示する。第２エミュレーター１２０は、この指示を受けて、（ＣＯＮ１）の内容をＵＳＢデバイス３へ送信する（図４−（Ａ）・（ＣＯＮ１１））。これに対応して、ＵＳＢデバイス３は、（ＡＣＫ１１）を送信する。これにより第２エミュレーター１２０とＵＳＢデバイス３との間のトランザクションが終了する。
【００７５】
図４−（Ｂ）には、ＩＮトランザクションの例を示している。
ＵＳＢホスト２は、ＰＩＤにＩＮを有するトークンパケット（ＩＮ１）を送信する。第１エミュレーター１１０が受信したトークンパケット（ＩＮ１）の内容は状態制御部１３０により記憶部１４０に保存される。状態制御部１３０は、ＵＳＢデバイス３からのデータが記憶部１４０にないことを示す情報を、Ｅ１制御信号１３１により第１エミュレーター１１０に出力する。これを受けて、第１エミュレーター１１０は（ＮＡＫ１）をＵＳＢホスト２に出力する。また、状態制御部１３０は、ＵＳＢホスト２からのトークンパケット（ＩＮ１）の内容をＥ２Ｗデータ信号１３７に出力すると共に、（ＩＮ１）の内容をＵＳＢデバイス３に送信することを、Ｅ２制御信号１３６により第２エミュレーター１２０に指示する。第２エミュレーター１２０は、トークンパケット（ＩＮ１１）としてトークンパケット（ＩＮ１）の内容をＵＳＢデバイス３に送信する。
【００７６】
ＵＳＢデバイス３は、トークンパケット（ＩＮ１１）に応じて、データパケット（ＤＡＴＡ１１）を送信する。第２エミュレーター１２０は、データパケット（ＤＡＴＡ１１）の受信が終了すると（ＡＣＫ１２）をＵＳＢデバイス３に送信する。これにより、第２エミュレーター１２０とＵＳＢデバイス３との間のＩＮトランザクションが終了する。状態制御部１３０は、データパケット（ＤＡＴＡ１１）の内容を第２エミュレーター１２０からＥ２Ｒデータ信号１３８により読み出し、記憶部１４０に保存する。
【００７７】
ＵＳＢホスト２は、トークンパケット（ＩＮ２）を再送する。状態制御部１３０は、第１エミュレーター１１０の擬似エンドポイントの内容を読み出しトークンパケット（ＩＮ２）の内容を認識すると、ＵＳＢホスト２の要求に応じてＵＳＢデバイス３からのデータパケット（ＤＡＴＡ１１）の内容を記憶部１４０から読み出し、第１エミュレーター１１０にＥ１Ｗデータ信号１３３により出力する。第１エミュレーター１１０は、データパケット（ＤＡＴＡ１１）の内容をデータパケット（ＤＡＴＡ１）としてＵＳＢホスト２に送信する。ＵＳＢホスト２はデータパケット（ＤＡＴＡ１）を受信すると（ＡＣＫ２）を送信し、ＵＳＢホスト２と第１エミュレーター１１０との間のＩＮトランザクションが終了する。
【００７８】
図４−（Ｃ）には、ＯＵＴトランザクションを示している。図中、（ＯＵＴ１）及び（ＯＵＴ１１）と記載しているフローには、トークンパケットとデータパケットとが含まれる。尚、図４−（Ｃ）の開始時点において、記憶部１４０にはＵＳＢホスト２から転送されるデータパケットを保存するのに十分な空きがあるものとする。また、ＵＳＢデバイス３は、ＯＵＴトランザクションを実行可能な状態にあるものとする。
【００７９】
ＵＳＢホスト２は、ＵＳＢデバイス３がデータの受信が可能かどうかを確認するために、ＰＩＮＧパケットを送信する（図４−（Ｃ）・（ＰＩＮＧ１））。状態制御部１３０は、（ＰＩＮＧ１）を認識すると第１エミュレーター１１０に対して、データの受信が可能であることをＥ１制御信号１３１により伝えると共に、第２エミュレーター１２０に対してＵＳＢデバイス３がコマンドの実行が可能かどうかの確認をＥ２制御信号１３６により指示する。これを受けて、第１エミュレーター１１０はＵＳＢホスト２に対して（ＡＣＫ３）を送信する。また、第２エミュレーター１２０は、ＵＳＢデバイス３がデータの受信が可能かどうかを確認するために、ＵＳＢデバイス３に対してＰＩＮＧパケットを送信する（図４−（Ｃ）・（ＰＩＮＧ１１））。
【００８０】
ＵＳＢホスト２は（ＡＣＫ３）を受けて、トークンパケット及びデータパケットをＵＳＢＩ回路１に送信する（図４−（Ｃ）・（ＯＵＴ１））。第１エミュレーター１１０は、（ＯＵＴ１）を受信すると（ＮＹＥＴ１）をＵＳＢホスト２に送信する。これによりＵＳＢホスト２と第１エミュレーター１１０との間で行われた（ＯＵＴ１）を含むＯＵＴトランザクションが終了し、ＵＳＢホスト２はＵＳＢデバイス３に対してデータの送信が終了したと認識する。状態制御部１３０は、（ＯＵＴ１）のデータパケットの内容を記憶部１４０に保持する。また、状態制御部１３０は、Ｅ１制御信号１３１により、ＵＳＢデバイス３がビジー状態であることを第１エミュレーター１１０に伝える。該ビジー状態である場合、第１エミュレーター１１０は、ＵＳＢホスト２とのトランザクションにおけるハンドシェイクにおいてＮＡＫを使用する。一方、ＵＳＢデバイス３は、パケット（ＰＩＮＧ１１）に対して（ＡＣＫ１３）を送信する。第２エミュレーター１２０は（ＡＣＫ１３）を受信することでステータスを変化させる。状態制御部１３０は、Ｅ２Ｒデータ信号１３８を介してステータスを読み出し、ＵＳＢデバイス３からのＡＣＫを示すハンドシェイクパケットが送信されたことを確認する。
【００８１】
ＵＳＢデバイス３がトランザクションを実行可能な状態にあると認識した状態制御部１３０は、ＯＵＴトランザクションを実行するようにＥ２制御信号１３６により第２エミュレーター１２０に指示すると共に、Ｅ２Ｗデータ信号１３７により（ＯＵＴ１）のデータパケットの内容を第２エミュレーター１２０に出力する。第２エミュレーター１２０は、状態制御部１３０からの指示を受けて、ＵＳＢデバイス３に対して（ＯＵＴ１）のデータパケットの内容を送信する（図４−（Ｃ）・（ＯＵＴ１１））。ＵＳＢデバイス３は（ＯＵＴ１１）を受信し、（ＮＹＥＴ１１）を送信する。これにより第２エミュレーター１２０とＵＳＢデバイス３との間で行われた（ＯＵＴ１１）のＯＵＴトランザクションが終了し、ＵＳＢホスト２から送信された（ＯＵＴ１）のデータパケットの内容がＵＳＢデバイス３に伝達される。第２エミュレーター１２０は、（ＮＹＥＴ１１）を受信するとステータスを変化させる。状態制御部１３０は、第２エミュレーター１２０のステータスを読み出すことにより、第２エミュレーター１２０とＵＳＢデバイス３との間のトランザクションが終了したことを認識する。これにより、状態制御部１３０は（ＯＵＴ１）のデータパケットを保存した記憶部１４０の領域が開放できると判断し、Ｅ１制御信号１３１を介して、ＵＳＢデバイス３がビジー状態でないことを第１エミュレーター１１０に通知する。
【００８２】
次に、ＵＳＢホスト２は次のＯＵＴトランザクションを行おうとするが、（ＯＵＴ１）のハンドシェイクパケットがＮＹＥＴであることから、ＵＳＢデバイス３の状況確認のためＰＩＮＧパケットを送信する（図４−（Ｃ）・（ＰＩＮＧ２））。第１エミュレーター１１０は、これに対して（ＡＣＫ４）を送信する。また、状態制御部１３０は、（ＰＩＮＧ２）を受けて、第２エミュレーター１２０に対してＰＩＮＧパケットを送信することを指示する。第２エミュレーター１２０は、これを受けてＵＳＢデバイス３に対しＰＩＮＧパケットを送信する（図４−（Ｃ）・（ＰＩＮＧ１２））。
【００８３】
ＵＳＢホスト２は、（ＡＣＫ４）を受けて、トークンパケットとデータパケットの送信を行う（図−４（Ｃ）・（ＯＵＴ２））。その後、ＵＳＢＩ回路１において、上述した（ＯＵＴ１）を受信したときの処理と同様の処理が行われ、第１エミュレーター１１０はＵＳＢホスト２に対して（ＮＹＥＴ２）を送信する。
【００８４】
一方、（ＰＩＮＧ１２）に対するＵＳＢデバイス３からのハンドシェイクパケットは、（ＮＡＫ１１）である。このため、第２エミュレーター１２０は、再度ＰＩＮＧパケットを送信し、ＵＳＢデバイス３の状況の確認を行う（図４−（Ｃ）・（ＰＩＮＧ１３））。（ＰＩＮＧ１３）に対してのハンドシェイクパケットは、（ＡＣＫ１４）であり、状態制御部１３０はＵＳＢデバイス３がトランザクションの実行が可能であることを認識する。状態制御部１３０は、（ＯＵＴ２）のデータパケットの内容を送信するように第２エミュレーター１２０に指示する。
【００８５】
第２エミュレーター１２０は、状態制御部１３０の指示を受けて（ＯＵＴ２）の内容をＵＳＢデバイス３に対して送信する（図４−（Ｃ）・（ＯＵＴ１２））。これに対して、ＵＳＢデバイス３は、（ＮＹＥＴ１２）を送信する。上述した制御により、ＯＵＴトランザクションの実行が行われる。
【実施例３】
【００８６】
本実施例は、ＵＳＢホスト２によりＵＳＢ２１に対してのバスリセットが実行され、ＵＳＢホスト２とＵＳＢＩ回路１との間での通信速度が確定された後にＵＳＢＩ回路１によりＵＳＢ３１に対してのバスリセットが行われるときの制御動作及び制御方法を説明するものである。ＵＳＢホスト２からバスリセットが実行された場合に、ＵＳＢデバイス３に対しての対応をどのようにするかは、システム１０００全体としてどのような制御にするかの思想の基にＵＳＢＩ回路１の仕様の中に定義される事項であると考えられる。本実施例は、このような制御の中のひとつとして実施できる制御例を示すものである。ＵＳＢＩ回路１は、ＵＳＢ２１の通信速度が確定された後でＵＳＢ３１に対してバスリセットを行うことで、ＵＳＢ２１とＵＳＢ３１との間で同時にバスリセットが行われることで発生する可能性のある好ましくない状況の少なくともひとつを回避することができる。発生する可能性のある好ましくない状況とは、例えば、ＵＳＢ２１における転送速度がフルスピードモードになり、ＵＳＢ３１における転送モードがハイスピードになるという状況であり、本実施例を適用することによりこの状況を回避することができる。
【００８７】
図５に、ＵＳＢ２１及びＵＳＢ３１の状態を模式化したタイムチャートを示す。ＵＳＢ２１及びＵＳＢ３１のデータ信号は差動式の一対の信号（（Ｄ＋）信号線及び（Ｄ−）信号線）からなるが、図５は信号線の変化の状態が便宜上分かりやすい形となるように模式化したものである。図中、（１）で示したのがＵＳＢ２１を模式化したタイムチャートであり、（２）で示したのがＵＳＢ３１を模式化したタイムチャートである。横軸は時間の経過を示す。尚、以降の説明で用いる図６、図７及び図８のいずれの表記も図５と同様に行っている。ここにおいて、第１エミュレーター１１０は、状態制御部１３０により、バスリセットが行われたときには自動的にバスリセットに対応する動作を行いステータスに反映させるように指示を受けているものとする。
【００８８】
図５−（１）には、ＵＳＢ２１上のバスリセットの状態が示されている。ＵＳＢホスト２は、ＳＥ０状態１５１となるようにＵＳＢ２１を駆動する。第１エミュレーター１１０は、ＳＥ０状態１５１を検出するとデバイスチャープ１５２を駆動する。ＵＳＢホスト２は、デバイスチャープ１５２を検出するとホストチャープ１５４を駆動する。第１エミュレーター１１０は、ホストチャープ１５４を検出するとステータスを変化させる。その後ＳＥ０状態１５５によりスピードネゴシエーションが終了し、その後ＳＯＦパケット１５８がＵＳＢホスト２により送信される。尚、ＳＯＦパケット１５８は、ＵＳＢデバイス側の装置をサスペンド状態にさせないためのものである。スピードネゴシエーションが終了すると、第１エミュレーター１１０はステータスを変化させる。状態制御部１３０は、第１エミュレーター１１０のステータスを読み出し、ＵＳＢ２１におけるバスリセット及びスピードネゴシエーションが終了したことを認識する。
【００８９】
図５−（２）には、ＵＳＢ３１上のバスリセットの状態が示されている。状態制御部１３０は、第１エミュレーター１１０のステータスを、Ｅ１Ｒデータ信号１３２を介して読み出すことで、ＵＳＢ２１においてホストチャープが検出されたことを知ることができる。これにより状態制御部１３０は、ＵＳＢ２１がハイスピードモードであることを認識し、第２エミュレーター１２０に対して、ＵＳＢ２１がハイスピードモードであることを通知すると共にＵＳＢ３１のバスリセットを行うことを指示する（図５−（ａ））。第２エミュレーター１２０は、ＳＥ０状態２５１となるようにＵＳＢ３１を駆動する。ＵＳＢデバイス３は、ＳＥ０状態２５１を検出するとデバイスチャープ２５２を駆動する。第２エミュレーター１２０は、デバイスチャープ２５２の終了を検出するとホストチャープ２５４を駆動する。その後ＳＥ０状態２５５によりバスリセット及びスピードネゴシエーションが終了し、その後、ＳＯＦパケット１５８が第２エミュレーター１２０により送信される。尚、本実施例は、ＵＳＢホスト２若しくは第２エミュレーターがバスリセットを起動させる前においてＳＯＦパケット１５８を送信していることを前提としているが、上述したバスリセットの制御例を示すのが目的であり、特にバスリセットの起動がかけられる前の状態を限定するものではない。
【実施例４】
【００９０】
本実施例は、ＵＳＢデバイス３がデタッチ状態にあるときにＵＳＢホスト２からバスリセットが実行された場合のＵＳＢＩ回路１の制御動作及び制御方法を説明するものである。ＵＳＢデバイス３がデタッチ状態にあることは、状態制御部１３０により認識されているものとする。
【００９１】
図６に、ＵＳＢ２１及びＵＳＢ３１の状態を模式化したタイムチャートを示す。図６−（１）はＵＳＢ２１におけるバスリセットの状態を示している。図５−（１）と同様の動作であり、ＳＥ０状態１６１でバスリセットが開始され、ＳＥ０状態１６２によりバスリセットが終了する。
【００９２】
図６−（２）には、ＵＳＢ３１におけるバスリセットの状態を示している。第１エミュレーター１１０は、ＵＳＢ２１のＳＥ０状態を検出すると内部のステータスを変化させる。状態制御部１３０は、第１エミュレーター１１０の内部ステータスを読み出すことにより、ＵＳＢ２１においてバスリセットが開始されたことを認識することができる。状態制御部１３０は、ＵＳＢ２１においてバスリセットが開始されたことを認識すると、第１イベントを第１イベント信号１１によりＵＳＢデバイス３に対して出力し、第２エミュレーター１２０に対してＵＳＢ３１をＳＥ０状態とすることの指示を行う（図６−（ａ））。
【００９３】
ＵＳＢデバイス３は、第１イベントにより起動するとＵＳＢ３１にアタッチする（図６−（２）・アタッチ１７１）。第２エミュレーター１２０は、アタッチ１７１を検出すると第２エミュレーター内部のステータスを変化させる。状態制御部１３０は、第２エミュレーター１２０のステータスを読み出し、ＵＳＢ３１においてアタッチが行われたことを認識すると第２エミュレーター１２０にＵＳＢ３１のバスリセットを指示する（図６−（ｂ））。第２エミュレーター１２０は、ＵＳＢ３１をＳＥ０状態１７２とする。その後ＵＳＢデバイス３は、デバイスチャープ１７３を駆動する。以降は上述した説明と同様の処理がなされ、ＳＥ０状態１７４によりＵＳＢ３１のバスリセット及びスピードネゴシエーションが終了する。ＵＳＢデバイス３をデタッチ状態としたままでＵＳＢＩ回路１のＵＳＢ２１のアタッチを先に行っておき、ＵＳＢホスト２がＵＳＢデバイス３の処理が必要と判断したときにＵＳＢ２１にバスリセットをかけることで、ＵＳＢデバイス３の待機状態を長くすることができる。
【実施例５】
【００９４】
本実施例は、待機状態にあるＵＳＢデバイス３に外部からのイベントが発生したときのＵＳＢＩ回路１の制御動作及び制御方法を説明するものである。本実施例は、ＵＳＢデバイス３が操作のためのスイッチやセンサーなどの出力の入力端子を有するような場合を想定したものである。外部からのイベントは、図１に外部イベント信号６０１として示した。尚、ＵＳＢＩ回路１はＵＳＢ２１に対する論理的接続は既に行われているが、ＵＳＢデバイス３は外部からのイベントの発生前は物理的接続が行われているだけであり、ＵＳＢ３１へのアタッチを行っていない。また、外部からのイベントの発生があったとき、ＵＳＢホスト２はサスペンド状態にある。図７に、ＵＳＢ２１及びＵＳＢ３１の状態を模式化したタイムチャートを示す。ＵＳＢデバイス３は、外部イベント信号６０１により割込み処理が起動される。
【００９５】
図７−（ａ）は、外部イベント信号６０１を介してイベントが入力されたタイミングを示す。ＵＳＢデバイス３は、外部イベント信号６０１により割込みが発生し、その割込み処理の中で、待機状態から動作状態に移行するための処理がなされ、第２イベント信号１２（図１及び図２を参照）によりＵＳＢＩ回路１に対して外部からのイベントの発生があったこと通知する（図７−（ｂ））。第２イベント信号１２は、ＵＳＢＩ回路１において、状態制御部１３０への入力となる。状態制御部１３０は、第２イベント信号１２によりＵＳＢデバイス３が動作状態に移行したことを検出すると第１エミュレーター１１０にＵＳＢ２１にＵＳＢホスト２に対してのリモートウエイクアップを指示する。これを受けて、第１エミュレーター１１０は、Ｊステート（図７−（１）・Ｊステート２７０）であったＵＳＢ２１をＫステート（図７−（１）・Ｋステート２７１）に駆動する。また、状態制御部１３０は、第２エミュレーター１２０に対してＵＳＢ３１をＳＥ０状態とすると共に、ＵＳＢ３１におけるアタッチを検出したらバスリセットを行うように指示する。
【００９６】
ＵＳＢデバイス３は、外部イベント信号６０１により割込み処理及び動作状態に移行する処理においてＵＳＢ３１に対する動作に必要な設定がなされると、ＵＳＢ３１にアタッチを行う（図７−（２）・アタッチ２７２）。これを受けて、第２エミュレーター１２０とＵＳＢデバイス３との間でバスリセット及びスピードネゴシエーションが行われる（図７−（２）・２７３）。第１エミュレーター１１０と第２エミュレーター１２０とが平行して動作することにより、ＵＳＢＩ回路１は、ＵＳＢホスト２に対してのリモートウエイクアップとＵＳＢデバイス３に対してのバスリセットを平行して行うことができる。これにより、ＵＳＢホスト２がサスペンド状態から復帰してからＵＳＢデバイス３に対してのバスリセットを行う必要がないため、外部のイベントに対する応答時間の短縮化を図ることができる。
【実施例６】
【００９７】
本実施例は、ＵＳＢＩ回路１がＵＳＢ３１におけるアタッチを検出してからＵＳＢ２１に対してアタッチを行う制御動作及び制御方法の例である。ＵＳＢＩ回路１とＵＳＢデバイス３との物理的接続がなされている状態でＵＳＢＩ回路１とＵＳＢホスト２との物理的接続がなされたときのＵＳＢＩ回路１における場合の制御として説明する。図８に、ＵＳＢ２１及びＵＳＢ３１の状態を模式化したタイムチャートを示す。図８のＶＢＵＳ５０１は、ＵＳポート２００におけるバス電源の検出状態を示したものである。ハイレベルであるときが、ＵＳＢ２１から電源供給を受けている期間を示す。ＵＳＢＩ回路１がＵＳＢ２１の電源供給を監視するのであるから、少なくともＵＳＢＩ回路１はＵＳＢ２１の電源バス以外から供給される電源により動作する必要がある。
【００９８】
状態制御部１３０は第２エミュレーター１２０に対し、ＵＳＢ３１のアタッチを検出しても状態制御部１３０からの指示があるまではＵＳＢ３１をＳＥ０状態にしないように指示しておく。まず、ＵＳＢＩ回路１とＵＳＢホスト２とが物理的接続される。ＵＳポート２００は、ＵＳＢ２１からのバス電源を検出すると、電源検出信号７０１により状態制御部１３０に通知する。これにより状態制御部１３０は、電源バスの存在を認識しＵＳＢホスト２が接続されたと判断する。状態制御部１３０は、ＵＳＢホスト２の存在を認識すると、ＵＳＢデバイス３に対して第１イベントを発生させる（図８・（ａ））。第１イベントによりＵＳＢデバイス３は待機状態から起動し、動作可能な状態になるとＵＳＢ３１にアタッチを行う（図８・（ｂ））。
【００９９】
図８−（２）のアタッチ４８１は、ＵＳＢデバイス３によりＤ＋信号がプルアップされた状態を示す。第２エミュレーター１２０は、アタッチ４８１を検出するとステータスを変化させる。状態制御部１３０は第２エミュレーター１２０のステータスを読み出すことによりＵＳＢ３１におけるアタッチ４８１が行われたことを検出する。その後、第１エミュレーター１１０にＵＳＢ２１にアタッチするように指示する（図８−（ｂ））。これを受けて、第１エミュレーター１１０はＵＳＢ２１のＤ＋信号をプルアップする（図８−（１）・アタッチ３８１）。ＵＳＢホスト２はアタッチ３８１を検出するとＵＳＢ２１をＳＥ０状態とし、ＵＳＢホスト２及び第１エミュレーター１１０との間でバスリセット及びスピードネゴシエーションが行われる（図８−（１）・バスリセット処理３８２）。
【０１００】
第１エミュレーター１１０は、ホストチャープ３８３を検出するとステータスを変化させる。状態制御部１３０は、第１エミュレーター１１０内部のステータスを読み出すことでＵＳＢ２１におけるホストチャープを検出し、第２エミュレーター１２０にＵＳＢ３１をＳＥ０状態としバスリセットを行うことを指示する（図８−（ｃ））。これにより第２エミュレーター１２０及びＵＳＢデバイス３との間でバスリセット及びスピードネゴシエーションが行われる（図８−（２）・バスリセット処理４８２）。
【０１０１】
次に、本実施例の変形例を示す。本変形例は、ＵＳＢＩ回路１及びＵＳＢデバイス３がＵＳＢから電源供給を受ける場合である。ＵＳＢデバイス３は、予めＵＳＢＩ回路１のＤＳポート３００と物理的接続がなされている。従って、ＵＳＢＩ回路１とＵＳＢホスト２とが物理的接続され、ＵＳポート２００がＵＳＢ２１の電源バスを検出してから後にＤＳポート３００からＵＳＢ３１の電源バスに電源供給が行われる。また、ＵＳＢＩ回路１は、ＵＳＢデバイス３のアタッチを検出してから、ＵＳポート２００に対してアタッチするように構成されている。ＵＳＢデバイス３は、バス電源の供給を受けて起動するとＵＳＢ３１にアタッチする。
【０１０２】
図８を流用して本変形例の動作を説明する。ＵＳＢＩ回路１とＵＳＢホスト２とが、ＵＳポート２００を介して物理的接続が行われ、ＵＳポート２００において、ＵＳＢ２１の電源バスからの電源供給が検出される（図８−（ａ））。その後、ＤＳポート３００を介してＵＳＢ３１の電源バスに電源が供給され、ＵＳＢデバイス３がＵＳＢ３１にアタッチする。以降、上述した手順で、ＵＳＢ２１及びＵＳＢ３１に対してのバスリセットが行われる。
【実施例７】
【０１０３】
本実施例は、ＵＳＢデバイス３がサスペンド状態になるのを防ぐためにＵＳＢホスト２がＳＯＦの送信を継続している場合において、ＵＳＢデバイス３をサスペンド状態に移行させる制御動作及び制御方法を説明するものである。この制御は、ＵＳＢデバイス３が一定の時間間隔をおいて処理を行う装置であるときなどで用いることができる。例えば、ＵＳＢデバイス３が所定の時間間隔で何らかの値の計測を行うような所定の処理を行う装置の場合に適用することができる。
【０１０４】
本実施例においては、第２イベント信号１２をＵＳＢデバイス３の動作状態及び待機状態における状態の移行を示す信号であると定義する。状態制御部１３０はＵＳＢデバイス３が動作状態又は待機状態のいずれかであるかを認識しており、第２イベント信号によりＵＳＢデバイス３の状態認識をトグルさせ、これに対応して必要な制御を実行する。本実施例の説明は、ＵＳＢデバイス３が所定の処理を終了したときから始まる。状態制御部１３０は、ＵＳＢデバイス３が動作状態にあると認識している。
【０１０５】
ＵＳＢデバイス３は、待機状態に移行することを第２イベント信号１２によりＵＳＢＩ回路１に伝達する。第２イベント信号１２は、ＵＳＢＩ回路１の状態制御部１３０に入力される。状態制御部１３０は、第２イベント信号１２によりＵＳＢデバイス３が待機状態に移行することを認識すると、第１エミュレーター１１０に対して、第１イベントの発生を指示するコマンドの受信以外とのときのハンドシェイクパケットにＮＡＫを用いるように指示する。これより、ＵＳＢデバイス３が待機状態に移行しても、ＵＳＢホスト２との通信が破綻することを防ぐことができる。
【０１０６】
次に、状態制御部１３０は、第２エミュレーター１２０にＳＯＦパケットの送信を停止し、ＵＳＢ３１をアイドル状態にするように指示する。ＵＳＢ３１がアイドル状態に移行したことで、ＵＳＢ２１の状態に関わらず、ＵＳＢデバイス３をサスペンド状態に移行させることができる。これにより、ＵＳＢデバイス３は第２イベント信号を用いるだけで、他に特別な制御手段を有しなくても、ＵＳＢＩ回路１の機能によりサスペンド状態に移行することができる。
【０１０７】
ＵＳＢデバイス３は、自らのタイマーによる割り込み処理などにより第２イベント信号１２をオンにするとともに待機状態から動作状態へ移行を行ってもよく、ＵＳＢホスト２からは第１イベントを発生させるコマンドを送信することでＵＳＢデバイス３を動作状態に移行させることができる。また、ＵＳＢホスト２からのコマンド以外でもＵＳＢＩ回路１がタイマーなどを用いて所定の時間が経過したときに第１イベントを発生させることで、ＵＳＢデバイス３を動作状態に移行させることができる。
【実施例８】
【０１０８】
本実施例は、ＵＳＢデバイス３が待機状態に移行するときにＵＳＢデバイス３の制御情報などの情報をＵＳＢＩ回路１に保存するときの制御動作及び制御情報を説明するものである。ＵＳＢデバイス３が待機状態にあるときにＵＳＢデバイス３の制御情報がＵＳＢＩ回路１に保存されていることで、待機状態にあるときのＵＳＢデバイス３に対する電源供給を停止することが可能となる。ＵＳＢデバイス３を待機状態に移行させる条件には様々なものがあるが、本実施例では、ＵＳＢ３１がアイドル状態になることによりＵＳＢデバイス３が待機状態に移行し、ＵＳＢホスト２が第１イベントを発生させるコマンドを送信することによりＵＳＢデバイス３が動作状態に移行するものとする。
【０１０９】
ＵＳＢデバイス３は、ＵＳＢ３１がアイドル状態になったことを検出すると、データタイミング信号３２に同期させ、ＵＳＢデバイス３内部の制御情報をデータ信号３３によりＵＳＢＩ回路１の状態制御部１３０に出力する。状態制御部１３０は、データタイミング信号３２で示されるタイミングでデータ信号３３をサンプリングし、サンプリングしたデータを一旦状態制御部１３０内部にバッファリングした後、記憶部１４０に保存する。ＵＳＢデバイス３は、制御情報の出力を終えるとデータタイミング信号３２の出力を停止し、待機状態に移行する。また、状態制御部１３０はＵＳＢデバイス３の制御情報を記憶部１４０に保存したことをステータスとして記録する。ステータスとして記録する方法は様々なものがあるが、本実施例においては制御記憶部内に保存フラグを設け、該保存フラグをオンにすることで記録することにする。
【０１１０】
次に、記憶部１４０に保存した制御情報の読み出しについて説明する。第１エミュレーター１１０がＵＳＢホスト２から第１イベントを発生させるコマンドを受信すると、状態制御部１３０は保存フラグがオンであるかどうかを確認する。保存フラグがオンである場合は、記憶部１４０に保存した制御情報をデータタイミング信号３２に同期させ、データ信号３３を介してＵＳＢデバイス３に出力する。ＵＳＢデバイス３は、データタイミング信号３２に同期をとり、データ信号３３をサンプリングし所定の領域にリストアする。
【０１１１】
状態制御部１３０は、記憶部１４０に保存した制御情報のリストアを終了するとＵＳＢデバイスに対して第１イベントを発生する。制御情報のリストアが行われたＵＳＢデバイス３は、第１イベントを受信すると論理的接続状態となり、ＵＳＢＩ回路１は、ＵＳＢデバイス３に対しての動作モードなどの再設定を行わずにＵＳＢデバイス３との通信を行うことができる。
【実施例９】
【０１１２】
本実施例は、実施例８におけるＵＳＢデバイス３の制御情報のリストアの方法を変えたものである。ＵＳＢデバイス３は、制御情報をリストアするための外部アクセス機能を有する。ＵＳＢデバイス３において、外部アクセス信号３４がオンとなるとデータタイミング信号３２に同期して内部アドレスが変化され、該内部アドレスが示す領域にデータ信号３３の値がリストアされる。
【０１１３】
状態制御部１３０はＵＳＢホスト２から第１イベントを発生させるコマンドを受信すると、外部アクセス信号３４をオンとし、データタイミング信号３２に同期を取って記憶部１４０にデータ信号３３を介して保存した制御情報を出力する。状態制御部１３０は、記憶部１４０に保存した制御情報をすべて出力すると第１イベントを発生する。制御情報のリストアが行われたＵＳＢデバイス３は、第１イベントを受信すると論理的接続状態となり、ＵＳＢＩ回路１は、ＵＳＢデバイス３に対しての動作モードなどの再設定を行わずにＵＳＢデバイス３との通信を行うことができる。
【０１１４】
（第２実施形態）
本実施形態は、第１実施形態においてＵＳＢデバイス３の入力としていた外部イベント信号６０１をＵＳＢＩ回路１の入力とするものである。ＵＳＢＩ回路１に入力された外部イベント信号６０１は、状態制御部１３０に入力される。本実施形態のブロック図と図１及び図２の違いは外部イベント信号６０１の入力先であることから、本実施形態のブロック図は特に図示しない。
【実施例１０】
【０１１５】
本実施例は、上述した実施例５の変形例である。ＵＳＢＩ回路１は外部イベント信号６０１によりイベントを検出すると、ＵＳＢホスト２に対してリモートウエイクアップを行うと共に、ＵＳＢデバイス３に対して第１イベントを発生させる。ＵＳＢデバイス３は、第１イベントを要因とする割込み処理により、待機状態から動作状態への移行がなされる。
【０１１６】
以上、本発明に係る実施形態及び実施例を説明したが、本発明の実施は上述した実施形態若しくは実施例に限られるものではない。例えば、第１エミュレーター１１０、第２エミュレーター１２０及び状態制御部１３０における各々の機能配分については、様々な仕方が考えられる。また、第１イベント信号１１、第２イベント信号１２、データタイミング信号３２、データ信号３３又は外部アクセス信号３４を独立して設けず、外部インターフェイス４０を用いることで実現してもよい。
【符号の説明】
【０１１７】
１…ＵＳＢＩ回路、２…ＵＳＢホスト、３…ＵＳＢデバイス、１１…第１イベント信号、１２…第２イベント信号、２１…ＵＳＢ、３１…ＵＳＢ、３２…データタイミング信号、３３…データ信号、３４…外部アクセス信号、４０…外部インターフェイス、１００…第１の制御部、１０１…第１送信信号、１０２…第１受信信号、１０３…Ｅ１受信信号、１０４…Ｅ１送信信号、１１０…第１エミュレーター、１２０…第２エミュレーター、１３０…状態制御部、１３１…Ｅ１制御信号、１３２…Ｅ１Ｒデータ信号、１３３…Ｅ１Ｗデータ信号、１３４…Ｓ１制御信号、１３６…Ｅ２制御信号、１３７…Ｅ２Ｗデータ信号、１３８…Ｅ２Ｒデータ信号、１３９…Ｓ２制御信号、１４０…記憶部、１４１…第１アドレス信号、１４２…ＲＷ１制御信号、１４３…第１入出力データ信号、１４６…第２アドレス信号、１４７…ＲＷ２制御信号、１４８…第２入出力データ信号、１５０…第１セレクター、１５１…ＳＥ０状態、１５２…デバイスチャープ、１５４…ホストチャープ、１５５…ＳＥ０状態、１５８…ＳＯＦパケット、１６０…第２セレクター、１６１…ＳＥ０状態、１６２…ＳＥ０状態、１７１…アタッチ、１７２…ＳＥ０状態、１７３…デバイスチャープ、１７４…ＳＥ０状態、２００…アップストリームポート（ＵＳポート）、２０１…第２受信信号、２０２…第２送信信号、２０３…Ｅ２送信信号、２０４…Ｅ２受信信号、２５１…ＳＥ０状態、２５２…デバイスチャープ、２５４…ホストチャープ、２５５…ＳＥ０状態、２７０…Ｊステート、２７１…Ｋステート、２７２…アタッチ、３００…ダウンストリームポート（ＤＳポート）、３０１…通信信号、３０２…通信信号、３８１…アタッチ、３８２…バスリセット処理、３８３…ホストチャープ、４８１…アタッチ、４８２…バスリセット処理、５０１…ＶＢＵＳ、６０１…外部イベント信号、７０１…電源検出信号、１０００…システム。
【図１】
2011258095.tif 000003
【図２】
2011258095.tif 000004
【図３】
2011258095.tif 000005
【図４】
2011258095.tif 000006
【図５】
2011258095.tif 000007
【図６】
2011258095.tif 000008
【図７】
2011258095.tif 000009
【図８】
2011258095.tif 000010