JP2015018583A - 仮想usb複合デバイスの列挙 - Google Patents

仮想usb複合デバイスの列挙 Download PDF

Info

Publication number
JP2015018583A
JP2015018583A JP2014220099A JP2014220099A JP2015018583A JP 2015018583 A JP2015018583 A JP 2015018583A JP 2014220099 A JP2014220099 A JP 2014220099A JP 2014220099 A JP2014220099 A JP 2014220099A JP 2015018583 A JP2015018583 A JP 2015018583A
Authority
JP
Japan
Prior art keywords
usb
current draw
peripheral device
hub
program code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014220099A
Other languages
English (en)
Other versions
JP5878606B2 (ja
Inventor
イゴール・マラマント
Malamant Igor
トーマス・イー・ヴァージル
E Virgil Thomas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2015018583A publication Critical patent/JP2015018583A/ja
Application granted granted Critical
Publication of JP5878606B2 publication Critical patent/JP5878606B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

【課題】USB周辺デバイスなどの単一の物理的USBデバイスが、複数の独立型機能をUSBバス上に露出することを可能にする。
【解決手段】シミュレートされたハブを有する仮想ユニバーサルシリアルバス(USB)複合デバイスを実装するためのシステムは、USB周辺デバイスなどの単一の物理的USBデバイスが、複数の独立型機能をUSBバス上に露出することを可能にする。単一の物理的USBデバイス上の論理機能は、全デバイスを再列挙することなく、かつ他の機能の状態に影響を与えることなく、動的に追加削除され得る。論理機能はまた、USBハードウェアへのアクセスを有するシステム内のいくつかのプロセッサのいずれかに独立に実装され得る。各プロセッサは、仮想ハブを介して1つまたは複数のUSBデバイスとして列挙することができる。放電された電池を有するデバイス内でUSBホストからの充電電流レベルを維持するために、論理機能の初期化は、仮想USBハブを介して実行され得る。
【選択図】図1

Description

関連出願の相互参照
本出願は、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ハードウェア

Claims (23)

  1. USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するステップと、
    前記USB周辺デバイスが前記仮想ハブとして列挙されている間に、前記USBホストからの高電流引き込みを要求するステップと、
    ポートステータス変更通知を前記USBホストに送るステップと、
    前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するステップと
    を含む、方法。
  2. 前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するステップをさらに含む、請求項1に記載の方法。
  3. 前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別するステップと、
    前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行するステップと
    をさらに含む、請求項2に記載の方法。
  4. 前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認するステップと、
    前記少なくとも部分的に放電された電池が、十分に充電されていることを確定したことに応答して前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行するステップと
    をさらに含む、請求項2に記載の方法。
  5. 前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするステップをさらに含む、請求項1に記載の方法。
  6. 前記第2のUSB機能からUSBインターフェース通信を受信するステップと、
    前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートするステップと
    をさらに含む、請求項1に記載の方法。
  7. 前記USB周辺デバイスを、携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合するステップ
    をさらに含む、請求項1に記載の方法。
  8. USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するための手段と、
    前記USB周辺デバイスが前記仮想ハブとして列挙されている間に、前記USBホストからの高電流引き込みを要求するための手段と、
    ポートステータス変更通知を前記USBホストに送るための手段と、
    前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するための手段と
    を備える、装置。
  9. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項8に記載の装置。
  10. ワイヤレスネットワークにおけるワイヤレス通信のための、コンピュータにより実行可能なプログラムコードからなるコンピュータプログラムであって、
    USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙するためのプログラムコードと、
    前記USB周辺デバイスが前記仮想ハブとして列挙されている間に、前記USBホストからの高電流引き込みを要求するためのプログラムコードと、
    ポートステータス変更通知を前記USBホストに送るためのプログラムコードと、
    前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙するためのプログラムコードと
    を含む、コンピュータプログラム。
  11. 前記プログラムコードが、
    前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するためのプログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。
  12. 前記プログラムコードが、
    前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別するためのプログラムコードと、
    前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行するためのプログラムコードと
    をさらに含む、請求項11に記載のコンピュータプログラム。
  13. 前記プログラムコードが、
    前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認するためのプログラムコードと、
    前記少なくとも部分的に放電された電池が十分に充電されていることを確定したことに応答して、前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行するためのプログラムコードと
    をさらに含む、請求項11に記載のコンピュータプログラム。
  14. 前記プログラムコードが、
    前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするためのプログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。
  15. 前記プログラムコードが、
    前記第2のUSB機能からUSBインターフェース通信を受信するためのプログラムコードと、
    前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートするためのプログラムコードとをさらに含む、請求項10に記載のコンピュータプログラム。
  16. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項10に記載のコンピュータプログラム。
  17. ワイヤレス通信のための装置であって、
    メモリと、
    前記メモリに結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサが、
    USBホストからの低電流引き込みを使用する仮想ハブとして、物理的USBハブを含まないユニバーサルシリアルバス(USB)周辺デバイスを列挙し、
    前記USB周辺デバイスが前記仮想ハブとして列挙されている間に、前記USBホストからの高電流引き込みを要求し、
    ポートステータス変更通知を前記USBホストに送り、
    前記高電流引き込みを使用する前記仮想ハブを介して前記USB周辺デバイスの第2のUSB機能を列挙する
    ように構成される、装置。
  18. 前記少なくとも1つのプロセッサがさらに、
    前記高電流引き込みの少なくとも一部を用いて前記USB周辺デバイスの少なくとも部分的に放電された電池を充電するように構成される、請求項17に記載の装置。
  19. 前記少なくとも1つのプロセッサがさらに、
    前記USB周辺デバイスの前記少なくとも部分的に放電された電池の状態を識別し、
    前記少なくとも部分的に放電された電池の状態を検出したことに応答して、前記列挙を前記仮想ハブとして実行する
    ように構成される、請求項18に記載の装置。
  20. 前記少なくとも1つのプロセッサがさらに、
    前記USB周辺デバイスの前記少なくとも部分的に放電された電池が、前記USBホストからの前記低電流引き込みを用いて前記第2のUSB機能のブートルーチンを実行するのに十分に充電されているかどうかを確認し、
    前記少なくとも部分的に放電された電池が、十分に充電されていることを確定したことに応答して、前記第2のUSB機能の前記列挙を直接前記USBホストに対して実行する
    ように構成される、請求項18に記載の装置。
  21. 前記少なくとも1つのプロセッサがさらに、
    前記高電流引き込みの少なくとも一部を使用して前記第2のUSB機能のオペレーティングシステムをロードするように構成される、請求項17に記載の装置。
  22. 前記少なくとも1つのプロセッサがさらに、
    前記第2のUSB機能からUSBインターフェース通信を受信し、
    前記USBインターフェース通信を受信したことに応答して、前記USBホストに対してポート接続事象およびポート切断事象の一方をシミュレートする
    ように構成される、請求項17に記載の装置。
  23. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項17に記載の装置。
JP2014220099A 2010-08-30 2014-10-29 仮想usb複合デバイスの列挙 Expired - Fee Related JP5878606B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37815910P 2010-08-30 2010-08-30
US61/378,159 2010-08-30
US13/214,305 2011-08-22
US13/214,305 US8850082B2 (en) 2010-08-30 2011-08-22 Virtual USB compound device enumeration

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013527223A Division JP5674070B2 (ja) 2010-08-30 2011-08-30 仮想usb複合デバイスの列挙

Publications (2)

Publication Number Publication Date
JP2015018583A true JP2015018583A (ja) 2015-01-29
JP5878606B2 JP5878606B2 (ja) 2016-03-08

Family

ID=44645222

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013527223A Expired - Fee Related JP5674070B2 (ja) 2010-08-30 2011-08-30 仮想usb複合デバイスの列挙
JP2014220099A Expired - Fee Related JP5878606B2 (ja) 2010-08-30 2014-10-29 仮想usb複合デバイスの列挙

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013527223A Expired - Fee Related JP5674070B2 (ja) 2010-08-30 2011-08-30 仮想usb複合デバイスの列挙

Country Status (6)

Country Link
US (1) US8850082B2 (ja)
EP (1) EP2612252B1 (ja)
JP (2) JP5674070B2 (ja)
KR (1) KR101464571B1 (ja)
CN (1) CN103154922B (ja)
WO (1) WO2012030832A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201335762A (zh) * 2012-02-22 2013-09-01 Wistron Corp 可自動切換記憶模組之掛載模式的電子裝置及其方法
WO2013150323A2 (en) * 2012-04-04 2013-10-10 Kiss Peter Connector and display device and a computer program product therefore
US8601180B1 (en) * 2012-07-03 2013-12-03 Fluiditech Ip Limited Composite functional transmission line
US9542347B2 (en) 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
CN103491248B (zh) * 2013-09-16 2016-01-20 华为技术有限公司 一种低电量开机的方法及用户设备
CN103885868B (zh) * 2014-04-16 2015-08-26 福州瑞芯微电子有限公司 模拟usb热插拔过程的测试***及装置
CN104216840B (zh) * 2014-09-11 2018-03-23 青岛海信移动通信技术股份有限公司 一种usb设置和对外部设备进行操作的方法及装置
TWI541657B (zh) * 2014-09-12 2016-07-11 亞信電子股份有限公司 提供主機即時切換及分享通用串列匯流排(usb)電子設備之電子裝置
US9804977B2 (en) * 2015-04-28 2017-10-31 Microchip Technology Incorporated Universal serial bus smart hub
CN105488000B (zh) * 2015-12-23 2018-09-14 数安时代科技股份有限公司 实现usb设备快速访问的方法和***
KR102429516B1 (ko) * 2016-01-21 2022-08-08 엔에이치엔클라우드 주식회사 단말을 이용한 셋톱박스 입출력 시스템 및 방법
US10515025B2 (en) 2016-08-08 2019-12-24 Cirrus Logic, Inc. Communication protocol adapter
CN107797947A (zh) * 2016-09-05 2018-03-13 中兴通讯股份有限公司 一种usb设备重定向方法和装置
US20180143932A1 (en) * 2016-11-21 2018-05-24 Intel Corporation Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub
CN106897242B (zh) * 2017-01-17 2020-09-29 建荣集成电路科技(珠海)有限公司 一种usb复合设备及其工作方法
EP3367210A1 (en) 2017-02-24 2018-08-29 Thomson Licensing Method for operating a device and corresponding device, system, computer readable program product and computer readable storage medium
CN107643999A (zh) * 2017-09-14 2018-01-30 航天信息股份有限公司 一种内置读写模块的通讯方法
TWI685752B (zh) * 2017-09-20 2020-02-21 旺玖科技股份有限公司 萬用串列匯流排集線器
CN109254937B (zh) * 2018-07-19 2021-08-06 芯启源(上海)半导体科技有限公司 Usb集线器、usb设备枚举异常检测方法及计算机存储介质
US11604741B2 (en) 2019-02-15 2023-03-14 Intel Corporation Method for dynamically provisioning virtualized functions in a USB device by means of a virtual USB hub
US11029965B2 (en) * 2019-03-15 2021-06-08 Intel Corporation Booting firmware from expansion block storage devices
CN118075115B (zh) * 2024-04-19 2024-07-09 深圳奇迹智慧网络有限公司 物联网设备的挂载方法、物联网设备的挂载装置及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050772A (ja) * 2001-07-13 2003-02-21 Prolific Technology Inc Usb複合デバイス及びその実現方法
JP2004078740A (ja) * 2002-08-21 2004-03-11 Fujitsu Ltd バスパワー装置
JP2004206660A (ja) * 2002-11-01 2004-07-22 Yumix:Kk 着脱式デバイス、制御回路、制御回路のファームウェアプログラム、制御回路における情報処理方法及び回路設計パターン

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185548A (ja) 2000-12-13 2002-06-28 Hitachi Ltd 給電手段によりシリアルバスの出力電流を制御可能な情報処理装置
US6976105B1 (en) 2002-12-11 2005-12-13 Cypress Semiconductor Corp. Apparatus and method for attaching multiple devices to a host
US7523338B2 (en) * 2005-10-13 2009-04-21 Research In Motion Limited Apparatus and method to support USB enumeration of a bus powered handheld device
US20080005415A1 (en) * 2006-06-06 2008-01-03 Lopez Fernando A Disabling a Universal Serial Bus Port
JP2008146419A (ja) 2006-12-12 2008-06-26 Renesas Technology Corp Usbデバイスおよびコンピュータの周辺デバイス
US7577776B2 (en) 2007-05-14 2009-08-18 Aten International Co., Ltd Multiple virtual USB devices with virtual HUB implemented using one USB device controller
CN101515260B (zh) 2008-02-21 2010-12-08 扬智科技股份有限公司 在不拔插装置的情况下切换装置功能的方法
JPWO2009125586A1 (ja) 2008-04-07 2011-07-28 パナソニック株式会社 デバイス制御方法、デバイス制御プログラムおよびデバイス選択装置
KR101329014B1 (ko) * 2008-10-30 2013-11-12 삼성전자주식회사 휴대단말에서 스위칭 회로의 모드 제어 방법 및 장치
TW201020787A (en) 2008-11-28 2010-06-01 Azurewave Technologies Inc Method of assigning virtual port numbers and computer readable medium that stores a virtual port number assigning program
JP2010140269A (ja) 2008-12-11 2010-06-24 Sony Corp 端末装置、端末装置の制御方法及び制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050772A (ja) * 2001-07-13 2003-02-21 Prolific Technology Inc Usb複合デバイス及びその実現方法
JP2004078740A (ja) * 2002-08-21 2004-03-11 Fujitsu Ltd バスパワー装置
JP2004206660A (ja) * 2002-11-01 2004-07-22 Yumix:Kk 着脱式デバイス、制御回路、制御回路のファームウェアプログラム、制御回路における情報処理方法及び回路設計パターン

Also Published As

Publication number Publication date
KR20130081286A (ko) 2013-07-16
CN103154922B (zh) 2016-08-17
JP5878606B2 (ja) 2016-03-08
KR101464571B1 (ko) 2014-11-24
CN103154922A (zh) 2013-06-12
WO2012030832A1 (en) 2012-03-08
EP2612252A1 (en) 2013-07-10
EP2612252B1 (en) 2017-09-20
US8850082B2 (en) 2014-09-30
JP2013542483A (ja) 2013-11-21
US20120054378A1 (en) 2012-03-01
JP5674070B2 (ja) 2015-02-25

Similar Documents

Publication Publication Date Title
JP5878606B2 (ja) 仮想usb複合デバイスの列挙
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
TWI375890B (en) Electronic system, usb link, ulpi phy and method for transmitting an extended transaction
US10515040B2 (en) Data bus host and controller switch
US20070156942A1 (en) Method and apparatus for independently managing a chipset-integrated bus controller
US8190798B1 (en) Client device configuration based on information stored by host device
US20210326290A1 (en) Unified systems and methods for interchip and intrachip node communication
AU2012231346A1 (en) HID over simple peripheral buses
US20140229637A1 (en) Virtualizable and forward-compatible hardware-software interface
TW201145033A (en) USB hub apparatus supporting multiple high speed devices and a single super speed device
US7725608B2 (en) Enabling and disabling device images on a platform without disrupting BIOS or OS
JP2008539484A (ja) ユニバーサル・シリアル・バス機能のデリゲーション
KR20160073294A (ko) 터치 센서 정보의 통신을 위한 장치, 시스템 및 방법
US9680972B2 (en) SD switch box in a cellular handset
WO2023165309A1 (zh) 可共享远程直接数据存取链接的创建方法及装置
US10175717B2 (en) System and method for enhancing real-time clock usage in an information handling system
US10146963B2 (en) Systems and methods for dynamic external input/output port screening
US11829493B2 (en) Device access control system
CN106201938A (zh) 一种芯片、集线器、电子设备及中断usb信号的方法
US11809352B2 (en) Flexible, high-bandwidth link management between system and subsystem baseboard management controllers
TW201324172A (zh) 隨身儲存裝置、提供數位裝置傳輸資料之系統及其方法
Buchanan et al. USB and Firewire

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160128

R150 Certificate of patent or registration of utility model

Ref document number: 5878606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees