(57)【特許請求の範囲】
【請求項１】
原稿画像をスキャナ装置で読み取ってその画像データをホスト装置に転送してデータ処理するシステムであって、
前記スキャナ装置は、
給紙トレイ上に積載された原稿シートを読取プラテンに給送する給紙手段と、
前記読取プラテンに送られた原稿画像を読み取る読取センサと、
前記給紙手段を制御して画像読み取りを実行する読取制御手段と、
前記読取センサからの画像データを一時的に記憶する転送データ記憶手段と、
前記転送データ記憶手段に記憶された画像データを前記ホスト装置に転送する転送手段と、
を備え、
前記ホスト装置は、
前記転送手段からの画像データを受信する受信手段と、
前記スキャナ装置を動作させるドライバプログラムの実行手段と、
前記スキャナ装置からの画像データを記憶する記憶装置と、
この記憶装置を制御するメモリ制御手段と、
を備え、
前記転送データ記憶手段は、画像読み取りする最大原稿シート１枚分の画像データを、
前記記憶装置のメモリエリアは、最大原稿シート２枚分以上の画像データを、
それぞれ記憶可能に構成され、
前記ドライバプログラムの実行手段は、前記メモリ制御手段を制御して前記受信手段で受信した画像データを前記記憶装置に設定したメモリエリアに一時的に記憶するように構成され、
前記読取制御手段は、
原稿シートの最初の１枚目は、前記ホスト装置からの読取開始コマンドで前記読取プラテンに向けて給送し、
原稿シートの後続する２枚目以降は、先行する原稿シート後端との間の間隔が所定長さ以上であり、且つ前記転送データ記憶手段の空き容量が所定量以上であるとき前記読取プラテン向けて給送することを特徴とする画像読取システム。
【請求項２】
前記ホスト装置は、前記スキャナ装置からの画像データを目的ジョブに従って処理するアプリケーション実行部を備え、
前記記憶装置は、最大原稿シート２枚分以上の画像データを記憶可能なメモリエリアを有する第１記憶装置と、
最大原稿シート１枚分の画像データを記憶可能な第２記憶装置と、
で構成され、
前記第１記憶装置は、前記転送データ記憶手段から送られた画像データを一時的に記憶した後、前記第２記憶装置に転送し、
前記第２記憶装置は、前記第１記憶装置から送られた画像データを一時的に記憶した後、前記アプリケーション実行部に転送することを特徴とする請求項１に記載の画像読取システム。
【請求項３】
前記転送手段を制御する転送データ制御手段は、
前記転送データ記憶手段から前記第１記憶装置に画像データを所定長さのブロック単位で転送し
、
前記ドライバプログラムの実行手段は、
前記第１記憶装置のメモリエリアから前記第２記憶装置に画像データをページ単位で転送することを特徴とする請求項２に記載の画像読取システム。
【請求項４】
前記ホスト装置は、前記記憶装置を制御するメモリ制御手段をさらに備え、
前記ドライバプログラムの実行手段は、前記メモリ制御手段からの前記記憶装置の空き情報に応じて画像データ要求コマンドを前記スキャナ装置へ送信することを特徴とする請求項１に記載の画像読取システム。
【請求項５】
前記スキャナ装置は、画像データにその画像データに関する情報を添付する情報添付手段を更に備え、
前記ホスト装置は、前記画像データに添付された情報を用いて前記記憶装置を制御するメモリ制御手段を更に備え、
前記メモリ制御手段は、前記画像データに添付された情報から次原稿の画像データが前記記憶手段にあるか否かを示す送信データ有無情報を作成して伝送することを特徴とする請求項１に記載の画像読取システム。
【請求項６】
前記記憶装置は、前記ホスト装置に設けられている内部記憶装置と外部記憶装置の一方又は両方で構成されていることを特徴とする請求項１に記載の画像読取システム。
【請求項７】
前記スキャナ装置は、
前記給紙トレイからの原稿シートの表裏両面を同時読取りするように第１第２の読取センサと、
この第１第２の読取センサからの画像データを記憶する第１第２の転送データ記憶手段と、
を備え、
前記ドライバプログラムの実行手段は、
前記データ転送ラインを介して前記第１第２の転送データ記憶手段から転送された画像データをそれぞれ記憶する第１第２のメモリエリアを前記記憶装置に設定することを特徴とする請求項１に記載の画像読取システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿シート上の画像を電気的に読取ってコンピュータ装置に転送する画像読取システムに係わり、スキャナ装置から画像データをコンピュータ装置に転送するデータ転送機構の改良に関する。
【背景技術】
【０００２】
一般に、コンピュータ装置に、その端末装置としてスキャナ装置を接続した画像読取システムは広く知られている。そしてコンピュータ装置でアプリケーションソフトを実行して画像処理する際に、原画像をスキャナ装置で読み取って入力している。このためコンピュータ装置とスキャナ装置とは伝送ケーブルで接続され、アプリケーションソフトからのコマンドに応じてスキャナ装置で原稿画像を読み取っている。
【０００３】
このようなシステムに用いられるスキャナ装置は、プラテン上に静止セットした原稿シートをＣＣＤなどの光電変換センサで電気的に読み取るフラットベットスキャニング方式と、給紙トレイに収容した原稿シートを連続的に繰り出してプラテンを通過する原稿画像を光電変換センサで電気的に読み取るスリット露光方式が知られている。そして通常は大サイズ原稿、或いは単ページ原稿はフラットベット方式で、また規格サイズ原稿、或いは複数ページ原稿はスリット露光方式で読み取る複合型スキャナ装置が用いられている。そしてスキャナ装置ではプラテンに準備された原稿シートの画像を読取センサで読取り、その電子データを２／多値化（Ａ／Ｄ変換）してデータ補正した後、コンピュータ装置などの外部装置にデータ転送するように構成されている。
【０００４】
一方、コンピュータ装置は、中央演算装置（ＣＰＵ）と実行プログラムを記憶するＨＤＤ（ハードディスク）、各種データを記憶するＲＡＭで構成され、目的ジョブに応じた処理を実行するように構成されている。通常、この中央演算装置はＯＳプログラムでＨＤＤなどの外部記憶装置とキーボード、ディスプレイなどの入出力機器を制御するＯＳ実行部と、アプリケーションプログラムを実行するアプリケーション実行部を備えている。
【０００５】
そこでスキャナ装置とコンピュータ装置とは伝送ケーブルで接続され、相互のコマンド信号と、スキャナ装置で取得した画像データをシリアル転送或いはパラレル転送するように構成されている。このためスキャナ装置には画像データを一時的に記憶するバッファメモリと、これに記憶された画像データの転送を制御するインターフェース部が設けられている。通常このインターフェースは、ＲＳ２３２Ｃ、ＳＣＳＩ、ＵＳＢなどの規格に準拠して構成されている。
【０００６】
また、コンピュータ装置の中央演算装置にはスキャナ装置を動作させるドライバプログラムの実行部が準備され、このドライバプログラムは中央演算装置で実行されるアプリケーションプログラムに従って動作信号をスキャナ装置に伝送し、スキャナ装置で読み取った画像データをアプリケーションプログラムの実行部（以下「上位ドライバ実行部」という）に転送するように構成されている。通常このドライバプログラムは例えばＴＷＡＩＮ規格に準拠してスキャナ装置と上位ドライバ実行部とを連携動作させている。
【０００７】
上述のようにスキャナ装置の画像読取部とコンピュータ装置の上位ドライバ実行部とはドライバプログラムの実行部で連結され、ドライバプログラムは例えば、ＴＷＡＩＮ、ＩＳＩＳなどの企画に準拠した汎用のドライバプログラムで構成されている。
【０００８】
従来のスキャナ装置は、ドライバ実行部からの画像読取指示信号（Start Scanコマンド）に従って1枚目原稿の搬送を開始させ読み取りを行っていた。そして、２枚目以降の原稿についても、1枚目原稿と同様に、ドライバ実行部からの画像読取指示信号（Start Scanコマンド）を受けてから原稿の原稿搬送を開始させていた。
【０００９】
従って、従来のドライバプログラムはスキャナ装置に１枚目原稿の画像読取指示信号（Start Scanコマンド）を送信し、1枚目原稿の画像データ（1ページ分）を受信した後、スキャナ装置に２枚目の原稿の画像読取指示信号（Start Scanコマンド）を送信する、というようにページ単位で指示するように構成され、スキャナ装置もドライバ実行部からのページ単位のStart Scanコマンドに応じて原稿搬送を行っていた。
【特許文献１】特開平１０−２６０９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そのため、前原稿の読取が終了してもドライバ側の状況により画像読取指示信号（Start Scanコマンド）が出されるまで次原稿の搬送および読取が行われない無駄な時間があった。よって、画像読取からドライバへの転送までの全体の処理時間が長かった。
【００１１】
さらに、従来は、ドライバが１ページ分の画像データを取得した後、次原稿の画像読取指示信号（Start Scanコマンド）を出力する前に、次原稿があるか否かの確認等のためにドライバ実行部とスキャナ装置とのやり取りが行われ、このやり取りが終了した後にはじめて画像読取指示信号（Start Scanコマンド）が出された。このドライバ実行部とスキャナ装置との間のやり取りは両者間の通信で行われるため時間がかかり、その時間分画像読取指示信号（Start Scanコマンド）の出力が遅れ、次原稿の搬送および読取が行われない無駄な時間が長くなってしまっていた。そして、この通信時間が全体の処理時間へ与える影響は連続して読取る原稿枚数が多くなればなるほど大きかった。
【００１２】
従来のドライバソフトの構成を、例えばアプリケーションプログラムでドキュメント作成する場合を説明する。アプリケーションプログラムで目的ジョブを実行する過程で、アプリケーションプログラム上で使用者がスキャナ装置を動作させる指示（「画像取り込み」や「スキャン」）を行うと、アプリケーションプログラムはドライバプログラムを立ち上げて例えば画像読取り条件の設定画面を表示し、使用者による画像種別選択（モノクロｏｒカラー）、解像度、スキャニング領域などを設定を促す。そして使用者が各種設定を行った後、画像データ取り込みを指示する「スキャン」ボタンを選択すると、ドライバ実行部は画像読取指示信号（Start Scanコマンド）をスキャナ装置に出し、スキャナ装置はこれを受けてゲイン調整等のイニシャライズ動作を実行させ、このイニシャライズ動作が整った後、原稿の読取動作を開始する。
【００１３】
上述のようにスキャナ装置とコンピュータ装置との間で画像読取りを実行して、読取った画像データを転送するシステムでは、コンピュータ装置側でドライバプログラムを実行するドライバ実行部を設けてアプリケーションプログラムの実行部と連携するように構成している。そこで従来のドライバプログラムは、スキャナ装置に１枚目の原稿の画像読取指示信号（Start Scanコマンド）を送り、この１枚目の画像データをドライバ実行部に引き渡した後、２枚目の原稿の画像読取指示信号（Start Scanコマンド）を送り、その後も同様に繰り返している。このためドライバ実行部での画像処理等や上位ドライバ実行部へのデータの引渡しの処理が遅いとスキャナ装置の画像読取りを遅なるように構成されている。そしてスキャナ装置で複数の原稿を連続して読取る場合には、例えば１枚目の原稿の画像データが全て上位ドライバ実行部に転送された後、２枚目の原稿の画像読取りを開始し、それ以降も同様に画像読取りするようになっている。
【００１４】
このようにドライバプログラムを構成し、スキャナ装置はドライバ実行部からの画像読取指示信号（Start Scanコマンド）に従って原稿の画像読取りを開始するように構成すると連続する原稿のインターバル時間が長くなり、画像読取りの処理効率が劣る問題がある。
【００１５】
一方このようなタイムロスを少なくするため、スキャナ装置に画像データを蓄えるメモリを大容量に構成し、スキャナ装置をドライバ実行部からの信号に寄らず独立して画像読取りを実行するように構成することが考えられる。ところがスキャナ装置に大容量の記憶装置（ディバイス）を搭載することは、装置の大型化と高コスト化を招く問題がある。
【００１６】
そこで本発明者はドライバ実行部でコンピュータ装置に準備されている記憶装置のメモリエリアを割り付ける際に、従来上位ドライバ実行部に転送するメモリ量より大きいメモリエリアを確保する。これと同時にスキャナ装置は給紙スタッカに準備された原稿を１枚目、２枚目の順にドライバ実行部からの画像読取指示信号（Start Scanコマンド）を待たずに連続して画像読取りを実行するように構成する。これによって従来連続する原稿のページ間に信号処理のインターバル時間を要していた問題を解決し得るとの着想に至った。
【００１７】
本発明は、スキャナ装置で読取った画像データをコンピュータ装置で処理するシステムにおいて、スキャナ装置で複数の画像原稿を連続して読み取ることが可能であり、以って画像処理を高速で効率的に処理することが可能な画像読み取りシステムの提供をその主な課題としている。
【課題を解決するための手段】
【００１８】
本発明は上記課題を達成するため、以下の手段を採用する。
順次原稿画像を読み取るスキャナ装置と、上記スキャナ装置から転送された画像データを処理するホスト装置と、から構成される画像読取システムであって、上記スキャナ装置は、給紙トレイ上に積載された原稿シートを読取プラテンに給送する給紙手段と、上記読取プラテンに送られた原稿画像を読み取る読取センサと、上記給紙手段を制御して画像読み取りを実行する読取制御手段と、上記読取センサからの画像データを一時的に記憶する転送データ記憶手段と、この転送データ記憶手段を制御する転送データ制御手段と、上記転送データ記憶手段に記憶された画像データを上記ホスト装置に転送する転送手段とを備える。そして上記ホスト装置は、上記転送手段からの画像データを受信する受信手段と、上記スキャナ装置を動作させるドライバプログラムの実行手段と、上記スキャナ装置からの画像データを記憶する記憶装置と、この記憶装置を制御するメモリ制御手段とを備える。また上記ドライバプログラムの実行手段は、上記メモリ制御手段を制御して上記受信手段からの画像データを上記記憶装置に設定したメモリエリアに一時的に記憶するように構成する。そこで上記読取制御手段は、上記ホスト装置からの読取開始コマンドから独立して上記給紙手段を制御して２枚目以降の原稿の搬送を開始させるように構成する。
【００１９】
この場合、スキャナ装置の読取制御手段は、最初の原稿シートに後続する２枚目以降の原稿シートの画像読取りを、スキャナ装置に配置した転送データ制御手段からの転送データ記憶手段の空き容量情報に基づいて実行するように構成する。
【発明の効果】
【００２０】
本発明はスキャナ装置で複数の原稿画像を連続して読取り、コンピュータ装置に転送するシステム構成において、最初の原稿シートの読取りはコンピュータ装置のドライバプログラムの実行手段からの画像読取指示信号（Start Scanコマンド）に基づいて実行し、後続する２枚目以降の原稿シートは上記画像読取指示信号（Start Scanコマンド）の有無に関係なく独立して画像読取りを実行するように構成したものであるから次の効果を奏する。
【００２１】
従来、最初の原稿に後続する２枚目以降の原稿は、コンピュータ装置側のドライバ実行部で最初の原稿の画像データを受信した後、このドライバ実行部からの画像読取指示信号（Start Scanコマンド）を待って画像読取りを開始していたのに対して、本発明はスキャナ装置で独立して画像読取りを開始するため、１枚目と２枚目の原稿間のインターバル時間を画像読み取りに必要な最小限度に設定することが出来る。このため連続する複数原稿の画像読取り処理の効率を著しく向上させることが出来る。
【００２２】
つまり、スキャナ装置は最初の原稿の画像読取りをコンピュータ装置側のドライバ実行部からの読取り指示信号に基づいて画像読み取りし、２枚目以降の原稿は例えばスキャナ装置のメモリ空き容量に応じて画像読み取りを連続的に実行することによって上述のインターバル時間を短縮することが出来る。
【００２３】
更に本発明はコンピュータ装置側の記憶装置のメモリエリアをアプリケーションプログラムの実行手段に引き渡す画像データ量に対してスキャナ装置のデータ転送ラインから転送される画像データ量がオーバするとき、このオーバするデータ量を蓄積可能に設定する。例えばコンピュータ装置の記憶装置に原稿２画面分のメモリを準備し、その１つからアプリケーション実行部に画像データを転送し、残る１つにスキャナ装置から後続する画像データを蓄積するように構成することによってスキャナ装置ではインターバル時間の短い連続的な画像読取りが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下図示の本発明の好適な実施の態様に基づいて本発明を詳述する。
図１は本発明に係わる画像読取システムを示す全体構成の説明図である。図２は図１のシステムの一部を構成するスキャナ装置の全体説明図である。図３乃至図５は図１のシステムの制御構成を示すブロック図であり、図６乃至図８は図１のシステムにおけるアプリケーションプログラムとドライバプログラムを説明するためのフローチャートである。
【００２５】
本発明に係わる画像読取システムは、ホスト装置Ａとスキャナ装置Ｂとから構成され、スキャナ装置Ｂはこの装置を制御する制御ＣＰＵ４１を備えている。図１に示すようにホスト装置Ａとスキャナ装置Ｂとは伝送ケーブル（ＵＳＢケーブル）１で接続され、画像データと制御信号を相互にシリアル転送するように構成されている。
【００２６】
なお、ホスト装置Ａがネットワーク等に接続されていても構わず、ホスト装置Ａとスキャナ装置Ｂ間がネットワークを介して接続されていても構わず、さらにその間が有線でも無線でも構わない。またスキャナ装置Ｂは、プリンタ、ファクシミリなどの各種機能を備えた複合機でも構わず、原稿から画像データを取得するものであればよい。
【００２７】
［ホスト装置の構成］
図示のホスト装置Ａは広く知られているパーソナルコンピュータで構成され、図３に示すように、中央処理装置（以下「ＣＰＵ」という）２と、主記憶装置３と、補助記憶装置４と、キィボードなどの入力装置５と、ディスプレイなどの出力装置６、画像データなどを一時的に記憶するRＡM「Ｐ」を備えている。ＣＰＵ２は記憶装置（主記憶装置３、補助記憶装置４）に準備された各種プログラムを実行する。従って、このＣＰＵ２で基本プログラム（ＯＳ）を実行して外部記憶装置及び入出力装置を制御するＯＳ実行部２ａと、各種アプリケーションプログラムを実行するアプリ実行部１００と、スキャナ装置Ｂなどの外部機器を動作させるドライバプログラムを実行するドライバ実行部で構成され、さらにドライバ実行部はＴＷＡＩＮ、ＩＳＩＳ、ＷＩＡ等の規格に準じ、アプリケーション実行部へ画像データを引き渡す、またはハードディスクなどに画像データを記憶させる上位ドライバ実行部２ｂとスキャナ装置Ｂと上位ドライバ実行部２ｂとの間に位置してスキャナ装置Ｂからの画像データを上位ドライバ実行部２ｂへ引き渡す下位ドライバ実行部２ｃとで構成される。
【００２８】
［スキャナ装置の構成］
図２にスキャナ装置Ｂの構成を示す。このスキャナ装置Ｂは原稿シートを載置する給紙スタッカ１１と、排紙スタッカ１２と、この給紙スタッカ１１から排紙スタッカ１２に原稿シートを案内する搬送経路１３と、搬送経路１３に配置された読取プラテン１４とから構成されている。読取プラテン１４は搬送経路１３を移動する原稿シートの裏面画像を読取る第１プラテン１４ａと表面画像を読取る第２プラテン１４ｂで構成されている。図示の装置は、上述の給紙スタッカ１１から排紙スタッカ１２に移動する原稿シートの表裏画像を読取る第１第２プラテン１４ａ、１４ｂとは別に原稿シートを静止セットする第３プラテン（フラットベットプラテン）１５が設けられている。この第３プラテン１５は上記第２プラテン１４ｂと略々同一平面を形成するようにケーシング１０の上面に配置されている。
【００２９】
上記第１プラテン１４ａには搬送経路１３を所定速度で移動する原稿シートの裏面画像を読み取る第１画像読取ユニット１６が配置され、上記第２プラテン１４ｂには原稿シートの表面画像を読み取る第２画像読取ユニット１７が配置されている。この第２画像読取ユニット１７は上記第３プラテン１５上に載置セットされた原稿シートの画像を読み取るように第２、第３プラテン１４ｂ、１５の間で位置移動可能に構成されている。
【００３０】
［画像読取ユニットの構成］
上記第１画像読取ユニット１６と第２画像読取ユニット１７とは、同一の構成であるので同一番号を付してその一方について説明する。図示画像読取ユニットは縮小光学系で画像読み取りする場合を示す。光源２１から第１第２プラテン１４ａ、１４ｂに光を照射し、プラテンを通過する原稿からの反射光を、ミラー２２を介して集光レンズ２３に導き、この集光レンズ２３で読取センサ２４上に結像する。図示の読取センサ２４はＣＣＤなどの光電変換素子で構成され、集光レンズ２３からの撮像光を電気信号に変換して出力する。
【００３１】
上述のように構成された第１画像読取ユニット１６は上記第１プラテン１４ａには固定配置され、第２画像読取ユニット１７は上記第２プラテン１４ｂには上記第３プラテン１５との間で位置移動自在に配置されている。このため第１プラテン１４ａに配置されている第１画像読取ユニット１６はユニットフレーム１６ｘに上述の各構成部品が搭載され、このユニットフレーム１６ｘが装置フレーム（不図示）に固定されている。また、第２プラテン１４ｂに配置されている第２画像読取ユニット１７はユニットフレーム（以下キャリッジと云う）１７ｘに各構成部品が搭載され、このキャリッジ１７ｘは装置フレームに設けられた走行ベルト１８に図２左右方向に移動自在に支持されている。このキャリッジ１７ｘにはキャリッジ移動モータＭｃに連結された走行ベルト１８に連結されている。従ってこのキャリッジ移動モータＭｃの回転制御によってキャリッジ１７ｘは第２プラテン１４ｂと第３プラテン１５の直下に選択的に位置づけられ、第３プラテン１５では、このプラテンにセットされた原稿シートに沿って移動しながらその画像を読み取るように構成されている。
【００３２】
［給紙手段の構成］
上記給紙スタッカ１１は複数の原稿シートを載置するトレイで構成され、このトレイには原稿の有無を検出するトレイセンサＳｔが設けられている。そしてこの給紙スタッカ１１には原稿シートを繰り出すピックアップローラ２５と、このピックアップローラで繰り出されたシートを１枚に分離する分離ローラ２６と、この分離ローラから送られた原稿シートを一時的に待機させるレジストローラ２７が配置されている。また、このレジストローラ２７の下流側には第１フィードローラ２８と第２フィードローラ２９が設けられている。そこで原稿シートは、給紙スタッカ１１からピックアップローラ２５と分離ローラ２６で１枚に分離してレジストローラ２７に給送され、このレジストローラ位置で一時停止した後、レジストローラ２７を駆動回転して下流側の第１第２フィードローラ２８、２９に原稿シートを給送する。
【００３３】
従って図２に示す装置は原稿シートを第１第２プラテン１４ａ、１４ｂに向けて給送する給紙手段は、上記レジストローラ２７と第１第２フィードローラ２８、２９で構成され、これらのローラはフィードモータＭｆに連結され、同一周速度で原稿を給送するように構成されている。つまり図２の装置は給紙スタッカ１１から先の原稿を読取プラテン１４に向けて給送した後、後続する次原稿を給紙スタッカ１１から繰り出して分離し、その下流側のレジストローラ位置に待機させる（先出し待機制御）。そして後述する所定のタイミングでレジストローラ２７から第１プラテン１４ａに原稿シートを給送する制御を前提としている。
【００３４】
尚本発明にあって第１プラテン１４ａに原稿シートを給送する給紙手段を上述のピックアップローラ２５、分離ローラ２６とレジストローラ２７、第１第２フィードローラ２８、２９で構成することも可能である。この場合には後述するＣＰＵ４１の制御によりピックアップローラ２５と分離ローラ２６を駆動回転して給紙スタッカ１１から原稿シートを繰り出して１枚に分離する。次いでこの給紙スタッカ１１から送られた原稿シートを第１プラテン１４ａに向けてレジストローラ２７と第１第２フィードローラ２８、２９で給送するように制御する。
【００３５】
上記搬送経路１３には第１プラテン１４ａの下流側に第３フィードローラ３０が配置され、第１プラテン１４ａからの原稿を第２プラテン１４ｂに給送し、この第２プラテン１４ｂの下流側にはプラテン面から原稿シートを掬い上げる搬出ローラ３１と、排紙ローラ３２がそれぞれこの順に配置されている。排紙ローラ３２は搬出ローラ３１からの原稿シートを排紙スタッカ１２に搬出するように構成されている。
【００３６】
［給紙手段の駆動機構］
上述の給紙スタッカ１１及び搬送経路１３に配置された各搬送ローラの駆動機構は例えば次のように構成する。上記ピックアップローラ２５と分離ローラ２６は給紙モータＭｋに連結され、この給紙モータの正回転でピックアップローラ２５と分離ローラ２６を給紙方向に回転させる。これと共にこの給紙モータＭｋの回転でピックアップローラ２５は給紙スタッカ上方の待機位置からスタッカ上の最上シートの上に降下するように構成する。また給紙モータＭｋの逆回転でピックアップローラ２５をスタッカ上方の待機位置に上昇させて待機させる。
【００３７】
上記給紙モータＭｋの正逆転によって給紙スタッカ１１上の原稿シートは１枚に分離され、レジストローラ２５に繰り出され、この位置に待機することとなる。そこで上記レジストローラ２７と第１第２第３フィードローラ２８，２９、３０はそれぞれ同一周速度で原稿シートを給送するようにフィードモータＭｆに連結されている。従ってＣＰＵ４１はこのフィードモータＭｆを正回転させて所定方向に回転することによって原稿シートを搬送経路１３に沿って第１プラテン１４ａ、第２プラテン１４ｂの順に所定速度で給送することとなる。
【００３８】
［給紙センサの構成］
上述の搬送経路１３には図２に示すように、レジストセンサＳｒ、第１リードセンサＳｅ１、第２リードセンサＳｅ２、排紙センサＳｈが配置されている。レジストセンサＳｒは分離ローラ２６とレジストローラ２７の間に配置され給紙スタッカ１１から送られた原稿シートの先端がレジストローラ位置に到達したのを検出する。第１リードセンサＳｅ１は第１プラテン１４ａの上流に配置され、レジストローラ２７から送られた原稿シートの先端を検知する。上記第２リードセンサＳｅ２は第２プラテン１４ｂの上流に配置され、第３フィードローラ３０から送られた原稿シートの先端を検知する。また排紙センサＳｈは搬出ローラ３１から送られた原稿シートの前後端を検知する。
【００３９】
そして上記第１リードセンサＳｅ１と第２リードセンサＳｅ２はシートの先端を検出して下流側の第１読取プラテン１４ａ及び第２読取プラテン１４ｂにおける画像読取りの開始位置と読取り終了位置を設定する基準信号として使用され、また、上記各センサはシート前後端を検知し、原稿シートのジャムを判断する検出信号として使用される。上記給紙スタッカ１１には図示しないがトレイ上に載置された原稿シートのサイズを検出するサイズ検知センサが配置されていても構わない。本実施例では、後述の通り、ＰＣからユーザーが原稿サイズを指定する。
【００４０】
ＣＰＵ４１は上記レジストセンサＳｒからの原稿後端の通過信号に基づいて上記ピックアップローラ２５と分離ローラ２６の給紙モータＭｋを回転起動して後続シートをレジストローラ位置に繰り出す。またＣＰＵ４１は、第１リードセンサＳｅ１のシート後端検知信号を基準に後述する条件の下で後続シートをレジストローラ位置から第１プラテン１４ａに向けて給送する。
【００４１】
［スキャナ装置の制御構成］
スキャナ装置Ｂには図３に示すコントロールボード（以下「スキャナコントローラ」という）４０が設けられている。このスキャナコントローラ４０はスキャナ装置Ｂを制御する制御ＣＰＵ４１と、その制御プログラムを記憶するＲＯＭ４２と、画像データや画像データに関する情報等を一時的に格納するための記憶手段（ＲＡＭ）４３と、読取センサ２４からの画像信号を補正処理するＤＳＰ４４（４４ａ、４４ｂ）と、スキャナ装置の制御ポート４５と、画像データを外部に転送するためのＵＳＢコントローラ４８を備えている。制御ＣＰＵ４１は前述した読取センサ２４（図３に示すＣＣＤ１、ＣＣＤ２）、光源２１（図３に示すランプ１、ランプ２）、及び給紙モータＭｋ、フィードモータＭｆなどを制御する制御プログラムを実行するＩＣチップで構成されている。この制御ＣＰＵ４１内に動作制御部４１ａとメモリコントロール部４１ｂが構成され、動作制御部４１ａはＲＯＭ４２に記憶されている制御プログラムを実行し、メモリコントロール部４１ｂは記憶手段（ＲＡＭ）４３を制御するようになっている。
【００４２】
また、記憶手段（ＲＡＭ）４３には、ＤＳＰ４４で処理する前の画像データを一時的に格納するための領域である画処理用バッファ４３ａとＤＳＰ４４で処理後の転送される画像データを一時的に格納するための領域であるバッファ４３ｂ（転送データ用記憶手段）、転送単位の各画像データ（ブロック画像データ）に関する情報を記憶するための情報レジスタ４３ｃ、読み取る次の原稿があるか否かの情報を記憶するための次原稿情報レジスタ４３ｄを有している。
【００４３】
上記制御構成について説明すると、制御ＣＰＵ４１から制御ポート（ＧＰＩＯ）４５を介してキャリジ移動モータＭｃと給紙モータＭｋとフィードモータＭｆを制御するようにそれぞれのドライバ回路に制御コマンドが伝達され、各モータの起動、停止と回転速度が制御されるようになっている。同様にこの制御ポート（ＧＰＩＯ）４５を介して第１第２画像読取ユニット１６、１７の光源（ランプ１，ランプ２）２１が点灯制御される。一方、前述のトレイセンサＳｔと、レジストセンサＳｒと、第１第２リードセンサＳｅ１、Ｓｅ２と、排紙センサＳｈの検出信号は制御ポート（ＧＰＩＯ）４５を介して制御ＣＰＵ４１に伝達されるようになっている。
【００４４】
原稿シートの裏面画像を読取る第１読取センサ（ＣＣＤ１）２４ａと表面画像を読み取る第２読取センサ（ＣＣＤ２）２４ｂからの画像データは図示しないコンバータでデジタル信号に変換されゲートアレイ（ＦＰＧＡ）４７、スキャナインタフェース（ＳＣ
Ｉ／Ｆ）４６を介してデータバス取り込まれる。この画像データは画像処理用バッファ４３ａに蓄えられ、裏面画像用プロセッサ（ＤＳＰ１）４４ａ、または表画像用プロセッサ（ＤＳＰ２）４４ｂで画像処理され、転送用バッファ４３ｂに一時的に記憶される。この転送用バッファ４３ｂのデータは、後述する情報添付手段４９によって画像情報が添付された後データ転送手段（ＵＳＢコントローラ）４８を介して外部装置に出力される。
【００４５】
ホスト装置Ａの制御構成は、図１（ｂ）に基づいて説明したように、中央演算装置（ＣＰＵ）２は記憶装置（主記憶装置３、補助記憶装置４）に記憶されたプログラムに従って基本制御プログラムを実行するＯＳ実行部２ａと、上位ドライバプログラムを実行する上位ドライバ実行部２ｂと、下位ドライバプログラムを実行する下位ドライバ実行部２ｃをそれぞれ構成する。このホスト装置Ａはデータ受信手段（ＵＳＢコントローラ）５０を介してスキャナ装置Ｂのデータ転送手段（ＵＳＢコントローラ）４８と接続されている。
【００４６】
上記ホスト装置Ａにおけるデータ転送について図５に基づいて説明する。中央処理装置（ＣＰＵ）２の下位ドライバ実行部２ｃは記憶装置（第１記憶装置；以下「ＲＡＭ「Ｄ」」と云う）の下位ドライバプログラムに従ってメモリエリアを設定し、メモリ監視部２ｘによって各メモリの状態を監視する。このとき下位ドライバプログラムは、読取モード（片面モード／両面モード）に応じて記憶容量を設定するようになっている。読み取る原稿シートの画像データ２枚分以上の記憶容量を設定するようになっている。つまり図５に示すように、両面モードの場合は、ＲＡＭ「Ｄ」には表面画像データ２枚分の画像データを格納可能なメモリエリアＭＡ１、ＭＡ２と裏面画像データを格納可能な２枚分のメモリエリアＭＢ１、ＭＢ２が設定され、片面モードの場合は、ＲＡＭ「Ｄ」には表面画像データ２枚分の画像データを格納可能なメモリエリアＭＡ１、ＭＡ２のみが設定される。そして各メモリエリアにはスキャナ装置Ｂのデータ転送手段（ＵＳＢコントローラ）４８からホスト装置Ａのデータ受信手段（ＵＳＢコントローラ）５０を介して画像データが転送されそれぞれ記憶される。
【００４７】
一方、中央処理装置（ＣＰＵ）２の上位ドライバ実行部２ｂは、上位ドライバプログラムの構成によって異なるが例えば画像処理のためのメモリエリアＭＸを記憶装置（第２記憶装置；以下「ＲＡＭ「Ａ」」と云う）に設定する。このＲＡＭ「Ａ」は読み取る原稿の画像データ１枚分を記憶可能な容量に設定され、上記ＲＡＭ「Ｄ」から画像データを引き受けるよう構成される。
【００４８】
またメモリ監視部２ｘは、スキャナ装置Ｂから転送されてくる画像データ（後述、ブロック画像データ）に添付された「最終ブロック」情報をカウントする処理と、上位ドライバ実行部２ｂから送信される（ストップコマンド、ＳＴＯＰ）の数をカウントする処理を行い、これらのカウント情報を使用して、上位ドライバ実行部２ｂからの「次原稿あるか否か」の問合せに対する回答、転送するバッファの選択、画像データを書込むバッファの選択等を行っている。なお、図５に示すメモリ監視部２ｘ、カウンタ１（５１）、カウンタ２（５２）は、それぞれメモリ監視部２ｘの実行する処理を概念的に図に示したものである。
【００４９】
［上位ドライバプログラムの構成］
上位ドライバプログラムは、スキャナ装置Ｂから画像データを取得し、さらに種々の画処理を行うようにしても構わない。また、アプリケーションプログラムは例えばドキュメント作成、画像編集、ＤＴＰなどの特定の目的に従ってドライバからの画像データを処理するように構成される。そして、上位ドライバプログラムは予め設定された規格、例えばＴＷＡＩＮ、ＩＳＩＳ、ＷＩＡに従って下位ドライバ実行部２ｃと連携する。その一例を説明すると、上位ドライバ実行部２ｂは下位ドライバ実行部２ｃに対して「画像読取りの開始コマンド（Start１）」と「データ転送の指示コマンド（Read１）」を発信する。「画像読取りの開始コマンド（以下、「Start Scan１」という）」は上位ドライバプログラムの実行過程でスキャナ装置Ｂの画像読み取りから上位ドライバ実行部２ｂへの画像データ送信までの全原稿読取処理の開始を指示するコマンド信号であり、このコマンド信号に従って下位ドライバ実行部２ｃは後述する「スキャナ起動動作」を実行する。また「データ転送の指示コマンド（以下、「Read」という）」は上記ＲＡＭ「Ａ」に画像データを取得するためのコマンド信号であり、上位ドライバプログラムの実行過程で必要とする画像データの転送を要求する。このコマンド信号に従って下位ドライバ実行部２ｃは後述する「データ転送動作」を実行する。この他上位ドライバ実行部２ｂは下位ドライバ実行部２ｃに対して、「画像データの表裏面情報」「次原稿有無情報」などの情報提供のコマンド信号を発する。このコマンド信号に従って下位ドライバ実行部２ｃは後述する「画像情報転送動作」を実行する。
【００５０】
［下位ドライバプログラムの構成］
下位ドライバプログラムは下位ドライバ実行部２ｃに次の動作を実行させるように構成されている。中央処理装置（ＣＰＵ）２は上位ドライバ実行部２ｂから「画像読取りの開始コマンド（Start Scan１）」を受信すると下位ドライバプログラムを読み出して以下の動作を実行するようになっている。
【００５１】
「初期設定ステップ」
まず上位ドライバプログラムで初期設定を行う。この動作は、ホスト装置Ａのモニタ表示部に例えば画像種別設定（モノクロ、カラー、グレースケールなどの設定）、解像度設定、原稿サイズ、読取モード（片面/両面読取モード）その他の選択画面を表示し、入力装置（キィボード、マウス）５から使用者が選定する。同時にスキャナ装置Ｂの原稿セット状態、例えば原稿シートを給紙スタッカ１１にセットする(ＡＤＦモード)かフラットベットプラテン１５にセットするか（フラットベッドモード）の区別を使用者が選定する。その後これらを上位ドライバ実行部２ｂから指示され、下位ドライバ実行部２ｃは画像読取条件の初期設定動作を実行する。このとき下位ドライバ実行部２ｃは、スキャナ装置Ｂの電源が投入されているか否かを確認し、システム構成に不備がある場合には上位ドライバ実行部２ｂに「スキャナ動作不良」の信号を伝達するように構成する。本発明は原稿シートを給紙スタッカ１１にセットする場合（ＡＤＦモード）に係わり、かつ片面読取モードの場合を例にして説明を行う。
【００５２】
「スキャン開始コマンド」
下位ドライバ実行部２ｃは上記初期設定ステップで「スキャン開始指示（Start Scan１）」の入力信号を受けるとスキャナ装置Ｂの制御ＣＰＵ４１から給紙スタッカ１１に原稿シートがセットされている（トレイセンサＳｔがON）情報を受信する。原稿シートがセットされていない場合は、使用者にエラーメッセージを通知する。
【００５３】
「メモリエリア設定ステップ」
次に下位ドライバ実行部２ｃはホスト装置ＡのＲＡＭ「Ｄ」にユーザーの設定した原稿サイズに応じてバッファＭＡ１、ＭＡ２を設定し、カウンタ５１とカウンタ５２をリセットする。
【００５４】
「スキャン開始コマンド」および「データ転送指示ステップ」
次に下位ドライバ実行部２ｃはスキャナ装置Ｂにスキャン動作開始を指示するコマンド「Start Scan２」を発信する。１枚目の原稿の場合は、ＲＡＭ「Ｄ」に２ページ分の画像データを記憶できる容量のバッファが用意されているので、「画像読取りの開始コマンド（Start Scan２）」を発行した後続けて「データ転送の指示コマンド（Read２）」を発行するが、２枚目以降の原稿は、ＲＡＭ「Ｄ」に２ページ分の画像データを記憶できる容量のバッファがあるか否かの確認をしてから「データ転送の指示コマンド（Read２）」を発行する。
【００５５】
スキャナ装置Ｂの制御ＣＰＵ４１はこの指示信号を受けて給紙モータＭｋを駆動回転し、給紙スタッカ１１から最初の原稿シートをレジストローラ位置に給送する。次いで制御ＣＰＵ４１はレジストローラ位置で先端揃え（スキュー修正）が終了する見込み時間の後、搬送モータＭｆを回転駆動し、給紙モータＭｋを停止する。これと同時に光源２１のランプを点灯する。すると最初の原稿シートは第１プラテン１４ａでＣＣＤ２(２４ｂ)によって読み取られ、制御ＣＰＵ４１はその読み取った画像データを画像処理用バッファ（バッファ２(表)）４３ａに記憶する。次いで制御ＣＰＵ４１は画像処理用バッファ４３ａに記憶された画像データをブロック単位で画像処理プロセッサＤＳＰ２（４４ｂ）で処理し、転送用バッファ（Ｓバッファ２(表)）４３ｂに記憶する。
【００５６】
「データ記憶ステップ」
転送用バッファ（転送データ記憶手段）４３ｂに記憶された画像データが、予め定められた１回の転送ブロック分（本実施例では１ＭＢ）に達すると、制御ＣＰＵ４１は１回の転送分の画像データを読み出し（以下、ブロック画像データという）、情報添付手段４９にこのブロック画像データに関する情報を添付させ、情報が添付されたブロック画像データがＵＳＢコントローラ４８からホスト装置Ａ側のＵＳＢコントローラ５０に送られる。情報添付手段４９は、所定のプログラムに従って制御ＣＰＵ４１が実行するもので、情報レジスタ４３ｃに記憶されている各ブロック画像データに関する情報を各ブロック画像データに添付する。この場合の情報は、（１）表／裏情報、（２）最終ブロック情報（ページの最終ブロックか否かの情報）、（３）次原稿有無情報、（４）サイズ情報（ブロック画像データのサイズ情報）である。なお、ここでは片面読取モードを例に説明している関係で、（１）の表／裏情報は常に表となっている。
【００５７】
下位ドライバ実行部２ｃは、上記の情報が添付されたブロック画像データをＵＳＢコントローラ５０から受け取りＲＡＭ「Ｄ」に書き込む。そして次に下位ドライバ実行部２ｃは再び「データ転送の指示コマンド（Read２）」を発行し、１ブロック分の画像データ（ブロック画像データ）を受け取り、ＲＡＭ「Ｄ」に書き込む。このように「データ転送の指示コマンド（Read２）」の発行とブロック画像データの受け取り・ＲＡＭ「Ｄ」への書き込みを複数回繰り返し、１ページの最終ブロックデータ（すなわち最終ブロック情報が添付されたブロックデータ）の取得・書込が行われて１ページ分の画像データがＲＡＭ「Ｄ」のいずれかのバッファに書き込まれることになる。そして、最終ブロックデータ（すなわち最終ブロック情報が添付されたブロックデータ）が取得されるとカウンタ１（５１）が１だけカウントアップする。
【００５８】
「データ転送ステップ」
１ページ分の画像データがＲＡＭ「Ｄ」のいずれかのバッファに書き込まれた時点で、上位ドライバ実行部２ｂからの「画像データの転送コマンド」が受信済みの場合は、ＲＡＭ「Ｄ」に書き込まれている画像データを読み出して上位ドライバ実行部２ｂに引き渡す。（すなわちＲＡＭ「Ａ」にＲＡＭ「Ｄ」の１ページ分の画像データをコピーする。１ページ分の画像データがＲＡＭ「Ｄ」のいずれかのバッファに書き込まれた時点で、上位ドライバ実行部２ｂからの「画像データの転送コマンド」が未受信の場合は、その受信を待ってからＲＡＭ「Ｄ」に書き込まれている画像データを読み出して上位ドライバ実行部２ｂに引き渡す上位ドライバ実行部２ｂは１ページ分の画像データを受信すると（すなわちＲＡＭ「Ａ」にＲＡＭ「Ｄ」の１ページ分の画像データをコピーが終了すると）下位ドライバ実行部２ｃへ画像データの送信等を停止させる指示（ストップコマンド、ＳＴＯＰ）を出し、これを受けた下位ドライバ実行部（メモリ監視部）２ｃは、カウンタ２（５２）に１だけカウントアップさせる。
【００５９】
次に上位ドライバ実行部２ｂは、次ページの画像データが有るか否か（上位ドライバ実行部２ｂへ送信する画像データがあるか否か）を含めたステータス情報を送るよう指示するコマンド（Get Status）を下位ドライバ実行部２ｃへ送信する。このコマンドを受けると下位ドライバ実行部２ｃは、カウンタ１（５１）とカウンタ２（５２）の情報から上位ドライバ実行部２ｂへ送信する画像データがあるか否かを判断し、その判断結果（次ページ画像データあり／なし情報）を上位ドライバ実行部２ｂへ送信する。そして、次ページ画像データありとの情報を受信すると、上位ドライバ実行部２ｂは「Start Scan１」、「Read１」を再び下位ドライバ実行部２ｃへ送信する。
【００６０】
従来は、この上位ドライバ実行部２ｂからの「スキャン開始指示（Start Scan１）」を受けてからスキャナ装置Ｂの制御ＣＰＵ４１は次原稿の搬送・読み取りの開始をしていたため、上位ドライバ実行部２ｂが「データ転送の指示コマンド（Read１）」を送信してから次ページ画像データを取得するまでに時間がかかっていたが、本発明では、後述するように上位ドライバ実行部２ｂからの「スキャン開始指示（Start Scan1）」のあるなしに係らず次原稿の搬送を開始させて読み取りを独立して実行するため次原稿の画像データを用意することができ、上位ドライバ実行部２ｂが「データ転送の指示コマンド（Read１）」を送信してから次ページ画像データを取得するまでに時間を短縮することができるようになった。したがって、上位ドライバ実行部２ｂが全ページ分の画像データを取得するまでのシステム全体の処理時間が短くなり、読み取る原稿の枚数が多ければ多いほどこの効果は大きい。
【００６１】
さらに、上位ドライバ実行部２ｂからの次ページ画像データ有り無しの問い合わせに対し、従来はスキャナ装置Ｂとの通信により有り無し情報を上位ドライバ実行部２ｂへ送信（転送）していたため、この通信に時間がかかり、「スキャン開始指示（Start Scan１）」、ひいては「データ転送の指示コマンド（Read１）」の送信自体が遅かった。しかし本発明では、画像データに添付された情報（最終ブロック情報）を用いて下位ドライバ実行部２ｃが回答を行うことで、これらのやり取りをＰＣ内部で行えるようになり、「スキャン開始指示（Start Scan１）」、「データ転送の指示コマンド（Read１）」を送信するまでの時間が短縮され、結果としてシステム全体の処理時間を短くすることができる。この効果も読み取る原稿の枚数が多ければ多いほど大きい。
【００６２】
このように下位ドライバ実行部２ｃはスキャナ装置Ｂから画像データを受け取って自ら管理するＲＡＭ「Ｄ」のメモリエリアに記憶し、上位ドライバ実行部２ｂから「データ転送の指示信号（Read1）」を受けるとＲＡＭ「Ｄ」の画像データを読み出して上位ドライバ実行部２ｂに転送する。そしてＲＡＭ「Ｄ」に予め設定された画像データ（転送ブロック）の空きエリアが形成されると下位ドライバ実行部２ｃはスキャナ装置Ａに「データ転送指示コマンド（Read２）」を発する。
【００６３】
一方、スキャナ装置Ｂの制御ＣＰＵ４１は１枚目の原稿シートに後続する原稿シートの画像読取りを次のように実行するように構成されている。
【００６４】
「待機動作」
制御ＣＰＵ４１は先行する原稿シートの後端がレジストセンサＳｒ又は第１リードセンサＳｅ１を通過した検出信号で給紙モータＭｋを起動回転する。するとピックアップローラ２５がトレイ上の２枚目の原得シートを繰り出し、分離ローラ２６が１枚に分離してレジストローラ２５位置に給送する。すると制御ＣＰＵ４１はレジストセンサＳｒからの信号で給紙モータＭｋを停止し、この原稿シートはレジストローラ２５にその先端が当接した位置に待機する。
【００６５】
「画像読取動作」
そこで制御ＣＰＵ４１は、（１）先行原稿シートの後端検出信号から予め定められた所定長さの原稿間隔を形成でき、（２）転送用バッファ４３ｂに１ページ分の画像データが記憶できる十分な空き容量があるとの二つの条件が整ったとき制御ＣＰＵ４１は搬送モータＭｆを回転駆動し、同時に光源２１のランプを点灯する。すると２枚目の原稿シートは第１プラテン１４ａで裏面を、第２プラテン１４ｂで表面を読取り、その読み取った画像データを制御ＣＰＵ４１は画像処理用バッファ４３ａに記憶する。このよう本発明はスキャナ装置Ｂによる２枚目以降の原稿シートの読取り開始を上位ドライバ実行部２ｂからの読取開始コマンドの有無に関係なく独立して画像読み取りを開始するようにドライバプログラムとスキャナ装置Ｂの動作プログラムを構成したことを特徴としている。
【００６６】
以上がシステム全体の構成と、処理手順の概要である。次に上位ドライバ実行部２ｂ、下位ドライバ実行部２ｃ、制御ＣＰU４１がそれぞれ実行する処理手順について各フローにしたがって説明する。なお上記同様、片面読取モードの場合を例に説明する。
【００６７】
[上位ドライバ実行部の処理]
ホスト装置Ａ、例えばパーソナルコンピュータで所定のジョブを実行するアプリケーションプログラムを立ち上げる。その画面上で「画像の取込み」を選択すると、ドライバプログラム（上位ドライバプログラム）を実行する。この上位ドライバプログラムの実行で解像度や読み取りモードなどを選択できる画像読取条件の設定画面（ドライバ画面）がディスプレイ上に映し出される。
【００６８】
ドライバ画面上で、モノクロ、カラー、グレースケールなど画像に係る設定、解像度設定、原稿サイズ、読取モード（片面／両面読取モード）、その他の選択画面を表示し、入力装置（キィボード、マウス）５から使用者が選定する。同時にスキャナ装置Ｂの原稿セット状態、例えば原稿シートを給紙スタッカ１１にセットする(ＡＤＦモード)かフラットベットプラテン１５にセットするか（フラットベッドモード）の区別を使用者が選定し（ＳＴ００１）、読み取りを開始させるスキャンボタンを選択する（ＳＴ００２）と、上記ＳＴ００１でユーザーが設定した各種設定情報を下位ドライバ実行部２ｃへ送信する（ＳＴ００３）。なお、フローには記載されていないが、上位ドライバ実行部２ｂから各種設定情報を取得した後下位ドライバ実行部２ｃは、これと同じ設定情報をスキャナ装置Ｂへ送信している。
【００６９】
そして、１ページ分の画像データを記憶するだけの十分な領域のＲＡＭ「Ａ」を記憶装置３（４）内に確保した後（ＳＴ００４）、スキャナ装置Ｂの画像読み取りから上位ドライバ実行部２ｂへの画像データ送信までの全読取処理の開始を指示するコマンド「画像読取りの開始コマンド（Start Scan１）、画像データの送信を指示するコマンド「データ転送の指示コマンド（Read Scan１）」を送信する（ＳＴ００５，ＳＴ００６）。
【００７０】
「データ転送の指示コマンド（Read Scan１）」を送信した後上位ドライバ実行部２ｂは、下位ドライバ実行部２ｃのＲＡＭ「Ｄ」に１ページ分の画像データが用意できるまで待つこととなる。下位ドライバ実行部２ｃのＲＡＭ「Ｄ」に１ページ分の画像データが用意できると上位ドライバ実行部２ｂは、予め定められた所定のブロックの画像データを受信し（ＳＴ００７）、そのブロックデータがページの最終ブロックか否か、すなわち１ページ分の画像データを受信したか否かを判断する（ＳＴ００８）。
【００７１】
ステップＳＴ００６からＳＴ００８を繰り返すことによりブロック単位で下位ドライバ実行部２ｃから画像データを受信し続け、１ページ分の画像データを受信すると、下位ドライバ実行部２ｃへ画像データの送信等を停止させる指示（ストップコマンドStop Scan、ＳＴ００９）を出し、１ページ分の画像データをアプリ実行部１００へ引き渡し、その後ＲＡＭ「Ａ」を開放する。次に、次ページの画像データが有るか否か（上位ドライバ実行部２ｂへ送信する画像データがあるか否か）を含めたステータス情報を送るよう指示するコマンド（Get Status）を下位ドライバ実行部２ｃへ送信する（ＳＴ０１０）。
【００７２】
下位ドライバ実行部２ｃからの「次ページ画像データあり／なし情報」を受信し(ＳＴ０１１)、その情報から「次ページ画像データあり／なし」の判断を行い（ＳＴ０１２）、次ページの画像データがない場合は、上位ドライバ実行部２ｂの処理が終了となる。次ページの画像データがある場合はステップＳＴ００３、ＳＴ００５と同様に各種の読み取り条件（パラメーター）を下位ドライバ実行部２ｃへ送信、「Start Scan１」を下位ドライバ実行部２ｃへ送信する（ＳＴ０１３、ＳＴ０１４）。
【００７３】
ここで、ステップＳＴ００６で画像データの送信を指示するコマンド「Read Scan１」を下位ドライバ実行部２ｃへ送信した後、画像データの受信開始までの待ちの時間は、スキャナ装置Ｂ、下位ドライバ実行部２ｃの処理状況に応じて異なる。１枚目原稿の場合は、上位ドライバ実行部２ｂからの「Start Scan１」でスキャナ装置Ｂが読み取りを開始するため長くなってしまうが、本発明では２枚目以降の原稿については、後述するように上位ドライバ実行部２ｂからの「スキャン開始指示（Start Scan１）」のあるなしに係らず次原稿の搬送を開始させて読み取りを独立して実行するため次原稿の画像データを用意することができるので、この待ち時間を短縮することができるようになった。この待ち時間は原稿枚数分発生するので、読み取る原稿の枚数が多ければ多いほどこの待ち時間の短縮によるシステム全体の処理時間に対する効果は大きくなる。
【００７４】
また、スキャナ装置Ｂは先行して次原稿を読み始めることで、上位ドライバ実行部２ｂからの画像データ要求があった時点で、すでに次のデータは下位ドライバ実行部２ｃのＲＡＭ「Ｄ」に保存されている状態が作られ、上位ドライバ実行部２ｂの待ち時間は非常に短くなる。
【００７５】
［下位ドライバプログラムの動作フロー］
ステップＳＴ００３による上位ドライバ実行部２ｂからの各種の読み取り条件（パラメーター）を受信すると、カウンタ１，２（５１，５２）のカウントをクリア（０）にし（ＳＴ０１５）、２ページ分画像データを記憶できるバッファＭＡ１、ＭＡ２を用意する(ＳＴ０１６)。ステップＳＴ００５による上位ドライバ実行部２ｂからの「Start Scan１」を受信すると（ＳＴ０１７）、スキャナ装置Ｂとの間で画像データや情報送受信に関する以下の処理を実行する。
【００７６】
「スキャン動作開始指示信号（Start Scan２）」、「データ転送の指示コマンド（Read Scan２）」を送信する（ＳＴ０１８、ＳＴ０２７）。なお、１枚目原稿の場合はステップＳＴ０１６で２ページ分の画像データ記憶領域が確保されているので「Start Scan２」を送信するとすぐに「Read Scan２」を送信する。このあと、スキャナ装置Ｂが原稿の読み取りを開始し、１枚目原稿の最初のブロック画像データが転送用バッファＲＡＭ１（４３ｂ）に用意できるまでは待ち時間となるが、これが用意されるとまず、ブロック画像データに関する情報（１）表／裏情報、（２）最終ブロック情報（ページの最終ブロックか否かの情報）、（３）次原稿有無情報、（４）サイズ情報（ブロック画像データのサイズ）が送信されてくるので、これを受信し（ＳＴ０２８）、その情報に応じてＲＡＭ「Ｄ」の２個のバッファのうちどのバッファに格納するかを決定する（ＳＴ０２９）。具体的にはバッファ１のカウント値を２で割り、その余が０の場合は、ＭＡ１(表・奇数)を選択し、その余が１の場合は、ＭＡ２(表・偶数)を選択する。
【００７７】
次にブロック画像データが転送されてくるのでこれを受信し、ステップＳＴ０２９で決定したバッファに書き込む（ＳＴ０３０）、ステップＳＴ０２８で受信した添付情報（最終ブロック情報）からこのブロック画像データがページの最終ブロックデータか否かを判断し（ＳＴ０３１）、最終ブロックデータでない場合は、最終ブロックデータを受信して書き込むまで再びステップＳＴ０２７からＳＴ０３１までを複数回繰り返して１ページ分のブロックデータを取得する。
【００７８】
ステップＳＴ０３１で最終ブロックデータであった場合、すなわち1枚目原稿の全画像データがバッファＭＡ１に書き込まれた場合は、カウンタ１（５１）を１だけプラスさせる（ＳＴ０３２）。そして、この最終ブロックデータの添付情報（すなわち最終ブロックデータの次原稿有無情報）から次原稿があるか否かを判断し（ＳＴ０３３）、次原稿がない場合はスキャナ装置Ｂとの処理は終了となる。
【００７９】
ステップＳＴ０３３で次原稿がある場合は、次ページ（２ページ目）の画像データ１ページ分の空き容量があるか否かをカウンタ１、２（５１，５２）の値から判断し、ない場合は空きができるまで待つ。空きができると、ステップＳＴ０２７に戻ってステップＳＴ０３４までを実行して、スキャナ装置Ｂから次ページ原稿の１ページ分の画像データを取得する。
【００８０】
［上位ドライバと下位ドライバとの送受信処理］
また、ステップＳＴ００５による上位ドライバ実行部２ｂからの「Start Scan１」を受信した後、下位ドライバ実行部２ｃは、上位ドライバ実行部２ｂとの間で画像データや情報送受信に関する以下の処理を実行する。
【００８１】
ステップＳＴ００６による上位ドライバ実行部２ｂからの「Read Scan１」を受信したかを判断し（ＳＴ０１９）、1枚目原稿の全画像データが取得されたか（バッファＭＡ１に1枚目原稿の画像データが書き込まれたか）否かをカウンタ１，２（５１，５２）の情報から判断する（ＳＴ０２０）。具体的には、カウンタ１（５１）がカウンタ２（５２）より1以上大きい値になっていることを確認することで、上位ドライバ実行部２ｂに送るデータが用意できたと判断する。
【００８２】
1枚目原稿の全画像データを取得していない場合は、それを待つ。そして１枚目原稿の１ページ分の画像データがＭＡ１に書き込まれると、ブロック単位で画像データの転送を開始する（ＳＴ０２１）。下位ドライバ実行部２ｃからのブロック単位の画像データを取得するたびに上位ドライバ実行部２ｂから「Read１」が送信されてくるので、ブロック単位で画像データを送信するたびにステップＳＴ０１９へ戻って、ステップＳＴ０１９からステップＳＴ０２１までのステップを繰り返して1枚目原稿の画像データを上位ドライバ実行部２ｂへ送信する。なお、上位ドライバ実行部２ｂへ送信するバッファの選択は、バッファ２のカウント値を２で割り、その余が０の場合は、ＭＡ１(表・奇数)を選択し、その余が１の場合は、ＭＡ２(表・偶数)を選択する。
【００８３】
そして１枚目原稿の全画像データを上位ドライバ実行部２ｂへ送信した後も再び「Read」を受信したか否かの判断をステップＳＴ０１９で行うが、上述したように、上位ドライバ実行部２ｂは１ページ分の画像データを取得すると「Read」を送信せずにストップコマンドを送信するので（ＳＴ００９）、ステップＳＴ０１９では否定判断となり、ステップＳＴ０２２へ進む。
【００８４】
ステップＳＴ０２２ではストップコマンドを受信したか否かの判断を行う。ストップコマンドを受けていない場合は、再びステップＳＴ０１９へ戻る。ステップＳＴ０２２でストップコマンドを受けたことが確認されると、ステップＳＴ０１０による上位ドライバ実行部２ｂからの、次ページの画像データがあるか否か（上位ドライバ実行部２ｂへ送信する画像データがあるか否か）を含めたステータス情報を送るよう指示するコマンド（Get Status）を受けたか否かの判断を行う（ＳＴ０２３）。
【００８５】
このコマンド（Get Status）受けたと判断された場合は、カウンタ１（５１）とカウンタ２（５２）の情報から上位ドライバ実行部２ｂへ転送する次ページ（２ページ目）原稿の画像データがあるか否かの判断を行う（ＳＴ０２４）。
【００８６】
具体的に説明すると、カウンタ１（５１）のカウント値はＲＡＭ「Ｄ」に書き込んだ画像データのページ数であり、カウンタ２のカウント値はＲＡＭ「Ｄ」から上位ドライバ実行部２ｂへ送信された画像データのページ数である。したがって、カウンタ１（５１）の値とカウンタ２（５２）の値が等しい場合は、ＲＡＭ「Ｄ」に書き込んだ画像データはすべて上位ドライバ実行部２ｂへ送信されて、バッファＭＡ１、ＭＡ２いずれも次の画像データの書込が可能な状態である。これとは逆に、カウンタ１（５１）よりもカウンタ２（５２）の値が大きい場合（すなわちカウンタ１の値とカウンタ２の値が等しくない場合）は、ＲＡＭ「Ｄ」にはまだ上位ドライバ実行部２ｂへ送信されていない画像データが残っている状態である。
【００８７】
従ってステップＳＴ０２４でカウンタ1（５１）の値とカウンタ２（５２）の値が等しくないと判断された場合は、次ページ（２ページ目）画像データがあるので、上位ドライバ実行部２ｂへ次ページ画像データがあるとの情報を送信し（ＳＴ０２５）、ステップＳＴ０１９に戻って上位ドライバ実行部２ｂからの「Read１」を待って画像データの送信を行う。
【００８８】
ステップＳＴ０２４でカウンタ1（５１）の値とカウンタ２（５２）の値が等しいと判断された場合は、次ページの画像データがないとの情報を上位ドライバ実行部２ｂ送信し（ＳＴ０２６）、上位ドライバ実行部２ｂとの間で行われる送受信に関する一連の処理を終了する。
【００８９】
［制御ＣＰＵの動作フロー］
上位ドライバ実行部２ｂからのＳＴ０１８による「Start Scan２」を受信すると(ＳＴ０３５)、制御ＣＰＵ４１は原稿搬送処理、読取処理、転送処理をそれぞれ並行して実行する。
【００９０】
［原稿搬送処理］
給紙トレイ１１上に原稿があるか否かの判断をトレイセンサＳｔの出力から（ＯＮか否か）で判断する（ＳＴ０５１，ＳＴ０５２）。なお、給紙トレイ上には読み取りを行いたい面を上側に向けた状態（フェイスアップ）で原稿が載置されている。給紙トレイ１１上に原稿がある場合は、１ページ目原稿の繰り出しを開始する（ＳＴ０５３）。
【００９１】
給紙モータＭｋを正・逆回転させてピックアップローラ２５を回転させて給紙トレイ上の原稿を繰り出し、分離ローラ２６で一枚に分離し、停止しているレジストローラ２７にその１枚目原稿の先端を突き当てて一時停止させる。そしてレジストローラ２７に到達する直前にその先端がレジストセンサＳｒで検出される。
【００９２】
次にフィードモータＭｆの回転により原稿の給送を開始する（ＳＴ０５４）。フィードモータＭｆを回転させてレジストローラ２７と第１第２第３フィードローラ２８，２９、３０を回転させて１枚目原稿を給送する。第２リードセンサＳｅ２で１枚目原稿の先端が検出されると（ＳＴ０５５）、ＣＣＤ２（２４ｂ）により原稿画像の読み取りを開始する（ＳＴ０５６）。１枚目原稿の読み取りはその後端がＣＣＤ２（２４ｂ）の読取位置を抜けるまで続けられるが、その読み取りの間に次原稿（２枚目原稿）の先出しを次のタイミングで行う。レジストセンサＳｒで１枚目原稿の後端を検出すると、すなわちレジストセンサＳｒがＯＦＦすると（ＳＴ０５７）給紙トレイ１１上に次原稿があるか否かの判断をトレイセンサＳｒの出力から行う。次原稿がない場合は、原稿搬送処理は終了となる（ＳＴ０５８）。
【００９３】
次原稿がある場合は、ステップＳＴ０５３と同様処理により次原稿の繰り出しを行う（ＳＴ０５９）すなわち、給紙モータＭｋを正・逆回転させてピックアップローラ２５を回転させて給紙トレイ上の原稿を繰り出し、分離ローラ２６で一枚に分離し、停止しているレジストローラ２７にその２枚目原稿の先端を突き当てて一時停止させる。そして次原稿のあるなし情報に対応するレジスタ（次原稿情報レジスタ４３ｄ）のフラグを「あり」にセットする（ＳＴ０６０）なお、１枚目原稿の後端がレジストセンサＳｒを抜けるとレジストローラ２７はフィードモータＭｆの駆動が絶たれて停止している。よって２枚目原稿の先端がレジストローラ２７に突き当てられるときレジストローラ２７は停止している。
【００９４】
次に、ステップＳＴ０５７でレジストセンサＳｒで１枚目原稿の後端を検出してからフィードモータＭｆを回転させる駆動パルスが予め定められた所定パルス数に達することが確認されると、すなわち、１枚目原稿との間に予め定められた所定間隔ができることが確認されると（ＳＴ０６１）、ＲＡＭ４３の転送用バッファ４３ａと画処理用バッファ４３ｂにそれぞれ２枚目原稿の１ページ分の画像データが記憶するに十分な空き容量があるか否かの判断を行い（ＳＴ０６２）、空き容量があることが確認されると、フィードモータＭｆの駆動をレジストローラ２７に伝達させて２枚目原稿の給紙を開始する（ＳＴ０６３）。そしてステップＳＴ０５５に戻って、第２リードセンサＳｅ２で２枚目原稿の先端が検出されるとＣＣＤ２（２４ｂ）でその読み取りが開始される。
【００９５】
このような手順を給紙トレイ上に載置された原稿がなくなるまで繰り返すことで給紙トレイ上に載置されたすべての原稿の読み取り処理が行われる。上述のように、１枚目原稿の場合は、上位ドライバ実行部２ｂからの「Start Scan１」に基づいて給送を開始して読み取りを行うが、２枚目原稿の場合は、上位ドライバ実行部２ｂからの「Star Scan１」のあるなしに関わらず、１枚目原稿との間に予め定められた所定間隔ができること、およびＲＡＭ４３の転送用バッファ４３ａと画処理用バッファ４３ｂにそれぞれ２枚目（次ページ）原稿の１ページ分の画像データが記憶するに十分な空き容量があること、の確認がなされることによって給送を開始させて読み取りを行う。
【００９６】
［読取処理］
この読取処理は、ＳＣＩ／Ｆ（４６）を介してデータバスに取り込まれた画像データを転送用バッファ４３ｂに書き込むまでの処理手順であり、メモリコントロール部４１ｂにより実行される。下位ドライバ実行部２ｃからのステップＳＴ０１８による「Start Scan２」を受信すると、スキャン準備処理を実行する（ＳＴ０４２）。例えば、ゲイン・オフセット調整、シェーディングデータ取得、さらに本説明では、ＡＤＦモードなので、第２画像読取ユニット１７を所定のホームポジションから図２の読取位置までの移動などを行う。メモリコントロール部（ＣＰＵ４１）４１ｂは、ＲＡＭ４３の転送用バッファ４３ａと画処理用バッファ４３ｂにそれぞれ１枚目原稿の１ページ分の画像データを記憶するのに十分な空き容量を確保する（ＳＴ０４３）。
【００９７】
原稿搬送処理のステップＳＴ０５６で1枚目原稿の読み取りが開始されると、ＣＣＤ２４からの画像データはＦＰＧＡ（４７）、ＧＰＩＯ（４５）等を介してデータバスに取り込まれ、画処理用バッファ４３ａへの書き込みが開始される（ＳＴ０４４）。そしてＣＣＤ２４の取得した順に１枚目原稿の画像データは画処理用バッファ４３ａに書き込まれていき、それが予め定められた所定ライン数（本実施例では６４ライン）に達すると（ＳＴ０４５）、この６４ライン分の画像データを画処理用バッファ４３ａから取り出してＤＳＰ２（４４ｂ）で種々の処理を実施させ（ＳＴ０４６）、転送用バッファ４３ｂに書込む（ＳＴ０４７）。
【００９８】
そしてメモリコントロール部４１ｂは、転送用バッファ４３ｂに書き込んだ画像データのライン数をカウントしているので、ステップＳＴ０４７で書き込んだ分のライン数を加算する（ＳＴ０４８）。このカウント数（ライン数）が、ステップＳＴ００１におけるユーザーの設定した原稿サイズ1ページ分のライン数に達したか、すなわちステップＳＴ０４７で転送用バッファ４３ｂに書き込んだ画像データが１枚目原稿の最終ラインか否かを判断し（ＳＴ０４９）、否定判断の場合はステップＳＴ０４４に戻る。そして１枚目原稿の1ページ分の画像データを転送用バッファ４３ｂに書き込むまでステップＳＴ０４５〜ＳＴ０４９を繰り返し、１枚目原稿の1ページ分の画像データの書込が終了したら、ステップＳＴ０６０の「次原稿情報レジスタ４３ｄ」から次原稿があるか否かの判断を行い、ある場合はステップＳＴ０４４〜ＳＴ０４９を繰り返して全原稿について処理を行い、ない場合本処理は終了となる。
【００９９】
なお、ステップＳＴ０４９で１ページ分の画像データが転送用バッファ４３ｂに書き込まれた時点では、各ブロック画像データに関する情報は（１）表／裏情報、（２）最終ブロック情報（ページの最終ブロックか否かの情報）、（３）サイズ情報（ブロック画像データのサイズ）、が情報レジスタ４３ｃに記憶されている。なお、（４）次原稿有無情報は、ステップＳＴ０６０による次原稿情報レジスタ４３ｄの情報が反映されている。
【０１００】
［転送処理］
ステップＳＴ０２７による下位ドライバ実行部２ｃからの「Read２」を受信したか否かの判断をし(ＳＴ０３６)、肯定判断の場合は、転送用バッファ４３ｂに転送一回分の画像データ（ブロック画像データ、１ＭＢ）があるか否かをメモリコントロール部４１ｂの情報から判断し（ＳＴ０３７）、肯定判断の場合は、情報レジスタ４３ｃにあるそのブロック画像データに関する情報を情報添付手段で添付した後、転送する（ＳＴ０３８）。そして、ブロック画像データを転送した後はそのブロック画像データが書き込まれていた転送用バッファ４３ｂ内の領域を開放して再び別の画像データを書込可能にする（ＳＴ０３９）。
【０１０１】
次に、転送したブロック画像データがページの最終ブロックであるか否かを判断する（ＳＴ０４０）。否定判断の場合は、ステップＳＴ０３６〜ＳＴ０４０を繰り返して（Read２の受信と画像ブロックデータの転送を繰り返して）最終ブロックデータまでブロック画像データの転送を行い、肯定判断の場合は、次ページ原稿ありの情報があるか否かの判断をし（ＳＴ０４１）、次ページありの場合はステップＳＴ０３６〜ＳＴ０４２を繰り返して最終原稿（最終ページ）の最終ブロックデータの転送までを行い、次ページなしの場合は、転送処理は終了となる。
【０１０２】
なお、本実施例では、ドライバをＴＷＡＩＮ等の規格に準拠した上位ドライバとこの上位ドライバとスキャナ装置との間に位置する下位ドライバに分け、この下位ドライバがスキャナ装置と上位ドライバとの調整を図るようにした例を示したが、そのほかの例としては、アプリケーションがＴＷＡＩＮ等の規格に準拠している場合がある。この場合は、アプリケーションとスキャナ装置との間のドライバが本実施例の下位ドライバと同様な調整を行えばよく、この場合もシステム全体の処理時間を短縮するようにすることが可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明に係わる画像読取システムを示す全体構成の説明図である。
【図２】図１のシステムの一部を構成するスキャナ装置の全体説明図である。
【図３】図１のシステムの制御構成を示すブロック図であり、スキナ装置とホスト装置の制御構成を示す。
【図４】図１のシステムの制御構成を示すブロック図であり、スキャナ装置の制御構成を示す。
【図５】図１のシステムの制御構成を示すブロック図であり、ホスト装置の制御構成を示す。
【図６】図１のシステムにおける画像データを取得するまでの上位ドライバ実行部の処理を示すためのフローチャートである。
【図７】図１のシステムにおける下位ドライバ実行部の処理を説明するためのフローチャートである。
【図８】図１のシステムにおけるスキャナ装置の処理を説明するためのフローチャートであり、下位ドライバ実行部との間で行われるデータ転送処理の手順を示す。
【図９】図１のシステムにおけるスキャナ装置の処理を説明するためのフローチャートであり、画像データを転送用バッファに書き込む手順を示す。
【図１０】図１のシステムにおけるスキャナ装置の処理を説明するためのフローチャートであり、原稿搬送および読み取り動作の手順を示す。
【符号の説明】
【０１０４】
Ａ      ホスト装置
Ｂ      スキャナ装置
２      中央処理装置（ＣＰＵ）
２ａ    ＯＳ実行部
２ｂ    上位ドライバ実行部
２ｃ    下位ドライバ実行部
４      補助記憶装置（ＲＡＭ「Ｄ」）
３      主記憶装置（ＲＡＭ「Ｄ」）
５      入力装置
６      出力装置
１１    給紙スタッカ
１２    排紙スタッカ
１３    搬送経路
１４ａ  第１プラテン
１４ｂ  第２プラテン
１５    第３プラテン
２４    読取センサ
２４ａ  第1読取センサ（ＣＣＤ１）
２４ｂ  第２読取センサ（ＣＣＤ２）
２５    ピックアップローラ
２６    分離ローラ
２８    第１フィードローラ
２７    レジストローラ
２９    第２フィードローラ
３０    第３フィードローラ
４０    コントロールボード（スキャナコントローラ）
４１    制御ＣＰＵ
４２    ＲＯＭ
４１ｂ  メモリコントロール部
４３ａ  画像処理用バッファメモリ
４３ｂ  転送データ用記憶手段
４８    データ転送手段（ＵＳＢコントローラ）
５０    データ受信手段（ＵＳＢコントローラ）
１００  アプリ実行部
【図１】
0005215054.tif 000002
【図２】
0005215054.tif 000003
【図３】
0005215054.tif 000004
【図４】
0005215054.tif 000005
【図５】
0005215054.tif 000006
【図６】
0005215054.tif 000007
【図７】
0005215054.tif 000008
【図８】
0005215054.tif 000009
【図９】
0005215054.tif 000010
【図１０】
0005215054.tif 000011