(57)【要約】【課題】通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく、駆動装置の異常発生時にその異常が駆動異常あるいは位置検知異常であるかを判別することができる駆動装置を提供する。【解決手段】画像読取装置は、移動可能に構成された裏面ガラスユニットを駆動するガラスモータの駆動異常を検知する駆動制御部を有する。また、裏面ガラスユニットの位置に応じて出力が変化するガラスＨＰセンサ、ガラスＨＰセンサの出力の変化に基づいてガラスモータの動作を制御して、裏面ガラスユニットを移動させるＣＰＵ（Ａ）を有する。ＣＰＵ（Ａ）は、裏面ガラスユニットを移動させる間に、駆動制御部が異常を検知した場合は駆動異常が発生したと判別し、前駆動制御部により異常が検知されていない状態で所定の距離（ＯＮ基準移動量及びＯＦＦ基準移動量）以上移動を行ってもガラスＨＰセンサの出力が変化しなかった場合には位置検知異常が発生したと判別する。【選択図】図７
2019096948.tif 000002
【特許請求の範囲】
【請求項１】
移動可能に構成された移動体と、
前記移動体の移動を行う駆動手段と、
前記駆動手段の駆動異常を検知する駆動異常検知手段と、
前記移動体の位置に応じて出力が変化する位置検知手段と、
前記位置検知手段の出力の変化に基づいて前記駆動手段の動作を制御して、前記移動体を移動させる制御手段と、を有し、
前記制御手段は、前記移動体を移動させる間に、前記駆動異常検知手段が異常を検知した場合は駆動異常が発生したと判別し、前記駆動異常検知手段により異常が検知されていない状態で所定の距離以上移動を行っても前記位置検知手段の出力が変化しなかった場合には位置検知異常が発生したと判別することを特徴とする、
駆動装置。
【請求項２】
前記駆動異常検知手段は、前記移動体の移動時における前記駆動手段の負荷を監視して前記駆動異常の発生の有無を検知することを特徴とする、
請求項１に記載の駆動装置。
【請求項３】
前記制御手段は、前記駆動異常が発生したと判別した場合、前記駆動手段による前記移動体の移動を停止させた後に再度、当該移動体の移動を再開するように制御することを特徴とする、
請求項１または２に記載の駆動装置。
【請求項４】
前記制御手段は、前記移動体の移動を再開するときには、前記移動体の移動を停止させた際の前記駆動手段の駆動速度よりも相対的に低い駆動速度となるように当該駆動手段の駆動を制御することを特徴とする、
請求項３に記載の駆動装置。
【請求項５】
前記移動体は、画像読取装置における読取部に対向して配設される対向部材であり、読み取りガラスと基準白板を有し、
前記移動体の移動により前記読取部が前記読み取りガラス上を移動する原稿、又は、基準白板を読み取るように構成されることを特徴とする、
請求項１乃至４いずれか一項に記載の駆動装置。
【請求項６】
前記移動体は、画像読取装置における読取部であり、当該移動体の移動により前記原稿を読み取ることを特徴とする、
請求項１乃至４いずれか一項に記載の駆動装置。
【請求項７】
請求項１乃至６いずれか一項に記載の駆動装置を有する画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、駆動装置に生じた異常の種別を判別する技術に関する。
【背景技術】
【０００２】
従来、複写機や、複写機に接続される各種の周辺機などにおいて、被駆動体を動かす駆動源として、モータが用いられている。
例えば、複写機、ファクシミリ装置等の画像形成装置には、原稿の画像を光学的に読み取って画像データを得るスキャナ等の画像読取装置が備えられている。これらの画像読取装置は、原稿台ガラス上に載置された原稿を読み取るだけでなく、複数の原稿を一度の操作で読み取ることができるよう、自動原稿搬送装置（Ａｕｔｏ Ｄｏｃｕｍｅｎｔ Ｆｅｅｄｅｒ、以下ＡＤＦと称す）を備えた構成となることが多い。
【０００３】
また、ＡＤＦを備えた画像読取装置では、生産性向上のために画像読取ユニットを２つ設けて、原稿の表裏を一度の搬送で読み取ること（１パス両面読取と称す）ができるようにした構成も知られている。このような構成においては、原稿の裏面を読み取る画像読取ユニットについても、表面と同様にシェーディング動作を実施する必要がある。そのため、シェーディング動作に必要な裏面用の基準白板を備えている。
【０００４】
裏面用基準白板の構成として、モータを駆動源として移動可能なプラテンガラス板を裏面読取ユニットに対向する位置近傍に敷設し、プラテンガラス板の表面の一部に、裏面用基準白板を設けたものがある。このような構成においては、プラテンガラス板を移動させることで、プラテンガラス板に設けられた裏面用基準白板を裏面読取ユニットに対向させて、基準白板を読み取ることにより裏面のシェーディング動作を行う。このプラテンガラス板が被駆動体の例として挙げられる。
また、被駆動体の動きそのもの、あるいは被駆動体が動くことによる作用を検知する位置検知手段として、例えばセンサが用いられている。上記のプラテンガラス板の場合、プラテンガラス板が所定範囲内に位置していることを検知するホームポジションセンサが用いられる。プラテンガラス板の移動においては、このホームポジションセンサの出力に基づき駆動源であるモータを制御することで、所望の位置にプラテンガラス板を位置させることが可能となる。
【０００５】
このような駆動源、被駆動体、位置検知手段からなる駆動装置において、駆動異常（例えば、モータの脱調）や位置検知異常（例えば、センサの故障）が発生した際に、これらの異常を判別する方法が考案されている。
例えば特許文献１では、移動体（被駆動体）に掛かる負荷が所定より大きい場合であっても移動体（被駆動体）を移動可能な駆動力で所定時間モータ（駆動源）を駆動させる。その際の移動量を測定手段（位置検知手段）により検知し、移動量が閾値未満であれば測定手段に異常が生じたと判定する、というものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２４０１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら特許文献１に開示された技術では、異常判別処理を実行するために通常の駆動時に必要とされる駆動力より大きな駆動力を確保する必要がある。そのため、通常の駆動に対し最適に設計された駆動装置においては、駆動力不足のために異常判別処理が実施できない可能性がある。
また、大きな駆動力を確保するためには、より出力が大きいモータを使用したり、モータに供給する電流を上げたりといったことが考えられるが、その場合駆動装置の製造コストの増加や装置サイズの増大、消費電力の増加を伴うことになる。
【０００８】
本発明は、通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく、駆動装置の異常発生時にその異常が駆動異常あるいは位置検知異常であるかを判別することができる駆動装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明の駆動装置は、移動可能に構成された移動体と、前記移動体の移動を行う駆動手段と、前記駆動手段の駆動異常を検知する駆動異常検知手段と、前記移動体の位置に応じて出力が変化する位置検知手段と、前記位置検知手段の出力の変化に基づいて前記駆動手段の動作を制御して、前記移動体を移動させる制御手段と、を有し、前記制御手段は、前記移動体を移動させる間に、前記駆動異常検知手段が異常を検知した場合は駆動異常が発生したと判別し、前記駆動異常検知手段により異常が検知されていない状態で所定の距離（ＯＮ基準移動量及びＯＦＦ基準移動量）以上移動を行っても前記位置検知手段の出力が変化しなかった場合には位置検知異常が発生したと判別することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく、駆動装置の異常発生時にその異常が駆動異常であるか位置検知異常であるかを判別することができる。
【図面の簡単な説明】
【００１１】
【図１】ＡＤＦを含む画像読取装置の一例を示す断面図。
【図２】（ａ）、（ｂ）は、画像読取装置が有する制御部の構成の一例を示すブロック図。
【図３】（ａ）、（ｂ）は、裏面ガラスの移動に係る構成の一例を示した断面図。
【図４】駆動制御部の構成の一例を示すブロック図。
【図５】（ａ）、（ｂ）は、ガラスモータの駆動時の負荷の変動と負荷監視部の過負荷検知信号出力の一例を示すグラフ。
【図６】（ａ）〜（ｆ）は、裏面ガラスユニットの移動を説明するための断面図。
【図７】裏面ガラスユニットの裏面シェーディング位置への移動における制御の一例を示すフローチャート。
【図８】裏面ガラスユニットの裏面原稿読取位置への移動における制御の一例を示すフローチャート。
【図９】裏面ガラスユニットの裏面シェーディング位置への移動における制御の一例を示すフローチャート。
【図１０】裏面ガラスユニットの裏面原稿読取位置への移動における制御の一例を示すフローチャート。
【図１１】（ａ）、（ｂ）は、第３実施形態に係る画像読取装置が有する制御部の構成の一例を示すブロック図。
【図１２】（ａ）、（ｂ）、（ｃ）は、表面読み取りユニットの移動に係る構成の一例を示す平面図。
【図１３】（ａ）〜（ｆ）は、表面読み取りユニットの移動を説明するための断面。
【図１４】表面読み取りユニットの移動制御の一例を示すフローチャート。
【図１５】表面読み取りユニットのＨＰ出しにおける制御の一例を示すフローチャート。
【図１６】表面読み取りユニットの現在位置からの移動量制御における制御の一例を示すフローチャート。
【図１７】表面読み取りユニットにおける光学系ＨＰセンサの出力がＯＮに変化してからの移動量制御における制御の一例を示すフローチャート。
【図１８】表面読み取りユニットにおける光学系ＨＰセンサの出力がＯＦＦに変化してからの移動量制御における制御の一例を示すフローチャート。
【図１９】（ａ）、（ｂ）は、ガラスＨＰセンサと裏面ガラスユニットの位置関係を説明するための側面図。
【図２０】（ａ）、（ｂ）は、ガラスＨＰセンサと裏面ガラスユニットの位置関係を説明するための斜視図。
【図２１】（ａ）〜（ｄ）は、裏面ガラスユニットの移動とガラスＨＰセンサの出力値の関係を説明するための図。
【発明を実施するための形態】
【００１２】
以下、本発明に係る駆動装置を画像読取装置に適用した場合を例に挙げて、図面を参照して説明する。
【００１３】
［第１実施形態］
［本実施例の画像読取装置及び画像形成装置の構成例］
図１は、ＡＤＦを含む画像読取装置の一例を示す断面図である。
本実施例の画像読取装置１０００は、原稿の画像を読み取る画像読取部（以下、リーダと称す）２００、自動原稿給紙部（以下、ＡＤＦと称す）１００を有する。また、画像読取装置１０００は図示しないコントローラ３００が接続される。
以下、ＡＤＦ１００の動作について、図１を参照しながら説明する。
【００１４】
［ＡＤＦの構成例］
ＡＤＦ１００を使用した片面原稿読み取り動作（以下、片面流し読みと称す）について説明する。
ＡＤＦ１００は、１枚以上の原稿シートで構成される原稿束Ｓを積載する原稿トレイ３０、原稿の搬送開始前に原稿束Ｓが原稿トレイ３０より突出して下流への進出を規制する分離パッド２１及び分離ローラ２、給紙ローラ１を有する。
原稿トレイ３０は、原稿検知センサ１４が配置され、当該センサの検知結果に応じて原稿トレイ３０上の原稿の有無が判別可能に構成される。
給紙ローラ１は、原稿トレイ３０に積載された原稿束Ｓの原稿面に落下して回転する。これにより、原稿束の最上面の原稿が給紙される。給紙ローラ１によって給紙された原稿は、分離ローラ２と分離パッド２１の作用によって１枚に分離される。この分離は公知の分離技術によって実現される。
【００１５】
分離ローラ２と分離パッド２１によって分離された原稿は、引抜ローラ３により、搬送ローラ４へ搬送される。搬送ローラ４の下流側には、搬送ローラ４を通過した原稿を表面流し読みガラス２０１方向へ搬送する給紙路が配置される。
給紙路に送られた原稿は、表面読み取り搬送ローラ５及び表面読み取り上流ローラ５１、表面読み取り下流ローラ５２によって表面流し読み位置に搬送される。
表面流し読みガラス２０１と表面ガラス対向部材６の間を通過する原稿の表面は表面ＬＥＤ２０３ａ、２０３ｂで照射される。その反射光は、複数のミラー２０４ａ、２０４ｂ、２０４ｃを介して屈曲されながら、表面読取センサ２０８によって原稿の表面画像を１ラインずつ読み取られる（以下、表面読み取りと称す）。
【００１６】
表面読み取り下流ローラ５２により搬送された原稿は、裏面読み取り搬送ローラ７及び裏面読み取り上流ローラ５３、裏面読み取り下流ローラ５４によって搬送された後、排紙ローラ１２によって排紙トレイ１３まで搬送される。
原稿が原稿トレイ３０上に複数枚有る場合には、最終原稿の表面読み取り及び排紙トレイ１３への排紙が終了するまで、前述の原稿束Ｓからの給紙、分離、搬送処理、表面流し読み位置での片面読取処理、及び排紙処理を繰り返す。
【００１７】
［両面原稿読み取り］
ＡＤＦ１００を使用した両面原稿読み取り動作（以下、両面流し読みと称す）について説明する。
なお、両面流し読みは、片面流し読みにおける原稿表面の読み取りに、原稿裏面の読み取り動作を加えたものである。また、原稿の給紙、分離、搬送、及び表面読み取りについては前述の片面読み取り時と同様であるので説明を省略する。
【００１８】
表面読み取り下流ローラ５２により搬送された原稿は、裏面読み取り搬送ローラ７及び裏面読み取り上流ローラ５３、裏面読み取り下流ローラ５４によって裏面流し読み位置に搬送される。
原稿が裏面流し読み位置に達するより前に、移動可能に構成された裏面流し読みガラス１０１を図１に示す位置（以下、裏面原稿読取位置と称す）に移動させておく。
裏面流し読みガラス１０１と裏面ガラス対向部材８の間を通過する原稿の裏面は裏面ＬＥＤ１０３ａ、１０３ｂで照射される。その反射光は、複数のミラー１０４ａ、１０４ｂ、１０４ｃを介して屈曲されながら、裏面読取センサ１０８によって原稿の裏面画像が読み取られる（以下、裏面読み取りと称す）。裏面読み取り下流ローラ５４により搬送された原稿は排紙ローラ１２によって排紙トレイ１３まで搬送される。
【００１９】
例えば、原稿が原稿トレイ３０上に複数枚存在するとする。この場合、最終原稿の表面読み取り、裏面読み取り及び排紙トレイ１３への排紙が終了するまでの間前述した原稿束Ｓからの給紙、分離、搬送処理、表裏それぞれの読取処理、及び排紙処理、を繰り返す。
【００２０】
［搬送制御］
搬送に用いられるローラ（例えば、給紙ローラ１、分離ローラ２、引き抜きローラ３、搬送ローラ４、読み取り上流ローラ５、表面読み取り上流ローラ５１）は、搬送系モータ１２０（図１には不図示の１つまたは複数のモータ）を駆動源として回転する。なお、表面読み取り下流ローラ５２、裏面読み取り搬送ローラ７、裏面読み取り上流ローラ５３、裏面読み取り下流ローラ５４、排紙ローラ１２も同様に回転駆動される。
搬送系センサ１２１（搬送経路の各所に設けられたセンサ１５、１６、１７、１８、１９等）は、原稿の有無または搬送経路上の位置を検知し、検知結果に応じて原稿の給紙、分離、搬送、表面流し読み位置及び裏面流し読み位置での読み取り、及び排紙の処理が行われる。
以下、リーダ２００の動作について、図１を参照しながら説明する。
【００２１】
［画像読取部（リーダ）の構成例］
リーダ２００は、原稿台ガラス２０９上に載置された原稿について、図１には図示しない光学系モータ２２６により移動可能に構成された移動体である表面読み取りユニット２０２を、図１の矢印に示す副走査方向に一定速度で移動する。この様にしてリーダ２００は、原稿に記録された画像情報を１ラインずつ表面読取センサ２０８により読み取る（以下、固定読みと称す）。
【００２２】
また、表面読み取りユニット２０２をＡＤＦ１００の表面ガラス対向部材６の中心位置（以下、表面流し読み原稿読取位置と称す）に移動し、原稿トレイ３０に積載された原稿を前述の方法で給紙搬送し当該原稿の表面を表面読取センサ２０８により読み取る（片面流し読み）。
原稿トレイ３０に積載された原稿の両面を読み取る場合、表面については片面流し読みと同様に読み取り、裏面については前述の通りＡＤＦ１００に搭載された裏面読み取りユニット１０２で読み取る（両面流し読み）。
【００２３】
［シェーディング制御］
基準白板である表面シェーディング白板２１０及び裏面シェーディング白板１１０は、シェーディングによる白レベルの基準データを作成するための白板である。
原稿の読み取り前に表面シェーディング白板２１０及び裏面シェーディング白板１１０を表面読み取りユニット２０２及び裏面読み取りユニット１０２でそれぞれ読み取り、画像処理することで表裏それぞれの基準データを作成する。
【００２４】
表面シェーディング白板２１０は、表面流し読みガラス２０１と原稿台ガラス２０９の間に固定して設けられている。表面読み取りユニット２０２は、光学系モータ２２６の駆動により移動可能に構成される。被駆動体である表面読み取りユニット２０２を移動させて、表面シェーディング白板２１０に対向する位置（以下、表面シェーディング位置と称す）に停止させる。これにより、表面シェーディング白板２１０が読み取り可能な状態になる。
表面読み取りユニット２０２を表面シェーディング位置に停止させた状態で表面シェーディング白板２１０を読み取り、表面読み取りのための白レベルの基準データを作成する。
【００２５】
一方、裏面シェーディング白板１１０は、図１に図示しないガラスモータ１２２により移動可能に構成された移動体である裏面流し読みガラス１０１に配設される。また、裏面読み取りユニット１０２は、図１に示す位置に固定して配設されている。
ガラスモータ１２２の駆動により被駆動体である裏面流し読みガラス１０１を移動させ、裏面読み取りユニット１０２の対向面に裏面シェーディング白板１１０が位置するように裏面流し読みガラス１０１を停止させる（以下、裏面シェーディング位置と称す）。これにより、裏面シェーディング白板１１０が読み取り可能な状態になる。
裏面流し読みガラス１０１を裏面シェーディング位置に停止させた状態で、裏面シェーディング白板１１０を読み取り、裏面読み取りのための白レベルの基準データを作成する。原稿の読み取り後、表裏それぞれの白レベルの基準データに基づき、読み取り画像の補正が行われる。
【００２６】
図２は、画像読取装置１０００が有する制御部の構成の一例を示すブロック図である。
図２（ａ）はリーダ２００及びＡＤＦ１００のブロック図であり、図２（ｂ）はコントローラ３００のブロック図である。
【００２７】
図２（ａ）に示すＣＰＵ（Ａ）２５１は、リーダ２００及びＡＤＦ１００の各ユニットを統括的に制御する中央演算処理装置である。
ＲＯＭ（Ａ）２５２は、ＣＰＵ（Ａ）２５１が実行すべき制御内容をプログラムとして格納した記憶装置である。
ＲＡＭ（Ａ）２５３は、ＣＰＵ（Ａ）２５１が制御を行うのに必要な作業領域として使用される記憶装置である。
【００２８】
ＣＰＵ（Ａ）２５１は、表面ＬＥＤ２０３、表面読取センサ２０８、裏面ＬＥＤ１０３、裏面読取センサ１０８、表面読み取りユニット２０２を副走査方向に移動させるための光学系モータ２２６と光学系ＨＰセンサ２１１それぞれと接続される。
また、ＣＰＵ（Ａ）２５１は、移動体である裏面ガラスユニット１２５を移動させるためのガラスモータ１２２とガラスＨＰセンサ１１１、ガラスモータ１２２の駆動を制御するための駆動制御部１２３それぞれと接続される。また、画像メモリ（Ａ）２６０、画像処理部２６１、画像転送部（Ａ）２５５それぞれと接続される。
【００２９】
表面読取センサ２０８及び裏面読取センサ１０８は、原稿の画像を走査し、１ライン毎に読み取りを行うセンサである。画像メモリ（Ａ）２６０は、表面読取センサ２０８及び裏面読取センサ１０８により読み取られた画像データを一時的に格納する記憶装置である。画像処理部２６１は、画像メモリ（Ａ）２６０に格納された読取画像に対し、画像処理による補正を行う。画像転送部（Ａ）２５５は、画像処理部２６１により画像処理が施された画像データを、後述するコントローラ３００の画像転送部（Ｂ）３０８に転送する。
【００３０】
ＣＰＵ（Ａ）２５１には、原稿搬送機能を実現するために、各種搬送用のローラを駆動する搬送系モータ１２０、搬送経路の各所に設けられた搬送系センサ１２１、がそれぞれ接続されている。また、ＣＰＵ（Ａ）２５１には原稿トレイ３０上の原稿の有無を判別する原稿検知センサ１４が接続されている。
【００３１】
［コントローラの構成］
図２（ｂ）に示すコントローラ３００は、リーダ２００、ＡＤＦ１００を含む画像読取システムとしての全体を制御する。
ＣＰＵ（Ｂ）３０１は、コントローラ３００の各ユニットを統括的に制御する中央演算装置である。
ＲＯＭ（Ｂ）３０２は、ＣＰＵ（Ｂ）３０１が実行すべき制御内容をプログラムとして格納した記憶装置である。
ＲＡＭ（Ｂ）３０３は、ＣＰＵ（Ｂ）３０１が制御を行うのに必要な作業領域として使用される記憶装置である。
【００３２】
画像転送部（Ｂ）３０８は、画像転送部（Ａ）２５５から画像を受信し、受信結果を画像メモリ（Ｂ）３０６へ格納する。
操作部３０４は、ユーザからの画像読取システム全体に対する動作指示やユーザへのメッセージ表示および読み取られた画像の表示を行う。
【００３３】
ＣＰＵ（Ｂ）３０１は、ＣＰＵ（Ａ）２５１との通信ライン４０１を介して、画像読取制御に関する制御コマンドのやり取り及び制御用データの授受を行う。例えば、ＣＰＵ（Ｂ）３０１は、操作部３０４からユーザの画像読取開始指示を受け取り、ＣＰＵ（Ａ）２５１に画像読取開始要求を送信する。
また、ＣＰＵ（Ｂ）３０１は、操作部３０４からユーザの原稿サイズ設定指示を受け取り、ＣＰＵ（Ａ）２５１に原稿のサイズ（主走査幅及び副走査長）を送信する。例えば、ＣＰＵ（Ｂ）３０１は、ＣＰＵ（Ａ）２５１から異常発生通知を受け取り、異常の種類に応じたユーザへのメッセージを操作部３０４に表示させる。
【００３４】
［裏面ガラスの移動］
図３は、裏面ガラスの移動に係る構成の一例を示した断面図である。
なお、図３中の一点鎖線は、裏面読み取りユニット１０２の画像読取対象位置を表している。
【００３５】
図３（ａ）は、裏面ガラスユニット１２５が裏面原稿読取位置に停止している状態を示している。裏面ガラスユニット１２５は、裏面流し読みガラス１０１と、裏面流し読みガラス１０１に張り付けられた裏面シェーディング白板１１０を有する。
裏面ガラスユニットが裏面原稿読取位置に停止しているとき、裏面流し読みガラス１０１と裏面ガラス対向部材８の間を通過する原稿に対して、裏面読み取りユニット１０２を介して一点鎖線に示す位置で画像を１ラインずつ読み取ることができる。
【００３６】
図３（ｂ）は、裏面ガラスユニット１２５が裏面シェーディング位置に停止している状態を示している。裏面ガラスユニットが裏面シェーディング位置に停止しているとき、裏面シェーディング白板１１０に対して、裏面読み取りユニット１０２を介して一点鎖線に示す位置で画像を１ラインずつ読み取ることができる。
前述の通り、両面原稿読み取り時には裏面ガラスユニット１２５を図３（ａ）に示す裏面原稿読取位置に停止させ、また、シェーディング時には裏面ガラスユニット１２５を図３（ｂ）に示す裏面シェーディング位置に停止させる。
以下、裏面原稿読取位置と裏面シェーディング位置間の裏面ガラスユニット１２５の移動の制御の一例を説明する。
【００３７】
裏面ガラスユニット１２５は、不図示のガラスモータ１２２を駆動させることにより移動可能に構成される。ガラスモータ１２２の駆動時、その回転がカム軸１１４を経由してカム１１３に伝達され、カム１１３が図中曲線矢印方向に回転することにより、裏面ガラスユニット１２５は図中直線矢印方向に移動する。
ガラスＨＰセンサ１１１は、図３に示す位置に配設される。裏面ガラスユニット１２５の移動時には、ガラスＨＰセンサ１１１の出力の変化に応じて裏面ガラスユニット１２５の移動量を制御する。
【００３８】
ガラスＨＰセンサ１１１は、例えば図３に示す裏面ガラスユニット１２５の図面手前側と図面背後側に、それぞれ発光部と受光部を有するフォトインタラプタである。
裏面ガラスユニット１２５が移動すると、裏面ガラスユニット１２５によりガラスＨＰセンサ１１１の発光部からの光が遮光、または透光されることにより、ガラスＨＰセンサ１１１の出力がＯＮ（遮光時）またはＯＦＦ（透光時）へ変化する。
【００３９】
本実施例においては、裏面ガラスユニット１２５が裏面原稿読取位置に停止している場合、ガラスＨＰセンサ１１１の出力はＯＦＦとなる（図３（ａ））。また、裏面ガラスユニット１２５が裏面シェーディング位置に停止している場合、ガラスＨＰセンサ１１１の出力はＯＮとなる（図３（ｂ））。ガラスＨＰセンサ１１１を用いた裏面ガラスユニット１２５の位置検知については、詳しくは後述する。
【００４０】
また、ガラスＨＰセンサ１１１の出力が変化したタイミングから、所定の距離だけ裏面ガラスユニット１２５を移動させた後に停止させることで裏面ガラスユニット１２５を所望の位置で停止させることができる。
前述した通り、ガラスモータ１２２を駆動させることにより裏面ガラスユニット１２５が移動するため、裏面ガラスユニット１２５の移動量の制御は、ガラスモータ１２２の駆動パルスをカウントすることで可能となる。移動量制御について詳しくは後述する。
【００４１】
［駆動制御部の構成］
図４は、駆動制御部１２３の構成の一例を示すブロック図である。
前述の通り、ＣＰＵ（Ａ）２５１にはガラスモータ１２２の駆動を制御するための駆動制御部１２３が接続されている。
出力制御部１３０は、ガラスモータ１２２の駆動に関する情報について、ＣＰＵ（Ａ）２５１との間で通信を行い、それらの情報に基づいて後述する駆動波形出力部１３１を制御する。
【００４２】
例えば、出力制御部１３０は、ガラスモータ１２２の駆動開始前に、ガラスモータ１２２の回転方向、初期速度、目標速度、加速度などの指令情報をＣＰＵ（Ａ）２５１より受信する。
出力制御部１３０は、ガラスモータ１２２の駆動開始時に、駆動開始指令をＣＰＵ（Ａ）２５１より受信する。出力制御部１３０は、ガラスモータ１２２の駆動中に、駆動停止、また駆動停止までのパルス数指定、などの指令情報をＣＰＵ（Ａ）２５１より受信する。
【００４３】
駆動波形出力部１３１は、出力制御部１３０からの指令に従い、ガラスモータ１２２を駆動させる信号を出力する。
負荷検出部１３２は、ガラスモータ１２２の駆動中、ガラスモータ１２２の駆動波形からガラスモータ１２２に掛かる負荷情報を検知し、負荷監視部１３３へ出力する。
負荷監視部１３３は、ガラスモータ１２２の駆動開始前に、ガラスモータ１２２の過負荷を判別するための閾値をＣＰＵ（Ａ）２５１より受信する。
負荷監視部１３３は、ガラスモータ１２２の駆動中、負荷検出部１３２が検知した負荷情報を監視し、過負荷発生の有無を表す過負荷検知信号をＣＰＵ（Ａ）２５１へ出力する。
【００４４】
［駆動異常の検知］
図５は、ガラスモータ１２２の駆動時の負荷の変動と負荷監視部１３３の過負荷検知信号出力の一例を示すグラフである。図５を用いて、駆動異常の検知について説明する。
図５（ａ）は、時間の経過と共に変動するガラスモータ１２２の負荷を表したグラフである。図５（ａ）の例では、破線で示した時間ｔにおいて検知負荷が閾値を超えていることが見て取れる。
【００４５】
図５（ｂ）は、図５（ａ）に対応する、負荷監視部１３３の過負荷検知信号の出力を表したグラフである。図５（ｂ）に示すように、負荷監視部１３３の過負荷検知信号は、検知負荷が閾値を超えない間はＯＦＦとなり、検知負荷が閾値を超えている間はＯＮとなる。
図５（ｂ）では、時間ｔにおいて検知負荷が閾値を超え、負荷監視部１３３の過負荷検知信号の出力がＯＦＦからＯＮへ変化することが見て取れる。
【００４６】
ガラスモータ１２２の駆動中に過負荷が発生した場合、そのままガラスモータ１２２の駆動を続けるとガラスモータ１２２の脱調が起こる恐れがある。脱調が発生すると、ガラスモータ１２２の駆動を正常に制御することができなくなる。そのため、過負荷が発生した場合は、ガラスモータ１２２の停止など、適切な処理を実施する必要がある。
【００４７】
ここで、負荷監視部１３３が過負荷を判別するための閾値は、前述の通りガラスモータ１２２の駆動前に、ＣＰＵ（Ａ）２５１により指定された値である。
画像読取装置１０００の設計において、ガラスモータ１２２の通常の駆動において発生する最大の負荷に対しマージンを持たせて閾値Ｔｈが決定される。ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動前に閾値Ｔｈの情報を駆動制御部１２３へ送信する。
【００４８】
このように決定された閾値Ｔｈに対して検知負荷が閾値を超えた場合、通常では発生しない異常な負荷（過負荷）が発生していることになる。この場合、負荷監視部１３３が出力する過負荷検知信号の変化により、ＣＰＵ（Ａ）２５１は、過負荷の発生を知ることができるため適切な処理を行うことができる。また、駆動異常の検知に際し、通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることもない。
【００４９】
なお、本実施形態においては、駆動制御部１２３は上記の方法によりガラスモータ１２２の駆動異常（過負荷）を検知する構成となっているが、本発明はこれに限定されるものではない。
例えば、駆動制御部１２３がガラスモータ１２２の回転位置検知手段を有し、ガラスモータ１２２の駆動制御中に回転位置検知手段の検知結果に基づきガラスモータ１２２が停止したと判別した場合、駆動異常（脱調）が発生したと検知するように構成してもよい。
【００５０】
［位置検知］
ここで、ガラスＨＰセンサ１１１を用いた裏面ガラスユニット１２５の位置を検知する構成について図１９、図２０、図２１を用いて説明する。
裏面ガラスユニット１２５は、前述した通り、裏面流し読みガラス１０１と、裏面流し読みガラス１０１に張り付けられた裏面シェーディング白板１１０を有している。
裏面ガラスユニット１２５は、これらに加えて裏面流し読みガラス１０１及び裏面シェーディング白板１１０を挟持するガラスホルダ１２５ａ、ガラスホルダ１２５ａに接着されたフラグ１２５ｂを含んで構成される。
【００５１】
図１９は、ガラスＨＰセンサ１１１と裏面ガラスユニット１２５の位置関係を説明するための側面図である。
図１９（ａ）は、ガラスＨＰセンサ１１１の出力がＯＦＦとなる場合の図であり、図１９（ｂ）は、ガラスＨＰセンサ１１１の出力がＯＮとなる場合の図である。
図２０は、ガラスＨＰセンサ１１１と裏面ガラスユニット１２５の位置関係を説明するための斜視図である。
図２０（ａ）は、ガラスＨＰセンサ１１１の出力がＯＦＦとなる場合の図であり、図２０（ｂ）は、ガラスＨＰセンサ１１１の出力がＯＮとなる場合の図である。
【００５２】
ガラスＨＰセンサ１１１は、前述の通りフォトインタラプタとして構成される。
図１９、図２０中に点線で示した空間Ｌには赤外線が照射されており、フラグ１２５ｂが空間Ｌに位置している間、照射された赤外線がフラグ１２５ｂにより遮られることでガラスＨＰセンサ１１１の出力がＯＮとなる。
【００５３】
図２１は、裏面ガラスユニット１２５の移動とガラスＨＰセンサ１１１の出力値の関係を説明するための図である。
図２１（ａ）は、裏面ガラスユニット１２５が裏面原稿読取位置に停止している状態を示した断面図である。図２１（ｂ）は、図２１（ａ）と同じく裏面ガラスユニット１２５が裏面原稿読取位置に停止している状態を示した上面図である。図２１（ｃ）は、裏面ガラスユニット１２５が裏面シェーディング位置に停止している状態を示した断面図である。図２１（ｄ）は、図２１（ｃ）と同じく裏面ガラスユニット１２５が裏面シェーディング位置に停止している状態を示した上面図である。
【００５４】
図２１（ｂ）及び図２１（ｄ）に示すフラグ１２５ｂの右端Ｅ１が、図２１（ｂ）及び図２１（ｄ）に示すガラスＨＰセンサ１１１の検知位置Ｄ（図１９、図２０中に示した空間Ｌの図２１における左右方向の位置）より図２１中の左に位置しているとする。この場合、フラグ１２５ｂが空間Ｌに照射された赤外線を遮ることはなく光学系ＨＰセンサ２１１の出力はＯＦＦとなる（図（ａ）、（ｂ））。
一方、フラグ１２５ｂの右端Ｅ１が検知位置Ｄより図２１中の右に位置している場合、フラグ１２５ｂが空間Ｌに照射された赤外線を遮るためガラスＨＰセンサ１１１の出力はＯＮとなる（図２１（ｃ）、（ｄ））。
【００５５】
［移動量制御］
図６は、裏面ガラスユニット１２５の移動を説明するための断面図である。図６を用いて、裏面ガラスユニット１２５の移動における移動量制御について説明する。
図６（ａ）は、裏面ガラスユニット１２５が裏面原稿読取位置に位置している状態を示している。図６（ｂ）は、裏面ガラスユニット１２５が裏面原稿読取位置から裏面シェーディング位置まで移動する途中に、ガラスＨＰセンサ１１１の出力がＯＮになったときの状態を示している。図６（ｃ）は、裏面ガラスユニット１２５が裏面シェーディング位置に位置している状態を示している。図６（ｄ）は、裏面ガラスユニット１２５が裏面シェーディング位置から裏面原稿読取位置まで移動する途中に、ガラスＨＰセンサ１１１の出力がＯＦＦになったときの状態を示している。図６（ｅ）は図６（ａ）と同じく、裏面ガラスユニット１２５が裏面原稿読取位置に位置している状態を示している。
【００５６】
図６（ａ）と図６（ｂ）の間に破線と白抜き矢印で示したように、図６（ａ）の状態から図６（ｂ）の状態に至るまでの裏面ガラスユニット１２５の移動量を移動量Ｌａとする。移動量Ｌｂ、Ｌｃ、Ｌｄについても、同様に各図の間に破線と白抜き矢印で示した裏面ガラスユニット１２５の移動量を表している。
【００５７】
図６（ｆ）は、図６（ａ）〜（ｅ）に破線で示したフラグ１２５ｂの右端Ｅ１（裏面ガラスユニット１２５の右端と一致する）を基準として、縦軸にガラスＨＰセンサ１１１の出力、横軸に裏面ガラスユニット１２５の移動方向を取った図である。図６（ｆ）では、裏面ガラスユニット１２５の移動に伴うガラスＨＰセンサ１１１の出力の変化を示している。
なお、本実施形態においては、ガラスモータ１２２の駆動方向は常に一定とし、図６中に曲線矢印で示したカム１１３が図中反時計回りに回転する向きとする。
【００５８】
前述の通り、裏面ガラスユニット１２５の移動時には、ガラスＨＰセンサ１１１の出力の変化に応じてガラスモータ１２２の駆動パルスをカウントして、カウント結果に応じて裏面ガラスユニット１２５の移動量の制御を行う。
裏面ガラスユニット１２５を裏面原稿読取位置から裏面シェーディング位置まで移動させる場合、図６（ａ）に示すように、移動開始時はガラスＨＰセンサ１１１の出力はＯＦＦとなっている。また、図６（ａ）から図６（ｂ）にかけて裏面ガラスユニット１２５が図中右側へ移動量Ｌａだけ移動することで、ガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化する。その時点からのガラスモータ１２２の駆動パルスをカウントし、カウントしたパルス数が移動量Ｌｂに相当するパルス数Ｃ１に達した時点で、ガラスモータ１２２を停止させる。このようにして、図６（ｃ）に示す位置、すなわち裏面シェーディング位置で裏面ガラスユニット１２５を停止させる。
【００５９】
裏面ガラスユニット１２５を裏面シェーディング位置から裏面原稿読取位置まで移動させる場合、図６（ｃ）に示すように、移動開始時はガラスＨＰセンサ１１１の出力はＯＮとなっている。
図６（ｃ）から図６（ｄ）にかけて裏面ガラスユニット１２５が図中左側へ移動量Ｌｃだけ移動することで、ガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化する。その時点からのガラスモータ１２２の駆動パルスをカウントし、カウントしたパルス数が移動量Ｌｄに相当するパルス数Ｃ２に達した時点でガラスモータ１２２を停止させる。このようにして、図６（ｅ）に示す位置、すなわち裏面原稿読取位置で裏面ガラスユニット１２５を停止させる。
【００６０】
［位置検知異常の検知］
前述の通り、ガラスＨＰセンサ１１１の出力の変化に基づき裏面ガラスユニット１２５の移動量を制御する場合、何らかの理由でガラスＨＰセンサ１１１の出力が変化しなかった場合には正しく制御することができない。この場合に考えられる理由としては、駆動異常と位置検知異常が挙げられる。
駆動異常の場合、例えばガラスモータ１２２が脱調することで、ガラスモータ１２２を駆動するよう制御していても裏面ガラスユニット１２５が移動できなくなる。また、裏面ガラスユニット１２５の移動ができていないため、ガラスＨＰセンサ１１１の出力も変化しない。
【００６１】
位置検知異常の場合、例えばガラスＨＰセンサ１１１が故障して出力が常にＯＮまたはＯＦＦになり、本来であれば出力が変化する位置まで裏面ガラスユニット１２５が移動（所定の距離以上移動）しても出力が変化しなくなる。
駆動異常については、前述の方法で検知することができる。位置検知異常（センサ故障）については、次に説明する方法で検知する。
【００６２】
図６を用いて裏面ガラスユニット１２５の移動における位置検知異常を検知する構成の一例について説明する。
裏面ガラスユニット１２５の移動開始時に、十分な距離（ＯＮ基準移動量）を移動させてもＨＰセンサ１１１の出力がＯＦＦからＯＮに変化しなかった場合、ガラスＨＰセンサ１１１の出力が変化しない状態にあると判別できる。
この場合の十分な距離は、ガラスＨＰセンサ１１１の出力がＯＮになった直後の位置にいる状態（図６（ｂ））から移動を続け、ガラスＨＰセンサ１１１の出力が一度ＯＦＦになった（図６（ｄ））後、再びＯＮになる位置（図６（ｂ））までの距離より大きい距離である。具体的には、ガラスＨＰセンサ１１１の移動量（Ｌｂ+Ｌｃ+Ｌｄ+Ｌａ）より大きい距離である。
【００６３】
また、同様に十分な距離（ＯＦＦ基準移動量）を移動させてもガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化しなかった場合も、ガラスＨＰセンサ１１１の出力が変化しない状態にあると判別できる。
この場合の十分な距離は、ガラスＨＰセンサ１１１の出力がＯＦＦになった直後の位置にいる状態（図６（ｄ）の状態）から移動を続け、ＨＰセンサ１１１の出力が一度ＯＮになった（図６（ｂ））後、再びＯＦＦになる位置（図６（ｄ））までの距離より大きい距離である。具体的には、ガラスＨＰセンサ１１１の移動量（Ｌｄ+Ｌａ+Ｌｂ+Ｌｃ）より大きい距離である。
【００６４】
なお、本実施形態においては、ＯＮ基準移動量とＯＦＦ基準移動量共にカム１１３が一回転する移動量Ｌにマージンαを加えた移動量Ｌ’（以下に示す（式１））を用いる。
【００６５】
Ｌ’ ＝ Ｌａ + Ｌｂ + Ｌｃ + Ｌｄ + α                 ・・・（式１）
【００６６】
裏面ガラスユニット１２５の移動開始からのガラスモータ１２２の駆動パルスをカウントし、カウントしたパルス数が移動量Ｌ’に相当するパルス数Ｃ’に達するまでの間に駆動異常が発生していないとする。さらに、ＨＰセンサ１１１の出力が上記のように変化しなかった場合は位置検知異常が発生していると判別する。
【００６７】
［裏面シェーディング位置への移動］
前述の通り、原稿の読み取り前に裏面シェーディング白板１１０を裏面読み取りユニット１０２で読み取り、裏面読み取りのための白レベルの基準データを作成するため、裏面ガラスユニット１２５の裏面シェーディング位置への移動を行う。
【００６８】
図７は、裏面ガラスユニット１２５の裏面シェーディング位置への移動における制御の一例を示すフローチャートである。図７に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図７を用いて、裏面ガラスユニット１２５の裏面シェーディング位置への移動における制御について説明する。
【００６９】
ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５を裏面シェーディング位置へ移動させる際に、裏面ガラスユニット１２５の現在位置が裏面シェーディング位置であるか否かを判別する（Ｓ１０１）。なお、ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５の移動制御を行った際は、移動制御後の裏面ガラスユニット１２５の位置を現在位置としてＲＡＭ（Ａ）２５３の所定の領域に記憶する。
【００７０】
ＣＰＵ（Ａ）２５１は、記憶された現在位置が裏面シェーディング位置であった場合（Ｓ１０１：Ｙｅｓ）、既に裏面ガラスユニット１２５は裏面シェーディング位置に存在しており移動は不要であるため処理を終了する。
【００７１】
ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５の現在位置が裏面シェーディング位置でなかった場合（Ｓ１０１：Ｎｏ）、裏面シェーディング位置への移動制御を行う。具体的には、記憶されている現在位置が裏面シェーディング位置以外の位置であるか、まだ位置制御が行われておらず現在位置が不定である場合には裏面シェーディング位置への移動制御を行う。
【００７２】
ＣＰＵ（Ａ）２５１は、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ１０２）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ１０３）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ１０４）。
【００７３】
ＣＰＵ（Ａ）２５１は、駆動制御部１２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ１０５）。
過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、ＣＰＵ（Ａ）２５１は、駆動異常が発生したと判別して（Ｓ１０５：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ１３０）。
ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ１３１）処理を終了する。
【００７４】
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ１０５：Ｎｏ）、ガラスＨＰセンサ１１１の出力変化を確認する（Ｓ１０６）。
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化していない場合（Ｓ１０６：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ１２０）。
【００７５】
ＣＰＵ（Ａ）２５１は、カウント値がＯＮ基準移動量Ｌ’に相当するパルス数Ｃ’以上となっていた場合、ＯＮ基準移動量を移動させてもガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化しなかったため位置検知異常が発生したと判別する（Ｓ１２０：Ｙｅｓ）。
この場合、ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を停止する（Ｓ１２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ１２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ１２０：Ｎｏ）、ステップＳ１０５の処理に遷移して再び駆動異常の検知を行う。
【００７６】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化した場合（Ｓ１０６：Ｙｅｓ）、位置制御用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ１０７）。
ＣＰＵ（Ａ）２５１は、ステップＳ１０５の処理と同様の処理により駆動異常の発生の有無を判別する（Ｓ１０８）。
駆動異常が発生していると判別した場合（Ｓ１０８：Ｙｅｓ）、ＣＰＵ（Ａ）２５１は、ステップＳ１０５：Ｙｅｓの場合の処理と同様の処理を行い（Ｓ１３０〜Ｓ１３１）その後処理を終了する。
【００７７】
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ１０８：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ１０９）。
ＣＰＵ（Ａ）２５１は、カウント値が移動量Ｌｂに相当するパルス数Ｃ１と一致しない場合、裏面シェーディング位置への移動が完了していないと判別して（Ｓ１０９：Ｎｏ）、ステップＳ１０８の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ１と一致した場合、裏面シェーディング位置への移動が完了したと判別して（Ｓ１０９：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ１１０）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を裏面シェーディング位置に更新して（Ｓ１１１）処理を終了する。
【００７８】
［裏面原稿読取位置への移動］
前述の通り、両面流し読みにおいて、原稿が裏面流し読み位置に達するより前に裏面ガラスユニット１２５の裏面原稿読取位置への移動を行う。
図８は、裏面ガラスユニット１２５の裏面原稿読取位置への移動における制御の一例を示すフローチャートである。図８に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図８を用いて、裏面ガラスユニット１２５の裏面原稿読取位置への移動における制御について説明する。
【００７９】
ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５を裏面原稿読取位置へ移動させる際、裏面ガラスユニット１２５の現在位置が裏面原稿読取位置であるか否かを判別する（Ｓ２０１）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶された現在位置を読み出し、現在位置が裏面原稿読取位置であった場合（Ｓ２０１：Ｙｅｓ）、既に裏面ガラスユニット１２５は裏面原稿読取位置にあり移動は不要であるため制御を終了する。
ＣＰＵ（Ａ）２５１は、現在位置が裏面原稿読取位置でなかった場合（Ｓ２０１：Ｎｏ）、すなわち記憶されている現在位置が裏面原稿読取位置以外の位置であるか、まだ位置制御が行われておらず現在位置が不定である場合には裏面原稿読取位置への移動制御を行う。
【００８０】
ＣＰＵ（Ａ）２５１は、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ２０２）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ２０３）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ２０４）。
【００８１】
ＣＰＵ（Ａ）２５１は、駆動制御部１２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ２０５）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ２０５：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ２３０）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ２３１）処理を終了する。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ２０５：Ｎｏ）、ガラスＨＰセンサ１１１の出力変化を確認する（Ｓ２０６）。
【００８２】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化していない場合（Ｓ２０６：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ２２０）。
ＣＰＵ（Ａ）２５１は、カウント値がＯＦＦ基準移動量Ｌ’に相当するパルス数Ｃ’以上となっていた場合、ＯＦＦ基準移動量を移動させてもガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化しなかったため位置検知異常が発生したと判別する（Ｓ２２０：Ｙｅｓ）。
この場合、ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を停止する（Ｓ２２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ２２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ’を下回っていた場合は、位置検知異常は発生していないと判別して（Ｓ２２０：Ｎｏ）、ステップＳ２０５の処理に遷移して再び駆動異常の検知を行う。
【００８３】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化した場合（Ｓ２０６：Ｙｅｓ）、位置制御用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ２０７）。
ＣＰＵ（Ａ）２５１は、ステップＳ２０５の処理と同様の処理により駆動異常の発生の有無を判別する（Ｓ２０８）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ２０８：Ｙｅｓ）、ステップＳ２０５：Ｙｅｓの場合の処理と同様の処理を行い（Ｓ２３０〜Ｓ２３１）その後処理を終了する。
【００８４】
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ２０８：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ２０９）。
ＣＰＵ（Ａ）２５１は、カウント値が移動量Ｌｄに相当するパルス数Ｃ２と一致しない場合、裏面原稿読取位置への移動が完了していないと判別して（Ｓ２０９；Ｎｏ）、ステップＳ２０８の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ２と一致した場合、裏面原稿読取位置への移動が完了したと判別して（Ｓ２０９：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ２１０）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を裏面原稿読取位置に更新して（Ｓ２１１）処理を終了する。
【００８５】
このように本実施形態に係る画像読取装置では、ガラスモータ１２２の駆動により裏面ガラスユニット１２５を移動させる際に、通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく駆動異常、位置検知異常の発生の有無を判別することができる。
【００８６】
［第２実施形態］
次に、第２実施形態について説明する。なお、本実施形態に係る画像読取装置の構成は、第１実施形態に係る読取装置と同様の構成であるため、その説明を省略する。
【００８７】
［駆動異常の要因］
前述の駆動異常検知において検知される駆動異常（過負荷）の原因として、裏面ガラス移動構成の部品が破損している等の恒常的なものと、裏面ガラス移動構成の部品にゴミが付着している等の一時的なものが考えられる。恒常的な原因の場合は、原因である部品の修理や交換等により対処する必要があり、一度駆動異常が発生すると、対処するまでは繰り返し駆動異常が発生する。
【００８８】
一方、一時的な原因の場合は、特別な対処を行わなくても駆動異常状態が解消される（駆動異常が発生しなくなる）ことがある。
例えば、裏面ガラス移動構成の部品にゴミが付着したことが原因で負荷が通常より重くなり駆動異常が発生しても、その後部品に付着したゴミがはがれ落ちた場合には駆動異常は発生しなくなる。また、付着したゴミがそのままであっても、裏面ガラス移動時の移動速度を下げることでガラスモータ１２２にかかる負荷を低減させると、駆動異常が発生せずに移動を完了できることがある。
【００８９】
［駆動異常発生時のリトライ処理］
駆動異常の発生時、恒常的な原因の場合では、ユーザに異常発生を通知して対処を促す必要がある一方、一時的な原因であれば、ユーザに通知をせずに駆動異常が解消されれば、または駆動異常が発生せずに移動を完了できればユーザの利便性は向上する。
そこで、駆動異常の発生時、一度の異常発生ですぐにユーザに通知せずに、移動速度を下げてもう一度裏面ガラス移動を試みる。その結果、再度駆動異常が発生した場合は、ユーザに異常発生を通知し、駆動異常が発生しなかった場合は異常発生を通知しない構成の一例について以下説明する。
【００９０】
［裏面シェーディング位置への移動］
前述の通り、原稿の読み取り前に裏面シェーディング白板１１０を裏面読み取りユニット１０２で読み取り、裏面読み取りのための白レベルの基準データを作成する。そのため、裏面ガラスユニット１２５の裏面シェーディング位置への移動を行う。
図９は、裏面ガラスユニット１２５の裏面シェーディング位置への移動における制御の一例を示すフローチャートである。図９に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図９を用いて、裏面ガラスユニット１２５の裏面シェーディング位置への移動における制御について説明する。
【００９１】
ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５を裏面シェーディング位置へ移動させる際、裏面ガラスユニット１２５の現在位置が裏面シェーディング位置であるか否かを判別する（Ｓ３０１）。なお、ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５の移動制御を行った際は、移動制御後の裏面ガラスユニット１２５の位置を現在位置としてＲＡＭ（Ａ）２５３の所定の領域に記憶している。
【００９２】
ＣＰＵ（Ａ）２５１は、この所定領域に記憶された現在位置が裏面シェーディング位置であった場合（Ｓ３０１：Ｙｅｓ）、既に裏面ガラスユニット１２５は裏面シェーディング位置に存在しており移動は不要であるため処理を終了する。
【００９３】
ＣＰＵ（Ａ）２５１は、現在位置が裏面シェーディング位置でなかった場合（Ｓ３０１：Ｎｏ）、裏面シェーディング位置への移動制御を行う。具体的には、記憶されている現在位置が裏面シェーディング位置以外の位置であるか、まだ位置制御が行われておらず現在位置が不定である場合には、裏面シェーディング位置への移動制御を行う。
【００９４】
ＣＰＵ（Ａ）２５１は、リトライフラグに初期値０を設定する（Ｓ３０２）。
ＣＰＵ（Ａ）２５１は、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ３０３）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ３０４）。なお、この際のガラスモータ１２２の駆動速度は、通常速度とする。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ３０５）。
【００９５】
ＣＰＵ（Ａ）２５１は、駆動制御部１２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ３０６）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ３０６：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ３３０）。
【００９６】
ＣＰＵ（Ａ）２５１は、リトライフラグの値を取得する（Ｓ３３１）。
ＣＰＵ（Ａ）２５１は、リトライフラグが０であった場合（Ｓ３３１：Ｎｏ）、つまり駆動異常の発生が一度目であった場合は速度を落として裏面ガラス移動の再開、つまりリトライを行う。
ＣＰＵ（Ａ）２５１は、リトライフラグに１を設定する（Ｓ３４０）。
ＣＰＵ（Ａ）２５１は、ステップＳ３０３の処理と同様の処理により、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ３４１）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ３４２）。なお、この際のガラスモータ１２２の駆動速度には、Ｓ３０４の時の通常速度とは異なるリトライ速度を用いる。なお、リトライ速度は通常速度より相対的に遅い速度であるとする。
【００９７】
ＣＰＵ（Ａ）２５１は、リトライフラグが１であった場合（Ｓ３３１：Ｙｅｓ）、つまりリトライにおいて駆動異常が発生しており、駆動異常の発生が二度目であった場合はＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ３３２）処理を終了する。
ＣＰＵ（Ａ）２５１は、ステップＳ３０６の処理において過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ３０６：Ｎｏ）ガラスＨＰセンサ１１１の出力変化を確認する（Ｓ３０７）。
【００９８】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化していない場合（Ｓ３０７：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ３２０）。
ＣＰＵ（Ａ）２５１は、カウント値がＯＮ基準移動量Ｌ’に相当するパルス数Ｃ’以上となっていた場合、ＯＮ基準移動量を移動させてもガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化しなかったため位置検知異常が発生したと判別する（Ｓ３２０：Ｙｅｓ）。
この場合、ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を停止する（Ｓ３２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ３２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ３２０：Ｎｏ）、ステップＳ３０６の処理に遷移して再び駆動異常の検知を行う。
【００９９】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＦＦからＯＮに変化した場合（Ｓ３０７：Ｙｅｓ）、位置制御用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ３０８）。
ＣＰＵ（Ａ）２５１は、ステップＳ３０６の処理と同様の処理により、駆動異常の発生の有無を判別する（Ｓ３０９）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ３０９：Ｙｅｓ）、ステップＳ３０６：Ｙｅｓの場合の処理と同様の処理を行う（Ｓ３３０以降）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ３０９：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ３１０）。
ＣＰＵ（Ａ）２５１は、カウント値が移動量Ｌｂに相当するパルス数Ｃ１と一致しない場合、裏面シェーディング位置への移動が完了していないと判別して（Ｓ３１０：Ｎｏ）、ステップＳ３０９の処理に遷移して再び駆動異常の検知を行う。
【０１００】
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ１と一致した場合、裏面シェーディング位置への移動が完了したと判別して（Ｓ３１０：Ｙｅｓ）、ガラスモータ１２２の駆動を停止させる（Ｓ３１１）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を裏面シェーディング位置に更新して（Ｓ３１２）処理を終了する。
【０１０１】
［裏面原稿読取位置への移動］
前述の通り、両面流し読みにおいて、原稿が裏面流し読み位置に達するより前に裏面ガラスユニット１２５の裏面原稿読取位置への移動を行う。
図１０は、裏面ガラスユニット１２５の裏面原稿読取位置への移動における制御の一例を示すフローチャートである。図１０に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図１０を用いて、裏面ガラスユニット１２５の裏面原稿読取位置への移動における制御について説明する。
【０１０２】
ＣＰＵ（Ａ）２５１は、裏面ガラスユニット１２５を裏面原稿読取位置へ移動させる際、裏面ガラスユニット１２５の現在位置が裏面原稿読取位置であるか否かを判別する（Ｓ４０１）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶された現在位置を確認し、現在位置が裏面原稿読取位置であった場合（Ｓ４０１：Ｙｅｓ）、既に裏面ガラスユニット１２５は裏面原稿読取位置にあり移動は不要であるため処理を終了する。
ＣＰＵ（Ａ）２５１は、現在位置が裏面原稿読取位置でなかった場合（Ｓ４０１：Ｎｏ）、すなわち記憶されている現在位置が裏面原稿読取位置以外の位置であるか、まだ位置制御が行われておらず現在位置が不定である場合は裏面原稿読取位置への移動制御を行う。
【０１０３】
ＣＰＵ（Ａ）２５１は、リトライフラグに初期値０を設定する（Ｓ４０２）。
ＣＰＵ（Ａ）２５１は、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ４０３）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ４０４）。なお、この際のガラスモータ１２２の駆動速度は、通常速度とする。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ４０５）。
【０１０４】
ＣＰＵ（Ａ）２５１は、駆動制御部１２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ４０６）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ４０６：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ４３０）。
ＣＰＵ（Ａ）２５１は、リトライフラグの値を取得する（Ｓ４３１）。
【０１０５】
ＣＰＵ（Ａ）２５１は、リトライフラグが０であった場合（Ｓ４３１：Ｎｏ）、つまり駆動異常の発生が一度目であった場合は速度を落として裏面ガラス移動のリトライを行う。
ＣＰＵ（Ａ）２５１は、リトライフラグに１を設定する（Ｓ４４０）。
ＣＰＵ（Ａ）２５１は、ステップＳ４０３の処理と同じ処理により、駆動制御部にガラスモータ１２２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ４４１）。
ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を開始し、裏面ガラスユニット１２５の移動を開始する（Ｓ４４２）。なお、この際のガラスモータ１２２の駆動速度には、ステップＳ４０４の処理時の通常速度とは異なるリトライ速度を用いる。リトライ速度は通常速度より遅い速度である。
【０１０６】
ＣＰＵ（Ａ）２５１は、リトライフラグが１であった場合（Ｓ４３１：Ｙｅｓ）、つまりリトライにおいて駆動異常が発生しており、駆動異常の発生が二度目であった場合はＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ４３２）処理を終了する。
ＣＰＵ（Ａ）２５１は、ステップＳ４０６の処理において過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ４０６：Ｎｏ）、ガラスＨＰセンサ１１１の出力変化を確認する（Ｓ４０７）。
【０１０７】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化していない場合（Ｓ４０７：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ４２０）。
ＣＰＵ（Ａ）２５１は、カウント値がＯＦＦ基準移動量Ｌ’に相当するパルス数Ｃ’以上となっていた場合、ＯＦＦ基準移動量を移動させてもガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化しなかったため位置検知異常が発生したと判別する（Ｓ４２０：Ｙｅｓ）。
この場合、ＣＰＵ（Ａ）２５１は、ガラスモータ１２２の駆動を停止する（Ｓ４２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ４２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ’を下回っていた場合は、位置検知異常は発生していないと判別して（Ｓ４２０：Ｎｏ）、ステップＳ４０６の処理に遷移して再び駆動異常の検知を行う。
【０１０８】
ＣＰＵ（Ａ）２５１は、ガラスＨＰセンサ１１１の出力がＯＮからＯＦＦに変化した場合（Ｓ４０７：Ｙｅｓ）、位置制御用にガラスモータ１２２の駆動パルスのカウントを開始する（Ｓ４０８）。
ＣＰＵ（Ａ）２５１は、ステップＳ４０６の処理と同様の処理により、駆動異常の発生の有無を判別する（Ｓ４０９）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ４０９：Ｙｅｓ）、ステップＳ４０６：Ｙｅｓの場合の処理と同様の処理を行う（Ｓ４３０以降）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ４０９：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ４１０）。
ＣＰＵ（Ａ）２５１は、カウント値が移動量Ｌｄに相当するパルス数Ｃ２と一致しない場合、裏面原稿読取位置への移動が完了していないと判別して（Ｓ４１０：Ｎｏ）、ステップＳ４０９の処理に遷移して再び駆動異常の検知を行う。
【０１０９】
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ２と一致した場合、裏面原稿読取位置への移動が完了したと判別して（Ｓ４１０：Ｙｅｓ）、ガラスモータ１２２の駆動を停止する（Ｓ４１１）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を裏面原稿読取位置に更新して（Ｓ４１２）処理を終了する。
【０１１０】
このように本実施形態に係る画像読取装置では、ガラスモータ１２２の駆動により裏面ガラスユニット１２５を移動させる際に、通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく駆動異常、位置検知異常の発生の有無を判別することができる。
また、駆動異常発生時に速度を落としてリトライを行い、リトライで移動完了できれば駆動異常をユーザに通知しないこと、一時的な駆動異常発生時におけるユーザの利便性の向上を図ることができる。
【０１１１】
［第３実施形態］
第３実施形態について説明する。本実施形態に係る画像読取装置の構成について、第１、第２実施形態に係る画像読取装置の構成と同じ部分は同一の符号を付すとともにその説明を省略する。
【０１１２】
［ブロック図の説明］
図１１は、本実施形態に係る画像読取装置が有する制御部の構成の一例を示すブロック図である。図１１（ａ）は、リーダ２００およびＡＤＦ１００のブロック図であり、図１１（ｂ）は、コントローラ３００のブロック図である。以下、第１実施形態に係る画像読取装置の構成と異なる部分を主に説明する。
【０１１３】
［リーダ及びＡＤＦ］
ＣＰＵ（Ａ）２５１は、表面ＬＥＤ２０３、表面読取センサ２０８、裏面ＬＥＤ１０３、裏面読取センサ１０８、表面読み取りユニット２０２を副走査方向に移動させるための光学系モータ２２６と光学系ＨＰセンサ２１１それぞれが接続される。
ＣＰＵ（Ａ）２５１は、光学系モータ２２６の駆動を制御する駆動制御部２２３、裏面ガラスユニット１２５を移動させるためのガラスモータ１２２とガラスＨＰセンサ１１１、画像メモリ（Ａ）２６０、画像処理部２６１、画像転送部（Ａ）２５５それぞれが接続される。
【０１１４】
［表面読み取りユニット移動構成］
図１２は、表面読み取りユニット２０２の移動に係る構成の一例を示す平面図である。図１２を用いて、表面読み取りユニットの移動について説明する。なお、図１２中の一点鎖線は、表面読み取りユニット２０２の画像読取対象位置を表している。
【０１１５】
図１２（ａ）は、表面読み取りユニット２０２が原稿台ガラス２０９下に位置している状態を示している。
表面読み取りユニット２０２は、ボックス２０２ａ、ボックス２０２ａに接着されたフラグ２０２ｂを含んで構成される。ボックス２０２ａは、表面ＬＥＤ２０３、表面ミラー２０４、光学結像レンズ（不図示）、表面読取センサ２０８で構成される画像読取のための光学要素を搭載している。
表面読み取りユニット２０２を原稿台ガラス２０９の下に位置させることで、原稿台ガラス２０９上に載置された原稿について、表面読み取りユニット２０２により一点鎖線に示す位置で画像を１ラインずつ読み取ることができる。
【０１１６】
図１２（ｂ）は、表面読み取りユニット２０２が表面流し読み原稿読取位置に位置している状態を示している。
表面読み取りユニット２０２が表面流し読み原稿読取位置に停止しているとき、表面流し読みガラス２０１の上を通過する原稿に対して、表面読み取りユニット２０２を介して一点鎖線に示す位置で画像を１ラインずつ読み取ることができる。
【０１１７】
図１２（ｃ）は、表面読み取りユニット２０２が表面シェーディング位置に位置している状態を示している。
表面読み取りユニット２０２が表面シェーディング位置に停止しているとき、表面シェーディング白板２１０に対して、表面読み取りユニット２０２を介して一点鎖線に示す位置で画像を１ラインずつ読み取ることができる。
【０１１８】
前述の通り、固定読みの場合には、表面読み取りユニット２０２を原稿台ガラス２０９の下で図１の矢印に示す副走査方向に一定速度で移動させる。
一方、流し読みの場合には、表面読み取りユニット２０２を図１２（ｂ）に示す表面流し読み原稿読取位置に停止させる。またシェーディング時には、表面読み取りユニット２０２を図１２（ｃ）に示す表面シェーディング位置に停止させる。
また、固定読み完了後、流し読み完了後などそれぞれの動作完了後は、表面読み取りユニット２０２を待機位置（以下、ホームポジションと称す）へ移動させて停止させる。本実施形態においては、表面読み取りユニット２０２のホームポジションは表面シェーディング位置（図１２（ｃ））であるとする。
【０１１９】
それぞれの位置への表面読み取りユニット２０２の移動は、以下に示すように制御される。
表面読み取りユニット２０２は、不図示の光学系モータ２２６を駆動させることにより、図１２中左右方向に移動可能に構成される。例えば、光学系モータ２２６を正転駆動させると図１２中右向きに移動し、逆転駆動させると図１２中左向きに移動する。
また、光学系ＨＰセンサ２１１が図１２に示す位置に配設されており、表面読み取りユニット２０２の移動時には、光学系ＨＰセンサ２１１の出力の変化に応じて表面読み取りユニット２０２の移動量を制御する。
【０１２０】
光学系ＨＰセンサ２１１は、例えば図１２中手前側と奥側にそれぞれ発光部と受光部を有するフォトインタラプタである。
表面読み取りユニット２０２が移動すると、表面読み取りユニット２０２のフラグ２０２ｂにより光学系ＨＰセンサ２１１の発光部からの光が遮光、または透光される。これにより、光学系ＨＰセンサ２１１の出力がＯＮ（遮光時）またはＯＦＦ（透光時）へ変化する。
【０１２１】
本実施形態においては、光学系ＨＰセンサ２１１が図１２に示す位置に配設されている。そのため、表面読み取りユニット２０２が原稿台ガラス２０９の下や表面シェーディング位置にある場合、光学系ＨＰセンサ２１１の出力はＯＦＦとなる（図１２（ａ）、（ｃ））。また、表面読み取りユニット２０２が表面流し読み原稿読取位置にある場合、光学系ＨＰセンサ２１１の出力はＯＮとなる（図１２（ｂ））。
なお、本実施形態における光学系ＨＰセンサ２１１を用いた表面読み取りユニット２０２の位置検知については、第１実施形態におけるガラスＨＰセンサ１１１を用いた裏面ガラスユニット１２５の位置検知と同様であるのでその説明は省略する。
【０１２２】
光学系ＨＰセンサ２１１の出力が変化したタイミングから、所定の距離だけ表面読み取りユニット２０２を移動させた後に停止させる。これにより、表面読み取りユニット２０２を所望の位置で停止させることができる。
前述した通り、光学系モータ２２６を駆動させることにより表面読み取りユニット２０２が移動する。そのため、表面読み取りユニット２０２の移動量の制御は、光学系モータ２２６の駆動パルスをカウントすることで可能となる。移動量制御について詳しくは後述する。
【０１２３】
［駆動異常の検知］
駆動制御部２２３は、第１実施形態における駆動制御部１２３の構成と同様に構成される。また、駆動制御部２２３の駆動制御構成及び駆動異常の検知について、閾値の決定方法以外は第１実施形態と同様であるので説明を省略する。
画像読取装置１０００の設計において、光学系モータ２２６の通常の駆動において発生する最大の負荷に対しマージンを持たせて閾値Ｔｈが決定される。ＣＰＵ（Ａ）２５１は、光学系モータ２２６の駆動前に閾値Ｔｈを駆動制御部２２３へ送信する。
【０１２４】
［移動量制御］
図１３は、表面読み取りユニット２０２の移動を説明するための断面図である。図１３を用いて、表面読み取りユニット２０２の移動における移動量制御について説明する。
図１３（ａ）は、表面読み取りユニット２０２が光学系ＨＰセンサ２１１の出力が切り替わる位置（以下、出力変化点と称す）に位置している状態を示している。図１３（ｂ）は、表面読み取りユニット２０２がその可動域の左端に位置している状態を示している。図１３（ｃ）は、表面読み取りユニット２０２がその可動域の右端に位置している状態を示している。図１３（ｄ）は、表面読み取りユニット２０２が表面流し読み原稿読取位置に位置している状態を示している。図１３（ｅ）は、表面読み取りユニット２０２が表面シェーディング位置に位置している状態を示している。
【０１２５】
図１３（ｂ）に示した表面読み取りユニット２０２の可動域の左端位置は、例えば表面読み取りユニット２０２を不図示の器具で物理的に固定するための位置である。
例えば、画像読取装置１０００の出荷時など当該装置を移動させる際に表面読み取りユニット２０２の移動による装置の破損を防ぐために、表面読み取りユニット２０２を物理的に固定するために使用される。
図１３（ｃ）に示した表面読み取りユニット２０２の可動域の右端位置は、例えば固定読みにおいて読取可能な最大サイズの原稿を読み取った後、表面読み取りユニット２０２を停止させた際の位置である。
図１３（ａ）と図１３（ｂ）の間に破線と白抜き矢印で示したように、図１３（ａ）の状態から図１３（ｂ）の状態に至るまでの表面読み取りユニット２０２の移動量を移動量Ｌｏｎとする。また、移動量Ｌｏｆｆ、Ｌａ、Ｌｂについても、同様に各図の間に破線と白抜き矢印で示した表面読み取りユニット２０２の移動量を表している。
【０１２６】
図１３（ｆ）は、図１２及び図１３（ａ）〜（ｅ）に破線で示したフラグ２０２ｂの左端Ｅ２を基準として、縦軸に光学系ＨＰセンサ２１１の出力、横軸に表面読み取りユニット２０２の移動方向を取った図である。具体的には、表面読み取りユニット２０２の移動に伴う、光学系ＨＰセンサ２１１の出力の変化を示したものである。
【０１２７】
前述の通り、表面読み取りユニット２０２の移動時には、光学系ＨＰセンサ２１１の出力の変化に応じてガラスモータ１２２の駆動パルスをカウントして、カウント結果に応じて表面読み取りユニット２０２の移動量の制御を行う。
表面読み取りユニット２０２をその可動域中の任意の位置に移動させる際は、表面読み取りユニット２０２の現在位置をＣＰＵ（Ａ）２５１が把握できているか否かにより制御が異なる。また、把握している場合は、目標位置と現在位置とで光学系ＨＰセンサ２１１の出力が異なるか否かにより制御が異なる。
【０１２８】
画像読取装置１０００の起動時は、まだ一度も表面読み取りユニット２０２の移動制御が行われていない。そのためＣＰＵ（Ａ）２５１は、表面読み取りユニット２０２の現在位置を把握できていない。このような場合には、まず表面読み取りユニット２０２をホームポジションへ移動させるＨＰ出しを行う。ＨＰ出し後は現在位置が把握できているため、後述する方法で目標位置へ移動させることができる。
【０１２９】
ＨＰ出しにおいては、まず表面読み取りユニット２０２を光学系ＨＰセンサ２１１の出力変化点（図１３（ａ））へ移動させる。次に、表面シェーディング位置へ移動させるため光学系モータ２２６を正転駆動させ、その時点からの光学系モータ２２６の駆動パルスをカウントする。カウントしたパルス数が、出力変化点と表面シェーディング位置との距離である移動量Ｌｂに相当するパルス数Ｃ２に達した時点で光学系モータ２２６を停止させる。
このようにして、図１３（ｅ）に示した表面シェーディング位置に表面読み取りユニット２０２を停止させる。
【０１３０】
ＣＰＵ（Ａ）２５１が表面読み取りユニット２０２の現在位置を把握できている場合であって、且つ、目標位置と現在位置とで光学系ＨＰセンサ２１１の出力が一致する場合、現在位置と目標位置との距離を使用して目標位置へ移動する。
例えば、図１３（ｃ）に示した可動域右端（光学系ＨＰセンサ２１１の出力：ＯＦＦ）から図１３（ｅ）に示した表面シェーディング位置（光学系ＨＰセンサ２１１の出力：ＯＦＦ）に移動させるとする。この場合、現在位置と目標位置との距離は、（移動量Ｌｂ−
移動量Ｌｏｆｆ）で求めることができる。
【０１３１】
そして、光学系モータ２２６を逆転駆動し、駆動開始時からの光学系モータ２２６の駆動パルスをカウントする。カウントしたパルス数が移動量Ｌｂに相当するパルス数Ｃ２から、移動量Ｌｏｆｆに相当するパルス数Ｃｏｆｆを減じた数の絶対値に達した時点で、光学系モータ２２６を停止させる。
このようにして、図１３（ｅ）に示した表面シェーディング位置に表面読み取りユニット２０２を停止させる。
【０１３２】
一方、ＣＰＵ（Ａ）２５１が表面読み取りユニット２０２の現在位置を把握できている場合であって、且つ、目標位置と現在位置とで光学系ＨＰセンサ２１１の出力が異なる場合、まず表面読み取りユニット２０２を光学系ＨＰセンサ２１１の出力変化点へ移動する。その後、出力変化点と目標位置との距離を使用して目標位置へ移動する。
例えば、図１３（ｅ）に示した表面シェーディング位置（光学系ＨＰセンサ２１１の出力：ＯＦＦ）から図１３（ｄ）に示した表面流し読み原稿読取位置（光学系ＨＰセンサ２１１の出力：ＯＮ）に移動させるとする。
この場合、光学系モータ２２６を逆転駆動し図１３中左方向に移動量Ｌｂだけ表面読み取りユニット２０２を移動させると図１３（ａ）に示す光学系ＨＰセンサ２１１の出力変化点に至り、光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化する。その時点からの光学系モータ２２６の駆動パルスをカウントし、カウントしたパルス数が、移動量Ｌａに相当するパルス数Ｃ１に達した時点で光学系モータ２２６を停止させる。
このようにして、図１３（ｄ）に示した表面流し読み原稿読取位置に表面読み取りユニット２０２を停止させる。
【０１３３】
［位置検知異常の検知］
前述の通り、光学系ＨＰセンサ２１１の出力の変化に基づき表面読み取りユニット２０２の移動量を制御する場合、何らかの理由で光学系ＨＰセンサ２１１の出力が変化しなかった場合には正しく制御することができない。この場合に考えられる理由としては、駆動異常と位置検知異常が挙げられる。
【０１３４】
駆動異常の場合、光学系モータ２２６が脱調することで、光学系モータ２２６を駆動するよう制御していても表面読み取りユニット２０２が移動できなくなる。また、表面読み取りユニット２０２の移動ができていないため光学系ＨＰセンサ２１１の出力も変化しない。
位置検知異常の場合、光学系ＨＰセンサ２１１が故障して出力が常にＯＮまたはＯＦＦになり、本来であれば出力が変化する位置（出力変化点）まで表面読み取りユニット２０２が移動しても出力が変化しなくなる。
駆動異常については、前述の方法で検知することができる。位置検知異常については、次に説明する方法で検知する。
【０１３５】
図１３を用いて表面読み取りユニット２０２の移動における位置検知異常の検知について説明する。
表面読み取りユニット２０２の移動開始時に光学系ＨＰセンサ２１１の出力がＯＦＦであったとき、十分な距離（ＯＮ基準移動量）を移動させても光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化しなかったとする。この場合、光学系ＨＰセンサ２１１の出力が変化しない状態にあると判別することができる。
この場合の十分な距離とは、例えば表面読み取りユニット２０２が移動開始時に可動域の右端（図１３（ｃ））に存在し、光学系ＨＰセンサ２１１の出力がＯＮとなる位置（図１３（ａ））まで移動したときの移動量（Ｌｏｆｆ）より大きい距離である。
【０１３６】
また、同様に表面読み取りユニット２０２の移動開始時に光学系ＨＰセンサ２１１の出力がＯＮであったとき、十分な距離（ＯＦＦ基準移動量）を移動させても光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化しなかったとする。この場合、光学系ＨＰセンサ２１１の出力が変化しない状態にあると判別することができる。
この場合の十分な距離とは、例えば表面読み取りユニット２０２が移動開始時に可動域の左端（図１３（ｂ））に存在し、光学系ＨＰセンサ２１１の出力がＯＦＦとなる位置（図１３（ａ））まで移動したときの移動量（Ｌｏｎ）より大きい距離である。
本実施形態においては、ＯＮ基準移動量として、移動量Ｌｏｆｆにマージンαを加えた移動量Ｌｏｆｆ’（以下に示す（式２））を用いる。
【０１３７】
Ｌｏｆｆ’ ＝ Ｌｏｆｆ + α                       ・・・（式２）
【０１３８】
また、ＯＦＦ基準移動量として、移動量Ｌｏｎにマージンαを加えた移動量Ｌｏｎ’（以下に示す（式３））を用いる。
【０１３９】
Ｌｏｎ’ ＝ Ｌｏｎ + α                              ・・・（式３）
【０１４０】
表面読み取りユニット２０２の移動開始からの光学系モータ２２６の駆動パルスをカウントし、移動開始時に光学系ＨＰセンサ２１１の出力がＯＦＦ（ＯＮ）であったとする。
さらに、カウントしたパルス数がＬｏｆｆ’（Ｌｏｎ’）に相当するパルス数Ｃｏｆｆ’（Ｃｏｎ’）に達し、駆動異常が発生しておらず、且つ、光学系ＨＰセンサ２１１の出力がＯＮ（ＯＦＦ）に変化しなかった場合には、位置検知異常が発生していると判別する。
【０１４１】
［本実施例における制御例］
図１４から図１８は、表面読み取りユニット２０２の移動における制御の一例を示すフローチャートである。各図に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図１４から図１８を用いて表面読み取りユニット２０２の移動制御について説明する。
【０１４２】
［移動制御］
図１４は、表面読み取りユニット２０２の移動制御の一例を示すフローチャートである。図１４を用いて移動制御全体の制御フローについて説明する。
ＣＰＵ（Ａ）２５１は、表面読み取りユニット２０２の移動制御を行う場合、表面読み取りユニット２０２の現在位置を取得する（Ｓ６０１）。
なお、ＣＰＵ（Ａ）２５１は、表面読み取りユニット２０２の移動制御を行った移動制御後の表面読み取りユニット２０２の位置を、現在位置としてＲＡＭ（Ａ）２５３の所定の領域に記憶する。また、本実施形態においては、現在位置を含む表面読み取りユニット２０２の位置は、図１３（ａ）に示した光学系ＨＰセンサ２１１の出力変化点を原点とした座標で管理される。光学系ＨＰセンサ２１１の出力変化点より図１３中の右側の位置は座標が正となり、図１３中の左側の位置は座標が負となる。
【０１４３】
ＣＰＵ（Ａ）２５１は、まだ位置制御が行われておらず現在位置が不明である場合（Ｓ６０１：Ｙｅｓ）、表面読み取りユニット２０２のＨＰ出しを行う（Ｓ６３０）。なお、ＨＰ出しの制御フローについては後述する。
【０１４４】
ＣＰＵ（Ａ）２５１は、ＨＰ出し後に正しくホームポジションへ移動できているかを判別する（Ｓ６３１）。
ＣＰＵ（Ａ）２５１は、現在位置がホームポジションと一致し、正しくホームポジションへ移動できている場合（Ｓ６３１：Ｙｅｓ）、ステップＳ６０２の処理へ遷移する。
一方、ＨＰ出し中に駆動異常または位置検知異常が発生した場合、ホームポジションへ移動できておらず、現在位置とホームポジションが一致しない。このような場合（Ｓ６３１：Ｎｏ）、ＣＰＵ（Ａ）２５１は、処理を終了する（異常の通知等は、後述するＨＰ出しの制御フローにおいて行われる）。
【０１４５】
ＣＰＵ（Ａ）２５１は、ステップＳ６０２の処理に遷移したときには表面読み取りユニット２０２の現在位置を把握できている。
ＣＰＵ（Ａ）２５１は、目標位置と現在位置が一致するか否かを確認する（Ｓ６０２）。一致した場合（Ｓ６０２：Ｙｅｓ）、表面読み取りユニット２０２を移動させる必要はないため処理を終了する。
【０１４６】
ＣＰＵ（Ａ）２５１は、現在位置と目標位置が一致しなかった場合（Ｓ６０１：Ｎｏ）、現在位置から目標位置へ表面読み取りユニット２０２を移動させる制御を行う。
ＣＰＵ（Ａ）２５１は、現在位置における光学系ＨＰセンサ２１１の出力と、目標位置における光学系ＨＰセンサ２１１の出力とが一致する場合（Ｓ６０３：Ｙｅｓ）、現在位置からの移動量制御により目標位置へ移動させる（Ｓ６１０）。この場合の制御フローについては後述する。
【０１４７】
ＣＰＵ（Ａ）２５１は、現在位置における光学系ＨＰセンサ２１１の出力と、目標位置における光学系ＨＰセンサ２１１の出力とが一致しない場合（Ｓ６０３：Ｎｏ）、光学系ＨＰセンサ２１１の出力変化点からの移動量制御により目標位置へ移動させる。
ＣＰＵ（Ａ）２５１は、現在位置におけるＨＰセンサの出力がＯＦＦであった場合（Ｓ６１０：Ｎｏ）、光学系ＨＰセンサ２１１の出力がＯＮに変化してからの移動量制御（Ｓ６１１）に進む。また、現在位置におけるＨＰセンサの出力がＯＮであった場合（Ｓ６１０：Ｙｅｓ）、光学系ＨＰセンサ２１１の出力がＯＦＦに変化してからの移動量制御（Ｓ６２０）に進む。それぞれの制御フローについては後述する。
【０１４８】
［ＨＰ出し］
前述の通り、画像読取装置１０００の起動時、ＣＰＵ（Ａ）２５１は表面読み取りユニット２０２の現在位置を把握できていないため、表面読み取りユニット２０２の現在位置を把握するために表面読み取りユニット２０２のＨＰ出しを行う。
図１５は、表面読み取りユニット２０２のＨＰ出しにおける制御の一例を示すフローチャートである。図１５を用いてＨＰ出しの制御フローについて説明する。
【０１４９】
ＣＰＵ（Ａ）２５１は、駆動制御部に表面読み取りユニット２０２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ５０１）。
ＣＰＵ（Ａ）２５１は、現在の光学系ＨＰセンサ２１１の出力を取得する（Ｓ５０２）。
例えば、現在の光学系ＨＰセンサ２１１の出力がＯＮであった場合（Ｓ５０２：Ｙｅｓ）、表面読み取りユニット２０２は光学系ＨＰセンサ２１１の出力変化点（図１３（ａ））より図１３中左側に位置している。そのため、ホームポジションである表面シェーディング位置（図１３（ｅ））へ移動する途中で光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦへ変化する。
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦへ変化した時点からの移動量制御により表面シェーディング位置へ移動させる。
【０１５０】
ＣＰＵ（Ａ）２５１は、光学系モータ２２６を正転駆動させ、図１３中右向きに表面読み取りユニット２０２を移動させる（Ｓ５０３）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ５０４）。
ＣＰＵ（Ａ）２５１は、駆動制御部２２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ５０５）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ５０５：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ５３０）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ５３１）処理を終了する。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ５０５：Ｎｏ）、光学系ＨＰセンサ２１１の出力を取得する（Ｓ５０６）。
【０１５１】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化していない場合（Ｓ５０６：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ５２０）。
ＣＰＵ（Ａ）２５１は、カウント値がＯＦＦ基準移動量Ｌｏｎ’に相当するパルス数Ｃｏｎ’以上である場合、ＯＦＦ基準移動量を移動させても光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化しなかったため位置検知異常が発生したと判別する（Ｓ５２０：Ｙｅｓ）。  
この場合、ＣＰＵ（Ａ）２５１は、光学系モータ２２６の駆動を停止する（Ｓ５２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ５２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｎ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ５２０：Ｎｏ）、ステップＳ５０５の処理に遷移して再び駆動異常の検知を行う。
【０１５２】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化した場合（Ｓ５０６：Ｙｅｓ、位置制御用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ５０７）。
ＣＰＵ（Ａ）２５１は、ステップＳ５０５の処理と同様の処理により、駆動異常の発生の有無を判別する（Ｓ５０８）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ５０８：Ｙｅｓ）、ステップＳ５０５：Ｙｅｓの場跡の処理と同様の処理を行い（Ｓ５３０〜Ｓ５３１）、その後処理を終了する。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ５０８：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ５０９）。
【０１５３】
ＣＰＵ（Ａ）２５１は、カウント値が移動量Ｌｂに相当するパルス数Ｃ２と一致しない場合、ホームポジション（表面シェーディング位置）への移動が完了していないと判別して（Ｓ５０９：Ｎｏ）、ステップＳ５０８の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃ２と一致した場合、表面シェーディング位置への移動が完了したと判別して（Ｓ５０９：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ５１０）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置をホームポジション（表面シェーディング位置）に更新して（Ｓ５１１）処理を終了する。
【０１５４】
一方、ステップＳ５０２の処理において光学系ＨＰセンサ２１１の出力がＯＦＦであった場合（Ｓ５０２：Ｎｏ）、表面読み取りユニット２０２は光学系ＨＰセンサ２１１の出力変化点（図１３（ａ））より図１３中右側に位置していることになる。しかし現在位置（座標）は不明であるため、ホームポジションである表面シェーディング位置（図１３（ｅ））への移動距離や移動の向きも不明となる。このような場合、一度表面読み取りユニット２０２を光学系ＨＰセンサ２１１の出力変化点（図１３（ａ））に移動させる。
【０１５５】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮであった場合（Ｓ５０２：Ｙｅｓ）と同様に、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦへ変化した時点からの移動量制御により表面シェーディング位置へ移動させる。
ＣＰＵ（Ａ）２５１は、光学系モータ２２６を逆転駆動させ、図１３中左向きに表面読み取りユニット２０２を移動させる（Ｓ５４１）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ５４１）。
【０１５６】
ＣＰＵ（Ａ）２５１は、ステップＳ５０５の処理と同様の処理により、駆動異常の発生の有無を判別する（Ｓ５４２）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ５４２：Ｙｅｓ）、ステップＳ５０５：Ｙｅｓの場合の処理と同様の処理を行い（Ｓ５３０〜Ｓ５３１）、その後処理を終了する。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ５４２：Ｎｏ）、光学系ＨＰセンサ２１１の出力を取得する（Ｓ５４３）。
【０１５７】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化していない場合（Ｓ５４３：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ５５０）。
ＣＰＵ（Ａ）２５１は、カウント値がＯＮ基準移動量Ｌｏｆｆ’に相当するパルス数Ｃｏｆｆ’以上である場合、ＯＮ基準移動量を移動させても光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化しなかったため位置検知異常が発生したと判別する（Ｓ５５０：Ｙｅｓ）。
この場合、ＣＰＵ（Ａ）２５１は、ステップＳ５２０：Ｙｅｓの場合の処理と同様の処理を行い（Ｓ５２１〜Ｓ５２２）、その後処理を終了する。
【０１５８】
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｎ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ５５０：Ｎｏ）、ステップＳ５４２の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化した場合（Ｓ５４３：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ５４４）。その後、ステップＳ５０３の処理に遷移する。
【０１５９】
［現在位置からの移動量制御］
前述の通り、固定読み完了後、表面読み取りユニット２０２をホームポジション、すなわち表面シェーディング位置に停止させる。固定読み完了後は、表面読み取りユニット２０２は光学系ＨＰセンサ２１１の出力がＯＦＦの位置にある。
例えば、固定読みにおいて読取可能な最大サイズの原稿を読み取った後は、表面読み取りユニット２０２はその可動域の右端位置にある。その位置から、光学系ＨＰセンサ２１１の出力がＯＦＦの位置にある表面シェーディング位置へ移動させる。
このような場合は現在位置と目標位置の光学系ＨＰセンサ２１１の出力が一致するため、現在位置からの移動量制御により表面読み取りユニット２０２の移動を行う。
【０１６０】
図１６は、表面読み取りユニット２０２の現在位置からの移動量制御における制御の一例を示すフローチャートである。図１６に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図１６を用いて現在位置からの移動量制御の制御フローについて説明する。
【０１６１】
ＣＰＵ（Ａ）２５１は、駆動制御部に表面読み取りユニット２０２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ７０１）。
ＣＰＵ（Ａ）２５１は、現在位置から目標位置へ移動するための移動距離を算出する（Ｓ７０２）。なお、現在位置の座標をｘ１、目標位置の座標をｘ２としたとき、移動距離は（ｘ２−ｘ１）で求めることができる。
【０１６２】
ＣＰＵ（Ａ）２５１は、算出した移動距離の正負を判別する（Ｓ７０３）。なお、移動距離（ｘ２−ｘ１）が正であれば目標位置は現在位置より図１３中右側に位置しており、負であれば目標位置は現在位置より図１３中左側に位置している。
【０１６３】
ＣＰＵ（Ａ）２５１は、移動距離が正であった場合（Ｓ７０３：Ｙｅｓ）、光学系モータ２２６を正転駆動させて、図１３中の右向きに表面読み取りユニット２０２を移動させる（Ｓ７０４）。
ＣＰＵ（Ａ）２５１は、移動距離が負であった場合（Ｓ７０３：Ｎｏ）は、光学系モータ２２６を逆転駆動させて、図１３中左向きに表面読み取りユニット２０２を移動させる（Ｓ７１０）。
ＣＰＵ（Ａ）２５１は、位置制御用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ７０５）。
【０１６４】
ＣＰＵ（Ａ）２５１は、駆動制御部２２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ７０６）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ７０６：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ７２０）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ７２１）処理を終了する。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ７０６：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ７０７）。
【０１６５】
ＣＰＵ（Ａ）２５１は、カウント値が移動距離（ｘ２−ｘ１）に相当するパルス数と一致しない場合、目標位置への移動が完了していないと判別して（Ｓ７０７：Ｎｏ）、ステップＳ７０６の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、カウント値が移動距離（ｘ２−ｘ１）に相当するパルス数と一致した場合、目標位置への移動が完了したと判別して（Ｓ７０７：Ｙｅｓ）、光学系モータ２２６の駆動を停止させる（Ｓ７０８）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を目標位置に更新して（Ｓ７０９）処理を終了する。
【０１６６】
［センサＯＮからの移動量制御］
前述の通り、原稿の読み取り前に、表面読み取りユニット２０２を表面シェーディング位置に停止させた状態で、表面シェーディング白板２１０を読み取り表面読み取りのための白レベルの基準データを作成する。
流し読みを行う場合は、この表面シェーディング位置（光学系ＨＰセンサ２１１の出力：ＯＦＦ）から表面流し読み原稿読取位置（光学系ＨＰセンサ２１１の出力：ＯＮ）に、表面読み取りユニット２０２を移動させる。
このような場合は現在位置と目標位置の光学系ＨＰセンサ２１１の出力が異なり、現在位置における光学系ＨＰセンサ２１１の出力がＯＦＦである。そのため、光学系ＨＰセンサ２１１の出力がＯＮに変化してからの移動量制御により表面読み取りユニット２０２の移動を行う。
【０１６７】
図１７は、表面読み取りユニット２０２における光学系ＨＰセンサ２１１の出力がＯＮに変化してからの移動量制御における制御の一例を示すフローチャートである。図１７に示す悪処理は、主としてＣＰＵ（Ａ）２５１により実行される。図１７を用いて光学系ＨＰセンサ２１１の出力がＯＮに変化してからの移動量制御の制御フローについて説明する。
【０１６８】
ＣＰＵ（Ａ）２５１は、駆動制御部に表面読み取りユニット２０２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ９０１）。
ＣＰＵ（Ａ）２５１は、光学系モータ２２６を逆転駆動させて、図１３中の左向きに表面読み取りユニット２０２を移動する（Ｓ９０２）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ９０３）。
【０１６９】
ＣＰＵ（Ａ）２５１は、駆動制御部２２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ９０４）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ９０４：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ９３０）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ９３１）処理を終了する。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ９０４：Ｎｏ）、光学系ＨＰセンサ２１１の出力を取得する（Ｓ９０５）。
【０１７０】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化していない場合（Ｓ９０５：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ９２０）。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｆｆ’以上となっていた場合、ＯＮ基準移動量を移動させても光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化しなかったため位置検知異常が発生したと判別する（Ｓ９２０：Ｙｅｓ）。この場合、ＣＰＵ（Ａ）２５１は、光学系モータ２２６の駆動を停止する（Ｓ９２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の異常発生通知を送信して（Ｓ９２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｆｆ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ９２０：Ｎｏ）、ステップＳ９０４の処理に遷移して再び駆動異常の検知を行う。
【０１７１】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＦＦからＯＮに変化した場合（Ｓ９０５：Ｙｅｓ）、光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ９０６）。
ＣＰＵ（Ａ）２５１は、ステップＳ９０４の処理と同様の処理により、駆動異常の発生の有無を判別する（Ｓ９０７）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ９０７：Ｙｅｓ）、ステップＳ９０４：Ｙｅｓの場合の処理と同様の処理を行い（Ｓ９３０〜Ｓ９３１）、その後処理を終了する。
【０１７２】
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ９０７：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ９０８）。
ＣＰＵ（Ａ）２５１は、カウント値が出力変化点から目標位置への移動距離に相当するパルス数と一致しない場合、目標位置への移動が完了していないと判別して（Ｓ９０８：Ｎｏ）、ステップＳ９０７の処理に遷移して再び駆動異常の検知を行う。
【０１７３】
ＣＰＵ（Ａ）２５１は、カウント値が出力変化点から目標位置への移動距離に相当するパルス数と一致した場合、目標位置への移動が完了したと判別して（Ｓ９０８：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ９０９）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を目標位置に更新して（Ｓ９１０）処理を終了する。
【０１７４】
［センサＯＦＦからの移動量制御］
前述の通り、各動作の完了後は、表面読み取りユニット２０２をホームポジションである表面シェーディング位置に移動して停止させる。流し読みを行った場合、表面流し読み原稿読取位置（光学系ＨＰセンサ２１１の出力：ＯＮ）から表面シェーディング位置（光学系ＨＰセンサ２１１の出力：ＯＦＦ）に表面読み取りユニット２０２を移動させる。
このような場合は現在位置と目標位置の光学系ＨＰセンサ２１１の出力が異なり、現在位置における光学系ＨＰセンサ２１１の出力がＯＮである。そのため、光学系ＨＰセンサ２１１の出力がＯＦＦに変化してからの移動量制御により表面読み取りユニット２０２の移動を行う。
【０１７５】
図１８は、表面読み取りユニット２０２における光学系ＨＰセンサ２１１の出力がＯＦＦに変化してからの移動量制御における制御の一例を示すフローチャートである。図１８に示す各処理は、主としてＣＰＵ（Ａ）２５１により実行される。図１８を用いて光学系ＨＰセンサ２１１の出力がＯＦＦに変化してからの移動量制御の制御フローについて説明する。
【０１７６】
ＣＰＵ（Ａ）２５１は、駆動制御部に表面読み取りユニット２０２の過負荷を判別するための閾値Ｔｈを設定する（Ｓ８０１）。
ＣＰＵ（Ａ）２５１は、光学系モータ２２６を正転駆動させて、図１３中右向きに表面読み取りユニット２０２を移動する（Ｓ８０２）。
ＣＰＵ（Ａ）２５１は、位置検知異常検知用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ８０３）。
【０１７７】
ＣＰＵ（Ａ）２５１は、駆動制御部２２３が出力する過負荷検知信号に基づいて駆動異常の発生の有無を判別する（Ｓ８０４）。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＮ、すなわち過負荷が発生していた場合、駆動異常が発生したと判別して（Ｓ８０４：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ８３０）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に駆動異常の異常発生通知を送信して（Ｓ８３１）処理を終了する。
ＣＰＵ（Ａ）２５１は、過負荷検知信号がＯＦＦ、すなわち過負荷が発生していない場合、駆動異常は発生していないと判別して（Ｓ８０４：Ｎｏ）、光学系ＨＰセンサ２１１の出力を取得する（Ｓ８０５）。
【０１７８】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化していない場合（Ｓ８０５：Ｎｏ）、位置検知異常検知用のカウント値に基づいて位置検知異常の発生の有無を判別する（Ｓ８２０）。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｎ’以上となっていた場合、ＯＦＦ基準移動量を移動させても光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化しなかったため位置検知異常が発生したと判別する（Ｓ８２０：Ｙｅｓ）。この場合、ＣＰＵ（Ａ）２５１は、光学系モータ２２６の駆動を停止する（Ｓ８２１）。ＣＰＵ（Ａ）２５１は、ＣＰＵ（Ｂ）３０１に位置検知異常の発生通知を送信して（Ｓ８２２）処理を終了する。
ＣＰＵ（Ａ）２５１は、カウント値がパルス数Ｃｏｆｆ’を下回っていた場合、位置検知異常は発生していないと判別して（Ｓ８２０：Ｎｏ）、ステップＳ８０４の処理に遷移して再び駆動異常の検知を行う。
【０１７９】
ＣＰＵ（Ａ）２５１は、光学系ＨＰセンサ２１１の出力がＯＮからＯＦＦに変化した場合（Ｓ８０５：Ｙｅｓ）、位置制御用に光学系モータ２２６の駆動パルスのカウントを開始する（Ｓ８０６）。
ＣＰＵ（Ａ）２５１は、ステップＳ８０４の処理と同様の処理により駆動異常の発生の有無を判別する（Ｓ８０７）。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していると判別した場合（Ｓ８０７：Ｙｅｓ）、ステップＳ８０４：Ｙｅｓの場合と同様の処理を行い（Ｓ８３０〜Ｓ８３１）その後処理を終了する。
ＣＰＵ（Ａ）２５１は、駆動異常が発生していないと判別した場合（Ｓ８０７：Ｎｏ）、位置制御用のカウント値に基づいて移動が完了したか否かを判別する（Ｓ８０８）。
【０１８０】
ＣＰＵ（Ａ）２５１は、カウント値が出力変化点から目標位置への移動距離に相当するパルス数と一致しない場合、目標位置への移動が完了していないと判別して（Ｓ８０８：Ｎｏ）、ステップＳ８０７の処理に遷移して再び駆動異常の検知を行う。
ＣＰＵ（Ａ）２５１は、カウント値が出力変化点から目標位置への移動距離に相当するパルス数と一致した場合、目標位置への移動が完了したと判別して（Ｓ８０８：Ｙｅｓ）、光学系モータ２２６の駆動を停止する（Ｓ８１９）。
ＣＰＵ（Ａ）２５１は、ＲＡＭ（Ａ）２５３の所定の領域に記憶している現在位置を目標位置に更新して（Ｓ８１０）処理を終了する。
【０１８１】
このように本実施形態に係る画像読取装置では、光学系モータ２２６の駆動により表面読み取りユニット２０２を移動させる際に通常の駆動時に必要とされる駆動力より大きな駆動力を必要とすることなく駆動異常、位置検知異常の発生の有無を判別することができる。
【０１８２】
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
【符号の説明】
【０１８３】
１・・・給紙ローラ、２・・・分離ローラ、３・・・引抜ローラ、４・・・搬送ローラ、５・・・表面読み取り搬送ローラ、６・・・表面ガラス対向部材、７・・・裏面読み取り搬送ローラ、５３・・・裏面読み取り上流ローラ、５４・・・裏面読み取り下流ローラ、８・・・裏面ガラス対向部材、１２・・・排紙ローラ、１３・・・排紙トレイ、１４・・・原稿検知センサ、１５、１６、１７、１８、１９・・・センサ、２１・・・分離パッド、３０・・・原稿トレイ、５１・・・表面読み取り上流ローラ、５２・・・  表面読み取り下流ローラ、１００・・・ＡＤＦ、１０１・・・裏面流し読みガラス、１０２・・・裏面読み取りユニット、１０３・・・裏面ＬＥＤ、１０４・・・裏面ミラー、１０８・・・裏面読取センサ、１１０・・・裏面シェーディング白板、１１１・・・ガラスＨＰセンサ、１１３・・・カム、１１４・・・カム軸、１２０・・・搬送系モータ、１２１・・・搬送系センサ、１２２・・・ガラスモータ、１２３・・・駆動制御部、１２５・・・裏面ガラスユニット、１２５ａ・・・ガラスホルダ、１２５ｂ・・・フラグ、１３０・・・出力制御部、１３１・・・駆動波形出力部、１３２・・・負荷検出部、１３３・・・負荷監視部、２００・・・リーダ、２０１・・・表面流し読みガラス、２０２・・・表面読み取りユニット、２０２ａ・・・ボックス、２０２ｂ・・・フラグ、２０３・・・表面ＬＥＤ、２０４・・・表面ミラー、２０８・・・表面読取センサ、２０９・・・原稿台ガラス、２１０・・・表面シェーディング白板、２１１・・・光学系ＨＰセンサ、２２３・・・駆動制御部、２２６・・・光学系モータ、２５１・・・ＣＰＵ（Ａ）、２５２・・・ＲＯＭ（Ａ）、２５３・・・ＲＡＭ（Ａ）、２５５・・・画像転送部（Ａ）、２６０・・・画像メモリ（Ａ）、２６１・・・画像処理部（Ａ）、３００・・・コントローラ、３０１・・・ＣＰＵ（Ｂ）、３０２・・・ＲＯＭ（Ｂ）、３０３・・・ＲＡＭ（Ｂ）、３０４・・・操作部、３０６・・・画像メモリ（Ｂ）、３０８・・・画像転送部（Ｂ）、４０１・・・通信ライン、１０００・・・画像読取装置。
【図１】
2019096948.tif 000003
【図２】
2019096948.tif 000004
【図３】
2019096948.tif 000005
【図４】
2019096948.tif 000006
【図５】
2019096948.tif 000007
【図６】
2019096948.tif 000008
【図７】
2019096948.tif 000009
【図８】
2019096948.tif 000010
【図９】
2019096948.tif 000011
【図１０】
2019096948.tif 000012
【図１１】
2019096948.tif 000013
【図１２】
2019096948.tif 000014
【図１３】
2019096948.tif 000015
【図１４】
2019096948.tif 000016
【図１５】
2019096948.tif 000017
【図１６】
2019096948.tif 000018
【図１７】
2019096948.tif 000019
【図１８】
2019096948.tif 000020
【図１９】
2019096948.tif 000021
【図２０】
2019096948.tif 000022
【図２１】
2019096948.tif 000023