以下に、本発明の好適な実施形態を図面に基づいて説明する。
[第1実施形態]
(1)多機能装置の全体構成
図1は、本発明が適用された多機能装置(MFD:Multi Function Device )1を上面側から見た外観斜視図であり、図2は、そのA−A断面図である。
本実施形態の多機能装置1は、原稿に形成された画像を読み取る画像読取装置(スキャナ)とインクジェットプリンタ等の画像形成装置とが一体化されると共にコピー機能及びファクシミリ機能等も備えたものである。この多機能装置1は、具体的には、図2に示すように、上方側に画像読取装置100が配置され、下方側に電子写真方式の画像形成装置200が配置されており、上部前面側には、図1に示すように、多機能装置1を操作設定するための操作パネル部3が設けられている。なお、画像形成装置200は、プリンタ機能やコピー機能、ファクシミリ機能の実現時に利用され、記録紙への画像形成を行う。一方、画像読取装置100は、スキャナ機能やコピー機能、ファクシミリ機能の実現時に利用され、原稿上の画像の読取を行う。
本実施形態の多機能装置1が備える画像読取装置100は、原稿を自動的に搬送しながら原稿に形成された画像を読取ユニット(後述するCIS105)にて読み取る自動搬送読取機能、及び、静止載置された原稿に沿って読取ユニットを副走査方向へ搬送(移動)させながら原稿に形成された画像を読み取る静止原稿読取機能を兼ね備えたものである。
(2)画像読取装置の概略構成
画像読取装置100の本体部101には、図2に示すように、静止原稿読取機能用の画像読取窓(以下、静止読取窓という。)102、及び自動搬送読取機能用の画像読取窓(以下、自動読取窓という。)103が設けられており、両読取窓102、103は、ガラスやアクリル等の透明なプラテン102A、103Aにて閉塞されている。
また、本体部101の上面側には、両読取窓102、103を覆う原稿カバー104が揺動可能に組み付けられており、静止読取窓102にて原稿読取を行う場合には、この原稿カバー104を手動操作にて上方側に開いて原稿を静止読取窓102に載置する。
一方、本体部101内には、原稿の画像を1ラインずつ読み取ってその読み取り結果(画素信号)を出力する読取ユニットとしてのCIS(Contact Image Sensor)105が配設されている。このCIS105は、より詳しくは、原稿に向けて光を照射する光源としてのLED、このLEDから照射され原稿で反射された光を受光してその受光量に応じた電荷(信号電荷)が蓄積される受光素子を有すると共にその蓄積された電荷量に応じた電気信号(画素信号)を出力する撮像デバイス(本実施形態ではCMOSセンサ)、原稿からの反射光を受光素子へ導くレンズなどを備えている(いずれも図示略)。画像読取装置100は、このCIS105により、原稿に形成された文字等の画像を画素信号に変換して画像を読み取っていく。
CIS105を構成する撮像デバイス、LED、レンズはいずれも、その移動方向(図2における左右方向)と直交する方向(図2の紙面に垂直な方向)にライン状に配列されている。これにより、主走査方向1ライン分の画像を同時に読み取ることができる。なお、LEDは、R・G・B各色がライン状に配列されており、後述する読取タイミング(ラインスタート信号出力タイミング)毎にR→G→B→R→G→・・・と点灯する色が順次切り換わる。これにより、カラー(多色)画像の読取が可能となっている。
また、CIS105は、キャリッジ106を介して本体部101の長手方向(図2の左右方向)に移動可能に本体部101に組み付けられており、自動搬送読取機能作動時には、自動読取窓103の直下に停止配置された状態で画像を読み取り、静止原稿読取機能作動時には、静止読取窓102の直下で移動しながら画像を読み込んでいく。
なお、本実施形態では、キャリッジ106は駆動プーリ107及び従動プーリ108に掛けられたベルト109に連結されている。このベルト109が読取モータMT1にて回転されることにより、キャリッジ106(CIS105)は、ガイド軸111に案内されながら移動させられる。なお、本実施形態の読取モータMT1はDCモータである。
そして、静止原稿読取機能作動時には、CIS105は、読取モータMT1によって所定の原稿設置基準位置を起点として原稿を走査(副走査)する方向(以下、順方向ともいう)に定速移動されつつ、原稿に形成された画像を読み取る。そして、読み取り終了後は読取モータMT1によってその逆方向に移動され、元の原稿設定基準位置に戻る。
なお、CIS105による原稿の読み取りは、CIS105に入力されるラインスタート信号に同期して1ラインずつ行われる。より具体的には、ラインスタート信号と共に入力されるLED点灯制御信号に基づいてLEDを一定時間点灯させることにより撮像デバイスに1ライン分の画像を読み取らせる。また、ラインスタート信号が入力されたときは、その直前のLED点灯期間中に受光素子に蓄積された電荷がCIS105内において受光素子の外部へ一旦ラッチされる。これにより、新たなラインの画像読取(受光素子への電荷蓄積)が可能となる。そして、そのラッチされた1ライン分の画像を示す画素信号は、CIS105に入力される読出クロックCLに同期して1画素分ずつ順次出力される。
また、原稿読み取り中は、読み取られた画素信号が順次デジタルデータに変換されてバッファに一時的に格納され、各種画像処理されつつRAMへ格納されていくことになるが、その際、画像データの量(解像度)やバッファ容量によっては、バッファに格納されていく画像データの増加に画像処理の速度が追いつかず、バッファの空き容量が不足したり無くなったりすることがある。その場合、CIS105の順方向への移動は一時停止され、バッファの空き容量が回復するまで待機されることとなる。そして、バッファの空き容量が回復次第、一時停止位置から画像読取方向とは逆方向へ一定距離戻った位置から順方向への移動が再開され、停止前に最後に読み取ったラインの次のラインから読み取りが再開される。
また、読取モータMT1には、この読取モータMT1が所定量回転する度に(ひいてはCIS105が所定量移動する度に)パルス信号を出力する読取エンコーダ(光学式ロータリエンコーダ)EN1が設けられており、CIS105の移動はこの読取エンコーダEN1からのパルス信号に基づいて制御される。
この読取エンコーダEN1は、より詳しくは、円周方向に所定の間隔でエンコーダスリットが形成された回転スリット盤11と、その回転量や回転方向を検出するための検出部12等を備えている。回転スリット盤11は、読取モータMT1の回転軸(出力軸)と同軸に取り付けられ、読取モータMT1の回転と共にこの回転スリット盤11も回転するように構成されている。
検出部12は、投光素子と受光素子(いずれも図示略)を備え、この両者の間に回転スリット盤11のスリット形成部分が位置するよう配設されており、読取モータMT1の回転に応じて、互いに一定周期(本実施形態においては1/4周期)ズレた2種類のパルス信号(A相信号,B相信号)を出力する。A,B各相の信号は、キャリッジ106の移動方向が順方向である場合は、A相信号がB相信号に対して位相が一定周期進み、キャリッジ106の移動方向が逆方向である場合は、A相信号がB相信号に対して位相が一定周期遅れるようにされている。
原稿カバー104のうち静止読取窓102に対向する部位には、静止読取窓102に載置された原稿を静止読取窓102側に押さえる静止原稿押さえ112が配設されており、この静止原稿押さえ112は、原稿カバー104と一体的に本体部101(静止読取窓102)に対して揺動する。
そして、原稿カバー104のうち自動読取窓103に対応する部位及びその近傍には、読み取り用の原稿を自動読取窓103に搬送するオートドキュメントフィーダ装置(以下「ADF装置」と称す)150が設けられている。このADF装置150は、原稿トレイ165に載置された自動読み取り用の原稿を自動読取窓103へ搬送するものであり、積層された原稿を1枚ずつ分離する分離機構151や、分離機構151にて分離された原稿を自動読取窓103に搬送する搬送機構152等から構成されている。
分離機構151は、上下方向に積層された多数枚の原稿のうち積層方向上端に載置された原稿に搬送力を付与する分離ローラ153、分離ローラ153に対して対向配置されて分離ローラ153と反対側から原稿に接触してシートに所定の搬送抵抗を付与する分離パッド154、及び原稿トレイ165に積層された原稿を吸引するようにして分離ローラ153に原稿を送り出す吸入ローラ155等から構成されている。なお、分離パッド154は、分離パッド押さえ156によって分離ローラ153側へ押圧されている。また、原稿トレイ165から自重にて滑り落ちてくる原稿は、原稿導入プレート158によって、吸入ローラ155及び分離ローラ153に案内される。
搬送機構152は、分離機構151から分離搬送されてきた原稿の搬送方向を自動読取窓103側に向けて転向させながら搬送力を付与する給紙ローラ159、及び原稿を給紙ローラ159に押し付ける一対のピンチローラ160等から構成されている。
また、ADF装置150は、搬送されてきた原稿を自動読取窓103側に押さえる原稿押さえ161と、画像読み取りが終了した原稿を排出トレイ166に排出する排出手段としての排紙ローラ162と、原稿を排紙ローラ162に押し付けるピンチローラ163とを備えている。
ADF装置150を構成する各ローラは、読取搬送モータMT2(図2では図示略。後述する図15参照)の回転駆動力を受けて回転し、原稿を原稿トレイ165から排紙トレイ166へと搬送する。なお、本実施形態の読取搬送モータMT2はDCモータである。
そして、自動搬送読取機能作動時には、CIS105が自動読取窓103の直下に停止配置された状態で、ADF装置150が原稿を定速搬送することにより、原稿に形成された画像が読み取られる。そして、読み取り終了後の原稿は排出される。また、自動搬送読取機能作動時におけるCIS105にて行われる原稿の読み取りは、基本的には、静止原稿読取機能作動時と同じである。即ち、ADF装置150にて原稿が定速搬送されている際、CIS150は、入力されるラインスタート信号、LED点灯制御信号、読出クロックCL等に従って、原稿上の画像を1ラインずつ読み取る。そして、読み取られた画像データは順次バッファに格納される。
なお、原稿読み取り中にバッファの空き容量が不足したり無くなったりすることがあるが、その場合は、原稿の搬送は一時停止され、バッファの空き容量が回復するまで待機されることとなる。そして、バッファの空き容量が回復次第、一時停止位置から原稿搬送方向(画像読取方向)とは逆方向に一定距離戻った位置から、画像読取方向への原稿搬送が再開され、一時停止前に最後に読み取ったラインの次のラインから読み取りが再開される。
また、読取搬送モータMT2には、図2に示すように、この読取搬送モータMT2が所定量回転する度に(ひいては原稿が所定量搬送される度に)パルス信号を出力する読取搬送エンコーダ(光学式ロータリエンコーダ)EN2が設けられており、原稿の搬送はこの読取搬送エンコーダEN2からのパルス信号に基づいて制御される。
この読取搬送エンコーダEN2も、既述の読取エンコーダEN1と同様に構成されている。即ち、円周方向に所定の間隔でエンコーダスリットが形成された回転スリット盤21と、その回転量や回転方向を検出するための検出部22等を備えている。回転スリット盤21は、読取搬送モータMT2の回転軸(出力軸)と同軸に取り付けられ、読取搬送モータMT2の回転と共にこの回転スリット盤21も回転するように構成されている。そして、読取搬送モータMT2の回転に応じて検出部22から出力されるパルス信号(A相信号,B相信号)に基づいて、原稿の搬送が制御される。
本実施形態の画像読取装置100では、読取エンコーダEN1或いは読取搬送エンコーダEN2からパルス信号が出力される毎に、予め設定された逓倍数Nの逓倍パルスが順次出力される。本実施形態の逓倍パルス生成・出力方法は、図18を用いて説明した既述の逓倍パルス生成方法(直前のエッジ間周期から逓倍パルス周期を得る方法)と同じである。そして、この逓倍パルスに同期して(ほぼ同一タイミングで)CIS105へラインスタート信号が入力され、更に読出クロックCLも入力される。CIS105におけるこれらラインスタート信号及び読出クロックCLに基づく読取動作は、図19を用いて説明した既述の読取動作と全く同様である。
(3)画像読取装置の電気的構成
次に、本実施形態の多機能装置1のうち、特に画像読取装置100の電気的構成について、図3に基づいて説明する。本実施形態の画像読取装置100は、図3に示す如く、装置全体の各種制御を統括するCPU51と、CPU51による演算データやその他各種データが格納されるRAM52と、CIS105と、読取モータMT1と、読取エンコーダEN1と、読取モータMT1への通電を行うことにより読取モータMT1を駆動する駆動回路67と、CPU51の指令等に基づいて読取動作全般を実行するための各種回路等が組み込まれたASIC(Application Specific Integrated Circuit )3とを備えている。なお、CPU51は、ROM(図示略)に格納されている、画像読取装置100としての機能を実現するための各種プログラムやデータ等に従って、画像読取及び読み取った画像に対する画像処理等の各種処理を行う。
なお、ADF装置150を構成する読取搬送モータMT2や読取搬送エンコーダEN2については、図3では図示を省略している。逆に、後述する第2実施形態の図15では、静止原稿読取機能で使用される読取モータMT1や読取エンコーダEN1などの図示を省略し、ADF装置150を構成する(つまり自動搬送読取機能で使用される)読取搬送モータMT2や読取搬送エンコーダEN2を示している。
ASIC3は、読取エンコーダ処理部60、読取フロントエンド81、画データ処理部85、ローカルRAM89、メモリコントローラ59、停止指令生成部80、パラメータ格納部53、モータ制御部66、クロック生成部90などを備え、これら各部が動作することにより画像読取装置100の機能が実現される。
読取エンコーダ処理部60は、読取エンコーダEN1からのパルス信号(A相信号、B相信号)を処理してCIS105の位置や速度等に関連した各種信号を生成・出力するものであり、エンコーダエッジ検出部61、位置カウンタ62、周期カウンタ63、逓倍パルス生成部64、逓倍パルスカウント部65等を備えている。なお、ASIC3には、この読取エンコーダ処理部60とは別に、読取搬送モータMT2(図3では図示略)からのパルス信号を処理する読取搬送エンコーダ処理部も設けられているが、図3では図示を省略している。
エンコーダエッジ検出部61は、読取エンコーダEN1からのA相信号の立ち上がりエッジ及び読取モータMT1の回転方向(ひいてはCIS105の移動方向)を検出する。A相信号の立ち上がりエッジ検出は、エッジ検出信号として出力される。
位置カウンタ62は、エンコーダエッジ検出部61が検出した読取モータMT1の回転方向(CIS105の移動方向)に応じて、エッジ検出信号にてエッジカウント値enc_cntをカウントアップ又はカウントダウンする。このエッジカウント値enc_cntは、モータ制御部66及び停止指令生成部80へ出力される。
静止原稿読取機能を用いた読取の際には、この位置カウンタ62は、画像読取装置100のリセット後の初期化動作時に、図5に示すエッジ数カウント処理を開始し、以後、継続的にエッジカウント値enc_cntを更新する。図5は、位置カウンタ62が実行するエッジ数カウント処理を表すフローチャートである。位置カウンタ62は、まず、エッジカウント値enc_cntを初期化(ゼロにリセット)する(S110)。そして、エンコーダエッジが検出されたか否か、即ち、エンコーダエッジ検出部61からエッジ検出信号が出力されたか否かを判断する(S120)。
エッジ検出信号が出力されるまではこのS120の判断処理を繰り返すが、エッジ検出信号が出力された場合は(S120:YES)、移動方向を判断する(S130)。具体的には、CIS105の移動方向(読取モータMT1の回転方向)が順方向又は逆方向の何れであるかを判断する。そして、移動方向が順方向であればエッジカウント値enc_cntをインクリメントし(S140)、移動方向が逆方向であればエッジカウント値enc_cntをデクリメントする(S150)。このような処理により、読取エンコーダEN1用の位置カウンタ62においては、CIS105の位置が検出される。
また、自動搬送読取機能を用いた読取の際には、位置カウンタ62とは別に設けられている、ADF装置150を構成する読取搬送エンコーダEN2に対応した位置カウンタ(図3では図示略)によって、エッジカウント値enc_cntがカウントアップ又はカウントダウンされる。この読取搬送エンコーダEN2に対応した位置カウンタは、自動搬送読取機能の作動時に、図5に示すエッジ数カウント処理を開始し、以後は静止原稿読取機能を用いた読み取りの場合と同様に、継続的にエッジカウント値enc_cntを更新する。
また、周期カウンタ63は、エンコーダエッジ検出部61からエッジ検出信号が入力される度に初期化されて、エッジ検出信号入力後の経過時間を、クロック生成部90からのクロック信号をカウントすることにより計時するものである。このカウント結果であるエッジ周期Tpは、逓倍パルス生成部64及びモータ制御部66へ出力される。
具体的には、周期カウンタ63は、読取機能の作動時、図6に示すエッジ周期カウント処理を開始し、以後継続的にエッジ周期カウント値enc_cyc及びTpを更新する。図6は、周期カウンタ63が実行するエッジ周期カウント処理を表すフローチャートである。周期カウンタ63は、読取機能の動作が開始されると、まず、エッジ周期Tpの初期化(S210)及びエッジ周期カウント値enc_cycの初期化を行う(S220)。
そして、エンコーダエッジが検出されたか否か、即ち、エンコーダエッジ検出部61からエッジ検出信号が出力されたか否かを判断し(S230)、検出されるまではエッジ周期カウント値enc_cycを順次インクリメントしていくが(S240)、エンコーダエッジが検出されると(S230:YES)、その時点でのエッジ周期カウント値enc_cycをエッジ周期Tpとしてセットする(S250)。つまり、エンコーダエッジが検出される毎に、その検出時から次に検出されるまでの時間間隔を計測し、その計測結果がエッジ周期Tpとして得られるのである。
また、逓倍パルス生成部64は、エンコーダエッジ検出部61からエッジ検出信号が入力される毎に(即ち読取エンコーダEN1のA相信号立ち上がりエッジ検出毎に)、A相信号の周波数をN逓倍した逓倍パルスを生成・出力する。本実施形態では、周期カウンタ63にて計測されたエッジ周期Tpを予め設定された逓倍数Nで除算することにより逓倍パルスの周期を求め、この逓倍パルス周期Tp/Nにて、N個の逓倍パルスを順次出力するようにしている。つまり、図20を用いて説明したのと同様、エッジ検出信号の入力毎に、直前のエンコーダエッジ間の時間間隔(エッジ周期Tp)に基づいて逓倍パルス周期を求め、その逓倍パルス周期にて、逓倍パルスを順次出力していくのである。
逓倍パルス生成部64は、CPU51からの、逓倍パルスを生成すべきか否かを示す指令に従い、生成すべきと指令されているときに、逓倍パルスを生成する。なお、逓倍パルス生成部64には、逓倍パルスを生成するのに必要な各種パラメータ(逓倍数Nなど)がCPU51により設定される。
図7に、逓倍パルス生成部64が実行する逓倍パルス生成処理のフローチャートを示す。逓倍パルス生成部64は、読取機能の動作の開始によってこの逓倍パルス生成処理を開始すると、まず、エンコーダエッジの検出有無を判断し(S310)、検出されると、逓倍パルス処理が終了しているか否か、即ち、CPU51から逓倍パルス生成を実行するよう指令を受けているか否かを判断する(S320)。CPU51から逓倍パルス生成をすべき旨の指令が出力されていない場合はそのままこの逓倍パルス処理を終了するが、読取動作中は、通常はCPU51から逓倍パルスを生成すべき旨の指令が出力されており、その場合はS330の処理に進む。
S330では、逓倍周期計測カウンタ(逓倍パルス生成部64内に搭載。図3では図示略。)の逓倍周期カウント値TTを0にリセットする。そして、これから生成する逓倍パルスの出力順rとして1をセットして(S340)、逓倍パルス周期terの演算を行う(S350)。即ち、エッジ周期Tpを逓倍数Nで除算する演算を行うことにより、逓倍パルス周期terを得る。
このようにして逓倍パルス周期ter(=Tp/N)を得た後、周期計測カウンタの動作を開始させる(S360)。そして、逓倍周期カウント値TTが逓倍パルス周期terに到達するまではカウントを継続し(S370:NO)、逓倍周期カウント値TTが逓倍パルス周期terに到達すると(S370:YES)、逓倍パルスを出力する(S380)。
その後、出力順rが逓倍数Nに等しいか否か、即ち、N個全ての逓倍パルスが出力されたか否かを判断し(S390)、まだN個全て出力されていなければ、出力順rをインクリメントすると共に逓倍周期カウント値TTを0にリセットして(S400)、S360に戻る。S360に戻ると再び周期計測カウンタを動作させ、逓倍周期カウント値TTが再び逓倍パルス周期terに達したら、逓倍パルスを出力する。このようにして、N個全ての逓倍パルスを出力するまで、S360以降の処理を繰り返す。そして、N個全ての逓倍パルスを出力したら(S390:YES)、S310に戻り、次のエッジ検出信号を待つ。
逓倍パルスカウント部65は、エンコーダエッジ検出部61からエッジ検出信号が入力される毎に、逓倍パルス生成部64から出力される逓倍パルスのカウントを開始し、逓倍パルスカウント値Cmとして出力する。図8に、逓倍パルスカウント部65が実行する逓倍パルス数カウント処理のフローチャートを示す。
逓倍パルスカウント部65は、読取機能の動作の開始によってこの逓倍パルス数カウント処理を開始すると、まず、逓倍パルスカウント値Cmを0にリセットする(S410)。そして、エンコーダエッジの検出有無を判断し(S420)、検出されない場合は、逓倍パルス生成部64から逓倍パルスが出力されたか否かを判断する(S430)。そして、逓倍パルスが出力されると(S430:YES)、逓倍パルスカウント値Cmをインクリメントして(S440)、再びS420に戻る。
このようにして、エッジ検出信号が検出されるまでは、逓倍パルスが出力される毎に逓倍パルスカウント値Cmがインクリメントされる。そして、エッジ検出信号が検出されると(S420:YES)、S410に戻って逓倍パルスカウント値Cmが再び0にリセットされる。結果として、エッジ検出信号が検出される毎に、逓倍パルスカウント値Cmは0,1,2,・・・Nとインクリメントされていき、Nになった後(即ち、N個全ての逓倍パルスが出力された後)は、再び次のエッジ検出信号が検出されて逓倍パルスカウント値Cmはリセットされることになる。
なお、上記の周期カウンタ63,逓倍パルス生成部64,及び逓倍パルスカウント部65はとは別に設けられている、ADF装置150を構成する読取搬送エンコーダEN2に対応した周期カウンタ,逓倍パルス生成部,及び逓倍パルスカウント部(いずれも図3では図示略)も、それぞれ、上記の周期カウンタ63,逓倍パルス生成部64,及び逓倍パルスカウント部と同様の処理を行う。
次に、読取フロントエンド82は、CIS105へ各種信号を出力してCIS105を動作させると共にCIS105からの画素信号を処理(A/D変換等)するものであり、ラインスタート信号生成部82と、読出クロック生成部83と、LED点灯制御信号生成部84とを備えるほか、図示しないA/D変換回路等も備えるものである。
ラインスタート信号生成部82は、逓倍パルス生成部64から逓倍パルスが入力される毎に、その逓倍パルスと同期して、1ライン分の画像読取用の基準信号としてのラインスタート信号をCIS105へ出力する。
読出クロック生成部83は、逓倍パルス生成部64から逓倍パルスが入力される毎に、読出クロックCL(図19参照)をCIS105へ出力する。本実施形態では、読出クロックCLの周期とクロック生成部90にて生成されるクロック信号の周期が同じである。なお、クロック生成部90は、各エンコーダEN1,EN2からのパルス信号よりも十分に周期が短いクロック信号を生成して多機能装置1内の各部に供給するものである。
LED点灯制御信号生成部84は、ラインスタート信号が出力される毎に、そのラインスタート信号出力タイミングから一定期間、LED点灯制御信号(図19参照)をCIS105へ出力する。
CIS105は、これらラインスタート信号、読出クロックCL、及びLED点灯制御信号に基づいて、原稿上の画像を1ラインずつ読み取っていく。なお、逓倍パルスの出力タイミングとラインスタート信号の出力タイミングは、実用上は同じとみなせる。そのため、ラインスタート信号の出力タイミング毎に1ラインずつ画像を読み取ることは、実質的には、逓倍パルスの出力タイミング毎に1ラインずつ画像を読み取る、ということでもある。
また、CIS105は、既述の通り、ラインスタート信号が入力される毎に(逓倍パルスが出力される毎に)、そのラインスタート信号と共に入力されるLED点灯制御信号に従ってLEDを一定時間点灯させ、その間受光素子への電荷蓄積を行って、1ライン分の画像を読み取る(図19参照)。なお、ラインスタート信号が入力された際には、LED点灯による画像読取(電荷蓄積)に先立って、直前のエンコーダエッジ間におけるLED点灯期間中に受光素子に蓄積された電荷が、当該CIS105の内部で一旦ラッチされる。これにより受光素子は新たな画像の読取(電荷蓄積)が可能な状態となり、LEDを点灯させて新たな1ラインの画像読取を行う。そして、ラッチされた画素信号は、読出クロックCLに同期して読取フロントエンド81へ順次転送される。ラインスタート信号入力時における蓄積電荷のラッチは、読出クロックCLの周期と比較しても無視しうる程度のごくわずかな時間で行われるため、ラインスタート信号の入力タイミングとLED点灯開始タイミングはほぼ同一とみなしてもよい。
つまり、CIS105は、ラインスタート信号が入力される毎に、次にまたラインスタート信号が入力されるまで(即ち、次にまた逓倍パルスが出力されるまで)の1ライン周期(逓倍パルス周期)期間中、新たな1ライン分の画像の読み取りと直前の1ライン周期期間に読み取られた画像(画素信号)の転送を並行して行うのである。
そして、読取フロントエンド81は、CIS105から転送された画素信号に対し、A/D変換等の処理を行うことにより1ライン分の画像データ(デジタルデータ)を生成し、画データ処理部85へ転送する。
画データ処理部85は、読取フロントエンド81にてデジタルデータ化された画像データに対する各種画像処理を行うものであり、バッファ管理部86、停止信号生成部87、再開信号生成部88を備える。
バッファ管理部86は、ローカルRAM89に設けられたFIFOメモリとしてのバッファ89aに対する画像データの読み書き処理やバッファ89aの容量の監視などを行うものである。画データ処理部85では、読取フロントエンド81から入力された画像データを、順次、バッファ管理部86がバッファ89aに書き込みつつ、このバッファ89aに蓄積された各ラインの画像データに対し、シェーディング補正、ガンマ補正等の各種画像処理が施される。そして、画データ処理部85は、画像処理後の各ラインの画像データを、メモリコントローラ59を通じてRAM52に格納する。
また、画データ処理部85が備える停止信号生成部87は、バッファ89aの空き容量に基づき、CIS105による画像読取動作を一時停止させるための読取停止信号を出力する。具体的には、停止信号生成部87は、バッファ管理部86によるバッファ89aの容量監視状況に基づいて、バッファ89aにN+1ライン分(Nは逓倍パルスの逓倍数)の画像データを書き込むだけの空き容量があるか否かを監視する。そして、空き容量不足となった場合、即ちN+1ライン分の画像データを書き込めるだけの容量がなくなった場合は、停止指令生成部80へ読取停止信号を出力する。
図9に、停止信号生成部87が実行する停止信号生成処理のフローチャートを示す。停止信号生成部87は、CPU51からの読取動作開始指令を受けてこの停止信号生成処理を開始すると、まず、読取停止信号をオフする(S510)。そして、読取動作が終了したか否か、即ち、原稿1枚分の読取が全て終了したか否かを判断する(S520)。このとき、読取が全て終了したならばそのままこの停止信号生成処理は終了するが、読取が全て終了していない場合は、バッファ89aの空き容量がN+1ライン分の画像データを書き込むのに必要な容量以上であるか否かを判断する(S530)。
そして、N+1ライン分以上の空き容量があれば、読取停止信号をオフにして(S550)、S520の処理に戻るが、N+1ライン分以上の空き容量がなければ(つまりNライン分以下)、読取停止信号をオンして(S540)、S520の処理に戻る。なお、上述した「読取停止信号を出力する」とは、読取停止信号がオンされた状態を意味する。また、本実施形態では、バッファ管理部86がバッファ89aの容量をライン単位で管理しているため、N+1ライン分以上の空き容量がないということは、即ち、Nライン分以下の空き容量しかない、ということである。
上記のような処理によって停止信号生成部87から読取停止信号が出力されると、停止指令生成部80は、後述する読取停止処理(図10参照)によって読取フロントエンド81へ読取停止指令を出力(読取停止指令値rd_stopを1にセット)する。読取フロントエンド81は、停止指令生成部80から読取停止指令が出力されている場合は、新たな画像の読み取りは行わず、読取動作を一時停止する。
また、画データ処理部85が備える再開信号生成部88は、停止信号生成部87から読取停止信号が出力されたことによりCIS105による原稿の読取動作が一時停止した場合において、読取動作を再開させるための読取再開信号を出力する。即ち、停止信号生成部87から読取停止信号が出力されている間、バッファ89aの空き容量が予め設定した再開規定容量以上に達したか否かを判断し、達した場合に読取再開信号を出力(オン)する。
停止指令生成部80は、画データ処理部85内の停止信号生成部87から読取停止信号が入力されているとき、後述する読取停止処理(図10参照)によって、読取動作を一時停止させるための読取停止指令を読取フロントエンド81へ出力(読取停止指令値rd_stopを1にセット)する。加えて、後述する駆動停止処理(図11参照)によって、駆動中のモータ(読取モータMT1又は読取搬送モータMT2)の駆動を停止させるための駆動停止指令を出力(駆動停止指令値mt_stopを1にセット)する。読取停止指令及び駆動停止指令は、いずれも、後述するように逓倍パルス発生周期に同期して(逓倍パルス出力タイミングと実質同タイミングで)出力される。
まず、図10の読取停止処理について説明する。図10は、停止指令生成部80が実行する読取停止処理を表すフローチャートである。停止指令生成部80は、読取機能の動作開始によってこの読取停止処理を実行すると、まず、読取停止指令値rd_stopを0にリセットする(S610)。そして、逓倍パルス生成部64から逓倍パルスが出力されたときに(S620:YES)、画データ処理部85内の停止信号生成部87から読取停止信号が出力(オン)されている場合は(S630:YES)、読取動作を一時停止させるためのS640以下の処理に移行する。
S640では、逓倍パルスカウント値Cmが1であるか否か、即ち、エッジ検出後の最初の逓倍パルスが出力されたタイミングであるか否かを判断する。そして、Cm=1ならば、その時点でのエッジカウント値enc_cntを再開位置保持値ECとして保持(記憶)し(S670)、読取停止指令値rd_stopを1にセットして(S680)、この読取停止処理を終了する。
つまり、エンコーダエッジ検出後の最初(1番目)の逓倍パルスが出力されたときに、読取停止信号がオンであるということは、現時点においてバッファ89aにN+1ライン分の空き容量がないということである。一方、現時点においては、直前のエンコーダエッジ間におけるN−1番目の逓倍パルスに対応したラインの画像データまではバッファ89aに書き込まれているものの、当該直前のエンコーダエッジ間における最終(N番目)逓倍パルス出力時に読み取ったラインの画像データは、まだバッファ89aには書き込まれておらず、これから書き込もうとしている状態である。
この状況は即ち、新たにNライン分の画像データを読み取ったとしても、その読み取った画像データを全てバッファ89aに書き込めるだけの空き容量がバッファ89aにない、という状況である。
そこでこの場合は、新たなラインの画像読取は一時停止させるのである(S680)。加えて、現時点でのエッジカウント値を、再び読取動作を開始する際の読取再開位置を示す情報である再開位置保持値ECとして保持しておくのである(S670)。なお、このようにエンコーダエッジ検出後の最初の逓倍パルス出力タイミングにおいて読取動作を一時停止するようにしても、その最初の逓倍パルス出力によって読取フロントエンド81からはCIS105へ読出クロックCLが出力されるため、直前のエンコーダエッジ間における最終逓倍パルス出力タイミングにて読み取った画像情報(画素信号)については、その読出クロックCLによってCIS105から出力され、画像データに変換されてバッファ89aへ書き込まれることとなる。
一方、逓倍パルスが出力されたときに読取停止信号がオンされている場合であって、当該逓倍パルスがエンコーダエッジ間における最初の逓倍パルスではない(つまり2番目以降の逓倍パルスである)場合は(S640:NO)、最終(N番目)逓倍パルスであるか否かが判断される(S650)。この状況は即ち、バッファ89aの空き容量はN+1ライン分よりも少ない(つまりNライン分以下)であるものの、少なくとも最終逓倍パルスに対応したラインの画像データまで書き込めるだけの空き容量はある状況である。
そこで、最終逓倍パルスが出力されるまでは(S650:NO)、画像の読取動作を継続し、最終逓倍パルスが出力されたならば(S650:YES)、次の逓倍パルスの出力を待つ(S660)。即ち、次のエンコーダエッジ期間における最初の逓倍パルスが出力されるまで待つのである。そして、該次の逓倍パルスが出力された後に(S660:YES)、その時点でのエッジカウント値enc_cntを再開位置保持値ECとして保持し(S670)、読取フロントエンドへ読取停止指令を出力する(S680)。
なお、最終逓倍パルス出力後にさらに、S660の処理にて次の逓倍パルス出力まで待つのは、CIS105に対し、その最終逓倍パルスに対応した画像読取結果(受光素子に蓄積された電荷)を画素信号として出力させるためである。
また、図10のフローチャートからも明らかであるが、エンコーダエッジ間における2番目以降の逓倍パルス出力時に読取停止信号がオンされた場合であっても、画データ処理部85の画像処理進行具合によっては、最終のN番目逓倍パルスまで読取動作を継続させる過程でバッファ89aに十分な空き容量(N+1ライン分以上の空き容量)が生じることもある。その場合は、S630の判断処理からS640には移行しないため、引き続き読取動作が継続されることとなる。
また、読取フロントエンド81は、逓倍パルス生成部64から逓倍パルスが入力されたときに、停止指令生成部80から読取停止指令が出力されている(読取停止指令値rd_stop=1)ならば、CIS105に対して新たな画像の読み取りは行わせない。但し、既述の通り、逓倍パルス入力によって読出クロックCLは出力されるため、直前の逓倍パルスにおける読取結果までは確実にバッファ89aへ書き込まれる。
停止指令生成部80は、図10に示した読取停止処理に加え、読取モータMT1又は読取搬送モータMT2を一時停止させるための駆動停止処理も行う。図11は、この駆動停止処理を示すフローチャートである。停止指令生成部80は、読取機能の動作開始によってこの読取停止処理を実行すると、まず、駆動停止指令値mt_stopを0にリセットする(S710)。そして、図9のS520と同様、読取動作が終了したか否かを判断する(S720)。
読取動作が終了したならば、駆動停止指令値mt_stopを0にリセットして(S750)、この駆動停止処理を終了するが、読取動作が終了していない場合は、画データ処理部85内の停止信号生成部87から読取停止信号が出力(オン)されているか否かを判断する(S730)。そして、読取停止信号がオンでなければS710に戻るが、オンならば、駆動停止指令値mt_stopを1にセットし(S740)、S720に戻る。駆動停止指令値mt_stopは、モータ制御部66に入力される。そして、モータ制御部66は、後述するように、駆動停止指令値mt_stopが1にセットされた場合、読取モータMT1又は読取搬送モータMT2の駆動を停止させる。
ASIC3が備えるパラメータ格納部53は、各モータMT1,MT2の制御やCIS105の制御などASIC3内で行われる各種制御処理に必要な各種パラメータが格納されたものであり、CIS105の制御や画像処理等に必要なパラメータが格納された各種初期化パラメータ部56、モータ制御部66が各モータMT1,MT2の駆動を制御するために必要な各種モータ制御パラメータmt_paramが格納されたモータ制御パラメータ部57、バッファ管理部86がその動作を実行するために必要な各種パラメータが格納されたバッファ管理パラメータ部58等を備えている。モータ制御パラメータ部57に格納された複数種類のモータ制御パラメータmt_paramは、モータ制御部66へ入力される。
また、ASIC3が備えるモータ制御部66は、駆動回路67へ駆動指令を出力することにより読取モータMT1を制御するものである。具体的には、読取機能の作動時に、CPU51からの指令を受けて、位置カウンタ62及び周期カウンタ63の出力enc_cnt,enc_cyc(=Tp)に基づき、制御対象の読取モータMT1を制御する。モータ制御部66は更に、ADF装置150を構成する読取搬送モータMT2の制御も行う。即ち、モータ制御部66は、読取機能の作動時に、CPU51からの指令を受け、制御対象として読取モータMT1及び読取搬送モータMT2のいずれか一方を選択し、選択した制御対象を制御するために、図12に示すモータ制御処理の実行を開始する。尚、静止原稿読取機能の作動時においては、制御対象として読取モータMT1が選択され、自動原稿読取機能の作動時においては、制御対象として読取搬送モータMT2が選択される。
その他、モータ制御部66は、読取対象の読取が完全に終了する前に、駆動停止指令値mt_stopに基づいて図12に示すモータ駆動処理を終了(つまり制御対象のモータを一時停止)した場合、CPU51から読取再開指令が入力されたときに限って、再び、図12に示すモータ制御処理の実行を開始する。
図12に、モータ制御部66が実行するモータ制御処理のフローチャートを示す。モータ制御部66は、図12に示す処理を開始すると、モータ制御パラメータ部57に設定された各種モータ制御パラメータmt_param等に従ってモータ駆動設定を行い、モータ回転方向を順方向(画像読取方向)に設定する(S810)。また、S810では、読取解像度に応じて、モータの目標回転速度を設定する。
また、この処理を終えると、モータ制御部66は、先駆けてS810で行った駆動設定の内容に従い、制御対象のモータを制御する(S820)。具体的に、S820では、設定された目標回転速度周辺まで、モータの回転を加速させ、その後、搬送負荷によらずモータの回転速度が目標回転速度となるように、モータの制御を行う。本実施形態では、このようにして、搬送対象(CIS105又は原稿)を一定速度で移動させる。
そして、当該制御の実行中に、原稿の読取が終了したか否かを判断し(S830)、読取終了していない場合には、停止指令生成部80から入力される駆動停止指令値mt_stopが1であるか否かを判断する(S840)。そして、読取動作が終了しておらず(S830:NO)、駆動停止指令値mt_stopが1でない場合には(S840:NO)、S830,S840での判断を行いながら、モータの制御を継続的に実行する。
そして、駆動停止指令値mt_stopが1に切り替わった場合には、位置カウンタ62によるエッジカウント値enc_cntが変化したか否か、即ち、次のエンコーダエッジが立ち上がったか否かを判断する(S850)。そして、次のエンコーダエッジの立ち上がりが検出されると(S850:YES)、制御対象のモータを減速・停止させる処理を行う(S860)。このように、駆動停止指令値mt_stopが1となったときにすぐに減速・停止させず、次のエンコーダエッジが検出されるのを待ってから減速・停止させるのは、読取動作を一時停止する際の最後の逓倍パルス(N番目の逓倍パルス)に対応したラインの画像まで確実に読み取る(電荷を蓄積する)ためである。
また、モータが停止した後には、モータ駆動設定を行い、モータ回転方向を画像読取方向とは逆方向に設定すると共に、モータの目標回転速度及び回転時間を、予め定められた所定値に設定する(S870)。このS870の処理を終えると、モータ制御部66は、モータを、駆動設定時の設定内容に従い、所定時間、逆方向に回転させる(S880)。この動作によって、モータの回転力により搬送される搬送対象は、駆動停止指令値mt_stopが1に切り替わった時点の位置よりも前の位置であって、後に順方向へ再駆動させたときに前回(一時停止前)最後に読み取ったラインに達するまでには定速状態となれるような位置に、後退させられる。そして最終的に、S890によるモータ減速停止処理により、モータの回転・停止を完了させる。
一方、モータ制御部66は、原稿の読み取りが全て終了すると(S830:YES)、当該読取時に動作した読取機能が静止原稿読取機能(図12ではFB(フラットベッド)と表記)であるかそれとも自動搬送読取機能(図12ではADFと表記)であるかを判断する(S900)。そして、静止原稿読取機能(FB)である場合には、制御対象のモータを減速・停止させる処理を行い(S910)、モータが停止した後には、モータ駆動設定を行って、モータ回転方向を画像読取方向とは逆方向に設定する(S920)。このS920の処理を終えると、モータ制御部66は、制御対象のモータ(この場合は読取モータMT1)を駆動して、搬送対象であるCIS105を元の原稿設定基準位置(ホームポジション)まで搬送する(S930)。そして、CIS105がホームポジション近傍まで搬送されてきたら、読取モータMT1の減速・停止処理を行ってCIS105を一時停止させる(S940)。
その他、当該読取時に動作した読取機能が静止原稿読取機能(FB)ではなく自動搬送読取機能(ADF)である場合は、モータ制御部66は、制御対象のモータ(この場合は読取搬送モータMT2)を、搬送中の原稿が排紙トレイ166に排出されるまで駆動し(S950)、原稿の排出が終了した時点で、モータを減速・停止させる(S960)。
このようにして、バッファ89aが容量不足になるとCIS105による読取動作を一時停止させると共に、駆動対象のモータを所定量回転させて搬送対象を一時停止させるが、その後、画データ処理部85内の再開信号生成部が再開信号生成処理を実行する。図13に、再開信号生成部88が実行する再開信号生成処理のフローチャートを示す。
再開信号生成部88は、読取動作が一時停止すると、まず、読取再開信号をオフする(S1010)。そして、原稿の読み取りが終了したか否かを判断し(S1020)、終了したならばそのままこの再開信号生成処理を終了するが、終了していないならば(S1020:NO)、バッファ89aの空き容量が所定の再開規定容量以上となっているか否かを判断する(S1030)。この再開規定容量は、停止信号生成部87による読取停止信号の出力判定基準であるN+1ライン分の容量(図9のS530参照)よりも大きい容量である。
そして、空き容量が再開規定容量未満である間は(S1030:NO)、読取再開信号をオフしたままとして(S1050)、画像処理等の進行によりバッファ89aの容量が再び空くのを待つ。そして、空き容量が再開規定容量以上になると(S1030:YES)、読取再開信号をオンする(S1040)。CPU51は、この読取再開信号を監視しており、読取再開信号がオンになると、モータ制御部66に対して読取再開指令を入力し、モータ制御部66に図12に示す処理をS810から実行させる。これにより、搬送対象(原稿又はCIS105)の搬送が再開されることとなる。
また、読取動作が一時停止すると、停止指令生成部80において、図14に示す読取再開処理が実行される。図14は、読取再開処理を示すフローチャートであり、読取動作の一時停止によって停止指令生成部80がこの処理を開始する。開始後、画データ処理部85内の停止信号生成部87からの読取停止信号がオフであって(S1110:YES)、画データ処理部85内の再開信号生成部88からの読取再開信号がオンとなっていて(S1120:YES)、且つ位置カウンタ62からのエッジカウント値enc_cntが再開位置保持値ECに一致した場合(S1130)、即ち、バッファ89aの空き容量も十分に確保され、且つ、CIS105が、前回最後に読取動作を行ったラインを超えて最初にエッジ検出信号が出力されたときに、読取停止指令値rd_stopが0にリセットされる(S1140)。これにより、読取フロントエンド81は、当該エッジ検出信号出力後の最初の逓倍パルスから、CIS105に対して画像の読み取りを再開させることとなる。
(4)第1実施形態の作用・効果
本実施形態の多機能装置1が備える画像読取装置100は、上述した構成により、バッファ89aの空き容量に応じて読取動作を一時停止させる際は、図4(a)に示すように、エッジ検出信号が出力される毎に1番目〜N番目まで順次出力される逓倍パルスのうち最終(N番目)の逓倍パルス出力時(詳しくはその逓倍パルス出力に同期して出力されるラインスタート信号)に対応したラインの画像読取及びその読み取った画像データのバッファ89aへの書き込みまで行った状態で、読取動作を一時停止させる。図4(a)は、エッジ検出毎に4つの逓倍パルスが出力される例であって、エッジカウント値enc_cnt=Cnにおける最終の4番目逓倍パルスの出力時に対応したラインを一時停止前の最終読取位置とした例を示している。この場合、同図(a)に示すように、次のエッジカウント値enc_cnt=Cn+1における最初の逓倍パルスの出力時に対応したラインが、読取動作を再開すべき位置である。なお、図4(a)の例では、再開位置保持値ECとしてCn+1が保持されることになる。
そして、一時停止後にバッファ89aの空き容量が回復すると(再開規定容量以上となる)、CIS105が再び順方向へ搬送されるわけだが、図4(b)に示すように、エッジカウント値enc_cntが再開位置保持値EC(=Cn+1)に一致するまでは読取動作は行わない。そして、エッジカウント値enc_cntが再開位置保持値EC(=Cn+1)に一致したときに、読取動作を再開させる。つまり、そのエッジカウント値enc_cnt=Cn+1のエッジ検出信号後最初の逓倍パルス出力時に対応したライン(図4(b)における再開後第1読取ラインの位置)から、画像の読み取りを再開させるのである。
この結果、一時停止前の最終読取ラインに対して本来再開すべきラインの位置と実際に読み取りを再開する位置との間にずれが生じない。言い換えれば、一時停止前の最後の画像読取位置と再開後の最初の画像読取位置が相対的に適切な関係となる。そのため、画像読取結果において再開位置前後(一時停止位置前後)での画像のずれ・乱れは生じず、一時停止せずに読み取りを継続した場合と同等品質の画像読取結果が得られる。
また、一時停止すべきか否かの判断は、バッファ89aの空き容量に基づいて行われる。具体的には、本実施形態では、N+1ライン分以上の空き容量がなくなると、読取停止信号が停止指令生成部80へ入力される。停止指令生成部80は、逓倍パルス出力毎にこの読取停止信号を確認し、オンならば(即ちN+1ライン分の空き容量がなければ)、読取動作を停止させるための処理を行う。
即ち、エッジ検出信号出力後の最初の逓倍パルス出力時に読取停止信号がオンならば、当該最初の逓倍パルス以後の画像読取は行わず、直前のエッジ周期期間における最終逓倍パルス出力時に読み取った画像データまでをバッファ89aへ書き込んで、読取動作を一時停止する。一方、2番目以降のある逓倍パルス出力時に読取停止信号がオンされていたならば、少なくともその逓倍パルスから最終逓倍パルスの出力時までは画像読取を継続した上で、読取動作を一時停止する。
いずれにしても、最終読取ラインは必ず、エッジ周期期間における最終(N番目)逓倍パルス出力時に対応した位置とするのである。そして、それを可能とするために、停止信号生成部87は、N+1ライン分以上の空き容量がなくなったときは読取停止信号を出力するようにしているのである。
また、一時停止した後は、バッファ89aの空き容量がN+1ライン分の容量よりも大きい再開規定容量以上となった場合に、読取再開信号を出力して再開を許可するようにしている。そのため、バッファ89aに十分な空き容量が確保された状態で読取動作を再開させることができ、再開後に再び一時停止してしまう頻度が抑制されるため、安定した画像の読み取りが可能となる。
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、CIS105は本発明の読取手段に相当し、バッファ89aは本発明の一時記憶手段に相当し、読取モータMT1及び読取搬送モータMT2はいずれも本発明の搬送手段に相当し、読取エンコーダEN1及び読取搬送エンコーダEN2はいずれも本発明の検出信号出力手段に相当し、周期カウンタ63は本発明の検出周期計測手段に相当し、逓倍パルス生成部64は本発明の逓倍パルス生成手段に相当し、停止信号生成部87及び停止指令生成部80は本発明の停止制御手段に相当し、再開信号生成部88は本発明の再開制御手段に相当し、ラインスタート信号は本発明の読取タイミング信号に相当する。また、ASIC3は全体として本発明の読取制御手段として機能する。
また、図9の停止信号生成処理におけるS530の判断処理の基準となるN+1ライン分の空き容量は、本発明の第1の容量に相当し、図12のモータ制御処理におけるS860〜S890の処理は、本発明の再開制御手段の機能に相当し、図13の再開信号生成処理におけるS1030の判断処理の基準となる再開規定容量は、本発明の再開基準容量に相当する。
[第2実施形態]
本実施形態の画像読取装置210の電気的構成(ブロック図)を、図15に示す。本実施形態の画像読取装置210も、第1実施形態で説明した画像読取装置100と同様、多機能装置を構成するものであっって、自動搬送読取機能及び静止原稿読取機能を備えている。また、装置全体の構成や機能も、第1実施形態の画像読取装置100とほとんど同じである。そして、本実施形態の画像読取装置210が第1実施形態の画像読取装置100と異なるのは、停止指令生成部91の機能及び画データ処理部95の機能(詳細にはバッファ管理部96及び停止信号生成部97の機能)である。従って、以下の説明では、主として、第1実施形態の画像読取装置100と異なる上記各機能について説明することとし、その他の構成や機能の説明は省略する。
なお、図15では、第1実施形態の図3に示した、静止原稿読取機能を実現するための 読取モータMT1や読取エンコーダEN1等については、図示を省略している。そして、ADF装置150を構成する(つまり自動搬送読取機能で使用される)読取搬送モータMT2や読取搬送エンコーダEN2のみを示している。
図15に示す如く、本実施形態の画像読取装置210が備えるASIC201には、読取搬送エンコーダEN2からのパルス信号(A相信号、B相信号)を処理してCIS105の位置や速度等に関連した各種信号を生成・出力する読取搬送エンコーダ処理部70を備えている。但し、この読取搬送エンコーダ処理部70の構成・機能は、位置カウンタ72によるエッジ数カウント処理(図5参照)の開始タイミングが第1実施形態の位置カウンタ62と異なることを除き、図3に示した読取エンコーダ処理部60の構成・機能と同じである。つまり、主な違いは、処理対象のエンコーダが読取エンコーダEN1であるか読取搬送エンコーダEN2であるかの違いだけである。そのため、読取搬送エンコーダ処理部70を構成する各要素については、位置カウンタ72を除き、図3と同じ符号を付し、その説明を省略する。また、本実施形態のASIC201にも、図3に示した読取エンコーダEN1や読取モータMT1が設けられているが、図15ではこれらの図示を省略している。
なお、ADF装置150を構成する読取搬送エンコーダEN2に対応した位置カウンタ72は、既述の通り、自動搬送読取機能の作動時に、図5に示すエッジ数カウント処理を開始し、以後は静止原稿読取機能を用いた読み取りの場合と同様に、継続的にエッジカウント値enc_cntを更新する。
次に、図16に、本実施形態の停止信号生成部97が実行する停止信号生成処理のフローチャートを示す。本実施形態の停止信号生成部97は、この停止信号生成処理を開始すると、まず、読取停止信号をオフする(S1210)。そして、読取動作が終了したか否か、即ち、原稿1枚分の読取が全て終了したか否かを判断する(S1220)。このとき、読取が全て終了したならばそのままこの停止信号生成処理は終了するが、読取が全て終了していない場合は、バッファ89aの空き容量がM+1ライン分の画像データを書き込むのに必要な容量以上であるか否かを判断する(S1230)。
ここで、Mは、逓倍数Nよりも小さい自然数である。即ち、上記第1実施形態の停止信号生成部87が、図9に示すようにバッファ空き容量がN+1ライン分の画像データを書き込むのに必要な容量以上であるか否かを判断するようにしたのに対し、本実施形態では、判断基準となる空き容量の閾値をより少ないM+1ライン分に設定している。これにより、N+1ライン分以上の空き容量はなくなったとしても、M+1ライン分以上の空きがある間は読取停止信号が出力されないため、読取停止信号の出力頻度(ひいては読取動作の一時停止頻度)が上記第1実施形態よりも抑制される。
このように、N+1ライン以上の空き容量までなくてもM+1ライン以上の空き容量があれば読取停止信号を出さないのは、仮にN+1ライン分以上の空き容量はないとしてもM+1ライン分以上の空きさえあれば、その後の画データ処理部95内における画像処理の進行によって画像処理済みの画像データがRAM52へ格納されることで、バッファ89aの空き容量がある程度確保され続けることが期待できるからである。
そして、M+1ライン分以上の空き容量があれば、読取停止信号をオフにして(S1250)、S1220の処理に戻るが、M+1ライン分以上の空き容量がなければ(つまりMライン分以下)、読取停止信号をオンして(S1240)、S1220の処理に戻る。
上記のような処理によって停止信号生成部97から読取停止信号が出力されると、停止指令生成部91は、後述する読取停止処理(図17参照)によって読取フロントエンド81へ読取停止指令を出力(読取停止指令値rd_stopを1にセット)する。
図17に、本実施形態の停止指令生成部91が実行する停止指令生成処理のフローチャートを示す。本実施形態の停止指令生成部91は、この停止指令生成処理を開始すると、まず、読取停止指令値rd_stopを0にリセットする(S1310)。そして、逓倍パルス生成部64から逓倍パルスが出力されたときに(S1320:YES)、画データ処理部95内の停止信号生成部97から読取停止信号が出力(オン)されている場合は(S1330:YES)、読取動作を一時停止させるためのS1340以下の処理に移行する。
S1340では、現時点においてまだバッファ89aに書き込んでいない画像のライン数であるN−(Cm−2)がMよりも大きいか否か、つまり、現時点でのバッファ89aに、これからN番目逓倍パルスまでの画像読取結果(画像データ)を書き込めるだけの空き容量がないか否かを判断するのである。なお、N−(Cm−2)におけるCm−2とは、既にバッファ89aへ書き込み済みの画像データのライン数を示す量である。
前回の逓倍パルス出力時は読取停止信号がオフだった(即ち少なくともM+1ライン分の空き容量があった)にもかかわらず、今回の逓倍パルス出力時において読取停止信号がオンされているということは、この間のバッファ89aへの画像データ書き込み(1ライン分の書き込み)によって、現時点での空き容量がMライン分になった、ということである。
そのため、S1340では、現時点での空き容量Mによって最終逓倍パルスまで画像読取を行えるか否かを判断している。このS1340の判断にて否定判定された場合は、これからN番目逓倍パルスまでの画像読取結果(画像データ)を書き込めるだけの空き容量は存在しているということなので、一時停止のための処理を行うことなくS1320へ戻る。
一方、S1340の判断にて肯定判定された場合は、これからN番目逓倍パルスまでの画像読取結果(画像データ)を書き込めるだけの空き容量はないということなので、S1350に進み、破棄バッファライン数としてCm−1の値をバッファ管理部96へ通知する。つまり、読取を継続しても最終N番目の逓倍パルス出力に対応したラインまで完全に画像読取を行えない(画像データのバッファ89aへの書き込みができない)わけであるため、現在のエッジ周期期間において既に読み取った画像データを無効としてバッファ89aから破棄するよう、バッファ管理部96へ通知するのである。
バッファ管理部96は、停止指令生成部91から通知された破棄バッファライン数に従い、既にバッファ89aへ書き込まれている画像データを破棄(無効化)する。加えて、CIS105により読み取られた直後であってこれからバッファ89aへ書き込まれるはずであった最新の読取画像の画像データについても無効とする。これにより、バッファ89aには、直前のエッジ周期期間における最終逓倍パルス出力時に対応したラインの画像データまでが書き込まれている状態となる。
バッファ管理部96へ破棄バッファライン数を通知した後は、現時点でのエッジカウント値enc_cntを再開位置保持値ECとして保持(記憶)し(S1360)、読取停止指令値rd_stopを1にセットして(S1370)、この読取停止処理を終了する。
上述した構成により、本実施形態の画像読取装置210によれば、画データ処理部95による画像処理の進行を見越して、読取停止信号をオンする条件を第1実施形態よりも緩めている。つまり、N+1ライン分以上の空き容量がなくなっても、M+1ライン分の空きがある限りは読取停止信号をオンしない。そのため、読取停止信号がオンする頻度を少なくすることができ、ひいては画像読取動作の一時停止・再開動作の頻度を少なくすることができる。そのため、より安定した画像の読み取りが可能となり、読取速度も向上する。
なお、本実施形態において、再開規定容量は、上記第1実施形態と同様、N+1ライン分の容量よりも大きい容量としてもよいが、M+1ライン分の容量よりも大きい容量として設定するようにしてもよい。
[変形例]
尚、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記実施形態では逓倍パルス出力毎に読取停止信号の状態を確認するようにしたが、エッジ検出信号が出力される毎、又は、エッジ検出信号の出力後最初の逓倍パルスが出力される毎に、バッファ89aの空き容量の確認を行うこととして、2番目〜N番目までの逓倍パルス出力時には確認しないようにしてもよい。
また、上記実施形態では、再開規定容量としてN+1ライン分よりも大きい容量を設定するようにしたが、N+1ライン分の容量を設定してもよい。再開規定容量を大きく設定すればするほど、再開後に再び一時停止する頻度を抑えることができるが、あまり大きい容量に設定すると再開そのものが遅れ、読取動作の速度低下を招くおそれもある。よって、一時停止の頻度を抑制することと、一時停止後から再開までの時間をできるだけ短くすることのバランスを図りつつ、適切な再開規定容量を設定するのが望ましい。
また、逓倍パルス生成部64による逓倍パルスの具体的生成方法も、上記実施形態で説明した方法以外に種々の方法を採用することができる。例えば、既述の特許文献1に記載された方法を採用することもできる。
また、上記実施形態では、2相(A相およびB相)のパルス信号におけるある一つのエッジ(A相信号の立ち上がりエッジ)を基準として逓倍パルス周期terを算出し、その算出結果に基づいて、次に再びA相信号のエッジが立ち上がるまでのエッジ周期期間内にN個の逓倍パルスを順次生成・出力するようにしたが、これは一例であって、例えば、A相(又はB相)の立ち上がり・立ち下がり両エッジ(即ち2つのエッジ)を基準として逓倍パルス生成を行ったり、A,B各相の立ち上がり・立ち下がり両エッジ(即ち4つのエッジ)に基づいて逓倍パルス生成を行っても良い。
また、上記実施形態では、読取手段として、CMOSセンサを備えたCIS105を例に挙げたが、これもあくまでも一例であって、読取手段としてCCDセンサ(縮小光学方式)を用いてもよい。
1…多機能装置、51…CPU、52…RAM、53…パラメータ格納部、56…各種初期化パラメータ部、57…モータ制御パラメータ部、58…バッファ管理パラメータ部、59…メモリコントローラ、60…読取エンコーダ処理部、61…エンコーダエッジ検出部、62,72…位置カウンタ、63…周期カウンタ、64…逓倍パルス生成部、65…逓倍パルスカウント部、66…モータ制御部、67…駆動回路、70…読取搬送エンコーダ処理部、80,91…停止指令生成部、81…読取フロントエンド、82…ラインスタート信号生成部、82…読取フロントエンド、83…読出クロック生成部、84…LED点灯制御信号生成部、85,95…画データ処理部、86,96…バッファ管理部、87,97…停止信号生成部、88…再開信号生成部、89…ローカルRAM、89a…バッファ、90…クロック生成部、100,210…画像読取装置、105…CIS、106…キャリッジ、107…駆動プーリ、108…従動プーリ、109…ベルト、111…ガイド軸、112…静止原稿押さえ、150…ADF装置、151…分離機構、152…搬送機構、159…給紙ローラ、200…画像形成装置、EN1…読取エンコーダ、EN2…読取搬送エンコーダ、MT1…読取モータ、MT2…読取搬送モータ