(57)【特許請求の範囲】
【請求項１】
複数デバイスの接続と、接続されたデバイスに対する電力供給とが可能なバスに接続され、該バスに消費電力を通知して電力供給を受ける受給型デバイスをコンピュータに制御させるデバイスドライバであって、
前記バスに接続された受給型デバイスによる消費電力の通知に先立って、該バスが供給することができる残電力を知得する残電力知得部と、
前記バスに接続された受給型デバイスによる消費電力の通知に先立って、該通知とは別に該消費電力を知得する消費電力知得部と、
前記残電力知得部によって知得された残電力が、前記消費電力知得部によって知得された消費電力を賄うのに十分であるか否かに応じて、該受給型デバイスによる該消費電力の通知を許可して前記バスによる電力供給を開始させ、あるいは電力不足を回避するための回避処理を実行する給電制御部として前記コンピュータを動作させるものであることを特徴とするデバイスドライバ。
【請求項２】
前記給電制御部が、前記回避処理として、前記受給型デバイスによる消費電力の通知に先立って所定の表示装置に残電力が不足していることを表した警告文を表示させ、所定の開始操作を待って、該消費電力の通知を許可して前記バスによる電力供給を開始させるものであることを特徴とする請求項１記載のデバイスドライバ。
【請求項３】
前記給電制御部が、前記回避処理として、前記受給型デバイスから前記バスに前記残電力で賄える消費電力を通知させるとともに、該受給型デバイスをその通知させた消費電力内で動作させるものであることを特徴とする請求項１記載のデバイスドライバ。
【請求項４】
前記受給型デバイスが、前記バスに通知する予定の消費電力を書き換え自在に記憶するものであり、
前記給電制御部は、前記受給型デバイスに記憶されている消費電力を書き換えることにより、その書き換えられた消費電力を該受給型デバイスから前記バスへと通知させるものであることを特徴とする請求項３記載のデバイスドライバ。
【請求項５】
バスに接続され、該バスに消費電力を通知して該バスから電力供給を受けるデバイスであって、
前記消費電力が前記バスの供給能力に対して過大である場合に、このデバイスを、該消費電力よりも少ない消費電力で動作する動作状態に移行させる電力制御部と、
前記動作状態に移行した場合に、該動作状態における消費電力を前記バスに通知する電力通知部とを備えたことを特徴とするデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バスに接続されるデバイスを制御するデバイスドライバ、およびバスから電力の供給を受けるデバイスに関する。
【０００２】
【従来の技術】
従来より、パーソナルコンピュータなどの本体には、周辺機器（デバイス）を接続するためのバスが設けられており、本体内には、そのバスに接続される周辺機器を制御するデバイスドライバが組み込まれている。また、近年では、パーソナルコンピュータのインターフェースとして、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（以下ＵＳＢと称す）が標準的なものとなってきている。
【０００３】
このＵＳＢには、複数のデバイス（以下ＵＳＢデバイスと称す）を接続することができ、そのようなＵＳＢデバイスのうち低電力のＵＳＢデバイスには、ＵＳＢから電力の供給を受ける方式が採用されたもの（バスパワー・デバイス）も存在する。
【０００４】
しかし、ＵＳＢが普及するに連れて、パーソナルコンピュータに接続されるデバイスのうちＵＳＢデバイスが占める割合が増加してきており、１台のパーソナルコンピュータに接続されるＵＳＢデバイスの数も増加してきている。このため、ＵＳＢデバイスの合計消費電力が、パーソナルコンピュータに設けられたＵＳＢの許容供給電力を越えてしまう場合がある。ＵＳＢでは、このような場合にパーソナルコンピュータに異常な負荷が掛かることなどを回避するために、予めＵＳＢデバイスからバス側に消費電力を通知させ、その消費電力がＵＳＢの許容供給電力で賄いきれない場合にはそのＵＳＢデバイスを強制使用中止（ｄｉｓａｂｌｅ）の状態にさせるという方式を採用している。
【０００５】
【発明が解決しようとする課題】
しかし、最近では、携帯電話等といったような、バッテリを有したデバイスにもＵＳＢデバイスが採用されてきており、そのようなバッテリを有したＵＳＢデバイスは、電子回路などの動作用の電力のみならずバッテリ充電用の電力もＵＳＢから供給を受ける。このような、動作時の消費電力が大きく異なる複数の機能を持ったＵＳＢデバイスは、通常は、最も多く電力を消費する機能における消費電力をバス側に知らせるので、電子回路などの動作だけが必要な場合であっても必要以上の電力をホストに要求してしまい、強制使用中止（ｄｉｓａｂｌｅ）の状態に陥ってしまうことがある。
【０００６】
また、機能毎に消費電力を切り替えてバス側に知らせるタイプのＵＳＢデバイスも存在するが、消費電力が大きい機能に切り換えた際に強制使用中止（ｄｉｓａｂｌｅ）の状態に陥ってしまう場合がある。
【０００７】
このような強制使用中止（ｄｉｓａｂｌｅ）の状態に一旦陥ってしまうと、ＵＳＢデバイスの再接続などを行わない限り、その後はそのＵＳＢデバイスを全く利用することができなくなるので、ユーザはＵＳＢデバイスの運用に当たって、強制使用中止（ｄｉｓａｂｌｅ）の状態に陥ることがないように慎重に運用することが必要となり、煩雑である。
【０００８】
上記の問題は、ＵＳＢのみならず、複数のデバイスの接続と電力供給とが可能な任意のバスについて生じる問題である。
【０００９】
本発明は、上記事情に鑑み、デバイスが強制使用中止（ｄｉｓａｂｌｅ）の状態に陥ることを容易に回避することができるデバイスドライバおよびデバイスを提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成する本発明のデバイスドライバは、複数デバイスの接続と、接続されたデバイスに対する電力供給とが可能なバスに接続され、そのバスに消費電力を通知して電力供給を受ける受給型デバイスを制御するデバイスドライバであって、
上記バスに接続された受給型デバイスによる消費電力の通知に先立って、そのバスが供給することができる残電力を知得する残電力知得部と、
残電力知得部によって知得された残電力が、受給型デバイスによって通知される予定の消費電力を賄うのに十分であるか否かに応じて、受給型デバイスによる消費電力の通知を許可してバスによる電力供給を開始させ、あるいは電力不足を回避するための回避処理を実行する給電制御部とを備えたことを特徴とする。
【００１１】
ここで、「通知される予定の消費電力」は、受給型デバイス内に記憶されているものであってもよく、あるいはデバイスドライバ自体に予め組み込まれているものであってもよい。
【００１２】
本発明のデバイスドライバにおいて、上記給電制御部は、
「上記回避処理として、受給型デバイスによる消費電力の通知に先立って所定の表示装置に警告文を表示させ、所定の開始操作を待って、消費電力の通知を許可してバスによる電力供給を開始させるもの」
であってもよく、あるいは
「上記回避処理として、受給型デバイスからバスに上記残電力で賄える消費電力を通知させるとともに、その受給型デバイスをその通知させた消費電力内で動作させるもの」であってもよい。
【００１３】
警告文を表示して開始操作を待つ回避処理の場合には、受給型デバイスのユーザは、残電力が不足することを警告文によって認識することができ、不要な他のデバイスをバスから外すことなどにより電力を確保してから開始操作を行うことにより強制使用中止（ｄｉｓａｂｌｅ）の状態を回避することができる。
【００１４】
また、残電力で賄える消費電力を通知させる回避処理の場合には、強制使用中止（ｄｉｓａｂｌｅ）の状態が自動的に回避されることとなる。
【００１５】
また、本発明のデバイスドライバは、
「上記残電力知得部は、受給型デバイスがバスに接続された際に残電力を知得するものである」
という形態であってもよく、あるいは
「上記受給型デバイスが、互いに消費電力が異なる複数の動作モードを有し、動作モードの変更に伴って新たに消費電力をバスに通知するものであり、
上記残電力知得部は、受給型デバイスの動作モードが変更される際に残電力を知得するものである」
という形態であってもよい。
【００１６】
さらに、本発明のデバイスドライバにおいて、
「上記受給型デバイスが、互いに消費電力が異なる複数の動作モードを有するものであり、
上記給電制御部は、残電力知得部によって知得された残電力が、上記複数の動作モードそれぞれの消費電力のうち最大の消費電力を賄うのに十分である場合に、受給型デバイスからバスにその最大の消費電力を通知させるものである」
ということが好適である。このような形態のデバイスドライバによれば、残電力が十分に大きい時点で受給型デバイス用の電力が予め確保されるので、以後、どのような動作モードが選択されても強制使用中止（ｄｉｓａｂｌｅ）の状態は回避される。
【００１７】
なお、本発明のデバイスドライバは、
「上記受給型デバイスが、バスに通知する予定の消費電力を複数個記憶するものであり、
上記給電制御部は、受給型デバイスに記憶されている複数個の消費電力のうちの１つの消費電力を選択することにより、その選択された消費電力を受給型デバイスからバスへと通知させるものである」
という形態であってもよいが、
「上記受給型デバイスが、バスに通知する予定の消費電力を書き換え自在に記憶するものであり、
上記給電制御部は、受給型デバイスに記憶されている消費電力を書き換えることにより、その書き換えられた消費電力を受給型デバイスからバスへと通知させるものである」
という形態が好適である。このような形態のデバイスドライバによれば、受給型デバイスに用意するべきメモリ素子を少なく抑えることができ、受給型デバイスのコストを抑えることができる。
上記目的を達成する本発明のデバイスは、バスに接続され、そのバスに消費電力を通知してそのバスから電力供給を受けるデバイスであって、
上記消費電力がバスの供給能力に対して過大である場合に、このデバイスを、その消費電力よりも少ない消費電力で動作する動作状態に移行させる電力制御部と、
上記動作状態に移行した場合に、その動作状態における消費電力をバスに通知する電力通知部とを備えたことを特徴とする。
【００１８】
本発明のデバイスによれば、消費電力がバスの供給能力を超えた場合に動作状態が移行して消費電力が抑えられるので、強制使用中止（ｄｉｓａｂｌｅ）の状態は回避される。
【００１９】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００２０】
図１は、本発明のデバイスドライバの一実施形態が適用されるコンピュータシステムを示す図である。
【００２１】
この図には、コンピュータ本体１０とＵＳＢデバイス２０とを有するコンピュータシステム１が示されており、このコンピュータシステム１は、図示が省略されたディスプレイなども有している。
【００２２】
コンピュータ本体１０には、ホストコントローラ１１と、そのホストコントローラ１１に制御される３組のバスライン１２とを備えたＵＳＢ１３が設けられており、バスライン１２は、コネクタとケーブルで構成されている。ＵＳＢデバイス２０は、このＵＳＢ１３のバスライン１２の１つにＵＳＢ＿Ｉ／Ｆ２１を介して接続されている。このＵＳＢデバイス２０は、本発明にいう受給型デバイスの一例であって、ＵＳＢ１３から電力の供給を受ける。３組のバスライン１２を枝分かれさせることにより、ＵＳＢ１３には最大で１２７個のデバイスを接続することができ、ＵＳＢ１３は、所定の上限電力内であれば、複数の受給型デバイスに電力を供給することもできる。
【００２３】
コンピュータ本体１０には、コンピュータシステム１全体の基本的な管理を行うＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１４と、コンピュータシステム１を所定の役目の装置として動作させるアプリケーション１５と、ＵＳＢデバイス２０を制御する、そのＵＳＢデバイス２０用のデバイスドライバ１００がインストールされている。ここで、このデバイスドライバ１００は、ＣＤ−ＲＯＭ２００に記憶されていたものであり、そのＣＤ−ＲＯＭ２００が、コンピュータシステム１に備えられた、図示が省略されたＣＤドライブに装填されてコンピュータ本体１０に読み込まれることによってインストールされたものである。このデバイスドライバ１００は、本発明のデバイスドライバの一実施形態である。
【００２４】
図２は、デバイスドライバの構成を示す図である。
【００２５】
この図２には、ＣＤ−ＲＯＭ２００に記憶された状態でのデバイスドライバ１００の構成が示されているが、コンピュータ本体１０にインストールされた状態でのデバイスドライバ１００も同様な構成を有しており、デバイスドライバ１００には、残電力知得部１１０と給電制御部１２０が備えられている。
【００２６】
残電力知得部１１０は、図１に示すＵＳＢ１３が供給することができる電力の残りを知得するものであり、給電制御部１２０は、ＵＳＢデバイス２０に対する電力供給を制御するものである。
【００２７】
図１に戻って説明を続ける。
【００２８】
ＵＳＢデバイス２０にはＮ種類の動作モードが存在し、コンフィグレーション・デスクリプタ２２と称されるメモリ素子がＮ個備えられており、これらのコンフィグレーション・デスクリプタ２２それぞれには、Ｎ種類の動作モードそれぞれにおける動作環境（コンフィグレーション）が記憶されている。コンフィグレーション・デスクリプタ２２の記憶内容の詳細については後述する。
また、ＵＳＢデバイス２０には、上述したＮ種類の動作モードの切替えや、動作モードに応じたコンフィグレーション・デスクリプタ２２の選択等を担う動作制御ブロック２３と、選択されたコンフィグレーション・デスクリプタ２２に記憶されている動作環境に従う電力制御を担う電力制御ブロック２４も備えられている。動作制御ブロック２３は、本発明のにいう電力通知部の一例に相当し、電力制御ブロック２４は、本発明にいう電力制御部の一例に相当する。
【００２９】
図３は、コンフィグレーション・デスクリプタ２２の記憶内容を示す図である。
【００３０】
この図３には、コンフィグレーション・デスクリプタの記憶内容がコンフィグテーブル３００にまとめられて示されており、コンフィグレーション・デスクリプタには、０番から８番までの９つのフィールドが記憶されている。また、このコンフィグテーブル３００には、それら９つのフィールドそれぞれについて、フィールド名３０１、サイズ３０２、フィールドの値３０３、およびフィールドの記憶内容３０４が示されている。これら９つのフィールドのうち８番のフィールド３１０にはＭａｘＰｏｗｅｒというフィールド名が与えられており、該当する動作モードにおける最大の消費電力が記憶されている。
【００３１】
図１に示すＵＳＢ１３には、命令（リクエスト）体系が備えられており、デバイスドライバ１００は、この命令体系を用いてＵＳＢデバイス２０を制御する。
【００３２】
この命令体系では、ＵＳＢデバイスの種類にかかわらず共通に規定された１３個のスタンダード・リクエストと、ＵＳＢデバイスをいくつかのクラスに分類した各クラス内で共通に規定された１個のクラス・リクエストと、ＵＳＢデバイスのメーカが自由に定義することができる１個のベンダー・リクエストが用いられる。
【００３３】
図４は、ＵＳＢに備えられたスタンダード・リクエストを表す図である。
【００３４】
この図４には、ＵＳＢに備えられた１３個のスタンダード・リクエストがリクエストテーブル３２０にまとめられて示されており、このリクエストテーブル３２０には、１３個のスタンダード・リクエストそれぞれについて、リクエストナンバー３２１と、リクエスト名３２２と、リクエストの内容３２３が示されている。
【００３５】
以下の説明では、ここに示す１３個のスタンダード・リクエストのうち、６番のリクエスト３３０と、９番のリクエスト３４０が用いられる。６番のリクエスト３３０は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲというリクエスト名を有しており、コンフィグレーション・デスクリプタに記憶されている内容を取得する命令である。また、９番のリクエスト３４０は、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮというリクエスト名を有しており、コンフィグレーション・デスクリプタを指定することによりＵＳＢデバイスの動作環境（コンフィグレーション）を設定する命令である。
【００３６】
以下、本発明のデバイスドライバの第１実施形態における制御動作手順について説明する。なお、以下の説明では、図１に示す構成要素を適宜に参照する。
【００３７】
図５は、第１実施形態における制御動作手順の前段を示す図であり、図６は、第１実施形態における制御動作手順の後段を示す図である。
【００３８】
デバイスドライバ１００によるＵＳＢデバイス２０の制御は、コンピュータ本体１０の電源がオン状態になったとき、あるいはＵＳＢデバイス２０がＵＳＢ１３に接続（Ｐｌｕｇ  ＩＮ）されたときに開始され、先ず、ＵＳＢデバイス２０からホストコントローラ１１に、バスライン１２を介して所定の信号が通知され（ステップＳ１０１）、その信号を端緒としてＯＳ１４などによって、ＵＳＢデバイス２０を認識するための前処理（ステップＳ１０２）が実行される。
【００３９】
この前処理が終了すると、デバイスドライバ１００が、図４に示すＧＥＴ＿ＤＥＳＣＲＯＰＴＯＲというリクエスト３３０をＵＳＢデバイス２０に投げて（ステップＳ１０３）、このＵＳＢデバイス２０から、ＵＳＢデバイス２０内に備えられたコンフィグレーション・デスクリプタ２２の数と、各コンフィグレーション・デスクリプタ２２に記憶されているＭａｘＰｏｗｅｒ値とを取得する（ステップＳ１０４）。このように取得されたＭａｘＰｏｗｅｒ値は、デバイスドライバ１００によってコンピュータ本体１０内に保管される。
【００４０】
このような前段の手順が終了した後、図６に示す後段の手順は、ＵＳＢデバイス２０の認識後に初めて、ＵＳＢデバイス２０が有する複数の動作モードから１つの動作モードが指定されて開始された場合や、１つの動作モードから別の動作モードに切り替えられた場合に開始される。なお、これらの場合を包括して、以下では単に「動作モードの切替え」と称する。
【００４１】
動作モードの切替えは、以下の２つ要求のうちのいずれかの要求によって発生する。１つは、ＵＳＢデバイス２０からの切替え要求（ステップＳ２０１）であり、もう一つはアプリケーション１５からの切替え要求（ステップＳ２０２）である。
【００４２】
ＵＳＢデバイス２０からの切替え要求は、ＵＳＢデバイス２０内の動作制御ブロック２３から、ＵＳＢ＿Ｉ／Ｆ２１、バスライン１２、ＵＳＢホストコントローラを順に経由して、デバイスドライバ１００に通知される。
【００４３】
また、アプリケーション１５からの切替え要求は、コンピュータ本体１０内のアプリケーション１５から、ＯＳ１４を通じてデバイスドライバ１００に通知される。
【００４４】
これらの要求を受けて、デバイスドライバ１００の残電力知得部１１０（図２参照）は、ホストコントローラ１１からＯＳ１４を介して、供給可能な残りの電力値（許容供給電力値）を知得する（ステップＳ２０３）。その後、デバイスドライバ１００の給電制御部１２０（図２参照）は、図５に示す手順で事前に取得されて保管されたＭａｘＰｏｗｅｒ値のうち、切替え後の動作モードに対応するＭａｘＰｏｗｅｒ値と、残電力知得部１１０によって知得された許容供給電力値とに基づいて、切替え後の動作モードで必要な消費電力が許容供給電力値で賄えるか否かを判定する。即ち、動作モードの切替に伴うＭａｘＰｏｗｅｒ値の増加分が許容供給電力値を越えているか否かを判定する。
【００４５】
ここで、ＭａｘＰｏｗｅｒ値の増加分が許容供給電力値を越えていないと判定された場合（動作モードの切替に伴ってＭａｘＰｏｗｅｒ値が減少する場合を含む）には、デバイスドライバ１００は、図４に示すＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮというリクエスト３４０をＵＳＢデバイス２０に投げて（ステップＳ２０４）、新たな動作モードの動作環境（コンフィグレーション）にＵＳＢデバイス２０を移行させる。動作環境が移行したＵＳＢデバイス２０は、新たな動作環境での消費電力をホストコントローラ１１を介してＯＳ１４に通知し、ＵＳＢ１３から動作電力の供給を受ける。また、デバイスドライバ１００は、ＯＳ１４を介してアプリケーション１５に、動作モードの移行（切替え）が完了したことを通知する（ステップＳ２０５）。
【００４６】
一方、給電制御部１２０によって、ＭａｘＰｏｗｅｒ値の増加分が許容供給電力値を越えていると判定された場合には、動作モードの移行をする／しないを、デバイスドライバ１００がＯＳ１４およびアプリケーション１５を介してユーザに問い合せ（ステップＳ２０６）、Ｙｅｓ（移行する）／Ｎｏ（移行しない）を表す返答通知を受ける（ステップＳ２０７）。このとき、問い合せを受けたユーザは、ＵＳＢ１３に接続されている余分なＵＳＢデバイスを外すことなどによって電力を確保した上でＹｅｓ（移行する）を表す返答通知を返すか、あるいは、新たな動作モードへの切替えをあきらめてＮｏ（移行しない）を表す返答通知を返す。
【００４７】
給電制御部１２０は、Ｎｏ（移行しない）を表す返答通知を受けた場合には、新たな動作モードへの切替えを禁止し、Ｙｅｓ（移行する）を表す返答通知を受けた場合には、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮというリクエスト３４０をＵＳＢデバイス２０に投げて（ステップＳ２０８）、新たな動作モードの動作環境（コンフィグレーション）にＵＳＢデバイス２０を移行させる。そして、上記同様に、ＵＳＢデバイス２０は消費電力の通知を行って電力の供給を受け、デバイスドライバ１００は、ＯＳ１４を介してアプリケーション１５に、動作モードの移行（切替え）が完了したことを通知する（ステップＳ２０９）。
【００４８】
このような第１実施形態によれば、デバイスが強制使用中止（ｄｉｓａｂｌｅ）の状態に陥る前に、動作モードの移行をする／しないの問い合せがユーザに提示されるので、ユーザが適宜に対処することにより強制使用中止（ｄｉｓａｂｌｅ）の状態を容易に回避することができる。
【００４９】
次に、本発明のデバイスドライバの第２実施形態について説明する。
【００５０】
この第２実施形態は、図１に示すＮ個のコンフィグレーション・デスクリプタ２２のうち、例えば第Ｎ番目のコンフィグレーション・デスクリプタが、ＭａｘＰｏｗｅｒ値が書き換え可能なものであるという点を除いて、図１に示すコンピュータシステム１と同等なコンピュータシステムを前提とする。また、この第２実施形態は、図２に示す構成と同様の構成を有している。
【００５１】
以下では、図１〜図４を、第２実施形態に関する図として流用して説明する。
【００５２】
図７は、第２実施形態における制御動作手順を示す図である。
【００５３】
第２実施形態でも、デバイスドライバ１００によるＵＳＢデバイス２０の制御は、コンピュータ本体１０の電源がオン状態になったとき、あるいはＵＳＢデバイス２０がＵＳＢ１３に接続（Ｐｌｕｇ  ＩＮ）されたときに開始され、先ず、ＵＳＢデバイス２０からホストコントローラ１１に、バスライン１２を介して所定の信号が通知され（ステップＳ３０１）、その信号を端緒としてＯＳ１４などによって、ＵＳＢデバイス２０を認識するための前処理（ステップＳ３０２）が実行される。
【００５４】
この前処理が終了すると、第２実施形態では、デバイスドライバ１００の残電力知得部１１０（図２参照）によって、ＯＳ１４から許容供給電力値が取得され、その許容供給電力値が、デバイスドライバ１００の給電制御部１２０（図２参照）によって、ＯＳ１４、ホストコントローラ１１、バスライン１２、ＵＳＢ＿Ｉ／Ｆ２１を順次に経由して、第Ｎ番目のコンフィグレーション・デスクリプタ２２へと伝達されて、その第Ｎ番目のコンフィグレーション・デスクリプタにＭａｘＰｏｗｅｒ値として設定される（ステップＳ３０４）。このようなＭａｘＰｏｗｅｒ値の設定は、例えば、上述したベンダー・リクエストを定義することによって実現することができる。
【００５５】
その後、デバイスドライバ１００の給電制御部１２０は、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮリクエストを用いて、ＵＳＢデバイス２０の動作環境を、第Ｎ番目のコンフィグレーション・デスクリプタ２２に記憶されている動作環境に切り替える（ステップＳ３０５）。
【００５６】
ＵＳＢデバイス２０の電力制御ブロック２４は、切り替えられた動作環境に設定されているＭａｘＰｏｗｅｒ値を越えることの無い様に電力制御を行う。例えば、ＵＳＢデバイス２０が、ＵＳＢ１３から充電電力を供給される充電池を備えたものであり、許容供給電力値が通常の充電電力を下回っているといった場合には、電力制御ブロック２４は、設定されているＭａｘＰｏｗｅｒ値（即ち許容供給電力値）内でゆっくりと充電を行うといった電力制御を行うこととなる。
【００５７】
このような第２実施形態によれば、強制使用中止（ｄｉｓａｂｌｅ）の状態が自動的に回避される。
【００５８】
なお、この第２実施形態では、ステップＳ３０４で許容供給電力値に余裕があって、ＵＳＢデバイス２０が消費する最大の消費電力値を上回っている場合には、その最大の消費電力値がＭａｘＰｏｗｅｒ値として設定される。この最大の消費電力値は、デバイスドライバ１００内に予め用意されている値である。
【００５９】
このように最大の消費電力値がＭａｘＰｏｗｅｒ値として設定されることにより、過大な電力の割り当てが回避されるとともに、以後、どの様な動作モードに切り替わっても強制使用中止（ｄｉｓａｂｌｅ）の状態が回避されることとなる。
【００６０】
次に、本発明のデバイスドライバの第３実施形態について説明する。
【００６１】
図８は、第３実施形態が適用されるコンピュータシステムを示す図である。
【００６２】
この図８に示すコンピュータシステム２は、図１に示すＮ個のコンフィグレーション・デスクリプタ２２を有するＵＳＢデバイス２０に替えて、ＭａｘＰｏｗｅｒ値が書き換え可能な１つのコンフィグレーション・デスクリプタ２６を有するＵＳＢデバイス２５を備えている点と、コンピュータ本体１０に第３実施形態のデバイスドライバ１５０が組み込まれている点を除いて、図１に示すコンピュータシステム１と同様である。また、第３実施形態のデバイスドライバ１５０の構成は、図２に示すデバイスドライバ１００構成と同様である。
【００６３】
以下では、図２〜図４を、第３実施形態に関する図として流用して説明する。
【００６４】
図９は、第３実施形態における制御動作手順を示す図である。
【００６５】
第３実施形態でも、デバイスドライバ１５０によるＵＳＢデバイス２０の制御は、コンピュータ本体１０の電源がオン状態になったとき、あるいはＵＳＢデバイス２０がＵＳＢ１３に接続（Ｐｌｕｇ  ＩＮ）されたときに開始され、先ず、ＵＳＢデバイス２０からホストコントローラ１１に、バスライン１２を介して所定の信号が通知され（ステップＳ４０１）、その信号を端緒としてＯＳ１４などによって、ＵＳＢデバイス２０を認識するための前処理（ステップＳ４０２）が実行される。
【００６６】
この前処理が終了すると、第３実施形態でも第２実施形態と同様に、デバイスドライバ１５０の残電力知得部１１０（図２参照）によって、ＯＳ１４から許容供給電力値が取得され、デバイスドライバ１５０の給電制御部１２０（図２参照）によって、ＯＳ１４、ホストコントローラ１１、バスライン１２、ＵＳＢ＿Ｉ／Ｆ２１を介して、コンフィグレーション・デスクリプタ２６のＭａｘＰｏｗｅｒ値が、第２実施形態のステップＳ３０４における設定値と同様の値に設定される（ステップＳ４０３）。
【００６７】
その後、第３実施形態では、デバイスドライバ１５０から、ＯＳ１４およびホストコントローラ１１を経由してＵＳＢのバス・リセットが発せられて（ステップＳ４０４）、上記同様の前処理（ステップＳ４０５）が実行され、ＵＳＢデバイス２５が再度認識される。その後、デバイスドライバ１５０の給電制御部１２０が、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮリクエストを用いて、ＵＳＢデバイス２５の動作環境を、コンフィグレーション・デスクリプタ２６に記憶されている動作環境に設定する（ステップＳ４０６）。
【００６８】
このような第３実施形態によれば、第２実施形態における給電制御と同等な給電制御を、１つのコンフィグレーション・デスクリプタ２６だけで実現することができ、ＵＳＢデバイス２５のコストを抑えることができる。
【００６９】
なお、第３実施形態におけるステップＳ４０３〜ステップＳ４０６の手順で、上記第１実施形態におけるステップＳ２０４やステップＳ２０８を置き換えるといった応用によって、第１実施形態における給電制御と同等な給電制御を１つのコンフィグレーション・デスクリプタ２６だけで実現することもできる。
【００７０】
以下、本発明の種々の形態を付記する。
【００７１】
（付記１）  複数デバイスの接続と、接続されたデバイスに対する電力供給とが可能なバスに接続され、該バスに消費電力を通知して電力供給を受ける受給型デバイスを制御するデバイスドライバであって、
前記バスに接続された受給型デバイスによる消費電力の通知に先立って、該バスが供給することができる残電力を知得する残電力知得部と、
前記残電力知得部によって知得された残電力が、前記受給型デバイスによって通知される予定の消費電力を賄うのに十分であるか否かに応じて、該受給型デバイスによる該消費電力の通知を許可して前記バスによる電力供給を開始させ、あるいは電力不足を回避するための回避処理を実行する給電制御部とを備えたことを特徴とするデバイスドライバ。
【００７２】
（付記２）  前記給電制御部が、前記回避処理として、前記受給型デバイスによる消費電力の通知に先立って所定の表示装置に警告文を表示させ、所定の開始操作を待って、該消費電力の通知を許可して前記バスによる電力供給を開始させるものであることを特徴とする付記１記載のデバイスドライバ。
【００７３】
（付記３）  前記給電制御部が、前記回避処理として、前記受給型デバイスから前記バスに前記残電力で賄える消費電力を通知させるとともに、該受給型デバイスをその通知させた消費電力内で動作させるものであることを特徴とする付記１記載のデバイスドライバ。
【００７４】
（付記４）  前記残電力知得部は、前記受給型デバイスが前記バスに接続された際に残電力を知得するものであることを特徴とする付記１記載のデバイスドライバ。
【００７５】
（付記５）  前記受給型デバイスが、互いに消費電力が異なる複数の動作モードを有し、動作モードの変更に伴って新たに消費電力を前記バスに通知するものであり、
前記残電力知得部は、前記受給型デバイスの動作モードが変更される際に残電力を知得するものであることを特徴とする付記１記載のデバイスドライバ。
【００７６】
（付記６）  前記受給型デバイスが、互いに消費電力が異なる複数の動作モードを有するものであり、
前記給電制御部は、前記残電力知得部によって知得された残電力が、前記複数の動作モードそれぞれの消費電力のうち最大の消費電力を賄うのに十分である場合に、前記受給型デバイスから前記バスにその最大の消費電力を通知させるものであることを特徴とする付記１記載のデバイスドライバ。
【００７７】
（付記７）  前記受給型デバイスが、前記バスに通知する予定の消費電力を複数個記憶するものであり、
前記給電制御部は、前記受給型デバイスに記憶されている複数個の消費電力のうちの１つの消費電力を選択することにより、その選択された消費電力を該受給型デバイスから前記バスへと通知させるものであることを特徴とする付記３または６記載のデバイスドライバ。
【００７８】
（付記８）  前記受給型デバイスが、前記バスに通知する予定の消費電力を書き換え自在に記憶するものであり、
前記給電制御部は、前記受給型デバイスに記憶されている消費電力を書き換えることにより、その書き換えられた消費電力を該受給型デバイスから前記バスへと通知させるものであることを特徴とする付記３または６記載のデバイスドライバ。
【００７９】
（付記９）  バスに接続され、該バスに消費電力を通知して該バスから電力供給を受けるデバイスであって、
前記消費電力が前記バスの供給能力に対して過大である場合に、このデバイスを、該消費電力よりも少ない消費電力で動作する動作状態に移行させる電力制御部と、
前記動作状態に移行した場合に、該動作状態における消費電力を前記バスに通知する電力通知部とを備えたことを特徴とするデバイス。
【００８０】
【発明の効果】
以上説明したように、本発明のデバイスドライバやデバイスによれば、強制使用中止（ｄｉｓａｂｌｅ）の状態が容易に回避され、デバイスが常に動作し続けることが可能となる。
【図面の簡単な説明】
【図１】本発明のデバイスドライバの一実施形態が適用されるコンピュータシステムを示す図である。
【図２】デバイスドライバの構成を示す図である。
【図３】コンフィグレーション・デスクリプタ２２の記憶内容を示す図である。
【図４】ＵＳＢに備えられたスタンダード・リクエストを表す図である。
【図５】第１実施形態における制御動作手順の前段を示す図である。
【図６】第１実施形態における制御動作手順の後段を示す図である。
【図７】第２実施形態における制御動作手順を示す図である。
【図８】第３実施形態が適用されるコンピュータシステムを示す図である。
【図９】第３実施形態における制御動作手順を示す図である。
【符号の説明】
１，２    コンピュータシステム
１０    コンピュータ本体
１１    ホストコントローラ
１２    バスライン
１３    ＵＳＢ
１４    ＯＳ
１５    アプリケーション
２０，２５    ＵＳＢデバイス
２１    ＵＳＢ＿Ｉ／Ｆ
２２，２６    コンフィグレーション・デスクリプタ（メモリ）
２３    動作制御ブロック
２４    電力制御ブロック
１００，１５０    デバイスドライバ
１１０    残電力知得部
１２０    給電制御部
２００    ＣＤ−ＲＯＭ
３００    コンフィグテーブル
３２０    リクエストテーブル
【図１】
0004316838.tif 000002
【図２】
0004316838.tif 000003
【図３】
0004316838.tif 000004
【図４】
0004316838.tif 000005
【図５】
0004316838.tif 000006
【図６】
0004316838.tif 000007
【図７】
0004316838.tif 000008
【図８】
0004316838.tif 000009
【図９】
0004316838.tif 000010