(57)【要約】【課題】ファームウェアのアップデートに失敗しても、簡易な方法によって、ファームウェアのアップデートを再実施可能にする技術を提供する。【解決手段】印刷装置１００は、ファームウェアのアップデート中に実行されるアップデート関係プログラムを格納するための第１の記憶領域Ｍ２と、ファームウェアのアップデート中には実行されないアップデート無関係プログラムを格納するための第２の記憶領域とＭ３、を少なくとも有する記憶部１３０を備え、アップデート用のプログラムを受信すると、（ｂ）第１の記憶領域Ｍ２に格納されているアップデート関係プログラムを、第２の記憶領域Ｍ３に上書きし、（ｃ）受信したアップデート関係プログラムを、第１の記憶領域Ｍ２に格納し、（ｄ）受信したアップデート無関係プログラムを、第２の記憶領域Ｍ３に格納する。【選択図】図４
2011059989.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアによって制御される電子機器であって、
ファームウェアのアップデート中に実行されるアップデート関係プログラムを格納する
ための第１の記憶領域と、ファームウェアのアップデート中には実行されないアップデー
ト無関係プログラムを格納するための第２の記憶領域と、を少なくとも有する記憶部と、
アップデート関係プログラムおよびアップデート無関係プログラムの少なくともいずれ
かを含むアップデート用プログラムを受信する受信部と、
前記アップデート関係プログラムに従って、前記アップデート用プログラムのアップデ
ートを行うアップデート部と、
当該電子機器を起動する起動部と、を備え、
前記アップデート部は、
前記受信部でアップデート用プログラムを受信すると、アップデートの進行状態を示す
フラグを初期値から第１の値に変更してから、前記第１の記憶領域に格納されているアッ
プデート関係プログラムを、前記第２の記憶領域に上書きする第１段階処理を実行し、
前記第１段階処理を完了すると、前記フラグを第２の値に変更してから、前記受信部で
受信したアップデート用プログラムに含まれているアップデート関係プログラムを、前記
第１の記憶領域に格納する第２段階処理を実行し、
前記第２の段階処理を完了すると、前記フラグを第３の値に変更してから、前記受信部
で受信したアップデート用プログラムに含まれているアップデート無関係プログラムを、
前記第２の記憶領域に格納する第３段階処理を実行し、
前記第３の段階処理を完了すると、前記フラグを前記初期値に戻し、
前記起動部は、
当該電子機器に電源が投入されると、前記フラグの値を判定し、
前記フラグが前記第１の値である場合には、前記第１の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記第２の値である場合には、前記第２の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記第３の値である場合には、前記第１の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記初期値である場合には、アップデート用プログラムのアップデートを
ともなわずに当該電子機器を起動する、
ことを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器であって、
前記アップデート部は、
アップデート関係プログラムの更新が不要の場合には、前記フラグを初期値から第３の
値に変更してから、前記第３段階処理を実行する、
ことを特徴とする電子機器。
【請求項３】
請求項１又は２に記載の電子機器であって、
前記記憶部は、
当該電子機器に接続された情報処理装置と通信するための通信プログラム、及び、当該
電子機器の状態について表示するための表示プログラム、の少なくともいずれかを含むア
ップデート関係プログラムを前記第１の記憶領域に格納する、
ことを特徴とする電子機器。
【請求項４】
請求項１乃至３のいずれか１項に記載の電子機器であって、
前記記憶部は、
当該電子機器における印刷を制御するための印刷制御プログラム、を少なくとも含むア
ップデート無関係プログラムを前記第２の記憶領域に格納する、
ことを特徴とする電子機器。
【請求項５】
請求項１乃至４のいずれか１項に記載の電子機器であって、
プリンター、又は、複合機として機能する、
ことを特徴とする電子機器。
【請求項６】
電子機器を制御するファームウェアのアップデート方法であって、
前記電子機器は、
ファームウェアのアップデート中に実行されるアップデート関係プログラムを格納する
ための第１の記憶領域と、ファームウェアのアップデート中には実行されないアップデー
ト無関係プログラムを格納するための第２の記憶領域と、を少なくとも有する記憶部を備
えており、
アップデート関係プログラムおよびアップデート無関係プログラムの少なくともいずれ
かを含むアップデート用プログラムを受信する受信ステップと、
前記アップデート関係プログラムに従って、前記アップデート用プログラムのアップデ
ートを行うアップデートステップと、
当該電子機器を起動する起動ステップと、を行い、
前記アップデートステップでは、
前記受信ステップでアップデート用プログラムを受信すると、アップデートの進行状態
を示すフラグを初期値から第１の値に変更してから、前記第１の記憶領域に格納されてい
るアップデート関係プログラムを、前記第２の記憶領域に上書きする第１段階処理を実行
し、
前記第１段階処理を完了すると、前記フラグを第２の値に変更してから、前記受信部で
受信したアップデート用プログラムに含まれているアップデート関係プログラムを、前記
第１の記憶領域に格納する第２段階処理を実行し、
前記第２の段階処理を完了すると、前記フラグを第３の値に変更してから、前記受信部
で受信したアップデート用プログラムに含まれているアップデート無関係プログラムを、
前記第２の記憶領域に格納する第３段階処理を実行し、
前記第３の段階処理を完了すると、前記フラグを前記初期値に戻し、
前記起動ステップでは、
当該電子機器に電源が投入されると、前記フラグの値を判定し、
前記フラグが前記第１の値である場合には、前記第１の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記第２の値である場合には、前記第２の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記第３の値である場合には、前記第１の記憶領域からアップデート関係
プログラムを読み出して、アップデート用プログラムのアップデートをともなって当該電
子機器を起動し、
前記フラグが前記初期値である場合には、アップデート用プログラムのアップデートを
ともなわずに当該電子機器を起動する、
ことを特徴とするアップデート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、および、アップデート方法に関する。
【背景技術】
【０００２】
印刷装置の中には、接続されている情報処理装置（ＰＣ等）から、ファームウェアを取
得してアップデートできるものがある（特許文献１）。このような機能を有する印刷装置
では、ユーザーによる、ファームウェアのアップデートに関する煩雑な作業が軽減される
。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−０５１８４４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ファームウェアのアップデート中に印刷装置の電源が切断される等して、ファ
ームウェアのアップデートに失敗すると、ファームウェアのアップデートに必要なプログ
ラムそのものを損失してしまう場合がある。このような場合には、ファームウェアのアッ
プデートができなくなる。
【０００５】
本発明は、ファームウェアのアップデートに失敗しても、簡易な方法によって、ファー
ムウェアのアップデートを再実施可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本願発明は、ファームウェアによって制御される電子機器で
あって、ファームウェアのアップデート中に実行されるアップデート関係プログラムを格
納するための第１の記憶領域と、ファームウェアのアップデート中には実行されないアッ
プデート無関係プログラムを格納するための第２の記憶領域と、を少なくとも有する記憶
部と、アップデート関係プログラムおよびアップデート無関係プログラムの少なくともい
ずれかを含むアップデート用プログラムを受信する受信部と、前記アップデート関係プロ
グラムに従って、前記アップデート用プログラムのアップデートを行うアップデート部と
、当該電子機器を起動する起動部と、を備え、前記アップデート部は、前記受信部でアッ
プデート用プログラムを受信すると、アップデートの進行状態を示すフラグを初期値から
第１の値に変更してから、前記第１の記憶領域に格納されているアップデート関係プログ
ラムを、前記第２の記憶領域に上書きする第１段階処理を実行し、前記第１段階処理を完
了すると、前記フラグを第２の値に変更してから、前記受信部で受信したアップデート用
プログラムに含まれているアップデート関係プログラムを、前記第１の記憶領域に格納す
る第２段階処理を実行し、前記第２の段階処理を完了すると、前記フラグを第３の値に変
更してから、前記受信部で受信したアップデート用プログラムに含まれているアップデー
ト無関係プログラムを、前記第２の記憶領域に格納する第３段階処理を実行し、前記第３
の段階処理を完了すると、前記フラグを前記初期値に戻し、前記起動部は、当該電子機器
に電源が投入されると、前記フラグの値を判定し、前記フラグが前記第１の値である場合
には、前記第１の記憶領域からアップデート関係プログラムを読み出して、アップデート
用プログラムのアップデートをともなって当該電子機器を起動し、前記フラグが前記第２
の値である場合には、前記第２の記憶領域からアップデート関係プログラムを読み出して
、アップデート用プログラムのアップデートをともなって当該電子機器を起動し、前記フ
ラグが前記第３の値である場合には、前記第１の記憶領域からアップデート関係プログラ
ムを読み出して、アップデート用プログラムのアップデートをともなって当該電子機器を
起動し、前記フラグが前記初期値である場合には、アップデート用プログラムのアップデ
ートをともなわずに当該電子機器を起動する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る印刷装置の概略構成図である。
【図２】ファームウェアの更新プログラムを格納する記憶装置（ＲＯＭ）の割り当て領域を示す図である。
【図３】印刷装置におけるアップデート処理を説明するためのフローチャートである。
【図４】アップデート処理中の記憶装置（ＲＯＭ）の状態を示す図である。（ａ）は初期状態を示す。（ｂ）はＡ１のバックアップ中の状態を示す。（ｃ）はＢ１の更新中の状態を示す。（ｄ）はＢ２の更新中の状態を示す。
【図５】印刷装置における電源投入後の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態の一例を図面を参照して説明する。
【０００９】
図１は、本発明の実施形態が適用された印刷装置１００の概略構成図を示す。
【００１０】
印刷装置１００は、例えば、プリンターである。印刷装置１００は、インストールされ
ているファームウェアによって制御され、一般的な印刷処理を実行する。また、印刷装置
１００は、ＵＳＢケーブルを介して接続される情報処理装置(ＰＣ)２００や、ネットワー
クを介して接続される情報処理装置（ＰＣ）２００から、ファームウェアのアップデート
用のプログラム（以下では「更新プログラム」とよぶ）を取得し、その時点でインストー
ルされているファームウェアの更新プログラムをアップデートする。なお、更新プログラ
ムには、更新プログラム自体をアップデートするプログラムも含まれている。
【００１１】
情報処置装置２００は、不図示の、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Ran
dom Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスク（ＨＤＤ）、ディ
スプレイ、入力装置、通信インターフェイス、などを有する一般的なコンピューターであ
る。情報処理装置２００は、印刷装置１００に対応する最新の更新プログラムをＨＤＤに
格納している。情報処理装置２００は、ＨＤＤに格納されている更新プログラムが更新さ
れると、印刷装置１００に対して、更新された更新プログラムを送信する。なお、情報処
理装置２００は、印刷装置１００からの要求に応じて、ＨＤＤに格納されている更新プロ
グラムを印刷装置１００に送信するようにしてもよい。これらの処理は、ＣＰＵが、ＨＤ
Ｄに格納された所定のアプリケーションプログラムやドライバープログラムを、ＲＡＭに
ロードして実行することにより実現される。もちろん、情報処理装置２００の構成は上記
に限られない。
【００１２】
印刷装置１００についてより詳細に説明する。
【００１３】
印刷装置１００は、図示するように、ＣＰＵ１１０と、ＲＡＭ１２０と、ＲＯＭ１３０
と、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）１
４０と、操作パネル１５０と、ＵＳＢインターフェイス（Ｉ／Ｆ）１６０と、ＤＭＡ（Di
rect Memory Access）コントローラー１７０と、ネットワークインターフェイス（Ｉ／Ｆ
）１８０と、印刷エンジン１９０と、を備える。
【００１４】
ＣＰＵ１１０は、他のユニットを制御して印刷装置１００の各種機能を実現する演算装
置である。ＣＰＵ１１０は、ＲＯＭ１３０などのメモリーに格納された所定のプログラム
をＲＡＭ１２０にロードして実行することにより各種機能を実現する。
【００１５】
ＣＰＵ１１０は、例えば、情報処理装置２００から更新プログラムを取得（受信）する
と、ＲＯＭ１３０に格納されている更新プログラムをアップデートする（以下では、「ア
ップデート処理」とよぶ）。また、ＣＰＵ１１０は、印刷エンジン１９０を制御して印刷
を実行する。
【００１６】
ＲＡＭ１２０は、各種プログラム、データなどを一時的に格納し、ＣＰＵ１１０による
演算時のワークメモリとして使用される。例えば、ＲＡＭ１２０は、情報処理装置２００
から取得した更新プログラムを一時的に格納する。
【００１７】
ＲＯＭ１３０は、ＦｌａｓｈＲＯＭ等の書き換え可能な記憶媒体であり、各種プログラ
ムを格納する。具体的には、ＲＯＭ１３０は、ファームウェアの更新プログラムなどを格
納する。
【００１８】
図２は、ＲＯＭ１３０の割り当て領域を示す図である。図示するように、ＲＯＭ１３０
は、起動部エリアＭ１と、アップデート関係エリアＭ２と、アップデート無関係エリアＭ
３と、を有する。
【００１９】
起動部エリアＭ１は、印刷装置１００を起動するためのプログラムを格納するために割
り当てられている記憶領域である。例えば、起動部エリアＭ１には、図示するように、Ｉ
ＰＬ（Initial Program Loader）１４１が格納される。
【００２０】
アップデート関係エリアＭ２は、更新プログラムのアップデート中に実行されるプログ
ラム（以下では「アップデート関係プログラム」とよぶ）を格納するために割り当てられ
ている記憶領域である。例えば、アップデート関係エリアＭ２には、図示するように、通
信部１４２を実現するプログラムと、パネル表示部１４３を実現するプログラムと、アッ
プデート部１４４を実現するプログラムと、が格納される。
【００２１】
ここで、通信部１４２は、ＵＳＢＩ／Ｆ１６０又はネットワークＩ／Ｆ１７０を介して
、情報処理装置２００とデータのやりとりを行う。
【００２２】
また、パネル表示部１４３は、所定の画面を操作パネル１５０に表示する。例えば、パ
ネル表示部１４３は、印刷装置１００の状態（例えば、後述する「アップデート処理」の
進行状態）を示すメッセージを操作パネル１５０に表示する。
【００２３】
アップデート部１４４は、ファームウェアの更新プログラムをアップデートする。例え
ば、アップデート部１４４は、後述する「アップデート処理」を行う。
【００２４】
アップデート無関係エリアＭ３は、更新プログラムのアップデート中には実行されない
プログラム（以下では「アップデート無関係プログラム」とよぶ）を格納するために割り
当てられている記憶領域である。例えば、アップデート無関係エリアＭ３には、図示する
ように、言語解釈部１４５、印刷制御部１４６、が格納される。
【００２５】
ここで、言語解釈部１４５は、情報処理装置２００などから印刷データ（コマンド群を
含む）を受け付けると、受け付けた印刷データについての言語解釈を行う。具体的には、
言語解釈部１４５は、まず、受け付けた印刷データから、情報処理装置２００が生成した
描画データを復元する。そして、言語解釈部１４５は、受け付けたコマンド群に基づき、
描画データに対してフィルタリング等の各種所定の処理を施すことにより印刷エンジン１
９０で印刷可能なイメージデータを生成する。
【００２６】
印刷制御部１４６は、印刷エンジン１９０を制御する。例えば、印刷制御部１４６は、
言語解釈部１４５で生成されたイメージデータを印刷エンジン１９０に送信して印刷させ
る。
【００２７】
なお、上記ユニット１４１〜１４６の機能は、ＣＰＵ１１０が、ＲＯＭ１３０に格納さ
れたプログラム（各ユニット１４１〜１４６）に基づくファームウェアを、ＲＡＭ１２０
にロードして実行することにより実現される。
【００２８】
図１に戻って説明を続ける。ＥＥＰＲＯＭ１４０は、書き換え可能な各種データを格納
する。具体的には、ＥＥＰＲＯＭ１４０は、更新プログラムのアップデートについての進
行状態を示すフラグ（以下では「状態フラグ」とよぶ）を格納する。
【００２９】
操作パネル１４０は、液晶ディスプレイ、タッチパネルなどを備え、メッセージ等を表
示し、ユーザーからの指示を受け付ける。例えば、操作パネル１４０は、印刷装置１００
の状態についてユーザーに通知するためのメッセージを表示する。
【００３０】
ＵＳＢＩ／Ｆ１６０は、ＵＳＢケーブルを介して、接続されている情報処理装置２００
とのデータのやりとり（受信、送信）を制御する。
【００３１】
ＤＭＡコントローラー１７０は、ＲＯＭ１３０、ＥＥＰＲＯＭ１４０、操作パネル１５
０、ＵＳＢＩ／Ｆ１６０、ＤＭＡコントローラー１７０、ネットワークＩ／Ｆ１８０、印
刷エンジン１９０、のそれぞれのユニットとＲＡＭ１２０との間でのデータ転送（ＣＰＵ
１１０を介さない転送）を制御する。
【００３２】
ネットワークＩ／Ｆ１８０は、ネットワークを介して、接続されている情報処理装置２
００とのデータのやりとり（受信、送信）を制御する。
【００３３】
印刷エンジン１９０は、ＣＰＵ１１０からの指示に従って、ＣＰＵ１１０から出力され
た印刷対象のイメージデータを印刷する。
【００３４】
本実施形態が適用された印刷装置１００は、以上のような構成からなる。ただし、印刷
装置１００の構成はこれに限定されない。例えば、印刷装置１００は、印刷を行わない電
子機器であってもよいし、複合機、複写機、スキャナー装置などであってもよい。
【００３５】
また、上記した各構成要素は、印刷装置１００の構成を理解容易にするために、主な処
理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が
制限されることはない。印刷装置１００の構成は、処理内容に応じて、さらに多くの構成
要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するよう
に分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されて
もよいし、複数のハードウェアで実行されてもよい。
【００３６】
次に、上記構成からなる印刷装置１００の特徴的な動作について説明する。図３は、本
実施形態の印刷装置１００が実行するアップデート処理を説明するためのフローチャート
である。
【００３７】
アップデート部１４４は、例えば、情報処理装置２００とのデータ通信の準備が完了す
るタイミングで、本フローを開始する。
【００３８】
本フローを開始すると、アップデート部１４４は、印刷データ、或いは、更新プログラ
ムなどのデータを、情報処理装置２００から受信するまで待機する。
【００３９】
そして、アップデート部１４４は、通信部１４２を介して、情報処理装置２００からデ
ータを受信すると（ステップＳ１０１）、受信したデータをＲＡＭ１２０などのメモリー
に一旦格納し、処理をステップＳ１０２に移行する。
【００４０】
処理がステップＳ１０２に移行すると、アップデート部１４４は、受信したデータの種
別を判定する（ステップＳ１０２）。具体的には、アップデート部１４４は、ステップＳ
１０１で受信したデータのヘッダー等に含まれているデータ種別を特定し、受信したデー
タが印刷データであるのか、更新プログラムであるのか、を判定する。
【００４１】
ステップＳ１０２において、アップデート部１４４は、受信したデータが印刷データで
あると判定した場合には（ステップＳ１０２；印刷データ）、処理をステップＳ１１２に
移行する。
【００４２】
処理がステップＳ１１２に移行すると、言語解釈部１４５や印刷制御部１４６は、受信
した印刷データに基づく印刷処理を実行する（ステップＳ１１２）。具体的には、言語解
釈部１４５は、情報処理装置２００から受信した印刷データに基づくイメージデータを生
成し、印刷制御部１４６に送信する。そして、印刷制御部１４６は、言語解釈部１４５か
らイメージデータを受信すると、受信したイメージデータとともに印刷コマンド（ユーザ
ーに指定されている印刷形式を通知するコマンドなど）を印刷エンジン１９０に送信する
。
【００４３】
印刷処理を実行後、アップデート部１４４は、本フローを終了する。
【００４４】
一方、ステップＳ１０２において、アップデート部１４４は、受信したデータが更新プ
ログラムであると判定した場合には（ステップＳ１０２；更新プログラム）、処理をステ
ップＳ１０３に移行する。
【００４５】
そして、アップデート部１４４は、情報処理装置２００から受信した更新プログラムが
、ＲＯＭ１３０に格納されている更新プログラムよりもバージョンアップされているもの
か否か判定する（ステップＳ１０３）。具体的には、アップデート部１４４は、ステップ
Ｓ１０１で受信した更新プログラムのヘッダー等に含まれているバージョン情報と、ＲＯ
Ｍ１３０に格納されている更新プログラム（例えば、起動部エリアＭ１）に含まれている
バージョン情報と、を比較する。そして、アップデート部１４４は、ステップＳ１０１で
受信した更新プログラムのバージョン情報の方が新しいバージョン（高い値を有するバー
ジョン情報）である場合に、バージョンアップされているものと判定する。
【００４６】
ステップＳ１０３において、アップデート部１４４は、情報処理装置２００から受信し
た更新プログラムがバージョンアップされていないと判定した場合には（ステップＳ１０
３；Ｎｏ）、処理をステップＳ１１３に移行する。
【００４７】
そして、アップデート部１４４は、更新プログラムを削除する（ステップＳ１１３）。
具体的には、アップデート部１４４は、ステップＳ１０１で受信した更新プログラムを、
ＲＡＭ１２０などのメモリーから削除する。
【００４８】
その後、アップデート部１４４は、本フローを終了する。
【００４９】
一方、ステップＳ１０３において、アップデート部１４４は、情報処理装置２００から
受信した更新プログラムがバージョンアップされていると判定した場合には（ステップＳ
１０３；Ｙｅｓ）、処理をステップＳ１０４に移行する。
【００５０】
そして、アップデート部１４４は、アップデート関係エリアＭ２の更新が必要か否か判
定する（ステップＳ１０４）。具体的には、アップデート部１４４は、ステップＳ１０１
で受信した更新プログラムに、アップデート関係プログラム（通信部１４２、パネル表示
部１４３、アップデート部１４４）が含まれている場合には、アップデート関係エリアＭ
２の更新が必要と判定する。一方、アップデート部１４４は、ステップＳ１０１で受信し
た更新プログラムに、アップデート関係プログラムが含まれていない場合には、アップデ
ート関係エリアＭ２の更新は必要ないと判定する。なお、アップデート部１４４は、ステ
ップＳ１０１で受信した更新プログラムに、アップデート関係プログラムが含まれている
場合であっても、そのアップデート関係プログラムがバージョンアップされていない等の
理由によりアップデート関係エリアＭ２の更新が必要ない場合には、アップデート関係エ
リアＭ２の更新は必要ないと判定してもよい。
【００５１】
ステップＳ１０４において、アップデート部１４４は、アップデート関係エリアＭ２の
更新が必要であると判定した場合には（ステップＳ１０４；Ｙｅｓ）、処理をステップＳ
１０５に移行する。
【００５２】
そして、アップデート部１４４は、ＥＥＰＲＯＭ１４０に格納されている状態フラグを
初期値「００」から第１の値「０１」に変更する（ステップＳ１０５）。
【００５３】
ここで、図４は、アップデート処理中のＲＯＭ１３０の状態を示す図である。図４（ａ
）は初期状態を示す。図４（ｂ）はＡ１のバックアップ中の状態を示す。図４（ｃ）はＢ
１の更新中の状態を示す。図４（ｄ）はＢ２の更新中の状態を示す。
【００５４】
図４（ａ）に示すように、ステップＳ１０５において、アップデート部１４４は、状態
フラグを初期値「００」から第１の値「０１」に変更し、処理をステップＳ１０６に移行
する。
【００５５】
そして、アップデート部１４４は、アップデート関係エリアＭ２に格納されているデー
タ（アップデート関係プログラムＡ１）のバックアップをとる（ステップＳ１０６）。具
体的には、図４（ｂ）に示すように、アップデート部１４４は、ＲＯＭ１３０のアップデ
ート関係エリアＭ２に格納されているアップデート関係プログラムＡ１を、アップデート
無関係エリアＭ３に書き込む。このとき、アップデート無関係エリアＭ３に格納されてい
たアップデート無関係プログラム（言語解釈部１４５、印刷制御部１４６）Ａ２は、アッ
プデート関係プログラムＡ１で上書きされることになる。
【００５６】
アップデート部１４４は、ステップＳ１０６の処理（バックアップ）を完了すると、図
４（ｂ）に示すように、状態フラグを第１の値「０１」から第２の値「１０」に変更し（
ステップＳ１０７）、処理をステップＳ１０８に移行する。
【００５７】
そして、アップデート部１４４は、アップデート関係エリアＭ２を更新する（ステップ
Ｓ１０８）。具体的には、アップデート部１４４は、ステップＳ１０１で受信した更新プ
ログラムに含まれているアップデート関係プログラムＢ１をＲＡＭ１２０から読み出し、
アップデート関係エリアＭ２に書き込む。ここでの処理により、アップデート関係エリア
Ｍ２のアップデート関係プログラムは更新される（Ａ１からＢ１に更新される）。
【００５８】
アップデート部１４４は、ステップＳ１０８の処理（アップデート関係エリアＭ２の更
新）を完了すると、処理をステップＳ１０９に移行する。
【００５９】
処理がステップＳ１０９に移行すると、アップデート部１４４は、図４（ｃ）に示すよ
うに、状態フラグを第２の値「１０」から第３の値「１１」に変更し（ステップＳ１０９
）、処理をステップＳ１１０に移行する。
【００６０】
そして、アップデート部１４４は、アップデート無関係エリアＭ３を更新する（ステッ
プＳ１１０）。具体的には、アップデート部１４４は、ステップＳ１０１で受信した更新
プログラムに含まれているアップデート無関係プログラムＢ２をＲＡＭ１２０から読み出
し、アップデート無関係エリアＭ３に書き込む。ここでの処理により、アップデート無関
係エリアＭ３のアップデート無関係プログラムは更新される（Ａ２からＢ２に更新される
）。
【００６１】
なお、ステップＳ１０１で受信した更新プログラムにアップデート無関係プログラムＢ
２が含まれていない場合には、アップデート部１４４は、ステップＳ１１０で、情報処理
装置２００からアップデート無関係プログラムＢ２を取得し、アップデート無関係エリア
Ｍ３を更新する。また、情報処理装置２００にアップデート無関係プログラムＢ２が存在
しない場合には、バージョンアップしていないアップデート無関係プログラムＡ２を情報
処理装置２００から取得し、アップデート無関係エリアＭ３に格納するようにしてもよい
。
【００６２】
アップデート部１４４は、ステップＳ１１０の処理（アップデート無関係エリアＭ３の
更新）を完了すると、図４（ｄ）に示すように、状態フラグを第３の値「１１」から初期
値「００」に戻し（ステップＳ１１１）、本フローを終了する。
【００６３】
上記のステップＳ１０４〜Ｓ１１１を実行することにより、更新プログラムのアップデ
ートが正常に完了した場合に限り、アップデート部１４４は、状態フラグを初期値「００
」として本フローを終了できる。また、更新プログラムのアップデート中に印刷装置１０
０の電源が切断される等して、更新プログラムのアップデートに失敗した場合には、アッ
プデート部１４４は、状態フラグを初期値ではない値（第１の値、第２の値、第３の値）
のまま、本フローを終了することになる。
【００６４】
ところで、ステップＳ１０４において、アップデート部１４４は、アップデート関係エ
リアＭ２の更新は必要ない（アップデート無関係エリアＭ３のみ更新の必要がある）と判
定した場合には（ステップＳ１０４；Ｎｏ）、ステップＳ１０５〜Ｓ１０８の処理を省略
して、処理をステップＳ１０９に移行する。このように不要な処理を省くことにより、ア
ップデート処理を高速に実行することができる。なお、この場合のＲＯＭ１３０の状態は
、図４（ａ）の状態から図４（ｄ）の状態に遷移する（図４の点線）。
【００６５】
以上のアップデート処理を印刷装置１００で行うことにより、更新プログラムのアップ
デート中に印刷装置１００の電源が切断される等して、更新プログラムのアップデートに
失敗したとしても、更新プログラムのアップデートに必要なプログラム（アップデート関
係プログラム）を損失してしまうことはない。また、アップデート関係プログラムのバッ
クアップをアップデート無関係エリアＭ３にとるため、バックアップに使用する記憶領域
（ＲＯＭ１３０）の容量を抑えることができ、印刷装置１００の製造コストも抑えられる
。
【００６６】
図５は、本実施形態の印刷装置１００が実行する電源投入後の処理を説明するためのフ
ローチャートである。
【００６７】
ＩＰＬ１４１は、例えば、印刷装置１００に電源が投入されるタイミングで、本フロー
を開始する。
【００６８】
本フローを開始すると、ＩＰＬ１４１は、状態フラグを参照する（ステップＳ２０１）
。具体的には、ＩＰＬ１４１は、ＥＥＰＲＯＭ１４０に格納されている状態フラグを読み
出す。そして、状態フラグの値が、初期値「００」、第１の値「０１」、第２の値「１０
」、第３の値「１１」のいずれの値であるか判定する。
【００６９】
ステップＳ２０１において、ＩＰＬ１４１は、状態フラグが初期値「００」であると判
定した場合には（ステップＳ２０１：「００」）、処理をステップＳ２０２に移行する。
【００７０】
この場合、ＩＰＬ１４１は、通常の起動処理（アップデート処理を伴わない起動処理）
を実行する（ステップＳ２０２）。具体的には、ＩＰＬ１４１は、通常の起動処理を行う
ための所定のプログラムを、起動部エリアＭ１からＲＡＭ１２０に展開し、実行する。
【００７１】
起動後、ＩＰＬ１４１は、本フローを終了する。
【００７２】
また、ステップＳ２０１において、ＩＰＬ１４１は、状態フラグが第１の値「０１」で
あると判定した場合には（ステップＳ２０１：「０１」）、アップデートモードで起動処
理（アップデート処理を伴う起動処理）を実行するために、処理をステップＳ２０３に移
行する。
【００７３】
ここで、状態フラグが第１の値「０１」である場合には、上記ステップＳ１０６の処理
中に、アップデート処理が中止されたことになる。そのため、正常なアップデート関係プ
ログラムＡ１は、図４（ｂ）に示す、ＲＯＭ１３０のアップデート関係エリアＭ２に格納
されている。
【００７４】
そこで、ＩＰＬ１４１は、ＲＯＭ１３０のアップデート関係エリアＭ２から、アップデ
ート関係プログラムＡ１をＲＡＭ１２０に展開する（ステップＳ２０３）。
【００７５】
また、ステップＳ２０１において、ＩＰＬ１４１は、状態フラグが第２の値「１０」で
あると判定した場合には（ステップＳ２０１：「１０」）、アップデートモードで起動処
理（アップデート処理を伴う起動処理）を実行するために、処理をステップＳ２０４に移
行する。
【００７６】
ここで、状態フラグが第２の値「１０」である場合には、上記ステップＳ１０８の処理
中に、アップデート処理が中止されたことになる。そのため、正常なアップデート関係プ
ログラムＡ１は、図４（ｃ）に示す、ＲＯＭ１３０のアップデート関係エリアＭ２に格納
されている。
【００７７】
そこで、ＩＰＬ１４１は、ＲＯＭ１３０のアップデート無関係エリアＭ３から、アップ
デート関係プログラムＡ１をＲＡＭ１２０に展開する（ステップＳ２０４）。
【００７８】
また、ステップＳ２０１において、ＩＰＬ１４１は、状態フラグが第３の値「１１」で
あると判定した場合には（ステップＳ２０１：「１１」）、アップデートモードで起動処
理（アップデート処理を伴う起動処理）を実行するために、処理をステップＳ２０５に移
行する。
【００７９】
ここで、状態フラグが第３の値「１１」である場合には、上記ステップＳ１１０の処理
中に、アップデート処理が中止されたことになる。そのため、正常なアップデート関係プ
ログラムＢ１（ステップＳ１０４からステップＳ１０９に移行した場合にはＡ１）は、図
４（ｄ）に示す、ＲＯＭ１３０のアップデート関係エリアＭ２に格納されている。
【００８０】
そこで、ＩＰＬ１４１は、ＲＯＭ１３０のアップデート関係エリアＭ２から、アップデ
ート関係プログラムＢ１（或いはＡ１）をＲＡＭ１２０に展開する（ステップＳ２０４）
。
【００８１】
ステップＳ２０３、Ｓ２０４、Ｓ２０５のいずれかの処理後、ＩＰＬ１４１は、アップ
デートモードで起動処理（アップデート処理を伴う起動処理）を実行する（ステップＳ２
０６）。具体的には、ＩＰＬ１４１は、アップデートモードで起動処理（アップデート部
１４４を読み出す処理）を行うための所定のプログラムを、起動部エリアＭ１からＲＡＭ
１２０に展開し、実行する。
【００８２】
そして、アップデート部１４４は、ＲＡＭ１２０に展開されたアップデート関係プログ
ラムＢ１（或いはＡ１）に従って、図３で説明したアップデート処理を行う（ステップＳ
２０７）。
【００８３】
こうすることにより、印刷装置１００は、情報処理装置２００から更新プログラムを取
得し直すことができる。
【００８４】
ステップＳ２０７のアップデート処理が正常に終了すると、ＩＰＬ１４１は、本フロー
を終了する。
【００８５】
以上の電源投入後の処理を印刷装置１００で行うことにより、更新プログラムのアップ
デート中に印刷装置１００の電源が切断されても、電源を再投入すれば、何度でも更新プ
ログラムを取得し直すことができる。
【００８６】
なお、上記したフローの各処理単位は、印刷装置１００を理解容易にするために、主な
処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、
本願発明が制限されることはない。印刷装置１００が行う処理は、さらに多くの処理ステ
ップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行し
てもよい。
【００８７】
なお、本発明は、上記の実施形態に限定されず、種々の変形、応用が可能である
【００８８】
例えば、上記実施形態では、ファームウェアの更新プログラムを格納する記憶装置をＲ
ＯＭ１３０としている。しかし、本発明は、これに限定されない。ファームウェアの更新
プログラムを格納する記憶装置は、書込み、消去ができる不揮発性メモリーであればよい
。
【符号の説明】
【００８９】
５０・・・メモリーカード、１００・・・印刷装置、１１０・・・ＣＰＵ、１２０・・
・ＲＡＭ、１３０・・・ＲＯＭ、１４０・・・ＥＥＰＲＯＭ、１４１・・・ＩＰＬ、１４
２・・・通信部、１４３・・・アップデート部、１４４・・・言語解釈部、１４５・・・
印刷制御部、１５０・・・操作パネル、１６０・・・ＵＳＢインターフェイス、１７０・
・・ＤＭＡコントローラー、１８０・・・ネットワークインターフェイス、１９０・・・
印刷エンジン
【図１】
2011059989.tif 000003
【図２】
2011059989.tif 000004
【図３】
2011059989.tif 000005
【図４】
2011059989.tif 000006
【図５】
2011059989.tif 000007