(57)【特許請求の範囲】
【請求項１】
ホスト装置との通信処理を行う通信部と、
前記ホスト装置からの受信データ及びメモリー領域選択情報を記憶する、第１のメモリー領域と第２のメモリー領域とを有する記憶部と、
前記第１のメモリー領域及び前記第２のメモリー領域のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択して、読み出し及び書き込み制御を行うメモリー制御部と、
前記メモリー制御部により前記読み出し用メモリー領域から読み出されたデータの値と前記受信データの値との大小関係を比較するインクリメント判断部と、
前記第１のメモリー領域及び前記第２のメモリー領域に書き込まれたデータのエラーの有無を検査するエラー検査部と、
を含み、
前記メモリー制御部は、前記インクリメント判断部の判断結果に基づいて、前記受信データを前記書き込み用メモリー領域に書き込み、或いは非書き込みとし、
前記エラー検査部により前記エラーが非検出である場合には、
前記メモリー制御部は、前記メモリー領域選択情報に基づいて、前記読み出し用メモリー領域及び前記書き込み用メモリー領域を選択し、
前記エラー検査部により前記エラーが検出された場合には、
前記メモリー制御部は、前記第１のメモリー領域及び前記第２のメモリー領域のうち、前記エラーが検出された方を前記書き込み用メモリー領域として選択し、前記エラーが非検出である方を前記読み出し用メモリー領域として選択し、
前記メモリー制御部が前記受信データを前記書き込み用メモリー領域へ書き込む際には、前記メモリー領域選択情報を書き換えることを特徴とする記憶装置。
【請求項２】
請求項１において、
前記第１のメモリー領域及び前記第２のメモリー領域の両方に前記エラーが検出された場合には、前記通信部は、前記ホスト装置に対してエラー通知を送信することを特徴とする記憶装置。
【請求項３】
請求項１又は２において、
前記ホスト装置からの前記受信データの書き込み処理が完了した場合には、前記通信部は、前記ホスト装置に対して完了通知を送信することを特徴とする記憶装置。
【請求項４】
請求項１乃至３のいずれかに記載の記憶装置を含むことを特徴とする回路基板。
【請求項５】
請求項１乃至３のいずれかに記載の記憶装置を含むことを特徴とする液体容器。
【請求項６】
請求項１乃至３のいずれかに記載の記憶装置と、
前記ホスト装置とを含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、回路基板、液体容器及びシステム等に関する。
【背景技術】
【０００２】
インクジェット方式のプリンターで用いられるインクカートリッジ（液体容器）には、記憶装置が設けられているものがある。この記憶装置には、例えばインクの色やインク消費量などの情報が格納される。インク消費量に関するデータは、プリンター本体（ホスト装置）から記憶装置に送信され、記憶装置に含まれる不揮発性メモリーなどに書き込まれる。ところがインクカートリッジは、通常交換可能な構造になっているために、電気的接続部分の接触不良が生じ易く、接触不良による通信エラーなどが発生すると、誤ったデータが書き込まれるおそれがある。
【０００３】
この問題に対して例えば特許文献１には、書き込みデータが有する増減特性に反する値の書き込みを制限する手法が開示されている。しかしながらこの手法では、メモリーエラーなどにより過大な値（又は過小な値）が書き込まれた場合には、次のアクセス時に正しい値を書き込むことができなくなるなどの問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２００６／１２９７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の幾つかの態様によれば、記憶されたデータにエラーが生じた場合でも、正しいデータを書き込むことができる記憶装置、回路基板、液体容器及びシステム等を提供できる。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ホスト装置との通信処理を行う通信部と、前記ホスト装置からの受信データ及びメモリー領域選択情報を記憶する、第１のメモリー領域と第２のメモリー領域とを有する記憶部と、前記第１のメモリー領域及び前記第２のメモリー領域のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択して、読み出し及び書き込み制御を行うメモリー制御部と、前記メモリー制御部により前記読み出し用メモリー領域から読み出されたデータの値と前記受信データの値との大小関係を比較するインクリメント判断部とを含み、前記メモリー制御部は、前記インクリメント判断部の判断結果に基づいて、前記受信データを前記書き込み用メモリー領域に書き込み、或いは非書き込みとする記憶装置に関係する。
【０００７】
本発明の一態様によれば、読み出し用メモリー領域から読み出されたデータの値と受信データの値との大小関係を比較して、書き込みの可否を判断することができる。こうすることで、例えばインク消費量など値が単調に増加するデータを記憶する場合に、誤ったデータが書き込まれることなどを低減できる。その結果、記憶装置の信頼性を高めることなどが可能になる。
【０００８】
また本発明の一態様では、前記第１のメモリー領域及び前記第２のメモリー領域に書き込まれたデータのエラーの有無を検査するエラー検査部を含み、前記エラー検査部により前記エラーが非検出である場合には、前記メモリー制御部は、前記メモリー領域選択情報に基づいて、前記読み出し用メモリー領域及び前記書き込み用メモリー領域を選択し、前記エラー検査部により前記エラーが検出された場合には、前記メモリー制御部は、前記第１のメモリー領域及び前記第２のメモリー領域のうち、前記エラーが検出された方を前記書き込み用メモリー領域として選択し、前記エラーが非検出である方を前記読み出し用メモリー領域として選択してもよい。
【０００９】
このようにすれば、２つのメモリー領域のどちらか一方にエラーが検出された場合に、エラー非検出の方からデータを読み出して、その読み出しデータと受信した新しいデータとを比較してインクリメント条件を満たすか否か判断し、新しいデータをエラー検出された方に書き込むことができる。こうすることで、記憶されたデータの値がメモリーエラーなどによって過大な値になった場合などでも、次のアクセス時には正しいデータを書き込むことができる。その結果、記憶装置の信頼性を高めることなどが可能になる。
【００１０】
また本発明の一態様では、前記メモリー制御部が前記受信データを前記書き込み用メモリー領域へ書き込む際には、前記メモリー領域選択情報を書き換えてもよい。
【００１１】
このようにすれば、正しいデータが書き込まれたメモリー領域が、次のアクセス時に読み出し用メモリー領域として選択されるように、メモリー領域選択情報を設定することができる。こうすることで、次のアクセス時に正しいデータを読み出すことができる。その結果、記憶装置の信頼性を高めることなどが可能になる。
【００１２】
また本発明の一態様では、前記第１のメモリー領域及び前記第２のメモリー領域の両方に前記エラーが検出された場合には、前記通信部は、前記ホスト装置に対してエラー通知を送信してもよい。
【００１３】
このようにすれば、ホスト装置は、２つのメモリー領域の両方にエラーが検出されたことを認識することができる。その結果、ホスト装置は適切な処理を行うことができるから、システムの信頼性を高めることなどが可能になる。
【００１４】
また本発明の一態様では、前記ホスト装置からの前記受信データの書き込み処理が完了した場合には、前記通信部は、前記ホスト装置に対して完了通知を送信してもよい。
【００１５】
このようにすれば、ホスト装置は、受信データの書き込み処理が完了したことを認識することができるから、例えば次のブロックの書き込みデータを送信する処理を行うことができる。また、完了通知が送信されない場合には、ホスト装置は、例えば書き込みデータを再送信するなどの適切な処理を行うことができる。その結果、システムの信頼性を高めることなどが可能になる。
【００１６】
本発明の他の態様は、上記いずれかに記載の記憶装置を含む回路基板に関係する。
【００１７】
本発明の他の態様は、上記いずれかに記載の記憶装置を含む液体容器に関係する。
【００１８】
本発明の他の態様は、上記いずれかに記載の記憶装置と、前記ホスト装置とを含むシステムに関係する。
【図面の簡単な説明】
【００１９】
【図１】記憶装置の基本的な構成例。
【図２】図２（Ａ）、図２（Ｂ）は、第１、第２のメモリー領域の詳細な構成例。
【図３】図３（Ａ）〜図３（Ｃ）は、メモリー制御部によるメモリー領域選択を説明する図。
【図４】データ書き込み時のホスト装置側の制御を説明するフローチャートの一例。
【図５】データ書き込み時の記憶装置側の制御を説明するフローチャートの一例。
【図６】メモリー領域選択の詳細なフローチャート。
【図７】データ書き込みの詳細なフローチャート。
【図８】データ読み出し時のホスト装置側の制御を説明するフローチャートの一例。
【図９】データ読み出し時の記憶装置側の制御を説明するフローチャートの一例。
【図１０】メモリー領域選択の詳細なフローチャート。
【図１１】データ書き込み処理のタイミングチャートの一例。
【図１２】データ読み出し処理のタイミングチャートの一例。
【図１３】システムの基本的な構成例。
【図１４】液体容器の詳細な構成例。
【図１５】図１５（Ａ）、図１５（Ｂ）は、回路基板の詳細な構成例。
【発明を実施するための形態】
【００２０】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２１】
１．記憶装置
図１に本実施形態の記憶装置１００の基本的な構成例を示す。本実施形態の記憶装置１００は、通信部１１０、記憶部１２０、メモリー制御部１３０、インクリメント判断部１４０、エラー検査部１５０、発振回路ＯＳＣ及びパワーオンリセット回路ＰＯＲを含む。なお、本実施形態の記憶装置１００は、図１の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００２２】
本実施形態の記憶装置１００は、例えばインクジェット方式のプリンターで用いられるインクカートリッジ（液体容器）に設けられる記憶装置であって、プリンター本体（ホスト装置）から送信されたインク消費量などの情報が格納される。インクカートリッジ（液体容器）は、通常交換可能な構造になっているために、プリンター本体と記憶装置とを接続する電気的接続部分の接触不良が生じ易い。そのためにデータ信号端子の接触不良による通信エラーや、書き込み時の電源端子の接触不良による書き込みエラーなどが発生するおそれがある。本実施形態の記憶装置１００によれば、後述するように、これらのエラーが生じた場合でも正しいデータを書き込むことができる。
【００２３】
通信部１１０は、通信エラー検出部ＣＥＲを含み、ホスト装置４００との通信処理を行う。具体的には、通信部１１０は、ホスト装置４００が有するホスト通信部４２０との間でデータ信号ＳＤＡの送受信を行う。また、通信部１１０は、ホスト装置４００からのリセット信号ＸＲＳＴ及びクロック信号ＳＣＫを受信する。通信エラー検出部ＣＥＲは、受信したデータの通信エラーの有無を検出する。この通信エラーの検出は、例えばパリティチェック等の手法を用いることができる。
【００２４】
記憶部１２０は、例えばフラッシュメモリーや強誘電体メモリー等の不揮発性メモリーであって、第１、第２のメモリー領域ＭＡ１、ＭＡ２を含む。第１、第２のメモリー領域ＭＡ１、ＭＡ２は、ホスト装置４００からの受信データ及びメモリー領域選択情報ＡＳＢをそれぞれ記憶する。この受信データは、例えばプリンターのインクカートリッジのインク消費量などである。なお、第１、第２のメモリー領域ＭＡ１、ＭＡ２の詳細な構成及びメモリー領域選択情報については後述する。
【００２５】
メモリー制御部１３０は、メモリー領域選択部ＡＳＥＬを含み、第１、第２のメモリー領域ＭＡ１、ＭＡ２のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択して、読み出し及び書き込み制御を行う。具体的には、メモリー領域選択部ＡＳＥＬが、エラー検査部１５０の検査結果及び後述するメモリー領域選択情報に基づいて、ＭＡ１、ＭＡ２のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択する。また、メモリー制御部１３０は、メモリー領域選択情報生成部ＡＳＢＧを含む。このメモリー領域選択情報生成部ＡＳＢＧは、書き込み用メモリー領域にデータを書き込む際に、メモリー領域選択情報ＡＳＢを更新する処理を行う。なお、メモリー領域選択情報ＡＳＢの詳細については後述する。
【００２６】
後述するように、本実施形態の記憶装置１００によれば、２つのメモリー領域ＭＡ１、ＭＡ２を選択的に用いることで、どちらか一方のメモリー領域のデータにエラーが生じた場合であっても、ホスト装置４００から受信した正常なデータを書き込むことができる。その結果、例えばプリンターのインクカートリッジ（液体容器）のインク消費量（又は残量）を記憶する記憶装置において、記憶されたデータに異常がある場合でも、ホスト装置４００から受信した正しいインク消費量（残量）を書き込むことができる。
【００２７】
インクリメント判断部１４０は、メモリー制御部１３０により読み出し用メモリー領域から読み出されたデータの値と受信データの値との大小関係を比較する。メモリー制御部１３０は、インクリメント判断部１４０の判断結果に基づいて、受信データを書き込み用メモリー領域に書き込み、或いは非書き込みとする。このインクリメント判断部１４０は、２つのデータの値の大小関係を比較して、インクリメント条件或いはデクリメント条件を満足するか否かを判断するものである。すなわち、インクリメント判断部１４０による判断は、インクリメント条件の判断だけでなく、デクリメント条件の判断も含まれる。インクリメント条件とは、新しく書き込まれるデータの値が、前回のアクセス時に書き込まれた値と等しいか又はそれより大きい値でなければならないとする条件である。またデクリメント条件とは、新しく書き込まれるデータの値が、前回のアクセス時に書き込まれた値と等しいか又はそれより小さい値でなければならないとする条件である。
【００２８】
こうすることで、インクリメント条件（又はデクリメント条件）を満たすデータだけを書き込むことができる。例えば値が単調に増加するデータ（インクの消費量など）を記憶する記憶装置では、受信データの値が前に書き込まれた値以上である場合に書き込みを行い、受信データの値が前に書き込まれた値より小さい値である場合には書き込みを行わないことができる。また反対に、値が単調に減少するデータ（インクの残量など）を記憶する記憶装置では、受信データの値が前に書き込まれた値以下である場合に書き込みを行い、受信データの値が前に書き込まれた値より大きい値である場合には書き込みを行わないことができる。その結果、通信エラーが生じた場合などに、誤ったデータが書き込まれることを低減できる。
【００２９】
エラー検査部１５０は、第１、第２のメモリー領域ＭＡ１、ＭＡ２に書き込まれたデータのエラーの有無を検査する。このエラーの検出は、例えばパリティチェックやチェックサムなどの手法を用いることができる。このエラー検査部１５０の検査結果とメモリー領域選択情報ＡＳＢとに基づいて、メモリー制御部１３０は、ＭＡ１、ＭＡ２のいずれか一方を読み出し用メモリー領域として選択し、他方を書き込み用メモリー領域として選択する。なお、メモリー領域を選択する手法については後述する。
【００３０】
発振回路ＯＳＣは、記憶装置１００の内部クロックを生成する。また、パワーオンリセット回路ＰＯＲは、記憶装置１００の電源電圧が所定の電圧に到達した後にリセットを解除するためのものである。
【００３１】
ホスト装置４００は、例えばプリンター本体などであって、ホスト制御部４１０、ホスト通信部４２０を含む。ホスト制御部４１０は、例えばプリンターの印刷処理、記憶装置との通信処理、インク消費量のカウント処理などの制御を行う。ホスト通信部４２０は、記憶装置１００との通信処理を行う。また、ホスト装置４００は、記憶装置１００に対して第１の電源（低電位電源）ＶＳＳ及び第２の電源（高電位電源）ＶＤＤを供給する。
【００３２】
図２（Ａ）、図２（Ｂ）に、第１、第２のメモリー領域ＭＡ１、ＭＡ２の詳細な構成例を示す。図２（Ａ）の構成例では、ＭＡ１、ＭＡ２共に３２ブロック×１８ビットの構成であって、各ブロックは、１６ビットのデータＤ［１５：０］、１ビットのメモリー領域選択情報ＡＳＢ、１ビットのエラー検査用ビット（パリティビット）を含む。エラー検査部１５０が、パリティチェックによるエラー検出をする時には、エラー検査用ビットは、各ブロックの１の個数が常に偶数若しくは奇数となるように付加されるビットである。また、図２（Ｂ）の構成例では、ＭＡ１、ＭＡ２共に３２ブロック×１７ビットの構成であって、各ブロックは、１５ビットのデータＤ［１５：１］、１ビットのメモリー領域選択情報ＡＳＢ、１ビットのエラー検査用ビット（パリティビット）を含む。なお、本実施形態のメモリー領域ＭＡ１、ＭＡ２は図２の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３３】
ホスト装置４００と記憶装置１００との間の通信はブロック単位で行われ、ＭＡ１又はＭＡ２の書き込み・読み出しもブロック単位で行われる。また、メモリー制御部１３０によるメモリー領域の選択及びエラー検査部１５０によるエラー検出もブロック単位で行われる。従って、メモリー領域選択情報ＡＳＢはブロック毎に設定され、例えば第１のブロックＢＬＫ１の第１のメモリー領域ＭＡ１には、メモリー領域選択情報ＡＳＢ１−１が書き込まれ、第１のブロックＢＬＫ１の第２のメモリー領域ＭＡ２には、メモリー領域選択情報ＡＳＢ１−２が書き込まれる。
【００３４】
図３（Ａ）〜図３（Ｃ）は、メモリー制御部１３０によるメモリー領域選択を説明する図である。メモリー領域選択を実行する前に、エラー検査部１５０は、第１、第２のメモリー領域ＭＡ１、ＭＡ２の各ブロックについて、検査用ビットを用いて、各ブロックのデータとメモリー領域選択情報にエラーがないかどうかを検出する。メモリー制御部１３０は、エラー検査部１５０のエラー検出結果に基づいて、図３（Ａ）に示すように、書き込み用メモリー領域と読み出し用メモリー領域を選択する。すなわち第１、第２のメモリー領域ＭＡ１、ＭＡ２の両方がエラー非検出（ＯＫ）である場合には、メモリー領域選択情報ＡＳＢに基づいて、書き込み用及び読み出し用メモリー領域を選択する。ＭＡ１、ＭＡ２のいずれか一方がエラー検出され（ＮＧ）、他方がエラー非検出（ＯＫ）である場合には、エラーが検出された方を書き込み用として選択し、エラーが非検出である方を読み出し用として選択する。ＭＡ１、ＭＡ２の両方がエラー検出（ＮＧ）である場合には、書き込み用及び読み出し用メモリー領域のどちらも選択しない。
【００３５】
図３（Ｂ）は、メモリー領域選択情報ＡＳＢに基づくメモリー領域選択を説明する図である。図３（Ａ）で説明したように、ＭＡ１、ＭＡ２の両方がエラー非検出（ＯＫ）である場合には、図３（Ｂ）に示すように、メモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２に従って、書き込み用及び読み出し用メモリー領域が選択される。なお、メモリー領域選択情報は、図２（Ａ）、図２（Ｂ）に示したようにブロック毎に書き込まれるから、ＡＳＢ１−１、ＡＳＢ１−２のようにブロックを区別して表記すべきであるが、メモリー領域の選択は同一ブロック内で行われるから、特にブロックを区別する必要がない場合にはＡＳＢ−１、ＡＳＢ−２のように表記する。
【００３６】
例えばＡＳＢ−１が０、ＡＳＢ−２が０の場合には、メモリー制御部１３０は、ＭＡ２に記憶されたデータを読み出し、ＭＡ１にホスト装置４００から受信した新しいデータを書き込む。ＭＡ１に新しいデータを書き込む際に、ＭＡ１のメモリー領域選択情報ＡＳＢ−１を０から１に書き換える。こうすれば次に新しいデータを書き込む時には、ＡＳＢ−１が１、ＡＳＢ−２が０になっているから、メモリー制御部１３０は、ＭＡ１に記憶されたデータを読み出し、ＭＡ２に新しいデータを書き込む。ＭＡ２に新しいデータを書き込む際に、ＭＡ２のメモリー領域選択情報ＡＳＢ−２を０から１に書き換える。次に新しいデータを書き込む時には、ＡＳＢ−１が１、ＡＳＢ−２が１になっているから、メモリー制御部１３０は、ＭＡ２に記憶されたデータを読み出し、ＭＡ１に新しいデータを書き込む。ＭＡ１に新しいデータを書き込む際に、ＭＡ１のメモリー領域選択情報ＡＳＢ−１を１から０に書き換える。
【００３７】
このように図３（Ｂ）に示す選択規則に従うことで、ＭＡ１、ＭＡ２を交互に選択して書き込み・読み出しを行うことができる。そしてインクリメント判断部１４０が、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較することで、インクリメント条件を満たさないデータの書き込みを防止できる。
【００３８】
次に、ＭＡ１、ＭＡ２のいずれか一方にエラーが検出され、他方がエラー非検出である場合を説明する。この場合には、図３（Ａ）で説明したように、エラーが検出された方に新しいデータを書き込む。例えばＭＡ１がエラー非検出、ＭＡ２がエラー検出である場合は、ＭＡ１からデータを読み出して、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較してインクリメント条件を満足すれば、ＭＡ２に新しいデータを書き込む。
【００３９】
ここでＭＡ２に新しいデータを書き込む際に、ＭＡ２のメモリー領域選択情報ＡＳＢ−２を書き換える場合と書き換えない場合とがある。図３（Ｃ）に示すように、ＡＳＢ−１が１、ＡＳＢ−２が０である場合には、ＡＳＢ−２を１に書き換える。またＡＳＢ−１が０、ＡＳＢ−２が１である場合には、ＡＳＢ−２を０に書き換える。これ以外の場合ではＡＳＢ−２を書き換えない。このようにすることで、ＭＡ２にデータを書き込んだ後のメモリー領域選択情報は、ＡＳＢ−１が０、ＡＳＢ−２が０であるか、或いはＡＳＢ−１が１、ＡＳＢ−２が１である。従って、図３（Ｂ）の選択規則により、次のメモリーアクセス時には、ＭＡ２からデータを読み出して、ＭＡ１に新しいデータを書き込むことができる。
【００４０】
また例えばＭＡ１がエラー検出、ＭＡ２がエラー非検出である場合には、ＭＡ２からデータを読み出して、読み出されたデータの値と新たに書き込まれるデータの値との大小関係を比較してインクリメント条件を満足すれば、ＭＡ１に新しいデータを書き込む。この書き込みの際に、図３（Ｃ）に示すようにＡＳＢ−１を設定することで、次回のメモリーアクセス時には、図３（Ｂ）の選択規則により、ＭＡ１からデータを読み出して、ＭＡ２に新しいデータを書き込むことができる。
【００４１】
以上説明したように、本実施形態の記憶装置１００によれば、２つのメモリー領域ＭＡ１、ＭＡ２のどちらか一方にエラーが検出された場合に、エラー非検出の方からデータを読み出して、その読み出しデータと新しいデータ（受信データ）とを比較してインクリメント条件を満たすか否か判断して、新しいデータをエラー検出された方に書き込むことができる。こうすることで、記憶されたデータの値（例えばインク消費量など）がメモリーエラーによって過大な値などになった場合でも、次のアクセス時には正しいデータを書き込むことができる。その結果、プリンターのインクカートリッジ等に適用した場合に、インクが残っているのにもかかわらず使用できないなどの不具合を低減することができる。
【００４２】
例えばフラッシュメモリー等では、書き込み動作中に電源が遮断されると、書き込み対象のビットが全て１又は０に設定されることがある。この場合でも、本実施形態の記憶装置１００によれば、次のアクセス時には正しいデータを書き込むことができる。
【００４３】
なお、２つのメモリー領域の両方にエラーが検出された場合には、正しいデータを書き込むことができなくなる。しかし、両方のメモリー領域にエラーが検出される確率は十分に低いから、実用上問題はないと考えられる。
【００４４】
本実施形態の構成をとらない記憶装置では、例えばインク消費量など値が単調に増加するデータを記憶する場合に、インクリメント条件を満たすか否かを判断することで、誤ったデータ（過小な値のデータ）の書き込みを防止することはできる。しかし、メモリーエラーにより記憶されたデータが過大な値に変化した場合には、次に正しい値のデータを書き込むことができなくなる。その結果、インクが残っているのにもかかわらず使用できないなどの不具合が発生するおそれがある。
【００４５】
２．制御フロー
図４は、データ書き込み時のホスト装置４００側の制御を説明するフローチャートの一例である。ホスト装置４００は、始めにＩＤ情報を送信する（ステップＳ１）。このＩＤ情報は、複数の記憶装置が接続されている場合に、記憶装置を識別するための情報である。次に、データ書き込みコマンドを送信し（ステップＳ２）、続いて書き込みデータを送信する（ステップＳ３）。書き込みデータの送信はブロック単位で行われ、正常に書き込みが行われると記憶装置１００は完了通知を送信する。ホスト装置４００は、この完了通知の有無を判断し（ステップＳ４）、完了通知有りと判断した場合は、さらに必要なデータの送信が終了したか否かを判断する（ステップＳ５）。終了していない場合は、ステップＳ３に戻って次のブロックのデータを送信する。そして必要なデータの送信が終了すれば、書き込み処理を終了する。一方、ステップＳ４の判断において、完了通知無しと判断した場合は、ステップＳ１に戻って再度書き込み処理を実行する。
【００４６】
図５は、データ書き込み時の記憶装置１００側の制御を説明するフローチャートの一例である。始めに記憶装置１００の通信部１１０がＩＤ情報を受信し（ステップＳ６）、通信エラー検出部ＣＥＲが通信エラーの有無を判断する（ステップＳ７）。通信エラーが無ければ、通信部１１０は、受信したＩＤ情報と記憶装置が予め有するＩＤ情報とが一致するか否かを判断し（ステップＳ８）、一致する場合にはコマンドを受信する（ステップＳ９）。次に通信エラー検出部ＣＥＲが通信エラーの有無を判断し（ステップＳ１０）、通信エラーが無ければ、通信部１１０が、受信したコマンドがデータ書き込みコマンドであるか否かを判断する（ステップＳ１１）。データ書き込みコマンドである場合には、通信部１１０が書き込みデータを受信し（ステップＳ１２）、データ書き込みコマンドでない場合には、そのコマンドを実行するフローに分岐する。
【００４７】
書き込みデータの受信後、通信エラー検出部ＣＥＲが通信エラーの有無を判断し（ステップＳ１３）、通信エラーが無ければ、エラー検査部１５０がメモリーエラーの検査を行う（ステップＳ１４）。この検査でメモリー領域ＭＡ１、ＭＡ２の両方又はいずれか一方がエラー非検出であれば、メモリー領域選択部ＡＳＥＬがメモリー領域の選択を行う（ステップＳ１５）。一方、メモリー領域ＭＡ１、ＭＡ２の両方にエラーが検出された場合には、完了通知を送信することなく書き込み処理を終了する。
【００４８】
図６は、メモリー領域選択部ＡＳＥＬによるメモリー領域選択（ステップＳ１３）のフローを詳細に示したものである。始めにエラー非検出のメモリー領域の数により、場合分けする（ステップＳ２０）。エラー非検出のメモリー領域が２つある場合には、メモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２を確認し（ステップＳ２１）、図３（Ｂ）の選択規則に従って、書き込み用及び読み出し用メモリー領域を選択する（ステップＳ２２）。またエラー非検出のメモリー領域が１つだけの場合には、図３（Ａ）に示したように、エラー検出されたメモリー領域を書き込み用に、エラー非検出のメモリー領域を読み出し用に選択する（ステップＳ２３）。メモリー領域の選択後、データ書き込みを行う（ステップＳ１６）。
【００４９】
図７は、インクリメント判断部１４０及びメモリー制御部１３０によるデータ書き込み（ステップＳ１６）のフローをより詳細に示したものである。始めにインクリメント設定がされているか否かを判断する（ステップＳ２４）。インクリメント設定がされている場合には、インクリメント判断部１４０が書き込みデータの値と読み出しデータの値を比較してインクリメント条件を満足するか否かを判断する（ステップＳ２７）。条件を満足する場合には、メモリー領域選択情報生成部ＡＳＢＧがメモリー領域選択情報ＡＳＢ−１（又はＡＳＢ−２）を生成し（ステップＳ２５）、メモリー制御部１３０が書き込みデータ及びＡＳＢ−１（又はＡＳＢ−２）を書き込み用に選択したメモリー領域に書き込む（ステップＳ２６）。一方、インクリメント条件を満足しない場合には、データを書き込まない（ステップＳ２８）。
【００５０】
書き込みが正常に終了した場合は（ステップＳ１７）、通信部１１０がホスト装置４００に対して完了通知を送信する（ステップＳ１８）。この完了通知は、例えばデータ信号ＳＤＡとしてＨレベル（高電位レベル）を出力することで送信する。そしてホスト装置４００からのクロック信号ＳＣＫが入力されている場合は（ステップＳ１９）、ステップＳ１２に戻って次のブロックの書き込みデータを受信する。一方、クロック信号ＳＣＫが入力されない場合は、必要な全てのブロックについてデータの書き込みが終了したものと判断して（ステップＳ１９）、処理を終了する。なお、書き込みが正常に行われなかった場合には（ステップＳ１７）、完了通知を送信することなく処理を終了する。
【００５１】
図８は、データ読み出し時のホスト装置４００側の制御を説明するフローチャートの一例である。ホスト装置４００は、始めにＩＤ情報を送信する（ステップＳ２９）。次に、データ読み出しコマンドを送信し（ステップＳ３０）、続いて読み出しデータを受信する（ステップＳ３１）。読み出しデータの受信も、書き込みデータと同様に、ブロック単位で行われる。そして受信したデータのエラーの有無を判断し（ステップＳ３２）、エラーが無ければ、必要な全てのデータの受信が終了したか否かを判断する（ステップＳ３３）。終了していない場合は、ステップＳ３１に戻って次のブロックのデータを受信する。必要な全てのデータの受信が終了すれば、書き込み処理を終了する。一方、受信データにエラーが有る場合は、ステップＳ２９に戻って再度読み出し処理を実行する。このエラーには、通信エラー及び記憶装置１００から送信されるエラーコード（エラー通知）が含まれる。
【００５２】
図９は、データ読み出し時の記憶装置１００側の制御を説明するフローチャートの一例である。始めに記憶装置１００の通信部１１０がＩＤ情報を受信し（ステップＳ３４）、通信エラー検出部ＣＥＲが通信エラーの有無を判断する（ステップＳ３５）。通信エラーが無ければ、通信部１１０は、受信したＩＤ情報と記憶装置が予め有するＩＤ情報とが一致するか否かを判断し（ステップＳ３６）、一致する場合にはコマンドを受信する（ステップＳ３７）。次に通信エラー検出部ＣＥＲが通信エラーの有無を判断し（ステップＳ３８）、通信エラーが無ければ、通信部１１０が、受信したコマンドがデータ読み出しコマンドであるか否かを判断する（ステップＳ３９）。データ読み出しコマンドである場合には、メモリー制御部１３０がメモリー領域ＭＡ１、ＭＡ２からデータを読み出して、エラー検査部１５０がエラーの有無を判断する（ステップＳ４０）。データ読み出しコマンドでない場合には、そのコマンドを実行するフローに分岐する。
【００５３】
メモリー領域ＭＡ１、ＭＡ２の両方又はいずれか一方がエラー非検出であれば、メモリー領域選択部ＡＳＥＬがメモリー領域の選択を行う（ステップＳ４１）。一方、メモリー領域ＭＡ１、ＭＡ２の両方にエラーが検出された場合には、通信部１１０がエラーコード（エラー通知）を送信して処理を終了する。
【００５４】
図１０は、メモリー領域選択部ＡＳＥＬによるメモリー領域選択（ステップＳ４１）のフローをより詳細に示したものである。始めにエラー非検出のメモリー領域の数により、場合分けする（ステップＳ４４）。エラー非検出のメモリー領域が２つある場合には、メモリー領域選択情報ＡＳＢ−１、ＡＳＢ−２を確認し（ステップＳ４５）、図３（Ｂ）の選択規則に従って、読み出し用メモリー領域を選択する（ステップＳ４６）。またエラー非検出のメモリー領域が１つだけの場合には、図３（Ａ）に示したように、エラー非検出のメモリー領域を読み出し用に選択する（ステップＳ４７）。
【００５５】
メモリー領域の選択後に、読み出し用メモリー領域から読み出したデータを通信部１１０がホスト装置４００に送信する（ステップＳ４２）。そして読み出しデータの送信後にホスト装置４００からのクロック信号ＳＣＫが入力されている場合は（ステップＳ４３）、ステップＳ４０に戻って次のブロックの読み出しデータを送信する。一方、クロック信号ＳＣＫが入力されない場合は、必要な全てのブロックについてデータの読み出しが終了したものと判断して（ステップＳ４３）、処理を終了する。
【００５６】
図１１は、データ書き込み処理のタイミングチャートの一例である。リセット信号ＸＲＳＴがＨレベルになることで、記憶装置１００のリセット状態が解除される。そしてクロック信号ＳＣＫに同期して、ホスト装置４００から記憶装置１００に対してデータ信号ＳＤＡが送信される。具体的には、始めにオペレーションコードＯＰＣが送信され、次に第１のブロックの書き込みデータＷＤ１が送信される。このオペレーションコードＯＰＣは、例えばＩＤ情報及び書き込みコマンドを含む。
【００５７】
記憶装置１００は、第１のブロックの書き込みデータＷＤ１を受信した後、図１１のＴＷの期間に、図５〜図７に示したフローに従ってメモリー領域ＭＡ１（又はＭＡ２）にデータを書き込む。そして書き込みが完了すると、完了通知をホスト装置４００に対して送信する。具体的には、図１１のＡ１に示すように、データ信号ＳＤＡをＨレベルに設定することで完了通知を送信する。次に第２のブロックの書き込みデータＷＤ２を受信して、ＴＷの期間にＷＤ２をメモリー領域に書き込み、書き込み完了後に完了通知を送信する（図１１のＡ２）。続いて第３のブロックの書き込みデータＷＤ３を受信し、同様に書き込み処理を行う。
【００５８】
図１２は、データ読み出し処理のタイミングチャートの一例である。リセット信号ＸＲＳＴがＨレベルになることで、記憶装置１００のリセット状態が解除される。そしてホスト装置４００から記憶装置１００に対してオペレーションコードＯＰＣが送信される。このオペレーションコードＯＰＣは、例えばＩＤ情報及び読み出しコマンドを含む。
【００５９】
記憶装置１００は、オペレーションコードＯＰＣを受信すると、図１２のＴＲの期間に図９、図１０に示したフローに従ってメモリー領域から第１のブロックのデータを読み出す。そしてホスト装置４００に対して第１のブロックの読み出しデータＲＤ１を送信する。続いて第２のブロックの読み出しデータＲＤ２を送信する。ＲＤ１を送信している期間に第２のブロックのデータＲＤ２をメモリー領域から読み出すことができるから、ＲＤ１の送信後に続けてＲＤ２を送信することができる。同様にして、第３のブロックの読み出しデータＲＤ３を送信する。
【００６０】
３．システム、液体容器及び回路基板
図１３に本実施形態のシステムの基本的な構成例を示す。本実施形態のシステムは、例えばインクジェット方式のプリンターなどであって、第１の記憶装置１００−１〜第ｎ（ｎは２以上の整数）の記憶装置１００−ｎ、記憶装置が実装されるｎ個の回路基板２００−１〜２００−ｎ、回路基板を備えるｎ個の液体容器３００−１〜３００−ｎ及びホスト装置４００を含む。なお、本実施形態のシステムは図１３の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００６１】
以下では、ホスト装置４００がインクジェット方式のプリンターであり、液体容器３００がインクカートリッジであり、回路基板２００がインクカートリッジに設けられた回路基板である場合を例に説明する。但し、本実施形態では、ホスト装置、液体容器、基板は、他の装置、容器、基板であってもよい。例えば、ホスト装置はメモリーカードのリーダー／ライターであってもよく、基板はメモリーカードに設けられた回路基板であってもよい。
【００６２】
第１の記憶装置１００−１〜第ｎの記憶装置１００−ｎは、それぞれリセット端子ＸＲＳＴ、クロック端子ＳＣＫ、データ端子ＳＤＡ、第１の電源端子ＶＳＳ及び第２の電源端子ＶＤＤを含む。これらｎ個の記憶装置１００−１〜１００−ｎの各々は、記憶部（例えば不揮発性メモリー等）を含み、それぞれの記憶部にはｎ個の液体容器（例えばインクカートリッジ等）３００−１〜３００−ｎを識別するためのＩＤ（Identification)情報（例えばＩＤ＝１、ＩＤ＝２、ＩＤ＝３など）が記憶されている。ＩＤは、液体容器が収容する液体の色などの種類毎に異なるものが付与される。
【００６３】
ホスト装置４００は、例えばプリンター本体などであって、ホスト側リセット端子ＨＲＳＴ、ホスト側クロック端子ＨＣＫ、ホスト側データ端子ＨＤＡ、第１のホスト側電源端子ＨＶＳＳ及び第２のホスト側電源端子ＨＶＤＤを含む。
【００６４】
上述したように、本実施形態のシステムによれば、記憶装置に記憶されたインク消費量（又はインク残量）などのデータがメモリーエラーにより過大な値（又は過小な値）になった場合でも、次のアクセス時には正しいデータを書き込むことができる。その結果、プリンターのインクカートリッジ等に適用した場合に、インクが残っているのにもかかわらず使用できないなどの不具合を低減することができる。
【００６５】
図１４に、本実施形態の液体容器（インクカートリッジ）３００の詳細な構成例を示す。液体容器３００の内部には、インクを収容するための図示しないインク室が形成される。また、液体容器３００には、インク室に連通するインク供給口３４０が設けられる。このインク供給口３４０は、液体容器３００がプリンターに装着された時に、印刷ヘッドユニットにインクを供給するためのものである。
【００６６】
液体容器３００は、回路基板２００を含む。回路基板２００には、本実施形態の記憶装置１００が設けられ、インク消費量などのデータの記憶やホスト装置４００とのデータ送受信を行う。回路基板２００は、例えばプリント基板により実現され、液体容器３００の表面に設けられる。回路基板２００には、第２の電源端子ＶＤＤ等の端子が設けられる。そして、液体容器３００がプリンターに装着された時に、それらの端子とプリンター側の端子が接触（電気的に接続）することで、電源やデータのやり取りが行われる。
【００６７】
図１５（Ａ）、図１５（Ｂ）に、本実施形態の記憶装置１００が設けられた回路基板２００の詳細な構成例を示す。図１５（Ａ）に示すように、回路基板２００の表面（プリンターと接続される面）には、複数の端子を有する端子群が設けられる。この端子群は、第１の電源端子ＶＳＳ、第２の電源端子ＶＤＤ、リセット端子ＸＲＳＴ、クロック端子ＳＣＫ、データ端子ＳＤＡを含む。各端子は、例えば矩形状（略矩形状）に形成された金属端子により実現される。そして、各端子は、回路基板２００に設けられた図示しない配線パターン層やスルーホールを介して、記憶装置１００に接続される。
【００６８】
図１５（Ｂ）に示すように、回路基板２００の裏面（プリンターと接続される面の裏側の面）には、本実施形態の記憶装置１００が設けられる。記憶装置１００は、例えば、フラッシュメモリーや強誘電体メモリー等を有する半導体記憶装置により実現できる。この記憶装置１００には、インク又は液体容器３００に関連する種々のデータが格納され、例えば、液体容器３００を識別するためのＩＤ情報やインクの消費量等のデータが格納される。インク消費量のデータは、液体容器３００内に収容されたインクについて、印刷の実行等に伴い消費されるインク量の累計を示すデータである。このインク消費量のデータは、液体容器３００内のインク量を示す情報であってもよく、消費したインク量の割合を示す情報であってもよい。
【００６９】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義又は同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また記憶装置、回路基板、液体容器及びシステムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【００７０】
１００  記憶装置、１１０  通信部、１２０  記憶部、１３０  メモリー制御部、
１４０  インクリメント判断部、１５０  エラー検査部、２００  基板、
３００  液体容器、３４０  インク供給口、４００  ホスト装置、
４１０  ホスト制御部、４２０  ホスト通信部、
ＣＥＲ  通信エラー検出部、ＡＳＢ、ＡＳＢ−１、ＡＳＢ−２  メモリー領域選択情報、ＡＳＥＬ  メモリー領域選択部、ＡＳＢＧ  メモリー領域選択情報生成部、
ＭＡ１、ＭＡ２  第１、第２のメモリー領域、ＳＣＫ  クロック信号、
ＳＤＡ  データ信号、ＶＤＤ  第２の電源、ＶＳＳ  第１の電源、
ＸＲＳＴ  リセット信号
【図１】
0005678516.tif 000002
【図２】
0005678516.tif 000003
【図３】
0005678516.tif 000004
【図４】
0005678516.tif 000005
【図５】
0005678516.tif 000006
【図６】
0005678516.tif 000007
【図７】
0005678516.tif 000008
【図８】
0005678516.tif 000009
【図９】
0005678516.tif 000010
【図１０】
0005678516.tif 000011
【図１１】
0005678516.tif 000012
【図１２】
0005678516.tif 000013
【図１３】
0005678516.tif 000014
【図１４】
0005678516.tif 000015
【図１５】
0005678516.tif 000016