(57)【特許請求の範囲】
【請求項１】
読取対象の画像情報を読み取る読取ユニットと、
ＤＣモータを有し、前記ＤＣモータの駆動力により、前記読取ユニット及び読取対象のいずれか一方を、搬送対象として、搬送する搬送機構と、
前記搬送機構を通じて、前記搬送対象の移動速度を制御し、前記搬送対象を、画像読取方向に定速で移動させると共に、ラインスタート信号を、前記読取ユニットに周期的に入力することにより、前記読取ユニットに、ライン画像の読取開始タイミングを指定して、ライン毎に読取動作を行わせ、各ラインの読取画像データを、前記読取ユニットに生成させ、前記生成された読取画像データを、バッファに書き込む処理を実行する読取制御手段と、
前記読取制御手段による処理の中断要否を判定する中断判定手段と、
前記中断判定手段により前記読取制御手段による処理の中断が必要であると判定されると、前記読取制御手段による処理を中断させる停止制御手段と、
前記搬送対象が所定量移動する度に、事象発生信号を出力する事象発生信号出力手段と、
前記事象発生信号出力手段から入力される事象発生信号に基づき、前記搬送対象の現在位置を検出する位置検出手段と、
前記停止制御手段の動作によって前記読取制御手段による処理が中断されたラインに対応するラインスタート信号が前記読取ユニットに入力された時点ＴＳ、を含む前記時点ＴＳより過去において、最後に前記事象発生信号出力手段から前記事象発生信号が入力された時点ＴＰでの前記搬送対象の位置であって前記位置検出手段により検出された位置ＸＰを、読取再開基準位置に設定する第一基準位置設定手段と、
前記時点ＴＰから前記時点ＴＳまでの経過時間に基づき、オフセット時間を設定するオフセット設定手段と、
先頭ラインから、前記時点ＴＳで前記読取ユニットによる読取動作が完了した読取完了ライン、までの前記読取画像データの前記画像読取方向の長さである読取長を、検出する読取長検出手段と、
前記位置検出手段により検出された前記先頭ラインの読取開始時点での前記搬送対象の位置から、前記位置検出手段により検出された前記時点ＴＰでの前記搬送対象の位置ＸＰまでの長さを、前記先頭ラインから前記読取完了ラインまでのライン画像を読み取るのに要した前記読取ユニットの搬送量として、検出する搬送量検出手段と、
前記読取長検出手段により検出された前記読取長が、前記搬送量検出手段により検出された前記搬送量より短い場合には、前記位置検出手段により検出された前記時点ＴＰでの前記搬送対象の位置ＸＰを、読取再開基準位置に設定する一方、前記読取長検出手段により検出された前記読取長が、前記搬送量検出手段により検出された前記搬送量より長い場合には、前記時点ＴＰの経過後、最初に前記事象発生信号が入力された時点ＴＦでの前記搬送対象の位置であって前記位置検出手段により検出された位置ＸＦを、読取再開基準位置に設定する第二基準位置設定手段と、
前記搬送量検出手段により検出された前記搬送量と前記読取長検出手段により検出された前記読取長との間の誤差に基づき、前記第一及び第二基準位置設定手段のいずれか一方を、選択的に動作させる手段であって、前記誤差の絶対値が閾値未満である場合には、前記第一基準位置設定手段を選択的に動作させ、前記誤差の絶対値が閾値以上である場合には、前記第二基準位置設定手段を選択的に動作させる作動制御手段と、
前記停止制御手段の動作によって前記読取制御手段による処理が中断させられると、前記搬送機構を通じ、前記搬送対象を、前記画像読取方向とは逆方向に、前記読取再開基準位置より進んだ位置まで、移動させる後退制御手段と、
前記読取制御手段による処理が中断されている期間、前記読取制御手段による処理の再開要否を判定する再開判定手段と、
を備え、
前記読取制御手段は、前記再開判定手段により再開が必要であると判定されると、前記後退制御手段により移動された前記搬送対象を、再度、前記画像読取方向に、定速で移動させると共に、前記位置検出手段の検出結果に基づき、前記読取再開基準位置が前記第一基準位置設定手段により設定された場合には、前記搬送対象が前記読取再開基準位置に到達した時点から前記オフセット設定手段により設定されたオフセット時間が経過した時点で、前記読取ユニットにラインスタート信号を入力し、前記読取再開基準位置が前記第二基準位置設定手段により設定された場合には、前記搬送対象が前記読取再開基準位置に到達した時点で、前記読取ユニットにラインスタート信号を入力し、更に、当該ラインスタート信号の入力後、周期的にラインスタート信号を入力することにより、前記読取ユニットにより生成された前記読取画像データを、バッファに書き込む処理を再開する構成にされていること
を特徴とする画像読取装置。
【請求項２】
前記オフセット設定手段は、前記時点ＴＰから前記時点ＴＳまでの経過時間を、前記オフセット時間に設定する構成にされていることを特徴とする請求項１記載の画像読取装置。
【請求項３】
前記中断判定手段は、前記バッファの空き容量に基づき、前記読取制御手段による処理の中断要否を判定する構成にされていることを特徴とする請求項１又は請求項２記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取ユニットと読取対象との相対位置を変化させてライン毎に画像を読み取る画像読取装置に関する。
【背景技術】
【０００２】
従来、画像読取装置としては、読取対象（原稿）を静止させた状態で、読取ユニットを、読取対象上に搬送し、この間に、読取ユニットに読取動作を実行させることにより、読取対象の画像情報を読み取るフラットベッド型の画像読取装置や、読取ユニットを固定した状態で、読取対象としての原稿を、読取ユニット上に搬送することにより、読取対象の画像情報を読み取るＡＤＦ（オートドキュメントフィーダ）型の画像読取装置が知られている。
【０００３】
この他、読取ユニットや読取対象を搬送するための駆動源としては、パルスモータやＤＣモータが知られている。パルスモータは、位置制御の容易さ・制御システムの構成の利便性から広く利用されているが、パルスモータには、ＤＣモータよりも駆動時の騒音や消費電力が大きいといった欠点や、ＤＣモータよりも走査の高速性が劣るといった欠点がある。このため、近年では、駆動時の騒音低減・消費電力の低減・高速性の向上を目的とし、駆動源としてＤＣモータを採用した画像読取装置の開発が活発に行われている。
【０００４】
また、画像読取装置としては、ライン方向に沿って複数個受光素子（フォトダイオード）が配列されたＣＣＤラインセンサを、読取ユニットとして備えたものが知られている。この画像読取装置では、各受光素子に蓄積された電荷に応じた画素データを生成し、一ライン分の画素データを配列してなるライン画像データを生成する。そして、このようなライン毎の動作を繰返し実行することにより、読取対象に対応した画像データを生成する。
【０００５】
具体的には、ライン画像の読取開始タイミングを指定するラインスタート信号を、一定周期で読取ユニットに入力すると共に、読取ユニット又は読取対象の原稿を搬送対象とし、搬送対象を一定速度で移動させて、読取ユニットに各ラインのライン画像データを生成させ、複数ライン分のライン画像データを結合して、読取対象に対応した画像データを生成する。尚、読取ユニットでは、ラインスタート信号が入力される度に読取動作を実行して、ライン画像データを生成する（例えば、特許文献１参照）。
【特許文献１】特開平８−２２８２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、近年の読取解像度の高い画像読取装置では、画像読取速度よりも、外部機器へのデータ転送速度や、ガンマ補正などの読取後の画像処理速度のほうが低速になる場合がある。
【０００７】
この場合には、読取ユニットから出力される画像データを蓄積しておくためのバッファが、原稿一枚分の画像読取動作を完了するまでに、一杯になるため、従来の画像読取装置では、バッファの空き容量が閾値未満となった時点で、一時読取動作を停止し、バッファの空き容量がある程度確保できた時点で、読取動作を再開させている。
【０００８】
しかしながら、読取動作を一旦停止して、これを再開する場合には、読取中断位置と読取再開位置とのズレにより、読取対象の寸法と、読取対象に対応した画像データの寸法との間に不整合が生じる場合がある。
【０００９】
周知のように、搬送対象の位置検出では、搬送対象を搬送するモータが所定量δ回転する度にパルス信号を出力するロータリーエンコーダや、読取ユニットが所定量δ移動する度にパルス信号を出力するリニアエンコーダなどが用いられるが、エンコーダを用いた位置検出では、エンコーダの分解能以上の位置情報を得ることはできない。即ち、上記所定量δに対応する距離の精度でしか、搬送対象の位置を正確に検出することができない。
【００１０】
また、駆動源としてＤＣモータを用いる場合には、搬送対象の位置制御を高精度に実現できないため、ラインスタート信号の入力と、搬送対象の移動とは、非同期である。即ち、駆動源としてＤＣモータを用いる場合には、駆動源としてパルスモータを用いる場合のように、ラインスタート信号の入力に同期させて、モータを回転させることができない。
【００１１】
このため、一旦、読取が中断すると、読取が中断したラインに対応するラインスタート信号の入力時に搬送対象がいた地点、即ち、読取中断位置について正しい位置がわからなくなり、読取中断位置と、読取再開位置と、にズレが生じて、従来技術では、読取対象に対し、画像データが表す画像が、伸びた画像や潰れた画像になってしまうのである。
【００１２】
本発明は、こうした問題に鑑みなされたものであり、読取中断位置と読取再開位置とを正確に合わせることができない場合でも、高画質な画像データを生成することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では、読取再開位置を適宜切り替えることにより、上記目的を達成する。
本発明の画像読取装置（請求項１）は、読取対象の画像情報を読み取る読取ユニットと、ＤＣモータの駆動力により、読取ユニット及び読取対象のいずれか一方を、搬送対象として、搬送する搬送機構と、搬送機構を通じて、搬送対象の移動速度を制御し、搬送対象を、画像読取方向に定速で移動させると共に、ラインスタート信号を、読取ユニットに周期的に入力することにより、読取ユニットに、ライン画像の読取開始タイミングを指定して、ライン毎に読取動作を行わせ、各ラインの読取画像データを、読取ユニットに生成させ、生成された読取画像データを、バッファに書き込む処理を実行する読取制御手段と、を備える。
【００１４】
この画像読取装置は、更に、中断判定手段と、停止制御手段と、事象発生信号出力手段と、位置検出手段と、第一基準位置設定手段と、オフセット設定手段と、読取長検出手段と、搬送量検出手段と、第二基準位置設定手段と、作動制御手段と、後退制御手段と、再開判定手段と、を備え、中断判定手段により、読取制御手段による処理の中断要否を判定する。
【００１５】
そして、読取制御手段による処理の中断が必要であると判定されると、停止制御手段にて、読取制御手段による処理を中断させる。尚、中断判定手段は、バッファの空き容量に基づき、読取制御手段による処理の中断要否を判定する構成にすることができる（請求項３）。
【００１６】
また、事象発生信号出力手段は、搬送対象が所定量移動する度、事象発生信号を出力し、位置検出手段は、事象発生信号出力手段から入力される事象発生信号に基づき、搬送対象の現在位置を検出する。事象発生信号出力手段としては、上述したエンコーダを挙げることができる。
【００１７】
この他、第一基準位置設定手段は、「停止制御手段の動作によって読取制御手段による処理が中断されたラインに対応するラインスタート信号が読取ユニットに入力された」時点ＴＳ、を含む当該時点ＴＳより過去において、最後に事象発生信号出力手段から事象発生信号が入力された時点ＴＰでの搬送対象の位置であって位置検出手段により検出された位置ＸＰを、読取再開基準位置に設定し、オフセット設定手段は、この時点ＴＰから時点ＴＳまでの経過時間に基づき、オフセット時間を設定する。例えば、オフセット設定手段は、時点ＴＰから時点ＴＳまでの経過時間を、オフセット時間に設定する構成にすることができる（請求項２）。
【００１８】
一方、読取長検出手段は、読取が開始された先頭ラインから、時点ＴＳで読取ユニットによる読取動作が完了した読取完了ライン、までの読取画像データの画像読取方向の長さである読取長を検出し、搬送量検出手段は、位置検出手段により検出された先頭ラインの読取開始時点での搬送対象の位置から、位置検出手段により検出された上記時点ＴＰでの搬送対象の位置ＸＰまでの長さを、先頭ラインから読取完了ラインまでのライン画像を読み取るのに要した読取ユニットの搬送量として検出する。
【００１９】
また、第二基準位置設定手段は、搬送量検出手段により検出された搬送量と読取長検出手段により検出された読取長とに基づき、読取長検出手段により検出された読取長が、搬送量検出手段により検出された搬送量より短い場合には、位置検出手段により検出された上記時点ＴＰでの搬送対象の位置ＸＰを、読取再開基準位置に設定する一方、読取長検出手段により検出された読取長が、搬送量検出手段により検出された搬送量より長い場合には、上記時点ＴＰの経過後、最初に事象発生信号が入力された時点ＴＦでの搬送対象の位置であって位置検出手段により検出された位置ＸＦを、読取再開基準位置に設定する。
【００２０】
そして、作動制御手段は、搬送量検出手段により検出された搬送量と読取長検出手段により検出された読取長との間の誤差に基づき、上記第一及び第二基準位置設定手段のいずれか一方を、選択的に動作させる。具体的には、上記誤差の絶対値が閾値未満である場合には、第一基準位置設定手段を選択的に動作させ、上記誤差の絶対値が閾値以上である場合には、第二基準位置設定手段を選択的に動作させる。
この他、後退制御手段は、停止制御手段の動作によって読取制御手段による処理が中断させられると、搬送機構を通じ、搬送対象を、画像読取方向とは逆方向に、第一及び第二基準位置設定手段のいずれか一方により設定された読取再開基準位置より進んだ位置まで、移動させ、再開判定手段は、読取制御手段による処理が中断されている期間、読取制御手段による処理の再開要否を判定する。
【００２１】
そして、再開判定手段により再開が必要であると判定されると、読取制御手段は、後退制御手段により移動された搬送対象を、再度、画像読取方向に、定速で移動させる。
また、先立って、読取再開基準位置が第一基準位置設定手段により設定された場合、読取制御手段は、位置検出手段の検出結果に基づき、搬送対象が読取再開基準位置に到達した時点からオフセット設定手段により設定されたオフセット時間が経過した時点で、読取ユニットにラインスタート信号を入力し、以後、周期的にラインスタート信号を入力することにより、上記オフセット時間が経過した時点で搬送対象がいた位置を読取再開位置として、当該読取再開位置から、読取ユニットに読取動作を実行させ、読取ユニットにより生成された読取画像データを、バッファに書き込む処理を再開する。
【００２２】
一方、読取再開基準位置が第二基準位置設定手段により設定された場合、読取制御手段は、搬送対象が読取再開基準位置に到達した時点で、読取ユニットにラインスタート信号を入力し、以後、周期的にラインスタート信号を入力することにより、上記第二基準位置設定手段により設定された読取再開基準位置を読取再開位置として、当該読取再開位置から、読取ユニットに読取動作を実行させ、読取ユニットにより生成された読取画像データを、バッファに書き込む処理を再開する。
【００２３】
このように構成された本発明の画像読取装置によれば、第一基準位置設定手段により設定された再開基準位置から、オフセット時間が経過した時点で搬送対象がいる地点を、読取再開位置とすることで、概ね、読取中断位置から読取動作を再開することができる。
【００２４】
但し、この画像読取装置では、搬送対象の位置が、位置検出手段の位置精度の範囲でしか正確にわからないため、オフセット時間により読取中断位置を推定して、そのオフセット時間が経過した時点から読取動作を再開しても、正確には、読取中断位置から読取動作を再開することはできない。即ち、搬送対象を定速制御しても、実速度と目標速度との間には誤差があるので、この誤差を原因として、読取中断位置と読取再開位置との間には、ズレが生じる。
【００２５】
そこで、本発明の画像読取装置では、搬送量と読取長との間の上記関係に応じて、適宜、読取再開基準位置を、第一基準位置設定手段ではなく、第二基準位置設定手段に設定させ、上記ズレにより生じる搬送量と読取長との誤差を抑えるようにしているのである。
【００２６】
このように構成された画像読取装置によれば、読取対象の寸法と読取画像の寸法との間に不整合が生じないように、読取再開位置を切り替えて、読取動作を再開することができる。結果、全ライン分の読取画像データを結合してできる画像データが表す画像が、読取対象の画像に対して伸びたり潰れたりしたりするのを抑制することができ、本発明によれば、高速に読取可能で高画質な画像データを生成することが可能な画像読取装置を構成することができる。
【００２７】
【００２８】
特に、本発明によれば、第二基準位置設定手段を上述したように構成しているので、読取再開位置を、読取中断位置に正確に合わせることができなくとも、全ライン分の読取動作が完了したときの読取長と搬送量とを、概ね一致させることができ、寸法の不整合を抑えることができる。
【００２９】
【００３０】
また、本発明によれば、作動制御手段を上述したように構成しているので、読取長と搬送量との誤差がわずかであるときには、オフセット時間により、読取再開位置を読取中断位置に合わせるようにして、読取動作を再開することができて、読取画像の画質を良好にすることができると共に、必要に応じて、第二基準位置設定手段を作動させて、効率的に、読取長と搬送量との誤差を解消することができ、読取対象の寸法と、読取対象に対応した読取画像データの寸法との間に不整合が生じるのを回避することができる。
【発明を実施するための最良の形態】
【００３１】
以下に本発明の実施例について、図面と共に説明する。
（１）画像読取装置１の全体構成
図１は、本発明が適用された画像読取装置１の電気的構成を表すブロック図である。本実施例の画像読取装置１は、各種演算処理を実行するＣＰＵ１１、各種プログラムやデータ等を記憶するＲＯＭ１２、及び、ＣＰＵ１１による演算時に作業領域として使用されるＲＡＭ１３を備え、ＣＰＵ１１にて各種プログラムを実行して、装置全体を統括制御し、スキャナ機能等を実現する。
【００３２】
この画像読取装置１は、更に、ＣＣＤラインセンサ２０と、ＣＣＤラインセンサ２０を制御する読取制御部２１と、モータＭＴ１，ＭＴ２を制御する駆動制御部１７と、エンコーダＥＮ１，ＥＮ２からのパルス信号に基づく処理を実行するエンコーダ処理部１５と、外部インタフェース２３と、を備え、外部インタフェース２３を介して、外部機器と通信可能な構成にされている。外部インタフェース２３としては、例えば、ＵＳＢインタフェースや、ＬＡＮインタフェースを挙げることができる。
【００３３】
ＣＣＤラインセンサ２０は、ライン状に配列された受光素子（フォトダイオード）群２０ａ及びＣＣＤアナログシフトレジスタ２０ｂを備えるものであり（図７参照）、読取制御部２１に制御されて、ラインスタート信号が入力される度、受光素子にて蓄積された画素情報を表す信号電荷を、ＣＣＤアナログシフトレジスタ２０ｂに入力し、次のラインスタート信号が入力されるまでの期間に、このＣＣＤアナログシフトレジスタ２０ｂの出力端から、転送クロック信号に従って、順次画素信号を出力する。
【００３４】
読取制御部２１は、このＣＣＤラインセンサ２０にラインスタート信号及び転送クロック信号を入力して、ＣＣＤラインセンサ２０を制御し、ＣＣＤラインセンサ２０に、読取対象である原稿の画像情報を読み取らせ、ＣＣＤラインセンサ２０から出力される読取結果としての画素信号を、ディジタルの画素データに変換する。そして、各画素データを配列してライン画像データを生成し、これをＲＡＭ１３に書き込む。
【００３５】
このＣＣＤラインセンサ２０は、自動搬送読取機能の作動時、所定の読取位置に固定され、読取制御部２１の制御を受けて、ＡＤＦ装置１５０（図２参照）の動作により読取位置を通過する原稿を読み取る。また、ＣＣＤラインセンサ２０は、静止原稿読取機能の作動時、駆動制御部１７が制御する読取モータＭＴ１の回転力を、キャリッジを介して受けて、原稿が載置されたプラテン１０２Ａ下で、画像読取方向に移動し、その移動と共に、原稿の画像情報を、ライン毎に読み取る。
【００３６】
詳述すると、画像読取装置１の筐体には、図２に示すように、静止原稿読取機能用の画像読取窓（以下、静止読取窓という。）１０２、及び、自動搬送読取機能用の画像読取窓（以下、自動読取窓という。）１０３が設けられている。これら両読取窓１０２，１０３は、ガラスやアクリル等の透明なプラテン１０２Ａ、１０３Ａにて閉塞されている。図２は、本実施例の画像読取装置１の機械的構成を示す断面図である。
【００３７】
この画像読取装置１においては、更に、装置本体１０１の上面側に、両読取窓１０２，１０３を覆う原稿カバー１０４が揺動可能に組み付けられており、静止読取窓１０２にて原稿読取が行われる場合には、使用者により、この原稿カバー１０４が手動操作にて上方側に開かれ、読取対象の原稿が静止読取窓１０２に載置される。
【００３８】
一方、装置本体１０１の内部には、両読取窓１０２、１０３の直下において、原稿に照射されて反射した光を受光し、その受光した光に基づいて画素信号を生成する上述のＣＣＤラインセンサ２０が、移動可能に設けられており、このＣＣＤラインセンサ２０は、長手方向（換言すると受光素子配列方向）が、ＣＣＤラインセンサ２０の移動方向とは、垂直な方向に延びている。
【００３９】
具体的に、このＣＣＤラインセンサ２０は、キャリッジ１０６を介して装置本体１０１の長手方向（図２の左右方向）に移動可能に組み付けられており、自動搬送読取機能の作動時、自動読取窓１０３の直下に停止配置される。一方、静止原稿読取機能の作動時には、静止読取窓１０２の直下で、駆動制御部１７に制御されて、定速移動する。
【００４０】
尚、本実施例では、キャリッジ１０６が、駆動プーリ１０７及び従動プーリ１０８に掛けられたベルト１０９に連結されており、このベルト１０９には、ギヤを介して、ＤＣモータで構成される読取モータＭＴ１が接続されている。
【００４１】
即ち、静止原稿読取機能の作動時、ＣＣＤラインセンサ２０は、読取モータＭＴ１の回転力をベルト１０９を介して受け、ベルト１０９と平行に設置されたガイド軸１１１に案内されながら、装置本体１０１の長手方向を真っ直ぐ移動する。図３は、ＣＣＤラインセンサ２０の移動態様を表す説明図である。
【００４２】
読取モータＭＴ１の回転軸には、読取エンコーダＥＮ１が設けられており、読取エンコーダＥＮ１は、読取モータＭＴ１が所定角度回転する度に、パルス信号（Ａ相信号、Ｂ相信号）を出力するロータリーエンコーダとして構成されている。画像読取装置１は、読取モータＭＴ１が所定角度回転すると、ＣＣＤラインセンサ２０が、所定距離を移動する構成にされており、本実施例では、この読取エンコーダＥＮ１のパルス信号に基づき、エンコーダ処理部１５にて、ＣＣＤラインセンサ２０の位置や移動速度を検出し、更に、Ａ相信号及びＢ相信号に基づき、モータの回転方向を検出する。
【００４３】
そして、画像読取装置１は、この検出結果に基づき、駆動制御部１７にて、読取モータＭＴ１を制御し、ＣＣＤラインセンサ２０を定速で、ガイド軸１１１に沿って移動させつつ、読取制御部２１にて、ＣＣＤラインセンサ２０を制御し、静止画像読取機能を実現する。
【００４４】
この他、読取対象の原稿を自動読取窓１０３に搬送するＡＤＦ装置１５０は、原稿カバー１０４における自動読取窓１０３に対応する部位に、設けられており、自動搬送読取機能の作動時において、ユーザにより原稿トレイ１６５に積層載置された原稿を、分離して、読取位置である自動読取窓１０３に、搬送する。
【００４５】
このＡＤＦ装置１５０は、積層された原稿を１枚ずつ分離する分離機構として、最上層に載置された原稿に搬送力を付与する分離ローラ１５３と、分離ローラ１５３に対して対向配置されて分離ローラ１５３の反対側から原稿に接触し所定の搬送抵抗を付与する分離パッド１５４と、原稿トレイ１６５に積層された原稿を吸引するようにして分離ローラ１５３に原稿を送り出す吸入ローラ１５５と、を備える。
【００４６】
また、ＡＤＦ装置１５０は、分離機構にて分離された原稿を自動読取窓１０３に搬送する搬送機構として、分離機構から分離搬送されてきた原稿の搬送方向を自動読取窓１０３側に向けて転向させながら搬送力を付与する給紙ローラ１５９と、原稿を給紙ローラ１５９に押し付ける一対のピンチローラ１６０と、原稿押さえ１６１と、排紙ローラ１６２と、原稿センサアクチュエータ１６４と、を備える。
【００４７】
尚、ＡＤＦ装置１５０を構成する各ローラは、読取搬送モータＭＴ２の回転力を受けて回転し、原稿を、原稿トレイ１６５から排紙トレイ１６６へと搬送する構成にされており、画像読取装置１では、読取搬送モータＭＴ２が所定角度回転すると、読取対象の原稿が、所定距離移動する。
【００４８】
原稿押さえ１６１は、搬送されてきた原稿を自動読取窓１０３側に押さえるものである。ＣＣＤラインセンサ２０は、自動搬送読取機能の作動時、この原稿押さえ１６１の下方に配置された状態で、この地点を通過する原稿を読み取る。
【００４９】
また、原稿センサアクチュエータ１６４は、原稿押さえ１６１の上流に配置され、原稿が通過したか否かを検出するものである。即ち、本実施例では、原稿センサアクチュエータ１６４からのオン／オフ信号と、ＤＣモータで構成される読取搬送モータＭＴ２の回転軸に設置された読取搬送エンコーダＥＮ２からのパルス信号とに基づき、エンコーダ処理部１５にて、原稿の搬送位置を検出する。尚、読取搬送エンコーダＥＮ２は、読取搬送モータＭＴ２が所定角度回転する度に、パルス信号（Ａ相信号、Ｂ相信号）を出力するロータリーエンコーダである。
【００５０】
そして、画像読取装置１は、この検出結果に基づき、駆動制御部１７にて、原稿の搬送を制御し、原稿を読取位置へ一定速度で搬送すると共に、読取制御部２１にて、ＣＣＤラインセンサ２０を制御し、自動搬送読取機能を実現する。
【００５１】
尚、静止原稿読取機能は、原稿トレイ１６５に原稿が未載置の状態で、当該画像読取装置１に設けられた読取キー（図示せず）が押下操作されたり、外部インタフェース２３を通じて読取指令が入力されると、ＣＰＵ１１が実行するプログラムにより作動を開始する。この作動により、画像読取装置１では、静止読取窓１０２に載置されている原稿が読み取られる。
【００５２】
一方、自動搬送読取機能は、原稿トレイ１６５に原稿が載置された状態で、読取キーが押下操作されたり、外部インタフェース２３を通じて読取指令が入力されると、ＣＰＵ１１が実行するプログラムにより作動を開始する。画像読取装置１では、原稿トレイ１６５に載置された原稿が空になるまで、この自動搬送読取機能が繰返し動作し、原稿トレイ１６５に載置されている各原稿が、順次読み取られる。尚、原稿トレイ１６５に原稿が未載置であるか否かは、原稿トレイ１６５に設けられた図示しないセンサの検出信号に基づき、判断することができる。
（２）エンコーダ処理部１５及び駆動制御部１７の詳細構成
続いて、エンコーダ処理部１５及び駆動制御部１７の詳細構成について、図４〜図６を用いて説明する。図４は、エンコーダ処理部１５及び駆動制御部１７の構成を表すブロック図である。
（２．１）エンコーダ処理部１５の構成
本実施例のエンコーダ処理部１５は、エンコーダＥＮ１，ＥＮ２の夫々に対して、エンコーダエッジ検出部３１及び位置カウンタ３３及び周期カウンタ３５の組を有し、これらの組により、エンコーダＥＮ１，ＥＮ２が設置されたモータＭＴ１，ＭＴ２の回転量、結果的には、搬送対象の移動量を検出する。
【００５３】
具体的に、エンコーダ処理部１５のエンコーダエッジ検出部３１は、対応するエンコーダＥＮ１，ＥＮ２から入力されるパルス信号の立ち上がりエッジ（例えば、Ａ相信号の立ち上がりエッジ）を検出し、このエッジの検出毎に、エッジ検出信号を出力する構成にされている。このエッジ検出信号は、対応する組の位置カウンタ３３及び周期カウンタ３５に入力される。
【００５４】
尚、読取エンコーダＥＮ１からのパルス信号（エンコーダ信号）が入力される読取エンコーダＥＮ１用のエンコーダエッジ検出部３１から出力されるエッジ検出信号は、読取エンコーダＥＮ１用の位置カウンタ３３及び周期カウンタ３５に入力されると共に、静止原稿読取機能の作動時、読取制御部２１が備える駆動停止指令生成部４９、時間計測部５５、及び、強制同期指令生成部５９に入力される。
【００５５】
また、読取エンコーダＥＮ１用の位置カウンタ３３から出力される値ｅｎｃ＿ｃｎｔ及び読取エンコーダＥＮ１用の周期カウンタ３５から出力される値ｅｎｃ＿ｃｙｃは、駆動制御部１７に入力される。また、読取エンコーダＥＮ１用の位置カウンタ３３から出力される値ｅｎｃ＿ｃｎｔは、静止原稿読取機能の作動時、読取制御部２１が備える搬送量算出部５１、及び、強制同期指令生成部５９にも入力される。
【００５６】
この他、読取搬送エンコーダＥＮ２からのパルス信号が入力される読取搬送エンコーダＥＮ２用のエンコーダエッジ検出部３１から出力されるエッジ検出信号は、読取搬送エンコーダＥＮ２用の位置カウンタ３３及び周期カウンタ３５に入力されると共に、自動搬送読取機能の作動時、読取制御部２１が備える駆動停止指令生成部４９、時間計測部５５、及び、強制同期指令生成部５９に入力される。
【００５７】
また、読取搬送エンコーダＥＮ２用の位置カウンタ３３から出力される値ｅｎｃ＿ｃｎｔ及び読取搬送エンコーダＥＮ２用の周期カウンタ３５から出力される値ｅｎｃ＿ｃｙｃは、駆動制御部１７に入力される。また、読取搬送エンコーダＥＮ２用の位置カウンタ３３から出力される値ｅｎｃ＿ｃｎｔは、自動搬送読取機能の作動時、読取制御部２１が備える搬送量算出部５１、及び、強制同期指令生成部５９にも入力される。
【００５８】
尚、周期カウンタ３５は、画像読取装置１がオンされると、図５（ｂ）に示すように、対応するエンコーダエッジ検出部３１からエッジ検出信号が入力される度、そのエッジ検出信号の入力時間間隔（今回エッジ検出信号が入力された時点と前回エッジ検出信号が入力された時点との時間間隔）を検出して、検出した入力時間間隔を、上記値ｅｎｃ＿ｃｙｃとして、出力する構成にされている。このような動作により、読取エンコーダＥＮ１用の周期カウンタ３５は、読取モータＭＴ１が一定角度回転するのに要した時間、結果的には、ＣＣＤラインセンサ２０の単位距離当たりの移動時間を検出する。同様に、読取搬送エンコーダＥＮ２用の周期カウンタ３５は、原稿の単位距離当たりの移動時間を検出する。尚、上記移動時間の逆数は、速度を表し、駆動制御部１７では、この速度情報を用いて、制御対象のモータを制御する。
【００５９】
また、位置カウンタ３３は、画像読取装置１がオンされると、図５（ａ）に示す処理を開始し、以後、継続的に、値ｅｎｃ＿ｃｎｔを更新する。図５（ａ）は、位置カウンタ３３が実行する処理を表すフローチャートである。ここでは、読取エンコーダＥＮ１用の位置カウンタ３３が実行する処理について、図５（ａ）を用いて説明するが、読取制御エンコーダＥＮ２用の位置カウンタ３３においても、読取エンコーダＥＮ１用の位置カウンタ３３と、同様の処理が行われる。
【００６０】
位置カウンタ３３は、図５（ａ）に示す処理を開始すると、まず、搬送対象（ＣＣＤラインセンサ２０）が所定の原点位置（ホームポジション）に配置されていることを条件として、変数ｅｎｃ＿ｃｎｔをゼロにリセットし（Ｓ１１０）、その後、エッジ検出信号が、読取エンコーダＥＮ１用のエンコーダエッジ検出部３１より入力されるまで待機する（Ｓ１２０）。そして、エッジ検出信号が入力されると、対応する読取モータＭＴ１の回転方向を判断し（Ｓ１３０）、読取モータＭＴ１の回転方向が順方向である場合、変数ｅｎｃ＿ｃｎｔを１加算し（Ｓ１４０）、その後、Ｓ１２０に移行する。一方、読取モータＭＴ１の回転方向が逆方向である場合には、変数ｅｎｃ＿ｃｎｔを１減算し（Ｓ１５０）、Ｓ１２０に移行する。尚、エンコーダ処理部１５には、各エンコーダについて、エンコーダから入力されるＡ相信号及びＢ相信号に基づき、対応するモータの回転方向を識別する機能が設けられているものとする。
【００６１】
このようにして、位置カウンタ３３は、モータが順方向に回転している場合、エッジ検出信号が入力される度に、変数ｅｎｃ＿ｃｎｔをカウントアップし、モータが逆方向に回転している場合、エッジ検出信号が入力される度に、変数ｅｎｃ＿ｃｎｔをカウントダウンする。これにより読取エンコーダＥＮ１用の位置カウンタ３３では、ＣＣＤラインセンサ２０の位置が検出され、読取搬送エンコーダＥＮ２用の位置カウンタ３３では、原稿の搬送位置が検出される。
（２．２）駆動制御部１７の詳細構成
続いて、駆動制御部１７の構成について説明する。駆動制御部１７は、図４に示すように、読取モータＭＴ１及び読取搬送モータＭＴ２を、駆動回路３７を介して制御するモータ制御部３９を備える。モータ制御部３９は、制御対象のモータに取り付けられたエンコーダに対応する位置カウンタ３３及び周期カウンタ３５の出力ｅｎｃ＿ｃｎｔ，ｅｎｃ＿ｃｙｃに基づき、制御対象のモータＭＴ１，ＭＴ２を制御する。
【００６２】
詳述すると、モータ制御部３９は、エンコーダ処理部１５が有する読取エンコーダＥＮ１用の位置カウンタ３３及び周期カウンタ３５からの値ｅｎｃ＿ｃｎｔ，ｅｎｃ＿ｃｙｃに基づいて、読取モータＭＴ１を制御する共に、読取搬送エンコーダＥＮ２用の位置カウンタ３３及び周期カウンタ３５からの値ｅｎｃ＿ｃｎｔ，ｅｎｃ＿ｃｙｃに基づいて、読取搬送モータＭＴ２を制御する。
【００６３】
具体的に、このモータ制御部３９は、読取機能が作動すると、ＣＰＵ１１からの指令を受け、制御対象として読取モータＭＴ１及び読取搬送モータＭＴ２のいずれか一方を選択し、選択した制御対象を制御するために、図６に示す処理の実行を開始する。尚、静止原稿読取機能の作動時には、制御対象として読取モータＭＴ１を選択し、自動原稿読取機能の作動時には、制御対象として読取搬送モータＭＴ２を選択する。
【００６４】
その他、モータ制御部３９は、読取対象の読取終了前に、モータ停止指令信号としてのｍｔｓｔｏｐ信号（詳細後述）に基づき、図６に示す処理を終了した場合、ＣＰＵ１１から読取再開指令が入力されたときに限って、再び、図６に示す処理の実行を開始する。
【００６５】
図６は、モータ制御部３９が実行する処理を表すフローチャートである。
モータ制御部３９は、図６に示す処理を開始すると、モータ駆動設定を行い、モータ回転方向を順方向（画像読取方向）に設定する（Ｓ３１０）。また、Ｓ３１０では、読取解像度に応じて、モータの目標回転速度を設定する。
【００６６】
また、この処理を終えると、モータ制御部３９は、先駆けてＳ３１０で行った駆動設定の内容に従い、制御対象のモータを制御する（Ｓ３２０）。具体的に、Ｓ３２０では、設定された目標回転速度周辺まで、モータの回転を加速させ、その後、搬送負荷によらず、モータの回転速度が目標回転速度となるように、モータの制御を行う。本実施例では、このようにして、搬送対象を一定速度で画像読取方向に移動させる。
【００６７】
また、当該制御の実行中には、読取終了信号（詳細後述）が入力されているか否かを判断し（Ｓ３３０）、読取終了信号が入力されていない場合には（Ｓ３３０でＮｏ）、駆動停止指令生成部４９から入力されるｍｔｓｔｏｐ信号が値１であるか否かを判断する（Ｓ３４０）。そして、読取終了信号が入力されておらず（Ｓ３３０でＮｏ）、ｍｔｓｔｏｐ信号が値１でない場合には（Ｓ３４０でＮｏ）、Ｓ３３０，Ｓ３４０での判断を行いながら、モータの制御を継続的に実行する。
【００６８】
一方、ｍｔｓｔｏｐ信号が値１に切り替わると、制御対象のモータを減速・停止させる処理を行う（Ｓ３５０）。そして、モータが停止した後には、モータ駆動設定を行い、モータ回転方向を画像読取方向とは逆方向に設定すると共に、モータの目標回転速度及び回転時間を、予め定められた所定値に設定する（Ｓ３６０）。尚、Ｓ３６０では、モータの目標回転速度及び回転時間として、「Ｓ３５０でモータが減速・停止するまでに要する回転量の最大値に、Ｓ３２０でモータを目標回転速度に収束させるのに必要十分なモータ回転量を加算した量を、モータが回転する」のに必要な値が設定される。この所定値は、本実施例において、設計段階で予め定められているものとする。
【００６９】
また、この処理を終えると、モータ制御部３９は、モータを、駆動設定時の設定内容に従い、所定時間、逆方向に回転させる（Ｓ３７０）。この動作によって、モータの回転力により搬送される搬送対象（ＣＣＤラインセンサ２０又は読取対象の原稿）は、ｍｔｓｔｏｐ信号が値１に切り替わった時点にいた地点よりも、加速に十分な前の地点（詳細には、搬送対象が、後述する読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔに到達するまでに定速走行可能な地点）に、後退させられる。そして、Ｓ３７０におけるモータの回転・停止が完了すると、一旦休止する。
【００７０】
一方、モータ制御部３９は、読取終了信号が入力されると（Ｓ３３０でＹｅｓ）、作動中の読取機能が静止原稿読取機能であるか否かを判断する（Ｓ３８０）。そして、静止原稿読取機能である場合には（Ｓ３８０でＹｅｓ）、制御対象のモータを減速・停止させる処理を行い（Ｓ３９０）、モータが停止した後には、モータ駆動設定を行って、モータ回転方向を画像読取方向とは逆方向に設定する（Ｓ４００）。
【００７１】
また、この処理を終えると、モータ制御部３９は、制御対象のモータ（読取モータＭＴ１）を駆動して、搬送対象（ＣＣＤラインセンサ２０）を、ホームポジションまで搬送する（Ｓ４１０）。そして、ＣＣＤラインセンサ２０をホームポジションまで搬送すると、一旦休止する。尚、ＣＣＤラインセンサ２０のホームポジションは、本実施例において、自動原稿読取機能作動時のＣＣＤラインセンサ２０の固定位置に設定されている。
【００７２】
その他、作動中の読取機能が自動搬送読取機能である場合（Ｓ３８０でＮｏ）、モータ制御部３９は、制御対象のモータ（読取搬送モータＭＴ２）を、搬送中の原稿が排紙トレイ１６６に排出されるまで駆動し、原稿の排出が終了した時点で、モータの回転を止めて（Ｓ４２０）、一旦休止する。
（３）読取制御部２１の詳細構成
続いて、読取制御部２１の詳細構成について説明する。図７は、読取制御部２１の詳細構成を表すブロック図である。
【００７３】
図７に示すように、読取制御部２１は、読取フロントエンド４１、画データ処理部４３、ローカルＲＡＭ４５、駆動停止指令生成部４９、搬送量算出部５１、読取長算出部５３、時間計測部５５、再開位置設定部５７、及び、強制同期指令生成部５９を構成要素として備え、これら各部を用いて、本発明特有の読取制御を実現する。以下、各部の詳細について、個別に説明する。
（３．１）読取フロントエンド４１の詳細
本実施例の読取制御部２１が備える読取フロントエンド４１は、ＣＣＤラインセンサ２０に接続され、ＣＣＤラインセンサ２０に対する制御信号を入力すると共に、ＣＣＤラインセンサ２０から入力される読取結果としての画素信号を受け付けて、処理するものである。
【００７４】
この読取フロントエンド４１は、ラインスタートトリガ信号生成部４１ａ、ラインスタート信号生成部４１ｂ、及び、転送クロック信号生成部４１ｃを備え、ラインスタートトリガ信号生成部４１ａにて周期的にラインスタートトリガ（ｌ＿ｓｔａｒｔ＿ｔｒｇ）信号を生成し、このラインスタートトリガ信号に基づいて、ＣＣＤラインセンサ２０にライン画像の読取タイミングを指定するためのラインスタート信号を入力する。
【００７５】
ラインスタートトリガ信号は、ラインスタート信号の出力タイミングを規定する信号であり、ＣＣＤラインセンサ２０に入力されるべきラインスタート信号の入力周期で、ラインスタートトリガ信号生成部４１ａにより生成され、ラインスタート信号生成部４１ｂに入力される。
【００７６】
尚、ラインスタートトリガ信号生成部４１ａは、読取機能が作動すると、強制同期指令生成部５９からの同期指令を受けるまで待機し、強制同期指令生成部５９からの同期指令を受けると、その指令入力のタイミングで、ラインスタートトリガ信号を出力し、以後、周期的に、ラインスタートトリガ信号を出力する（図２０（ａ）参照）。これにより、本実施例では、所定の読取開始位置ｉｎｉｔ＿ｐｏｓから、ＣＣＤラインセンサ２０での読取動作が開始される。
【００７７】
また、ラインスタート信号生成部４１ｂは、ラインスタートトリガ信号の入力タイミングで、ＣＣＤラインセンサ２０に適合する規定のパルス幅のラインスタート信号を、ＣＣＤラインセンサ２０に入力するものである。このラインスタート信号が入力されるとＣＣＤラインセンサ２０では、受光素子に蓄積された信号電荷がＣＣＤアナログシフトレジスタ２０ｂに入力され、ラインスタート信号の当該入力以前に読み取った画像情報がＣＣＤアナログシフトレジスタ２０ｂに記憶保持される。また、このタイミングで、受光素子では、信号電荷がリセットされ、光電効果を利用した新たな読取動作が行われる。
【００７８】
また、転送クロック信号生成部４１ｃは、ＣＣＤアナログシフトレジスタ２０ｂに画素信号を出力させるための転送クロック信号を生成するものであり、この転送クロック信号は、ＣＣＤラインセンサ２０に入力される。
【００７９】
この転送クロック信号の入力により、ＣＣＤアナログシフトレジスタ２０ｂに記憶された１ライン分の画像情報は、画素信号として、次のラインスタート信号が入力されるまでの期間に、ＣＣＤアナログシフトレジスタ２０ｂから一通り出力される。
【００８０】
また、ＣＣＤアナログシフトレジスタ２０ｂから読取フロントエンド４１に入力される画素信号は、読取フロントエンド４１が有するＡ／Ｄ（アナログ／ディジタル）変換器４１ｄ（図８参照）にてディジタルの画素データに変換され、各画素データは、一ライン分、シリアルに配列されて、ライン画像データとして、画データ処理部４３に転送される。
【００８１】
尚、このように構成された読取フロントエンド４１は、ラインスタートトリガ信号生成部４１ａから出力されるラインスタートトリガ信号を、搬送量算出部５１及び読取長算出部５３及び時間計測部５５にも入力する。
【００８２】
また、読取フロントエンド４１は、停止指令信号としてのｓｔｏｐ＿ｓｉｇ信号が値０から値１に切り替わった時点で、ラインスタートトリガ信号及びラインスタート信号の出力を休止すると共に、この時点でＣＣＤアナログシフトレジスタ２０ｂに記憶保持されている画像情報が、画素信号として一通り出力されるまで、転送クロック信号の出力を継続し、その後、画素信号が一通り出力されると転送クロック信号の出力を休止する。即ち、読取フロントエンド４１は、ｓｔｏｐ＿ｓｉｇ信号が値０から値１に遷移すると、その時点でＣＣＤアナログシフトレジスタ２０ｂに画像情報が記憶保持されているラインのライン画像データまでを、画データ処理部４３に転送し、このラインを、読取完了ラインとする。
【００８３】
その後、読取フロントエンド４１は、強制同期指令生成部５９から上記同期指令が入力されるまで待機し、同期指令が入力されると、その時点から、再び、ラインスタートトリガ信号、ラインスタート信号及び転送クロック信号の出力を再開する。
【００８４】
即ち、ラインスタートトリガ信号生成部４１ａは、読取対象の読取終了前に、ラインスタートトリガ信号の出力を休止すると、強制同期指令生成部５９からの同期指令待ち状態に遷移して、強制同期指令生成部５９からの同期指令を受けるまで待機する。そして、強制同期指令生成部５９からの同期指令を受けると、その指令入力のタイミングで、ラインスタートトリガ信号の出力を再開し、以後、周期的に、ラインスタートトリガ信号を出力する（図２０（ａ）（ｂ）参照）。
（３．２）画データ処理部４３の詳細
続いて、画データ処理部４３の詳細について、図７〜図１０を用いて説明する。
【００８５】
画データ処理部４３は、読取フロントエンド４１から入力されるライン画像データを、順次、ローカルＲＡＭ４５に設けられたＦＩＦＯメモリとしてのバッファ４５ａに書き込むと共に、バッファ４５ａに蓄積された各ライン画像データに対し、シェーディング補正、ガンマ補正等の画像処理を施し、画像処理後の各ライン画像データを、メモリコントローラ６３を通じて、ＲＡＭ１３に書き込むデータ処理機能を有する。
【００８６】
また、この画データ処理部４３は、バッファ４５ａの空き容量に基づき、読取フロントエンド４１からのライン画像データの転送を一時停止させるための停止指令信号（ｓｔｏｐ＿ｓｉｇ信号）を出力すると共に、ライン画像データの転送を再開させるための再開指令信号（ｒｅｓｔａｒｔ＿ｓｉｇ信号）を出力する停止再開制御機能を有する。
【００８７】
図８は、画データ処理部４３で実現される上記データ処理機能に係る説明図である。
画データ処理部４３は、データ処理機能を実現するための構成として、データ書込部４３ａ、画像処理部４３ｂ、及び、データ転送部４３ｃを備え、読取フロントエンド４１から、１ライン分の画像データとしてのライン画像データが入力される度、データ書込部４３ａにて、このライン画像データを、バッファ４５ａに書き込む。
【００８８】
また、画データ処理部４３は、画像処理部４３ｂにて、バッファ４５ａの読出位置に記録されたライン画像データを読出し、このライン画像データに対してシェーディング補正やガンマ補正等の画像処理を施し、この画像処理後のライン画像データを、ローカルＲＡＭ４５内の処理データ記憶部４５ｂに一時保存する。また、画データ処理部４３は、処理データ記憶部４５ｂに蓄積された各ライン画像データを、データ転送部４３ｃを通じて、ＲＡＭ１３に書き込み、読取画像を表す画像データを、ＲＡＭ１３上に生成する。
【００８９】
また、図７に示す画データ処理部４３内の機能ブロックは、上記停止再開制御機能に係る機能ブロックを示したものである。
図７に示すように、画データ処理部４３は、停止指令信号としてのｓｔｏｐ＿ｓｉｇ信号を出力する停止信号生成部４３ｄと、再開指令信号としてのｒｅｓｔａｒｔ＿ｓｉｇ信号を出力する再開信号生成部４３ｅと、を備える。
【００９０】
停止信号生成部４３ｄは、具体的に、図９に示す処理を実行して、出力するｓｔｏｐ＿ｓｉｇ信号の状態を切り換える。図９は、読取機能の作動時に、停止信号生成部４３ｄが実行する処理を表すフローチャートである。
【００９１】
停止信号生成部４３ｄは、図９に示す処理を開始すると、ｓｔｏｐ＿ｓｉｇ信号を値ゼロに設定し（Ｓ５１０）、その後、読取フロントエンド４１から入力された画像データのライン数に基づき、最終ラインまでのライン画像データの取得が完了したか否かを判断する（Ｓ５２０）。そして、最終ラインまでのライン画像データの取得が完了している場合には（Ｓ５２０でＹｅｓ）、読取終了信号を出力して、読取終了の旨を各部に通知した後（Ｓ５６０）、図９に示す処理を終了する。
【００９２】
一方、最終ラインまでのライン画像データの取得が完了していない場合には（Ｓ５２０でＮｏ）、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、予め定められた閾値Ｂ＿ｌｉｍ以下であるか否かを判断する（Ｓ５３０）。そして、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが閾値Ｂ＿ｌｉｍより大きい場合には（Ｓ５３０でＮｏ）、ライン画像データの書込に十分な空き容量があるとして、Ｓ５１０に移行し、ｓｔｏｐ＿ｓｉｇ信号を値ゼロに設定する。
【００９３】
これに対し、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、閾値Ｂ＿ｌｉｍ以下である場合（Ｓ５３０でＹｅｓ）、停止信号生成部４３ｄは、今後書き込む必要のある最終ラインまでのライン画像データの総量ｒｅｍ＿ｌｉｎがバッファ４５ａの空き容量ｒｅｍ＿ｂｕｆ以下であるか否かを判断し（Ｓ５４０）、総量ｒｅｍ＿ｌｉｎが、空き容量ｒｅｍ＿ｂｕｆ以下である場合には（Ｓ５４０でＹｅｓ）、読取終了までにバッファ４５ａが一杯になることがないとして、Ｓ５１０に移行し、ｓｔｏｐ＿ｓｉｇ信号を値ゼロに設定し、読取フロントエンド４１からのライン画像データの出力が停止しないように制御する。
【００９４】
一方、総量ｒｅｍ＿ｌｉｎが、空き容量ｒｅｍ＿ｂｕｆよりも大きい場合（Ｓ５４０でＮｏ）、停止信号生成部４３ｄは、ｓｔｏｐ＿ｓｉｇ信号を値ゼロから値１に設定変更し、読取フロントエンド４１からのライン画像データの出力が停止するようにする（Ｓ５５０）。その後、Ｓ５２０に移行する。尚、このようにして状態が切り替えられるｓｔｏｐ＿ｓｉｇ信号は、読取フロントエンド４１、駆動停止指令生成部４９、及び、読取長算出部５３、再開位置設定部５７に入力される。
【００９５】
この他、再開信号生成部４３ｅは、図１０に示す処理を実行して、ｒｅｓｔａｒｔ＿ｓｉｇ信号の状態を切り替える。図１０は、読取機能の作動時に、再開信号生成部４３ｅが実行する処理を表すフローチャートである。
【００９６】
再開信号生成部４３ｅは、図１０に示す処理を開始すると、まずｒｅｓｔａｒｔ＿ｓｉｇ信号を値ゼロに設定し（Ｓ６１０）、その後、読取フロントエンド４１から入力された画像データのライン数に基づき、最終ラインまでのライン画像データの取得が完了したか否かを判断する（Ｓ６２０）。そして、最終ラインまでのライン画像データの取得が完了している場合には（Ｓ６２０でＹｅｓ）、休止する。
【００９７】
一方、最終ラインまでのライン画像データの取得が完了していない場合には（Ｓ６２０でＮｏ）、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、予め定められた閾値Ｂ＿ｔｈ以上であるか否かを判断する（Ｓ６３０）。そして、空き容量ｒｅｍ＿ｂｕｆが、閾値Ｂ＿ｔｈ以上である場合には（Ｓ６３０でＹｅｓ）、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが再開に十分な量あるとして、ｒｅｓｔａｒｔ＿ｓｉｇ信号を値１に設定変更する（Ｓ６５０）。その後、Ｓ６２０に移行する。尚、閾値Ｂ＿ｔｈは、閾値Ｂ＿ｌｉｍよりも大きい値に設定されているものとする（Ｂ＿ｔｈ＞Ｂ＿ｌｉｍ）。
【００９８】
また、再開信号生成部４３ｅは、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、閾値Ｂ＿ｔｈ未満である場合（Ｓ６３０でＮｏ）、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、今後書き込む必要のある最終ラインまでのライン画像データの総量ｒｅｍ＿ｌｉｎ以上であるか否かを判断し（Ｓ６４０）、空き容量ｒｅｍ＿ｂｕｆが総量ｒｅｍ＿ｌｉｎ以上である場合には（Ｓ６４０でＹｅｓ）、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが再開に十分な量あるとして、ｒｅｓｔａｒｔ＿ｓｉｇ信号を値ゼロから値１に設定変更する（Ｓ６５０）。その後、Ｓ６２０に移行する。
【００９９】
これに対し、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが、閾値Ｂ＿ｔｈ以上でもなく、総量ｒｅｍ＿ｌｉｎ以上でもない場合、再開信号生成部４３ｅは、バッファ４５ａの空き容量ｒｅｍ＿ｂｕｆが再開に十分な量ないとして、Ｓ６１０に移行し、ｒｅｓｔａｒｔ＿ｓｉｇ信号を値ゼロに設定する。その後、Ｓ６２０に移行する。
【０１００】
尚、このようにして状態が切り替えられるｒｅｓｔａｒｔ＿ｓｉｇ信号は、ＣＰＵ１１に入力される。また、ＣＰＵ１１は、常時ｒｅｓｔａｒｔ＿ｓｉｇ信号を監視しており、ｒｅｓｔａｒｔ＿ｓｉｇ信号が値０から１に切り替わると、モータ制御部３９に対して読取再開指令を入力し、モータ制御部３９に図６に示す処理をＳ３１０から実行させると共に、読取長算出部５３及び再開位置設定部５７及び強制同期指令生成部５９に対して読取再開指令を入力する。
（３．３）駆動停止指令生成部４９の詳細
続いて、駆動停止指令生成部４９の詳細について、図１１を用いて説明する。図１１は、駆動停止指令生成部４９が実行する処理を表すフローチャートである。
【０１０１】
駆動停止指令生成部４９は、モータ停止指令信号としてのｍｔｓｔｏｐ信号をモータ制御部３９に出力するものであり、読取機能の作動時に、図１１に示す処理を開始して、画データ処理部４３から入力されるｓｔｏｐ＿ｓｉｇ信号に基づき、ｍｔｓｔｏｐ信号の状態を切り替える。
【０１０２】
駆動停止指令生成部４９は、この処理を開始すると、ｍｔｓｔｏｐ信号を値ゼロに設定すると共に（Ｓ８１０）、画データ処理部４３から読取終了信号が入力されているか否かを判断することにより、読取対象の読取（原稿１枚分の読取）が終了しているか否かを判断する（Ｓ８２０）。そして、読取が終了している場合には（Ｓ８２０でＹｅｓ）、再度、ｍｔｓｔｏｐ信号を値ゼロに設定した後（Ｓ８３０）、休止する。
【０１０３】
一方、読取が終了していない場合（Ｓ８２０でＮｏ）、駆動停止指令生成部４９は、読取が終了するか、画データ処理部４３から入力されるｓｔｏｐ＿ｓｉｇ信号が値１となるまで、ｍｔｓｔｏｐ信号を値ゼロに維持する。そして、ｓｔｏｐ＿ｓｉｇ信号が値１に遷移すると（Ｓ８４０でＹｅｓ）、その後、エッジ検出信号が入力された時点で（Ｓ８５０でＹｅｓ）、ｍｔｓｔｏｐ信号を値１に変更する（Ｓ８６０）。その後、Ｓ８２０に移行し、ｓｔｏｐ＿ｓｉｇ信号が値１である期間には、ｍｔｓｔｏｐ信号を値１に保持し、ｓｔｏｐ＿ｓｉｇ信号が値０に遷移すると、ｍｔｓｔｏｐ信号を値０に切り替える。
【０１０４】
このように、ｍｔｓｔｏｐ信号が値１に切り替わると、モータ制御部３９では、上述したように、モータの減速が開始される。図１２は、ｍｔｓｔｏｐ信号が値１に切り替わる時点前後の各種信号の状態を表すタイムチャートである。
（３．４）搬送量算出部５１の詳細
続いて、搬送量算出部５１の詳細について、図１３を用いて説明する。図１３は、搬送量算出部５１が実行する処理を表すフローチャートである。
【０１０５】
搬送量算出部５１は、再開位置設定部５７に対し、読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔを設定するために必要な、変数ｐｏｓｉｔｉｏｎ及び変数ｑ＿ｔｒａｎｓの値を出力するものである。この変数ｑ＿ｔｒａｎｓは、読取開始位置ｉｎｉｔ＿ｐｏｓから現在までの搬送対象の搬送量を表すものである。搬送量算出部５１は、読取機能の作動時に、図１３に示す処理を開始して、読取フロントエンド４１からラインスタートトリガ信号が入力される度、変数ｑ＿ｔｒａｎｓ及び変数ｐｏｓｉｔｉｏｎの値を更新する。
【０１０６】
図１３に示す処理を開始すると、搬送量算出部５１は、読取終了信号が入力されているか否かを判断し（Ｓ９１０）、読取終了信号が入力されていない場合には（Ｓ９１０でＮｏ）、ラインスタートトリガ信号が入力されているか否かを判断する（Ｓ９２０）。
【０１０７】
そして、読取終了信号、及び、ラインスタートトリガ信号のいずれもが入力されていない場合には、これらの信号のいずれかが入力されるまで待機する。
そして、ラインスタートトリガ信号が入力されると（Ｓ９２０でＹｅｓ）、その時点での位置カウンタ３３の出力値ｅｎｃ＿ｃｎｔを、変数ｐｏｓｉｔｉｏｎに設定することで、当該ラインスタートトリガ信号入力時点より前、最後にエッジ検出信号が入力された時点での搬送対象の位置を記憶保持する（Ｓ９３０）。尚、ラインスタートトリガ信号と同時にエッジ検出信号が入力されたときには、当該エッジ検出信号により更新された値ｅｎｃ＿ｃｎｔを、変数ｐｏｓｉｔｉｏｎに設定する。
【０１０８】
また、搬送量算出部５１は、更新した変数ｐｏｓｉｔｉｏｎの値を用いて、変数ｑ＿ｔｒａｎｓの値を更新する。具体的には、読取機能の作動前に、予めＣＰＵ１１の動作により、レジスタＲＧ１に設定されたパルス距離δ及びレジスタＲＧ２に設定された読取開始位置ｉｎｉｔ＿ｐｏｓと、現在の変数ｐｏｓｉｔｉｏｎの値とを、用いて、搬送量ｑ＿ｔｒａｎｓを次のように算出する（Ｓ９４０）。
【０１０９】
ｑ＿ｔｒａｎｓ＝（ｐｏｓｉｔｉｏｎ−ｉｎｉｔ＿ｐｏｓ）・δ
尚、ここでいうパルス距離δとは、エンコーダのパルス１周期分に対応する搬送対象の移動距離のことである。搬送対象が所定量Ａ移動する度に、エッジ検出信号がエンコーダエッジ検出部３１から出力される場合には、パルス距離δ＝Ａである。
【０１１０】
また、このようにして、搬送量ｑ＿ｔｒａｎｓを更新すると、搬送量算出部５１は、Ｓ９１０に移行して、ラインスタートトリガ信号が入力される度、変数ｑ＿ｔｒａｎｓ及び変数ｐｏｓｉｔｉｏｎの値を更新する。そして、読取終了信号が入力されると（Ｓ９１０でＹｅｓ）、休止する。
（３．５）読取長算出部５３の詳細
続いて、読取長算出部５３の詳細について、図１４を用いて説明する。図１４は、読取機能の作動時に、読取長算出部５３が実行する処理を表すフローチャートである。
【０１１１】
読取長算出部５３は、ｓｔｏｐ＿ｓｉｇ信号が値０から値１に遷移して読取機能に係る処理が中断する際、その中断時点までで読取が完了したライン数（読取完了ライン数）ｆｎ＿ｌｉｎｅの情報に基づき、読取長ｒｅａｄ＿ｌを算出し、この値を、再開位置設定部５７に出力するものである。尚、ここでいう読取長とは、先頭ラインから読取完了ラインまでの読取画像データの画像読取方向の長さをいう。
【０１１２】
例えば、先頭ラインを１番目として、読取完了ラインが、Ｍ番目のラインである場合には、ライン距離ｌｉｎｅ＿ｄを用いて、読取長ｒｅａｄ＿ｌは、ｒｅａｄ＿ｌ＝Ｍ・ｌｉｎｅ＿ｄで算出することができる。尚、ライン距離ｌｉｎｅ＿ｄとは、読取対象１ライン分の画像読取方向の長さのことをいい、例えば、ラインスタート信号を、周期ＺでＣＣＤラインセンサ２０に入力しつつ、搬送対象を速度Ｖで定速走行させて、ライン毎の読取動作をＣＣＤラインセンサ２０に実行させる場合、ライン距離ｌｉｎｅ＿ｄは、ｌｉｎｅ＿ｄ＝Ｖ・Ｚとなる。
【０１１３】
また、本実施例では、上述したように、レジスタＲＧ２に設定された読取開始位置ｉｎｉｔ＿ｐｏｓを、先頭ラインの読取動作の開始位置として取り扱い、この読取開始位置ｉｎｉｔ＿ｐｏｓを搬送対象が通過する時点から、ラインスタートトリガ信号を出力して、ラインスタート信号をＣＣＤラインセンサ２０に入力し、更に、ｓｔｏｐ＿ｓｉｇ信号が値１に遷移した時点でラインスタートトリガ信号の出力を一旦停止するので、この動作を利用して、図１４に示す処理内容で、読取長を算出する。
【０１１４】
図１４に示す処理を開始すると、読取長算出部５３は、フラグ（ｆｌａｇ）を値０にリセットすると共に、読取完了ライン数ｆｎ＿ｌｉｎｅを値０に設定し（Ｓ１０１０）、その後、読取終了信号が入力されているか否かを判断する（Ｓ１０２０）。そして、読取終了信号が入力されていない場合には（Ｓ１０２０でＮｏ）、ラインスタートトリガ信号が入力されているか否かを判断する（Ｓ１０３０）。
【０１１５】
そして、ラインスタートトリガ信号が入力されている場合には（Ｓ１０３０でＹｅｓ）、読取完了ライン数ｆｎ＿ｌｉｎｅを１加算した値に更新した後（Ｓ１０３５）、Ｓ１０４０に移行する。一方、ラインスタートトリガ信号が入力されていない場合には（Ｓ１０３０でＮｏ）、Ｓ１０３５の処理を実行せず、Ｓ１０４０に移行する。このようにして、読取長算出部５３は、ラインスタートトリガ信号が入力される度、変数ｆｎ＿ｌｉｎｅの値を更新する。
【０１１６】
また、Ｓ１０４０では、画データ処理部４３から入力されるｓｔｏｐ＿ｓｉｇ信号が値１に設定されているか否かを判断する。
ここで、ｓｔｏｐ＿ｓｉｇ信号が値０に設定されている場合（Ｓ１０４０でＮｏ）、読取長算出部５３は、読取再開指令がＣＰＵ１１から入力されているか否かを判断し（Ｓ１０５０）、読取再開指令が入力されていない場合には（Ｓ１０５０でＮｏ）、Ｓ１０５５の処理を実行せずに、Ｓ１０２０に移行するが、読取再開指令が入力されている場合には（Ｓ１０５０でＹｅｓ）、フラグ（ｆｌａｇ）を値０にリセットした後、Ｓ１０２０に移行する。
【０１１７】
一方、ｓｔｏｐ＿ｓｉｇ信号が値１に設定されている場合（Ｓ１０４０でＹｅｓ）、読取長算出部５３は、フラグ（ｆｌａｇ）が値０であるか否かを判断し（Ｓ１０６０）、フラグ（ｆｌａｇ）が値１である場合（Ｓ１０６０でＮｏ）、Ｓ１０７０以降の処理を実行せずに、Ｓ１０２０に移行する。
【０１１８】
これに対し、フラグ（ｆｌａｇ）が値０である場合には（Ｓ１０６０でＹｅｓ）、読取完了ライン数ｆｎ＿ｌｉｎｅを１減算して（Ｓ１０７０）、ｓｔｏｐ＿ｓｉｇ信号が値１に遷移した時点での読取完了ライン数ｆｎ＿ｌｉｎｅを確定する。尚、このように、読取完了ライン数ｆｎ＿ｌｉｎｅを１減算するのは、ｓｔｏｐ＿ｓｉｇ信号が値１に遷移する直前に入力されるラインスタートトリガ信号は、読取中断ラインに対応するラインスタートトリガ信号であり、この読取中断ラインの読取動作は、読取再開後にやり直されるためである。
【０１１９】
また、このようにして、読取完了ライン数ｆｎ＿ｌｉｎｅを確定すると、この読取完了ライン数ｆｎ＿ｌｉｎｅの情報と、読取機能の作動前に、予めＣＰＵ１１の動作により、レジスタＲＧ３に設定されたライン距離ｌｉｎｅ＿ｄの情報と、に基づき、読取長ｒｅａｄ＿ｌを、次のように算出し（Ｓ１０８０）、この算出値を再開位置設定部５７に出力する。
【０１２０】
ｒｅａｄ＿ｌ＝ｆｎ＿ｌｉｎｅ・ｌｉｎｅ＿ｄ
また同時に、読取長算出部５３は、フラグ（ｆｌａｇ）を値１に設定する（Ｓ１０９０）。また、この処理を終えると、読取長算出部５３は、Ｓ１０２０に移行する。
【０１２１】
本実施例では、このようにして、読取完了ライン数ｆｎ＿ｌｉｎｅを検出し、この値を、再開位置設定部５７に入力する。そして、読取終了信号が入力されると（Ｓ１０２０でＹｅｓ）、図１４に示す処理を終了する。
（３．６）時間計測部５５の詳細
続いて、時間計測部５５の詳細について、図１５を用いて説明する。図１５は、読取機能の作動時に、時間計測部５５が実行する処理を表すフローチャートである。
【０１２２】
時間計測部５５は、再開位置設定部５７に対し、読取再開基準位置（ｒｅｓｔａｒｔ＿ｃｎｔ）を設定するために必要な、変数ｔｉｍｅ＿ｐの値を出力するものである。この時間計測部５５は、計時カウンタを内蔵しており、計時カウンタを用いて、時間計測する。
【０１２３】
図１５に示す処理を開始すると、時間計測部５５は、画データ処理部４３から読取終了信号が入力されているか否かを判断し（Ｓ１１１０）、読取終了信号が入力されていない場合には（Ｓ１１１０でＮｏ）、エッジ検出信号が入力されている否かを判断し（Ｓ１１２０）、エッジ検出信号が入力されていない場合には（Ｓ１１２０でＮｏ）、ラインスタートトリガ信号が入力されているか否かを判断する（Ｓ１１３０）。
【０１２４】
そして、読取終了信号、エッジ検出信号、及び、ラインスタートトリガ信号のいずれもが入力されていない場合には、これらの信号のいずれかが入力されるまで待機する。
そして、エッジ検出信号が入力されると（Ｓ１１２０でＹｅｓ）、計時カウンタによる計時を開始し（Ｓ１１２５）、計時カウンタに、このエッジ検出信号の入力時点からの経過時間を計測させる。尚、計時の開始に先駆けては、計時カウンタの値ＣＮをゼロにリセットする。また、計時を開始すると、Ｓ１１３０に移行し、ラインスタートトリガ信号が入力されているか否かを判断する。そして、ラインスタートトリガ信号が入力されていない場合には（Ｓ１１３０でＮｏ）、Ｓ１１１０に移行し、入力されている場合には（Ｓ１１３０でＹｅｓ）、Ｓ１１４０に移行する。
【０１２５】
また、ラインスタートトリガ信号が入力されると（Ｓ１１３０でＹｅｓ）、時間計測部５５は、計時カウンタの値ＣＮを、変数ｔｉｍｅ＿ｐに設定することで（Ｓ１１４０）、最後にエッジ検出信号が入力されてから当該ラインスタートトリガ信号が入力されるまでに要した時間の情報を、変数ｔｉｍｅ＿ｐに設定し、この値を、再開位置設定部５７に出力する。その後、Ｓ１１１０に移行し、読取終了信号、エッジ検出信号、及び、ラインスタートトリガ信号のいずれかが入力されるまで待機する。
【０１２６】
そして、読取終了信号が入力されると（Ｓ１１１０でＹｅｓ）、読取対象の読取（原稿１枚分の読取）が終了したとして、図１５に示す処理を終了する。
このようにして、時間計測部５５は、エンコーダ処理部１５から入力されるエッジ検出信号及び読取フロントエンド４１から入力されるラインスタートトリガ信号に基づいて、エッジ検出信号が入力されてからラインスタートトリガ信号が入力されるまでの時間長さｔｉｍｅ＿ｐを計測し、これを再開位置設定部５７に出力する。
（３．７）再開位置設定部５７の詳細
続いて、再開位置設定部５７の詳細について、図１６を用いて説明する。図１６は、再開位置設定部５７が実行する処理を表すフローチャートである。
【０１２７】
再開位置設定部５７は、画データ処理部４３から出力されるｓｔｏｐ＿ｓｉｇ信号が値１に遷移し、読取機能に係る処理が中断される際に、その後再開される読取動作のために、読取再開基準位置（ｒｅｓｔａｒｔ＿ｃｎｔ）及びオフセット時間（ｏｆｆｓｅｔ）を設定し、この値ｒｅｓｔａｒｔ＿ｃｎｔ，ｏｆｆｓｅｔを、強制同期指令生成部５９に入力することにより、強制同期指令生成部５９に対して、読取再開位置を設定するものである。
【０１２８】
具体的に、再開位置設定部５７は、読取機能の作動時、図１６に示す処理の実行を開始する。更に、ＣＰＵ１１から読取再開指令が入力された場合にも、図１６に示す処理の実行を開始する。
【０１２９】
図１６に示す処理を開始すると、再開位置設定部５７は、画データ処理部４３から出力されるｓｔｏｐ＿ｓｉｇ信号が値０から値１に遷移するまで待機し（Ｓ１２１０）、ｓｔｏｐ＿ｓｉｇ信号が値１に遷移すると（Ｓ１２１０でＹｅｓ）、Ｓ１２２０に移行する。
【０１３０】
また、Ｓ１２２０では、当該ｓｔｏｐ＿ｓｉｇ信号の遷移に伴って読取長算出部５３で実行されるＳ１０８０の処理の終了を待って、当該Ｓ１０８０で算出された読取長ｒｅａｄ＿ｌの値を取得すると共に、搬送量算出部５１から出力される搬送量ｑ＿ｔｒａｎｓの値を取得し、これらの取得値に基づいて、最後にラインスタートトリガ信号が入力された時点での読取長ｒｅａｄ＿ｌと搬送量ｑ＿ｔｒａｎｓとの誤差μを算出する。
【０１３１】
μ＝ｒｅａｄ＿ｌ−ｑ＿ｔｒａｎｓ
同時に、最後にラインスタートトリガ信号が入力された時点で搬送量算出部５１にて更新された値ｐｏｓｉｔｉｏｎを、変数Ｘ［０］に設定すると共に、変数Ｘ［１］に、値ｐｏｓｉｔｉｏｎより１大きい値（ｐｏｓｉｔｉｏｎ＋１）を設定する（Ｓ１２２０）。
【０１３２】
そして、誤差μの絶対値｜μ｜が予め定められた閾値以下であるか否かを判断する（Ｓ１２３０）。
ここで、誤差μの絶対値｜μ｜が予め定められた閾値以下であると判断すると（Ｓ１２３０でＹｅｓ）、再開位置設定部５７は、変数ｒｅｓｔａｒｔ＿ｃｎｔに、値Ｘ［０］を設定し、この値を強制同期指令生成部５９に入力すると共に（Ｓ１２４０）、変数ｏｆｆｓｅｔに、時間計測部５５から入力される値ｔｉｍｅ＿ｐを設定し、この値を強制同期指令生成部５９に入力する（Ｓ１２５０）。これにより、強制同期指令生成部５９に対して、読取再開基準位置をＸ［０］に設定し、オフセット時間を値ｔｉｍｅ＿ｐに設定する。その後、図１６に示す処理を終了する。
【０１３３】
図１７は、値｜μ｜が閾値以下であるときの読取再開基準位置及びオフセット時間の設定方法を視覚化した説明図である。本実施例において、値｜μ｜が閾値以下であるときには、読取中断ラインに対応するラインスタート信号がＣＣＤラインセンサ２０に入力された時点ＴＳを含む当該時点ＴＳより過去において、最後にエッジ検出信号が入力された時点ＴＰで搬送対象が存在した地点Ｘ［０］を、読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔに設定し、その時点ＴＰから時点ＴＳまでの経過時間ｔｉｍｅ＿ｐを、オフセット時間ｏｆｆｓｅｔに設定する。
【０１３４】
また、この設定を受けて、強制同期指令生成部５９は、読取再開時に搬送対象が読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔに到達すると、その時点からオフセット時間ｏｆｆｓｅｔが経過した時点で、同期指令をラインスタートトリガ信号生成部４１ａに入力して、この時点からＣＣＤラインセンサ２０で読取動作が再開されるようにする（詳細後述）。
【０１３５】
即ち、ここでは、強制同期指令生成部５９に対して、読取再開基準位置をＸ［０］に設定し、オフセット時間を値ｔｉｍｅ＿ｐに設定することにより、読取中断位置を、読取再開位置に設定する。
【０１３６】
但し、読取再開位置は、上述したように、地点Ｘ［０］を基準として、オフセット時間により定められるため、読取中断時及び読取再開時の夫々において、搬送対象が、同一の速度で走行していれば、読取再開位置は、正確に読取中断位置に一致するものの、実際には、モータを定速制御しても制御誤差を原因として、搬送対象は、読取中断時及び読取再開時の夫々において、同一の速度で走行しないので、読取再開位置と読取中断位置との間には、ズレが生じることとなる。
【０１３７】
そして、このズレが蓄積されると、読取対象の読取領域の実寸よりも、全ライン分の画像読取動作が完了したときの読取長、即ち、全ライン分の画像読取動作を完了して完成する全ライン分の読取画像の長さが、画像読取方向に長くなったり、短くなってしまい、画像データの画質が劣化する。
【０１３８】
そこで、本実施例では、値｜μ｜が閾値を超えるとき、読取再開位置と読取中断位置との間にズレが生じているとして、誤差μがゼロに収束する方向に、読取再開位置を補正するようにしている。即ち、再開位置設定部５７は、値｜μ｜が閾値を超えている場合（Ｓ１２３０でＮｏ）、誤差μがゼロ以下であるか否かを判断することにより、読取長が搬送量以下であるか否かを判断する（Ｓ１２６０）。
【０１３９】
そして、誤差μがゼロ以下である場合には（Ｓ１２６０でＹｅｓ）、変数ｒｅｓｔａｒｔ＿ｃｎｔに、値Ｘ［０］を設定し、この値を強制同期指令生成部５９に入力する（Ｓ１２７０）と共に、変数ｏｆｆｓｅｔに値０を設定し、この値を強制同期指令生成部５９に入力する（Ｓ１２９０）ことにより、強制同期指令生成部５９に対して、読取再開基準位置をＸ［０］に設定し、オフセット時間を値０に設定する。その後、図１６に示す処理を終了する。
【０１４０】
これにより、再開位置設定部５７は、読取長が搬送量以下である場合、読取中断ラインに対応するラインスタート信号がＣＣＤラインセンサ２０に入力された時点ＴＳを含む当該時点ＴＳより過去において、最後にエッジ検出信号が入力された時点ＴＰで搬送対象が存在した地点Ｘ［０］を、読取再開位置に設定し、この地点からＣＣＤラインセンサ２０による読取動作が再開されるようにする（図１８（ａ）参照）。
【０１４１】
一方、読取長が搬送量よりも大きく、誤差μがゼロより大きい場合には（Ｓ１２６０でＮｏ）、変数ｒｅｓｔａｒｔ＿ｃｎｔに、値Ｘ［１］を設定し、この値を強制同期指令生成部５９に入力する（Ｓ１２８０）と共に、変数ｏｆｆｓｅｔに、値０を設定し、この値を強制同期指令生成部５９に入力する（Ｓ１２９０）ことにより、強制同期指令生成部５９に対して、読取再開基準位置をＸ［１］に設定し、オフセット時間を値０に設定する。その後、図１６に示す処理を終了する。
【０１４２】
これにより、再開位置設定部５７は、読取長が搬送量を超える場合、時点ＴＳより過去において、最後にエッジ検出信号が入力された時点ＴＰの経過後、最初にエッジ検出信号が入力された時点ＴＦで搬送対象が存在した地点Ｘ［１］を、読取再開位置に設定し、この地点からＣＣＤラインセンサ２０による読取動作が再開されるようにして、誤差μがゼロに収束する方向に読取再開位置を補正する（図１８（ｂ）参照）。
【０１４３】
このようにして、再開位置設定部５７は、値｜μ｜が閾値を超えるとき、誤差μがゼロに収束する方向に読取再開位置を補正する。
例えば、図１８（ａ）に示すように、読取長ｒｅａｄ＿ｌが搬送量ｑ＿ｔｒａｎｓよりも短い場合に、読取再開位置をＸ［０］に設定すれば、読取再開位置が、真の読取中断位置より手前となる。
【０１４４】
同様に、図１８（ｂ）に示すように、読取長ｒｅａｄ＿ｌが搬送量ｑ＿ｔｒａｎｓよりも長い場合に、読取再開位置をＸ［１］に設定すれば、読取再開位置が、真の読取中断位置より画像読取方向に進んだ位置となる。従って、誤差μがゼロに収束するのである。
【０１４５】
このような原理で、本実施例では、誤差｜μ｜が小さいときには、読取中断位置から読取動作が再開されるように、読取再開位置を設定し、誤差｜μ｜が大きいときには、誤差μがゼロに収束するように、読取再開位置を設定して、全ライン分の読取動作完了時点で完成する画像データの画質が、読取中断動作の繰返しで劣化しないようにする。
（３．８）強制同期指令生成部５９の詳細
続いて、強制同期指令生成部５９の詳細について、図１９及び図２０を用いて説明する。図１９は、強制同期指令生成部５９が実行する処理を表すフローチャートである。尚、強制同期指令生成部５９は、ラインスタート信号の強制同期をとるためのものであり、読取機能が作動すると、図１９に示す処理の実行を開始する。
【０１４６】
強制同期指令生成部５９は、図１９に示す処理を開始すると、エッジ検出信号が入力される度（Ｓ１４１０でＹｅｓ）、当該エッジ検出信号の入力により更新された位置カウンタ３３の出力値ｅｎｃ＿ｃｎｔが、レジスタＲＧ２に設定された読取開始位置ｉｎｉｔ＿ｐｏｓより一つ手前の値（ｉｎｉｔ＿ｐｏｓ−１）に一致するか否かを判断し（Ｓ１４２０）、一致しない場合には、上記判断を繰返し、一致すると（ｅｎｃ＿ｃｎｔ＝ｉｎｉｔ＿ｐｏｓ−１：Ｓ１４２０でＹｅｓ）、Ｓ１４３０に移行する。
【０１４７】
その後、強制同期指令生成部５９は、新たにエッジ検出信号が入力された時点で（Ｓ１４３０でＹｅｓ）、搬送対象が、読取開始位置ｉｎｉｔ＿ｐｏｓに到達したとして、同期指令を、ラインスタートトリガ信号生成部４１ａに入力し（Ｓ１４４０）、その時点でＣＣＤラインセンサ２０にラインスタート信号が入力されるようにする。
【０１４８】
尚、図２０（ａ）及び図２０（ｂ）は、同期指令の入力態様を表すタイムチャートである。読取開始位置ｉｎｉｔ＿ｐｏｓ＝ｋに設定されている場合には、Ｓ１４１０〜Ｓ１４４０の処理により、図２０（ａ）に示すように、ｅｎｃ＿ｃｎｔ＝ｋとなった時点で同期指令をラインスタートトリガ信号生成部４１ａに入力して、搬送対象が読取開始位置ｉｎｉｔ＿ｐｏｓに到達した時点から、ＣＣＤラインセンサ２０に対するラインスタート信号及び転送クロック信号の入力が読取フロントエンド４１で開始されるようにする。このようにして、読取開始位置ｉｎｉｔ＿ｐｏｓから、ＣＣＤラインセンサ２０にて、ライン毎の読取動作が実行されるようにする。
【０１４９】
但し、同期指令の入力に伴って、ＣＣＤラインセンサ２０に、ラインスタート信号が入力されてから、次のラインスタート信号が入力されるまでの期間に、ＣＣＤアナログシフトレジスタ２０ｂから出力される画素信号は、読取フロントエンド４１で破棄するものとする。
【０１５０】
そして、同期指令の入力を終了すると、強制同期指令生成部５９は、読取終了信号又は読取再開指令が入力されるまで待機し（Ｓ１４５０，Ｓ１４５５）、読取終了信号が入力されると（Ｓ１４５０でＹｅｓ）、当該処理を終了する。
【０１５１】
一方、ｓｔｏｐ＿ｓｉｇ信号が値０から値１に遷移することにより、読取機能に係る処理が中断し、その後、ＣＰＵ１１から読取再開指令が入力された場合には（Ｓ１４５５でＹｅｓ）、Ｓ１４６０に移行する。
【０１５２】
そして、エッジ検出信号が入力される度（Ｓ１４６０でＹｅｓ）、当該エッジ検出信号の入力により更新された位置カウンタ３３の出力値ｅｎｃ＿ｃｎｔが、再開位置設定部５７により設定された読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔより一つ手前の値（ｒｅｓｔａｒｔ＿ｃｎｔ−１）に一致するか否かを判断し（Ｓ１４７０）、一致しない場合には、上記判断を繰返し、一致すると（ｅｎｃ＿ｃｎｔ＝ｒｅｓｔａｒｔ＿ｃｎｔ−１：Ｓ１４７０でＹｅｓ）、Ｓ１４７５に移行する。
【０１５３】
また、Ｓ１４７５に移行すると、強制同期指令生成部５９は、再開位置設定部５７により設定されたオフセット時間ｏｆｆｓｅｔが値０であるか否かを判断し、値０である場合には（Ｓ１４７５でＹｅｓ）、Ｓ１４８０に移行し、値０ではない場合には（Ｓ１４７５でＮｏ）、Ｓ１５００に移行する。
【０１５４】
また、Ｓ１４８０に移行すると、強制同期指令生成部５９は、新たにエッジ検出信号が入力されるまで待機し、新たにエッジ検出信号が入力された時点で（Ｓ１４８０でＹｅｓ）、搬送対象が、読取開始位置（＝読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔ）に到達したとして、同期指令を、ラインスタートトリガ信号生成部４１ａに入力し、その時点でＣＣＤラインセンサ２０にラインスタート信号が入力されるようにする（Ｓ１４９０）。
【０１５５】
例えば、読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔ＝ｋに設定されている場合には、Ｓ１４６０〜Ｓ１４９０の処理により、図２０（ａ）に示すように、ｅｎｃ＿ｃｎｔ＝ｋとなった時点で同期指令をラインスタートトリガ信号生成部４１ａに入力して、搬送対象が読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔ＝ｋに到達した時点から、ＣＣＤラインセンサ２０に対するラインスタート信号及び転送クロック信号の入力が読取フロントエンド４１で開始されるようにする。
【０１５６】
このようにして、強制同期指令生成部５９は、オフセット時間が値０に設定されている場合、搬送対象が読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔに到達した時点から、ラインスタート信号がＣＣＤラインセンサ２０に、周期的に入力されるようにし、読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔから、ＣＣＤラインセンサ２０にて、ライン毎の読取動作が実行されるようにする。
【０１５７】
そして、同期指令の入力を終了すると、強制同期指令生成部５９は、Ｓ１４５０に移行して、再び、読取再開指令が入力されるまで待機する。
一方、Ｓ１５００に移行すると、強制同期指令生成部５９は、新たにエッジ検出信号が入力されるまで待機し、新たにエッジ検出信号が入力されると（Ｓ１５００でＹｅｓ）、その時点からの経過時間の計測を開始して、その時点から、予め再開位置設定部５７により設定されたオフセット時間ｏｆｆｓｅｔが経過するまで待機する（Ｓ１５１０）。
【０１５８】
そして、オフセット時間ｏｆｆｓｅｔが経過した時点で（Ｓ１５１０でＹｅｓ）、搬送対象が、読取再開位置に到達したとして、同期指令を、ラインスタートトリガ信号生成部４１ａに入力し、その時点でＣＣＤラインセンサ２０にラインスタート信号が入力されるようにする（Ｓ１５２０）。そして、同期指令の入力を終了すると、強制同期指令生成部５９は、Ｓ１４５０に移行して、再び、読取再開指令が入力されるまで待機する。
【０１５９】
このようにして、強制同期指令生成部５９は、オフセット時間が値０より大きい値に設定されている場合、図２０（ｂ）に示すように、搬送対象が読取再開基準位置ｒｅｓｔａｒｔ＿ｃｎｔに到達した後、オフセット時間ｏｆｆｓｅｔを経過した時点で同期指令を入力して、当該時点から、ラインスタート信号がＣＣＤラインセンサ２０に、周期的に入力されるようにし、読取中断位置から、ＣＣＤラインセンサ２０にて、ライン毎の読取動作が実行されるようにする。また、同期指令の入力により、ＣＣＤラインセンサ２０への転送クロック信号の入力を、読取フロントエンド４１に開始させ、ＣＣＤアナログシフトレジスタ２０ｂから読取フロントエンド４１に画素信号が出力されるようにする。
（４）画像読取装置１が奏する効果
以上、本実施例の画像読取装置１の構成について説明したが、この画像読取装置１によれば、読取長と搬送量との誤差｜μ｜が小さくなるように、読取再開位置を設定する一方で、読取長と搬送量との誤差｜μ｜が小さい内は、読取中断位置から読取が再開されるように、オフセット時間を設定するので、読取画像の寸法を、読取対象の寸法に整合させて、高画質な読取画像データを生成することができる。従って、本実施例によれば、高速に読取可能で高画質な画像データを生成することが可能な画像読取装置１をユーザに提供することができる。
【０１６０】
尚、本発明の読取ユニットは、ＣＣＤラインセンサ２０に相当し、搬送機構は、読取モータＭＴ１の回転力を受けてＣＣＤラインセンサ２０を移動させる機構、及び、読取搬送モータＭＴ２の回転力を受けて読取対象の原稿を移動させるＡＤＦ装置１５０に相当する。また、事象発生信号出力手段は、読取エンコーダＥＮ１及び読取搬送エンコーダＥＮ２に相当する。
【０１６１】
また、読取制御手段は、モータ制御部３９におけるＳ３２０の処理及び読取制御部２１にて実現され、中断判定手段は、停止信号生成部４３ｄにおけるＳ５３０，Ｓ５４０の処理にて実現され、停止制御手段は、停止信号生成部４３ｄにおけるＳ５５０の処理にて実現されている。
【０１６２】
その他、位置検出手段は、位置カウンタ３３にて実現され、第一基準位置設定手段は、再開位置設定部５７におけるＳ１２４０の処理にて実現され、オフセット設定手段は、Ｓ１２５０の処理にて実現されている。
【０１６３】
また、読取長検出手段は、読取長算出部５３にて実現され、搬送量検出手段は、搬送量算出部５１にて実現され、第二基準位置設定手段は、再開位置設定部５７におけるＳ１２６０〜Ｓ１２８０の処理にて実現されている。この他、作動制御手段は、Ｓ１２３０の処理にて実現されている。
【０１６４】
また、後退制御手段は、モータ制御部３９のＳ３５０〜Ｓ３７０の処理にて実現され、再開判定手段は、再開信号生成部４３ｅにて実現されている。
（５）その他
以上、本発明の実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採りえる。
【０１６５】
例えば、上記実施例では、読取ユニットとして、ＣＣＤラインセンサ２０を用いたが、読取ユニットとしては、コンタクトイメージセンサ（ＣＩＳ：Contact Image Sensor）を用いても良い。その他、本実施例では、エンコーダＥＮ１として、ロータリーエンコーダを用いたが、ロータリーエンコーダに代えて、リニアエンコーダを用いてもよい。
【０１６６】
また、上記実施例の画像読取装置１は、複写機として構成されてもよいし、ファクシミリ装置として構成されてもよいし、スキャナ機能を有する複合機として構成されてもよい。
【図面の簡単な説明】
【０１６７】
【図１】画像読取装置１の電気的構成を表すブロック図である。
【図２】画像読取装置１の機械的構成を示す断面図である。
【図３】ＣＣＤラインセンサ２０の移動態様に関する説明図である。
【図４】エンコーダ処理部１５及び駆動制御部１７の構成を表すブロック図である。
【図５】位置カウンタ３３が実行する処理を表すフローチャート（ａ）及び周期カウンタ３５の動作態様を示す説明図（ｂ）である。
【図６】モータ制御部３９が実行する処理を表すフローチャートである。
【図７】読取制御部２１の構成を表すブロック図である。
【図８】画データ処理部４３で実現されるデータ処理機能に係る説明図である。
【図９】停止信号生成部４３ｄが実行する処理を表すフローチャートである。
【図１０】再開信号生成部４３ｅが実行する処理を表すフローチャートである。
【図１１】駆動停止指令生成部４９が実行する処理を表すフローチャートである。
【図１２】ｍｔｓｔｏｐ信号が値１に切り替わる時点前後の各種信号の状態を表すタイムチャートである。
【図１３】搬送量算出部５１が実行する処理を表すフローチャートである。
【図１４】読取長算出部５３が実行する処理を表すフローチャートである。
【図１５】時間計測部５５が実行する処理を表すフローチャートである。
【図１６】再開位置設定部５７が実行する処理を表すフローチャートである。
【図１７】読取再開位置の設定方法に関する説明図である。
【図１８】読取再開位置の設定方法に関する説明図である。
【図１９】強制同期指令生成部５９が実行する処理を表すフローチャートである。
【図２０】同期指令の入力タイミングを表すタイムチャートである。
【符号の説明】
【０１６８】
１…画像読取装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１５…エンコーダ処理部、１７…駆動制御部、２０…ＣＣＤラインセンサ、２０ａ…受光素子群、２０ｂ…ＣＣＤアナログシフトレジスタ、２１…読取制御部、２３…外部インタフェース、３１…エンコーダエッジ検出部、３３…位置カウンタ、３５…周期カウンタ、３７…駆動回路、３９…モータ制御部、４１…読取フロントエンド、４１ａ…ラインスタートトリガ信号生成部、４１ｂ…ラインスタート信号生成部、４１ｃ…転送クロック信号生成部、４１ｄ…Ａ／Ｄ変換器、４３…画データ処理部、４３ａ…データ書込部、４３ｂ…画像処理部、４３ｃ…データ転送部、４３ｄ…停止信号生成部、４３ｅ…再開信号生成部、４５…ローカルＲＡＭ、４５ａ…バッファ、４５ｂ…処理データ記憶部、４９…駆動停止指令生成部、５１…搬送量算出部、５３…読取長算出部、５５…時間計測部、５７…再開位置設定部、５９…強制同期指令生成部、６３…メモリコントローラ、１０１…装置本体、１０２…静止読取窓、１０２Ａ，１０３Ａ…プラテン、１０３…自動読取窓、１０４…原稿カバー、１０６…キャリッジ、１０７，１０８…プーリ、１０９…ベルト、１１１…ガイド軸、１５０…ＡＤＦ装置、１５３…分離ローラ、１５４…分離パッド、１５５…吸入ローラ、１５９…給紙ローラ、１６０…ピンチローラ、１６１…原稿押さえ、１６２…排紙ローラ、１６４…原稿センサアクチュエータ、１６５…原稿トレイ、１６６…排紙トレイ、ＥＮ１…読取エンコーダ、ＥＮ２…読取搬送エンコーダ、ＭＴ１…読取モータ、ＭＴ２…読取搬送モータ、ＲＧ１〜ＲＧ３…レジスタ
【図１】
0004803160.tif 000002
【図２】
0004803160.tif 000003
【図３】
0004803160.tif 000004
【図４】
0004803160.tif 000005
【図５】
0004803160.tif 000006
【図６】
0004803160.tif 000007
【図７】
0004803160.tif 000008
【図９】
0004803160.tif 000009
【図１０】
0004803160.tif 000010
【図１１】
0004803160.tif 000011
【図１２】
0004803160.tif 000012
【図１３】
0004803160.tif 000013
【図１４】
0004803160.tif 000014
【図１５】
0004803160.tif 000015
【図１６】
0004803160.tif 000016
【図１７】
0004803160.tif 000017
【図１８】
0004803160.tif 000018
【図１９】
0004803160.tif 000019
【図２０】
0004803160.tif 000020
【図８】
0004803160.tif 000021