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