(57)【要約】【課題】  エンコーダからのパルスの周期が長くなってしまった場合であっても制御対象を適切に制御すること。【解決手段】  エンコーダのパルスに基づいてモータの回転に関連する速度を求める速度算出部と、算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御する制御部であって、前記エンコーダのパルスの変化が所定時間ないとき、前回の前記パルスの変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御する制御部と、を備える原稿読取装置。【選択図】  図８
2009065825.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求める速度算出部と、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御する制御部であって、前記エンコーダから出力される信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御する制御部と、
を備える原稿読取装置。
【請求項２】
前記制御量は、前記経過時間が長い場合、短い場合と比べて多い、請求項１に記載の原稿読取装置。
【請求項３】
前記モータの回転に関連する速度が目標とする速度となったときの前記信号の変化する時間間隔を目標とする時間間隔としたとき、前記制御量を増加させる量には、前記目標とする時間間隔の逆数から前記経過時間の逆数を差し引いた値に比例する量を含む、請求項１又は２に記載の原稿読取装置。
【請求項４】
前記モータの回転に関連する速度は、直前の前記信号の変化の時間間隔に基づいて求められる、請求項１〜３のいずれかに記載の原稿読取装置。
【請求項５】
前記制御部は、
前記エンコーダから出力される信号の変化が前記所定時間内にあるとき、前記モータの回転に関連する速度に基づくＰＩＤ制御を行って前記モータの回転を制御し、
前記エンコーダから出力される信号の変化が前記所定時間ないとき、前記モータの回転に関連する速度に基づくＰＩＤ制御による制御量に、前記経過時間に基づく制御量を加算して前記制御量を増加させる、請求項１〜４のいずれかに記載の原稿読取装置。
【請求項６】
前記エンコーダから出力される信号の変化が所定時間ないとき、前記ＰＩＤ制御による制御量のうちの積分成分の制御量は、前記経過時間に基づいて求められる、請求項５に記載の原稿読取装置。
【請求項７】
前記エンコーダから出力される信号の変化は、前記エンコーダのパルスの立ち上がりの変化とパルスの立ち下がりの変化のうちのいずれかである、請求項１〜６のいずれかに記載の原稿読取装置。
【請求項８】
前記速度算出部は、２つのエンコーダからのパルスの立ち上がり又は立ち下がりの時間間隔に基づいて前記モータの回転に関連する速度を求める、請求項１〜７のいずれかに記載の原稿読取装置。
【請求項９】
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求めるステップと、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御するステップであって、前記エンコーダからの信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御するステップと、
を含む原稿読取方法。
【請求項１０】
原稿読取装置を動作させるためのプログラムであって、
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求めるステップと、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御するステップであって、前記エンコーダからの信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御するステップと、
を前記原稿読取装置に行わせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿読取装置、原稿読取方法、及び、プログラムに関する。
【背景技術】
【０００２】
ロータリーエンコーダからのパルス出力の周期に基づいて、モータの回転速度を制御する制御装置がある。このような制御を行うとき、直前に取得されたパルスの間隔に基づいて求められた速度を現在の速度であるとみなして制御が行われる。
【特許文献１】特開２００１−２５１８７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このように、モータの回転の制御で使用される速度は、直前に取得されたパルス間隔に基づいて求められている。そうすると、実際のモータの回転の速度が遅くなりつつあるとき、現在の実際のモータの回転の速度は、直前に取得されたパルス間隔に基づいて求められた速度よりも遅くなっている。
【０００４】
この場合、モータの回転速度に基づいてモータの回転をＰＩＤ制御するとき、実際の速度よりも速いとされるパルスに基づく速度を用いてＰＩＤ制御による制御量を求めることとなる。そうすると、目標速度よりも速度が低下しているときにおいて、目標速度と現在の速度との差が小さくなり、実際の速度に基づいて求められる比例項の制御量よりも小さい制御量に基づいてモータを制御することとなる。その結果、必要な制御量を得られず、モータの回転が停止してしまうことがあった。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、エンコーダからの信号の変化の周期が長くなってしまった場合であっても制御対象を適切に制御することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための主たる発明は、
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求める速度算出部と、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御する制御部であって、前記エンコーダから出力される信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御する制御部と、
を備える原稿読取装置である。
【０００７】
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【０００８】
本明細書及び添付図面の記載により、少なくとも、以下の事項が明らかとなる。
【０００９】
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求める速度算出部と、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御する制御部であって、前記エンコーダから出力される信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御する制御部と、
を備える原稿読取装置。  
このようにすることで、エンコーダからの信号の変化の周期が長くなってしまった場合であっても制御対象を適切に制御することができる。
【００１０】
かかる原稿読取装置であって、前記制御量は、前記経過時間が長い場合、短い場合と比べて多いことが望ましい。また、前記モータの回転に関連する速度が目標とする速度となったときの前記信号の変化する時間間隔を目標とする時間間隔としたとき、前記制御量を増加させる量には、前記目標とする時間間隔の逆数から前記経過時間の逆数を差し引いた値に比例する量を含むことが望ましい。また、前記モータの回転に関連する速度は、直前の前記信号の変化の時間間隔に基づいて求められることが望ましい。また、前記制御部は、前記エンコーダから出力される信号の変化が前記所定時間内にあるとき、前記モータの回転に関連する速度に基づくＰＩＤ制御を行って前記モータの回転を制御し、前記エンコーダから出力される信号の変化が前記所定時間ないとき、前記モータの回転に関連する速度に基づくＰＩＤ制御による制御量に、前記経過時間に基づく制御量を加算して前記制御量を増加させることが望ましい。
【００１１】
また、前記エンコーダから出力される信号の変化が所定時間ないとき、前記ＰＩＤ制御による制御量のうちの積分成分の制御量は、前記経過時間に基づいて求められることが望ましい。また、前記エンコーダから出力される信号の変化は、前記エンコーダのパルスの立ち上がりの変化とパルスの立ち下がりの変化のうちのいずれかであることが望ましい。また、前記速度算出部は、２つのエンコーダからのパルスの立ち上がり又は立ち下がりの時間間隔に基づいて前記モータの回転に関連する速度を求めることが望ましい。  
このようにすることで、エンコーダからの信号の変化の周期が長くなってしまった場合であっても制御対象を適切に制御することができる。
【００１２】
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求めるステップと、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御するステップであって、前記エンコーダからの信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御するステップと、
を含む原稿読取方法。  
このようにすることで、エンコーダからの信号の変化の周期が長くなってしまった場合であっても制御対象を適切に制御することができる。
【００１３】
原稿読取装置を動作させるためのプログラムであって、
エンコーダから出力される信号に基づいてモータの回転に関連する速度を求めるステップと、
算出された前記速度に基づいて制御量を求め、該制御量にて前記モータの回転を制御するステップであって、前記エンコーダからの信号の変化が所定時間ないとき、直前の前記信号の変化からの経過時間に基づいて前記制御量を増加させ前記モータを制御するステップと、
を前記原稿読取装置に行わせるプログラム。  
このようにすることで、エンコーダからの信号の変化の周期が長くなってしまった場合であっても制御対象を適切に制御することができる。
【００１４】
＝＝＝実施形態＝＝＝
＜スキャナの構成＞
図１は、スキャナ１０の一例を説明するための斜視図である。図２は、スキャナの構成を説明するためのブロック図である。スキャナ１０は、原稿台１１に置かれた原稿を読みとるための装置である。原稿台１１に原稿が置かれ、上蓋１２が閉じられ、接続されたコンピュータ１００からスキャンの指示があると、スキャナ１０は、原稿の画像情報を読み取り、読みとった結果をコンピュータに送る機能を有する。
【００１５】
スキャナ１０は、キャリッジ移動機構２０と読み取り機構４０と検出器群５０と制御部６０とインタフェース６１とを備える。
【００１６】
キャリッジ移動機構２０は、後述する読み取り機構４０を副走査方向に移動させるためのものである。
【００１７】
読み取り機構４０は、スキャナにセットされた原稿を読みとるためのものであって、後述するイメージセンサ４１を含んでいる。イメージセンサ４１については後に詳述する。読み取り機構４０は、キャリッジ移動機構２０によって副走査方向に移動されつつ、原稿の画像を読み取り、制御部６０にその読み取り結果を送る機能を有する。
【００１８】
検出器群５０は、スキャナの各部の状態を測定して制御部６０に送るための複数の検出器である。検出器群５０には、後述するロータリーエンコーダ５１が含まれる。ロータリーエンコーダは、キャリッジ２１を移動させるためのモータの回転量を測定するためのものである。このロータリーエンコーダ５１については、後に詳述する。
【００１９】
制御部６０は、検出器群５０によって測定されたスキャナの各部の状態に基づいて、スキャナの動作を制御するための制御装置である。また、制御部６０は、読み取り機構４０からの読み取り結果に様々な処理を施し、インタフェース６１を介してコンピュータ１００に送る機能も有する。制御部６０は、不図示の処理装置と記憶装置を含む。記憶装置はＲＯＭやＲＡＭであって、制御部６０を動作させるためのプログラムや制御上の情報が記憶される。処理装置は、ＣＰＵなどの演算装置であって、プログラムにしたがって、スキャナ１０の各部の制御を行う。また、制御部６０は、後述するように、駆動モータ２２を駆動させるためのＰＩＤ制御部６２、及び、ＰＷＭ回路６３を含む。
【００２０】
インタフェース６１は、コンピュータ１００と接続するためのインタフェースである。インタフェース６１は、例えばＵＳＢインタフェースなどであって、コンピュータ１００との情報の交換を行うために設けられる。
【００２１】
図３は、スキャナの内部構造を示す断面図である。スキャナ１０は、原稿台１１の下側に、キャリッジ２１と、キャリッジ２１を原稿台１１に対して所定の間隔を保ちつつ、図中の矢印のＡ方向（副走査方向）に沿って平行に移動させるキャリッジ移動機構２０を備えている。
【００２２】
キャリッジ移動機構２０は、キャリッジ２１を支持しつつこの移動を案内するガイド２３を含んでいる。また、キャリッジ移動機構２０は、キャリッジ２１に接続されたベルト２５と、このベルト２５が架け渡されたシャフト２４とプーリー２７と、シャフト２４を回転駆動するための駆動モータ２２とを備えている。駆動モータ２２は、制御部６０からの制御信号によって駆動制御される。また、キャリッジ移動機構２０は、図３において不図示の大歯車２８と小歯車２９とを備えている。
【００２３】
キャリッジ２１には、読み取り機構４０の各部が含まれ、原稿台１１を介して原稿５に対し光を照射する光源としての露光ランプ４５と、原稿５により反射された反射光が入射するレンズ４６と、このレンズ４６を通じてキャリッジ２１の内部に取り込まれた反射光を受光するイメージセンサ４１とが設けられている。
【００２４】
イメージセンサ４１は、光信号を電気信号に変換するフォトダイオード等の光電変換素子が列状に配置されたリニアＣＣＤセンサにより構成されている。また、このイメージセンサ４１は、密着型イメージセンサ（ＣＩＳイメージセンサ：Contact Image Sensor）となっていて、その幅寸法が読み取り可能な原稿の最大サイズに対応して設定されている。つまり、イメージセンサ４１は、原稿台にセットされた原稿５の画像を等倍にて読みとることができるようになっている。イメージセンサ４１により読みとられた画像に関するデータは、制御部６０に出力される。
【００２５】
図４は、ロータリーエンコーダ５１を説明するための図である。ロータリーエンコーダ５１は、駆動モータ２２の出力軸の回転に応じて回転する回転円板５６４を備えている。また、回転円板５６４には所定の間隔ごとに小さなスリットが形成されている。回転円板５６４は、駆動モータ２２の出力軸に一体的に設けられた小歯車２９に隣接して一体的に設けられている。駆動モータ２２が出力軸を回転駆動すると回転円板５６４も回転する。よって、回転円板の回転量を計測することで、駆動モータ２２の回転量を把握することができるようになっている。
【００２６】
また、ベルト２５が架け渡されたシャフト２４には大歯車２８が取り付けられている。そして、この大歯車２８は、駆動モータ２２の出力軸に取り付けられた小歯車２９と噛み合う。よって、駆動モータ２２が回転すると共に、シャフト２４が回転させられ、ベルト２５も移動するようになっている。このようになっているため、ロータリーエンコーダ５１によって、駆動モータ２２の回転速度、及び、シャフトに架け渡されたベルトに固定されたキャリッジの移動速度を把握できるようになっている。
【００２７】
＜ロータリーエンコーダ５１の構成について＞
図５は、ロータリーエンコーダ５１の構成の説明図である。ロータリーエンコーダ５１は、回転円板５６４と検出部５６６とを有する。回転円板５６４は、所定の間隔毎にスリットが設けられており、駆動モータ２２の出力軸に固定されている。ここでは、１回転あたり４４８個のスリットが設けられている。
【００２８】
検出部５６６は、回転円板のスリットを挟み込みようにして設けられており、スキャナ１０の本体側に固定的に設けられている。検出部５６６は、発光ダイオード５５２と、コリメータレンズ５５４と、検出処理部５５６とを有しており、検出処理部５５６は、複数（例えば、４個）のフォトダイオード５５８と、信号処理回路５６０と、２個のコンパレータ５６２Ａ、５６２Ｂとを備えている。
【００２９】
発光ダイオード５５２は、両端の抵抗を介して電圧Ｖｃｃが印加されると光を発し、この光はコリメータレンズ５５４に入射される。コリメータレンズ５５４は、発光ダイオード５５２から発せられた光を平行光とし、回転円板５６４に平行光を照射する。回転円板５６４に設けられたスリットを通過した平行光は、固定スリット（不図示）を通過して、各フォトダイオード５５８に入射する。フォトダイオード５５８は、入射した光を電気信号に変換する。各フォトダイオードから出力される電気信号は、コンパレータ５６２Ａ、５６２Ｂにおいて比較され、比較結果がパルスとして出力される。そして、コンパレータ５６２Ａ、５６２Ｂから出力される第１パルスＥＮＣ＿Ａ及び第２パルスＥＮＣ＿Ｂが、ロータリーエンコーダ５１の出力となる。
【００３０】
図６Ａは、駆動モータ２２が正転しているときにおける出力信号の波形のタイミングチャートである。図６Ｂは、駆動モータ２２が逆転しているときにおける出力信号のタイミングチャートである。
【００３１】
図に示すように、駆動モータ２２の正転時及び逆転時のいずれの場合であっても、第１パルスＥＮＣ＿Ａと第２パルスＥＮＣ＿Ｂとは、位相が９０度だけずれている。駆動モータ２２が正転しているときは、図６Ａに示すように、第１パルスＥＮＣ＿Ａが第２パルスＥＮＣ＿Ｂよりも９０度だけ位相が進んでいる。一方、駆動モータ２２が逆転しているときは、図６Ｂに示すように、第１パルスＥＮＣ＿Ａが第２パルスＥＮＣ＿Ｂよりも９０度だけ位相が遅れている。各パルスの一周期Ｔは、回転円板５６４のスリットの１つの間隔が検出部５６６を移動する時間に等しい。
【００３２】
そして、ロータリーエンコーダ５１の第１パルスＥＮＣ＿Ａ、第２パルスＥＮＣ＿Ｂが制御部６０に入力される。後述するように、制御部６０は、これら第１パルスＥＮＣ＿Ａ、第２パルスＥＮＣ＿Ｂの立ち上がり及び立ち下がりエッジが検出されたときにエンコーダ割り込みを発生させる。
【００３３】
図７は、駆動モータ２２の制御部を説明するためのブロック図である。駆動モータ２２の制御部には、ＰＩＤ制御部６２、ＰＷＭ回路６３、ドライバ６４、駆動モータ２２、及び、ロータリーエンコーダ５１が用いられる。
【００３４】
ＰＩＤ制御部６２、ＰＷＭ回路６３、及び、ドライバ６４は制御部６０に含まれている。駆動モータ２２は、キャリッジ移動機構２０に含まれている。ロータリーエンコーダ５１は、検出器群５０に含まれている。
【００３５】
ＰＩＤ制御部６２は、後述するエンコーダ割り込み、及び、タイマ割り込みに基づいて駆動モータ２２の回転速度を所望の速度に制御するための演算を行う。ＰＩＤ制御部６２が行う駆動モータ２２の制御については後述する。
【００３６】
ＰＷＭ回路６３は、ＰＩＤ制御部６２からの演算結果に応じた制御信号を生成する。ドライバ６４は、この制御信号に基づいて駆動モータ２２を駆動する。ここでは、制御信号は可変長のパルスで与えられ、制御量はデューティで表される。ドライバ６４は、例えば複数個のトランジスタを備えており、ＰＷＭ回路６３からの制御信号に基づいて、トランジスタをオン・オフさせることで、駆動モータ２２に電圧を印加する。
【００３７】
駆動モータ２２は、印加された電圧によって駆動され、駆動モータ２２の出力軸に固定された回転円板５６４が回転させられる。ロータリーエンコーダ５１は、回転円板５６４の回転量を制御部６０に含まれるＰＩＤ制御部６２に送る。このように、回転円板５６４の回転量をＰＩＤ制御部にフィードバックすることによって、駆動モータ２２の回転量を制御することができるようになっている。
【００３８】
＜参考例の制御方法＞
ロータリーエンコーダ５１からのパルスに基づいて駆動モータ２２の回転速度の制御を行う際、パルスの立ち上がり又は立ち下がりとの時間間隔に基づいて現在の回転速度を求めることがある。ここでは、パルスの立ち上がり又は立ち下がりにおいてエンコーダ割り込みを発生させることとする。そして、直前に取得された２つのエンコーダ割り込みの時間間隔に基づいて求められた速度を現在の速度であるとみなして駆動モータ２２の回転の制御が行われる。しかしながら、このようにすると、実際の駆動モータ２２の回転速度が遅くなりつつあるとき、実際の回転速度は、直前のエンコーダ割り込み間隔に基づいて求められた速度よりも遅くなっている。
【００３９】
この場合、駆動モータ２２の回転速度に基づいてその回転速度をＰＩＤ制御するとき、実際の速度よりも早い速度を用いてＰＩＤ制御による制御量を求めることとなる。そうすると、目標速度よりも速度が低下しているときにおいて、目標速度と現在の速度との偏差が小さくなり、実際の速度に基づいて求められる制御量よりも小さい制御量に基づいて駆動モータ２２を制御することとなる。その結果、本来必要である制御量を得られず、駆動モータ２２の回転が停止してしまうことがあった。
【００４０】
また、このようなとき、ＰＩＤ制御部は、前回のエンコーダ割り込みの時間間隔に基づいて求められた速度を現在の速度とみなして制御し続けるため、駆動モータ２２の回転を再開させにくい。
【００４１】
よって、以下に示す実施形態における駆動モータ２２の制御では、駆動モータ２２の回転速度が遅くなった場合であっても、その回転が停止しないだけの制御量をもって制御できるようにしている。
【００４２】
＜駆動モータ２２の制御＞
図８は、駆動モータ２２の制御を説明するためのフローチャート（その１）である。また、図９は、駆動モータ２２の制御を説明するためのフローチャート（その２）である。
【００４３】
ここでは、制御量であるデューティＤｕｔｙを求めるために、後述する積分項Ｔｉ、エンコーダ割り込みに基づいて求められる比例項Ｔｐｅ、微分項Ｔｄｅ、及び、タイマ割り込みに基づいて求められる比例項Ｔｐｔが用いられる。フローの開始時点において、これらＴｉ、Ｔｐｅ、Ｔｄｅ、及び、Ｔｐｔの値はゼロにリセットされている。
【００４４】
フローが開始されると、まず制御部６０はタイマＴｉｍｅｒをゼロにリセットしてから、タイマＴｉｍｅｒをスタートさせる（Ｓ９０２）。このタイマＴｉｍｅｒは、後述するエンコーダ割り込みが発生してから所定時間毎にタイマ割り込みを発生させるために使用される。
【００４５】
次に、制御部６０は、エンコーダ割り込みがあったか否かについて判定する（Ｓ９０４）。ここで、エンコーダ割り込みとは、第１パルスＥＮＣ＿Ａ又は第２パルスＥＮＣ＿Ｂのいずれかのパルスの立ち上がり又は立ち下がりが発生したときに発生する割り込みである。そして、エンコーダ割り込みが発生していないときには、プロセスをステップＳ９０６へと進め、エンコーダ割り込みが発生しているときにはプロセスをステップＳ９２１へと進める。
【００４６】
ステップＳ９０４においてエンコーダ割り込みが発生している場合、このエンコーダ割り込みと前回のエンコーダ割り込みとの時間間隔に基づいて現在の速度を計算することができる。よって、エンコーダ割り込みに基づいて求められた現在の速度に基づく速度制御を行うために、フローはステップＳ９２１に進められる。ステップＳ９２１以降のフローは、エンコーダ割り込みの時間間隔に基づいて速度制御を行うためのフローとなっている。
【００４７】
一方、ステップＳ９０４においてエンコーダ割り込みが発生していない場合には、新たなエンコーダ割り込みに基づいて現在の速度を求めることができない。この場合、後述するように、タイマカウンタＣｎｔ＿ｔに基づいて求められた比例項Ｔｐｔを加算するようにして速度制御するために、フローはステップＳ９０６に進められる。
【００４８】
フローがステップＳ９０６に進められると、制御部６０は、タイマＴｉｍｅｒがタイマ割り込み時間Ｉｎｔｒ＿ｔより長いか否かについて判定する（Ｓ９０６）。ここでは、タイマ割り込み時間Ｉｎｔｒ＿ｔは２００μｓに設定されている。よって、タイマＴｉｍｅｒをスタートしてから２００μｓ経過しているときには、フローはステップＳ９０８に進められ、経過していないときにはフローはＳ９０４に戻される。このようにしているのは、タイマ割り込み時間を単位としてエンコーダ割り込みがあるか否かを判定しているためである。よって、タイマＴｉｍｅｒを開始してから２００μｓの間、エンコーダ割り込みが入るのを待っている状態となっている。そして、２００μｓの間にエンコーダ割り込みがあった場合には、エンコーダ割り込みに基づく比例項Ｔｐｅによる制御量が求められ、そうでない場合には、さらに、タイマカウンタＣｎｔ＿ｔに基づく比例項Ｔｐｔが加算された制御量が求められることになる。
【００４９】
フローがステップＳ９０８に進められると、制御部６０は、タイマカウンタＣｎｔ＿ｔを１つ増分する（Ｓ９０８）。このようにすることで、２００μｓの間、エンコーダ割り込みが入らない毎にタイマカウンタＣｎｔ＿ｔが１つ増分されることとなる。
【００５０】
次に、制御部６０は、現在間隔ｃｕｒＰｅｒｉｏｄを求める。ここで、現在間隔ｃｕｒＰｅｒｉｏｄは、最後のエンコーダ割り込みが入ってから現在までの時間間隔である。現在間隔ｃｕｒＰｅｒｉｏｄは、次式で計算される。  
ｃｕｒＰｅｒｉｏｄ＝Ｃｎｔ＿ｔ×Ｉｎｔｒ＿ｔ×４
【００５１】
タイマ割り込みは前述の通り２００μｓごとに発生する。また、ここでは、４つのエンコーダ割り込みの時間間隔を１つの単位として取り扱うこととしている。つまり、図６Ａに示す周期Ｔを１つの単位として取り扱うこととし、後に比較される目標周期ｒｅｆＰｅｒｉｏｄも周期Ｔを基準にした値となっている。よって、周期Ｔとの整合性を保つために、上式において４が乗じられている。
【００５２】
次に、制御部６０は、現在間隔ｃｕｒＰｅｒｉｏｄが目標周期ｒｅｆＰｅｒｉｏｄより大きいか否かについて判定する（Ｓ９１２）。ここで、目標周期ｒｅｆＰｅｒｉｏｄは、目標速度で駆動モータ２２を回転させたときに発生するエンコーダ割り込みの時間間隔である。よって、ここでは、目標周期ｒｅｆＰｅｒｉｏｄよりも現在間隔ｃｕｒＰｅｒｉｏｄが長いかどうかが判定されていることとなる。
【００５３】
ステップＳ９１２において、現在間隔ｃｕｒＰｅｒｉｏｄが目標周期ｒｅｆＰｅｒｉｏｄよりも大きくないときには、タイマカウンタに基づいて求められる比例項Ｔｐｔを０とする（Ｓ９１４）。これは、タイマカウンタに基づいて求められる比例項Ｔｐｔをマイナスの値にしないためである。ここでは、エンコーダ割り込みが入っていないことから速度が低下していることは明らかである。そうすると、速度を上げるためにタイマカウンタに基づく比例項Ｔｐｔをプラスの値にして制御量を増加させる必要がある。そのため、タイマカウンタに基づいて求められる比例項がマイナスの値とならないように、このような処理が行われているのである。
【００５４】
ステップＳ９１２において、現在間隔ｃｕｒＰｅｒｉｏｄが目標周期ｒｅｆＰｅｒｉｏｄよりも大きいとき、制御部６０は、ステップＳ９１６においてタイマカウンタに基づく比例項Ｔｐｔを求める（Ｓ９１６）。タイマカウンタに基づく比例項Ｔｐｔは、次式によって求められる。  
Ｔｐｔ＝Ｇｐ×（１／ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ）
ここで、Ｇｐは制御量であるデューティの比例項を求めるためのゲインである。
【００５５】
次に、制御部６０は、制御量であるデューティＤｕｔｙの積分項Ｔｉを求める（Ｓ９１８）。積分項Ｔｉは次式によって求められる。  
Ｔｉ＝Ｔｉ＋Ｇｉ×（１／ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ）
ここで、Ｇｉは制御量であるデューティの積分項を求めるためのゲインである。
【００５６】
そして、制御部６０は、制御量であるデューティＤｕｔｙを求める（Ｓ９２０）。デューティＤｕｔｙは次式で求められる。  
Ｄｕｔｙ＝Ｔｉ＋Ｔｐｅ＋Ｔｄｅ＋Ｔｐｔ
ここで、Ｔｄｅは、制御量であるデューティＤｕｔｙの微分項である。微分項Ｔｄｅについては後述する。
【００５７】
デューティＤｕｔｙが求められると、フローはステップＳ９０２に戻る。駆動モータ２２は、このようにして求められた制御量に応じて制御される。ここで求められた制御量であるデューティＤｕｔｙはカウント値として得られる。本実施形態において得られたカウント値からデューティ比（％）を得るためには、得られたカウント値を所定値（例えば、４．２）で除する。このようにすることによって、駆動モータ２２に対するデューティ比（％）を得ることができる。
【００５８】
次に、ステップＳ９０４においてエンコーダ割り込みが入ったときのフローについて説明する。ステップＳ９０４において、エンコーダ割り込みが入ると、制御部６０は、現在間隔ｃｕｒＰｅｒｉｏｄを取得する（Ｓ９２１）。ここで取得される現在間隔ｃｕｒＰｅｒｉｏｄは、前回のエンコーダ割り込みと今回のエンコーダ割り込みとの時間間隔である。ここでは、ステップＳ９０４においてエンコーダ割り込みが入ったことにより、今回のエンコーダ割り込みとを得ることができたため、前回のエンコーダ割り込みとの時間間隔を求めて現在間隔を取得している。よって、ここでの現在間隔ｃｕｒＰｅｒｉｏｄの取得方法は、前述のステップＳ９１０においてタイマ割り込みに基づいて設定された現在間隔ｃｕｒＰｅｒｉｏｄの取得方法とは異なるものである。
【００５９】
次に、制御部６０は、タイマカウンタをゼロにリセットする（Ｓ９２２）。これは、エンコーダ割り込みが入るごとにタイマカウンタをゼロから起算させる必要があるためである。
【００６０】
次に、制御部６０は、キャリッジ２１が目標位置にあるか否かについて判定する（Ｓ９２４）。キャリッジ２１が目標位置にあるか否かについては、キャリッジ２１の速度を積分することによってその位置が求められ、求められた位置が目標位置の所定の範囲内に入っているか否かに基づいて判定される。
【００６１】
キャリッジ２１が目標位置にあるときは、デューティＤｕｔｙに停止用のデューティが設定される（Ｓ９４０）。そして、このフローを終了する。一方、目標位置にないと判定されたときには、フローはステップＳ９２６に進められる。
【００６２】
ステップＳ９２６において、制御部６０は、エンコーダ割り込みに基づく比例項Ｔｐｅを求める。エンコーダ割り込みに基づいて求められるデューティの比例項Ｔｐｅは次式で求められる。  
Ｔｐｅ＝Ｇｐ×（１／ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ）
上式は、タイマ割り込みに基づく比例項Ｔｐｔを求めるときと同様の式であるが、前述の通り、ここで使用される現在間隔ｃｕｒＰｅｒｉｏｄの求め方は、タイマ割り込みに基づく比例項Ｔｐｔを求めるときに使用される現在間隔ｃｕｒＰｅｒｉｏｄの求め方とは異なっている。よって、エンコーダ割り込みに基づく比例項は、タイマ割り込みに基づく比例項Ｔｐｔとは異なるものとなる。
【００６３】
ステップＳ９２８において、制御部６０は、デューティＤｕｔｙの積分項Ｔｉを求める。ここでの積分項Ｔｉは、次式で求められる。  
Ｔｉ＝Ｔｉ＋Ｇｉ×（１／ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ）
ここでも、積分項Ｔｉの算出式はステップＳ９１８において求めるときのものと同様であるが、ここで使用される現在間隔ｃｕｒＰｅｒｉｏｄの求め方は、ステップＳ９１８において積分項Ｔｉを求めるときに使用される現在間隔ｃｕｒＰｅｒｉｏｄの求め方とは異なっている。よって、ここでの積分項Ｔｉは、ステップＳ９１８において求められる積分校Ｔｉとは異なるものとなる。
【００６４】
次に、前回の現在間隔ｃｕｒＰｅｒｉｏｄ＿１が０であるか否かについて判定する（Ｓ９３０）。そして、前回の現在間隔ｃｕｒＰｅｒｉｏｄ＿１が０であるときには、デューティＤｕｔｙの微分項Ｔｄｅを０に設定する（Ｓ９３４）。一方、前回の現在間隔ｃｕｒＰｅｒｉｏｄ＿１が０でないときには、エンコーダ割り込みに基づいて求められる微分項Ｔｄｅを次式にて求める。  
Ｔｄｅ＝Ｇｄ×［（１−ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ）−（１／ｒｅｆＰｅｒｉｏｄ−１／ｃｕｒＰｅｒｉｏｄ＿１）］
ここで、Ｇｄは制御量であるデューティの微分項を求めるためのゲインである。
【００６５】
次に、制御部６０は、前回の現在間隔ｃｕｒＰｅｒｉｏｄ＿１として現在間隔ｃｕｒＰｅｒｉｏｄを設定する（Ｓ９３６）。  
そして、デューティＤｕｔｙを次式にて求める（Ｓ９３８）。  
Ｄｕｔｙ＝Ｔｉ＋Ｔｐｅ＋Ｔｄｅ
デューティＤｕｔｙを求めると、プロセスはステップＳ９０２に戻される。  
このようにして、デューティＤｕｔｙが求められ、このデューティに基づいて駆動モータ２２が制御されることとなる。
【００６６】
図１０は、エンコーダ割り込みとタイマ割り込みとの関係を説明するための図である。ここでは、上述のフローを実行した場合において、タイマ割り込みとエンコーダ割り込みの発生タイミングと、どのように制御量が求められるかについて説明する。以下の説明では、対応するフローのステップ番号が括弧書きで示されている。
【００６７】
図において、第１パルスＥＮＣ＿Ａと第２パルスＥＮＣ＿Ｂとが示されている。ここでは、駆動モータ２２の回転速度が減少しつつあり、期間ｔ１〜ｔ４のそれぞれの時間間隔は５００μｓであるが、期間ｔ５の時間間隔はこれよりも大きくなっている。
【００６８】
また、図にはエンコーダ割り込みの発生するタイミングが示されている。エンコーダ割り込みは、パルスの立ち上がりの部分、又は、パルスの立ち下がりの部分において発生するが、ここでは説明の便宜上１つのエンコーダ割り込みのみが示されている。
【００６９】
また、図にはタイマ割り込みの発生するタイミングが示されている。タイマ割り込みは、エンコーダ割り込みが入ってから２００μｓごとに発生する。つまり、タイマ割り込みは、パルスの立ち上がりの部分、又は、パルスの立ち下がり部分を開始点として２００μｓごとに発生する。そして、エンコーダ割り込みが発生してからのタイマ割り込みの発生回数に基づいてエンコーダ割り込みが発生してからの経過時間が求められる。
【００７０】
ここでは、目標周期を５００μｓとしている。期間ｔ１〜ｔ４のそれぞれにおいて、タイマＴｉｍｅｒはタイマ割り込み２００μｓを超えることがあるものの（Ｓ９０６）、エンコーダ割り込みが発生してからの時間（現在間隔ｃｕｒＰｅｒｉｏｄ）が目標周期ｒｅｆＰｅｒｉｏｄを超えることがないため（Ｓ９１２）、タイマ割り込みに基づいて求められる比例項Ｔｐｔはゼロに設定される（Ｓ９１４）。よって、このとき制御量であるデューティＤｕｔｙにタイマ割り込みに基づいて求められる比例項Ｔｐｔの値が実質的に加えられることがないということになる。
【００７１】
一方、期間ｔ５のときには、エンコーダ割り込みが発生してからの時間が目標周期を超えるところがある。エンコーダ割り込みが発生してから６００μｓ経過したＸ点において、現在間隔ｃｕｒＰｅｒｉｏｄが目標周期ｒｅｆＰｅｒｉｏｄを超えると判定される（Ｓ９１２）。そうすると、より制御量を増やすためにタイマカウンタに基づく比例項Ｔｐｔが求められる（Ｓ９１６）。また、デューティＤｕｔｙの積分項Ｔｉについても、タイマ割り込みに基づいて求められた現在間隔ｃｕｒＰｅｒｉｏｄを用いて求められる（Ｓ９１８）。
【００７２】
このように、タイマカウンタに基づいて求められた比例項Ｔｐｔと現在間隔ｃｕｒＰｅｒｉｏｄを用いて求められた積分項Ｔｉにより、制御量が実質的に増加させられる。その後、期間ｔ５の基点のエンコーダ割り込みが発生してから１０００μｓ後に再度エンコーダ割り込みが発生する。その結果、タイマカウンタはゼロにリセットされ（Ｓ９２２）タイマカウンタに基づく比例項Ｔｐｔが加算されることのない制御量によってモータが制御されることとなる（Ｓ９３８）。
【００７３】
図１１は、各出力の変化を表したグラフである。図には、現在速度、目標速度、疑似速度、エンコーダＰ、及び、タイマＰが示されている。横軸は時間として、ある時間間隔（１００００μｓ〜１４０００μｓ）が示されている。また、縦軸は速度、及び、制御量であるデューティが示されている。以下の説明では、対応する時刻が括弧書きで示されている。
【００７４】
現在速度は、直前の２つのエンコーダ割り込みの時間間隔の逆数である。尚、ここでは、１秒間に１つのスリットが検出部５６６を移動したときを１Ｈｚとして回転の速度を表している。前述の通り、回転円板５６４には、４４８個のスリットが形成されていた。よって、例えば、４４８Ｈｚであるとき、駆動モータ２２は１秒間に１回転する速度で回転していることになる。
【００７５】
目標速度は前述の目標周期の逆数である。これも、前述の現在速度にあわせて単位をＨｚで表している。疑似速度は、前述のステップＳ９１０においてタイマカウンタに基づいて生成される現在間隔ｃｕｒＰｅｒｉｏｄの逆数である。
【００７６】
エンコーダＰは、エンコーダ割り込みに基づいて求められたデューティＤｕｔｙの比例項Ｔｐｅの値である。タイマＰは、タイマ割り込みに基づいて求められたデューティＤｕｔｙの比例項Ｔｐｔの値である。
【００７７】
ここでは、時刻１００００μｓ〜１２０００μｓの間、エンコーダ割り込みが発生していない場合を考える。時刻１００００μｓ〜１２００００μｓの期間では、直前のエンコーダ割り込みの時間間隔に基づいて求められた速度が示されているが、実際には速度低下を起こしているため、実際の速度はこれよりも遅い。速度が遅くエンコーダ割り込みが入らない時間が続くと、タイマカウンタの積算が開始され、現在間隔ｃｕｒＰｅｒｉｏｄの逆数である疑似速度の値が高まる。疑似速度の値が高いとき、ステップＳ９１６において１／ｃｕｒＰｅｒｉｏｄの値が大きいということになる。そうすると、タイマに基づいて求められる比例項ＴｐｔであるタイマＰの値は、まだ小さな値である（１１０００μｓ）。しかしながら、このまま、現在間隔ｃｕｒＰｅｒｉｏｄの値が大きくなり、１／ｃｕｒＰｅｒｉｏｄの値が小さくなると、タイマに基づいて求められる比例項ＴｐｔであるタイマＰの値は徐々に大きくなる（１１０００μｓ〜１２０００μｓ）。このようにして、所定の時間の間エンコーダ割り込みが発生しない場合に、タイマＰによる制御量が加算されるため、駆動モータ２２の回転が完全に停止することなく、時刻１２０００μｓにおいてエンコーダ割り込みを発生させることができている。このため、時刻１２０００μｓにおいて現在速度が変化している。
【００７８】
時間１２０００μｓにおいてエンコーダ割り込みが発生すると、前回のエンコーダ割り込みと今回のエンコーダ割り込みとの発生期間から速度を得ることができるようになる。よって、実際の速度は刻々と変化しているものの、時間１２２００μｓにおける現在速度は、現時点での速度を最も反映した速度である。
【００７９】
時間１２２００μｓにおいて現在速度が下がったため、目標速度に対する偏差が大きくなる。そうすると、エンコーダ割り込みに基づいて求められる比例項Ｔｐｅの値が大きくなるため、エンコーダＰの値も大きくなっている（１２２００μｓ〜１３４００μｓ）。
【００８０】
エンコーダＰの値が大きくなったにもかかわらず、所定時間の間、エンコーダ割り込みが発生しない（１２２００μｓ〜１３０００μｓ）。よって、ここでも、現在間隔の逆数である疑似速度が高くなる（１３２００μｓ）。そして、徐々に、疑似速度の値が下がっていく（１３４００μｓ）。これに対応して、タイマ割り込みに基づいて求められる比例項Ｔｐｔ（タイマＰに相当）が徐々に大きくなる。すると、デューティＤｕｔｙが増加させられることにより、再度、エンコーダ割り込みを発生させることができ、このエンコーダ割り込みに基づいて現在速度を求めることができるようになる（１３６００μｓ）。このため、時刻１３６００μｓにおいて現在速度が変化している。現在速度は目標速度に近づく方向に高くなったため、エンコーダ割り込みに基づいて求められる比例項Ｔｐｅに対応するエンコーダＰの値は小さくなっている（１３６００μｓ〜１３４００μｓ）。
【００８１】
このようにすることで、エンコーダ割り込みが所定時間発生しないときには、制御量を増加させるようにして駆動モータ２２を回転させるようにする。そうすることで、駆動モータ２２が停止してしまうことを防止しつつ、駆動モータ２２の回転を適切に制御することができるようになる。
【００８２】
また、このようにエンコーダ割り込みが所定時間発生しないときは、駆動モータ２２の速度が低下しているときでもある。このようなときにも、制御量を増加させるようにして駆動モータ２２を回転させるようにするので、駆動モータ２２の回転速度が必要以上に低下してしまうことを防止しつつ、駆動モータ２２の回転を適切に制御することができる。
【００８３】
本実施形態におけるスキャナ１０の構成では、副走査方向について１画素分（つまり主走査方向について１ライン分）の移動を完了したこと、及び、所定の基準時間を経過したこと、の両方の条件が満たされたときのみ、副走査方向についての次の画素（次の主走査方向についての１ライン）の読み取りを開始する。
【００８４】
具体的には、基準時間が経過する前に副走査方向について１画素分の移動を完了したときには、基準時間の経過が待たれ、リニアＣＣＤセンサにおいて光電変換された各画素に対応する電荷が転送される。このようにして、副走査方向における１画素分（主走査方向について１ライン分）の読み取りが完了した後に、次の画素の読み取りが開始される。
【００８５】
一方、基準時間が経過した後に副走査方向について１画素分の移動を完了したときには、基準時間よりも長い時間が経過してからリニアＣＣＤセンサにおいて光電変換された電荷が転送される。すると、基準時間よりも長い時間において蓄積された電荷が転送されることとなるので、電荷の蓄積量が本来蓄積される量よりも多くなってしまう。このように、電荷の蓄積量が本来蓄積されるはずであった量よりも多くなると、当該箇所の周辺において色むらが発生することになる。よって、各画素において適切な時間の光電変換を行って取得した電荷を転送するためには、副走査方向について１画素分の移動を完了した後に基準時間が経過するように基準時間を設定する必要がある。
【００８６】
図１２は、基準時間を決定する方法について説明するための図である。横軸は、副走査方向についての画素番号を示しており、副走査方向について基準の位置から何番目の画素であるかを示している。縦軸は各画素においてイメージセンサ４１が移動するのに要する時間（以下、駆動時間とする）を示している。図に示されるように、各画素におけるイメージセンサ４１の移動時間は変動するため、駆動時間は画素ごとに異なる時間となるため曲線で示されている。
【００８７】
仮に、図１２において、基準時間をｔaに設定するとする。このとき、曲線のうち実線で示した部分については、基準時間が経過するよりも前にイメージセンサ４１が副走査方向について１画素分の移動を完了していることとなる。このとき、１画素分の移動を含む基準時間分の光電変換が行われ、蓄積された電荷が転送される。よって、基準時間に応じた適切な量の電荷が転送されることとなる。
【００８８】
一方、曲線のうち破線で示した部分については、基準時間が経過してもイメージセンサ４１が副走査方向について１画素分の移動を完了していないため、この時点ではまだ光電変換が継続される。そして、１画素分の移動が完了するまで光電変換が継続されるので、基準時間における電荷の蓄積量よりも多くの電荷が蓄積され、転送されることとなる。
【００８９】
このような問題を解消するためには、副走査方向におけるいずれの画素の駆動時間以上の時間に基準時間を設定する必要がある。つまり、基準時間を最大の駆動時間ｔmax以上に設定する必要がある。このように、基準時間を最大の駆動時間ｔmax以上の値に設定できるように、本実施形態では、イメージセンサ４１が副走査方向における各画素での移動時間（すなわち、駆動時間）を予め取得し、基準時間を最大の駆動時間ｔmaxになるように設定することとしている。
【００９０】
ところで、設定される基準時間が長くなると、副走査方向における各画素（主走査方向の各ライン）の読み取り時間が長くなることにより、全体の読み取り速度が低下する。また、副走査方向における各画素における読み取り時間が必要以上に長くなりすぎると、取得したデータにノイズが含まれてしまうなどの問題もある。よって、最大の駆動時間ｔmaxのレベルを下げ、副走査方向における各画素の読み取り時間をより短くすることが望ましい。
【００９１】
そこで、本実施形態のイメージセンサ４１の移動に採用される制御方法であるが、前述のように、駆動モータ２２の回転速度が必要以上に低下してしまうことを防止しつつ、駆動モータ２２の回転を適切に制御することができるので、各画素の読み取り時間を短くすることができる。このため、最大の駆動時間ｔmaxのレベルを下げることができ、基準時間をより短くすることができる。
【００９２】
図１３は、本実施形態におけるイメージセンサ４１の移動における駆動時間とオーバーシュート量を示す図である。本図において、横軸には画素番号が示され、縦軸には駆動時間及びオーバーシュート量が示されている。そして、図には、本実施形態における制御（以下、制御Ａとする）を用いたときの駆動時間が細線で示され、本実施形態における制御を用いなかったとき（以下、制御Ｂとする）の駆動時間が太線で示されている。さらに、図には、制御Ａを用いたときのオーバーシュート量が細線で示され、制御Ｂを用いたときのオーバーシュート量が太線で示されている。
【００９３】
尚、ここでのオーバーシュート量は、ロータリーエンコーダ５１におけるパルスのエッジ数で表される。また、ここで使用されるスキャナ１０は、前述のロータリーエンコーダ５１からのパルスを１６エッジ分検出したときに、イメージセンサ４１が副走査方向に１２００ｄｐｉ移動するように設定されている。
【００９４】
図を参照すると、制御Ｂのときの駆動時間は制御Ａのときの駆動時間よりも短くなることもあるが、その一方で、駆動時間が長くなることもある。そして、制御Ｂのときの最大の駆動時間ｔmaxは、図の点Ｃにおいて２１０００μｓとなった。一方、制御Ａのときの最大の駆動時間ｔmaxは、図の点Ｄにおいて１４０００μｓとなった。
【００９５】
前述のように、本実施形態における制御（制御Ａ）を用いてイメージセンサ４１を移動させた場合、駆動モータ２２の回転速度が必要以上に低下してしまうことを防止することができる。その結果として、イメージセンサ４１をより一定の速度で移動させることを可能としている。そのため、最大の駆動時間ｔmaxは制御Ｂのときよりも短い時間となるので、制御Ａのときには基準時間としてより短い時間を設定することができる。そして、スキャナ１０のイメージセンサ４１の移動速度を向上させることができる。
【００９６】
また、図を参照すると、制御Ｂのときにおいて、駆動時間が短いときにはオーバーシュート量も大きくなってしまっている。具体的には、制御Ｂのときの最大のオーバーシュート量は１３エッジ（図における点Ｅ）であった。これは、制御Ｂのときには、駆動時間が長いときと短いときとの差が大きいことによるものと考えられる。すなわち、副走査方向における各画素間での駆動時間の差が大きいため、イメージセンサ４１が速く移動してしまったときにおいて、制御Ｂを行う制御部がこれを制動しきれなかったためと考えられる。
【００９７】
一方、制御Ａ（本実施形態における制御）を用いた場合では、全体的にオーバーシュート量が小さくなっている。具体的には、制御Ａのときの最大のオーバーシュート量は２エッジ（図における点Ｆ）であった。このようにして、制御Ａを用いてイメージセンサ４１を移動させることで駆動時間の変動を抑制でき、オーバーシュート量を少なくすることができるようになる。そして、オーバーシュート量を少なくするために駆動時間を長くする（つまり移動速度を遅くする）ことなくイメージセンサ４１を移動することができる。
【００９８】
このように、本実施形態における制御を用いてイメージセンサ４１を移動させた場合、より一定の速度で移動することができるようになるので、基準時間をより短く設定してイメージセンサ４１の移動速度を向上させると共に、イメージセンサ４１のオーバーシュート量を少なくすることができる。
【００９９】
＝＝＝その他の実施の形態＝＝＝
上述の実施形態では、スキャナのキャリッジの移動に使用されるモータの制御について説明を行ったが、インクを吐出して用紙に画像を形成するインクジェットプリンタのキャリッジの移動に上述の技術を適用することもできる。
【０１００】
また、回転円板５６４を駆動モータ２２の出力軸に取り付けることとしたが、例えば、シャフト２４に取り付けることとしてもよい。また、ここでは、ロータリーエンコーダ５１を用いて駆動モータ２２の回転速度を得ることとしたが、ベルトとともに移動するキャリッジの移動速度をリニアエンコーダで得ることとしてもよい。
【０１０１】
上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に含まれるものである。
【図面の簡単な説明】
【０１０２】
【図１】スキャナ１０の一例を説明するための斜視図である。
【図２】スキャナの構成を説明するためのブロック図である。
【図３】スキャナの内部構造を示す断面図である。
【図４】ロータリーエンコーダ５１を説明するための図である。
【図５】ロータリーエンコーダの構成の説明図である。
【図６】図６Ａは、駆動モータ２２が正転しているときにおける出力信号の波形のタイミングチャートであり、図６Ｂは、駆動モータ２２が逆転しているときにおける出力信号の波形のタイミングチャートである。
【図７】駆動モータ２２の制御部を説明するためのブロック図である。
【図８】駆動モータ２２の制御を説明するためのフローチャート（その１）である。
【図９】駆動モータ２２の制御を説明するためのフローチャート（その２）である。
【図１０】エンコーダ割り込みとタイマ割り込みとの関係を説明するための図である。
【図１１】各出力の変化を表したグラフである。
【図１２】基準時間を決定する方法について説明するための図である。
【図１３】本実施形態におけるイメージセンサ４１の移動における駆動時間とオーバーシュート量を示す図である。
【符号の説明】
【０１０３】
５  原稿、
１０  スキャナ、１１  原稿台、１２  上蓋、
２０  キャリッジ移動機構、２１  キャリッジ、２２  駆動モータ、２３  ガイド、
２４  シャフト、２５  ベルト、２７  プーリー、２８  大歯車、２９  小歯車、
４０  読み取り機構、４１  イメージセンサ、４５  露光ランプ、４６  レンズ、
５０  検出器群、５１  ロータリーエンコーダ、
５５２  発光ダイオード、５５４  コリメータレンズ、５５６  検出処理部、
５５８  フォトダイオード、５６０  信号処理回路、５６２Ａ  コンパレータ、
５６２Ｂ  コンパレータ、５６４  回転円板、５６６  検出部、
６０  制御部、６１  インタフェース、６２  ＰＩＤ制御部、６３  ＰＷＭ回路、
６４  ドライバ、１００  コンピュータ、
ＥＮＣ＿Ａ  第１パルス、ＥＮＣ＿Ｂ  第２パルス
【図１】
2009065825.tif 000003
【図２】
2009065825.tif 000004
【図３】
2009065825.tif 000005
【図４】
2009065825.tif 000006
【図５】
2009065825.tif 000007
【図６】
2009065825.tif 000008
【図７】
2009065825.tif 000009
【図８】
2009065825.tif 000010
【図９】
2009065825.tif 000011
【図１０】
2009065825.tif 000012
【図１１】
2009065825.tif 000013
【図１２】
2009065825.tif 000014
【図１３】
2009065825.tif 000015