(57)【要約】【課題】周辺装置を制御するためのプログラムを情報処理装置に保存していなくても周辺装置を情報処理装置から利用可能とする。【解決手段】本発明は、情報処理装置からの情報に基づいて所定の処理が実行される周辺装置に適用できる。そして、本発明は、所定の処理を制御するプログラムを記憶し、また周辺装置を制御するためのデータを記憶する記憶手段と、情報処理装置に対して記憶手段のプログラムを送信する通信手段と、情報処理装置のプログラムの実行において記憶手段に書き込まれた指示情報に基づいて周辺装置の動作を制御する制御手段とを備えていることを特徴としている。【選択図】図１
2010113702.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置からの情報に基づいて所定の処理が実行される周辺装置であって、
前記所定の処理を制御するプログラムを記憶し、また前記周辺装置を制御するためのデータを記憶する記憶手段と、
前記情報処理装置に対して前記記憶手段の前記プログラムを送信する通信手段と、
前記情報処理装置の前記プログラムの実行において前記記憶手段に書き込まれた指示情報に基づいて前記周辺装置の動作を制御する制御手段と
を備えていることを特徴とする周辺装置。
【請求項２】
前記記憶手段は前記プログラムを記憶するＲＡＭを含むことを特徴とする請求項１記載の周辺装置。
【請求項３】
前記記憶手段は、前記プログラムを記憶するＲＯＭ又は不揮発性メモリを含み、
前記ＲＡＭは前記指示情報を記憶し、
前記制御手段は、前記周辺装置に前記情報処理装置が接続されると前記プログラムを前記ＲＡＭに記憶し、
前記通信手段は、前記ＲＡＭから前記プログラムを前記情報処理装置に送信することを特徴とする請求項２記載の周辺装置。
【請求項４】
前記制御手段は、前記記憶手段の前記ＲＡＭをＵＳＢディスクドライブとして前記情報処理装置に認識させるための情報を前記通信手段により前記情報処理装置に送信することを特徴とする請求項２または３に記載の周辺装置。
【請求項５】
前記周辺装置は、外部記憶装置として動作する第１動作モードと、所定の処理を実行する処理装置として動作する第２動作モードとを有し、前記制御手段は前記第１動作モードと前記第２動作モードとのいずれか一方を選択する選択手段を備えていることを特徴とする請求項１ないし４のいずれか１項に記載の周辺装置。
【請求項６】
前記選択手段は、前記周辺装置に設けられる手動スイッチにより前記第１動作モードまたは前記第２動作モードを切り替えるものであることを特徴とする請求項５に記載の周辺装置。
【請求項７】
前記プログラムは、前記情報処理装置への前記周辺装置の接続に応じて、前記情報処理装置によって前記通信手段を介して前記記憶手段から前記情報処理装置にロードされることを特徴とする請求項１ないし５のいずれか１項に記載の周辺装置。
【請求項８】
情報処理装置からの情報に基づいて所定の処理を実行する周辺装置であって、前記所定の処理を制御するプログラムを記憶する記憶手段と、
前記プログラムを前記情報処理装置に送信する通信手段と、
前記情報処理装置にロードされた前記プログラムに基づいて動作が制御される前記周辺装置の第１動作モードの制御と、前記プログラムとは異なるデバイスドライバにより動作が制御される前記周辺装置の第２動作モードの制御を行う制御手段と
を備えることを特徴とする周辺装置。
【請求項９】
前記デバイスドライバが前記情報処理装置にインストール済みであるか否かを判定するための判定プログラムを前記記憶手段に記憶し、
前記周辺装置が前記情報処理装置に接続されると、前記通信手段により前記判定プログラムを該情報処理装置へ送信し、
前記情報処理装置で実行された前記判定プログラムの判定結果に応じて、前記制御手段は前記周辺装置の前記第１動作モードと、前記第２動作モードとを選択する制御を行うことを特徴とする請求項８に記載の周辺装置。
【請求項１０】
前記制御手段は、
デフォルトの状態で前記周辺装置の動作モードを前記第１動作モードとし、
前記デバイスドライバがインストールされていることが前記判定プログラムによって判定されると、前記制御手段は前記周辺装置の動作モードを前記第２動作モードとする制御を行うことを特徴とする請求項９に記載の周辺装置。
【請求項１１】
前記判定プログラムは、前記情報処理装置への前記周辺装置の接続に応じて、前記情報処理装置によって、前記通信手段を介して前記記憶手段から前記情報処理装置にロードされることを特徴とする請求項9または１０に記載の周辺装置。
【請求項１２】
前記プログラムはデバイスドライバであり、
前記判定プログラムは、前記デバイスドライバが前記情報処理装置にインストール済みである場合に、前記情報処理装置にインストールされているデバイスドライバのバージョンと、前記記憶手段に記憶されているデバイスドライバのバージョンとを比較する比較手段と、
前記記憶手段に記憶されているデバイスドライバのバージョンが前記情報処理装置にインストールされているデバイスドライバのバージョンよりも新しい場合に限り前記記憶手段に記憶されているデバイスドライバを前記情報処理装置にインストールするインストール手段と
して前記情報処理装置を機能させることを特徴とする請求項９に記載の周辺装置。
【請求項１３】
前記判定プログラムは、
前記周辺装置の取り外しを指示されると、前記記憶手段から読み出され前記情報処理装置へインストールされた前記デバイスドライバを該情報処理装置からアンインストールするアンインストール手段
として前記情報処理装置を機能させることを特徴とする請求項１２に記載の周辺装置。
【請求項１４】
画像読み取り部を備え、情報処理装置からの情報に基づいて画像読取処理を実行する画像読取装置であって、
前記情報処理装置で実行され、前記画像読取装置を制御するプログラムを記憶した記憶手段と、
前記プログラムを前記情報処理装置に送信する通信手段と、
前記画像読取装置を前記情報処理装置の外部記憶装置として該情報処理装置に認識させるための情報を出力する制御を行う制御手段と
を有し、
該制御手段は前記情報処理装置での前記プログラムの実行において繰り返し発生するコマンドに従って、前記記憶手段から部分画像データを繰り返し出力する制御を行う
ことを特徴とする画像読取装置。
【請求項１５】
前記記憶手段から前記プログラムが読み出され前記情報処理装置で実行されると、前記プログラムは、前記記憶手段から前記部分画像データを読み出し、読み出した複数の前記部分画像データを結合し、画像データを完成させる処理手段として前記情報処理装置を機能させることを特徴とする請求項１４に記載の画像読取装置。
【請求項１６】
前記通信手段は、
前記プログラムを実行する前記情報処理装置によって前記記憶手段にコマンドが書き込まれてから、前記記憶手段への前記部分画像データの書き込みが完了するまで、前記部分画像データの読み出し要求に応答しないことを特徴とする請求項１５に記載の画像読取装置。
返信する
【請求項１７】
前記制御手段は、前記プログラムを実行している前記情報処理装置による前記部分画像データの読み出しの速度が、前記画像読取装置の読取動作の速度より遅い場合、該読取動作の中断と再開の制御を行うことを特徴とする請求項１５または１６に記載の画像読取装置。
【請求項１８】
画像読み取り部と、
情報処理装置で実行され画像読取装置を制御するプログラムを記憶した記憶手段と、
前記プログラムを前記情報処理装置に送信する通信手段と、
を備えた画像読取装置の制御方法であって、
前記画像読取装置を前記情報処理装置の外部記憶装置として該情報処理装置に認識させるための制御を行う認識制御工程と、
前記情報処理装置での前記プログラムの実行において繰り返し発生するコマンドに従って、前記記憶手段から部分画像データを繰り返し出力する出力制御工程と
を備えることを特徴とする画像読取装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージスキャナ、プリンタまたは複合機などの周辺装置に関する。
【背景技術】
【０００２】
イメージスキャナ、プリンタまたは複合機などの周辺装置は広く普及している。これらの周辺装置に接続するインターフェースとして、シリアルインタフェース、パラレルインタフェース、ＵＳＢ、ＩＥＥＥ１３９４、ＬＡＮなどが知られている。
【０００３】
ところで、周辺装置をコンピュータ上で使用できるようにするためには、その周辺装置用のデバイスドライバやアプリケーションソフトウエアをインストールしなければならない（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３３４４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、デバイスドライバやアプリケーションソフトウエアをインストールすることが制限されているコンピュータが存在する。この制限はセキュリティ対策で課されることが多い。例えば、マイクロソフトウインドウズ（登録商標）等のオペレーティングシステム（ＯＳ）では、管理者権限を有しているユーザのみがデバイスドライバをインストールできる。したがって、一般ユーザはデバイスドライバやアプリケーションソフトウエアをインストールできないため、周辺装置を利用できなくなってしまう。このような状況は、外出先のコンピュータを使用する場合に度々発生することが予想される。
【０００６】
また、従来は、管理者権限を持つユーザであっても、画像読み取り装置を接続する前に、予め、デバイスドライバをインストールしておかなければならなかった。すなわち、従来は、デバイスドライバをコンピュータにインストールしていない状態で、周辺装置を利用することができなかった。
【０００７】
さらに、デバイスドライバは、一般に、ＣＤ−ＲＯＭにより頒布されている。よって、このＣＤ−ＲＯＭを用意しなければ、デバイスドライバをインストールすることができなかった。例えば、ＣＤ−ＲＯＭを紛失してしまうと、デバイスドライバをインストールすることができなかった。インターネットを介してデバイスドライバを入手できるケースもあるが、そのためにインターネットに接続できる環境が必要である。また、デバイスドライバを提供しているＷＥＢサイトのＵＲＬや、周辺装置の種類や名称を正確に把握して入力しなければならず、面倒であった。
【０００８】
本発明の目的は、デバイスドライバやソフトウエアをコンピュータにインストールすることなく、周辺装置を利用可能とすることである。また、いくつかの観点での本発明の他の目的は、デバイスドライバやソフトウエアをコンピュータにインストールすることなく、画像読取装置により比較的に大きな画像も読取可能とすることである。また、他のいくつかの観点での本発明の他の目的は、情報処理装置（ＰＣ）がデバイスドライバをインストール済みであるか否かに応じて、周辺装置の動作モードを選択する制御を可能とすることである。
【課題を解決するための手段】
【０００９】
本発明は、情報処理装置からの情報に基づいて所定の処理が実行される周辺装置に適用できる。そして、本発明の周辺装置は、所定の処理を制御するプログラムを記憶し、また周辺装置を制御するためのデータを記憶する記憶手段と、情報処理装置に対して記憶手段のプログラムを送信する通信手段と、情報処理装置のプログラムの実行において記憶手段に書き込まれた指示情報に基づいて周辺装置の動作を制御する制御手段とを備えていることを特徴としている。
【発明の効果】
【００１０】
本発明によれば、周辺装置を制御するためのプログラムを情報処理装置に保存していなくても周辺装置を情報処理装置から利用可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係る、パーソナルコンピュータとして例示したコンピュータと画像読み取り装置としてのスキャナのソフトウエアブロック図である。
【図２】パーソナルコンピュータとして例示するコンピュータとスキャナのハードウエアブロック図である。
【図３】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローのフローチャートである。
【図４】ドライブレターを割り当てられたディスクドライブ（スキャナ）をファイル管理ソフト（エクスプローラ）で開いた様子を示す図である。
【図５】キャプチャアプリケーション２１０が起動したときに表示されるユーザインターフェースの一例を示した図である。
【図６】本発明の第２の実施形態に係る、コンピュータと画像読み取り装置としてのスキャナのソフトウエアブロック図である。
【図７】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローを示したフローチャートである。
【図８】ＣＤドライブとして認識されているメモリ領域に対応したフォルダの一例を示した図である。
【図９】ディスクドライブとして認識されているメモリ領域に対応したフォルダの一例を示した図である。
【図１０】第３の実施形態に係るソフトウエアブロック図である。
【図１１】ユーザが、コンピュータ１００にインストールしてあるキャプチャアプリケーション２２２を起動して、スキャナ装置１０６で画像読み取りを行うフローを示したフローチャートである。
【図１２】第４の実施形態に係るソフトウエアブロック図である。
【図１３】画像転送処理の一例を示したフローチャートである。
【図１４】コンピュータ側の画像転送処理の一例を示したフローチャートである。
【図１５】スキャナ装置側の画像転送処理の一例を示したフローチャートである。
【図１６】周辺装置がマスストレージデバイスとして接続されるときの処理の一例を示したフローチャートである。
【図１７】周辺装置がマスストレージデバイスとして接続されるときの処理の一例を示したフローチャートである。
【図１８】周辺装置がスキャナデバイスとして接続されるときの処理の一例を示したフローチャートである。
【図１９】周辺装置がスキャナデバイスとして接続されるときの処理の一例を示したフローチャートである。
【図２０】コンピュータとスキャナ装置とのソフトウエアブロック図である。
【図２１】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローのフローチャートである。
【図２２】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローのフローチャートである。
【図２３】ドライブレターを割り当てられたＣＤドライブ（スキャナ）をファイル管理ソフト（エクスプローラ）で開いた様子を示す図である。
【図２４】管理者権限を持つユーザによって、すでに、任意のキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がインストールされているコンピュータ１００のソフトウエアブロック図である。
【図２５】コンピュータとスキャナ装置とのソフトウエアブロック図である。
【図２６】コンピュータとスキャナ装置とのソフトウエアブロック図である。
【図２７】第６の実施形態に係る画像読み取りを示したフローチャートである。
【図２８】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行う処理のフローチャートである。
【図２９】コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行う処理を示したフローチャートである。
【図３０】画像データの分割転送の一例として、コンピュータ側及びスキャナ装置側で実行される通信プロトコルを示したフローチャートである。
【図３１】画像読取処理の一例を示すフローチャートである。
【図３２】ＲＡＭ１２４に確保されたバッファＣの一例を示す図である。
【図３３】、スキャンタスクの一例を示したフローチャートである。
【図３４】画像転送タスクの一例を示したフローチャートである。
【図３５】スキャンバッファの一例を示す図である。
【図３６】キャンバッファの状態遷移の例を示した図である。
【発明を実施するための形態】
【００１２】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１３】
［観点１］
情報処理装置からの情報に基づいて所定の処理が実行される周辺装置であって、前記所定の処理を制御するプログラムを記憶し、また前記周辺装置を制御するためのデータを記憶する記憶手段と、
前記情報処理装置に対して前記記憶手段の前記プログラムを送信する通信手段と、
前記情報処理装置の前記プログラムの実行において前記記憶手段に書き込まれた指示情報に基づいて前記周辺装置の動作を制御する制御手段と
を備えていることを特徴とする周辺装置。
【００１４】
観点１によれば、前記周辺装置を制御するためのプログラムを情報処理装置にインストールしていなくても周辺装置を情報処理装置から利用可能となる。そのため、プログラムを入手していないユーザであっても周辺装置を利用できるようになる。また、必要なソフトウエアが周辺装置に記憶されているため、ＣＤ−ＲＯＭの紛失による使用不可といった問題からも開放されよう。
【００１５】
［観点２］
前記記憶手段は前記プログラムを記憶するＲＡＭを含むことを特徴とする観点１記載の周辺装置。
【００１６】
このように、観点２によれば、容易にアクセスできる周辺装置のＲＡＭから制御プログラムを利用できるようになる。
【００１７】
［観点３］
前記記憶手段は、前記プログラムを記憶するＲＯＭ又は不揮発性メモリを含み、前記ＲＡＭは前記指示情報を記憶し、前記制御手段は、前記周辺装置に前記情報処理装置が接続されると前記プログラムを前記ＲＡＭに記憶し、前記通信手段は、前記ＲＡＭから前記プログラムを前記情報処理装置に送信することを特徴とする観点２記載の周辺装置。
【００１８】
このように観点３によれば、プログラムをＲＯＭや不揮発性メモリに保持することで誤消去からの保護が容易となり、前記プログラムの実行による情報処理装置からの指示情報を、ＲＡＭを介して容易に受け取ることが可能となる。従来であれば何らかのデバイスドライバが制御コマンドなどを送信していたのに対して、観点３の周辺装置では制御コマンドなどが周辺装置のＲＡＭに書き込まれるので、間接的に周辺装置を制御できるようになる。
【００１９】
［観点４］
制御手段は、前記記憶手段の前記ＲＡＭをＵＳＢディスクドライブとして前記情報処理装置に認識させるための情報を前記通信手段により情報処理装置へ送信することを特徴とする観点２記載の周辺装置。
【００２０】
このように観点４によれば、ＲＡＭを読み書き可能なＵＳＢディスクデバイスとして情報処理装置に認識させることで、周辺装置を例えば画像読み取り装置や印刷装置として認識させる必要がなくなる。よって、ＯＳからデバイスドライバのインストールを要求されることもない。
【００２１】
［観点５］
前記周辺装置は外部記憶装置として動作する第１動作モードと、所定の処理を実行する処理装置として動作する第２動作モードとを有し、前記制御手段は前記第１動作モードと前記第２動作モードとのいずれか一方を選択する選択手段を備えていることを特徴とする観点２に記載の周辺装置。
【００２２】
このように観点５によれば、外部記憶装置として周辺装置を情報処理装置に認識させる動作モードと、周辺装置を画像読み取り装置や印刷装置として認識させるモードとを使い分けることができる。
【００２３】
［観点６］
前記選択手段は、前記周辺装置に設けられる手動スイッチにより前記第１動作モードまたは前記第２動作モードを切り替えるものであることを特徴とする観点５に記載の周辺装置。
【００２４】
このように観点６によれば、ユーザは簡単な手の操作でスイッチを切り替えて動作モードの選択を確定させてから周辺装置を使用することができる。
【００２５】
［観点７］
前記プログラムは、前記情報処理装置への前記周辺装置の接続に応じて、前記情報処理装置によって前記通信手段を介して前記記憶手段から前記情報処理装置にロードされることを特徴とする観点１ないし６のいずれかに記載の周辺装置。
【００２６】
このように観点7によれば、接続時に制御用のプログラムがロードされるので、ユーザがソフトウエアをロードする操作を行う手間を省略できる。
【００２７】
［観点８］
情報処理装置からの情報に基づいて所定の処理を実行する周辺装置であって、前記所定の処理を制御するプログラムを記憶する記憶手段と、前記プログラムを前記情報処理装置に送信する通信手段と、前記情報処理装置にロードされた前記プログラムに基づいて動作が制御される前記周辺装置の第１動作モードの制御と、前記プログラムとは異なるデバイスドライバにより動作が制御される前記周辺装置の第２動作モードの制御を行う制御手段とを備えることを特徴とする周辺装置。
【００２８】
このように、観点８によれば、プログラムを情報処理装置にインストールすることなく周辺装置を情報処理装置から利用可能となる。また、必要なプログラムが周辺装置に記憶されているため、ＣＤ−ＲＯＭの紛失による使用不可といった問題からも開放されよう。また、外部記憶装置として、内蔵のプログラムにより制御される第１動作モードと、通常のデバイスドライバに制御されて動作する第２動作モードとを有しているので、デバイスドライバの利用が可能か否かで、より良い制御モードを選択できる。
【００２９】
［観点９］
前記デバイスドライバが前記情報処理装置にインストール済みであるか否かを判定するための判定プログラムを前記記憶手段に記憶し、前記周辺装置が前記情報処理装置に接続されると、前記通信手段により前記判定プログラムを該情報処理装置へ送信し、前記情報処理装置で実行された前記判定プログラムの判定結果に応じて、前記制御手段は前記周辺装置の前記第１動作モードと、前記第２動作モードとを選択する制御を行うことを特徴とする観点８に記載の周辺装置。
【００３０】
このように観点９によれば、判定プログラムを周辺装置が備えておくことで、情報処理装置はこの判定プログラムにしたがって、デバイスドライバをインストール済みであるか否かを判定できる。その結果、周辺装置は、判定結果に応じて周辺装置の動作モードを制御することが可能となる。
【００３１】
［観点１０］
前記制御手段は、
デフォルトの状態で前記周辺装置の動作モードを前記第１動作モードとし、
前記デバイスドライバがインストールされていることが前記判定プログラムによって判定されると、前記制御手段は前記周辺装置の動作モードを前記第２動作モードとする制御を行うことを特徴とする観点９に記載の周辺装置。
【００３２】
観点１０によれば、デフォルトの状態では周辺装置は外部記憶装置として機能し、一方で、デバイスドライバがインストール済みであれば、周辺装置は外部記憶装置から画像処理装置へと切り替わることができる。なお、デバイスドライバがインストール済みである場合に、周辺装置が外部記憶装置と画像読取装置との双方として機能してもよい。これは、例えば、外部記憶装置と画像読取装置とがＵＳＢの切り替え可能なインターフェースとして機能すれば実現可能である。
【００３３】
［観点１１］
前記判定プログラムは、前記情報処理装置への前記周辺装置の接続に応じて、前記情報処理装置によって、前記通信手段を介して前記記憶手段から前記情報処理装置にロードされることを特徴とする観点９に記載の周辺装置。
【００３４】
このように、プログラムを自動的にロードされるファイルとして記憶しておけば、ユーザがプログラムをロードする操作を行う手間を省略できる。
【００３５】
［観点１２］
プログラムはデバイスドライバであり、判定プログラムは、
デバイスドライバが情報処理装置にインストール済みである場合に、情報処理装置にインストールされているデバイスドライバのバージョンと、記憶手段に記憶されているデバイスドライバのバージョンとを比較する比較手段と、
記憶手段に記憶されているデバイスドライバのバージョンが情報処理装置にインストールされているデバイスドライバのバージョンよりも新しい場合に限り記憶手段に記憶されているデバイスドライバを情報処理装置にインストールするインストール手段と
して情報処理装置を機能させることを特徴とする観点９に記載の周辺装置。
【００３６】
観点１２によれば、より新しいデバイスドライバを使用できるようになる。また、新しいデバイスドライバを古いデバイスドライバによって上書きしてしまうことを防止できるようになる。
【００３７】
［観点１３］
判定プログラムは、
周辺装置の取り外しを指示されると、記憶手段から読み出されて情報処理装置へインストールされたデバイスドライバを情報処理装置からアンインストールするアンインストール手段
として情報処理装置を機能させることを特徴とする観点１２に記載の周辺装置。
【００３８】
このように、画像読取装置やプリンタ等の利用が終了したときなどに、インストールしたデバイスドライバをコンピュータから削除することができる。そのため、コンピュータに使用済みの不要なファイルが残ることがないだろう。また、画像読み取りや印刷を行っていないとき、コンピュータのリソースをむだに消費することがなくなるであろう。
【００３９】
［観点１４］
画像読み取り部を備え、情報処理装置からの情報に基づいて画像読取処理を実行する画像読取装置であって、
情報処理装置で実行され、前記画像読取装置を制御するプログラムを記憶した記憶手段と、前記プログラムを前記情報処理装置に送信する通信手段と、
画像読取装置を情報処理装置の外部記憶装置として該情報処理装置に認識させるための情報を出力する制御を行う制御手段とを有し、該制御手段は前記情報処理装置での前記プログラムの実行において
繰り返し発生するコマンドに従って、前記記憶手段から部分画像データを繰り返し出力する制御を行う
ことを特徴とする画像読取装置。
【００４０】
観点１４によれば、画像読取装置を情報処理装置の外部記憶装置として情報処理装置に認識させることで、画像読取装置のデバイスドライバを情報処理装置にインストールする必要がない。また、画像の読取のためのコマンドを受け付けると部分画像データを制御ファイルに格納し、制御ファイルから読み出す操作に応じて出力することで、比較的に大きな画像も読取可能となる。
【００４１】
［観点１５］
記憶手段からプログラムが読み出され情報処理装置で実行されると、プログラムは情報処理装置を、記憶手段から部分画像データを読み出し、読み出した複数の部分画像データを組み合わせ、画像データを完成させる処理手段として機能させることを特徴とする観点１４に記載の画像読取装置。
【００４２】
このようにバッファから制御ファイルを通じて部分画像データを読み出して複数の部分画像データを組み合わせ、画像データを完成させる必要がある。そこで、記憶手段から読み出されて情報処理装置で実行されるプログラムにこの機能を持たせることにした。
【００４３】
［観点１６］
プログラムを実行する情報処理装置によって記憶手段にコマンドが書き込まれてから、記憶手段への部分画像データの書き込みが完了するまで、情報処理装置による前記部分画像データの読み出し要求に応答しないことを特徴とする観点１５に記載の画像読取装置。
【００４４】
部分画像データの書き込みが完了していないにもかかわらず、画像読取装置が情報処理装置からのファイルの読み出し要求に応答してしまうと、部分画像データを正確に転送できなくなるおそれがある。そこで、このような読み出し要求を無視することとした。
【００４５】
［観点１７］
制御手段は、前記プログラムを実行している前記情報処理装置による前記部分画像データの読み出しの速度が、画像読取装置の画像読取動作の速度より遅い場合、該画像読取動作の中断と再開の制御を行うことを特徴とする観点１５または１６に記載の画像読取装置。
【００４６】
観点１７によれば、例えば部分画像データの読み出しの速度が遅い安価な情報処理装置を用いる場合でも、本実施形態の画像読取装置を使用して安定した画像読取を行うことができる。
【００４７】
［観点１８］
画像読み取り部と、情報処理装置で実行され画像読取装置を制御するプログラムを記憶した記憶手段と、前記プログラムを情報処理装置に送信する通信手段と、を備えた画像読取装置の制御方法であって、
画像読取装置を情報処理装置の外部記憶装置として該情報処理装置に認識させるための情報を出力する制御を行う工程と、前記情報処理装置での前記プログラムの実行において繰り返し発生するコマンドに従って、前記記憶手段から部分画像データを繰り返し出力する制御を行う工程と
を備えることを特徴とする画像読取装置の制御方法。
【００４８】
観点１８によれば、画像読取装置を情報処理装置の外部記憶装置として情報処理装置に認識させることで、画像読取装置のデバイスドライバを情報処理装置にインストールする必要がない。また、画像の読取のためのコマンドを受け付けると部分画像データを制御ファイルに格納し、制御ファイルから読み出す情報処理装置の操作に応じて出力することで、比較的に大きな画像も読取可能となる。
【００４９】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る、パーソナルコンピュータとして例示したコンピュータと画像読み取り装置としてのスキャナのソフトウエアブロック図である。
【００５０】
情報処理装置の一例であるコンピュータ１００には、オペレーティングシステム１０１、ファイルシステム２０１、ＵＳＢマスストレージドライバ２０２及びＵＳＢインターフェースドライバ１０３がインストールされている。オペレーティングシステム１０１は、いわゆるＯＳのことであり、コンピュータ１００の基本ソフトウエアである。ファイルシステム２０１は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。ＵＳＢマスストレージドライバ２０２は、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−Ｒ、ＵＳＢメモリなどのマスストレージを制御するためのソフトウエアである。ＵＳＢインターフェースドライバ１０３は、ＵＳＢインターフェースに接続されたＵＳＢデバイスを制御するためのソフトウエアである。なお、これらのソフトウエアはＯＳの一部であってもよい。
【００５１】
一方、周辺装置の一例であるスキャナ装置１０６には、コンピュータ１００にスキャナ装置の制御を実行させるための制御プログラムを備えている。例えば、本実施形態では、キャプチャアプリケーション２１０、制御ファイル２０４、ＵＳＢディスクドライブインターフェース２０５及びＵＳＢマスストレージクラスインターフェース２０６が備えられている。本実施形態のキャプチャアプリケーション２１０は、ドライバプログラムを含み、コンピュータ１００で実行されて画像を読み取るための制御を行うソフトウエアである。制御ファイル２０４は、キャプチャアプリケーション２１０を実行しているコンピュータ１００からの制御コマンドなどが書き込まれるファイルである。ＵＳＢディスクドライブインターフェース２０５は、スキャナ装置１０６に備えられているメモリ（ＲＡＭ、フラッシュメモリ、ＥＥＰＲＯＭなど）をディスクドライブとして使用するためのソフトウエアである。ＵＳＢマスストレージクラスインターフェース２０６は、ＵＳＢディスクドライブインターフェース２０５を介してメモリをＵＳＢマスストレージとして使用するためのソフトウエアである。
【００５２】
なお、市販のスキャナ装置は、これらのソフトウエアではなく、ＵＳＢスキャナクラスインターフェースを備えている。そのため、パーソナルコンピュータは、キャプチャアプリケーションソフトウエアや専用のスキャナドライバを備える必要がある。本実施形態であれば、ＵＳＢスキャナクラスインターフェースは必ずしも必要ではない。また、パーソナルコンピュータ側では、キャプチャアプリケーションソフトウエアや専用のスキャナドライバが必ずしも必要ではない。
【００５３】
図２は、パーソナルコンピュータとして例示するコンピュータとスキャナのハードウエアブロック図である。図２において、コンピュータ１００は、ＣＰＵ１２１、ＲＯＭ１２３、ＲＡＭ１２４、ハードディスクドライブ１２２、ＵＳＢインターフェース１０４を備えている。ＵＳＢインターフェース１０４は、ＵＳＢケーブル１０５を介してスキャナ装置１０６と接続される。また、ＣＰＵ１２１は、キーボード／マウス１２５とディスプレイ１２６とが接続されている。
【００５４】
コンピュータ１００に電力が投入されると、ＣＰＵ１２１は、ＲＯＭ１２３からファームウエアを起動し、ハードディスクドライブ１２２からマイクロソフト（登録商標）ウインドウズ・オペレーティングシステム１０１を起動する。ＯＳなどの必要なソフトウエアは、ＲＡＭ１２４にロードされる。
【００５５】
一方、スキャナ装置１０６は、ＣＰＵ１１０、ＲＯＭ１２７、ＲＡＭ２０３、画像読み取り部１１２、ＵＳＢコントローラ１２８、ＵＳＢインターフェース１０７を備えている。スキャナ装置１０６に電力が投入されると、ＣＰＵ１１０は、ファームウエアをＲＯＭ１２７から起動する。または不図示の不揮発性メモリから起動してもよい。
【００５６】
まず、コンピュータ１００上のオペレーティングシステム１０１は、ＵＳＢインターフェース１０４にＵＳＢケーブル１０５を介して何らかの周辺デバイスが接続されると、周辺デバイスのインターフェースにアクセスし、周辺デバイスの種類を確定する。ここで、スキャナ装置１０６には、オペレーティングシステム１０１にマスストレージデバイスクラスとして認識される。マスストレージデバイスクラスデバイスを制御するためのＵＳＢマスストレージドライバ２０２は、コンピュータに備えられており、新たにインストールする必要がないからである。それゆえ、本実施形態のスキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６を有している。
【００５７】
このように、マイクロソフト（登録商標）ウインドウズのオペレーティングシステム１０１は、標準で、マスストレージクラスのＵＳＢデバイスをサポートしている。ＣＰＵ１２１がマスストレージクラスのＵＳＢデバイスにアクセスする際、オペレーティングシステム１０１がマスストレージクラスのＵＳＢドライバ（ＵＳＢマスストレージドライバ２０２）を含んでいるため、コンピュータ１００への特別なデバイスドライバ等のインストールを必要としない。また、マスストレージクラスデバイスへの標準的なアクセスは、オペレーティングシステム１０１を使用して、管理者権限なしに実行されることが可能である。
【００５８】
よって、コンピュータ１００にスキャナ装置１０６が接続されると、ＣＰＵ１２１は、予めインストールされているＵＳＢマスストレージドライバ２０２を起動する。また、スキャナ装置１０６が、ＵＳＢマスストレージクラスインターフェース２０６を有しているため、コンピュータ１００にスキャナ装置１０６を接続すると、ＣＰＵ１２１及びオペレーティングシステム１０１は、スキャナ装置１０６をマスストレージデバイスとして認識する。さらに、ＣＰＵ１２１及びオペレーティングシステム１０１は、スキャナ装置１０６のＲＯＭ１２７やＲＡＭ２０３を外部記憶装置としてアクセスする。
【００５９】
この認識処理についてさらに詳細に説明する。コンピュータ１００にスキャナ装置１０６が接続された場合、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知し、ＵＳＢケーブル１０５を介して、スキャナ装置１０６のＵＳＢインターフェース１０７にアクセスする。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からアクセスがあると、ＵＳＢマスストレージクラスインターフェース２０６にアクセスさせる。オペレーティングシステム１０１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６にアクセスすることで、予めオペレーティングシステム１０１に含まれているＵＳＢマスストレージドライバ２０２を利用して、ＵＳＢインターフェースドライバ１０３とＵＳＢインターフェース１０４からＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセス可能になる。
【００６０】
また、スキャナ装置１０６は、オペレーティングシステム１０１に、マスストレージクラスデバイスとして認識されている。そのため、コンピュータ１００は、スキャナ装置１０６のＵＳＢインターフェース１０７、ＵＳＢマスストレージクラスインターフェース２０６、ＵＳＢディスクドライブインターフェース２０５を介して、管理者権限の有無に依存しないアクセス方法でスキャナ装置１０６にアクセスできる。ただし、コンピュータ１００は直接的に画像読み取り部１１２を制御することはできず、あくまで記憶装置としてスキャナ装置１０６にアクセスできるにすぎない。
【００６１】
また、スキャナ装置１０６には、キャプチャアプリケーション２１０と、スキャナ装置１０６を制御するための制御ファイル２０４とを予めＲＯＭ１２７またはＲＡＭ２０３に保存してある。ＲＯＭ１２７またはＲＡＭ２０３は、フラッシュメモリ、ＥＥＰＲＯＭ、ＤＲＡＭなどの組み合わせによって実現可能である。キャプチャアプリケーション２１０は、コンピュータ１００からの指令のもとにスキャナ装置１０６で画像読み取りを行うためのソフトウエアであり、オペレーティングシステム１０１上で動作する
さらに、コンピュータ１００は、ファイルシステム２０１に関連付けたファイルフォルダ内に、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０に対応するテーブルを形成する。
【００６２】
図３は、コンピュータ１００からの指令のもとにキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローのフローチャートである。
【００６３】
コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６が接続されたか否かを判断する（ステップＳ３０１）。ＣＰＵ１２１は、周辺デバイス（スキャナ装置１０６）のインターフェースに接続する（ステップＳ３０２）。
【００６４】
ＣＰＵ１２１は、周辺デバイスのインターフェースクラスの情報をスキャナ装置１０６から取得する（ステップＳ３０３）。この情報により接続された周辺装置の種類が認識できる。
【００６５】
上述したようにスキャナ装置１０６がＵＳＢマスストレージインターフェースを有している。そのため、コンピュータ１００にスキャナ装置１０６が接続されたとき、ＣＰＵ１２１は、ＵＳＢマスストレージデバイスが接続されたと認識する（ステップＳ３０４）。また、スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢディスクドライブインターフェース２０５を有している。そのため、ＣＰＵ１２１は、接続されたスキャナ装置１０６をディスクドライブとして認識する。
【００６６】
オペレーティングシステム１０１は、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０に対応するテーブルを、ファイルシステム２０１に関連付けたファイルフォルダ内に形成する。このことによりＣＰＵ１２１は、スキャナ装置１０６内に格納してある制御ファイル２０４とキャプチャアプリケーション２１０を、ドライブレターを割り当てたディスクドライブ上のファイルとして扱うことができる（ステップＳ３０５）。これは、スキャナ装置１０６が、ＯＳによってドライブレターを割り当てたディスクドライブとして認識されているからである。
【００６７】
図４は、ドライブレターを割り当てられたディスクドライブ（スキャナ）をファイル管理ソフト（エクスプローラ）で開いた様子を示す図である。スキャナ装置１０６が内蔵するメモリは、フォルダ３００に対応している。フォルダ３００は、コンピュータ１００に接続されたキーボード／マウス１２５を使用して開くことができる。フォルダ３００には、キャプチャアプリケーション２１０（ファイル名：ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ）と制御ファイル２０４（ファイル名：Ｃｏｎｔｒｏｌ．ｄａｔ）とが格納されている。
【００６８】
ＣＰＵ１２１は、フォルダ３００内のキャプチャアプリケーション２１０を起動するための指示が入力されたか否かを判定する（ステップＳ３０６）。この指示は、キーボード／マウス１２５からユーザによって入力されてもよいし、フォルダ３００に格納されている不図示のａｕｔｏｒｕｎ．ｉｎｆ等の自動実行情報ファイルによって指示されてもよい。例えば、マイクロソフト（登録商標）ウインドウズオペレーティングシステムにおいては、ＣＤドライブ内にＣＤ−ＲＯＭが挿入されると、オペレーティングシステムは「ａｕｔｏｒｕｎ．ｉｎｆ」と呼ばれる、ＣＤ−ＲＯＭ上の自動実行情報ファイルを検出し、「ａｕｔｏｒｕｎ．ｉｎｆ」内で自動実行することが指定された実行ファイルを実行する。また、マイクロソフト（登録商標）ウインドウズオペレーティングシステムのあるバージョンにおいては、ＵＳＢディスクドライブ内に、「ａｕｔｏｒｕｎ．ｉｎｆ」、という名称のファイルが存在すると、その内部に記述されたコマンドを自動実行する。すなわち、「ａｕｔｏｒｕｎ．ｉｎｆ」内に自動実行させたい実行ファイル名を記述しておけば、利用者にキーボード／マウス１２５を操作させることなく自動的に起動させることも可能である。よって、実行ファイルとして上述のＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅがａｕｔｏｒｕｎ．ｉｎｆ内で記述されていることになる。キャプチャアプリケーション２１０を起動するための指示が入力されると、ＣＰＵ１２１は、スキャナ装置１０６からキャプチャアプリケーションをメモリ（ＲＡＭ１２４）にロードして起動する（ステップＳ３０７）。このようにスキャナ装置１０６のＵＳＢインターフェースは、コンピュータ１００からのソフトウエアのロード動作に応じて、ソフトウエアを送信する通信手段の一例である。
【００６９】
なお、ａｕｔｏｒｕｎ．ｉｎｆ等の自動実行情報ファイルにＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅとは異なる、例えば異なる機能のａｕｔｏｒｕｎ．ｅｘｅ等のソフトウエアの名称を記述しておいてもよい。コンピュータ１００のメモリ（ＲＡＭ１２４）にロードされて起動されたａｕｔｏｒｕｎ．ｅｘｅまたはＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅによれば、ＵＳＢディスクドライブインターフェース２０５を介して接続され、ディスクドライブとして認識されたスキャナ装置１０６を、スキャナドライバのインストールなしに制御することが出来る。すなわちＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ．ｅｘｅ等の制御ソフトウエアは、ＵＳＢメモリとして認識されるＲＡＭ上のファイルの受け渡しで画像読取及び画像形成の少なくとも一方に関するコマンドの送出と、画像データのスキャナからの移動を可能とするドライバ機能を有するものとする。またはドライバ機能を有するＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）モジュール等の他のプログラムとリンクして、ＵＳＢメモリとして認識されるＲＡＭ上のファイルの受け渡しを行うことによって、画像読取や画像形成に関するコマンドの送出と、画像データのスキャナからの移動やプリンタへの移動を可能とするようにしてもよい。
【００７０】
なお、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ．ｅｘｅ等のソフトウエアが特定のＤＬＬモジュール等にリンクする必要がある場合には、必要なＤＬＬモジュール等をスキャナ装置１０６からコンピュータ１００のメモリ（ＲＡＭ１２４）にロードするようにしてもよい。
【００７１】
なお、自動実行情報ファイルはａｕｔｏｒｕｎ．ｉｎｆ以外の名称であってもよい。また、マイクロソフト（登録商標）ウインドウズオペレーティングシステムにおいては、ＵＳＢディスクドライブにおいても、電源投入時またはＵＳＢコネクタが差し込まれたとき、ＣＰＵ１２１は「ａｕｔｏｒｕｎ．ｉｎｆ」と呼ばれる、ＵＳＢディスクドライブ上の自動実行情報ファイルを検出し、ａｕｔｏｒｕｎ．ｉｎｆの記述に従って、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等の起動を確認させるためのコンピュータ１００のダイアログ画面を表示させて、ユーザの操作により起動可能な状態にすることができる。またオペレーティングシステム１０１の設定を変えれば、起動確認のダイアログ画面をコンピュータ１００に表示させることなく、ａｕｔｏｒｕｎ．ｉｎｆの記述に従って、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等を起動させることもできる。
【００７２】
また、ａｕｔｏｒｕｎ．ｉｎｆ等の自動実行情報ファイルは、コンピュータウイルス等の悪意のプログラムや、悪意を持った人物による改ざんを防ぐために、周辺装置のメモリ領域のうち書き込み禁止にできる保護メモリ領域又は書き込み不可能なメモリ領域に記憶することが望ましい。ここで、本実施形態では、スキャナ装置１０６は、コンピュータ１００の指示情報に基づいて制御される。詳細には、コンピュータ１００からの指示情報は、コンピュータ１００によるソフトウエアの実行により、スキャナ装置１０６の記憶手段に書き込まれる。そして、スキャナ装置１０６のＣＰＵ１１０は、記憶手段に書き込まれた指示情報に基づいてスキャナ装置１０６の動作を制御するようになっている。例えば、本実施形態では、コンピュータ１００は、ディスプレイ１２６を接続しており、各種ユーザインターフェースをディスプレイ１２６に表示する。すなわち、コンピュータ１００は、実際には、ソフトウエアの実行により、図５に示すようなユーザインターフェースを表示可能であり、ユーザは、このユーザインターフェースによりスキャナ装置１０６の制御条件を適宜指定できるようになっている。例えば、図５は、キャプチャアプリケーション２１０が起動したときに表示されるユーザインターフェースの一例を示した図である。図５に示すようなキャプチャアプリケーション２１０のインターフェースが表示されると、ユーザは、キーボード／マウス１２５を操作して、スキャン設定を実行する。例えば、読み取りモード（本実施形態では、白黒）、用紙サイズ（本実施形態では、Ａ４）、解像度（本実施形態では、３００ｄｐｉ）、読み取り面（本実施形態では、両面）がキーボード／マウス１２５を使用して選択される。さらに、読み取った画像を保存するための画像ファイルのファイル名（本実施形態では、ｔｅｓｔ１）もキーボード／マウス１２５を操作して入力される。最後に、スキャンボタン３０１がキーボード／マウス１２５を使用してクリックされる。
【００７３】
スキャンボタン３０１がキーボード／マウス１２５によりクリックされると、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャン設定を受け付け、スキャナ装置１０６内の制御ファイル２０４にスキャン設定（指示情報）を書き込む。さらに、ＣＰＵ１２１は、スキャン開始コマンドデータ（指示情報）も制御ファイル２０４に書き込む（ステップＳ３０８）。
【００７４】
スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４を監視している。そうして、ＣＰＵ１１０は、スキャン設定およびスキャン開始コマンドデータが制御ファイル２０４に書かれたことを検出すると、制御ファイル２０４を読み込んで、そこに書かれているスキャン設定にしたがって画像読み取り部１１２を制御し、スキャンを開始する。以上のように、情報処理装置が接続されて所定の処理が実行される本スキャナ装置は、スキャナ装置を利用可能とするプログラムを格納すると共にスキャナ装置を制御するための指示情報が書き込み可能なメモリと、情報処理装置に対してメモリからプログラムを送信する通信手段と、情報処理装置の前記プログラムの実行によりメモリに書き込まれた前記指示情報に基づいてスキャナ装置を制御する制御手段とを備えていることを特徴としている。
【００７５】
スキャナ装置１０６はスキャンを開始すると、画像読み取り部１１２で読み取った画像データをＣＰＵ１１０は制御ファイルに書き込む。この制御ファイルは、スキャン設定を可能としている制御ファイルと同一であってもよいし、異なってもよい。
【００７６】
コンピュータ１００のＣＰＵ１２１は、画像データが制御ファイル２０４に書き込まれたか否かを監視する（ステップＳ３０９）。画像データが制御ファイル２０４に書き込まれたことを検出すると、制御ファイル２０４から画像データを読み出す（ステップＳ３１０）。ＣＰＵ１２１は、指定された画像ファイル（本実施形態では、ファイル名「ｔｅｓｔ１」）を作成し、ハードディスクドライブ１２２に記憶する（ステップ３１１）。本実施形態の周辺装置はプリンタや複合機等の画像形成機能を有する装置でもよい。ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ．ｅｘｅ等の制御ソフトウエアは、ＵＳＢメモリとして認識されるＲＡＭ上のファイルの受け渡しで画像読取及び画像形成の少なくとも一方に関するコマンドの送出と、画像データのスキャナからの移動やプリンタ等への移動を可能とするドライバ機能を有するものであってもよい。またはドライバ機能を有するＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）モジュール等の他のプログラムとリンクして、ＵＳＢメモリとして認識されるＲＡＭ上のファイルの受け渡しを行うことによって、画像読取や画像形成に関するコマンドの送出と、画像データのスキャナからの移動やプリンタ  等への移動を可能とするようにしてもよい。
【００７７】
以上説明したように、本実施形態によれば、コンピュータ１００にデバイスドライバやアプリケーションなどのソフトウエアをインストールすることなく、スキャナ装置１０６で画像読み取りを行うことができるようになる。例えば、管理者権限がなくオペレーティングシステム１０１においてインストーラにログインできないユーザや、外出先のパーソナルコンピュータを使用するユーザであっても、容易に、画像読み取りを行うことができる
本実施形態ではＵＳＢマスストレージクラスインターフェース２０６のＵＳＢディスクドライブインターフェース２０５を介して読出し可能なＲＡＭ２０３等にＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ２１０やａｕｔｏｒｕｎ．ｉｎｆやａｕｔｏｒｕｎ．ｅｘｅ等の制御用のソフトウエアが常時記憶されているようになっている。しかし、電源投入時や初期化時や所定のコマンドを受けたとき等に不図示のＲＯＭ等に記憶されたファームウエア等の制御により、ＲＯＭや不揮発性メモリ等に記憶された情報に基づいてＲＡＭ２０３等に、ＵＳＢマスストレージクラスインターフェースを介して読み出し可能なように、その都度ａｕｔｏｒｕｎ．ｉｎｆやＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ.ｅｘｅ等を格納するようにしてもよい。もちろんＲＯＭや不揮発性メモリ等にａｕｔｏｒｕｎ．ｉｎｆやＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ.ｅｘｅ等がそのまま記憶されている場合は、ＲＡＭ２０３等に複製するようにしてもよい。このようにＲＯＭや不揮発性メモリ等に記憶された情報に基づいてＲＡＭ２０３等に格納又は複製された制御用のソフトウエアは、コンピュータ１００のメモリ（ＲＡＭ１２４）にロードされ起動される。起動された制御用のソフトウエアは、制御ファイル２０４へのコマンド等の書き込みの制御や、画像データを制御ファイル２０４から読み出したり制御ファイル２０４へ書き込んだりする制御を実行する。
【００７８】
これらの制御用のソフトウエア（ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ２１０等）はＲＡＭ２０３等から消去することも可能であり、ＵＳＢマスストレージクラスインターフェースを介して読み書き可能なＲＡＭ２０３等の記憶容量を、他の目的に有効に活用することができる。また、万一コンピュータウイルス等の感染がこれらの制御用のソフトウエアに認められた場合は、これらの制御用のソフトウエアを消去することによって、感染の拡大を防ぐことができる。
【００７９】
なお、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅやａｕｔｏｒｕｎ.ｅｘｅ等の制御用のソフトウエアは、コンピュータ１００のメモリ（ＲＡＭ１２４）にロードして起動することで使用可能となるものであり、インストールする必要がないソフトウエアであることが特徴である。また、本実施形態ではコンピュータ１００によってスキャナ装置１０６のＲＡＭ２０３が１つのディスクドライブとしてドライブレターを割り当てられて認識される。不図示のＲＯＭや不揮発性メモリ等はコンピュータ１００からは認識されないことが望ましい。このようにするとスキャナ装置１０６に対してドライブレターは１つだけ割り当てられるので、他の機器のために必要とされるドライブレターを浪費することがない。以上説明したように、本発明の第１の実施形態では、コンピュータ１００にデバイスドライバやアプリケーションなどのソフトウエアをインストールすることなく、スキャナ装置１０６で画像読み取りを行うことができるようになる。例えば、管理者権限がなくオペレーティングシステム１０１においてインストーラにログインできないユーザや、外出先のパーソナルコンピュータを使用するユーザであっても、容易に、画像読み取りを行うことができる。
【００８０】
＜第２の実施形態＞
図６は、本発明の第２の実施形態に係る、コンピュータと画像読み取り装置としてのスキャナのソフトウエアブロック図である。すでに説明した箇所に同一の参照符号を付与することで説明を簡潔にする。
【００８１】
第１の実施形態で説明したＵＳＢマスストレージクラスインターフェース２０６は、複数のＵＳＢマスストレージサブクラスを有することが可能である。そこで、第２の実施形態では、ＵＳＢディスクドライブインターフェース２０５とＵＳＢ ＣＤドライブインターフェース２０８といった２つのサブクラスがスキャナ装置１０６に備えられている。コンピュータ１００上のオペレーティングシステム１０１は、それぞれを論理的に別個のデバイスとしてアクセス可能である。すなわち、コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６を２つの論理的に異なるディスクドライブとして認識し、ドライブレターをそれぞれに割り当てる。
【００８２】
より詳細に説明する。コンピュータ１００にスキャナ装置１０６が接続されると、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知する。そして、ＣＰＵ１２１は、ＵＳＢケーブル１０５を介して、スキャナ装置１０６のＵＳＢインターフェース１０７にアクセスする。
【００８３】
スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からアクセスがあると、ＵＳＢマスストレージクラスインターフェース２０６にアクセスさせる。このように、オペレーティングシステム１０１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６へアクセスする。これにより、ＣＰＵ１２１は、予めオペレーティングシステム１０１に含まれているＵＳＢマスストレージドライバ２０２を利用して、ＵＳＢインターフェースドライバ１０３とＵＳＢインターフェース１０４からＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセス可能になる。
【００８４】
また、スキャナ装置１０６は２つのＵＳＢマスストレージサブクラスを有していることから、オペレーティングシステム１０１は２つのマスストレージクラスデバイスとしてスキャナ装置１０６を認識する。よって、コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６のＵＳＢインターフェース１０７、ＵＳＢマスストレージクラスインターフェース２０６、ＵＳＢ ＣＤドライブインターフェース２０８あるいはＵＳＢディスクドライブインターフェース２０５を介して、管理者権限を持たないユーザが利用可能なアクセス方法によってスキャナ装置１０６にアクセスできる。
【００８５】
また、スキャナ装置１０６には、オートランファイル２０７と、キャプチャアプリケーション２１０と、制御ファイル２０４とが予め保存されている。オートランファイル２０７は、上述したａｕｔｏｒｕｎ．ｉｎｆなどである。
【００８６】
なお、コンピュータ１００のＣＰＵ１２１は、ＵＳＢ ＣＤドライブインターフェース２０８を介して、制御ファイル２０４は、ＵＳＢディスクドライブインターフェース２０５を介して、キャプチャアプリケーション２１０とオートランファイル２０７とにアクセスする。
【００８７】
上述したように、オペレーティングシステム１０１がマイクロソフト（登録商標）ウインドウズであれば、ＣＤドライブ内にデータＣＤが挿入されると「ａｕｔｏｒｕｎ．ｉｎｆ」（オートランファイル２０７）の読出しを実行する。オートランファイル２０７は、ＵＳＢ ＣＤドライブインターフェース２０８を介してアクセスされるため、自動的に読み出されて処理されることになる。
【００８８】
スキャナ装置１０６のＣＰＵ１１０は、コンピュータ１００に接続した時点で、ＣＤドライブ内にデータＣＤが挿入されていない状態であるとオペレーティングシステム１０１に仮想的に認識させる。次に、ＣＰＵ１１０は、ＣＤが挿入されたことをオペレーティングシステム１０１に仮想的に認識させることで、オートランファイル２０７が自動実行されるように制御する。
【００８９】
さらに、コンピュータ１００は、スキャナ装置１０６に保存してある制御ファイル２０４とキャプチャアプリケーション２１０とオートランファイル２０７に対応するテーブルを、ファイルシステム２０１に関連付けられたフォルダ内に形成する。
【００９０】
図７は、コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローを示したフローチャートである。既に説明した箇所には同一の参照符号を付与することで、説明を簡潔にする。
【００９１】
ステップＳ３０１ないしステップＳ３０４が実行されると、コンピュータ１００のＣＰＵ１２１は、マスストレージデバイスが接続された認識する。スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢ ＣＤドライブインターフェース２０８とＵＳＢディスクドライブインターフェース２０５を有している。そのため、コンピュータ１００のＣＰＵ１２１は、接続されたスキャナ装置１０６をそれぞれ、ＣＤドライブとディスクドライブとして認識する（ステップＳ７０５）。
【００９２】
上述のように、オペレーティングシステム１０１（ＣＰＵ１２１）は、ファイルシステム２０１に関連付けられたファイルフォルダ内に、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０とオートランファイル２０７に対応するテーブルを形成する。そのため、ＣＰＵ１２１は、スキャナ装置１０６内に保存してある制御ファイル２０４をディスクドライブ上のファイルとして認識する。また、ＣＰＵ１２１は、キャプチャアプリケーション２１０とオートランファイル２０７をＣＤドライブ上のファイルとして認識する。
【００９３】
図８は、ＣＤドライブとして認識されているメモリ領域に対応したフォルダの一例を示した図である。すなわち、スキャナ装置１０６のＲＯＭやＲＡＭのうち、ＣＤドライブとして認識されているメモリ領域がフォルダ３０２としてコンピュータ１００には認識される。よって、フォルダ３０２に、キャプチャアプリケーション２１０とオートランファイル２０７が格納されているように見える。
【００９４】
図９は、ディスクドライブとして認識されているメモリ領域に対応したフォルダの一例を示した図である。スキャナ装置１０６のＲＯＭやＲＡＭのうち、ディスクドライブとして認識されているメモリ領域がフォルダ３０３としてコンピュータ１００には認識される。よって、フォルダ３０３に、制御ファイル２０４が格納されているように見える。
【００９５】
ユーザは、図８に示すようなフォルダ３０２と図９に示すようなフォルダ３０３をコンピュータ１００に接続されたキーボード／マウス１２５を使用して開くことができる。
【００９６】
オペレーティングシステム１０１（ＣＰＵ１２１）は、ＣＤドライブ内にデータＣＤが挿入されたと判断すると、オートランファイル２０７を実行する（ステップＳ７０６）。オートランファイル２０７は、予め、キャプチャアプリケーション２１０を起動するように記述されている。そのため、ＣＰＵ１２１は、オートランファイル２０７の記述を解釈して、キャプチャアプリケーション２１０を起動する（ステップＳ７０７）。ユーザの操作は不要であるため、ユーザには、キャプチャアプリケーション２１０が自動的に起動されたように見える。
【００９７】
なお、図８のようなＣＤドライブとして認識される領域を設けず、ＲＡＭ１２４が図９のようなＵＳＢディスクドライブとしてだけ認識されるようにしてもよい。その場合ａｕｔｏｒｕｎ．ｉｎｆとＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等をＵＳＢディスクドライブとして認識されているＲＡＭ１２４のメモリ領域に格納すればよい。必要があればそこにＤＬＬモジュールも格納する。電源投入時またはＵＳＢコネクタが差し込まれたとき、ａｕｔｏｒｕｎ．ｉｎｆの記述に従って、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等の起動を確認させるためのダイアログ画面をコンピュータ１００に表示させて、ユーザの操作により起動可能な状態にすることができる。またオペレーティングシステム１０１の設定を変えれば、起動確認のダイアログ画面をコンピュータ１００に表示させることなく、ａｕｔｏｒｕｎ．ｉｎｆの記述に従って、ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等を起動させることもできる。
【００９８】
また、図８でＣＤドライブとして認識されると示した領域の代わりに、読取のみ可能なＵＳＢディスクドライブとして認識される領域を設け、ＲＡＭ１２４が複数個のＵＳＢディスクドライブとしてコンピュータ１００に認識されるようにしてもよい。その場合、ａｕｔｏｒｕｎ．ｉｎｆとＣａｐｔｕｒｅＡｐｐｒｌｉｃａｔｉｏｎ．ｅｘｅ、ａｕｔｏｒｕｎ．ｅｘｅ等を、読取のみ可能なＵＳＢディスクドライブとして認識されているＲＡＭ１２４のメモリ領域に格納することで、これらのファイルが悪意を持った人物に改ざんされることを防ぐこともできる。
【００９９】
その後、上述したステップＳ３０８ないしＳ３１１が実行される。
【０１００】
以上、２つの実施形態で説明したように、本実施形態では、コンピュータ１００にデバイスドライバやアプリケーションなどのソフトウエアをインストールすることなく、スキャナ装置１０６で画像読み取りを行うことができるようになる。例えば、管理者権限がなくオペレーティングシステム１０１においてインストーラにログインできないユーザや、外出先のパーソナルコンピュータを使用するユーザであっても、容易に、画像読み取りを行うことができる。
【０１０１】
なお、上記の第１及び第２の各実施形態においては、キャプチャアプリケーション２１０からスキャンを開始する例を説明した。しかし、スキャナ装置１０６上にスタートボタン等を配置し、スタートボタンを押下されたことをＣＰＵ１１０が検知すると、スキャンを開始してもよい。その際、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャナ装置１０６のスタートボタンを、制御ファイル２０４を介して監視してもよい。この場合は、ＣＰＵ１１０がスタートボタンを押下されたことを示す情報を制御ファイル２０４に書き込むことになる。
【０１０２】
キャプチャアプリケーション２１０は、スキャナ装置１０６に制御ファイル２０４を介してスキャン開始を指示してもよいし、キャプチャアプリケーション２１０が、制御ファイル２０４に画像データが生成されたことを検知して、スキャンが開始されたと判断し、画像データを読み出して画像ファイルをハードディスクドライブに保存しても良い。
【０１０３】
また、上記第１及び第２の実施形態においては、キャプチャアプリケーション２１０を起動し、ユーザインターフェースを表示しているが、スキャナ装置１０６を最初に接続した後は、マイクロソフト（登録商標）ウインドウズ等のオペレーティングシステム１０１に常駐してもよい。
【０１０４】
また、上記第１及び第２の実施形態においては、キャプチャアプリケーション２１０には画像表示機能が無いが、キャプチャアプリケーション２１０が読み取られた画像の表示機能を備えていても良い。
【０１０５】
また、上記第１及び第２の実施形態においては、ＲＡＭ２０３の制御ファイル２０４にスキャン設定を書き込んでいるため、スキャン設定がスキャナ装置１０６に保存されない。しかし、スキャナ装置１０６内で、設定されたスキャン設定を不図示の不揮発メモリ等に記憶しておいても良い。また、オペレーティングシステム１０１のユーザ毎に、別々のスキャン設定を記憶しておいても良い。
【０１０６】
また、上記第１及び第２の実施形態においては、マイクロソフト（登録商標）ウインドウズオペレーティングシステム上での動作を例にとって説明した。しかしこれは一例にすぎない。本発明は、アップル社のオペレーティングシステムやリナックスオペレーティングシステム等、その他のオペレーティングシステムにも適用できる技術思想だからである。
【０１０７】
また、上記第１及び第２の実施形態においては、画像読み取り装置を例にとって説明したが、プリンタでもよく、画像読み取り機能と画像形成機能を併せ持つ複合機等でもよい。
なお、本発明の周辺装置が画像形成機能を有する場合は画像形成に関するコマンドの送出の機能と、画像形成に用いる画像データの送出の機能とを、ａｕｔｏｒｕｎ．ｅｘｅ等のソフトウエアは備えることになる。
【０１０８】
＜第３の実施形態＞
第１の実施形態や第２の実施形態では、デバイスドライバのインストールが不要となる反面、常に、専用のキャプチャアプリケーションを使用する必要がある。一方で、デバイスドライバのインストールが許可されているコンピュータでは、普及した汎用のキャプチャアプリケーションを使用したいという要望も予想される。
【０１０９】
そこで、本実施形態では、専用のデバイスドライバのインストールを必要とする制御モードと、上述した第１の実施形態又は第２の実施形態のように、専用のデバイスドライバ等のソフトウエアのインストールを必要としない制御モードとを備え、両者を切り替えることができる周辺装置について提案する。なお、後者のモード、すなわち、ソフトウエアのインストールを必要としない制御モードについては、上述した第１の実施形態又は第２の実施形態と同様である。以下、専用のデバイスドライバ等のソフトウエアのインストールを必要とする制御モードについて詳細に説明する。
【０１１０】
図１０は、第３の実施形態に係るソフトウエアブロック図である。既に説明した箇所には同一の参照符号が付与されている。図１と比較すると、汎用のキャプチャアプリケーション２２２と、ＵＳＢスキャナドライバ１０２と、スイッチ２２０がコンピュータ１００に追加されている。一方、スキャナ装置１０６には、ＵＳＢスキャナクラスインターフェース１０８とスイッチ２２１とが追加されている。
【０１１１】
コンピュータ１００上のオペレーティングシステム１０１は、ＵＳＢインターフェース１０４にＵＳＢケーブル１０５を介して何らかの周辺デバイスが接続された場合、周辺デバイスのインターフェースにアクセスし、周辺デバイスの種類を確定する。ここで、スキャナ装置１０６には、オペレーティングシステム１０１にマスストレージデバイスクラスとして認識してもらうためのＵＳＢマスストレージクラスインターフェース２０６と、スキャナデバイスクラスとして認識してもらうためにＵＳＢスキャナクラスインターフェース１０８とを有している。
【０１１２】
これらの２つの異なるクラスのインターフェースは、スイッチ２２１によって択一的に切り替えられる。なお、スイッチ２２１は、第３の制御モードとして、２つのクラスのインターフェースを同時に有効にするように切り替えてもよい。スイッチ２２１は、ソフトウエアで実現されてもよいし、電気的に切り替え可能な電子スイッチを用いてハードウエアによって実現されてよい。また、ソフトウエア及びハードウエアの両方も用いてスイッチ２２１が実現されてもよい。
【０１１３】
具体的には、上記のハードウエアにより実現されるスイッチ２２１としては、例えば、ユーザが手で切り替え可能なスイッチ等が挙げられる。またはスイッチ２２１の切り替えのための電気信号を生成する他の手動スイッチを別途設けてもよい。これらの場合後述するような制御が可能なスイッチと異なり、ＣＰＵ１１０の制御によるスイッチ２２１の切り替えができない。このようなとき表示ＬＥＤ等を設けＣＰＵ１１０からＬＥＤ等の点灯を制御することによりユーザに手でスイッチ２２１等を切り替えさせるようにしてもよい。
【０１１４】
なお、このような手で切り替え可能なスイッチ２２１又は他の手動スイッチを設けた場合は、スイッチの切り替え状態に応じてスキャナ装置１０６の不図示の操作ボタンを押した場合の動作を異ならせることができる。例えば、スイッチ２２１又は他の手動スイッチをＵＳＢマスストレージクラスインターフェース２０６を認識可能とする側に切り替えておき、不図示のスキャン開始ボタンを押すと、ＵＳＢの接続が遮断された状態への遷移と、その後再びＵＳＢの接続が行なわれた状態への遷移とを擬似的に起こすこともできる。これらの遷移により、ＵＳＢのコネクタに触れることなく、ＵＳＢの抜き差しを行った場合に実行されるオートランプログラムの起動やオートランの確認ダイアログの表示を可能とし、画像読取を少ない操作で行うことができる。
【０１１５】
また、このような手で切り替え可能なスイッチ２２１又は上述した他の手動スイッチをＵＳＢスキャナクラスインターフェース１０８を認識させる側に切り替えておき、不図示のスキャン開始ボタンを押すと、所定のＪＯＢをコンピュータ１００上で動作させるための情報をコンピュータ１００に送信したり、あるいは制御ファイルにＪＯＢを起動させるための情報を書き込んだりするようにすることもできる。
【０１１６】
一方、コンピュータ１００上で動作するオペレーティングシステム１０１は、マスストレージクラスのＵＳＢデバイスをサポートしている。オペレーティングシステム１０１がマスストレージクラスデバイスのデバイスドライバであるＵＳＢマスストレージドライバ２０２を含んでいる。そのため、ユーザは、コンピュータ１００への特別なデバイスドライバをインストールすることを要求されることはない。また、マスストレージクラスデバイスへの標準的なアクセスは、オペレーティングシステム１０１を通じて、管理者権限なしに、実行可能である。
【０１１７】
よって、コンピュータ１００にスキャナ装置１０６を接続したとき、予めインストールされているＵＳＢマスストレージドライバ２０２が使用される。また、スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６を有している。そのため、コンピュータ１００にスキャナ装置１０６を接続すると、スキャナ装置１０６がマスストレージデバイスとしてオペレーティングシステム１０１に認識され、アクセスが可能となる。
【０１１８】
なお、コンピュータ１００内のスイッチ２２０を切り替えることで、ＵＳＢマスストレージドライバ２０２以外のドライバへ接続を切り替えることができるものとする。スイッチ２２０は、ソフトウエアで実現されてもよいし、電気的に切り替え可能な電子スイッチを用いてハードウエアによって実現されてよい。また、ソフトウエア及びハードウエアの両方も用いてスイッチ２２０が実現されてもよい。
【０１１９】
また、ＵＳＢマスストレージクラスインターフェース２０６は、複数のＵＳＢマスストレージサブクラスを有することが可能である。図６に示したように、２つのサブクラスを有するようにスキャナ装置１０６が変更されてもよい。
【０１２０】
コンピュータ１００に予めインストールされているキャプチャアプリケーション２２２は、スキャナ装置１０６で画像読み取りを行うためのソフトウエアである。ＵＳＢスキャナドライバ１０２は、スキャナ装置１０６を、ＵＳＢインターフェースを介して接続するためのデバイスドライバである。これは、標準でＯＳには用意されていない専用のデバイスドライバである。よって、ＵＳＢスキャナクラスインターフェース１０８が有効に設定されているときは、ＵＳＢスキャナドライバ１０２を通じて画像の読取が実行される。
【０１２１】
本実施形態においては、管理者権限を有するユーザが、予めキャプチャアプリケーション２２２とＵＳＢスキャナドライバ１０２をコンピュータ１００へインストールしているものとする。ＵＳＢマスストレージドライバ２０２とＵＳＢスキャナドライバ１０２は、スイッチ２２０によって切り替えられる。もちろん、双方が同時に有効にされてもよい。
【０１２２】
コンピュータ１００にスキャナ装置１０６が接続された場合、オペレーティングシステム１０１は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知し、ＵＳＢケーブル１０５を介して、スキャナ装置１０６のＵＳＢインターフェース１０７にアクセスする。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からアクセスがあると、切り替えスイッチ２２１をＵＳＢマスストレージクラスインターフェース２０６に切り替え、ＵＳＢマスストレージクラスインターフェース２０６にアクセスさせる。オペレーティングシステム１０１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６にアクセスすることで、切り替えスイッチ２２０を切り替えてＵＳＢマスストレージドライバ２０２を有効にし、ＵＳＢインターフェース１０４からＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセスする。
【０１２３】
スキャナ装置１０６は、オペレーティングシステム１０１に、マスストレージクラスデバイスとして認識されている。そのため、コンピュータ１００は、スキャナ装置１０６のＵＳＢインターフェース１０７、ＵＳＢマスストレージクラスインターフェース２０６、ＵＳＢディスクドライブインターフェース２０５を介して、オペレーティングシステム１０１の管理者権限なしに実行できるアクセス方法でスキャナ装置１０６にアクセスができる。
【０１２４】
スキャナ装置１０６には、コンピュータ１００からスキャナ装置１０６で画像読み取りを行うためのオペレーティングシステム１０１上で動作するキャプチャアプリケーション２１０と、スキャナ装置１０６を制御するための制御ファイル２０４とを予め保存してある。
【０１２５】
さらに、コンピュータ１００は、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０に対応するテーブルを、ファイルシステム２０１に関連付けたファイルフォルダ内に形成する。これらのテーブルを形成することでスキャナ装置１０６内の制御ファイル２０４とキャプチャアプリケーション２１０は、例えばコンピュータ１００の画面に表示されるようになる。本実施形態の説明では、スキャナ装置１０６内のキャプチャアプリケーション２１０を使用する動作モードの説明は省略する。
【０１２６】
図１１は、ユーザが、コンピュータ１００にインストールしてあるキャプチャアプリケーション２２２を起動して、スキャナ装置１０６で画像読み取りを行うフローを示したフローチャートである。
【０１２７】
コンピュータ１００はスキャナ装置１０６が接続されたか否かを監視する（ステップＳ１１０１）。コンピュータ１００はＵＳＢマスストレージクラスインターフェースを有する装置としてスキャナ装置１０６を接続する（ステップＳ１１０２）。コンピュータ１００は周辺デバイスのインターフェースクラス等の情報をスキャナ装置１０６から取得する（ステップＳ１１０３）。コンピュータ１００は、取得した情報により、接続された周辺デバイスの種類を認識できる。
【０１２８】
ところで、スキャナ装置１０６の切り替えスイッチ２２１は、通常、ＵＳＢマスストレージインターフェースに切り替えられている。そのため、コンピュータ１００はスキャナ装置１０６をＵＳＢマスストレージデバイスと認識する（ステップＳ１１０４）。コンピュータ１００は、切り替えスイッチ２２０をＵＳＢマスストレージドライバ２０２に切り替え、接続されたスキャナ装置１０６をディスクドライブとしてファイルシステムに追加する（ステップＳ１１０５）。
【０１２９】
このようにして、コンピュータ１００は、マスストレージとしてスキャナ装置１０６を認識する。コンピュータ１００は、キャプチャアプリケーション２２２の起動が指示されたか否かを判定する。（ステップＳ１１０６）。キャプチャアプリケーション２２２の起動が指示されると、コンピュータ１００は、キャプチャアプリケーション２２２を起動する（Ｓ１１０７）。
【０１３０】
コンピュータ１００はスキャナ装置１０６がマスストレージデバイスとして認識されていることをファイルシステム２０１から検知する。そこで、コンピュータ１００は、ファイルシステム２０１を経由してスキャナ装置１０６に対して、ＵＳＢスキャナクラスインターフェース１０８で接続しなおすように指示を出す（ステップＳ１１０８）。スキャナ装置１０６は、ＵＳＢスキャナクラスクラスへのインターフェースの切り替えの指示を受信した場合、一度、コンピュータ１００への接続状態から切断状態に移行した後、再度、接続状態に移行する。
【０１３１】
このとき、オペレーティングシステム１０１は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知する（ステップＳ１１０９）。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からのアクセスがあると、切り替えスイッチ２２１をＵＳＢスキャナクラスインターフェース１０８が有効となるように切り替え、コンピュータ１００にＵＳＢスキャナクラスインターフェース１０８へアクセスさせる（Ｓ１１１０）。これによりコンピュータ１００は、装置のインターフェースクラスの情報等を取得する（ステップＳ１１１１）。取得した情報は、コンピュータ１００がＵＳＢスキャナクラスインターフェース１０８に接続したことを示している。よって、コンピュータ１００は、接続された周辺デバイスがスキャナデバイスであると認識する（ステップＳ１１１２）。
【０１３２】
次に、ユーザは、キャプチャアプリケーション２２２が起動されているため、ディスプレイ１２６にはユーザインターフェース画面が表示されている（図５）。本実施形態でのキャプチャアプリケーション２２２はキャプチャアプリケーション２１０と同一のユーザインターフェースを使用しているが、両者は異なってもよい。ユーザは、キャプチャアプリケーション２２２で、読み取りモード（本実施形態では、白黒）、用紙サイズ（本実施形態では、Ａ４）、解像度（本実施形態では、３００ｄｐｉ）、読み取り面（本実施形態では、両面）を設定する。この設定には、キーボード／マウス１２５が使用される。また、画像ファイルのファイル名（本実施形態では、ｔｅｓｔ１）もキーボード／マウス１２５を使用して入力される。最後に、スキャンボタン３０１がキーボード／マウス１２５によりクリックされる。
【０１３３】
スキャンボタン３０１がクリックされると、キャプチャアプリケーション２２２（ＣＰＵ１２１）は、ＵＳＢスキャナドライバ１０２、ＵＳＢインターフェースドライバ１０３及びＵＳＢインターフェース１０４を介して、スキャナ装置１０６に、スキャン設定を送信するとともに、スキャン開始コマンドを送信する（ステップＳ１１１３）。（以下はスキャナクラスのため：受信receive）
スキャナ装置１０６は、ＵＳＢインターフェース１０７からＵＳＢスキャナクラスインターフェースを介して、スキャン設定およびスキャン開始コマンドデータを受信したことを検出する。スキャナ装置１０６は、受信したスキャン設定にしたがってスキャンを開始する。
【０１３４】
コンピュータ１００は、スキャナ装置１０６の画像読み取り部１１２が読み取った画像データを、ＵＳＢスキャナクラスインターフェース１０８及びＵＳＢインターフェース１０７を介して受信する（ステップＳ１１１４、Ｓ１１１５）。キャプチャアプリケーション２２２は、受信した画像データを結合し、指定されたファイル名（本実施形態では、ｔｅｓｔ１）の画像ファイルとしてハードディスクドライブに保存する（ステップＳ１１１６）。
【０１３５】
なお、コンピュータ１００にＵＳＢスキャナドライバ１０２をインストールできないときの動作は、第１及び第２の実施形態と変わらないため、説明を省略する。
【０１３６】
＜第４の実施形態＞
図１２は、第４の実施形態に係るソフトウエアブロック図である。図１２と図１０とを比較するとわかるように、スキャナ装置１０６のソフトウエア構成が第２の実施形態と第３の実施形態とを組み合わせたものとなっている。すなわち、インストールに関して制限のあるコンピュータにスキャナ装置１０６が接続されたときは、第２の実施形態で説明したようにコンピュータ及びスキャナ装置１０６が動作する。一方で、既にＵＳＢスキャナドライバ１０２やキャプチャアプリケーション２２２がすでにインストールされているコンピュータでは、第３の実施形態で説明したようにコンピュータ及びスキャナ装置１０６が動作する。
【０１３７】
［画像転送処理］
図１３は、上記第２、第４実施形態での画像転送処理の一例を示したフローチャートである。スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４にスキャン開始コマンドが書き込まれたか否かを確認する（ステップＳ１３０１）。スキャン開始コマンドが書き込まれたことを検知すると、ＣＰＵ１１０は、画像読み取り部１１２を制御してスキャンを開始し、読み取った画像の画像データをＣＰＵ１１０が制御ファイル２０４に書き込む（ステップＳ１３０２）。ＣＰＵ１１０は、１ページ分の画像データについて制御ファイル２０４への書き込みが終了したか否かを判定する（ステップＳ１３０３）。これが終了すると、ＣＰＵ１１０は、コンピュータ１００にリムーバブルメディアが交換された旨を、ＵＳＢケーブル１０５を通じて通知する（Ｓ１３０４）。
【０１３８】
オペレーティングシステム１０１は、リムーバブルメディアが交換された旨の通知を受信すると、リムーバブルメディアが交換されたと判断し、スキャナ装置１０６に記憶されている制御ファイル２０４に対応したファイルシステム２０１の管理テーブルを更新する。ＣＰＵ１２１は、更新された管理テーブルを読み、制御ファイル２０４に画像データが書き込まれたことを認識する。
【０１３９】
ＣＰＵ１２１が実行しているキャプチャアプリケーション２１０は、書き込まれた画像データを制御ファイル２０４から抽出し、抽出した画像データを結合して１つの画像ファイルを生成し、指定されたファイル名（上記実施形態では、ｔｅｓｔ１）を付与してハードディスクドライブに保存する。上述したようにリムーバブルメディアが交換されたと判断される状態にする方法の他に、画像データの格納の完了等をコンピュータに通知する方法は、下記のような例示する方法が可能である。
【０１４０】
［画像転送処理の他の例］
図１４は、上記第４実施形態でのコンピュータ側の画像転送処理の一例を示したフローチャートである。図１５は、上記第４実施形態でのスキャナ装置側の画像転送処理の一例を示したフローチャートである。
【０１４１】
上記実施形態のマスストレージクラスデバイスは、ＳＣＳＩコマンド体系での送受信をサポートしている。つまり、コンピュータ１００は、マスストレージデバイスに対して、ＳＣＳＩコマンド体系で、コマンドを発行する。また、コンピュータ１００のマイクロソフトウインドウズ（登録商標）オペレーティングシステム１０１は、マスストレージデバイスの接続があると、定期的に、Ｔｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドを発行する。
【０１４２】
コンピュータ１００から、スキャナ装置１０６にスキャン開始指示を行うとき、まず、キャプチャアプリケーション２１０は、制御ファイル２０４にスキャン開始命令を書き込む。具体的には、マイクロソフトウインドウズ（登録商標）オペレーティングシステム１０１は、Ｗｒｉｔｅコマンドを発行し、パラメータデータでスキャン開始命令を送信する（Ｓ１４０１、Ｓ１４０２、Ｓ１４０３）。
【０１４３】
スキャナ装置１０６は、Ｗｒｉｔｅコマンドのパラメータデータでスキャン開始命令を受信し、スキャンパラメータを制御ファイル２０４から読み出して受け付けると（Ｓ１５０１，Ｓ１５０２）、スキャンを開始し、画像読み取り部１１２で読み取った画像データを制御ファイル２０４に書き込む（Ｓ１５０３）。
【０１４４】
このとき、スキャナ装置１０６は、画像読み取り中の画像データが制御ファイル２０４に書き込み中である場合、Ｔｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドに対して、正常状態を示すＧＯＯＤステータスを返す（Ｓ１５０４，Ｓ１５０５）。コンピュータ１００は、定期的にＴｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドを送信する（Ｓ１４０４）。
【０１４５】
その後、スキャナは、画像データの制御ファイル２０４への書き込みが終了した場合（Ｓ１５０６）、Ｔｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドに対して（Ｓ１５０７）、書き込み終了を通知するためにＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを返す（Ｓ１５０８）。
【０１４６】
コンピュータ１００のオペレーティングシステム１０１はスキャナ装置１０６から、ＧＯＯＤステータスの代わりにＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを受信すると（Ｓ１４０５）、スキャナ装置１０６の状態の詳細情報を取得するために、Ｒｅｑｕｅｓｔ Ｓｅｎｓｅコマンドを発行する（Ｓ１４０６）。
【０１４７】
スキャナ装置１０６は、Ｒｅｑｕｅｓｔ Ｓｅｎｓｅコマンドを受信すると（Ｓ１５０９）、前回のコマンドであるＴｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドに対して、ＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを返しているため、センスデータでＭＥＤＩＵＭ ＮＯＴ ＰＲＥＳＥＮＴセンスキーおよびセンスコード、または、ＭＥＤＩＵＭ ＭＡＹ ＨＡＶＥ ＣＨＡＮＧＥＤセンスキーおよびセンスコードを送信する（Ｓ１５１０）。
【０１４８】
コンピュータ１００のオペレーティングシステム１０１はスキャナ装置１０６から、センスデータとして、ＭＥＤＩＵＭ ＮＯＴ ＰＲＥＳＥＮＴセンスキーおよびセンスコード、または、ＭＥＤＩＵＭ ＭＡＹ ＨＡＶＥ ＣＨＡＮＧＥＤセンスキーおよびセンスコードを受信すると（Ｓ１４０７）、マスストレージデバイスのリムーバブルメディアが排出されたものと判断する。さらに、コンピュータ１００のオペレーティングシステム１０１は、マスストレージデバイスのリムーバブルメディアの挿入を待つために、定期的に、Ｔｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドを発行する（Ｓ１４０８）。
【０１４９】
スキャナ装置１０６は、ＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを返した後、次のＴｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドを受信すると（Ｓ１５１１）、オペレーティングシステム１０１に対して、正常状態を示すＧＯＯＤステータスを返す（Ｓ１５１２）。
【０１５０】
コンピュータ１００のオペレーティングシステム１０１はＧＯＯＤステータスを受信すると（Ｓ１４０９）、マスストレージデバイスのリムーバブルメディアが挿入されたと判断する。オペレーティングシステム１０１は、スキャナ装置１０６内にある制御ファイル２０４に対応するファイルシステム２０１内の管理テーブルを更新し、更新された管理テーブルにより制御ファイル２０４に画像データが書き込まれたことをキャプチャアプリケーション２１０は認識する（Ｓ１４１０）。
【０１５１】
以上により、キャプチャアプリケーション２１０は制御ファイル２０４から、書き込まれた画像データを読み出して指定された保存ファイル名（上記実施形態では、ｔｅｓｔ１）で保存する。
【０１５２】
なお、上記実施形態では、Ｔｅｓｔ Ｕｎｉｔ Ｒｅａｄｙコマンドに対して、上述したようにＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを返したが、コンピュータ１００のオペレーティングシステム１０１が発行する他のコマンド（例えば、Ｍｏｄｅ ＳｅｌｅｃｔコマンドやＳｔａｒｔ−Ｓｔｏｐ Ｕｎｉｔコマンド）に対して、ＣＨＥＣＫ ＣＯＮＤＩＴＩＯＮステータスを返しても実現できる。
【０１５３】
また、上記実施形態では、マスストレージデバイスのリムーバブルメディアの排出／挿入と認識させるための振る舞いをすることで、オペレーティングシステム１０１にファイルシステム２０１内の管理テーブルの更新を促せたが、ＵＳＢバスのＤ＋信号とＤ−信号をともに０にするよう制御してから、ＵＳＢバスリセットステートに移行して、ＵＳＢデバイスの仮想的な脱着が行われたという振る舞いをしても実現できる。
【０１５４】
［デバイス認識処理］
コンピュータ１００のオペレーティングシステム１０１は、ＵＳＢデバイスの接続を検知すると、コントロール転送のセットアップステージにて、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを発行する。
【０１５５】
スキャナ装置１０６は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを受信すると、要求されたディスクリプタを返す。ディスクリプタは、デバイスの種類や特性や属性などの情報を表現するために使われ、フォーマットが定義されている。
【０１５６】
コンピュータ１００のオペレーティングシステム１０１は、スキャナ装置１０６から受信したＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストのうち、標準デバイスディスクリプタ、標準構成（コンフィグレーション）ディスクリプタ、標準インターフェースディスクリプタによって、接続されたデバイスの種類や特性や属性などの情報を取得する。
【０１５７】
［マスストレージデバイスとして接続される処理］
図１６、図１７は、周辺装置がマスストレージデバイスとして接続されるときの処理の一例を示したフローチャートである。図１６はコンピュータ１００における処理であり、図１７は周辺装置における処理である。
【０１５８】
図１６によれば、コンピュータ１００は、スキャナ装置１０６が接続されたか否かを監視する（ステップＳ１６０１）。コンピュータ１００は、何等かの周辺装置が接続されたことを検出すると、周辺装置のインターフェースに接続する（ステップＳ１６０２）。コンピュータ１００は、周辺装置へＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを発行する（ステップＳ１６０３）。このディスクリプタにより接続された周辺装置の種類が認識できる。
【０１５９】
一方、図１７によれば、スキャナ装置１０６は、コンピュータに接続されたと認識したときは（Ｓ１７０１）、デフォルトでＵＳＢマスストレージインターフェースを選択するよう、切り替えスイッチ２２１をソフト的に切り替える。これによりスキャナ装置１０６はコンピュータ１００に、ＵＳＢマスストレージインターフェースへの接続を行わせる（ステップＳ１７０２）。よって、スキャナ装置１０６は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲを受信すると（Ｓ１７０３）、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストのうち、標準デバイスディスクリプタのデバイスクラスコードまたは標準インターフェースディスクリプタのインターフェースクラスコードにて、ＵＳＢマスストレージクラスコードを送信する（ステップＳ１７０４）。
【０１６０】
図１６によれば、コンピュータ１００のオペレーティングシステム１０１は、デバイスクラスコード、または、インターフェースクラスコードとして、ＵＳＢマスストレージクラスコードを受信すると（ステップＳ１６０４）、ＵＳＢマスストレージクラスコードに関連するＵＳＢマスストレージドライバや、その他のクライアントドライバをＲＡＭ１２４上で起動することで、内部の切り替えスイッチ２２０を、ＵＳＢマスストレージドライバ２０２にソフト的に切り替える（ステップＳ１６０５）。
【０１６１】
スイッチ２２１はユーザが手で切り替え可能なスイッチでもよい。またはスイッチ２２１の切り替えのための電気信号を生成する他の手動スイッチを別途設けてもよい。これらの場合上記のようなＣＰＵ１１０の制御によるスイッチ２２１のソフト的な切り替えができない。このようなとき表示ＬＥＤ等を設け、ＣＰＵ１１０からＬＥＤ等の点灯を制御することによりユーザに手でスイッチ２２１を切り替えさせるようにしてもよい。
【０１６２】
［スキャナデバイスへ切り替わる処理］
図１８、図１９は、周辺装置がスキャナデバイスとして接続されるときの処理の一例を示したフローチャートである。図１８はコンピュータ１００における処理であり、図１９は周辺装置における処理である。
【０１６３】
図１９によれば、スキャナ装置１０６は、コンピュータによりインターフェースクラスの切り替えが指示された場合、ＵＳＢバスのＤ＋信号とＤ−信号をともに０にするよう制御してから、ＵＳＢバスリセットステートに移行することで、一度、コンピュータ１００から接続を切り離し（ステップＳ１９０１）、再度、接続状態となった振る舞いをする（ステップＳ１９０２）。
【０１６４】
一方、図１８によれば、コンピュータ１００は、スキャナ装置１０６が接続されたか否かを監視する（ステップＳ１８０１）。コンピュータ１００は、周辺装置のインターフェースに接続する（ステップＳ１８０２）。コンピュータ１００は、周辺装置へＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストを発行する（ステップＳ１８０３）。このディスクリプタにより接続された周辺装置の種類が認識できる。
【０１６５】
再び図１９によれば、スキャナ装置１０６は、切り替えスイッチ２２１をＵＳＢスキャナインターフェースへとソフト的に切り替える（ステップＳ１９０３）。スキャナ装置１０６は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲを受信すると（Ｓ１９０４）、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ標準デバイスリクエストのうち、標準デバイスディスクリプタのデバイスクラスコード、または、標準インターフェースディスクリプタのインターフェースクラスコードにて、ＵＳＢスキャナクラスコードを送信する（ステップＳ１９０５）。
【０１６６】
コンピュータ１００のオペレーティングシステム１０１は、デバイスクラスコード、または、インターフェースクラスコードとして、ＵＳＢスキャナクラスコードを受信すると（ステップＳ１８０４）、ＵＳＢスキャナクラスコードに関連するＵＳＢスキャナドライバや、その他のクライアントドライバをＲＡＭ１２４上で起動することで、内部の切り替えスイッチ２２０を、ＵＳＢスキャナドライバ１０２にソフト的に切り替える（ステップＳ１８０５）。
【０１６７】
なお、上述した実施形態では、デバイスクラスコード、あるいは、インターフェースクラスコードで、ＵＳＢスキャナクラスコードを送信したが、クラスなし（０）を送信し、デバイスディスクリプタのベンダＩＤとプロダクトＩＤから、予めコンピュータ１００にインストールしてある定義ファイルを参照してクラスを確定しても良い。
【０１６８】
上述した各実施形態においては、画像読み取り装置（スキャナ）を周辺装置の一例として説明した。しかし、本発明の周辺装置は、画像形成装置（プリンタ）であってもよいし、画像読み取り機能と画像形成機能を併せ持つ複合機等であってもよい。この場合、画像処理部は画像形成部に相当し、キャプチャアプリケーションは印刷アプリケーションに相当しよう。
【０１６９】
具体的に、ＣＰＵ１２１は、印刷アプリケーションにしたがって、周辺装置のメモリ（読み書き可能でドライブレターが割り当てられたディスクドライブとして認識される）の制御ファイル２０４に印刷ジョブのデータを書き込む。周辺装置のＣＰＵ１１０は、制御ファイル２０４を監視しており、印刷ジョブのデータが印刷アプリケーションによって書き込まれるとこれを読み出し、画像形成部（プリンタエンジン）に転送する。ＣＰＵ１１０は、必要に応じて印刷ジョブのデータを変換（ラスタライズなど）してもよい。これによって、画像形成部が印刷処理を実行する。このように、周辺装置は、画像形成装置であってもよい。
【０１７０】
なお、周辺装置のデバイスドライバがコンピュータにインストールされていない場合は、通常の制御方法では周辺装置で印刷を行うことができない。本実施形態では、ＣＰＵ１２１は周辺装置の記憶手段から印刷アプリケーションを起動する。コンピュータのアプリケーションソフトウエア（ワードプロセッサや画像編集ソフトウエアなど）が印刷対象データを汎用形式のファイルとして出力すると、印刷アプリケーションによりＣＰＵ１２１は、汎用形式のファイルを印刷ジョブのデータに変換し、制御ファイル２０４へ書き込む。なお、汎用形式のファイルがそのまま周辺装置の記憶手段に書き込まれてもよい。これにより、周辺装置のデバイスドライバをインストールしなくても、周辺装置で印刷を実行できるようになる。
【０１７１】
＜第５の実施形態＞
一般に、ＯＳは、外部記憶装置のデバイスドライバをデフォルトで備えているが、画像処理装置のデバイスドライバをデフォルトで備えていないことがあり、画像処理装置を制御できない場合がある。
【０１７２】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。例えば、本発明は、情報処理装置（ＰＣ）がデバイスドライバをインストール済みであるか否かに応じて、周辺装置の動作モードを切り換える制御を行うことを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【０１７３】
図２０は、コンピュータとスキャナ装置とのソフトウエアブロック図である。コンピュータ１００は、例えば、なパーソナルコンピュータ（ＰＣ）などのホストコンピュータである。ここでは、情報処理装置の一例として、コンピュータ１００について説明する。
【０１７４】
コンピュータ１００には、オペレーティングシステム１０１、ファイルシステム２０１、ＵＳＢマスストレージドライバ２０２及びＵＳＢインターフェースドライバ１０３がインストールされている。オペレーティングシステム１０１は、いわゆるＯＳのことであり、コンピュータ１００の基本ソフトウエアである。ファイルシステム２０１は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。ＵＳＢマスストレージドライバ２０２は、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＤＶＤ−ＲＡＭ、ＢＤ−ＲＯＭ、ＢＤ−Ｒ、ＢＤ−ＲＥ、ＵＳＢメモリなどのマスストレージを制御するためのソフトウエアである。ＵＳＢインターフェースドライバ１０３は、ＵＳＢインターフェースに接続されたＵＳＢデバイスを制御するためのソフトウエアである。なお、これらのソフトウエアはＯＳの一部であってもよい。
【０１７５】
スイッチ２２０を切り替えることで、ＵＳＢマスストレージドライバ２０２以外のデバイスドライバへ接続を切り替えることができるものとする。スイッチ２２０は、ソフトウエアで実現されてもよいし、電気的に切り替え可能な電子スイッチを用いてハードウエアによって実現されてよい。また、ソフトウエア及びハードウエアの両方も用いてスイッチ２２０が実現されてもよい。
【０１７６】
一方、周辺装置の一例であるスキャナ装置１０６には、キャプチャアプリケーション２１０、制御ファイル２０４、ＵＳＢディスクドライブインターフェース２０５及びＵＳＢマスストレージクラスインターフェース２０６が備えられている。キャプチャアプリケーション２１０は、コンピュータ１００で実行されて画像を読み取るための制御を行うソフトウエアである。制御ファイル２０４は、キャプチャアプリケーション２１０を実行しているコンピュータ１００からアクセスされ制御コマンドなどがその中に書き込まれるファイルである。ＵＳＢディスクドライブインターフェース２０５は、スキャナ装置１０６に備えられているメモリ（ＲＡＭ、フラッシュメモリ、ＥＥＰＲＯＭなど）をディスクドライブとして使用するためのソフトウエアである。ＵＳＢマスストレージクラスインターフェース２０６は、ＵＳＢディスクドライブインターフェース２０５を介してメモリをＵＳＢマスストレージとして使用するためのソフトウエアである。
【０１７７】
スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢディスクドライブインターフェース２０５だけでなく、ＵＳＢ ＣＤドライブインターフェース２０８を備えている。ＵＳＢ ＣＤドライブインターフェース２０８は、スキャナ装置１０６が備えているメモリの一部をＣＤ−ＲＯＭドライブとしてコンピュータ１００が利用するためのインターフェースである。このＣＤ−ＲＯＭとして利用される不揮発性のメモリ領域には、オートランファイル２０７、判定アプリケーション２２４及びキャプチャアプリケーション２１０が記憶されている。
【０１７８】
なお、ＵＳＢ ＣＤドライブインターフェース２０８は、ＵＳＢ  ＣＤ−ＲＯＭドライブインターフェース、ＵＳＢ  ＣＤ−Ｒドライブインターフェース、ＵＳＢ  ＣＤ−ＲＷドライブインターフェースのいずれであってもよい。ＵＳＢ  ＣＤ−Ｒドライブインターフェース、ＵＳＢ  ＣＤ−ＲＷドライブインターフェースは、スキャナ装置１０６が備えている読み書き可能なメモリの一部をあたかもＣＤ−Ｒドライブ、ＣＤ−ＲＷドライブ中のＣＤ−Ｒディスク、ＣＤ−ＲＷディスクであると見なしてコンピュータ１００が利用することを可能とするためのインターフェースである。
【０１７９】
オートランファイル２０７は、判定アプリケーション２２４をコンピュータ１００で自動的に実行することを指示するための情報を含んでいる。オートランファイル２０７は、例えば、ａｕｔｏｒｕｎ．ｉｎｆである。オペレーティングシステム１０１がマイクロソフト（登録商標）ウインドウズであれば、ＣＤドライブ内にデータＣＤが挿入されると「ａｕｔｏｒｕｎ．ｉｎｆ」を実行するようになっている。オートランファイル２０７は、ＵＳＢ ＣＤドライブインターフェース２０８を介してアクセスされるため、自動的に起動されることになる。判定アプリケーション２２４は、コンピュータ１００で実行されて画像処理部（例：ＵＳＢスキャナクラスインターフェース１０８、画像読み取り部など）をコンピュータ１００から制御するためのデバイスドライバがコンピュータ１００にインストール済みであるか否かを判定するための判定プログラムである。
【０１８０】
キャプチャアプリケーション２１０は、コンピュータ１００で実行されて画像を読み取るための制御を行うソフトウエアである。キャプチャアプリケーション２１０は、デバイスドライバを備えていないＰＣや、デバイスドライバやアプリケーションのインストールを制限されているＰＣでの使用が有用である。なぜなら、キャプチャアプリケーション２１０は、ＰＣにデバイスドライバや何らかのキャプチャアプリケーションをインストールすることなく、直接、スキャナ装置１０６を制御できるソフトウエアだからである。
【０１８１】
スキャナ装置１０６は、ＵＳＢスキャナクラスインターフェース１０８とスイッチ２２１とを備えている。判定アプリケーション２２４によって、デバイスドライバがコンピュータ１００にインストールされていることが確認されると、スイッチ２２１は判定結果に基づいて、スキャナ装置１０６を外部記憶装置（ＵＳＢマスストレージクラスインターフェース）から画像処理部（ＵＳＢスキャナクラスインターフェース１０８）へと切り替えるよう制御される。なお、デバイスドライバがコンピュータ１００にインストールされていないことが判定されると、スイッチ２２１は、スキャナ装置１０６を外部記憶装置（ＵＳＢマスストレージクラスインターフェース）から画像処理部（ＵＳＢスキャナクラスインターフェース１０８）へと切り替える制御はされない。すなわち、スキャナ装置１０６は、そのまま外部記憶装置としてコンピュータ１００によって認識されたままとなる。
【０１８２】
または、デバイスドライバがコンピュータ１００にインストールされていないことが判定された際に、デフォルトモードで外部記憶装置（ＵＳＢマスストレージクラスインターフェース）として認識された状態を、一旦解消した後、再度外部記憶装置（ＵＳＢマスストレージクラスインターフェース）と認識させてもよい。
【０１８３】
コンピュータとスキャナ装置とのハードウエアブロックに関してはすでに図２に示したとおりなので、ここでは説明を省略する。
【０１８４】
ところで、本実施形態では、スキャナ装置１０６は外部記憶装置としてＯＳに認識されたままの状態で、画像を読み取ることができる。すなわち、キャプチャアプリケーション２１０をコンピュータ１００のＲＡＭ１２４にロードして実行すると、ＣＰＵ１２１は、キャプチャアプリケーション２１０にしたがって各種の制御命令を制御ファイル２０４に書き込む。スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４への書き込みアクセスを監視し、制御ファイル２０４にコマンドが書き込まれると、そのコマンドを実行する。ＣＰＵ１１０は、コマンドにしたがって読み取った画像の画像データを制御ファイル２０４に書き込む。ＣＰＵ１２１は、キャプチャアプリケーション２１０にしたがって制御ファイル２０４から画像データを抽出し、画像データを結合して画像ファイルを作成する。すなわち、制御ファイル２０４を介在させることで、スキャナ装置１０６をＵＳＢメモリ等としてＯＳに認識させたまま、画像を読み取ることが可能となる。
【０１８５】
コンピュータ１００上のオペレーティングシステム１０１は、ＵＳＢインターフェース１０４にＵＳＢケーブル１０５を介して何らかの装置が接続された場合、ＵＳＢマスストレージクラスインターフェースを有する装置としてアクセスし、装置の種類を確定する。ここで、スキャナ装置１０６には、オペレーティングシステム１０１にマスストレージデバイスクラスとして認識してもらうためのＵＳＢマスストレージクラスインターフェース２０６と、ＵＳＢスキャナクラスデバイスとして認識してもらうためにＵＳＢスキャナクラスインターフェース１０８とを有している。
【０１８６】
このように、これらの２つのＵＳＢクラスインターフェースは、スイッチ２２１によって択一的に切り替えられる。なお、スイッチ２２１は、第３の制御モードとして、２つのクラスのインターフェースを同時に有効にするように切り替えてもよい。スイッチ２２１は、ソフトウエアで実現されてもよいし、電気的に切り替え可能な電子スイッチを用いてハードウエアによって実現されてよい。また、ソフトウエア及びハードウエアの両方も用いてスイッチ２２１が実現されてもよい。
【０１８７】
スキャナ装置１０６には、コンピュータ１００からスキャナ装置１０６で画像読み取りを行うためのオペレーティングシステム１０１上で動作するキャプチャアプリケーション２１０と、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がコンピュータ１００に予めインストールされているかどうか判定する判定アプリケーション２２４が予め保存してある。また、スキャナ装置１０６をコンピュータ１００に接続した際に自動実行される、オートランファイル２０７、スキャナ装置１０６を制御するための制御ファイル２０４を予め保存してある。
【０１８８】
なお、キャプチャアプリケーション２１０と判定アプリケーション２２４とオートランファイル２０７は、ＵＳＢ ＣＤドライブインターフェース２０８を介して、制御ファイル２０４は、ＵＳＢディスクドライブインターフェース２０５を介して、コンピュータ１００からアクセスできる。
【０１８９】
上述したように、オペレーティングシステム１０１は、ＣＤドライブ内にデータＣＤが挿入された場合、「ａｕｔｏｒｕｎ．ｉｎｆ」と呼ばれる、ＣＤ上のファイルを検出して自動実行する機能を備えている。オートランファイル２０７は、ＵＳＢ ＣＤドライブインターフェース２０８を介してアクセスされるため、仮想的にＣＤが装着されたものとコンピュータ１００に認識させることが必要となる。仮想的にデータＣＤが装着されたことを示す信号をＣＰＵ１１０は、ＵＳＢインターフェース１０７を介してコンピュータ１００へ出力する。すなわち、ＣＰＵ１１０は、コンピュータ１００に接続した時点では、ＣＤドライブ内にデータＣＤが挿入されていない状態であるとコンピュータ１００に仮想的に認識させ、直後に、ＣＤが装着されたと仮想的に認識させることで、オートランファイル２０７が自動実行されるような制御を行うものとする。これにより、オペレーティングシステム１０１及びＣＰＵ１２１は、データＣＤが装着されたことを検知し、ａｕｔｏｒｕｎ．ｉｎｆを読み出して解析し、判定アプリケーションを読み出して起動する。
【０１９０】
さらに、コンピュータ１００は、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０と判定アプリケーション２２４とオートランファイル２０７とに対応するテーブルを、ファイルシステム２０１に関連付けたファイルフォルダ内に形成する。
【０１９１】
図２１、図２２は、コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行うフローのフローチャートである。
【０１９２】
コンピュータ１００のＣＰＵ１２１は、周辺装置（スキャナ装置１０６）が接続されたか否かを監視する（ステップＳ２１０１）。コンピュータ１００のＣＰＵ１２１は、ＵＳＢマスストレージクラスインターフェースを有する装置としてスキャナ装置１０６を接続する（ステップＳ２１０２）。コンピュータ１００は、インターフェースクラス等の情報を周辺装置（スキャナ装置１０６）から取得する（ステップＳ２１０３）。ＣＰＵ１２１は、この情報に基づいて、接続された周辺デバイスの種類を認識できる。
【０１９３】
周辺デバイスの種類を認識した段階では、スキャナ装置１０６の切り替えスイッチ２２１は、ＵＳＢマスストレージクラスインターフェース２０６に切り替えられている。そのため、コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６をＵＳＢマスストレージデバイスと認識する（ステップＳ２１０４）。
【０１９４】
コンピュータ１００のＣＰＵ１２１は、内部の切り替えスイッチ２２０をＵＳＢマスストレージドライバ２０２に切り替える（Ｓ２１０５）。スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢ ＣＤドライブインターフェース２０８とＵＳＢディスクドライブインターフェース２０５を有している。そのため、オペレーティングシステム１０１及びＣＰＵ１２１は、接続されたスキャナ装置１０６をＣＤドライブとディスクドライブとしてファイルシステムに追加する（ステップＳ２１０６）。
【０１９５】
オペレーティングシステム１０１は、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０と判定アプリケーション２２４とオートランファイル２０７に対応するテーブルを、ファイルシステム２０１に関連付けたファイルフォルダ内に形成する。このことによりＣＰＵ１２１は、スキャナ装置１０６内に格納してある制御ファイル２０４を、ドライブレター（例：Ｄ）を割り当てたディスクドライブ上のファイルとして認識する。また、ＣＰＵ１２１は、キャプチャアプリケーション２１０と判定アプリケーション２２４とオートランファイル２０７とを、ドライブレター（例：Ｅ）を割り当てたＣＤドライブ上のファイルとして扱うことができる。
【０１９６】
図２３は、ドライブレターを割り当てられたＣＤドライブ（スキャナ）をファイル管理ソフト（エクスプローラ）で開いた様子を示す図である。スキャナ装置１０６が提供しコンピュータ１００からのアクセスが可能なメモリ領域は、フォルダ３０２に対応している。フォルダ３０２は、コンピュータ１００に接続されたキーボード／マウス１２５を使用して開くことができる。フォルダ３０２には、キャプチャアプリケーション２１０（ファイル名：ＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅ）と、判定アプリケーション２２４（ファイル名：Ｊｕｄｇｅ．ｅｘｅ）と、オートランファイル２０７（ファイル名：Ａｕｔｏｒｕｎ．ｉｎｆ）とが格納されている。
【０１９７】
なお、すでに図９に示したように、スキャナ装置１０６が提供するメモリ領域は、フォルダ３０３に対応している。フォルダ３０３はコンピュータ１００から読み書き可能なフォルダであり、制御ファイル２０４（ファイル名：Ｃｏｎｔｒｏｌ．ｄａｔ）を格納している。
【０１９８】
次に、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＣＤドライブ内にデータＣＤが挿入されたと判定し、スキャナ装置１０６内にあるオートランファイル（自動実行情報ファイル）２０７をＲＡＭ１２４にロードして自動的にその内容を調べる処理を起動する（Ｓ２１０７）。オートランファイル２０７には、判定アプリケーション２２４を起動するよう記載されている。よって、オペレーティングシステム１０１は、スキャナ装置１０６内にある判定アプリケーション２２４をＲＡＭ１２４に読み込み自動的に起動する（Ｓ２１０８）。なお、判定アプリケーション２２４は、スキャナ装置１０６に対応したデバイスドライバ（ＵＳＢスキャナドライバ１０２）と、任意のキャプチャアプリケーション（画像編集ソフトウエアなど）との両方がインストール済みであるか否かを判定する（Ｓ２１０９）。これは、どちらか１つでも欠けていれば、画像の読み取りを実行できないからである。なお、簡易的な読取に限ればスキャナドライバだけでも読み取り可能な場合もあり、このような場合はスキャナドライバのインストールの判定だけを行ってもよい。
【０１９９】
判定アプリケーション２２４が、任意のキャプチャアプリケーションおよびＵＳＢスキャナドライバ１０２の少なくとも一方がインストールされていないと判定すると、判定アプリケーション２２４は、キャプチャアプリケーション２１０を起動するための動作を行う（Ｓ２１１０）。すなわち、オペレーティングシステム１０１及びＣＰＵ１２１は、スキャナ装置１０６内にあるキャプチャアプリケーション２１０をＲＡＭ１２４にロードして起動する。ＣＰＵ１２１は、スキャナ装置１０６を外部記憶装置として認識されているため、キャプチャアプリケーション２１０を直接起動することができる。
【０２００】
コンピュータ１００には、ディスプレイ１２６が接続されており、各種ユーザインターフェースの表示ができる。キャプチャアプリケーション２１０が起動したときに表示されるユーザインターフェースの一例は、図５に示した通りである。キャプチャアプリケーション２１０のユーザインターフェースが表示されると、ユーザは、キーボード／マウス１２５を操作して、スキャン設定を実行する。最後に、スキャンボタン３０１がキーボード／マウス１２５を使用してクリックされる。
【０２０１】
スキャンボタン３０１がキーボード／マウス１２５によりクリックされると、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャン設定を受け付け、スキャナ装置１０６内の制御ファイル２０４にスキャン設定を書き込む。さらに、ＣＰＵ１２１は、スキャン開始コマンドデータも制御ファイル２０４に書き込む（ステップＳ２１１１）。
【０２０２】
スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４を監視している。そうして、ＣＰＵ１１０は、スキャン設定およびスキャン開始コマンドデータが制御ファイル２０４に書かれたことを検出すると、制御ファイル２０４を読み込んで、そこに書かれているスキャン設定にしたがって画像読み取り部１１２を制御し、スキャンを開始する。
【０２０３】
スキャナ装置１０６はスキャンを開始すると、画像読み取り部１１２で読み取った画像を制御ファイルに書き込む。この制御ファイルは、スキャン設定を可能としている制御ファイルと同一であってもよいし、異なってもよい。
【０２０４】
コンピュータ１００のＣＰＵ１２１は、画像データが制御ファイル２０４に書き込まれたか否かを監視する（ステップＳ２１１２）。画像データが制御ファイル２０４に書き込まれたことを検出すると、制御ファイル２０４から画像データを読み出す（ステップＳ２１１３）。ＣＰＵ１２１は、指定された画像ファイル（本実施形態では、ファイル名「ｔｅｓｔ１」）を作成し、ハードディスクドライブ１２２に記憶する（ステップＳ２１１４）。
【０２０５】
図２４は、管理者権限を持つユーザによって、すでに、任意のキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がインストールされているコンピュータ１００のソフトウエアブロック図である。
【０２０６】
一般に、オペレーティングシステム１０１には、スキャナ装置１０６で画像読み取りを行うためのキャプチャアプリケーション２２２と、スキャナ装置１０６をＵＳＢで接続するためのＵＳＢスキャナドライバ１０２とが標準で用意されていない。そのため、一般には、ＵＳＢスキャナドライバ１０２と、このＵＳＢスキャナドライバ１０２を介してスキャナ装置１０６から画像を入力するためのキャプチャアプリケーション２２２とをコンピュータ１００へインストールする必要がある。
【０２０７】
ところが、管理者権限を持たないユーザは、コンピュータ１００へキャプチャアプリケーション２２２やＵＳＢスキャナドライバ１０２をインストールできないことがある。よって、これらがインストールの制限でインストールされていないときは、ステップＳ２１１０ないしＳ２１１４が実行される。
【０２０８】
一方、管理者権限を有するユーザが、予めコンピュータ１００へこれらのソフトウエアをインストールしていることもある。すなわち、この場合は、ステップＳ２１０９において、インストール済みと判定され、図２２に示したステップＳ２２０１に進む。なお、ＵＳＢマスストレージドライバ２０２とＵＳＢスキャナドライバ１０２は、スイッチ２２０によって択一的に切り替えられる（選択される）ものとする。
【０２０９】
図２２を参照して具体的な動作について説明する。スキャナ装置１０６はデフォルトの状態でマスストレージデバイスとして認識されている。キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がインストールされていると判定すると、判定アプリケーション２２４（ＣＰＵ１２１）は、スキャナ装置１０６に対して、ＵＳＢスキャナクラスインターフェース１０８で接続しなおすように指示を送信する（ステップＳ２２０１）。スキャナ装置１０６のＣＰＵ１１０は、インターフェースのクラスの切り替えの指示を受信すると、一度、コンピュータ１００への接続状態から切断状態に移行した後、再度、接続状態に移行する。
【０２１０】
このとき、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知する（ステップＳ２２０２）。ＣＰＵ１２１は、ＵＳＢマスストレージクラスインターフェースを有する装置としてスキャナ装置１０６を接続する（Ｓ２２０３）。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からのアクセスがあると、切り替えスイッチ２２１を、ＵＳＢマスストレージクラスインターフェース２０６からＵＳＢスキャナクラスインターフェース１０８に切り替える。コンピュータ１００にＵＳＢスキャナクラスインターフェース１０８にアクセスさせる。これによりコンピュータ１００は、周辺装置のインターフェースクラス等の情報を取得し（ステップＳ２２０４）、接続された周辺デバイスがスキャナデバイスであると認識することができる（ステップＳ２２０５）。
【０２１１】
一方、ＣＰＵ１２１は、判定プログラム（判定アプリケーション）にしたがってスイッチ２２０を操作し、ＵＳＢインターフェースドライバ１０３の接続先をＵＳＢマスストレージドライバ２０２からＵＳＢスキャナドライバ１０２へ切り替える（Ｓ２２０６）。
【０２１２】
ＣＰＵ１２１は、ユーザによる起動指示を受け付け、コンピュータ１００にインストールされているキャプチャアプリケーション２２２を起動する（ステップＳ２２０７、Ｓ２２０８）。なお、コンピュータ１００には、ディスプレイ１２６が接続されており、各種ユーザインターフェースの表示ができるものとする。キャプチャアプリケーション２２２は、図５に示したようなユーザインターフェースであってもよいし、異なるユーザインターフェースであってもよい。ここでは、説明の簡略化のために同一とする。
【０２１３】
ユーザは、キャプチャアプリケーション２２２で、読み取りモード（本実施形態では、白黒）、用紙サイズ（本実施形態では、Ａ４）、解像度（本実施形態では、３００ｄｐｉ）、読み取り面（本実施形態では、両面）をキーボード／マウス１２５を使用して選択し、保存ファイル名（本実施形態では、ｔｅｓｔ１）をキーボード／マウス１２５を使用して入力して、スキャンボタン３０１をキーボード／マウス１２５でキーの押下あるいはクリックする。
【０２１４】
スキャンボタン３０１がキーボード／マウス１２５でキーの押下あるいはクリックされると、キャプチャアプリケーション２２２（ＣＰＵ１２１）は、ＵＳＢスキャナドライバ１０２からＵＳＢインターフェースドライバ１０３とＵＳＢインターフェース１０４を介して、スキャナ装置１０６へスキャン設定を送信し、さらにスキャン開始コマンドを送信する（ステップＳ２２０９）。
【０２１５】
スキャナ装置１０６は、ＵＳＢインターフェース１０７からＵＳＢスキャナクラスインターフェースを介して、スキャン設定およびスキャン開始コマンドデータを受信したことを検出すると、設定されたスキャン設定でスキャンを開始する。ＣＰＵ１１０は、画像読み取り部１１２が読み取った画像データをＵＳＢスキャナクラスインターフェース１０８から送信する。
【０２１６】
コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６が送信する画像データを、ＵＳＢインターフェース１０７を介して受信する（ステップＳ２２１０、Ｓ２２１１）。キャプチャアプリケーション２２２（ＣＰＵ１２１）は、受信した画像データから、指定されたファイル名（本実施形態では、ｔｅｓｔ１）を付与した画像ファイルを生成して保存する（ステップＳ２２１２）。
【０２１７】
以上説明したように、本実施形態によれば、スキャナドライバがインストール済みであれば周辺装置を画像処理装置として情報処理装置に認識させ、スキャナドライバがインストールされてないければ周辺装置を情報処理装置により読み書き可能である外部記憶装置として情報処理装置に認識させる。なお、上述したように、画像を読み取るために必要となる複数のソフトウエア（キャプチャアプリケーション及びドライバ）のうち少なくとも１つが未インストールであれば、周辺装置を外部記憶装置として情報処理装置に認識させてもよい。この場合は、スキャナ装置１０６などの周辺装置を外部記憶装置として使用できるようになる。もちろん、スキャナドライバなど画像を読み取るために必要となるすべての制御用プログラムがインストールされていれば、情報処理装置は、スキャナ装置１０６をスキャナ装置として認識する。
【０２１８】
また、判定プログラム（判定アプリケーション）は自動実行形式のファイルであるため、ユーザは起動を指示する手間を省ける。
【０２１９】
なお、本実施形態では、デバイスドライバなど必要な制御用プログラムがインストールされていなければ、スキャナ装置１０６が記憶しているキャプチャアプリケーション２１０を起動することで、画像を読み取ることが可能となる。例えば、スキャナドライバなどをインストールするには、オペレーティングシステム１０１の管理者権限がユーザに要求されることがある。例えば、外出先のＰＣを利用する際にこのような状況が発生するだろう。本実施形態であれば、スキャナドライバなどのインストールが不要となるため、管理者権限でログインできない制限ユーザや一般ユーザであっても、画像の読み取りを実行できる。
【０２２０】
もちろん、管理者権限を持つユーザが、すでに、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２をインストールしているコンピュータ１００においては、汎用のキャプチャアプリケーションを利用して本実施形態のスキャナ装置で画像読み取りを行うことができる。
【０２２１】
また、スキャナ装置１０６は、コンピュータ１００に接続した際にデフォルトでマスストレージデバイスとして認識される。よって、デバイスドライバがインストールされないことが原因でオペレーティングシステム１０１が不明なデバイスと認識することを回避できる。オペレーティングシステム１０１等のドライバインストールウイザードが起動したりすることも回避できる。
【０２２２】
なお、本実施形態においては、キャプチャアプリケーション２１０からスキャンを開始する例を説明した。しかし、スキャナ装置１０６上にスタートボタン等を配置し、スタートボタンを押下されたことをＣＰＵ１１０が検知すると、スキャンを開始してもよい。その際、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャナ装置１０６のスタートボタンを、制御ファイル２０４を介して監視してもよい。この場合は、ＣＰＵ１１０がスタートボタンを押下されたことを制御ファイル２０４に書き込むことになる。
【０２２３】
キャプチャアプリケーション２１０は、スキャナ装置１０６に制御ファイル２０４を介してスキャン開始を指示してもよいし、キャプチャアプリケーション２１０が、制御ファイル２０４に画像データが生成されたことを検知して、スキャンが開始されたと判断し、画像ファイルをハードディスクドライブに保存しても良い。
【０２２４】
また、本実施形態においては、スキャナ装置１０６の接続時にキャプチャアプリケーション２１０を起動し、ユーザインターフェースを表示しているが、スキャナ装置１０６の最初の接続時に、オペレーティングシステム１０１に常駐してもよい。
【０２２５】
また、本実施形態においては、キャプチャアプリケーション２１０には画像表示機能が無いが、キャプチャアプリケーション２１０が画像表示機能を備えていても良い。
【０２２６】
なお、ＵＳＢ ＣＤドライブインターフェースを持たない場合は、ＵＳＢディスクドライブインターフェースを介して読み書き可能な領域として認識される領域に、自動実行情報ファイルや判定アプリケーションを格納してもよい。このようにすれば自動実行情報ファイルの記述内容に従って判定アプリケーションの自動起動が可能となる。
【０２２７】
＜第６の実施形態＞
図２５は、コンピュータとスキャナ装置とのソフトウエアブロック図である。図１などと共通する部分には、同一の参照番号が付与されている。とりわけ、スキャナ装置１０６では、キャプチャアプリケーション２１０、制御ファイル２０４及びＵＳＢディスクドライブインターフェース２０５が削除され、代わりに、インストーラ２２５が採用されている。インストーラ２２５は、スキャナドライバなど画像を読み取るために必要な制御用プログラムをコンピュータ１００へインストールするためのソフトウエアである。必要な制御用プログラムは、例えば、上述したキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２である。判定アプリケーション２２４にしたがってＣＰＵ１２１は、これらの制御用プログラムがインストールされているか否かを判定し、未インストールであればスキャナ装置１０６からこれらの制御用プログラムをコンピュータ１００に送信し、インストールする。ＣＰＵ１２１は、インストーラ２２５と判定アプリケーション２２４とオートランファイル２０７とへＵＳＢ ＣＤドライブインターフェース２０８を介してアクセスできる。オートランファイル２０７は、例えば、ａｕｔｏｒｕｎ．ｉｎｆであり、ＣＰＵ１２１に判定アプリケーション２２４を自動起動させる。判定アプリケーション２２４は、ＣＰＵ１２１にインストーラ２２５を起動させる。
【０２２８】
図２６は、コンピュータとスキャナ装置とのソフトウエアブロック図である。図２６では、キャプチャアプリケーション２２２とＵＳＢスキャナドライバ１０２とがコンピュータ１００にインストールされている状態を示している。この場合は、ＣＰＵ１２１がスイッチ２２０をＵＳＢマスストレージドライバ２０２からＵＳＢスキャナドライバ１０２へ切り替えるものとする。この切り替えは、判定アプリケーション２２４の判定結果に依存して実行される。
【０２２９】
図２７は、第６の実施形態に係る画像読み取りを示したフローチャートである。なお、図２１と共通する処理には同一の参照符号を付与することで説明を簡潔にする。ステップＳ２１０１ないしステップＳ２１０８が実行され、ＣＰＵ１２１は、判定アプリケーション２２４を起動する。
【０２３０】
ＣＰＵ１２１は、判定アプリケーション２２４にしたがって、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がインストールされているか否かを判定する（Ｓ２１０９）。ＣＰＵ１２１は、所定のファイル名のファイルを検索したり、レジストリの内容を解析したりすることで、これらのソフトウエアがインストール済みであるか否かを判定する。未インストールであれば、ステップＳ２７１０に進み。インストール済みであれば、図２２に示したステップＳ２２２０１に進む。
【０２３１】
ＣＰＵ１２１は、判定アプリケーション２２４にしたがって、インストーラ２２５を起動する（Ｓ２７１０）。インストーラ２２５は、コンピュータ１００に、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２をインストールする（Ｓ２７１１）。インストーラ２２５には、圧縮された状態でキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２を内包している。インストールが完了すると、コンピュータ１００の内部状態は、図２６に示した通りとなる。その後、図２２に示したステップＳ２２０１に進む。
【０２３２】
なお、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２のうち一部のソフトウエアがコンピュータ１００内にインストールされていることがある。この場合、ＣＰＵ１２１は、不足しているソフトウエアのみをインストールすることが作業の短縮化の観点から好適であろう。もちろん、インストール済みのソフトウエアを上書きしてインストールしてもよい。
【０２３３】
以上説明したように、第６の実施形態によれば、画像を読み取るために必要なソフトウエアがインストールされていなければ、スキャナ装置１０６からこれらをインストールすることができる。よって、これらのソフトウエアを記憶した専用のＣＤ−ＲＯＭを紛失した場合や、元々専用のＣＤ−ＲＯＭを製品パッケージに同梱していない場合であっても、スキャナ装置１０６を使用することが可能となる。また、ＷＥＢサイトにこれらのソフトウエアを探しに行く手間も省けるであろう。
【０２３４】
上述した第５、第６の実施形態においては、画像読み取り装置を周辺装置の一例として説明した。しかし、本発明の周辺装置は、画像形成装置（プリンタ）であってもよいし、画像読み取り機能と画像形成機能を併せ持つ複合機等であってもよい。この場合、画像処理部は画像形成部に相当し、キャプチャアプリケーションは印刷アプリケーションに相当しよう。
【０２３５】
具体的に、ＣＰＵ１２１は、印刷アプリケーションにしたがって、周辺装置のメモリ（読み書き可能でドライブレターが割り当てられたディスクドライブ）の制御ファイル２０４に印刷ジョブのデータを書き込む。周辺装置のＣＰＵ１１０は、制御ファイル２０４を監視しており、印刷ジョブのデータが書き込まれるとこれを読み出し、画像形成部（プリンタエンジン）に転送する。ＣＰＵ１１０は、必要に応じて印刷ジョブのデータを変換（ラスタライズなど）してもよい。これによって、画像形成部が印刷処理を実行する。このように、周辺装置は、画像形成装置であってもよい。
【０２３６】
なお、周辺装置のデバイスドライバがコンピュータにインストールされていない場合は、市販の周辺装置では印刷を行うことができない。本実施形態では、ＣＰＵ１２１は周辺装置の記憶手段から印刷アプリケーションを起動する。コンピュータのアプリケーションソフトウエア（ワードプロセッサや画像編集ソフトウエアなど）が印刷対象データを汎用形式のファイルとして出力すると、起動された印刷アプリケーションにより、ＣＰＵ１２１は、汎用形式のファイルを印刷ジョブのデータに変換し、制御ファイル２０４へ書き込む。なお、汎用形式のファイルがそのまま周辺装置の記憶手段に書き込まれてもよい。これにより、周辺装置のデバイスドライバをインストールしなくても、周辺装置で印刷を実行できるようになる。
【０２３７】
ところで、スキャナ装置１０６からキャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２をコンピュータ１００にインストールしたときは、これらをＣＰＵ１２１が強制的にアンインストール（削除）してもよい。例えば、スキャナ装置１０６とコンピュータ１００との接続が切断されるなど、周辺装置の取り外しを指示された時点で、ＣＰＵ１２１は、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２を削除する。あるいは、ユーザのスキャン作業が終了したら、ＣＰＵ１２１は、これらを削除しても良い。この場合、判定アプリケーション２２４は常駐しており、ＣＰＵ１２１は判定アプリケーション２２４にしたがってスキャナ装置１０６が取り外されたか否かや、キャプチャアプリケーション２２２が終了したか否かを監視する。
【０２３８】
また、キャプチャアプリケーション２２２およびＵＳＢスキャナドライバ１０２がコンピュータ１００内にインストールされている場合に、ＣＰＵ１２１は、スキャナ装置１０６内に保持されさているソフトウエアモジュール類のバージョンとインストール済みのフトウエアモジュール類のバージョンとを比較してもよい。そして、スキャナ装置１０６に記憶されているフトウエアモジュール類のバージョンが相対的に新しい場合に限り、これらをコンピュータ１００にインストールしてもよい。
【０２３９】
また、本実施形態においては、ＲＡＭ２０３の制御ファイル２０４にスキャン設定を書き込んでいるため、設定が保存されない。しかし、スキャナ装置１０６内で、設定されたスキャン設定を不図示の不揮発メモリ等に記憶しておいても良い。また、その設定は、オペレーティングシステム１０１のユーザ毎に、記憶しておいても良い。
【０２４０】
また、上記２つの実施形態においては、マイクロソフト（登録商標）ウインドウズオペレーティングシステム上での動作を例にとって説明した。しかしこれは一例にすぎない。本発明は、アップル社のオペレーティングシステムやリナックスオペレーティングシステム等、その他のオペレーティングシステムにも適用できる技術思想だからである。
【０２４１】
なお、上述した実施形態では、コンピュータ１００のオペレーティングシステム１０１によりａｕｔｏｒｕｎ．ｉｎｆに記述されたソフトウエアを実行させるために読み書き可能な外部記憶装置として認識させる際に、ＣＤ−ＲドライブやＣＤ−ＲＷドライブとして認識させる技術を用いたが、ＤＶＤ−ＲＷ等の規格のＤＶＤドライブやブルーレイ規格のドライブとして認識されるようにしても良い。
【０２４２】
＜第７の実施形態＞
上述したいくつかの実施形態は、デバイスドライバやソフトウエアをコンピュータにインストールすることなく、画像読取装置を利用可能とする発明であった。すなわち、画像読取装置を外部記憶装置として情報処理装置に認識させ、この外部記憶装置に画像ファイルを書き込み、情報処理装置がこの画像ファイルを読み出す。これは、情報処理装置を制御するオペレーティングシステム（ＯＳ）は、画像読取装置のデバイスドライバを有していないが、外部記憶装置のデバイスドライバであれば有している性質を利用した発明である。
【０２４３】
しかし、画像ファイルのサイズによって、画像読取装置が備える記憶装置に例えば１ページの画像ファイルの全体を格納できないことが予想される。この場合、画像読取装置は、極めて小さな画像ファイルしか情報処理装置に転送できなくなってしまう。すなわち、画像読取装置の能力を十分に生かしきれないおそれがある。
【０２４４】
そこで、第７の実施形態は、例えば、画像読取装置のデバイスドライバをコンピュータにインストールすることなく、画像読取装置により比較的に大きな画像も読取可能とすることを目的とする。
【０２４５】
第７の実施形態に係る、汎用情報処理装置として例示したコンピュータと、画像読取装置としてのスキャナとのソフトウエアブロックは、図１に記載した通りである。これらのハードウエアブロックは、図２に記載した通りである。
【０２４６】
図２によれば、スキャナ装置１０６は、ＣＰＵ１１０、ＲＯＭ１２７（ソフトウエア記憶手段）、ＲＡＭ２０３（ファイル記憶手段）、画像読み取り部１１２、ＵＳＢコントローラ１２８、ＵＳＢインターフェース１０７を備えている。スキャナ装置１０６に電力が投入されると、ＣＰＵ１１０は、ファームウエアをＲＯＭ１２７から読み出して起動する。とりわけ、ＲＯＭ１２７は、画像読取装置を使用するために情報処理装置で実行されるソフトウエアを記憶したソフトウエア記憶手段の一例である。また、ＲＡＭ２０３は制御ファイル等を記憶するファイル記憶手段の一例である。なお、ＲＯＭ１２７やＲＡＭ２０３は、フラッシュメモリやＥＥＰＲＯＭなどの不揮発性メモリによって実現されてもよい。また、１つの不揮発性メモリによってＲＯＭ１２７とＲＡＭ２０３が実現されてもよい。なお、ＲＡＭ２０３には、画像読み取り部によって取得された画像データを一時的に格納するためのバッファ領域が確保される。
【０２４７】
コンピュータ１００にスキャナ装置１０６が接続されると、ＣＰＵ１２１は、予めインストールされている標準のＵＳＢマスストレージドライバ２０２を起動する。また、スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６を有している。そのため、コンピュータ１００にスキャナ装置１０６を接続すると、ＵＳＢマスストレージクラスインターフェース２０６は、自己がＵＳＢマスストレージクラスインターフェースであることを示す識別情報を送信する。よって、ＣＰＵ１２１及びオペレーティングシステム１０１は、スキャナ装置１０６をマスストレージデバイスとして認識する。さらに、ＣＰＵ１２１及びオペレーティングシステム１０１は、スキャナ装置１０６のＲＯＭ１２７やＲＡＭ２０３を外部記憶装置としてアクセスする。すなわち、スキャナ装置１０６は、よく知られたＵＳＢメモリと同等の動作をすることになる。オペレーティングシステム１０１は、使用されていないドライブレター（Ｄ：やＥ：など）をスキャナ装置１０６に割り当てることで、スキャナ装置１０６はドライブの１つとなる。
【０２４８】
図２８は、コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行う処理のフローチャートである。
【０２４９】
コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６が接続されたか否かを監視する（ステップＳ２８０１）。ＣＰＵ１２１は、ＵＳＢマスストレージクラスインターフェースを有する装置としてスキャナ装置１０６を接続する（ステップＳ２８０２）。
【０２５０】
ＣＰＵ１２１は、インターフェースクラス等の情報をスキャナ装置１０６から取得する（ステップＳ２８０３）。この情報により接続された周辺装置の種類が認識できる。
【０２５１】
上述したようにスキャナ装置１０６は、ＵＳＢマスストレージインターフェースを有している。そのため、コンピュータ１００にスキャナ装置１０６が接続されたとき、ＣＰＵ１２１は、ＵＳＢマスストレージデバイスが接続されたと認識する（ステップＳ２８０４）。また、スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢディスクドライブインターフェース２０５を有している。そのため、ＣＰＵ１２１は、接続されたスキャナ装置１０６をディスクドライブとして認識する。このように、ＵＳＢマスストレージクラスインターフェース２０６は、画像読取装置を情報処理装置の外部記憶装置として情報処理装置に認識させるための認識制御手段の一例である。
【０２５２】
オペレーティングシステム１０１は、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０に対応するテーブルを、ファイルシステム２０１に関連付けたファイルフォルダ内に形成する。このことによりＣＰＵ１２１は、スキャナ装置１０６内に格納してある制御ファイル２０４とキャプチャアプリケーション２１０を、ドライブレターを割り当てたディスクドライブ上のファイルとして扱うことができる（ステップＳ２８０５）。これは、スキャナ装置１０６が、ＯＳによってドライブレターを割り当てたディスクドライブとして認識されているからである。
【０２５３】
ドライブレターを割り当てられたディスクドライブ（スキャナ）をファイル管理ソフト（エクスプローラ）で開いた様子は、すでに図４に示したとおりである。
【０２５４】
ＣＰＵ１２１は、フォルダ３００内のキャプチャアプリケーション２１０を起動するための指示が入力されたか否かを監視する（ステップＳ２８０６）。この指示は、キーボード／マウス１２５から入力されてもよいし、フォルダ３００に格納されている不図示のａｕｔｏｒｕｎ．ｉｎｆによって指示されてもよい。例えば、マイクロソフト（登録商標）ウインドウズオペレーティングシステムにおいては、ＣＤドライブ内にＣＤ−ＲＯＭが挿入されると、「ａｕｔｏｒｕｎ．ｉｎｆ」と呼ばれる、ＣＤ−ＲＯＭ上のファイルを検出し、「ａｕｔｏｒｕｎ．ｉｎｆ」内で自動実行することが指定されたコマンドを実行する。また、マイクロソフト（登録商標）ウインドウズオペレーティングシステムのあるバージョンにおいては、ＵＳＢディスクドライブ内に「ａｕｔｏｒｕｎ．ｉｎｆ」という名称のファイルが存在すると、オペレーティングシステムはその内部に記述されたコマンドを自動実行する。すなわち、「ａｕｔｏｒｕｎ．ｉｎｆ」内に自動実行させたい実行ファイル名を記述しておけば、利用者にキーボード／マウス１２５を操作させることなく自動的にコンピュータ１００に実行ファイルを起動させることも可能である。よって、コマンドファイルとして上述のＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅがａｕｔｏｒｕｎ．ｉｎｆ内で記述されていることになる。キャプチャアプリケーション２１０を起動するための指示が入力されると、ＣＰＵ１２１は、スキャナ装置１０６のＲＯＭ１２７に記憶されているキャプチャアプリケーション２１０を読み出し、ＲＡＭ１２４にロードして起動する（ステップＳ２８０７）。このように、外部記憶装置として認識された画像読取装置のソフトウエア記憶手段からソフトウエアが情報処理装置によって実行される。
【０２５５】
上記ａｕｔｏｒｕｎ．ｉｎｆ内で記述されている、実行が指定されたコマンドファイルはＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅよりも簡単な機能のａｕｔｏｒｕｎ．ｅｘｅ等のプログラムであってもよい。また、コマンドファイルとして記述されたプログラムは、メモリ上のファイルの受け渡しで画像読取を可能とするドライバプログラムの機能を、少なくとも含んでいればよい。
【０２５６】
コンピュータ１００は、ディスプレイ１２６を接続しており、各種ユーザインターフェースをディスプレイ１２６に表示する。キャプチャアプリケーション２１０が起動したときに表示されるユーザインターフェースの一例は、すでに図５に示した通りである。
【０２５７】
図５に示したスキャンボタン３０１がキーボード／マウス１２５によりクリックされたと判断すると（ステップＳ２８０７ａ）、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャン設定を受け付け、スキャナ装置１０６内の制御ファイル２０４にスキャン設定を書き込むことでスキャナ装置１０６へ送信が行われる。さらに、ＣＰＵ１２１は、スキャン開始コマンドも制御ファイル２０４に書き込む（ステップＳ２８０８）。なお、スキャン設定は、スキャン開始コマンドに添付されて転送されるデータであってもよい。
【０２５８】
スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４が更新されたか否かを監視している。制御ファイル２０４が更新されると、ＣＰＵ１１０は、制御ファイル２０４を解析し、制御ファイル２０４に含まれているコマンドを実行する。例えば、ＣＰＵ１１０は、スキャン設定およびスキャン開始コマンドなどが制御ファイル２０４に書かれたことを検出すると、制御ファイル２０４に書かれているスキャン設定にしたがって画像読み取り部１１２を制御し、スキャンを開始する。このように、ＣＰＵ１１０は、ファイル記憶手段に書き込まれた制御ファイルを解析し、制御ファイルに含まれているコマンドを実行する実行手段の一例である。
【０２５９】
スキャナ装置１０６のＣＰＵ１１０は、上記のように制御ファイル２０４に含まれているコマンドを実行するとともに、コマンドを受け付けたことを示すレスポンス情報を制御ファイル２０４または他の特定のファイルに書き込むようにしてもよい。このようにすることで、制御ファイル２０４または上述した他の特定のファイル等の定期的なポーリングを行っているコンピュータ１００へのレスポンス情報の送信と等価な働きを実行することができる。  
スキャナ装置１０６はスキャンを開始すると、画像読み取り部１１２で読み取った画像データを制御ファイルに書き込む。この制御ファイルは、スキャン設定やコマンドが書き込まれている制御ファイル２０４と同一であってもよいし、異なってもよい。ここでは、説明の便宜上、両者は同一であるものとする。又は制御ファイルではなく画像データを転送するための他のファイルを別途用意してもよい。なお、レスポンス情報や画像データを制御ファイル２０４または他の特定のファイルに書き込んでいる間は、この制御ファイル２０４または当該特定のファイルの読出しはブロックされる。
【０２６０】
コンピュータ１００のＣＰＵ１２１は、画像データが制御ファイル２０４に書き込まれたか否かを監視する（ステップＳ２８０９）。画像データが制御ファイル２０４に書き込まれたことを検出すると、制御ファイル２０４から画像データを読み出す（ステップＳ２８１０）。ＣＰＵ１２１は、指定された画像ファイル（本実施形態では、ファイル名「ｔｅｓｔ１」）を作成し、ハードディスクドライブ１２２に記憶する（ステップＳ２８１１）。
【０２６１】
ところで、１枚の画像あたりのデータサイズが、ＲＡＭ２０３に確保しているバッファのサイズよりも大きいことがある。これは、原稿のサイズが大きかったり、画像圧縮率が小さかったりすると、発生しやすい。なお、バッファは、ＲＡＭ２０３以外の不図示のメモリに確保されてもよい。
【０２６２】
そこで、本実施形態では、ＣＰＵ１１０は、バッファの記憶可能容量を超える画像データについて、この画像データのサイズより小さなサイズの部分画像データごとに、読取と制御ファイル２０４への格納とを実行する。このように、部分画像データは、例えば１ページの画像の全体を表す全体画像データに対する部分的な画像データである。
【０２６３】
ＣＰＵ１１０は、原稿から読み取った部分画像データによってバッファが満杯になると、その旨を示すステータスデータを制御ファイル２０４に書き込む。また、ＣＰＵ１１０は、部分画像データを制御ファイル２０４に保存する。このように、ＣＰＵ１１０は、バッファに格納された部分画像データを制御ファイルに保存する保存手段の一例である。
【０２６４】
コンピュータ１００のＣＰＵ１２１は、制御ファイル２０４の一部を読み出し、満杯になったことを示すステータスデータが格納されているか否かを判定する。満杯になったことを示すステータスデータが格納されていれば、部分画像データの転送が可能となったことを意味する。よって、ＣＰＵ１２１は、制御ファイル２０４から部分画像データを読み出し、ＲＡＭ１２４に格納するとともに、制御ファイル２０４から部分画像データを削除する。このように、ステータスデータを中に含む制御ファイルは、部分画像データの転送が可能となったことを通知するための通知手段の一例である。なお、通知手段は、制御ソフトウエアを実行する情報処理装置によって制御ファイルにコマンドが書き込まれてから、実行手段によって制御ファイル又は他のファイルへ部分画像データの書き込みが完了するまで、情報処理装置による制御ファイル又は他のファイルの読み出し要求に応答しないようにしてもよい。この場合、情報処理装置は、画像読み取り装置が制御ファイル等の読取に応答したことをもって、部分画像データの転送が可能となったことを認識すると同時に、部分画像データの読み出しを実行し完了する。
【０２６５】
スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４から部分画像データが削除されると、中断されていた画像の読取を再開する。ＣＰＵ１１０は、原稿から読み取った新たな部分画像データによってバッファが満杯になると、その旨を示すステータスデータを制御ファイル２０４に書き込む。これらの動作は、１枚の原稿についての画像の読取が完了するまで、繰り返し実行される。１枚の原稿についての画像の読取が完了すると、ＣＰＵ１１０は、画像読取の完了を示すステータスデータを制御ファイル２０４に書き込む。
【０２６６】
コンピュータ１００のＣＰＵ１２１は、制御ファイル２０４を読み出し、読取完了を示すステータスデータが格納されているか否かを判定する。読取完了を示すステータスデータが格納されていれば、ＣＰＵ１２１は、ＲＡＭ１２４に格納して置いた一連の部分画像データを合成して、１枚相当の画像データを作成する。なお、ＣＰＵ１２１の動作は、スキャナ装置１０６に保存されているキャプチャアプリケーション２１０を、コンピュータ１００のＣＰＵ１２１で実行することによって実現されている。一方、スキャナ装置１０６のＣＰＵ１１０の動作は、ファームウエアによって実現されている。
【０２６７】
＜第８の実施形態＞
第８の実施形態に係る、コンピュータと画像読取装置としてのスキャナのソフトウエアブロックは、図６に示した通りである。
【０２６８】
第７の実施形態で説明したＵＳＢマスストレージクラスインターフェース２０６は、複数のＵＳＢマスストレージサブクラスを有することが可能である。そこで、第８の実施形態では、ＵＳＢディスクドライブインターフェース２０５とＵＳＢ ＣＤドライブインターフェース２０８といった２つのサブクラスがスキャナ装置１０６に備えられている。コンピュータ１００上のオペレーティングシステム１０１は、論理的にそれぞれを別デバイスとしてアクセス可能である。すなわち、コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６を２つのディスクドライブとして認識し、ドライブレターをそれぞれに割り当てる。
【０２６９】
より詳細に説明する。コンピュータ１００にスキャナ装置１０６が接続されると、オペレーティングシステム１０１（ＣＰＵ１２１）は、ＵＳＢインターフェース１０４にて何らかの周辺デバイスの接続を検知する。そして、ＣＰＵ１２１は、ＵＳＢケーブル１０５を介して、スキャナ装置１０６のＵＳＢインターフェース１０７にアクセスする。
【０２７０】
スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７にコンピュータ１００からアクセスがあると、ＵＳＢマスストレージクラスインターフェース２０６にアクセスさせる。このように、オペレーティングシステム１０１は、スキャナ装置１０６のＵＳＢマスストレージクラスインターフェース２０６へアクセスする。これにより、ＣＰＵ１２１は、予めオペレーティングシステム１０１に含まれているＵＳＢマスストレージドライバ２０２を利用して、ＵＳＢインターフェースドライバ１０３とＵＳＢインターフェース１０４からＵＳＢケーブル１０５を介してスキャナ装置１０６にアクセス可能になる。
【０２７１】
また、スキャナ装置１０６は２つのＵＳＢマスストレージサブクラスを有していることから、オペレーティングシステム１０１は２つのマスストレージクラスデバイスとしてスキャナ装置１０６を認識する。よって、コンピュータ１００のＣＰＵ１２１は、スキャナ装置１０６のＵＳＢインターフェース１０７、ＵＳＢマスストレージクラスインターフェース２０６、ＵＳＢ ＣＤドライブインターフェース２０８あるいはＵＳＢディスクドライブインターフェース２０５を介して、管理者権限を必要としないアクセス方法でスキャナ装置１０６にアクセスできる。
【０２７２】
また、スキャナ装置１０６には、オートランファイル２０７と、キャプチャアプリケーション２１０と、制御ファイル２０４とが予め保存されている。オートランファイル２０７は、上述したａｕｔｏｒｕｎ．ｉｎｆなどである。
【０２７３】
なお、コンピュータ１００のＣＰＵ１２１は、ＵＳＢ ＣＤドライブインターフェース２０８を介して、制御ファイル２０４は、ＵＳＢディスクドライブインターフェース２０５を介して、キャプチャアプリケーション２１０とオートランファイル２０７とにアクセスする。
【０２７４】
上述したように、オペレーティングシステム１０１がマイクロソフト（登録商標）ウインドウズであれば、ＣＤドライブ内にデータＣＤが挿入されると「ａｕｔｏｒｕｎ．ｉｎｆ」を実行する。オートランファイル２０７は、ＵＳＢ ＣＤドライブインターフェース２０８を介してアクセスされるため、自動的に起動されることになる。
【０２７５】
スキャナ装置１０６のＣＰＵ１１０は、コンピュータ１００に接続した時点で、ＣＤドライブ内にデータＣＤが挿入されていない状態であるとオペレーティングシステム１０１に仮想的に認識させる。次に、ＣＰＵ１１０は、ＣＤが挿入されたことをオペレーティングシステム１０１に仮想的に認識させることで、オートランファイル２０７が自動実行されるように制御する。
【０２７６】
さらに、コンピュータ１００は、スキャナ装置１０６に保存してある制御ファイル２０４とキャプチャアプリケーション２１０とオートランファイル２０７に対応するテーブルを、ファイルシステム２０１に関連付けられたフォルダ内に形成する。
【０２７７】
図２９は、コンピュータ１００からキャプチャアプリケーション２１０を利用してスキャナ装置１０６で画像読み取りを行う処理を示したフローチャートである。既に説明した箇所には同一の参照符号を付与することで、説明を簡潔にする。
【０２７８】
ステップＳ２８０１ないしステップＳ２８０４が実行されると、コンピュータ１００のＣＰＵ１２１は、マスストレージデバイスが接続された認識する。スキャナ装置１０６は、ＵＳＢマスストレージクラスインターフェース２０６のサブクラスとして、ＵＳＢ ＣＤドライブインターフェース２０８とＵＳＢディスクドライブインターフェース２０５を有している。そのため、コンピュータ１００のＣＰＵ１２１は、接続されたスキャナ装置１０６をそれぞれ、ＣＤドライブとディスクドライブとして認識する（ステップＳ２９０５）。なお、ＵＳＢマスストレージクラスインターフェース２０６は、サブクラスとして、ＵＳＢ ＣＤドライブインターフェース２０８とＵＳＢディスクドライブインターフェース２０５を有していることを示す情報をコンピュータ１００に通知する。この通知は、ＵＳＢインターフェースドライバ１０３を経由してオペレーティングシステム１０１に伝達される。
【０２７９】
オペレーティングシステム１０１（ＣＰＵ１２１）は、ファイルシステム２０１に関連付けられたファイルフォルダ内に、スキャナ装置１０６内に保存してある制御ファイル２０４とキャプチャアプリケーション２１０とオートランファイル２０７に対応するテーブルを形成する。そのため、ＣＰＵ１２１は、スキャナ装置１０６内に保存してある制御ファイル２０４をディスクドライブ上のファイルとして認識する。また、ＣＰＵ１２１は、キャプチャアプリケーション２１０とオートランファイル２０７をＣＤドライブ上のファイルとして認識する。
【０２８０】
ＣＤドライブとして認識されているメモリ領域に対応したフォルダの一例は、すでに図８に示した通りである。すなわち、スキャナ装置１０６のＲＯＭやＲＡＭのうち、ＣＤドライブとして認識されているメモリ領域がフォルダ３０２としてコンピュータ１００には認識される。よって、フォルダ３０２に、キャプチャアプリケーション２１０とオートランファイル２０７が格納されているように見える。
【０２８１】
ディスクドライブとして認識されているメモリ領域に対応したフォルダの一例は、すでに図９に示した通りである。スキャナ装置１０６のＲＯＭやＲＡＭのうち、ディスクドライブとして認識されているメモリ領域がフォルダ３０３としてコンピュータ１００には認識される。よって、フォルダ３０３に、制御ファイル２０４が格納されているように見える。
【０２８２】
ユーザは、コンピュータ１００に接続されたキーボード／マウス１２５を使用して、図８に示すようなフォルダ３０２と図９に示すようなフォルダ３０３を開くことができる。
【０２８３】
オペレーティングシステム１０１（ＣＰＵ１２１）は、ＣＤドライブ内にデータＣＤが挿入されたと判断すると、オートランファイル２０７を実行する（ステップＳ２９０６）。オートランファイル２０７は、予め、キャプチャアプリケーション２１０を起動するように記述されている。そのため、ＣＰＵ１２１は、オートランファイル２０７の記述を解釈して、キャプチャアプリケーション２１０を起動する（ステップＳ２９０７）。ユーザの関与は不要であるため、ユーザには、キャプチャアプリケーション２１０が自動的に起動されたように見える。
【０２８４】
その後、上述したステップＳ２８０７ａないしＳ２８１１が実行される。
【０２８５】
以上、第７及び第８の実施形態で説明したように、本発明では、コンピュータ１００にデバイスドライバやアプリケーションなどのソフトウエアをインストールすることなく、スキャナ装置１０６で画像読み取りを行うことができるようになる。例えば、管理者権限でオペレーティングシステム１０１にログインできないユーザや、外出先のパーソナルコンピュータを使用するユーザであっても、容易に、画像読み取りを行うことができる。
【０２８６】
なお、上記の第７及び第８の実施形態においては、キャプチャアプリケーション２１０からスキャンを開始する例を説明した。しかし、スキャナ装置１０６上にスタートボタン等を配置し、スタートボタンを押下されたことをＣＰＵ１１０が検知すると、スキャンを開始してもよい。その際、キャプチャアプリケーション２１０（ＣＰＵ１２１）は、スキャナ装置１０６のスタートボタンを、制御ファイル２０４を介して監視してもよい。この場合は、ＣＰＵ１１０がスタートボタンを押下されたことを制御ファイル２０４に書き込むことになる。
【０２８７】
キャプチャアプリケーション２１０は、スキャナ装置１０６に制御ファイル２０４を介してスキャン開始を指示してもよいし、キャプチャアプリケーション２１０が、制御ファイル２０４に画像データが生成されたことを検知して、スキャンが開始されたと判断し、画像ファイルをハードディスクドライブに保存しても良い。
【０２８８】
また、上記第７及び第８の実施形態においては、キャプチャアプリケーション２１０を起動し、ユーザインターフェースを表示しているが、スキャナ装置１０６の接続時に、マイクロソフト（登録商標）ウインドウズ等のオペレーティングシステム１０１に常駐してもよい。
【０２８９】
また、上記第７及び第８の実施形態においては、キャプチャアプリケーション２１０には画像表示機能が無いが、キャプチャアプリケーション２１０が画像表示機能を備えていても良い。
【０２９０】
また、上記第７及び第８の実施形態においては、ＲＡＭ２０３の制御ファイル２０４にスキャン設定を書き込んでいるため、設定が保存されない。しかし、スキャナ装置１０６内で、設定されたスキャン設定を不図示の不揮発メモリ等に記憶しておいても良い。また、その設定は、オペレーティングシステム１０１のユーザ毎に、記憶しておいても良い。
【０２９１】
また、上記第７及び第８の実施形態においては、マイクロソフト（登録商標）ウインドウズオペレーティングシステム上での動作を例にとって説明した。しかしこれは一例にすぎない。本発明は、アップル社のオペレーティングシステムやリナックスオペレーティングシステム等、その他のオペレーティングシステムにも適用できる技術思想だからである。
【０２９２】
＜第９の実施形態＞
スキャナ装置では、コンピュータにインストールされたスキャナドライバにより直接的に制御されて画像の読取を実行する。そのため、スキャナ装置から逐次画像データがコンピュータに転送されることになる。しかし、本実施形態のスキャナ装置では、スキャナドライバを介さずにマスストレージドライバを介して画像データを転送するため、スキャナ装置が有しているバッファのサイズが画像データのサイズを制限することになる。
【０２９３】
そこで、本実施形態では、スキャナ装置１０６のバッファのサイズよりも大きな画像データを分割して格納する方法について詳細に説明する。すなわち、上述したステップＳ２８０８ないしＳ２８１１に関して、より詳細に説明する。
【０２９４】
［コマンドの送出／受け付け］
図３０は、画像データの分割転送の一例として、コンピュータ側及びスキャナ装置側で実行される通信プロトコルを示したフローチャートである。以下で説明するコンピュータ側の処理は、スキャナ装置１０６側に記憶されたキャプチャアプリケーション２１０をコンピュータ１００のＣＰＵ１２１が実行することによってＣＰＵ１２１が行うものとする。すなわち、ソフトウエア上の主体は、キャプチャアプリケーション２１０であり、ハードウエア上の主体はＣＰＵ１２１である。なお、コンピュータ１００のＣＰＵ１２１は、キャプチャアプリケーション２１０にしたがってＲＡＭ１２４にバッファＡを確保しておくものとする。一方、以下で説明するスキャナ装置側の処理は、ファームウエアにしたがってＣＰＵ１１０が実行するものとする。すなわち、ソフトウエア上の主体は、ファームウエアであり、ハードウエア上の主体はＣＰＵ１１０である。なお、スキャナ装置１０６のＣＰＵ１１０は、ファームウエアにしたがってＲＡＭ２０３にバッファＢを確保しておくものとする。
【０２９５】
ステップＳ３００１で、コンピュータ１００のＣＰＵ１２１は、キャプチャアプリケーション２１０にしたがって、バッファＡに制御コマンドを書き込む。制御コマンドは、例えば、ＳＣＳＩコマンドのフォーマットにしたがって独自に定義したデータ列である。制御コマンドとして、例えば、画像取得のために必要なスキャン解像度等を設定するＳｅｔ  Ｗｉｎｄｏｗコマンドや、画像取得の開始を指示するＳｃａｎコマンド、画像データを読み込むときに使用するＲｅａｄ  Ｉｍａｇｅコマンド等を予め定義しておく。予め定義された制御コマンドとその意味との関係を示す制御コマンド定義情報は、キャプチャアプリケーション２１０およびスキャナ装置１０６の双方に保持されているものとする。制御コマンド定義情報には、各コマンドを識別するための固有のコマンドデータ列と、コマンドデータ列の長さを示す整数値と、コマンドにデータを添付して転送を行う必要性を示す真偽値と、データ転送の方向（スキャナ装置１０６からキャプチャアプリケーション２１０へ転送するものか、あるいはその逆か）を示す情報とを含む。
【０２９６】
ステップＳ３００２で、ＣＰＵ１２１は、制御コマンドにデータを添付して送信する必要があるか否かを判定する。ＣＰＵ１２１は、バッファＡに書き込まれた制御コマンドをキーとしてコマンド定義情報を検索し、抽出した真偽値からデータを添付すべきか否かを判定する。データを添付すべき制御コマンドであれば、ステップＳ３００３に進む。一方、データを添付すべき制御コマンドでなければ、ステップＳ３００４に進む。
【０２９７】
ステップＳ３００３で、ＣＰＵ１２１は、既にステップＳ３００１で書き込まれている制御コマンドに続けてデータをバッファＡに追記する。
【０２９８】
ステップＳ３００４で、ＣＰＵ１２１は、スキャナ装置１０６に記憶されている制御ファイル２０４にバッファＡの内容を書き込む。なお、本実施形態では、キャプチャアプリケーション２１０から制御ファイル２０４に対して読み書きを開始するときに、マイクロソフトウインドウズ（登録商標）によるファイルキャッシュ機能が働くと正常に通信を行うことができないおそれがある。そこで、ＣＰＵ１２１は、ファイルキャッシュ機能を停止する。
【０２９９】
スキャナ装置１０６は、ステップＳ３００４によって制御ファイル２０４が更新されるまで監視しつつ待機している。ステップＳ３０５０で、スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４が更新されたか否かを監視する。制御ファイル２０４の更新の検知方法は、例えば、ＣＰＵ１１０は、スキャナ装置１０６のＲＡＭ２０３に保持しているファイルシステムのアドレステーブルから制御ファイル２０４が存在しているセクタアドレスを参照する。ＣＰＵ１１０は、コンピュータ１００からこのセクタアドレスに対するデータ書き込みが行われ、その終了を検知したとき、制御ファイル２０４が更新されたと判定する。他の例としては、ＣＰＵ１１０が、制御ファイル２０４を一定周期で読み込み、制御ファイル２０４の内容、サイズ、日付等に変化があったときに、制御ファイル２０４が更新されたと判定する。制御ファイルの更新検知処理は、キャプチャアプリケーション２１０による制御ファイル２０４への書き込み及び読み出し処理と重複しないように、排他制御される。
【０３００】
ステップＳ３０５１で、ＣＰＵ１１０は、制御ファイル２０４の先頭から、各制御コマンドに対応したサイズだけコマンドデータ列を読み出す。ＣＰＵ１１０は、コマンド定義情報を参照し、制御ファイル２０４に書かれている制御コマンドの長さを取得して、コマンドデータ列を読み出す。
【０３０１】
ステップＳ３０５２で、ＣＰＵ１１０は、制御ファイル２０４を解析し、受け付けた制御コマンドにデータが添付されているか否かを判定する。データが添付されていなければ、ステップＳ３０５４に進む。データが添付されていれば、ステップＳ３０５３に進む。
【０３０２】
ステップＳ３０５３で、ＣＰＵ１１０は、制御コマンドの後端部分から添付データを読み込む。読み出す添付データの長さは、前述のコマンド定義情報を参照して取得する。
【０３０３】
ステップＳ３０５４で、スキャナ装置１０６は、制御ファイル２０４から抽出した制御コマンドを実行する。例えば、制御コマンドが前述のＳｅｔ  Ｗｉｎｄｏｗコマンドであった場合、ＣＰＵ１１０は、スキャナ装置１０６のＲＡＭ２０３にスキャン設定を保持するための領域を確保し、そこに受信した添付データを元にスキャン設定を書き込む。例えば、制御コマンドがＳｃａｎコマンドであった場合、ＣＰＵ１１０は、ＲＡＭ２０３内部でスキャン設定を保持している領域を参照して画像読み取り部１１２等を制御し、取得した画像データをＲＡＭ２０３に別途確保したスキャンバッファに保存する。
【０３０４】
ステップＳ３０５５で、ＣＰＵ１１０は、制御ファイル２０４から抽出した制御コマンドが添付データの送信の必要なコマンドであるか否かを判別する。この判別は制御コマンド定義情報を参照して実行される。データの送信が必要なコマンドであった場合、ステップＳ３０５６に進む。データの送信が必要でないコマンドであった場合、ステップＳ３０５７に進む。
【０３０５】
ステップＳ３０５６で、ＣＰＵ１１０は、抽出したコマンドに対応したステータスデータとともに、当該コマンドに対応したデータをバッファＢに書き込む。例えば、制御コマンドが、Ｒｅａｄ  Ｉｍａｇｅコマンドであった場合、ＣＰＵ１１０は、画像読み取り部１１２等を制御して取得した画像データのうち、キャプチャアプリケーション２１０が指定したサイズだけ抽出し、その画像データをバッファＢに書き込む。その後、ステップＳ３０５８に進む。
【０３０６】
ステップＳ３０５７で、ＣＰＵ１１０は、抽出したコマンドに対応したステータス情報をバッファＢに書き込む。その後、ステップＳ３０５８に進む。ステータス情報は、受信した制御コマンドの実行状態を表す情報である。ステータス情報には、例えば、制御コマンドに対応する処理が正常に行われたことを表すＧＯＯＤ  ＳＴＡＴＵＳや、スキャナ装置１０６が他の処理を実行中であり、コマンドを受け付けることができないことを表すＢＵＳＹなどがある。もし、ステップＳ３０５６で、バッファＢに添付データが書き込まれた場合についても同様のステータス情報を、ＣＰＵ１１０は、この添付データの末尾等に追加する。
【０３０７】
ＣＰＵ１１０は、キャプチャアプリケーション２１０に送信すべきデータのバッファＢへの書き込みが完了すると、ステップＳ３０５８で、制御ファイル２０４にバッファＢの内容を書き込む。なお、スキャナ装置１０６による制御ファイル２０４へのデータ書き込み処理は、キャプチャアプリケーション２１０による制御ファイル２０４への書き込み及び読み出し処理と重複しないように、排他制御される。このとき制御ファイル２０４内の制御コマンドは変更しないものとするが、変更してもよい。
【０３０８】
スキャナ装置１０６は、ステップＳ３０５８の処理が終了したら、ステップＳ３０５０に戻る。
【０３０９】
ステップＳ３００５で、コンピュータのＣＰＵ１２１は、制御ファイル２０４を監視しつつ、制御ファイル２０４が更新されるまで待機する。制御ファイルの監視および更新の検知方法は、例えば、制御ファイル２０４のうち、添付データ以外の部分の内容を一定周期で繰り返し読み込み、ＲＡＭ１２４に保存されている制御ファイルの内容と比較する。現在の制御ファイルと、前回の制御ファイルとが不一致であれば、ＣＰＵ１２１は、制御ファイル２０４が更新されたと判定する。また、例えば、他の通知用ファイルを読み込んで、その内容により制御ファイル２０４の更新を判定するようにしてもよい。また、例えば、スキャナ装置１０６は、ステップＳ３０５０で制御コマンドの更新を検知してから、ステップＳ３０５８で制御ファイル２０４を更新するまでの間に、コンピュータのＣＰＵ１２１が制御ファイル２０４を読み込もうとしたときには、その処理をブロックし、応答を返さないようにＵＳＢディスクドライブインターフェース２０５を制御してもよい。この場合、コンピュータのＣＰＵ１２１は、制御ファイル２０４に対して読み込み処理を実行し、その処理が終了したことを検知すると、制御ファイル２０４が更新されたと判定する。更新が判定され読み込まれた制御ファイル２０４の内容は、ＲＡＭ１２４に保持される。
【０３１０】
また、コマンドを受け付けたことを示すレスポンス情報を制御ファイル２０４または他の特定のファイルに書き込む場合も、制御ファイル２０４を更新するまでの間に、コンピュータのＣＰＵ１２１が制御ファイル２０４または他の特定のファイルを読み込もうとしたときには、読み込み動作をブロックし、応答を返さないようにする。
【０３１１】
ステップＳ３００６で、ＣＰＵ１２１は、ステップＳ３００４で送信のために制御ファイル２０４に書き込んだ制御コマンド又は、Ｓ３００５で制御ファイル２０４から読み込んだ制御コマンドが添付データの受け取りを必要とするものであるか否かを判別する。この判別は、ステップＳ３００２と同様、前述のコマンド定義情報を参照することで実行される。送信又は、読み込まれた制御コマンドが添付データを受け取るべきものであった場合、ステップＳ３００７に進む。添付データを受け取るべきものでなければ、ステップＳ３００８に進む。
【０３１２】
ステップＳ３００７で、ＣＰＵ１２１は、制御ファイル２０４から添付データを読み込む。
【０３１３】
ステップＳ３００８で、ＣＰＵ１２１は、制御ファイル２０４からステータス情報を読み込む。添付データが存在する場合は、添付データの後端からステータス情報が抽出される。一方、添付データが存在しない場合には、制御ファイル２０４の先頭からステータス情報が読み込まれる。
【０３１４】
ステップＳ３００９で、ＣＰＵ１２１は、ステータス情報から、次に行うべき動作を決定して実行する。例えば、ステータス情報がＧＯＯＤ  ＳＴＡＴＵＳであったなら、ＣＰＵ１２１は、引き続き次のコマンドの送出／受け付けを実行する。一方、ステータス情報がＢＵＳＹ等の異常を示すものであった場合、ＣＰＵ１２１は、その要因を取得するコマンドを新たに発行する（ステップＳ３００１）。ＣＰＵ１２１は、このコマンドに応答してスキャナ装置１０６が制御ファイル２０４に書き込んだ詳細情報を読み出す（Ｓ３００７、Ｓ３００８）。ＣＰＵ１２１は、この詳細情報にしたがって、ディスプレイ１２６に要因を通知するためのダイアログボックスを表示する。
【０３１５】
［画像読取処理］
図３１は、画像読取処理の一例を示すフローチャートである。ここでは、ステップＳ２８１０に示した画像データ転送方法（キャプチャアプリケーション２１０の動作）について説明する。なお、通信プロトコルは、図３０に示した通りである。
【０３１６】
ステップＳ３１００で、ＣＰＵ１２１は、キャプチャアプリケーション２１０にしたがって、スキャナ装置１０６に画像取得動作の開始を指示するＳｃａｎコマンドを発行する。なお、コマンドの発行処理は、ステップＳ２８０８やステップＳ３００１などに関して説明した通りである。ＣＰＵ１２１は、変数ＲｃｖＳｉｚｅと、変数ＩｍｇＳｉｚｅを初期化する。変数ＲｃｖＳｉｚｅは、スキャナ装置１０６からこれまでに受信したデータのサイズを表す変数であり、初期化によって０にクリアされる。変数ＩｍｇＳｉｚｅは、受信すべき全画像データのサイズを表す変数であり、ユーザ設定値から算出された画像データサイズが初期化によって代入される。一方、スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４を通じてＳｃａｎコマンドを受け付けると、画像読み取り部１１２を制御して画像読取を開始する。ＣＰＵ１１０は、取得した画像データをＲＡＭ２０３に一時的に蓄積する。なお、ＲＡＭ２０３の記憶容量には制限があるため、ここでは、受信すべき全画像データのうち一部の画像データのみがＲＡＭ２０３に格納されるものとする。
【０３１７】
ステップＳ３１０１で、ＣＰＵ１２１は、Ｒｅａｄ  Ｉｍａｇｅコマンドを発行する。スキャナ装置１０６のＣＰＵ１１０は、制御ファイル２０４を通じてＲｅａｄ  Ｉｍａｇｅコマンドを受け付けると、ＲＡＭ２０３に蓄積されている画像データを、図３０の通信プロトコルにしたがって、コンピュータ１００が読み出せるように、制御ファイル２０４に格納する。１つのＲｅａｄ  Ｉｍａｇｅコマンドあたりでコンピュータ１００が読み出す画像データのサイズは、例えば、キャプチャアプリケーション２１０の内部で定数ＴｒａｎｓＳｉｚｅとして予め定義されている。定数ＴｒａｎｓＳｉｚｅは、予めＲＡＭ２０３の記憶容量よりも小さな値に設定されることになる。ＣＰＵ１２１は、Ｒｅａｄ  Ｉｍａｇｅコマンドのコマンド列に定数ＴｒａｎｓＳｉｚｅの値を添付し、スキャナ装置１０６の制御ファイル２０４に書き込むことでコマンドの転送を実行する。スキャナ装置１０６のＣＰＵ１１０は、受け付けたＲｅａｄ  Ｉｍａｇｅコマンドを解析し、コマンド列中に含まれている定数ＴｒａｎｓＳｉｚｅに応じたサイズの画像データを、図３０の通信プロトコルにしたがって制御ファイル２０４に書き込む。画像データの書き込みが完了すると、ＣＰＵ１２１（キャプチャアプリケーション２１０）は、制御ファイル２０４から画像データを読み出し可能となる。ＣＰＵ１２１は、前述の通信プロトコルにしたがって制御ファイル２０４を読み出す。ここで読み出される画像データのサイズは、定数ＴｒａｎｓＳｉｚｅにより示されたサイズである。
【０３１８】
ステップＳ３１０２で、ＣＰＵ１２１は、制御ファイル２０４を通じて受信した画像データをＲＡＭ１２４に確保されたバッファＣに書き込む。
【０３１９】
図３２は、ＲＡＭ１２４に確保されたバッファＣの一例を示す図である。バッファＣの先頭アドレスから変数ＲｃｖＳｉｚｅ分だけ進んだアドレスから、ＣＰＵ１２１は、画像データを書き込む。
【０３２０】
例えば、１つ目のＲｅａｄＩｍａｇｅコマンドを発行したときには、まだ画像データを全く受信していないため、変数ＲｃｖＳｉｚｅは０である。１つ目の画像データ１２０１は、アドレスａを先頭アドレスとしてバッファＣに書き込まれる。１つ目の画像データ１２０２は、アドレスｂを先頭アドレスとして書き込まれる。ここで、ｂ＝ａ＋ＴｒａｎｓＳｉｚｅである。
【０３２１】
ステップＳ３１０３で、ＣＰＵ１２１は、定数ＴｒａｎｓＳｉｚｅを、変数ＲｃｖＳｉｚｅに加算する（ステップＳ３１０３）。ちなみに、転送回数をｎとすれば、ＲｃｖＳｉｚｅ  ＝  ｎ  ×  ＴｒａｎｓＳｉｚｅという式が成り立つ。また、ＩｍｇＳｉｚｅをＴｒａｎｓＳｉｚｅで除算して得られる商の値は、総転送回数を示すことになる。
【０３２２】
ステップＳ３１０４で、ＣＰＵ１２１は、１枚の原稿についてすべての画像データの転送が完了したか否かを判定する。具体的に、ＣＰＵ１２１は、取得すべき全画像サイズＩｍｇＳｉｚｅと、変数ＲｃｖＳｉｚｅの値を比較し、ＲｃｖＳｉｚｅの値がＩｍｇＳｉｚｅ以上となったか否かを判定する。ＩｍｇＳｉｚｅがＲｃｖＳｉｚｅ未満であれば、まだ、転送は完了していないため、次の画像データをスキャナ装置１０６の制御ファイル２０４から読み出すべく、ステップＳ３１０１に戻り、ＲｅａｄＩｍａｇｅコマンドを発行する。ＩｍｇＳｉｚｅがＲｃｖＳｉｚｅ以上となると、転送が完了したため、ステップＳ３１０５に進む。
【０３２３】
このように、ステップＳ３１０１からステップＳ３１０４までの各処理を繰り返し実行することで、大サイズの原稿画像であっても部分画像データに分割して読み出すことができる。
【０３２４】
ステップＳ３１０５で、ＣＰＵ１２１は、バッファＣに格納されているすべての部分画像データを結合することで、１枚の原稿画像についての画像ファイルを生成する。
【０３２５】
なお、スキャナ装置１０６から受信した画像データが、画像読み取り部に固有の形式となっている場合もある。この場合、コンピュータ１００上のさまざまなアプリケーションで扱いやすくするため、ＣＰＵ１２１は、画像データの変換処理を実行してもよい。例えば、受信した画像データをフルカラーＢＭＰファイルとして保存するためには、ＣＰＵ１２１は、バッファＣに蓄えられた各画像データの色深度を２４Ｂｉｔに変換し、画像ファイルの先頭にビットマップヘッダを付加すればよい。なお、ＣＰＵ１２１は、予め図５のユーザインターフェースを通じてユーザにより設定されたファイル名を、完成した画像ファイルに付与し、ハードディスクドライブ１２２に保存する。
【０３２６】
次に、スキャナ装置１０６の動作について説明する。
【０３２７】
図３３は、スキャンタスクの一例を示したフローチャートである。図３４は、画像転送タスクの一例を示したフローチャートである。制御ファイル２０４から読み出した制御コマンドが、Ｓｃａｎコマンドであれば、スキャナ装置１０６では、スキャンタスクと画像転送タスクとが並行して実行される。なお、図中のＮ、Ｍは、フラグを識別するための整数型の変数である。
【０３２８】
スキャナ装置１０６のＣＰＵ１１０は、画像読み取り部１１２が取得した画像データを一時的に保持するための記憶領域である複数のスキャンバッファをＲＡＭ２０３に確保する。各スキャンバッファのサイズは、定数ＴｒａｎｓＳｉｚｅに相当する。
【０３２９】
図３５は、スキャンバッファの一例を示す図である。この図では、２つのスキャンバッファ（０）とスキャンバッファ（１）とが存在する。フラグ（０）は、スキャンバッファ（０）の状態を表す。フラグ（１）は、スキャンバッファ（１）の状態を表す。これらのフラグも２つのスキャンバッファと同時にＲＡＭ２０３の内部に確保される。
【０３３０】
はじめに図３３を参照してスキャンタスクについて説明する。
【０３３１】
ステップＳ３３００で、ＣＰＵ１１０は、整数Ｎ、スキャンタスクに関する２つのフラグを初期化する。具体的には、Ｎには０が設定され、スキャンバッファ（０）に対応するフラグ（０）及びスキャンバッファ（１）に対応するフラグ（１）には「空」が設定される。「空」は、フラグ（Ｎ）に対応するスキャンバッファに未処理の画像データがないことを表す値である。
【０３３２】
ステップＳ３３０１で、ＣＰＵ１１０は、スキャンバッファ（Ｎ）の状態を監視し、スキャンバッファ（Ｎ）が空いた状態になるまで待機する（ステップＳ３３０１）。すなわち、ＣＰＵ１１０は、フラグ（Ｎ）の値を参照し、スキャンバッファ（Ｎ）が空いたか否かを判定する。スキャンバッファ（Ｎ）が空いた状態になると、ステップＳ３３０２に進む。
【０３３３】
ステップＳ３３０２で、ＣＰＵ１１０は、フラグ（Ｎ）の値を、「取得中」に設定する。「取得中」は、スキャンタスクがフラグ（Ｎ）に対応するスキャンバッファに画像データを取得中であることを表す値である。
【０３３４】
ステップＳ３３０３で、ＣＰＵ１１０は、原稿の読取を開始するよう画像読み取り部１１２に指示し、原稿の走査を開始する。画像読み取り部１１２は、原稿から読み取った画像データをスキャンバッファ（Ｎ）に書き込む。
【０３３５】
ステップＳ３３０４で、スキャンバッファ（Ｎ）への画像データの格納が完了したことを画像読み取り部１１２が通知すると、ＣＰＵ１１０は、フラグ（Ｎ）の値を、「取得済」に設定する。「取得済」は、スキャンタスクがフラグ（Ｎ）に対応するスキャンバッファに画像データを取得し終えたことを表す値である。
【０３３６】
ステップＳ３３０５で、ＣＰＵ１１０は、スキャンバッファの切り替え処理を実行する。例えば、ＣＰＵ１１０は、次のスキャンバッファを識別するための整数Ｎを、（Ｎ＋１）％２を演算することで決定する。％は剰余を求める演算記号とし、（Ｎ＋１）％２は（Ｎ＋１）を２で割ったときのあまりを求める演算式とする。例えば、現在のスキャンバッファがスキャンバッファ（０）であれば、次はスキャンバッファ（１）となる。（０＋１）％２＝１。よって、ＣＰＵ１１０は、Ｎを１に変更する。逆に、現在のスキャンバッファがスキャンバッファ（１）であれば、次はスキャンバッファ（０）となる。（１＋１）％２＝０。よって、ＣＰＵ１１０は、Ｎを０に変更する。
【０３３７】
ステップＳ３３０６で、ＣＰＵ１１０は、画像読み取りの終了がコンピュータ１００から指示されているか又は、画像読み取りを終了すべき状態か判定する。例えば、原稿の走査が終了したとき、キャプチャアプリケーション２１０から原稿取得終了を示すコマンドが発行されたとき、あるいは原稿台に原稿を搭載したスキャナにおいて原稿のジャムが発生したときなどに、画像の読み取りを終了する。ここで、画像の読み取りが終了でなければ、スキャンタスクはステップＳ３３０１に戻って、画像の読み取りを継続する。画像の読み取りの終了と判断した場合は、スキャナ装置１０６のスキャンタスクは処理を終了する。
【０３３８】
次に、図３４を参照して画像転送タスクについて説明する。
【０３３９】
ステップＳ３４００で、ＣＰＵ１１０は、フラグを識別するための整数Ｍを初期化する。具体的には、Ｍには０が設定される。
【０３４０】
ステップＳ３４０１で、ＣＰＵ１１０は、画像データの取得を指示するＲｅａｄＩｍａｇｅコマンドがコンピュータ１００により制御ファイル２０４に書き込まれたか否かを判定する。ＲｅａｄＩｍａｇｅコマンドの読み出しに成功するまでＣＰＵ１１０は待機する。ＲｅａｄＩｍａｇｅコマンドを受け付けると、ステップＳ３４０２に進む。
【０３４１】
ステップＳ３４０２で、ＣＰＵ１１０は、ＲＡＭ２０３からフラグ（Ｍ）の値を読み出し、その値が「取得済」か否かを判定する。フラグ（Ｍ）の値が「取得済」になるまで、ＣＰＵ１１０は待機する。フラグ（Ｍ）の値が「取得済」になると、画像転送タスクはステップＳ３４０３に進む。
【０３４２】
ステップＳ３４０３で、ＣＰＵ１１０は、フラグ（Ｍ）の値を、「送信中」に設定する。「送信中」は、フラグ（Ｍ）に対応するスキャンバッファに保存された画像データを、キャプチャアプリケーション２１０が読み出し可能であることを表す値である。
【０３４３】
ステップＳ３４０４で、ＣＰＵ１１０は、スキャンバッファ（Ｍ）に含まれるデータを、ＲｅａｄＩｍａｇｅコマンドに対応する処理によって作成された部分画像データとして、キャプチャアプリケーション２１０が読み出し可能な状態にする。すなわちステップＳ３４０４の送信の処理とは、ＣＰＵ１１０が、制御ファイル２０４に画像データを書き込むことを意味する。このように制御ファイル２０４に書き込まれた部分画像データは、制御ファイル２０４を監視しているコンピュータ１００により、そのつど読み出される。すなわち制御ファイル２０４を介して画像データの読み出しの指示を受け付けるごとに、制御ファイル２０４に書き込まれた部分画像データのデータ量を１回の送信データ量としてコンピュータ１００への画像データの送信が実行される。また、図３１からわかるように、コンピュータ１００の受信した部分画像データの合計サイズ（ＲｃｖＳｉｚｅ）がＩｍｇＳｉｚｅになるまでコンピュータ１００はＲｅａｄＩｍａｇｅコマンドを繰り返し発行する。こうして部分画像データはコンピュータ１００に繰り返し送信される。なお、１つの部分画像データを送信している間に、下位レベルの通信で例えばＵＳＢディスクドライブの５１２セクタを単位として、画像データの送信を複数回行う場合もある。すなわち本発明での部分画像データを単位とする画像データの分割送信は、上述した下位レベルの通信での例えば所定数のセクタを単位とする画像データの複数回の送信を意味するものではない。
【０３４４】
ステップＳ３４０５で、ＣＰＵ１１０は、フラグ（Ｍ）の値を、「空」に設定する。
【０３４５】
ステップＳ３４０６で、ＣＰＵ１１０は、スキャンバッファの切り替え処理を実行する。例えば、ＣＰＵ１１０は、次のスキャンバッファを識別するための整数Ｍを、（Ｍ＋１）％２を演算することで決定する。例えば、現在のスキャンバッファがスキャンバッファ（０）であれば、次はスキャンバッファ（１）となる。（０＋１）％２＝１。よって、ＣＰＵ１１０は、Ｍを１に変更する。逆に、現在のスキャンバッファがスキャンバッファ（１）であれば、次はスキャンバッファ（０）となる。（１＋１）％２＝０。よって、ＣＰＵ１１０は、Ｍを０に変更する。
【０３４６】
ステップＳ３４０７で、ＣＰＵ１１０は、画像読み取り終了がコンピュータ１００から指示されているか否か又は、画像読み取りを終了すべき状態かを判定する。（ステップＳ３４０７）。判定条件は、前述のスキャンタスクのステップＳ３３０６と同様である。画像読み取りが終了でなければ、画像転送タスクはステップＳ３４０１に戻って、画像転送処理を継続する。画像読み取りの終了と判断した場合、スキャナ装置１０６の画像転送タスクは終了する。
【０３４７】
図３６は、スキャンバッファの状態遷移の例を示した図である。Ａ１からＡ７は、画像転送タスクにおける転送速度が、スキャンタスクの画像読み取り速度よりも速い場合の一例である。Ｂ１からＢ７は、画像転送タスクの転送速度が、スキャンタスクの画像読み取り速度よりも遅い場合の一例である。
【０３４８】
キャプチャアプリケーション２１０（ＣＰＵ１２１）がＳｃａｎコマンドを発行すると、スキャンタスク（ＣＰＵ１１０）は、ステップＳ３３００〜Ｓ３３０２を順に実行する。そして、スキャンタスクは、ステップＳ３３０３で画像読み取り及び画像データのスキャンバッファ（０）への格納を開始する。このとき、すでにＲｅａｄＩｍａｇｅコマンドが発行されていたとすると、画像転送タスク（ＣＰＵ１１０）は、ステップＳ３４００、Ｓ３４０１を順に実行し、ステップ１４０２に進む。画像転送タスクは、ステップＳ３４０２でフラグ（０）の値が画像取得終了を表す値に変化するまで待機する（Ａ１、Ｂ１）。
【０３４９】
次に、スキャンタスクがステップＳ３３０３、Ｓ３３０４を終了すると、画像転送タスクは、ステップＳ３４０２を抜け、ステップＳ３４０３、Ｓ３４０４に示したスキャンバッファ（０）の内容を制御ファイル２０４に書き込んで、画像データがコンピュータ１００により読み出し可能な状態にする（Ａ２、Ｂ２）。そして、画像読取終了の指示がなかった場合、スキャンタスクはＳ３３０５、Ｓ３３０６、Ｓ３３０１、Ｓ３３０２を順に実行し、画像読み取り及び画像データのスキャンバッファ（１）への格納動作を継続する（Ａ３、Ｂ３）。
【０３５０】
画像転送タスクにより画像データが制御ファイル２０４に書き込まれ、かつ制御ファイル２０４から画像データが、コンピュータ１００のキャプチャアプリケーション２１０により読み込まれる処理の速度等である、画像転送タスクの転送速度が、スキャンタスクの画像読み取り速度よりも速い場合、次のような動作になる。すなわち、スキャンタスクがスキャンバッファ（１）に対して画像データの書き込みを終了する前に、画像転送タスクがスキャンバッファ（０）から制御ファイル２０４に書き込んだ画像データがコンピュータ１００により読み出されて転送し終えることとなる（Ａ４）。画像転送タスクは、スキャンバッファ（０）の画像転送が終了すると、ステップＳ３４０５、Ｓ３４０６、Ｓ３４０７、Ｓ３４０１を順に実行する。そしてキャプチャアプリケーション２１０から２回目のＲｅａｄＩｍａｇｅコマンドが発行されると、画像転送タスクは、ステップＳ３４０１の待機状態を抜け、ステップＳ３４０２でフラグ（１）の値を参照する。このとき、スキャンタスクによるスキャンバッファ（１）への画像データの格納が終了していなかった場合、画像転送タスクは、これが終了するまで待機する（Ａ５）。スキャンタスクがスキャンバッファ（１）に対する格納動作を終了すると（Ａ６）、画像転送タスクは、Ｓ３４０２の待機状態を抜けて、スキャンバッファ（１）の内容を制御ファイル２０４に書き込む。すなわち、コンピュータ１００のキャプチャアプリケーション２１０により読み出し可能なように、制御ファイル２０４に画像データを格納することで、キャプチャアプリケーション２１０に対して転送する（Ａ７）。
【０３５１】
この例のように画像転送タスクの転送速度がスキャンタスクの画像読み取り速度よりも速い場合、上述のフローチャートに従った処理を実装すると、スキャンタスクは画像転送タスクの進捗に応じて適宜待機することになる。スキャナ装置１０６の画像取得処理速度よりもキャプチャアプリケーション２１０による画像読み出し動作の速度が上回っていたとしても、スキャナ装置１０６は、ＴｒａｎｓＳｉｚｅごとに原稿の画像データを分割し、滞りなく転送することができる。
【０３５２】
逆に、画像転送タスクの転送速度がスキャンタスクの画像読み取り速度よりも遅いこともある。この場合、例えば、キャプチャアプリケーション２１０の画像データ読み取りが遅いため、画像転送タスクによるスキャンバッファ（０）から制御ファイル２０４への画像データの格納が終了する前に、スキャンタスクはスキャンバッファ（１）に対する取得した画像データの書き込みを完了することがある（Ｂ４）。このとき、スキャンタスクは、ステップＳ３３０４、Ｓ３３０５、Ｓ３３０６を順に実行したあと、Ｓ３３０１でフラグ（０）の値を参照し、スキャンバッファ（０）へ画像データの取得を開始しようとする。しかし、この段階ではまだスキャンバッファ（０）から制御ファイル２０４への画像データの格納が終了していない。よって、スキャンタスクは、スキャンバッファ（０）の画像データの制御ファイル２０４への格納が終了するまで待機する（Ｂ５）。スキャンタスクは、画像データ取得の停止とともに、原稿の走査を一時停止する。その後、画像転送タスクによってスキャンバッファ（０）の画像データの制御ファイル２０４への格納動作が終了すると（Ｂ６）、スキャンタスクは、ステップＳ３３０１の待機状態を抜けて、原稿の走査を再開するとともに、画像データをスキャンバッファ（０）に書き込み始める（Ｂ７）。
【０３５３】
この例のように、画像データのコンピュータ１００への転送速度がスキャンタスクの画像読み取り速度よりも遅い場合であっても、上述したフローチャートに従った処理を実装すると、スキャンタスクは、画像転送タスクによる画像転送処理の進捗に併せて、適宜待機することができる。このため、スキャナ装置１０６の画像取得処理速度よりもコンピュータ１００のキャプチャアプリケーション２１０による画像読み込み動作速度が下回っていたとしても、スキャナ装置１０６は、原稿の画像データをＴｒａｎｓＳｉｚｅごとに分割し、キャプチャアプリケーション２１０へ転送することができる。
【０３５４】
以上の実施形態により、キャプチャアプリケーション２１０が制御ファイル２０４にＲｅａｄＩｍａｇｅコマンドを複数回書き込むことによって、スキャナ装置１０６は、ＲＡＭ２０３の容量を超える大きな原稿画像データを、キャプチャアプリケーションへ転送することができる。
【０３５５】
以上説明した第７ないし第９の各実施形態によれば、画像読取装置を情報処理装置の外部記憶装置（例：ＵＳＢマスストレージクラス）として情報処理装置に認識させることで、画像読取装置のデバイスドライバを情報処理装置にインストールする必要がない。また、小サイズの部分画像データを取得して制御ファイルに格納して読み出し可能な状態にすることで、比較的に大きな画像も読取可能となる。
【０３５６】
とりわけ、画像データをより小さな複数の部分画像データごとに読取と転送とを実行することで、バッファのサイズが小さくても大きな画像を転送できるようになる。なお、１枚の原稿の画像データを格納可能な大きなバッファを有する画像読取装置にも、本発明の部分画像データの送信は有効に適用できる。なぜならば、バッファに１枚の原稿の画像データが格納された後に画像データの転送を開始する場合よりも、部分画像データが格納されるごとに送信を行う場合のほうが、画像読取処理のスピードが速くなるためである。
【０３５７】
また、制御ファイルを通じて部分データを転送することで、画像読取装置を外部記憶装置として認識させたまま、画像の読み取りを実現できる。
【０３５８】
通常、制御ファイルを通じて部分データを転送するには、制御ファイルに部分データが書き込まれたことを情報処理装置に通知する必要がある。定期的に制御ファイルを監視する方法もあるが、監視周期がながければ、遅延が多くなり、監視周期が短すぎれば無駄に情報処理装置の演算能力を消費することになる。そこで、画像読み取り装置は、制御ファイルに部分画像の読み込みを指示するコマンドが書き込まれたことを検知してから、制御ファイルに部分画像データの書き込みが完了するまでの間、情報処理装置が制御ファイルを読み込もうとしたときには、その処理をブロックし、応答を返さないようにＵＳＢインターフェースを制御してもよい。具体的には、画像読み取り装置が制御ファイルに部分画像データを書き込んでいる最中に、情報処理装置のＵＳＢマスストレージドライバから制御ファイルの読み出しを行うコマンドを受信したら、そのデータステージの転送要求に対してＮＡＫパケットを返すようにする。この場合、情報処理装置は、制御ファイルに対して部分画像の読み込みを指示するコマンドを書き込んだ直後から、制御ファイルの読み出しを繰り返し実行し、その処理が終了したことを検知すればよい。このとき情報処理装置は、制御ファイルの読み取り終了を検知することによって制御ファイルが更新されたと認識すると同時に、部分画像データの取得が完了することになる。あるいは、画像読取装置が制御ファイルに部分画像データが書き込まれたことを制御ファイルとは別のファイル又は別の通知手段で情報処理装置に通知するようにしてもよい。具体的には、情報処理装置からＴｅｓｔ Ｕｎｉｔ  Ｒｅａｄｙコマンド、Ｍｏｄｅ  Ｓｅｌｅｃｔコマンド、または、Ｓｔａｒｔ−Ｓｔｏｐ Ｕｎｉｔコマンドを受信すると、画像読取装置は、ＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮ  ステータスを返信すればよい。これにより、ファイルテーブルが参照され、制御ファイルの更新が認識されることになる。
【０３５９】
また、ＵＳＢバスのＤ＋信号とＤ−信号とをともにゼロに変更することでＵＳＢバスリセットステートに移行してもよい。この場合も、同様に、ファイルテーブルが参照され、制御ファイルの更新が認識されることになる。
【０３６０】
＜第１０の実施形態＞
本実施形態の周辺装置である画像処理装置（例：スキャナ、プリンタ及び複合機など）は、画像処理装置（スキャナ、プリンタ及び複合機など）として情報処理装置（ＰＣ）に認識させた状態で、情報処理装置にインストールされているドライバから指示を受けて動作する動作モードと、画像処理装置を外部記憶装置として情報処理装置に認識させて、画像データの受け渡しを行う動作モードとを備えている。このような画像処理装置を、どちらのモードで使用するかユーザが簡単に設定可能とすることが望ましい。
【０３６１】
そこで、本実施形態の周辺装置である画像処理装置はユーザが手で切り替え可能な手動スイッチを有し、手動スイッチの切り替えに応じて画像処理装置の動作モードが切り替わるようになっている。それとともに、上記のどちらのモードで画像処理装置が動作しているかを情報処理装置において認識可能とするために、情報処理装置に送信する情報の切り替えを、ユーザの手による操作によるスイッチの切り替えに応じて行うようにした。
【０３６２】
本実施形態は、例えば図１０の等のスキャナ装置１０６においてソフト的に切り替えが行われるスイッチ２２１を、ユーザが手の操作で切り替え可能な手動スイッチに置き換えた場合に相当する。または、電気的に制御されるスイッチ２２１の切り替え状態を制御するための他の手動スイッチを、図１０等の装置に追加して設けてもよい。このようにすれば、ユーザがスイッチを手で切り替える簡単な操作だけで、希望する動作モードでスキャナ装置１０６を動作させることができる。実際の動作モードの切り替えは手動スイッチの切り替え後の電源再投入時やリセット時やＵＳＢケーブルの抜き差しが行われたときに行うようにすることが好適である。
【０３６３】
上記手動スイッチを設けた本実施形態において、例えばスキャナ装置１０６に設けられた不図示のスタートボタン等の操作を行ったとき、手動スイッチの切り替え状態がどうなっているかに応じて、スキャナ装置１０６の動作を異ならせることが好適である。
例えば、スキャナ装置１０６を外部記憶装置としてパーソナルコンピュータ１００に認識させて画像データの受け渡しを行う動作モードとなるように、手動スイッチの切り替えを行った状態で、パーソナルコンピュータ１００に接続されたまま不図示のスタートボタン等の操作を行ったとする。このときに、スキャナ装置１０６は一旦擬似的にＵＳＢ接続が切断された状態に遷移し、その後再度ＵＳＢ接続が行われた状態に遷移する。
【０３６４】
ＵＳＢコネクタに触れることなくこのようなＵＳＢインターフェースの切断と再接続を擬似的に行わせることで、画像処理装置を制御するソフトウエアの再立ち上げができる。例えば、画像処理装置を外部記憶装置として認識した状態で画像読取や画像形成を行った後、一旦情報処理装置（パーソナルコンピュータ）においてキャプチャアプリケーション２１０等の実行を終了すると、情報処理装置のメモリに画像処理装置（スキャナ装置１０６）からロードされていたキャプチャアプリケーション２１０は情報処理装置のメモリから消去される。再度、キャプチャアプリケーション２１０を起動したい場合に、ＵＳＢコネクタの抜き差しを行うことは面倒であり、本実施形態では不図示のスタートボタン等（画像処理装置に設けたもの）の操作を行うだけでよい。このようにしてＵＳＢコネクタの抜き差しに伴うキャプチャアプリケーション２１０の起動又は起動確認ダイアログの表示が可能である。
【０３６５】
また、外部記憶装置を取り外す際の決められた操作をユーザが行って、外部記憶装置を安全に取り外し可能な状態となった場合等においても、上記のようなＵＳＢコネクタの擬似的な抜き差しをワンタッチで行わせると効果的である。このようにすると、再度外部記憶装置として情報処理装置に認識させることができる。更にＵＳＢの接続に伴って何らかのオートランプログラムの自動起動を行うような設定がされている場合は、上記スタートボタン等の操作でオートランプログラムを起動できる。
【０３６６】
一方、画像処理装置か画像読取装置として情報処理装置に認識されて、情報処理装置からスキャナドライバを用いて制御される動作モードとなるように、手動スイッチの切り替えを行ったとする。このようにしてから不図示のスタートボタン等の操作を行ったとき、情報処理装置にスタートボタン等の操作が行われたことを示す情報を引き渡す。
【０３６７】
ところで、画像読取装置を使用して原稿のスキャンを行う場合に、一連のスキャン動作のスキャン条件や、スキャン動作により読み取られた画像データに対して行う画像処理等の内容等を登録した、１つ又は複数のジョブを予め作成しておくことが一般に行われる。
【０３６８】
情報処理装置では、画像読取装置からスタートボタン等の操作が行われたことを示す情報を受け取ったとき、ジョブとして登録された一連のスキャン動作等を実行するようにできる。もちろん、ジョブ機能がない場合やジョブが登録されていない場合は、画像読取装置からスタートボタン等の操作が行われたことを示す情報を受け取ったとき、現在の設定やデフォルトの設定に従ってスキャン動作を行ってもよい。なお、登録されているジョブの情報を情報処理装置のＨＤＤ等に記憶しておくことが好適であるが、画像読取装置が有する不揮発性メモリ等に記憶してもよい。
【０３６９】
以上のようにすることで、画像処理装置の本体の操作ボタンを押す等の簡単な操作で、手動スイッチの切り替え状態に応じて異なる動作を行い画像処理装置の操作が簡単になる。なお、手動スイッチの切り替え後に実際に動作モードが切り替わるタイミングは、電源切断後の再投入時や、ＵＳＢコネクタの実際の抜き差し時や、不図示のスタートボタン等の操作時の、いずれであっても又はこれら全てであっても本発明に含まれる。
【０３７０】
以上説明した各実施形態の任意の構成要素を他の実施形態に追加してもよく、これもまた本発明に含まれる。また、本発明の構成の一部又は全てを1個又は複数個のＣＰＵで実行されるソフトウエアで実現してもよい。
【０３７１】
＜他の実施形態＞
なお、周辺装置からソフトウエアをコンピュータにインストールできるようにしつつ、インストール回数を管理できるようにしてもよい。周辺装置に備えられた記憶手段は、外部周辺機器としての機能を情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、外部記憶装置としても機能する。転送手段は、記憶手段に記憶されている制御ソフトウエアモジュールと同一バージョンの制御ソフトウエアモジュールまたはより新しいバージョンの制御ソフトウエアモジュールのいずれもが情報処理装置にインストールされていないときに、記憶手段に記憶されている制御ソフトウエアモジュールを情報処理装置にインストールするために転送する。管理手段は、制御ソフトウエアモジュールをいずれかの情報処理装置にインストールした回数を管理する。
【０３７２】
スキャナ装置１０６のＲＯＭには、判定アプリケーション２２４と、オートランファイル（自動実行情報ファイル）２０７が予め保存されている。判定アプリケーションは、パーソナルコンピュータ１００のＣＰＵ１２１によって実行され、パーソナルコンピュータ１００にＵＳＢスキャナドライバ１０２がインストールされているかどうかを判断する。オートランファイルは、スキャナ装置１０６をパーソナルコンピュータ１００に接続した際に判定アプリケーションをＣＰＵ１２１に自動実行させるための記述を備えている。
【０３７３】
すなわち、ＣＰＵ１２１は、オートランファイルの記述内容にしたがって、判定アプリケーション２２４を起動する。オートランファイルは、記憶手段のうちＣＤドライブとして認識される記憶領域に記憶されている。よって、判定アプリケーションは、記憶手段のうちＣＤドライブとして認識される記憶領域に記憶されているＡｕｔｏｒｕｎ．ｉｎｆ（自動実行情報ファイル）によって自動的に起動されるように記述されているコンピュータプログラムの一例である。判定アプリケーションは、画像読み取りに必要となる制御ソフトウエアモジュールがインストール済みであるかどうかを判定し、インストール済みでなければ、上述した各種のソフトウエアをインストールする。
【０３７４】
ＣＰＵ１２１は、ＵＳＢスキャナドライバがインストールされているかどうかを判断する。インストールされているかは、例えば、レジストリを参照することにより判断できる。ＳＢスキャナドライバがインストールされていなければ、ＣＰＵ１２１は、インストーラにしたがって、パーソナルコンピュータ１００にキャプチャアプリケーションおよびＵＳＢスキャナドライバをスキャナ装置１０６から読み出してインストールする。
【０３７５】
キャプチャアプリケーションおよびＵＳＢスキャナドライバは、ＣＰＵ１１０、ＵＳＢコントローラ１２８及びＵＳＢインターフェース１０７によって、ＲＯＭ１２７から読み出されて、パーソナルコンピュータ１００へと転送される。よって、ＣＰＵ１１０、ＵＳＢコントローラ１２８及びＵＳＢインターフェース１０７は、記憶手段に記憶されている制御ソフトウエアモジュールと同一またはより新しいバージョンの制御ソフトウエアモジュールのいずれもが情報処理装置にインストールされていないときに、記憶手段に記憶されている制御ソフトウエアモジュールを情報処理装置にインストールするために転送する転送手段の一例といえよう。
【０３７６】
ＣＰＵ１２１は、インストール回数カウンタのカウント値を１つ増やす。なお、インストール回数カウンタで残数をカウントしている場合は、残数を１つ減数する。インストール回数カウンタは、例えば、ＣＰＵ１２１からアクセス可能な、スキャナ装置１０６に設けられた不揮発性の記憶領域（ＳＲＡＭやＥＥＰＲＯＭなど）に記憶されたファイルである。また、ＣＰＵ１２１は、制御ソフトウエアモジュールをいずれかの情報処理装置にインストールした回数を計数して不揮発性の記憶領域に書き込む回数書き込み手段の一例である。
【０３７７】
ところで、最新のドライバでは機能が向上していることが多いため、より最新のドライバがインストールされることが望ましい。そこで、ＣＰＵ１２１は、パーソナルコンピュータ１００内にインストールされているＵＳＢスキャナドライバのバージョンとスキャナ装置１０６内にあるＵＳＢスキャナドライバのバージョンとを比較し、前者が後者よりも古いか否かを判定する。古ければ、ＣＰＵ１２１は、スキャナ装置１０６内にあるＵＳＢスキャナドライバをパーソナルコンピュータ１００内にインストールする。
【０３７８】
ところで、周辺装置からソフトウエアをコンピュータにインストールできるようにしつつ、周辺装置に記憶されているソフトウエアを更新できるようにすれば便利であろう。この課題を解決するために、周辺装置は、情報処理装置の外部記憶装置としての機能と該情報処理装置の外部周辺機器としての機能とを備えている。周辺装置は、外部周辺機器としての機能を情報処理装置が制御するために使用する制御ソフトウエアモジュールを記憶するとともに、外部記憶装置として記憶領域を該情報処理装置に提供する記憶手段と、記憶手段に記憶されている制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが情報処理装置に記憶されているときに、情報処理装置から送信される該新しいバージョンの制御ソフトウエアモジュールを受信して、記憶手段に書き込む書き込み手段とを含む。
【０３７９】
判定アプリケーション２２４は、記憶手段に記憶されている制御ソフトウエアモジュールのバージョンと、情報処理装置にインストールされている制御ソフトウエアモジュールのバージョンとを比較する比較手段の一例である。なお、判定アプリケーション２２４は、制御ソフトウエアモジュールのインストールを制御するコンピュータプログラムの一例である。また、判定アプリケーション２２４やインストーラ２２５は、周辺装置を外部記憶装置として認識しているパーソナルコンピュータ（情報処理装置）によって記憶手段から読み出されてＲＡＭ１２４等にロードされ実行されるコンピュータプログラムである。
【０３８０】
ＣＰＵ１２１は、判定アプリケーション２２４にしたがって、パーソナルコンピュータに記憶されているＵＳＢスキャナドライバ１０２のバージョンと、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６のバージョンとを比較し、ＵＳＢスキャナドライバ１０２がより新しいか否かを判定する。パーソナルコンピュータにインストールされているＵＳＢスキャナドライバ１０２がスキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６より新しければ、ＣＰＵ１２１は、判定アプリケーション２２４にしたがって、パーソナルコンピュータ１００のハードディスクドライブ１２２からＵＳＢスキャナドライバ１０２を読み出し、スキャナ装置１０６のＲＯＭ１２７に上書きするために転送する。このようにＲＯＭ１２７はフラッシュメモリ等を用いて、書き換え可能な構成になっている。スキャナ装置１０６のＣＰＵ１１０は、ＵＳＢインターフェース１０７を介して受信したＵＳＢスキャナドライバ１０２をＲＯＭ１２７に書き込む。このように、ＣＰＵ１１０は、記憶手段に記憶されている制御ソフトウエアモジュールよりも新しいバージョンの制御ソフトウエアモジュールが情報処理装置に記憶されているときに、情報処理装置から送信される新しいバージョンの制御ソフトウエアモジュールを受信して、記憶手段に書き込む書き込み手段の一例である。自動更新の対象となる複数の制御ソフトウエアモジュールが存在する場合、ＲＯＭ１２７に記憶されたものよりバージョンアップされていると判断された制御ソフトウエアモジュールのみがパーソナルコンピュータ１００からスキャナ装置１０６に送信されてくるので、ＲＯＭ１２７に上書きされることになる。すなわち、キャプチャアプリケーションのみが更新されることもあるし、ドライバのみが更新されることもある。なお、ＣＤドライブインタフェースが有効となった状態でソフトウエアの更新ができない場合、ＣＰＵ１２１及びＣＰＵ１１０は、ＣＤドライブインタフェースからＵＳＢメモリなどの書き込み可能なマスストレージインターフェースに切り替えることになろう。また、ソフトウエアの更新を可能とするために、読み取り専用のＣＤドライブとして認識されるのではなく、ＣＤ−ＲやＣＤ−ＲＷドライブ等の読み書き可能なディスク装置に、ＣＤ−ＲやＣＤ−ＲＷ等の読み書き可能なディスクが装填されているものとして認識されるように構成しても良い。
なお、ＵＳＢ ＣＤドライブインターフェースを持たない場合は、ＵＳＢディスクドライブインターフェースを介して読み書き可能な領域として認識される領域に、自動実行情報ファイルや判定アプリケーションを格納してもよい。このようにすれば自動実行情報ファイルの記述内容に従って判定アプリケーションの自動起動が可能となる。
【０３８１】
例えば、パーソナルコンピュータ１００にインストールされているＵＳＢスキャナドライバ１０２のバージョンが１．０．５で、スキャナ装置１０６に記憶されているＵＳＢスキャナドライバ２２６のバージョンが１．０．４であったと仮定する。この場合は、ＣＰＵ１２１は、スキャナ装置１０６に記憶されている古いＵＳＢスキャナドライバ２２６をＵＳＢスキャナドライバ１０２によって上書きする。
【０３８２】
さらに、パーソナルコンピュータ側により新しいバージョンのソフトウエアが存在するときは、ＣＰＵ１２１は、それを周辺装置に書き込む。よって、インストールされるために周辺装置に格納されているソフトウエアをより新しいものに維持することが可能となる。
【０３８３】
上記の実施形態では、ＵＳＢスキャナドライバのインストールとその更新について説明したが、キャプチャアプリケーションなどの他のソフトに本発明を適用してもよい。
【０３８４】
ところで、画像読取装置のデバイスドライバをコンピュータにインストールすることなく画像の読取を実現しつつ、画像読取装置の個別の設定データを持ち運び可能としてもよい。この課題を解決するために、画像読取装置は、画像読取装置を使用するために情報処理装置で実行されるソフトウエアを記憶したソフトウエア記憶手段と、画像読取装置に接続される情報処理装置ごとまたは情報処理装置を使用するユーザごとに、画像の読み取りに適用されるパラメータファイル記憶手段とを備える。ソフトウエアは、情報処理装置に対応したパラメータをファイル記憶手段から読み出してパラメータに応じたコマンドを画像読取装置に送信するコマンド送信手段として、情報処理装置を機能させる。
【０３８５】
本発明の画像読取装置は、画像読取装置を使用するために情報処理装置で実行されるソフトウエアを記憶したソフトウエア記憶手段と、画像読取装置に接続される情報処理装置ごとまたは情報処理装置を使用するユーザごとに画像の読み取りに適用されるパラメータファイル記憶手段とを備える。上記ソフトウエアは、情報処理装置に対応したパラメータをファイル記憶手段から読み出してパラメータに応じたコマンドを画像読取装置に送信するコマンド送信手段として、情報処理装置を機能させる。
【０３８６】
画像読取装置を使用するユーザごとや画像読取装置が接続されるコンピュータごとの個別の設定データを持ち運び可能となるため、ユーザの設定負担が軽減される。また、本実施形態では、コンピュータごとの設定パラメータおよびユーザごとの設定パラメータの少なくとも一方をスキャナ装置１０６の内部に格納することを特徴としている。
【０３８７】
本実施形態で、ＲＯＭ１２７は、不揮発性のメモリであり、コンピュータ１００によって情報を書き込むことが可能なメモリである。ＲＯＭ１２７には、少なくとも、キャプチャアプリケーション２１０と設定ファイル２１２が記憶される。よって、ＲＯＭ１２７は、画像読取装置に接続される情報処理装置ごとおよび情報処理装置を使用するユーザごとの少なくとも一方の、画像の読み取りに適用されるパラメータを記憶するファイル記憶手段の一例である。
【０３８８】
図５に示したスキャン設定の確認と変更のためのユーザインターフェースには、各種の設定項目に対して現在選択されている内容が表示される。とりわけ、キャプチャアプリケーションを起動した直後に選択されている設定項目の内容は、ＣＰＵ１２１が設定ファイルから読み出した内容に基づいて選択したものである。これらの読取設定の内容は、ＣＰＵ１２１が、コンピュータの識別情報やユーザの識別情報を認識し、それらの少なくとも一方に対応する読取設定内容を設定ファイル２１２から抽出して、ユーザインターフェースに表示させている。
【０３８９】
［ＤｅｆａｕｌｔＳｅｔｔｉｎｇ］は、初期設定であることを示す。初期設定は、コンピュータやユーザを特定できないときに使用される設定である。そのため、ＣｏｍｕｐｕｔｅｒＮａｍｅには、コンピュータに依存しないことを意味するＮＵＬＬが設定されている。Ｍｏｄｅは、白黒読み取りモードまたはカラー読み取りモードかを示す。ＰａｐｅｒＳｉｚｅは読み取りサイズを示す。Ｒｅｓｏｌｕｔｉｏｎは、読取解像度を示している。ＲｅａｄＳｉｄｅは、片面読取か両面読取かを示す。ＦｉｌｅＮａｍｅは、読み取った画像に付与されるファイル名称を示す。ＤｉｓｐｌａｙＩｍａｇｅは、読み取った画像を表示するか否かを示す。
【０３９０】
また、設定の変更が行われた場合は、スキャナ装置１０６に記憶された設定ファイルに設定の変更が反映される。よって、ユーザは、スキャナ装置１０６を接続するコンピュータが変更されても、そのコンピュータに適するであろう新しい設定内容を読み出して、使用することができる。
【０３９１】
上述したように、スキャナ装置が接続されるコンピュータごとの設定を設定ファイルに格納してもよいが、このような設定は、ユーザごとに切り替えられてもよい。そこで、ユーザごとの設定を設定ファイルに格納することについて説明する。
【０３９２】
なお、現在、コンピュータ１００を使用しているユーザ名が既に登録されていて、かつパラメータを変更した場合、ＣＰＵ１２１は、設定ファイル２１２内の設定セットを書き換える。一方、ユーザ名が設定ファイル２１２に登録されていない場合、ＣＰＵ１２１は、このユーザ名に対応した設定セットを設定ファイル２１２に追加する。設定の変更が行われた場合は、スキャナ装置１０６に記憶された設定ファイルに設定の変更が反映される。よって、ユーザは、スキャナ装置１０６を接続するコンピュータが変更されても、ユーザの用途に適するであろう新しい設定内容を読み出して、使用することができる。上述した各実施形態の構成要素を他の実施形態に追加してもよく、本発明に含まれる。上述した各実施形態の周辺装置（画像読取装置を含む）において、周辺装置に記憶されたプログラムが情報処理装置にロードされて起動され、周辺装置が動作を開始する方式を、下記のように変形してもよい。（１）：周辺装置を情報処理装置に接続すると、自動実行情報ファイル（例えばａｕｔｏｒｕｎ.ｉｎｆ）とドライバプログラム（例えばＣａｐｔｕｒｅＡｐｐｌｉｃａｔｉｏｎ.ｅｘｅ）が情報処理装置にロードされて、自動的に周辺装置は動作を開始する。（２）：周辺装置を情報処理装置に接続すると自動実行情報ファイルと、ドライバプログラムが情報処理装置にロードされ、情報処理装置又は周辺装置の操作部をユーザが操作すると周辺装置は動作を開始する。（３）：周辺装置を情報処理装置に接続すると自動実行情報ファイルが情報処理装置にロードされ、情報処理装置又は周辺装置の操作部をユーザが操作するとドライバプログラムが情報処理装置にロードされ、周辺装置は動作を開始する。（４）：周辺装置を情報処理装置に接続すると自動実行情報ファイルが情報処理装置にロードされ、情報処理装置又は周辺装置の操作部をユーザが操作するとドライバプログラムが情報処理装置にロードされ、さらにユーザ操作を行うと周辺装置は動作を開始する。（５）：周辺装置を情報処理装置に接続し情報処理装置又は周辺装置の操作部をユーザが操作すると、自動実行情報ファイルと、ドライバプログラムが情報処理装置にロードされ、周辺装置は動作を開始する。（６）：周辺装置を情報処理装置に接続し情報処理装置又は周辺装置の操作部をユーザが操作すると、自動実行情報ファイルが情報処理装置にロードされ、さらにユーザ操作を行うと、ドライバプログラムが情報処理装置にロードされ周辺装置は動作を開始する。
【図１】
2010113702.tif 000003
【図２】
2010113702.tif 000004
【図３】
2010113702.tif 000005
【図４】
2010113702.tif 000006
【図５】
2010113702.tif 000007
【図６】
2010113702.tif 000008
【図７】
2010113702.tif 000009
【図８】
2010113702.tif 000010
【図９】
2010113702.tif 000011
【図１０】
2010113702.tif 000012
【図１１】
2010113702.tif 000013
【図１２】
2010113702.tif 000014
【図１３】
2010113702.tif 000015
【図１４】
2010113702.tif 000016
【図１５】
2010113702.tif 000017
【図１６】
2010113702.tif 000018
【図１７】
2010113702.tif 000019
【図１８】
2010113702.tif 000020
【図１９】
2010113702.tif 000021
【図２０】
2010113702.tif 000022
【図２１】
2010113702.tif 000023
【図２２】
2010113702.tif 000024
【図２３】
2010113702.tif 000025
【図２４】
2010113702.tif 000026
【図２５】
2010113702.tif 000027
【図２６】
2010113702.tif 000028
【図２７】
2010113702.tif 000029
【図２８】
2010113702.tif 000030
【図２９】
2010113702.tif 000031
【図３０】
2010113702.tif 000032
【図３１】
2010113702.tif 000033
【図３２】
2010113702.tif 000034
【図３３】
2010113702.tif 000035
【図３４】
2010113702.tif 000036
【図３５】
2010113702.tif 000037
【図３６】
2010113702.tif 000038