(57)【要約】【課題】記憶装置において、ホスト回路との通信の信頼性を向上する。【解決手段】ホスト回路と電気的に接続される記憶装置は、不揮発性のデータ記憶部と、データ受信部と、判定部と、データ送信部とを備える。データ受信部は、ホスト回路からメモリアレイに書き込むべき第１のデータと、第１のデータに基づいて生成された第２のデータを受信する。判定部は、第１のデータと第２のデータとの整合性を判定する。データ送信部は、判定の結果をホスト回路に送信する。【選択図】図１４
2010257446.tif 000002
【特許請求の範囲】
【請求項１】
ホスト回路と電気的に接続される記憶装置であって、
不揮発性のデータ記憶部と、
前記ホスト回路から、前記データ記憶部に書き込むべき第１のデータと、前記第１のデータに基づいて生成された第２のデータと、を含むデータを受信するデータ受信部と、
前記データ受信部で受信したデータの整合性を判定する判定部と、
前記判定の結果を前記ホスト回路に送信するデータ送信部と、
を備え、
前記判定部は、前記第１と第２のデータが互いに整合しているか否かを判定する、記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記第２のデータは前記第１のデータの反転データであり、
前記データ受信部は、前記ホスト回路から前記記憶装置への書き込み処理の際に、前記ホスト回路から、複数の記憶装置の中から１つの記憶装置を指定するための識別データと、反転識別データと、ライトコマンドデータと、反転ライトコマンドデータと、所定サイズの第１のデータ及び第２のデータの第１組と、をこの順に受信した後に、前記所定サイズの第１のデータ及び第２のデータの第２組以降を１組ずつ繰り返し受信し、
前記データ送信部は、
（ｉ）前記識別データの受信を開始してから前記第１のデータ及び第２のデータの第１組の受信を完了するまで前記判定部による判定の結果を前記ホスト回路に送信せず、前記所定サイズの第１のデータ及び第２のデータの第１組の受信を完了した後に前記判定部による判定の結果を前記ホスト回路に送信するとともに、
（ｉｉ）前記所定サイズの第１のデータ及び第２のデータの第２組以降に関しては、各組の受信を完了するたびに前記判定部による判定の結果を前記ホスト回路に送信する、記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記第１と第２のデータは、それぞれパリティビットを含み、
前記判定部は、前記第１と第２のデータが互いに反転関係にあり、かつ、前記第１と第２のデータにパリティエラーが無い場合にのみ肯定的な判定結果を生成する、記憶装置。
【請求項４】
請求項１に記載の記憶装置であって、
前記第１のデータのデータ量と前記第２のデータのデータ量は同一である、記憶装置。
【請求項５】
請求項４に記載の記憶装置であって、さらに、
前記判定結果が肯定的な場合に前記データ記憶部に前記第１のデータを書き込み、前記判定結果が否定的な場合に前記データ記憶部に前記第１のデータを書き込まないリード／ライト制御部を備える、記憶装置。
【請求項６】
請求項４又は請求項５に記載の記憶装置であって、
前記第１のデータおよび前記第２のデータは、ｎビット（ｎは１以上の整数）の信号であり、
前記第２のデータは、前記第１のデータの各ビットの値を反転させた反転データである、記憶装置。
【請求項７】
請求項６に記載の記憶装置であって、
前記データ受信部は、前記ホスト回路から供給されるクロック信号に同期して、前記第１のデータおよび前記第２のデータをシリアルに受信し、
前記データ送信部は、前記第１のデータおよび前記第２のデータのうちの最後のデータを受信するための前記クロック信号の次の周期の前記クロック信号に同期して、前記判定の結果を前記ホスト回路に送信する、記憶装置。
【請求項８】
請求項６に記載の記憶装置であって、
前記判定部は、
前記第１のデータのｍ（ｍは１以上ｎ以下の整数）番目の値と前記第２のデータのｍ番目の値との排他的論理和が、ｎビットの全てについて真である場合に、前記判定結果を肯定的であるとし、
前記排他的論理和が、ｎビットのいずれかについて偽である場合に、前記判定結果を否定的であるとする、記憶装置。
【請求項９】
請求項６に記載の記憶装置であって、
前記ｎは偶数であり、
前記データ受信部は、クロック信号に同期して、前記第１のデータのうちの上位ｎ／２ビット、前記第２のデータのうちの上位ｎ／２ビット、前記第１のデータのうちの下位ｎ／２ビット、第２のデータのうちの下位ｎ／２ビットを、この順番に受信し、
前記データ送信部は、第２のデータのうちの下位ｎ／２ビットの最下位ビットを受信したクロック信号の次の周期のクロック信号で前記判定結果を送信する、記憶装置。
【請求項１０】
請求項４ないし請求項９のいずれか一項に記載の記憶装置であって、
前記ホスト回路と前記記憶装置とは、前記ホスト回路に電気的に接続された回路側端子と、前記記憶装置に電気的に接続される記憶装置側端子とを介して、電気的に接続される、記憶装置。
【請求項１１】
液体噴射装置に接続可能な基板であって、
不揮発性のデータ記憶部と、
前記液体噴射装置から前記データ記憶部に書き込むべき第１のデータと、前記第１のデータに基づいて生成された第２のデータと、を含むデータを受信するデータ受信部と、
前記前記データ受信部で受信したデータタの整合性を判定する判定部と、
前記判定の結果を前記液体噴射装置に送信するデータ送信部と、
を備え、前記判定部は、前記第１と第２のデータが互いに整合しているか否かを判定する、基板。
【請求項１２】
液体噴射装置に装着可能な液体容器であって、
不揮発性のデータ記憶部と、
前記液体噴射装置から前記データ記憶部に書き込むべき第１のデータと、前記第１のデータに基づいて生成された第２のデータと、を含むデータを受信するデータ受信部と、
前記データ受信部で受信したデータの整合性を判定する判定部と、
前記判定の結果を前記液体噴射装置に送信するデータ送信部と、
を備え
前記判定部は、前記第１と第２のデータが相互に整合しているか否かを判定する、液体容器。
【請求項１３】
不揮発性のデータ記憶部に書き込むべきデータをホスト回路から受け付ける方法であって、
前記ホスト回路から前記データ記憶部に書き込むべき第１のデータを受信し、
前記第１のデータに基づいて生成された第２のデータを受信し、
前記第１のデータと前記第２のデータとの整合性を判定し、
前記判定の結果を前記ホスト回路に送信する、方法。
【請求項１４】
ホスト回路と、前記ホスト回路と着脱可能な記憶装置を含むシステムであって、
前記記憶装置は、不揮発性のデータ記憶部を備え、
前記ホスト回路は、
前記データ記憶部に書き込むべき第１のデータを生成する第１のデータ生成部と、
前記第１のデータに基づいて第２のデータを生成する第２のデータ生成部と、
を備え、
前記記憶装置は、さらに、
前記ホスト回路から前記第１のデータと、前記第２のデータと、を含むデータを受信するデータ受信部と、
前記データ受信部で受信されたデータの整合性を判定する判定部と、
前記判定の結果を前記ホスト回路に送信するデータ送信部と、
を備え、
前記判定部は、前記第１と第２のデータが互いに整合しているか否かを判定するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、記憶装置を備えた回路基板、液体容器、データ記憶部に書き込むべきデータをホスト回路から受け付ける方法、ホスト回路に対し電気的に接続可能な記憶装置を含むシステムに関する。
【背景技術】
【０００２】
液体噴射装置の一例であるインクジェット方式の印刷装置には、通常、取り外し可能な液体容器であるインク容器が装着される。インク容器には、記憶装置が設けられているものがある。記憶装置には、例えば、インク容器内のインクの残量やインクの色などの種々の情報が格納されている（特許文献１、２）。印刷装置に設けられた制御装置は、インク容器の記憶装置との通信を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３７０３８３号公報
【特許文献２】特開２００４−２９９４０５号公報
【特許文献３】特開２００１−１４６０３０号公報
【特許文献４】特開平６−２２６９８９号公報
【特許文献５】特開２００３−１１２４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、印刷装置に設けられた制御装置と、インク容器の記憶装置と間の通信の信頼性については、あまり考慮されていなかった。例えば、印刷装置とインク容器との電気的な接続部分の接触不良等によって、印刷装置に設けられた制御装置とインク容器の記憶装置と間の通信に不良が発生するおそれがあった。通信不良のまま、印刷制御装置が動作を続けると、記憶装置の記憶内容に誤りが生じるなどの不都合が発生するおそれがあった。このような課題は、インク容器に設けられた記憶装置に限らず、ホスト回路と電気的に接続される記憶装置に共通する課題であった。
【０００５】
この発明は、上述の課題を解決するためになされたものであり、ホスト回路と電気的に接続される記憶装置において、ホスト回路との通信の信頼性を向上することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するために以下の形態または適用例として実現することが可能である。
【０００７】
［適用例１］  ホスト回路と電気的に接続される記憶装置であって、
不揮発性のデータ記憶部と、
前記ホスト回路から、前記データ記憶部に書き込むべき第１のデータと、前記第１のデータに基づいて生成された第２のデータと、を含むデータを受信するデータ受信部と、前記データ受信部で受信したデータの整合性を判定する判定部と、前記判定の結果を前記ホスト回路に送信するデータ送信部と、を備え、
前記判定部は、前記第１と第２のデータが互いに整合しているか否かを判定する、記憶装置。
【０００８】
適用例１に記載の記憶装置によれば、第１のデータと第２のデータとの整合性を判定して判定結果をホスト回路に送信するので、ホスト回路は通信エラーの有無を確認しながら、記憶装置と通信することができる。その結果、ホスト回路と記憶装置間の通信の信頼性を向上することができる。
【０００９】
［適用例２］
適用例１に記載の記憶装置であって、
前記第２のデータは前記第１のデータの反転データであり、
前記データ受信部は、前記ホスト回路から前記記憶装置への書き込み処理の際に、前記ホスト回路から、複数の記憶装置の中から１つの記憶装置を指定するための識別データと、反転識別データと、ライトコマンドデータと、反転ライトコマンドデータと、所定サイズの第１のデータ及び第２のデータの第１組と、をこの順に受信した後に、前記所定サイズの第１のデータ及び第２のデータの第２組以降を１組ずつ繰り返し受信し、
前記データ送信部は、
（ｉ）前記識別データの受信を開始してから前記第１のデータ及び第２のデータの第１組の受信を完了するまで前記判定部による判定の結果を前記ホスト回路に送信せず、前記所定サイズの第１のデータ及び第２のデータの第１組の受信を完了した後に前記判定部による判定の結果を前記ホスト回路に送信するとともに、
（ｉｉ）前記所定サイズの第１のデータ及び第２のデータの第２組以降に関しては、各組の受信を完了するたびに前記判定部による判定の結果を前記ホスト回路に送信する、記憶装置。
この構成によれば、記憶装置は、所定サイズの第１のデータ及び第２のデータの１組を受信するたびにその整合性の判定結果をホスト回路に送信するので、ホスト回路と記憶装置間の通信の信頼性を向上させることができる。また、書き込み処理の初期では、識別データの受信を開始してから第１のデータ及び第２のデータの第１組の受信を完了するまで判定結果をホスト回路に送信しないので、判定結果を記憶装置からホスト回路に送信する回数を減らすことができ、書き込み処理の全体を効率的に実行することができる。
【００１０】
［適用例３］
適用例２に記載の記憶装置であって、
前記第１と第２のデータは、それぞれパリティビットを含み、
前記判定部は、前記第１と第２のデータが互いに反転関係にあり、かつ、前記第１と第２のデータにパリティエラーが無い場合にのみ肯定的な判定結果を生成する、記憶装置。
この構成によれば、ホスト回路と記憶装置間の通信の信頼性を更に向上させることができる。
【００１１】
［適用例４］  適用例１に記載の記憶装置であって、
前記第１のデータのデータ量と前記第２のデータのデータ量は同一である、記憶装置。
こうすれば、第１のデータと第２のデータは同一のデータ量を有するので、ホスト回路はより厳密な整合性を判定することができる。
【００１２】
［適用例５］  適用例４に記載の記憶装置であって、
前記判定結果が肯定的な場合に前記データ記憶部に前記第１のデータを書き込み、前記判定結果が否定的な場合に前記データ記憶部に前記第１のデータを書き込まないリード／ライト制御部を備える、記憶装置。
こうすれば、通信エラーがある場合には、データ記憶部に第１のデータを書き込まないので、データ記憶部の誤った更新を抑制することができる。
【００１３】
［適用例６］  適用例４又は適用例５に記載の記憶装置であって、
前記第１のデータおよび前記第２のデータは、ｎビット（ｎは１以上の整数）の信号であり、
前記第２のデータは、前記第１のデータの各ビットの値を反転させた反転データである、記憶装置。
こうすれば、ホスト回路から送信される第２のデータは、第１のデータの反転データである。したがって、通信エラーにより、例えば、記憶装置が受信した信号が第１のデータと第２のデータが全て同じ値の信号である場合、確実に通信エラーを検出することができる。
【００１４】
［適用例７］  請求項６に記載の記憶装置であって、
前記データ受信部は、前記ホスト回路から供給されるクロック信号に同期して、前記第１のデータおよび前記第２のデータをシリアルに受信し、
前記データ送信部は、前記第１のデータおよび前記第２のデータのうちの最後のデータを受信するための前記クロック信号の次の周期の前記クロック信号に同期して、前記判定の結果を前記ホスト回路に送信する、記憶装置。
こうすれば、ホスト回路は、第１のデータと第２のデータを送信した直後に、判定の結果を認識できる。このため、ホスト回路は、判定の結果が否定的であった場合には、データの再送をするなどの対処を迅速に行うことができる。
【００１５】
［適用例８］  適用例６に記載の記憶装置であって、
前記判定部は、
前記第１のデータのｍ（ｍは１以上ｎ以下の整数）番目の値と前記第２のデータのｍ番目の値との排他的論理和が、ｎビットの全てについて真である場合に、前記判定結果を肯定的であるとし、
前記排他的論理和が、ｎビットのいずれかについて偽である場合に、前記判定結果を否定的であるとする、記憶装置。
こうすれば、排他的論理和を演算することにより、容易に、通信エラーの有無を判定することができる。
【００１６】
［適用例９］  適用例６に記載の記憶装置であって、
前記ｎは偶数であり、
前記データ受信部は、クロック信号に同期して、前記第１のデータのうちの上位ｎ／２ビット、前記第２のデータのうちの上位ｎ／２ビット、前記第１のデータのうちの下位ｎ／２ビット、第２のデータのうちの下位ｎ／２ビットを、この順番に受信し、
前記データ送信部は、第２のデータのうちの下位ｎ／２ビットの最下位ビットを受信したクロック信号の次の周期のクロック信号で前記判定結果を送信する、記憶装置。
こうすれば、ｎビットの第１のデータを送信する度に判定結果を送信する。したがって、ｎビット単位で通信エラーの有無を確認しながら通信を行うことができるため、通信の信頼性がより向上する。
【００１７】
［適用例１０］  適用例４ないし適用例９のいずれかに記載の記憶装置であって、
前記ホスト回路と前記記憶装置とは、前記ホスト回路に電気的に接続された回路側端子と、前記記憶装置に電気的に接続される記憶装置側端子とを介して、電気的に接続される、記憶装置。
こうすれば、記憶装置側端子と回路側端子の接触不良による通信エラーの発生を検出して、ホスト回路と記憶装置との通信の確実性を向上することができる。
【００１８】
この発明は、種々の形態で実現することが可能であり、例えば、液体噴射装置に接続可能な基板、液体噴射装置に装着可能な液体容器、データ記憶部に書き込むべきデータをホスト回路から受け付ける方法、ホスト回路とホスト回路と着脱可能な記憶装置を含むシステム、液体噴射システム、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１９】
【図１】印刷システムの概略構成を示す説明図。
【図２】実施例に係るインクカートリッジの構成を示す斜視図。
【図３】実施例に係る基板の構成を示す図。
【図４】印刷ヘッドユニットの構成を説明する図。
【図５】プリンタの電気的な構成を示す第１の説明図。
【図６】プリンタの電気的な構成を示す第２の説明図。
【図７】記憶装置の強誘電体メモリアレイによって提供される記憶領域のメモリマップを模式的に示す図。
【図８】プリンタ側における記憶装置からの読み出し処理の処理ルーチンを示すフローチャート。
【図９】記憶装置からの読み出し処理において通信処理部５５とメモリ制御回路との間で遣り取りされる信号を模式的に示すタイミングチャート。
【図１０】メモリ側における記憶装置からの読み出し処理の処理ルーチンを示すフローチャート。
【図１１】記憶装置側の読み出し処理の処理ルーチンを示すフローチャート。
【図１２】プリンタ側における記憶装置への書き込み処理の処理ルーチンを示すフローチャート。
【図１３】記憶装置への書き込み処理においてプリンタ側が認識しているメモリマップを模式的に示す図。
【図１４】記憶装置への書き込み処理において通信処理部とメモリ制御回路との間で遣り取りされる信号を模式的に示すタイミングチャート。
【図１５】記憶装置における書き込み処理の処理ルーチンを示すフローチャート。
【図１６】記憶装置に対するライトロック処理において通信処理部とメモリ制御回路との間で遣り取りされる信号を模式的に示すタイミングチャート。
【図１７】印刷処理の処理ステップを示すフローチャート。
【発明を実施するための形態】
【００２０】
Ａ．実施例：
・印刷システムの構成：
次に、本発明の実施の形態を実施例に基づき説明する。図１は、印刷システムの概略構成を示す説明図である。印刷システムは、印刷装置としてのプリンタ２０と、コンピュータ９０と、を備えている。プリンタ２０は、コネクタ８０を介して、コンピュータ９０と接続されている。
【００２１】
プリンタ２０は、副走査送り機構と、主走査送り機構と、ヘッド駆動機構と、主制御部４０と、を備えている。副走査送り機構は、紙送りモータ２２とプラテン２６とを備えており、紙送りモータの回転をプラテンに伝達することによって用紙ＰＡを副走査方向に搬送する。主走査送り機構は、キャリッジモータ３２と、プーリ３８と、キャリッジモータとプーリとの間に張設された駆動ベルト３６と、プラテン２６の軸と並行に設けられた摺動軸３４と、を備えている。摺動軸３４は、駆動ベルト３６に固定されたキャリッジ３０を摺動可能に保持している。キャリッジモータ３２の回転は、駆動ベルト３６を介してキャリッジ３０に伝達され、キャリッジ３０は、摺動軸３４に沿ってプラテン２６の軸方向（主走査方向）に往復動する。ヘッド駆動機構は、キャリッジ３０に搭載された印刷ヘッドユニット６０を備えており、印刷ヘッドを駆動して用紙ＰＡ上にインクを吐出させる。主制御部４０は、上述した各機構を制御して印刷処理を実現する。主制御部４０は、例えば、コンピュータ９０を介してユーザの印刷ジョブを受信し、受信した印刷ジョブの内容に基づき、上述した各機構を制御して印刷を実行する。印刷ヘッドユニット６０には、後述するように、複数のインクカートリッジを脱着自在に装着可能である。すなわち、印刷ヘッドにインクを供給するインクカートリッジが、ユーザの操作により取り付け、取り外し可能に、印刷ヘッドユニット６０に備えられる。プリンタ２０は、さらに、ユーザがプリンタの各種の設定を行ったり、プリンタのステータスを確認したりするための操作部７０を備えている。
【００２２】
図２〜図４を参照して、インクカートリッジ（液体容器）の構成と共に、プリンタ２０の構成についてさらに説明する。図２は、実施例に係るインクカートリッジの構成を示す斜視図である。図３は、実施例に係るプリント回路基板（以降、単に回路基板という。）の構成を示す図である。図４は、印刷ヘッドユニット６０の構成を説明する図である。
【００２３】
インクカートリッジ１００は、インクを収容する本体１０１と、回路基板１２０と、センサ１１０と、を備えている。本体１０１の底面は、印刷ヘッドユニット６０に装着されたときに、印刷ヘッドユニット６０に対してインクを供給するためのインク供給口１０４を備えている。本体１０１には、インクを収容するインク室１５０が形成されている。インク供給口１０４は、インク室１５０と連通している。インク供給口１０４の開口１０４ｏｐは、フィルム１０４ｆによって、封がされている。インクカートリッジ１００を印刷ヘッドユニット６０（図４）に装着することによって、フィルム１０４ｆが破られ、インク供給針６がインク供給口１０４に挿入される（図４）。インク室１５０に収容されているインクは、インク供給針６を介して、プリンタ２０の印刷ヘッドに供給される。
【００２４】
センサ１１０は、本体１０１の内部に固定されている。センサ１１０は、後述するように、圧電体を２枚の対向する電極で挟んだ圧電素子を含み、インク残量の検出に用いられる。本体１０１は、前壁１０１ｗｆ（−Ｙ方向の壁）と、底壁１０１ｗｂ（＋Ｚ方向の壁）を含んでいる。前壁１０１ｗｆは、底壁１０１ｗｂと交差（本実施例では、実質的に直交）している。回路基板１２０は、前壁１０１ｗｆに固定されている。回路基板１２０は、外表面に、端子２１０〜２７０を備えている。
【００２５】
前壁１０１ｗｆには、２つの突起Ｐ１、Ｐ２が形成されている。これらの突起Ｐ１、Ｐ２は、−Ｙ方向に突出している。回路基板１２０には、これらの突起Ｐ１、Ｐ２をそれぞれ受け入れる穴１２２と切り欠き１２１とが、形成されている（図３（Ａ））。穴１２２は、回路基板１２０のインク供給口１０４側の端部（＋Ｚ方向の端）の中央に形成され、切り欠き１２１は、回路基板１２０のインク供給口１０４とは反対側の端部（−Ｚ方向の端）の中央に形成されている。回路基板１２０が前壁１０１ｗｆに装着された状態では、突起Ｐ１、Ｐ２は、穴１２２、切り欠き１２１きに、それぞれ挿入される。なお、インクカートリッジ１００の製造時に、回路基板１２０が前壁１０１ｗｆに装着された後には、これらの突起Ｐ１、Ｐ２の先端が潰される。これにより、回路基板１２０は、前壁１０１ｗｆに固定される。
【００２６】
さらに、前壁１０１ｗｆには、係合突起１０１ｅが設けられている。係合突起１０１ｅとホルダ４（図４）の係合口４ｅとの係合によって、インクカートリッジ１００がホルダ４から意図せずに外れることが、防止される。
【００２７】
図４を参照して印刷ヘッドユニット６０の構成と、印刷ヘッドユニット６０にインクカートリッジ１００が装着される様子を説明する。図４に示すように、印刷ヘッドユニット６０は、ホルダ４と、接続機構４００と、印刷ヘッド５と、サブ制御基板５００とを備えている。サブ制御基板５００には、インクカートリッジ１００の回路基板１２０の端子２１０〜２７０の各々に、接続機構４００を介して、各々接続される端子群と、キャリッジ回路５０が実装されている。ホルダ４は、複数のインクカートリッジ１００を装着可能に構成され、印刷ヘッド５の上に配置されている。接続機構４００は、後述するインクカートリッジ１００の回路基板１２０に設けられた各端子と、サブ制御基板５００に設けられた端子群の中の対応する端子とを電気的に接続するための導電性の接続端子４１０〜４７０が、回路基板１２０の端子ごとに設けられている。印刷ヘッド５の上には、インクカートリッジ１００から印刷ヘッド５にインクを供給するための上述したインク供給針６が配置されている。印刷ヘッド５は、複数のノズルと、複数の圧電素子（ピエゾ素子）と、を含み、各圧電素子に印加される電圧に応じて各ノズルからインク滴を吐出し、用紙ＰＡ上にドットを形成する。キャリッジ回路５０は、主制御部４０と協働してインクカートリッジ１００に関連する制御を行うための回路であり、以下ではサブ制御部ともいう。
【００２８】
インクカートリッジ１００は、図４におけるＺ軸の正方向（挿入方向Ｒ）に挿入されることにより、ホルダ４に装着される。このようにして、インクカートリッジ１００は、プリンタ２０に着脱可能に装着される。また、インクカートリッジ１００に搭載された回路基板１２０は、ユーザによるインクカートリッジ１００の装着、脱着に伴い、プリンタ２０に装着され、また、脱着されることになる。インクカートリッジ１００がプリンタ２０に装着されたときには、回路基板１２０はプリンタ２０に電気的に接続される。
【００２９】
図３に戻って、回路基板１２０について、さらに説明する。図３（Ａ）における矢印Ｒは、上述したインクカートリッジ１００の挿入方向を示している。図３（Ｂ）に示すように、回路基板１２０は、プリンタ２０と接続される面の裏側の面である裏面に記憶装置１３０を備え、プリンタ２０と接続される面である表面に７つの端子からなる端子群を備えている。記憶装置１３０は、本実施例では、強誘電体メモリセルアレイを含む半導体記憶装置である。本発明のデータ記憶部に相当するメモリセルアレイには、例えば、インクの消費量やインクの色などのインクまたはインクカートリッジ１００に関連する種々のデータが格納される。インク消費量は、インクカートリッジ内に収容されたインクについて、印刷の実行やヘッドのクリーニングに伴い消費されるインク量の累計を示すデータである。インク量そのもので示されたデータであってもよいし、あらかじめインクカートリッジ内に収容されたインクの量をもとにした基準量に対して消費されたインク量の割合を示すデータであっても良い。
【００３０】
回路基板１２０の表面側の各端子は、略矩形状に形成され、挿入方向Ｒと略垂直な列を２列形成するように配置されている。２つの列のうち、挿入方向Ｒ側（挿入されるときの挿入方向の先端側）、すなわち、図３（Ａ）における下側に位置する列を下側列と呼び、挿入方向Ｒの反対側、すなわち、図３（Ａ）における上側に位置する列を上側列と呼ぶ。ここで、上側、下側という用語は、図３を用いて説明するために便宜的に用いた用語である。上側列を形成する端子と、下側列を形成する端子は、互いの端子中心が挿入方向Ｒに並ばないように、互い違いに配置され、いわゆる千鳥状の配置を構成している。
【００３１】
上側列を形成するように配列されている端子は、図３（Ａ）中左側から、接地端子２１０、電源端子２２０である。下側列を形成するように配列されている端子は、図３（Ａ）中左側から、第１のセンサ駆動用端子２３０、リセット端子２４０、クロック端子２５０、データ端子２６０、第２のセンサ駆動用端子２７０である。左右方向の中央付近の５つの端子、すなわち、接地端子２１０、電源端子２２０、リセット端子２４０、クロック端子２５０、データ端子２６０は、それぞれ、図示しない回路基板１２０の表裏面の配線パターン層や回路基板１２０に配置されたスルホールを介して、記憶装置１３０に接続されている。下側列の両端に位置する２つの端子、すなわち、第１のセンサ駆動用端子２３０および第２のセンサ駆動用端子２７０は、センサ１１０に含まれる圧電素子の一方の電極および他方の電極にそれぞれ接続されている。
【００３２】
回路基板１２０では、記憶装置１３０に接続された５つの端子と、センサ１１０に接続された２つの端子は、互いに近接して配置されている。このため、プリンタ２０側の接続機構４００においても、記憶装置１３０に接続された５つの端子に対応する接続端子４１０、４２０、４４０〜４６０と、センサ１１０に接続された２つの端子に対応する接続端子４３０、４７０とは、互いに近接して配置されている。
【００３３】
回路基板１２０の各端子は、インクカートリッジ１００がホルダ４に固定されると、ホルダ４に備えられた接続機構４００の接続端子４１０〜４７０と接触し電気的に接続される。さらに、接続機構４００の接続端子４１０〜４７０は、サブ制御基板５００上の端子群と接触して電気的に接続され、サブ制御基板５００の端子群は、サブ制御部（キャリッジ回路）５０と電気的に接続されている。これにより、インクカートリッジ１００がホルダ４に固定されると、回路基板の各端子２１０〜２７０はサブ制御部５０と電気的に接続される。
【００３４】
・プリンタの電気的構成：
図５および図６は、プリンタの電気的な構成を示す説明図である。図５は、主制御部４０とサブ制御部５０とプリンタに装着可能な全てのインクカートリッジ１００との全体に注目して描かれている。図６は、主制御部４０の機能構成とサブ制御部５０の機能構成が、一つのインクカートリッジ１００と共に描かれている。なお、本実施例におけるサブ制御部５０は、本発明におけるホスト回路に対応する。本実施例において、ホスト回路としてのサブ制御部５０は、データ記憶部としての記憶装置１３０に対して、電源を供給し、記憶装置１３０に対するアクセスの種類を示すコマンドを送付することにより、記憶装置１３０に対する所定のデータの書き込み、記憶装置１３０から所定のデータの読み出しを実行する（後述）。
【００３５】
各インクカートリッジ１００の記憶装置１３０には、互いに異なる８ビットのＩＤ番号（識別情報）が割り当てられている。図５に示されるように、サブ制御部５０からの配線に対し各インクカートリッジの記憶装置１３０は並列に接続されている（すなわち、サブ制御部５０に対しバス接続されている。）ため、サブ制御部５０から特定のインクカートリッジ１００の記憶装置１３０に対して読み出し／書き込みなどの処理を実行する場合には、主制御部４０とサブ制御部５０から各インクカートリッジを特定する必要がある。このため、ＩＤ番号を利用する。このＩＤ番号は、サブ制御部５０がアクセスすべき記憶装置１３０（インクカートリッジ１００）を指定するために使用される。
【００３６】
サブ制御部５０と各インクカートリッジ１００とを電気的に接続する配線は、サブ制御部５０とサブ制御基板５００の端子群をつなぐ配線、接続機構４００の接続端子４１０〜４７０、回路基板１２０の表側の端子群、回路基板１２０の端子群から記憶装置１３０とセンサ１１０とへの配線で構成される。サブ制御部５０と各インクカートリッジ１００とを電気的に接続する配線は、リセット信号線ＬＲ１、クロック信号線ＬＣ１、データ信号線ＬＤ１、第１の接地線ＬＣＳ、第１の電源線ＬＣＶ、第１のセンサ駆動信号線ＬＤＳＮ、第２のセンサ駆動信号線ＬＤＳＰを含む。
【００３７】
サブ制御部５０と記憶装置１３０との間のリセット信号線ＬＲ１は、サブ制御部５０から記憶装置１３０へリセット信号ＣＲＳＴを供給する導電線である。リセット信号は、サブ制御部５０が、記憶装置１３０のメモリ制御回路１３６（後述）を初期状態、もしくは、アクセスを受け付け可能なスタンバイ状態とするための信号である。サブ制御部５０からメモリ制御回路１３６に対してローレベルのリセット信号を供給すると、メモリ制御回路１３６は初期状態になる。サブ制御部５０と記憶装置１３０との間のクロック信号線ＬＣ１は、サブ制御部５０から記憶装置１３０へクロック信号ＣＳＣＫを供給する導電線である。サブ制御部５０と記憶装置１３０との間のデータ信号線ＬＤ１は、サブ制御部５０と記憶装置１３０との間で遣り取りされるデータ信号ＣＳＤＡを伝送する導電線である。データ信号線ＬＤ１は、図６に示すように、サブ制御部５０において、プルダウン抵抗Ｒ１を介して、接地電位ＣＶＳＳ電位（０Ｖ）と接続されている。この結果、特にサブ制御部５０と記憶装置１３０との間でデータ信号の遣り取りがされていないときには、データ信号線ＬＤ１の電位はローレベルに保持される。データ信号は、サブ制御部５０と記憶装置１３０との間で同期をとるために、前述のクロック信号に同期して送受信される。たとえば、クロック信号の立ち上がりまたは立ち下がり時が有効なデータとして送受信されるように、やりとりされる。これらの３本の配線ＬＲ１、ＬＣ１、ＬＤ１は、それぞれ、一つのサブ制御部５０側の端部と、インクカートリッジ１００の数に分岐したインクカートリッジ１００側の端部を有する配線である。つまり、３本の配線ＬＲ１、ＬＣ１、ＬＤ１に関して、サブ制御部５０に対して複数の記憶装置１３０はバス接続されている。リセット信号ＣＲＳＴ、データ信号ＣＳＤＡ、クロック信号ＣＳＣＫは、いずれも、ハイレベル（本実施例では、ＣＶＤＤ電位（３．３Ｖ））、または、ローレベル（本実施例では、ＣＶＳＳ電位（０Ｖ））のいずれかの値をとる２値信号である。以下では、ハイレベル信号を値「１」でも表し、ローレベル信号を値「０」でも表す。
【００３８】
第１の接地線ＬＣＳは、記憶装置１３０に接地電位ＣＶＳＳを供給する導電線であり、回路基板１２０の接地端子２１０を介して記憶装置１３０に電気的に接続される。第１の接地線ＬＣＳは、一つのサブ制御部５０側の端部と、インクカートリッジ１００の数に分岐したインクカートリッジ１００側の端部を有する配線である。接地電位ＣＶＳＳは、主制御部４０から第２の接地線ＬＳを介してサブ制御部５０に供給される接地電位ＶＳＳ（＝ＣＶＳＳ電位）と接続されており、ローレベル（０Ｖ）に設定される。
【００３９】
第１のセンサ駆動信号線ＬＤＳＮおよび第２のセンサ駆動信号線ＬＤＳＰは、センサ１１０の圧電素子に駆動電圧を印加すると共に、駆動電圧の印加を停止した後、圧電素子の圧電効果により発生する電圧をサブ制御部５０に伝送するための導電線である。第１のセンサ駆動信号線ＬＤＳＮおよび第２のセンサ駆動信号線ＬＤＳＰは、それぞれインクカートリッジ１００ごとに独立した複数の配線であり、一端がサブ制御部５０に電気的に接続され、他端が回路基板１２０の第１のセンサ駆動用端子２３０および第２のセンサ駆動用端子２７０にそれぞれ電気的に接続される。第１のセンサ駆動信号線ＬＤＳＮは、第１のセンサ駆動用端子２３０を介して、センサ１１０の圧電素子の一方の電極に電気的に接続され、第２のセンサ駆動信号線ＬＤＳＰは、第２のセンサ駆動用端子２７０を介して、センサ１１０の圧電素子の他方の電極に電気的に接続される。
【００４０】
第１の電源線ＬＣＶは、記憶装置１３０に記憶装置１３０の動作電圧となる電源電圧ＣＶＤＤを供給する導電線であり、回路基板１２０の電源端子２２０を介して記憶装置１３０に接続されている。第１の電源線ＬＣＶは、一つのサブ制御部５０側の端部と、インクカートリッジ１００の数に分岐したインクカートリッジ１００側の端部を有する配線である。記憶装置１３０の駆動に用いられるハイレベルの電源電圧ＣＶＤＤは、ローレベルの接地電位ＣＶＳＳ（０Ｖ）に対して、３．３Ｖ程度の電位が用いられる。もちろん、電源電圧ＣＶＤＤの電位レベルは、記憶装置１３０のプロセス世代などに応じて、異なる電位であって良く、例えば、１．５Ｖや２．０Ｖなどが用いられ得る。
【００４１】
主制御部４０とサブ制御部５０との間は、複数の配線で電気的に接続されている。複数の配線は、バスＢＳと、第２の電源線ＬＶと、第２の接地線ＬＳと、第３のセンサ駆動信号線ＬＤＳを含む。バスＢＳは、主制御部４０とサブ制御部５０との間のデータ通信に用いられる。第２の電源線ＬＶおよび第２の接地線ＬＳは、主制御部４０からサブ制御部５０に対して、それぞれ、電源電圧ＶＤＤおよび接地電位ＶＳＳを供給する導電線である。電源電圧ＶＤＤは、上述した記憶装置１３０に供給される電源電圧ＣＶＤＤと同レベル、例えば、接地電位ＶＳＳおよびＣＶＳＳ（０Ｖ）に対して、３．３Ｖ程度の電位が用いられる。もちろん、電源電圧ＶＤＤの電位レベルは、サブ制御部５０のロジックＩＣ部分のプロセス世代などに応じて、異なる電位であって良く、例えば、１．５Ｖや２．０Ｖなどが用いられ得る。第３のセンサ駆動信号線ＬＤＳは、最終的に各センサ１１０に印加されるセンサ駆動信号ＤＳ（後述）を主制御部４０からサブ制御部５０に供給する導電線である。
【００４２】
主制御部４０は、制御回路４８と、駆動信号生成回路４２と、図示しないＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどを備えている。ＲＯＭにはプリンタ２０を制御するための各種プログラムが記憶されている。
【００４３】
制御回路４８は、ＣＰＵ（中央制御装置）であり、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどのメモリと協働してプリンタ２０全体の制御を実行する。制御回路４８は、機能ブロックとして、インク残量判断部Ｍ１と、メモリアクセス部Ｍ２と、インク消費量推定部Ｍ３を備えている。
【００４４】
インク残量判断部Ｍ１は、サブ制御部５０および駆動信号生成回路４２を制御してインクカートリッジ１００のセンサ１１０を駆動し、インクカートリッジ１００内のインクが所定値以上であるか否かを判定する。メモリアクセス部Ｍ２は、サブ制御部５０を経由して、インクカートリッジ１００の記憶装置１３０にアクセスし、記憶装置１３０内に記憶された情報を読み出したり、記憶装置１３０内に記憶される情報を更新したりする。インク消費量推定部Ｍ３は、プリンタ２０の印刷実行状況に伴い印刷用紙に噴射されるドットをカウントし、そのカウント値とドット毎に消費されるインク量から印刷実行で消費されるインク量を推定する。また、ヘッドのクリーニング処理によって消費されるインク量を推定する。これに基づいて、インクカートリッジ１００が新しくプリンタ２０に装着されてから、そのインクカートリッジから消費したインク消費量の推定値の累計をカウントしている。
【００４５】
主制御部４０のＥＥＰＲＯＭには、センサを駆動するためのセンサ駆動信号ＤＳを示すデータが格納されている。駆動信号生成回路４２は、制御回路４８のインク残量判断部Ｍ１からの指示に従って、ＥＥＰＲＯＭからセンサ駆動信号ＤＳの波形を示すデータを読み出して、任意の波形を有するセンサ駆動信号ＤＳを生成する。センサ駆動信号ＤＳは、電源電圧ＣＶＤＤ（本実施例では、３．３Ｖ）より高い電位を含み、例えば、本実施例では、最大３６Ｖ程度の電位を含んでいる。具体的には、センサ駆動信号ＤＳは、最大３６Ｖの電圧を有する台形のパルス信号である。
【００４６】
なお、本実施例では、駆動信号生成回路４２は、さらに、印刷ヘッド５に供給されるヘッド駆動信号を生成することができる。すなわち、本実施例では、制御回路４８は、インク残量の判断を実行する際には、駆動信号生成回路４２にセンサ駆動信号を生成させ、印刷を実行する際には、駆動信号生成回路４２にヘッド駆動信号を生成させる。
【００４７】
サブ制御部５０は、ハード構成として、ＡＳＩＣ（Application Specific IC）を備える。ＡＳＩＣは、機能構成として、通信処理部５５と、センサ処理部５２とを備えている。
【００４８】
通信処理部５５は、リセット信号線ＬＲ１、データ信号線ＬＤ１、クロック信号線ＬＣ１を介して、インクカートリッジ１００の記憶装置１３０との通信処理を行う。また、通信処理部５５は、バスＢＳを介して、主制御部４０との通信処理を行う。通信処理部５５は、回路基板１２０の端子群のうち、所定の端子の電位を検出することにより、インクカートリッジ１００の回路基板１２０がプリンタ２０と電気的に接続されているか否か、つまり、インクカートリッジ１００がプリンタ２０に装着されているか否かを検出することができる。通信処理部５５は、インクカートリッジ１００の装着が検出されたことを主制御部４０に通知する。これにより主制御部４０は、各インクカートリッジ１００がカートリッジ搭載部に搭載されているか否かを判断することができる。
【００４９】
主制御部４０は、回路基板１２０がプリンタ２０と電気的に接続され、インクカートリッジ１００がプリンタ２０に装着されていると判定していれば、通信処理部５５を介して、所定のタイミングで装着されているインクカートリッジ１００の記憶装置１３０へのアクセスを実行する。
【００５０】
通信処理部５５は、ＡＳＩＣなどで構成されたロジック回路を含み、電源電圧ＶＤＤ（本実施例では、３．３Ｖ）で駆動される回路である。本実施形態のＡＳＩＣはメモリセル領域（ＳＲＡＭ５５１）部分とロジック領域とからなり、ロジック領域は、センサ用レジスタ５５２およびエラーコードレジスタ５５３を備えている。ＳＲＡＭ５５１は、通信処理部５５が処理を行う際、一時的にデータを保存するために用いるメモリで、例えば、主制御部４０から受け取ったデータや、センサ１１０や記憶装置１３０から受け取ったデータを一時的に保存している。ＳＲＡＭ５５１には、プリンタ２０の電源がＯＮになった後、後述する各インクカートリッジ１００の記憶装置１３０内の原データに対応する部分と、原データのミラーデータを反転したデータを格納するメモリ空間が確保されると共に、確保されたメモリ空間に記憶装置から読み出されたデータが格納される。すなわち、ＳＲＡＭ５５１内のメモリ空間には、１６ビットの原データ及び１６ビットの原データのミラーデータを反転したデータを、各記憶装置１３０のメモリセルアレイの行数分格納するメモリ領域が確保される。そして、確保されたメモリ空間には、各記憶装置のメモリセルアレイから読み出された原データとそのミラーデータの反転データが格納される。そして、そのメモリ領域に読み出された値は、印刷動作の実行に伴い（主制御部４０からの書き込みデータの送信や、記憶装置からの読み出しに伴い）更新される。エラーコードレジスタ５５３には、各記憶装置１３０の書き換え可能領域の各行につき、後述する通信エラーやメモリセルエラーが書き込まれる。
【００５１】
センサ用レジスタ５５２は、センサ処理部５２がセンサ処理の処理結果を書き込むためのレジスタである。センサ用レジスタ５５２は、各インクカートリッジについて用意されており、後述するセンサによるインク残量の判定結果を記録するために用いられる。
【００５２】
センサ処理部５２は、後述するセンサによるインク残量の判定処理（センサ処理）を実行する。センサ処理部５２は、切り換えスイッチを含んでいる。切換スイッチは、駆動信号生成回路４２から供給されたセンサ駆動信号ＤＳを、センサ処理の対象となっている１つのインクカートリッジ１００のセンサ１１０に対して、第１のセンサ駆動信号線ＬＤＳＮまたは第２のセンサ駆動信号線ＬＤＳＰのいずれかを介して供給するために用いられる。
【００５３】
次にインクカートリッジ１００の電気的構成について説明する。インクカートリッジ１００は、その電気的な構成要素として、記憶装置１３０とセンサ１１０を有している。
【００５４】
記憶装置１３０は、外部からアクセス先のアドレスを指定するアドレスデータを受けない記憶装置である。記憶装置１３０は、直接にアドレスデータの入力を受けることなく、外部から供給されるクロック信号とコマンドデータに応じて、アクセスするメモリセルを指定する制御が可能である。記憶装置１３０は、データ記憶部としての強誘電体メモリセルアレイ１３２と、メモリ制御回路１３６と、を含んでいる。図６において記憶装置１３０を示す破線上に白丸で示すように、記憶装置１３０には、プリント回路基板１２０の接地端子２１０と電気的に接続される接地端子と、電源端子２２０と電気的に接続される電源端子と、リセット端子２４０と電気的に接続されるリセット端子と、クロック端子２５０と電気的に接続されるクロック端子を備えている。
【００５５】
強誘電体メモリセルアレイ１３２は、強誘電体を記憶素子として用いる不揮発性の半導体メモリセルアレイであり、データの書き換えが可能な特性を有する記憶領域を提供する。
【００５６】
メモリ制御回路１３６は、サブ制御部５０による強誘電体メモリセルアレイ１３２に対するアクセス（読み出しおよび書き込み）を仲介する回路で、サブ制御部５０から送信される識別データやコマンドデータを解析する。さらに、メモリ制御回路１３６は、書き込み時にはサブ制御部５０から受信した書き込み対象データに基づき、強誘電体メモリセルアレイ１３２に書き込むデータを生成して書き込む。また、メモリ制御回路１３６は、読み出し時には、強誘電体メモリセルアレイ１３２から読み出したデータに基づき、サブ制御部５０に送信するデータを生成する。詳細は後述する。
【００５７】
メモリ制御回路１３６は、ＩＤ比較部Ｍ１１と、コマンド解釈部Ｍ１２と、アドレスカウンタＭ１３と、リード／ライト制御部Ｍ１４と、データ送受信部Ｍ１５と、カウンタ制御部Ｍ１６と、コピーデータ生成部Ｍ１７と、反転データ生成部Ｍ１８と、データ判定部Ｍ１９とを備えている。ＩＤ比較部Ｍ１１は、サブ制御部５０から送信されてくるＩＤデータと、記憶装置自身に割り当てられているＩＤ番号とを比較して、自身がアクセスの対象であるか否かを判断する。自身に割り当てられているＩＤ番号は、記憶装置１３０の初期化後、サブ制御部５０からアクセスが開始された時にアドレスカウンタＭ１３の出力に基づき選択されるワード線に接続されるメモリセルに記憶されている。ここでいうＩＤ番号は、サブ制御部５０に対しバス接続されている複数の記憶装置１３０の中から、サブ制御部５０がアクセス対象とする記憶装置１３０を識別するために使用される。このＩＤ番号は、例えば、インクカートリッジ１００に格納されているインクの色に応じて決まっている。コマンド解釈部Ｍ１２は、サブ制御部５０から送信されてくる通信開始データ（ＳＯＦ）、通信終了データ（ＥＯＦ）、コマンドデータを解釈して、サブ制御部５０からのアクセスの開始やアクセスの終了、アクセスの種類（読み出し、書き込み等）を判断する。アドレスカウンタＭ１３は、記憶装置１３０にローレベルのリセット信号ＣＲＳＴが入力されて記憶装置１３０が初期化されたときに、カウンタ値がリセットされる。リセットされたときのカウント値は、ＩＤ番号を記憶するメモリセルを選択するワード線を選択する値にセットされる。その後は、カウンタ制御部Ｍ１６からの制御に基づき、記憶装置１３０に入力されるクロックのうち、所定のクロックを順次カウントする。アドレスカウンタＭ１３のカウンタ値は、リード／ライト制御部Ｍ１４の制御によりメモリセルにアクセスするときに、アドレスカウンタＭ１３から、図示しないメモリセルアレイのアドレスデコーダに出力される。したがって、カウンタ値に対応してメモリセルアレイ１３２の所定の行（ワード線）を選択することができる。本実施例において、行は、アドレスカウンタＭ１３から出力されるカウンタ値に基づき、アドレスデコーダで選択される行を意味する。リード／ライト制御部Ｍ１４は、コマンド解釈部Ｍ１２によって解釈されたコマンドデータの内容（アクセスの種類）に従って、アドレスカウンタＭ１３により選択されるワード線に接続される強誘電体メモリセルアレイ１３２への行単位での一括書き込み、および、一括読み出しなどを実行する。リード／ライト制御部Ｍ１４は、図示しないレジスタを備え、後述する原データ、反転データ、ミラーデータを一時的に格納することができる。データ送受信部Ｍ１５は、リード／ライト制御部Ｍ１４の制御に従い、サブ制御部５０からデータ信号線ＬＤ１を介して送信されるデータ信号ＣＳＤＡをクロック信号ＣＳＣＫに同期して受信したり、クロック信号ＣＳＣＫに同期してデータ信号線ＬＤ１を介してデータ信号ＣＳＤＡを送信したりする。すなわち、データ送受信部Ｍ１５は、記憶装置１３０とサブ制御部５０との間で遣り取りされるデータ信号ＣＳＤＡの送受信の方向を設定する。なお、初期化後、サブ制御部５０から記憶装置１３０に対してアクセスが開始されるときには、データ送受信部Ｍ１５の送受信方向は、サブ制御部５０から送信されたデータ信号ＣＳＤＡを記憶装置１３０が受信する方向に設定され、メモリセルアレイ１３２から読み出されたデータが記憶装置１３０からサブ制御部５０に送信されないように設定される。複製データ生成部Ｍ１７は、後述する原データをコピーして、原データと同一量のミラーデータ（後述）を生成する。反転データ生成部Ｍ１８は、原データの各ビットの値を反転させ、原データと同一量の反転データ（後述）を生成する。データ判定部Ｍ１９は、後述する原データおよびミラーデータのパリティチェックや排他的論理和の算出を行い、データの整合性を判定する。カウンタ制御部Ｍ１６は、クロックカウンタを備える。記憶装置１３０が初期化された後、サブ制御部５０から記憶装置１３０に対するアクセスが開始された後に、記憶装置１３０に入力されるクロック信号ＣＳＣＫのクロック数をカウントすると共に、コマンド解釈部Ｍ１２のコマンド解釈の結果に基づき、所定のカウント値になるとアドレスカウンタＭ１３のカウンタ値をカウントアップ、もしくはカウントダウンする制御信号をアドレスカウンタＭ１３に出力する。なお、本実施例におけるデータ送受信部Ｍ１５は、請求項におけるデータ受信部およびデータ送信部に対応する。
【００５８】
図７は、記憶装置１３０の強誘電体メモリセルアレイ１３２のメモリマップを模式的に示す図である。図７において、強誘電体メモリセルアレイ１３２のメモリマップは、複数の行からなり、一つの行は３２ビットである。メモリセルアレイ１３２はアドレスカウンタの示す値によって選択される行順にシーケンシャルにアクセスされる。図７に示すメモリマップにおいて、シーケンシャルアクセスの順番は、行単位で上側から下側である。ここで、図７において、便宜的に、同じ行内のうち、より左側（Ｄ３１側）にあるメモリセルのことを上位のセルという。また、異なる行について、所定の行より上位の行とは、図７において所定の行より上側の行（行番号の小さい行）のことを示し、所定の行より下位の行とは、図７において所定の行より下側の行（行番号の大きい行）のことを示す。メモリマップに示される通り、メモリセルアレイ１３２は、識別情報領域と、書き換え可能領域と、読み出し専用領域と、制御領域を有する。識別情報領域は、Ａ０行目の３２ビットの記憶領域を有しており、上述したＩＤ番号の格納に用いられる。書き換え可能領域は、（ｍ−１）行（ｍは自然数：図７におけるＡ１行〜Ａｍ−１行）の記憶領域を有している。書き換え可能領域は、プリンタ２０のサブ制御部５０からデータの書き換えのためのアクセス対象となる領域である。読み出し専用領域は、ｎ−ｍ行（Ａｍ〜Ａｎ−１行）の記憶領域を有している。読み出し専用領域は、プリンタ２０のサブ制御部５０からデータの読み出しのみのアクセス対象となる領域である。制御領域は、読み出し専用領域の下位に用意されている。制御領域は、後述するインクリメントフラグ情報およびライトロックフラグ情報を格納する記憶領域である。メモリセルアレイ１３２のメモリマップの記憶領域の１行当たりの記憶容量は、３２ビットである。この１行は、アドレスカウンタＭ１３で選択される行（すなわちワード線）に対応するものである。１行のうち、上位１６ビットは、原データを書き込むための原データ領域である。ここで、原データは、後述する反転データおよびミラーデータの元となるデータである。以下では、原データを書き込むためのデータ領域を原データ領域とも呼ぶ。１行のうち、下位１６ビットは、上位１６ビットに書き込まれた原データの複製であるミラーデータを書き込むためのデータ領域である。以下では、ミラーデータを書き込むためのデータ領域をミラーデータ領域とも呼ぶ。図７において、左半分が原データ領域、右半分がミラーデータ領域である。逆に言えば、図７において、左半分の原データ領域に書き込まれているデータは原データであり、右半分のミラーデータ領域に書き込まれているデータはミラーデータである。通常時、すなわち、当該行にセルの不具合、書き込みエラーなどがない場合、各行において原データとミラーデータは、同一の内容となる。
【００５９】
識別情報領域と書き換え可能領域において、各行の原データ領域の上位１５ビットは、実データの格納に用いられ、最終ビット（１６ビット目）は、実データと関連付けられたパリティデータＰの格納に用いられる。ここで、本実施例における実データは、プリンタ２０の各種制御（例えば、印刷の実行、ユーザーインターフェースの制御）のために、プリンタ２０の主制御部４０が使用するデータである。本実施例における実データには、例えば、インク消費量を表すデータ、インクカートリッジの使用開始時などが含まれる。同様にして、ミラーデータ領域の上位１５ビットは、原データの実データのミラーデータの格納に用いられ、最終ビット（１６ビット目）は、原データの実データと関連付けられたパリティデータＰのミラーデータの格納に用いられる。パリティデータＰは、当該パリティデータＰと上位１５ビットからなる１６ビットのデータにおける「１」の数が常に奇数になるように、値「１」または「０」に設定される冗長ビットである。もちろん、パリティデータＰは、当該パリティデータと上位１５ビットからなる１６ビットのデータにおける「１」の数が常に偶数になるように、値「１」または「０」に設定されても良い。また、パリティデータＰに限らず、実データを冗長化した他の種類の冗長データが用いられても良い。
【００６０】
読み出し専用領域のｍ−ｎ行のうち、最終行（Ａｎ−１行）以外は実データの格納に用いられ、最終行はパリティデータの格納に用いられる。具体的には、最終行以外の行の実データの所定単位（例えば、８ビット、あるいは、１６ビット）ごとに１ビットのパリティデータが最終行の各ビットに割り当てられている。なお、図７において、「Ｐ」が記載されているセルはパリティデータＰが格納されるための１ビットの記憶領域を表している。
【００６１】
以上の説明から解るように、識別情報領域と書き換え可能領域において、原データは、実データと、当該実データに付加されたパリティデータである。また、読み出し専用領域うち、最終行以外の領域において、原データは、実データそのものである。また、読み出し専用領域うち、最終行において、原データは、パリティデータである。
【００６２】
書き換え可能領域には、例えば、インクの消費量情報や、インクカートリッジ１００の使用履歴情報など各種の情報が格納される。記憶装置１３０へのアクセスが開始された直後に、アドレスカウンタＭ１３の初期値にて選択される先頭の第１行（識別情報領域：Ａ０行）には、インクカートリッジ１００の種類（色）ごとに定められた上述したＩＤ番号（識別情報）が先頭セルから８ビット分格納される。ＩＤ番号が格納される領域は、図７において、細かいハッチングにより示されている。Ａ０行の原データのパリティビットのセルとＩＤ番号が格納されるセルを除いた残りのセルは、空領域となり０もしくは１の固定データが格納される。例えば、プリンタ２０に搭載されるインクカートリッジ１００の数がｎ種類である場合、ＩＤ番号は搭載されるインクカートリッジ１００の種類により異なるｎ種類の値をとる。書き換え可能領域の第１行（Ａ１行）には第１インク消費カウント値Ｘ（例えば、１０ビット分）が格納され、第２行（Ａ２行）には第２インク消費カウント値Ｙ（例えば、１０ビット分）が格納されている。第１インク消費カウント値Ｘは、例えば１０ビットの情報で、Ａ１行のパリティ情報のセルを除く１５ビットのうち、下位１０ビット分のセルに格納される。Ａ１行の残りの５ビットは空領域として常に１が記憶されるように、プリンタ２０側からデータが送信される。図７において、第１インク消費カウント値Ｘが格納される領域が粗いハッチングで示されている。第２インク消費カウント値Ｙは、例えば１０ビットの情報で、Ａ２行のパリティ情報のセルを除く１５ビットのうち、下位１０ビット分のセルに格納される。Ａ２行の残りの５ビットは空領域として常に１が記憶されるように、プリンタ２０側からデータが送信される。図７において、第２インク消費カウント値Ｙが格納される領域がクロスハッチングで示されている。第１インク消費カウント値Ｘおよび第２インク消費カウント値Ｙは、プリンタ２０においてインク消費量推定部Ｍ３によって推定されたインク消費量に基づいて求められたインクカートリッジ１００ごとの累積インク消費量を表す値である。また、書き換え可能領域の所定の行には、インクエンド情報Ｍが格納されている。インクエンド情報Ｍは、例えば、２ビットのデータであり、「０１」、「１０」、「１１」の３種類がある。「０１」は、そのインクカートリッジ１００のセンサ１１０により、インクの残量が第１のしきい値Ｖｒｅｆ１以下であることが検出されていない状態（以下、フル状態とも呼ぶ。）、すなわち、インクの残量が第１のしきい値Ｖｒｅｆ１より大きいことを示す。「１０」は、インクの残量が第１のしきい値Ｖｒｅｆ１以下であり、かつ、インク残量がインクエンドレベルよりも大きいこと（以下、ロー状態とも呼ぶ。）を示す（第１のしきい値Ｖｒｅｆ１＞インクエンドレベル）。インクの残量が第１のしきい値Ｖｒｅｆ１以下であることは、そのインクカートリッジ１００のセンサ１１０によって検出される。「１１」は、インク残量がインクエンドレベル以下である状態（以下、エンド状態とも呼ぶ。）を示す。インクエンドレベルとは、そのままプリンタ２０が印刷を続けると、インク切れにより印刷ヘッドユニット６０に空気が混入するおそれがあるため、インクカートリッジ１００の交換が行われることが好ましいインク残量のレベルである。例えば、第１のしきい値Ｖｒｅｆ１は、１．５ｇ（グラム）程度のインク残量に設定され、インクエンドレベルは、０．８ｇ程度のインク残量に設定される。第１インク消費カウント値Ｘ、第２インク消費カウント値Ｙ、インクエンド情報Ｍに関する処理については、さらに、後述する。
【００６３】
読み出し専用領域には、例えば、インクカートリッジ１００の製造メーカーを示すメーカー情報、インクカートリッジの製造年月日、インクカートリッジの容量、インクカートリッジの種類などが格納される。制御領域には、インクリメントフラグ情報およびライトロックフラグ情報が格納されている。
【００６４】
インクリメントフラグ情報は、メモリマップ上の各行ごとに１ビット用意される。対応するインクリメントフラグ情報が「１」に設定されている行は、当該行に既に格納されている数値より大きい数値に当該行を書き換えること（インクリメント書き換え）が許容され、当該行に既に格納されている数値より小さい数値に当該行を書き換えること（デクリメント書き換え）が許容されない領域となる。対応するインクリメントフラグ情報が「０」に設定されている行は、自由に書き換えが許容される。インクリメント書き換えのみを許容するか自由な書き換えを許容するかは、メモリ制御回路１３６のリード／ライト制御部Ｍ１４がインクリメントフラグ情報を参照して判断する。具体的には、上述した第１インク消費カウント値Ｘおよび第２インク消費カウント値Ｙが記録されるＡ１行およびＡ２行は、対応するインクリメントフラグ情報が「１」に設定されている。第１インク消費カウント値Ｘおよび第２インク消費カウント値Ｙのプリンタ２０による更新は、増加する方向以外に考えにくいからである。これによって、Ａ１行およびＡ２行に対する誤った書き込みを抑制することができる。以下では、Ａ１行およびＡ２行のように、対応するインクリメントフラグ情報が「１」に設定されている記憶領域をインクリメント領域とも呼ぶ。なお、行単位ではなく、原データ１６ビットの単位で、データの書き換えがインクリメント書き換えである場合、その行への書き換えを許可するものであってもよい。また、インク消費量に替えて、インク残量が記憶される場合には、フラグ値により、デクリメント書き換えのみを許可するか、自由な書き換えを許可するかを制御するものとしてもよい。
【００６５】
ライトロックフラグ情報は、識別情報領域、書き換え可能領域及び読み出し専用領域の各行ごとに１ビット用意される。対応するライトロックフラグ情報が「１」に設定されている行は、外部からのアクセスによる書き換えが許容されない領域となる。対応するライトロックフラグ情報が「０」に設定されている行は、外部からのアクセスによる書き換えが許容される。書き換えを許容するか否かは、メモリ制御回路１３６のリード／ライト制御部Ｍ１４がライトロックフラグ情報を参照して判断する。書き換え可能領域であるＡ１〜Ａｍ−１行は、工場において、対応するライトロックフラグ情報が「０」に設定された状態で出荷され、プリンタ２０の通信処理部５５によるデータの消去、書き込みが許容される。これに対して、識別情報領域であるＡ０行目、および、読み出し専用領域であるＡｍ〜Ａｎ行は、工場において、対応するライトロックフラグ情報が「１」に設定された状態で出荷され、プリンタ２０の通信処理部５５によるデータの消去、書き込みが許容されない。このようなライトロックフラグ情報が「１」に設定されている記憶領域をライトロック領域とも呼ぶ。
【００６６】
センサ１１０は、詳細な図示は省略するが、インク供給部付近のインク流路の一部を形成するキャビティ（共振部）と、キャビティの壁面の一部を形成する振動板と、振動板上に配置された圧電素子とを備えている。プリンタ２０のセンサ処理部５２は、センサ駆動用端子２３０、２７０を介して圧電素子にセンサ駆動信号ＤＳを与えることにより、圧電素子を介して振動板を振動させることができる。その後、振動板の残留振動の周波数を有する応答信号ＲＳを圧電素子から受け取ることにより、センサ処理部５２はキャビティにおけるインクの有無を検出することができる。具体的には、本体１０１に収容されていたインクが消費されることにより、インクが満たされた状態から大気が満たされた状態に、キャビティの内部の状態が変化すると、振動板の残留振動の周波数が変化する。かかる周波数の変化が応答信号ＲＳの周波数の変化として表れる。センサ処理部５２は、応答信号ＲＳの周波数を測定することにより、キャビティにおけるインクの有無を検出することができる。キャビティにおけるインクが「無し」と検出されることは、本体１０１に収容されたインクの残量が第１のしきい値Ｖｒｅｆ１（キャビティより下流側に残留するインク量に対応する）以下であることを意味する。キャビティにおけるインクが「有り」と検出されることは、本体１０１に収容されたインクの残量が第１のしきい値Ｖｒｅｆ１より大きいことを意味する。
【００６７】
・記憶装置からの読み出し処理
図８は、プリンタ２０のサブ制御部５０が実行する記憶装置１３０からの読み出し処理の処理ルーチンを示すフローチャートである。図９は、記憶装置１３０からの読み出し処理において、プリンタ２０の通信処理部５５と記憶装置１３０のメモリ制御回路１３６との間で遣り取りされる信号を模式的に示すタイミングチャートである。図９には、電源電圧ＣＶＤＤと、リセット信号ＣＲＳＴと、クロック信号ＣＳＣＫと、データ信号ＣＳＤＡの一例とが示されている。電源電圧ＣＶＤＤは、サブ制御部５０と記憶装置１３０との間を接続する第１の電源線ＬＣＶ上に現れる信号で、サブ制御部５０から記憶装置１３０に供給される。リセット信号ＣＲＳＴは、サブ制御部５０と記憶装置１３０との間を接続するリセット信号線ＬＲ１上に現れる信号で、サブ制御部５０から記憶装置１３０に供給される。クロック信号ＣＳＣＫは、サブ制御部５０と記憶装置１３０との間を接続するクロック信号線ＬＣ１上に現れる信号で、サブ制御部５０から記憶装置１３０に供給される。データ信号ＣＳＤＡは、サブ制御部５０と記憶装置１３０との間を接続するデータ信号線ＬＤ１上に現れる信号である。図９には、さらに、データ信号ＣＳＤＡのデータ方向が示されている。右向きの矢印は、サブ制御部５０が送信側で、記憶装置１３０が受信側であることを表す。左向きの矢印は、サブ制御部５０が受信側で、記憶装置１３０が送信側であることを表す。本実施例では、記憶装置１３０は、サブ制御部５０から供給されるクロック信号ＣＳＣＫの立ち上がりに同期してデータを送受信する。クロック信号ＣＳＣＫの立ち上がりの時の、記憶装置１３０のデータ端子のデータ信号のレベルを、送受信すべき有効な値としてデータを送受信している。図１０は、メモリ側において、メモリ制御回路１３６が実行する処理の処理ルーチンを示すフローチャートである。
【００６８】
プリンタ２０の主制御部４０は、サブ制御部５０にバスＢＳを介して、インクカートリッジ１００の記憶装置１３０からの読み出しを指示する読み出しコマンドを送信する。通信処理部５５は、第１の電源線ＬＣＶを介して、各インクカートリッジ１００に電源電圧ＣＶＤＤを供給する。すなわち、各インクカートリッジ１００の記憶装置１３０に動作電圧を供給し、記憶装置１３０を動作可能な状態にする。電源電圧ＣＶＤＤを供給後、ローレベルのリセット信号が供給され、記憶装置１３０が初期化される。リセット信号は、前回のアクセスの終了時にローレベルにされたままになっているため、記憶装置１３０に電源電圧ＣＶＤＤが供給される前からローレベルになっている。サブ制御部５０の通信処理部５５は、読み出しコマンドを受け取ると、図８のフローチャートに示す読み出し処理を開始する。
【００６９】
読み出し処理が開始されると、通信処理部５５は、リセット信号ＣＲＳＴをローレベルからハイレベルに遷移させるとともに、所定周波数のクロック信号ＣＳＣＫを送信する（図９）。リセット信号ＣＲＳＴがローレベルからハイレベルになると、記憶装置１３０は通信処理部５５からのデータ信号ＣＳＤＡを受け付けるスタンバイ状態になる。
【００７０】
通信処理部５５は、まず、データ信号ＣＳＤＡとして、ＳＯＦ（Start Of Frame）データを送信する（図８：ステップＳ１０２、図９）。ＳＯＦデータは、所定の波形を有する８ビットのデータ信号であり、クロック信号ＣＳＣＫと同期して送信される。これは、記憶装置１３０に対し通信の開始を通知するためのものである。
【００７１】
通信処理部５５は、ＳＯＦデータに続いて、オペレーションコードを送信する。オペレーションコードは、識別データとコマンドデータが連続したデータである。コマンドデータは、記憶装置１３０に対して、アクセスの種類（書き込み、読み出しなど）を伝えるためのデータである。通信処理部５５は、識別データをデータ信号ＣＳＤＡとして送信する（図８：ステップＳ１０４）。識別データは、読み出し対象とすべきインクカートリッジ１００の記憶装置１３０を指定する識別情報であり、原識別データＩＤ（８ビット）と反転識別データ／ＩＤ（８ｂｉｔ）とを含む（図９）。ここで、反転データは、原データと同一量（同一ビット数）のデータであり、原データの各ビットの値を反転させたデータである。例えば、原データのｍ（ｍは自然数）番目の値が「１」である場合、反転データのｍ番目の値は「０」となり、原データのｍ番目の値が「０」である場合、反転データのｍ番目の値は「１」となる。以下では、原データを記号Ａで表す場合、その反転データを先頭に／（スラッシュ記号）を付して／Ａとも表す。例えば、原データＡ＝（０１００１００１）である場合、反転データ／Ａ＝（１０１１０１１０）である。反転識別データは、原識別データに基づいて主制御部４０もしくは通信処理部５５によって生成される。このように、識別データを２重化することにより、処理の対象ではないインクカートリッジ１００の記憶装置１３０が誤って動作することを抑制することができる。
【００７２】
通信処理部５５は、識別データに続いて、コマンドデータをデータ信号ＣＳＤＡとして送信する（図８：ステップＳ１０６）。コマンドデータは、原コマンドデータＣＭ（８ビット）と反転コマンドデータ／ＣＭ（８ビット）とを含む（図９）。本処理は、記憶装置１３０からサブ制御部５０への読み出し処理であるので、本処理で送信されるコマンドデータは、読み出し処理であることを表すコマンド（リードコマンド）である。なお、原コマンドデータＣＭは、８ビットのうち上位４ビットと下位４ビットは、互いに反転した関係にある。例えば、原コマンドデータＣＭの上位４ビットが「０１１０」である場合には、原コマンドデータＣＭの下位４ビットは「１００１」であり、反転コマンドデータ／ＣＭは「１００１０１１０」である。反転コマンドデータは、原コマンドデータに基づいて主制御部４０もしくは通信処理部５５によって生成される。このようにコマンドデータを多重化することにより、記憶装置１３０の誤動作を抑制することができる。
【００７３】
通信処理部５５は、コマンドデータの送信を終了した次のクロック信号ＣＳＣＫの立ち上がりに同期して、記憶装置１３０から送信されてくる読み出しデータの受信を開始する。通信処理部５５は、記憶装置１３０の行単位分の読み出しデータを受信する。詳細に説明すると、通信処理部５５は、８ビット×８＝６４ビット分の単位読み出しデータを、クロック信号ＣＳＣＫの立ち上がりに同期して、シーケンシャルに１ビットずつ受信する（図８：ステップＳ１０８、図９）。６４ビットの単位読み出しデータは、原データ上位８ビットＵＤｎ（ｎは自然数）と、原データ上位８ビットＵＤｎの反転データである反転原データ上位８ビット／ＵＤｎと、原データ下位８ビットＬＤｎと、原データ下位８ビットＬＤｎの反転データである反転原データ下位８ビット／ＬＤｎと、原データ上位８ビットＵＤｎのミラーデータであるミラーデータ上位８ビットＵｄｎと、ミラーデータ上位８ビットＵｄｎの反転データである反転ミラーデータ上位８ビット／Ｕｄｎと、原データ下位８ビットＬＤｎのミラーデータであるミラーデータ下位８ビットＬｄｎと、ミラーデータ下位８ビットＬｄｎの反転データである反転ミラーデータ下位８ビット／Ｌｄｎである（図９）。
【００７４】
原データ上位８ビットＵＤｎを上位ビットとし、原データ下位８ビットＬＤｎを下位ビットとする１６ビットデータを原データＤｎとも呼ぶ。反転原データ上位８ビット／ＵＤｎを上位ビットとし、反転原データ下位８ビット／ＬＤｎを下位ビットとする１６ビットデータを反転データ／Ｄｎとも呼ぶ。ミラーデータ上位８ビットＵｄｎを上位ビットとし、ミラーデータ下位８ビットＬｄｎを下位ビットとする１６ビットデータをミラーデータｄｎとも呼ぶ。反転ミラーデータ上位８ビット／Ｕｄｎを上位ビットとし、反転ミラーデータ下位８ビット／Ｌｄｎを下位ビットとする１６ビットデータを、反転ミラーデータ／ｄｎとも呼ぶ。すなわち、単位読み出しデータは、原データＤｎと、反転データ／Ｄｎと、ミラーデータｄｎと、反転ミラーデータ／ｄｎからなるデータと言うことができる。最終的には、単位読み出しデータの受信をｎ回繰り返すことにより、サブ制御部５０の通信処理部５５は、読み出すべき全てのデータを受信する（後述）。
【００７５】
単位読み出しデータを受信すると、通信処理部５５は、図示しないレジスタに単位読み出しデータを一時的に格納し、以下に説明する処理を実行する。通信処理部５５は、まず、単位読み出しデータのうちの、原データＤｎのｍ（ｍは１以上１６以下の整数）番目の値と、反転ミラーデータ／ｄｎのｍ番目の値との排他的論理和が、全てのｍについて真「１」であるか否かを判定する（図８：ステップＳ１１０）。排他的論理和は、比較対象の第１のビットが「０」で第２のビットが「１」、あるいは、第１のビットが「１」で第２のビットが「０」である場合に真「１」となり、比較対象の第１のビットが「１」で第２のビットが「１」、あるいは、第１のビットが「０」で第２のビットが「０」である場合に偽「０」となる。排他的論理和の演算の出力結果が、１６ビット全てについて真、すなわち、１１１１１１１１１１１１１１１１＝ＦＦＦＦ（以降、１６進表記でＦＦＦＦという。）である場合には（図８：ステップＳ１１０：ＹＥＳ）、通信処理部５５は、通信状態、および、読み出し元のメモリセルが正常であると判断し、原データＤｎと、反転ミラーデータ／ｄｎをＳＲＡＭ５５１に確保されたメモリ領域（上述）に格納する（図８：ステップＳ１２０）。
【００７６】
一方、排他的論理和の演算の出力結果が、１６ビットのいずれかにおいて偽「０」、すなわち、ＦＦＦＦでない場合には（図８：ステップＳ１１０：ＮＯ）、通信処理部５５は、原データＤｎのｍ番目の値と反転データ／Ｄｎのｍ番目の値との排他的論理和が、全てのｍについて真「１」であるか否かを判定する（図８：ステップＳ１１２）。排他的論理和の演算の出力結果が、ＦＦＦＦである場合には（図８：ステップＳ１１２：ＹＥＳ）、通信処理部５５は、ミラーデータｄｎのｍ番目の値と反転ミラーデータ／ｄｎのｍ番目の値との排他的論理和が、全てのｍについて真「１」であるか否かを判定する（ステップＳ１１４）。原データＤｎのｍ番目の値と反転データ／Ｄｎのｍ番目の値との排他的論理和がＦＦＦＦでない場合（図８：ステップＳ１１２：ＮＯ）、あるいは、ミラーデータｄｎのｍ番目の値と反転ミラーデータ／ｄｎのｍ番目の値との排他的論理和がＦＦＦＦでない場合には（図８：ステップＳ１１４：ＮＯ）、通信処理部５５は、通信エラーであると判断し、原データＤｎと、反転ミラーデータ／ｄｎをＳＲＡＭ５５１に確保されたメモリ領域に格納すると共に、通信エラーを示す所定の通信エラーコードを通信処理部５５内のエラーコードレジスタ５５３に格納し（図８：ステップＳ１１８）、所定のエラー処理を行って（ステップＳ１２４）、処理を終了する。エラーコードレジスタ５５３には、原データの記憶装置からの送信で通信エラーが発生しているのか（Ｓ１１２およびＳ１１４のＮＯに対応）、ミラーデータの記憶装置からの送信で通信エラーが発生しているのか（Ｓ１１４のＹＥＳに対応）かの情報を含めて格納してもよい。所定のエラー処理は、例えば、主制御部４０に対して、通信エラーを通知しても良いし、読み出し処理が終了したことを通知しても良い。また、所定のエラー処理は省略しても良い。主制御部４０は、ＳＲＡＭ５５１に格納された通信エラーコードを参照することにより、通信エラーの発生を認識することができる。原データもしくはミラーデータのいずれで通信エラーが発生していることが認識できれば、通信エラーが発生していないほうのデータを主制御部４０で実行する処理に利用すればよい。
【００７７】
また、原データＤｎのｍ番目の値と反転データ／Ｄｎのｍ番目の値との排他的論理和がＦＦＦＦである場合（図８：ステップＳ１１２：ＹＥＳ）、かつ、ミラーデータｄｎのｍ番目の値と反転ミラーデータ／ｄｎのｍ番目の値との排他的論理和がＦＦＦＦである場合には（図８：ステップＳ１１４：ＹＥＳ）、記憶装置１３０の原データ領域に記憶されていたデータとミラーデータ領域に記憶されていたデータの整合性がとれていない可能性が高いため、通信処理部５５は、記憶装置１３０のメモリのセルエラーであると判断し、原データＤｎと、反転ミラーデータ／ｄｎをＳＲＡＭ５５１に確保されたメモリ領域に格納すると共に、セルエラーを示す所定のセルエラーコードを、通信処理部５５のエラーコードレジスタ５５３に格納する（図８：ステップＳ１１６）。セルエラーは、処理対象の原データＤｎを格納していたメモリセル、または、処理対象のミラーデータｄｎを格納していたメモリセルのいずれかにおいて、メモリセル自体が壊れており、格納された情報を正しく記憶できない状態となっている不具合である。
【００７８】
ステップＳ１２０またはステップＳ１１６を実行すると、通信処理部５５は、読み出すべきデータを全て読み出したか否かを判断する（図８：ステップＳ１２２）。読み出すべきデータを全て読み出した場合には（図８：ステップＳ１２２：ＹＥＳ）、通信処理部５５は、読み出し処理を終了する。通信処理部５５は、図９に示すように読み出し処理を終了すると、リセット信号ＣＲＳＴをハイレベルからローレベルに変更すると共に、クロック信号ＣＳＣＫの供給を停止する。通信処理部５５は、クロック信号ＣＳＣＫの供給を停止すると、続いて、電源電圧ＣＶＤＤの供給を停止する。読み出すべきデータが全て読み出されていない場合には（図８：ステップＳ１２２：ＮＯ）、ステップＳ１０８に戻って、次の単位読み出しデータについて、上述した処理を繰り返す。例えば、１番目の単位読み出しデータＤ１、／Ｄ１、ｄ１、／ｄ１について上述の処理を行った次には、２番目の単位読み出しデータＤ２、／Ｄ２、ｄ２、／ｄ２について上述の処理を行う。本実施例では、Ａ１行目の読み出しが実行された後、Ａ２行目の読み出しが実行される。主制御部４０が読み出したい情報が記憶されている行の情報が読み出されるまで読み出しが繰り返される。
【００７９】
次に、上述したプリンタ２０側における記憶装置１３０からの読み出し処理に対応して記憶装置１３０側で行われる処理（記憶装置側処理）について、説明する。オペレーションコードを受信し、コマンドデータの種別（アクセスの種類）を判定するところまでは、記憶装置１３０で実行される処理は同じであるため、読み出し処理の場合に限らず、他の処理（例えば、書き込み処理）の場合も含めて説明する。記憶装置１３０は、サブ制御部５０からの電源電圧ＣＶＤＤの入力を受けて、起動する。記憶装置１３０は、ローレベルのリセット信号ＣＲＳＴの入力で自身を初期化する。電源電圧ＣＶＤＤの供給を受けた後、リセット信号ＣＲＳＴはローであるため、（図９）記憶装置１３０は、初期化状態となっており、記憶装置側処理を開始する。
【００８０】
記憶装置１３０の初期化が実行されると、アドレスカウンタＭ１３は初期化時の初期値にセットされ、各種レジスタも初期値にリセットされる。さらに、記憶装置１３０のデータ送受信部Ｍ１５は、データ端子を介して遣り取りされるデータの送受信方向を、サブ制御部５０から記憶装置１３０がデータを受信する方向に設定する。リード／ライト制御部Ｍ１４は、強誘電体メモリセルアレイ１３２とのデータ転送方向をデータ読み出し方向とする。
【００８１】
図１０に示すように、記憶装置側処理が開始されると、記憶装置１３０のメモリ制御回路１３６は、データ信号ＣＳＤＡとして、ＳＯＦデータを受信する（図１０：ステップＳ２１０）。メモリ制御回路１３６は、ＳＯＦデータに続いて、識別データを受信する（図１０：ステップＳ２２０）。識別データを受信すると、ＩＤ比較部Ｍ１１は、まず、受信された識別データが正常であるか否かを判定する（ステップＳ２２５）。具体的には、ＩＤ比較部Ｍ１１は、受信した識別データに含まれる原識別データと反転識別データについて、１ビットずつ論理的排他和をとり、すべての値が１となるかを判定する。すなわち、受信した識別データに通信エラーがないかを判定する。通信エラーが無い場合に、受信された識別データは、正常であると判断され、通信エラーがある場合に、受信された識別データは正常でないと判断される。ＩＤ比較部Ｍ１１は、受信された識別データが正常でないと判断された場合には（図１０：ステップＳ２２５：ＮＯ）、なにも処理を行わずに終了する。
【００８２】
一方、ＩＤ比較部Ｍ１１は、受信された識別データが正常であると判断された場合には（ステップＳ２２５：ＹＥＳ）、記憶装置１３０自身に割り当てられたＩＤ番号（識別情報）と、受信された識別データが一致するか否かを判断する（図１０：ステップＳ２３０）。このとき、リード／ライト制御部Ｍ１４は、初期化によりアドレスカウンタＭ１３がＡ０行を選択しているため、Ａ０行に格納されているＩＤ番号（識別情報）を読み出す。ＩＤ比較部Ｍ１１は、リード／ライト制御部Ｍ１４が読み出した記憶領域の１行目（図７：Ａ０行）の自身に割り当てられたＩＤ番号（識別情報）を受け取り、記憶装置自身に割り当てられたＩＤ番号（識別情報）と、通信処理部５５から送信された識別データに含まれる原識別データとを１ビットずつ比較する。自身に割り当てられたＩＤ番号（識別情報）と受信された原識別データとが一致しない場合には、ＩＤ比較部Ｍ１１は、自身に割り当てられたＩＤ番号（識別情報）と、受信された識別データが一致しないと判断する。
【００８３】
ＩＤ比較部Ｍ１１が自身に割り当てられたＩＤ番号（識別情報）と、受信された識別データが一致しないと判断すると（図１０：ステップＳ２３０：ＮＯ）、メモリ制御回路１３６は何も処理を行なわずに終了する。ＩＤ比較部Ｍ１１が自身に割り当てられたＩＤ番号（識別情報）と、受信された識別データが一致すると判断すると（図１０：ステップＳ２３０：ＹＥＳ）、メモリ制御回路１３６は、データ信号ＣＳＤＡとして、識別データに続いて送信されてくるコマンドデータを受信する（図１０：ステップＳ２４０）。コマンドデータを受信すると、メモリ制御回路１３６のコマンド解釈部Ｍ１２は、まず、受信されたコマンドデータが正常であるか否かを判定する（ステップＳ２４５）。具体的には、コマンド解釈部Ｍ１２は、受信したコマンドデータに含まれる原コマンドデータの上位４ビットと下位４ビットが相互に反転データになっているか否かを判断する。さらに、コマンド解釈部Ｍ１２は、受信したコマンドデータに含まれる反転コマンドデータの上位４ビットと下位４ビットが相互に反転データになっているか否かを判断する。さらに、コマンド解釈部Ｍ１２は、原コマンドデータと反転コマンドデータについて、１ビットずつ排他的論理和をとり、すべての値が１となるかを判断する。この結果、原コマンドデータの上位４ビットと下位４ビットが相互に反転データとなっており、かつ、反転コマンドデータの上位４ビットと下位４ビットが相互に反転データになっており、かつ、原コマンドデータと反転コマンドデータの排他的論理和が全てのビットで１である場合には、コマンド解釈部Ｍ１２は、受信されたコマンドデータが正常である（通信エラーがない）と判定する。一方、原コマンドデータの上位４ビットと下位４ビットが相互に反転データとなっていない、または、反転コマンドデータの上位４ビットと下位４ビットが相互に反転データになっていない、または、原コマンドデータと反転コマンドデータの排他的論理和がいずれかのビットで１でない場合には、コマンド解釈部Ｍ１２は、受信されたコマンドデータが正常でない（通信エラーがある）と判定する。
【００８４】
コマンドデータが正常でないと判定された場合には（ステップＳ２４５：ＮＯ）、メモリ制御回路１３６は処理を終了する。一方、コマンドデータが正常であると判定された場合には（ステップＳ２４５：ＹＥＳ）、メモリ制御回路１３６のコマンド解釈部Ｍ１２は、受信されたコマンドデータを解釈して、コマンドの種別（アクセスの種類）を判定する（図１０：ステップＳ２５０）。ここで、コマンドデータの種別は、少なくとも書き込みコマンドと、読み出しコマンドと、ライトロックコマンドを含む。書き込みコマンドは、強誘電体メモリアレイ１３２へのデータの書き込みを指示するコマンドである。読み出しコマンドは、強誘電体メモリアレイ１３２からのデータの読み出しを指示するコマンドである。ライトロックコマンドは、後述する記憶装置側のライトロック処理の実行を指示するコマンドで、強誘電体メモリセルアレイ１３２の所定行について、通信処理部５５からの書き込みを禁止するために、その行が書き込み禁止行であることを示すライトロックフラグを制御領域に書き込むコマンドである。
【００８５】
コマンド種別判定の結果、記憶装置１３０へのコマンドのいずれにも該当しない場合には、コマンド解釈部Ｍ１２は、コマンドデータを解釈不能であると判断する。コマンド解釈部Ｍ１２がコマンドデータを解釈不能と判断すると、メモリ制御回路１３６は終了へ移行し何もしない（図示省略）。
【００８６】
コマンド解釈部Ｍ１２は、コマンドデータが示すコマンドが読み出しコマンドであると判断すると、メモリ制御回路１３６は記憶装置側の読み出し処理を実行する（図１０：ステップＳ２６０）。コマンド解釈部Ｍ１２は、コマンドデータが示すコマンドが書き込みコマンドであると判断すると、メモリ制御回路１３６は記憶装置側の書き込み処理を実行する（図１０：ステップＳ２８０）。コマンド解釈部Ｍ１２は、コマンドデータが示すコマンドがライトロックコマンドであると判断すると、メモリ制御回路１３６は記憶装置側のライトロック処理を実行する（図１０：ステップＳ２７０）。図８に示すプリンタ２０側の読み出し処理を通信処理部５５が実行している場合には、読み出しコマンドがコマンドデータとしてメモリ制御回路１３６によって受信されるので、通信エラーなどが発生していなければ、コマンド解釈部Ｍ１２は、コマンドデータが示すコマンドが読み出しコマンドであると判断し、メモリ制御回路１３６は記憶装置側の読み出し処理を実行することになる。なお、図１０に示すフローチャートの各ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行され得る。例えば、メモリ制御回路１３６は、識別データの一致を確認した後、識別データが正常かどうかを判断しても良いし、識別データが正常かどうかを判断しつつ、並行してコマンドデータを受信しても良い。
【００８７】
図１１は、記憶装置側の読み出し処理（図１０：ステップＳ２６０）の処理ルーチンを示すフローチャートである。メモリ制御回路１３６のリード／ライト制御部Ｍ１４は、アドレスカウンタＭ１３の出力により選択されるアドレスに従って強誘電体メモリセルアレイ１３２からデータを読み出し、データ信号ＣＳＤＡとして通信処理部５５に送信していく。オペレーションコードを受信した後、コマンドデータが示すコマンドが読み出しであった場合、データ送受信部Ｍ１５は、データ端子を介して遣り取りされるデータの送受信方向を、記憶装置１３０からサブ制御部５０へデータを送信する方向に設定する。さらに、コマンドデータが示すコマンドが読み出しであった場合、カウンタ制御部Ｍ１６は、読み出し対象の最初の行がＡ１行を指定するように、アドレスカウンタＭ１３に制御信号を供給する。その後、リード／ライト制御部Ｍ１４は、アドレスカウンタＭ１３のカウント値の指定するアドレスに基づき、強誘電体メモリアレイ１３２から１行（３２ビット）ずつ、図示しないレジスタにデータを読み出す（図１１：ステップＳ２６０２）。最初に読み出される行は、図７に示すＡ１行である。
【００８８】
データ送受信部Ｍ１５は、まず、レジスタに読み出した３２ビットのうち、上位８ビットを上述した原データ上位８ビットＵＤｎとしてサブ制御部５０に送信する（図１１：ステップＳ２６０４）。続いて、反転データ生成部Ｍ１８は、原データ上位８ビットＵＤｎの各ビットを反転させて、反転原データ上位８ビット／ＵＤｎを生成する。そして、データ送受信部Ｍ１５は、生成された反転原データ上位８ビット／ＵＤｎをサブ制御部５０に送信する（図１１：ステップＳ２６０６）。続いて、データ送受信部Ｍ１５は、レジスタに読み出した３２ビットのうち、９ビット目〜１６ビット目までの８ビットを上述した原データ下位８ビットＬＤｎとしてサブ制御部５０に送信する（図１１：ステップＳ２６０８）。続いて、反転データ生成部Ｍ１８は、原データ下位８ビットＬＤｎの各ビットを反転させて反転原データ下位８ビット／ＬＤｎを生成する。そして、データ送受信部Ｍ１５は、生成された反転原データ下位８ビット／ＬＤｎをサブ制御部５０に送信する（図１１：ステップＳ２６１０）。続いて、データ送受信部Ｍ１５は、レジスタに読み出した３２ビットのうち、１７ビット目〜２４ビット目までの８ビットを上述したミラーデータ上位８ビットＵｄｎとしてサブ制御部５０に送信する（図１１：ステップＳ２６１２）。続いて、反転データ生成部Ｍ１８は、ミラーデータ上位８ビットＵｄｎの各ビットを反転させて反転ミラーデータ上位８ビット／Ｕｄｎを生成する。そして、データ送受信部Ｍ１５は、生成された反転ミラーデータ上位８ビット／Ｕｄｎをサブ制御部５０に送信する（図１１：ステップＳ２６１４）。続いて、データ送受信部Ｍ１５は、レジスタに読み出した３２ビットのうち、２５ビット目〜３２ビット目までの８ビットを上述したミラーデータ下位８ビットＬｄｎとしてサブ制御部５０に送信する（図１１：ステップＳ２６１６）。続いて、反転データ生成部Ｍ１８は、ミラーデータ下位８ビットＬｄｎの各ビットを反転させて反転ミラーデータ下位８ビット／Ｌｄｎを生成する。そして、データ送受信部Ｍ１５は、生成された反転ミラーデータ下位８ビット／Ｌｄｎをサブ制御部５０に送信する（図１１：ステップＳ２６１８）。
【００８９】
レジスタに読み出した３２ビットの送信を終えると、メモリ制御回路１３６は、全データの送信が終了していない場合には（図１１：ステップＳ２６２０：ＮＯ）、ステップＳ２６０２に戻って、強誘電体メモリアレイ１３２の次の行のデータ（３２ビット）について、ステップＳ２６０２〜Ｓ２６１８までの処理を繰り返す。メモリ制御回路１３６は、全データの送信が終了すると、処理を終了する。
【００９０】
ＩＤ比較部Ｍ１１やコマンド比較部Ｍ１２が識別データＩＤやコマンドデータＣＭについて通信エラーがあったとした場合であって、かつ、メモリ制御回路１３６がなにも処理を行わず処理を終了したときには、記憶装置１３０は、読み出しデータが送信される期間においてデータを送信しないことになる。前述したように、サブ制御部５０と記憶装置１３０との間でデータのやり取りがないときには、サブ制御部５０の抵抗Ｒ１によりデータ信号線ＬＤ１はローレベルに保持される。通信処理部５５は、原データＤｎと反転データ／Ｄｎの受信期間に全てローレベルのデータを受信するので、図８のステップＳ１１２がＮoとなり、通信エラーがあったと判断する。上記読み出し処理によって、ＳＲＡＭ５５１には原データＤｎ、反転ミラーデータ／ｄｎが格納される。また、エラーが発生した場合には、通信処理部５５のエラーコードレジスタ５５３には通信もしくはセルエラーコードが格納される。通信処理部５５に格納された原データＤｎと反転ミラーデータ／ｄと通信もしくはセルエラーコードは、主制御部４０によって取得される。主制御部４０は、エラーコードが関連付けられていない原データＤｎ、反転ミラーデータ／ｄｎについては、原データＤｎを用いて、所定の制御処理（例えば、インク残量のチェック、インク残量のユーザへの通知など）を行う。主制御部４０は、通信エラーコードが関連付けられている原データＤｎ、反転ミラーデータ／ｄｎがある場合には、例えば、インクカートリッジ１００の装着を見直すように、ユーザに促すメッセージを操作部７０の表示パネルに表示するなどの通信エラー対応処理を行う。また、主制御部４０は、セルエラーコードが関連付けられている原データＤｎ、反転ミラーデータ／ｄｎがある場合には、セルエラーと判定された原データＤｎ、反転ミラーデータ／ｄｎのそれぞれについてパリティチェックを行う。原データＤｎ、反転ミラーデータ／ｄｎが、実データとパリティデータを含んでいることは上述のとおりである（図７）。主制御部４０は、セルエラーと関連付けられた原データＤｎと反転ミラーデータ／ｄｎのうち、実データ１５ビットとパリティデータ１ビットとの整合性を有する方のデータを用いて、所定の制御処理を行う。また、セルエラーと関連付けられた原データＤｎと反転ミラーデータ／ｄｎのパリティチェックの結果、原データＤｎと反転ミラーデータ／ｄｎの両方がパリティエラーである場合、または、両方がパリティとの整合性を有していた場合には、インクカートリッジ１００のメモリエラーをユーザに促すメッセージを操作部７０の表示パネルに表示する。また、記憶装置１３０に書き込んだデータの書き込み結果を確認するために、記憶装置１３０からの読み出しを行った場合には、主制御部４０に保存しておいた書き込み用のデータと、セルエラーと関連付けられた原データＤｎと反転ミラーデータ／ｄｎとを比較して、データが正しいか否かを判断しても良い。なお、本実施例では、ステップＳ２６０２においてメモリセルアレイ１３２から１行分のデータを読み出したが、ステップＳ２６０４からステップＳ２６１８の順に、コマンドデータ受信後に記憶装置１３０に供給されるクロック信号に同期してデータを送信で��れば、メモリセルアレイ１３２からのデータの読み出しは１行単位でなくても良い。
【００９１】
・記憶装置への書き込み処理
図１２は、プリンタ２０側のサブ制御部５０が実行する記憶装置１３０への書き込み処理の処理ルーチンを示すフローチャートである。図１３は、記憶装置１３０への書き込み処理において、プリンタ２０側の主制御部４０が認識している記憶装置１３０のメモリマップを模式的に示す図である。図１４は、記憶装置１３０への書き込み処理において、プリンタ２０の通信処理部５５と記憶装置１３０のメモリ制御回路１３６との間で遣り取りされる信号を模式的に示すタイミングチャートである。図１４には、図９と同様に、電源電圧ＣＶＤＤと、リセット信号ＣＲＳＴと、クロック信号ＣＳＣＫと、データ信号ＣＳＤＡと、データ方向とが示されている。図１５は、記憶装置１３０のメモリ制御回路が実行する書き込み処理の処理ルーチンを示すフローチャートである。
【００９２】
プリンタ２０の主制御部４０は、サブ制御部５０にバスＢＳを介して、所定のインクカートリッジ１００の記憶装置１３０に書き込むべきデータを、ＳＲＡＭ５５１に書き込む。具体的には、これらのデータは、ＳＲＡＭ５５１に確保されたメモリ領域において、記憶装置１３０の強誘電体メモリセルアレイ１３２と対応させた原データを書き込む行に書き込まれる。主制御部４０は、書き込み処理時には、記憶装置１３０が１行１６ビットのメモリであると認識している。そのため、記憶装置１３０に書き込むべきデータは、１６ビットの単位に区切ることができ、１６ビットの単位の上位１５ビットは実データであり、下位１ビットはパリティデータである。パリティデータは、主制御部４０によって生成され、上位１５ビットの実データに付加されて合計１６ビットのデータとしてＳＲＡＭ５５１に書き込まれることとしても良い。また、パリティデータは、サブ制御部５０によって生成され、主制御部４０がＳＲＡＭ５５１に１５ビットのデータを書き込むごとに付加されても良い。その後、主制御部４０は、サブ制御部５０にバスＢＳを介して、書き込み対象の記憶装置１３０を通知するとともに、ＳＲＡＭ５５１に書き込まれたデータを、書き込み対象の記憶装置１３０へ書き込むことを指示する書き込みコマンドを送信する。書き込みコマンドを受け付けると、サブ制御部５０は、第１の電源線ＬＣＶを介して、各インクカートリッジ１００に電源電圧ＣＶＤＤを供給して、各インクカートリッジ１００の記憶装置１３０を動作可能な状態にする。サブ制御部５０から電源電圧ＣＶＤＤが供給された後、サブ制御部５０からローレベルのリセット信号ＣＲＳＴが供給され、記憶装置１３０は初期化される。リセット信号は、前回のアクセスの終了時にローレベルにされたままになっているため、記憶装置１３０に電源電圧ＣＶＤＤが供給される前からローレベルになっている。サブ制御部５０の通信処理部５５は、図１２のフローチャートに示す書き込み処理を開始する。
【００９３】
通信処理部５５は、書き込み処理時には、図１３に示すメモリマップを、記憶装置１３０のメモリマップとして認識している。すなわち、書き込み処理時には、実際の強誘電体メモリアレイ１３２に対応するメモリマップ（図７）のうちの原データを記憶する部分（図７左側部分）だけが存在し、ミラーデータを記憶する部分は存在しないと、通信処理部５５は認識している。原データを記憶する部分は、１行１６ビットの記憶領域が複数行配置されていると、通信処理部５５により認識される。
【００９４】
書き込み処理が開始されると、通信処理部５５は、リセット信号ＣＲＳＴをローレベルからハイレベルに遷移させるとともに、所定周波数のクロック信号ＣＳＣＫを送信する（図１４）。リセット信号ＣＲＳＴがローレベルからハイレベルになると、記憶装置１３０のメモリ制御回路１３６は、通信処理部５５からのデータ信号ＣＳＤＡを受け付けるスタンバイ状態になる。
【００９５】
通信処理部５５は、まず、データ信号ＣＳＤＡとして、上述した読み出し処理と同様に、ＳＯＦデータを送信する（図１２：ステップＳ３０２、図１４）。通信処理部５５は、ＳＯＦデータに続いて、上述した読み出し処理と同様に、識別データをデータ信号ＣＳＤＡとして送信する（図１２：ステップＳ３０４、図１４）。通信処理部５５は、識別データに続いて、コマンドデータをデータ信号ＣＳＤＡとして送信する（図１２：ステップＳ３０６、図１４）。本処理で送信されるコマンドデータは、書き込み処理であることを表すコマンド（ライトコマンド）である。
【００９６】
通信処理部５５は、コマンドデータの送信を終了した次のクロック信号ＣＳＣＫの立ち上がりに同期して記憶装置１３０のメモリ制御回路１３６が１ビットずつデータを受け取れるように、書き込みデータを送信する。書き込みデータは、原データに対応するデータのうち、Ａ１行に書き込まれるデータから行順に送信される。具体的には、通信処理部５５は、シーケンシャルに８ビット×４＝３２ビット分の単位書き込みデータを送信する（図１４）。３２ビットの単位書き込みデータは、原データ上位８ビットＵＤｎと、原データ上位８ビットＵＤｎの反転データである反転原データ上位８ビット／ＵＤｎと、原データ下位８ビットＬＤｎと、原データ下位８ビットＬＤｎの反転データである反転原データ下位８ビット／ＬＤｎを含む（図１４）。通信処理部５５は、原データ上位８ビットＵＤｎ、反転原データ上位８ビット／ＵＤｎ、原データ下位８ビットＬＤｎ、反転原データ下位８ビット／ＬＤｎの合計３２ビットをこの順番で送信する（ステップＳ３０８〜Ｓ３１４）。
【００９７】
単位書き込みデータの送信を終了した次のクロック信号ＣＳＣＫの立ち上がりに同期して、通信処理部５５は、サブ制御部５０から１ビット（「１」または「０」）の応答信号を受信する（図１２：ステップＳ３１６、図１４）。「１」（ハイレベル）の応答信号（以下、ＯＫ応答信号とも呼ぶ。）は、単位書き込みデータを記憶装置１３０側が正しく受信したことを示す信号であり、「０」（ローレベル）の応答信号（以下、ＮＧ応答信号とも呼ぶ。）は、単位書き込みデータを記憶装置１３０側が正しく受信できなかったことを示す信号である。応答信号において、ＯＫ応答信号をハイレベルとしたのは、データ信号線ＬＤ１が上述した通り、プルダウン抵抗Ｒ１を介して、ローレベルの電位に接続されているからである。すなわち、データ端子２６０の接触不良があったときなどに、誤ってＯＫ応答信号が通信処理部５５に入力されることを抑制することができる。
【００９８】
受信された応答信号が肯定的でない場合（図１２：ステップＳ３１８：ＮＯ）、すなわち、ＮＧ応答信号である場合には、通信処理部５５は所定のエラー処理を行い（図１２：ステップＳ３２０）、書き込み処理を終了する。エラー処理は、例えば、同じ単位書き込みデータの送信をリトライし、所定回のリトライを行った結果、ＮＧ応答信号しか得られない場合には、その旨を主制御部４０に通知する。その場合、主制御部４０は、例えば、例えば、インクカートリッジ１００の装着を見直すように、ユーザに促すメッセージを操作部７０の表示パネルに表示するなどの通信エラー対応処理を行う。
【００９９】
一方、受信された応答信号が肯定的である場合（図１２：ステップＳ３１８：ＹＥＳ）、すなわち、ＯＫ応答信号である場合には、通信処理部５５は、書き込むべきデータを全て送信したか否かを判断する（図１２：ステップＳ３２２）。書き込むべきデータが全て送信された場合には（図１２：ステップＳ３２２：ＹＥＳ）、通信処理部５５は、ＥＯＦ（End Of Frame）データを記憶装置１３０に送信して（図１２：ステップＳ３２４）、書き込み処理を終了する。通信処理部５５は、図１４に示すように書き込み処理を終了すると、リセット信号ＣＲＳＴをハイレベルからローレベルに変更すると共に、クロック信号ＣＳＣＫの供給を停止する。ＥＯＦデータは、例えば、８ビットのデータで、有意なデータであっても良いし、単なるダミーデータであっても良い。書き込むべきデータが全て送信されていない場合には（図１２：ステップＳ３２２：ＮＯ）、通信処理部５５は、ステップＳ３０８に戻って、次の単位書き込みデータについて、上述した処理を繰り返す。例えば、通信処理部５５は、１番目の単位書き込みデータＵＤ１、／ＵＤ１、ＬＤ１、／ＬＤ１について上述の処理を行った次には、２番目の単位書き込みデータＵＤ２、／ＵＤ２、ＬＤ２、／ＬＤ２について上述の処理を行う。
【０１００】
次に、上述したプリンタ２０側における記憶装置１３０への書き込み処理に対応して記憶装置１３０側で行われる処理（記憶装置側処理）について、説明する。書き込み処理に対応する記憶装置側処理は、図１０のＳ２１０〜Ｓ２５０までは読み出し処理のときと同様である。書き込み処理の場合、記憶装置１３０のメモリ制御回路１３６が図１０のステップＳ２４０において受信するのは、書き込みコマンドである。したがって、書き込みコマンドを受信したメモリ制御回路１３６は、ステップＳ２８０の記憶装置側の書き込み処理を実行する（図１０）。
【０１０１】
図１５は、記憶装置側の書き込み処理の処理ステップを示すフローチャートである。オペレーションコードを受信した後、コマンドデータが書き込みコマンドであった場合、読み出し処理のときと同様に、カウンタ制御部Ｍ１６は、書き込み対象の最初の行はＡ１行を指定するように、アドレスカウンタＭ１３のクロックのカウント値を制御する。その後、リード／ライト制御部Ｍ１４は、アドレスカウンタＭ１３のカウント値の指定するアドレスに基づき書き込み処理を実行する。具体的には、書き込み処理を開始すると、メモリ制御回路１３６のデータ送受信部Ｍ１５は、コマンドデータに続いてデータ信号線ＬＤ１上に現れる信号（１または０）を、クロック信号ＣＳＣＫの立ち上がりに同期してシーケンシャルに読み取り、順次レジスタに格納していく。この結果、データ送受信部Ｍ１５は、３２ビットの単位書き込みデータ、すなわち、原データ上位８ビットＵＤｎと、反転原データ上位８ビット／ＵＤｎと、原データ下位８ビットＬＤｎと、反転原データ下位８ビット／ＬＤｎとを順次に受信する（図１５：ステップＳ２８０２〜２８０８）。ステップＳ２８０８の終了後、データ送受信部Ｍ１５は、後述する応答信号（ＮＧ応答信号、または、ＯＫ応答信号）を記憶装置１３０からサブ制御部５０に送信するため、データ端子を介して遣り取りされるデータの送受信方向を、記憶装置１３０からサブ制御部５０へデータを送信する方向に設定する。
【０１０２】
単位書き込みデータを受信すると、データ判定部Ｍ１９は、原データＤｎと反転データ／Ｄｎとの論理的排他和の演算の出力結果が１６ビット全てについて真、すなわち、ＦＦＦＦであるか否かを判定する（図１５：ステップＳ２８１０）。ここで言う原データＤｎは、上記ステップＳ２８０２で受信された原データ上位８ビットＵＤｎを上位ビットとし、上記ステップＳ２８０６で受信された原データ下位８ビットＬＤｎを下位ビットとする１６ビットデータである。ここで言う反転データ／Ｄｎは、上記ステップＳ２８０４で受信された反転原データ上位８ビット／ＵＤｎを上位ビットとし、上記ステップＳ２８０８で受信された反転原データ下位８ビット／ＬＤｎを下位ビットとする１６ビットデータである。
【０１０３】
排他的論理和の演算の出力結果（データ判定部Ｍ１９の判定結果）が、１６ビットのいずれかにおいて偽「０」である、すなわち、ＦＦＦＦでない場合には（図１５：ステップＳ２８１０：ＮＯ）、データ送受信部Ｍ１５は、ＮＧ応答信号（ローレベル）をサブ制御部５０の通信処理部５５に送信する（図１５：ステップＳ２８１２）。ここで、データ信号のやりとりがないときには、データ信号線ＬＤ１はプルダウン抵抗Ｒ１を介してローレベルとされているので、データ送受信部Ｍ１５は、ＮＧ応答信号を送信する代わりに、サブ制御部５０の通信処理部５５に何も返信しないものとしてもよい。この場合にも、通信処理部５５は、データ信号線ＬＤ１がローレベルになっている状態をＮＧ応答信号として認識することが可能である。従って、この場合も実質的にＮＧ応答信号が返信されていることと等価である。ＮＧ応答信号が送信されると、記憶装置側の書き込み処理は終了（異常終了）される。
【０１０４】
一方、排他的論理和の演算の出力結果（データ判定部Ｍ１９の判定結果）が、１６ビットの全てにおいて肯定的である（真「１」である）、すなわち、ＦＦＦＦである場合には（図１５：ステップＳ２８１０：ＹＥＳ）、データ判定部Ｍ１９は、受信した１６ビットの原データＤｎのパリティチェックを実行して、データの整合性を判定する（図１５：ステップＳ２８１３）。パリティチェックの結果、データの整合性がとれていない場合には（図１５：ステップＳ２８１３：ＮＯ）、データ送受信部Ｍ１５は、ＮＧ応答信号（ローレベル）をサブ制御部５０の通信処理部５５に送信する（図１５：ステップＳ２８１２）。ここで、データ信号のやりとりがないときには、データ信号線ＬＤ１はプルダウン抵抗Ｒ１を介してローレベルとされていることから、データ送受信部Ｍ１５は、ＮＧ応答信号を送信する代わりに、サブ制御部５０の通信処理部に何も返信せずに、実質的にＮＧ応答信号を送信したこととしてもよい。ＮＧ応答信号が送信されると、記憶装置側の書き込み処理は終了（異常終了）される。一方、パリティチェックの結果、データの整合性がとれている場合には（図１５：ステップＳ２８１３：ＹＥＳ）、データ送受信部Ｍ１５は、データ端子を介してＯＫ応答信号（ハイレベル）をサブ制御部５０の通信処理部５５に送信する（図１５：Ｓ２８１４）。
【０１０５】
応答信号（ＮＧ応答信号、または、ＯＫ応答信号）は、単位書き込みデータを受信した次のクロック信号ＣＳＣＫの立ち上がりに同期して送信される（図１４）。すなわち、サブ制御部５０から送信されるクロック信号に同期して記憶装置１３０が単位書き込みデータを受信した後、次にサブ制御部５０から送信されるクロック信号に同期して、記憶装置１３０はサブ制御部５０に対して応答信号を送信する。ここで、ＩＤ比較部Ｍ１１やコマンド比較部Ｍ１２が識別データＩＤやコマンドデータＣＭに通信エラーがあったとした場合であって、かつ、記憶装置１３０が単位書き込みデータを受信することなく処理を終了したときには、記憶装置１３０は、応答信号を送信する期間にサブ制御部５０に対してなにも返信しないことになる。サブ制御部５０と記憶装置１３０との間でデータのやり取りがないときには、サブ制御部５０の抵抗Ｒ１によりデータ信号線ＬＤ１はローレベルに保持されているので、通信処理部５５は、記憶装置１３０からＮＧ応答信号が送信されたと判断し、通信エラーがあったことがわかる。つまり、ステップＳ２８１２のＮＧ応答信号の送信は、識別データＩＤとコマンドデータＣＭに整合性がなかったときにも送信される。
【０１０６】
ＯＫ応答信号が送信された場合、メモリ制御回路１３６のコピーデータ生成部Ｍ１７は、受信された１６ビットの原データＤｎの複製であるミラーデータｄｎを生成する（図１５：ステップＳ２８１６）。具体的には、メモリ制御回路１３６には、原データＤｎを受信するためのレジスタに加えて、ミラーデータｄｎ格納用の１６ビットのレジスタが用意されており、コピーデータ生成部Ｍ１７は、原データＤｎを複製して、ミラーデータｄｎを生成する。
【０１０７】
次いで、リード／ライト制御部Ｍ１４は、原データＤｎおよびミラーデータｄｎの書き込み対象である記憶領域（書き込み対象領域）から既存データを読み出し、データ判定部Ｍ１９は、読み出された既存データのパリティチェックを実行する（図１５：ステップＳ２８１８）。一度の書き込みの対象となる書き込み対象領域は、図７におけるメモリマップ上の１行である。図７に示すように、書き込み対象領域（１行分の領域）の上位１６ビットは原データＤｎを書き込むための原データ領域であり、原データ領域の最終ビットに格納されているのはパリティデータＰである。書き込み対象領域（１行分の領域）の下位１６ビットはミラーデータｄｎを書き込むためのミラーデータ領域であり、原データ領域と同様、ミラーデータ領域の最終ビットに格納されているのはパリティデータＰである。ステップＳ２８１８では、書き込み対象領域の原データ領域に格納されている既存データと、ミラーデータ領域に格納されている既存データのそれぞれについてパリティチェックがなされる。
【０１０８】
パリティチェックが終了すると、リード／ライト制御部Ｍ１４は、書き込み対象領域に対して、データの書き込みを行う（図１５：ステップＳ２８２０）。ここで、既存データのパリティチェックにおいて、書き込み対象領域の原データ領域の既存データとミラーデータ領域の既存データの両方についてパリティエラーが無かった場合には、リード／ライト制御部Ｍ１４は、ステップＳ２８０２、Ｓ２８０６で受信された原データＤｎを原データ領域に、ステップＳ２８１６で生成されたミラーデータｄｎをミラーデータ領域に、それぞれ書き込む。一方、パリティチェックにおいて、書き込み対象領域の原データ領域の既存データにパリティエラーがあり、書き込み対象領域のミラーデータ領域の既存データにパリティエラーがない場合には、リード／ライト制御部Ｍ１４は、原データ領域に受信された原データＤｎではなくパリティエラーのあった既存データを、ミラーデータ領域にステップＳ２８１６で生成されたミラーデータｄｎをそれぞれ書き込む。また、パリティチェックにおいて、書き込み対象領域の原データ領域の既存データにパリティエラーがなく、書き込み対象領域のミラーデータ領域の既存データにパリティエラーがある場合には、リード／ライト制御部Ｍ１４は、原データ領域にステップＳ２８０２、Ｓ２８０６で受信された原データＤｎを、ミラーデータ領域に既存データをそれぞれ書き込む。なお、パリティチェックにおいて、書き込み対象領域の原データ領域の既存データとミラーデータ領域の既存データの両方についてパリティエラーがあった場合には、リード／ライト制御部Ｍ１４は、原データ領域、および、ミラーデータ領域に、それぞれ既存データの再書き込みを行う。すなわち、リード／ライト制御部Ｍ１４は、パリティエラーが存在する記憶領域については、既存データの再書き込みを行い、パリティエラーが存在しない記憶領域については、データの更新を行う。
【０１０９】
書き込み対象領域に対してデータの書き込みを行うと、メモリ制御回路１３６のコマンド解釈部Ｍ１２は、書き込むべきデータを全て受信したか否かを判断する（図１５：ステップＳ２８２２）。コマンド解釈部Ｍ１２は、ＥＯＦデータを受信すると書き込むべきデータをすべて受信したと判断する。あるいは、リセット信号ＣＲＳＴがハイレベルからローレベルに遷移したことを検出したときに、書き込むべきデータを全て受信したと判断しても良い。書き込むべきデータを全て受信した場合には（図１５：ステップＳ２８２２：ＹＥＳ）、メモリ制御回路１３６は、書き込み処理を終了する。書き込むべきデータが全て受信されていない場合は、メモリ制御回路１３６は、ステップＳ２８０２に戻って、次の単位書き込みデータについて、上述した処理を繰り返す。例えば、１番目の単位書き込みデータＤ１および／Ｄ１を受信して上述の処理を行った次には、２番目の単位書き込みデータＤ２および／Ｄ２を受信して上述の処理を行う。本実施例では、アドレスカウンタＭ１３がワードアドレスを順次指定するので、Ａ１行の次にはＡ２行、Ａ３行・・というように、順次に書き込み処理が実行される。また、ＯＫ応答信号の送信（ステップＳ２８１４）の後、データ送受信部Ｍ１５は、次の単位書き込みデータを受信するため、データ端子を介して遣り取りされるデータの送受信方向を、サブ制御部５０から記憶装置１３０がデータを受信する方向に設定する。なお、図１５に示すフローチャートの各ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行され得る。例えば、メモリ制御回路１３６は、ＯＫ信号を送信する前に、ミラーデータを生成しても良いし、ミラーデータを生成しつつ、並行して既存データのパリティチェックを実行しても良い。
【０１１０】
以上のように、書き込み処理（図１４）の際には、識別データＩＤと、反転識別データ／ＩＤと、ライトコマンドデータＣＭと、反転ライトコマンドデータ／ＣＭと、所定サイズの１組の書込データＤ１及び反転書込データ／Ｄ１と、がこの順に通信処理部５５から記憶装置１３０に送信され、その後、２組目以降の書込データＤｎ及び反転書込データ／Ｄｎが１組ずつ繰り返し送信される。図１４の例では、書込データＤｎ及び反転書込データ／Ｄｎの１組分のデータサイズは、３２ビットであるが、これ以外のデータサイズに設定してもよい。また、記憶装置１３０のメモリ制御回路１３６は、識別データＩＤの受信を開始してから１組目の書込データＤ１及び反転書込データ／Ｄ１の受信を完了するまでは、受信データの整合性の判定結果を通信処理部５５に送信せず、１組目の書込データＤ１及び反転書込データ／Ｄ１の受信を完了した後に、整合性の判定結果を通信処理部５５に送信している。さらに、第２組以降の書込データＤｎ及び反転書込データ／Ｄｎに関しては、各組の受信を完了するたびにそれらの判定の結果がメモリ制御回路１３６から通信処理部５５に送信される。このように、記憶装置１３０は、所定サイズの書込データＤｎ及び反転書込データ／Ｄｎの１組を受信するたびにその整合性の判定結果を通信処理部５５に送信するので、通信処理部５５と記憶装置１３０間の通信の信頼性を向上させることができる。
【０１１１】
また、書き込み処理の初期では、識別データＩＤの受信を開始してから１組目の書込データＤ１及び反転書込データ／Ｄ１の受信を完了するまで、データの整合性の判定結果を通信処理部５５に送信しないので、判定結果を記憶装置１３０から通信処理部５５に送信する回数を減らすことができ、書き込み処理の全体を効率的に実行することができる。なお、書き込み処理では、読み出し処理と同様に、識別データＩＤと反転識別データ／ＩＤの整合性や、ライトコマンドデータＣＭと反転ライトコマンドデータ／ＣＭとの整合性も判定される（図１０のＳ２２０〜Ｓ２４５参照）。識別データＩＤやライトコマンドデータＣＭが整合していない場合には、メモリ制御回路１３６は、受信したデータの書き込みを行わずに処理を終了する。この場合には、図１４の最初の応答信号の送信期間（データＵＤ１，／ＵＤ１，ＬＤ１，／ＬＤ１の送信後の期間）において、応答信号（ＯＫフラグ）が記憶装置１３０から通信処理部５５に送信されないので、通信処理部５５は、何らかのエラーがあったことを認識することができる。ところで、応答信号（ＯＫ／ＮＧフラグ）の送信の前後では、データの送信方向が切り替わるが、データ送信方向の切り替えは、いわゆるバス衝突を発生させる可能性があるので、なるべく少なくすることが好ましい。本実施例では、書き込み処理の初期において、識別データＩＤの受信を開始してから第１組の書込データＤ１及び反転書込データ／Ｄ１の受信を完了するまでは、データの整合性の判定結果を通信処理部５５に送信しないようにすることによって、データ送信方向の切り替えの頻度をなるべく低下させ、通信の信頼性や高速性を高めている。
【０１１２】
また、本実施例では、図１５に示すように、書込データＤｎと反転書込データ／Ｄｎとが互いに反転関係にあり、かつ、それぞれのデータにパリティエラーが無い場合にのみ肯定的な整合性判定結果を生成する。このような整合性判定を行えば、通信の信頼性を更に向上させることが可能である。すなわち、仮に書込データＤｎの１ビットと反転書込データ／Ｄｎの１ビットがそれぞれ同じビット位置で誤っている場合には、書込データＤｎと反転書込データ／Ｄｎとが整合しているという判定結果が得られる。しかし、このような場合にも、それぞれのパリティチェックでエラーと判定されるので、誤ったデータが書き込まれることを防ぐことが可能である。
【０１１３】
以上の説明から解るように、本実施例における原データＤｎは、請求項における第１のデータに対応し、本実施例における反転データ／Ｄｎは、請求項における第２のデータに対応する。また、本実施例における応答信号（ＯＫ応答信号およびＮＧ応答信号）の送信は、請求項における判定の結果の送信に対応する。
【０１１４】
・記憶装置に対するライトロック処理
図１６は、記憶装置に対するライトロック処理において、プリンタ２０の通信処理部５５と記憶装置１３０のメモリ制御回路１３６との間で遣り取りされる信号を模式的に示すタイミングチャートである。ライトロック処理は、強誘電体メモリアレイ１３２のメモリマップ（図７）の書き換え可能領域の所定の記憶領域を、行単位でライトロック領域に変更する処理である。ライトロック領域に変更された行は、外部機器（例えば、サブ制御部５０の通信処理部５５）からのアクセスによって、書き換えることができなくなる。
【０１１５】
通信処理部５５は、まず、データ信号ＣＳＤＡとして、上述した読み出し処理および書き込み処理と同様に、ＳＯＦデータを送信する（図１６）。通信処理部５５は、ＳＯＦデータに続いて、上述した読み出し処理および書き込み処理と同様に、識別データをデータ信号ＣＳＤＡとして送信する（図１６）。通信処理部５５は、識別データに続いて、コマンドデータをデータ信号ＣＳＤＡとして送信する（図１６）。本処理で送信されるコマンドデータは、ライトロック処理であることを表すコマンド（ライトロックコマンド）である。通信処理部５５は、コマンドデータの送信を終了した次のクロック信号ＣＳＣＫの立ち上がりに同期して記憶装置１３０のメモリ制御回路１３６が１ビットずつデータを受け取れるように、ライトロック対象アドレスデータＡＤと、反転ライトロック対象アドレスデータ／ＡＤを送信する（図１６）。ライトロック対象アドレスデータＡＤは、例えば、８ビットのデータで、書き込みが許容された領域からライトロック領域に変更される行を特定するデータである。反転ライトロック対象アドレスデータ／ＡＤは、ライトロック対象アドレスデータＡＤの各ビットの値を反転させた８ビットデータである。
【０１１６】
ライトロック対象アドレスデータＡＤと反転ライトロック対象アドレスデータ／ＡＤの送信を終了した次のクロック信号ＣＳＣＫの立ち上がりに同期して、通信処理部５５は、サブ制御部５０から１ビット（「１」または「０」）の応答信号を受信する（図１６）。書き込み処理の場合と同様に、ハイレベルの応答信号（ＯＫ応答信号）は、ライトロック対象アドレスデータＡＤおよび反転ライトロック対象アドレスデータ／ＡＤを記憶装置１３０側が正しく受信したことを示す信号であり、ローレベルの応答信号（ＮＧ応答信号）は、ライトロック対象アドレスデータＡＤおよび反転ライトロック対象アドレスデータ／ＡＤを記憶装置１３０側が正しく受信できなかったことを示す信号である。
【０１１７】
受信された応答信号がＮＧ応答信号である場合には、通信処理部５５は所定のエラー処理を行い、ライトロック処理を終了する。エラー処理は、例えば、上述した書き込み処理においてＮＧ応答信号を受信したときのエラー処理と同じ処理である。一方、受信された応答信号がＯＫ応答信号である場合には、通信処理部５５は、ＥＯＦ（End Of Frame）データを記憶装置１３０に送信してライトロック処理を終了する（図１６）。
【０１１８】
次に、上述したプリンタ２０側における記憶装置１３０へのライトロック処理に対応して記憶装置１３０側で行われる処理（記憶装置側処理）について説明する。ライトロック処理に対応する記憶装置側処理は、図１０において説明した通りである。書き込み処理の場合、記憶装置１３０のメモリ制御回路１３６が図１０のステップＳ２４０において受信するのは、ライトロックコマンドである。したがって、ライトロックコマンドを受信したメモリ制御回路１３６は、ステップＳ２７０の記憶装置側のライトロック処理を実行する（図１０）。
【０１１９】
メモリ制御回路１３６のリード／ライト制御部Ｍ１４は、ライトロック処理を開始すると、コマンドデータに続いてデータ信号線ＬＤ１上に表れる信号（１または０）を、クロック信号ＣＳＣＫの立ち上がりに同期してシーケンシャルに読み取り、順次にレジスタに格納していく。この結果、メモリ制御回路１３６は、ライトロック対象アドレスデータＡＤと、反転ライトロック対象アドレスデータ／ＡＤを順次に受信する。
【０１２０】
データ判定部Ｍ１９は、受信されたライトロック対象アドレスデータＡＤと反転ライトロック対象アドレスデータ／ＡＤとの論理的排他和の演算の出力結果が８ビット全てについて真、すなわち、１１１１１１１１（ＦＦ）であるか否かを判定する。判定の結果、排他的論理和の演算の出力結果がＦＦでない場合には、データ送受信部Ｍ１５はＮＧ応答信号（ローレベル）をサブ制御部５０の通信処理部５５に送信する。ＮＧ応答信号が送信されると、記憶装置側のライトロック処理は終了（異常終了）される。
【０１２１】
一方、排他的論理和の演算の出力結果が、８ビットの全てにおいて真「１」、すなわち、ＦＦである場合、リード／ライト制御部Ｍ１４は、制御領域のライトロック対象アドレスデータＡＤにより特定される書き換え可能領域の行をライトロック領域とするように変更する。具体的には、オペレーションコード受信後、アクセスの種類がライトロックであった場合には、カウンタ制御部Ｍ１６は制御領域の先頭行を選択するようにアドレスカウンタＭ１３のカウンタ値をセットする。そして、制御領域のうち、ライトロック対象アドレスデータＡＤのフラグを格納するセルの行を選択するようにカウントする。アドレスカウンタＭ１３によりライトロック対象アドレスデータＡＤのフラグを格納するセルを含む行が書き込み対象の行として選択された後、リード／ライト制御部Ｍ１４は、ライトロック対象アドレスデータＡＤに対応するセルのフラグ情報が「０」から「１」となるように、その行を更新する。リード／ライト制御部Ｍ１４は、制御領域のライトロック対象アドレスデータＡＤにより特定される書き換え可能領域の行のフラグが格納されるセルのフラグを更新し、ライトロック対象アドレスデータＡＤにより特定される書き換え可能領域の行をライトロック領域に変更して、ライトロック処理を終了する。具体的には、リード／ライト制御部Ｍ１４は、ライトロック対象アドレスデータＡＤにより特定される行に対応するライトロックフラグ情報を「０」から「１」に変更する。
【０１２２】
・プリンタの印刷処理
次に、上述した記憶装置１３０に関連する処理を踏まえて、プリンタ２０における印刷処理について説明する。図１７は、主制御部４０が主体となって実行される印刷処理の処理ステップを示すフローチャートである。以下で説明する印刷処理は、説明の便宜のため１つのインクカートリッジ１００に着目して説明するが、実際にはプリンタ２０に搭載された各インクカートリッジ１００について同様の処理を行っている。
【０１２３】
印刷処理は、主制御部４０がコンピュータ９０または操作部７０を介して、ユーザからの印刷要求を受け付ける（図１７：ステップＳ５０２）ことによって開始される。印刷要求が受け付けられると、主制御部４０は、上述した記憶装置１３０からの読み出し処理を実行して、インクカートリッジ１００の記憶装置１３０からインク情報を読み出す（図１７：ステップＳ５０４）。読み出されるインク情報は、少なくとも上述した第１インク消費カウント値Ｘと、第２インク消費カウント値Ｙと、インクエンド情報Ｍとを含む。
【０１２４】
主制御部４０は、インク情報を読み出すと、インクエンド情報Ｍの値が、上述したフル状態、ロー状態、エンド状態のいずれであるかを判断する（図１７：ステップＳ５０６）。主制御部４０は、インクエンド情報Ｍがエンド状態であると判断すると（図１７：ステップＳ５０６：Ｅ）、ユーザに対するインクエンド通知を実行する（図１７：ステップＳ５０８）。インクエンド通知は、例えば、インクカートリッジ１００を交換するように、ユーザに促すメッセージを操作部７０の表示パネルに表示することによって行われる。
【０１２５】
主制御部４０は、インクエンド情報Ｍがロー状態であると判断すると（図１７：ステップＳ５０６：Ｌ）、第１インク消費カウント値Ｘと第２インク消費カウント値Ｙとの差分値（Ｘ−Ｙ）の値が、第２のしきい値Ｖｒｅｆ２以上であるか否かを判定する（図１７：ステップＳ５１０）。後述するように、記憶装置１３０の第２インク消費カウント値Ｙを格納する行は、インクエンドが検出された時点でライトロックされるため、第２インク消費カウント値Ｙは更新されない。主制御部４０は、（Ｘ−Ｙ）の値が第２のしきい値Ｖｒｅｆ２以上である場合には（図１７：ステップＳ５１０：ＹＥＳ）、記憶装置１３０のインクエンド情報Ｍの値をエンド状態に更新する（図１７：ステップＳ５１２）。具体的には、主制御部４０は、上述した記憶装置１３０への書き込み処理を実行して、インクエンド情報Ｍの値を「１１」に更新する。インクエンド情報Ｍの値を更新すると、主制御部４０は、上述したインクエンド通知を実行する（図１７：ステップＳ５０８）。
【０１２６】
一方、主制御部４０は、インクエンド情報Ｍがフル状態であると判断した場合（図１７：ステップＳ５０６：Ｆ）、または、（Ｘ−Ｙ）の値が第２のしきい値Ｖｒｅｆ２未満である場合には（図１７：ステップＳ５１０：ＮＯ）、印刷要求に応じた印刷のうち、所定量の印刷を実行する（図１７：ステップＳ５１４）。
【０１２７】
所定量の印刷を実行すると、主制御部４０は、新たなインク消費量カウント値を算出する（図１７：ステップＳ５１６）。具体的には、主制御部４０は、所定量の印刷の実行内容に基づいて、所定量の印刷によるインク消費量を推定する。主制御部４０は、ステップＳ５０４で記憶装置１３０から読み出した第１インク消費カウント値Ｘに、推定したインク消費量に相当するカウント値を足した値を、新たなインク消費量カウント値とする。
【０１２８】
新たなインク消費量カウント値を算出すると、主制御部４０は、センサ１１０のセンサを駆動する（図１７：ステップＳ５１８）。主制御部４０は、センサの駆動結果に基づいて、インクカートリッジ１００のインク残量が第１のしきい値Ｖｒｅｆ１以上（フル）であるか第１のしきい値Ｖｒｅｆ１未満（ロー）であるかを判断する（図１７：ステップＳ５２０）。
【０１２９】
センサを駆動した結果、インクカートリッジ１００のインク残量が第１のしきい値Ｖｒｅｆ１以上であると判断すると（図１７：ステップＳ５２０：Ｆ）、主制御部４０は、記憶装置１３０に記憶されている第１インク消費カウント値Ｘと第２インク消費カウント値Ｙを、ステップＳ５１６で算出された新たなインク消費量カウント値に更新する（図１７：ステップＳ５２２）。具体的には、主制御部４０は上述した書き込み処理を実行して、記憶装置１３０にアクセスして、第１インク消費カウント値Ｘと第２インク消費カウント値Ｙを新たなインク消費量カウント値に書き換える。この結果、第１インク消費カウント値Ｘと第２インク消費カウント値Ｙの値は同じになる。
【０１３０】
一方で、センサを駆動した結果、インクカートリッジ１００のインク残量が第１のしきい値Ｖｒｅｆ１未満であると判断すると（図１７：ステップＳ５２０：Ｌ）、主制御部４０は、第２インク消費カウント値Ｙを格納する記憶領域（図７：メモリマップのＡ２行）がライトロック領域となっているかどうかを確認し（ＳＲＡＭ５５１に記憶されているデータのうち、記憶装置１３０の制御領域に対応するデータを参照して確認する。）、ライトロック領域となっていない場合には第２インク消費カウント値Ｙを格納する行をライトロックする第２インク消費カウント値ロック処理を実行する。（図１７：ステップＳ５２４）。第２インク消費カウント値ロック処理は、上述した記憶装置１３０に対するライトロック処理を用いて実行される。第２インク消費カウント値ロック処理が行われると、記憶装置１３０において、第２インク消費カウント値Ｙの値は、変更不可能な状態になる。したがって、記憶装置１３０における第２インク消費カウント値Ｙの値は、センサ駆動によって、初めてインク残量が第１のしきい値Ｖｒｅｆ１未満であることが検出された直前のインク消費量カウント値に保持されることになる。
【０１３１】
第２インク消費カウント値ロック処理が終了されると、主制御部４０は、記憶装置１３０に記憶されている第１インク消費カウント値Ｘを、上述した書き込み処理を実行することにより、ステップＳ５１６で算出された新たなインク消費量カウント値に更新する（図１７：ステップＳ５２６）。このとき、ライトロックされた状態にある第２インク消費カウント値Ｙの値の更新は行わない。
【０１３２】
第１インク消費カウント値Ｘの値を更新すると、主制御部４０は、第１インク消費カウント値Ｘと第２インク消費カウント値Ｙとの差分値（Ｘ−Ｙ）の値が、第２のしきい値Ｖｒｅｆ２以上であるか否かを判定する（図１７：ステップＳ５２８）。ここで用いられる第１インク消費カウント値Ｘは、ステップＳ５２６において更新された値である。一方、ここで用いられる第２インク消費カウント値Ｙは、ステップＳ５０４において読み出された値、あるいは、ステップＳ５２２において更新された値のうち、新しい方の値である。主制御部４０は、（Ｘ−Ｙ）の値が第２のしきい値Ｖｒｅｆ２以上である場合には（図１７：ステップＳ５２８：ＹＥＳ）、記憶装置１３０のインクエンド情報Ｍの値をエンド状態に更新し（ステップＳ５１２）、上述したインクエンド通知を実行する（図１７：ステップＳ５０８）。
【０１３３】
ステップＳ５２２において第１インク消費カウント値Ｘおよび第２インク消費カウント値Ｙが更新された後、あるいは、ステップＳ５２８において（Ｘ−Ｙ）の値が第２のしきい値Ｖｒｅｆ２未満である場合（図１７：ステップＳ５２８：ＮＯ）、主制御部４０は、印刷要求に基づく印刷が全て終了したか否かを判定する（図１７：ステップＳ５３０）。印刷が全て終了している場合には（図１７：ステップＳ５３０：ＹＥＳ）、印刷処理は終了される。印刷が全て終了していない場合には、ステップＳ５１４に戻って、再び、所定量の印刷を実行する。
【０１３４】
以上説明した本実施例によれば、記憶装置１３０への書き込み処理において、記憶装置１３０は、原データＤｎと反転データ／Ｄｎとの整合性を確認して、整合性があるか否かを示す応答信号を原データＤｎの１６ビットごとに送信する。その結果、サブ制御部５０と記憶装置１３０との間の通信の信頼性を向上することができる。また、原データＤｎと反転データ／Ｄｎとの整合性がない場合には、記憶装置１３０は、原データＤｎを強誘電体メモリアレイ１３２に書き込まないので、誤った強誘電体メモリアレイ１３２の更新を抑制することができる。また、記憶装置１３０への書き込み処理において、原データＤｎと反転データ／Ｄｎは、互いに各ビットが反転した関係にあるので、例えば、インクカートリッジ１００のデータ端子２６０と、対応するプリンタ２０側の端子との接触不良により、データ信号線ＬＤ１上にローレベルまたはハイレベルのいずれか一方のみが表れる通信エラーが発生した場合など、確実に通信エラーを検出することができる。また、原データＤｎと反転データ／Ｄｎの各ビットの排他的論理和を計算することにより、原データＤｎと反転データ／Ｄｎとの整合性（通信エラーの有無）を判定するので、容易で確実性の高い通信エラーの検出をすることができる。
【０１３５】
さらに、本実施例によれば、記憶装置１３０からの読み出し処理において、原データＤｎと、原データＤｎと同一量であって各ビットが反転したデータである反転データ／Ｄｎが、記憶装置１３０からサブ制御部５０に送信される。サブ制御部５０側にて、原データＤｎと反転データ／Ｄｎとの整合性を確認することにより、通信エラーの有無を判断できる。この結果、サブ制御部５０と記憶装置１３０との通信の信頼性を向上することができる。したがって、プリンタ２０の誤動作などの不具合を抑制することができる。また、記憶装置１３０からの読み出し処理において、原データＤｎと反転データ／Ｄｎは、互いに各ビットが反転した関係にあるので、例えば、インクカートリッジ１００のデータ端子２６０と、対応するプリンタ２０側の端子との接触不良により、データ信号線ＬＤ１上にローレベルまたはハイレベルのいずれか一方のみが表れる通信エラーが発生した場合など、確実に通信エラーと判断することができる。さらに、記憶装置１３０からの読み出し処理において、記憶装置１３０は、原データＤｎと実質的に同一のデータであるミラーデータｄｎと、反転データ／Ｄｎと実質的に同一のデータである反転ミラーデータ／ｄｎとを、サブ制御部５０に送信するので、例えば、通信エラーにより原データＤｎと反転データ／Ｄｎとに整合性がなくとも、ミラーデータｄｎと反転ミラーデータ／ｄｎとに整合性があれば、プリンタ２０側はミラーデータｄｎと反転ミラーデータ／ｄｎのいずれかを用いて処理を継続できるので、耐通信エラー性が向上する。さらに、記憶装置１３０では、原データＤｎとともに、ミラーデータｄｎを強誘電体メモリアレイ１３２に格納しており、両方をプリンタ２０に送信する。この結果、強誘電体メモリアレイ１３２の原データ領域とミラーデータ領域のいずれかにセルエラーが発生していたとしても、セルエラーが発生していない領域に格納されたデータを用いて、プリンタ２０側は正常な処理を継続できる。したがって、耐セルエラー性が向上し、記憶装置１３０の不良率を大幅に抑制することができる。
【０１３６】
さらに、本実施例におけるプリンタ２０は、原データＤｎと、反転データ／Ｄｎと、ミラーデータｄｎと、反転ミラーデータ／ｄｎを受け取ったとき、まず、原データＤｎと反転ミラーデータ／ｄｎとの整合性をチェックし、整合性がない場合には、原データＤｎと反転データ／Ｄｎとの整合性、および、ミラーデータｄｎと反転ミラーデータ／ｄｎとの整合性をチェックする。そして、原データＤｎと反転ミラーデータ／ｄｎとの整合性がなく、かつ、原データＤｎと反転データ／Ｄｎとの整合性およびミラーデータｄｎと反転ミラーデータ／ｄｎと整合性がある場合には、セルエラーと判断している。また、原データＤｎと反転ミラーデータ／ｄｎとの整合性がなく、かつ、原データＤｎと反転データ／Ｄｎとの整合性またはミラーデータｄｎと反転ミラーデータ／ｄｎと整合性がない場合には、通信エラーと判断している。こうすることで、プリンタ２０はエラー種別を正しく認識して、エラー種別に応じた処理を行うことができる。
【０１３７】
さらに、本実施例において、強誘電体メモリアレイ１３２のメモリマップ（図７）において、原データ領域には実データとパリティデータが格納されると共に、ミラーデータ領域にも実データとパリティデータとが格納される。書き換え可能領域からの読み出し処理においては、原データ領域に格納された実データ（上位１５ビット）とパリティデータ（下位１ビット）が記憶装置１３０からサブ制御部５０に対して送信されると共に、ミラーデータ領域に格納された実データ（上位１５ビット）とパリティデータ（下位１ビット）が記憶装置１３０からサブ制御部５０に対して送信される。従って、これらのデータを受信したプリンタ２０は、原データ領域に格納された実データについてパリティチェックを行うと共に、ミラーデータ領域に格納された実データについてパリティチェックを行うことができる。そして、主制御部４０は、原データ領域に格納された実データとミラーデータ領域に格納された実データのうちのいずれか一方にパリティエラーが発生していたとしても、パリティエラーが発生していない側の実データを用いて、正常な処理を継続できる。この結果、耐通信エラー性および耐セルエラー性が向上する。
【０１３８】
さらに、本実施例における書き込み処理において、記憶装置１３０は、書き込み対象領域の既存データについて、原データ領域に格納されている１６ビットとミラーデータ領域に格納されている１６ビットのパリティチェックをそれぞれ行う。この結果、パリティエラーが検出された領域には既存データの再書き込みを行い、パリティエラーが検出されない領域には新たなデータの書き込みを行う。パリティエラーの検出された領域にはメモリセルの不具合が存在すると考えられるため、パリティチェックは記憶領域の不具合検出手段と言える。この結果、不具合が発生した領域においてはデータの更新を行わないので、不具合が発生した領域に対してデータを更新することによる予期せぬ不具合を抑制することができる。また、パリティエラーが検出された領域には既存データの再書き込みを行うことにより、セルエラーの発生している領域のデータがデータリテンション不良によって変化することを抑制する。データリテンション不良は、メモリのセルの電荷が徐々に消えていくことにより、記憶されたデータの値が変化する不良をいう。セルエラーが発生しているはず領域において、データリテンション不良によってデータが変化すると、偶然にパリティの整合性が合ってしまい、セルエラーが正しく検出できなくなるおそれがある。
【０１３９】
さらに、本実施例によるプリンタ２０では、センサ１１０を駆動して、インクカートリッジ１００のインク残量が第１のしきい値Ｖｒｅｆ１未満であると判断した場合に、第２インク消費カウント値Ｙが更新されないように、第２インク消費カウント値Ｙが格納される記憶装置１３０の記憶領域に対して禁止要求（ライトロック処理）を行う。この結果、禁止要求のあった後には、記憶装置１３０は、第２インク消費カウント値Ｙに対する更新要求を、受け付けなくなる。この結果、第２インク消費カウント値Ｙは、センサによりインク残量が第１のしきい値Ｖｒｅｆ１未満であると検出される直前のインク消費カウント値に維持される。第２インク消費カウント値Ｙが誤って、更新されてしまうことが抑制される。さらに、第２インク消費カウント値Ｙの更新が停止された後においても、第１インク消費カウント値Ｘは更新されるので、（Ｘ−Ｙ）の値によってセンサによりインク残量が第１のしきい値Ｖｒｅｆ１未満であると検出された後のインク消費量を正確に認識することができる。この結果、インクエンドを精度良く判定することができ、インクカートリッジ１００に収容されたインクを無駄なく最後まで使い切ることが可能になる。
【０１４０】
Ｂ．変形例
・第１変形例：
上記実施例では、原データＤｎに基づいて生成されるデータとして、反転データ／Ｄｎを用いているが、これに限られない。例えば、原データＤｎから所定の値を足した値、所定の値を引いた値、所定の値を掛けた値などを、原データＤｎとの整合性を確認するためのデータとして使用しても良い。一般的には、原データＤｎと、原データＤｎに基づいて生成されるデータは、所定の関連性を有し、原データＤｎと、原データＤｎに基づいて生成されるデータが当該所定の関連性の有無を判定できれば良い。また、原データＤｎと、原データＤｎに基づいて生成されるデータは、同一のデータ量であることが信頼性の面から好ましい。
【０１４１】
・第２変形例：
上記実施例における書き込み処理では、サブ制御部５０から記憶装置１３０に対して、原データ上位８ビットＵＤｎ、反転ミラーデータ上位８ビット／Ｕｄｎ、原データ下位８ビットＬＤｎ、反転原データ下位８ビット／ＬＤｎの順で３２ビットを送信しているが、送信する順番は任意に変更可能であり、原データＤｎ１６ビットを先に送信して、その後に反転データ／Ｄｎ１６ビットを送信することとしても良い。また、反転データを先に送信して、後に原データを送信しても良い。
【０１４２】
・第３変形例：
上記実施例における書き込み処理では、３２ビット分の原データおよび反転データを１つの単位データとして、サブ制御部５０から記憶装置１３０に対して単位データの送信が終わる度に、記憶装置１３０からサブ制御部５０に応答信号を返信しているが、単位データのデータ長は任意に変更可能であり、６４ビット分の原データおよび反転データを１つの単位データとしても良いし、１６ビット分の原データおよび反転データを１つの単位データとしても良い。
【０１４３】
・第４変形例：
上記実施例では、ホスト回路としてプリンタ２０のサブ制御部５０が用いられているが、ホスト回路には任意の計算機などの回路が用いられ得る。また、上記実施例では、記憶装置としてインクカートリッジ１００の記憶装置１３０が用いられているが、任意の不揮発性の記憶装置が用いられ得る。この場合、ホスト回路と記憶装置とは、ホスト回路に電気的に接続された回路側端子と、記憶装置に電気的に接続され回路側端子と脱着可能な記憶装置側端子とを介して、電気的に接続される構成に本発明を適用することが効果的である。こうすれば、記憶装置側端子と回路側端子の接触不良による通信エラーの発生を検出して、ホスト回路と記憶装置との通信の確実性を向上することができる。
【０１４４】
・第５変形例：
上記実施例では、強誘電体メモリアレイ１３２に原データ領域とミラーデータ領域を有しているが、原データ領域だけでも良い。この場合、メモリ制御回路１３６は、原データ領域に格納されたデータを複製して、ミラーデータｄｎ（コピーデータ）を生成する読み出し用のコピーデータ生成部と、原データ領域に格納されたデータの各ビットを反転させて、反転データ／Ｄｎと反転ミラーデータ／ｄｎを生成する反転データ生成部を備えればよい。そして、読み出し処理では、記憶装置１３０側において、メモリ制御回路１３６のデータ送受信部Ｍ１５は、原データＤｎとして、原データ領域に格納されたデータをサブ制御部５０に送信すると共に、原データＤｎを用いて生成されたミラーデータｄｎと、反転データ／Ｄｎと、反転ミラーデータ／ｄｎをサブ制御部５０に送信すれば良い。また、データ送受信部Ｍ１５は、原データ領域から読み出したデータをレジスタに保持後、原データとして送信し、ミラーデータとしてレジスタに保持しているデータを送信してもよい。
【０１４５】
・第６変形例：
上記実施例では、強誘電体メモリアレイ１３２に原データ領域とミラーデータ領域を有しているが、強誘電体メモリアレイ１３２に原データ領域と反転データ領域とを有しても良い。この場合、リード／ライト制御部Ｍ１４は、原データ領域に原データＤｎを格納すると共に、反転データ領域に反転データ／Ｄｎを格納すればよい。そして、読み出し処理では、メモリ制御回路１３６のデータ送受信部Ｍ１５は、原データ領域から読み出したデータを原データＤｎとして、反転データ領域から読み出したデータを反転データ／Ｄｎとしてサブ制御部５０に送信すると共に、同じ原データ領域から読み出したデータをミラーデータｄｎとして、同じ反転データ領域から読み出したデータを反転ミラーデータ／ｄｎとしてサブ制御部５０に送信すれば良い。この場合でも、ホスト回路は、排他的論理和をとることで通信エラーを検出することができる。また、パリティチェックを実施することで、メモリセルエラーが発生している可能性がある。
・第７変型例
上記実施例では、強誘電体メモリアレイ１３２は原データ領域とミラーデータ領域を有しているが、強誘電体メモリアレイ１３２は、原データＤｎを格納する原データ領域と、原データＤｎの反転データ／Ｄｎを格納する反転データ領域と、原データＤｎのミラーデータｄｎを格納するミラーデータ領域と、ミラーデータｄｎの反転データである反転ミラーデータ／ｄｎを格納する反転ミラーデータ領域とを有する構成としても良い。この場合は、メモリ制御回路１３６のリード／ライト制御部Ｍ１４とデータ送受信部Ｍ１５は、格納されたデータをそのまま読み出して、送信すれば良い。
【０１４６】
・第８変形例：
上記実施例における読み出し処理では、原データＤｎと反転データ／Ｄｎとミラーデータｄｎと反転ミラーデータ／ｄｎを、記憶装置１３０からサブ制御部５０に送信しているが、原データＤｎと反転データ／Ｄｎのみを送信してミラーデータｄｎと反転ミラーデータ／ｄｎの送信は省略しても良い。また、原データＤｎとミラーデータｄｎのみを送信して、反転データ／Ｄｎと反転ミラーデータ／ｄｎの送信を省略しても良い。
【０１４７】
・第９変形例：
上記実施例における書き込み処理では、強誘電体メモリアレイ１３２のメモリマップに格納されるべき実データおよびパリティデータの両方がプリンタ２０側で生成され、記憶装置１３０に送信される。これに代えて、プリンタ２０は実データのみを生成して記憶装置１３０に送信し、記憶装置１３０側にてパリティデータを生成しても良い。この場合には、メモリ制御回路１３６は、プリンタ２０から送信された実データ１５ビットに対して整合する１ビットのパリティデータを生成するパリティ取得部を備えれば良い。
【０１４８】
・第１０変形例：
上記実施例における書き込み処理では、記憶装置１３０は、パリティエラーが検出された領域には既存データの再書き込みを行っているが、これに代えて、パリティエラーが検出された領域にはデータの書き込みを行わないこととしても良い。
【０１４９】
・第１１変形例：
上記実施例では、記憶装置１３０の強誘電体メモリアレイ１３２に、インクの消費量を表す第１インク消費カウント値Ｘおよび第２インク消費カウント値Ｙを記録しているが、インクの残量を表す残量情報を記録しても良い。かかる場合には、残量情報の初期値は、インクカートリッジ１００に充填されたインク量を表す値となる。また、印刷処理において、プリンタ２０は、印刷によって消費されたインク量に応じて、強誘電体メモリアレイ１３２に格納された残量情報を減じる方向に残量情報を書き換える。この場合、残量情報が格納される記憶領域は、デクリメント領域に設定されるのが好ましい。デクリメント領域は、数値が減少する方向にのみ書き換えが許容され、数値が増加する方向への書き換えが許容されない領域である。このようなデクリメント領域は、実施例におけるインクリメント領域と同様に、読み出し専用領域にデクリメントフラグ情報を書き込みことにより設定されることが好ましい。
【０１５０】
・第１２変形例：
上記実施例では、第２インク消費カウント値Ｙと第１インク消費カウント値Ｘをそれぞれ強誘電体メモリアレイ１３２に格納して、第２インク消費カウント値Ｙと第１インク消費カウント値Ｘとの差分に基づいてインクエンドを判断している。これに代えて、第２インク消費カウント値Ｙのみを強誘電体メモリアレイ１３２に格納することとしても良い。この場合は、第１インク消費カウント値Ｘの値は、プリンタ２０側に備える不揮発性のメモリに格納して実施例と同様の処理を行えば良い。
【０１５１】
・第１３変形例：
上記実施例は、インクジェット式の印刷装置およびインクカートリッジが採用されているが、インク以外の他の液体を噴射したり吐出したりする液体噴射装置および当該液体噴射装置に液体を供給する液体容器を採用しても良い。ここでいう液体は、溶媒に機能材料の粒子が分散されている液状体、ジェル状のような流状体を含む。例えば、液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ、面発光ディスプレイ、カラーフィルタの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液体を噴射する液体噴射装置、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を噴射する液体噴射装置、光通信素子等に用いられる微小半球レンズ（光学レンズ）などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に噴射する液体噴射装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を噴射する液体噴射装置、および、これらの液体噴射装置に液体を供給する液体容器を採用しても良い。そして、これらのうちいずれか一種の噴射装置および液体容器に本発明を適用することができる。さらに、インクジェット方式のプリンタに限定されず、トナーなどの記録材をつかって印刷を実行するレーザプリンタおよびトナーカートリッジを採用してもよい。
【０１５２】
・第１４変形例：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしても良い。
【０１５３】
・第１５変形例：
上記実施例では、圧電素子を用いたセンサ１１０が用いられているが、これに代えて、例えば、常にインクがあることを示す周波数の応答信号を返す発振回路などの発振装置を用いても良く、サブ制御部５０と何らかの遣り取りを行うＣＰＵやＡＳＩＣなどのプロセッサや、より簡易なＩＣを用いても良い。また、センサなどが搭載されず、記憶装置のみが搭載されるタイプのインクカートリッジ１００にも本発明は適用され得る。
【０１５４】
・第１６変形例：
上記実施例では、１つのインクタンクを１つのインクカートリッジとして構成しているが、複数のインクタンクを１つのインクカートリッジとして構成しても良い。
【０１５５】
・第１７変形例：
上記の実施例では、液体供給ユニットは、基板が容器本体に固定されたインクカートリッジであり、基板は容器本体と一体となって印刷ヘッドユニットに設けられたホルダに装着されるが、本発明が適用される液体供給ユニットとして、基板が固定されるカバーと、液体を収容する容器本体とが、各々個別にホルダに装着されるインクカートリッジとしてもよい。例えば、所定挿入方向に基板が固定されたカバーをホルダに挿入して装着した後、さらに、容器本体をホルダに装着するような構成が挙げられる。この場合、容器本体内のインクが無くなったらインク容器本体のみを交換し、交換にともなって記憶装置１３０に記憶されたインク消費量情報（第１インク消費カウント値Ｘ、および、第２インク消費カウント値Ｙ）がリセットされるように構成しておけばよい。
【０１５６】
・第１８変形例：
上記の実施例では、液体収容ユニットは、印刷ヘッドユニットのホルダに装着され、インク供給部から印刷ヘッドに直接インクが供給されるが、液体収容ユニットは、液体噴射装置内のヘッドとは離れた位置に装着され、液体収容ユニットの液体供給部に連結されたチューブを介してインクをヘッドに供給する構成としてもよい。
【０１５７】
・第１９変形例：
上記の実施例では、記憶装置１３０は、強誘電体メモリセルアレイ１３２を備えた半導体記憶装置であるとして説明したが、これに限定されず強誘電体メモリセルを利用しない半導体記憶装置（ＥＥＰＲＯＭ，フラッシュメモリ）でもよい。さらに半導体記憶装置以外の記憶装置であってもよい。
【０１５８】
・第２０変形例：
上記実施例では、主制御部４０と通信処理部５５とが別の構成であったが、一体の制御部であってもよい。
【０１５９】
・第２１変形例：
上記実施例では、記憶装置１３０とサブ制御部５０との通信において、サブ制御部５０から記憶装置１３０に対してリセット信号ＣＲＳＴを供給しているが、リセット信号ＣＲＳＴの供給は省略しても良い。この場合、記憶装置１３０のリセット端子２４０、リセット端子２４０に対応するプリンタ２０側の端子４４０、および、リセット信号線ＬＲ１は省略される。この場合、例えば、記憶装置１３０の初期化は、記憶装置１３０が電源電圧ＣＶＤＤの供給を受けて起動するときに、記憶装置１３０が自発的に行う。起動時に、自身を初期化した記憶装置１３０は、その後、実施例と同様に、サブ制御部５０からクロック信号ＣＳＣＫとデータ信号ＣＳＤＡの供給を受けて動作すれば良い。
【０１６０】
・第２２変形例：
上記実施例では、記憶装置１３０のメモリ制御回路１３６は、ＩＤ比較部Ｍ１１、コマンド解釈部Ｍ１２、データ判定部Ｍ１９を備えている。ＩＤ比較部Ｍ１１、コマンド解釈部Ｍ１２、データ判定部Ｍ１９は、各々、別のハードウェアで構成されてもよいし、一部もしくは全てが共通のハードウェアで構成されてもよい。
【０１６１】
以上、本発明の実施例および変形例について説明したが、本発明はこれらの実施例および変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
【符号の説明】
【０１６２】
２０…プリンタ
２２…モータ
２６…プラテン
３０…キャリッジ
３２…キャリッジモータ
３４…摺動軸
３６…駆動ベルト
３８…プーリ
４０…主制御部
４２…駆動信号生成回路
４８…制御回路
５０…サブ制御部
５２…センサ処理部
５３…検出部
５５…通信処理部
６０…印刷ヘッドユニット
６２…ホルダ
６３…ホルダカバー
６４…インク供給針
６６…接続機構
６７…接続端子
６８…印刷ヘッド
７０…操作部
８０…コネクタ
９０…コンピュータ
１００…インクカートリッジ
１０１…本体
１０２…蓋体
１０４…インク供給口
１０５…凹部
１１０…センサ
１２０…回路基板
１３０…記憶装置
１３２…強誘電体メモリアレイ
１３６…メモリ制御回路
５５１…ＳＲＡＭ
５５２…センサ用レジスタ
【図１】
2010257446.tif 000003
【図２】
2010257446.tif 000004
【図３】
2010257446.tif 000005
【図４】
2010257446.tif 000006
【図５】
2010257446.tif 000007
【図６】
2010257446.tif 000008
【図７】
2010257446.tif 000009
【図８】
2010257446.tif 000010
【図９】
2010257446.tif 000011
【図１０】
2010257446.tif 000012
【図１１】
2010257446.tif 000013
【図１２】
2010257446.tif 000014
【図１３】
2010257446.tif 000015
【図１４】
2010257446.tif 000016
【図１５】
2010257446.tif 000017
【図１６】
2010257446.tif 000018
【図１７】
2010257446.tif 000019