(57)【特許請求の範囲】
【請求項１】
画像読取装置であって、
光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取部と、
前記シフトパルスの出力タイミングを制御するシフトパルス制御部と、を備え、
前記シフトパルス制御部は、
前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、
前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、
ことを特徴とする画像読取装置。
【請求項２】
請求項１に記載の画像読取装置であって、
前記シフトパルス制御部は、
前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合に遅延フラグを有効にし、今回のシフトパルスの出力が、決定された今回の出力タイミングにおいて当該遅延フラグが有効である場合には、当該遅延フラグを無効にし、今回のシフトパルスの出力を、決定された今回の出力タイミングより遅らせる、
ことを特徴とする画像読取装置。
【請求項３】
画像読取方法であって、
光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取ステップと、
前記シフトパルスの出力タイミングを制御するシフトパルス制御ステップと、を行い、
前記シフトパルス制御ステップでは、
前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、
前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、
ことを特徴とする画像読取方法。
【請求項４】
コンピューターを、画像読取装置として機能させるプログラムであって、
光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取ステップと、
前記シフトパルスの出力タイミングを制御するシフトパルス制御ステップと、を前記コンピューターに実行させ、
前記シフトパルス制御ステップでは、
前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、
前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置、画像読取方法、および、プログラムに関する。
【背景技術】
【０００２】
一般的なイメージスキャナー（画像読取装置）では、受光部に蓄積された電荷をシフトパルスによりシフトレジスターへシフトさせ、次のシフトパルスまでにシフトレジスターの電荷をコントローラーへ転送する（例えば、特許文献１）。
【０００３】
そして、近年のイメージスキャナーでは、高速に画像の読み取りを行うために、シフトパルスの出力間隔について従来よりも短く設定（例えば、「設定値Ａ」とする）される場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２４６６３６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、シフトパルスを出力すべきタイミングになったとしても、他のソフトウェア処理が優先的に実行されていると、そのタイミングでシフトパルスを出力できない場合がある。かかる場合には、その優先的なソフトウェア処理が終了するまでシフトパルスの出力は延期される。
【０００６】
こうして、シフトパルスの出力が予定より遅れると、次にシフトパルスを出力するまでの間隔が短縮されてしまう場合がある（設定値Ａよりも短くなる）。このとき、画像データの転送に必要な時間を十分に確保できなくなる。
【０００７】
本発明は、シフトパルスの出力が予定より遅れた場合でも、画像データの転送に必要な時間をなるべく確保する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための本発明の一態様は、画像読取装置であって、光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取部と、前記シフトパルスの出力タイミングを制御するシフトパルス制御部と、を備え、前記シフトパルス制御部は、前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、ことを特徴とする。
上記の画像読取装置であって、前記シフトパルス制御部は、前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合に遅延フラグを有効にし、今回のシフトパルスの出力が、決定された今回の出力タイミングにおいて当該遅延フラグが有効である場合には、当該遅延フラグを無効にし、今回のシフトパルスの出力を、決定された今回の出力タイミングより遅らせる、ことを特徴としてもよい。
上記の課題を解決するための本発明の他の態様は、画像読取方法であって、光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取ステップと、前記シフトパルスの出力タイミングを制御するシフトパルス制御ステップと、を行い、前記シフトパルス制御ステップでは、前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、ことを特徴とする。
上記の課題を解決するための本発明のさらに他の態様は、コンピューターを、画像読取装置として機能させるプログラムであって、光電変換素子に蓄積された電荷をシフトパルスによってシフトレジスターに転送し、該シフトレジスターに格納された電荷を、読み出しクロックによって、該シフトレジスターの末端の出力部に移動させ、該出力部で、電荷を電気信号に変換して、Ａ／Ｄ変換部に送る画像読取ステップと、前記シフトパルスの出力タイミングを制御するシフトパルス制御ステップと、を前記コンピューターに実行させ、前記シフトパルス制御ステップでは、前記シフトパルスの出力タイミングを、入力された周期割り込み信号の回数に基づいて決定し、前回のシフトパルスの出力が、決定された前回の出力タイミングよりも遅れた場合には、今回のシフトパルスの出力を、決定された今回の出力タイミングより、前記周期割り込み信号の周期単位で遅らせる、ことを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の画像読取装置５０の概略構成の一例を示すブロック図である。
【図２】本願の画像読取制御の概要について説明するためのタイミングチャートである。
【図３】本願のシフトパルスの出力処理について説明するためのフローチャートである。
【図４】従来の画像読取制御の概要について説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態の一例を図面を参照して説明する。
【００１１】
図１は、本発明の一実施形態が適用された画像読取装置５０の概略構成の一例を示すブロック図である。
【００１２】
画像読取装置５０は、筐体の上面に原稿台（不図示）を備えた、いわゆるフラットベッド型画像読取装置である。画像読取装置５０は、イメージセンサー２２０を走査して、透明板の原稿台に載置された原稿の画像を読み取る。画像読取装置５０は、スキャナーに限られず、スキャン機能を有するファクシミリ、コピー機、複合機等であってもよい。
【００１３】
画像読取装置５０は、被読取媒体である原稿を載せるための上向きの原稿台（不図示）と、この原稿台の原稿載置面（盤面）およびイメージ読取窓を上からカバーする蓋（不図示）と、を備える。蓋は、原稿台にヒンジ機構を介して結合しており、開閉可能である。
【００１４】
また、蓋と一体となって、イメージ読取窓の上側に、ＡＤＦ（給紙装置）３００が設けられている。ＡＤＦ３００は、ＤＣモーター３１０、給紙トレイ（不図示）、搬送ローラー（不図示）、排紙トレイ（不図示）、等を備える。ここで、搬送ローラーの回転は、ＤＣモーター３１０によって制御される。ＡＤＦ３００は、給紙トレイ上に載置された原稿を、イメージ読取窓の上面へ送り込んで通過させることができる。なお、ＤＣモーター３００には、搬送ローラーの回転量（すなわち、原稿の搬送量）に応じてパルスを出力するエンコーダーが備えられている。
【００１５】
また、画像読取装置５０は、図示するように、ＬＥＤ光源２１０及びイメージセンサー（例えば、ＣＣＤカラーイメージセンサー）２２０を搭載したキャリッジ２００を原稿台の下に備える。さらに、画像読取装置５０は、キャリッジ２００の往復移動を制御するキャリッジ駆動機構（不図示）と、画像読取装置５０の全体を制御し、画像を読み取るための種々の処理を行うコントローラー１００と、を備えている。
【００１６】
キャリッジ２００は、イメージセンサー２２０を副走査方向に運搬する。キャリッジ２００は、原稿台の盤面およびイメージ読取窓に対し平行なガイド用のシャフト等にスライド自在に取り付けられており、キャリッジ駆動機構のモーターにより回転するベルトにより牽引され、往復移動する。キャリッジ２００の移動量は、キャリッジ駆動機構のモーターの回転量に応じてパルスを出力するエンコーダーの出力値により制御される。
【００１７】
すなわち、キャリッジ駆動機構は、キャリッジに取り付けられたベルトを回転させるためのモーターと、モーターの回転量に応じてパルスを出力するエンコーダーと、を備えている。
【００１８】
なお、ＡＤＦ３００により原稿を搬送させながら読み取りを行う場合、キャリッジ２００は、イメージ読取窓の下の所定位置に固定される。
【００１９】
ＬＥＤ光源２１０は、赤色（Ｒ）ＬＥＤ、緑色（Ｇ）ＬＥＤ、青色（Ｂ）ＬＥＤからなり、ＲＧＢの３色の光を所定の順序で発生する。本実施形態では、ＬＥＤ光源２１０は、通常の原稿の１ライン分の読み取りを行う場合には、赤色ＬＥＤ、緑色ＬＥＤ、青色ＬＥＤの順に光を発生する。そして、原稿の画像データの生成に必要なライン数分の読み取りを行うために、同様の発光動作を繰り返す。各色のＬＥＤの発光時間は、色ごとに予め定められており、点灯してからその定められた時間が経過したときに、消灯する。なお、各色のＬＥＤ光源２１０の点灯は、所定電流（後述するメイン制御部１１０からの電流）が供給されて行われる。
【００２０】
イメージセンサー２２０は、原稿に反射した光を受光し、受光量に応じた電荷を蓄積し、画像読取データ（電気信号）として、コントローラー１００に送る。
【００２１】
イメージセンサー２２０は、主走査方向に並んだ複数のセンサーチップからなる。各センサーチップは、通常のＣＩＳ（Contact Image Sensor）やＣＣＤ（Charge Coupled Device）イメージセンサーと同様の構成を備えている。すなわち、各センサーチップは、光電変換素子（フォトダイオード）と、シフトゲートと、シフトレジスターと、を備える。そして、光電変換素子に蓄積された電荷を、シフトゲートを開通させてシフトレジスターへ転送し、シフトレジスターにより電荷を順次移動させながら出力する。
【００２２】
シフトゲートの開通（電荷の転送）は、シフトパルス（後述するメイン制御部１１０からの信号）の印加に応答して行われる。光電変換素子は、常時、光の受光量に応じて電荷を蓄積しているため、電荷のシフトレジスターへの転送タイミングが、次の発光色の光についての電荷を蓄積する開始タイミングとなる。シフトレジスターに転送された電荷は、シフトレジスターの末端の出力部より、電気信号（アナログデータ）に変換されて、Ａ／Ｄ変換部１２０に送られる。
【００２３】
シフトレジスターに格納された電荷の出力は、所定の読み出しクロック（後述するメイン制御部１１０からの信号）に応答して行われる。例えば、１クロック毎に１画素の電荷がアナログデータとして出力される。
【００２４】
コントローラー１００は、イメージセンサー２２０から出力されたアナログデータをデジタルデータに変換するＡ／Ｄ変換部１２０と、Ａ／Ｄ変換部１２０から出力されたデジタルデータに対して各種補正を行うデータ処理部１３０と、データ処理部１３０による各種補正に用いられる補正用データ（白基準データや黒基準データ）や、補正対象の読取データ（画像データ）を記憶する記憶部１４０と、データ処理部１３０からのデータをパーソナルコンピューターなどのホストに送るための出力部１５０と、コントローラー１００内の各機能部を全体的に制御するとともに、キャリッジ２００内のＬＥＤ光源２１０やイメージセンサー２２０、及び、キャリッジ駆動機構を制御するメイン制御部１１０と、を備えている。
【００２５】
Ａ／Ｄ変換部１２０は、例えば、ＡＦＥ（Analog Front End）によって実現され、イメージセンサー２２０から出力されたアナログデータをデジタルデータに変換する。
【００２６】
データ処理部１３０は、Ａ／Ｄ変換部１１０から出力されたデジタルデータにシェーディング補正などの各種補正を施して、出力部１５０に出力する。
【００２７】
なお、データ処理部１３０は、主制御装置であるＣＰＵと、プログラム等が記憶されたＲＯＭと、メインメモリーとしてデータ等を一時的に格納するＲＡＭと、を備えたコンピューターで構成することができる。もちろん、データ処理部１３０は、各種補正処理を専用に行うように設計されたＡＳＩＣ（Application Specific Integrated Circuit）で構成されていてもよい。
【００２８】
記憶部１４０は、例えば、バッファによって実現される。記憶部１４０は、先入れ先出しのＦＩＦＯ形式で、Ａ／Ｄ変換部１２０から出力されたデジタルデータを一時的に記憶し、先に記憶したデータから順に出力部１５０に送る。
【００２９】
出力部１５０は、ネットワーク接続やＵＳＢ接続を行うためのインターフェイスにより実現される。出力部１５０は、ホストの処理能力に応じた転送速度で、記憶部１４０のデータを、ホストコンピューター（スキャナー制御装置）に送信する。
【００３０】
メイン制御部１１０は、ＡＤＦ３００と、キャリッジ２００と、キャリッジ駆動機構（不図示）と、を制御して、画像の読み取りを行う（「画像読取制御」を行う）。具体的には、メイン制御部１１０は、図示するように、割り込み部１１１と、ソフトウェア処理部１１２と、モーター制御部１１３と、読取制御部１１４と、を有する。
【００３１】
なお、図２は、画像読取制御の概要について説明するためのタイミングチャートである。
【００３２】
割り込み部１１１は、後述するモーター制御部１１３によるＤＣモーター（駆動モーター）３１０のＰＩＤ制御において、図２に示すように所定の周期Ｔで割り込みを行う。なお、図２に示す数字は、割り込み部１１１による割り込み回数Ｎを表す。割り込み回数Ｎは、シフトパルスが出力されると初期化される（Ｎ＝０）。
【００３３】
ソフトウェア処理部１１２は、割り込み部１１１による割り込みをトリガーとして、所定のソフトウェア処理を起動（開始）する。ここで、ソフトウェア処理部１１２が起動する所定のソフトウェア処理には、シフトパルスを出力する処理（以下では「シフトパルスの出力処理」ともよぶ）等が含まれる。
【００３４】
シフトパルスの出力処理では、ソフトウェア処理部１１２は、割り込み部１１１による割り込み回数Ｎに基づいて、イメージセンサー２２０に対してシフトパルスを出力する。これにより、光電変換素子に蓄積された電荷のシフトレジスターへの転送タイミング（次の電荷蓄積の開始タイミング）を制御する。
【００３５】
また、シフトパルスを出力する間隔は予め設定されており、例えば、割り込み部１１１による割り込み回数Ｎに応じて定まる所定時間（例えば、割り込み回数Ｎが「６回」となるまでにかかる時間「６×Ｔ」）に設定されている（図２に示す設定値Ａ）。
【００３６】
ただし、ソフトウェア処理部１１２は、図２に示すように、シフトパルスを出力すべきタイミングαであっても、シフトパルスの出力処理よりも優先的に実行している他の処理（以下では「優先処理」とよぶ）がある場合には、シフトパルスの出力処理を起動（開始）できない。そのため、ソフトウェア処理部１１２は、他の優先処理が終了したタイミングβでシフトパルスを出力する。すなわち、ソフトウェア処理部１１２は、シフトパルスを予定よりも遅れて出力する（αからβへ遅延する）。
【００３７】
また、ソフトウェア処理部１１２は、他の優先処理によって、シフトパルスの出力に遅延が発生した場合には、図２に示すように、遅延フラグを有効にする。なお、この遅延フラグを参照すれば、前回のシフトパルスの出力に遅延が発生したか否か判定することができる。また、遅延フラグは、例えば、有効、無効に切り替え可能なフラグ信号によって保持される。
【００３８】
また、ソフトウェア処理部１１２は、シフトパルスの出力に遅延が発生した場合には、図２に示すように、次回のシフトパルスの出力を予定よりも遅らせる（γからδに遅らせる）。具体的には、ソフトウェア処理部１１２は、割り込み部１１１による割り込み回数Ｎをカウントし、割り込み回数Ｎが所定回数（例えば、「６回」）に到達するタイミングγであっても、遅延フラグが有効である場合には、シフトパルスを出力しない。その代わりに、ソフトウェア処理部１１２は、遅延フラグを無効にして、次に割り込み部１１１による割り込みが発生するタイミングδでシフトパルスを出力する。
【００３９】
なお、シフトパルスの出力に遅延が発生したか否かの判断は、前回にシフトパルスを出力した時刻Ｔｏｌｄから、現在時刻Ｔｎｅｗまでの経過時間（図２に示すシフトパルスの出力間隔ΔＴ）を求めて行われる。
【００４０】
モーター制御部１１３は、ＡＤＦ３００のＤＣモーター（駆動モーター）３１０を制御（ＰＩＤ制御）して、給紙トレイの原稿を搬送し、イメージ読取窓に通過させる。例えば、モーター制御部１１３は、ＤＣモーター３１０を定速で駆動することができる。
【００４１】
読取制御部１１４は、イメージセンサー２２０による、画像読み取りを制御する。具体的には、読取制御部１１４は、シフトパルスの出力タイミングでイメージセンサー２２０に対して読み出しクロックの供給を行い、シフトレジスターに格納されている電荷のコントローラー１００（Ａ／Ｄ変換部１２０）への出力を制御する。
【００４２】
このとき、イメージセンサー２２０から出力されたデータ（アナログデータ）は、Ａ／Ｄ変換部１２０でデジタルデータに変換され、データ処理部１３０によって各種補正が施される。
【００４３】
それから、読取制御部１１４は、データ処理部１３０に指示信号を通知して、各種補正が施されたデータを記憶部１４０に格納（バッファリング）する。
【００４４】
以上のように、シフトパルスの出力に遅延が発生した場合には、次回のシフトパルスの出力を予定よりも遅らせるため、１ライン分の画像の転送に必要な時間（「転送最短周期」ともいう）を確保できる。そして、光電変換素子に蓄積された電荷をコントローラー１００へ確実に転送することができる。
【００４５】
なお、読取制御部１１４は、ＡＤＦ３００を用いた原稿の読み取り時には、キャリッジ２００をイメージ読取窓の下に停止させた状態にしておく。もちろん、ＡＤＦ３００を用いずに原稿台に載置された原稿を読み取る場合には、読取制御部１１４は、キャリッジ駆動機構のモーターの回転を制御することにより、キャリッジ２００の移動を制御することもできる。
【００４６】
かかるメイン制御部１１０は、主制御装置であるＣＰＵと、プログラム等が記憶されたＲＯＭと、メインメモリーとしてデータ等を一時的に格納するＲＡＭと、を備えたコンピューターで構成される。ただし、ソフトウェア処理部１１２以外の各部（１１１、１１３、１１４）については、各処理を専用に行うように設計されたハードウェア（例えば、ＡＳＩＣ）で構成することもできる。
【００４７】
本実施形態が適用された画像読取装置５０は、以上のような構成からなる。ただし、この構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な画像読取装置が備える他の構成を排除するものではない。また、Ａ／Ｄ変換部１２０は、キャリッジ２００内の基板に搭載されていてもよい。
【００４８】
また、上記した各構成要素は、画像読取装置５０の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。画像読取装置５０の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００４９】
次に、上記のように構成される画像読取装置５０の特徴的な動作について説明する。
【００５０】
＜シフトパルスの出力処理＞
画像読取装置５０は、所定のタイミングで図３に示すフローを開始する。例えば、画像読取装置５０は、ＡＤＦ３００を用いた画像読取時（モーター制御部１１３によるＤＣモーター３１０のＰＩＤ制御）において、割り込み部１１１による割り込みが発生したタイミングで本フローを開始する。
【００５１】
本フローを開始すると、ソフトウェア処理部１１２は、所定のソフトウェア処理（例えば、シフトパルスの出力処理）を起動（開始）する。
【００５２】
そして、ソフトウェア処理部１１２は、割り込み回数Ｎをインクリメントする（ステップＳ１０１）。なお、割り込み回数Ｎは、例えば、所定のカウンターを用いてカウントされる。そして、ステップＳ１０１では、ソフトウェア処理部１１２は、割り込み部１１１による割り込みが発生する毎に、所定のカウンターのカウント値（割り込み回数Ｎに相当する値）がインクリメントされる。
【００５３】
それから、ソフトウェア処理部１１２は、割り込み部１１１による割り込み回数Ｎが、所定回数（図２に示す例では、「６回」）以上であるか否か判別する（ステップＳ１０２）。
【００５４】
具体的には、ソフトウェア処理部１１２は、割り込み回数Ｎのカウントに用いられるカウンターのカウント値を取得して、取得したカウント値が所定回数以上である場合には、割り込み回数Ｎが所定回数以上であると判定する。一方、ソフトウェア処理部１１２は、カウンターから取得したカウント値が所定回数未満である場合には、割り込み回数Ｎが所定回数以上ではないと判定する。
【００５５】
ここで、ソフトウェア処理部１１２は、割り込み回数Ｎが所定回数以上ではないと判定された場合には（ステップＳ１０２；Ｎｏ）、本フローの処理を終了して、割り込み部１１１による次の割り込みが発生するまで待機する。
【００５６】
また、ソフトウェア処理部１１２は、割り込み回数Ｎが所定回数以上であると判定された場合には（ステップＳ１０２；Ｙｅｓ）、シフトパルスを出力すべきタイミングとみなし、処理をステップＳ１０３に移行する。
【００５７】
処理がステップＳ１０３に移行すると、ソフトウェア処理部１１２は、シフトパルスの出力に先立って、遅延フラグが有効であるか否か判別する（ステップＳ１０３）。
【００５８】
そして、ソフトウェア処理部１１２は、遅延フラグが有効である場合には（ステップＳ１０３；Ｙｅｓ）、１ライン分の画像の転送に必要な時間を確保するために、シフトパルスを出力せず、遅延フラグを無効にする（ステップＳ１１１）。なお、ステップＳ１１１の処理は、図２に示す例では、タイミングγで行われる。
【００５９】
その後、ソフトウェア処理部１１２は、本フローを終了する。
【００６０】
一方、ソフトウェア処理部１１２は、遅延フラグが無効である場合には（ステップＳ１０３；Ｎｏ）、シフトパルスを出力する（ステップＳ１０４）。なお、ステップＳ１０４の処理は、図２に示す例では、タイミングδで行われる。
【００６１】
シフトパルスを出力後、ソフトウェア処理部１１２は、割り込み回数Ｎを初期化する（ステップＳ１０５）。
【００６２】
そして、ソフトウェア処理部１１２は、現在時刻Ｔｎｅｗと、前回にシフトパルスを出力した時刻Ｔｏｌｄと、を取得する（ステップＳ１０６）。具体的には、ソフトウェア処理部１１２は、現在時刻Ｔｎｅｗを、所定のタイマーから取得するとともに、前回にシフトパルスを出力した時刻Ｔｏｌｄを、所定の記憶装置から読み出して取得する。
【００６３】
それから、ソフトウェア処理部１１２は、前回にシフトパルスを出力してから現在時刻までに経過した時間（シフトパルスの出力間隔ΔＴ）を算出する（ステップＳ１０７）。具体的には、ソフトウェア処理部１１２は、ステップＳ１０６で取得したＴｎｅｗから、ステップＳ１０６で取得したＴｏｌｄを、減算することによって、シフトパルスの出力間隔ΔＴを算出する（ΔＴ＝Ｔｎｅｗ−Ｔｏｌｄ）。
【００６４】
そして、ソフトウェア処理部１１２は、前回にシフトパルスを出力してから現在時刻までに経過した時間（シフトパルスの出力間隔ΔＴ）が、基準値Ｒ以上であるか否か判別する（ステップＳ１０８）。具体的には、ソフトウェア処理部１１２は、基準値Ｒを所定の記憶装置から読み出して、ステップＳ１０７で算出されたシフトパルスの出力間隔ΔＴが、基準値Ｒ以上であるか否か判別する。なお、基準値Ｒは、例えば、データとして所定の記憶装置に予め格納されているものとし、シフトパルスの出力に遅延が発生したとみなすことができる値（例えば、割り込み周期Ｔ×６．５）とする。
【００６５】
ここで、ソフトウェア処理部１１２は、シフトパルスの出力間隔ΔＴが基準値Ｒ以上である場合には（ステップＳ１０８；Ｙｅｓ）、シフトパルスの出力に遅延が発生したものとみなし、遅延フラグを有効にする（ステップＳ１０９）。それから、ソフトウェア処理部１１２は、処理をステップＳ１１０に移行する。なお、ステップＳ１０９の処理は、図２に示す例では、タイミングβで行われる。
【００６６】
一方、ソフトウェア処理部１１２は、ステップＳ１０８で、シフトパルスの出力間隔ΔＴが基準値Ｒ未満である場合には（ステップＳ１０８；Ｎｏ）、シフトパルスの出力に遅延は発生していないものとみなし、遅延フラグを有効にせずに、処理をステップＳ１１０に移行する。
【００６７】
処理がステップＳ１１０に移行すると、ソフトウェア処理部１１２は、現在時刻Ｔｎｅｗを、前回にシフトパルスを出力した時刻Ｔｏｌｄとして記憶する（ステップＳ１１０）。
【００６８】
その後、ソフトウェア処理部１１２は、本フローを終了する。
【００６９】
以上のようなシフトパルスの出力処理を行うことにより、本実施形態の画像読取装置５０では、シフトパルスの出力に遅延が発生した場合に、次回のシフトパルスの出力を予定よりも遅らせることができる。そのため、１ライン分の画像の転送に必要な時間（「転送最短周期」）を確実に確保できる。
【００７０】
なお、上記実施形態におけるフローの各処理単位は、画像読取装置５０を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。画像読取装置５０が行う処理は、さらに多くの処理ステップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行してもよい。また、処理ステップの順序についても、これに制限されるものではなく、可能な限り変更することができる。
【００７１】
また、上記の実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【００７２】
例えば、上記実施形態では、前回にシフトパルスを出力してから現在時刻までの経過時間が基準値Ｒを超えた場合に、シフトパルスの出力に遅延が発生したとみなされる。しかし、本発明は、これに限定されない、例えば、割り込み部１１１による割り込み毎に、その割り込みからの経過時間を計測しておき、その経過時間がシフトパルスの出力タイミングで所定の基準値を超えている場合に、シフトパルスの出力に遅延が発生したとみなすようにしてもよい。
【００７３】
なお、以下では、参考までに、従来の画像読取制御について説明する。図４は、従来の画像読取制御の概要について説明するためのタイミングチャートである。
【００７４】
図示するように、従来の画像読取制御では、本願の上記実施形態の画像読取制御と同様に、他の優先処理によって、予定通りのタイミングαでシフトパルスを出力できない場合がある。この場合には、その優先処理が終了したタイミングβでシフトパルスが出力される。
【００７５】
このようにシフトパルスの出力に遅延（αからβへの遅延）が発生した場合であっても、従来の画像読取制御では、次回のシフトパルスは、予定通りのタイミングγで出力される。
【００７６】
そのため、従来の画像読取制御では、光電変換素子に蓄積された電荷を転送している途中で次のシフトパルスが出力されてしまう場合がある。これでは、１ライン分の画像の転送に必要な時間（「転送最短周期」）を確保できない。
【００７７】
これに対し、本願の上記実施形態の画像読取制御では、シフトパルスの出力に遅延が発生した場合には、次回のシフトパルスの出力を予定よりも遅らせるため、１ライン分の画像の転送に必要な時間を十分に確保できる。
【符号の説明】
【００７８】
５０・・・画像読取装置、１００・・・コントローラー、１１０・・・メイン制御部、１１１・・・割り込み部、１１２・・・ソフトウェア処理部、１１３・・・モーター制御部、１１４・・・読取制御部、１２０・・・Ａ／Ｄ変換部、１３０・・・データ処理部、１４０・・・記憶部、１５０・・・出力部、２００・・・キャリッジ、２１０・・・ＬＥＤ光源、２２０・・・イメージセンサー、３００・・・ＡＤＦ、３１０・・・ＤＣモーター
【図１】
0005853375.tif 000002
【図２】
0005853375.tif 000003
【図３】
0005853375.tif 000004
【図４】
0005853375.tif 000005