説明

USBデバイス制御回路、及びUSBデバイスの制御方法

【課題】USBホストとUSBデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合を回避する。
【解決手段】USBバス300を介して、USBホスト(USBホスト制御回路200)とハイスピードモードで接続するUSBデバイス制御回路100であって、デバイスコントローラ110を備える。デバイスコントローラ110は、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、USBホストから所定の回数受信すると、所定の期間、USBバス300の状態を観測してUSBホストの状態を判定する。デバイスコントローラ110は、USBホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、USBホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USB(Universal Serial Bus)デバイスの低消費電力制御に関する。
【背景技術】
【0002】
USB2.0規格では、HS(ハイスピード)、FS(フルスピード)、及びLS(ロースピード)の3種類のスピードの違いによる接続状態を用いて、USBホスト(以下、適宜「ホスト」とも称する)とUSBデバイス(以下、適宜「デバイス」とも称する)と間を接続することを可能とする。HSは、FS、及びLSに比べ、より高速のデータ転送を可能とする。一方で、データ転送しないときには、デバイスは、HSでホスト接続している場合、FS、及びLSで接続している場合に比べ、多くの電力を消費することになる。
【0003】
図6に、接続状態と、バスの状態との対応を示す。USB2.0規格では、ホストとデバイスとは、D+とD−との2種類のバスを用いて接続する。図6の上段には、D+、D−の電位(HまたはL)と、接続状態それぞれにおけるバスの状態を示す記号とを示している。
D+の電位、D−の電位ともにLのとき、バスの状態を、HS,FS,及びLSともに、SE0と呼ぶ。
D+の電位がH、D−の電位がLのとき、バスの状態を、HS,FSでは、Jと呼び、LSでは、Kと呼ぶ。
D+の電位がL、D−の電位がHのとき、バスの状態を、HS,FSでは、Kと呼び、LSでは、Jと呼ぶ。
D+の電位、D−の電位がともにHのとき、バスの状態を、HS,FS,及びLSともに、SE1と呼ぶ。
なお、バスの状態をJまたはKで示す場合、HSでは、HS−Jのように、接続状態とバスの状態とをハイフンでつなげて示す事とする。
USB2.0規格において、ホストとデバイスは、接続状態がFSのとき、3.3Vの電圧を閾値とし、接続状態がHSのとき、400mvの電圧を閾値として、バスの電位を判定することを前提とする。
【0004】
ここで、ホストとデバイスとが、接続を開始してからHSの接続状態へ遷移する手順の概略を、図7を参照して説明する。ホストとデバイスとは、接続を開始する(S91)場合、デバイスがUSBバス(D+)をプルアップして、バスの状態をFS−Jの状態へ遷移させる(S92)。ホストは、バスの状態がFS−Jであることを検出すると、バスをリセットする(S93)。このときバスの状態は、SE0となる。デバイスは、バスの状態がSE0であることを検出すると、所定期間Chirp Kを出力する(S94)。ホストは、デバイスからのChirp K出力を検出すると、当該所定期間経過後Chirp出力をおこなう(S95)。デバイスがホストからのChirp出力を検出すると、ホストとデバイスとは、HSの接続状態へ遷移する(S96)。
【0005】
USB2.0規格のENGINEERING CHANGE NOTICE(ECN)として、Link Power Management (LPM) という低消費電力モードのプロトコル規格がある(非特許文献1)。この規格では、LPM用のパケットを用いることにより、低消費電力モードへの遷移を、低レイテンシで実現する技術が規定されている。LPM用のバケットは、通常のアクティブ状態から低消費電力状態に遷移するよう要求する手段である。LPM用のパケットを、LPMトークン、または、LPMトークンパケットともいう。ホスト及びデバイスは、LPMトークンとそれに対する応答パケットを送受信することによって、L0というアクティブ状態から、L1という低消費電力状態へ遷移する。
【0006】
この遷移は、アクティブ状態のアイドル時、すなわち、ホストとデバイスとの間でパケット転送がない期間に実施される。LPMによるアクティブ状態L0から低消費電力状態L1への遷移動作において、ホストとデバイスとがHSで接続されている場合の動作について説明する。HSのアクティブ状態において、アイドル時のバスの状態は、SE0である。さらに、ホストとデバイスの接続状態がHSの場合、低消費電力状態L1のバスの状態は、FS−Jと規定されている。従って、低消費電力状態L1に遷移する前のアクティブ状態L0は、ホストとデバイスの接続状態がHSであり、バスの状態がSE0のときである。また、低消費電力状態L1は、ホストとデバイスの接続状態がFSであり、バスの接続状態がFS−Jとなる。図6では、HSでSE0から、FSでJ(FS−J)へ遷移する。すなわち、D+の電位、D−の電位がともにLから、D+の電位がH、D−の電位Lへ遷移する。
【0007】
LPMトークンおよびその応答の送受信の動作の概要は次のようなものである。まず、ホストがデバイスに対して、LPMトークンを発行する。デバイスはこのトークン受信に対し低消費電力状態L1遷移可能な状態の場合、ACKパケットを返信する。そして、所定の期間が経過後に低消費電力状態L1へ遷移する。この時デバイスはUSBバス(D+)をプルアップしてバスをFS−Jのアイドル状態としなければならない。ホストはデバイスからACKパケットを受信すると、低消費電力状態L1に遷移する。また、ホストは、デバイスからACKパケットが返信されない場合(ACKパケットを受信しない場合)、再度LPMトークンを再送することが規定されている。このようにして、ホスト、デバイスともに低消費電力状態となる。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】"ENGINEERING CHANGE NOTICE、Title:USB2.0 Link Power Management Addendum"、1−22頁、[平成22年3月12日検索]、インターネット<URL: http://www.usb.org/developers/docs/#comp_test_procedures>から"Universal Serial Bus Revision 2.0 specification"を選択し、USB2_LinkPowerMangement_ECN[final].pdfをダウンロード
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、USBバス上の信号品質劣化やノイズ等によって、デバイスが返信したACKパケットをホストが正常に受信できないことが生じる。この場合、USBプロトコル上、ホストはLPMトークン再送が許可される。ホストは、通常、合計3回のリトライが推奨されている。しかしながら、ホストが3回ともACKパケットを正常受信できなかった場合、デバイスは低消費電力状態L1となるが、ホストはアクティブ状態L0を維持するという状況に陥る。このため、ホストとデバイス間で接続状態の不整合が生じる。
【0010】
ホストとデバイス間で接続状態の不整合が生じた場合、正常な通信ができないという問題が起こる。これは、信号の電位を判断する閾値が、HSとFSとの間で異なるために生じる。上述した通り、ホストとデバイスは、接続状態がFSのとき、3.3Vの電圧を閾値とし、接続状態がHSのとき、400mvの電圧を閾値として、バスの電位を判定する。従って、ホストがアクティブ状態L0を維持している状態でパケットを送信しても、デバイスでは、信号として認識できないという事態が発生する。すなわち、送信されるすべての信号が低い電圧であるため、電位がLとして認識され、データとして正確な情報を伝送することができない。
【0011】
また、ホストとデバイス間で接続状態の不整合が生じた場合次のような問題も生じる。ホストとデバイスがHSで接続されている場合、125μsの期間が一つのフレームと規定されている。アクティブ状態L0の時、ホストは125μs毎に定期的にSOF(Start of Frame)(SOFパケット)を発行する。SOFは、一つのフレームの最初にホストから発行されるトークンパケットである。USB2.0規格では、ホストは、SOF送信時にUSBバス上の電圧レベルを観測すること、そして、デバイスが切断されていないかを確認すること、とが規定されている。もし、上述したような、ホストとデバイスとの接続状態の不整合が生じてしまった場合、ホストは、SOF送信するとともに、デバイスが切断されていると誤認することになる。具体的には、次のような現象が生じる。ホストは、HSの接続状態を維持しているため、デバイスの切断検出として800mv以下の電位で判定し、その電位を超えた場合に切断と判定する。一方デバイスは、FSの接続状態へ遷移しているため、自身のHS終端抵抗を外して、バスの状態をFS−Jとするために、USBバスをプルアップしている。従って、バスの状態は、800mvを超える電圧となっている。このため、ホストは、バスの状態として、基準値を超えた電圧を検出してしまい、デバイスが切断されたものと誤認識する状況が発生してしまう。
【0012】
このように、USBホストとUSBデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合が生じるという問題があった。
【課題を解決するための手段】
【0013】
本発明に係るUSBデバイス制御回路の一態様は、USBバスを介して、USBホストとハイスピードモードで接続するUSBデバイス制御回路であり、少なくともデバイスコントローラを備える。デバイスコントローラは、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、USBホストから所定の回数受信すると、所定の期間、USBバスの状態を観測する。そして、観測した結果を用いて、USBホストの状態を判定する。デバイスコントローラは、USBホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、USBホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。このように、USBデバイス制御回路は、状態遷移要求を所定の回数受信すると、状態遷移要求に応じて状態を遷移する機能がUSBホストにおいて正常に状態遷移が行われているか否かを判定する。この判定機能は、バスの状態を観測することによって実現する。USBデバイス制御装置は、当該判定機能により、USBホストが正常に状態遷移を行っている場合、自装置も低消費電力状態へ遷移し、USBホストが状態遷移を行っていない場合、自装置もアクティブ状態を維持する。このようにして、USBデバイス制御回路は、USBホストの実際の状態に基づいて状態遷移を行う。これにより、USBホストとUSBデバイスとの状態の不整合を回避する。
【0014】
また、本発明に係るUSBデバイスの制御方法の一態様は、USBバスを介して、USBホストとハイスピードモードで接続するUSBデバイスの制御方法である。まず、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、USBホストから所定の回数受信すると、USBバスの状態の観測を開始する。次に、観測に基づいて、USBホストの状態を判定する。そして、判定した結果に応じて、USBホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、USBホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。
【発明の効果】
【0015】
本発明によれば、USBホストとUSBデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合を回避することが可能となる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施形態1に係るUSBデバイス制御回路の一例を示すブロック図である。
【図2】USBデバイス制御回路を周辺機器に搭載する場合のシステム概略構成を示すブロック図である。
【図3】アクティブ状態から低消費電力状態へ遷移する動作の概略タイミングを示すタイミングチャートである。
【図4】アクティブ状態から低消費電力状態へ遷移する場合のUSBデバイス制御回路の動作例を示すフローチャートである。
【図5】バスをプルアップして観測する状態を模式的に示す図である。
【図6】バスの接続状態と、バスの状態との対応を示す図である。
【図7】ホストとデバイスとが、接続を開始してからHSの接続状態へ遷移する手順を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【0018】
以下の実施形態では、USBホストとUSBデバイスとがHSで接続されているときに、アクティブ状態から低消費電力状態へ遷移する場合に、USBホスト制御回路とUSBデバイス制御回路との接続状態の不整合を回避するものである。各実施形態では、USB2.0規格に準拠することを前提とする。また、(1)USBホストとUSBデバイスとは、少なくとも、ハイスピードモード(HS)とフルスピードモード(FS)との二つのモードで接続可能なこと、(2)USBホストとUSBデバイスとは、アクティブ状態と低消費電力状態との二つの状態を設定可能であり、アクティブ状態では、USBホストとUSBデバイスとの接続状態がHSであり、低消費電力状態では、接続状態がFSであること、(3)アクティブ状態から低消費電力状態へは、バスの状態がアクティブ状態のアイドル時、すなわち、SE0である場合に可能であり、低消費電力状態へ遷移するとバスの状態はFS−Jとなること、を前提とする。
【0019】
以下の各実施形態では、USBデバイスがUSBホストから、状態遷移要求を受信する場合を制御する、USBデバイス制御回路とUSBホスト制御回路とについて説明する。状態遷移要求は、アクティブ状態から低消費電力状態へ遷移する要求である。LPMトークンは、状態遷移要求の具体例である。USBデバイス制御回路は、USBデバイスへ搭載される回路である。USBホスト制御回路は、USBホストへ搭載される回路である。USBデバイスとUSBホストとは、各装置が搭載した、USBデバイス制御回路とUSBホスト制御回路との間で実施される制御処理によって、接続状態が制御される。
【0020】
USBデバイス制御回路は、状態遷移要求を、USBホスト制御回路から所定の回数受信すると、所定の期間にUSBバスの状態の観測を開始する。そして、観測に基づいて、USBホスト制御回路の状態を判定し、判定結果に応じて、USBデバイス制御回路の状態を、アクティブ状態から低消費電力状態へ遷移するか、アクティブ状態を維持するかを決定する。各実施形態では、USB2.0規格に従って、上述した所定の回数が3回であることを前提として説明する。以下図面を参照しながら詳述する。
【0021】
実施形態1.
図1は、本発明の実施形態1に係るUSBデバイス制御回路の一例を示すブロック図である。図1では、以降の説明を容易にするために、USBホスト制御回路の構成例も示している。USBデバイス制御回路100は、USBバス300を介してUSBホスト制御回路200と接続する。図1では、USBバス300は、バスD+とバスD−との二つのバスから構成される例を示しているが、これに限られるわけではない。
USBデバイス制御回路100は、デバイスコントローラ110、出力制御部(デバイス出力制御部)120、及びレシーバ(デバイスレシーバ)130を備える。
【0022】
デバイスコントローラ110は、少なくとも、次の(A)、(B)の二つの機能を備える。(A)USBホスト制御回路200から状態遷移要求を受信し、要求許諾応答(ACKパケット)を返信するとともに、自装置の状態を低消費電力状態へ遷移させる機能。(B)状態遷移要求を、USBホスト制御回路200から所定の回数受信すると、所定の期間にUSBバス300の状態を観測し、観測結果に応じて、自装置の状態を制御する機能。具体的には、デバイスコントローラ110は、自装置の状態を、USBホスト制御回路200が低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移させる。一方、USBホスト制御回路200がアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。具体的な動作についは、図3,4を用いて後述する。
【0023】
また、デバイスコントローラ110は、一般的な、USBプロトコルに準拠した送受信バケット制御、送受信データのシリアル−パラレル変換、USBエンドポイント管理、送受信データバッファ制御、応答制御などを行う機能を備える。本実施形態では、デバイスコントローラ110は、上述する機能を実現する回路を用いて構成される。
【0024】
出力制御部120は、HSまたはFSにおいて、信号の出力(LまたはHレベルの電位の出力)を制御する。また、出力制御部120は、ハイインピーダンスの状態を制御する。具体的には、出力制御部120は、FSにおいて、信号の出力を制御する、すなわち、信号を示す電圧をUSBバス300へ与える機能(FS出力制御部)を備える。また、HSにおいて、信号の出力を制御する、すなわち、信号を示す電流を供給する機能(HS出力制御部)を備える。さらに、USBバス300をFS−Jへの状態へ設定するためにバスをプルアップする機能(プルアップ部)を備える。
【0025】
図1では、出力制御部120を次のように構成する例を示している。
FS出力制御部は、ドライバ121、及びRterm181、182から構成される。
ドライバ121は、FSにおいて、USBバス300へ電圧レベルを与える。これにより、信号を出力する。
Rterm181、182は、45オーム(Ω)の終端抵抗である。
HS出力制御部は、スイッチ122、123、及び電流源124から構成される。
電流源124は、電流を供給する。また、HSにおいて、スイッチ122、123の少なくともいずれかが接続される事によって、電流を供給し、信号を出力する(USBバス300へ電圧レベルを与える)。スイッチ222、223は、デバイスコントローラ110からの制御によってON/OFFが制御される。図1では、この制御について、デバイスコントローラ110からスイッチ123へ向かう矢印を示しているが、スイッチ122も同様に制御される。
プルアップ部は、スイッチ125、電源126、及びRPU183から構成される。
電源126は、スイッチ125がONになることに応じて、電圧を供給(印加)し、U
SBバス300をFS−Jの状態へ設定するためにバスをプルアップする。スイッチ125は、デバイスコントローラ110からの制御によってON/OFFが制御される。
RPU183は、1.5キロオーム(kΩ)のプルアップ抵抗である。
【0026】
レシーバ130は、USBバス300からパケット(データ)を受信する。ここでは、レシーバ130は、HS及びFSの両方の場合ともパケットを受信する。
【0027】
USBホスト制御回路200は、ホストコントローラ210、出力制御部(ホスト出力制御部)220、及びレシーバ(ホストレシーバ)230を備える。
ホストコントローラ210は、少なくとも、USBデバイス制御回路100へ、状態遷移要求を送信し、USBデバイス制御回路100から返信される要求許諾応答(ACKパケット)に応じて、自装置の状態を低消費電力状態へ遷移させる機能を備える。
また、ホストコントローラ210は、USBプロトコルに準拠した送受信パケット制御、送受信データのシリアル−パラレル変換、USBエンドポイント管理、送受信データバッファ制御、応答制御などを行う機能を備える。本実施形態では、ホストコントローラ210は、上述する機能を実現する回路を用いて構成される。
【0028】
出力制御部220は、HSまたはFSにおいて、信号の出力(LまたはHレベルの電位の出力)を制御する。具体的には、出力制御部220は、FSにおいて、信号の出力を制御する、すなわち、信号を示す電圧をUSBバス300へ与える機能(FS出力制御部)を備える。また、HSにおいて、信号の出力を制御する、すなわち、信号を示す電流を供給する機能(HS出力制御部)を備える。
【0029】
図1では、出力制御部220を次のように構成する例を示している。
FS出力制御部は、ドライバ221とRterm281、282とから構成される。
ドライバ221は、FSにおいて、USBバス300へ電圧レベルを与える。
Rterm281、282は、45オーム(Ω)の終端抵抗である。
HS出力制御部は、スイッチ222、223と電流源224とから構成される。
電流源224は、電流を供給する。また、HSにおいて、スイッチ222、223の少なくともいずれかが接続される事によって、電流を供給し、信号を出力する。スイッチ222、223は、デバイスコントローラ110からの制御によってON/OFFが制御される。図1では、この制御について、ホストコントローラ210からスイッチ222へ向かう矢印を示しているが、スイッチ223も同様に制御される。
【0030】
レシーバ230は、USBバス300からパケット(データ)を受信する。
また、図1に示すように、USBホスト制御回路200とUSBバス300との間に、15キロオーム(kΩ)のプルダウン抵抗であるRPD283、284が配置されている。
【0031】
図2は、実施形態1のUSBデバイス制御回路100を搭載するシステム例を示すブロック図である。
図2では、USBデバイス制御回路100を周辺機器400に搭載する場合のシステム概略構成を示している。周辺機器としては、例えば、プリンタ、メモリなどがあるが、これらに限られることはない。USB2.0規格に準拠したインタフェースを採用し、USBホスト制御回路200と、HSとFSとの少なくとも二つのモードで接続可能な周辺機器であれば他の装置であってもよい。
周辺機器400は、USBデバイス制御回路100、CPU(Central Processing Unit)410、及びメモリ420を少なくとも備え、その他自装置の機能を実施する処理部430を備える。
また、USBホスト制御回路200をパーソナルコンピュータなどの計算機に搭載する場合の概略構成を示している。計算機500は、USBホスト制御回路200、CPU510、メモリ520、USBホスト制御回路200を制御するコントローラ530、及びその他の機能を実施する処理部540を備える。
【0032】
続いて、本実施形態のUSBデバイス制御回路100の動作例を、図3,4を参照して説明する。図3は、アクティブ状態から低消費電力状態へ遷移する動作の概略タイミングを示すタイミングチャートである。図4は、アクティブ状態から低消費電力状態へ遷移する場合のUSBデバイス制御回路の動作例を示すフローチャートである。図3、4では、USBデバイス制御回路100からUSBホスト制御回路200へ返信した要求許諾応答(ACKパケット)が正常に受信されない場合の動作を中心に示している。
【0033】
まず、図3を参照して、USBホスト制御回路200からUSBデバイス制御回路100へ状態遷移要求が送信されるときのパケットの送受信を説明する。USB2.0規格では、USBホスト制御回路200がUSBデバイス制御回路100に対して、アクティブ状態から低消費電力状態への遷移を要求する場合、LPMトークンを発行する。LPMトークンは、状態遷移要求を示すパケット、すなわち、アクティブ状態から低消費電力状態への遷移を、USBデバイス制御回路100に要求するパケットである。また、USBホスト制御回路200は、USBデバイス制御回路100からACKパケットが返信されない場合、最低3回LPMトークンを発行することが決められている。図3では、3回LPMトークンが発行された場合を示す。本実施形態のUSBデバイス制御回路100は、任意の回数(ここでは、3回)LPMトークンが発行された場合に特有の動作を行うものである。
【0034】
背景技術で説明したように、USBデバイス制御回路100とUSBホスト制御回路200との接続状態がHSの場合、USBホスト制御回路200は、125μm毎に定期的にSOFを発行する。図3では、T0、T10のタイミングでSOFを発行する場合を示す。また、USB2.0規格では、SOFのタイミングより前の所定の期間にパケットの転送を禁止する期間が設定されており、具体的には、EOF1(End of Frame 1)と、EOF2(End of Frame 2)とが設定されている。EOF1は、パケット転送の禁止を開始するタイミングである。EOF1のタイミング以降、次のSOFのタイミングまで、USBホスト制御回路200は、USBデバイス制御回路100へパケットを送信しない期間となる。EOF2は、パケット転送が完全に禁止されている期間の始まりである。EOF1からEOF2までの期間には、EOF1より前に送信したパケットが転送される場合があるが、EOF2以降は、パケット転送が完全に禁止される。EOF2以降にパケット転送が検出された場合、USBホスト制御回路200またはUSBデバイス制御回路100は、異常が発生したことを検出し、当該の接続を無効とする等の異常検出時の処理が必要となる。図3では、EOF1をT7のタイミングに、EOF2をT8のタイミングに示している。
【0035】
USBホスト制御回路200は、まず、T0のタイミングにおいて、SOFを発行する。その後、任意のタイミングT1において、LPMトークンを発行する。USBデバイス制御回路100は、LPMトークンを受信すると、低消費電力状態L1への遷移が可能な場合、ACKパケットをUSBホスト制御回路200へ返信する(T2)。
【0036】
USBデバイス制御回路100が返信したACKパケットがUSBバス300上のノイズなどに起因して、USBホスト制御回路200において正常に受信されない事態が生じると仮定する。この場合、USBホスト制御回路200は、T3のタイミングにおいて、2回目のLPMトークンを発行する。T3のタイミングは、T1のタイミングから予め決められた時間(以降、「再送までの経過時間」と称する)が経過した後のタイミングである。USBデバイス制御回路100は、2回目のLPMトークンを受信すると、2回目のACKパケットをUSBホスト制御回路200へ返信する(T4)。再度、USBデバイス制御回路100が返信したACKパケットがUSBホスト制御回路200において正常に受信されない事態が生じると仮定する。この場合、USBホスト制御回路200は、T3のタイミングから再送までの経過時間の経過後、T5のタイミングで3回目のLPMトークンを発行する。USBデバイス制御回路100は、3回目のLPMトークンを受信すると、3回目のACKパケットをUSBホスト制御回路200へ返信する。
【0037】
なお、USBデバイス制御回路100が返信したACKパケットが、USBホスト制御回路200において正常に受信された場合、USBホスト制御回路200は、低消費電力状態へ遷移する。また、USBデバイス制御回路100は、上述した再送までの経過時間、再度LPMトークンを受信しないことを確認した後、低消費電力状態へ遷移する。例えば、USBデバイス制御回路100は、T2のタイミングでACKパケットを返信した後、再送までの経過時間(図3では、T3のタイミングまでの期間)経過後、LPMトークンが再発行されなかった場合に、低消費電力状態へ遷移する。パケットの送受信が正常な場合には、このようにして、USBデバイス制御回路100とUSBホスト制御回路200との間の接続状態の整合性をとる。
【0038】
USBデバイス制御回路100は、3回目のACKパケットを返信すると、USBバス300の状態の観測を開始する。バスの観測期間は、最大でも、ACKパケット返信(T6)後、次のSOFが発行される(T10)より前までの期間である。バスの状態の観測については、図4のフローチャートを参照して詳述するUSBデバイス制御回路100は、バスの状態の観測結果に応じて、自装置をアクティブ状態L0から低消費電力状態L1へ遷移させる。すなわち、バスの状態を観測した結果、USBホスト制御回路200が低消費電力状態L1へ遷移していると判定した場合、自装置を低消費電力状態L1へ遷移させる。一方、USBホスト制御回路200がアクティブ状態L0を維持(継続)していると判定した場合、自装置もアクティブ状態L0を維持する。このようにして、次のSOFのタイミング(T10)までに、USBデバイス制御回路100は、USBホスト制御回路200と同じ接続状態となるように(接続状態の整合性を取るように)制御する。
【0039】
次に、図4のフローチャートに示すUSBデバイス制御回路100の動作を、図3のタイミングチャートを参照して説明する。具体的な状況として、図3に示すパケットのやり取りが実施される事を前提とする。ここでは、特に図3のT6のタイミング以降に焦点を当てて説明する。
USBデバイス制御回路100とUSBホスト制御回路200とは、例えば、図7に示す手順により、相互の接続状態がHSであり、それぞれの自装置がアクティブ状態L0であることを前提とする(S11)。このとき、USBバス300は、SE0、HS−J、HS−K、SE1のいずれかの状態となる。
【0040】
USBホスト制御回路200は、アクティブ状態L0のアイドル時、すわなち、USBバス300がSE0の状態のときに、LPMトークンを発行する(図3のT1、T3)。USBデバイス制御回路100は、LPMトークンを受信すると、低消費電力状態L1へ遷移可能な場合、ACKパケットを返信する(図3のT2、T4)。USBデバイス制御回路100は、LPMトークンの受信が3回目でないときは(S12でNO)、アクティブ状態L0を維持する(S11)。T6のタイミングにおいて、USBデバイス制御回路100は、3回目のLPMトークンを受信すると(S12でYES)、低消費電力状態L1へ遷移可能な場合、ACKパケットを返信する(S13でYES)。USBデバイス制御回路100は、低消費電力状態L1へ遷移できないと判断したときなど、ACKパケットを返信しない場合(S13でNO)、アクティブ状態L0を維持する(S11)。例えば、USBデバイス制御回路100が送信するデータを準備中である、何らかの処理中であるなどの理由で、LPMトークンを受信したときに低消費電力状態L1へ遷移できない場合である。
【0041】
USBデバイス制御回路100は、3回目のLPMトークンに対してACKパケットを返信すると、USBバス300の状態の観測を開始する(S14)。USBデバイス制御回路100(デバイスコントローラ110)は、USBバス300の観測結果に基づいて、USBホスト制御回路200が低消費電力状態L1へ遷移したか否かを判定する。そして、判定結果に応じて、自装置の状態を決定する。
【0042】
USBバス300の観測は、第1期間と、第1期間経過後の第2期間との二つに分けられる。第1期間は、パケットの転送が許容されている期間である。従って、パケットが転送される可能性がある。第2期間は、パケットの転送が禁止されている期間である。図3のタイミングチャートでは、第1期間は、3回目のACKパケット返信(T6のタイミング)以降EOF1(T7のタイミング)以前までであり、第2期間は、EOF1からEOF2(T8のタイミング)までである。
【0043】
まず、第1期間において、USBデバイス制御回路100は、バスの状態がSE0以外であるか否かを検出する。バスの状態がSE0以外であることを検出することによって、USBホスト制御回路200がアクティブ状態L0を維持していると判定する(S14〜S16でNO)。その後、第2期間において、USBデバイス制御回路100は、USBバス300がFS−Jの状態に設定可能であるかを検査する。検査結果に応じて、USBホスト制御回路200が低消費電力状態L1へ遷移したか否かを判定する。USBホスト制御回路200が低消費電力状態L1へ遷移していると判定した場合、自装置も低消費電力状態L1へ遷移する(S16でYES〜S19)。以下、具体的に説明する。
【0044】
USBデバイス制御回路100は、第1期間において、USBバス300がSEO以外の状態であることを検出すると(S15でNO)、アクティブ状態L0を維持(継続)する(S11)。すわなち、USBバス300がSEO以外の状態である場合、USBホスト制御回路200はパケットを送信している。従って、USBデバイス制御回路100は、USBホスト制御回路200がアクティブ状態L0であると判定する。
このように、USBホスト制御回路200から3回連続してLPMトークンを送信された場合、USBデバイス制御回路100は、USBバス300上でSE0(Idle)以外が観測された場合、USBホスト制御回路200が3回目のACKパケットも正常に受信できなかったとみなす。従って、USBデバイス制御回路100は、低消費電力状態L1に遷移せずにアクティブ状態L0を続ける。
【0045】
一方、USBデバイス制御回路100は、バスの状態がSEOであると観測される場合(S15でYES)、EOF1まで、USBバス300の観測を継続する(S16でNO)。EOF1までの期間(第1期間)、USBバス300がSE0以外の状態であることを検出しなかった場合、EOF1時点において(S16でYES)、USBデバイス制御回路100は、USBバス300をプルアップしてUSBバス300を観測する(S17)。
具体的には、USBデバイス制御回路100は、USBバス300をFS−Jの状態に設定し、USBバス300がFS−Jの状態となるかを観測する。USBデバイス制御回路100は、USB2.0で規定されたEOF1からEOF2までの期間(第2期間)において、USBバス300をプルアップし、かつ、バスを観測する。
【0046】
USBデバイス制御回路100は、USBバス300がFS−Jの状態であることを検出した場合(S18でYES)、USBホスト制御回路200が低消費電力状態L1へ遷移したとみなす。そして、USBデバイス制御回路100は、自装置も低消費電力状態L1に遷移する(S19)。ここで、USBバス300上でFS−Jが検出できた場合とは、プルアップの結果、USBバス300の電圧が一定レベルを超えた場合である。また、USBホスト制御回路200が低消費電力状態L1へ遷移していることは、ACKパケットが正常に受信されたことを意味する。
【0047】
USBデバイス制御回路100は、USBバス300上でSE0を観測した場合(S18でNO)、USBホスト制御回路200がアクティブ状態L0を維持しているとみなす。そして、USBデバイス制御回路100は、EOF2までの期間にUSBバス300をプルアップすることを止めてアクティブ状態L0に戻る(維持する)(S11)。ここで、USBバス300上でSE0を観測した場合とは、USBバス300をプルアップしたがUSBバス300の電圧が一定レベルを超えなかった場合である。すなわち、EOF1からEOF2までの間は、パケットを転送しない期間であるため、通常、USBバス300は、SE0の状態となっている。また、USBホスト制御回路200が低消費電力状態へ遷移している場合、USBデバイス制御回路100は、USBバス300をプルアップすることにより、USBバス300をFS−Jの状態に設定することができる。しかし、USBホスト制御回路200がアクティブ状態L0を維持している場合、USBバス300をプルアップしてもUSBバスの電圧が一定レベルを超えないことになる。USBホスト制御回路200がアクティブ状態L0を維持しているとは、USBホスト制御回路200がACKパケットを受信できなかったことを意味する。
【0048】
USBホスト制御回路200が切断状態を誤検出してしまうのはSOF時となる。従って、USBデバイス制御回路100は、上述したUSBバス300のプルアップやバスの状態の観測をEOF1とEOF2との期間、すなわち、SOFの直前のタイミングにおいて行う必要がある。
EOF1とEOF2との期間は短いため、RPU125の1.5キロオームのプルアップでは間に合わない可能性がある。このため、FS−Jを一瞬ドライブする手段も考えられる。具体的には、USBデバイス制御回路100のドライバ121を一瞬ドライブすることにより、USBバス300の電圧を一時的に上昇させ、電圧が維持されるか、低下するかを観測する。USBバス300の電圧が維持された場合、USBホスト制御回路200は、低消費電力状態L1へ遷移していると判断できる。
【0049】
ここで、EOF1からEOF2までの期間(第2期間)における、USBデバイス制御回路100とUSBホスト制御回路200との回路の状態を、スイッチのON/OFF等を用いて説明する。図5を用いてバスの状態を説明する。図5は、バスをプルアップして観測する状態を模式的に示す図である。
USBデバイス制御回路100において、デバイスコントローラ110は、EOF1時点であることを認識すると(S16でYES)、スイッチ125をONにし、電源126とRPU183とを接続状態にする。これにより、バスD+をプルアップする。このとき、スイッチ122、123はOFFである。また、デバイスコントローラ110は、ドライバ121を、ハイインピーダンスの状態となるように制御する。図5に示すように、USBデバイス制御回路100では、スイッチ125がONとなる。従って、電源126からの電圧がバスD+へ供給されている。バスD+と電源126との間には、RPU183が配置されている。
【0050】
USBホスト制御回路200では、接続状態により次のように制御される。
USBホスト制御回路200がアクティブ状態L0のアイドル時の場合、ホストコントローラ210は、バスの状態をSE0となるように制御する。具体的には、ホストコントローラ210は、ドライバ221を、電位がLとなるように制御し、スイッチ222,223を、OFFにする。スイッチ222,223を、OFFにするのは、この期間では、パケットの転送をしないためである。これにより、USBバス300は、Rterm281,282と接続される状態となる。
USBホスト制御回路200が低消費電力状態L1の場合、ホストコントローラ210は、バスの状態をFS−Jとなるように制御する。具体的には、ホストコントローラ210は、ドライバ221をハイインピーダンスの状態になるように制御し、スイッチ222,223を、OFFにする。これにより、USBバス300は、RPD283、284と接続される状態となる。
【0051】
デバイスコントローラ110がバスD+をRPU183によりプルアップしている場合、USBホスト制御回路200は常にバスD+をプルダウンした状態(RPD283のみの状態、あるいは、RPD283とRterm281の並列の状態)であるため、バスD+の電位は電源126の電圧の抵抗分圧によって決定される。ここで、USBホスト制御部200の状態によって、バスD+の状態は次のようになる。
USBホスト制御回路200がアクティブ状態L0の場合、図5のRXで示す抵抗は、RPD283とRterm281の並列抵抗となる。バスD+の電圧は、RPU183と、<RPD283とRterm281の並列抵抗>との間の抵抗分圧によって決まる電圧となり、Lレベルに近い値となる。低消費電力状態L1では、USBバス300がFS−Jの状態となるため、D+の電位はHとなるはずである。ここでは、バスD+の電位はLと判定されるレベルであるため、FS−Jの状態とならない。このため、デバイスコントローラ110は、USBホスト制御回路200はHS終端抵抗Rterm281の接続を外していない状態、すなわち、HSのアクティブ状態L0を維持していると判定する。
一方、USBホスト制御回路200が低消費電力状態L1の場合、図5のRXで示す抵抗は、RPD283のみとなる。バスD+の電圧は、RPU183とRPD283との間の抵抗分圧によって決まる電圧となり、3.3Vに近い値となる。従って、USBバス300は、FS−Jの状態となる。このため、デバイスコントローラ110は、USBホスト制御回路200は低消費電力状態L1へ遷移したと判定する。
【0052】
また、USBデバイス制御回路100は、LPMトークンを3回(あるいは3回以上)受信し、バスの状態の観測結果に応じて低消費電力状態L1へ遷移する場合、EOF1とEOF2との期間に遷移を実施する必要がある。もし、EOF1以前に低消費電力状態L1へ遷移すると、USBホスト制御回路200から送信されるHSのパケットを検出できなくなる。具体的には、USBデバイス制御回路100が低消費電力状態L1へ遷移するために、EOF1以前にUSBバス300をプルアップすることになる。このとき、USBホスト制御回路200が、HSのアクティブ状態L0を維持した状態である仮定すると、HSのパケットを送信することになる。接続状態がHSの場合、接続状態がFSの場合より低い電圧を用いてパケットを送信する。例えば、上述した通り、接続状態がFSのとき、3.3Vの電圧を閾値とし、接続状態がHSのとき、400mvの電圧を閾値として、バスの電位を判定する。従って、USBデバイス制御回路100が低消費電力状態L1へ遷移してUSBバス300をプルアップした状態では、HSのパケットを検出できなくなり、送信されたHSのパケットに対して応答を返信できないという不具合が生じる。
なお、LPMトークンの受信が2回以下の場合には、上述した通常の正常動作の手順により、低消費電力状態L1へ遷移することが可能である。
【0053】
以上説明したように、本実施形態では、USBデバイス制御回路100は、EOF1、及びEOF2時点までUSBバス300を観測することによって、USBホスト制御回路200の状態を判別する。その上で低消費電力状態L1に遷移するかどうかを判断する。このようにして、USBデバイスとUSBホストとの状態不整合による切断誤検出を防止する。これにより、接続状態の不整合を回避する低消費電力状態への遷移を実現することが可能となる。
【0054】
その他の実施形態
上記実施形態では、LPMトークンのリトライ回数として3回を用いて説明したが、3より大きい数値を用いてもよい。USBデバイス制御回路100が返信したACKパケットがUSBホスト制御回路200において正常に受信されない事態が生じた場合に、4回以上LPMトークンを発行するか否かは、設計上の問題である。図4では、LPMトークンを3回受信した場合にUSBバス300の状態を観測することになっているが、これに限られる事はない。LPMトークンの受信が3回以上の場合、あるいは、LPMトークンの受信が3の倍数の場合について、USBバス300の状態を観測することにしてもよい。
【0055】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【0056】
100 USBデバイス制御回路
110 デバイスコントローラ
120、220 出力制御部
130、230 レシーバ
121、221 ドライバ
122、123、125、222、223 スイッチ
124、224電流源
126 電源
181、182、281、282 Rterm
183 RPU
210 ホストコントローラ
283、284 RPD
200 USBホスト制御回路
300 USBバス
400 周辺機器
410、510 CPU
420、520 メモリ
430、540 処理部
530 コントローラ

【特許請求の範囲】
【請求項1】
USBバスを介して、USBホストとハイスピードモードで接続するUSBデバイス制御回路であって、
アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、USBホストから所定の回数受信すると、所定の期間、前記USBバスの状態を観測してUSBホストの状態を判定し、前記USBホストが前記低消費電力状態へ遷移したと判定する場合、前記低消費電力状態へ遷移し、前記USBホストが前記アクティブ状態を維持していると判定する場合、前記アクティブ状態を維持するデバイスコントローラを備えるUSBデバイス制御回路。
【請求項2】
前記デバイスコントローラは、前記所定の期間に前記USBバスにパケットが転送されていることを検出すると、前記USBホストが前記アクティブ状態を維持していると判定することを特徴とする請求項1記載のUSBデバイス制御回路。
【請求項3】
フルスピードモードと前記ハイスピードモードとにおいて、前記USBバスへの出力を制御する出力制御部を、さらに備え、
前記デバイスコントローラは、前記所定の期間を、バケット転送が許容されている第1期間と、前記第1期間経過後の第2期間とに分け、前記第1期間にバケット転送がなかった場合、前記USBバスを前記フルスピードモードに設定するように前記出力制御部を制御した後、前記USBバスの状態を観測し、前記第2期間において、前記USBバスの状態が前記フルスピードモードであることを検出した場合、前記USBホストが前記低消費電力状態へ遷移したと判定し、前記USBバスの状態が前記フルスピードモードであることを検出しなかった場合に、前記USBホストが前記アクティブ状態を維持していると判定することを特徴とする請求項2記載のUSBデバイス制御回路。
【請求項4】
前記デバイスコントローラは、前記第2期間に、前記出力制御部に前記USBバスをプルアップさせて前記USBバスへフルスピードモードを設定させ、前記USBバスが所定の電圧以上であると、前記USBホストが前記低消費電力状態に遷移したと判断し、前記所定の電圧未満であると、前記USBホストが前記アクティブ状態を維持していると判定することを特徴とする請求項3記載のUSBデバイス制御回路。
【請求項5】
前記第1期間は、前記所定の回数の状態遷移要求への要求許諾応答を送信した後、パケット転送が許容されている期間であり、前記第2期間は、パケット転送が禁止されている期間であることを特徴とする請求項3又は4記載のUSBデバイス制御回路。
【請求項6】
前記デバイスコントローラは、USB2.0規格に準拠し、
前記所定の回数は、3回であり、
前記第1期間は、3回目の状態遷移要求への要求許諾応答を送信した後、EOF1(End of Frame 1)までの期間であり、前記第2期間は、EOF1からEOF2(End of Frame 2)までの期間であることを特徴とする請求項3乃至5のいずれか一項に記載のUSBデバイス制御回路。
【請求項7】
前記デバイスコントローラは、前記USBホストが定期的に前記USBバスの状態を観測する前までに、前記低消費電力状態と前記アクティブ状態のとのいずれかを選択することを特徴とする請求項1乃至6のいずれか一項に記載のUSBデバイス制御回路。
【請求項8】
USBバスを介して、USBホストとハイスピードモードで接続するUSBデバイスの制御方法であって、
アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、USBホストから所定の回数受信すると、前記USBバスの状態の観測を開始し、
観測に基づいて、前記USBホストの状態を判定し、
前記USBホストが前記低消費電力状態へ遷移したと判定する場合、前記低消費電力状態へ遷移し、前記USBホストが前記アクティブ状態を維持していると判定する場合、前記アクティブ状態を維持するUSBデバイスの制御方法。
【請求項9】
前記USBホストの状態の判定において、
前記観測を開始した後、前記USBホストが前記アクティブ状態であることを検出すると、前記アクティブ状態を維持し、
前記USBホストが前記アクティブ状態であることを検出しない場合、所定の期間前記観測を継続し、
前記USBホストが前記低消費電力状態へ遷移したことを検出した場合、前記低消費電力状態へ遷移し、
前記USBホストが前記低消費電力状態へ遷移したことを検出しなかった場合、前記アクティブ状態を維持することを特徴とする請求項8記載のUSBデバイスの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−215855(P2011−215855A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−83006(P2010−83006)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】