(57)【特許請求の範囲】
【請求項１】
ユニバーサルシリアルバス（USB）ホストであって、
有形の電子回路を備えるプロセッサと；
前記プロセッサに接続されたメモリデバイスであり、
USBを介してUSBデバイスと通信することと、
前記USBホストによって実行されるべきサービスを要求する前記USBデバイスによってアクティビティを検出することと、
前記USBデバイスによるアクティビティの検出に応答してリモートウェイクアッププロセスを実行すること、前記リモートウェイクアッププロセスは前記USBホストのアクティビティモードを変更する、と、
前記リモートウェイクアッププロセスの実行に応答してレジュームプロセスを実行すること、前記レジュームプロセスは、前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを前記USBデバイスが可能にする前記USBデバイス上のウェイクアッププロセスを開始する、と、
を備える動作を前記プロセッサに実行させるよう構成されたプロセッサ実行可能命令をその上に格納して有するメモリデバイスと；
を備えるUSBホスト。
【請求項２】
前記メモリデバイスは、
前記USBホストおよび前記USBデバイスを停止された動作状態にすることと、
前記USBホストと前記USBデバイスとの間で通信がない遊休時間期間に応答して前記USBホストを低電力モードにすることと、
を更に備える動作を前記プロセッサに実行させるよう構成されたプロセッサ実行可能命令をその上に格納して有する、
請求項1に記載のUSBホスト。
【請求項３】
前記メモリデバイスは、
前記レジュームプロセスに応答して通常の動作状態に入ること、
を更に備える動作を前記プロセッサに実行させるよう構成されたプロセッサ実行可能命令をその上に格納して有する、
請求項1に記載のUSBホスト。
【請求項４】
前記メモリデバイスは、
前記USBデバイスが前記USBホストから通信を受信するための待ち時間期間を超える前記リモートウェイクアッププロセスに応答して前記レジュームプロセスを実行すること、
を更に備える動作を前記プロセッサに実行させるよう構成されたプロセッサ実行可能命令をその上に格納して有する、請求項1に記載のUSBホスト。
【請求項５】
移動局モデムを更に備える、請求項1に記載のUSBホスト。
【請求項６】
前記移動局モデムは無線周波数インターフェースを備える、請求項5に記載のUSBホスト。
【請求項７】
前記移動局モデムは集積回路を備える、請求項6に記載のUSBホスト。
【請求項８】
電力を前記USBホストに供給するように構成されたポータブル電源を更に備える、請求項1に記載のUSBホスト。
【請求項９】
実行可能なソフトウェアをともなって構成されたユニバーサルシリアルバス（USB）デバイスであって、
前記USBデバイスに、USBを通してUSBホストと通信させるように構成されたUSBインターフェースと；
前記USBインターフェースと通信するように構成されており、
前記ＵＳＢデバイスに、
前記USBデバイスをウェイクアップするためにアクティビティを実行すること、前記アクティビティは前記USBホストによりサービスが実行されることを要求し、前記USBホストのためのリモートウェイクアッププロセスを開始する、と、
メモリに前記アクティビティを記憶することと、
前記リモートウェイクアッププロセスおよびレジュームプロセスを実行する前記USBホストに応答して前記USBデバイスをウェイクアップすることと、
前記USBデバイスがウェイクアップすることに応答して、メモリに記憶された前記アクティビティを読み出すことと、
メモリに記憶され、読み出された前記アクティビティを前記USBホストに送ることと、
を備えた動作を実行させるよう構成されたUSB論理デバイスと；
を備えるUSBデバイス。
【請求項１０】
前記USB論理デバイスは、前記USBデバイスに、前記USBホストと前記USBデバイスとの間で通信がない遊休時間期間に応答して、前記USBホストおよび前記USBデバイスを停止された動作状態にさせるように更に構成された、請求項9に記載のUSBデバイス。
【請求項１１】
前記USB論理デバイスは、前記USBデバイスに、前記レジュームプロセスに応答して通常の動作状態に入らせるように構成されている、請求項9に記載のUSBデバイス。
【請求項１２】
前記USB論理デバイスは、前記USBデバイスに、前記USBデバイスが前記USBホストから通信を受信するための待ち時間期間を超える前記リモートウェイクアッププロセスに応答して、前記USBデバイスをスリープモードにさせるように構成されている、請求項9に記載のUSBデバイス。
【請求項１３】
前記USB論理デバイスは、前記USBデバイスに、前記USBデバイスのウェイクアップに応答してアクティビティを実行させるように構成されている、請求項9に記載のUSBデバイス。
【請求項１４】
前記USBデバイスは、前記USBデバイスに電力提供するために、前記USBを通して前記USBホストから電力を受信するように構成される、請求項9に記載のUSBデバイス。
【請求項１５】
ユニバーサルシリアルバス（USB）システムであって、
USB論理デバイスを備えるUSBデバイスと；
実行可能なソフトウェアをもって構成されるUSBホストであって、
前記USBホストにUSBを通してUSBデバイスと通信させるように構成されたUSBホストコントローラと、
前記ホストコントローラと通信するように構成されるとともに、
サービスが前記USBホストによって実行されることを要求している前記USBデバイスによってアクティビティを検出することと、
前記USBデバイスによる前記アクティビティの検出に応じてリモートウェイクアッププロセスを実行すること、前記リモートウェイクアッププロセスは、前記USBホストのアクティビティモードを変更する、と、
前記リモートウェイクアッププロセスの実行に応答してレジュームプロセスを実行すること、前記レジュームプロセスは、前記USBデバイスが前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを可能にする前記USBデバイス上のウェイクアッププロセスを開始する、と、
を備える動作を前記USBホストに実行させるよう構成されたUSBシステムソフトウェアと、
を備え、
前記USB論理デバイスは、
前記USBデバイスをウェイクアップするための前記アクティビティを実行すること、前記アクティビティは前記USBホストに対して前記リモートウェイクアッププロセスを開始する、と、
前記レジュームプロセスを実行する前記USBホストに応答して前記USBデバイスをウェイクアップすることと、
前記USBデバイスのウェイクアップに応答して、メモリに記憶された前記アクティビティを読み出すことと、
前記メモリに記憶されていた読み出されたアクティビティを前記USBホストに送ることと、
を備える動作を前記USBデバイスに実行させるように実行可能なソフトウェアをもって構成される、
USBシステム。
【請求項１６】
ユニバーサルシリアルバス（USB）ホストを作動するための方法であって：
前記USBホストに接続されたUSBデバイスによりアクティビティを検出すること、前記アクティビティは、サービスが前記USBホストによって実行されることを要求する、と；
前記USBデバイスによるアクティビティの検出に応答して、リモートウェイクアッププロセスを実行すること、前記リモートウェイクアッププロセスは、前記USBホストのアクティビティモードを変更する、と；
前記リモートウェイクアッププロセスの実行に応答してレジュームプロセスを実行すること、前記リジュームプロセスは、前記USBデバイスが、前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを可能にする前記USBデバイス上のウェイクアッププロセスを開始する、と；
を備える方法。
【請求項１７】
ユニバーサルシリアルバス（USB）デバイスを作動するための方法であって：
前記USBデバイスをウェイクアップするためにアクティビティを実行すること、前記アクティビティは、サービスが前記USBデバイスに接続されたUSBホストによって実行されることを要求し、前記USBホストに対してリモートウェイクアッププロセスを開始し、前記リモートウェイクアッププロセスは、前記USBホストのアクティビティモードを変更する、と；
メモリに前記アクティビティを記憶することと；
前記リモートウェイクアッププロセスおよびレジュームプロセスを実行する前記USBホストに応答して、前記USBデバイスをウェイクアップすることと；
前記USBデバイスのウェイクアップに応答して、メモリに記憶された前記アクティビティを読み出すことと；
メモリに記憶されていた前記読み出されたアクティビティをUSBホストに送ることと；
を備える方法。
【請求項１８】
電子回路を備える有形の電子デバイスプロセッサに、
ユニバーサルシリアルバス(USB)ホストとUSBデバイスとの間の通信チャネルを確立することと；
前記USBデバイスによってアクティビティを実行すること、前記アクティビティは、サービスが前記USBホストにより実行されることを要求する、と；
前記USBデバイスによる前記アクティビティの検出に応答して、前記USBホストによってリモートウェイクアッププロセスを実行すること、前記リモートウェイクアッププロセスは前記USBホストのアクティビティモードを変更する、と；
前記USBホストによる前記リモートウェイクアッププロセスの実行に応答して、前記USBホストによってレジュームプロセスを実行すること、前記リジュームプロセスは、前記USBデバイスが、前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを可能にする前記USBデバイス上のウェイクアッププロセスを開始する、と；
前記レジュームプロセスを実行する前記USBホストに応答して、前記USBデバイスをウェイクアップすることと；
を備える動作を実行させるよう構成されたプロセッサ実行可能ソフトウェア命令をその上に記憶して有する、非一時的プロセッサ読出し可能媒体。
【請求項１９】
ユニバーサルシリアルバス(USB)ホストに、
サービスが前記USBホストによって実行されることを要求する、前記USBホストに接続されたUSBデバイスのアクティビティを検出することと；
前記USBデバイスによる前記アクティビティの検出に応答して、リモートウェイクアッププロセスを実行すること、前記リモートウェイクアッププロセスは前記USBホストのアクティビティモードを変更する、と；
前記リモートウェイクアッププロセスの実行に応答して、レジュームプロセスを実行すること、前記リジュームプロセスは、前記USBデバイスが、前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを可能にする前記USBデバイス上のウェイクアッププロセスを開始する、と；
を備える動作を実行させるよう構成されたプロセッサ実行可能ソフトウェア命令をその上に記憶して有する、非一時的プロセッサ読出し可能媒体。
【請求項２０】
ユニバーサルシリアルバス(USB)デバイスに、
前記USBデバイスをウェイクアップするためにアクティビティを実行すること、前記アクティビティは、サービスが前記USBデバイスに接続されたUSBホストによって実行されることを要求し、前記USBホストに対するリモートウェイクアッププロセスを開始し、前記リモートウェイクアッププロセスは、前記USBホストのアクティビティモードを変更する、と；
前記アクティビティをメモリに記憶することと；
前記リモートウェイクアッププロセスとレジュームプロセスを実行する前記USBホストに応答して前記USBデバイスをウェイクアップすること、前記レジュームプロセスは前記USBデバイスによって要求されたサービスを実行する、と；
前記USBデバイスのウェイクアップに応答して、メモリに記憶された前記アクティビティを読み出すことと；
メモリに記憶された前記読み出されたアクティビティを前記USBホストに送ることと；
を備える動作を実行させるよう構成されたプロセッサ実行可能ソフトウェア命令をその上に記憶して有する、非一時的プロセッサ読出し可能媒体。
【請求項２１】
ユニバーサルシリアルバス(USB)ホストに接続されるUSBデバイスによりアクティビティを検出するための手段、前記アクティビティは、サービスが前記USBホストによって実行されることを要求する、と；
前記USBデバイスによる前記アクティビティの検出に応答して、リモートウェイクアッププロセスを実行するための手段、前記リモートウェイクアッププロセスは、前記USBホストのアクティビティモードを変更する、と；
前記USBデバイスが前記USBホストによる前記要求されたサービスで前記要求されたアクティビティを実行することを可能にする、前記USBデバイス上のウェイクアッププロセスを開始するレジュームプロセスを実行するための手段と； 
を備えるUSBホスト。
【請求項２２】
サービスがユニバーサルシリアルバス(USB)ホストによって実行されることを要求するUSBデバイス上でアクティビティを実行し、前記USBホスト上のリモートウェイクアッププロセスを開始するための手段と； 
前記USBデバイスをウェイクアップするために実行されるアクティビティを記憶するための手段と；
前記リモートウェイクアッププロセスとレジュームプロセスを実行する前記USBホストに応答して、前記USBデバイスをウェイクアップするための手段と；
前記USBデバイスのウェイクアップに応答して、前記アクティビティを読み出すための手段と；
前記読み出されたアクティビティを前記USBホストに送るための手段と；
を備えるUSBデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にユニバーサルシリアルバス（Universal Serial Bus；USB）ホストとUSBデバイスとの間の、USBを通した通信に関する。さらに詳細には、本発明は、USBを通してUSBホストを遠隔的にウェイクアップするUSBデバイスに関する。
【背景技術】
【０００２】
USBは電子デバイスをインターフェースするための直列バス業界標準である。USBは、多くの周辺機器（例えば、マウス、キーボード、またはモデムなどの二次ハードウェアデバイス）が、単一の標準化インターフェースソケットを使用して、コンピュータなどのホストに接続されることを可能にする。
【０００３】
単一のUSBポートは、最大127個の周辺機器を接続するために使用されうる。USBは、プラグ・アンド・プレイ（Plug−And−Play）、ホットスワップ（hot swapping）、外部の電力供給を必要とせずに低消費デバイスに電力を提供すること、多数のデバイスが製造業者仕様（manufacturer specific）を要求せずに使用されることを可能にすること、インストールされるべき個別デバイスドライバ、USBポートの数を増やすUSBハブ、USBオンザゴー（USB On−The−Go）、および無線USBなどの様々な機能をサポートする。
【０００４】
USBオンザゴー（On−The−Go）は、ユニット上の単一のポートが、ホストまたは周辺機器のいずれかとして機能することを可能にする。典型的に、これは、USBケーブルのどちらの端（end）がユニット上のソケットに差し込まれているかをチェックすることによって選択される。2つのユニットは、ケーブルが接続され、ユニットが通信している時でさえ、プログラム制御下で両端を「交換（swap）」することができる。USBオンザゴーは、USBリンクが、ある時はデバイスとしてコンピュータのホストポートに、またある時はホスト自体として例えばマウスやキーボードなどの別の周辺機器に接続しうる携帯情報端末（PDA）のような製品のために設計される。
【０００５】
無線USBは、USBの有用性（usability）を拡大するように設計されたアプリケーションであり、それは、プロトコルレベルでUSB 1.1およびUSB 2.0との上位互換性を可能にする。無線USBは、最大480Mbpsのデータ送信速度のためにウルトラ広帯域無線テクノロジーを利用する。無線USBは、ケーブルを使用せずにデータ移送が起こることを可能にする、あるポータブル電子デバイスの無線接続によく適している。
【０００６】
USBホストとUSBデバイスとの間での通信が発生しない遊休時間期間（idle time period）の後、USBホストはUSBを停止（suspend）し、電流ドレインを最小化し、電力を節約するために、低電力モードまたはディープスリープモードに入る。低電力モードに入ったUSBホストに接続され、USBホストとの通信の再開を望むUSBデバイスは、まず、USBホストをウェイクアップ（wake up）する必要がある。USBホストをウェイクアップすることは、USB上でリモートウェイクアッププロセス（remote wakeup process）を開始するUSBデバイスによって実行される。
【０００７】
USBホストは、リモートウェイクアッププロセスの実行に応答して通信をUSBデバイスに提供する前に、ウェイクアップするための時間期間を必要とする。いくつかのUSBホストのウェイクアップ時間期間は、1ミリ秒（すなわち、1msec.）よりも長く、例えば、MSM（mobile side modem）の場合、それは、7ミリ秒（すなわち7msec.）の範囲内である。USBデバイスがUSBホストのウェイクアップ時間よりも短い待ち時間を有する場合、それは、別名、競合状態（race condition）と呼ばれる。競合状態において、USBホストは、待ち時間期間が経過した後、USBデバイスがスリープモードに入る前にUSBデバイスを急いでウェイクアップしようとする。
【０００８】
USBデバイスは、USB上でリモートウェイクアップ手順を開始した後、待ち時間期間（例えば、1ミリ秒）の間に通信応答をUSBホストから受信しないことに応答してスリープモードに入る。
【０００９】
ウェイクアップするために1ミリ秒以上を必要とするUSBホストは、USBデバイスが、スリープモードに入る前にUSBホストから返信される通信応答の受信および検出に1ミリ秒しか待てないため、USBデバイスに対して問題を提示する。そのような場合、USBデバイスは通信応答を待つことを諦め、USBホストによるリモートウェイクアッププロセスが失敗したと決断を下す。換言すると、USBホストがウェイクアップする時までに、USBデバイスはスリープ状態に戻り、USBホストは、なぜUSBデバイスがそれをウェイクアップしようとしたか解らない。
【００１０】
いくつかの場合、例えば、USBホストをウェイクアップするために、キーボードとして用いられるUSBデバイス上のキーを押すユーザは、USBホストをウェイクアップすることができないであろう。これは、使用する際にUSBシステムと不具合を引き起こし、または、USBシステムのいくつかの部分が適切に機能してないと考える。
【００１１】
別の場合、ユーザは、1つのキーを押し続け、または、1つ以上のキーを複数回押す。例えば、それによって、USBホストのウェイクアップ時間期間を超えてUSBデバイスの待ち時間期間を連続的に再設定し、USBデバイスがスリープモードに入ることを妨げ、USBホストがウェイクアップすることを可能にする。USBデバイスのユーザによるそのような連続的または反復的な手動動作を要求することは、USBデバイスのユーザにとって面倒または厄介と考えられ、それは、また、USBシステムのいくつかの部分が適切に機能していないとUSBデバイスのユーザに思わせる。
【００１２】
ウェイクアップ問題に対するUSBハードウェア解決は現在存在し、それは、受信されたリモードウェイクアップを検出し、USBホストがウェイクアップするまでUSBをアクティブにし続ける。USBハードウェア解決は、ハードウェア回路を増やし、それは、USBホストが低電力モードの時でさえハードウェア回路がアクティブ状態である必要があるため、USBホストおよび／またはUSBデバイスのためのハードウェアコスト、電流ドレイン（すなわち、電力消費）、サイズなどを増大させる。
【００１３】
従って、ハードウェア回路の関連する不利益をもたらさずに、USBを通してUSBホストを遠隔的にウェイクアップするUSBデバイスを必要とする。
【発明の概要】
【００１４】
本開示の一態様に従って、USBデバイスは、USBホストが低電力（例えば、ディープスリープ）モードの時に、USBを通してUSBホストを遠隔的にウェイクアップするために、USBを通してUSBホストと通信する。USBデバイスは、USBホストをウェイクアップするために、アクティビティを実行する。USBホストは、USBデバイスによるアクティビティの検出に応答して、リモートウェイクアッププロセスを実行する。USBホストは、USBホストによるリモートウェイクアッププロセスの実行に応答して、レジュームプロセス（resume process）を実行する。USBデバイスは、レジュームプロセスを実行するUSBホストに応答してウェイクアップする。
【００１５】
本発明の別の態様によると、本発明は、USBホスト、USBデバイス、USBシステム、USBホストを機能させるための方法、USBデバイスを機能させるための方法、USBシステムを機能させるための方法、コンピュータ読み取り可能メモリ、信号プロトコル、およびそれらの関連手段を用いる。
【００１６】
本発明のこれらおよび別の態様は、添付の図、以下の発明の詳細な記述、および以下の請求項から明白であろう。
【００１７】
本発明の態様は、同様の参照番号が対応するエレメントを指す添付図において、それに制限されない例として示される。
【図面の簡単な説明】
【００１８】
【図１】図1は、本発明の一態様に従って、USBホストと1つ以上のUSBデバイスとの間でUSB 106を通して通信サービスを提供するUSBシステムを示す。
【図２】図2は、本発明の一態様に従って、図1に示されるようなUSBシステムの詳細を示す。
【図３】図3は、本発明の一態様に従って、図1および2に示されるようなUSBシステムのための物理的なバストポロジ（bus topology）を示す。
【図４】図4は、本発明の一態様に従って、図1および2に示されるようなUSBシステムに対する、USBホストと1つ以上のUSBデバイスとの間の通信サービス、および、図3に示されるような物理的なバストポロジを示す。
【発明の詳細な説明】
【００１９】
以下の記述、図、および例は本発明の例示であり、本発明を限定するものとして解釈されるべきものではない。多数の特定な詳細が、本発明の全体の理解を提供するために記述される。しかし、ある場合においては、周知または従来の詳細は、本発明の記述を不明瞭にしないために記述されない。本開示内の1つの実施形態またはある実施形態への参照は必ずしも同一の実施形態に対するものではなく、そのような参照は1つ以上の実施形態を含みうる。
【００２０】
図1は、本発明の一態様に従って、USBホスト102と1つ以上のUSBデバイス104との間の、USB 106を通る通信サービスを提供するUSBシステム100のブロック図の描写を示す。
【００２１】
システム100は、例えば、2000年4月27日付けのUSB仕様Rev. 2.0（「USB仕様書」）および、それの任意の継続出版物、類似物、相似物、または補足的な仕様書に従って機能し、それと互換性があり、および／またはそれに準拠する。あるいは、システム100は、本発明の態様に従って機能する任意の別の仕様、標準、または通信プロトコルに従って機能する。
【００２２】
ホスト102は、USB 106を機能させ、USB 106を制御し、およびUSB 106とインターフェースすることに適した任意のタイプの電子デバイスである。ホスト102を組み込む電子デバイスの例は、パーソナルコンピュータ（PC）、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、ミニコンピュータ、メインフレーム、スーパーコンピュータ、ネットワークベースのデバイス、データプロセッサ、携帯情報端末（PDA）、パーソナルオーガナイザ、スマートカード、モデム、携帯電話、カメラ、ミュージックプレーヤ／レコーダおよび／またはビデオプレーヤ／レコーダ、ポケットベル、および腕時計、またはそれらの任意の組み合わせを含むがそれに限定されない。電子デバイスは固定（すなわち、据え付け）および／または移動（すなわち、携帯用）である。一例において、ホスト102は、移動局（別名、携帯電話として知られる）に組み込まれうるモバイルサイドモデム（MSM）を組み込む。
【００２３】
移動局は送信機および受信機を含む。送信機（図示されない）は、通信の分野で周知であるように、通信信号を遠隔基地局の受信機（図示されない）に送信する。受信機（図示されない）は、RF通信の分野で周知であるように、通信信号を遠隔基地局の送信機（図示されない）から受信する。
【００２４】
移動局の別のエレメント（図示されない）は、例えば、GPSアンテナ、ガリレオアンテナ、セルラアンテナ、プロセッサ、ユーザインターフェース、ポータブル電源、およびメモリデバイスを含む。
【００２５】
セルラアンテナおよびセルラトランシーバ（例えば、送信機および受信機）は、通信リンクを通して受信および送信される通信信号の処理に要求される機能を実行するための回路を含む。通信リンクは、典型的に、通信アンテナ（図示されない）を有する1つ以上の基地局などの別のコンポーネントへの無線周波数通信リンクである。
【００２６】
セルラトランシーバは、通信信号（例えば、無線周波数信号）を通信アンテナおよびセルトランシーバに／から伝送する送信／受信スイッチ（図示されない）を含む。いくつかの移動局において、バンド分割フィルタ（すなわち「送受切換え器」）がT／Rスイッチの代わりに使用される。受信された通信信号は、セルラトランシーバの通信受信機に入力され、処理のためにプロセッサに渡される。プロセッサから送信されるべき通信信号は、各々がトランシーバに存在する変調器および周波数変換器（図示されない）に伝播される。セルラトランシーバの電力増幅器（図示されない）は、信号の利得を、1つ以上の基地局（図示されない）への送信に適したレベルに増加させる。
【００２７】
移動局の一実施形態において、GPS受信機（図示されない）および／またはガリレオ受信機（図示されない）において捕捉および追跡回路によって生成されるデータは、通信リンク（例えば、セルラチャネル）を通して1つ以上の基地局に送信される。ロケーションサーバ（location server）（図示されない）は、次に、1つ以上の衛星受信機（図示されない）からのデータ、データが測定された時間、および、基地局の自己衛星受信機から受信される暦表データ（ephemeris data）、またはそのようなデータの別のソースに基づいて移動局31のロケーションを決定する。位置ロケーションデータは、次に、移動局または別のリモートロケーションに送信されうる。通信リンクを利用するポータブル受信機についてのさらなる詳細は、共通に譲渡された米国特許番号5,874,914において開示される。
【００２８】
移動局は、データ入力デバイスおよびデータ出力デバイス（両方とも図示されない）をさらに提供するユーザインターフェース（図示されない）を含む。
【００２９】
データ入力デバイスは、典型的に、ユーザから手動的に、または別の電子デバイスから自動的に入力データを受信することに応答して、データをプロセッサに提供する。手動的な入力の場合、例えば、データ入力デバイスはキーボードおよびマウスであるが、それは、また、タッチスクリーン、またはマイクロフォンと音声認識アプリケーションでもありうる。
【００３０】
データ出力デバイスは、典型的に、ユーザまたは別の電子デバイスによる使用のために、プロセッサからデータを提供する。ユーザへの出力の場合、例えば、データ出力デバイスは、プロセッサからのディスプレイ信号の受信に応答して1つ以上のディスプレイ画像を生成するディスプレイであるが、それは、また、スピーカまたはプリンタでもありうる。ディスプレイ画像の例は、例えば、テキスト、グラフィック、ビデオ、写真、画像、グラフ、チャート、フォームなどを含む。
【００３１】
移動局は、また、例えば、コンピュータメモリデバイスまたは別の有形またはコンピュータ読み取り可能記憶媒体など、任意のタイプのデータ記憶装置デバイスを代表するメモリデバイス（図示されない）を含む。メモリデバイスは、移動局の特定の実施に依存して、1つ以上のロケーションに位置付けされ、1つ以上のテクノロジーとして実施される1つ以上のメモリデバイスを表す。加えて、メモリデバイスは、プロセッサによって読み取ることができ、データおよび／またはプロセスを包含する一連の命令を記憶することができる任意のデバイスである。メモリデバイスの例は、RAM、ROM、EPROM、EEPROM、PROM、ディスク（ハードまたはフロッピー（登録商標））、CD−ROM、DVD、フラッシュメモリなどを含むがそれに限定されない。
【００３２】
移動局は、移動局の動作を制御するプロセッサ（図示されない）を含む。プロセッサの別のモバイル機能は、本明細書においてまだ記述されていない移動局の任意または全ての別の機能を表す。そのような別のモバイル機能は、例えば、移動局が電話をかけることおよびデータを通信することを可能にするように移動局を機能することを含む。
【００３３】
移動局は、ポータブルな電気エネルギーを記憶し、それを移動局の電気エレメントに提供するポータブル電源（図示されない）を含む。ポータブル電源の例は、バッテリーおよび燃料電池を含むがそれに限定されない。ポータブル電源は再充電可能または再充電不可能である。ポータブル電源は、典型的に、限られた量の記憶された電気エネルギーを有し、移動局が機能し続けるために、ある量が使用された後に交換または補充される必要がある。
【００３４】
通信システム（図示されない）は、無線通信を移動局に提供し、セルラ、固定無線、PCS、または衛星通信システムを含むがそれに限定されない。通信システム（図示されない）は、例えば、CDMA、TDMA、FDMA、またはGSM（登録商標）、あるいはそれらの組み合わせなど、任意の標準またはプロトコルに従って、複数のアクセス通信を提供する。
【００３５】
デバイス104は、いくつかの有益なエンドユーザ機能を実行するUSBケーブルの一端に結合されたハードウェアの一部である。デバイス104の例は、ペン、マウス、トラックボール、スピーカ、ディスプレイ、モニタ、マイクロフォン、電話、タブレット、ジョイスティック、プリンタ、スキャナ、カメラ、サムドライブなどの外付けメモリデバイス、コンピュータのEISA、ISA、またはPCIバスなどの拡張カード、および、それらの任意の組み合わせまたは変形を含むがそれに限定されない。いくつかの状況において、デバイス104は二次デバイスまたは周辺機器として記述される。
【００３６】
USB 106は有線または無線である。有線の実施形態は、銅線などの金属導体または光フィバーなどの光導体を通して通信する信号を用いる。無線の実施形態は、無線周波数（RF）または赤外線（IR）周波数などの任意の周波数でチャネルを通して通信する信号を用いる。
【００３７】
図2は、本発明の一態様に従って、図１に示されるようなシステム100の詳細を示す。ホスト102は、USBホストコントローラ202、USBシステムソフトウェア204、およびクライアントソフトウェア206をさらに含む。デバイス104は、USBバスインターフェース208、USB論理デバイス210、および機能（機能性デバイスとも呼ばれる）212をさらに含む。
【００３８】
ブロックをつなぐ実線は実際の通信フロー220を意味する。実際の通信フロー220は、ホスト102のホストコントローラ202とデバイス104のバスインターフェース208との間、ホスト102のホストコントローラ202とシステムソフトウェア204との間、ホスト102のシステムソフトウェア204とクライアントソフトウェア206との間、デバイス104のバスインターフェース208と論理デバイス210との間、および、デバイスの論理デバイス210と機能212との間で発生する。
【００３９】
ブロックをつなぐ点線は、論理的な通信フロー222を意味する。論理的な通信フロー222は、ホスト102のシステムソフトウェア204とデバイス104の論理デバイス210との間、ホスト102のクライアントソフトウェア206とデバイス104の機能212との間で発生する。
【００４０】
システム100の層は、USBバスインターフェース層214、USBデバイス層216、および機能層（function layer）218を含む。バスインターフェース層214は、ホスト102のホストコントローラ202およびデバイス104のバスインターフェース208を含む。バスインターフェース層214は、ホスト102とデバイス104との間での物理的／シグナリング／パケットの接続性を提供する。
【００４１】
デバイス層216は、ホスト102のシステムソフトウェア204およびデバイス104の論理デバイス210を含む。デバイス層216は、デバイス104との一般的なUSB動作を実行するために、システムソフトウェア204が有するビュー（view）である。
【００４２】
機能層218は、ホスト102のクライアントソフトウェア206およびデバイス104の機能212を含む。機能層218は、対応するクライアントソフトウェア206を介して、追加機能をホスト102に提供する。デバイス層216および機能層218は、各々が、USB 106を通して実際の通信フロー220のデータ転送を達成するためにバスインターフェース層214を使用するそれぞれの層内に論理通信フロー222のビューを有する。
【００４３】
ホスト102およびデバイス104は、デバイス104の機能212とホスト102のクライアントソフトウェア206との間での、頑強で信頼性のある通信をサポートするために権利および責任を共有する。USB通信は、バストポロジ、通信フローモデル、バスアクセス管理、および等時性転送（isochronous transfer）についての考慮を用いる。
【００４４】
ホスト102は、ホストコントローラ202を通してデバイス104とインタラクトする。とりわけ、ホスト102は、デバイス104の接続および除去を検出すること、ホスト102とデバイス104との間の制御フローを管理すること、ホスト102とデバイス104との間のデータフローを管理すること、状態およびアクティビティの統計を集めること、および電力を結合されたデバイス104に提供することに責任がある。
【００４５】
ホスト102は、USBのための協調エンティティ（coordinating entity）としての一意的な位置を占める。その一意的な物理ロケーションに加えて、ホスト102は、USBおよびその結合デバイス104に関連する特定の責任を有する。ホスト102はUSBへの全てのアクセスを制御する。デバイス104は、ホストによってアクセスが許可されることによってのみ、USBへのアクセスを獲得する。ホスト102は、また、USBのトポロジを監視することに責任がある。
【００４６】
ホスト102のホストコントローラ202は、USBデバイスがホスト102に結合されることを可能にするハードウェアおよびソフトウェアを提供する。
【００４７】
ホスト102のシステムソフトウェア204は、特定のオペレーティングシステムにおいてUSBをサポートするソフトウェアを提供し、典型的に、特定のデバイス104またはクライアントソフトウェア206に関係なく、そのオペレーティングシステムを供給される。システムソフトウェア204は、例えば、USBドライバ、ホストコントローラドライバ、およびホストソフトウェアを含む。システムソフトウェア204は、デバイス104とホスト102との間のインタラクションを管理する。システムソフトウェア204とデバイス104との間のインタラクションの5つのエリアは、例えば、デバイス一覧および構成、等時性データ転送、非同期データ転送、電力管理、およびデバイスとバス管理情報を含む。
【００４８】
ホスト102のクライアントソフトウェアは、デバイス104に対応して、ホスト206上で実行するソフトウェアを提供する。クライアントソフトウェア206は、典型的に、オペレーティングシステムが供給され、またはデバイス104が提供される。
【００４９】
デバイス104は、追加の機能性をホスト102に提供する。デバイス104によって提供される機能性のタイプは広く変化する。しかし、全てのデバイス104は、同一の方法で、ホスト102が異なるUSBデバイス104のUSB関連態様を管理することを可能にするために、同一のベーシックインターフェースをホスト102に提示する。デバイス104を識別および構成する状況でホスト102を支援するために、各デバイス104は、構成関連情報を伝達および報告する。報告された情報のいくつかは全てのデバイス104の間で共通である。別の情報は、デバイス104によって提供される機能性に固有である。この情報の詳細なフォーマットは、デバイス104のデバイスクラスに依存して変化する。
【００５０】
図3は、本発明の一態様に従って、図1および2に示されたようなシステム100のためのUSB物理バストポロジ300を示す。バストポロジ300は、ホスト102、デバイス104、USB 106およびルートハブ302、さらに別のハブ304を含む。別のハブ304および1つ以上のデバイス104は、便宜性、コスト、パッケージングの効率性などのために、単一の合成デバイス306に組み込まれる。
【００５１】
バストポロジ300の4つの態様は、ホスト102およびデバイス104、物理トポロジ、論理トポロジ、およびクライアントソフトウェア206とデバイス機能212との間の関係を含む。ホスト102およびデバイス104はシステム100の主要コンポーネントを示す。物理トポロジは、どのようにUSBエレメントが互いに結合されるかを表す。論理トポロジは、さまざまなUSBエレメントの役目および責任、およびホスト102とデバイス104の見解からUSBがどのように見えるかを表す。クライアントソフトウェア206とデバイス機能212との間の関係は、クライアントソフトウェア206およびその関連機能212のインターフェースがどのように互いを見るかを表す。
【００５２】
USB 106上のデバイス104は、図3に示されるように、段階的スター型トポロジを介してホスト102に物理的に接続される。USB接続ポイントは、ハブとして知られる特別クラスのUSBデバイスによって提供される。ハブによって提供される追加の接続ポイントはポートと呼ばれる。ホスト102はルートハブ302と呼ばれる組み込みハブを含む。ホスト102は、ルートハブ302を介して、1つ以上の接続ポイントを提供する。追加の機能性をホスト104に提供するデバイス104は機能として知られる。循環接続を防ぐために、段階的な順序付けがUSBのスタートポロジに課せられる。これは、図3に記述される木のような構成に帰着する。
【００５３】
複数の機能は、単一の物理デバイスのようなものに共に実装される。例えば、キーボードおよびトラックボールは単一のパッケージに組み合わされる。パッケージの内部において、個々の機能は永久にハブ304に接続され、それはUSB 106に接続される内蔵ハブである。単一のパッケージの中に複数の機能がハブ304と組み合わされると、それらは複合デバイス（compound device）306と呼ばれる。複合デバイス306内のハブ304およびハブ304に接続された各機能は、それ自体のデバイスアドレスが割り当てられる。互いに独立して制御される複数のインターフェースを有するデバイス104は混成デバイス（composite device）と呼ばれる。混成デバイスは、単一のデバイスアドレスだけを有する。ホストの視点から、複合デバイスは、複数の機能が取り付けられた個別ハブと同じである。
【００５４】
図4は、本発明の一態様に従って、図1および2に示されるようなUSBシステム100のための、USBホスト102と1つ以上のUSBデバイス104との間の通信サービス、および図3に示されるような物理バストポロジ300を示す。通信サービスは、時間420にわたって機能または実行される方法またはプロセスであると考えられる。このように、図4のダイアグラムは、また、1つ以上のプロセスフローチャートによって表され、または1つ以上のプロセスフローチャートを用いる。ホスト102は、その下に位置する点線422に沿って通信サービスを実行する。デバイス104は、その下に位置する点線424に沿って通信サービスを実行する。ホスト102およびデバイス104の各々によって共有される通信サービスは、点線422および424の両方にかかる。
【００５５】
ホスト102は、USBから独立した電力管理システムを有する。システムソフトウェア204は、停止またはレジュームなどのシステム電力イベントを処理するために、ホストの電力管理システムとインタラクトする。加えて、デバイス104は、典型的に、それらがシステムソフトウェアによって電力管理されることを可能にするさらなる電力管理機能を実施する。USBの電力分散および電力管理機能は、それが、本明細書に記述されるように、バッテリーベースのノートブックコンピュータおよびMSMなどの電力感知システムに設計されることを可能にする。
【００５６】
USBはポーリングされたバスプロトコルを用いる。ホストコントローラ202は全てのデータ転送を開始する。大抵のバストランザクションは最大3つのパケットの送信を含む。各トランザクションは、ホストコントローラ202が、トランザクションのタイプおよび方向、USBデバイスアドレス、およびエンドポイント番号を示すUSBパケットをスケジュールベースで送信する時に開始する。このパケットは「トークンパケット」と呼ばれる。アドレス指定されたこのデバイス104は、適切なアドレスフィールドを復号することによってそれ自身を選択する。所与のトランザクションにおいて、データは、ホスト102からデバイス104に、またはデバイス104からホスト102に転送される。データ転送の方向はトークンパケットにおいて特定される。トランザクションのソースは、次に、データパケットを送信し、または、それが転送用のデータを有さないことを示す。宛先は、一般に、転送が成功したか否かを示すハンドシェイクパケットを用いて応答する。ホストコントローラ202とハブ304との間のいくつかのバストランザクションは、4つのパケットの送信を含む。これらのタイプのトランザクションは、ホスト102とフルスピード／低速デバイス104とのデー転送を管理するために使用される。
【００５７】
ホスト102のソースまたは宛先と、デバイス104のエンドポイントとの間のUSBデータ転送モデルはパイプ（pipe）と呼ばれる。2つのタイプのパイプ（ストリームおよびメッセージ）が存在する。ストリームデータはUSB定義の構造を有さず、メッセージデータはUSB定義の構造を有す。さらに、パイプは、データ帯域幅、転送サービスタイプ、および方向性およびバッファサイズなどのエンドポイント特徴に関連する。大抵のパイプは、USBデバイスが構成される際に成立する。1つのメッセージパイプ（デフォルト制御パイプ（Default Control Pipe））は、常に、デバイスの構成、状態および制御情報へのアクセスを提供するために、一度デバイスの電源が入ると存在している。トランザクションスケジュールはいくつかのストリームパイプに対してフロー制御を可能にする。ハードウェアレベルにおいて、これは、データレートを減速するためにNAK（すなわち、否定応答）ハンドシェイクを使用することによって、アンダーラン状態またはオーバーラン状態からバッファを防ぐ。否定応答されると、バス時間が利用可能な時にトランザクションが再び実施される。フロー制御メカニズムは、異種混合のストリームパイプの同時のサービスを適応させる柔軟なスケジュールの構成を可能にする。このように、複数のストリームパイプは、異なるインターバルで、および異なるサイズのパケットを用いてサービスされる。
【００５８】
プロセス402の間に、ホスト102およびデバイス104は、USB通信の分野で周知のプロセスを使用して、通常の通信状態で機能する。
【００５９】
時間期間403の間、ホスト102とデバイス104との間で通信がない時に遊休時間期間（idle time period）が存在する。例えば、デバイス104がキーボードである場合、ユーザがキーを押さない時に遊休時間期間が発生する。
【００６０】
プロセス404の間、ホスト102は、決められた持続期間を有する遊休時間期間、または決められた持続期間を超える遊休時間期間に応答して、USBを停止して低電力モードに入る。低電力モードは、別名、ディープスリープモードとして知られ、それは、バッテリーなどのポータブル電源上で機能するホスト102が電力を節約することを可能にする。ディープスリープモードにおいて、ホスト102の大抵の電子回路は、電流ドレインを最小化するために電源がオフにされる。
【００６１】
プロセス405の間、ホスト102およびデバイス104は、USB通信の分野で周知のプロセスを使用して、停止された通信状態で動作する。ホスト102およびデバイス104は、任意の時間継続期間の間、停止状態（suspended state）である。停止状態は、ホスト102および／またはデバス104が後の正常動作のために、バッテリー電力を節約することを可能にする。
【００６２】
USB仕様書のセクション10.5.4.2によると、USBのための電力管理の2つの協調レベルは、バスレベル管理およびデバイスレベル管理を含む。デバイスクラスはクラス固有の電力制御機能を定義する。USBデバイス104は停止モードをサポートする。デバイス104は、デバイス104が接続されるハブポートの制御を介して停止状態にされる。通常のデバイス動作は、停止モードの際、停止する。デバイス104がウェイクアップシグナリングの能力を有し、デバイス104がリモートウェイクアップの能力を有する場合、それは、外部イベントに応答してレジュームシグナリング（resume signaling）を生成する。電力管理システムは、電力を制御および節約するために、デバイスを停止状態に移行し、または、デバイス104の電源をオフにする。USB仕様書は、これらの移行にわたって保存または復元されるべきデバイス状態に、要求あるいは命令を提供しない。デバイスクラスは、クラス固有のデバイス状態の保存／復元機能を定義する。システム100は、デバイス電力状態と停止モードとの間のインタラクションを協調する。デバイス104がシステム100によって使用されてない（すなわち、いかなるトランザクションもSOFトークンを除くデバイスに／から送信されていない）間、デバイス104が、デバイスが取り付けられるポートを選択的に停止することによって、可能な限り早く停止されることが推奨される。非アクティブデバイスを停止することは、短絡状態（short circuit condition）の場合に、高速モードで動作するトランシーバを通る高電流による信頼性の問題を縮小する。これらの短絡状態のいくつかは、デバイス104へのトランザクションがない場合、検出不可能である。不使用デバイス104を停止することは、短絡状態の場合に、トランシーバインターフェースを、より高い信頼性を有するフルスピードモードにする。
【００６３】
プロセス406の間に、デバイス104はアクティビティを実行する。例えば、デバイス104がキーボードである場合、アクティビティは、キーを押すユーザに応答してキー打ちを表すデータパケットを生成し、その生成されたデータパケットをホスト102に送信（すなわち、伝送、提供）している。アクティビティは、ユーザによって手動で（例えば、キーを押すことによって）生成され、または、デバイス104によって自動的に生成される。プロセス406で実行されるアクティビティはホスト102をウェイクアップし、デバイス104をウェイクアップすることを指す。プロセス406でアクティビティを実行すると、デバイス104のユーザおよび／またはホスト102は、ホスト102が低電力モードから出て、デバイス104と、通常の動作状態をレジュームすることを期待する。
【００６４】
プロセス407の間、デバイス104は、例えば、プロセス406でのアクティビティの実行に応答して、さらなる参照およびプロセス415での検索のために、アクティビティ（例えば、キー打ちを表すデータパケット）をデバイス104のメモリに記憶する。
【００６５】
このプロセス407は、実行されたアクティビティがキャプチャされるのに十分に重要でない場合は随意であり、必須ではない（例えば、ユーザが、あまり不便を感じることなくキーを再度打つことができるため、キー打ちを表すデータパケットなど）。
【００６６】
時間期間408の間、デバイス104は、プロセス406でのアクティビティの実行に応答して、ホスト102からの通信のための時間期間を待つ。典型的に、デバイス104は、ホスト102からの通信を期待しながら、約1ミリ秒（すなわち、1msec.）の時間期間を待つ。
【００６７】
プロセス409の間、ホスト409は、USB通信の分野で周知のプロセスを使用して、プロセス406でアクティビティを実行するデバイス104に応答して、プロセス406でデバイス104によって実行されるアクティビティを検出する。
【００６８】
プロセス410の間、ホスト102は、USB通信の分野で周知のプロセスを使用して、プロセス409でアクティビティを検出することに応答して、リモートウェイクアッププロセスを実行する。
【００６９】
USB仕様書のセクション9.2.5.2によると、リモートウェイクアップは、停止されたデバイス104が同様に停止されうるホスト102に信号送信することを可能にする。これは、必要に応じて、それが停止モードからレジュームすべきであること、および停止されたデバイス104をトリガしてホスト102に信号送信させる外部イベントをサービスすることをホスト102に通知する。デバイス104は、構成デスクリプタ（configuration descriptor）において、リモートウェイクアップをサポートする機能を報告する。デバイス104がリモートウェイクアップをサポートする場合、それは、また、標準のUSB要求を使用して、その機能が有効および無効にされることを可能にしなければならない。リモートウェイクアップは、USB仕様書のセクション7.1.7.7に記述される電気シグナリングを使用して達成される。
【００７０】
USB仕様書のセクション10.5.4.5によると、システム100は、停止されたUSBツリー（USB tree）のレジューム電力消費を最小化する。これは、デバイス104と近接の自家動力型のアウェイクハブ（awake hub）との間で、ハブポートを選択的に停止および／または無効にすることを介して、レジュームシグナリングおよびそのレジュームシグナリングの伝播の制御が可能なデバイスを明示的に有効にすることによって達成される。いくつかのエラー回復シナリオにおいて、USBシステムはサブツリー（sub−tree）を再度列挙する必要があるだろう。サブツリーは、部分的または完全に停止されうる。エラー回復の間、USBシステムは、レジュームシグナリングを発信し、同時にポートのリセットダウンを駆動するデバイス104との間で、競合を回避しなければならない。回避は、デバイスのリモートウェイクアップ機能およびハブのポート機能の管理を介して達成される。
【００７１】
時間期間411の間、ホスト102は、プロセス410でのリモートウェイクアッププロセスの実行に応答して通信をデバイス104に提供する前に、ウェイクアップするための時間期間を必要とする。ホスト102のためのウェイクアップ時間期間は、1ミリ秒（すなわち、1msec.）よりも長く、MSMは、例えば、7ミリ秒（すなわち、7msec.）の範囲内である。デバイス104がホスト102のウェイクアップ時間（時間411）よりも短い待ち時間（時間408）を有する場合、それは、別名競合状態と呼ばれる。競合状態において、ホスト102は、時間408で待ち時間期間が経過した後、デバイス104がプロセス412でスリープモードに入る前にデバイス104をウェイクアップするように競う。
【００７２】
プロセス412の間、デバイス104は、プロセス406でのアクティビティの実行後、待ち時間期間（例えば、1ミリ秒）の間に通信応答をホスト102から受信しなかったことに応答して、スリープモードに入る。
【００７３】
プロセス413の間、ホスト102は、プロセス410でのリモートウェイクアッププロセスの実行に応答して、レジュームプロセスを実行する。MSMの例において、レジュームプロセスは約7ミリ秒が経過した後に実行される。レジュームプロセス413は、デバイス104がプロセス412ですでにスリープモードに戻った後に、ホスト102をウェイクアップさせるという問題を解決する。レジュームプロセス413は、デバイス104がプロセス412ですでにスリープモードに戻った後に、デバイス104がウェイクアップすることを確実にする。換言すると、ホスト102は、デバイス104の動作をレジュームするために、レジュームプロセス413を実行する。レジュームプロセス413を実行することによって、ホスト102は、プロセス406でアクティビティを実行することによって、リモートウェイクアップシーケンスを発信しようとするデバイス104の動作をレジュームするが、ホスト102が時間内にウェイクアップしなかったため失敗する。デバイス104が、そのレジュームプロセス413を検出すると、デバイス104はウェイクアップし、デバイス104が通常の動作状態の下でアクティビティを実行することを可能にする。
【００７４】
ホスト102がレジュームプロセス413を実行すると、ホスト102は、全ての接続されたデバイス104の動作（すなわち、ウェイクアップ）をレジュームする。デバイス104のいくつかはホスト102と通信する必要がなく、遊休時間403の後にスリ−プモードに戻り、一方、以前ホスト102をウェイクアップしたデバイス104は通信することが許される。
【００７５】
リモートウェイクアッププロセスを実行した後にレジュームプロセスを実行するホスト102の解決の利点は、その解決がソフトウェア（すなわち、プログラミング命令またはコード）で実施され、ハードウェア交換を要求しないことである。ハードウェア交換を必要としないソフトウェアの変換は、すでに製造され、および／または消費者に展開されたハードウェアデバイスにおいて解決を実施するための重大な利点である。さらに、ソフトウェアにおいて実施される解決は、新しいハードウェア設計におけるハードウェアコスト、スペース、および電力消費を削減する。
【００７６】
USB仕様書のセクション7.1.7.7によると、デバイス104が停止モードにある場合、その動作は、任意の非遊休シグナリングがアップストリーム側のポート（upstream facing port）上で受信される時にレジュームされる。さらに、デバイス104は、そのリモートウェイクアップ機能がシステムソフトウェア204によって有効にされた場合、動作をレジュームするためにシステム100に信号送信する。レジュームシグナリングは、停止されたバスセグメントをアクティブ状態に戻すために、ホスト102またはデバイス104によって使用される。
【００７７】
ハブは、レジュームシグナリングの伝播および生成において重要な役目を担う。以下の記述は、一般の全体的なグローバルレジュームシーケンスの概要である。レジュームシーケンス、選択的停止によって引き起こされる特例、およびハブの役目の完全な記述は、USB仕様書のセクション11.9に記述される。
【００７８】
ホスト102は、任意の時間に、レジューム（TDRSMDN）を信号送信する。ホスト102は、少なくとも20ミリ秒の間、レジュームシグナリングを送信し、そのポートが停止された時に動作していた速度に依存して、2つの方法のうちの1つでレジュームシグナリングを終了する。停止された時にポートが低速度／フル速度であった場合、レジュームシグナリングは、標準の低速度EOP（Jに続くSEOの2つの低速度ビット時間）で終了されなければならない。停止された時にポートが高速で動作していた場合、レジュームシグナリングは、高速遊休状態へのトランジションで終了されなければならない。20ミリ秒のレジュームシグナリングは、レジュームを見るために有効にされるネットワ−ク内の全てのデバイス104がアウェイクされることを確実にする。レジュームシグナリングによって確立される接続性は、レジュームの終了（End of Resume）によって壊され、それは、通常の動作に備えてハブを用意する。バスをレジュームした後、ホスト102は、システムが停止モードに戻らないように、遊休状態の開始の3ミリ秒以内にバストラフィック（少なくともSOFトークン）の送信を開始しなければならない。
【００７９】
リモートウェイクアップ機能を備えるデバイス104は、バスが継続的に5ミリ秒間、遊休状態にない限り、レジュームシグナリングを生成しない（TWTRSM）。これは、ハブが、停止状態に入って、レジュームシグナリングの伝播に備えることを可能にする。リモートウェイクアップデバイスは、少なくとも1ミリ秒間以上15ミリ秒以下の間、そのレジュームシグナリングを保持しなければならない（TDRSMUP）。この期間の終了において、デバイス104は、バスの駆動を停止する（そのドライバを高インピーダンス状態にし、バスをJ状態にしない）。
【００８０】
リモートウェイクアップデバイスのハブのアップストリームが停止されると、それは、アップストリーム側のポート（レジュームを最初に信号送信したポートを含む）に、および有効にされたダウンストリーム側のポート（downstream facing port）の全てにレジュームシグナリングを伝播する。ハブがダウンストリームデバイスからレジュームシグナリングを伝播している時、それは、通常許可された速度よりも早い立ち上がり時間で遊休状態からKに移行する。ハブは、最初のレジュームを受信する1ミリ秒の間に、レジュームシグナリングのこの再同報（TURSM）を開始しなければならない。レジュームシグナリングは、それがホストまたは非停止ハブ（参照：セクション11.9）に到達するまで、この方法でアップストリームを伝播し、それは、レジュームダウンストリームを指し、レジュームタイミングを制御する。このハブは制御ハブと呼ばれる。中間ハブ（intermediate hub）（レジュームイニシエータと制御ハブとの間のハブ）は、また、それらが有効ダウンストリーム側のポート上でレジュームを駆動し続ける時間の間の少なくとも1ミリ秒間、それらのアップストリーム側のポート上でレジュームを駆動する（TDRSMUP）。中間ハブは、アップストリーム側のポート上でレジュームを駆動することを止め、アップストリーム側のポート上でレジュームを最初にアサートした後で、15ミリ秒の間に、アップストリームからダウンストリームに接続性の方向を逆にする。全ての中間ハブが接続性を逆にした場合、レジュームは、全ての中間ハブを通して制御ハブから全ての有効ポートに駆動されている。制御ハブは、1ミリ秒の間にレジュームシグナリングを再同報しなければならず（TURSM）、レジュームが少なくとも20ミリ秒の間、信号送信されることを確実にする（TDRSMDN）。ハブは、次に、上に記述されたようにレジュームプロセスを終了することによって、通常の動作を開始する。
【００８１】
このシステムソフトウェア204は、影響を受けた（まさにアクティブにされた）バスセグメントに接続された任意のデバイスへのアクセスを試みない時間の間の10ミリ秒のレジューム回復時間（TRSMRCY）を提供しなければならない。
【００８２】
ポート接続およびポート接続切断は、また、ハブに、レジューム信号を送信させ、システムをアウェイクさせる。これらのイベントは、ハブがリモートウェイクアップソースとして有効にされた場合にのみ、ハブにレジューム信号を送信させる。
【００８３】
ハブポートおよびデバイスが、停止前に高速で動作していた場合、それらは、それらが前に高速で動作していたことを「記憶」することが要求され、それらはKからSE０へのトランジションの2つの低速ビット時間の間に、アービトレーション（arbitration）なしで高速の動作に移行しなければならない。非アクティビティタイマは、KからSE０へのトランジションの後に、2つの高速ビット時間で開始されなければならない。リンクが停止された時にそれが高速で動作していた場合、フルスピードのレジュームシグナリングの最後に通常発生するSE０からJへのトランジションは省略されることに注意されたい。ホスト102は、高速ツリーが停止しないように、時間内にSOFの送信を開始する。
【００８４】
プロセス414の間、デバイス104は、ホスト102がレジュームプロセスを実行（413）した後に、ホスト102からの通信応答の受信に応答して、スリープモード（プロセス412で入った）からウェイクアップする。
【００８５】
プロセス415の間、デバイス104は、プロセス414でのウェイクアップに応答して、プロセスステップ407で記憶されたアクティビティ（例えば、キー打ちを表すデータパケット）を検索する。
【００８６】
プロセス416の間、デバイス104は、プロセス415で記憶されたアクティビティの検索に応答して、検索された記憶されたアクティビティをホスト102に送信する。プロセスステップ415および416は、随意的なプロセスであり、ホスト102が、デバイス104をウェイクアップするためのレジュームプロセス413を実行するために要求されない。プロセス415および416は、望まれる場合には、デバイス104に再度アクティビティの実行を要求することなく、デバイス104がスリープモードに入る前にデバイス104によって実行されたアクティビティを記憶および適用することを有利に可能にする。
【００８７】
プロセス417の間、デバイス104は、同一または別のアクティビティ（例えば、キー打ちを表すデータパケットの生成およびそれのホスト102への送信）の実行を継続する。
【００８８】
プロセス418の間、プロセス402にあるように、ホスト102およびデバイス104は、USB通信の分野において周知のプロセスを使用して、通常の通信状態において動作する。
【００８９】
ここに含まれるシステム、エレメント、方法、および／またはプロセスは、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実施され、1つ以上のプロセッサを含む。プロセッサは、タスクを実行するためのデバイスおよび／または機械読み取り可能命令のセットである。プロセッサは、コンピュータ、マイクロプロセッサ、コントローラ、特定用途向け集積回路（ASIC）、有限状態機械（finite state machine）、デジタル信号プロセッサ（DSP）、またはいくつかの別のメカニズムを含むがそれに限定されない、プロセスを組み込む一連の命令を実行可能な任意のデバイスである。プロセッサは、ハードウェア、ファームウェア、および／またはソフトウェアの任意の組み合わせを含む。プロセッサは、実行可能なアプリケーション、手順、または情報デバイスによって使用される情報を計算、操作、分析、変更、変換、または送信することによって、および／または情報を出力デバイスに送ることによって、記憶および／または受信された情報に作用する。
【００９０】
実行可能なアプリケーションは、例えば、ユーザ命令または入力に応答して、例えば、オペレーティングシステム、ソフトウェアアプリケーションプログラム、または別の情報処理システムのそれらを含む既定の機能を実施するための機械コードまたは機械読み取り可能命令を備える。
【００９１】
実行可能な手順は、コードのセグメント（すなわち、機械読み取り可能命令）、サブルーチン、または1つ以上の特定のプロセスを実行するための別の異なるコードセクションまたは実行可能なアプリケーションの一部であり、受信された入力パラメータ上で（あるいは、入力パラメータの受信に応答して）動作を実行すること、および結果として得られる出力パラメータを提供することを含む。
【００９２】
様々な実施形態において、物理的に組み込まれた回路は、本発明を実施するためのソフトウェア命令と組み合わせて使用される。このように、当技術は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせ、あるいはデータ処理システムによって実行可能な命令についての任意の特定のソースに限定されない。加えて、本記述全体を通して、様々な機能および動作は、記述を簡単にするために、ソフトウェアコードによって実行または引き起こされているとして記述されている。しかし、そのような表現から、機能がプロセッサによるコードの実行に起因することが意味されることを、当業者は認識するであろう。
【００９３】
本発明の態様が、少なくとも部分的にソフトウェアに組み込まれうることは、この記述から明白であろう。すなわち、当技術は、機械読み取り可能媒体に含まれる命令のシーケンスを実行するプロセッサに応答して、コンピュータシステムまたは別のデータ処理システムで実行される。
【００９４】
機械読み取り可能媒体は、機械（例えば、コンピュータ、ネットワークデバイス、携帯情報端末、コンピュータ、データプロセッサ、製造ツール、1つ以上のプロセッサのセットを有する任意のデバイスなど）によってアクセス可能な形態で情報を提供（すなわち、記憶および／または送信）する任意のメカニズムを含む。機械読み取り可能媒体は、データ処理システムによって実行されると、システムに、本発明の様々な方法を実行させるソフトウェアおよびデータを記憶するために使用されうる。この実行可能なソフトウェアおよび／またはデータの一部は様々な場所に記憶される。
【００９５】
例えば、機械読み取り可能媒体は、記録可能／記録不可能媒体（例えば、読み取り専用メモリ（ROM）、ランダムアクセスメモリ（RAM）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、不揮発性メモリ、キャッシュ、リモート記憶デバイスなど）、さらには、電気、光学、聴覚、または別の形態の伝播信号（例えば、搬送波、赤外信号、デジタル信号など）を含む。
【００９６】
前述の明細書において、本発明は、その特定の例示的な実施形態に関して記述された。以下の請求項に示されるような本発明のより広い精神および範囲から逸脱することなく、様々な変更がそれに行われうることは明白であろう。従って、明細書および図面は、限定的センスというよりはむしろ例示的センスで見なされるべきである。
【図１】
0005335919.tif 000002
【図２】
0005335919.tif 000003
【図３】
0005335919.tif 000004
【図４】
0005335919.tif 000005