JP3792916B2 - プリンタ、およびプリンタの回復制御方法 - Google Patents
プリンタ、およびプリンタの回復制御方法 Download PDFInfo
- Publication number
- JP3792916B2 JP3792916B2 JP32498898A JP32498898A JP3792916B2 JP 3792916 B2 JP3792916 B2 JP 3792916B2 JP 32498898 A JP32498898 A JP 32498898A JP 32498898 A JP32498898 A JP 32498898A JP 3792916 B2 JP3792916 B2 JP 3792916B2
- Authority
- JP
- Japan
- Prior art keywords
- printer
- recording head
- command
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 164
- 238000011084 recovery Methods 0.000 title claims description 46
- 230000008569 process Effects 0.000 claims description 106
- 238000003860 storage Methods 0.000 claims description 45
- 239000000872 buffer Substances 0.000 description 526
- 239000000976 ink Substances 0.000 description 409
- 238000007639 printing Methods 0.000 description 255
- 238000004140 cleaning Methods 0.000 description 142
- 239000000123 paper Substances 0.000 description 122
- 238000012546 transfer Methods 0.000 description 81
- 238000012545 processing Methods 0.000 description 56
- 238000010438 heat treatment Methods 0.000 description 52
- 238000010586 diagram Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 41
- 230000007246 mechanism Effects 0.000 description 34
- 230000004044 response Effects 0.000 description 31
- 239000002775 capsule Substances 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 21
- 238000012360 testing method Methods 0.000 description 21
- 239000000049 pigment Substances 0.000 description 18
- 230000006854 communication Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 17
- 125000004122 cyclic group Chemical group 0.000 description 17
- 239000007788 liquid Substances 0.000 description 17
- 239000000975 dye Substances 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000012937 correction Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000007613 environmental effect Effects 0.000 description 9
- 238000007689 inspection Methods 0.000 description 9
- 239000002699 waste material Substances 0.000 description 9
- 239000003086 colorant Substances 0.000 description 8
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 8
- 230000007175 bidirectional communication Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 239000001041 dye based ink Substances 0.000 description 7
- 230000035699 permeability Effects 0.000 description 7
- 238000013144 data compression Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 239000001042 pigment based ink Substances 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000149 penetrating effect Effects 0.000 description 4
- 238000009835 boiling Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000000740 bleeding effect Effects 0.000 description 2
- 230000004397 blinking Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- WYWHKKSPHMUBEB-UHFFFAOYSA-N 6-Mercaptoguanine Natural products N1C(N)=NC(=S)C2=C1N=CN2 WYWHKKSPHMUBEB-UHFFFAOYSA-N 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 230000008020 evaporation Effects 0.000 description 1
- 238000012840 feeding operation Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 229940095374 tabloid Drugs 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41J—TYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
- B41J2/00—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
- B41J2/005—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
- B41J2/01—Ink jet
- B41J2/135—Nozzles
- B41J2/165—Prevention or detection of nozzle clogging, e.g. cleaning, capping or moistening for nozzles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/10—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers
- G06K15/102—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers using ink jet print heads
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41J—TYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
- B41J2/00—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
- B41J2/005—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
- B41J2/01—Ink jet
- B41J2/135—Nozzles
- B41J2/165—Prevention or detection of nozzle clogging, e.g. cleaning, capping or moistening for nozzles
- B41J2/16517—Cleaning of print head nozzles
- B41J2002/16573—Cleaning process logic, e.g. for determining type or order of cleaning processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0011—Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Ink Jet (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Description
【発明の属する技術分野】
本発明はプリンタ及びプリンタの回復制御方法に関するものである。
【0002】
【従来の技術】
個人或はホームオフィスで使用するパーソナルコンピュータに人気があるために、個人向けプリンタの製造者は魅力的な価格でありながらポータブルで品質の高い画像を形成するインクジェットプリンタを製造することに力を注いでいる。この目的を成し遂げるために、あるインクジェットプリンタの製造者はより大型のインクジェットプリンタに見られる多くのハードウェアや処理機能を個人用のインクジェットプリンタでは取り除き、コストを削減し、また、家庭やホームオフィスのために意図されたインクジェットプリンタのサイズを小さくしている。
【0003】
個人向けインクジェットプリンタのハードウェア、処理、全体的なコストを削減する1つの方法は、種々のプリント関連処理を実行することや、コマンドを介してプリンタの種々の機能を動作させることをホストコンピュータに依存する"ダム"プリンタを製造することである。これによって、より大きなインクジェットプリンタでは通常見出されるたいていの処理機能を除去することができるものの、インクジェットプリンタからうまく除去できなかった1つの処理機能は記録ヘッドの清掃処理のスケジューリングである。即ち、インクジェットプリンタがうまく動作するためには、各記録ヘッドのインク吐出部(例えば、ノズル)は定期的に清掃されなければならない。しかしながら、インクジェットプリンタの可搬性のため、インクジェットプリンタが同じホストプロセッサに接続され、そのプロセッサのライフタイムを通じてスケジュールを維持することを保証する方法はない。その結果、特定のプリンタからの清掃スケジュールはそのプリンタに格納され維持されている。
【0004】
上述のような問題に取り組む1つの方法は、ハード或はソフトパワーオン、記録ヘッドの交換、用紙の装填などのイベントの近くでのみ、インクジェット記録ヘッドの清掃をスケジュールすることである。
【0005】
【発明が解決しようとする課題】
しかしながら、そのようなイベントにだけ依存すると、どれほど頻繁に記録ヘッドが清掃されたのかを保証する方法がないために、インクを浪費する傾向があり、信頼性も高くない。
【0006】
従って、インクジェットプリンタがそれ自身の清掃スケジュールを維持する一方、同時に、例えば、バッテリ動作のリアルタイムクロックのような不必要なハードウェアを取り除くことによってインクジェットプリンタのコストを削減し、これにより、インクジェットプリンタの価格をより魅力的なものにすることが望まれている。従来、ホストプロセッサに依存して清掃スケジュールを提供し、この機能をインクジェットプリンタそれ自身から取り除くことは不可能であった。
【0007】
また、同じ問題が別のタイプのプリンタのような機器においても生じている。それは、例えば、レーザプリンタにおけるトナーの清掃等である。
【0008】
本発明は上記従来例における問題に取り組み、その従来の問題を解決することを目的としている。
【0009】
【課題を解決するための手段】
上記目的を達成するため本発明のプリンタは、以下のような構成からなる。即ち、複数の記録ヘッドを用いて記録媒体に記録を行うプリンタであって、ソフト電源のオンにより前記プリンタがオンライン状態に移行した後に、ホストプロセッサから現在時刻と日付とを含む時刻情報を受信するインタフェースと、前記時刻情報を格納するメモリと、前記複数の記録ヘッドの内、少なくとも1つの記録ヘッドを回復する回復手段と、前記プリンタに電源を投入してハード電源をオンにした状態での経過時間を計時するタイマと、前記時刻情報に基づいて最後に記録ヘッドの回復動作を行ったときの時刻を格納する不揮発性メモリと、少なくとも前記記録ヘッドの回復スケジュールプロセスの制御を行なうプロセッサとを有し、前記プロセッサは、前記ハード電源がオンになった後で、前記記録ヘッドの回復スケジュールプロセスの制御を開始し、前記ソフト電源のオンを待ち合わせ、前記ソフト電源を最初にオンにしたことを判別したときには前記回復手段による回復動作の実行を前記タイマによって計時される経過時間に応じて制御し、その後の前記回復手段による回復動作の実行は、前記オンライン状態になることで前記ホストプロセッサから前記インタフェースを介して受信した時刻情報と前記不揮発性メモリに格納された時刻情報とに基づいて制御することを特徴とする。
【0012】
また本発明を別の面から見ると、複数の記録ヘッドを用いて記録媒体に記録を行うプリンタの回復制御方法であって、ソフト電源のオンにより前記プリンタがオンライン状態に移行した後に、外部機器から現在時刻と日付とを含む時刻情報を受信する受信工程と、揮発性メモリに前記時刻情報を格納する第1格納工程と、前記時刻情報に基づいて、前記複数の記録ヘッドの内、少なくとも1つの記録ヘッドについての最後の回復動作を実行した時刻を不揮発性メモリに格納する第2格納工程と、前記不揮発性メモリに格納された前記最後の回復動作を実行した時刻を読み出す読出工程と、前記プリンタに電源を投入してハード電源をオンにした後で、CPUにより前記記録ヘッドの回復スケジュールプロセスの制御が開始され、前記ソフト電源のオンを待ち合わせ、前記ソフト電源を最初にオンしたことが前記CPUにより判別されたときは、前記ハード電源がオンとなってから前記プリンタ内部のタイマによって計時される経過時間に応じて前記少なくとも1つの記録ヘッドの回復動作の実行を制御し、その後は前記オンライン状態になることで前記外部機器から受信した時刻情報と前記読出工程において読み出された最後の回復動作を実行した時刻とに基づいて、前記少なくとも1つの記録ヘッドの回復動作の実行を制御する制御工程とを有することを特徴とするプリンタの回復制御方法を備える。
【0013】
【発明の実施の形態】
以下添付図面を参照して本発明の好適な実施の形態について詳細に説明する。
【0014】
好適な実施形態についての詳細な説明は、以下のように各節に構成されている。
1.0機械的構成
この節では、本明細書で説明する本発明を含むプリンタの機械的配置および機能について説明する。
1.1 構造
図1は、本明細書で説明する本発明と共に使用されるコンピュータ装置の外観を示す図である。コンピュータ装置20はホストプロセッサ23を含む。ホストプロセッサ23はパーソナル・コンピュータ(以下では「PC」と呼ぶ)、好ましくはMicrosoft(登録商標) Windows95などのウィンドウ環境を有するIBM PC互換コンピュータを備える。コンピュータ装置20は、カラー・モニタなどを備えるディスプレイ画面22と、テキスト・データおよびユーザ・コマンドを入力するためのキーボード26と、ポインティング・デバイス27とを備える。ポインティング・デバイス27は好ましくは、ディスプレイ画面22上に表示されたオブジェクトを操作するためのマウスを備える。
【0015】
コンピュータ装置20は、固定コンピュータ・ディスク25などのコンピュータ読取り可能メモリ媒体と、フロッピィディスク・インタフェース24とを含む。フロッピィディスク・インタフェース24は、コンピュータ装置20がフロッピィディスクに記憶されているデータ、アプリケーション・プログラムなどの情報にアクセスするための手段を提供する。コンピュータ装置20は同様なCD−ROMインタフェース(図示せず)を備えることができ、このインタフェースを通じて、コンピュータ装置20は、CD−ROM上に記憶されている情報にアクセスすることができる。
【0016】
ディスク25は特に、アプリケーション・プログラムを記憶し、このプログラムによって、ホストプロセッサ23はファイルを生成し、そのファイルを処理してディスク25上に記憶し、ファイル内のデータをディスプレイ画面22を介してオペレータに与え、ファイル内のデータをプリンタ30を介して印刷する。ディスク25はオペレーティングシステム、すなわち上記で指摘したように、好ましくはWindows95などのウィンドウ・オペレーティングシステムも記憶する。ディスク25にはデバイスドライバも記憶される。少なくとも1つのデバイスドライバは、プリンタ30内のファームウェアにソフトウェア・インタフェースを与えるプリンタドライバを備える。ホストプロセッサ23とプリンタ30との間のデータ交換について以下で詳しく説明する。
【0017】
本発明の好ましい実施形態では、プリンタ30はマルチヘッド・シリアル・プリンタである。したがって、本明細書で説明する本発明はそのようなプリンタとの併用に限らないが、本発明についてはそのようなプリンタに関して説明する。
【0018】
なお、図2および図3はそれぞれ、プリンタ30の詳細な斜視正面図および斜視背面図を示す。これらの図に示したように、プリンタ30は、ハウジング31と、アクセスドア32と、自動フィーダ34と、自動送りアジャスタ36と、手動フィーダ37と、手動送りアジャスタ39と、媒体排出ポート40と、排出トレイ41と、トレイ・リセプタクル(受容部)42と、インジケータ・ライト43と、電源ボタン44と、再開ボタン46と、電源47と、電源コード49と、パラレルポートコネクタ50とを含む。
【0019】
ハウジング31は、約幅498mm、奥行き271mm、高さ219mmであり、記録媒体上に画像を印刷する後述のプリンタエンジンを含めプリンタ30の内部機構を収容する。ハウジング31上にはアクセスドア32が含まれる。アクセスドア32は、ユーザがプリンタ30の内部機構にアクセスし、特に、プリンタ30に設置された印刷カートリッジにアクセスできるように手動で開閉可能である。したがって、プリンタ30は、アクセスドア32が開閉されたときにそれを検知するセンサ(図示せず)も含む。アクセスドア32が開放されたことが検知されると、カートリッジをプリンタ30内で解放可能に保持するカートリッジ・リセプタクル(受容部)が、開放されたアクセスドア32に対応する位置へ移動する。この機能の詳細については以下で説明する。
【0020】
アクセスドア32上に、インジケータ・ライト43と電源ボタン44と再開ボタン46とを備えるフロント・パネルが配設される。電源ボタン44は、ユーザがプリンタ30のオンとオフを切り替えることのできるつまみである。しかし、電源ボタン44を介して他の機能を使用することもできる。たとえば、プリンタ30内のスピーカ(図示せず)が1回のビープ音などの音声を発するまで電源ボタン44を押し続けることによって試験印刷機能を選択することができる。この試験印刷機能に応答して、プリンタ30は試験パターンを印刷する。
【0021】
再開ボタン46は、エラー状態が発生した後にオペレータが印刷を再開することのできる制御を行う。また、再開ボタン46を使用して他の機能を起動することができる。たとえば、プリンタ30内のスピーカがビープ音を生成するまで再開ボタン46を押し続けることによって記録ヘッド清掃機能を起動することができる。
【0022】
なお、プリンタ30は様々な連続ビープ音を与えることができる。これらの音声はそれぞれ、用紙なしや紙詰まりなど異なる種類のエラーを示す。
【0023】
インジケータ・ライト43は、単一の光導体と、緑発光ダイオード(以下では「LED」と呼ぶ)と、オレンジLEDとで構成される。インジケータ・ライト43は、プリンタ30の動作状態の表示をユーザに与える。具体的には、インジケータ・ライト43がオフであるとき、これは、プリンタ30の電源がオフであることを示す。インジケータ・ライト43が緑色に点灯している(すなわち、緑LEDが作動している)とき、これは、プリンタ30の電源がオンであり、印刷準備が完了していることを示す。インジケータ・ライト43が緑色に点滅しているとき、これは、プリンタの電源が現在オンであることなど、プリンタの動作状態を示す。
【0024】
インジケータ・ライト43は、オレンジLEDによってオレンジ色に点灯させることもできる。インジケータ・ライト43がオレンジ色に点灯しているとき、これは、プリンタ30内で回復可能なエラー、すなわちオペレータ・コール・エラーが発生したことを示す。回復可能なエラーは、用紙なし、紙詰まり、プリンタ30に設置されたカートリッジの欠陥、使用中のカートリッジの交換などを含む。プリンタ30のスピーカからの何回かのビープ音に基づいて回復可能なエラーの種類を区別することが可能である。ユーザは、インジケータLEDが連続的にオレンジ色であるときにこれらのビープを数えることによって、どのエラーが発生したかを判定し、それに応じて処置することができる。
【0025】
インジケータ・ライト43がオレンジ色に点滅しているとき、これは、プリンタ30内で致命的なエラー、すなわちサービス・コール・エラーが発生したことを示す。ただオレンジ・ライトが何回点滅したかを数えることによって、発生した致命的なエラーの種類を区別することが可能である。
【0026】
図2および図3に示したように、プリンタ30のハウジング31上には自動フィーダ34も含まれる。自動フィーダ34は、プリンタ30の媒体送り部を規定している。すなわち、自動フィーダ34は記録媒体を格納し、プリンタ30はこの媒体上に画像を印刷する。なお、プリンタ30は、様々な種類の記録媒体上に画像を印刷することができる。これらの媒体には、普通紙、高解像度紙、透明フィルム、光沢紙、光沢フィルム、バックプリントフィルム、ファブリックシート、Tシャツ転写、バブルジェット用紙、挨拶状、パンフレット用紙、バナーペーパ、厚紙などが含まれるが、それだけには限らない。
【0027】
自動フィーダ34は、厚さが約13mmの記録媒体スタックを収容することができる。これは、自動フィーダ34がたとえば、密度が64g/m2の約130枚の用紙、または約15枚の封筒を保持できることを意味する。印刷時に、自動フィーダ34内に積み重ねられた個々のシートは自動フィーダ34からプリンタ30内で送られる。具体的には、プリンタ30内のローラ(後述)が個々の媒体を自動フィーダ34からプリンタ30に引き込む。これらの個々の媒体は次いで、「J」型経路へ送られ、ローラを通して、図2に示した排出ポート40へ送られる。
【0028】
自動フィーダ34は、自動送りアジャスタ36を含む。自動送りアジャスタ36は自動フィーダ34内にいくつかの異なる媒体サイズを収容するように横方向へ移動することができる。自動フィーダ34はバッキング55も含み、バッキングは、自動フィーダ34に保持された記録媒体を支持するように延ばすことができる。バッキング55は、使用されないときには、図2に示したように自動フィーダ34のスロット内に格納される。延ばされたバッキング55の例を以下の図24に示す。
【0029】
個別のシートは、図3に示した手動フィーダ37を介してプリンタ30内で送ることもできる。手動フィーダもプリンタ30の媒体送り部を画定する。好ましい実施形態では、手動フィーダ37は、密度が少なくとも64g/m2ないし550g/m2であり、厚さが0.8mmである媒体を収容することができる。手動フィーダ37を通して送られたシートは、そのままプリンタ30内のローラを通して排出ポート40へ送られる。自動フィーダ34の場合と同様に、手動フィーダ37は手動送りアジャスタ39を含む。ユーザは、手動送りアジャスタ39を横方向へ摺動させることによって、手動フィーダ37が収容することのできる媒体を変更することができる。
【0030】
プリンタ30は、手動フィーダ37および自動フィーダ34を使用して、様々な異なるサイズを有する媒体上に画像を印刷することができる。これらのサイズは、手紙と、リーガルと、A4と、A3と、A5と、B4と、B5と、タブロイドと、No.10サイズの封筒と、DLサイズの封筒と、バナーと、ワイド・バナーと、レターサイズのフル・ブリードとを含むが、これらに限らない。カスタム・サイズの記録媒体をプリンタ30と共に使用することもできる。
【0031】
上記で指摘したように、媒体はプリンタ30内で送られ、排出ポート40から排出トレイ41に排出される。以下の第4.0節で詳しく説明するように、排出トレイ41はばねフラップを含み、このばねフラップは、プリンタ30から排出された媒体を支持し、フラップ上により多くの媒体が積み重ねられると下向きに移動する。排出トレイ41は、使用されないときには、図2に示したようにプリンタ30のトレイ・リセプタクル42内に格納される。
【0032】
電源コード49はプリンタ30を外部AC電源に接続する。電源47は、外部電源からのAC電力を変換し、変換した電力をプリンタ30に供給するために使用される。パラレル・ポート50はプリンタ30をホストプロセッサ23に接続する。パラレル・ポート50は好ましくは、IEEE−1284規格の双方向ポートを備え、このポートを介して、以下の第3.0節で説明するようなデータやコマンドがプリンタ30とホストプロセッサ23との間で伝送される。
【0033】
図4および図5はそれぞれ、プリンタ30の背面切取斜視図および正面切取斜視図を示す。図5に示したように、プリンタ30は、媒体を自動フィーダ34または手動フィーダ37からプリンタ30を通して媒体排出ポート40へ搬送する、上記で指摘したローラを含む。ローラ60は、図5に示した矢印60aで示したように、媒体搬送時に逆時計回り方向へ回転する。
【0034】
ラインフィードモータ61はローラ60の回転を制御する。ラインフィードモータ61は、96ステップ2−2位相パルスモータを備え、回路ボード62から受信されたコマンドに応答して制御される。ラインフィードモータ61は、4レベル電流制御を有するモータドライバによって駆動される。
【0035】
好ましい実施形態では、ラインフィードモータ61は、記録媒体がプリンタ30内で120mm/秒で送られるようにローラ60を回転させることができる。ラインフィード解像度は、プリンタ30の一次動作モードでは(1/720)インチ/パルス(2−2位相)であり、1440dpiモードでは(1/1440)インチ/パルス(1−2位相)である。印刷モードについては以下で詳しく説明する。
【0036】
図4に示したように、プリンタ30は、2つの記録ヘッドを使用して画像を印刷するデュアルカートリッジ・プリンタである(すなわち、カートリッジ当たり1ヘッド)。具体的には、これらのカートリッジは、カートリッジ上のそれぞれの記録ヘッドが互いに水平方向へずれるようにカートリッジ・リセプタクル64aおよび64bによって並べて保持される。図5に示したキャリッジモータ66は、回路ボード62から受信されたコマンドに応答してカートリッジ・リセプタクル64aおよび64bの動きを制御する。具体的には、キャリッジモータ66はベルト67の動きを制御し、ベルト67はキャリッジ69に沿ったカートリッジ・リセプタクル64aおよび64bの移動を制御する。なお、キャリッジモータ66はベルト67、したがってカートリッジ・リセプタクル64aおよび64bの2方向運動を可能にする。この機能によって、プリンタ30は画像を左から右に印刷すると共に右から左に印刷することができる。
【0037】
キャリッジモータ66は、キャリッジ解像度が(9/360)インチ/パルスである96ステップ2−2位相パルス・モータを備える。キャリッジモータ66は、4レベル電流制御を有するモータドライバによって駆動される。プリンタ30が360dpiモードで印刷しているとき、キャリッジモータ66は、カートリッジ・リセプタクル64aおよび64bをキャリッジ69に沿ってデフォルト速度459.32mm/秒(10Khz)で移動させるように駆動される。一方、プリンタ30が720dpiモードで印刷しているときには、キャリッジモータ66は、カートリッジ・リセプタクル64aおよび64bをキャリッジ69に沿って229.66mm/秒(5.0KHz)のデフォルト速度で移動させるように駆動される。以下の第3.6.2節に記載するように、印刷速度を3.26Khzに低減することもできる。
【0038】
図6Aは、図4のカートリッジ・リセプタクル64bの詳細な斜視図である。カートリッジ・リセプタクル64aとカートリッジ・リセプタクル64bは、自動位置合わせ(「AA(Auto Alignment)」)センサの存在を除いて共に同じ構造を有する。自動位置合わせセンサはカートリッジ・リセプタクル64bにのみ含まれる。したがって、話を簡潔にするために、本明細書ではカートリッジ・リセプタクル64bについてのみ詳しく説明する。
【0039】
カートリッジ・リセプタクル64bは、プリンタ30内で(記録ヘッドを含み、インクを貯蔵する1つまたは複数の取外し可能なインク容器を含むことのできる)インクカートリッジを保持するために使用される。なお、図7Aおよび図7Bは、カートリッジ・リセプタクル64b内に設置することのできるインクカートリッジ300bの構成を示す(図4参照)。図7Aおよび図7Bに示したように、インクカートリッジ300bは、記録ヘッド80と、インク容器83と、カートリッジ回路接点81と、穴90とを備える。この点で、取外し可能なインク容器を含まず、その代わりにすべてのインクを内部に貯蔵するインクカートリッジと共に本発明を使用することもできることに留意されたい。
【0040】
インク容器83は、インクカートリッジ300bから取外し可能であり、画像を印刷するためにプリンタ30によって使用されるインクを貯蔵する。具体的には、インク容器83をカートリッジ300b内に挿入し、図7Bに示したように矢印85の方向に沿って引くことによって取り外すことができる。容器83は、以下で詳しく説明するように、カラー(たとえば、シアン、マゼンタ、イエロ)インクおよび/または黒インクを貯蔵することができる。記録ヘッド80は、印刷時にインク容器83からインクを排出する複数のノズル(図示せず)を含む。カートリッジ回路接点81は、後述するように、インクカートリッジ清掃をトリガするためにプリンタ30によって使用される。カートリッジ穴90は、インクカートリッジ300bを所定の位置に保持するようにカートリッジ・リセプタクル64b上のピン93に対合する。
【0041】
図6Aにおいて、カートリッジ・リセプタクル64bはその底部に開口部79を含む。設置されたカートリッジの記録ヘッド80などの記録ヘッドは開口部79を通して突き出る。この構成によって、カートリッジの記録ヘッドはプリンタ30内の記録媒体に接触することができる。カートリッジ・リセプタクル64bはレバー72とカプセル73も含む。以下の第5.0節で詳しく説明するように、レバー72は、インク容器の少なくとも一部の上方で延びるようにカートリッジ・リセプタクル64bに貯蔵されたインクカートリッジのインク容器に対して旋回し、ユーザがインク容器にアクセスするのを可能にするようにインク容器から離れる方向へ旋回する。
【0042】
カプセル73は、カートリッジ・リセプタクル64b内にインクカートリッジ(記録ヘッドとインク容器とを含む)を保持し、レバー72の旋回に応答してカートリッジ・リセプタクル64b内で横方向へ移動することができる。この横方向運動時に、カプセル73上のフィンガ282は固定部502上のスリーブ284に摺動可能に係合する。この横方向運動によって、インクカートリッジ300b上のカートリッジ回路接点81などのカートリッジ回路接点は、カートリッジ・リセプタクル64b上の回路接点、すなわち装置回路接点71に係合しこの接点から係合解除する。このプロセスは、記録ヘッドの清掃を指示する信号を出力するために使用され、このプロセスについては以下で詳しく説明する。
【0043】
図6Bは、カートリッジ・リセプタクル64bの構成の背面図を示す。具体的には、図6Bは、カプセル73と、レバー72と、バック・ピース501と、固定部502(2点鎖線で示されている)の相互接続を示す。なお、レバー72は、バック・ピース501の対応する穴504に接続するフィンガ507を含む。この構成によって、レバー72が下向きに、図6Bに示した矢印A1の方向へ旋回すると、バック・ピース501は上向きに、やはり図6Bに示した矢印A2の方向へ移動する。逆に、レバー72が上向きに、矢印B1の方向へ旋回すると、バック・ピース501は下向きに、矢印B2の方向へ移動する。バック・ピース501のこの上下移動は、前述のカプセル73の横方向移動を制御する。
【0044】
したがって、バック・ピース501は、レバー/バック・ピース・アセンブリが固定部502に設置されたときにばね装荷プッシュ・ロッド510と相互作用するカム表面509を含む。具体的には、レバー/バック・ピース・アセンブリは、フィンガ508および対応する穴506を介して固定部502に接続される。このように接続されると、バック・ピース501のカム表面509はカプセル73の背部上のばねプッシュ・ロッド510に接触する。この接続によって、レバー72が旋回したときにカプセル73は横方向へ移動する。
【0045】
具体的には、カム表面509が傾斜側面511と直線状側面512とを含むので、カム表面509が上向きに移動すると(すなわち、レバー72がカプセル73の方に矢印A1の方向へ旋回し、それによってバック・ピース501、したがってカム表面509を上向きに矢印A2の方向へ移動させると)、プッシュ・ロッド510は、カム表面509の傾斜側面511によって矢印A4の方向に押される。この動きによって、カプセル73は、図6Bに示した矢印A3の方向へ移動する。
【0046】
逆に、カム表面が下向きに移動すると(すなわち、レバー72がカプセル73から離れ矢印B1の方向へ旋回し、それによってバック・ピース501、したがってカム表面509を下向きに矢印B2の方向へ移動させると)、プッシュ・ロッド510はもはや傾斜側面511には接触しない。その代わり、カム表面509は、プッシュ・ロッド510が直線状側面512に対応するように移動する。この位置で、ばね513は、カプセル73の下方に配設され、カプセル73を固定部502に対してバイアスさせ、図6Bに示した矢印B3の方向へカプセル73を移動させる。
【0047】
図6Bに示したように、レバー72は、カプセル/固定部アセンブリ上のショルダ286に接触するフランジ287も含む。以下で詳しく説明するように、この接触によって、レバー72がカートリッジ・リセプタクル64b内のカートリッジおよび/またはインク容器に係合する可能性は低減する。
【0048】
図6Aに示したように、カートリッジ・リセプタクル64bは自動位置合わせセンサ82を含む。自動位置合わせセンサ82は、プリンタ30によって形成されたドット・パターンの位置を検知する。この情報は、プリンタ30内のすべての記録ヘッドを位置合わせするために使用される。カートリッジ・リセプタクル64aおよび64bに関連してホーム位置センサ(図示せず)も含まれる。ホーム位置センサは、カートリッジ・リセプタクル64aおよび64bがカートリッジ69に対するホーム位置にあるときにそれを検出するために使用される。ホーム位置の位置および意義については以下で詳しく説明する。
【0049】
図4に戻るとわかるように、プリンタ30はワイパ84aおよび84bとインク清掃機構86とを含む。インク清掃機構86は、ホーム位置87に配設され、回転ポンプ(図示せず)と記録ヘッド接続キャップ88aおよび88bとを備える。プリンタ30の電源をオフにしたときなど記録ヘッド清掃時およびその他の時に、記録ヘッド接続キャップはそれぞれ、カートリッジ・リセプタクル64aおよび64bに設置されたカートリッジの記録ヘッドに接続される。
【0050】
ラインフィードモータ61は、記録ヘッド接続キャップ88aに接続された記録ヘッドから余分のインクを吸引するようにインク清掃機構86の回転ポンプを駆動する。以下の第5.0節で詳しく説明するように、インクはユーザが指定した一方のカートリッジまたは両方のカートリッジからのみ吸引される。ユーザ指定については以下で説明する。
【0051】
ワイパ84aおよび84bは、カートリッジ記録ヘッドから余分のインクをふき取るためにキャリッジモータ66によって駆動されるブレードなどを備えることができる。具体的には、ワイパ84aおよび84bは、所定の条件が確立された後に記録ヘッドに接触するように持ち上げられる。たとえば、記録ヘッドによって所定数のドットが印刷された後にワイパ84aおよび84bを持ち上げることができる。
1.2 機能
プリンタ30は、アクセスドア32およびプリンタ30のフロント・パネルを介して使用することのできる様々な機能を含む。それらの機能の説明を次に行う。
1.2.1 手動清掃
プリンタ30は、そのフロント・パネルを介して起動することのできる手動清掃機能を含む。具体的には、手動清掃は、2秒間続くビープをプリンタ30が発するまで再開ボタン46を押し続けることによって起動される。手動清掃が起動されたことを示すために、インジケータ・ライト43が点滅する。次いで、印刷プロセス中の媒体が排出ポート40から排出される。インク清掃機構86は次いで、カートリッジ・リセプタクル64aおよび64bに格納されたインクカートリッジの記録ヘッドを清掃し、たとえば記録ヘッドからインクを吸引しインクをふき取り、吸引されふき取られたインクは廃棄インク貯蔵領域に貯蔵される。その後、インジケータ・ライト43は、点滅を停止し、エラーが発生しなかった場合にはオンに切り替えられる。廃棄インク・エラーが発生した場合、たとえば、廃棄インク貯蔵領域がほぼ満杯である場合は、オレンジLEDがインジケータ・ライト43を照明し、プリンタ30がビープ音を6回発する。
1.2.2 カートリッジ交換
プリンタ30の電源がオフであるか、あるいは記録媒体がシート・フィーダから送られるか、あるいはプリンタ30が印刷中であるかホストプロセッサ23からデータを受信したか、あるいは用紙なしエラーまたは紙詰まりエラーが発生するか、あるいはプリンタ30内の記録ヘッドの温度が過度に高いか、あるいは致命的なエラーが発生するなどの条件が存在しないかぎり、プリンタ30は、アクセスドア32が開放された後カートリッジ交換モードに入る。
【0052】
なお、一般に、プリンタ・セットアップ時にインクカートリッジまたはインク容器全体を設置するときにも、あるいはプリンタが装置としての寿命がある間に、使用済みのカートリッジまたは容器あるいは欠陥のあるカートリッジまたは容器を交換するときにも、カートリッジ交換モードに入る。初期プリンタ・セットアップ時に、一方のカートリッジ・リセプタクル64aまたは64bにはインクカートリッジまたは容器がない。このことを知らせるために、インジケータ・ライト43が点滅する。カートリッジまたは容器を設置するとき、ユーザはアクセスドア32を開放し、それによって、後述のようにカートリッジ・リセプタクル64aおよび64bをキャリッジ69に沿って中央位置へ移動させる。この位置で、ユーザは、単にカートリッジ・リセプタクル64aおよび64bのレバー72を持ち上げ、カートリッジを記録ヘッドの方からカートリッジ・リセプタクル64aおよび64b内に落下させ、レバー72を閉じることによってインクカートリッジを設置することができる。空のインクカートリッジまたは欠陥のあるインクカートリッジを交換するプロセスは、本節で説明するプロセスと同じである。インク容器を交換するとき、ユーザは欠陥のあるインク容器または空のインク容器をカートリッジから引き離し、その位置に新しいインク容器を挿入することができる。
【0053】
カートリッジ交換モードを終了するには、ユーザはアクセスドア32を閉鎖するだけでよい。交換モードが終了した後、プリンタ30は、新たに設置されたカートリッジを検査して、正しく設置されているかどうかを判定する。カートリッジまたは容器が正しく設置されている場合、プリンタ30はカートリッジ・リセプタクル64aおよび64bをホーム位置87へ移動させる。一方、カートリッジまたは容器が正しく設置されていないか、あるいは何らかの理由で使用することができない(たとえば、カートリッジまたは容器に欠陥がある)場合、インジケータ・ライト43がオレンジ色に点灯する。また、プリンタ30は、カートリッジ・リセプタクル64b内のインクカートリッジに問題があることを示すときはビープを3回発し、カートリッジ・リセプタクル64a内のインクカートリッジに問題があることを示すときはビープを4回発する。
1.3 インクカートリッジ
本明細書で説明するプリンタは、いくつかの異なる種類のインクを貯蔵する取外し可能なインク容器を含むインクカートリッジを使用することができる。そのようなカートリッジの例を図7Bおよび図7Cに示す。しかし、上記で指摘したように、取外し可能なインク容器を含まず、その代わりにすべてのインクを内部に貯蔵する使い捨てインクカートリッジと共に本発明を使用することもできる。そのようなカートリッジの例を図7Aに示す。
【0054】
一般に、プリンタ30は様々な異なるカートリッジタイプと共に動作することができる。たとえば、プリンタ30は、染料ベースの黒インクを貯蔵し、垂直方向へ延びる128個のノズルを含む記録ヘッドを有するカートリッジを使用することができる。そのようなカートリッジの例はCanon BC−20カートリッジである。顔料黒インクを貯蔵する同様な種類のカートリッジを使用することもできる。なお、一般的に言えば、染料ベースの黒インクは、記録媒体に対する高浸透特性を有する。一方、顔料ベースの黒インクは一般に、記録媒体に対する低浸透(場合によっては非浸透)特性を有する。
【0055】
プリンタ30は、カラーインクカートリッジと共に動作することもできる。たとえば、プリンタ30は、シアンインク、マゼンタインク、イエロインク、黒インクを貯蔵し、垂直方向へ延びる136個のノズルを含むインクカートリッジと共に動作することができる。そのようなカートリッジでは、24個のノズルがシアンインクの印刷を行い、24個のノズルがマゼンタインクの印刷を行い、24個のノズルがイエロインクの印刷を行い、64個のノズルが黒インクの印刷を行う。そのようなカートリッジの例はCanon BC−21(e)カートリッジである。
【0056】
プリンタ30と共に使用できるさらに他の例のインクカートリッジでは、低光学濃度(たとえば、「写真」)インクを貯蔵し、垂直方向に配置された136個のカートリッジを含む。そのようなカートリッジも、前述のカラーカートリッジと同じノズル構成を有する。
1.4 記録ヘッドの構造
本発明と共に使用できるカートリッジの記録ヘッドの物理構成に関して、図8は、プリンタ30が記録ヘッド98を含み、記録ヘッドが128個のノズルを有しほぼ垂直に構成され、各ノズルが、隣接するノズルに近接して離間される場合のノズル構成の詳細な正面図を示す。そのような構成は単色(黒など)印刷に好ましい。記録ヘッドが記録媒体を横切って移動する際にノズルからすべてのインクを一度に射出するのではなく、インクを短い間隔を置いて連続して射出して垂直線を印刷することが可能になるように、ノズルは好ましくはわずかに斜めに傾斜した角度に配置される。ノズルからインクを短い間隔を置いて連続して射出するための電力要件および制御要件は、すべてのインクを一度に射出するための電力要件および制御要件と比べて著しく低減される。1つの好ましい構成のノズル列の傾斜角度は、360dpi解像度であれば、垂直方向に16ノズル毎に水平方向には1画素分だけずれるような角度に対応している。
【0057】
記録ヘッド99は、垂直に対してわずかに傾斜した角度に重なり合うように配置された、好ましくはイエロインク用の24個のノズルと、好ましくはマゼンタインク用の24個のノズルと、好ましくはシアンインク用の24個のノズルと、好ましくは黒インク用の64個のノズルとを含む136個のノズルを有する。ノズルの各色群は、8つのノズルに対応する垂直ギャップだけ、隣接する群から分離される。わずかに斜めの角度はこの場合も、360dpiの解像度であれば、垂直方向に16ノズル毎に水平方向には1画素分だけずれるような傾きをもつように配置される。
1.5 印刷モード
プリンタ30は、その動作時に、ホストプロセッサ23(図1参照)からプリンタ30に発行されたコマンドを介して設定できるいくつかの異なるモードを含む。これらのモードでは、プリンタ30に設置されたカートリッジは、それぞれの異なるサイズのインク滴を吐出し、それぞれの異なる解像度を有する画像を形成することができる。プリンタ30のあるモードが利用できるかどうかは、1つにはプリンタ30に設置されたカートリッジの種類に依存する。すなわち、ある種のカートリッジ上の記録ヘッドは、いくつかの異なるサイズの液滴、たとえば大きなインク滴または小さなインク滴を吐出することができ、それに対して他の種類のカートリッジ上の記録ヘッドは、単一のサイズを有する液滴を吐出することができる。
【0058】
上記指摘したように、それぞれの異なるプリンタ動作モード中にそれぞれサイズの異なるインク滴を使用して、それぞれの異なる解像度を有する画像が形成される。具体的には、インクジェットプリンタはページ上にドットを形成することによって画像を生成する。形成される画像の解像度は、1つには形成されるドットの数に対応し、1つにはそれらのドットが形成される構成に対応する。本発明のプリンタでは、前述の大きなインク滴と小さなインク滴のどちらかを使用して様々な異なる解像度で画像を形成することができる。
【0059】
この点で、印刷時のドット割振りおよび配置が、1つには、印刷時に使用される用紙の種類に基づいて制限されることに留意されたい。具体的には、普通紙は、360dpi画素中に最大で約4つの小さな液滴を吸収することができ、それに対して高解像度(以下、"HR−101"と呼ぶ)紙は、360dpi画素中に最大で6つの小さな液滴を吸収することができる。
【0060】
前述のことを考慮すると、図9は、通常の(すなわち、ノンフォト)インクと任意の種類の用紙を使用した180ドット水平方向(H)×180ライン垂直方向(V)ラスタ化における各画素についての液滴配置を示す。図9に示したように、この配置は、3つのレベルを可能にし、大きな液滴を使用して360ドット(H)×360ライン(V)dpiプリントアウトを達成することができる。
2.0電気的構成
第1.0節で説明したように、プリンタ30は複数の記録ヘッドを黒−黒、黒−カラー、カラー−カラー、カラー−フォトなどいくつかの異なる組合せで使用することができ、それによっていくつかの印刷モードをそれぞれの異なる解像度(たとえば、180dpi、360dpi、720dpi)で実行することができる。さらに、テキスト、テキストおよびカラー、カラーおよび高品質カラーなどそれぞれの異なる印刷モードごとに記録ヘッドの組合せを変更することができる。その結果、それぞれの異なるモード用の印刷タスクは、記録ヘッドの組合せ、記録媒体、画質に基づいて異なる複雑な操作を必要とする。図1の情報処理システムでは、記録ヘッドの構成、記録ヘッドの位置合わせなどに関するプリンタ・パラメータは、プリンタ30内に記憶され、プリンタ30によって得られたデータに基づいてホストプロセッサ23へ送信される。したがって、ホストプロセッサ23内のプリンタドライバは、印刷データの複雑な処理および様々な印刷モードに対するプリンタのセットアップを実行し、印刷の実行を簡略化する指示コマンド・シーケンスをプリンタへ送信する。この利点としては、プリンタのアーキテクチャが簡略化され、同時に、ホストプロセッサ23に対する印刷処理の要求は、ホストプロセッサ23の動作にほとんどあるいはまったく影響を与えないことがある。
2.1 システムアーキテクチャ
図10は、ホストプロセッサ23およびプリンタ30の内部構造を示すブロック図である。図10で、ホストプロセッサ23は、コンピュータバス101と相互接続されたプログラム可能なマイクロプロセッサなどの中央演算処理装置(CPU)100を含む。コンピュータバス101には、ディスプレイ22とのインタフェースをとるディスプレイ・インタフェース102と、双方向通信回線106を通してプリンタ30とのインタフェースをとるプリンタ・インタフェース104と、フロッピィディスク107とのインタフェースをとるフロッピィディスク・インタフェース24と、キーボード26とのインタフェースをとるキーボード・インタフェース109と、ポインティングデバイス27とのインタフェースをとるポインティングデバイス・インタフェース110も結合される。ディスク25は、オペレーティングシステム111を記憶するオペレーティングシステム部と、アプリケーション112を記憶するアプリケーション部と、プリンタドライバ114を記憶するプリンタドライバ部とを含む。
【0061】
ランダム・アクセス・メイン・メモリ(以下、"RAM"と呼ぶ)116はコンピュータバス101とのインタフェースをとり、CPU100がメモリ記憶域にアクセスすることを可能にする。特に、ディスク25のアプリケーション部112に記憶されているアプリケーション・プログラムに関連する命令シーケンスなど記憶されているアプリケーション・プログラム命令シーケンスを実行する際に、CPU100がそのようなアプリケーション命令シーケンスをディスク25(あるいはネットワークまたはフロッピィディスク・ドライブ24を介してアクセスされた媒体などの他の記憶媒体)からRAM116にロードし、そのような記憶されているプログラム命令シーケンスをRAM116から実行する。RAM116は、以下で詳しく説明するように、本発明によるプリンタドライバ114によって使用される印刷データ・バッファを備える。ウィンドウ・オペレーティングシステムの下で使用できる標準的なディスク・スワッピング技術によって、前述の印刷データ・バッファを含めてメモリのセグメントをディスク25との間でスワップできることも認識されたい。ホストプロセッサ23内の読取り専用メモリ(以下、"ROM"と呼ぶ)43は、キーボード26の操作に関する立上げ命令シーケンスや基本入出力オペレーティングシステム(BIOS)シーケンスなどの不変的な命令シーケンスを記憶する。
【0062】
図10に示し、上記で述べたように、ディスク25は、ウィンドウ・オペレーティングシステムに関するプログラム命令シーケンスと、グラフィックス・アプリケーション・プログラム、描画アプリケーション・プログラム、デスクトップ・パブリッシング・アプリケーション・プログラムなど様々なアプリケーション・プログラムに関するプログラム命令シーケンスとを記憶する。ディスク25は、指定されたアプリケーション・プログラムの制御下でディスプレイ22によって表示しプリンタ30によって印刷することのできるようなカラー画像ファイルも記憶する。ディスク25はまた、マルチレベルRGB原色をどのようにディスプレイ・インタフェース102に与えるかを制御するカラーモニタドライバを他のドライバ部119に記憶する。プリンタドライバ114は、プリンタ30を白黒およびカラー印刷できるように制御し、印刷データをプリンタ30の構成に従ってプリントアウトできるように供給する。印刷データはプリンタ30へ転送され、プリンタドライバ114の制御下で、回線106に接続されたプリンタ・インタフェース104を通し、ホストプロセッサ23とプリンタ30との間で制御信号が交換される。ホストプロセッサ23に接続されたネットワーク装置やファクシミリ装置など様々な装置に適切な信号を与える他のデバイスドライバもディスク25に記憶される。
【0063】
通常、ディスク25上に記憶されているアプリケーションプログラムおよびドライバはまず、それらのプログラムおよびドライバが最初に記憶された他のコンピュータ読取り可能な媒体からディスク25上にユーザによってインストールされる必要がある。たとえば、ユーザは通常、プリンタドライバのコピーが記憶されている、フロッピィディスク、またはCD−ROMなど他のコンピュータ読取り可能な媒体を購入する。ユーザは次いで、プリンタドライバをディスク25上にコピーする周知技術を通してプリンタドライバをディスク25上にインストールする。同時に、ユーザは、モデム・インタフェース(図示せず)またはネットワーク(図示せず)を介して、ファイル・サーバまたはコンピュータ化された掲示板からのダウンロードなどによってプリンタドライバをダウンロードすることも可能である。
【0064】
再び図10を参照するとわかるように、プリンタ30は、バス126に接続された、プログラム可能なタイマと割込みコントローラとを含む8ビット・マイクロプロセッサまたは16ビット・マイクロプロセッサなどのCPU121と、ROM122と、制御論理124と、入出力ポート・ユニット127とを含む。制御論理124にはRAM126も接続される。制御論理124は、ラインフィードモータ61用のコントローラと、RAM129内の印刷画像バッファ記憶域用のコントローラと、加熱パルス生成用のコントローラと、ヘッド・データ用のコントローラとを含む。制御論理124はまた、プリンタエンジン131の記録ヘッド130aおよび130b内のノズル、キャリッジモータ66、ラインフィードモータ61に対する制御信号と、記録ヘッド130aおよび130bに関する印刷データを与え、記録ヘッド130aおよび130bの位置合わせに関する情報を入出力ポート・ユニット127を通してプリンタエンジン131から受信する。EEPROM132は入出力ポート・ユニット127に接続され、記録ヘッド構成パラメータや記録ヘッド位置合わせパラメータなどのプリンタ情報用の非揮発性メモリを形成する。EEPROM132は、プリンタ30の動作パラメータをホストプロセッサ23に知らせるためにホストプロセッサ23のプリンタドライバ114へ送信される、プリンタ、ドライバ、記録ヘッド、記録ヘッドの位置合わせ、カートリッジ内のインクの状況などを識別するパラメータも記憶する。
【0065】
入出力ポート・ユニット127はプリンタエンジン131に結合され、プリンタエンジン内で、(それぞれ、カートリッジ・リセプタクル64aおよび64bに格納される)一対の記録ヘッド130aおよび130bは、記録媒体を走査し、同時にRAM129内のプリントバッファから得た印刷データを使用して印刷を行うことによって記録媒体上で記録を行う。制御論理124は、通信回線106を介してホストプロセッサ23のプリンタ・インタフェース104にも結合され、制御信号を交換し、印刷データおよび印刷データ・アドレスを受信する。ROM122は、フォントデータと、プリンタ30を制御するために使用されるプログラム命令シーケンスと、プリンタの動作に関するその他の不変データを記憶する。RAM129は、記録ヘッド130aおよび130b用のプリンタドライバ114によって定義されたプリントバッファに印刷データを記憶し、かつプリンタの動作に関するその他の情報を記憶する。
【0066】
プリンタエンジン131の記録ヘッド130aおよび130bは、それぞれ、カートリッジ・リセプタクル64aおよび64bに記憶されているインクカートリッジに対応する。参照番号134で総称されるセンサ群は、プリンタの状況を検出し、温度を測定し、印刷に影響を与えるその他の数量を検出するように配置される。カートリッジ・リセプタクル64内の光センサ(たとえば、図6Aに示したセンサ82)は、自動位置合わせのために印刷濃度およびドット位置を測定する。センサ群134はまた、アクセス・カバー32の開閉状況、記録媒体の存在などその他の状態を検出するようにプリンタエンジン131内に配置される。また、ダイオードセンサは、サーミスタを含み、記録ヘッド130aおよび130bに配置され、記録ヘッド温度を測定する。この温度は入出力ポート・ユニット127へ送信される。
【0067】
入出力ポート・ユニット127はまた、電源ボタン44や再開ボタン46などのスイッチ133から入力を受信し、LED135、インジケータ・ライト43、ブザー128へ制御信号を送信し、それぞれ、ラインフィードモータ・ドライバ61aおよびキャリッジモータ・ドライバ66aを介してラインフィードモータ61、キャリッジモータ66に制御信号を送信する。前述のように、ブザー128はスピーカを備えることができる。
【0068】
図10はプリンタ30の個々の構成要素を互いに別々で異なるものとして示しているが、いくつかの構成要素を組み合わせられることが好ましい。たとえば、制御論理124をASICの入出力ポート127と組み合わせて、プリンタ30の機能のための相互接続を簡略化するようにしても良い。
2.2 システムの機能
図11は、ホストプロセッサ23とプリンタ30との間の相互作用を示すハイレベル機能ブロック図である。図11に示したように、ディスク25のアプリケーション部112に記憶されており画像処理アプリケーションプログラム112aから印刷命令が発行されると、オペレーティングシステム111はプリンタドライバ114にグラフィックスデバイスインタフェース呼出しを発行する。プリンタドライバ114は、印刷命令に対応する印刷データを生成することによって応答し、この印刷データを印刷データ・ストア136に記憶する。印刷データ・ストア136は、RAM116またはディスク25に存在することができ、あるいはオペレーティングシステム111のディスク・スワッピング動作によって、印刷データ・ストア136を最初にRAM116に記憶しておきディスク25との間でスワップすることができる。その後、プリンタドライバ114は、印刷データを印刷データ・ストア136から得て、プリンタ・インタフェース104を通して双方向通信回線106へ送信し、プリンタ制御機構140を通してプリントバッファ139へ送信する。プリントバッファ139はRAM129に存在し、プリンタ制御機構140は図10の制御論理機構124およびCPU121に存在する。プリンタ制御機構140は、ホストプロセッサ23から受信されたコマンドに応答してプリントバッファ139内の印刷データを処理し、ROM122(図10参照)に記憶されている命令の制御下で印刷タスクを実行し、記録媒体上に画像を記録するのに適切な記録ヘッド制御信号およびその他の制御信号をプリンタエンジン131に与える。
【0069】
プリントバッファ139は、記録ヘッド130aおよび130bのうちの一方によって印刷すべき印刷データを記憶する第1の部分と、記録ヘッド130aおよび130bのうちの他方によって印刷すべき印刷データを記憶する第2の部分とを有する。各プリントバッファ部は、関連する記録ヘッドの印刷位置の数に対応する記憶位置を有する。これらの記憶位置は、印刷について選択された解像度に従ってプリンタドライバ114によって定義される。各プリントバッファ部は、記録ヘッド130aおよび130bの印刷速度へのランプアップ時に印刷データを転送するための追加の記憶位置も含む。印刷データは、ホストプロセッサ23内の印刷データ・ストア136から、プリンタドライバ114からアドレスされたプリントバッファ139の記憶位置へ送信される。その結果、ランプアップ時にも現在の走査による印刷時にも、次に走査される印刷データをプリントバッファ139内の空記憶位置に挿入することができる。
2.3 制御論理
図12は、図10の制御論理124および入出力ポート・ユニット127のブロック図を示す。前述のように、入出力ポート・ユニットは制御論理124内に含めることもできる。図10で、ユーザ論理バス146は、プリンタCPU121と通信できるようにプリンタ・バス126に接続される。バス146は、IEEE−1284規格のプロトコル通信などの双方向通信を行うために双方向回線106に接続されたホストコンピュータ・インタフェース141に結合される。したがって、双方向通信回線106はホストプロセッサ23のプリンタ・インタフェース104にも結合される。ホストコンピュータ・インタフェース141はバス146に接続され、プリントバッファ139(図10および図11参照)を含むRAM129を制御するためにDRAMバス・アービタ/コントローラ144に接続される。データ圧縮器148は、バス146とDRAMバス・アービタ/コントローラ144との間に接続され、処理時に印刷データを伸張する。バス146には、図10のラインフィードモータ・ドライバ61aに接続されたラインフィードモータ・コントローラ147と、記録ヘッド130aおよび130bのそれぞれに対するシリアル制御信号およびヘッド・データ信号を与える画像バッファ・コントローラ152と、記録ヘッド130aおよび130bのそれぞれに対するブロック制御信号およびアナログ加熱パルスを与える加熱パルス生成装置154も結合される。ラインフィードモータ61とキャリッジモータ66が並行して動作できるので、キャリッジモータ制御は入出力ポート・ユニット127およびキャリッジモータ・ドライバ66aを通してCPU121によって実行される。
【0070】
制御論理124は、ホストコンピュータ・インタフェース141および双方向通信回線106を通して、CPU121で使用できるコマンドをホストプロセッサ23から受信し、プリンタ状況信号およびその他の応答信号をホストプロセッサ23へ送信するように動作する。ホストプロセッサ23から受信された印刷データおよび印刷データに関するプリントバッファ・メモリ・アドレスは、DRAMバス・アービタ/コントローラ144を介してRAM129内のプリントバッファ139へ送信され、プリントバッファ139から得たアドレスされた印刷データは、コントローラ144を通してプリンタエンジン131へ転送され、記録ヘッド130aおよび130bによって印刷される。なお、加熱パルス生成装置154は、印刷データを印刷するために必要なアナログ加熱パルスを生成する。
【0071】
図13は、プリンタ30用のメモリアーキテクチャを示す。図13に示したように、EEPROM132と、RAM129と、ROM122と、制御論理124用の一時記憶域161は、単一アドレス指定構成を有するメモリ構造を形成する。図13を参照するとわかるように、非揮発性メモリ部159として示したEEPROM132は1組のパラメータを記憶し、これらのパラメータは、ホストプロセッサ23によって使用され、プリンタおよび記録ヘッドと、記録ヘッドの状況と、記録ヘッドの位置合わせと、記録ヘッドのその他の特性を識別する。EEPROM132も、プリンタ30によって使用される、清掃時間、自動位置合わせセンサ・データなど他の1組のパラメータを記憶する。ROM122は、メモリ部160として示されており、プリンタ・タスクのプログラム・シーケンス、ノズル加熱パルスの生成などを制御するために使用される記録ヘッド動作温度テーブルなど、プリンタの動作に関する不変の情報を記憶する。ランダム・アクセス・メモリ部161は、制御論理124に関する一時動作情報を記憶し、RAM129に対応するメモリ部162は、プリンタ・タスクに関する可変動作データ用の記憶域とプリントバッファ139とを含む。
2.4 一般的な動作
図14は、図10のブロック図に示した情報処理システムの一般的な動作を示すフローチャートである。図14のステップS1401でプリンタ30の電源がオンに切り替えられた後、ステップS1402でプリンタ70が初期設定される。初期設定時には、以下の第3.2節で詳しく論じ図19および図20に示すように、CPU121、制御論理124、システム・タイマが初期状態に設定される。また、プリンタ30のROM121、RAM129、EEPROM132が検査され、プリンタ30に電源が投入されたときにCPU121の割込み要求レベルが割り当てられる。プリンタ30がそのオン状態に設定されると、プリンタドライバ114によってEEPROM132が読み取られ、プリンタをリセットすること、記録ヘッド清掃を行うべきであるかどうかをシステム・タイマに基づいて判定することなどのコントローラ・タスクがプリンタCPU121によって開始される。また、ステップS1402の初期設定プロセスでは、データ圧縮モードが選択され、記録ヘッド130aおよび130bに対する加熱パルスが定義され、バッファ制御が定義され、プリントバッファ139がクリアされ、プリンタ30の状況を示すメッセージが表示される。
【0072】
次に、ステップS1403が実行される。ステップS1403で、記録ヘッドの構成が変更されていると判定された場合、プリンタドライバ114は、ヘッドの構成および位置合わせに関するプリンタの測定に基づいてプリンタCPU121から得られたデータからプリンタ・パラメータを算出する。位置合わせシステムは、1997年7月28日に出願され参照として本明細書に組み込まれた「プリンタ装置のための自動位置合わせシステム(Auto-Alignment System For A Printing Device)」と題する米国特許出願第08/901560号に詳しく記載されている。
【0073】
ステップS1403に続いて、処理はステップS1404に進み、プリンタ30がオンラインであるかどうかが判定される。プリンタ30がオンラインであると判定された後、処理はステップS1405に進み、算出されたプリンタ・パラメータがプリンタEEPROM132に登録される。
【0074】
具体的には、プリンタ30がオンラインであると判定されると、ステップS1405で、EEPROM132に記憶されているプリンタ・パラメータがプリンタドライバ114によって登録される。次いでステップS1405で、このパラメータが、ホストプロセッサ23に記憶できるようにCPU121によって送信され、それによってプリンタドライバ114はプリンタの動作に適切なコマンドを生成することができる。そのようなコマンドは、図14の破線ボックスのステップに示されており、プリンタ30の現在のIDと、記録ヘッドの構成と、記録ヘッドの位置合わせと、カートリッジ・インクの状況を考慮に入れている。
【0075】
ステップS1405によるパラメータを送信する方法は、現在のヘッド構成に関するプリンタ・パラメータを表すデータをホストプロセッサへ送信することを含む。ホストプロセッサ内のプリンタドライバは、接続された記録装置の特性に応じてプリンタの機能を制御するコマンドを生成し、生成したコマンドをプリンタ・コントローラへ送信する。このようなコマンドには、様々な複数の記録装置構成に関してプリンタの動作を制御することを可能にする接続された記録装置の特性に対応するパラメータが含まれる。プリンタ・パラメータ・データの、ホストプロセッサ内のプリンタドライバへの送信と、コマンドの生成および送信については、第6.0節で詳しく説明する。
【0076】
記録ヘッドの清掃に関しては、ステップS1405Aのように、プリンタの動作中の様々な時間に清掃をスケジュールすることができる。ステップS1405Aに従って記録ヘッドの清掃をスケジュールする方法は、外部情報源からリアルタイム/日付(時間および/または日付)情報を受信することと、リアルタイム/日付情報を揮発性メモリに記憶することと、インクジェットプリンタ内の少なくとも1つの記録ヘッドに関する最後の清掃時間を不揮発性RAMに記憶することと、記憶されているリアルタイム/日付情報と記憶されている最後の清掃時間との減算を行うことによって経過時間を算出することとを含む。この方法はさらに、算出された経過時間を所定の経過時間と比較することと、算出された経過時間が所定の経過時間以上であるときに少なくとも1つの記録ヘッドを清掃プロセスを実行するように制御することと、この少なくとも1つの記録ヘッドを清掃した最近の最終時間を非揮発性メモリに記憶することとを含む。算出された経過時間が所定の経過時間よりも短いとき、この方法は、内部経過時間と、次のダウンロード時間の比較と、記録ヘッドの交換などの清掃イベントの実行のどれかに基づいて清掃を実行するように待機する。記録ヘッドの清掃のスケジューリングについては以下の第7.0節で詳しく説明する。
【0077】
ステップS1405で登録されたパラメータは、記録ヘッドの動作を制御するために使用される。少なくとも1つの記録ヘッドを有する画像記録装置の記録ヘッドを制御する、ステップS1405による方法は、ステップS1405で登録されたパラメータを含む、少なくとも1つの記録ヘッドのプロファイル情報を得ることを含む。この方法は、プロファイル・パラメータを不揮発性RAMに記憶することと、要求に応じて、画像記録装置に接続されたホストプロセッサにプロファイル情報を出力することとを含む。ホストプロセッサは、記録ヘッド・プロファイル情報を使用して補償パラメータを生成し、この補償パラメータは、ホストプロセッサから印刷のため記録ヘッドへ送信するべき印刷情報を補償する。この方法については第8.0節で詳しく説明する。
【0078】
ステップS1405でプリンタパラメータ情報が登録され、ステップS1405Aで清掃スケジューリングが行われた後、ステップS1406で、記録ヘッド・カートリッジ300aおよび300b(図4参照)のそれぞれの状況が検査される。これは、アクセスドア32が開閉されたかどうかを確認し、1つまたは複数のインクカートリッジまたはインク容器が交換されたかどうかを検出することによって行われる。カートリッジまたは容器が交換されている場合、対応する記録ヘッドに対して清掃動作が実行され、その場合、記録ヘッドのノズルが清掃される。
【0079】
インク容器/カートリッジ交換時に記録ヘッドを清掃するためにステップS1406で使用される装置は、記録ヘッドと少なくとも1つの取外し可能なインク容器とを有するカートリッジを解放可能に受容するためにカートリッジ上に取り付けられたカートリッジ・リセプタクルを備える。このリセプタクルは、少なくとも1つのインク容器の取外しを可能にする旋回レバーを含む。このレバーは少なくとも1つのインク容器の少なくとも1部を越えて上方に伸長しており、レバー自体がその少なくとも1つのインク容器から離れる方向に旋回されるまで少なくとも1つのインク容器へのアクセスを防止するようにしている。レバーが、少なくとも1つのインク容器から離れる方向に旋回され、次いで少なくとも1つのインク容器の少なくとも一部の上方で旋回されると、記録ヘッドの清掃を促す信号が出力される。記録ヘッド清掃構成については、第5.0節で詳しく説明する。
【0080】
ステップS1406でカートリッジ交換処理が実行された後、処理はステップS1407に進む。ステップS1407で、記録ヘッド・ヒータ制御などの動作のためにプリンタ30によって割込みが要求されているかどうかが判定される。そのような割込み要求に応答して、要求されたプリンタ動作がステップS1408で実行される。その後、処理はステップS1406に戻る。
【0081】
ステップS1407でプリンタによって割込みが要求されなかった場合、処理はステップS1409に進む。ステップS1409で、プリンタドライバ114がコマンド・シーケンスを要求したかどうかが判定される。図10のシステムでは、プリンタ30から受信されたパラメータおよび状況情報に応じて生成されたプリンタドライバ114からのコマンドによって、プリンタ30のタスクが制御される。ユーザインタフェース・シーケンスが選択されると、ステップS1414に入り、図15に示した処理が実行される。
【0082】
ステップS1501でユーザインタフェースが選択されると、プリンタ30の現在の状況が要求され、双方向通信回線106を介してプリンタ30から受信される。次いでステップS1502で、プリンタ30が新しい記録ヘッドを有するかどうかが判定される。新しい記録ヘッドが検出されると、ステップS1503で自動位置合わせが実行され、ステップS1504でプリンタ30の状況情報がプリンタドライバ114に記憶される。新しい記録ヘッドが検出されなかった場合、ステップS1505でユーザのために最新のプリンタドライバ情報が得られる。いずれの場合も、ステップS1506で、印刷すべきページがヘッド交換および/またはヘッド位置合わせに関するユーティリティ・ページであるか、それとも文書のトップ・ページであるかどうかが判定される。ユーティリティ・ページが選択されると、ステップS1507で現在のヘッド構成が表示され、ユーザはステップS1508で、プリンタ30をイネーブルすべきか、それともディスエーブルすべきかを選択する。次いで、選択ステップS1509に入り、ユーザは、ステップS1510による位置合わせ、ステップS1510およびS1511によるヘッド交換および位置合わせとその後に続くステップS1512でのプリンタ状況情報の記憶、ステップS1513による記録ヘッド130aおよび130bを清掃する回復動作、またはステップS1514でのユーザインタフェースの取消しを選択することができる。ステップS1509で選択されたタスクが実行された後、図14のステップS1409に制御が返される。
【0083】
図15のステップS1506で印刷モードが選択されると、ユーザに対して現在のヘッド構成が表示される(ステップS1515)。ユーザは、ステップS1516でイネーブル−ディスエーブル・ボタンを操作した後、ステップS1517で、印刷、媒体タイプ、媒体サイズ、目的の画像、カスタム・ページ設定、ユーティリティ動作、または取消し動作を選択することができる。媒体タイプ(ステップS1518)、媒体サイズ(ステップS1519)、目的の画像(ステップS1520)、(すなわち、テキストおよびカラーまたはフォトカラー)、カスタム用紙サイズ(ステップS1521)、カスタム設定ページ(ステップS1522)を選択すると、実行すべき印刷シーケンスに関する印刷パラメータおよび印刷データを制御する情報がプリンタドライバ114に記憶される。キーボードおよびポインタによるユーザインタフェース・ディスプレイ上での入力によるユーザの選択が完了すると、制御は、ステップS1409に戻され、ステップS1410で印刷コマンド・シーケンスを使用するよう指示される。
【0084】
ステップS1409で印刷シーケンスが選択されると、処理はステップS1410に進む。ステップS1410で、プリンタドライバ114は、それ自体に記憶されている、記録ヘッドの構成、記録ヘッドの位置合わせ、媒体のタイプおよびサイズ、目標画像に関する情報に基づいてコマンドのシーケンスを生成する。これらのコマンドはプリンタ30内のプリンタ制御機構140(図11参照)へ送信される。プリンタ内で、プリンタ制御機構140は、これらのコマンドとプリンタROM122からのファームウェアとを受信し、プリンタエンジン131でコマンド・タスクを実行させる。
【0085】
印刷コマンド・シーケンスは、各印刷ジョブごとに定義された印刷データをプリンタドライバ114からプリントバッファ139へ転送することを含む。印刷データの転送は、プリンタ30内の受信バッファなしで実行される。次のスキャンに関する印刷データは、現在の走査における記録ヘッドのランプアップ時にプリントバッファ139内の現在のスキャンの空記憶位置へ送信される。
【0086】
簡単に言えば、ステップS1410でコマンドが転送されるプリントバッファは、各記録ヘッドごとの現在の走査による印刷位置に対応する1組の記憶位置を含む。プリンタドライバは、プリントバッファ内の現在の走査による空記憶位置を識別し、記録ヘッドの現在の走査ためのランプアップ期間中に、記録ヘッドの次の走査に関する印刷データを、識別された空記憶位置へ送信する。本発明による印刷コマンド・シーケンスでの印刷データ転送については第9.0節で詳しく説明する。
【0087】
ステップS1410のコマンド・シーケンスは、記録ヘッド130aおよび130bの印刷解像度を設定するコマンドを含む。このようなコマンドは、記録ヘッド用のプリントバッファに記憶されているデジタルデータに基づいてインク滴のサイズを制御し、記録ヘッド用のプリントバッファから印刷データを読み取る順序を制御することによって設定される。具体的には、第1および第2の記録ヘッドを有するプリンタで印刷解像度を制御する方法は、第1および第2の記録ヘッドの解像度を互いに独立に制御することを含む。プリントバッファに記憶されているデジタルデータに基づいてインク滴を吐出するインクジェット記録ヘッドでは、インク滴サイズを制御しプリントバッファからの読出し順序を制御することによって解像度が制御され、液滴のサイズおよび読出し順序は各記録ヘッドごとに独立に制御される。印刷解像度の制御については第10.0節で詳しく説明する。
【0088】
さらに、ステップS1410の印刷コマンド・シーケンスで、プリンタドライバ114は、隣接する画素のマルチレベル画像データの分析に基づいて、目標の画素を印刷する際に使用すべきインクの種類を選択する。一例を挙げれば、画像中の色画素に囲まれた黒目標画素については染料ベースのインクを選択することができ、それに対して黒画素に囲まれた黒目標画素については顔料ベースのインクを選択することができる。
【0089】
簡単に言えば、本発明に従うマルチレベル画像に対応する画素の印刷を制御する方法は、目標画素に関するマルチレベル画像データと目標画素に隣接する画素に関するマルチレベル画像データとに基づいて、目標画素を染料ベースのインクを使用して印刷すべきか、それとも顔料ベースのインクを使用して印刷すべきかを判定することと、染料ベースのインクを使用して目標画素を印刷すべきであると判定された場合に染料ベースのインクを使用して目標画素を印刷するようプリンタに命令することと、顔料ベースのインクを使用して目標画素を印刷すべきであると判定された場合に顔料ベースのインクを使用して目標画素を印刷するようプリンタに命令することとを含む。画素印刷の制御については第11.0節で詳しく説明する。
【0090】
1ページの印刷が完了すると、フローは図14のステップS1411に進み、用紙排出コマンドに応答してプリンタ30からそのページが出力される。プリンタ30は次いで、第4.0節で説明するようにトレイ上のばねによって調節可能に位置決めされた一対の傾斜した引込み可能フラップにこのページを排出する。あるページが、印刷時にトレイ上に移動する際、すでに排出されているページ上に摺動するレベルは、そのページが記録ヘッド領域で湾曲しないようにフラップの下向き移動によって維持される。そのような湾曲によって、印刷中の画像が歪む恐れがある。さらに、用紙排出トレイは、格納およびセットアップを容易にする構造を有する。
【0091】
したがって、本発明に従うこの態様は、媒体送り部および媒体排出ポートを規定するハウジングを有するプリンタ用の排出トレイであり、この場合、ハウジングは、プリンタエンジンを記録媒体上への印刷が可能になるように収納するように構成される。この排出トレイは、プリンタのハウジングの、媒体排出ポートから横方向に離れた位置に摺動可能に受容することのできるべースを含む。ベースは、その摺動方向へ延びる少なくとも一対の凹部を含む。排出トレイには一対のフラップも含まれる。一対のフラップはそれぞれ、ベースと排出ポートとの間の横方向距離に対応する少なくとも1つの幅部分を有する。各フラップは、ベースの対応する凹部にヒンジ止めされ、ばねを介して上向きにバイアスされる。このばねは、ベースに対するフラップの斜め方向の運動を可能にする。ベースがハウジングから摺動すると、フラップが凹部から上向きに、媒体排出ポートの位置に対応する高さにバイアスされる。
【0092】
図16は、印刷を行いプリンタ30を操作するためにプリンタドライバ114によって生成されるコマンド・シーケンスを詳しく示すフローチャートである。図16において、ステップS1601でプリンタ初期設定コマンドによって印刷コマンド・シーケンスが開始され、このコマンドがプリンタ制御機構140へ送信されプリンタ動作がリセットされる。次いで、用紙装填コマンド(ステップS1602)がプリンタ制御機構140に与えられ、プリンタ制御機構は、選択ステップS1603で用紙装填動作を選択し、用紙装填開始を実行する(ステップS1604)。ステップS1605で、プリンタ制御機構140で用紙装填終了が検出されると、用紙装填終了を示す信号がプリンタドライバ114へ送信され、ステップS1606で記録ヘッド130aおよび130bの第1のスキャンに関する印刷データが作成される。プリンタ制御機構140は、このスキャン準備についての通知を受ける。プリンタドライバ114での印刷データの準備は、1997年7月28日に出願された「カラープリンタのためのプリントドライバ(Print Driver For A Color Printer)」と題する米国特許出願第08/901719号に詳しく記載されている。決定ステップであるステップS1607ではスキャンに関する印刷データが決定されない場合、ステップS1608で、プリンタドライバ114で仮想スキップが実行される。ステップS1609でページ終了が検出されないとき、制御はステップS1607に戻される。ページ終了が検出されるまで、ステップS1610〜S1614およびS1608が実行される。
【0093】
ステップ1610で、正しい印刷データを印刷できるようにプリンタドライバ114からプリンタ制御機構140に実際のスキップ・コマンドが与えられる。プリンタ制御機構140は、実際のスキップ動作を選択し(ステップS1603)、実際のスキップを実行する(ステップS1615)。次いで、プリンタドライバ114でスキャン設定が実行され(ステップS1611)、プリンタ制御機構140が通知を受ける。次に、プリンタドライバ114で生成された印刷データおよび印刷データに関するプリントバッファ・アドレスがプリンタ制御機構140へ転送され、プリンタ制御機構はこの情報をプリントバッファ139に記憶する(ステップS1612)。次いで、プリンタドライバ114で次のスキャンが準備され、プリンタ制御機構140が通知を受ける(ステップS1613)。次いで、プリンタドライバ114で生成された印刷コマンドがプリンタ制御機構140へ送信される。これに応答して、プリンタ制御機構140は、ステップS1619で印刷動作を選択し、ステップS1614で印刷タスクを実行する。次いで、ステップS1608でプリンタドライバ114によって仮想スキップが実行され、印刷中のページの行が追跡される。決定ステップであるステップS1609においてページ終了が判定されると、プリンタドライバ114からプリンタ制御機構140へページ排出コマンドが送信され、プリンタ制御機構はページ排出動作を選択し(ステップS1616)、ページ排出を開始する(ステップS1617)。ページ排出が完了すると(ステップS1618)、プリンタドライバ114が、ページ排出が完了したという通知を受け、制御が図14のステップS1409に渡される。
【0094】
図17は、スキャン設定ステップS1611で図16の現在の走査に使用される1組のコマンドを示すフローチャートである。図17を参照するとわかるように、ステップS1701で[SPEED]コマンドが発行されて走査速度が設定され、[DROP]コマンドが発行されて(ステップS1702)一方の記録ヘッド(A)に対する液滴サイズが設定され、別の[DROP]コマンドが発行されて(ステップS1703)もう一方の記録ヘッド(B)に対する液滴サイズが設定される。ステップS1704およびS1705で、[SELECT_PULSE]コマンドが発行されて印刷に関する加熱パルスが設定され、[PCR]コマンドが発行されて温度テーブル調整のためのパルス制御比が設定される。ステップS1706およびS1707で[SELECT_CONTROL]コマンドが発行されて各記録ヘッド用のバッファ制御機構が選択され、記録ヘッド・ノズルの射出時間が決定される。ステップS1708およびS1709で[DEFINE_BUF]コマンドが発行され、記録ヘッド130aおよび130bのそれぞれのプリントバッファが定義される。したがって、スキャン設定などのプリンタ動作の各態様は、記録ヘッドの構成および印刷モードを考慮に入れてホストプロセッサ・プリンタドライバ114によって制御される。それによって、プリンタ30によって実行されるタスクは、プリンタ・アーキテクチャが大幅に簡略化されコストが低減するようにプリンタドライバ114によって詳しく定義される。
【0095】
ページを2色記録ヘッドでカラー・モードで印刷するためのホストプロセッサ32からプリンタ30へのコマンド・シーケンスの例は、図18に示した表Aに記載されている。最初に、表Aに示したように、現在時刻が[UCT]コマンドによって設定され、プリンタ30が[RESET]コマンドによってリセットされる。[COMPRESS]コマンドによってデータ圧縮が選択され、印刷データがパックされる。[DEFINE_BUF]コマンドによって記録ヘッド130aおよび130b用のプリントバッファが定義される。[DEFINE_PULSE]コマンドおよび[DEFINE_CONTROL]コマンドによって、記録ヘッド構成のカラーモードに関する加熱パルスおよびバッファ制御テーブルが定義される。
【0096】
前述の初期設定コマンドに関するプリンタ・タスクが実行された後、ページまたはその他の記録媒体を装填するための用紙装填コマンド[LOAD]と、第1の記録ヘッド・スキャンの印刷位置にスキップするためのラスタ・スキップ・コマンド[SKIP]がプリンタ30へ送信され、記録ヘッド130aおよび130bの印刷の印刷方向およびエッジが第1のスキャン向けに設定される。次いで、コマンドのループが送信され、ページの行を印刷するプリンタ・タスクが制御される。各行についてのループの第1の部分で、その行に関するスキャン・パラメータは図17に関して説明するように設定される。バッファ制御テーブル選択コマンド[SELECT_CONTROL]に関するプリンタ・タスクが完了した後、[BLOCK]コマンドによって印刷データ・ブロックが選択され、記録ヘッド130aおよび130bの決定された印刷領域に応じて色選択コマンド[COLOR]およびデータ伝送コマンド[DATA]を繰り返すことによって、印刷色が選択され伝送される。
【0097】
次いで、[DIRECTION]コマンドおよび[EDGE]コマンドによって第2の走査の方向ならびに第2の走査の印刷領域の左エッジおよび右エッジが設定される。この時点で、ホストプロセッサ23からプリンタ30へ[PRINT]コマンドが転送されて第1のスキャンの印刷が実行され、[SKIP]コマンドが送信されて第2のスキャンの印刷位置へのスキップが行われる。最後の行が印刷されると、プリンタ30に用紙排出コマンドが与えられ、用紙排出が実行される。
【0098】
スキャン設定動作のコマンド・シーケンスと、本発明による印刷動作の例からわかるように、スキャン設定や印刷など印刷動作の各態様は、記録ヘッドの構成および印刷モードを考慮に入れてプリンタドライバ114によって制御される。それによって、プリンタ30によって実行されるタスクは、プリンタ・アーキテクチャが大幅に簡略化されコストが低減するようにプリンタドライバ114によって詳しく定義される。
【0099】
図14に戻るとわかるように、ステップS1409でプリンタ状況要求が判定されると、フローはステップS1412に進む。ステップS1412で、プリンタ状況コマンド・シーケンスが実行される。プリンタ状況情報を求める要求を与える状況コマンドについては第3.6節で詳しく説明する。一般に、各状況コマンドは、プリンタ動作に関する情報、またはプリンタ30に記憶されている情報を要求するためにホストプロセッサ23からプリンタ30へ送信される。たとえば、ベース状況コマンド[BASE−STATUS]はプリンタの現在の状況を要求する。これに応答して、プリンタ30は、印刷状況、プリントバッファ139がデータを受信できるか否か、プリンタ30が立上げを実行中であるかどうか、カートリッジ交換、記録ヘッドの清掃、試験印刷、エラーまたはアラームが検出されたかどうかなどのうちの1つを示す1データ・バイトを返す。[HEAD]コマンドは、記録ヘッドの構成を返すよう要求し、[DATA_SEND]コマンドは、EEPROMデータをホストプロセッサ23に返すよう要求する。ステップS1412で、要求されたデータが返された後、制御はステップS1406に戻される。
3.0 プリンタソフトウェアのアーキテクチャ
プリンタ30の機能に対する制御は、CPU121上で実行される個別のプログラムによって行われる。このような個別のプログラムには、電源オン時に実行されるルーチンなどの初期設定ルーチンと、ホストプロセッサ23から受信されたコマンドに割り込むタスクと、リアルタイム・ハードウェア割込みを処理するハンドラなどの割込みハンドラと、ホストプロセッサ23との双方向通信を制御するハンドラなどサイクリックプロセスを処理するサイクリックハンドラとが含まれる。
【0100】
プリンタCPU121はさらに、個別の各プログラム(すなわち、初期設定ルーチン、タスク、割込みハンドラ、サイクリックハンドラ)の実行を調整するようにオペレーティングシステムを実行する。オペレーティングシステムは、メッセージなどを通してプログラム間通信に責任を負い、必要に応じてあるプログラムからの実行を他のプログラムに切り替えるようにプログラム間切替えに責任を負う。オペレーティングシステムの詳細を以下に記載する。
3.1 オペレーティングシステム
オペレーティングシステムは、プリンタ制御プログラムをモジュール化し、保守、継承、拡張を推進するように作成されたリアルタイム・オペレーティングシステム(あるいは「カーネル」または「モニタ」)である。リアルタイム・オペレーティングシステムは、プリエンプティブ・マルチタスク・ソフトウェア環境を与えるシステムソフトウェアであり、この環境では、現在実行中のプログラムをより優先順位の高い他のプログラムに切り替えるために中止することができる。
【0101】
オペレーティングシステムによって4つの異なる種類のプログラムを使用することができ、これらのプログラムはそれぞれ、プログラムの特定の種類に応じてオペレーティングシステムによって実行される。これらの種類には、初期設定ルーチンと、タスクと、割込みハンドラと、サイクリックハンドラとが含まれる。初期設定ルーチンとは、プリンタ30がリセットされた直後に、オペレーティングシステムがそれ自体を初期設定した後にオペレーティングシステムによってスケジューリングされるルーチンである。タスクとは、順次実行される連続処理の通常のプログラム(場合によっては「実行ユニット」と呼ばれる)である。したがって、タスクは、多重プログラミング環境または多重処理環境でCPU121によって実行される作業単位としてオペレーティングシステムによって処理される1つまたは複数の命令シーケンスである。並行処理が見掛け上実行されているようにみえるのは、オペレーティングシステムが処理を個別のタスク単位でスケジューリングすることによってなされるためである。
【0102】
割込みハンドラとは、(通常は短い)プログラム単位であり、ハードウェア割込みを受信した直後にオペレーティングシステムによって起動される。サイクリックハンドラは割込みハンドラに類似しているが、ハードウェア割込みによって起動されるのではなく、オペレーティングシステムのタイマ割込みによって起動される。
【0103】
プリンタ30がリセットされたとき、CPU121によって最初に実行されるソフトウェアはオペレーティングシステムである。所定の要件に従ってCPUレジスタが設定され、次いで、ユーザ定義初期設定ルーチンが存在する場合にはそのルーチンが実行される。その後、制御がオペレーティングシステムに戻り、オペレーティングシステムはシステム内の各タスクを起動する。そのような1つのタスクは開始タスクである。開始タスクが開始した後、システムコールが発行されるか、あるいは割込みが行われるたびにオペレーティングシステムが起動される。システムコールが実行されるか、あるいは割込みが処理された後、実行がオペレーティングシステムに戻り、オペレーティングシステムは、最高優先順位の実行可能なタスクを実行するようにタスクをスケジューリングする。
【0104】
タスクのスケジューリングでは、現在実行される資格を有する複数のタスクがある場合にどのタスクを実行するかが判定される。より優先順位の高いタスクが、より優先順位の低い他のすべてのタスクより前に実行されるように割り当てられた優先順位に従って、タスクがスケジューリングされる。実行される資格を有するが、優先順位レベルが低いために現在実行されていないタスクは、その優先順位に基づいて準備完了待ち行列に入れられる。
【0105】
各タスクは、新たに実行される資格を有すると、準備完了待ち行列の最後に置かれる。次いで、タスクから発行されたシステムコールからリターンしたとき、または割込み処理からタスクにリターンしたときにスケジューリングが実行される。いずれの場合も、新しいタスクを待ち行列に入力するか、あるいはすでに待ち行列に存在しているタスクの優先順位を変更することができる。スケジューリングによって、各タスクの優先順位に基づいてタスク待ち行列内のタスクが順序付けされ、最高優先順位のタスクが、現在実行可能な実行タスクになる。準備完了待ち行列内に同じ優先順位のタスクが2つ以上ある場合、どのタスクを選択すべきかに関する決定は、どのタスクが最初に待ち行列に入力されたかに基づいて下される。
【0106】
オペレーティングシステムは、セマフォを1つの基本的なタスク間通信手段として使用し、かつタスク間の制御または同期に使用する。タスクは、メッセージを使用してタスク同士の間でデータを伝達し転送することもできる。あるタスクによってメールボックスへメッセージが送信され、そのメッセージを受信する必要のあるタスクが、そのメッセージを得られるようにメールボックスに受信要求を発行する。
【0107】
オペレーティングシステムはさらに、イベントフラグを使用してタスクを同期させる。あるイベントに基づいて待機状態から解除される必要のあるタスクは、イベントフラグパターンを登録することができ、オペレーティングシステムは、そのフラグパターンが発生したときにそのタスクを待機状態から解除する。
【0108】
オペレーティングシステムによる割込み管理は、割込みハンドラおよび割込み許可レベル設定によって行われる。時間管理は、オペレーティングシステムがシステムタイマに基づいて割込みハンドラを起動することによって行われる。
【0109】
サイクリックハンドラは、オペレーティングシステムに登録されているサイクリックハンドラに基づいて、指定された各時間間隔に処理を実行する。通常、サイクリックハンドラは短いプログラムであり、指定された各時間間隔に実行されるタスクを指定する。
【0110】
プリンタ30に好ましい初期設定ルーチン、タスク、割込みハンドラ、サイクリックハンドラについては以下の節で説明する。
3.2 初期設定
電源投入時に、初期設定機能が実行され、制御論理124の初期設定、ROM122の検査、RAM129の検査、EEPROM132の検査など、プリンタ30が初期設定される。
【0111】
図19および図20はそれぞれ、ハード電源オン・シーケンスとソフト電源オン・シーケンスを示す。なお、プリンタ30に電力が供給されるかぎり、電源ボタン44の状況にかかわらずCPU121がソフトウェアを実行することに留意されたい。したがって、「ハード電源オン」は、最初にプリンタ30に電源を投入することを指す。その後、ユーザが電源ボタン44を作動させることによって、ソフト電源オンまたはソフト電源オフが行われるに過ぎない。この構成は、プリンタ30が、「オフ」であるときでも実行中のイベント(経過時間など)を監視することができるので好ましい。
【0112】
ハード電源オン・シーケンスを示す図19において、最初に電源が投入された後、ステップS1901で、ROM検査、RAM検査、EEPROM検査などのメモリ検査が実行される。ステップS1902でソフトウェア・タスクが初期設定され、ステップS1903で、CPU121がアイドル・ループに入り、ソフト電源オンを待つ。
【0113】
図20は、ソフト電源オン・シーケンスを示す。ステップS2001で、ホーム位置へのリセットなどプリンタエンジン131の機械的初期設定が実行され、ステップS2002で、セントロニクス通信タスクを含むソフトウェア制御タスクが開始され、ステップS2003で主処理モードに入る。
【0114】
図21はソフト電源オフ・シーケンスを詳しく示す。ステップS2101ですべてのソフトウェア・タスクが終了し、ステップS2102でアイドル・ループに入り、その間ステップS2103で、プリンタ30は次のソフト電源オン・シーケンスを待つ。
3.3 タスク
本発明の好適な実施形態では、プリンタ・タスクは、各タスクがプリンタ制御の単一のコヒーシブ態様に責任を負うように機能を分離するように設計される。一般的に言えば、タスクは3つの概念群、すなわちエンジンタスク、コントローラタスク、その他のタスクに分割することができる。
【0115】
エンジン関連タスクに関しては、キャリッジを移動させるキャリッジモータ66を制御するタスクと、用紙を進めるラインフィードモータ61を制御するタスクと、インク吸入、パージなど、記録ヘッド130aおよび130bの紙送り動作と清掃動作の両方を制御するタスクが与えられる。他のタスクは、プリンタエンジン131から他のタスクへメッセージを伝送し、他のタスクからのメッセージに基づいてプリンタエンジン131を制御する。
【0116】
制御タスクに関しては、ホストプロセッサ23から受信されたコマンドを解釈するタスクが与えられる。このようなコマンドについては以下の第3.6節で詳しく説明する。必要に応じて試験関連タスクを与えることができる。
【0117】
その他のタスクに関しては、上記第3.2節で論じた初期設定タスクがプリンタ30を初期設定する。プリンタ30に関する表示を制御し、プリンタ30のフロントパネル上のボタンに対応するキー・スイッチを走査してその状況を検出し、ホストコンピュータ・インタフェース141および入出力ポート・ユニット127に関するハードウェアを初期設定し、セントロニクス出力信号を制御し、このような信号に割り込みその信号を他のタスクに伝送する他のタスクが与えられる。エンジン制御タスクおよび通信タスクを制御するタスクが与えられる。また、このタスクは他のタスクを開始し、中止し、再開する。アイドル・タスクは、基本的に何もせず、他のタスクが待機状態でないときにオペレーティングシステムによって使用できるように与えられる。
【0118】
タスク同士の間のインタフェースおよびその他の通信は、メッセージが入れられるメールボックスとセマフォを使用してメッセージ通信を調整することによって行われる。この構成を図22に示す。図22には、コントローラタスク201、ユーザインタフェース・タスク202、双方向通信タスク204、その他のタスク205、エンジンタスク206が示されている。タスク群中の各タスクは、関連するメールボックスを有する。メールボックスは図22に概略的に示されており、この図で、210は、コントローラタスク201中の各タスク用のメールボックスを示し、213は、ユーザインタフェース・タスク202中の各タスク用のメールボックスを示し、215は、通信タスク204中の各タスク用のメールボックスを示し、217は、その他のタスク205中の各タスク用のメールボックスを示し、219は、エンジンタスク206中の各タスク用のメールボックスを示す。エンジンタスク206を除いて、メールボックスへ送信されるメッセージおよびメールボックスから検索されるメッセージの調整はセマフォによって制御される。エンジンタスク206の場合、メモリ使用状況を検出すれば十分であるのでセマフォは使用されない。
【0119】
各メールボックスは、他の各タスクからメッセージを受信するように構成され、さらに、関連するタスクへメッセージを転送するように構成される。したがって、メールボックス210は、ユーザインタフェース・タスク202、通信タスク204、その他のタスク205、エンジンタスク206からメッセージを受信することができ、そのメッセージをタスク群201中の関連するタスクへ送達することができる。同様に、メールボックス213は、コントローラタスク201、通信タスク204、その他のタスク205、エンジンタスク206からメッセージを受信し、そのメッセージをユーザインタフェース・タスク202中の関連するタスクへ送達するように構成される。同様に、メールボックス215は、コントローラタスク201、ユーザインタフェース・タスク202、その他のタスク205、エンジンタスク206からメッセージを受信し、そのメッセージを通信タスク204へ送達するように構成される。同様に、メールボックス217は、コントローラタスク201、ユーザインタフェース・タスク、通信タスク204、エンジンタスク206からメッセージを受信し、そのメッセージをその他のタスク群205中の関連するタスクへ送達するように構成される。最後に、メールボックス219は、コントローラタスク201、ユーザインタフェース・タスク、通信タスク204、その他のタスク205からメッセージを受信し、そのメッセージをエンジンタスク206中の関連するタスクへ送達するように構成される。
3.4 割込みハンドラ
オペレーティングシステムは、定期的なクロック割込みに関するハンドラなどの割込みハンドラに対処できるが、そのようなサイクリックイベントをサイクリックハンドラを用いて処理することもできる。
3.5 サイクリックハンドラ
図示し、上記で図22に関連して説明したように、通信タスク204およびユーザインタフェース・タスク202に関するサイクリックハンドラが与えられる。
【0120】
コントローラタイマ動作に関するサイクリックハンドラも与えられる。図23は、このサイクリックハンドラによるコントローラタイマ制御を示すフローチャートである。図23に示したように、10ms割込みが受信されると、サブヒータ制御が実行される。サブヒータ制御の目的は、プリンタ30内の各記録ヘッド(すなわち、記録ヘッド130aおよび130b)の温度を目標温度に調整することである。これは、計算ヘッド温度と目標ヘッド温度との間の差に基づいてサブヒータ駆動時間を設定することによって行われる。
【0121】
図23に示した50ms毎の割込みは、各ヘッドで供給されるヘッド駆動パルスの量に基づいて、各ヘッドごとにヘッド温度を算出する。計算は、ROM122内の事前に記憶されたテーブルに基づいて行われ、このテーブルは、ヘッドの射出に基づいて温度の増減を計算する際に使用できる定数を提供する。
【0122】
50ms毎の割込みはさらに、各印刷ノズルに対する予熱パルスと各ノズルに対する実際の主パルス幅を設定するようにROM122内の事前に記憶されたテーブルに従ってパルス幅変調制御を行う。その場合、パルスパラメータは制御論理124へ送信される。
【0123】
50ms毎の割込みはさらに、予熱パルスの幅および主パルスの幅が、記録ヘッドを損傷する限界を超えないようにヘッド保護制御を行う。
【0124】
図23に示したように、500ms毎の割込みは主加熱制御を行う。やはり図23に示したように、1秒毎の割り込みは、環境の温度を算出し、次いで算出した環境の温度に基づいて目標温度を更新する。
【0125】
10msという時間間隔、50msという時間間隔、500msという時間間隔、1秒という時間間隔がそれぞれ、例示的なものに過ぎず、変更できることに留意されたい。
3.6 ホストプロセッサへのコマンドおよびホストプロセッサからのコマンド以下に、双方向プリンタインタフェース104を介してホストプロセッサ23との間で送信されるコマンドについて要約する。一般的に言えば、各コマンドは1つまたは複数のパラメータを含み、いくつかのコマンド([DATA]画像データ伝送コマンドなど)はデータも含む。
【0126】
状況要求コマンド[STATUS]は汎用コマンドであり、双方向インタフェース104を介してプリンタ30に応答を要求する。ホストプロセッサ23は、状況要求コマンドを使用することによって、EEPROM132の内容、位置合わせセンサおよび密度センサの結果など、プリンタ30に関する詳細な情報を得ることができる。したがって、状況要求コマンドについて以下で詳しく論じる。
【0127】
以下の節では、各コマンドの略号が、角括弧("[ ]")に囲まれて示されている。以下に示す略号は一例に過ぎない。コマンド略号を形成するために使用される文字の実際のシーケンスおよび組合せは、プリンタ側とホストプロセッサ側の一方から送信されたコマンドを他方が理解できるように使用法が両方の側で整合しているかぎり重要ではない。
3.6.1 制御コマンド
制御コマンドは、プリンタ30の印刷動作を制御する働きをする。以下に、様々な制御コマンドについて説明する。
[LOAD]−用紙装填
装填コマンドは、用紙を装填させるが、現在装填されている記録媒体を排出することはない。媒体がすでに手動で装填されているときでも、このコマンドをプリンタ30へ送信しなければならない。
[EJECT]−用紙排出
このコマンドは、プリントバッファに残っているすべてのデータを印刷し、次いで現在装填されている媒体を排出する。
[PRINT]−印刷実行
印刷実行コマンドは、現在装填されている記録媒体上にプリントバッファ内のデータを印刷させる。印刷領域は、後述の[EDGE]コマンドの左パラメータおよび右パラメータによって指定された各プリントバッファの左縁から右縁まで延びる。
[CARRIAGE]−キャリッジ移動
キャリッジ移動コマンドは、キャリッジの位置を列位置単位で指定する位置パラメータを含む。このコマンドは、往路方向および復路方向シークに使用される。
[SKIP]−ラスタスキップ
ラスタスキップ・コマンドは、スキップ・パラメータによって指定されたラスタ行の数だけ垂直印刷位置を進めるために使用される。
[DATA]−画像データ伝送
このコマンドは、イエロ(Y)、マゼンタ(M)、シアン(C)、または黒(BkまたはK)のビット画像データを個別に列画像フォーマットでプリンタ30へ伝送するために使用される。このコマンドの複数のシーケンスを発行して単一の走査ラインを生成することができる。ビット画像データは、後述のブロックコマンド[BLOCK]およびカラーコマンド[COLOR]によって指定された領域に記憶される。プリンタ30は実際には、[PRINT]コマンドを受信したときに印刷を開始する。
3.6.2 設定コマンド
設定コマンドは、プリンタ30によって実行される印刷動作の設定を指定する。このコマンドは、設定された後、他のコマンドによって設定が変更されるまで有効である。ページに関する設定が与えられない場合、設定は省略時設定にリセットされる。設定コマンドについて以下で詳しく説明する。
[RESET]−プリンタリセット
モード・パラメータは、プリンタリセット・コマンドを定義しリセットモードを指定する。データ圧縮フラグ、バッファサイズ、液滴サイズ、印刷速度、パルス制御テーブル、バッファ制御テーブルなどの省略時設定が含まれる。
[COMPRESS]−選択データ圧縮
データ圧縮選択コマンドのモード・パラメータは、画像データを圧縮するかどうかを指定する。「圧縮しない」が省略時設定である。
[DEFINE_BUF]−プリントバッファ定義
プリントバッファ定義コマンドは、ヘッドAおよびBのそれぞれについて共通的にメモリサイズおよびプリントバッファ139の構成を定義するために使用される。
[DROP]−液滴サイズ選択
このコマンドは、各記録ヘッドごとにインク滴サイズ(大小)を指定するために使用される。
[SPEED]−印刷速度選択
このコマンドは印刷速度を指定するために使用される。
[DIRECTION]−印刷方向設定
このコマンドの方向パラメータは、印刷を往路方向に(左から右へ)行うか、それとも復路方向(右から左へ)へ行うかを指定する。
[EDGE]−印刷エッジ設定
印刷エッジ設定コマンドは、印刷位置の左縁および右縁を列位置単位で指定する。左縁は右縁よりも小さな値でなければならない。
[BLOCK]−印刷ブロック選択
このコマンドは、データブロックの左縁および右縁を各プリントバッファの頂部からの列位置単位で指定するために使用される。[BLOCK]コマンドは、[DATA]コマンド(前述)の後に続くビット画像をどこに記憶するかも指定する。
[COLOR]−印刷色選択
このコマンドは、[DATA]コマンド(前述)の後に続くビット画像が記憶される、色に対応したプリントバッファ139内の位置を指定するために使用される。
[DEFINE_PULSE]−加熱パルステーブル定義
[DEFINE_PULSE]コマンドは、複数の異なる加熱パルス・ブロックテーブルを定義するために使用される。パルス・ブロックテーブルは、プリンタ30が後述の[SELECT_PULSE]コマンドを受信する前に定義しておかなければならない。
[SELECT_PULSE]−加熱パルステーブル選択
加熱パルス・テーブル選択コマンドは、前述の[DEFINE_PULSE]コマンドによって定義された複数のテーブルから、すべてのヘッドに共通する1つの加熱パルスブロックテーブルを選択するために使用される。
[DEFINE_CONTROL]−バッファ制御テーブル定義
このコマンドは、複数の異なるプリントバッファ制御テーブルを定義するために使用される。プリントバッファ制御テーブルは、プリンタが[SELECT_CONTROL]コマンド(後述)を受信する前に定義しておかなければならない。
[SELECT_CONTROL]−バッファ制御テーブル選択
このコマンドは、[DEFINE_CONTROL]コマンドによって定義された複数のテーブルから、記録ヘッド130aおよび130bのそれぞれについてのプリントバッファ制御テーブルを選択するために使用される。
3.6.3 保守コマンド
保守コマンドは、プリンタ30の印刷動作を保守する働きをする。このコマンドについて以下で詳しく説明する。
[RECOVER]−ヘッド回復
このコマンドを受信すると、プリンタ30は、清掃動作やインク吸入動作などのヘッド回復モードに入る。
[PCR]−パルス制御比変更
このコマンドは、パルス制御テーブルの比率を変更するために使用される。各比率は1ないし200に設定することができ、これは1%ないし200%を意味する。省略時設定は100であり、これは100%を意味する。
[UCT]−協定世界時
このコマンドは、プリンタ30内の現在時間を設定するために使用され、印刷ジョブ開始時にプリンタ30へ送信しなければならない。プリンタ30はこの時間を使用して、記録ヘッドを回復すべきかどうかを判定する。この時間値は、ホストプロセッサ23のシステム・クロックによる、1970年1月1日の深夜12時(00:00:00)からの経過秒数、すなわち標準座標時間(UCT)として表される。
[SCAN]−スキャン・センサ
このコマンドは、自動位置合わせセンサ値を読み取り、結果をホストプロセッサ23へ送り返すために使用される。スキャン速度、方向、解像度、面積はそれぞれ、前述のように[SPEED]コマンド、[DIRECTION]コマンド、[DEFINE_BUF]コマンド、[EDGE]コマンドによって定義される。
[NVRAM]−NV−RAM制御
このコマンドは、EEPROM132からデータを読み取り、読み取ったデータをホストプロセッサ23へ送り返すために使用される。
[STATUS]−状況要求
このコマンドは、プリンタ30へ状況要求を送信するためのプレフィックス・コマンドとして使用される。基本設定、主要状況、詳細状況を求める要求を出すことができる。
【0128】
基本設定コマンドは、プリンタ30を設定するためにホストプロセッサ23によって使用されるコマンドであり、必ずしもプリンタ30からの応答を必要としない。
【0129】
主要状況要求/応答コマンドは、通常モードで状況情報を得るために使用され、基本状況[BASE_STATUS]と、エコー・コマンド[ECHO]と、記録ヘッド構成[HEAD]と、位置合わせセンサ結果[SENSOR_RESULTS]と、ホストへのEEPROMデータ送信[DATA_SEND]と、ホストへのシフトバッファサイズ送信[BUFFER_SIZE]とを含む。主要状況要求/応答コマンドが発行されるたびに、応答が自動的にホストプロセッサ23に返される。
【0130】
詳細状況要求/応答コマンドは、詳細な状況情報を得るために使用される。このコマンドには、詳細ジョブ状況[JOB_STATUS]と、詳細ビジー状況[BUSY_STATUS]と、詳細警告状況[WARNING_STATUS]と、詳細オペレータ・コール状況[OPERATOR_CALL]と、詳細サービス・コール状況[SERVICE_CALL]とが含まれる。主要状況要求/応答コマンドと同様に、詳細状況要求/応答コマンドが発行されるたびに、応答が自動的にホストプロセッサ23に返される。
3.7 プリンタエンジンへのコマンドおよびプリンタエンジンからのコマンド
ホストプロセッサ23およびプリンタ30は、メールボックス219にメッセージを挿入することによってプリンタエンジン131へコマンドを送信する(図22参照)。メッセージはエンジンタスク206によって処理される。
4.0 用紙排出トレイ
簡単に言えば、本発明のこの態様は、本明細書で説明するプリンタと共に使用される排出トレイである。構造的には、プリンタは、媒体送り部と媒体排出ポートとを規定するハウジングを含み、その場合、ハウジングは、記録媒体上への印刷を行うプリンタエンジンを収納するするように構成される。排出トレイは、プリンタのハウジング内の、媒体排出ポートからシート排出方向に離れた位置で摺動可能に受容することのできるベースを含む。ベースは、その摺動方向へ延びる少なくとも一対の凹部を含む。排出トレイには一対のフラップも含まれる。一対のフラップはそれぞれ、ベースと排出ポートとの間のシート排出方向の距離に対応する少なくとも1つの幅部分を有する。各フラップは、ベースの対応する凹部にヒンジ止めされ、ばねを介して上向きにバイアスされる。このばねは、ベースに対するフラップの斜め方向の運動を可能にする。ベースがハウジングから摺動すると、フラップが凹部から上向きに、媒体排出ポートの位置に対応する高さにバイアスされる。
【0131】
以下で詳しく説明するように、前述の構成は用紙排出トレイの容易なセットアップおよび格納を可能にする。また、前述の構成は、プリンタから排出された用紙がプリンタの排出領域をブロックして塞ぐ可能性を低減する。
4.1 第1の実施形態
図24は、用紙排出トレイ41が使用できるようにセットアップされたプリンタ30の斜視図である。この点では、図1および図24に示したプリンタ30に関して本発明の用紙排出トレイについて説明するが、任意の種類の装置(たとえば、ファクシミリ装置など)から排出された紙または他の種類の記録媒体を受容するために本発明の用紙排出トレイを使用できることに留意されたい。なお、説明を容易にするために、本発明については他の種類の記録媒体ではなく紙に関して説明する。
【0132】
図25Aは、用紙排出トレイ41の詳細な斜視図である。図に示したように、用紙排出トレイ41は、ベース240と、2つのフラップ241aおよび241bと、ばね242aおよび242bと、トレー延長部244とを含む。フラップ241aおよび241bはそれぞれ、以下で詳しく説明するように、ベース240の凹部264aおよび264bのうちの一方に一方の縁部でヒンジ止めされる。また、フラップ241aおよび241bはそれぞれ、ばね242aおよび242bを介してベース240に対して上向きにバイアスされる。また、ばね242aおよび242bは、フラップ241aおよび241bのベース240に対する制御された上斜め方向への運動および下斜め方向への運動を可能にする。
【0133】
図26は、フラップ241bとベース240との接続の詳細な側面図である。なお、フラップ241aとフラップ241bは共に、ベース240に同様にヒンジ止めされる。したがって、本明細書ではフラップ241bの接続についてのみ説明する。具体的には、フラップ241bは、その各端部に配設され、ベース240の凹部264bの対応する受容穴(図示せず)にはまるダウエル246および247を介してヒンジ止めされる。これらのダウエルは、その周りをフラップ241bがベース240に対して斜めに回転する軸を形成する。
【0134】
図26に示したように、フラップ241b上には中央ロッド248も含まれる。ばね242bは、中央ロッド248の周りに巻かれ、フラップ241bとベース240の両方に接続される。ばね242bの固有の張力のために、用紙排出トレイ41がハウジング31の外側にあるとき、フラップ241bは凹部264bから上向きにバイアスされる。したがって、フラップ241bは、下向きの力を受けないときにはベース240に対して初期角度をなす。この初期角度の例を参照符号249aおよび249bで表し、図24に示す。本発明の好ましい実施形態では、初期角度は90度よりも小さい。
【0135】
フラップ241aおよび241bに下向きの圧力が加わると、ばね242aおよび242bが圧縮される。しかし、ばね242aおよび242bは、少なくとも所定の量の圧力がフラップ241aおよび242bに加えられるまでフラップ241aおよび241bがベース240に接触するのを妨げる。したがって、フラップ241aおよび241bに圧力が加わると、フラップ241aおよび241bは斜め下向きにベース240の方へ移動するが、制御された仕方でこれを行う。この運動中に、フラップ241aおよび241bのそれぞれとベース240との間の角度は、圧力が十分に大きい場合は初期角度から最終的に0度に減少する。なお、フラップ241aおよび241bのそれぞれを0度に移動するのに必要な圧力の量は、ばね242aおよび242bのうちの対応するばねの張力に基づいて決定される。
【0136】
好ましくは、フラップ241aおよび241bはそれぞれ、ベース240と媒体排出ポート40との間の横方向距離にほぼ対応する幅部を有する。このことを例示するために、図27は、ベース240に対して平坦なフラップ241aおよび241bを示す。具体的には、図27に示したように、フラップ241aは、4つの縁部、すなわちプリンタ30から排出された用紙を支持する頂縁部250と、ベース240に接続する底縁部251と、側縁部254および252(すなわち、上記で指摘した幅部)とをそれぞれ含む。
【0137】
好ましくは、プリンタ30に面する各フラップの縁部、すなわちフラップ241aの側縁部252およびフラップ241bの側縁部252bは面取りされ(たとえば、テーパ付けされ)、図25Aに示したようにプリンタ30から離れる方向へ角度付けされる。具体的には、縁部252および252bが面取りされるので、これらの縁部がプリンタ30のハウジング31に接触すると、縁部がハウジング31に対して摺動し、フラップ241aおよび241bが折り畳まれる。したがって、フラップ241aおよび241bは、正面方向に押す力によってプリンタ30のトレイ・リセプタクル42に押し込まれるほど折り畳まれる。この特徴について以下で詳しく説明する。
【0138】
図25Bは、フラップ241bの縁部252bの詳細図である。上記で指摘し、図25Bに示したように、縁部252bは面取りされ、このことは、縁部252bが頂縁部250bおよびベース240に対して斜めであることを意味する。図25Cおよび図25Dはさらにこの特徴を示す。なお、図25Cはフラップ241bの詳細な側面図である。図25Dは、点線63に沿ったフラップ241bの断面図の、位置A−Aからとった図である。したがって、図25Dに示したように、面取りされた縁部252bは頂縁部250bおよびベース240に対して斜めである。この角度は、図25Dでは255で示され、本発明の好ましい実施形態では約45度である。
【0139】
したがって、トレイ41を格納する際と同様に、排出トレイ41をプリンタ30の方へ押すと、フラップ141aおよび141bの面取りされた縁部が、特定の外縁部272でプリンタ30のハウジング31に接触する。この接触に応答して、横方向に押す追加の力が加わったときに、外縁部272と面取りされた縁部との間の接触によって、フラップ241aおよび241bが下向きにベース240の凹部の方へ押し込まれる。十分な力が加わった場合、フラップ241aおよび241bは、下方の外縁部272をトレイ・リセプタクル42内へ摺動させるほど下向きに押し込まれる。本発明のこの特徴について以下で詳しく説明する。
【0140】
側縁部252は部分253も含み(対応する側縁部252bも同様な部分253bを含む)、この部分は好ましくは面取りもまたは角度付けも施されない。そのような構成は、フラップ241aおよび241bのそれぞれをダウエル(回転軸ピン)246を介してベース240に係合させ、それによって係合時の構造強度を高めるための平坦な表面を形成する。側縁部253および253bは、下方の外縁部272に密着し、したがって排出トレイ41のリセプタクル42への格納に悪影響を与えない。
【0141】
側縁部254は、図示した例では、角度付けもあるいは面取りも施されていない。しかし、必要に応じて用紙排出トレイ41をプリンタ30から引くことを容易にするように縁部254に角度付けおよび面取りを施すことができる。
【0142】
排出された用紙が湾曲する可能性を低減するために頂縁部250および底縁部251は好ましくは互いに平行にされない。すなわち、本発明の好適な実施形態では、排出された用紙の下向きの移動を容易にするために頂縁部250が底縁部251およびベース240に対してわずかに上向きに角度付けされる。したがって、頂縁部250と底縁部251との間の距離は、側縁部252(面取りされた縁部)と頂縁部250との間の交差点260で最小である。この距離は、交差点260から離れる方向へ増加し、交差点261、すなわち側縁部254が頂縁部250に交差する点で最大になる。底縁部251に対する頂縁部250のこの斜め構成によって、排出中に用紙がフラップ241aおよび241bから落下する可能性が低減される。
【0143】
上記で指摘したように、ベース240は凹部264aおよび264b(図24および図25参照)も含み、凹部264aおよび264bは、それぞれのフラップ241aおよび241bに対応し、ベース240の摺動方向へ延びる。好適な実施形態では、凹部264aおよび264bのそれぞれは、フラップ241aおよび241bのそれぞれの形状に対応する形状を有する。この構成によって、フラップ241aなどのフラップとベース240との間の角度がほぼ0度であるとき、フラップは、それに対応する凹部内にほぼ完全にはまることができる。両方のフラップをこのようにはめ込むと、図27に示したように、フラップ241aおよび241bを含めてベース240の頂面266はほぼ平坦になる。これによって、後述のように用紙排出トレイ41がリセプタクル42内に摺動するのが容易になる。
【0144】
具体的には、上記で指摘したように、プリンタ30は、それを使用していないときに用紙排出トレイ41を格納するトレイ・リセプタクル42(図24参照)を含む。図28は、プリンタ30の下面図であり、トレイ・リセプタクル42を示す。図のように、トレイ・リセプタクル42は、プリンタ30の下面上にスロットなどを備え、このスロットに用紙排出トレイ41(トレイ延長部244を含む)がはめ込まれる。フラップ241aおよび241bが、ベース240に対して0度であるかあるいはほぼ0度に近いとき、用紙排出トレイ41はトレイ・リセプタクル42内で摺動することができる。なお、図1は、プリンタ30内に格納された用紙排出トレイ41の正面図である。
【0145】
用紙排出トレイ41は、上記で指摘したトレイ延長部244を含むこともできる。図24に示したように、トレイ延長部244は好ましくは、ベース240内のスロットに滑りこみ、このスロットから滑り出る。これによって、用紙排出トレイ41をプリンタ30内に格納することが容易になる。また、トレイ延長部244は手動ストップ269を含む。手動ストップ269は、トレイ延長部244を排出トレイ41のスロットに滑りこませ、かつこのスロットから滑り出させるために使用され、かつ排出された用紙を用紙排出トレイ41から落下しないようにするために使用される。
【0146】
また、手動ストップ269は、用紙排出トレイ41をセットアップし格納する際に有用である。すなわち、図1に示したように、トレイ・リセプタクル42内に用紙排出トレイ41を格納しても、手動ストップ269はトレイ・リセプタクル42内に完全にはまるわけではなく、したがって依然としてユーザから手動ストップにアクセスすることができる。ユーザは、手動ストップ269をつかみプリンタ30から引き離すことによって、用紙排出トレイ41を動作できるようにセットアップすることができる。逆に、ユーザは、手動ストップ269をプリンタ30の方へ押し込むことによって、用紙排出トレイ41をプリンタ30内に格納することができる。これらの動作について以下で詳しく説明する。
【0147】
図29A〜図29Dは、使用時の用紙排出トレイ41の動作を示す。用紙排出トレイ41のセットアップおよび格納を説明するために図2および図24も参照する。まず、図1は、使用されていないときのプリンタ30を示す。この構成では、用紙排出トレイ41はリセプタクル42内に格納される。好ましくは、プリンタ30を使用していないときには用紙排出トレイ41を格納する。というのは、格納することによって、用紙排出トレイ41が誤って損傷される可能性が低減されるからである。
【0148】
用紙排出トレイ41をセットアップするため、ユーザはただプリンタ30から用紙排出トレイ41を引き出し、それによって用紙排出トレイ41をハウジング31のリセプタクル42から滑り出させる。これは通常、手動ストップ269を引くことによって行われる。ただし、用紙排出トレイ41の他の部分を引いても同じ結果が達成される。この引張り動作中、フラップ241aおよび241bは、トレイ・リセプタクル42から解放されるまでべース240に対して比較的平坦なままである。
【0149】
フラップ241aおよび241bは、トレイ・リセプタクル42から一旦解放されると、それぞれ凹部264aおよび264bから、媒体排出ポート40の位置に対応する高さへ上向きにバイアスされる。すなわち、フラップ241aおよび241bをトレイ・リセプタクル42から解放すると、もはやフラップ241aおよび241bをベース240に対して保持するものはなくなる。したがって、ばね242aおよび242bによって、フラップ241aおよび241bが上向きにバイアスされ、そのためフラップは、正面から見てほぼ“V”字形になる。上記で指摘したように、この点で、フラップ241aおよび241bはそれぞれ、ベース240に対する角度が好ましくは90度よりも小さい。フラップ241aおよび241bがこの位置に来ると、プリンタ30は用紙の用紙排出トレイ41上への排出を開始することができる。
【0150】
図29A〜図29Dは、プリンタ30から排出された用紙を受容するようにセットアップされた用紙排出トレイ41の正面図である。図29Aに示したように、角度249aおよび249bは、上記では初期角度と呼ばれ、ベース240に対して90度未満である。角度249aおよび249bが90度未満であるので、フラップ241aおよび241b上に排出された用紙の重量によってフラップが下向きに移動し、それによって角度249aおよび249bがそれぞれ減少する。これを図29Bに示す。
【0151】
具体的には、図29Bは、プリンタ30から排出された数枚の用紙270を用紙排出トレイ41が受容した場合を示す。図のように、用紙270からの重量によってフラップ241aおよび241bは下向きにベース240の方へ移動する。そのため、フラップとベースとの間の角度249aおよび249bは初期角度から減少する。図29Cは、用紙排出トレイ41にずっと多くのシートが追加され、したがってフラップ241aおよび241bがさらに下向きに押し込まれ、したがって角度249aおよび249bがさらに減少する場合を示す。この動作は、媒体排出ポート40から排出された用紙がプリンタ30の動作時に媒体排出ポート40を閉塞する可能性を低減する。
【0152】
図29Dは、フラップ241aおよび241bからさらに多くの用紙を受容した場合を示す。この場合、フラップ241aおよび241b上の用紙270の重量は、フラップ241aおよび241bをベース240に対する角度がほぼ0度になるように押し付けるのに十分である。そのため、フラップ241aおよび241bはそれぞれ、凹部264aおよび264bのうちの対応する凹部に押し込まれる。したがって、従来型のプリンタとは異なり、プリンタ30は、ほぼ媒体排出ポート40を閉塞せずにより多くの用紙を印刷することができる。
【0153】
前述のように、加えられた力に応答してフラップ241aおよび241bが下向きに移動する度合いは、フラップ241aおよび241bをベース240に対してバイアスさせるばね242aおよび242bの張力に依存する。上記で指摘したように、本発明の好適な実施形態では、ばね242aおよび242bは、媒体排出ポート40上に用紙が排出されないときにフラップ241aおよび241bが媒体排出ポート40の高さにバイアスされるような張力を有する。特に本発明の好適な実施形態では、用紙が排出される位置はすべての用紙について相対的に同じままである。
【0154】
さらに、本発明の好適な実施形態では、フラップ241aとフラップ241bは共に、ほぼ同じ形状を有し、上記で指摘したように、ベース240との同じ接続を有する。フラップ241aおよび241bの両方に接続されたばね242aおよび242bも好ましくは、ほぼ同じ張力を有する。この対称性のために、本発明はより多くの用紙を保持することができ、機械的誤動作をより少なくできる。なお、フラップ241aおよび241bがそれぞれの異なる形状を有し、ばね242aおよび242bがそれぞれの異なるバイアスを発生させる場合でも用紙排出トレイ41が動作することに留意されたい。
【0155】
次に、プリンタ30内の用紙排出トレイ41の格納について図2および図24を参照して説明する。なお、図24に示したように、プリンタ30上のリセプタクル42は外縁部272を含む。また、フラップ241aおよび241bはそれぞれ、側縁部(すなわち、図25および図27に示した側縁部252および252b)を含み、この側縁部は、プリンタ30に面し、プリンタ30から離れる方向へ角度付けされ、上記で図25B、図25C、図25Dを参照して説明したように、ほぼ平坦になり、かつ頂縁部およびベースに対して斜めになるように面取りされる。後述のように、このような側縁部、すなわち側縁部252および252bは、用紙排出トレイ41のトレイ・リセプタクル42内への格納を容易にするように上記のように構成される。
【0156】
具体的には、用紙排出トレイ41をトレイ・リセプタクル42内に格納するには、ユーザはベース240(またはトレー延長部269)を横方向へ押し込むだけでよい。このように横方向へ押すことによって、フラップは、ハウジング31と協働し、ハウジング31内への摺動時に凹部に畳み込まれる。具体的には、横方向へ押す動作によって、トレイ・リセプタクル42の下方の部分253が押し込まれ、側縁部252および252bがトレイ・リセプタクル42の外縁部272に押し付けられる。外縁部272は、側縁部に対する等しいが逆方向の力で「応答」する。側縁部252および252bは面取りされ角度付けされているので(たとえば、図25B参照)、この等しいが逆方向の力には、フラップ241aおよび241bを下向きにベース240の方へ移動させる下向き成分を含む。排出トレイ41に横方向に押す追加の力が加わると、側縁部252および252bが、外縁部272に対して摺動し、フラップをさらに下向きに押す。
【0157】
上記の場合と同様に、フラップ241aおよび241bが下向きに移動するにつれて、フラップ241aおよび241bとベース240との間の角度が減少する。側縁部の角度のために、側縁部にさらなる力が加わるにつれて、フラップ241aおよび241bは引き続き外縁部272に沿って摺動し、したがってさらに下向きに押し込まれる。最終的に、十分な横方向に押す力が加わった場合、フラップ241aおよび241bは、凹部249aおよび249b内に畳み込まれるように下向きに押し込まれる。したがって、用紙排出トレイ41は容易にトレイ・リセプタクル42内に摺動する。図1は、プリンタ30のトレイ・リセプタクル42内に格納された用紙排出トレイ41を示す。
【0158】
したがって、従来技術とは異なり、本発明は、ユーザによる物理的な操作をそれほど必要としない用紙排出トレイ41を格納する手段を提供する。さらに、用紙排出トレイ41を容易に格納できるかどうかは主としてフラップ241aおよび241bおよびハウジング31の形状によって決まるので、用紙排出トレイ41上における付加的な機械的構成要素の数が削減される。
【0159】
この点で、記録材料を保持するために使用される保持部材(たとえば、フラップ)の形状が異なる形状でもよいことに留意されたい。なお、本発明は、2つよりも多くの保持部材からなる単一の保持部材を使用して実施することもできる。たとえば、本発明は、保持部材の対向するアーム同士の間に1つまたは複数のバイアスばねが位置決めされた単一の“V”字形保持部材を使用して実施することができる。プリンタ2460と共に使用することのできる本発明の用紙排出トレイの第2の実施形態の例を図29Eに示す。
4.2 第2の実施形態
図29Eに示したように、用紙排出トレイ2400は単一のフラップ、すなわちフラップ2410を含む。フラップ2410は、単一の凹部2440内部にヒンジ止めされ、ばね(図示せず)によって凹部2440に対してバイアスされる。フラップ2410は、上記で第1の実施形態で説明したフラップと同様に動作する。したがって、話を簡単にするために詳細な説明を省略する。フラップ2410が凹部2440内に折り畳まれるように、トレイ2400がプリンタ2460の方へ押しこまれるときにフラップ2410の頂面2450がプリンタ2460と協働すると言えば十分であろう。これによって、プリンタ2460内にフラップ2410を格納することができる。同様に、トレイ2400がプリンタ2460から引き出されると、フラップ2410の下方のばね(図示せず)が、プリンタ2460の媒体排出ポート2465の高さにほぼ等しい高さにフラップ2410をバイアスさせる。
【0160】
印刷時に、フラップ2410は、第1の実施形態で説明したフラップと同様に動作する。具体的には、フラップ2410上に用紙が排出されると、フラップ2410は下向きに凹部2440の方へ移動し、最終的に十分な用紙が排出されると凹部2440に入る。上記の場合と同様に、フラップ2410の下向きの運動は、フラップ2410を凹部2440に対してバイアスさせるばね(図示せず)を介して制御される。
【0161】
最後に、本発明の用紙排出トレイについて単一のフラップおよび一対のフラップに関して説明したが、本発明を複数のフラップと共に使用するようにしても良い。
5.0 インク清掃機構
簡単に言えば、本発明のこの態様は、記録ヘッドと少なくとも1つの取外し可能なインク容器とを有するカートリッジを解放可能に受容するキャリッジ上に取り付けられたキャリッジ・リセプタクルである。このリセプタクルは、少なくとも1つのインク容器の取外しを可能にする旋回レバーを含む。このレバーは、それが少なくとも1つの容器から離れる方向へ旋回するようなときまで少なくとも1つのインク容器へのアクセスを妨げるように少なくとも1つのインク容器の少なくとも一部の上方へ延びる。レバーが、少なくとも1つのインク容器から離れる方向へ旋回し、次いで少なくとも1つのインク容器の少なくとも一部の上方へ旋回すると、記録ヘッドの清掃を促す信号が出力される。
【0162】
上記で図4に関して説明したように、プリンタ30はカートリッジ・リセプタクル64aおよび64bを含む。カートリッジ・リセプタクル64aおよび64b内のインクカートリッジ(したがって、このカートリッジ内のインク容器)へのアクセスは、図2に示したアクセスドア32を介して自動的に行われる。具体的には、上記で指摘したように、プリンタ30は、アクセスドア32が開放または閉鎖されたときにそれを検知するセンサを含む。アクセスドア32が開放されたことをこのセンサが検知したことに応答して、カートリッジ・リセプタクル64aおよび64bがほぼキャリッジ69の中央、すなわちほぼ図4に示した位置へ移動するようにキャリッジモータ66が駆動される。プリンタ30のこの領域は、アクセスドア32が開放されたときにアクセスできるプリンタ30の内部に対応する。したがって、単にアクセスドア32を開放することによってカートリッジ・リセプタクル64にアクセスすることが可能である。このことの重要性は以下で明らかになろう。
【0163】
前述の図6Aおよび図6Bは、カートリッジ・リセプタクル64bの物理的構成を示す。前述の図7Aおよび図7Bは、カートリッジ・リセプタクル64b内に設置することのできるインク・カートリッジ300bの物理的構成を示す。上記で指摘したように、図6Aおよび図6Bに示したカートリッジ・リセプタクルならびに図7Aおよび図7Bに示したインクカートリッジ用の回路接点は、インクカートリッジの清掃に関連して使用される。具体的には、本発明によれば、カートリッジ・リセプタクル上の回路接点は、カートリッジ・リセプタクルのレバーの開閉に応答してインクカートリッジ上の回路接点に係合し、かつこの接点から係合解除される。
【0164】
動作時の図6Aおよび図6Bに示したカートリッジ・リセプタクルの正面図を図30(A)および図30(B)に示す。図30(A)および図30(B)に示したように、カートリッジ・リセプタクル64bは特に、カプセル73とレバー72とを含む。レバー72は、カプセル73に対して旋回するようにヒンジ止めされる。この旋回動作によって、ユーザは、カートリッジ・リセプタクル64b内のインクカートリッジ全体とインク容器のみのどちらかにアクセスしカートリッジから取り外すことができる。
【0165】
レバー72はまた、上記で図6Bに関して詳しく説明したように、レバー72が旋回し、たとえば開放または閉鎖されたときに、カプセル73が横方向へ移動するようにカプセル73に接続される。具体的には、図30(B)に示した開放位置から図30(A)に示した閉鎖位置へレバー72が旋回すると、カプセル73はカートリッジ・リセプタクル64b内の横方向に矢印280の方向へ移動する(図30(A)参照)。この移動によって、カプセル73の側壁75がカートリッジ・リセプタクル64bの側壁78に接触する。一方、図30(A)に示した閉鎖位置から図30(B)に示した開放位置へレバー72が移動すると、カプセル73はカートリッジ・リセプタクル64b内の横方向に矢印281の方向へ移動する(図30(B)参照)。この移動によって、カプセル73の側壁75がカートリッジ・リセプタクル64bの側壁78から離れる方向へ移動する。
【0166】
前述の運動時に、すなわち図30(A)に示した位置と図30(B)に示した位置との間でカプセル73が移動する際に、カプセル73上のフィンガ282がスリーブ28に摺動可能に係合する。図30(A)および図30(B)にも示したように、カプセル73はショルダ286を含み、レバー72はフランジ287を含む。したがって、図30(A)に示したようにレバー72を閉鎖すると、フランジ287はショルダ286に接触し、設置済みのインクカートリッジやインク容器には接触しない。これらの特徴により、レバー72との誤った接触によって起こるカートリッジの移動を低減することができる。
【0167】
図31(A)および図31(B)は、カートリッジ300bが設置されたカートリッジ・リセプタクル64bの図である。図31(A)に示したように、レバー72がインク容器83の一部の上方へ旋回し、すなわちレバー72が閉鎖位置に来ると、オペレータがインク容器83にアクセスすることが妨げられる。すなわち、この位置では、インク容器83の頂部が少なくとも部分的にレバー72で覆われ、それによってインク容器へのアクセスが制限される。また、この位置では、インクカートリッジ300b上のカートリッジ回路接点81がカートリッジ・リセプタクル64b上の装置回路接点71に係合する。これに対して、レバー72がインク容器83のから離れる方向へ旋回し、すなわちレバー72が開放位置に来ると、オペレータはインク容器83にアクセスすることができる。この位置では、インク・カートリッジ300b上のカートリッジ回路接点81がカートリッジ・リセプタクル64b上の装置回路接点71から係合解除される。
【0168】
したがって、上記で図30(A)および図30(B)に関して説明したカプセル64bの横方向運動時には、回路接点71と回路接点81が係合し、かつ係合解除される。具体的には、回路接点71と回路接点81は、レバー72が開放されると係合解除され、レバー72が閉鎖されると係合する。回路接点のこの係合および係合解除は、ユーザが、清掃すべき記録ヘッド300bを指定し、記録ヘッド300bの清掃を促す信号を出力させる手段である。プリンタ30内のコントローラ(前述のCPU121など)は、この信号を受信し、後述の清掃プロセスを開始する。
【0169】
なお、プリンタ30内のインクカートリッジの一方または両方を、前述のように、清掃すべきインクカートリッジとして指定できる。さらに、インク清掃が、このように指定されたカートリッジにのみ実行される。
【0170】
インクカートリッジが指定された後、実際にはアクセスドア32が閉鎖されるまでインクの清掃は行われない。すなわち、インクカートリッジを指定する際、アクセスドア32は開放されていなければならない。インクの清掃は、上記で指摘したアクセス・ドア・センサが、アクセスドア32が閉鎖されたことを検知するまで行われない。なお、アクセスドア32が閉鎖されたことが検知された後、カートリッジ・リセプタクル64aおよび64bが自動的にホーム位置87、すなわちインク清掃機構86に対応する位置へ移動する。次いで、インク清掃機構86を使用して、指定されたカートリッジの記録ヘッドからインクが除去(すなわち、吸引)される。
【0171】
したがって、インク清掃機構86は2つの記録ヘッド接続キャップ88aおよび88b(図4参照)を含む。これらの記録ヘッド接続キャップはそれぞれ、カートリッジ・リセプタクル64aおよび64bのうちの一方のインクカートリッジの記録ヘッドに対応する。しかし、記録ヘッドからインクを除去(すなわち、吸引)する回転ポンプには一方の記録ヘッドの接続キャップ、すなわちキャップ88aのみが接続される。この構成の例を図32に示す。図32で、記録ヘッドの接続キャップ88aはポンプ294に接続されている。
【0172】
したがって、アクセスドア32を閉鎖すると、清掃すべきインクカートリッジとして指定されたインクカートリッジの記録ヘッドが記録ヘッド接続キャップ88aに接続される。たとえば、図33(A)のブロック図に示したように、インクカートリッジ300bを清掃すべきインクカートリッジとして指定した場合、インクカートリッジ300bはキャップ88aに接触するように移動される。一方、インクカートリッジ300aを清掃すべきインクカートリッジとして指定した場合、インクカートリッジ300aは、図33Bに示したブロック図に示したように、アクセスドア32が閉鎖されたときにキャップ88aに接触するように移動される。両方のインクカートリッジを、前述のように清掃すべきインクカートリッジとして指定した場合、インクカートリッジは順次キャップ88aに接続される。
【0173】
上記で指摘したホーム位置センサを介して接続が検知されると、ポンプ294によってカートリッジの記録ヘッドのノズルまたは穴からインクが引込まれる(すなわち、吸引される)。この清掃動作の後に続いて、カートリッジを使用して印刷を行うことができる。
6.0 プリンタ・プロファイル・パラメータの記憶
簡単に言えば、本発明のこの態様は、少なくとも1つの記録ヘッドを有する画像記録装置の記録ヘッドを制御する方法である。この方法は、少なくとも1つの記録ヘッドのプロファイル情報を得るステップと、プロファイル・パラメータを不揮発性RAMに記憶するステップと、要求に応じて、画像記録装置に接続されたホストプロセッサにプロファイル情報を出力し、そのホストプロセッサが、記録ヘッドのプロファイル情報を使用して、印刷のためにホストプロセッサから記録ヘッドへ送信すべき印刷情報を補償する補償パラメータを作成するステップとを含む。
【0174】
詳細には、電力を投入しハード電源オンを実行すると、プリンタ30はオフラインモードに入る。このモードでは、プリンタ30内のCPU121が、ROM122から初期設定ソフトウェアを検索し、電源オン自己試験プログラム(POST)を実行する。CPU121は、それが実行する多数の自己試験プログラムおよび状況検査プログラムのうちで、記録ヘッド130aおよび記録ヘッド130bの状況を検査し、プリンタ30にいずれかの記録ヘッドが設置されているか、それとも両方の記録ヘッドが設置されているかを判定する。CPU121がこの状況を検査する1つの方法は、アクセスドア32が開放されているかどうかを判定し、そうである場合に、EEPROM132に記憶されている記録ヘッド初期設定(ID)情報を現在の記録ヘッドのIDと比較することである。新しい記録ヘッドが設置された後、この変更は、後述のように、記憶されている他のプリンタ・プロファイル・パラメータと共にEEPROM132に記録される。
【0175】
しかし、CPU121は、最初のインストールおよび電源オン時に、プリンタ30に関する様々なプロファイル・パラメータをプリンタの設置プログラミングの一部として収集する。たとえば、CPU121は、プリンタIDと、記録ヘッドID情報(または複数の記録ヘッドが設置されている場合はすべての記録ヘッド分のプリンタID)と、プリンタ30ならびに記録ヘッド130aおよび130bの現在の状況(この機能は、以後の電源オンの後と特定の所定の時間およびイベント時にも実行される。これについては以下で詳しく論じる)を得る。
【0176】
POST処理が実行された後、プリンタ30は、オンライン・モードに入り、ホストプロセッサ23からのコマンドを待つ。図10に示したように、ホストプロセッサ23は、プリンタ・インタフェース104を通して直接、プリンタ30の制御論理124へコマンドを送信する。ホストプロセッサ23からプリンタ30の読取り/書込みEEPROM132へのコマンドも、プリンタ・インタフェース104および制御論理124を通して送られる。
【0177】
通常、ホストプロセッサ23は、オンラインになった後、状況要求コマンド[STATUS]を制御論理124を介してプリンタ30へ送信する。プリンタ30のCPU121は、そのような状況要求コマンドを受信した後、記憶されているプリンタ・プロファイル・パラメータをEEPROM132、入出力ポート・ユニット127、制御論理124からホストプロセッサ23へ送信する。EEPROM132の特定の領域に記憶されホストプロセッサ23に登録されているプリンタ・プロファイル・パラメータの例を以下の表1に示す。
【0178】
これらの前述のプリンタ・プロファイル・パラメータは、印刷動作時に記録ヘッド・コマンド・データを補償するためにホストプロセッサ23によって使用される。
【0179】
したがって、図34に示したフローチャートを参照するとわかるように、ステップS3401で、プリンタ30は、ハード電源オンを実行した後にオフラインモードに入る。このオフラインモード中にステップS3402で、プリンタ30はPOST動作を実行して状況および機能データを収集し、ハードウェア障害またはソフトウェア障害がないかどうかを検査する。初期化後、ステップS3403で、プリンタ30のCPU121は、新しい記録ヘッドが装着されているかどうかを判定する。プリンタ30とインストールした後の初期電源オン中にステップS3403が開始され、1つ以上の記録ヘッドを有する1つ以上のインクカートリッジがインストールされた場合、CPU121は、新たに挿入された記録ヘッドから情報を得て、その情報をEEPROM132に記憶し、次のソフト電源オン時に清掃プロセスを命令する。しかし、ユーザがアクセスドア32を開放し新しい記録ヘッドをインストールしたためにプリンタ30がオフラインになっているに過ぎない場合、ステップS3404で、CPU121は記録ヘッドIDを収集し、記録ヘッドが変更されたことを示すEEPROM132内のフラグをセットする。このフラグによって、インクカートリッジが変更されたことをホストプロセッサ23に示す。このプロセスが実行されるのは、記録ヘッドが初めてインストールされたときと、記録ヘッドがその後交換されたときである。
【0180】
なお、EEPROM132は、記録ヘッドカートリッジ内の記録ヘッドとインクの両方の物理的特性を補償するために使用される補償パラメータをホストプロセッサ23に与えることなど様々な目的のために、ホストプロセッサ23に登録された複数のプリンタ・プロファイル・パラメータを記憶する。たとえば、以下の表2に示したように、EEPROM132は、記録ヘッド位置合わせ情報および光学濃度情報だけでなく、廃棄インク量、記録ヘッド交換数、記録ヘッド清掃回数、記録ヘッドID、記録ヘッド・タイプなどに関する情報およびパラメータも記憶する。
【0181】
図34に戻るとわかるように、新しいインクカートリッジが設置されていない場合、プリンタ30はステップS3405でオンライン・モードに入り、このモードでプリンタ30は、ホストプロセッサ23と通信することができ、あるいはネットワーク化されている場合はホストサーバと通信することができる。オンラインになった後、プリンタ30はホストプロセッサ23からコマンドを受信するのを待つ。このようなコマンドは、そのいくつかが上記のようにリストされているが、プリンタ30がオンラインになった後にプリンタ30へ送信できるコマンドの典型的なものである。なお、通常、オンラインになった後、ホストプロセッサ23は状況要求[STATUS]コマンドをプリンタ30へ送信し、新しい情報、またはプリンタがオフラインであった間に変更されたパラメータを得る。これに応答して、ステップS3406で、プリンタ30は、EEPROM132に記憶されているプリンタ・プロファイル・パラメータをホストプロセッサ23へ送信する。ホストプロセッサ23は、パラメータを受信した後、そのパラメータ、特に記録ヘッドに関するパラメータを確認し、記録ヘッドが交換されているかどうかを判定する。記録ヘッドが交換されていると判定された場合、ステップS3407で、ホストプロセッサ23は、試験パターンを要求すべきかどうかを判定する。通常、試験パターンは、記録ヘッドの位置合わせおよび印刷された画像の光学濃度が測定できるように印刷される。記録ヘッドが交換されており試験パターンが必要である場合、ステップS3408で、ホストプロセッサ23は1つまたは複数のコマンドをプリンタ・インタフェース104および制御論理124を通してプリンタエンジン131へ送信する。たとえば、ホストプロセッサ23は、以下の表3に示した一連のコマンドを送信することができる。これらのコマンドは、走査すべき試験パターンを印刷するように印刷データと共にプリンタエンジン131へ送信することができる。
【0182】
試験パターンが印刷された後、ステップS3409で、ホストプロセッサ23は、記録ヘッド130aおよび130b上のセンサ82による印刷された試験パターンのスキャンを開始するスキャン[SCAN]コマンドをプリンタ30に出力する。具体的には、[SCAN]コマンドを受信すると、記録ヘッド130aおよび130bがそれぞれホーム位置87に戻り、その時点で各センサ82のキャップが外され、印刷された試験パターンをセンサ82と位置合わせするために、試験パターンが印刷された用紙が搬送される。
【0183】
各センサ82は、対応する記録ヘッドによって印刷された印刷済み試験パターンの一部を走査し、その結果得られた試験パターンデータ(たとえば、位置合わせ測定値)をRAM129に記憶する。この試験パターンデータは、センサ82の出力電圧レベルをアナログ・デジタル変換することによって得られる8ビット・デジタル化データである。
【0184】
RAM129に記憶されている試験パターンデータは、ホストプロセッサ23が状況要求[SESNOR_RESULTS]コマンドをプリンタ30へ送信するまでRAM129に残る。プリンタ30は、ステップS3410で[SENSOR_RESULTS]コマンドを受信すると、RAM129に記憶されている試験パターンデータをホストプロセッサ23へ送信する。データが受信されると、ホストプロセッサ23は、ディスク25から補償式を検索し、この数式を受信データと共に使用して補償パラメータを得る。補償パラメータが算出された後、ホストプロセッサ23は[NVRAM]制御コマンドをプリンタ30へ送信し、それによってプリンタ30はステップS3411でEEPROM132に補償パラメータを書込む。
【0185】
前述のように、EEPROM132は記録ヘッド130aおよび130bのそれぞれごとに別々のパラメータおよび測定値を記憶し、補償パラメータは各記録ヘッドの位置合わせおよび光学濃度に基づいて別々に算出されダウンロードされる。ホストプロセッサ23によってダウンロードされる補償パラメータの種類の例を以下の表4に示す。
【0186】
上記に示した情報およびパラメータは、記録ヘッド130aおよび130bの位置合わせと、記録ヘッド130aおよび130bのそれぞれによって印刷された画像の光学濃度に関するものである。この情報は、印刷動作中に記録ヘッド・コマンド信号を記録ヘッド130aおよび130bへ送信する際にホストプロセッサ23によって使用される。
【0187】
図34に示すフローチャートに戻るとわかるように、ステップS3411で、プリンタ30はホストプロセッサ23からの他のコマンドを待つ。
【0188】
ステップS3413で、ホストプロセッサ23は状況要求[DATA_SEND]コマンドをプリンタ30へ送信し、プリンタ・プロファイル・パラメータが再びホストプロセッサ23に登録される。[STATUS]コマンドは、特定の時間間隔でプリンタ30へ送信することも、あるいは記録ヘッドの交換など特定のプリンタ・イベントの後にプリンタ30へ送信することもできる。次にステップS3414で、ホストプロセッサ23は、記録ヘッド130aおよび130bのそれぞれへ印刷情報を送信する際に、プリンタ・プロファイル・パラメータを使用して記録ヘッド130aおよび130bのそれぞれの物理的特性および変動と、記録ヘッド130aおよび130bのそれぞれに取り付けられたインクカートリッジ内のインクの物理的特性および変動を補償する。
【0189】
したがって、プリンタ30はプロファイルを個別に、あるいはホストプロセッサ23とは別に記憶する。このため、他のホストプロセッサは、プリンタ30から登録されたプロファイルを読み取り、プリンタ30に関する物理的特性を補償することができる。
7.0 記録ヘッドの清掃のスケジューリング
簡単に言えば、この実施形態で開示する本発明の一態様は、ホストプロセッサとのインタフェースをとり、印刷データ、印刷コマンド、リアルタイム/日付情報をホストプロセッサから受信するインタフェースと、印刷データ、印刷コマンド、リアルタイム/日付情報を記憶するメモリと、印刷データおよび印刷コマンドに応じて画像を印刷し、少なくとも1つの記録ヘッドを画像を印刷するように制御するプリンタエンジンと、インタフェースを介してホストプロセッサから受信したリアルタイム/日付情報に基づきプリンタ関連イベントに基づいてプリンタエンジンの処理イベントを制御するプロセッサとを含むインクジェットプリンタである。
【0190】
具体的には、ノズルに捕捉された気泡又は乾燥インクのために記録ヘッドのノズルが詰まるので、プリンタ30の記録ヘッド130aおよび130bを清掃しなければならない。この清掃プロセスは、記録ヘッドをそのホーム位置へ移動させ、そこで回転ポンプ294が記録ヘッドからインクを吸引することからなる。この結果得られる廃棄インクは廃棄物受けなどの廃棄物貯蔵領域に堆積され、そこで最終的に、時間の経過と共に蒸発する。所定の時間の後に記録ヘッド130aおよび130bを清掃することが重要であり、この所定の時間は本発明では、最後の清掃から73時間の経過時間として決定されている。これを行わない場合、記録ヘッドのノズルが詰まり、それによって画質が悪影響を受けることがある。また、インクジェットプリンタ30の適切な動作を補償するために、記録ヘッド130aおよび130bはそれぞれ、インクカートリッジを設置する際に清掃され、かつインクカートリッジを交換するたびに清掃される。
【0191】
前述のように、イベントに基づいてスジューリングされた清掃を除いて、プリンタ30は経過時間に基づいて記録ヘッドの清掃を行う。この経過時間は、最後の清掃からどれだけの時間が経過したかを求めることによって算出される。清掃動作の手動開始の例については、上記の第5.0節で説明した。経過時間の判定は、あらゆる印刷ジョブの開始時にホストプロセッサ23からダウンロードされるリアルタイム/日付スタンプに基づいて行われる。このように、プリンタ30は、最後の清掃プロセスからどれだけの時間が経過したかを追跡することができる。
【0192】
次に、前述のプロセスについて、図35のフローチャートを参照して詳しく論じる。記録ヘッドがインストールされ、ステップS3501でプリンタ30に電力が初めて投入された後、ハード電源オンによって、プリンタ30の清掃スケジュールプロセスが開始される。ステップS3502およびS3503で、プリンタ30のCPU121は、ROM122に記憶されているプロセスステップを実行することによって電源オン自己試験初期設定プログラムを実行する。CPU121は、このプログラムを使用して様々なハードウェアパラメータを検査しかつ定義する。ステップS3504で、CPU121は、EEPROM132に記憶されている様々なパラメータを読み取る。これらのパラメータについては上記の第6.0節で詳しく論じた。本発明のこの態様では、CPU121は、記録ヘッド130aおよび130bのそれぞれについてリストされた最後の清掃時間を調べる。この情報は、次の清掃時間をスケジューリングするために必要である。しかし、EEPROM132がまだ初期化されていない場合、最後の清掃時間は零(ゼロ)に設定される。
【0193】
前述のように、EEPROM132は、プリンタ30内で使用されるすべての記録ヘッドに関するプロファイル情報を維持する。したがって、現在開示している実施形態では、EEPROM132は、記録ヘッド130aおよび130bの最後の清掃時間を別々のメモリ位置に維持する。各清掃時間はまた、チェック・サム値と共に記憶される。すなわち、清掃時間は、チェック・サム処理またはCRC検査処理によるデータエラー補正と共に確保される。偶発的な電源遮断時に起こる清掃時間の喪失、あるいはEEPROM132への書込み動作の間にハードオン・リセットが行われた場合に起こる清掃時間の喪失を防止するために、清掃時間とチェック・サムは共に、EEPROM132の別々のメモリ位置でミラーリングされる。そのため、事故が発生した場合でも、少なくとも1組の清掃時間が保証される。
【0194】
ステップS3505で、CPU121は、記録ヘッドA(たとえば、図10の記録ヘッド130a)が最後に清掃されてからの経過時間を表す変数DeltaT_Aを再設定する。この変数は、イネーブルされると、1秒間隔で増分され、あらゆるハード電源オフ後にクリアされる。同様に、CPU121は、記録ヘッドB(たとえば、図10の記録ヘッド130b)に関する変数Delta T_Bも再設定する。CPU121はこの時点で、リアルタイムが設定されているかどうかを示すFlagRealTimeActive、リアルタイムが再設定されているかどうかを示すFlagRealTimeReset、リアルタイムがまだ設定されていないときにのみDelta T_A値が記録ヘッドAの最後の清掃の時間を示すことを示すFlagRecordYet_A、記録ヘッドBからの同様な情報を示すFlagRecordYet_Bなど他のインジケータ・フラグをリセットする。本発明の清掃スケジューリング・プロセス中に設定され再設定される各変数およびフラグを以下の表5にリストする。
【0195】
ステップS3506で、CPU121は、各記録ヘッドの最後の清掃時間が零に等しいかどうかを判定する。なお、プリンタを新たにインストールする場合、これらの変数は零になる。したがって、ステップS3507で、記録ヘッドAを清掃してからの経過時間が所定の時間、すなわち、上記で指摘したように"73時間"に設定される。そのため、プリンタ30は、ソフト電源オンを行う際、記録ヘッドAに対して清掃動作を実行する。ステップS3508およびS3509で、記録ヘッドBに対して同様な処理が実行される。
【0196】
ステップS3510で、CPU121は清掃スケジュールプロセスをイネーブルする。ステップS3511で、CPU121はソフト電源オンおよびホストプロセッサ23からのコマンドを待つ。最初の設置の場合、このステップで各記録ヘッドに対して清掃プロセスが実行される。
7.1 清掃スケジュールプロセス
前述のように、初期設定後に、CPU121は図35のステップS3510で清掃スケジュールをイネーブルする。次に、経過時間スケジュールを維持する方法について、図36に示したフローチャートに関して詳しく論じる。図のプロセスは、清掃プロセスが割込みプロセスとしてイネーブルされている場合に1秒おきに実行される。
【0197】
具体的には、ステップS3601で、清掃スケジュールプロセスがイネーブルされ、記録ヘッドAと記録ヘッドBの両方に関して経過時間が1秒おきに増分される。ステップS3602で、FlagRealTimeActiveがセットされているかどうかが判定される。このフラグは、ホストプロセッサ23からリアルタイムがダウンロードされたかどうかを示す。このフラグがセットされていない場合、フローはステップS3603に進み、記録ヘッドAの最後の清掃からの経過時間が所定の最大時間の73時間またはその変数範囲の最大値に達したかどうかが判定される。達している場合、フローは後述の自動清掃プロセスに進む。或は別の方法として、DeltaT_Aの値が最大値に達した場合に、それを無視し再設定しても良い。これによって、メモリ内で値がオーバフローするのが防止される。
【0198】
最後の清掃からの時間が最大時間に達していない場合、ステップS3604でDeltaT_Aが1秒だけ増分される。このプロセスが実行されるのは、プリンタ30がリアルタイムを受信する前に73時間よりも長い間アイドル状態のままである恐れがあるからである。この場合、清掃は、プリンタ30の内部クロックからの経過時間に基づいて行われるか、あるいは後でソフト電源オン時に行われるか、あるいは自動清掃手順時に行われる。ステップS3605およびS3606で記録ヘッドBに対して同様なプロセスが実行される。
【0199】
FlagRealTimeActiveがセットされており、ホストプロセッサ23が時間/日付スタンプをダウンロードしていることを示す場合、ステップS3607で、RealTimeが最大値の73時間またはその変数範囲の最大値に達しているかどうかが判定される。ここで、達していると判定された場合、フローは後述の自動清掃シーケンスに進む。或は別の方法として、RealTimeの値が最大値に達した場合に、それを無視し再設定するようにしても良い。これによって、メモリ内で値がオーバフローするのが防止される。一方、リアルタイムは、最大値に達していない場合、ステップS3608で1秒だけ増分される。
【0200】
フローは、ソフト電源オン時に図35のステップS3511に戻り、図37のステップS3701に進み、ソフト電源オンを待つ。次にステップS3702で、CPU121は、ユーザがソフト電源オンを要求しているかどうかを判定する。この答えが肯定的(yes)である場合、ステップS3703およびS3704で、CPU121が各ソフトウェア・プログラムおよびプリンタユニット装置の初期化を行う。その初期化が完了すると、CPU121はステップS3705で、各記録ヘッドに必要に応じて自動清掃動作を実行させる(自動清掃動作については以下で詳しく論じる)。
【0201】
プリンタ30は、自動清掃動作を実行した後、ステップS3706でオンラインになり、ステップS3707でホストプロセッサ23からの印刷コマンドと、ユーザから入力されるソフト電源オフのどちらかを待つ。これらのイベントがどちらも起こらない場合、プリンタ30は、ホストプロセッサ23からのコマンドに対する待機状態のままになる。一方、ソフト電源オフ要求が受信された場合、プリンタ30はステップS3708で、状況検査を実行し、プリンタ30の現在の状況に基づいてEEPROM132内のパラメータを更新することによってソフト電源オフ・プロセスを実行する。
【0202】
本発明では、プリンタ30は、試験パターンを印刷するコマンド、試験パターンを走査するコマンドなど、ホストプロセッサ23からのコマンドを待つ。プリンタ30が予期する1つのコマンドは、プリンタ30に時刻/日付スタンプを与える協定世界時(UCT)である。UCTコマンドは、プリンタ30内の現在時刻を設定するために使用され、印刷ジョブ開始時にプリンタ30へ送信しなければならない。プリンタ30はこの時刻を使用して、記録ヘッドを回復すべきであるか否かを判定する。この時刻の値は、1970年1月1日の深夜12時(00:00:00)からの経過秒数、すなわちホストプロセッサ23のシステムクロックによる協定世界時(UCT)として表される。なお、UCTコマンドは、各印刷コマンドがUCTコマンドの前に送信されるように各印刷コマンドの開始時にダウンロードされる。しかし、プリンタ30自体の内部クロックによって増分された時間はハード電源オフ時にメモリからクリアされるので、ダウンロードされた時刻/日付スタンプを記憶する必要があるのはハード電源オフの後だけであることに留意されたい。
【0203】
したがって、図38のフローチャートを参照するとわかるように、ステップS3801で、ホストプロセッサ23はUCTコマンドを送信する。ステップS3802で、時刻および日付が有効であるかどうかが判定される。なお、たとえば、ホストプロセッサ23のリアルタイムクロックよりも進んだ内部クロックを有するホストプロセッサにプリンタ30が接続されている場合、ダウンロードされた時刻/日付スタンプが無効になる恐れがある。いくつかの例では、時刻および日付は、プリンタ30に記憶されている実際の最後の時刻および日付よりも後の時刻および日付であってよい。データフォーマットエラーまたは範囲外の値などのために時刻/日付が有効でない場合、フローは、以下で詳しく説明する自動清掃プロセスに進む。或は別の方法として、その時間が無効である場合、エラー処理プログラムを実行するか、あるいはこの無効な時間を無視しても良い。
【0204】
ステップS3802で、現在の時刻および日付が有効であると判定された場合、フローはステップS3803に進む。ステップS3803で、リアルタイムが実際にプリンタ30に記憶されているかどうかが判定される。たとえば、FlagRealTimeActiveがセットされていないことがある。これは、まだプリンタ30内でリアルタイムが設定されていない場合であり、通常は、プリンタ30を使用するのが初めてであり、印刷ジョブがまったく印刷されていないときに起こる。FlagRealTimeActiveがセットされていない場合、ステップS3804で、印刷ジョブの開始時に与えられた現在時刻および日付がリアルタイムとして設定される。
【0205】
フローは次いで、ステップS3805に進む。ステップS3805で、CPU121は、リアルタイムが設定されていない場合には、図10の記録ヘッド130aなどの記録ヘッドAに関する経過時間が記録ヘッドAの最後の清掃の時間に対応するかどうかを判定する。経過時間が記録されていると判定された場合、ステップS3806で、プリンタ30は、記憶されている経過時間からリアルタイムを減じることによって最後の清掃時間を求める。ステップS3807で、最後の清掃時間がEEPROM132に書き込まれ、ステップS3808で、記録ヘッドAに関してFlagRecordYet_Aがリセットされる。ステップS3809ないしS3812で、図10の記録ヘッド130bなどの記録ヘッドBに対して同様な処理が実行される。このように、最後の清掃時間およびチェック・サムが更新され、EEPROM132の、記録ヘッドAおよびBのそれぞれについての別々のメモリ位置に書きこまれる。
【0206】
処理はステップS3805に戻り、FlagRecordYet_AおよびFlagRecordYet_Bがセットされていない場合、フローはステップS3813に進み、FlagRealTimeActiveが、リアルタイムが設定されていることを示すようにセットされる。
【0207】
処理はステップS3803に戻り、前の印刷動作のリアルタイムが記憶されており、それが有効な時間であると判定された場合、フローはステップS3814に進み、すでにダウンロードされている新しい時間データがリアルタイム・データと比較される。ステップS3815で新しい時間データとリアルタイムデータとの間の差が受け入れられるものである場合、ステップS3818でこの差が無視され、フローは先へ進む。
【0208】
一方、ステップS3815で、ホストのリアルタイムクロックの変化またはプリンタの内部クロックのエラーのために差が受け入れられないものである場合、ステップS3816で、新しい時間データを用いてリアルタイムが再設定される。ステップS3817で、FlagRealTimeResetが、リアルタイムが再設定されたことを示すようにセットされる。そのため、新しい時間データを使用して、記録ヘッドAおよびBに対していつ自動清掃をスケジューリングすべきかが算出される。これによって、ユーザがホストコンピュータのリアルタイムクロックを未来のある時間に再設定し、その後に印刷ジョブおよび[UCT]コマンドを実行し、次いで実際の現在時間に再設定した場合でも、清掃プロセスの実行が妨げられる。
7.2 自動清掃プロセス
図39は、自動清掃プロセスを示す。清掃がプリンタ30の初期使用の結果であるか、あるいは時間に基づいてスケジューリングされた清掃の結果である場合には、ステップS3901で、プリンタ内に記録ヘッドAが存在するかどうかが判定される。ステップS3901で記録ヘッドAが存在する場合、CPU121は、FlagRealTimeActiveがセットされているかどうかを確認する。ここで、"Yes"、即ち、これが設定されている場合、フローはステップS3902に進み、FlagRealTimeResetがセットされているかどうかを確認する。これに対して、"No"、即ち、これが設定されていない場合、CPU121は、リアルタイムから、EEPROM132に記憶されている記録ヘッドAの最後の清掃時間を減じることによって清掃時間を算出する。この差が、設定済みの清掃時間の73時間よりも大きい場合、ステップS3905で記録ヘッドAが清掃される。しかし、この差が設定済みの清掃時間よりも小さい場合、フローはステップS3903に進み、新しい時間データがリアルタイムとして設定されるようにFlagRealTimeResetがセットされる。この場合、ステップS3817でリアルタイムがリセットされているので、記録ヘッドAが強制的に清掃される。
【0209】
ステップS3902に戻り、FlagRealTimeActiveがセットされていない場合、フローはステップS3906に進む。ステップS3906で、記録ヘッドAに関する経過時間が清掃時間と比較される。記録ヘッドAが清掃されてから73時間以上が経過しており、かつ記録ヘッドBがインストールされていない場合、フローはステップS3913に進み、FlagRealTimeResetがリセットされる。ステップS3913は通常、ハード電源オンからプリンタ30が使用されていないときに実行される。
【0210】
記録ヘッドBがインストールされている場合、ステップS3907〜ステップS3912で記録ヘッドBに対して同様な処理が実行される。
7.3 A記録ヘッドの清掃
図40は、図39のステップS3905〜S3911で実行される動作を詳しく説明した図である。ステップS4001で、記録ヘッドがインストールされているかどうかが判定される。ステップS4001で、記録ヘッドがインストールされていると判定された場合、ステップS4002で清掃動作が実行される。清掃動作は、記録ヘッドをそのホーム位置へ移動させることと、清掃すべき記録ヘッド上のノズルを記録ヘッド接続キャップ88a(図4参照)と位置合わせすることと、ノズルからインクを吸引することと、廃棄インクを廃棄物受けに堆積することとからなる。記録ヘッドから吸引された液滴の数がカウントされ、この情報が、上記で最後の清掃時間の更新に関して論じたのと同様にEEPROM132内で更新される。
【0211】
ステップS4003で、FlagRealTimeActiveがセットされているかどうかが判定される。このフラグがセットされている場合、ステップS4004で、清掃された記録ヘッドの最後の清掃時間がリアルタイムとして設定される。ステップS4005で、リアルタイム、すなわち記録ヘッドの最後の清掃時間がEEPROM132に書きこまれる。
【0212】
ステップS4003に戻り、FlagRealTimeActiveがセットされていない場合、最後の73時間中にプリンタにUCTコマンドがダウンロードされていないので、ステップS4006で経過時間が零に設定され、ステップS4007で、特定の記録ヘッドに関するFlagRecordYetがセットされる。これは、ステップS4007でリアルタイムが設定されていないことを示し、経過時間カウンタが再始動する。
【0213】
前述のように、記録ヘッドの清掃は、記録ヘッドまたはインクカートリッジが交換された場合に行われる。図41は、そのようなイベントの後に続く記録ヘッドの清掃に関する詳細なフローチャートである。
【0214】
ステップS4101で、記録ヘッド交換処理が開始する。ステップS4102で、CPU121は、ユーザによってヘッド交換モードが終了するのを待つ。ステップS4103で、交換処理が終了する。したがって、ステップS4104で、CPU121は、どちらのヘッドが取り外されているか、すなわちどちらの記録ヘッドが、それに対応するカートリッジ・リセプタクル上の回路接点に係合し、どちらの記録ヘッドが係合解除されているかを確認する。記録ヘッドAが取り外されている場合、ステップS4105で記録ヘッドAが清掃される。清掃は、図40のフローに関して説明したのと同様に行われる。ステップS4106およびS4107で記録ヘッドBに対して同様な処理が実行される。
【0215】
図42のフローチャートは、自動清掃プロセスがスケジューリングされ、プリンタ30内の印刷位置に用紙が装填されているときに何が行われるかについて説明するものである。印刷位置に用紙が装填され、自動清掃がスケジューリングされている場合、ステップS4201で、コマンドによって用紙が排出され印刷が完了する。用紙が排出された後、ステップS4202で1つまたは複数の記録ヘッドの自動清掃が行われる。自動清掃プロセスに続いて、ステップS4203で印刷位置に新しい用紙が装填される。なお、ステップS4201およびS4202は、用紙がすでに装填されているかどうかにかかわらず、あらゆる自動清掃の後に実行される。
【0216】
図43Aは、上述のように、図35〜図42に関して説明したように本発明によって実行される記録ヘッドに対する典型的な清掃スケジュールの例である。典型的な清掃スケジュールについて説明する前に、プリンタ30が記録ヘッド130aおよび130bのそれぞれについて別々の清掃時間および清掃スケジュールを維持することを理解されたい。この理由は、一方の記録ヘッドを、73時間の期間中に他方または一方の記録ヘッドが使用できなくなる前に交換することができるからである。たとえば、テキスト文書のみを印刷する際、黒記録ヘッドはカラー記録ヘッドよりも頻繁に使用される。したがって、黒記録ヘッドはカラー記録ヘッドよりも頻繁に清掃する必要がある。すなわち、カラー記録ヘッドについては、最後の印刷から73時間以上経過しており、かつソフト電源オンが行われた場合でも、印刷の直前まで清掃する必要がない。このようにして、インクを節約することができる。
【0217】
図43Aは、プリンタ30にダウンロードされる5つの別々の期間(T1〜T5)を示すタイムテーブルである。図43Aに示した期間は、最初にプリンタがインストールされる時点から始まる。
【0218】
初期ハード電源オン時に、プリンタ30は初期設定プロセスを実行し、EEPROM132から最後の清掃時間が読み取られる。これは最初の電源オンであるので、すべてのフラグおよび変数がリセットされる。前述のように、このリセットによって、ソフト電源オン時に清掃プロセスが開始される。図43Aに示した例では、プリンタにヘッドをインストールする前にソフト電源オンが実行されるので、清掃は、ヘッドが設置されるまで行われない。ヘッドがインストールされた後、記録ヘッド130aおよび130bのそれぞれに対して自動清掃が行われる。Delta_T変数がすべての記録ヘッドに関して零に設定され、FlagRecordYetが、ステップS4006およびS4007で上述したように設定される。
【0219】
記録ヘッドが清掃されソフトウェアが初期化された後、プリンタ30はオンラインになる。ホストプロセッサ23は、プリンタ30がオンラインであることを知り、第1の印刷ジョブと、現在日時スタンプを与える標準座標時間(UCT)コマンドを送信する。UCTコマンドを初めて受信すると、FlagRealTimeActiveがセットされ、この新しい時刻がリアルタイムとして設定される。この例では、記録ヘッドがインストールされてから73時間以内に最後の清掃が行われているので、T1で自動清掃プロセスは実行されない。
【0220】
図43Aに示したタイムチャートの例では、次に清掃時間が設定されるのは、T2でヘッドが交換されるときであり、この時点で、経過時間にかかわらず清掃が行われる。
【0221】
前述のように、UCTコマンドはあらゆる印刷コマンドの前に送信される。したがって、図43Aに示したこのタイムチャートの例によれば、印刷コマンドはT3で次の新しいデータを与える。これが有効な時間であり、FlagRealTimeActiveがセットされていると仮定すると、新しい時刻データとリアルタイムデータとの間の差が算出される。図43Aに示した場合には、時間T3と時間T2との間の差は73時間よりも大きく、清掃が行われる。前の日付スタンプからプリンタ30の内部クロックがアクティブであるので、経過リアルタイムは、印刷ジョブの開始時にダウンロードされた新しいリアルタイムと同じであるはずである。そのため、新たにダウンロードされた時間を記憶する必要はない。
【0222】
印刷ジョブの印刷に続いて、プリンタ30はハード電源オフを実行し、記憶されているすべての時間をクリアする。ハード電源オンはすべてのフラグおよび変数に従い、これらをリセットする。ハード電源オンの後にソフト電源オンが実行され、これによってプリンタ30はオンラインになる。オンラインになると、ホストプロセッサ印刷ジョブを送信し、その後に、T4で現在時間および日付を与えるUCTコマンドを送信する。図38に関して論じたように、FlagRealTimeActiveがセットされていないので、ダウンロードされたリアルタイムが新しい時刻として記憶され、FlagRealTimeActiveがセットされる。
【0223】
この時点で、CPU121は、記録ヘッド130aおよび130bがインストールされているかどうか、FlagRealTimeActiveがセットされているかどうか、FlagRealTimeResetがセットされているかどうかを判定する。ホストプロセッサ23から新しい時間が与えられているので、リアルタイムと記録ヘッドの最後の清掃時間との間の差が算出される。図43Aに示したように、時間T4と時間T3との間の差は73時間よりも大きい。そのため、T4で清掃が行われる。
【0224】
最後の印刷ジョブの後にハード電源オフが行われ、記憶されている時間がクリアされる。次のハード電源オンでは、すべての変数およびフラグがリセットされる。前述のように、ハード電源オン後、経過時間変数は1秒おきに増分される。図43Aの例に示したように、73時間の期間が経過した後に次のソフト電源オンが行われる。その結果、清掃が実行される。プリンタ30が印刷ジョブを受信せずに73時間よりも長い間アイドル状態であったので、この清掃は、リアルタイム・ダウンロードではなくプリンタ30自体の内部経過クロックに基づいて行われる。或は別の方法として、内部クロック上で73時間経過した後の記録ヘッドの清掃は必要とされず、印刷動作の直前に行われるように再スケジューリングされる。このように清掃を印刷の直前まで遅延させることによって、インクを節約することができる。
【0225】
前述のように、バッテリバックアップを有するSRAMやフラッシュメモリなど任意の種類の非揮発性メモリとEEPROM132を交換することができる。この場合、前述の最後の清掃時間を含む情報を同様な種類の非揮発性メモリデバイスに記憶することができる。
【0226】
さらに、フラッシュメモリなど任意の種類の再書込み可能なメモリデバイスとROM122を交換することができる。この場合、そのようなメモリデバイスは、ホストプロセッサ23のインタフェース104およびプリンタ30のホストコンピュータ・インタフェース141を介してプリンタ30にダウンロードされたプログラムコードを受信することができる。メモリデバイスを使用して、EEPROM132ではなくそのメモリデバイスの特定の領域にすべての情報を記憶することも可能である。
【0227】
また、通信回線106を双方向回線として説明したが、場合によっては単方向インタフェースを本発明と共に使用することができる。具体的には、上記の説明ではIEEE−1284インタフェースを実装したが、この代わりに、SCSI、USB(汎用シリアルバス)、IEEE−1394(高速シリアルバスインタフェース)など任意の種類のインタフェースを使用することができる。
【0228】
最後に、本発明について2つの記録ヘッドを使用して説明した。しかし、この数が増減できることを理解されたい。同様に、プリンタ30内で使用される記録ヘッドの数に基づいてEEPROM132およびRAM129内のメモリ位置の数を増減することもできる。
8.0 記録ヘッド駆動パラメータの設定および修正
記録ヘッド130aおよび130bが、プリンタ30から取り外して交換できるように構成されており、記録ヘッド・リセプタクル64aおよび64bにいくつかの異なる種類のカートリッジ(それぞれの異なるノズル構成とそれぞれの異なるインク特性とを有するカートリッジなど)を装填することができるので、多数の異なる種類の記録ヘッドの記録ヘッド駆動パラメータがプリンタ30に事前にロードされる。たとえば、インク滴を吐出するように個々のノズルを駆動するためのパルス幅シーケンスは、記録ヘッド、インクの特性(たとえば、色インクであるか、それとも黒インクであるか、染料であるか、それとも顔料であるか)、周囲環境の温度、インク滴のサイズなどに強く依存する。したがって、ROM122は、様々なヘッド/インク/解像度の組合せに関する駆動パルス・シーケンスを定義した事前に記憶されたテーブルを含む。ROM122内の事前に記憶されたテーブルは、ヘッド/インク/解像度の様々な既知の組合せと、ヘッド/インク/解像度の予想される組合せをカバーする。
【0229】
同様に、記録ヘッド温度の計算など内部の計算を行うために使用されるパラメータも、記録ヘッドおよびノズルの構成と、インクの種類と、解像度の特定の各組合せに依存する。したがって、同じ理由で、プリンタ30は、ヘッド/インク/解像度の既知の組合せとヘッド/インク/解像度の予想される組合せに関する加熱係数の様々なテーブルをROM122内に含む。
【0230】
本発明者は、ヘッドとインクと解像度のすべての可能な組合せを予想し、すべてのそのような組合せに適したテーブルを事前に記憶することが不可能であることを知った。この理由は簡単である。すなわち、どんな新しい記録ヘッドおよびインクが将来開発されるかは不明であるからである。同時に、ROM122内の新しい1組のテーブルを必要とせずに、将来に生じるヘッドとインクと解像度の組合せと共にプリンタ30を使用する必要がある。特に、新しいテーブルのために、プリンタと、新しいROMを既存の顧客に分配するためのグレードアップ・プログラムとを再製造することが必要になる。
【0231】
本発明は、ホストプロセッサ23からのコマンドを介した、事前に記憶されたテーブル内の値の修正を可能にし、ホストプロセッサ23からの記録ヘッド制御パラメータのリアルタイム定義を可能にすることによって、この要件に対処する。この特徴のために、ホストプロセッサ23からのコマンドを使用することにより、通常はROMテーブルやその他のプリンタハードウェアを変更せずに、新たに開発されたカートリッジの機能、またはROM122内の事前に記憶されたテーブルを利用できない他のカートリッジの機能を制御するのに適した記録ヘッドの駆動パラメータを定義することが可能である。
【0232】
簡単に言えば、本発明のこの態様によれば、外部プロセッサからコマンドを受信したプリンタコントローラは、このコマンドに基づいて脱着可能なカートリッジを有するプリンタのプロセス機能を制御する。このコマンドは、プリンタ内の事前に記憶された駆動パラメータが既に利用できない新しいカートリッジの機能を制御するように調整された新しいカートリッジ駆動パラメータを定義することができる。そのようなパラメータにはたとえば、インク滴を吐出するための加熱パルスシーケンスのタイミング、そのような加熱パルスシーケンスに必要な記録ヘッド温度を算出するための加熱係数、印刷速度、液滴サイズ、バッファ読出し制御、ノズル駆動シーケンスなどが含まれる。
【0233】
図43Bは、本発明の第1の実施形態を示すフローチャートである。ここで、記録ヘッドの駆動制御パラメータを定義するコマンドは、事前に記憶された記録ヘッド駆動条件テーブル内の値を修正するコマンドで構成される。簡単に言えば、図43Bによれば、複数の脱着可能な記録ヘッドのうちの少なくとも1つの記録ヘッドに関し、記録ヘッドの駆動条件を事前に定義記憶された参照テーブルを有するプリンタ内の記録ヘッド駆動条件を制御するために、外部ホストプロセッサは、制御比による処理を介した修正によるコマンドなど、事前に記憶された参照テーブルを修正するコマンドを送信する。プリンタコントローラは、事前に記憶された参照テーブルから記録ヘッド駆動条件を得て、修正された記録ヘッド駆動パラメータが得られるように記録ヘッド駆動条件を修正する。この後で、修正された記録ヘッド駆動パラメータが記録動作に使用される。
【0234】
詳細には、ステップS43101で、プリンタ30は、記録ヘッド・パルス幅シーケンスを駆動するための制御比を設定するコマンドを受信する。このコマンドはホストプロセッサ23によって送信され(ステップS43102)、そのようなコマンドが受信されなかった場合、プリンタ30はデフォルト値100%を維持する。ステップS43101で受信される記録ヘッド・パルス幅シーケンスを駆動するための制御比は、ステップS43112に関連して以下に詳しく説明するように、ROM122内の事前に記憶されたテーブルから得た参照値に適用される係数である。
【0235】
ステップS43103で、プリンタ30は、ヘッドの温度を算出するための制御比に関するコマンドを受信する。このコマンドはホストプロセッサ23から受信され(ステップS43104)、そのようなコマンドが受信されなかった場合、プリンタ30はデフォルト値100%を維持する。ヘッドの温度を算出するための制御比は、以下でステップS43115で詳しく説明するように、ヘッドの温度を算出するために使用される加熱係数の事前に記憶された値に対する乗算係数として適用される。
【0236】
好ましくは、ステップS43101〜S43104は、上記の第3.6節で定義したパルス比変更コマンド([PCR])を使用することによって実行される。前述のように、[PCR]コマンドは、ヘッドの温度を算出するために使用される加熱係数の比、ノズルからインク滴を吐出する際に変更される、記録ヘッド130aおよび130bの個々の各ノズルについてのパルス幅駆動シーケンスに関するパルス幅の比など、パルス制御テーブルの比を変更するために使用される。
【0237】
処理フローは、プリンタ30においてステップS43106〜S43115に進む。これらのステップは、記録ヘッド駆動パラメータの最新の値をリアルタイムで維持するように、たとえば、周期間隔50msで繰り返し実行される。具体的には、図23に関して説明したように、ステップS43106〜S43115は、ヘッドの温度を算出し、かつノズルからインク滴を吐出するために供給されるパルス幅シーケンスに関するパルス幅タイミングを得るために50ms周期間隔で実行され、これと共に、他のタスクも50ms間隔で実行される。
【0238】
再び図43Bを参照するとわかるように、ステップS43106で、プリンタ30内の図示していないサーミスタから現在の環境温度(Tenv)が読み取られる。現在の環境温度は、サーミスタから読み取られた最新の値でよく、あるいはより好ましくは、不規則さを平滑化し、サーミスタの不良な読取り値を無視し、アナログデジタルサンプリングノイズなどのノイズを除去することなどのために、サーミスタから読み取られた実際の値にLPFにかけられ、高周波成分が除去される。
【0239】
ステップS43106で読み取られた環境温度Tenvに基づいて、ステップS43107で目標温度(Ttgt)が算出される。目標温度は、現在の環境温度に基づくプリンタ30の好ましい動作温度である。一般的に言えば、プリンタ30は、図23の500ms割込みレベルに関して説明したように、目標温度に達するように記録ヘッド130aおよび130b内の図示しないヒータを通して制御される。目標温度は、現在の環境温度に基づく記録ヘッドの動作に最も好ましい温度である。目標温度と環境温度との間の関係は逆比例にあり、すなわち、環境温度が低いと、目標温度は比較的高くなり、それに対して環境温度が高いと、目標温度は比較的低くなる。たとえば、Tenv=5℃など極めて低い環境温度では、好ましい目標温度はTtgt=35℃であり、Tenv=35℃など極めて高い環境温度では、好ましい目標温度はTtgt=15℃である。
【0240】
ステップS43109で、記録ヘッド130aおよび130bからの実際のインク滴の吐出によってもたらされる記録ヘッドの温度に対する効果が算出される。具体的には、ステップS43106で読み取られた環境温度は、記録ヘッド130aおよび130bの外部に取り付けられたサーミスタによって読み取られる環境温度に基づくものである。一方、記録ヘッド駆動パラメータに対する適切な制御は、記録ヘッド・ノズルに隣接するインクの内部温度の影響をより直接受ける。一般に、そのような小さな領域内にサーミスタを取り付けることは実際的でないとみなされている。同時に、インク滴を実際に吐出するとインクの温度が上昇し、インクを吐出しないと一般に、インクの温度が低下することが知られている。ステップS43109の目的は、インク滴の吐出によってもたらされる記録ヘッドの温度に対する効果を算出することである。
【0241】
ステップS43109での記録ヘッドの温度の算出は、1つには50msなど前に述べた時間間隔にわたって実際に吐出されたインク滴の数に基づいて行われる。所定の時間間隔内のインク滴の各吐出に加熱係数加重が割り当てられる。所定の期間内のインク滴吐出の回数に基づいて、記録ヘッドの温度に対するインク滴の吐出の効果を算出することが可能である。
【0242】
同時に、そのような加熱係数が、使用される記録ヘッドの特定の種類と、読取りで使用されるインクの特性と、ヘッドによるプリントアウトの解像度などに応じて異なることが知られている。ヘッド/インク/解像度のそれぞれの異なる組合せに応じて、印刷されるドットの数に対応する加熱係数値が異なる。したがって、ROM122には加熱係数テーブルが事前に記憶される。この状況を図43Cに示す。
【0243】
図43Cに示したように、ROM122の1つの部分は、事前に記憶された加熱係数テーブル701を含む。このテーブルには、それぞれ、記録ヘッドとインクの特性と解像度のそれぞれの異なる組合せに関する、複数のテーブル702a、702bなどが含まれる。複数のテーブルはそれぞれ、1、2、3(参照符号703、704、705)として示された係数など、テーブルによってアクセスされる係数を含み、これらの係数は、ある特定の間隔、たとえば50ms(参照符号706で示す)で吐出されるインク滴の数に基づく参照動作を介してアクセスされる。プリンタ30は、デフォルト選択またはコマンドによる選択に基づいて、701に記憶されているテーブルから1つの加熱テーブルを選択し(以下で図43Dに関して説明する)、次いで50ms期間中に吐出される液滴の数に基づいて、選択されたテーブルから加熱係数を選択する。
【0244】
テーブル701内の参照動作を介して得られた係数は、インク滴の吐出の、記録ヘッドの温度に対する効果を算出するために使用される。1つの適切な計算を以下に示す。
【0245】
上式で、係数coeff1は吐出された黒インク滴の数に基づく加熱係数であり、係数coeff2は吐出されたカラーインク液滴の数に基づく加熱係数であり、係数coeff3はヒータの現在のデューティ・サイクルに基づく加熱係数であり、係数coeff4は不起動状態に基づいて実際に記録ヘッドの冷却状態を示す加熱係数である。もちろん、使用される実際の係数および計算は、ヘッド/インク/解像度の組合せに依存する。たとえば、上記で与えた計算は、4色記録ヘッドに適しており、それに対してオールブラック記録ヘッドは、たとえば、吐出されるカラーインク液滴の数に依存して異なる計算を用いる。
【0246】
環境温度Tenv、目標温度Ttgt、温度の記録ヘッドに対する効果ΔTmainが与えられると、ステップS43110で、以下のように差ΔTdiffが算出される。
【0247】
Tdiff=Ttgt−Tenv−ΔTmain
ステップS43111で、温度差Tdiffに基づいて、パルス幅駆動シーケンスに関するパルス幅時間が記憶されているROM122内の参照テーブルがアクセスされる。以下で説明するように、図43Cに適切なテーブルを概略的に示す。
【0248】
具体的には、図43Cに示したように、ROM122は、駆動時間を記憶する参照テーブル710を含む。駆動時間とは、ノズルヒータをインク滴を吐出するように駆動するために使用されるパルスシーケンスに関するパルス幅である。典型的なパルスシーケンスは、図43BにS43311で示されており、幅Tpreのプレヒートパルスと、幅Tintの休止期間と、幅Tmainのメインヒートパルスとを含む。そのようなパルスシーケンスは、印刷のためにインク滴を吐出するように記録ヘッド130aおよび130bの各ノズル内のノズルヒータに供給される。テーブル710の目的は、1つにはステップS43110で算出された温度差に基づいてTpre、Tint、Tmainのそれぞれを算出することである。
【0249】
同時に、記録ヘッドとインクの特性と解像度などとの特定の組合せに基づいてパルス駆動シーケンスのパルス幅が異なることが認識されよう。したがって、図43Cに示したように、テーブル710は、712a、712bなど個別のテーブルを含む。各テーブル712a、712bなどは、記録ヘッドとインクの種類と解像度の特定の組合せに対して調整される。710で示したように、各テーブルは、プレヒートパルスTpreの幅に関するエントリ714と、休止期間Tintの幅に関するエントリ715と、メインヒートパルスTmainの幅に関するエントリ716とを含む。ステップS43110で算出された温度差Tdiffに基づく参照動作によってある特定のエントリがアクセスされる。
【0250】
プリンタ30は、デフォルト選択に基づくか、あるいはコマンド選択に基づいて、710に記憶されているテーブルから1つの駆動時間テーブルを選択する(以下で図43Dに関して詳しく説明する)。プリンタ30はその後、選択されたテーブル内のエントリにアクセスし、ステップS43110で算出された温度差に基づき、記録ヘッド/インク/解像度の特定の組合せにおいて、プレヒートパルス、休止期間、メインヒートパルスに関し適切な時間を参照する。
【0251】
説明は図43Bに戻り、ステップS43112で、参照動作によってテーブル710から得られた駆動時間が、ステップS43101で受信された駆動制御比に基づいて修正される。このステップの目的は、プリンタ30に取り付けられた実際の記録ヘッドとテーブル710に記憶されている記録ヘッドの組合せとの間の違いを考慮した、参照テーブル710から得た事前に記憶された値の修正を可能にすることである。詳細には、前述のように、プリンタ30のROM122には、それぞれ、記録ヘッドとインクと解像度の特定の組合せに対して調整された、複数の駆動時間テーブルが事前に記憶されているが、記録ヘッドとインクと解像度のあらゆる組合せを予想することは不可能である。したがって、ステップS43112での修正によって、記録ヘッドとインクと解像度のまだ知られていない組合せまたはその他の理由で記憶されていない組合せを使用することが可能になる。
【0252】
ステップS43112での修正では好ましくは、ステップS43111で参照動作を介して得られた駆動時間に、ステップS43101で受信された制御比を乗じる。このため、デフォルト制御比は100%である。パルス制御比変更コマンド[PCR]を介して命令することのできる制御比は1%ないし200%になるように制限され、それによって、ほぼ無視できるパルス時間から、テーブル710に記憶されている値の2倍までパルス時間を修正することが可能になる。
【0253】
処理フローは次いでステップS43114に進み、プリンタ30は、ヘッドの温度を算出するために加熱係数を参照する。図43Cのテーブル701に関して説明したように、加熱係数は、記録ヘッドとインクと解像度の特定の組合せに基づいて得られ、各サイクルの継続時間が約50msであるサイクル当たりの印刷ドット数に基づいて1つのテーブル702aなどから参照される。
【0254】
ステップS43115で、ステップS43103で受信された制御比に基づいて加熱係数が修正される。この場合も、そのような修正の目的は、1つのテーブル701にまだ記憶されていない記録ヘッドとインクと解像度の特定の組合せの使用を可能にすることである。
【0255】
好ましくは、ステップS43115での加熱係数の修正では、ステップS43114で参照動作を介して得られた係数に、ステップS43103で受信された制御比を乗じる。このため、デフォルト制御比は100%である。パルス制御比変更コマンド[PCR]を介して命令することのできる制御比は1%ないし200%になるように制限され、それによって、ほぼ無視できるパルス時間から、テーブル701に記憶されている値の2倍まで加熱係数を修正することが可能になる。
【0256】
ステップS43116で、プリンタ30は、印刷データをプリンタ30へ送信するホストプロセッサ23からのコマンドと、プリンタ30にそのようなデータを印刷することを求めるコマンドとに応答して、ステップS43112で得られた修正済みの駆動時間に基づいてノズルの駆動を制御する(ステップS43117)。フローが前述のように繰り返され、ステップS43106〜S43115がたとえば、50ms周期間隔で実行され、ステップS43116で説明した修正済みの駆動時間に基づくノズルの駆動に対する制御が、ホストプロセッサ23からのコマンドに応じて実行される。また、駆動制御比と、ヘッドの温度を算出するための制御比を任意の時間にホストプロセッサ23から送信することができ、これに対して、前述のステップS43101〜S43103で説明したようにプリンタ30が応答することを認識されたい。
【0257】
図43Dは、脱着可能な記録ヘッドを有するプリンタの記録ヘッド駆動パラメータを定義することのできるコマンドをホストプロセッサ23などの外部装置からプリンタコントローラへ送信する本発明の他の実施形態を示す。図43Dに示した実施形態と、図43Bに示した実施形態との1つの違いは、図43Dの実施形態が、事前に記憶された記録ヘッド駆動パラメータを修正するパラメータには応答せずに、実際の記録ヘッド駆動パラメータに応答することである。一般的に言えば、図43Dの実施形態で受信されたパラメータは、プリンタバッファ139内のデータの読出し順序を制御し、記録ヘッド内の個々のノズルのノズル駆動シーケンスを制御し、ノズルから吐出される液滴のサイズを制御し、他の記録ヘッド駆動パラメータを制御する。好ましくは、ホストプロセッサ23からのコマンドは複数組のバッファ制御およびノズル駆動シーケンスのそれぞれを定義する。これらのバッファ制御およびノズル駆動シーケンスはプリンタ30のRAM129に登録される。ホストプロセッサ23からのその後のコマンドによって、登録されている数組のバッファ制御またはノズル駆動シーケンスのうちのどれかを、記録媒体を横切る記録ヘッドの特定の走査または複数の走査で使用される制御またはシーケンスとして選択することができる。
【0258】
詳細には、ステップS43351で、ホストプロセッサ23がプリンタ30へバッファ制御コマンドを送信し、ステップS43352で、プリンタ30がバッファ制御コマンドを受信し、後述のように適切に応答する。ステップS43351で送信されるバッファ制御コマンドには、バッファ制御シーケンスを定義する第1のタイプと、すでにプリンタ30内で定義されている複数のバッファ制御シーケンスのうちの1つを選択する第2のタイプがある。バッファ制御シーケンスを定義する第1のタイプに関しては、ホストプロセッサ23は、プリンタ30による印刷動作中にプリントバッファ139からデータを読み出すバッファ制御シーケンスを定義する。そのようなコマンドに応答して、プリンタ30によって、バッファ制御読出し順序が、後で選択できるようにRAM129に記憶される。好ましくは、バッファ制御読出し順序を定義するために、第3.6節で説明した定義バッファ制御テーブル・コマンド([DEFINE_CONTROL])が使用される。
【0259】
複数のバッファ制御読出し順序がRAM129に登録された後、第2のタイプのバッファ制御コマンドによって、ホストプロセッサ23がバッファ制御読出し順序の1つをその後のプリントアウト動作で使用する順序として選択することが可能になる。好ましくは、第3.6節で定義したバッファ制御テーブル選択([SELECT_CONTROL])コマンドがこの動作で使用される。
【0260】
図43Eは、[DEFINE_CONTROL]コマンドに基づいてRAM129に登録できるバッファ制御テーブルの例として、2つの異なるバッファ制御読出し順序を示す。そのようなバッファ制御読出し順序が必要とされる理由は、印刷動作中にプリントバッファ139からデータをどのように読み出すかに影響を与える少なくとも3つの異なる因子に対処するからである。そのような第1の因子は、記録ヘッド上にプリントノズルを配置する際のプリントノズルの傾斜調整である。この因子については図8に関して説明した。図8は、好ましくは、ノズル16個ごとに、1画素/360dpi、2画素/720dpi、4画素/1440dpiの横方向の変位が起こるようにわずかに傾斜した方向にノズルが配置されることを示している。
【0261】
バッファ読出し順序に影響を与える因子の第2の因子は、記録ヘッドの構成と、記録動作中に実際に使用されるノズルである。この係数については、様々な記録ヘッド構成およびノズルならびに解像度に関するバッファ読出し順序の例を示す図43E、図43F、図43Gと関連させて説明する。
【0262】
図43Eは、ある可能な記録ヘッド構成を示し、この場合、記録ヘッドは、黒インク用の64個のノズルの上方に垂直方向に斜めに配置された、イエロインク、マゼンタインク、シアンインクのそれぞれについて24個づつのノズルからなる。4色印刷の場合、通常は、合計64個のそのような黒インク用のノズルのうちの24個の黒インク用ノズルのみが、他の3つの着色剤(インク)用の24個のノズルに対応して使用される。しかし、物理的には、印刷に使用される24個の黒ノズルと、それらに最も近い互いに隣接するシアンインク用ノズルとの間にはかなりのオフセットがある。また、図8に関して説明したノズルオフセット長の原因には、バッファ読出し順序によって水平方向のノズルオフセットを補償しなければならないことがある。
【0263】
バッファ読出し順序は、このような影響を以下のように補償する。第1に、実際のノズル構成740は、1つの記録ヘッドが256個のノズルを有する仮想標準に対して定義される。図43Eに示す記録ヘッドは実際には、イエロインク、マゼンタインク、シアンインク、黒インクに関して上述したように24個−24個−24個−64個のノズル構成を有するので、ノズルの開始位置は実際には、プリントバッファにおいて256ノズルヘッドの場合より15バイト下の位置から始まる。したがって、ノズル開始位置741は15バイトとして定義される。その後、連続する各ノズル群ごとにノズルのオフセットに関するバイト位置が定義される。742で示したように、ノズルのオフセットは、イエロインク、マゼンタインク、シアンインクのそれぞれについて1バイトに対応する。最後の隣接するシアンノズルと、実際に印刷に使用される第1番目の黒インク用ノズルとの間のギャップは、仮想標準の256ノズルヘッドとは異なり6バイトに対応するので、実際に印刷に使用される第1番目の黒インク用ノズルに関してノズルオフセット6が定義される。
【0264】
バッファ読出し制御はさらに、バッファデータ高743をバイト単位で定義し(この例では、バッファデータ高は12バイトである)、プリントバッファ高744を定義する(この例では、プリントバッファ高は12バイトである)。
【0265】
ノズルの傾斜を補償するようにバッファ読出し順序を制御するために、プリントバッファ内の位置に関して開始位置745が定義される。プリントバッファの一部が746で指定されている。プリントバッファ内の8ビットバイトに対応する8つのノズルに関する以後の各オフセットは、図では747で指定されている。図43Eの例では、バッファ読出し順序が解像度360dpiでの記録向けに指定されている。この解像度では、ノズルの傾斜は、16個の垂直ノズルに対する水平方向の1記録画素に対応する。したがって、プリントバッファ内の最初の2バイト(16ビットに対応し、1ビットは、イエロインクの最初の16個のノズルのそれぞれに対応する)が順次読み出される。しかし、解像度360dpiでは、イエロインク用の次のノズルは実際には、前の16個のノズルから水平方向に1画素離れた位置に印刷される。この水平オフセットを補償するために、13バイトのバッファオフセットが設けられ、それによって、イエロインクについての最後の8つのノズルを前の16個のノズルに対して適切な垂直関係になるように印刷することができる。図8に示したようにイエロインクとシアンインクとの間には8つのノズルに対応する物理的ギャップがあるので、ギャップ内の存在しないノズルに読出しデータを与える必要はない。
【0266】
マゼンタインクでの記録用の第1のノズルは、イエロノズルに関する最後のプリントバッファ読出しの開始位置からノズル16個分に相当する物理的距離だけ離れた位置に配置されるので、最後の1組のイエロノズルの印刷と第1番目の1組のマゼンタノズルの印刷との間に付加的な13バイトのオフセットを設けなければならない。同様に、マゼンタインクによる記録の残りの部分およびシアンインクによる記録に関して順次、プラス1バイト、プラス13バイト、プラス13バイト、プラス1バイト、プラス13バイトのオフセットが設けられる。
【0267】
黒インクでの記録に関しては、実際に記録に使用される24個の黒インク用ノズルの位置が、図8に示した傾斜角度のために3画素分の水平シフトに対応するために、また、シアンノズルと黒ノズルとの間の8つのノズルのために、バッファ読出し順序には37バイトのオフセットが必要である。これは747にも示されている。
【0268】
したがって、簡単に言えば、バッファ読出し順序は、ギャップおよび傾斜角度、印刷に使用される実際のノズル、記録解像度などを含め、記録ヘッド上のノズルの物理的構成の影響を受ける。したがって、バッファ読出し順序を指定する1つの方法では、ノズル開始位置、ノズルオフセット、プリントバッファデータ高、プリントバッファ高、印刷で使用されるノズルに対応するプリントバッファ内のバイトに関するバッファオフセットが指定される。
【0269】
この構成が、解像度720dpiでの記録を示す図43Eに関連して、再び示されている。記録ヘッドの構成が変更されていないので、ノズルオフセットなどは必ずしも変更しなくてよい。しかし、解像度720dpiでは、図8の傾斜角度が、垂直方向に16個のノズル毎に2画素分の水平オフセットに対応するので、バッファオフセットを749で示したように変更しなければならない。
【0270】
記録ヘッドの構成(記録ヘッド上のノズルの物理的構成とノズルの傾斜角度とを含む)と印刷時に使用される実際のノズルと記録解像度のいくつかの異なる組合せに関してバッファ読取り順序をどのように指定するかのさらなる例を図43Fおよび図43Gに与える。たとえば、図43Fは、図43Eに示したのと同じ記録ヘッドを使用するが、64個全ての黒インク用ノズルのみを使用し、カラーインク用ノズルを使用しないプリントアウトを示す。したがって、750で示したように、仮想標準である256ノズルヘッドに対して、印刷で使用される第1番目のノズルは24バイト下に配置される。したがって、8つの連続する8バイトビットを含むノズルオフセット752と同様に、ノズル開始位置751は適切に変更される。プリントバッファデータ高は、754で示したように8バイトに変更される。ただし、プリントバッファ高755は12バイトのままである。バッファオフセット756は、物理的なプリントバッファの部分746に重ね合わせられ、プリントバッファの各バイトの適切な読出し順序に関するオフセットを示す。
【0271】
解像度720dpiでの印刷の場合のバッファオフセットを757に示す。
【0272】
図43Gは、図8に98で示したように、傾斜角度を用いて記録ヘッド上に順次配置された黒インク用の128個のノズルで構成された記録ヘッドを使用する際のバッファ読出し順序の例を示す。このようなノズル構成759は、16バイト下のノズル開始位置760から始まるために、仮想標準の256ノズルヘッドとは異なる。ノズルオフセット761はノズルが8ビット群で16個順次並んでいることを示す。プリントバッファ・データ高762は、プリントバッファ高764と同様に、16バイトに設定される。バッファ・オフセット765は、バッファ読出し順序が、プリントバッファの部分746に重ね合わされたときに記録ヘッドの傾斜によってどのような影響を受けるかを示す。
【0273】
解像度720dpiでの印刷の場合、バッファオフセットは766で示したように設定される。
【0274】
読出し順序に影響を与える他の因子のうちの第3の因子は記録解像度である。特に、高解像度で記録する際には、低解像度で記録する際よりも遅いキャリッジ速度が使用される。キャリッジ速度の差と、この差をプリントノズルの非斜め構成の効果に対してどのように考慮するかの問題とのために、記録解像度に基づいてバッファ読出し順序を修正する必要がある。
【0275】
したがって、簡単に言えば、ステップS43351で、複数のバッファ制御テーブルがプリンタ30へ送信され、ステップS43352でこれらのテーブルがプリンタに登録される。このテーブルの1つが、実際の印刷動作中に使用するために選択される。
【0276】
ステップS43354で、ホストプロセッサ23はノズル駆動シーケンスコマンドをプリンタ30へ送信する。ホストプロセッサ23から送信されるノズル駆動シーケンス・コマンドは、ステップS43355でプリンタ30によって受信され、後述のように適切に処理される。一般的に言えば、ステップS43354では、複数の異なるノズル駆動シーケンスを定義する第1のタイプと、1つの定義済みノズル駆動シーケンスが、その後の印刷動作時に使用されるシーケンスとして選択される第2のタイプの2種類のノズル駆動シーケンスコマンドの内の一方が送信される。第1のタイプのノズル駆動シーケンスコマンドの場合、ノズル駆動シーケンスコマンドが定義され、ホストプロセッサ23が好ましくは、第3.6節で説明した加熱パルス・テーブル定義コマンド([DEFINE_PULSE])を送信する。ホストプロセッサ23によって定義されたそのような各ノズル駆動シーケンスについて、プリンタ30は、ノズル駆動シーケンスをRAM129に登録することによって応答する。
【0277】
第2のタイプのノズル駆動シーケンスコマンドの場合、ホストプロセッサ23は、複数の登録済みノズル駆動シーケンスのうちの1つをその後の印刷動作で使用されるシーケンスとして選択する。好ましくは、ホストプロセッサ23は、第3.6節で説明した加熱パルステーブル選択コマンド([SELECT_PULSE])を使用する。プリンタ30は、加熱パルステーブル選択コマンドを受信すると、登録済みの加熱パルステーブルのうちの指定されたテーブルをRAM129から検索し、記録ヘッド130aおよび130bの、記録媒体を横切る次の走査または複数の走査など、以後の印刷動作に使用する。
【0278】
いくつかの異なるノズル加熱シーケンスの例を図43Hに示す。いくつかの異なるノズル駆動シーケンスが必要である理由は、実際のノズル駆動シーケンスが、解像度、走査方向(すなわち、往路走査または復路走査)、ノズルの傾斜角度を含め多数の係数に依存することである。他の因子もノズル駆動シーケンスに影響を与える。たとえば、低解像度でのプリントアウトでは、記録ヘッドが記録媒体を高速で横切って移動するため、解像度はノズル駆動シーケンスに影響を与える。この速度は、16個のノズルがインクを吐出する際に、キャリッジがノズルの傾斜角度に対応して厳密に1画素/360dpi、2画素/720dpi、または4画素/1440dpiだけ前進するように算出される。この結果、ノズルが上から下へ順次駆動された場合には垂直線が印刷される。一方、低解像度では、キャリッジ速度は遅くなる。したがって、垂直線を得るには、他のあらゆるノズルを順次駆動する必要がある。したがって、解像度は、ノズル駆動シーケンスに影響を与える1つの因子である。
【0279】
容易に理解できるように、ノズル駆動シーケンスに影響を与える他の因子は記録方向である。具体的には、傾斜角度のために、往路方向の記録と復路方向の記録との間ではノズル駆動シーケンスを反転しなければならない。
【0280】
図43Hは、ホストプロセッサ23によって定義し、後で1つのシーケンスを選択できるようにプリンタRAM129に登録することのできるノズル駆動シーケンスのいくつかの例を示す。図43Fに示したように、ノズル番号1〜16に関するノズル駆動シーケンスは、4つの異なる印刷条件、すなわち、往路方向に解像度360dpiで印刷、復路方向に解像度360dpiで印刷、往路方向に解像度720dpiで印刷、復路方向に解像度720dpiで印刷の4つの異なる印刷条件に関して定義される。4つのノズル駆動シーケンスはそれぞれ、ホストプロセッサ23によって定義され、プリンタ30へ送信され、次いで、プリンタ30はそのノズル駆動シーケンスをRAM129に登録する。その後、ホストプロセッサ23は、1つのノズル駆動シーケンスを現在必要な印刷条件に適切なシーケンスとして選択し、適切な選択コマンドをプリンタ30へ送信する。プリンタ30は、指定されたノズル駆動シーケンスを選択し、それを以後の印刷動作に使用することによってコマンドに応答する。
【0281】
したがって、簡単に言えば、ステップS43354で、ホストプロセッサ23は複数の異なるノズル駆動シーケンスを定義することができ、このうちの1つが、その後の印刷動作で使用されるシーケンスとして指定される。ステップS43355で、プリンタ30は、複数のノズル駆動シーケンスのそれぞれをRAM129に登録し、登録したノズル駆動シーケンスのうちの指定されたシーケンスをその後の印刷動作で使用されるシーケンスとして選択することによって、ホストプロセッサ23からのコマンドに応答する。
【0282】
ステップS43356で、ホストプロセッサ23が、第3.6節で説明した[DROP]コマンドなどの液滴サイズコマンドを送信し、ステップS43357で、プリンタ30が、液滴サイズコマンドで命令された液滴サイズを選択することによってそのコマンドに応答する。その後、この液滴サイズで印刷が行われる。
【0283】
ステップS43359で、ホストプロセッサ23は(好ましくは、[DATA]コマンドと共に)印刷データを送信し、その後、データの印刷を実行するコマンド([PRINT]コマンドを含む)をプリンタ30へ送信する。プリンタ30はステップS43360〜S43362で、ステップS43352で選択されたバッファ制御コマンドに基づいてプリントバッファ139からの読出し順序を制御し、ステップS43355で受信されたノズル駆動シーケンスコマンドに基づいてノズル駆動シーケンスを制御し、ステップS43357で受信された液滴サイズコマンドに基づいて液滴サイズを制御することによって応答する。
【0284】
したがって、前述の処理により、記録ヘッドを駆動するためのパラメータを設定する外部ホストプロセッサからのコマンドを使用することによって、設計時には構想されなかった構成を有する記録ヘッドを使用するようにプリンタを制御することができる。このため、それぞれの異なるヘッド構成およびその他の特性を有する新しい記録ヘッドが開発されたときにそれを受け入れるプリンタ30の融通性が大幅に向上する。
9.0 プリントバッファの動作
図43Iは、往路方向への印刷のための、ホストプロセッサ23内の印刷データストア136からプリントバッファ139(図10および図11に示されている)への印刷データの転送を示す。図43Iに示される印刷転送は、プリンタドライバ114に記憶されているプログラムコードと、プリンタ30に記憶されているプログラムコードによって制御される。図43Iによれば、1つの記録ヘッド4330が静止位置から往路走査方向に一定の走査速度にまでランプアップし、記録媒体を横切りながら走査し、その一定の走査速度から静止位置へランプダウンするという過程を経ることによって、記録媒体を横切る走査を実行する。ランプアップ位置は参照番号4335で示され、走査領域は参照番号4338で示され、ランプダウンは参照番号4339で示されている。参照番号4320は、現在の走査のための印刷データが記憶されているプリントバッファ139内の領域を表す。領域4321は、記録ヘッドの傾斜角度に対応する印刷データを記憶するために予約されたプリントバッファの余分な領域である。(プリントノズルの傾斜角度に対応するデータを記憶するためにプリントバッファ139内の余分な記憶域が必要であることについては、図43E〜図43Gに関して説明し、バッファ読出し順序に関する前節の説明で説明した)。参照番号4325は、プリンタドライバ114によって得られ、ホストプロセッサ23内の印刷データストア136に記憶される印刷データを表す。この印刷データは次の走査のためのデータである。参照番号4315は記録媒体上に印刷された画像を表し、この印刷された画像は、プリントバッファ4320内の現在の走査のためのデータに従って記憶される。
【0285】
図43I(A)に示したように、プリントバッファのすべての印刷位置に現在の走査のための印刷データがあり、印刷データストア136のすべての印刷位置に次の走査のためのデータがある。ランプアップ期間4335中に、記録ヘッド4330は、一定の走査速度に達するまで印刷を行わずに往路走査方向へ移動する。印刷が行われないので、プリントバッファ4320内の印刷データは空にならず、したがって、プリントバッファ4320には、次の走査のための印刷データを印刷データストア136から転送するための空間がない。
【0286】
図43I(B)は、記録ヘッド4330が一定の走査速度に達し、4315で示したようにプリントアウトを開始した状況を示す。現在の走査のための印刷データがプリントバッファからなくなった(あるいはより厳密に言えば、すでに印刷されたのでもはや必要なくなった)ので、次の走査のための印刷データの第1番目のブロックをプリンタドライバ114の印刷データストア4325からプリントバッファ4320へ送信することができる。しかし、プリントバッファ4320には、印刷データストア4325からの追加のデータに使用できる余分の空間がなく、したがって、更なるデータ送信はなされない。
【0287】
プリンタドライバ114が、プリントバッファ4320に空領域があることを判定するために使用する1つのメカニズムは、プリンタ30へのデータ転送が現在受け入れられないことを示すプリンタ30からの信号である。そのような信号の例には、"ビジー(busy)信号"や"ノットレディ(not-ready)信号"などが含まれ、以下、このような信号を"ビジー信号"と呼ぶ。ビジー信号は、プリンタ30によって生成され、ホストコンピュータ・インタフェース141を介してホストプロセッサ23へ送信される。具体的には、プリンタ30が、キャリッジを記録媒体を横切りながらステップ移動させるステッピングモータを使用するので、プリンタ30は常に記録ヘッド4330の印刷位置を知っている。プリンタ30はさらに、プリントバッファ4320内の現在印刷されていない領域の左縁および右縁を知っている。プリンタ30は、記録ヘッド4330の位置とプリントバッファ4320の左縁および右縁とを比較することによって、プリンタドライバ114から受信されたデータを記憶すべき空領域がプリントバッファ内にあるかどうかを判定することができる。プリントバッファ内に空領域がない場合、プリンタ30はホストプロセッサ23へのビジー信号を生成する。一方、プリントバッファ4320内に空領域がある場合、プリンタ30はビジー信号をクリアし、印刷データを受け入れる準備が完了していることを示す。
【0288】
図43I(C)〜(E)によれば、4315で示すように、現在の走査のための印刷データはどんどん、プリントバッファ4320から記録媒体上に印刷される。各連続印刷データブロックがプリントバッファ4320からなくなるにつれて、プリンタドライバ114は、次の走査のための連続印刷データブロックを印刷データストア136の領域4325からプリントバッファ4320へ送信する。したがって、図43I(C)に示したように、第2番目の印刷データブロックが印刷データストアの領域4325からプリントバッファ4320へ送信され、図43I(D)に示すように、連続ブロック3〜8が印刷データストア4325からプリントバッファ4320へ送信され、図43I(E)に示すように、次の走査のための第16番目の印刷データブロックが印刷データストア4325からプリントバッファ4320へ送信される。図43I(E)によれば、4315で示したように現在の走査領域全体が印刷され、記録ヘッド4330がランプダウン動作を開始する。当然のことながら、この場合、記録ヘッド4330は、現在プリントバッファ4320に記憶されている印刷データを次の走査に使用して復路方向への印刷を開始することが可能である。この間に、プリンタドライバ114によって、印刷データストア136からプリントバッファ139へさらに続く走査のための印刷データが送信される。
【0289】
復路方向の記録については、以下に、図43Jを参照して説明する。
【0290】
具体的には、図43J(A)は図43I(A)と同様な状況を示し、この場合、現在の走査のための印刷データ(プリントバッファ4320に記憶されている)のサイズは、その後の走査のための印刷データ(印刷データストア4325に記憶されている)のサイズと同じかそれ以上である。参照番号4321は、記録ヘッド4330上のノズルの傾斜角度を補償するバッファ読出し順序に対処するためのプリントバッファ4320の余分な記憶域を指す。以下、そのような領域を「ノズル・オフセット長」と呼ぶ。参照番号4315は、往路走査によってすでに記録媒体上に印刷されたデータを指す。4339で示したランプアップ期間中に、記録ヘッド4330が静止位置から一定の走査速度にランプアップするが、データは印刷されずプリントバッファ4320のデータが空になることはない。図43J(B)によれば、記録ヘッド4330は、復路方向へ一定の速度で移動しており、プリントバッファ4320内の現在の走査のための印刷データに対応するデータの印刷を開始している。記録媒体上の印刷されたデータを4316で示す。記録媒体上のプリントアウトによってプリントバッファ4320のかなり大きな領域が空になっているので、印刷データストア4325から得た第1番目のデータブロックはプリンタドライバ114によってプリントバッファ4320へ転送される。
【0291】
復路方向への印刷を継続すると、その後のデータブロックが記録媒体上に印刷され、それによってプリントバッファ4320の印刷データが空になる。この状況は図43J(C)および図43J(D)に示されており、この場合、プリンタドライバ114によって印刷データストア4325からバッファ4320の空領域へ第2番目のブロック以後のブロック3〜8が転送される。図43Iに示した場合と同様に、プリンタドライバ114は、プリンタ30からビジー信号を受信しないかぎりプリンタ30へデータを送信する。図43J(E)で、最後の印刷データブロックがプリントバッファ4320から記録媒体上の4316に印刷され、それによって、次の走査のための最後の印刷データブロックを印刷データストア4325からプリントバッファ4320へ転送することが可能になる。記録ヘッド4330はその後、4335で示したように、一定の走査速度から静止位置にランプダウンする。
【0292】
図43Kは、プリントバッファ4320に記憶されている現在の印刷データが、ホストプロセッサ23内の印刷データストア4325に記憶されている次の走査のための印刷データよりも小さい場合に、1つの記録ヘッド4330が往路走査方向に記録媒体を横切って走査記録中に、ホストプロセッサ23内の印刷データストア136からプリンタ30のプリントバッファ139への印刷データが転送される様子を示す。現在の印刷データの量が次の走査の印刷データよりも少ないので、印刷が始まる前でもプリントバッファ4320には空領域がある。したがって、次の走査のための印刷データをプリントバッファ4320のすでに空の領域へ転送することによって、この状況を利用することが可能である。そのような処理について、図43Kを参照して、以下に説明する。
【0293】
この場合、プリンタドライバ114はプリンタ30からのビジー/レディー信号生成にのみ依存しなくても、次の走査のための印刷データを記憶すべき空の空間がプリントバッファにあるかどうかを判定することができる。これは、プリンタドライバがすでに、特定のプリントバッファ位置に記憶される現在の走査のためのデータを送信しており、次のス走査のための印刷データを受信するために、プリントバッファ内のどの位置が空であり準備が完了しているかを、プリンタからのフィードバックなしに判定することができるからである。プリンタ30は、プリンタドライバが印刷データを送信する間にビジー信号を生成することができるが、ビジー信号は通常、プリントバッファ位置の空/満杯状況とは無関係の理由(たとえば、プリンタが、ヘッドの清掃など他のタスクで占有されているため、新しいデータを受信する準備が完了していない)で生成される。
【0294】
図43K(A)によれば、1つの記録ヘッド4330は、領域4335で静止位置から一定の走査速度にランプアップし、一定の速度で領域4338を横切りながら印刷を行い(あるいは往路走査方向に次の印刷領域をシークし)、次いで領域4339で一定の走査速度から静止位置にランプダウンすることによって、記録媒体を横切る印刷を行う。参照番号4320はプリントバッファを指し、このプリントバッファは領域4320−1と、領域4320−2と、領域4320−3とを含み、このうち領域4320−3のみが現在の走査のための印刷データを含む。残りの領域は空であり、記録媒体上の対応する位置に印刷すべきデータがないことを示す。参照番号4321はプリントバッファ4320のノズルオフセット領域を指す。参照番号4325はホストプロセッサ23からプリンタ30へまだ送信されていない印刷データストア136内の次の走査のためのデータを指す。
【0295】
図43K(B)によれば、記録ヘッド4330のランプアップ期間中には、プリントバッファ4320内に空の位置があるため、プリンタドライバ114によって印刷データストア4325からプリントバッファ4320へ第1番目のブロックの情報が転送される。同様に、図43K(C)によれば、プリントバッファ4320−2が空なので、第2番目の印刷データブロックが印刷データストア4325からプリントバッファ4320へ送信される。この時点で、記録ヘッド4330は、一定の走査速度に達しており、プリントバッファ4320内の現在の走査のための印刷データに対応する第1の印刷領域を往路走査方向にシークし始める。この状況は図43K(D)に示されており、この場合、印刷データ4315は、記録ヘッド4330によって記録媒体上に印刷される。さらに、印刷データ4315の印刷によってプリントバッファ4320内の領域が空になるので、プリンタドライバ114によって印刷データストア4325からプリントバッファ4320へその後の印刷データブロックが転送される。記録ヘッド4330が引き続き往路方向へ移動すると、図43K(E)に示されるように、印刷された領域が4315に追加され、プリンタドライバ114によって印刷データストア4325からプリントバッファ4320へはこれに続くブロックの印刷データが転送される。図43K(F)によれば、記録ヘッド4330は、参照番号4315で示したようにプリントバッファ4320内の現在の走査のための印刷データすべての印刷を完了しており、次の印刷データの端部をシークするために往路方向への移動を開始している。次の印刷データは、この時点ですべて印刷データストア4325からプリントバッファ4320へ転送されている。往路方向へのシークが完了すると、記録ヘッド4330は、領域4339で一定の走査速度から静止位置にランプダウンし、次に復路方向に一定の走査速度になるまでランプアップを開始し、今やプリントバッファ4320にはすべてが記憶されている印刷データについての印刷を行う。
【0296】
復路方向への印刷は、全体的には、図43Jに示した線に沿って進み、ランプアップ時に次の走査のやめのデータがプリントバッファ4320の空位置へ転送され、プリントアウトに伴ってプリントバッファ位置が空になるにつれて順次、印刷データブロックがプリントバッファへ転送される。
9.1 シングルプリントバッファ
図43Iに示した往路方向の記録動作と図43Jに示した復路方向の記録動作では、現在の走査のための印刷データの量がその後に続く走査のための印刷データの量と同じかそれ以上であるので、印刷データを事前に印刷データストア4325からプリントバッファ4320へ転送しておくことは不可能である。したがって、記録ヘッド4330が印刷を行うことによってプリントバッファ4320内のデータを空にしないかぎり、プリンタドライバ114からプリンタ30へ新しいデータを送信することはできないので、印刷性能に影響を受ける。
【0297】
これに対して、図43Kに示した場合、現在の走査のための印刷データの量がその後に続く走査のための印刷データの量よりも少ないので、記録ヘッド4330が印刷を開始する前でも、プリンタドライバ114がその後の走査のためのデータをプリントバッファ4320の空の領域に転送することが可能である。この構成によって処理速度には有利になる。同時に、現在の走査のためのデータが次の走査のためのデータよりも少ない状況はそれほど頻繁には起こらない。というのは、連続する各走査についての印刷データが、前の走査の印刷データと同じであるか、あるいはほぼ同じである方がずっと多いことが普通のことであるからである。
【0298】
すべての走査に関する印刷データ転送の性能を向上させるために、本発明者は本明細書で、記録ヘッド4330のランプアップ期間に対応してプリントバッファ4320に追加の領域を設けることを検討した。この追加の領域を、以下、"シフト領域"と呼ぶ。プリントバッファ4320に追加のシフト領域を設けることは、常に、場合によっては記録ヘッド4330が印刷を行っていないときにも、プリンタドライバ114が次の走査のために印刷データを蓄積することのできる空領域がプリントバッファ4320内にあることを意味する。特に、プリンタドライバ114は、記録ヘッド4330のランプアップを完了したとき、あるいはその前に印刷データをシフト領域へ転送することができる。さらに、プリンタドライバは、プリンタがビジー/読取り信号を生成することにのみ依存しなくても、プリンタがこのシフト領域に印刷データを受け入れる準備が完了しているかどうかを判定することができる。これは、プリンタドライバ自体が、現在の走査および次の走査のための印刷データをプリンタバッファ内のどこに記憶するかを指定し、シフト領域が印刷データを受信する準備が完了しているかどうかを、通常はプリンタからのフィードバックなしに判定することができるからである。
【0299】
図43Lは、図43Iに示したのと同様な場合、すなわち、現在の走査のための印刷データが次の走査のための印刷データとほぼ同じサイズである場合に、往路方向への印刷時に、データ転送の効率を高めるためのシフト領域の使用法を示す。図43L(A)で、プリントバッファ4320は、領域4320−2の最前縁部に付加されたシフト領域4320−1を含む。参照番号4321はノズル・オフセット長を補償するプリンタバッファ内の領域を指す。領域4320−2は現在の走査のための印刷データを記憶し、シフト領域4320−1は空であり、印刷データストア4325は、プリンタドライバ114からの送信を待つ次の走査のための印刷データを記憶する。図43Iとは異なり、次の走査のための印刷データは、実際の印刷位置からシフトされた位置に示され、実際の印刷位置からのシフトは点線で示されている。このシフトは、プリントバッファ4320のシフト領域4320−1および領域4320−2へのデータの転送の図示を簡略化するための例示的なものに過ぎない。
【0300】
プリンタ30からのビジー信号がない場合、プリンタドライバ114は、印刷データストア4325からプリントバッファ4320へ印刷データを転送することが可能であると判定する。したがって、図43L(B)に示したように、記録ヘッド4330のランプアップ期間4335中に、プリンタドライバ114は、次の走査に関する第1番目のブロックの印刷情報を印刷データストア4325からプリントバッファ4320のシフト領域4320−1へ送信する。シフト領域が充填された後、プリンタ30はデータのさらなる送信を停止するビジー信号を生成する。図43L(C)によれば、記録ヘッド4320は、一定の走査速度に達しており、プリントバッファ4320の領域4320−2のデータをプリントアウトすることによって現在の走査のための印刷データのプリントアウトを開始する。印刷された領域を4315で示す。プリントバッファ4320−2のある領域が空になった後、プリンタ30は、追加のデータを受信する準備が完了したことをプリンタドライバ114に示すビジー信号を解放する。したがって、プリンタドライバ114は、印刷データストア4325からプリントバッファ4320への次の走査に関する第2番目のブロックの印刷データの送信を開始する。
【0301】
記録ヘッド4330が往路方向への印刷を継続すると、プリントバッファ4320の連続領域の印刷データが空になり、それによって、印刷データストア4325から次の走査のための印刷データを受信するプリントバッファ4320内の場所が解放される。この状況は図43L(D)および図43L(E)に示されており、この場合、領域4315へのプリントアウトによってプリントバッファ4320の連続領域の印刷データが空になり、プリンタドライバ114によって印刷データストア4325からプリントバッファ4320へ連続するブロックの印刷データが送信される。
【0302】
図43L(E)では、印刷データストア4325からプリントバッファ4320へ次の走査に関する最後のブロックの印刷データが送信されている。しかし、プリントバッファ4320内の現在の走査のための印刷データが印刷されていないので、現在の走査に関する印刷はまだ完了していない。したがって、図43L(F)に示すように、記録ヘッド4330は印刷を継続し、プリントバッファ4320の追加の領域を解放する。図43L(E)に示したようにすべての印刷データがすでに送信されているので、次の走査のための印刷データにプリントバッファ4320の他の領域を解放する必要はない。したがって、プリントバッファ4320の新たに解放された領域は、図43L(A)〜図43L(F)に示したように、復路方向の印刷時におけるシフト領域として再割振りされる。いずれにしても、往路方向の印刷が終了すると、記録ヘッド4330は4339で一定の走査速度から静止位置にランプダウンする。
【0303】
図43Mは、印刷データストア4325からプリントバッファ4320への次の走査のための印刷データの転送を示し、この場合、プリントバッファ4320は、領域4320−2ならびに空シフト領域4320−1に現在の走査のための印刷データを含んでいる。したがって、図43Mに示した印刷は図43Jに示した印刷、すなわち、復路方向の印刷に類似している。しかし、主として、より効率的なデータ転送を可能にするシフト領域4320−1が使用されているために、図43Mに示したデータ転送は、図43Jに示したデータ転送とは異なる。
【0304】
ランプアップ領域4335での、静止位置から一定の走査速度への記録ヘッド4330のランプアップ期間が終了する前に、プリンタ30は、プリントバッファ4320内に空領域がある(図43M(A))ため、ホストプロセッサ23にレディー信号(ready)を示す。したがって、プリンタドライバ114は、次の走査に関する第1番目のブロックの印刷データを印刷データストア4325からシフト領域4320−1へ送信する。これは図43M(B)に示されており、この場合、記録ヘッド4330は一定の走査速度へのランプアップを開始している。印刷データストア4325からシフト領域4320−1へ第1番目のブロックの印刷データが送信された後、プリンタ30は、もはや印刷データが送信されないことをプリンタドライバ114に示すビジー信号を生成する。
【0305】
図43M(C)で、記録ヘッド4330は一定の走査速度に達しており、復路方向への印刷を開始している。復路方向には参照番号4316で示す領域へのプリントアウトによってプリントバッファ4320のある領域が空になる。このため、プリンタ30は、プリンタ30自体が印刷データを受け入れられることをプリンタドライバ114に示すレディー信号(ready)を生成する。したがって、プリンタドライバ114は、次の走査のための第2番目のブロックの印刷データを印刷データストア4325からプリントバッファ4320へ送信する。
【0306】
図43M(D)〜図43M(E)は、復路方向における継続した印刷を示す。すなわち、図43M(D)によれば、記録ヘッド4330は復路方向への印刷を継続し、それによってプリントバッファ4320内の印刷位置を空にする。印刷位置が空になったことに応答して、プリンタドライバ114は、次の走査のための連続ブロックの印刷データを、プリントバッファ4320の連続的に空になった位置へ送信する。図43M(E)によれば、印刷データストア4325からプリントバッファ4320へ次の走査に関する最後のブロックの印刷データが送信されている。しかし、プリントバッファ4320には印刷されていないデータが残っているので、復路方向への印刷はまだ完了していない。したがって、図43M(F)に示したように、復路方向への印刷が継続し、プリントバッファ4320の連続位置が空になる。図43M(E)ですべてのそのようなデータが送信されたので、空になった連続位置は、次の走査のための印刷データには必要とされない。したがって、プリントバッファ4320の空になった位置は、往路方向へのその後の印刷のためのシフト領域になる。
【0307】
図43Lおよび図43Mに示した処理により、シフト領域を使用することによって印刷データの転送がより効率的になる。この場合、シフト領域は、往路方向への印刷時にはプリントバッファの往路走査方向の前端部に付加され、現在の印刷データ行の印刷が終了したときにはプリントバッファ4320の末端部に創成される。プリントバッファ4320の末端部に作成されたシフトバッファ(シフト領域)は、復路印刷方向における続く走査で使用される。したがって、プリンタドライバ114は、印刷データのランプアップ時にデータを送信すべきプリントバッファ4320の空位置を有するので、印刷データ転送効率が向上する。
【0308】
図43Nは、現在の走査のための印刷データのサイズが次の走査のための印刷データのサイズよりも小さい図43Kと同様な状況でのデータの転送を示す。しかし、図43Nに示したデータ転送では、データ転送の効率を向上させるために、記録ヘッド4330のランプアップ期間に対応してシフト領域4320−5が設けられる。
【0309】
図43Nでは、プリントバッファ4320は、現在の走査のための印刷データを含む領域4320−1を含む。領域4320−2、領域4320−3、領域4320−4は、印刷データを含まない空領域である。参照番号4321は、ノズルオフセット長のために設けられたプリントバッファ4320の領域である。参照番号4320−5は、記録ヘッド4330のランプアップ期間に対応するシフト領域である。
【0310】
図43N(A)に示したように、現在ホストプロセッサ23内の印刷データストア4325に記憶されている次の走査のための印刷データは、現在の走査のための印刷データよりもサイズが大きい。したがって、空であり、かつ記録ヘッド4330がまだ印刷を開始していない場合でもデータを受け入れることのできるプリントバッファ4320の領域がある。この状況は図43N(B)に示されており、この場合、静止位置から一定の走査速度への記録ヘッド4330のランプアップが完了する前に、プリンタドライバ114によって印刷データストア4325からプリントバッファ4320へ次の走査に関する第1番目のブロックの印刷データが送信される。この印刷データはシフト領域4320−5および空領域4320−4に記憶される。その後、図43N(C)に示したように、記録ヘッド4330は一定の走査速度に達し、プリントバッファ4320の領域4320−1内の印刷データに対応する第1の印刷位置を見出すために往路走査方向にシークを開始する。この期間中には、まだプリントバッファ4320に空領域が残っているので、プリンタドライバ114は、次の走査に関する第2番目のブロックの印刷データを印刷データストア4325からプリントバッファ4320の空領域4320−2へ送信する。
【0311】
図43N(D)では、記録ヘッド4330は第1の印刷位置に達しており、参照番号4315に示したようにプリントアウトを開始する。記録ヘッド4330は、印刷を継続するにつれて、プリントバッファ4320の印刷データを空にし、それによって次の走査のための印刷データを受信するプリントバッファ4320の領域を解放する。したがって、プリンタドライバ114は次の走査のための第3番目のブロックの印刷データを印刷データストア4325からプリントバッファ4320へ送信する。
【0312】
記録ヘッド4330は引き続き、往路方向への印刷を行うにつれて、プリントバッファ4320内の記憶位置を空にしていく。この状況は図43N(E)に示されており、この場合、記録ヘッド4320は参照番号4315で示した領域への現在の走査におけるすべての印刷情報の印刷を完了している。プリンタドライバ114は引き続き、次の走査に関するその後の印刷データブロックをプリントバッファ4320の空になった位置へ転送する。同時に、記録ヘッド4320は、次の走査に関する印刷データの第1の印刷位置を見出すため往路方向にシークを開始する。図43N(F)で、記録ヘッド4330は、その位置に達し、一定の走査速度から静止速度へのランプダウンを開始し、復路方向印刷ができるように走査方向を反転させる。
【0313】
この場合、ランプダウン中と、復路方向印刷のためのランプアップの前に、復路方向印刷のためのシフト領域用の空位置として領域4320−3を使用することができる。したがって、次の順番となっている走査のための印刷データが、プリントバッファ4320に記憶されている印刷データ以上のサイズのものである場合でも、次の走査のための印刷データを受け入れる空位置がプリントバッファ4320内の領域4320−3にある。このため、プリンタドライバ114からプリントバッファ4320への印刷データの伝送量が増加する。
【0314】
復路方向印刷は全体的に、図43Jに示した線に沿って進み、ランプアップ時に次の走査のためのデータがプリントバッファ4320の空位置へ転送され、プリントアウト時にプリントバッファの場所が空になるにつれて、印刷データブロックが順次、プリントバッファへ転送される。
【0315】
要約すれば、シフト領域を使用して印刷データの伝送効率を高めるには、プリンタドライバ側の制御とプリンタ側の制御との間の協働が必要である。プリンタドライバ側に関して言えば、プリンタドライバは、現在の走査(すでに送信されている)および次の走査(まだ送信されていない)の左縁部および右縁部を監視する。次の走査の左縁部が現在の走査の左縁部よりも小さい(即ち、より左側にある)場合、プリンタドライバは、現在の走査の左縁部に達するまでデータブロックを送信する。同様に、次の走査の右縁部が現在の走査の右縁部よりも大きい(即ち、より右側にある)場合、プリンタドライバは、現在の走査の右縁部に達するまで次の走査の右側に関するデータブロックを送信する。この処理によって、次の走査のためのデータが現在の走査のためのデータよりも大きい場合、データはできるだけ効率的に送信される。
【0316】
また、次の走査の印刷領域が現在の走査の印刷領域と重なり合う重なり領域では、プリンタドライバは、その重なり合う領域を小さなブロックに分割する。プリンタドライバは、プリンタからビジー信号またはレディー信号を受信したことに応答して、この重なり合う領域を小さなブロックの単位で送信する。現在の走査が往路方向への走査である場合、プリンタドライバは次の走査に関し重なり合うデータを小さなブロックの単位で左から右へ送信する。これに対して、現在の走査が復路方向への走査である場合、プリンタドライバは次の走査に関し重なり合う領域を小さなブロックの単位で右から左へ送信する。
【0317】
一方、プリンタ側に関して言えば、現在の走査に関する印刷を開始すると、プリンタは記録ヘッドの位置についてモニタを続ける。(プリンタがキャリッジ移動を監視することによって更新されていくのであるが)受信した印刷データブロックの右端が現在の走査のためのデータの左端よりもさらに左側にあることが判明した場合、プリンタはただちに、受信したデータブロックをプリントバッファに入れる。同様に、(プリンタがキャリッジ移動を監視することによって更新されていくのであるが)次の走査のために受信した印刷データブロックの左端が現在の走査のためのデータの右端よりもさらに右側にあることが判明した場合、プリンタはただちに、受信したデータブロックをプリントバッファに入れる。重なり合った領域、即ち、受信したデータブロックが現在の走査の印刷領域と重なり合っている領域に関して言えば、プリンタはビジー信号を発行し、プリンタドライバからの追加の印刷データの送信を停止する。プリンタがキャリッジ移動を監視することにより更新されていくにつれて、プリンタドライバによって指定されたブロックが完全に空になったことが判明すると、プリンタは受信したデータブロックをプリントバッファに入れ、ビジー信号を解放し、追加の情報を受信する準備が完了したことをプリンタドライバに示す。
【0318】
いずれの場合も、現在の走査が往路方向である場合、プリンタはプリントバッファの(往路方向で測定された)シフト領域の終端から印刷を開始し、それに対して現在の走査が復路方向である場合、プリンタはプリントバッファの(復路方向で測定された)シフト領域の終端から印刷を開始する。
【0319】
このような一般的な手順を図43O〜図43Rに示す。図43O〜図43Rは、現在の印刷データが次の走査のための印刷データよりも小さいサイズである場合において、それぞれにシフト領域を有する2つのプリントバッファを使用した2つの記録ヘッドによる印刷を示す。図43O〜図43Rに示す印刷は、往路方向への印刷であるが、上記で概説した一般的な指針から、復路方向への印刷およびデータ転送は相補的に進むことが認識されよう。
【0320】
図43O(A)で、デュアル記録ヘッド4330Aおよび4330Bは、互いの間隔が横方向に距離4340であるように設けられ、静止位置から4335でのランプアップ期間を経て一定の走査速度に達し、一定の走査速度での印刷領域4338を経て、4339のランプダウン期間で一定の走査速度から静止位置に達するように、一定の走査速度で印刷するように配置される。各記録ヘッドごとに1つのプリントバッファが設けられ、記録ヘッド4330Aにはプリントバッファ4320Aが設けられ、記録ヘッド4330Bにはプリントバッファ4320Bが設けられる。各プリントバッファは現在の走査のための印刷データを含み、次の走査のための印刷データのサイズは現在の走査のための印刷データのサイズよりも大きい。したがって、プリントバッファ4320Aの場合、現在の走査のための印刷データは領域4320A−4に記憶され、領域4320A−1、領域4320A−2、領域4320A−3は空である。データ転送の効率を高めるためにプリントバッファ4320Aの先頭にシフト領域4320A−5が設けられる。4321はノズル・オフセット長の記憶位置を示す。
【0321】
同様に、プリントバッファ4320Bの場合、領域4320B−4は現在の走査のための印刷データを含む。領域4320B−1、領域4320B−2、領域4320B−3は空である。プリントバッファ4320Bへのデータ送信の効率を高めるためにプリントバッファ4320Bの先頭にシフト領域4320B−5が設けられ、4321はノズル・オフセットの記憶位置を示す。
【0322】
ホストプロセッサ側では、各記録ヘッドごとに1つの印刷データストアが設けられる。したがって、データストア4325Aは、記録ヘッド4330A用に設けられ次の走査のための印刷データを記憶し、印刷データストア4325Bは、記録ヘッド4330B用に設けられ、記録ヘッド4330Bに関する次の走査のための印刷データを記憶する。
【0323】
図43O(B)では、記録ヘッド4330Aおよび4330Bは、記録媒体を横切りながら静止位置から一定の走査速度へのランプアップを開始する。プリンタドライバ114は、プリンタ30からのビジー信号がないので、すでに送信された印刷データに基づいて、記録ヘッド4330Aの次の走査のためデータの左端が現在の走査のための印刷データの左端よりもより左側にあると判定し、第1番目のブロックの印刷データを印刷データストア4325Aからプリントバッファ4320Aへ送信する。このブロックはシフト領域4320A−5および領域4320A−1に記憶される。同様に、プリンタドライバ114は、記録ヘッド4330Bの次の走査のためのデータの左端が記録ヘッドBの現在の走査のためのデータの左端よりもより左側にあると判定する。したがって、プリンタドライバ114は、記録ヘッド4330Bに関する1ブロック分の印刷データを印刷データストア4325Bからプリントバッファ4320Bへ送信する。次の走査のための印刷データブロックはシフト領域4320B−5および領域4320B−1に記憶される。
【0324】
図43O(C)では、記録ヘッド4330Aおよび4330Bは、一定の走査速度に達しており、記録ヘッド4330Aおよび4330Bのどちらかに関して、第1の印刷位置を見出すために往路方向にシークを開始する。プリントバッファ4320Aおよび4320Bには空領域が残っており、プリンタドライバ114が、現在の走査に関する既存の印刷データと重なり合うデータを送信していないので、プリンタ30はまだビジー信号を送信していない。したがって、プリンタドライバ114は、プリンタが追加の印刷データを受け入れる準備を完了していると判定し、印刷データを適切に送信する。この場合、記録ヘッド4330Aに関する次の走査のためのデータの右端が現在の走査のための印刷データの右端よりもより右側にあるので、プリンタドライバ114は印刷データブロックを印刷データストア4325Aからプリントバッファ4320Aへ送信する。この場合、送信されたデータは領域4320A−2に記憶される。プリンタドライバ114は記録ヘッド4330Aに関する新しい印刷データを送信しようとするが、送信されたデータがプリントバッファ内の空ではない場所と重なり合うので、そのような送信はプリンタがビジー信号を生成する原因となる。この時点で、プリンタドライバ114は、記録ヘッド4330Aの場合、次の走査のためのデータの左端が現在の走査のためのデータの左端よりより右側にあり、かつ次の走査のためのデータの右端が現在の走査のためのデータの右端よりより左側にあると判定する。したがって、ビジー信号がクリアされるまで記録ヘッド4330Aに関する印刷データがプリンタドライバによって送信されることはない。
【0325】
一方、プリンタドライバ114は、記録ヘッド4330Bに関する次の走査のためのデータの右端が現在の走査のための印刷データの右端よりも右側にあると判定する。したがって、印刷データストア4325Bからプリントバッファ4320Bへ印刷データブロックが送信される。この場合、送信されたデータブロックは領域4320B−2に記憶される。プリンタドライバ114は記録ヘッド4330Bに関する追加の印刷データを送信しようとするが、送信されたデータがプリントバッファ内の空ではない場所と重なり合うので、そのような送信はプリンタがビジー信号を生成する原因となる。この時点で、プリンタドライバ114は、記録ヘッド4330Bに関し、次の走査のための印刷データの左端が現在の走査のための印刷データの左端より右側にあり、かつ次の走査のための印刷データの右端が現在の走査のための印刷データの右端より左側にあると判定する。したがって、ビジー信号がクリアされるまで記録ヘッド4330Bに関する印刷データがプリンタドライバに送信されることはない。
【0326】
この時点で、プリンタドライバ114からプリンタ30へはさらなるデータが送信されることはない。プリンタドライバ114は、記録ヘッド4330Aと記録ヘッド4330Bのどちらかに関する印刷データを送信する場合、後続の印刷データブロックを記憶すべきプリントバッファ内の位置をプリンタに指定する[EDGE]コマンドをデータの前に送信する。プリンタは、[EDGE]コマンドによって指定された位置に基づいて、ドライバ114からの後続の印刷データブロックがプリントバッファ内の空ではない場所と重なり合うことを知る。次いで、送信される印刷データが印刷されていない印刷データであり、したがって、プリンタ30自体が追加の印刷データを受信する準備を完了していないので、プリンタはビジー信号を発行する。
【0327】
図43P(A)では、記録ヘッド4330Aおよび4330Bの往路方向へのシークが継続され、記録ヘッド4330Bがその第1の印刷位置に達している。したがって、参照番号4315Bで示した領域にはプリントアウトが開始され、それによってプリントバッファ4320B内のある位置が空になる。プリンタドライバ114は、次の走査のための印刷領域を小さなブロックに分割しており、第1番目の小さなブロックを印刷データストア4325Aからプリントバッファ4320Bへ送信する。プリンタ30は、記録ヘッド4330Bの現在位置に基づいて、プリントバッファ4320Bのある場所が空であることを検知し、送信されたブロックをただちに記憶できるようにする。
【0328】
図43P(B)では、記録ヘッド4330Bが引き続き往路方向への印刷を行い、プリントバッファ4320B内にさらに空の場所ができ、それによって、プリンタドライバ114による印刷データストア4325Bからプリントバッファ4320Bへのデータの転送が可能になる。同時に、記録ヘッド4330Aはその第1の印刷位置に達している(厳密には、記録ヘッド4330Aはノズル・オフセット領域4321A内の第1の印刷位置に達している)。したがって、記録ヘッド4330Aによる印刷が開始し、記録ヘッド4330Bも印刷を継続する。
【0329】
図43P(C)では、参照番号4315Bで示された領域に記録ヘッド4330Bによる印刷が継続し、プリントバッファ4320B内にはさらに空の場所ができる。プリンタドライバ114は、次の走査に関するさらなる印刷データブロックを印刷データストア4325Bからプリントバッファ4320Bへ送信する。これらの場所は空であるので、プリンタ30は、送信されたブロックをただちに記憶できる。
【0330】
その間、領域4315Aで示したように記録ヘッド4330Aは印刷を開始しており、それによってプリントバッファ4320A内のある位置が空になる。したがって、プリンタドライバ114は、次の走査のための印刷データブロックを印刷データストア4325Aからプリントバッファ4320Aへ送信する。プリントバッファ4320A内の上記の位置が空であり、重なり合ったデータ(現在の走査に関するまだ印刷されていないデータ)を含まないので、プリンタ30は、送信されたデータをただちにプリントバッファ4320Aへ記憶することが可能である。
【0331】
図43Q(A)および図43Q(B)で、記録ヘッド4330Aおよび4330Bはそれぞれ、領域4315Aおよび4315Bで示したように印刷を継続する。引き続き印刷を行うことによって、プリントバッファ4320Aおよび4320B内にはさらに空の場所が空できる。したがって、プリンタドライバ114は、次の走査に関するさらなる印刷データをブロックごとに、印刷データストア4325Aおよび4325Bから、それぞれプリントバッファ4320Aおよび4320Bの空きの場所へ送信する。この処理と、次の走査のための印刷データがプリンタドライバ114から両方のヘッドへの送信のため利用可能となるようにさせるすべての処理との間に、ドライバ114はどちらのヘッドが最初に送信を受けるか(すなわち、記録ヘッド4330Aへ送信し、その後に記録ヘッド4330Bへ送信するか、あるいは記録ヘッド4330Bへ送信し、その後に記録ヘッド4330Aへ送信する)を判定する。ドライバは、どちらのヘッドが最初にブロックを空にする可能性が高いか、重なり合った領域の相対位置に基づいて、この判定を下す。この処理については、図44C〜図44Jに関連して後で説明する。これらの図では、印刷データブロックを記録ヘッドAへ送信し、その後に記録ヘッドBへ送信すべきか、それとも記録ヘッドBへ送信し、その後に記録ヘッドAへ送信すべきかを判定する手順について説明している。
【0332】
図43Q(C)では、記録ヘッド4330Bの印刷が終了し、それによってプリントバッファ4320Bの最後の位置が空になる。したがって、プリンタドライバ114は、次の走査に関する最後の残りの印刷データブロックを印刷データストア4325Bからプリントバッファ4320Bへ送信する。同時に、領域4315Aで示したように記録ヘッド4330Aのプリントアウトが継続し、プリントバッファ4320A内にはさらに空の場所ができる。これらの場所が空になると、プリンタドライバ114は次の走査のための印刷データブロックを印刷データストア4325Aからプリントバッファ4320Aへ送信する。
【0333】
図43R(A)および図43R(B)では、記録ヘッド4330Aの印刷が継続し、プリントバッファ4320Aにさらに空きの場所ができる。これらの場所が空になると、これらはドライバ114によって印刷データストア4325Aからプリントバッファ4320Aへブロックごとに送信された次の走査のための印刷データで充填される。図43R(B)で、記録ヘッド4330Aの現在の印刷データのプリントアウトが完了し、最後のブロックが印刷データストア4325Aからプリントバッファ4320Aへ送信される。記録ヘッド4330Aおよび記録ヘッド4330Bは次いで、次の走査のための印刷データに関する第1の印刷位置に達するように往路方向にシークを開始する。
【0334】
図43R(C)では、記録ヘッド4330Aおよび記録ヘッド4330Bは、次の走査ラインの復路方向印刷の第1の印刷位置に達した後、一定の走査速度から静止位置にランプダウンする。その時点で、領域4320A−3および領域4320B−3はそれぞれ、プリントバッファ4320Aおよび4320B内の空の場所になる。したがって、これらの空領域は、プリントバッファ4320Aおよび4320Bに記憶されている今や現在の走査となった走査のため印刷データでの復路方向印刷のランプアップ期間中に次の走査のための印刷データを受信するシフト領域になる。
9.2 バッファ制御の概要説明
図44C〜図44Jに示すフローチャートは、本発明によるシフトバッファ制御によって、印刷データストア136からプリントバッファ139に次の走査ラインの印刷データのデータ送信を行うためにプリンタドライバ114の実行の一部として、ホストプロセッサ23のCPU100によって実行されるプロセスステップを示している。これらのフローチャートに示したプロセスステップは、ディスク25などコンピュータ読取り可能な媒体上またはRAM116内にコンピュータ実行可能なプロセスステップとして格納され、本発明によるシフトバッファ制御を行うためにCPU100によって実行される。
【0335】
同様に、図44K〜図44Mに示すフローチャートは、本発明によるプリントバッファ制御を行うためにプリンタ30のCPU121によって実行されるプロセスステップを示す。これらのフローチャートに示したプロセスステップは、本発明による記録制御を行うためにCPU121によって実行できるように、ROM122などコンピュータ読取り可能な媒体上またはRAM129内にコンピュータ読取り可能なプロセスステップとして格納される。
【0336】
これらのフローチャートに示したプロセスステップによれば、本発明によるプリントバッファ制御では、シフト領域が先頭に設けられたプリントバッファが定義され、このシフト領域は記録ヘッドの往路方向でのランプアップ期間に対応する。復路方向印刷では、プリントバッファは、その終端に付加されたシフト領域を含み、このシフト・バッファは復路方向印刷時の記録ヘッドのランプアップ期間に対応する。往路方向への印刷用のシフトバッファは復路方向への印刷用のプリントバッファの一部であり、復路方向への印刷用のシフトバッファは往路方向への印刷用のプリントバッファの一部である。
【0337】
この構成では、プリントバッファにシフトバッファが付加されるか、あるいはプリントバッファの先頭にシフトバッファが設けられ、プリンタドライバは常に、記録ヘッドのランプアップ期間中に次の走査ラインの印刷データを送信するための場所をもっている。したがって、プリンタドライバからプリンタへ次の走査ラインの印刷データを送信する際の効率が高められる。
【0338】
さらに、シフト領域がランプアップ期間に対応し、かつ往路方向のシフトバッファが復路方向への印刷用のプリントバッファの一部であり、その逆も同様であるので、従来型のダブルバッファ構造などの大容量の付加的なプリントバッファの場所を設ける必要なしに、印刷データを送信する際の効率が高められる。
【0339】
図44C〜図44Jに示すフローチャートおよび図44K〜図44Mに示すフローチャートについて説明する前に、これらのフローチャートで使用されているある変数について図44Aと図44Bを参照して説明する。このような変数は、プリンタ30上でのプリントバッファ内の記憶位置までの物理的距離と、プリントバッファ内の記憶位置と記録媒体上のプリントアウト位置との対応関係とに対応している。
【0340】
図44Aは、往路方向への印刷に関する変数の識別を示す。したがって、プリントバッファ4320Aおよび4320Bにおいて現在の走査のための印刷データを用いた記録ヘッド4330Aおよび4330Bでの往路方向への印刷と、印刷データストア4325Aおよび4325Bからの次の走査のための印刷データの送信とに関して、以下の変数が定義される。即ち、ヘッド・ギャップ4340は記録ヘッド4330Aと記録ヘッド4330Bとの間の距離を定義し、ヘッド位置Aおよびヘッド位置Bはそれぞれ、記録ヘッド4330Aおよび記録ヘッド4330Bの現在のキャリッジ位置を定義し、BuffTop_FおよびBuffEnd_Fは往路方向への印刷の場合のプリントバッファ4320Aおよび4320Bの先頭および終端を定義し、EdgeL_AcおよびEdgeR_Acは記録ヘッド4330Aに関する現在の走査のためのデータの左端および右端を定義し、EdgeL_BcおよびEdgeR_Bcは記録ヘッド4330Bに関する現在の走査のための印刷データの左端および右端を定義し、ShiftLenはシフト領域の長さを定義し、参照符号1203は、記録ヘッド内のノズルの傾斜角度を補償するためのノズル・オフセット長を定義し、EdgeL_AnおよびEdgeR_Anは記録ヘッド4330Aに関する次の走査のためのデータの左端および右端を指し、EdgeL_BnおよびEdgeR_Bnは記録ヘッド4330Bに関する次の走査のための印刷データの左端および右端を定義し、BlockLenは、プリンタドライバ114が次の走査のための印刷データをブロックごとにプリントバッファ4320Aおよび4320Bへ送信できるように分割する場合のブロックの幅を定義し、BlockLeftおよびBlockRightは、現在送信することが検討されている個々のブロックの左アドレスおよび右アドレスを示す。
【0341】
図44Bは、記録ヘッド4330Aおよび記録ヘッド4330Bによる復路方向への印刷に関する変数を識別したものである。したがって、プリントバッファ4320Aおよび4320Bにおける現在の走査のための印刷データを用いた記録ヘッド4330Aおよび記録ヘッド4330Bによる復路方向の印刷と、印刷データストア4325Aおよび4325Bからの次の走査のための印刷データの送信とに関して、以下の変数が定義される。即ち、ヘッド・ギャップ4340は記録ヘッド4330Aと記録ヘッド4330Bとの間の距離を定義し、ヘッド位置Aおよびヘッド位置Bはそれぞれ、記録ヘッド4330Aおよび記録ヘッド4330Bの現在のキャリッジ位置を定義し、BuffTop_BおよびBuffEnd_Bは復路方向印刷の場合のプリントバッファ4320Aおよび4320Bの先頭および終端を定義し、EdgeL_AcおよびEdgeR_Acは記録ヘッド4330Aに関する現在の走査のためのデータの左端および右端を定義し、EdgeL_BcおよびEdgeR_Bcは記録ヘッド4330Bに関する現在の走査のための印刷データの左端および右端を定義し、ShiftLenはシフト領域の長さを定義し、参照符号1203は、記録ヘッド内のノズルの傾斜角度を補償するためのノズル・オフセット長を定義し、EdgeL_AnおよびEdgeR_Anは記録ヘッド4330Aに関する次の走査のためのデータの左端および右端を指し、EdgeL_BnおよびEdgeR_Bnは記録ヘッド4330Bに関する次の走査のための印刷データの左端および右端を定義し、BlockLenは、プリンタドライバ114が次の走査のための印刷データをブロックごとにプリントバッファ4320Aおよび4320Bへ送信できるように分割する場合のブロックの幅を定義し、BlockLeftおよびBlockRightは、現在送信することが検討されている個々のブロックの左アドレスおよび右アドレスを示す。
【0342】
上記で指摘した変数の適切な値の代表的な例としては、プリントバッファAおよびBの長さとして8インチ、小さなデータのブロックの長さとして0.5インチ、記録ヘッド4330Aと記録ヘッド4330Bとの間のギャップとして2.5インチ、シフトバッファ領域として752カラム、ノズル・オフセット長として32カラムが挙げられる。現在の走査領域および次の走査領域の長さは、印刷中の実際のデータに依存する。たとえば、図43O〜図43Rで与えた例では、現在の走査による印刷データの長さは約3インチであり、それに対して次の走査による印刷領域の長さは8インチである。
【0343】
なお、以下の説明で、記録ヘッド4330AをヘッドA、記録ヘッド4330BをヘッドBとして、また、プリントバッファ4320AをプリントバッファA、プリントバッファ4320BをプリントバッファBとして言及することもある。
【0344】
次に、図44C〜図44Jのフローチャートを参照し、ホストプロセッサ23内のCPU100によって実行される記憶されたプログラム命令シーケンスに従ってプリンタドライバ114によって行われる処理について詳しく説明する。
【0345】
最初にステップS4401で、ホストプロセッサ23からプリンタ30へのコマンドによって次の走査方向(往路方向または復路方向)が設定され、ステップS4402で現在の走査のための印刷データの端が定義される。プリントバッファA内の印刷データの左端(EdgeL_A)は、"EdgeL_Ac(現在の走査の印刷データの左端)−ノズル・オフセット長"に設定される。プリントバッファA内の印刷データの右端(EdgeR_A)は、"EdgeR_Ac(現在の走査の印刷データの右端)+ノズル・オフセット長"に設定される。プリントバッファB内の印刷データの左端(EdgeL_B)は、"EdgeL_Bc(現在の走査の印刷データの左端)−ノズル・オフセット長"に設定される。プリントバッファB内の印刷データの右端(EdgeR_B)は、"EdgeR_Bc(現在の走査の印刷データの右端)+ノズル・オフセット長"に設定される。前述のように、ノズル・オフセット長は、記録ヘッド上のノズルの傾斜に対応する領域についてのプリントバッファ内の記憶位置に対応している。
【0346】
ステップS4404で、プリンタドライバ114は、現在の走査方向が往路方向であるか、それとも復路方向であるかを判定する。往路方向への印刷の場合、処理フローはステップS4405に進み、次の走査の印刷方向が決定される。ステップS4405で、次の走査の印刷方向が復路方向であると判定された場合、ステップS4406で、ランプアップ期間中に充填される各プリントバッファの記憶位置に対応するシフト領域の長さを加えることによって端(EdgeL_A、EdgeL_B、EdgeR_A、EdgeR_B)が調整される。
【0347】
ステップS4407〜S4416で、記録ヘッド4330Aおよび4330Bのそれぞれについて、次の走査の左端が現在の走査の左端よりも左側にある(プリントバッファの左端部に空き領域が存在することを意味する)かどうかが判定され、そうである場合、印刷データストア4335Aおよび/または4335Bからプリントバッファ4320Aおよび/または4320Bへ次の走査のための印刷データが送信され、現在の印刷が往路方向への印刷であるときには、シフト領域を含むプリントバッファの左側が充填される。ステップS4407〜S4411では、プリントバッファ4320Aがその左端部へのデータ転送のために処理される。次の走査のための印刷データの左端(EdgeL_An)が、現在の走査に対応するEdgeL_Aよりも小さい(即ち、より左側にある)ことが判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、EdgeL_An(すなわち、次の走査の左端)のブロック左端アドレスおよび(EdgeL_A)−1(すなわち、現在の走査の左端−1)のブロック右端アドレスと共に送信される。次の走査の左端(EdgeL_An)はその後、Edge_Aに再設定される(S4411)。処理フローはさらに進み、プリントバッファ4320Bを処理してその左端部へのデータ送信が可能になるようにする。
【0348】
図44C〜図44D中のすべてのステップの処理が、プリンタドライバ114がプリンタ30のプリントバッファ内のどの場所が空であるかを判定し、その空きの場所へデータを送信することができるように設計されることに留意されたい。したがって、プリンタ30が、データを受け入れる準備が完了していないことを示すビジー信号を発行する可能性は低い。しかし、プリンタ30が(たとえば、ヘッドの清掃などの記録動作ではない動作に関連して)ビジー信号を発行した場合、プリンタドライバ114は、ビジー信号がクリアされプリンタ30がデータを受け入れる準備を再び完了するまでデータの送信を停止する。
【0349】
プリントバッファ4320Bは次いでステップS4412〜S4416で、その左端へのデータ転送のために処理される。次の走査のための印刷データの左端(EdgeL_Bn)が現在の走査に関して設定されたEdgeL_Bよりも小さい(即ち、より左側にある)と判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、EdgeL_Bn(すなわち、次の走査の左端)のブロック左端アドレスおよび(EdgeL_B)−1(すなわち、現在の走査の左端−1)のブロック右端アドレスと共に送信される。次の走査の左端(EdgeL_Bn)はその後、EdgeL_Bに再設定される(S4416)。
【0350】
ステップS4417〜S4426では、記録ヘッド4330Aおよび4330Bのそれぞれについて、次の走査の右端が現在の走査の右端よりも大きい、つまり、次の走査の右端が現在の走査の右端より右側にある(プリントバッファの右端に空き領域が存在することを意味する)かどうかが判定され、そうである場合、印刷データストア4325Aおよび/または4325Bからプリントバッファ4320Aおよび/または4320Bへ次の走査のための印刷データが送信され、現在の印刷方向が往路方向であるときにはプリントバッファの右側にデータが充填される。ステップS4417〜S4421で、プリントバッファ4320Aがその右端へのデータ転送のために処理される。次の走査のための印刷データの右端(EdgeR_An)がEdgeR_Aよりも大きいことが判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、(EdgeR_A)+1(すなわち、現在の走査の右端+1)のブロック左端アドレスおよびEdgeR_An(すなわち、次の走査の右端)のブロック右端アドレスと共に送信される。次の走査のブロック右端(EdgeR_An)はその後、EdgeR_Aに再設定される(S4421)。処理フローはさらに進み、バッファ4320Bを処理してその右端へのデータ送信が可能になるようにする。
【0351】
プリントバッファ4320Bは次いでステップS4425〜S4426で、その右端へのデータ転送のために処理される。次の走査のための印刷データの右端(EdgeR_Bn)が現在の走査に関して設定されたEdgeR_Bよりも大きいと判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、(EdgeR_Bn)+1(すなわち、現在の走査の右端)のブロック左端アドレスおよびEdgeR_Bn(すなわち、次の走査の右端)のブロック右端アドレスと共に送信される。次の走査の右端(EdgeR_Bn)はその後、EdgeR_Bに再設定される(S4426)。
【0352】
前述のステップS4405〜S4426の動作は、記録ヘッド4330Aおよび4330Bのランプアップ期間中およびその前に実行される。本発明によれば、プリントバッファ4320Aおよび4320B内のどこに空の格納場所があるかが判定され、これらのプリントバッファの印刷位置を現在の走査による処理よりも前に、ホストプロセッサ23の印刷データストア136からそれぞれのプリントバッファへ印刷データが送信される。
【0353】
ステップS4427〜S4435は、ステップS4405〜S4426によるデータ転送の後、現在の走査中における印刷データの転送を示している。実際には、ステップS4405〜S4426でのデータ転送がランプアップ期間の終了時よりも前に完了した場合、印刷データ転送の速度に応じて、ランプアップ期間中にこれらのステップの一部を実際に実行することができる。これらのステップでは、重なり合ったデータがプリントバッファ4320Aのみにあるか、それともプリントバッファ4320Bのみにあるか、それともプリントバッファ4320Aとプリントバッファ4320Bの両方にあるかが判定される。プリントバッファ4320Aとプリントバッファ4320Bの両方に重なり合いがある場合は、これらのステップでさらに、プリントバッファ4320Bに対するデータをプリントバッファ4320Aに対するデータの前に置くべきか、あるいはその逆にすべきかが判定される。
【0354】
図44E〜図44Fに示したステップは、プリンタドライバ114によって送信されたデータとプリントバッファ139内のまだ印刷されていないデータとが重なり合っている可能性があるときに実行される。したがって、プリンタドライバ114によるデータの送信は、プリンタ30からのビジー信号を条件として行われる。ビジー信号がある場合、プリンタドライバ114は、ビジー信号がクリアされプリンタ30が新しい印刷データを受け入れる準備を再び完了するまでデータの送信を停止する。
【0355】
したがって、ステップS4427およびS4429で、プリンタドライバ114は、次の走査の(EdgeL_An)の値が次の走査の(EdgeR_An)の値よりも小さく、かつ次の走査の(EdgeL_Bn)の値が次の走査の(EdgeR_Bn)以上であるかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ4320Aのみである。したがって、プリントバッファ4320Aに対する1つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ4320Aへ送信される(ステップS4431、図44G参照)。次いで、ステップS4427が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【0356】
ステップS4427およびS4432で、プリンタドライバ114は、次の走査の(EdgeL_An)の値が次の走査の(EdgeR_An)の値以上であり、かつ次の走査の(EdgeL_Bn)の値が次の走査の(EdgeR_Bn)の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ4320Bのみである。したがって、プリントバッファ4320Bに対する1つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ4320Bへ送信される(ステップS4434、図44H参照)。次いで、ステップS4427が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【0357】
ステップS4427およびS4429で、プリンタドライバ114は、次の走査の(EdgeL_An)が次の走査の(EdgeR_An)よりも小さく、かつ次の走査の(EdgeL_Bn)が次の走査の(EdgeR_Bn)よりも小さいかどうかを調べる。これらの条件が満たされた場合、プリントバッファ4320Aとプリントバッファ4320Bの両方に、重なり合ったデータがある。次いでステップS4430で、プリントバッファ4320Aに対するデータがプリントバッファ4320Bに対するデータの前に位置しているか、それともその逆であるかが判定される。
【0358】
具体的には、ステップS4430で、(EdgeL_Bn)の値が(EdgeL_An+記録ヘッド4330Aと記録ヘッド4330Bとの間のギャップ)の値以上であるかどうかが判定される。そうである場合、プリントバッファ4320Aに対するデータがプリントバッファ4320Bに対するデータの前に位置している。したがって、プリントバッファ4320Aに対する小さな所定の印刷データブロックが、ホストプロセッサ23の印刷データストア136からプリントバッファ4320Aへ送信される(ステップS4431)。一方、ステップS4430での判定が"NO"である場合は、プリントバッファ4320Bに対するデータがプリントバッファ4320Aに対するデータの前に位置していることを示す。したがって、プリントバッファ4320Bに対する小さな所定の印刷データブロックがホストプロセッサ23の印刷データストア136からプリントバッファ4320Bへ送信され(ステップS4434)、制御がステップS4427に返される。
【0359】
ステップS4427およびS4432で、(EdgeL_An)の値が(EdgeR_An)の値以上であり、かつ(EdgeL_Bn)の値が(EdgeR_Bn)の値以上であると判定されたときは、転送が完了しており、ステップS4435で次の走査ラインに対する印刷コマンド[PRINT]がプリンタ30へ送信される。
【0360】
再び図44Cを参照するとわかるように、ステップS4404で、現在の走査方向が復路方向であると判定されると、ステップS4445で、次の走査の印刷方向が判定される。ステップS4445で、次の走査が往路方向であると判定された場合、ステップS4446で、ランプアップ期間中に充填される各プリントバッファの格納位置からシフト領域長を減じることによって、エッジ(EdgeL_A、EdgeL_B、EdgeR_A、EdgeR_B)が調整される。
【0361】
ステップS4447〜S4466で、記録ヘッド4330Aおよび4330Bのそれぞれについて、次の走査の右端が現在の走査の右端よりも大きい、つまり、次の走査の右端が現在の走査の右端よりも右側にある(プリントバッファの右端に空きの領域が存在することを意味する)かどうかが判定され、そうである場合、印刷データストア4325Aおよび/または4325Bからプリントバッファ4320Aおよび/または4320Bへ次の走査の印刷データが送信され、現在の印刷が復路方向印刷であるときには、シフト領域を含むプリントバッファ4320Aおよび/または4320Bの右側にデータが充填される。ステップS4447〜S4451で、プリントバッファ4320Aがその右端へのデータ転送のために処理される。次の走査の印刷データの右端(EdgeR_An)が、現在の走査に対応するEdgeR_Aよりも大きいことが判定されると(ステップS4447)、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、(EdgeR_A)+1(すなわち、現在の走査の右端+1)のブロック左端アドレスおよびEdgeR_An(すなわち、次の走査の右端)のブロック右端アドレスと共に送信される。次の走査の左端(EdgeR_A)はその後、EdgeR_Aに再設定される(S4451)。
【0362】
プリントバッファ4320Bは次いでステップS4452〜S4456で、その右端へのデータ転送のために処理される。次の走査の印刷データの右端(EdgeR_Bn)が現在の走査に対応するEdgeR_Bよりも大きいと判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、(EdgeR_B)+1(すなわち、現在の走査の右端+1)のブロック左端アドレスおよびEdgeR_Bn(すなわち、次の走査の右端)のブロック右端アドレスと共に送信される。次の走査の右端(EdgeR_Bn)はその後、EdgeR_Bに再設定される(S4456)。
【0363】
ステップS4456〜S4459で、記録ヘッド4330Aおよび4330Bのそれぞれについて、次の走査の左端が現在の走査の左端よりも小さい、つまり、次の走査の左端が現在の走査の左端よりも左側にある(プリントバッファ4320Aおよび/または4320Bに対する印刷データストア4325Aおよび/または4325Bの左端に空きの領域が存在することを意味する)かどうかが判定され、現在の印刷が復路方向への印刷であるときにはプリントバッファ4320Aおよび/または4320Bの左側にデータが充填される。ステップS4457〜S4461で、プリントバッファAが、その左端へのデータ転送のために処理される。次の走査のための印刷データの左端(EdgeL_An)が、現在の走査に対応するEdgeL_Aよりも小さいことが判定されると(ステップS4457)、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、EdgeL_An(すなわち、次の走査の左端)のブロック左端アドレスおよび(EdgeL_A)−1(すなわち、現在の走査の左端−1)のブロック右端アドレスと共に送信される。次の走査の左端(EdgeL_An)は次いで、EdgeL_Aに再設定される(S4461)。
【0364】
プリントバッファ4320Bは次いでステップS4462〜S4466で、その左端へのデータ転送のために処理される。次の走査の印刷データの左端(EdgeL_Bn)が、現在の走査に対応するEdgeL_Bよりも小さいと判定されると、ブロック選択コマンド[BLOCK]およびデータコマンド[DATA]がプリンタ30へ送信される。ブロック選択コマンドは、EdgeL_Bn(すなわち、次の走査の左端)のブロック左端アドレスおよび(EdgeL_B)−1(すなわち、現在の走査の左端−1)のブロック右端アドレスと共に送信される。次の走査の左端(EdgeL_Bn)は次いで、EdgeL_Bに再設定される(S4466)。
【0365】
前述のステップは、記録ヘッド4330Aおよび4330Bのランプアップ中およびその前に実行される。ステップS4467〜S4475は、ステップS4445〜S4466によるデータ転送後、現在の走査中のデータの処理を示す。実際には、ステップS4445〜S4466でのデータ転送がランプアップ期間の終了時よりも前に完了した場合、印刷データ転送の速度に応じて、ランプアップ期間中にこれらのステップの一部を実際に実行することができる。これらのステップでは、重なり合ったデータがプリントバッファ4320Aのみにあるか、それともプリントバッファ4320Bのみにあるか、それともプリントバッファ4320Aとプリントバッファ4320Bの両方にあるかが判定される。プリントバッファ4320Aとプリントバッファ4320Bの両方に重なり合いがある場合は、これらのステップでさらに、プリントバッファ4320Aに対するデータをプリントバッファ4320Bに対するデータの前に置くべきか、あるいはその逆にすべきかが判定される。
【0366】
したがって、ステップS4467〜S4469で、プリンタドライバ114は、次の走査の(EdgeL_An)の値が次の走査の(EdgeR_An)の値よりも小さく、かつ次の走査の(EdgeL_Bn)の値が次の走査の(EdgeR_Bn)の値以上であるかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ4320Aのみである。したがって、プリントバッファ4320Aに対する1つの所定の小さなブロックの印刷データが、そのブロックの左ブロックックアドレスから右ブロックアドレスプリントバッファ4320Aへ送信される(ステップS4471、図44I参照)。次いで、ステップS4467が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【0367】
ステップ4467およびS4472で、プリンタドライバ114は、次ので?の(EdgeL_An)の値が次の走査の(EdgeR_An)の値以上であり、かつ次の走査の(EdgeL_Bn)の値が次の走査の(EdgeR_Bn)の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ4320Bのみである。したがって、プリントバッファ4320Bに対する1つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ4320Bへ送信される(ステップS4474、図44J参照)。次いで、ステップS4467が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【0368】
ステップS4467およびS4469で、プリンタドライバ114は、次の走査の(EdgeL_An)の値が次の走査の(EdgeR_An)の値よりも小さく、かつ次の走査の(EdgeL_Bn)の値が次の走査の(EdgeR_Bn)の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、プリントバッファ4320Aとプリントバッファ4320Bの両方に、重なり合ったデータがある。次いでステップS4470で、プリントバッファ4320Aに対するデータがプリントバッファ4320Bに対するデータの前に位置しているか、それともその逆であるかが判定される。
【0369】
具体的には、ステップS4470で、(EdgeR_Bn)の値から記録ヘッド4330Aと記録ヘッド4330Bとの間のギャップを減じた値がEdgeR_An以下であるかどうかが判定される。そうである場合。プリントバッファ4320Aに対するデータがプリントバッファ4320Bに対するデータの前に位置している。したがって、プリントバッファ4320Aに対する小さな所定の印刷データブロックが、ホストプロセッサ23の印刷データストア136からプリントバッファ4320Aへ送信される(ステップS4471)。一方、ステップS4470での判定が“NO”である場合は、プリントバッファ4320Bに対するデータがプリントバッファ4320Aに対するデータの前に位置している。したがって、プリントバッファ4320Bに対する小さな所定の印刷データブロックがホストプロセッサ23の印刷データストア136からプリントバッファ4320Bへ送信され(ステップS4474)、制御がステップS4467に返される。
【0370】
ステップS4467およびS4472で、(EdgeL_An)の値が(EdgeR_An)の値以上であり、かつ(EdgeL_Bn)の値が(EdgeR_Bn)の値以上であると判定されたときは、転送が完了しており、ステップS4475で次の走査ラインに対する印刷コマンド[PRINT]がプリンタ30へ送信される。
【0371】
図44G〜図44Hは、プリントバッファ4320Aおよび4320Bに対する左ブロックアドレスから右ブロックアドレスへの印刷データ転送に関する図44EのステップS4431およびS4434についての詳細なフローチャートである。プリントバッファ4320Aに関しては図44Gを参照するとわかるように、ステップS4476において、(EdgeL_A)として、次の走査の(EdgeL_An)の値に所定の小さなブロック長を加えた値が設定される。次いで、処理はステップS4477に入り、次の走査の(EdgeR_An)の値が(EdgeL_A)の値よりも小さいかどうかが判定される。この判定結果が"YES"である場合、ブロックコマンドが、EdgeL_Anの左ブロックアドレスとEdgeR_Anの右ブロックアドレスと共にプリントバッファ4320Aへ送信され(ステップS4478)、そのようにアドレスされた印刷データがプリントバッファ4320Aへ送信され(S4479)、次の走査のための印刷データの左端(EdgeL_An)がEdgeR_Anに設定される(S4480)。ステップS4477での判定結果が“NO”である場合は、ブロックコマンドが、EdgeL_Anの左ブロックアドレスおよび(EdgeR_A)−1の右ブロックアドレスと共にプリントバッファ4320Aへ送信され(ステップS4481)、そのようにアドレスされた印刷データがプリントバッファ4320Aへ送信され(S4482)、次の走査のための印刷データの左端(EdgeL_An)がEdgeL_Aに設定される(S4483)。
【0372】
図44Hは、プリントバッファ4320Bに対する左ブロックアドレスから右ブロックアドレスへの印刷データ転送に関した図44Eに示したステップS4434の詳細なフローチャートである。図44Hを参照するとわかるように、ステップS4486で、(EdgeL_B)の値として、次の走査の(EdgeL_Bn)に所定の小さなブロック長を加えた値が設定される。次いで、処理はステップS4487に入り、次の走査の(EdgeR_Bn)の値が(EdgeL_B)の値よりも小さいかどうかが判定される。この判定結果が“YES”である場合、ブロックコマンドが、EdgeL_Bnの左ブロックアドレスおよびEdgeR_Bnの右ブロックアドレスと共にプリントバッファ4320Bへ送信され(ステップS4488)、そのようにアドレスされた印刷データがプリントバッファ4320Bへ送信され(S4489)、次の走査のための印刷データの左端(EdgeL_Bn)がEdgeR_Bnに設定される(S4490)。ステップS4487において判断結果が“NO”である場合は、ブロックコマンドが、EdgeL_Bnの左ブロックアドレスと(EdgeL_B)−1の右ブロックアドレスと共にプリントバッファ4320Bへ送信され(ステップS4491)、そのようにアドレスされた印刷データがプリントバッファ4320Bへ送信され(S4492)、次の走査の印刷データの左端(EdgeL_Bn)がEdgeL_Aに設定される(S4493)。
【0373】
図44Iおよび図44Jは、プリントバッファ4320Aに対する右ブロックアドレスから左ブロックアドレスへの印刷データ転送に関する図44Fに示したステップS4471およびS4474の詳細なフローチャートである。プリントバッファ4320Aに関して図44Iを参照するとわかるように、ステップS4506で、(EdgeL_A)の値として、次の走査のEdgeR_Anから所定の小さなブロック長を減じた値が設定される。次いで、処理はステップS4507に入り、次の走査のEdgeL_AnがEdgeR_Aよりも小さいかどうかが判定される。この判定結果が“YES”である場合、ブロックコマンドが、EdgeL_Anの左ブロックアドレスおよびEdgeR_Anの右ブロックアドレスと共にプリントバッファ4320Aへ送信され(ステップS4508)、そのようにアドレスされた印刷データがプリントバッファ4320Aへ送信され(S4509)、次の走査のための印刷データの左端(EdgeR_An)がEdgeL_Anに設定される(S4510)。一方、ステップS4507で判定結果が“NO”である場合は、ブロックコマンドが、(EdgeR_A)+1の左ブロックアドレスとEdgeR_Anの右ブロックアドレスと共にプリントバッファ4320Aへ送信され(ステップS4511)、そのようにアドレスされた印刷データがプリントバッファ4320Aへ送信され(S4512)、次の走査のための印刷データの右端(EdgeR_An)がEdgeR_Aに設定される(S4513)。
【0374】
図44Jは、プリントバッファ4320Bに対する右ブロックアドレスから左ブロックアドレスへの印刷データ転送に関して図44Fに示したステップS4474の詳細なフローチャートである。図44Jにおいて、ステップS4516で、(EdgeR_B)の値として、次の走査のEdgeR_Bnから所定の小さなブロック長を減じた値が設定される。次いで、処理はステップS4517に入り、次の走査のEdgeL_BnがEdgeR_Bよりも小さいかどうかが判定される。この判定結果が“YES”である場合、ブロックコマンドが、EdgeL_Bnの左ブロックアドレスおよびEdgeR_Bnの右ブロックアドレスと共にプリントバッファ4320Bへ送信され(ステップS4518)、そのようにアドレスされた印刷データがプリントバッファ4320Bへ送信され(S4519)、次の走査の印刷データの左端(EdgeR_Bn)がEdgeL_Bnに設定される(S4520)。一方、ステップS4517での判定結果が“NO”である場合は、ブロックコマンドが、(EdgeR_B)+1の左ブロックアドレスとEdgeR_Bnの右ブロックアドレスと共にプリントバッファ4320Bへ送信され(ステップS4521)、そのようにアドレスされた印刷データがプリントバッファ4320Bへ送信され(S4522)、次の走査の印刷データの右端(EdgeR_Bn)がEdgeR_Bに設定される(S4523)。
【0375】
図44K〜図44Mは、プリンタ30のROM122に存在する記憶されたコンピュータ実行可能なプログラムコードに対応する印刷データの転送に関するプリンタ30内の処理を示すフローチャートである。一般に、これらのステップでは、以下のようにプリンタ動作が行われる。(1)現在の走査によって印刷が開始すると、プリンタはキャリッジの位置およびキャリッジの移動を監視する。(2)受信されたブロックの右端を示す変数の値が現在の走査の左端を示す変数の値よりも小さい場合はただちに、このデータブロックをプリンタバッファに入れる。受信されたブロックの左端を示す変数の値が現在の走査の右端を示す変数よりも大きい場合はただちに、このデータブロックをプリンタバッファに入れる。(3)プリンタドライバによって指定されたブロックが現在の走査のプリンタ領域と重なり合っている場合は、ビジー信号を発行し、プリンタドライバに、指定されたブロック全体が空になるまで待機させる。プリンタドライバによって指定されたブロック全体が空になった場合は、データブロックをプリンタバッファに入れ、ビジー信号を解放して、プリンタがデータを受け入れる準備を完了したことをプリンタドライバに示す。(4)現在の走査が往路方向である場合、プリンタはシフトバッファに格納されたデータを印刷する。現在の走査が復路方向である場合、プリンタはシフトバッファではない領域に格納されたデータを印刷する。図44Kにおいて、判断を行うステップはステップS4545、S4548、S4550、S4553などであり、これらのステップは、ステップS4544でプリンタドライバ114からのコマンドが受信されたときに順次実行される。ステップS4545で、受信されたコマンドが方向コマンドであると判定された場合、次の走査方向(すなわち、往路方向または復路方向)が受信され(ステップS4546)、現在の走査方向および次の走査方向が設定され(ステップS4547)、制御がステップ4548に渡される。ステップS4544で受信したコマンドがステップS4548でブロックコマンドであると検出された場合、ステップS4549のブロックアドレス処理が実行される。このブロックアドレス処理については、図44Lおよび図44Mを参照して詳しく説明する。
【0376】
ステップS4544で受信されたコマンドがステップS4550でデータコマンドであると判定されると、ステップS4551で受信された印刷データが、指定されたプリントバッファに入れられ(ステップS4552)、制御がステップS4553に渡され、ステップS4554で受信されたコマンドが印刷コマンドであるかどうかが判定される。ステップS4553での判定結果が“YES”である場合は、処理はステップS4554において、現在の走査が往路方向に設定されているかどうかが判定される。設定されている現在の走査方向が往路方向であるときは、印刷は、シフト領域の後に続く記録ヘッドの第1の印刷位置に対応する指定されたプリントバッファの先頭からその指定されたプリントバッファの反対側の端部まで実行されされる(ステップS4555)。復路方向への走査の場合、記録ヘッドの最後の印刷位置に対応するプリントバッファの他方の端部から、指定されたバッファの先頭へ印刷が実行される。次いで、制御がステップS4544に返され、プリンタはプリンタドライバ114からの他のコマンドを待つ。
【0377】
図44Lおよび図44Mは、図44KのステップS4549のブロックアドレス処理を詳しく示す。図44Lを参照するとわかるように、ステップS4534でブロックコマンド内のブロック左アドレスおよびブロック右アドレスが受信され、ステップS4535で、指定されたプリントバッファに現在の走査のための印刷データが残っているかどうかが判定される。ステップS4535で、プリントバッファに現在の走査のための印刷データが残っていない場合、制御が図44KのステップS4550に渡され、データコマンドが受信されたかどうかが判定される。そうでない場合、ステップS4536で、指定されたプリントバッファがプリントバッファAであるか、それともプリントバッファBであるかが判定され、ステップS4537およびS4538の一方で変数XがプリントバッファAまたはプリントバッファBに適切に設定され、制御がステップS4539に渡される。ステップS4539で、指定されたプリントバッファXの左端(Edge_X)が、EdgeL_Xc(すなわち、指定されたプリントバッファ内の現在の走査のための印刷データの左端)からノズル・オフセット長を減じた値に設定され、印刷を行うことができなくなる。指定されたプリントバッファXの右端(EdgeR_X)が、EdgeR_Xc(すなわち、指定されたプリントバッファ内の現在の走査のための印刷データの右端)にノズル・オフセット長を加えた値に設定され、印刷を行うことができなくなる。次いで、制御がステップS4540に渡され、現在の走査方向が検査される。
【0378】
ステップS4540での現在の走査方向が往路方向であるとき、指定されたプリントバッファの左端および右端が次の走査のための印刷データをシフトさせるように設定される。したがって、ステップS4541で、左端(EdgeL_X)がEdgeL_Xにシフト領域長を加えた値に設定され、右端(EdgeR_X)がEdgeR_Xにシフト領域長を加えた値に設定される。現在の走査方向が復路方向であるとき、プリントバッファの終端に定義済みのシフト領域はないので調整は必要とされない。ステップS4542で次の走査方向が調べられる。ステップS4542で走査方向が往路方向である場合、ステップS4543が実行され、次の走査のための印刷データを、指定されたプリントバッファXに挿入する際のシフトに対処するために、ブロック左アドレス(BlockLeft)およびブロック右アドレス(BlockRight)がそれぞれ、BlockLeftにシフト領域長を加えた値およびBlockRightにシフト領域長を加えた値に設定される。
【0379】
次いで、処理はステップS4543から接続子10−11を通して図44MのステップS4525に入る。判定ステップS4525およびS4526で、ブロック右アドレス(BlockRight)の値がEdgeL_X(すなわち、プリントバッファX内の印刷データの左端)の値よりも小さいかどうか、あるいはブロック左アドレス(BlockLeft)の値がEdgeR_X(すなわち、プリントバッファX内の印刷データの右端)の値よりも大きいかどうかが判定される。これらの条件のどちらかが真である場合、プリントバッファへ転送すべき次の走査のための印刷データブロックは、印刷データを含むプリントバッファXの領域の外側にあり、したがって、ただちに転送を実行することができ、制御が図44KのステップS4550に返され、データコマンドが処理される。
【0380】
ステップS4525とS4526の両方で判定が“NO”であるときは、プリントバッファX内で次の走査のための印刷データと現在の走査のための印刷データが重なり合っており、処理はステップS4527に入り、現在の走査方向が往路方向であるかどうかが判定される。ステップS4527における判定が“YES”である場合、、ブロック右アドレス(BlockRight)の値が(EdgeR_X)の値以下であるかどうかが判定される(S4528)。ステップS4528における判定が“YES”であれば、ブロック印刷データが確実にプリントバッファXの空の領域に挿入されるように、データコマンドに対する図44KのステップS4550へのリターンは、ブロック右アドレス(BlockRight)が、プリントバッファXに関連付けされた記録ヘッドの位置(HeadPos_X)よりも小さくなる(ステップS4529)まで遅延される。ステップS4528における判定が“NO”であれば、図44KのステップS4550へのリターンは、プリントバッファXに関する記録ヘッドが現在の印刷位置の印刷を終了する(ステップS4530)まで遅延される。
【0381】
ステップS4527で現在の走査方向が復路方向であると判定されたことに応答する場合、処理はステップS4531に入り、ブロック左アドレス(BlockLeft)の値が(EdgeL_X)の値以上であるかどうかが判定される(S4531)。ステップS4531での判定が“YES”であれば、ブロック印刷データが確実にプリントバッファXの空の領域に挿入されるように、データコマンドに対する図44KのステップS4550へのリターンは、ブロック左アドレス(BlockLeft)がHeadPos_Xよりも大きくなる(ステップS4532)まで遅延される。一方、ステップS4531での判定が“NO”であれば、図44KのステップS4550へのリターンは、プリントバッファXに関する記録ヘッドが現在の印刷位置の印刷を終了する(ステップS4533)まで遅延される。
【0382】
本発明によれば、現在の走査時にホストプロセッサ23からプリントバッファ139へ次の走査のための印刷データを転送することによって、プリントバッファ139と同じサイズの独立の受信バッファが不要になり、印刷データ転送効率が高まる。さらに、シフト領域のサイズは固定されず、各印刷タスクごとに[DEFINE_BUF]コマンドによって設定され、そのため、プリンタ30の記憶容量に応じてシフト領域サイズを選択することができる。
【0383】
さらに、どのトッププロセッサの間でデータを転送する際にもプリンタバッファシフト領域技術を適用することができる。図44Nは、プリンタドライバとプリンタコントローラとの間での印刷データの転送にシフトバッファ技述が適用される、本明細書で説明した実施形態を850で示している。また、参照番号860は、プリンタコントローラとプリントエンジンの間での印刷データの転送にもシフトバッファ技術が適用できることを示している。
10.0 いくつかの異なる解像度によるマルチヘッド印刷
プリンタ30が複数の記録ヘッドを有することと、解像度に影響を及ぼすコマンドが各記録ヘッドへ独立に送信されるソフトウェアアーキテクチャとのために、プリンタ30は、各記録ヘッドごとに異なる解像度で印刷することができ、かつそのように印刷するように制御することができ、そのため、あるページの印刷データが、より高い解像度が望まれる印刷情報とより低い解像度が適切な印刷データとが混合した印刷情報を含む場合に、全体的な印刷効率が高まる。
【0384】
一般的に言えば、本節では、第1および第2の記録ヘッドの解像度が互いに独立に制御されるように少なくとも第1の記録ヘッドと第2の記録ヘッドとを有するプリンタの制御について説明する。第1.0節で説明したように、プリンタ30は、それぞれ、130aおよび130bとして指定された、2つのインクジェット記録ヘッドAおよびBを含む。第3.0節で説明したように、ソフトウェアアーキテクチャは、印刷解像度に影響を与えるホストプロセッサ23から送信されるコマンドを含む。印刷は、ホストプロセッサ23からプリンタ30内のプリントバッファ139へ画像データを送信し([DATA]コマンドを使用する)、その後で[PRINT]印刷実行コマンドを送信することによって行われる。印刷解像度の制御は、インク滴サイズを変更するコマンド([DROP]コマンド)、印刷速度を選択するコマンド([SPEED]コマンド)、ノズル駆動シーケンスを選択するコマンド([SELECT_PULSE]コマンド)、プリントバッファ139から画像データを読み出すための読出し順序を選択するコマンド([SELECT_CONTROL]コマンド)を送信することによって行われる。
【0385】
各記録ヘッドが印刷を行う解像度は、ユーザ入力によってマニュアルで決定することも、あるいはたとえば、記録ヘッド130aおよび130bの相対的なヘッド構成、印刷データの内容、記録(または印刷)媒体の種類に基づいて自動的に決定することもできる。この目的のためにプリンタドライバ114にはユーザインタフェースが設けられている。
【0386】
プリンタに関しては、プリンタ30は、記録ヘッド130aおよび130bのそれぞれの解像度を独立に設定するコマンドを受信し、選択された解像度でプリントアウトを行う。
【0387】
図45Aは、いくつかの異なるヘッドごとにそれぞれの異なる解像度を用いた場合のプリントアウトの利点について説明するための図である。図45Aにおいて、参照番号400は、いくつかの異なる種類の混合印刷情報を含む記録媒体401上の印刷済みシートを示す。領域402a、402b、402c、402dは、主として、低解像度が適切な黒領域と白領域とからなるテキスト領域である。一方、領域404は、高解像度が望まれるカラー画像やグラフィックや線画などの非テキスト領域を表す。したがって、図45Aでわかるように、プリントアウト400は混合印刷情報からなり、このうちのいくつかの情報は高解像度で印刷する必要があり、それに対して他の情報については低解像度が適切である。印刷情報は一枚の記録媒体401上で混合され、領域404や402bなどいくつかの場合には、プリンタ30の走査方向における水平プリントバンドを横切って混合される。
【0388】
参照番号405は領域402aの部分の拡大図である。拡大図405は、構成の異なる記録ヘッド130aおよび130bを示す。具体的には、記録ヘッド130aは、イエロインク用の24個のノズルと、マゼンタインク用の24個のノズルと、シアンインク用の24個のノズルと、黒インク用の64個のノズルとで垂直方向に構成されたイエロノズルと、マゼンタノズルと、シアンノズルと、黒ノズルとを含む。記録ヘッド130bは、黒インク専用の128個のノズルを含む。したがって、記録ヘッド130aと記録ヘッド130bは構成が異なり、記録ヘッド130aは高解像度カラー画像を印刷するように構成され、それに対して記録ヘッド130bは白黒画像のみを印刷するように構成される。もちろん、一方の記録ヘッドが高解像度画像を印刷するように構成され、それに対して他方が低解像度画像を印刷するように構成されるような記録ヘッド130aおよび130bに関した他の構成も可能である。
【0389】
領域402aは、低解像度が適切なテキスト領域であるので、領域402の印刷は記録ヘッド130bによって行われる。この構成は参照番号405で示されており、記録ヘッド130bからの1つのバンド406が斜線で強調されて示されている。この解像度で印刷するときは、プリンタ30が、記録ヘッド130bを大きなサイズの液滴を吐出するモードに設定するよう命令され、記録ヘッド130bのヘッド構成に応じ、かつ選択された解像度に応じて、プリントバッファ139からの印刷データ読出し順序が選択される。これらのステップについては、以下で図45Bのフローチャートを参照して詳しく説明する。
【0390】
領域402aとは異なり、領域404は高解像度プリントアウトを必要とする領域である。この状況は、バンド409のみでの記録ヘッド130aによるプリントアウトを示す407の拡大図に示されている。図45Bのフローチャートを参照して詳しく説明するように、参照番号409で示したバンドでプリントアウトを実行するときは、記録ヘッド130aが、インクを小さなサイズ液滴で吐出するよう命令され、記録ヘッド130aのヘッド構成に応じ、かつ選択された解像度に応じて、プリントバッファ139からのデータ読出し順序が選択される。
【0391】
記録媒体401に沿って横方向に記録ヘッド130aおよび130bの走査方向へ混合された領域402bなどを印刷するときは、2ステップ手順が使用される。一つのステップでは、記録ヘッド130aによって409などを順次、バンド印刷する。順次印刷されるバンドの数は、記録ヘッド130aについてのバンド内の印刷ノズルの数と記録ヘッド130bについてのバンド内のノズルの数との比に対応する。もう一方のステップでは、記録ヘッド130bからのシングルパス記録が領域402bで行われる。この2ステッププロセスによって、記録媒体の逆方向搬送を必要とせずに記録媒体401を一つ方向へ連続的に進め、領域402bをプリントアウトすることができる。
【0392】
図45Bは、各記録ヘッドの印刷解像度を独立に制御し、それによってプリントアウトを実行するよう命令するために、ホストプロセッサ23内のプリンタドライバ114によって実行されるプロセスステップを示すフローチャートである。一般的に言えば、図45Bに示したプロセスステップは、各ヘッドごとのインク滴サイズを独立に制御し、各記録ヘッドごとのプリントバッファ139からの読出し順序を独立に制御することによって印刷解像度を設定する、記憶されたプログラム命令シーケンスである。
【0393】
具体的には、ステップS4501で、ホストプロセッサ23のユーザが、印刷データを印刷するためのコマンドをアプリケーションから発行し、それによってプリンタドライバ114を起動する。プリンタドライバ114は実際には、図45Aの残りの部分に示したよりも多くの機能を実行するが、印刷解像度の設定に何らかの関係を有する機能のみについて説明する。したがって、ステップS4502で、プリンタドライバ114は、印刷解像度をプリンタドライバ114によって自動的に指定すべきであるか、それともユーザによってマニュアルで指定すべきであるかを判定する。ステップ4502で、図46Aに示した代表的なユーザインタフェース画面などのユーザインタフェースがユーザに表示される。図46Aを見ればわかるように、ユーザによってセクション410が選択されると、印刷解像度が自動的に指定される。一方、411が選択されると、ユーザがマニュアルで印刷解像度を指定する。ここでは、非テキストであるグラフィックスとテキストに別々の解像度を指定することができ、ユーザはテキスト領域と非テキスト領域のそれぞれに関して高速(すなわち、低解像度)と高品質(すなわち、高解像度)のどちらかをマニュアルで指定することができる。
【0394】
図45Bに戻るとわかるように、自動指定が選択されている場合、処理フローがステップS4504に分岐し、プリンタドライバ114が自動的にグラフィックス用の解像度を選択し、次いでステップS4505に進み、プリンタドライバ114が自動的にテキスト用の解像度を選択する。グラフィックスおよびテキスト用の解像度の選択は、連続トーン印刷データに基づいて行われ、グラフィックスおよびその他の非テキスト情報の存在と、テキスト情報の存在と、プリントアウト用に選択された記録媒体の種類と、記録ヘッド130aおよび記録ヘッド130bの相対的な記録ヘッドの構成とに応じて行われる。
【0395】
処理フローは次にステップS4506に戻り、プリンタドライバは、マニュアルで、あるいは自動的に2つの解像度が指定されたかどうかを判定する。2つの解像度が指定されていない場合、処理フローはステップS4507に進み、両方のヘッドについて一様な解像度で印刷が行われる。一方、2つの解像度が指定されている場合、フローはステップS4509に進み、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトが実行される。
【0396】
したがって、ステップS4509では、バッファ制御テーブルを定義する。各ヘッドごとに1つのバッファ制御テーブルを選択することができ、それによって各記録ヘッドは、それぞれのプリントバッファから印刷データを読み出すための読出し順序を判定することができる。どのバッファ制御テーブルを使用するかの実際の選択は、この手順における後のステップで初めて行われるが、ステップS4509では単に、各解像度および各プリントアウト方向についての適切なバッファ制御テーブルが定義される。好ましくは、上記の第3.6節で説明したバッファ制御テーブル定義コマンド[DEFINE_CONTROL]が使用される。
【0397】
同様に、ステップS4510で適切な加熱パルステーブルが定義され、それによって記録ヘッド130aおよび130bの各ノズルについての駆動シーケンスが制御される。記録ヘッド130aおよび130bによって使用される実際の加熱パルステーブルはこの時点では選択されず、後の選択時に適切なテーブルが定義される。好ましくは、第3.6節で説明した加熱パルステーブル定義コマンド[DEFINE_PULSE]が使用される。
【0398】
処理フローは次いで、ステップS4511〜S4530(ステップS4520およびS4521を除く)に進み、現在の印刷バンドの解像度が判定され、インク吐出液滴サイズ、バッファ読出し順序などの印刷制御条件が設定され、印刷データが送信され、送信された印刷データのプリントアウトが命令される。
【0399】
詳細には、ステップS4511で、特定のバンドまたはバンドの一部のプリントアウトが高解像度プリントアウトであるか、それとも低解像度プリントアウトであるかが判定される。バンドまたはバンドの一部が低解像度プリントアウトである場合、フローはステップS4512に進み、記録ヘッド130aおよび130bのそれぞれについて適切なインク吐出滴サイズが設定される。図45Aに示す例の場合、記録ヘッド130bの液滴サイズは大きなサイズに設定され、記録ヘッド130aの液滴サイズは小さなサイズに設定される。好ましくは、第3.6節で説明した液滴サイズコマンド[DROP]が使用される。
【0400】
ステップS4514で、プリンタドライバ114は、低解像度プリントアウトに対応する高印刷速度を選択する。好ましくは、第3.6節で定義した速度選択コマンド[SPEED]が使用される。
【0401】
ステップS4516で、選択された低解像度に応じてプリントバッファ139の読出し順序のオフセットが選択される。具体的には、ステップS4516で、ステップS4509で設定されたバッファ制御テーブルのうちの1つが選択される。好ましくは、第3.6節で定義したバッファ制御テーブル選択コマンド[SELECT_CONTROL]が使用される。
【0402】
ステップS4517で、画像データが、双方向インタフェースを介してプリンタドライバ114からプリンタ30へ、第3.6節で論じたようにブロックごとに送信される。印刷データのバンド全体がプリンタ30へ送信された後、プリンタドライバ114は、印刷実行コマンド[PRINT]を送信することによってステップS4519でバンドのプリントアウトを開始する。次いでステップS4520で、他のバンドを印刷する必要があるかどうかが判定され、それに応じて、処理フローはステップS4511に戻るか、あるいはステップS4521で終了する。
【0403】
ステップS4511に戻るとわかるように、印刷情報の高解像度バンドを送信し印刷する場合、ステップS4522〜S4530がプリンタドライバ114で実行され、低解像度ステップについてのS4512〜S4519の補足ステップが実行される。したがって、ステップS4522で小さな液滴サイズが設定され、ステップS4525で高解像度に対応する低印刷速度が設定され、ステップS4526で高解像度でのノズル駆動シーケンスが選択され、ステップS4527で、1つの定義済みバッファ制御オフセットテーブルを選択することによってプリントバッファ139からの読出し順序が選択され、ステップS4529で、高解像度の画像データが1バンドずつプリンタ30へ送信され、ステップS4530で、完全に送信されたバンドのプリントアウトが開始される。
【0404】
第2の実施形態によれば、記録ヘッドは、逆方向へのシート送りを必要とせずに水平印刷バンドの画素をプリンタ30の走査方向にそれぞれの異なる解像度で印刷し、それによって全体的な印刷効率を高めるようにしている。
【0405】
この実施形態については以下で、複数の記録ヘッドを有するプリンタに関して説明するが、後述の実施形態を単一の記録ヘッドによる印刷と共に使用してもかなりの効果が得られることに留意されたい。
【0406】
前述のように、記録ヘッドが印刷を行う解像度は、ユーザ入力によってマニュアルで決定することも、あるいはたとえば、印刷データの内容または記録媒体の種類に基づき、あるいは複数の記録ヘッドシステムの場合には記録ヘッド130aおよび記録ヘッド130bの相対的なヘッド構成に基づいて自動的に決定することもできる。
【0407】
従って、プリンタ30は、記録ヘッド130aおよび130bのそれぞれについて独立に解像度を設定するためのコマンドを受信し、設定された解像度でプリントアウトを実行することには利点がある。
【0408】
図46Bは、記録ヘッドを複数の解像度でプリントアウトを実行するように制御することの利点について説明する図である。図46Bにおいて、参照番号420は様々な種類の印刷情報を有する記録媒体421上の印刷済みシートを示す。領域420a、420b、420c、420dは、主として白黒領域からなるテキスト領域である。したがって、これらのテキスト領域に含まれる情報は低解像度で十分に印刷される。これに対して、領域424は、高解像度が好ましいカラー画像やグラフィックや線画などの非テキスト領域である。領域420bおよび424がプリンタ30の走査方向で共通の水平印刷バンド上に配置されることに留意されたい。
【0409】
参照番号425は、領域420bの一部の拡大図である。拡大図425は記録ヘッド130aおよび130bを示す。記録ヘッド130aおよび130bはそれぞれ、イエロインク用の24個のノズルと、マゼンタインク用の24個のノズルと、シアンインク用の24個のノズルと、黒インク用の64個のノズルとで垂直方向に構成されたイエロノズルと、マゼンタノズルと、シアンノズルと、黒ノズルとを含む。もちろん、記録ヘッド130aおよび130bが他の構成をとることもできる。
【0410】
領域420bは、低解像度が適当なテキスト領域であるので、領域420bの印刷は425で示したように低解像度/高速モードで行われる。領域425では、1つの低解像度バンド426が、記録ヘッド130aおよび130bによって印刷され、このバンドは斜線で強調して示されている。この解像度で印刷を行うときは、プリンタ30が、記録ヘッド130aおよび130bを大きなサイズの液滴吐出モードに設定するよう命令され、選択された解像度に応じてプリントバッファ139から読み出される印刷データが選択される。これらのステップについては、以下で図46Cのフローチャートを参照して詳しく説明する。
【0411】
領域420bとは異なり、領域424は高解像度プリントアウトを必要とする領域である。この状況は、バンド429のみでの記録ヘッド130aおよび130bによるプリントアウトを示す拡大図427に示されている。図46Cのフローチャートを参照して詳しく説明するように、参照番号429で示したバンドでプリントアウトを実行するときは、記録ヘッド130aおよび130bが、インクを小さな液滴サイズで吐出するよう命令され、選択された解像度に応じて、プリントバッファ139から読み出されるデータが選択される。
【0412】
記録媒体421に沿って横方向に記録ヘッド130aおよび130bの走査方向に関して混合された領域420bや領域424などを印刷するときは、2ステップ手順が使用される。第1のステップでは、記録ヘッド130aおよび130bによってバンド429などが順次、印刷される。順次印刷されるバンド429などのバンドの数は、シアンインク、マゼンタインク、イエロインクのそれぞれについてのインク吐出ノズルの数(この場合は"24")と、黒色インクに使用されるノズルの数(この場合は"64")との比に対応する。第2のステップでは、記録ヘッド130aおよび130bからのシングルパス記録が行われ、それによって領域420bのバンドが印刷される。第2のステップ中には、インクが記録ヘッド130aおよび130bの黒ノズルから低解像度で吐出される。この2ステッププロセスによって、記録媒体の逆方向搬送を必要とせずに記録媒体420を一方向へ進め、領域420bおよび424の可変解像度プリントアウトを実行することができる。
【0413】
図46Cは、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトを実行するよう命令するために、ホストプロセッサ23内のプリンタドライバ114によって実行されるプロセスステップを示すフローチャートである。一般的に言えば、図46Cに示したプロセスステップは、各記録ヘッドごとのインク滴サイズを制御し、各記録ヘッドごとのプリントバッファ139からの読出し順序を制御することによって印刷解像度を設定する、記憶されたプログラム命令シーケンスである。
【0414】
具体的には、ステップS4601で、ホストプロセッサ23のユーザが、印刷データを印刷するためのコマンドをアプリケーションから発行し、それによってプリンタドライバ114を起動する。プリンタドライバ114は実際には、図46Aの残りの部分に示したよりも多くの機能を実行するが、印刷解像度の設定に何らかの関係を有する機能のみについて説明する。したがって、ステップS4602で、プリンタドライバ114は、印刷解像度をプリンタドライバ114によって自動的に指定すべきであるか、それともユーザによってマニュアルで指定すべきであるかを判定する。ステップS4602で、図46Aに示した代表的なユーザインタフェース画面などのユーザインタフェースがユーザに表示される。図46Aを見ればわかるように、ユーザによってセクション410が選択されると、印刷解像度が自動的に指定される。一方、セクション411が選択されると、ユーザがマニュアルで印刷解像度を指定する。非テキストであるグラフィックスとテキストに別々の解像度を指定することができ、ユーザは、テキスト領域と非テキスト領域のそれぞれに関して高速(すなわち、低解像度)と高品質(すなわち、高解像度)のどちらかをマニュアルで指定することができる。
【0415】
図46Cに戻るとわかるように、自動指定が選択されている場合、処理フローがステップS4604に進み、プリンタドライバ114が自動的にグラフィックス用の解像度を選択し、次いでステップS4605に進み、プリンタドライバ114が自動的にテキスト用の解像度を選択する。グラフィックスおよびテキスト用の解像度の選択は、連続トーン印刷データに基づいて行われ、グラフィックスおよびその他の非テキスト情報の存在と、テキスト情報の存在と、プリントアウト用に選択された記録媒体の種類とに基づいて行われ、本明細書で説明する印刷システムなどの複数の記録ヘッドシステムの場合はさらに、記録ヘッド130aおよび記録ヘッド130bの相対的な記録ヘッドの構成に応じて行われる。
【0416】
処理フローは次にステップS4606に進み、プリンタドライバ114は、マニュアルで、あるいは自動的に2つの解像度が指定されたかどうかを判定する。2つの解像度が指定されていない場合、処理フローはステップS4607に分岐し、両方のヘッドについて一様な解像度で印刷が行われる。一方、2つの解像度が指定されている場合、処理フローはステップS4609に進み、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトが実行される。
【0417】
したがって、ステップS4609では、バッファ制御テーブルが定義される。各ヘッドごとに1つのバッファ制御テーブルを選択することができ、それによって各記録ヘッドは、それぞれのプリントバッファから印刷データを読み出すための読出し順序を判定することができる。どのバッファ制御テーブルを使用するかの実際の選択は、この手順における後のステップで初めて行われるが、ステップS4609で単に、各解像度および各プリントアウト方向についての適切なバッファ制御テーブルが定義される。好ましくは、第3.6節で説明したバッファ制御テーブル定義コマンド[DEFINE_CONTROL]が使用される。
【0418】
同様に、ステップS4610で適切な加熱パルステーブルが定義され、それによって記録ヘッド130aおよび130bの各ノズルについての駆動シーケンスが制御される。記録ヘッド130aおよび130bによって使用される実際の加熱パルステーブルはこの時点では選択されず、後の選択時に適切なテーブルが定義される。好ましくは、第3.6節で説明した加熱パルステーブル定義コマンド[DEFINE_PULSE]が使用される。
【0419】
処理フローは次いで、ステップS4611〜S4630(ステップS4620およびS4621を除く)に進み、現在の印刷バンドの解像度が判定され、インク吐出液滴サイズ、バッファ読出し順序などの印刷制御条件が設定され、印刷データが送信され、送信された印刷データのプリントアウトが命令される。
【0420】
詳細には、ステップS4611で、特定のバンドまたはバンドの一部のプリントアウトが高解像度プリントアウトであるか、それとも低解像度プリントアウトであるかが判定される。バンドまたはバンドの一部が低解像度プリントアウトである場合、フローはステップS4612に進み、ヘッド130aおよび130bのそれぞれについて適切なインク吐出滴サイズが設定される。図44に示した例の場合、記録ヘッド130aおよび130bの液滴サイズは大きなサイズに設定される。好ましくは、第3.6節で説明した液滴サイズコマンド[DROP]が使用される。
【0421】
ステップS4614で、プリンタドライバ114は、低解像度プリントアウトに対応する高印刷速度を選択する。好ましくは、第3.6節で定義した速度選択コマンド[SPEED]が使用される。
【0422】
ステップS4616で、選択された低解像度に応じてプリントバッファ139の読出し順序のオフセットが選択される。具体的には、ステップS4616で、ステップS4609で設定されたバッファ制御テーブルのうちの1つが選択される。好ましくは、第3.6節で定義したバッファ制御テーブル選択コマンド[SELECT_CONTROL]が使用される。
【0423】
ステップS4617で、画像データが、双方向インタフェースを介してプリンタドライバ114からプリンタ30へ、第3.6節で論じたようにブロックごとに送信される。印刷データのバンド全体がプリンタ30へ送信された後、プリンタドライバ114は、印刷実行コマンド[PRINT]を送信することによってステップS4619でバンドのプリントアウトを開始する。次いでステップS4620で、他のバンドを印刷する必要があるかどうかが判定され、それに応じて、処理フローはステップS4611に戻るか、あるいはステップS4621で終了する。
【0424】
ステップS4611に戻り、印刷情報の高解像度バンドを送信し印刷する場合、ステップS4622〜S4630がプリンタドライバ114で実行され、低解像度に関するステップであるS4612〜S4619の補足ステップが実行される。したがって、ステップS4622では小さな液滴サイズが設定され、ステップS4624で適切な大きさのバッファサイズが設定され、ステップS4625で高解像度に対応する低印刷速度が設定され、ステップS4626で高解像度でのノズル駆動シーケンスが選択され、ステップS4627で、1つの定義済みバッファ制御オフセットテーブルを選択することによってプリントバッファ139からの読出し順序が選択され、ステップS4629で、高解像度の画像データが1バンドずつプリンタ30へ送信され、ステップS4630で、完全に送信されたバンドのプリントアウトが開始される。
【0425】
プリンタ30を全体的に見ると、図47は、印刷解像度を独立に設定するためにプリンタ30によって実行されるプロセスステップを示すフローチャートである。すなわち、ステップS4701で、プリンタ30は制御コマンドを受信し、プリンタの各記録ヘッドを高印刷解像度または低印刷解像度が可能なように準備する。前述のように、このような制御コマンドには、印刷速度、吐出される液滴サイズ、ノズル駆動シーケンス、プリントバッファ読出し順序を設定するコマンドが含まれる。
【0426】
ステップS4702で、プリンタドライバ114から印刷データが受信され、それに続いてステップS4703で、印刷コマンドが受信される。その後ステップS4704で、高印刷解像度が命令されているか、それとも低印刷解像度が命令されているかに応じて、ステップS4702で受信された印刷データがステップS4701のコマンドに応じて印刷される。したがって、ステップS4705で示したように、高印刷解像度の場合、低速度で、小さな液滴サイズ、高解像度ノズルパルスシーケンステーブル、高解像度バッファ制御読出し順序を用いて印刷データが印刷される。同様に、ステップS4706で、低解像度プリントアウトの場合、高速度で、大きな液滴サイズ、低解像度ノズルパルスシーケンステーブル、低解像度バッファオフセット読出し順序を用いてプリントアウトが実行される。いずれの場合も、処理フローはステップS4707に進み、次の印刷コマンドシーケンスを待つ。
【0427】
図46Bおよび図46Dに関して説明したように、ステップS4705およびステップS4706で説明した2組の印刷特性を共に使用して、走査方向で単一の印刷バンド上に印刷データを印刷するように一つの記録ヘッドを制御するようにしても良い。
11.0 代替インクの選択
前述のように、プリンタ30は、複数種類のインクを一つの記録媒体上に出力するように構成される。この特徴によって、プリンタ30は、染料ベースの黒インクと顔料ベースの黒インクとの両方を使用して画像を印刷することができるという利点がある。
【0428】
本発明の好適な実施形態では、染料ベースの黒インクがいくつかの異なる色のインクと共に使用され、カラー印刷が容易である。そのため、染料ベースの黒インクを使用してカラー画像内に黒画素を印刷する際、この黒インクによって、カラー画像はほぼ均一な光学濃度を維持することができる。
【0429】
これに対して、顔料ベースの黒インクを使用してカラー画像内に黒画素を印刷すると、この黒インクによってカラー画像の他の領域とのコントラストが鮮明になり、そのためカラー画像の均一さが損なわれる。しかし、黒印刷領域と異なる色の領域との間に顕著なコントラストを維持することが望ましい多数の事例が存在する。これらの事例のうちで最も顕著な事例は、黒いテキストの白い記録媒体上への印刷である。したがって、顔料ベースの黒インクはテキストデータを印刷するために使用されることが好ましい。
【0430】
したがって、前述の実施形態では、黒目標画素を印刷するために染料ベースの黒インクを選択するか、それとも顔料ベースの黒インクを選択するかは、黒目標画素を囲む画像データの内容に基づいて決定される。具体的には、黒目標画素が異なる色の画像データ領域に対応すると判定された場合、この目標画素は染料ベースの黒インクを使用して印刷される。そうでない場合、目標画素は、顔料ベースの黒インクを使用して印刷される。黒画素が異なる色の画像データ領域に対応するかどうかを判定する1つの方法について、図49Aを参照して以下に説明する。好ましくは、そのような判定は、画像内容の正確な特徴付けを行うことができるように多値画像データに基づいて行われる。
【0431】
様々なインクの前述の視覚的特性は記録媒体へのインクの浸透度に依存するので、記録媒体の種類は、特定の印刷ジョブに染料ベースの高浸透性黒インクまたはその他の高浸透性黒インクが適しているか、あるいは顔料ベースのインクなどの低浸透性黒インクが適しているかを判定するうえで重要な役割を果たす。
【0432】
たとえば、普通紙はインク吸収品質が良くないので、インクが記録媒体内で有効に結合して均一な再生色を生成することができなくなるので、高浸透性の黒インクと共に使用するのは望ましくない。一方、様々な色の高浸透性インクを付着させた場合により均一な結合がなされる特殊コート紙が利用可能となっている。残念なことに、そのような特殊コート紙は低浸透性インクとの併用には適していない。
【0433】
上記に鑑みて、記録媒体上に画素を印刷するために使用されるインクの種類は、画素データを含む画像の種類とインクが配置される記録媒体との両方に依存することが好ましい。
【0434】
図48は、記録媒体の種類および画像内容に基づいてインクを選択する方法について説明するフローチャートである。一般に、第1のインクと第2のインクのどちらかを使用して、多値画像データに対応する画素を記録媒体上に印刷するようにインクジェットプリンタを制御するために、記録媒体が普通紙であるか、それとも特殊コート紙であるかが判定され、記録媒体が特殊コート紙と判定された場合、プリンタは第1のインクを使用して目標画素を印刷するよう命令される。一方、記録媒体が普通紙と判定された場合は、目標画素が異なる色づけがなされる領域に対応するかどうかが判定される。目標画素が異なる色づけのなされる領域に対応する場合、プリンタは、第1のインクを使用して目標画素を印刷するよう命令される。逆に、目標画素が異なる色づけのなされる領域には対応しない場合、プリンタは第2のインクを使用して目標画素を印刷するよう命令される。
【0435】
詳細には、ステップS4801から処理フローが開始し、用紙の種類が判定される。図示したように、好ましい実施形態では、普通紙と特殊コート紙のどちらかを使用することが企図される。好ましくは、特殊コート紙は、第1.5節で説明した"高解像度"紙HR−101である。
【0436】
用紙の種類が特殊コート紙と判定された場合、処理フローはステップS4802に進み、高浸透性インクを使用して黒画素データを印刷すべきであると判定される。この判定は、画像の種類にかかわらず常に、高浸透性黒インクの方が特殊コーティング記録媒体上に黒画素データを印刷するのに適しているという仮定に基づいて下される。
【0437】
ステップS4801で、用紙の種類が普通紙と判定された場合、処理フローはステップS4803に進み、印刷される画像のカラー領域内に黒目標画素が存在するかどうかが判定される。そうである場合、前述のように、処理フローはステップS4802に進む。そうでない場合、フローはステップS4804に進み、低浸透性黒インクを使用して目標画素を印刷することが決定される。
【0438】
本発明の好適な実施形態によれば、ステップS4803の判定は、目標画素を囲む画像画素を調べることによって下される。図49Aは、この特定の実施形態について説明するための図である。
【0439】
図49Aは、画像データ416の5×5グリッド内の黒目標画素415を示す。グリッド416の各区画は単一の画像画素を表す。好ましくは、各画像画素は、それぞれ、画像画素の赤成分(R)、緑成分(G)、青成分(B)を表す、3つの8ビット値で表される。黒目標画素415が異なる色の領域に配置されているかどうかを判定するために、以下の数式を使用してグリッド416内の各画素の赤成分、緑成分、青成分が比較される。
【0440】
|R−B|<α;|B−G|<β;および|G−R|<γ
上式で、α、β、γは比較的小さな値である。
【0441】
グリッド416内の各画素について各式が満たされる場合、黒目標画素415は異なる色領域には存在しないと判定される。また、別の法として、ステップS4803で、目標画素が異なる色の領域内には存在しないことを判定するために、グリッド416内の各画素の赤成分、緑成分、青成分に関し、R=G=Bという関係を満たすことを必要条件としてもよい。しかし、この方法では、ノイズ、不十分なスキャンなどのために画像データのエラーが発生する可能性が高い。したがって、α、β、γを上記で示したように使用して、データエラーに関する小さな公差が与えられる。もちろん、ステップS4803で他の方法を使用して、黒目標画素415が異なる色の領域内にあるかどうかを判定することができる。
【0442】
前述の実施形態で異なる色の領域を判定するために多値データが使用されることには利点がある。これに対して、2値データを使用して異なる色の領域を判定するシステムは、オリジナル画像データの50%グレー領域を、黒画素と白画素が交互に入れ代わる領域からなるものと解釈する恐れがある。そのため、「黒」領域を印刷するために不適切なインクが使用される恐れがある。
【0443】
代替インクの選択に関する上記の説明では、高浸透性黒インクおよび低浸透性黒インクに焦点を当てているが、色、浸透特性、または粘度や密度などその他の特性が互いに異なる第1のインクおよび第2のインクと共に前述の黒インクを使用することが企図されることを理解されたい。
【0444】
さらに、上記では普通紙と特殊コーティング高解像度用紙について論じたが、適切なインクの判定は任意の媒体種類に基づいて下すことができる。企図される他の媒体としては、透明シート、光沢紙、光沢フィルム、バックプリントフィルム、布シート、Tシャツ転写、バブルジェット用紙、挨拶状ストック、パンフレット紙などが含まれる。なお、用紙の種類は、プリンタ30内に配置された用紙センサによって検出するか、あるいは表示画面22上に表示されるユーザインタフェースを通して入力するか、あるいはプリンタ30上に配置されたボタンを介して入力することができる。
【0445】
好ましい実施形態では、プリンタドライバ114が、図48のフローを実行するコンピュータ実行可能なステップを含むことにも留意されたい。もちろん、このステップ全体をプリンタ30のROM122内に含めるか、あるいはホストプロセッサ23のコンピュータ読取り可能なメモリとプリンタ30のコンピュータ読取り可能なメモリの両方に記憶することができる。
11.1 CMYK黒または顔料黒の選択
PCBk(プロセスブラック)を使用して記録媒体上に黒画素を印刷できることが注目されている。別の方法として、そのような画素を印刷するために顔料ベースの黒インクおよび染料ベースの黒も使用されている。プリンタ30は、顔料ベースの黒インク、またはシアン、マゼンタ、イエロ、黒の染料ベースインクの組合せを使用して、黒画素の選択可能な印刷を行うことによって付加的な機能を提供する。
【0446】
これを行うために最初、黒目標画素が異なる色の領域に対応するかどうかが判定される。黒目標画素が異なる色の領域には対応しないと判定された場合、プリンタは、顔料ベースの黒インクを使用して黒目標画素を印刷するよう命令される。そうでない場合、プリンタは、染料ベースの黒インクおよび減法混色の原色各々の染料ベースインクを使用して黒目標画素を印刷するよう命令される。
【0447】
図49Bは、前述の特徴について具体的に説明するためのフローチャートである。ステップS4901で、黒目標画素が色領域に対応するかどうかが判定される。好ましくは、この判定は、黒目標画素に隣接する領域を表す多値データに基づいて下される。そのような方法については、図49Aに関して詳しく説明しており、したがって、この点では省略する。
【0448】
目標画素が色領域内に存在すると判定された場合、処理フローはステップS4902に進み、染料ベースの黒インクと染料ベースのシアンインク、マゼンタインク、イエロインクとの組合せを使用して目標画素が印刷される。ステップS4904に到達した時点では、目標画素が色領域には存在しないことが判定されている。そのため、顔料ベースの黒インクを使用して目標画素が印刷される。
【0449】
特に、前述の特徴によって、画像の色領域内の黒画素は、PCBkを使用して達成されるよりも真正な黒色を示すことができ、同時に、様々な染料ベースインクの混合物を使用して、色領域内で比較的一様な出力密度を維持することができる。また、前述の選択可能性により、顔料ベースの黒インクを使用して、分離された黒画素を印刷することができ、それによって、そのような黒画像データをより正確に再生することができる。
【0450】
前述の実施形態に関して述べたように、プリンタドライバ114は、図49Bのフローを実行するコンピュータ実行可能なステップを含む。もちろん、このステップ全体をプリンタ30のROM122内に含めるか、あるいはホストプロセッサ23のコンピュータ読取り可能なメモリとプリンタ30のコンピュータ読取り可能なメモリの両方に記憶することができる。
11.2 境界領域の印刷
前述のように、従来の方式で印刷された黒/カラー境界領域にはいくつかの欠点がある。第1に、そのような領域は多くの場合、最初の多値画像の2値化データに基づくものとして識別される。しかし、2値化画像データは、実際の多値画像データを正確には近似しないことが多い。そのため、境界領域が、オリジナル画像ではそのような領域が存在しない位置で「識別される」可能性がある。
【0451】
第2に、黒領域を印刷するために使用される低浸透性黒インクは、高浸透性インクを使用して印刷された隣接した色領域に流出する傾向がある。そのような色領域と低浸透性黒インクの領域との間の緩衝体としてPCBkが提案されている。しかし、図50(A)に示したように、PCBk領域422および低浸透性黒インク領域424のそれぞれの異なる光学濃度のために、領域が突然途切れるように見えるので、そのような緩衝体は不十分である。
【0452】
高浸透性黒インクおよびPCBk「緩衝体」を使用して黒/カラー境界領域を印刷することも提案されている。図50(B)に示したように、PCBk領域426および高浸透性黒インク領域427の光学濃度は図50(A)に示した光学濃度により類似しているが、高浸透性黒インクによって生成される黒色は、高品質な黒一色の領域を生成するには適していない。
【0453】
図51は、境界領域を印刷する方法について説明するフローチャートである。一般に、この方法は画像の黒領域と画像の異なる色の領域との間の境界を検出することと、プロセスブラックを使用して黒領域内の、境界に隣接した位置に第1の黒画素領域を印刷するようプリンタに命令することと、高浸透性黒インクを使用して黒領域内の第1の領域に隣接した位置に第2の黒画素領域を印刷するようプリンタに命令することと、低浸透性黒インクを使用して黒領域内の第2の領域に隣接した位置に第3の黒画素領域を印刷するようプリンタに命令することとを含む。
【0454】
具体的には、ステップS5101からフローが開始し、画像の黒領域と画像の異なる色の領域との間の境界が検出される。図50(C)を参照するとわかるように、ステップS5101では、異なる色の領域430と黒領域432との間の境界429が検出される。前述のように、境界検出は、2値化画像データを使用して境界検出を行うシステムよりも正確に黒と異なる色との境界を検出するように多値画像データに基づく検出を行うことが好ましい。
【0455】
処理フローはステップS5102に進み、プリンタが、PCBkを使用して第1の黒画素領域を印刷するよう命令される。図50(C)に示したように、第1の領域431は黒領域432内にあり、境界429に隣接している。
【0456】
次に、ステップS5103で、プリンタは、高浸透性黒インクを使用して第2の黒画素領域を印刷するよう命令される。第2の領域を図50(C)に領域434として示す。第2の領域434は第1の領域431に隣接し、かつ黒領域432内にあることには利点がある。
【0457】
最後に、ステップS5104で、プリンタは、低浸透性黒インクを使用して第3の黒画素領域を印刷するよう命令される。図50(C)に示したように、第3の領域436は第2の領域434に隣接し、かつ黒領域432内にある。
【0458】
必要なPCBK画素の数と、黒領域と異なる色の領域との間の境界領域で必要とされる高浸透性黒インクによる画素の数とに基づいて、第1、第2、第3の領域のサイズを調整できることを理解されたい。
【0459】
図51のフローの結果として、黒領域と異なる色の領域との間の境界を横切って光学濃度がしだいに変化し、黒領域と色領域との間のインクの滲み出しが低減し、高品質の黒領域が得られる。
【0460】
プリンタドライバ114は、図51のフローを実行するコンピュータ実行可能なステップを含むことができる。このステップも、プリンタ30のROM122内に含めるか、あるいはホストプロセッサ23のコンピュータ読取り可能なメモリとプリンタ30のコンピュータ読取り可能なメモリの両方に記憶することができる。
【0461】
図52は、黒領域と異なる色の領域との間の境界領域を印刷するより詳細な方法を示す。
【0462】
一般に、図52は、高浸透性黒インクの容器と、低浸透性黒インクのインク容器と、プロセスブラックを生成するためのインク容器とを含むインクジェットプリンタを使用して画像データに対応する画素の印刷を制御するシステムについて説明するものである。このシステムによれば、画像データに基づいて、黒目標画素に隣接した第1の所定サイズの第1の領域に異なる色の領域が含まれているかどうかが判定される。第1の領域に異なる色の領域が含まれていると判定された場合、プリンタはプロセスブラックを使用して目標画素を印刷するよう命令される。第1の領域には異なる色の領域が含まれていないと判定された場合、画像データに基づいて、第1の領域よりも大きな目標画素に隣接した第2の所定サイズの第2の領域に異なる色の領域が含まれているかどうかが判定される。第2の領域に異なる色の領域が含まれていると判定された場合、プリンタは高浸透性黒インクを使用して目標画素を印刷するよう命令され、そうでない場合は、低浸透性黒インクを使用して目標画素を印刷するよう命令される。
【0463】
具体的には、ステップS5201から処理フローが開始し、オリジナル画像データ内の黒目標画素が識別される。処理フローはステップS5202に進み、目標画素に隣接した第1の領域に異なる色の領域が含まれているかどうかが判定される。そうである場合、処理フローはステップS5204に進み、プリンタ30はPCBkを使用して目標画素を印刷するよう命令される。そうでない場合、処理フローはステップS5205に進む。
【0464】
ステップS5205で、ステップS5201で識別された目標画素に隣接した第2の領域に異なる色の領域が含まれているかどうかが判定される。特に、第2の領域は、ステップS5202で分析された第1の領域よりも大きい。したがって、ステップS5205では、目標画素が異なる色の領域の近傍に配置されているかどうかが確認される。そうである場合、フローはステップS5206に進み、プリンタ30は高浸透性黒インクを使用して目標画素を印刷するよう命令される。そうでない場合、処理フローはステップS5208に進み、プリンタ30は低浸透性黒インクを使用して目標画素を印刷するよう命令される。
【0465】
図53(A)は、ステップS5202の好適な実施形態による第1の異なる色の領域の検出を示す。図53(A)は、異なる色の多値画像データの領域450と黒の多値画像データの領域451を示す。前述の説明に関して、ステップS5201で識別された目標画素は画素データ位置452によって表されている。また、5×5領域454は、ステップS5202で分析された第1の領域である。
【0466】
領域454に異なる色の領域が含まれているかどうかを判定するために、図49Aに関して説明したアルゴリズムが領域454内の画素値に適用される。領域454内の黒画素および異なる色の画素を正確に検出するために、多値画素値が使用されることが好ましい。領域454には領域450のカラーを表わす画素値が含まれているので、プリンタ30はステップS5204で、PCBkを使用して目標画素4524を印刷するよう命令される。
【0467】
この命令は、図53(A)の画像データに対応する印刷画素を表した図53(C)に反映されている。図53(C)に示したように、印刷画素456は画素位置452を表し、PCBkを使用して印刷される。なお、印刷画素457が、画素位置459を表し、やはりPCBkを使用して印刷されることを理解されたい。
【0468】
ステップS5205〜S5208について図53(B)〜図53(C)を参照して以下に詳しく説明する。具体的には、画素データ位置461に隣接し第1の領域454よりも大きな第2の領域460が分析され、その領域に異なる色の領域が含まれているかどうかが判定される。したがって、プリンタ30は、高浸透性黒インクを使用して、画素データ位置461に対応する画素462を印刷するよう命令される。
【0469】
図53(B)からわかるように、画素データ位置466に隣接した第2の領域464には異なる色の領域は含まれていない。したがって、ステップS5208に従って、プリンタ30は、低浸透性黒インクを使用して、画素データ位置466に対応する画素467を印刷するよう命令される。
【0470】
図52に示した処理の結果として、図50(C)に示したような境界領域が得られる。具体的には、境界領域を横切って光学濃度がしだいに変化し、黒領域と異なる色の領域との間の滲み出しが低減し、低浸透性黒インクを使用して黒領域が印刷される。
【0471】
もちろん、必要なPCBkによる画素の数と、黒領域と異なる色の領域との間の境界領域で必要とされる高浸透性黒インクによる画素の数とに基づいて、第1の領域および第2の領域のサイズを調整することができる。
【0472】
前述の実施形態に関して論じたように、プリンタドライバ114は、図52のフローを実行するコンピュータ実行可能なステップを含むことができる。このステップも、プリンタ30のROM122内に含めるか、あるいはホストプロセッサ23のコンピュータ読取り可能なメモリとプリンタ30のコンピュータ読取り可能なメモリの両方に記憶することができる。
11.3 いくつかの異なる解像度でのいくつかの異なるインクによる印刷
図55は、他の実施形態による処理を示すフローチャートである。図49Aに示したように、5×5画素領域416などの画素データが入力されると、ステップS5402〜S5407で、入力画素データ中の目標画素が色領域内にあるかどうかが判定される。このプロセスは、図49Aに関して説明したプロセスと同じである。したがって、話を簡単にするために、このプロセスの詳細な説明を省略する。
【0473】
ステップS5409〜S5412は、本発明によって実行される色補正、すなわち黒補正を示す。具体的には、ステップS5409で、目標画素に対して色補正が実行され、画素がRGBデータからCMYKデータに変換される。次に、ステップS5410で、目標画素が色領域内にあるかどうかが判定される。画素が色領域にはない場合、処理はステップS5411に進む。目標画素が色領域内にはない場合、顔料インク(すなわち、K1インク)が画素を形成するように設定される。これに対して、ステップS5410で、画素が色領域内にある場合、プロセスブラック、すなわち、シアンインク、マゼンタインク、イエロインクと染料ベースの(すなわち、K2)黒インクとで黒が形成される。
【0474】
次に、ステップS5413で、画素データに対する出力色補正が行われる。たとえば、このステップではγ(ガンマ)補正などを実行することができる。その後、処理はステップS5414〜S5419に進む。これらのステップは、本発明による2値化を示す。
【0475】
具体的には、ステップS5414で、目標画素が色領域内にあるかどうかが判定される。目標画素が色領域内にある場合、処理はステップS5418に進み、目標画素が2×2インデックスを用いて2値化され、次いでステップS5419に進み、画素が染料ベースの黒顔料インクを用いて720×720解像度で印刷される(図54(A)参照)。一方、ステップS5414で、目標画素が色領域内にはないと判定された場合、処理はステップS5415に進み、画素が1×1インデックスを用いて2値化され、次いでステップS5417に進み、画素が顔料ベースの黒インクを用いて360×360dpiで印刷される(図54(B)参照)。その後、処理は終了する。
【0476】
なお、以上の実施形態において、記録ヘッドから吐出される液滴はインクであるとして説明し、さらにインクタンクに収容される液体はインクであるとして説明したが、その収容物はインクに限定されるものではない。例えば、記録画像の定着性や耐水性を高めたり、その画像品質を高めたりするために記録媒体に対して吐出される処理液のようなものがインクタンクに収容されていても良い。
【0477】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギーとして熱エネルギーを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギーによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
【0478】
その代表的な構成や原理については、例えば、米国特許第4723129号明細書、同第4740796号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体(インク)が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて膜沸騰を越える急速な温度上昇を与える少なくとも1つの駆動信号を印加することによって、電気熱変換体に熱エネルギーを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に1対1で対応した液体(インク)内の気泡を形成できるので有効である。この気泡の成長、収縮により吐出用開口を介して液体(インク)を吐出させて、少なくとも1つの滴を形成する。この駆動信号をパルス形状をすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体(インク)の吐出が達成でき、より好ましい。
【0479】
このパルス形状の駆動信号としては、米国特許第4463359号明細書、同第4345262号明細書に記載されているようなものが適している。なお、上記熱作用面の温度上昇率に関する発明の米国特許第4313124号明細書に記載されている条件を採用すると、さらに優れた記録を行うことができる。
【0480】
記録ヘッドの構成としては、上述の各明細書に開示されているような吐出口、液路、電気熱変換体の組み合わせ構成(直線状液流路または直角液流路)の他に熱作用面が屈曲する領域に配置されている構成を開示する米国特許第4558333号明細書、米国特許第4459600号明細書を用いた構成も本発明に含まれるものである。加えて、複数の電気熱変換体に対して、共通するスロットを電気熱変換体の吐出部とする構成を開示する特開昭59−123670号公報や熱エネルギーの圧力波を吸収する開口を吐出部に対応させる構成を開示する特開昭59−138461号公報に基づいた構成としても良い。
【0481】
さらに、記録装置が記録できる最大記録媒体の幅に対応した長さを有するフルラインタイプの記録ヘッドとしては、上述した明細書に開示されているような複数記録ヘッドの組み合わせによってその長さを満たす構成や、一体的に形成された1個の記録ヘッドとしての構成のいずれでもよい。
【0482】
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【0483】
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段などがある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
【0484】
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも1つを備えた装置とすることもできる。
【0485】
以上説明した実施の形態においては、インクが液体であることを前提として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いても良く、あるいはインクジェット方式ではインク自体を30°C以上70°C以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
【0486】
加えて、積極的に熱エネルギーによる昇温をインクの固形状態から液体状態への状態変化のエネルギーとして使用せしめることで積極的に防止するため、またはインクの蒸発を防止するため、放置状態で固化し加熱によって液化するインクを用いても良い。いずれにしても熱エネルギーの記録信号に応じた付与によってインクが液化し、液状インクが吐出されるものや、記録媒体に到達する時点では既に固化し始めるもの等のような、熱エネルギーの付与によって初めて液化する性質のインクを使用する場合も本発明は適用可能である。このような場合インクは、特開昭54−56847号公報あるいは特開昭60−71260号公報に記載されるような、多孔質シート凹部または貫通孔に液状または固形物として保持された状態で、電気熱変換体に対して対向するような形態としてもよい。本発明においては、上述した各インクに対して最も有効なものは、上述した膜沸騰方式を実行するものである。
【0487】
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置の形態を取るものであっても良い。
【0488】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0489】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0490】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0491】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0492】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0493】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0494】
本発明について特定の例示的な実施形態に関して説明した。本発明が前述の実施形態に限らず、かつ当業者によって本発明の趣旨および範囲から逸脱せずに様々な変更および修正が加えられることを理解されたい。
【0495】
【発明の効果】
以上説明したように本発明によれば、例えば、ホストプロセッサのような外部機器と連携して、例えば、インクジェット記録ヘッドの回復動作の実行タイミングの制御を行うので、プリンタ側でそのようなタイミング制御に係るハードウェアを削減することができるという効果がある。
【0496】
これによって、プリンタをより魅力的な価格にすることが可能になる。
【図面の簡単な説明】
【図1】本発明のプリンタと共に使用されるコンピュータ装置の斜視図である。
【図2】図1に示したプリンタの正面斜視図である。
【図3】図1に示したプリンタの背面斜視図である。
【図4】図1に示したプリンタの正面切取斜視図である。
【図5】図1に示したプリンタの背面切取斜視図である。
【図6A】本発明と共に使用されるカートリッジ・リセプタクルの正面図である。
【図6B】本発明と共に使用されるカートリッジ・リセプタクルの背面図である。
【図7A】本発明と共に使用される使い捨てインクカートリッジの例を示す図である。
【図7B】本発明と共に使用される第2のタイプのインクカートリッジの一例を示す図である。
【図7C】本発明と共に使用される第2のタイプのインクカートリッジの一例を示す図である。
【図8】本発明と共に使用される記録ヘッドのヘッド構成を示す図である。
【図9】本発明のプリンタによって印刷されるドット構成を示す図である。
【図10】本発明のプリンタと相互接続されたホストプロセッサのハードウェア構成を示すブロック図である。
【図11】図10に示したホストプロセッサおよびプリンタの機能ブロック図である。
【図12】図10に示したゲート・アレイの内部構成を示すブロック図である。
【図13】本発明のプリンタのメモリ・アークテクチャを示す図である。
【図14】本発明のプリンタの動作を詳しく示す全体的なシステム・フローチャートである。
【図15】本発明のプリンタのユーザ操作に対するプリンタ応答を示すフローチャートである。
【図16】本発明による印刷制御フローを示すフローチャートである。
【図17】本発明のスキャン・パラメータの設定を示すフローチャートである。
【図18】印刷シーケンス中のコマンド・フローを示す表である。
【図19】本発明のプリンタのハード電源オン・シーケンスを示すフローチャートである。
【図20】本発明のプリンタのソフト電源オン・シーケンスを示すフローチャートである。
【図21】本発明のプリンタのソフト電源オフ・シーケンスを示すフローチャートである。
【図22】セントロニクスインタフェース・タスクを含む様々なタスクに関するサイクリックハンドラを示す図である。
【図23】タイマ動作を制御するサイクリックハンドラによるコントローラ・タイマ制御を示すフローチャートである。
【図24】動作のためにセットアップされた排出トレイを有する、図1に示したプリンタの詳細な斜視図である。
【図25A】図24の排出トレイの詳細な斜視図である。
【図25B】図25Aの排出トレイで使用されるフラップ上に含められる開先縁部の例の詳細な斜視図である。
【図25C】開先縁部について説明するために使用される図25Bに示したフラップの図である。
【図25D】開先縁部について説明するために使用される図25Bに示したフラップの図である。
【図26】図24の排出トレイ上のフラップの接続部の詳細な斜視図である。
【図27】図24の排出トレイの詳細な代替斜視図である。
【図28】図1のプリンタの底面図である。
【図29A】図24の排出トレイの動作を示す図である。
【図29B】図24の排出トレイの動作を示す図である。
【図29C】図24の排出トレイの動作を示す図である。
【図29D】図24の排出トレイの動作を示す図である。
【図29E】本発明の用紙排出トレイの第2の実施形態を示す斜視図である。
【図30】本発明のプリンタ内のカートリッジ・リセプタクルの動作を示す図である。
【図31】図30(A)および図30(B)に夫々示したカートリッジ・リセプタクルに設置されるインクカートリッジを示す図である。
【図32】図1のプリンタ上で使用されるインク清掃機構の構成を示す図である。
【図33】図1のプリンタに設置された各記録ヘッドのインク清掃を示す図である。
【図34】ホストプロセッサ内の記録ヘッド・コマンド・データの補償を示すフローチャートである。
【図35】本発明によって実行される時間ベースの清掃を示すフローチャートである。
【図36】本発明のプリンタが経過時間スケジュールを維持するステップを示すフローチャートである。
【図37】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図38】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図39】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図40】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図41】本発明によるインクカートリッジヘッド交換を示すフローチャートである。
【図42】本発明のプリンタに用紙が装填されており、自動清掃シーケンスが開始されたときに実行されるステップを示す図である。
【図43A】本発明による清掃スケジュールを示すタイミングチャートである。
【図43B】プリンタ・ノズル駆動回数の制御について説明するためのフローチャートである。
【図43C】プリンタに記憶されている加熱係数テーブルおよび駆動回数テーブルの分解図である。
【図43D】ノズル吐出シーケンスおよび液滴サイズの制御について説明するためのフローチャートである。
【図43E】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図43F】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図43G】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図43H】様々な印刷条件に対するノズル加熱シーケンスを示す図である。
【図43I】ホストプロセッサからプリンタ内のプリントバッファへのデータの転送を示す図である。
【図43J】往路走査の後に続く復路走査による描画を行う際の印刷データ転送を示す図である。
【図43K】単一の記録ヘッドが記録媒体を横切って往路走査を行う際の印刷データの転送を示す図である。
【図43L】本発明の代替実施形態における往路走査時の印刷データ転送を示す図である。
【図43M】往路走査が実行された後の復路走査時における印刷データ転送を示す図である。
【図43N】単一の記録ヘッドが往路走査を行う際の印刷データ転送を示す図である。
【図43O】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図43P】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図43Q】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図43R】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図44A】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図44B】一対の記録ヘッドの復路走査における印刷データ転送を示す図である。
【図44C】ホストプロセッサの印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44D】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44E】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44F】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44G】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44H】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44I】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44J】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44K】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44L】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44M】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図44N】印刷システム内でのシフトバッファ技術の可能な応用例を示す2つのブロック図である。
【図45A】いくつかの異なるヘッドのそれぞれについていくつかの異なる解像度を用いるプリントアウトの利点について説明する図である。
【図45B】各記録ヘッドごとの印刷解像度を独立に制御し、それによってプリントアウトを実行するよう命令するためにホストプロセッサ内のプリンタドライバによって実行されるプロセスステップを示すフローチャートである。
【図46A】本発明のプリンタに関連するユーザインタフェースを示す図である。
【図46B】記録ヘッドにいくつかの異なる解像度を用いる印刷の利点について説明するため図である。
【図46C】各記録ヘッドごとに印刷解像度を制御し、それによってプリントアウトを実行するよう命令するためにホストプロセッサ内のプリンタドライバによって実行されるプロセス・ステップを示すフローチャートである。
【図47】独立の印刷解像度設定に関してプリンタによって実行されるプロセス・ステップをフローチャートである。
【図48】インク選択方法について説明するためのフローチャートである。
【図49A】異なる色の領域内に黒ターゲット画素が位置するかどうかを判定するために使用される領域を示す図である。
【図49B】CMYK黒インクまたは顔料ベースの黒インクの選択について説明するフローチャートである。
【図50】黒領域と異なる色の領域との間の境界に隣接した領域の印刷を示す図である。
【図51】黒領域と異なる色の領域との間の境界に隣接した領域を印刷する方法について説明するためのフローチャートである。
【図52】黒領域と異なる色の領域との間の境界に隣接した領域を印刷する方法について説明するためのフローチャートである。
【図53】黒領域と異なる色の領域との間の境界に隣接した領域の印刷データに基づいてデータを印刷する方法を示す図である。
【図54】本発明の一実施形態による画素の2値化を示す図である。
【図55】本発明の一実施形態によるカラー処理を示す図である。
Claims (6)
- 複数の記録ヘッドを用いて記録媒体に記録を行うプリンタであって、
ソフト電源のオンにより前記プリンタがオンライン状態に移行した後に、ホストプロセッサから現在時刻と日付とを含む時刻情報を受信するインタフェースと、
前記時刻情報を格納するメモリと、
前記複数の記録ヘッドの内、少なくとも1つの記録ヘッドを回復する回復手段と、
前記プリンタに電源を投入してハード電源をオンにした状態での経過時間を計時するタイマと、
前記時刻情報に基づいて最後に記録ヘッドの回復動作を行ったときの時刻を格納する不揮発性メモリと、
少なくとも前記記録ヘッドの回復スケジュールプロセスの制御を行なうプロセッサとを有し、
前記プロセッサは、前記ハード電源がオンになった後で、前記記録ヘッドの回復スケジュールプロセスの制御を開始し、前記ソフト電源のオンを待ち合わせ、前記ソフト電源を最初にオンにしたことを判別したときには前記回復手段による回復動作の実行を前記タイマによって計時される経過時間に応じて制御し、その後の前記回復手段による回復動作の実行は、前記オンライン状態になることで前記ホストプロセッサから前記インタフェースを介して受信した時刻情報と前記不揮発性メモリに格納された時刻情報とに基づいて制御することを特徴とするプリンタ。 - 前記プロセッサは前記プリンタを制御して、前記少なくとも1つの記録ヘッドの最後の回復動作を実行した時刻と前記インタフェースにより受信した時刻情報との差が所定の経過時間を越えているかどうかに基づいて、記録ヘッドの回復動作を実行し、
前記差が前記所定の経過時間を越えている場合には、前記プロセッサは前記回復手段を制御して前記少なくとも1つの記録ヘッドの回復動作を実行し、
前記プロセッサは、前記不揮発性メモリに格納された時刻情報を更新して前記少なくとも1つの記録ヘッドの最後の回復動作を実行した時刻を反映することを特徴とする請求項1に記載のプリンタ。 - 前記プリンタはインクジェットプリンタであり、
前記プロセッサは、前記少なくとも1つの記録ヘッドが置換された場合には、前記ホストプロセッサから前記インタフェースにより受信された時刻情報に係わりなく、前記少なくとも1つの記録ヘッドの回復動作を実行することを特徴とする請求項1に記載のプリンタ。 - 前記プロセッサは、前記少なくとも1つの記録ヘッドの回復動作を実行した際に、前記不揮発性メモリに格納された時刻情報を前記回復動作を実行した時刻の情報で更新することを特徴とする請求項3に記載のプリンタ。
- 前記プロセッサは、前記最後の回復動作を実行した時刻を前記複数の記録ヘッド各々について前記不揮発性メモリにより管理することを特徴とする請求項3に記載のプリンタ。
- 複数の記録ヘッドを用いて記録媒体に記録を行うプリンタの回復制御方法であって、
ソフト電源のオンにより前記プリンタがオンライン状態に移行した後に、外部機器から現在時刻と日付とを含む時刻情報を受信する受信工程と、
揮発性メモリに前記時刻情報を格納する第1格納工程と、
前記時刻情報に基づいて、前記複数の記録ヘッドの内、少なくとも1つの記録ヘッドについての最後の回復動作を実行した時刻を不揮発性メモリに格納する第2格納工程と、
前記不揮発性メモリに格納された前記最後の回復動作を実行した時刻を読み出す読出工程と、
前記プリンタに電源を投入してハード電源をオンにした後で、CPUにより前記記録ヘッドの回復スケジュールプロセスの制御が開始され、前記ソフト電源のオンを待ち合わせ 、前記ソフト電源を最初にオンしたことが前記CPUにより判別されたときは、前記ハード電源がオンとなってから前記プリンタ内部のタイマによって計時される経過時間に応じて前記少なくとも1つの記録ヘッドの回復動作の実行を制御し、その後は前記オンライン状態になることで前記外部機器から受信した時刻情報と前記読出工程において読み出された最後の回復動作を実行した時刻とに基づいて、前記少なくとも1つの記録ヘッドの回復動作の実行を制御する制御工程とを有することを特徴とするプリンタの回復制御方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/971829 | 1997-11-17 | ||
US08/971,829 US6388758B2 (en) | 1997-11-17 | 1997-11-17 | System for scheduling an event in a device based on elapsed time or device event |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11227305A JPH11227305A (ja) | 1999-08-24 |
JP3792916B2 true JP3792916B2 (ja) | 2006-07-05 |
Family
ID=25518846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32498898A Expired - Fee Related JP3792916B2 (ja) | 1997-11-17 | 1998-11-16 | プリンタ、およびプリンタの回復制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6388758B2 (ja) |
JP (1) | JP3792916B2 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
US6948794B2 (en) | 1997-07-15 | 2005-09-27 | Silverbrook Reserach Pty Ltd | Printhead re-capping assembly for a print and demand digital camera system |
US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
US7239407B1 (en) * | 1998-12-16 | 2007-07-03 | Silverbrook Research Pty Ltd | Controller for controlling printing on both surfaces of a sheet of print media |
US6631976B2 (en) | 1999-04-14 | 2003-10-14 | Canon Kabushiki Kaisha | Control of ink jet nozzle prefiring |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
US7440124B2 (en) * | 2000-05-22 | 2008-10-21 | Sharp Kabushiki Kaisha | Ink-jet printer purging device shared by multiple host machines |
JP4130310B2 (ja) * | 2000-05-22 | 2008-08-06 | シャープ株式会社 | インクジェットプリンタシステム |
JP2002109335A (ja) * | 2000-06-30 | 2002-04-12 | Canon Inc | 消耗品オンラインショッピングシステム、ポータルサーバー、電子決算サーバー、メールオーダーセンターサーバー、リサイクル工場サーバー、サーバー、消耗品オンラインショッピング方法、プログラム及び記憶媒体 |
EP1300827B1 (en) * | 2000-07-12 | 2010-09-29 | Dainichiseika Color & Chemicals Mfg. Co. Ltd. | Image processing device for transmitting color with fidelity and image data providing method |
US7050197B1 (en) * | 2000-09-14 | 2006-05-23 | Eastman Kodak Company | Image processor for high-speed printing applications |
JP2003127438A (ja) * | 2001-10-24 | 2003-05-08 | Seiko Epson Corp | 印刷制御装置、印刷制御方法、印刷制御プログラム、印刷制御プログラムを記録した媒体、印刷装置、印刷方法 |
JP3658353B2 (ja) * | 2001-10-01 | 2005-06-08 | キヤノン株式会社 | 記録装置、および記録装置の制御方法 |
US20040085563A1 (en) * | 2002-04-19 | 2004-05-06 | Seiko Epson Corporation | Computer equipment used for printer setting, printer setting method, and computer readable medium |
JP4096642B2 (ja) * | 2002-06-21 | 2008-06-04 | セイコーエプソン株式会社 | 画像データの処理方法、および、画像データ処理システム |
JP3938002B2 (ja) * | 2002-10-18 | 2007-06-27 | キヤノン株式会社 | 印刷システムの制御方法 |
JP2005104131A (ja) * | 2003-09-30 | 2005-04-21 | Eastman Kodak Co | 膨張可能な実物大プリンターモデル |
US7738137B2 (en) * | 2004-03-23 | 2010-06-15 | Lexmark International, Inc. | Inkjet print head synchronous serial output for data integrity |
US7784062B2 (en) * | 2004-06-18 | 2010-08-24 | General Electric Company | Event based operating system, method, and apparatus for instrumentation and control systems |
US7773774B2 (en) * | 2004-06-28 | 2010-08-10 | Xerox Corporation | Dynamic test pattern composition for image-analysis based automatic machine diagnostics |
JP4581598B2 (ja) * | 2004-09-24 | 2010-11-17 | セイコーエプソン株式会社 | 時間管理機能をもつ電子機器 |
EP2620841A1 (en) * | 2005-02-17 | 2013-07-31 | Advanced Input Devices, Inc. | Keyboard assembly |
GB2424971A (en) * | 2005-04-06 | 2006-10-11 | David Miller | Scheduled cleaning and auditing of computer keyboards |
KR100648658B1 (ko) * | 2005-07-19 | 2006-11-24 | 삼성전자주식회사 | 전자서명 가능한 인쇄시스템과 프린터 및 인쇄방법 |
JP4792869B2 (ja) * | 2005-08-15 | 2011-10-12 | セイコーエプソン株式会社 | クリーニング処理装置、インクジェットプリンタ及びインクジェットプリンタのクリーニング処理方法 |
US8162433B2 (en) * | 2009-03-30 | 2012-04-24 | Xerox Corporation | System and method for scheduling ink jet recovery in an ink jet printer |
JP5306082B2 (ja) * | 2009-07-02 | 2013-10-02 | キヤノン株式会社 | 記録装置および記録方法 |
US8356879B1 (en) | 2011-09-09 | 2013-01-22 | Hewlett-Packard Development Company, L.P. | Nozzle plate cleaning |
JP2013183352A (ja) * | 2012-03-02 | 2013-09-12 | Canon Inc | 情報処理装置、情報処理装置の制御方法、プログラムおよびコンピュータ読取可能な記録媒体 |
JP6397251B2 (ja) * | 2014-07-30 | 2018-09-26 | 理想科学工業株式会社 | 画像記録装置 |
JP2018155782A (ja) * | 2017-03-15 | 2018-10-04 | コニカミノルタ株式会社 | 制御装置、画像形成装置およびプログラム |
JP6844351B2 (ja) * | 2017-03-16 | 2021-03-17 | ブラザー工業株式会社 | サーバ、制御プログラム、およびデバイス |
US10493784B2 (en) | 2017-03-31 | 2019-12-03 | Canon Kabushiki Kaisha | Printing apparatus, printing system, method of controlling printing apparatus, method of controlling printing system, and storage medium |
EP3613025A4 (en) | 2017-07-20 | 2020-12-09 | Hewlett-Packard Development Company, L.P. | EQUIPMENT DETECTION |
JP6759162B2 (ja) * | 2017-07-27 | 2020-09-23 | ローランドディー.ジー.株式会社 | インクジェットプリンタ |
JP7341762B2 (ja) * | 2019-07-11 | 2023-09-11 | キヤノン株式会社 | 制御装置、画像形成装置、情報処理装置、制御方法、およびプログラム |
US11146472B1 (en) * | 2020-07-21 | 2021-10-12 | Bank Of America Corporation | Artificial intelligence-based lateral movement identification tool |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4692778A (en) | 1985-03-28 | 1987-09-08 | Canon Kabushiki Kaisha | Image formation apparatus with a recording unit and paper feed cover and a sealing member |
JP2675851B2 (ja) | 1989-01-28 | 1997-11-12 | キヤノン株式会社 | インクジェット記録方法及び該方法に用いる装置 |
EP0398347B1 (en) | 1989-05-18 | 1995-09-06 | Canon Kabushiki Kaisha | An ink jet recording apparatus |
US5266974A (en) | 1989-05-18 | 1993-11-30 | Canon Kabushiki Kaisha | Ink jet recording apparatus including means for controlling speed of wiper member |
JP2859296B2 (ja) | 1989-06-01 | 1999-02-17 | キヤノン株式会社 | 画像再生方法及びその装置 |
JP2768788B2 (ja) | 1990-02-26 | 1998-06-25 | キヤノン株式会社 | 記録装置 |
KR940000377B1 (ko) | 1990-05-10 | 1994-01-19 | 캐논 가부시끼가이샤 | Cpu를 사용한 데이타 처리장치 |
US5172140A (en) | 1990-06-13 | 1992-12-15 | Canon Kabushiki Kaisha | Ink jet recording apparatus including a device for indicating need to change waste ink pack |
DE69219180T2 (de) | 1991-02-12 | 1997-10-02 | Canon Kk | Tintenstrahlaufzeichnungssystem und Verfahren |
JP2941998B2 (ja) | 1991-06-03 | 1999-08-30 | キヤノン株式会社 | インクジェット記録装置 |
CA2074906C (en) | 1991-08-01 | 2000-09-12 | Hiromitsu Hirabayashi | Ink jet recording apparatus having temperature control function |
JP2942031B2 (ja) | 1991-09-30 | 1999-08-30 | キヤノン株式会社 | インクジェット記録装置 |
JP3009764B2 (ja) | 1991-10-03 | 2000-02-14 | キヤノン株式会社 | インクジェット記録装置 |
DE69229509T2 (de) | 1991-12-11 | 1999-11-25 | Canon Kk | Tintenstrahlkassette und Titenbehälter |
JP3017605B2 (ja) * | 1992-06-19 | 2000-03-13 | キヤノン株式会社 | プリンタ制御方法およびその制御システム |
JP3083409B2 (ja) | 1992-07-24 | 2000-09-04 | キヤノン株式会社 | インクジェット記録装置および該記録装置の回復方法 |
DE69423998T2 (de) * | 1993-05-27 | 2000-10-05 | Canon Kk | Verfahren und Vorrichtung zur Steuerung einer Druckoperation |
JP3601102B2 (ja) * | 1995-03-15 | 2004-12-15 | ブラザー工業株式会社 | インクジェット式印刷記録装置と印字システム |
US5818847A (en) * | 1996-06-06 | 1998-10-06 | Sun Microsystems, Inc. | System and method for providing real time values in digital data processing system |
-
1997
- 1997-11-17 US US08/971,829 patent/US6388758B2/en not_active Expired - Lifetime
-
1998
- 1998-11-16 JP JP32498898A patent/JP3792916B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20010015818A1 (en) | 2001-08-23 |
US6388758B2 (en) | 2002-05-14 |
JPH11227305A (ja) | 1999-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3792916B2 (ja) | プリンタ、およびプリンタの回復制御方法 | |
JP3902877B2 (ja) | 記録ヘッド駆動パラメータの制御 | |
JP3862433B2 (ja) | プリンタプロファイルパラメータを格納するメモリを有したプリンタ | |
JP3548441B2 (ja) | 異なる解像度でのマルチヘッドプリント | |
JP3715806B2 (ja) | アクセス可能なプリントバッファを有したシリアルプリンタ | |
JPH11227229A (ja) | 複数の異なる黒インクを用いたプリント | |
JP3382551B2 (ja) | 記録装置用排出トレイ | |
JP3907382B2 (ja) | ヘッドアライメントに基づくプリンタ制御 | |
JP4164222B2 (ja) | プリンタドライバによる状態に基づく制御 | |
JP2001014129A (ja) | プリントデータの生成方法、プリントシステム、コンピューターで実行可能な処理工程及び記憶媒体 | |
JP3697141B2 (ja) | プリント方法、システム、コンピューターで実行可能な処理工程及び記憶媒体 | |
US6341843B1 (en) | Ink jet printer having an ink cleaning mechanism | |
JP3495972B2 (ja) | プリント制御方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060406 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |