JP2014123312A - Usbコントローラおよびその制御方法 - Google Patents

Usbコントローラおよびその制御方法 Download PDF

Info

Publication number
JP2014123312A
JP2014123312A JP2012280003A JP2012280003A JP2014123312A JP 2014123312 A JP2014123312 A JP 2014123312A JP 2012280003 A JP2012280003 A JP 2012280003A JP 2012280003 A JP2012280003 A JP 2012280003A JP 2014123312 A JP2014123312 A JP 2014123312A
Authority
JP
Japan
Prior art keywords
port
usb
usb device
usb controller
mode
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
JP2012280003A
Other languages
English (en)
Inventor
Toshichika Sakai
敏親 境
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012280003A priority Critical patent/JP2014123312A/ja
Publication of JP2014123312A publication Critical patent/JP2014123312A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】リモートウェイクアップ機能を備えるUSBデバイスを正しく認識することができるUSBコントローラを提供することである。
【解決手段】一実施の形態にかかるUSBコントローラは、USBデバイス30が接続されるポート13の状態を設定するポート設定部12と、接続されたUSBデバイス30の種類を検出するデバイス検出部11と、を備える。デバイス検出部11は、ポート13がサスペンド状態の場合に、USBデバイス30がリモートウェイクアップ機能を備えるか否かを検出する。ポート設定部12は、USBデバイス30がリモートウェイクアップ機能を備える場合、ポート13をUSBデバイス30から出力されるリモートウェイクアップ信号を受信可能な状態に設定する。
【選択図】図1

Description

本発明はUSBコントローラおよびその制御方法に関し、例えばリモートウェイクアップ機能を備えるUSBデバイスに対応可能なUSBコントローラおよびその制御方法に関する。
昨今、パーソナルコンピュータや携帯端末機器など多くの電子機器は、USB(Universal Serial Bus)インタフェースを備える。USBインタフェースを介して電子機器と接続されたUSBデバイスは、電子機器とデータ通信を行うことができる。また、USBデバイスは、USBインタフェースを介して電子機器から電力の供給を受けることができる。
特許文献1には、自動的にデバイスに合った給電の設定が可能な情報処理装置に関する技術が開示されている。特許文献2には、ディスプレイ装置がスタンバイモードである場合に、ディスプレイ装置を用いて外部機器を充電する技術が開示されている。
特開2010−257493号公報 特開2012−120433号公報
Battery Charging Specification (Revision 1.2) December 7, 2010, USB Implementers Forum, Inc.
背景技術で説明したように、USBインタフェースはUSBデバイスに電力を供給することができる。このため、携帯型音楽プレーヤー、スマートフォン、タブレット端末等のUSBデバイスのバッテリを、USBインタフェースを介して供給される電力を用いて充電することができる。
例えば、USBポート(以下、単にポートとも記載する)がサスペンド状態の場合に、USBコントローラを用いて当該ポートを充電モードに設定することで、データ通信を行わない場合でもUSBデバイスを充電することができる。
しかしながら、一度ポートを充電モードに設定すると、当該ポートはリモートウェイクアップ信号を受信することができなくなる。このため、充電モードに設定されたポートにリモートウェイクアップ機能を備えるUSBデバイスが接続されてもUSBデバイスを認識することができないという問題があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態かかるUSBコントローラおよびその制御方法では、ポートがサスペンド状態の場合に、USBポートに接続されたUSBデバイスがリモートウェイクアップ機能を備えるか否かを検出し、接続されたUSBデバイスがリモートウェイクアップ機能を備える場合、ポートをUSBデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する。
前記一実施の形態によれば、リモートウェイクアップ機能を備えるUSBデバイスを正しく認識することができるUSBコントローラおよびその制御方法を提供することができる。
実施の形態1にかかるUSBコントローラを示すブロック図である。 USBデバイスとポートとの接続状態を説明するための図である。 実施の形態1にかかるUSBコントローラの動作を説明するためのフローチャートである。 実施の形態2にかかるUSBコントローラの動作を説明するためのフローチャートである。 実施の形態2にかかるUSBコントローラの動作を説明するためのフローチャートである。 USBデバイスの種類の判定に用いられるテーブルの一例である。 USBデバイスの種類の判定に用いられるテーブルの他の例である。 実施の形態3にかかるUSBコントローラの動作を説明するためのフローチャートである。
<実施の形態1>
図1は、実施の形態1にかかるUSBコントローラを示すブロック図である。図1に示すように本実施の形態にかかるUSBコントローラ10は、デバイス検出部11とポート設定部12とを備える。また、USBコントローラ10の下流側はポート(ダウンストリームポート)13と接続されている。ポート13の数は任意に決定することができる。ポート13にはケーブル20を介してUSBデバイス30が接続される。また、USBコントローラ10の上流側(アップストリームポート)14は、上位の装置やバス等と接続されている。
例えば、USBコントローラ10がUSBホストコントローラである場合、USBコントローラ10の上流側14は、バス(例えば、PCIバス)を介して所定のシステムと接続される。また、例えばUSBコントローラ10がUSBハブコントローラである場合、USBコントローラ10の上流側14は、USBホストコントローラ(不図示)と接続される。つまり、USBハブコントローラは、上流側に位置するUSBホストコントローラと下流側に位置するUSBデバイスとの間に設けられる。
なお、本明細書において、「USBコントローラ」はUSBホストコントローラとUSBハブコントローラの両方を含むものとする。つまり、本実施の形態にかかる技術は、USBホストコントローラとUSBハブコントローラの両方に適用することができる。また、USBコントローラはアップストリームポートとダウンストリームポートを備えるが、本実施の形態にかかる技術はダウンストリームポートに着目した技術であるため、以下ではダウンストリームポートの構成および動作を中心に説明する。
図2は、USBデバイス30とポート13との接続状態を説明するための図である。図2に示すように、USBデバイス30およびポート13は、電源線(VBUS、GND)と信号線(D+、D−)を介して接続されている。換言すると、USBデバイス30およびポート13は、電源線(VBUS、GND)と信号線(D+、D−)とを備えるケーブル20を用いて接続される。なお、図1、図2では、USBデバイス30とポート13とがケーブル20を用いて接続されている場合を例として示した。しかし、USBデバイス30が備える端子とポート13が備える端子とが直接接続されるように構成してもよい。
図1に示すUSBコントローラ10が備えるデバイス検出部11は、接続されたUSBデバイス30の種類を検出する。このとき、デバイス検出部11は、ポート13がサスペンド状態の場合に、USBデバイス30がリモートウェイクアップ機能を備えるか否かを検出する。例えば、デバイス検出部11は、USBデバイス30の通信速度に基づき、USBデバイス30がリモートウェイクアップ機能を備えるか判定することができる。具体的には、USBデバイス30の通信速度が、USB1.1で規定されたLS(Low Speed)モードまたはFS(Full Speed)モードである場合に、USBデバイス30がリモートウェイクアップ機能を備えると判定することができる。リモートウェイクアップ機能を備えるUSBデバイス30としては、例えばキーボード、マウス、テンキー等のHID(Human Interface Device)クラスのUSBデバイスが挙げられる。
ポート設定部12は、USBデバイス30が接続されるポート13の状態を設定する。具体的には、ポート設定部12は、接続されたUSBデバイス30がリモートウェイクアップ機能を備えるとデバイス検出部11において判定された場合、ポート13を待機状態に設定する。ここで、待機状態とは、USBデバイス30から出力されるリモートウェイクアップ信号を受信可能な状態(サスペンド状態)である。その後、ポート13がリモートウェイクアップ信号を受信すると、ポート13はサスペンド状態からアクティブ状態(非サスペンド状態)に遷移する。ポート13がサスペンド状態からアクティブ状態に遷移すると、ポート13はUSBデバイス30への電力供給およびUSBデバイス30とのデータ通信を実施する。
一方、ポート設定部12は、接続されたUSBデバイス30がリモートウェイクアップ機能を備えないとデバイス検出部11において判定された場合、ポート13を充電モードに設定する。充電モードに設定された場合、ポート13は電源線VBUS、GND(図2参照)を介してUSBデバイス30に電力を供給する。充電モードに設定された場合、ポート13は、USBデバイス30への電力供給のみを実施する。このとき、ポート設定部12は信号線D+、D−を所定の電位に固定する。
USBポートを用いた充電については、USB−IF(USB Implementers Forum, Inc.)により、"Battery Charging Specification (Revision 1.2) December 7, 2010"の規格(以下、「Battery Charging Specification」と記載する)が制定されている。この規格により、USBデバイス30は、電源線VBUS、GNDと信号線D+、D−とを用いて、ポート13の状態(充電モード)を識別することができる。例えば、ポート13の信号線D+、D−が所定の抵抗を介して短絡されている場合、USBデバイス30は、ポート13がDCP(Dedicated Charging Port)に設定されていると認識することができる。
また、Battery Charging Specificationで定義されている充電モード以外にも、任意の充電モード(ベンダー固有の充電モード)に設定することができる。任意の充電モードでは、ポート13の信号線D+、D−は所定の電圧レベル(例えば、D+:2.0V、D−:1.7V)に固定される。このようにポート13の信号線D+、D−が所定の電圧レベルに固定されることで、USBデバイス30はポート13が任意の充電モード(ベンダー固有の充電モード)に設定されていると認識することができる。
USBデバイス30は、充電モードに応じて、ポート13の電源線VBUS、GNDから供給される電力を用いてバッテリを充電することができる。
次に、本実施の形態にかかるUSBコントローラ10の動作について、図3に示すフローチャートを用いて説明する。まず、USBコントローラ10が備えるデバイス検出部11は、USBデバイス30がポート13に接続されたか判定する(ステップS1)。デバイス検出部11は、USBデバイス30がポート13に接続されるまでステップS1の動作を繰り返す。
USBデバイス30がポート13に接続されると(ステップS1:Yes)、USBコントローラ10はポート13がサスペンド状態であるか判定する(ステップS2)。ポート13がサスペンド状態でない場合、つまり、アクティブ状態の場合(ステップS2:No)、ポート13はUSBデバイス30への電力供給およびUSBデバイス30とのデータ通信を実行する(ステップS9)。
一方、ポート13がサスペンド状態である場合(ステップS2:Yes)、デバイス検出部11は、接続されたUSBデバイス30の種類を検出する。つまり、デバイス検出部11は、ポート13がサスペンド状態の場合に、USBデバイス30がリモートウェイクアップ機能を備えるか否かを検出する。このとき、デバイス検出部11は、USBデバイス30の通信速度に基づき、USBデバイス30がリモートウェイクアップ機能を備えるか判定してもよい。具体的には、USBデバイス30の通信速度が、USB1.1で規定されたLS(Low Speed)モードまたはFS(Full Speed)モードである場合に、USBデバイス30がリモートウェイクアップ機能を備えると判定することができる。
接続されたUSBデバイス30がリモートウェイクアップ機能を備えないとデバイス検出部11において判定された場合(ステップS4:No)、ポート設定部12はポート13を充電モードに設定する(ステップS6)。充電モードに設定された場合、ポート13は電源線VBUS、GND(図2参照)を介してUSBデバイス30に電力を供給する。USBデバイス30は、ポート13の電源線VBUS、GNDから供給される電力を用いてバッテリを充電する。このとき、例えばポート設定部12は信号線D+、D−を所定の抵抗を介して短絡してもよい。これにより、USBデバイス30は、ポート13がDCPに設定されていると認識することができる。また、例えば信号線D+、D−が所定の電圧レベル(例えば、D+:2.0V、D−:1.7V)に固定されている場合、USBデバイス30は、ポート13が任意の充電モード(ベンダー固有の充電モード)に設定されていると認識することができる。
一方、接続されたUSBデバイス30がリモートウェイクアップ機能を備えるとデバイス検出部11において判定された場合(ステップS4:Yes)、ポート設定部12は、ポート13を、USBデバイス30から出力されるリモートウェイクアップ信号を受信可能な状態(サスペンド状態)に設定する(ステップS5)。その後、USBコントローラ10は、リモートウェイクアップ信号を受信したか判定する(ステップS7)。USBコントローラ10は、リモートウェイクアップ信号を受信するまでステップS7の動作を繰り返す。
そして、ポート13がリモートウェイクアップ信号を受信すると(ステップS7:Yes)、ポート13はサスペンド状態からアクティブ状態に遷移する(ステップS8)。ポート13がサスペンド状態からアクティブ状態に遷移すると、ポート13はUSBデバイス30への電力供給およびUSBデバイス30とのデータ通信を実施する(ステップS9)。
背景技術で説明したように、USBインタフェースはUSBデバイスに電力を供給することができる。このため、携帯型音楽プレーヤー、スマートフォン、タブレット端末等のUSBデバイスのバッテリを、USBインタフェースを介して供給される電力を用いて充電することができる。
例えば、USBポートがサスペンド状態の場合に、USBコントローラを用いて当該ポートを充電モードに設定することで、データ通信を行わない場合でもUSBデバイスを充電することができる。
しかしながら、一度ポートを充電モードに設定すると、当該ポートはリモートウェイクアップ信号を受信することができなくなる。このため、充電モードに設定されたポートにリモートウェイクアップ機能を備えるUSBデバイスが接続されてもUSBデバイスを認識することができないという問題があった。
USBポートにUSBデバイスが接続された場合、USBコントローラは、例えば、信号線D+、D−の電圧が、D+:0V/D−:0Vの状態からD+:3V/D−:0Vの状態に変化したことを検出することで、デバイスの接続を検出することができる。また、USBコントローラは、例えば、信号線D+、D−の電圧が、D+:3V/D−:0Vの状態からD+:0V/D−:3Vの状態に変化したことを検出することで、リモートウェイクアップ状態を検出することができる。
ここで、USBポートを用いた充電については、USB−IFにより、Battery Charging Specificationが制定されている。この規格により、USBデバイスは、電源線VBUS、GNDと信号線D+、D−とを用いて、USBポートの状態(充電モード)を識別することができる。例えば、USBポートがDCP(Dedicated Charging Port)に設定されている場合、USBポートの信号線D+、D−は所定の抵抗を介して短絡される。また、USBポートが任意の充電モード(ベンダー固有の充電モード)に設定されている場合、USBポートの信号線D+、D−は所定の電圧レベルに固定される。
しかしながら、USBポートの信号線D+、D−を短絡したり、信号線D+、D−の電圧レベルを固定したりすると、USBコントローラは信号線D+、D−のレベル変化を検出することができない。このため、リモートウェイクアップ機能を備えるUSBデバイスがUSBポートに接続されても、USBデバイスを認識することができないという問題があった。
そこで本実施の形態では、デバイス検出部11において、USBデバイス30がリモートウェイクアップ機能を備えるか否かを検出している。そして、USBデバイス30がリモートウェイクアップ機能を備える場合、ポート設定部12は、ポート13を充電モードに設定するのではなく、USBデバイス30から出力されるリモートウェイクアップ信号を受信可能な状態に設定している。
よって、リモートウェイクアップ機能を備えるUSBデバイスを正しく認識することができるUSBコントローラおよびその制御方法を提供することができる。
<実施の形態2>
次に、実施の形態2について説明する。図4、図5は、本実施の形態にかかるUSBコントローラの動作を説明するためのフローチャートである。なお、本実施の形態にかかるUSBコントローラの基本的な構成は、図1に示したUSBコントローラと同様であるので重複した説明は省略する。
図4のフローチャートに示すように、まず、USBコントローラ10は、ポート13のVBUS信号をオン状態にする(ステップS11)。VBUS信号をオン状態にすることで、ポート13にUSBデバイス30が接続された際に、USBデバイス30はポート13への接続を検知することができる。次に、USBコントローラ10は、USB−IFによるBattery Charging Specificationの3.2.4.2や3.2.5.2で定義されている定電流回路(IDP_SINK)をオン状態にする。定電流回路(IDP_SINK)をオン状態にすることで、ポート13に接続されたUSBデバイスがBattery Charging Specificationで定義されている"Portable Device"であるか検出することができる。
USBコントローラ10は、既にBattery Chargingプロトコルを実行した場合は(ステップS13:Yes)、Connect状態に遷移し、定電流回路(IDP_SINK)をオフ状態にして(ステップS14)、以降、USB通信を行う。一方、Battery Chargingプロトコルを未実行の場合(ステップS13:No)、Connect状態への遷移を行わない。
ポート13は、USBコントローラ10の制御ソフトウェアによる設定あるいは接続デバイスとの通信状態によっては、サスペンド状態の場合またはアクティブ状態(非サスペンド状態)の場合がある。ポート13がサスペンド状態ではない場合(ステップS15:No)、接続されたUSBデバイス30が"Portable Device"であるか判定する。そして、接続されたUSBデバイス30が"Portable Device"でない場合は(ステップS16:No)、ステップS13以降の動作を繰り返す。ここで、"Portable Device"ではないと判断される場合とは、Battery Charging Specificationの3.2.4.2や3.2.5.2で定義されている"PRTBL_DET信号"が"0"の場合である。
一方、接続されたUSBデバイス30が"Portable Device"である場合、つまり"PRTBL_DET信号"が"1"の場合(ステップS16:Yes)、ポート13はCDP(Charging Downstream Port)として機能する。この場合、USBデバイス30は、CDP機能を備えるポートに接続されたことを検知することができる。その後、Battery Charging Specificationの"3.4.2 Detection Timing, CDP"に定義されているように、CDP検出動作完了後、ポート13およびUSBデバイス30はConnect状態に遷移してUSB通信を行う。
ステップS15においてポート13がサスペンド状態であると判定された場合(ステップS15:Yes)、リモートウェイクアップ信号がイネーブルであるか判定する(ステップS18)。ここで、リモートウェイクアップ信号は、例えば"Connect"、"Disconnect"、"Over-Current"イベントに基づくリモートウェイクアップ信号である。リモートウェイクアップ信号がイネーブルに設定されている場合は(ステップS18:Yes)、ステップS13以降の動作を繰り返す。
一方、リモートウェイクアップ信号がイネーブルに設定されていない場合、つまり、リモートウェイクアップ信号が無効である場合(ステップS18:No)、ポート13がサスペンド状態であるか判定する(ステップS19)。例えば、接続されたUSBデバイス30からのリモートウェイクアップ信号などによって、ステップS19の判定時点においてサスペンド状態が解除されていたら、ステップS16以降の動作を行う(ステップS19:No)。依然としてポート13がサスペンド状態である場合は(ステップS19:Yes)、USBデバイスの種類を判定する(ステップS20)。以下で、USBデバイス30の種類を判定する動作について詳細に説明する。
図6は、USBデバイス30の種類を判定する際に用いられるテーブルの一例である。例えばUSBデバイスが未接続となった場合は図6に示すテーブルAのケース(a)となる。この場合は判定結果Bとなり(ステップS20:判定B)、ポート13を充電用のポートとして用いることができる。この場合、ポート13は、DCPモードや他の充電モード(ベンダー固有の充電モード)に移行する。そして、新規に接続されたUSBデバイス30がDCPモードや他の充電モードに対応したUSBデバイスである場合、ポート13を用いて充電することができる。ポート13を充電用のポートとして用いる場合については、図5を用いて後で詳細に説明する。
また、接続されているUSBデバイス30の通信速度が、USB1.1で規定されたLS(Low Speed)モードまたはFS(Full Speed)モードである場合、図6に示すテーブルAのケース(b)、(c)となる。この場合は判定結果Aとなり、USBデバイス30がリモートウェイクアップ機能を備えると判定される。つまり、リモートウェイクアップ機能を備えるUSBデバイスは、通常、キーボードやマウスなど、LSモードやFSモードで接続されるデバイスである。また、一般的に、これらのデバイスはBattery Charging Specificationに定められている充電は行わない。よって、接続されているUSBデバイス30の通信速度が、LSモードまたはFSモードである場合、リモートウェイクアップ機能を備えるUSBデバイスと判定することができる。
この場合は、ステップS20の判定が判定Aとなるので、DCPモードや他の充電モードに移行することなく、ステップS19〜ステップS20のループを繰り返しながらサスペンド状態に留まる。そして、USBデバイス30からリモートウェイクアップ信号が出力されるとサスペンド状態が解除されて(ステップS19:No)、ステップS16以降の動作へと移る。
また、接続されているUSBデバイス30の通信速度がUSB2.0で規定されたHS(High Speed)モードであり、且つ、Battery Charging Specificationで定義されている"Portable Device"ではない場合、図6に示すテーブルAのケース(d)となる。つまり、ベンダーが供給するUSBデバイス(例えば、携帯型音楽プレーヤーなど)は、ベンダー固有の充電モードに対応しており、"Portable Device"としては認識されない場合がある。また、これらのUSBデバイスは、HSモードで動作するデバイスがほとんどである。
よって、この場合は判定結果Bとなり(ステップS20:判定B)、ポート13は、DCPモードや他の充電モード(ベンダー固有の充電モード)に移行する。これにより、ポート13を用いてUSBデバイス30を充電することができる。
また、接続されているUSBデバイス30の通信速度がUSB2.0で規定されたHS(High Speed)モードであり、且つ、サスペンド状態に遷移する前に既にステップS16で "Portable Device"と認識されてCDPモードで動作したことがある場合は、図6に示すテーブルAのケース(e)となる。この場合は判定結果Aとなり(ステップS20:判定A)、DCPモードや他の充電モードに移行することなく、ステップS19〜ステップS20のループを繰り返しながらサスペンド状態に留まる。そして、サスペンド状態が解除されると(ステップS19:No)、ステップS16以降の動作へと移る。
なお、ケース(e)については、図7に示すテーブルA'のケース(e)'のように判定してもよい。つまり、接続されているUSBデバイス30の通信速度がUSB2.0で規定されたHS(High Speed)モードである場合は、"Portable Device"であるか否かにかかわらず、判定結果を判定Bとしてもよい。この場合は判定結果Bであるので(ステップS20:判定B)、ポート13は、DCPモードや他の充電モード(ベンダー固有の充電モード)に移行する。これにより、ポート13を用いてUSBデバイス30を充電することができる。
次に、ステップS20における判定結果が判定Bである場合の動作、つまり、ポート13を充電用のポートとして用いる場合の動作について、図5に示すフローチャートを用いて説明する。ステップS20において判定Bとされた場合、ポート13はBattery Charging Specificationで定義されているDCPモード、またはベンダーにより定義されている他の充電モード(ベンダー固有の充電モード)に設定される。
Battery Charging Specificationでは、充電モードが変わる場合は、一度、VBUSをオフにするように規定されている。このため、USBコントローラ10は、VBUSをオフ状態にする(ステップS21)。次に、USBコントローラ10は充電モード(DCPモードまたは他の充電モード)を設定する(ステップS22)。充電モードは、USBデバイス30に依存する。例えば、予めユーザが充電モードを設定しておいてもよい。その後、USBコントローラ10は、VBUSをオン状態にする(ステップS23)。
充電モードがDCPに設定されている場合は(ステップS24:Yes)、DCPモードへと移行する(ステップS25)。このとき、USBコントローラ10は、Battery Charging Specificationに定義されているように、ポート13の信号線D+、D−を所定の抵抗を介して短絡する。これにより、USBデバイス30は、ポート13がDCPモードであると認識することができる。そして、ポート13がサスペンド状態である限り、DCPモードが保持される(ステップS26:Yes)。
USBコントローラ10は、サスペンド状態が解除されると(ステップS26:No)、一度、VBUSをオフ状態とし(ステップS27)、その後、充電モードを解除する(ステップS28)。ポート13がDCPモードである場合、ポート13の信号線D+、D−は短絡されているので、デバイスからのリモートウェイクアップ信号をUSBコントローラ10は検知できない。このため、サスペンド状態から復帰するには、例えばUSBコントローラ10を制御するソフトウェア等によるポート13の設定解除などの復帰イベントが必要となる。
充電モードが解除された後、USBコントローラ10は、再度、VBUSをオン状態とし(ステップS33)、図4のステップS13へと移る。
また、充電モードが任意の充電モード(ベンダー固有の充電モード)に設定されている場合は(ステップS24:No)、任意の充電モードへと移行する(ステップS29)。任意の充電モードでは、信号線D+、D−は特定の電圧レベルに固定される。例えば、任意の充電モード(ベンダー固有の充電モード)では、信号線D+を2.0V程度、信号線D−を1.7V程度に設定するベンダー固有のプロトコルが存在する。よって、USBコントローラ10は、信号線D+、D−をこのような電圧レベルにすることで、任意の充電モード(ベンダー固有の充電モード)に対応することができる。また、ポート13の信号線D+、D−の電圧レベルをD+:2.0V、D−:1.7Vとすることで、USBデバイス30は、ポート13が任意の充電モード(ベンダー固有の充電モード)であることを認識することができる。そして、ポート13がサスペンド状態である限り、任意の充電モードが保持される(ステップS30:Yes)。
USBコントローラ10は、サスペンド状態が解除されると(ステップS30:No)、一度、VBUSをオフ状態とし(ステップS31)、その後、充電モードを解除する(ステップS32)。ポート13が任意の充電モード(ベンダー固有の充電モード)である場合、ポート13の信号線D+、D−は所定の電圧に固定されているので、デバイスからのリモートウェイクアップ信号をUSBコントローラ10は検知できない。このため、サスペンド状態から復帰するには、例えばUSBコントローラ10を制御するソフトウェア等によるポート13の設定解除などの復帰イベントが必要となる。
充電モードが解除された後、USBコントローラ10は、再度、VBUSをオン状態とし(ステップS33)、図4のステップS13へと移る。
なお、上記処理はUSBコントローラ10において実行可能であり、USBコントローラ10よりも上位のシステム(コンピュータシステム)による制御は必要としない。また、図4、図5に示した処理は、USBコントローラ10が起動している間、所定の間隔毎に実行される。
以上で説明したように、本実施の形態では、ステップS20において、USBデバイスの種類を判定している。そして、USBデバイスがリモートウェイクアップ機能を備える場合は、DCPモード等の充電モードに移行するのではなく、USBデバイスから出力されるリモートウェイクアップ信号を受信可能な状態(ステップS19)となるようにしている。
よって、リモートウェイクアップ機能を備えるUSBデバイスを正しく認識することができるUSBコントローラおよびその制御方法を提供することができる。
<実施の形態3>
次に、実施の形態3について説明する。図8は、本実施の形態にかかるUSBコントローラの動作を説明するためのフローチャートである。本実施の形態にかかるUSBコントローラでは、図4に示したステップS19の動作を省略している点が実施の形態2にかかるUSBコントローラと異なる。これ以外は実施の形態1、2で説明したUSBコントローラと同様であるので重複した説明は省略する。
図8のフローチャートに示すように、まず、USBコントローラ10は、ポート13のVBUS信号をオン状態にする(ステップS11)。VBUS信号をオン状態にすることで、ポート13にUSBデバイス30が接続された際に、USBデバイス30はポート13への接続を検知することができる。次に、USBコントローラ10は、USB−IFによるBattery Charging Specificationの3.2.4.2や3.2.5.2で定義されている定電流回路(IDP_SINK)をオン状態にする。定電流回路(IDP_SINK)をオン状態にすることで、ポート13に接続されたUSBデバイスがBattery Charging Specificationで定義されている"Portable Device"であるか検出することができる。
USBコントローラ10は、既にBattery Chargingプロトコルを実行した場合は(ステップS13:Yes)、Connect状態に遷移し、定電流回路(IDP_SINK)をオフ状態にして(ステップS14)、以降、USB通信を行う。一方、Battery Chargingプロトコルを未実行の場合(ステップS13:No)、Connect状態への遷移を行わない。
ポート13は、USBコントローラ10の制御ソフトウェアによる設定あるいは接続デバイスとの通信状態によっては、サスペンド状態の場合またはアクティブ状態(非サスペンド状態)の場合がある。ポート13がサスペンド状態ではない場合(ステップS15:No)、接続されたUSBデバイス30が"Portable Device"であるか判定する。そして、接続されたUSBデバイス30が"Portable Device"でない場合は(ステップS16:No)、ステップS13以降の動作を繰り返す。ここで、"Portable Device"ではないと判断される場合とは、Battery Charging Specificationの3.2.4.2や3.2.5.2で定義されている"PRTBL_DET信号"が"0"の場合である。
一方、接続されたUSBデバイス30が"Portable Device"である場合、つまり"PRTBL_DET信号"が"1"の場合(ステップS16:Yes)、ポート13はCDP(Charging Downstream Port)として機能する。この場合、USBデバイス30は、CDP機能を備えるポートに接続されたことを検知することができる。その後、Battery Charging Specificationの"3.4.2 Detection Timing, CDP"に定義されているように、CDP検出動作完了後、ポート13およびUSBデバイス30はConnect状態に遷移してUSB通信を行う。
ステップS15においてポート13がサスペンド状態であると判定された場合(ステップS15:Yes)、リモートウェイクアップ信号がイネーブルであるか判定する(ステップS18)。ここで、リモートウェイクアップ信号は、例えば"Connect"、"Disconnect"、"Over-Current"イベントに基づくリモートウェイクアップ信号である。リモートウェイクアップ信号がイネーブルに設定されている場合は(ステップS18:Yes)、ステップS13以降の動作を繰り返す。
一方、リモートウェイクアップ信号がイネーブルに設定されていない場合、つまり、リモートウェイクアップ信号が無効である場合(ステップS18:No)、USBデバイスの種類を判定する(ステップS20')。USBデバイスの種類を判定する方法については、実施の形態2で説明した方法(図6、図7参照)と同様であるので、重複した説明は省略する。
ステップS20'における判定が判定Aである場合、つまり、USBデバイス30がリモートウェイクアップ機能を備える場合、ステップS13へと移動する。例えば、ポート13がリモートウェイクアップ信号を受信した場合はサスペンド状態が解除されるため、ステップS15においてNoとなりステップS16へと移る。一方、ポート13がリモートウェイクアップ信号を受信しない場合はサスペンド状態が継続されるため、ステップS13、S14、S15、S18、S20'、S13、・・・、のループを繰り返す。
ステップS20'における判定が判定Bである場合、つまり、USBデバイス30がリモートウェイクアップ機能を備えない場合、ポート13は、DCPモードや他の充電モード(ベンダー固有の充電モード)に移行する。これにより、ポート13を用いてUSBデバイス30を充電することができる。なお、ポート13が充電用のポートとして機能する場合の動作については、図5に示した動作と同様であるので重複した説明は省略する。
以上で説明したように、本実施の形態では、ステップS20'において、USBデバイスの種類を判定している。そして、USBデバイスがリモートウェイクアップ機能を備える場合は、DCPモード等の充電モードに移行するのではなく、USBデバイスから出力されるリモートウェイクアップ信号を受信可能な状態となるようにしている。
よって、リモートウェイクアップ機能を備えるUSBデバイスを正しく認識することができるUSBコントローラおよびその制御方法を提供することができる。
更に本実施の形態では、実施の形態2の図4に示したステップS19の動作を省略することができる。よって、USBコントローラにおける処理を簡素化することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
10 USBコントローラ
11 デバイス検出部
12 ポート設定部
13 ポート
14 アップストリームポート
20 ケーブル
30 USBデバイス

Claims (16)

  1. USBデバイスが接続されるポートの状態を設定するポート設定部と、
    接続されたUSBデバイスの種類を検出するデバイス検出部と、を備え、
    前記デバイス検出部は、前記ポートがサスペンド状態の場合に、前記接続されたUSBデバイスがリモートウェイクアップ機能を備えるか否かを検出し、
    前記ポート設定部は、前記接続されたUSBデバイスがリモートウェイクアップ機能を備える場合、前記ポートを前記USBデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する、
    USBコントローラ。
  2. 前記ポート設定部は、前記接続されたUSBデバイスがリモートウェイクアップ機能を備えない場合、前記ポートを充電モードに設定する、
    請求項1に記載のUSBコントローラ。
  3. 前記リモートウェイクアップ信号を受信した場合、前記ポートはサスペンド状態からアクティブ状態に遷移する、請求項1に記載のUSBコントローラ。
  4. 前記接続されたUSBデバイスの通信速度に基づき、前記USBデバイスが前記リモートウェイクアップ機能を有するか判定する、請求項1に記載のUSBコントローラ。
  5. 前記USBデバイスの通信速度が、USB1.1で規定されたLS(Low Speed)モードまたはFS(Full Speed)モードである場合に、前記USBデバイスが前記リモートウェイクアップ機能を有すると判定する、請求項4に記載のUSBコントローラ。
  6. 前記ポートがサスペンド状態からアクティブ状態に遷移した場合、前記ポートは前記USBデバイスへの電力供給および前記USBデバイスとのデータ通信を実施する、請求項3に記載のUSBコントローラ。
  7. 前記ポートは、前記充電モードに設定された場合、前記USBデバイスへの電力供給のみを実施する、請求項2に記載のUSBコントローラ。
  8. 前記USBデバイスおよび前記ポートは、第1および第2の電源線並びに第1および第2の信号線を介して接続され、
    前記ポートが前記充電モードに設定された場合、前記ポート設定部は前記第1および第2の信号線を所定の電位に固定する、
    請求項1に記載のUSBコントローラ。
  9. 前記ポートが前記充電モードに設定された場合、前記ポート設定部は前記第1および第2の信号線を短絡する、請求項8に記載のUSBコントローラ。
  10. ポートがサスペンド状態の場合に、当該ポートに接続されたUSBデバイスがリモートウェイクアップ機能を備えるか否かを検出し、
    前記接続されたUSBデバイスがリモートウェイクアップ機能を備える場合は、前記ポートを前記USBデバイスから出力されるリモートウェイクアップ信号を受信可能な状態に設定する、
    USBコントローラの制御方法。
  11. 前記接続されたUSBデバイスがリモートウェイクアップ機能を備えない場合、前記ポートを充電モードに設定する、請求項10に記載のUSBコントローラの制御方法。
  12. 前記リモートウェイクアップ信号を受信した場合、前記ポートはサスペンド状態からアクティブ状態に遷移する、請求項10に記載のUSBコントローラの制御方法。
  13. 前記接続されたUSBデバイスの通信速度に基づき、前記USBデバイスが前記リモートウェイクアップ機能を有するか判定する、請求項10に記載のUSBコントローラの制御方法。
  14. 前記USBデバイスの通信速度が、USB1.1で規定されたLS(Low Speed)モードまたはFS(Full Speed)モードである場合に、前記USBデバイスが前記リモートウェイクアップ機能を有すると判定する、請求項13に記載のUSBコントローラの制御方法。
  15. 前記ポートがサスペンド状態からアクティブ状態に遷移した場合、前記ポートは前記USBデバイスへの電力供給および前記USBデバイスとのデータ通信を実施する、請求項12に記載のUSBコントローラの制御方法。
  16. 前記ポートは、前記充電モードに設定された場合、前記USBデバイスへの電力供給のみを実施する、請求項11に記載のUSBコントローラの制御方法。
JP2012280003A 2012-12-21 2012-12-21 Usbコントローラおよびその制御方法 Pending JP2014123312A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012280003A JP2014123312A (ja) 2012-12-21 2012-12-21 Usbコントローラおよびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012280003A JP2014123312A (ja) 2012-12-21 2012-12-21 Usbコントローラおよびその制御方法

Publications (1)

Publication Number Publication Date
JP2014123312A true JP2014123312A (ja) 2014-07-03

Family

ID=51403723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012280003A Pending JP2014123312A (ja) 2012-12-21 2012-12-21 Usbコントローラおよびその制御方法

Country Status (1)

Country Link
JP (1) JP2014123312A (ja)

Similar Documents

Publication Publication Date Title
US9450441B2 (en) Mobile terminal, and device and method for charging same
KR102216484B1 (ko) 충전 제어 방법 및 그 장치
JP5283719B2 (ja) 電子機器及び電子機器システム
US8217639B2 (en) System for supplying and receiving power, power supply device and method thereof
JP5714274B2 (ja) 半導体装置ならびにそれらを用いた電子機器
US20110241627A1 (en) Battery charger for portable electronic equipment
TW201234184A (en) Adaptive USB charging method and system
JP2012205366A (ja) 入出力回路
US20100060233A1 (en) Charger with USB detection
WO2013152662A1 (zh) 一种终端设备的供电方法及其终端设备
KR20140120699A (ko) 충전을 위한 전자 장치 제어 방법 및 이를 지원하는 전자 장치와 충전 장치
CN108228509B (zh) 一种usb接口切换装置和电子设备
US20140132213A1 (en) Battery management system and electric vehicle
CN103309835A (zh) 通用串行总线装置及其供电方法
US20060015670A1 (en) Apparatus for detecting connection of a peripheral unit to a host system
JP2012205007A (ja) 入出力回路
US8941361B2 (en) Computer system and control method thereof
US20120198250A1 (en) Portable terminal equipment, a power supply system, and a power supply method and a power supply program for portable terminal equipment
WO2018053901A1 (zh) 电子装置及其充电方法
JP2014056287A (ja) 電子機器及び電子機器による電源機器の判別方法
JP5058083B2 (ja) インタフェース装置
KR20140101963A (ko) 충전 및 데이터 통신을 수행할 수 있는 시스템
CN208848137U (zh) 具有充电功能的主机板
CN112310756A (zh) 防止usb装置损坏的电子装置及其操作方法
WO2010067400A1 (ja) 電力使用方法、スレーブ装置、およびコンピュータプログラム