(57)【特許請求の範囲】
【請求項１】
印刷部と、
揮発性記憶部と、
前記印刷部の制御プログラムを記憶する第１の不揮発性記憶部と、
ダウンロードした更新用の制御プログラムを記憶可能な第２の不揮発性記憶部と、
制御部と、を備え、
前記第２の不揮発性記憶部は、
プログラムの書き換え可能な領域に前記更新用の前記制御プログラムを記憶し、
プログラムの書き換えが禁止された領域に起動プログラムを記憶し、
前記制御部は、
前記更新用の制御プログラムを受信すると、前記揮発性記憶部に記憶し、
記憶した前記更新用の制御プログラムが正常であるか否かを判定し、
正常であると判定した場合、前記更新用の制御プログラムを前記第２の不揮発性記憶部に記憶し、
電源オンの後、または、リセット処理の後に、前記第２の不揮発性記憶部に前記更新用の制御プログラムがあると判定した場合には、
前記第１の不揮発性記憶部が記憶する前記制御プログラムを前記更新用の制御プログラムに更新し、
更新した後に、前記第２の不揮発性記憶部が記憶する前記更新用の制御プログラムを削除することを特徴とする印刷装置。
【請求項２】
前記印刷装置の電源オンの後、または、前記印刷装置のリセット処理の後に、前記第２の不揮発性記憶部に前記更新用の制御プログラムがない場合には、前記制御部は、前記第１の不揮発性記憶部が記憶する前記制御プログラムを実行することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記制御部は、電源オンの後、または、リセット処理の後に、前記起動プログラムを実行して、前記第２の不揮発性記憶部が前記更新用の制御プログラムを記憶しているか否かを判定することを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記揮発性記憶部は、前記制御部がダウンロードを開始して完了するまでの前記更新用の制御プログラムを記憶し、
前記制御部は、ダウンロードを完了した後に、前記揮発性記憶部が記憶した前記更新用の制御プログラムを前記第２の不揮発性記憶部に記憶することを特徴とする請求項１から３のいずれかに記載の印刷装置。
【請求項５】
前記制御部は、前記第１の不揮発性記憶部が記憶する前記制御プログラムを、前記更新用の制御プログラムに更新完了するまで、前記第２の不揮発性記憶部が記憶する前記更新用の制御プログラムを削除しないことを特徴とする請求項１から４のいずれかに記載の印刷装置。
【請求項６】
印刷部と、
揮発性記憶部と、
前記印刷部の制御プログラムを記憶する第１の不揮発性記憶部と、
プログラムの書き換え可能な領域に更新用の前記制御プログラムを記憶し、プログラムの書き換えが禁止された領域に起動プログラムを記憶する第２の不揮発性記憶部と、を備える印刷装置の制御方法であって、
前記更新用の制御プログラムを受信すると、前記揮発性記憶部に記憶し、
記憶した前記更新用の制御プログラムが正常であるか否かを判定し、
正常であると判定した場合、前記更新用の制御プログラムを前記第２の不揮発性記憶部に記憶し、
電源オンの後、または、リセット処理の後に、前記第２の不揮発性記憶部に前記更新用の制御プログラムがあると判定した場合には、
前記第１の不揮発性記憶部が記憶する前記制御プログラムを前記更新用の制御プログラムに更新し、
更新した後に、前記第２の不揮発性記憶部が記憶する前記更新用の制御プログラムを削除することを特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、及び印刷装置の制御方法に関する。
【背景技術】
【０００２】
従来、ホストコンピューターから受信した更新用プログラムに基づき制御プログラムを更新可能な印刷装置が知られている（例えば、特許文献１参照）。特許文献１記載の印刷装置は、この印刷装置に制御プログラムを供給するプログラム管理装置にネットワークを介して接続され、予め定められた更新タイミングで制御プログラムが更新される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多くの場合、印刷装置の制御プログラムを更新する際には、更新用の制御プログラムは、印刷装置のＲＡＭ（Random Access Memory）に記憶される。印刷装置は、ＲＡＭに記憶された更新用の制御プログラムに基づいて、印刷装置の制御プログラムを更新する。
しかし、制御プログラムの更新中に、印刷装置の電源オフ又はリセットが行われた場合、更新が中断するとともに、ＲＡＭに記憶された更新用の制御プログラムは消失するので、更新を完了することができず、不具合を招くおそれがある。
そこで、本発明は、印刷装置の制御プログラムの更新を完了できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、印刷装置であって、印刷部と、前記印刷部の制御プログラムを記憶する記憶部と、前記記憶部が記憶する制御プログラムにより前記印刷部を制御する制御部と、書き換え可能にデータを記憶する不揮発性記憶部と、更新用の制御プログラムをダウンロードして前記不揮発性記憶部に記憶させ、当該印刷装置の電源がオンされた場合、又はリセットされた場合に、前記不揮発性記憶部が前記更新用の制御プログラムを記憶していると判定した場合は、前記記憶部が記憶する前記制御プログラムを前記更新用の制御プログラムで更新し、更新が済んだ後に、前記不揮発性記憶部が記憶する前記更新用の制御プログラムを削除する更新処理部と、を備えることを特徴とする。
本発明によれば、制御プログラムの更新が済むまで更新用の制御プログラムを不揮発性記憶部に記憶する。これにより、制御プログラムの更新が中断されても、不揮発性記憶部に記憶する更新用の制御プログラムを用いて、例えば更新を再実行することができ、正常に更新を完了できる。
【０００６】
また、本発明は、上記構成において、当該印刷装置の電源がオンされた場合、又はリセットされた場合に、前記更新処理部が、前記不揮発性記憶部が前記更新用の制御プログラムを記憶していないと判定すると、前記制御部が、前記記憶部が記憶する前記制御プログラムを実行する。
本発明によれば、不揮発性記憶部が更新用の制御プログラムを記憶しているか、記憶していないかに応じて、制御部を適切に起動できる。これにより、印刷装置の電源がオンされた場合に、更新処理部によって、制御部を通常動作させる制御と、制御プログラムを更新する動作とを実行できる。例えば、不揮発性記憶部が更新用データを記憶していなければ、電源がオンされた場合、又はリセットされた場合に制御プログラムを確実に実行できる。
【０００７】
また、本発明は、上記構成において、前記不揮発性記憶部は、前記不揮発性記憶部が前記更新用の制御プログラムを記憶しているか否かの判定をする起動プログラムを記憶し、前記更新処理部は、当該印刷装置の電源がオンされた場合、又はリセットされた場合に、前記起動プログラムを実行し、前記不揮発性記憶部が起動プログラムを記憶する領域は書き込みに対し保護される。
本発明によれば、電源がオンされた場合、又はリセットされた場合に、更新処理部が起動プログラムを実行し、制御部を通常動作させる制御、または、制御プログラムを更新する動作を実行できる。更新処理部が実行する起動プログラムが保護されるので、起動時の更新処理部の動作を確実に実行できる。
【０００８】
また、本発明は、上記構成において、一時記憶部を備え、前記更新処理部は、前記更新用の制御プログラムをダウンロードして前記一時記憶部に記憶し、ダウンロードが完了した後に、前記一時記憶部に記憶した前記更新用の制御プログラムを前記不揮発性記憶部に記憶させる。
本発明によれば、更新用の制御プログラムは、ダウンロードが完了してから、不揮発性記憶部に記憶される。このため、ダウンロードが完了していない状態の更新用の制御プログラムは、不揮発性記憶部に記憶されない。従って、制御プログラムを更新する処理を確実に行うことができる。例えば、ダウンロード中に通信遮断が発生した場合等、更新用の制御プログラムのダウンロードが正常に完了しない場合に、不完全な更新用の制御プログラムで更新処理が開始される事態を回避できる。
【０００９】
また、本発明は、上記構成において、前記更新処理部は、前記記憶部が記憶する前記制御プログラムを前記更新用の制御プログラムで更新する処理が完了するまでの間、前記不揮発性記憶部が記憶する前記更新用の制御プログラムを削除しない。
本発明によれば、制御プログラムの更新が完了するまで、例えば印刷装置が起動する毎に、制御プログラムの更新を実行できる。従って、印刷装置の制御プログラムの更新が中断した場合等に、印刷装置が動作できなくなるような事態を避けることができる。
【００１０】
また、本発明は、印刷部と、前記印刷部の制御プログラムを記憶する記憶部と、前記記憶部が記憶する制御プログラムにより前記印刷部を制御する制御部と、書き換え可能にデータを記憶する不揮発性記憶部と、を備える印刷装置の制御方法であって、更新用の制御プログラムをダウンロードして前記不揮発性記憶部に記憶させ、当該印刷装置の電源がオンされた場合、またはリセットされた場合に、前記不揮発性記憶部が前記更新用の制御プログラムを記憶していると判定した場合は、前記記憶部が記憶する前記制御プログラムを前記更新用の制御プログラムで更新し、更新が済んだ後に、前記不揮発性記憶部が記憶する前記更新用の制御プログラムを削除することを特徴とする。
本発明によれば、制御プログラムの更新が済むまで更新用の制御プログラムを不揮発性記憶部に記憶する。これにより、制御プログラムの更新が中断されても、不揮発性記憶部に記憶する更新用の制御プログラムを用いて、例えば更新を再実行することができ、正常に更新を完了できる。
【図面の簡単な説明】
【００１１】
【図１】本発明を適用した実施形態に係る印刷装置の機能ブロック図。
【図２】記憶部の構成を制御部と共に示した図。
【図３】印刷装置の更新用データの取得時の動作を示すフローチャート。
【図４】印刷装置の起動時の動作を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係る印刷装置１００の機能ブロック図である。
この印刷装置１００は、ホストコンピューター２００（以下、「ホストＰＣ２００」と表記する）が接続される接続部１１０と、印刷装置１００の各部を制御する制御部１２０とを備える。
ホストＰＣ２００は、印刷装置１００に対応するプリンタードライバーがインストールされた装置である。プリンタードライバーによって、ホストＰＣ２００は、印刷装置１００に対し、印刷データＤＰの出力、及び更新用の制御プログラムＤＫの出力等が可能となる。印刷データＤＰは、例えば、印刷実行を指示するコマンド、印刷する文字や画像のデータ、及び印刷形態を指定するコマンド等を含む。
【００１３】
更新用の制御プログラムＤＫは、印刷装置１００の制御プログラム１５１（図２）を更新するデータであり、アップデートデータとも称する。以下、更新用の制御プログラムＤＫを「更新用データＤＫ」と表記する。
更新用データＤＫは、圧縮データなどの公知のアップデートデータの構成を適用できる。また、更新用データＤＫは、暗号化された暗号化データでも良い。
【００１４】
更新用データＤＫの取得手順は次の通りである。
ホストＰＣ２００は、プリンタードライバーにより印刷装置１００の現在のプログラムバージョンを認識する。プリンタードライバーは、ホストＰＣがつながる不図示のネットワーク（例えばインターネット）を介して所定のサーバーにアクセスし、新しいバージョンのデータの有無を問い合わせる。新しいバージョンのデータが存在した場合、プリンタードライバーは、そのデータを更新用の制御プログラムとしてダウンロードし、印刷装置１００に送信する。このようにして、更新用データＤＫが取得される。
【００１５】
更新用データＤＫは、ネットワークを介してダウンロードするデータに限らない。例えば、ホストＰＣ２００が、ディスク型記録媒体、フラッシュメモリー又はカード型記録媒体等の記録媒体から読み出したデータでも良い。また、更新用データＤＫは、ホストＰＣ２００が内蔵する記憶装置に予め記録されたデータでも良い。
また、プリンタードライバーによって更新用データＤＫをダウンロードする構成にも限定されない。例えば、ダウンロード用のアプリケーションをホストＰＣ２００にインストールし、このアプリケーションによって更新用データＤＫをダウンロードしても良い。
【００１６】
印刷装置１００の接続部１１０は、ＵＳＢ（Universal Serial Bus）、ＲＳ−２３２Ｃ、ＩＥＥＥ１２８４、Bluetooth（登録商標）、Ethernet（登録商標）、又は無線ＬＡＮ等の通信インターフェースである。接続部１１０は、ホストＰＣ２００を接続するポートに加え、ホストＰＣ２００以外の外部デバイスを接続可能なポートを備えても良い。
制御部１２０は、印刷装置１００の各部を制御する。この制御部１２０は、接続部１１０に接続されたホストＰＣ２００と通信する通信制御部１２３と、印刷に関する制御を行う印刷制御部１２５と、制御プログラム１５１の更新に関する制御を行う更新処理部１２７とを備える。
【００１７】
例えば、制御部１２０は、演算処理を行うプロセッサー（図示略）と周辺回路（図示略）とを具備する構成とすることができ、具体的には、マイコン、ＳＯＣ（System-on-a-chip）又はＣＰＵを採用できる。この場合、マイコン、ＳＯＣ又はＣＰＵが複数のプロセッサーコアを有し、各プロセッサーコアが、通信制御部１２３と、印刷制御部１２５と、更新処理部１２７として機能しても良い。また、一つのプロセッサーコアが、通信制御部１２３と、印刷制御部１２５と、更新処理部１２７とのいずれか２つ以上を兼用する構成にしても良い。
【００１８】
通信制御部１２３は、ホストＰＣ２００と印刷装置１００とを接続する接続部１１０に対応する通信プロトコルに従って、接続部１１０に接続されたホストＰＣ２００との間の通信を確立する。つまり、通信制御部１２３は、ホストＰＣ２００との間で、印刷データＤＰ、及び更新用データＤＫ等を送受信する通信部として機能する。
印刷制御部１２５は、ホストＰＣ２００から受信した印刷データＤＰに基づいて、印刷装置１００が備える印刷部１３４を制御して、印刷データＤＰに対応する画像を、印刷媒体（印刷用紙）に印刷する。印刷媒体は、例えば、感熱ロール紙である。
【００１９】
図１に示すように、制御部１２０には、記憶部１３１と、入力部１３２と、用紙センサー１３３と、印刷部１３４とが接続される。記憶部１３１は、印刷装置１００に関する各種データを記憶する装置であり、不揮発性記憶部１４１と、揮発性記憶部１４２とを備える。
入力部１３２は、印刷装置１００が備える操作パネル（図示略）のスイッチ等に接続される。入力部１３２は、スイッチが操作される毎に、操作されたスイッチに対応する操作信号を生成して制御部１２０に出力する。
用紙センサー１３３は、印刷媒体の有無を検出する光学式センサーである。制御部１２０（印刷制御部１２５）は、用紙センサー１３３の検出値を取得することにより、印刷媒体の有無を検出する。
【００２０】
印刷部１３４は、印刷媒体に印刷する装置であり、搬送モーター１３５と、印刷ヘッド１３６と、搬送モーター１３５と印刷ヘッド１３６とをそれぞれ駆動するドライバー回路１３７、１３８とを備える。
ドライバー回路１３７は、印刷制御部１２５の制御に従って、搬送モーター１３５に駆動電流を供給し、搬送モーター１３５を回転駆動する。搬送モーター１３５は、印刷媒体を搬送させる駆動源であり、ステッピングモーターで構成することができる。この場合、ドライバー回路１３７は、搬送モーター１３５に対して駆動パルス及び駆動電流を出力することによって印刷媒体を搬送させる。
【００２１】
ドライバー回路１３８は、印刷制御部１２５の制御に従って、印刷ヘッド１３６を駆動する。例えば、印刷ヘッド１３６は、複数の発熱素子を有するサーマルヘッドである。ドライバー回路１３８は、印刷制御部１２５の制御の下、印刷データに基づいて印刷ヘッド１３６が備える個々の発熱素子に通電し、通電された発熱素子に対応する印刷媒体（感熱ロール紙）の箇所を発色させる。これにより、印刷データに対応する画像が印刷媒体に印刷される。
【００２２】
図２は、記憶部１３１の構成を制御部１２０と共に示した図である。
上述したように、記憶部１３１は、不揮発性記憶部１４１と、揮発性記憶部１４２とを備える。不揮発性記憶部１４１は、第１フラッシュメモリー１４１Ａと、第２フラッシュメモリー１４１Ｂとを備え、いずれも書き換え可能にデータを記憶可能である。第１フラッシュメモリー１４１Ａは、印刷装置１００の制御プログラム１５１を記憶する。制御部１２０は、この制御プログラム１５１により印刷装置１００を制御する。
【００２３】
より具体的には、この制御プログラム１５１は、印刷部１３４を制御する印刷制御用プログラムであり、具体的には、印刷部１３４の各部制御、入力部１３２の入力結果に対する制御、及び用紙センサー１３３に関する制御等を実行させる。この印刷装置１００は、この制御プログラム１５１の他に、後述するネットワーク制御用プログラム１５２（図２）、及び起動プログラム１５３（図２）を有する。これらプログラム１５１、１５２、１５３は、アルゴリズムを規定する狭義のプログラムデータに限定されず、各種制御に用いる数値等のデータを含んでも良い。
【００２４】
第２フラッシュメモリー１４１Ｂは、プログラムを記憶する領域Ｋ１（以下、「プログラム領域Ｋ１」と言う）と、更新用データＤＫを記憶する領域Ｋ２（以下、「アップデートイメージ保存領域Ｋ２」と言う）とを有する。
プログラム領域Ｋ１は、ネットワーク制御用プログラム１５２、及び起動プログラム１５３を記憶する。ネットワーク制御用プログラム１５２は、ホストＰＣ２００との間の通信に関する制御プログラムである。また、起動プログラム１５３は、印刷装置１００の電源オン又はリセット後に、制御プログラム１５１の実行前に実行されるプログラムであり、ブートプログラムとも称する。
【００２５】
プログラム領域Ｋ１の一部は、書き込み及び消去が禁止された書き込み保護領域Ｋ１Ａとされる。図２に示すように、この書き込み保護領域Ｋ１Ａには、起動プログラム１５３が記憶される。これによって、印刷装置１００では起動プログラム１５３の書き換え（書き込み、上書きを含む）、及び消去が禁止されている。
アップデートイメージ保存領域Ｋ２は、ダウンロードした更新用データＤＫを記憶する領域である。
このように、印刷装置１００のプログラム１５１、１５２、１５３及び更新用データＤＫは、不揮発性記憶部１４１に記憶される。これにより、印刷装置１００の電源のオンオフ、及び記憶部１３１への電源供給の有無に関わらず、これらプログラム（データ等を含む）を保持できる。
【００２６】
本構成では、第１フラッシュメモリー１４１Ａに、シリアルフラッシュメモリーが使用され、第２フラッシュメモリー１４１Ｂに、ＮＡＮＤ型フラッシュメモリーが使用される。ＮＡＮＤ型フラッシュメモリーは、比較的安価に大容量化できるので、プログラム領域Ｋ１、及びアップデートイメージ保存領域Ｋ２の大容量化を図りやすい等のメリットが得られる。
【００２７】
但し、不揮発性記憶部１４１は上記構成に限定されない。例えば、第１フラッシュメモリー１４１Ａ、及び第２フラッシュメモリー１４１Ｂを、同タイプのフラッシュメモリーで構成しても良い。また、不揮発性記憶部１４１を、一つのフラッシュメモリーで構成しても良い。また、不揮発性記憶部１４１を、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）等の、プログラムやデータ等を不揮発的に記憶する他の種類の記憶装置（不揮発性記憶装置）で構成しても良い。
【００２８】
揮発性記憶部１４２は、制御部１２０のワークエリアを構成するＲＡＭ（Random Access Memory）である。この揮発性記憶部１４２は、各種データを一時的に記憶する一時記憶部として機能する。具体的には、ホストＰＣ２００から受信した印刷データＤＰ及び更新用データＤＫ、制御部１２０が不揮発性記憶部１４１から読み出して実行するプログラム等のデータ等が、揮発性記憶部１４２に一時的に記憶される。
【００２９】
更新処理部１２７は、制御プログラム１５１の更新に関する処理を実行する。また、この更新処理部１２７は、図２に示すように、第１フラッシュメモリー１４１Ａ、第２フラッシュメモリー１４１Ｂ、及び揮発性記憶部１４２のいずれにもアクセス可能である。
この更新処理部１２７は、ホストＰＣ２００のプリンタードライバーの制御に従って、更新用データＤＫのダウンロードを開始し、まず、ホストＰＣ２００から受信する更新用データＤＫを揮発性記憶部１４２に記憶する処理を行う。その後、ダウンロードが完了し、揮発性記憶部１４２への記憶が完了すると、更新処理部１２７は、揮発性記憶部１４２に記憶した更新用データＤＫを、第２フラッシュメモリー１４１Ｂのアップデートイメージ保存領域Ｋ２に記憶する処理を行う。更新処理部１２７は、ホストＰＣ２００から更新用データＤＫを受信（ダウンロード）する処理を行った後、揮発性記憶部１４２に記憶した更新用データＤＫに対し、正常な更新用データＤＫの全体であるか否かを判定してもよい。例えば、更新処理部１２７は、揮発性記憶部１４２に記憶した更新用データＤＫに対して誤り検出処理等を実行する。この場合、更新処理部１２７は、揮発性記憶部１４２に記憶した更新用データＤＫが、正常かつ完全なデータであることが確認された場合に、更新用データＤＫのダウンロードが完了したと判定する。誤り検出処理は、例えば、パリティチェック、ＣＲＣ（Cyclic Redundancy Check）等の公知の誤り検出処理を利用できる。また、更新処理部１２７は、更新用データＤＫが正常かつ完全なデータでない場合も、誤り訂正を行うことで正常なデータにすることが可能であれば、誤り訂正を行ってから、ダウンロードが完了したと判定してもよい。さらにまた、更新処理部１２７は、揮発性記憶部１４２に記憶した更新用データＤＫに、誤りや不備が発見された場合に、ホストＰＣ２００に対してダウンロードの再実行を要求してもよい。
【００３０】
これにより、揮発性記憶部１４２がバッファーメモリーとして利用され、更新用データＤＫが全てダウンロードされた場合にだけ、更新用データＤＫが揮発性記憶部１４２に記憶される。従って、仮に、ダウンロード中に通信遮断が発生した場合には、更新用データＤＫが揮発性記憶部１４２に記憶されない。この結果、不完全な更新用データＤＫが揮発性記憶部１４２に記憶されることを回避できる。
ここで、ダウンロードされた更新用データＤＫが圧縮データ又は暗号化データの場合、更新処理部１２７は、解凍又は暗号解除の処理を行い、処理後の更新用データＤＫを、第２フラッシュメモリー１４１Ｂのアップデートイメージ保存領域Ｋ２に記憶する。
【００３１】
一般に、揮発性記憶部１４２は高速で読み書きができるので、解凍や暗号解除の処理を効率良く短時間で行うことができる。これらにより、更新用データＤＫをダウンロードし、第２フラッシュメモリー１４１Ｂに完全な更新用データＤＫを記憶するまでの一連の処理を円滑に行うことができる。
また、更新処理部１２７は、起動プログラム１５３の実行、及び、アップデートイメージ保存領域Ｋ２に記憶された更新用データＤＫの実行などを行う。更新用データＤＫの実行により、更新処理部１２７は、第１フラッシュメモリー１４１Ａに記憶された制御プログラム１５１を更新する。
【００３２】
次に、不揮発性記憶部１４１の制御プログラム１５１を更新する動作を説明する。
図３及び図４は、印刷装置１００の動作を示すフローチャートである。詳細には、図３は更新用データＤＫの取得時の動作を示し、図４は印刷装置１００の起動時の動作を示す。
ホストＰＣ２００がプリンタードライバーによって更新用データＤＫのダウンロードを開始すると、更新処理部１２７は、通信制御部１２３を介して更新用データＤＫを受信する（ステップＳ１）。更新用データＤＫを受信すると、更新処理部１２７は、受信した更新用データＤＫを揮発性記憶部１４２に順次記憶する（ステップＳ２）。
【００３３】
次いで、更新処理部１２７は、更新用データＤＫの全てを受信し、揮発性記憶部１４２に記憶した後、揮発性記憶部１４２に記憶した更新用データＤＫを、第２フラッシュメモリー１４１Ｂのアップデートイメージ保存領域Ｋ２に記憶する（ステップＳ３）。これによって、更新用データＤＫのダウンロードが完了した後に、更新用データＤＫがアップデートイメージ保存領域Ｋ２に記憶される。従って、不完全な更新用データＤＫが揮発性記憶部１４２に記憶されることがない。
なお、更新用データＤＫの全てを受信したか否か、つまり、ダウンロードが完了したか否かは、例えば、ホストＰＣ２００のプリンタードライバーからの通知によって更新処理部１２７が検出することができる。
【００３４】
更新処理部１２７は、更新用データＤＫをアップデートイメージ保存領域Ｋ２に記憶した後、印刷装置１００を再起動させる（ステップＳ４）。この場合、更新処理部１２７は、印刷装置１００をリセットする処理を行うことによって、印刷装置１００を再起動させる。このリセットする処理は、例えば、印刷装置１００のハードリセットである。つまり、印刷装置１００が具備するリセットＩＣのリセット機能を利用して、印刷装置１００を再起動させる。或いは、マイコン、ＳＯＣ、ＣＰＵ又はコアをスタートアドレスから実行させて行うソフトウェアリセットであってもよい。
【００３５】
上記リセットする処理、又は電源のオンにより印刷装置１００が起動した場合、図４に示すように、更新処理部１２７は、第２フラッシュメモリー１４１Ｂに記憶する起動プログラム１５３を実行する（ステップＳ１１）。この場合、更新処理部１２７は、起動プログラム１５３を読み出して揮発性記憶部１４２に記憶し、揮発性記憶部１４２に記憶した起動プログラム１５３を実行する。この起動プログラム１５３の実行により、更新処理部１２７は、以下に説明するステップＳ１２〜Ｓ１７の処理を実行する。
【００３６】
まず、更新処理部１２７は、第２フラッシュメモリー１４１Ｂのアップデートイメージ保存領域Ｋ２にアクセスすることにより、第２フラッシュメモリー１４１Ｂが更新用データＤＫを記憶しているか否かを判定する（ステップＳ１２）。
更新用データＤＫを記憶していない場合（ステップＳ１２；ＮＯ）、更新処理部１２７は、第１フラッシュメモリー１４１Ａが記憶する制御プログラム１５１を実行させる（ステップＳ１３）。これにより、制御部１２０は、印刷制御部１２５により制御プログラム１５１を読み出して揮発性記憶部１４２に記憶し、揮発性記憶部１４２に記憶した制御プログラム１５１を実行する。従って、第１フラッシュメモリー１４１Ａに記憶される制御プログラム１５１に基づき、印刷部１３４の制御等が実行される。つまり、制御プログラム１５１の更新を行わず通常の制御プログラム１５１の実行のみ行う場合であっても、リセット時又は電源のオン時は、更新用データＤＫを記憶しているか否かを判定する。
【００３７】
一方、更新用データＤＫを記憶している場合（ステップＳ１２；ＹＥＳ）、更新処理部１２７は、更新用データＤＫを読み出して揮発性記憶部１４２に記憶し、揮発性記憶部１４２に記憶した更新用データＤＫで制御プログラム１５１を更新する（ステップＳ１４）。これにより、更新処理部１２７は、更新用データＤＫで第１フラッシュメモリー１４１Ａに記憶される制御プログラム１５１の更新を開始する（ステップＳ１４）。
続いて、更新処理部１２７は、制御プログラム１５１の更新が完了したか否かを判定する（ステップＳ１５）。更新が完了したと判定すると（ステップＳ１５；ＹＥＳ）、更新処理部１２７は、第２フラッシュメモリー１４１Ｂが記憶する更新用データＤＫを削除する（ステップＳ１６）。
【００３８】
更新処理部１２７は、更新用データＤＫを完全に削除した後、印刷装置１００をリセットする処理を行うことにより、印刷装置１００を再起動させる（ステップＳ１７）。この再起動させる処理は、上記ステップＳ４の処理と同様の処理である。
更新用データＤＫを完全に削除した後に再起動させるので、再起動後には、第２フラッシュメモリー１４１Ｂに更新用データＤＫが記憶されない。従って、起動後のステップＳ１２の判定では、更新用データＤＫが記憶されていないと判定される（ステップＳ１２；ＮＯ）。これにより、ステップＳ１３の処理に移行し、更新後の制御プログラム１５１が実行される。
【００３９】
また、上記ステップＳ１２〜Ｓ１６の処理によれば、制御プログラム１５１を更新用データＤＫで更新する処理が完了するまでの間、第２フラッシュメモリー１４１Ｂが記憶する更新用データＤＫは削除されない。これにより、仮に更新が中断した場合には、再起動後に、制御プログラム１５１を更新する処理を再実行できる。このため、更新が完了するまで再起動後に更新する処理を実行させることができる。例えば、制御プログラム１５１を更新する処理が、更新中の電源遮断等により中断しても、保護された起動プログラム１５３の機能が動作して、制御プログラムを更新するので、制御プログラム１５１が不完全な状態で放置されることがない。このため、制御プログラム１５１の更新の失敗により印刷装置１００が使用不要となる事態を避けることができる。
【００４０】
以上説明したように、本実施形態に係る印刷装置１００は、更新処理部１２７により、更新用の制御プログラムである更新用データＤＫをダウンロードして第２フラッシュメモリー１４１Ｂに記憶させる。更新処理部１２７は、印刷装置１００の電源がオンされた場合、又はリセットされた場合に、第２フラッシュメモリー１４１Ｂが更新用データＤＫを記憶していると判定した場合は、制御プログラム１５１を更新用データＤＫで更新する。更新が済んだ後、更新処理部１２７は、第２フラッシュメモリー１４１Ｂが記憶する更新用データＤＫを削除する。
【００４１】
この印刷装置１００の構成、及び印刷装置１００の制御方法によれば、制御プログラム１５１の更新が済むまで更新用データＤＫを、不揮発性記憶部１４１の一部を構成する第２フラッシュメモリー１４１Ｂに記憶する。これにより、制御プログラム１５１の更新途中に更新が中断されても、電源がオンされた場合、又はリセットされた場合に、更新を開始できる。従って、制御プログラム１５１の更新が中断されても更新を完了できる。
また、更新が済んだ後に、第２フラッシュメモリー１４１Ｂが記憶する更新用データＤＫを削除するので、更新を完了後に同じ更新用データＤＫで更新する事態を回避できる。
これにより、印刷装置１００は、制御プログラム１５１を更新する処理中に、障害や誤操作によって処理の中断が発生しても、正常に制御プログラム１５１を更新でき、障害耐性が高いということができる。
【００４２】
また、印刷装置１００の電源がオンされた場合、又はリセットされた場合に、更新処理部１２７が、第２フラッシュメモリー１４１Ｂが更新用データＤＫを記憶していないと判定すると、制御部１２０が制御プログラム１５１を実行する。これにより、印刷装置１００の電源がオンされた場合に、更新処理部１２７によって、制御部１４０を通常動作させる制御と、制御プログラムを更新する動作とを実行できる。例えば、第２フラッシュメモリー１４１Ｂが更新用データＤＫを記憶していなければ、電源がオンされた場合、又はリセットされた場合に制御プログラム１５１を確実に実行できる。
【００４３】
また、第２フラッシュメモリー１４１Ｂは、当該第２フラッシュメモリー１４１Ｂが更新用データＤＫを記憶しているか否かの判定をする起動プログラム１５３を記憶する。更新処理部１２７は、印刷装置１００の電源がオンされた場合、又はリセットされた場合に、第２フラッシュメモリー１４１Ｂが記憶する起動プログラム１５３を実行する。また、第２フラッシュメモリー１４１Ｂが起動プログラム１５３を記憶する領域は書き込みに対し保護される。これにより、電源がオンされた場合、又はリセットされた場合に、更新処理部１２７が、起動プログラム１５３を確実に実行させることができる。
【００４４】
また、一時記憶部として機能する揮発性記憶部１４２を備え、更新処理部１２７は、更新用データＤＫをダウンロードして揮発性記憶部１４２に記憶する。更新処理部１２７は、ダウンロードが完了した後に、揮発性記憶部１４２に記憶した更新用データＤＫを、第２フラッシュメモリー１４１Ｂに記憶させる。これにより、ダウンロード中に通信遮断が発生した場合等、更新用データＤＫのダウンロードが正常に完了しない場合、更新用データＤＫが第２フラッシュメモリー１４１Ｂに記憶されない。従って、不完全な更新用データＤＫが第２フラッシュメモリー１４１Ｂに記憶されることが回避され、不完全な更新用データＤＫで更新処理が開始される事態を回避できる。
これにより、印刷装置１００は、制御プログラム１５１をホストＰＣ２００からダウンロード中に、障害や誤操作によってダウンロードの中断が発生しても、正常に制御プログラム１５１を更新でき、障害耐性が高いということができる。
【００４５】
また、ホストＰＣ２００から受信した更新用データＤＫが圧縮データ又は暗号化データであった場合、更新処理部１２７は、揮発性記憶部１４２上で、解凍又は暗号解除の処理を行うことができる。この場合、更新処理部１２７は、解凍又は暗号解除の処理を行った後の更新用データＤＫを第２フラッシュメモリー１４１Ｂに記憶しても良い。或いは、更新処理部１２７は、解凍又は暗号解除の処理を行った後の更新用データＤＫを、再び圧縮または暗号化して、第２フラッシュメモリー１４１Ｂに記憶しても良い。
【００４６】
また、更新処理部１２７は、制御プログラム１５１を更新用データＤＫで更新する処理が完了するまでの間、第２フラッシュメモリー１４１Ｂが記憶する更新用データＤＫを削除しない。これにより、更新が完了するまで再起動毎に更新する処理を実行させることができる。従って、更新が中断して印刷装置１００が使用不要となる事態を避けることができる。
【００４７】
なお、上述した実施形態は、本発明の好適な実施形態を示すものであり、本発明を限定するものではなく、本発明の要旨を逸脱しない範囲内において種々の変形実施が可能である。例えば、上記実施形態では、印刷装置１００の一例として、感熱ロール紙を記録媒体とするサーマルプリンターについて説明したが、記録媒体は、定型サイズにカットされたカットシートであっても連続シートでも良い。また、印刷装置１００は、インクジェットプリンター又はレーザープリンターでも良い。
【００４８】
また、図１に示す各機能ブロックは、ハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。また、制御プログラム１５１、起動プログラム１５３及び更新用データＤＫ等のデータを記憶する記憶部１３１は、印刷装置１００に内蔵する構成に限定されない。例えば、記憶部１３１は、印刷装置１００に外部接続される記憶装置でも良い。
【符号の説明】
【００４９】
１００…印刷装置、１１０…接続部、１２０…制御部、１２３…通信制御部、１２５…印刷制御部、１２７…更新処理部、１２２…第２制御部、１２２Ａ…ＵＳＢホスト制御部（第２通信部）、１３１…記憶部、１３２…入力部、１３３…用紙センサー、１３４…印刷部、１３５…搬送モーター、１３６…印刷ヘッド、１３７、１３８…ドライバー回路、１４１…不揮発性記憶部、１４１Ａ…第１フラッシュメモリー（記憶部）、１４１Ｂ…第２フラッシュメモリー（不揮発性記憶部）、１４２…揮発性記憶部、２００…ホストコンピューター（ホストＰＣ）、ＤＰ…印刷データ、ＤＫ…更新用の制御プログラム（更新用データ）。
【図１】
0006638323.tif 000002
【図２】
0006638323.tif 000003
【図３】
0006638323.tif 000004
【図４】
0006638323.tif 000005