(57)【要約】【課題】周辺装置からソフトウエアをコンピュータにインストールできるようにしつつ、周辺装置に記憶されているソフトウエアを更新できるようにする。【解決手段】周辺装置は、情報処理装置の外部記憶装置としての機能と該情報処理装置の外部周辺機器としての機能とを備えている。周辺装置は、外部周辺機器としての機能を情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、記憶手段に記憶されている制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが情報処理装置に記憶されているときに、情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信して、記憶手段に書き込む書き込み手段とを含む。【選択図】図４
2010108426.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の外部記憶装置としての機能と該情報処理装置の外部周辺機器としての機能とを備えた周辺装置であって、
前記外部周辺機器としての機能を前記情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、前記外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが前記情報処理装置に記憶されているときに、前記情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信して、前記記憶手段に書き込む書き込み手段と
を含むことを特徴とする周辺装置。
【請求項２】
前記記憶手段に記憶されている制御ソフトウエアモジュールと同一バージョンの制御ソフトウエアモジュールまたはより新しいバージョンの制御ソフトウエアモジュールのいずれもが前記情報処理装置にインストールされていないときに、前記記憶手段に記憶されている制御ソフトウエアモジュールを前記情報処理装置にインストールするために転送する転送手段
をさらに含むことを特徴とする請求項１に記載の周辺装置。
【請求項３】
前記情報処理装置に前記外部記憶装置として認識させるか、前記外部周辺機器として認識させるかを切り替える切り替え手段をさらに備え、
前記記憶手段は、前記制御ソフトウエアモジュールのインストールを制御するコンピュータプログラムを記憶しており、
前記コンピュータプログラムは、前記周辺装置を前記外部記憶装置として認識している前記情報処理装置によって前記記憶手段から読み出されて実行されるコンピュータプログラムであり、
さらに、前記コンピュータプログラムは、前記情報処理装置を、
前記記憶手段に記憶されている制御ソフトウエアモジュールのバージョンと、前記情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンとを比較する比較手段と、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールが前記情報処理装置にインストールされていないとき、または該制御ソフトウエアモジュールよりも古いバージョンの制御ソフトウエアモジュールが前記情報処理装置にインストールされているときに、前記記憶手段から制御ソフトウエアモジュールを読み出して前記情報処理装置にインストールするインストール手段と、
前記情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンが前記記憶手段に記憶されている制御ソフトウエアモジュールのバージョンよりも古くないと判定されたとき、または、前記記憶手段から制御ソフトウエアモジュールが前記情報処理装置にインストールされたときに、前記切り替え手段に切り替え命令を送信することで、前記周辺装置を前記外部周辺機器として認識させる認識制御手段
として機能させるコンピュータプログラムであることを特徴とする請求項１または２に記載の周辺装置。
【請求項４】
前記情報処理装置は、前記周辺装置が接続された直後は該周辺装置をＣＤドライブとして認識し、
前記コンピュータプログラムは、前記記憶手段のうち前記ＣＤドライブとして認識される記憶領域に記憶されているＡｕｔｏｒｕｎ．ｉｎｆによって自動的に起動されるように記述されていることを特徴とする請求項３に記載の周辺装置。
【請求項５】
前記コンピュータプログラムは、前記情報処理装置を、
前記記憶手段に記憶された制御ソフトウエアモジュールの更新履歴を記録する記録手段として機能させることを特徴とする請求項３または４に記載の周辺装置。
【請求項６】
前記周辺装置は、画像を読み取る画像取装置であり、
前記制御ソフトウエアモジュールは、前記画像取装置を制御するためのドライバソフトウエアまたはアプリケーションソフトウエアであることを特徴とする請求項１ないし５のいずれか１項に記載の周辺装置。
【請求項７】
情報処理装置の外部記憶装置としての機能と、該情報処理装置の外部周辺機器としての機能と、該外部周辺機器としての機能を前記情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに前記情報処理装置の外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、を備えた周辺装置の制御方法であって、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが前記情報処理装置に記憶されているときに、前記情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信する受信工程と、
前記新しいバージョンの制御ソフトウエアモジュールを前記記憶手段に書き込む書き込み工程と
を含むことを特徴とする周辺装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に接続されて利用される周辺装置に関する。
【背景技術】
【０００２】
イメージスキャナ、プリンタまたは複合機などの周辺装置は広く普及している。これらの周辺装置に接続するインターフェースとして、シリアルインタフェース、パラレルインタフェース、ＵＳＢ、ＩＥＥＥ１３９４、ＬＡＮなどが知られている。
【０００３】
ところで、周辺装置をパーソナルコンピュータ（ＰＣ）上で使用できるようにするためには、その周辺装置用のデバイスドライバやアプリケーションソフトウエアをパーソナルコンピュータにインストールしなければならない（特許文献１）。
【特許文献１】特開２００４−３３４４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、周辺装置用のデバイスドライバやアプリケーションソフトウエアは、一般に、ＣＤ−ＲＯＭにより頒布されている。よって、このＣＤ−ＲＯＭを用意しなければ、デバイスドライバをインストールすることができなかった。例えば、ＣＤ−ＲＯＭを紛失してしまうと、デバイスドライバをインストールすることができなかった。インターネットを介してデバイスドライバを入手できるケースもあるが、そのためにインターネットに接続できる環境が必要である。また、デバイスドライバを提供しているＷＥＢサイトのＵＲＬや、周辺装置の種類や名称を正確に入力しなければならず、面倒であった。とりわけ、ユーザによっては、１つの周辺装置を自己のオフィースや自宅にあるＰＣだけでなく、出張先のＰＣに接続して使用することもある。このような場合、毎度毎度、ドライバを格納したＣＤ−ＲＯＭを持参することは面倒であろう。
【０００５】
そこで、本願発明者は、周辺装置に予め必要なソフトウエアを格納しておき、周辺装置からパーソナルコンピュータにソフトウエアをインストールする発明を想起した。すなわち、初期状態において周辺装置を外部記憶装置（例：ＵＳＢメモリやＵＳＢ接続型ＣＤ−ＲＯＭドライブなど）としてパーソナルコンピュータに認識させ、デバイスドライバやアプリケーションソフトウエアを周辺装置からパーソナルコンピュータにインストールし、インストールが完了すると、パーソナルコンピュータは、周辺装置を外部記憶装置から本来の機能（例：スキャナやプリンタなどの外部周辺機器）に切り替える。このような構成には、事前にデバイスドライバやアプリケーションソフトウエアをパーソナルコンピュータにインストールしておく必要がなくなるといった利点がある。すなわち、製品に添付されていたＣＤ−ＲＯＭを用意する必要はないし、ＣＤ−ＲＯＭを紛失してしまってもよい。究極的には、ＣＤ−ＲＯＭを製品に添付する必要もないだろう。さらに、インターネットに接続する必要もない。
【０００６】
しかし、デバイスドライバやアプリケーションソフトウエアは、月日が経つにつれてバージョンアップが進むため、周辺装置に格納されているソフトウエアが最新のソフトウエアでなくなってしまうことが予想される。最新のソフトウエアは、一般に、機能の向上や動作の安定性の向上が図られているため、ユーザは最新のソフトウエアを使用することが望ましい。このような最新のソフトウエアは、インターネットからダウンロードされ、パーソナルコンピュータにインストールされることになろう。周辺装置は、特定のパーソナルコンピュータだけでなく、他のパーソナルコンピュータに接続されることもある。よって、周辺装置に格納されているソフトウエアも最新のソフトウエアに維持されていれば、周辺装置をどのようなパーソナルコンピュータに接続しても最新のソフトエアが使用されることになろう。
【０００７】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。例えば、本発明は、周辺装置からソフトウエアをコンピュータにインストールできるようにしつつ、周辺装置に記憶されているソフトウエアを更新できるようにすることを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【０００８】
本願発明は、例えば、情報処理装置の外部記憶装置としての機能と該情報処理装置の外部周辺機器としての機能とを備えた周辺装置に適用できる。周辺装置は、
前記外部周辺機器としての機能を前記情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、前記外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが前記情報処理装置に記憶されているときに、該新しいバージョンの制御ソフトウエアモジュールを前記情報処理装置から受信して、前記記憶手段に書き込む書き込み手段と
を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、周辺装置からソフトウエアをコンピュータにインストールできるようにしつつ、周辺装置に記憶されているソフトウエアを更新できるようになる。
【発明を実施するための最良の形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１１】
＜本発明の基本的な技術思想＞
はじめに本発明の基本的な技術思想について列挙する。
【００１２】
［観点１］
情報処理装置の外部記憶装置としての機能と該情報処理装置の外部周辺機器としての機能とを備えた周辺装置であって、
前記外部周辺機器としての機能を前記情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、前記外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが前記情報処理装置に記憶されているときに、前記情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信して、前記記憶手段に書き込む書き込み手段と
を含むことを特徴とする周辺装置。
【００１３】
本発明によれば、周辺装置から制御ソフトウエアモジュールを情報処理装置にインストールできるため、従来のように、事前に制御ソフトウエアモジュールをインストールしておく必要はない。同様に、制御ソフトウエアモジュールを記憶したＣＤ−ＲＯＭなどを用意する手間を省ける。このように、インストール作業が非常に簡略化されるメリットがある。さらに、パーソナルコンピュータ側により新しいバージョンのソフトウエアが存在するときは、それを周辺装置に書き込む。よって、周辺装置に格納されているソフトウエアをより新しいものに更新することが可能となる。
【００１４】
［観点２］
前記記憶手段に記憶されている制御ソフトウエアモジュールと同一バージョンの制御ソフトウエアモジュールまたはより新しいバージョンの制御ソフトウエアモジュールのいずれもが前記情報処理装置にインストールされていないときに、前記記憶手段に記憶されている制御ソフトウエアモジュールを前記情報処理装置にインストールするために転送する転送手段
をさらに含むことを特徴とする観点１に記載の周辺装置。
【００１５】
本発明によれば、情報処理装置に制御ソフトウエアモジュールがインストールされていないケースや、情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンが相対的に古いケースに限り、周辺装置から情報処理装置への制御ソフトウエアモジュールのインストールが実行される。よって、情報処理装置が記憶している制御ソフトウエアモジュールが相対的に新しいにもかかわらず、古い制御ソフトウエアモジュールを上書きインストールしてしまう事態を回避できよう。
【００１６】
［観点３］
前記情報処理装置に前記外部記憶装置として認識させるか、前記外部周辺機器として認識させるかを切り替える切り替え手段をさらに備え、
前記記憶手段は、前記制御ソフトウエアモジュールのインストールを制御するコンピュータプログラムを記憶しており、
前記コンピュータプログラムは、前記周辺装置を前記外部記憶装置として認識している前記情報処理装置によって前記記憶手段から読み出されて実行されるコンピュータプログラムであり、
さらに、前記コンピュータプログラムは、前記情報処理装置を、
前記記憶手段に記憶されている制御ソフトウエアモジュールのバージョンと、前記情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンとを比較する比較手段と、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールが前記情報処理装置にインストールされていないとき、または該制御ソフトウエアモジュールよりも古いバージョンの制御ソフトウエアモジュールが前記情報処理装置にインストールされているときに、前記記憶手段から制御ソフトウエアモジュールを読み出して前記情報処理装置にインストールするインストール手段と、
前記情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンが前記記憶手段に記憶されている制御ソフトウエアモジュールのバージョンよりも古くないと判定されたとき、または、前記記憶手段から制御ソフトウエアモジュールが前記情報処理装置にインストールされたときに、前記切り替え手段に切り替え命令を送信することで、前記周辺装置を前記外部周辺機器として認識させる認識制御手段
として機能させるコンピュータプログラムであることを特徴とする観点１または２に記載の周辺装置。
【００１７】
本発明によれば、周辺装置に記憶されているコンピュータプログラムによって、古いバージョンの制御ソフトウエアモジュールが情報処理装置に存在すると判定されると、周辺装置から制御ソフトウエアモジュールが情報処理装置にインストールされることになる。逆に、同一またはより新しい制御ソフトウエアモジュールが情報処理装置に存在すれば、インストールは実行されない。とりわけ、周辺装置は、当初、外部記憶装置（例：ＵＳＢメモリやＵＳＢタイプのＣＤドライブなど）として認識されているため、情報処理装置に簡単な手法で、インストール制御用のコンピュータプログラムを転送することができる。そして、同一または新しい制御ソフトウエアモジュールが存在しているか、または、インストールが完了すれば、周辺装置が、外部周辺機器（例：イメージスキャナなど）として認識される。このように、情報処理装置が、周辺装置の認識を切り替えることで、ユーザの負担を緩和しつつ、周辺装置を外部周辺機器として利用できるようになる。
【００１８】
［観点４］
前記情報処理装置は、前記周辺装置が接続された直後は該周辺装置をＣＤドライブとして認識し、
前記コンピュータプログラムは、前記記憶手段のうち前記ＣＤドライブとして認識される記憶領域に記憶されているＡｕｔｏｒｕｎ．ｉｎｆによって自動的に起動されるように記述されていることを特徴とする観点３に記載の周辺装置。
【００１９】
Ａｕｔｏｒｕｎ．ｉｎｆは、自動的にコンピュータプログラムを起動するためのファイルとしてよく知られているため、比較的に簡単な方法で、本発明を実現できる。
【００２０】
［観点５］
前記コンピュータプログラムは、前記情報処理装置を、
前記記憶手段に記憶されている制御ソフトウエアモジュールの更新履歴を記録する記録手段として機能させることを特徴とする観点３または４に記載の周辺装置。
【００２１】
本発明によれば、周辺装置に記憶されている制御ソフトウエアモジュールの更新履歴を記録することで、ユーザは、周辺装置に記憶されている制御ソフトウエアモジュールの更新の変遷を把握することができる。
【００２２】
［観点６］
前記周辺装置は、画像を読み取る画像取装置であり、
前記制御ソフトウエアモジュールは、前記画像取装置を制御するためのドライバソフトウエアまたはアプリケーションソフトウエアであることを特徴とする観点１ないし５のいずれか１項に記載の周辺装置。
【００２３】
本発明は、画像読取装置において、好適に利用されよう。なぜなら、画像読取装置などの周辺装置は、様々なパーソナルコンピュータに接続されて利用される可能性があるからである。なお、画像読取装置は単なる一例に過ぎず、プリンタ、デジタルカメラ、ビデオカメラ、音楽再生装置、その他の周辺装置に本発明を適用できることはいうまでもない。
【００２４】
［観点７］
情報処理装置の外部記憶装置としての機能と、該情報処理装置の外部周辺機器としての機能と、該外部周辺機器としての機能を前記情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに前記情報処理装置の外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、を備えた周辺装置の制御方法であって、
前記記憶手段に記憶されている前記制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが前記情報処理装置に記憶されているときに、前記情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信する受信工程と、
前記新しいバージョンの制御ソフトウエアモジュールを前記記憶手段に書き込む書き込み工程と
を含むことを特徴とする周辺装置の制御方法。
【００２５】
本発明の制御方法によれば、観点１と同様の効果が得られる。
【００２６】
図１は、コンピュータとスキャナ装置とのソフトウエアブロック図である。パーソナルコンピュータ１００は、例えば、一般的なパーソナルコンピュータ（ＰＣ）などのホストコンピュータである。ここでは、情報処理装置の一例として、パーソナルコンピュータ１００について説明する。
【００２７】
パーソナルコンピュータ１００には、オペレーティングシステム１０１、ファイルシステム２０１、ＵＳＢマスストレージドライバ２０２及びＵＳＢドライバ１０３がインストールされている。オペレーティングシステム１０１は、いわゆるＯＳのことであり、パーソナルコンピュータ１００の基本ソフトウエアである。ここでは、マイクロソフトウインドウズ（登録商標）オペレーティングシステムがＯＳとして採用されているものとする。ファイルシステム２０１は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。ＵＳＢマスストレージドライバ２０２は、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＤＶＤ−ＲＡＭ、ＵＳＢメモリなどのマスストレージを制御するためのソフトウエアである。ＵＳＢドライバ１０３は、ＵＳＢインターフェースに接続されたＵＳＢデバイスを制御するためのソフトウエアである。なお、これらのソフトウエアはＯＳの一部であってもよい。
【００２８】
スイッチ２２０を切り替えることで、ＵＳＢマスストレージドライバ２０２以外のデバイスドライバへ接続を切り替えることができるものとする。スイッチ２２０は、ソフトウエアで実現されてもよいし、電気的に切り替え可能な電子スイッチを用いてハードウエアによって実現されてよい。また、ソフトウエア及びハードウエアの両方を用いてスイッチ２２０が実現されてもよい。
【００２９】
スキャナ装置１０６は、情報処理装置の外部記憶装置としての機能と情報処理装置の外部周辺機器としての機能とを備えた周辺装置の一例である。スキャナ装置１０６には、ＵＳＢスキャナクラスインターフェース１０８、ＣＤドライブインターフェース２０５、ＵＳＢマスストレージクラスインターフェース２０６、スイッチ２２１、オートランファイル２０７、判断アプリケーション２２４、インストーラ２２５、キャプチャアプリケーション２３１、ＵＳＢスキャナドライバ２２６、スキャナドライバ更新履歴情報ファイル２２７などを備えている。スキャナドライバ更新履歴情報ファイル２２７は、ＵＳＢスキャナドライバ２２６の更新履歴を保持するためのファイルである。
【００３０】
ＵＳＢスキャナクラスインターフェース１０８は、スキャナ装置１０６をＵＳＢ接続型の画像読取装置として使用するためのインターフェースである。ＣＤドライブインターフェース２０５は、スキャナ装置１０６に備えられているメモリ（フラッシュメモリ、ＥＥＰＲＯＭなど）の少なくとも１部をＣＤドライブとして使用するためのソフトウエアである。ＵＳＢマスストレージクラスインターフェース２０６は、ＣＤドライブインターフェース２０５を介してメモリをＵＳＢマスストレージとして使用するためのソフトウエアである。スイッチ２２１は、パーソナルコンピュータに接続されるインターフェースを、ＵＳＢマスストレージクラスインターフェース２０６と、ＵＳＢスキャナクラスインターフェース１０８とのいずれか一方に切り替えるためのスイッチである。スイッチ２２１は、情報処理装置に外部記憶装置として認識させるか、外部周辺機器として認識させるかを切り替える切り替え手段の一例である。スイッチ２２１は、ソフトウエアによって実現されてもよいし、ハードウエアによって実現されてもよい。また両者の組み合わせでもよい。
【００３１】
オートランファイル２０７は、例えば、Ａｕｔｏｒｕｎ．ｉｎｆなどで、スキャナ装置１０６がＣＤドライブとして認識されたときに、パーソナルコンピュータによって自動的に読み出されるファイルである。オートランファイル２０７の内部には、自動的に起動すべきソフトウエアを指定するための記述が含まれている。
【００３２】
判断アプリケーション２２４は、スキャナ装置１０６用のスキャナドライバやキャプチャアプリケーションなどがパーソナルコンピュータにインストールされているかどうかを判定するコンピュータプログラムである。また、判断アプリケーション２２４は、記憶手段に記憶されている制御ソフトウエアモジュールのバージョンと、情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンとを比較する比較手段の一例である。なお、判断アプリケーション２２４は、制御ソフトウエアモジュールのインストールを制御するコンピュータプログラムの一例である。また、判断アプリケーション２２４やインストーラ２２５は、周辺装置を外部記憶装置として認識しているパーソナルコンピュータ（情報処理装置）によって記憶手段から読み出されてＲＡＭ３２等にロードされ実行されるコンピュータプログラムである。
【００３３】
インストーラ２２５は、ＵＳＢスキャナドライバ２２６やキャプチャアプリケーション２３１をパーソナルコンピュータにインストールするためのコンピュータプログラムである。よって、判断アプリケーション２２４、インストーラ２２５及びＣＰＵ１２１は、記憶手段に記憶されている制御ソフトウエアモジュールが情報処理装置にインストールされていないとき、または記憶手段に記憶されている制御ソフトウエアモジュールよりも古いバージョンの制御ソフトウエアモジュールが情報処理装置にインストールされているときに、記憶手段から制御ソフトウエアモジュールを読み出して情報処理装置にインストールするインストール手段の一例である。
【００３４】
キャプチャアプリケーション２３１は、スキャナ装置１０６によって読み取られた画像データを編集したり、任意の圧縮形式のファイルに変換したりするためのコンピュータプログラムである。ＵＳＢスキャナドライバ２２６は、パーソナルコンピュータがパーソナルコンピュータに接続されたスキャナ装置１０６を制御するためのコンピュータプログラムである。両者は、必要に応じてパーソナルコンピュータ１００によって記憶手段から読み出され、インストーラ２２５によってパーソナルコンピュータ１００にインストールされる。
【００３５】
図２は、キャプチャアプリケーションおよびスキャナドライバをインストールした状態のパーソナルコンピュータとスキャナ装置とについてのソフトウエアブロック図である。すでに説明した箇所には同一の参照符号を付与することで、説明を簡潔にする。
【００３６】
図１と比較すると、図２では、パーソナルコンピュータにキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がインストールされている。スイッチ２２１がパーソナルコンピュータ１００によって実行されている判断アプリケーション２２４によって図２のように切り替えられると、ＵＳＢスキャナクラスインターフェース１０８が有効になる。パーソナルコンピュータ１００は、スキャナ装置１０６が接続されたことを認識し、スイッチ２２０を切り替える。これにより、ＵＳＢドライバ１０３とＵＳＢスキャナドライバ１０２が結合される。パーソナルコンピュータ１００は、ＵＳＢスキャナドライバ１０２やキャプチャアプリケーション２２２を使用してスキャナ装置１０６を制御できるようになる。
【００３７】
図３は、パーソナルコンピュータとスキャナ装置とについてのハードウエアブロック図である。
【００３８】
パーソナルコンピュータ１００は、ＣＰＵ１２１、ＲＯＭ１２３、ＲＡＭ１２４、ハードディスクドライブ１２２、ＵＳＢインターフェース１０４で構成される。パーソナルコンピュータ１００は、ＵＳＢケーブル１０５を介してスキャナ装置１０６と接続される。また、パーソナルコンピュータ１００には、キーボード／マウス１２５とディスプレイ１２６が接続されている。
【００３９】
パーソナルコンピュータ１００に電力が投入されると、ＣＰＵ１２１は、ＲＯＭ１２３からファームウエアを読み出して起動し、ハードディスクドライブ１２２からマイクロソフトウインドウズ（登録商標）等のオペレーティングシステム１０１を起動する。ＯＳなどの必要なソフトウエアは、ＲＡＭ１２４にロードされる。
【００４０】
一方、スキャナ装置１０６は、ＣＰＵ１１０、ＲＯＭ１２７、ＲＡＭ２０３、画像読み取り部１１２、ＵＳＢコントローラ１２８、ＵＳＢインターフェース１０７で構成され、スキャナ装置１０６を制御する不図示のファームウエアがＲＯＭ１２７から起動する。
【００４１】
ＲＯＭ１２３は、外部周辺機器としての機能を情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、外部記憶装置として記憶領域を提供する記憶手段の一例である。ＲＯＭ１２３は、例えば、純粋なリードオンリーメモリ、ＥＥＰＲＯＭ、ＳＲＡＭ、フラッシュメモリなどを組み合わせて実現されている。ＲＡＭ１２４は、例えば、ＤＲＡＭなどである。
【００４２】
パーソナルコンピュータ１００上のオペレーティングシステム１０１は、ＵＳＢインターフェース１０４にＵＳＢケーブル１０５を介して何らかの周辺装置が接続されたことを検出すると、周辺装置のクラスインターフェースにアクセスし、周辺装置の種類を確定する。
【００４３】
ここで、スキャナ装置１０６は、ＣＰＵ１２１及びオペレーティングシステム１０１にマスストレージデバイスクラスとして認識してもらうために、ＵＳＢマスストレージクラスインターフェース２０６を備えている。また、スキャナ装置１０６は、ＣＰＵ１２１やオペレーティングシステム１０１に、スキャナデバイスクラスとして認識してもらうために、ＵＳＢスキャナクラスインターフェース１０８を有している。これら２つのクラスインターフェースは、スイッチ２２１を矢印Ｂの方向に切り替えることで、択一的に選択される。
【００４４】
一方、パーソナルコンピュータ１００上で動作するオペレーティングシステム１０１は、標準で、マスストレージクラスのＵＳＢデバイスをサポートしている。すなわち、オペレーティングシステム１０１がマスストレージクラスのＵＳＢデバイスドライバ（ＵＳＢマスストレージドライバ２０２）を含んでいるため、パーソナルコンピュータ１００へ特別なドライバ等をインストールせずに、ＣＰＵ１２１は、マスストレージクラスのＵＳＢデバイスにアクセスできる。また、マスストレージクラスデバイスへの標準アクセスは、オペレーティングシステム１０１を使用して、管理者権限なしに実行可能である。
【００４５】
このように、パーソナルコンピュータ１００にスキャナ装置１０６を接続すると、接続の時点ではスイッチ２２１はＵＳＢマスストレージクラスインターフェース２０６に切り替えられているため、パーソナルコンピュータ１００へ特別なドライバ等をインストールすることなく、スキャナ装置１０６は、マスストレージデバイスとしてオペレーティングシステム１０１に認識され、パーソナルコンピュータからのアクセスが可能となる。これは、予めＵＳＢマスストレージドライバ２０２がパーソナルコンピュータにインストールされており、かつ、スキャナ装置１０６がＵＳＢマスストレージクラスインターフェース２０６を有しているためである。
【００４６】
なお、パーソナルコンピュータ１００内のスイッチ２２０を矢印Ａの方向に切り替えることで、ＵＳＢマスストレージドライバ２０２以外のドライバをＵＤＢドライバに接続することができる。このようなスイッチ２２０は、ソフトウエアによって実現されていてもよいし、ハードウエアによって実現されていてもよく、例えばＵＳＢインターフェース１０４を備えたパーソナルコンピュータ１００の標準的な機能を表現したものと考えてもよい。
【００４７】
パーソナルコンピュータ１００にスキャナ装置１０６が接続されると、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＵＳＢインターフェース１０４により何らかの周辺装置が接続されたことを検知する。ＵＳＢインターフェース１０４は、ＵＳＢケーブル１０５を介して、スキャナ装置１０６のＵＳＢインターフェース１０７にアクセスする。
【００４８】
この際、オペレーティングシステム１０１は、どのような周辺装置が接続されたのかを判別するため、コントロール転送のセットアップステージにて、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを発行する。スキャナ装置１０６のＵＳＢインターフェース１０７は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを受信すると、要求されたディスクリプタを返す。ディスクリプタは、デバイスの種類や特性や属性などの情報を表現するために使用される情報であり、この情報のフォーマットは予め定義されている。
【００４９】
オペレーティングシステム１０１は、スキャナ装置１０６から受信したＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストのうち、標準デバイスディスクリプタ、標準構成（コンフィグレーション）ディスクリプタ、標準インターフェースディスクリプタによって、接続されたデバイスの種類や特性や属性などの情報を取得する。
【００５０】
スキャナ装置１０６のＣＰＵ１１０は、パーソナルコンピュータ１００からＵＳＢインターフェース１０７へのアクセスを検出すると、スイッチ２２１を切り替え、初期インターフェースとして、ＵＳＢマスストレージクラスインターフェース２０６を選択する。なお、スイッチ２２１は、デフォルトの状態でＵＳＢマスストレージクラスインターフェース２０６が有効となるように設定されていてもよい。このように、スキャナ装置１０６がパーソナルコンピュータ１００に接続された直後において、パーソナルコンピュータ１００は、ＵＳＢマスストレージクラスインターフェース２０６にアクセスする。
【００５１】
オペレーティングシステム１０１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６にアクセスしたことを認識すると、スイッチ２２０を切り替え、ＵＳＢドライバ１０３とＵＳＢマスストレージドライバ２０２とを接続する。これにより、ＵＳＢインターフェース１０４は、ＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセス可能になる。
【００５２】
スキャナ装置１０６は、前述のように初期状態においてスイッチ２２１がＵＳＢマスストレージクラスインターフェース２０６に切り替えられているため、オペレーティングシステム１０１にマスストレージクラスデバイスとして認識されるようになっている。そのため、パーソナルコンピュータ１００は、スキャナ装置１０６のＵＳＢインターフェース１０７、ＵＳＢマスストレージクラスインターフェース２０６、ＣＤドライブインターフェース２０５を介して、スキャナ装置１０６にアクセスができる。オペレーティングシステム１０１への管理者権限のログインを要求されることはない。ただし、この状態で、パーソナルコンピュータがアクセスできるのは、スキャナ装置１０６が備える外部記憶装置としての機能のみである。
【００５３】
上述したように、スキャナ装置１０６のＲＯＭ１２７には、オペレーティングシステム１０１上で動作するキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２をインストールするインストーラ２２５と、ＵＳＢスキャナドライバ２２６と、キャプチャアプリケーション２３１と、スキャナドライバ更新履歴情報ファイル２２７と、パーソナルコンピュータ１００にＵＳＢスキャナドライバ１０２がインストールされているかどうかを判断する判断アプリケーション２２４と、スキャナ装置１０６をパーソナルコンピュータ１００に接続した際に判断アプリケーション２２４を自動実行するための記述を備えたオートランファイル２０７とが予め保存されている。
【００５４】
なお、ＲＯＭ１２７上のインストーラ２２５とＵＳＢスキャナドライバ２２６とキャプチャアプリケーション２３１と判断アプリケーション２２４とオートランファイル２０７とスキャナドライバ更新履歴情報ファイル２２７とは、ＣＤドライブインターフェース２０５を介して、パーソナルコンピュータ１００からアクセスできる。
【００５５】
上述したように、オペレーティングシステム１０１は、ＣＤドライブ内にデータＣＤが挿入された場合、「ａｕｔｏｒｕｎ．ｉｎｆ」と呼ばれる、データＣＤ上のファイルを検出して自動実行する機能を備えている。よって、オートランファイル２０７は、ＣＤドライブインターフェース２０５を介してアクセスされ、ＣＰＵ１２１によって自動的に実行されるものとする。
【００５６】
スキャナ装置１０６のＣＰＵ１１０は、パーソナルコンピュータ１００に接続した時点ではＣＤドライブ内にデータＣＤが挿入されていないと見なされる状態となるように制御し、その後に、ＣＤが挿入されたと見なされる状態へと遷移する制御を行う。例えば、スキャナ装置１０６のＣＰＵ１１０は、パーソナルコンピュータ１００に接続されたと認識した後、ＵＳＢインターフェース１０７を介して、データＣＤが挿入されたことをパーソナルコンピュータ１００に仮想的に検出させるための信号を送信する。この状態遷移が必要となるのは、次の理由のためである。すなわち、一般的に、パーソナルコンピュータ１００のＣＰＵ１２１は、ＣＤが挿入されたことを検出しなければ、データＣＤの内容を読みに行かないからである。これにより、ＣＰＵ１２１は、外部記憶装置（ここではＵＳＢ接続タイプのＣＤＲＯＭドライブ）として認識しているスキャナ装置１０６からオートランファイル２０７を読み出して自動実行することができる。
【００５７】
さらに、パーソナルコンピュータ１００は、スキャナ装置１０６内に保存してあるファイルに対応するテーブルをファイルシステム２０１のファイルフォルダ内に形成する。このファイルは、上述したインストーラ２２５とＵＳＢスキャナドライバ２２６とキャプチャアプリケーション２３１と判断アプリケーション２２４とオートランファイル２０７とスキャナドライバ更新履歴情報ファイル２２７などである。
【００５８】
＜インストール動作＞
図４は、制御ソフトウエアモジュールのインストール処理の一例を示したフローチャートである。本インストール処理の主要な制御は、オートランファイル２０７および判断アプリケーション２２４がＣＤドライブインターフェース等を介して、パーソナルコンピュータ１００のＲＡＭ１２４にロードされて実行されると、ＣＰＵ１２１が行うようになっている。
【００５９】
ステップＳ３００１で、パーソナルコンピュータ１００のＣＰＵ１２１は、オペレーティングシステム１０１にしたがって、ＵＳＢインターフェース１０４にて何らかの周辺装置の接続を検知したか否かを判定する。何らかの周辺装置の接続を検知すると、ステップＳ３００２に進む。
【００６０】
ステップＳ３００２で、ＣＰＵ１２１は、図示しない標準的な周辺装置のクラスインターフェースにＵＳＢドライバ１０３を接続するよう、スイッチ２２０を切り替える。
【００６１】
図５は、パーソナルコンピュータ１００に接続された際にスキャナ装置において行われるマスストレージデバイスへの切り替え処理の詳細を示した図である。
【００６２】
ステップＳ９００１で、スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７を介してパーソナルコンピュータ１００と接続したことを検出したか否かを判定する。パーソナルコンピュータ１００との接続を検出すると、ステップＳ９００２に進む。
【００６３】
ステップＳ９００２で、ＣＰＵ１１０は、スイッチ２２１を切り替えて、初期インターフェースとしてＵＳＢマスストレージクラスインターフェース２０６を有効にする。
【００６４】
図４の説明に戻る。ステップＳ３００３で、ＣＰＵ１２１は、オペレーティングシステム１０１にしたがって、どのような周辺装置が接続されたのかを判別するため、周辺装置から情報を取得する。
【００６５】
図６は、パーソナルコンピュータにおいて行われるマスストレージデバイスを認識した状態への切り替え処理の詳細を示した図である。
【００６６】
ステップＳ８００１で、ＣＰＵ１２１は、オペレーティングシステム１０１にしたがって、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを発行する。これは、どのような周辺装置が接続されたのかを判別するため、周辺装置から情報を取得するためである。
【００６７】
一方、スキャナ装置１０６のＣＰＵ１１０は、ステップＳ９００３で、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを受信したか否かを判定する。ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを受信すると、ステップ９００４に進む。
【００６８】
ステップＳ９００４で、ＣＰＵ１１０は、ディスクリプタをパーソナルコンピュータ１００に送信する。ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストに対して返信する標準デバイスディスクリプタのデバイスクラスコード、あるいは、標準インターフェースディスクリプタのインターフェースクラスコードには、ＵＳＢマスストレージクラスコードが指定される。
【００６９】
ステップＳ８００２で、パーソナルコンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６が送信したディスクリプタを受信する。標準デバイスディスクリプタのデバイスクラスコード、あるいは、インターフェースクラスコードにて、ＵＳＢマスストレージクラスコードが指定される。これにより、ＣＰＵ１２１は、接続された周辺装置がマスストレージデバイスであると認識する。
【００７０】
ステップＳ３００４で、パーソナルコンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６から受信したディスクリプタを解析し、接続された周辺装置がマスストレージデバイスであると認識する。これは、ディスクリプタに標準デバイスディスクリプタのデバイスクラスコードまたはインターフェースクラスコードにて、ＵＳＢマスストレージクラスコードが指定されているためである。
【００７１】
ステップＳ３００５で、ＣＰＵ１２１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６にアクセスするため、スイッチ２２０を切り替える。これにより、予めオペレーティングシステム１０１に含まれているＵＳＢマスストレージドライバ２０２がＵＳＢドライバ１０３と結合される。また、ＣＰＵ１２１は、ＵＳＢインターフェース１０４及びＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセスする。
【００７２】
ステップＳ３００６で、ＣＰＵ１２１は、スキャナ装置１０６をＣＤドライブとして認識する。これは、スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢ  ＣＤドライブインターフェース２０５を有しているためである。このように、情報処理装置は、周辺装置が接続された直後はこの周辺装置をＣＤドライブとして認識することになる。
【００７３】
また、ＣＰＵ１２１は、ＣＤドライブとして機能しているスキャナ装置１０６の記憶領域に記憶されているファイルに対応したテーブルをファイルシステム２０１のファイルフォルダ内に保存する。このファイルは、インストーラ２２５、ＵＳＢスキャナドライバ２２６、キャプチャアプリケーション２３１、スキャナドライバ更新履歴情報ファイル２２７、判断アプリケーション２２４及びオートランファイル２０７などである。
【００７４】
図７は、ＣＤドライブに挿入されたと見なされる仮想的なデータＣＤに相当するフォルダの一例を示した図である。フォルダ３０４には、上述したインストーラ２２５、ＵＳＢスキャナドライバ２２６、キャプチャアプリケーション２３１、判断アプリケーション２２４、オートランファイル２０７及びスキャナドライバ更新履歴情報ファイル２２７が格納されている。ユーザは、パーソナルコンピュータ１００に接続されたキーボード／マウス１２５を使用して、フォルダ３０４を開き、さらに、スキャナドライバ更新履歴情報ファイル２２７をダブルクリックしてその内容を読むことができる。
【００７５】
ステップＳ３００７で、ＣＰＵ１２１は、ＣＤドライブにデータＣＤが挿入されたと判断し、オートランファイル２０７を読み出して実行する。オートランファイル２０７には、判断アプリケーション２２４を起動するための記述が存在している。このように、判断アプリケーション２２４は、記憶手段のうちＣＤドライブとして認識される記憶領域に記憶されているＡｕｔｏｒｕｎ．ｉｎｆによって自動的に起動されるように記述されている。
【００７６】
ステップＳ３００８で、ＣＰＵ１２１は、オートランファイル２０７にしたがって判断アプリケーション２２４を起動する。
【００７７】
ステップＳ３００９で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、ＵＳＢスキャナドライバ１０２がパーソナルコンピュータ１００にインストールされているかどうかを判断する。インストールされていないと判断すると、ステップＳ３０１２に進む。
【００７８】
ステップＳ３０１２で、ＣＰＵ１２１は、インストーラ２２５をスキャナ装置１０６から読み出して起動する。
【００７９】
ステップＳ３０１３で、ＣＰＵ１２１は、インストーラ２２５にしたがって、スキャナ装置１０６からキャプチャアプリケーション２３１およびＵＳＢスキャナドライバ２２６を読み出して、それぞれキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２としてパーソナルコンピュータ１００にインストールする。なお、スキャナ装置１０６のＣＰＵ１１０は、キャプチャアプリケーション２３１およびＵＳＢスキャナドライバ２２６をパーソナルコンピュータ１００へ転送する。このように、ＣＰＵ１１０は、記憶手段に記憶されている制御ソフトウエアモジュールと同一バージョンの制御ソフトウエアモジュールまたはより新しいバージョンの制御ソフトウエアモジュールのいずれもが情報処理装置にインストールされていないと判断アプリケーションにより判断して、パーソナルコンピュータ１００が転送を要求したときに、記憶手段に記憶されている制御ソフトウエアモジュールを情報処理装置にインストールするために転送する転送手段の一例である。なお、他の一例として、ＵＳＢコントローラ１２８にフラッシュメモリ等が接続されていてもよい。この場合はＵＳＢコントローラ１２８を転送手段とみなすこともできる。
【００８０】
ところで、ソフトウエアのインストールは、管理者権限を持つユーザがログインしていなければ、実行できない。すなわち、制限ユーザまたは一般ユーザは、ソフトウエアのインストールを実行できない。よって、管理者権限を持つユーザがログインしていなければ、ＣＰＵ１２１は、管理者権限を持つユーザがログインするよう促す必要がある。
【００８１】
図８は、管理者権限を持つユーザによるログインを求める旨のダイアログの一例を示した図である。
【００８２】
ＣＰＵ１２１は、現在のユーザが管理者権限を有していないと判定すると、このダイアログボックスをディスプレイ１２６に表示する。当該ダイアログには、ユーザＩＤの入力部１３０１と、パスワードの入力部１３０２とが配置されている。なお、管理者権限を持つユーザによるログインを求める旨のダイアログを表示する代わりに、ＣＰＵ１２１は、インストール作業を中止してもよい。同様に、ＣＰＵ１２１は、Ｃａｎｃｅｌボタンを押下されたことを検出したときも、インストール作業を中止する。その後、ステップＳ３０１６に進む。
【００８３】
ステップＳ３００９でＵＳＢスキャナドライバ１０２がパーソナルコンピュータ１００にインストールされていると判断されると、ステップＳ３０１０に進む。
【００８４】
ステップＳ３０１０で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、パーソナルコンピュータに記憶されているＵＳＢスキャナドライバ１０２のバージョンと、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６のバージョンとを比較し、ＵＳＢスキャナドライバ１０２がより古いか否かを判定する。同様に、判断アプリケーション２２４は、スキャナ装置１０６に記憶されているキャプチャアプリケーション２３１のバージョンと、パーソナルコンピュータ１００に記憶されているキャプチャアプリケーション２２２のバージョンとを比較してもよい。パーソナルコンピュータにインストール済みのソフトウエアのバージョンがより古ければ、ステップＳ３０１２に進む。これにより、スキャナ装置１０６に記憶されているキャプチャアプリケーション２３１がパーソナルコンピュータ１００へ更新インストールされることになる。このように、複数の制御ソフトウエアモジュールが存在する場合、相対的に古い制御ソフトウエアモジュールのみがスキャナ装置１０６からパーソナルコンピュータ１００にインストールされることになる。すなわち、キャプチャアプリケーションのみが更新されることもあるし、ドライバのみが更新されることもある。
【００８５】
一方、パーソナルコンピュータ１００にインストールされているＵＳＢスキャナドライバ１０２がスキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６より古くなければ、ステップＳ３０１１に進む。
【００８６】
ステップＳ３０１１で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、パーソナルコンピュータに記憶されているＵＳＢスキャナドライバ１０２のバージョンと、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６のバージョンとを比較し、ＵＳＢスキャナドライバ１０２がより新しいか否かを判定する。パーソナルコンピュータにインストールされているＵＳＢスキャナドライバ１０２がスキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６より新しければ、ステップＳ３０１４に進む。
【００８７】
ステップＳ３０１４で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、パーソナルコンピュータ１００のハードディスクドライブ１２２からＵＳＢスキャナドライバ１０２を読み出し、スキャナ装置１０６のＲＯＭ１２７に上書きするために転送する。このようにＲＯＭ１２７はフラッシュメモリ等を用いて、書き換え可能な構成になっている。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７を介して受信したＵＳＢスキャナドライバ１０２をＲＯＭ１２７に書き込む。このように、ＣＰＵ１１０は、記憶手段に記憶されている制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが情報処理装置に記憶されているときに、情報処理装置から送信される新しいバージョンの制御ソフトウエアモジュールを受信して、記憶手段に書き込む書き込み手段の一例である。自動更新の対象となる複数の制御ソフトウエアモジュールが存在する場合、ＲＯＭ１２７に記憶されたものよりバージョンアップされていると判断された制御ソフトウエアモジュールのみがパーソナルコンピュータ１００からスキャナ装置１０６に送信されてくるので、ＲＯＭ１２７に上書きされることになる。すなわち、キャプチャアプリケーションのみが更新されることもあるし、ドライバのみが更新されることもある。なお、ＣＤドライブインタフェースが有効となった状態でソフトウエアの更新ができない場合、ＣＰＵ１２１及びＣＰＵ１１０は、ＣＤドライブインタフェースからＵＳＢメモリなどの書き込み可能なマスストレージインターフェースに切り替えることになろう。また、ソフトウエアの更新を可能とするために、読み取り専用のＣＤドライブとして認識されるのではなく、ＣＤ−Ｒドライブ等の読み書き可能なディスク装置に、ＣＤ−Ｒ等の読み書き可能なディスクが装填されているものとして認識されるように構成しても良い。
【００８８】
ステップＳ３０１５で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、スキャナドライバ更新履歴情報ファイル２２７に更新履歴を書き込む。このように、ＣＰＵ１２１及び判断アプリケーション２２４は、記憶手段に記憶された制御ソフトウエアモジュールの更新履歴を記録する記録手段の一例である。
【００８９】
図９は、スキャナドライバ更新履歴情報ファイルの内容の一例を示した図である。更新履歴には、例えば、更新日付、更新時刻、更新されたファイルの名称、更新前のバージョン、更新後のバージョンなどの情報が含まれる。スキャナドライバ更新履歴情報ファイルをテキストファイルとすれば、標準的なテキストエディタにより内容を確認できるだろう。
【００９０】
例えば、パーソナルコンピュータ１００にインストールされているＵＳＢスキャナドライバ１０２のバージョンが１．０．５で、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６のバージョンが１．０．４であったと仮定する。この場合は、Ｓ３０１４で、スキャナ装置１０６に記憶されている古いＵＳＢスキャナドライバ２２６は、ＵＳＢスキャナドライバ１０２によって上書きされる。図９には、この更新結果が３行目に記載されている。
【００９１】
一方、ステップＳ３０１１でパーソナルコンピュータにインストールされているＵＳＢスキャナドライバ１０２がスキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６より新しくないと判定されると、ステップＳ３０１６に進む。すなわち、双方のバージョンが同一であれば、ＵＳＢスキャナドライバ１０２のインストールや、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６の更新は、省略される。
【００９２】
ステップＳ３０１６で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、ＵＳＢスキャナドライバのインストールが完了したか否か（インストール済みか否か）を判定する。インストールが完了していれば、後述する画像読取処理に進む。一方、インストール済みでなければ、ＣＰＵ１２１は、インストール処理を終了する。この際に、ＣＰＵ１２１は、インストール時にエラーが発生した旨のエラーメッセージ等をディスプレイ１２６に表示してもよい。
【００９３】
本発明によれば、周辺装置から制御ソフトウエアモジュールを情報処理装置にインストールできるため、従来のように、事前に制御ソフトウエアモジュールをインストールしておく必要はない。同様に、制御ソフトウエアモジュールを記憶したＣＤ−ＲＯＭなどを用意する手間を省ける。このように、インストール作業が非常に簡略化されるメリットがある。さらに、パーソナルコンピュータ側により新しいバージョンのソフトウエアが存在するときは、それを周辺装置に書き込む。よって、インストールされるために周辺装置に格納されているソフトウエアをより新しいものに維持することが可能となる。
【００９４】
本実施形態では、ＵＳＢスキャナドライバのインストールとその更新について説明したが、キャプチャアプリケーションなどの他のソフトに本発明を適用してもよい。
【００９５】
＜画像の読取動作＞
図１０は、実施形態に係る画像読取処理の一例を示したフローチャートである。
【００９６】
ステップＳ３０１７で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、ＵＳＢスキャナクラスインターフェース１０８で接続しなおすようスキャナ装置１０６に指示（命令）を送出する。この指示は、例えば、制御ファイルとして、書き替え可能なＲＯＭ１２７やＲＡＭ２０３等に書き込まれる。スキャナ装置１０６のＣＰＵ１１０は、ＲＯＭ１２７等を監視し、ＲＯＭ１２７等に制御ファイルが書き込まれると、制御ファイルから指示を読み出す。ＣＰＵ１１０は、指示を実行する。このように、判断アプリケーション２２４及びＣＰＵ１２１は、情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンが記憶手段に記憶されている制御ソフトウエアモジュールのバージョンよりも古くないと判定されたとき、または、記憶手段から制御ソフトウエアモジュールが情報処理装置にインストールされたときに、切り替え手段に切り替え命令を送信することで、周辺装置を前記外部周辺機器として認識させる認識制御手段の一例である。
【００９７】
図１１は、スキャナ装置におけるスキャナクラスデバイスへの切り替え処理を示したフローチャートである。
【００９８】
ステップＳ９００５で、スキャナ装置１０６のＣＰＵ１１０は、クラスインターフェースの切り替えがパーソナルコンピュータにより指示されると、パーソナルコンピュータ１００からの接続の切り離しを実行する。例えば、ＣＰＵ１１０は、ＵＳＢバスのＤ＋信号とＤ−信号をともに０にする。
【００９９】
ステップＳ９００６で、ＣＰＵ１１０は、ＵＳＢインターフェースを介して、パーソナルコンピュータ１００に再接続を実行する。例えば、ＣＰＵ１１０は、ＵＳＢバスリセットステートに移行する。
【０１００】
ステップＳ３０１８で、ＣＰＵ１２１は、オペレーティングシステム１０１にしたがって、ＵＳＢインターフェース１０４にて何らかの周辺装置の接続を検知したか否かを判定する。周辺装置の接続を検知すると、ステップＳ３０１９に進む。
【０１０１】
ステップＳ３０１９で、ＣＰＵ１２１は、スイッチ２２１を切り替え、ＵＳＢドライバ１０３を標準的な周辺装置のクラスインターフェースに接続する。
【０１０２】
ステップＳ９００７で、ＣＰＵ１１０は、ソフト的にスイッチ２２１を切り替え、ＵＳＢスキャナクラスインターフェース１０８を有効とし、ＵＳＢマスストレージクラスインターフェース２０６を無効にする。
【０１０３】
ステップＳ３０２０で、ＣＰＵ１２１は、オペレーティングシステム１０１にしたがって、周辺装置から情報を取得する。これは、どのような周辺装置が接続されたのかを判別するためである。上述したように、ＣＰＵ１２１は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを発行する（Ｓ８００１）。
【０１０４】
ステップＳ９００８で、ＣＰＵ１１０は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを受信したか否かを判定する。ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを受信したことを検知すると、ステップＳ９００９に進む。
【０１０５】
ステップＳ９００９で、ＣＰＵ１１０は、ディスクリプタをパーソナルコンピュータ１００に送信する。なお、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストに対して返信する標準デバイスディスクリプタのデバイスクラスコードまたは標準インターフェースディスクリプタのインターフェースクラスコードには、ＵＳＢスキャナクラスコードが指定される。
【０１０６】
なお、本実施形態では、デバイスクラスコードまたはインターフェースクラスコードで、ＵＳＢスキャナクラスコードを送信した。しかし、ＣＰＵ１１０は、クラスなし（０）を送信し、ＣＰＵ１２１は、標準デバイスディスクリプタのベンダＩＤとプロダクトＩＤから、予めパーソナルコンピュータ１００にインストールしてある定義ファイルを参照してクラスを確定してもよい。
【０１０７】
ＣＰＵ１２１は、ステップＳ８００２で、ディスクリプタを受信する。標準デバイスディスクリプタのデバイスクラスコードまたはインターフェースクラスコードには、ＵＳＢスキャナクラスコードが指定されている。
【０１０８】
ステップＳ３０２１で、ＣＰＵ１２１は、ディスクリプタの解析結果に応じて、接続された周辺装置がＵＳＢスキャナクラスデバイスであると認識する。
【０１０９】
ステップＳ３０２２で、ＣＰＵ１２１は、判断アプリケーション２２４にしたがって、スイッチ２２０を切り替え、ＵＳＢドライバ１０３に接続すべきドライバを標準的な周辺装置のクラスインターフェースからＵＳＢスキャナドライバ１０２に切り替える。これにより、ＣＰＵ１２１は、ＵＳＢスキャナドライバ１０２を使用してスキャナ装置１０６を制御できるようになる。
【０１１０】
ステップＳ３０２３で、ＣＰＵ１２１は、キャプチャアプリケーション２２２の起動指示がキーボードやマウスを通じて入力されたか否かを判定する。キャプチャアプリケーション２２２の起動指示が入力されると、ステップＳ３０２４に進む。
【０１１１】
ステップＳ３０２４で、ＣＰＵ１２１は、キャプチャアプリケーション２２２を起動する。
【０１１２】
図１２は、キャプチャアプリケーションが起動したときにディスプレイに表示されるユーザインターフェースの一例を示した図である。キャプチャアプリケーション２２２のユーザインターフェースが表示されると、ユーザは、キーボード／マウス１２５を操作して、スキャン設定を実行する。例えば、読み取りモード（本実施形態では、白黒）、用紙サイズ（本実施形態では、Ａ４）、解像度（本実施形態では、３００ｄｐｉ）、読み取り面（本実施形態では、両面）がキーボード／マウス１２５を使用して選択される。さらに、読み取った画像を保存するための画像ファイルのファイル名（本実施形態では、ｔｅｓｔ１）もキーボード／マウス１２５を操作して入力される。最後に、スキャンボタン３０１がキーボード／マウス１２５を使用してクリックされる。
【０１１３】
スキャンボタン３０１がキーボード／マウス１２５によりクリックされると、ステップＳ３０２５に進む。
【０１１４】
ステップＳ３０２５で、キャプチャアプリケーション２２２（ＣＰＵ１２１）は、ＵＳＢスキャナドライバ１０２からＵＳＢドライバ１０３とＵＳＢインターフェース１０４を介して、スキャナ装置１０６にスキャン設定を送信し、さらにスキャン開始コマンドを送信する。
【０１１５】
スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７からＵＳＢスキャナクラスインターフェース１０８を介して、スキャン設定およびスキャン開始コマンドデータを受信したことを検出すると、スキャン設定にしたがって画像読み取り部１１２を用いて原稿のスキャンを開始する。スキャナ装置１０６は、スキャンを開始すると、画像読み取り部１１２で読み取った画像をＵＳＢスキャナクラスインターフェース１０８からＵＳＢインターフェース１０７を介して、パーソナルコンピュータ１００に送信する。
【０１１６】
ステップＳ３０２６で、ＣＰＵ１２１は、キャプチャアプリケーション２２２にしたがって、画像データの受信を開始したか否かを判定する。画像データの受信が開始されると、ステップＳ３０２７に進む。
【０１１７】
ステップＳ３０２７で、ＣＰＵ１２１は、すべての画像データを受信し終えるまで、受信を継続する。
【０１１８】
ステップＳ３０２８で、受信した画像データを指定された保存ファイル名（本実施形態では、ｔｅｓｔ１）でハードディスクドライブ１２２に保存する。
【０１１９】
以上説明したように、本実施形態によれば、スキャナ装置１０６から制御ソフトウエアモジュールをパーソナルコンピュータ１００にインストールできる。そのため、従来のように、事前に制御ソフトウエアをインストールしておく必要はない。また、制御ソフトウエアを記憶したＣＤ−ＲＯＭなどを用意する手間を省ける。このように、インストール作業が非常に簡略化されるメリットがある。さらに、パーソナルコンピュータ１００側に、より新しいバージョンのソフトウエアが存在するときは、それをスキャナ装置１０６に書き込むことで、スキャナ装置１０６に格納されているソフトウエアをより新しいものに更新できる（Ｓ３０１５）。
【０１２０】
とりわけ、ステップＳ３００９ないしＳ３０１３に関して説明したように、スキャナ装置１０６の記憶手段に記憶されている制御ソフトウエアと同一バージョンの制御ソフトウエアまたはより新しいバージョンの制御ソフトウエアのいずれもがパーソナルコンピュータ１００にインストールされていないときに（Ｓ３００９でＮｏ、Ｓ３０１０でＹｅｓ）、スキャナ装置１０６は、記憶手段に記憶されている制御ソフトウエアをパーソナルコンピュータ１００に転送してインストールする。よって、インストール作業が非常に簡略化され、ユーザの負担が著しく軽減されよう。
【０１２１】
また、本実施形態のスキャナ装置１０６は、パーソナルコンピュータ１００に外部記憶装置として認識させるか、外部周辺機器として認識させるかを切り替えるスイッチ２２１を備えている。また、スキャナ装置１０６の記憶手段は、スキャナドライバやキャプチャアプリケーションのインストールを制御する判断アプリケーションやインストーラを記憶している。これらのコンピュータプログラムは、ＣＰＵ１２１に、バージョンの比較、インストール処理、周辺装置に関する認識制御を実行させるため、ユーザは、パーソナルコンピュータ１００にスキャナ装置１０６を接続することで、スキャナ装置１０６の制御ソフトウエアをインストールできる。とりわけ、本実施形態では、スキャナ装置１０６が初期状態において外部記憶装置として認識されるため、ドライバやアプリケーションをスキャナ装置１０６からパーソナルコンピュータ１００へインストールできる。また、パーソナルコンピュータ１００がスキャナ装置１０６を使用できる状態になると、スキャナ装置１０６の内部構成が変更されるため、スキャナ装置１０６は本来の画像読取装置としてパーソナルコンピュータ１００により認識される。
【０１２２】
とりわけ、スキャナ装置１０６をＣＤドライブとして認識されるようにしておき、かつ、Ａｕｔｏｒｕｎ．ｉｎｆによって判断アプリケーション２２４を自動的に起動されるようにしておくことで、比較的に実装しやすい方法によって本発明を実現できる．
また、ソフトウエアの更新履歴を記録することで（Ｓ３０１５）、ユーザは、どのようにソフトウエアが更新されたのかを知ることができる。ユーザは、更新履歴から把握した、スキャナ装置１０６が保持しているソフトウエアのバージョンと、インターネットのＷＥＢサイトで公開されている最新のソフトウエアのバージョンとを比較してもよい。もし、両者が異なれば、ユーザは、最新のソフトウエアをパーソナルコンピュータ１００にダウンロードして、パーソナルコンピュータ１００にインストールしてもよい。この場合、次にパーソナルコンピュータ１００にスキャナ装置１０６が接続されたときに、最新のソフトウエアがスキャナ装置１０６のＲＯＭ１２７に書き込まれることになる。
【０１２３】
本実施形態では、周辺装置の一例として画像読取装置を取り上げた。なぜなら、画像読取装置などの周辺装置は、様々なパーソナルコンピュータに接続されて利用される可能性があるからである。なお、画像読取装置は単なる一例に過ぎず、プリンタ、デジタルカメラ、ビデオカメラ、音楽再生装置、その他の周辺装置に本発明を適用できることはいうまでもない。
【０１２４】
また、本実施形態においては、キャプチャアプリケーション２２２は画像表示機能を備えていない。もちろん、キャプチャアプリケーション２２２が画像表示機能を備えていてもよい。
【０１２５】
本実施形態においては、マイクロソフトウインドウズ（登録商標）オペレーティングシステムを一例として説明した。しかし、マック（登録商標）オペレーティングシステムやリナックス（登録商標）オペレーティングシステムなど、その他のオペレーティングシステムであっても本発明を同様に適用可能である。
【図面の簡単な説明】
【０１２６】
【図１】コンピュータとスキャナ装置とのソフトウエアブロック図である。
【図２】キャプチャアプリケーションおよびスキャナドライバをインストールした状態のパーソナルコンピュータとスキャナ装置とについてのソフトウエアブロック図である。
【図３】パーソナルコンピュータとスキャナ装置とについてのハードウエアブロック図である。
【図４】制御ソフトウエアモジュールのインストールの一例を示したフローチャートである。
【図５】スキャナ装置におけるマスストレージデバイスへの切り替え処理の詳細を示した図である。
【図６】パーソナルコンピュータにおけるマスストレージデバイスへの切り替え処理の詳細を示した図である。
【図７】ＣＤドライブに相当するフォルダの一例を示した図である。
【図８】管理者権限を持つユーザによるログインを求める旨のダイアログの一例を示した図である。
【図９】スキャナドライバ更新履歴情報ファイルの内容の一例を示した図である。
【図１０】実施形態に係る画像読取処理の一例を示したフローチャートである。
【図１１】スキャナ装置におけるスキャナクラスデバイスへの切り替え処理を示したフローチャートである。
【図１２】キャプチャアプリケーションが起動したときにディスプレイに表示されるユーザインターフェースの一例を示した図である。
【符号の説明】
【０１２７】
１００  パーソナルコンピュータ
１０１  オペレーティングシステム
１０２  ＵＳＢスキャナドライバ
１０３  ＵＳＢインターフェースドライバ
１０４  パーソナルコンピュータ１００内のＵＳＢインターフェース
１０５  ＵＳＢケーブル
１０６  スキャナ
１０７  スキャナ装置１０６内のＵＳＢインターフェース
１０８  ＵＳＢスキャナクラスインターフェース
１１０  スキャナ装置１０６内のＣＰＵ
１１２  画像読み取り部
１２１  パーソナルコンピュータ１００内のＣＰＵ
１２２  パーソナルコンピュータ１００内のハードディスク
１２３  パーソナルコンピュータ１００内のＲＯＭ
１２４  パーソナルコンピュータ１００内のＲＡＭ
１２５  キーボード／マウス
１２６  ディスプレイ
１２７  スキャナ装置１０６内のＲＯＭ
１２８  ＵＳＢコントローラ
２０１  ファイルシステム
２０２  ＵＳＢマスストレージドライバ
２０３  スキャナ装置１０６内のＲＡＭ
２０５  ＵＳＢ  ＣＤドライブインターフェース
２０６  ＵＳＢマスストレージインターフェース
２０７  スキャナ装置１０６内のオートランファイル
２２０  パーソナルコンピュータ１００内のＵＳＢインターフェーススイッチ
２２１  スキャナ装置１０６内のＵＳＢインターフェーススイッチ
２２２  パーソナルコンピュータ１００内のキャプチャアプリケーション
２２４  スキャナ装置１０６内の判断アプリケーション
２２５  スキャナ装置１０６内のインストーラ
２２６  スキャナ装置１０６内のＵＳＢスキャナドライバ
２２７  スキャナ装置１０６内のＵＳＢスキャナドライバ更新履歴情報
２３１  スキャナ装置１０６内のキャプチャアプリケーション
３０１  キャプチャアプリケーション２２２でスキャンを開始するスキャンボタン
３０４  ＣＤドライブとして認識されたときのフォルダ
【図１】
2010108426.tif 000003
【図２】
2010108426.tif 000004
【図３】
2010108426.tif 000005
【図４】
2010108426.tif 000006
【図５】
2010108426.tif 000007
【図６】
2010108426.tif 000008
【図７】
2010108426.tif 000009
【図８】
2010108426.tif 000010
【図９】
2010108426.tif 000011
【図１０】
2010108426.tif 000012
【図１１】
2010108426.tif 000013
【図１２】
2010108426.tif 000014