説明

プリンタおよびプリンタの制御方法

【課題】プリンタの誤動作または未動作を抑制すること。
【解決手段】不揮発性メモリ内の第1領域42にプリンタの第1設定を、前記不揮発性メモリ内のそれぞれ異なる第2領域40に複数のコードを、それぞれ書き込む書き込み部と、前記複数のコードのうち少なくとも1つのコードが前記書き込み部が書き込んだ対応するコードと一致しない場合、前記第1領域42に前記プリンタの第2設定を、前記それぞれ異なる第2領域40に前記複数のコードを、書き込む再書き込み部と、を具備するプリンタ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタおよびプリンタの制御方法に関し、特に、不揮発性メモリに設定を書き込むプリンタおよびプリンタの制御方法に関する。
【背景技術】
【0002】
動作モード等の各種設定情報を不揮発性メモリに書き込むプリンタが知られている(例えば特許文献1)。各種設定情報を不揮発性メモリに書き込んでおくことにより、再始動した際に、電源遮断前の各種設定情報を読み出すことができる。これにより、各種設定情報を再設定しなくともよい。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−175073号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば不揮発性メモリ内に各種設定を書き込み中に電源が遮断された場合等、不揮発性メモリ内の各種設定が破壊された場合、プリンタが誤動作する、または起動しなくなることがある。
【0005】
本発明は、上記課題に鑑みなされたものであり、プリンタの誤動作または未動作を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、不揮発性メモリ内の第1領域にプリンタの第1設定を、前記不揮発性メモリ内のそれぞれ異なる第2領域に複数のコードを、それぞれ書き込む書き込み部と、前記複数のコードのうち少なくとも1つのコードが前記書き込み部が書き込んだ対応するコードと一致しない場合、前記第1領域に前記プリンタの第2設定を、前記それぞれ異なる第2領域に前記複数のコードを、書き込む再書き込み部と、を具備することを特徴とするプリンタである。本発明によれば、プリンタの誤動作または未動作を抑制することができる。
【0007】
上記構成において、前記第2領域の少なくとも1つは、前記第1設定を書き込むセクタの先頭領域および末尾領域の少なくとも一方を含む構成とすることができる。この構成によれば、プリンタの誤動作または未動作をより抑制することができる。
【0008】
上記構成において、前記第2領域の少なくとも1つは、前記第1領域の直前および直後の領域の少なくとも一方を含む構成とすることができる。この構成によれば、プリンタの誤動作または未動作をより抑制することができる。
【0009】
上記構成において、前記第2領域の少なくとも1つは、連続した複数の前記第1領域の直前および直後の領域の少なくとも一方を含む構成とすることができる。
【0010】
上記構成において、前記第2設定は、前記プリンタのデフォルト設定である構成とすることができる。
【0011】
上記構成において、前記第2設定は、設定可能である構成とすることができる。
【0012】
本発明は、不揮発性メモリ内の第1領域にプリンタの第1設定を、前記不揮発性メモリ内のそれぞれ異なる第2領域に複数のコードを、それぞれ書き込むステップと、前記複数のコードのうち少なくとも2つのコードが前記書き込み部が書き込んだ対応するコードと一致しない場合、前記第1領域に前記プリンタの第2設定を、前記それぞれ異なる第2領域に前記複数のコードを、書き込むステップと、を含むことを特徴とするプリンタの制御方法である。本発明によれば、プリンタの誤動作または未動作を抑制することができる。
【発明の効果】
【0013】
本発明によれば、プリンタの誤動作または未動作を抑制することができる。
【図面の簡単な説明】
【0014】
【図1】図1は、実施例1に係るプリンタのブロック図である。
【図2】図2は、制御部のメインルーチンの処理を示すフローチャートである。
【図3】図3は、初期化処理内の処理の例を示すフローチャートである。
【図4】図4は、不揮発性メモリのメモリ領域を示す図である。
【図5】図5(a)から図5(d)は、セクタ3内の領域を示す図である。
【図6】図6は、コマンド処理内の処理の例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照し、実施例について説明する。
【実施例1】
【0016】
実施例1は、サーマルプリンタの例である。図1は、実施例1に係るプリンタのブロック図である。図1のように、プリンタ100は、制御部10、不揮発性メモリ16、ROM(Read Only Memory)18、機械部20、操作部22および入出力部24を備えている。制御部10は、例えばCPU(Central Processing Unit)であり、操作部22および入出力部24からの入力情報に基づき、機械部20、操作部22および入出力部24を制御する。制御部10は、読み出し部12、書き込み部13および再書き込み部14として機能する。読み出し部12は、不揮発性メモリ16内の第1領域からプリンタ100の設定である第1設定を読み出す。書き込み部13は不揮発性メモリ16に、プリンタ100の動作設定である第1設定を書き込む。再書き込み部14は、不揮発性メモリ16内の第1設定情報が破壊されている場合、第1領域に第2設定を書き込む。このように、第1設定は、プリンタ100が動作するための設定であり、第2設定は、第1設定が記憶されている不揮発性メモリの領域が壊れた場合に、再書き込みを行うための設定である。
【0017】
機械部20は、サーマルヘッド、用紙送り機構等を含んでおり、用紙に文字や図形を印刷する。操作部22は、電源スイッチや各種操作スイッチを含んでいる。使用者が操作部22を操作することにより、プリンタ100の各種設定が可能である。入出力部24が、外部との情報の入出力を行う。例えば、外部から印刷する文字や図柄の情報が入出力部24に入力する。また、印刷結果を入出力部24から外部に出力する。
【0018】
図2は、制御部のメインルーチンの処理を示すフローチャートである。図2のように、制御部10は、プリンタ100の電源を投入する(ステップS10)。例えば、操作部22の電源スイッチがオンとなった場合、または、外部装置から入出力部24を介し、電源オンの要求があった場合、制御部10は、プリンタ100の電源を投入する。制御部10は、初期化処理を行う(ステップS12)。制御部10はリセット要求がなされているか判断する(ステップS14)。Yesの場合、ステップS12に戻る。Noの場合、制御部10は、プリンタ100の状態が変化したか判断する。プリンタ100の状態に変化がある場合、例えば入出力部24から外部装置にプリンタ100の状態を通知する(ステップS16)。制御部10は電源オフの要求があるかを判断する(ステップS18)。例えば、操作部22の電源スイッチがオフとなった場合、または、外部装置から入出力部24を介し、電源オフの要求があった場合、制御部10は、電源オフの要求があると判断する。Yesの場合、制御部10は、プリンタの設定(第1設定)を不揮発性メモリ16内の第1領域に、複数のコードを不揮発性メモリ16内のそれぞれ異なる第2領域にそれぞれ書き込む(ステップS28)。制御部10は、電源オフ処理を行う(ステップS30)。
【0019】
ステップS18においてNoの場合、制御部10はプリンタ100がエラー状態か判断する(ステップS20)。Yesの場合、ステップS14に戻る。Noの場合、制御部10は、入出力部24から入力されたコマンドまたは制御部10が発生したコマンドに基づき、コマンドに対応する処理を行う(ステップS22)。制御部10は、印字データがあるか判断する(ステップS24)。例えば入出力部24から印字データが入力されているか判断する。Noの場合、ステップS14に戻る。Yesの場合、印字処理を行う(ステップS26)。その後、ステップS14に戻る。
【0020】
図3は、初期化処理内の処理の例を示すフローチャートである。図3のように、制御部10の読み出し部12は、不揮発性メモリ16内の複数の第2領域に対応する複数のコードを読み出す(ステップS40)。制御部10は、読み出された複数のコードがそれぞれ正規のコードと一致するか判断する(ステップS42)。Yesの場合、読み出し部12は、不揮発性メモリ16の第1領域から第1設定を読み出す(ステップS44)。Noの場合、再書き込み部14は、不揮発性メモリ16の第1領域にプリンタ100の第2設定(例えばデフォルト等)を、それぞれ異なる第2領域に複数のコードを、書き込む(ステップS46)。その後終了する。
【0021】
実施例1によれば、図2のステップS28のように、書き込み部13が不揮発性メモリ16内の第1領域にプリンタ100の第1設定を、不揮発性メモリ16内のそれぞれ異なる第2領域に複数のコードを、それぞれ書き込む。図3のステップS46のように、複数のコードのうち少なくとも1つのコードが書き込み部13が書き込んだ対応するコードと一致しない場合、第1領域にプリンタ100の第2設定を、それぞれ異なる第2領域に複数のコードを、書き込む。このように、複数のコードのうち少なくとも1つのコードが書き込み部13が書き込んだコードと異なる場合、不揮発性メモリ16のセクタのデータが壊れている可能性がある。そこで、例えばデフォルト等の第2設定を不揮発性メモリ16内の対応する領域に書き込むことにより、プリンタ100が動作することができる。また、2つ以上のコードでデータの破壊の有無を判断するため、より正確に判断することができる。なお、図3のステップS42において、配置した複数のコード全てについて正規のコードと一致するか判定しなくてもよい。すなわち、配置した複数のコードのうち少なくとも2以上のコードについて正規のコードと一致するか判定すればよい。
【0022】
表1は、不揮発性メモリ16内に書き込む設定のアドレスの割当例である。例えば、アドレス30000〜3007Fには、プリンタ設定情報を割り当てる。プリンタ設定情報としては、例えば、用紙の有無を検出するしきい値、改行量、改ページ量、行間スペース、文字サイズ、文字フォント、余白幅等がある。アドレス30100〜301FFには、RS−232C通信設定情報を割り当てる。アドレス30200〜302FFには、IrDA(Infrared Data Association)通信設定情報を割り当てる。アドレス30200〜303FFには、USB(Universal Serial Bus)通信設定情報を割り当てる。30400〜304FFには、Bulutooth通信設定情報を割り当てる。
【表1】

【0023】
図4は、不揮発性メモリのメモリ領域を示す図である。不揮発性メモリ16としては、例えばフラッシュメモリを用いる。不揮発性メモリ16のメモリ領域は、例えば64Kbyteのセクタに分かれており、セクタ毎に、プログラムおよび設定情報等が割り当てられている。実施例1においては、セクタ3にプリンタの設定が書き込まれている。
【0024】
図5(a)から図5(d)は、セクタ3内の領域を示す図である。図5(a)のように、セクタ30内には設定を書き込む領域34と書き込まない領域32が存在する。第1設定が書き込まれる領域が第1領域42であり、コードが書き込まれる領域が第2領域40である。図5(a)の例では、セクタ30の中央領域が領域34である。領域34は、セクタ30のいずれの領域でもよい。領域34内の第1領域42に第1設定が書き込まれている。コードがセクタの先頭領域および末尾領域の第2領域40に書き込まれている。先頭領域または末尾領域のデータが壊れているとセクタ内のデータが壊れている可能性が高い。よって、第2領域40の少なくとも1つは、第1設定を書き込むセクタの先頭領域および末尾領域の少なくとも一方を含むことにより、データの破壊をより検出することが可能となる。よって、プリンタの誤動作または未動作をより抑制することができる。
【0025】
図5(b)例では、第1設定のうちの少なくとも1つの設定が書き込まれた第1領域42の直後にコードが書きこまれている。また、図5(c)の例では、第1設定のうちの少なくとも1つの設定が書き込まれた第1領域42の直前と直後にコードが書き込まれている。このように、第2領域40の少なくとも1つは、第1領域42の直前および直後の領域の少なくとも一方を含むことが好ましい。これにより、より設定データの破壊を検出することができる。よって、プリンタの誤動作または未動作をより抑制することができる。
【0026】
図5(d)の例では、複数の第1設定をそれぞれ書き込む第1領域42が複数連続して割り当てられている。割り当てられた第1領域42の直前領域および直後領域にコードを書き込んでいる。例えば、表1において、プリンタ設定情報の直前領域および直後領域にコードを書き込む。このように、第2領域40の少なくとも1つは、連続した複数の第1領域42の直前および直後の領域の少なくとも一方を含むこともできる。これにより、第1設定の設定値が多い場合に第2領域40の数を少なくできる。
【0027】
図3のステップS46において、不揮発性メモリ16に書き込む第2設定は、例えばROM18に格納されているプリンタ100の設定のデフォルト値とすることができる。また、第2設定は、不揮発性メモリ16の他のセクタ(例えば図4のセクタn)に格納しておき、設定可能とすることもできる。
【0028】
図6は、コマンド処理内の処理の例を示すフローチャートである。図6を参照にし、制御部10は、コマンドデータの解析を行う(ステップS50)。制御部10は、コマンドが第1設定の変更コマンドか判断する(ステップS52)。Yesの場合、制御部10は、第1設定を変更し、変更した第1設定を不揮発性メモリ16に書き込む(ステップS54)。このとき、例えばフラッシュメモリにおいては、セクタ(例えば図4のセクタ3)全体を消去し、第1設定およびコードを再度書き込む。その後終了する。ステップS52においてNoの場合、制御部10は、コマンドが第2設定の変更コマンドか判断する(ステップS56)。Yesの場合、制御部10は第2設定が書き込まれているセクタ(例えば図4のセクタn)に第2設定を書き込む。これにより、第2設定を変更することができる。ステップS56においてNoの場合、終了する。図6のように、第2設定は設定可能とすることができる。
【0029】
コードとしては、複数のコード全てが異なるコードでもよいし、全てが同じコードでもよい。また少なくとも一部が同じコードでもよい。コードが長いと、コードの一致を判定するのに時間がかかる。一方、コードが短いと、コードが壊れているかの確認ができない場合がある。そこで、例えばコードを4バイトとすることができる。例えば、コードが書き込まれていない場合、第2領域を「FFFFFFFF」とすることができる。
【0030】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0031】
10 制御部
12 読み出し部
13 書き込み部
14 再書き込み部
16 不揮発性メモリ
40 第2領域
42 第1領域

【特許請求の範囲】
【請求項1】
不揮発性メモリ内の第1領域にプリンタの第1設定を、前記不揮発性メモリ内のそれぞれ異なる第2領域に複数のコードを、それぞれ書き込む書き込み部と、
前記複数のコードのうち少なくとも1つのコードが前記書き込み部が書き込んだ対応するコードと一致しない場合、前記第1領域に前記プリンタの第2設定を、前記それぞれ異なる第2領域に前記複数のコードを、書き込む再書き込み部と、
を具備することを特徴とするプリンタ。
【請求項2】
前記第2領域の少なくとも1つは、前記第1設定を書き込むセクタの先頭領域および末尾領域の少なくとも一方を含むことを特徴とする請求項1記載のプリンタ。
【請求項3】
前記第2領域の少なくとも1つは、前記第1領域の直前および直後の領域の少なくとも一方を含むことを特徴とする請求項1または2記載のプリンタ。
【請求項4】
前記第2領域の少なくとも1つは、連続した複数の前記第1領域の直前および直後の領域の少なくとも一方を含むことを特徴とする請求項1または2記載のプリンタ。
【請求項5】
前記第2設定は、前記プリンタのデフォルト設定であることを特徴とする請求項1から4のいずれか一項記載のプリンタ。
【請求項6】
前記第2設定は、設定可能であることを特徴とする請求項1から4のいずれか一項記載のプリンタ。
【請求項7】
不揮発性メモリ内の第1領域にプリンタの第1設定を、前記不揮発性メモリ内のそれぞれ異なる第2領域に複数のコードを、それぞれ書き込むステップと、
前記複数のコードのうち少なくとも2つのコードが前記書き込み部が書き込んだ対応するコードと一致しない場合、前記第1領域に前記プリンタの第2設定を、前記それぞれ異なる第2領域に前記複数のコードを、書き込むステップと、
を含むことを特徴とするプリンタの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−245817(P2011−245817A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−123800(P2010−123800)
【出願日】平成22年5月31日(2010.5.31)
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】