(57)【特許請求の範囲】
【請求項１】
ＵＳＢハブを介してＵＳＢデバイスを接続可能なＵＳＢホストであって、
ＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せのうちＵＳＢデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段と、
ＵＳＢハブが接続されたとき、ＵＳＢ規格に準拠して該ＵＳＢハブからハブ識別情報を取得し、該ＵＳＢハブにＵＳＢデバイスが接続されていたとき、前記ＵＳＢ規格に準拠して該ＵＳＢデバイスからデバイス識別情報を取得する識別情報取得手段と、
前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記ＵＳＢデバイスにアップグレードコマンドを送信するコマンド送信手段と、
を備えたＵＳＢホスト。
【請求項２】
前記組合せ記憶手段は、上流ポート及び下流ポートをそれぞれ１つずつ持つＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せを前記アップグレードを許可する組合せとして記憶している、
請求項１に記載のＵＳＢホスト。
【請求項３】
前記組合せ記憶手段は、前記アップグレードを許可する組合せをアップグレードさせる段階数と対応づけて記憶する手段であり、
前記コマンド送信手段は、前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、該組合せに対応づけられた段階数を前記ＵＳＢデバイスが認識可能なアップブレードコマンドを送信する手段である、
請求項１又は２のいずれか１項に記載のＵＳＢホスト。
【請求項４】
前記ハブ識別情報は、前記ＵＳＢハブのベンダーＩＤ及びプロダクトＩＤであり、
前記デバイス識別情報は、前記ＵＳＢデバイスのベンダーＩＤ及びプロダクトＩＤである、
請求項１〜３のいずれか１項に記載のＵＳＢホスト。
【請求項５】
ＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せのうちＵＳＢデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段を備え、ＵＳＢハブを介してＵＳＢデバイスを接続可能なＵＳＢホストの制御方法であって、
（ａ）ＵＳＢハブが接続されたとき、ＵＳＢ規格に準拠して該ＵＳＢハブからハブ識別情報を取得するステップと、
（ｂ）該ＵＳＢハブにＵＳＢデバイスが接続されていたとき、前記ＵＳＢ規格に準拠して該ＵＳＢデバイスからデバイス識別情報を取得するステップと、
（ｃ）前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記ＵＳＢデバイスにアップグレードコマンドを送信するステップと、
を含むＵＳＢホストの制御方法。
【請求項６】
請求項５に記載のＵＳＢホストの制御方法の各ステップを１又は複数のコンピュータに実行させるためのコンピュータプログラム。
【請求項７】
請求項１〜４のいずれか１項に記載のＵＳＢホストと、該ＵＳＢホストに接続された前記ＵＳＢハブと、該ＵＳＢホストに該ＵＳＢハブを介して接続された前記ＵＳＢデバイスと、を備えたシステムであって、
前記ＵＳＢハブは、
前記アップグレードを許可する組合せに含まれるハブ識別情報を記憶するハブ識別情報記憶手段と、
前記ＵＳＢ規格に準拠して前記ＵＳＢホストからのハブ識別情報の取得要求を受信したとき前記ハブ識別情報記憶手段に記憶されたハブ識別情報を前記ＵＳＢホストへ送信するハブ識別情報送信手段と、
を備え、
前記ＵＳＢデバイスは、
前記アップグレードを許可する組合せに含まれるデバイス識別情報を記憶するデバイス識別情報記憶手段と、
前記ＵＳＢ規格に準拠して前記ＵＳＢホストからのデバイス識別情報の取得要求を受信したとき前記デバイス識別情報記憶手段に記憶されたデバイス識別情報を前記ＵＳＢホストへ送信するデバイス識別情報送信手段と、
前記ＵＳＢホストから前記アップグレードコマンドを受信したときに自己の能力をアップする能力アップ実行手段と、
を備えた
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢホスト、その制御方法、コンピュータプログラム、ＵＳＢハブ及びＵＳＢデバイスに関する。
【背景技術】
【０００２】
従来より、ＵＳＢデバイスと通信を行うＵＳＢホストに関し、種々の工夫をこらしたものが提案されている。例えば、特許文献１では、ＵＳＢホストとして機能するカラーレーザプリンタにつき、そのＵＳＢポートにＵＳＢデバイスであるＵＳＢメモリが装着されたとき、そのＵＳＢメモリが印刷の実行を許可するＵＳＢキーか否かを判定し、ＵＳＢキーであるときには印刷の実行を許可するが、ＵＳＢキーでないときには印刷の実行を禁止するものが提案されている。
【特許文献１】特開２００７−９８８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ある種のパソコン周辺機器では、同じ装置構成を有していながら、高価な上位機種と安価な下位機種に分けて販売されることがある。この場合、上位機種には、その装置構成によって発揮できる能力に制限をかけていないのに対し、下位機種には、その能力に制限をかけてある。例えば、所定サイズの原稿を読み取るスキャン速度が６０枚／分の能力を持つ装置構成のスキャナがあるとすると、上位機種ではその能力に制限をかけず６０枚／分でスキャンできるのに対し、下位機種ではその能力に制限をかけて３０枚／分でしかスキャンできないようにすることがある。ここで、下位機種を購入したユーザがスキャン速度に不満を感じて上位機種を購入することがあるが、その場合には実質的に同じ装置構成のスキャナを２台購入することになってしまうため、ユーザにとって好ましくない。この点を考慮して、下位機種を上位機種にアップグレードすることでユーザのスキャン速度に関する不満を解消することが好ましい。このように下位機種のスキャナを上位機種にアップブレードする一案として、特許文献１のようにＵＳＢキーを利用することが考えられる。具体的には、スキャナをＵＳＢホストとし、そのＵＳＢポートにＵＳＢデバイスであるＵＳＢメモリが装着されたとき、そのＵＳＢがアップブレードを許可するＵＳＢキーか否かを判定し、ＵＳＢキーであるときには能力制限を解除することが考えられる。
【０００４】
しかしながら、この場合、スキャナをＵＳＢホストとして機能するように装置構成を構築する必要がある。通常の使用形態を考えると、パソコンがＵＳＢホスト、スキャナがＵＳＢデバイスとなるため、スキャナをＵＳＢホストとしても機能するように装置構成を構築するのは面倒である。
【０００５】
本発明は、上述した課題に鑑みなされたものであり、能力が制限されたＵＳＢデバイスを簡単な仕組みによりアップグレードすることができるＵＳＢホスト、その制御方法及びコンピュータプログラムを提供することを目的の一つとする。また、こうしたＵＳＢホストに接続して利用可能なＵＳＢハブやＵＳＢデバイスを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明は、上述の目的を達成するために以下の手段を採った。
【０００７】
本発明のＵＳＢホストは、
ＵＳＢハブを介してＵＳＢデバイスを接続可能なＵＳＢホストであって、
ＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せのうちＵＳＢデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段と、
ＵＳＢハブが接続されたとき、ＵＳＢ規格に準拠して該ＵＳＢハブからハブ識別情報を取得し、該ＵＳＢハブにＵＳＢデバイスが接続されていたとき、前記ＵＳＢ規格に準拠して該ＵＳＢデバイスからデバイス識別情報を取得する識別情報取得手段と、
前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記ＵＳＢデバイスにアップグレードコマンドを送信するコマンド送信手段と、
を備えたものである。
【０００８】
このＵＳＢホストでは、ＵＳＢハブが接続されたとき、ＵＳＢ規格に準拠して該ＵＳＢハブからハブ識別情報を取得し、該ＵＳＢハブにＵＳＢデバイスが接続されていたとき、ＵＳＢ規格に準拠して該ＵＳＢデバイスからデバイス識別情報を取得する。そして、取得したハブ識別情報とデバイス識別情報との組合せが予め組合せ記憶手段に記憶された組合せと一致する場合には、ＵＳＢハブを介して接続されているＵＳＢデバイスにアップグレードコマンドを送信する。このように、ＵＳＢホストに接続されるＵＳＢハブやＵＳＢデバイスは従来通りＵＳＢ規格に準拠して通信するだけでよいため、簡単な仕組みでＵＳＢデバイスをアップグレードすることができる。
【０００９】
なお、コマンド送信手段がＵＳＢデバイスにアップグレードコマンドを送信するタイミングは特に限定されないが、例えば、処理実行コマンドを送信するときに一緒にアップグレードコマンドを送信してもよいし、ＵＳＢデバイスに処理実行コマンドを送信する前にアップグレードコマンドを送信してもよい。
【００１０】
本発明のＵＳＢホストにおいて、前記組合せ記憶手段は、上流ポート及び下流ポートをそれぞれ１つずつ持つＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せを前記アップグレードを許可する組合せとして記憶していてもよい。こうすれば、複数の下流ポートを持つＵＳＢハブに接続されたＵＳＢデバイスはアップグレードの対象とならない。このため、一つのＵＳＢハブに複数のＵＳＢデバイスが接続されそのすべてのＵＳＢデバイスがアップグレードされてしまうというリスクが発生することがない。
【００１１】
本発明のＵＳＢホストにおいて、前記ＵＳＢデバイスは、前記アップグレードコマンドを受信していないときには自己の持つ本来の能力を制限した状態で作動し、前記アップグレードコマンドを受信したときには自己の持つ能力の制限を解除した状態で作動するものとしてもよい。こうすれば、本来の能力を制限した状態で作動するＵＳＢデバイスを購入したユーザは、その能力の制限を解除した状態で作動するＵＳＢデバイスを利用したい場合、別途そのＵＳＢデバイスを購入することなく、予め記憶手段に記憶されているハブ識別情報とデバイス識別情報の組合せを考慮してＵＳＢハブを購入するだけでよいため、ユーザの費用負担が軽くなる。
【００１２】
本発明のＵＳＢホストにおいて、前記組合せ記憶手段は、前記アップグレードを許可する組合せをアップグレードさせる段階数と対応づけて記憶する手段であり、前記コマンド送信手段は、前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、該組合せに対応づけられた段階数を前記ＵＳＢデバイスが認識可能なアップブレードコマンドを送信する手段であるとしてもよい。こうすれば、結果的にＵＳＢハブのハブ識別情報に応じてＵＳＢデバイスの能力を段階的にアップすることができる。
【００１３】
本発明のＵＳＢホストにおいて、前記ハブ識別情報は、前記ＵＳＢハブのベンダーＩＤ及びプロダクトＩＤであり、前記デバイス識別情報は、前記ＵＳＢデバイスのベンダーＩＤ及びプロダクトＩＤであるとしてもよい。こうすれば、ベンダーＩＤ及びプロダクトＩＤはＵＳＢ規格に準拠してＵＳＢホストが受け取るディスクリプタに含まれるものであるから、ハブ識別情報やデバイス識別情報として利用するのにふさわしい。
【００１４】
本発明のＵＳＢホストの制御方法は、
ＵＳＢハブを特定するハブ識別情報とＵＳＢデバイスを特定するデバイス識別情報との組合せのうちＵＳＢデバイスの能力をアップさせるアップグレードを許可する組合せを記憶する組合せ記憶手段を備え、ＵＳＢハブを介してＵＳＢデバイスを接続可能なＵＳＢホストの制御方法であって、
（ａ）ＵＳＢハブが接続されたとき、ＵＳＢ規格に準拠して該ＵＳＢハブからハブ識別情報を取得するステップと、
（ｂ）該ＵＳＢハブにＵＳＢデバイスが接続されていたとき、前記ＵＳＢ規格に準拠して該ＵＳＢデバイスからデバイス識別情報を取得するステップと、
（ｃ）前記取得したハブ識別情報とデバイス識別情報との組合せが前記組合せ記憶手段に記憶された組合せと一致する場合には、前記ＵＳＢデバイスにアップグレードコマンドを送信するステップと、
を含むものである。
【００１５】
このＵＳＢホストの制御方法では、ＵＳＢホストに接続されるＵＳＢハブやＵＳＢデバイスは従来通りＵＳＢ規格に準拠して通信するだけでよいため、簡単な仕組みでＵＳＢデバイスをアップグレードすることができる。なお、本発明のＵＳＢホストの制御方法において、上述したいずれかのＵＳＢホストの機能を実現するようなステップを追加してもよい。
【００１６】
本発明のコンピュータプログラムは、上述したＵＳＢホストの制御方法の各ステップを１又は複数のコンピュータに実行させるためのプログラムである。このプログラムは、コンピュータが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピュータに実行させるか又は複数のコンピュータに各ステップを分担して実行させれば、本発明のＵＳＢホストの制御方法と同様の効果を得ることができる。
【００１７】
本発明のＵＳＢハブは、
上述したいずれかのＵＳＢホストに利用されるＵＳＢハブであって、
前記アップグレードを許可する組合せに含まれるハブ識別情報を記憶するハブ識別情報記憶手段と、
前記ＵＳＢ規格に準拠して前記ＵＳＢホストからのハブ識別情報の取得要求を受信したとき前記ハブ識別情報記憶手段に記憶されたハブ識別情報を前記ＵＳＢホストへ送信するハブ識別情報送信手段と、
を備えたものである。
【００１８】
このＵＳＢハブでは、上述したＵＳＢホストの組合せ記憶手段に記憶されている組合せに含まれるハブ識別情報を記憶している。このため、このＵＳＢハブに接続されたＵＳＢデバイスのデバイス識別情報次第で、ＵＳＢホストがＵＳＢデバイスにアップグレードコマンドを送信するか否かが決定される。したがって、このＵＳＢハブは、上述したＵＳＢホストの効果を得るために必要不可欠なものとなる。こうしたＵＳＢハブは、上流ポート及び下流ポートをそれぞれ１つずつ持つものとしてもよい。
【００１９】
本発明のＵＳＢデバイスは、
上述したいずれかのＵＳＢホストと接続して使用されるＵＳＢデバイスであって、
前記アップグレードを許可する組合せに含まれるデバイス識別情報を記憶するデバイス識別情報記憶手段と、
前記ＵＳＢ規格に準拠して前記ＵＳＢホストからのデバイス識別情報の取得要求を受信したとき前記デバイス識別情報記憶手段に記憶されたデバイス識別情報を前記ＵＳＢホストへ送信するデバイス識別情報送信手段と、
前記ＵＳＢホストから前記アップグレードコマンドを受信したときに自己の能力をアップする能力アップ実行手段と、
を備えたものである。
【００２０】
このＵＳＢデバイスでは、上述したＵＳＢホストの組合せ記憶手段に記憶されている組合せに含まれるデバイス識別情報を記憶している。このため、このＵＳＢデバイスに接続されたＵＳＢハブのハブ識別情報次第で、ＵＳＢホストがＵＳＢデバイスにアップグレードコマンドを送信するか否かが決定される。また、ＵＳＢホストからアップグレードコマンドを受信したときに自己の能力をアップさせる。したがって、このＵＳＢデバイスは、上述したＵＳＢホストの効果を得るために必要不可欠なものとなる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本実施形態のシステム構成の概略を示す説明図である。このシステムは、ＵＳＢホストとしてのパーソナルコンピュータ（以下「パソコン」という）１０と、上流ポート３２及び下流ポート３４をそれぞれ１つずつ持つＵＳＢハブ３０と、ＵＳＢデバイスとしてのスキャナ５０とから構成される。
【００２２】
パソコン１０は、シリーズＡコネクタであるＵＳＢポート１１にＵＳＢハブ３０を介してスキャナ５０が接続されている。このパソコン１０は、ＣＰＵ１２を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データなどを記憶したＲＯＭ１４と、一時的にデータを記憶するＲＡＭ１６と、大容量のＨＤＤ１８と、ＵＳＢデバイス（ここではＵＳＢハブ３０やスキャナ５０）との間で通信を行うＵＳＢホストコントローラ２０とを備え、これらはバス２２を介して互いに信号のやり取りが可能なように接続されている。このうち、ＨＤＤ１８は、スキャナ５０に対して指令を出力したりスキャナ５０から動作のステータスを入力したりするスキャナドライバ１８ａと、接続されたＵＳＢデバイスとの間でＵＳＢ２．０に準拠した通信を行ったりスキャナドライバ１８ａを動的にＲＡＭ１６の作業領域にロードしたりするＵＳＢシステムソフトウェア１８ｂとを備えている。また、パソコン１０は、スキャナドライバ１８ａに基づくドライバ画面をディスプレイ２４に表示出力したり、ドライバ画面を見ながらキーボード２６やマウス２８を操作するユーザからの指示（スキャナ処理実行コマンドなど）を入力したりする。
【００２３】
ここで、スキャナドライバ１８ａには、ＵＳＢポート１１に接続されたＵＳＢハブ３０のハブ識別情報であるベンダーＩＤ及びプロダクトＩＤと、スキャナ５０のデバイス識別情報であるベンダーＩＤ及びプロダクトＩＤとの組合せのうち、スキャナ５０の能力をアップさせるアップグレードを許可する組合せがテーブルとして記憶されている。このテーブルの一例を表１に示す。本実施形態では、ＵＳＢハブ３０のベンダーＩＤは「ＡＡＡＡ」、プロダクトＩＤは「ＢＢＢＢ」、スキャナ５０のベンダーＩＤは「ＡＡＡＡ」、プロダクトＩＤは「ＸＸＸＸ」とする。また、アップグレードを許可する組合せにおけるハブ識別情報は、いずれも上流ポート及び下流ポートをそれぞれ１つずつ持つＵＳＢハブのハブ識別情報となっている。
【表１】
0005130984.tif 000002
【００２４】
ＵＳＢハブ３０は、上流ポート３２がＵＳＢホスト（ここではパソコン１０）に接続され、下流ポート３４がＵＳＢデバイス（ここではスキャナ５０）に接続され、ハブ制御部３６により各種の処理を行うように構成されている。上流ポート３２は、ＵＳＢホストに対する入出力データのバッファ機能やＵＳＢ２．０規格に準拠したトランシーバ機能等を備えている。下流ポート３４は、ＵＳＢデバイスに対する入出力データのバッファ機能やＵＳＢ２．０規格に準拠したトランシーバ機能等を備えている。ハブ制御部３６は、上流ポート３２と下流ポート３４との間のデータ転送処理やバス速度の検出処理、トランザクション分割等のＵＳＢ２．０規格に準拠した処理を行う回路である。このＵＳＢハブ３０は、ＵＳＢホストからはＵＳＢデバイスとみなされるものであり、ＵＳＢホストからデバイスディスクリプタやコンフィグレーションディスクリプタ等の取得要求を入力したとき、その応答をＵＳＢホストへ出力する。ここで、デバイスディスクリプタは、機器を識別するための情報であり、機器を提供するベンダーを特定するベンダーＩＤや製品を特定するプロダクトＩＤなどを含む。ＵＳＢハブ３０は、こうしたデバイスディスクリプタをハブ制御部３６のメモリ３８に保存している。
【００２５】
スキャナ５０は、シリーズＢコネクタであるＵＳＢポート８０にＵＳＢハブ３０を介してパソコン１０が接続されている。このスキャナ５０は、スキャナ５０の全体の制御を司るスキャナ制御部５１と、このスキャナ制御部５１によって制御されるスキャナ機構６２とを備えている。スキャナ制御部５１は、ＣＰＵ５２を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データ（スキャナ５０のデバイスディスクリプタを含む）などを記憶したＲＯＭ５４と、一時的にデータを記憶するＲＡＭ５６と、ＵＳＢホストとの間で通信を行うＵＳＢデバイスコントローラ５８とを備え、これらはバス６０を介して互いに信号のやり取りが可能なように接続されている。また、スキャナ５０は、ＵＳＢホストからデバイスディスクリプタやコンフィグレーションディスクリプタ等の取得要求を入力したとき、ＵＳＢデバイスコントローラ５８がそれに応じた応答をＵＳＢホストへ出力する。一方、スキャナ機構６２は、図示しないスタッカに積み重ねられた原稿Ｄ（例えば小切手など）を１枚ずつガラス板６４とカバー６６との隙間に送り込むオートシートフィーダ６８と、このガラス板６４の下方のキャリッジ７０に搭載され原稿Ｄに向かって光を照射する光源７２と、同じくキャリッジ７０に搭載され原稿Ｄで反射した光をミラー７４及び集光レンズ７６を介して受けることにより画像を読み取るイメージセンサ７８とを備えている。光源７２は、主走査方向（原稿Ｄの送り方向と直交する方向）に並んだ複数の白色ＬＥＤからの光が線状にガラス板６４へ照射されるように構成されている。イメージセンサ７８は、複数の撮像素子が主走査方向に配設され、ミラー７４及び集光レンズ７６を介して受けた光を電荷に変換してアナログ信号を出力する。このアナログ信号は図示しないＡ／Ｄ変換回路によりデジタル信号に変換されたあとスキャナデータとしてＲＡＭ５６の作業領域に記憶される。なお、イメージセンサ７８としては、ＣＣＤイメージセンサを採用してもよいし、ＣＭＯＳ型のイメージセンサを採用してもよい。また、光源７２として白色ＬＥＤを例示したが、例えば赤色ＬＥＤ、緑色ＬＥＤ、青色ＬＥＤや水銀ランプなどにより白色光を照射するものとしてもよい。
【００２６】
こうしたスキャナ５０は、小切手サイズの原稿を６０枚／分のスキャン速度で読み取る能力を持つように構成されているが、通常はこの能力に制限がかけられており、３０枚／分のスキャン速度で原稿を読み取るようになっている。なお、このスキャナ５０の上位機種として、装置構成は同じだが能力の制限が掛けられていないスキャナがこのスキャナ５０よりも高い価格で販売されているものとする。
【００２７】
次に、こうして構成された本実施形態のシステムの動作について説明する。まず、パソコン１０のＵＳＢホストコントローラ２０によって実行されるＵＳＢデバイス認識ルーチンについて説明し、そのあとにパソコン１０のＣＰＵ１２によって実行されるアップグレード処理ルーチンについて説明し、最後にスキャナ５０の動作について説明する。
【００２８】
図２は、ＵＳＢデバイス認識ルーチンのフローチャートである。このルーチンは、ＵＳＢホストコントローラ２０によって所定タイミングごと（例えば数ｓｅｃごと）にＵＳＢシステムソフトウェア１８ｂを利用して繰り返し実行される。このルーチンが開始されると、ＵＳＢホストコントローラ２０は、まず、ＵＳＢポート１１にＵＳＢデバイスが接続されたか否かを判定する（ステップＳ１１０）。ＵＳＢデバイスが接続されたか否かは、例えばＵＳＢポート１１のＶＢＵＳ状態によって判定することができる。ＵＳＢデバイスが接続されていないときには、そのままこのルーチンを終了する。一方、ＵＳＢデバイスが接続されていたときには、そのＵＳＢデバイスとＵＳＢ規格に準拠した通信を実行する（ステップＳ１２０）。この通信は、ＵＳＢポート１１に接続されているＵＳＢデバイスへのディスクリプタ（デバイスディスクリプタやコンフィグレーションディスクリプタ等）の取得要求の送信と、それに対するディスクリプタの受信と、受信したディスクリプタのＲＡＭ１６への保存とを含む。ディスクリプタには、接続されているＵＳＢデバイスのベンダーＩＤとプロダクトＩＤとが含まれるため、これらがＲＡＭ１６に保存される。続いて、通信の結果得られたコンフィグレーションディスクリプタに基づいて、ＵＳＢポート１１に接続されているＵＳＢデバイスがＵＳＢハブか否かを判定し（ステップＳ１３０）、ＵＳＢハブだったときには更にそのＵＳＢハブにＵＳＢデバイスが接続されているか否かを判定する（ステップＳ１４０）。ここでは、ＵＳＢポート１１にＵＳＢハブ３０が接続され、そのＵＳＢハブ３０にスキャナ５０が接続されているから、ステップＳ１３０，Ｓ１４０は共に肯定判定される。続いて、ＵＳＢハブに接続されているＵＳＢデバイスとＵＳＢ規格に準拠した通信を実行する（ステップＳ１５０）。この通信は、ＵＳＢハブに接続されているＵＳＢデバイスへのディスクリプタの取得要求の送信と、それに対するディスクリプタの受信と、受信したディスクリプタのＲＡＭ１６への保存とを含む。ディスクリプタには、接続されているＵＳＢデバイスのベンダーＩＤとプロダクトＩＤとが含まれるため、これらのＩＤがＲＡＭ１６に保存される。そして、ステップＳ１５０のあと又はステップＳ１３０及びステップＳ１４０のいずれかで否定判定されたときには、このルーチンを終了する。なお、ステップＳ１４０で否定判定されたあと、ＵＳＢハブにＵＳＢデバイスが装着されたときには、このルーチンのステップＳ１５０以降の処理を実行するものとする。
【００２９】
次に、パソコン１０のＣＰＵ１２によって実行されるアップグレード処理ルーチンについて説明する。図３は、アップグレード処理ルーチンのフローチャートである。このルーチンは、上述したＵＳＢデバイス認識ルーチンにおいてＲＡＭ１６の識別情報が新たに保存された場合に実行される。このルーチンが開始されると、ＣＰＵ１２は、まず、ＵＳＢポート１１にＵＳＢハブが接続され、そのＵＳＢハブに更にＵＳＢデバイスが接続されているか否かを判定し（ステップＳ２００）、否定判定されたときにはこのルーチンを終了する。一方、肯定判定されたときには、ハブ識別情報としてＵＳＢハブのベンダーＩＤ及びプロダクトＩＤを読み出すと共にデバイス識別情報としてＵＳＢハブに接続されているＵＳＢデバイスのベンダーＩＤ及びプロダクトＩＤをＲＡＭ１６から読み出す（ステップＳ２１０）。そして、読み出したハブ識別情報とデバイス識別情報との組合せが、ＵＳＢハブに接続されているＵＳＢデバイスの能力をアップさせるアップグレードを許可する組合せと一致するか否かを判定し（ステップＳ２２０）、ハブ識別情報とデバイス識別情報との組合せがアップグレードを許可する組合せと一致しなかったときには、このルーチンを終了する。ここでは、ＵＳＢポート１１にＵＳＢハブ３０が接続され、そのＵＳＢハブ３０にスキャナ５０が接続されているから、ステップＳ２２０ではハブ識別情報とスキャナ識別情報との組合せが表１のテーブルにあるか否かを判定することになる。そして、上述したように、ＵＳＢハブ３０のハブ識別情報とスキャナ５０のデバイス識別情報の組合せは表１のテーブルに存在しているからステップＳ２２０で肯定判定される。ステップＳ２２０で肯定判定されると、アップグレードコマンド添付フラグＦｃに値１をセットし（ステップＳ２３０）、このルーチンを終了する。アップグレードコマンド添付フラグＦｃは、ゼロのときには図示しないスキャナドライバ画面からスキャナ５０にスキャン実行処理コマンドを送信するときにアップグレードコマンドを添付せず、値１のときにはスキャン実行処理コマンドを送信するときにアップグレードコマンドを添付して送信することを意味する。このアップグレードコマンド添付フラグＦｃは、パソコン１０の電源をオフからオンにしたときや、値１になったあとスキャナ５０とパソコン１０との接続が断たれたときにゼロにリセットされる。
【００３０】
最後に、スキャナ５０の動作について説明する。スキャナ５０のオートシートフィーダ６８の図示しないスタッカには、多数の原稿（例えば小切手）が積まれているものとする。この状態で、ユーザがパソコン１０でスキャナドライバ１８ａを起動してディスプレイ２４の図示しないスキャナドライバ画面からスキャン処理実行ボタンをマウス２８でクリックしたとする。このとき、パソコン１０のＣＰＵ１２は、アップグレードコマンド添付フラグＦｃが値１であるため、スキャナ処理実行コマンドと共にアップグレードコマンドをスキャナ５０に送信する。スキャナ５０がこれらのコマンドを受信すると、ＣＰＵ５２は、アップグレードコマンドに従ってスキャン速度の制限を解除し、小切手サイズで６０枚／分のスキャン速度で原稿の読み取りを実行する。一方、スキャナ５０がスキャナ処理実行コマンドのみを受信すると、ＣＰＵ５２は、スキャン速度の制限を解除することなく、小切手サイズで３０枚／分のスキャン速度で原稿の読み取りを実行する。
【００３１】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のパソコン１０が本発明のＵＳＢホストに相当し、ＨＤＤ１８が組合せ記憶手段に相当し、ＵＳＢホストコントローラ２０が識別情報取得手段に相当し、ＣＰＵ１２がコマンド送信手段に相当する。なお、本実施形態では、パソコン１０の動作を説明することにより本発明のＵＳＢホストの制御方法の一例も明らかにしている。また、本実施形態のＵＳＢハブ３０が本発明のＵＳＢハブに相当し、メモリ３８がハブ識別情報記憶手段に相当し、ハブ制御部３６がハブ識別情報送信手段に相当する。更に、本実施形態のスキャナ５０が本発明のＵＳＢデバイスに相当し、ＲＯＭ５４がデバイス識別情報記憶手段に相当し、ＵＳＢデバイスコントローラ５８がデバイス識別情報送信手段に相当し、ＣＰＵ５２が能力アップ実行手段に相当する。
【００３２】
以上詳述した本実施形態によれば、パソコン１０がアップグレード処理ルーチンを実行するようにスキャナドライバ１８ａを作成する必要はあるものの、パソコン１０に接続されるＵＳＢハブ３０やスキャナ５０は従来通りＵＳＢ規格に準拠して通信するだけでよいため、簡単な仕組みでスキャナ５０をアップグレードすることができる。また、アップグレードを許可するハブ識別情報とデバイス識別情報の組合せは、上流ポート３２及び下流ポート３４をそれぞれ１つずつ持つＵＳＢハブ３０を識別するハブ識別情報を含んでいるため、複数の下流ポートを持つＵＳＢハブに接続されたスキャナはアップグレードの対象とならない。このため、一つのＵＳＢハブに複数のスキャナが接続されそのすべてのスキャナがアップグレードされるというリスクが発生することはない。
【００３３】
また、スキャナ５０を購入したユーザは、スキャン速度の速い上位機種を利用したい場合、別途その上位機種の高価なスキャナを購入することなく、アップグレードを許可するハブ識別情報とデバイス識別情報の組合せを考慮してＵＳＢハブ３０を購入するだけで上位機種と同じスキャン速度が実現されるため、ユーザの費用負担が軽くなる。
【００３４】
更に、ベンダーＩＤ及びプロダクトＩＤはＵＳＢ規格に準拠してパソコン１０に渡されるディスクリプタに含まれるものであるから、ハブ識別情報やデバイス識別情報として利用するのにふさわしい。
【００３５】
更にまた、ＵＳＢハブ３０は、アップグレードを許可する組合せに含まれるハブ識別情報をメモリ３８に記憶しているため、このＵＳＢハブ３０に接続されたスキャナのデバイス識別情報次第で、パソコン１０がそのスキャナにアップグレードコマンドを送信するか否かが決定される。また、スキャナ５０も、アップグレードを許可する組合せに含まれるデバイス識別情報をＲＯＭ５４に記憶しているため、ＵＳＢハブのハブ識別情報次第で、パソコン１０がスキャナ５０にアップグレードコマンドを送信するか否かが決定される。
【００３６】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３７】
例えば、上述した実施形態では、スキャナ５０はアップグレードコマンドを受信した場合にスキャン速度を３０枚／分から６０枚／分にアップグレードしたが、パソコン１０のＨＤＤ１８にハブ識別情報とデバイス識別情報との組合せをアップグレードの段階数（何段階アップグレードさせるか）と対応付けて記憶しておき、パソコン１０が取得したハブ識別情報とデバイス識別情報との組合せがＨＤＤ１８に記憶された組合せと一致する場合には、該組合せに対応づけられたアップグレードの段階数に応じたアップグレードコマンドをスキャナ５０へ送信するとしてもよい。例えば、パソコン１０のＨＤＤ１８に表２のテーブルが記憶されている場合、ＵＳＢハブ３０のハブ識別情報のプロダクトＩＤが「ＢＢＢＢ」のときには１段階スピードアップ（例えば４０枚／分）するアップグレードコマンドを、「ＣＣＣＣ」のときには２段階スピードアップ（例えば５０枚／分）するアップグレードコマンドを、「ＤＤＤＤ」のときには３段階スピードアップ（例えば６０枚／分）するアップグレードコマンドをスキャナ５０へ送信してもよい。こうすれば、ＵＳＢハブ３０の種類に応じてスキャナ５０の能力を段階ごとにアップさせることができる。
【表２】
0005130984.tif 000003
【００３８】
上述した実施形態では、パソコン１０が取得したハブ識別情報とデバイス識別情報との組合せがＨＤＤ１８に記憶された組合せと一致した場合、スキャナ５０のスキャン速度をアップグレードするようにしたが、アップグレードの対象はスキャン速度に限られない。例えば、スキャナ５０の解像度を低解像度から高解像度へアップグレードしてもよいし、スキャナ５０をモノクロ対応からフルカラー対応へアップグレードしてもよい。また、ハブ識別情報とデバイス識別情報との組合せに対応付けられた能力をアップグレードしてもよい。例えば、パソコン１０のＨＤＤ１８に表３のテーブルが記憶されている場合、ＵＳＢハブ３０のハブ識別情報のプロダクトＩＤが「ＢＢＢＢ」のときにはスキャン速度が向上するアップグレードコマンドを、「ＣＣＣＣ」のときには解像度が向上するアップグレードコマンドを、「ＤＤＤＤ」のときにはモノクロ対応からフルカラー対応になるアップグレードコマンドをスキャナ５０へ送信してもよい。こうすれば、ＵＳＢハブ３０の種類に応じてスキャナ５０を能力別にアップグレードすることができる。また、能力別にアップグレードするにあたり、一つの能力だけでなく複数の能力をアップグレードしてもよい。
【表３】
0005130984.tif 000004
【００３９】
上述した実施形態では、ＵＳＢデバイスとしてスキャナ５０を例示したが、スキャナ以外のデバイスについても本発明を適用することができる。例えば、インクジェットプリンタやレーザプリンタにつき、印刷速度を低速から高速へアップブレードしたり、解像度を低解像度から高解像度やアップグレードしたり、モノクロ対応からフルカラー対応へアップグレードしてもよい。
【００４０】
上述した実施形態では、アップグレード処理ルーチンのステップＳ２３０でアップグレードコマンド添付フラグＦｃを値１とし、その後スキャン処理実行コマンドを送信するときにアップグレードコマンドを一緒に送信するものとしたが、ステップＳ２３０でアップグレードコマンドをスキャナ５０へ送信してもよい。この場合、アップグレードコマンドを受信したスキャナ５０は、アップグレードフラグＦｕをゼロから値１にセットし、電源がオフされるかＵＳＢハブ３０又はパソコン１０とのＵＳＢ接続が断たれたときにアップグレードフラグＦｕをゼロにリセットする。また、スキャナ５０は、アップブレードフラグＦｕがゼロのときにはスキャン速度を３０枚／分に設定し、値１のときにはスキャン速度をアップグレードして６０枚／分に設定する。このようにしても上述した実施形態と同様の効果が得られる。
【００４１】
上述した実施形態では、上流ポート３２及び下流ポート３４をそれぞれ１つずつ持つＵＳＢハブ３０を例示したが、複数の下流ポートを持つＵＳＢハブを採用してもよい。この場合、パソコン１０は、複数の下流ポートのそれぞれに接続されたＵＳＢデバイスとＵＳＢ規格に準拠した通信を行うことにより、各下流ポートに接続されたＵＳＢデバイスを認識すると共に、各ＵＳＢデバイスのデバイス識別情報を取得する。このため、各ＵＳＢデバイスごとに、ハブ識別情報とデバイス識別情報との組合せがアップグレードを許可する組合せか否かを判定し、肯定判定されたＵＳＢデバイスについてアップグレードコマンドを送信すればよい。なお、この場合、一つのＵＳＢハブに対して複数のＵＳＢデバイスのアップグレードを認めることになるが、その分、ベンダーは販売価格を高価に設定すればよい。
【００４２】
上述した実施形態では、ＵＳＢホストとしてパソコン１０を例示したが、パソコン１０以外のＵＳＢホストについても本発明を適用することができる。
【００４３】
上述した実施形態のＵＳＢハブ３０は、１つの上流ポート３２と１つの下流ポート３４とを備えるものであるため、ＵＳＢ延長コードと称してもよい。
【図面の簡単な説明】
【００４４】
【図１】本実施形態のシステム構成の概略を示す説明図である。
【図２】ＵＳＢデバイス認識ルーチンのフローチャートである。
【図３】アップグレード処理ルーチンのフローチャートである。
【符号の説明】
【００４５】
１０  パソコン、１１  ＵＳＢポート、１２  ＣＰＵ、１４  ＲＯＭ、１６  ＲＡＭ、１８  ＨＤＤ、１８ａ  スキャナドライバ、１８ｂ  ＵＳＢシステムソフトウェア、２０  ＵＳＢホストコントローラ、２２  バス、２４  ディスプレイ、２６  キーボード、２８  マウス、３０  ＵＳＢハブ、３２  上流ポート、３４  下流ポート、３６  ハブ制御部、３８  メモリ、５０  スキャナ、５１  スキャナ制御部、５２  ＣＰＵ、５４  ＲＯＭ、５６  ＲＡＭ、５８  ＵＳＢデバイスコントローラ、６０  バス、６２  スキャナ機構、６４  ガラス板、６６  カバー、６８  オートシートフィーダ、７０  キャリッジ、７２  光源、７４  ミラー、７６  集光レンズ、７８  イメージセンサ、８０  ＵＳＢポート、Ｄ  原稿。
【図１】
0005130984.tif 000005
【図２】
0005130984.tif 000006
【図３】
0005130984.tif 000007