(57)【要約】【課題】ノイズの発生を検出し、記憶媒体への不正なデータの書き込みを防止する記憶装置を提供すること。【解決手段】フリップフロップ８０に記憶された検査データとプリンター装置１０から受信した評価データとを比較した結果に基づいて、主データをインク情報記憶部９０に記憶するか否か、および主データをインク情報記憶部９０に記憶した場合に主データがインク情報記憶部９０に正しく記憶されたか否かを判定する判定処理部７５を備えた記憶装置を提供すること。【選択図】図３
2016143368.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から電源が供給されて動作する記憶装置であって、
前記ホスト装置は、
前記記憶装置に記憶される主データを生成し、前記主データが前記記憶装置において正しく記憶可能か否かを評価する評価データを生成し、前記記憶装置へ前記主データおよび前記評価データを送信し、
前記記憶装置は、
前記ホスト装置から前記主データおよび前記評価データを受信し、前記ホスト装置へ応答情報を送信する通信処理部と、
前記主データが記憶される記憶部と、
前記主データを前記記憶部に記憶する記憶処理部と、
１ビット以上のビット列からなる検査データを生成する検査データ生成部と、
前記検査データが記憶される検査データ記憶部と、
前記記憶部に前記主データを正しく記憶可能か否かを判定する判定処理部と、
を備え、
前記判定処理部は、前記検査データ記憶部に記憶された前記検査データと前記ホスト装置から受信した前記評価データとを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否か、および前記主データを前記記憶部に記憶した場合に前記主データが前記記憶部に正しく記憶されたか否かを判定することを特徴とする記憶装置。
【請求項２】
前記通信処理部により受信される前記評価データは、所定のタイミングおよび所定の手順に応じて更新され、
前記検査データ生成部は、前記所定のタイミングおよび前記所定の手順に応じて前記検査データを更新することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記検査データおよび前記評価データは、それぞれ第１ビット群および第２ビット群から構成され、前記判定処理部は、前記検査データの第１ビット群と前記評価データの第１群ビットとを比較する第１判定処理部と、前記検査データの第２ビット群と前記評価データの第２ビット群とを比較する第２判定処理部とを備えることを特徴とする請求項１または請求項２に記載の記憶装置。
【請求項４】
前記第１判定処理部は、前記検査データおよび前記評価データを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否かを判定することを特徴とする請求項３に記載の記憶装置。
【請求項５】
前記第２判定処理部は、前記記憶部に記憶された前記主データを取得して、取得した前記主データの誤りを検出する検証データを算出し、前記検査データおよび前記評価データを比較した結果に基づいて、前記ホスト装置に応答する前記検証データの内容を変更するか否かを判定することを特徴とする請求項３に記載の記憶装置。
【請求項６】
請求項１から請求項５のいずれか１項に記載の記憶装置を備えたことを特徴とする液体容器。
【請求項７】
ホスト装置と前記ホスト装置から電源が供給されて動作する記憶装置とを備えるシステムであって、
前記ホスト装置は、
前記記憶装置に記憶される主データを生成する主データ生成部と、
前記主データが前記記憶装置において正しく記憶可能か否かを評価する評価データを生成する評価データ生成部と、
前記記憶装置に前記主データおよび前記評価データを送信し、前記記憶装置から応答情報を受信するホスト通信処理部と、
前記ホスト通信処理部から取得した前記応答情報に基づいて、前記記憶装置において、前記主データが正しく記憶されたか否かを決定する決定処理部と、
を備え、
前記記憶装置は、
前記ホスト装置から前記主データおよび前記評価データを受信し、前記ホスト装置へ前記応答情報を送信する通信処理部と、
前記主データが記憶される記憶部と、
前記主データを前記記憶部に記憶する記憶処理部と、
１ビット以上のビット列からなる検査データを生成する検査データ生成部と、
前記検査データが記憶される検査データ記憶部と、
前記記憶部に前記主データが正しく記憶可能か否かを判定する判定処理部と、
を備え、
前記判定処理部は、前記検査データ記憶部に記憶された前記検査データと前記ホスト装置から受信した前記評価データとを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否か、および前記主データを前記記憶部に記憶した場合に前記主データが前記記憶部に正しく記憶されたか否かを判定すること、を特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、記憶装置を備えた液体容器、および液体容器を備えたシステムに関する。
【背景技術】
【０００２】
インクジェット方式のプリンターに装着されるインクカートリッジ（液体容器）には、記憶装置が設けられているものがある。この記憶装置には、例えば、インクの色やインク消費量などの情報が格納されている。インク消費量に関するデータは、プリンター本体から記憶装置に送信され、記憶装置に含まれる不揮発性メモリーで構成された記憶媒体に書き込まれている。印刷媒体として用紙を扱うプリンターでは、用紙の摩擦または剥離などにより用紙に相当量の静電気が帯電することがある。帯電した用紙により、静電誘導ノイズが発生し、しばしばインクカートリッジの記憶装置を構成する回路が誤動作を起こし、記憶媒体に不正なデータが書き込まれてしまうことがあった。
【０００３】
特許文献１では、記憶装置内に記憶媒体側へ出力するデータ信号のラインにノイズを検出する検出回路を設け、出力するデータ信号と異なる信号（ノイズ信号）を検出した場合は、記憶媒体側へデータ信号を出力しないというフールプルーフ設計された記憶装置が考案されていた。
【０００４】
特許文献２では、記憶媒体（メモリー）にデータを書き込んだ後に、プリンター側から指定された記憶媒体上のアドレスの内容をプリンター側に送信することによって、プリンター側で正常なデータが書き込まれたか否かを判定することができる記憶装置（カートリッジ）が考案されていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１７４４９２号公報
【特許文献２】特開２００４−７４４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１による記憶装置では、検出回路が記憶装置内に構成されているために、記憶装置全体に影響を与える静電誘導ノイズが発生した場合は、出力するデータ信号もノイズ信号と同電位に引っ張られてしまい、データ信号が反転しまう虞があった。記憶媒体では、このように反転したデータ信号を正常な信号として入力してしまい、不正なデータが書き込まれてしまう場合があった。
また、特許文献２では、記憶媒体にデータを書き込んだ後に、不正なデータが書き込まれてしまったか否かを判定するものであって、書き込む前に静電誘導ノイズ等の影響の有無を検出するものではなかった。着脱可能なインクカートリッジがいつ取り外されても問題が起こらないように、不正なデータが書き込まれる前に検出可能な記憶装置が望まれていた。
【０００７】
本発明は、上述した従来の課題に鑑みてなされたものであり、静電誘導ノイズなどのノイズが発生したことを従来技術よりも確実に検出し、記憶媒体へのデータ書き込み前後において、書き込み実行するか否か、および書き込み後は書き込まれたデータが不正であるか否かを判定する記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【０００９】
［適用例１］本適用例に係わる記憶装置は、ホスト装置から電源が供給されて動作する記憶装置であって、前記ホスト装置は、前記記憶装置に記憶される主データを生成し、前記主データが前記記憶装置において正しく記憶可能か否かを評価する評価データを生成し、前記記憶装置へ前記主データおよび前記評価データを送信し、前記記憶装置は、前記ホスト装置から前記主データおよび前記評価データを受信し、前記ホスト装置へ応答情報を送信する通信処理部と、前記主データが記憶される記憶部と、前記主データを前記記憶部に記憶する記憶処理部と、１ビット以上のビット列からなる検査データを生成する検査データ生成部と、前記検査データが記憶される検査データ記憶部と、前記記憶部に前記主データを正しく記憶可能か否かを判定する判定処理部と、を備え、前記判定処理部は、前記検査データ記憶部に記憶された前記検査データと前記ホスト装置から受信した前記評価データとを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否か、および前記主データを前記記憶部に記憶した場合に前記主データが前記記憶部に正しく記憶されたか否かを判定することを特徴とする。
【００１０】
本適用例によれば、記憶装置に記憶された検査データは、ホスト装置が生成する評価データと比較される。例えば、記憶装置全体に影響を与えてしまう静電誘導ノイズが発生した場合であっても、ホスト装置側の評価データと記憶装置側の検査データとを比較することで、記憶装置においてノイズの影響を受けた形跡があるか否かを検出することができる。
また、記憶装置では、検査データおよび評価データを比較した結果に基づいて、記憶部に主データを記憶（書き込み）する前であれば、書き込み実行するか否かを判定をすることができ、主データを書き込みした後であれば、不正なデータが書き込まれたか否かを判定することができる。
従って、静電誘導ノイズなどのノイズが発生したことを従来技術よりも確実に検出し、記憶媒体へのデータ書き込み前後において、書き込み実行するか否か、および書き込み後は書き込まれたデータが不正であるか否かを判定する記憶装置を提供することができる。
【００１１】
［適用例２］前記通信処理部により受信される前記評価データは、所定のタイミングおよび所定の手順に応じて更新され、前記検査データ生成部は、前記所定のタイミングおよび前記所定の手順に応じて前記検査データを更新することを特徴とする。
【００１２】
本適用例によれば、評価データおよび検査データは、共に所定のタイミングおよび所定の手順により更新することで、発生するノイズのタイミングおよびノイズの影響状況に対応した判定をすることができる。
【００１３】
［適用例３］前記検査データおよび前記評価データは、それぞれ第１ビット群および第２ビット群から構成され、前記判定処理部は、前記検査データの第１ビット群と前記評価データの第１群ビットとを比較する第１判定処理部と、前記検査データの第２ビット群と前記評価データの第２ビット群とを比較する第２判定処理部とを備えることを特徴とする。
【００１４】
本適用例によれば、検査データおよび評価データの比較を、第１ビット群および第２ビット群により２回に分けて判定処理を行うことができ、１回の判定に比べてより確実に不正なデータを検出することができる。
【００１５】
［適用例４］前記第１判定処理部は、前記検査データおよび前記評価データを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否かを判定することが好ましい。
【００１６】
［適用例５］前記第２判定処理部は、前記記憶部に記憶された前記主データを取得して、取得した前記主データの誤りを検出する検証データを算出し、前記検査データおよび前記評価データを比較した結果に基づいて、前記ホスト装置に応答する前記検証データの内容を変更するか否かを判定することが好ましい。
【００１７】
［適用例６］本適用例に係わる液体容器は、上述の適用例に記載の記憶装置を備えたことを特徴とする。
【００１８】
本適用例によれば、静電誘導ノイズなどのノイズの発生有無を従来技術よりも確実に検出し、記憶媒体への不正データの書き込み防止、および記憶媒体に不正データが含まれているか否かを判定する記憶装置を備えた液体容器を提供することができる。
【００１９】
［適用例７］本適用例に係わるシステムは、ホスト装置と前記ホスト装置から電源が供給されて動作する記憶装置とを備えるシステムであって、前記ホスト装置は、前記記憶装置に記憶される主データを生成する主データ生成部と、前記主データが前記記憶装置において正しく記憶可能か否かを評価する評価データを生成する評価データ生成部と、前記記憶装置に前記主データおよび前記評価データを送信し、前記記憶装置から応答情報を受信するホスト通信処理部と、前記ホスト通信処理部から取得した前記応答情報に基づいて、前記記憶装置において、前記主データが正しく記憶されたか否かを決定する決定処理部と、を備え、前記記憶装置は、前記ホスト装置から前記主データおよび前記評価データを受信し、前記ホスト装置へ前記応答情報を送信する通信処理部と、前記主データが記憶される記憶部と、前記主データを前記記憶部に記憶する記憶処理部と、１ビット以上のビット列からなる検査データを生成する検査データ生成部と、前記検査データが記憶される検査データ記憶部と、前記記憶部に前記主データが正しく記憶可能か否かを判定する判定処理部と、を備え、前記判定処理部は、前記検査データ記憶部に記憶された前記検査データと前記ホスト装置から受信した前記評価データとを比較した結果に基づいて、前記主データを前記記憶部に記憶するか否か、および前記主データを前記記憶部に記憶した場合に前記主データが前記記憶部に正しく記憶されたか否かを判定すること、を特徴とする。
【００２０】
本適用例によれば、記憶装置に記憶された検査データは、ホスト装置が生成する評価データと比較される。例えば、静電誘導ノイズが発生し、記憶装置全体に影響があった場合では、検査データがノイズの影響により不正データに変わってしまったことを、ホスト装置側の評価データを用いて判定することができる。
また、記憶装置では、検査データと評価データとを比較した結果に基づいて、主データを記憶部に記憶（書き込み）する前であれば、書き込みをしない判定をすることができ、主データを記憶部に書き込みした後であれば、不正データが書き込まれたことを判定することができる。
ホスト装置は、記憶装置から判定結果が含まれる応答を受信し、主データが正しく記憶されたか否かを決定することができる。
従って、静電誘導ノイズなどのノイズの発生有無を従来技術よりも確実に検出し、記憶媒体への不正データの書き込み防止、および記憶媒体に不正データが含まれているか否かを判定するシステムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】プリンターの概略構成を説明する図。
【図２】インクカートリッジの概略構成を説明する図。
【図３】プリンターの概略構成を示すブロック図。
【図４】データ信号線の送受信を説明するイメージ図。
【図５】プリンター装置側の記憶処理の流れ示すフローチャート図。
【図６】インクカートリッジ側の記憶処理の流れを示すフローチャート図。
【発明を実施するための形態】
【００２２】
以下に本発明を具体化した実施形態について、図面を参照して説明する。以下は、本発明の一実施形態であって、本発明を限定するものではない。なお、以下の各図においては、説明を分かりやすくするため、実際とは異なる尺度で記載している場合がある。
【００２３】
（実施形態１）
（プリンターの概要）
図１は、プリンターの概略構成を説明する図である。図２は、インクカートリッジの概略構成を説明する図である。
プリンター１は、システムに相当し、プリンター装置１０とプリンター装置１０に着脱可能に装着されたインクカートリッジ５０とから構成される。
尚、プリンター装置１０は、ホスト装置に相当し、インクカートリッジ５０は、液体容器に相当する。
【００２４】
（プリンター装置）
プリンター装置１０は、用紙Ｐのような媒体に文字や図形を含む画像等を記録可能なインクジェット式プリンターである。プリンター装置１０は、用紙ガイド４１、キャリッジ３７、排紙口４３、カバー３３、電源コード３１、電源ボタン３２、表示部１１、操作部１３、ガイドロッド３５などから構成される。尚、インクカートリッジ５０は、プリンター装置１０の構成に含まれていない。
【００２５】
用紙ガイド４１は、セットされた用紙Ｐをキャリッジ３７の方向に案内するガイド部材である。用紙Ｐは、搬送ローラー（図示は省略）により用紙ガイド４１から送り出されると、キャリッジ３７の下側（プリンター装置１０の底面側）を通過し、用紙Ｐの排紙を案内する排紙口４３側に搬送される。用紙Ｐが搬送される方向を搬送方向またはＹ軸方向と呼称する。
【００２６】
キャリッジ３７は、各々異なる色のインクが収容されるインクカートリッジ５０を複数個（図１では４個）装着可能であり、キャリッジ３７の下側（用紙と対向する面）にはインクヘッド（図示は省略）が備えられている。インクカートリッジ５０には、着色されたインクが収容され、キャリッジ３７を介してインクヘッドからインクが吐出され、用紙Ｐの表面が着色される。
【００２７】
ガイドロッド３５はキャリッジ３７を支持するロッドであり、キャリッジ３７は、ガイドロッド３５に沿って搬送方向と略垂直方向に往復移動（走査）する。尚、キャリッジ３７が走査する方向を走査方向またはＸ軸方向と呼称する。走査方向に往復移動されるキャリッジ３７と、搬送方向に搬送される用紙Ｐにより、用紙Ｐの表面には平面的に文字や画像等が形成される。
【００２８】
カバー３３は、プラスチック製の板形状を成す部材であり、ユーザーにより開閉可能である。図１に示すカバー３３の状態はカバー３３が開いた状態であり、この状態でユーザーの手動操作によりインクカートリッジ５０などの脱着が行われる。
尚、Ｘ軸方向とＹ軸方向を含むＸＹ平面に垂直な方向をＺ軸方向と呼称する。
【００２９】
電源コード３１は、プリンター装置１０にＡＣ電源を供給するＡＣ電源ライン、および回路基板のグランドなどを接地する接地ライン（図示は省略）を含み構成されている。電源ボタン３２は、プリンター装置１０の駆動部および回路などへ電源供給を切り換える。
表示部１１は、液晶パネル等の表示装置であり、プリンター装置１０が保持している各種情報が表示される。操作部１３は、ボタンスイッチ等のスイッチであり、プリンター装置１０に対する各種設定がユーザーの手動操作によるスイッチ押下により実行される。
【００３０】
（インクカートリッジ）
図２に示すようにインクカートリッジ５０には、インク供給口５１および記憶装置６０が配設されている。また、インクカートリッジ５０の内部には、インクを収容するためのインク室（図示は省略）が形成されている。インクカートリッジ５０は、プリンター装置１０のキャリッジ３７に対して記憶装置６０の配設面をプリンター装置１０のＹ軸方向背面側に向けて、また、インク供給口５１の配設面をプリンター装置１０のＺ方向底面側に向けて装着される。
インク供給口５１は、インク室に連通し、キャリッジ３７に装着されたときにインクヘッドへインクを供給する。
【００３１】
記憶装置６０は、回路基板と、５個の接続端子５３を有している。また、記憶装置６０は、回路基板に実装された半導体ＩＣやレジスター（フリップフロップ）などにより構成される演算回路と、揮発性メモリーおよび不揮発性メモリーを含む記憶素子（いずれも図示は省略）と、が実装されている。演算回路と記憶素子は一つの半導体ＩＣで構成してもよい。演算回路および記憶素子の機能については、図３を用いて詳細を後述する。
接続端子５３は、クロック端子ＴＣＫ、データ端子ＴＤＡ、リセット端子ＴＲＳＴ、２系統の電源端子ＶＳＳ（グランド電位供給用の端子），ＶＤＤ（グランド電位よりも電位が高い電源電位供給用の端子）（いずれも図示は省略）があり、キャリッジ３７側にもそれぞれの端子に対応する端子が配設されている。インクカートリッジ５０がキャリッジ３７に装着されると、それぞれの端子を介して信号の送受信および電源供給が可能になる。
【００３２】
最初に、電源端子ＶＳＳ，ＶＤＤを介してプリンター装置１０から記憶装置６０に電源が供給されると、記憶装置６０が始動する。次に、リセット端子ＴＲＳＴを介してプリンター装置１０からリセット信号がＬｏｗレベル（Ｌレベル）からＨｉｇｈレベル（Ｈレベル）になって出力される。記憶装置６０側ではリセット信号がＨレベルの期間中、プリンター装置１０と通信可能になる。クロック端子ＴＣＫを介してプリンター装置１０において生成されたクロック信号が出力されると、プリンター装置１０と記憶装置６０との間で同期が取られ、データ信号の送受信が可能になる。データ端子ＴＤＡを介してプリンター装置１０と記憶装置６０との間でデータ信号の送受信が行われる。
【００３３】
プリンター装置１０では、インクカートリッジ５０に収容されているインクの残量情報を算出しており、算出したインク残量情報をインクカートリッジ５０へ送信する。インクカートリッジ５０側では、インクカートリッジ５０が取り外されても記憶状態が保持される不揮発性メモリーの記憶領域に、受信したインク残量情報を格納する。
【００３４】
プリンター装置１０は、記憶装置６０の不揮発性メモリーに記憶されている情報の読出しが必要なとき、あるいは、記憶装置６０の不揮発性メモリーの情報を更新（書き込み）する必要があるときに、記憶装置６０に電源を供給する。プリンター１の動作状態では、用紙Ｐなどの搬送による摩擦帯電および剥離帯電により、用紙Ｐへの帯電量が増大する。また、絶縁体であるプラスチック製のカバー３３においても、ユーザーによる開閉操作などにより帯電される。帯電量が増大することによる静電誘導により、記憶装置６０の半導体ＩＣやレジスター（フリップフロップ）などの信号が反転してしまう等のソフトウェアエラーが発生する。また、湿度が４０％程度以下などになり乾燥した環境下では、ユーザーの衣服などに帯電した静電気が、操作部１３を制御する回路基板のグランド（ＧＮＤ）ラインやガイドロッド３５など間接的にアースされた導電体と接触することにより、静電気放電が発生し、電磁誘導により信号ラインの電位を変えてしまう場合もある。
【００３５】
このようにして、記憶装置６０の演算回路や記憶素子に対して意図しない信号の反転が発生し、インクカートリッジ５０における不揮発性メモリーへインク残量情報を書き込む処理等の誤動作を招いてしまい、不正なデータが書き込まれてしまうといった問題が発生する。
以降に、このような問題が発生する前に、誤動作を招く虞があるか否かを検出し、検出した場合には、記憶装置６０の不揮発性メモリーへの書き込みを防止し、既に不揮発性メモリーへ書き込みされてしまっている場合は不正データが含まれているか否かを判定することができるプリンター１について説明する。
【００３６】
（プリンターの概略構成）
図３は、プリンターの概略構成を示すブロック図である。
プリンター１は、プリンター装置１０、インクカートリッジ５０から構成されている。インクカートリッジ５０は、合計４個が、プリンター装置１０の制御部に電気的に接続されており、それぞれのブロック構成は共通である（３個のインクカートリッジ５０の構成については記載を省略している）。
尚、図３に示すプリンター装置１０およびインクカートリッジ５０は、この構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの様々の変形実施が可能である。
【００３７】
（プリンター装置のブロック図）
プリンター装置１０は、表示部１１、操作部１３、計時部１５、記憶部１７、制御部２０を有して構成される。尚、キャリッジ３７を含む印刷部や電源コード３１および電源ボタン３２などを含む電源部なども有しているが、図示および説明を省略している。
【００３８】
表示部１１および操作部１３は、上述したように液晶パネル、ボタンスイッチ等であり、表示部１１では、制御部２０から入力される表示信号に基づく表示が行われ、操作部１３では、ボタンスイッチが押下されたことを示す操作信号が制御部２０へ出力される。計時部１５は、リアルタイムクロックモジュールであり、発振回路と分周回路を備え、任意の周波数のクロック信号を出力可能であり、クロック端子ＴＣＫに出力されるクロック信号等が生成される。また、例えばタイマー機能、時計機能などの計時機能も有している。
【００３９】
記憶部１７は、ＲＯＭ（Read Only Memory）やフラッシュＲＯＭ、ＲＡＭ（Random Access Memory）等の半導体メモリーによって構成され、制御部２０により読み出され各種機能を実現するために実行されるプログラムおよび出力されるデータなどを記憶している。
【００４０】
制御部２０は、記憶部１７に記憶されている各種プログラムに従ってプリンター装置１０の各部を統括的に制御する制御装置および演算装置であり、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等のプロセッサーを有して構成される。
【００４１】
制御部２０は、記憶部１７に記憶された各種プログラムに従って各種機能を実現する。制御部２０は、例えば、ＰＲＴビット列生成部２１、インク情報生成部２３、決定処理部２５、およびＰＲＴ通信処理部２９を機能部として有する。これらの機能部は、インク残量情報を含むインク情報を生成し、インク情報をインクカートリッジ５０へ送信する。そして、インクカートリッジ５０側から、記憶装置６０の不揮発性メモリーに記憶されたインク情報の格納状態を表す情報を取得し、取得したインク情報の格納状態に基づいて、エラー処理を行うか、または正常終了するかについて決定する。
尚、これらの機能部は一実施例として記載したものに過ぎず、必ずしもこれらすべての機能部を必須構成要素としなければならないわけではない。また、これら以外の機能部を必須構成要素としても良い。
【００４２】
ＰＲＴビット列生成部２１は、インクカートリッジ５０がノイズの影響を受けているか否かを評価するためのビット列を生成する。詳しくは、生成されるビット列は少なくとも１ビット以上（例えば、８ビット、３２ビットなど）で構成されるビット列であり、２種類のビット列が生成される。生成された２種類のビット列は、それぞれ変数として、制御部のメモリーの所定のビット列A、ビット列Bの領域に格納される。２種類のビット列が格納する変数を、以降、プリンター装置１０のビット列Ａ、ビット列Ｂと呼称する。
尚、インクカートリッジ５０側においても後述するＣＴＧビット列生成部７１においても、同様に２種類のビット列が生成され、それらのビット列の内容は、ＰＲＴビット列生成部２１において生成されたビット列Ａおよびビット列Ｂと同じ内容になる。ＣＴＧビット列生成部７１において生成されるビット列を、インクカートリッジ５０のビット列Ａ、ビット列Ｂと呼称する。
【００４３】
詳しくは、ＰＲＴビット列生成部２１は、ビット列Ａおよびビット列Ｂを生成する元になる所定のビット列を生成して、ＰＲＴ通信処理部２９を介してインクカートリッジ５０側のＣＴＧビット列生成部７１へ送信する。ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１において、同じ内容の所定のビット列から、同一の処理を行って２種類のビット列を生成る。同一の処理とは、所定のビット列からビット列Ａおよびビット列Ｂの内容を生成できる処理であれば良く、予め、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１に組み込まれた演算処理である。例えば、所定のビット列の奇数ビットをビット列Ａの内容として、偶数ビットをビット列Ｂの内容としても良い。また、例えば、所定のビット列から任意のビット列を所定の算術演算により算出されたビット列をビット列Ａの内容として、反転したビット列をビット列Ｂの内容としても良い。
【００４４】
このように、ビット列Ａおよびビット列Ｂの内容は、プリンター装置１０とインクカートリッジ５０との間で、生成時に互いに一致するように生成されていれば良い。また、ＰＲＴビット列生成部２１は、任意のタイミングにビット列Ａおよびビット列Ｂを生成しても良く、その場合は、ＰＲＴビット列生成部がビット列Ａおよびビット列Ｂを生成したタイミングに対応するタイミングで、ＣＴＧビット列生成部７１側においてもビット列Ａおよびビット列Ｂが生成されるように構成されている。
尚、ＰＲＴビット列生成部２１は、評価データ生成部に相当する。
【００４５】
インク情報生成部２３は、インクカートリッジ５０側の不揮発性メモリーに記憶するインク情報を生成する。インク情報は、インクまたはインクカートリッジに関連する様々なデータであり、例えば、インクの消費量等が含まれている。インク情報生成部２３は、インクカートリッジ５０内に収容されたインク毎に、印刷の実行に伴い消費されるインク量を累計してインク消費量のデータを生成する。尚、このインク消費量のデータは、インクカートリッジ５０内のインク量を示す情報であっても良く、消費したインク量の割合を示す情報であっても良い。
尚、インク情報生成部２３は、主データ生成部に相当する。
【００４６】
決定処理部２５は、インクカートリッジ５０側からインク情報が正常に不揮発性メモリーに記憶されたか否かについて判断できる情報を取得し、その情報に基づいてインク情報の書き込みを正常終了とするかエラー処理とするか決定する。決定処理部２５は、第１決定処理部２６および第２決定処理部２８の機能部を有し、それぞれの機能部を順番に処理する。
尚、決定処理部２５は、決定処理部に相当する。
【００４７】
第１決定処理部２６は、インクカートリッジ５０から応答されたアクノーリッジ（以降、ＡＣＫ信号と呼称する）に対して、エラーが発生したとするか否かを決定する処理を行う。
ＡＣＫ信号は、プリンター装置１０から送信したデータに対してインクカートリッジ５０側でデータの受信に成功した、ことを示す応答信号であると共に、「０」「１」を表す信号の値を有している。ＡＣＫ信号の値が「０」は、「ＮＧ」でありインク情報の書き込みに失敗したことを表しており、「１」は、「ＯＫ」であり成功であることを表している。
【００４８】
第１決定処理部２６は、インクカートリッジ５０側でＡＣＫ信号を送信する第１判定処理部７６（後述する）と連携して機能する機能部である。第１決定処理部２６は、ＡＣＫ信号が「ＮＧ」であれば、エラー処理を行い、「ＯＫ」であれば、第２決定処理部２８に処理を移す。
【００４９】
第２決定処理部２８は、インクカートリッジ５０からインク情報の格納状態を表す情報であるチェックデータを取得して、正常終了するか、エラー処理とするか決定する処理を行う。
インクカートリッジ５０から取得するチェックデータは、インク情報が不揮発性メモリーに書き込まれた後の格納状態を表すデータである。第２決定処理部２８では、インク情報を送信する前に、チェックデータを算出しておき、送信前のチェックデータの内容と、インクカートリッジ５０側から送信されたチェックデータの内容とを照合し、不一致であった場合はエラー処理を行い、一致した場合は正常に格納されたとして正常終了する。
第２決定処理部２８は、インクカートリッジ５０側でチェックデータを算出し、送信する第２判定処理部７８（後述する）と連携して機能する機能部である。
【００５０】
ＰＲＴ通信処理部２９は、インクカートリッジ５０側のＣＴＧ通信処理部７９との間で、通信を確立し、インク情報、ビット列を送信し、ＡＣＫ信号、チェックデータを受信する。詳しくは、プリンター装置１０とインクカートリッジ５０との通信においてはバス（図示は省略）を介して接続されている。バスに含まれるデータ信号線（データ端子ＴＤＡと接続される信号線）には、ＬレベルおよびＨレベルのデータ信号が送受信される。ＰＲＴ通信処理部２９では、データ信号のＬレベルを「０」に、Ｈレベルを「１」に変換して、ビット列を生成する。
ＰＲＴ通信処理部２９は、インクカートリッジ５０側においてバスを介して送受信を行うＣＴＧ通信処理部７９（後述する）と連携して機能する。
尚、ＰＲＴ通信処理部２９は、ホスト通信処理部に相当する。
【００５１】
（インクカートリッジのブロック図）
インクカートリッジ５０は、記憶装置６０を有して構成される。また、上述したようにインクを収容するインク室（図示は省略）を備えている。
記憶装置６０は、フリップフロップ８０、インク情報記憶部９０、制御部７０を備えて構成される。
【００５２】
フリップフロップ８０は、データ入力型または汎用型などのレジスターであり、電源供給状態において信号の状態（ビットのオン「１」、オフ「０」）を記憶する揮発性メモリーである。フリップフロップ８０は、ＦＦ−Ａ８１、ＦＦ−Ｂ８３を有する。ＦＦ−Ａ８１、ＦＦ−Ｂ８３は、それぞれ１ビット以上（例えば、８ビット、３２ビットなど）の記憶容量を有するレジスターであり、ＦＦ−Ａ８１はインクカートリッジ５０のビット列Ａの内容を、ＦＦ−Ｂ８３はインクカートリッジ５０のビット列Ｂの内容を格納するために備えられている。ＦＦ−Ａ８１およびＦＦ−Ｂ８３は、記憶装置６０の回路基板上で後述するインク情報記憶部９０（不揮発性メモリー）よりも静電気等のノイズの影響を受けやすい位置に配置されている。例えば、ＦＦ−Ａ８１およびＦＦ−Ｂ８３は、不揮発性メモリーが配設されている位置よりも回路基板の表面側の位置、または回路の配線上では不揮発性メモリーとデータ端子ＴＤＡとの間に配置されている構成であっても良い。このような配置にすることにより、ＦＦ−Ａ８１およびＦＦ−Ｂ８３は、記憶装置６０の他の回路よりも静電気等のノイズの影響を受け易くなっている。
尚、フリップフロップ８０は、検査データ記憶部に相当する。
【００５３】
インク情報記憶部９０は、フラッシュメモリーなどの不揮発性メモリーである。インク情報記憶部９０は、インクデータ格納領域９１を備えている。
インクデータ格納領域９１は、プリンター装置１０から送信されたインク情報をインクデータとして格納する領域である。また、インク情報記憶部９０には、インクデータ格納領域９１の他に、インクカートリッジ５０を識別するためのＩＤ情報などの情報を格納する領域が備えられている。
尚、インク情報記憶部９０は、記憶部に相当する。
【００５４】
制御部７０は、複数の論理素子、ラッチ回路、およびＰＬＤ（Programmable Logic Device）などで構成された演算回路であり、バスを介して接続されるプリンター装置１０から供給される電源およびクロック信号により動作可能になる。
制御部７０では、演算回路が動作することによって各種機能が実現される。制御部７０は、例えば、ＣＴＧビット列生成部７１、インク情報処理部７３、判定処理部７５、およびＣＴＧ通信処理部７９を機能部として有する。これらの機能部が実現されることにより、プリンター装置１０から入力したインク情報が不揮発性メモリーであるインク情報記憶部９０に書き込まれる。また、揮発性メモリーであるフリップフロップ８０を用いて静電気等に起因するノイズの影響を受けた虞があるか否かを検出し、検出結果をプリンター装置１０へ送信する。そして、インク情報の格納状態を表すチェックデータを算出し、算出したチェックデータをプリンター装置１０へ送信する。
【００５５】
ＣＴＧビット列生成部７１は、記憶装置６０がノイズの影響を受けているか否かを検出するためのビット列を生成する。
詳しくは、ＣＴＧビット列生成部７１では、前述した所定のビット列をプリンター装置１０側のＰＲＴビット列生成部２１からＣＴＧ通信処理部７９を介して受信する。ＣＴＧビット列生成部７１およびＰＲＴビット列生成部２１において同じ内容の所定のビット列から、ＰＲＴビット列生成部２１と同一の処理を行って２種類のビット列を生成し、その内容をインクカートリッジ５０のビット列Ａおよびビット列Ｂに格納する。この時点では、プリンター装置１０のビット列Ａとインクカートリッジ５０のビット列Ａの内容は同じであり、プリンター装置１０のビット列Ｂとインクカートリッジ５０のビット列Ｂの内容は同じ内容になっている。
次に、ＣＴＧビット列生成部７１は、ビット列Ａの内容をＦＦ−Ａ８１へ、ビット列Ｂの内容をＦＦ−Ｂ８３へ記憶させる。
尚、ＣＴＧビット列生成部７１は、検査データ生成部に相当する。
【００５６】
インク情報処理部７３は、インク情報記憶部９０を管理する機能部である。具体的には、インク情報記憶部９０の記憶領域へのインク情報を含む各種データの書き込みと読み出し、およびインクデータ格納領域９１に関わる様々な処理も行われる。インクデータ格納領域９１に関わる処理では、インクデータ格納領域９１に書き込まれたインクデータを読み出して、チェックデータを算出する処理が含まれている。チェックデータの算出は、後述する判定処理部７５の指示により実行される。
チェックデータは、プリンター装置１０側の第２決定処理部２８において算出されるチェックデータと同様な方法で算出される。つまり、インクデータ格納領域９１から読み出されたインクデータと、プリンター装置１０側の送信前のインクデータとの間に相違部分が無ければ、両者のチェックデータは一致することになる。
尚、インク情報処理部７３は、記憶処理部に相当する。
【００５７】
判定処理部７５は、記憶装置６０がノイズの影響を受けた形跡があるか否かを検出し、インク情報をインク情報記憶部９０に書き込むか否かを判定する。また、インク情報がインク情報記憶部９０に書き込まれた後に、ノイズの影響を受けた形跡があるか否かを検出し、プリンター装置１０へ応答する内容を正常に書き込み終了した、とするか異常が発生したとするか判定する。判定処理部７５は、第１判定処理部７６および第２判定処理部７８の機能部を有し、それぞれの機能部を順番に処理する。
尚、判定処理部７５は、判定処理部に相当する。
【００５８】
第１判定処理部７６は、インク情報処理部７３およびＣＴＧ通信処理部７９を制御して、ＦＦ−Ａ８１に記憶されている内容を用いてノイズの影響の有無を判定する。詳しくは、プリンター装置１０からプリンター装置１０のビット列Ａの内容をＣＴＧ通信処理部７９から取得し、ＦＦ−Ａ８１に記憶されている内容と比較する。
比較した結果、一致した場合は、インクデータをインクデータ格納領域９１に書き込む指示をする。実際の書き込み処理は、インク情報処理部７３において行われる。第１判定処理部７６では、インク情報処理部７３において書き込み処理が正常に終了した場合は、ＡＣＫ信号に「１」を設定してプリンター装置１０へ送信を指示する。
比較した結果、一致しなかった場合、またはインク情報処理部７３において書き込み処理が正常終了しなかった場合は、ＡＣＫ信号に「０」を設定してプリンター装置１０へ送信を指示する。尚、プリンター装置１０との各種データの送受信は後述するＣＴＧ通信処理部７９により実現される。
尚、第１判定処理部７６は、第１判定処理部に相当する。
【００５９】
第２判定処理部７８は、インク情報処理部７３およびＣＴＧ通信処理部７９を制御して、ＦＦ−Ｂ８３に記憶されているビット列Ｂを用いてノイズの影響の有無を判定し、算出したチェックデータをプリンター装置１０へ送信する。詳しくは、第１判定処理部７６においてインクデータ格納領域９１に格納されたインクデータを読み出して、チェックデータの算出を指示する。チェックデータの算出処理は、インク情報処理部７３において行われる。
【００６０】
次に、第２判定処理部７８では、ＣＴＧ通信処理部７９を介してプリンター装置１０からビット列Ｂを受信し、プリンター装置１０のビット列Ｂの内容を取得する。取得したビット列Ｂの内容とＦＦ−Ｂ８３に記憶されている内容とを比較する。
比較した結果、一致した場合は、インク情報処理部７３により算出されたチェックデータをプリンター装置１０へ送信するよう指示する。
比較した結果、一致しなかった場合は、チェックデータの内容を変更して不正なチェックデータを生成し、生成された不正チェックデータをプリンター装置１０へ送信するよう指示する。プリンター装置１０側では、不正チェックデータを受信すると、インクカートリッジ５０においてインク情報記憶部９０に書き込まれたインク情報が正しく書き込まれておらず、何らかの異常が発生したことを知ることができる。
尚、第２判定処理部７８は、第２判定処理部に相当する。
【００６１】
ＣＴＧ通信処理部７９は、プリンター装置１０側のＰＲＴ通信処理部２９との間で通信を確立し、インク情報およびビット列を受信し、ＡＣＫ信号およびチェックデータを送信する。ＣＴＧ通信処理部７９は、プリンター装置１０側においてデータの送受信を行うＰＲＴ通信処理部２９と連携して機能する。
尚、ＣＴＧ通信処理部７９は、通信処理部に相当する。
【００６２】
（データ信号線の送受信データ信号）
図４は、記憶装置６０への書込み時のデータ信号線の送受信を説明するイメージ図である。図４に示すイメージ図はデータ信号線において転送されるデータ信号と、方向を表している。方向は、データ信号の送信される方向であり、「ＰｔｏＩ」は、プリンター装置１０からインクカートリッジ５０へデータ信号が送信される方向であることを示し、「ＩｔｏＰ」は、インクカートリッジ５０からプリンター装置１０へデータ信号が送信される方向であることを示している。
【００６３】
送受信データは、ＩＤ情報信号１０１、書込みコマンド信号１０２、インクデータ信号１０３〜１０５、ビット列Ａ信号１０６、ビット列Ｂ信号１０７、ＡＣＫ信号１０８、チェックデータ信号１０９のデータ信号が順番に列挙されている。それぞれのデータ信号はＬレベル、Ｈレベルを有し、プリンター装置１０側から出力されるクロック信号を用いてサンプリングされる。それぞれのデータ信号は、例えば、８ビット分のデータおよび１ビット分のパリティビットが含まれた信号である。
但し、ＡＣＫ信号については信号の方向が変わるため、プリンター装置１０側で応答を確実に取得するためにクロック信号をＨレベルに保持し、その期間中に、インクカートリッジ５０側からＡＣＫ信号１０８を送信する手順になっている。プリンター装置１０側では、ＡＣＫ信号１０８がＨレベルであればデータ信号のビットを「１」に、Ｌレベルであればデータ信号のビットを「０」に変換する。
尚、プリンター装置１０およびインクカートリッジ５０のそれぞれの通信処理、信号とデータの変換処理などは、上述したＰＲＴ通信処理部２９とＣＴＧ通信処理部７９とにより実現されている。
【００６４】
プリンター装置１０からインクカートリッジ５０へ送信されるデータ信号は、ＩＤ情報信号１０１、書込みコマンド信号１０２、インクデータ信号１０３〜１０５、ビット列Ａ信号１０６、ビット列Ｂ信号１０７である。
ＩＤ情報信号１０１は、インクカートリッジ５０を識別するＩＤ情報の信号である。インクカートリッジの記憶装置６０は、自身に記憶しているＩＤと、プリンター装置１０から受信したＩＤが一致したときのみ、書き込みや読み出しを実行する。書込みコマンド信号１０２は、プリンター装置１０からインクカートリッジ５０において指示するコマンドであり、本実施形態では書き込みコマンドの信号が送信されている。インクデータ信号１０３〜１０５は、８ビット分のインクデータ信号が複数個送信されているイメージを表している。インクデータ信号は、例えば、１２８バイト分のインクデータ信号が送信される。これは、記憶装置６０の不揮発性メモリーに書き込まれるデータ列である。ビット列Ａ信号１０６およびビット列Ｂ信号１０７は、プリンター装置１０において生成されたビット列Ａおよびビット列Ｂのデータ信号が送信される。
【００６５】
インクカートリッジ５０からプリンター装置１０へ送信されるデータ信号は、ＡＣＫ信号１０８およびチェックデータ信号１０９である。上述したように、プリンター装置１０側でＡＣＫ信号１０８の受信待ち状態になっている状態で、インクカートリッジ５０側からＡＣＫ信号１０８を送信し、引き続きチェックデータ信号１０９が送信される。尚、ＡＣＫ信号１０８およびチェックデータ信号１０９を含むインクカートリッジ５０からプリンター装置１０へ送信されるデータ信号は応答情報に相当する。
【００６６】
尚、上述の説明において、送受信されるデータ信号の構成は、上述の構成に限らない。送信するデータ信号を確実に送信先に届けるために、複数回同じデータ信号を繰り返して送信しても良い。また、送信したデータ信号の誤り訂正や、再送信などがされる構成であっても良い。
【００６７】
（プリンターの記憶処理フロー）
図５は、プリンター装置側の記憶処理の流れ示すフローチャート図である。図６は、インクカートリッジ側の記憶処理の流れを示すフローチャート図である。
【００６８】
図５に示すフローは、プリンター装置１０において制御部２０が記憶部１７に記憶される制御プログラムに基づいて、制御部２０が計時部１５、記憶部１７を含む各部を制御することにより実行される。尚、本フローの実行により、制御部２０を構成するＰＲＴビット列生成部２１、インク情報生成部２３、決定処理部２５、およびＰＲＴ通信処理部２９の各部の機能が実現される。
【００６９】
図６に示すフローは、インクカートリッジ５０において制御部７０を構成する演算回路が動作することによって実行される。尚、本フローの実行により、ＣＴＧビット列生成部７１、インク情報処理部７３、判定処理部７５、およびＣＴＧ通信処理部７９の各部の機能が実現される。
尚、図５および図６に示す各ステップは、処理に矛盾が生じない限り、複数ステップを同時に処理してもよく、ステップを入れ替えてもよい。
【００７０】
最初に図５を用いて、プリンター装置１０側のフローチャートの説明をする。
ステップＳ１１０では、ビット列Ａおよびビット列Ｂを生成する。所定のビット列から２種類のビット列を生成し、ビット列Ａおよびビット列Ｂへ格納する。また、所定のビット列をインクカートリッジ５０側へ送信する。
【００７１】
ステップＳ１２０では、インクデータを生成する。プリンター装置１０において印刷実行に伴い消費されるインク量を累計してインク残量を算出する。算出したインク残量をインクデータとして生成する。
【００７２】
ステップＳ１３０では、インクデータ、ビット列Ａ、ビット列Ｂをインクカートリッジ５０へ送信する。インクカートリッジ５０側では、ステップＳ２３０においてインクデータ、ビット列Ａ、ビット列Ｂを受信する。
【００７３】
ステップＳ１４０では、ＡＣＫ信号を受信する。インクカートリッジ５０側のステップＳ２９０から送信されたＡＣＫ信号を受信する。
【００７４】
ステップＳ１５０では、ＡＣＫ信号が「ＯＫ」であるか否か判定する。ＡＣＫ信号が「ＯＫ］である場合は（ステップＳ１５０；Ｙｅｓ）、ステップＳ１６０へ進み、「ＮＧ」である場合は（ステップＳ１５０；Ｎｏ）、ステップＳ１９０へ進む。
【００７５】
ステップＳ１６０では、インクデータのチェックデータを算出し、変数ＣＰとして変数格納領域に格納する。詳しくは、ステップＳ１２０で生成したインクデータのチェックデータを算出する。尚、このチェックデータは、ステップＳ１２０において生成されていても良い。
【００７６】
ステップＳ１７０では、チェックデータをインクカートリッジ５０から受信して、変数ＣＩとして変数格納領域に格納する。インクカートリッジ５０側のステップＳ３３０により送信されたチェックデータを受信する。
【００７７】
ステップＳ１８０では、変数ＣＰのチェックデータと変数ＣＩのチェックデータを比較して一致した場合は（ステップＳ１８０；Ｙｅｓ）、終了（正常終了）し、一致しなかった場合は（ステップＳ１８０；Ｎｏ）、ステップＳ１９０へ進む。
【００７８】
ステップＳ１９０では、エラー処理をする。詳しくは、ステップＳ１８０において、チェックデータが一致しなかったことから、インクカートリッジ５０側で書き込まれたインクデータが正しく書き込まれていない虞があるため、その旨をエラー情報として表示部１１へ出力する。エラー情報を入力した表示部１１は、エラー情報を表示する。
【００７９】
次に図６を用いて、インクカートリッジ５０側のフローチャートの説明をする。
ステップＳ２１０では、ビット列Ａおよびビット列Ｂを生成する。プリンター装置１０側のステップＳ１１０から所定のビット列を受信して、所定のビット列からステップＳ１１０と同様な処理内容を適用して２種類のビット列を生成する。
【００８０】
ステップＳ２２０では、ＦＦ−Ａ８１およびＦＦ−Ｂ８３にビット列Ａおよびビット列Ｂの内容を格納する。
【００８１】
ステップＳ２３０では、インクデータ、ビット列Ａ、ビット列Ｂを受信する。プリンター装置１０側のステップＳ１３０から送信されたインクデータ、ビット列Ａ、ビット列Ｂを受信する。
【００８２】
ステップＳ２４０では、受信したビット列ＡとＦＦ−Ａ８１の内容が同じか否か判定する。同じであった場合は（ステップＳ２４０；Ｙｅｓ）、ステップＳ２５０へ進み、同じでない場合は（ステップＳ２４０；Ｎｏ）、ステップＳ２８０へ進む。
【００８３】
ステップＳ２５０では、インクデータをインクデータ格納領域９１へ格納する（書き込む）。
【００８４】
ステップＳ２６０では、インクデータの格納は正常終了したか否か判定する。正常終了した場合は（ステップＳ２６０；Ｙｅｓ）、ステップＳ２７０へ進み、正常終了しなかった場合は（ステップＳ２６０；Ｎｏ）、ステップＳ２８０へ進む。
【００８５】
ステップＳ２７０では、ＡＣＫ信号の応答内容を「ＯＫ」に設定する。
【００８６】
ステップＳ２８０では、ＡＣＫ信号の応答内容を「ＮＧ」に設定する。
【００８７】
ステップＳ２９０では、ＡＣＫ信号をプリンター装置１０へ送信する。送信したＡＣＫ信号は、プリンター装置１０側のステップＳ１４０において受信される。
【００８８】
ステップＳ３００では、格納したインクデータのチェックデータを算出し、変数ＣＩに格納する。詳しくは、ステップＳ２５０においてインクデータ格納領域９１へ書き込まれたインクデータを読み出しながらチェックデータを算出する。
【００８９】
ステップＳ３１０では、ステップＳ２３０において受信したビット列ＢとＦＦ−Ｂ８３の内容が同じか否か判定する。同じ場合は（ステップＳ３１０；Ｙｅｓ）、ステップＳ３３０へ進み、同じでない場合は（ステップＳ３１０；Ｎｏ）、ステップＳ３２０へ進む。
【００９０】
ステップＳ３２０では、変数ＣＩに不正なチェックデータを上書きする。詳しくは、プリンター装置１０側との間で予め決められた不正なチェックデータを表す値を変数ＣＩに格納する。
【００９１】
ステップＳ３３０では、変数ＣＩのチェックデータを送信する。送信したチェックデータはプリンター装置１０側のステップＳ１７０において受信される。
【００９２】
このようにして、プリンター装置１０およびインクカートリッジ５０の双方のフローが連携して、プリンター装置１０のステップＳ１１０およびインクカートリッジ５０のステップＳ２１０で生成されたビット列Ａおよびビット列Ｂを用いて、ノイズの影響の有無を検出している。インクカートリッジ５０側では、ビット列Ａおよびビット列Ｂを、ノイズの影響を受けやすいＦＦ−Ａ８１およびＦＦ−Ｂ８３へ格納している（ステップＳ２２０）。
ＦＦ−Ａ８１では、ビット列Ａが格納された時点（ステップＳ２２０）から、ステップＳ２２０〜Ｓ２４０を処理している期間中に、ノイズが生じたか否かが検出される。ＦＦ−Ｂ８３では、ビット列Ｂが格納された時点（ステップＳ２２０）から、ステップＳ２２０〜Ｓ３１０を処理している期間中に、ノイズが生じたか否かが検出される。このような２段階の検出が行われ、それぞれの検出結果に基づいて、インクデータを格納するか否か、インクデータを格納した場合は格納したデータを不正なデータとして処理するか否かの２段階の判定を行っている。プリンター装置１０側では、２段階の判定に基づいて、インク情報の記憶装置６０への書き込み処理をエラーとするか正常に終了するかを決定している。
【００９３】
以上述べたように、本実施形態によれば以下の効果を得ることができる。
記憶装置６０のフリップフロップ８０に格納されたビット列Ａおよびビット列Ｂの内容は、プリンター装置１０から送信されたビット列Ａおよびビット列Ｂの内容と比較される。フリップフロップ８０は、静電誘導ノイズなどのノイズの影響を受け易いため、フリップフロップ８０に格納されたビット列Ａおよびビット列Ｂの内容にビット化け（ビット反転）が起きている場合は、プリンター装置１０から送信されたビット化けしていないビット列Ａおよびビット列Ｂの内容と比較することで、ノイズの発生が有ったことを検出することができる。
【００９４】
また、記憶装置６０の第１判定処理部７６では、ＦＦ−Ａ８１の内容とプリンター装置１０から送信されたビット列Ａの内容とを比較した結果に基づいて、インク情報記憶部９０にインク情報を書き込む前に、書き込みするか否かを判定している。
ＦＦ−Ａ８１および送信されたビット列Ａの内容を比較した結果が、一致した場合は、ノイズによる影響がなかったとして、インク情報が書き込まれる。
【００９５】
インク情報がインク情報記憶部９０に書き込まれた後では、記憶装置６０の第２判定処理部７８において、ＦＦ−Ｂ８３の内容とプリンター装置１０から送信されたビット列Ｂの内容とが比較され、インク情報記憶部９０にインク情報が正しく書き込まれているか否かを判定している。
【００９６】
このようにして、静電誘導ノイズなどのノイズが発生したことを従来技術よりも確実に検出することができ、記憶媒体へのデータ書き込み前後において、書き込み実行するか否か、および書き込み後は書き込まれたデータが不正であるか否かを判定する記憶装置６０を実現できている。
【００９７】
（変形例１）
上述の実施形態では、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１は、ビット列Ａおよびビット列Ｂの２種類のビット列を生成するとしているが、ビット列は２種類に限らない。１種類であっても良いし、３種類以上が生成されても良い。その場合は、判定処理部７５および決定処理部２５においても、それぞれの数分の判定および決定を行うとしても良い。
【００９８】
（変形例２）
上述の実施形態および変形例において、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１は、ビット列Ａ及びビット列Ｂを生成するための元になる所定のビット列を生成するとしているが、当該所定のビット列は、インク情報生成部２３が生成したインク情報であっても良い。
【００９９】
（変形例３）
上述の実施形態および変形例では、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１は、ＰＲＴビット列生成部２１において所定のビット列を生成したあとで、ＣＴＧビット列生成部７１へ送信して、ビット列Ａおよびビット列Ｂを生成するとしたが、このような手順および構成に限定されない。所定のビット列は、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１がそれぞれ予め格納された領域から取得する構成であっても良い。また、所定のビット列をそれぞれが算出する構成であっても良い。
【０１００】
（変形例４）
上述の実施形態および変形例では、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１は、それぞれが同一の処理を行って、所定のビット列からビット列Ａおよびビット列Ｂを生成するとしたが、このような手順および構成に限定されない。
それぞれが異なる処理を行って、所定のビット列からビット列Ａおよびビット列Ｂを生成するとしても良い。但し、異なる処理を行った結果、ＰＲＴビット列生成部２１およびＣＴＧビット列生成部７１において生成されたビット列Ａとビット列Ｂの内容がそれぞれ同じ内容になっている必要がある。
【０１０１】
（変形例５）
図５および図６を用いて説明する。
上述の実施形態および変形例では、記憶処理の最初のステップであるステップＳ１１０およびステップＳ２１０においてビット列Ａ、ビット列Ｂの生成をしているが、このようなタイミングに限らない。ビット列Ａおよびビット列Ｂを生成するタイミングは、プリンター装置１０およびインクカートリッジ５０のそれぞれで決められた任意のタイミングであっても良い。また、ビット列Ａおよびビット列Ｂは、同時に生成されなくても良く、ビット列Ａよりも所定の期間後にビット列Ｂが生成されても良い。
このような処理を行うことにより、発生タイミングや発生状況を予測することが困難なノイズの発生をより確実に検出することができる。
【０１０２】
（変形例６）
インクカートリッジ５０（記憶装置６０）に備えられる制御部７０は、ＣＰＵであっても良い。また、インクカートリッジ５０とプリンター装置１０との通信は、バス通信でなくても良く、シリアル通信や無線通信であっても良い。
【符号の説明】
【０１０３】
１…プリンター、１０…プリンター装置、１１…表示部、１３…操作部、１５…計時部、１７…記憶部、２０…制御部（プリンター装置）、２１…ＰＲＴビット列生成部、２３…インク情報生成部、２５…決定処理部、２６…第１決定処理部、２８…第２決定処理部、２９…ＰＲＴ通信処理部、３１…電源コード、３２…電源ボタン、３３…カバー、３５…ガイドロッド、３７…キャリッジ、４１…用紙ガイド、４３…排紙口、５０…インクカートリッジ、５１…インク供給口、５３…接続端子、６０…記憶装置、７０…制御部（インクカートリッジ）、７１…ＣＴＧビット列生成部、７３…インク情報処理部、７５…判定処理部、７６…第１判定処理部、７８…第２判定処理部、７９…ＣＴＧ通信処理部、８０…フリップフロップ、８１…ＦＦ−Ａ、８３…ＦＦ−Ｂ、９０…インク情報記憶、９１…インクデータ格納領域、１０１…ＩＤ情報信号、１０２…コマンド信号、１０３〜１０５…インクデータ信号、１０６…ビット列Ａ信号、１０７…ビット列Ｂ信号、１０８…ＡＣＫ信号、１０９…チェックデータ信号。
【図１】
2016143368.tif 000003
【図２】
2016143368.tif 000004
【図３】
2016143368.tif 000005
【図４】
2016143368.tif 000006
【図５】
2016143368.tif 000007
【図６】
2016143368.tif 000008