(57)【要約】【課題】リモートウェイクアップ機能を備えるＵＳＢデバイスを正しく認識することができるＵＳＢコントローラを提供することである。【解決手段】一実施の形態にかかるＵＳＢコントローラは、ＵＳＢデバイス３０が接続されるポート１３の状態を設定するポート設定部１２と、接続されたＵＳＢデバイス３０の種類を検出するデバイス検出部１１と、を備える。デバイス検出部１１は、ポート１３がサスペンド状態の場合に、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか否かを検出する。ポート設定部１２は、ＵＳＢデバイス３０がリモートウェイクアップ機能を備える場合、ポート１３をＵＳＢデバイス３０から出力されるリモートウェイクアップ信号を受信可能な状態に設定する。【選択図】図１
2014123312.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢデバイスが接続されるポートの状態を設定するポート設定部と、
接続されたＵＳＢデバイスの種類を検出するデバイス検出部と、を備え、
前記デバイス検出部は、前記ポートがサスペンド状態の場合に、前記接続されたＵＳＢデバイスがリモートウェイクアップ機能を備えるか否かを検出し、
前記ポート設定部は、前記接続されたＵＳＢデバイスがリモートウェイクアップ機能を備える場合、前記ポートを前記ＵＳＢデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する、
ＵＳＢコントローラ。
【請求項２】
前記ポート設定部は、前記接続されたＵＳＢデバイスがリモートウェイクアップ機能を備えない場合、前記ポートを充電モードに設定する、
請求項１に記載のＵＳＢコントローラ。
【請求項３】
前記リモートウェイクアップ信号を受信した場合、前記ポートはサスペンド状態からアクティブ状態に遷移する、請求項１に記載のＵＳＢコントローラ。
【請求項４】
前記接続されたＵＳＢデバイスの通信速度に基づき、前記ＵＳＢデバイスが前記リモートウェイクアップ機能を有するか判定する、請求項１に記載のＵＳＢコントローラ。
【請求項５】
前記ＵＳＢデバイスの通信速度が、ＵＳＢ１．１で規定されたＬＳ（Low Speed）モードまたはＦＳ（Full Speed）モードである場合に、前記ＵＳＢデバイスが前記リモートウェイクアップ機能を有すると判定する、請求項４に記載のＵＳＢコントローラ。
【請求項６】
前記ポートがサスペンド状態からアクティブ状態に遷移した場合、前記ポートは前記ＵＳＢデバイスへの電力供給および前記ＵＳＢデバイスとのデータ通信を実施する、請求項３に記載のＵＳＢコントローラ。
【請求項７】
前記ポートは、前記充電モードに設定された場合、前記ＵＳＢデバイスへの電力供給のみを実施する、請求項２に記載のＵＳＢコントローラ。
【請求項８】
前記ＵＳＢデバイスおよび前記ポートは、第１および第２の電源線並びに第１および第２の信号線を介して接続され、
前記ポートが前記充電モードに設定された場合、前記ポート設定部は前記第１および第２の信号線を所定の電位に固定する、
請求項１に記載のＵＳＢコントローラ。
【請求項９】
前記ポートが前記充電モードに設定された場合、前記ポート設定部は前記第１および第２の信号線を短絡する、請求項８に記載のＵＳＢコントローラ。
【請求項１０】
ポートがサスペンド状態の場合に、当該ポートに接続されたＵＳＢデバイスがリモートウェイクアップ機能を備えるか否かを検出し、
前記接続されたＵＳＢデバイスがリモートウェイクアップ機能を備える場合は、前記ポートを前記ＵＳＢデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する、
ＵＳＢコントローラの制御方法。
【請求項１１】
前記接続されたＵＳＢデバイスがリモートウェイクアップ機能を備えない場合、前記ポートを充電モードに設定する、請求項１０に記載のＵＳＢコントローラの制御方法。
【請求項１２】
前記リモートウェイクアップ信号を受信した場合、前記ポートはサスペンド状態からアクティブ状態に遷移する、請求項１０に記載のＵＳＢコントローラの制御方法。
【請求項１３】
前記接続されたＵＳＢデバイスの通信速度に基づき、前記ＵＳＢデバイスが前記リモートウェイクアップ機能を有するか判定する、請求項１０に記載のＵＳＢコントローラの制御方法。
【請求項１４】
前記ＵＳＢデバイスの通信速度が、ＵＳＢ１．１で規定されたＬＳ（Low Speed）モードまたはＦＳ（Full Speed）モードである場合に、前記ＵＳＢデバイスが前記リモートウェイクアップ機能を有すると判定する、請求項１３に記載のＵＳＢコントローラの制御方法。
【請求項１５】
前記ポートがサスペンド状態からアクティブ状態に遷移した場合、前記ポートは前記ＵＳＢデバイスへの電力供給および前記ＵＳＢデバイスとのデータ通信を実施する、請求項１２に記載のＵＳＢコントローラの制御方法。
【請求項１６】
前記ポートは、前記充電モードに設定された場合、前記ＵＳＢデバイスへの電力供給のみを実施する、請求項１１に記載のＵＳＢコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＵＳＢコントローラおよびその制御方法に関し、例えばリモートウェイクアップ機能を備えるＵＳＢデバイスに対応可能なＵＳＢコントローラおよびその制御方法に関する。
【背景技術】
【０００２】
昨今、パーソナルコンピュータや携帯端末機器など多くの電子機器は、ＵＳＢ（Universal Serial Bus）インタフェースを備える。ＵＳＢインタフェースを介して電子機器と接続されたＵＳＢデバイスは、電子機器とデータ通信を行うことができる。また、ＵＳＢデバイスは、ＵＳＢインタフェースを介して電子機器から電力の供給を受けることができる。
【０００３】
特許文献１には、自動的にデバイスに合った給電の設定が可能な情報処理装置に関する技術が開示されている。特許文献２には、ディスプレイ装置がスタンバイモードである場合に、ディスプレイ装置を用いて外部機器を充電する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２５７４９３号公報
【特許文献２】特開２０１２−１２０４３３号公報
【非特許文献】
【０００５】
【非特許文献１】Battery Charging Specification (Revision 1.2) December 7, 2010, USB Implementers Forum, Inc.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
背景技術で説明したように、ＵＳＢインタフェースはＵＳＢデバイスに電力を供給することができる。このため、携帯型音楽プレーヤー、スマートフォン、タブレット端末等のＵＳＢデバイスのバッテリを、ＵＳＢインタフェースを介して供給される電力を用いて充電することができる。
【０００７】
例えば、ＵＳＢポート（以下、単にポートとも記載する）がサスペンド状態の場合に、ＵＳＢコントローラを用いて当該ポートを充電モードに設定することで、データ通信を行わない場合でもＵＳＢデバイスを充電することができる。
【０００８】
しかしながら、一度ポートを充電モードに設定すると、当該ポートはリモートウェイクアップ信号を受信することができなくなる。このため、充電モードに設定されたポートにリモートウェイクアップ機能を備えるＵＳＢデバイスが接続されてもＵＳＢデバイスを認識することができないという問題があった。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態かかるＵＳＢコントローラおよびその制御方法では、ポートがサスペンド状態の場合に、ＵＳＢポートに接続されたＵＳＢデバイスがリモートウェイクアップ機能を備えるか否かを検出し、接続されたＵＳＢデバイスがリモートウェイクアップ機能を備える場合、ポートをＵＳＢデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する。
【発明の効果】
【００１１】
前記一実施の形態によれば、リモートウェイクアップ機能を備えるＵＳＢデバイスを正しく認識することができるＵＳＢコントローラおよびその制御方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかるＵＳＢコントローラを示すブロック図である。
【図２】ＵＳＢデバイスとポートとの接続状態を説明するための図である。
【図３】実施の形態１にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。
【図４】実施の形態２にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。
【図５】実施の形態２にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。
【図６】ＵＳＢデバイスの種類の判定に用いられるテーブルの一例である。
【図７】ＵＳＢデバイスの種類の判定に用いられるテーブルの他の例である。
【図８】実施の形態３にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
図１は、実施の形態１にかかるＵＳＢコントローラを示すブロック図である。図１に示すように本実施の形態にかかるＵＳＢコントローラ１０は、デバイス検出部１１とポート設定部１２とを備える。また、ＵＳＢコントローラ１０の下流側はポート（ダウンストリームポート）１３と接続されている。ポート１３の数は任意に決定することができる。ポート１３にはケーブル２０を介してＵＳＢデバイス３０が接続される。また、ＵＳＢコントローラ１０の上流側（アップストリームポート）１４は、上位の装置やバス等と接続されている。
【００１４】
例えば、ＵＳＢコントローラ１０がＵＳＢホストコントローラである場合、ＵＳＢコントローラ１０の上流側１４は、バス（例えば、ＰＣＩバス）を介して所定のシステムと接続される。また、例えばＵＳＢコントローラ１０がＵＳＢハブコントローラである場合、ＵＳＢコントローラ１０の上流側１４は、ＵＳＢホストコントローラ（不図示）と接続される。つまり、ＵＳＢハブコントローラは、上流側に位置するＵＳＢホストコントローラと下流側に位置するＵＳＢデバイスとの間に設けられる。
【００１５】
なお、本明細書において、「ＵＳＢコントローラ」はＵＳＢホストコントローラとＵＳＢハブコントローラの両方を含むものとする。つまり、本実施の形態にかかる技術は、ＵＳＢホストコントローラとＵＳＢハブコントローラの両方に適用することができる。また、ＵＳＢコントローラはアップストリームポートとダウンストリームポートを備えるが、本実施の形態にかかる技術はダウンストリームポートに着目した技術であるため、以下ではダウンストリームポートの構成および動作を中心に説明する。
【００１６】
図２は、ＵＳＢデバイス３０とポート１３との接続状態を説明するための図である。図２に示すように、ＵＳＢデバイス３０およびポート１３は、電源線（ＶＢＵＳ、ＧＮＤ）と信号線（Ｄ＋、Ｄ−）を介して接続されている。換言すると、ＵＳＢデバイス３０およびポート１３は、電源線（ＶＢＵＳ、ＧＮＤ）と信号線（Ｄ＋、Ｄ−）とを備えるケーブル２０を用いて接続される。なお、図１、図２では、ＵＳＢデバイス３０とポート１３とがケーブル２０を用いて接続されている場合を例として示した。しかし、ＵＳＢデバイス３０が備える端子とポート１３が備える端子とが直接接続されるように構成してもよい。
【００１７】
図１に示すＵＳＢコントローラ１０が備えるデバイス検出部１１は、接続されたＵＳＢデバイス３０の種類を検出する。このとき、デバイス検出部１１は、ポート１３がサスペンド状態の場合に、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか否かを検出する。例えば、デバイス検出部１１は、ＵＳＢデバイス３０の通信速度に基づき、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか判定することができる。具体的には、ＵＳＢデバイス３０の通信速度が、ＵＳＢ１．１で規定されたＬＳ（Low Speed）モードまたはＦＳ（Full Speed）モードである場合に、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えると判定することができる。リモートウェイクアップ機能を備えるＵＳＢデバイス３０としては、例えばキーボード、マウス、テンキー等のＨＩＤ（Human Interface Device）クラスのＵＳＢデバイスが挙げられる。
【００１８】
ポート設定部１２は、ＵＳＢデバイス３０が接続されるポート１３の状態を設定する。具体的には、ポート設定部１２は、接続されたＵＳＢデバイス３０がリモートウェイクアップ機能を備えるとデバイス検出部１１において判定された場合、ポート１３を待機状態に設定する。ここで、待機状態とは、ＵＳＢデバイス３０から出力されるリモートウェイクアップ信号を受信可能な状態（サスペンド状態）である。その後、ポート１３がリモートウェイクアップ信号を受信すると、ポート１３はサスペンド状態からアクティブ状態（非サスペンド状態）に遷移する。ポート１３がサスペンド状態からアクティブ状態に遷移すると、ポート１３はＵＳＢデバイス３０への電力供給およびＵＳＢデバイス３０とのデータ通信を実施する。
【００１９】
一方、ポート設定部１２は、接続されたＵＳＢデバイス３０がリモートウェイクアップ機能を備えないとデバイス検出部１１において判定された場合、ポート１３を充電モードに設定する。充電モードに設定された場合、ポート１３は電源線ＶＢＵＳ、ＧＮＤ（図２参照）を介してＵＳＢデバイス３０に電力を供給する。充電モードに設定された場合、ポート１３は、ＵＳＢデバイス３０への電力供給のみを実施する。このとき、ポート設定部１２は信号線Ｄ＋、Ｄ−を所定の電位に固定する。
【００２０】
ＵＳＢポートを用いた充電については、ＵＳＢ−ＩＦ（USB Implementers Forum, Inc.）により、"Battery Charging Specification (Revision 1.2) December 7, 2010"の規格（以下、「Battery Charging Specification」と記載する）が制定されている。この規格により、ＵＳＢデバイス３０は、電源線ＶＢＵＳ、ＧＮＤと信号線Ｄ＋、Ｄ−とを用いて、ポート１３の状態（充電モード）を識別することができる。例えば、ポート１３の信号線Ｄ＋、Ｄ−が所定の抵抗を介して短絡されている場合、ＵＳＢデバイス３０は、ポート１３がＤＣＰ（Dedicated Charging Port）に設定されていると認識することができる。
【００２１】
また、Battery Charging Specificationで定義されている充電モード以外にも、任意の充電モード（ベンダー固有の充電モード）に設定することができる。任意の充電モードでは、ポート１３の信号線Ｄ＋、Ｄ−は所定の電圧レベル（例えば、Ｄ＋：２．０Ｖ、Ｄ−：１．７Ｖ）に固定される。このようにポート１３の信号線Ｄ＋、Ｄ−が所定の電圧レベルに固定されることで、ＵＳＢデバイス３０はポート１３が任意の充電モード（ベンダー固有の充電モード）に設定されていると認識することができる。
【００２２】
ＵＳＢデバイス３０は、充電モードに応じて、ポート１３の電源線ＶＢＵＳ、ＧＮＤから供給される電力を用いてバッテリを充電することができる。
【００２３】
次に、本実施の形態にかかるＵＳＢコントローラ１０の動作について、図３に示すフローチャートを用いて説明する。まず、ＵＳＢコントローラ１０が備えるデバイス検出部１１は、ＵＳＢデバイス３０がポート１３に接続されたか判定する（ステップＳ１）。デバイス検出部１１は、ＵＳＢデバイス３０がポート１３に接続されるまでステップＳ１の動作を繰り返す。
【００２４】
ＵＳＢデバイス３０がポート１３に接続されると（ステップＳ１：Ｙｅｓ）、ＵＳＢコントローラ１０はポート１３がサスペンド状態であるか判定する（ステップＳ２）。ポート１３がサスペンド状態でない場合、つまり、アクティブ状態の場合（ステップＳ２：Ｎｏ）、ポート１３はＵＳＢデバイス３０への電力供給およびＵＳＢデバイス３０とのデータ通信を実行する（ステップＳ９）。
【００２５】
一方、ポート１３がサスペンド状態である場合（ステップＳ２：Ｙｅｓ）、デバイス検出部１１は、接続されたＵＳＢデバイス３０の種類を検出する。つまり、デバイス検出部１１は、ポート１３がサスペンド状態の場合に、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか否かを検出する。このとき、デバイス検出部１１は、ＵＳＢデバイス３０の通信速度に基づき、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか判定してもよい。具体的には、ＵＳＢデバイス３０の通信速度が、ＵＳＢ１．１で規定されたＬＳ（Low Speed）モードまたはＦＳ（Full Speed）モードである場合に、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えると判定することができる。
【００２６】
接続されたＵＳＢデバイス３０がリモートウェイクアップ機能を備えないとデバイス検出部１１において判定された場合（ステップＳ４：Ｎｏ）、ポート設定部１２はポート１３を充電モードに設定する（ステップＳ６）。充電モードに設定された場合、ポート１３は電源線ＶＢＵＳ、ＧＮＤ（図２参照）を介してＵＳＢデバイス３０に電力を供給する。ＵＳＢデバイス３０は、ポート１３の電源線ＶＢＵＳ、ＧＮＤから供給される電力を用いてバッテリを充電する。このとき、例えばポート設定部１２は信号線Ｄ＋、Ｄ−を所定の抵抗を介して短絡してもよい。これにより、ＵＳＢデバイス３０は、ポート１３がＤＣＰに設定されていると認識することができる。また、例えば信号線Ｄ＋、Ｄ−が所定の電圧レベル（例えば、Ｄ＋：２．０Ｖ、Ｄ−：１．７Ｖ）に固定されている場合、ＵＳＢデバイス３０は、ポート１３が任意の充電モード（ベンダー固有の充電モード）に設定されていると認識することができる。
【００２７】
一方、接続されたＵＳＢデバイス３０がリモートウェイクアップ機能を備えるとデバイス検出部１１において判定された場合（ステップＳ４：Ｙｅｓ）、ポート設定部１２は、ポート１３を、ＵＳＢデバイス３０から出力されるリモートウェイクアップ信号を受信可能な状態（サスペンド状態）に設定する（ステップＳ５）。その後、ＵＳＢコントローラ１０は、リモートウェイクアップ信号を受信したか判定する（ステップＳ７）。ＵＳＢコントローラ１０は、リモートウェイクアップ信号を受信するまでステップＳ７の動作を繰り返す。
【００２８】
そして、ポート１３がリモートウェイクアップ信号を受信すると（ステップＳ７：Ｙｅｓ）、ポート１３はサスペンド状態からアクティブ状態に遷移する（ステップＳ８）。ポート１３がサスペンド状態からアクティブ状態に遷移すると、ポート１３はＵＳＢデバイス３０への電力供給およびＵＳＢデバイス３０とのデータ通信を実施する（ステップＳ９）。
【００２９】
背景技術で説明したように、ＵＳＢインタフェースはＵＳＢデバイスに電力を供給することができる。このため、携帯型音楽プレーヤー、スマートフォン、タブレット端末等のＵＳＢデバイスのバッテリを、ＵＳＢインタフェースを介して供給される電力を用いて充電することができる。
【００３０】
例えば、ＵＳＢポートがサスペンド状態の場合に、ＵＳＢコントローラを用いて当該ポートを充電モードに設定することで、データ通信を行わない場合でもＵＳＢデバイスを充電することができる。
【００３１】
しかしながら、一度ポートを充電モードに設定すると、当該ポートはリモートウェイクアップ信号を受信することができなくなる。このため、充電モードに設定されたポートにリモートウェイクアップ機能を備えるＵＳＢデバイスが接続されてもＵＳＢデバイスを認識することができないという問題があった。
【００３２】
ＵＳＢポートにＵＳＢデバイスが接続された場合、ＵＳＢコントローラは、例えば、信号線Ｄ＋、Ｄ−の電圧が、Ｄ＋：０Ｖ／Ｄ−：０Ｖの状態からＤ＋：３Ｖ／Ｄ−：０Ｖの状態に変化したことを検出することで、デバイスの接続を検出することができる。また、ＵＳＢコントローラは、例えば、信号線Ｄ＋、Ｄ−の電圧が、Ｄ＋：３Ｖ／Ｄ−：０Ｖの状態からＤ＋：０Ｖ／Ｄ−：３Ｖの状態に変化したことを検出することで、リモートウェイクアップ状態を検出することができる。
【００３３】
ここで、ＵＳＢポートを用いた充電については、ＵＳＢ−ＩＦにより、Battery Charging Specificationが制定されている。この規格により、ＵＳＢデバイスは、電源線ＶＢＵＳ、ＧＮＤと信号線Ｄ＋、Ｄ−とを用いて、ＵＳＢポートの状態（充電モード）を識別することができる。例えば、ＵＳＢポートがＤＣＰ（Dedicated Charging Port）に設定されている場合、ＵＳＢポートの信号線Ｄ＋、Ｄ−は所定の抵抗を介して短絡される。また、ＵＳＢポートが任意の充電モード（ベンダー固有の充電モード）に設定されている場合、ＵＳＢポートの信号線Ｄ＋、Ｄ−は所定の電圧レベルに固定される。
【００３４】
しかしながら、ＵＳＢポートの信号線Ｄ＋、Ｄ−を短絡したり、信号線Ｄ＋、Ｄ−の電圧レベルを固定したりすると、ＵＳＢコントローラは信号線Ｄ＋、Ｄ−のレベル変化を検出することができない。このため、リモートウェイクアップ機能を備えるＵＳＢデバイスがＵＳＢポートに接続されても、ＵＳＢデバイスを認識することができないという問題があった。
【００３５】
そこで本実施の形態では、デバイス検出部１１において、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えるか否かを検出している。そして、ＵＳＢデバイス３０がリモートウェイクアップ機能を備える場合、ポート設定部１２は、ポート１３を充電モードに設定するのではなく、ＵＳＢデバイス３０から出力されるリモートウェイクアップ信号を受信可能な状態に設定している。
【００３６】
よって、リモートウェイクアップ機能を備えるＵＳＢデバイスを正しく認識することができるＵＳＢコントローラおよびその制御方法を提供することができる。
【００３７】
＜実施の形態２＞
次に、実施の形態２について説明する。図４、図５は、本実施の形態にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。なお、本実施の形態にかかるＵＳＢコントローラの基本的な構成は、図１に示したＵＳＢコントローラと同様であるので重複した説明は省略する。
【００３８】
図４のフローチャートに示すように、まず、ＵＳＢコントローラ１０は、ポート１３のＶＢＵＳ信号をオン状態にする（ステップＳ１１）。ＶＢＵＳ信号をオン状態にすることで、ポート１３にＵＳＢデバイス３０が接続された際に、ＵＳＢデバイス３０はポート１３への接続を検知することができる。次に、ＵＳＢコントローラ１０は、ＵＳＢ−ＩＦによるBattery Charging Specificationの3.2.4.2や3.2.5.2で定義されている定電流回路（ＩＤＰ_ＳＩＮＫ）をオン状態にする。定電流回路（ＩＤＰ_ＳＩＮＫ）をオン状態にすることで、ポート１３に接続されたＵＳＢデバイスがBattery Charging Specificationで定義されている"Portable Device"であるか検出することができる。
【００３９】
ＵＳＢコントローラ１０は、既にBattery Chargingプロトコルを実行した場合は（ステップＳ１３：Ｙｅｓ）、Connect状態に遷移し、定電流回路（ＩＤＰ_ＳＩＮＫ）をオフ状態にして（ステップＳ１４）、以降、ＵＳＢ通信を行う。一方、Battery Chargingプロトコルを未実行の場合（ステップＳ１３：Ｎｏ）、Connect状態への遷移を行わない。
【００４０】
ポート１３は、ＵＳＢコントローラ１０の制御ソフトウェアによる設定あるいは接続デバイスとの通信状態によっては、サスペンド状態の場合またはアクティブ状態（非サスペンド状態）の場合がある。ポート１３がサスペンド状態ではない場合（ステップＳ１５：Ｎｏ）、接続されたＵＳＢデバイス３０が"Portable Device"であるか判定する。そして、接続されたＵＳＢデバイス３０が"Portable Device"でない場合は（ステップＳ１６：Ｎｏ）、ステップＳ１３以降の動作を繰り返す。ここで、"Portable Device"ではないと判断される場合とは、Battery Charging Specificationの3.2.4.2や3.2.5.2で定義されている"PRTBL_DET信号"が"０"の場合である。
【００４１】
一方、接続されたＵＳＢデバイス３０が"Portable Device"である場合、つまり"PRTBL_DET信号"が"１"の場合（ステップＳ１６：Ｙｅｓ）、ポート１３はＣＤＰ（Charging Downstream Port）として機能する。この場合、ＵＳＢデバイス３０は、ＣＤＰ機能を備えるポートに接続されたことを検知することができる。その後、Battery Charging Specificationの"3.4.2 Detection Timing, CDP"に定義されているように、ＣＤＰ検出動作完了後、ポート１３およびＵＳＢデバイス３０はConnect状態に遷移してＵＳＢ通信を行う。
【００４２】
ステップＳ１５においてポート１３がサスペンド状態であると判定された場合（ステップＳ１５：Ｙｅｓ）、リモートウェイクアップ信号がイネーブルであるか判定する（ステップＳ１８）。ここで、リモートウェイクアップ信号は、例えば"Connect"、"Disconnect"、"Over-Current"イベントに基づくリモートウェイクアップ信号である。リモートウェイクアップ信号がイネーブルに設定されている場合は（ステップＳ１８：Ｙｅｓ）、ステップＳ１３以降の動作を繰り返す。
【００４３】
一方、リモートウェイクアップ信号がイネーブルに設定されていない場合、つまり、リモートウェイクアップ信号が無効である場合（ステップＳ１８：Ｎｏ）、ポート１３がサスペンド状態であるか判定する（ステップＳ１９）。例えば、接続されたＵＳＢデバイス３０からのリモートウェイクアップ信号などによって、ステップＳ１９の判定時点においてサスペンド状態が解除されていたら、ステップＳ１６以降の動作を行う（ステップＳ１９：Ｎｏ）。依然としてポート１３がサスペンド状態である場合は（ステップＳ１９：Ｙｅｓ）、ＵＳＢデバイスの種類を判定する（ステップＳ２０）。以下で、ＵＳＢデバイス３０の種類を判定する動作について詳細に説明する。
【００４４】
図６は、ＵＳＢデバイス３０の種類を判定する際に用いられるテーブルの一例である。例えばＵＳＢデバイスが未接続となった場合は図６に示すテーブルＡのケース（ａ）となる。この場合は判定結果Ｂとなり（ステップＳ２０：判定Ｂ）、ポート１３を充電用のポートとして用いることができる。この場合、ポート１３は、ＤＣＰモードや他の充電モード（ベンダー固有の充電モード）に移行する。そして、新規に接続されたＵＳＢデバイス３０がＤＣＰモードや他の充電モードに対応したＵＳＢデバイスである場合、ポート１３を用いて充電することができる。ポート１３を充電用のポートとして用いる場合については、図５を用いて後で詳細に説明する。
【００４５】
また、接続されているＵＳＢデバイス３０の通信速度が、ＵＳＢ１．１で規定されたＬＳ（Low Speed）モードまたはＦＳ（Full Speed）モードである場合、図６に示すテーブルＡのケース（ｂ）、（ｃ）となる。この場合は判定結果Ａとなり、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えると判定される。つまり、リモートウェイクアップ機能を備えるＵＳＢデバイスは、通常、キーボードやマウスなど、ＬＳモードやＦＳモードで接続されるデバイスである。また、一般的に、これらのデバイスはBattery Charging Specificationに定められている充電は行わない。よって、接続されているＵＳＢデバイス３０の通信速度が、ＬＳモードまたはＦＳモードである場合、リモートウェイクアップ機能を備えるＵＳＢデバイスと判定することができる。
【００４６】
この場合は、ステップＳ２０の判定が判定Ａとなるので、ＤＣＰモードや他の充電モードに移行することなく、ステップＳ１９〜ステップＳ２０のループを繰り返しながらサスペンド状態に留まる。そして、ＵＳＢデバイス３０からリモートウェイクアップ信号が出力されるとサスペンド状態が解除されて（ステップＳ１９：Ｎｏ）、ステップＳ１６以降の動作へと移る。
【００４７】
また、接続されているＵＳＢデバイス３０の通信速度がＵＳＢ２．０で規定されたＨＳ（High Speed）モードであり、且つ、Battery Charging Specificationで定義されている"Portable Device"ではない場合、図６に示すテーブルＡのケース（ｄ）となる。つまり、ベンダーが供給するＵＳＢデバイス（例えば、携帯型音楽プレーヤーなど）は、ベンダー固有の充電モードに対応しており、"Portable Device"としては認識されない場合がある。また、これらのＵＳＢデバイスは、ＨＳモードで動作するデバイスがほとんどである。
【００４８】
よって、この場合は判定結果Ｂとなり（ステップＳ２０：判定Ｂ）、ポート１３は、ＤＣＰモードや他の充電モード（ベンダー固有の充電モード）に移行する。これにより、ポート１３を用いてＵＳＢデバイス３０を充電することができる。
【００４９】
また、接続されているＵＳＢデバイス３０の通信速度がＵＳＢ２．０で規定されたＨＳ（High Speed）モードであり、且つ、サスペンド状態に遷移する前に既にステップＳ１６で "Portable Device"と認識されてＣＤＰモードで動作したことがある場合は、図６に示すテーブルＡのケース（ｅ）となる。この場合は判定結果Ａとなり（ステップＳ２０：判定Ａ）、ＤＣＰモードや他の充電モードに移行することなく、ステップＳ１９〜ステップＳ２０のループを繰り返しながらサスペンド状態に留まる。そして、サスペンド状態が解除されると（ステップＳ１９：Ｎｏ）、ステップＳ１６以降の動作へと移る。
【００５０】
なお、ケース（ｅ）については、図７に示すテーブルＡ'のケース（ｅ）'のように判定してもよい。つまり、接続されているＵＳＢデバイス３０の通信速度がＵＳＢ２．０で規定されたＨＳ（High Speed）モードである場合は、"Portable Device"であるか否かにかかわらず、判定結果を判定Ｂとしてもよい。この場合は判定結果Ｂであるので（ステップＳ２０：判定Ｂ）、ポート１３は、ＤＣＰモードや他の充電モード（ベンダー固有の充電モード）に移行する。これにより、ポート１３を用いてＵＳＢデバイス３０を充電することができる。
【００５１】
次に、ステップＳ２０における判定結果が判定Ｂである場合の動作、つまり、ポート１３を充電用のポートとして用いる場合の動作について、図５に示すフローチャートを用いて説明する。ステップＳ２０において判定Ｂとされた場合、ポート１３はBattery Charging Specificationで定義されているＤＣＰモード、またはベンダーにより定義されている他の充電モード（ベンダー固有の充電モード）に設定される。
【００５２】
Battery Charging Specificationでは、充電モードが変わる場合は、一度、ＶＢＵＳをオフにするように規定されている。このため、ＵＳＢコントローラ１０は、ＶＢＵＳをオフ状態にする（ステップＳ２１）。次に、ＵＳＢコントローラ１０は充電モード（ＤＣＰモードまたは他の充電モード）を設定する（ステップＳ２２）。充電モードは、ＵＳＢデバイス３０に依存する。例えば、予めユーザが充電モードを設定しておいてもよい。その後、ＵＳＢコントローラ１０は、ＶＢＵＳをオン状態にする（ステップＳ２３）。
【００５３】
充電モードがＤＣＰに設定されている場合は（ステップＳ２４：Ｙｅｓ）、ＤＣＰモードへと移行する（ステップＳ２５）。このとき、ＵＳＢコントローラ１０は、Battery Charging Specificationに定義されているように、ポート１３の信号線Ｄ＋、Ｄ−を所定の抵抗を介して短絡する。これにより、ＵＳＢデバイス３０は、ポート１３がＤＣＰモードであると認識することができる。そして、ポート１３がサスペンド状態である限り、ＤＣＰモードが保持される（ステップＳ２６：Ｙｅｓ）。
【００５４】
ＵＳＢコントローラ１０は、サスペンド状態が解除されると（ステップＳ２６：Ｎｏ）、一度、ＶＢＵＳをオフ状態とし（ステップＳ２７）、その後、充電モードを解除する（ステップＳ２８）。ポート１３がＤＣＰモードである場合、ポート１３の信号線Ｄ＋、Ｄ−は短絡されているので、デバイスからのリモートウェイクアップ信号をＵＳＢコントローラ１０は検知できない。このため、サスペンド状態から復帰するには、例えばＵＳＢコントローラ１０を制御するソフトウェア等によるポート１３の設定解除などの復帰イベントが必要となる。
【００５５】
充電モードが解除された後、ＵＳＢコントローラ１０は、再度、ＶＢＵＳをオン状態とし（ステップＳ３３）、図４のステップＳ１３へと移る。
【００５６】
また、充電モードが任意の充電モード（ベンダー固有の充電モード）に設定されている場合は（ステップＳ２４：Ｎｏ）、任意の充電モードへと移行する（ステップＳ２９）。任意の充電モードでは、信号線Ｄ＋、Ｄ−は特定の電圧レベルに固定される。例えば、任意の充電モード（ベンダー固有の充電モード）では、信号線Ｄ＋を２．０Ｖ程度、信号線Ｄ−を１．７Ｖ程度に設定するベンダー固有のプロトコルが存在する。よって、ＵＳＢコントローラ１０は、信号線Ｄ＋、Ｄ−をこのような電圧レベルにすることで、任意の充電モード（ベンダー固有の充電モード）に対応することができる。また、ポート１３の信号線Ｄ＋、Ｄ−の電圧レベルをＤ＋：２．０Ｖ、Ｄ−：１．７Ｖとすることで、ＵＳＢデバイス３０は、ポート１３が任意の充電モード（ベンダー固有の充電モード）であることを認識することができる。そして、ポート１３がサスペンド状態である限り、任意の充電モードが保持される（ステップＳ３０：Ｙｅｓ）。
【００５７】
ＵＳＢコントローラ１０は、サスペンド状態が解除されると（ステップＳ３０：Ｎｏ）、一度、ＶＢＵＳをオフ状態とし（ステップＳ３１）、その後、充電モードを解除する（ステップＳ３２）。ポート１３が任意の充電モード（ベンダー固有の充電モード）である場合、ポート１３の信号線Ｄ＋、Ｄ−は所定の電圧に固定されているので、デバイスからのリモートウェイクアップ信号をＵＳＢコントローラ１０は検知できない。このため、サスペンド状態から復帰するには、例えばＵＳＢコントローラ１０を制御するソフトウェア等によるポート１３の設定解除などの復帰イベントが必要となる。
【００５８】
充電モードが解除された後、ＵＳＢコントローラ１０は、再度、ＶＢＵＳをオン状態とし（ステップＳ３３）、図４のステップＳ１３へと移る。
【００５９】
なお、上記処理はＵＳＢコントローラ１０において実行可能であり、ＵＳＢコントローラ１０よりも上位のシステム（コンピュータシステム）による制御は必要としない。また、図４、図５に示した処理は、ＵＳＢコントローラ１０が起動している間、所定の間隔毎に実行される。
【００６０】
以上で説明したように、本実施の形態では、ステップＳ２０において、ＵＳＢデバイスの種類を判定している。そして、ＵＳＢデバイスがリモートウェイクアップ機能を備える場合は、ＤＣＰモード等の充電モードに移行するのではなく、ＵＳＢデバイスから出力されるリモートウェイクアップ信号を受信可能な状態（ステップＳ１９）となるようにしている。
【００６１】
よって、リモートウェイクアップ機能を備えるＵＳＢデバイスを正しく認識することができるＵＳＢコントローラおよびその制御方法を提供することができる。
【００６２】
＜実施の形態３＞
次に、実施の形態３について説明する。図８は、本実施の形態にかかるＵＳＢコントローラの動作を説明するためのフローチャートである。本実施の形態にかかるＵＳＢコントローラでは、図４に示したステップＳ１９の動作を省略している点が実施の形態２にかかるＵＳＢコントローラと異なる。これ以外は実施の形態１、２で説明したＵＳＢコントローラと同様であるので重複した説明は省略する。
【００６３】
図８のフローチャートに示すように、まず、ＵＳＢコントローラ１０は、ポート１３のＶＢＵＳ信号をオン状態にする（ステップＳ１１）。ＶＢＵＳ信号をオン状態にすることで、ポート１３にＵＳＢデバイス３０が接続された際に、ＵＳＢデバイス３０はポート１３への接続を検知することができる。次に、ＵＳＢコントローラ１０は、ＵＳＢ−ＩＦによるBattery Charging Specificationの3.2.4.2や3.2.5.2で定義されている定電流回路（ＩＤＰ_ＳＩＮＫ）をオン状態にする。定電流回路（ＩＤＰ_ＳＩＮＫ）をオン状態にすることで、ポート１３に接続されたＵＳＢデバイスがBattery Charging Specificationで定義されている"Portable Device"であるか検出することができる。
【００６４】
ＵＳＢコントローラ１０は、既にBattery Chargingプロトコルを実行した場合は（ステップＳ１３：Ｙｅｓ）、Connect状態に遷移し、定電流回路（ＩＤＰ_ＳＩＮＫ）をオフ状態にして（ステップＳ１４）、以降、ＵＳＢ通信を行う。一方、Battery Chargingプロトコルを未実行の場合（ステップＳ１３：Ｎｏ）、Connect状態への遷移を行わない。
【００６５】
ポート１３は、ＵＳＢコントローラ１０の制御ソフトウェアによる設定あるいは接続デバイスとの通信状態によっては、サスペンド状態の場合またはアクティブ状態（非サスペンド状態）の場合がある。ポート１３がサスペンド状態ではない場合（ステップＳ１５：Ｎｏ）、接続されたＵＳＢデバイス３０が"Portable Device"であるか判定する。そして、接続されたＵＳＢデバイス３０が"Portable Device"でない場合は（ステップＳ１６：Ｎｏ）、ステップＳ１３以降の動作を繰り返す。ここで、"Portable Device"ではないと判断される場合とは、Battery Charging Specificationの3.2.4.2や3.2.5.2で定義されている"PRTBL_DET信号"が"０"の場合である。
【００６６】
一方、接続されたＵＳＢデバイス３０が"Portable Device"である場合、つまり"PRTBL_DET信号"が"１"の場合（ステップＳ１６：Ｙｅｓ）、ポート１３はＣＤＰ（Charging Downstream Port）として機能する。この場合、ＵＳＢデバイス３０は、ＣＤＰ機能を備えるポートに接続されたことを検知することができる。その後、Battery Charging Specificationの"3.4.2 Detection Timing, CDP"に定義されているように、ＣＤＰ検出動作完了後、ポート１３およびＵＳＢデバイス３０はConnect状態に遷移してＵＳＢ通信を行う。
【００６７】
ステップＳ１５においてポート１３がサスペンド状態であると判定された場合（ステップＳ１５：Ｙｅｓ）、リモートウェイクアップ信号がイネーブルであるか判定する（ステップＳ１８）。ここで、リモートウェイクアップ信号は、例えば"Connect"、"Disconnect"、"Over-Current"イベントに基づくリモートウェイクアップ信号である。リモートウェイクアップ信号がイネーブルに設定されている場合は（ステップＳ１８：Ｙｅｓ）、ステップＳ１３以降の動作を繰り返す。
【００６８】
一方、リモートウェイクアップ信号がイネーブルに設定されていない場合、つまり、リモートウェイクアップ信号が無効である場合（ステップＳ１８：Ｎｏ）、ＵＳＢデバイスの種類を判定する（ステップＳ２０'）。ＵＳＢデバイスの種類を判定する方法については、実施の形態２で説明した方法（図６、図７参照）と同様であるので、重複した説明は省略する。
【００６９】
ステップＳ２０'における判定が判定Ａである場合、つまり、ＵＳＢデバイス３０がリモートウェイクアップ機能を備える場合、ステップＳ１３へと移動する。例えば、ポート１３がリモートウェイクアップ信号を受信した場合はサスペンド状態が解除されるため、ステップＳ１５においてＮｏとなりステップＳ１６へと移る。一方、ポート１３がリモートウェイクアップ信号を受信しない場合はサスペンド状態が継続されるため、ステップＳ１３、Ｓ１４、Ｓ１５、Ｓ１８、Ｓ２０'、Ｓ１３、・・・、のループを繰り返す。
【００７０】
ステップＳ２０'における判定が判定Ｂである場合、つまり、ＵＳＢデバイス３０がリモートウェイクアップ機能を備えない場合、ポート１３は、ＤＣＰモードや他の充電モード（ベンダー固有の充電モード）に移行する。これにより、ポート１３を用いてＵＳＢデバイス３０を充電することができる。なお、ポート１３が充電用のポートとして機能する場合の動作については、図５に示した動作と同様であるので重複した説明は省略する。
【００７１】
以上で説明したように、本実施の形態では、ステップＳ２０'において、ＵＳＢデバイスの種類を判定している。そして、ＵＳＢデバイスがリモートウェイクアップ機能を備える場合は、ＤＣＰモード等の充電モードに移行するのではなく、ＵＳＢデバイスから出力されるリモートウェイクアップ信号を受信可能な状態となるようにしている。
【００７２】
よって、リモートウェイクアップ機能を備えるＵＳＢデバイスを正しく認識することができるＵＳＢコントローラおよびその制御方法を提供することができる。
【００７３】
更に本実施の形態では、実施の形態２の図４に示したステップＳ１９の動作を省略することができる。よって、ＵＳＢコントローラにおける処理を簡素化することができる。
【００７４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００７５】
１０  ＵＳＢコントローラ
１１  デバイス検出部
１２  ポート設定部
１３  ポート
１４  アップストリームポート
２０  ケーブル
３０  ＵＳＢデバイス
【図１】
2014123312.tif 000003
【図２】
2014123312.tif 000004
【図３】
2014123312.tif 000005
【図４】
2014123312.tif 000006
【図５】
2014123312.tif 000007
【図６】
2014123312.tif 000008
【図７】
2014123312.tif 000009
【図８】
2014123312.tif 000010