説明

USBホスト、その制御方法、コンピュータプログラム、USBハブ及びUSBデバイス

【課題】能力が制限されたUSBデバイスを簡単な仕組みによりアップグレードすることができる。
【解決手段】パソコン10は、USBハブ30とそのUSBハブ30に接続されたスキャナ50から、USB規格に準拠してハブ識別情報及びデバイス識別情報を取得する。そして、取得したハブ識別情報とデバイス識別情報との組合せが予めHDD18に記憶された組合せと一致する場合には、スキャナ50にアップグレードコマンドを送信する。このように、USBハブ30やスキャナ50は従来通りUSB規格に準拠して通信するだけでよい。また、HDD18に記憶されているハブ識別情報とデバイス識別情報の組合せは、上流ポート32及び下流ポート34を1つずつ持つUSBハブ30を識別するハブ識別情報を含んでいるため、複数の下流ポートを持つUSBハブはアップグレードの対象とならない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USBホスト、その制御方法、コンピュータプログラム、USBハブ及びUSBデバイスに関する。
【背景技術】
【0002】
従来より、USBデバイスと通信を行うUSBホストに関し、種々の工夫をこらしたものが提案されている。例えば、特許文献1では、USBホストとして機能するカラーレーザプリンタにつき、そのUSBポートにUSBデバイスであるUSBメモリが装着されたとき、そのUSBメモリが印刷の実行を許可するUSBキーか否かを判定し、USBキーであるときには印刷の実行を許可するが、USBキーでないときには印刷の実行を禁止するものが提案されている。
【特許文献1】特開2007−98850号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、ある種のパソコン周辺機器では、同じ装置構成を有していながら、高価な上位機種と安価な下位機種に分けて販売されることがある。この場合、上位機種には、その装置構成によって発揮できる能力に制限をかけていないのに対し、下位機種には、その能力に制限をかけてある。例えば、所定サイズの原稿を読み取るスキャン速度が60枚/分の能力を持つ装置構成のスキャナがあるとすると、上位機種ではその能力に制限をかけず60枚/分でスキャンできるのに対し、下位機種ではその能力に制限をかけて30枚/分でしかスキャンできないようにすることがある。ここで、下位機種を購入したユーザがスキャン速度に不満を感じて上位機種を購入することがあるが、その場合には実質的に同じ装置構成のスキャナを2台購入することになってしまうため、ユーザにとって好ましくない。この点を考慮して、下位機種を上位機種にアップグレードすることでユーザのスキャン速度に関する不満を解消することが好ましい。このように下位機種のスキャナを上位機種にアップブレードする一案として、特許文献1のようにUSBキーを利用することが考えられる。具体的には、スキャナをUSBホストとし、そのUSBポートにUSBデバイスであるUSBメモリが装着されたとき、そのUSBがアップブレードを許可するUSBキーか否かを判定し、USBキーであるときには能力制限を解除することが考えられる。
【0004】
しかしながら、この場合、スキャナをUSBホストとして機能するように装置構成を構築する必要がある。通常の使用形態を考えると、パソコンがUSBホスト、スキャナがUSBデバイスとなるため、スキャナをUSBホストとしても機能するように装置構成を構築するのは面倒である。
【0005】
本発明は、上述した課題に鑑みなされたものであり、能力が制限されたUSBデバイスを簡単な仕組みによりアップグレードすることができるUSBホスト、その制御方法及びコンピュータプログラムを提供することを目的の一つとする。また、こうしたUSBホストに接続して利用可能なUSBハブやUSBデバイスを提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明は、上述の目的を達成するために以下の手段を採った。
【0007】
本発明のUSBホストは、
USBハブを介してUSBデバイスを接続可能なUSBホストであって、
USBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せのうちUSBデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段と、
USBハブが接続されたとき、USB規格に準拠して該USBハブからハブ識別情報を取得し、該USBハブにUSBデバイスが接続されていたとき、前記USB規格に準拠して該USBデバイスからデバイス識別情報を取得する識別情報取得手段と、
前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記USBデバイスにアップグレードコマンドを送信するコマンド送信手段と、
を備えたものである。
【0008】
このUSBホストでは、USBハブが接続されたとき、USB規格に準拠して該USBハブからハブ識別情報を取得し、該USBハブにUSBデバイスが接続されていたとき、USB規格に準拠して該USBデバイスからデバイス識別情報を取得する。そして、取得したハブ識別情報とデバイス識別情報との組合せが予め組合せ記憶手段に記憶された組合せと一致する場合には、USBハブを介して接続されているUSBデバイスにアップグレードコマンドを送信する。このように、USBホストに接続されるUSBハブやUSBデバイスは従来通りUSB規格に準拠して通信するだけでよいため、簡単な仕組みでUSBデバイスをアップグレードすることができる。
【0009】
なお、コマンド送信手段がUSBデバイスにアップグレードコマンドを送信するタイミングは特に限定されないが、例えば、処理実行コマンドを送信するときに一緒にアップグレードコマンドを送信してもよいし、USBデバイスに処理実行コマンドを送信する前にアップグレードコマンドを送信してもよい。
【0010】
本発明のUSBホストにおいて、前記組合せ記憶手段は、上流ポート及び下流ポートをそれぞれ1つずつ持つUSBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せを前記アップグレードを許可する組合せとして記憶していてもよい。こうすれば、複数の下流ポートを持つUSBハブに接続されたUSBデバイスはアップグレードの対象とならない。このため、一つのUSBハブに複数のUSBデバイスが接続されそのすべてのUSBデバイスがアップグレードされてしまうというリスクが発生することがない。
【0011】
本発明のUSBホストにおいて、前記USBデバイスは、前記アップグレードコマンドを受信していないときには自己の持つ本来の能力を制限した状態で作動し、前記アップグレードコマンドを受信したときには自己の持つ能力の制限を解除した状態で作動するものとしてもよい。こうすれば、本来の能力を制限した状態で作動するUSBデバイスを購入したユーザは、その能力の制限を解除した状態で作動するUSBデバイスを利用したい場合、別途そのUSBデバイスを購入することなく、予め記憶手段に記憶されているハブ識別情報とデバイス識別情報の組合せを考慮してUSBハブを購入するだけでよいため、ユーザの費用負担が軽くなる。
【0012】
本発明のUSBホストにおいて、前記組合せ記憶手段は、前記アップグレードを許可する組合せをアップグレードさせる段階数と対応づけて記憶する手段であり、前記コマンド送信手段は、前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、該組合せに対応づけられた段階数を前記USBデバイスが認識可能なアップブレードコマンドを送信する手段であるとしてもよい。こうすれば、結果的にUSBハブのハブ識別情報に応じてUSBデバイスの能力を段階的にアップすることができる。
【0013】
本発明のUSBホストにおいて、前記ハブ識別情報は、前記USBハブのベンダーID及びプロダクトIDであり、前記デバイス識別情報は、前記USBデバイスのベンダーID及びプロダクトIDであるとしてもよい。こうすれば、ベンダーID及びプロダクトIDはUSB規格に準拠してUSBホストが受け取るディスクリプタに含まれるものであるから、ハブ識別情報やデバイス識別情報として利用するのにふさわしい。
【0014】
本発明のUSBホストの制御方法は、
USBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せのうちUSBデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段を備え、USBハブを介してUSBデバイスを接続可能なUSBホストの制御方法であって、
(a)USBハブが接続されたとき、USB規格に準拠して該USBハブからハブ識別情報を取得するステップと、
(b)該USBハブにUSBデバイスが接続されていたとき、前記USB規格に準拠して該USBデバイスからデバイス識別情報を取得するステップと、
(c)前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記USBデバイスにアップグレードコマンドを送信するステップと、
を含むものである。
【0015】
このUSBホストの制御方法では、USBホストに接続されるUSBハブやUSBデバイスは従来通りUSB規格に準拠して通信するだけでよいため、簡単な仕組みでUSBデバイスをアップグレードすることができる。なお、本発明のUSBホストの制御方法において、上述したいずれかのUSBホストの機能を実現するようなステップを追加してもよい。
【0016】
本発明のコンピュータプログラムは、上述したUSBホストの制御方法の各ステップを1又は複数のコンピュータに実行させるためのプログラムである。このプログラムは、コンピュータが読み取り可能な記録媒体(例えばハードディスク、ROM、FD、CD、DVDなど)に記録されていてもよいし、伝送媒体(インターネットやLANなどの通信網)を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピュータに実行させるか又は複数のコンピュータに各ステップを分担して実行させれば、本発明のUSBホストの制御方法と同様の効果を得ることができる。
【0017】
本発明のUSBハブは、
上述したいずれかのUSBホストに利用されるUSBハブであって、
前記アップグレードを許可する組合せに含まれるハブ識別情報を記憶するハブ識別情報記憶手段と、
前記USB規格に準拠して前記USBホストからのハブ識別情報の取得要求を受信したとき前記ハブ識別情報記憶手段に記憶されたハブ識別情報を前記USBホストへ送信するハブ識別情報送信手段と、
を備えたものである。
【0018】
このUSBハブでは、上述したUSBホストの組合せ記憶手段に記憶されている組合せに含まれるハブ識別情報を記憶している。このため、このUSBハブに接続されたUSBデバイスのデバイス識別情報次第で、USBホストがUSBデバイスにアップグレードコマンドを送信するか否かが決定される。したがって、このUSBハブは、上述したUSBホストの効果を得るために必要不可欠なものとなる。こうしたUSBハブは、上流ポート及び下流ポートをそれぞれ1つずつ持つものとしてもよい。
【0019】
本発明のUSBデバイスは、
上述したいずれかのUSBホストと接続して使用されるUSBデバイスであって、
前記アップグレードを許可する組合せに含まれるデバイス識別情報を記憶するデバイス識別情報記憶手段と、
前記USB規格に準拠して前記USBホストからのデバイス識別情報の取得要求を受信したとき前記デバイス識別情報記憶手段に記憶されたデバイス識別情報を前記USBホストへ送信するデバイス識別情報送信手段と、
前記USBホストから前記アップグレードコマンドを受信したときに自己の能力をアップする能力アップ実行手段と、
を備えたものである。
【0020】
このUSBデバイスでは、上述したUSBホストの組合せ記憶手段に記憶されている組合せに含まれるデバイス識別情報を記憶している。このため、このUSBデバイスに接続されたUSBハブのハブ識別情報次第で、USBホストがUSBデバイスにアップグレードコマンドを送信するか否かが決定される。また、USBホストからアップグレードコマンドを受信したときに自己の能力をアップさせる。したがって、このUSBデバイスは、上述したUSBホストの効果を得るために必要不可欠なものとなる。
【発明を実施するための最良の形態】
【0021】
次に、本発明の実施の形態を図面に基づいて説明する。図1は、本実施形態のシステム構成の概略を示す説明図である。このシステムは、USBホストとしてのパーソナルコンピュータ(以下「パソコン」という)10と、上流ポート32及び下流ポート34をそれぞれ1つずつ持つUSBハブ30と、USBデバイスとしてのスキャナ50とから構成される。
【0022】
パソコン10は、シリーズAコネクタであるUSBポート11にUSBハブ30を介してスキャナ50が接続されている。このパソコン10は、CPU12を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データなどを記憶したROM14と、一時的にデータを記憶するRAM16と、大容量のHDD18と、USBデバイス(ここではUSBハブ30やスキャナ50)との間で通信を行うUSBホストコントローラ20とを備え、これらはバス22を介して互いに信号のやり取りが可能なように接続されている。このうち、HDD18は、スキャナ50に対して指令を出力したりスキャナ50から動作のステータスを入力したりするスキャナドライバ18aと、接続されたUSBデバイスとの間でUSB2.0に準拠した通信を行ったりスキャナドライバ18aを動的にRAM16の作業領域にロードしたりするUSBシステムソフトウェア18bとを備えている。また、パソコン10は、スキャナドライバ18aに基づくドライバ画面をディスプレイ24に表示出力したり、ドライバ画面を見ながらキーボード26やマウス28を操作するユーザからの指示(スキャナ処理実行コマンドなど)を入力したりする。
【0023】
ここで、スキャナドライバ18aには、USBポート11に接続されたUSBハブ30のハブ識別情報であるベンダーID及びプロダクトIDと、スキャナ50のデバイス識別情報であるベンダーID及びプロダクトIDとの組合せのうち、スキャナ50の能力をアップさせるアップグレードを許可する組合せがテーブルとして記憶されている。このテーブルの一例を表1に示す。本実施形態では、USBハブ30のベンダーIDは「AAAA」、プロダクトIDは「BBBB」、スキャナ50のベンダーIDは「AAAA」、プロダクトIDは「XXXX」とする。また、アップグレードを許可する組合せにおけるハブ識別情報は、いずれも上流ポート及び下流ポートをそれぞれ1つずつ持つUSBハブのハブ識別情報となっている。
【表1】

【0024】
USBハブ30は、上流ポート32がUSBホスト(ここではパソコン10)に接続され、下流ポート34がUSBデバイス(ここではスキャナ50)に接続され、ハブ制御部36により各種の処理を行うように構成されている。上流ポート32は、USBホストに対する入出力データのバッファ機能やUSB2.0規格に準拠したトランシーバ機能等を備えている。下流ポート34は、USBデバイスに対する入出力データのバッファ機能やUSB2.0規格に準拠したトランシーバ機能等を備えている。ハブ制御部36は、上流ポート32と下流ポート34との間のデータ転送処理やバス速度の検出処理、トランザクション分割等のUSB2.0規格に準拠した処理を行う回路である。このUSBハブ30は、USBホストからはUSBデバイスとみなされるものであり、USBホストからデバイスディスクリプタやコンフィグレーションディスクリプタ等の取得要求を入力したとき、その応答をUSBホストへ出力する。ここで、デバイスディスクリプタは、機器を識別するための情報であり、機器を提供するベンダーを特定するベンダーIDや製品を特定するプロダクトIDなどを含む。USBハブ30は、こうしたデバイスディスクリプタをハブ制御部36のメモリ38に保存している。
【0025】
スキャナ50は、シリーズBコネクタであるUSBポート80にUSBハブ30を介してパソコン10が接続されている。このスキャナ50は、スキャナ50の全体の制御を司るスキャナ制御部51と、このスキャナ制御部51によって制御されるスキャナ機構62とを備えている。スキャナ制御部51は、CPU52を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データ(スキャナ50のデバイスディスクリプタを含む)などを記憶したROM54と、一時的にデータを記憶するRAM56と、USBホストとの間で通信を行うUSBデバイスコントローラ58とを備え、これらはバス60を介して互いに信号のやり取りが可能なように接続されている。また、スキャナ50は、USBホストからデバイスディスクリプタやコンフィグレーションディスクリプタ等の取得要求を入力したとき、USBデバイスコントローラ58がそれに応じた応答をUSBホストへ出力する。一方、スキャナ機構62は、図示しないスタッカに積み重ねられた原稿D(例えば小切手など)を1枚ずつガラス板64とカバー66との隙間に送り込むオートシートフィーダ68と、このガラス板64の下方のキャリッジ70に搭載され原稿Dに向かって光を照射する光源72と、同じくキャリッジ70に搭載され原稿Dで反射した光をミラー74及び集光レンズ76を介して受けることにより画像を読み取るイメージセンサ78とを備えている。光源72は、主走査方向(原稿Dの送り方向と直交する方向)に並んだ複数の白色LEDからの光が線状にガラス板64へ照射されるように構成されている。イメージセンサ78は、複数の撮像素子が主走査方向に配設され、ミラー74及び集光レンズ76を介して受けた光を電荷に変換してアナログ信号を出力する。このアナログ信号は図示しないA/D変換回路によりデジタル信号に変換されたあとスキャナデータとしてRAM56の作業領域に記憶される。なお、イメージセンサ78としては、CCDイメージセンサを採用してもよいし、CMOS型のイメージセンサを採用してもよい。また、光源72として白色LEDを例示したが、例えば赤色LED、緑色LED、青色LEDや水銀ランプなどにより白色光を照射するものとしてもよい。
【0026】
こうしたスキャナ50は、小切手サイズの原稿を60枚/分のスキャン速度で読み取る能力を持つように構成されているが、通常はこの能力に制限がかけられており、30枚/分のスキャン速度で原稿を読み取るようになっている。なお、このスキャナ50の上位機種として、装置構成は同じだが能力の制限が掛けられていないスキャナがこのスキャナ50よりも高い価格で販売されているものとする。
【0027】
次に、こうして構成された本実施形態のシステムの動作について説明する。まず、パソコン10のUSBホストコントローラ20によって実行されるUSBデバイス認識ルーチンについて説明し、そのあとにパソコン10のCPU12によって実行されるアップグレード処理ルーチンについて説明し、最後にスキャナ50の動作について説明する。
【0028】
図2は、USBデバイス認識ルーチンのフローチャートである。このルーチンは、USBホストコントローラ20によって所定タイミングごと(例えば数secごと)にUSBシステムソフトウェア18bを利用して繰り返し実行される。このルーチンが開始されると、USBホストコントローラ20は、まず、USBポート11にUSBデバイスが接続されたか否かを判定する(ステップS110)。USBデバイスが接続されたか否かは、例えばUSBポート11のVBUS状態によって判定することができる。USBデバイスが接続されていないときには、そのままこのルーチンを終了する。一方、USBデバイスが接続されていたときには、そのUSBデバイスとUSB規格に準拠した通信を実行する(ステップS120)。この通信は、USBポート11に接続されているUSBデバイスへのディスクリプタ(デバイスディスクリプタやコンフィグレーションディスクリプタ等)の取得要求の送信と、それに対するディスクリプタの受信と、受信したディスクリプタのRAM16への保存とを含む。ディスクリプタには、接続されているUSBデバイスのベンダーIDとプロダクトIDとが含まれるため、これらがRAM16に保存される。続いて、通信の結果得られたコンフィグレーションディスクリプタに基づいて、USBポート11に接続されているUSBデバイスがUSBハブか否かを判定し(ステップS130)、USBハブだったときには更にそのUSBハブにUSBデバイスが接続されているか否かを判定する(ステップS140)。ここでは、USBポート11にUSBハブ30が接続され、そのUSBハブ30にスキャナ50が接続されているから、ステップS130,S140は共に肯定判定される。続いて、USBハブに接続されているUSBデバイスとUSB規格に準拠した通信を実行する(ステップS150)。この通信は、USBハブに接続されているUSBデバイスへのディスクリプタの取得要求の送信と、それに対するディスクリプタの受信と、受信したディスクリプタのRAM16への保存とを含む。ディスクリプタには、接続されているUSBデバイスのベンダーIDとプロダクトIDとが含まれるため、これらのIDがRAM16に保存される。そして、ステップS150のあと又はステップS130及びステップS140のいずれかで否定判定されたときには、このルーチンを終了する。なお、ステップS140で否定判定されたあと、USBハブにUSBデバイスが装着されたときには、このルーチンのステップS150以降の処理を実行するものとする。
【0029】
次に、パソコン10のCPU12によって実行されるアップグレード処理ルーチンについて説明する。図3は、アップグレード処理ルーチンのフローチャートである。このルーチンは、上述したUSBデバイス認識ルーチンにおいてRAM16の識別情報が新たに保存された場合に実行される。このルーチンが開始されると、CPU12は、まず、USBポート11にUSBハブが接続され、そのUSBハブに更にUSBデバイスが接続されているか否かを判定し(ステップS200)、否定判定されたときにはこのルーチンを終了する。一方、肯定判定されたときには、ハブ識別情報としてUSBハブのベンダーID及びプロダクトIDを読み出すと共にデバイス識別情報としてUSBハブに接続されているUSBデバイスのベンダーID及びプロダクトIDをRAM16から読み出す(ステップS210)。そして、読み出したハブ識別情報とデバイス識別情報との組合せが、USBハブに接続されているUSBデバイスの能力をアップさせるアップグレードを許可する組合せと一致するか否かを判定し(ステップS220)、ハブ識別情報とデバイス識別情報との組合せがアップグレードを許可する組合せと一致しなかったときには、このルーチンを終了する。ここでは、USBポート11にUSBハブ30が接続され、そのUSBハブ30にスキャナ50が接続されているから、ステップS220ではハブ識別情報とスキャナ識別情報との組合せが表1のテーブルにあるか否かを判定することになる。そして、上述したように、USBハブ30のハブ識別情報とスキャナ50のデバイス識別情報の組合せは表1のテーブルに存在しているからステップS220で肯定判定される。ステップS220で肯定判定されると、アップグレードコマンド添付フラグFcに値1をセットし(ステップS230)、このルーチンを終了する。アップグレードコマンド添付フラグFcは、ゼロのときには図示しないスキャナドライバ画面からスキャナ50にスキャン実行処理コマンドを送信するときにアップグレードコマンドを添付せず、値1のときにはスキャン実行処理コマンドを送信するときにアップグレードコマンドを添付して送信することを意味する。このアップグレードコマンド添付フラグFcは、パソコン10の電源をオフからオンにしたときや、値1になったあとスキャナ50とパソコン10との接続が断たれたときにゼロにリセットされる。
【0030】
最後に、スキャナ50の動作について説明する。スキャナ50のオートシートフィーダ68の図示しないスタッカには、多数の原稿(例えば小切手)が積まれているものとする。この状態で、ユーザがパソコン10でスキャナドライバ18aを起動してディスプレイ24の図示しないスキャナドライバ画面からスキャン処理実行ボタンをマウス28でクリックしたとする。このとき、パソコン10のCPU12は、アップグレードコマンド添付フラグFcが値1であるため、スキャナ処理実行コマンドと共にアップグレードコマンドをスキャナ50に送信する。スキャナ50がこれらのコマンドを受信すると、CPU52は、アップグレードコマンドに従ってスキャン速度の制限を解除し、小切手サイズで60枚/分のスキャン速度で原稿の読み取りを実行する。一方、スキャナ50がスキャナ処理実行コマンドのみを受信すると、CPU52は、スキャン速度の制限を解除することなく、小切手サイズで30枚/分のスキャン速度で原稿の読み取りを実行する。
【0031】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のパソコン10が本発明のUSBホストに相当し、HDD18が組合せ記憶手段に相当し、USBホストコントローラ20が識別情報取得手段に相当し、CPU12がコマンド送信手段に相当する。なお、本実施形態では、パソコン10の動作を説明することにより本発明のUSBホストの制御方法の一例も明らかにしている。また、本実施形態のUSBハブ30が本発明のUSBハブに相当し、メモリ38がハブ識別情報記憶手段に相当し、ハブ制御部36がハブ識別情報送信手段に相当する。更に、本実施形態のスキャナ50が本発明のUSBデバイスに相当し、ROM54がデバイス識別情報記憶手段に相当し、USBデバイスコントローラ58がデバイス識別情報送信手段に相当し、CPU52が能力アップ実行手段に相当する。
【0032】
以上詳述した本実施形態によれば、パソコン10がアップグレード処理ルーチンを実行するようにスキャナドライバ18aを作成する必要はあるものの、パソコン10に接続されるUSBハブ30やスキャナ50は従来通りUSB規格に準拠して通信するだけでよいため、簡単な仕組みでスキャナ50をアップグレードすることができる。また、アップグレードを許可するハブ識別情報とデバイス識別情報の組合せは、上流ポート32及び下流ポート34をそれぞれ1つずつ持つUSBハブ30を識別するハブ識別情報を含んでいるため、複数の下流ポートを持つUSBハブに接続されたスキャナはアップグレードの対象とならない。このため、一つのUSBハブに複数のスキャナが接続されそのすべてのスキャナがアップグレードされるというリスクが発生することはない。
【0033】
また、スキャナ50を購入したユーザは、スキャン速度の速い上位機種を利用したい場合、別途その上位機種の高価なスキャナを購入することなく、アップグレードを許可するハブ識別情報とデバイス識別情報の組合せを考慮してUSBハブ30を購入するだけで上位機種と同じスキャン速度が実現されるため、ユーザの費用負担が軽くなる。
【0034】
更に、ベンダーID及びプロダクトIDはUSB規格に準拠してパソコン10に渡されるディスクリプタに含まれるものであるから、ハブ識別情報やデバイス識別情報として利用するのにふさわしい。
【0035】
更にまた、USBハブ30は、アップグレードを許可する組合せに含まれるハブ識別情報をメモリ38に記憶しているため、このUSBハブ30に接続されたスキャナのデバイス識別情報次第で、パソコン10がそのスキャナにアップグレードコマンドを送信するか否かが決定される。また、スキャナ50も、アップグレードを許可する組合せに含まれるデバイス識別情報をROM54に記憶しているため、USBハブのハブ識別情報次第で、パソコン10がスキャナ50にアップグレードコマンドを送信するか否かが決定される。
【0036】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0037】
例えば、上述した実施形態では、スキャナ50はアップグレードコマンドを受信した場合にスキャン速度を30枚/分から60枚/分にアップグレードしたが、パソコン10のHDD18にハブ識別情報とデバイス識別情報との組合せをアップグレードの段階数(何段階アップグレードさせるか)と対応付けて記憶しておき、パソコン10が取得したハブ識別情報とデバイス識別情報との組合せがHDD18に記憶された組合せと一致する場合には、該組合せに対応づけられたアップグレードの段階数に応じたアップグレードコマンドをスキャナ50へ送信するとしてもよい。例えば、パソコン10のHDD18に表2のテーブルが記憶されている場合、USBハブ30のハブ識別情報のプロダクトIDが「BBBB」のときには1段階スピードアップ(例えば40枚/分)するアップグレードコマンドを、「CCCC」のときには2段階スピードアップ(例えば50枚/分)するアップグレードコマンドを、「DDDD」のときには3段階スピードアップ(例えば60枚/分)するアップグレードコマンドをスキャナ50へ送信してもよい。こうすれば、USBハブ30の種類に応じてスキャナ50の能力を段階ごとにアップさせることができる。
【表2】

【0038】
上述した実施形態では、パソコン10が取得したハブ識別情報とデバイス識別情報との組合せがHDD18に記憶された組合せと一致した場合、スキャナ50のスキャン速度をアップグレードするようにしたが、アップグレードの対象はスキャン速度に限られない。例えば、スキャナ50の解像度を低解像度から高解像度へアップグレードしてもよいし、スキャナ50をモノクロ対応からフルカラー対応へアップグレードしてもよい。また、ハブ識別情報とデバイス識別情報との組合せに対応付けられた能力をアップグレードしてもよい。例えば、パソコン10のHDD18に表3のテーブルが記憶されている場合、USBハブ30のハブ識別情報のプロダクトIDが「BBBB」のときにはスキャン速度が向上するアップグレードコマンドを、「CCCC」のときには解像度が向上するアップグレードコマンドを、「DDDD」のときにはモノクロ対応からフルカラー対応になるアップグレードコマンドをスキャナ50へ送信してもよい。こうすれば、USBハブ30の種類に応じてスキャナ50を能力別にアップグレードすることができる。また、能力別にアップグレードするにあたり、一つの能力だけでなく複数の能力をアップグレードしてもよい。
【表3】

【0039】
上述した実施形態では、USBデバイスとしてスキャナ50を例示したが、スキャナ以外のデバイスについても本発明を適用することができる。例えば、インクジェットプリンタやレーザプリンタにつき、印刷速度を低速から高速へアップブレードしたり、解像度を低解像度から高解像度やアップグレードしたり、モノクロ対応からフルカラー対応へアップグレードしてもよい。
【0040】
上述した実施形態では、アップグレード処理ルーチンのステップS230でアップグレードコマンド添付フラグFcを値1とし、その後スキャン処理実行コマンドを送信するときにアップグレードコマンドを一緒に送信するものとしたが、ステップS230でアップグレードコマンドをスキャナ50へ送信してもよい。この場合、アップグレードコマンドを受信したスキャナ50は、アップグレードフラグFuをゼロから値1にセットし、電源がオフされるかUSBハブ30又はパソコン10とのUSB接続が断たれたときにアップグレードフラグFuをゼロにリセットする。また、スキャナ50は、アップブレードフラグFuがゼロのときにはスキャン速度を30枚/分に設定し、値1のときにはスキャン速度をアップグレードして60枚/分に設定する。このようにしても上述した実施形態と同様の効果が得られる。
【0041】
上述した実施形態では、上流ポート32及び下流ポート34をそれぞれ1つずつ持つUSBハブ30を例示したが、複数の下流ポートを持つUSBハブを採用してもよい。この場合、パソコン10は、複数の下流ポートのそれぞれに接続されたUSBデバイスとUSB規格に準拠した通信を行うことにより、各下流ポートに接続されたUSBデバイスを認識すると共に、各USBデバイスのデバイス識別情報を取得する。このため、各USBデバイスごとに、ハブ識別情報とデバイス識別情報との組合せがアップグレードを許可する組合せか否かを判定し、肯定判定されたUSBデバイスについてアップグレードコマンドを送信すればよい。なお、この場合、一つのUSBハブに対して複数のUSBデバイスのアップグレードを認めることになるが、その分、ベンダーは販売価格を高価に設定すればよい。
【0042】
上述した実施形態では、USBホストとしてパソコン10を例示したが、パソコン10以外のUSBホストについても本発明を適用することができる。
【0043】
上述した実施形態のUSBハブ30は、1つの上流ポート32と1つの下流ポート34とを備えるものであるため、USB延長コードと称してもよい。
【図面の簡単な説明】
【0044】
【図1】本実施形態のシステム構成の概略を示す説明図である。
【図2】USBデバイス認識ルーチンのフローチャートである。
【図3】アップグレード処理ルーチンのフローチャートである。
【符号の説明】
【0045】
10 パソコン、11 USBポート、12 CPU、14 ROM、16 RAM、18 HDD、18a スキャナドライバ、18b USBシステムソフトウェア、20 USBホストコントローラ、22 バス、24 ディスプレイ、26 キーボード、28 マウス、30 USBハブ、32 上流ポート、34 下流ポート、36 ハブ制御部、38 メモリ、50 スキャナ、51 スキャナ制御部、52 CPU、54 ROM、56 RAM、58 USBデバイスコントローラ、60 バス、62 スキャナ機構、64 ガラス板、66 カバー、68 オートシートフィーダ、70 キャリッジ、72 光源、74 ミラー、76 集光レンズ、78 イメージセンサ、80 USBポート、D 原稿。

【特許請求の範囲】
【請求項1】
USBハブを介してUSBデバイスを接続可能なUSBホストであって、
USBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せのうちUSBデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段と、
USBハブが接続されたとき、USB規格に準拠して該USBハブからハブ識別情報を取得し、該USBハブにUSBデバイスが接続されていたとき、前記USB規格に準拠して該USBデバイスからデバイス識別情報を取得する識別情報取得手段と、
前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記USBデバイスにアップグレードコマンドを送信するコマンド送信手段と、
を備えたUSBホスト。
【請求項2】
前記組合せ記憶手段は、上流ポート及び下流ポートをそれぞれ1つずつ持つUSBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せを前記アップグレードを許可する組合せとして記憶している、
請求項1に記載のUSBホスト。
【請求項3】
前記USBデバイスは、前記アップグレードコマンドを受信していないときには自己の持つ本来の能力を制限した状態で作動し、前記アップグレードコマンドを受信したときには自己の持つ能力の制限を解除した状態で作動する、
請求項1又は2に記載のUSBホスト。
【請求項4】
前記組合せ記憶手段は、前記アップグレードを許可する組合せをアップグレードさせる段階数と対応づけて記憶する手段であり、
前記コマンド送信手段は、前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、該組合せに対応づけられた段階数を前記USBデバイスが認識可能なアップブレードコマンドを送信する手段である、
請求項1〜3のいずれか1項に記載のUSBホスト。
【請求項5】
前記ハブ識別情報は、前記USBハブのベンダーID及びプロダクトIDであり、
前記デバイス識別情報は、前記USBデバイスのベンダーID及びプロダクトIDである、
請求項1〜4のいずれか1項に記載のUSBホスト。
【請求項6】
USBハブを特定するハブ識別情報とUSBデバイスを特定するデバイス識別情報との組合せのうちUSBデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段を備え、USBハブを介してUSBデバイスを接続可能なUSBホストの制御方法であって、
(a)USBハブが接続されたとき、USB規格に準拠して該USBハブからハブ識別情報を取得するステップと、
(b)該USBハブにUSBデバイスが接続されていたとき、前記USB規格に準拠して該USBデバイスからデバイス識別情報を取得するステップと、
(c)前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記USBデバイスにアップグレードコマンドを送信するステップと、
を含むUSBホストの制御方法。
【請求項7】
請求項6に記載のUSBホストの制御方法の各ステップを1又は複数のコンピュータに実行させるためのコンピュータプログラム。
【請求項8】
請求項1〜5のいずれか1項に記載のUSBホストに利用されるUSBハブであって、
前記アップグレードを許可する組合せに含まれるハブ識別情報を記憶するハブ識別情報記憶手段と、
前記USB規格に準拠して前記USBホストからのハブ識別情報の取得要求を受信したとき前記ハブ識別情報記憶手段に記憶されたハブ識別情報を前記USBホストへ送信するハブ識別情報送信手段と、
を備えたUSBハブ。
【請求項9】
請求項8に記載のUSBハブであって、
上流ポート及び下流ポートをそれぞれ1つずつ持つ、
USBハブ。
【請求項10】
請求項1〜5のいずれか1項に記載のUSBホストと接続して使用されるUSBデバイスであって、
前記アップグレードを許可する組合せに含まれるデバイス識別情報を記憶するデバイス識別情報記憶手段と、
前記USB規格に準拠して前記USBホストからのデバイス識別情報の取得要求を受信したとき前記デバイス識別情報記憶手段に記憶されたデバイス識別情報を前記USBホストへ送信するデバイス識別情報送信手段と、
前記USBホストから前記アップグレードコマンドを受信したときに自己の能力をアップする能力アップ実行手段と、
を備えたUSBデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate