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