以下、本発明の実施の形態について説明する。図1は、発明の実施の形態としてのインクカートリッジ10とこのインクカートリッジ10を搭載するプリンタ20の送受信装置30との概略構成を示す説明図である。プラテン24により搬送される用紙Tに、印字ヘッド25からインクを吐出して印字を行なうプリンタ20の内部構成などについては省略するが、プリンタ20の内の制御装置22では、印刷に用いたインク量などのデータを演算しており、これを送受信装置30を介してインクカートリッジ10側に送信している。インクカートリッジ10との間のデータの送受信は、無線通信によっているが、有線でも差し支えない。無線通信の方式は、この実施の形態では、電磁誘導方式としたが、他の方式も採用可能である。
インクカートリッジ10には、通信を制御する通信制御部12、メモリ14へのデータの読み書きを行なうメモリ制御部15、圧電素子を用いたセンサ17、このセンサ17の駆動とセンサ17を利用したインク残量の検出を行なうセンサ制御部19とを備える。センサ17を用いたインク残量の検出は、次の手順で行なわれる。センサ17は、インク収容室16に設けられた共振室18に装着されており、図示しない電極に駆動電圧を印加すると、圧電素子であるセンサ17は、歪み、変形する。この状態から、圧電素子に溜まった電荷を放電すると、歪みのエネルギは解放され、素子は自由振動する。センサ17は、共振室18に臨んで設けられているので、この自由振動の周波数は、共振室18の共振周波数により規制される。共振室18の共振周波数は、共振室内にインクが存在する場合と、インクが存在しない場合で異なるから、共振周波数を検出すれば、共振室18内のインクの有無、ひいては、インクカートリッジ10におけるインク残量を知ることができる。
図2は、センサ制御部19が行なう処理を、プリンタ20側の制御装置22の処理と対応づけて模式的に記載したフローチャートである。センサ制御部19は、実際にはゲートアレイなどを用いた回路により実現されるが、理解の便を図って、その処理内容をフローチャートに従って説明する。インク残量の検出は、プリンタ20の制御装置22からの指示に基づいて行なわれる(ステップS5)。このとき、制御装置22は、インク残量の検出の指示のみならず、検出条件(詳しくは後述)も指定する。カートリッジ10では、通信制御部12を介して、インク残量の検出指示および検出条件の指定を受け取る(ステップS10)。
検出条件の指定を受け取ったセンサ制御部19は、検出条件として、計測開始のパルスと終了の計測パルス数の設定を行なう(ステップS11)。上述したように、検出は共振周波数により行なうが、この計測を行なうセンサ17の振動として何パルス目を開始パルスとし、そこから何パルスに亘って計測を行なうか、という指定である。この例では、開始パルスとしては第1パルスが、計測パルス数としては、4パルスが指定される。もとより、開始パルスと終了パルスとを指定するものとしても良い(その場合は、終了パルスとしては第5パルスが指定されることになる)。共振によるセンサ17の振動と、計測の開始パルス、計測パルス数、終了パルスの関係などを、図3に模式的に示した。
検出条件の設定が完了すると、次に、センサ制御部19は、駆動パルスを、センサ17に出力する(ステップS12)。この結果、上述したように、圧電素子であるセンサ17は、振動を励起され、電圧の印加が失われた後は、共振室18の状態によって変化する共振周波数で共振する。そこで、センサ制御部19は、検出条件として設定された開始パルスを検出するまで待ち(ステップS13)、開始パルスを検出すると(図3、タイミングt1)、時間カウントを開始する(ステップS14)。
その後、センサ制御部19は、終了パルスを検出するまで待機し(ステップS15)、予め設定されたパルス数(実施例では4パルス)を検出すると、時間カウントを終了し、カウント値を出力する処理を行なう(ステップS16)。このとき、併せて検出が終了した位置(図3、タイミングt2)のパルス数も出力する。検出終了した位置のパルス数とは、開始パルス(この例では共振の第1パルス)に、計測に要したパルス数(この例では4パルス)を加えた値であり、図3に示した例では、第5パルスである。
センサ制御部19が、カウント値と検出パルス数とを、通信制御部12を介して出力すると、プリンタ20の制御装置22は、この検出結果を受取り(ステップS20)、カウント値と共に受け取ったパルス数を調べて、予め指定した検出条件と合致しているかを判断する(ステップS30)。この例では、カートリッジ10側のセンサ制御部19から受け取るのは、終了パルスの位置に対応したパルス数なので、制御装置22は、自らが行なった検出条件の指定(ステップS5)から終了パルスの位置を求め、これと受け取ったパルス数とを比較して、検出条件が合致しているか否かを判断するのである。もとより、開始パルスと終了パルスを指定して、検出結果と共に、検出に要したパルス数を受け取り、これを検証するようにしても差し支えない。
検出条件が合致していると判断できれば、検出は正常に行なわれた(ステップS40)と判断し、センサ17によるインク残量の検出結果を、その後の処理に利用する。例えば、検出結果が共振室18にもはやインクがない状況を示していれば、プリンタ20の制御装置22は、インク残量が共振室18のレベルを下回ったとして、その後のインク残量管理に用いるのである。他方、検出条件が合致としていないと判断した場合には、検出にはエラーが、あったと判断し(ステップS50)、この検出結果をその後の処理には利用しない。
以上説明した本発明の実施の形態に拠れば、カートリッジ10では、収容室16内のインクの状態(ここではインクの有無)を検出することができ、しかもその検出をカートリッジ10外部のプリンタ20の制御装置22側から指定された条件で行なう。このため、検出条件が固定的なものになることがなく、状況の変化に柔軟に対応することができる。例えば、収容室16に収容するインクの組成を変更したことで、検出の最適条件が変った場合などでも柔軟に対応することができる。更に、この実施の形態では、カートリッジ10とプリンタ20側のデータのやり取りは、無線通信により行なわれており、印刷のために移動するカートリッジ10との間で、接点の接触不良などのおそれがなく、安定にデータのやり取りを行なうことができる。しかも、この実施の形態では、外部から指定された検出の条件に関連するデータを、検出結果と共に出力し、検出条件をしていた側(制御装置22)で検証を行なっているので、データ通信の信頼性も含めて、検出全体に関して、高い信頼性を確保することができる。
次に、本発明の実施例について説明する。第1実施例はインクジェットプリンタに適用したものである。図4は、このプリンタ200の動作に関与する部分を中心に、その構成を模式的に示す説明図である。また、図5は、プリンタ200の制御装置222を中心に、その電気的な構成を示す説明図である。図4に示したように、このプリンタ200は、給紙ユニット203から給紙されプラテン225によって搬送される用紙Tに、印字ヘッド211ないし216から、インク滴を吐出して、用紙T上に画像を形成する。プラテン225は、紙送り用モータ240からギヤトレイン241を介して伝達される駆動力により回転・駆動される。このプラテンの回転角度は、エンコーダ242により検出される。印字ヘッド211ないし216は、用紙Tの幅方向に往復動するキャリッジ210に設けられている。このキャリッジ210は、ステッピングモータ223により駆動される搬送用ベルト221に結合されている。搬送用ベルト221は、無端ベルトであり、ステッピングモータ223と、その反対側に設けられたプーリ229との間に架設されている。従って、ステッピングモータ223が回転すると、キャリッジ210は、搬送用ベルト221の移動に伴い、搬送用のガイド224に沿って往復動する。
次に、キャリッジ210に搭載された6色のインクカートリッジ111ないし116について説明する。6色のインクカートリッジ111ないし116は、基本的な構造は同一であり、その内部の収容室に収容されるインクの組成、即ち色が異なっている。インクカートリッジ111ないし116には、それぞれ黒色のインク(K)、シアンインク(C)、マゼンタインク(M)、イエロインク(Y)、ライトシアンインク(LC)、ライトマゼンタインク(LM)、が収容されている。ライトシアンインク(LC)、ライトマゼンタインク(LM)は、それぞれ、シアンインク(C)、マゼンタインク(M)より、その染料濃度において、1/4程度に調整された淡い色のインクである。これらのカートリッジ111ないし116には、後で詳しくその構成を説明する検出記憶モジュール121ないし126が取り付けられている。この検出記憶モジュール121ないし126は、無線通信により、プリンタ200側の制御装置222とデータの交換などを行なうことができる。第1実施例では、検出記憶モジュール121ないし126は、インクカートリッジ111ないし116の側面に取り付けられている。
これらの検出記憶モジュール121ないし126と無線によるデータ交換を行なうために、プリンタ200には、通信用の送受信部230が設けられている。送受信部230は、他の電子部品、例えば、紙送り用モータ240、ステッピングモータ223、エンコーダ242等と共に、制御装置222に接続されている。制御装置222には、この他、プリンタ200の前面に用意された操作パネル245の各種スイッチ247や、LED248も接続されている。
この制御装置222は、図5に示すように、プリンタ200全体の制御を司るCPU251、その制御プログラムを記憶したROM252、データの一時保存に用いられるRAM253、外部の機器とのインタフェースを司るPIO254、時間を管理するためのタイマ255、印字ヘッド211ないし216を駆動するためのデータを蓄える駆動バッファ256などを備え、これらを、バス257で相互に接続している。制御装置222には、これらの回路素子の他、発振器258や分配出力器259なども設けられている。分配出力器259は、発振器258から出力されるパルス信号を、6つの印字ヘッド211ないし216のコモン端子に分配するものである。印字ヘッド211ないし216は、そのオン・オフ(インクを吐出する・しない)のデータを、駆動バッファ256の側から受取り、分配出力器259から駆動パルスを受け取った時点で、駆動バッファ256の側から出力されたデータに従って、インクを対応するノズルから吐出する。
制御装置222のPIO254には、既に説明したステッピングモータ223、紙送り用モータ240、エンコーダ242、送受信部230、操作パネル245と共に、印刷すべき画像データをプリンタ200に出力するコンピュータPCも接続されている。従って、印刷時には、コンピュータPCにおいて印刷すべき画像が特定され、そのラスタライズ、色変換、ハーフトニングなどの処理が行なわれたデータが、プリンタ200に出力される。プリンタ200は、キャリッジ210の移動位置をステッピングモータ223の駆動量により検出しつつ、紙送りの位置をエンコーダ242からのデータで確認し、これらに合わせて、コンピュータPCから受け取ったデータを、印字ヘッド211ないし216のノズルから吐出すべきインクのオン・オフのデータに展開し、駆動バッファ256および分配出力器259を駆動する。
制御装置222は、PIO254に接続された送受信部230を介して、カートリッジ111ないし116に搭載された検出記憶モジュール121ないし126と、無線でデータのやり取りを行なうことができる。このために、送受信部230には、PIO254からの信号を所定周波数の交流信号に変換するRF変換部231と、RF変換部231からの交流信号を受けるループアンテナ233が設けられている。ループアンテナ233に交流信号を加えると、その近傍に同様のアンテナを配置すると、電磁誘導により、他方のアンテナに電気信号が励起される。本実施例では、無線による通信距離がプリンタ内部の距離に限られることから、電磁誘導を用いた無線通信手法を採用した。また、実施例では、無線通信に用いるアンテナは送受信側でそれぞれ一つずつ用意し、送信も受信も、同一のアンテナを用いているが、送信用アンテナと受信用アンテナを、少なくとも一方の側では分離して専用アンテナとすることも可能である。また、本実施例では、カートリッジ側の作動電力は、通信に使用しているアンテナ間の電磁誘導を用いて取得しているが、電力取得用のアンテナを別途単独で設けることも差し支えない。
次に、インクカートリッジ111側の検出記憶モジュール121の構成について説明する。図6は、検出記憶モジュール121ないし126の外観を正面および側面から示す図である。各インクカートリッジ111ないし116に搭載された検出記憶モジュール121ないし126は、内部に記憶されたID番号を除いてすべて同一なので、検出記憶モジュール121について以下説明する。この検出記憶モジュール121は、図示するように、薄いフィルム上の基板131に金属の薄膜パターンとして形成されたアンテナ133と、後述する各種機能を造り込んだ専用ICチップ135と、インクの有無を検出するセンサモジュール137と、これらを接続する配線パターン139などから構成されている。
図7は、この検出記憶モジュール121をインクカートリッジ111に装着した状態を示す端面図である。図示するように、検出記憶モジュール121は、接着剤または両面テープなどの接着層141により、インクカートリッジ111の側面に装着される。このとき、基板131の裏面に設けられたセンサモジュール137は、カートリッジ111の側面に設けられた開口143に嵌合する。センサモジュール137の内部には、共振室151が形成されており、この共振室151の一側壁にセンサとして働く圧電素子153が貼付されている。
検出記憶モジュール121の内部構成について説明する。図8は、検出記憶モジュール121の内部構成を示すブロック図である。図示するように、この検出記憶モジュール121は、専用ICチップ135内に、RF回路161,電源部162,データ解析部163,EEPROM制御部165,EEPROM166,検出制御部168,駆動制御部170,アンプ172,コンパレータ174,発振器175,カウンタ176,出力部178,二つのトランジスタTr1,Tr2,抵抗器R1,R2などから構成されている。
RF回路161は、アンテナ133に電磁誘導により発生した交流信号を検波して入力する回路であり、検波により取り出した電力成分を電源部162に、信号成分をデータ解析部163に出力する。また、後述する出力部178からの信号を受取り、これを変調して交流信号とし、アンテナ133を介して、プリンタ200側の送受信部230に送信する機能も有する。電源部162は、RF回路161から受け取った電力成分を用い、これを安定化して、専用ICチップ135内部の電源およびセンサモジュール137の電源として出力する回路である。従って、インクカートリッジ111ないし116には、乾電池などの電源は搭載されていない。また、特に図示しなかったが、送受信部230から信号により電力が供給される時間がある程度限られている場合には、電源部162により生成された安定化電源を蓄えるコンデンサなどの電荷蓄積素子を設けることも有用である。電荷蓄積素子は、電源部162の前段に設けるものとしても良い。
データ解析部163は、RF回路161から受け取った信号成分を解析し、大まかにはコマンドとデータを取り出す回路である。データ解析部163は、解析した結果に基づき、EEPROM166とのデータのやり取りを行なうか、センサモジュール137とのデータのやり取りを行なうかを制御している。データ解析部163は、データを解析した結果に従って、EEPROM166とのデータのやり取りやセンサモジュール137とのデータのやり取りなどを行なうが、そのために、やり取りの対象となってるインクカートリッジを識別する処理なども行なう必要が生じる。データ解析部163はこれらの処理も行なう。その処理の詳細については後述するが、基本的には、図9(a)(b)に示したように、キャリッジ210に搭載された各インクカートリッジが、送受信部230に対してどの位置にあるか、という情報と、各インクカートリッジに記憶されたIDとのにより、インクカートリッジの識別を行なっている。図9(a)は、各インクカートリッジ111ないし116およびこれに装着された検出記憶モジュール121ないし126と、送受信部230との位置関係を、斜視により示す説明図であり、図9(b)は、更にインクカートリッジと送受信部230との関係を、両者の幅の観点から示す説明図である。
インクカートリッジを識別する処理を行なう場合、制御装置222は、キャリッジ210を、送受信部230の存在する側に搬送する。キャリッジ210が送受信部230と対向する位置は、印字範囲外に設けられている。図9に示したように、この実施例では、検出記憶モジュール121ないし126は、インクカートリッジ111ないし116の側面に装着されており、キャリッジ210が移動することで、最大2つの検出記憶モジュールが、送受信部230との送信可能範囲に入ることになる。この状態で、データ解析部163は、送受信部230を介して、制御装置222からの要求を受け、インクカートリッジの認識処理やメモリへのアクセスあるいはセンサモジュール137とのやり取りなどの処理を行なう。処理の詳細は、後でフローチャートを用いて説明する。
データをやり取りするインクカートリッジの特定を済ませた後、実際にEEPROM166との間でデータのやり取りを行なう場合、データ解析部163は、読み書きを行なうアドレス、読み書きのいずれを行なうかの指定、およびデータの書き込みの場合にはそのデータを、EEPROM制御部165に渡す。これらの指定やデータを受け取ったEEPROM制御部165は、EEPROM166に対してアドレスと読み書きの指定とを出力し、データを書き込んだり、EEPROM166からデータを読み出すといった処理を行なう。
EEPROM166の内部のデータ構成を図10に示した。図10(a)に示したように、EEPROM166の内部は大きくは二つに分かれており、メモリ空間の前半は、インク残量などのデータが読み書きされるユーザメモリおよび分類コードが記憶される読み書き可能領域RAAである。またメモリ空間の後半は、インクカートリッジを特定するためのID情報が書き込まれた読出専用領域ROAである。
読出専用領域ROAに対する書き込みは、EEPROM166を備えた検出記憶モジュール121ないし126がインクカートリッジ111ないし116に取り付けられる前、例えば、検出記憶モジュールが製造される過程や、インクカートリッジが製造される過程で行なわれる。従って、プリンタ200の本体側からは、読み書き可能領域RAAに記憶されているデータに対しては、データの読み出しおよび書き込みの双方を実行し得るが、読出専用領域ROAに対しては、データの読み取りを実行し得るが、データの書き込みは実行することができない。
読み書き可能領域RAAのユーザメモリには、各インクカートリッジ111ないし116のインク残量情報などを書き込むために使用されており、インク残量情報をプリンタ200本体側で読み取り、残量が僅かになったときにユーザに対して警告を出すといった処理利用可能である。分類コードの記憶領域には、インクカートリッジの種類などを区別するための様々なコードが記憶されており、ユーザが独自にこれらのコードを使用することができる。
読出専用領域ROAに記憶されたID情報は、検出記憶モジュールが取り付けられるインクカートリッジに関する製造情報などである。ID情報としては、図10(b)に示したように、インクカートリッジ111ないし116が製造された年、月、日、時、分、秒、場所についての情報が記憶されている。これらは全て4〜8bit程度の大きさの領域に書き込まれており、全体で40bit〜70bit程度のメモリ領域を占有している。プリンタ200の電源投入直後などに、プリンタ200の制御装置222は、検出記憶モジュール121ないし126から各インクカートリッジ111ないし116の製造情報を含むID情報を読み取ることにより、例えば、インクカートリッジの有効期限が切れていたり残り僅かである場合に、ユーザに対して警告を出すことなどが可能である。
なお、検出記憶モジュール121のEEPROM166には、上記の情報以外の情報が適宜含まれていてもよい。また、EEPROM166は、全体が書き換え可能領域としてもよい。その場合、上述したインクカートリッジの製造情報などのID情報などは、EEPROM166をNAND型フラッシュROMなど電気的に読み書き可能なメモリを採用して構成することも可能である。なお、本実施例では、EEPROM166としては、シリアルタイプのメモリを使用している。
他方、センサモジュール137との間でやり取りを行なう場合には、データ解析部163は、まずカウンタ176をクリアすると共に、検出条件を制御装置222から受取り、これを検出制御部168に設定する。検出制御部168は、この設定を受けて、センサモジュール137の圧電素子153から得られる信号の何発目(開始パルスという)から何発のパルスに亘って計測を行なうかの設定を行なう。次に、データ解析部163は、駆動制御部170に駆動信号の出力を指令する。駆動制御部170は、この指令を受けて、駆動信号をトランジスタTr1,Tr2に出力し、圧電素子153に駆動電圧を印加する。この結果、圧電素子153に生じた共振を、アンプ172により増幅し、更にコンパレータ174に入力して、矩形のパルス信号に変換する。コンパレータ174は、アンプ172からの出力信号を所定の比較電圧Vref と比較して、その大小に基づいて矩形波に変換する回路である。
コンパレータ174からの信号を受けた検出制御部168は、予め設定された開始パルスから指定されたパルス数の期間、カウンタ176のSET端子をアクティブにして、カウンタ176を作動させる。カウンタ176は、SET端子がアクティブとされている間、発振器175からのパルスをカウントし、カウントし終わった値を、出力部178に出力する。出力部178は、検出制御部168から検出に用いた条件値を受け取っており、カウンタ176からのカウント値とこの剣検出の条件値とを、RF回路161を介して、制御装置222側に出力する。検出の条件値とは、この実施例では、開始パルス数に計測に用いたパルス数を加えた値、即ち計測の終了パルスの位置に対応したパルス数(この実施例では、第5パルス)である。もとより、開始パルスおよび計測期間を示すパルス数をそのまま用いることも可能である。なお、出力部178は、データ解析部163に内蔵させてもよい。
次に、プリンタ200の制御装置222が検出記憶モジュール121ないし126のデータ解析部163と共に行なうインクカートリッジ111の識別処理やメモリアクセスの処理の概要について説明する。図11は、プリンタ200側に設けられた制御装置222と各インクカートリッジ111ないし116に設けられた検出記憶モジュール121ないし126とが、送受信部230を介した通信を行ないつつ実行する処理の概要を示したフローチャートである。プリンタ200の制御装置222と検出記憶モジュール121ないし126のデータ解析部163とは、送受信部230を介して通信を行ないつつ、ID情報読み取り処理(第1手順)、及びID情報以外の読み取り処理やインク残量情報の書き込み処理などであるメモリアクセス処理(第2手順)、更にはセンサモジュール137とのデータのやり取り(第3手順)などの各ステップを実行する。
プリンタ200では、電源投入時、電源オン中にユーザがインクカートリッジ111ないし116の何れかを交換したとき、前回の通信処理を実行してから所定時間経過したとき等に、そのインクカートリッジの製造情報を読み取ったり、インク残量をEEPROM166の所定の領域に書き込んだり、読み取ったする処理などを実行する。これらの処理は、通常の印刷処理とは異なっており、送受信部230を介して、検出記憶モジュール121ないし126との通信を伴う処理である。
このとき、検出記憶モジュール121ないし126との通信を行なうために、インクカートリッジ111ないし116を収容するキャリッジ210は、通常の印刷実行時の位置または右側非印字領域から離れて、送受信部230が存在する左側非印字領域へと移動される。キャリッジ210がこの左側非印字領域に移動されることによって、送受信部230の近傍に至った検出記憶モジュールでは、送受信部230のループアンテナ233からの交流信号を、アンテナ133を介して受け取る。電源部162は、この交流信号から電力を取り出し、安定化した電源店圧を内部の各制御部,回路素子に供給する。この結果、検出記憶モジュールの各制御部,回路素子は、処理を行なうことが可能になる。
こうして送受信部230と各検出記憶モジュール121ないし126との通信を伴う処理ルーチンが開始されると、まず、プリンタ200側の制御装置222にて、電源オン要求が発生したか否かを判定する(ステップS100)。すなわち、インクジェットプリンタ200に電源が投入され、その作動が開始された直後であるか否かの判定を行なう。電源オン要求が発生したと判定した場合には(ステップS100:Yes)、第1手順すなわち検出記憶モジュール121ないし126からのID情報を読み取る手順を開始する(ステップS104以下)。
制御装置222は、電源オン要求が発生していないと判定した場合には(ステップS100:No)、プリンタ200が通常の印刷処理を実行中であると判断し、次にインクカートリッジ111ないし116の交換要求が発生したか否かを判定する(ステップS102)。インクカートリッジ111ないし116の交換要求は、例えば、プリンタ200の電源が投入されている状態でユーザが操作パネル245上のインクカートリッジ交換ボタン247を押すことにより生じる。このとき、プリンタ200は、通常の印刷処理モードを中断してインクカートリッジ111ないし116の何れかの交換を行なうが、交換要求自体は、インクカートリッジ111ないし116の交換後に発生する。
制御装置222は、インクカートリッジ111ないし116の交換要求が発生したと判定した場合には(ステップS102:Yes)、第1手順、すなわち交換されたインクカートリッジに設けられた記憶素子からのID情報を読み取る手順を開始する(ステップS104)。一方、インクカートリッジ111ないし116交換要求が発生していない(ステップS102:No)と判定した場合には、電源投入時などに各検出記憶モジュール121ないし126のID情報を既に正常に読み取っていると判断して、次にアクセスの対象について判断する処理を行なう(ステップS150)。アクセスの対象は、本実施例のインクカートリッジでは、EEPROM166とセンサモジュール137とが存在する。そこで、メモリへのアクセスが指示されていると判断した場合には(ステップS150:メモリ)、上述した第2手順、すなわち検出記憶モジュール121ないし126とのメモリアクセス処理を開始する(ステップS200)。他方、アクセスの対象がセンサモジュール137であると判断した場合には(ステップS150:センサ)、センサモジュール137から検出結果を読み取る第3手順を実行する。
次に第1ないし第3手順の各々について説明する。上述したように、第1手順は、制御装置222が、プリンタにおける電源オン要求やインクカートリッジ交換要求を検出した場合に実行される。第1手順では、まず検出記憶モジュール121ないし126からのID情報読み取り(ステップS104)、次に、アンチコリジョン処理を実行する(ステップS106)。アンチコリジョン処理とは、いまだ各検出記憶モジュール121ないし126からそれぞれのID情報を取得していない場合に、各素子からID情報読み取り処理を行なう際に混信が発生することを防止するための処理である。このアンチコリジョン処理が途中で失敗した場合は、再度始めからアンチコリジョン処理を実行することとすればよい。無線通信を用いた本実施例の場合、送受信部230は、常に複数の検出記憶モジュール(この実施例では二つの検出記憶モジュール)と通信が可能であり、かつ通信を開始した時点では、キャリッジ210に搭載されているインクカートリッジ111ないし116に装着された検出記憶モジュール121ないし126のID情報を、制御装置222は知らないので、混信を防止するアンチコリジョン処理が必要となる。アンチコリジョン処理の詳細については、ここでは説明しないが、基本的には、ID情報の一部を送受信部230から出力し、ID情報の一部が一致する検出記憶モジュールのみが応答を返し、他の検出記憶モジュールはスリープモードに入ることで、通信可能範囲に存在するインクカートリッジの検出記憶モジュールのID情報を特定し、一致する検出記憶モジュールとの通信を確立する。
アンチコリジョン処理が終了した場合、制御装置222は、データ解析部163を介して、各検出記憶モジュール121ないし126からID情報を読み取る処理を実行する(ステップS108)。ID情報を読み取るこの処理が終了した場合、とりあえず本通信処理ルーチンを終了する場合と、引き続いて第2手順を実行する場合とがある。
第2手順を開始する場合について説明する。第2手順を開始する場合、制御装置222は、メモリアクセスを開始するものとし(ステップS200)、続けてアクティブモードコマンドを、各検出記憶モジュール121ないし126に向けて発行する(ステップS202)。アクティブモードコマンドとは、各検出記憶モジュール121ないし126に対しそれぞれのID情報を随伴させて発行するコマンドであり、各検出記憶モジュール121ないし126のデータ解析部163は、受信したID情報を照合して自身のID情報と一致した場合のみ、アクセス準備完了の応答信号ACKを、制御装置222に送信する。
制御装置222は、検出記憶モジュール121ないし126からアクティブモードコマンドに対するの応答信号ACKを得ると、各検出記憶モジュール121ないし126に対するメモリアクセス処理を実行する(ステップS204)。このメモリアクセス処理は、EEPROM166へのデータの書き込みか、あるいはEEPROM166からのデータの読み出しの処理である。いずれの場合も、EEPROM制御部165側からは、制御装置222が指定したメモリのアドレスを伴ってアクセスが行なわれる。EEPROM制御部165は、このアドレスと読み書きのいずれであるかの指示に従って、EEPROM166の該当するアドレスを読み書きする。EEPROM166へのメモリアクセスが完了すると、EEPROM制御部165は、アクセス完了を示す応答信号ACKとアクセスしたアドレスとを、データ解析部163を介して制御装置222に送信する。以上で第2の手順は完了し、各検出記憶モジュール121ないし126に対するインク残量情報の書き込みなどが終了する。
次に、第3の手順について説明する。第3手順では、センサモジュール137へのアクセスを開始し(ステップS300)、メモリアクセスの場合と同様、まずアクティブモードコマンドAMCの発行を行なう(ステップS302)。アクティブモードコマンドを受け取ったインクカートリッジ111ないし116のうち、アクティブモードコマンドに随伴したID情報が一致したカートリッジは、応答信号AC形を返送し、その後の処理を受け付ける状態に移行する。この様子を図12のタイミングチャートに示した。図12最上段DATは、制御装置222側と検出記憶モジュール121側とのデータのやり取りを示す。また、アクティブモードACMは、これがハイレベルに反転すれば、その検出記憶モジュール121がアクティブモードになったことを示している。
アクティブモードコマンドを出力して、いずれかの検出記憶モジュールをアクティブにすると、制御装置222は、次に検出条件DNの指定を、そのインクカートリッジに送信する(ステップS304)。検出条件DNを指定するデータが受け取られ、応答信号ACKが戻ってくると、制御装置222は、次に検出の指示DCを出力する(ステップS306)。なお、検出の指示DCは、検出条件の指定に含めることも可能である。
検出の指示DCがなされると、図8に示したように、データ解析部163は、カウンタ176に対するクリア信号CLRを出力し、カウンタ176を値0にリセットする。次に、データ解析部163は、駆動制御部170に駆動指示DRIVを出力する。この駆動指示DRIVを受けて、駆動制御部170はトランジスタTr1,Tr2を駆動する。この実施例では、図13に示すように、駆動指示DRIVは、充電用のトランジスタTr1をオン状態にして圧電素子153に電圧を印加し、所定時間後にこのトランジスタTr1をオフにして、放電用のトランジスタTr2をオン状態とし、所定時間後にこのトランジスタTr2をオンにするというサイクルを2回実行する信号である。圧電素子153に印加される電圧は、電源部162により供給される電圧であり、その充電の勾配は、抵抗器R1により制限されている。また、圧電素子153に蓄積された電荷は、トランジスタTr2を介して放電されるが、この放電の勾配は、抵抗器R2により制限される。トランジスタTr1,Tr2のオン・オフの間隔は、圧電素子153に生じる振動の周波数が、センサモジュール137内の共振室151の共振周波数に近くなるように設定されている。
駆動制御部170による充電と放電が行なわれる結果、圧電素子153は、共振室151の共振周波数で振動し、圧電素子153の電極にはこの振動による電圧が発生する。この振動は、基本的には、共振室151の性質から決まる共振周波数となる。共振室151の性質とは、ここでは、共振室151内のインクの充満の程度である。共振室151内にインクが充満している場合には、この実施例では、共振周波数はおよそ90KHzであり、共振室151内のインクが印刷と共に消費されて空になった場合にて、およそ110KHzであった。もとよりこうした共振周波数は、共振室151の大きさや内壁の性質(撥水性など)によって変化する。従って、インクカートリッジのタイプ毎に測定しておけばよい。なお、インクカートリッジにインクを充填する前(共振室151内は空)の共振周波数と、一旦充填されたインクが消費されて共振室151内が空になった場合の共振周波数は異なっている。これは、インクが消費されても共振室151内周面などにはインクが付着して残っているためと考えられる。このため、圧電素子153の振動の周波数から共振室151内のインクの残量の状態を検出するには、その検出条件は、かなりの制約を受けることがある。
圧電素子153は、上述したように、印加電圧による強制振動を起因として、共振室151の共振周波数に従った周波数で振動する。かかる振動をアンプ172により増幅し、コンパレータ174に入力し、比較電圧Vref と比較する。この結果、コンパレータ174は、圧電素子153の振動数の矩形波信号COMPを出力する(図12参照)。検出制御部168は、この矩形波信号COMPを入力し、これと予め指定を受けた検出条件(開始パルスと計測に用いたパルス数)とから、カウンタ176を動作させる期間を指定するセット信号SETを生成する。図12に示した例では、開始パルスは第1番目のパルス、計測を行なう期間は4パルス分であることから、検出期間SETは、第1番目のパルスの立ち上がりから第5番目のパルスの立ち上がりまで、即ち矩形波信号COMPで4パルス分、ということになる。
この信号SETが出力されている間、カウンタ176は発振器175の出力する高い周波数のパルスを利用して、これをカウントする。共振周波数が異なれば、4つ分のパルスの時間は異なるから、終了パルスを検出して検出制御部168が出力するセット信号SETが反転するまでにカウンタ176がカウントアップしたカウント値CNTは、共振周波数によって異なることになる。このカウント値CNTは、出力部178を介して、プリンタ200の制御装置222に出力される。このとき、カウント値CNTのみならず、検出条件に対応しデータも出力部178は制御装置222側へ出力する。本実施例では、終了パルスの番号(ここでは第5パルス)を出力している。もとより、指定された検出条件そのもの、つまり開始パルスの番号(ここでは第1パルス)と、測定に用いたパルス数(ここでは4パルス分)とを出力するものとしても良い。
制御装置222は、検出結果であるカウント値CNTと、検出条件(開始パルスの番号と測定パルス数)を受け取り、このカウント値CNTに基づいて、インク残量を判定する。実際には、共振室151にインクが存在するか否かの判断を行なうことになる。カウント値CNTが、予め定めた判定値より大きければインクがあると判断し、判定値以下であればインクがないと判断するのである。この結果、プリンタ200の制御装置222は、印字ヘッド211ないし216から吐出されるインク滴の数をソフトウェアでカウントして、インク消費量を管理しているが、その管理の値と現実のインクカートリッジ111ないし116内の検出記憶モジュール121ないし126から得られた共振室151内のインクの有無の情報とを用いて、インクカートリッジ111ないし116内のインクの現在量を正確に管理することが可能となる。
インク吐出量をカウントしてインク残量を管理する場合、印字ヘッド211ないし216から一度に吐出されるインク量は、そのノズル径の加工上のバラツキや、インクの粘性のパラツキ、使用時のインク温度などにより、インク残量の計算値は、現実の残量と少しずつずれてくる。検出記憶モジュール121ないし126は、インクカートリッジ111ないし116においてインクがおよそ1/2消費された場合に共振室151内のインクが空になるように配置されている。従って、検出記憶モジュール121ないし126からのインクの有無に関する判断が、インク有りからインクなしに切り替った時点を検出し、この時点で、ソフトウェアでカウントしてきたインク消費量を較正すれば、インク消費量を正確に管理することが可能となる。較正は、単にインク消費量を、検出記憶モジュール121ないし126からの検出結果を利用して1/2にリセットするするものとしてもよい、それまでソフトウェアのカウントの程度を補正するといった手法で行なってもよい。この結果、インクカートリッジ111ないし116におけるインクエンド(カートリッジ内のインクが完全になくなるタイミング)を正確に三種することが可能となる。従って、インクエンドによる交換を指示したインクカートリッジ内に未使用のインクが所定量残っており、資源を無駄にすると言うことがない。また、インクエンドの検出前にインクカートリッジ内のインクがなくなってしまい、いわゆる空打ちをして、印字ヘッド211ないし216が損傷を被るということも生じにくい。
しかも、本実施例のプリンタ200では、検出結果であるカウント値CNTのみならず、検出条件に関連した値(終了パルス)を検出記憶モジュール121ないし126から制御装置222に返すので、制御装置222は、自分が指定した検出条件で正しく検出が行なわれたか否かを検証することができる。この場合の制御装置222の処理を図14に示す。制御装置222は、検出記憶モジュール121ないし126におけるインク有無の検出条件D1と検出の指示D2とをインクカートリッジ111ないし116に出力した後(ステップS400)、インクカートリッジ111ないし116側から、検出結果の応答があるのを待つ(ステップS410)。応答があると、インクカートリッジの検出記憶モジュール121ないし126から、検出結果(カウント値CNT)と検出条件に対応したデータDTとを無線通信を介して読み込む(ステップS420)。
次に読み取ったデータDTと指示した検出条件D1とをつき合わせる処理を行ない(ステップS430)、両者が一致していれば、検出結果を有効とみなして(ステップS440)、ソフトウェアカウンタによるインク残量の演算に、検出結果を反映させる処理を行なう(ステップS450)。具体的には、センサモジュール137を用いて行なわれた計測の結果であるカウント値CNTを所定値と比較し(ステップS451)、カウント値CNTの方が小さければ、フラグFnに値1を、カウント値CNTの方が大きければ、フラグFnに値0を、それぞれ設定する(ステップS452,454)。その後、カウント値CNTが所定値より小さくなった場合のみ、前回設定されたフラグFn−1と今回設定されたフラグの値Fnとが一致しているか否かの判断を行ない(ステップS455)、不一致の場合には、フラグが値0から値1に変更された直後であることから、インクカートリッジ111におけるインク残量がほぼ1/2となった時点であると判定し、制御装置222において行なわれているインク残量の演算に利用する。即ち、ソフトウェアにより管理してきたインク残量IRQを、上記の検出結果を利用して1/2にセットするのである(ステップS458)。
従って、ソフトウェアによるインク残量の演算に誤差が存在する場合でも、センサモジュール137を用いたインク残量の検出結果を利用して、これを修正することができる。なお、センサを用いたインク残量の検出結果を参照してソフトウェアによるインク残量の演算式の補正係数などを微調整することも可能である。
他方、読み取ったデータD帝都指示した検出条件D1とが対応していない場合には(ステップS430)、検出結果を有効とみなすことができないと判断し(ステップS460)、その後のインク残量の管理をソフトウェアカウンタにのみ委ねる(ステップS470)。また、インクカートリッジ111ないし116の検出記憶モジュール121ないし126に何らかの不具合が発生していると考えられるので、使用者に対して、「インクカートリッジに障害が発生している可能性があります」などの警告を発するものとしても良い。警告は、プリンタ200に設けられた操作パネル245上のLED248を点滅させることによって行なっても良いし、液晶ディスプレイなどを搭載し、ここに表示しても良い。あるいは、音声合成などを利用して、スピーカから音声により警告するものとしても良い。また、プリンタ200に対して印字データを出力するコンピュータとの間が双方向性のインタフェースで接続されていれば、プリンタ200からコンピュータにデータを出力し、コンピュータ側に、上記の表示を行なうものとしても良い。以上の処理の終了後、「END」に抜けて、本処理ルーチンを終了する。
以上説明した実施例では、インクカートリッジ111ないし116に搭載された検出記憶モジュール121ないし126の動作を確認しながら、プリンタ200におけるインクカートリッジ内のインクの状態に応じた処理(ここではインク残量の演算処理)を異ならせることができる。検出記憶モジュール121ないし126が正常に動作している場合には、その検出結果を利用して、インク残量が1/2となった時点でソフトウェアカウンタのインク残量の演算値を較正することができる。他方、制御装置222が指定した検出条件で検出が行なわれていないと判断した場合には、検出結果であるカウント値CNTは信頼することができないので、これを用いたインクの有無の判定や、ひいてはその判断に従うインク消費量の較正なども行なわない。あるいは行なう場合でも、限定的に利用したり、使用者に対して警告を出してから、較正するということも可能である。もとより、検出条件が一致しない場合には、インクカートリッジにおける検出記憶モジュールの故障とみなして、使用者にインクカートリッジの交換などの警告を併せて行なってもよい。
以上、インクカートリッジ111ないし116に設けられた検出記憶モジュール121ないし126と送受信部との第1手順通信処理ないし第3手順、更には検出記憶モジュール121ないし126における検出結果の有効性を判断した上で制御装置222が行なう処理について説明した。これらの処理は、制御装置222が各検出記憶モジュール121ないし126と通信しながら実現される。かかる通信処理は、左端の検出記憶モジュール121から右端の検出記憶モジュール126へと順次1つずつ行なわれる。その際、キャリッジ210は、インクカートリッジの幅1つ分ずつ順次移動しては停止する。停止した際、各インクカートリッジの検出記憶モジュールとの通信処理が行なわれる。もとより、本実施例の送受信部230のように、その幅が、インクカートリッジほぼ2つ分に対向する大きさである場合は、インクカートリッジ2つ分ずつ合計3回移動・停止し、各位置で検出記憶モジュール2つずつと通信処理を行なうこととすれば、キャリッジ210の移動・位置決め動作が少なくて済むのでより好ましい。この場合でも、制御装置222は、アンチコリジョンの処理を行なっているので、複数個のインクカートリッジのやり取りが混信することはない。
以上、本発明の実施の形態と実施例とについて説明したが、本発明はこうした実施の形態および実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、更に種々なる形態で実施し得ることは勿論である。例えば、本実施例の検出記憶モジュール121は、インクジェットプリンタのインクカートリッジのみならず、トナーカートリッジなどにも適用することができる。また、検出記憶モジュール121は、カートリッジの底面や上面に設けることも可能である。上面に設けた場合には、送受信部230の配置の自由度が高く、全体の構成が簡略となる。なお、検出記憶モジュール121をインクカートリッジ111の上面に設ける場合でも、インク収容室のしきり方を設定すれば、インクエンド付近や、インク消費量が1/2のあたりなど、インク有無を検出するインク残量を自由に設定することができる。
更に、上記実施例では、インクの有無の検出は、インク消費量が略1/2となるあたりで行なうものとしたが、インクエンドの近傍で行なっても良いし、インク消費量のもっと少ない時点(インク残量の多い時点)で行なってもよい。また、外部から指定される検出条件は、本実施例では、圧電素子153を用いたことから、その開始パルスや終了パルス、あるいは検出期間に相当するパルス数などに関連のある条件として設定したが、検出を行なうタイミング(時刻やインターバル、電源投入時など)、検出回数、など様々な条件を設定することができる。またこれらの条件に対してカートリッジ側が返答するデータとしては、条件一部をそのまま用いても良いし、予め決められた対応によるコードなどを用いてもよい。なお、検出条件に対応したデータを出力しないものとして差し支えない。
上記の実施例では、インク有無の検出は、ハードウェアロジックにより実現しているが、CPUを用い、ソフトウェアにより同様の処理を行なうことも可能である。この場合には、カウンタ176がカウントした値を制御装置222側に送信する構成に代えて、インクの有無の判断自体を検出記憶モジュール121側で行ない、インクの有無の判定結果のみを制御装置222側に送信する構成とすることも可能である。
ないものとして差し支えない。