JP6136127B2 - コントローラ、電子機器及びusbデバイスの制御方法 - Google Patents

コントローラ、電子機器及びusbデバイスの制御方法 Download PDF

Info

Publication number
JP6136127B2
JP6136127B2 JP2012142271A JP2012142271A JP6136127B2 JP 6136127 B2 JP6136127 B2 JP 6136127B2 JP 2012142271 A JP2012142271 A JP 2012142271A JP 2012142271 A JP2012142271 A JP 2012142271A JP 6136127 B2 JP6136127 B2 JP 6136127B2
Authority
JP
Japan
Prior art keywords
usb
control method
port
usb hub
special control
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.)
Expired - Fee Related
Application number
JP2012142271A
Other languages
English (en)
Other versions
JP2014006726A (ja
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012142271A priority Critical patent/JP6136127B2/ja
Priority to US13/905,550 priority patent/US9098640B2/en
Publication of JP2014006726A publication Critical patent/JP2014006726A/ja
Application granted granted Critical
Publication of JP6136127B2 publication Critical patent/JP6136127B2/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0042Universal serial bus [USB]
    • 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/4002Universal serial bus hub with a single upstream port

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)

Description

本発明は、コントローラ、電子機器及びUSBデバイスの制御方法に関する。
USB(Universal Serial Bus)ホストコンピュータがUSBデバイスの接続認識を完了するためには、アドレス割り当てやリセット完了待ちのためのUSB規格に準拠したディレイが必要となる。しかし、世の中のUSBデバイスの中には規格値のディレイでは接続認識完了を応答しないデバイスも存在している。規格値のディレイでは応答しないデバイスを使用するためには規格値にマージンを加えたディレイをかけて、USBデバイスの応答時間を長くする必要がある。
例えば、特許文献1には、規格値のディレイでは動作しないUSBデバイスに対しては外部入力によりマージンを加える方法が開示されている。
どのデバイスが規格値のディレイで動作しないのかを網羅できれば、特定のUSBデバイスに対して上記ディレイに更にマージンを加えればよい。しかしながら、この手法はすべてのUSBデバイスに対して個々のデバイス動作を予め知っておく必要があり、非現実的である。そのため、どんなUSBデバイスでも応答させるためには、すべてのUSBデバイスに対しても対応可能なマージンを加えた値のディレイを使用する必要がある。しかし、これでは規格値のディレイを適応させた場合よりデバイス認識完了までの時間が長くなってしまい、結果として全般的に起動時間が遅くなるという影響を与えてしまう。
たとえば、特許文献1では、規格値のディレイでは動作しないUSBデバイスに対してはマージンを加算するが、これは「どのデバイスが規格値のディレイで動作しないのかを全USBデバイスに対して網羅できている」という前提の元に成り立っている。この前提が崩れると、ユーザに外部入力を用いてマージンを加えてもらう手間及び初回接続時にはデバイスの認識を失敗するという問題が発生する。
また、ユーザはディレイに対する知識はないため、デバイスの認識失敗後に初めて外部入力によりマージンを加える作業を実施すると想定される。また、デバイスの認識失敗の要因はディレイ不足だけではないためユーザが要因は何かに関する誤解を招きかねない。
更に、上記USBデバイス認識のための制御時間(応答時間)の他にも、特定のUSBデバイスに対して特殊制御方法を適用したい場合がある。
上記課題に鑑み、本発明の目的とするところは、USBバスに応じて登録される特殊制御方法に基づきUSBデバイスに特殊制御を実行することが可能なコントローラ、電子機器及びUSBデバイスの制御方法を提供することにある。
上記課題を解決するために、本発明のある観点によれば、USB(Universal Serial Bus)を介してUSBデバイスと通信するためのコントローラであって、
前記USBを介してUSBデバイスが接続されるUSBハブのトポロジ情報と、該USBハブに接続されるUSBデバイスを特殊制御するための特殊制御方法とを関連付けて登録する登録部と、
前記登録された情報に基づき、USBデバイスが接続されるUSBハブのトポロジ情報に対応する前記特殊制御方法を特定する処理部と、
前記処理部により特定された前記特殊制御方法に基づき、前記USBハブに接続されるUSBデバイスの制御を実行する前記USBハブと、
を備えることを特徴とするコントローラが提供される。
本発明によれば、USBバスに応じて登録される特殊制御方法に基づきUSBデバイスに特殊制御を実行することができる。
一実施形態に係るコントローラを含む電子機器の構成図。 一実施形態に係る登録リスト例(一のホストコントローラを有する場合)。 一実施形態に係る登録リスト例(複数のホストコントローラを有する場合)。 一実施形態に係る特殊制御処理を示したフローチャート。
以下、本発明の好適な実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
<はじめに>
近年、USBが高速シリアルインターフェースとして脚光を浴びている。USBでは、USBホストコントローラとUSBデバイスとの間で信号又はデータの送受信が行われる。
USB規格においては、USBホストコントローラ側がUSBデバイスの接続状況を認識するために、USBホストコントローラは、定常的又は周期的に信号又はデータをUSBに出力し又は出力を継続する時間、若しくは或る信号又はデータをUSBに出力してから次の信号又はデータをUSBに出力するまでの種々の時間が規定されている。
しかしながら、現実には、USBホストコントローラがUSB規格に規定されている時間に従って信号又はデータをUSBデバイスに出力しても、USBデバイスを認識することができない場合がある。
そこで、以下に説明する本発明の一実施形態に係るUSBホストコントローラでは、USBハブのポート毎にUSBハブに接続されるUSBデバイスを特殊制御するための特殊制御方法を設定可能である。
特殊制御方法としては、USBデバイス10の認識処理時に必要なディレイに対するマージン加算の有無を設定したり、ポートを検索する際の優先順位を設定したり、電力供給の有無を設定したりすることが挙げられる。これにより、USBデバイスを接続する際の処理中、USBデバイスからの応答に必要なディレイが短すぎて、USBデバイスを認識できないUSBデバイスに対してのみマージンを加算して認識させる特殊制御や、ポート検索の効率化を図るための特殊制御や、無駄な電力供給を回避するための特殊制御を実行することができる。この結果、本実施形態に係るUSBホストコントローラの制御では、USBデバイス認識の安定性、起動時間及びデバイス認識処理の高速化、省エネルギー化等の効果を得ることができる。以下、本実施形態に係るUSBホストコントローラの構成及び動作について説明する。
[システムの全体構成]
まず、本実施形態に係るUSBホストコントローラを含む電子機器について、図1を参照しながら説明する。図1は、本実施形態に係るUSBホストコントローラを含む電子機器の構成の一例を示した図である。
電子機器20は、メインCPU30とUSBホストコントローラ40とを含む。USBホストコントローラ40は、USBハブ80と、転送コントローラ100と、処理部120と、レジスタ130(登録部に相当)と、DMA処理部140とを含む。USBホストコントローラ40は、USBを介してUSBデバイスと通信するためのコントローラに相当する。USBホストコントローラ40は、半導体集積回路として実現してもよい。
本実施形態の電子機器20としては、ビデオカメラ、デジタルカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、光ディスクドライブ装置、ハードディスクドライブ装置、オーディオ機器、携帯電話機、携帯型ゲーム機、電子手帳、電子辞書又は携帯型情報端末等の種々のものが考えられる。
メインCPU30は、電子機器20の全体的な処理、制御を行う。例えば電子機器20がビデオカメラである場合には、メインCPU30はカメラプロセッサとして機能し、撮像デバイスの制御や画像のエフェクト処理や画像の圧縮処理などを行う。
レジスタ130は、メインCPU30のアドレス空間(メモリ空間、I/O空間等)にマッピングされており、レジスタ130には、CPUバスを介してメインCPU30が発行したコマンドが書き込まれる。USBハブ80、転送コントローラ100、処理部120、DMA処理部140は、レジスタ130に書き込まれたコマンドに基づいて動作する。またレジスタ130にはUSBハブ80、転送コントローラ100、処理部120、DMA処理部140等の動作ステータスが書き込まれ、メインCPU30はレジスタ130に書き込まれた動作ステータスを読み出すことができる。
USBハブ80は、USBを介してデータ転送(高速シリアル転送)を行うためのインタフェースである。USBハブ80には、USBを介してUSBデバイス10が接続されている。USBハブ80は、USB(シリアルバス)を介してデータの受信や送信を行う物理層回路を含み、USBデバイス10との間のデータ転送を行う。USBデバイス10の一例としては、図1に示したUSBメモリ10a、SDカードリーダ10b、操作部10c等が挙げられる。
DMA処理部140は、CPUバスに接続されており、USBデバイス10に送信されるデータをCPUバスから受け取って転送コントローラ100にDMA転送したり、USBデバイス10から受信されたデータを転送コントローラ100からCPUバスにDMA転送したりする。
転送コントローラ100は、USBハブ80、DMA処理部140の間でのデータ転送を制御する。これにより、CPUバスから転送されてきたデータをUSBデバイス10に書き込んだり、USBデバイス10に書き込まれたデータをCPUバスに転送したりすることが可能になる。
転送コントローラ100はデータバッファ102(例えばFIFO)を含む。データバッファ102は、転送コントローラ100により転送されるデータを一時的に格納するためのバッファである。このデータバッファ102は、RAMなどのメモリにより実現できる。
処理部120は、USBホストコントローラ40の全体的な処理、制御を行う。処理部120の機能の一部又は全部は、例えばCPUとCPU上で動作するファームウェアにより実現することができる。なお、処理部120を専用のハードウェア回路により実現することもできる。
本実施形態においては、処理部120は、CPU121と、RAM122と、ROM123を含む。ROM123には、OS(オペレーティングシステム)や各種プログラムが記憶されている。なお、ROM123は、EEPROM等であっても良い。
なお、処理部120をUSBホストコントローラ40に内蔵させず、メインCPU30との間のインタフェース処理を行うCPUI/Fを設けるようにしてもよい。この場合には、USBホストコントローラ40やUSBホストコントローラ40が含む各回路ブロックの制御は、CPUI/Fを介してメインCPU30が行うことになる。
また、処理部120を動作させるためのプログラムは、メインCPU30側のメモリ(EEPROM等)に記憶しておき、電源投入後にメインCPU30がダウンロードコマンドを発行し、CPUバスを介してUSBホストコントローラ40にダウンロードするようにしてもよい。
CPU121は、RAM122を作業領域として利用しながら、ROM123に記憶されているプログラムを実行する。
登録部は、USBを介してUSBデバイスが接続されるUSBハブのトポロジ情報と、そのUSBハブに接続されるUSBデバイスを特殊制御するための特殊制御方法とを関連付けてレジスタ130、又はその他の記憶領域に登録する。その他の記憶領域は、電子機器20に内蔵されたメモリ空間を利用しても良いし、クラウドコンピューティング上のメモリ空間を利用しても良い。
本実施形態における登録部により登録される特殊制御方法の一例としては、USBデバイス10の認識に必要なディレイに対するマージン加算の有無を設定すること、つまり、USBハブに接続されるUSBデバイスの応答のための制御時間であってUSB規格に定められたデフォルト値以外の制御時間を設定することが挙げられる。かかる特殊制御方法の設定により、USBデバイス10の認識の際に、USB規格に定められたデフォルト値以外の制御時間を使用した特殊制御を行うことができる。
また、特殊制御方法の他の例としては、ポート検索の検索方向を設定する、つまり、USBハブの複数のポートを検索する際の優先順位を設定することが挙げられる。かかる特殊制御方法の設定により、優先順位に従いUSBハブのポートを検索する特殊制御を行うことができる。
また、特殊制御方法の他の例としては、セット・ポート・フューチャー(Set Port Feature)を実施しなくするフラグの設定が挙げられる。セット・ポート・フューチャーとは、USB規格で定められたUSBハブに対するリクエストの一種でポートの状態を変化させるリクエストである。セット・ポート・フューチャーを実施しなくするフラグを設定した場合、そのUSBハブに接続されたポートの状態を変化させないという特殊制御を行うことができる。
また、特殊制御方法の他の例としては、USBハブの特定のポートを検索の対象外とする情報を設定することが挙げられる。かかる特殊制御方法の設定により、USBハブの特定のポートを検索しないという特殊制御を行うことができる。
また、特殊制御方法の他の例としては、デバイスが接続される可能性がないポートに対してはポートパワー(PORT_POWER)を実施しなくするフラグの設定が挙げられる。ポートパワー(PORT_POWER)は、ポートに対して電源供給を開始するためのリクエストである。ポートパワーを実施しなくするフラグを設定した場合、そのポートに対して電源供給を開始しないという特殊制御を行うことができ、省エネルギー化を図ることができる。
なお、一般に、セット・ポート・フューチャーはUSBハブの初期化処理時に使用される。セット・ポート・フューチャーについては、USB2.0仕様書(P435〜)に記載された事項に基づき定義される。
また、電子機器20及びUSBホストコントローラ40は図1に示した構成に限定されず、その構成要素の一部を省略したり、構成要素間の接続形態を変更したり、図1とは異なる構成要素を追加する変形実施が可能である。
例えばUSBホストコントローラ40において転送コントローラ100や処理部120やDMA処理部140等の構成を省く変形実施も可能である。また電子機器20において、図1に示した要素以外の構成要素(例えば操作部、表示部、ROM、RAM、撮像部又は電源等)を追加してもよい。
[リスト情報]
USBホストコントローラ40は、USBデバイス10を認識する際、予めUSBハブ80毎に以下の(1)〜(4)の4つの情報を設定することが可能である。そして、USBホストコントローラ40は、下記4つの情報に基づく特殊制御を自動で実行することが可能である。
(1)USBハブのトポロジ情報
(2)USBホストコントローラ名
(3)USBハブの認識処理時の特殊制御方法
(4)ポート毎の特殊制御方法
図2は、一のUSBホストコントローラ40を有する場合のリスト例である。通常、USBホストコントローラ40には、ルートハブと呼ばれる特別なハブが内蔵されている。図2の例では、一のUSBホストコントローラ40(hc_name"ehci0")に、ルートハブのようにデフォルトでUSBハブ80(uhub0)が接続されている。USBデバイス10は、このUSBハブ80(uhub0)のポート、又はUSBハブ80(uhub0)に接続された他のUSBハブのポートに接続される。本例では、USBハブ80(uhub0)のポート1にUSBハブ80a(uhub1)が接続され、USBハブ80a(uhub1)のポート5にUSBハブ80b(uhub2)が接続されている。複数のUSBデバイス10は、このUSBハブ80b(uhub2)の各ポートに接続されている。具体的には、図2では、USBメモリ10aがポート2に接続され、SDカードリーダ10bがポート4に接続され、操作部10cがポート1に接続されている。図2では操作部10c、図3ではNANDが起動時に必要なUSBデバイスとして取り扱われる。
本実施形態では、USBホストコントローラ40が、USBハブに設定された特殊制御方法に基づき、USBデバイスを自動制御する。その際、USBハブに対して以下の4項目の設定を必要とする。設定された4項目は、USBデバイス10の認識処理時にデバイスドライバであるUSBホストコントローラ40にて参照可能な場所にて記録しておく。
(1)USBハブのトポロジ情報として「トポロジ情報porttier(own_porttier)」を記録する。
(2)USBホストコントローラ名として「接続ホストコントローラ名(hc_name)」を記録する。
(3)USBハブの特殊制御方法として「USBハブ特殊制御(hub_quirk)」を記録する。
(4)ポート毎の特殊制御方法として「ポート毎の特殊制御(port_quirk)」を記録する。
各項目の詳細について以下に説明する。
(1)USBハブのトポロジ情報porttier(own_porttier)
USBハブ自身がトポロジ上でどこに接続されているかを一意に表すために「トポロジ情報porttier」という概念を使用する。「トポロジ情報porttier」は20bitの値を持つ。最下位の桁はルートハブのどのポートに接続されているデバイスなのかを表す。以降、階層のdepth(深さ)が1増えるごとに左にシフトして該当ポートのポート番号が設定されていく。階層のdepth(深さ)は、USBハブ80(uhub0)に対して、USBハブ80a(uhub1)、USBハブ80b(uhub2)と1つずつ深くなる。「トポロジ情報porttier」の最大値が20bitである理由は、USB仕様上ルートハブ(ここではUSBハブ80(uhub0))を除いてUSBハブは5段までしか接続できないためである。
(2)接続ホストコントローラ名(hc_name)
図3の複数のホストコントローラが存在している場合、トポロジ情報porttierのみでは一意のポートを指定することはできない。例えば、トポロジ情報porttierが「0x00000」であっても、ホストコントローラ名が設定されていないと、ohci0、ohci1、ehci0のどのポートに接続されているかまでは特定できない。そこで、各ホストコントローラを識別するためにホストコントローラ名を設定する必要がある。
図3では、複数のUSBホストコントローラ40a、40b、40cに対して接続ホストコントローラ名hc_name「ohci0」、「ohci1」、「ehci0」が付けられているので、トポロジ情報porttierと接続ホストコントローラ名hc_nameにより一意のポートを指定することができる。すなわち、トポロジ情報porttierと接続ホストコントローラ名hc_nameを指定することにより、各USBハブのポート毎の特殊制御方法をリスト化することができる。図3では、USBハブとしてルートハブが一つだけ存在する。よって、トポロジ情報porttierはすべて同じであり、同一ルートハブに接続されたホストコントローラ毎に「0x00000、"ohci0"」に対する特殊制御方法、「0x00000、"ohci1"」に対する特殊制御方法、「0x00000、"ehci0"」に対する特殊制御方法がそれぞれリスト化される。
なお、図2では、USBホストコントローラ40は一つであるため、接続ホストコントローラ名hc_nameはすべて同じ「ehci0」であり、同一ホストコントローラに接続されたUSBハブ毎に「0x00000、"ehci0"」に対する特殊制御方法、「0x00001、"ehci0"」に対する特殊制御方法、「0x00051、"ehci0"」に対する特殊制御方法がそれぞれリスト化される。もちろん、図2と図3とを組み合わせた構成であってもリスト化は可能である。
(3)USBハブの特殊制御方法(hub_quirk)
USBハブの特殊制御方法を「hub_quirk」に指定する。例えば、USBハブの特殊制御方法として、ポート番号の小さいポートから検索をするか、大きいポートから検索をするかを決めるフラグを設定する。
図2、3の例では、デフォルト値「0」に設定されている場合にはポート番号の小さい方から検索をする。一方、UHQ_HUB_CHECK_REVERSEが設定されている場合にはポート番号の大きい方から検索をする。ポート検索方向を指定することで起動時に必要となるデバイスを優先的に認識させ高速化を実現することができる、また、USBハブの特殊制御方法「hub_quirk」のその他の指定方法としては、ポート番号を優先したい順に指定することや、USBハブの特定のポートを検索の対象外とする指定方法も考えられる。
なお、USBハブ80a(uhub1)では、ポート番号の大きい方から検索するようにUHQ_HUB_CHECK_REVERSEのフラグが設定されている。USBハブ80(uhub0)及びUSBハブ80b(uhub2)はデフォルト値であるため、ポート番号の小さい方から検索する。
(4)ポートの特殊制御方法(port_quirk)
ポートの特殊制御方法を「port_quirk」に指定する。例えば、ポートの特殊制御方法として、各ポートに接続されるデバイスのディレイに関するフラグを設定する。フラグの例として、UHQ_PORT_NPSとUHQ_PORT_NMを挙げて以下に説明するが、フラグはこれに限られない。例えば、ポートの特殊制御方法には、下記USBデバイスの制御時間(応答時間)のためのフラグの他にも、USBデバイスが接続される可能性がないポートに対しては無駄な電力供給を避けるためにポートへの電力供給を停止するフラグを設定すること等が挙げられる。
各ポートに接続されるデバイスのディレイに関するフラグとして、UHQ_PORT_NPSを設定した場合、セット・ポート・フューチャー(Set Port Feature(PORT_POWER)後のディレイを省略することが可能である。これは、セルフパワーデバイスやデバイスが接続される可能性の無いポート用のフラグである(図4参照)。
UHQ_PORT_NMを設定した場合、そのUSBハブの全てのポートに対してのディレイにはマージンを加算しない。例えばセットアドレス(SetAddress)後のディレイのみマージンを加算したいといった場合などもポートの特殊制御方法(port_quirk)に新たにフラグを設ければ、少ない修正でポートの特殊制御方法が実現可能となるため、より本実施形態に係る特殊制御の拡張性が高くなる。
[特殊制御処理]
次に、本実施形態に係るUSBホストコントローラ40による特殊制御について、図4を参照しながら説明する。図4は、本実施形態に係る特殊制御処理を示したフローチャートである。
例えば、図4のリストA,Bに示したように、上記(1)〜(4)の情報をもつ構造体を一組の要素とした構造体の配列リストで管理する場合、まず、ステップS10にて、USBホストコントローラ40は、所定の記憶領域に記憶されたリスト群を検索する。USBホストコントローラ40は、デバイス認識処理中に親USBハブの(1)USBハブのトポロジ情報及び(2)USBホストコントローラ名が、どの配列リストに該当するかをリスト群から検索し、特定する。図4では、ステップS10にて、親USBハブの(1)USBハブのトポロジ情報及び(2)USBホストコントローラ名と一致したリストBが特定された場合を示す。
次に、ステップS12にて、USBホストコントローラ40は、セット・ポート・フューチャー(Set Port Feature(PORT_POWER))をUSBハブに対してリクエストする。このリクエストに応じてUSBハブは、各ポートの状態を変化させる。USBハブは、ポートパワー(PORT_POWER)に応じてポートに対して電源供給を開始する。ただし、配列リストにセット・ポート・フューチャーやポートパワーを実施しなくするフラグが設定されている場合には、そのポートに対してポート・フューチャーやポートパワーは実行しない。
次に、ステップS14にて、USBホストコントローラ40は、(3)USBハブの認識処理時の特殊制御方法として「USBハブ特殊制御(hub_quirk)」が存在し、各ポートに接続されるデバイスのディレイに関するフラグとして、(4)ポートの特殊制御方法(port_quirk)にUHQ_PORT_NPSが設定されているかを判定する。
USBハブ特殊制御(hub_quirk)が存在し、UHQ_PORT_NPSが設定されていると判定された場合、USBホストコントローラ40は、セット・ポート・フューチャー後のディレイを省略し、直ちにステップS18に進み、全ポートに対してセット・ポート・フューチャー(ポートパワー)を完了したかを判定する。USBホストコントローラ40は、完了したと判定されるまで、ステップS12に戻り、ステップS12〜S18の処理をポート毎に繰り返す。
一方、UHQ_PORT_NPSが設定されていないと判定された場合、ステップS16に進み、セット・ポート・フューチャー後、所定の制御時間だけディレイさせ、USBデバイス10からの応答を待った後、ステップS18に進み、全ポートに対してセット・ポート・フューチャー(ポートパワー)を完了したかを判定する。USBホストコントローラ40は、全ポートに対して処理を完了したと判定するまで、ステップS12に戻り、ステップS12〜S18の処理をポート毎に繰り返す。
以上に説明したように、本実施形態に係るUSBホストコントローラ40による制御では、(3)USBハブの特殊制御方法(hub_quirk)、及び(4)ポートの特殊制御方法(port_quirk)に応じて、(1)USBハブのトポロジ情報及び(2)USBホストコントローラ名にて特定されるUSBハブの該当ポートに対して特殊制御を実行する。これにより、該当ポートに接続されたUSBデバイス10に対する特殊制御が可能となる。
なお、外部接続のUSBハブのように上記特殊制御のための項目が未設定のものに関しては、本実施形態に係る特殊制御処理の上記検索(図4のステップS10)によりヒットされず、特殊制御の対象に特定されないため全てデフォルト値に基づき処理される。
以上に説明したように、本実施形態に係るUSBホストコントローラ40によれば、USBデバイス10が接続されるUSBハブのポート単位でUSBデバイスの特殊制御を行うことができる。これにより、USBデバイス10を認識できない問題を防止したり、USBデバイス10の接続されるUSBハブのポート単位での特殊制御を行うことによる起動時間やデバイス認識完了までの時間の高速化を図ることができる。
なお、USBハブ単位で特殊制御を行うことも可能である。
以上、添付図面を参照しながら本発明のコントローラ、該コントローラを含む電子機器及びUSBデバイスの制御方法に係る好適な実施形態について詳細に説明したが、本発明のコントローラ、該コントローラを含む電子機器及びUSBデバイスの制御方法の技術的範囲はかかる例に限定されない。本発明のコントローラ、該コントローラを含む電子機器及びUSBデバイスの制御方法の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明のコントローラ、該コントローラを含む電子機器及びUSBデバイスの制御方法の技術的範囲に属する。
10…USBデバイス、10a…USBメモリ、10b…SDカードリーダ、10c…層サブ、20…電子機器、30…メインCPU、40…USBホストコントローラ、80…USBハブ、100…転送コントローラ、120…処理部、130…レジスタ(登録部)、140…DMA処理部
特開2009−048444号公報

Claims (7)

  1. USB(Universal Serial Bus)を介してUSBデバイスと通信するためのコントローラであって、
    前記USBを介してUSBデバイスが接続されるUSBハブのトポロジ情報と、該USBハブに接続されるUSBデバイスを特殊制御するための特殊制御方法とを関連付けて登録する登録部と、
    前記登録された情報に基づき、USBデバイスが接続される前記USBハブのトポロジ情報に対応する前記特殊制御方法を特定する処理部と、
    前記処理部により特定された前記特殊制御方法に基づき、前記USBハブに接続されるUSBデバイスの制御を実行する前記USBハブと、
    を備え、
    前記登録部は、前記USBハブのトポロジ情報に関連付けて該USBハブに接続された複数のコントローラの識別情報を登録し、
    前記処理部は、前記登録されたトポロジ情報及び複数のコントローラの識別情報に基づき、USBデバイスが接続される前記USBハブのトポロジ情報及びコントローラの識別情報に対応する前記特殊制御方法を特定し、
    前記USBハブは、前記処理部により特定された前記特殊制御方法に基づき、前記識別情報を有するコントローラの前記USBハブに接続されるUSBデバイスの制御を実行することを特徴とするコントローラ。
  2. 前記登録部は、ポート毎に前記USBデバイスの特殊制御方法を登録し、
    前記処理部は、前記USBデバイスが接続されるUSBハブのポート毎に特殊制御方法を特定し、
    前記USBハブは、前記ポート毎に特定された特殊制御方法に基づき、ポート毎に前記USBデバイスの制御を実行することを特徴とする請求項1に記載のコントローラ。
  3. 前記登録部は、前記特殊制御方法として、USBハブの複数のポートを検索する際の優先順位を登録し、
    前記処理部は、前記優先順位が高いポートから順に前記特殊制御方法を特定し、
    前記USBハブは、前記特定された特殊制御方法に基づき、前記優先順位が高いポートから順に前記USBデバイスの制御を実行することを特徴とする請求項2に記載のコントローラ。
  4. 前記登録部は、前記特殊制御方法として、USBハブに接続されるUSBデバイスの応答のための制御時間であってUSB規格に準拠したディレイを含むデフォルト値以外の制御時間を登録し、
    前記処理部は、前記登録された前記デフォルト値以外の制御時間を特定し、
    前記USBハブは、前記特定されたデフォルト値以外の制御時間に基づき、前記USBデバイスの制御を実行することを特徴とする請求項1〜3のいずれか一項に記載のコントローラ。
  5. 前記登録部は、前記特殊制御方法として、USBハブの特定のポートを検索の対象外とする情報を登録し、
    前記処理部は、前記USBハブの特定のポートを検索の対象外とする情報を特定し、
    前記USBハブは、前記特定された前記ポートを検索の対象外とする情報に基づき、前記検索の対象外とされたポートを検索しない制御を実行することを特徴とする請求項1〜4のいずれか一項に記載のコントローラ。
  6. 請求項1〜5のいずれか一項に記載のコントローラと、
    バスを介して前記コントローラに接続されるホストCPUと、
    を備えることを特徴とする電子機器。
  7. USBを介してUSBデバイスと通信するためのコントローラによる前記USBデバイスの制御方法であって、
    前記USBを介してUSBデバイスが接続されるUSBハブのトポロジ情報と、該USBハブに接続されるUSBデバイスを特殊制御するための特殊制御方法とを関連付けて登録するステップと、
    前記登録された情報に基づき、USBデバイスが接続される前記USBハブのトポロジ情報に対応する前記特殊制御方法を特定するステップと、
    前記特定された前記特殊制御方法に基づき、前記USBハブに接続されるUSBデバイスの制御を実行するステップと、
    を含み、
    前記USBハブのトポロジ情報に関連付けて該USBハブに接続された複数のコントローラの識別情報を登録し、
    前記登録されたトポロジ情報及び複数のコントローラの識別情報に基づき、USBデバイスが接続される前記USBハブのトポロジ情報及びコントローラの識別情報に対応する前記特殊制御方法を特定し、
    前記USBハブは、特定された前記特殊制御方法に基づき、前記識別情報を有するコントローラの前記USBハブに接続されるUSBデバイスの制御を実行するUSBデバイスの制御方法。
JP2012142271A 2012-06-25 2012-06-25 コントローラ、電子機器及びusbデバイスの制御方法 Expired - Fee Related JP6136127B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012142271A JP6136127B2 (ja) 2012-06-25 2012-06-25 コントローラ、電子機器及びusbデバイスの制御方法
US13/905,550 US9098640B2 (en) 2012-06-25 2013-05-30 Controller, electronic equipment unit, and USB device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012142271A JP6136127B2 (ja) 2012-06-25 2012-06-25 コントローラ、電子機器及びusbデバイスの制御方法

Publications (2)

Publication Number Publication Date
JP2014006726A JP2014006726A (ja) 2014-01-16
JP6136127B2 true JP6136127B2 (ja) 2017-05-31

Family

ID=49775404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012142271A Expired - Fee Related JP6136127B2 (ja) 2012-06-25 2012-06-25 コントローラ、電子機器及びusbデバイスの制御方法

Country Status (2)

Country Link
US (1) US9098640B2 (ja)
JP (1) JP6136127B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9070199B2 (en) 2012-10-02 2015-06-30 Apple Inc. Sharing a graphics-processing-unit display port
TWI497306B (zh) * 2012-11-29 2015-08-21 Faraday Tech Corp 超高速通用序列匯流排集線器及其相關流量管理方法
CN103106167B (zh) 2013-01-22 2015-12-02 矽力杰半导体技术(杭州)有限公司 一种usb设备及其控制方法
US20140280960A1 (en) * 2013-03-15 2014-09-18 Apple, Inc. Methods and apparatus for dynamically allocating devices between multiple controllers
US9081705B2 (en) * 2013-06-11 2015-07-14 Apple Inc. Methods and apparatus for reliable detection and enumeration of devices
US10860522B2 (en) * 2017-05-19 2020-12-08 Intel Corporation Method and apparatus for controlling USB-C connectors on system with multiple host controllers
JP7062500B2 (ja) 2018-04-17 2022-05-06 Dynabook株式会社 電子機器、接続方法及びプログラム
JP2020035293A (ja) 2018-08-31 2020-03-05 Dynabook株式会社 電子機器及び制御方法
US11940855B2 (en) * 2019-10-14 2024-03-26 Intel Corporation Apparatus and method for dynamic reallocation of processor power by throttling processor to allow an external device to operate

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007307A (ja) * 2000-06-23 2002-01-11 Fuji Photo Film Co Ltd 機器制御装置及び方法
JP2004157604A (ja) * 2002-11-01 2004-06-03 Matsushita Electric Ind Co Ltd Usb機器制御方法および装置
US6959355B2 (en) * 2003-02-24 2005-10-25 Standard Microsystems Corporation Universal serial bus hub with shared high speed handler
US6854984B1 (en) * 2003-09-11 2005-02-15 Super Talent Electronics, Inc. Slim USB connector with spring-engaging depressions, stabilizing dividers and wider end rails for flash-memory drive
JP2009048444A (ja) * 2007-08-21 2009-03-05 Seiko Epson Corp Usbデバイスの制御方法、コントローラ及び電子機器
JP5029379B2 (ja) * 2008-01-18 2012-09-19 セイコーエプソン株式会社 ノード管理装置、ノード、ノード管理方法およびコンピュータプログラム
JP4561873B2 (ja) * 2008-05-16 2010-10-13 コニカミノルタビジネステクノロジーズ株式会社 情報処理装置
US20110016253A1 (en) * 2009-07-16 2011-01-20 Musa Ibrahim Kakish Auto-function USB port
JP5391918B2 (ja) 2009-08-10 2014-01-15 株式会社リコー 情報処理装置、情報処理方法、及び情報処理プログラム
US8135883B2 (en) * 2010-01-19 2012-03-13 Standard Microsystems Corporation USB hub apparatus supporting multiple high speed devices and a single super speed device
JP5541021B2 (ja) * 2010-09-09 2014-07-09 富士通株式会社 スイッチ装置

Also Published As

Publication number Publication date
US9098640B2 (en) 2015-08-04
JP2014006726A (ja) 2014-01-16
US20130346650A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
JP6136127B2 (ja) コントローラ、電子機器及びusbデバイスの制御方法
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
US10592253B2 (en) Technologies for pre-memory phase initialization of a computing device
US20160006620A1 (en) Hardware management and control of computer components through physical layout diagrams
US8990486B2 (en) Hardware and file system agnostic mechanism for achieving capsule support
WO2017020647A1 (zh) 基于新型存储器的嵌入式文件系统及其实现方法
US8271707B2 (en) Method and system for PCI hybrid function
CN101650660A (zh) 从中央存储装置引导计算机系统
US7921230B2 (en) USB devices pre-configuration for KVM switch
CN104679540A (zh) 计算机系统与计算机系统启动方法
JP2009193301A (ja) 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム
JP6198843B2 (ja) ハードディスクシステム操作方法、ストレージシステム及びプロセッサ
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
US8291436B2 (en) Synchronization of event handlers
WO2020206879A1 (zh) Pcie宽度自动适配方法、装置及电子设备和存储介质
US10616944B2 (en) Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS
US8499142B1 (en) UEFI boot loader for loading non-UEFI compliant operating systems
US20100017588A1 (en) System, method, and computer program product for providing an extended capability to a system
US20150178094A1 (en) Multisystem and method of booting the same
JP5794266B2 (ja) Usbホスト装置、及びusbホスト装置用のプログラム
TWI441026B (zh) 電子裝置及usb設備的移除策略設定方法
US20090210589A1 (en) Dynamic Vital Product Data Update Based on an Installed Feature Card
CN107301037B (zh) 操作系统内核的加载方法和装置
JP2011215889A (ja) 情報処理装置及びその起動方法
US9086895B1 (en) Controlling hardware driver selection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161125

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: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R151 Written notification of patent or utility model registration

Ref document number: 6136127

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees