(57)【要約】【課題】特定のデータにエラーが生じた場合に記憶装置を使用可能にできる印刷装置等を提供すること。【解決手段】印刷装置は、ホスト装置４００と印刷材収容体とを含む。印刷材収容体の記憶装置１００は、記憶部１２０と、通信部１１０と、ホスト装置４００のホスト制御部４１０からの指示に基づいて、記憶部１２０からデータを読み出す制御及び記憶部１２０へデータを書き込む制御を行うメモリー制御部１３０と、を有する。ホスト制御部４１０は、記憶部１２０に記憶されたデータにエラーがあると判定した場合、エラーがあると判定したデータが格納されたメモリー領域が特定のメモリー領域ＭＡＳであるか否かを判定し、そのメモリー領域が特定のメモリー領域ＭＡＳであると判定した場合には、そのメモリー領域へデフォルト値又はエラーコードを書き込む指示を、メモリー制御部１３０に対して行う。【選択図】      図１
2013198986.tif 000002
【特許請求の範囲】
【請求項１】
ホスト制御部を有するホスト装置と、記憶装置を有する印刷材収容体と、を含む印刷装置であって、
前記記憶装置は、
複数種類のデータを記憶する記憶部と、
前記ホスト装置との通信処理を行う通信部と、
前記ホスト制御部からの指示に基づいて、前記記憶部からデータを読み出す制御及び前記記憶部へデータを書き込む制御を行うメモリー制御部と、
を有し、
前記ホスト制御部は、
前記記憶部に記憶されたデータにエラーがあると判定した場合、前記エラーがあると判定したデータが格納されたメモリー領域が特定のメモリー領域であるか否かを判定し、前記メモリー領域が前記特定のメモリー領域であると判定した場合には、前記メモリー領域へデフォルト値又はエラーコードを書き込む指示を、前記メモリー制御部に対して行うことを特徴とする印刷装置。
【請求項２】
請求項１において、
前記記憶部の前記特定のメモリー領域は、
前記印刷装置の識別情報、前記印刷材収容体の使用開始年月日情報、前記印刷材収容体の使用終了年月日情報、前記ホスト装置で発生したエラーの履歴情報、前記印刷材収容体で発生したエラーの履歴情報のうちの少なくとも１つを記憶する領域であることを特徴とする印刷装置。
【請求項３】
請求項１又は２において、
前記記憶装置は、
前記記憶部から読み出されたデータにエラーがあるか否かを検査するエラー検査部を有し、
前記ホスト制御部は、データ読み出しコマンドを前記メモリー制御部に送信し、前記メモリー制御部は、前記データ読み出しコマンドに基づいて前記記憶部からデータを読み出す制御を行い、前記エラー検査部は、読み出されたデータにエラーがあるか否かを検査し、検査情報を前記ホスト制御部に送信し、前記ホスト制御部は、前記検査情報に基づいて、前記記憶部に記憶されたデータにエラーがあるか否かの判定を行うことを特徴とする印刷装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記記憶部は、
前記特定のメモリー領域とは異なるメモリー領域である、第１のメモリー領域及び第２のメモリー領域を有し、
前記メモリー制御部は、
前記第１のメモリー領域及び前記第２のメモリー領域のうちの一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択し、前記選択した読み出し用メモリー領域からデータを読み出す制御及び前記選択した書き込み用メモリー領域へデータを書き込む制御を行うことを特徴とする印刷装置。
【請求項５】
請求項４において、
前記記憶装置は、
前記第１のメモリー領域及び前記第２のメモリー領域に記憶されたデータのエラーの有無を検査するエラー検査部を有し、
前記メモリー制御部は、
前記エラー検査部によりエラーが検出された場合、前記第１のメモリー領域及び前記第２のメモリー領域のうち、エラーが検出された領域を前記書き込み用メモリー領域として選択し、エラーが非検出である領域を前記読み出し用メモリー領域として選択することを特徴とする印刷装置。
【請求項６】
請求項４又は５において、
前記メモリー制御部は、
前記第１のメモリー領域及び前記第２のメモリー領域に記憶されるメモリー領域選択情報に基づいて、前記書き込み用メモリー領域を選択し、
前記書き込み用メモリー領域にデータを書き込む制御を行う際に、前記書き込み用メモリー領域に記憶された前記メモリー領域選択情報を更新することを特徴とする印刷装置。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記第１のメモリー領域及び前記第２のメモリー領域は、
印刷材収容体に収容される印刷材の量の情報を少なくとも記憶する領域であることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置等に関する。
【背景技術】
【０００２】
インクジェット方式のプリンターで用いられるインクカートリッジ（印刷材収容体）には、記憶装置が設けられているものがある。この記憶装置には、例えばインク（印刷材）の色やインク消費量などの情報が格納される。インク消費量に関するデータは、プリンター本体（ホスト装置）から記憶装置に送信され、記憶装置に含まれる不揮発性メモリーなどに書き込まれる。ところがインクカートリッジは、通常、交換可能な構造になっているために、電気的接続部分の接触不良が生じ易く、接触不良による通信エラーなどが発生すると、誤ったデータが書き込まれるおそれがある。
【０００３】
例えば特許文献１には、書き込みデータが有する増減特性に反する値の書き込みを制限することにより、誤ったデータが書き込まれる可能性を低減する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２００６／１２９７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さて、インクカートリッジの記憶装置には、プリンター本体のシリアルナンバーなどの、エラーを生じても通常の動作には影響のないデータも記憶されている。このようなデータにエラーが生じた場合にインクカートリッジを使用不可にしてしまうと、実際には動作に影響ないにも関わらずインクカートリッジ（又は記憶装置）の交換が必要になるという課題がある。
【０００６】
本発明の幾つかの態様によれば、特定のデータにエラーが生じた場合に記憶装置を使用可能にできる印刷装置等を提供できる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ホスト制御部を有するホスト装置と、記憶装置を有する印刷材収容体と、を含む印刷装置であって、前記記憶装置は、複数種類のデータを記憶する記憶部と、前記ホスト装置との通信処理を行う通信部と、前記ホスト制御部からの指示に基づいて、前記記憶部からデータを読み出す制御及び前記記憶部へデータを書き込む制御を行うメモリー制御部と、を有し、前記ホスト制御部は、前記記憶部に記憶されたデータにエラーがあると判定した場合、前記エラーがあると判定したデータが格納されたメモリー領域が特定のメモリー領域であるか否かを判定し、前記メモリー領域が前記特定のメモリー領域であると判定した場合には、前記メモリー領域へデフォルト値又はエラーコードを書き込む指示を、前記メモリー制御部に対して行う印刷装置に関係する。
【０００８】
本発明の一態様によれば、記憶部に記憶されたデータにエラーがあると判定され、そのデータが格納されたメモリー領域が特定のメモリー領域であると判定された場合には、そのメモリー領域へデフォルト値又はエラーコードが書き込まれる。これにより、特定のデータにエラーが生じた場合であっても、記憶装置を使用可能にすることが可能となる。
【０００９】
また本発明の一態様では、前記記憶部の前記特定のメモリー領域は、前記印刷装置の識別情報、前記印刷材収容体の使用開始年月日情報、前記印刷材収容体の使用終了年月日情報、前記ホスト装置で発生したエラーの履歴情報、前記印刷材収容体で発生したエラーの履歴情報のうちの少なくとも１つを記憶する領域であってもよい。
【００１０】
これらの情報は、例えば、仮に失われたとしても印刷装置の動作に影響を与えないような情報である。このような情報を特定のメモリー領域が記憶することで、これらの情報にエラーが発生した場合であっても、デフォルト値又はエラーコードを書き込んで記憶装置を使用可能にすることができる。
【００１１】
また本発明の一態様では、前記記憶装置は、前記記憶部から読み出されたデータにエラーがあるか否かを検査するエラー検査部を有し、前記ホスト制御部は、データ読み出しコマンドを前記メモリー制御部に送信し、前記メモリー制御部は、前記データ読み出しコマンドに基づいて前記記憶部からデータを読み出す制御を行い、前記エラー検査部は、読み出されたデータにエラーがあるか否かを検査し、検査情報を前記ホスト制御部に送信し、前記ホスト制御部は、前記検査情報に基づいて、前記記憶部に記憶されたデータにエラーがあるか否かの判定を行ってもよい。
【００１２】
このようにすれば、記憶装置のエラー検査部からの検査結果に基づいて、ホスト装置４００のホスト制御部４１０が、記憶部に記憶されたデータにエラーがあるか否かを判定できる。
【００１３】
また本発明の一態様では、前記記憶部は、前記特定のメモリー領域とは異なるメモリー領域である、第１のメモリー領域及び第２のメモリー領域を有し、前記メモリー制御部は、前記第１のメモリー領域及び前記第２のメモリー領域のうちの一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択し、前記選択した読み出し用メモリー領域からデータを読み出す制御及び前記選択した書き込み用メモリー領域へデータを書き込む制御を行ってもよい。
【００１４】
このように第１、第２のメモリー領域を選択的に用いることで、どちらか一方のメモリー領域のデータにエラーが生じた場合であっても、ホスト装置から受信した正常なデータを書き込むことができる。これにより、特定のメモリー領域以外のメモリー領域においてエラーの発生率を低減できるため、メモリーエラーにより記憶装置が使用不可となる可能性を更に低減できる。
【００１５】
また本発明の一態様では、前記記憶装置は、前記第１のメモリー領域及び前記第２のメモリー領域に記憶されたデータのエラーの有無を検査するエラー検査部を有し、前記メモリー制御部は、前記エラー検査部によりエラーが検出された場合、前記第１のメモリー領域及び前記第２のメモリー領域のうち、エラーが検出された領域を前記書き込み用メモリー領域として選択し、エラーが非検出である領域を前記読み出し用メモリー領域として選択してもよい。
【００１６】
このようにすれば、第１、第２のメモリー領域の一方にエラーがある場合であっても、エラーのない領域を読み出し用メモリー領域として選択することにより、正常なデータを読み出すことができる。
【００１７】
また本発明の一態様では、前記メモリー制御部は、前記第１のメモリー領域及び前記第２のメモリー領域に記憶されるメモリー領域選択情報に基づいて、前記書き込み用メモリー領域を選択し、前記書き込み用メモリー領域にデータを書き込む制御を行う際に、前記書き込み用メモリー領域に記憶された前記メモリー領域選択情報を更新してもよい。
【００１８】
このようにすれば、書き込み用メモリー領域として選択されたメモリー領域のメモリー領域選択情報のみを更新することで、メモリー領域選択情報を更新し、次のメモリーアクセスにおける書き込み用メモリー領域及び読み出し用メモリー領域を更新することが可能となる。
【００１９】
また本発明の一態様では、前記第１のメモリー領域及び前記第２のメモリー領域は、印刷材収容体に収容される印刷材の量の情報を少なくとも記憶する領域であってもよい。
【００２０】
このような情報は、例えば、印刷装置の動作において重要な情報である。このような情報を第１、第２のメモリー領域に選択的に記憶することで、重要な情報がエラーにより失われる可能性を低減できる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態における印刷装置の構成例。
【図２】ホスト装置が行うデータ読み出し処理のフローチャート例。
【図３】記憶装置が行うデータ読み出し処理のフローチャート例。
【図４】ホスト装置が行うデータ書き込み処理のフローチャート例。
【図５】記憶装置が行うデータ書き込み処理のフローチャート例。
【図６】図６（Ａ）、図６（Ｂ）は、第１、第２のメモリー領域の詳細な構成例。
【図７】図７（Ａ）〜図７（Ｃ）は、メモリー制御部が行うメモリー領域選択処理についての説明図。
【図８】更新条件を判断する処理のフローチャート例。
【図９】システムの基本的な構成例。
【図１０】印刷装置の構成例の斜視図。
【図１１】インクカートリッジの構成例の斜視図。
【図１２】図１２（Ａ）、図１２（Ｂ）は、記憶装置が設けられる基板の構成例。
【発明を実施するための形態】
【００２２】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２３】
１．印刷装置
図１は、本実施形態における印刷装置の構成例を示すブロック図である。図１の印刷装置は、ホスト装置４００、記憶装置１００を含む。以下では、印刷装置がインクジェット方式のプリンターである場合を例に説明するが、本実施形態はこれに限定されず、種々の印刷材を用いた印刷装置に本実施形態を適用可能である。なお以下では適宜、印刷装置をプリンターと呼び、印刷材をインクと呼び、印刷材収容体をインクカートリッジと呼ぶ。
【００２４】
記憶装置１００は、例えばインクジェット方式のプリンターで用いられるインクカートリッジ（広義には印刷材収容体）に設けられる記憶装置であって、プリンター本体（ホスト装置４００）から送信されたインク消費量などの情報が格納される。記憶装置１００は、通信部１１０、記憶部１２０、メモリー制御部１３０、更新条件判断部１４０（狭義にはインクリメント判断部又はデクリメント判断部）、エラー検査部１５０、発振回路ＯＳＣ、パワーオンリセット回路ＰＯＲを含む。
【００２５】
通信部１１０は、通信エラー検出部ＣＥＲを含み、ホスト装置４００との通信処理を行う。具体的には、通信部１１０は、ホスト装置４００が有するホスト通信部４２０との間でデータ信号ＳＤＡの送受信を行う。また、通信部１１０は、ホスト装置４００からのリセット信号ＸＲＳＴ及びクロック信号ＳＣＫを受信する。通信エラー検出部ＣＥＲは、受信したデータの通信エラーの有無を検出する。この通信エラーの検出は、例えばパリティチェック等の手法を用いることができる。
【００２６】
記憶部１２０は、例えばフラッシュメモリーや強誘電体メモリー等の不揮発性メモリーであって、第１、第２のメモリー領域ＭＡ１、ＭＡ２と特定のメモリー領域ＭＡＳとを含む。第１、第２のメモリー領域ＭＡ１、ＭＡ２は、ホスト装置４００からの受信データ及びメモリー領域選択情報ＡＳＢを記憶する領域である。この受信データは、例えばプリンターのインクカートリッジのインク消費量などである。特定のメモリー領域ＭＡＳは、特定のデータを記憶する領域である。特定のデータは、例えばプリンター本体のＩＤ情報、インクカートリッジの使用開始年月日情報、インクカートリッジの使用終了年月日情報、プリンター本体で発生したエラーの履歴情報、インクカートリッジで発生したエラーの履歴情報などである。
【００２７】
メモリー制御部１３０は、ホスト装置４００からの指示に基づいて、記憶部１２０へのデータ書き込み制御や記憶部１２０からのデータ読み出し制御を行う。メモリー制御部１３０は、メモリー領域選択部ＡＳＥＬを含む。メモリー領域選択部ＡＳＥＬは、第１、第２のメモリー領域ＭＡ１、ＭＡ２にアクセスする場合には、ＭＡ１、ＭＡ２の一方を読み出し用メモリー領域として選択し、ＭＡ１、ＭＡ２の他方を書き込み用メモリー領域として選択する。また、メモリー制御部１３０は、メモリー領域選択情報生成部ＡＳＢＧを含む。このメモリー領域選択情報生成部ＡＳＢＧは、書き込み用メモリー領域にデータを書き込む際に、メモリー領域選択情報ＡＳＢを更新する処理を行う。
【００２８】
更新条件判断部１４０は、ホスト装置からライトコマンドと受信データ（書き込みデータ）を受信したときに、メモリー制御部１３０により読み出し用メモリー領域から読み出されたデータの値と受信データの値との大小関係を比較する。メモリー制御部１３０は、その大小関係が更新条件を満たす場合には受信データを書き込み用メモリー領域に書き込み、大小関係が更新条件を満たさない場合には受信データを書き込み用メモリー領域に書き込まない（非書き込みとする）。更新条件とは、インクリメント条件又はデクリメント条件である。インクリメント条件とは、新しく書き込まれるデータの値が、前回のアクセス時に書き込まれた値と等しいか又はそれより大きい値でなければならないとする条件である。またデクリメント条件とは、新しく書き込まれるデータの値が、前回のアクセス時に書き込まれた値と等しいか又はそれより小さい値でなければならないとする条件である。
【００２９】
エラー検査部１５０は、メモリー領域ＭＡ１、ＭＡ２、ＭＡＳに書き込まれたデータのエラーの有無を検査する。このエラーの検出は、例えばパリティチェックやチェックサムなどの手法を用いることができる。エラー検査部１５０が特定のメモリー領域ＭＡＳのエラーを検出した場合、及びエラー検査部１５０が第１、第２のメモリー領域ＭＡ１、ＭＡ２の両方のエラーを検出した場合、メモリー制御部１３０は、ホスト装置４００に対してエラー通知コードを送信する。また、エラー検査部１５０の検査結果とメモリー領域選択情報ＡＳＢとに基づいて、メモリー制御部１３０は、ＭＡ１、ＭＡ２のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択する。
【００３０】
発振回路ＯＳＣは、記憶装置１００の内部クロックを生成する。また、パワーオンリセット回路ＰＯＲは、記憶装置１００の電源電圧が所定の電圧に到達した後にリセットを解除するためのものである。
【００３１】
ホスト装置４００は、例えばプリンター本体などである。ホスト装置４００は、記憶装置１００に対して第１の電源（低電位電源）ＶＳＳ及び第２の電源（高電位電源）ＶＤＤを供給する。ホスト装置４００は、ホスト制御部４１０、ホスト通信部４２０を含む。
【００３２】
ホスト制御部４１０は、プリンター本体の制御や記憶装置１００の制御を行う。例えば、ホスト制御部４１０は、プリンターの印刷処理、記憶装置１００との通信処理、インク消費量のカウント処理などの制御を行う。ホスト制御部４１０は、エラー判定部４１１、領域判定部４１２、Ｒ／Ｗ（リード／ライト）制御部４１３を含む。
【００３３】
エラー判定部４１１は、記憶部１２０から読み出されたデータに基づいて、記憶部１２０の記憶データにエラーがあるか否かの判定を行う。具体的には、エラー判定部４１１は、メモリー制御部１３０からエラー通知コードを受信した場合に記憶部１２０の記憶データにエラーがあると判定する。
【００３４】
領域判定部４１２は、エラー判定部４１１により記憶データにエラーがあると判定されたメモリー領域が、特定のメモリー領域ＭＡＳであるか否かを判定する。具体的には、記憶部１２０から読み出したデータのメモリーアドレスが、特定のメモリー領域ＭＡＳに含まれるメモリーアドレスである場合に、特定のメモリー領域ＭＡＳにエラーがあると判定する。ホスト制御部４１０は、エラーがあると判定されたメモリー領域が特定のメモリー領域ＭＡＳであった場合には、エラー処理（例えばユーザーに対するエラー通知処理）を行わず、記憶装置１００が正常であるものとして処理を行う。
【００３５】
Ｒ／Ｗ制御部４１３は、ホスト通信部４２０と通信部１１０を介して、メモリー制御部１３０に対してメモリーアクセスの指示を行う。即ち、Ｒ／Ｗ制御部４１３は、リードコマンドをメモリー制御部１３０に対して送信し、メモリー制御部１３０によって記憶部１２０から読み出されたデータを受信する制御を行う。またＲ／Ｗ制御部４１３は、ライトコマンド及び書き込みデータをメモリー制御部１３０に対して送信する制御を行う。またＲ／Ｗ制御部４１３は、エラー判定部４１１により記憶部１２０の特定のメモリー領域ＭＡＳにエラーがあると判定された場合に、そのエラーがあった領域に対してデフォルト値（狭義には初期値）又はエラーコードを書き込む制御を行う。
【００３６】
ホスト通信部４２０は、記憶装置１００との通信処理を行う。即ち、ホスト通信部４２０は、ホスト制御部４１０からのコマンドやデータを所定の通信信号に変換し、その通信信号を通信部１１０に対して送信する処理を行う。またホスト通信部４２０は、通信部１１０によって所定の通信信号に変換されたメモリー制御部１３０からのデータを受信し、その通信信号をデータに変換してホスト制御部４１０に出力する。
【００３７】
２．ホスト装置側の読み出し処理
次に、上記印刷装置が行う動作について詳細に説明する。図２に、ホスト装置４００が行うデータ読み出し処理のフローチャート例を示す。
【００３８】
図２に示すように、データ読み出し処理が開始されると、ホスト装置４００のホスト通信部４２０は、制御対象となる記憶装置１００のＩＤ情報を送信する（ステップＳ１）。図９等で後述するように、プリンター本体には複数のインクカートリッジを装着可能であり、各インクカートリッジに設けられた記憶装置１００は、ホスト装置に対してバス接続されている。ホスト装置４００は、インクカートリッジに装着された記憶装置１００のＩＤ情報により制御対象を特定する。次に、Ｒ／Ｗ制御部４１３がデータ読み出しコマンドを記憶装置１００に対して送信し（ステップＳ２）、記憶装置１００から読み出しデータを受信する（ステップＳ３）。図６（Ａ）等で後述するように、読み出しデータの受信はブロック単位で行われる。記憶装置１００が行うデータ読みだし処理については、図３等で後述する。
【００３９】
次に、ホスト通信部４２０が通信エラーがあるか否かの判定を行う（ステップＳ４）。通信エラーが有ると判定した場合には、エラー処理を行う。例えば、再度、データ読み出しコマンドを送信する。一方、通信エラーが無いと判定した場合には、エラー判定部４１１が、読み出しデータがエラー通知コードであるか否かの判定を行う（ステップＳ５）。読み出しデータがエラー通知コードでない場合、即ち読み出したブロックのデータにエラーが無い場合には、ホスト制御部４１０は、必要な全てのデータの受信が終了したか否かを判断する（ステップＳ８）。終了していない場合は、ステップＳ３に戻って次のブロックのデータを受信する。必要な全てのデータの受信が終了すれば、読み出し処理を終了する。
【００４０】
一方、ステップＳ５において、読み出しデータがエラー通知コードである場合には、領域判定部４１２は、エラーの発生したブロックが特定のメモリー領域ＭＡＳに属するブロックであるか否かを判定する（ステップＳ６）。この判定では、例えばデータ読み出しコマンドの対象アドレスが、メモリー領域ＭＡＳに属するブロックを指定するアドレスに該当するか否かを判定する。特定のメモリー領域ＭＡＳに属しないと判定した場合には、ホスト制御部４１０は、エラー処理を行う。例えば、ユーザーに対してカートリッジの交換を指示する旨の通知する処理を行う。
【００４１】
一方、ステップＳ６において、特定のメモリー領域ＭＡＳに属すると判定した場合には、Ｒ／Ｗ制御部４１３は、エラーの発生したブロックのデータを、そのデータに対応するデフォルト値又はエラーコードで上書きする処理を行う（ステップＳ７）。ここで、デフォルト値とは、例えば記憶装置１００に最初（例えば製造時）に記憶されているデータや、記憶装置１００がホスト装置４００に初めて接続されたときに書き込まれるデータなどである。
【００４２】
例えばデータがプリンター本体のシリアルナンバーである場合、シリアルナンバーのデフォルト値を書き込む。シリアルナンバーは、例えば、インクカートリッジが交換されて、新たなインクカートリッジがプリンターに装着されたときに、インクカートリッジの記憶装置においてプリンター本体のシリアルナンバーを記憶するブロックに、書き込まれる情報である。そのため、デフォルト値を書き込んでおけば、カートリッジが別のプリンターに装着された場合に、別のプリンターのシリアルナンバーに書き換えられるだけなので、特に問題を生じることはない。また、データがインクカートリッジの使用開始年月日や使用終了年月日である場合、例えばオール“０”又はオール“１”などのエラーコードを書き込む。実在しない年月日をエラーコードとして書き込んでおけば、誤った年月日が書き込まれることがなく、また通常の印刷動作に影響を与えることもない。また、データがホスト装置４００又は記憶装置１００で発生したエラーの履歴情報である場合、その履歴情報のデフォルト値を書き込む。即ち、一旦デフォルト値に戻しておき、次にエラーが発生したときに、そのエラーの履歴情報を書き込めばよい。
【００４３】
ステップＳ７の上書き処理が終了したら、次に、必要な全てのデータの受信が終了したか否かを判断する（ステップＳ８）。終了していない場合は、ステップＳ３に戻って次のブロックのデータを受信する。必要な全てのデータの受信が終了すれば、読み出し処理を終了する。
【００４４】
３．記憶装置側の読み出し処理
図３に、記憶装置１００が行うデータ読み出し処理のフローチャート例を示す。図３に示すように、読み出し処理が開始されると、記憶装置１００の通信部１１０がＩＤ情報を受信し（ステップＳ２０）、通信エラー検出部ＣＥＲが通信エラーの有無を判断する（ステップＳ２１）。通信エラーが有ると判断した場合、記憶装置１００はメモリーアクセス動作を行わない。一方、通信エラーが無いと判断した場合、通信部１１０は、受信したＩＤ情報と記憶装置が予め有するＩＤ情報とが一致するか否かを判断する（ステップＳ２２）。一致しない場合には記憶装置１００はメモリーアクセス動作を行わない。一致する場合には通信部１１０はコマンドを受信する（ステップＳ２３）。
【００４５】
次に、通信エラー検出部ＣＥＲが、ステップＳ２３のコマンド受信における通信エラーの有無を判断する（ステップＳ２４）。通信エラーが有ると判断した場合、記憶装置１００はメモリーアクセス動作を行わない。一方、通信エラーが無いと判断した場合、通信部１１０が、受信したコマンドがデータ読み出しコマンドであるか否かを判断する（ステップＳ２５）。データ読み出しコマンドでない場合には、そのコマンドを実行するフローに分岐する。
【００４６】
一方、データ読み出しコマンドである場合には、メモリー制御部１３０がメモリー領域ＭＡ１、ＭＡ２又はメモリー領域ＭＡＳからデータを読み出し（ステップＳ２６）、エラー検査部１５０がエラーの有無を判断する（ステップＳ２７）。エラーを検出した場合には、通信部１１０はエラー通知コード（エラーコード）をホスト装置４００に対して送信する。一方、エラー非検出の場合には、メモリー制御部１３０が記憶部１２０からデータを読み出し、ホスト装置４００に送信する（ステップＳ２８）。
【００４７】
具体的には、特定のメモリー領域ＭＡＳからデータを読み出した場合においてエラーを検出した場合、通信部１１０はエラー通知コード（エラーコード）をホスト装置４００に対して送信し、処理を終了する。エラー通知コードは、読み出しデータと同一データ形式のコードであり、正常な読み出しデータでは発生し得ない特定のコードである。例えば、読み出しデータは、正転読み出しデータ、そのパリティビット、正転読み出しデータの反転データ、そのパリティビットで構成される。この場合、エラー通知コードは、例えばオール“１”の正転読み出しデータ、パリティビット“０”、オール“１”の反転読み出しデータ、パリティビット“０”で構成される。一方、特定のメモリー領域ＭＡＳがエラー非検出の場合、メモリー制御部１３０は、ステップＳ２６で読み出したデータをホスト装置４００に対して送信する（ステップＳ２８）。エラー非検出の場合には、読み出しデータとして、「記憶部からの読み出しデータ+読み出しデータから生成されたパリティビット+読み出しデータの反転データ+読み出しデータの反転データから生成されたパリティビット」のデータ形式のデータがホストに送信される。
【００４８】
また、第１、第２のメモリー領域ＭＡ１、ＭＡ２からデータを読み出した場合において、ＭＡ１、ＭＡ２の両方にエラーを検出した場合、通信部１１０はエラー通知コードをホスト装置４００に対して送信し、処理を終了する。一方、第１、第２メモリー領域ＭＡ１、ＭＡ２の両方又はいずれか一方がエラー非検出である場合、メモリー領域選択部ＡＳＥＬがメモリー領域の選択を行う。そして、メモリー制御部１３０は、ステップＳ２６で読み出したデータのうち読み出し用メモリー領域のデータを、ホスト装置４００に対して送信する（ステップＳ２８）。この第１、第２のメモリー領域ＭＡ１、ＭＡ２に対する領域選択処理や読み出し処理については、図６（Ａ）等で詳細に後述する。
【００４９】
次に、通信部１１０は、データ通信用のクロック信号ＳＣＫが入力終了であるか否かを判断する（ステップＳ２９）。入力終了でない場合、ステップＳ２６〜Ｓ２８を再度実行する。入力終了である場合、必要な全てのブロックについてデータの読み出しが終了したものと判断して、処理を終了する。
【００５０】
さて、インクカートリッジはプリンター本体に着脱可能に装着して用いる構造（例えば図１０）であるため、プリンター本体と記憶装置とを接続する電気的接続部分に接触不良を生じ易い。そのために、データ書き込み時に電源端子等に接触不良があると、不正なデータが記憶装置に書き込まれてしまうことがある。このような正しくないデータが記憶装置１００に記憶された場合、ホスト装置が記憶装置１００からデータを読み出したときに、読み出したデータにエラーがあると判定し、インクカートリッジが使用不可能になるおそれがある。エラーとなったデータが、インクカートリッジのインク消費量を示すデータ等のインクカートリッジの使用に影響があるデータではなく、インクカートリッジの使用に影響のないデータである場合、実際にはインクカートリッジを使用できるにも関わらずインクカートリッジの交換をユーザーに強いることとなり、ユーザーの不利益になるという課題がある。
【００５１】
この点、本実施形態によれば、図１に示すように、印刷装置は、ホスト制御部４１０を有するホスト装置４００と、記憶装置１００を有する印刷材収容体（例えば図９の印刷材収容体３００−１等）と、を含む。記憶装置１００は、複数種類のデータを記憶する記憶部１２０と、ホスト装置４００との通信処理を行う通信部１１０と、ホスト制御部４１０からの指示に基づいて、記憶部１２０からデータを読み出す制御及び記憶部１２０へデータを書き込む制御を行うメモリー制御部１３０と、を有する。図２等で説明したように、ホスト制御部４１０は、記憶部１２０に記憶されたデータにエラーがあると判定（ステップＳ５）した場合、エラーがあると判定したデータが格納されたメモリー領域が特定のメモリー領域ＭＡＳであるか否かを判定する（ステップＳ６）。ホスト制御部４１０は、そのメモリー領域が特定のメモリー領域ＭＡＳであると判定した場合には、そのメモリー領域へデフォルト値又はエラーコードを書き込む指示を、メモリー制御部１３０に対して行う（ステップＳ７）。
【００５２】
このようにすれば、記憶装置１００の端子の接触不良などによって、記憶部１２０の特定のメモリー領域ＭＡＳに対して不正なデータが書き込まれてメモリーエラーとなった場合であっても、デフォルト値又はエラーコードを書き込むことにより、インクカートリッジを使用継続することが可能となる。即ち、インクカートリッジの交換が不要となり、ユーザーの不利益を回避することが可能となる。
【００５３】
ここで、上記のメモリー領域とは、記憶部１２０においてデータを記憶する領域である。メモリー領域ＭＡ１及びＭＡ２と、メモリー領域ＭＡＳとは、記憶するデータの種類（内容）に応じて区別されている。メモリー領域は、例えば、物理的に同一のメモリー内においてアドレス範囲によって区別された領域であり、或いは、物理的に別個のメモリーで構成された領域であってもよい。
【００５４】
また本実施形態では、特定のメモリー領域ＭＡＳは、印刷装置の識別情報（プリンター本体のシリアルナンバー）、印刷材収容体（インクカートリッジ）の使用開始年月日情報、印刷材収容体の使用終了年月日情報、ホスト装置４００で発生したエラーの履歴情報、印刷材収容体で発生したエラーの履歴情報のうちの少なくとも１つを記憶する領域である。
【００５５】
これらの情報は、例えばプリンターの製造者のエラー解析などに用いる情報であり、仮に失われたとしてもプリンターの動作には直接影響するような情報ではない。そのため、このような情報が記憶されるメモリー領域を特定のメモリー領域ＭＡＳに設定することで、何らユーザーに不利益を与えることなく、エラー発生時に使用継続させることができる。
【００５６】
また本実施形態では、図１に示すように、記憶装置１００は、記憶部１２０から読み出されたデータにエラーがあるか否かを検査するエラー検査部１５０を有する。図２、図３で説明したように、ホスト制御部４１０は、データ読み出しコマンドをメモリー制御部１３０に送信する（ステップＳ２）、メモリー制御部１３０は、データ読み出しコマンドに基づいて記憶部１２０からデータを読み出す制御を行う（ステップＳ２６）。エラー検査部１５０は、読み出されたデータにエラーがあるか否かを検査し、検査情報をホスト制御部４１０に送信する（ステップＳ２７）。ホスト制御部４１０は、検査情報に基づいて、記憶部１２０に記憶されたデータにエラーがあるか否かの判定を行う（ステップＳ５）。
【００５７】
このようにすれば、記憶装置１００のエラー検査部１５０がメモリーエラーを検査し、その検査結果に基づいてホスト装置４００のホスト制御部４１０がエラー判定を行うことができる。これにより、特定のメモリー領域ＭＡＳにエラーが生じた場合にデフォルト値又はエラーコードを書き込むことが可能になる。
【００５８】
４．ホスト装置側の書き込み処理
次に、印刷装置が行うデータ書き込み処理について説明する。図４に、ホスト装置４００が行うデータ書き込み処理のフローチャート例を示す。
【００５９】
図４に示すように、データ書き込み処理が開始されると、ホスト装置４００のホスト通信部４２０は、制御対象となる記憶装置１００のＩＤ情報を送信する（ステップＳ４０）。次に、Ｒ／Ｗ制御部４１３は、データ書き込みコマンドを記憶装置１００に対して送信し（ステップＳ４１）、書き込みデータを送信する（ステップＳ４２）。図６（Ａ）等で後述するように、書き込みデータの送信はブロック単位で行われる。記憶装置１００が行うデータ書き込み処理については、図５等で後述する。
【００６０】
記憶部１２０への書き込みが正常に行われると記憶装置１００はホスト装置４００に対して完了通知を送信する。ホスト装置４００は、この完了通知の有無を判断する（ステップＳ４３）。完了通知有りと判断した場合は、さらに必要なデータの送信が終了したか否かを判断する（ステップＳ４４）。終了していない場合は、ステップＳ４２に戻って次のブロックのデータを送信する。そして必要なデータの送信が終了すれば、書き込み処理を終了する。一方、ステップＳ４３の判断において、完了通知無しと判断した場合は、ステップＳ４０に戻って再度書き込み処理を実行する。
【００６１】
５．記憶装置側の書き込み処理
図５に、記憶装置１００が行うデータ書き込み処理のフローチャート例を示す。図５に示すように、データ書き込み処理が開始されると、記憶装置１００の通信部１１０がＩＤ情報を受信し（ステップＳ６０）、通信エラー検出部ＣＥＲが通信エラーの有無を判断する（ステップＳ６１）。通信エラーが有ると判断した場合、記憶装置１００はメモリーアクセス動作を行わない。一方、通信エラーが無いと判断した場合、通信部１１０は、受信したＩＤ情報と記憶装置が予め有するＩＤ情報とが一致するか否かを判断する（ステップＳ６２）。一致しない場合には記憶装置１００はメモリーアクセス動作を行わない。一致する場合には通信部１１０はコマンドを受信する（ステップＳ６３）。
【００６２】
次に、通信エラー検出部ＣＥＲが、ステップＳ６３のコマンド受信における通信エラーの有無を判断する（ステップＳ６４）。通信エラーが有ると判断した場合、記憶装置１００はメモリーアクセス動作を行わない。一方、通信エラーが無いと判断した場合、通信部１１０が、受信したコマンドがデータ書き込みコマンドであるか否かを判断する（ステップＳ６５）。データ書き込みコマンドでない場合には、そのコマンドを実行するフローに分岐する。
【００６３】
一方、データ書き込みコマンドである場合には、通信部１１０がホスト装置４００から書き込みデータを受信する（ステップＳ６６）。次に、通信エラー検出部ＣＥＲが、データ受信における通信エラーの有無を判断する（ステップＳ６７）。通信エラーが有ると判断した場合、ホスト装置４００に対して完了通知を送信せず、書き込み処理を終了する。
【００６４】
一方、ステップＳ６７において通信エラーが無いと判断した場合、メモリー制御部１３０が書き込みデータを記憶部１２０に書き込む（ステップＳ６８）。
【００６５】
具体的には、特定のメモリー領域ＭＡＳに書き込む場合には、メモリー制御部１３０が、書き込みデータの送信の同期をとるためにホスト装置４００から送信されるクロックの数をカウントしてそれをもとに生成されるアドレスに書き込みデータを書き込む。
【００６６】
また、第１、第２のメモリー領域ＭＡ１、ＭＡ２に書き込む場合、エラー検査部１５０がメモリーエラーの検査を行う。この検査でメモリー領域ＭＡ１、ＭＡ２の両方又はいずれか一方がエラー非検出であれば、メモリー領域選択部ＡＳＥＬがメモリー領域の選択を行う。そして、メモリー制御部１３０が、書き込み用メモリー領域に対して書き込みデータを書き込む。また、メモリー制御部１３０は、書き込み用メモリー領域に記憶されたメモリー領域選択情報を更新する。この第１、第２のメモリー領域ＭＡ１、ＭＡ２に対する領域選択処理や書き込み処理については、図６（Ａ）等で詳細に後述する。一方、メモリー領域ＭＡ１、ＭＡ２の両方にエラーが検出された場合には、メモリー領域ＭＡ１、ＭＡ２に対して何も書き込まず、ステップＳ６９を実行する。
【００６７】
次に、書き込みが正常に終了したか否かを判断する（ステップＳ６９）。書き込みが正常に行われなかった場合や、前述したように、書き込み対象がメモリー領域ＭＡ１、ＭＡ２で、両方にエラーが検出された場合には、ホスト装置４００に対して完了通知を送信せず、書き込み処理を終了する。一方、書き込みが正常に終了した場合は、通信部１１０がホスト装置４００に対して完了通知を送信する（ステップＳ７０）。この完了通知は、例えば、書き込みデータ受信後の書き込み完了通知期間に、データ信号ＳＤＡとしてＨレベル（高電位レベル）を出力することで送信する。
【００６８】
次に、通信部１１０は、データ通信用のクロック信号ＳＣＫが入力終了であるか否かを判断する（ステップＳ７１）。入力終了でない場合、ステップＳ６６〜Ｓ７１を再度実行する。入力終了である場合、必要な全てのブロックについてデータの書き込みが終了したものと判断して、書き込み処理を終了する。
【００６９】
６．第１、第２のメモリー領域に対する読み出し処理、書き込み処理
次に、図３のステップＳ２６〜Ｓ２８において第１、第２のメモリー領域ＭＡ１、ＭＡ２からデータを読み出す処理と、図５のステップＳ６８において第１、第２のメモリー領域ＭＡ１、ＭＡ２に対してデータを書き込む処理について詳細に説明する。
【００７０】
図６（Ａ）、図６（Ｂ）に、第１、第２のメモリー領域ＭＡ１、ＭＡ２の詳細な構成例を示す。図６（Ａ）の構成例では、ＭＡ１、ＭＡ２共に３２ブロック×１８ビットの構成であって、各ブロックは、１６ビットのデータＤ［１５：０］、１ビットのメモリー領域選択情報ＡＳＢ、１ビットのエラー検査用ビット（パリティビット）を含む。エラー検査部１５０が、パリティチェックによるエラー検出をする時には、エラー検査用ビットは、各ブロックの１の個数が常に偶数若しくは奇数となるように付加されるビットである。また、図６（Ｂ）の構成例では、ＭＡ１、ＭＡ２共に３２ブロック×１７ビットの構成であって、各ブロックは、１５ビットのデータＤ［１５：１］、１ビットのメモリー領域選択情報ＡＳＢ、１ビットのエラー検査用ビット（パリティビット）を含む。
【００７１】
ホスト装置４００と記憶装置１００との間の通信はブロック単位で行われ、ＭＡ１又はＭＡ２の書き込み・読み出しもブロック単位で行われる。また、メモリー制御部１３０によるメモリー領域の選択及びエラー検査部１５０によるエラー検出もブロック単位で行われる。従って、メモリー領域選択情報ＡＳＢはブロック毎に設定され、例えば第１のブロックＢＬＫ１の第１のメモリー領域ＭＡ１には、メモリー領域選択情報ＡＳＢ１−１が書き込まれ、第１のブロックＢＬＫ１の第２のメモリー領域ＭＡ２には、メモリー領域選択情報ＡＳＢ１−２が書き込まれる。
【００７２】
図７（Ａ）〜図７（Ｃ）は、メモリー制御部１３０によるメモリー領域選択を説明する図である。メモリー領域選択を実行する前に、エラー検査部１５０は、第１、第２のメモリー領域ＭＡ１、ＭＡ２の各ブロックについて、検査用ビットを用いて、各ブロックのデータとメモリー領域選択情報にエラーがないかどうかを検出する。メモリー制御部１３０は、エラー検査部１５０のエラー検出結果に基づいて、図７（Ａ）に示すように、書き込み用メモリー領域と読み出し用メモリー領域を選択する。すなわち第１、第２のメモリー領域ＭＡ１、ＭＡ２の両方がエラー非検出（ＯＫ）である場合には、メモリー領域選択情報ＡＳＢに基づいて、書き込み用及び読み出し用メモリー領域を選択する。ＭＡ１、ＭＡ２のいずれか一方がエラー検出され（ＮＧ）、他方がエラー非検出（ＯＫ）である場合には、エラーが検出された方を書き込み用として選択し、エラーが非検出である方を読み出し用として選択する。ＭＡ１、ＭＡ２の両方がエラー検出（ＮＧ）である場合には、書き込み用及び読み出し用メモリー領域のどちらも選択しない。
【００７３】
図７（Ｂ）は、メモリー領域選択情報ＡＳＢに基づくメモリー領域選択を説明する図である。図７（Ａ）で説明したように、ＭＡ１、ＭＡ２の両方がエラー非検出（ＯＫ）である場合には、図７（Ｂ）に示すように、メモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２に従って、書き込み用及び読み出し用メモリー領域が選択される。なお、メモリー領域選択情報は、図６（Ａ）、図６（Ｂ）に示したようにブロック毎に書き込まれるから、ＡＳＢ１−１、ＡＳＢ１−２のようにブロックを区別して表記すべきであるが、メモリー領域の選択は同一ブロック内で行われるから、特にブロックを区別する必要がない場合にはＡＳＢ−１、ＡＳＢ−２のように表記する。
【００７４】
例えばＡＳＢ−１が０、ＡＳＢ−２が０の場合には、メモリー制御部１３０は、ＭＡ２に記憶されたデータを読み出し、ＭＡ１にホスト装置４００から受信した新しいデータを書き込む。ＭＡ１に新しいデータを書き込む際に、ＭＡ１のメモリー領域選択情報ＡＳＢ−１を０から１に書き換える。こうすれば次に新しいデータを書き込む時には、ＡＳＢ−１が１、ＡＳＢ−２が０になっているから、メモリー制御部１３０は、ＭＡ１に記憶されたデータを読み出し、ＭＡ２に新しいデータを書き込む。ＭＡ２に新しいデータを書き込む際に、ＭＡ２のメモリー領域選択情報ＡＳＢ−２を０から１に書き換える。次に新しいデータを書き込む時には、ＡＳＢ−１が１、ＡＳＢ−２が１になっているから、メモリー制御部１３０は、ＭＡ２に記憶されたデータを読み出し、ＭＡ１に新しいデータを書き込む。ＭＡ１に新しいデータを書き込む際に、ＭＡ１のメモリー領域選択情報ＡＳＢ−１を１から０に書き換える。
【００７５】
このように図７（Ｂ）に示す選択規則に従うことで、ＭＡ１、ＭＡ２を交互に選択して書き込み・読み出しを行うことができる。そして更新条件判断部１４０が、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較することで、更新条件を満たさないデータの書き込みを防止できる。
【００７６】
次に、ＭＡ１、ＭＡ２のいずれか一方にエラーが検出され、他方がエラー非検出である場合を説明する。この場合には、図７（Ａ）で説明したように、エラーが検出された方に新しいデータを書き込む。例えばＭＡ１がエラー非検出、ＭＡ２がエラー検出である場合は、ＭＡ１からデータを読み出して、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較して更新条件を満足すれば、ＭＡ２に新しいデータを書き込む。
【００７７】
ここでＭＡ２に新しいデータを書き込む際に、ＭＡ２のメモリー領域選択情報ＡＳＢ−２を書き換える場合と書き換えない場合とがある。図７（Ｃ）に示すように、ＡＳＢ−１が１、ＡＳＢ−２が０である場合には、ＡＳＢ−２を１に書き換える。またＡＳＢ−１が０、ＡＳＢ−２が１である場合には、ＡＳＢ−２を０に書き換える。これ以外の場合ではＡＳＢ−２を書き換えない。このようにすることで、ＭＡ２にデータを書き込んだ後のメモリー領域選択情報は、ＡＳＢ−１が０、ＡＳＢ−２が０であるか、或いはＡＳＢ−１が１、ＡＳＢ−２が１である。従って、図７（Ｂ）の選択規則により、次のメモリーアクセス時には、ＭＡ２からデータを読み出して、ＭＡ１に新しいデータを書き込むことができる。
【００７８】
また例えばＭＡ１がエラー検出、ＭＡ２がエラー非検出である場合には、ＭＡ２からデータを読み出して、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較して更新条件を満足すれば、ＭＡ１に新しいデータを書き込む。この書き込みの際に、図７（Ｃ）に示すようにＡＳＢ−１を設定することで、次回のメモリーアクセス時には、図７（Ｂ）の選択規則により、ＭＡ１からデータを読み出して、ＭＡ２に新しいデータを書き込むことができる。
【００７９】
７．更新条件判断処理
次に、図５のステップＳ６８において、第１、第２のメモリー領域ＭＡ１、ＭＡ２にデータ書き込みを行う場合に、更新条件を判断する処理について詳細に説明する。図８に、更新条件を判断する処理のフローチャート例を示す。
【００８０】
図８に示すように、処理が開始されると、記憶装置１００の更新条件判断部１４０が、インクリメント設定（又はデクリメント設定）がされているか否かを判断する（ステップＳ８０）。インクリメント設定がされている場合には、更新条件判断部１４０が書き込みデータの値が読み出しデータの値以上であるという更新条件を満足するか否かを判断する（ステップＳ８３）。或いは、デクリメント設定がされている場合には、更新条件判断部１４０が書き込みデータの値が読み出しデータの値以下であるという更新条件を満足するか否かを判断する（ステップＳ８３）。
【００８１】
更新条件を満足する場合には、メモリー領域選択情報生成部ＡＳＢＧがメモリー領域選択情報ＡＳＢ−１（又はＡＳＢ−２）を生成し（ステップＳ８１）、メモリー制御部１３０が書き込みデータ及びＡＳＢ−１（又はＡＳＢ−２）を書き込み用に選択したメモリー領域に書き込む（ステップＳ８２）。一方、更新条件を満足しない場合には、データを書き込まない（ステップＳ８４）。
【００８２】
このような更新条件判断処理を行うことで、更新条件を満たすデータだけを書き込むことができる。例えば値が単調に増加するデータ（インクの消費量など）を記憶する記憶装置では、受信データの値が前に書き込まれた値以上である場合に書き込みを行い、受信データの値が前に書き込まれた値より小さい値である場合には書き込みを行わないことができる。また反対に、値が単調に減少するデータ（インクの残量など）を記憶する記憶装置では、受信データの値が前に書き込まれた値以下である場合に書き込みを行い、受信データの値が前に書き込まれた値より大きい値である場合には書き込みを行わないことができる。その結果、通信エラーが生じた場合などに、誤ったデータが書き込まれることを低減できる。
【００８３】
以上の実施形態によれば、図１に示すように、記憶部１２０は、特定のメモリー領域ＭＡＳとは異なるメモリー領域である、第１のメモリー領域ＭＡ１及び第２のメモリー領域ＭＡ２を有する。図６（Ａ）等で説明したように、メモリー制御部１３０は、第１のメモリー領域ＭＡ１及び第２のメモリー領域ＭＡ２のうちの一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択する。メモリー制御部１３０は、選択した読み出し用メモリー領域からデータを読み出す制御（図３のステップＳ２６〜Ｓ２８）、及び選択した書き込み用メモリー領域へデータを書き込む制御（図５のステップＳ６８）を行う。
【００８４】
このように２つのメモリー領域ＭＡ１、ＭＡ２を選択的に用いることで、どちらか一方のメモリー領域のデータにエラーが生じた場合であっても、ホスト装置４００から受信した正常なデータを書き込むことができる。その結果、２つのメモリー領域ＭＡ１およびＭＡ２に記憶されるデータ種類を例えばインク消費量（又は残量）とすると、一方の領域に記憶されたデータに異常がある場合であっても、ホスト装置４００から受信した正しいインク消費量（残量）を書き込むことができる。
【００８５】
また、インク消費量のようなプリンター動作に重要な情報を２つのメモリー領域ＭＡ１、ＭＡ２に選択的に記憶させ、更に図２等で説明したようにプリンター動作に重要でない情報のエラーを非エラーとして扱うことで、インクカートリッジがメモリーエラーにより使用不可となる可能性を低減できる。
【００８６】
また本実施形態では、図１に示すように、記憶装置１００は、第１のメモリー領域ＭＡ１及び第２のメモリー領域ＭＡ２に記憶されたデータのエラーの有無を検査するエラー検査部１５０を有する。図７（Ｂ）等で説明したように、メモリー制御部１３０は、エラー検査部１５０によりエラーが検出された場合、第１のメモリー領域ＭＡ１及び第２のメモリー領域ＭＡ２のうち、エラーが検出された領域を書き込み用メモリー領域として選択し、エラーが非検出である領域を読み出し用メモリー領域として選択する。
【００８７】
このようにすれば、第１、第２のメモリー領域ＭＡ１、ＭＡ２の一方にエラーがある場合であっても、エラーのない領域を読み出し用メモリー領域として選択することにより、正常なデータを取得することができる。また、エラーが発生しない限りＭＡ１、ＭＡ２には交互に新しいデータが書き込まれるので、最新のデータが記憶された領域にエラーがある場合であっても、１つ前のデータを読み出すことができる。
【００８８】
また本実施形態では、図７（Ｂ）等で説明したように、メモリー制御部１３０は、第１のメモリー領域ＭＡ１及び第２のメモリー領域ＭＡ２に記憶されるメモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２に基づいて、書き込み用メモリー領域を選択する。メモリー制御部１３０は、書き込み用メモリー領域にデータを書き込む制御を行う際に、書き込み用メモリー領域に記憶されたメモリー領域選択情報（ＡＳＢ−１又はＡＳＢ−２）を更新する。
【００８９】
このようにすれば、書き込み用メモリー領域として選択されたメモリー領域のメモリー領域選択情報のみを更新することで、メモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２を更新することが可能となる。例えば図７（Ｂ）で説明したように、ＭＡ１がＡＳＢ−１を記憶し、ＭＡ２がＡＳＢ−２を記憶し、ＡＳＢ−１とＡＳＢ−２が一致した場合にはＭＡ１を書き込み用メモリー領域として選択し、ＡＳＢ−１とＡＳＢ−２が一致しない場合にはＭＡ２を書き込み用メモリー領域として選択する。このようにすれば、ＡＳＢ−１、ＡＳＢ−２の一方を更新することで、エラーが生じない限りＭＡ１、ＭＡ２を交互に書き込み用メモリー領域として選択することが可能となる。
【００９０】
８．システム構成例
図９に本実施形態のシステムの基本的な構成例を示す。本実施形態のシステムは、例えばインクジェット方式のプリンターなどであって、第１の記憶装置１００−１〜第ｎ（ｎは２以上の整数）の記憶装置１００−ｎ、記憶装置が実装されるｎ個の回路基板２００−１〜２００−ｎ、回路基板を備えるｎ個の液体容器３００−１〜３００−ｎ（広義には印刷材収容体）及びホスト装置４００を含む。
【００９１】
第１の記憶装置１００−１〜第ｎの記憶装置１００−ｎは、それぞれリセット端子ＸＲＳＴ、クロック端子ＳＣＫ、データ端子ＳＤＡ、第１の電源端子ＶＳＳ及び第２の電源端子ＶＤＤを含む。これらｎ個の記憶装置１００−１〜１００−ｎの各々は、記憶部（例えば不揮発性メモリー等）を含み、それぞれの記憶部にはｎ個の液体容器（例えばインクカートリッジ等）３００−１〜３００−ｎを識別するためのＩＤ（Identification)情報（
例えばＩＤ＝１、ＩＤ＝２、ＩＤ＝３など）が記憶されている。ＩＤは、液体容器が収容する液体の色などの種類毎に異なるものが付与される。
【００９２】
ホスト装置４００は、プリンター本体であり、ホスト側リセット端子ＨＲＳＴ、ホスト側クロック端子ＨＣＫ、ホスト側データ端子ＨＤＡ、第１のホスト側電源端子ＨＶＳＳ及び第２のホスト側電源端子ＨＶＤＤを含む。
【００９３】
図１０は、本実施形態における印刷装置の構成例を示す斜視図である。図１０の印刷装置１０００は、インクカートリッジ（広義には印刷材収容体）が装着されるカートリッジ装着部１１００と、回動自在なカバー１２００と、操作部１３００とを有する。カートリッジ装着部１１００を「カートリッジホルダー」又は単に「ホルダー」とも呼ぶ。図１０に示す例では、カートリッジ装着部１１００には、４つのインクカートリッジが独立に装着可能であり、例えば、ブラック、イエロー、マゼンタ、シアンの４種類のインクカートリッジ３００が装着される。カバー１２００は省略可能である。操作部１３００は、ユーザーが各種の指示や設定を行うための入力装置であり、また、ユーザーに各種の通知を行うための表示部を備えている。
【００９４】
図１１は、インクカートリッジ３００の外観を示す斜視図である。図１１におけるＸＹＺ軸は、図１０のＸＹＺ軸に対応している。なお、インクカートリッジを単に「カートリッジ」とも呼ぶ。このカートリッジ３００は、扁平な略直方体の外観形状を有する。カートリッジ３００の内部には、可撓性材料で形成されたインク収容室３２０（「インク収容袋」とも呼ぶ）が設けられている。カートリッジ３００は、図示しないインク供給口を有しており、インク供給口からプリンターヘッドへインクを供給する。カートリッジ３００の天井面には、記憶装置が実装される基板２００が設けられている。基板２００には、インクに関する情報を格納するための不揮発性の記憶装置が搭載されている。
【００９５】
図１２（Ａ）は、記憶装置が設けられる基板２００の構成を示している。基板２００の表面は、カートリッジ３００に基板２００が装着されたときに外側に露出している面である。図１２（Ｂ）は、基板２００の側面から見た図を示している。基板２００の上端部には、ボス溝２０１が形成され、基板２００の下端部には、ボス穴２０２が形成されている。
【００９６】
図１２（Ａ）における矢印ＳＤは、カートリッジ装着部１１００へのカートリッジ３００の装着方向を示している。この装着方向ＳＤは、図１１に示すカートリッジの装着方向（Ｘ方向）と一致する。基板２００は、裏面に記憶装置１００（図１２の参照番号の修正をお願い致します。）を有しており、表面には５つの端子からなる端子群が設けられている。図示を省略するが、基板２００の表面と裏面には、端子と記憶装置２０３を接続するための配線やその他の配線、基板表面の配線と基板の裏面の配線を電気的に接続するためのスルーホールが配置されている。記憶装置２０３は、カートリッジ３００に関する情報や、カートリッジ３００に収容されているインクに関する情報（例えばインク量情報、インク残量、インク消費量）を格納する。これらの端子は、略矩形状に形成され、装着方向ＳＤと略垂直な列を２列（Ａ１、Ａ２）形成するように配置されている。
【００９７】
具体的には、基板２００には、複数の記憶装置用端子ＲＳＴ、ＳＣＫ、ＳＤＡ、ＶＤＤ、ＶＳＳが設けられる。ＲＳＴはリセット端子であり、ＳＣＫはクロック端子であり、ＳＤＡはデータ端子であり、ＶＤＤは高電圧側電源端子であり、ＶＳＳは低電圧側電源端子（接地端子）である。これらの端子の接触部ｃｐは、カートリッジがホルダーに装着されたときに、ホルダー側回路基板４５０とカートリッジ側基板２００を接続するためにホルダー内部に設けられたコネクターが複数の端子と接触する部分である。
【００９８】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またホスト装置、記憶装置、印刷装置等の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。
【符号の説明】
【００９９】
１００  記憶装置、１１０  通信部、１２０  記憶部、１３０  メモリー制御部、
１４０  更新条件判断部、１５０  エラー検査部、２００  回路基板、
２０１  ボス溝、２０２  ボス穴、３００  印刷材収容体（インクカートリッジ）、
３２０  インク収容室、４００  ホスト装置、４１０  ホスト制御部、
４１１  エラー判定部、４１２  領域判定部、４１３  Ｒ／Ｗ制御部、
４２０  ホスト通信部、４５０  ホルダー側回路基板、１０００  印刷装置、
１１００  カートリッジ装着部、１２００  カバー、１３００  操作部、
ＡＳＢ−１，ＡＳＢ−２  メモリー領域選択情報、
ＡＳＢＧ  メモリー領域選択情報生成部、ＡＳＥＬ  メモリー領域選択部、
ＣＥＲ  通信エラー検出部、ＭＡ１  第１のメモリー領域、
ＭＡ２  第２のメモリー領域、ＭＡＳ  特定のメモリー領域、
ＯＳＣ  発振回路、ＰＯＲ  パワーオンリセット回路、ＳＣＫ  クロック信号、
ＳＤＡ  データ信号、ＸＲＳＴ  リセット信号
【図１】
2013198986.tif 000003
【図２】
2013198986.tif 000004
【図３】
2013198986.tif 000005
【図４】
2013198986.tif 000006
【図５】
2013198986.tif 000007
【図６】
2013198986.tif 000008
【図７】
2013198986.tif 000009
【図８】
2013198986.tif 000010
【図９】
2013198986.tif 000011
【図１０】
2013198986.tif 000012
【図１１】
2013198986.tif 000013
【図１２】
2013198986.tif 000014