(57)【特許請求の範囲】
【請求項１】
USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するステップであって、前記列挙中に前記USBホストからの高電流引き込みを要求するステップを含むステップと、
前記高電流引き込みの完了後、ポートステータス変更通知を前記USBホストに送るステップと、
ポートステータス変更通知を受信した前記USBホストが前記列挙を開始するのに応答して、前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するステップと
を含む、方法。
【請求項２】
前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別するステップと、
前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認するステップと、
前記少なくとも部分的に放電された電池が、十分に充電されていることを確定したことに応答して前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行するステップと
をさらに含む、請求項2に記載の方法。
【請求項５】
前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記第2のUSB機能からUSBインターフェース通信を受信するステップと、
前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートするステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記USB周辺デバイスを、携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合するステップ
をさらに含む、請求項1に記載の方法。
【請求項８】
USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するための手段であって、前記列挙中に前記USBホストからの高電流引き込みを要求するための手段を含む手段と、
前記高電流引き込みの完了後、ポートステータス変更通知を前記USBホストに送るための手段と、
前記ポートステータス変更通知を受信した前記USBホストが前記列挙を開始するのに応答して、前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するための手段と
を備える、装置。
【請求項９】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項8に記載の装置。
【請求項１０】
ワイヤレスネットワークにおけるワイヤレス通信のための、コンピュータにより実行可能なプログラムコードからなるコンピュータプログラムであって、
USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するためのプログラムコードであって、前記列挙中に前記USBホストからの高電流引き込みを要求するためのプログラムコードを含むプログラムコードと、
前記高電流引き込みの完了後、ポートステータス変更通知を前記USBホストに送るためのプログラムコードと、
前記ポートステータス変更通知を受信した前記USBホストが前記列挙を開始するのに応答して、前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するためのプログラムコードと
を含む、コンピュータプログラム。
【請求項１１】
前記プログラムコードが、
前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するためのプログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。
【請求項１２】
前記プログラムコードが、
前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別するためのプログラムコードと、
前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行するためのプログラムコードと
をさらに含む、請求項11に記載のコンピュータプログラム。
【請求項１３】
前記プログラムコードが、
前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認するためのプログラムコードと、
前記少なくとも部分的に放電された電池が十分に充電されていることを確定したことに応答して、前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行するためのプログラムコードと
をさらに含む、請求項11に記載のコンピュータプログラム。
【請求項１４】
前記プログラムコードが、
前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするためのプログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。
【請求項１５】
前記プログラムコードが、
前記第2のUSB機能からUSBインターフェース通信を受信するためのプログラムコードと、
前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートするためのプログラムコードとをさらに含む、請求項10に記載のコンピュータプログラム。
【請求項１６】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項10に記載のコンピュータプログラム。
【請求項１７】
ワイヤレス通信のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサが、
USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙することであって、前記列挙中に前記USBホストからの高電流引き込みを要求することを含む、列挙することと、
前記高電流引き込みの完了後、ポートステータス変更通知を前記USBホストに送ることと、
前記ポートステータス変更通知を受信した前記USBホストが前記列挙を開始するのに応答して、前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙することと
を行うように構成される、装置。
【請求項１８】
前記少なくとも1つのプロセッサがさらに、
前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するように構成される、請求項17に記載の装置。
【請求項１９】
前記少なくとも1つのプロセッサがさらに、
前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別し、
前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行する
ように構成される、請求項18に記載の装置。
【請求項２０】
前記少なくとも1つのプロセッサがさらに、
前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認し、
前記少なくとも部分的に放電された電池が、十分に充電されていることを確定したことに応答して、前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行する
ように構成される、請求項18に記載の装置。
【請求項２１】
前記少なくとも1つのプロセッサがさらに、
前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするように構成される、請求項17に記載の装置。
【請求項２２】
前記少なくとも1つのプロセッサがさらに、
前記第2のUSB機能からUSBインターフェース通信を受信し、
前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートする
ように構成される、請求項17に記載の装置。
【請求項２３】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2010年8月30日に出願したMALAMANTらの米国特許仮出願第61/378,159号の利益を主張するものである。
【０００２】
本開示の態様は、一般に、ユニバーサルシリアルバス(USB)デバイスに関し、より詳細には、仮想USBデバイスの列挙に関する。
【背景技術】
【０００３】
USBホストのパーソナルコンピュータ(PCホスト)などのユニバーサルシリアルバス(USB)ホストは、いくつかのUSB周辺デバイスのプラグアンドプレイ動作を可能にするように設計される。すなわち、USB周辺デバイスは、USBホストのUSBポートに物理的に接続されると、自動的にUSBホストと通信するように設定される。USBホストは、127までのUSB周辺デバイスを取り扱うことが可能であり、USBバスに取り付けられた各デバイスに対して、ドライバを動的にロードおよびアンロードするための機構を提供することができる。
【０００４】
USBホストとは異なり、USB周辺デバイスは、一般に、種々のUSB機能に対してドライバを動的にロードおよびアンロードすることはできない。そうではなく、USB周辺デバイスは、USBホストに物理的に接続されると、所定の静的な一組の機能をUSBホストに列挙する。一組の静的な機能は、一般に、ランタイム中に拡張され得ない。いくつかのより新しいUSB周辺デバイスは、複数のUSB機能が可能である。しかしながら、USB周辺デバイスは、機能に対してUSBドライバを動的にロードおよびアンロードすることができないため、そのようなデバイスは、所望の機能を設定するために、限定された能力だけを有することができる。
【０００５】
いくつかの混成USBデバイスは、単一のUSBポート上で複数のUSB機能をUSBホストに列挙することを可能にする。USB仕様は、デバイスが、単一のUSBポート上で複数の機能を列挙することを可能にすることによって、そのような混成デバイスを設計するためのいくつかの方法について説明する。
【０００６】
図1は、USB仕様に従ってデバイス内の複数の論理機能を表示することができるUSB記述子階層100を示す。USBデバイスがホストに差し込まれると、少なくとも3段のUSB列挙が発生し得る。デバイス記述子102が、デバイスに対するUSB列挙を表示する。いくつかの設定記述子104が、デバイスの種々の設定に対するUSB列挙を表示する。いくつかのインターフェース記述子106が、それぞれ、USB機能のうちの対応する1機能に対するUSB列挙を表示することができる。いくつかのエンドポイント記述子108が、特定のインターフェースに対するデータチャネルの割当てを列挙する。エンドポイント記述子108は、たとえばUSBホストに対してデータを往復で転送するために、特別な機能が特定のデータチャネルにアクセスすることを可能にする。
【０００７】
図1に示す記述子階層100は静的であるので、デバイスの物理的な切断および再接続が発生するかまたはシミュレートされることがなければ、追加のインターフェースは、一般に、階層に付加され得ない。USBホストから/への、USBデバイスの切断および再接続をシミュレートするために、USBデバイスをUSBホストに接続しているUSB回路を内部的に開閉することによって、いくつかのUSBデバイスは、記述子階層100の再設定を可能にする。しかしながら、この方法は、しばしば、すべての論理的インターフェースの切断および再接続によるエラーを発生しやすく、そのエラーは、アクティブなアプリケーションのセッションを予期せぬ形で破壊する可能性がある。
【０００８】
USB機能の再列挙を可能にするためにUSB回路を開閉することはまた、たとえば、USB周辺デバイスの切れた電池を充電するプロセスにおいて問題となる可能性がある。USB仕様によれば、USB周辺デバイスが列挙する前は、USB周辺デバイスはUSBホストから100mAまでを引き込むことができ、USB周辺デバイスが列挙した後はUSBホストから500mAまでを要求することができる。しかしながら、USB周辺デバイスは、そのオペレーティングシステムをロードするために100mAよりも多くを引き込む必要がある可能性がある。放電した電池を回復するために、USBデバイスは、ブートローディングプロセスの初期に、USBホストに列挙することができる。初期の列挙は、USB周辺オペレーティングシステムをロードする前に発生し、100mAまでの電流だけを使用することができる。
【０００９】
放電した電池によるブートプロセスの間に電力をさらに温存するために、USB周辺デバイスは、初期に、たとえばUSBヒューマンインターフェースデバイス(HID)クラスデバイスなど、より簡素なUSB周辺デバイスとして列挙することができる。USB周辺デバイスの初期の列挙が完了した後、USB周辺デバイスは、USBホストから500mAまで要求することができる。追加の電流は、USB周辺のオペレーティングシステムをロードすることを終了させるために使用されてよい。ひとたびオペレーティングシステムがロードされると、USB周辺デバイスは、一般に、オペレーティングシステムで指定される、その実際の機能をUSBホストに表示するために再列挙する。
【００１０】
上で説明したようにUSBデバイスの再接続をシミュレートするために、再列挙が、USB回路を開閉することによって実行されてよい。しかしながら、USB仕様は次いで、充電電流を約500mAから列挙前のレベルである100mA未満に引き下げることを命令する。それゆえ、USBデバイスを機能的に再列挙するためにUSB回路を開閉することは、電池が十分に充電されるまでは、USBに準拠する形では実行され得ない。
【００１１】
USB周辺デバイスの切断/再接続をシミュレートすることはまた、他の望ましくない副作用を引き起こす可能性がある。たとえば、オペレーティングシステムがUSBデバイスの物理的な切断/再接続を認識すると、いくつかのオペレーティングシステムにおけるハードウェアポートのネーミングが自動的に更新される可能性がある。このことが、リネームされたポートにアクセスしているプロセスにおいてエラーを引き起こす可能性がある。
【００１２】
USB仕様は、埋め込まれたUSBハブを有する単一の複合デバイスパッケージ内に、複数のUSBデバイスをパッケージングする方法を定義する。埋め込まれたUSBハブを含む複合デバイスの一例について、図2を参照して説明する。ルートハブ202が直接USBホスト204に接続されてよく、いくつかのUSBデバイス206が、ルートハブ202を介してUSBホスト204に接続されてよい。いくつかの追加のデバイス208が、いくつかの追加のUSBハブ210を介してルートハブ202に接続されてよい。いくつかの複合デバイスは、1つまたは複数の接続されたUSBデバイス208を有するUSBハブ210を含むことができる。
【００１３】
USBデバイスを1つまたは複数のUSBハブを介してUSBホストに接続することで、上で説明した、USBデバイスを再充電することに関する問題のいくつかが、解決され得る。USBハブは、比較的簡単なデバイスであるので、再列挙ステップなしに、初期のブートローディングプロセスの間に列挙することができる。その初期の列挙の後、USBハブは、USBホストからのその電流引き込みを、100mA未満から約500mAに増加させることができ、電池が充電されるまで500mAを引き込むことを維持することができる。500mAまでの電流引き込みは、デバイスが追加され、USBハブを介する設定から削除されたときでさえ、維持され得る。
【００１４】
USBハブなどのデバイスが複数の機能を単一のUSBポート上に列挙することができるとしても、そのような機能は静的に定義され、ランタイム中に変更され得ない。その上、USBホストのオペレーティングシステムは、USBホストがそのような混成USBデバイスと相互に作用することを制限することができる、複数の仕様または制約を有する可能性がある。専用のドライバが、これらのオペレーティングシステムの制約を有する混成デバイスのために開発されてよく、これらのオペレーティングシステムの制約においては、専用の製品識別(ID)が、たとえば、論理機能の可能な組合せのそれぞれに対して割り当てられてよい。
【００１５】
USB周辺デバイス上に動的に設定可能なUSB機能をもたらすための努力には、USB周辺デバイスの主プロセッサの中に混成ドライバを組み込むことが含まれている。しかしながら、そのような混成ドライバは、可能なUSB機能のすべての組合せを管理し、各組合せに対して別々の製品IDを割り当てるので、本質的に制約されてきた。いくつかの実施形態は、システム設計の時点で知られている機能の上位集合に対して製品IDを定義し、特定の場面に基づいて機能の部分集合で列挙する。いずれの場合も、新しいUSB機能を追加することは複雑であり、すべての機能の再列挙を伴う。
【００１６】
複合デバイスの実装のために、専用のUSBハブチップが、USB周辺デバイスに追加されてきた。いくつかの埋め込まれたUSB機能に加えて、1つまたは複数のダウンストリームポートを露出される複合USBハブデバイスもまた、市販されている。そのような複合デバイスの一例を、図3に示す。図3に示すデバイス300は、SDカードスロット302および埋め込まれたカードリーダー機能を有するUSB複合ハブの一例である。USB複合デバイスは、異なるプロセッサ上でホストされる複数の独立した機能を取り扱うことができる。しかしながら、USB複合デバイスは、各プロセッサに対して独立した物理的なUSBインターフェースに対する余分なコストおよび電力消費を伴う。加えて、埋め込まれたUSBハブチップに取り付けられた各プロセッサは、やはり、独立型USBデバイスの制約と同じ制約を有する。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
たとえばマイクロ-Bポートまたはマイクロ-ABポートなど、単一のUSBポートを有するいくつかのマルチ-プロセッサシステム上で、各プロセッサは、あるUSB機能をUSBバスに露出することができる。複数のUSB機能が、対応するUSBドライバを単一の主プロセッサ上でホストすることによって露出されている。このことは、たとえばマルチ-プロセッサシステム内の他のプロセッサ、すなわち副プロセッサが、主プロセッサを介してUSBハードウェアと通信するために、増加した付加的処理の負担を被る可能性があるので、非効率となり得る。
【課題を解決するための手段】
【００１８】
本開示の態様によれば、充電電流レベルを引き下げることなく第2のデバイス機能列挙が発生することを可能にするために、仮想USBハブ機能が起動されてよい。仮想USBハブ機能を起動することは、低電池出力のデバイスによって実行可能であり、それゆえ、それらのデバイスは、急速再充電のためにホストから高レベル電流を引き込むことを継続しながら、同時に第2のデバイス機能を列挙することができる。デバイスは、仮想ハブとして低電流レベルで初期の列挙を実行し、充電のためにより高い電流レベルを要求し、その結果、仮想ハブを介して第2の機能を列挙する間、高電流レベルを維持することができる。
【００１９】
本開示の態様は、USBホストからの低電流引き込みを使用する仮想ハブとしてユニバーサルシリアルバス(USB)周辺デバイスを列挙するステップと、USB周辺デバイスが仮想ハブとして列挙される間に、USBホストからの高電流引き込みを要求するステップとを含む方法を提供する。方法はさらに、ポートステータス変更通知をUSBホストに送るステップと、高電流引き込みを使用する仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するステップとを含む。
【００２０】
本開示の態様はまた、USBホストからの低電流引き込みを使用する仮想ハブとしてユニバーサルシリアルバス(USB)周辺デバイスを列挙するための手段と、USB周辺デバイスが仮想ハブとして列挙される間に、USBホストからの高電流引き込みを要求するための手段とを含む装置を提供する。装置はまた、ポートステータス変更通知をUSBホストに送るための手段と、高電流引き込みを使用する仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するための手段とを含む。
【００２１】
本開示の態様はまた、ワイヤレスネットワーク内のワイヤレス通信のためのコンピュータ製品を提供する。コンピュータ製品は、記憶されたプログラムコードを有するコンピュータ可読媒体を含む。プログラムコードは、USBホストからの低電流引き込みを使用する仮想ハブとしてユニバーサルシリアルバス(USB)周辺デバイスを列挙するためのコードと、USB周辺デバイスが仮想ハブとして列挙される間に、USBホストからの高電流引き込みを要求するためのコードとを含む。プログラムコードはさらに、ポートステータス変更通知をUSBホストに送るためのプログラムコードを含む。プログラムコードはまた、高電流引き込みを使用する仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するためのコードを含む。
【００２２】
本開示の態様はまた、メモリと、メモリに結合された少なくとも1つのプロセッサとを含む、ワイヤレス通信のための装置を提供する。プロセッサは、USBホストからの低電流引き込みを使用する仮想ハブとしてユニバーサルシリアルバス(USB)周辺デバイスを列挙するように、かつUSB周辺デバイスが仮想ハブとして列挙される間に、USBホストからの高電流引き込みを要求するように設定される。プロセッサはまた、ポートステータス変更通知をUSBホストに送るように、かつ高電流引き込みを使用する仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するように設定される。
【００２３】
本開示のさらなる特徴および利点について、以下で説明する。本開示と同じ目的を実行するための他の構造を修正または設計するための基礎として、本開示が容易に利用され得ることが、当業者には理解されよう。また、そのような等価の構成は、添付の特許請求の範囲で述べられるような本開示の教示から逸脱しないことが、当業者には認識されよう。機構と動作の方法との両方に関する、本開示の特性であると考えられる新規の特徴は、添付の図面とともに考慮されることで、さらなる目的および利点とともに、以下の説明からより理解されるだろう。しかしながら、図面の各々は例示および説明のみを目的に与えられ、本開示の範囲を定めることを目的とはしないことを、明確に理解されたい。
【００２４】
本教示をより完全に理解するために、次に添付の図面に関連して以下の説明を参照する。
【図面の簡単な説明】
【００２５】
【図１】従来技術による、ユニバーサルシリアルバス(USB)記述子階層を概念的に示すブロック図である。
【図２】従来技術による、ユニバーサルシリアルバス(USB)複合デバイス設定を概念的に示すブロック図である。
【図３】従来技術による、ユニバーサルシリアルバス(USB)複合デバイスを示す図である。
【図４】本開示の一態様による、仮想ユニバーサルシリアルバス(USB)ハブを概念的に示すブロック図である。
【図５】本開示の一態様による、仮想ユニバーサルシリアルバス(USB)ハブのプロセスを示すブロック図である。
【図６】本開示の一態様による、仮想USBハブを使用してユニバーサルシリアルバス(USB)周辺デバイスの放電した電池を充電するためのプロセスを示すブロック図である。
【発明を実施するための形態】
【００２６】
本開示の態様は、単一のデバイス内で複数の論理的ユニバーサルシリアルバス(USB)の機能的エンティティを組み合わせるシステムおよび方法を提供する。本開示の態様によれば、たとえばスマートフォンなどのUSB周辺デバイスが、ホストの種々のシステムにアクセスするために、複数のUSB機能をUSBホストに露出することができる。そのようなシステムの例には以下のものが含まれる。
・  埋め込まれた記憶デバイスへの直接アクセスを提供する大容量記憶システム。
・  USBホストから周辺機器までおよび周辺機器からUSBホストまでデジタル著作権管理(DRM)で保護されるメディアを含む、メディアファイルの転送を可能にするマルチ-メディア転送プロトコル(MTP)システム。
・  セルラーネットワーク接続をラップトップホストに提供するテザーネットワーキングシステム。
・  電話診断用コマンド(phone diagnostic command)、ロギング、コンソール、他を
可能にするデバッグシステム。
・  埋め込まれた放送TV受信機からビデオを流すビデオシステム。
【００２７】
本開示の態様は、シミュレートされたハブを有する仮想複合デバイスを実装するためのシステムを提供する。システムは、たとえば、USBバス上で複数の独立型機能を露出するために、USB周辺デバイスなどの単一の物理的USBデバイスを可能にする。本開示の態様によれば、単一の物理的USBデバイス上の論理機能が、デバイス全体を再列挙する必要なく、かつ他の機能の状態に影響を与えることなく、動的に追加削除され得る。論理機能はまた、USBハードウェアへのアクセスを有するシステム内のいくつかのプロセッサのいずれかに独立に実装され得る。各プロセッサは、仮想ハブを介して1つまたは複数のUSBデバイスとして列挙することができる。論理機能の初期化は、プロセッサおよびそのオペレーティングシステムが初期化されるまで、または論理機能自体が初期化されるまで、遅延されてよい。
【００２８】
本開示の態様によれば、仮想ハブを使用することによって、システムは、起動時、リセット時またはブート時にUSBハブとして列挙し、直ちに充電を開始することができる。第2のデバイス機能の列挙は、システムの動作の後期まで遅延されてよい。
【００２９】
再列挙中の充電電流の引き下げが、USB標準(USB standard)によって規定される。本開示の態様によれば、デバイスの初期列挙の一部として要求される、充電電流レベルの引き下げを行うことなく第2のデバイス機能列挙が発生することを可能にするために、仮想USBハブ機能が起動され得る。デバイスが低電池出力を有するときは、第2のデバイス機能列挙は、ホストからの引き下げられた電流レベルでは不可能である。急速再充電のための高レベル電流をホストから引き込みながら、同時に、高電流レベルを引き込む可能性があるデバイス機能を列挙するために、本開示の態様による仮想USBハブ機能を起動することが、低電池出力を有するデバイスによって実行可能である。デバイスは、仮想ハブとして低電流レベルで初期の列挙を実行し、充電のためにより高い電流レベルを要求し、その結果、仮想ハブを介して第2の機能を列挙する間、高電流レベルを維持することができる。
【００３０】
本開示の一態様によれば、仮想USB機能は、デバイスが放電した電池を有するかまたは所定の閾値より低い電池充電レベルを有することを検出したことに応答して、デバイスによって随意に起動されてよい。電池が所定のレベルより低く放電されていないならば、デバイスは、総列挙時間を短縮するために、仮想ハブ機能を起動することなく直接その初期の列挙を実行することができる。
【００３１】
本開示の例示的実施形態による仮想ハブアーキテクチャについて、図4を参照して説明する。アーキテクチャの構成単位には以下のものが含まれる。
・  USB機能「A」(1)およびUSB機能「B」(7)は、たとえば「USB大容量記憶ドライバ」または「ダイヤルアップネットワーキングドライバ」など、論理的USB機能のソフトウェアエンティティである。
・  USBプロトコル(2)、(5)、および(8)は、デバイス列挙、種々のUSB記述子の準備、およびコントロール/バルク/インタラプト/アイソクロナスのエンドポイントへのUSB転送の処理のためのプロシージャを含む、包括的なUSBプロトコルのソフトウェア実装形態の例である。
・  USBデバイスコントローラドライバ(3)および(9)は、エンドポイントのハードウェア資源の割振り、USBインタラプトの処理、データ受信/送信プロシージャの開始、他など、低レベルのプロシージャを管理するためのUSBデバイスコントローラハードウェアへのアクセスをもたらすデバイスドライバの例である。
・  USB仮想ハブコントローラドライバ(6)は、USBデバイスコントローラドライバ(3)および(9)を拡張し、USBデバイスコントローラ(12)のハードウェアの初期の初期化を追加し、USB資源マネージャ(10)からの接続/遮断要求の処理など、ハブ固有の機能を管理する。
・  USB資源マネージャ(10)は、すべての仮想デバイスに対してハードウェアのエンドポイント資源の割振りを管理するハードウェアブロックである。USB資源マネージャ(10)はまた、仮想デバイスがイネーブルまたはディスエーブルされる時点をUSB仮想ハブコントローラドライバ(6)に通知する役目を果たし、このことが、仮想ハブがUSBホストに対してポート接続/切断事象をシミュレートすることを可能にする。
・  プロトコルエンジン(11)は、エンドポイント管理、パケット転送、およびインタラプトおよびレジスタを介してソフトウェアドライバとインターフェースすることを含む、USBハードウェア論理を処理する。
・  USBデバイスコントローラ(12)は、USBデジタルハードウェアブロックをカプセル化して、USB物理層ハードウェアを除外する。
・  USB PHY(13)は、すべてのUSB物理層ハードウェアブロックをカプセル化する。
【００３２】
本開示の態様による仮想ハブデバイスは、USBポートに面する外部のダウンストリームを露出することなく、単一のシステムパッケージ内でダウンストリームポートおよびそれらの接続をデバイス機能に論理的に組み合わせる。
【００３３】
本開示の態様によるUSBハードウェアコントローラは、設計の中に実際のハブハードウェアを含めるのではなく、ハブの挙動をシミュレートする。論理機能のうちの一方、たとえば主プロセッサ402または副プロセッサ404のいずれかの上のUSB機能「A」またはUSB機能「B」はそれぞれ、直接USBハードウェア406に接続し、その論理機能が独立型デバイスであるかのように資源を要求することができる。たとえば、USB機能「A」が大容量記憶機能であってよく、USB機能「B」が何らかの診断能力であってよい。USB機能の一方はそれぞれ、USBホストには、USBハブを介してUSBホストに接続された独立型デバイスであるかのように見える。
【００３４】
本開示の態様によれば、副プロセッサ404は、たとえばモデムプロセッサであってよく、主プロセッサ402は、たとえばアプリケーションプロセッサであってよい。ブロック4、5および6は、仮想ハブドライバに関連する構成要素である。仮想ハブドライバ4は、USBホストから来るハブ固有の要求のすべてを処理するソフトウェア構成要素であってよい。
【００３５】
上で説明した放電した電池の場合、本開示の態様は、USBホストにとって、ハブがイネーブルされていたように見えるように、ハブ機能をイネーブルすることができる。その後、仮想USBデバイスは、オペレーティングシステムをイネーブルし、たとえば記憶機能など、実際の機能を列挙することができる。この例によれば、記憶機能の列挙は、USBホストにとっては、たった今誰かが、ハブの後のハブポートの1つに記憶デバイスを差し込んだかのように見える。
【００３６】
本開示の態様によれば、USB機能「A」など、特定の論理的エンティティが、列挙する準備ができると、コマンドがUSBデバイスコントローラ12に送られ、エンドポイント資源が割り振られ、接続が要求される。コマンドが、接続を要求すると、ハードウェア406は、仮想ハブドライバ4に対してインタラプトを立ち上げる。インタラプトに応答して、仮想ハブドライバ4は、そのポートの1つに何か新しいものが接続されたことを、USBホストに知らせる。このことで、接続事象の物理的処理が、USBハードウェアの機能拡張版を使用する接続事象の論理的処理に置き換えられる。
【００３７】
本開示の態様によれば、複数のCPUは、それらがUSBコントローラと相互作用しているかのように動作することができる。たとえば、複数のCPUが資源を割り振ることを欲するとき、前の設計と同じ方法でそれを行うことができる。複数のCPUが接続することを欲するとき、それらは、通常と同じようにして接続要求をあるレジスタに書き込むことができる。仮想ハブの論理は、プロトコルエンジン11内の複数のCPUからは隠されている。USB資源マネージャ10は、エンドポイント資源の割振りを処理する。ハブ論理のいくつかが、仮想ハブドライバ4の中に実装され得る。
【００３８】
本開示の態様による仮想ハブ機能をもたらすプロセスについて、図5を参照して説明する。プロセスは、ブロック502でUSBコントローラを初期化するステップで始まり、ブロック504でハブ自体に対してエンドポイントを割り振る。次いでブロック506で、仮想ハブは、たとえばUSBケーブルがドライバに接続されるまで、切断状態に入る。USBケーブルが接続された後、ブロック508で、適切なハブ記述子を使用してハブデバイスが列挙される。次いでブロック510で、デバイスは、接続状態に移行する。USBの切断に応答して、デバイスは、切断状態に戻る(ブロック506)。
【００３９】
接続状態において、対応する事象に応答して特定のアクションが取られる。仮想ハブは、たとえばUSBホストからポート-ディレクテッドステータス要求を受けることができる。ブロック512で、仮想ハブは、種々のポートのレポーティングステータスによってホストに応答することができる。この応答は、たとえばポートが接続されているか、切断されているか、または保留されているかをホストに知らせることができる。仮想ハブは、たとえばポートフィーチャをセットするためかまたはポートフィーチャをクリヤするために、ホストからポート-ディレクテッドコマンドを受けることができる。ブロック514で、仮想ハブは、USBコントローラに、対応する仮想ポート上の対応するアクションをエミュレートすることを要求することによって、要求に応答することができる。仮想ハブは、たとえば接続/切断事象または遠隔ウェイクアップ事象など、仮想ポート事象に関してUSBコントローラから通知を受けることができる。ブロック516で、仮想ハブは、インタラプトエンドポイントを介してUSBホストにステータス変更通知を送ることによって、通知に応答することができる。仮想ハブは、たとえば接続/切断事象または保留/再開事象など、物理的USBポート上のいくつかの電気的事象を認識することができる。ブロック518で、仮想ハブは、USBコントローラに、すべての仮想ポート上の対応するアクションをエミュレートすることを要求することによって、電気的事象に応答することができる。これらのアクションのいずれかの後に、デバイスは、接続状態に戻る(ブロック510)。
【００４０】
本開示の態様による仮想ハブ機能を使用してUSB周辺デバイスの放電した電池を充電するためのプロセスについて、図6を参照して説明する。プロセスは、標準プロトコルコマンドに応答して実行する。ブロック602で、USBホストは、USBホストからの低電流引き込みを使用する仮想ハブとしてUSB周辺デバイスを列挙する。仮想USBハブは、低電流(<100mA)で列挙するが、ブロック604で列挙のプロセス中に、仮想USBハブは、列挙に続いて、高電流(500mA)が許可されることを要求する。このことが、二次的なUSB機能をロードし、USBバスの後にそれを列挙するのに十分な電力を供給する。ブロック606で、プロセスは、高電流引き込みの少なくとも一部によって、USB周辺デバイスの放電した電池を充電するステップを含む。ブロック608で、周辺デバイスは、USBホストにポートステータス変更を送る。ブロック610で、プロセスは、仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するステップを含む。ブロック606で電池の充電が、仮想USBハブが列挙された直後でブロック608の二次的なUSB機能をロードするステップの前に、開始することができる。
【００４１】
本開示の態様は、USB機能の分散的管理を可能にし、USBホストが簡単なUSBドライバを使用して動作することを可能にする。USB周辺デバイス上の新しい論理的エンティティが、以前の設定と容易に組み合わされ得る。
【００４２】
標準USBアーキテクチャによれば、各USB周辺デバイスは、特定のアドレスを割り当てられ得る。デバイスが、最初に、USBホストのUSBポートに物理的に接続されると、USBホストのソフトウェアが、ポートアドレスをそのデバイスに割り当てるためのコマンドを送る。各USB周辺デバイスは、一般に、単一のデバイスアドレスに関連付けられている。本開示の態様は、ハブに取り付けられた複数のUSBデバイスを有することができるハブをシミュレートする。USBコントローラは、たとえばトランザクションルーチンに対して付加的レベルの「デバイスアドレス」を追加することによって、複数のUSBデバイスアドレスを処理するように再設計される。
【００４３】
USB2.0バスは、USBホストがUSBバス上で送る各メッセージがデバイスアドレスを含むブロードキャストバスである。メッセージは、一般に、USBバスに接続されたUSB周辺デバイスのすべてに伝達される。接続されたUSB周辺デバイスのUSBハードウェアは、コマンドがそれ自体のデバイスアドレスに関連付けられているかどうかを確認するために、各ブロードキャストコマンドに含まれるデバイスアドレスを見る。USBデバイスは、次いで、それ自体に宛てられたコマンドを処理し、それ以外を無視することができる。本開示によれば、USBデバイスハードウェアコントローラは、メッセージのデバイスアドレスを異なる論理的エンティティに関連付けられた複数の異なるアドレスと比較することができる。USB資源マネージャは、複数の論理的エンティティに関連付けられた複数の論理的ドライバから先入れ先出し(FIFO)割振り要求を適合させる(coordinate)。USBハブドライバは、論理機能からの要求に基づいてホストに、接続/切断/遠隔ウェイクアップ通知を生成する。
【００４４】
本開示の態様は、USBデバイスが、機能設定のすべての可能な置換(permutation)に対応する必要がないように、論理機能を切り離す。論理機能は、他の論理機能に影響を与えることなく、実時間内に独立にロードおよびアンロードされてよい。このことが、たとえばスマートフォンなどのUSBデバイスに対する多数のアプリケーションの簡素化された配置を可能にする。それゆえ、ソフトウェアのアプリケーションおよび機能は、以前はUSBホスト上のみで利用可能であった、USBデバイス上の拡張性のレベルで使用することができる。
【００４５】
本開示の態様によれば、複数の論理機能が、プロセス間通信(IPC)を使用することなく異なるCPU上でホストされ得る。このことが、たとえばUSBモデムなどのUSB周辺デバイス上で高データ転送速度を可能にする。そのような高データ転送速度は、たとえばLTEデバイス内で使用されてよい。
【００４６】
いくつかのデバイス設計は、モデムとアプリケーションとの両プロセッサがUSBホストと同時に通信することを可能にするために、デバイス内に物理的USBハブを含む。このことが、モデムプロセッサによって高データ転送速度で送られたデータが、最初にアプリケーションプロセッサを通過することなく、USBハードウェアに直行することを可能にする。本開示の態様による仮想USBハブは、ハードウェアとソフトウェアとの組合せを有するUSBハブをシミュレートすることによって、LTEモデムなどのデバイスのコストサイズおよび電力消費を削減することができる。
【００４７】
図7は、本開示の態様が有利に使用され得る例示的なワイヤレス通信システム700を示すブロック図である。例示のために、図7は、3つの遠隔ユニット720、730および750ならびに2つの基地局740を示している。ワイヤレス通信システムがこれよりも多くの遠隔ユニットおよび基地局を有してもよいことが、認識されよう。遠隔ユニット720、730および750は、ICデバイス725A、725Cおよび725Bを含み、これらは開示済みの仮想USB複合デバイスを含む。基地局、スイッチングデバイスおよびネットワーク機器など、他のデバイスも開示済みの仮想USB複合デバイスを含み得ることが認識されよう。図7は、基地局740から遠隔ユニット720、730、および750への順方向リンク信号780、ならびに遠隔ユニット720、730、および750から基地局740への逆方向リンク信号790を示す。
【００４８】
図7では、遠隔ユニット720は携帯電話として示され、遠隔ユニット730はポータブルコンピュータとして示され、遠隔ユニット750はワイヤレスローカルループシステム内の固定ロケーション遠隔ユニットとして示されている。たとえば、遠隔ユニットは、携帯電話、タブレット、ハンドヘルドパーソナル通信システム(PCS)ユニット、個人情報端末のようなポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器のような固定ロケーションデータユニット、またはデータもしくはコンピュータ命令の記憶もしくは取り出しを行う任意の他のデバイス、またはそれらの任意の組合せであってよい。図7は、本開示の教示に従った遠隔ユニットを示すが、本開示は、これらの例示的な示されたユニットには限定されない。本開示の態様は、仮想USB複合デバイスを含む任意のデバイスにおいて適切に利用され得る。
【００４９】
ファームウェアおよび/またはソフトウェア実装形態の場合、これらの方法は、本明細書で説明する機能を実行するモジュール(たとえば、プロシージャ、関数など)によって実装されてもよい。本明細書で説明する方法を実施する際に、命令を有形に具現化する任意の機械可読媒体を使用してもよい。たとえば、ソフトウェアコードはメモリに記憶され、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内に実装されてもよく、またはプロセッサユニットの外部に実装されてもよい。本明細書では、「メモリ」という用語は、長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他のメモリのいずれかの種類を指し、メモリのいかなる特定の種類もしくはメモリの数、またはメモリが格納される媒体の種類に限定されない。
【００５０】
ファームウェアおよび/またはソフトウェアで実装する場合、機能は、コンピュータ可読媒体上に1つもしくは複数の命令またはコードとして記憶されてもよい。この例には、データ構造によって符号化されたコンピュータ可読媒体およびコンピュータプログラムによって符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体であってよい。限定ではなく、一例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で記憶するのに使用することができ、かつコンピュータからアクセスすることのできる任意の他の媒体を含んでよく、本明細書で使用する場合、ディスク(diskおよびdisc)には、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクが含まれ、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザによって光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含めるべきである。
【００５１】
命令および/またはデータは、コンピュータ可読媒体上に記憶されるだけでなく、通信装置に含まれる伝送媒体上の信号として提供されてもよい。たとえば、通信装置は、命令およびデータを示す信号を有する送受信機を含み得る。命令およびデータは、1つまたは複数のプロセッサに特許請求の範囲において概説する機能を実施させるように構成される。
【００５２】
本開示の態様によれば、装置は、USBホストからの低電流引き込みを使用する仮想ハブとしてUSB周辺デバイスを列挙するための手段と、USBホストからの高電流引き込みを要求するための手段と、高電流引き込みを使用する仮想ハブを介してUSB周辺デバイスの第2のUSB機能を列挙するための手段とを有し得る。一態様では、上述の手段は、たとえば図4に示す主プロセッサ402、副プロセッサ404およびUSBハードウェア406であり得る。別の態様では、上述の手段は、上述の手段によって具陳される機能を実行するように構成されたモジュールまたは任意の装置であり得る。
【００５３】
さらに、本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
【００５４】
本明細書の開示に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理的デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、汎用プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような設定として実装され得る。
【００５５】
本明細書の開示に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはユーザ端末中に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。
【００５６】
1つまたは複数の例示的な設計では、説明した機能を、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、汎用または専用コンピュータによってアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコード手段を搬送または記憶するために使用され得、汎用もしくは専用コンピュータまたは汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００５７】
特定の回路について説明したが、当業者には、本開示を実施するうえで開示された回路のすべてが必要とされるわけではないことが理解されよう。さらに、本開示に対する注目を維持するためにある公知の回路については説明していない。
【００５８】
本開示およびその利点について詳しく説明したが、添付の特許請求の範囲によって規定される本開示の技術から逸脱することなく、本明細書において様々な変更、代用および改変を施せることを理解されたい。たとえば、「上」および「下」などの関係語が、基板または電子デバイスに関して使用される。もちろん、基板または電子デバイスが逆転した場合には、上は下に、下は上になる。さらに、横向きの場合、上および下は、基板または電子デバイスの側面を指すことがある。さらに、本出願の範囲は、本明細書において説明したプロセス、機械、製造、物質組成、手段、方法、およびステップの特定の実施形態に限定されるものではない。当業者には本開示から容易に理解されるように、本明細書で説明した対応する実施形態と実質的に同じ機能を実行する、または実質的に同じ結果を実現する、現存するまたは今後開発されるプロセス、機械、製造、物質組成、手段、方法、またはステップを、本開示に従って利用してもよい。
【００５９】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に合致する最も広い範囲を与えられるべきである。したがって、添付の特許請求の範囲は、そのようなプロセス、機械、製造、物質組成、手段、方法、またはステップを範囲内に含むものである。
【符号の説明】
【００６０】
100  記述子階層
102  デバイス記述子
104  設定記述子
106  インターフェース記述子
108  エンドポイント記述子
202  ルートハブ
204  USBホスト
206  USBデバイス
208  追加のデバイス
210  USBハブ
300  デバイス
302  SDカードスロット
402  主プロセッサ
404  副プロセッサ
406  USBハードウェア
【図１】
0005878606.tif 000002
【図２】
0005878606.tif 000003
【図３】
0005878606.tif 000004
【図４】
0005878606.tif 000005
【図５】
0005878606.tif 000006
【図６】
0005878606.tif 000007