以下、添付した図面を参照して本発明の実施形態を詳細に説明する。
図1は以下に説明する実施形態において共通に用いられるインクジェットプリンタの外観斜視図であり、インクジェットプリンタは、カラープリント、白黒モノカラープリントの両方が可能な構成を示している。図1に示すように、キャリッジ101上にはブラックは320個、カラーは各色毎に128個ずつのノズルを有したマルチノズルの記録ヘッド102とカートリッジガイド103とが搭載されており、記録ヘッド102はブラック(K)のインク、或いは、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)のインクをそれぞれ吐出する。プリンタ動作時、記録ヘッド102にはブラックインクを収容したインクカートリッジ110と他の3色のインクを収容したインクカートリッジ111が装着されている。
そして、それぞれのインクカートリッジからシアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)のインクが供給される。また、多数の導線を配列したフレキシブルケーブル(不図示)を介して記録ヘッドにおける各ノズルの駆動信号が供給される。
図7は本発明の実施形態において、インクジェットプリンタに適用が可能なカラープリント用の記録ヘッド102を記録媒体106側から示した外観斜視図である。各色用のノズル列(イエロー(Y)701、マゼンタ(M)702、シアン(C)703、ブラック(K)704)は走査方向(X方向)に対して略直交する方向に配列する。
一方、キャリッジ101は2本のガイドレール104、105上に搭載されており、キャリッジ101に連結した無端ベルト109をキャリアモータ(後述)で駆動することによりキャリッジ101をX方向(以下、このX方向を「主走査方向」という)に往復走査させる。また、搬送ローラ108は搬送モータ(後述)によって駆動され、記録媒体106をY方向(以下、このY方向を「副走査方向」という)に搬送する。
なお、ガイドレールと平行に不図示のエンコーダスリットが配置されており、キャリッジ101に搭載された不図示のセンサが、エンコーダスリット数を読み取ることで、走査方向の位置を捕捉し、この位置情報に基づきキャリッジの位置を1画素単位で制御する。
図2はインクジェットプリンタの制御回路を示すブロック図である。図2において、170は記録信号を入力するインタフェースであり、例えば、ホストコンピュータなどの外部装置からデータを入力する。171はMPUであり、172はMPU171が実行する制御プログラム(必要によっては文字フォントを含む)を格納するROM、173は各種データ(上記記録信号やヘッドに供給される記録データ等)を一時的に保存しておくSRAMである。
174は記録ヘッド102に対する記録制御を行うASIC(いわゆるゲートアレー)であり、インターフェース170、MPU171、SRAM173間のデータ転送制御も行う。179は記録ヘッド102を主走査方向に移動させるためのキャリアモータであり、178は記録媒体を副走査方向に搬送するための搬送モータである。175は記録ヘッドを駆動するヘッドドライバ、176、177はそれぞれ搬送モータ178、キャリアモータ179を駆動するためのモータドライバである。
上記の制御回路ブロック図の動作の概要を説明すると、インターフェース170に記録信号が入るとASIC174とMPU171との間で記録信号がプリント用の記録データに変換される。そして、モータドライバ176、177が駆動されると共に、ヘッドドライバ175に送られた記録データに従って記録ヘッド102が駆動され、記録動作が実行される。
図5は、本発明にかかる記録装置の実施形態において、その記録装置の記録制御部を示すブロック図である。同図に於いて、参照番号1はインターフェース信号線S1を介してホストコンピュータ(不図示)から転送されてくるデータを受信し、その受信したデータの中から、記録装置の動作に必要なデータ及び画像データを抽出して一旦蓄えるインターフェース制御部(コントローラ)であり、インタフェースコントローラ1で抽出されたデータは信号線S2を介して受信バッファ2に格納される。
受信バッファ2はSRAMもしくはDRAM等の記憶装置で構成され、この受信バッファに蓄えられるデータは図10(a)、(b)で示すような構造のものとなる。
図10(a)において受信バッファのデータ構造が示されるように、左から順に「コマンド」(1001),「データ長」(1002),「設定データ」(1003)のデータが格納され、これに続いて「コマンド」(1004),「データ長」(1005),「設定データ」(1006)のデータが格納されている。これは時系列順に転送されてきたデータが、受信バッファの連続したアドレスに格納されることを示し、ここで示す設定データ1006は、例えば給紙の実行や紙送り量の設定、使用する記録ヘッド数等を示す情報であり、この設定データで定められた情報が全て揃って初めて記録装置で記録が可能となる。この後に、記録の対象となる画像データ(1009、1012)が受信バッファ2に格納される。
この画像データ(1009、1012)は、記録ヘッドが記録媒体上を1度の走査で記録する際に必要とされるデータ量を、それより少ないデータ量としてブロック単位に分割したデータであり、そのブロック単位で画像データを区切り、順次第1ブロックデータ(1009)、第2ブロックデータ(1012)、・・・として格納される。
図10(b)はブロック単位に分割された画像データのデータ構造を詳細に示す図であり、同図で示すように、複数の色のデータ(1013〜1014)が各々圧縮されたデータとして順次格納される。この色データは「色変えコード」(1016、1017、1018)で区切られる。
例えば、シアン、イエロー、マゼンタ、それと黒の4色の色データを想定した場合、各色毎に縦128ノズルを1列としたノズル列が走査方向に配列する記録ヘッドを用いると、圧縮された第1色から第4色のデータが一つのデータブロック内に格納される。このノズル列の各ノズルは、被記録媒体の搬送方向に並んでいる。
また、ノズル列の別の形態として、シアン、イエロー、マゼンタ、それと黒の4色で、各色毎に縦64ノズルを1列としたノズル列が走査方向に2列づつ配列する記録ヘッドを用いた場合には、ノズル2列が4色分、すなわち、圧縮された第1色から第8色の色データが一つのブロックデータ内に画像データとして格納される。例えば、第1色と第2色がシアンのデータ、第3色と第4色はマゼンタのデータ、第5色と第6色はイエローのデータ、第7色と第8色は黒のデータとなる。
図11は画像データを保持する記録バッファの構造を説明する図である。例えば1回の走査で最大約8インチの長さを記録する場合、1つのブロックデータが走査方向に約1インチの記録ができるサイズとすると、トータル8ブロックの画像データを記録処理すれば、1走査分の画像が完成することになる。
第1ブロックから第8ブロックは記録ヘッドの走査方向に配置され、各ブロックデータには、第1色データから第8色データが格納される。各ブロック内に格納される各色データの長さは記録ヘッドのノズル数に対応するものである。
なお、この各色データについて、各ブロックの縦の長さ(ブロックの高さ)はノズル数に対応する。
説明を図5に戻し、各制御ブロックの説明を続ける。受信バッファ2に格納されるデータのうち、記録装置の制御用の設定値である「コマンド」,「データ長」,「設定データ」は、インタフェースコントローラ1から信号線S902を介してCPU9により読み出され、図中にある各部制御回路(7,8)に設定される(S903、S907)。CPU9は読み出したデータ(図10(a)の1001〜1008に相当するデータ)を解釈し、その結果に従って記録装置の全体的な記録制御を統括する。一方、CPU9は画像データの処理に関してはデータ展開ブロック3を起動して処理を実行させるものとする。
データ展開ブロック3は受信バッファ2から、図10(b)で示されるように「圧縮TAG」と「データ」及び「色変えコード」の3種類のデータを読み出し、これらのデータに基づきデータの展開制御を実行する。本実施形態ではデータの圧縮/解凍方法としてPackBits圧縮を用いたので、圧縮TAGが8ビットで00hから7Fhまで値の場合、非連続なデータが1から128個データ領域に有るとして処理し、圧縮TAGが8ビットでFFhから81hまで値の場合、次の1バイトデータを連続した2から128個のデータに解凍する処理を行う。圧縮TAGの所で、80hを読み出した場合は色変えコードとして処理する。解凍したデータを信号線S4に乗せ、記録バッファ4に書き込む。
記録バッファ4には解凍された画像データが図11に示すデータ構造で格納される。記録バッファ4の先頭アドレスには第1ブロックの第1色データの先頭のデータが書き込まれ、その後に続くデータは、アドレスを1ずつ加算しながら順次書き込まれる。記録バッファのアドレスに一つの色データとして格納できる領域は、最初にCPU9が読み込んだ設定データで決定され、その値以上のデータは書き込めないので画像データを圧縮する際には、その設定データに従ったデータサイズの制限が加えられることになる。色変えコードを検出した後のデータは第2色データの先頭番地から順次書き込まれる。このアドレスデータの制御は後に説明する記録バッファリング制御構造回路8が実行することになる。
この書き込みを第1ブロックの第1色データから第8色データまで繰り返し、第8色データの書き込みを終えて色変えコードを検知すると、第1ブロックのデータが全て書き込み終えたことになる。データ展開ブロック3はデータの展開動作を終了し、CPU9に対しブロック1個分のデータの展開が完成したことを割込み(INT1)で伝え、CPU9からの次のデータ展開の起動を待つ。この割り込み(INT1)は図6の最終ブロックデータに対する割り込みに該当するか否かの判断に使用される。
記録バッファ4上に複数ブロックの画像データが揃った段階で、CPU9は記録動作を開始すべくキャリアモータ179を動作させ、記録ヘッド6が走査しながら、画像データをキャリッジエンコーダ(CRエンコーダ)10に同期して転送し、記録することで紙面上(被記録媒体に)に画像を完成させることができる。記録ヘッド6が主走査方向に走査した後、搬送手段が被記録媒体を副走査方向に搬送する。こうして、記録ヘッドの走査と、被記録媒体の搬送を繰り返し行って、1ページ分の画像の記録を行う。
記録データ生成ブロック5は、記録バッファ4上に有る画像データの各ブロック構造を、CPU9から指定された値に従って、CRエンコーダ10に同期したタイミングで信号線S5を介して読み出し、記録ヘッド6が記録できるデータ構造に変換しながら信号線S6に出力していく。この記録データ生成ブロック5は後で述べる記録バッファ内のブロック幅(ブロックの長さを示す。)の情報、ブロックの各色の高さ(色データの「ラスター数」という。)についての情報を保持する。
<受信バッファの書き込み、読み込み制御>
受信バッファ2には、インターフェースコントローラ1がデータを書き込み、データ展開ブロック3が画像データのみを読み出すが、その書き込みアドレスと読み出しアドレスを制御しているのが受信バッファリング構造制御回路7である。受信バッファリング構造制御回路7は受信バッファ2の先頭アドレスと最終アドレス、それと書き込みアドレスと読み出しアドレスの管理を行っている。
受信バッファリング構造制御回路7はインターフェースコントローラ1から受信する書き込み要求信号(S701)を受け付け毎に1アドレスずつ加算し、これを書き込みアドレスの情報として受信バッファ2に出力する(信号線S702)。そして、受信バッファリング構造制御回路7は受信バッファ2の最終アドレスに達した場合に書き込みアドレスを受信バッファ2の先頭のアドレスに戻す制御を行う。
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、受信バッファ2がデータでいっぱいになり、次のデータを書き込めない旨をインターフェースコントローラ1に信号線S703を介して通信する。
このとき同時にCPU9に対しても信号線S904の割込み信号により、受信バッファ2はデータの書き込みができない状態であることを知らせる。受信バッファ2の構造はCPU9が信号線S903のバスを用いて内部のレジスタに書き込むことで設定することができる。
読み出しアドレスは、CPU9が受信バッファリング構造制御回路7の中に有るデータリード用レジスタを介して直接に受信バッファ2の中のデータを読み出す場合と、データ展開ブロック3がデータ読み出し要求信号線S705を介して要求した場合に、読み出しアドレスとして信号線S706を介して1アドレスづつ加算されて受信バッファ2に出力される。
受信バッファリング構造制御回路7は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを受信バッファ2の先頭アドレスに戻す制御を行う。また、読み出しアドレスが書き込みアドレスに到達(一致)した場合、受信バッファ上からデータがなくなったので、次のデータを読み出せない旨をデータ展開ブロックに信号線S704を介して通信する。このとき同時にCPU9に対しても信号線S904の割込み信号線で、受信バッファ2上には、読み出すデータが無い旨を知らせる。
以上が受信バッファ2に対するデータの書き込み、読み取り制御の処理内容である。次に、この受信バッファ2から読み出され、展開処理されたデータを記録バッファに書き込みし、あるいはその記録バッファからデータを読み取るための処理内容を説明する。
<記録バッファの書き込み、読み取り制御>
記録バッファ4に対して、データ展開ブロック3が画像データを書き込み、記録データ生成ブロック5がその書き込まれた画像データを読み出すが、その際、書き込みアドレスと読み出しアドレスを制御しているのが記録バッファリング構造制御回路8である。
記録バッファリング構造制御回路8は記録バッファの先頭アドレスと、最終アドレス、それと書き込みアドレスと、読み出しアドレスの管理を行っている。
記録バッファリング構造制御回路8はデータ展開ブロック3から受信する書き込み要求信号(S801)を受け付け毎に1アドレスずつ加算し、これを書き込みアドレスの情報として記録バッファ4に出力する(信号線S802)。そして、記録バッファリング構造制御回路8は記録バッファ4の最終アドレスに達した場合に書き込みアドレスを記録バッファ4の先頭のアドレスに戻す制御を行う。
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、記録バッファ4が画像データでいっぱいになり、次の画像データを書き込めない旨をデータ展開ブロック3に信号線S803を介して通信する。
また、データ展開ブロック3が色変えコードを受信バッファ2から読み込んだ場合、データ展開ブロック3は信号線S804を介してその旨を通信し、記録バッファリング構造制御回路8は次の色のデータを格納する先頭番地を信号線S802から出力するように準備する。記録バッファ4の構造はCPU9が信号線S907のバスを用いて内部のレジスタに書き込むことで設定することができる。
読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、読み出しアドレスとして信号線S806を介して1アドレスづつ加算されて記録バッファ4に出力される。
記録バッファリング構造制御回路8は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを記録バッファ4の先頭アドレスに戻す制御を行う。
記録データ生成ブロック5は現在読み出している画像データブロックのデータ構造をCPU9から信号線S908のバスを介して、記録データ生成ブロック5内部にあるレジスタに設定する。設定された画像データブロック構造内にある画像データを全て読み出すと終了信号S909をCPU9に対し割り込み信号として通信する。この際、記録バッファ4上に次の画像データブロックがすでに展開されているならば、その画像データブロック構造をレジスタに書き込む。
記録バッファ4は1画像データブロック単位でデータの書き込みを制御しており、書き込まれていない画像データブロックに対し記録データ生成ブロックを起動しないので、記録バッファの読み出しアドレスが書き込みアドレスを越えることは起きない。11は、バッファ構造情報メモリである。これは、記録バッファの制御用の作業用メモリ(ワークRAM)で、後で述べる記録バッファ構造についての情報を一時的に格納する領域である。
以上が記録制御部における記録データの流れの概要である。
<記録バッファリング構造制御回路の説明>
記録バッファリング構造制御回路の説明を図8及び図9を用いて説明する。記録バッファリング構造制御回路の処理において、図8は書き込みアドレス制御を中心に説明する図であり、図9は記録バッファリング構造制御回路8の読み出しアドレス制御を中心に説明する図である。
記録バッファリング構造制御回路8は読み出し制御部8Aと書き込みアドレス制御部8Bで構成されている。また、記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスをtop_adrで示し、最終アドレスをbottom_adrで表示する。この先頭アドレスは書き込みアドレス制御部8B内のレジスタ803に格納され、最終アドレスは書き込みアドレス制御部8B内のレジスタ804に格納される。
記録バッファ4に示される「RP」はリードポインタを示し、「WP」はライトポインタを示す。記録バッファの中のRPとWPの間のハッチング部分は記録データが格納されていることを表している。また、記録バッファ4の白色部分は記録データが格納されていないことを表す。
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタである。805から812は第1色から第8色について、各色の情報を格納するレジスタである。ここで、レジスタ805には第1色のデータのバッファの高さ情報と、第1色データの有り無しを示す情報が格納され、同様にレジスタ806〜812についても第2色〜第8色について同様の情報が設定される。
813はブロックの幅情報を設定するレジスタであり、この幅情報は第1色〜第8色までブロック単位で、共通して使用される値である。
尚、上述のブロックデータの高さ情報及び幅情報は、図10(a)で説明した設定データに含まれる情報である。
815は次のブロックデータのアドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうちのいずれかの値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。
816はデータの書き込みアドレスを格納する書き込みアドレスレジスタである。814はアドレス制御レジスタで、書き込みアドレスが読み出しアドレスを追い越さないように(両アドレスが重複したアドレスを指定しないように)書き込み処理、読み出し処理の管理をする。
<読み出しアドレス制御部の説明>
図9において左側は記録バッファリング構造制御回路8の読み出しアドレス制御部8Aを示し、同図の右側は記録バッファ4を示す。
記録バッファ4のバッファ領域は、図8と同様に、記録バッファの先頭のアドレスであるtop_adrと、最終アドレスはbottom_adrとで表される。この先頭アドレス(top_adr)はレジスタ803に格納され、最終アドレス(bottom_adr)はレジスタ804に格納される。記録バッファに示される「RP」は図8と同様にリードポインタであり、「WP」はライトポインタである。記録バッファ4におけるRPとWPの間のハッチング部分は記録データが格納されていることを表し、記録バッファの白色の部分は記録データが格納されていないことを表す。
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタであり、破線の枠で囲った900は第1レジスタ群、実線の枠で囲った901は第2レジスタ群である。
第1ブロックから第8ブロックの画像データを記録する場合、例えば、走査の開始時において、第1レジスタ群には第1ブロックについての情報が格納されている。また、第2レジスタ群には、第2ブロックについての情報が格納される。第1ブロックの記録が終了すると、第1レジスタ群900には第2レジスタ群901の情報がコピーされ、第1レジスタ群900には第2ブロックの情報が格納される。そして第2レジスタ群901には、第3ブロックの情報が格納される。以下、最後の第8ブロックのデータが格納されるまで順に行われる。そして、次の走査開始時には、再び、第1レジスタ群には第1ブロックの情報が格納され、第2レジスタ群には第2ブロックの情報が格納される。
第1レジスタ群内にあるレジスタ(1st_hight 1 color bit)819は、第1色についての高さ情報と色データの有り無し情報を設定するレジスタである。各レジスタ822、824、826、828、830、832、834は第2色〜第8色について高さ情報と色データの有り無し情報を設定するレジスタである。
820は各ブロックデータの幅情報を格納するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使用される値である。
レジスタ(1st_color_adr) 818は第1色の読み出しアドレスを格納するレジスタである。第1色のデータが格納されている記録バッファ819からデータが読み出されるとアドレスが更新される。レジスタ821、823、825、827、829、831、833はそれぞれ第2色〜第8色の読み出しアドレスを格納するレジスタであり、第2色〜第8色の色データも第1色の色データと同様に順に1カラム分のデータが読み出される。
記録バッファ4に格納されるデータは複数の色データを含むため、例えば、第1、第2色、・・・の色データが混在した場合、各色単位の色データを格納するためのアドレスは、連続していないものとなる。そのため、読み出しアドレスのレジスタが色データ毎に1つであれば、例えば第1色データのアドレスの次に、第2色データを読み出す際、アドレス計算をする必要があるが、記録バッファ4に各色ごとに読み出しアドレスを格納するレジスタを用意することで、カラム単位での読み出しを行う際のアドレス計算を省くことができる。
817はアドレス制御レジスタである。読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、アドレス制御レジスタ817は読み出しアドレスとして信号線S806を介して1アドレスづつ加算して記録バッファ4に出力する。
835は次のブロックのアドレスを格納するレジスタである。現在読み出されているブロックが第1ブロックであれば、このレジスタには第2ブロックの先頭のアドレスが格納される。このレジスタの値は、現在読み出されているブロックデータの読み出しが終了すると、レジスタ802にコピーされる。これにより、次のブロックデータの読み出しがスムーズにできる。
レジスタ836は第1色から第8色のうち、読み出す順序を特定するための情報を格納するテーブルである。このテーブルに設定された値によって記録バッファからデータを読み出す順序を自由に設定することができる。例えば、図4の場合には、第1色→第2色→第3色→第4色と読み出す。また、8色ある場合には、第1色→第2色→・・→第8色の順に読み出すことができる。また、値を変えて、第1色→第2色→第5色→第6色→第7色→第8色のように第3色、第4色のデータの読み出しをスキップすることもできる。これによって、格納されていない色の画像データについては、正確に読みとばすことができる。
第2レジスタ群901は次のブロックデータに関する設定データを格納するバッファの集まりである。第1レジスタ群の各レジスタが読み出されたら、第2レジスタ群の各レジスタに設定されている値が、第1レジスタ群の対応するレジスタに設定される。例えば、レジスタ838に設定されている値がレジスタ819に設定される。レジスタ839〜845は、次のブロックデータにおける第2色〜第8色の色データについて同様の情報が設定されるレジスタである。
レジスタ838には第1色データのバッファの高さ情報と、第1色データの有り無しを示す情報が格納される。レジスタ839〜845についても第2色〜第8色について同様の情報が設定されるレジスタである。
846はレジスタ820と同様にブロックの幅情報を設定するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
レジスタ878は、先に設定したブロックのサイズと同じブロックのサイズが同じ場合、この値を「1」とすることで、第1レジスタ群に同じ値を再設定することができる。この場合、レジスタ838〜846の設定を省くことができる。レジスタ878の値が「0」の場合には、各レジスタ838〜846にそれぞれの値が設定される。レジスタ(same_type)878によって、ブロックサイズが同じであれば、レジスタの設定を簡単に行うことができる。
以上が記録データに関するデータの書き込み、読み出し制御に関する処理の内容である。
図3において、参照番号301a〜gは記録媒体106に対して記録する主走査方向の記録データブロック(BLOCK_1〜7)と1走査記録領域302との対応を示す。記録媒体106に対して対応する各ブロックデータの記録を実行することにより、1走査記録領域302の記録が完了する。1走査記録領域302の記録のために本実施形態では記録するデータを一時格納する記録バッファを主走査方向に複数分割して用いているが、その複数の記録ブロックの利用管理のために、図3の303に示すような記録バッファ4を管理するためのデータ構造を特定するためのテーブルを用いてもよい。この場合、記録バッファ管理テーブル303の各欄301a〜gには、それぞれブロックに格納される色データの情報(BK_1、C_1、・・・)、その他、色データの有り無し、各色データのブロックのカラム数、色毎の使用ノズル位置等が格納される。
<記録バッファのアドレス制御>
図4は記録バッファにブロックデータを格納した場合の内部構成を例示する図である。ここでは、簡単のために記録ブロックは7つ(BLOCK_1〜7:この数字をブロックの識別IDとする。)、記録ブロックに格納される色データは、第1ブロックが4つ(BK_1、C_1、M_1、Y_1:この数字を色データの識別IDとする。)、第2ブロックが4つ、第3ブロックが2つ、第4ブロックが1つ、第5ブロックが4つ、第6ブロックが1つ、そして第7ブロックが0とした合計16個の色データが格納された状態である。記録バッファは縦方向(副走査方向)16ビット×8(8ワード)のデータを、主走査方向に128ドット分格納できるメモリ容量(1024ワード)となっている。従って、600DPIの間隔で配置された128ノズルで128カラム分の記録を行うことができる。
従って、本実施形態のように、1ブロックのカラム数を128カラムとすると、1色あたり128ノズルを使用する記録ヘッドで4色分の1ブロックを記録するためには、この分割された記録バッファを4つ分、つまり、1024×4ワード分を1つのブロックデータを格納するための記憶領域として割り当てればよい。
記録バッファのアドレスはSRAM173のメモリアドレス"800000(h:16進表現を示す)"を開始アドレスとし、2048バイトの基本単位として、次々にSRAM173の領域を分割して、各ブロックの色データ毎の記憶領域を割り当てる。
色データとブロックデータとの識別IDの対応関係から、BK_1は第1ブロックにおける黒の色データを示し、その記録領域の先頭アドレスは、黒は800000(h)となり、シアン(C_1)は800800(h)、マゼンタ(M_1)は801000(h)、そしてイエロー(Y_1)は801800(h)となる。第1ブロックには4色分のデータが格納されている。
同様に第2ブロックについては、黒の色データ(BK_2)の記録領域の先頭アドレスは802000(h)、シアン(C_2)は802800(h)、マゼンタ(M_2)は803000(h)、イエロー(Y_2)は803800(h)となる。第2ブロック2にも第1ブロックと同様に、4色分のデータが格納される。
第3ブロックについては、黒の色データ(BK_3)の記録領域の先頭アドレスは804000(h)、シアン(C_3)は804800(h)となる。従って、ブロック3にはブラックとシアンの2色分のデータが格納されている。つまり、マゼンタとイエローの画像データが無いので、記録バッファの割り当てはされていない。
第4ブロックについては、黒の色データ(BK_4)の記録領域の先頭アドレスは805000(h)となる。従って、ブロック4にはブラック1色分のデータが格納されている。その他のシアン、マゼンタ、イエローについては、画像データが無いので、記録バッファの割り当てはされていない。
第5ブロックについては、黒の色データ(BK_5)の記録領域の先頭アドレスは805800(h)となり、シアン(C_5)は806000(h)、マゼンタ(M_5)は806800(h)、イエロー(Y_5)は807000(h)となる。第5ブロックについては、第1及び第2ブロックと同様に4色分の色データが格納される。
第6ブロックについては、イエローの色データ(Y_6)の記録領域の先頭アドレスは807800(h)となる。このブロックでは、黒、シアン、マゼンタに対応する画像データが無いので、その分のデータを格納するための記録バッファの割り当てはされていない。
SRAM173を記録バッファとして、データの格納領域を循環的に使用するため、第7ブロックとして示す領域の先頭アドレスは、第1ブロックにおける画像データの記録終了後、使用可能となった領域の先頭アドレス800000(h)となる。
以上のように、それぞれ異なる記録領域に記録される画像データのみを、分割した記録バッファを用いて、詰めて格納する(画像データの存在しない場合は、データを格納する領域を確保しない)ことにより、メモリを効率良く使うことができる。
一方、SRAM173には記録の際に使用する記録ブロック(1〜7)の順番を管理するために、次に使用する記録ブロックのID番号を管理する記録ブロックID番号格納領域を設ける。この記録ブロックID番号格納領域に格納されるID番号は記録バッファの記録ブロックが記録されることにより順次更新され、常に次に用いる記録ブロックのID番号がセットされる。このID番号により、次に読み出すべき記録ブロックを特定することができ、更に、記録が完了した記録ブロックには、後続のブロックデータが順次格納される。
このようにして、記録動作中には常に記録バッファエリアにどの記録ブロックデータを書き込めば良いかが管理されることになる。そして、一連の記録動作中はこの情報がSRAM173内に保持される。記録動作中、記録バッファのどのアドレスにデータを書き込めば良いかが管理できることになる。記録データの書き込みと、読み出しは一連の記録動作中、記録バッファを循環的に利用して制御される。
<記録制御の処理>
図6は記録制御のフローを示した図である。ステップS601で記録バッファから画像データの読み出しを行うために、第1レジスタ群(複数のレジスタで構成)の設定を行う。この第1レジスタ群の設定では、第1ブロックにおける色データの有無、ノズル数、カラム数などの設定データが設定される。例えば、図4で示すように第1ブロックには4色の画像データすべてが格納されているので、全ての色データが有る旨が設定される。この第1レジスタ群は先に説明した図9の900に対応する。
ステップS602で第2レジスタ群(複数のレジスタで)の設定を行う。この第2レジスタ群の設定では、第2ブロックにおける色データの有無、ノズル数、カラム数などの設定データが設定される。第1レジスタ群の各レジスタは、第2レジスタ群の各レジスタにそれぞれ対応しており、第2レジスタ群に設定された値は、割り込み信号を受けて、第1レジスタ群にコピーされるので、設定を容易に行うことができる。なお、図4の第3ブロックのデータを設定する場合には、マゼンタ(M)とイエロー(Y)のデータは格納されていないので、マゼンタ(M)とイエロー(Y)のレジスタには色無し情報が設定されることになる。
ステップS603で記録動作を開始する。各ブロックにおける画像データは、そのアドレス情報(818、821、823、825、827、829、831、833)に従い読み出され、第1レジスタ群900に格納されている設定データに従い記録データ生成ブロック5が記録データを生成する。例えば、キャリッジが走査を開始し、記録領域の手前まで加速し、その後等速で移動する。そして、記録開始位置にキャリッジが到達したところで、第1ブロックに格納された画像データの記録が開始される。従って、記録データが処理されるためには、データの準備は記録開始位置にキャリッジが到達する前に完了することになる。
ステップS604では現在、第1ブロックに格納されているデータの記録終了を示す割り込み信号の有無をチェックする。割り込み信号が有れば(S604−Yes)、現在第1ブロックに格納されている画像データは全て記録されたことになるので、第2レジスタ群に格納されているデータをそれぞれ第1レジスタ群へコピーして、次の記録処理が実行される。
一方、記録が完了した第1ブロックに対応する記録バッファには、次のブロックのデータが格納される。本実施形態では、図4に示すように記録バッファに第6ブロックまでのデータが格納されているので、7番目の第7ブロックのデータが第1ブロックの空領域に格納される。
ステップS605で位置カウンタをラッチする。この位置カウンタの値は、エンコーダから得られたキャリッジの位置情報である。この位置情報は記録バッファに格納された画像データのカラム情報で、1画素単位の情報に対応する。
ステップS606で、画像データの最終ブロックに対応するデータであるか否かチェックする。もし最終ブロックでなければ(S606−No)、処理をステップS607へ進める。最終ブロックであれば(S606−Yes)、1回の走査としての記録は終了するので、ステップS606で受信した最終ブロックの割り込み信号をクリアし(S610)、記録を終了する。
ステップS607では、第2レジスタ群設定遅れ割り込みがあったかチェックする。この割り込みは、記録する位置(記録開始位置にキャリッジが到達した位置)にキャリッジが移動してきて、記録するタイミングまでに、記録バッファからの記録データ読み出しが間にあわない場合に発生する。本実施形態では、ブロック終了割り込み時に参照するフラグとして、第2レジスタ群設定遅れフラグが「1」になっているか否かで第2レジスタ群設定遅れの有無を判断する。設定遅れでなければ、このフラグは「0」である。
尚、この第2レジスタ群設定終了フラグは、第2レジスタ群にデータを設定する時、CPU9の制御の下、ソフトウエアによる処理で「1」にセットされ、第2レジスタ群のデータが第1レジスタ群にコピーされるときに「0」に変更される。この第2レジスタ群設定終了フラグの「0」への変更は、ハードが行う。
また、第2レジスタ群設定遅れフラグは、第2レジスタ群設定終了フラグを基に変更される。ブロック終了割り込み発生時、第2レジスタ群設定終了フラグが「1」であれば第2レジスタ群設定遅れフラグは「0」、第2レジスタ群設定終了フラグが「0」であれば第2レジスタ群設定遅れフラグは「1」になる。従って、第2レジスタ群設定遅れフラグが「1」の場合は、次に記録するべきブロックデータが記録バッファ4から読み出せない状態ということになる。
もし、第2レジスタ群設定遅れ割り込みがあった場合(上述のフラグが1の場合)には(S607−Yes)、現在第1レジスタ群に設定されている画像データを記録後、次のブロックの記録は行わずに、記録は中断する(S611)。例えば第3ブロックの記録を行った後に記録を中断する場合には、ステップS605でラッチされた位置カウンタは第3ブロックの最終カラムに対応するキャリッジの位置情報を保存して記録を中断する。このときキャリッジの動作は、等速移動状態から減速して、停止した後、走査方向に原点復帰して記録開始位置に戻る。
そして、CPU9は上記のフラグの設定値をモニタしており、上述の第2レジスタ設定遅れを示すフラグが「1」で中断したとわかると(S611)、第2レジスタ設定遅れフラグを「1」から「0」にクリアを行う(S612)。なお、このクリアは、CPU9の制御の下、ソフトウエアによる処理で行われる。そして、再び記録ヘッド6が走査を開始するための制御を行う(S613)。記録の再開は中断前と同じ走査領域で(副走査方向の搬送を行わずに)記録ヘッドを走査して、記録を中断した位置から記録を実行する。この場合、第3ブロックまで記録を行ったので、第4ブロックから記録を行う。記録の再開において、位置カウンタの値は記録の中断前の値が保持されており、この値を利用することにより、記録位置の連続性は中断前と後とで確保できる。このようにして、1回中断した場合は2回の走査回数で1走査領域の記録が処理できる。
ステップS607で、第2レジスタ群設定遅れ割り込みがなかった場合(上述のフラグが0の場合)には、ステップS608で割り込み信号をクリアする。
ステップS609で再び第2レジスタ群の設定を行う。格納していたデータの内容を第1レジスタ群にコピーすることで空領域ができた第2レジスタ群には、第3ブロックの設定データの設定を行い、ステップ処理をステップS604に戻す。
ステップS604において、ブロック終了割り込みが有れば、ステップS609で処理された第2レジスタ群に設定された第3ブロックの設定データを第1レジスタ群にコピーして、次の記録処理が実行される。
以下、最終ブロックの終了まで、図6に示すフローチャートに従いデータは処理される。
<記録の再開の説明>
図12は、記録データの格納が、記録のタイミングに間に間に合わない場合(図6のフローチャートで、第2レジスタ群設定遅れを示すフラグが1の場合)の記録動作を説明する図である。
記録ヘッド6がスタート位置Sから矢印の走査方向に移動して、記録を行うことを示している。この記録ヘッド6の位置の制御はカラム信号Tに基づいて行われる。スタート位置(停止状態)から走査を開始して、記録ヘッド6を加速していき、例えば、位置Aで加速を終了し、等速移動する。なお、データの格納が、記録ヘッド6の等速移動に遷移し、記録開始位置の到達するタイミングに間に間に合う場合には、1回の走査で1走査領域の全域に該当する位置Aから位置D(A−D間はキャリッジの等速移動領域)まで記録できる。
図12(a)は、位置Bから記録を開始し、位置Cまで領域P1の間で記録をしていることを示す。記録ヘッドの記録開始位置到達前までに、記録データの格納が間に合わなかったため位置Cまでしか記録されない。キャリアモータ179のモータドライバ177はどこまで記録したかを、カラム信号Tに基づいて記録位置を捕捉して、記録を再開するための記録タイミングt1を記憶する。そして、図12(b)に示すように、再びスタート位置Sから走査を開始し、記録タイミングt1から記録を実行する。この制御によって、中断した位置Cから記録を開始することができ、位置Dまで領域P2の間で記録を行い、走査方向の記録を完了する。
図13は、記録データ生成ブロック5内にあるエンコーダ信号処理ブロックに関する信号の説明図である。
150DPIの分解能を有するエンコーダ信号を4等分したカラム信号(1画素の分解能と等しい。)を生成する。このカラム信号を図14に示すカラムカウンタ1401でカウントする。このカラム信号に基づいて、それぞれのカラムの画像データが読み出される。
各カラムの第1色から第8色の画像データが順に読み出される。この読み出しは、DMA_REQ信号と、DMA_ACK信号により行われる。DMA_ACK信号の1周期において、1ノズル列分のデータが、この図では4回(a〜d)に分けて、読み出されている。ここで、ノズル列が64の場合だと、16ノズル単位のデータが1回に読み出されることになる。すなわち、画像データaでは、第1ノズルから第16ノズルのデータが読み出され、画像データbでは第17ノズルから第32ノズルのデータが読み出され、画像データcでは第33ノズルから第48ノズルのデータが、そして、画像データdでは、第49ノズルから第64ノズルのデータが読み出される。同様に1列のノズル数が128であれば、8回に分けて読み出されることになる。
データの読み出しのタイミングが、カラム信号のタイミングT8で行われるとすると、その読み出したデータについて記録ヘッドを駆動するタイミングは、1クロック分後のカラム信号T9で行われる。つまり、カラム信号のタイミングT8で画像データが読み出され、カラム信号のタイミングT9でその読み出したデータに対するインクの吐出(記録)が行われる。
なお、このDMA_REQ信号は、図5及び図9に記載されているデータの読み出し要求信号線S805である。そして、この信号の応答として、図9に示されているDMA_ACK信号S8051が記録データ生成ブロックに返される。ここで、画像データは図9のS5で示され、DMA転送で記録バッファ4から記録データ生成ブロック5に転送される。
図14は、カラム信号をカウントする回路の説明図である。カラムカウンタ1401とラッチ回路1402で構成されている。図13で示したカラム信号をカラムカウンタがカウントアップする。このカウントアップ値をラッチ回路1402に出力する。そして、画像データなしの信号が入力されると、ラッチ回路1402はカウントを加算せずにカウントアップ値を保持する。
例えば、図13を使って説明すると、カラムカウント値8まで読み込んだタイミングで、画像データなしの信号が入力された場合(図6のフローチャートにおいて、第2レジスタ群の群設定遅れを示すフラグが1の場合)、カラムカウントのタイミングT8でカウント値8の値がラッチされる。この値8+1(9カラム目)(順方向は+1で9カラム目、逆方向は−1で7カラム目)は次の記録開始位置の第1カラム(記録開始のカラム)として使用される。
尚、本実施形態では記録ヘッドの構造が副走査方向に各色成分に関して16ビット分のデータを記録可能なノズルをもつものとして説明したが、本発明の趣旨はこれによって限定されるものではない。例えば、このノズルサイズは、MPUからのアクセスが容易なサイズであれば、8ビット、16ビット、32ビット等、何れのサイズでも良い。
また、本実施形態では記録媒体よりも小さいサイズの管理テーブルをもつように構成されているが、本発明はこれによって限定されるものではない。例えば、1ページを越えるサイズの管理テーブルをもつように構成しても何ら問題なくその効果に変わりはない。その他、記録バッファの数や、記録バッファサイズについても本実施形態によって限定されるものではなく、装置構成等によって変更可能であることは言うまでもない。
以上説明したように、本実施形態にかかる記録装置及び、記録装置の制御方法によれば、複数の色データを含むデータをブロック単位として、バッファへの書き込み、読み取りを制御することが可能となる。この制御は、複数の記録ブロックに分割し、記録ブロック毎に記録動作の管理をすることが可能になるので、記録動作に必要な記録バッファのサイズを小さくすることができ、バッファ領域の効率的な利用が可能となる。
また、記録データの格納が記録動作に間に合わずに記録が中断した場合でも、記録ヘッドの位置検知手段により検知した走査位置情報により記録位置を制御して、記録を再開させて走査方向の記録を完了させることが可能となる。
本発明は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギーとして熱エネルギーを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギーによりインクの状態変化を生起させる方式のプリント装置について説明したが、かかる方式によれば記録の高密度化、高精細化が達成できる。
その代表的な構成や原理については、例えば、米国特許第4723129号明細書、同第4740796号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体(インク)が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて膜沸騰を越える急速な温度上昇を与える少なくとも1つの駆動信号を印加することによって、電気熱変換体に熱エネルギーを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に1対1で対応した液体(インク)内の気泡を形成できるので有効である。この気泡の成長、収縮により吐出用開口を介して液体(インク)を吐出させて、少なくとも1つの滴を形成する。この駆動信号をパルス形状をすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体(インク)の吐出が達成でき、より好ましい。
このパルス形状の駆動信号としては、米国特許第4463359号明細書、同第4345262号明細書に記載されているようなものが適している。なお、上記熱作用面の温度上昇率に関する発明の米国特許第4313124号明細書に記載されている条件を採用すると、さらに優れた記録を行うことができる。
記録ヘッドの構成としては、上述の各明細書に開示されているような吐出口、液路、電気熱変換体の組み合わせ構成(直線状液流路または直角液流路)の他に熱作用面が屈曲する領域に配置されている構成を開示する米国特許第4558333号明細書、米国特許第4459600号明細書を用いた構成も本発明に含まれるものである。加えて、複数の電気熱変換体に対して、共通するスロットを電気熱変換体の吐出部とする構成を開示する特開昭59−123670号公報や熱エネルギーの圧力波を吸収する開口を吐出部に対応させる構成を開示する特開昭59−138461号公報に基づいた構成としても良い。
加えて、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッド、あるいは記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドを用いてもよい。
また、本発明の記録装置の構成として設けられる、記録ヘッドに対しての回復手段、予備的な補助手段等を付加することは本発明の効果を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段、記録とは別の吐出を行う予備吐出モードを行うことも安定した記録を行うために有効である。
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも1つを備えた装置とすることもできる。
以上説明した本発明実施形態においては、インクを液体として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いても良く、あるいはインクジェット方式ではインク自体を30°C以上70°C以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
加えて、積極的に熱エネルギーによる昇温をインクの固形状態から液体状態への状態変化のエネルギーとして使用せしめることで積極的に防止するため、またはインクの蒸発を防止するため、放置状態で固化し加熱によって液化するインクを用いても良い。いずれにしても熱エネルギーの記録信号に応じた付与によってインクが液化し、液状インクが吐出されるものや、記録媒体に到達する時点では既に固化し始めるもの等のような、熱エネルギーの付与によって初めて液化する性質のインクを使用する場合も本発明は適用可能である。このような場合インクは、特開昭54−56847号公報あるいは特開昭60−71260号公報に記載されるような、多孔質シート凹部または貫通孔に液状または固形物として保持された状態で、電気熱変換体に対して対向するような形態としてもよい。本発明においては、上述した各インクに対して最も有効なものは、上述した膜沸騰方式を実行するものである。
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置の形態を取るものであっても良い。
尚、本発明は、複数の機器から構成されるシステムに適用しても良いし、1つの機器から成る装置に適用しても良い。また、本発明はシステム或は装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。