しかしながら、インク残量のデータは、カートリッジの交換時期を正確に知らせるためには、かなりの精度が必要になり、これをカートリッジ側に記憶しようとすると、記憶容量が大きくなってしまうという問題があった。精度が低い場合には、インクカートリッジのインク残量がなくなったことを報知するインクエンドの判断が実際のインク残量と大きく食い違ってしまう。電源オフ時にこのデータを更新していくとすると、次に電源を投入した場合、カートリッジのインク残量を読み出したプリンタ本体側は、記憶している値を精度内の下限値として扱わざるを得ないからである。例えば、カートリッジ側のデータが1バイト(8ビット)であり、0−100%のように、インク残量を百分率で記憶し、そのデータの精度は1%であるとする。この場合、カートリッジ側から読み出した値が「50」とすると、これが、50.9を丸めて50として書き込んだものか、50.1を丸めたものかは本体側では判断できないから、安全を見て、下限値50.0として扱わざるをえない。
そうすると、毎回わずかな量を使用したとしても、必ず1%ずつデータを漸減しなければならないから、100回使用すると、カートリッジのインク残量は0になってしまうことになる。逆にわずかな使用ではデータを1%低減しないとすると、今度はわずかずつ使用した場合に、インク残量が0となってもインクエンドの警告が出力されないことになってしまう。従って、メモリを備えたカートリッジやこれを利用する印刷装置では、インク残量等を正確に判断しようとすると、インク当たり数バイトの記憶容量を用意しなければならなかった。複数のインクが一つの筐体に収納されたカラーカートリッジの等の場合には、色毎に記憶領域が必要になるので、例えば5色のインクカートリッジにおいて各色毎に4バイトの容量を必要とすれば、5×4=20バイト(20×8=160ビット)もの容量を必要としてしまう。
また、書き込むべき容量が増加すると、電源オフ時に総てのデータを書き戻すことが困難になることが考えられた。印刷装置のパネルに設けられた電源スイッチを操作するような場合には、印刷装置側でカートリッジのメモリへの書込を確認してから電源を遮断するようなシーケンスを実現することができるが、いきなりコンセントを抜いたり、コンピュータ連動電源タップ等を用いて電源ライン側で強制的に電源オフにするような場合には、電源の遮断を検出していても、わずかな時間に、カートリッジのメモリへの書込を完了しなければならない。書込の途中で書き込みようの電源電圧が失われてしまえば、カートリッジ側のデータの信頼性は失われ、もはやカートリッジを適正に使用することができなくなってしまう。この他、容量の大きなメモリの使用は、消耗品であるインクカートリッジのコストの上昇を招き、また省資源の立場からも問題となる。
なお、こうした問題は、溶媒中に顔料または染料を混合または溶解し、液状のインク滴を吐出して印刷を行なうインクジェットタイプの印刷装置およびそのインクカートリッジのみならず、トナーを収容したトナーカートリッジを用いる印刷装置や熱転写タイプの印刷装置でも、カートリッジ内の残量もしくは消費量を直接計測するのではなく、印刷装置側で演算するタイプの印刷装置およびカートリッジでは同様に生じ得るものであった。
本発明の目的は、上記問題を解決し、カートリッジのコスト上昇を抑制しつつ、インク残量等のカートリッジに関する情報を適正に処理可能な印刷装置およびカートリッジを提供することにある。
かかる目的の少なくとも一部を達成するために印刷装置およびカートリッジの発明がなされた。本発明の印刷装置は、
インクを収容するカートリッジと、印刷ヘッドを備える印刷装置本体とを備えた印刷装置であって、
前記カートリッジは不揮発性メモリを備え、
前記印刷装置本体は、本体側メモリと、前記本体側メモリ及び前記不揮発性メモリにデータを書き込む制御部と、を備え、
前記制御部は、
前記カートリッジが前記印刷装置本体に装着されたときに前記不揮発性メモリから読み出した情報に基づき前記カートリッジが前記印刷装置本体に初めて装着されたと判断したときには、前記カートリッジが新品である場合に前記カートリッジに収容されているインク量のデータを所定ビット数のデータとして前記本体側メモリに書き込み、かつ、印刷の実行および前記印刷ヘッドのクリーニングにより前記カートリッジから消費されたインク量に関する情報を前記所定ビット数のデータとして前記本体側メモリに書き込み、
前記カートリッジが新品である場合に前記カートリッジに収容されているインク量に対応した値を基準として、前記消費されたインク量に関する情報を割合で示すデータで、かつ、前記所定ビット数よりも少ないビット数のデータに変換し、前記変換されたデータを前記不揮発性メモリに書き込むこと
を要旨とする。
かかる印刷装置では、印刷媒体への印刷の実行に伴って消費されるカートリッジ内のインク量に関する情報を、本体側メモリには所定のビット数のデータとして書き込み、カートリッジ側の不揮発性メモリには、このビット数より少ないビット数のデータに変換してから書き込む。従って、カートリッジに、インク量に関するデータを不揮発的に記憶させながら、かつその記憶容量のいたずらな増大を招かないという効果を奏する。
ここで、ビット数を少なくするためには、本体側メモリに書き込まれるデータの下位ビットを削除する変換や、このデータを、割合を示すデータに換算する変換などが採用可能である。
また、こうした印刷装置において、電源が投入されたとき、前記本体側メモリに記憶された前記インク量に関する情報と、前記不揮発性メモリに記憶された変換後のデータとの対応関係を判定し、両者が対応していると判定されたとき、前記本体側メモリに記憶された前記ビット数のデータを用いて、その後のインク量に関する処理を行なうこともできる。こうすれば、カートリッジが交換されない限り、大きなビット数のデータ、即ち精度の高いデータを用いてインク量に関する処理を行なうことができ、好適である。
他方、電源が投入されたとき、前記本体側メモリに記憶された前記インク量に関する情報と、前記不揮発性メモリに記憶された変換後のデータとの対応関係を判定し、両者が対応していないと判定されたとき、前記不揮発性メモリに記憶された前記ビット数のデータを換算して、該データに対応するインク量に関する情報を前記本体側メモリに前記所定ビット数のデータとして書き込むと共に、該データを用いてその後のインク量に関する処理を行なわせるものとすることもできる。この場合には、カートリッジに記憶したインク量に関するデータを用いてその後の処理を継続することができるので、好適である。
もとより、カートリッジの不揮発性メモリに、このカートリッジを識別可能な識別情報を記憶しておき、印刷装置本体側で、電源投入時および/または前記カートリッジの交換時に、該不揮発性メモリに記憶された前記識別情報を読み出して保存しておき、読み出した識別情報とそれ以前に読み出して保存しておいた識別情報とを比較して、両者の一致を判定し、両者が一致していると判定されたとき、前記本体側メモリに記憶された前記ビット数のデータを用いて、その後のインク量に関する処理を行なわせるものとしてもよい。この場合には、カートリッジの識別情報を用いているので、同一のカートリッジが装着されていることを確実に判別して、インク量に関する処理を、本体側メモリが記憶している大きなビット数のデータを用いて継続することができる。
他方、かかる構成において、読み出した識別情報と前回読み出して保存しておいた識別情報とを比較して、両者が一致していないと判定されたとき、前記不揮発性メモリに記憶された前記ビット数のデータを換算して、該データに対応するインク量に関する情報を前記本体側メモリに前記所定ビット数のデータとして書き込むと共に、該データを用いてその後のインク量に関する処理を行なわせるものとすることもできる。この場合には、カートリッジ側のインク量に関するデータを用いてその後の処理を継続することができる。
ところで、本体側メモリには、現に装着されているカートリッジのインク量に関する情報のみを保存しているだけでなく、装着されたいくつかのカートリッジのインク量に関する情報を記憶しているものとすることもできる。この場合には、カートリッジの不揮発性メモリに、そのカートリッジを識別可能な識別情報を記憶しておき、電源投入時および/またはカートリッジの交換時に、不揮発性メモリに記憶された前記識別情報を読み出し、この識別情報を用い、インク量に関する情報を、該識別情報の異なるカートリッジ別に、本体側メモリに保存しておく。その上で、カートリッジの交換がなされ得た場合には、前記不揮発性メモリから読み出した識別情報を用いて、本体側メモリの内容を検索し、一致するカートリッジに関する情報が存在するか否かを判定する。一致するカートリッジに関する情報が存在すると判定された場合には、この情報を利用して、その後のインク量に関する処理を行なわせればよい。このようにすれば、いくつかのカートリッジが取り替えられても、インク量に関する処理を精度良く行なうことができる。
他方、一致するカートリッジに関する情報が存在すると判定されたとき、更に、本体側メモリに記憶された前記インク量に関する情報と、不揮発性メモリに記憶された該カートリッジに対応した変換後のデータとの対応関係を判定し、両者が対応していると判定されたとき、その後のインク量に関する処理を、本体側メモリに記憶された前記一致するカートリッジについてのビット数のデータを用いて行なわせることができる。識別情報のみならず、インク量に関する情報に対応関係も判定しているので、装着されたカートリッジについてのインク量に関する情報として、正しいものを確実に試用することができる。
他方、本体側メモリに記憶された前記インク量に関する情報と、前記不揮発性メモリに記憶された該カートリッジに対応した変換後のデータとが対応していないと判定されたときには、不揮発性メモリに記憶された前記ビット数のデータを換算して該データに対応するインク量に関する情報を求め、この情報を、本体側メモリの前記一致したカートリッジに対応付けて、所定ビット数のデータとして書き込むものとすることができる。この場合には、カートリッジ側のデータを用いて処理を継続することができ、好適である。
こうした二つのメモリの情報を利用してインク量に関する処理を行なうものにあっては、本体側メモリを、不揮発性メモリより、大容量のメモリとすることが現実的である。カートリッジという消耗品に大容量のメモリを持たせることはコスト的にも省資源の立場からも、望ましいとは言えないからである。
また、本体側メモリは、不揮発性メモリより、高速なアクセスが可能なメモリとすることもできる。ビット数の多いデータを書き込むので、高速にアクセス可能な目盛りの方が望ましいからである。
なお、カートリッジの不揮発性メモリにデータを書き込むタイミングとしては、種々考えることができるが、印刷装置の電源オフ時および/または前記カートリッジの交換時に、情報の書込を行なうものとすることができる。少なくともこれらのタイミングでデータを書き込んでおけば、カートリッジの装着が解除される場合にカートリッジないのデータを最新のものにしておくことができる。
他方、本体側メモリへのデータの書き込みは、1頁分の印刷が完了した時に行なうものとしたり、1以上のラスタ分の印刷が完了した時に行なうものとしたり、両タイミングで行なうものとしたりすることができる。本体側メモリのデータは細かく更新しておき、カートリッジ側の不揮発性メモリは、これより少ない頻度で更新することも好適である。
更に、印刷装置に、所定の操作を受けて、所定の量のインクを吐出させるヘッドクリーニングを行なうクリーニング手段を備える場合、クリーニング手段が動作した時にも、本体側メモリへの情報の書き込みを行なうものとしても良い。インクジェットプリンタ等で、印字ヘッドのノズルの目詰まりを防止するために、クリーニング機能を有するものがあるが、クリーニング動作を行なうと、所定量のインクを消費する。従って、こうした動作の後では、インク量に関する情報を更新することが望ましい。
カートリッジに搭載する不揮発性のメモリとして、公知の種々のメモリが使用可能であるが、例えば、シリアルアクセスによりデータの授受を行なうタイプのメモリを用いることができる。こうしたタイプのメモリは、一般に記憶容量はさほど大きくはないものの、安価であり、チップとしての端子も少ないので、省資源にも資することができる。この場合、メモリへの書き込みを行なう側は、情報を、アドレス指定用のクロックに同期して不揮発性メモリに書き込む。
もとより、こうしたアドレス指定用のクロックは、不揮発性メモリへのデータの書き込みを直接制御する制御用ICを用いて出力するものとしてよい。こうした場合には、本体側メモリは、制御用ICの内部に設けてもよい、制御用ICの外部に設けても良い。
また、こうした構成にあって、カートリッジを、印字ヘッドが設けられ印刷媒体に対して往復動されるキャリッジ上に装着可能とした場合には、本体側メモリをキャリッジ上に設けることも差し支えない。制御用ICが、印刷装置側の制御手段から例えば通信などでデータを受け取るのであれば、この制御用ICの近くに本体側メモリを設けることは好適である。なお、カートリッジがキャリッジ上になく、本体側に固定されている場合でも、当然本発明は適用可能である。
カートリッジに不揮発性メモリを備えた構成は、カートリッジの種類によらず、適用することができる。例えば、印刷装置手が、黒色インクを収納した黒色インク用のカートリッジと、複数のカラーインクを収納したカラーインク用のカートリッジとを、装着可能であれば、この黒色インク用カートリッジとカラーインク用カートリッジの各々に不揮発メモリを備え、それぞれに情報を書き込むものとすることができる。かかる構成によれば、カートリッジ毎に不揮発性メモリを有するので、カートリッジ毎にインク量のデータを処理することができる。もとより、黒色あるいはカラーインクカートリッジのみを装着可能な印刷装置にも適用可能である。
以上本発明の印刷装置について説明したが、この発明は、メモリにおける情報管理方法としても構成することができる。即ち、この印刷装置の情報を管理する方法は、
インクを収容すると共に書き換え可能な不揮発性メモリを備えたカートリッジが装着可能であり、該カートリッジのインクを印刷媒体に移して印刷を行なう印刷装置の情報を関する方法であって、
前記印刷媒体への印刷の実行に伴って消費される前記カートリッジ内のインク量に関する情報を、所定ビット数のデータとして、前記印刷装置の本体側に設けられた書き換え可能な本体側メモリに記憶し、
該インク量に関する情報を、前記ビット数より少ないビット数のデータに変換して、前記カートリッジに備えられた不揮発性メモリに書き込むこと
を要旨としている。
かかる手法によりインク量に関する情報を管理すれば、一般に容量の小さいカートリッジ側の不揮発性メモリに無用な負担をかけることがなく、かつビット数の大きな、即ち精度の高いデータを本体側メモリに記憶することができ、カートリッジにおけるインク量に関する情報を好適に管理することができる。
こうした方法は、印刷装置においても実施できるが、印刷装置に接続したコンピュータなどで実施することもできる。この場合、コンピュータに実施させるプログラムを記録した記録媒体として、発明を把握することができる。即ち、本発明の記録媒体は、インクを収容すると共に書き換え可能な不揮発性メモリを備えたカートリッジが装着可能であり、該カートリッジのインクを印刷媒体に移して印刷を行なう印刷装置の情報を扱うプログラムを、コンピュータに読み取り可能に記録した記録媒体であって、
前記印刷媒体への印刷の実行に伴って消費される前記カートリッジ内のインク量に関する情報を、所定ビット数のデータとして、前記印刷装置の本体側に設けられた書き換え可能な本体側メモリに記憶する機能と、
該インク量に関する情報を、前記ビット数より少ないビット数のデータに変換して、前記カートリッジに備えられた不揮発性メモリに書き込む機能と
をコンピュータにより実現させるプログラムを記録したことを要旨としている。
かかる記録媒体をコンピュータに読み取らせると、上記の各機能がコンピュータにより実現され、上述した情報の管理方法を実現することができる。
更に、本発明は、カートリッジとしても構成可能である。即ち、本発明のカートリッジは、インクを収容すると共に書き換え可能な不揮発性メモリを備え、印刷装置に装着して用いられるカートリッジであって、
前記不揮発性メモリは、印刷の実行に伴って消費される前記カートリッジ内のインク量に関する情報が、前記印刷装置側で扱われているビット数より少ないビット数で書き込まれることを要旨としている。
かかるカートリッジによれば、書き込まれるインク量に関する情報は印刷装置側で扱われているビット数より少ないビット数なので、必要な記憶容量を低減することができるという利点がある。
こうしたインクカートリッジでは、不揮発性メモリへの情報の書き込みは、印刷装置の電源オフ時および/または前記カートリッジの交換時とすることができる。これらのタイミングでインク量に関する情報を更新しておけば、不慮のカートリッジ交換に対して、近時のインク量に関する情報を、カートリッジ側の不揮発メモリに保持できるからである。
こうしたカートリッジ側の不揮発性メモリとしては、EEPROMやフラッシュメモリなどを用いることができる。もとより、バッテリなどでバックアップすることにより、不揮発なメモリとすることも差し支えない。バブルメモリ、超小型のハードディスクなども、不揮発性メモリとして利用可能である。
また、不揮発性メモリを、シリアルアクセスによりデータの授受を行なうタイプのメモリとして、アドレス指定用のクロックに同期して、前記情報が書き込まれるものとすることもできる。シリアルアクセスタイプのメモリは、小型化でき、端子数を少なくできる分、省資源にも資することができる。
こうした不揮発性メモリに書き込まれるデータは、印刷装置側で扱われているデータの下位ビットを除いたデータであっても良いし、印刷装置側で扱われているデータを割合を示すデータに換算したデータであっても良い。ビット数が少なく、印刷装置側で扱っているデータと対応関係が取れれば良い。
なお、カートリッジは、複数種類のインクを収容するインク収容室を有するものとすることができ、不揮発性メモリに、このインクの種類に応じてデータを書き込むものとすることができる。こうすれば、一つの不揮発性メモリにより、複数のインクのインク量に関する情報を記憶することができる。
複数のインクを収容したカートリッジの例としては、例えば、
前記インク収容室は、少なくとも異なる3種類のインクを収容する3つ以上に区画され、
不揮発性メモリは、前記各インクの量に関連する情報をそれぞれ独立して格納する複数の情報記憶領域を有し、
その複数の情報記憶領域にはそれぞれ2バイト以下の容量が割り当てられているといった形態を考えることができる。
かかる構成では、一つのインク当たり2バイト以下の容量が割り当てられているので、3種類のインクであっても、合計6バイト以下の記憶容量で、インク量に関する情報を記憶することができる。同様に、インク収容室が5種類のインクに応じて区画されている場合には、合計10バイト以下の記憶容量で、インク量に関する情報を記憶することができる。
なお、以上説明した各発明において、インク量に関連する情報としては、インク残量や、あるいは、カートリッジに関する累積的なインク消費量等を考えることができる。この他、印刷装置本体に装着されている間のインク消費量などの情報であっても差し支えない。インクを再充填可能なカートリッジでは、たとえはパネルスイッチを操作して「再充填」という指示を与え、カートリッジを取り出してインク再充填して戻すという使い方が考えられる。こうした使用の形態を前提とする場合には、「再充填」の指示を与える間において印刷装置に装着されている間のインク消費量を管理することが必要となる。
以下、図面を参照して、本発明の好適な実施例について説明する。なお、説明は以下の順序で行なう。
[第1実施例]
(プリンタの全体構成)
(インクカートリッジおよびカートリッジ装着部の構成)
(記憶素子80の構成)
(プリンタ1の動作)
(第1実施例の効果)
[第2実施例およびその作用効果]
[第1実施例]
(プリンタの全体構成)
図1は、以下の各実施例で用いられる本発明を適用したインクジェットプリンタ(印刷装置)の構成を示す斜視図である。図1において、本実施例のプリンタ1は、スキャナSCなどとともにコンピュータPCに対して接続された状態で使用される。コンピュータPCに、オペレーティングシステムや所定のプログラムがロードされ、実行されることにより、これらの装置全体が一体で印刷装置として機能する。コンピュータPCでは、所定のオペレーティングシステム上でアプリケーションプログラムが動作し、スキャナSCから読み込んだ画像などに対して所定の処理を行ないつつCRTディスプレイMTに画像を表示する。使用者は、ディスプレイMT上の画像をレタッチするといった処理を行なったのち、印刷を指示すると、オペレーティングシステムに組み込まれたプリンタドライバが起動し、画像データをプリンタ1に転送する。なお、コンピュータPCには、CD−ROMなどの記録媒体を読み取り可能なCDドライブ(図示せず)などが装着されている。
プリンタドライバは、スキャナSCから入力され、処理された原カラー画像データをプリンタ1が使用する各色のデータに変換し、プリンタ1に出力する。詳細には、原カラー画像データは赤(R)、緑(G)、青(B)の3色の色成分からなり、これを色変換して、プリンタ1に出力する色データであるブラック(K)、シアン(C)、ライトシアン(LC)、マゼンダ(M)、ライトマゼンダ(LM)、イエロー(Y)の各色に変換する処理や、さらにこれをインクドットの有無に置き換えるいわゆる二値化の処理などを行なう。これらの画像処理は、周知のものなので、詳細な説明は省略する。なお、こうした処理は、後述するように、プリンタ1側で行なうこともできる。
次に、プリンタ1の基本的な構成について説明する。プリンタ1は、図2および図3に示すように、制御を司るプリントコントローラ40や、インクの吐出などを実行するプリントエンジン5などを、プリンタ本体100に収納している。プリンタ本体100には、プリントエンジン5を構成する印刷ヘッド10や紙送り機構11およびキャリッジ機構12が設けられている。印刷ヘッド10は、カートリッジ装着部18に一体に設けられて、いわゆるキャリッジ101を構成している。印刷ヘッド10は、インクジェット式のヘッドであり、印刷用紙105と対向する面、この図に示す例ではキャリッジ101の下面に取り付けられている。印刷ヘッド10への印字データの転送は、フレキシブルフラットケーブル(FFC)300を介して行なわれる。キャリッジ機構12は、キャリッジモータ103およびタイミングベルト102を備える。キャリッジモータ103は、タイミングベルト102を介してキャリッジ101を駆動する。キャリッジ101は、ガイド部材104に案内されており、キャリッジモータ103の正逆回転により、印刷用紙105の紙幅方向に往復動する。印刷用紙105の搬送を行なう紙送り機構11は、紙送りローラ106と紙送りモータ116とから構成されている。
キャリッジ101のカートリッジ装着部18には後述するインクカートリッジ107K,107Fが装着され、印刷ヘッド10は、このインクカートリッジ107K,107Fからインクの補給を受け、キャリッジ101の移動に合わせて印刷用紙105にインク滴を吐出してドットを形成し、印刷用紙105に画像や文字を印刷する。
各インクカートリッジ107K,Fには、染料もしくは顔料を溶媒に溶解もしくは分散させたインクが充填されている。インクが充填されている空間をインク収容室と呼ぶ。インクカートリッジ107Kのインク収容室117Kには、黒(K)のインクが充填されている。また、インクカートリッジ107Fには、複数のインク収容室107C、107LC、107M、107LM、107Yがそれぞれ独立して形成されている。これらのインク収容室107C、107LC、107M、107LM、107Yには、シアン(C)、ライトシアン(LC)、マゼンダ(M)、ライトマゼンダ(LM)、イエロー(Y)のインクがそれぞれ充填されている。したがって、印刷ヘッド10には、各色のインクがインク収容室107C、107LC、107M、107LM、107Yからそれぞれ供給される。これらの各インクはそれぞれ印刷ヘッド10から各色のインク滴として吐出されてカラー印刷が実現される。
プリンタ1の本体端部には、キャッピング装置108とワイピング装置109とが配置されている。この本体端部は、印刷が行なわれない非印刷領域である。キャッピング装置108は、印刷処理の休止中に印刷ヘッド10のノズル開口を封止するためのものである。このキャッピング装置108によって、印刷処理の休止中におけるインクの溶媒成分の揮発を防止している。溶媒成分の揮発を防止することで、インク粘度の増大やインク膜の形成を抑制することができる。印刷処理の休止中にキャッピングすることにより、ノズルの目詰まりを防止することができる。また、キャッピング装置108は、フラッシング動作により印刷ヘッド10から吐出されるインク滴を受ける機能も有する。フラッシング動作とは、印刷処理実行中であってキャリッジ101が本体端部に至ったときに行なわれるインク吐出動作であり、ノズルの目詰まり防止動作の一つである。キャッピング装置108の近傍にはワイピング装置109が配置され、このワイピング装置109は、印刷ヘッド10の表面をブレードなどでワイピングすることにより、印刷ヘッド10の表面に付着したインク滓や紙粉を拭き取る。なお、これらの動作の他に、実施例のプリンタ1では、気泡混入による異常発生時等に、ノズルに対する吸引動作も行なっている。吸引動作は、キャッピング装置108を印刷ヘッド10に圧接させてノズル開口を密閉し、図示しない吸引ポンプを動作させて、キャッピング装置108に連通された通路を負圧とし、印刷ヘッド10のノズルからインクを吸引する動作である。これらのフラッシング動作、ワイピング動作、吸引動作を含めて、ヘッドクリーニングと呼ぶ。なお、ワイピングは、ブレードを立設しておき、キャリッジ101の往復動により、毎回自動的に行なわれる構成とも取り得るので、そうした場合には、積極的なヘッドクリーニング動作には、フラッシング動作と吸引動作だけが含まれる。
次に、プリンタ1の制御回路について説明する。図2は、本実施例のインクジェットプリンタ1の機能ブロック図である。プリントコントローラ40は、コンピュータからの印刷データなどを受信するインターフェース43と、印刷データなどの各種データの記憶を行なうRAM44と、各種データ処理を行なうためのプログラムなどを記憶したROM45と、CPUなどからなる制御部46と、発振回路47と、印刷ヘッド10への駆動信号COMを発生させる駆動信号発生回路48と、ドットパターンデータに展開された印刷データおよび駆動信号をプリントエンジン5に送信するなどの機能を果たすパラレル入出力インターフェース49とを備えている。
また、プリントコントローラ40にはパラレル入出力インターフェース49を介してパネルスイッチ92および電源91の制御線も接続されている。パネルスイッチ92には、電源の入り切りを指示するパワースイッチ92a、インクカートリッジの交換を指示するカートリッジスイッチ92b、および強制的な印刷ヘッド10のクリーニングを指示するクリーニングスイッチ92cが設けられている。パネルスイッチ92のパワースイッチ92aが操作されて電源オフの指示が入力されると、マスク不可能な割込要求(NMI)が発生する。この割込要求NMIが生じると、プリントコントローラ40は、予め定めた割込処理に直ちに移行し、電源91等の周辺回路にパワーダウン命令を出力する。電源91は、この信号を受けて、待機状態に入る。待機状態では、電源91は、主電源の供給は停止するものの、電力供給線(図示しない)を介して待機電力をプリントコントローラ40に供給する。すなわち、パネルスイッチ92を介して実行される通常の電源オフ操作ではプリントコントローラ40に対する電力供給は完全には遮断されない。
また、マスク不可能な割込要求(NMI)は、パネルスイッチ92のカートリッジスイッチ92bを操作して、インクカートリッジの交換を指示した場合にも出力される。更に、この割込要求は、電源プラグがコンセントから抜かれた場合にも発生する。これらの割込要求が発生したとき、プリントコントローラ40は、後述する割込処理ルーチンを実行するが、割込処理ルーチンの中では、パネルスイッチ92のスイッチの操作によりこの割込要求が発生した場合と、電源の強制的な遮断により発生した場合とは、識別可能である。従って、割込要求(NMI)が生じた場合でも、後述するように、要因により、異なる処理を実現することができる。なお、電源91にはプラグがコンセントから抜かれた後も所定時間(例えば、0.3秒)に亘り電力供給を実現するために、補償電源装置(例えば、キャパシタ)が備えられている。
プリントコントローラ40には、この他、キャリッジ機構12上(図1参照)に搭載した黒用のインクカートリッジ107Kおよびカラー用のインクカートリッジ107Fに関する情報を記憶しておく本体側メモリとして、EEPROM90が搭載されている。EEPROM90は、詳しくは後述するが、黒用のインクカートリッジ107Kおよびカラー用のインクカートリッジ107Fにおけるインク量に関連する情報(インク残量またはインク消費量)等の所定情報を記憶する。またさらに、プリントコントローラ40には、制御部46がアクセス(読み出し/書き込み)を所望する記憶素子80(後述)のメモリセル81(後述)のアドレスをクロック数に変換するアドレスデコーダ95が備えられている。アドレスデコーダ95は、プリントコントローラ40内の制御部46は、通常8ピット1バイトでデータを扱っているのに対して、インクカートリッジ107K,107Fに内蔵された記憶素子80のメモリセル81は、読み書き用のクロックに同期してシリアルアクセスされるため、アクセスしようとするアドレスを変換するのに用いられる。
プリンタ1では、インクの消費量を計算により検出している。インク消費量の計算は、コンピュータPCのプリンタドライバが行なっても良いし、プリンタ1側で行なっても良い。インク消費量の計算は、次の二つの要素を勘案する。
(1)画像印刷時のインク消費量:印刷時のインク消費量を正確に計算するためには、画像データを色変換や二値化処理し、インクドットの有無に置き換えた後、そのドットの重量と数、即ち、ノズル開口部23から吐出されるインク滴重量とインク滴の吐出回数、とを乗じる。もとより、画像データにおける各画素の濃度からもインク消費量を概算することは可能である。
(2)印刷ヘッド10クリーニングによるインク消費量:クリーニングによるインク消費量としては、フラッシングによるインク吐出量と吸引動作によるインク吸引量とがある。フラッシング動作は、動作自体は、通常のインク滴の吐出と変わらないので、(1)と同様に計算すればよい。吸引動作によるインク消費量は、ポンプの回転数や回転時間に対応づけて予め記憶しておけばよい。通常は、1回の吸引動作により消費されるインク量は予め計測され、記憶されている。
こうした求めたインク消費量を印刷動作開始前のインク残量から減じることにより、現在のインク残量を求めることができる。このようなインク残量の算出は、EEPROM90に記憶されているデータなどを用いながら、ROM45などに格納されているプログラムに基づいて、制御部46が行なう。
本実施例では、上述したように、色変換や二値化の処理は、コンピュータPC側のプリンタドライバが行なっている。従って、プリンタ1は、二値化済みのデータ、即ち、各インクについてのドットの形成/非形成のデータを受け取る。プリンタ1は、このデータに基づいて、ドットの数と1ドット当たりのインク重量(インク滴重量)とを乗算して、インク消費量を求めている。
実施例のプリンタ1では、上述したように、二値化済みのデータを受け取っているが、このデータの配列と実際の印刷ヘッド10のノズルの配列とは一致していない。そこで、制御部46は、RAM44内を受信バッファ44A,中間バッファ44B,出力バッファ44Cに分けて、ドットデータの配列の組み替え処理を行なっている。なお、色変換や二値化の処理をプリンタ1側で行なうという制御も可能である。こうした場合には、プリンタ1は、コンピュータPCなどから送られた多値階調情報を含む印刷データを、インターフェース43を介して印刷装置内部の受信バッファ44Aに保持し、以下の処理を行なう。受信バッファ44Aに保持された印刷データは、コマンド解析が行なわれてから中間バッファ44Bへ送られる。中間バッファ44B内では、制御部46によって中間コードに変換された中間形式としての印刷データが保持され、各文字の印刷位置、修飾の種類、大きさ、フォントのアドレスなどが付加される処理が制御部46によって実行される。次に、制御部46は、中間バッファ44B内の印刷データを解析し、階調データをデコード化した後の2値化されたドットパターンデータを出力バッファ44Cに展開し記憶させる。
いずれの場合でも、印刷ヘッド10の1スキャン分に相当するドットパターンデータが得られると、このドットパターンデータは、パラレル入出力インターフェース49を介して印刷ヘッド10にシリアル転送される。出力バッファ44Cから1スキャン分に相当するドットパターンデータが出力されると、中間バッファ44Bの内容が消去されて、次の変換処理が行なわれる。
印刷ヘッド10は、受け取ったドットパターンデータを印刷媒体上に形成すべく、所定のタイミングで各ノズル開口部23から印刷媒体上に向けてインク滴を吐出させる。駆動信号発生回路48で生成された駆動信号COMは、パラレル入出力インターフェース49を介して印刷ヘッド10の素子駆動回路50に出力される。印刷ヘッド10には、ノズル開口部23に連通する圧力発生室32および圧電振動子17(圧力発生素子)がノズル開口部23の数だけ形成されており、素子駆動回路50から所定の圧電振動子17に駆動信号COMが与えられると、圧力発生室32が収縮し、ノズル開口部23からインク滴が吐出される。
印刷ヘッド10におけるノズル開口部23のレイアウトの一例を、図3に示す。図示するように、印刷ヘッド10には、黒(K)、シアン(C)、ライトシアン(LC)、マゼンダ(M)、ライトマゼンダ(LM)、イエロー(Y)に対応するノズル開口部23が、各色毎に2列ずつ、かつノズル配置が千鳥状になるように形成されている。
(インクカートリッジおよびカートリッジ装着部の構成)
このように構成したプリンタ1において、インクカートリッジ107K、107Fの基本的な構造は共通する。そこで、図4および図5を参照して、黒用のインクカートリッジ107Kを例にインクカートリッジの構造、およびこのカートリッジをプリンタ本体に装着するための構造を説明する。
図4は、インクカートリッジおよびプリンタ本体のカートリッジ装着部の概略構造を示す斜視図である。図5は、このインクカートリッジの内部構造、キャリッジ上のカートリッジ装着部の内部構造、およびカートリッジ装着部にカートリッジを装着する様子を示す断面図である。
図4(A)において、インクカートリッジ107Kは、内部にインクを収容するインク収容部117Kを構成する合成樹脂製のカートリッジ本体171と、このカートリッジ本体171の側枠部172に内蔵された記憶素子(不揮発性メモリ)80とを備えている。この記憶素子80は、電気的に記憶内容を消去して書き換え可能であり、かつ電源の供給が失われて内容を保持するいわゆるEEPROMである。但し、この記憶素子80におけるデータの書き換え回数は、1万回程度であり、プリントコントローラ40に内蔵されたEEPROM90の書き込み許容回数と比べると、数分の1以下となっている。その分、記憶素子80のコストはきわめて低い。この記憶素子80に対しては、インクカートリッジ107Kをプリンタ本体100のカートリッジ装着部18に装着した状態で、プリンタ1のプリントコントローラ40との間で各種のデータの授受が可能である。本実施例では、この記憶素子80は、インクカートリッジ107Kの側枠部172に対して下側が開放状態にある凹部173に装着されているので、複数の接続端子174のみが露出しているが、全体を露出して設けてもよい。もとより、全体を埋設し、端子部を別体に設けても良い。
図4(B)に示すように、カートリッジ装着部18の底部187には、インク供給用の針181が上向きに配置されている。この針181の周りは、凹部183として形成されており、カートリッジ装着部18にインクカートリッジ107Kを装着すると、インクカートリッジ107Kの底部に凸形状に形成されているインク供給部175が、この凹部183に嵌め合わされる。この凹部183の内壁には、カートリッジガイド182が3箇所に形成されている。更に、カートリッジ装着部18の内壁184には、コネクタ186が配置されている。このコネクタ186は、複数の電極185を有する。電極185は、カートリッジ装着部18にインクカートリッジ107Kが装着されると、記憶素子80の複数の接続端子174のそれぞれと接触し、電気的な接続を実現する。
次に、カートリッジ装着部18に対してインクカートリッジ107Kを装着する手順を説明する。パネルスイッチ92を操作してインクカートリッジ107Kの交換が指示されると、キャリッジ101は、インクカートリッジ107Kを交換可能な位置まで移動される。交換時には、使用済みのインクカートリッジ107Kをまず取り外す。カートリッジ装着部18の後壁部188には、支持軸191を介して固定レバー192が取り付けられており、この固定レバー192を上方に引き上げると、使用済みのインクカートリッジ107Kを取り外すことができる。次に、新しいインクカートリッジ107Kをカートリッジ装着部18に差し入れる。その上で、固定レバー192をインクカートリッジ107Kに被さるように倒すと、インクカートリッジ107Kが下方に押されてインク供給部175が凹部183に嵌合するとともに、針181がインク供給部175に突き刺さってインクの供給が可能になる。さらに、固定レバー192を倒すと、固定レバー192の先端に形成した係止部193が、カートリッジ装着部18に形成された係合具189に係合し、インクカートリッジ107Kは、カートリッジ装着部18にしっかりと固定される。この状態で、インクカートリッジ107Kの記憶素子80の複数の接続端子174と、カートリッジ装着部18の複数の電極185とがそれぞれ電気的に接続し、プリンタ本体100と記憶素子80の間においてデータの授受が可能となる。交換が完了し、使用者が、パネルスイッチ92を再度操作すると、キャリッジ101は、初期位置まで戻り、印刷可能状態となる。
インクカートリッジ107Kの構造は、基本的にはカラー用のインクカートリッジ107Fでも同様であるため、その説明を省略する。ただし、カラー用のインクカートリッジ107Fでは、5色分のインクが各インク収容室に充填され、かつ、これらのインクはそれぞれ別々の経路を辿って印刷ヘッド10に供給される。したがって、カラー用のインクカートリッジ107Fでは、インク供給部175がインクの色数分だけ形成されている。なお、インクカートリッジ107Fでは、5色分のインクが収容されているが、そこに内蔵されている記憶素子80は1つだけであり、この1つの記憶素子80に、インクカートリッジ107Fの情報および各色のインクの情報が一括して記憶される。
(記憶素子80の構成)
図6は、本形態のプリンタに用いたインクカートリッジ107K、107Fに内蔵の記憶素子80の構成を示すブロック図である。図7は、メモリセル81へのデータの書き込みの様子を示す説明図である。
本実施例において、インクカートリッジ107K、107Fの記憶素子80は、図6に示すように、メモリセル81、リード・ライト制御部82、およびアドレスカウンタ83を備える。リード・ライト制御部82は、メモリセル81でのデータの読み書きを制御する回路である。一方、アドレスカウンタ83は、クロック信号CLKに基づいてカウントアップされるカウンタであり、その出力はメモリセル81に対するアドレスとなっている。
実際の書き込み動作について、図7を用いて説明する。図7(A)、(B)は本実施例のプリンタ1において、プリントコントローラ40からインクカートリッジ107K、107Fに内蔵の記憶素子80にインク残量を書き込む際の処理を示すフローチャート、およびこの処理を行なう際のタイミングチャートである。
図示するように、まず、プリントコントローラ40の制御部46は、記憶素子80をイネーブル状態にするためのチップセレクト信号CSをハイレベルとする(ステップST21)。このチップセレクト信号CSがロウレベルになると、アドレスカウンタ83のカウント値は0にリセットされる。次に、データを書き込むアドレスを指定するために必要な数のクロック信号CLKを発生させる(ステップST22)。このとき、必要なクロック信号の数を決定するのに、プリントコントローラ40に内蔵されたアドレスデコーダ95を用いる。所定数のクロック信号CLKが出力されると、記憶素子80内のアドレスカウンタ83は、カウントアップされる。この間、リード/ライト信号W/Rは、ロウレベルに保持されているので、メモリセル81に対してはデータの読み出しが指示されていることになり、クロックに同期してダミーデータの読み出しが行なわれている。
このようにして所定の書き込みアドレスまでカウントアップさせた後、書き込みの処理を行なう(ステップST23)。この書き込みの処理は、リード/ライト信号W/Rをハイレベルに切り換え、データ(I/O)に1ビットのデータを出力し、データが確立した時点でクロック信号CLKをハイアクティブに切り換えることにより行なわれる。記憶素子80は、ライト/リード信号W/Rがハイレベルの時、クロック信号CLKの立ち上がりに同期して、データ端子I/OのデータDATAを、メモリセル81に書き込むのである。なお、図7(B)では5つ目のクロック信号CLKから、この信号CLKに同期して書き込みが実行されているが、これは一般的な書き込みを説明するものであり、必要があれば、一つ目のクロック信号CLKからでも、クロック信号CLKに同期して、インク残量などの必要なデータの書き込みが実行される。
こうして書き込みが行なわれる記憶素子80内のデータ配列について説明する。図8,図9は、それぞれ、本実施例のプリンタ1に用いた黒用およびカラー用のインクカートリッジ107K,107Fに内蔵の記憶素子のデータ配列を示す説明図である。更に、図10は、プリンタ本体に内蔵のEEPROM90におけるデータ配列を示す説明図である。黒用のインクカートリッジ107Kに備えられている記憶素子80のメモリセル81は、図8に示すように、読み出し専用データを記憶する第1の記憶領域750と、書き換え可能なデータを記憶する第2の記憶領域760とを備えている。プリンタ本体100は、第1の記憶領域750に格納されているデータに対しては読み出しのみが可能であり、第2の記憶領域760に格納されているデータに対しては読み出しおよび書き込みの双方を実行し得る。第2の記憶領域760は、特別な処理を行なわずにアクセスする際、即ちデフォルトのままのアクセス際に、第1の記憶領域750よりも先にアクセスされるアドレスに配置されている。換言すれば、第2の記憶領域760は、第1の記憶領域750よりも低いアドレスに配置されている。なお、本実施例においては、「低いアドレス」とは「先頭側のアドレス」を意味するものとする。
ここで、第2の記憶領域760には、先頭領域700にインクカートリッジの取付回数を示すデータが記憶されており、これに続く各記憶領域701、702には、それぞれ第1の黒インク残量データおよび第2の黒インク残量データが記憶される。黒インク残量データが2つの記憶領域701、702に割り当てられているのは、これらの領域に対して交互にデータ書き換えを行なうためである。したがって、最後に書き換えられた黒インク残量データが記憶領域701に記憶されているデータであれば、記憶領域702に記憶されている黒インク残量データはその一回前のデータであり、次回の書き換えは、この記憶領域702に対して行なわれる。黒インク残量データの記憶領域701,702は、共にその記憶容量は、1バイト(8ビット)分である。なお、黒インクの残量データは、インクカートリッジの取付回数を示すデータが記憶される領域より前の領域に割り当て、後述する電源断時などに、最初にアクセスされるようにしておくことも、好適である。
これに対して、第1の記憶領域750に記憶される読み出し専用データは、最初にアクセスされる順からいえば、各記憶領域711〜720に対して割り当てられたインクカートリッジ107Kの開封時期データ(年)、インクカートリッジ107Kの開封時期データ(月)、インクカートリッジ107Kのバージョンデータ、顔料系あるいは染料系などといったインクの種類データ、インクカートリッジ107Kの製造年データ、インクカートリッジ107Kの製造月データ、インクカートリッジ107Kの製造日データ、インクカートリッジ107Kの製造ラインデータ、インクカートリッジ107Kのシリアルナンバデータ、インクカートリッジ107Kが新品であるかリサイクル品であるかを示すリサイクル有無データである。このうち、インクカートリッジ107Kのシリアルナンバは、インクカートリッジ107K毎に固有の値が与えられており、いわゆる識別情報として利用できるデータである。なお、製造年月日および製造時間のデータを、1個のインクカートリッジ107Kが製造される時間と同程度またはこれより細かく記憶するものとすれば(例えば秒単位、あるいは1/10秒単位まで記憶するものとすれば)、製造年月日および時間を、識別情報として用いることも可能である。
カラー用のインクカートリッジ107Fに備えられている記憶素子80のメモリセル81も、図9に示すように、読み出し専用データを記憶する第1の記憶領域650と、書き換え可能なデータを記憶する第2の記憶領域660とを備えている。プリンタ本体100は、第1の記憶領域650に格納されているデータに対しては読み出しのみが可能であり、第2の記憶領域660に格納されているデータに対しては読み出しおよび書き込みの双方を実行し得る。第2の記憶領域660は、アクセス時に第1の記憶領域650よりも先にアクセスされるアドレスに配置されている。すなわち、第2の記憶領域660は、第1の記憶領域650よりも低いアドレスに配置されている。
ここで、第2の記憶領域660は、先頭領域600に取付回数を示すデータが記憶されており、これに続く各記憶領域601〜610に、第1のシアンインク残量データ、第2のシアンインク残量データ、第1のマゼンダインク残量データ、第2のマゼンダインク残量データ、第1のイエローインク残量データ、第2のイエローインク残量データ、第1のライトシアンインク残量データ、第2のライトシアンインク残量データ、第1のライトマゼンダインク残量データ、第2のライトマゼンダインク残量データが記憶される。各色のインク残量データが2つの記憶領域に割り当てられているのは、黒用のインクカートリッジ107Kと同様、これらの領域に対して交互にデータ書き換えを行なうためである。また、各インク色のデータに割り当てられた記憶容量も、黒インクカートリッジ107Kと同様、各1バイト(8ビット)である。カラーインクカートリッジ107Fの記憶素子80でも、黒インクカートリッジ107Kの記憶素子80と同様、各色インクの残量データを、インクカートリッジの取付回数を示すデータが記憶される領域より前の領域に割り当て、後述する電源断時などに、最初にアクセスされるようにしておくことも、好適である。
これに対して、第1の記憶領域650に記憶される読み出し専用データは、黒用のインクカートリッジ107Kと同様、最初にアクセスされる順からいえば、各記憶領域611〜620に対して割り当てられたインクカートリッジ107Fの開封時期データ(年)、インクカートリッジ107Fの開封時期データ(月)、インクカートリッジ107Fのバージョンデータ、インクの種類データ、製造年データ、製造月データ、製造日データ、製造ラインデータ、シリアルナンバーデータ、リサイクル有無データである。これらのデータは、色にかかわらず共通であるため、各色間で共通のデータとして1種類のみ記憶されている。シリアルナンバデータが識別情報としても利用可能である点なども、黒インクカートリッジ107Kと同様である。
これらのデータはいずれも、インクカートリッジ107K、107Fがプリンタ本体100に装着された後、プリンタ本体100の電源がオンされたときに、プリントコントローラ40によってアクセスされ、利用される。場合によっては、本体100に内蔵のEEPROM90に記憶される。したがって、図10に示すように、このEEPROM90の記憶領域801〜835には、黒用のインクカートリッジ107Kおよびカラー用のインクカートリッジ107Fのインク残量など、各記憶素子80に記憶されるすべてのデータを記憶できるようになっている。
このEEPROM90には、図10に示すように、黒インク残量データやその他のデータおよびカラーインク各色の残量データやその他のデータを記憶する領域が設けられている。これらのデータは、黒色インクカートリッジ107Kやカラーインクカートリッジ107F内の記憶素子80が記憶しているデータに対応しているが、インク残量データが各色32ビット(4バイト分)である点で異なる。
(プリンタ1の動作)
次に図11〜図13を参照して電源オンから電源オフまでに本実施例に係るインクジェットプリンタ1が実行する基本動作および記憶素子80とEEPROM90への書き込み頻度の違いについて説明する。図11はインク残量を算出するために実行される処理を示すフローチャート、図12は本実施例のプリンタ1において電源断時に実行される処理を示すフローチャートである。また、図13は、インクカートリッジ107K,107Fを、プリンタ1に装着したときに実行される処理を示すフローチャートである。
まず、インク残量を算出する処理について説明する。この処理は、コンピュータPCからの印刷指示を受けてプリンタ1が印刷動作を行なう際、併せて実行される処理である。このとき、制御部46は、印刷データを印刷ヘッド10に転送すると共に、インク残量を算出する処理を実行する。かかる処理について図11を参照して説明する。図11に示した印刷処理ルーチンが起動されると、まずプリントコントローラ40に内蔵のEEPROM90からインク残量データInを読み出す処理を行なう(ステップS40)。このデータは、前回印刷が完了した時点で書き込まれた32ビットのデータであり、最新のインク残量データである。次にコンピュータPCから印刷データを入力する処理を行なう(ステップS41)。本実施例では色変換や二値化の処理は、すべてコンピュータPCで行なうので、プリンタ1は、所定ラスタ分の二値化されたデータ、即ちインクドットのオン・オフのデータを受け取ることになる。そこで、制御部46は、この印刷データに基づいて、インク消費量ΔIを計算する処理を行なう(ステップS42)。ここで計算されるインク消費量ΔIは、コンピュータから受け取った所定ラスタ分の印刷データに対応した消費量のみならず、フラッシングなどで用いられたインク量も計算している。例えば、インク滴重量とインク滴の吐出回数とを乗じることによって、各色毎のインク吐出量を算出し、算出されたインク吐出量と、前記のフラッシングや吸引動作により消費されたインク吸引量とを加算することによって、インク消費量ΔIを求めることかできる。
次に、こうして求めたインク消費量ΔIの累積量Iiを求める処理を行なう(ステップS43)。印刷データに応じて次々のインク消費量は求められるが、これらのデータは演算する度にEEPROM90に書き戻すことはしていないので、その時点までのインク消費量を求めるために、入力した印刷データ分のインク消費量ΔIを積算し、インク消費累積量Iiを算出するのである。これらの演算は、すべてデータを32ビットとして行なわれる。その後、制御部46は、入力した印刷データを、印刷ヘッド10におけるノズル配列および吐出タイミングに合わせたデータに変換し、印刷ヘッド10に出力する(ステップS44)。
こうして入力した数ラスタ分の印刷データの処理が完了するので、次に、1ページ分の印刷が完了したかを判断する(ステップS45)。1ページ分の印刷が完了していなければ、ステップS41に戻って、上述した印刷データの入力(ステップS41)以下の処理を繰り返す。一方、1ページ分の印刷が完了した場合には、インク残量を32ビットの値として演算し(ステップS46)、これをEEPROM90に書き戻す処理を行なう(ステップS47)。インク残量の演算は、ステップS40で読み出した前回のインク残量In-1 から、ステップS43で求めたインク消費累積量Iiを減じることにより求めることができる。こうして求めた新たなインク残量InがEEPROM90に書き戻されることになる。
次に、32ビットで演算されEEPROM90に書き込まれたインク残量In を8ビットの値Ieに換算する処理を行なう(ステップS48)。この換算は、本実施例では、図14(A)に示すように、32ビットのデータの上位8ビットを求めることにより行なった。従って、データの精度は、1/224に落ちたことになる。こうした換算は、下位ビットを落とすことにより行なっても良いが、例えば、元の32ビットのデータを0−100%といった割合を示すデータに変換することにより行なっても良い。例えば、次式(1)の演算を行なって残量を百分率(但し小数点以下を切り捨てまたは小数第一位を四捨五入した整数)の値にして8ビットで表わすことができる。
Ie=100×算出したインク残量(32ビット)/インク容量(32ビット)
…(1)
その後、制御部46は、換算した8ビットの換算値IeをRAM44の所定の領域に書き込む処理を行なう(ステップS49)。なお、このステップで、8ビット換算値Ieを、直接インクカートリッジ107K,107Fの記憶素子80に書き込んでも良いが、記憶素子80の書き込み許容回数が高くないことに配慮して、本実施例では、後述するルーチンでのみ書き込むことにしている。
上記の実施例では、インク残量の更新をページ単位で行なった。これは、印刷が通常ページ単位で実行されるからである。もとより、EEPROM90へのインク残量データの書き戻しは、複数ページ毎に行なってもよいし、あるいは、ラスタ単位や印刷ヘッド10が所定数往復動する度に、印刷完了と判断して、インク残量のデータをEEPROM90に書き戻す処理を行なってもよい。
新たに算出したインク残量Inは、算出した時点では、プリンタ1のプリントコントローラ40に設けられたEEPROM90には32ビットで書き込まれ、8ビットに換算された値Ieが、RAM44に書き込まれる。RAM44に記憶されたインク残量Ieのインクカートリッジ107K、107Fの各記憶素子80への書き込みは、記述したパワーダウン命令が出力された場合に行なわれる。パワーダウン命令は、既に説明したように、次の3つのタイミングで出力される。
(1) プリンタ1のパネルスイッチ92のパワースイッチ92aが操作されて、電源がオフにされたとき、
(2) パネルスイッチ92のカートリッジスイッチ92bが操作されてインクカートリッジの交換が指示されたとき、
(3) コンセントを引き抜くといった行為により強制的に電源が遮断されたとき。
そこで、次に図12を参照しつつ、8ビット換算されたインク残量Ieのデータをインクカートリッジ107K,107Fの記憶素子80に退避する処理について説明する。図12に示した退避ルーチンは、記述したように、パワーダウン命令が出力されたとき、割込処理として起動される。このルーチンが起動されると、まず最初の割込の原因が強制的な電源の遮断(上記(3) )であるか否かの判断を行なう(ステップS50)。強制的な電源断の場合は、許容されている時間はわずかなので、以下説明するステップS51ないしS55をとばして、インク残量をインクカートリッジ107K,107Fの記憶素子80に書き込む処理を行なうのである(ステップS56)。ここで書き込まれるインク残量は、図11に示したルーチンで演算し、RAM44に記憶した8ビットの値Ieである。インクカートリッジ107K,107Fの記憶素子80へのデータの書き込みの手法については、図6,図7を用いて説明した。インク残量を各第2の記憶領域660、760に記憶させる(書き込む)にあたっては、各インクに対して割り当てられている2つの記憶領域に対して交互に書き込みを行なう。2つの記憶領域のうち、いずれの記憶領域に対する記憶が実行されたかは、例えば、2つの記憶領域の先頭位置にフラグを配し、書き込みが実施された記憶領域のフラグを立てることによって識別し得る。
一方、割込の原因が強制的な電源断ではないと判断された場合には、プリンタ1のパネルスイッチ92においてパワースイッチ92aがオフもしくはカートリッジスイッチ92bによりインクカートリッジの交換が指示された場合であると判断できるので、進行中の印刷などのシーケンスを所定単位、例えばラスタの終わりまで実行し、併せてインク残量の演算も行なう(ステップS51)。この処理は、図11に示した処理である。図11に示した処理を実行することにより、演算されたインク残量が、EEPROM90には32ビットのデータとして、他方、RAM44には8ビットのデータとして、それぞれ記憶されることは既に説明した通りである。その後、キャッピング装置108を駆動して印刷ヘッド10にキャッピングを行なった後(ステップS52)、印刷ヘッド10の駆動条件をEEPROM90に記憶させる(ステップS53)。駆動条件とは、例えばヘッドの個体差を補正する駆動信号の電圧値や各色間の補正を行なう補正条件などである。続いて、タイマー値をEEPROM90に記憶させ(ステップS54)、更にコントロールパネルの内容をEEPROM90に記憶させる(ステップS55)。コントロールパネルの内容とは、例えば双方印刷時の着弾点のズレを補正するための調整値などである。以上の処理の後、上述したステップS56の処理、即ち、RAM44に記憶された8ビットのインク残量のデータIeをインクカートリッジ107K、107Fの各記憶素子80の各第2の記憶領域660、760に記憶させる処理を行なう(ステップS56)。
図12には示さなかったが、パネルスイッチ92の操作によってこの割込ルーチンが起動された場合には、インク残量の書き込み後、パネルスイッチ92のいずれのスイッチが操作されたかを判定し、電源オフが指示されていれば、電源91に信号を送って主電源の供給をオフにし、インクカートリッジの交換が指示されていれば、キャリッジ101を交換位置まで移動する処理を行なうことは勿論である。
(実施例の効果)
以上の処理により、本実施例のプリンタ1およびインクカートリッジ107K,107Fでは、印刷の実行によりインクカートリッジ107K,107F内のインクが消費されると、その都度、インク残量を計算し、プリントコントローラ40内のEEPROM90には、32ビットのデータで、インク残量を記憶すると共に、インク残量を8ビットのデータに換算してRAM44に記憶する。一方、パネルスイッチ92の操作により、電源オフやインクカートリッジの交換などが指示された場合、あるいは強制的に電源が遮断される場合、RAM44に記憶しておいたインク残量の8ビットデータIeを、インクカートリッジ107K,107Fに内蔵された記憶素子80に書き込む。この結果、記憶容量に余裕のあるEEPROM90にはインク残量のデータを高精度で、即ち32ビットで記憶し、消耗品であるインクカートリッジ107K,107Fには、インク残量のデータを、記憶容量の小さい記憶素子80に合わせて小さな容量(実施例では8ビット)で記憶することができる。従って、インクカートリッジ107K,107Fの記憶素子80への書き込みに時間を要しないと言う利点が得られる。この効果は、本実施例のように、プリンタ1ビットずつシリアルアクセスされる記憶素子80を用いている場合には、特に有効である。また、電源が遮断される場合のように、アクセス時間に余裕がない場合には、書き込みデータの容量が小さく、書き込みに時間を要しない利点は大きい。
更に、本実施例では、図13に示す処理を行なうことで、プリントコントローラ40内のEEPROM90に32ビットで記憶されているインク残量Inとインクカートリッジ107K,107Fの記憶素子80に8ビットで記憶されているインク残量Ieを用いて、インクカートリッジ内のインク残量の処理を一層容易かつ信頼性のあるものとしている。図13は、インクカートリッジが交換され、インクカートリッジが装着されたときに実行される処理を示すフローチャートである。この処理は、具体的には、パネルスイッチ92のカートリッジスイッチ92bが操作され、キャリッジ101がインクカートリッジの交換可能位置まで移動し、インクカートリッジが交換された直後に実行される。
本ルーチンが起動されると、まず装着されたインクカートリッジ107K,107Fの記憶素子80からインク残量のデータIeを読み出す処理を行なう(ステップS70)。その後、インクカートリッジ107K,107Fの記憶素子80内に記憶されているインクカートリッジの装着回数を値1だけインクリメントする処理を行なう(ステップS71)。この処理は、図8,図9に示した装着回数を一旦読み出し、これをインクリメントして記憶素子80の同じ領域に書き戻す処理である。各インクカートリッジにおける装着回数の初期値は値0である。
次に、この装着回数が値1であるか否かの判断を行なう(ステップS72)。インクリメントされた後の装着回数が値1であるということは、そのインクカートリッジが初めてプリンタ1に装着されたことを示しているので、この場合には、プリントコントローラ40のEEPROM90に、インク残量として、全量データを書き込む処理を行なう(ステップS73)。全量データとは、インクカートリッジが新品である場合にインクカートリッジに収容されているインク量に対応した値である。一方、装着回数が1回でなければ、そのインクカートリッジは、既に1回以上、プリンタ1に装着されたことがあると判断できるので、一旦取り外されたインクカートリッジがプリンタ1に戻されたのか、あるいは異なるインクカートリッジが装着されたのかを判断するため、ステップS74以下の処理を行なう。即ち、まずEEPROM90に記憶されているインク残量のデータInを読み出し(ステップS74)、これと既に読み出しておいたインクカートリッジ側のインク残量のデータIeとが、8ビット換算で一致するか否かの判断を行なう(ステップS75)。8ビット換算で一致するかの判断は、このプリンタ1が、インク残量の8ビット換算の処理(図11ステップS48)において、32ビットのデータの上位の8ビットのみをインク残量の8ビットデータIeとしている場合には、同様に、EEPROM90から読み出した32ビットのデータの上位8ビットを、インク残量データIeと比較することにより行なえばよい。8ビット換算を、百分率への換算により行なっている場合には、同様に、ステップS75の比較において、百分率への換算を行なってから、比較を行なえばよい。
両データが8ビットで一致していると判断された場合には、装着されたインクカートリッジは、直前までプリンタ1に装着されていたインクカートリッジであると判断することができるので、この場合には、その後のインク残量のデータを、EEPROM90が記憶していた32ビットのデータとして用いると決定することができる(ステップS76)。他方、両者が一致していないと判断された場合には、もはやEEPROM90内のインク残量のデータを使用することはできないから、インクカートリッジ107K,107F内の記憶素子80に記憶されていたインク残量のデータIeを用いてその後のインク量の管理を行なう。このため、まず8ビットのインク残量のデータIeを、32ビットのインク残量データInに換算する処理を行なう(ステップS77)。この処理は、32ビットのデータを8ビットのデータに換算する処理の逆を行なえば良く、例えば図14(B)に示すように、8ビットのデータIeを最上位のデータとし、残り24ビットをすべて値0としたデータとすれば良い。もとより、インク残量の8ビットデータが百分率を表わしている場合には、記述した式(1)を用いて逆算し、32ビットのデータを求めれることもできる。かかる換算を行なった上で、換算された32ビットのインク残量のデータInを、その後のインク残量の演算に用いると決定し(ステップS78)、EEPROM90の所定の領域に記憶する。
以上の処理を行なう本実施例では、インクカートリッジが新たに装着された場合、プリンタ1側のEEPROM90が記憶しているインク残量Inとインクカートリッジ107側の記憶素子80が記憶しているインク残量Ieとの対応を判断し、両者が一致していると判断すれば、EEPROM90に記憶されている32ビットのデータを用いてその後の処理を行なう。従って、一旦取り外したインクカートリッジを再度プリンタ1に戻した場合などでは、インク残量の管理をきわめて高い精度で継続することができる。この結果、例えばインク残量がほとんどなく交換時期が近いこともしくは交換が必要なことを知らせるといった処理を、極めて高精度に行なうことができる。
他方、カートリッジが異なるものに交換された場合などであって両者が対応していないと判断された場合には、インクカートリッジ107K,107Fに記憶されたデータIeを用いて、その後のインク残量の管理を行なうことができる。従って、精度はEEPROM90に記憶されたデータほどの精度は得られないものの、カートリッジが交換されても、引き続きインク残量の管理を行なうことができ、例えばインク残量がほとんどなく交換時期が近いこともしくは交換が必要なことを知らせる処理を的確に行なうことができる。
尚、上記実施例では、インク残量Inを算出し、EEPROM90に書き込んだり、8ビット換算を行なってRAM44に書き込んだりするタイミングを、1頁分の印刷が完了したとき(図11ステップS45)としたが、1ラスタごと、あるいは数ラスタの印刷が完了した毎に、換算と書き込みを行なうものとしても良い。あるいは、インク残量の計算(ステップS46)、8ビットデータへの換算(ステップS48)、RAM44への記憶(ステップS49)を、1もしくは数ラスタ毎に行ない、EEPROM90への書き込み(ステップS47)を1頁の印刷完了時に行なうなど、これらの処理の実施を異なるタイミングで行なうものとしても良い。
以上説明した本実施例では、プリンタ1側のEEPROM90に記憶するインク残量のデータInのビット数より、インクカートリッジ107K,107Fの記憶素子80に記憶するインク残量のデータIeのビット数を小さくするだけでなく、両者の書き込みのタイミングを異ならせることで次の効果を奏する。即ち、EEPROM90には、1ページの印刷が完了する毎にデータを書き込むのに対して、記憶素子80に対しては、(1) パワースイッチ92bが操作されて電源がオフにされたとき、(2) カートリッジスイッチ92bが操作されてインクカートリッジの交換が指示されたとき、(3) 電源が強制的に遮断されたとき、にしか、書き戻す処理を行なわない。この結果、インク残量のデータは、EEPROM90については高い頻度で更新されるのに対して、記憶素子80についてはこれより低い頻度でしか更新されないのである。このため、記憶素子80に対するインク残量の書き込み回数を制限することできる。この結果、記憶素子80に書き込まれるデータがビット数の少ない8ビットのデータであることと相まって、消耗品としてのインクカートリッジに用いる記憶素子に、書き込みの許容回数および記憶容量の小さい素子を採用することが可能となり、インクカートリッジの単価を一層低減することができる。
この様に、記憶素子80へのデータの書き戻しの頻度を制限しても、プリンタ1のEEPROM90には常に最新のインク残量のデータが32ビットで保存されているから、プリンタ1におけるインク残量の監視処理や処理の精度には何ら影響を与えることがない。インク残量の監視処理としては、インク残量が一定以下となった場合に、プリンタ1のパネルスイッチ92に設けられたLEDなどを点滅させたり、コンピュータPCのプリンタドライバにこれを報知してコンピュータPCのディスプレイMT上に警告を表示するといったことが考えられる。プリンタ1は、プリントコントローラ40のEEPROM90に、常に最新のインク残量のデータを保持しているので、いつでもこれを参照して、必要なタイミングでインクエンドなど警告を出力することができる。もとより、ユーティリティソフトなどを立ち上げて、現在のインク残量を棒グラフなどで視覚的に表示する際に、これらのデータを利用しても良い。
以上の説明では、パワーダウン命令が出された場合には、必ずインク残量をインクカートリッジ107K,107Fの記憶素子80に書き込むものとしたが、電源投入から一度も印刷が行なわれていない場合など、インク残量に変更がない場合には、インク残量を書き戻さないものとしてもよい。こうした判断は、専用のフラグを設け、インク残量が変更された場合にフラグを設定するものとし、パワーダウン命令を受け取った直後のこのフラグを読み取ることが、容易に実現することかできる。また、上記の実施例では、記憶素子80に書き込むデータとしてインク残量を例に挙げたが、EEPROM90と記憶素子80とで書き込みの頻度を異ならせるデータとしては、インク残量以外のデータも考えることができる。例えばインクカートリッジの累積的な使用時間のデータやインクカートリッジの使用の態様等のデータなどについても同様に扱うことができる。
また、EEPROM90と記憶素子80への書き込みのタイミングは上記のタイミングに限られるものではなく、例えばEEPROM90に対する書き込みをM回行なう度に1回の割合で記憶素子80に書き込むといった態様も可能である。また、クリーニングスイッチ92cを操作して吸引動作を行なわせた場合には、インク残量が有意に減少することから、吸引動作によるヘッドクリーニングの完了時に、記憶素子80へのデータの書き込みを行なうものとしても良い。更に、記憶素子80への書き込み回数を記憶素子80の所定の領域に書き込んでおき、書き込み回数が多くなるに従って、書き込みのタイミングを減らし、書き込みの頻度を小さくすることも好適である。
本形態では、インクカートリッジ107K、107Fのインク種類毎のインク残量データを記憶しているので、各色インク毎に残量を知ることができる。また各色インク毎にインクエンドなどの警告を出力することができる。カラーインクカートリッジ107Fのように、5色のインクを収容しているインクカートリッジでは、インク残量のデータも5種類記憶することになる。インクカートリッジに記憶するデータを8ビットにしているため、記憶容量も8ビット×インク種類数(本実施例では5)ですみ、記憶素子80の記憶容量を徒に増大することがない。かかる効果は、本実施例のように、インク残量のデータを二重化して記憶している場合には、特に大きい。
[第2実施例]
次に本発明の第2実施例について説明する。第2実施例は、上述した第1実施例とほぼ同様のプリンタおよびインクカートリッジの構成を備えるが、次の点で第1実施例とは異なっている。即ち、この実施例では、プリンタ1のプリントコントローラ40におけるパラレル入出力インターフェース49とインクカートリッジ107の記憶素子80との間に、専用の制御IC200が設けられている。この制御IC200は、図15に示すように、制御基板205上に、RAM210と共に搭載される。この制御基板205は、図16に示すように、キャリッジ101のカートリッジ装着部18に取り付けられている。記憶素子80と制御基板205との信号のやり取りは、コネクタ286を用いて行なわれる。このコネクタ286は、図示するように、記憶素子80側のみならず、制御基板205側にも接触用のコンタクトピンが設けられており、制御基板205をカートリッジ装着部18の外側の取付部250に装着するだけで、電気的な接続が完了するようになっている。
制御基板205とパラレル入出力インターフェース49とは、4本の信号線で接続されており、制御IC200とプリントコントローラ40とデータ交換は、シリアル通信により行なわれる。具体的には、制御IC200側からみてデータを受け取るための信号線RxD、データを出力するための信号線TxD、プリントコントローラ40側から制御IC200に対して停電時の書き込み要求を出力するパワーダウン信号NMI、信号線RxD,TxDを用いたデータの授受を許可する選択信号SELの4つの信号が、パラレル入出力インターフェース49と制御IC200との間でフレキシブルフラットケーブル(FFC)300を介してやり取りされている。制御部46は、これらの信号を用いて、制御IC200との間で必要なデータのやり取りを行なっているが、制御部46と制御IC200との通信速度は、制御IC200と記憶素子80との間のデータのやり取りの速度と比べて、十分に高速である。なお、パワーダウン信号NMIは、第1実施例と同様に、パネルスイッチ92のパワースイッチ92aやカートリッジスイッチ92bが操作された時、あるいは電源プラグが引き抜かれたりして強制的に電源が遮断された場合に出力される信号である。
制御IC200は、二つの記憶素子80に対して個別にデータのやり取りを行なう機能を備える。従って、一つの制御IC200で、黒用のインクカートリッジ107Kとカラー用のインクカートリッジ107Fのそれぞれの記憶素子80との間で、データのやり取りを行なうことができる。図15では、それぞれの記憶素子80に対する信号線を区別するために、図6に示した電源Powerや各信号CS,R/W,I/O,CLKなどのあとに、黒用のインクカートリッジ107Kについては、添え字「1」を、カラー用のインクカートリッジ107Fについては、添え字「2」を、それぞれ付けて区別している。
この実施例では、プリンタ1のプリントコントローラ40の制御部46は、インク量に関するデータを、EEPROM90に書き込むだけなく、制御基板205上に設けられたRAM210にも書き込む。制御IC200への書き込みの際、制御部46は、選択信号SELをアクティブにして制御IC200を選択し、信号RxDにデータを乗せて非同期シリアル通信により、制御IC200にインク残量のデータInを書き込む。
一方、パワースイッチ92aが押されたり、電源が強制的に遮断されたりして、パワーダウン信号NMIが出力されると、プリントコントローラ40はパワーダウン信号NMIを、外部に、従って制御IC200にも出力する。この結果、制御IC200は、パワーダウン信号NMIを受けて、RAM210に記憶していたデータのうち、少なくともそれぞれのインク量に関するデータを、それぞれのインクカートリッジ107K,107Nの記憶素子80に書き込む処理を行なう。制御IC200による記憶素子80への書き込みの手法は、第1実施例と同様にであり、図7に示したように、まずチップセレクト信号CSをアクティブにし、直ちにライト/リード信号W/Rをハイアクティブとして書き込みを選択し、クロック信号CLKに同期して、データDATAを順次出力することにより行なわれる。
次に、第2実施例におけるインク量に関する処理の実際について説明する。第2実施例では、インクカートリッジのインク量に関する処理は、「インク残量」ではなく、「インク消費量」を用いて行なっている。もとより、第1実施例と同様インク残量により処理することも可能である。図17は、プリントコントローラ40が実行する処理ルーチンを示すフローチャートである。この処理ルーチンは、印刷処理やクリーニングなど、インクカートリッジ内のインク消費量に変動を生じる処理が行なわれたときに実行される。なお、この処理は、インク量が低減する際のみならず、インク量が増加する場合にも実施可能である。例えば、インクカートリッジにインクを充填するといった処置が可能な構成を採用していれば、インク充填の際にも実行することができる。
図17に示した処理ルーチンが開始されると、まず今回の印刷やクリーニングなどの処理によるインク消費量を32ビットのデータで算出する処理を行なう(ステップS110)。次に、今回の処理による消費量と、EEPROM90に記憶しているそれまでの消費量とから、現在の総消費量Ihaを32ビットデータで算出する処理を行なう(ステップS120)。総消費量Ihaを求めると、次にこれをEEPROM90に書き戻す処理を行なう(ステップS130)。以上の処理により、プリントコントローラ40内のEEPROM90には、常に最新のインク総消費量のデータIhaが保存されることになる。
次に、インク総消費量Ihaのデータを、8ビットデータIceに換算する処理を行なう(ステップS140)。8ビットデータへの換算は、第1実施例と同様に行なうことができる。続いて、制御部46は、8ビットのデータに換算したインク総消費量Iceを、記憶素子80に書き込むべく、制御IC200に出力する(ステップS150)。
以上説明した処理によれば、インクカートリッジ107K,107Fの記憶素子80に書き戻されるべきインク総消費量のデータは、記憶素子80との間のデータのやり取りを直接制御する制御IC200を介して制御基板205上のRAM210に記憶されており、制御部46は、インク残量のデータを更新するたびに、このデータを制御IC200を介してRAM210に書き込んでいる。従って、常に最新のデータが制御基板205上のRAM210には用意されていることになる。そして、電源が強制的に遮断されるといった事態となり、パワーダウン信号NMIが出力されると、プリントコントローラ40や制御部46の動作のいかんによらず、RAM210に記憶されたデータは、直ちにインクカートリッジ107K,107Fの記憶素子80に書き込まれる。従って、電源遮断時の制御部46の処理は簡略化され、処理の負担が大幅に低減される。なお、この実施例では、インクカートリッジ107K,Fの記憶素子80へのデータの書き込みをパワーダウン信号NMIを用いて開始するものとしたが、書き込み用の信号線RxDを用いてコマンドを送出することにより、制御IC200によるデータの書き込みを行なわせるものとしても良い。
次に、電源がオンにされたり、カートリッジが交換されて新たなインクカートリッジが装着された場合の処理について説明する。図18は、電源オン、カートリッジ装着時処理ルーチンを示すフローチャートである。図示するように、この処理が開始されると、まず装着されてたインクカートリッジが新品であるか否かを、取付回数により判断する処理を行なう(ステップS200)。これまで一度もプリンタ1に装着されたことのない新品が装着されたと判断された場合には、予め定めた規定値を総消費量Ihaとして定めて、以後の処理に供するものと決定する(ステップS270)。ここで規定値は、通常は総消費量0として定められている。しかし、例えばハーフボトルなどのように、インク収容量が半分のものについては、全消費量の1/2に対応する値などを用いることもできる。装着されたインクカートリッジがハーフボトルであるとか、あるいは出荷時にプリンタ1に同梱されたサービス品(インク収容量が少ないもの)であるか等の判断は、直接インクカートリッジ107K,107Fの記憶素子80に情報を書き込んでおいて判断してもよいが、シリアルナンバーの上位2桁を、そうしたカートリッジの種別の判断に用いるといった対応も可能である。
装着されたインクカートリッジがその取付回数などから新品ではないと判断された場合には、次にインクカートリッジ107K,107Fの記憶素子80から識別情報としてのシリアルナンバSNを読み出し、このシリアルナンバSNによりEEPROM90内を検索する処理を行なう(ステップS205)。この検索は、図19に示すように、EEPROM90にシリアルナンバSNをインデックスとして用意されたテーブルを参照することにより行なわれる。一度でも装着されたインクカートリッジのシリアルナンバSNは、記憶容量が許す限り、EEPROM90に、インク総消費量と対応づけて登録されている。なお、EEPROM90の記憶容量が一杯になれば、古いデータから順次削除される。
このテーブルを参照することにより、電源オン時にはあっては装着されているカートリッジが、インクカートリッジの交換時にあっては新たに装着されたカートリッジが、このプリンタ1に初めて装着されたインクカートリッジであるか否かの判断を行なうことができる(ステップS210)。インクカートリッジ107K,107Fの記憶素子80から読み出したシリアルナンバがテーブル内に見つかった場合には、初めて装着されたカートリッジではないと判断できるから、この場合には、記憶素子80から、8ビットのインク総消費量のデータIceを読み出し、これを32ビットのインク総消費量の換算データIheに換算する処理をまず行なう(ステップS220)。その後、EEPROM90にもともと32ビットで記憶されていたインク総消費量のデータIhaと、記憶素子80に8ビットで記憶されていたインク総消費量からの換算データIheとを比較し(ステップS230)、両者が対応しているか否かを判断する(ステップS240)。
かかる比較により、両者が対応していると判断された場合には、インクカートリッジは継続して用いられているか、あるいは一旦はずされた後、そのまま戻されたものであると判断できるので、EEPROM90が記憶していたインク総消費量Ihaを、現在のインク総消費量として扱うことに決定する(ステップS250)。他方、両者が対応していないと判断された場合に、EEPROM90が記憶している総消費量のデータIhaと換算された総消費量のデータIhaのうち、大きい方を、現在のインク総消費量として扱うことに決定する(ステップS260)。ここで、一律にインクカートリッジ107K,107Fの記憶素子80が記憶していたデータを採用するとしていないのは、識別情報であるシリアルナンバSNを用いて、予めインクカートリッジを特定しているからである。このため、換算による誤差等を見込んで、インク総消費量の大きい方を用いるものとすることができる。もとより、インクカートリッジの記憶素子80に記憶されたインク総消費量のデータを優先的に扱うといった対応も可能である。例えば、専用のインク充填機などでインクを充填し、これに合わせてインク総消費量を書き直すといった装置が使用される環境が想定される場合には、インクカートリッジ側の情報を優先する。
以上の処理の他、図19に例示したテーブルを参照することにより、インクカートリッジ107K,107Fが、初めてこのプリンタ1に装着されたものであると判断された場合には、このインクカートリッジは既にどこかで使用されていたと判断できるので(ステップS200,S210)、この場合には、インクカートリッジ107K,107Fの記憶素子80から8ビットのインク総消費量のデータを読み出し、これを32ビットに換算して、その後のインク総消費量のデータIhaとして用いることに決定する(ステップS280)。
以上、図18を参照して説明した本実施例によれば、第1実施例れ同様に、インクカートリッジ側の記憶素子80に記憶するデータの容量を低減することができる。しかも、識別情報により、装着されるインクカートリッジを特定することができるので、例えば複数のインクカートリッジを取り替えて使用するような場合でも、これを的確に判断し、他で使用されずに再度同じプリンタ1に戻されたインクカートリッジのインク総消費量を、インクカートリッジ側のデータより遙かに高い精度で管理することができる。加えて、例えそれらのインクカートリッジを他のプリンタなどで使用した場合でも、インク総消費量を一定以上の精度で管理することができる。
以上、本発明の実施例について説明したが、本発明のこうした実施例に何ら限定されるものではなく、発明の要旨を逸脱しない範囲内において、例えば、記憶素子80のメモリセル81やEEPROM90に代えて、誘電体メモリ(FROM)を用いる構成など、種々なる態様で実施し得ることは勿論である。
さらに、記憶素子80は、インクカートリッジ107の外に露出した構成とすることも差し支えない。記憶素子80が露出して設けられたカラーインクカートリッジ500の一例を図20に示した。このインクカートリッジ500は、ほぼ直方体として形成された容器51にインクを含浸させた多孔質体(図示しない)を収容し、上面を蓋体53により封止されている。容器51の内部には、5色のカラーインクをそれぞれ別個に収容する5つのインク収容部(例えば、インクカートリッジ107Fにおける107C、107LC、107M、107LM、107Y)が区画形成されている。容器51の底面にはホルダに装着されたときにインク供給針に対向する位置にインク供給口54が各インク色に応じて形成されている。また、インク供給口側の垂直壁55の上端には、本体側のレバーの突起に係合する張出部56が一体に形成されている。この張出部56は、壁55の両側に別個に形成されていると共にリブ56aを有している。さらに下面と壁55との間に三角形上のリブ57が形成されている。また、容器51は誤挿入防止用の凹部59を有している。
垂直壁55のインク供給口形成側には、それぞれのカートリッジ500の幅方向の中心に位置するように凹部58が形成され、ここに回路基板31が装着されている。回路基板31は本体の接点と対向する面に複数の接点を有し、その裏面には記憶素子が実装されている。さらに、垂直壁55には回路基板31の位置決めをするための突起55a、55b、張出部55c、55dが形成されている。
かかるインクカートリッジ500を用いても、回路基板31上に設けられた記憶素子に、上記の実施例同様、インク残量等のデータを、本体側のEEPROMより少ないビット数のデータとして記憶させることができる。
さらに、上記各実施例ではカラー・インクとして、マゼンタ、シアン、イエロー、ライトシアン、ライトマゼンタの5色を用いたが他の色の組み合わせ、あるいは、さらに他の色を加えて6色や7色等にした場合にも本発明は適用され得る。また、インクカートリッジがキャリッジ上に装着されるタイプのみならず、インクカートリッジがプリンタ本体100側に固定的に装着される構成も採用可能である。