(57)【要約】【課題】消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置において、動作の不具合の発生を抑制する。【解決手段】装置は、複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、ホストからの情報提供要求に応じてモード情報を返信する情報提供部と、ホストによるモード情報に基づいた指定に従い複数の動作モードの内の１つを有効な動作モードとして設定するモード設定部と、を備える。モード設定部は、ホストとの接続開始時には、最大消費電流値が任意のホストが供給可能な所定の基準電流値以下である第１の動作モードを有効な動作モードとして設定する。【選択図】図４
2010152531.tif 000002
【特許請求の範囲】
【請求項１】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置であって、
前記複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、
前記ホストからの情報提供要求に応じて前記モード情報を返信する情報提供部と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の１つを有効な動作モードとして設定するモード設定部であって、前記ホストとの接続開始時には、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第１の前記動作モードを前記有効な動作モードとして設定するモード設定部と、を備える、装置。
【請求項２】
請求項１に記載の装置であって、さらに、
ユーザによる前記有効な動作モードの切り替え指示を受領する操作部を備え、
前記モード設定部は、前記第１の動作モードから最大消費電流値が前記基準電流値より大きい第２の前記動作モードへの前記切り替え指示が受領され、前記ホストによる前記指定があった場合には、前記第２の動作モードを前記有効な動作モードとして設定する、装置。
【請求項３】
請求項２に記載の装置であって、
前記モード設定部は、前記切り替え指示が受領された場合には、前記インタフェースを前記ホストに前記情報提供要求を発行せしめる状態に設定する、装置。
【請求項４】
請求項２または請求項３に記載の装置であって、
前記モード設定部は、前記ホストが前記第２の動作モードの最大消費電流を供給できず前記第２の動作モードを前記有効な動作モードとして指定できない場合には、前記第１の動作モードを前記有効な動作モードとして設定する、装置。
【請求項５】
請求項２ないし請求項４のいずれかに記載の装置であって、
前記第１の動作モードは、ユーザ指示入力機能を提供するモードであり、
前記第２の動作モードは、画像入力機能を提供するモードである、装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の装置であって、
前記インタフェースは、ＵＳＢインタフェースであり、
前記基準電流値は、１００ミリアンペアである、装置。
【請求項７】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置を制御する方法であって、
（ａ）前記ホストからの情報提供要求に応じて、前記動作モードにおける最大消費電流値を示すモード情報を返信する工程と、
（ｂ）前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の１つを有効な動作モードとして設定する工程であって、前記ホストとの接続開始時に、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第１の前記動作モードを前記有効な動作モードとして設定する工程と、を備える、方法。
【請求項８】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置を制御するプログラムであって、
前記ホストからの情報提供要求に応じて、前記動作モードにおける最大消費電流値を示すモード情報を返信する機能と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の１つを有効な動作モードとして設定する機能であって、前記ホストとの接続開始時に、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第１の前記動作モードを前記有効な動作モードとして設定する機能と、をコンピュータに実現させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のインタフェースに対応し複数の動作モードを有する装置の制御を行う技術に関する。
【背景技術】
【０００２】
ＵＳＢマウスやＵＳＢメモリといったＵＳＢインタフェースに対応する装置（以下「ＵＳＢデバイス」とも呼ぶ）が広く普及している。ＵＳＢデバイスは、ＵＳＢバスを介して、例えばパーソナルコンピュータといったＵＳＢインタフェースのホスト（以下「ＵＳＢホスト」とも呼ぶ）から電力供給を受けることができる。ＵＳＢデバイスは、最大消費電流値を規定したコンフィグレーションディスクリプタを保有しており、エニュメレーションと呼ばれるＵＳＢデバイスとＵＳＢホストとの接続開始処理時におけるＵＳＢホストからの要求に応じてコンフィグレーションディスクリプタを返信することにより、最大消費電流値をＵＳＢホストに通知する。
【０００３】
ＵＳＢ規格では、ＵＳＢホストは、ＵＳＢデバイスに少なくとも１００ミリアンペアの電流を供給可能であることが要求される。この要件を満たす限り、ＵＳＢホストの供給可能電流値は任意に設定可能であり、例えば１００ミリアンペアまでの電流しか供給できないＵＳＢホストや、５００ミリアンペアの電流まで供給可能なＵＳＢホストがある。ＵＳＢデバイスの最大消費電流値がＵＳＢホストの供給可能電流値を超える場合には、ＵＳＢホストからＵＳＢデバイスへの電力供給が拒否される（例えば特許文献１参照）。
【０００４】
他方、ＵＳＢデバイスの中には、複数の動作モードを有し、動作モードを切り替えつつ動作可能なものがある。各動作モードにおける最大消費電流値は、各動作モードに対応するコンフィグレーションディスクリプタに規定される（例えば特許文献２参照）。
【０００５】
【特許文献１】特開２００５−２７８１１０号公報
【特許文献２】特開２００７−７２９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
複数の動作モードを有するＵＳＢデバイスでは、各動作モードでの最大消費電流値とＵＳＢホストの供給可能電流値との関係によっては、動作の不具合が発生するおそれがあった。
【０００７】
なお、このような問題は、ＵＳＢインタフェース対応の装置に限らず、消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置に共通の問題であった。
【０００８】
本発明は、上述した従来の課題を解決するためになされたものであり、消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置において、動作の不具合の発生を抑制することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【００１０】
［適用例１］消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置であって、
前記複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、
前記ホストからの情報提供要求に応じて前記モード情報を返信する情報提供部と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の１つを有効な動作モードとして設定するモード設定部であって、前記ホストとの接続開始時には、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第１の前記動作モードを前記有効な動作モードとして設定するモード設定部と、を備える、装置。
【００１１】
この装置では、ホストとの接続開始時には、最大消費電流値が任意のホストが供給可能な所定の基準電流値以下である第１の動作モードが有効な動作モードとして設定されるため、ホストとの接続開始時における動作の不具合の発生を抑制することができる。
【００１２】
［適用例２］適用例１に記載の装置であって、さらに、
ユーザによる前記有効な動作モードの切り替え指示を受領する操作部を備え、
前記モード設定部は、前記第１の動作モードから最大消費電流値が前記基準電流値より大きい第２の前記動作モードへの前記切り替え指示が受領され、前記ホストによる前記指定があった場合には、前記第２の動作モードを前記有効な動作モードとして設定する、装置。
【００１３】
この装置では、第１の動作モードから最大消費電流値が基準電流値より大きい第２の動作モードへの切り替え指示が受領され、かつ、ホストによる指定があった場合に、第２の動作モードが有効な動作モードとして設定されるため、動作モードの切り替えに伴う動作の不具合の発生を抑制することができる。
【００１４】
［適用例３］適用例２に記載の装置であって、
前記モード設定部は、前記切り替え指示が受領された場合には、前記インタフェースを前記ホストに前記情報提供要求を発行せしめる状態に設定する、装置。
【００１５】
この装置では、動作モードの切り替え指示が受領された場合には、インタフェースがホストに情報提供要求を発行せしめる状態に設定されるため、その後、ホストからの情報提供要求に応じたモード情報の返信や、ホストによるモード情報に基づいた指定に従った有効な動作モードの設定が実行される。そのため、この装置では、動作の不具合の発生を抑制することができる。
【００１６】
［適用例４］適用例２または適用例３に記載の装置であって、
前記モード設定部は、前記ホストが前記第２の動作モードの最大消費電流を供給できず前記第２の動作モードを前記有効な動作モードとして指定できない場合には、前記第１の動作モードを前記有効な動作モードとして設定する、装置。
【００１７】
この装置では、ホストが第２の動作モードの最大消費電流を供給できず第２の動作モードを有効な動作モードとして指定できない場合には、最大消費電流値が基準電流値以下である第１の動作モードが有効な動作モードとして設定されるため、動作モードの切り替えに伴う動作の不具合の発生を抑制することができる。
【００１８】
［適用例５］適用例２ないし適用例４のいずれかに記載の装置であって、
前記第１の動作モードは、ユーザ指示入力機能を提供するモードであり、
前記第２の動作モードは、画像入力機能を提供するモードである、装置。
【００１９】
この装置では、ユーザ指示入力機能を提供する動作モードと画像入力機能を提供する動作モードとを有する装置において、動作の不具合の発生を抑制することができる。
【００２０】
［適用例６］適用例１ないし適用例５のいずれかに記載の装置であって、
前記インタフェースは、ＵＳＢインタフェースであり、
前記基準電流値は、１００ミリアンペアである、装置。
【００２１】
この装置では、ＵＳＢインタフェースに対応する装置において、動作の不具合の発生を抑制することができる。
【００２２】
なお、本発明は、種々の態様で実現することが可能であり、例えば、所定のインタフェース対応の装置、この装置の制御方法、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２３】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ａ−１．装置の構成：
Ａ−２．エニュメレーション処理：
Ａ−３．切り替え処理：
Ｂ．変形例：
【００２４】
Ａ．実施例：
Ａ−１．装置の構成：
図１は、本発明の実施例におけるマウススキャナ１００の外観を示す説明図である。また、図２は、マウススキャナ１００を含むコンピュータシステム１０の機能的構成を示すブロック図である。図２に示すように、コンピュータシステム１０は、マウススキャナ１００と、パーソナルコンピュータ（以下「ＰＣ」とも呼ぶ）２００と、を備えている。
【００２５】
本実施例のマウススキャナ１００は、ユーザ指示入力装置としてのマウス機能と画像読み取り装置（画像入力装置）としてのイメージスキャナ機能とを備え、マウス機能を提供するマウスモードとイメージスキャナ機能を提供するスキャナモードとの間で動作モードを切り替えつつ動作する。なお、マウスモードは本発明における第１の動作モードに相当し、スキャナモードは本発明における第２の動作モードに相当する。
【００２６】
本実施例のマウススキャナ１００は、ＵＳＢインタフェースに対応する装置である。マウススキャナ１００は、マウス機能を実現するマウス機構１２０と、イメージスキャナ機能を実現するスキャナ機構１３０と、ボタンやホイールといった操作部１４０と、デバイスコントローラ１５２を含むＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）１５０と、これら各要素を制御する制御部１１０と、を有している。また、ＰＣ２００は、ホストコントローラ２１２を含むＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）２１０を有している。マウススキャナ１００は、ＵＳＢインタフェース１５０に接続されたＵＳＢケーブル１６０の先端に設けられたプラグ（不図示）がＰＣ２００のＵＳＢインタフェース２１０に設けられたポート（不図示）に挿入されることにより、ＰＣ２００と接続される。この状態で、ＰＣ２００はＵＳＢホストとして機能し、マウススキャナ１００はＵＳＢデバイスとして機能する。
【００２７】
マウススキャナ１００のマウス機構１２０は、マウススキャナ１００の位置を検出する位置センサ１２２を含んでいる。位置センサ１２２は、所定のタイミングで、マウススキャナ１００の位置を示す位置信号を出力する。マウススキャナ１００は、マウスモードでの動作中は、制御部１１０による制御の下、この位置信号やユーザによる操作部１４０の操作を検知した信号を利用してマウスとして機能する。
【００２８】
マウススキャナ１００のスキャナ機構１３０は、イメージセンサとしてのＣＭＯＳセンサ１３２と光源としてのＬＥＤ１３４とを含んでおり、マウススキャナ１００の底面に設けられたウィンドウ（不図示）に対向する被写体を撮像して画像信号を取得する。マウススキャナ１００は、スキャナモードでの動作中は、制御部１１０による制御の下、この画像信号やユーザによる操作部１４０の操作を検知した信号、位置センサ１２２により出力される位置信号を利用してイメージスキャナとして機能する。
【００２９】
操作部１４０は、ユーザによる動作モードの切り替え指示を受領する切り替えスイッチ１４２を含んでいる。本実施例のマウススキャナ１００では、マウスモードでの動作中に切り替えスイッチ１４２がユーザにより押下されると、マウスモードからスキャナモードへの動作モードの切り替え処理が実行される。反対に、スキャナモードでの動作中に切り替えスイッチ１４２がユーザにより押下されると、スキャナモードからマウスモードへの動作モードの切り替え処理が実行される。
【００３０】
マウススキャナ１００のデバイスコントローラ１５２は、ＵＳＢホストとしてのＰＣ２００からのコマンド（情報提供要求）に対してディスクリプタを返信する情報提供部１５４と、マウススキャナ１００の有する動作モードの内の１つを有効な動作モードとして設定するモード設定部１５６と、デバイスディスクリプタＤＤやコンフィグレーションディスクリプタＣＤといったディスクリプタを格納する記憶部１５８と、を有している。
【００３１】
デバイスディスクリプタＤＤは、ＵＳＢデバイスとしてのマウススキャナ１００全体についての基本情報を含んでおり、例えばデバイスのクラスコードやベンダＩＤ、製品ＩＤの他、マウススキャナ１００の有するコンフィグレーション（動作モード）の個数を規定している。また、コンフィグレーションディスクリプタＣＤは、マウススキャナ１００のコンフィグレーション（動作モード）に関する情報を含んでおり、例えば動作モードにおける各最大消費電流値を規定している。
【００３２】
図３は、デバイスコントローラ１５２が有するコンフィグレーションディスクリプタＣＤの一例を示す説明図である。本実施例では、デバイスコントローラ１５２の記憶部１５８には、図３（ａ）〜（ｃ）に示す３つのコンフィグレーションディスクリプタＣＤが格納されている。なお、コンフィグレーションディスクリプタＣＤは、本発明におけるモード情報に相当する。
【００３３】
図３（ａ）に示したコンフィグレーションディスクリプタＣＤｌは、マウスモードに対応するコンフィグレーション１を規定している。このコンフィグレーションディスクリプタＣＤｌでは、オフセット８の最大消費電流値が「３２ｈ」となっている。ＵＳＢ規格では、コンフィグレーションディスクリプタＣＤのオフセット８には最大消費電流値の２分の１を示すよう定められており、「３２ｈ」は１００ミリアンペアを表す。従って、マウスモード（コンフィグレーション１）での最大消費電流値は１００ミリアンペアである。マウスモードでの最大消費電流値は、後述するスキャナモードでの最大消費電流値より小さいため、本明細書では、このコンフィグレーション１を「ｌｏｗ  ｐｏｗｅｒ」とも表すものとする。
【００３４】
なお、ＵＳＢ規格では、ＵＳＢホストは、ＵＳＢデバイスに少なくとも１００ミリアンペアの電流を供給可能であることが要求される。本明細書では、この電流値（１００ミリアンペア）を基準電流値とも呼ぶ。マウスモードは、最大消費電流値が基準電流値以下の動作モードである。
【００３５】
図３（ｂ）に示したコンフィグレーションディスクリプタＣＤｈは、スキャナモードに対応するコンフィグレーション２を規定している。このコンフィグレーションディスクリプタＣＤｈでは、オフセット８の最大消費電流値が「ＦＡｈ」となっていることから、スキャナモード（コンフィグレーション２）での最大消費電流値は５００ミリアンペアである。スキャナモードでの最大消費電流値は、マウスモードでの最大消費電流値より大きいため、本明細書では、このコンフィグレーション２を「ｈｉｇｈ  ｐｏｗｅｒ」とも表すものとする。スキャナモードは、最大消費電流値が基準電流値より大きい動作モードである。
【００３６】
図３（ｃ）に示したコンフィグレーションディスクリプタＣＤａは、代替モードに対応するコンフィグレーション３を規定している。代替モードは、マウスモードでもスキャナモードでもない第３の動作モードである。このコンフィグレーションディスクリプタＣＤａでは、オフセット８の最大消費電流値が「３２ｈ」となっていることから、代替モード（コンフィグレーション３）での最大消費電流値は、マウスモードと同様に１００ミリアンペアである。本明細書では、このコンフィグレーション３を「ａｌｔｅｒｎａｔｅ」とも表すものとする。代替モードは、最大消費電流値が基準電流値以下の動作モードである。
【００３７】
なお、マウススキャナ１００のデバイスコントローラ１５２の記憶部１５８（図２）には、デバイスディスクリプタＤＤやコンフィグレーションディスクリプタＣＤの他に、各コンフィグレーションを構成するインタフェースについての情報を含むインタフェースディスクリプタや、各インタフェースを構成するエンドポイントについての情報を含むエンドポイントディスクリプタが格納されている。
【００３８】
Ａ−２．エニュメレーション処理
図４は、コンピュータシステム１０におけるエニュメレーション処理の流れを示すフローチャートである。エニュメレーション処理は、ＵＳＢデバイスとしてのマウススキャナ１００とＵＳＢホストとしてのＰＣ２００との接続開始処理であり、具体的には、ＵＳＢホストがＵＳＢデバイスについて知り、ＵＳＢホストとＵＳＢデバイスとの間で通信可能となるように情報交換を行う処理である。
【００３９】
ステップＳ１１０（図４）では、ＵＳＢホストとしてのＰＣ２００が、ＵＳＢデバイスが検出されたか否かを判定する。ＰＣ２００のホストコントローラ２１２（図２）は、ＵＳＢインタフェース２１０のポートをポーリングし、ポートへのＵＳＢデバイス（のプラグ）の着脱を監視する。コンピュータシステム１０の起動時にマウススキャナ１００がＰＣ２００に物理的に接続されていた場合や、コンピュータシステム１０の起動後にマウススキャナ１００がＰＣ２００に新たに物理的に接続された場合には、ＰＣ２００によりＵＳＢデバイスが検出される。
【００４０】
ＵＳＢデバイスが検出されると、ＰＣ２００のホストコントローラ２１２は、検出されたＵＳＢデバイス（マウススキャナ１００）に対してアドレス設定を要求するコマンドを発行する（ステップＳ１２０）。これによりＵＳＢデバイスとしてのマウススキャナ１００にユニークなアドレスが割り当てられる。
【００４１】
次に、ＰＣ２００のホストコントローラ２１２は、割り当てられた新しいアドレスを用いて、マウススキャナ１００に対してデバイスディスクリプタＤＤを要求するコマンドを発行する（ステップＳ１３０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２は、情報提供部１５４にホストコントローラ２１２に対してデバイスディスクリプタＤＤ（図２）を返信させる（ステップＳ１４０）。
【００４２】
デバイスディスクリプタＤＤを受領したＰＣ２００のホストコントローラ２１２は、マウススキャナ１００に対して、コンフィグレーションディスクリプタＣＤを要求するコマンドを発行する（ステップＳ１５０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２は、情報提供部１５４にホストコントローラ２１２に対してコンフィグレーションディスクリプタＣＤ（図２）を返信させる（ステップＳ１６０）。このとき情報提供部１５４は、マウスモードに対応するコンフィグレーション１がＵＳＢホストによって選択されるように、コンフィグレーションディスクリプタＣＤを転送する。例えば、マウスモードに対応するコンフィグレーション１のコンフィグレーションディスクリプタＣＤｌ（図３（ａ））が先頭で転送されるものとしてもよいし、マウスモードに対応するコンフィグレーション１を指定する情報が付加されたコンフィグレーションディスクリプタＣＤが転送されるとしてもよいし、マウスモードに対応するコンフィグレーション１のコンフィグレーションディスクリプタＣＤｌのみが転送されるものとしてもよい。また、このとき、転送されるコンフィグレーションディスクリプタＣＤに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ２１２に対して転送される。ステップＳ１３０〜Ｓ１６０の処理により、ＵＳＢデバイスとしてのマウススキャナ１００についての情報が、ＵＳＢホストとしてのＰＣ２００に取得される。
【００４３】
ステップＳ１７０では、ＰＣ２００が、取得したディスクリプタに基づき、ＵＳＢデバイスとしてのマウススキャナ１００に最適なデバイスドライバを割り当て、ロードする。ステップＳ１８０では、ＰＣ２００のホストコントローラ２１２が、マウススキャナ１００に対して、取得したディスクリプタに基づきマウスモードに対応するコンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２のモード設定部１５６（図２）は、コンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を有効（アクティブ）とすることにより、マウスモードを有効な動作モードとして設定する（ステップＳ１９０）。これにより、ＵＳＢデバイスとしてのマウススキャナ１００は、マウスモードでの動作が可能な状態となる。
【００４４】
以上説明したように、エニュメレーション処理の際には、最大消費電流値が任意のＵＳＢホストが供給可能な電流値（基準電流値）以下の動作モードであるマウスモードが有効な動作モードとして設定される。そのため、本実施例のマウススキャナ１００は、エニュメレーション処理において、ＵＳＢホストとしてのＰＣ２００により電力供給を拒否されることはない。従って、本実施例のマウススキャナ１００では、エニュメレーション処理における動作の不具合の発生が抑制される。
【００４５】
Ａ−３．切り替え処理：
図５は、マウスモードからスキャナモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。マウスモードでの動作時に、ユーザによる切り替えスイッチ１４２（図２）の押下（切り替え指示）が検出されると（ステップＳ２１０：Ｙｅｓ）、マウススキャナ１００のデバイスコントローラ１５２は、ＵＳＢバスのデータラインをリセット状態（Ｄ＋ラインとＤ−ラインとの両方がｌｏｗの状態）に設定する（ステップＳ２２０）。このＵＳＢバスのリセット状態は、ＵＳＢホストにディスクリプタの要求コマンド発行を含む再エニュメレーションを実行せしめる状態である。
【００４６】
ＰＣ２００のホストコントローラ２１２（図２）は、ＵＳＢバスの状態を監視している。ホストコントローラ２１２がＵＳＢバスのリセット状態を検出すると、ＰＣ２００はデバイスドライバを終了する（ステップＳ２３０）。また、ホストコントローラ２１２は、ＵＳＢバスがリセットされたため、あらためてＵＳＢデバイスとしてのマウススキャナ１００を検出し、再エニュメレーションを実行する（ステップＳ２４０）。すなわち、ＰＣ２００のホストコントローラ２１２は、ＵＳＢデバイスとしてのマウススキャナ１００に対して、コンフィグレーションディスクリプタＣＤを要求するコマンドを発行する（ステップＳ２５０）。なお、本実施例では、最初のエニュメレーション処理（図４）において設定されたマウススキャナ１００のアドレスや転送されたデバイスディスクリプタＤＤは維持されるものとして説明を行うが、あらためてアドレス設定要求（図４のステップＳ１２０）やデバイスディスクリプタ要求（図４のステップＳ１３０）が発行された後に、コンフィグレーションディスクリプタ要求が発行されるとしてもよい。
【００４７】
コンフィグレーションディスクリプタＣＤを要求するコマンドを受領したマウススキャナ１００のデバイスコントローラ１５２は、情報提供部１５４にホストコントローラ２１２に対してコンフィグレーションディスクリプタＣＤ（図２）を返信させる（ステップＳ２６０）。このとき情報提供部１５４は、スキャナモードに対応するコンフィグレーション２がＵＳＢホストによって選択されるように、コンフィグレーションディスクリプタＣＤを転送する。例えば、スキャナモードに対応するコンフィグレーション２のコンフィグレーションディスクリプタＣＤｈ（図３（ｂ））が先頭で転送されるものとしてもよいし、スキャナモードに対応するコンフィグレーション２を指定する情報が付加されたコンフィグレーションディスクリプタＣＤが転送されるとしてもよいし、スキャナモードに対応するコンフィグレーション２のコンフィグレーションディスクリプタＣＤｈのみが転送されるものとしてもよい。また、このとき、転送されるコンフィグレーションディスクリプタＣＤに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ２１２に対して転送される。
【００４８】
ステップＳ２７０では、ＰＣ２００が、取得したディスクリプタに基づき、ＵＳＢデバイスとしてのマウススキャナ１００に最適なデバイスドライバを割り当て、ロードする。ステップＳ２８０では、ＰＣ２００のホストコントローラ２１２が、ＵＳＢバスにバスパワーとして最大５００ミリアンペアの電流を供給できるか否かを判定する。ステップＳ２８０において供給可能と判定された場合には、ＰＣ２００のホストコントローラ２１２が、マウススキャナ１００に対して、取得したディスクリプタに基づきスキャナモードに対応するコンフィグレーション２（ｈｉｇｈ  ｐｏｗｅｒ）を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する（ステップＳ２９０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２のモード設定部１５６は、コンフィグレーション２（ｈｉｇｈ  ｐｏｗｅｒ）を有効（アクティブ）とすることにより、スキャナモードを有効な動作モードとして設定する（ステップＳ３００）。これにより、ＵＳＢデバイスとしてのマウススキャナ１００の動作モードは、マウスモードからスキャナモードに変更される。
【００４９】
一方、ステップＳ２８０において供給不可能と判定された場合には、ＰＣ２００のホストコントローラ２１２が、マウススキャナ１００に対して、代替モードに対応するコンフィグレーション３（ａｌｔｅｒｎａｔｅ）を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する（ステップＳ３２０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２のモード設定部１５６は、コンフィグレーション３（ａｌｔｅｒｎａｔｅ）を有効（アクティブ）に設定する（ステップＳ３３０）。これにより、ＵＳＢデバイスとしてのマウススキャナ１００は、マウスモードでもスキャナモードでもない代替モードとなる。
【００５０】
続いてＰＣ２００のホストコントローラ２１２は、マウススキャナ１００に対して、マウスモードに対応するコンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する（ステップＳ３４０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２のモード設定部１５６は、コンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を有効（アクティブ）とすることにより、マウスモードを有効な動作モードとして設定する（ステップＳ３５０）。これにより、ＵＳＢデバイスとしてのマウススキャナ１００は、スキャナモードへの切り替えは行われず、マウスモードへと戻ることとなる。
【００５１】
ステップＳ３６０では、ＰＣ２００が、スキャナモードのように最大消費電流値が５００ミリアンペアのハイパワーデバイスはサポートされていない旨を、図示しないディスプレイに表示する。これにより、ＰＣ２００の下では、マウススキャナ１００をスキャナモードで動作させることはできないことをユーザに認識させることができる。
【００５２】
図６は、スキャナモードからマウスモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。上述したように、マウススキャナ１００のマウスモードでの最大消費電流は１００ミリアンペアであるため、マウスモードへの切り替えはＵＳＢホストの供給可能電流に関わらず、実行可能である。
【００５３】
スキャナモードでの動作時に、ユーザによる切り替えスイッチ１４２（図２）の押下（切り替え指示）が検出されると（ステップＳ４１０：Ｙｅｓ）、マウススキャナ１００のデバイスコントローラ１５２は、ＵＳＢバスのデータラインをリセット状態（Ｄ＋ラインとＤ−ラインとの両方がｌｏｗの状態）にする（ステップＳ４２０）。
【００５４】
ＰＣ２００のホストコントローラ２１２（図２）は、ＵＳＢバスの状態を監視しており、ホストコントローラ２１２がＵＳＢバスのリセット状態を検出すると、ＰＣ２００はデバイスドライバを終了する（ステップＳ４３０）。また、ホストコントローラ２１２は、ＵＳＢバスがリセットされたため、あらためてＵＳＢデバイスとしてのマウススキャナ１００を検出し、再エニュメレーションを実行する（ステップＳ４４０）。すなわち、ＰＣ２００のホストコントローラ２１２は、ＵＳＢデバイスとしてのマウススキャナ１００に対して、コンフィグレーションディスクリプタＣＤを要求するコマンドを発行する（ステップＳ４５０）。なお、あらためてアドレス設定要求（図４のステップＳ１２０）やデバイスディスクリプタ要求（図４のステップＳ１３０）が発行された後に、コンフィグレーションディスクリプタ要求が発行されるとしてもよいことは、図５に示した切り替え処理と同様である。
【００５５】
コンフィグレーションディスクリプタＣＤを要求するコマンドを受領したマウススキャナ１００のデバイスコントローラ１５２は、情報提供部１５４にホストコントローラ２１２に対してコンフィグレーションディスクリプタＣＤ（図２）を返信させる（ステップＳ４６０）。このとき情報提供部１５４は、マウスモードに対応するコンフィグレーション１がＵＳＢホストによって選択されるように、コンフィグレーションディスクリプタＣＤを転送する。また、このとき、転送されるコンフィグレーションディスクリプタＣＤに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ２１２に対して転送される。
【００５６】
ステップＳ４７０では、ＰＣ２００が、取得したディスクリプタに基づき、ＵＳＢデバイスとしてのマウススキャナ１００に最適なデバイスドライバを割り当て、ロードする。その後、ＰＣ２００のホストコントローラ２１２は、マウススキャナ１００に対して、取得したディスクリプタに基づきマウスモードに対応するコンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する（ステップＳ４８０）。コマンドを受領したマウススキャナ１００のデバイスコントローラ１５２のモード設定部１５６は、コンフィグレーション１（ｌｏｗ  ｐｏｗｅｒ）を有効（アクティブ）とすることにより、マウスモードを有効な動作モードとして設定する（ステップＳ４９０）。これにより、ＵＳＢデバイスとしてのマウススキャナ１００の動作モードは、スキャナモードからマウスモードに変更される。
【００５７】
以上説明したように、マウスモードからスキャナモードへの切り替え（図５）の指示が受領され、ＰＣ２００がスキャナモードの最大消費電流値（５００ミリアンペア）を供給可能であるとしてＰＣ２００によるスキャナモードの指定があった場合には、スキャナモードが有効な動作モードとして設定される。一方、マウスモードからスキャナモードへの切り替え（図５）の指示が受領されても、ＰＣ２００がスキャナモードの最大消費電流値を供給可能でないとしてＰＣ２００によるマウスモードの指定があった場合には、マウスモードが有効な動作モードとして設定される。また、スキャナモードからマウスモードへの切り替え（図６）の指示が受領された場合には、ＰＣ２００はマウスモードの最大消費電流値（１００ミリアンペア）を常に供給可能であるため、ＰＣ２００によるマウスモードの指定に従い、マウスモードが有効な動作モードとして設定される。従って、本実施例のマウススキャナ１００では、ＵＳＢホストとしてのＰＣ２００の供給可能電流値に関わらず、動作モードの切り替えに伴う動作の不具合の発生が抑制される。
【００５８】
Ｂ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００５９】
Ｂ−１．変形例１：
上記実施例では、マウススキャナ１００を例に用いて説明したが、本発明はマウススキャナ１００に限らず、消費電流値をデバイスからホストへ通知することを要するインタフェースに対応する装置一般に適用可能である。また、本発明は、動作モードの数や、動作モードの種類（マウス機能を提供するマウスモードやイメージスキャナ機能を提供するスキャナモード）に限らず、任意の機能を提供する複数の動作モードを有する装置に適用可能である。例えば、本発明は、マウスモードやスキャナモードに加えて、あるいはそれらの代わりに、Ｗｅｂカメラ機能を提供するカメラモードや、オーディオ機能を提供するオーディオモードなどを有する装置にも適用可能である。
【００６０】
Ｂ−２．変形例２：
上記実施例では、エニュメレーション処理において、マウスモードが有効な動作モードとして設定されているが、エニュメレーション処理において有効な動作モードとして設定される動作モードは、最大消費電流値がＵＳＢホストの基準電流値（１００ミリアンペア）以下の動作モードであれば、他の動作モードであってもよい。例えば、マウススキャナ１００が、マウスモードとスキャナモードの他に、最大消費電流値が３２ミリアンペアである第３の動作モードを有している場合には、エニュメレーション処理において第３の動作モードが有効な動作モードとして設定されるとしてもよいし、この場合であってもマウスモードが有効な動作モードとして設定されるとしてもよい。
【００６１】
Ｂ−３．変形例３：
上記実施例におけるコンピュータシステム１０の構成はあくまで一例であり、コンピュータシステム１０の構成は種々変更可能である。例えば、例えば、スキャナ機構１３０がＣＭＯＳセンサ１３２以外のイメージセンサやＬＥＤ１３４以外の光源を含むとしてもよい。また、デバイスディスクリプタＤＤやコンフィグレーションディスクリプタＣＤの内容もあくまで一例であり、これらの内容は種々変更可能である。
【００６２】
Ｂ−４．変形例４：
上記実施例におけるエニュメレーション処理（図４）や切り替え処理（図５および図６）の処理内容はあくまで一例であり、これらの処理内容は種々変更可能である。例えば、エニュメレーション処理において、ポートの状態を検出する処理やデバイスのデータ転送スピードを検出する処理が行われるとしてもよい。
【００６３】
Ｂ−５．変形例５：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【００６４】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータプログラム）は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施例におけるマウススキャナ１００の外観を示す説明図である。
【図２】マウススキャナ１００を含むコンピュータシステム１０の機能的構成を示すブロック図である。
【図３】デバイスコントローラ１５２が有するコンフィグレーションディスクリプタＣＤの一例を示す説明図である。
【図４】コンピュータシステム１０におけるエニュメレーション処理の流れを示すフローチャートである。
【図５】マウスモードからスキャナモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。
【図６】スキャナモードからマウスモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。
【符号の説明】
【００６６】
１０…コンピュータシステム
１００…マウススキャナ
１１０…制御部
１２０…マウス機構
１２２…位置センサ
１３０…スキャナ機構
１３２…ＣＭＯＳセンサ
１３４…ＬＥＤ
１４０…操作部
１４２…切り替えスイッチ
１５０…ＵＳＢインタフェース
１５２…デバイスコントローラ
１５４…情報提供部
１５６…モード設定部
１５８…記憶部
１６０…ＵＳＢケーブル
２００…ＰＣ
２１０…ＵＳＢインタフェース
２１２…ホストコントローラ
【図１】
2010152531.tif 000003
【図２】
2010152531.tif 000004
【図３】
2010152531.tif 000005
【図４】
2010152531.tif 000006
【図５】
2010152531.tif 000007
【図６】
2010152531.tif 000008