(57)【要約】【課題】ＵＳＢホストとＵＳＢデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合を回避する。【解決手段】ＵＳＢバス３００を介して、ＵＳＢホスト（ＵＳＢホスト制御回路２００）とハイスピードモードで接続するＵＳＢデバイス制御回路１００であって、デバイスコントローラ１１０を備える。デバイスコントローラ１１０は、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、ＵＳＢホストから所定の回数受信すると、所定の期間、ＵＳＢバス３００の状態を観測してＵＳＢホストの状態を判定する。デバイスコントローラ１１０は、ＵＳＢホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、ＵＳＢホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。【選択図】図１
2011215855.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢバスを介して、ＵＳＢホストとハイスピードモードで接続するＵＳＢデバイス制御回路であって、
アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、ＵＳＢホストから所定の回数受信すると、所定の期間、前記ＵＳＢバスの状態を観測してＵＳＢホストの状態を判定し、前記ＵＳＢホストが前記低消費電力状態へ遷移したと判定する場合、前記低消費電力状態へ遷移し、前記ＵＳＢホストが前記アクティブ状態を維持していると判定する場合、前記アクティブ状態を維持するデバイスコントローラを備えるＵＳＢデバイス制御回路。
【請求項２】
前記デバイスコントローラは、前記所定の期間に前記ＵＳＢバスにパケットが転送されていることを検出すると、前記ＵＳＢホストが前記アクティブ状態を維持していると判定することを特徴とする請求項１記載のＵＳＢデバイス制御回路。
【請求項３】
フルスピードモードと前記ハイスピードモードとにおいて、前記ＵＳＢバスへの出力を制御する出力制御部を、さらに備え、
前記デバイスコントローラは、前記所定の期間を、バケット転送が許容されている第１期間と、前記第１期間経過後の第２期間とに分け、前記第１期間にバケット転送がなかった場合、前記ＵＳＢバスを前記フルスピードモードに設定するように前記出力制御部を制御した後、前記ＵＳＢバスの状態を観測し、前記第２期間において、前記ＵＳＢバスの状態が前記フルスピードモードであることを検出した場合、前記ＵＳＢホストが前記低消費電力状態へ遷移したと判定し、前記ＵＳＢバスの状態が前記フルスピードモードであることを検出しなかった場合に、前記ＵＳＢホストが前記アクティブ状態を維持していると判定することを特徴とする請求項２記載のＵＳＢデバイス制御回路。
【請求項４】
前記デバイスコントローラは、前記第２期間に、前記出力制御部に前記ＵＳＢバスをプルアップさせて前記ＵＳＢバスへフルスピードモードを設定させ、前記ＵＳＢバスが所定の電圧以上であると、前記ＵＳＢホストが前記低消費電力状態に遷移したと判断し、前記所定の電圧未満であると、前記ＵＳＢホストが前記アクティブ状態を維持していると判定することを特徴とする請求項３記載のＵＳＢデバイス制御回路。
【請求項５】
前記第１期間は、前記所定の回数の状態遷移要求への要求許諾応答を送信した後、パケット転送が許容されている期間であり、前記第２期間は、パケット転送が禁止されている期間であることを特徴とする請求項３又は４記載のＵＳＢデバイス制御回路。
【請求項６】
前記デバイスコントローラは、ＵＳＢ２．０規格に準拠し、
前記所定の回数は、３回であり、
前記第１期間は、３回目の状態遷移要求への要求許諾応答を送信した後、ＥＯＦ１（End of Frame 1）までの期間であり、前記第２期間は、ＥＯＦ１からＥＯＦ２（End of Frame 2）までの期間であることを特徴とする請求項３乃至５のいずれか一項に記載のＵＳＢデバイス制御回路。
【請求項７】
前記デバイスコントローラは、前記ＵＳＢホストが定期的に前記ＵＳＢバスの状態を観測する前までに、前記低消費電力状態と前記アクティブ状態のとのいずれかを選択することを特徴とする請求項１乃至６のいずれか一項に記載のＵＳＢデバイス制御回路。
【請求項８】
ＵＳＢバスを介して、ＵＳＢホストとハイスピードモードで接続するＵＳＢデバイスの制御方法であって、
アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、ＵＳＢホストから所定の回数受信すると、前記ＵＳＢバスの状態の観測を開始し、
観測に基づいて、前記ＵＳＢホストの状態を判定し、
前記ＵＳＢホストが前記低消費電力状態へ遷移したと判定する場合、前記低消費電力状態へ遷移し、前記ＵＳＢホストが前記アクティブ状態を維持していると判定する場合、前記アクティブ状態を維持するＵＳＢデバイスの制御方法。
【請求項９】
前記ＵＳＢホストの状態の判定において、
前記観測を開始した後、前記ＵＳＢホストが前記アクティブ状態であることを検出すると、前記アクティブ状態を維持し、
前記ＵＳＢホストが前記アクティブ状態であることを検出しない場合、所定の期間前記観測を継続し、
前記ＵＳＢホストが前記低消費電力状態へ遷移したことを検出した場合、前記低消費電力状態へ遷移し、
前記ＵＳＢホストが前記低消費電力状態へ遷移したことを検出しなかった場合、前記アクティブ状態を維持することを特徴とする請求項８記載のＵＳＢデバイスの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）デバイスの低消費電力制御に関する。
【背景技術】
【０００２】
ＵＳＢ２．０規格では、ＨＳ（ハイスピード）、ＦＳ（フルスピード）、及びＬＳ（ロースピード）の３種類のスピードの違いによる接続状態を用いて、ＵＳＢホスト（以下、適宜「ホスト」とも称する）とＵＳＢデバイス（以下、適宜「デバイス」とも称する）と間を接続することを可能とする。ＨＳは、ＦＳ、及びＬＳに比べ、より高速のデータ転送を可能とする。一方で、データ転送しないときには、デバイスは、ＨＳでホスト接続している場合、ＦＳ、及びＬＳで接続している場合に比べ、多くの電力を消費することになる。
【０００３】
図６に、接続状態と、バスの状態との対応を示す。ＵＳＢ２．０規格では、ホストとデバイスとは、Ｄ＋とＤ−との２種類のバスを用いて接続する。図６の上段には、Ｄ＋、Ｄ−の電位（ＨまたはＬ）と、接続状態それぞれにおけるバスの状態を示す記号とを示している。
Ｄ＋の電位、Ｄ−の電位ともにＬのとき、バスの状態を、ＨＳ，ＦＳ，及びＬＳともに、ＳＥ０と呼ぶ。
Ｄ＋の電位がＨ、Ｄ−の電位がＬのとき、バスの状態を、ＨＳ，ＦＳでは、Ｊと呼び、ＬＳでは、Ｋと呼ぶ。
Ｄ＋の電位がＬ、Ｄ−の電位がＨのとき、バスの状態を、ＨＳ，ＦＳでは、Ｋと呼び、ＬＳでは、Ｊと呼ぶ。
Ｄ＋の電位、Ｄ−の電位がともにＨのとき、バスの状態を、ＨＳ，ＦＳ，及びＬＳともに、ＳＥ１と呼ぶ。
なお、バスの状態をＪまたはＫで示す場合、ＨＳでは、ＨＳ−Ｊのように、接続状態とバスの状態とをハイフンでつなげて示す事とする。
ＵＳＢ２．０規格において、ホストとデバイスは、接続状態がＦＳのとき、３．３Ｖの電圧を閾値とし、接続状態がＨＳのとき、４００ｍｖの電圧を閾値として、バスの電位を判定することを前提とする。
【０００４】
ここで、ホストとデバイスとが、接続を開始してからＨＳの接続状態へ遷移する手順の概略を、図７を参照して説明する。ホストとデバイスとは、接続を開始する（Ｓ９１）場合、デバイスがＵＳＢバス（Ｄ＋）をプルアップして、バスの状態をＦＳ−Ｊの状態へ遷移させる（Ｓ９２）。ホストは、バスの状態がＦＳ−Ｊであることを検出すると、バスをリセットする（Ｓ９３）。このときバスの状態は、ＳＥ０となる。デバイスは、バスの状態がＳＥ０であることを検出すると、所定期間Ｃｈｉｒｐ  Ｋを出力する（Ｓ９４）。ホストは、デバイスからのＣｈｉｒｐ  Ｋ出力を検出すると、当該所定期間経過後Ｃｈｉｒｐ出力をおこなう（Ｓ９５）。デバイスがホストからのＣｈｉｒｐ出力を検出すると、ホストとデバイスとは、ＨＳの接続状態へ遷移する（Ｓ９６）。
【０００５】
ＵＳＢ２．０規格のＥＮＧＩＮＥＥＲＩＮＧ  ＣＨＡＮＧＥ  ＮＯＴＩＣＥ（ＥＣＮ）として、Ｌｉｎｋ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  （ＬＰＭ）  という低消費電力モードのプロトコル規格がある（非特許文献１）。この規格では、ＬＰＭ用のパケットを用いることにより、低消費電力モードへの遷移を、低レイテンシで実現する技術が規定されている。ＬＰＭ用のバケットは、通常のアクティブ状態から低消費電力状態に遷移するよう要求する手段である。ＬＰＭ用のパケットを、ＬＰＭトークン、または、ＬＰＭトークンパケットともいう。ホスト及びデバイスは、ＬＰＭトークンとそれに対する応答パケットを送受信することによって、Ｌ０というアクティブ状態から、Ｌ１という低消費電力状態へ遷移する。
【０００６】
この遷移は、アクティブ状態のアイドル時、すなわち、ホストとデバイスとの間でパケット転送がない期間に実施される。ＬＰＭによるアクティブ状態Ｌ０から低消費電力状態Ｌ１への遷移動作において、ホストとデバイスとがＨＳで接続されている場合の動作について説明する。ＨＳのアクティブ状態において、アイドル時のバスの状態は、ＳＥ０である。さらに、ホストとデバイスの接続状態がＨＳの場合、低消費電力状態Ｌ１のバスの状態は、ＦＳ−Ｊと規定されている。従って、低消費電力状態Ｌ１に遷移する前のアクティブ状態Ｌ０は、ホストとデバイスの接続状態がＨＳであり、バスの状態がＳＥ０のときである。また、低消費電力状態Ｌ１は、ホストとデバイスの接続状態がＦＳであり、バスの接続状態がＦＳ−Ｊとなる。図６では、ＨＳでＳＥ０から、ＦＳでＪ（ＦＳ−Ｊ）へ遷移する。すなわち、Ｄ＋の電位、Ｄ−の電位がともにＬから、Ｄ＋の電位がＨ、Ｄ−の電位Ｌへ遷移する。
【０００７】
ＬＰＭトークンおよびその応答の送受信の動作の概要は次のようなものである。まず、ホストがデバイスに対して、ＬＰＭトークンを発行する。デバイスはこのトークン受信に対し低消費電力状態Ｌ１遷移可能な状態の場合、ＡＣＫパケットを返信する。そして、所定の期間が経過後に低消費電力状態Ｌ１へ遷移する。この時デバイスはＵＳＢバス（Ｄ＋）をプルアップしてバスをＦＳ−Ｊのアイドル状態としなければならない。ホストはデバイスからＡＣＫパケットを受信すると、低消費電力状態Ｌ１に遷移する。また、ホストは、デバイスからＡＣＫパケットが返信されない場合（ＡＣＫパケットを受信しない場合）、再度ＬＰＭトークンを再送することが規定されている。このようにして、ホスト、デバイスともに低消費電力状態となる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】"ENGINEERING CHANGE NOTICE、Title:USB2.0 Link Power Management Addendum"、１−２２頁、［平成２２年３月１２日検索］、インターネット＜URL: http://www.usb.org/developers/docs/#comp_test_procedures>から"Universal Serial Bus Revision 2.0 specification"を選択し、USB2_LinkPowerMangement_ECN[final].pdfをダウンロード
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＵＳＢバス上の信号品質劣化やノイズ等によって、デバイスが返信したＡＣＫパケットをホストが正常に受信できないことが生じる。この場合、ＵＳＢプロトコル上、ホストはＬＰＭトークン再送が許可される。ホストは、通常、合計３回のリトライが推奨されている。しかしながら、ホストが３回ともＡＣＫパケットを正常受信できなかった場合、デバイスは低消費電力状態Ｌ１となるが、ホストはアクティブ状態Ｌ０を維持するという状況に陥る。このため、ホストとデバイス間で接続状態の不整合が生じる。
【００１０】
ホストとデバイス間で接続状態の不整合が生じた場合、正常な通信ができないという問題が起こる。これは、信号の電位を判断する閾値が、ＨＳとＦＳとの間で異なるために生じる。上述した通り、ホストとデバイスは、接続状態がＦＳのとき、３．３Ｖの電圧を閾値とし、接続状態がＨＳのとき、４００ｍｖの電圧を閾値として、バスの電位を判定する。従って、ホストがアクティブ状態Ｌ０を維持している状態でパケットを送信しても、デバイスでは、信号として認識できないという事態が発生する。すなわち、送信されるすべての信号が低い電圧であるため、電位がＬとして認識され、データとして正確な情報を伝送することができない。
【００１１】
また、ホストとデバイス間で接続状態の不整合が生じた場合次のような問題も生じる。ホストとデバイスがＨＳで接続されている場合、１２５μｓの期間が一つのフレームと規定されている。アクティブ状態Ｌ０の時、ホストは１２５μｓ毎に定期的にＳＯＦ（Start of Frame）（ＳＯＦパケット）を発行する。ＳＯＦは、一つのフレームの最初にホストから発行されるトークンパケットである。ＵＳＢ２．０規格では、ホストは、ＳＯＦ送信時にＵＳＢバス上の電圧レベルを観測すること、そして、デバイスが切断されていないかを確認すること、とが規定されている。もし、上述したような、ホストとデバイスとの接続状態の不整合が生じてしまった場合、ホストは、ＳＯＦ送信するとともに、デバイスが切断されていると誤認することになる。具体的には、次のような現象が生じる。ホストは、ＨＳの接続状態を維持しているため、デバイスの切断検出として８００ｍｖ以下の電位で判定し、その電位を超えた場合に切断と判定する。一方デバイスは、ＦＳの接続状態へ遷移しているため、自身のＨＳ終端抵抗を外して、バスの状態をＦＳ−Ｊとするために、ＵＳＢバスをプルアップしている。従って、バスの状態は、８００ｍｖを超える電圧となっている。このため、ホストは、バスの状態として、基準値を超えた電圧を検出してしまい、デバイスが切断されたものと誤認識する状況が発生してしまう。
【００１２】
このように、ＵＳＢホストとＵＳＢデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合が生じるという問題があった。
【課題を解決するための手段】
【００１３】
本発明に係るＵＳＢデバイス制御回路の一態様は、ＵＳＢバスを介して、ＵＳＢホストとハイスピードモードで接続するＵＳＢデバイス制御回路であり、少なくともデバイスコントローラを備える。デバイスコントローラは、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、ＵＳＢホストから所定の回数受信すると、所定の期間、ＵＳＢバスの状態を観測する。そして、観測した結果を用いて、ＵＳＢホストの状態を判定する。デバイスコントローラは、ＵＳＢホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、ＵＳＢホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。このように、ＵＳＢデバイス制御回路は、状態遷移要求を所定の回数受信すると、状態遷移要求に応じて状態を遷移する機能がＵＳＢホストにおいて正常に状態遷移が行われているか否かを判定する。この判定機能は、バスの状態を観測することによって実現する。ＵＳＢデバイス制御装置は、当該判定機能により、ＵＳＢホストが正常に状態遷移を行っている場合、自装置も低消費電力状態へ遷移し、ＵＳＢホストが状態遷移を行っていない場合、自装置もアクティブ状態を維持する。このようにして、ＵＳＢデバイス制御回路は、ＵＳＢホストの実際の状態に基づいて状態遷移を行う。これにより、ＵＳＢホストとＵＳＢデバイスとの状態の不整合を回避する。
【００１４】
また、本発明に係るＵＳＢデバイスの制御方法の一態様は、ＵＳＢバスを介して、ＵＳＢホストとハイスピードモードで接続するＵＳＢデバイスの制御方法である。まず、アクティブ状態から低消費電力状態へ遷移する状態遷移要求を、ＵＳＢホストから所定の回数受信すると、ＵＳＢバスの状態の観測を開始する。次に、観測に基づいて、ＵＳＢホストの状態を判定する。そして、判定した結果に応じて、ＵＳＢホストが低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移し、ＵＳＢホストがアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。
【発明の効果】
【００１５】
本発明によれば、ＵＳＢホストとＵＳＢデバイスとの接続状態をアクティブ状態から低消費電力状態へ遷移する場合に、接続状態の不整合を回避することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態１に係るＵＳＢデバイス制御回路の一例を示すブロック図である。
【図２】ＵＳＢデバイス制御回路を周辺機器に搭載する場合のシステム概略構成を示すブロック図である。
【図３】アクティブ状態から低消費電力状態へ遷移する動作の概略タイミングを示すタイミングチャートである。
【図４】アクティブ状態から低消費電力状態へ遷移する場合のＵＳＢデバイス制御回路の動作例を示すフローチャートである。
【図５】バスをプルアップして観測する状態を模式的に示す図である。
【図６】バスの接続状態と、バスの状態との対応を示す図である。
【図７】ホストとデバイスとが、接続を開始してからＨＳの接続状態へ遷移する手順を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１８】
以下の実施形態では、ＵＳＢホストとＵＳＢデバイスとがＨＳで接続されているときに、アクティブ状態から低消費電力状態へ遷移する場合に、ＵＳＢホスト制御回路とＵＳＢデバイス制御回路との接続状態の不整合を回避するものである。各実施形態では、ＵＳＢ２．０規格に準拠することを前提とする。また、（１）ＵＳＢホストとＵＳＢデバイスとは、少なくとも、ハイスピードモード（ＨＳ）とフルスピードモード（ＦＳ）との二つのモードで接続可能なこと、（２）ＵＳＢホストとＵＳＢデバイスとは、アクティブ状態と低消費電力状態との二つの状態を設定可能であり、アクティブ状態では、ＵＳＢホストとＵＳＢデバイスとの接続状態がＨＳであり、低消費電力状態では、接続状態がＦＳであること、（３）アクティブ状態から低消費電力状態へは、バスの状態がアクティブ状態のアイドル時、すなわち、ＳＥ０である場合に可能であり、低消費電力状態へ遷移するとバスの状態はＦＳ−Jとなること、を前提とする。
【００１９】
以下の各実施形態では、ＵＳＢデバイスがＵＳＢホストから、状態遷移要求を受信する場合を制御する、ＵＳＢデバイス制御回路とＵＳＢホスト制御回路とについて説明する。状態遷移要求は、アクティブ状態から低消費電力状態へ遷移する要求である。ＬＰＭトークンは、状態遷移要求の具体例である。ＵＳＢデバイス制御回路は、ＵＳＢデバイスへ搭載される回路である。ＵＳＢホスト制御回路は、ＵＳＢホストへ搭載される回路である。ＵＳＢデバイスとＵＳＢホストとは、各装置が搭載した、ＵＳＢデバイス制御回路とＵＳＢホスト制御回路との間で実施される制御処理によって、接続状態が制御される。
【００２０】
ＵＳＢデバイス制御回路は、状態遷移要求を、ＵＳＢホスト制御回路から所定の回数受信すると、所定の期間にＵＳＢバスの状態の観測を開始する。そして、観測に基づいて、ＵＳＢホスト制御回路の状態を判定し、判定結果に応じて、ＵＳＢデバイス制御回路の状態を、アクティブ状態から低消費電力状態へ遷移するか、アクティブ状態を維持するかを決定する。各実施形態では、ＵＳＢ２．０規格に従って、上述した所定の回数が３回であることを前提として説明する。以下図面を参照しながら詳述する。
【００２１】
実施形態１．
図１は、本発明の実施形態１に係るＵＳＢデバイス制御回路の一例を示すブロック図である。図１では、以降の説明を容易にするために、ＵＳＢホスト制御回路の構成例も示している。ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００を介してＵＳＢホスト制御回路２００と接続する。図１では、ＵＳＢバス３００は、バスＤ＋とバスＤ−との二つのバスから構成される例を示しているが、これに限られるわけではない。
ＵＳＢデバイス制御回路１００は、デバイスコントローラ１１０、出力制御部（デバイス出力制御部）１２０、及びレシーバ（デバイスレシーバ）１３０を備える。
【００２２】
デバイスコントローラ１１０は、少なくとも、次の（Ａ）、（Ｂ）の二つの機能を備える。（Ａ）ＵＳＢホスト制御回路２００から状態遷移要求を受信し、要求許諾応答（ＡＣＫパケット）を返信するとともに、自装置の状態を低消費電力状態へ遷移させる機能。（Ｂ）状態遷移要求を、ＵＳＢホスト制御回路２００から所定の回数受信すると、所定の期間にＵＳＢバス３００の状態を観測し、観測結果に応じて、自装置の状態を制御する機能。具体的には、デバイスコントローラ１１０は、自装置の状態を、ＵＳＢホスト制御回路２００が低消費電力状態へ遷移したと判定する場合、低消費電力状態へ遷移させる。一方、ＵＳＢホスト制御回路２００がアクティブ状態を維持していると判定する場合、アクティブ状態を維持する。具体的な動作についは、図３，４を用いて後述する。
【００２３】
また、デバイスコントローラ１１０は、一般的な、ＵＳＢプロトコルに準拠した送受信バケット制御、送受信データのシリアル−パラレル変換、ＵＳＢエンドポイント管理、送受信データバッファ制御、応答制御などを行う機能を備える。本実施形態では、デバイスコントローラ１１０は、上述する機能を実現する回路を用いて構成される。
【００２４】
出力制御部１２０は、ＨＳまたはＦＳにおいて、信号の出力（ＬまたはＨレベルの電位の出力）を制御する。また、出力制御部１２０は、ハイインピーダンスの状態を制御する。具体的には、出力制御部１２０は、ＦＳにおいて、信号の出力を制御する、すなわち、信号を示す電圧をＵＳＢバス３００へ与える機能（ＦＳ出力制御部）を備える。また、ＨＳにおいて、信号の出力を制御する、すなわち、信号を示す電流を供給する機能（ＨＳ出力制御部）を備える。さらに、ＵＳＢバス３００をＦＳ−Ｊへの状態へ設定するためにバスをプルアップする機能（プルアップ部）を備える。
【００２５】
図１では、出力制御部１２０を次のように構成する例を示している。
ＦＳ出力制御部は、ドライバ１２１、及びＲｔｅｒｍ１８１、１８２から構成される。
ドライバ１２１は、ＦＳにおいて、ＵＳＢバス３００へ電圧レベルを与える。これにより、信号を出力する。
Ｒｔｅｒｍ１８１、１８２は、４５オーム（Ω）の終端抵抗である。
ＨＳ出力制御部は、スイッチ１２２、１２３、及び電流源１２４から構成される。
電流源１２４は、電流を供給する。また、ＨＳにおいて、スイッチ１２２、１２３の少なくともいずれかが接続される事によって、電流を供給し、信号を出力する（ＵＳＢバス３００へ電圧レベルを与える）。スイッチ２２２、２２３は、デバイスコントローラ１１０からの制御によってＯＮ／ＯＦＦが制御される。図１では、この制御について、デバイスコントローラ１１０からスイッチ１２３へ向かう矢印を示しているが、スイッチ１２２も同様に制御される。
プルアップ部は、スイッチ１２５、電源１２６、及びＲＰＵ１８３から構成される。
電源１２６は、スイッチ１２５がＯＮになることに応じて、電圧を供給（印加）し、Ｕ
ＳＢバス３００をＦＳ−Ｊの状態へ設定するためにバスをプルアップする。スイッチ１２５は、デバイスコントローラ１１０からの制御によってＯＮ／ＯＦＦが制御される。
ＲＰＵ１８３は、１．５キロオーム（ｋΩ）のプルアップ抵抗である。
【００２６】
レシーバ１３０は、ＵＳＢバス３００からパケット（データ）を受信する。ここでは、レシーバ１３０は、ＨＳ及びＦＳの両方の場合ともパケットを受信する。
【００２７】
ＵＳＢホスト制御回路２００は、ホストコントローラ２１０、出力制御部（ホスト出力制御部）２２０、及びレシーバ（ホストレシーバ）２３０を備える。
ホストコントローラ２１０は、少なくとも、ＵＳＢデバイス制御回路１００へ、状態遷移要求を送信し、ＵＳＢデバイス制御回路１００から返信される要求許諾応答（ＡＣＫパケット）に応じて、自装置の状態を低消費電力状態へ遷移させる機能を備える。
また、ホストコントローラ２１０は、ＵＳＢプロトコルに準拠した送受信パケット制御、送受信データのシリアル−パラレル変換、ＵＳＢエンドポイント管理、送受信データバッファ制御、応答制御などを行う機能を備える。本実施形態では、ホストコントローラ２１０は、上述する機能を実現する回路を用いて構成される。
【００２８】
出力制御部２２０は、ＨＳまたはＦＳにおいて、信号の出力（ＬまたはＨレベルの電位の出力）を制御する。具体的には、出力制御部２２０は、ＦＳにおいて、信号の出力を制御する、すなわち、信号を示す電圧をＵＳＢバス３００へ与える機能（ＦＳ出力制御部）を備える。また、ＨＳにおいて、信号の出力を制御する、すなわち、信号を示す電流を供給する機能（ＨＳ出力制御部）を備える。
【００２９】
図１では、出力制御部２２０を次のように構成する例を示している。
ＦＳ出力制御部は、ドライバ２２１とＲｔｅｒｍ２８１、２８２とから構成される。
ドライバ２２１は、ＦＳにおいて、ＵＳＢバス３００へ電圧レベルを与える。
Ｒｔｅｒｍ２８１、２８２は、４５オーム（Ω）の終端抵抗である。
ＨＳ出力制御部は、スイッチ２２２、２２３と電流源２２４とから構成される。
電流源２２４は、電流を供給する。また、ＨＳにおいて、スイッチ２２２、２２３の少なくともいずれかが接続される事によって、電流を供給し、信号を出力する。スイッチ２２２、２２３は、デバイスコントローラ１１０からの制御によってＯＮ／ＯＦＦが制御される。図１では、この制御について、ホストコントローラ２１０からスイッチ２２２へ向かう矢印を示しているが、スイッチ２２３も同様に制御される。
【００３０】
レシーバ２３０は、ＵＳＢバス３００からパケット（データ）を受信する。
また、図１に示すように、ＵＳＢホスト制御回路２００とＵＳＢバス３００との間に、１５キロオーム（ｋΩ）のプルダウン抵抗であるＲＰＤ２８３、２８４が配置されている。
【００３１】
図２は、実施形態１のＵＳＢデバイス制御回路１００を搭載するシステム例を示すブロック図である。
図２では、ＵＳＢデバイス制御回路１００を周辺機器４００に搭載する場合のシステム概略構成を示している。周辺機器としては、例えば、プリンタ、メモリなどがあるが、これらに限られることはない。ＵＳＢ２．０規格に準拠したインタフェースを採用し、ＵＳＢホスト制御回路２００と、ＨＳとＦＳとの少なくとも二つのモードで接続可能な周辺機器であれば他の装置であってもよい。
周辺機器４００は、ＵＳＢデバイス制御回路１００、ＣＰＵ（Central Processing Unit）４１０、及びメモリ４２０を少なくとも備え、その他自装置の機能を実施する処理部４３０を備える。
また、ＵＳＢホスト制御回路２００をパーソナルコンピュータなどの計算機に搭載する場合の概略構成を示している。計算機５００は、ＵＳＢホスト制御回路２００、ＣＰＵ５１０、メモリ５２０、ＵＳＢホスト制御回路２００を制御するコントローラ５３０、及びその他の機能を実施する処理部５４０を備える。
【００３２】
続いて、本実施形態のＵＳＢデバイス制御回路１００の動作例を、図３，４を参照して説明する。図３は、アクティブ状態から低消費電力状態へ遷移する動作の概略タイミングを示すタイミングチャートである。図４は、アクティブ状態から低消費電力状態へ遷移する場合のＵＳＢデバイス制御回路の動作例を示すフローチャートである。図３、４では、ＵＳＢデバイス制御回路１００からＵＳＢホスト制御回路２００へ返信した要求許諾応答（ＡＣＫパケット）が正常に受信されない場合の動作を中心に示している。
【００３３】
まず、図３を参照して、ＵＳＢホスト制御回路２００からＵＳＢデバイス制御回路１００へ状態遷移要求が送信されるときのパケットの送受信を説明する。ＵＳＢ２．０規格では、ＵＳＢホスト制御回路２００がＵＳＢデバイス制御回路１００に対して、アクティブ状態から低消費電力状態への遷移を要求する場合、ＬＰＭトークンを発行する。ＬＰＭトークンは、状態遷移要求を示すパケット、すなわち、アクティブ状態から低消費電力状態への遷移を、ＵＳＢデバイス制御回路１００に要求するパケットである。また、ＵＳＢホスト制御回路２００は、ＵＳＢデバイス制御回路１００からＡＣＫパケットが返信されない場合、最低３回ＬＰＭトークンを発行することが決められている。図３では、３回ＬＰＭトークンが発行された場合を示す。本実施形態のＵＳＢデバイス制御回路１００は、任意の回数（ここでは、３回）ＬＰＭトークンが発行された場合に特有の動作を行うものである。
【００３４】
背景技術で説明したように、ＵＳＢデバイス制御回路１００とＵＳＢホスト制御回路２００との接続状態がＨＳの場合、ＵＳＢホスト制御回路２００は、１２５μｍ毎に定期的にＳＯＦを発行する。図３では、Ｔ０、Ｔ１０のタイミングでＳＯＦを発行する場合を示す。また、ＵＳＢ２．０規格では、ＳＯＦのタイミングより前の所定の期間にパケットの転送を禁止する期間が設定されており、具体的には、ＥＯＦ１（End of Frame 1）と、ＥＯＦ２（End of Frame 2）とが設定されている。ＥＯＦ１は、パケット転送の禁止を開始するタイミングである。ＥＯＦ１のタイミング以降、次のＳＯＦのタイミングまで、ＵＳＢホスト制御回路２００は、ＵＳＢデバイス制御回路１００へパケットを送信しない期間となる。ＥＯＦ２は、パケット転送が完全に禁止されている期間の始まりである。ＥＯＦ１からＥＯＦ２までの期間には、ＥＯＦ１より前に送信したパケットが転送される場合があるが、ＥＯＦ２以降は、パケット転送が完全に禁止される。ＥＯＦ２以降にパケット転送が検出された場合、ＵＳＢホスト制御回路２００またはＵＳＢデバイス制御回路１００は、異常が発生したことを検出し、当該の接続を無効とする等の異常検出時の処理が必要となる。図３では、ＥＯＦ１をＴ７のタイミングに、ＥＯＦ２をＴ８のタイミングに示している。
【００３５】
ＵＳＢホスト制御回路２００は、まず、Ｔ０のタイミングにおいて、ＳＯＦを発行する。その後、任意のタイミングＴ１において、ＬＰＭトークンを発行する。ＵＳＢデバイス制御回路１００は、ＬＰＭトークンを受信すると、低消費電力状態Ｌ１への遷移が可能な場合、ＡＣＫパケットをＵＳＢホスト制御回路２００へ返信する（Ｔ２）。
【００３６】
ＵＳＢデバイス制御回路１００が返信したＡＣＫパケットがＵＳＢバス３００上のノイズなどに起因して、ＵＳＢホスト制御回路２００において正常に受信されない事態が生じると仮定する。この場合、ＵＳＢホスト制御回路２００は、Ｔ３のタイミングにおいて、２回目のＬＰＭトークンを発行する。Ｔ３のタイミングは、Ｔ１のタイミングから予め決められた時間（以降、「再送までの経過時間」と称する）が経過した後のタイミングである。ＵＳＢデバイス制御回路１００は、２回目のＬＰＭトークンを受信すると、２回目のＡＣＫパケットをＵＳＢホスト制御回路２００へ返信する（Ｔ４）。再度、ＵＳＢデバイス制御回路１００が返信したＡＣＫパケットがＵＳＢホスト制御回路２００において正常に受信されない事態が生じると仮定する。この場合、ＵＳＢホスト制御回路２００は、Ｔ３のタイミングから再送までの経過時間の経過後、Ｔ５のタイミングで３回目のＬＰＭトークンを発行する。ＵＳＢデバイス制御回路１００は、３回目のＬＰＭトークンを受信すると、３回目のＡＣＫパケットをＵＳＢホスト制御回路２００へ返信する。
【００３７】
なお、ＵＳＢデバイス制御回路１００が返信したＡＣＫパケットが、ＵＳＢホスト制御回路２００において正常に受信された場合、ＵＳＢホスト制御回路２００は、低消費電力状態へ遷移する。また、ＵＳＢデバイス制御回路１００は、上述した再送までの経過時間、再度ＬＰＭトークンを受信しないことを確認した後、低消費電力状態へ遷移する。例えば、ＵＳＢデバイス制御回路１００は、Ｔ２のタイミングでＡＣＫパケットを返信した後、再送までの経過時間（図３では、Ｔ３のタイミングまでの期間）経過後、ＬＰＭトークンが再発行されなかった場合に、低消費電力状態へ遷移する。パケットの送受信が正常な場合には、このようにして、ＵＳＢデバイス制御回路１００とＵＳＢホスト制御回路２００との間の接続状態の整合性をとる。
【００３８】
ＵＳＢデバイス制御回路１００は、３回目のＡＣＫパケットを返信すると、ＵＳＢバス３００の状態の観測を開始する。バスの観測期間は、最大でも、ＡＣＫパケット返信（Ｔ６）後、次のＳＯＦが発行される（Ｔ１０）より前までの期間である。バスの状態の観測については、図４のフローチャートを参照して詳述するＵＳＢデバイス制御回路１００は、バスの状態の観測結果に応じて、自装置をアクティブ状態Ｌ０から低消費電力状態Ｌ１へ遷移させる。すなわち、バスの状態を観測した結果、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移していると判定した場合、自装置を低消費電力状態Ｌ１へ遷移させる。一方、ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０を維持（継続）していると判定した場合、自装置もアクティブ状態Ｌ０を維持する。このようにして、次のＳＯＦのタイミング（Ｔ１０）までに、ＵＳＢデバイス制御回路１００は、ＵＳＢホスト制御回路２００と同じ接続状態となるように（接続状態の整合性を取るように）制御する。
【００３９】
次に、図４のフローチャートに示すＵＳＢデバイス制御回路１００の動作を、図３のタイミングチャートを参照して説明する。具体的な状況として、図３に示すパケットのやり取りが実施される事を前提とする。ここでは、特に図３のＴ６のタイミング以降に焦点を当てて説明する。
ＵＳＢデバイス制御回路１００とＵＳＢホスト制御回路２００とは、例えば、図７に示す手順により、相互の接続状態がＨＳであり、それぞれの自装置がアクティブ状態Ｌ０であることを前提とする（Ｓ１１）。このとき、ＵＳＢバス３００は、ＳＥ０、ＨＳ−Ｊ、ＨＳ−Ｋ、ＳＥ１のいずれかの状態となる。
【００４０】
ＵＳＢホスト制御回路２００は、アクティブ状態Ｌ０のアイドル時、すわなち、ＵＳＢバス３００がＳＥ０の状態のときに、ＬＰＭトークンを発行する（図３のＴ１、Ｔ３）。ＵＳＢデバイス制御回路１００は、ＬＰＭトークンを受信すると、低消費電力状態Ｌ１へ遷移可能な場合、ＡＣＫパケットを返信する（図３のＴ２、Ｔ４）。ＵＳＢデバイス制御回路１００は、ＬＰＭトークンの受信が３回目でないときは（Ｓ１２でＮＯ）、アクティブ状態Ｌ０を維持する（Ｓ１１）。Ｔ６のタイミングにおいて、ＵＳＢデバイス制御回路１００は、３回目のＬＰＭトークンを受信すると（Ｓ１２でＹＥＳ）、低消費電力状態Ｌ１へ遷移可能な場合、ＡＣＫパケットを返信する（Ｓ１３でＹＥＳ）。ＵＳＢデバイス制御回路１００は、低消費電力状態Ｌ１へ遷移できないと判断したときなど、ＡＣＫパケットを返信しない場合（Ｓ１３でＮＯ）、アクティブ状態Ｌ０を維持する（Ｓ１１）。例えば、ＵＳＢデバイス制御回路１００が送信するデータを準備中である、何らかの処理中であるなどの理由で、ＬＰＭトークンを受信したときに低消費電力状態Ｌ１へ遷移できない場合である。
【００４１】
ＵＳＢデバイス制御回路１００は、３回目のＬＰＭトークンに対してＡＣＫパケットを返信すると、ＵＳＢバス３００の状態の観測を開始する（Ｓ１４）。ＵＳＢデバイス制御回路１００（デバイスコントローラ１１０）は、ＵＳＢバス３００の観測結果に基づいて、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移したか否かを判定する。そして、判定結果に応じて、自装置の状態を決定する。
【００４２】
ＵＳＢバス３００の観測は、第１期間と、第１期間経過後の第２期間との二つに分けられる。第１期間は、パケットの転送が許容されている期間である。従って、パケットが転送される可能性がある。第２期間は、パケットの転送が禁止されている期間である。図３のタイミングチャートでは、第１期間は、３回目のＡＣＫパケット返信（Ｔ６のタイミング）以降ＥＯＦ１（Ｔ７のタイミング）以前までであり、第２期間は、ＥＯＦ１からＥＯＦ２（Ｔ８のタイミング）までである。
【００４３】
まず、第１期間において、ＵＳＢデバイス制御回路１００は、バスの状態がＳＥ０以外であるか否かを検出する。バスの状態がＳＥ０以外であることを検出することによって、ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０を維持していると判定する（Ｓ１４〜Ｓ１６でＮＯ）。その後、第２期間において、ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００がＦＳ−Ｊの状態に設定可能であるかを検査する。検査結果に応じて、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移したか否かを判定する。ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移していると判定した場合、自装置も低消費電力状態Ｌ１へ遷移する（Ｓ１６でＹＥＳ〜Ｓ１９）。以下、具体的に説明する。
【００４４】
ＵＳＢデバイス制御回路１００は、第１期間において、ＵＳＢバス３００がＳＥＯ以外の状態であることを検出すると（Ｓ１５でＮＯ）、アクティブ状態Ｌ０を維持（継続）する（Ｓ１１）。すわなち、ＵＳＢバス３００がＳＥＯ以外の状態である場合、ＵＳＢホスト制御回路２００はパケットを送信している。従って、ＵＳＢデバイス制御回路１００は、ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０であると判定する。
このように、ＵＳＢホスト制御回路２００から３回連続してＬＰＭトークンを送信された場合、ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００上でＳＥ０（Ｉｄｌｅ）以外が観測された場合、ＵＳＢホスト制御回路２００が３回目のＡＣＫパケットも正常に受信できなかったとみなす。従って、ＵＳＢデバイス制御回路１００は、低消費電力状態Ｌ１に遷移せずにアクティブ状態Ｌ０を続ける。
【００４５】
一方、ＵＳＢデバイス制御回路１００は、バスの状態がＳＥＯであると観測される場合（Ｓ１５でＹＥＳ）、ＥＯＦ１まで、ＵＳＢバス３００の観測を継続する（Ｓ１６でＮＯ）。ＥＯＦ１までの期間（第１期間）、ＵＳＢバス３００がＳＥ０以外の状態であることを検出しなかった場合、ＥＯＦ１時点において（Ｓ１６でＹＥＳ）、ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００をプルアップしてＵＳＢバス３００を観測する（Ｓ１７）。
具体的には、ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００をＦＳ−Ｊの状態に設定し、ＵＳＢバス３００がＦＳ−Ｊの状態となるかを観測する。ＵＳＢデバイス制御回路１００は、ＵＳＢ２．０で規定されたＥＯＦ１からＥＯＦ２までの期間（第２期間）において、ＵＳＢバス３００をプルアップし、かつ、バスを観測する。
【００４６】
ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００がＦＳ−Ｊの状態であることを検出した場合（Ｓ１８でＹＥＳ）、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移したとみなす。そして、ＵＳＢデバイス制御回路１００は、自装置も低消費電力状態Ｌ１に遷移する（Ｓ１９）。ここで、ＵＳＢバス３００上でＦＳ−Ｊが検出できた場合とは、プルアップの結果、ＵＳＢバス３００の電圧が一定レベルを超えた場合である。また、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１へ遷移していることは、ＡＣＫパケットが正常に受信されたことを意味する。
【００４７】
ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００上でＳＥ０を観測した場合（Ｓ１８でＮＯ）、ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０を維持しているとみなす。そして、ＵＳＢデバイス制御回路１００は、ＥＯＦ２までの期間にＵＳＢバス３００をプルアップすることを止めてアクティブ状態Ｌ０に戻る（維持する）（Ｓ１１）。ここで、ＵＳＢバス３００上でＳＥ０を観測した場合とは、ＵＳＢバス３００をプルアップしたがＵＳＢバス３００の電圧が一定レベルを超えなかった場合である。すなわち、ＥＯＦ１からＥＯＦ２までの間は、パケットを転送しない期間であるため、通常、ＵＳＢバス３００は、ＳＥ０の状態となっている。また、ＵＳＢホスト制御回路２００が低消費電力状態へ遷移している場合、ＵＳＢデバイス制御回路１００は、ＵＳＢバス３００をプルアップすることにより、ＵＳＢバス３００をＦＳ−Ｊの状態に設定することができる。しかし、ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０を維持している場合、ＵＳＢバス３００をプルアップしてもＵＳＢバスの電圧が一定レベルを超えないことになる。ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０を維持しているとは、ＵＳＢホスト制御回路２００がＡＣＫパケットを受信できなかったことを意味する。
【００４８】
ＵＳＢホスト制御回路２００が切断状態を誤検出してしまうのはＳＯＦ時となる。従って、ＵＳＢデバイス制御回路１００は、上述したＵＳＢバス３００のプルアップやバスの状態の観測をＥＯＦ１とＥＯＦ２との期間、すなわち、ＳＯＦの直前のタイミングにおいて行う必要がある。
ＥＯＦ１とＥＯＦ２との期間は短いため、ＲＰＵ１２５の１．５キロオームのプルアップでは間に合わない可能性がある。このため、ＦＳ−Ｊを一瞬ドライブする手段も考えられる。具体的には、ＵＳＢデバイス制御回路１００のドライバ１２１を一瞬ドライブすることにより、ＵＳＢバス３００の電圧を一時的に上昇させ、電圧が維持されるか、低下するかを観測する。ＵＳＢバス３００の電圧が維持された場合、ＵＳＢホスト制御回路２００は、低消費電力状態Ｌ１へ遷移していると判断できる。
【００４９】
ここで、ＥＯＦ１からＥＯＦ２までの期間（第２期間）における、ＵＳＢデバイス制御回路１００とＵＳＢホスト制御回路２００との回路の状態を、スイッチのＯＮ／ＯＦＦ等を用いて説明する。図５を用いてバスの状態を説明する。図５は、バスをプルアップして観測する状態を模式的に示す図である。
ＵＳＢデバイス制御回路１００において、デバイスコントローラ１１０は、ＥＯＦ１時点であることを認識すると（Ｓ１６でＹＥＳ）、スイッチ１２５をＯＮにし、電源１２６とＲＰＵ１８３とを接続状態にする。これにより、バスＤ＋をプルアップする。このとき、スイッチ１２２、１２３はＯＦＦである。また、デバイスコントローラ１１０は、ドライバ１２１を、ハイインピーダンスの状態となるように制御する。図５に示すように、ＵＳＢデバイス制御回路１００では、スイッチ１２５がＯＮとなる。従って、電源１２６からの電圧がバスＤ＋へ供給されている。バスＤ＋と電源１２６との間には、ＲＰＵ１８３が配置されている。
【００５０】
ＵＳＢホスト制御回路２００では、接続状態により次のように制御される。
ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０のアイドル時の場合、ホストコントローラ２１０は、バスの状態をＳＥ０となるように制御する。具体的には、ホストコントローラ２１０は、ドライバ２２１を、電位がＬとなるように制御し、スイッチ２２２，２２３を、ＯＦＦにする。スイッチ２２２，２２３を、ＯＦＦにするのは、この期間では、パケットの転送をしないためである。これにより、ＵＳＢバス３００は、Ｒｔｅｒｍ２８１，２８２と接続される状態となる。
ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１の場合、ホストコントローラ２１０は、バスの状態をＦＳ−Ｊとなるように制御する。具体的には、ホストコントローラ２１０は、ドライバ２２１をハイインピーダンスの状態になるように制御し、スイッチ２２２，２２３を、ＯＦＦにする。これにより、ＵＳＢバス３００は、ＲＰＤ２８３、２８４と接続される状態となる。
【００５１】
デバイスコントローラ１１０がバスＤ＋をＲＰＵ１８３によりプルアップしている場合、ＵＳＢホスト制御回路２００は常にバスＤ＋をプルダウンした状態（ＲＰＤ２８３のみの状態、あるいは、ＲＰＤ２８３とＲｔｅｒｍ２８１の並列の状態）であるため、バスＤ＋の電位は電源１２６の電圧の抵抗分圧によって決定される。ここで、ＵＳＢホスト制御部２００の状態によって、バスＤ＋の状態は次のようになる。
ＵＳＢホスト制御回路２００がアクティブ状態Ｌ０の場合、図５のＲＸで示す抵抗は、ＲＰＤ２８３とＲｔｅｒｍ２８１の並列抵抗となる。バスＤ＋の電圧は、ＲＰＵ１８３と、＜ＲＰＤ２８３とＲｔｅｒｍ２８１の並列抵抗＞との間の抵抗分圧によって決まる電圧となり、Ｌレベルに近い値となる。低消費電力状態Ｌ１では、ＵＳＢバス３００がＦＳ−Ｊの状態となるため、Ｄ＋の電位はＨとなるはずである。ここでは、バスＤ＋の電位はＬと判定されるレベルであるため、ＦＳ−Ｊの状態とならない。このため、デバイスコントローラ１１０は、ＵＳＢホスト制御回路２００はＨＳ終端抵抗Ｒｔｅｒｍ２８１の接続を外していない状態、すなわち、ＨＳのアクティブ状態Ｌ０を維持していると判定する。
一方、ＵＳＢホスト制御回路２００が低消費電力状態Ｌ１の場合、図５のＲＸで示す抵抗は、ＲＰＤ２８３のみとなる。バスＤ＋の電圧は、ＲＰＵ１８３とＲＰＤ２８３との間の抵抗分圧によって決まる電圧となり、３．３Ｖに近い値となる。従って、ＵＳＢバス３００は、ＦＳ−Ｊの状態となる。このため、デバイスコントローラ１１０は、ＵＳＢホスト制御回路２００は低消費電力状態Ｌ１へ遷移したと判定する。
【００５２】
また、ＵＳＢデバイス制御回路１００は、ＬＰＭトークンを３回（あるいは３回以上）受信し、バスの状態の観測結果に応じて低消費電力状態Ｌ１へ遷移する場合、ＥＯＦ１とＥＯＦ２との期間に遷移を実施する必要がある。もし、ＥＯＦ１以前に低消費電力状態Ｌ１へ遷移すると、ＵＳＢホスト制御回路２００から送信されるＨＳのパケットを検出できなくなる。具体的には、ＵＳＢデバイス制御回路１００が低消費電力状態Ｌ１へ遷移するために、ＥＯＦ１以前にＵＳＢバス３００をプルアップすることになる。このとき、ＵＳＢホスト制御回路２００が、ＨＳのアクティブ状態Ｌ０を維持した状態である仮定すると、ＨＳのパケットを送信することになる。接続状態がＨＳの場合、接続状態がＦＳの場合より低い電圧を用いてパケットを送信する。例えば、上述した通り、接続状態がＦＳのとき、３．３Ｖの電圧を閾値とし、接続状態がＨＳのとき、４００ｍｖの電圧を閾値として、バスの電位を判定する。従って、ＵＳＢデバイス制御回路１００が低消費電力状態Ｌ１へ遷移してＵＳＢバス３００をプルアップした状態では、ＨＳのパケットを検出できなくなり、送信されたＨＳのパケットに対して応答を返信できないという不具合が生じる。
なお、ＬＰＭトークンの受信が２回以下の場合には、上述した通常の正常動作の手順により、低消費電力状態Ｌ１へ遷移することが可能である。
【００５３】
以上説明したように、本実施形態では、ＵＳＢデバイス制御回路１００は、ＥＯＦ１、及びＥＯＦ２時点までＵＳＢバス３００を観測することによって、ＵＳＢホスト制御回路２００の状態を判別する。その上で低消費電力状態Ｌ１に遷移するかどうかを判断する。このようにして、ＵＳＢデバイスとＵＳＢホストとの状態不整合による切断誤検出を防止する。これにより、接続状態の不整合を回避する低消費電力状態への遷移を実現することが可能となる。
【００５４】
その他の実施形態
上記実施形態では、ＬＰＭトークンのリトライ回数として３回を用いて説明したが、３より大きい数値を用いてもよい。ＵＳＢデバイス制御回路１００が返信したＡＣＫパケットがＵＳＢホスト制御回路２００において正常に受信されない事態が生じた場合に、４回以上ＬＰＭトークンを発行するか否かは、設計上の問題である。図４では、ＬＰＭトークンを３回受信した場合にＵＳＢバス３００の状態を観測することになっているが、これに限られる事はない。ＬＰＭトークンの受信が３回以上の場合、あるいは、ＬＰＭトークンの受信が３の倍数の場合について、ＵＳＢバス３００の状態を観測することにしてもよい。
【００５５】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【００５６】
１００  ＵＳＢデバイス制御回路
１１０  デバイスコントローラ
１２０、２２０  出力制御部
１３０、２３０  レシーバ
１２１、２２１  ドライバ
１２２、１２３、１２５、２２２、２２３  スイッチ
１２４、２２４電流源
１２６  電源
１８１、１８２、２８１、２８２  Ｒｔｅｒｍ
１８３  ＲＰＵ
２１０  ホストコントローラ
２８３、２８４  ＲＰＤ
２００  ＵＳＢホスト制御回路
３００  ＵＳＢバス
４００  周辺機器
４１０、５１０  ＣＰＵ
４２０、５２０  メモリ
４３０、５４０  処理部
５３０  コントローラ
【図１】
2011215855.tif 000003
【図２】
2011215855.tif 000004
【図３】
2011215855.tif 000005
【図４】
2011215855.tif 000006
【図５】
2011215855.tif 000007
【図６】
2011215855.tif 000008
【図７】
2011215855.tif 000009