(57)【特許請求の範囲】
【請求項１】
プリンタの動作状況に関するデータを記憶する不揮発性メモリと、該不揮発性メモリから読み出したデータ及びプリンタの動作に伴って更新された前記データを一時的に記憶する揮発性メモリとを備えたプリンタにおける不揮発性メモリへの書き込み制御方法において、
各々異なる所定のタイミングで前記不揮発性メモリに記憶されるデータを、各タイミング毎に予めグループ化し、該各グループ化されたデータ群を前記揮発性メモリ及び不揮発性メモリ上の複数のメモリ領域に予め割り当てる工程（ａ）と、
前記所定のタイミングのうちの一つが発生した時に、揮発性メモリの内容を不揮発性メモリへ書き込む書き込み命令を発生する工程（ｂ）と、
前記書き込み命令に応じて、前記発生したタイミングに対応してグループ化された前記揮発性メモリ上のデータを、前記不揮発性メモリ上の対応するメモリ領域へ書き込む工程（ｃ）とを備えたことを特徴とするプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項２】
請求項１記載のプリンタにおける不揮発性メモリへの書き込み制御方法において、
前記所定のタイミングとして、ホストコンピュータからのリセット信号の検出時を含み、
前記不揮発性メモリへのデータの書き込み工程（ｃ）の後に、
前記リセット信号に基くプリンタのリセットを実行する工程（ｄ）を含むことを特徴とする不揮発性メモリへの書き込み制御方法。
【請求項３】
請求項１もしくは２記載のプリンタにおける不揮発性メモリへの書き込み制御方法において、
前記所定のタイミングとして、所定の時間間隔、プリンタの電源のオン及びオフ時、プリンタの動作状況に関する所定のイベント発生時を含むことを特徴とするプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項４】
請求項３記載のプリンタにおける不揮発性メモリへの書き込み制御方法において、
前記所定のイベントは、印字ヘッドのクリーニングを含むものであることを特徴とするプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項５】
請求項３もしくは４記載のプリンタにおける不揮発性メモリへの書き込み制御方法において、
前記不揮発性メモリに記憶されるデータは、第１のデータ群と、第２のデータ群に予めグループ化されており、
更に、前記所定の時間間隔毎に、前記第１のデータ群を、前記不揮発性メモリへ書き込む工程（ｃ１）と、
前記所定のイベントの発生時に、第１のデータ群および前記第２のデータ群を、前記不揮発性メモリへ書き込むとともに、前記所定の間隔の計時を初期化する工程（ｃ２）と
を備えたことを特徴とするプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項６】
前記各メモリ領域毎に誤り検出符号を備え、
前記メモリ領域上のデータの誤り検出を行う工程（ｅ）を、更に備えることを特徴とする請求項１記載のプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項７】
前記誤り検出を行う工程（ｅ）は、前記不揮発性メモリ上のデータを読み込み前記揮発性メモリに一時的に記憶する場合に、該読み込みが行われたメモリ領域上のデータの誤り検出を行うことを特徴とする請求項６記載のプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項８】
前記誤り検出を行う工程（ｅ）は、前記揮発性メモリ上のデータを前記不揮発性メモリに書き込む場合に、前記不揮発性メモリへの書き込みを行った後に、該書き込みが行われたメモリ領域上のデータの誤り検出を行うことを特徴とする請求項６記載のプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項９】
前記誤り検出を行う工程（ｅ）で、前記メモリ領域上のデータの誤りが検出された場合に、
該メモリ領域のデータに対応する所定の初期化データを、前記揮発性メモリと不揮発性メモリの対応するメモリ領域に書き込む工程（ｆ）を、更に備えることを特徴とする請求項６乃至８のいずれかに記載のプリンタにおける不揮発性メモリへの書き込み制御方法。
【請求項１０】
プリンタの動作状況に関するデータを記憶する不揮発性メモリと、
該不揮発性メモリから読み出したデータ及びプリンタの動作に伴って更新された前記データを一時的に記憶する揮発性メモリとを備えたプリンタにおいて、
各々異なる所定のタイミングで更新されるデータ毎にグループ化されたデータ群を記憶するために、前記揮発性メモリ上に割り当てられた複数のメモリ領域と、
当該揮発性メモリ上に割り当てられた複数のメモリ領域の各々に対応して、前記不揮発性メモリ上に設けられた複数のメモリ領域と、
前記所定のタイミングのうちの一つが発生した時に、揮発性メモリの内容を不揮発性メモリへ書き込む書き込み命令を発する書き込み命令手段と、
前記書き込み命令に応じて、前記発生したタイミングに対応してグループ化された前記揮発性メモリ上のデータ群を、前記不揮発性メモリ上の対応するメモリ領域へ書き込む書き込み手段とを備えたことを特徴とするプリンタ。
【請求項１１】
請求項１０記載のプリンタにおいて、前記不揮発性メモリに記憶されるデータは、第１のデータ群と、第２のデータ群に予めグループ化されており、更に、
所定の間隔を計測するカウンタと、
プリンタの動作状況に関する所定のイベント発生の有無を監視する監視手段と、
前記カウンタにおける所定の間隔毎に、前記第１のデータ群を、前記不揮発性へ書き込む第１の書き込み手段と、
前記監視手段において監視される所定のイベントの発生時毎に、第２のデータ群および前記第１のデータ群を、前記不揮発性メモリへ書き込む第２の書き込み手段と、
前記第２の書き込み手段による書き込みが行われた際に、前記カウンタを初期化する初期化手段とを、有することを特徴とするプリンタ。
【請求項１２】
請求項１０もしくは１１記載のプリンタにおいて、前記各メモリ領域毎に、プリンタの動作状況に関するデータが記憶されるデータ領域と、
誤り検出符号が記憶されるチェックサム領域が設けられていることを特徴とするプリンタ。
【請求項１３】
請求項１０乃至１２のいずれかに記載のプリンタにおいて、
前記不揮発性メモリ上に設けられた複数のメモリ領域の少なくとも１つは、更に、複数のサブメモリ領域に分割されていることを特徴とするプリンタ。
【請求項１４】
請求項１３記載のプリンタにおいて、前記サブメモリ領域は、更に、プリンタの動作状況に関するデータが記憶されるデータ領域と、当該領域に記憶されたデータの更新履歴が記憶される履歴記憶領域に分割されていることを特徴とするプリンタ。
【請求項１５】
請求項１３もしくは１４記載のプリンタにおいて、前記各サブメモリ領域毎に、誤り検出符号が記憶されるチェックサム領域が設けられていることを特徴とするプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性メモリ上に記憶したプリンタの動作状況に関するデータを、揮発性メモリ上へ読み取って動作するプリンタに関し、特に前記不揮発性メモリへの更新データの書き込み制御の方法に関するものである。
【０００２】
【従来の技術】
プリンタの動作状況、例えばインク残量、ヘッドクリーニング時間、印字ヘッドの位置、ロール紙残量等の制御情報や、印字文字数、紙送り行数、稼働時間等のカウンタ値と呼ばれる情報は、プリンタを正しく動作させるために必要なデータである。特に、プリンタの動作中における障害（電源オフ、停電、リセットなど）によりプリンタが停止した場合等は、障害復帰時に停止前の動作状況を確認して正しく回復するための処理を実行させることが好ましい。
【０００３】
このようなことから従来、プリンタにＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）やフラッシュメモリ等の不揮発性メモリを備え、該不揮発性メモリ上に、ＤＲＡＭ(Dynamic RAM)等の揮発性メモリ内で更新される前記プリンタの動作状況を定期的に書き込むことによってこれを保存し、次のプリンタの動作時において不揮発性メモリの内容を揮発性メモリ上に復帰させ動作するものがある。
【０００４】
【発明が解決しようとする課題】
ところで、このような従来のプリンタにおいては、プリンタの稼動中における一定時間間隔毎に、前記不揮発性メモリへのデータの書き込みを行っている。具体的には、タイマーで計測する一定時間が経過すると実行中の処理が中断され、中央処理装置（以下、ＣＰＵという）が前記不揮発性メモリへの書き込み処理のために渡される。定期的なデータの書き込みによって、障害発生前のプリンタの動作状況の再現性が向上する。
【０００５】
このような障害はいつ起きるか予測がつかないため、障害発生時におけるプリンタ停止前の動作状況をできるだけ正確に把握する目的からは、前記一定時間間隔をできるだけ短くすることが好ましい。  一方で、ＣＰＵが印字動作やデータ処理のために使用されている時に前記実行中の処理の中断が発生すると、不揮発性メモリへの書き込みが完了するまでは前記印字動作やデータ処理が停止してしまい、印字のスループットが低下するという問題がある。管理するデータ量が多くなるに連れて、不揮発性メモリへの書き込み時間は長くなり、前記スループットの低下は無視できないものとなる。従って、管理するデータ量に拘わらず、不揮発性メモリへの書き込み時間をできるだけ短くすることが好ましい。
【０００６】
また従来の書き込み制御においては、書き込みのタイミングが来ると、揮発性メモリ上の各種データは、データの更新の有無に拘わらず、全て不揮発性メモリ上へ書き込まれている。不揮発性メモリの寿命は、その書き込み回数に依存するので、変更されていないデータの書き込みを行うことは、制限された書き込み回数を無駄に消費する結果を招く。
【０００７】
従って本発明の目的は、不揮発性メモリへのデータの書き込み時間を短くし、書き込みによる印字動作に対する影響を小さくすることにある。
【０００８】
また、本発明の別の目的は、不揮発性メモリに対する不要なデータの書き込みを行わないようにして、不揮発性メモリの寿命を向上させることにある。
【０００９】
【課題を解決するための手段】
本発明は、プリンタにおける不揮発性メモリに対する書き込み制御方法に関する。
【００１０】
本発明の書き込み制御方法は、各々異なる所定のタイミングで前記不揮発性メモリに記憶されるデータを、各タイミング毎に予めグループ化し、該各グループ化されたデータ群を揮発性メモリ及び不揮発性メモリ上の複数のメモリ領域に予め割り当てる工程（ａ）と、前記所定のタイミングのうちの一つが発生した時に、揮発性メモリの内容を不揮発性メモリへ書き込む書き込み命令を発生する工程（ｂ）と、前記書き込み命令に応じて、前記発生したタイミングに対応してグループ化された前記揮発性メモリ上のデータを、前記不揮発性メモリ上の対応するメモリ領域へ書き込む工程（ｃ）とを備えて構成される。
【００１１】
前記不揮発性メモリへの書き込みは、所定のタイミングに対する各メモリ領域毎に行われ、それ以外の領域に対する書き込みは行われないので、書き込み時間が短縮され、また不揮発性メモリの寿命が向上する。
【００１２】
本発明の書き込み制御方法は、前記所定のタイミングとして、ホストコンピュータからのリセット信号の検出時を含み、前記不揮発性メモリへのデータの書き込み工程（ｃ）の後に、前記リセット信号に基くプリンタのリセットを実行するよう工程（ｄ）を含むように構成することができる。
【００１３】
また、前記所定のタイミングとして、所定の時間間隔、プリンタの電源のオン及びオフ時、その他のプリンタの動作状況に関するデータを変更する所定のイベント発生時を含んで構成することもできる。プリンタの動作状況に関するデータを変更する所定のイベントは、具体的には印字ヘッドのクリーニング、インクカートリッジやロール紙の交換、印字ヘッドの温度上昇やキャリッジの搬送ベルト外れ等の動作エラーが含まれる。
【００１４】
また、前記不揮発性メモリに記憶されるデータを、第１のデータ群と第２のデータ群に予めグループ化して、所定の時間間隔毎に、前記第１のデータ群を、前記不揮発性メモリへ書き込む工程（ｃ１）と、前記所定のイベントの発生時に、第１のデータ群および前記第２のデータ群を、前記不揮発性メモリへ書き込むとともに、前記所定の間隔の計時を初期化する工程（ｃ２）とを備えるようにしてもよい。
【００１５】
不揮発性メモリへ書き込まれるデータの多くは、このようなイベントの発生時に所定の制御を実行することにより更新されるので、該制御の実行後に不揮発性メモリへの書き込みを行うことで、障害発生時のデータ喪失の被害を最小限に抑えることができる。このとき、所定の時間間隔毎に不揮発性メモリに保存されるデータ群も同時に保存され、所定の間隔の計時を初期化するため、徒に不揮発性メモリにデータを保存する頻度が高くなることを防ぐことができる。
【００１６】
また、本発明は前記各メモリ領域毎に誤り検出符号を備え、前記メモリ領域上のデータの誤り検出を行う工程（ｅ）を、更に備えて構成することができる。
【００１７】
前記誤り検出を行う工程は、前記不揮発性メモリ上のデータを読み込み前記揮発性メモリに一時的に記憶する場合に、該読み込みが行われたメモリ領域上のデータの誤り検出を行うようにしてもよい。また、前記誤り検出を行う工程は、前記揮発性メモリ上のデータを前記不揮発性メモリに書き込む場合に、前記不揮発性メモリへの書き込みを行った後に、該書き込みが行われたメモリ領域上のデータの誤り検出を行うようにしてもよい。
【００１８】
この場合に、前記誤り検出を行う工程で、前記メモリ領域上に書き込まれたデータの誤りが検出された場合に、該メモリ領域のデータに対応する所定の初期化データを、前記揮発性メモリと不揮発性メモリの対応するメモリ領域に書き込む工程（ｆ）を、更に備えることが好ましい。これによって、誤りが発生した場合に生じ得るプリンタの動作不良を最小限のものとすることができる。
【００１９】
本発明は、また、不揮発性メモリを備えたプリンタに関する。
【００２０】
本発明のプリンタは、プリンタの動作状況に関するデータを記憶する不揮発性メモリと、該不揮発性メモリから読み出したデータ及びプリンタの動作に伴って更新された前記データを一時的に記憶する揮発性メモリとを備えたプリンタにおいて、各々異なる所定のタイミングで更新されるデータ毎にグループ化されたデータ群を記憶するために、前記揮発性メモリ上に割り当てられた複数のメモリ領域と、当該揮発性メモリ上に割り当てられた複数のメモリ領域の各々に対応して、前記不揮発性メモリ上に設けられた複数のメモリ領域と、前記所定のタイミングのうちの一つが発生した時に、揮発性メモリの内容を不揮発性メモリへ書き込む書き込み命令を発する書き込み命令手段と、前記書き込み命令に応じて、前記発生したタイミングに対応してグループ化された前記揮発性メモリ上のデータ群を、前記不揮発性メモリ上の対応するメモリ領域へ書き込む書き込み手段とを備えたことを特徴とする。
【００２１】
これにより、前記不揮発性メモリへの書き込みは、所定のタイミングに対する各メモリ領域毎に行われ、それ以外の領域に対する書き込みは行われないので、書き込み時間が短縮され、また不揮発性メモリの寿命が向上する。
【００２２】
前記不揮発性メモリに記憶されるデータを、第１のデータ群と、第２のデータ群に予めグループ化し、プリンタに、所定の間隔を計測するカウンタと、所定のイベントの有無を監視する監視手段と、前記カウンタにおける所定の間隔毎に、前記第１のデータ群を、前記不揮発性へ書き込む第１の書き込み手段と、前記監視手段において監視される所定のイベントの発生時に、第１のデータ群および前記第２のデータ群を、前記不揮発性メモリへ書き込む第２の書き込み手段と、前記第２の書き込み手段による書き込みが行われた際に、前記カウンタを初期化する初期化手段とを備えるようにすればよい。
【００２３】
不揮発性メモリへ書き込まれるデータの多くは、このようなイベントの発生時に所定の制御を実行することにより更新されるので、該制御の実行後に不揮発性メモリへの書き込みを行うことで、障害発生時のデータ喪失の被害を最小限に抑えることができる。このとき、所定の時間間隔毎に不揮発性メモリに保存されるデータ群も同時に保存され、所定の間隔の計時を初期化するため、徒に不揮発性メモリにデータを保存する頻度が高くなることを防ぐことができる。
【００２４】
また、前記各メモリ領域毎に、プリンタの動作状況に関するデータが記憶されるデータ領域と、誤り検出符号が記憶されるチェックサム領域を設けても良い。
【００２５】
また、更に、前記不揮発性メモリ上に設けられた複数のメモリ領域の少なくとも１つを、複数のサブメモリ領域に分割してもよい。この場合において、前記サブメモリ領域は、更に、プリンタの動作状況に関するデータが記憶されるデータ領域と、当該領域に記憶されたデータの更新履歴が記憶される履歴記憶領域に分割されていることが好ましい。
【００２６】
特にリセット信号の検出時に不揮発性メモリに保存されるデータ群は、プリンタの制御上重要なものが多く、リセット信号検出時以外のイベント発生時においても不揮発性メモリに保存する必要がある。従って、このようなデータ群は頻繁に保存されるため、特定のメモリ領域の書き込み回数が増加してしまう。このように頻繁に更新されるデータ群に関しては、前記複数のサブメモリ領域（ブロック）を準備し、データ群を更新する際には、順次、前回使用したブロックの次のブロックに最新のデータ群を書き込むようにすればよい。このようにすれば、不揮発性メモリの一部分が頻繁に使用されることによって、不揮発性メモリの寿命が低下することがない。
【００２７】
また、不揮発性メモリからデータ群を読み込む際には、どのサブメモリ領域に保存されているものが最新のものか知る必要があるが、そのような履歴情報も、前記サブメモリ領域に、プリンタの動作状況に関するデータが記憶されるデータ群と共に記憶されているため、複数のサブメモリ領域に記憶されているデータ群の履歴を比較して最新のものを読み込むようにすればよい。
【００２８】
もちろん、各メモリ領域同様、各サブメモリ領域毎に、誤り検出符号が記憶されるチェックサム領域を設けても良い。このようにすれば、不揮発性メモリからデータ群を読み込む際に、複数のサブメモリ領域に記憶されているデータ群のうち、最新のデータ群に関して、データの誤りが検出された場合に、２番目に新しいデータ群のチェックサムを検査し、誤りがない場合、それを揮発性メモリに書き込み利用することができる。故に、誤りが発生した場合に生じ得るプリンタの動作不良を最小限のものとすることができる。
【００２９】
【発明の実施の形態】
以下、本発明の一実施形態を図面に沿って説明する。図１は本発明の一実施形態に係る制御方法を実現したプリンタ装置の概要を示す機能ブロック図である。
【００３０】
図１においてプリンタ装置１は、例えば、単票紙、ロール紙共に印刷可能なシリアル型インクジェットプリンタであり、動作状況に関するデータを格納するＥＥＰＲＯＭ５、プリンタの動作に伴って更新されたデータを一時的に記憶するＲＡＭ３及び、これらのデータのＥＥＰＲＯＭ５への書き込み、 ＥＥＰＲＯＭ５からの読み込みを司る各手段５１〜５６を備えている。
【００３１】
ＥＥＰＲＯＭ５には、プリンタの動作状況、すなわちインク残量、ヘッドクリーニング時間、印字ヘッドの位置、ロール紙残量等の制御情報や、印字文字数、紙送り行数、稼働時間等のカウンタ値を格納すべき記憶領域が確保されている。ＥＥＰＲＯＭ５及びＲＡＭ３は、複数の記憶領域に論理的に区切られており、前記制御情報及びカウンタ値はグループ化され、所定の記憶領域に割り当てられている。
【００３２】
詳細については後述するが、前記制御情報及びカウンタ値は、各々異なる所定のタイミングで更新されるデータ毎にグループ化されたデータ群を構成している。
【００３３】
本例のプリンタ装置１では、後述するように（図３、図４に示す）、 ＥＥＰＲＯＭ５及びＲＡＭ３は、６つの記憶領域に論理的に区切られており、５種類の所定のタイミングで更新されるデータ毎に、５つのデータ群に予めグループ分けされている。その中には、所定の時間間隔毎に、不揮発性メモリに書き込まれる第１のデータ群と、主にプリンタの動作状況に関するデータを変更する所定のイベントの発生時（所定の制御実行時）に、書き込まれる第２のデータ群が含まれている。
【００３４】
カウンタ７で計時した値が所定の時間が経過すると、書き込み命令手段５６によって、第１の書き込み手段５１に、ＲＡＭ３に記憶されている第１のデータ群の内容をＥＥＰＲＯＭ５へ書き込む書き込み命令が発せられる。
【００３５】
また、所定のイベントとは、例えば、印字ヘッドのクリーニングであり、タイマーを参照して、前回の印字ヘッドからのクリーニング時間が所定時間経過したことを監視手段５５が検知した場合に、書き込み命令手段５６によって、第２の書き込み手段５２に、ＲＡＭ３に記憶されている第２のデータ群の内容をＥＥＰＲＯＭ５へ書き込む書き込み命令が発せられる。このとき、第２のデータ群に加えて、第１のデータ群の内容もＥＥＰＲＯＭ５へ書き込む書き込み命令が発せられ、第２のデータ群および前記第１のデータ群がＥＥＰＲＯＭ５へ書き込まれる。また、第２の書き込み手段５２による書き込みが行われた際には、初期化手段５４によって、カウンタ７が初期化される。なお、電源ＯＮ時等には、読み込み手段５３によって、ＥＥＰＲＯＭ５に記憶されているデータ群が、ＲＡＭ５に読み込まれる。
【００３６】
これら、第１の書き込み手段５１、第２の書き込み手段５２、読み込み手段５３、初期化手段５４，書き込み命令手段５６は、マイクロプロセッサ及びこれらの動作を記述したプログラムコードが保存されたＲＯＭ、それを一時的に保存ずるＲＡＭ等によって構成される。また、監視手段５５は、マイクロプロセッサ、及びこの動作を記述したプログラムコードが保存されたＲＯＭ等に加え、プリンタ１のプリンタの動作状況の変化を検出するための不図示のセンサ、タイマー等で構成される。
【００３７】
図２は本発明の一実施形態に係る制御方法を実現したプリンタ装置の回路ブロック図である。
【００３８】
図２においてプリンタ装置１は、プリンタ装置全体の制御を司るＣＰＵ２（前述のマイクロプロセッサに相当する）、メインメモリとしてのＲＡＭ３、制御データ及びプログラム等を格納したＲＯＭ４、動作状況に関するデータを格納するＥＥＰＲＯＭ５、印字ヘッドによる用紙への印字を実現する印字機構６、所定の経過時間を計測するカウンタ７及びホストコンピュータとの接続を行うインターフェース８を備えている。
【００３９】
ＣＰＵ２は、ＲＯＭ４上のプログラム及び制御データ、ＥＥＰＲＯＭ５上のデータをＲＡＭ３上にロードし、これらのプログラムやデータに基づいてプリンタ装置を制御する。プリンタ装置１の電源を投入した時点で、ＲＯＭ４及びＥＥＰＲＯＭ５上のデータ及びプログラムはＲＡＭ３上にロードされ、ロードされたデータに従ってプリンタ装置は初期状態にされ、ホストからの命令を待ち受ける。
【００４０】
プリンタ装置１は、図示しない各種センサを備えており、該各センサによって前記プリンタ装置の動作状況をリアルタイムで計測している。前記各種制御情報やカウンタ値は、ＲＡＭ３上で順次更新され、後述する所定のタイミングでＥＥＰＲＯＭ５上の割り当てられた各領域に書き込まれ、保存される。ＥＥＰＲＯＭ５上に書き込まれた制御情報及びカウンタ値は、プリンタ装置１の起動時及びリセット時にＲＡＭ３上にロードされ、これらの情報の初期データとされる。例えば、前記ヘッドクリーニング時間は、前回のヘッドクリーニング時間を記録したものであり、ＣＰＵ２はこのデータに基づいて次回のクリーニングの開始タイミングを決定し、実行する。また、プリンタ装置の障害時、例えば、印字中にプリンタ装置が停止した場合には、リセット後に前記ＥＥＰＲＯＭ５から読み込まれた印字ヘッドの位置の情報を元に正常状態への復帰動作を行う。前記ＥＥＰＲＯＭ５への書き込みタイミングの決定、書き込み、ＥＥＰＲＯＭ５からの読み出しは、ＣＰＵ２における制御機能により行われる。
【００４１】
カウンタ７は、図示しない内蔵のクロック回路に基いて、所定の経過時間を計測する。カウンタ７により計測される経過時間の中に、ＥＥＰＲＯＭ５への書き込み経過時間が含まれる。すなわち、ＥＥＰＲＯＭ５へのデータの書き込みが行われると、ＣＰＵ２はカウンタ７を起動し、時間の経過をカウントさせる。そして予め定められた時間（例えば１時間）が経過すると、カウンタ７はＣＰＵ２に信号を出力し、時間が経過したことを通知する。尤も、ＣＰＵ２にこのような機能を持たせて、経過時間の計測を行うように構成しても良い。
【００４２】
前記ＣＰＵ２は、また、リセット信号検出機能９及びリセット実行機能１０を備えている。リセット信号検出機能９は、ホストコンピュータからリセット信号が送信された時にこれを検出する機能であり、ＣＰＵ２はリセット信号を検出すると、ＲＡＭ３上の一部のデータをＥＥＰＲＯＭ５へ書き込む命令を出力する。リセット実行機能１０は、プリンタをリセットするための機能であり、この実行により、ＥＥＰＲＯＭ５の全てのデータがＲＡＭ３上にロードされると共に、プリンタの各機構部分（例えば、印字ヘッド）が初期位置にセットされ、ホストコンピュータからのデータの待ち受け状態となる。ＣＰＵ２は、リセット信号に基くＥＥＰＲＯＭ５へのデータの書き込みを完了した時点で、前記リセット実行機能１０を起動させる。これによってリセット前のプリンタの状態に関するデータがＥＥＰＲＯＭ５へ保存される。
【００４３】
図３は、本発明に係る書き込み制御を実現するためのＥＥＰＲＯＭ５及びＲＡＭ３のデータ記憶領域における論理構成の一例を示す概念図である。図に示すように、ＥＥＰＲＯＭ５及びＲＡＭ３は、それぞれ６つの記憶領域（領域１〜領域６）に論理的に区切られたデータの記憶領域を有している。ＥＥＰＲＯＭ５の各領域とＲＡＭ３の各領域は対応しており、各領域単位でＲＡＭ３からＥＥＰＲＯＭ５へ書き込みが可能なように構成されている。前記制御情報やカウンタ値は、後述する５種類の所定のタイミングに従って、６つのグループに分けられ、それぞれ各領域１〜６へ割り当てられており、よってデータの保存は、前記１又は複数のグループ単位で行われることとなる。
【００４４】
各領域１〜６には、それぞれチェックサムデータを格納する領域が設けられている。ＥＥＰＲＯＭ５からＲＡＭ３にデータのロードがなされると、読み出しが行われた領域のチェックサムにより、誤り検出が実行される。ＥＥＰＲＯＭ５から読み出しを行う領域に保存されていたデータに基づいてチェックサムが算出され、その領域に保存されていたチェックサムと比較される。また、ＲＡＭ３からＥＥＰＲＯＭ５へデータの書き込みが行われる際に、書き込みが行われた領域のチェックサムにより、誤り検出が実行される。すなわち、ＲＡＭ３上のチェックサムは、対応する領域内のデータが更新される度に再計算される。ＥＥＰＲＯＭ５への書き込みがなされると、その領域に書き込まれたデータに基づいてチェックサムが算出され、前記ＲＡＭ３上の対応するチェックサムと比較される。
【００４５】
図２におけるＲＯＭ４又はＥＥＰＲＯＭ５の他のメモリ領域には、ＥＥＰＲＯＭ５に保存する制御情報及びカウンタ値の初期化データが格納されている。初期化データとして、プリンタが正常に動作することが保証された値を使用する。前記チェックサムによる誤り検出においてデータ誤りが検出された場合、ＲＡＭ３及びＥＥＰＲＯＭ５上の該当データが、前記初期化データに置換えられる。これによって誤りが発生した場合に生じ得るプリンタの動作不良が最小限に抑えられる。
【００４６】
図４は、プリンタの制御に関する前記選択されたタイミングと記憶領域との対応関係を示す図である。本発明においては、その実施に先立って、プリンタの制御に関する複数のタイミングが選択される。本実施形態においては、このタイミングとして、プリンタの電源オン時、予め定められた一定の時間間隔（例えば１時間）、プリンタにおける所定の処理実行時（ヘッドクリーニング時、インクカートリッジやロール紙の交換時、プリンタの動作エラーの発生時など）、制御情報の一つをカウントするカウンタの所定の変化間隔（例えば、ロール紙を切断するためのカッタの累積駆動回数をカウントするカウンタのカウント値が所定値に達する毎に）、及びリセット信号検出時（ホストから通知されたり、異常電圧を検出した場合等）が選択されている。ＥＥＰＲＯＭ５に保存すべき各種制御情報及びカウンタ値は、前記各種タイミングに従って６つにグループ分けされ、図３に示す６つの記憶領域に割り当てられている。例えば、本例のプリンタでは、以下の制御情報及びカウンタ値がＥＥＰＲＯＭ５の各領域に保存される。
領域１：プリンタの電源を入れた時の時刻
領域２：前回の印字ヘッドのクリーニングからの印字ライン数、出荷時からの累積印字ライン数
領域３：印字ヘッドのクリーニングが実行された時刻、実行されたクリーニングのレベル
領域４：ロール紙を切断するためのカッタの累積駆動回数
領域５：リセットの有無を示すフラグ、制御情報を保存した最新時刻、インク消費量カウンタ
領域６：各種補正値（キャリッジの移動量等）
図４に示すタイミングと記憶領域との対応テーブルによって、各タイミングが発生した時に、どの記憶領域のデータがＥＥＰＲＯＭ５へ書き込まれるかが決定されている。例えば、電源オン時には、領域１のデータ（第３のデータ群）の保存が行われ、一定の時間間隔で領域２と領域５のデータ（第１のデータ群）の保存が行われる。また、所定の処理の実行時には、領域２から領域５のデータ（第２のデータ群）が、リセット時には、領域５のみのデータ（第５のデータ群）が保存される。制御情報の一つをカウントするカウンタの所定の変化間隔毎に、領域２と領域４と領域５のデータ（第４のデータ群）の保存が行われる。領域６に保存されているデータは、プリンタの機構部の固体間のバラツキに起因する印字位置の補正値等が保存される領域であり、工場出荷時、修理時等に必要に応じて書き込まれる。従って、図４に示すタイミングで書き込む必要のないデータ群が保存されている。
【００４７】
ここで、領域５に保存されている第５のデータ群は、他の領域に保存されているものに比べ、プリンタの制御上重要な情報が含まれているため、頻繁に更新・保存されるようになっている。また、例えば、停電等が生じ、電圧低下を検出すると、リセット信号が検出されるようになっている。このときは、領域５のみのデータがＲＡＭ３からＥＥＰＲＯＭ５に保存され、他の領域のデータの保存は行われない。
【００４８】
なお、図４に示す対応テーブルは、ＲＯＭ４又はＥＥＰＲＯＭ５の他のメモリ領域に格納され、前記タイミングの発生時に読み出される。
【００４９】
図５は、ＥＥＰＲＯＭ５への書き込み制御を示すフローチャートである。図においては、前記選択された所定のタイミングが発生してから所定のデータがＥＥＰＲＯＭ５上に書き込まれるまでの手順を示している。ＣＰＵ２は所定のタイミングの何れかを検知すると（４０１）、ＲＯＭ４又はＥＥＰＲＯＭ５に格納した前記変換テーブル４０を読み出し、これに基いてＥＥＰＲＯＭ５に保存すべきデータ、すなわち書き込みの対象となる領域を指定する（４０２）。そして、ＲＡＭ３における指定された領域のデータを、対応するＥＥＰＲＯＭ５の領域に書き込む（４０３）。これによって、所定のタイミングに対応するデータのみが保存される。
【００５０】
図６及び図７は、プリンタ装置１におけるＥＥＰＲＯＭへの書き込み制御の一実施形態を示すフローチャートであり、図６は所定時間間隔毎の書き込み処理（第１の書き込み処理）を示し、図７は所定の選択された制御の実行毎の書き込み処理（第２の書き込み処理）を示している。
【００５１】
図６において、プリンタ装置１が起動されると、ＥＥＰＲＯＭ５に保存された各種データがＲＡＭ３上にロードされ、前記カウンタ７による時間計測が開始される（２０１）。カウンタ７による時間計測が開始されてから、予め定められた書き込み時間（例えば１時間）が経過すると（２０２）、ＥＥＰＲＯＭ５に対するデータの書き込みが実行される（２０３）。ここでは、ＥＥＰＲＯＭ５の領域２と領域５（図３、４に示す）について書き込みが実行される。
【００５２】
ＥＥＰＲＯＭ５に対するデータの書き込みが完了すると、カウンタ７はリセットされ、次の書き込みのために待機する（２０４）。このようにして、予め定められた時間が経過する毎に、ＥＥＰＲＯＭ５へのデータの書き込みが実行される。
【００５３】
本発明においては、前記一定時間毎の書き込みとは異なるタイミング、すなわち所定の選択された制御のタイミングでも、ＥＥＰＲＯＭ５への書き込みが行われる。ここで、選択される制御としては、前述したように、印字ヘッドのクリーニング、インクカートリッジやロール紙の交換、印字ヘッドの温度上昇やキャリッジの搬送ベルト外れ等の動作エラーを対象とすることができる。
【００５４】
プリンタの各種制御のうち、ＥＥＰＲＯＭ５への書き込みを実行するタイミングとして選択された制御が実行され、それが完了すると、図７の制御にＣＰＵ２の処理が渡される。
【００５５】
すなわち、選択された制御が終了すると（３０１）、該制御によって更新されたＲＡＭ３上の各種制御情報やカウンタ値は、ＥＥＰＲＯＭ５へ書き込まれる（３０２）。ここでは、ＥＥＰＲＯＭ５の領域２から領域５（図３、４に示す）について書き込みが実行される。
【００５６】
ＥＥＰＲＯＭ５に対するデータの書き込みが完了すると、カウンタ７はリセットされる（３０３）。図７の工程における前記カウンタ７のリセットにより、図６の処理における時間間隔（工程２０２で計時される計時される時間間隔）は、図７の工程の終了時から起算されることとなる。
【００５７】
領域３に保存されるデータは、このような所定の制御を実行することによりのみに更新されるので、図７の工程３０２で、ＥＥＰＲＯＭ５に書き込まれる。一方、領域２に保存されるデータは、本来、所定時間間隔毎（工程２０３）に、ＥＥＰＲＯＭ５への書き込み処理が行われるものであるが、本例では、所定の制御を実行することによっても、領域３に保存されるデータに加えて、 ＥＥＰＲＯＭ５に書き込まれる。このとき、所定の間隔の計時を初期化（工程３０３）するため、徒に不揮発性メモリにデータを保存する頻度が高くなり、印字のスループットが低下するということを防ぐことができる。
【００５８】
図８は、図３に示した概念図のうち、ＥＥＰＲＯＭ５及びＲＡＭ３のデータ記憶領域の領域５における論理構成を示す概念図である。図に示すように、ＥＥＰＲＯＭ５のメモリの領域５は、更に複数のサブメモリ領域５Ａ〜５Ｎに分割されている。
【００５９】
各領域５Ａ〜５Ｎのそれぞれには、プリンタの動作状況に関するデータが記憶される領域に加え、その領域に記憶されたデータの更新履歴が記憶される領域とチェックサムデータを格納する領域とが設けられている。
【００６０】
図５のフローチャートにおいて、領域５が指定され（工程４０２）、ＲＡＭ３における領域５のデータを、対応するＥＥＰＲＯＭ５の領域に書き込み（工程４０３）、これを更新する際は、順次、前回使用したサブメモリ領域の次のサブメモリ領域に最新のデータ群を書き込まれる。例えば、前回の工程４０３で、領域５Ａにデータが書き込まれた場合は、今回の工程４０３では、領域５Ｂにデータが書き込まれる。
【００６１】
更新履歴が記憶される領域は２バイト分与えられており、００〜ＦＦのコードが記述可能である。そして、工程４０３が実行される毎に、その値が増加もしくは減少されて、その領域に記述される。
【００６２】
例えば、前回の工程４０３で、領域５Ａにデータが書き込まれ、領域５Ａの更新履歴が記憶される領域に「０５」が記述された場合、今回の工程４０３では、更新履歴の値を１つ増加させ、領域５Ｂの更新履歴が記憶される領域に「０６」と記述される。
【００６３】
ＥＥＰＲＯＭ５から、ＲＡＭ３の領域５に、保存されているデータをロードするときには、サブメモリ領域５Ａ〜５Ｎに記憶されているデータ群の更新履歴を比較して最新のものをが読み込まれる。これは、隣り合う領域に保存された更新履歴を比較し、その値が不連続に変化する（単調に増加していない）位置を調べることによって行われる。例えば、領域５Ａ、５Ｂ、５Ｃの各更新履歴が、「０５」、「０６」、「Ｆ８」となっていた場合、「０６」と「Ｆ８」は不連続であるので、領域５Ｂに保存されているデータを最新ものと判断して、 ＲＡＭ３の領域５にロードする。
【００６４】
領域５に保存されるデータ群は、図４からみてもわかるように、リセット信号の検出時に不揮発性メモリに保存されるものであり、プリンタの制御上重要なものが多い。故に、リセット信号検出時以外のイベント発生時においても不揮発性メモリに保存されるため、メモリ領域の書き込み回数が、他の領域に比べ多くなってしまう。
【００６５】
このように頻繁に更新されるデータ群に関しては、このようにＥＥＰＲＯＭ内に複数のサブメモリ領域を設け、順次シフトして記憶するようにしたので、不揮発性メモリの一部分が頻繁に使用されることによって、不揮発性メモリの寿命が低下することがない。
【００６６】
もちろん、各メモリ領域同様、各サブメモリ領域毎に、誤り検出符号が記憶されるチェックサム領域を設けられているため、ＥＥＰＲＯＭ５からデータ群を読み込む際に、複数のサブメモリ領域に記憶されているデータ群のうち、最新のデータ群に関して、データの誤りが検出された場合に、２番目に新しいデータ群のチェックサムを検査し、誤りがない場合、それをＲＡＭ３にロードすればよい。以上、本発明の一実施形態を図面に沿って説明したが、本発明は前記実施形態において示された事項に限定されず、特許請求の範囲及び発明の詳細な説明の記載、並びに周知の技術に基づいて、当業者がその変更・応用を行うことができる範囲が含まれる。前記実施形態においては、プリンタの動作状況に関するデータを記憶する不揮発性メモリとしてＥＥＰＲＯＭを示したが、フラッシュメモリを用いても良い。また、不揮発性メモリ上に保存するデータは、前記実施形態に示したものに限らず、各種のプリンタの動作状況に関するデータを対象とすることができるし、また前記実施形態に示したものの一部を対象としても良い。不揮発性メモリはまた、動作状況に関するデータ以外のデータ、例えばフォントデータやプログラム等を共に格納するように構成しても良い。
【００６７】
前記データ保存のタイミングとして選択される各種タイミングは、前記実施形態に示したものに限定されない。また、前記実施形態においてはチェックサムを用いて誤り検出を行うようにしたが、他の誤り検出符号、例えばパリティチェックを用いても良い。また、前記実施形態においては、書き込みのタイミング毎の書き込み領域の選択をテーブルにより行うようにしたが、テーブル化しなくても良い。
【００６８】
【発明の効果】
以上の如く本発明によれば、不揮発性メモリへの書き込みは、所定のタイミングに対する各メモリ領域毎に行われ、それ以外の領域に対する書き込みは行われないので、書き込み時間が短縮され、また不揮発性メモリの寿命が向上する。
【００６９】
また、前記各メモリ領域は誤り検出符号を備えているので、データの信頼性が向上すると共に、誤りが発生した際に初期化データでこれを置換えることによって、誤りが発生した場合に生じ得るプリンタの動作不良を最小限のものとすることができる。
【００７０】
更に、リセット信号の検出時には、不揮発性メモリへのデータの書き込みの後に、プリンタのリセットを実行することにより、リセット直前のプリンタの状態が不揮発性メモリへ保存されるので、リセット後のプリンタの正常な動作が保証される。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る制御方法を実現したプリンタ装置のの概要を示す機能ブロック図である。
【図２】本発明の一実施形態に係る制御方法を実現したプリンタ装置の回路ブロック図である。
【図３】本発明に係る書き込み制御を実現するためのＥＥＰＲＯＭ及びＲＡＭのデータ記憶領域における論理構成を示す概念図である。
【図４】本発明に係るプリンタの制御に関する選択されたタイミングと記憶領域との対応関係を示す図である。
【図５】本発明に係るＥＥＰＲＯＭへの書き込み制御を示すフローチャートである。
【図６】本発明に係るＥＥＰＲＯＭへの書き込み制御の一実施形態を示すフローチャートである。
【図７】本発明に係るＥＥＰＲＯＭへの書き込み制御の一実施形態を示すフローチャートである。
【図８】図３に示した概念図のうち、ＥＥＰＲＯＭ５及びＲＡＭ３のデータ記憶領域の領域５における論理構成を示す概念図である。
【符号の説明】
１  プリンタ装置
２  中央処理部ＣＰＵ
３  ＲＡＭ
４  ＲＯＭ
５  ＥＥＰＲＯＭ
６  印字機構
７  カウンタ
８  インターフェース
９  リセット信号検出機能
１０  リセット実行機能
【図１】
0003826617.tif 000002
【図２】
0003826617.tif 000003
【図３】
0003826617.tif 000004
【図４】
0003826617.tif 000005
【図５】
0003826617.tif 000006
【図６】
0003826617.tif 000007
【図７】
0003826617.tif 000008
【図８】
0003826617.tif 000009