JP2018514871A - ユニバーサルシリアルバススマートハブ - Google Patents

ユニバーサルシリアルバススマートハブ Download PDF

Info

Publication number
JP2018514871A
JP2018514871A JP2017555496A JP2017555496A JP2018514871A JP 2018514871 A JP2018514871 A JP 2018514871A JP 2017555496 A JP2017555496 A JP 2017555496A JP 2017555496 A JP2017555496 A JP 2017555496A JP 2018514871 A JP2018514871 A JP 2018514871A
Authority
JP
Japan
Prior art keywords
usb
hub
processor
port
usb device
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.)
Pending
Application number
JP2017555496A
Other languages
English (en)
Inventor
アティシュ ゴーシュ,
アティシュ ゴーシュ,
セシル ジー. シェノールト,
セシル ジー. シェノールト,
パラガシュ マンガラパンディアン,
パラガシュ マンガラパンディアン,
マーク ボーム,
マーク ボーム,
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JP2018514871A publication Critical patent/JP2018514871A/ja
Pending legal-status Critical Current

Links

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3812USB port controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling
    • G06F2213/4004Universal serial bus hub with a plurality of upstream ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

USBスマートハブは、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供し得る。本スマートハブは、上流ポートと、複数の下流ポートと、プロセッサと、USBホストスタックコードおよび構成パラメータを記憶するためにプロセッサに結合されるメモリとを含んでもよい。本スマートハブは、標準的USBハブインターフェースを実装するためのコアを有する、USBハブコアを含んでもよい。本スマートハブは、下流ポート、コア下流ポート、およびプロセッサ間に結合される複数の2:1マルチプレクサを含んでもよい。プロセッサは、2:1マルチプレクサを制御してもよい。プロセッサは、USBデバイスが下流ポートに結合され、USBホストスタックコードを起動し、USBデバイスを列挙するときを検出するように構成されてもよい。

Description

本開示は、ユニバーサルシリアルバス(USB)ハブと併用するためのシステムおよび方法に関し、より具体的には、USBハブデバイスにおけるバッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを高度化させるための改良されたシステムおよび方法に関する。
USBハブは、現代の電子機器デバイス(例えば、パーソナルコンピュータ(「PC」)、タブレットPC、携帯電話、自動車インフォテインメントシステム、パーソナルゲームシステム、玩具等)に遍在する。これは、キーボード、モニタ、プリンタ、記憶デバイス、カメラ、電話、玩具、ゲーム、および多数の他の電子デバイスが、単一インターフェース上で作用することを可能にする、「汎用」インターフェースである。汎用であることは、とりわけ、認証、検証、セキュリティ、およびカスタムデータハンドリングに関連するものを含む、その独自の一連の課題をもたらす。ベンダは、オペレーティングシステムおよび/またはUSBスタック/ドライバをカスタマイズすることによって、これらの課題を克服しようとしている。これらのタイプのカスタマイズは、コストがかかる可能性があり、USBインターフェースに接続される電子デバイス間に準最適互換性をもたらし得る。
したがって、オペレーティングシステムまたはUSBスタック/ドライバへの変更を要求することなく、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供することができる、改良されたUSBハブの必要性がある。
ある実施形態によると、ハブ上流ポートと、複数のハブ下流ポートと、プロセッサと、USBホストスタックコードおよび複数の構成パラメータを記憶するためにプロセッサに通信可能に結合される、メモリとを含み得る、USBハブが、提供される。USBハブはさらに、コア上流ポートと、複数のコア下流ポートとを有する、USBハブコアを含んでもよい。USBハブコアは、USBハブインターフェースをコア上流ポートと複数のコア下流ポートとの間に実装するように動作可能であってもよい。USBハブはさらに、複数のマルチプレクサを含んでもよく、各マルチプレクサは、ハブ下流ポートのうちの1つに通信可能に結合される、第1のポートと、複数のコア下流ポートのうちの1つに通信可能に結合される、第2のポートと、プロセッサに通信可能に結合される、第3のポートと、プロセッサに通信可能に結合され、第1のポートを、第2のポート、第3のポート、または第2のポートおよび第3のポートの両方と通信可能に結合するように動作可能である、選択入力とを有してもよい。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出するように構成されてもよい。プロセッサはさらに、第1のポートが第3のポートに接続されるように、第1のハブ下流ポートに対応する第1のマルチプレクサの選択入力を制御するように構成されてもよい。加えて、プロセッサは、USBホストスタックコードを起動し、USBデバイスを列挙するように構成されてもよい。
さらなる実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内における、高度バッテリ充電のための方法が、提供される。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出してもよく、USBデバイスを列挙してもよい。プロセッサはさらに、製品ID(PID)およびベンダID(VID)をUSBデバイスから得て、PIDおよびVIDを使用して、USBデバイスのためのカスタムバッテリ充電プロトコルを判定してもよい。プロセッサは、次いで、USBハブに、USBデバイスに対応する具体的バッテリ充電プロトコルを使用して、USBデバイスを充電させてもよい。
さらなる実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内におけるデータセキュリティのための方法が、提供される。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出してもよく、USBデバイスを列挙してもよい。プロセッサはさらに、情報(例えば、デバイスクラスコード、記述子情報等)をUSBデバイスから得て、デバイスクラスコードを使用して、USBデバイスがブロックされるべきであることを判定してもよい。プロセッサは、次いで、USBハブに、USBデバイス接続をブロックさせてもよい。
さらなる実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内におけるデータセキュリティのための方法が、提供される。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出してもよく、USBデバイスを列挙してもよい。プロセッサはさらに、情報(例えば、デバイスクラスコード、記述子情報等)をUSBデバイスから得て、デバイスクラスコードを使用して、USBハブがUSB間ブリッジをUSBデバイスと上流USBホストとの間に確立すべきであることを判定してもよい。プロセッサは、次いで、USB間ブリッジをUSBデバイスと上流USBホストとの間に実装してもよい。
さらなる実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内におけるベンダデバイス選好のための方法が、提供される。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出してもよく、USBデバイスを列挙してもよい。プロセッサはさらに、製品ID(PID)およびベンダID(VID)をUSBデバイスから得て、PIDおよびVIDを使用して、USBデバイスが選択肢デバイスのベンダではないことを判定してもよい。プロセッサは、次いで、USBデバイスが選択肢デバイスのベンダではないことの判定に応じて、USBデバイスに、準最適構成で列挙させてもよい。
さらなる実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内におけるデバイス認証のための方法が、提供される。プロセッサは、USBデバイスが複数のハブ下流ポートの第1のものに結合されるときを検出してもよく、USBデバイスを列挙してもよい。プロセッサはさらに、製品ID(PID)およびベンダID(VID)をUSBデバイスから得て、PIDおよびVIDを使用して、USBデバイスが認証を要求することを判定してもよい。プロセッサは、次いで、USBデバイスが認証を要求することの判定に応じて、認証チャレンジをUSBデバイスに発行してもよい。プロセッサはさらに、認証チャレンジ応答をUSBデバイスから得てもよく、応答が正しくないことの判定に応じて、USBデバイス接続をブロックしてもよい。
別の実施形態によると、複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内におけるデータ反映のための方法が、提供される。プロセッサは、発信元ポートを複数のハブ下流ポートから判定してもよい。プロセッサはまた、宛先ポートを複数のハブ下流ポートから判定してもよい。プロセッサはさらに、発信元ポートにおけるデータを宛先ポートにおいて反映させてもよい。
本開示のより完全な理解は、付随の図面と関連して検討される以下の説明を参照することによって取得され得る。
図1は、本開示のある実施形態による、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供することができる、例示的USBハブのブロック図を図示する。 図2は、本開示のある実施形態による、USBハブ内における高度バッテリ充電、ベンダマッチング、およびデバイス認証を提供するための例示的データベースのテーブルを図示する。 図3は、本開示のある実施形態による、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供するための例示的構成オプションを図示する。 図4は、本開示のある実施形態による、USBハブ内における、高度バッテリ充電を提供するための例示的方法のフロー図を図示する。 図5は、本開示のある実施形態による、USBハブ内における高度データ記憶セキュリティを提供するための例示的方法のフロー図を図示する。 図6は、本開示のある実施形態による、USBハブ内における高度ベンダマッチングを提供するための例示的方法のフロー図を図示する。 図7は、本開示のある実施形態による、USBハブ内における高度デバイス認証を提供するための例示的方法のフロー図を図示する。 図8は、本開示のある実施形態による、データ捕捉/デバッグを提供することができる、例示的USBハブのブロック図を図示する。 図9は、本開示のある実施形態による、USBハブ内における高度役割スイッチングを提供するための例示的方法のフロー図を図示する。
本開示は、種々の修正および代替形態を被るが、その具体的例示的実施形態が、図面に示され、本明細書に詳細に説明される。しかしながら、具体的例示的実施形態の本明細書の説明は、本開示を本明細書に開示される特定の形態に限定することを意図するものではなく、対照的に、本開示は、添付の請求項によって定義される全修正および均等物を網羅するものであることを理解されたい。
種々の実施形態によると、オペレーティングシステムまたはUSBスタック/ドライバへの変更を要求することなく、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供し得る、USBハブが、提供されることができる。
ここで図面を参照すると、例示的実施形態の詳細が、図式的に図示される。図面における同一要素は、同一番号によって表され、類似要素は、異なる小文字添え字を伴う同一数字によって表されるであろう。
図1は、本開示のある実施形態による、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供することができる、例示的USBハブのブロック図を図示する。図1に描写されるように、USBハブ100は、USBハブコア102と、上流ポート104と、制御プロセッサ106と、USBホストスタック+ミニスケジューラ+メッセージパイプ108と、下流ポート116a−dと例えばUSBハブコア102出力信号110a−dおよび信号112a−dとを通信可能に結合する、2:1マルチプレクサ/デマルチプレクサ114a−dとを備えてもよい。上流ポート104および下流ポート116a−dは、USBハブ100と上流/下流ポートとの間でUSB対応信号伝達を搬送可能であってもよい。図1に描写される実施形態は、4−ポートUSBハブを含むが、代替実施形態は、任意の数のポート(例えば、2、3、10、16等)を含んでもよい。
制御プロセッサ106は、プログラム命令および/またはプロセスデータを解釈および/または実行するように動作可能である、任意のシステム、デバイス、または装置を備えてもよく、限定ではないが、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、またはプログラム命令および/またはプロセスデータを解釈および/または実行するように構成される、任意の他のデジタルまたはアナログ回路を含んでもよい。制御プロセッサ106は、USBハブコア102に通信可能に結合され、本開示の種々の実施形態によって提供されるUSBハブならびに付加的特徴を実装/制御するために適切な信号伝達を提供してもよい。制御プロセッサ106はまた、USBホストスタック108(ミニスケジューラおよびメッセージパイプを含む)に通信可能に結合されてもよい(例えば、実装する、制御する等)。制御プロセッサ106はまた、マルチプレクサ/デマルチプレクサ114a−dに通信可能に結合され、例えば、信号112a−dを伝送または受信する、および/または選択信号伝達(図示せず)をマルチプレクサ/デマルチプレクサ114a−dに提供してもよい。制御プロセッサはまた、メモリ(例えば、揮発性、不揮発性等)、記憶媒体(例えば、フラッシュ、EEPROM、固体記憶媒体等)等を含む、他のリソース(図示せず)に通信可能に結合されてもよい。
USBハブコア102は、USBハブインターフェースを実装するように動作可能である、任意のシステム、デバイス、または装置を備えてもよく、限定ではないが、特定用途向け集積回路(ASIC)、またはUSBハブインターフェースを実装するように構成される、任意の他のデジタルまたはアナログ回路(および必要ソフトウェア/ファームウェア)を含んでもよい。ある実施形態では、USBハブコアは、USB On the Go(OTG)信号伝達をサポートしてもよい。同一または付加的実施形態では、USBハブコア102は、MicrochipのFlexConnect特徴をサポートするMicrochip Technology, Inc.(Microchip)によって提供される、ハブコントローラであってもよい。FlexConnect特徴は、ハブが、上流および下流ポートとして作用する、物理的ポートを動的に変更することを可能にしてもよい。これらの特徴は、2つの専用コネクタの要件を伴わずに、USBホストおよびUSBデバイスの両方として作用する、複数の製品への接続を可能にしてもよい。
USBホストスタック108は、USBホストコントローラを実装するように動作可能である、任意のソフトウェア、ハードウェア、またはソフトウェア/ハードウェアの組み合わせを備えてもよい。ある実施形態では、USBホストスタック108は、完全USB対応であって、USB仕様のいずれかによって定義された全有効トランザクションをサポートしてもよい。代替実施形態では、USBホストスタック108は、例えば、(i)ある周辺デバイスおよび/またはデバイスのクラスのみをサポートする、(ii)サポートされるデバイスによって要求されるある転送タイプのみをサポートする、(iii)緩和電力要件を有する、(iv)等によって、USB仕様のある側面のみを実装してもよい。一実施形態では、USBホストスタック108は、Microchipマイクロコントローラと併用するためのMicrochipによって提供されるロイヤリティフリー内蔵ホストスタックであってもよい。
動作時、USBハブ100は、バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチング等の高度USB特徴を提供してもよい。制御プロセッサ106は、本開示のある実施形態によると、概して、USBハブコア102と相互作用し、USBホストスタック+ミニスケジューラ+メッセージパイプ108を実装するように動作可能である、ソフトウェアおよび/またはファームウェアを実行してもよい。ある実施形態では、制御プロセッサ106は、概して、限定ではないが、図2−3に図示されるものに類似するデータベーステーブルおよび/または構成情報を含む、情報を記憶および読み出すように動作可能である、ソフトウェアおよび/またはファームウェアを実行してもよい。
図2は、本開示のある実施形態による、USBハブ内における高度バッテリ充電、ベンダマッチング、およびデバイス認証を提供するための例示的データベース200のテーブルを図示する。データベース200は、限定ではないが、テキストファイル、バイナリファイル、関係データベース等を含む、多くの異なるフォーマットで実装されてもよい。データベース200の各行は、USBハブ100によってサポートされる、USBデバイスに関連するエントリを含有してもよく、サポートされるデバイスを伴うトランザクションにおいてUSBハブ100によって使用される情報を記憶してもよい。ある例示的実施形態では、データベース200は、ベンダID(「VID」)(列A)と、製品ID(「PID」)(列B)と、高度充電インジケータ(列C)と、充電タイプ(列D)と、充電仕様(列E)と、選択肢ベンダインジケータ(列F)と、要求される認証インジケータ(列G)と、認証仕様(列H)と、FlexConnectインジケータ(列I)とを記憶してもよい。USB仕様に従って、各USB構成要素(デバイス、ホスト、ハブ等)は、VIDおよびPIDが割り当てられ、例えば、構成要素の容易な識別を可能にしてもよい。データベース200のVIDおよびPID列は、これらの事前に割り当てられたVID/PID値に対応してもよい。このように、USBハブ100は、USBハブ100に接続され得る異なるUSB構成要素に特有の高度バッテリ充電、ベンダマッチング、およびデバイス認証を提供してもよい。
動作時、USB構成要素がUSBハブ100に接続されると、制御プロセッサ106は、VID/PID情報をデバイスから得てもよい。一実施形態では、USBハブ100は、USBホストスタック+ミニスケジューラ+メッセージパイプ108を利用して、USBホストとして作用し、デバイスを列挙し、デバイス記述子(VID/PID情報を含む)を得てもよい。代替実施形態では、制御プロセッサは、USBハブコア102(標準的USBプロトコル)を介して、新しくアタッチされたデバイスを列挙する上流ポート104に接続されるホストとして列挙プロセスを「リッスン」することによって、VID/PID情報をデバイスから得てもよい。前者の実施形態では、制御プロセッサ106は、USBハブコア102がデバイスアタッチイベントを認識しないように、マルチプレクサ/デマルチプレクサ114a−dを構成してもよい。デバイスを列挙後、USBハブ100は、デバイスが上流ホストによって適切に列挙されるように、新しくアタッチされたデバイスと上流ポート104におけるUSBホストとの間の接続を管理してもよい。USBハブ100は、USBプロトコルの当業者に公知の任意の数の方法でこれを遂行してもよい。例えば、USBハブ100は、デバイスがアタッチされた下流ポート上で切断イベントを強制し、その後、上流ホストによる列挙を可能にしてもよい。代替実施形態では、USBハブ100は、デバイスをリセットし、その後、上流ホストによる列挙を可能にしてもよい。代替実施形態では、USBハブ100は、上流ホストへの新しいアタッチイベントをエミュレートし、デバイスの記述子を上流ポート104上のUSBホストに転送し、次いで、通常ハブ信号伝達を適切な時間に再開してもよい(すなわち、エミュレーションを中止する)。これらの実施形態では、制御プロセッサ106は、信号伝達が、(1)USBハブコアまたは(2)USBホストスタックを起動する制御プロセッサのいずれかに適切にルーティングされるように、マルチプレクサ/デマルチプレクサ114a−dを制御する。ある実施形態では、マルチプレクサ/デマルチプレクサ114a−dが、下流ポート信号を制御プロセッサにルーティングしているとき、USBハブコアに接続される信号110a−dは、アタッチされたデバイスを反映しないように構成されてもよい。したがって、マルチプレクサ/デマルチプレクサ114a−d上の選択入力を変更する(すなわち、USBハブコアへのルーティングをもたらす)ことによって、USBハブコアは、デバイスアタッチイベントが生じたことを判定してもよい。
USBハブ100がVID/PID情報を得る様式にかかわらず、その後、USBハブ100は、次いで、マッチングVID/PIDに関してデータベース200を検索してもよい。VID/PIDがデータベース200内で見出される場合、制御プロセッサ106は、接続されるUSB構成要素がUSBハブ100によってサポートされることを判定し、そのUSB構成要素に対応するデータベース200内に記憶される他のパラメータに応じて、ある高度特徴を提供してもよい。例えば、高度充電インジケータ(列C)が、マッチングVID/PIDに関してイネーブルにされている(例えば、行2)場合、USBハブ100は、そのUSBポート上における高度バッテリ充電を提供してもよい。この場合、データベース200内の充電タイプ(列D)および充電仕様(列E)エントリは、USB構成要素が充電されるべき方法に関連する付加的情報を提供してもよい。(高度充電に関連するさらなる詳細は、図4の議論に提供される。)別の実施例として、選択肢ベンダインジケータ(列F)が、マッチングVID/PIDに関してイネーブルにされている(例えば、行4)場合、USBハブ100は、高度ベンダマッチング特徴を提供してもよい。(高度ベンダマッチング特徴に関連するさらなる詳細は、図3および6の議論に提供される。)さらに別の実施例では、要求される認証インジケータ(列G)が、マッチングVID/PIDに関してイネーブルにされている(例えば、行6)場合、USBハブ100は、USB構成要素に完全に接続する前に、認証を要求してもよい。この場合、データベース200内の認証仕様(列H)エントリは、USB構成要素が認証されるべき方法に関連する付加的詳細を提供してもよい。(認証特徴に関連するさらなる詳細は、図7の議論に提供される。)さらに別の実施例では、FlexConnectインジケータ(列I)が、マッチングVID/PIDに関してイネーブルにされている(例えば、行1)場合、USBハブ100は、デバイスに初期役割スイッチングのオプションを提供し、USBホストとして作用してもよい。(役割スイッチング特徴に関連するさらなる詳細は、図9の議論に提供される。)
データベース200内に記憶される値は、ハードコードされる、構成可能である、またはそれらの2つのある組み合わせであってもよい。ある実施形態では、USBハブ100の製造業者は、データベースが修正されることができないように、USBハブ100の販売に先立って、データベース200の値をハードコードすることを所望し得る。例えば、データベース200は、メモリの読取専用セクション内に記憶される、または書込保護されてもよい。他の実施形態では、製造業者は、デフォルト値データベース200を提供してもよいが、ユーザによる後の修正を可能にしてもよい。例えば、USBハブ100のユーザは、ハブをUSBホストの中に差し込み、USBホスト上でソフトウェアを使用して、データベースを更新する(例えば、新しいベンダ/製品情報をインターネットからダウンロードする、テーブルを手動で編集することによって等)ことによって、データベース200を修正可能であってもよい。ある実施形態では、データベース200の修正は、USBハブ100の任意のユーザがデータベースを修正し得るように、非セキュアな様式で、行われてもよい。他の実施形態では、データベース200の修正は、正しい証明書(例えば、パスワード等)を伴うユーザのみによって行われてもよい。
図3は、本開示のある実施形態による、データ記憶セキュリティ、ベンダマッチング、データ捕捉/デバッグ、および役割スイッチングを提供するための例示的構成オプションテーブル300を図示する。いくつかの実施形態では、構成オプションテーブル300は、限定ではないが、テキストファイル、バイナリファイル、関係データベース等を含む、ソフトウェアで記憶されてもよい。他の実施形態では、構成オプションテーブル300は、ハードウェアでハードワイヤされてもよい(例えば、ローにつながれる(ディスエーブルにされる)、ハイにつながれる(イネーブルにされている)、制御プロセッサ106上のGPIOピンに接続される等)。構成オプションテーブル300内の第1の列は、本開示の例示的実施形態において利用可能であり得る、構成オプションに対応してもよい。他の実施形態では、より多いまたはより少ない列が、特定のUSBハブ100によってサポートされる特徴に応じて、存在してもよい。構成オプションテーブル300内の第2の列は、USBハブ100のベンダまたはユーザによって判定されるような構成値に対応してもよい。
構成オプションテーブル300内に記憶される値は、ハードコードされる、構成可能である、またはその2つのある組み合わせであってもよい。ある実施形態では、USBハブ100の製造業者は、構成オプションが修正されることができない(すなわち、構成不可能である)ように、USBハブ100の販売に先立って、構成オプションテーブル300の値をハードコードすることを所望し得る。例えば、構成オプションテーブル300の値は、メモリの読取専用セクション内に記憶されてもよい。他の実施形態では、製造業者は、構成オプションテーブル300のためのデフォルト値を提供してもよいが、ユーザによる後の修正を可能にしてもよい。例えば、USBハブ100のユーザは、ハブをUSBホストの中に差し込み、USBホスト上のソフトウェアを使用して、値を設定することによって、構成テーブル300内の値を修正可能であってもよい。ある実施形態では、本修正は、USBハブ100の任意のユーザが値を修正し得るように、非セキュアな様式で、行われてもよい。他の実施形態では、構成テーブル300内の値の修正は、正しい証明書(例えば、パスワード等)を伴うユーザのみによって行われてもよい。
図3に描写される実施形態では、構成オプションテーブル300は、以下の構成オプションを含有する。「データセキュリティ?」オプションは、データセキュリティ特徴がイネーブルにされているかどうかを判定するために使用される。「データセキュリティレベル2?」オプションは、データセキュリティレベル2特徴がイネーブルにされているかどうかを判定するために使用される。「データセキュリティ仕様」エントリは、USBハブ100がデータセキュリティ特徴を実装すべき方法に関連する付加的情報を提供する。(データセキュリティ特徴に関連するさらなる詳細は、図5の議論に提供される。)「選択肢ベンダ」オプションは、選択肢ベンダ特徴がイネーブルにされているかどうかを判定するために使用される。「選択肢ベンダ仕様」エントリは、USBハブ100が選択肢ベンダ特徴を実装すべき方法に関連する付加的情報を提供する。(高度ベンダマッチング特徴に関連するさらなる詳細は、図3および6の議論に提供される。)「自動応答?」オプションは、自動応答特徴がイネーブルにされているかどうかを判定するために使用される。「自動応答仕様」エントリは、USBハブ100が自動応答特徴を実装すべき方法に関連する付加的情報を提供する。「データ反映?」オプションは、データ反映特徴がイネーブルにされているかどうかを判定するために使用される。「データ反映仕様」エントリは、USBハブ100がデータ反映特徴を実装すべき方法に関連する付加的情報を提供する。(自動応答およびデータ反映特徴に関連するさらなる詳細は、図8の議論に提供される。)「Flexconnectスイッチング?」オプションは、Flexconnectスイッチング特徴がイネーブルにされているかどうかを判定するために使用される。(Flexconnectスイッチング特徴に関連するさらなる詳細は、図9の議論に提供される。)
バッテリ充電
USBコネクタは、限定ではないが、スマートフォン、タブレット、ゲーム、玩具、および同等物を含む、あらゆるタイプの電子機器デバイスを充電するために使用される。USB仕様は、USB接続を経由してUSBデバイスを充電するためのプロトコルを定義する。しかしながら、多くのUSBデバイスは、本プロトコルに従わず、代わりに、カスタム電気ハンドシェイクまたはカスタムUSBメッセージベースのハンドシェイク等のベンダまたは製品特有の充電プロトコルを実装する。これは、これらのデバイスを充電するための標準的USB充電プロトコル(すなわち、一般的USBハブによって使用される方法)を使用するとき、準最適充電率につながり得る。ベンダおよび/または製品特有の充電情報を記憶することによって、USBハブ100は、USBハブ100に接続される任意のデバイスのための最適充電プロトコルを実装し得る。
図4は、本開示のある実施形態による、USBハブ内における高度バッテリ充電を提供するための例示的方法400のフロー図を図示する。一実施形態によると、方法400は、好ましくは、ステップ402から開始する。前述のように、本開示の教示は、USBハブ100の種々の構成において実装されてもよい。したがって、方法400のための好ましい初期化点および方法400を構成するステップ402−418の順序は、選定される実装に依存してもよい。
ステップ402では、USBハブ100は、初期化してもよい。例えば、USBハブ100は、電源がオンにされてもよく(電源またはUSBホストへの接続を介して)、USBハブコア102は、初期化してもよい。ステップ404では、USBハブ100は、持続的にチェックし、下流デバイスが、例えば、下流ポート116a−dのうちの1つにアタッチされたかどうかを判定してもよい。下流デバイスがアタッチされていない場合、USBハブ100は、ステップ404に戻って、下流デバイスが検出されるまで、このように継続してもよい。下流デバイス接続の検出に応じて、USBハブ100は、ステップ406において、検出されたデバイスに接続してもよく、ステップ408において、デバイスを列挙してもよい。列挙の間、USBハブ100は、新しくアタッチされたデバイスのVIDおよびPIDを読み取ってもよい。
ステップ410では、USBハブ100は、新しくアタッチされたデバイスが非標準的充電プロトコルを実装するかどうかを判定してもよい。例えば、VID/PIDは、制御プロセッサ106に提供されてもよく、制御プロセッサ106は、データベース200にクエリし、新しくアタッチされたデバイスのVID/PIDにマッチするエントリ(行)を含有するかどうかと、任意のマッチングエントリが、デバイスがベンダまたは製品特有の充電プロトコルに従う(すなわち、列C「充電する?」がイネーブルにされている)ことを示すかどうかとを判定してもよい。データベース200内にVID/PIDマッチが存在しない場合、方法400は、ステップ410からステップ412に進んでもよく、標準的USB充電プロトコルを使用して、新しくアタッチされたデバイスの充電を試みてもよい。同様に、データベース200内にVID/PIDマッチが存在するが、マッチング行に関する「充電する?」列がイネーブルにされていない場合、方法400は、ステップ410からステップ412に進んでもよく、標準的USB充電プロトコルを使用して、新しくアタッチされたデバイスの充電を試みてもよい。データベース200内にVID/PIDマッチが存在し、そのマッチング行に関する「充電する?」列がイネーブルにされている場合、方法400は、ステップ414に進んでもよい。
ステップ414では、USBハブ100は、マッチングデータベースエントリがカスタム電気ハンドシェイク充電プロトコルを示すかどうかを判定してもよい。図2に描写される実施例では、「充電タイプ」列内のゼロ(0)は、カスタム電気ハンドシェイク充電プロトコル(例えば、行2)を示してもよい一方、「充電タイプ」列内の1(1)は、カスタムメッセージベースのハンドシェイク充電プロトコル(例えば、行3)を示してもよい。本実施形態によると、USBハブ100が、ステップ414において、「充電タイプ」がゼロ(0)に設定され、カスタム電気ハンドシェイクを示すことを判定する場合、方法400は、ステップ418に進んでもよい。USBハブ100が、代わりに、ステップ414において、「充電タイプ」が1(1)に設定され、カスタムメッセージベースのハンドシェイクを示すことを判定する場合、方法400は、ステップ416に進んでもよい。
ステップ416では、USBハブ100は、カスタムメッセージベースのハンドシェイクプロトコルを使用して、新しくアタッチされたデバイスを充電してもよい。ある実施形態では、本プロトコルの詳細は、「充電仕様」列内の「メッセージベースのハンドシェイク仕様」(例えば、行3)としてデータベース200内に保存されてもよい。メッセージベースのハンドシェイク仕様は、USB構成要素によって実装されるカスタムメッセージベースのハンドシェイクプロトコルを記述する、命令、記述子、または複数の命令/記述子を備えてもよい。必要とされる命令/記述子の数は、実装依存であってもよく、USBハブ100によってサポートされるデバイスの数に基づいて変動してもよい。制御プロセッサ106は、任意のサポートされるデバイスのためのメッセージベースのハンドシェイク仕様をデコードするように動作可能であってもよく、情報を使用して、下流ポート上のプロトコルを制御してもよい。このように、USBハブ100は、最適ベンダまたは製品特有のメッセージベースのハンドシェイク充電プロトコルを実装してもよい。
ステップ418では、USBハブ100は、例えば、下流ポートのための具体的抵抗、電圧、または電流を設定することによって、カスタム電気ハンドシェイクプロトコルを使用して、新しくアタッチされたデバイスを充電してもよい。ある実施形態では、本プロトコルの詳細は、「充電仕様」列内の「電気信号伝達仕様」(例えば、行3)としてデータベース200内に保存されてもよい。電気信号伝達仕様は、USB構成要素によって実装されるカスタム電気ハンドシェイクプロトコルを記述する、命令、記述子、または複数の命令/記述子を備えてもよい。必要とされる命令/記述子の数は、実装依存であってもよく、USBハブ100によってサポートされるデバイスの数に基づいて変動してもよい。制御プロセッサ106は、任意のサポートされるデバイスのための電気信号伝達仕様をデコードするように動作可能であってもよく、情報を使用して、下流ポート上のプロトコルを制御してもよい。このように、USBハブ100は、最適ベンダまたは製品特有の電気ハンドシェイク充電プロトコルを実装してもよい。
データセキュリティ
セキュアな設備では、セキュアなデータの窃盗は、主要な懸念である。キーボード、マウス、またはプリンタを接続するために使用される、USBポートは記憶デバイスに接続するためにまた、使用されることができ、そこで、大量のデータが、非常に短時間でダウンロードされることができる。不正データアクセスを禁止するために、USBハブ100のある実施形態は、データセキュリティ特徴を実装してもよい。例えば、USBハブ100は、デバイスが、例えば、キーボード、マウス、または記憶デバイスであるかどうかを判定してもよい。USBハブ100は、デバイスのクラスを認めることによって、列挙の間、本情報を得てもよい。USBハブ100は、次いで、データが記憶デバイスに転送され得ないように、記憶デバイスを選択的にブロックしてもよい。ある実施形態では、USBハブ100は、デバイスが完全に列挙しないように、接続プロセスを停止することによって、記憶デバイスをブロックしてもよい。他の実施形態では、USBハブ100は、デタッチイベントを強制することによって、記憶デバイスをブロックしてもよい。さらに他の実施形態では、USBハブ100は、非常に低速における通信への接続を強制することによって、記憶デバイスをブロックしてもよい。本後者の特徴は、接続を完全にブロックし得ないが、大量のデータが短時間でダウンロードされることを可能にしないことによって、データセキュリティを提供し得る。USBハブ100は、記憶デバイスが接続を試みるとき、これらの異なるブロッキングスキームを実装してもよい。同一または異なる実施形態では、全てのプリンタクラスデバイスは、ブロックされてもよい。同一またはさらに他の実施形態では、BULK OUTエンドポイント(すなわち、発信データ)を伴う全てのデバイスは、ブロックされてもよい。したがって、USBハブ100は、接続を潜在的に危険なデバイスタイプからブロックすることによって、データセキュリティを提供してもよい。逆に言えば、USBハブ100は、キーボードまたはマウスデバイスが、列挙し、正常に動作することを可能にし得る。
他の実施形態では、USBハブ100は、USB間ブリッジとして作用することによって、データセキュリティを提供してもよい。例えば、デバイスがUSBハブ100の下流ポート116a−dのうちの1つへの接続を試みるとき、USBハブ100は、接続を試みるデバイスのタイプを判定してもよい。本実施形態では、USBハブ100は、キーボードおよびマウス以外の全デバイスをブロックしてもよい。キーボードまたはマウスが下流ポート116a−dのうちの1つへの接続を試みるとき、USBハブ100は、それぞれ、ポートをエミュレーションキーボードまたはエミュレーションマウスとして列挙してもよい。本シナリオでは、制御プロセッサ106は、USBキーボードまたはUSBマウスをエミュレートするソフトウェアを実装してもよく、USBハブ100は、次いで、ホストまたはデバイスのいずれもUSB間ブリッジについて把握することなく、上流ホストポートとキーボード/マウスデバイスとの間のトラフィックを管理してもよい。例えば、制御プロセッサ106は、マルチプレクサ/デマルチプレクサ114a−dを制御し、デバイスからホストに送信されるデータを、USBハブコア102にではなく、制御プロセッサ106にダイレクトさせてもよい。制御プロセッサ106は同様に、上流ポート104を介して、ホストからの伝送を受信可能であろう。マウス/キーボードデバイスをエミュレートすることによって、制御プロセッサ106は、安全データトラフィックのみを可能にし得る。したがって、データトラフィックは、一方向であってもよく、双方向トラフィックは、ブリッジによって終了されてもよい。ある実施形態によると、特殊ドライバを要求し得る、新世代デバイスの特殊モードまたは機能は、USB間ブリッジによってブロックされてもよい。
図5は、本開示のある実施形態による、USBハブ内における高度データ記憶セキュリティを提供するための例示的方法500のフロー図を図示する。一実施形態によると、方法500は、好ましくは、ステップ502から開始する。前述のように、本開示の教示は、USBハブ100の種々の構成において実装されてもよい。したがって、方法500のための好ましい初期化点および方法500を構成するステップ502−526の順序は、選定される実装に依存してもよい。
ステップ502では、USBハブ100は、初期化してもよい。例えば、USBハブ100は、電源がオンにされてもよく(電源またはUSBホストへの接続を介して)、USBハブコア102は、初期化してもよい。ステップ504では、USBハブ100は、持続的にチェックし、下流デバイスが、例えば、下流ポート116a−dのうちの1つにアタッチされたかどうかを判定してもよい。下流デバイスがアタッチされていない場合、USBハブ100は、ステップ504に戻って、下流デバイスが検出されるまで、このように継続してもよい。下流デバイス接続の検出に応じて、USBハブ100は、ステップ506において、検出されたデバイスに接続してもよく、ステップ508において、デバイスを列挙してもよい。列挙の間、USBハブ100は、新しくアタッチされたデバイスのVID、PID、およびデバイスクラスを読み取ってもよい。
ステップ510では、USBハブ100は、例えば、構成テーブル300内の「データセキュリティ?」値をチェックすることによって、データセキュリティ特徴がイネーブルにされているかどうかを判定してもよい。「データセキュリティ?」値がイネーブルにされていない場合、方法500は、ステップ512に進み、標準的USBプロトコルに従って、デバイスを列挙してもよい。「データセキュリティ?」値がイネーブルにされている場合、方法500は、ステップ514に進み、例えば、構成テーブル300内の「データセキュリティレベル2?」値をチェックすることによって、データセキュリティレベル2特徴(すなわち、USB間ブリッジ特徴)がイネーブルにされているかどうかを判定してもよい。イネーブルにされていない場合、方法500は、ステップ516に進んでもよく、USBハブ100にアタッチを試みるデバイスがデータセキュリティ特徴によってブロックされるべきであるクラスまたはタイプであるかどうかを判定してもよい。一実施形態では、USBハブ100は、データセキュリティ特徴がイネーブルにされているとき、構成テーブル300内の「データセキュリティ仕様」値(DS_Specification)を使用して、ブロックされるべきであるデバイスのクラスまたはタイプを判定してもよい。例えば、限定ではないが、DS_Specificationは、ブロックされるべきであるデバイスクラス(例えば、大容量記憶、プリンタ等)またはデバイスのタイプ(例えば、BULKOUTエンドポイントを伴うデバイス等)のリストを含有してもよい。
方法500は、ステップ516において、DS_Specification内の本情報を使用して、USBハブ100への接続を試みるデバイスがブロックされるべきであるかどうかを判定してもよい。USBハブ100への接続を試みるデバイスがDS_Specification内でリスト化されたそれらのデバイス内にない場合、方法500は、ステップ512に進み、標準的USBプロトコルに従って、デバイスを列挙してもよい。そうでなければ、方法500は、ステップ518に進み、データセキュリティ特徴が前述の「低速」ブロッキング特徴を実装するかどうかを判定してもよい。ある実施形態では、本構成オプションは、DS_Specification構成値内に提供される(ブロックされるべきであるデバイスクラス/タイプとともに)。代替実施形態では、構成テーブル300は、別個の「低速ブロッキング?」構成オプションを含有してもよい。ステップ518において、USBハブ100が、低速ブロッキング特徴がイネーブルにされていることを判定する場合、方法500は、ステップ522に進んでもよく、そこで、デバイスは、列挙してもよく、低速デバイスとして構成されてもよい。ステップ518において、USBハブ100が、低速ブロッキング特徴がイネーブルにされていないことを判定する場合、方法500は、ステップ520に進み、そこで、デバイス接続は、ブロックされてもよい。
ステップ514に戻って、USBハブ100が、レベル2セキュリティ特徴がイネーブルにされていることを判定する場合、方法500は、ステップ524に進んでもよく、USBハブ100にアタッチを試みるデバイスがレベル2セキュリティ特徴によってブロックされるべきであるクラスまたはタイプであるかどうかを判定してもよい。方法500は、ステップ524において、ステップ516に関して議論されるものと類似様式で、判定を行ってもよい。USBハブ100は、アタッチを試みるデバイスがブロックされるべきであることを判定する場合、方法500は、ステップ512に進んでもよく、そこで、デバイス接続は、ブロックされてもよい。そうでなければ、方法500は、ステップ526に進んでもよく、そこで、USBハブ100は、USB間ブリッジを確立してもよい(前述のように)。
ベンダマッチング
USBハブ100は、1つまたはそれを上回るベンダによって製造されるデバイスへの選好を与える、ベンダマッチング特徴を提供してもよい。例えば、好ましいベンダによって製造されるデバイスは、最高帯域幅接続または利用可能な最大電力が与えられてもよい。対照的に、好ましくないベンダによって製造されるデバイスは、より低い帯域幅接続またはより低い電力接続が与えられてもよい。このように、好ましいベンダによって提供されるデバイスは、優れた性能を有すると考えられ得る。
図6は、本開示のある実施形態による、USBハブ内における高度ベンダマッチングを提供するための例示的方法600のフロー図を図示する。一実施形態によると、方法600は、好ましくは、ステップ602から開始する。前述のように、本開示の教示は、USBハブ100の種々の構成において実装されてもよい。したがって、方法600のための好ましい初期化点および方法600を構成するステップ602−616の順序は、選定される実装に依存してもよい。
ステップ602では、USBハブ100は、初期化してもよい。例えば、USBハブ100は、電源がオンにされてもよく(電源またはUSBホストへの接続を介して)、USBハブコア102は、初期化してもよい。ステップ604では、USBハブ100は、持続的にチェックし、下流デバイスが、例えば、下流ポート116a−dのうちの1つにアタッチされたかどうかを判定してもよい。下流デバイスがアタッチされていない場合、USBハブ100は、ステップ604に戻って、下流デバイスが検出されるまで、このように継続してもよい。下流デバイス接続の検出に応じて、USBハブ100は、ステップ606において、検出されたデバイスに接続してもよく、ステップ608において、デバイスを列挙してもよい。列挙の間、USBハブ100は、新しくアタッチされたデバイスのVIDおよびPIDを読み取ってもよい。
ステップ610では、USBハブ100は、例えば、構成テーブル300内の「選択肢ベンダ?」値をチェックすることによって、選択肢ベンダ特徴がイネーブルにされているかどうかを判定してもよい。「選択肢ベンダ?」値がイネーブルにされていない場合、方法600は、ステップ612に進み、標準的USBプロトコルに従って、デバイスを列挙してもよい。「選択肢ベンダ?」値がイネーブルにされている場合、方法600は、ステップ614に進み、接続を試みるデバイスが選択肢ベンダによって提供されるかどうかを判定してもよい。一実施形態によると、USBハブ100は、構成テーブル300内の「選択肢ベンダ仕様」値(VoC_Specification)を使用して、好ましいベンダであるベンダ(または複数のベンダ)を判定してもよい。例えば、限定ではないが、VoC_Specificationは、好ましいベンダに対応する、1つまたはそれを上回るベンダID(VID)のリストを含有してもよい。本実施形態では、USBハブ100は、単に、接続を試みるデバイスのVIDがVoC_Specificationリスト内のVIDにマッチするかどうかを判定してもよい。代替実施形態では、USBハブ100は、マッチングVID/PID組み合わせに関してデータベース200を検索し、マッチが見出される場合、データベース200のマッチング行内の「選択肢ベンダ?」列がイネーブルにされているかどうかを判定することによって、接続を試みるデバイスが好ましいベンダによって提供されるかどうかを判定してもよい。ステップ614において、USBハブ100が、デバイスが好ましいベンダによって提供されることを判定する場合、方法600は、ステップ612に進み、標準的(または高度、例えば、より多くの電力等)USBプロトコルに従って、デバイスを列挙してもよい。ステップ614において、USBハブ100が、デバイスが好ましいベンダによって提供されないことを判定する場合、方法600は、ステップ616に進んでもよく、準最適電力および/または速度構成でデバイスを列挙してもよい。一実施形態では、構成テーブル300内のVoC_Specificationは、好ましくないベンダによって提供されるデバイスに割り当てられるべき設定を提供する(例えば、デバイスを準最適電力、速度、または両方で構成するかどうか)。
デバイス認証
USBハブ100は、デバイスが適切な証明書を伴わない上流USBホストにアタッチすることを防止する、デバイス認証特徴を提供してもよい。一実施形態では、デバイスがUSBハブ100へのアタッチを試みるとき、USBハブ100は、USBホストスタック+ミニスケジューラ+メッセージパイプ108を利用してもよく、デバイスを列挙してもよく、USBハブ100は、USBホストとして、デバイスに接続する。本実施形態では、USBハブ100は、認証チャレンジを含む、トランザクションを開始してもよい。デバイスが、認証チャレンジに応答しない、または正しくなく応答する場合、USBハブ100は、接続をブロックしてもよい。いくつかの実施形態では、USBハブ100は、デバイスが第1のチャレンジに正しくなく応答する場合、1つを上回る認証チャレンジを発行するように構成されてもよい。
図7は、本開示のある実施形態による、USBハブ内における高度デバイス認証を提供するための例示的方法700のフロー図を図示する。一実施形態によると、方法700は、好ましくは、ステップ702から開始する。前述のように、本開示の教示は、USBハブ100の種々の構成において実装されてもよい。したがって、方法700のための好ましい初期化点および方法700を構成するステップ702−718の順序は、選定される実装に依存してもよい。
ステップ702では、USBハブ100は、初期化してもよい。例えば、USBハブ100は、電源がオンにされてもよく(電源またはUSBホストへの接続を介して)、USBハブコア102は、初期化してもよい。ステップ704では、USBハブ100は、持続的にチェックし、下流デバイスが、例えば、下流ポート116a−dのうちの1つにアタッチされたかどうかを判定してもよい。下流デバイスがアタッチされていない場合、USBハブ100は、ステップ704に戻って、下流デバイスが検出されるまで、このように継続してもよい。下流デバイス接続の検出に応じて、USBハブ100は、ステップ706において、検出されたデバイスに接続してもよく、ステップ708において、デバイスを列挙してもよい。一実施形態では、USBハブ100は、USBハブ100がUSBホストとしてデバイスに接続するように、USBホストスタック+ミニスケジューラ+メッセージパイプ108を利用して、デバイスを列挙してもよい。列挙の間、USBハブ100は、新しくアタッチされたデバイスのVIDおよびPIDを読み取ってもよい。
ステップ710では、USBハブ100は、新しくアタッチされたデバイスが認証を要求するかどうかを判定してもよい。例えば、VID/PIDが、制御プロセッサ106に提供されてもよく、制御プロセッサ106は、データベース200にクエリし、新しくアタッチされたデバイスのVID/PIDにマッチするエントリ(行)を含有するかどうかと、任意のマッチングエントリが、デバイスが認証を要求する(すなわち、列G「認証要求?」がイネーブルにされている)ことを示すかどうかとを判定してもよい。データベース200内にVID/PIDマッチが存在しない場合、方法700は、ステップ710からステップ712に進んでもよく、USBハブ100がUSBホストとしてデバイスに接続するインスタンスに関連する前述の任意の様式で、デバイスが上流USBポート104に接続することを可能にしてもよい。USBハブ100が、ステップ710において、データベース200内にVID/PIDマッチが存在することを判定する場合、方法700は、ステップ710からステップ714に進んでもよい。
ステップ714では、USBハブ100は、認証チャレンジをデバイスに発行してもよい。認証チャレンジは、当業者に公知の任意の数の形態をとってもよく、概して、新しくアタッチされたデバイスVID/PIDに対応するデータベース200内の認証仕様(列H)内に定義されてもよい。例えば、認証仕様は、デバイスが、特定のピン番号またはパスワードで認証チャレンジに応答すべきであることを示してもよい。他の実施形態では(すなわち、USBハブ100がインターネットに接続される)、認証仕様は、限定ではないが、遠隔認証等を含む、より複雑な認証方法を提供してもよい。
ステップ716では、USBハブ100は、デバイスが認証チャレンジに正しく応答したかどうかを判定してもよい。デバイスが正しい応答を提供した場合、方法700は、ステップ716からステップ712に進んでもよく、USBハブ100がUSBホストとしてデバイスに接続したインスタンスに関連する前述の任意の様式で、デバイスが上流USBポート104に接続することを可能にしてもよい。デバイスが正しくない応答を提供した場合、USBハブ100は、認証仕様が再試行を可能にする場合、ステップ714に戻ることによって(点線720)、チャレンジの再発行を試みてもよい。そうでなければ、方法700は、ステップ718に進んでもよく、デバイスは、上流ポート104においてUSBホストに接続することが不可能にされる。
データ捕捉/デバッグ
USBハブ100は、データ捕捉および/またはデバッグ特徴を提供してもよい。例えば、USBハブ100は、ある様式で、あるUSBトラフィックに応答するようにプログラムされてもよい。代替として、または加えて、USBハブ100は、ある下流ポートから別の下流ポートにトラフィックを反映させるようにプログラムされてもよい。
一実施形態によると、USBハブ100は、あるタイプのUSBトラフィックに自動応答を提供してもよい。USBハブ100は、例えば、構成テーブル300内の「自動応答?」値をチェックすることによって、自動応答特徴がイネーブルにされているかどうかを判定してもよい。一実施形態では、USBハブ100は、構成テーブル300内の「自動応答仕様」値(AR_Specification)を使用して、自動応答を要求するトランザクションおよび行われるべき応答を判定してもよい。例えば、限定ではないが、AR_Specificationは、あるタイプのトラフィックに関して監視されるべき下流ポート、デバイスクラス(例えば、大容量記憶、プリンタ等)、またはデバイスのタイプ(例えば、BULK INエンドポイントを伴うデバイス等)のリストを含有してもよい。同様に、AR_Specificationは、自動応答を受信すべきトラフィックのタイプ(例えば、BULK INパケット、CONTROL READ等)のリストを含有してもよい。さらに、AR_Specificationは、規定されたトラフィックに遭遇すると、USBハブ100が提供すべき応答を提供してもよい。非限定的実施例として、AR_Specificationは、下流ポート116c上のBULK INトランザクションのデータ位相がNAKハンドシェイクを受信すべきであることを規定してもよい。本実施例では、USBハブ100は、下流ポート116cを監視してもよく、デバイスによるBULK INデータの転送後、USBホスト100は、そうでなければ上流ホストから伝送されるであろう(信号110cを介してUSBハブコア102に接続される、マルチプレクサ/デマルチプレクサ114c入力を介して)応答ではなく、マルチプレクサ/デマルチプレクサ114cにNAKハンドシェイクを制御プロセッサ106から下流ポート116cにパスさせてもよい。マルチプレクサ/デマルチプレクサ114a−dを制御することによって、USB制御プロセッサ106は、自動応答をいずれかの方向(すなわち、上流または下流)に提供してもよい。
同一または代替実施形態によると、USBハブ100は、ある下流ポートから別の下流ポートにデータ反映を提供してもよい(USB仕様に従って、上流ポート104において発生する全てのトラフィックは、全下流デバイスにブロードキャストされる)。USBハブ100は、例えば、構成テーブル300内の「データ反映?」値をチェックすることによって、データ反映特徴がイネーブルにされているかどうかを判定してもよい。一実施形態では、USBハブ100は、構成テーブル300内の「データ反映仕様」値(DR_Specification)を使用して、データ反映を要求するトランザクションを判定してもよい。例えば、限定ではないが、DR_Specificationは、データが反映されるべき下流ポート、デバイスクラス(例えば、大容量記憶、プリンタ等)、またはデバイスのタイプ(例えば、BULK INエンドポイントを伴うデバイス等)のリストを含有してもよい。さらに、DR_Specificationは、データが反映されるべき宛先ポートを規定してもよい。
図8は、本開示のある実施形態による、データ反映特徴を使用したUSBハブ800内の例示的データ反映のブロック図を図示する。本実施例では、DR_Specificationは、下流ポートDからの信号810が下流ポートA上の信号812として反映されるべきであることを規定してもよい。マルチプレクサ/デマルチプレクサ814aおよび814dを制御することによって、USB制御プロセッサ106は、信号810から812へのデータ反映(点線)を提供してもよい。同時に、下流ポート810上の信号伝達810は、接続816を介して、USBハブコア802まで(続いて、上流ポート818に)パスされる。本実施形態によると、下流ポートAは、例えば、デバッグまたは他の目的のために、反映されたデータを監視可能なデバイスに接続されてもよい。
代替実施形態では、データ反映は、USBハブ800上の物理的入力を介して、制御されてもよい。そのような実施形態では、制御プロセッサは、物理的スイッチに接続される、汎用I/Oピンを備えてもよい。DR_Specificationと同様に、これらの物理的スイッチは、(1)データ反映がイネーブルにされているかどうかと、(2)データ反映特徴のための発信元および宛先ポートの一方または両方を規定してもよい。例えば、本開示の4−ポートハブ実施形態(図8等に示されるように)は、物理的「DRオン/オフ」ボタンと、4−位置「DR発信元」スイッチと、4−位置「DR宛先」スイッチとを提供してもよい。USBハブ800のユーザは、「DR発信元」スイッチを下流ポートDに設定し、「DR宛先」スイッチを下流ポートAに設定してもよく、「DRオン/オフ」スイッチをオン位置にすることによって、データ反映をイネーブルにしてもよい。これらの設定を用いることで、USBハブ800は、下流ポートDからのデータが下流ポートAに反映されるであろうという点において、図8に関して説明されるように挙動するであろう。本開示のある実施形態は、DR_Specificationとともに、物理的スイッチの使用を組み合わせ、データ反映特徴の種々のレベルの物理的対ソフトウェア制御を提供してもよい。
役割スイッチング
FlexConnectは、Microchip USBハブに一意の特徴である。本特徴は、ハブが、上流および下流ポートとして作用する、物理的ポートを動的に変更することを可能にする。これは、システム設計者が、2つの専用コネクタの要件を伴わずに、USBホストおよびUSBデバイスとして作用する製品を開発することを可能にする。これはまた、本能力を1つのポート上に有するシステムが、そのポートに接続されるデバイスをFlexConnectハブを通して拡張させることを可能にする。MicrochipのFlexConnect特徴はさらに、MicrochipアプリケーションノートAN1700に説明されており、その全体は、参照することによって本明細書に組み込まれる。現在、FlexConnect特徴は、デバイスおよびホストの両方がFlexConnectアウェアであることを要求する。
USBハブ100は、USBハブ100の上流ポート104に接続されるUSBホストは、FlexConnectアウェアではない、または上流USBホストが存在しない場合、USBハブ100に接続されるFlexConnectデバイスが役割をスイッチさせ、USBホストとして作用することを可能にする、役割スイッチング特徴を実装してもよい。
図9は、本開示のある実施形態による、USBハブ内における高度役割スイッチングを提供するための例示的方法900のフロー図を図示する。一実施形態によると、方法900は、好ましくは、ステップ902から開始する。前述のように、本開示の教示は、USBハブ100の種々の構成において実装されてもよい。したがって、方法900のための好ましい初期化点および方法900を構成するステップ902−918の順序は、選定される実装に依存してもよい。
ステップ902では、USBハブ100は、初期化してもよい。例えば、USBハブ100は、電源がオンにされてもよく(電源またはUSBホストへの接続を介して)、USBハブコア102は、初期化してもよい。ステップ904では、USBハブ100は、持続的にチェックし、下流デバイスが、例えば、下流ポート116a−dのうちの1つにアタッチされたかどうかを判定してもよい。下流デバイスがアタッチされていない場合、USBハブ100は、ステップ904に戻って、下流デバイスが検出されるまで、このように継続してもよい。下流デバイス接続の検出に応じて、USBハブ100は、ステップ906において、検出されたデバイスに接続してもよく、ステップ908において、デバイスを列挙してもよい。USBハブ100は、USBホストスタック+ミニスケジューラ+メッセージパイプ108を利用して、USBハブ100がUSBホストとしてデバイスに接続するように、デバイスを列挙してもよい。列挙の間、USBハブ100は、新しくアタッチされたデバイスのVIDおよびPIDを読み取ってもよい。
ステップ910では、USBハブ100は、新しくアタッチされたデバイスがFlexConnectアウェアであるかどうかを判定してもよい。例えば、VID/PIDが、制御プロセッサ106に提供されてもよく、制御プロセッサ106は、データベース200にクエリし、新しくアタッチされたデバイスのVID/PIDにマッチするエントリ(行)を含有するかどうかと、任意のマッチングエントリが、デバイスがFlexConnectアウェアである(すなわち、列I「FlexConnect?」がイネーブルにされている)ことを示すかどうかとを判定してもよい。データベース200内にVID/PIDマッチが存在しない場合、方法900は、ステップ910からステップ912に進んでもよく、USBハブ100がUSBホストとしてデバイスに接続するインスタンスに関連する前述の任意の様式で、デバイスが上流USBポート104に接続することを可能にしてもよい。USBハブ100が、ステップ910において、データベース200内にVID/PIDマッチが存在し、マッチがFlexConnectアウェアデバイスを示すことを判定する場合、方法900は、ステップ910からステップ914に進んでもよい。
ステップ914では、USBハブ100は、FlexConnectアウェアデバイスがUSBホストになることを所望するかどうかを判定してもよい。例えば、USBハブ100は、CONTROL READトランザクションを開始し、デバイスによって提供される応答に基づいて、役割スイッチングが行われるべきであることを判定してもよい。ある実施形態では、デバイスは、常時、役割スイッチングを生じさせるように構成されてもよい。他の実施形態では、デバイスは、デバイスのユーザが、デバイスがUSBホストとなることを要求し得るように、ユーザインターフェースを含んでもよい。例えば、デバイスは、USBホストとしてUSBハブ100の上流ポート104に接続される自動車インフォテインメントシステムのヘッドユニットを伴うUSBハブ100に接続される、スマートフォンであってもよい。スマートフォンは、ユーザがスマートフォンからインフォテインメントシステムを制御することを選定し得るように、ユーザにスイッチを提示してもよい。ステップ914において、方法900が、役割スイッチングが要求されないことを判定する場合、方法900は、ステップ910からステップ912に進んでもよく、USBハブ100がUSBホストとしてデバイスに接続したインスタンスに関連する前述の任意の様式で、デバイスが上流USBポート104に接続することを可能にしてもよい。
ステップ914において、方法900が、役割スイッチングが要求されることを判定する場合、方法900は、ステップ916に進んでもよい。ステップ916では、USBハブ100は、現在のUSBホスト(存在する場合)をデバイスモードにスイッチさせてもよい。例えば、USBハブ100は、USB OTGホストネゴシエーションプロトコルまたはセッション要求プロトコルを使用して、方向の変更を開始してもよい。代替として、USBハブ100は、パケットをUSBホストに送信し、ホストが役割をスイッチすべきであることを示してもよい。ステップ918では、USBハブは、新しくアタッチされたデバイスをホストモードにスイッチさせてもよい。例えば、USBハブ100は、USB OTGホストネゴシエーションプロトコルまたはセッション要求プロトコルまたはMicrochip FlexConnectプロトコルを使用して、方向の変更を開始してもよい。代替として、USBハブ100は、パケットをデバイスに送信し、役割スイッチを示してもよい。ステップ918では、USBハブ100はまた、バッテリ充電のために引き出すことができる電力の量をデバイスに知らせてもよい。新しいホストは、それらを制御することができるように、バス上の全デバイスを列挙してもよい。スマートフォンおよび自動車インフォテインメントシステムを含む、前述の実施例では、本役割スイッチングは、スマートフォンが、例えば、音楽を再生する、自動車内の音量を調節する等によって、インフォテインメントシステムを制御することを可能にしてもよい。新しいホスト(例えば、スマートフォン)が切断される場合、USBハブ100は、古いホスト(存在する場合)に役割をスイッチすることを知らせ、再び、USBホストとして作用してもよい。
図4−7および9は、その中に描写される方法に関して行われるべき特定の数のステップを開示するが、それらの方法は、描写されるものより多いまたはより少ないステップで実行されてもよい。加えて、図4−7および9は、そこで描写される方法に関して行われるステップのある順序を開示するが、ステップは、任意の好適な順序で完了されてもよい。
本明細書に開示される方法およびシステムを使用して、オペレーティングシステムまたはUSBスタック/ドライバへの変更を要求せず、高度バッテリ充電、データ記憶セキュリティ、ベンダマッチング、デバイス認証、データ捕捉/デバッグ、および役割スイッチングを提供することができる、USBハブが、提供されることができる。
本開示は、詳細に説明されたが、種々の変更、代用、および改変が、添付の請求項によって定義される本開示の精神および範囲から逸脱することなく、そこに成され得ることを理解されたい。


Claims (33)

  1. USBハブであって、
    ハブ上流ポートと、
    複数のハブ下流ポートと、
    プロセッサと、
    USBホストスタックコードおよび複数の構成パラメータを記憶するために前記プロセッサに通信可能に結合される、メモリと、
    コア上流ポートおよび複数のコア下流ポートを有する、USBハブコアであって、USBハブインターフェースを前記コア上流ポートと前記複数のコア下流ポートとの間に実装するように動作可能である、USBハブコアと、
    複数のマルチプレクサであって、各マルチプレクサは、
    前記ハブ下流ポートのうちの1つに通信可能に結合される、第1のポートと、
    前記複数のコア下流ポートのうちの1つに通信可能に結合される、第2のポートと、
    前記プロセッサに通信可能に結合される、第3のポートと、
    前記プロセッサに通信可能に結合され、前記第1のポートを、前記第2のポート、前記第3のポート、または前記第2のポートおよび前記第3のポートの両方に通信可能に結合するように動作可能である、選択入力と、
    を有する、複数のマルチプレクサと
    を備え、
    前記プロセッサは、
    USBデバイスが前記複数のハブ下流ポートの第1のものに結合されるときを検出することと、
    前記第1のポートが前記第3のポートに接続されるように、前記第1のハブ下流ポートに対応する第1のマルチプレクサの前記選択入力を制御することと、
    前記USBホストスタックコードを起動することと、
    前記USBデバイスを列挙することと
    を行うように構成される、
    USBハブ。
  2. 前記USBデバイスを列挙した後、前記プロセッサはさらに、前記USBデバイスを、前記ハブ上流ポートに結合される上流USBホストによって列挙させるように構成される、請求項1に記載のUSBハブ。
  3. 前記プロセッサが、前記USBデバイスを前記上流USBホストによって列挙させることは、
    前記プロセッサが、前記第1のポートが前記第2のポートに接続されるように、前記第1のマルチプレクサの選択入力を制御することと、
    前記プロセッサが、リセットを前記USBデバイスに信号伝達することと
    を含む、請求項1または請求項2に記載のUSBハブ。
  4. 前記複数の構成パラメータは、複数のフィールドを有する複数の記録を含有するデータベースを備え、各記録は、前記USBハブによってハンドリングされる特定のUSBデバイスに対応する、前記請求項のいずれか1項に記載のUSBハブ。
  5. 前記プロセッサはさらに、
    製品ID(PID)およびベンダID(VID)を前記USBデバイスから得ることと、
    前記PIDおよび前記VIDを使用して、前記USBデバイスのためのカスタムバッテリ充電プロトコルを判定することと、
    前記USBハブに、前記USBデバイスに対応する具体的バッテリ充電プロトコルを使用して、前記USBデバイスを充電させることと
    を行うように構成される、前記請求項のいずれか1項に記載のUSBハブ。
  6. 前記具体的バッテリ充電プロトコルは、カスタム電気ハンドシェイクおよびカスタムメッセージベースのハンドシェイクのうちの1つである、請求項5に記載のUSBハブ。
  7. 前記プロセッサはさらに、
    情報を前記USBデバイスから得ることと、
    前記得られた情報を使用して、前記USBデバイスがブロックされるべきであることを判定することと、
    前記USBハブに、前記USBデバイス接続をブロックさせることと
    を行うように構成される、前記請求項のいずれか1項に記載のUSBハブ。
  8. 前記得られた情報は、デバイスクラスコードである、請求項7に記載のUSBハブ。
  9. 前記USBデバイス接続は、前記USBデバイスを低速デバイスとして構成することによってブロックされる、前記請求項のいずれか1項に記載のUSBハブ。
  10. 前記プロセッサはさらに、
    情報を前記USBデバイスから得ることと、
    前記得られた情報を使用して、前記USBハブがUSB間ブリッジを前記USBデバイスと上流USBホストとの間に確立すべきであることを判定することと、
    前記USB間ブリッジを実装することと
    を行うように構成される、前記請求項のいずれか1項に記載のUSBハブ。
  11. 前記得られた情報は、デバイスクラスコードである、請求項10に記載のUSBハブ。
  12. 前記USB間ブリッジを実装することは、前記第1のハブ下流ポートを前記上流USBホストへのエミュレーションデバイスとして列挙することを含む、請求項10に記載のUSBハブ。
  13. 前記プロセッサはさらに、
    製品ID(PID)およびベンダID(VID)を前記USBデバイスから得ることと、
    前記PIDおよび前記VIDを使用して、前記USBデバイスが選択肢デバイスのベンダではないことを判定することと、
    前記USBデバイスが選択肢デバイスのベンダではないことの判定に基づいて、前記USBデバイスに、準最適構成で列挙させることと
    を行うように構成される、前記請求項のいずれかに記載のUSBハブ。
  14. 前記準最適構成は、準最適電力構成および準最適速度構成のうちの1つまたはそれを上回るものである、請求項13に記載のUSBハブ。
  15. 前記プロセッサはさらに、
    製品ID(PID)およびベンダID(VID)を前記USBデバイスから得ることと、
    前記PIDおよび前記VIDを使用して、前記USBデバイスが認証を要求することを判定することと、
    前記USBデバイスが認証を要求することの判定に基づいて、認証チャレンジを前記USBデバイスに発行することと、
    認証チャレンジ応答を前記USBデバイスから得ることと、
    前記応答が正しくないことの判定に応じて、前記USBデバイス接続をブロックすることと
    を行うように構成される、前記請求項のうちの1項に記載のUSBハブ。
  16. 前記プロセッサはさらに、前記USBバス上の具体的トランザクションの検出に応じて、所定の応答を伝送するように構成される、前記請求項のうちの1項に記載のUSBハブ。
  17. 前記プロセッサはさらに、発信元ハブ下流ポートから宛先ハブ下流ポートにデータを反映させるように構成される、前記請求項のうちの1項に記載のUSBハブ。
  18. 前記発信元ハブ下流ポートおよび宛先ハブ下流ポートは、1つまたはそれを上回る物理的スイッチに基づいて判定される、請求項17に記載のUSBハブ。
  19. 前記プロセッサはさらに、
    製品ID(PID)およびベンダID(VID)を前記USBデバイスから得ることと、
    前記PIDおよび前記VIDを使用して、前記USBデバイスが前記FlexConnect役割スイッチングプロトコルをサポートすることを判定することと、
    前記USBデバイスがFlexConnectをサポートすることの判定に基づいて、前記ハブ上流ポートに接続されるUSBホストが存在しない、または前記ハブ上流ポートに接続されるUSBホストが前記FlexConnect役割スイッチングプロトコルをサポートしないとき、前記USBデバイスに、役割をスイッチさせ、USBホストにならせることと
    を行うように構成される、前記請求項のうちの1項に記載のUSBハブ。
  20. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、高度バッテリ充電を提供するための方法であって、
    前記プロセッサが、USBデバイスが前記複数のハブ下流ポートの第1のものに結合されていることを検出するステップと、
    前記プロセッサが、前記USBデバイスを列挙するステップと、
    前記プロセッサが、製品ID(PID)およびベンダID(VID)を前記USBデバイスから得るステップと、
    前記プロセッサが、前記PIDおよび前記VIDを使用して、前記USBデバイスのためのカスタムバッテリ充電プロトコルを判定するステップと、
    前記プロセッサが、前記USBハブに、前記USBデバイスに対応する具体的バッテリ充電プロトコルを使用して、前記USBデバイスを充電させるステップと
    を含む、方法。
  21. 前記プロセッサは、前記USBハブに、カスタム電気ハンドシェイクプロトコルおよびカスタムメッセージベースのハンドシェイクプロトコルのうちの1つを使用して、前記USBデバイスを充電させる、請求項20に記載の方法。
  22. 前記USBハブはさらに、メモリを含み、前記プロセッサは、前記カスタム電気ハンドシェイクプロトコルおよびカスタムメッセージベースのハンドシェイクプロトコルのうちの1つのための仕様を前記メモリ内に記憶される構成ファイルから得る、請求項20または21に記載の方法。
  23. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、データセキュリティを提供するための方法であって、
    前記プロセッサが、USBデバイスが前記複数のハブ下流ポートの第1のものに結合されていることを検出するステップと、
    前記プロセッサが、前記USBデバイスを列挙するステップと、
    前記プロセッサが、情報を前記USBデバイスから得るステップと、
    前記プロセッサが、前記得られた情報を使用して、前記USBデバイスがブロックされるべきであることを判定するステップと、
    前記プロセッサが、前記USBデバイスがブロックされるべきであることの判定に応じて、前記USBハブに、前記USBデバイス接続をブロックさせるステップと
    を含む、方法。
  24. 前記得られた情報は、デバイスクラスコードである、請求項23に記載の方法。
  25. 前記プロセッサは、前記USBハブに、前記USBデバイスを低速デバイスとして構成することによって、前記USBデバイス接続をブロックさせる、請求項23または24に記載の方法。
  26. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、データセキュリティを提供するための方法であって、
    前記プロセッサが、USBデバイスが前記複数のハブ下流ポートの第1のものに結合されていることを検出するステップと、
    前記プロセッサが、前記USBデバイスを列挙するステップと、
    前記プロセッサが、情報を前記USBデバイスから得るステップと、
    前記プロセッサが、前記得られた情報を使用して、前記USBハブがUSB間ブリッジを前記USBデバイスと上流USBホストとの間に確立すべきであることを判定するステップと、
    前記プロセッサが、前記USB間ブリッジを実装するステップと
    を含む、方法。
  27. 前記得られた情報は、デバイスクラスコードである、請求項26に記載の方法。
  28. 前記プロセッサが前記USB間ブリッジを実装するステップは、前記第1のハブ下流ポートを前記上流USBホストへのエミュレーションデバイスとして列挙するステップを含む、請求項26または27に記載の方法。
  29. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、ベンダデバイス選好を提供するための方法であって、
    前記プロセッサが、USBデバイスが前記複数のハブ下流ポートの第1のものに結合されていることを検出するステップと、
    前記プロセッサが、前記USBデバイスを列挙するステップと、
    前記プロセッサが、製品ID(PID)およびベンダID(VID)を前記USBデバイスから得るステップと、
    前記プロセッサが、前記PIDおよび前記VIDを使用して、前記USBデバイスが選択肢デバイスのベンダではないことを判定するステップと、
    前記プロセッサが、前記USBデバイスが選択肢デバイスのベンダではないことの判定に応じて、前記USBデバイスに、準最適構成で列挙させるステップと
    を含む、方法。
  30. 前記準最適構成は、準最適電力構成および準最適速度構成のうちの1つまたはそれを上回るものである、請求項29に記載の方法。
  31. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、デバイス認証を提供するための方法であって、
    前記プロセッサが、USBデバイスが前記複数のハブ下流ポートの第1のものに結合されていることを検出するステップと、
    前記プロセッサが、前記USBデバイスを列挙するステップと、
    前記プロセッサが、製品ID(PID)およびベンダID(VID)を前記USBデバイスから得るステップと、
    前記プロセッサが、前記PIDおよび前記VIDを使用して、前記USBデバイスが認証を要求することを判定するステップと、
    前記プロセッサが、前記USBデバイスが認証を要求することの判定に応じて、認証チャレンジを前記USBデバイスに発行するステップと、
    前記プロセッサが、認証チャレンジ応答を前記USBデバイスから得るステップと、
    前記プロセッサが、前記応答が正しくないことの判定に応じて、前記USBデバイス接続をブロックするステップと
    を含む、方法。
  32. 複数のハブ下流ポートと、USBホストスタックコードを起動するプロセッサとを含む、USBハブ内において、データ反映を提供するための方法であって、
    前記プロセッサが、発信元ポートを前記複数のハブ下流ポートから判定するステップと、
    前記プロセッサが、宛先ポートを前記複数のハブ下流ポートから判定するステップと、
    前記プロセッサが、前記発信元ポートにおけるデータを前記宛先ポートにおいて反映させるステップと
    を含む、方法。
  33. 前記USBハブはさらに、前記プロセッサに結合される物理的発信元スイッチと、前記プロセッサに結合される物理的宛先スイッチとを含み、
    前記プロセッサは、発信元ポート構成値および前記物理的発信元スイッチのうちの1つに基づいて、前記発信元ポートを判定し、
    前記プロセッサは、宛先ポート構成値および前記物理的宛先スイッチのうちの1つに基づいて、前記宛先ポートを判定する、
    請求項32に記載の方法。

JP2017555496A 2015-04-28 2016-04-03 ユニバーサルシリアルバススマートハブ Pending JP2018514871A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/698,428 2015-04-28
US14/698,428 US9804977B2 (en) 2015-04-28 2015-04-28 Universal serial bus smart hub
PCT/US2016/025798 WO2016175983A1 (en) 2015-04-28 2016-04-03 Universal serial bus smart hub

Publications (1)

Publication Number Publication Date
JP2018514871A true JP2018514871A (ja) 2018-06-07

Family

ID=55861156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017555496A Pending JP2018514871A (ja) 2015-04-28 2016-04-03 ユニバーサルシリアルバススマートハブ

Country Status (7)

Country Link
US (2) US9804977B2 (ja)
EP (1) EP3289469B1 (ja)
JP (1) JP2018514871A (ja)
KR (1) KR20170140267A (ja)
CN (2) CN113609050A (ja)
TW (2) TWI701549B (ja)
WO (1) WO2016175983A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9841904B2 (en) * 2015-03-02 2017-12-12 Samsung Electronics Co., Ltd. Scalable and configurable non-volatile memory module array
US9804977B2 (en) 2015-04-28 2017-10-31 Microchip Technology Incorporated Universal serial bus smart hub
US10468893B2 (en) * 2015-08-19 2019-11-05 Delta Electronics, Inc. USB charging method having protection function
TWI597608B (zh) * 2016-08-12 2017-09-01 The hub-to-bus converter that supports master-slave translation operates as a hub
US10572644B2 (en) 2017-01-26 2020-02-25 Microsoft Technology Licensing, Llc Interacting with a computing device via identity-bearing peripheral devices
JP6625076B2 (ja) 2017-01-30 2019-12-25 株式会社日立製作所 Usb中継装置を用いたusb管理システム及びusb管理方法
US10725939B2 (en) * 2017-02-13 2020-07-28 Microchip Technology Incorporated Host-detecting USB hub
US10331604B2 (en) * 2017-05-17 2019-06-25 Microchip Technology Incorporated USB host-to-host auto-switching
US10231273B2 (en) * 2017-06-02 2019-03-12 GM Global Technology Operations LLC Vehicle wireless device connection management with switchover of primary connected device
CN107453428B (zh) * 2017-08-08 2019-05-17 天津瑞发科半导体技术有限公司 一种自动识别苹果和安卓设备的方法
TWI634428B (zh) * 2017-10-20 2018-09-01 致伸科技股份有限公司 集線裝置
CN109709833A (zh) * 2017-10-25 2019-05-03 致伸科技股份有限公司 集线装置/ hub
US10684972B2 (en) * 2017-12-29 2020-06-16 Barco Nv Method and system for making functional devices available to participants of meetings
CN108268398A (zh) * 2018-02-01 2018-07-10 百度在线网络技术(北京)有限公司 用于操作外围设备的方法、设备和计算机可读存储介质
JP6808666B2 (ja) * 2018-02-20 2021-01-06 Jmacs株式会社 認証デバイスおよびこれを備えるデバイス管理システム
US20210048850A1 (en) * 2018-04-17 2021-02-18 Hewlett-Packard Development Company, L.P. Firmware setup menu options for docking stations
JP6540980B1 (ja) * 2018-05-29 2019-07-10 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、制御方法、及びプログラム
CN109063459A (zh) * 2018-07-17 2018-12-21 北京云智信安科技有限公司 一种usb设备过滤装置和方法
US11068613B2 (en) * 2018-08-07 2021-07-20 Dell Products L.P. Differentiating and managing identical USB devices
US20200078113A1 (en) 2018-09-07 2020-03-12 Ethicon Llc Port presence detection system for modular energy system
US11896279B2 (en) 2018-09-07 2024-02-13 Cilag Gmbh International Surgical modular energy system with footer module
US11923084B2 (en) 2018-09-07 2024-03-05 Cilag Gmbh International First and second communication protocol arrangement for driving primary and secondary devices through a single port
US11804679B2 (en) 2018-09-07 2023-10-31 Cilag Gmbh International Flexible hand-switch circuit
US10635618B2 (en) 2018-09-17 2020-04-28 2236008 Ontario Inc. Modifying a configuration of a port hub
CN111522762B (zh) * 2019-02-02 2022-03-29 智微科技股份有限公司 传输接口电路
US11016919B2 (en) * 2019-02-22 2021-05-25 Seagate Technology Llc Intelligent switching peripheral connector
US11743665B2 (en) 2019-03-29 2023-08-29 Cilag Gmbh International Modular surgical energy system with module positional awareness sensing with time counter
IT201900005822A1 (it) 2019-04-15 2020-10-15 Phoenix Ict S R L S Adattore di periferiche general purpose per computer
US11599641B2 (en) * 2019-04-24 2023-03-07 Crowdstrike, Inc. Firmware retrieval and analysis
USD939545S1 (en) 2019-09-05 2021-12-28 Cilag Gmbh International Display panel or portion thereof with graphical user interface for energy module
US11169584B2 (en) * 2020-03-31 2021-11-09 Western Digital Technologies, Inc. Dual-connector storage system and method for simultaneously providing power and memory access to a computing device
CN112000374B (zh) * 2020-07-13 2024-01-02 深圳市智微智能软件开发有限公司 应用于安卓系统的usb触摸屏更换方法、装置、设备及介质
TWI749658B (zh) * 2020-07-22 2021-12-11 旺玖科技股份有限公司 具自動更新韌體功能的usb集線裝置及具有該usb集線裝置的主機系統
CN113971146B (zh) * 2020-07-22 2024-05-28 旺玖科技股份有限公司 具自动更新固件功能的usb集线装置及具有该usb集线装置的主机系统
KR102195564B1 (ko) * 2020-09-25 2020-12-28 조성호 데이터 복사 시스템 및 그 동작 방법
US11768529B2 (en) * 2021-01-12 2023-09-26 Siliconch Systems Pvt Ltd System and method for enabling power sharing in a multiport power sourcing device
KR20220124006A (ko) * 2021-03-02 2022-09-13 삼성전자주식회사 전원 공급 장치 및 전원 공급 장치의 전원 공급 제어 방법
US11950860B2 (en) 2021-03-30 2024-04-09 Cilag Gmbh International User interface mitigation techniques for modular energy systems
US11963727B2 (en) 2021-03-30 2024-04-23 Cilag Gmbh International Method for system architecture for modular energy system
US11857252B2 (en) 2021-03-30 2024-01-02 Cilag Gmbh International Bezel with light blocking features for modular energy system
US11978554B2 (en) 2021-03-30 2024-05-07 Cilag Gmbh International Radio frequency identification token for wireless surgical instruments
US11980411B2 (en) 2021-03-30 2024-05-14 Cilag Gmbh International Header for modular energy system
US20220313369A1 (en) * 2021-03-30 2022-10-06 Cilag Gmbh International Method for intelligent instruments for modular energy system
US11968776B2 (en) 2021-03-30 2024-04-23 Cilag Gmbh International Method for mechanical packaging for modular energy system
US20220318179A1 (en) * 2021-03-30 2022-10-06 Cilag Gmbh International Intelligent data ports for modular energy systems
CN113839274B (zh) * 2021-08-10 2024-02-06 立讯精密工业股份有限公司 一种用于数码设备与vr、ar或mr设备之间的供电装置及供电方法
TWI802065B (zh) * 2021-10-29 2023-05-11 飛捷科技股份有限公司 可控制周邊裝置電源與訊號的通信介面轉接器、動態分配通信介面轉接器識別碼的方法及自動化診斷周邊裝置並修復問題的方法
TWI810032B (zh) * 2021-12-01 2023-07-21 威鋒電子股份有限公司 Usb積體電路、usb積體電路的操作方法及usb裝置
WO2023128219A1 (ko) * 2021-12-31 2023-07-06 삼성전자 주식회사 외부 전자 장치들과의 연결을 제어하기 위한 전자 장치 및 방법

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845329A (en) 1993-01-29 1998-12-01 Sanyo Electric Co., Ltd. Parallel computer
US5675813A (en) 1995-10-26 1997-10-07 Microsoft Corporation System and method for power control in a universal serial bus
US5983327A (en) 1995-12-01 1999-11-09 Nortel Networks Corporation Data path architecture and arbitration scheme for providing access to a shared system resource
US5784581A (en) 1996-05-03 1998-07-21 Intel Corporation Apparatus and method for operating a peripheral device as either a master device or a slave device
KR100189781B1 (ko) 1996-05-07 1999-06-01 윤종용 디스플레이 장치 및 그의 전원공급제어방법
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
US6308239B1 (en) 1996-11-07 2001-10-23 Hitachi, Ltd. Interface switching apparatus and switching control method
US6205501B1 (en) 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6408351B1 (en) 1998-03-31 2002-06-18 Compaq Computer Corporation Host modem having a peripheral codec powered by a peripheral bus
JP2000076038A (ja) 1998-08-28 2000-03-14 Matsushita Electric Ind Co Ltd Usbハブ回路及びディスプレイ装置
GB2350212B (en) 1999-02-09 2003-10-08 Adder Tech Ltd Data routing device and system
US6601109B1 (en) 1999-03-31 2003-07-29 International Business Machines Corporation USB-based networking and I/O hub
JP2000316006A (ja) 1999-04-28 2000-11-14 Nec Corp バスマネージャ機能自動切換対応ノード、移動端末、及び、移動端末システム
GB9909849D0 (en) 1999-04-28 1999-06-23 Adder Tech Ltd Usb switching device and system
US6704824B1 (en) 1999-07-27 2004-03-09 Inline Connection Corporation Universal serial bus adapter with automatic installation
FR2799288B1 (fr) 1999-09-23 2005-02-25 Ibm Systeme de communication sans fil utilisant un bus serie universel (usb)
US6957287B2 (en) 2001-11-09 2005-10-18 Aten International Co., Ltd. Asynchronous/synchronous KVMP switch for console and peripheral devices
JP2003256351A (ja) 2002-03-04 2003-09-12 Yamaha Corp Usbハブ
KR20040008365A (ko) 2002-07-18 2004-01-31 삼성전자주식회사 디스플레이 장치 및 방법
US6732218B2 (en) 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method
AU2003901297A0 (en) 2003-03-20 2003-04-03 Silverbrook Research Pty Ltd Systems and apparatus (fpd001)
EP1654819B1 (en) 2003-08-15 2013-05-15 Napatech A/S A data merge unit, a method of producing an interleaved data stream, a network analyser and a method of analysing a network
US7073010B2 (en) 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US20060056401A1 (en) 2004-09-14 2006-03-16 Standard Microsystems Corporation Peripheral sharing USB hub
US20060059293A1 (en) 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US20060227759A1 (en) 2004-09-14 2006-10-12 Bohm Mark R Peripheral Sharing USB Hub
JP2006127252A (ja) 2004-10-29 2006-05-18 Fujitsu Component Ltd 切替機、切替方法及びプログラム
US7346728B1 (en) 2005-04-18 2008-03-18 Intel Corporation Method and apparatus for a hub capable of being self-powered for use in a USB-compliant system
CN100493018C (zh) * 2005-07-08 2009-05-27 美国博通公司 一种通过网络中的总线接口进行通信的方法和系统
CN1976310B (zh) * 2005-07-08 2014-04-16 美国博通公司 在网络中通过总线接口进行通信的方法
US7657691B2 (en) * 2005-09-30 2010-02-02 Cypress Semiconductor Corporation Simplified universal serial bus (USB) hub architecture
ATE387653T1 (de) * 2005-10-13 2008-03-15 Research In Motion Ltd Vorrichtung und verfahren zur unterstützung der usb-aufzählung eines bus-betriebenen tragbaren geräts
US7246189B2 (en) 2005-11-18 2007-07-17 Vetra Systems Corporation Method and apparatus for enhancing universal serial bus
US7523243B2 (en) 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US7478191B2 (en) 2006-04-14 2009-01-13 Standard Microsystems Corporation Method for automatically switching USB peripherals between USB hosts
US7644217B2 (en) * 2007-03-02 2010-01-05 Microchip Technology Incorporated Detecting connection to a USB host or hub without using an extra status input
JP5130984B2 (ja) * 2008-03-25 2013-01-30 セイコーエプソン株式会社 Usbホスト、その制御方法、コンピュータプログラム、システム
KR101329014B1 (ko) * 2008-10-30 2013-11-12 삼성전자주식회사 휴대단말에서 스위칭 회로의 모드 제어 방법 및 장치
US20100262726A1 (en) 2009-01-13 2010-10-14 Tauscher Brian E Method and apparatus for implementing a limited functionality embedded universal serial (USB) host controller on a fully functional downstream USB port
US8055919B2 (en) 2009-02-06 2011-11-08 Standard Microsystems Corporation Port power controller for USB hubs with legacy battery charge support
US7882297B2 (en) * 2009-02-20 2011-02-01 Standard Microsystems Corporation Serial bus hub with low power devices
DE102009038760B3 (de) * 2009-08-27 2011-01-05 Wago Verwaltungsgesellschaft Mbh Verfahren zur Datenkommunikation zwischen einem Automatisierungsgerät und einem Datenverarbeitungsgerät sowie Schnittstellentreiberprogramm und Schnittstellenumsetzer hierzu
TWI498740B (zh) * 2010-05-05 2015-09-01 Genesys Logic Inc 通用串列匯流排充電系統及其充電方法
US8850082B2 (en) * 2010-08-30 2014-09-30 Qualcomm Incorporated Virtual USB compound device enumeration
US20120105201A1 (en) * 2010-10-29 2012-05-03 Cisco Technology, Inc. Validating Sensor Data at a Property Sensor-Coordinating Entity
US9201480B2 (en) * 2010-12-23 2015-12-01 Standard Microsystems Corporation Method and system for determining an arbitrary charging protocol in USB charging ports
CN102064582B (zh) * 2010-12-28 2012-11-21 鸿富锦精密工业(深圳)有限公司 可对外供电的终端
US9958507B2 (en) * 2011-05-09 2018-05-01 Analog Devices, Inc. Channel verification of multiple channels on one chip
IN2014CN02713A (ja) * 2011-10-08 2015-07-03 Qualcomm Inc
US8843770B2 (en) * 2011-10-31 2014-09-23 Smsc Holdings S.A.R.L. Device charging over USB using a plurality of handshakes
EP2602722B1 (en) * 2011-12-07 2020-04-08 VIA Technologies, Inc. USB charging module
EP2602721B1 (en) * 2011-12-07 2017-07-12 VIA Technologies, Inc. USB charging module
CN103309835A (zh) * 2012-03-12 2013-09-18 祥硕科技股份有限公司 通用串行总线装置及其供电方法
WO2013147789A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Buffer-related usb communication
US9026712B2 (en) * 2012-06-25 2015-05-05 Intel Corporation USB device control using endpoint type detection during enumeration
JP2014115687A (ja) * 2012-12-06 2014-06-26 Canon Inc データ処理装置、データ処理装置の制御方法、及びプログラム
US9081705B2 (en) * 2013-06-11 2015-07-14 Apple Inc. Methods and apparatus for reliable detection and enumeration of devices
US9785595B2 (en) * 2013-09-09 2017-10-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-channel universal serial bus (USB) to subrate channel systems
US9460037B2 (en) 2013-09-26 2016-10-04 Delphi Technologies, Inc. Flexible mobile device connectivity to automotive systems with USB hubs
US9804977B2 (en) 2015-04-28 2017-10-31 Microchip Technology Incorporated Universal serial bus smart hub

Also Published As

Publication number Publication date
EP3289469A1 (en) 2018-03-07
EP3289469B1 (en) 2021-11-10
CN107533529A (zh) 2018-01-02
TWI757809B (zh) 2022-03-11
TW201706772A (zh) 2017-02-16
TWI701549B (zh) 2020-08-11
CN113609050A (zh) 2021-11-05
KR20170140267A (ko) 2017-12-20
US20180067875A1 (en) 2018-03-08
US9804977B2 (en) 2017-10-31
CN107533529B (zh) 2021-09-03
US20160321195A1 (en) 2016-11-03
US10282313B2 (en) 2019-05-07
TW202105123A (zh) 2021-02-01
WO2016175983A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
US10282313B2 (en) Universal serial bus smart hub
US20180011718A1 (en) Re-enumeration of usb 3.0 compatible devices
US11829776B2 (en) Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface
US9032107B2 (en) USB key and a method for communication between the USB key and a terminal
US10452582B2 (en) Secure access to peripheral devices over a bus
US9201827B2 (en) Device dependent selection between modes for asymmetric serial protocols
US20160357991A1 (en) Secure access to peripheral devices over a bus
US20080126628A1 (en) Methods, devices and computer program products for automatically providing an alternate usb configuration of a usb compliant peripheral device for exposure to a host computer
US20130038888A1 (en) Printer With USB Interface and Driver Installing Method and System Thereof
WO2011130975A1 (zh) 一种linux系统数据卡设备端口识别的方法及装置
WO2018112942A1 (zh) 设备认证方法、装置、电子设备及从设备
US9418033B2 (en) Using USB signaling to trigger a device to enter a mode of operation
US20160253273A1 (en) Hub, operation system, and control method thereof
WO2013189388A2 (zh) 一种接入usb网卡的方法、usb网卡及pc
US9824046B2 (en) Using USB signaling to trigger a device to enter a mode of operation
EP3413205A1 (en) Re-enumeration of usb 3.0 compatible devices
KR101592591B1 (ko) Usb 호스트 및 usb 디바이스 간의 전환이 가능한 멀티미디어 시스템
TW200844755A (en) Method for setting configuration, electronic system, computer and USB device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201020