(57)【特許請求の範囲】
【請求項１】
複数のビーム光を発生する光源と；
前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と；
前記走査手段により走査される各ビーム光の通過位置を検知する検知手段と；
前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備した画像形成装置であって、
前記検知手段は、前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器と、ビーム光位置検知器出力処理回路と、主制御部を備え、
前記ビーム光位置検知器出力処理回路が、前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を、複数の差分信号として演算する差分演算手段と、前記差分演算手段で演算された複数の差分信号のうちのいずれか１つの信号を選択する選択手段と、前記選択手段で選択された信号を積分する積分手段と、前記積分手段の出力と所定のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力する比較保持手段を備え、
前記主制御部が、前記比較保持手段の出力に応じ前記所定のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて、前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御することを特徴とする画像形成装置。
【請求項２】
複数のビーム光を発生する光源と；
前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と；
前記走査手段により走査される各ビーム光の通過位置を検知する第１の検知手段と；
前記走査手段により走査される各ビーム光の光量を検知する第２の検知手段と；
前記走査手段により走査される各ビーム光の光量を定めるビーム光量変更手段と；
前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備した画像形成装置であって、
前記第１の検知手段は、前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器と、ビーム光位置検知器出力処理回路と、主制御部を備え、
前記第２の検知手段は、前記複数ビーム光の光量を検知するセンサパターンを持ち検知した光量に対応する光量信号を出力するものであり、
前記ビーム光位置検知器出力処理回路が、前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を、複数の差分信号として演算する差分演算手段と、前記差分演算手段で演算された複数の差分信号のうちのいずれか１つの信号を選択する選択手段と、前記選択手段で選択された信号を積分する積分手段と、前記積分手段の出力と第１のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力する比較保持手段を備え、
前記選択手段は前記第２の検知手段からの前記光量信号を選択するように構成され、前記積分手段はこの選択された光量信号を積分するように構成され、前記比較保持手段はこの積分された光量信号と第２のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力するように構成され、
前記主制御部が、前記比較保持手段の出力に応じ前記第１のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて、前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御するとともに、
前記主制御部が、前記比較保持手段の前記光量信号に関する出力に応じ前記第２のしきい値を変更して前記複数ビーム光の光量を判断し、この複数ビーム光の光量が所望の大きさとなるように前記ビーム光量変更手段を制御することを特徴とする画像形成装置。
【請求項３】
複数のビーム光を発生する光源と、前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と、前記走査手段により走査される各ビーム光の通過位置を検知する検知手段と、前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備し、前記検知手段が前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器を備えた画像形成装置で用いられる方法であって、
前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を複数の差分信号として演算し、演算された複数の差分信号のうちのいずれか１つの信号を選択し、選択された信号を積分し、この積分信号の出力と所定のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力し、
前記デジタルビット化し保持した出力に応じ前記所定のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて、前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御することを特徴とする画像形成方法。
【請求項４】
複数のビーム光を発生する光源と、前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と、前記走査手段により走査される各ビーム光の通過位置を検知する第１の検知手段と、前記走査手段により走査される各ビーム光の光量を検知する第２の検知手段と、前記走査手段により走査される各ビーム光の光量を定めるビーム光量変更手段と、前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備し、前記第１の検知手段が前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器を備え、前記第２の検知手段が前記複数ビーム光の光量を検知するセンサパターンを持ち検知した光量に対応する光量信号を出力するように構成された画像形成装置で用いられる方法であって、
前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を複数の差分信号として演算し、演算された複数の差分信号のうちのいずれか１つの信号を選択し、選択された信号を積分し、この積分信号の出力と第１のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力し、
前記第２の検知手段からの前記光量信号を選択し、この選択された光量信号を積分し、この積分された光量信号と第２のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力し、
前記デジタルビット化し保持した出力に応じ前記第１のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて、前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御し、
前記デジタルビット化し保持した前記光量信号に関する出力に応じ前記第２のしきい値を変更して前記複数ビーム光の光量を判断し、この複数ビーム光の光量が所望の大きさとなるように前記ビーム光量変更手段を制御することを特徴とする画像形成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、たとえば複数のレーザビーム光により単一の感光体ドラム上を同時に走査露光してこの感光体ドラム上に単一の静電潜像を形成するデジタル複写機やレーザプリンタなどの画像形成装置、およびこの装置で使用される画像形成方法に関する。
【０００２】
とくに、上記画像形成装置あるいは画像形成方法において、感光体ドラムに対するレーザビーム光の通過位置制御あるいはレーザビーム光のパワー制御若しくはこの制御を行なう回路部分に生じるオフセットの検知／補正に利用される構成の改良に関する。
【０００３】
より具体的には、マルチビームを利用した高速デジタル複写機において、レーザビームの位置あるいはパワーのデジタル制御を、通常のＡ／Ｄ変換器を用いずに、汎用デジタルデバイスを利用して行なう構成に関する。
【０００４】
【従来の技術】
近年、たとえばレーザビーム光による走査露光と電子写真プロセスとにより画像形成を行なうデジタル複写機が種々開発されている。
【０００５】
そして、最近では、さらに画像形成速度の高速化を図るために、マルチビーム方式、つまり、複数のレーザビーム光を発生させ、これら複数のレーザビーム光により複数ラインずつの同時走査が行なわれるようにしたデジタル複写機が開発されている。
【０００６】
このようなマルチビーム方式のデジタル複写機においては、レーザビーム光を発生する複数の半導体レーザ発振器、これら複数のレーザ発振器から出力される各レーザビーム光を感光体ドラムへ向けて反射し、各レーザビーム光により感光体ドラム上を走査するポリゴンミラーなどの多面回転ミラー、およびコリメータレンズやｆ−θレンズなどを主体に構成される光学系ユニットを備えている。
【０００７】
また、マルチビームのビーム検知部は、通常は次のように構成されている。すなわち、ビーム光に反応する２つのセンサ出力を増幅し、差動増幅器によりその出力差分をとったあとに積分器により積分し、その積分結果をアナログ・デジタル変換器（以下Ａ／Ｄ変換器またはＡＤＣと略記する）によりデジタル化する。こうしてデジタル化した積分結果（ビーム検知結果に対応するデジタルデータ）が、その後のデジタル処理に利用されるようになっている。
【０００８】
【発明が解決しようとする課題】
上記デジタル複写機では、感光体ドラムに対するレーザビーム光の通過位置制御あるいはレーザビーム光のパワー制御において、マルチレーザビームの位置およびパワーのアナログ量（上記積分結果に対応）が、デジタル処理のためにデジタル化される。このデジタル処理を行なうためにＡ／Ｄ変換器が用いられるが、一般的にいって、Ａ／Ｄ変換器のデバイスコストは、汎用ロジックＩＣ（コンパレータ、フリップフロップ、インバータなど）と比較して、どうしても高くなる。
【０００９】
ところで、実際のデジタル複写機では、十分な階調処理のため画像処理に８〜１２ビット程度を割り当てている。このため、上記デジタル複写機では、Ａ／Ｄ変換器にも８〜１２ビットの高分解能マルチビットタイプが用いられるが、このような高分解能マルチビットＡ／Ｄ変換器は特に高価である。１６ビットタイプともなると更に高価になる。
【００１０】
また、印字速度のより高速化の要求に答えるために光学系およびデジタル処理系（ＣＰＵまたはＭＰＵによるソフトウエア処理を含む）の処理速度が上がってくると、そこで用いられるＡ／Ｄ変換器の動作速度（毎回のＡ／Ｄ変換動作の完了に要する時間）も、より高速化（短縮化）されなければならない。このような高速要求に合致する高分解能Ａ／Ｄ変換器は、益々高価なものになって行く。実際問題として、画像形成装置の制御回路系の全体コストからみて、高分解能かつ高速タイプのＡ／Ｄ変換器は、非常に高価である。
【００１１】
この発明の目的は、上述したような高価なＡ／Ｄ変換器を用いなくてもデジタル制御が可能な画像形成装置または画像形成方法を提供することである。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、マルチビームのビーム通過位置の制御を行なうこの発明の画像形成装置は、複数のビーム光を発生する光源と；前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と；前記走査手段により走査される各ビーム光の通過位置を検知する検知手段と；前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備する。ここで、前記検知手段は、前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器と、ビーム光位置検知器出力処理回路と、主制御部を備える。また、前記ビーム光位置検知器出力処理回路は、前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を、複数の差分信号として演算する差分演算手段と、前記差分演算手段で演算された複数の差分信号のうちのいずれか１つの信号を選択する選択手段と、前記選択手段で選択された信号を積分する積分手段と、前記積分手段の出力と所定のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力する比較保持手段を備える。さらに、前記主制御部は、前記比較保持手段の出力に応じ前記所定のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて、前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御する。
【００１３】
また、上記目的を達成するために、マルチビームのビームパワーの制御を行なうこの発明の画像形成装置は、複数のビーム光を発生する光源と；前記複数ビーム光が所定の対象上を通過するように走査させる走査手段と；前記走査手段により走査される各ビーム光の通過位置を検知する第１の検知手段と；前記走査手段により走査される各ビーム光の光量を検知する第２の検知手段と；前記走査手段により走査される各ビーム光の光量を定めるビーム光量変更手段と；前記複数ビーム光の走査方向と直交する方向の走査位置を変化させるビーム光走査位置変更手段を具備する。ここで、前記第１の検知手段は、前記複数ビーム光の通過位置に対応した複数センサパターンを持ち前記複数ビーム光の通過位置に対応した出力信号を出力するビーム光位置検知器と、ビーム光位置検知器出力処理回路と、主制御部を備える。また、前記第２の検知手段は前記複数ビーム光の光量を検知するセンサパターンを持ち検知した光量に対応する光量信号を出力するものであり、前記ビーム光位置検知器出力処理回路は、前記複数センサパターンのうち隣接するセンサパターンに対応した前記ビーム光位置検知器の出力信号の差分を、複数の差分信号として演算する差分演算手段と、前記差分演算手段で演算された複数の差分信号のうちのいずれか１つの信号を選択する選択手段と、前記選択手段で選択された信号を積分する積分手段と、前記積分手段の出力と第１のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力する比較保持手段を備える。さらに、前記選択手段は前記第２の検知手段からの前記光量信号を選択するように構成され、前記積分手段はこの選択された光量信号を積分するように構成され、前記比較保持手段はこの積分された光量信号と第２のしきい値の大小を比較しその比較結果をデジタルビット化し保持して出力するように構成される。そして、前記主制御部が、前記比較保持手段の出力に応じ前記第１のしきい値を変更して前記複数ビーム光の通過位置を判断し、この複数ビーム光の通過位置に基づいて前記走査手段により走査される各ビーム光の通過位置が所望の位置となるように前記ビーム光走査位置変更手段を制御するとともに、前記主制御部が、前記比較保持手段の前記光量信号に関する出力に応じ前記第２のしきい値を変更して前記複数ビーム光の光量を判断し、この複数ビーム光の光量が所望の大きさとなるように前記ビーム光量変更手段を制御する。
【００２７】
【発明の実施の形態】
以下、図面を参照して、この発明の一実施の形態を説明する。
【００２８】
図１は、この発明の一実施の形態に係る画像形成装置としてのデジタル複写機の構成を示す。
【００２９】
すなわち、このデジタル複写機は、たとえば、画像読取手段としてのスキャナ部１、および画像形成手段としてのプリンタ部２から構成されている。スキャナ部１は、移動可能な第１キャリジ３と第２キャリジ４、結像レンズ５、および光電変換素子６などから構成されている。
【００３０】
図１において、原稿Ｏは透明ガラスからなる原稿台７上に下向きに置かれる。この原稿Ｏの載置基準としては、原稿台７の短手方向の正面右側が、センタ基準として採用されている。原稿Ｏは、開閉自在に設けられた原稿固定カバー８によって原稿台７上に押さえつけられる。
【００３１】
原稿Ｏは光源９によって照明され、その反射光はミラー１０、１１、１２、および結像レンズ５を介して光電変換素子６の受光面に集光されるように構成されている。ここで、上記光源９およびミラー１０を搭載した第１キャリジ３と、ミラー１１、１２を搭載した第２キャリジ４は、光路長を一定にするように２：１の相対速度で移動するようになっている。第１キャリジ３および第２キャリジ４は、キャリジ駆動用モータ（図示せず）によって、読取タイミング信号に同期して図上右から左方向に移動する。
【００３２】
以上のようにして、原稿台７上に載置された原稿Ｏの画像は、スキャナ部１によって１ラインごとに順次読取られ、その読取り出力は、図示しない画像処理部において画像の濃淡を示す８〜１２ビットのデジタル画像信号に変換される（以下では、画像の濃淡を示す量子化ビット数を、８ビットで示すことにする）。
【００３３】
プリンタ部２は、光学系ユニット１３、および被画像形成媒体である用紙Ｐ上に画像形成が可能な電子写真方式を組合わせた、画像形成部１４で構成されている。
【００３４】
すなわち、原稿Ｏからスキャナ部１で読取られた画像信号は、図示しない画像処理部で処理が行なわれた後、半導体レーザ発振器からのレーザビーム光（以降、単にビーム光と称す）に変換される。ここで、この実施の形態では、半導体レーザ発振器を複数個（２個以上）使用するマルチビーム光学系を採用している。
【００３５】
光学系ユニット１３の構成については後で詳細を説明するが、光学系ユニット内に設けられた複数の半導体レーザ発振器は、図示しない画像処理部から出力されるレーザ変調信号にしたがって発光動作し、これらから出力される複数のビーム光は、ポリゴンミラーで反射されて走査光となり、光学系ユニット外部へ出力されるようになっている。
【００３６】
光学系ユニット１３から出力される複数のビーム光は、像担持体としての感光体ドラム１５上の露光位置Ｘの地点に必要な解像度を持つスポットの走査光として結像され、走査露光される。これによって、感光体ドラム１５上には、画像信号に応じた静電潜像が形成される。
【００３７】
感光体ドラム１５の周辺には、その表面を帯電する帯電チャージャ１６、現像器１７、転写チャージャ１８、剥離チャージャ１９、およびクリーナ２０などが配設されている。
【００３８】
感光体ドラム１５は、駆動モータ（図示せず）により所定の外周速度で回転駆動され、その表面に対向して設けられている帯電チャージャ１６によって帯電される。帯電された感光体ドラム１５上の露光位置Ｘの地点に複数のビーム光（走査光）がスポット結像される。
【００３９】
感光体ドラム１５上に形成された静電潜像は、現像器１７からのトナー（現像剤）により現像される。現像によりトナー像が形成された感光体ドラム１５は、転写位置の地点で、給紙系によりタイミングをとって供給される用紙Ｐ上に、転写チャージャ１８によって転写される。
【００４０】
上記給紙系は、装置底部に設けられた給紙カセット２１内の用紙Ｐを、給紙ローラ２２と分離ローラ２３とにより１枚ずつ分離して排出する。そして、分離・排出された各用紙Ｐは、レジストローラ２４まで送られ、所定のタイミングで転写位置まで供給され、そこでトナー像が転写される。転写チャージャ１８の下流側には、用紙搬送機構２５、定着器２６、画像形成済みの用紙Ｐを排出する排紙ローラ２７が配設されている。これにより、トナー像が転写された用紙Ｐは、定着器２６でトナー像が定着され、その後、排紙ローラ２７を経て外部の排紙トレイ２８に排紙される。
【００４１】
また、用紙Ｐへの転写が終了した感光体ドラム１５は、その表面の残留トナーがクリーナ２０によって取り除かれて、初期状態に復帰し、次の画像形成の待機状態となる。
【００４２】
以上のプロセス動作を繰り返すことにより、画像形成動作が連続的に行なわれる。
【００４３】
以上説明したように、原稿台７上に置かれた原稿Ｏは、スキャナ部１で読取られ、その読取り情報は、プリンタ部２で一連の処理を施された後、用紙Ｐ上にトナー画像として記録される。
【００４４】
次に、光学系ユニット１３について説明する。
【００４５】
図２は、光学系ユニット１３の構成と感光体ドラム１５の位置関係を示している。光学系ユニット１３は、たとえば４つのビーム光発生手段としての半導体レーザ発振器３１ａ、３１ｂ、３１ｃ、３１ｄを内蔵している。そして、それぞれのレーザ発振器３１ａ〜３１ｄが同時に１走査ラインずつの画像形成を共同して行なうことにより、ポリゴンミラー３５の回転数を極端に上げることなく、高速の画像形成を可能としている。
【００４６】
すなわち、レーザ発振器３１ａはレーザドライバ３２ａで駆動され、出力されるレーザビーム光は、図示しないコリメータレンズを通過した後、光路変更手段としてのガルバノミラー３３ａに入射する。ガルバノミラー３３ａで反射されたビーム光は、ハーフミラー３４ａとハーフミラー３４ｂを通過し、多面回転ミラーとしてのポリゴンミラー３５に入射する。
【００４７】
ポリゴンミラー３５は、ポリゴンモータドライバ３７で駆動されるポリゴンモータ３６によって一定速度で回転されている。これにより、ポリゴンミラー３５からの反射光は、ポリゴンモータ３６の回転数で定まる角速度で、一定方向に走査することになる。
【００４８】
ポリゴンミラー３５によって走査されたレーザビーム光は、図示しないｆ−θレンズのｆ−θ特性により、これを通過することによって、一定速度で、ビーム光位置検知手段としてのビーム光位置検知器３８の受光面、および感光体ドラム１５上を走査することになる。
【００４９】
レーザ発振器３１ｂは、レーザドライバ３２ｂで駆動され、出力されるレーザビーム光は、図示しないコリメータレンズを通過した後、ガルバノミラー３３ｂで反射し、さらにハーフミラー３４ａで反射する。ハーフミラー３４ａからの反射光は、ハーフミラー３４ｂを通過し、ポリゴンミラー３５に入射する。ポリゴンミラー３５以降のビーム経路は上述したレーザ発振器３１ａの場合と同じで、図示しないｆ−θレンズを通過し、一定速度でビーム光位置検知器３８の受光面および感光体ドラム１５上を走査する。
【００５０】
レーザ発振器３１ｃは、レーザドライバ３２ｃで駆動され、出力されるレーザビーム光は、図示しないコリメータレンズを通過した後、ガルバノミラー３３ｃで反射し、さらにハーフミラー３４ｃを通過し、ハーフミラー３４ｂで反射し、ポリゴンミラー３５に入射する。ポリゴンミラー３５以降のビーム経路は上述したレーザ発振器３１ａ、３１ｂの場合と同じで、図示しないｆ−θレンズを通過し、一定速度でビーム光位置検知器３８の受光面および感光体ドラム１５上を走査する。
【００５１】
レーザ発振器３１ｄは、レーザドライバ３２ｄで駆動され、出力されるレーザビーム光は、図示しないコリメータレンズを通過した後、ガルバノミラー３３ｄで反射し、さらにハーフミラー３４ｃで反射し、ハーフミラー３４ｂで反射し、ポリゴンミラー３５に入射する。ポリゴンミラー３５以降のビーム経路は上述したレーザ発振器３１ａ、３１ｂ、３１ｃの場合と同じで、図示しないｆ−θレンズを通過し、一定速度でビーム光位置検知器３８の受光面および感光体ドラム１５上を走査する。
【００５２】
このようにして、別々のレーザ発振器３１ａ、３１ｂ、３１ｃ、３１ｄから出力された各レーザビーム光は、ハーフミラー３４ａ、３４ｂ、３４ｃで合成され、４つのレーザビーム光がポリゴンミラー３５の方向に進むことになる。
【００５３】
したがって、４つのレーザビーム光は同時に感光体ドラム１５上を走査することができ、これまでのシングルビームの場合に比べ、ポリゴンミラー３５の回転数が同じである場合、４倍の速度で画像を記録することが可能となる。
【００５４】
ガルバノミラー３３ａ、３３ｂ、３３ｃ、３３ｄは、副走査方向（感光体ドラム１５の長手軸方向）のビーム光相互間の位置関係を調整（制御）するためのものであり、それぞれを駆動するガルバノミラー駆動回路３９ａ、３９ｂ、３９ｃ、３９ｄが接続されている。
【００５５】
ビーム光位置検知器３８は、上記４つのレーザビーム光の通過位置と通過タイミングを検知するためのものであり、その受光面が感光体ドラム１５の表面と同等になるよう、感光体ドラム１５の端部近傍の位置ＢＰ１に配設されている。
【００５６】
ポリゴンミラー３５の回転速度、およびポリゴンミラー３５と検知器３８とドラム１５との間の幾何学的な位置関係は事前に分かっているので、ポリゴンミラー３５で反射されたレーザビームが検知器３８で検知された瞬間からの時間経過を計量すれば、今レーザビームのスポットが走査線ＢＳＬ上の何処にあるのか、あるいは感光体ドラム１５の特定位置をレーザビームがどんなタイミングで通過するかを知ることができる。
【００５７】
つまり、ビーム光位置検知器３８が感光体ドラム１５上のビーム走査面の位置に実際に配置されていなくても、別の位置に配置された検知器３８の検知結果に基づいて、今レーザビームのスポットが走査線ＢＳＬ上の何処にあるのかを知ることができる。このような「別の位置」が、上記「感光体ドラム１５の表面と同等」の位置に相当する。
【００５８】
すなわち、「感光体ドラム１５の表面と同等」とは、感光体ドラム１５上のビーム走査線ＢＳＬの線上、あるいはこのＢＳＬ線上とポリゴンミラー３５のビーム反射面とを結ぶ線上の何処（たとえば図２では位置ＢＰ１またはＢＰ２）かをいう。この何処かの位置として、図２では位置ＢＰ１が検知器３８の配設位置として例示されている。
【００５９】
このように設置されたビーム光位置検知器３８からの検知信号を基に、それぞれのビーム光に対応するガルバノミラー３３ａ、３３ｂ、３３ｃ、３３ｄの制御（副走査方向の画像形成位置制御）、レーザ発振器３１ａ、３１ｂ、３１ｃ、３１ｄの発光パワー（強度）の制御、および発光タイミングの制御（主走査方向の画像形成位置制御）が行なわれる（詳細は後述する）。これらの制御を行なうための信号を生成するために、ビーム光位置検知器３８には、ビーム光位置検知器出力処理回路４０が接続されている。
【００６０】
図２のマルチビーム光学系を備えた図１のデジタル複写機は、複数のレーザを有しており、ビーム相互を所定の関係に保持するためにビーム制御が必要となる。このマルチビーム光学系のビーム制御に適するよう、図２のビーム光位置検知器３８は、特殊な構成のビーム検知センサ３８０を備えている。
【００６１】
ビーム検知センサ３８０を構成する光センサ受光部ＳＡ〜ＳＰの配置パターンは、たとえば図３に示すようになっている。これらの光センサ受光部ＳＡ〜ＳＰそれぞれは、フォトダイオードなどの光検知素子により構成される。図２のポリゴンミラー３５で反射されたレーザビームは、図３のセンサ３８０のパターンを、左（ＳＡ側）から右（ＳＰ側）へ横切って走査する。
【００６２】
図３は、４ビーム構成で解像度６００ｄｐｉ（ドット・パー・インチ）の場合に利用でき、所定の形状および配置を持った１６個の光センサ受光部（フォトダイオード）ＳＡ〜ＳＰで構成されている。以下、これらの受光部ＳＡ〜ＳＰの機能をを説明する。
【００６３】
＜０１＞受光部ＳＡは、感光体ドラム１５上における主走査ビームの通過タイミングを検知し、種々なタイミング信号を生成するのに利用される。
【００６４】
具体的には、受光部ＳＡと受光部ＳＢとの組み合わせで、傾き検知受光部ＳＣ、ＳＤの積分リセット信号を生成する；
受光部ＳＡと受光部ＳＥとの組み合わせで、副走査ビーム位置検知の積分リセット信号を生成する；
受光部ＳＡと受光部ＳＫとの組み合わせで、ビーム光量検知の積分リセット信号を生成する；
受光部ＳＡと受光部ＳＭとの組み合わせで、傾き検知受光部ＳＮ、ＳＯの積分リセット信号を生成する；
受光部ＳＡと受光部ＳＢとの組み合わせで、同期信号（ＨＳＹＮＣ信号）を生成する。
【００６５】
＜０２＞受光部ＳＢも、主走査ビームの通過タイミングを検知するのに利用される。
【００６６】
具体的には、受光部ＳＢと受光部ＳＡとの組み合わせで、傾き検知受光部ＳＣ、ＳＤの積分リセット信号を生成する；
受光部ＳＢと受光部ＳＡとの組み合わせで、同期信号（ＨＳＹＮＣ信号）を生成する。
【００６７】
＜０３＞受光部ＳＣは、センサ３８０の受光面とこのセンサに入射するレーザビームとの相対的な傾きを検知するのに利用される。
【００６８】
具体的には、受光部ＳＣと受光部ＳＤとの組み合わせで、上流側の傾き検知が行われる。
【００６９】
＜０４＞受光部ＳＤも、センサ３８０の受光面とこのセンサに入射するレーザビームとの相対的な傾きを検知するのに利用される。
【００７０】
具体的には、受光部ＳＤと受光部ＳＣとの組み合わせで、上流側の傾き検知が行われる。
【００７１】
＜０５＞受光部ＳＥは、各種タイミング生成に利用される。
【００７２】
具体的には、受光部ＳＣと受光部ＳＤとの組み合わせによる傾き検知結果（アナログ量）のＡ／Ｄ変換（あるいはより広範な意味でＡ／Ｄ処理）の開始信号を生成する；
受光部ＳＥと受光部ＳＡとの組み合わせで、副走査ビーム位置検知の積分リセット信号を生成する。
【００７３】
＜０６＞受光部ＳＦは、受光部ＳＧとの組み合わせで、（４本のレーザビームをａ〜ｄで表したときに）ビームｄのビーム位置（副走査ビーム位置）を検知するのに利用される。
【００７４】
＜０７＞受光部ＳＧは、受光部ＳＦとの組み合わせでビームｄのビーム位置（副走査ビーム位置）を検知するのに利用され、受光部ＳＨとの組み合わせでビームｃのビーム位置（副走査ビーム位置）を検知するのに利用される。
【００７５】
＜０８＞受光部ＳＨは、受光部ＳＧとの組み合わせでビームｃのビーム位置（副走査ビーム位置）を検知するのに利用され、受光部ＳＩとの組み合わせでビームｂのビーム位置（副走査ビーム位置）を検知するのに利用される。
【００７６】
＜０９＞受光部ＳＩは、受光部ＳＨとの組み合わせでビームｂのビーム位置（副走査ビーム位置）を検知するのに利用され、受光部ＳＪとの組み合わせでビームａのビーム位置（副走査ビーム位置）を検知するのに利用される。
【００７７】
＜１０＞受光部ＳＪは、受光部ＳＩとの組み合わせでビームａのビーム位置（副走査ビーム位置）を検知するのに利用される。
【００７８】
＜１１＞受光部ＳＫは、各種タイミング生成に利用される。
【００７９】
具体的には、副走査ビーム位置の検知結果（アナログ量）のＡ／Ｄ変換（Ａ／Ｄ処理）開始信号を生成する；
受光部ＳＫと受光部ＳＡとの組み合わせで、ビーム光量（パワー）検知の積分リセット信号を生成する。
【００８０】
＜１２＞受光部ＳＬは、ビーム光量（パワー）を検知するのに利用される。
【００８１】
＜１３＞受光部ＳＭは、各種タイミング生成に利用される。
【００８２】
具体的には、ビーム光量（パワー）の検知結果（アナログ量）のＡ／Ｄ変換（Ａ／Ｄ処理）開始信号を生成する；
受光部ＳＭと受光部ＳＡとの組み合わせで、受光部ＳＮと受光部ＳＯとの組み合わせによる傾き検知の積分リセット信号を生成する。
【００８３】
＜１４＞受光部ＳＮは、センサ３８０の受光面とこのセンサに入射するレーザビームとの相対的な傾きを検知するのに利用される。
【００８４】
具体的には、受光部ＳＮと受光部ＳＯとの組み合わせで、下流側の傾き検知が行われる。
【００８５】
＜１５＞受光部ＳＯも、センサ３８０の受光面とこのセンサに入射するレーザビームとの相対的な傾きを検知するのに利用される。
【００８６】
具体的には、受光部ＳＯと受光部ＳＮとの組み合わせで、下流側の傾き検知が行われる。
【００８７】
＜１６＞受光部ＳＰは、主走査ビームの通過タイミング検知等に利用される。
【００８８】
具体的には、主走査ビームの通過タイミングを検知し、受光部ＳＮおよび受光部ＳＯからの傾き検知結果（アナログ量）のＡ／Ｄ変換（Ａ／Ｄ処理）の開始信号を生成する。
【００８９】
以上まとめると、図３のビーム検知センサ３８０は、（１）副走査ビーム位置検知機能と、（２）主走査ビーム通過タイミング検知機能と、（３）ビーム光量（パワー）検知機能と、（４）傾き検知機能とを持つことができるようになっている。
【００９０】
なお、図３の構成では、光センサ受光部ＳＥとＳＫとの間隔Ｌｅｋが、光センサ受光部ＳＫとＳＭとの間隔Ｌｋｍと等しくなるように構成されている。光センサ受光部ＳＦ〜ＳＪにビーム光を照射しない状態で光センサ受光部ＳＫおよびＳＭからのセンサ出力を積分することにより、オフセット検出ができる。
【００９１】
次に、図１の装置の制御系について説明する。
【００９２】
図４は、主にマルチビーム光学系の制御を主体にした制御系を示している。すなわち、５１は全体的な制御を司る主制御部で、たとえば、マイクロコンピュータＭＰＵまたはワンチップＣＰＵをベースに構成される。この出力制御部５１には、メモリ５２、コントロールパネル５３、外部通信インタフェイス（Ｉ／Ｆ）５４、レーザドライバ３２ａ、３２ｂ、３２ｃ、３２ｄ、ポリゴンミラーモータドライバ３７、ガルバノミラー駆動回路３９ａ、３９ｂ、３９ｃ、３９ｄ、信号処理手段としてのビーム光位置検知器出力処理回路４０、同期回路５５、および画像データインタフェイス（Ｉ／Ｆ）５６が接続されている。
【００９３】
同期回路５５には画像データＩ／Ｆ５６が接続されており、画像データＩ／Ｆ５６には画像処理部５７およびページメモリ５８が接続されている。画像処理部５７にはスキャナ部１が接続され、ページメモリ５８には外部インタフェイス（Ｉ／Ｆ）５９が接続されている。
【００９４】
ここで、画像を形成する際の画像データの流れを簡単に説明すると、以下のような流れとなる。
【００９５】
まず、複写動作の場合、図１を参照して先に説明したように、原稿台７上にセットされた原稿Ｏの画像は、スキャナ部１で読取られ、画像処理部５７へ送られる。画像処理部５７は、スキャナ部１からの画像信号に対し、たとえば、周知のシェーディング補正、各種フィルタリング処理、階調処理、ガンマ補正などを施こす。
【００９６】
画像処理部５７からの画像データは、画像データＩ／Ｆ５６へと送られる。画像データＩ／Ｆ５６は、４つのレーザドライバ３２ａ、３２ｂ、３２ｃ、３２ｄへ画像データを振り分ける役割を果たしている。
【００９７】
同期回路５５は、各レーザビーム光のビーム光位置検知器３８上を通過するタイミングに同期したクロックを発生する。このクロックに同期して、画像データＩ／Ｆ５６から各レーザドライバ３２ａ、３２ｂ、３２ｃ、３２ｄへ、画像データをレーザ変調信号として送出する。このように各レーザビーム光の走査と同期を取りながら画像データを転送することで、主走査方向に同期がとれた（正しい位置への）画像形成が行なわれる。
【００９８】
また、同期回路５５には、非画像領域で各レーザ発振器３１ａ〜３１ｄを強制的に発光動作させ各レーザビーム光のパワーを制御するためのサンプルタイマや、各レーザビーム光の画像形成タイミングを取るためにビーム光の順にしたがってビーム光位置検知器３８上でそれぞれのレーザ発振器３１ａ〜３１ｄを発光動作させる論理回路などが含まれている。
【００９９】
コントロールパネル５３は、複写動作の起動や、枚数設定などを行なうマン・マシン・インタフェースである。
【０１００】
このデジタル複写機は、複写動作のみでなく、ページメモリ５８に接続された外部Ｉ／Ｆ５９を介して外部から入力される画像データをも形成出力できる構成（つまりプリンタ）となっている。なお、外部Ｉ／Ｆ５９から入力される画像データは、一旦ページメモリ５８に格納された後、画像データＩ／Ｆ５６を介して同期回路５５へ送られる。
【０１０１】
また、このデジタル複写機が、たとえばネットワークなどを介して外部から制御される場合には、外部通信Ｉ／Ｆ５４がコントロールパネル５３の役割を果たす。
【０１０２】
ガルバノミラー駆動回路３９ａ、３９ｂ、３９ｃ、３９ｄは、主制御部５１からの指示値にしたがって、ガルバノミラー３３ａ、３３ｂ、３３ｃ、３３ｄを駆動する回路である。したがって、主制御部５１は、ガルバノミラー駆動回路３９ａ〜３９ｄを介してガルバノミラー３３ａ〜３３ｄそれぞれの角度を自由に制御することができる。
【０１０３】
ポリゴンモータドライバ３７は、先に述べた４つのビーム光を走査するポリゴンミラー３５を回転させるためのポリゴンモータ３６を駆動するドライバである。主制御部５１は、このポリゴンモータドライバ３７に対し、回転開始／回転停止および回転数の切換え指示を行なうことができる。回転数の切換えは、ビーム光位置検知器３８でビーム光の通過位置を確認する際に、必要に応じて、所定の回転速度よりも回転数を落すときに用いる。
【０１０４】
レーザドライバ３２ａ〜３２ｄは、先に説明した同期回路５５からのビーム光の走査に同期したレーザ変調信号にしたがってレーザ光を発光させる以外に、主制御部５１からの強制発光信号により、画像データとは無関係に強制的にレーザ発振器３１ａ〜３１ｄを発光動作させる機能を持っている。
【０１０５】
また、主制御部５１は、それぞれのレーザ発振器３１ａ〜３１ｄが発光動作するパワーを、各レーザドライバ３２ａ〜３２ｄに対して設定する。発光パワーの設定は、画像形成プロセス条件の変化や、ビーム光の通過位置検知などに応じて変更される。
【０１０６】
メモリ５２は、制御に必要な情報を記憶するためのものである。たとえば、各ガルバノミラー３３ａ〜３３ｄの制御量やレーザビーム光の到来順序その他の情報を記憶しておくことで、電源立ち上げ後、即座に光学系ユニット１３を画像形成が可能な状態にすることができる。
【０１０７】
次に、レーザビーム光の通過（走査）位置制御について説明する。
【０１０８】
図５は、図２の感光体ドラム１５に対するレーザビーム光の通過位置制御、および後述するオフセット検出・補正処理を説明するための図であり、図４のブロック図のうちのビーム光制御に関連する部分を抜き出して詳細に示したものである。
【０１０９】
ビーム光位置検知器３８を構成する図３のビーム検知センサ３８０のセンサパターン（フォトダイオードで構成されるセンサ受光部）ＳＡ、ＳＥ、ＳＫ、ＳＭからは、そこをレーザビーム光が通過した（横切った）ときにパルス状の信号が出力される。
【０１１０】
また、複数のセンサパターン（センサ受光部）ＳＦ〜ＳＪからは、レーザビーム光の通過位置に応じて、それぞれ独立した信号が出力される。たとえばレーザビームがＳＦ上を通過すればセンサＳＦのフォトダイオードがパルス信号を出力する。レーザビームがＳＦとＳＧの境界上付近を通過すればセンサＳＦおよびＳＧ双方のフォトダイオードからパルス信号が出力される。
【０１１１】
以下同様に、レーザビームがＳＩとＳＪの境界上付近を通過すればセンサＳＩおよびＳＪ双方のフォトダイオードからパルス信号が出力され、レーザビームがＳＪ上を通過すればセンサＳＪのフォトダイオードからパルス信号が出力される。
【０１１２】
さらに、センサパターン（センサ受光部）ＳＬからは、そこを通過する４本のレーザビームの光量（パワー）に対応した信号（アナログ）が出力される。
【０１１３】
センサパターンＳＬのフォトダイオードから出力された信号は、増幅器６２（増幅器Ｌ）により所定の増幅度で増幅され、選択回路（アナログスイッチ）４１に供給される。この増幅器Ｌの増幅度は、出力制御部５１からの指令に応じて変更できるようになっている。
【０１１４】
センサパターンＳＪのフォトダイオードから出力された信号は、差動増幅器６３（差動増幅器Ｊ−Ｉ）の一方入力に供給される。
【０１１５】
センサパターンＳＩのフォトダイオードから出力された信号は、差動増幅器６３（差動増幅器Ｊ−Ｉ）の他方入力に供給されるとともに、差動増幅器６４（差動増幅器ＩーＨ）の一方入力に供給される。
【０１１６】
センサパターンＳＨのフォトダイオードから出力された信号は、差動増幅器６４（差動増幅器ＩーＨ）の他方入力に供給されるとともに、差動増幅器６５（差動増幅器ＨーＧ）の一方入力に供給される。
【０１１７】
センサパターンＳＧのフォトダイオードから出力された信号は、差動増幅器６５（差動増幅器ＨーＧ）の他方入力に供給されるとともに、差動増幅器６６（差動増幅器ＧーＦ）の一方入力に供給される。
【０１１８】
センサパターンＳＦのフォトダイオードから出力された信号は、差動増幅器６６（差動増幅器ＧーＦ）の他方入力に供給される。
【０１１９】
すなわち、センサパターンＳＦ〜ＳＪのフォトダイオードからの出力信号は、センサパターンＳＦ〜ＳＪのうち隣り合うものからの出力信号の差を増幅する差動増幅器６３〜６６に、それぞれ入力される。
【０１２０】
差動増幅器６３は、センサパターンＳＪおよびＳＩからの出力信号の差分を増幅して選択回路（アナログスイッチ）４１に供給する。
【０１２１】
同様に、差動増幅器６４はセンサパターンＳＩおよびＳＨからの出力信号の差分を増幅して選択回路４１に供給し、差動増幅器６５はセンサパターンＳＨおよびＳＧからの出力信号の差分を増幅して選択回路４１に供給し、差動増幅器６６はセンサパターンＳＧおよびＳＦからの出力信号の差分を増幅して選択回路４１に供給する。
【０１２２】
選択回路４１は、主制御部（ＣＰＵ）５１からのセンサ選択信号により入力された信号のいずれか１つを選択し、選択された信号を、積分器４２へ供給する。積分器４２は、選択回路４１によって選択された信号を積分する。
【０１２３】
センサパターンＳＡのフォトダイオードから出力されたパルス信号、センサパターンＳＥのフォトダイオードから出力されたパルス信号、およびセンサパターンＳＫのフォトダイオードから出力されたパルス信号は、選択回路Ａに入力される。選択回路Ａは、主制御部５１からの指令にしたがって、ＳＡ、ＳＥ、またはＳＫのいずれかからのパルス信号を選択し、積分器４２に供給する。積分器４２は、供給されたパルス信号によりリセットされて、選択回路４１から入力された信号の積分を開始するように構成されている。
【０１２４】
つまり、積分器４２は、図３のビーム検知センサ３８０のセンサパターン（フォトダイオードで構成されるセンサ受光部）ＳＡ、ＳＥ、ＳＫの配置とそこを所定の速度で横切るレーザビームの通過タイミングに応じて、積分動作を開始する。
【０１２５】
なお、積分器４２には、ノイズの除去作用と、ビーム光位置検知器３８の取付け傾きの影響除去などの作用がある。
【０１２６】
また、センサパターンＳＫのフォトダイオードから出力されたパルス信号およびセンサパターンＳＭのフォトダイオードから出力されたパルス信号は、選択回路Ｂに入力される。選択回路Ｂは、主制御部５１からの指令にしたがって、ＳＫまたはＳＭのいずれかからのパルス信号を選択し、後述するフリップフロップ回路４３２に供給する。フリップフロップ回路４３２は、供給されたパルス信号によりクロックされて、所定の動作を行なうように構成されている。
【０１２７】
つまり、フリップフロップ回路４３２は、図３のビーム検知センサ３８０のセンサパターン（フォトダイオードで構成されるセンサ受光部）ＳＫ、ＳＭの配置とそこを所定の速度で横切るレーザビームの通過タイミングに応じて、フリップフロップ動作を行なう（後に詳述するが、このフリップフロップ動作はこの発明のＡ／Ｄ処理動作に関係している）。
【０１２８】
このように、センサパターンＳＡ、ＳＥ、またはＳＫからのパルス信号により、レーザビーム光がビーム検知センサ３８０を通過するときに積分器４２をリセットして積分動作を開始させる。そして、レーザビーム光がビーム検知センサ３８０のセンサパターン上を通過している間は、積分器４２はレーザビーム光の通過位置を示す信号を積分する。その間、積分器４２で積分した結果はコンパレータ４３０、フリップフロップ回路４３２、主制御部５１およびＤＡコンバータ４３４のループで構成される回路動作により、通常のＡ／Ｄ変換デバイスを用いることなく、実質的にＡ／Ｄ変換に対応したＡ／Ｄ処理がなされる（このＡ／Ｄ処理のための回路構成および動作は、別途図面を参照して後述する）。
【０１２９】
この積分動作を伴うＡ／Ｄ処理により、ノイズが少なく、ビーム光位置検知器３８の取付け傾きの影響が除去された検知信号をデジタル信号に変換することができる。
【０１３０】
ここで、増幅器６２〜６６、選択回路４１、積分器４２、コンパレータ４３０、フリップフロップ回路４３２、およびＤＡ変換器４３４は、ビーム光位置検知器出力処理回路４０を構成している。
【０１３１】
このようにして、デジタル信号に変換されたビーム光位置検知器３８からのビーム光位置検知信号は、ビーム光位置情報として主制御部５１に入力され、レーザビーム光の通過位置やレーザ光量（パワー）などが判断される。
【０１３２】
さて、このようにして得られたビーム光位置検知信号に基づいて、主制御部５１では、ガルバノミラー３３ａ〜３３ｄの制御量が演算される。その演算結果は、必要に応じてメモリ５２に記憶される。主制御部５１は、この演算結果をガルバノミラー駆動回路３９ａ〜３９ｄへ送出する。
【０１３３】
ガルバノミラー駆動回路３９ａ〜３９ｄには、図５に示したように、この演算結果のデータを保持するためのラッチ４４ａ〜４４ｄが設けられている。これらのラッチは、主制御部５１からのデータが一旦データを書き込まれると、次にデータが更新されるまでは、その値を保持するようになっている。
【０１３４】
ラッチ４４ａ〜４４ｄに保持されているデータは、Ｄ／Ａ変換器４５ａ〜４５ｄによりアナログ信号（電圧）に変換され、ガルバノミラー３３ａ〜３３ｄを駆動するためのドライバ４６ａ〜４６ｄに入力される。ドライバ４６ａ〜４６ｄは、Ｄ／Ａ変換器４５ａ〜４５ｄから入力されたアナログ信号（電圧）にしたがってガルバノミラー３３ａ〜３３ｄを駆動制御する。
【０１３５】
なお、この実施の形態では、センサパターンＳＦ〜ＳＪからの出力信号は、選択回路４１によりその１つのみが選択されて積分され、Ａ／Ｄ処理されているため、センサパターンＳＦ〜ＳＪの出力信号を一度に主制御部５１に入力することはできない。
【０１３６】
したがって、レーザビーム光がどこを通過しているか分からない状態においては、選択回路４１を順次切換え、センサパターンＳＦ〜ＳＪ全てからの出力信号を主制御部５１に順次入力して、ビーム光の通過位置を判定する必要がある。
【０１３７】
しかし、どのあたりをレーザビーム光が通過しているかが一旦認識できると、ガルバノミラー３３ａ〜３４ｄを極端に動かさない限り、これからレーザビーム光が通過するであろう位置はほぼ予想でき、常に全てのセンサパターンの出力信号を主制御部５１に入力する必要はない
次に、ビーム光位置検知器出力処理回路４０におけるオフセット値の検出およびその補正について説明する。
【０１３８】
図６は、ビーム光位置検知器出力処理回路４０におけるセンサパターンＳＪ、ＳＩに対する積分器４２までの回路構成を例示している。
【０１３９】
図６において、センサパターン（フォトダイオード）ＳＪ、ＳＩを流れる電流は、電流・電圧変換回路としてのオペアンプＡ１、Ａ２でそれぞれ増幅され、差動増幅器６３に送られる。差動増幅器６３は、抵抗Ｒ１〜Ｒ４、およびオペアンプＡ３によって構成されている。
【０１４０】
差動増幅器６３の出力は、選択回路４１を構成するアナログスイッチＳＷ１を介して積分器４２に送られる。積分器４２は、オペアンプＡ４、積分抵抗Ｒ５、積分キャパシタＣ、積分器リセット用アナログスイッチＳＷ７、および保護抵抗Ｒ６によって構成されている。
【０１４１】
積分器４２の積分出力Ｖｏは、コンパレータ（他の実施の形態ではウインドウコンパレータ）４３０に送られる。このコンパレータ４３０は、主制御部５１から与えられる比較基準値データ（デジタル）をＤＡＣ４３４でＤ／Ａ変換したしきい値Ｖｒと、積分出力Ｖｏとを比較し、比較結果をフリップフロップ回路４３２に送る。
【０１４２】
フリップフロップ回路４３２は、積分開始から所定の時間経過後にコンパレータ４３０からの比較結果に応じた内容にセットされ、その出力（デジタルビット）Ｄ４３２を出力制御部５１に与える。
【０１４３】
出力制御部５１はこの出力Ｄ４３２に基づき比較基準値データを適宜修正してＤＡＣ４３４に与える。すると、コンパレータ４３０のしきい値Ｖｒは若干修正されて再度ＶｏとＶｒとの比較が行われる。
【０１４４】
この比較〜しきい値Ｖｒの修正のループを数回反復することにより、主制御部５１からの比較基準値データ（デジタル）は積分出力Ｖｏ（アナログ）に対応する内容となる。
【０１４５】
こうして積分出力ＶｏのＡ／Ｄ処理が終了すると、変換終了信号が主制御部５１に与えられる。主制御部５１は、変換終了信号を受けると、デジタル値に変換された積分出力Ｖｏ（たとえばビーム光位置情報）を記憶するようになっている。
【０１４６】
なお、センサパターンＳＨ、ＳＧ、ＳＦに対する積分器４２までの構成例も、基本的には上記センサパターンＳＪ、ＳＩに対する積分器４２までの構成例と同様な構成になっているので、その説明は省略する。
【０１４７】
ここで、オペアンプのオフセット電圧（オフセット値）について、図７を用いて簡単に説明しておく。
【０１４８】
図７（ａ）において、理想的なオペアンプであれば、非反転入力（＋）と反転入力（ー）との電圧差が０（ゼロ）であれば、出力は０（ゼロ）である。しかし、実際には、非反転入力と反転入力を接地電位（ＧＮＤ）に接続し、入力の電圧差を「０」としたにもかかわらず、出力端子にはゼロでない出力電圧Ｖout が発生する。このように差分入力がゼロにも拘わらずゼロでない出力が生じる主な原因は、オペアンプの初段に配設された差動入力トランジスタの特性のばらつきにある。
【０１４９】
このように差分入力ゼロに対してゼロでない出力を生じるオペアンプにおいて出力電圧Ｖout を０［Ｖ］とするには、図７（ｂ）に示すように、差動入力端子間にある電圧Ｖosを加えれば良い。この電圧値を入力オフセット電圧Ｖosという。一般的なオペアンプの入力オフセット電圧は常温で数ｍＶであるが、この入力オフセット電圧は温度によって変化する。
【０１５０】
次に、再び図６を用いてオペアンプのオフセット電圧がビーム光通過位置検知に与える影響および問題点について説明する。
【０１５１】
いま、マルチビーム（図５の実施の形態では４本のレーザビーム）のうちのあるレーザビーム（以下これをビーム光ａとする）に着目してみる。このビーム光ａの通過位置が図３または図５のセンサパターンＳＪとＳＩとの中間位置にある場合は、センサパターンＳＪの検知結果（電圧Ｖ１）とセンサパターンＳＩの検知結果（電圧Ｖ２）は等しい（Ｖ１＝Ｖ２）。
【０１５２】
ここで、図６のビーム光通過位置検知器出力処理回路４０を構成するオペアンプＡ１〜Ａ４のオフセット電圧が以下の場合を考える。
【０１５３】
オペアンプＡ１のオフセット電圧：−Ｖos［Ｖ］
オペアンプＡ２のオフセット電圧：＋Ｖos［Ｖ］
オペアンプＡ３のオフセット電圧：＋Ｖos［Ｖ］
オペアンプＡ４のオフセット電圧：＋Ｖos［Ｖ］
上記のオフセット電圧を考慮した場合、各オペアンプの出力は以下のようになる。
【０１５４】
0004489871.tif 000002
ただし、Ｖ１＝Ｖ２
Ｒ１＝Ｒ２，Ｒ３＝Ｒ４
Ｒ５：積分抵抗、Ｃ：積分キャパシタ
ｔ：積分時間
センサパターンＳＪとＳＩとの出力が等しい（Ｖ１＝Ｖ２）ため、理想的にはオペアンプＡ４（積分器）の出力は０［Ｖ］となる。しかし、各オペアンプのオフセット電圧の影響で、上記のようにオペアンプＡ４の出力は「０」とはならない。すなわち、ビーム光の通過位置が理想的な位置にあったとしても、ビーム光通過位置検知器出力処理回路４０の出力は、ビーム光の位置がずれているという、誤った情報を出力することになる。
【０１５５】
たとえば、各定数が以下の場合、
Ｖos＝５［ｍＶ］
Ｒ２／Ｒ１＝Ｒ４／Ｒ５＝３
Ｒ５＝２２０［Ω］
Ｃ＝１５０［ｐＦ］
ｔ＝４０６［ｎｓ］
積分出力は約０．６１５［Ｖ］となる。これを、ビーム光位置情報に換算すると、約１．２３μｍとなる。
【０１５６】
上述したような、オペアンプのオフセットに起因するビーム光通過位置検知出力の誤情報出力の検出および補正方法については、ウインドウコンパレータを利用した別の実施の形態の説明において、後述する。
【０１５７】
図８は、ビーム光位置検知器出力処理回路４０におけるセンサパターンＳＬに対する積分器４２までの回路構成を例示している。
【０１５８】
図８において、センサパターン（フォトダイオード）ＳＬを流れる電流は、電流・電圧変換回路としてのオペアンプＡ３で増幅され、アナログスイッチＳＷ１を介して積分器４２に送られる。積分器４２は、オペアンプＡ４、積分抵抗Ｒ５、積分キャパシタＣ、積分器リセット用アナログスイッチＳＷ７、および保護抵抗Ｒ６によって構成されている。
【０１５９】
積分器４２の積分出力Ｖｏは、コンパレータ４３０に送られる。このコンパレータ４３０は、主制御部５１から与えられる比較基準値データ（デジタル）をＤＡＣ４３４でＤ／Ａ変換したしきい値Ｖｒと、積分出力Ｖｏとを比較し、比較結果をフリップフロップ回路４３２に送る。
【０１６０】
フリップフロップ回路４３２は積分開始から所定の時間経過後にコンパレータ４３０からの比較結果に応じた内容にセットされ、その出力（デジタルビット）Ｄ４３２を出力制御部５１に与える。
【０１６１】
出力制御部５１はこの出力Ｄ４３２に基づき比較基準値データを適宜修正してＤＡＣ４３４に与える。すると、コンパレータ４３０のしきい値Ｖｒは若干修正されて再度ＶｏとＶｒとの比較が行われる。
【０１６２】
この比較〜しきい値Ｖｒの修正のループを数回反復することにより、主制御部５１からの比較基準値データ（デジタル）は積分出力Ｖｏ（アナログ）に対応する内容となる。
【０１６３】
こうして積分出力ＶｏのＡ／Ｄ処理が終了すると、変換終了信号が主制御部５１に与えられる。主制御部５１は、変換終了信号を受けると、デジタル値に変換された積分出力Ｖｏ（たとえばビーム光量情報）を記憶するようになっている。
【０１６４】
図９は、この発明の一実施の形態に係るアナログ・デジタル処理部（Ａ／Ｄ処理部）の構成（図５、図６または図８の４３０、４３２、５１、４３４）の要部を取り出して示す回路図である。このＡ／Ｄ処理部は、従来のＡ／Ｄ変換器に取って代わる機能を発揮する。
【０１６５】
また、図１０は図９のコンパレータＣＭＰ０（図５のコンパレータ４３０に対応）の入出力関係を示し、図１１（ａ）〜図１１（ｆ）は図９に示すＡ／Ｄ処理部の要所の信号波形を示している。
【０１６６】
この実施形態の回路構成では、センサの受光量（あるいは２つのセンサの受光量の差分）が大きくなるほど積分器４２の積分出力Ｖｏの電位が＋側に向かって高くなるようになっている（Ｖｏの電位がセンサ受光量に比例）。
【０１６７】
図９において、積分回路４２に入力される信号が図５の差動増幅器６３の出力の場合は、積分対象は図３または図５のセンサパターンＳＪおよびＳＩのフォトダイオードで検知されたアナログ電圧となる。
【０１６８】
同様に、積分回路４２に入力される信号が差動増幅器６４の出力の場合は積分対象はセンサパターンＳＩおよびＳＨのアナログ電圧となり、積分回路４２に入力される信号が差動増幅器６５の出力の場合は積分対象はセンサパターンＳＨおよびＳＧのアナログ電圧となり、積分回路４２に入力される信号が差動増幅器６６の出力の場合は積分対象はセンサパターンＳＧおよびＳＦのアナログ電圧となる。
【０１６９】
また、積分回路４２のオペアンプＡ４に入力される信号が図５の増幅器６２または図８のオペアンプＡ３からの出力（差分出力ではない）である場合は、積分回路４２からの積分出力Ｖｏは、センサパターンＳＬで検知されたレーザ光量（パワー）を表すアナログ電圧となる。
【０１７０】
以上のことから、積分回路４２から出力される積分出力Ｖｏは、センサパターンＳＦ〜ＳＪ、ＳＬの検知結果のいずれか（１つまたは２つ）に対応したアナログ電圧となる。
【０１７１】
一方、図５、図６または図８の主制御部５１の内部ＣＰＵは、図５のビーム光位置検知器３８上における実際のビーム位置とそれに対応する積分出力Ｖｏとの相関を実験的に求めて決めた複数のしきい値データを、図５のメモリ５２（または図示しないＣＰＵ内部のメモリ）に持っている。
【０１７２】
これらの複数のしきい値データは、たとえば後述する図１２および図１３を例にとれば、Ｖｒ０〜Ｖｒ７とそれらを表すデジタルデータ（たとえば８ビットのヘキサデシマル値）に対応する。そして、主制御部５１のＣＰＵは、Ａ／Ｄ処理動作中、所定のタイミングで、これらのしきい値データを順次読み出せるようにプログラムされている。
【０１７３】
図５、図６または図８の積分器４２に相当する図９の積分回路４２は、図５の選択回路Ａからの積分リセット信号で一旦リセットされたあと、図５の選択回路４１または図６のアナログスイッチＳＷ１を介して入力される信号（たとえば図５の差動増幅器６３の差分出力）を、抵抗Ｒ５とキャパシタＣとの積で決まる時定数で、積分する。この積分により、パルス性のノイズあるいは高周波ノイズが取り除かれたアナログ電圧値が得られる。こうして得られた積分結果Ｖｏ（Ａ／Ｄ処理の対象となるアナログ電圧値）は、シングルコンパレータ（ＣＭＰ０）４３０の一方入力（ー）に与えられる。
【０１７４】
一方、図５、図６または図８の主制御部５１のＣＰＵは、最初は所定の初期比較基準値（コンパレータＣＭＰ０の初期しきい値）Ｖｒを暫定的に指定するデジタルデータ（ＢＭＤＡ）を、ＤＡＣ回路４３４のＤ／Ａ変換器ＤＡ０に与える。この暫定的な比較基準値（初期しきい値）Ｖｒとしては、たとえば図１２のＶｒ０（最も低いしきい値）に対応する値を採用できる。
【０１７５】
主制御部５１からのＤＡＣ選択信号ＤＡＳＣＯにより上記Ｄ／Ａ変換器ＤＡ０が選択され、このＤＡ０に主制御部５１からデータ書込パルスＤＡＷＲが与えられると、暫定的な比較基準値Ｖｒ（Ｖｒ０）に対応するデジタルデータ（ＢＭＤＡ；これを仮に演算結果と呼ぶことにする）がＤＡ０によりＤ／Ａ変換される。そして、アナログ電圧化した暫定的な比較基準値Ｖｒ（初期しきい値Ｖｒ０）がシングルコンパレータ（ＣＭＰ０）４３０の他方入力（＋）に与えられる。
【０１７６】
シングルコンパレータ（ＣＭＰ０）４３０は、図１０に示すように、Ｖｏ＞Ｖｒなららローレベル”０”のコンパレータ出力ＣＭＰＯＵＴを発生し、Ｖｏ＜Ｖｒならハイレベル”１”のコンパレータ出力ＣＭＰＯＵＴを発生するように構成されている。
【０１７７】
このコンパレータ出力ＣＭＰＯＵＴ（たとえばＶｏ＞Ｖｒでローレベル”０”）は、フリップフロップ回路４３２を構成するＤ型フリップフロップＦＦ０のＤ入力に与えられる（図１１（ｂ）のｔ２０）。
【０１７８】
このＤ型フリップフロップＦＦ０は、センサパターンＳＡの信号でクリアされたあと（図１１（ｅ）のｔ１０）、センサパターンＳＫまたはＳＭの検知信号の信号エッジでラッチされて（図１１（ｃ）のｔ３０）、そのときのＤ入力レベル（上記例ではＶｏ＞Ｖｒで”０”レベル）を取り込み（図１１（ｄ）のｔ３０）、取り込んだ論理レベルを次のクロックまで記憶する。
【０１７９】
ここで、積分回路４２に入力されるのが、たとえばセンサパターンＳＪおよびＳＩの差分出力であれば、Ｄ型フリップフロップＦＦ０は、センサパターンＳＫの信号エッジでラッチされ、そのときの比較結果（ビーム位置に関係したＤ入力レベル）を記憶する。
【０１８０】
また、積分回路４２に入力されるのがセンサパターンＳＬの出力であれば、Ｄ型フリップフロップＦＦ０は、センサパターンＳＭの信号エッジでラッチされ、そのときの比較結果（ビーム光量に関係したＤ入力レベル）を記憶する。
【０１８１】
Ｄ型フリップフロップＦＦ０に記憶された論理レベル（上記例ではＶｏ＞Ｖｒで”０”レベル）の出力Ｑは、インバータＩＮＶ０によりレベル反転され、フリップフロップ回路４３２の出力（デジタルビット）Ｄ４３２（”１”レベル）となって、主制御部５１に返される。
【０１８２】
ここで、主制御部５１は、最下流のセンサＳＰの出力をトリガとして、フリップフロップ回路４３２の出力データ（Ｄ４３２）を取り込む。
【０１８３】
主制御部５１のＣＰＵは、返されてきた出力Ｄ４３２（”１”レベル）に応答して、適宜、比較基準値Ｖｒを更新できる（たとえばＶｒ０→Ｖｒ１）。そして、更新した比較基準値Ｖｒ（Ｖｒ１）に対応するデータＢＭＤＡ（演算結果）を、ＤＡＣ回路４３４のＤＡ０に入力する。
【０１８４】
このＢＤＭＡをＤ／Ａ変換して得た新たな比較基準値Ｖｒ（Ｖｒ１）は、最初の暫定的な比較基準値Ｖｒ（Ｖｒ０）と異なる。このとき、コンパレータＣＭＰ０に入力された積分出力ＶｏよりＶｒが大きくなっておれば、コンパレータ出力ＣＭＰＯＵＴはハイレベル”１”となり、それ以前とは異なるデータ”１”がフリップフロップ回路４３２のＦＦ０に記憶される。
【０１８５】
記憶されたデータ”１”はインバータＩＮＶ０によりレベル反転され、出力Ｄ４３２（”０”レベル）となって、主制御部５１に返される（図１１（ａ）のＶｒへのフィードバックあるいは帰還）。
【０１８６】
主制御部５１のＣＰＵは、返されてきた出力Ｄ４３２（”０”レベル）に応答して比較基準値Ｖｒをさらに更新できる（たとえばＶｒ１→Ｖｒ２）。そして、更新した比較基準値Ｖｒ（Ｖｒ２）に対応するデータＢＭＤＡ（演算結果）を、ＤＡＣ回路４３４のＤＡ０に入力する。
【０１８７】
このＢＤＭＡをＤ／Ａ変換して得た新たな比較基準値Ｖｒ（Ｖｒ２）は、それ以前の比較基準値Ｖｒ（Ｖｒ１）と異なる。このとき、コンパレータＣＭＰ０に入力された積分出力ＶｏがＶｒよりも大きくなっておれば、コンパレータ出力ＣＭＰＯＵＴはローレベル”０”となり、それ以前とは異なるデータ”０”がフリップフロップ回路４３２のＦＦ０に記憶される。
【０１８８】
記憶されたデータ”０”はインバータＩＮＶ０によりレベル反転され、出力Ｄ４３２（”１”レベル）となって、主制御部５１に返される。
【０１８９】
以上のようにして、コンパレータＣＭＰ０におけるＶｏとＶｒ（可変）との比較結果をフリップフロップ回路４３２のＦＦ０に何度か繰り返しクロック入力する。そして、ＦＦ０に入力・記憶された論理レベルに基づいてＡ／Ｄ処理対象のアナログ値Ｖｏに対して比較基準値Ｖｒを変化（増減）させながら、Ｖｒの値をＶｏに接近させて行くことができる。
【０１９０】
上記繰り返し動作の結果得られた比較基準値Ｖｒとそれ以前の比較基準値Ｖｒとの違いが所定値以内に収まれば（あるいは上記繰り返し動作が所定回数反復実施されれば）、図９の構成におけるＡ／Ｄ処理動作は終了し（図１１（ｆ）のｔ４０）、主制御部５１のＣＰＵに記憶されたデジタルデータＢＤＭＡは変更されず、次のＡ／Ｄ処理動作まで保持される。
【０１９１】
こうして保持された比較基準値（コンパレータＣＭＰ０のしきい値）Ｖｒに対応するデジタル値ＢＤＭＡ（図１３の例で言えば７ＦＨまたは８０Ｈ）は、コンパレータＣＭＰ０に入力されたアナログ積分出力Ｖｏに対応するデジタル値（Ａ／Ｄ処理結果と解釈する）となる。
【０１９２】
上述した図９の回路動作の特徴を別の視点からみると、「アナログ入力Ｖｏが与えられると、Ｖｏ＝Ｖｒ（またはＶｏ≒Ｖｒ）となるように比較基準値（しきい値）Ｖｒに対応するデータＢＤＭＡをコントロールするデジタル帰還ループ」であるともいえる。
【０１９３】
この帰還ループの収束目標は、積分出力Ｖｏのアナログ値であり、実質的にＶｏ＝Ｖｒに収束したときのしきい値Ｖｒに対応するデジタル値（ＢＭＤＡ相当）が、アナログ入力Ｖｏに対するＡ／Ｄ処理出力となる。
【０１９４】
なお、後述するレーザビーム光の位置制御あるいはビーム光量（パワー）制御においては、積分出力Ｖｏに対応する値に収束したデジタル値が得られる以前の比較結果ＣＭＰＯＵＴ（または出力Ｄ４３２）が制御に利用されており、このような制御動作状態においては図９の構成は通常の意味でのＡ／Ｄ変換器と機能上同一視はできない。
【０１９５】
なお、図２に示されるポリゴンミラー３５の回転速度およびポリゴンミラー３５とビーム光位置検知器３８とドラム１５との間の幾何学的な位置関係は事前に分かっているので、検知器３８をレーザビームが通過してから（センサパターンＳＡの信号エッジ）次に再びレーザビームが検知器３８を通過するまで（センサパターンＳＡの次の信号エッジ）の時間間隔も事前に分かる。
【０１９６】
したがって、検知器３８をレーザビームが通過してから次にレーザビームが検知器３８を通過するまでの間に１回のＡ／Ｄ処理動作を終了させるとすれば、この終了のためにどのタイミングで図６、図８または図１１（ｆ）の変換終了信号を発生させれば良いのかも分かる。このことから、主制御部５１のＣＰＵは、センサパターンＳＡの信号エッジと自身の内部クロックカウンタ（図示せず）とを利用して、上記変換終了信号を内部生成することも可能である。
【０１９７】
ところで、図９のコンパレータＣＭＰ０で最初に比較動作が行われるときは、暫定的に設定した比較基準値（しきい値）Ｖｒと実際の積分出力Ｖｏとの食い違いが大きいことがままあり、その場合は最終的なＡ／Ｄ処理結果が求まるまでの上記Ｖｒのフィードバックループの処理回数も相対的に多くなる。
【０１９８】
しかし、一旦積分出力Ｖｏに対応した比較基準値ＶｒのデジタルデータＢＭＤＡが求まったあとは、そのデータは主制御部５１のＣＰＵが覚えている。最初のＡ／Ｄ処理後にわずかに変化した積分出力Ｖｏと既に覚えている比較基準Ｖｒ相当のデジタルデータＢＭＤＡとの食い違いは、２回目以降のＡ／Ｄ処理時では初めから小さいので、２回目以降のＡ／Ｄ処理結果が最終に求まるまでの上記帰還ループ回数は少なくなることが期待できる。このことは、反復されるＡ／Ｄ処理動作のうち２回目以降のＡ／Ｄ処理速度が実質的に高速化され得ることを意味する。
【０１９９】
ついでに付記しておくと、図３のビーム検知センサ３８０の横幅は１０ミリ以下の小さなものである。このセンサ３８０上を毎分６０枚以上で高精細な印字を行なうような高速レーザビームが通過する場合、ビームがセンサパターンＳＡを通過してからセンサパターンＳＫまたはＳＭを通過するまでの時間（図１１ではｔ１０〜ｔ３０）は数μｓを切る（場合によっては数１００ナノ秒オーダ）ようになる。
【０２００】
所定のＡ／Ｄ処理に関する１回の回路動作はこの短期間（場合によっては数１００ナノ秒オーダ）内に完了しなければならない。図９の回路構成ではこの回路動作はコンパレータＣＭＰ０とフリップフロップＦＦ０とインバータＩＮＶ０で行われるが、これらのデバイスはいずれも安価でありながら高速動作（遅くても数１０ナノ秒オーダ）が可能なので、図９の回路のＡ／Ｄ処理動作は十分に高速印字について行ける。
【０２０１】
図１２は、図５のセンサパターンＳＪおよびＳＩの間を通過するレーザビームの位置と、センサパターンＳＪおよびＳＩの差分に対応した積分出力Ｖｏ（アナログ）との関係を模式的に示す。図１２下方のセンサパターンの図示部分において、左右方向がセンサ上下方向（副走査方向）であり、レーザビームは図中縦方向に通過する。
【０２０２】
また、図１２において、横軸はビーム位置（μｍ単位）を示し、縦軸は積分出力（電圧）を示している。
【０２０３】
ビームがセンサパターンＳＪおよびＳＩの丁度中間を通過するときは、図１２上方に例示するように、センサパターンＳＪおよびＳＩの差分に対応した積分出力ＶｏはＶｒｅｆとなる。この中間位置よりもビーム通過位置がセンサパターンＳＩ側に相対的にずれれば積分出力Ｖｏは減少側に変化し、中間位置よりもビーム通過位置がセンサパターンＳＪ側に相対的にずれれば積分出力Ｖｏは増加側に変化する。
【０２０４】
すなわち、センサパターンＳＪおよびＳＩの積分出力Ｖｏは、ビーム位置の変化に応じて変化する。この変化は他のセンサパターンＳＦ〜ＳＩのペアについても同様である。したがって、積分出力Ｖｏの電圧変化を捉えれば、センサパターンＳＦ〜ＳＪに対するビーム通過位置の相対的な変化を捉えることができる。
【０２０５】
このビーム通過位置をたとえば８つのしきい値Ｖｒ０〜Ｖｒ７で代表させれば、しきい値Ｖｒ０〜Ｖｒ７のいずれかによりビーム通過位置を推定できる。
【０２０６】
たとえば図９の回路構成において、Ａ／Ｄ処理動作終了時に得られた比較基準値（コンパレータＣＭＰ０のしきい値）Ｖｒが図１２のＶｒ０に相当する値であれば、主制御部５１は、レーザビームがセンサパターンＳＩのほぼ中央を通過したであろうことを知ることができる。また、Ａ／Ｄ処理動作終了時に得られた比較基準値Ｖｒが図１２のＶｒ１に相当する値であれば、主制御部５１は、レーザビームがセンサパターンＳＪのほぼ中央を通過したであろうことを知ることができる。さらに、Ａ／Ｄ処理動作終了時に得られた比較基準値Ｖｒが図１２のＶｒ６またはＶｒ７に相当する値であれば、主制御部５１は、レーザビームがセンサパターンＳＩとセンサパターンＳＪの中間を通過したであろうことを知ることができる。
【０２０７】
Ａ／Ｄ処理動作終了時に得られた比較基準値Ｖｒが図１２のたとえばＶｒ５に相当する場合において、次にビーム光位置検知器３８上をレーザビームａが通過する際にレーザビームａがセンサパターンＳＩとセンサパターンＳＪの間を通過するようにしたい場合は、図５の主制御部５１のＣＰＵは、図１２のしきい値Ｖｒ６またはＶｒ７からＶｒ５までの差に相当するビーム通過路変化が生じるように、図５のガルバノミラー３３ａを制御することができる。
【０２０８】
同様に、他のビームｃ〜ｄに対しても、Ａ／Ｄ処理動作終了時に得られた比較基準値Ｖｒに基づいて、所望のビーム通過路変化が生じるように、図５のガルバノミラー３３ｂ〜３３ｄを制御できる。
【０２０９】
この実施の形態では、ビーム通過路の変更制御（ビーム光通過位置制御）は、ビーム光位置検知器３８の上方センサパターン位置（ＳＪ）側から開始し、順次下方センサパターン位置（ＳＦ）に向かって制御を進めて行くように構成される。
【０２１０】
図１３は、図９のＤＡＣ回路４３４から出力される比較基準値（シングルコンパレータＣＭＰ０のしきい値）Ｖｒが積分出力Ｖｏに対応してどのように変化するかを例示している。（図１３のしきい値Ｖｒ２〜Ｖｒ７は、図１２のしきい値Ｖｒ２〜Ｖｒ７と対応させて図示してある。図１３では、しきい値Ｖｒ０およびＶｒ１の図示は省略している。）
図１３の対応関係では、小さな付番のしきい値Ｖｒ（Ｖｒ２、Ｖｒ３）を積分出力Ｖｏの上下端（大電圧と小電圧）に割り振り、大きな付番のしきい値Ｖｒ（Ｖｒ６、Ｖｒ７）を積分出力Ｖｏの中間に割り振っている。
【０２１１】
次に、図１４〜図１７のフローチャートを参照して、図９のシングルコンパレータ４３０（図５のコンパレータ４３０に対応）の回路動作を利用したビーム光通過位置制御（副走査方向のビーム位置制御）の方法を説明する。
【０２１２】
なお、このコンパレータ利用の回路動作は、一般的なＡ／Ｄ変換の動作概念に捕らわれるべきでなく、より広範な意味でデジタル制御の一部をなすものと捉えた方がよい。
【０２１３】
これから説明するビーム光通過位置制御の目的は、所定のレーザビームａが、最終的に、たとえば図１２のＡ４エリア（図３のセンサ３８０のセンサパターンＳＪとＳＩの中間）を通過するようにすることである。また、以下の説明では、このビーム光通過位置制御は、センサ上方（センサパターンＳＪ側）から開始されるものとする。
【０２１４】
図１４において、まず、たとえば図５の主制御部５１の内部ＣＰＵ（以下単にＣＰＵとする）は、レーザビームａがセンサ上方（センサパターンＳＪ側）を通過するように、図２または図５のガルバノミラー駆動回路３９ａに指示する（ステップＳＴ４００）。
【０２１５】
次に図２または図５のポリゴンモータドライバ３７に指示を出してポリゴンモータ３６を起動し、ポリゴンミラー３５を所定の回転数で回転させる。
【０２１６】
そしてレーザドライバ３２ａに所定の光量（パワー）でレーザ３１ａを強制発光させ（ステップＳＴ４０２）、レーザビームａをポリゴンミラー３５側に放射させる。これにより、所定パワーのレーザビームａが、図２のビーム光位置検知器３８上および感光体ドラム１５上を、所定の速度で通過するようになる。
【０２１７】
続いて、図９のＤＡＣ回路４３４に所定のデータＢＭＤＡ（たとえばヘキサデシマル表示でＢ３Ｈ）を与え、コンパレータＣＭＰ０の比較基準値（初めのしきい値）Ｖｒを、たとえば図１２のＶｒ１に設定する（ステップＳＴ４０４）。
【０２１８】
次に、ＣＰＵは、センサ３８０上におけるビームａの通過位置がＸ０（μｍ）だけ下（センサパターンＳＦ側）にシフトするように、ガルバノミラー３３ａを微動させる（ステップＳＴ４０６）。このＸ０は、ガルバノミラー３３ａの１ステップ移動量であり、図１２のＡ１Ｕエリアを飛び越えない程度の微少量に設定される。具体的には、Ｘ０はＡ１Ｕの幅よりも小さい値、たとえば３０μｍ程度に設定される。
【０２１９】
上記状態で、図９の積分器４２から得られた積分出力Ｖｏと初期しきい値Ｖｒ＝Ｖｒ１との比較が、図９のコンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４０８）。
【０２２０】
上記状態でＶｏ＜Ｖｒ１でありその比較結果ＣＭＰＯＵＴが”１”であれば（ステップＳＴ４１０ノー）、この論理レベル”１”が図９のＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルが図９のインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ１に対応する位置より上（図１２ではＡ１Ｕの範囲外左側）にあることを知る。
【０２２１】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”０”であれば（ステップＳＴ４１２ノー）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ１に対応する位置より下（Ａ１Ｕの範囲内）にあると知らされる。
【０２２２】
しかし、この結果（ステップＳＴ４１２ノー）は先の結果（ステップＳＴ４１０ノー）と矛盾するので、エラーとなり、図１４の処理は終了（または中断）する。
【０２２３】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”１”であれば（ステップＳＴ４１２イエス）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ１に対応する位置より上（Ａ１Ｕの範囲外）にあると知らされる。
【０２２４】
この結果（ステップＳＴ４１２イエス）は先の結果（ステップＳＴ４１０ノー）と矛盾しないので、ビームａをさらに下側に下げる処理に戻る（ステップＳＴ４０６）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ１のままとなっている。
【０２２５】
ここで、ビームａの位置がＡ１Ｕの範囲内にあるかＡ１Ｕの範囲外にあるかは、コンパレータＣＭＰ０の比較結果ＣＭＰＯＵＴの論理レベルで判定できる。
【０２２６】
すなわち、ビームａの位置がＡ１Ｕの範囲外にある場合（ＣＭＰＯＵＴ＝”１”）、ＣＰＵは、センサ３８０上におけるビームａの通過位置がＸ０（μｍ）だけ下（センサパターンＳＦ側）にシフトするように、ガルバノミラー３３ａを微動させる（ステップＳＴ４０６）。
【０２２７】
以上の動作（ＳＴ４０６〜ＳＴ４１２）は、ビームａがＡ１Ｕの範囲内を通過するようになるまで、反復される。
【０２２８】
ステップＳＴ４０６でビームａの位置をさらにＸ０μｍ下げたあとの比較において、Ｖｏ＞Ｖｒ１でありその比較結果ＣＭＰＯＵＴが”０”となれば（ステップＳＴ４１０イエス）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａがＶｒ１に対応する位置（Ａ１Ｕの範囲内）を通過することを知る。
【０２２９】
こうしてビームａがＶｒ１に対応する位置（Ａ１Ｕの範囲内）を通過するようになれば、ＣＰＵは、センサ３８０上におけるビームａの通過位置がＸ１（μｍ）だけ下（センサパターンＳＦ側）にシフトするように、ガルバノミラー３３ａを微動させ（ステップＳＴ４１４）、図１５の処理に移る。
【０２３０】
図１５において、ＣＰＵは、ＤＡＣ回路４３４に新たなデータＢＭＤＡ（たとえばヘキサデシマル表示でＡ６Ｈ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ２に設定する（ステップＳＴ４１６）。
【０２３１】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ２との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４１８）。
【０２３２】
上記状態でＶｏ＞Ｖｒ２でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４２０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ２に対応する位置より上（図１２のエリアＡ２の範囲外）にあることを知る。
【０２３３】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４２２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ２に対応する位置より下（Ａ２の範囲内）にあると知らされる。
【０２３４】
しかし、この結果（ステップＳＴ４２２ノー）は先の結果（ステップＳＴ４２０ノー）と矛盾するので、エラーとなり、図１５の処理は終了（または中断）する。
【０２３５】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４２２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ２に対応する位置より上（Ａ２の範囲外）にあると知らされる。
【０２３６】
この結果（ステップＳＴ４２２イエス）は先の結果（ステップＳＴ４２０ノー）と矛盾しないので、ビームａをさらに下側にＸ１μｍ下げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４２４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ２のままとなっている。
【０２３７】
以上の動作（ＳＴ４１８〜ＳＴ４２４）は、ビームａの通過位置がＡ２の範囲内に入ってくるまで反復される。
【０２３８】
ステップＳＴ４２４でビームａの位置をさらにＸ１μｍ下げたあとの比較において、Ｖｏ＜Ｖｒ２でありその比較結果ＣＭＰＯＵＴが”１”となれば（ステップＳＴ４２０イエス）、この論理レベル”１”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａがＶｒ２に対応する位置（Ａ２の範囲内の片側を見ている）を通過することを知る。
【０２３９】
こうしてビームａがＶｒ２に対応する位置（Ａ２の範囲内）を通過するようになれば、ＣＰＵは、ＤＡＣ回路４３４に再び新たなデータＢＭＤＡ（たとえばヘキサデシマル表示で５９Ｈ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ３に設定する（ステップＳＴ４２６）。
【０２４０】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ３との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４２８）。
【０２４１】
上記状態でＶｏ＞Ｖｒ２でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４３０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ３に対応する位置より下（Ａ２の範囲外）にあることを知る。
【０２４２】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４３２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ３に対応する位置より上（Ａ２の範囲内）にあると知らされる。
【０２４３】
しかし、この結果（ステップＳＴ４３２ノー）は先の結果（ステップＳＴ４３０ノー）と矛盾するので、エラーとなり、図１５の処理は終了（または中断）する。
【０２４４】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４３２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ３に対応する位置より下（Ａ２の範囲外）にあると知らされる。
【０２４５】
この結果（ステップＳＴ４３２イエス）は先の結果（ステップＳＴ４３０ノー）と矛盾しないので、ビームａを上側にＸ１μｍ上げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４３４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ３のままとなっている。
【０２４６】
ここで、ステップＳＴ４３４での移動量Ｘ１μｍはステップＳＴ４２４での移動量Ｘ１μｍと実際上は異なっていてもよい。
【０２４７】
以上の動作（ＳＴ４１８〜ＳＴ４３４）において、ステップＳＴ４１８〜ＳＴ４２４で「Ａ２範囲内の一方側のビーム通過」を制御し、ステップＳＴ４２８〜ＳＴ４３４で「Ａ２範囲内の他方側のビーム通過」を制御する。
【０２４８】
以上の動作（ＳＴ４１８〜ＳＴ４３４）は、ビームａの通過位置（Ａ２の範囲内の両側を見ている）がＡ２の範囲内に入ってくるまで反復される。
【０２４９】
こうしてビームａがＶｒ２およびＶｒ３に対応する範囲内（図１２のエリアＡ２の範囲内）の何処かの位置を通過するようになれば（ステップＳＴ４３０イエス）、図１６の処理に移る。
【０２５０】
続いて、図１６において、ＣＰＵは、ＤＡＣ回路４３４へさらに新たなデータＢＭＤＡ（たとえばヘキサデシマル表示で９０Ｈ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ４に設定する（ステップＳＴ４３６）。
【０２５１】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ４との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４３８）。
【０２５２】
上記状態でＶｏ＞Ｖｒ４でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４４０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ４に対応する位置より上（Ａ３の範囲外）にあることを知る。
【０２５３】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４４２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ４に対応する位置より下（Ａ３の範囲内）にあると知らされる。
【０２５４】
しかし、この結果（ステップＳＴ４４２ノー）は先の結果（ステップＳＴ４４０ノー）と矛盾するので、エラーとなり、図１６の処理は終了（または中断）する。
【０２５５】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４４２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ４に対応する位置より上（Ａ３の範囲外）にあると知らされる。
【０２５６】
この結果（ステップＳＴ４４２イエス）は先の結果（ステップＳＴ４４０ノー）と矛盾しないので、ビームａをさらに下側にＸ２μｍ下げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４４４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ４のままとなっている。
【０２５７】
以上の動作（ＳＴ４３８〜ＳＴ４４４）は、ビームａの通過位置がＡ３の範囲内に入ってくるまで反復される。
【０２５８】
ステップＳＴ４４４でビームａの位置をさらにＸ２μｍ下げたあとの比較において、Ｖｏ＜Ｖｒ４でありその比較結果ＣＭＰＯＵＴが”１”となれば（ステップＳＴ４４０イエス）、この論理レベル”１”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａがＶｒ４に対応する位置（Ａ３の範囲内の片側を見ている）を通過することを知る。
【０２５９】
こうしてビームａがＶｒ４に対応する位置（Ａ３の範囲内）を通過するようになれば、ＣＰＵは、ＤＡＣ回路４３４に再び新たなデータＢＭＤＡ（たとえばヘキサデシマル表示で６ＦＨ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ５に設定する（ステップＳＴ４４６）。
【０２６０】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ５との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４４８）。
【０２６１】
上記状態でＶｏ＞Ｖｒ５でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４５０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ５に対応する位置より下（Ａ３の範囲外）にあることを知る。
【０２６２】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４５２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ５に対応する位置より上（Ａ３の範囲内）にあると知らされる。
【０２６３】
しかし、この結果（ステップＳＴ４５２ノー）は先の結果（ステップＳＴ４５０ノー）と矛盾するので、エラーとなり、図１６の処理は終了（または中断）する。
【０２６４】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４５２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ５に対応する位置より下（Ａ３の範囲外）にあると知らされる。
【０２６５】
この結果（ステップＳＴ４５２イエス）は先の結果（ステップＳＴ４５０ノー）と矛盾しないので、ビームａを上側にＸ２μｍ上げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４５４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ５のままとなっている。
【０２６６】
ここで、ステップＳＴ４５４での移動量Ｘ２μｍはステップＳＴ４４４での移動量Ｘ２μｍと実際上は異なっていてもよい。
【０２６７】
以上の動作（ＳＴ４３８〜ＳＴ４５４）において、ステップＳＴ４３８〜ＳＴ４４４で「Ａ３範囲内の一方側のビーム通過」を制御し、ステップＳＴ４４８〜ＳＴ４５４で「Ａ３範囲内の他方側のビーム通過」を制御する。
【０２６８】
以上の動作（ＳＴ４３８〜ＳＴ４５４）は、ビームａの通過位置（Ａ３の範囲内の両側を見ている）がＡ３の範囲内に入ってくるまで反復される。
【０２６９】
こうしてビームａがＶｒ４およびｖｒ５に対応する範囲内（Ａ３の範囲内）の何処かの位置を通過するようになれば（ステップＳＴ４５０イエス）、図１７の処理に移る。
【０２７０】
続いて、図１７において、ＣＰＵは、ＤＡＣ回路４３４へさらに新たなデータＢＭＤＡ（たとえばヘキサデシマル表示で８５Ｈ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ６に設定する（ステップＳＴ４５６）。
【０２７１】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ６との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４５８）。
【０２７２】
上記状態でＶｏ＞Ｖｒ６でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４６０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ６に対応する位置より上（Ａ４の範囲外）にあることを知る。
【０２７３】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４６２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ６に対応する位置より下（Ａ４の範囲内）にあると知らされる。
【０２７４】
しかし、この結果（ステップＳＴ４６２ノー）は先の結果（ステップＳＴ４６０ノー）と矛盾するので、エラーとなり、図１７の処理は終了（または中断）する。
【０２７５】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４６２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ６に対応する位置より上（Ａ４の範囲外）にあると知らされる。
【０２７６】
この結果（ステップＳＴ４６２イエス）は先の結果（ステップＳＴ４６０ノー）と矛盾しないので、ビームａをさらに下側にＸ３μｍ下げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４６４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ６のままとなっている。
【０２７７】
以上の動作（ＳＴ４５８〜ＳＴ４６４）は、ビームａの通過位置がＡ４の範囲内に入ってくるまで反復される。
【０２７８】
ステップＳＴ４６４でビームａの位置をさらにＸ３μｍ下げたあとの比較において、Ｖｏ＜Ｖｒ６でありその比較結果ＣＭＰＯＵＴが”１”となれば（ステップＳＴ４６０イエス）、この論理レベル”１”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａがＶｒ６に対応する位置（Ａ４の範囲内の片側を見ている）を通過することを知る。
【０２７９】
こうしてビームａがＶｒ６に対応する位置（Ａ４の範囲内）を通過するようになれば、ＣＰＵは、ＤＡＣ回路４３４に再び新たなデータＢＭＤＡ（たとえばヘキサデシマル表示で７ＡＨ）を与え、コンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒを、図１２または図１３のＶｒ７に設定する（ステップＳＴ４６６）。
【０２８０】
上記状態で、積分器４２から得られた積分出力Ｖｏと新たなしきい値Ｖｒ＝Ｖｒ７との比較が、コンパレータＣＭＰ０によりなされる。ＣＰＵは、この比較結果ＣＭＰＯＵＴに対応する出力Ｄ４３２を読み込む（ステップＳＴ４６８）。
【０２８１】
上記状態でＶｏ＞Ｖｒ７でありその比較結果ＣＭＰＯＵＴが”０”であれば（ステップＳＴ４７０ノー）、この論理レベル”０”がＤ型フリップフロップＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ７に対応する位置より下（Ａ４の範囲外）にあることを知る。
【０２８２】
続いて、コンパレータＣＭＰ０の比較結果を再チェックし、その比較結果ＣＭＰＯＵＴがもし”１”であれば（ステップＳＴ４７２ノー）、この論理レベル”１”がＦＦ０に読み込まれ、そのＱ出力が”１”レベルになる。この”１”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”０”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ７に対応する位置より上（Ａ４の範囲内）にあると知らされる。
【０２８３】
しかし、この結果（ステップＳＴ４７２ノー）は先の結果（ステップＳＴ４７０ノー）と矛盾するので、エラーとなり、図１７の処理は終了（または中断）する。
【０２８４】
上記比較結果の再チェックにおいてＣＭＰＯＵＴが”０”であれば（ステップＳＴ４７２イエス）、この論理レベル”０”がＦＦ０に読み込まれ、そのＱ出力が”０”レベルになる。この”０”レベルがインバータＩＮＶ０で反転されたＤ４３２＝”１”を検知することにより、ＣＰＵは、ビームａのビーム位置がＶｒ７に対応する位置より下（Ａ４の範囲外）にあると知らされる。
【０２８５】
この結果（ステップＳＴ４７２イエス）は先の結果（ステップＳＴ４７０ノー）と矛盾しないので、ビームａを上側にＸ３μｍ上げる処理（ガルバノミラーの微動処理）に移る（ステップＳＴ４７４）。このときはまだ、コンパレータＣＭＰ０の比較基準値（しきい値）はＶｒ７のままとなっている。
【０２８６】
ここで、ステップＳＴ４７４での移動量Ｘ３μｍはステップＳＴ４６４での移動量Ｘ３μｍと実際上は異なっていてもよい。
【０２８７】
以上の動作（ＳＴ４５８〜ＳＴ４７４）において、ステップＳＴ４５８〜ＳＴ４６４で「Ａ４範囲内の一方側のビーム通過」を制御し、ステップＳＴ４６８〜ＳＴ４７４で「Ａ４範囲内の他方側のビーム通過」を制御する。
【０２８８】
以上の動作（ＳＴ４５８〜ＳＴ４７４）は、ビームａの通過位置（Ａ４の範囲内の両側を見ている）が極狭いＡ４の範囲内に入ってくるまで反復される。
【０２８９】
こうしてビームａがＶｒ６およびｖｒ７に対応する範囲内（Ａ４の範囲内）の何処かの位置を通過するようになれば（ステップＳＴ４７０イエス）、図１７の処理は終了し、他の処理へ移れる状態となる。
【０２９０】
すなわち、図１４〜図１７のフローチャートに対応するプログラムを実行するＣＰＵは、コンパレータＣＭＰ０（図５のコンパレータ４３０に対応）のしきい値を変更しながら、ビームａ（図５のレーザ３１ａからのレーザビームに対応）が通過するエリアを図１２のＡ１Ｕ／Ａ１Ｌ→Ａ２→Ａ３と順に狭めて行く制御動作を反復する。これにより、最終的にビームａが狭いエリアＡ４を通過するようにガルバノミラーが調整（デジタル制御）される。
【０２９１】
以上の説明はマルチビームのうちの１本（ビームａ）についての説明であるが、残りのビーム（ビームｂ〜ｄ）についても同様な制御が行われる。
【０２９２】
その結果、各ビーム（ａ〜ｄ）は、たとえば図３のセンサパターンＳＦ〜ＳＪの物理的配置に対応した所定間隔（ピッチ）の並行マルチビームとなって、図２の感光体ドラム１５上を正確に高速走査できるようになる。
【０２９３】
なお、図１４でのビーム位置修正量Ｘ０は比較的多め（たとえば３０μｍ程度）に選ばれ、図１５でのビーム位置修正量Ｘ１はＸ０より少な目（たとえば２０μｍ程度）に選ばれ、図１６でのビーム位置修正量Ｘ２はＸ１よりさらに少な目（たとえば１０μｍ程度）に選ばれ、最後の図１７でのビーム位置修正量Ｘ３はＸ２よりずっと少な目（たとえば１μｍ程度）に選ばれる。このようにするのは、ビームａが制御目標位置から離れているときは荒いが大きく（素早く）位置移動ができるようにするとともに、ビームａが制御目標位置に近づいたときは細かく（精密に）位置制御ができるようにするためである。
【０２９４】
また、図１４〜図１７のフローチャートに対応するプログラムが実行されたあとに得られたしきい値データ（図９のＤＡＣ回路４３４に入力される演算結果ＢＭＤＡ）は、そのきのビームａの通過位置を示すアナログ積分出力Ｖｏのデジタル値（図１３の例では７ＦＨまたは８０Ｈ）に対応している。
【０２９５】
つまり、図９の回路構成は、アナログ値Ｖｏに対応したデジタル値（この例では７ＦＨまたは８０Ｈ）を提供するＡ／Ｄ機能を有することになる。しかし、図９の回路構成は、デバイスレベルでみれば高価なＡ／Ｄ変換器を必要としていない（Ｄ／Ａ変換器は同程度の速度・分解能のＡ／Ｄ変換器よりもずっと安価に入手できる）。
【０２９６】
図１８は、レーザパワーの検知特性とコンパレータ（４３０またはＣＭＰ０）の比較基準値（しきい値）Ｖｒとの対応関係を例示している。
【０２９７】
この例において、レーザパワーを検知する場合には、積分出力Ｖｏは、コンパレータのあるしきい値（たとえばＶｒ＝２．５Ｖ）を基準として上側にしか出力されないようにしている。この場合は、コンパレータのしきい値も基準電圧より上側で設定される。
【０２９８】
具体的には、図１８に示すグラフのしきい値の電圧軸上で、Ｖｂｏを＋２．５Ｖ、Ｖｔ０を＋５Ｖとした場合に、しきい値が２．５Ｖ〜５Ｖの間でレーザパワーＰ０〜Ｐ６が設定されるようにしている。すなわち、Ｖｒ０がレーザパワーＰ０μＷに対応し、Ｖｒ１がレーザパワーＰ１μＷに対応している。以下同様に、Ｖｒ２〜Ｖｒ６がレーザパワーＰ２〜Ｐ６にそれぞれ対応している。
【０２９９】
換言すれば、図１８の関係から、しきい値Ｖｒ０〜Ｖｒ６の値（Ｖ）を特定することにより対応するレーザパワーＰ０〜Ｐ６の値（μＷ）も特定される。
【０３００】
図３または図５のセンサパターンＳＬによるレーザ光量（レーザパワー）の検知結果に対する積分出力Ｖｏが図９の構成で利用される場合、レーザパワーＰ０〜Ｐ６とコンパレータＣＭＰ０の比較基準値（しきい値）Ｖｒ０〜Ｖｒ６との対応関係として、図１８に示すような関係を利用できる。（ここで、レーザパワー検知に関する図１８のＶｒ０〜Ｖｒ６とレーザビーム位置検知に関する図１２のＶｒ０〜Ｖｒ７とでは、同じ記号でもその値の取り方は異なっていることを断っておく。）
図１９は、図３のセンサパターンＳＬで検知されるレーザパワーと対応する積分出力との対応関係を例示している。この対応関係は、基本的には、図９のシングルコンパレータ使用時の場合と後述する図３５のウインドウコンパレータ使用時の場合とで、違いはない。
【０３０１】
レーザパワーは、図３または図５のセンサパターンＳＬでの検知光量に対応する積分出力データを主制御部５１に取り込むことにより、ＣＰＵ処理によって検知できる。
【０３０２】
上記ＣＰＵ処理を含むパワー検知部は、たとえば図１９に示すような特性となるように調整される。すなわち、レーザパワー３００μＷのレーザビームを所定の速度でビーム光位置検知器３８のセンサ３８０上を走査させたときに、積分出力が３．５Ｖ（＝２．５Ｖ＋１．０Ｖ；１．０Ｖは所定の増分）となるように、予め調整されている。
【０３０３】
図１９の特性データ（積分出力電圧とレーザパワーとの対応関係のデータ）は、たとえば図５の装置の工場出荷時までに、主制御部５１に接続されたメモリ５２に格納される。
【０３０４】
次に、図９のシングルコンパレータ（ＣＭＰＯ）４３０を利用したレーザ光量制御（レーザパワー制御あるいはビーム光パワー制御）について説明する。
【０３０５】
レーザ光量制御には、あるレーザビームを所望の光量（パワー）に調整する制御（非相対値制御）と、基準となるレーザビームの光量（パワー）にその他のレーザビームの光量（パワー）を合わせる制御（相対値制御）との２種類がある。
【０３０６】
前者のレーザパワー制御（非相対値制御）は図１４〜図１７を参照して説明したようなビーム光通過位置制御の前に実行される。
【０３０７】
一方、後者のレーザパワー制御（相対値制御）は、マルチビームを利用した実際の画像形成の前に実行される。
【０３０８】
上記いずれのレーザパワー制御も、図５または図８の主制御部５１の内部ＣＰＵにより実行できる。
【０３０９】
図２０は、レーザパワーを所定のしきい値Ｖｒ６に対応する値に制御する場合の、シングルコンパレータのしきい値変化の一例を示す。
【０３１０】
図２０において、Ｖｂ０が基準電圧（前記Ｖｒ＝２．５Ｖ）に相当し、Ｖｔ０が積分出力の最大値である＋５．０Ｖに相当するものと仮定する。
【０３１１】
いま、しきい値Ｖｒ６で示される所望のレーザパワーの上限をＰＨ６（μＷ）とし、その下限をＰＬ６（μＷ）とする。この場合、レーザパワーをＰＬ６（μＷ）からＰＨ６（μＷ）の間に制御する場合には、コンパレータのしきい値を、Ｖｒ０→Ｖｒ１→Ｖｒ２→Ｖｒ３→Ｖｒ４→Ｖｒ５→Ｖｒ６と順に設定して行き、積分器４２の積分出力（レーザ光量またはレーザパワー）Ｖｏが、最終的に所望のしきい値の間（ＰＬ６μＷ相当のしきい値とＰＨ６μＷ相当のしきい値との間）に入るように、レーザパワーを調整する。
【０３１２】
なお、図２０に例示されたしきい値のヘキサデシマル値は図１３に例示されたレーザ指示値とは独立別個に想定しているので、図２０と図１３との間でヘキサデシマル値としきい値との関係は異なる。このため、たとえば図２０のＶｒ６の３３Ｈが図１３の７ＦＨあるいは８０Ｈに対応すると考えてもよい。
【０３１３】
また、図２０のしきい値と図１８のしきい値は独立別個に想定しているので、図２０に例示されたＶｒ０〜Ｖｒ６は図１８に例示されたＶｒ０〜Ｖｒ６と同じではない。
【０３１４】
さらに、図２０では、しきい値Ｖｒ０以下の領域Ｌ０内でしきい値制御が行われる場合が例示されているが、同様なしきい値制御をＶｒ０以上の領域Ｕ０内で行なうこともできる。
【０３１５】
以下、図２０および図２１〜２４を参照しながら、ビーム光制御用パワー制御について説明する。この制御では、最終的にレーザパワーが図３のセンサ３８０の面上でみて３００μＷになるように、レーザ光量が調整されることを想定している。
【０３１６】
通常、この発明が利用される画像形成装置では、各レーザは、工場出荷時に、所定の指示値（ヘキサデシマルで示した８ビットデータ）で、たとえば３００μＷのレーザ発光がなされるよう、予め調整される。予め調整されているのであるから、レーザ発光光量の制御は必要ないと思われそうであるが、次の理由で、この制御が必要となる。
【０３１７】
すなわち、ポリゴンミラーは装置内で周辺から遮蔽されない状態で高速回転している。このため、時間の経過とともに、光学ユニット１３内の塵や埃などによっポリゴンミラー３５の反射面（ミラー面）が汚れてくる。このミラー面が汚れると、そこで反射されるレーザビームの損失が増え、センサ３８０面上に照射されるレーザビーム光量が小さくなり、所望のセンサ出力が得られなくなる。
【０３１８】
あるいは、制御回路系の動作環境（温度等）の変化あるいは回路部品の経時特性変化その他に起因して、積分器４２から同じ積分出力電圧が得られていても、画像形成に実際に使用されるレーザパワーが工場出荷時の調整値（３００μＷ）より大きくなってしまう（あるいは小さくなってしまう）可能性もある。
【０３１９】
つまり、予め調整されたレーザ発振器の状態をそのまま基準にすると、ポリゴンミラー３５の汚れや動作環境変化などにより、センサ３８０面上で所望のレーザビーム光量が得られなくなる可能性がある。そうすると、ビーム通過位置制御を正常に実行できなくなる恐れが生じる。
【０３２０】
以上のことから、たとえレーザ発光光量（レーザパワー）が工場出荷時に予め所定値（３００μＷ）に調整されていたとしても、実使用時には、センサ面上で必要なレーザ光量が得られるように、レーザ発光光量の制御が、適宜必要になる。
【０３２１】
なお、図２０の例では、レーザパワーの制御目標を、ＰＬ６（レーザパワーＰ６の許容下限）＜３００μＷ＜ＰＨ６（レーザパワーＰ６の許容上限）と仮定している。すなわち、積分器４２の出力Ｖｏが、コンパレータ（ＣＭＰ０）４３０のしきい値Ｖｒ４（たとえばヘキサデシマル値３４Ｈに対応するＰＨ６）とＶｒ６（たとえばヘキサデシマル値３３Ｈに対応するＰＬ６）とで囲まれたＵ６（ＰＬ６からＰＨ６までを許容範囲として含むレーザパワーＰ６に対応）の領域に属するように、レーザ発振器への指示値を調整する。
【０３２２】
こうして、たとえばポリゴンミラー３５のレーザ反射面に汚れが生じてもセンサ３８０面上で３００μＷ相当のレーザ光量が得られるようにすることが、図２１〜図２４のビーム光制御用パワー制御の目標である。
【０３２３】
図２１〜図２４は、レーザパワーの制御（ビーム光制御用パワー制御）を、図５および図９の構成（シングルコンパレータ利用）を利用して行なう場合を説明するフローチャートである。
【０３２４】
図２１において、まず、所望のレーザ（第１レーザ）を所定の値（指示値）で発光させる（ステップＳＴ５００）。すなわち、第１レーザのレーザドライバ（たとえば図５の３２ａ）に、所定の指示値を設定し、センサ３８０の面上で約３００μＷの光量となるようレーザ発光させる。
【０３２５】
ここで、レーザパワーの検知に図８の構成が利用されるとすれば、レーザパワーが大きくフォトダイオードＳＬ（センサ３８０の一部）の電流が大きいと、オペアンプＡ３の出力電圧Ｖ３も大きくなる。そうすれば、検知されるレーザパワーに比例して電位が上昇する積分出力Ｖｏが得られる。
【０３２６】
次に、図９のコンパレータＣＭＰ０のしきい値ＶｒをＶｒ０（Ｖ）＝４０Ｈに設定し（ステップＳＴ５０２）、コンパレータＣＭＰ０の出力を読み込む（ステップＳＴ５０４）。そして、設定されたしきい値Ｖｒ＝Ｖｒ０（４０Ｈ）および検知されたレーザパワーに対応する積分出力Ｖｏに基づき、レーザパワーの大小について判定が行われる（ステップＳＴ５０６）。
【０３２７】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ０（Ｖｏ＞Ｖｒ＝４０Ｈ）：３７４〜７５０μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ０（Ｖｏ＜Ｖｒ＝４０Ｈ）：    ０〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５０６ノー；ステップＳＴ５０８イエス）は、設定値４０Ｈよりも実際のレーザパワーが大きいので、レーザドライバ３２ａへの指示値を下げてレーザパワーを小さくし（ステップＳＴ５１０）、再度判定を行なう（ステップＳＴ５０４、ＳＴ５０６）。
【０３２８】
この工程（ステップＳＴ５０２〜ＳＴ５１０）でのレーザパワー増減量は、たとえば１８０μＷ程度とする。
【０３２９】
なお、ステップＳＴ５０６でノー、ステップＳＴ５０８でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３３０】
以下、積分出力Ｖｏが目標の領域（Ｌ０）に入るまで、上記の動作が繰り返えされる。
【０３３１】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５０６イエス）は、次のステップへ移る。
【０３３２】
次の工程（ステップＳＴ５１２〜ＳＴ５２２）でのレーザパワー増減量は、図２０の領域Ｕ０、Ｌ０における増減量よりも小さい値、たとえば１８０μＷのおよそ半分の９０μＷ程度とする。
【０３３３】
すなわち、レーザパワー増減量がおよそ９０μＷとなるようにコンパレータＣＭＰ０での比較基準値を再度設定し（ステップＳＴ５１２）、コンパレータＣＭＰ０のしきい値Ｖｒを、再設定された値（２０Ｈ）に対応するしきい値Ｖｒ１に変更する（ステップＳＴ５１４）。そして、コンパレータＣＭＰ０の出力を読み込み（ステップＳＴ５１６）、再度判定を行なう（ステップＳＴ５１８）。
【０３３４】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ１（Ｖｏ＞Ｖｒ＝２０Ｈ）：１８５〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ１（Ｖｏ＜Ｖｒ＝２０Ｈ）：    ０〜１８５μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
すなわち、コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５１８ノー；ステップＳＴ５２０イエス）は、設定値２０Ｈよりも実際のレーザパワーが小さいので、レーザドライバ３２ａへの指示値を上げてレーザパワーを大きくし（ステップＳＴ５２２）、再度判定を行なう（ステップＳＴ５１６、ＳＴ５１８）。
【０３３５】
なお、ステップＳＴ５１８でノー、ステップＳＴ５２０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３３６】
以下、積分出力Ｖｏが目標の領域（Ｕ１）に入るまで、上記の動作が繰り返えされる。
【０３３７】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５１８イエス）は、図２２の処理へ移る。
【０３３８】
図２１の工程終了後、図２２の処理において、コンパレータＣＭＰ０のしきい値ＶｒをＶｒ２（Ｖ）＝３０Ｈに設定し（ステップＳＴ５２４）、コンパレータＣＭＰ０の出力を読み込む（ステップＳＴ５２６）。そして、設定されたしきい値Ｖｒ＝Ｖｒ２（３０Ｈ）および検知されたレーザパワーに対応する積分出力Ｖｏに基づき、レーザパワーの大小について判定が行われる（ステップＳＴ５２８）。
【０３３９】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ２（Ｖｏ＞Ｖｒ＝３０Ｈ）：２８０〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ２（Ｖｏ＜Ｖｒ＝３０Ｈ）：１８５〜２８０μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５２８ノー；ステップＳＴ５３０イエス）は、設定値３０Ｈよりも実際のレーザパワーが小さいので、レーザドライバ３２ａへの指示値を上げてレーザパワーを大きくし（ステップＳＴ５３２）、再度判定を行なう（ステップＳＴ５２６、ＳＴ５２８）。
【０３４０】
この工程（ステップＳＴ５２４〜ＳＴ５３２）でのレーザパワー増減量は、たとえば４０μＷ程度とする。
【０３４１】
なお、ステップＳＴ５２８でノー、ステップＳＴ５３０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３４２】
以下、積分出力Ｖｏが目標の領域（Ｕ２）に入るまで、上記の動作が繰り返えされる。
【０３４３】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５２８イエス）は、次のステップへ移る。
【０３４４】
次の工程（ステップＳＴ５３４〜ＳＴ５４２）でのレーザパワー増減量は、たとえば２０μＷ程度とする。
【０３４５】
すなわち、レーザパワー増減量がおよそ２０μＷとなるようにコンパレータＣＭＰ０での比較基準値を再度設定し、コンパレータＣＭＰ０のしきい値Ｖｒを、再設定された値（３８Ｈ）に対応するしきい値Ｖｒ３に変更する（ステップＳＴ５３４）。そして、コンパレータＣＭＰ０の出力を読み込み（ステップＳＴ５３６）、再度判定を行なう（ステップＳＴ５３８）。
【０３４６】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ３（Ｖｏ＞Ｖｒ＝３８Ｈ）：３２６〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ３（Ｖｏ＜Ｖｒ＝３８Ｈ）：２８０〜３２６μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
すなわち、コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５３８ノー；ステップＳＴ５４０イエス）は、設定値３８Ｈよりも実際のレーザパワーが大きいので、レーザドライバ３２ａへの指示値を下げてレーザパワーを小さくし（ステップＳＴ５４２）、再度判定を行なう（ステップＳＴ５３６、ＳＴ５３８）。
【０３４７】
なお、ステップＳＴ５３８でノー、ステップＳＴ５４０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３４８】
以下、積分出力Ｖｏが目標の領域（Ｌ３）に入るまで、上記の動作が繰り返えされる。
【０３４９】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５３８イエス）は、図２３の処理へ移る。
【０３５０】
図２２の工程終了後、図２３の処理において、コンパレータＣＭＰ０のしきい値ＶｒをＶｒ４（Ｖ）＝３４Ｈに設定し（ステップＳＴ５４４）、コンパレータＣＭＰ０の出力を読み込む（ステップＳＴ５４６）。そして、設定されたしきい値Ｖｒ＝Ｖｒ４（３４Ｈ）および検知されたレーザパワーに対応する積分出力Ｖｏに基づき、レーザパワーの大小について判定が行われる（ステップＳＴ５４８）。
【０３５１】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ４（Ｖｏ＞Ｖｒ＝３４Ｈ）：３０３〜３２６μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ４（Ｖｏ＜Ｖｒ＝３４Ｈ）：２８０〜３０３μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５４８ノー；ステップＳＴ５５０イエス）は、設定値３４Ｈよりも実際のレーザパワーが大きいので、レーザドライバ３２ａへの指示値を下げてレーザパワーを小さくし（ステップＳＴ５５２）、再度判定を行なう（ステップＳＴ５４６、ＳＴ５４８）。
【０３５２】
この工程（ステップＳＴ５４４〜ＳＴ５５２）でのレーザパワー増減量は、たとえば１０μＷ程度とする。
【０３５３】
なお、ステップＳＴ５４８でノー、ステップＳＴ５５０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３５４】
以下、積分出力Ｖｏが目標の領域（Ｌ４）に入るまで、上記の動作が繰り返えされる。
【０３５５】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５４８イエス）は、次のステップへ移る。
【０３５６】
次の工程（ステップＳＴ５５４〜ＳＴ５６２）でのレーザパワー増減量は、たとえば５μＷ程度とする。
【０３５７】
すなわち、レーザパワー増減量がおよそ５μＷとなるようにコンパレータＣＭＰ０での比較基準値を再度設定し、コンパレータＣＭＰ０のしきい値Ｖｒを、再設定された値（３２Ｈ）に対応するしきい値Ｖｒ５に変更する（ステップＳＴ５５４）。そして、コンパレータＣＭＰ０の出力を読み込み（ステップＳＴ５５６）、再度判定を行なう（ステップＳＴ５５８）。
【０３５８】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ５（Ｖｏ＞Ｖｒ＝３２Ｈ）：２９１〜３０３μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ５（Ｖｏ＜Ｖｒ＝３２Ｈ）：２８０〜２９１μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
すなわち、コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５５８ノー；ステップＳＴ５６０イエス）は、設定値３２Ｈよりも実際のレーザパワーが小さいので、レーザドライバ３２ａへの指示値を上げてレーザパワーを大きくし（ステップＳＴ５６２）、再度判定を行なう（ステップＳＴ５５６、ＳＴ５５８）。
【０３５９】
なお、ステップＳＴ５５８でノー、ステップＳＴ５６０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３６０】
以下、積分出力Ｖｏが目標の領域（Ｕ５）に入るまで、上記の動作が繰り返えされる。
【０３６１】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５５８イエス）は、図２４の処理へ移る。
【０３６２】
図２３の工程終了後、図２４の処理において、コンパレータＣＭＰ０のしきい値ＶｒをＶｒ６（Ｖ）＝３３Ｈに設定し（ステップＳＴ５６４）、コンパレータＣＭＰ０の出力を読み込む（ステップＳＴ５６６）。そして、設定されたしきい値Ｖｒ＝Ｖｒ６（３３Ｈ）および検知されたレーザパワーに対応する積分出力Ｖｏに基づき、レーザパワーの大小について判定が行われる（ステップＳＴ５６８）。
【０３６３】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ６（Ｖｏ＞Ｖｒ＝３３Ｈ）：２９７〜３０３μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ６（Ｖｏ＜Ｖｒ＝３３Ｈ）：２９１〜２９７μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５６８ノー；ステップＳＴ５７０イエス）は、設定値３３Ｈよりも実際のレーザパワーが小さいので、レーザドライバ３２ａへの指示値を上げてレーザパワーを大きくし（ステップＳＴ５７２）、再度判定を行なう（ステップＳＴ５６６、ＳＴ５６８）。
【０３６４】
この工程（ステップＳＴ５６４〜ＳＴ５７２）でのレーザパワー増減量は、たとえば２μＷ程度とする。（ここで、実際に使用するレーザ発振器の最小分解能がたとえば２．３μＷであるなら、しきい値Ｖｒ６でのパワー増減量も２．３μＷにするとよい。）
なお、ステップＳＴ５４８でノー、ステップＳＴ５５０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３６５】
以下、積分出力Ｖｏが目標の領域（Ｕ６）に入るまで、上記の動作が繰り返えされる。
【０３６６】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５６８イエス）は、次のステップへ移る。
【０３６７】
次の工程（ステップＳＴ５７６〜ＳＴ５８２）でのレーザパワー増減量も、２μＷ程度（前述した例なら２．３μＷ）とする。ここで、処理判定を行なうＣＰＵの図示しない内部メモリ（あるいは図５のメモリ５２）には、それ以前に用いたしきい値データが保存されている。以下の工程を実行するに際して、ＣＰＵは、保存されたしきい値データのうち、しきい値Ｖｒ４＝３４Ｈのデータを取り出す。
【０３６８】
次に、ＣＰＵはコンパレータＣＭＰ０の出力を読み込み（ステップＳＴ５７６）、Ｖｒ４＝３４Ｈに基づいて、レーザパワーの大小に関する判定を再度行なう（ステップＳＴ５７８）。
【０３６９】
このときの領域とパワーとの関係は次のようになる：
領域Ｕ６（しきい値３３Ｈ〜３４Ｈの間）：２９７〜３０３μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
すなわち、コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”０”の場合（ステップＳＴ５７８ノー；ステップＳＴ５８０イエス）は、設定値３４Ｈよりも実際のレーザパワーがやや大きいので、レーザドライバ３２ａへの指示値を少し下げてレーザパワーをやや小さくし（ステップＳＴ５８２）、再度判定を行なう（ステップＳＴ５５６〜ＳＴ５６８、Ｔ５７６〜ＳＴ５７８）。
【０３７０】
なお、ステップＳＴ５７８でノー、ステップＳＴ５８０でノーなら、判定結果に矛盾があり、エラーと判定されて、制御は終了（あるいは中断）する。
【０３７１】
以下、積分出力Ｖｏが目標の領域（Ｕ６）に入るまで、上記の動作が繰り返えされる。
【０３７２】
コンパレータＣＭＰ０の出力ＣＭＰＯＵＴが”１”の場合（ステップＳＴ５７８イエス）、これはセンサ面上でのレーザ光量が２９７〜３０３μＷ（しきい値では３３Ｈ〜３４Ｈ）の間に入っていることを示す（３００μＷに対する誤差は±１％以内）。
【０３７３】
こうしてセンサ面で見た実質的なレーザパワーが所望値（ほぼ３００μＷ）となれば、図２１〜図２４のビーム光制御用パワー制御は終了し、図５の主制御部５１のＣＰＵは、その他の処理に戻る。
【０３７４】
なお、以上の説明では、しきい値３３Ｈ〜３４Ｈがレーザパワー２９７〜３０３μＷに対応するものとして説明したが、図２５に例示されるようにレーザパワー３００μＷがしきい値８０Ｈに対応する場合の制御方法（手順）は、しきい値指示データの数値が変わることを別にすれば、考え方に違いはない。この発明の実施にあたっては、レーザパワーの数値（μＷ）としきい値（ヘキサデシマルデータ）との間にどのような数値関係を持たせてもよい。
【０３７５】
また、所望の制御目標（センサ面上で３００μＷのレーザパワーを得ること）が得られるまでのしきい値変化が、図２０では領域Ｌ０内で変化する場合が例示されている。が、図２０の領域Ｕ０内でしきい値が変化する制御動作も、使用される指示値（ヘキサデシマル値）の数値が変わることを除けば、同様に行われる（たとえばポリゴンミラーの汚れに起因するしきい値制御の場合は、領域Ｕ０内で、同様なしきい値制御が行われる）。
【０３７６】
図２５は、この発明の実施の形態において使用可能な、レーザからのビーム光量の指示値（８ビットヘキサデシマル表示されるレーザ指示値；比較時にＤ／Ａ変換され対応するアナログしきい値に変換される値）と対応するレーザパワー（μＷ）との対応関係の一例を示している。
【０３７７】
すなわち、たとえば図５の主制御部５１のＣＰＵから指示値００Ｈが出された場合はレーザパワーは０μＷ（つまりレーザ光量ゼロ）となり、ＦＦＨが出された場合はレーザパワーは６００μＷとなる。
【０３７８】
以下同様に、ＣＰＵからの指示値が２ＢＨ、５５Ｈ、８０Ｈ、ＡＢＨ、およびＤ５Ｈなら、対応するレーザパワーは、それぞれ、１００μＷ、２００μＷ、３００μＷ、４００μＷ、および５００μＷとなる。
【０３７９】
図２５のレーザ指示値対レーザパワーの関係はあくまで１例であるから、たとえば３００μＷのレーザパワーを指示する指示値データは、８０Ｈに限定されることはなく、実施に形態に応じて任意に選ぶことができる。
【０３８０】
なお、使用されるレーザの最大出力が仮に７５０μＷであるなら、ＦＦＨ以外のＣＰＵ指示により、このレーザを７５０μＷで発光させることができる。
【０３８１】
また、図９の積分器４２を構成するオペアンプＡ４は、±５Ｖのアナログ積分電圧（Ｖｏ）をリニアに出力できるよう構成されている。この場合、図２５のレーザパワー６００μＷ（指示値ＦＦＨ）は図１９の積分出力Ｖｏ＝４Ｖで検知でき、レーザパワー７５０μＷは積分出力Ｖｏ＝５Ｖで検知できる。
【０３８２】
次に、画像形成用レーザビームの光量制御ルーチンについて説明する。
【０３８３】
図２６は、画像形成用のビーム光量（レーザパワー）制御の大きな流れを説明するフローチャートである。
【０３８４】
たとえば図５の主制御部５１のＣＰＵは、ポリゴンモータドライバ３７に指示を与え、ポリゴンモータ３６を所定の回転速度で回転させる（ステップＳＴ２２０）。
【０３８５】
続いて、ＣＰＵは、ガルバノミラー駆動回路３９ａ〜３９ｄに所定の指示値を与え、４本のマルチレーザビームの走査経路を指定する（ステップＳＴ２２２）。
【０３８６】
次に、ＣＰＵは、４本のマルチレーザビームのうち、第１のレーザ３１ａを所定の指示値（たとえば図２５の例でいえば８０Ｈで指示される３００μＷ）で発光させ（ステップＳＴ２２４）、センサ３８０面上における第１レーザ３１ａの光量（レーザパワー）を測定する（ステップＳＴ２２６）。
【０３８７】
この第１レーザ３１ａのパワー測定（ステップＳＴ２２６）は、たとえば図９の回路構成を利用し、後述する図２７の手順で、実現できる。
【０３８８】
こうして測定された第１レーザ３１ａのパワーを基準として、第２レーザ３１ｂのレーザパワーが第１レーザ３１ａのパワーと（センサ面上でみて）一致するように、制御される（ステップＳＴ２２８）。
【０３８９】
この第２レーザ３１ｂのパワー制御（ステップＳＴ２２８）は、後述する図２９〜図３２の手順によって実現できる。
【０３９０】
続いて、測定された第１レーザ３１ａのパワーを基準として、第３レーザ３１ｃのレーザパワーが第１レーザ３１ａのパワーと（センサ面上でみて）一致するように、制御される（ステップＳＴ２３０）。
【０３９１】
この第３レーザ３１ｃのパワー制御（ステップＳＴ２３０）も、後述する図２９〜図３２の手順によって実現できる。
【０３９２】
最後に、測定された第１レーザ３１ａのパワーを基準として、第４レーザ３１ｄのレーザパワーが第１レーザ３１ａのパワーと（センサ面上でみて）一致するように、制御される（ステップＳＴ２３２）。
【０３９３】
この第４レーザ３１ｄのパワー制御（ステップＳＴ２３２）も、後述する図２９〜図３２の手順によって実現できる。
【０３９４】
図２６の処理を簡単にまとめると、次のようになる。すなわち、最初に、マルチビームのうちの特定の１本について、センサ面上におけるレーザパワーの絶対値制御を行う（ＳＴ２２６）。そして、絶対値制御された特定ビームのレーザパワーに合うように、残りのビームそれぞれのレーザパワーを、相対値制御する（ＳＴ２２８〜２３２）。
【０３９５】
なお、マルチビームのレーザビーム全てについて絶対値制御（ＳＴ２２６あるいは図２１〜図２４のパワー制御）を実行する実施の形態も可能であるのはもちろんである。この場合はマルチビームレーザパワーの相対値制御を省略できる。
【０３９６】
ただし、相対値制御を用いる場合、その制御目標となるレーザパワーとそれに対応するしきい値の指示値（あるいはその前後の概略値）が、絶対値制御のパワー測定の結果から予め分かっている。このため、各ビームの相対値制御が完了するまでに要する反復処理ループの実行回数が、絶対値制御だけの場合より少なくなることは期待できる。
【０３９７】
また、相対値制御を用いる場合、全体的にレーザパワーを変更する際は基準のレーザビームのみに対して新たな絶対値制御を行えば良く、基準レーザビームに対して新たに得られた指示値変化量を残りのレーザビームに反映させれば、残りビームに対する相対値制御を省略できる可能性がある（省略できるかどうかは、製品の仕様上、全ビーム間のレーザパワーのばらつきがどの程度許されるか、あるいは相対値制御を省略した結果、実際の製品においてどの程度のレーザパワーのばらつきが生じるか、による）。
【０３９８】
画像形成用レーザビーム光量制御は、まず、基準となるレーザビーム光（第１のレーザビームａ）を所定の指示値（たとえば８０Ｈ）で発光させ、そのビーム光量をビーム光量検知部３８のセンサ３８０上で測定して、メモリ５２に記録する。
【０３９９】
次にこのビーム光量検知部３８での測定結果を基準として、その他のレーザビーム（レーザビームｂ、ｃ、ｄ）のビーム光量が、基準となるレーザビーム（レーザビームａ）の測定結果と一致するようにレーザドライバ（３２ｂ、３２ｃ、３２ｄ）の指示値を調整する（図２６で説明した場合と同様）。
【０４００】
すなわち、主制御部５１のＣＰＵは、まず、ポリゴンミラーモータ３６を所定の速度で回転させ、各レーザビーム光がレーザビーム光量検知センサ３８０のほぼ中央を通過するように、ガルバノミラー（３３ａ〜３３ｄ）に指示値を与える。
【０４０１】
ここで、レーザビーム光量検知センサ３８０は副走査方向に十分余裕のある形状となっている。図３の構造でいえば、センサパターンＳＬの縦方向のサイズ（数ｍｍ以上）が、並行に走るマルチビームの並び幅サイズ（０．数ｍｍ以下）より十分（桁違いに）大きくしてある。このため、ガルバノミラーを用いた上記制御の際のビーム通過位置には、ビーム通過位置制御（各ビーム各々のビーム間ピッチを規定する副走査ビーム位置制御）ほどの精度は必要としない。
【０４０２】
次に基準レーザを所定の値で発光させる。この例では、第１レーザ３１ａを基準のレーザとする。ここでは、基準レーザは工場出荷時に図２５の入出力特性を持つように調整されているものと仮定する（８０Ｈで３００μＷと仮定）。図２５の入出力特性を採用する場合、画像形成時のレーザパワーを２００μＷにしたいなら、主制御部５１のＣＰＵは、レーザドライバ３２ａに指示値５５Ｈを与えればよい。
【０４０３】
以上の事前処理を行ってから、図２７のレーザパワー測定ルーチンにしたがって、第１レーザビーム３１ａのビーム光量を測定する。
【０４０４】
図２７は、図２６のステップＳＴ２２６におけるレーザパワー測定手順（絶対値制御）を説明するフローチャートである。また、図２８は、図２６のレーザパワー測定およびレーザパワー相対値制御における、シングルコンパレータのしきい値変化の様子を例示している。（なお、図２８に例示されたしきい値のヘキサデシマル値は図２５に例示されたレーザ指示値とは独立別個に想定しているので、図２８と図２５との間でヘキサデシマル値は異なる。このため、たとえば図２８のＶｒ６の２３Ｈが図２５の２００μＷの５５Ｈに対応すると考えてもよい。）
図２７の処理において、図５の主制御部５１のＣＰＵは、所定の指示データ（図２８の例では４０Ｈ）により、コンパレータ４３０（図９ではＣＭＰ０）のしきい値ＶｒをＶｒ０に設定する（ステップＳＴ６４０）。
【０４０５】
続いて、ＣＰＵは、しきい値Ｖｒ０とそのときの積分出力Ｖｏとの比較結果であるコンパレータ出力（図９ではＣＭＰＯＵＴ）を読み込む（ステップＳＴ６４２）。
【０４０６】
上記しきい値Ｖｒ０（４０Ｈ）は、ビーム光量検知部３８の検知特性をほぼ２等分（図２８では領域を２分割したＵ０とＬ０）するように設定されている。つまり、ＣＰＵは、コンパレータ出力の内容（”０”か”１”か）によって、第１レーザビーム（３１ａ）のビーム光量（レーザパワー）が２分割された領域（図２８のＵ０とＬ０）のどちらに属するかを判定する（ステップＳＴ６４４）。
【０４０７】
このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
Ｖｒ→Ｖｒ０（Ｖ）＝４０Ｈ
領域Ｕ０：３７４〜７５０μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ０：    ０〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
ステップＳＴ６４４において、Ｖｒ０に基づき、レーザパワーが属する領域の判定（Ｕ０かＬ０か）が終了したら、コンパレータのしきい値が変更される（ステップＳＴ６４６）。
【０４０８】
たとえば、領域Ｌ０に属すると判定された場合は、ＣＰＵは、しきい値Ｖｒを、Ｖｂ０〜Ｖｒ０をほぼ２等分（領域Ｌ０を２分割したＵ１とＬ１）するようなしきい値Ｖｒ１（図２８の例では２０Ｈ）に変更する（ステップＳＴ６４６）。そしてしきい値が制御目標域に対応するかどうかの判定がなされる（ステップＳＴ６４８）。
【０４０９】
ステップＳＴ６４８にけるしきい値判定の結果、レーザパワーが制御目標域に到達していなければ（領域Ｕ１／Ｌ１は範囲が広く、まだ制御目標域ではない；ステップＳＴ６４８ノー）、コンパレータの出力が再度読み込まれ（ステップＳＴ６４２）、レーザパワーが２分割された領域（図２８のＵ１とＬ１）のどちらに属するかを判定する（ステップＳＴ６４４）。このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
Ｖｒ→Ｖｒ１（Ｖ）＝２０Ｈ
領域Ｕ１：１８５〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ１：    ０〜１８５μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
ステップＳＴ６４４において、Ｖｒ１に基づき、レーザパワーが属する領域の判定（Ｕ１かＬ１か）が終了したら、コンパレータのしきい値が変更される（ステップＳＴ６４６）。
【０４１０】
たとえば、領域Ｕ１に属すると判定された場合は、ＣＰＵは、しきい値Ｖｒを、Ｖｒ１〜Ｖｒ０をほぼ２等分（領域Ｕ１を２分割したＵ２とＬ２）するようなしきい値Ｖｒ２（図２８の例では３０Ｈ）に変更する（ステップＳＴ６４６）。そしてしきい値が制御目標域に対応するかどうかの判定がなされる（ステップＳＴ６４８）。
【０４１１】
ステップＳＴ６４８にけるしきい値判定の結果、レーザパワーが制御目標域に到達していなければ（領域Ｕ２／Ｌ２は範囲が広く、まだ制御目標域ではない；ステップＳＴ６４８ノー）、コンパレータの出力が再度読み込まれ（ステップＳＴ６４２）、レーザパワーが２分割された領域（図２８のＵ２とＬ２）のどちらに属するかを判定する（ステップＳＴ６４４）。このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
Ｖｒ→Ｖｒ２（Ｖ）＝３０Ｈ
領域Ｕ２：２８０〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ２：１８５〜２８０μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
その後、ステップＳＴ６４２〜ＳＴ６４８のループを反復して、以下のようにしきい値ＶｒをＶｒ３（２８Ｈ）→Ｖｒ４（２４Ｈ）→Ｖｒ５（２２Ｈ）→Ｖｒ６（２３Ｈ）と変えながら徐々に判定領域を狭めて行く（Ｌ２→Ｌ３→Ｌ４→Ｕ５→Ｌ６）。
【０４１２】
Ｖｒ→Ｖｒ３（Ｖ）＝２８Ｈ
領域Ｕ３：２３２〜３７４μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ３：１８５〜２３２μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
Ｖｒ→Ｖｒ４（Ｖ）＝２４Ｈ
領域Ｕ４：２０９〜２３２μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ４：１８５〜２０９μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
Ｖｒ→Ｖｒ５（Ｖ）＝２２Ｈ
領域Ｕ５：１９７〜２０９μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ５：１８５〜１９７μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
Ｖｒ→Ｖｒ６（Ｖ）＝２３Ｈ
領域Ｕ６：２０３〜２０９μＷ（比較結果ＣＭＰＯＵＴ＝”０”）
領域Ｌ６：１９７〜２０３μＷ（比較結果ＣＭＰＯＵＴ＝”１”）
ここで、Ｖｒ６を用いたコンパレータ出力（たとえばＣＭＰＯＵＴ＝”１”）により領域Ｌ６に属すると判定されたとする（ステップＳＴ６４４）。
【０４１３】
図２７の処理では、領域Ｕ６／Ｌ６が最小分解能レベルの幅であると想定している。このためしきい値はＶｒ６に設定されたままそれ以上変更されず（ステップＳＴ６４６）、しきい値の判定が行われる（ステップＳＴ６４８）。
【０４１４】
しきい値Ｖｒ６（＝２３Ｈ）による判定の結果、レーザパワーが制御目標域に到達したと判定される（ステップＳＴ６４８イエス）。（このとき判定対象となっている領域Ｕ６／Ｌ６はこのパワー測定ルーチンの処理上想定した最小幅なので、そのことで制御目標域であると判定できる。）
そうなれば、図５の主制御部５１のＣＰＵは、そのときのコンパレータしきい値（Ｖｒ６＝２３Ｈ）およびコンパレータ出力（領域Ｌ６を示すＣＭＰＯＵＴ＝”１”）を、第１レーザビーム（３１ａ）のセンサ面上におけるレーザパワー絶対値（たとえば２００μＷ）に対応するデータとして、図５のメモリ５２に記録する（ステップＳＴ６５０）。
【０４１５】
こうして、図２６のステップＳＴ２２６のパワー測定ルーチン（絶対値制御）に相当する図２７の処理は終了する。
【０４１６】
前述した図２７の処理によって第１レーザ（３１ａ）パワーの絶対値測定の結果が記録できたら、そのしきい値（２３Ｈ）とコンパレータ出力（領域Ｌ６ならＣＭＰＯＵＴ＝”１”）を基準データとして、その他のレーザがこの基準データと等しくなるようにそのレーザパワーを相対的に調整できる。
【０４１７】
すなわち、上述した例では、しきい値がＶｒ５＝２２ＨとＶｒ６＝２３Ｈの間の領域Ｌ６のデータが、図２６のステップＳＴ２２８〜ＳＴ２３２のレーザパワー相対値制御の基準データとなる。
【０４１８】
図２９〜図３２は、図２６のステップＳＴ２２８、ＳＴ２３０またはＳＴ２３２におけるレーザパワーの相対値制御を説明するフローチャートである。この相対値制御も、図５および図９の構成（シングルコンパレータ利用）を利用して行なうことができる。
【０４１９】
このレーザパワー相対値制御の実行手順は、図２１〜図２４のレーザパワー絶対値制御の実行手順とアルゴリズムは同じでよい。ただし、制御目標データ（Ｖｒ６＝２３Ｈおよび領域Ｌ６を示すＣＭＰＯＵＴ＝”１”）が既にメモリ５２に記憶されているので、この記憶されたデータに基づくなら、制御の前半（図２９〜図３０）におけるレーザパワー指示値の増減量（ＳＴ７１０、ＳＴ７２２、ＳＴ７３２、ＳＴ７４２、ＳＴ７５２、ＳＴ７６２）を荒くして、あるいは一部のレーザパワー指示値の増減処理をスキップして、制御完了までの処理時間を短縮できる。
【０４２０】
たとえば、図２１〜図２４の絶対値制御ではしきい値をＶｒ０→Ｖｒ１→Ｖｒ２→Ｖｒ３→Ｖｒ４→Ｖｒ５→Ｖｒ６のように１ステップづつ変えながら最終制御目標に近づいて行く処理が実行されているが、図２９〜図３２の相対値制御ではしきい値をＶｒ０→Ｖｒ２→Ｖｒ４→Ｖｒ６のように２ステップづつ変えながら最終制御目標に近づいて行く処理に簡略化してもよい。
【０４２１】
あるいは、図２９〜図３２の相対値制御ではしきい値をＶｒ０→Ｖｒ３→Ｖｒ６のように３ステップづつ変えながら最終制御目標に近づいて行く処理に簡略化してもよい。
【０４２２】
場合によっては、図２９〜図３１の処理をスキップし、図２９のステップＳＴ７００からいきなり図３２のステップＳＴ７６４にジャンプして、図３２の処理だけで、各レーザのビームパワー相対値制御を完了できることもある。
【０４２３】
つまり、図２１〜図２４の絶対値制御のフローチャートと図２９〜図３２の相対値制御のフローチャートとは各ステップの処理の流れは同様であるが、各ステップでの実際の処理内容（しきい値データ、レーザパワー増減量等）は、かならずしも同じではない。
【０４２４】
レーザパワーの相対値制御の処理内容を絶対値制御の場合より荒くしたときは、その分処理時間も短縮されることが期待できる。
【０４２５】
図３３は、図４のブロック図のうちマルチビーム光制御に関連する部分（ウインドウコンパレータ利用）を抜き出して詳細に示す。
【０４２６】
図３３の構成も、図５の構成と同様に、レーザビーム光の通過位置制御などに利用できる。以下、図５の構成と重複する部分の説明は簡略化し、図３３の構成に特徴的な部分を主に説明する。
【０４２７】
ビーム光位置検知器３８を構成するビーム検知センサ３８０のセンサパターンＳＡ、ＳＥ、ＳＫ、ＳＭからは、そこをレーザビーム光が通過した（横切った）ときにパルス状の信号が出力される。また、複数のセンサパターンＳＦ〜ＳＪからは、レーザビーム光の通過位置に応じて、それぞれ独立した信号が出力される。さらに、センサパターンＳＬからは、そこを通過する（４本の）レーザビームの光量（パワー）に対応した信号（アナログ）が出力される。
【０４２８】
選択回路４１は、主制御部（ＣＰＵ）５１からのセンサ選択信号により入力された信号のいずれか１つを選択し、選択された信号を、積分器４２へ供給する。積分器４２は、選択回路４１によって選択された信号を積分する。
【０４２９】
センサパターンＳＡのフォトダイオードから出力されたパルス信号、センサパターンＳＥのフォトダイオードから出力されたパルス信号、およびセンサパターンＳＫのフォトダイオードから出力されたパルス信号は、選択回路Ａに入力される。選択回路Ａは、主制御部５１からの指令にしたがって、ＳＡ、ＳＥ、またはＳＫのいずれかからのパルス信号を選択し、積分器４２に供給する。積分器４２は、供給されたパルス信号によりリセットされて、選択回路４１から入力された信号の積分を開始するように構成されている。
【０４３０】
つまり、積分器４２は、図３のビーム検知センサ３８０のセンサパターン（フォトダイオードで構成されるセンサ受光部）ＳＡ、ＳＥ、ＳＫの配置とそこを所定の速度で横切るレーザビームの通過タイミングに応じて、積分動作を開始する。
【０４３１】
また、センサパターンＳＫのフォトダイオードから出力されたパルス信号およびセンサパターンＳＭのフォトダイオードから出力されたパルス信号は、選択回路Ｂに入力される。選択回路Ｂは、主制御部５１からの指令にしたがって、ＳＫまたはＳＭのいずれかからのパルス信号を選択し、後述するフリップフロップ回路４３２＊に供給する。フリップフロップ回路４３２＊は、供給されたパルス信号によりラッチされて、所定の動作を行なうように構成されている。
【０４３２】
つまり、フリップフロップ回路４３２＊は、図３のビーム検知センサ３８０のセンサパターン（フォトダイオードで構成されるセンサ受光部）ＳＫ、ＳＭの配置とそこを所定の速度で横切るレーザビームの通過タイミングに応じて、フリップフロップ動作を行なう（後に詳述するが、このフリップフロップ動作はこの発明のＡ／Ｄ処理動作に関係している）。
【０４３３】
このように、センサパターンＳＡ、ＳＥ、またはＳＫからのパルス信号により、レーザビーム光がビーム検知センサ３８０を通過するときに積分器４２をリセットして積分動作を開始させる。そして、レーザビーム光がビーム検知センサ３８０のセンサパターン上を通過している間は、積分器４２はレーザビーム光の通過位置を示す信号を積分する。
【０４３４】
積分器４２で積分した結果は、コンパレータ４３０＊、フリップフロップ回路４３２＊、主制御部５１およびＤＡコンバータ４３４＊のループで構成される回路動作により、通常のＡ／Ｄ変換デバイスを用いることなく、実質的にＡ／Ｄ変換に対応したＡ／Ｄ処理がなされる（このＡ／Ｄ処理のための回路構成および動作は、別途図面を参照して後述する）。
【０４３５】
この積分動作を伴うＡ／Ｄ処理により、ノイズが少なく、ビーム光位置検知器３８の取付け傾きの影響が除去された検知信号をデジタル信号に変換することができる。
【０４３６】
ここで、増幅器６２〜６６、選択回路４１、積分器４２、コンパレータ４３０＊、フリップフロップ回路４３２＊、およびＤＡ変換器４３４＊は、ビーム光位置検知器出力処理回路４０を構成している。
【０４３７】
このようにして、デジタル信号に変換されたビーム光位置検知器３８からのビーム光位置検知信号は、ビーム光位置情報として主制御部５１に入力され、レーザビーム光の通過位置やレーザ光量（パワー）などが判断される。
【０４３８】
その後に主制御部５１がガルバノミラー３３ａ〜３３ｄ、レーザドライバ３２ａ〜３２ｄ、ポリゴンモータドライバ３７等を制御する構成は、図５と同じであるので、その説明は省略する。
【０４３９】
図５４は、図３３のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーム位置検知用のセンサパターンから積分器までの回路構成を説明する図である。
【０４４０】
この構成は以下の点を除き、図６の構成と同様である。すなわち、図６では単一のしきい値（比較基準値）Ｖｒを用いるシングルコンパレータ４３０（ＣＭＰＯ）が採用されているのに対して、図５４では２つのしきい値（１対の比較基準値）ＷＩＮＴＨＨ／ＷＩＮＴＨＬを用いるウインドウコンパレータ４３０＊が採用されている。
【０４４１】
図３４は、図３３のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーパワー検知用のセンサパターンから積分器までの回路構成を説明する図である。
【０４４２】
この構成は以下の点を除き、図８の構成と同様である。すなわち、図８では単一のしきい値（比較基準値）Ｖｒを用いるシングルコンパレータ４３０（ＣＭＰＯ）が採用されているのに対して、図３４では２つのしきい値（１対の比較基準値）ＷＩＮＴＨＨ／ＷＩＮＴＨＬを用いるウインドウコンパレータ４３０＊が採用されている。
【０４４３】
図３５は、この発明の他の実施の形態に係る、ウインドウコンパレータを利用したアナログ・デジタル処理部を説明する回路図である。
【０４４４】
この実施形態の回路構成では、ビームがセンサＳＪ側を走査すれば積分出力はＶｒｅｆに対して＋側に大きくなり、ビームがセンサＳＩ側を走査すれば積分出力はＶｒｅｆに対して−側に大きくなるようになっている。
【０４４５】
図３５において、積分回路４２に入力される信号が図３３の差動増幅器６３の出力の場合は、積分対象は図３または図３３のセンサパターンＳＪおよびＳＩのフォトダイオードで検知されたアナログ電圧となる。
【０４４６】
同様に、積分回路４２に入力される信号が差動増幅器６４の出力の場合は積分対象はセンサパターンＳＩおよびＳＨのアナログ電圧となり、積分回路４２に入力される信号が差動増幅器６５の出力の場合は積分対象はセンサパターンＳＨおよびＳＧのアナログ電圧となり、積分回路４２に入力される信号が差動増幅器６６の出力の場合は積分対象はセンサパターンＳＧおよびＳＦのアナログ電圧となる。
【０４４７】
また、積分回路４２のオペアンプＡ４に入力される信号が図３３の増幅器６２または図３４のオペアンプＡ３からの出力（差分出力ではない）である場合は、積分回路４２からの積分出力Ｖｏは、センサパターンＳＬで検知されたレーザ光量（パワー）を表すアナログ電圧となる。
【０４４８】
以上のことから、積分回路４２から出力される積分出力Ｖｏは、センサパターンＳＦ〜ＳＪ、ＳＬの検知結果のいずれか（１つまたは２つ）に対応したアナログ電圧となる。
【０４４９】
一方、図３３、図５４または図３４の主制御部５１の内部ＣＰＵは、図３３のビーム光位置検知器３８上における実際のビーム位置とそれに対応する積分出力Ｖｏとの相関を実験的に求めて決めた複数のしきい値データを、図３３のメモリ５２（または図示しないＣＰＵ内部のメモリ）に持っている。（これらの複数しきい値データは、図９のシングルコンパレータの場合に求めたものとは別のデータである。）
これらの複数のしきい値データは、たとえば後述する図３９を例にとれば、ＶＨ１〜ＶＨ４、ＶＬ１〜ＶＬ４とそれらを表すデジタルデータ（たとえば８ビットのヘキサデシマル値）に対応する。そして、主制御部５１のＣＰＵは、Ａ／Ｄ処理動作中、所定のタイミングで、これらのしきい値データを順次読み出せるようにプログラムされている。
【０４５０】
図３３、図５４または図３４の積分器４２に相当する図３５の積分回路４２は、図３３の選択回路Ａからの積分リセット信号の信号エッジで一旦リセットされたあと、図３３の選択回路４１または図５４のアナログスイッチＳＷ１を介して入力される信号（たとえば図３３の増幅器６２の出力）を、抵抗Ｒ５とキャパシタＣとの積で決まる時定数で、積分する。この積分により、パルス性のノイズあるいは高周波ノイズが取り除かれたアナログ電圧値が得られる。
【０４５１】
こうして得られた積分結果Ｖｏ（Ａ／Ｄ処理の対象となるアナログ電圧値）が、図３５のウインドウコンパレータ（ＣＭＰ１／ＣＭＰ２）４３０＊に与えられる。
【０４５２】
すなわち、ウインドウコンパレータＬ４３０＊は２個１対のコンパレータＣＭＰ１およびＣＭＰ２により構成されており、積分器４２からの積分結果（Ｖｏ）が、コンパレータＣＭＰ１の一方入力（ー）およびコンパレータＣＭＰ２の他方入力（＋）に与えられる。
【０４５３】
一方、コンパレータＣＭＰ１の他方入力（＋）にはウインドウコンパレータ４３０＊の上側しきい値を決定する比較基準電圧ＷＩＮＴＨＨが与えられ、コンパレータＣＭＰ２の一方入力（ー）にはウインドウコンパレータ４３０＊の下側しきい値を決定する比較基準電圧ＷＩＮＴＨＬが与えられる。
【０４５４】
ウインドウコンパレータ（ＣＭＰ１／ＣＭＰ２）４３０＊の上下しきい値（すなわちウインドウコンパレータの窓の範囲）を決定する比較基準電圧（ＷＩＮＴＨＨ／ＷＩＮＴＨＬ）は、８ビットＤ／Ａ変換器ＤＡ１およびＤＡ２によって独立に設定できるようになっている。
【０４５５】
ウインドウコンパレータ４３０＊は、比較基準電圧（ＷＩＮＴＨＨ／ＷＩＮＴＨＬ）が与えられると、積分出力Ｖｏがウインドウコンパレータの窓の範囲に入っているか、範囲の下か、範囲の上かによって、異なる比較結果（ＷＵＬとＷＬＬのペア）を出力する。
【０４５６】
すなわち、図３６に示すように、積分出力Ｖｏがウインドウコンパレータの窓（ＷＩＮＴＨＨ〜ＷＩＮＴＨＬの間）より上側にあり、Ｖｏ＞ＷＩＮＴＨＨなら、コンパレータＣＭＰ１の出力レベルＷＵＬは”０”でコンパレータＣＭＰ２の出力レベルＷＬＬは”１”となる。
【０４５７】
積分出力がウインドウコンパレータの窓の範囲内にあり、ＷＩＮＴＨＨ＞Ｖｏ＞ＷＩＮＴＨＬなら、コンパレータＣＭＰ１の出力レベルＷＵＬは”１”でコンパレータＣＭＰ２の出力レベルＷＬＬも”１”となる。
【０４５８】
また、積分出力がウインドウコンパレータの窓より下側にあり、Ｖｏ＜ＷＩＮＴＨＬなら、コンパレータＣＭＰ１の出力レベルＷＵＬは”１”でコンパレータＣＭＰ２の出力レベルＷＬＬは”０”となる。
【０４５９】
ウインドウコンパレータ４３０＊の比較基準電圧ＷＩＮＴＨＨおよびＷＩＮＴＨＬを出力するＤ／Ａ変換器ＤＡ１およびＤＡ２の動作は、主制御部５１のＣＰＵからのＤＡ選択信号ＤＡＳＣ１ー０ＡおよびＤＡＳＣ１ー１Ａの組み合わせにより、任意に設定できる。
【０４６０】
すなわち、図３７に示すように、ＤＡＳＣ０ー０Ａ＝”１”およびＤＡＳＣ１ー１Ａ＝”０”が図３５のセレクタ４３６に入力されると、セレクタ４３６からＤＡＣ１選択信号だけが出力され、ＤＡＣ１選択信号によりＤ／Ａ変換器ＤＡ１だけがアクティブとなる。すると、ＤＡ１は、データ書込パルスＤＡＷＲー０Ａの信号エッジで主制御部５１からのデータＢＭＤＡ（主制御部５１の内部ＣＰＵによる演算結果）を取り込み、Ｄ／Ａ変換して、対応するアナログレベルのＷＩＮＴＨＨをコンパレータＣＭＰ１に与える。
【０４６１】
この場合、ＤＡ２は、たとえば”０”レベル（最小レベル）相当のＷＩＮＴＨＬをコンパレータＣＭＰ２に与える。この状態では、ウインドウレベルの一方（ＷＩＮＴＨＬ）が最小レベルにシフトするので、ウインドウコンパレータ４３０＊は、実質的にはコンパレータＣＭＰ１だけのシングルコンパレータとして機能するようになる。
【０４６２】
ＤＡＳＣ０ー０Ａ＝”０”およびＤＡＳＣ１ー１Ａ＝”１”がセレクタ４３６に入力されると、セレクタ４３６からＤＡＣ２選択信号だけが出力され、ＤＡＣ２選択信号によりＤ／Ａ変換器ＤＡ２だけがアクティブとなる。すると、ＤＡ２は、データ書込パルスＤＡＷＲー０Ａの信号エッジで主制御部５１からのデータＢＭＤＡ（主制御部５１の内部ＣＰＵによる演算結果）を取り込み、Ｄ／Ａ変換して、対応するアナログレベルのＷＩＮＴＨＬをコンパレータＣＭＰ２に与える。
【０４６３】
この場合、ＤＡ１は、たとえば”１”レベル（最大レベル）相当のＷＩＮＴＨＨをコンパレータＣＭＰ１に与える。この状態では、ウインドウレベルの他方（ＷＩＮＴＨＨ）が最大レベルにシフトするので、ウインドウコンパレータ４３０＊は、実質的にはコンパレータＣＭＰ２だけのシングルコンパレータとして機能するようになる。
【０４６４】
ＤＡＳＣ０ー０Ａ＝”０”およびＤＡＳＣ１ー１Ａ＝”０”がセレクタ４３６に入力されると、セレクタ４３６からＤＡＣ１選択信号およびＤＡＣ２選択信号が出力され、Ｄ／Ａ変換器ＤＡ１およびＤＡ２の双方がアクティブとなる。すると、ＤＡ１がＤＡＷＲー０Ａの信号エッジでデータＢＭＤＡ（主制御部５１での演算結果）を取り込みＤ／Ａ変換して対応するＷＩＮＴＨＨをコンパレータＣＭＰ１に与え、ＤＡ２がＤＡＷＲー０Ａの信号エッジで別のデータＢＭＤＡ（主制御部５１での別の演算結果）を取り込みＤ／Ａ変換して対応するＷＩＮＴＨＬをコンパレータＣＭＰ２に与える。
【０４６５】
この場合、ウインドウコンパレータ４３０＊は、文字どおり２つのしきい値（図３８のＷＩＮＴＨＨ／ＷＩＮＴＨＬ）で決まる範囲の窓を持ったウインドウコンパレータとして機能することができる。
【０４６６】
この窓の広さ（ＷＩＮＴＨＨ〜ＷＩＮＴＨＬの範囲）は、Ｄ／Ａ変換器ＤＡ１に取り込まれる第１のデータＢＭＤＡの値およびＤ／Ａ変換器ＤＡ２に取り込まれる第２のデータＢＭＤＡの値により、任意に変更できる。
【０４６７】
たとえば図４５の例示を利用すると、第１のデータＢＭＤＡ＝５ＡＨにより窓の上側ＶＨ０を指定し、第２のデータＢＭＤＡ＝３ＦＨにより窓の下側ＶＬ０を指定したとすれば、ウインドウコンパレータ４３０＊はＶＨ０〜ＶＬ０という広い範囲の大きな窓を持つことになる。
【０４６８】
一方、第１のデータＢＭＤＡ＝４ＤＨにより窓の上側ＶＨ３を指定し、第２のデータＢＭＤＡ＝４ＣＨにより窓の下側ＶＬ３を指定したとすれば、ウインドウコンパレータ４３０＊はＶＨ３〜ＶＬ３という最小範囲の小さな窓を持つことになる。
【０４６９】
上記ウインドウコンパレータの窓の範囲を、たとえば図２０のしきい値Ｖｒ０〜Ｖｒ６の属する範囲Ｕ０／Ｌ０〜Ｕ６／Ｌ６に対応させれば、図９のシングルコンパレータ４３０と同様に、図３５のウインドウコンパレータ４３０＊により、レーザパワー検知を行なうことが可能になる。
【０４７０】
このレーザパワー検知用のウインドウコンパレータ窓範囲の選択が、上記ＤＡＳＣ０ー０Ａ＝”０”およびＤＡＳＣ１ー１Ａ＝”０”によりなされる。
【０４７１】
図３３、図５４または図３４の主制御部５１のＣＰＵは、最初は、所定の初期比較基準値（コンパレータＣＭＰ１の初期の上側しきい値ＷＩＮＴＨＨとコンパレータＣＭＰ２の初期の下側しきい値ＷＩＮＴＨＬ）を暫定的に指定するデジタルデータ（ＢＭＤＡ）を、ＤＡＣ回路４３４＊のＤ／Ａ変換器ＤＡ１およびＤＡ２に与える。
【０４７２】
この暫定的な比較基準値（初期のウインドウ上下しきい値）ＷＩＮＴＨＨおよびＷＩＮＴＨＬとしては、たとえば図３９のＶＨ１（高いしきい値）およびＶＬ１（低いしきい値）に対応する値を、採用できる（ウインドウコンパレータ４３０＊の窓が広い状態）。これらＷＩＮＴＨＨおよびＷＩＮＴＨＬに対応する値のデジタルデータＢＭＤＡは、主制御部５１のＣＰＵにより与えられる。
【０４７３】
ウインドウコンパレータ４３０＊のコンパレータＣＭＰ１は、ＷＩＮＴＨＨ＝ＶＨ１と積分出力Ｖｏとを比較し、Ｖｏ＞ＷＩＮＴＨＨなら”０”レベルの比較結果ＷＵＬをフリップフロップ回路４３２＊のＤ型フリップフロップＦＦ１のＤ入力端に与える。
【０４７４】
この場合、ＶＨ１＞ＶＬ１でありＶｏ＞ＷＩＮＴＨＬであるから、ウインドウコンパレータ４３０＊のコンパレータＣＭＰ２は、”１”レベルの比較結果ＷＬＬをフリップフロップ回路４３２＊のＤ型フリップフロップＦＦ２のＤ入力端に与える。
【０４７５】
ＦＦ１およびＦＦ２は図３３のセンサＳＡからの信号エッジで最初にクリアされ、そのすぐ後に現れるセンサＳＫまたはＳＭからの信号エッジでラッチされ、ＷＵＬ＝”０”およびＷＬＬ＝”１”を記憶する（この記憶内容は、レーザビームが検知部３８のセンサパターン上を通過したあと、次にレーザビームがセンサパターン入ってくるまで保持される）。
【０４７６】
ＦＦ１およびＦＦ２に記憶されたＷＵＬ＝”０”およびＷＬＬ＝”１”は、それぞれ、インバータＩＮＶ１およびＩＮＶ２によりレベル反転され、出力（デジタルビット）Ｄ４３２Ｈ＝”１”およびＤ４３２Ｌ＝”０”となって、主制御部５１のＣＰＵに返される。この時点では、ウインドウコンパレータ４３０＊の窓の広さ（上下しきい値）は変更されず、そのときのしきい値で、時々刻々とレベル変化する積分出力Ｖｏとの比較が反復実行される。
【０４７７】
一方、Ｖｏ＜ＷＩＮＴＨＬなら、コンパレータＣＭＰ２は、”０”レベルの比較結果ＷＬＬをＦＦ２のＤ入力端に与える。この場合、ＶＨ１＞ＶＬ１でありＶｏ＜ＷＩＮＴＨＨであるから、コンパレータＣＭＰ１は、”１”レベルの比較結果ＷＵＬをＦＦ１のＤ入力端に与える。
【０４７８】
ＦＦ１およびＦＦ２はセンサＳＡからの信号エッジで最初にクリアされ、そのすぐ後に現れるセンサＳＫまたはＳＭからの信号エッジでラッチされ、ＷＵＬ＝”１”およびＷＬＬ＝”０”を記憶する（この記憶内容は、レーザビームがセンサパターン上をレーザビームが通過あと、次にレーザビームがセンサパターン入ってくるまで保持される）。
【０４７９】
ＦＦ１およびＦＦ２に記憶されたＷＵＬ＝”１”およびＷＬＬ＝”０”は、それぞれ、インバータＩＮＶ１およびＩＮＶ２によりレベル反転され、出力Ｄ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”１”となって、主制御部５１のＣＰＵに返される。この時点では、ウインドウコンパレータ４３０＊の窓の広さ（上下しきい値）は変更されず、そのときのしきい値で、時々刻々とレベル変化する積分出力Ｖｏとの比較が反復実行される。
【０４８０】
上記比較の反復実行の結果、ＷＩＮＴＨＨ＞Ｖｏ＞ＷＩＮＴＨＬとなれば、コンパレータＣＭＰ１は”１”レベルの比較結果ＷＵＬをＦＦ１のＤ入力端に与え、同時に、コンパレータＣＭＰ２は”１”レベルの比較結果ＷＬＬをＦＦ２のＤ入力端に与える。
【０４８１】
ＦＦ１およびＦＦ２はセンサＳＡからの信号エッジで最初にクリアされ、そのすぐ後に現れるセンサＳＫまたはＳＭからの信号エッジでラッチされ、ＷＵＬ＝”１”およびＷＬＬ＝”１”を記憶する（この記憶内容は、レーザビームがセンサパターン上をレーザビームが通過あと、次にレーザビームがセンサパターン入ってくるまで保持される）。
【０４８２】
ＦＦ１およびＦＦ２に記憶されたＷＵＬ＝”１”およびＷＬＬ＝”１”は、それぞれ、インバータＩＮＶ１およびＩＮＶ２によりレベル反転され、出力Ｄ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”となって、主制御部５１のＣＰＵに返される。ＣＰＵは、このＤ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”により、ウインドウコンパレータ４３０＊のその時点での窓の範囲（図３９のＶＨ１〜ＶＬ１）内に積分出力Ｖｏが入ったと判定する。
【０４８３】
主制御部５１のＣＰＵは、上記Ｄ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”（ウインドウコンパレータ４３０＊での比較結果を表すデータ；積分出力Ｖｏがウインドウコンパレータ４３０＊の窓の範囲に入ったことを示すデータ）に基づき、新たなしきい値データＢＭＤＡを作成する。
【０４８４】
たとえば、ＣＰＵは図３９のしきい値ＶＨ２およびＶＬ２に対応するデータＢＭＤＡを作成し、それをＤＡＣ回路４３４＊のＤ／Ａ変換器ＤＡ１およびＤＡ２に与える。
【０４８５】
Ｄ／Ａ変換器ＤＡ１はＤＡＣ１選択信号がＣＰＵから与えられるとＶＨ２に対応するデータＢＭＤＡをＤ／Ａ変換して、新たな比較基準値（ウインドウコンパレータの窓の上側しきい値）ＷＩＮＴＨＨを、コンパレータＣＭＰ１にフィードバックする。
【０４８６】
同様に、Ｄ／Ａ変換器ＤＡ２はＤＡＣ２選択信号がＣＰＵから与えられるとＶＬ２に対応するデータＢＭＤＡをＤ／Ａ変換して、新たな比較基準値（ウインドウコンパレータの窓の下側しきい値）ＷＩＮＴＨＬを、コンパレータＣＭＰ２にフィードバックする。
【０４８７】
こうしてウインドウコンパレータ４３０＊の窓が以前（ＶＨ１〜ＶＬ１）より狭くなる（ＶＨ２〜ＶＬ２）。主制御部５１のＣＰＵは、この狭くなった窓を用いて、Ｄ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”となるような積分出力Ｖｏが得られるまで待つ。
【０４８８】
狭くなった窓を用いて、Ｄ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”が得られれば、再び新たなしきい値（図３９のＶＨ２／ＶＬ２）を設定して対応する比較基準値ＷＩＮＴＨＨ／ＷＩＮＴＨＬをウインドウコンパレータ４３０＊にフィードバックする。
【０４８９】
以上の動作を、最終しきい値（図３９のＶＨ４／ＶＬ４）においてＤ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”が得られるまで反復する。
【０４９０】
最終しきい値（図３９のＶＨ４／ＶＬ４）においてＤ４３２Ｈ＝”０”およびＤ４３２Ｌ＝”０”が得られれば、そのときの積分出力Ｖｏが図３９の目標エリアＡ４に入った（つまりレーザビームがセンサパターンＳＪとＳＩの間の位置を通過している）と判定でき、そのレーザビームについてのビーム位置制御を完了できる。別のレーザビームについてのビーム位置制御も、同様に、図３５のウインドウコンパレータを利用して行なうことができる。
【０４９１】
以上のようにして得られたウインドウコンパレータの比較基準値（コンパレータＣＭＰ１／ＣＭＰ２のしきい値）ＷＩＮＴＨＨ／ＷＩＮＴＨＬに対応するデジタル値ＢＤＭＡ（図４５を例にとれば４ＤＨと４ＣＨ）は、ウインドウコンパレータ４３０＊に入力されたアナログ積分出力Ｖｏに対応するデジタル値（Ａ／Ｄ処理結果と解釈する）となる。
【０４９２】
上述した図３５の回路動作の特徴を別の視点からみると、「アナログ入力Ｖｏが与えられると、ＷＩＮＴＨＨ＞Ｖｏ＞ＷＩＮＴＨＬ（またはＷＩＮＴＨＨ≒Ｖｏ≒ＷＩＮＴＨＬ）となるように比較基準値（しきい値）ＷＩＮＴＨＨ／ＷＩＮＴＨＬに対応するデータＢＤＭＡをコントロールするデジタル帰還ループ」であるともいえる。
【０４９３】
この帰還ループの収束目標は、積分出力Ｖｏのアナログ値であり、ＷＩＮＴＨＨ≒Ｖｏ≒ＷＩＮＴＨＬに収束したときのしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬに対応するデジタル値（ＢＭＤＡ相当）が、アナログ入力Ｖｏに対するＡ／Ｄ処理出力となる。
【０４９４】
なお、後述するレーザビーム光の位置制御あるいはビーム光量（パワー）制御においては、積分出力Ｖｏに対応する値に収束したデジタル値が得られる以前の比較結果ＷＵＬ／ＷＬＬ（またはＤ４３２Ｈ／Ｄ４３２Ｌ）が制御に利用されており、このような制御動作状態においては図３５の構成は通常の意味でのＡ／Ｄ変換器と機能上同一視はできない。
【０４９５】
ところで、図３５ウインドウコンパレータ４３０＊で最初に比較動作を行うときは、実際の積分出力Ｖｏが直ぐにウインドウコンパレータの窓の範囲に入ってくるよう、ウインドウコンパレータの窓が広くなるデータＢＭＤＡが選ばれている。しかし、この場合は、最終的なＡ／Ｄ処理結果が求まるまでの上記ＷＩＮＴＨＨ／ＷＩＮＴＨＬのフィードバックループの処理回数も相対的に多くなる。
【０４９６】
しかし、一旦積分出力Ｖｏに対応した比較基準値ＷＩＮＴＨＨ／ＷＩＮＴＨＬのデジタルデータＢＭＤＡが求まったあとは、そのデータは主制御部５１のＣＰＵが覚えている。最初のＡ／Ｄ処理後にわずかに変化した積分出力Ｖｏと既に覚えている比較基ＷＩＮＴＨＨ／ＷＩＮＴＨＬ相当のデジタルデータＢＭＤＡとの食い違いは、２回目以降のＡ／Ｄ処理時では初めから小さいので、２回目以降のＡ／Ｄ処理結果が最終に求まるまでの上記帰還ループ回数は少なくなることが期待できる。このことは、反復されるＡ／Ｄ処理動作のうち２回目以降のＡ／Ｄ処理速度が実質的に高速化され得ることを意味する。
【０４９７】
ついでに付記しておくと、図３５の回路構成では、Ａ／Ｄ処理の回路動作はコンパレータＣＭＰ１／ＣＭＰ２とフリップフロップＦＦ１／ＦＦ２とインバータＩＮＶ１／ＩＮＶ２で行われるが、これらのデバイスはいずれも安価でありながら高速動作（遅くても数１０ナノ秒オーダ）が可能である。そのため、図３５の回路のＡ／Ｄ処理動作は、十分に高速印字について行ける。
【０４９８】
図３９は、図３３の検知器３８または図３３のセンサ３８０を通過するレーザビーム位置と、これに対応する積分出力、および図３５のウインドウコンパレータのしきい値との関係を説明する図である。
【０４９９】
図３９において、左右方向がセンサ上下方向（副走査方向）であり、レーザビームは図中縦方向に通過する。
【０５００】
ビームがセンサパターンＳＪおよびＳＩの丁度中間（ウインドウコンパレータ４３０＊の一番狭い窓の範囲内）を通過するときは、図３９に例示するように、センサパターンＳＪおよびＳＩの差分に対応した積分出力Ｖｏはゼロとなる。この中間位置よりもビーム通過位置がセンサパターンＳＩ側に相対的にずれれば積分出力Ｖｏは減少側に変化し、中間位置よりもビーム通過位置がセンサパターンＳＪ側に相対的にずれれば積分出力Ｖｏは増加側に変化する。
【０５０１】
すなわち、センサパターンＳＪおよびＳＩの積分出力Ｖｏは、ビーム位置の変化に応じて変化する。この変化は他のセンサパターンＳＦ〜ＳＩのペアについても同様である。したがって、積分出力Ｖｏの電圧変化を捉えれば、センサパターンＳＦ〜ＳＪに対するビーム通過位置の相対的な変化を捉えることができる。
【０５０２】
いま、範囲が変化するウインドウコンパレータ４３０＊の窓を４ペアのウインドウしきい値ＶＨ１／ＶＬ１〜ＶＨ４／ＶＬ４で代表させてみる。この場合、しきい値ペアＶＨ１／ＶＬ１〜ＶＨ４／ＶＬ４の順に範囲が徐々に狭まる４つの窓のうち、Ｖｏが入り込んでいる一番狭い窓がどれかを検知することにより、ビーム通過位置を推定できる。
【０５０３】
たとえば図３５の回路構成において、Ａ／Ｄ処理動作終了時に得られた比較基準値（ウインドウコンパレータ４３０＊のしきい値ペアＷＩＮＴＨＨ／ＷＩＮＴＨＬ）のデータＢＭＤＡが図３９のＶＨ４／ＶＬ４に相当する値であれば、主制御部５１のＣＰＵは、レーザビームがセンサパターンＳＩとセンサパターンＳＪの中間（図３９のエリアＡ４）を通過したであろうことを知ることができる。
【０５０４】
以下、図４０〜図４３を用いて、図３５のウインドウコンパレータ４３０＊を利用したビーム光通過位置制御（副走査方向のビーム位置制御）について説明する。
【０５０５】
図４０において、まず、特定のレーザビーム光ａ（第１のレーザ３１ａからのレーザビーム）が、図３３の検知器３８（図３のセンサ３８０）の面上で上方向（図３９のセンサパターンＳＪ側の、エリアＡ１Ｕ付近）を通過するように、ガルバノミラー３３ａに指示値を与える（ステップＳＴ１００）。
【０５０６】
次に図３３のポリゴンモータドライバ３７に指示を出してポリゴンモータ３６を起動し、ポリゴンミラー３５を所定の回転数で回転させる。
【０５０７】
ポリゴンミラー３５のが所定の回転数で高速回転するようになったら、ビーム光ａ（第１のレーザ３１ａ）用のレーザ発振器を所定のパワーで強制発光させる（ステップＳＴ１０２；この部分は図１４のステップＳＴ４０２と同様）。そして、ビーム光ａをポリゴンミラー３５側に放射させる。これにより、所定パワーのレーザビームａが、図２のビーム光位置検知器３８（図３のセンサ３８０）上および感光体ドラム１５上を、所定の速度で通過するようになる。
【０５０８】
続いて、図４１の処理において、図３５のＤＡＣ回路４３４＊に所定のデータＢＭＤＡ（たとえばヘキサデシマル表示でＢ３Ｈ）を与え、ウインドウコンパレータ４３０＊の比較基準値ＷＩＮＴＨＨ／ＷＩＮＴＨＬ（窓の範囲を規定するウインドウコンパレータのしきい値ペア）を、たとえば以下のように設定する（ステップＳＴ１０４）。
【０５０９】
ＷＩＮＴＨＨ→ＶＨ１（Ｖ）＝Ｂ２Ｈ
ＷＩＮＴＨＬ→ＶＬ１（Ｖ）＝４ＣＨ
上記ＶＨ１／ＶＬ１を図３９に対応させれば、このときのウインドウコンパレータ４３０＊の窓の広さは、積分出力Ｖｏの変化のピーク〜ピーク間（エリアＡ１ＵからエリアＡ１Ｌまで）をカバーする広いものとなっている。
【０５１０】
しかし、ステップＳＴ１００での最初の指示値は、レーザビームａがウインドウコンパレータ４３０＊の窓範囲の端部付近（図３９のエリアＡ１Ｕ付近）を通過するような指示値になっている。
【０５１１】
このときに図３５のウインドウコンパレータ４３０＊から得られる比較結果（ＷＵＬ／ＷＬＬ）は、たとえば、図３６のＶｏ＞ＷＩＮＴＨＨに対応する内容となる。
【０５１２】
図３３の主制御部５１のＣＰＵは、上記Ｖｏ＞ＷＩＮＴＨＨのときに得られる比較結果（ＷＵＬ／ＷＬＬ）に対応したフリップフロップ回路４３２＊の出力（デジタルビットＤ４３２Ｈ／Ｄ４３２Ｌ）から、レーザビームａがウインドウコンパレータ４３０＊の窓範囲の端部付近（センサＳＪ上）を通過することを知ることができる。
【０５１３】
図４１の処理において、レーザビームａがウインドウコンパレータ４３０＊の窓範囲の端部付近（センサＳＪ上）を通過することを知ったＣＰＵは、センサ３８０上におけるビームａの通過位置がＸ０（μｍ）だけ下（センサパターンＳＩ側）にシフトするように、ガルバノミラー３３ａを微動させる（ステップＳＴ１０６）。
【０５１４】
このＸ０は、ガルバノミラー３３ａの１ステップ移動量であり、図３９のＡ１Ｕエリアを飛び越えない程度の微少量に設定される。具体的には、Ｘ０はＡ１Ｕの幅よりも小さい値、たとえば３０μｍ程度に設定される。
【０５１５】
次に、ＣＰＵは、ウインドウコンパレータ４３０＊からの出力（ＷＵＬ／ＷＬＬに対応するＤ４３２Ｈ／Ｄ４３２Ｌ）を読み込む（ステップＳＴ１０８）。
【０５１６】
なお、主制御部５１のＣＰＵは直接的にはフリップフロップ回路４３２＊からの出力Ｄ４３２Ｈ／Ｄ４３２Ｌを取り込むのだが、この出力はウインドウコンパレータ４３０＊の比較結果ＷＵＬ／ＷＬＬと１：１に対応（論理レベルは逆）しているので、以下ではウインドウコンパレータ４３０＊の比較結果ＷＵＬ／ＷＬＬを用いて説明を続ける。
【０５１７】
ウインドウコンパレータ４３０＊の比較結果が、レーザビームａがエリアＡ１Ｕ内でない（設定された窓の範囲の上側）ことを示すＷＵＬ＝”１”／ＷＬＬ＝”１”またはＷＵＬ＝”１”／ＷＬＬ＝”０”であれば（ステップＳＴ１１０ノー）、レーザビームａが設定された窓の範囲内を通過したことを示すＷＵＬ＝”１”／ＷＬＬ＝”１”であるかどうかチェックされる（ステップＳＴ１１２）。
【０５１８】
レーザビームａが設定された窓の範囲内を通過したことを示すＷＵＬ＝”１”／ＷＬＬ＝”１”であれば（ステップＳＴ１１２イエス）、ステップＳＴ１０６に戻って、レーザビームａの通過位置がさらにＸ０≒３０μｍ下がるようにガルバノミラー３３ａが制御される。
【０５１９】
ここで、ステップＳＴ１１２でレーザビームａが窓の範囲内を通過していない（ＷＵＬ＝”１”／ＷＬＬ＝”１”でない）と判定され（ステップＳＴ１１２ノー）、さらに設定された窓の範囲の下側でもない（ＷＵＬ＝”１”／ＷＬＬ＝”０”でない）と判定されたときは（ステップＳＴ１１４ノー）、その前のステップＳＴ１１０での判定（ＷＵＬ＝”０”／ＷＬＬ＝”１”でない）と矛盾するので、エラーとなり、図４１の処理は終了または中断する。
【０５２０】
ステップＳＴ１１４において、もし、レーザビームａが設定された窓の範囲の下側を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”０”）と判定されたときは（ステップＳＴ１１４イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ１≒１０μｍ上がるようにガルバノミラー３３ａを制御する（ステップＳＴ１１６）。
【０５２１】
一方、ステップＳＴ１１０において、レーザビームａが設定された窓の範囲の上側を通過した（ＷＵＬ＝”０”／ＷＬＬ＝”１”）と判定されたときは（ステップＳＴ１１０イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ１≒１０μｍ下がるようにガルバノミラー３３ａを制御する（ステップＳＴ１１８）。
【０５２２】
ウインドウコンパレータ４３０＊の窓の範囲ＷＩＮＴＨＨ／ＷＩＮＴＨＬを前述のように設定して図４１の処理（ステップＳＴ１０６〜ＳＴ１１８）を反復実行することで、レーザビームａが図３９のＡ１Ｕエリア内（またはＡ１Ｌエリア内）を通過するようになる。
【０５２３】
次に、ＣＰＵは、ウインドウコンパレータ４３０＊からの出力（ＷＵＬ／ＷＬＬに対応するデータ）を読み込む（ステップＳＴ１２０）。
【０５２４】
このときのウインドウコンパレータ４３０＊のしきい値はまだ変更されておらず、
ＷＩＮＴＨＨ→ＶＨ１（Ｖ）＝Ｂ２Ｈ
ＷＩＮＴＨＬ→ＶＬ１（Ｖ）＝４ＣＨ
となっている。ウインドウコンパレータ４３０＊は上記しきい値ＶＨ１／ＶＬ１を用いて、レーザビームａの通過位置に対応した積分出力Ｖｏとの比較動作を実行する。
【０５２５】
ウインドウコンパレータ４３０＊の比較結果が、レーザビームａがエリアＡＩ内でない（設定された窓の範囲外）ことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”、ＷＵＬ＝”１”／ＷＬＬ＝”０”またはＷＵＬ＝”０”／ＷＬＬ＝”０”であれば（ステップＳＴ１２２ノー）、レーザビームａが設定された窓の範囲外の何処を通過したかチェックされる（ステップＳＴ１２４、ＳＴ１２８）。
【０５２６】
すなわち、レーザビームａが設定された窓の上側を通過したことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”であれば（ステップＳＴ１２４イエス）、レーザビームａの通過位置がさらにＸ１≒１０μｍ下がるようにガルバノミラー３３ａが制御される（ステップＳＴ１２６）。
【０５２７】
ステップＳＴ１２４でレーザビームａが窓の上側を通過していない（ＷＵＬ＝”０”／ＷＬＬ＝”１”でない）と判定され（ステップＳＴ１２４ノー）、さらに設定された窓の下側を通過してもいない（ＷＵＬ＝”１”／ＷＬＬ＝”０”でない）と判定されたときは（ステップＳＴ１２８ノー）、その前のステップＳＴ１２２での判定（ＷＵＬ＝”１”／ＷＬＬ＝”１”でない）と矛盾するので、エラーとなり、図４１の処理は終了または中断する。
【０５２８】
ステップＳＴ１２８において、レーザビームａが設定された窓の範囲の下側を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”０”）と判定されたときは（ステップＳＴ１２８イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ１≒１０μｍ上がるようにガルバノミラー３３ａを制御する（ステップＳＴ１３０）。
【０５２９】
ウインドウコンパレータ４３０＊の窓の範囲ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上述のように設定して図４１の処理（ステップＳＴ１２０〜ＳＴ１３０）を反復実行することで、レーザビームａが図３９のＡ１エリア内を通過するようになる。
【０５３０】
ここで、レーザビーム通過エリアとウインドウコンパレータ出力との関係は、以下のようになっている：
Ａ１Ｕ内              ：［ＷＵＬ、ＷＬＬ］＝［０、１］
Ａ１Ｌ内              ：［ＷＵＬ、ＷＬＬ］＝［１、０］
Ａ１内                ：［ＷＵＬ、ＷＬＬ］＝［１、１］
Ａ１、Ａ１Ｕ、Ａ１Ｌ外：［ＷＵＬ、ＷＬＬ］＝［１、１］
以上の動作をまとめると、次のようになる。
【０５３１】
すなわち、図４１のステップＳＴ１０６〜ＳＴ１１４の処理において、ビーム通過位置がエリアＡ１Ｕ内と判定された場合には（ＳＴ１１０イエス）、ガルバノミラー３３ａに指示値を与えビームａをＸ１（μｍ）下方向に移動させて（ＳＴ１１８）、次のステップＳＴ１２０に移行する。
【０５３２】
また、ビーム通過位置がエリアＡ１Ｌ内の場合には（ＳＴ１１４イエス）、ガルバノミラー２２ａに指示値を与え、ビームａをＸ１（μｍ）上方向に移動させて（ＳＴ１１６）、次のステップＳＴ１２０に移行する。
【０５３３】
ここで、単位移動量Ｘ１は、図３９のＡ１エリアより小さい値に選ばれる。この例ではＸ１≒１０μｍとしている。
【０５３４】
一方、ビーム通過位置が上記以外（Ａ１内、またはＡ１、Ａ１Ｕ、Ａ１Ｌ外）の場合には（ステップＳＴ１１０ノー；ステップＳＴ１１２ノー）、ガルバノミラー３３ａに指示値を与え、ビームａの通過位置が現状からさらにＸ０（μｍ）下方向になるようビームを移動させ、Ａ１ＵまたはＡ１Ｌ内をビームが通過するようになるまで、以上の動作を繰り返す。
【０５３５】
ちなみに、上記以外の場合、すなわち、Ａ１Ｕ内でなく、Ａ１Ｌ内でなく、Ａ１内でなく、Ａ１、Ａ１Ｕ、Ａ１Ｌ外でもない場合（つまりあり得ないビーム通過状態の場合）、ＣＰＵは、このことを、ウインドウコンパレータ４３０＊出力［ＷＵＬ＝”０”、ＷＬＬ＝”０”］あるいはフリップフロップ回路４３２＊出力［Ｄ４３２Ｈ＝”１”、Ｄ４３２Ｌ＝”１”］により検知できる。この場合は、ＣＰＵはエラーフラグを立て、制御を中断または停止する。
【０５３６】
図４１のステップＳＴ１２２において、レーザビームａが設定された窓の範囲内（図３９のＡ１エリア内）を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”１”）と判定されたときは（ステップＳＴ１２２イエス）、図４２の処理に移る。
【０５３７】
レーザビームａがエリアＡ１内を通過したことが検知された場合には、図３３の制御部５１のＣＰＵは、図４２の処理において、ウインドウコンパレータ４３０＊のしきい値の指示データＢＭＤＡを変更して（ステップＳＴ１３２）、ウインドウコンパレータの「窓」を、図３９のＶＨ１〜ＶＬ１（エリアＡ１）からＶＨ２〜ＶＬ２（エリアＡ２）に狭くする。
【０５３８】
すなわち、図３９のＡ２エリア内を目標とするビーム位置制御の場合では、図３５のウインドウコンパレータ４３０＊のしきい値および位置修正移動量は、たとえば以下のように設定される：
ＷＩＮＴＨＨ→ＶＨ２（Ｖ）＝９９Ｈ
ＷＩＮＴＨＬ→ＶＬ２（Ｖ）＝６６Ｈ
移動量      →Ｘ２（μｍ）≒３μｍ（エリアＡ２より小さな値）
制御部５１のＣＰＵは、ウインドウコンパレータ４３０＊の窓の広さを規定するしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上記ＶＨ２／ＶＬ２に変更してから（ステップＳＴ１３２）、ウインドウコンパレータ４３０＊における積分出力Ｖｏとしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬとの比較結果（ＷＵＬ／ＷＬＬ）を読み込む（ステップＳＴ１３４）。
【０５３９】
ウインドウコンパレータ４３０＊の比較結果が、レーザビームａがエリアＡ２内でない（設定された窓の範囲外）ことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”、ＷＵＬ＝”１”／ＷＬＬ＝”０”またはＷＵＬ＝”０”／ＷＬＬ＝”０”であれば（ステップＳＴ１３６ノー）、レーザビームａが設定された窓の範囲外の何処を通過したかチェックされる（ステップＳＴ１３８、ＳＴ１４２）。
【０５４０】
すなわち、レーザビームａが設定された窓の上側を通過したことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”であれば（ステップＳＴ１３８イエス）、レーザビームａの通過位置がさらにＸ２≒３μｍ下がるようにガルバノミラー３３ａが制御される（ステップＳＴ１４０）。
【０５４１】
ステップＳＴ１３８でレーザビームａが窓の上側を通過していない（ＷＵＬ＝”０”／ＷＬＬ＝”１”でない）と判定され（ステップＳＴ１３８ノー）、さらに設定された窓の下側を通過してもいない（ＷＵＬ＝”１”／ＷＬＬ＝”０”でない）と判定されたときは（ステップＳＴ１４２ノー）、その前のステップＳＴ１３６での判定（ＷＵＬ＝”１”／ＷＬＬ＝”１”でない）と矛盾するので、エラーとなり、図４２の処理は終了または中断する。
【０５４２】
ステップＳＴ１４２において、レーザビームａが設定された窓の範囲の下側を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”０”）と判定されたときは（ステップＳＴ１４２イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ２≒３μｍ上がるようにガルバノミラー３３ａを制御する（ステップＳＴ１４４）。
【０５４３】
ウインドウコンパレータ４３０＊の窓の範囲ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上述のように設定して図４２の処理（ステップＳＴ１３４〜ＳＴ１４４）を反復実行することで、レーザビームａが図３９のＡ２エリア内を通過するようになる。
【０５４４】
図４２の処理において、レーザビームａがエリアＡ２内を通過したことが検知された場合には（ステップＳＴ１３６イエス）、ウインドウコンパレータ４３０＊のしきい値の指示データＢＭＤＡが変更され（ステップＳＴ１４６）、ウインドウコンパレータの「窓」が、図３９のＶＨ２〜ＶＬ２（エリアＡ２）からＶＨ３〜ＶＬ３（エリアＡ３）に狭くなる。
【０５４５】
図３９のＡ３エリア内を目標とするビーム位置制御の場合では、図３５のウインドウコンパレータ４３０＊のしきい値および位置修正移動量は、たとえば以下のように変更される：
ＷＩＮＴＨＨ→ＶＨ３（Ｖ）＝８ＦＨ
ＷＩＮＴＨＬ→ＶＬ３（Ｖ）＝７０Ｈ
移動量      →Ｘ３（μｍ）≒１μｍ（エリアＡ３より小さな値）
制御部５１のＣＰＵは、ウインドウコンパレータ４３０＊の窓の広さを規定するしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上記ＶＨ３／ＶＬ３に変更してから（ステップＳＴ１４６）、ウインドウコンパレータ４３０＊における積分出力Ｖｏとしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬとの比較結果（ＷＵＬ／ＷＬＬ）を読み込む（ステップＳＴ１４８）。
【０５４６】
ウインドウコンパレータ４３０＊の比較結果が、レーザビームａがエリアＡ３内でない（設定された窓の範囲外）ことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”、ＷＵＬ＝”１”／ＷＬＬ＝”０”またはＷＵＬ＝”０”／ＷＬＬ＝”０”であれば（ステップＳＴ１５０ノー）、レーザビームａが設定された窓の範囲外の何処を通過したかチェックされる（ステップＳＴ１５２、ＳＴ１５６）。
【０５４７】
すなわち、レーザビームａが設定された窓の上側を通過したことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”であれば（ステップＳＴ１５２イエス）、レーザビームａの通過位置がさらにＸ３≒１μｍ下がるようにガルバノミラー３３ａが制御される（ステップＳＴ１５４）。
【０５４８】
ステップＳＴ１５２でレーザビームａが窓の上側を通過していない（ＷＵＬ＝”０”／ＷＬＬ＝”１”でない）と判定され（ステップＳＴ１５２ノー）、さらに設定された窓の下側を通過してもいない（ＷＵＬ＝”１”／ＷＬＬ＝”０”でない）と判定されたときは（ステップＳＴ１５６ノー）、その前のステップＳＴ１５０での判定（ＷＵＬ＝”１”／ＷＬＬ＝”１”でない）と矛盾するので、エラーとなり、図４２の処理は終了または中断する。
【０５４９】
ステップＳＴ１５６において、レーザビームａが設定された窓の範囲の下側を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”０”）と判定されたときは（ステップＳＴ１５６イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ３≒１μｍ上がるようにガルバノミラー３３ａを制御する（ステップＳＴ１５８）。
【０５５０】
ウインドウコンパレータ４３０＊の窓の範囲ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上述のように設定して図４２の処理（ステップＳＴ１４８〜ＳＴ１５８）を反復実行することで、レーザビームａが図３９のＡ３エリア内を通過するようになる。
【０５５１】
図４２のステップＳＴ１５０において、レーザビームａが設定された窓の範囲内（図３９のＡ３エリア内）を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”１”）と判定されたときは（ステップＳＴ１５０イエス）、図４３の処理に移る。
【０５５２】
レーザビームａがエリアＡ３内を通過したことが検知された場合には、図３３の制御部５１のＣＰＵは、図４３の処理において、ウインドウコンパレータ４３０＊のしきい値の指示データＢＭＤＡを変更して（ステップＳＴ１６０）、ウインドウコンパレータの「窓」を、図３９のＶＨ３〜ＶＬ３（エリアＡ３）からＶＨ４〜ＶＬ４（エリアＡ４）に狭くする。
【０５５３】
すなわち、図３９のＡ４エリア内を目標とするビーム位置制御の場合では、図３５のウインドウコンパレータ４３０＊のしきい値および位置修正移動量は、たとえば以下のように変更される：
ＷＩＮＴＨＨ→ＶＨ４（Ｖ）＝８５Ｈ
ＷＩＮＴＨＬ→ＶＬ４（Ｖ）＝７ＡＨ
移動量      →Ｘ４（μｍ）≒０．１μｍ（エリアＡ４より小さな値）制御部５１のＣＰＵは、ウインドウコンパレータ４３０＊の窓の広さを規定するしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上記ＶＨ４／ＶＬ４に変更してから（ステップＳＴ１６０）、ウインドウコンパレータ４３０＊における積分出力Ｖｏとしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬとの比較結果（ＷＵＬ／ＷＬＬ）を読み込む（ステップＳＴ１６２）。
【０５５４】
ウインドウコンパレータ４３０＊の比較結果が、レーザビームａがエリアＡ４内でない（設定された窓の範囲外）ことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”、ＷＵＬ＝”１”／ＷＬＬ＝”０”またはＷＵＬ＝”０”／ＷＬＬ＝”０”であれば（ステップＳＴ１６４ノー）、レーザビームａが設定された窓の範囲外の何処を通過したかチェックされる（ステップＳＴ１６６、ＳＴ１７０）。
【０５５５】
すなわち、レーザビームａが設定された窓の上側を通過したことを示すＷＵＬ＝”０”／ＷＬＬ＝”１”であれば（ステップＳＴ１６６イエス）、レーザビームａの通過位置がさらにＸ４≒０．１μｍ下がるようにガルバノミラー３３ａが制御される（ステップＳＴ１６８）。
【０５５６】
ステップＳＴ１６６でレーザビームａが窓の上側を通過していない（ＷＵＬ＝”０”／ＷＬＬ＝”１”でない）と判定され（ステップＳＴ１６６ノー）、さらに設定された窓の下側を通過してもいない（ＷＵＬ＝”１”／ＷＬＬ＝”０”でない）と判定されたときは（ステップＳＴ１７０ノー）、その前のステップＳＴ１６４での判定（ＷＵＬ＝”１”／ＷＬＬ＝”１”でない）と矛盾するので、エラーとなり、図４３の処理は終了または中断する。
【０５５７】
ステップＳＴ１７０において、レーザビームａが設定された窓の範囲の下側を通過した（ＷＵＬ＝”１”／ＷＬＬ＝”０”）と判定されたときは（ステップＳＴ１７０イエス）、ＣＰＵは、レーザビームａの通過位置が現状からＸ４≒０．１μｍ上がるようにガルバノミラー３３ａを制御する（ステップＳＴ１７２）。
【０５５８】
ウインドウコンパレータ４３０＊の窓の範囲ＷＩＮＴＨＨ／ＷＩＮＴＨＬを上述のように設定して図４３の処理（ステップＳＴ１６２〜ＳＴ１７２）を反復実行することで、レーザビームａが、最終目標である、図３９のＡ４エリア内を通過するようになる。
【０５５９】
以上の制御動作によりレーザビームａが所定の位置（図３９のＡ４エリア内）を通過するようになれば、ウインドウコンパレータ４３０＊に設定するしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬを適宜変更して、残りのレーザビームに対するビーム通過位置制御が、同様に行なわれる。
【０５６０】
これにより、図３３の装置で画像形成に用いられる４本のレーザビームａ〜ｄそれぞれのビーム間隔が、図３のセンサ３８０のパターンＳＦ〜ＳＪのパターン間隔に対応した所望のピッチに制御される。
【０５６１】
以上述べた図４０〜図４３の動作を簡単にまとめると、次のようになる。すなわち、初めに、十分大きな窓が開くように、ウインドウコンパレータ４３０＊のしきい値を設定する。そして、レーザビームがウインドウコンパレータの窓内を通過することを検知する毎に、窓が段々狭くなるようにウインドウコンパレータのしきい値を変更しながら、ビームが通過するセンサ面上のエリアを、Ａ２、Ａ３、…と順に狭めて行く。このような動作を反復することによって、最終目標エリアであるＡ４エリア内をビームが通過するように、ビーム位置が自動的に調整される。
【０５６２】
以上説明したこの発明の実施の形態によれば、マルチビーム光学系を使用した画像形成装置において、ビーム通過位置検知部およびビーム通過位置制御にウインドウコンパレータを利用することによって、ビームピッチ誤差の少ない高画質な画像を得ることができる。
【０５６３】
図４４は、レーザパワーの検知特性（ＰＨ／ＰＬ）とウインドウコンパレータの比較基準値（上下のしきい値ＶＨ／ＶＬ）との対応関係を例示する図である。
【０５６４】
ここでは、レーザパワー検知を行なう場合、対応する積分出力Ｖｏは、所定の基準電圧（たとえばＶｒｅｆ＝２．５Ｖ）を基準として上側にしか出力されないようになっている。そこで、図３５のウインドウコンパレータ４３０＊を利用してレーザパワー検知を行なう場合には、ウインドウコンパレータ４３０＊のしきい値も基準電圧より上側で設定することになる。
【０５６５】
すなわち、パワー検知部にウインドウコンパレータ４３０＊が利用される場合、パワー検知部は、図４４に例示するような特性となるように調整される。ここで具体的な数値を例示すれば、パワー検知部は、たとえば３００μＷのレーザビームを所定の速度で走査させたときに、積分出力Ｖｏが３．５Ｖとなるように、予め調整される。
【０５６６】
図４４の例では、しきい値ＶＢ０が基準電圧（Ｖｒｅｆ＝２．５Ｖ）に相当し、しきい値ＶＴ０が＋５Ｖに相当する。ここではレーザパワーを最終的にＰＬ３（μＷ）からＰＨ３（μＷ）の間に制御する際の、しきい値の設定変化の様子が示されている。
【０５６７】
レーザパワーをＰＬ３（μＷ）からＰＨ３（μＷ）の間に制御する場合には、ウインドウコンパレータ４３０＊のしきい値を、ウインドウコンパレータの窓が徐々に狭くなるように、［ＶＨ０／ＶＬ０］→［ＶＨ１／ＶＬ１］→［ＶＨ２／ＶＬ２］→［ＶＨ３／ＶＬ３］と順に設定して行く。そして、レーザパワー（レーザ光量）に対応する積分出力Ｖｏが、徐々の狭まるウインドウコンパレータ４３０＊の窓のしきい値間（図３５のＷＩＮＴＨＨ〜ＷＩＮＴＨＬの間）に入るよう、レーザパワーを調整する。
【０５６８】
図４５は、レーザパワーを図４４のしきい値ＶＨ３／ＶＬ３に対応する値（ＰＬ３μＷ〜ＰＨ３μＷの範囲内）に制御する場合の、ウインドウコンパレータ４３０＊のしきい値変化の様子を示す図である。
【０５６９】
ここでは、図４５に例示されたしきい値指示データのヘキサデシマル値（ＶＨ３＝４ＤＨ／ＶＬ３＝４ＣＨ；図２５の例示とは異なる数値）が、レーザパワー３００μＷに相当するものと仮定している。
【０５７０】
なお、図４５ではレーザパワー３００μＷに対応する指示データとしてヘキサデシマル値４ＤＨ／４ＣＨが例示されているが、図２５の例ではヘキサデシマル値８０Ｈがレーザパワー３００μＷに対応している。図２５と図４５は別の例示なので、これは矛盾ではない。
【０５７１】
図２５は要するにレーザパワーの大きさ（μＷ）をＣＰＵ等からの指示データで任意に指定できることを示唆しているのであり、図４５はウインドウコンパレータの窓の範囲をＣＰＵ等からの指示データで自由に変更できることを示唆している。そして、図４５は、ウインドウコンパレータの窓が所定の範囲まで狭まったときのしきい値指示データに対応する値に、レーザパワーを制御できることを、説明するために用意されている。
【０５７２】
図４６は、レーザパワーの制御を、図３３および図３５の構成（ウインドウコンパレータ４３０＊利用）を利用して行なう場合を説明するフローチャートである。
【０５７３】
以下、図４４〜図４６を参照しながら、制御用パワー制御について説明する。この制御では、レーザパワーがセンサ面上で３００μＷとなるようにレーザ光量を調整することを想定している。すなわち、ウインドウコンパレータ４３０＊のしきい値をＶＨ３およびＶＬ３に設定したときのウインドウコンパレータの出力が、［ＷＵＬ、ＷＬＬ］＝［１、１］となるようにレーザの指示値を変更して、レーザパワーを所望値（３００μＷ）に調整する。図４４ではＰＬ３＜３００μＷ＜ＰＨ３となっている。
【０５７４】
図４６において、まず、所望のレーザを所定の値（指示値）で発光させる（ステップＳＴ２００）。たとえば、第１レーザ３１ａのレーザドライバ３２ａに所定の指示値を設定し、センサ面上で約３００μＷとなるよう発光させる。
【０５７５】
図３３の装置のレーザは、工場出荷時に、所定の指示値で３００μＷの発光を行うよう予め調整されている。しかし、時間の経過に従って光学ユニット１３内の塵や埃などによりポリゴンミラー３５のレーザ反射面が汚れると、検知器３８のセンサ面上に照射されるレーザパワーが弱くなり、所望のセンサ出力が得られなくなる。このため、たとえ工場出荷時にレーザパワーが３００μＷの発光を行うよう予め調整されていたとしても、このパワー制御が必要になる。
【０５７６】
次に、ウインドウコンパレータ４３０＊のしきい値を以下のように設定（ステップＳＴ２０２）する。そして、設定されたしきい値とそのときの積分出力Ｖｏとを比較し、比較結果として、ウインドウコンパレータ４３０＊の出力を読み込む（ステップＳＴ２０４）。
【０５７７】
ＷＩＮＴＨＨ→ＶＨ０（Ｖ）＝５ＡＨ
ＷＩＮＴＨＬ→ＶＬ０（Ｖ）＝３ＦＨ
このとき、図４５の領域とパワーとウインドウコンパレータ４３０＊での比較結果の関係は、次のいずれかになる：
領域Ｕ０：３７９〜７５０μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ０：２２１〜３７９μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ０：    ０〜２２１μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ウインドウコンパレータ４３０＊の出力が［１、１］でない場合は、そのときの積分出力Ｖｏがウインドウ（＝ウインドウコンパレータ４３０＊の検知窓）の範囲外にあることになる（ステップＳＴ２０６ノー）。
【０５７８】
ウインドウコンパレータの出力が［０、１］の場合（ステップＳＴ２０８イエス；ウインドウよりも上）には、レーザパワーが大きすぎるということなので、レーザドライバの指示値を下げてレーザパワーを小さくし（ステップＳＴ２１０）、再度判定を行なう（ステップＳＴ２０４、ＳＴ２０６）。
【０５７９】
ウインドウコンパレータの出力が［１、０］の場合（ステップＳＴ２０８ノー、ステップＳＴ２１２イエス；所望のウインドウよりも下）には、レーザパワーが小さすぎるということなので、レーザドライバの指示値を上げてレーザパワーを大きくし（ステップＳＴ２１４）、再度判定を行なう（ステップＳＴ２０４、ＳＴ２０６）。
【０５８０】
なお、積分出力Ｖｏがウインドウ外であり（ステップＳＴ２０６のー）、ウインドウの上でなく（ステップＳＴ２０８ノー）、ウインドウの下でもない（ステップＳＴ２１２ノー）ときは、積分出力Ｖｏの属する領域が存在しないことになるので、エラーとなり、図４６の制御ルーチンは中断あるいは終了する。
【０５８１】
以上の工程（ステップＳＴ２１０、ＳＴ２１４）でのレーザパワーの増減量は、図４５の領域Ｕ０、Ｗ０、Ｌ０の中で最小の領域よりも小さな値とする。上記例では領域Ｗ０（２２１μＷから３７９μＷまでの１５８μＷ）が最小なので、レーザパワーの増減量は、その半分程度の８０μＷとする。
【０５８２】
以上の処理（ＳＴ２０４〜ＳＴ２１４）は、ウインドウコンパレータ４３０＊の出力が［１、１］となるまで、つまり積分出力Ｖｏがウインドウコンパレータ４３０＊のそのときの窓の範囲（図４５のＷ０）内に入ってくるまで、反復される。
【０５８３】
ウインドウコンパレータ４３０＊の出力が［１、１］となったら（ステップＳＴ２０６イエス；つまり積分出力Ｖｏがウインドウ内に入ったら）、新たに以下のしきい値を設定する（ステップＳＴ２１６）。
【０５８４】
ＷＩＮＴＨＨ→ＶＨ１（Ｖ）＝５１Ｈ
ＷＩＮＴＨＬ→ＶＬ１（Ｖ）＝４８Ｈ
このときの領域とパワーとの関係は、次のようになる：
領域Ｕ１：３２６〜３７９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ１：２７４〜３２６μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ１：２２１〜２７４μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
続いて、現在ウインドウコンパレータ４３０＊で比較に使用されているしきい値（ＶＨ１／ＶＬ１）が最も狭い窓（ウインドウ）に該当する値になっているかどうかチェックされる（ステップＳＴ２１８）。
【０５８５】
現在のしきい値（ＶＨ１／ＶＬ１）が最も狭い窓に該当しないときは（ステップＳＴ２１８ノー；しきい値が図４５のＶＨ３／ＶＬ３でない）、ステップＳＴ２０４に戻り、現在のしきい値（ＶＨ１／ＶＬ１）に基づいて、積分出力Ｖｏが所望のウインドウ（図４５のＷ１）内に入ってくるまで（ステップＳＴ２０６イエス）、前述した工程（ＳＴ２０４〜ＳＴ２１４）が反復されて、レーザパワーが調整される。
【０５８６】
この反復工程中（ＳＴ２１０、ＳＴ２１４）でのレーザパワー増減量は、図４５の領域Ｕ１、Ｗ１、Ｌ１のうち最小のもの（領域Ｗ１の５２μＷ）のおよそ半分である２５μＷ程度とする。
【０５８７】
以下、現在ウインドウコンパレータ４３０＊で比較に使用されているしきい値が最も狭い窓（ウインドウ）に該当する値になっているかどうかチェックしながら（ステップＳＴ２１８）、積分出力Ｖｏが目標のしきい値内に入るまで、以下のようにしきい値を変更しながら、上述した動作（ＳＴ２０４〜ＳＴ２１８）を繰り返す。
【０５８８】
ＷＩＮＴＨＨ→ＶＨ２（Ｖ）＝４ＥＨ
ＷＩＮＴＨＬ→ＶＬ２（Ｖ）＝４ＢＨ
このときの領域とパワーとの関係は、次の通り：
領域Ｕ２：３０９〜３２６μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ２：２９１〜３０９μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ２：２７４〜２９１μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ここでは、図４５の領域Ｗ２に入るまでレーザパワーを調整する。ここでのレーザパワー増減量は９μＷ程度とする。
【０５８９】
ＷＩＮＴＨＨ→ＶＨ３（Ｖ）＝４ＤＨ
ＷＩＮＴＨＬ→ＶＬ３（Ｖ）＝４ＣＨ
このときの領域とパワーとの関係は、次の通り：
領域Ｕ３：３０３〜３０９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ３：２９７〜３０３μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ３：２９１〜２９７μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ここでは、図４５の領域Ｗ３に入るまでレーザパワーを調整する。ここでのレーザパワー増減量は２μＷ程度とする。
【０５９０】
そのときのしきい値（ＶＨ２／ＶＬ２）が最も狭い窓に該当しない間は（ステップＳＴ２１８ノー）、積分出力Ｖｏが所望のウインドウ（図４５のＷ３）内に入ってくるまで（ステップＳＴ２０６イエス）、前述した工程（ＳＴ２０４〜ＳＴ２１４）が反復されて、レーザパワーが調整される。
【０５９１】
積分出力Ｖｏが所望のウインドウ（図４５のＷ３）内に入ったと判定され（ステップＳＴ２０６イエス）、そのときのしきい値（ＶＨ３／ＶＬ３）が最も狭い窓に該当する場合は（ステップＳＴ２１８イエス）、所望のレーザパワーが得られたことになり、図４６の処理は終了する。
【０５９２】
次に、ウインドウコンパレータを利用した画像形成用パワー制御ルーチンについて説明する。このパワー制御の大筋の流れは次のようになる。
【０５９３】
すなわち、画像形成用パワー制御では、まず、基準となるレーザ（ここでは第１レーザ３１ａ）を所定の指示値で発光させ、そのレーザパワーをセンサ３８０で測定し、メモリ５２に記録する。
【０５９４】
次に、メモリ５２に記録されたセンサ３８０での測定結果を基準として、その他のレーザ（３１ｂ〜３１ｄ）のレーザパワーが、基準となるレーザ（３１ａ）の測定結果と一致するように、レーザドライバ（３２ｂ〜３２ｄ）への指示値を調整する。
【０５９５】
図４７は、ウインドウコンパレータ４３０＊を利用して基準となるレーザビーム（３１ａ）の光量（レーザパワー）を測定し、その測定結果をメモリ５２に記録するまでの手順を説明するフローチャートである。
【０５９６】
また、図４８は、レーザビーム３１ａに対する画像形成用レーザパワーを、所望のしきい値ＶＨ３／ＶＬ３に対応する値（図４４の例でいえば、ＰＬ３μＷ〜ＰＨ３μＷの範囲内）に制御する場合の、ウインドウコンパレータ４３０＊のしきい値変化の様子を例示している。（なお、図４８に例示されるしきい値データのヘキサデシマル値は図４５に例示されるしきい値データのヘキサデシマル値と異なっている。ここで重要なのは、しきい値データのヘキサデシマル値自体ではなく、制御の進行に伴いしきい値データのヘキサデシマル値が変化することで、ウインドウコンパレータ４３０＊の窓が徐々に狭まって行く様子を把握することである。）
以下、図４８を参照しながら、図４７の手順を説明する。
【０５９７】
まず、図３３の出力制御部５１のＣＰＵは、ポリゴンモータ３６を回転させ、レーザビーム３１ａがビーム光位置検知器３８のパワー検知センサパターンＳＬのほぼ中央を通過するように、ガルバノミラー３３ａに指示値を与える。パワー検知センサパターンＳＬは副走査方向に十分余裕のある形状としてある。このため、パワー制御の際のビーム通過位置には、ビーム通過位置制御（副走査ビーム位置制御）ほどの精度は必要としない。
【０５９８】
図４７の処理において、図３３の主制御部５１のＣＰＵは、所定の指示データ（図４８の例では６５Ｈと４ＡＨ）により、図３５のウインドウコンパレータ４３０＊（ＣＭＰ１とＣＭＰ２）のしきい値ＷＩＮＴＨＨ／ＷＩＮＴＨＬをＶＨ０／ＶＬ０に設定する（ステップＳＴ２４０）。
【０５９９】
続いて、ＣＰＵは、しきい値ＶＨ０／ＶＬ０とそのときの積分出力Ｖｏとの比較結果であるコンパレータ出力（ＷＵＬ／ＷＬＬ）を読み込む（ステップＳＴ２４２）。
【０６００】
上記しきい値ＶＨ０／ＶＬ０（６５Ｈ／４ＡＨ）は、ビーム光量検知部３８の検知特性をほぼ３等分（図４８では領域を３分割したＵ０とＷ０とＬ０）するように設定されている。つまり、ＣＰＵは、コンパレータ出力の内容（ＷＵＬ／ＷＬＬの論理レベルの組み合わせ）によって、第１レーザビーム（３１ａ）のビーム光量（レーザパワー）が３分割された領域（図４８のＵ０とＷ０とＬ０）のどこに属するかを判定する（ステップＳＴ２４４）。
【０６０１】
このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
ＷＩＮＴＨＨ→ＶＨ０（Ｖ）＝６５Ｈ
ＷＩＮＴＨＬ→ＶＬ０（Ｖ）＝４ＡＨ
領域Ｕ０：３１５〜７５０μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ０：１５６〜３１５μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ０：    ０〜１５６μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ステップＳＴ２４４において、ＶＨ０／ＶＬ０に基づき、レーザパワーが属する領域の判定（Ｕ０かＷ０かＬ０か）が終了したら、ウインドウコンパレータ４３０＊のしきい値が変更される（ステップＳＴ２４６）。
【０６０２】
ここで、ウインドウコンパレータ４３０＊のしきい値は、ウインドウコンパレータの窓が徐々に狭くなるように順に変更される。
【０６０３】
たとえば、現在積分出力Ｖｏが属する領域がＷ０の場合には、ＶＬ０〜ＶＨ０をほぼ３等分するようなしきい値に変更される（ステップＳＴ２４６）。その後、再度コンパレータの出力を読み込む（ステップＳＴ２４２）。
【０６０４】
このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
ＷＩＮＴＨＨ→ＶＨ１（Ｖ）＝５ＣＨ
ＷＩＮＴＨＬ→ＶＬ１（Ｖ）＝５３Ｈ
領域Ｕ１：２６２〜３１５μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ１：２０９〜２６２μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ１：１５６〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０
このときステップＳＴ２４６で設定されたしきい値はウインドウコンパレータ４３０＊の最も狭い窓でない（ＶＨ３／ＶＬ３でない）ので（ステップＳＴ２４８ノー）、ステップＳＴ２４２〜ＳＴ２４８の処理が反復される。
【０６０５】
すなわち、新たなしきい値を用いた比較結果であるウインドウコンパレータ４３０＊の出力を読み込み（ステップＳＴ２４２）、領域の判定を行い（ステップＳＴ２４４）、ウインドウコンパレータ４３０＊のしきい値を変更する（ステップＳＴ２４６）。ここで判定された領域がＬ１の場合は、ＶＬ０〜ＶＬ１を３等分するようなしきい値に変更する。
【０６０６】
このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
ＷＩＮＴＨＨ→ＶＨ２（Ｖ）＝５０Ｈ
ＷＩＮＴＨＬ→ＶＬ２（Ｖ）＝４ＤＨ
領域Ｕ２：１９１〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ２：１７４〜１９１μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ２：１５６〜１７４μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
このときステップＳＴ２４６で設定されたしきい値はウインドウコンパレータ４３０＊の最も狭い窓でない（ＶＨ３／ＶＬ３でない）ので（ステップＳＴ２４８ノー）、ステップＳＴ２４２〜ＳＴ２４８の処理が再び繰り返される。
【０６０７】
すなわち、新たなしきい値を用いた比較結果であるウインドウコンパレータ４３０＊の出力を読み込み（ステップＳＴ２４２）、領域の判定を行い（ステップＳＴ２４４）、ウインドウコンパレータのしきい値を変更する（ステップＳＴ２４６）。ここで判定された領域がＵ２の場合は、ＶＬ２〜ＶＬ１を３等分するようなしきい値に変更する。
【０６０８】
このときのしきい値と領域とレーザパワーとコンパレータ出力（比較結果）との対応関係は、以下のようになる：
ＷＩＮＴＨＨ→ＶＨ３（Ｖ）＝５２Ｈ
ＷＩＮＴＨＬ→ＶＬ３（Ｖ）＝５１Ｈ
領域Ｕ３：２０３〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ３：１９７〜２０３μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ３：１９１〜１９７μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
続いて、ウインドウコンパレータ４３０＊において、最も狭い窓（ＶＨ３／ＶＬ３）により積分出力Ｖｏの比較が実行される。この比較の結果、たとえばウインドウコンパレータ出力が［ＷＵＬ、ＷＬＬ］＝［１、１］であれば、積分出力Ｖｏは図４５の領域Ｗ３（ウインドウコンパレータ４３０＊の最も狭い窓）内に入っていると判定される（ステップＳＴ２４４）。
【０６０９】
このときのしきい値はウインドウコンパレータ４３０＊の最も狭い窓（ＶＨ３／ＶＬ３）なので（ステップＳＴ２４８イエス）、そのときのしきい値（５２Ｈ／５１Ｈ）が、第１レーザ３１ａのビームパワーを表すデータとして、メモリ５２に記録される（ステップＳＴ２５０）。
【０６１０】
こうして第１レーザ３１ａのパワー測定が終了すると、記録されたしきい値とウインドウコンパレータ４３０＊の出力を基準として、その他のレーザ（３１ｂ〜３１ｄ）がこの基準値と等しくなるように、レーザパワーが調整される。
【０６１１】
この例では、しきい値がＶＨ３＝５２Ｈ、ＶＬ３＝５１Ｈの時の領域Ｗ３が、他のレーザに対するレーザパワー調整の基準となる。
【０６１２】
図４９および図５０は、レーザパワーの相対値制御を、図３３および図３５の構成（ウインドウコンパレータ４３０＊利用）を利用して行なう場合を説明するフローチャートである。
【０６１３】
この制御では、レーザ３１ｂ〜３１ｄ各々のレーザパワーが、センサ面上で、基準レーザ３１ａのレーザパワー（たとえば３００μＷ）と同じになるようにレーザ光量を調整することを目標としている。
【０６１４】
すなわち、ウインドウコンパレータ４３０＊のしきい値をＶＨ３およびＶＬ３に設定したときのウインドウコンパレータの出力が、［ＷＵＬ、ＷＬＬ］＝［１、１］となるようにレーザの指示値を変更し、レーザパワーを調整する。
【０６１５】
ここで、メモリ５２に記録されたデータでレーザ３１ａの光量がセンサ面上で３００μＷに調整されたとしても、この記録データをそのまま残りのレーザ（３１ｂ〜３１ｄ）に適用すればそれで目標達成というわけではない、ということに注意すべきである。
【０６１６】
メモリ５２の記録データを利用すれば残りのレーザ（３１ｂ〜３１ｄ）のセンサ面上でのパワーを３００μＷに近い値に設定できる可能性は高いが、工場出荷後の長期運転に伴う各レーザの経時変化のばらつきその他を考慮すれば、メモリ５２の記録データをそのまま用いたのではマルチビーム間にレーザパワーのばらつきが生じる可能性がある。このため、高画質を望むなら、基準レーザのデータを記録した後さらに、残りのレーザ（３１ｂ〜３１ｄ）各々について、基準レーザに合わせる個別のレーザパワー制御（基準レーザに対する残りレーザの相対値制御）が必要となる。
【０６１７】
以下、図４８〜図５０を参照しながら、図３３のメモリ５２に記録された基準レーザ（３１ａ）の測定データを利用したレーザパワー制御（相対値制御）について説明する。
【０６１８】
まず、所望のレーザを所定の値（指示値）で発光させる（ステップＳＴ２６０）。たとえば、第２レーザ３１ｂのレーザドライバ３２ｂに所定の指示値を設定し、
センサ面上で約３００μＷとなるよう発光させる。
【０６１９】
次に、ウインドウコンパレータ４３０＊のしきい値を以下のように設定（ステップＳＴ２６２）する。そして、設定されたしきい値とそのときの積分出力Ｖｏとを比較し、比較結果として、ウインドウコンパレータ４３０＊の出力を読み込む（ステップＳＴ２６４）。
【０６２０】
ＷＩＮＴＨＨ→ＶＨ０（Ｖ）＝６５Ｈ
ＷＩＮＴＨＬ→ＶＬ０（Ｖ）＝４ＡＨ
このとき、図４８の領域とパワーとウインドウコンパレータ４３０＊での比較結果の関係は、次のいずれかになる：
領域Ｕ０：３１５〜７５０μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ０：１５６〜３１５μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ０：    ０〜１５６μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ウインドウコンパレータ４３０＊の出力が［１、１］でない場合は、そのときの積分出力Ｖｏがウインドウの範囲外にあることになる（ステップＳＴ２６６ノー）。
【０６２１】
ウインドウコンパレータの出力が［０、１］の場合（ステップＳＴ２６８イエス；ウインドウよりも上）には、レーザパワーが大きすぎるということなので、レーザドライバの指示値を下げてレーザパワーを小さくし（ステップＳＴ２７０）、再度判定を行なう（ステップＳＴ２６４、ＳＴ２６６）。
【０６２２】
ウインドウコンパレータの出力が［１、０］の場合（ステップＳＴ２６８ノー、ステップＳＴ２７２イエス；所望のウインドウよりも下）には、レーザパワーが小さすぎるということなので、レーザドライバの指示値を上げてレーザパワーを大きくし（ステップＳＴ２７４）、再度判定を行なう（ステップＳＴ２６４、ＳＴ２６６）。
【０６２３】
なお、積分出力Ｖｏがウインドウ外であり（ステップＳＴ２６６ノー）、ウインドウの上でなく（ステップＳＴ２６８ノー）、ウインドウの下でもない（ステップＳＴ２７２ノー）ときは、積分出力Ｖｏの属する領域が存在しないことになるので、エラーとなり、図４９の制御ルーチンは中断あるいは終了する。
【０６２４】
以上の工程（ステップＳＴ２７０、ＳＴ２７４）でのレーザパワーの増減量は、たとえば８０μＷ程度とする。
【０６２５】
以上の処理（ＳＴ２６４〜ＳＴ２７４）は、ウインドウコンパレータ４３０＊の出力が［１、１］となるまで、つまり積分出力Ｖｏがウインドウコンパレータ４３０＊のそのときの窓の範囲（図４８のＷ０）内に入ってくるまで、反復される。
【０６２６】
ウインドウコンパレータ４３０＊の出力が［１、１］となったら（ステップＳＴ２６６イエス；つまり積分出力Ｖｏがウインドウ内に入ったら）、図５０の処理に移り、新たに以下のしきい値を設定する（ステップＳＴ２７８）。
【０６２７】
そして、新たに設定されたしきい値とそのときの積分出力Ｖｏとを比較し、比較結果として、ウインドウコンパレータ４３０＊の出力を読み込む（ステップＳＴ２８０）。
【０６２８】
ＷＩＮＴＨＨ→ＶＨ１（Ｖ）＝５ＣＨ
ＷＩＮＴＨＬ→ＶＬ１（Ｖ）＝５３Ｈ
このときの領域とパワーとの関係は、次のようになる：
領域Ｕ１：２６２〜３１５μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ１：２０９〜２６２μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ１：１５６〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０
ウインドウコンパレータ４３０＊の出力が［１、１］でない場合は、そのときの積分出力Ｖｏがウインドウの範囲外にあることになる（ステップＳＴ２８２ノー）。
【０６２９】
ウインドウコンパレータの出力が［０、１］の場合（ステップＳＴ２８４イエス；ウインドウよりも上）には、レーザパワーが大きすぎるということなので、レーザドライバの指示値を下げてレーザパワーを小さくし（ステップＳＴ２８６）、再度判定を行なう（ステップＳＴ２８０、ＳＴ２８２）。
【０６３０】
ウインドウコンパレータの出力が［１、０］の場合（ステップＳＴ２８４ノー、ステップＳＴ２８８イエス；所望のウインドウよりも下）には、レーザパワーが小さすぎるということなので、レーザドライバの指示値を上げてレーザパワーを大きくし（ステップＳＴ２９０）、再度判定を行なう（ステップＳＴ２８０、ＳＴ２８２）。
【０６３１】
なお、積分出力Ｖｏがウインドウ外であり（ステップＳＴ２８２ノー）、ウインドウの上でなく（ステップＳＴ２８４ノー）、ウインドウの下でもない（ステップＳＴ２８８ノー）ときは、積分出力Ｖｏの属する領域が存在しないことになるので、エラーとなり、図５０の制御ルーチンは中断あるいは終了する。
【０６３２】
以上の工程（ステップＳＴ２８６、ＳＴ２９０）でのレーザパワーの増減量は、たとえば２５μＷ程度とする。
【０６３３】
以上の処理（ＳＴ２８０〜ＳＴ２９０）は、ウインドウコンパレータ４３０＊の出力が［１、１］となるまで、つまり積分出力Ｖｏがウインドウコンパレータ４３０＊のそのときの窓の範囲（図４８のＷ０）内に入ってくるまで、反復される。
【０６３４】
積分出力Ｖｏがウインドウコンパレータ４３０＊の窓内であれば（ステップＳＴ２８２イエス）、新たに以下のしきい値を設定する（ステップＳＴ２９２）。
【０６３５】
ＷＩＮＴＨＨ→ＶＨ２（Ｖ）＝５０Ｈ
ＷＩＮＴＨＬ→ＶＬ２（Ｖ）＝４ＤＨ
このときの領域とパワーとの関係は、次の通り：
領域Ｕ２：１９１〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ２：１７４〜１９１μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ２：１５６〜１７４μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
続いて、現在ウインドウコンパレータ４３０＊で比較に使用されているしきい値が最も狭い窓（ウインドウ）に該当する値になっているかどうかチェックされる（ステップＳＴ２９４）。
【０６３６】
しきい値が最も狭い窓に該当しないときは（ステップＳＴ２９４ノー；しきい値が図４８のＶＨ３／ＶＬ３でない）、積分出力Ｖｏが所望のウインドウ（図４８のＷ１）内に入ってくるまで（ステップＳＴ２８２イエス）、前述した工程（ＳＴ２８０〜ＳＴ２９０）が反復されて、レーザパワーが調整される。この工程（ＳＴ２８６、ＳＴ２９０）でのレーザパワー増減量は、たとえば９μＷ程度とする。
【０６３７】
以下、現在ウインドウコンパレータ４３０＊で比較に使用されているしきい値が最も狭い窓（ウインドウ）に該当する値になっているかどうかチェックしながら（ステップＳＴ２９４）、積分出力Ｖｏが目標のしきい値（一番狭い窓）内に入るまで、しきい値を変更しながら、以上の動作（ＳＴ２８０〜ＳＴ２９４）を繰り返す。
【０６３８】
すなわち、積分出力Ｖｏが現在（しきい値ＶＨ２／ＶＬ２）のウインドウコンパレータ４３０＊の窓内であれば（ステップＳＴ２８２イエス）、新たに以下のしきい値を設定する（ステップＳＴ２９２）。
【０６３９】
ＷＩＮＴＨＨ→ＶＨ３（Ｖ）＝５２Ｈ
ＷＩＮＴＨＬ→ＶＬ３（Ｖ）＝５１Ｈ
このときの領域とパワーとの関係は、次の通り：
領域Ｕ３：２０３〜２０９μＷ：［ＷＵＬ、ＷＬＬ］＝［０、１］
領域Ｗ３：１９７〜２０３μＷ：［ＷＵＬ、ＷＬＬ］＝［１、１］
領域Ｌ３：１９１〜１９７μＷ：［ＷＵＬ、ＷＬＬ］＝［１、０］
ここでのレーザパワー増減量は、たとえば２μＷ程度とする。
【０６４０】
上記しきい値ＶＨ３／ＶＬ３を用いたレーザパワー制御により積分出力Ｖｏがその時のウインドウコンパレータ４３０＊の窓に入れば（ステップＳＴ２８２イエス）、しきい値再設定の処理に入る（ステップＳＴ２９２）。しかし、現在のしきい値はＶＨ３／ＶＬ３であり、これ以上狭い窓を設定するしきい値はないので、しきい値はＶＨ３／ＶＬ３に設定されたままとなる（ステップＳＴ２９２）。
【０６４１】
この状態で、現在ウインドウコンパレータ４３０＊で比較に使用されているしきい値が最も狭い窓（ウインドウ）に該当する値になっているかどうかチェックされる（ステップＳＴ２９４）。
【０６４２】
この場合、現在のしきい値（ＶＨ３／ＶＬ３）が最も狭い窓（図４８の領域Ｗ３）に該当するので（ステップＳＴ２９４イエス）、図５０の処理は終了する。
【０６４３】
なお、図３３のメモリ５２に基準レーザのパワー測定データがあるので、図５０のステップＳＴ２７８設定するウインドウコンパレータ４３０＊のしきい値として、ＶＨ１／ＶＬ１は省略し、いきなりＶＨ２／ＶＬ２から設定を開始してもよい。
【０６４４】
もし、マルチビームの各レーザ間のばらつきが極小なら、図５０のステップＳＴ２７８設定するウインドウコンパレータ４３０＊のしきい値として、ＶＨ１／ＶＬ１およびＶＨ２／ＶＬ２は省略し、いきなりＶＨ３／ＶＬ３から設定開始できる場合もある。
【０６４５】
以上述べたようなレーザパワー制御を各レーザビーム各々に対して実行すれば、マルチビーム光学系を用いた画像形成装置において、濃度ムラの少ない高画質な画像を得ることができる。
【０６４６】
次に、ビーム位置検知部のオフセット検知（オフセット電圧の測定）について説明する。
【０６４７】
オフセット電圧がビーム検知に与える影響については、図７（ａ）、（ｂ）を参照して説明済みであるが、簡単に言い直すと、次のようになる。
【０６４８】
すなわち、図３のセンサ面上をビーム光が実際に通過する位置が理想的な位置にあったとしても、そのビーム通過位置を検知する回路（アナログオペアンプを用いた増幅回路）中にオフセット電圧が生じていると、ビーム光通過位置検知器出力処理回路４０から「ビーム光の位置がずれている」という誤った情報が出力されることになる。これが、オフセット電圧がビーム検知に与える影響である。
【０６４９】
マルチビームを採用した実際の画像形成装置では、ある程度（僅かだが無視し得ない量）以上の大きさのオフセットがビーム位置検知回路中に生じると、各ビームのピッチを正確に所望値に揃える制御ができなくなる。このため、実用上無視できないオフセットが発生し得る装置では、オフセットの検知およびその検知結果に基づくオフセット補正は、必要不可欠となる。
【０６５０】
まず、オフセットの検出および補正について、その概要を簡単に説明する。
【０６５１】
ビーム光通過位置検知制御では、ビーム光がビーム光位置検知器３８上を通過する際のセンサパターン出力の差分をとり、その結果を積分し、ウインドウコンパレータ４３０＊によりデジタル信号に変換して、ビーム光通過位置の検知を行うようになっている。
【０６５２】
図３５の積分器４２の積分の開始／終了のタイミングは、図３３の検知器３８（または図３のセンサ３８０）のセンサパターンＳＥ／ＳＫから信号が出力されるタイミングである。すなわち、ビーム光がポリゴンミラー３５によって走査され、センサパターンＳＥ上を通過する際に積分器４２のリセットが行なわれ、リセット終了と同時に積分が開始される。さらに、ビーム光がセンサパターンＳＫ上を通過する際に積分が終了し、同時にウインドウコンパレータ４３０＊の出力（ＷＵＬ／ＷＬＬ）がフリップフロップ回路４３２＊により保持される。
【０６５３】
ビーム光通過位置検知器出力処理回路４０のオフセット値は、この回路４０の電源が入っている限り、定常的に発生している。このオフセット値がビーム光通過位置検知制御におけるビーム光位置情報の誤差要因となるのは、積分器４２の積分動作の開始から終了までの、積分時間の間である。したがって、積分時間内におけるオフセット値を測定することができれば、オフセット値を考慮した（つまりオフセットを補正した）ビーム光通過位置制御が可能になる。
【０６５４】
そこで、以下に述べるオフセットの検出および補正においては、積分器４２の積分の開始／終了のタイミングをビーム通過位置制御と同等とするために、センサパターンＳＥ、ＳＫの出力信号を使用する。しかし、ビーム光がセンサパターンＳＪ、ＳＩ、ＳＨ、ＳＧ、ＳＦによって検知されては、オフセット検知にとって余計なビーム光情報が積分出力Ｖｏに重畳され、正確なオフセット値の検出ができない。したがって、オフセット値の検出には、センサパターンＳＪ〜ＳＦにビーム光を照射しない状態で得られた積分出力Ｖｏを用いることにする。
【０６５５】
たとえば、図３のセンサ３８０において、オフセット検知用のレーザビーム（３１ａ）がセンサパターンＳＪより更に上を通過するようにガルバノミラー（３３ａ）に指示値を与えて、センサパターンＳＪがレーザビームを全く検知しないようにする。この状態で、センサ面上を通過するレーザビームに対応する積分出力Ｖｏを検知する。
【０６５６】
この場合、オフセットが生じていなければ積分出力Ｖｏはゼロ（あるいは所定の一定値）となるはずであるが、オフセットが発生しておれば積分出力Ｖｏゼロ（あるいは所定の一定値）＋αとなる（この＋αは正負いずれも取り得る比較的小さなアナログ電圧）。
【０６５７】
この積分出力Ｖｏ＝＋αをウインドウコンパレータ４３０＊の最小窓に該当するしきい値（ＷＩＮＴＨＨ／ＷＩＮＴＨＬ）で検知すれば、アナログオフセット値＋αに対応するデジタルデータ（ヘキサデシマルデータ）が得られる。
【０６５８】
ここで、オフセットがビーム光通過位置検知の誤差要因となるのは、積分動作の開始から終了までの積分時間の間（ＳＥが出力されてからＳＫが出力されるまでの期間）なので、この積分時間におけるオフセット値を測定し、オフセット補正を行なう。
【０６５９】
その際、図３のセンサ３８０におけるセンサＳＫとセンサＳＭの間隔Ｌｋｍを、センサＳＥとセンサＳＫとの間隔Ｌｅｋと等しくし、センサＳＦ〜ＳＪにビーム光を照射しない状態で、ＳＫとＳＭの出力によって積分を行い、オフセットを検知するようにしている。
【０６６０】
このようにすれば、オフセット検知期間（間隔Ｌｅｋに対応）と同じ期間（間隔Ｌｋｍに対応）で積分された積分出力Ｖｏを、オフセット補正されたレーザビーム制御に用いることができる。つまり、オフセット検知と時間的に同条件で積分された積分出力Ｖｏをオフセット補正時に利用できるようになる。
【０６６１】
図５１は、ビーム光通過位置の検知において使用されるオペアンプ回路のオフセットを、図３３および図３５の構成を利用して検知（測定）する場合の、ウインドウコンパレータ４３０＊のしきい値変化の様子を例示している。
【０６６２】
また、図５２は、マルチビームのうち第１のビームａ（図３３のレーザ３１ａ）の検知に使用されるオペアンプ回路のオフセットを測定する手順を説明するフローチャートである。
【０６６３】
以下、図５１〜図５２を参照して、ビーム光ａ（第１のレーザ３１ａ）のオフセット検知について説明する。
【０６６４】
まず、図３３の主制御部５１のＣＰＵは、選択回路４１にセンサ選択指令を与え、ビーム光ａの通過位置検知（差動増幅器６３の出力）を選択する（ステップＳＴ３００）。
【０６６５】
次に、ＣＰＵは、図３３の選択回路Ａおよび選択回路Ｂに指令を出して、オフセット検知モードを選択する（ステップＳＴ３０２）。
【０６６６】
このモード選択によって、積分器４２のリセット用センサとしてＳＡとＳＫが選択され、Ａ／Ｄ処理用センサとしてＳＭが選択される（つまりＳＫ〜ＳＭ間で積分が行われる）。
【０６６７】
次に、ビーム光ａ（第１のレーザ３１ａ）用のレーザ発振器（３２ａ）を所定のパワーで強制発光動作させる（ステップＳＴ３０４）。
【０６６８】
そして、ウインドウコンパレータ４３０＊のしきい値を所定値に設定する（ステップＳＴ３０６）。すなわち、オフセット電圧（Ｖｏｓ）は基準電圧（Ｖｒｅｆ）を中心に±方向に生じるため、しきい値も基準電圧がウインドウ内に含まれるよう、以下のように設定する。
【０６６９】
ＷＩＮＴＨＨ→Ｖｈ０（Ｖ）＝Ａ８Ｈ
ＷＩＮＴＨＬ→Ｖｌ０（Ｖ）＝５７Ｈ
その後、ＣＰＵは、図３のセンサＳＭから信号が出力されるタイミングでウインドウコンパレータ４３０＊の出力（積分出力Ｖｏとウインドウコンパレータのしきい値との比較結果）を読み込み（ステップＳＴ３０８）、そのときの積分器４２の出力Ｖｏが図５１のどの領域に属するか判定する（ステップＳＴ３１０）。
【０６７０】
ここで、ウインドウコンパレータ４３０＊での比較結果が［ＷＵＬ、ＷＬＬ］＝［１、１］であれば、積分出力Ｖｏが図５１の領域Ｗ０に属すると判定される。
【０６７１】
この場合、領域Ｗ０をほぼ均等に３分割するような新たなしきい値が、以下のように設定される（ステップＳＴ３１２）。
【０６７２】
ＷＩＮＴＨＨ→Ｖｈ１（Ｖ）＝８ＤＨ
ＷＩＮＴＨＬ→Ｖｌ１（Ｖ）＝７２Ｈ
次に、ステップＳＴ３１０で判定された領域に対応するしきい値が、ウインドウコンパレータ４３０＊の一番狭い窓に対応するかどうか、チェックされる（ステップＳＴ３１４）。
【０６７３】
判定された領域Ｗ０は一番狭い窓ではないので（ステップＳＴ３１４ノー）、ステップＳＴ３１２で設定された新たなしきい値により、そのときの積分出力Ｖｏの属する領域判定が、再度実行される（ステップＳＴ３０８、ＳＴ３１０）。
【０６７４】
以下、ウインドウコンパレータ４３０＊のしきい値を以下のように順次変更してウインドウコンパレータの窓を狭めて行く。
【０６７５】
ＷＩＮＴＨＨ→Ｖｈ２（Ｖ）＝８４Ｈ
ＷＩＮＴＨＬ→Ｖｌ２（Ｖ）＝７ＢＨ
（Ｖｈ２／Ｖｌ２は図５１の領域Ｗ１を３分割するような値）
ＷＩＮＴＨＨ→Ｖｈ３（Ｖ）＝７８Ｈ
ＷＩＮＴＨＬ→Ｖｌ３（Ｖ）＝７５Ｈ
（Ｖｈ３／Ｖｌ３は図５１の領域Ｌ２を３分割するような値）
ＷＩＮＴＨＨ→Ｖｈ４（Ｖ）＝７ＡＨ
ＷＩＮＴＨＬ→Ｖｌ４（Ｖ）＝７９Ｈ
（Ｖｈ４／Ｖｌ４は図５１の領域Ｌ２を３分割するような値）
以上の処理の反復実行の結果、ステップＳＴ３１０で判定された領域がウインドウコンパレータ４３０＊の一番狭い窓に対応するようになれば（ステップＳＴ３１４イエス）、そのときのしきい値（Ｖｈ４／Ｖｌ４）が検知されたオフセット値として、そのときの検知領域（Ｗ４）とともに、図３３のメモリ５２に記録される（ステップＳＴ３１６）。
【０６７６】
図５１の例では、最終的なしきい値（Ｖｈ４／Ｖｌ４）がＶｒｅｆ＝８０Ｈを含むならオフセットが実質的にないと判定されるが、ここでは最終的なしきい値（Ｖｈ４／Ｖｌ４）が７９Ｈ〜７ＡＨとなったので、０６Ｈ〜０７Ｈ分のオフセットが（Ｖｒｅｆからマイナス方向に）発生していると判定される。
【０６７７】
なお、ＷＩＮＴＨＨとＷＩＮＴＨＬとの差（ウインドウコンパレータの窓の幅）が実施例構成で設定可能なしきい値の分解能（たとえば８ビット分解能のＤ／Ａ変換器を使用し最大レベルが５Ｖであれば、分解能すなわち最小単位レベルは５／２５５ボルト（≒２０ミリボルト）となる。
【０６７８】
オフセット検知時の積分出力Ｖｏがこの最小単位レベルの幅の窓内に収束するまで、図５２のステップＳＴ３０８〜ＳＴ３１４のループにおいて、しきい値変更と判定が繰り返えされる。
【０６７９】
そして、最終的に得られた領域Ｗ４のＷＩＮＴＨＨおよびＷＩＮＴＨＬ（ＷＩＮＴＨＨ＝７ＡＨとＷＩＮＴＨＬ＝７９Ｈ）が、ビームａ（第１レーザ３１ａ）の検知回路のオフセット値として、メモリ５２に記録される。
【０６８０】
以下、その他のビーム（３１ｂ〜３１ｄ）の検知回路についても、上記と同様の動作を実行し、各検知回路のオフセット値が測定され、メモリ５２に記録される。
【０６８１】
次に、図５２の処理でメモリ５２に記録したオフセットデータを利用した、オフセット検知・補正制御について説明する。
【０６８２】
図５３は、オフセット補正された各ビームの通過位置を制御する手順を説明するフローチャートである。
【０６８３】
まず、図３３の主制御部５１のＣＰＵは、ポリゴンモータドライバ３７に指示を与え、ポリゴンモータ３６を所定の回転速度で回転させる（ステップＳＴ３２０）。
【０６８４】
続いて、ＣＰＵは、ガルバノミラー駆動回路３９ａ〜３９ｄに所定の指示値を与え、４本のマルチレーザビームの走査経路を指定する（ステップＳＴ３２２）。
【０６８５】
次に、図５２を参照して説明したオフセット検知手順にしたがい、ビーム光ａ（第１レーザ３１ａ）のオフセット検知を行なう（ステップＳＴ３２４）。検知結果は図３３のメモリ５２に記録される。
【０６８６】
以下同様に、ビーム光ｂ（第２レーザ３１ｂ）のオフセット検知を行なって（ステップＳＴ３２６）その検知結果をメモリ５２に記録し、
ビーム光ｃ（第３レーザ３１ｃ）のオフセット検知を行なって（ステップＳＴ３２８）その検知結果をメモリ５２に記録し、ビーム光ｄ（第４レーザ３１ｄ）のオフセット検知を行なって（ステップＳＴ３３０）その検知結果をメモリ５２に記録する。
【０６８７】
次に、メモリ５２に記録されたデータに基づいて、各ビーム光ａ〜ｄの検知部（オペアンプで構成される回路）に対するオフセット補正を行なう（ステップＳＴ３３２）。
【０６８８】
ここでは、通常のビーム位置制御時の制御目標（ウインドウコンパレータ４３０＊のしきい値）を、ＷＩＮＴＨＨ＝ＶＨ４、ＷＩＮＴＨＬ＝ＶＬ４とする。オフセット補正は、この制御目標にオフセット値（メモリ５２に記録したオフセットデータ）を加えることで行なう。
【０６８９】
オフセット補正後の（オフセットを考慮した）ビーム通過位置制御では、オフセット値が、ビーム通過位置制御目標のほぼ中央となるようにする。オフセット補正後のビーム通過位置制御のしきい値の例を以下に示す（ここで、Ｖｒｅｆは、図５１の例でいえば８０Ｈ）。
【０６９０】
ＷＩＮＴＨＨ→ＶＨ０＋（Ｖｈ４−Ｖｒｅｆ）
ＷＩＮＴＨＬ→ＶＬ０＋（Ｖｌ４−Ｖｒｅｆ）
（ウインドウコンパレータ４３０＊の窓が一番広い状態）
ＷＩＮＴＨＨ→ＶＨ１＋（Ｖｈ４−Ｖｒｅｆ）
ＷＩＮＴＨＬ→ＶＬ１＋（Ｖｌ４−Ｖｒｅｆ）
（ウインドウコンパレータ４３０＊の窓が２番目に広い状態）
ＷＩＮＴＨＨ→ＶＨ２＋（Ｖｈ４−Ｖｒｅｆ）
ＷＩＮＴＨＬ→ＶＬ２＋（Ｖｌ４−Ｖｒｅｆ）
（ウインドウコンパレータ４３０＊の窓が３番目に広い状態）
ＷＩＮＴＨＨ→ＶＨ３＋（Ｖｈ４−Ｖｒｅｆ）
ＷＩＮＴＨＬ→ＶＬ３＋（Ｖｌ４−Ｖｒｅｆ）
（ウインドウコンパレータ４３０＊の窓が４番目に広い状態）
ＷＩＮＴＨＨ→ＶＨ４＋（Ｖｈ４−Ｖｒｅｆ）
ＷＩＮＴＨＬ→ＶＬ４＋（Ｖｌ４−Ｖｒｅｆ）
（ウインドウコンパレータ４３０＊の窓が一番狭い状態）
以上のように、徐々に窓が狭くなるようなしきい値（ＷＩＮＴＨＨ／ＷＩＮＴＨＬ）をウインドウコンパレータ４３０＊に適用しながら、ビーム光ａ（第１レーザ３１ａ）に対する通過位置制御を行なう（ステップＳＴ３３４）。
【０６９１】
この制御の目標は、前述したオフセットが発生していたとしても、たとえば図３のセンサ面上でセンサパターンＳＪとＳＩとの間をビーム光ａが正確に通過するように、ガルバノミラー３３ａを制御することである。
【０６９２】
以下同様に、ビーム光ｂ（第２レーザ３１ｂ）に対する通過位置制御を行ない（ステップＳＴ３３６）、センサパターンＳＩとＳＨとの間をビーム光ｂが正確に通過するように、ガルバノミラー３３ｂを制御する。
【０６９３】
続いて、ビーム光ｃ（第３レーザ３１ｃ）に対する通過位置制御を行ない（ステップＳＴ３３８）、センサパターンＳＨとＳＧとの間をビーム光ｃが正確に通過するように、ガルバノミラー３３ｃを制御する。
【０６９４】
最後に、ビーム光ｄ（第４レーザ３１ｄ）に対する通過位置制御を行ない（ステップＳＴ３４０）、センサパターンＳＧとＳＦとの間をビーム光ｄが正確に通過するように、ガルバノミラー３３ｄを制御する。
【０６９５】
以上説明したように、この実施の形態によれば、ビーム光通過位置検知部のオフセット値を検出し、検出されたオフセット値に応じた補正処理を行なうので、制御誤差の極めて少ないビーム通過位置制御を実現できる。
【０６９６】
このオフセット補正を施したビーム通過位置制御により、図２の感光体ドラム１５上におけるビーム光の位置を常に適正位置に精度良く制御できるので、出力（プリントアウト）画像を高画質に維持できる。
【０６９７】
この発明の一実施の形態に係る画像形成装置のビーム検知部（マルチビームの位置検知あるいはビームパワー検知）では、通常のＡ／Ｄ変換器を用いず、その代わりにシングルコンパレータまたはウインドウコンパレータを利用してアナログデータ（積分出力）をデジタルデータに変換する構成を採用している。
【０６９８】
この構成によれば、コンパレータと汎用ロジックＩＣ（フリップフロップ、インバータなど）を適宜組み合わせることによって、高速タイプのマルチビットＡ／Ｄ変換器相当の性能を安価に得ることができる。
【０６９９】
また、コンパレータと汎用ロジックＩＣは動作速度も速い。
【０７００】
【発明の効果】
この発明によれば、マルチビームのビーム検知部に高速・高分解能タイプのＡ／Ｄ変換器を用いなくても同等の機能（積分出力のデジタルデータ化）が可能となる。この「高速高分解能」というＡ／Ｄ変換機能は、安価で動作速度も速いコンパレータ（シングルコンパレータおよび／またはウインドウコンパレータ）と汎用ロジックＩＣ（フリップフロップ、インバータ等）を組み合わせで実現できる。
【図面の簡単な説明】
【図１】この発明の一実施の形態に係る画像形成装置としてのデジタル複写機の構成を説明するブロック図。
【図２】光学系ユニットの構成およびレーザビーム走査と感光体ドラムとの位置関係を説明する図。
【図３】図２のビーム光位置検知器を構成するビーム検知センサのセンサパターンを例示する図。
【図４】マルチビーム光学系を制御する主制御部とその周辺構成を説明するブロック図。
【図５】図４のブロック図のうちマルチビーム光制御に関連する部分（シングルコンパレータ利用）を抜き出して詳細に示す図。
【図６】図５のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーム位置検知用のセンサパターンから積分器までの回路構成を説明する図。
【図７】オペアンプのオフセットについて説明する図。
【図８】図５のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーム光量（パワー）検知用のセンサパターンから積分器までの回路構成を説明する図。
【図９】この発明の一実施の形態に係る、シングルコンパレータを利用したアナログ・デジタル処理部を説明する回路図。
【図１０】図９のシングルコンパレータの入出力関係を説明する図。
【図１１】図９の回路動作を説明する図。
【図１２】図３のセンサパターンを通過するレーザビーム位置と、これに対応する積分出力および図９のシングルコンパレータのしきい値との関係を説明する図。
【図１３】図９のシングルコンパレータに与えられる種々なしきい値の変化を説明する図。
【図１４】マルチビームのうちの１本（ビームａ）の通過位置制御を、図５および図９の構成（シングルコンパレータ利用）を利用して行なう場合を説明するフローチャート図の前半部。
【図１５】図１４のビーム通過位置制御の続きを説明するフローチャート図の中半部。
【図１６】図１５のビーム通過位置制御の続きを説明するフローチャート図の中半部。
【図１７】図１６のビーム通過位置制御の続きを説明するフローチャート図の後半部。
【図１８】レーザパワーの検知特性とシングルコンパレータの比較基準値（しきい値）との対応関係を例示する図。
【図１９】図３のセンサパターンＳＬで検知されるレーザパワーと対応する積分出力との対応関係を例示する図。
【図２０】レーザパワーを図１８のしきい値Ｖｒ６に対応する値（ＰＬ６μＷ〜ＰＨ６μＷの範囲内）に制御する場合の、シングルコンパレータのしきい値変化の様子を示す図。
【図２１】ビーム光量（パワー）の制御を、図５および図９の構成（シングルコンパレータ利用）を利用して行なう場合を説明するフローチャート図の前半部。
【図２２】図２１のビームパワー制御の続きを説明するフローチャート図の中半部。
【図２３】図２２のビームパワー制御の続きを説明するフローチャート図の中半部。
【図２４】図２３のビームパワー制御の続きを説明するフローチャート図の後半部。
【図２５】ビーム光量（パワー）の指示値と対応するレーザパワーとの対応関係を例示する図。
【図２６】画像形成用のビーム光量（パワー）制御を説明するフローチャート図。
【図２７】ビーム光量（パワー）を測定する手順を説明するフローチャート図。
【図２８】図２６のレーザパワー測定およびレーザパワー相対値制御における、シングルコンパレータのしきい値変化の様子を示す図。
【図２９】レーザパワーの相対値制御を、図５および図９の構成（シングルコンパレータ利用）を利用して行なう場合を説明するフローチャート図の前半部。
【図３０】図２９のレーザパワー相対値制御の続きを説明するフローチャート図の中半部。
【図３１】図３０のレーザパワー相対値制御の続きを説明するフローチャート図の中半部。
【図３２】図３１のレーザパワー相対値制御の続きを説明するフローチャート図の後半部。
【図３３】図４のブロック図のうちマルチビーム光制御に関連する部分（ウインドウコンパレータ利用）を抜き出して詳細に示す図。
【図３４】図３３のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーパワー検知用のセンサパターンから積分器までの回路構成を説明する図。
【図３５】この発明の他の実施の形態に係る、ウインドウコンパレータを利用したアナログ・デジタル処理部を説明する回路図。
【図３６】図３５のウインドウコンパレータの入出力関係を説明する図。
【図３７】図３５のセレクタの動作を説明する図。
【図３８】図３５のウインドウコンパレータの比較基準値（しきい値）を説明する図。
【図３９】図３のセンサパターンを通過するレーザビーム位置と、これに対応する積分出力および図３５のウインドウコンパレータのしきい値との関係を説明する図。
【図４０】マルチビームのうちの１本（ビームａ）の通過位置制御を、図３３および図３５の構成（ウインドウコンパレータ利用）を利用して行なう場合を説明するフローチャート図の前半部。
【図４１】図４０のビーム通過位置制御の続きを説明するフローチャート図の中半部。
【図４２】図４１のビーム通過位置制御の続きを説明するフローチャート図の中半部。
【図４３】図４２のビーム通過位置制御の続きを説明するフローチャート図の後半部。
【図４４】レーザパワーの検知特性（ＰＨ／ＰＬ）とウインドウコンパレータの比較基準値（上下のしきい値ＶＨ／ＶＬ）との対応関係を例示する図。
【図４５】レーザパワーを図４４のしきい値ＶＨ３／ＶＬ３に対応する値（ＰＬ３μＷ〜ＰＨ３μＷの範囲内）に制御する場合の、ウインドウコンパレータのしきい値変化の様子を示す図。
【図４６】レーザパワーの制御を、図３３および図３５の構成（ウインドウコンパレータ利用）を利用して行なう場合を説明するフローチャート図。
【図４７】ビーム光量（レーザパワー）を測定する手順を説明するフローチャート図。
【図４８】ビームａに対する画像形成用レーザパワーを図４４のしきい値ＶＨ３／ＶＬ３に対応する値（ＰＬ３μＷ〜ＰＨ３μＷの範囲内）に制御する場合の、ウインドウコンパレータのしきい値変化の様子を示す図。
【図４９】レーザパワーの相対値制御を、図３３および図３５の構成（ウインドウコンパレータ利用）を利用して行なう場合を説明するフローチャート図の前半部。
【図５０】図４９のレーザパワー相対値制御の続きを説明するフローチャート図の後半部。
【図５１】ビーム光通過位置の検知において使用されるオペアンプ回路のオフセットを、図３３および図３５の構成（ウインドウコンパレータ利用）を利用して検知（測定）する場合の、ウインドウコンパレータのしきい値変化の様子を示す図。
【図５２】マルチビームのうちビームａの検知に使用されるオペアンプ回路のオフセットを測定する手順を説明するフローチャート図。
【図５３】オフセット補正された各ビームの通過位置を制御する手順を説明するフローチャート図。
【図５４】図３３のビーム光位置検知器出力処理回路において、ビーム検知センサのうちビーム位置検知用のセンサパターンから積分器までの回路構成を説明する図。
【符号の説明】
１…スキャナ部；
２…プリンタ部；
３…第１キャリジ；
４…第２キャリジ；
５…結像レンズ；
６…光電変換素子；
７…原稿台；
８…原稿固定カバー；
９…光源；
１０〜１２…ミラー；
１３…光学系ユニット；
１４…画像形成部；
１５…感光体ドラム；
１６…帯電チャージャ；
１７…現像器；
１８…転写チャージャ；
１９…剥離チャージャ；
２０…クリーナ；
２１…給紙カセット；
２２…給紙ローラ；
２３…分離ローラ；
２４…レジストローラ；
２５…用紙搬送機構；
２６…定着器；
２７…排紙ローラ；
２８…排紙トレイ；
Ｏ…原稿；
Ｐ…用紙；
３１ａ〜３１ｄ…レーザ発振器；
３２ａ〜３２ｄ…レーザドライバ；
３３ａ〜３３ｄ…ガルバノミラー；
３４ａ〜３４ｄ…ハーフミラー；
３５…ポリゴンミラー；
３６…ポリゴンモータ；
３７…ポリゴンモータドライバ；
３８…ビーム光位置検知器；
３９ａ〜３９ｄ…ガルバノミラー駆動回路；
４０…ビーム光位置検知器出力処理回路；
ＢＳＬ…ビーム走査線；
ＢＰ１，ＢＰ２…ビーム位置に対応する位置（感光体ドラム表面上のビーム走査位置と同等の位置）；
３８０…ビーム検知センサ；
ＳＡ〜ＳＰ…センサパターン（フォトダイオードで構成された光センサ受光部）；
Ｌｅｋ…光センサ受光部ＳＥとＳＫとの間隔；
Ｌｋｍ…光センサ受光部ＳＫとＳＭとの間隔；
４１…選択回路（アナログスイッチ）；
４２…積分器；
４３０…シングルコンパレータ（ＣＭＰ０）；
４３２…フリップフロップ回路（ＦＦ０，ＩＮＶ０）；
４３４…Ｄ／Ａ変換回路（ＤＡ０）；
４３０＊…ウインドウコンパレータ（ＣＭＰ１，ＣＭＰ２）；
４３２＊…フリップフロップ回路（ＦＦ１，ＦＦ２，ＩＮＶ１，ＩＮＶ２）；
４３４＊…Ｄ／Ａ変換回路（ＤＡ１，ＤＡ２）；
４３６…セレクタ；
４４ａ〜４４ｄ…ラッチ；
４５ａ〜４５ｄ…Ｄ／Ａ変換器；
４６ａ〜４６ｄ…ガルバノミラードライバ；
５１…主制御部（ＣＰＵまたはＭＰＵを用いたデジタル処理機能を持つ）；
５２…メモリ；
５３…コントロールパネル；
５４…外部通信Ｉ／Ｆ；
５５…同期回路；
５６…画像データＩ／Ｆ；
５７…画像処理部；
５８…ページメモリ；
５９…外部Ｉ／Ｆ；
６２…増幅器（レーザパワー検知用）；
６３〜６６…差動増幅器（マルチビームの位置検知用）；
ＳＷ１，ＳＷ７…アナログスイッチ；
Ａ１〜Ａ４…オペアンプ。
【図１】
0004489871.tif 000003
【図２】
0004489871.tif 000004
【図３】
0004489871.tif 000005
【図４】
0004489871.tif 000006
【図５】
0004489871.tif 000007
【図６】
0004489871.tif 000008
【図７】
0004489871.tif 000009
【図８】
0004489871.tif 000010
【図９】
0004489871.tif 000011
【図１０】
0004489871.tif 000012
【図１１】
0004489871.tif 000013
【図１２】
0004489871.tif 000014
【図１３】
0004489871.tif 000015
【図１４】
0004489871.tif 000016
【図１５】
0004489871.tif 000017
【図１６】
0004489871.tif 000018
【図１７】
0004489871.tif 000019
【図１８】
0004489871.tif 000020
【図１９】
0004489871.tif 000021
【図２０】
0004489871.tif 000022
【図２１】
0004489871.tif 000023
【図２２】
0004489871.tif 000024
【図２３】
0004489871.tif 000025
【図２４】
0004489871.tif 000026
【図２５】
0004489871.tif 000027
【図２６】
0004489871.tif 000028
【図２７】
0004489871.tif 000029
【図２８】
0004489871.tif 000030
【図２９】
0004489871.tif 000031
【図３０】
0004489871.tif 000032
【図３１】
0004489871.tif 000033
【図３２】
0004489871.tif 000034
【図３３】
0004489871.tif 000035
【図３４】
0004489871.tif 000036
【図３５】
0004489871.tif 000037
【図３６】
0004489871.tif 000038
【図３７】
0004489871.tif 000039
【図３８】
0004489871.tif 000040
【図３９】
0004489871.tif 000041
【図４０】
0004489871.tif 000042
【図４１】
0004489871.tif 000043
【図４２】
0004489871.tif 000044
【図４３】
0004489871.tif 000045
【図４４】
0004489871.tif 000046
【図４５】
0004489871.tif 000047
【図４６】
0004489871.tif 000048
【図４７】
0004489871.tif 000049
【図４８】
0004489871.tif 000050
【図４９】
0004489871.tif 000051
【図５０】
0004489871.tif 000052
【図５１】
0004489871.tif 000053
【図５２】
0004489871.tif 000054
【図５３】
0004489871.tif 000055
【図５４】
0004489871.tif 000056