(57)【要約】【課題】  確実にメンテナンスカウンタ値を保持し続けることが可能なメンテナンスカウンタを備えた情報処理機器を提供する。【解決手段】  プリンタ１０は、メンテナンスカウンタ値を記憶するＲＡＭ３２と、不揮発性メンテナンスカウンタ領域６１及び一時的メンテナンスカウンタ値保持領域６２を備えたＥＥＰＲＯＭ３３と、プリンタ内部の状態変化の検出に応じてＲＡＭ３２中のメンテナンスカウンタ値を更新するＣＰＵ３１と、を備える。ＣＰＵ３１は、所定のタイミングでＲＡＭ３２のメンテナンスカウンタ値を一時的メンテナンスカウンタ値保持領域６２に書き込むとともに、所定のタイミングで一時的メンテナンスカウンタ値保持領域６２に記憶されたメンテナンスカウンタ値を不揮発性メンテナンスカウンタ領域６１に書き込む。【選択図】  図３
2007021787.tif 000002
【特許請求の範囲】
【請求項１】
メンテナンスカウンタ値を記憶する揮発性メモリと、
不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域を備えたＥＥＰＲＯＭと、
装置内部の状態変化の検出に応じて前記揮発性メモリ中の前記メンテナンスカウンタ値を更新するＣＰＵと、を備え、
前記ＣＰＵは、所定のタイミングで前記揮発性メモリのメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むとともに、所定のタイミングで前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする情報処理装置。
【請求項２】
前記揮発性メモリには、前記メンテナンスカウンタ値を記憶する第１揮発性メンテナンスカウンタ領域と、前記メンテナンスカウンタ値を記憶する第２揮発性メンテナンスカウンタ領域が構成され、
前記第２揮発性メンテナンスカウンタ領域に記憶された前記メンテナンスカウンタ値は、電源オン時において、前記第１揮発性メンテナンスカウンタ領域のそれと同一であり、
前記第１揮発性メンテナンスカウンタの前記メンテナンスカウンタ値は、装置内部の状態変化の検出に応じて更新され、
前記ＣＰＵは、所定時間毎に前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＣＰＵは、前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込んだ後、前記第１揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を前記第２揮発性メンテナンスカウンタ領域にコピーすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域にメンテナンスカウンタ値を書き込むとともに、メンテナンスカウンタ値が正しく書き込まれたことを保証するデータ有効情報を書き込むことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記データ有効情報は、前記メンテナンスカウンタ値の対象を示すメンテナンスカウンタ番号を２度書き込むことにより構成されることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域の記憶領域がフルとなると前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする請求項１〜５の何れか１項に記載の情報処理装置。
【請求項７】
前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値が前記不揮発性メンテナンスカウンタ領域に書き込まれた後に、前記一時的メンテナンスカウンタ値保持領域を初期化することを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項８】
メンテナンスカウンタ値を記憶する揮発性メモリと、不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域を備えたＥＥＰＲＯＭと、装置内部の状態変化の検出に応じて前記揮発性メモリ中の前記メンテナンスカウンタ値を更新するＣＰＵと、を備えた情報処理装置の制御方法であって、
所定のタイミングで前記揮発性メモリのメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むステップと、
所定のタイミングで前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むステップと、を備えたことを特徴とする情報処理装置の制御方法。
【請求項９】
前記揮発性メモリには、前記メンテナンスカウンタ値を記憶する第１揮発性メンテナンスカウンタ領域と、前記メンテナンスカウンタ値を記憶する第２揮発性メンテナンスカウンタ領域が構成され、
前記第２揮発性メンテナンスカウンタ領域に記憶された前記メンテナンスカウンタ値は、電源オン時において、前記第１揮発性メンテナンスカウンタ領域のそれと同一であり、
前記第１揮発性メンテナンスカウンタの前記メンテナンスカウンタ値は、装置内部の状態変化の検出に応じて更新され、
所定時間毎に前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むことを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込んだ後、前記第１揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を前記第２揮発性メンテナンスカウンタ領域にコピーすることを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１１】
前記一時的メンテナンスカウンタ値保持領域にメンテナンスカウンタ値を書き込むとともに、メンテナンスカウンタ値が正しく書き込まれたことを保証するデータ有効情報を書き込むことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１２】
前記データ有効情報は、前記メンテナンスカウンタ値の対象を示すメンテナンスカウンタ番号を２度書き込むことにより構成されることを特徴とする請求項１１に記載の情報処理装置の制御方法。
【請求項１３】
前記一時的メンテナンスカウンタ値保持領域の記憶領域がフルとなると前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする請求項８〜１２の何れか１項に記載の情報処理装置の制御方法。
【請求項１４】
前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値が前記不揮発性メンテナンスカウンタ領域に書き込まれた後に、前記一時的メンテナンスカウンタ値保持領域を初期化することを特徴とする請求項８〜１３の何れか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メンテナンスカウンタ機能を備えたプリンタ、スキャナ等の情報処理機器に関する。
【背景技術】
【０００２】
一般に、プリンタやスキャナ等の情報処理機器においては、印刷ヘッドや紙送りローラ等、経年変化により消耗する部材の使用頻度をモニターして各部材の寿命を判断するためのメンテナンスカウンタが設けられている。メンテナンスカウンタは、例えばサーマル印刷機構であれば、サーマルヘッドに対し用紙を紙送りした紙送り量や、サーマルヘッドへの通電パルス数等の使用量をカウントする。カウントされた使用量は、不揮発性メモリに記憶されて、値が累積されていき、所定値を超えれば警告を発し、消耗品の交換やメンテナンスを行えるように構成されている。
【０００３】
例えば、特許文献１に記載のプリンタでは、消耗品の交換により値がクリアされる第１のメンテナンスカウンタと、消耗品の交換によっても値がクリアされず累積値をカウントし続ける第２のメンテナンスカウンタと、を備えている。このように構成することにより、第１のメンテナンスカウンタを消耗品の寿命を予測して交換を行うためのトリガーとして用いるとともに、第２のメンテナンスカウンタによりプリンタ出荷時からの累積的な使用度合いを測定し、トータル的な使用状況管理を行わせることができる。
【０００４】
また、この種のメンテナンスカウンタを備えたものとしては、停電時にもデータが失われないように構成されたものもある。
【０００５】
例えば、特許文献２に記載のサーマルプリンタは、電源電圧をモニターし、電源電圧の電圧降下を検出すると停電発生信号を出力する停電検出回路を備えている。停電が発生し、停電発生信号が出力されると、印刷動作を停止し、完全に電源ＯＦＦされる前に、ＲＡＭ中のカウンタ値を不揮発性のＥＥＰＲＯＭに書き込むことによって、停電時でも記憶保持するように構成されている。
【０００６】
【特許文献１】特開平６−１５５８６７号公報
【特許文献２】特開平６−３１２５５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
メンテナンスカウンタは、各部材の寿命を判断するという観点から考えて、特許文献２に記載されているように、停電等の突然の電源断が発生した場合であってもメンテナンスカウンタのカウンタ値を保持し続けることが重要である。しかしながら、特許文献２に記載したように、停電が発生した後に、完全に電源ＯＦＦされる前にＲＡＭ中のカウンタ値を不揮発性のＥＥＰＲＯＭに常に書き込みが行われるためには、電源ＯＦＦとなるまでに制御部が機能するための十分な電圧を保証する必要がある。これが満たされない限り、いくらＲＡＭからＥＥＰＲＯＭにバックアップが取られるようにプログラミングされていても、プログラム自体が機能せず、カウンタ値が失われしまう可能性がある。
【０００８】
実際には、停電時のＥＥＰＲＯＭへの書き込みを高い信頼性で保証するためには、何らかの手段を設けてやる必要がある。このような場合には、例えば、停電発生後にＲＡＭからＥＥＰＲＯＭへの書き込みを行うために十分な電圧を確保するための構成（例えば、停電時用補助電源、停電時用給電回路等）を用意してやらねばならないと考えられる。したがって、このように信頼性を高めようとすると、回路構成が複雑化し、機器の大型化やコストアップにつながってしまうという問題がある。
【０００９】
また、その他の理由によりＥＥＰＲＯＭへの書き込みが失敗してしまう場合も想定される。ＥＥＰＲＯＭへの書き込みが失敗し、ＥＥＰＲＯＭの情報が失われてしまうと、長年にわたりカウントし続けたメンテナンスカウンタの情報が失われ、部品の交換時期がわからなくなるといった不具合が発生する虞もある。
【００１０】
本発明は、上記課題を考慮し、どのような状況であっても、確実にメンテナンスカウンタ値を保持し続けることが可能なメンテナンスカウンタを備えた情報処理機器を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、以下の構成により達成される。
（１）  メンテナンスカウンタ値を記憶する揮発性メモリと、
不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域を備えたＥＥＰＲＯＭと、
装置内部の状態変化の検出に応じて前記揮発性メモリ中の前記メンテナンスカウンタ値を更新するＣＰＵと、を備え、
前記ＣＰＵは、所定のタイミングで前記揮発性メモリのメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むとともに、所定のタイミングで前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする情報処理装置。
（２）  前記揮発性メモリには、前記メンテナンスカウンタ値を記憶する第１揮発性メンテナンスカウンタ領域と、前記メンテナンスカウンタ値を記憶する第２揮発性メンテナンスカウンタ領域が構成され、
前記第２揮発性メンテナンスカウンタ領域に記憶された前記メンテナンスカウンタ値は、電源オン時において、前記第１揮発性メンテナンスカウンタ領域のそれと同一であり、
前記第１揮発性メンテナンスカウンタの前記メンテナンスカウンタ値は、装置内部の状態変化の検出に応じて更新され、
前記ＣＰＵは、所定時間毎に前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むことを特徴とする（１）に記載の情報処理装置。
（３）  前記ＣＰＵは、前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込んだ後、前記第１揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を前記第２揮発性メンテナンスカウンタ領域にコピーすることを特徴とする（２）に記載の情報処理装置。
（４）  前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域にメンテナンスカウンタ値を書き込むとともに、メンテナンスカウンタ値が正しく書き込まれたことを保証するデータ有効情報を書き込むことを特徴とする（２）に記載の情報処理装置。
（５）  前記データ有効情報は、前記メンテナンスカウンタ値の対象を示すメンテナンスカウンタ番号を２度書き込むことにより構成されることを特徴とする（４）に記載の情報処理装置。
（６）  前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域の記憶領域がフルとなると前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする（１）〜（５）の何れか１項に記載の情報処理装置。
（７）  前記ＣＰＵは、前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値が前記不揮発性メンテナンスカウンタ領域に書き込まれた後に、前記一時的メンテナンスカウンタ値保持領域を初期化することを特徴とする（１）〜（６）の何れか１項に記載の情報処理装置。
（８）  メンテナンスカウンタ値を記憶する揮発性メモリと、不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域を備えたＥＥＰＲＯＭと、装置内部の状態変化の検出に応じて前記揮発性メモリ中の前記メンテナンスカウンタ値を更新するＣＰＵと、を備えた情報処理装置の制御方法であって、
所定のタイミングで前記揮発性メモリのメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むステップと、
所定のタイミングで前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むステップと、を備えたことを特徴とする情報処理装置の制御方法。
（９）  前記揮発性メモリには、前記メンテナンスカウンタ値を記憶する第１揮発性メンテナンスカウンタ領域と、前記メンテナンスカウンタ値を記憶する第２揮発性メンテナンスカウンタ領域が構成され、
前記第２揮発性メンテナンスカウンタ領域に記憶された前記メンテナンスカウンタ値は、電源オン時において、前記第１揮発性メンテナンスカウンタ領域のそれと同一であり、
前記第１揮発性メンテナンスカウンタの前記メンテナンスカウンタ値は、装置内部の状態変化の検出に応じて更新され、
所定時間毎に前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むことを特徴とする（８）に記載の情報処理装置の制御方法。
（１０）  前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込んだ後、前記第１揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を前記第２揮発性メンテナンスカウンタ領域にコピーすることを特徴とする（９）に記載の情報処理装置の制御方法。
（１１）  前記一時的メンテナンスカウンタ値保持領域にメンテナンスカウンタ値を書き込むとともに、メンテナンスカウンタ値が正しく書き込まれたことを保証するデータ有効情報を書き込むことを特徴とする（９）に記載の情報処理装置の制御方法。
（１２）  前記データ有効情報は、前記メンテナンスカウンタ値の対象を示すメンテナンスカウンタ番号を２度書き込むことにより構成されることを特徴とする（１１）に記載の情報処理装置の制御方法。
（１３）  前記一時的メンテナンスカウンタ値保持領域の記憶領域がフルとなると前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むことを特徴とする（８）〜（１２）の何れか１項に記載の情報処理装置の制御方法。
（１４）  前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値が前記不揮発性メンテナンスカウンタ領域に書き込まれた後に、前記一時的メンテナンスカウンタ値保持領域を初期化することを特徴とする（８）〜（１３）の何れか１項に記載の情報処理装置の制御方法。
【発明の効果】
【００１２】
本発明によれば、情報処理装置は、メンテナンスカウンタ値を記憶する揮発性メモリと、
不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域を備えたＥＥＰＲＯＭと、装置内部の状態変化の検出に応じて前記揮発性メモリ中の前記メンテナンスカウンタ値を更新するＣＰＵと、を備えている。そして、前記ＣＰＵは、所定のタイミングで前記揮発性メモリのメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むとともに、所定のタイミングで前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むように構成されている。
【００１３】
このように、本発明によれば、ＥＥＰＲＯＭが不揮発性メンテナンスカウンタ領域及び一時的メンテナンスカウンタ値保持領域の二つを有しており、前記揮発性メモリのメンテナンスカウンタ値がＥＥＰＲＯＭの一時的メンテナンスカウンタ値保持領域に正しく書き込まれてしまえば、それ以後は、二つのＥＥＰＲＯＭの領域の何れか一方は少なくとも正常な値を取ることができる。したがって、ＥＥＰＲＯＭ中の何れか一方の領域への書き込みが失敗したとしても、他方の領域のデータが正しく存在しているため、データが失われてしまうことが無い。したがって、長年にわたりカウントし続けたメンテナンスカウンタの情報が失われ、部品の交換時期がわからなくなるといった不具合が発生すること無い、信頼性の高いメンテナンスカウンタを構成することができる。
【００１４】
また、本発明によれば、前記揮発性メモリは、前記メンテナンスカウンタ値を記憶する第１揮発性メンテナンスカウンタ領域と、前記メンテナンスカウンタ値を記憶する第２揮発性メンテナンスカウンタ領域が構成されており、前記第１揮発性メンテナンスカウンタの前記メンテナンスカウンタ値を装置内部の状態変化の検出に応じて更新し、所定時間毎に前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込むように構成されている。このように構成することにより、書き込み速度の遅いＥＥＰＲＯＭへの書き込み回数を減少させることが可能となり、メンテナンスカウンタによる処理負荷の少ない情報処理装置を構成することが可能となる。
【００１５】
また、本発明によれば、前記第１揮発性メンテナンスカウンタ領域と前記第２揮発性メンテナンスカウンタ領域とを比較し、更新されているメンテナンスカウンタ値を前記一時的メンテナンスカウンタ値保持領域に書き込んだ後、前記第１揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を前記第２揮発性メンテナンスカウンタ領域にコピーする。このように、構成することにより、所定時間が経過する毎に前記第２揮発性メンテナンスカウンタ領域のメンテナンスカウンタ値を最新のものとすることが可能となり、所定時間毎の第１揮発性メンテナンスカウンタ領域の情報の更新の有無を確実に把握することが可能となる。
【００１６】
また、本発明によれば、前記一時的メンテナンスカウンタ値保持領域にメンテナンスカウンタ値を書き込むとともに、メンテナンスカウンタ値が正しく書き込まれたことを保証するデータ有効情報が書き込まれているので、ＥＥＰＲＯＭ中の前記一時的メンテナンスカウンタ値保持領域に書き込まれたデータが有効であるか、無効であるかをすぐに判断することができる。そして、無効なデータについては、不揮発性メンテナンスカウンタへの書き込みを行わせないようにすることにより、不揮発性メンテナンスカウンタのデータが壊れて失われるといった不具合が生じることがない。
【００１７】
また、本発明によれば、前記データ有効情報は、前記メンテナンスカウンタ値の対象を示すメンテナンスカウンタ番号を２度書き込むことにより構成することができる。このメンテナンスカウンタ番号の少なくとも一方は、少なくとも前記メンテナンスカウンタ値の書き込みを終えた後に行うようにすることにより、双方が一致していれば少なくとも前記メンテナンスカウンタ値を書き込んだ時点では、情報処理装置が確実に動作していることを保証でき、信頼性を高めることができる。
【００１８】
また、本発明によれば、前記一時的メンテナンスカウンタ値保持領域の記憶領域がフルとなると前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値を前記不揮発性メンテナンスカウンタ領域に書き込むように構成されている。したがって、書き込みに時間がかかるＥＥＰＲＯＭへの書き込み回数を減らすことができ、メンテナンスカウンタによる処理負荷の少ない情報処理装置を構成することが可能となる。
【００１９】
また、本発明によれば、前記一時的メンテナンスカウンタ値保持領域に記憶されたメンテナンスカウンタ値が前記不揮発性メンテナンスカウンタ領域に書き込まれた後に、前記一時的メンテナンスカウンタ値保持領域を初期化するように構成されている。すなわち、前記不揮発性メンテナンスカウンタ領域が更新されたことが確認された後に、初めて前記一時的メンテナンスカウンタ値保持領域を初期化するので、ＥＥＰＲＯＭに設けられた二つの記憶領域のうちすくなくとも一方に正しいメンテナンスカウンタ値を保持し続けることが可能となり、メンテナンスカウンタの信頼性を高めることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明に係る情報処理機器及び情報処理機器の制御方法の一実施形態についてプリンタを例に挙げて説明する。
【００２１】
（プリンタの構成について）
図１は、本実施形態のプリンタを示す斜視図である。
本実施形態のプリンタ１０は、小切手等のスリップ紙の表面および裏面への印刷と、レシート発行用のロール紙へのロール紙印字が可能な複合型のプリンタである。プリンタ１０は、本体部１１と、本体部１１の上面に開閉可能に設けられた正面側カバー１２及び背面側カバー１３とを備えている。
【００２２】
プリンタ１０の本体部１１内部には、図示せぬロール紙が装填されている。ロール紙は、本体部１１内部に設けられたロール紙搬送路（不図示）を搬送されて、印刷が行われる。そして印刷されたロール紙は、本体部１２の上面に開口したロール紙排出口１９より排出される。
【００２３】
また、プリンタ１０の正面側には、スリップ紙を挿入可能なスリップ紙挿入口１６が設けられている。スリップ紙挿入口１６から挿入されたスリップ紙は、本体部１１に設けられたスリップ紙搬送路１７を搬送されて、正面側カバー１２と背面側カバー１３との間に設けられたスリップ紙排出口１８から排出される。本実施形態のプリンタ１０は、このスリップ紙搬送路１７に沿ってスリップ紙を搬送しながらスリップ紙への印刷、スリップ紙の画像読み取り、スリップ紙（特に小切手）上に印字されたＭＩＣＲの読み取り等を行う。
【００２４】
また、背面側カバー１３内部には、クレジットカードやＩＤカード（身分証明書）等のカードの画像読み取り等を行う画像読み取りセンサ（画像読取スキャナ）が設けられている。カードは、背面側カバー１３の正面側に設けられたカード挿入口２０から挿入されて、画像読み取りセンサに読みとられ、同じくカード挿入口２０から排出される。
【００２５】
図２は、本実施形態のプリンタの制御構造を示すブロック図である。
本実施形態のプリンタ１０は、外部のホストコンピュータと通信可能に接続され、ホストコンピュータから送信される各種コマンドに応じて動作し、印刷や画像読み取りを実行する。プリンタ１０は、主として、ＣＰＵ３１、ＲＡＭ３２、ＥＥＰＲＯＭ３３、フラッシュＲＯＭ３４、通信インタフェース３５、スリップ紙裏面印刷機構４１、スリップ紙表面印刷機構４２、ロール紙印刷機構４３、ＭＩＣＲ読み取り機構５１、オートカッタ機構５２、スリップ紙読み取り機構５３、及びカード読み取り機構５４を備え、それぞれは内部バス６０により電気的に接続されている。なお、図２では、模式的に一つの内部バス６０で各部が接続されているとして説明しているが、各部が機能する限りにおいて、他の構成で接続されていてもよい。
【００２６】
ＣＰＵ３１は、プリンタ１０の制御中枢であって、フラッシュＲＯＭ３４に書き込まれたファームウェアを実行することにより、各種印刷機構４１〜４３、各種読み取り機構５１，５３，５４及びオートカッタ機構５２等の動作を制御する。
【００２７】
ＲＡＭ３２は、プリンタ１０における揮発性の記憶領域である。図２では、模式的に一つのＲＡＭ３２が描かれているが用途に応じて複数のＲＡＭチップが設けられていてもよい。このＲＡＭ３２には、ホストコンピュータから受信したデータを一時的に保存する受信バッファ、展開された印刷データを一時的に保存する印刷バッファ、画像データを保存する画像バッファ等が設けられている。また、揮発性メンテナンスカウンタの一部を構成するカウンタ値記憶領域が設けられている。これについては、後ほど詳述する。
【００２８】
ＥＥＰＲＯＭ３３は、１byte毎にデータを電気的に書き換え可能な不揮発性メモリであり、内部に電源断時にもカウンタ値を保持するための不揮発性メンテナンスカウンタが記憶されている。これについても、後ほど詳述する。
【００２９】
フラッシュＲＯＭ３４は、所定のセクタ単位でデータを電気的に書き換え可能な不揮発性メモリであり、内部にプリンタ制御用のファームウェアが書き込まれている。
【００３０】
通信インタフェース３５は、外部のホストコンピュータとの通信を行うインタフェースである。ホストコンピュータから受信するデータ及びホストコンピュータへ送信されるデータは、すべてこの通信インタフェースを介して送受信される。
【００３１】
スリップ紙裏面印刷機構４１は、スリップ紙搬送路１７に沿って配置され、スリップ紙の裏面に対して印刷を行う印刷機構である。スリップ紙裏面印刷機構４１は、シャトルインパクトドットマトリクス方式の印刷ヘッドを備えており、ＣＰＵ３１からの指示に応じて印刷ヘッドを駆動することにより印刷を行う。
【００３２】
スリップ紙表面印刷機構４２は、スリップ紙搬送路１７に沿って配置され、スリップ紙の表面に対して印刷を行う印刷機構である。スリップ紙表面印刷機構４２は、シリアルインパクトドットマトリクス方式の印刷ヘッドを備えており、ＣＰＵ３１からの指示に応じて印刷ヘッドを駆動することにより印刷を行う。
【００３３】
ロール紙印刷機構４３は、ロール紙搬送路に沿って配置され、ロール紙に対して印刷を行う印刷機構である。ロール紙印刷機構４３は、サーマル方式の印刷ヘッドを備えており、ＣＰＵ３１からの指示に応じて印刷ヘッドを駆動することにより印刷を行う。
【００３４】
ＭＩＣＲ読み取り機構５１は、スリップ紙搬送路１７のスリップ紙挿入口１６近傍に設けられ、スリップ紙搬送路１７を搬送されるスリップ紙に形成された磁気文字（ＭＩＣＲ文字）を読みとる磁気読み取りセンサである。
【００３５】
オートカッタ機構５２は、ロール紙搬送路に沿ってロール紙排出口１９近傍に設けられており、ＣＰＵ３１から出力されるオートカッタ駆動信号に応じて稼働し、搬送されているロール紙を切断する。
【００３６】
スリップ紙読み取り機構５３は、スリップ紙搬送路１７に沿って設けられており、スリップ紙紙をスキャンして画像を取得する画像読み取りセンサを備えている。
同様に、カード読み取り機構５３は、カード搬送路に沿って設けられており、カード挿入口２０から挿入されたカードをスキャンしてカード画像を取得するカード画像読み取りセンサを備えている。
【００３７】
このように、本実施形態のプリンタ１０は、スリップ紙に対して表面及び裏面の印刷、スリップ紙に形成された磁気文字の読み取り及びスリップ紙のスキャンを行って画像を取得するとともに、ロール紙に対して印刷を行い、そしてカードのスキャンを行って画像を取得することが可能な多機能プリンタである。
【００３８】
（メンテナンスカウンタについて）
次に、図３を参照して、本実施形態のプリンタ１０におけるメンテナンスカウンタの構成について説明する。
【００３９】
図３は、ＥＥＰＲＯＭ及びＲＡＭの内部状態を示す模式図である。
本実施形態のプリンタ１０では、ＥＥＰＲＯＭ３３とＲＡＭ３２内によってメンテナンスカウンタが構成されている。
【００４０】
ＥＥＰＲＯＭ３３には、不揮発性メンテナンスカウンタ領域６１と、一時的メンテナンスカウンタ値保持領域６２とを備えている。また、ＲＡＭ３２は、第１揮発性メンテナンスカウンタ領域７１と、第２揮発性メンテナンスカウンタ領域７２と、一時的データバッファ領域７３と、を備えている。
【００４１】
まず、ＥＥＰＲＯＭ３３に設けられた不揮発性メンテナンスカウンタ領域６１について説明する。
図４は、不揮発性メンテナンスカウンタ領域６１に記憶されるメンテナンスカウンタの種類及び状態を示す表である。
不揮発性メンテナンスカウンタ領域６１は、メンテナンスカウンタとしてのメイン記憶領域であり、電源ＯＦＦ時にもカウンタ値が記憶される領域である。この不揮発性メンテナンスカウンタ領域６１には、図４に示すように１〜１３及び１７〜２９の項目についてメンテナンスカウンタが用意されている。これらのメンテナンスカウンタの値は、プリンタ１０自身、並びにスリップ紙裏面印刷機構４１、スリップ紙表面印刷機構４２、ロール紙印刷機構４３、ＭＩＣＲ読み取り機構５１、オートカッタ機構５２、スリップ紙読み取り機構５３、及びカード読み取り機構５４をどれだけ使用したか示すカウンタ値となっている。各カウンタ値は４byteのデータ量を有しており、プリンタ内部では、メンテナンスカウンタの名称は、ここには示さない内部カウンタ番号で参照されるように構成されている。
【００４２】
なお、不揮発性メンテナンスカウンタ領域６１においては、初回電源オン時には、初期の不定値状態を解消するため全メンテナンスカウンタが０に初期化される。
【００４３】
次に、ＲＡＭ３２に設けられた第１揮発性メンテナンスカウンタ領域７１及び第２揮発性メンテナンスカウンタ領域７２について説明する。
第１揮発性メンテナンスカウンタ領域７１及び第２揮発性メンテナンスカウンタ領域７２は、それぞれ不揮発性メンテナンスカウンタ領域６１と同様のデータ構造を有している。第１揮発性メンテナンスカウンタ領域７１及び第２揮発性メンテナンスカウンタ領域７２は、プリンタ起動時に不揮発性メンテナンスカウンタ領域６１からそれぞれデータがコピーされることにより形成される。
【００４４】
第１揮発性メンテナンスカウンタ領域７１は、プリンタ１０が使用されていき、各部が駆動されたことを検出するとＣＰＵ３１により逐次カウンタ値が書き換えられて、カウンタ値が更新されていく領域である。言い換えると、第１揮発性メンテナンスカウンタ領域７１は、プリンタ１０の状態に応じてリアルタイムに最新のメンテナンスカウンタ値が最初に書き込まれる逐次書換領域である。
【００４５】
第２揮発性メンテナンスカウンタ領域７２は、第１揮発性メンテナンスカウンタ領域７１が更新される以前は、全く同一のデータ構造を有しており、ＣＰＵ３１が所定タイミング毎に第１揮発性メンテナンスカウンタ領域６１のカウンタ値と比較参照することにより、どのメンテナンスカウンタ値が更新されたかを把握するための参照領域として用いられる。
ここで、ＣＰＵ３１による比較は、ＣＰＵ３１の負荷が高まりプリンタ１０のパフォーマンスが低下しない程度に短い時間間隔で行われることが好ましく、メンテナンスカウンタ値の書き換え頻度を考慮すると、典型的には例えば５分間隔で一回比較参照される。
【００４６】
ここで、リアルタイムで書き換えられるメンテナンスカウンタとして、第１揮発性メンテナンスカウンタ領域７１を用いる理由としては、ＥＥＰＲＯＭ３３への書き込み速度がＲＡＭ３２への書き込み速度よりも遅い。したがって、処理負荷等を考慮すると、メンテナンスカウンタを構成するためには、ＲＡＭ３２にある程度更新情報を集めておき、一度にＥＥＰＲＯＭ３３にＲＡＭ３２からメンテナンスカウンタ値をコピーした方が効率的であることが挙げられる。
【００４７】
次に、ＥＥＰＲＯＭ３３に設けられた一時的メンテナンスカウンタ値保持領域６２について説明する。
図５は、一時的メンテナンスカウンタ値保持領域６２に記憶される情報を示す表である。
一時的メンテナンスカウンタ値保持領域６２は、不揮発性メンテナンスカウンタ領域６１に書き込まれる更新データが一時的に保持される領域である。この一時的メンテナンスカウンタ値保持領域６２には、ＣＰＵ３１が所定タイミング毎に第１揮発性メンテナンスカウンタ領域６１のカウンタ値と第２揮発性メンテナンスカウンタ領域６２のカウンタ値を比較参照した結果、更新されているものがあれば、更新されていたメンテナンスカウンタ番号と、更新後のカウンタ値がＣＰＵ３１により書き込まれる。
【００４８】
一時的メンテナンスカウンタ値保持領域６２には、所定数（図では２１個）の更新データが書き込み可能に構成されている。各更新データには、メンテナンスカウンタ番号を書き込む値Ａ及び値Ｂからなるデータ有効情報と、メンテナンスカウンタ番号に対応するメンテナンスカウンタ値が書き込み可能に構成されている。
【００４９】
本実施形態では、一時的メンテナンスカウンタ値保持領域６２には、メンテナンスカウンタ値が書き込まれた後に、１byteのメンテナンスカウンタ番号を２度書き込まれるように構成されている（即ち値Ａ及び値Ｂの２つ）。本実施形態では、メンテナンスカウンタ値が書き込まれた後にメンテナンスカウンタ番号が２度書き込まれ、値Ａと値Ｂが同一の値であることをもって、正しく一時的メンテナンスカウンタ値保持領域６２にデータが書き込まれたことを保証するように構成されている。両者が同一の値でなければ、そのメンテナンスカウンタ番号に対応するメンテナンスカウンタ値は、後の参照において無効と判断される。
【００５０】
なお、一時的メンテナンスカウンタ値保持領域６２への書き込みは、値Ａを書き込んだ後にメンテナンスカウンタ値を書き込み、その後値Ｂを書き込むように構成してもよい。
【００５１】
その後、一時的メンテナンスカウンタ値保持領域６２にメンテナンスカウンタ値がすべて書き込まれると（図５の場合には、２１個書き込まれた状態となると）、ＣＰＵ３１は、図５に書き込まれた情報が一時的データバッファ領域７３に書き込まれ、その後一時的データバッファ領域７３に書き込まれたデータが不揮発性メンテナンスカウンタ領域６１に書き込まれることにより、不揮発性メンテナンスカウンタ領域６１が更新される。そして、不揮発性メンテナンスカウンタ領域６１が更新されると、一時的メンテナンスカウンタ値保持領域６２のデータは、すべて初期化される。
【００５２】
本実施形態では、このように一時的メンテナンスカウンタ値保持領域６２から直接不揮発性メンテナンスカウンタ領域６１に書き込むのではなく一時的データバッファ領域７３を介して書き込むように構成している。この理由としては、一時的メンテナンスカウンタ値保持領域６２に保存されているメンテナンスカウンタ番号が重複している場合を考える（最高で21個すべてが同じメンテナンスカウンタ番号となる場合も想定される）。このような場合には、そのまま一時的メンテナンスカウンタ値保持領域６２から直接不揮発性メンテナンスカウンタ領域６１に書き込みを行うと、同番号について何度も書き換えを行ってしまうことになり非効率であり、またＥＥＰＲＯＭ３３の寿命を考えても書き換え回数が少ないことが好ましい。
【００５３】
したがって、本実施形態では、少しでもＥＥＰＲＯＭ３３への書き込み回数を減らすため、一時的データバッファ領域７３に一時的メンテナンスカウンタ値保持領域６２のデータを書き込むとき、データバッファ領域７３にて同一の項目については複数回更新して、最後に書き込まれたメンテナンスカウンタ値（最新値）をＥＥＰＲＯＭ３３に書き込むように構成されている。一時的データバッファ領域７３は、ＥＥＰＲＯＭ３３よりも高速に書き換えができるため、この方法により処理スピードを向上させることが可能である。
【００５４】
本実施形態では、上述のようにメンテナンスカウンタを構成することによって電源断がどのタイミングで発生した場合であっても、メンテナンスカウンタ値が失われることなく、確実に正しく保持されるように構成している。
【００５５】
この理解を深めるために、図６及び図７に示すフローチャートを参照して、電源ＯＮ時からプリンタを使用し、不揮発性メンテナンスカウンタ領域６１が書き換えられるまでの流れを時系列的に説明する。
【００５６】
図６及び図７は、メンテナンスカウンタに関連したプリンタ１０の処理フローを示すフローチャートである。
まず、プリンタ１０の電源が投入され、初期化作業が行われ、ＣＰＵ３１が有効となると、ＣＰＵ３１は、ＲＡＭ３２に第１揮発性メンテナンスカウンタ領域７１及び第２揮発性メンテナンスカウンタ領域７２を形成する（ステップＳ１）。
【００５７】
第１揮発性メンテナンスカウンタ領域７１及び第２揮発性メンテナンスカウンタ領域７２の形成にあたっては、図７に示すように、まず、第１揮発性メンテナンスカウンタ領域７１に不揮発性メンテナンスカウンタ領域６１の情報をコピーする（ステップＳ１１）。
これにより、不揮発性メンテナンスカウンタ領域６１の情報が最新の情報であれば、第１揮発性メンテナンスカウンタ領域７１の情報も最新の情報となる。しかしながら、不揮発性メンテナンスカウンタ領域６１に書き込まれていない情報が一時的メンテナンスカウンタ値保持領域６２に記憶されていれば、第１揮発性メンテナンスカウンタ領域７１の情報は最新とはならない。
【００５８】
以上を考慮し、次に第１揮発性メンテナンスカウンタ領域７１に一時的メンテナンスカウンタ値保持領域６２の情報を上書きコピーする。このときには、データ有効情報を参照し、値Ａと値Ｂが一致しているもののみを選択して対応するメンテナンスカウンタ番号のカウンタ値を上書きコピーするようにする（ステップＳ１２）。
このように構成することにより、不揮発性メンテナンスカウンタ領域６１に書き込まれていない情報が一時的メンテナンスカウンタ値保持領域６２に記憶されていても、第１揮発性メンテナンスカウンタ領域７１の情報は最新の情報となる。
【００５９】
そして、第１揮発性メンテナンスカウンタ領域７１の情報を第２揮発性メンテナンスカウンタ領域７２にコピーする（ステップＳ１３）。これにより、２つの同一情報を有する揮発性メンテナンスカウンタがＲＡＭ３２に生成される。
【００６０】
つぎに、図６に戻り、ＣＰＵ３１は、所定時間（例えば２分間）経過したかどうかを監視する（ステップＳ２）。この間、ＣＰＵ３１は、プリンタの各部の状態が変化すれば変化に対応する第１揮発性メンテナンスカウンタ領域のカウンタ値を書き換えて更新する。
【００６１】
所定時間が経過すると（ステップＳ２：Ｙｅｓ）、ＣＰＵ３１は、第１揮発性メンテナンスカウンタ領域７１と第２揮発性メンテナンスカウンタ領域７２の情報を比較し、更新されたカウンタ値があるかどうか確認する（ステップＳ３）。
【００６２】
ここで、更新されたカウンタ値があれば、ＣＰＵ３１は、第１揮発性メンテナンスカウンタ領域７１の更新されたメンテナンスカウンタ番号に対応するカウンタ値を一時的メンテナンスカウンタ値保持領域６２にコピーする（ステップＳ４）。
【００６３】
また、ＣＰＵ３１は、第１揮発性メンテナンスカウンタ領域７１を第２揮発性メンテナンスカウンタ領域７２にコピーし、二つのメンテナンスカウンタ領域のデータを一致させる（ステップＳ５）。これにより、これ以降第１揮発性メンテナンスカウンタ領域７１が変化した場合であっても、更新された第２揮発性メンテナンスカウンタ領域７２を参照することにより、変化したメンテナンスカウンタ値をすぐに特定することができる。
【００６４】
一方、ステップＳ３において、更新されたカウンタ値がなければ、ステップＳ２に戻り、再度所定時間の経過を待つ。
【００６５】
ステップＳ５の後、ＣＰＵ３１は、一時的メンテナンスカウンタ値保持領域６２のデータがフルになっているかどうか（図５では、２１個すべて埋まっているかどうか）を確認し（ステップＳ６）、フルでなければステップＳ２に戻り、再度所定時間の経過を待つ。
【００６６】
一方、ステップＳ６において、一時的メンテナンスカウンタ値保持領域６２のデータがフルであれば、ＣＰＵ３１は、一時的メンテナンスカウンタ値保持領域６２のデータを一時的データバッファ領域７３を介して不揮発性メンテナンスカウンタ領域６１にコピーする（ステップＳ７）。これにより、主たるメンテナンスカウンタである不揮発性メンテナンスカウンタ領域６１が更新される。
【００６７】
また、ＣＰＵ３１は、不揮発性メンテナンスカウンタ領域６１が書き換えられると、一時的メンテナンスカウンタ値保持領域６２のデータをクリアして初期化し、新たに一時的メンテナンスカウンタ値保持領域６２にデータが書き込めるように構成する。なお、一時的メンテナンスカウンタ値保持領域６２は、書き込まれたメンテナンスカウンタ値はそのままで、データ有効情報としての値Ａ及び値Ｂを初期値にすることでデータが書き込み可能な状態となる。（ステップＳ８）。その後は、再度ステップＳ２に戻り、所定時間の経過を待つ。
【００６８】
このように構成されたプリンタ１０において、主要ステップ間で電源断が発生する場合を考える。
【００６９】
まず、ステップＳ２で所定時間が経過する前に電源断が発生するような場合には、まだ不揮発性メモリであるＥＥＰＲＯＭ３３の一時的メンテナンスカウンタ値保持領域６２にデータが書き込まれていないので、この間に更新された第１揮発性メンテナンスカウンタ領域７１のデータは失われてしまう。しかしながら、ステップＳ２の所定時間がメンテナンスカウンタの更新頻度に比べて十分に小さければ（例えば２分）、この間に失われる情報を軽微なものであり、長期間に渡る使用における各部品の寿命を測る目的と照らし合わせると、ほとんど問題がない。
【００７０】
次に、ステップＳ４の一時的メンテナンスカウンタ値保持領域６２への書き込み途中に電源断が発生するような場合、正しく書き込まれない場合には、
１）メンテナンスカウンタ値が書き込まれているが２つのメンテナンスカウンタ番号が      まったく書き込まれておらず、初期値のままである
２）メンテナンスカウンタ値が書き込まれているが２つのメンテナンスカウンタ番号が      一致していない
３）メンテナンスカウンタ値が異常値であり、２つのメンテナンスカウンタ番号がまっ      たく書き込まれておらず、初期値のままである
といった、状態になることが想定される。このように、一時的メンテナンスカウンタ値保持領域６２に書き込みが失敗した場合には、必ず２つのメンテナンスカウンタ番号がただしく書き込まれた状態とならないため、一時的メンテナンスカウンタ値保持領域６２への書き込みを必ず保証することができる。
【００７１】
また、ステップＳ７の一時的メンテナンスカウンタ値保持領域６２のデータを不揮発性メンテナンスカウンタ領域６１にコピーする途中に電源断が発生するような場合には、不揮発性メンテナンスカウンタ領域６１のデータが異常データとなってしまうような場合が想定される。しかしながら、書き込み元となる一時的メンテナンスカウンタ値保持領域６２のデータは、この段階では初期化されていないため、次回電源オン時に第１揮発性メンテナンスカウンタ領域７１を作成する際に、不揮発性メンテナンスカウンタ領域６１の異常データが取り込まれるが、次に一時的メンテナンスカウンタ値保持領域６２の正常値が第１揮発性メンテナンスカウンタ領域７１に上書きされるため、第１揮発性メンテナンスカウンタ領域７１を正常な状態とすることができる。
【００７２】
その後、一時的メンテナンスカウンタ値保持領域６２がフルとなった後に、不揮発性メンテナンスカウンタ領域６１に正常値が書き込まれるので、不揮発性メンテナンスカウンタ領域６１のデータ異常を解消することができる。したがって、このような場合であってもデータが失われることなく正しく不揮発性メンテナンスカウンタ領域６１を更新することができる。
なお、メンテナンスカウンタ値の参照が必要な場合にも、第１揮発性メンテナンスカウンタ領域７１のメンテナンスカウンタ値が参照されるため、不揮発性メンテナンスカウンタ領域６１が常に正しい状態でなくても問題は発生しない。
【００７３】
なお、上記説明では、プリンタを例に挙げて説明を行ったが、プリンタに限られることなく、スキャナ等メンテナンスカウンタが設けられた各種情報処理機器に上記手法を適用することも可能である。
【図面の簡単な説明】
【００７４】
【図１】本実施形態のプリンタを示す斜視図である。
【図２】本実施形態のプリンタの制御構造を示すブロック図である。
【図３】ＥＥＰＲＯＭ及びＲＡＭの内部状態を示す模式図である。
【図４】不揮発性メンテナンスカウンタ領域に記憶されるメンテナンスカウンタの種類及び状態を示す表である。
【図５】一時的メンテナンスカウンタ値保持領域に記憶される情報を示す表である。
【図６】メンテナンスカウンタに関連したプリンタの処理フローを示すフローチャートである。
【図７】メンテナンスカウンタに関連したプリンタの処理フローを示すフローチャートである。
【符号の説明】
【００７５】
１０  プリンタ                     ３１  ＣＰＵ
３２  ＲＡＭ                ３３  ＥＥＰＲＯＭ
６１  不揮発性メンテナンスカウンタ領域
６２  一時的メンテナンスカウンタ値保持領域
７１  第１揮発性メンテナンスカウンタ領域
７２  第２揮発性メンテナンスカウンタ領域
【図１】
2007021787.tif 000003
【図２】
2007021787.tif 000004
【図３】
2007021787.tif 000005
【図４】
2007021787.tif 000006
【図５】
2007021787.tif 000007
【図６】
2007021787.tif 000008
【図７】
2007021787.tif 000009