(57)【特許請求の範囲】
【請求項１】
ライン単位で画像を読み取る読み取り手段と、前記読み取り手段を規定の方向に駆動させる駆動源と、前記駆動源を駆動する駆動信号を計数して得られる粗位置情報と前記粗位置情報よりも微小な微小位置情報とで構成される位置情報を、上記ライン単位で画像を読み取る際に使用されるライン同期信号毎に検出する読み取り再開位置検出手段と、前記位置情報を用い、前記読み取り手段が読み取り再開位置に到達する前に前記位置情報に基づいてライン同期信号をリセットすることにより、読み取り再開位置を再現させる読み取り再開位置再現手段とで構成されることを特徴とする画像読み取り装置。
【請求項２】
ライン単位で画像を読み取る読み取り手段と、前記読み取り手段の読み取りタイミングを規定するライン同期信号と、前記読み取り手段を搬送する駆動源と、前記駆動源に対する駆動信号を計数して得られる粗位置情報と粗位置情報を補間して得られる微小位置情報とで構成される位置情報を前記ライン同期信号毎に取得し、これを記憶する記憶手段と、前記読み取り手段による読み取り可否を検出する読み取り可否検出手段とを有し、前記読み取り可否検出手段の出力に基づいて画像読み取りを再開する際に、少なくとも前記読み取り可否検出手段が読み取り否を検出する以前に取得され、前記記憶手段に格納された前記位置情報に基づいて前記ライン同期信号を再設定し、読み取り動作を再開するように構成したことを特徴とする画像読み取り装置。
【請求項３】
前記読み取り可否検出手段によって読み取り否が検出された際に、前記駆動手段は前記読み取り手段を画像読み取り方向とは逆の方向に搬送し、その後に前記読み取り可否検出手段によって読み取り可が検出された際に、前記駆動手段は前記読み取り手段を再度画像読み取り方向に搬送することを特徴とする請求項２記載の画像読み取り装置。
【請求項４】
前記駆動源はステッピングモータであることを特徴とする請求項２記載の画像読み取り装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＣＤなどのイメージセンサから画像を読み取るスキャナ等の画像読み取り装置に関する。
【０００２】
【従来の技術】
従来から、画像読み取り装置は、スキャナ、ファクシミリ、複写機等の画像入力部として用いられており、最近では、低価格化に対する要求が高まっている。
【０００３】
ホストＰＣの処理速度により、ＳＣＳＩ等のインターフェースによる画像データ転送速度より、イメージセンサからの画像データ読み取り速度の方が高速になる場合があるため、インターフェース転送をスムーズに行う様にするためには、読み取った後の画像データをインターフェースに転送する前に一時保管するメモリ（以下、バッファと略記）に保管しなければならない。
【０００４】
そこで、画像読み取り装置が読み取り可能な一画面分の画像データが入る容量のバッファが必要になるが、その容量のメモリを導入するとコストが高くなるため、低価格化という要求にはそぐわなくなってしまう。以上の理由で、バッファの容量を削減させる必要がある。
【０００５】
その際、バッファが末転送の画像データで満杯になった状態（以下、バッファフルと略記）になった時に、イメージセンサ等が搭載された画像読み取り手段（以下、キャリッジと略記）をバッファ内の画像データが全部転送されるまで一時停止させて画像読み取り動作を中止し、その後、キャリッジを動かして読み取り動作を再開させる仕組みを組みこまなければならない。以上の一連の動作をリスタートと称する。
【０００６】
以降図６を用いて従来の技術を説明する。図６は従来の画像読み取り装置の概略を示す図である。図６において１は画像読み取り装置本体である。２は読み取らせる原稿を載置する原稿ガラスである。３は原稿を走査して読み取るキャリッジである。キャリッジ３は図示しないシャフト、レール等の支持部材により支持され、移動方向を一方向に規制されている。４はキャリッジを駆動する駆動源でありステッピングモータが採用されている。５は駆動プーリ、６はタイミングベルトであり、駆動源４で発生した動力は、タイミングベルト６によって駆動プーリ５に伝達される。７はベルト、８は従動プーリであり、ベルト７は駆動プーリ５と従動プーリ８の間に張られ、駆動プーリ５の回転に伴ってキャリッジ３を方向ｄ１及びその逆方向に移動させる。９は原稿ガラス２上に載置された原稿であり、原稿９はキャリッジ３の移動によりライン単位に読み取られる。１０は原稿カバーであり、支持部１１によって開閉可能に支持されている。１２は基準データ取得位置であり、この位置の原稿ガラス上には白色の基準板が張り付けられている。ｐｏｌはキャリッジ３のホームポジションであり、画像読み取り装置が待機中の場合は、キャリッジ３は必ずホームポジションｐｏ１に位置している。
【０００７】
次に図７は従来の画像読み取り装置のキャリッジの内部構造を示す図である。図７において１３は原稿を照射するランプ、１４は実質的に画像読み取り位置を特定するアパーチャ、１５−１、１５−２、１５−３は原稿からの反射光を反射する反射ミラー、１６は光学情報を電気信号に変換するイメージセンサ、１７はイメージセンサ１６上にイメージを結像させる結像レンズである。イメージセンサ１６はキャリッジ３の内部に固定されており、原稿９から反射され、反射ミラー１５及びレンズ１７により縮小されて結像した光学情報を、原稿面と一対一の関係で読み取る。
【０００８】
以上の様に構成された画像読み取り装置について、図６及び図７を用いて、以下にその動作を説明する。
【０００９】
装置の電源が投入されると、キャリッジ３は初期位置にかかわらず、ホームポジションｐｏ１に復帰する。その後、アパーチャ１４が基準板の直下となる基準取得位置１２に移動し、ランプ１３を点灯して基準板を実際に読み取り、イメージセンサ１６から出力されるアナログ信号に対する増幅率の決定、及び白黒レベルの補正（シェーディング補正）等を行なう。その後再度ホームポジションｐｏ１に復帰し、待機状態となる。
【００１０】
次に従来の画像読み取り装置の読み取り動作について説明する。
例えばパーソナルコンピュータなどの外部ホスト（図示せず。以降単にＰＣと略称する）より、読み取り解像度、読み取り範囲等の設定を行なった後、原稿の読み取り命令が出されると、ランプ１３を点灯すると共に駆動源４を回転し、タイミングベルト６、駆動プーリ５、ベルト７及び従動プーリ８を介して駆動力をキャリッジ３に伝達し、キャリッジ３を方向ｄ１に移動させる。ＰＣから設定された読み取り範囲に対応した領域の先頭にキャリッジ３が到達する直前に、ＰＣから予め設定された読み取り解像度に対応した速度に駆動速度を変更し、原稿ガラス２上に載置された原稿の読み取りを開始する。原稿９は、原稿ガラス２を通してランプ１３により照射され、原稿からの反射光は反射ミラー１５−１、１５−２、１５−３により反射され、結像レンズ１７によりイメージセンサ１６上に縮小して結像され、電気信号に変換される。指定された読み取り範囲に対する読み取り動作が終了すると、キャリッジ３を方向ｄ１とは逆方向に移動させ、ホームポジションｐｏ１に復帰させる。
【００１１】
以下に、リスタート位置を再現する方法について説明する。
図８は、従来の画像読み取り装置のキャリッジ駆動モータの動作を示す図である。
【００１２】
（ａ）は、読み取り中にバッファフルが発生する時のタイミングであり、（ｂ）は、リスタート時のタイミングである。
【００１３】
１８は、キャリッジ駆動に用いる励磁パルス第１相、１９は、キャリッジ駆動に用いる励磁パルス第２相である。２０は、ライン同期信号、つまりＨｓｙｎｃ信号である。
【００１４】
バッファフル発生時に、励磁パルスはそれぞれ停止し、同時に読み取り動作も停止させる。バッファフル解除時に、励磁パルスを発生させ、同時にＨｓｙｎｃ信号２０をリセットさせる。すると、リスタート後の読み取り動作が開始される。
【００１５】
【発明が解決しようとする課題】
しかし、バッファフル発生時と解除時との間で、励磁パルス第１相１８、励磁パルス第２相１９はＨｓｙｎｃ２０との位相のずれが生じる。
【００１６】
つまり、リスタートの際、位置情報信号とライン同期信号との位相関係の計測と再現を高精度に行っていないため、リスタート前後で、上記の様に位相関係のずれが生じているのである。そのため、読み取り画像がリスタートした箇所を境に、明らかな段差を生じるという問題点を有していた。
【００１７】
そこで本発明では、前記リスタート開始時において位置情報信号とライン同期信号との位相関係を高精度に再現させることを目的とする。
【００１８】
【課題を解決するための手段】
本発明は、上記の課題を解決するために、ライン単位で画像を読み取る読み取り手段と、読み取り手段を規定の方向に駆動させる駆動源と、駆動源を駆動する駆動信号を計数して得られる粗位置情報と前記粗位置情報よりも微小な微小位置情報とで構成される位置情報を、上記ライン単位で画像を読み取る際に使用されるライン同期信号毎に検出する読み取り再開位置検出手段と、前記位置情報を用い読み取り手段が読み取り再開位置に到達する前に前記位置情報に基づいてライン同期信号をリセットすることにより、読み取り再開位置を再現させる読み取り再開位置再現手段とで構成されることを特徴とする画像読み取り装置である。
【００１９】
上記の構成により、前記リスタート開始時において位置情報信号とライン同期信号との位相関係を高精度に再現させることができる。
【００２０】
【発明の実施の形態】
本発明の請求項１に記載の発明は、ライン単位で画像を読み取る読み取り手段と、読み取り手段を規定の方向に駆動させる駆動源と、駆動源を駆動する駆動信号を計数して得られる粗位置情報と粗位置情報よりも微小な微小位置情報とで構成される位置情報を、上記ライン単位で画像を読み取る際に使用されるライン同期信号毎に検出する読み取り再開位置検出手段と、位置情報を用い、読み取り手段が読み取り再開位置に到達する前に位置情報に基づいてライン同期信号をリセットすることにより、読み取り再開位置を再現させる読み取り再開位置再現手段とで構成されることを特徴とする画像読み取り装置であり、位置情報信号とライン同期信号との位相関係の再現を高精度に行うことができる。
【００２１】
本発明の請求項２に記載の発明は、ライン単位で画像を読み取る読み取り手段と、前記読み取り手段の読み取りタイミングを規定するライン同期信号と、前記読み取り手段を搬送する駆動源と、前記駆動源に対する駆動信号を計数して得られる粗位置情報と粗位置情報を補間して得られる微小位置情報とで構成される位置情報を前記ライン同期信号毎に取得し、これを記憶する記憶手段と、前記読み取り手段による読み取り可否を検出する読み取り可否検出手段とを有し、前記読み取り可否検出手段の出力に基づいて画像読み取りを再開する際に、少なくとも前記読み取り可否検出手段が読み取り否を検出する以前に取得され、前記記憶手段に格納された前記位置情報に基づいて前記ライン同期信号を再設定し、読み取り動作を再開するように構成したことを特徴とする画像読み取り装置であり、位置情報信号とライン同期信号との位相関係の再現を高精度に行うことができる。
【００２２】
本発明の請求項３に記載の発明は、前記読み取り可否検出手段によって読み取り否が検出された際に、前記駆動手段は前記読み取り手段を画像読み取り方向とは逆の方向に搬送し、その後に前記読み取り可否検出手段によって読み取り可が検出された際に、前記駆動手段は前記読み取り手段を再度画像読み取り方向に搬送することを特徴とする請求項２記載の画像読み取り装置であり、位置情報信号とライン同期信号との位相関係の再現を高精度に行うことができる。
本発明の請求項４に記載の発明は、前記駆動源はステッピングモータであることを特徴とする請求項１または２記載の画像読み取り装置であり、副走査方向の読み取り開始位置をステッピングモータの励磁信号を計数することで把握できる。
【００２３】
以下、本説明の一実施の形態について図面を参照しながら説明する。
図６、図７における構成要素は従来例と同等であるため説明を省略する。
【００２４】
次に図１を用いて本発明にかかる画像読み取り装置のハードウェア構成について説明する。
【００２５】
図１は本発明の画像読み取り装置のハードウェア構成を示す図であり、図１において、２１は増幅器及びＡ／Ｄ変換器であり、イメージセンサ１６から出力されたアナログ信号ＲＧＢを規定の増幅率で増幅し、ディジタルデータＲＧＢに変換する。２２はシェーディング補正部であり、ディジタル化された画像データを白及び黒レベルの間で正規化する。２３は画像処理部であり、色補正処理や解像度変換処理などを行う。２４はバッファであり、画像データは一旦このバッファに蓄えられた後に、画像読み取り装置から出力される。２５はインタフェースであり、バッファ２４に蓄えられた画像データを外部の装置とネゴシエーションを取りながら出力する。２６はＣＰＵであり画像読み取り装置の全体動作を制御している。
【００２６】
２７は読み取り基準信号生成部であり、ＣＰＵ２６によって予め書き込まれた値に応じて規定の周期でパルスを出力する。２８は読み取り基準信号生成部２７で生成されたパルス信号を示し、以降Ｈｓｙｎｃ２８と記述する。Ｈｓｙｎｃ２８は１ライン周期を与え、本画像読み取り装置では画像データ処理の１ライン開始信号として様々なモジュールで利用される。２９はバッファ状態管理部であり、バッファ２４の使用状況、即ちフルかエンプティかを監視し、ＣＰＵ２６に通知する。３０はモータ制御部であり、ステッピングモータ３１の駆動速度及び駆動にともなう位置（モータ駆動位置＝キャリッジ３の位置）の管理を行っている。
【００２７】
次にＣＰＵ２６は読み取り基準信号生成部２７にＨｓｙｎｃ２８の生成周期を書き込む。その後読み取り基準信号生成部２７の動作を開始する。これによりＨｓｙｎｃ２８の生成が開始される。一方ＣＰＵ２６はＨｓｙｎｃ２８を割り込みにより検出しており、Ｈｓｙｎｃ２８を検出したら、直ちにＨｓｙｎｃカウンタ変数のインクリメントを行う。
【００２８】
次に図１と図６と図２で画像読み取りに際して先頭行（読み取り開始ライン）を読み取る際にキャリッジ位置を管理する方法について説明する。図２は本発明にかかる画像読み取り装置とこれを制御する外部ホスト装置（ＰＣ）を示す図である。
【００２９】
まず図２を用いて、一般的な画像読み取り装置の使用形態について説明する。図２において１は画像読み取り装置本体である。３２は画像読み取り装置を制御し、画像データを受け取るホスト装置（ＰＣ）である。また３３は画像読み取り装置本体１とホスト装置３２を接続するケーブルである。
【００３０】
画像読み取り装置とホスト装置の間は、一般にはＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を用いて接続されることが多い。ＳＣＳＩでは、ホスト装置３２は画像読み取り装置本体１に対して、主走査並びに副走査方向の読み取り解像度、主走査並びに副走査方向の読み取り開始位置、主走査並びに副走査方向の読み取り長などを指定することができる（これらは一般にＳｅｔ  Ｗｉｎｄｏｗコマンドによって指定される）。そしてホスト装置３２が読み取り開始指令（Ｓｃａｎコマンド）を画像読み取り装置本体１に対して発行すると、画像読み取り装置本体１は、図６に示すキャリッジ３を方向ｄ１に駆動を開始し、予め指定された、主走査並びに副走査方向の読み取り解像度、主走査並びに副走査方向の読み取り開始位置、主走査並びに副走査方向の読み取り長などの設定パラメータに従って画像を読み取る。
【００３１】
一般にホスト装置３２では、最終的に取得したい画像データを得る前に、低解像度（表示装置の解像度を考慮し、およそ３０ｄｐｉ〜６０ｄｐｉ程度が指定されることが多い）で画像を読み取り（プレスキャン）、プレスキャン後に、領域や読み取り解像度を指定して、最終的な画像データを読み取る。（本スキャン）。
【００３２】
次に図１を用いて、画像読み取り装置が、指定された読み取り開始位置から画像を読み取る過程を説明する。ＣＰＵ２６はインタフェース２５（より具体的にはＳＣＳＩ）を経由して、副走査方向の読み取り開始位置情報を入手する。ＣＰＵ２６は、読み取り開始位置情報をモータ３１の駆動ステップ数に変換する。本発明にかかる画像読み取り装置では、図６に示すキャリッジ３の駆動源はステッピングモータであるから、移動距離をステッピングモータに出力するパルス数に簡単に置き換えることができる。ＣＰＵ２６はモータ制御部３０に対して、ステッピングモータを駆動する励磁パルス周期を設定し、モータの駆動を開始する。モータ制御部３０はモータ３１に対して励磁パルスを発行する毎にＣＰＵ２６に対して励磁パルス出力通知信号を出力する。この通知信号はＣＰＵ２６の割り込み要因となっておりＣＰＵ２６は、割り込み処理において、通知信号を計数することで、モータ３１の回転量、即ち図６のキャリッジ３の移動量を正確に把握することができる。従ってＣＰＵ２６は、ホスト装置から指定された、副走査方向の読み取り開始位置をステッピングモータの励磁信号を計数することで把握できる。
【００３３】
次に読み取り動作中に画像読み取りが中断するケースについて、図６、図１、図２を用いて説明する。
【００３４】
画像読み取り装置本体１はホスト装置３２と接続することで、初めて画像を読み取る機能を発揮することができるが、ホスト装置３２の性能は様々であり、ホスト装置３２の性能によって、画像読み取り装置本体１からホスト装置３２へ画像データを転送する時間も大きく変化する。
【００３５】
ホスト装置側の処理速度が遅く、画像データを出力することができなくなった場合、画像読み取り装置本体１は、画像をそれ以上読み取ることができず、画像読み取り動作を中断することになる。通常はこの中断を極力少なくするため、画像読み取り装置本体１には、図１に示すバッファ２４が設けられており、ホスト装置３２が側が画像データを受け取れなくっても（即ちインタフェース２５において画像データの転送が停止していても）、画像読み取り装置本体１は画像を読み取り続けることができる。
【００３６】
しかしながら、コストの制約上、バッファ２４の容量にも限界があるため、バッファ２４の容量を越えて画像データを保持し続けることは不可能である。このように画像読み取り装置１のバッファ２４が満杯状態になることをバッファフルと呼称する。バッファフルが発生すると、画像読み取り装置本体１は、画像読み取り動作を一時的に中断し、ホスト装置３２がバッファ２４に保持された画像データをインタフェース２５を介して吸い上げるのを待つ。即ち、バッファ２４に多量の画像データが残っている間は、読み取り動作を中断しておき、バッファ２４がある程度空になると（バッファエンプティ）、画像読み取り動作を再開する。この動作をリスタート動作と呼称する。
【００３７】
ＣＰＵ２６はバッファフル状態への移行を、バッファ２４の状態を管理するバッファ状態管理部２９が発生する割り込み信号（バッファモニタ信号）によって検出することができる。ＣＰＵ２６はバッファフルを検出すると、キャリッジ３を微小量、読み取り方向と逆方向に駆動し、読み取り再開に備える。その後ＣＰＵ２６はバッファモニタ信号を定期的にチェックし、バッファフル状態の解除（バッファエンプティ）を検出すると、キャリッジを読み取り方向に、ホスト装置３２から指定された読み取り解像度に応じた速度で駆動し、バッファフルが発生した次のラインから読み取りを再開する。
【００３８】
次に図１と図３を用いてリスタート発生時点のキャリッジ位置の制御について説明する。
【００３９】
図３は、図１におけるモータ制御部３０の詳細を示す図である。
図３において、３４はカウンタ１であり、予め定められた周期のクロック信号をカウントする。
【００４０】
３５はレジスタ１ａであり、ＣＰＵ２６から値が書き込まれる。
３６はレジスタ１ｂであり、ＣＰＵ２６から値が書き込まれる。
【００４１】
３７はカウンタ２であり、カウンタ１と同様に予め定められた周期のクロック信号をカウントする。
【００４２】
３８はレジスタ２ａであり、ＣＰＵ２６から値が書き込まれる。
３９はレジスタ２ｂであり、ＣＰＵ２６から値が書き込まれる。
【００４３】
４０はカウンタ３であり、予め定められた周期のクロック信号をカウントする。
【００４４】
４１はレジスタ３ａであり、Ｈｓｙｎｃ２８が発生する毎にカウンタ３（４０）のカウント値を読み込んで保持する。レジスタ３ａはＣＰＵ２６からリード可能であり、ＣＰＵ２６はＨｓｙｎｃ２８による割り込みが発生する毎に、レジスタ３ａに保持されたカウンタ３のカウント値を入手することができる。
【００４５】
４２はレジスタ３ｂであり、ＣＰＵ２６から値が書き込まれる。
４３はクロック信号発生器であり、予め定められた周期のクロック信号を発生する。クロック信号発生器４３の出力は、カウンタ１、カウンタ２、カウンタ３に入力されており、これらのカウンタは、クロック信号発生器４３で発生されたクロック信号をカウントする。
【００４６】
４４は比較器１ａであり、カウンタ１（３４）のカウント値とレジスタ１ａ（３５）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。また比較器１ａ（４４）から出力される一致信号はＣＰＵ２６に割り込みとして通知され、ＣＰＵ２６は一致信号の発生回数をカウントする（より詳しく説明すれば、ＣＰＵ２６は比較器１ａ（４４）から出力される一致信号をモータの励磁パルスとみなして、この計数値をキャリッジの位置情報として使用する）。また比較器１ａ（４４）の一致信号はカウンタ１、カウンタ２、カウンタ３に入力され、各カウンタは一致信号の入力により０にリセットされる。即ちカウンタ１、カウンタ２、カウンタ３はカウンタ１が特定の値に達したら一斉にリセットされる、いわゆる同期動作を行っている。
【００４７】
４５は比較器１ｂであり、カウンタ１（３４）のカウント値とレジスタ１ｂ（３６）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。
【００４８】
４６は比較器２ａであり、カウンタ２（３７）のカウント値とレジスタ２ａ（３８）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。
【００４９】
４７は比較器２ｂであり、カウンタ２（３７）のカウント値とレジスタ２ａ（３９）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。
【００５０】
４８は比較器３であり、カウンタ３（４０）のカウント値とレジスタ３ｂ（４２）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。
【００５１】
４９ｈ出力制御部１であり、比較器１ａ（４４）から出力された一致信号と、比較器１ｂ（４５）から出力された一致信号に基づき、モータ励磁信号（１相）を生成する。
【００５２】
５０はモータドライバであり、出力制御部１（４９）から出力された１相の励磁信号に基づきステッピングモータ３１を駆動する。
【００５３】
５１は出力制御部２であり、比較器２ａ（４６）から出力された一致信号と、比較器２ｂ（４７）から出力された一致信号に基づき、出力制御部１（４９）の出力と位相が９０°ずれた信号を発生する。
【００５４】
５２は出力制御部３であり、比較器３（４８）から一致信号が入力される毎にＨｉｇｈとＬｏｗを交互に反転する、いわゆるトグル出力を行う。
【００５５】
５３はカウンタ４であり、出力制御部１（４９）から出力された励磁信号と、出力制御部２（５１）から出力された、出力制御部１（４９）の出力と位相が９０°ずれた信号を２相入力とする位相計数カウンタである。カウンタ４（５３）では、ＣＰＵ２６の介在なしに、モータの回転量、即ちキャリッジの移動量が計測される。
【００５６】
５４はレジスタ４ａであり、Ｈｓｙｎｃ２８が発生する毎にカウンタ４（５３）のカウント値を読み込んで保持する。レジスタ４ａはＣＰＵ２６からリード可能であり、ＣＰＵ２６はＨｓｙｎｃ２８による割り込みが発生する毎に、レジスタ４ａに保持されたカウンタ４（５３）のカウント値、即ちキャリッジの位置情報を入手することができる。
【００５７】
５５はレジスタ４ｂであり、ＣＰＵ２６から値が書き込まれる。
５６は比較器４であり、カウンタ４（５３）のカウント値とレジスタ４ｂ（５５）の値を比較し、両者が一致した場合は（コンペアマッチ）一致信号を発生する。
【００５８】
５７は両エッジ検出部であり、出力制御部３（５２）から出力されるトグル信号の両エッジを検出し、両エッジ位置に対応したパルス信号を生成する。５８はゲート回路であり、比較器４（５６）が一致信号を発生した場合には両エッジ検出部５７の信号に基づき規定の幅を持つパルス信号を出力する。ゲート回路５８の出力はＣＰＵ２６に入力される。ＣＰＵ２６はゲート回路５８の出力を割り込みとして認識する。
【００５９】
以上のように構成されるモータ制御部３０の動作を、以降図３と図４を用いて詳細に説明する。
【００６０】
図４はバッファフル発生前から発生時におけるモータ制御部３０の動作を示す図である。
【００６１】
カウンタ１（３４）、カウンタ２（３７）、カウンタ３（４０）はクロック信号発生器４３が発生する、予め定められたクロック信号によってカウントアップされている。レジスタ１ａ（３５）には設定値５９が設定されており、カウンタ１（３４）のカウント値は設定値５９に達すると０にクリアされる。また比較器１ａ（４４）から出力される一致信号により、カウンタ１（３４）と同時にカウンタ２（３７）、カウンタ３（４０）も同時に０にクリアされる。一方レジスタ１ｂ（５５）には設定値６０が設定されている。設定値６０の値は、設定値５９の１／２の値が設定されている。
【００６２】
比較器１ａ（４４）はカウンタ１（３４）のカウント値と設定値５９を比較し、値が一致すると一致信号を出力し、比較器１ｂ（４５）はカウンタ１（３４）のカウント値と設定値６０を比較し、値が一致すると一致信号を出力するが、これらは出力制御部１（４９）に入力されており、出力制御部１（４９）では、比較器１ａ（４４）から一致信号を検出すると出力をＨｉｇｈにし、比較器１ｂ（４５）から一致信号を検出すると出力をＬｏｗにする。こうして出力制御部１出力６１が得られる。出力制御部１出力６１はモータドライバ５０に入力されており、モータドライバ５０は、出力制御部１出力６１に基づいてモータ３１の回転を制御する。
さてレジスタ２ａ（３８）には設定値６２が設定されており、レジスタ２ｂ（３９）には設定値６３が設定されている。設定値６２は
設定値６２＝（設定値５９＋設定値６０）／２・・・（数１）
に、設定値６３は
設定値６３＝設定値６０／２・・・（数２）
にそれぞれ設定されている。
【００６３】
比較器２ａ（４６）はカウンタ２（３７）のカウント値と設定値６２を比較し、値が一致すると一致信号を出力し、比較器２ｂ（４７）はカウンタ２（３７）のカウント値と設定値６３を比較し、値が一致すると一致信号を出力するが、これらは出力制御部２（５１）に入力されており、出力制御部２（５１）では、比較器２ａ（４６）から一致信号を検出すると出力をＨｉｇｈにし、比較器２ｂ（４７）から一致信号を検出すると出力をＬｏｗにする。こうして出力制御部２出力６４が得られる。
【００６４】
設定値５９、設定値６０、設定値６２、設定値６３を上述のように設定することで、出力制御部２出力６４と出力制御部１出力６１の位相差を制御することができる（本発明にかかる画像読み取り装置では９０°の位相差を設けている）。
【００６５】
出力制御部１出力６１と出力制御部２出力６４はカウンタ４（５３）に入力されており、位相計数カウンタであるカウンタ４（５３）は２つの入力の位相差に基づきアップまたはダウンカウンタとして機能する。カウンタ４（５３）の計数値はＨｓｙｎｃ２８の入力の度にレジスタ４ａ（５４）に保持されており、ＣＰＵ２６はＨｓｙｎｃ２８により割り込みが発生すると、レジスタ４ａ（５４）の値を読み取り、記憶している（Ｐｏ１Ｈ：粗位置情報６５）。
【００６６】
Ｐｏ１Ｈの値は、モータ駆動ステップ毎にカウンタアップされる計数値であるから、Ｈｓｙｎｃ２８が発生した時のキャリッジ位置を粗く計測していることになる。
一方カウンタ３（４０）ではＨｓｙｎｃ２８の入力の度にカウント値がレジスタ３ａ（４１）に保持されており、ＣＰＵ２６はＨｓｙｎｃ２８により割り込みが発生すると、レジスタ３ａ（４１）の値を読み取り、記憶している（ＰＯ１Ｌ：微小位置情報６６）。
【００６７】
微小位置情報６６はモータの駆動状況を直接反映するものではないが、駆動パルス間でモータは略等速で駆動され、モータの動力はベルト等を介在して伝達され、最終的に駆動されるキャリッジに至っては、ほぼ等速で駆動されているとみなせるので、微小位置情報６６はモータ励磁パルス間のキャリッジ位置補間情報とみなすことができる。
【００６８】
即ちＰＯ１ＬはＨｓｙｎｃ２８が発生した時のキャリッジ位置を微小に計測していることになる。
【００６９】
さて本発明にかかる画像読み取り装置では、バッファフルの直前のＨｓｙｎｃ２８まで画像データは有効となるように、ハードウェアは設計されている。バッファフル発生は、バッファ状態管理部２９からＣＰＵ２６に入力されるが、ハードウェアはバッファフルが発生するとＣＰＵ２６の介在なしに、画像データの読み取り、即ちデータ処理を停止している。
【００７０】
ＣＰＵ２６はバッファフルを検出すると、直ちにモータ３１を停止し、出力制御部２（５１）の信号発生ルールを変更し、カウンタ２（３７）と設定値６２が一致することで出力される一致信号によりＬｏｗを、カウンタ２と設定値６３とが一致することで出力される一致信号によりＨｉｇｈが出力されるようにした上で、モータ３１を読み取り方向とは逆の方向に回転させる。出力制御部１出力６１と出力制御部２出力６４の位相のずれ方向が逆になっているので、位相計数カウンタであるカウンタ４はダウンカウンタとして機能する。
【００７１】
ＣＰＵ２６はバッファフルが発生した際のＨｓｙｎｃカウンタの値を記憶する。
また、そのＨｓｙｎｃカウンタ値の１つ前の時点における、粗位置情報６５（即ちＰＯ１Ｈ）と微小位置情報６６（即ちＰＯ１Ｌ）を、バッファフルが解除された時のリスタート位置として記憶する。そしてＣＰＵ２６は、読み取り方向とは逆方向にモータを駆動し、キャリッジ位置がＰＯ１ＨとＰＯ１Ｌを検出した位置よりも、上流（読み取り方向とは逆方向）になるまでキャリッジを駆動し、その後モータを停止してバッファフルが解除されるのを待つ。（モータ逆転による、カウンタ４のダウンカウントは、図４に図示された数値より小さくなるまで行なわれる）
次にバッファフルが解除された時の動作について図３と図５を用いて説明する。
【００７２】
図５はバッファフル解除時点のモータ制御部３０の動作を示す図である。
バッファフルの解除はバッファ状態管理部２９からＣＰＵ２６に伝えられる。バッファフル解除をＣＰＵ２６が認識すると、ＣＰＵ２６はレジスタ４ｂ（５５）にＰＯ１Ｈを設定値６７として書き込み、更にレジスタ３ｂ（４２）にＰＯ１Ｌを設定値６９として書き込む。
【００７３】
そして読み取り方向とは逆の方向に戻っているモータを、読み取り方向に駆動する。
【００７４】
レジスタ３ｂ（４２）に設定値６９としてＰＯ１Ｌを書き込むことにより、比較器３（４８）はモータ（３１）の駆動と共にアップカウントとリセットを繰り返すカウンタ３（４０）とレジスタ３ｂ（４２）の値を比較し、一致が発生すると一致信号を出力制御部３（５２）に出力する。出力制御部３（５２）は一致信号を受け取る度に、ＬｏｗとＨｉｇｈを交互に繰り返す、いわゆるトグル信号を出力する（出力制御部３（５２）出力７０）。更に両エッジ検出部（５７）ではトグル信号の両エッジを検出し、両エッジ位置に応じたパルス信号を出力する（両エッジ検出部（５７）出力７１）。
【００７５】
一方レジスタ４ｂ（５５）に設定値６７としてＰＯ１Ｈを書き込むことにより、比較器４（５６）はモータ（３１）の駆動と共にアップカウントされるカウンタ４（５３）とレジスタ４ｂ（５５）に設定された値を比較し、一致が発生すると一致信号をゲート回路（５８）に出力する（比較器４（５６）出力６８）。
【００７６】
ゲート回路（５８）では比較器４（５６）出力６８が入力されると、次に発生した両エッジ検出部（５７）出力７１に基づきＣＰＵ２６に対して割り込み信号を生成する（ゲート回路（５８）出力７２）。ＣＰＵ２６は位置７３に示す位置で、この割り込み信号を検出すると、Ｈｓｙｎｃ２８をリセットする。
【００７７】
さて前述したように、ＣＰＵ２６はバッファフル発生位置を、Ｈｓｙｎｃカウント値に基づき位置７４として記憶している。バッファフルは有効な最後のラインで発生するから、次に読み取るべきラインは位置７３の次のＨｓｙｎｃからである。従ってＣＰＵ２６は位置７３のＨｓｙｎｃを検出した直後に、ハードウェアの動作を開始すればバッファフル発生ラインの次のラインから正確に画像データを読み取ることができる。
【００７８】
以上のようにして、画像を読み取りながら、Ｈｓｙｎｃカウント値の基準となる値に基づいて、キャリッジの正確な位置情報を測定しておき、バッファフル発生時には、キャリッジを微小距離リターンして停止させ、バッファフル解除後に読み取るべきライン位置にキャリッジが到達する前に、測定したキャリッジ位置情報に基づき、Ｈｓｙｎｃをリセットすることにより、キャリッジ位置情報とＨｓｙｎｃ信号との位相関係を読み取り前の状態に復元できる。
【００７９】
【発明の効果】
以上のように、本発明によると、ＣＰＵが読み取り開始指定位置に到達すると、更に画像を読み取りながら、Ｈｓｙｎｃカウント値に基づいて、キャリッジの正確な位置情報を測定しておき、バッファフル発生時には、キャリッジを微小距離リターンして停止させ、バッファフル解除後に読み取るべきライン位置にキャリッジが到達する前に、測定したキャリッジ位置情報に基づき、Ｈｓｙｎｃ信号をリセットすることにより、キャリッジ位置情報とＨｓｙｎｃ信号の位相関係を読み取り前の状態に復元することができる。
【００８０】
これによりバッファフルが発生しても常に画像の明らかな段差を生じることなく、画像を読み続けることが可能となる。
【図面の簡単な説明】
【図１】本発明の画像読み取り装置のハードウェア構成を示す図
【図２】画像読み取り装置とこれを制御する外部ホスト装置（ＰＣ）を示す図
【図３】モータ制御部の詳細を示す図
【図４】バッファフル発生前から発生時におけるモータ制御部の動作を示す図
【図５】バッファフル解除時点のモータ制御部の動作を示す図
【図６】従来の画像読み取り装置の概略を示す図
【図７】従来の画像読み取り装置のキャリッジの内部構造を示す図
【図８】従来の画像読み取り装置のキャリッジ駆動モータの動作を示す図
【符号の説明】
１  画像読み取り装置本体
３  キャリッジ
４  駆動源
１６  イメージセンサ
２４  バッファ
２５  インタフェース
２７  読み取り基準信号生成部
２８  Ｈｓｙｎｃ（信号名）
２９  バッファ状態管理部
３０  モータ制御部
３１  モータ
３２  ホスト装置（ＰＣ）
【図１】
0003882316.tif 000002
【図２】
0003882316.tif 000003
【図３】
0003882316.tif 000004
【図４】
0003882316.tif 000005
【図５】
0003882316.tif 000006
【図６】
0003882316.tif 000007
【図７】
0003882316.tif 000008
【図８】
0003882316.tif 000009