以下に添付図面を参照して、この発明にかかる画素クロック生成装置および画像形成装置の最良な実施の形態を実施の形態1〜5に沿って詳細に説明する。
(1.実施の形態1)
図1は、本発明の実施の形態1による画像形成装置の全体構成を示す図である。画像形成装置は、半導体レーザ101、コリメータレンズ102、シリンダレンズ103、ポリゴンミラー104、感光体105、fθレンズ106、フォトディテクタPD1(108)およびPD2(109)、ミラー110、画素クロック生成部111、画像処理部112、変調データ生成部113、およびレーザ駆動部114を備える。
光源としての半導体レーザ101からのレーザ光がコリメータレンズ102とシリンダレンズ103を介することで整形されて、偏光器としてのポリゴンミラー104に入射することにより、周期性を保って感光体105を走査するように反射される。反射されたレーザ光は、fθレンズ106、ミラー110、およびトロイダルレンズ107介して感光体105に照射され、光スポットを形成する。これにより、感光体105上には、半導体レーザ101の出力に応じた静電潜像が形成される。
またミラー110の両端にはフォトディテクタPD1(108)、フォトディテクタPD2(109)がそれぞれ配置されており、走査の開始と終了とが検出される。つまりポリゴンミラー104により反射されたレーザ光は感光体105を1ライン走査する前にPD1(108)に入射され、走査後にPD2(109)に入射される。それぞれのフォトディテクタでは入射されたレーザ光をそれぞれ第1の同期信号SPSYNCおよび第2の同期信号EPSYNCに変換し、画素クロック生成部111に供給する。
画素クロック生成部111は、2つの同期信号SPSYNCおよびEPSYNCから、PD1(108)とPD2(109)間をレーザ光が走査する時間間隔を測定し、その時間間隔にあらかじめ定められた所定数のクロックが収まるように求められた周波数の画素クロックPCLKを生成し、それを画像処理部112とレーザ変調データ生成部113に供給する。この画素クロック生成部111の構成については後述する。
フォトディテクタPD1(108)の出力信号である第1の同期信号SPSYNCは、ライン同期信号として画像処理部112にも与えられる。画像処理部112は、画素クロックPCLKを基準に画像データを生成する。
変調データ生成部113は、画素クロックPCLKを基準として、入力された画像データから変調データを生成し、レーザ駆動部114を介して半導体レーザ101を駆動する。
図2は、画素クロック生成部111の機能的ブロック図である。画素クロック生成部111は、高周波クロック生成部1、第1エッジ検出部2、第2エッジ検出部3、分周器4、比較部5、フィルタ6、および周波数演算部7を備える。
図2に示された画素クロック生成部111において、高周波クロック生成部1は、基準クロックRefCLKを基に、逓倍した高周波クロックVCLKを生成するものであり、一般的なPLL(Phase Locked Loop)回路により構成される。入力する基準クロックRefCLKをたとえば精度のよい水晶発振器出力を用いることにより精度のよい高周波クロックVCLKが得られる。この高周波クロックVCLKを基準に画素クロックPCLKを生成する。
分周器4は、高周波クロックVCLKをM分周した画素クロックPCLKを生成する。これはたとえばM進カウンタにより構成され、カウント値countMを出力する。ここで同期信号SPSYNCの立ち上がりでカウントを開始するようにすれば、走査開始時点に位相同期した画素クロックが生成できる。また、分周比Mは周波数演算部7からの画素クロック周波数指示信号Mnowにしたがって変更される。このように画素クロックPCLKの生成は安定かつ高精度に発振させた高周波クロックVCLKを分周することにより生成されるので、この分周比を変更することにより瞬時にかつ安定に画素クロック周波数を変更することが可能となる。よって、ライン毎周波数を変更しても瞬時に移行できる。
第1エッジ検出部2は、第1の同期信号SPSYNCの立ち上がりエッジを高周波クロックVCLKを基準として検出するものであり、同期信号SPSYNCの立ち上がりを検出すると、画素クロックPCLKに同期した検出パルスSPplsを出力する。
第2エッジ検出部3は、第2の同期信号EPSYNCの立ち上がりエッジを高周波クロックVCLKを基準として検出し、検出パルスEPplsとカウント値EPmを出力する。
比較部5は、2つの同期信号SPSYNC、EPSYNC間の時間Tlineを検出し、書き込み周波数と2つのフォトディテクタPD1とPD2との距離に応じてあらかじめ定められた基準時間と計測した時間Tlineとの差を当該ラインの誤差Lerrとして算出する。つまり適正な走査時間(基準時間)と当該ラインの走査時間Tlineとの差が走査速度の誤差である。
この誤差Lerrは高周波クロックVCLKを基準としてカウントし演算を行ってもよいが、高周波クロックVCLKは非常に高周波であり、またカウントするビット数も非常に大きくなるので、回路規模、消費電力の点で不利である。そこで実施の形態1では、時間Tlineを画素クロックPCLKを基準としてカウントし、基準値RefNとの比較をし、最後に高周波クロック基準の当該ラインの誤差Lerrとして変換している。
フィルタ6は、ライン誤差Lerrをフィルタリングして誤差データErrを出力するデジタルフィルタであり、たとえば簡単には、直近の複数ライン分の誤差Lerrを平均して誤差データErrを得る。
周波数演算部7は、誤差データErrにしたがって適正な画素クロック周波数を算出し、これを画素クロック周波数指示信号Mnowに変換して出力する。高周波クロック周期をTv、画素クロック周期をTpとし、今、Tp=KTvとして画素クロック周波数を設定して走査した時、目標値Tp'(Tp'=K'Tv)との誤差Errが入力される。したがって、RefN・Tp'=RefN・Tp+Err・Tvであるので、
K'=K+Err/RefN (式1)
としてK'を設定するようにすれば、画素クロック周波数を目標値に制御することができる。
つまり、分周器4、比較部5、フィルタ6、および周波数演算部7でデジタルPLL制御を行っている。そして、フィルタ6の特性がこのPLL制御特性を決定し、制御系が安定になるようにフィルタ特性が決定される。また、K'=K+α・Err/RefNとしてループゲインを変えるようにしてもよい。
また、分周器4の分周比Mは自然数であるので、画素クロック周波数の設定値Kをつぎのようにして画素クロック周波数指示信号Mnowに変換すると、まるめ誤差を低減することができ、より精度のよい画素クロックが得られる。たとえば、通常は設定値Kを四捨五入して整数にまるめた値をMとし、Mnow=Mとし、画素クロックのCサイクルに1回、Mnow=M+1またはM−1とすることにより、K=(M±1/C)となり丸め誤差を低減できる。また丸め誤差の振り分けも均等に行えるので、画素クロックの局所的な偏差も抑えられる。この場合は前記M値とC値を制御するようにすればよい。詳細な説明は後述する。
図3は、画素クロック生成部における信号の一例を示すタイミング図である。図4は、比較部5の機能的ブロック図である。図3と図4とを参照しながら比較部5の動作の詳細説明を行う。
図3中の(a)SPSYNCは、走査開始を示す第1の同期信号であり、第1エッジ検出部2に入力される。(b)EPSYNCは走査終了を示す第2の同期信号であり、第2エッジ検出部3に入力される。(c)VCLKは、高周波クロック生成部1で生成される高周波クロックの立ち上がりエッジを示している。
(d)countMは分周器4で高周波クロックVCLKを基準としてカウントされるカウント値であり、(e)PCLKは、(d)countMが0のとき立ち上がる画素クロックである。(f−1)SPplsおよび(f−2)EPplsはそれぞれ(a)SPSYNC、(b)EPSYNCの立ち上がりを示すPCLKに同期したパルスである。(g−2)EPmは、(b)EPSYNCの立ち上がりときの(d)countMの値である。(h)は比較部5にある画素クロックPCLK基準でカウントするカウンタの値であり、(f−1)SPplsで0にリセットされ、(f−2)EPplsでカウントが停止される。
図4中の比較部5において、カウンタ11は、画素クロックPCLKを基準にカウントするカウンタであり、SPplsで0にリセットされ、EPplsでカウントを停止する。減算器12はカウント停止後のカウンタ11の値countN(図3ではn)から基準カウント値RefNの減算を行い、減算結果diffNを出力する。誤差演算部13は、下記の演算を行い高周波クロックVCLK周期Tvを単位とする誤差Lerrを出力する。
Lerr=diffN・K+EPm
ここで、diffN=n−RefN,EPm=m2,Tp=K・Tv,TpはPCLKの周期である。
また、2つのフォトディテクタPD1とPD2との距離がドット幅の整数倍でない場合、つまり基準時間が目標とする画素クロック周期の整数倍でない場合、その端数を高周波クロックVCLKのサイクル数に換算し、これをRefMとして誤差演算部13に入力し、
Lerr=diffN・K+EPm−RefM
と演算するようにすると、より正確な画素クロック周波数の制御が行うことができる。
図5は、周波数演算部7の機能的ブロック図である。実施の形態1ではポリゴンミラーは6面構成であるとし、面毎の誤差を補正するため面毎に画素クロック周波数を制御する。
周波数演算部7の演算部16は、現在の設定値M,C,Rと誤差データErrとからつぎの設定値NextM,NextC,NextRを演算し、この演算を演算面指示信号CalcNoにしたがい、各面毎に行う。このM,C,Rの関係は、上述したようにTp=(M±1/C)Tvであり、C=RefN/Rである。これらの式と(式1)より、NextM=M'、NextR=R'、RefN=Nrと略記して、
M'+R'/Nr=M+R/Nr+Err/Nr、C'=Nr/R'
であるので、演算はつぎの手順で行う。
(1)R+Err(=TmpRとする)を計算する。
(2)TmpR>Nr/2であれば、M'=M+1としてR'=TmpR−Nrとする。
TmpR<−Nr/2であれば、M'=M−1としてR'=TmpR+Nrとする。それ以外は、M'=M、R'=TmpRとする。
(3)Nr÷R'の商をC'とする。なお、R'=0であれば、C'=0とする。
レジスタ17は上記の演算により求めたM値を保持しておくデータ保持部であり、保持する値はポリゴンミラーの各面毎F0M〜F5Mの値を保持する。また、更新信号Renewにしたがい対応するレジスタ値をNextMに更新する。ここで*をポリゴンミラーの面番号0〜5を取るものとして、F*はポリゴンミラーの面番号に対応する値であることを示す(以下同様)。なお、この面番号は相対的な関係を示すものであり、対応する値は自動的に制御されるので、実際の面と一致させる必要はない。
同様にレジスタ18は、現在設定しているC値を保持しておくデータ保持部であり、レジスタ19は現在設定しているR値を保持しておくデータ保持部である。それぞれ更新信号Renewにしたがい対応するレジスタ値をNextC、NextRに更新する。
選択部20は、面選択信号FNoにしたがい、F0M〜F5Mのうち対応するM値を選択出力する。同様に選択部21は、面選択信号FNoにしたがい、F0C〜F5Cのうち対応するC値を選択出力する。なお、CsignはC値の符号を示す。
カウンタ23は、PCLKを基準としてC値をカウントする。カウントされるC値は0からC−1までである。カウント値がC−1となったとき、Csignが正を示していれば+1を、負を示していれば−1を出力し、それ以外のときは0を出力する。なお、C=0の時は常に0を出力する。
加算部22は選択部20の出力するMとカウンタ23の出力する値を加算し、結果を画素クロック周波数指示信号Mnowとして出力する。よって、PCLKのCサイクルに1回、M値が+1または−1されるように変換され、画素クロックの平均周期は(M±1/C)Tvとなる。
演算制御部15は、上述した演算を制御するものであり、演算面指示信号CalcNo、更新信号Renewおよび面選択信号FNoを生成し出力する。これらの信号の出力については、以下のフローチャートとともに説明する。
図6は、演算制御部が信号を出力する手順を説明するフローチャートである。まず、演算制御部15は、FNo=0、CalcNo=0として初期化を行う(ステップS101)。次に、1ラインの走査が終了するまで待機、つまりEPplsにより走査終了を検知するまで待機する。なお、待機時間には誤差データErrの演算が確定するまでの時間の猶予も含む(ステップS102)。
演算制御部15は、現在のCalcNoに対応した前述の演算を行う(ステップS103)。現在のCalcNoに対応した更新信号Renewをアクティブにし、各レジスタの値をNext値に更新する(ステップS104)。CalcNoをインクリメントする。なお、CalcNo=5のときは0に戻る(ステップS105)。画素クロック周波数制御がロックしているか否かを示すロックフラグLockにしたがい分岐する(ステップS106)。ここでロックフラグLockは、たとえば、所定ラインの間(たとえば6ラインとする)誤差Lerr(あるいは誤差データErr)が所定の範囲内(面間誤差のバラツキ範囲や所望の制御精度などから決めればよく、たとえば±2M以内とする)に収まっていれば、ロックしているとみなす信号で、この信号の生成部はたとえばフィルタ6内に備えればよい。あるいは制御応答性よりあらかじめ制御開始より所定時間(ライン数などで指定)を決めておき、この時間が経過したらLock信号をアクティブにするようにしてもよい。
判定結果がNoの場合、つまりまだロックしていない場合(ステップS106のNo)、全ての面で演算を行い設定値を更新したかを判定する(ステップS107)。6面全て演算していれば(ステップS107のYes)、FNo=CalcNoとなるのでステップS108に移行する。否であれば(ステップS107のNo)、ステップS102に戻り、別の面の演算を行う。
ステップS108では、FNoをインクリメントし(5の場合は0に戻る)、CalcNoにFNoを代入する。すなわち、インクリメント後の値を代入する。これにより画素クロック周波数指示信号Mnowに変換するMおよびC値が次ラインの設定値に変更される(ステップS108)。なお、ここまでの操作を次ラインの走査開始(SPSYNCが検知される)までに行う。その後ステップS102に戻り以上のルーチンを繰り返す。
演算制御部15がこのように制御すれば、各面のクロック周波数が所定誤差内に収まるまでは、全ての面で誤差Errを縮小するように制御していくので、高速な引き込みができ、また所定誤差内に収まった後は各面毎個別に制御するので面間の誤差も低減され、高精度なクロック周波数制御ができる。
図7は、実施の形態1の制御方法による引き込み過程の一例を説明する図である。図7の横軸は時間、縦軸はライン誤差Lerrを示す。黒丸は第0面に対応する誤差であり、その他の面の誤差は×で示す。点線は6面分の誤差の平均値を示す。
図8は、変形例による周波数演算部の機能的ブロック図である。変形例による周波数演算部7'における演算制御部15は、図5に示した演算制御部15と同様に、ここでの演算を制御する。演算部25は、現在の設定値M,Fと誤差データErrとからつぎの設定値NextM,NextFを演算し、この演算を演算面指示信号CalcNoにしたがい、各面毎に行う。
この変形例による周波数演算部においては、画素クロック周波数の設定値Kは、つぎのようにして画素クロック周波数指示信号Mnowに変換する。すなわち、設定値Kの整数部をMとし、小数部をa桁(2進数表記)の値Fに丸める。そして2^a(=Naとする)サイクルにF回、Mnow=M+1とすることにより、K=(M+F/Na)と設定される。ここで設定値による丸め誤差は最大Nref/Naとなるので、所望の誤差許容値に収まるように小数部の桁数aを決定すればよい。また、局所的な周波数偏差を抑えるため+1とするF回のサイクルは均等に振り分けられるようにする。この機能は変換部31が担う(動作詳細は後述する)。よって(式1)とこのKの関係式により、NextF=F'と略記して、
K'+F'/Na=M+F/Na+Err/Nr
であるので、演算はつぎの手順で行う。
(1)F+Err/Nr*Na(=TmpFとする)を計算する。Naは2^aであるので、*Naは被乗数(Err/Nr)の上位aビットを取ればよく、またNrはこの周波数制御を行っている間は固定であるので、あらかじめNrの逆数を計算しておいてこれをErrに乗算すれば演算は簡便に行える。
(2)TmpF>Naであれば、M'=M+1、F'=TmpF−Naとする。TmpF<0であれば、M'=M−1、F'=TmpF+Naとする。
図5の場合と同様に、レジスタ26は上記の演算により求められたM値を保持しておくデータ保持部である。レジスタ27は、同様にF値を保持しておくデータ保持部である。これら保持する値はポリゴンミラーの各面毎F0〜F5に対応して保持する。そして、それぞれ更新信号Renewにしたがい対応するレジスタ値をNextC、NextRに更新する。
選択部28は、面選択信号FNoにしたがい、F0M〜F5Mのうち対応するM値を選択出力する。同様に選択部29は、面選択信号FNoにしたがい、F0F〜F5Fのうち対応するC値を選択出力する。
カウンタ30は、PCLKを基準にカウントするaビットカウンタであり、そのカウント値countAを出力する。変換部31は、カウント値countAにしたがい、Na(=2^a)サイクル中、Fサイクルは「1」を、残りのNa−Fサイクルは「0」として信号UPを出力する。このUP信号の生成は、カウント値countA[a−1:0]のビット並びを逆転させたcountA[0:a−1]をArevとした時、ArevがFより小さい場合1とするようにすれば(UP=(Arev<F))、Naサイクル中均等にF回「1」が生成される。
加算部32は、選択部28の出力するMと変換部31の出力するUPを加算し、結果を画素クロック周波数指示信号Mnowとして出力する。よって、PCLKのNaサイクルにF回、M値が+1されるように変換され、画素クロックの平均周期は(M+F/Na)Tvとなる。
前述したように、画素クロック周波数の制御は1ライン毎に位相誤差Lerrを検出し、これが0になるようにデジタルPLL制御を行っている。フィルタ6は制御ループ内に置かれたデジタルフィルタであり、このフィルタ特性を変更することにより、制御帯域を設定できる。以下にフィルタの設定例を示す。
図9は、フィルタ特性の一例を説明する図である。まず、ループフィルタを除くDPLL制御系のループゲインは直線901のようになる。ここでfsはサンプリング周波数で、つまりここではライン周波数である。この制御系に折れ線902のような特性を持つラグリードフィルタを挿入し、ループゲイン903とすることにより、制御系を安定化させることができる。
τ1=1/2πf1、τ2=1/2πf2とすると、ループフィルタの伝達関数H(s)は次式のようになる。
H(s)=(1+τ2s)/(1+τ1s)
上式を、双一次変換(s=2/T・(1−z^−1)/(1+z^−1))してz変換形式にし、さらにT=1として正規化すれば、ループフィルタの伝達関数H(z)は次式となる。
H(z)=(b0+b1z^−1)/(1+a1z^−1)
ここで、a1=(1−2τ1)/(1+2τ1)、b0=(1+2τ2)/(1+2τ1)、b1=(1−2τ2)/(1+2τ1)である。
図10は、伝達関数H(z)を実現するフィルタの機能的ブロック図である。フィルタ6は、一つぎのIIR型フィルタであり、加算器40および45はそれぞれの入力を加算し、乗算器42、43、44はそれぞれ入力に対し、係数−a1、b1、b0を掛けた値を出力し、遅延素子41は中間変数wを1サンプル毎、つまり1ライン毎に、遅延させる。このフィルタ6にライン誤差Lerrを入力すれば、誤差データErrを得る。
また、乗算器42、43、44の各係数を変更する手段を設ければ、動的にフィルタ特性を変更可能となり、たとえば、上述のLock信号にしたがいフィルタ特性を変更するようにしてもよい。
なお、本例のフィルタ特性および構成は一例であり、本発明はその他の構成のフィルタでも適用できる。デジタルフィルタについては公知技術であるので、その他の構成の例示は省略する。
つぎに、画素クロック生成部111(図2)で生成した画素クロックPCLKを基準に、画像データにしたがい変調する変調データ生成部113の好適な変調方法を説明する。
図11は、変調データ生成部113のタイミング動作を説明する図である。ここでは画像データPDataにしたがい8値のパルス幅変調を行った変調データMDataを生成する場合とした。図11において、(a)VCLKは高周波クロック(周期Tv)の立ちあがりを示し、(b)countMは分周器4でカウントしたカウント値であり、今、Mnow=16と設定されているものとする。(c)PCLKは画素クロックであり、ここでは周期は16Tvとなっている。(d)PDataはPCLKに同期して入力される画像データであり、この値Dmにしたがって出力する変調データ(e)MDataのパルス幅Twを変調する。
変調データMDataの生成は高周波クロックVCLKを基準にして行われ、Dm≠0であれば、countM=0のとき「H」とする。また、countM=Dm/Nm・Mnow(Nmは階調数でここでは8)のとき「L」とする。またはcountM=(Nm−Dm)/Nm・Mnowのとき「H」とし、Dm≠8であれば、countM=0のとき「L」とするようにすると(e')のような変調データが生成できる。またこれら2つの生成モードを切り替えられるようにし、ドット毎変更できるようにしてもよい。
なお、上記説明では、走査開始と終了との2点間の走査時間の変動に合わせて画素クロック周波数を制御する形態について説明したが、1ライン中の走査速度がほぼ一定であれば、1ライン中の任意の2点間の走査時間の変動に合わせて制御を行うようにしてもよく、実施の形態1で適用できる。
以上説明したように、実施の形態1による画素クロック生成部によれば、高精度に生成された高周波クロックVCLKを基準として画素クロックを生成し、走査時間の変動に合わせて画素クロック周波数を制御しているので、走査平均速度の変動があってもこの誤差を高精度に補正できる画素クロックが生成できる。さらに、画素クロック周波数の制御はポリゴンミラーの各面に対応してそれぞれ制御しているので、面毎の走査速度誤差があっても高精度に補正できる画素クロックが生成できる。また、この画素クロック生成部を画像形成装置に適用すれば、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成するので、高品質な画像が得られる。
(2.実施の形態2)
実施の形態2による画像形成装置が、実施の形態1と異なる点は、高周波クロックが位相が一定の位相差でずれた多相クロックから成り、この多相クロックを使用して画素クロックを構成する点である。
図12は、実施の形態2による画素クロック生成部を示す機能的ブロック図である。図12の画素クロック生成部118において、高周波クロック生成部51は、基準クロックRefCLKを基に逓倍し、位相差が等間隔の多相クロックを生成するものである。実施の形態2では、16位相の多相クロックVCLK0〜15を生成するものとする。また、多相クロックのうちの1つをQ分周(ここではQ=4とする)した内部動作用クロックGCLKを生成し、図示はしないが画素クロック生成部118の各部へ供給する。
図13は、高周波クロック生成部51が生成する各クロックのタイミングを示す図である。図13中の信号(a−0)〜(a−15)は、多相クロックVCLK0〜15のそれぞれのクロックであり、互いに等間隔の位相差を有しており、この時間間隔をTvとする。信号(b)GCLKは、(a−0)VCLK0を4分周したクロックである。画素クロック生成部118(図12)は、基本的にこのクロックGCLKを動作クロックとして動作し、GCLKを4分割した期間を順にQT0、QT1、QT2、およびQT3と称し、また多相クロックVCLK0〜15の立ち上がりにそれぞれ対応した時刻をPH0〜PH15と称し、この期間QTと位相PHとによりGCLK中の時間情報QPを表す。
ここで時間情報QPは0〜63の64値であり、本実施の形態ではこの多相クロックの等間隔の位相差Tvを基準として画素クロックPCLKを生成する。つまり画素クロック周波数の制御演算を動作クロックGCLKを基準に時間情報QP(QT,PH)の演算を行うことにより行う。
第1エッジ検出部52(図12)は、第1の同期信号SPSYNCの立ち上がりエッジを多相クロックVCLK0〜15を基準として検出し、同期信号SPSYNCの立ち上がりを検出するとクロックGCLKに同期した検出パルスSPplsと立ち上がりときの期間QTと位相PHを示す時間情報SPqpを出力する。
同様に、第2エッジ検出部53は、第2の同期信号EPSYNCの立ち上がりエッジを多相クロックVCLK0〜15を基準として検出し、同期信号EPSYNCの立ち上がりを検出するとクロックGCLKに同期した検出パルスEPplsと立ち上がりときの期間QTと位相PHを示す時間情報EPqpを出力する。
計数部54は、周波数演算部57からの画素クロック周波数指示信号Mnowにしたがって時間を計数し、Mnowに達する度にSet信号(GCLKに同期したSETpls信号と時間情報SETqpからなる)を生成し、またSet信号からMnow/2にあたる時間を計数し、Rst信号(GCLKに同期したRSTpls信号と時間情報RSTqpからなる)を生成する。この計数する時間単位は多相クロックVCLK0〜15の位相差Tvである。
画素クロック出力部58は、計数部58より供給されるSet信号およびRst信号にしたがって「H」と「L」との間で切り替えて画素クロックPCLKを生成し出力する。これらの詳細構成および動作説明は後述する。
比較部55は、2つの同期信号SPSYNC、EPSYNC間の時間Tlineを検出し、書き込み周波数と2つのフォトディテクタPD1とPD2との距離に応じてあらかじめ定められた基準時間と計測した時間Tlineとの差を当該ラインの誤差Lerrとして算出する。つまり適正な走査時間(基準時間)と当該ラインの走査時間Tlineとの差が走査速度の誤差である。ここでは、SPpls入力後EPplsが入力されるまでの期間中に入力されるSETplsの数をカウントし、この値と基準値RefNとの比較をし、さらに各パルスの時間情報とから当該ラインの誤差Lerrとして変換している。この誤差の単位は位相差Tvである。
フィルタ56は、ライン誤差Lerrをフィルタリングして誤差データErrを出力するデジタルフィルタである。周波数演算部57は、誤差データErrにしたがって適正な画素クロック周波数を算出し、これを画素クロック周波数指示信号Mnowに変換して出力する。
画素クロック周期をTpとし、今、Tp=KTvとして画素クロック周波数を設定して走査した時、目標値Tp'(Tp'=K'Tv)との誤差Errが入力される。よって、前述と同様に(式1)により求めたK'を設定するようにすれば、画素クロック周波数を目標値に制御することができる。
なお、これらフィルタ56および周波数演算部57は、図2のフィルタ6および周波数演算部7と同様の機能を果たし、構成も同様に適用できるので詳細な説明は省略する。次に、実施の形態2による画素クロック生成部の各部を説明する。
図14は、高周波クロック生成部51の構成を示す図である。この高周波クロック生成部51は、基準クロックRefCLKから、多相クロックVCLK0〜15と、内部動作用クロックGCLKとを生成する。
電圧制御発振器(VCO)63は、8段の差動バッファ64a〜hを接続したリングオシレータで構成され、16位相のクロックVCLK0〜15を生成する。分周器60はこの多相クロックのうちの1つ(ここではVCLK8)をNv分周する。
位相周波比較器PFD61は基準クロックRefCLKと分周器60出力との位相比較を行い、この位相差情報に基づき内在するチャージポンプを駆動する。ローパスフィルタLPF62はチャージポンプ出力を平滑化し制御電圧VcをVCO63に供給する。
VCO63内の差動バッファ64a〜hはこの制御電圧Vcにしたがって遅延量が変化し、位相同期制御が行われる。たとえば基準クロックRefCLKとして100MHzのクロックを供給し、分周比Nvを20とすると、多相クロックVCLK0〜15は2GHzで互いに等間隔の位相差を有するクロックが生成できる。また、分周器65は多相クロックVCLK0〜15のうちの1つ(ここではVCLK0)をQ分周(ここではQ=4とする)してクロックGCLKを生成する。なお、適用しうる多相クロックの相数は実施の形態におけるように、16に限らないが、演算の簡便性より2のべき乗がもっとも望ましい。同様にGCLKを生成するための分周比Qも2のべき乗がもっとも望ましい。
図15は、計数部54の機能的ブロック図である。図16は、画素クロック出力部58の機能的ブロック図である。図17は、計数部54および画素クロック出力部58の各信号のタイミングの一例を示す図である。これらの図を参照しながら、画素クロック周波数指示信号Mnowにしたがって画素クロックPCLKを生成する詳細な構成および動作を説明する。
図15において、計数部54の各部はクロックGCLKに同期して動作する。SET時間演算部70は、現在のPCLK立ち上がり時間情報に画素クロック周波数指示信号Mnowを加算し、つぎのPCLKの立ち上がり時間を表すセット時間情報nextSを演算するものであり、この演算の更新はpSet信号により行う。なお、セット時間情報nextSを64で割った商をnextSc、余りをnextSqpとする。つまりnextSc=nextS[MSB:6]、nextSqp=nextS[5:0]とする。
また、SPSYNCの立ち上がりに位相同期してPCLKの生成を始めるので(正確には所定の信号処理時間後で、ここでは2GCLK後)、最初のPCLK立ち上がり時間情報はSPqpとする。
同様に、RST時間演算部71は、現在のPCLK立ち上がり時間情報に画素クロック周波数指示信号Mnowの1/2を加算し、つぎのPCLKの立ち下がり時間を表すリセット時間情報nextRを演算するものであり、この演算の更新はpSet信号により行う。また、nextRc=nextR[MSB:6]、nextRqp=nextR[5:0]とする。なお、Mnow/2を加算するのはPCLKのデューティをほぼ50%にするためであり、デューティ50%を要求しない場合はこの演算を簡略化できるような値を加算するようにしてもよい。
カウンタ72は、クロックGCLKを基準としてnextScサイクルのカウントを行い、pSet信号を生成する。このpSet信号が「H」の時カウンタは「1」にクリアされ、カウント値がnextScと一致する時、pSet信号を「H」とする。
F/F73はpSet信号およびSPpls信号を1GCLK遅延させてSETpls信号を生成するフリップフロップである。F/F74は、pSet信号をイネーブルとしてnextSqpと、SPplsをイネーブルとしてSPqpをラッチし、SETqp信号を生成するフリップフロップである。このSETpls信号はPCLKの立ち上がりをGCLK単位で指定し、これに同期したSETqp信号により、そのGCLKサイクル内での立ち上がり時間情報を指定する。これらをSet信号と称し、画素クロック出力部58に供給する。
カウンタ75は、クロックGCLKを基準としてnextRcサイクルのカウントを行い、RSTpls信号を生成する。SETplsが「H」の時カウンタを「1」にクリアし、カウント値がnextRcに一致する時、RSTpls信号を「H」とする。
F/F76は、SETplsをイネーブルとしてnextRqpをラッチし、RSTqp信号を生成するフリップフロップである。このRSTpls信号はPCLKの立ち下がりをGCLK単位で指定し、RSTqp信号によりそのGCLKサイクル内での立ち下がり時間情報を指定する。これらをRst信号と称し、画素クロック出力部58に供給する。
なお、SETqp信号およびRSTqp信号は、それぞれSETplsおよびRSTpls信号が「H」の時有効となっていればよいので、各部の制御タイミングはこの実施の形態のみに限定されるものではない。
図16において、遅延部77は、多相クロックVCLK0〜15を基準として、計数部54から供給されるSETplsを時間情報SETqpにしたがって遅延させたパルスSを出力するものであり、また、GCLKサイクル中の期間QTを特定するためクロックGCLKも入力する。あるいは期間を示す期間信号QTを入力しても良く、この場合は高周波クロック生成部51でこのQT信号を生成する。つまり、パルスSはSETplsをSETqp・Tvだけ遅延させたパルスとなる。
遅延部78は、同様に、多相クロックVCLK0〜15を基準として、計数部54から供給されるRSTplsを時間情報RSTqpにしたがって遅延させたパルスRを出力するものであり、パルスRはRSTplsをRSTqp・Tvだけ遅延させたパルスとなる。SR−F/F79は、パルスSの立ち上がりでセット「H」し、パルスRの立ち上がりでリセット「L」した画素クロックPCLKを出力するSet−Resetフリップフロップである。
図17において、(a)はGCLKである。第1エッジ検出部52は、第1の同期信号(b)SPSYNCの立ち上がりを検出すると、そのつぎのGCLK1サイクルが「H」となる(c−1)SPpls信号を出力し、またGCLKサイクル内のどの時刻で立ち上がったかを示す(c−2)SPqp信号(本例では10とする)も出力する。
(d)Mnowは、周波数演算部57から供給される画素クロック周波数指示信号であり、図示したように入力されるものとする。(e−1)nextSは、SET時間演算部70で演算されるつぎのPCLKの立ち上がり時間を表す。最初は、SPSYNCの立ち上がりに同期してPCLKが立ち上がるようになっているので、つぎのPCLKの立ち上がりはSPqp+Mnow=250Tv後となる。ここで右辺のカンマの前の数値はnextScを、カンマの後の数値はnextSqpを表す。またそのつぎのnextSは、nextSqp+Mnow=298となる。
(e−2)nextRは、RST時間演算部71で演算されるつぎのPCLKの立ち下がり時間を表す。まずはSPSYNCの立ち上がりにMnow/2を加算した値(=130)がPCLKの立下り時間となり、(e−1)nextSと同様に右辺のカンマの前の数値はnextRcを、カンマの後の数値はnextRqpを表す。
(f)pSetは、SETqp信号を更新するためにSETplsの1GCLK前に出力するパルスであり、カウンタ72のカウント値がnextScと一致した時「H」となる。なお、図中示した丸数字は、nextScのカウント値を表す。
(g−1)SETplsは、SPplsとpSet信号を1GCLK遅延させたパルスであり、PCLKの立ち上がりをGCLK単位で指定する。(g−2)SETqpはこのSETplsの遅延値を示すPCLK立ち上がり時間情報であり、(f)pSetが「H」のときの(e−1)nextSqpの値に更新していく。(h−1)RSTplsはPCLKの立ち下がりをGCLK単位で指定したパルスであり、カウンタ75のカウント値がnextRcと一致した時「H」となる。(h−2)RSTqpはRSTplsの遅延値を示すPCLK立ち下がり時間情報である。
(i−1)Sは、(g−1)SETplsを対応する(g−2)SETqpの値だけ遅延させたパルスであり、遅延値の単位は多相クロックVCLK0〜15の位相差Tvである。同様に、(i−2)Rは、(h−1)RSTplsを対応する(h−2)RSTqpの値だけ遅延させたパルスである。(j)PCLKは、(i−1)Sの立ち上がりで「H」に、(i−2)Rの立ち上がりで「L」として生成される画素クロックである。
図18は、比較部55の機能的ブロック図である。図19は、比較部58の各信号のタイミングの一例を示す図である。図18および19を参照しながら、比較部55の詳細な動作を説明する。
図19において、(a)はGCLKである。(b−1)はSPSYNC、(b−2)はEPSYNCである。この2つの信号の立ち上がりの時間間隔が、当該ラインの走査時間Tlineである。(c−1)は、SPpls、(c−2)は、EPplsである。また、(d−2)EPqpは、同期信号EPSYNCの時間情報である。さらに(e−1)SETplsおよび(e−2)SETqpは、PCLKの立ち上がりを表す時間情報である。これらは前述したので説明は省略する。
(e−3)SETcntは、カウンタ72のカウント値である。本例では、Mnow=192で一定とする。このとき(f)PCLKが生成される。PCLKは、SPSYNCのちょうど2GCLK後に同期して生成されるので、走査終了時点EPも、EPSYNCから2GCLK遅らせた時点で検出する。よって、(c−2)EPplsを1GCLK遅延させた(d−1)EPdetが「H」のときの各信号値から、誤差Lerrを検出する。
(g)は、pSetであり、(h)countNは、(c−1)SPplsで'0'クリアされ、(g)pSetによりインクリメントされるカウンタ81のカウント値である。これらより、走査開始から走査終了時点EPまでのPCLKのサイクル数nと位相誤差m2を検出する。
図18において、カウンタ81は、SPplsで'0'クリアし、pSetによりインクリメントするカウンタであり、このカウント値countNを出力する。減算部82は、EPdetが「H」のときのカウンタ81の値countN(図19ではn)から基準カウント値RefNの減算を行い、減算結果diffN(=n−RefN)を出力する。
誤差検出部84は、EPdetが「H」のときのSETqpおよびSETcntをそれぞれEndqp、Endcntとすると、次式の演算を行い位相差diffMを算出する。diffM=Endcnt・Mp+(EPqp−Endqp)
ここでMpはGCLKの時間情報分割数であり、実施の形態2では64である。また図19の例ではdiffM=144となる。
誤差演算部83は、下記の演算を行い多相クロックVCLK0〜15の位相差Tvを単位とする誤差Lerrを出力する。
Lerr=diffN・K+diffM
ここで、Tp=K・Tv,Tp:PCLKの周期である。
なお、図4と同様に、Lerr=diffN・K+diffM−RefMと演算し、基準時間の設定値をより細かく設定するようにして、より正確な画素クロック周波数の制御を行うようにしてもよい。
つぎに図12の画素クロック生成部118で生成した画素クロックPCLKを基準に、画像データにしたがい変調する変調データ生成部119の好適な構成および動作を説明する。
図20は、変調データ生成部119の機能的ブロック図である。図21は、変調データ生成部119の各信号のタイミングの一例を示す図である。図20および21を参照しながら、詳細な動作を説明する。なお、本例では画像データPDataにしたがい8値のパルス幅変調を行った変調データMDataを生成する場合とする。
図20において、変調データ生成部119には、GCLKが各部へ供給され、基準クロックとして動作する。クロックパターン生成部90は、画素クロック生成部118から供給されSETplsおよびSETqp信号から構成されるSet信号と、画素クロック周波数指示信号Mnowとから、画素クロックPCLKの所定の位相差を持ったクロックに相当するクロックパターン信号CKP(ここではCKP0〜3で、PCLKとそれぞれ、0、π/8、π/4、3π/8位相の遅れたクロックのパターン)を生成する。このクロックパターン信号CKPは、GCLKを基準に変化する信号で、GCLKサイクルを時間情報QPで区切った64の期間Tqpにそれぞれ対応する64ビットのデータであり、期間Tqpが「H」の場合は対応するビットが「1」であり、「L」の場合は「0」となる。
そしてクロックパターンの生成手順はつぎのようにして行う。まず各クロックパターンの立ち上がりを示すオフセットデータsofs0〜3、および立下りオフセットデータrofs0〜3を求める。それぞれ、sofs0=SETqp、sofs1=SETofs+Mnow/8、sofs2=SETofs+Mnow/4、sofs3=SETofs+3Mnow/8であり、rofs0〜3はそれぞれsofs0〜3にMnow/2を加算する。次にGCLKのサイクル毎クロックパターンCKPのMSBから順にsofsまでは「0」に、sofsからrofsまでは「1」に、rofsからは「0」へと変換する。
なお各オフセットデータが64以上であれば、64毎に1GCLK遅らせて、この変換を行う。たとえば、Mnow=192、SETqp=16の場合、CKP1は、sofs=40、rofs=136(=2GCLK+8)であるので、第1のGCLKサイクルのパターンはMSB(=63)〜24ビット目までは「0」、23〜0ビットは「1」に、第2のGCLKサイクルのパターンは全て「1」に、第3のGCLKサイクルのパターンは63〜56ビットは「1」、55〜0ビットは「0」になる。
画像データデコード部91は、画像データPDataを8値のパルス幅変調データDecData(8ビット)に変換する。このパルス幅変調データDecDataは、画素クロックPCLKの1サイクルを8つに時分割した期間の時間順に、MSBからLSBの順で各ビットが対応する。たとえば、PData=3であれば、DecData='b11100000と変換する('bはバイナリ表記であることを示す)。あるいは、DecData='b00000111と変換するようにしてもよいし、モード切換信号を付加して双方のモードを切り換えられるようにしてもよい。なお、この変換方式は、本発明の要旨に反しない範囲で自由に選択できる。
変調パターン生成部92は、パルス幅変調データDecDataとクロックパターン信号CKP0〜3とから、変調パターン信号MDPを生成する。この変調パターン信号MDPは、クロックパターン信号CKPと同様に、GCLKを基準に変化する信号で、GCLKサイクルを時間情報QPで区切った64の期間Tqpにそれぞれ対応する64ビットのデータである。
シリアライザ93は、変調パターン信号MDPを多相クロックVCLK0〜15を基準として、MSBから順に(つまり時間順に)Tv時間ずつシリアル出力した変調データMDataを生成する。
図21において、具体的数値例を挙げて説明する。(a)は基準クロックとなるGCLKである。今、Set信号を構成する(b−1)SETplsおよび(b−2)SETqpが図中に示したように供給される時、画素クロックは(c−1)PCLKのように生成されている。画素クロック周波数指示信号Mnow=192であるとする。また、実際には生成しないが、PCLKをそれぞれπ/8、π/4、3π/8だけ位相を遅らせたクロックを(c−2)PCLK1、(c−3)PCLK2、(c−4)PCLK3に説明のため示す。
(d−1)〜(d−4)はそれぞれPCLK、PCLK1〜3を表すクロックパターンCKP0〜3である。それぞれ64ビットのデータでMSBからLSBに時間順であり、HEX表記している。よってこれらのクロックパターンCKP0〜3から、画素クロックPCLKを8つに時分割した期間(tp0〜tp7)を示すパターン(それぞれ時間順にPT0〜7と称する)が生成できる。すなわち、PT0=CKP0& ̄CKP1、PT1=CKP1& ̄CKP2、・・・、PT7= ̄CKP3& ̄CKP0である。ここで、&は論理積を、 ̄は否定論理を示す。
(e)DecDataはパルス幅変調データであり、図にように変換されているとする。(f)MDPは変調パターン信号であり、まずiを0〜7まで変化させたときの({64{DecData[7−i]}}&PTi)を演算し、次にこれらの論理和を演算することにより得られる。ここで、{64{DecData[i]}}はDecData[i]を64ビット分連接させたデータである。
こうして生成された変調パターン信号をシリアライズすることにより(g)MDataの変調データが生成できる。この例ではPCLK周期Tpのうち最初の3/8の期間が「H」で、残りが「L」となるようにパルス幅変調されたパルスが生成される。
また、画素クロックをπ/8ずつ位相をずらしたクロックパターンCKP0〜3を生成する代わりに、画素クロックPCLKの1サイクルを8つに時分割したそれぞれの期間を示すパターンPT0〜PT7を生成し、これらとパルス幅変調データDecDataとから変調パターン信号MDPを生成するようにしてもよい。
さらに、本実施の形態では、8値のパルス幅変調を行う場合について説明したが、他の変調方式であっても適用できる。たとえば、16値のパルス幅変調を行う場合は、画像データデコード部91は、画像データPDataを16ビットのパルス幅変調データDecDataに変換し、クロックパターン生成部90は、画素クロックPCLKとπ/16ずつ位相をずらした8つのクロックパターンCKP0〜7を生成し、変調パターン生成部92で同様にして変調パターン信号MDPを生成するようにすればよい。
また、ここでの構成例は、図12の画素クロック出力部58に適用してもよい。つまり、画素クロックPCLKのクロックパターンPCKPを生成し(前述のクロックパターン信号CKP0を用いることができる)、これを多相クロックVCLK0〜15を基準として、MSBから順に、つまり時間順に、Tv時間ずつシリアル出力すれば画素クロックPCLKを生成できる。
図16のように最終段にSR−F/Fを用いる構成の画素クロック出力部の場合、一般にSR−F/FはセットパルスSとリセットパルスRが同一期間に重なると正確に動作しないものが多い。そのためセットパルスとリセットパルス(パルス幅はGCLKの1サイクル分)が重ならないように、生成する画素クロック周波数(GCLKの1/2の周波数まで)に制限が生じる。一方、上述したようなシリアライザによる画素クロック出力部の場合、このような制限が生じず、生成できる画素クロックを高周波数まで拡大できる。逆に言えば、内部クロックGCLKをより低周波数まで分周でき、消費電流をより低減できる。他方、図16の構成であれば非常に簡便で回路規模も小さくできる。よって画素クロック出力部の構成は要求される性能に応じて選択するようにすればよい。
以上説明したように、この画素クロック生成部の実施の形態2によれば、高精度に生成された多相クロックVCLK0〜15を基準として画素クロックを生成し、走査時間の変動に合わせて画素クロック周波数を制御しているので、走査平均速度の変動があってもこの誤差を高精度に補正できる画素クロックが生成でき、さらに画素クロック周波数の制御はポリゴンミラーの各面に対応してそれぞれ制御しているので、面毎の走査速度誤差があっても高精度に補正できる画素クロックが生成できる。
また、画素クロックの生成は多相クロックVCLK0〜15の位相差Tvの単位で正確に制御できるので、多相クロックの発振周波数を高くしないでもよいので、回路の設計が容易となり消費電流も低減できる。たとえば、前述の実施の形態1と同等の分解能で画素クロックを生成する場合は、多相クロックの発振周波数は1/16でよい。逆にいえば、同等の発振周波数とした場合、画素クロック生成分解能を16倍に向上できる。つまり高精度な画素クロックが生成できる。さらには、画素クロック生成部の大部分は多相クロックの1つをさらに分周したクロックGCLKで動作するようにしているので、動作周波数がさらに低下され、消費電流を低減できる。
また、この画素クロック生成部を画像形成装置に適用すれば、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成するので、高品質な画像を形成できる画像形成装置を提供できる。
(3.実施の形態3)
実施の形態3による画像形成装置が、実施の形態1と異なる点は、複数の光源からの出射光を共通の走査光学系を用いて感光体に照射して画像(静電潜像)を形成するマルチビーム走査光学系を適用した点である。
図22は、本発明の実施の形態3による画像形成装置を説明する図である。ここでの実施の形態として、画素クロック生成部、変調データ生成部、およびレーザ駆動部を2セット備え、それぞれのレーザ駆動部によって2つの半導体レーザが駆動される。
図22において、半導体レーザ124および125は、コリメートレンズ122および123と光軸を一致させ、主走査方向に対称に射出角度を持たせ、ポリゴンミラー104の反射点で射出軸が交差するようレイアウトされている。それぞれの半導体レーザ124、125より射出した複数のビームは、シリンダレンズ120を介してポリゴンミラー104で一括して走査され、fθレンズ106、ミラー110、およびトロイダルレンズ107により感光体105上に結像される。画像処理部133には各光源ごとに1ライン分の画像データが蓄えられ、ポリゴンミラー1面毎に読み出されて、2ラインずつ同時に書き込みがおこなわれる。
またミラー110の両端には、フォトディテクタPD1(108)、フォトディテクタPD2(109)がそれぞれ配置されており、走査の開始と終了とが検出される。つまりポリゴンミラー104により反射された2つの光源から出射されたレーザ光は、感光体105を1ライン走査する前に順次PD1に入射され、走査後にPD2に入射される。
それぞれのフォトディテクタでは、入射されたレーザ光をそれぞれ第1の同期信号SPSYNCおよび第2の同期信号EPSYNCに変換し、同期信号分離部126に入力する。2つの光源は感光体105上を時差を持って走査するように配置されているので、同期信号分離部126は、同期信号SPSYNCをそれぞれの光源に対応した同期信号SPSYNCaとSPSYNCbに、同様に同期信号EPSYNCをそれぞれの光源に対応した同期信号EPSYNCaとEPSYNCbに分離する。
図23は、フォトディテクタからの同期信号のタイミングの一例を示す図である。(a)は第1の同期信号SPSYNCであり、(b)は第2の同期信号EPSYNCである。ここでは半導体レーザ125のレーザ光が先に走査されているとすると、同期信号(a)SPSYNCは(c−1)SPSYNCaおよび(c−2)SPSYNCbのように分離される。同様に同期信号(b)EPSYNCは、(d−1)EPSYNCaおよび(d−2)EPSYNCbのように分離される。
分離された一方の同期信号の組SPSYNCaとEPSYNCaとは画素クロック生成部127(図22)に供給され、他方の組SPSYNCbとEPSYNCbとは画素クロック生成部130に供給される。
画素クロック生成部127は、2つの同期信号SPSYNCaおよびEPSYNCaから走査時間Tlineaを測定し、その時間間隔にあらかじめ定められた所定数のクロックが収まるように求められた周波数の画素クロックPCLKaを生成する。画像処理部133は、画素クロックPCLKaを基準に画像データaを生成する。
変調データ生成部128は、画素クロックPCLKaを基準として、入力された画像データaから変調データaを生成し、レーザ駆動部129を介して半導体レーザ125を駆動する。
同様にして、画素クロック生成部130は、2つの同期信号SPSYNCbおよびEPSYNCbから画素クロックPCLKbを生成し、画像処理部133において画素クロックPCLKbを基準に生成された画像データbから変調データ生成部131において変調データbを生成し、レーザ駆動部132を介して半導体レーザ124を駆動する。
ここで、画素クロック生成部127、130は図1の画素クロック生成部111と同様の機能を果たし、前述した画素クロック生成部の実施の形態1および実施の形態2を適用できるので、詳細構成および動作説明は省略する。変調データ生成部128、131も同様に説明を省略する。
なお、高周波クロック生成部1および51は、画素クロック生成部127と130とで共通に用いる構成とすれば、回路規模の小型化や消費電流の低減が図ることができる。また、同期信号を検出する2つのエッジ検出部2および3(または52および53)を、画素クロック生成部127と130とでそれぞれ共通化して検出し、検出信号を分離する構成としてもよい。
さらには、フィルタ6、56や周波数演算部7、57の演算処理の一部は1ラインに1回動作するだけであるので、これを共通化し、複数の画素クロック周波数演算に対し時系列に処理するようにしてもよい。
この実施の形態によれば、前述の従来技術での問題点で示した(3)光源毎の走査速度誤差があっても、つまり2つの光源の波長が異なり、走査光学系の色収差により走査速度が変動するなどにより2つのビームの走査速度が異なっても、即ち、図23の2つのビームの走査時間TlineaとTlinebが各々独立に変動しても、それぞれの走査速度変動に合わせて画素クロックPCLKaおよびPCLKbの周波数を独立に制御しているので、速度変動が高精度に補正でき、高品質の画像が形成できる。
また、マルチビーム走査光学系は複数の半導体レーザを備えた構成でなく、1つの半導体レーザアレイから出射される複数のレーザビームを、共通の走査光学系を用いて走査する構成もある。このような光学系に対しても同様に適用できる。なお、マルチビーム走査光学系には様々な実施の形態があるが、本発明は、走査光学系の形態によらず適用できるものであるので、詳細な構成の図示および説明は省略する。
(4.実施の形態4)
実施の形態4による画像形成装置が、実施の形態1と異なる点は、複数の感光体を有する多色対応の画像形成装置であり、シアン、マゼンダ、イエロー、ブラックの各色に対応した別々の感光体を備え、走査光学系もそれぞれの感光体に対応して備えられ、各色に対応した画像(静電潜像)をそれぞれの感光体上に形成する。そして、1枚の画像形成媒体(たとえば紙)に各色の画像を転写することによりカラー画像を形成する。
図24−1は、本発明の実施の形態4による画像形成装置の主に機械的動作部分の概略構成図である。図24−2は、本発明の実施の形態4による画像形成装置の主に画像処理部分の概略構成図である。
実施の形態4による画像形成装置は、単純には図1の画像形成装置を4つ備えることにより実現できる。また、小型化のため走査光学系の一部を共通化した形態も適用できるが、それぞれの光路は異なるので、異なる画像形成装置を複数個備えたものと考えてよい。図24−1は、このような構成の一例であり、副走査断面図であり、一部ユニットのみ図
示している。
図中のポリゴンミラー151は、2段構成であり、点線を軸として回転しており、各走査光学系で共通に用いている。半導体レーザ161aから出射したレーザ光はコリメータレンズ、シリンダレンズを介して(いずれも不図示)、ポリゴンミラー151のa点で反射される。同様に、半導体レーザ161b〜dから出射したレーザ光はポリゴンミラー151のb〜d点で反射される。ポリゴンミラーで反射されたレーザ光は、走査レンズ152、154および折り返しミラー153、155、156を経由して感光体157上を走査し(ビームの走査方向つまり主走査方向は、図面に対して垂直方向である)、画像(静電潜像)を形成する。ここで図番末尾のa〜dは半導体レーザa〜dに対応したものであり、それぞれイエロー、マゼンタ、シアン、ブラックの各色に対応した画像を形成しているものとする。そして中間転写ベルト158上に置かれ矢印方向に移動する画像形成媒体へ、各感光体157a〜dに形成された各色の画像を転写してカラー画像が形成される。
このとき、有効走査範囲外の両側に配備されたミラー170によりビームを検出器(フォトディデクタ)171に導光して、走査の開始と終了とを検出し、同期信号SPSYNC、EPSYNCに変換する。これらの同期信号SPSYNC、EPSYNCは前述と同様に、画素クロック生成部164に供給され、走査速度誤差を補正するように周波数が制御された画素クロックPCLKを生成する。また、画像処理部165は、画素クロックPCLKを基準に画像データPDataを生成する。変調データ生成部163は、画素クロックPCLKを基準として、入力された画像データPDataから変調データを生成し、レーザ駆動部162を介して半導体レーザ161を駆動する。これらを各色の対応ビーム毎に、同様に行う。
また、画素クロック生成部164は前述した実施の形態による画素クロック生成部を適用できる。ここで、走査光学系の各部品の製造精度や組付け精度、経時変化などによる変形などの影響により、各走査光学系での走査時間はそれぞれ異なり、また走査開始および終了を検出する2つのフォトディデクタ間の距離も組付け精度などにより異なるので、画像クロック周波数制御の基準となる基準値RefNを各走査光学系毎に画像形成装置の製造時などにあらかじめ求めておき、これらを基準値RefNとして画素クロック生成部164にそれぞれ与える。ただし、画像クロック周波数制御の基準となる基準値RefNは、経時変化などにより画像劣化が生じた時は再度求めなおすようにすることが望ましい。
また、同期信号SPSYNCによる走査開始検出位置も走査光学系毎異なる場合があるので、同期信号SPSYNCの立ち上がりから所定時間後(画素クロックPCLKの所定サイクル後)に、画像の書き込み開始するようにしておき(書き込み開始オフセットと称する)、この書き込み開始オフセットを各走査光学系毎あらかじめ求めておく。
図25は、各走査光学系における操作時間に対する走査幅の関係を示す図である。(a−1)は、走査光学系aの1ラインの走査幅を示す。SPaおよびEPaは、走査開始と終了とを検出する検出器の位置を、感光体上に対応付けた位置である。この距離をLaとする。画像の1ドット幅をLpとした時、La/Lp=RefNaが1ライン中のドット数となり、これを基準値RefNとして設定する。また、実際に画像を形成する範囲はPSPとPEPとの間の領域とする。(a−2)は、走査光学系aの1ラインの走査時間を示す。
走査開始位置SPおよび終了位置EPに対応して、同期信号SPSYNCおよびEPSYNCがそれぞれ検出され、この時間間隔を走査時間Tlaとする。この走査時間Tlaは前述したように様々な要因により変動するが、画素クロック周期Tpaを、Tpa=Tla/RefNaの関係が成り立つように制御しているので、SPSYNCから所定のPCLKサイクル後(N1とN2とする)、出力する書き込みパルスは常に走査線上の同じ位置にドットを形成する(D1およびD2)。また、実際の画像の書き込み開始をNofsaサイクル後にする。
同様にして、(b−1)は、走査光学系bの1ラインの走査幅を示し、走査開始位置SPbと終了位置EPb間の距離をLbとすると、Lb/Lp=RefNbを基準値RefNとして設定する。また(b−2)は、査光学系bの1ラインの走査時間を示し、同期信号SPSYNCとEPSYNCとの時間間隔を走査時間Tlbとする。これも同様に、画素クロック周期Tpbを、Tpb=Tlb/RefNbの関係が成り立つように制御している。さらに双方の走査開始位置SPaおよびSPbとの距離差に応じて、画像の書き込み開始オフセットNofsbを設定することにより、実際に画像を形成する範囲PSP〜PEPが走査光学系によらず一致する。
こうして、実施の形態4による画像形成装置によれば、走査光学系毎の速度誤差を含め、様々な要因で走査速度誤差が生じても、画像形成する各色それぞれに対応する走査速度差・変動に合わせて画素クロックPCLKの周波数を独立に制御しているので、形成されたカラー画像は、色ずれが生じず、色再現性、解像度の劣化が生じず、高品位の画質を得ることができる。
(5.実施の形態5)
以上説明したように、本発明の実施の形態によれば、前述した課題に示した(1)〜(4)の走査速度誤差を高精度に補正することができる。これらの実施の形態に以下に説明する変更を行うことにより、走査速度の非線形性誤差をも高精度に補正することができる。
以下図面に基づき、本発明の実施の形態5について説明する。図26はこの実施の形態にかかる画素クロック生成部の構成を示すブロック図である。この画素クロック生成部は図1、図22、図24の画像形成装置のそれぞれの画素クロック生成部として適用できる。図26において、図2と同一図番を付したブロックは同様の構成で、同様の機能を果たすので詳細な説明は省略する。周波数演算部201は図2の周波数演算部7と同様にして、誤差データErrにしたがって適正な画素クロック周波数を算出し、これを画素クロック平均周波数信号Mavgに変換して出力する。周波数変調部202は、周波数変調データ生成部203から供給される周波数変調データFMDataにしたがって、画素クロック平均周波数信号Mavgの変換を行うことにより所望の周波数変調を行う画素クロック周波数指示信号Mnowを生成し、分周器4へ供給する。分周器4ではこの画素クロック周波数指示信号Mnowにしたがって高周波クロックVCLKを分周して画素クロックPCLKを生成するので、画素クロック平均周波数信号Mavgを変調することにより画素クロックPCLKの周波数変調が行える。周波数変調データ生成部203は、第1の同期信号SPSYNCを原点とした走査位置(ここでは画素クロックPCLK数nで表す)に対応した周波数変調データFMDataを生成する。この周波数変調データFMDataは、走査位置nにおける走査速度V(n)に対応した画素クロック周波数、ここでは高周波クロックVCLKの分周値で表したM(n)と画素クロック平均周波数信号Mavgとの差である。
図27に走査位置nに対する走査速度V(n)(図27(a))と理想位置からのずれΔ(n)(同図(b))と周波数変調データFMData(n)(同図(c))の一例を示す。理想位置からのずれΔは、V(n)−Vavgの積分した値となる。走査速度の非線形性誤差は走査光学系の精度や組付け誤差が主因となり決まるので、周波数変調データFMDateは、たとえば装置の製造時にあらかじめ取得しておき、これを格納しておけばよい。周波数変調データの取得方法の一例を示す。まず一定の画素クロック周波数で走査を行い、各走査位置における理想位置からのずれΔを測定する。このずれΔの微分値が走査速度Vであるので、これより画素クロック周波数に換算し画素クロック平均周波数信号Mavgとの差分を求める。簡単には所定の走査位置間(図27のΔn)の傾きを走査速度V’と近似し、この領域内ではその値からの換算値を周波数変調データとして用いる(図27の各図破線)。このようにすれば、簡便に周波数変調データを求めることができ、かつその領域間は同一データでいいのでデータを格納するメモリ量も低減できる。また走査速度補正をより高精度に行いたい場合には領域Δnを短くすればよい。
周波数変調データFMDataは、簡単には分周比Mの差分データΔMを求めればよい。画素クロック周波数指示信号Mnowへの変換は、画素クロック平均周波数信号Mavgに差分データΔMを加算することにより行える。
また、画素クロックの周波数変調をより高精度に行うため、周波数変調データは分周比Mだけでなく、その小数部も含むようにするとよい。この小数部の処理は前述と同様にすればよい。すなわち図5におけるM値とC値、あるいは図8におけるM値とF値である。上記のように周波数変調を領域に分けて行う場合は、領域長ΔnをNa(Na=2^a、a:2進数表記小数部の桁数)の整数倍(1以上)とすると処理が簡便となり、より好適である。以下の詳細説明では周波数変調データFMDataを整数部ΔMおよびa桁の小数部ΔFで扱う場合について説明する。
つぎに画素クロック生成の各部詳細を説明する。周波数演算部201は、図8と同様の構成を適用する(図示省略)。ただし、カウンタ30、変換部31と加算部32は、後述する周波数変調部202に同等の機能を持つので共通化し、周波数演算部201からは削除するものとする。よって選択部28出力Mと選択部29出力Fを画素クロック平均周波数信号Mavgとして出力する。
図28は、周波数変調部202の詳細構成例である。図28の周波数演算部202は、画素クロック平均周波数信号Mavg(M、F)と周波数変調データFMData(ΔM、ΔF)を加算した周波数データ(M'、F')を画素クロック周波数指示信号Mnowに変換する。ここでΔMは正負の数であり、ΔFは正数である。加算部211は、FとΔFを加算してF'を得る。このとき桁上がりがあればCOを出力する。加算部210は、MとΔMと桁上がり信号COとを加算しM'を得る。カウンタ212、変換部213および加算部214は、図8のカウンタ30、変換部31と加算部32とそれぞれ同等の機能を果たし、M'とF'を画素クロック周波数指示信号Mnowに変換する。前述と同様の動作であるので詳細説明は省略する。
図29は、周波数変調データ生成部203の詳細構成例である。周波数変調データ格納部220は、走査ライン中の各領域に対応する周波数変調データFMDataを、各領域番号をアドレスとして格納しておくメモリであり、供給されるアドレス信号に対応したデータを出力する。格納するデータは上述のようにしてあらかじめ求められている。このデータは装置内の他の格納部に保存しておき、装置の立ち上げ時等にロードするようにしてもよい。
周波数変調制御部221は、走査ライン中の領域番号を演算しアドレス信号を生成する。同期信号SPSYNCの入力によりアドレスを0クリアし、画素クロックPCLKをカウントして、領域長Δnに達する毎にアドレス信号をインクリメントしていく。同期信号SPSYNCの代わりに検出パルスSPplsを入力するようにしてもよい。また、各領域の領域長をあらかじめ設定しておき、それぞれの領域長に達する毎にアドレスをインクリメントするようにしておけば、周波数変化量に応じて領域長を変えることができ、格納メモリ量の低減と周波数補正精度向上の両立を果たせる。
ところで、走査速度または画素クロック周波数を変更すると周波数変調データは比例して変更する必要がある。たとえば走査速度(ポリゴン回転速度)を変えずに、画素クロック周波数を変化させ画素密度を変更する場合、あらかじめ求めておいた周波数変調データを変更する倍率に応じて比例して変更すればよい。つまり、たとえば周波数変調データを算出する際の画素クロック周波数を1/2倍して画素密度を1/2にする場合、算出ときの周波数変調データを1/2倍したデータを周波数変調データ格納部220に格納するようにすればよい。
この画素クロック生成部によれば、さらに非線形性誤差をも補正した高精度な画素クロックが生成できる。
また、この画素クロック生成部を画像形成装置に適用すれば、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成するので、高品質な画像が得られる。また、ポリゴンミラーの面毎に走査速度の非線形性誤差が異なるなど非線形性誤差が走査ライン毎の周期性を持つ場合、あらかじめ各々の面毎に対応した周波数変調データを取得し、走査時にはその面に対応した周波数変調データを用いるようにすればよい。
図30はこのような場合に好適な周波数データ生成部の別の実施の形態である。図30において、周波数変調制御部221は、図29と同様に走査ライン中の領域番号を演算しアドレス信号を生成する。周波数変調データ格納メモリ223(1)〜(Nf)は、ポリゴンミラーの面数をNfとしたときに、各面に対応し、走査ライン中の各領域に対応する周波数変調データFMDataを、各領域番号をアドレスとして格納しておくメモリであり、供給されるアドレス信号に対応したデータを出力する。ここでどの面に対応するメモリが有効に選択するかはメモリ選択信号によって選択される。メモリ選択信号生成部222は、周波数演算部201から出力される面選択信号FNoをメモリ選択信号に変換し出力する。ここで面選択信号FFNoは相対的な面番号を示すものであり、メモリ選択信号は絶対的な面番号に対応しているので、ここでその対応付けを行う。
この対応付けの方法の一例を示す。周波数変調データの取得時に、まず一定の画素クロック周波数で(周波数制御を行わずに)走査を行い、各面毎に各走査位置における理想位置からのずれΔを測定するが、この時各面毎走査速度が異なるので比較部5の出力Lerrは各面毎固有であり異なった値をとる。通常、少なくともその誤差Lerrの順列から各面の絶対的な面番号は特定できる。よって、この各面毎の誤差Lerrも理想位置からのずれΔから算出した周波数変調データを格納したメモリ番号に対応して格納しておく。つぎに通常動作時には、ポリゴンミラーの回転が安定した後、一定の画素クロック周波数で(周波数制御を行わずに)走査を行い、面選択信号FNoと誤差Lerrを対応付けて取得し、その計測した誤差Lerrの並びと格納しておいた誤差Lerrの並びとを一致させることにより、面選択信号FNoとメモリ番号が対応付けられることになる。その後画素クロック周波数制御動作を行うようにすればよい。なお、誤差Lerrの複数ライン分の平均を使用することにより確度を向上できる。
このようにすれば、ポリゴンミラーの面毎に走査速度の非線形性誤差が異なっていても、各々の非線形性誤差に応じた画素クロック周波数補正を行えるので、より高精度な画素クロックが生成できる。
つぎに画素クロック生成部の別の実施形態を説明する。図31は画素クロック生成部の構成を示すブロック図である。この画素クロック生成部は図1、図22、図24の画像形成装置のそれぞれの画素クロック生成部として適用できる。
図31において、図12と同一図番を付したブロックは同様の構成で、同様の機能を果たすので詳細説明は省略する。周波数演算部231は図12の周波数演算部57と同様にして、誤差データErrにしたがって適正な画素クロック周波数を算出し、これを画素クロック平均周波数信号Mavgに変換して出力する。周波数変調部232および周波数変調データ生成部233は、図28の周波数変調部202および周波数変調データ生成部203と同様の機能を果たし、同様の構成で適用できるので詳細説明は省略する。ただし本例では、画素クロックPCLKの代わりにクロックGCLKを基準に動作し、セットパルスSetをカウントすることにより走査位置(n)を計数する。もちろん画素クロックPCLKを基準に動作させてもよい。
この画素クロック生成部によれば、上述した効果に加え、非線形性誤差をも補正した高精度な画素クロックが生成できる。また、この画素クロック生成部を画像形成装置に適用すれば、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成するので、高品質な画像が得られる。
以上説明したように、本発明によれば、高精度に生成された高周波クロックVCLKを基準として画素クロックを生成し、走査時間の変動に合わせて画素クロック周波数を制御しているので、走査平均速度の変動があってもこの誤差を高精度に補正できる画素クロックが生成でき、さらに画素クロック周波数の制御はポリゴンミラーの各面に対応してそれぞれ制御しているので、面毎の走査速度誤差があっても高精度に補正できる画素クロックが生成できる。さらには走査速度の非線形性誤差を補正するようにして画素クロック周波数を変調しているので、より高精度な画素クロックが生成できる。また、この画素クロック生成部を画像形成装置に適用しているので、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成でき、高品質な画像が得られる。
また、高精度に生成された多相クロックVCLK0〜15を基準として画素クロックを生成し、走査時間の変動に合わせて画素クロック周波数を制御しているので、走査平均速度の変動があってもこの誤差を高精度に補正できる画素クロックが生成でき、さらに画素クロック周波数の制御はポリゴンミラーの各面に対応してそれぞれ制御しているので、面毎の走査速度誤差があっても高精度に補正できる画素クロックが生成できる。また、画素クロックの生成は多相クロックVCLK0〜15の位相差Tvの単位で正確に制御できるので、多相クロックの発振周波数を高くしないでもよいので、回路の設計が容易となり消費電流も低減できる。さらには、多相クロックの1つをさらに分周したクロックGCLKで動作するようにしているので、動作周波数がさらに低下され、消費電流の低減ができる。
また、この画素クロック生成部を画像形成装置に適用しているので、走査速度誤差を高精度に補正した画素クロックを基準に画像を形成でき、高品質な画像が得られる。さらに、最適な周波数変調データを循環して選択するようにしているので、ポリゴンミラーの面毎に走査速度の非線形性誤差が異なっていても、それぞれの非線形性誤差に応じた画素クロック周波数補正を行えるので、より高精度な画素クロックが生成できる。
(6.ハードウェア構成など)
図32は、実施の形態にかかる画像形成装置のハードウェア構成を示すブロック図である。図に示すように、この画像形成装置は、コントローラ1210とエンジン部1260とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ1210は、画像形成装置全体の制御と画像読み取り、情報処理、画像処理、操作部(不図示)からの入力を制御するコントローラである。エンジン部1260は、PCIバスに接続可能な処理エンジンであり、実施の形態による画像形成装置の要部である画素クロック生成部111、変調データ生成部113などが含まれる。また、画像情報処理エンジンとしてたとえば取得した画像データに対して誤差拡散やガンマ変換などの画像情報処理部分が含まれる。
コントローラ1210は、CPU1211と、ノースブリッジ(NB)1213と、システムメモリ(MEM−P)1212と、サウスブリッジ(SB)1214と、ローカルメモリ(MEM−C)1217と、ASIC(Application Specific Integrated Cercuit)1216と、ハードディスクドライブ1218とを有し、ノースブリッジ1213とASIC1216との間をAGP(Accelerated Graphics Port)バス1215で接続した構成となる。また、MEM−P1212は、ROM(Read Only Memory)1212aと、RAM(Random Access Memory)1212bとをさらに有する。
CPU1211は、画像形成装置の全体制御を行うものであり、NB1213、MEM−P1212およびSB1214からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB1213は、CPU1211とMEM−P1212、SB1214、AGP1215とを接続するためのブリッジであり、MEM−P1212に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P912は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリなどとして用いるシステムメモリであり、ROM1212aとRAM1212bとからなる。ROM1212aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM1212bは、プログラムやデータの展開用メモリ、画像情報処理時の画像描画メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB1214は、NB1213とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB1214は、PCIバスを介してNB1213と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC1216は、マルチメディア情報管理用のハードウェア要素を有するマルチメディア情報管理用途向けのIC(Integrated Circuit)であり、AGP1215、PCIバス、HDD1218およびMEM−C1217をそれぞれ接続するブリッジの役割を有する。
このASIC1216は、PCIターゲットおよびAGPマスタと、ASIC1216の中核をなすアービタ(ARB)と、MEM−C1217を制御するメモリコントローラと、ハードウェアロジック等により画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)と、エンジン部1260
との間でPCIバスを介してUSB(Universal Serial Bus)1240、IEEE(the Institute of Electrical and Electronics Engineers 1394)インタフェース1250が接続される。
MEM−C1217は、送信用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD1218は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストーレジである。
AGP1215は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM−P1212に高スループットで直接アクセスすることにより、グラフィクスアクセラレータカードを高速にするものである。
ASIC1216に接続するキーボード1220は、操作者からの操作入力を受け付けて、ASIC1216に受け付けられた操作入力情報を送信する。
実施の形態の画像形成装置で実行される画素クロック生成機能、パルス変調機能、および画像形成機能の一部は、インストール可能な形式又は実行可能な形式のファイルで画素クロック生成プログラム、パルス変調プログラム、および画像形成プログラムとして、CD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、実施の形態による画像形成装置で実行される諸機能がプログラムで実行する場合、たとえば画素クロック生成プログラム、パルス変調プログラム、および画像形成プログラムなどをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良く、また、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施の形態の画像形成装置で実行される画素クロック生成機能、パルス変調機能、および画像形成機能は、上述した各部(高周波クロック生成部1、第1エッジ検出部2、第2エッジ検出部3、分周器4、比較部5、フィルタ6、周波数演算部7、高周波クロック生成部51、第1エッジ検出部52、計数部54、画素クロック出力部58、変調パターン生成部92、シリアライザ93、画素クロック生成部111、画像処理部112、変調データ生成部113、レーザ駆動部114、画素クロック生成部118、変調データ生成部119、同期信号分離部126、画像処理部133等)を含む、またはその一部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから画像処理プログラムおよび画像形成プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、システムコントローラ、画像処理部、コピーアプリ、プリンタアプリ、画素クロック生成プログラム、パルス変調プログラム、および画像形成プログラム等が主記憶装置上に生成されるように構成することも出来る。