(57)【特許請求の範囲】
【請求項１】
電源の供給を制限する低電力モードを持つ情報処理装置であって、
当該情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、
前記低電力モードへの移行時に、前記少なくとも１つの外部機器が前記低電力動作モード時に動作が必要か否かの判定を行い、該判定の結果に基づいて前記通信制御手段に対する電源の供給の制限および継続を制御する電源制御手段と、
外部機器を識別する識別情報と、前記低電力モードでの該外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルと
を備え、
前記電源制御手段は、
前記少なくとも１つの外部機器がリモートウェイクアップに対応している場合、該リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて前記通信制御手段に対する電源の供給を制限する一方、前記少なくとも１つの外部機器が前記低電力モード時に動作が必要と判定した場合、前記通信制御手段に対する電源の供給を継続し、
前記低電力モードに移行する際に、前記通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、前記通信制御手段に接続されている外部機器から識別情報を取得し、該識別情報に対応する前記動作要否情報が動作要に設定されている場合に、該検出を再開させる
ことを特徴とする情報処理装置。
【請求項２】
前記電源制御手段は、
前記低電力モードへの移行時に、前記通信制御手段に接続されている外部機器から取得した識別情報に対応する識別情報が前記テーブルに記憶されていない場合に、前記通信制御手段に対する電源の供給を制限するように制御する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記電源制御手段は、
前記通信制御手段に接続される少なくとも１の外部機器の識別情報に対応する前記動作要否情報が動作要を示す場合に、前記通信制御手段に対する電源の供給を継続するように制御する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記識別情報は、外部機器の機種を識別する情報である
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記識別情報は、外部機器の機能を示す情報である
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の情報処理装置。
【請求項６】
電源の供給を制限する低電力モードを持つ情報処理装置の制御方法であって、
前記情報処理装置は、
当該情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、
外部機器を識別する識別情報と、前記低電力モードでの該外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルと
を備え、
電源制御手段が、前記低電力モードへの移行時に、前記少なくとも１つの外部機器が前記低電力動作モード時に動作が必要か否かの判定を行い、該判定の結果に基づいて前記通信制御手段に対する電源の供給の制限および継続を制御し、前記少なくとも１つの外部機器がリモートウェイクアップに対応している場合、該リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて前記通信制御手段に対する電源の供給を制限する一方、前記少なくとも１つの外部機器が前記低電力モード時に動作が必要と判定した場合、前記通信制御手段に対する電源の供給を継続し、前記低電力モードに移行する際に、前記通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、前記通信制御手段に接続されている外部機器から識別情報を取得し、該識別情報に対応する前記動作要否情報が動作要に設定されている場合に、該検出を再開させる電源制御ステップを備える
ことを特徴とする情報処理装置の制御方法。
【請求項７】
電源の供給を制限する低電力モードを持つ情報処理装置を制御するコンピュータに実行させるためのプログラムであって、
前記情報処理装置は、
当該情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、
外部機器を識別する識別情報と、前記低電力モードでの該外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルと
を備え、
前記低電力モードへの移行時に、前記少なくとも１つの外部機器が前記低電力動作モード時に動作が必要か否かの判定を行い、該判定の結果に基づいて前記通信制御手段に対する電源の供給の制限および継続を制御し、前記少なくとも１つの外部機器がリモートウェイクアップに対応している場合、該リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて前記通信制御手段に対する電源の供給を制限する一方、前記少なくとも１つの外部機器が前記低電力モード時に動作が必要と判定した場合、前記通信制御手段に対する電源の供給を継続し、前記低電力モードに移行する際に、前記通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、前記通信制御手段に接続されている外部機器から識別情報を取得し、該識別情報に対応する前記動作要否情報が動作要に設定されている場合に、該検出を再開させる電源制御ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器を挿抜可能に接続するインターフェイスを有する情報処理装置および情報処理装置の制御方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
従来より、電子機器同士を接続する方法として、ホストマシンと複数の周辺機器（デバイス）との間をシリアル通信で接続する、ＵＳＢ(Universal  Serial  Bus)接続が普及している。ＵＳＢは、活線挿抜が可能なインターフェイス規格であり、機器の動作中における抜き取りや接続が可能となっている。
【０００３】
このＵＳＢが広く普及したことを受けて、レーザプリンタといった単機能の画像形成装置や、スキャナ機能、複写機能、印刷機能およびＦＡＸ機能といった複数の機能を１台の筐体で実現するＭＦＰ(Multi  Function  Printer)といった画像形成装置においても、ＵＳＢホストインターフェイスが搭載されることが多くなってきている。これらの画像形成装置では、例えば、ＩＣ(Integrated  Circuit)カードリーダといった常時接続して用いるようなオプション装置や、フラッシュメモリなどの一時的に接続して用いるようなデバイスが、外部機器としてＵＳＢ接続される。
【０００４】
一方、近年では、画像形成装置に対し、消費電力を低くしたいという要求が高まっている。一般的に、画像形成装置では、印刷などの画像形成動作を行っていない待機状態において、画像形成装置内において各種デバイスに対する電源供給を停止することで、消費電力を抑えた低電力モードを実現している。
【０００５】
この低電力モードにおいては、画像形成装置に搭載されるＵＳＢホストコントローラに対しても、動作が必要ない場合に電源供給を停止させて消費電力を抑えられることが好ましい。特許文献１には、ＵＳＢホストコントローラにＵＳＢデバイスが接続されているか否かに応じて、ＵＳＢホストコントローラを停止させるか否かを判定する技術が開示されている。特許文献１によれば、ＵＳＢデバイスが接続されていない場合にＵＳＢホストコントローラを停止させることができるため、省電力を実現できる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ＵＳＢホストコントローラ接続可能な機器であるＵＳＢ機器には、様々な種類がある。上述した画像形成装置のＵＳＢホストコントローラに接続するＵＳＢ機器としては、例えば、個人認証を行うためのＩＣカードリーダや、画像データなどを保存するためのフラッシュメモリなどが考えられる。
【０００７】
このように、多くの種類のＵＳＢ機器が接続可能である場合、接続されるＵＳＢ機器の種類に応じて低電力モードにおける動作の要否が異なることが考えられる。例えば、ＩＣカードリーダは、低電力モードにおいて動作していることが望ましい。一方、フラッシュメモリは、低電力モードにおいて動作している必要が無い。
【０００８】
しかしながら、従来では、このような、低電力モードの要否をＵＳＢ機器毎に判定することが困難であるという問題点があった。例えば、上述した特許文献１では、ＵＳＢホストコントローラに対してＵＳＢ機器が一つでも接続されていれば、ＵＳＢホストコントローラの機能を有効としており、ＵＳＢ機器毎にＵＳＢホストコントローラの機能の有効／無効を判定するものではなかった。
【０００９】
本発明は、上記に鑑みてなされたものであって、ＵＳＢホストコントローラが搭載された装置の省電力化をより効率的に行うことを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、電源の供給を制限する低電力モードを持つ情報処理装置であって、当情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、低電力モードへの移行時に、少なくとも１つの外部機器が低電力動作モード時に動作が必要か否かの判定を行い、判定の結果に基づいて通信制御手段に対する電源の供給の制限および継続を制御する電源制御手段と、外部機器を識別する識別情報と、低電力モードでの外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルとを備え、電源制御手段は、少なくとも１つの外部機器がリモートウェイクアップに対応している場合、リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて通信制御手段に対する電源の供給を制限する一方、少なくとも１つの外部機器が低電力モード時に動作が必要と判定した場合、通信制御手段に対する電源の供給を継続し、低電力モードに移行する際に、通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、通信制御手段に接続されている外部機器から識別情報を取得し、識別情報に対応する動作要否情報が動作要に設定されている場合に、検出を再開させることを特徴とする。
【００１１】
また、本発明は、電源の供給を制限する低電力モードを持つ情報処理装置の制御方法であって、情報処理装置は、当情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、外部機器を識別する識別情報と、低電力モードでの外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルとを備え、電源制御手段が、低電力モードへの移行時に、少なくとも１つの外部機器が低電力動作モード時に動作が必要か否かの判定を行い、判定の結果に基づいて通信制御手段に対する電源の供給の制限および継続を制御し、少なくとも１つの外部機器がリモートウェイクアップに対応している場合、リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて通信制御手段に対する電源の供給を制限する一方、少なくとも１つの外部機器が低電力モード時に動作が必要と判定した場合、通信制御手段に対する電源の供給を継続し、低電力モードに移行する際に、通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、通信制御手段に接続されている外部機器から識別情報を取得し、識別情報に対応する動作要否情報が動作要に設定されている場合に、検出を再開させる電源制御ステップを備えることを特徴とする。
【００１２】
また、本発明は、電源の供給を制限する低電力モードを持つ情報処理装置を制御するコンピュータに実行させるためのプログラムであって、情報処理装置は、当情報処理装置と接続される少なくとも１つの外部機器との間の通信を制御する通信制御手段と、外部機器を識別する識別情報と、低電力モードでの外部機器の動作要否を示す動作要否情報とを関連付けて予め記憶するテーブルとを備え、低電力モードへの移行時に、少なくとも１つの外部機器が低電力動作モード時に動作が必要か否かの判定を行い、判定の結果に基づいて通信制御手段に対する電源の供給の制限および継続を制御し、少なくとも１つの外部機器がリモートウェイクアップに対応している場合、リモートウェイクアップに対応している外部機器をサスペンド状態に移行させて通信制御手段に対する電源の供給を制限する一方、少なくとも１つの外部機器が低電力モード時に動作が必要と判定した場合、通信制御手段に対する電源の供給を継続し、低電力モードに移行する際に、通信制御手段に対して新たに接続される外部機器の検出を停止すると共に、通信制御手段に接続されている外部機器から識別情報を取得し、識別情報に対応する動作要否情報が動作要に設定されている場合に、検出を再開させる電源制御ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ＵＳＢホストコントローラが搭載された装置の省電力化をより効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の第１の実施形態に適用可能な情報処理装置としての画像形成装置の一例の構成を示すブロック図である。
【図２】図２は、本発明の第１の実施形態に適用可能な画像形成装置の機能を説明するための一例の機能ブロック図である。
【図３】図３は、デバイスディスクリプタを示す略線図である。
【図４】図４は、コンフィグレーションディスクリプタを示す略線図である。
【図５】図５は、インターフェイスディスクリプタを示す略線図である。
【図６】図６は、エンドポイントディスクリプタを示す略線図である。
【図７】図７は、ディスクリプタ取得処理の一例のシーケンスを示すシーケンス図である。
【図８】図８は、本発明の第１の実施形態による設定テーブルの一例の構成を示す略線図である。
【図９】図９は、本発明の第１の実施形態による、低電力モードに移行する際の一例の処理を示すフローチャートである。
【図１０】図１０は、本発明の第１の実施形態による、低電力モード時に移行した場合の電源制御について説明するためのブロック図である。
【図１１】図１１は、本発明の第１の実施形態による、低電力モード時に移行した場合の電源制御について説明するためのブロック図である。
【図１２】図１２は、低電力モードに移行処理中に新規接続ＵＳＢ機器の認識処理を保留にする場合の第１のシーケンスの例を示すシーケンス図である。
【図１３】図１３は、低電力モードに移行処理中に新規接続ＵＳＢ機器の認識処理を保留にする場合の第２のシーケンスの例を示すシーケンス図である。
【図１４】図１４は、本発明の第１の実施形態の変形例による設定テーブルの一例の構成を示す略線図である。
【図１５】図１５は、本発明の第２の実施形態による、低電力モードに移行する際の一例の処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下に添付図面を参照して、本発明に係る情報処理装置としての画像形成装置の実施形態を詳細に説明する。本発明に係る情報処理装置は、低電力モードにおける各ＵＳＢ機器の動作要否を設定するための情報を設定テーブルとして予め記憶している。そして、低電力モードへの移行時に、接続されたＵＳＢ機器の識別情報を取得して設定テーブルを参照し、接続されたＵＳＢ機器のうち、少なくとも１つが低電力モード時に動作要に設定されている場合に、ＵＳＢホストコントローラに対する電源の供給を継続し、全て低電力モード時に動作否である場合には、ＵＳＢホストコントローラに対する電源の供給を制限する。低電力モードにおいて、低電力モード時に動作している必要のあるＵＳＢ機器が接続されている場合にのみ、ＵＳＢホストコントローラに対して継続して電源供給がなされるため、効率的に省電力化を行うことができる。
【００１６】
図１は、本発明の第１の実施形態に適用可能な情報処理装置としての画像形成装置１の一例の構成を示す。制御部１０において、ＡＳＩＣ(Application  Specific  Integrated  Circuit)２０に対して、ＣＰＵ(Central  Processing  Unit)２１と、ＲＡＭ(Random  Access  Memory)２２と、ＨＤＤ(Hard  Disk  Drive)２３と、ＰＣＩ(Peripheral  Component  Interconnect  Bus)バス１５および３０とが接続される。
【００１７】
ＰＣＩバス３０に対して、例えばシリアルＩ／Ｆ４０と、ＮＩＣ(Network  Interface  Card)４１と、ＵＳＢデバイス４２と、ＵＳＢホストコントローラ４３とが接続されると共に、その他のＨ／Ｗ（ハードウェア）４４が接続される。
【００１８】
ＡＳＩＣ２０は、ＣＰＵ２１と、ＲＡＭ２２、ＨＤＤ２３およびＰＣＩバス３０との間の通信の調停を行う。ＨＤＤ２３は、各種データや、ＣＰＵ２１が動作するためのプログラムが予め格納される。ＣＰＵ２１は、ＨＤＤ２３に格納されるプログラムに従い、ＲＡＭ２２をワークメモリとして用いて、この画像形成装置１の全体の動作を制御する。このとき、プログラムの動作に伴い生成される中間データをＨＤＤ２３に一時的に格納してもよい。また、ＨＤＤ２３は、後述する、ＰＣＩバス１５を介して供給される画像データなどを格納する。また、ユーザ操作に応じた操作部１４からの制御信号が、ＡＳＩＣ２０を介してＣＰＵ２１に供給される。これにより、ユーザ操作に応じた画像形成装置１の制御が可能となる。
【００１９】
シリアルＩ／Ｆ４０は、例えばＲＳ−２３２Ｃといったシリアル通信のためのインターフェイスである。ＮＩＣ４１は、インターネットやＬＡＮ(Local  Area  Network)に対する通信を制御する。ＵＳＢデバイス４２は、この画像形成装置１に内蔵され、固定的に用いられるＵＳＢ機器である。以下では、画像形成装置１において内部的に接続され固定的に用いられるＵＳＢ機器をＵＳＢデバイス４２と呼び、後述する、ＵＳＢホストコントローラ４３により画像形成装置１に対して外部的に接続されるＵＳＢ機器２ａ、２ｂと区別する。
【００２０】
ＵＳＢホストコントローラ４３は、ＵＳＢによるバスの管理を行う。ＵＳＢホストコントローラ４３は、複数のＵＳＢ機器２ａ、２ｂを接続することができる。ＵＳＢホストコントローラ４３は、ＵＳＢ機器２ａ、２ｂが接続されると、接続されたこれらＵＳＢ機器２ａ、２ｂに対してバスアドレスを動的に割り当てると共に、ＵＳＢ機器２ａ、２ｂと通信を行い、当該ＵＳＢ機器２ａ、２ｂからディスクリプタと呼ばれる情報を取得する。
【００２１】
本第１の実施形態のＵＳＢホストコントローラ４３として適用可能なハードウェアとしては、ＥＨＣＩ(Enhanced  Host  Controller  Interface)やＯＨＣＩ(Open  Host  Controller  Interface)が挙げられるが、特にこれらに限定されるものではない。
【００２２】
ＰＣＩバス１５に対して、スキャナ装置１１、プロッタ装置１２およびＦＡＸ制御ユニット１３が接続される。スキャナ装置１１は、原稿画像を読みとって画像データとして出力し、ＰＣＩバス１５およびＡＳＩＣ２０を介してＣＰＵ２１に供給され、ＨＤＤ２３に格納される。プロッタ装置１２は、例えばＨＤＤ２３から読み出された画像データがＡＳＩＣ２０およびＰＣＩバス１５を介して供給され、この画像データに基づき用紙に対して印字処理を行う。ＦＡＸ制御ユニット１３は、例えば公衆電話回線と接続され、スキャナ装置１１で読み取った原稿画像を、指定した送信先に送信する。
【００２３】
ＰＣＩバス１５に対して、さらに、電源ユニット５０が接続される。電源ユニット５０は、ＣＰＵ２１の制御に従い、この画像形成装置１の各部に電源を供給する。このとき、この画像形成装置１の動作モードが省電力動作を行う低電力モードである場合、電源ユニット５０は、画像形成装置１の各部のうち、ＣＰＵ２１の指示に従い低電力モードにおいて動作を行わないように定められた部分に対する電源の供給を制限する。例えば、操作部１４に対する低電力モードへの移行を指示するユーザ操作、この画像形成装置１に対して所定の時間操作がなされない場合、予め指定された時刻などにより、この画像形成装置１が低電力モードに移行される。
【００２４】
図２は、図１に示した画像形成装置１の機能を説明するための一例の機能ブロック図である。なお、図２において、上述の図１と共通する部分には同一の符号を付して、詳細な説明を省略する。画像形成装置１において、スキャナ装置１１、プロッタ装置１２、ＦＡＸ制御ユニット１３およびその他Ｈ／Ｗ４４は、画像形成装置１に装着されるハードウェアであるエンジン制御ボード１３０に接続され、エンジンＩ／Ｆ１０２を介してＯＳ(Operating  System)１００と通信を行う。
【００２５】
汎用のＯＳであるＯＳ１００と、後述するアプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、１または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停する図示されないシステムリソースマネージャとを含んでプラットフォームが構成される。
【００２６】
コントロールサービスは、図２の例では、システム全体の制御を提供するシステム制御サービス１２０と、ＦＡＸ制御ユニット１３の制御を提供するＦＡＸ制御サービス１２３と、スキャナ装置１１およびプロッタ装置１２の制御を提供するエンジン制御サービス１２４と、メモリ（ＲＡＭ２２およびＨＤＤ２３）の制御を提供するメモリ制御サービス１２５と、操作部１４の制御を提供する操作部制御サービス１２６と、ＮＩＣ４１の制御を提供するネットワーク制御サービス１２７を含む。プラットフォームは、予め定義された関数により各アプリケーションから処理要求を受信可能とするＡＰＩ(Application  Programming  Interface)１０１を有する。
【００２７】
本第１の実施形態では、コントロールサービスとして、ＵＳＢ機器制御サービス１２１およびＵＳＢ機器管理サービス１２２をさらに含む。ＵＳＢ機器制御サービス１２１およびＵＳＢ機器管理サービス１２２は、ＵＳＢホストコントローラ４３に接続されているＵＳＢ機器の制御および管理を行う。例えば、ＵＳＢ機器管理サービス１２２は、ＵＳＢホストコントローラ４３に対してどのようなＵＳＢ機器が接続されているかを把握している。
【００２８】
ここで、ＯＳ１００は、機能の一部に、ソフトウェアとＵＳＢ機器のハードウェアとの中継を行うＵＳＢドライバ１４０を含む。ＵＳＢ機器制御サービス１２１およびＵＳＢ機器管理サービス１２２によるＵＳＢ機器の制御および管理は、このＵＳＢドライバ１４０を介して行われる。ＯＳ１００は、例えば、後述するアプリケーションからの要求に従ったＵＳＢ機器制御サービス１２１およびＵＳＢ機器管理サービス１２２の指示により、ＵＳＢドライバ１４０を介してＵＳＢホストコントローラ４３を制御する。なお、ＰＣＩ  Ｉ／Ｆ１０３は、図１に示したＰＣＩバス１５および３０のインターフェイスである。
【００２９】
アプリケーションは、図２の例では、コピー処理用のアプリケーションであるコピーアプリケーション１１０、印字処理用のアプリケーションであるプリンタアプリケーション１１１、スキャナ処理用のアプリケーションであるスキャナアプリケーション１１２およびＦＡＸの送受信用のアプリケーションであるＦＡＸアプリケーション１１３、ならびに、ＮＩＣ４１によりインターネット通信を行った場合のデータ転送処理などを行うＷｅｂアプリケーション１１４を含む。
【００３０】
これらアプリケーションの各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー処理、印字処理、画像読み取り処理、ＦＡＸ処理などの、画像形成処理に係るユーザサービスを実現している。
【００３１】
電源ユニット５０は、例えば、ＯＳ１００の制御に従い、この画像形成装置１の動作モードが通常モードであれば、画像形成装置１の各部に電源を供給する。一方、低電力モードの場合であれば、画像形成装置１の予め定められた部分にのみ電源を供給し、電力の消費を抑える。
【００３２】
なお、図２に示した各コントロールサービスや各アプリケーション、ＯＳ１００などのプログラムは、予めＨＤＤ２３などに格納されて提供される。これに限らず、これらプログラムの一部または全部を、ＣＤ(Compact  Disk)やＤＶＤ(Digital  Versatile  Disk)、フレキシブルディスク、脱着可能な不揮発性メモリといった記憶媒体に格納して提供してもよい。この場合、当該記憶媒体を読み取り可能なドライブ装置を画像形成装置１に接続し、このドライブ装置で記憶媒体に格納されたプログラムを読み出してＨＤＤ２３などに所定に格納する。さらに、ＮＩＣ４１を介してネットワークからこれらのプログラムを取得するようにしてもよい。
【００３３】
（ＵＳＢ通信手順）
次に、ＵＳＢ機器２ａ、２ｂがＵＳＢホストコントローラ４３に対して接続された際の、通信までの手順について、概略的に説明する。先ず、例えばＵＳＢ機器２ａがＵＳＢホストコントローラ４３のＵＳＢ機器接続ポートに接続され、ＵＳＢホストコントローラ４３にＵＳＢ機器２ａが認識されると、ＵＳＢホストコントローラ４３は、接続されたＵＳＢ機器２ａに対してアドレスを割り当てる。
【００３４】
ＵＳＢホストコントローラ４３は、接続されたＵＳＢ機器２ａに対するアドレスの割り当てが行われると、当該ＵＳＢ機器２ａのディスクリプタの取得を開始する。ＵＳＢ通信では、ＵＳＢホストコントローラ４３とＵＳＢ機器２ａとの通信シーケンスにおいて、ＵＳＢホストコントローラ４３は、ターゲットであるＵＳＢ機器２ａからコントロール転送によってディスクリプタを取得する。ディスクリプタは、ターゲットの特性、属性などの情報を含み、デバイスディスクリプタ、コンフィグレーションディスクリプタ、インターフェイスディスクリプタおよびエンドポイントディスクリプタの４種類がある。
【００３５】
なお、以下では、適宜、これらデバイスディスクリプタ、コンフィグレーションディスクリプタ、インターフェイスディスクリプタおよびエンドポイントディスクリプタの４つのディスクリプタを纏めて標準ディスクリプタと呼ぶ。
【００３６】
図３〜図６を用いて、これら４種類のディスクリプタについて、概略的に説明する。なお、図３〜図６において、オフセットは、先頭からのバイト数を示す。各フィールドは、図３〜図６においてフィールド名の右に示されるデータ長を有し、各ディスクリプタにおいて、オフセットとデータ長とから、特定のフィールドにアクセスすることができる。
【００３７】
図３は、デバイスディスクリプタを示す。デバイスディスクリプタは、このディスクリプタを送信したＵＳＢ機器を識別するための情報が含まれる。図３において、デバイスディスクリプタは、フィールドbLength、フィールドbDescriptorType、フィールドbcdUSB、フィールドbDeviceClass、フィールドbDeviceSubclass、フィールドbDeviceProtocol、フィールドbMaxPacketSize0、フィールドidVendor、フィールドidProduct、フィールドbcdDevice、フィールドiManufacturer、フィールドiProduct、フィールドiSerialNumberおよびフィールドbNumConfigurationを含む。
【００３８】
これらのうち、フィールドbLengthおよびフィールドbDescriptorTypeは、それぞれディスクリプタのバイト長と種類を示す。これらフィールドbLengthおよびフィールドbDescriptorTypeは、各ディスクリプタに設けられる。
【００３９】
デバイスディスクリプタにおいて、フィールドbDeviceClass、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolは、このディスクリプタを送信したＵＳＢ機器の機能を示す。また、フィールドidVendorは、このディスクリプタを送信したＵＳＢ機器のベンダを識別するベンダＩＤである。同様に、フィールドidProductは、ディスクリプタを送信したＵＳＢ機器の製品を示す。これらフィールドidVendorおよびフィールドidProductにより、ＵＳＢ機器の機種を識別することができる。
【００４０】
図４は、コンフィグレーションディスクリプタを示す。コンフィグレーションディスクリプタは、ターゲットのＵＳＢ構成情報を含み、インターフェイスディスクリプタの数を示す情報を持つ。図４において、コンフィグレーションディスクリプタは、フィールドbLength、フィールドbDescriptorType、フィールドwTotalLength、フィールドbNumInterface、フィールドbConfigurationValueおよびフィールドiConfuguration、フィールドbmAttributesおよびフィールドbMaxPowerを含む。
【００４１】
コンフィグレーションディスクリプタにおいて、フィールドbmAttributesは、第６ビットがこのディスクリプタを送信したＵＳＢ機器がセルフパワーおよびバスパワーの何れに対応しているかを示す。また、当該フィールドbmAttributesの第５ビットは、当該ＵＳＢ機器におけるリモートウェークアップ機能のサポートの有無を示す。
【００４２】
図５は、インターフェイスディスクリプタを示す。インターフェイスディスクリプタは、インターフェイスの情報を含み、インターフェイスが持つエンドポイントディスクリプタの数を持つ。図５において、インターフェイスディスクリプタは、フィールドbLength、フィールドbDescriptorType、フィールドbInterfaceNumber、フィールドbAlternateSetting、フィールドbNumEndpoint、フィールドbInterfaceClass、フィールドbInterfaceSubclass、フィールドbInterfaceProtocolおよびフィールドiInterfaceを含む。
【００４３】
また、図６は、エンドポイントディスクリプタを示す。エンドポイントディスクリプタは、通信用のポートであるエンドポイントの情報を含む。図６において、エンドポイントディスクリプタは、フィールドbLength、フィールドbDescriptorType、フィールドbEndpointAddress、フィールドbmAttributes、フィールドwMaxPacketSizeおよびフィールドbIntervalを含む。なお、図５および図６に示したインターフェイスディスクリプタおよびエンドポイントディスクリプタは、本発明と深い関連がないため、説明を省略する。
【００４４】
図７は、このディスクリプタ取得処理の一例のシーケンスを示す。図７の例では、ＵＳＢホストコントローラ４３は、ＵＳＢ機器２ａから、処理ａでデバイスディスクリプタを取得し、処理ｂでコンフィグレーションディスクリプタ、インターフェイスディスクリプタおよびエンドポイントディスクリプタを取得している。
【００４５】
すなわち、ＵＳＢホストコントローラ４３は、ＵＳＢ機器２ａに対して、標準リクエストであるコマンドGET＿DESCRIPTORを、デバイスディスクリプタを指定するパラメータを指定して発行する（ＳＥＱ１００）。ＵＳＢ機器２ａは、このコマンドに応答して、デバイスディスクリプタをＵＳＢホストコントローラ４３に返す（ＳＥＱ１０１）。
【００４６】
以降、同様にして、ＵＳＢホストコントローラ４３は、コンフィグレーションディスクリプタを指定するパラメータをコマンドGET＿DESCRIPTORに指定してＵＳＢ機器２ａに対して発行し、コンフィグレーションディスクリプタを取得する（ＳＥＱ１０２、ＳＥＱ１０３）。ＵＳＢホストコントローラ４３は、以降同様にしてＳＥＱ１０２およびＳＥＱ１０３の処理を繰り返し、ＵＳＢ機器２ａからインターフェイスディスクリプタおよびエンドポイントディスクリプタを取得する。
【００４７】
（第１の実施形態による設定テーブル）
次に、本発明の第１の実施形態による設定テーブルについて説明する。上述したように、本発明では、低電力モード時に動作を行う必要があるか否か（以下、「低電力モード時の動作要否」のように記述する）をＵＳＢ機器に対して設定する設定テーブルを、画像形成装置１が予め有する。本第１の実施形態では、ＵＳＢ機器２ａ、２ｂの機種を示す情報を、低電力モード時の動作要否を設定する情報に関連付けて設定テーブルに格納する。設定テーブルは、予め作成し、画像形成装置１が有する不揮発性の記憶媒体、例えばＨＤＤ２３に格納しておく。
【００４８】
図８は、本第１の実施形態による設定テーブルの一例の構成を示す。本第１の実施形態では、ＵＳＢホストコントローラ４３に接続されるＵＳＢ機器の識別情報として、当該ＵＳＢ機器の機種を示す情報を用いる。この例では、設定テーブルは、デバイスディスクリプタに含まれる、製造元（ベンダ）を示すフィールドidVendorと、製品（プロダクト）を示すフィールドidProductとを、動作要否を示す動作要否情報と関連付けたエントリを含んで構成される。すなわち、この例では、製造元を示す情報と製品を示す情報とを、ＵＳＢ機器の機種を識別する識別情報として用いている。
【００４９】
また、動作要否情報は、この例では、値が”１”および”０”の何れかを取る動作要否フラグを用いている。例えば、この動作要否フラグの値が”１”で「要」、すなわち、フィールドidVendorおよびフィールドidProductで識別されるＵＳＢ機器に対し、低電力モード時でも動作している必要があることが示される。また、動作要否フラグの値が”０”で「否」、すなわち、フィールドidVendorおよびフィールドidProductで識別されるＵＳＢ機器に対し、低電力モード時に動作している必要が無いことが示される。
【００５０】
図８の例では、フィールドidVendorおよびフィールドidProductがそれぞれ値「０ｘ０５ＣＡ」および値「０ｘ２２１８」で示されるＵＳＢ機器（ＩＣカードリーダとする）と、それぞれ値「０ｘ０５ＣＡ」および値「０ｘ０１０５」で示されるＵＳＢ機器とが動作要否フラグの値を”１”とされ、低電力モード時に動作する必要のあることが示されている。また、フィールドidVendorおよびフィールドidProductがそれぞれ値「０ｘＦＦＦＦ」および値「０ｘ０００１」で示されるＵＳＢ機器（ＵＳＢハブとする）は、動作要否フラグの値を”０”とされ、低電力モード時において動作している必要の無いことが示されている。なお、各フィールドの値のうち「０ｘ」は、後続する文字列が１６進表記の数であることを示す。
【００５１】
（第１の実施形態による処理）
図９は、本第１の実施形態による、低電力モードに移行する際の一例の処理を示すフローチャートである。このフローチャートにおける各処理は、プログラムに従ったＣＰＵ２１の制御により実行される。より具体的には、図９のフローチャートにおける各処理は、コントロールサービスにおけるＵＳＢ機器管理サービス１２２により実行される。操作部１４に対するユーザ操作や、タイマ処理などにより画像形成装置１の動作モードが低電力モードに移行する際に、この図９のフローチャートによる処理が開始される。
【００５２】
最初のステップＳ１００で、ＣＰＵ２１は、ＵＳＢホストコントローラ４３に対して、ＵＳＢホストコントローラ４３に接続されているＵＳＢ機器２ａ、２ｂから標準ディスクリプタを取得するよう、要求する。ＵＳＢホストコントローラ４３は、この要求に応じて、図７を用いて説明したような手順で以て、ＵＳＢホストコントローラ４３に接続されたＵＳＢ機器２ａ、２ｂのうち１つのＵＳＢ機器（例えばＵＳＢ機器２ａ）の標準ディスクリプタを取得する。取得された標準ディスクリプタは、ＣＰＵ２１に渡される。
【００５３】
次のステップＳ１０１で、ＣＰＵ２１は、ステップＳ１００で取得されＵＳＢホストコントローラ４３から渡された標準ディスクリプタのデバイスディスクリプタから、識別情報として用いるフィールドidVendorおよびフィールドidProductを取り出す。そして、取り出したフィールドidVendorおよびフィールドidProductと、ＨＤＤ２３に予め格納されている設定テーブルとを比較し、取り出したフィールドidVendorおよびフィールドidProductと一致する設定テーブルのエントリの有無を判定する（ステップＳ１０２）。若し、ステップＳ１０２で一致するエントリが無いと判定された場合、ＣＰＵ２１は、処理を後述するステップＳ１０５に移行させる。
【００５４】
一方、ステップＳ１０２で一致するエントリが有ると判定された場合、ＣＰＵ２１は、処理をステップＳ１０３に移行させ、当該エントリにおける動作要否フラグの値を確認する。そして、次のステップＳ１０４で、当該動作要否フラグの値が要否のうち何れを示す値であるかを判定する。若し、当該動作要否フラグの値が”１”、すなわち対象のＵＳＢ機器（例えばＵＳＢ機器２ａ）が低電力モード時においても動作している必要がある（要）と判定した場合、処理を後述するステップＳ１０７に移行させる。
【００５５】
一方、ステップＳ１０４で、当該動作要否フラグの値が”０”、すなわち対象のＵＳＢ機器が低電力モード時において動作している必要が無い（否）と判定した場合、ＣＰＵ２１は、処理をステップＳ１０５に移行させる。
【００５６】
ステップＳ１０５では、ＣＰＵ２１は、ＵＳＢホストコントローラ４３に接続されている全てのＵＳＢ機器２ａ、２ｂに対する処理が終了したか否かを判定する。若し、終了していないと判定されたら、処理をステップＳ１００に戻し、ＵＳＢホストコントローラ４３に接続されている次のＵＳＢ機器（例えばＵＳＢ機器２ｂ）について、同様の処理を行う。一方、ステップＳ１０５で、全てのＵＳＢ機器２ａ、２ｂに対する処理が終了したと判定したら、処理をステップＳ１０６に移行させる。
【００５７】
ステップＳ１０６の時点では、ＵＳＢホストコントローラ４３に接続される全てのＵＳＢ機器２ａ、２ｂについて、低電力モード時に動作している必要が無いと判定されている。したがって、ＣＰＵ２１は、ステップＳ１０６で、ＵＳＢホストコントローラ４３に対する電源の供給を制限するように制御する。例えば、ＣＰＵ２１は、電源ユニット５０を制御して、ＵＳＢホストコントローラ４３に対する電源の供給を停止させる。そして、処理がステップＳ１０７に移行される。
【００５８】
ステップＳ１０７では、ＣＰＵ２１は、低電力モードにおけるその他の動作、すなわち、ＵＳＢホストコントローラ４３に対する電源制御以外の動作に処理を移行させる。低電力モードにおけるその他の動作は、例えば、操作部１４に設けられる表示デバイスに対する電源供給の停止や、ＨＤＤ２３の停止処理などが考えられる。
【００５９】
ここで、上述したステップＳ１０４で、動作要否フラグの値が”１”であり対象のＵＳＢ機器が低電力モード時においても動作している必要があると判定した場合に、処理がこのステップＳ１０７に移行されている。これは、ＵＳＢホストコントローラ４３に接続されているＵＳＢ機器のうち、１つでも低電力モード時においても動作している必要がある機器が存在する場合、ＵＳＢホストコントローラ４３に対する電源供給の制限を行わず、通常通り電源供給を行うことを意味する。
【００６０】
図１０および図１１を用いて、上述した図８の設定テーブルおよび図９のフローチャートに従い低電力モード時に移行した場合の、画像形成装置１における各ハードウェアに対する電源制御について説明する。
【００６１】
図１０は、ＵＳＢホストコントローラ４３に対して、低電力モード時においても動作している必要があるＵＳＢ機器２ａ（ＩＣカードリーダとする）が接続されている場合の例である。この例では、ＵＳＢ機器２ａは、識別情報として、標準ディスクリプタにおけるデバイスディスクリプタのフィールドidVendorおよびフィールドidProductに、それぞれ値「０ｘ０５ＣＡ」および値「０ｘ２２１８」が格納されているものとする。
【００６２】
この場合、図９のフローチャートにおけるステップＳ１００で、ＵＳＢ機器２ａから識別情報２００を含む標準ディスクリプタが取得される。図８に示した設定テーブルには、取得した識別情報２００と一致するエントリが存在する（ステップＳ１０１、Ｓ１０２）。そこで、ＣＰＵ２１は、当該エントリにおける動作要否フラグの値を確認する（ステップＳ１０３）。図８の例では、この動作要否フラグの値が”１”とされ、ＵＳＢ機器２ａが低電力モード時においても動作している必要がある（動作要）と判定される（ステップＳ１０４）。
【００６３】
ＣＰＵ２１は、ステップＳ１０４の判定結果に応じて、画像形成装置１の各部に対する電源の供給を制御する。この、ＵＳＢ機器２ａが低電力モード時においても動作している必要がある例では、低電力モードへの移行に際して、例えばスキャナ装置１１、プロッタ装置１２、操作部１４およびＨＤＤ２３（それぞれ図１０において斜線を付して示す）に対する電源の供給を制限する。これに対して、ＵＳＢホストコントローラ４３に対する電源の供給は制限せず、継続して行う。一例として、ＣＰＵ２１は、電源ユニット５０を制御して、これらスキャナ装置１１、プロッタ装置１２、操作部１４およびＨＤＤ２３に対する電源の供給を停止する。
【００６４】
このように電源供給を制御することで、低電力モード時において、ＵＳＢホストコントローラ４３と、ＵＳＢホストコントローラ４３に接続されるＵＳＢ機器２ａとが動作可能とされると共に、省電力化も可能となる。ＵＳＢ機器２ａがＩＣカードリーダであるこの例では、低電力モード時においても、ユーザ認証などを行うためのＩＣカードの読み取りを、ＩＣカードリーダであるＵＳＢ機器２ａにより行うことができる。
【００６５】
図１１は、ＵＳＢホストコントローラ４３に対して、低電力モード時において動作している必要が無いＵＳＢ機器２ｂ（ＵＳＢハブとする）が接続されている場合の例である。この例では、ＵＳＢ機器２ｂは、識別情報として、標準ディスクリプタにおけるデバイスディスクリプタのフィールドidVendorおよびフィールドidProductに、それぞれ値「０ｘＦＦＦＦ」および値「０ｘ０００１」が格納されているものとする。
【００６６】
この場合において、図８に示した設定テーブルには、図９のフローチャートにおけるステップＳ１００でＵＳＢ機器２ｂから取得した標準ディスクリプタに含まれる識別情報２００’と一致するエントリが存在する（ステップＳ１０１、Ｓ１０２）。そこで、ＣＰＵ２１は、当該エントリにおける動作要否フラグの値を確認する（ステップＳ１０３）。図８の例では、この動作要否フラグの値が”０”とされ、ＵＳＢ機器２ｂが低電力モード時において動作している必要が無い（動作否）と判定される（ステップＳ１０４）。
【００６７】
ＣＰＵ２１は、ステップＳ１０４の判定結果に応じて、画像形成装置１の各部に対する電源の供給を制御する。この、ＵＳＢ機器２ｂが低電力モード時において動作している必要が無い例では、低電力モードへの移行に際して、例えばスキャナ装置１１、プロッタ装置１２、操作部１４、ＨＤＤ２３、ＵＳＢホストコントローラ４３（それぞれ図１１において斜線を付して示す）に対する電源の供給を制限する。一例として、ＣＰＵ２１は、電源ユニット５０を制御して、スキャナ装置１１、プロッタ装置１２、操作部１４、ＨＤＤ２３、ＵＳＢホストコントローラ４３に対する電源の供給を停止する。
【００６８】
またこの場合、ＵＳＢホストコントローラ４３に対する電源の供給が停止されることで、ＵＳＢホストコントローラ４３に接続されるＵＳＢ機器２ｂに対する電源の供給も停止される（ＵＳＢ機器２ｂの電源がバスパワー供給の場合）。これにより、効果的な省電力化が可能となる。
【００６９】
（低電力モード移行処理中の新規接続ＵＳＢ機器の認識処理）
ＵＳＢ機器は、活線挿抜が可能とされているため、低電力モードへの移行処理中に、ＵＳＢホストコントローラ４３に対して、新規にＵＳＢ機器が接続される場合が起こり得る。本第１の実施形態では、低電力モードへの移行時に、ＵＳＢホストコントローラ４３による、新規に接続されるＵＳＢ機器の認識処理を保留にする。そして、ＵＳＢホストコントローラ４３に対して既に接続されているＵＳＢ機器が、低電力モード時においても動作している必要の有無の判定結果に応じて、保留していた新規接続のＵＳＢ機器の認識処理を再開するか否かを決定する。
【００７０】
図１２は、低電力モードに移行処理中に新規接続ＵＳＢ機器の認識処理を保留にする場合の第１のシーケンスの例を示す。操作部１４に対するユーザ操作やタイマ処理などにより低電力モードへの移行イベントが発生すると（ＳＥＱ１１０）、システム制御サービス１２０は、ＵＳＢ機器管理サービス１２２に対して低電力モードへの移行を通知する（ＳＥＱ１１１）。この通知を受けたＵＳＢ機器管理サービス１２２は、図９のフローチャートによる処理を開始させると共に、ＯＳ１００に対して、ＵＳＢ機器の接続検出処理を停止させる旨を要求する（ＳＥＱ１１２）。
【００７１】
ＯＳ１００は、ＳＥＱ１１２による要求に応じて、例えばＵＳＢホストコントローラ４３に対して、新たに接続されるＵＳＢ機器の検出処理を保留するように命令する。この命令に応じて、ＵＳＢホストコントローラ４３は、例えばＳＥＱ１１２後に新たにＵＳＢ機器の接続による割り込みがかけられても（ＳＥＱ１１３）、このＵＳＢ機器に対する認識処理、例えば当該ＵＳＢ機器に対するアドレス割り当てや標準ディスクリプタ取得処理などを行わない。
【００７２】
ＵＳＢ機器管理サービス１２２は、処理が図９のフローチャートのステップＳ１０４まで進み、処理対象のＵＳＢ機器が低電力モード時においても動作している必要があると判定した場合、上述したように、処理をステップＳ１０７に移行させる。それと共に、ＵＳＢ機器管理サービス１２２は、ＯＳ１００に対してＵＳＢ機器の接続検出処理を再開させる旨を要求する（ＳＥＱ１１４）。ＯＳ１００は、この要求に応じて上述のＳＥＱ１１３において保留していた、新たに接続されるＵＳＢ機器の検出処理を再開させる。
【００７３】
さらに、ＵＳＢ機器管理サービス１２２は、システム制御サービス１２０に対して、ＵＳＢホストコントローラ４３の低電力モード時の動作が必要である旨を通知する（ＳＥＱ１１５）。システム制御サービス１２０は、この通知に応じて、ＯＳ１００に対して低電力モードへの移行を要求する（ＳＥＱ１１６）。ＯＳ１００は、この要求に応じて、ＵＳＢホストコントローラ４３を除く、予め決められた部分への電源の供給を制限する。例えば、ＯＳ１００は、図１０を用いて説明したように、電源ユニット５０を制御して、画像形成装置１におけるスキャナ装置１１、プロッタ装置１２、操作部１４およびＨＤＤ２３に対する電源の供給を停止させる。
【００７４】
図１３は、低電力モードに移行処理中に新規接続ＵＳＢ機器の認識処理を保留にする場合の第２のシーケンスの例を示す。なお、図１３において、上述の図１２と共通する部分には同一の符号を付して、詳細な説明を省略する。低電力モードへの移行イベントが発生すると（ＳＥＱ１１０）、システム制御サービス１２０がＵＳＢ機器管理サービス１２２に対して低電力モードへの移行を通知し（ＳＥＱ１１１）、ＵＳＢ機器管理サービス１２２は、この通知に応じて図９のフローチャートによる処理を開始させると共に、ＯＳ１００に対して、ＵＳＢ機器の接続検出処理を停止させる旨を要求する（ＳＥＱ１１２）。ＯＳ１００は、この要求に応じて、ＵＳＢホストコントローラ４３に対して、新たに接続されるＵＳＢ機器の検出処理を保留するように命令する。
【００７５】
ＵＳＢ機器管理サービス１２２は、処理が図９のフローチャートのステップＳ１０４まで進み、処理対象のＵＳＢ機器が低電力モード時においても動作している必要が無いと判定した場合、上述したように、処理をステップＳ１０５に移行させる。そして、現時点でＵＳＢホストコントローラ４３に接続が認識されている全てのＵＳＢ機器に対してステップＳ１００〜ステップＳ１０４の処理が終了していない場合には、処理をステップＳ１００に戻して次のＵＳＢ機器に対する処理を行う。
【００７６】
一方、ＵＳＢ機器管理サービス１２２は、ＵＳＢホストコントローラ４３に認識されている全てのＵＳＢ機器について、低電力モード時においても動作している必要が無いと判定した場合、その旨をシステム制御サービス１２０に通知する（ＳＥＱ１２０）。上述の図１２の場合と異なり、ＯＳ１００に対するＵＳＢ機器の接続検出処理の再開要求は行わない。
【００７７】
システム制御サービス１２０は、ＵＳＢ機器管理サービス１２２からの通知に応じて、ＵＳＢホストコントローラ４３に対する電源供給の停止を要求する（ＳＥＱ１２１）。この要求に応じて、ＯＳ１００は、例えば電源ユニット５０を制御して、ＵＳＢホストコントローラ４３に対する電源供給を停止させる。さらに、システム制御サービス１２０は、ＯＳ１００に対して低電力モードへの移行を要求する（ＳＥＱ１２２）。すなわち、この場合には、ＵＳＢ機器の接続検出処理を保留したまま、低電力モードに移行させることになる。ＯＳ１００は、この要求に応じて、ＵＳＢホストコントローラ４３を含む、予め決められた部分への電源の供給を制限する。例えば、ＯＳ１００は、図１１を用いて説明したように、電源ユニット５０を制御して、画像形成装置１におけるスキャナ装置１１、プロッタ装置１２、操作部１４およびＨＤＤ２３などに対する電源の供給を停止させる。
【００７８】
このように、本第１の実施形態では、接続されるＵＳＢ機器が低電力モード時において動作する必要を要するか否かに応じて、低電力モードに移行した際の電源供給を制御することで、ＵＳＢ機器による必要な機能を有効化しつつ、効率的に省電力化を行うことができる。
【００７９】
（第１の実施形態の変形例）
次に、上述した本発明の第１の実施形態の変形例について説明する。上述の第１の実施形態では、ＵＳＢホストコントローラ４３に接続されるＵＳＢ機器を識別するための識別情報として、当該ＵＳＢ機器の機種を示す情報を用いていた。これに対して、本第１の実施形態の変形例では、ＵＳＢ機器の種類を示す情報を、当該ＵＳＢ機器を識別するための識別情報として用いる。
【００８０】
図１４は、本第１の実施形態の変形例による設定テーブルの一例の構成を示す。この例では、設定テーブルは、デバイスディスクリプタに含まれる、ＵＳＢ機器の種類を示すフィールドbDeviceClass、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolを、動作要否情報（動作要否フラグ）と関連付けたエントリを含んで構成される。
【００８１】
また、識別情報としてフィールドbDeviceClass、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolを用いる場合、エントリの値として、任意の値が許されることを意味する、所謂ワイルドカード「＊」を用いることができる。
【００８２】
図１４の例では、１行目のエントリは、フィールドbDeviceClass、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolがそれぞれ値「０ｘ０Ｂ」、値「＊」および値「＊」とされて、値”１”の動作要否フラグとが関連付けられ、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolの値が任意であることを示している。この１行目のエントリは、例えばスマートカードを示している。同様に、２行目のエントリは、各フィールドがそれぞれ値「０ｘ０３」、値「＊」および値「０ｘ０１」とされて、値”１”の動作要否フラグとが関連付けられ、フィールドbDeviceSubclassの値が任意であることを示している。この２行目のエントリは、例えばＵＳＢキーボードを示している。また、３行目のエントリは、各フィールドがそれぞれ値「０ｘ０９」、値「０ｘ００」および値「＊」とされて、値”０”の動作要否フラグとが関連付けられ、フィールドbDeviceProtocolの値が任意であることを示している。この３行目のエントリは、例えばＵＳＢハブを示している。
【００８３】
このようにエントリを設けた設定テーブルによっても、上述した第１の実施形態と同様の処理により、接続されるＵＳＢ機器が低電力モード時において動作する必要を要するか否かに応じて、低電力モードに移行した際の電源供給を制御することで、ＵＳＢ機器による必要な機能を有効化しつつ、効率的に省電力化を行うことができる。
【００８４】
また、設定テーブルを、ＵＳＢ機器の種類を示す情報を用いて構成しているため、ＵＳＢ機器の製造元や機種に関わらず、ＵＳＢ機器の機能などに応じて低電力モード時の処理を適用することができる。
【００８５】
なお、上述の第１の実施形態と、本変形例とを組み合わせて、設定テーブルをＵＳＢ機器の機種を示す情報と、種類を示す情報とを用いて構成してもよい。この場合、ＵＳＢ機器の識別情報としてフィールドidVendor、フィールドidProduct、フィールドbDeviceClass、フィールドbDeviceSubclassおよびフィールドbDeviceProtocolを取得し、これら全てのフィールドの値と、設定テーブルの値とを比較する。
【００８６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本第２の実施形態では、ＵＳＢ機器がリモートウェイクアップ機能に対応している場合の例である。ここで、ＵＳＢ規格におけるリモートウェイクアップ機能について、概略的に説明する。
【００８７】
ＵＳＢにおいて、バスは、動作状態とサスペンド状態との２状態を持つ。動作状態は、バスがアクティブな状態であり、動作状態において、ＵＳＢ機器に対してフレームの開始を示すＳＯＦ(Start  Of  Frame)を所定間隔で送信する。また、動作状態では、ＵＳＢホストコントローラからＵＳＢ機器に対してＵＳＢケーブルを介して電源が供給される。サスペンド状態は、バスがアイドル状態となる。例えば、サスペンド状態では、ＵＳＢホストコントローラは、ＵＳＢ機器に対するＳＯＦの送信を停止すると共に、ＵＳＢ機器に対する電源の供給を制限する。これにより、ＵＳＢホストコントローラにおける消費電力が低減される。
【００８８】
リモートウェイクアップ機能は、サスペンド状態のＵＳＢ機器が自分でサスペンド状態を解除できる機能である。例えば、ＵＳＢ機器は、タイマ処理など所定のトリガにより、サスペンド状態に移行した時点から所定の時間が経過した場合に、ＵＳＢホストコントローラに対してリモートウェイクアップ信号を送信する。ＵＳＢホストコントローラは、この信号を受信すると、バスをアイドル状態からアクティブな状態に遷移させる。
【００８９】
本第２の実施形態では、ＵＳＢホストコントローラ４３は、接続されるＵＳＢ機器が低電力モード時において動作している必要があるとされた場合に、当該ＵＳＢ機器がリモートウェイクアップ機能を有しているか否かを確認する。そして、有していると判定されたら、当該ＵＳＢ機器が接続されるＵＳＢ機器接続ポートをサスペンド状態として、次のＵＳＢ機器に対する処理に移行する。
【００９０】
なお、本第２の実施形態において、情報処理装置として、第１の実施形態で図１および図２を用いて説明した画像形成装置１をそのまま適用できる。また、ＵＳＢ機器２ａ、２ｂの低電力モード時の動作要否を判定するための設定テーブルも、第１の実施形態または第１の実施形態の変形例で、図８または図１４を用いて説明した設定テーブルをそのまま用いることができる。
【００９１】
図１５は、本第２の実施形態による、低電力モードに移行する際の一例の処理を示すフローチャートである。このフローチャートにおける各処理は、プログラムに従ったＣＰＵ２１の制御により実行される。より具体的には、図１５のフローチャートにおける各処理は、コントロールサービスにおけるＵＳＢ機器管理サービス１２２により実行される。操作部１４に対するユーザ操作や、タイマ処理などにより画像形成装置１の動作モードが低電力モードに移行する際に、この図１５のフローチャートによる処理が開始される。
【００９２】
最初のステップＳ２００で、ＣＰＵ２１は、フラグFLAGの値を”０”として初期化する。そして、次のステップＳ２０１で、ＵＳＢホストコントローラ４３に対して、ＵＳＢホストコントローラ４３に接続されているＵＳＢ機器２ａ、２ｂから標準ディスクリプタを取得するよう、要求する。ＵＳＢホストコントローラ４３は、この要求に応じて、ＵＳＢホストコントローラ４３に接続された、例えばＵＳＢ機器２ａの標準ディスクリプタを取得し、ＣＰＵ２１に渡す。
【００９３】
次のステップＳ２０２で、ＣＰＵ２１は、ステップＳ２０１の処理によりＵＳＢホストコントローラ４３から渡された標準ディスクリプタから、識別情報として設定テーブルに予め設定されたフィールドを取り出す。そして、取り出したフィールドと、ＨＤＤ２３に予め格納されている設定テーブルとを比較し、取り出したフィールドの値と一致する設定テーブルのエントリの有無を判定する（ステップＳ２０３）。若し、ステップＳ２０３で一致するエントリが無いと判定された場合、ＣＰＵ２１は、処理を後述するステップＳ２０９に移行させる。
【００９４】
一方、ステップＳ２０３で一致するエントリが有ると判定された場合、ＣＰＵ２１は、処理をステップＳ２０４に移行させ、当該エントリにおける動作要否フラグの値を確認する。そして、次のステップＳ２０５で、当該動作要否フラグの値が要否のうち何れを示す値であるかを判定し、当該動作要否フラグの値が”１”であり、対象のＵＳＢ機器（例えばＵＳＢ機器２ａ）が低電力モード時においても動作している必要がある（要）と判定した場合、処理をステップＳ２０６に移行させる。
【００９５】
若し、当該動作要否フラグの値が”０”であり、対象のＵＳＢ機器が低電力モード時に動作している必要が無い（否）と判定した場合は、処理を後述するステップＳ２０９に移行させる。
【００９６】
ステップＳ２０６で、ＣＰＵ２１は、フラグFLAGの値を”１”として、処理をステップＳ２０７に移行させる。ステップＳ２０７で、ＣＰＵ２１は、対象のＵＳＢ機器（例えばＵＳＢ機器２ａ）がリモートウェイクアップ機能を有しているか否かを判定する。例えば、ＣＰＵ２１は、上述のステップＳ２０１で取得された標準ディスクリプタにおけるコンフィグレーションディスクリプタから、リモートウェイクアップ機能の有無を示すフィールドbmAttributesの第５ビットの値を取り出し、この値が「リモートウェイクアップ機能のサポート有り」を示しているか否かを判定する。若し、サポート無しを示していると判定した場合は、処理を後述するステップＳ２０９に移行させる。
【００９７】
一方、ステップＳ２０７で、フィールドbmAttributesの第５ビットの値がリモートウェイクアップ機能のサポート有りを示していると判定した場合は、処理をステップＳ２０８に移行させる。ステップＳ２０８では、ＣＰＵ２１は、ＵＳＢホストコントローラ４３に対して、対象のＵＳＢ機器が接続されているＵＳＢ機器接続ポートをサスペンド状態にするよう、命令する。ＵＳＢホストコントローラ４３は、この命令に従い、当該ＵＳＢ機器接続ポートをサスペンド状態にする。ＣＰＵ２１は、処理をステップＳ２０９に移行させる。
【００９８】
ステップＳ２０９では、ＣＰＵ２１は、ＵＳＢホストコントローラ４３に接続されている全てのＵＳＢ機器２ａ、２ｂに対する処理が終了したか否かを判定する。若し、終了していないと判定されたら、処理をステップＳ２０１に戻し、ＵＳＢホストコントローラ４３に接続されている次のＵＳＢ機器（例えばＵＳＢ機器２ｂ）について、同様の処理を行う。一方、ステップＳ２０９で、全てのＵＳＢ機器２ａ、２ｂに対する処理が終了したと判定したら、処理をステップＳ２１０に移行させる。
【００９９】
ステップＳ２１０では、ＣＰＵ２１は、フラグFLAGの値が”０”であるか否かを判定する。若し、フラグFLAGの値が”０”であると判定したら、処理をステップＳ２１１に移行させる。この場合、ＵＳＢホストコントローラ４３に接続された全てのＵＳＢ機器２ａ、２ｂが低電力モード時に動作している必要が無いと判断できる。そのため、ＣＰＵ２１は、例えば電源ユニット５０を制御して、ＵＳＢホストコントローラ４３に対する電源の供給を制限する。
【０１００】
そして、ＣＰＵ２１は、処理をステップＳ２１２に移行させ、低電力モードにおけるその他の処理、すなわち、ＵＳＢホストコントローラ４３に対する電源制御以外の動作に処理を移行させる。
【０１０１】
一方、ステップＳ２１０において、フラグFLAGの値が”１”であると判定した場合、ＣＰＵ２１は、処理をステップＳ２１２に移行させる。すなわち、この場合、ＵＳＢホストコントローラ４３に接続されたＵＳＢ機器２ａ、２ｂのうち少なくとも１つが、低電力モード時に動作している必要があると判断できる。そのため、ＵＳＢホストコントローラ４３に対して継続して電源を供給する。
【０１０２】
このように、本第２の実施形態によれば、低電力モード時に動作している必要があるＵＳＢ機器の接続を検出した場合に、フラグFLAGを用いてその旨を記憶していると共に、当該ＵＳＢ機器がリモートウェイクアップ機能を有するか否かを判定する。そのため、低電力モードへの移行時に、低電力モード時に動作している必要があり、且つ、リモートウェイクアップ機能を有するＵＳＢ機器の接続ポートをサスペンド状態とすることができ、より効率的な省電力化が可能である。
【符号の説明】
【０１０３】
１  画像形成装置
２ａ，２ｂ  ＵＳＢ機器
１１  スキャナ装置
１２  プロッタ装置
１３  ＦＡＸ制御ユニット
１４  操作部
１５，３０  ＰＣＩバス
２１  ＣＰＵ
２３  ＨＤＤ
４３  ＵＳＢホストコントローラ
５０  電源ユニット
１００  ＯＳ
１２０  システム制御サービス
１２１  ＵＳＢ機器制御サービス
１２２  ＵＳＢ機器管理サービス
１４０  ＵＳＢドライバ
【先行技術文献】
【特許文献】
【０１０４】
【特許文献１】特開２０００−０１０９０７号公報
【図１】
0005790007.tif 000002
【図２】
0005790007.tif 000003
【図３】
0005790007.tif 000004
【図４】
0005790007.tif 000005
【図５】
0005790007.tif 000006
【図６】
0005790007.tif 000007
【図７】
0005790007.tif 000008
【図８】
0005790007.tif 000009
【図９】
0005790007.tif 000010
【図１０】
0005790007.tif 000011
【図１１】
0005790007.tif 000012
【図１２】
0005790007.tif 000013
【図１３】
0005790007.tif 000014
【図１４】
0005790007.tif 000015
【図１５】
0005790007.tif 000016