(57)【要約】【課題】画像形成装置のコントローラに搭載されている各回路のレジスタの設定処理を効率的に行い、レジスタの設定処理時間を短縮する。【解決手段】ＩＯＡＳＩＣ４０と、ＲＡＭ３０と、ＲＡＭ３０に対するデータの読み書き処理、および印刷エンジン１の動作を制御する制御ＡＳＩＣ１０とを備えるプリンタコントローラ１において、ＲＡＭ３０の所定領域に、設定する対象のレジスタのアドレス毎に、そのレジスタの設定内容を示したコマンドを対応付けた設定データを格納しておく。また、制御ＡＳＩＣに、ＲＡＭ３０の所定領域から設定データを読み出し、読み出した設定データのアドレスが特定するレジスタに対して、読み出した設定データのコマンドが示すレジスタ設定処理を実行するレジスタ設定回路を設ける。【選択図】図１
2007185911.tif 000002
【特許請求の範囲】
【請求項１】
印刷エンジンに印刷データを出力し、該印刷エンジンに印刷処理を実行させるプリンタコントローラであって、
外部装置との間で行われるデータの送受信を制御するＩＯ制御回路と、
メモリと、
前記メモリに対するデータの読み書き処理、および前記印刷エンジンの動作を制御する制御回路と、を備え、
前記ＩＯ制御回路および前記制御回路には、各々、各種データを設定するためのレジスタが搭載されていて、
前記メモリの所定領域には、設定する対象の前記レジスタのアドレス毎に、該レジスタへの設定処理の内容を示したコマンドを対応付けた設定データが格納されていて、
前記制御回路は、前記メモリの所定領域から前記設定データを読み出し、該読み出した設定データに含まれるアドレスのレジスタに対して、該読み出した設定データのコマンドが示す設定処理を実行するレジスタ設定回路を有すること
を特徴とするプリンタコントローラ。
【請求項２】
請求項１に記載のプリンタコントローラであって、
前記プリンタコントローラの全体の制御を行う演算処理部を備え、
前記演算処理部は、前記レジスタ設定回路に、レジスタの設定処理を指示するデータを出力し、
前記レジスタ設定回路は、前記演算処理部からの前記指示するデータを受けると、前記設定データを読み出し、該読み出した設定データのコマンドが示す設定処理を実行すること
を特徴とするプリンタコントローラ。
【請求項３】
請求項１〜２のいずれか一項に記載のプリンタコントローラであって、
前記演算処理部は、前記メモリ上に画像データを生成する処理を行い、
前記制御回路は、
前記メモリ上の画像データを読み出し、該画像データから印刷データを生成し、該生成した印刷データを前記印刷エンジンに出力する画像処理回路を有していて、
前記設定データには、前記画像処理回路に搭載されているレジスタを設定するためのデータが含まれていること
を特徴とするプリンタコントローラ。
【請求項４】
請求項１〜３のいずれか一項に記載のプリンタコントローラであって、
前記コマンドは、レジスタへのデータ書き込みを指示するライトコマンド、所定時間処理を待つことを指示するＷＡＩＴコマンド、およびポーリング処理を指示するコマンドのいずれかであること
を特徴とするプリンタコントローラ。
【請求項５】
請求項1〜４のいずれか一項のプリンタコントローラと、
前記プリンタコントローラが出力する印刷エンジンを用いて、印刷処理を実行する印刷エンジンと、を備えるプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置の技術に関し、特に、画像形成装置のコントローラに搭載されているＡＳＩＣ（Application Specific Integrated Circuit）に各種のデータを設定するための技術に関する。
【背景技術】
【０００２】
従来から、特定用途向けの集積回路であるＡＳＩＣに設けられているレジスタに初期設定を行うレジスタ設定回路が知られている（例えば、特許文献１）。特許文献１のレジスタ設定回路は、メモリに格納されている「初期値」を読み出し、その初期値をレジスタに格納する動作を行う。
【０００３】
【特許文献１】特開平１１−３５３１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、プリンタ等の画像形成装置では、電源が投入された際に行われるＡＳＩＣの初期値の設定だけでなく、動作中においてもレジスタの設定値を変更する処理が行われている。また、ＡＳＩＣに搭載されているレジスタの設定は、単純にメモリから読み出したデータをレジスタに格納するだけでは行えないものがある。例えば、あるレジスタａにデータを格納するためには、別のレジスタｂに所定データが格納されていることが条件となることがある。この場合、あるレジスタａにデータを格納する前に、レジスタｂのデータを読み出し、その読み出したデータが所定データであることを確認する処理が必要になる。
【０００５】
上記特許文献１のレジスタ設定回路は、メモリから読み出した初期値を単にレジスタの格納することはできるが、装置の動作中においてレジスタの設定値を初期値以外に変更したり、或いは、所定の条件を考慮した上でＡＳＩＣのレジスタのデータを設定していくことまではできない。すなわち、上記特許文献１の構成では、プリンタ等の画像形成装置に搭載されたＡＳＩＣの設定に対応できないことがある。そのため、プリンタ等の画像形成装置では、ＡＳＩＣの設定をソフトウェアの処理で行っている。具体的には、画像形成装置のＣＰＵがプログラムを実行することにより、ＡＳＩＣのレジスタの値を設定している。
【０００６】
しかしながら、ＣＰＵによりＡＳＩＣのレジスタを設定する方法は、プログラム量が大きくなることや、設定処理に長時間かかるという別の問題を有している。特に、プリンタに搭載されているＡＳＩＣにある画像処理回路は、設定するレジスタの数が多いため、ＡＳＩＣの設定処理時間が長時間かかるケースが多くなる。また、プリンタは、紙詰まり、ＩＦエラー等が起こるたびに、ＡＳＩＣのレジスタの値を設定する処理が必要になるため、そのたびに利用者は、長時間待たされてしまう。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、画像形成装置等の情報処理装置に搭載されているコントローラに設けられた回路のレジスタの設定処理を効率的に行い、回路を設定する処理時間を短縮することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一態様は、印刷エンジンに印刷データを出力し、該印刷エンジンに印刷処理を実行させるプリンタコントローラに適用される。
【０００９】
そして、前記プリンタコントローラは、外部装置との間で行われるデータの送受信を制御するＩＯ制御回路と、メモリと、前記メモリに対するデータの読み書き処理、および前記印刷エンジンの動作を制御する制御回路と、を備え、前記ＩＯ制御回路および前記制御回路には、各々、各種データを設定するためのレジスタが搭載されていて、前記メモリの所定領域には、設定する対象の前記レジスタのアドレス毎に、該レジスタへの設定処理の内容を示したコマンドを対応付けた設定データが格納されていて、前記制御回路は、前記メモリの所定領域から前記設定データを読み出し、該読み出した設定データに含まれるアドレスのレジスタに対して、該読み出した設定データのコマンドが示す設定処理を実行するレジスタ設定回路を有する。
【００１０】
このように、本一態様では、プリンタコントローラの制御回路に、制御回路およびＩＯ制御回路に搭載されているレジスタを設定するレジスタ設定回路を設けるようにしている。また、レジスタ設定回路は、読み出したコマンドが示す設定処理を行う構成を採用している。そのため、本一態様によれば、ＣＰＵがプログラムを実行することにより行っていたレジスタ設定処理をハードウェアで行うことができるようになる。その結果、本一態様によれば、コントローラに搭載されている各回路のレジスタ設定処理を高速化することができる共に、ＣＰＵを面倒なレジスタ設定処理から開放させることができる。
【００１１】
また、前記プリンタコントローラにおいて、前記プリンタコントローラの全体の制御を行う演算処理部を備え、前記演算処理部は、前記レジスタ設定回路に、レジスタの設定処理を指示するデータを出力し、前記レジスタ設定回路は、前記演算処理部からの前記指示するデータを受けると、前記設定データを読み出し、該読み出した設定データのコマンドが示す設定処理を実行することとしてもよい。
【００１２】
このように構成することにより、演算処理部は、レジスタ設定回路に対して、任意のタイミングでプリンタコントローラのレジスタの設定を実行させることができる。例えば、演算処理部は、初期設定を行う起動タイミングだけでなく、必要なタイミング（例えば、印刷処理を行うたびに）で、レジスタ設定回路にレジスタの設定を指示することができる。すなわち、演算処理部がレジスタ設定を行うタイミングを判定するだけで、後は、ハード処理でレジスタ設定が行われるようになる。
【００１３】
また、前記プリンタコントローラにおいて、前記演算処理部は、前記メモリ上に画像データを生成する処理を行い、前記制御回路は、前記メモリ上の画像データを読み出し、該画像データから印刷データを生成し、該生成した印刷データを前記印刷エンジンに出力する画像処理回路を有していて、前記設定データには、前記画像処理回路に搭載されているレジスタを設定するためのデータが含まれていることとしてもよい。
【００１４】
このように構成することにより、ソフトウェアによる処理では、長時間かかる画像処理回路のレジスタ設定時間を短縮することができる。
【００１５】
また、前記プリンタコントローラにおいて、前記コマンドは、レジスタへのデータ書き込みを指示するライトコマンド、所定時間処理を待つことを指示するＷＡＩＴコマンド、およびポーリング処理を指示するコマンドのいずれかであることとしてもよい。
【００１６】
このように、ＷＡＩＴコマンドやポーリング処理を指示するコマンドに対応する処理をレジスタ設定回路で行うようにしたのは、これらのコマンドに対応する処理は、ハード側で行う方がソフトウェアで行うより高速化できるためである。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について図面を用いて説明する。
【００１８】
先ず、本発明の一実施形態が適用された画像形成装置の概略構成を図１に示す。なお、以下では、画像形成装置がプリンタである場合を例にする。
【００１９】
図１は、本発明の実施形態のプリンタのハードウェアブロック図である。
【００２０】
図示するように、プリンタは、プリンタコントローラ１と、印刷エンジン２とを有する。プリンタコントローラ１は、プリンタ全体の動作を制御する。印刷エンジン２は、プリンタコントローラ１からの指示にしたがい紙等の印刷メディアに印刷処理を実行する。
【００２１】
具体的には、プリンタンコントローラ１は、メモリの制御および画像処理を行うメモリ・画像処理制御ＡＳＩＣ（Application Specific Integrated Circuit）１０と、ＣＰＵ（Central Processing Unit）２０と、主記憶装置として機能するＲＡＭ（Random Access Memory）３０と、外部装置やＲＯＭ５０等のデバイスとの間で行われるデータの送受信を制御するＩＯＡＳＩＣ４０と、ＩＯＡＳＩＣ４０に接続されているＲＯＭ(Read Only Memory)５０とを有する。
【００２２】
メモリ・画像処理制御ＡＳＩＣ（以下、「制御ＡＳＩＣという」）１０は、ＣＰＵ２０を介さずに、ＲＡＭ３０に格納されている各種データを他のデバイスにＤＭＡ（Direct Memory Access）転送したり、或いは、ＲＡＭ３０に格納されている画像データを受け付け、画像データを印刷データに変換して印刷エンジン２に出力する。また、制御ＡＳＩＣ１０は、ＣＰＵ２０からの要求を受付け、自身に搭載されている各種のレジスタ（図示しない）、およびＩＯＡＳＩＣ４０に搭載されている各種のレジスタ（図示しない）に対して各種データの設定を行う。
【００２３】
ＣＰＵ２０は、ＲＯＭ５０に格納されている各種プログラムをＲＡＭ３０にロードして実行することにより、プリンタ全体の動作を制御する。例えば、ＣＰＵ２０は、制御ＡＳＩＣ１０にプリンタコントローラ１内のレジスタ（制御ＡＳＩＣ１０およびＩＯＡＳＩＣ４０のレジスタ）の設定を指示する。また、例えば、ＣＰＵ２０は、ＲＡＭ３０上に印刷処理のための画像データを生成する。
【００２４】
ＲＡＭ３０は、一時的にデータを記憶したり、ワークエリアとして機能する。ＲＯＭ５０は、プリンタの機能を実現するための各種プログラムや印刷処理に必要な各種データが格納するための補助記憶装置である。なお、ＲＯＭ５０の所定の領域には、制御ＡＳＩＣ１０およびＩＯＡＳＩＣ４０に搭載されているレジスタの設定に利用するレジスタ設定データ（図２参照）が格納されている。なお、上記では、プログラム等を記憶する補助記憶装置としてＲＯＭ５０を利用しているが特にこれに限定するものではない。また、主記憶装置としてＲＡＭ３０を利用しているがこれは例示に過ぎない。
【００２５】
ＩＯＡＳＩＣ４０は、ホストコンピュータ等の外部装置（図示しない）との間で行われるデータの送受信を制御する。また、ＩＯＡＳＩＣ４０は、メモリ制御ＡＳＩＣ１０を介して、ＲＯＭ３０に格納されている各種データやプログラムをＲＡＭ３０に送信する。
【００２６】
印刷エンジン２は、プリンタコントローラ１の画像処理回路５００が出力する印刷データを受信し、その印刷データに用いて紙等の印刷メディアに印刷処理を実行する。なお、印刷エンジン２の具体的な構成については特に限定しないが、例えば、プリンタがレーザプリンタであれば、レーザ照射機構、感光体ドラム、紙送り機構等により構成される。
【００２７】
続いて、制御ＡＳＩＣ１０の構成について説明する。具体的には、制御ＡＳＩＣ１０は、レジスタ設定回路１００、ＣＰＵ制御部２００、メモリ制御部３００、制御回路４００、および画像処理回路５００を有する。
【００２８】
レジスタ設定回路１００は、ＣＰＵ２０からの要求にしたがいメモリ（ＲＡＭ３０或いはＲＯＭ５０）の所定の領域に格納されているレジスタ設定データ（図２参照）を読み出し、そのレジスタ設定データにしたがいプリンタコントローラ１内にあるレジスタの設定を行う。
【００２９】
具体的には、レジスタ設定データには、設定する対象のレジスタ（メモリ制御ＡＳＩＣ１０に搭載されているレジスタ、およびＩＯＡＳＩＣ４０に搭載されているレジスタ）のアドレスと、設定処理の内容を指示するコマンドとが含まれている。レジスタ設定回路１００は、ＣＰＵ２０からレジスタ設定データが格納されているメモリ（ＲＡＭ３０或いはＲＯＭ５０）のメモリアドレスを取得する。レジスタ設定回路１００は、取得したメモリアドレス先にあるレジスタ設定データをメモリ（ＲＡＭ３０或いはＲＯＭ５０）から読み出す。そして、レジスタ設定回路１００は、読み出したレジスタ設定データに含まれるアドレスにより特定されるレジスタに対し、コマンドにより指示される設定処理を行う。
【００３０】
ＣＰＵ制御部２００は、ＣＰＵ２０との間で行われるデータの送受信を制御する。例えば、ＣＰＵ制御部２００は、ＣＰＵ２０からレジスタ設定の要求を受け付けると、その要求をレジスタ設定回路１００に出力する。
【００３１】
メモリ制御部３００は、ＲＡＭ３０への書き込み読み出し処理を行う。例えば、メモリ制御部３００は、ＲＡＭ３０に記憶されているレジスタ設定データを読み出してレジスタ設定回路１００にＤＭＡ転送する。また、例えば、メモリ制御部３００は、ＲＡＭ３０に記憶されている画像データを読み出し、画像処理回路５００にＤＭＡ転送する。また、メモリ制御部３００は、ＣＰＵ２０からのデータを受け付けて、ＲＡＭ３０の所定の領域に書き込む。
【００３２】
制御回路４００は、ＩＯＡＳＩＣ４０との間で行われるデータの送受信を制御する。画像処理回路５００は、メモリ制御部３００からの画像データを受信し、受信した画像データを印刷データに変換し、その印刷データを印刷エンジン２に出力する。
【００３３】
続いて、レジスタ設定データのデータ構成について、図２を用いて説明する。
【００３４】
図２は、本実施形態のプリンタコントローラがレジスタの設定処理に利用するレジスタ設定データのデータ構成の一例を模擬的に示した図である。図２では、（ａ）図にレジスタ設定データのデータ構成を説明するための図を示し、（ｂ）図にレジスタ設定データの各フィールドにデータが登録された場合を例示している。なお、図示する例では、レジスタ設定データが６４bitのデータとして構成されているが特にこれに限定するものではない。
【００３５】
具体的には、レジスタ設定データは、コマンドを登録するためのフィールド２０００と、設定するレジスタ（以下「設定レジスタ」ということにある）のアドレスを登録するためのフィールド３０００と、コマンドに対応するデータを登録するためのフィールド４０００とを備える。
【００３６】
フィールド２０００には、「２bit」の領域が割り当てられ、「２bit」で示されるコマンドが登録される。以下では、コマンドに、データの書き込みを指示する「ライトコマンド」、ポーリング処理を指示する「ポーリングコマンド」、および所定時間を待つことを指示する「ＷＡＩＴコマンド」の３種類のコマンドが利用される場合を例に説明する。そして、「ライトコマンド」を「０１」で示し、「ポーリングコマンド」を「１０」で示し、「ＷＡＩＴコマンド」を「１１」で示すこととする。すなわち、フィールド２０００には、「０１」、「１０」、および「１１」の中のいずれかがコマンドとして登録される。
【００３７】
フィールド３０００には、「３０bit」の領域が割り当てられている。そして、フィールド３０００には、設定レジスタのアドレスを示した３０bitのデータが登録される。設定レジスタとは、制御ＡＳＩＣ１０に搭載されているレジスタ（例えば、画像処理回路５００に搭載されている各種のレジスタや、制御回路４００に搭載されている各種レジスタ）、およびＩＯＡＳＩＣ４０に搭載されているレジスタである。
【００３８】
フィールド４０００には、「３２bit」の領域が割り当てられている。そして、フィールド４０００には、フィールド２０００に登録されているコマンドに対応するデータが登録される。フィールド２０００に「ライトコマンド（０１）」が登録されている場合、フィールド４０００には「設定するレジスタに書き込むライトデータ」が登録される。フィールド２０００に「ポーリングコマンド（１０）」が登録されている場合、フィールド４０００には「真偽の判別データ（同じであれば真とする）」が登録される。フィールド２０００に「ＷＡＩＴコマンド（１１）」コマンドが登録されている場合、フィールド４０００には「待ち時間を示すデータ」が登録される。
【００３９】
なお、レジスタ設定データは、設定対象のレジスタ毎に設けておく必要がある。また、レジスタ設定データは、１つのレジスタであっても、設定する処理毎（レジスタに初期設定値を設定する処理、レジスタの初期設定値を変更する処理等）に設けておく必要がある。本実施形態では、予め、ＲＯＭ５０の所定の領域には、図２（ｂ）に示すように、複数のレジスタ設定データが格納されているものとする。
【００４０】
続いて、レジスタ設定回路１００の具体的な構成について図３を用いて説明する。
【００４１】
図３は、本実施形態のレジスタ設定回路のブロック図である。
【００４２】
図示するように、レジスタ設定回路１００は、ＤＭＡ開始メモリアドレスレジスタ１１０と、ＤＭＡ終了メモリアドレスレジスタ１２０と、コマンド認識部１３０と、設定レジスタアドレスバッファ１４０と、設定レジスタのデータバッファ１５０と、フラグ解析/カウンタ回路１６０と、アドレスバッファ１７０と、制御部１８０とを有する。なお、図示している設定レジスタ１０００とは、レジスタ設定回路１００が設定する対象のレジスタを示している。
【００４３】
ＤＭＡ開始メモリアドレスレジスタ１１０は、レジスタ設定データの読み出し開始位置を指定するメモリアドレス（ＲＡＭ３０またはＲＯＭ５０上の領域を指定するアドレス）を格納するためのレジスタである。ＤＭＡ終了メモリアドレスレジスタ１２０は、レジスタ設定データの読み出し終了位置を指定するメモリアドレス（ＲＡＭ３０またはＲＯＭ５０の領域を指定するアドレス）を格納するためのレジスタである。
【００４４】
コマンド認識部１３０は、メモリ（ＲＡＭ３０またはＲＯＭ５０）から取得したレジスタ設定データの中のコマンドを受け取り、そのコマンドの内容を解釈し、そのコマンドにより指示される処理を行う。
【００４５】
設定レジスタアドレスバッファ１４０は、取得したレジスタ設定データに含まれる「設定アドレス（図２のフィールド３０００のデータ）」を格納するためのバッファである。データバッファ１５０は、取得したレジスタ設定データに含まれる「コマンドに対応するデータ（図２のフィールド４０００のデータ）」を格納するためのバッファである。
【００４６】
フラグ解析/カウンタ回路１７０は、設定レジスタ１０００から読み出してきたデータを受け取り、後述する真偽判定処理を行う。また、フラグ解析/カウンタ回路１７０は、タイマ（図示しない）を保持していて、コマンド認識部１３０が取得したコマンドが「ＷＡＩＴコマンド」の場合に待ち時間をカウントする処理を行う。
【００４７】
アドレスバッファ１７０は、レジスタ設定回路１００が取得したレジスタ設定データが格納されていたメモリアドレスを登録しておくためのバッファである。
【００４８】
制御部１８０は、ＤＭＡ開始メモリアドレスレジスタ１１０にメモリアドレスが書き込まれると、メモリ（ＲＡＭ３０或いはＲＯＭ５０）からレジスタ設定データを取得する。また、制御部１８０は、レジスタ設定処理が終了した場合、ＣＰＵ２０に割り込み信号を送信する。
【００４９】
続いて、本実施形態のプリンタコントローラ１が行うレジスタ設定処理について詳細に説明する。本実施形態のレジスタ設定処理は、ＣＰＵ２０により行われる処理（ソフト処理）と、レジスタ設定回路１００により行われる処理（ハード処理）とに分類される。ＣＰＵ２０により行われるソフト処理とは、ＣＰＵ２０がＲＯＭ５０上のプログラムをＲＡＭ３０にロードして実行することにより行われるものである。具体的には、ソフト処理では、レジスタ設定回路１００に、レジスタ設定処理に必要なデータを書き込む処理が行われる。レジスタ設定回路１００により行われるハード処理とは、プリンタンコントローラ１の各レジスタに各種データを設定する処理である。なお、以下の説明は、ＲＡＭ３０にレジスタ設定データを格納しておいて、レジスタ設定回路１００にＲＡＭ３０に格納されているレジスタ設定データを読み出させる場合を例にするが特にこれに限定するものではない。レジスタ設定回路１０がＲＯＭ５０に格納されているレジスタ設定データを直接読み出すようにしてもよい。
【００５０】
最初にＣＰＵ２０により行われるソフト処理について説明する。
【００５１】
図４は、本実施形態のプリンタコントローラ１のレジスタ設定のソフト処理のフローを説明するための図である。
【００５２】
先ず、ＣＰＵ２０は、メモリにレジスタ設定データを書き込む処理を行う（Ｓ１０）。具体的には、ＣＰＵ２０は、ＲＯＭ５０上の所定領域に格納されているレジスタ設定データを取得する（制御ＡＳＩＣ１０を介して取得する）。ＣＰＵ２０は、取得したレジスタ設定データをＲＡＭ３０の所定の領域に格納する（制御ＡＳＩＣ１０を介して格納する）。ＲＡＭ３０の所定領域に、図２（ｂ）に例示するようなレジスタ設定データが書き込まれる。
【００５３】
次に、ＣＰＵ２０は、制御ＡＳＩＣ１０のレジスタ設定回路１００に、「ＤＭＡ開始のメモリアドレス」と、「ＤＭＡ終了のメモリアドレス」とを設定する（Ｓ２０）。具体的には、ＣＰＵ２０は、レジスタ設定回路１００に実行させるレジスタ設定データの読み出し開始位置を示すメモリアドレス（ここではＲＡＭ３０上のメモリアドレス）を特定し、そのメモリアドレスをＤＭＡ開始メモリアドレスレジスタ１１０（図３参照）に書き込む。また、ＣＰＵ２０は、レジスタ設定回路１００に実行させるレジスタ設定データの読み出し終了位置を示すメモリアドレス（ここではＲＡＭ３０上のメモリアドレス）を特定し、そのメモリアドレスをＤＭＡ終了メモリアドレスレジスタ１２０（図３参照）に書き込む。
【００５４】
その後、ＣＰＵ２０は、レジスタ設定回路１００からの割り込み信号を受け付けると設定処理を終了する（Ｓ３０）。
【００５５】
続いて、レジスタ設定回路１００により行われるレジスタ処理を説明する。
【００５６】
図５は、本実施形態のプリンタコントローラ１のレジスタ設定回路が行うレジスタ設定処理のフローを説明するための図である。なお、以下の説明では、ＤＭＡ開始メモリアドレスレジスタ１１０およびＤＭＡ終了メモリアドレスレジスタ１２０には、ＣＰＵ２０により、メモリアドレスが格納されているものとする。
【００５７】
先ず、レジスタ設定回路１００は、ＤＭＡ開始メモリアドレスレジスタ１１０がＣＰＵ２０からのアクセスを受けると(Ｓ１００)、以下の処理ステップを開始する。具体的には、制御部１８０は、ＣＰＵ２０がＤＭＡ開始メモリアドレスレジスタ１１０にメモリアドレスを格納したことを検知するとＳ１０１の処理に進む。
【００５８】
Ｓ１０１では、レジスタ設定回路１００の制御部１８０が、ＤＭＡ開始メモリアドレスレジスタ１１０に格納されているメモリアドレス（ＤＭＡ開始メモリアドレス）をアドレスバッファ１７０にロードする。
【００５９】
次に、レジスタ設定回路１００の制御部１８０は、メモリ制御部３００を介して、アドレスバッファ１７０に登録されているメモリアドレスが示すＲＡＭ３０上の領域からレジスタ設定データをＤＭＡで読み出す（Ｓ１０２）。なお、読み出されたレジスタ設定データの中の「コマンド（図２に示すレジスタ設定データのフィールド２０００のデータ）」は、コマンド認識部１３０が取得する。読み出されたレジスタ設定データの中の「設定アドレス（図２に示すレジスタ設定データのフィールド３０００のデータ）」は、設定レジスタアドレスバッファ１４０に格納される。また、読み出されたレジスタ設定データの中の「コマンドに対応するデータ（図２に示すレジスタ設定データのフィールド４０００のデータ）」は、設定レジスタのデータバッファ１５０に格納される。
【００６０】
次に、コマンド認識部１３０によりコマンドを判定する処理が行われる（Ｓ１０３）。具体的には、コマンド認識部１３０は、取得したコマンドが「ポーリングコマンド」であると判定した場合（ここでは、「１０」を示すデータである場合）、Ｓ１０４の処理に遷移する。コマンド認識部１３０は、取得したコマンドが「ライトコマンド」であると判定した場合（ここでは、「０１」を示すデータである場合）、Ｓ１０５の処理に遷移する。コマンド認識部１３０は、取得したコマンドが「ＷＡＩＴコマンド」であると判定した場合（ここでは、「１１」を示すデータである場合）、Ｓ１０６の処理に遷移する。
【００６１】
続いて、Ｓ１０３の後で行われるＳ１０４〜Ｓ１０６の処理について、Ｓ１０４の処理から順番に説明していく。なお、本ステップ（Ｓ１０４）に進む場合に、データバッファ１５０に格納されているデータは、「真偽の判別データ」である。
【００６２】
Ｓ１０４では、設定レジスタアドレスバッファ１４０に格納されている設定アドレスにより特定される設定レジスタ１０００からデータを読み出す。具体的には、コマンド認識部１３０は、設定レジスタ１０００にリード信号を送信して、設定レジスタ１０００に登録されているデータを読み出す。なお、設定レジスタ１０００から読み出されたデータは、フラグ解析/カウンタ回路１６０に入力される。
【００６３】
次に、フラグ解析/カウンタ回路１６０は、入力されたデータと、データバッファ１５０に格納されている「真偽の判別データ」とを比較する。フラグ解析/カウンタ回路１６０は、比較の結果、両者が同じデータの場合、その旨を制御部１８０に通知し、Ｓ１０８の処理に進み、同じデータではない場合にＳ１０４の処理に戻る。Ｓ１０４〜Ｓ１０５の処理により、設定レジスタ１０００の値が所定値（真偽の判別データ）になることを条件にして、次のレジスタの設定処理に進めるようになる。設定レジスタ１０００の値が所定値になる場合とは、例えば、レジスタ設定回路１００以外のデバイスにより、設定レジスタ１０００の値が書き換えられる場合等をいう。
【００６４】
次にＳ１０３においてコマンドが「ライトコマンド」であると判定された場合に進むＳ１０５の処理について説明する。なお、本ステップに進む場合に、データバッファ１５０に格納されているデータは、設定レジスタ１０００に書き込むためのデータ（ライトデータ）」である。
【００６５】
Ｓ１０５では、コマンド認識部１３０は、設定レジスタアドレスバッファに格納されている設定アドレスにより特定される設定レジスタ１０００に、データバッファ１５０に格納されているライトデータを書き込む処理を行う。具体的には、コマンド認識部１３０は、設定レジスタ１０００にライト信号を送信する共に、データバッファ１５０に格納されているライトデータを送信する。その結果、設定レジスタ１０００には、データバッファ１５０に格納されているデータが書き込まれる。その後、コマンド認識部１３０は、Ｓ１０５の処理終了を制御部１８０に通知して、Ｓ１０８の処理に移る。
【００６６】
次に、Ｓ１０３においてコマンドが「ＷＡＩＴコマンド」であると判定された場合に進むＳ１０６の処理について説明する。なお、本ステップに進む場合に、データバッファ１５０に格納されているデータは、「待ち時間」を示すデータである。
【００６７】
Ｓ１０６では、フラグ解析/カウンタ回路１６０がデータバッファ１５０に格納されているデータが示す「待ち時間」が経過するまで待機して、Ｓ１０８の処理に進む。具体的には、フラグ解析/カウンタ回路１６０は、タイマにより、「待ち時間」をカウントする。フラグ解析/カウンタ回路１６０は、「待ち時間」が経過すると、その旨を制御部１８０に通知してＳ１０８の処理に移る。
【００６８】
Ｓ１０８では、制御部１８０がアドレスバッファ１７０に格納されているメモリアドレスの値を次のアドレスの値に更新する。
【００６９】
続いて、制御部１８０は、アドレスバッファ１７０に格納されているメモリアドレスと、ＤＭＡ終了メモリアドレスレジスタ１２０に格納されているメモリアドレスとが同じか否かを判定する。制御部１８０は、アドレスバッファ１７０に格納されているメモリアドレスと、ＤＭＡ終了メモリアドレスレジスタ１２０に格納されているメモリアドレスとが同じと判定した場合、Ｓ１１０に処理に進み、同じではないと判定した場合にＳ１０２の処理に戻る。
【００７０】
Ｓ１１０では、制御部１８０がＣＰＵ２０に割り込み信号を送信して処理を終了する。
【００７１】
このように、本実施形態では、プリンタコントローラ１にレジスタを設定する専用回路を設け、レジスタ設定をハードウェア処理で行うようにしている。なお、本実施形態のレジスタ設定回路１００は、単にメモリ(例えばＲＡＭ３０)にあるデータをレジスタに書き込むだけでなく、所定のコマンドを解釈して、コマンドにしたがいレジスタの設定を行う。
【００７２】
このようにレジスタ設定処理をハードウェアにより行うようにしたのは、レジスタ設定処理が図５に例示したように比較的単純なものが多いことと、その処理数（設定が必要なレジスタの数、設定処理の処理ステップ）が多いことを考慮したためである。そして、レジスタの設定をハードウェアで行うことで、ソフトウェアでの処理に較べて、レジスタ設定処理を高速化することができる。さらに、本実施形態によれば、ＣＰＵを面倒なレジスタ設定処理から開放させることができ、ＣＰＵの処理負荷を軽減することができる。
【００７３】
したがって、本実施形態のプリンタコントローラによれば、従来、ＣＰＵが所定のプログラムを実行して、ソフト処理により行っていた各種レジスタの設定処理を効率的に行い、設定処理時間を短縮することができる。
【００７４】
例えば、本実施形態によれば、プリンタに電源が投入された際のプリンタコントローラの初期設定時間を短縮することができるようになる。すなわち、本実施形態によれば、プリンタの起動処理を短縮させることができる。また、本実施形態によれば、紙詰まり、省電力復帰等の際のレジスタ設定を短縮することができる。また、例えば、本実施形態では、ＰＬＬ初期化等の規定時間以上待ってから設定する必要がある処理についてもハード処理で行うため、ソフトウェアでの時間待ちが必要なくなる。
【００７５】
また、本実施形態をレーザプリンタに適用すると特に有効である。具体的には、レ−ザープリンタのプリンタコントローラに搭載されているＡＳＩＣ（特に画像処理回路）は、設定するレジスタの数が多い。そのため、本実施形態を適用することによる効果、すなわち、ＣＰＵの負荷軽減およびレジスタ設定時間の短縮効果は、より大きいものとなる。
【００７６】
また、４サイクルカラープリンタ（１色ごとにレザーを出力するプリンタ）では、印刷処理の高速化に伴い、次の色を出力するまでの時間が非常に短くなっている。そのため、印刷処理の際のスクリーンレジスタの書き換え処理時間が印刷処理のボトルネックとなっている。そして、４サイクルカラープリンタに本実施形態のプリンタコントローラを用いるようにすれば、スクリーンレジスタの書き換えを高速に行えるため、印刷処理の高速化に対応することができるようになる。
【００７７】
なお、本発明は、以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、上記実施形態の図４、５のフローでは、レジスタ設定回路１００は、レジスタ設定データをＲＡＭ３０から読み出し、その読み出したレジスタ設定データを利用するようにしたが、上述したように、レジスタ設定回路１００が、ＲＯＭ５０に格納されているレジスタ設定データを直接読み出すようにしてもよい。この場合には、図４に示したＳ１０の処理は不要となる。なお、この場合、図４のＳ２０において、ＣＰＵ２０は、ＲＯＭ５０上のメモリアドレスをレジスタ設定回路１００に設定する。
【００７８】
また、上記実施形態では、レジスタ設定回路１００の設定対象のレジスタが、制御ＡＳＩＣ１０およびＩＯＡＳＩＣ４０に搭載されている各種のレジスタである場合を例示したが特にこれに限定されるものではない。プリンタコントローラ１に搭載されている他のＩＣがあれば、そのＩＣ上に搭載されているレジスタの値を設定するようにしてもよい。
【００７９】
また、画像形成装置以外の情報処理装置に、本実施形態を適用するようにしてもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施形態の画像形成装置のハードウェアブロック図である。
【図２】本実施形態のレジスタ設定データのデータ構成の一例を示した図である。
【図３】本実施形態のレジスタ設定回路のブロック図である。
【図４】本実施形態のレジスタ設定のソフト処理のフロー図である。
【図５】本実施形態のレジスタ設定回路が行うレジスタ設定処理のフロー図である。
【符号の説明】
【００８１】
１…プリンタコントローラ、２…印刷エンジン、１０…制御ＡＳＩＣ、２０…ＣＰＵ、３０…ＲＡＭ、４０…ＩＯＡＳＩＣ、５０…ＲＯＭ、１００…レジスタ設定回路、１１０…ＤＭＡ開始メモリアドレスレジスタ、１２０…ＤＭＡ終了メモリアドレスレジスタ、１３０…コマンド認識部、１４０…設定レジスタアドレスバッファ、１５０…データバッファ、１６０…フラグ/解析カウンタ回路、１７０…アドレスバッファ、１８０…制御部
【図１】
2007185911.tif 000003
【図２】
2007185911.tif 000004
【図３】
2007185911.tif 000005
【図４】
2007185911.tif 000006
【図５】
2007185911.tif 000007