説明

所定のインタフェースに対応し複数の動作モードを有する装置の制御

【課題】消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置において、動作の不具合の発生を抑制する。
【解決手段】装置は、複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、ホストからの情報提供要求に応じてモード情報を返信する情報提供部と、ホストによるモード情報に基づいた指定に従い複数の動作モードの内の1つを有効な動作モードとして設定するモード設定部と、を備える。モード設定部は、ホストとの接続開始時には、最大消費電流値が任意のホストが供給可能な所定の基準電流値以下である第1の動作モードを有効な動作モードとして設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のインタフェースに対応し複数の動作モードを有する装置の制御を行う技術に関する。
【背景技術】
【0002】
USBマウスやUSBメモリといったUSBインタフェースに対応する装置(以下「USBデバイス」とも呼ぶ)が広く普及している。USBデバイスは、USBバスを介して、例えばパーソナルコンピュータといったUSBインタフェースのホスト(以下「USBホスト」とも呼ぶ)から電力供給を受けることができる。USBデバイスは、最大消費電流値を規定したコンフィグレーションディスクリプタを保有しており、エニュメレーションと呼ばれるUSBデバイスとUSBホストとの接続開始処理時におけるUSBホストからの要求に応じてコンフィグレーションディスクリプタを返信することにより、最大消費電流値をUSBホストに通知する。
【0003】
USB規格では、USBホストは、USBデバイスに少なくとも100ミリアンペアの電流を供給可能であることが要求される。この要件を満たす限り、USBホストの供給可能電流値は任意に設定可能であり、例えば100ミリアンペアまでの電流しか供給できないUSBホストや、500ミリアンペアの電流まで供給可能なUSBホストがある。USBデバイスの最大消費電流値がUSBホストの供給可能電流値を超える場合には、USBホストからUSBデバイスへの電力供給が拒否される(例えば特許文献1参照)。
【0004】
他方、USBデバイスの中には、複数の動作モードを有し、動作モードを切り替えつつ動作可能なものがある。各動作モードにおける最大消費電流値は、各動作モードに対応するコンフィグレーションディスクリプタに規定される(例えば特許文献2参照)。
【0005】
【特許文献1】特開2005−278110号公報
【特許文献2】特開2007−72907号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
複数の動作モードを有するUSBデバイスでは、各動作モードでの最大消費電流値とUSBホストの供給可能電流値との関係によっては、動作の不具合が発生するおそれがあった。
【0007】
なお、このような問題は、USBインタフェース対応の装置に限らず、消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置に共通の問題であった。
【0008】
本発明は、上述した従来の課題を解決するためになされたものであり、消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し複数の動作モードを有する装置において、動作の不具合の発生を抑制することを目的とする。
【課題を解決するための手段】
【0009】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0010】
[適用例1]消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置であって、
前記複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、
前記ホストからの情報提供要求に応じて前記モード情報を返信する情報提供部と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の1つを有効な動作モードとして設定するモード設定部であって、前記ホストとの接続開始時には、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第1の前記動作モードを前記有効な動作モードとして設定するモード設定部と、を備える、装置。
【0011】
この装置では、ホストとの接続開始時には、最大消費電流値が任意のホストが供給可能な所定の基準電流値以下である第1の動作モードが有効な動作モードとして設定されるため、ホストとの接続開始時における動作の不具合の発生を抑制することができる。
【0012】
[適用例2]適用例1に記載の装置であって、さらに、
ユーザによる前記有効な動作モードの切り替え指示を受領する操作部を備え、
前記モード設定部は、前記第1の動作モードから最大消費電流値が前記基準電流値より大きい第2の前記動作モードへの前記切り替え指示が受領され、前記ホストによる前記指定があった場合には、前記第2の動作モードを前記有効な動作モードとして設定する、装置。
【0013】
この装置では、第1の動作モードから最大消費電流値が基準電流値より大きい第2の動作モードへの切り替え指示が受領され、かつ、ホストによる指定があった場合に、第2の動作モードが有効な動作モードとして設定されるため、動作モードの切り替えに伴う動作の不具合の発生を抑制することができる。
【0014】
[適用例3]適用例2に記載の装置であって、
前記モード設定部は、前記切り替え指示が受領された場合には、前記インタフェースを前記ホストに前記情報提供要求を発行せしめる状態に設定する、装置。
【0015】
この装置では、動作モードの切り替え指示が受領された場合には、インタフェースがホストに情報提供要求を発行せしめる状態に設定されるため、その後、ホストからの情報提供要求に応じたモード情報の返信や、ホストによるモード情報に基づいた指定に従った有効な動作モードの設定が実行される。そのため、この装置では、動作の不具合の発生を抑制することができる。
【0016】
[適用例4]適用例2または適用例3に記載の装置であって、
前記モード設定部は、前記ホストが前記第2の動作モードの最大消費電流を供給できず前記第2の動作モードを前記有効な動作モードとして指定できない場合には、前記第1の動作モードを前記有効な動作モードとして設定する、装置。
【0017】
この装置では、ホストが第2の動作モードの最大消費電流を供給できず第2の動作モードを有効な動作モードとして指定できない場合には、最大消費電流値が基準電流値以下である第1の動作モードが有効な動作モードとして設定されるため、動作モードの切り替えに伴う動作の不具合の発生を抑制することができる。
【0018】
[適用例5]適用例2ないし適用例4のいずれかに記載の装置であって、
前記第1の動作モードは、ユーザ指示入力機能を提供するモードであり、
前記第2の動作モードは、画像入力機能を提供するモードである、装置。
【0019】
この装置では、ユーザ指示入力機能を提供する動作モードと画像入力機能を提供する動作モードとを有する装置において、動作の不具合の発生を抑制することができる。
【0020】
[適用例6]適用例1ないし適用例5のいずれかに記載の装置であって、
前記インタフェースは、USBインタフェースであり、
前記基準電流値は、100ミリアンペアである、装置。
【0021】
この装置では、USBインタフェースに対応する装置において、動作の不具合の発生を抑制することができる。
【0022】
なお、本発明は、種々の態様で実現することが可能であり、例えば、所定のインタフェース対応の装置、この装置の制御方法、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【発明を実施するための最良の形態】
【0023】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.装置の構成:
A−2.エニュメレーション処理:
A−3.切り替え処理:
B.変形例:
【0024】
A.実施例:
A−1.装置の構成:
図1は、本発明の実施例におけるマウススキャナ100の外観を示す説明図である。また、図2は、マウススキャナ100を含むコンピュータシステム10の機能的構成を示すブロック図である。図2に示すように、コンピュータシステム10は、マウススキャナ100と、パーソナルコンピュータ(以下「PC」とも呼ぶ)200と、を備えている。
【0025】
本実施例のマウススキャナ100は、ユーザ指示入力装置としてのマウス機能と画像読み取り装置(画像入力装置)としてのイメージスキャナ機能とを備え、マウス機能を提供するマウスモードとイメージスキャナ機能を提供するスキャナモードとの間で動作モードを切り替えつつ動作する。なお、マウスモードは本発明における第1の動作モードに相当し、スキャナモードは本発明における第2の動作モードに相当する。
【0026】
本実施例のマウススキャナ100は、USBインタフェースに対応する装置である。マウススキャナ100は、マウス機能を実現するマウス機構120と、イメージスキャナ機能を実現するスキャナ機構130と、ボタンやホイールといった操作部140と、デバイスコントローラ152を含むUSBインタフェース(USB I/F)150と、これら各要素を制御する制御部110と、を有している。また、PC200は、ホストコントローラ212を含むUSBインタフェース(USB I/F)210を有している。マウススキャナ100は、USBインタフェース150に接続されたUSBケーブル160の先端に設けられたプラグ(不図示)がPC200のUSBインタフェース210に設けられたポート(不図示)に挿入されることにより、PC200と接続される。この状態で、PC200はUSBホストとして機能し、マウススキャナ100はUSBデバイスとして機能する。
【0027】
マウススキャナ100のマウス機構120は、マウススキャナ100の位置を検出する位置センサ122を含んでいる。位置センサ122は、所定のタイミングで、マウススキャナ100の位置を示す位置信号を出力する。マウススキャナ100は、マウスモードでの動作中は、制御部110による制御の下、この位置信号やユーザによる操作部140の操作を検知した信号を利用してマウスとして機能する。
【0028】
マウススキャナ100のスキャナ機構130は、イメージセンサとしてのCMOSセンサ132と光源としてのLED134とを含んでおり、マウススキャナ100の底面に設けられたウィンドウ(不図示)に対向する被写体を撮像して画像信号を取得する。マウススキャナ100は、スキャナモードでの動作中は、制御部110による制御の下、この画像信号やユーザによる操作部140の操作を検知した信号、位置センサ122により出力される位置信号を利用してイメージスキャナとして機能する。
【0029】
操作部140は、ユーザによる動作モードの切り替え指示を受領する切り替えスイッチ142を含んでいる。本実施例のマウススキャナ100では、マウスモードでの動作中に切り替えスイッチ142がユーザにより押下されると、マウスモードからスキャナモードへの動作モードの切り替え処理が実行される。反対に、スキャナモードでの動作中に切り替えスイッチ142がユーザにより押下されると、スキャナモードからマウスモードへの動作モードの切り替え処理が実行される。
【0030】
マウススキャナ100のデバイスコントローラ152は、USBホストとしてのPC200からのコマンド(情報提供要求)に対してディスクリプタを返信する情報提供部154と、マウススキャナ100の有する動作モードの内の1つを有効な動作モードとして設定するモード設定部156と、デバイスディスクリプタDDやコンフィグレーションディスクリプタCDといったディスクリプタを格納する記憶部158と、を有している。
【0031】
デバイスディスクリプタDDは、USBデバイスとしてのマウススキャナ100全体についての基本情報を含んでおり、例えばデバイスのクラスコードやベンダID、製品IDの他、マウススキャナ100の有するコンフィグレーション(動作モード)の個数を規定している。また、コンフィグレーションディスクリプタCDは、マウススキャナ100のコンフィグレーション(動作モード)に関する情報を含んでおり、例えば動作モードにおける各最大消費電流値を規定している。
【0032】
図3は、デバイスコントローラ152が有するコンフィグレーションディスクリプタCDの一例を示す説明図である。本実施例では、デバイスコントローラ152の記憶部158には、図3(a)〜(c)に示す3つのコンフィグレーションディスクリプタCDが格納されている。なお、コンフィグレーションディスクリプタCDは、本発明におけるモード情報に相当する。
【0033】
図3(a)に示したコンフィグレーションディスクリプタCDlは、マウスモードに対応するコンフィグレーション1を規定している。このコンフィグレーションディスクリプタCDlでは、オフセット8の最大消費電流値が「32h」となっている。USB規格では、コンフィグレーションディスクリプタCDのオフセット8には最大消費電流値の2分の1を示すよう定められており、「32h」は100ミリアンペアを表す。従って、マウスモード(コンフィグレーション1)での最大消費電流値は100ミリアンペアである。マウスモードでの最大消費電流値は、後述するスキャナモードでの最大消費電流値より小さいため、本明細書では、このコンフィグレーション1を「low power」とも表すものとする。
【0034】
なお、USB規格では、USBホストは、USBデバイスに少なくとも100ミリアンペアの電流を供給可能であることが要求される。本明細書では、この電流値(100ミリアンペア)を基準電流値とも呼ぶ。マウスモードは、最大消費電流値が基準電流値以下の動作モードである。
【0035】
図3(b)に示したコンフィグレーションディスクリプタCDhは、スキャナモードに対応するコンフィグレーション2を規定している。このコンフィグレーションディスクリプタCDhでは、オフセット8の最大消費電流値が「FAh」となっていることから、スキャナモード(コンフィグレーション2)での最大消費電流値は500ミリアンペアである。スキャナモードでの最大消費電流値は、マウスモードでの最大消費電流値より大きいため、本明細書では、このコンフィグレーション2を「high power」とも表すものとする。スキャナモードは、最大消費電流値が基準電流値より大きい動作モードである。
【0036】
図3(c)に示したコンフィグレーションディスクリプタCDaは、代替モードに対応するコンフィグレーション3を規定している。代替モードは、マウスモードでもスキャナモードでもない第3の動作モードである。このコンフィグレーションディスクリプタCDaでは、オフセット8の最大消費電流値が「32h」となっていることから、代替モード(コンフィグレーション3)での最大消費電流値は、マウスモードと同様に100ミリアンペアである。本明細書では、このコンフィグレーション3を「alternate」とも表すものとする。代替モードは、最大消費電流値が基準電流値以下の動作モードである。
【0037】
なお、マウススキャナ100のデバイスコントローラ152の記憶部158(図2)には、デバイスディスクリプタDDやコンフィグレーションディスクリプタCDの他に、各コンフィグレーションを構成するインタフェースについての情報を含むインタフェースディスクリプタや、各インタフェースを構成するエンドポイントについての情報を含むエンドポイントディスクリプタが格納されている。
【0038】
A−2.エニュメレーション処理
図4は、コンピュータシステム10におけるエニュメレーション処理の流れを示すフローチャートである。エニュメレーション処理は、USBデバイスとしてのマウススキャナ100とUSBホストとしてのPC200との接続開始処理であり、具体的には、USBホストがUSBデバイスについて知り、USBホストとUSBデバイスとの間で通信可能となるように情報交換を行う処理である。
【0039】
ステップS110(図4)では、USBホストとしてのPC200が、USBデバイスが検出されたか否かを判定する。PC200のホストコントローラ212(図2)は、USBインタフェース210のポートをポーリングし、ポートへのUSBデバイス(のプラグ)の着脱を監視する。コンピュータシステム10の起動時にマウススキャナ100がPC200に物理的に接続されていた場合や、コンピュータシステム10の起動後にマウススキャナ100がPC200に新たに物理的に接続された場合には、PC200によりUSBデバイスが検出される。
【0040】
USBデバイスが検出されると、PC200のホストコントローラ212は、検出されたUSBデバイス(マウススキャナ100)に対してアドレス設定を要求するコマンドを発行する(ステップS120)。これによりUSBデバイスとしてのマウススキャナ100にユニークなアドレスが割り当てられる。
【0041】
次に、PC200のホストコントローラ212は、割り当てられた新しいアドレスを用いて、マウススキャナ100に対してデバイスディスクリプタDDを要求するコマンドを発行する(ステップS130)。コマンドを受領したマウススキャナ100のデバイスコントローラ152は、情報提供部154にホストコントローラ212に対してデバイスディスクリプタDD(図2)を返信させる(ステップS140)。
【0042】
デバイスディスクリプタDDを受領したPC200のホストコントローラ212は、マウススキャナ100に対して、コンフィグレーションディスクリプタCDを要求するコマンドを発行する(ステップS150)。コマンドを受領したマウススキャナ100のデバイスコントローラ152は、情報提供部154にホストコントローラ212に対してコンフィグレーションディスクリプタCD(図2)を返信させる(ステップS160)。このとき情報提供部154は、マウスモードに対応するコンフィグレーション1がUSBホストによって選択されるように、コンフィグレーションディスクリプタCDを転送する。例えば、マウスモードに対応するコンフィグレーション1のコンフィグレーションディスクリプタCDl(図3(a))が先頭で転送されるものとしてもよいし、マウスモードに対応するコンフィグレーション1を指定する情報が付加されたコンフィグレーションディスクリプタCDが転送されるとしてもよいし、マウスモードに対応するコンフィグレーション1のコンフィグレーションディスクリプタCDlのみが転送されるものとしてもよい。また、このとき、転送されるコンフィグレーションディスクリプタCDに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ212に対して転送される。ステップS130〜S160の処理により、USBデバイスとしてのマウススキャナ100についての情報が、USBホストとしてのPC200に取得される。
【0043】
ステップS170では、PC200が、取得したディスクリプタに基づき、USBデバイスとしてのマウススキャナ100に最適なデバイスドライバを割り当て、ロードする。ステップS180では、PC200のホストコントローラ212が、マウススキャナ100に対して、取得したディスクリプタに基づきマウスモードに対応するコンフィグレーション1(low power)を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する。コマンドを受領したマウススキャナ100のデバイスコントローラ152のモード設定部156(図2)は、コンフィグレーション1(low power)を有効(アクティブ)とすることにより、マウスモードを有効な動作モードとして設定する(ステップS190)。これにより、USBデバイスとしてのマウススキャナ100は、マウスモードでの動作が可能な状態となる。
【0044】
以上説明したように、エニュメレーション処理の際には、最大消費電流値が任意のUSBホストが供給可能な電流値(基準電流値)以下の動作モードであるマウスモードが有効な動作モードとして設定される。そのため、本実施例のマウススキャナ100は、エニュメレーション処理において、USBホストとしてのPC200により電力供給を拒否されることはない。従って、本実施例のマウススキャナ100では、エニュメレーション処理における動作の不具合の発生が抑制される。
【0045】
A−3.切り替え処理:
図5は、マウスモードからスキャナモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。マウスモードでの動作時に、ユーザによる切り替えスイッチ142(図2)の押下(切り替え指示)が検出されると(ステップS210:Yes)、マウススキャナ100のデバイスコントローラ152は、USBバスのデータラインをリセット状態(D+ラインとD−ラインとの両方がlowの状態)に設定する(ステップS220)。このUSBバスのリセット状態は、USBホストにディスクリプタの要求コマンド発行を含む再エニュメレーションを実行せしめる状態である。
【0046】
PC200のホストコントローラ212(図2)は、USBバスの状態を監視している。ホストコントローラ212がUSBバスのリセット状態を検出すると、PC200はデバイスドライバを終了する(ステップS230)。また、ホストコントローラ212は、USBバスがリセットされたため、あらためてUSBデバイスとしてのマウススキャナ100を検出し、再エニュメレーションを実行する(ステップS240)。すなわち、PC200のホストコントローラ212は、USBデバイスとしてのマウススキャナ100に対して、コンフィグレーションディスクリプタCDを要求するコマンドを発行する(ステップS250)。なお、本実施例では、最初のエニュメレーション処理(図4)において設定されたマウススキャナ100のアドレスや転送されたデバイスディスクリプタDDは維持されるものとして説明を行うが、あらためてアドレス設定要求(図4のステップS120)やデバイスディスクリプタ要求(図4のステップS130)が発行された後に、コンフィグレーションディスクリプタ要求が発行されるとしてもよい。
【0047】
コンフィグレーションディスクリプタCDを要求するコマンドを受領したマウススキャナ100のデバイスコントローラ152は、情報提供部154にホストコントローラ212に対してコンフィグレーションディスクリプタCD(図2)を返信させる(ステップS260)。このとき情報提供部154は、スキャナモードに対応するコンフィグレーション2がUSBホストによって選択されるように、コンフィグレーションディスクリプタCDを転送する。例えば、スキャナモードに対応するコンフィグレーション2のコンフィグレーションディスクリプタCDh(図3(b))が先頭で転送されるものとしてもよいし、スキャナモードに対応するコンフィグレーション2を指定する情報が付加されたコンフィグレーションディスクリプタCDが転送されるとしてもよいし、スキャナモードに対応するコンフィグレーション2のコンフィグレーションディスクリプタCDhのみが転送されるものとしてもよい。また、このとき、転送されるコンフィグレーションディスクリプタCDに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ212に対して転送される。
【0048】
ステップS270では、PC200が、取得したディスクリプタに基づき、USBデバイスとしてのマウススキャナ100に最適なデバイスドライバを割り当て、ロードする。ステップS280では、PC200のホストコントローラ212が、USBバスにバスパワーとして最大500ミリアンペアの電流を供給できるか否かを判定する。ステップS280において供給可能と判定された場合には、PC200のホストコントローラ212が、マウススキャナ100に対して、取得したディスクリプタに基づきスキャナモードに対応するコンフィグレーション2(high power)を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する(ステップS290)。コマンドを受領したマウススキャナ100のデバイスコントローラ152のモード設定部156は、コンフィグレーション2(high power)を有効(アクティブ)とすることにより、スキャナモードを有効な動作モードとして設定する(ステップS300)。これにより、USBデバイスとしてのマウススキャナ100の動作モードは、マウスモードからスキャナモードに変更される。
【0049】
一方、ステップS280において供給不可能と判定された場合には、PC200のホストコントローラ212が、マウススキャナ100に対して、代替モードに対応するコンフィグレーション3(alternate)を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する(ステップS320)。コマンドを受領したマウススキャナ100のデバイスコントローラ152のモード設定部156は、コンフィグレーション3(alternate)を有効(アクティブ)に設定する(ステップS330)。これにより、USBデバイスとしてのマウススキャナ100は、マウスモードでもスキャナモードでもない代替モードとなる。
【0050】
続いてPC200のホストコントローラ212は、マウススキャナ100に対して、マウスモードに対応するコンフィグレーション1(low power)を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する(ステップS340)。コマンドを受領したマウススキャナ100のデバイスコントローラ152のモード設定部156は、コンフィグレーション1(low power)を有効(アクティブ)とすることにより、マウスモードを有効な動作モードとして設定する(ステップS350)。これにより、USBデバイスとしてのマウススキャナ100は、スキャナモードへの切り替えは行われず、マウスモードへと戻ることとなる。
【0051】
ステップS360では、PC200が、スキャナモードのように最大消費電流値が500ミリアンペアのハイパワーデバイスはサポートされていない旨を、図示しないディスプレイに表示する。これにより、PC200の下では、マウススキャナ100をスキャナモードで動作させることはできないことをユーザに認識させることができる。
【0052】
図6は、スキャナモードからマウスモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。上述したように、マウススキャナ100のマウスモードでの最大消費電流は100ミリアンペアであるため、マウスモードへの切り替えはUSBホストの供給可能電流に関わらず、実行可能である。
【0053】
スキャナモードでの動作時に、ユーザによる切り替えスイッチ142(図2)の押下(切り替え指示)が検出されると(ステップS410:Yes)、マウススキャナ100のデバイスコントローラ152は、USBバスのデータラインをリセット状態(D+ラインとD−ラインとの両方がlowの状態)にする(ステップS420)。
【0054】
PC200のホストコントローラ212(図2)は、USBバスの状態を監視しており、ホストコントローラ212がUSBバスのリセット状態を検出すると、PC200はデバイスドライバを終了する(ステップS430)。また、ホストコントローラ212は、USBバスがリセットされたため、あらためてUSBデバイスとしてのマウススキャナ100を検出し、再エニュメレーションを実行する(ステップS440)。すなわち、PC200のホストコントローラ212は、USBデバイスとしてのマウススキャナ100に対して、コンフィグレーションディスクリプタCDを要求するコマンドを発行する(ステップS450)。なお、あらためてアドレス設定要求(図4のステップS120)やデバイスディスクリプタ要求(図4のステップS130)が発行された後に、コンフィグレーションディスクリプタ要求が発行されるとしてもよいことは、図5に示した切り替え処理と同様である。
【0055】
コンフィグレーションディスクリプタCDを要求するコマンドを受領したマウススキャナ100のデバイスコントローラ152は、情報提供部154にホストコントローラ212に対してコンフィグレーションディスクリプタCD(図2)を返信させる(ステップS460)。このとき情報提供部154は、マウスモードに対応するコンフィグレーション1がUSBホストによって選択されるように、コンフィグレーションディスクリプタCDを転送する。また、このとき、転送されるコンフィグレーションディスクリプタCDに従属するインタフェースディスクリプタやエンドポイントディスクリプタも同様に、ホストコントローラ212に対して転送される。
【0056】
ステップS470では、PC200が、取得したディスクリプタに基づき、USBデバイスとしてのマウススキャナ100に最適なデバイスドライバを割り当て、ロードする。その後、PC200のホストコントローラ212は、マウススキャナ100に対して、取得したディスクリプタに基づきマウスモードに対応するコンフィグレーション1(low power)を選択・指定し、コンフィグレーションの設定を要求するコマンドを発行する(ステップS480)。コマンドを受領したマウススキャナ100のデバイスコントローラ152のモード設定部156は、コンフィグレーション1(low power)を有効(アクティブ)とすることにより、マウスモードを有効な動作モードとして設定する(ステップS490)。これにより、USBデバイスとしてのマウススキャナ100の動作モードは、スキャナモードからマウスモードに変更される。
【0057】
以上説明したように、マウスモードからスキャナモードへの切り替え(図5)の指示が受領され、PC200がスキャナモードの最大消費電流値(500ミリアンペア)を供給可能であるとしてPC200によるスキャナモードの指定があった場合には、スキャナモードが有効な動作モードとして設定される。一方、マウスモードからスキャナモードへの切り替え(図5)の指示が受領されても、PC200がスキャナモードの最大消費電流値を供給可能でないとしてPC200によるマウスモードの指定があった場合には、マウスモードが有効な動作モードとして設定される。また、スキャナモードからマウスモードへの切り替え(図6)の指示が受領された場合には、PC200はマウスモードの最大消費電流値(100ミリアンペア)を常に供給可能であるため、PC200によるマウスモードの指定に従い、マウスモードが有効な動作モードとして設定される。従って、本実施例のマウススキャナ100では、USBホストとしてのPC200の供給可能電流値に関わらず、動作モードの切り替えに伴う動作の不具合の発生が抑制される。
【0058】
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0059】
B−1.変形例1:
上記実施例では、マウススキャナ100を例に用いて説明したが、本発明はマウススキャナ100に限らず、消費電流値をデバイスからホストへ通知することを要するインタフェースに対応する装置一般に適用可能である。また、本発明は、動作モードの数や、動作モードの種類(マウス機能を提供するマウスモードやイメージスキャナ機能を提供するスキャナモード)に限らず、任意の機能を提供する複数の動作モードを有する装置に適用可能である。例えば、本発明は、マウスモードやスキャナモードに加えて、あるいはそれらの代わりに、Webカメラ機能を提供するカメラモードや、オーディオ機能を提供するオーディオモードなどを有する装置にも適用可能である。
【0060】
B−2.変形例2:
上記実施例では、エニュメレーション処理において、マウスモードが有効な動作モードとして設定されているが、エニュメレーション処理において有効な動作モードとして設定される動作モードは、最大消費電流値がUSBホストの基準電流値(100ミリアンペア)以下の動作モードであれば、他の動作モードであってもよい。例えば、マウススキャナ100が、マウスモードとスキャナモードの他に、最大消費電流値が32ミリアンペアである第3の動作モードを有している場合には、エニュメレーション処理において第3の動作モードが有効な動作モードとして設定されるとしてもよいし、この場合であってもマウスモードが有効な動作モードとして設定されるとしてもよい。
【0061】
B−3.変形例3:
上記実施例におけるコンピュータシステム10の構成はあくまで一例であり、コンピュータシステム10の構成は種々変更可能である。例えば、例えば、スキャナ機構130がCMOSセンサ132以外のイメージセンサやLED134以外の光源を含むとしてもよい。また、デバイスディスクリプタDDやコンフィグレーションディスクリプタCDの内容もあくまで一例であり、これらの内容は種々変更可能である。
【0062】
B−4.変形例4:
上記実施例におけるエニュメレーション処理(図4)や切り替え処理(図5および図6)の処理内容はあくまで一例であり、これらの処理内容は種々変更可能である。例えば、エニュメレーション処理において、ポートの状態を検出する処理やデバイスのデータ転送スピードを検出する処理が行われるとしてもよい。
【0063】
B−5.変形例5:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0064】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【0065】
【図1】本発明の実施例におけるマウススキャナ100の外観を示す説明図である。
【図2】マウススキャナ100を含むコンピュータシステム10の機能的構成を示すブロック図である。
【図3】デバイスコントローラ152が有するコンフィグレーションディスクリプタCDの一例を示す説明図である。
【図4】コンピュータシステム10におけるエニュメレーション処理の流れを示すフローチャートである。
【図5】マウスモードからスキャナモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。
【図6】スキャナモードからマウスモードへと動作モードを切り替える切り替え処理の流れを示すフローチャートである。
【符号の説明】
【0066】
10…コンピュータシステム
100…マウススキャナ
110…制御部
120…マウス機構
122…位置センサ
130…スキャナ機構
132…CMOSセンサ
134…LED
140…操作部
142…切り替えスイッチ
150…USBインタフェース
152…デバイスコントローラ
154…情報提供部
156…モード設定部
158…記憶部
160…USBケーブル
200…PC
210…USBインタフェース
212…ホストコントローラ

【特許請求の範囲】
【請求項1】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置であって、
前記複数の動作モードのそれぞれにおける最大消費電流値を示す複数のモード情報を記憶する記憶部と、
前記ホストからの情報提供要求に応じて前記モード情報を返信する情報提供部と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の1つを有効な動作モードとして設定するモード設定部であって、前記ホストとの接続開始時には、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第1の前記動作モードを前記有効な動作モードとして設定するモード設定部と、を備える、装置。
【請求項2】
請求項1に記載の装置であって、さらに、
ユーザによる前記有効な動作モードの切り替え指示を受領する操作部を備え、
前記モード設定部は、前記第1の動作モードから最大消費電流値が前記基準電流値より大きい第2の前記動作モードへの前記切り替え指示が受領され、前記ホストによる前記指定があった場合には、前記第2の動作モードを前記有効な動作モードとして設定する、装置。
【請求項3】
請求項2に記載の装置であって、
前記モード設定部は、前記切り替え指示が受領された場合には、前記インタフェースを前記ホストに前記情報提供要求を発行せしめる状態に設定する、装置。
【請求項4】
請求項2または請求項3に記載の装置であって、
前記モード設定部は、前記ホストが前記第2の動作モードの最大消費電流を供給できず前記第2の動作モードを前記有効な動作モードとして指定できない場合には、前記第1の動作モードを前記有効な動作モードとして設定する、装置。
【請求項5】
請求項2ないし請求項4のいずれかに記載の装置であって、
前記第1の動作モードは、ユーザ指示入力機能を提供するモードであり、
前記第2の動作モードは、画像入力機能を提供するモードである、装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の装置であって、
前記インタフェースは、USBインタフェースであり、
前記基準電流値は、100ミリアンペアである、装置。
【請求項7】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置を制御する方法であって、
(a)前記ホストからの情報提供要求に応じて、前記動作モードにおける最大消費電流値を示すモード情報を返信する工程と、
(b)前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の1つを有効な動作モードとして設定する工程であって、前記ホストとの接続開始時に、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第1の前記動作モードを前記有効な動作モードとして設定する工程と、を備える、方法。
【請求項8】
消費電流値をデバイスからホストへ通知することを要する所定のインタフェースに対応し、複数の動作モードを有する装置を制御するプログラムであって、
前記ホストからの情報提供要求に応じて、前記動作モードにおける最大消費電流値を示すモード情報を返信する機能と、
前記ホストによる前記モード情報に基づいた指定に従い前記複数の動作モードの内の1つを有効な動作モードとして設定する機能であって、前記ホストとの接続開始時に、最大消費電流値が任意の前記ホストが供給可能な所定の基準電流値以下である第1の前記動作モードを前記有効な動作モードとして設定する機能と、をコンピュータに実現させる、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−152531(P2010−152531A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−328346(P2008−328346)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】