(57)【特許請求の範囲】
【請求項１】
記録媒体に画像を形成する画像形成手段を備えた画像形成装置であって、
当該画像形成装置を制御する制御手段が実行するソフトウェアを保存するソフトウェア保存手段と、
前記制御手段に前記ソフトウェアのアップデートを実行させるアップデート用ソフトウェアと前記制御手段に前記ソフトウェアのアップデートに失敗した場合に当該画像形成装置を前記アップデートが可能な状態に復帰させる復帰処理を実行させる復帰用ソフトウェアとを含むアップデートソフトウェアを受信する受信手段と、
前記アップデート用ソフトウェアを保存するアップデート用ソフトウェア保存手段と、
前記復帰用ソフトウェアを保存する復帰用ソフトウェア保存手段と、
前記復帰用ソフトウェアのバックアップ用の復帰用ソフトウェアバックアップ保存手段と、
前記受信手段によって受信した前記アップデートソフトウェアの前記アップデート用ソフトウェアと前記復帰用ソフトウェアとを判別する判別手段と、
前記判別手段によって判別された前記アップデート用ソフトウェアを前記アップデート用ソフトウェア保存手段に保存し、前記判別手段によって判別された前記復帰用ソフトウェアを前記復帰用ソフトウェア保存手段と前記復帰用ソフトウェアバックアップ保存手段にそれぞれ保存する保存制御手段とを有することを特徴とする画像形成装置。
【請求項２】
前記制御手段は、前記復帰用ソフトウェア保存手段に保存されている前記復帰用ソフトウェアを実行する場合、該復帰用ソフトウェアの不整合の有無を検知する手段と、該手段によって前記復帰用ソフトウェア保存手段の前記復帰用ソフトウェアに不整合が有ることを検知した場合、前記復帰用ソフトウェアバックアップ保存手段に保存されている前記復帰用ソフトウェアの実行に切り替える切替手段とを有することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記制御手段は、前記復帰用ソフトウェア保存手段に保存されている前記復帰用ソフトウェアに不整合が有ることを検知した場合、前記復帰用ソフトウェアバックアップ保存手段に保存されている前記復帰用ソフトウェアの不整合の有無を検知する手段と、該手段によって前記復帰用ソフトウェアバックアップ保存手段の前記復帰用ソフトウェアに不整合がないことを検知した場合、前記復帰用ソフトウェア保存手段に保存されている前記復帰用ソフトウェアを前記復帰用ソフトウェアバックアップ保存手段に保存されている前記復帰用ソフトウェアに書き替える書替手段とを有することを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記制御手段は、前記アップデート用ソフトウェア保存手段に保存されている前記アップデート用ソフトウェアを実行する場合、該アップデート用ソフトウェアの不整合の有無を検知する手段と、該手段によって前記アップデート用ソフトウェア保存手段の前記アップデート用ソフトウェアに不整合が有ることを検知した場合、前記復帰用ソフトウェア保存手段又は前記復帰用ソフトウェアバックアップ保存手段に保存されている前記復帰用ソフトウェアを実行し、当該画像形成装置の外部から再度アップデート用ソフトウェアを取得する手段を有することを特徴とする請求項１乃至３のいずれか一項に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファクシミリ装置、プリンタ、複写装置、並びにそれらの機能を備えた複合機を含む画像形成装置に関する。
【背景技術】
【０００２】
ファクシミリ装置、プリンタ、複写装置、並びにそれらの機能を備えた複合機を含む画像形成装置では、装置を動かすためのファームウェアと呼ばれるプログラムを実行して各種の処理や制御の動作をする。
上記ファームウェアは、装置の不具合や機能拡張のためにアップデートすることが可能となっている場合が多い。ファームウェアのアップデートには、プログラム内容の更新、プログラム内容の改善、プログラム内容の修正、プログラム内容の機能追加等がある。
【０００３】
従来、ファームウェアのアップデートの際、不揮発性メモリに保存されたファームウエアを更新するための第２のファームウエアに対応する更新データをブロック毎に順次転送し、その転送されたブロックから得られるデータと、その得られたデータを書き込むべき不揮発性メモリ上の領域のデータとが異なる場合、上記不揮発性メモリ上の領域を上記得られたデータによって書き換える装置（例えば、特許文献１参照）があった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の装置では、ファームウェアのアップデートを行う際に電源断などの要因によりアップデートが完了できなかった場合、ファームウェアに不整合が生じ、装置が起動しないという問題があった。
この問題に対して、ホストコンピュータからファームウェアを受信する際に、２箇所の記憶領域に同じファームウェアを交互に書き込むことにより、いずれか一方は正常なファームウェアであるようにする方法や、ファームウェアの更新のみ実施可能な復帰用ファームウェアを独立させ、アップデートに失敗した場合でも復帰用ファームウェアを起動させ、再度ファームウェアのアップデートを可能な状態にする方法がある。
【０００５】
しかし、ファームウェアを二重に記録する方法はファームウェアを保存する領域がファームウェア単体と比べて二倍必要になるという問題があり、復帰用ファームウェアを用意する場合は通常動作用のファームウェアを別途作成する必要があるという新たな問題があった。
この発明は上記の点に鑑みてなされたものであり、プログラムのアップデートの際に要するメモリ容量を削減できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明は上記の目的を達成するため、記録媒体に画像を形成する画像形成手段を備えた画像形成装置であって、当該画像形成装置を制御する制御手段が実行するソフトウェアを保存するソフトウェア保存手段と、上記制御手段に上記ソフトウェアのアップデートを実行させるアップデート用ソフトウェアと上記制御手段に上記ソフトウェアのアップデートに失敗した場合に当該画像形成装置を上記アップデートが可能な状態に復帰させる復帰処理を実行させる復帰用ソフトウェアとを含むアップデートソフトウェアを受信する受信手段と、上記アップデート用ソフトウェアを保存するアップデート用ソフトウェア保存手段と、上記復帰用ソフトウェアを保存する復帰用ソフトウェア保存手段と、上記復帰用ソフトウェアのバックアップ用の復帰用ソフトウェアバックアップ保存手段と、上記受信手段によって受信した上記アップデートソフトウェアの上記アップデート用ソフトウェアと上記復帰用ソフトウェアとを判別する判別手段と、上記判別手段によって判別された上記アップデート用ソフトウェアを上記アップデート用ソフトウェア保存手段に保存し、上記判別手段によって判別された上記復帰用ソフトウェアを上記復帰用ソフトウェア保存手段と上記復帰用ソフトウェアバックアップ保存手段にそれぞれ保存する保存制御手段を有する画像形成装置を提供する。
【発明の効果】
【０００７】
この発明による画像形成装置は、プログラムのアップデートの際に要するメモリ容量を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の一実施形態であるプリンタの機能構成を示すブロック図である。
【図２】図１に示したＲＯＭ及び内部記憶部のフォーマット例を示す説明図である。
【図３】図１に示したプリンタにおけるアップデートソフトウェア受信時のアップデート処理を示すフローチャート図である。
【図４】アップデートソフトウェアのフォーマット例を示す説明図である。
【図５】図４に示したアップデートソフトウェアのアップデート用ソフトウェア及び復帰用ソフトウェアのそれぞれのオフセット位置とデータサイズの一例を示す図である。
【図６】図１に示したプリンタにおけるアップデートに失敗した場合の処理を示すフローチャート図である。
【図７】図４に示したアップデートソフトウェアのアップデート用ソフトウェア及び復帰用ソフトウェアのそれぞれのアドレスとデータサイズの一例を示す図である。
【図８】図１に示したプリンタにおけるアップデートに失敗した場合の他の処理例を示すフローチャート図である。
【発明を実施するための形態】
【０００９】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
図１は、この発明の一実施形態であるプリンタの機能構成を示すブロック図である。
このプリンタ１は、インクジェット方式のプリンタ、電子写真方式のプリンタ等の画像形成装置であり、コントローラ部２、ＲＯＭ３、ＲＡＭ４、プロッタエンジン部５、操作パネル６、ユーザ通知部７、ホストインタフェース（ＩＦ）部８、内部記憶部９、及び外部記憶部インタフェース（ＩＦ）部１０を備えている。
【００１０】
コントローラ部２は、ＣＰＵによって実現され、ＲＡＭ４を作業領域としてＲＯＭ３又は内部記憶部９に記憶されたファームウェアを実行することにより、このプリンタ１の３〜１０の各部を含む全体の制御を司り、アップデート処理部２０とブート（ｂｏｏｔ）処理部２２の各機能も実現する。すなわち、このコントローラ部２は、このプリンタ１（当該画像形成装置）を制御する制御手段の機能を果たす。
また、上記アップデート処理部２０はアップデートデータ判別処理部２１の機能を有し、上記ブート処理部２２は起動切り替え処理部２３とリカバリ処理部２４の各機能も有する。
上記２０〜２４の各部の詳細については後述する。
【００１１】
プロッタエンジン部５は、コントローラ部２から受け取った画像データに基いて用紙等の記録媒体に印刷する。すなわち、記録媒体に画像を形成する画像生成手段の機能を果たす。
操作パネル６は、ユーザがプリンタ１に対して各種の操作情報を入力する入力装置であり、ユーザから入力された操作情報をコントローラ部２へ送る。
ユーザ通知部７は、コントローラ部２から受け取った表示データに基いてユーザにプリンタ１における各種の作業情報を表示する表示装置である。
【００１２】
ホストＩＦ部８は、このプリンタ１とケーブルで直接に通信可能に接続、又はローカルエリアネットワークやインターネット等のネットワークを介して通信可能に接続された情報処理装置であるホストコンピュータ１１との通信制御を司る。
このホストコンピュータ１１は、ＣＰＵ、ＲＯＭ及びＲＡＭからなるマイクロコンピュータによって実現され、プリンタ１に対して画像データの印刷を要求し、ファームウェアのアップデートのためのアップデートソフトウェアを送信する。
【００１３】
内部記憶部９は、ハードディスクドライブ（ＨＤＤ）、ＥＥＰＲＯＭ、ＮＶＲＡＭ等のプリンタ１の本体に対して脱着不可で、コントローラ部２が読み書き可能な不揮発性の記憶手段であり、コントローラ部２が実行するファームウェア、そのファームウェアをアップデートするアップデートソフトウェアを含む各種のプログラムを記憶する。
上記アップデートソフトウェアは、コントローラ部２に上記ファームウェアのアップデートを実行させるアップデート用ソフトウェアと、コントローラ部２に上記ファームウェアのアップデートに失敗した場合にプリンタ１を上記アップデートが可能な状態に復帰させる復帰処理を実行させる復帰用ソフトウェアとを含んでいる。
【００１４】
また、上記ＲＯＭ３と上記内部記憶部９は、プリンタ１を制御する制御手段であるコントローラ部２が実行するソフトウェアであるファームウェアを保存するソフトウェア保存手段の機能を果たす。
さらに、上記ＲＯＭ３と上記内部記憶部９は、上記アップデート用ソフトウェアを保存するアップデート用ソフトウェア保存手段と、上記復帰用ソフトウェアを保存する復帰用ソフトウェア保存手段と、上記復帰用ソフトウェアのバックアップ用の復帰用ソフトウェアバックアップ保存手段の各手段の機能も果たす。
【００１５】
外部記憶部ＩＦ部１０は、コントローラ部２と外部記憶部１２とのデータのやり取りの通信制御を司る。
外部記憶部１２は、ＩＣ−カード（Ｃａｒｄ）装置、ＵＳＢメモリとＳＤカード装置等のフラッシュメモリ等のプリンタ１の本体に対して脱着可能で、コントローラ部２が外部記憶部ＩＦ部１０を介して読み書き可能な不揮発性の記憶手段であり、ファームウェアのアップデートソフトウェアを含む各種のプログラムやデータを記憶する。
上記ホストＩＦ部８と上記外部記憶部ＩＦ部１０は、アップデートソフトウェアを受信する受信手段の機能を果たす。
【００１６】
上記コントローラ部２のアップデート処理部２０は、上記ＲＯＭ３又は上記内部記憶部９のファームウェアをアップデートソフトウェアによってアップデートする処理を実行する。
上記アップデートデータ判別処理部２１は、アップデートソフトウェア内のアップデート用ソフトウェアと復帰用ソフトウェアとを判別する処理を実行する。すなわち、上記ホストＩＦ部８又は上記外部記憶部ＩＦ部１０によって受信したアップデートソフトウェアのアップデート用ソフトウェアと復帰用ソフトウェアとを判別する判別手段の機能を果たす。
【００１７】
そして、コントローラ部２は、アップデートソフトウェアを受信した場合、上記アップデートデータ判別処理部２１の判別結果に基いて、アップデートソフトウェアのアップデート用ソフトウェアと復帰用ソフトウェアをそれぞれ分けて上記ＲＯＭ３又は上記内部記憶部９に記憶する処理を実行する。すなわち、上記アップデートデータ判別処理部２１によって判別されたアップデート用ソフトウェアを上記アップデート用ソフトウェア保存手段に保存し、上記復帰用ソフトウェアを上記復帰用ソフトウェア保存手段と上記復帰用ソフトウェアバックアップ保存手段にそれぞれ保存する保存制御手段の機能を果たす。
【００１８】
上記ブート処理部２２は、アップデート時以外の起動時には上記ＲＯＭ３又は上記内部記憶部９に保存されているファームウェアに不整合が有るか否かをチェックし、不整合がない場合はＲＡＭ４に展開して実行し、不整合が有った場合は、復帰用ソフトウェアを起動する処理を実行する。その際、上記復帰用ソフトウェア保存手段に保存されている復帰用ソフトウェアを実行する場合、その復帰用ソフトウェアの不整合の有無を検知する。
【００１９】
また、上記ブート処理部２２は、上記復帰用ソフトウェア保存手段に保存されている復帰用ソフトウェアに不整合が有ることを検知した場合、上記復帰用ソフトウェアバックアップ保存手段に保存されている復帰用ソフトウェアの不整合の有無を検知する。
さらに、上記ブート処理部２２は、上記アップデート用ソフトウェア保存手段に保存されているアップデート用ソフトウェアを実行する場合、そのアップデート用ソフトウェアの不整合の有無を検知する。
【００２０】
上記起動切り替え処理部２３は、上記ブート処理部２２が上記復帰用ソフトウェア保存手段の復帰用ソフトウェアに不整合が有ることを検知した場合、上記復帰用ソフトウェアバックアップ保存手段に保存されている復帰用ソフトウェアの実行に切り替える。また、上記復帰用ソフトウェアバックアップ保存手段の復帰用ソフトウェアに不整合が有ることを検知した場合、上記復帰用ソフトウェア保存手段に保存されている復帰用ソフトウェアの実行に切り替える。すなわち、切替手段の機能を果たす。
【００２１】
上記リカバリ処理部２４は、上記ブート処理部２２が上記復帰用ソフトウェアバックアップ保存手段の復帰用ソフトウェアに不整合がないことを検知した場合、上記復帰用ソフトウェア保存手段に保存されている復帰用ソフトウェアを上記復帰用ソフトウェアバックアップ保存手段に保存されている復帰用ソフトウェアに書き替える。また、上記復帰用ソフトウェア保存手段の復帰用ソフトウェアに不整合がないことを検知した場合、上記復帰用ソフトウェアバックアップ保存手段に保存されている復帰用ソフトウェアを上記復帰用ソフトウェア保存手段に保存されている復帰用ソフトウェアに書き替える。すなわち、書替手段の機能を果たす。
【００２２】
また、上記リカバリ処理部２４は、上記ブート処理部２２が上記アップデート用ソフトウェア保存手段のアップデート用ソフトウェアに不整合が有ることを検知した場合、上記復帰用ソフトウェア保存手段又は上記復帰用ソフトウェアバックアップ保存手段に保存されている復帰用ソフトウェアを実行し、プリンタ１の外部であるホストコンピュータ１１又は外部記憶部１２から再度アップデート用ソフトウェアを取得する。
【００２３】
次に、上記プリンタ１の上記ＲＯＭ３及び上記内部記憶部９における上記ファームウェア、上記アップデート用ソフトウェア及び上記復帰用ソフトウェアの記憶領域について図２によって説明する。
図２は、図１に示したＲＯＭ３及び内部記憶部９のフォーマット例を示す説明図である。
上記ＲＯＭ３及び上記内部記憶部９は、ファームウェアを保存するファームウェア保存領域部３０と、アップデート用ソフトウェアを保存するアップデート用ソフトウェア保存領域部３１と、復帰用ソフトウェアを保存する復帰用ソフトウェア保存領域部３２と、バックアップ用として復帰用ソフトウェアを別に保存する復帰用ソフトウェアバックアップ保存領域部３３とを備えている。
【００２４】
このように、外部から受信したアップデートソフトウェアのアップデート用ソフトウェアと復帰用ソフトウェアをそれぞれ分けて異なる領域に保存し、復帰用ソフトウェアについてはバックアップ用にさらに異なる領域に保存する。すなわち、復帰用ソフトウェアについてはアップデートに失敗した場合でもプリンタ１を確実に起動できるように復帰用ソフトウェアを二重に記憶する。
また、二重に保存するのは、復帰用ソフトウェアのみなので、プログラムのアップデートの際に要するメモリ容量を削減することができる。
【００２５】
次に、プリンタ１におけるアップデートソフトウェア受信時のアップデート処理について図３乃至図５によって説明する。
図３は、図１に示したプリンタ１におけるアップデートソフトウェア受信時のアップデート処理を示すフローチャート図である。
図４は、アップデートソフトウェアのフォーマット例を示す説明図である。
図５は、図４に示したアップデートソフトウェアのアップデート用ソフトウェア及び復帰用ソフトウェアのそれぞれのオフセット位置とデータサイズの一例を示す図である。
【００２６】
この処理では、アップデートソフトウェアを図１の内部記憶部９に保存する場合を説明する。
図１のコントローラ部２は、ホストＩＦ部８によってホストコンピュータ１１からアップデートソフトウェアを受信した場合、又はプリンタ１に外部記憶部１２が装着され、外部記憶部ＩＦ部１０を介して外部記憶部１２内にアップデートソフトウェアが保存されていることを検知し、外部記憶部ＩＦ部１０を介してアップデートソフトウェアを読み出した場合、例えば、ＲＡＭ４に一端保存してアップデート処理部２０にアップデート処理を実行させる。
【００２７】
ステップ（図３中「Ｓ」で示す）１で、アップデートデータ判別処理部２１が、アップデートソフトウェアのヘッダデータを読み込み、ステップ２で、ヘッダデータからアップデート用ソフトウェアと復帰用ソフトウェアのオフセット位置とデータサイズを取得して、ステップ３で、アップデート用ソフトウェアと復帰用ソフトウェアを判別する。
例えば、アップデートソフトウェアの構成が、図４に示すフォーマットの場合に、上記取得したオフセット位置とデータサイズとからアップデートソフトウェア中のアップデート用ソフトウェアと復帰用ソフトウェアを判別する処理例を説明する。
【００２８】
図４に示すように、アップデートソフトウェア全体の容量におけるオフセット位置「０ｘ００００」〜「０ｘ０ＦＦＦ」がヘッダデータ、オフセット位置「０ｘ１０００」〜「０ｘ２ＦＦＦ」が復帰用ソフトウェア、オフセット位置「０ｘ３０００」〜「０ｘ６０００」がアップデート用ソフトウェアからなる場合で説明する。
【００２９】
ヘッダデータには、図５に示す復帰用ソフトウェアとアップデート用ソフトウェアのそれぞれのオフセット位置とデータサイズが格納されているので、アップデータデータ判別処理部２１は、ヘッダデータを参照することにより、復帰用ソフトウェアのオフセット位置「０ｘ１０００」とデータサイズ「０ｘ２０００」と、アップデート用ソフトウェアのオフセット位置「０ｘ３０００」とデータサイズ「０ｘ３０００」を取得し、アップデート用ソフトウェアと復帰用ソフトウェアを容易に判別することができる。
【００３０】
次に、ステップ４で、アップデート処理部２０が、アップデートデータ判別処理部２１の判別結果に基いて復帰用ソフトウェアを読み込み、復帰用ソフトウェアの読み込み完了か否かを判断し、復帰用ソフトウェアの読み込み完了でなければ（「Ｎ」の場合）、ステップ５で、アップデート処理部２０は、復帰用ソフトウェアを読み込み、ステップ６で、内部記憶部９の図２に示した復帰用ソフトウェア保存領域部３２に復帰用ソフトウェアを書き込み、ステップ４へ戻る。
そして、ステップ４の判断で復帰用ソフトウェアの読み込み完了なら（「Ｙ」の場合）ステップ７へ進む。
【００３１】
次に、ステップ７で、アップデート処理部２０が、アップデートデータ判別処理部２１の判別結果に基いてアップデート用ソフトウェアを読み込み、アップデート用ソフトウェアの読み込み完了か否かを判断し、アップデート用ソフトウェアの読み込み完了でなければ（「Ｎ」の場合）、ステップ８で、アップデート処理部２０は、アップデート用ソフトウェアを読み込み、ステップ９で、内部記憶部９の図２に示したアップデート用ソフトウェア保存領域部３１にアップデート用ソフトウェアを書き込み、ステップ７へ戻る。
そして、ステップ７の判断でアップデート用ソフトウェアの読み込み完了なら（「Ｙ」の場合）ステップ１０へ進む。
【００３２】
ステップ１０では、アップデート処理部２０が、図２の復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアを復帰用ソフトウェアバックアップ保存領域部３３にも書き込み、この処理を終了する。
この処理後、アップデート処理部２０は、内部記憶部９のアップデート用ソフトウェア保存領域部３１に保存されたアップデート用ソフトウェアを実行し、図２のファームウェア保存領域部３０に保存されているファームウェアをアップデートする。
【００３３】
このように、ファームウェアをアップデートする場合、アップデート用ソフトウェアと復帰用ソフトウェアをそれぞれ分けて異なる領域に保存し、復帰用ソフトウェアについてはバックアップ用にさらに異なる領域に保存することにより、アップデートに失敗した場合でも復帰用ソフトウェアを実行してプリンタ１を起動させることができる。
また、復帰用ソフトウェアについては二重に記憶するので、一方が起動できない場合でももう一方を起動させてプリンタ１を確実に起動させることができる。
【００３４】
なお、上述の処理では、内部記憶部９に、復帰用ソフトウェア、アップデート用ソフトウェア、及び復帰用ソフトウェアのバックアップの順で書き込む場合を説明したが、この順に限らず、アップデート用ソフトウェア、復帰用ソフトウェア、及び復帰用ソフトウェアのバックアップの順で書き込むようにしても良いし、復帰用ソフトウェア、復帰用ソフトウェアのバックアップ、及びアップデート用ソフトウェアの順で書き込むようにしても良い。
【００３５】
次に、プリンタ１におけるアップデートに失敗した場合の処理について図６及び図７によって説明する。
図６は、図１に示したプリンタ１におけるアップデートに失敗した場合の処理を示すフローチャート図である。
図７は、図４に示したアップデートソフトウェアのアップデート用ソフトウェア及び復帰用ソフトウェアのそれぞれのアドレスとデータサイズの一例を示す図である。
【００３６】
図６に示した処理は、図１のブート処理部２２、起動切り替え処理部２３、及びリカバリ処理部２４がそれぞれ担当する各ステップ（図６中「Ｓ」で示す）の処理を実行する。
なお、後述する各ステップの処理について、図６の各ステップ中では一部を省略して記載している。
ステップ２１では、図１のブート処理部２２が、起動時のブート処理時に、チェックサムなどの方法で内部記憶部９に保存されているファームウェア（上記アップデート後のファームウェア）の不整合をチェックして、不整合有りを検知すると（この不整合有りの検知でアップデートの失敗と判断する）、ステップ２２へ進む。
ステップ２２では、ブート処理部２２が、図２の復帰用ソフトウェア保存領域部３２に保存されている復帰用ソフトウェアを実行する場合、復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ２５へ進み、検知した場合（「Ｙ」の場合）はステップ２３へ進む。
【００３７】
次に、ステップ２３では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェアバックアップ保存領域部３３に切り替え、さらに、リカバリ処理部２４が、復帰用ソフトウェアバックアップ保存領域部３３から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行し、ステップ２４では、復帰処理でプリンタ１が起動すると、リカバリ処理部２４が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、この処理を終了する。
この処理でアップデートが成功すると、プリンタ１は通常の起動処理となり、プリンタ１の全ての機能が実行可能になる。
【００３８】
一方、ステップ２５では、ブート処理部２２が、図２のアップデート用ソフトウェア保存領域部３１に保存されているアップデート用ソフトウェアを実行する場合、アップデート用ソフトウェア保存領域部３１のアップデート用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ２７へ進み、検知した場合（「Ｙ」の場合）はステップ２６へ進む。
【００３９】
ステップ２６では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェアバックアップ保存領域部３３に切り替え、リカバリ処理部２４が、復帰用ソフトウェアバックアップ保存領域部３３から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行し、プリンタ１の外部（ホストコンピュータ１１又は外部記憶部１２）から再度アップデート用ソフトウェアを取得する処理を実行し、この処理を終了する。
上記再度アップデート用ソフトウェアを取得する処理では、復帰アップデートモードと呼ばれるファームウェアのアップデートデータの受信を待ち、アップデート処理のみを行うことができる。
【００４０】
また、ステップ２７では、ブート処理部２２が、図２の復帰用ソフトウェアバックアップ保存領域部３３に保存されている復帰用ソフトウェアを実行する場合、復帰用ソフトウェアバックアップ保存領域部３３の復帰用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ３０へ進み、検知した場合（「Ｙ」の場合）はステップ２８へ進む。
【００４１】
ステップ２８では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェア保存領域部３２に切り替え、リカバリ処理部２４が、復帰用ソフトウェア保存領域部３２から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行する。その後、ステップ２９では、復帰処理でプリンタ１が起動すると、リカバリ処理部２４が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、この処理を終了する。
この処理でアップデートが成功すると、プリンタ１は通常の起動処理となり、プリンタ１の全ての機能が実行可能になる。
【００４２】
さらに、ステップ３０では、ブート処理部２２が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、この処理を終了する。
上記復帰用ソフトウェア（バックアップ用も含む）と上記アップデート用ソフトウェアの不整合の有無のチェック方法は、図７に示した復帰用ソフトウェア保存領域部と復帰用ソフトウェアバックアップ保存領域部とアップデート用ソフトウェア保存領域部のそれぞれに保存された復帰用ソフトウェアとアップデート用ソフトウェアのアドレス及びデータサイズに基いて公知技術によって判断すると良い。その詳細な説明は省略する。
【００４３】
次に、プリンタ１におけるアップデートに失敗した場合の他の処理例について図８によって説明する。
図８は、図１に示したプリンタ１におけるアップデートに失敗した場合の処理を示すフローチャート図である。
図８に示した処理は、図１のブート処理部２２、起動切り替え処理部２３、及びリカバリ処理部２４がそれぞれ担当する各ステップ（図８中「Ｓ」で示す）の処理を実行する。
なお、後述する各ステップの処理について、図８の各ステップ中では一部を省略して記載している。
ステップ４１では、図１のブート処理部２２が、起動時のブート処理時に、チェックサムなどの方法で内部記憶部９に保存されているファームウェア（上記アップデート後のファームウェア）の不整合をチェックして、不整合有りを検知すると、ステップ４２へ進む。
【００４４】
ステップ４２では、ブート処理部２２が、図２の復帰用ソフトウェア保存領域部３２に保存されている復帰用ソフトウェアを実行する場合、復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ４６へ進み、検知した場合（「Ｙ」の場合）はステップ４３へ進む。
【００４５】
ステップ４３では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェアバックアップ保存領域部３３に切り替え、リカバリ処理部２４が、復帰用ソフトウェアバックアップ保存領域部３３から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行する。その後、ステップ４４では、復帰処理でプリンタ１が起動すると、リカバリ処理部２４が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、ステップ４５へ進む。
【００４６】
ステップ４５では、リカバリ処理部２４が、復帰用ソフトウェアバックアップ保存領域部３３の復帰用ソフトウェアを復帰用ソフトウェア保存領域部３２に上書きし、この処理を終了する。
このようにして、復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアに不具合があった場合、復帰用ソフトウェアバックアップ保存領域部３３の復帰用ソフトウェアによって自動的に正しい内容の復帰用ソフトウェアにすることができる。
この処理でアップデートが成功すると、プリンタ１は通常の起動処理となり、プリンタ１の全ての機能が実行可能になる。
【００４７】
一方、ステップ４６では、ブート処理部２２が、図２のアップデート用ソフトウェア保存領域部３１に保存されているアップデート用ソフトウェアを実行する場合、アップデート用ソフトウェア保存領域部３１のアップデート用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ４８へ進み、検知した場合（「Ｙ」の場合）はステップ４７へ進む。
【００４８】
次に、ステップ４７では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェアバックアップ保存領域部３３に切り替え、リカバリ処理部２４が、復帰用ソフトウェアバックアップ保存領域部３３から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行し、プリンタ１の外部（ホストコンピュータ１１又は外部記憶部１２）から再度アップデート用ソフトウェアを取得する処理を実行し、この処理を終了する。
【００４９】
また、ステップ４８では、ブート処理部２２が、図２の復帰用ソフトウェアバックアップ保存領域部３３に保存されている復帰用ソフトウェアを実行する場合、復帰用ソフトウェアバックアップ保存領域部３３の復帰用ソフトウェアの不整合を検知したか否かを判断し、検知しなかった場合（「Ｎ」の場合）はステップ５２へ進み、検知した場合（「Ｙ」の場合）はステップ４９へ進む。
【００５０】
ステップ４９では、起動切り替え処理部２３が、復帰用ソフトウェアの読み込み先を図２の復帰用ソフトウェア保存領域部３２に切り替え、リカバリ処理部２４が、復帰用ソフトウェア保存領域部３２から復帰用ソフトウェアを読み出し、図１のＲＡＭ４に展開して復帰処理を実行する。その後、ステップ５０では、復帰処理でプリンタ１が起動すると、リカバリ処理部２４が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、ステップ５１へ進む。
【００５１】
ステップ５１では、リカバリ処理部２４が、復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアを復帰用ソフトウェアバックアップ保存領域部３３に上書きし、この処理を終了する。
このようにして、復帰用ソフトウェアバックアップ保存領域部３３の復帰用ソフトウェアに不具合があった場合、復帰用ソフトウェア保存領域部３２の復帰用ソフトウェアによって自動的に正しい内容の復帰用ソフトウェアにすることができる。
【００５２】
この処理でアップデートが成功すると、プリンタ１は通常の起動処理となり、プリンタ１の全ての機能が実行可能になる。
さらに、ステップ５２では、ブート処理部２２が、図２のアップデート用ソフトウェア保存領域部３１からアップデート用ソフトウェアを読み出し、図１のＲＡＭ４に展開してアップデート処理を実行し、この処理を終了する。
このようにして、図１のリカバリ処理部２４は不整合が生じた方の復帰用ソフトウェアを正常な復帰用ソフトウェアによって上書きして自動的に訂正することができる。
【００５３】
なお、上述の処理では、アップデートソフトウェアを上記内部記憶部９に保存する場合を説明したが、上記ＲＯＭ３に保存する場合も上述と同様の処理で実施することができる。
また、アップデートソフトウェアのアップデート用ソフトウェアと復帰用ソフトウェアをＲＯＭ３と内部記憶部９の異なる記憶媒体上に分けて記憶するようにしてもよい。
例えば、復帰用ソフトウェアをＲＯＭ３と内部記憶部９にそれぞれ記憶するようにすれば、記憶媒体の不具合で一方が読み出せなくなった場合でも、もう一方から読み出して復帰処理を実行することができる。
【００５４】
この実施例のプリンタ１によれば、二重に保存するのは、復帰用ソフトウェアのみなので、プログラムのアップデートの際に要するメモリ容量を削減することができる。
また、アップデートに失敗した場合にプリンタ１の起動と再度アップデートするための専用のソフトウェアを作成してプリンタ１に取得させる必要がなく、バックアップ時の復旧が確実にできる。
さらに、アップデートに失敗した時のみに使用する復帰アップデート用プログラムを作成しなくて済み、ソフトウェアの開発の負担を低減することができる。
さらにまた、アップデートに失敗した時のみに使用する復帰アップデート用プログラムをファームウェアアップデート用データに組み込まなくてもよいので、アップデートソフトウェアの容量を削減することができる。
【００５５】
この実施形態の各ソフトウェアは、コンピュータに各種デバイスを制御させ、上述したプリンタ１の印刷機能を実現させるためのプログラムとして構成することができる。
このようなプログラムは、予めプリンタ１のメモリに記憶させておく他、記録媒体であるＣＤ、あるいはフレキシブルディスク、ＳＲＡＭ、ＥＥＰＲＯＭ、メモリカード等の不揮発性記録媒体に記録したり、ネットワークを介してダウンロードできるようにしたりして提供することもできる。そして、そのプログラムをインストールしてＣＰＵに実行させるか、ＣＰＵにメモリあるいはダウンロードサーバからこのプログラムを取得させて実行させることにより、上述した実施形態のプリンタ１の各機能を実現させることができる。
また、以上説明してきた実施形態の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【００５６】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成、処理の内容、データの形式等は、実施形態で説明したものに限るものではない。
また、上述の実施形態では、この発明をプリンタに適用した例について説明した。
しかし、この発明は、画像形成機能を備えたものならばファクシミリ装置、複写装置、並びに複合機等の任意の画像形成装置に適用可能である。
【符号の説明】
【００５７】
１：プリンタ              ２：コントローラ部    ３：ＲＯＭ      ４：ＲＡＭ
５：プロッタエンジン部    ６：操作パネル    ７：ユーザ通知部    ８：ホストＩＦ部
９：内部記憶部    １０：外部記憶部ＩＦ部    １１：ホストコンピュータ
１２：外部記憶部      ２０：アップデート処理部
２１：アップデートデータ判別処理部    ２２：ブート処理部
２３：起動切り替え処理部    ２４：リカバリ処理部
３０：ファームウェア保存領域部        ３１：アップデート用ソフトウェア保存領域部
３２：復帰用ソフトウェア保存領域部
３３：復帰用ソフトウェアバックアップ保存領域部
【先行技術文献】
【特許文献】
【００５８】
【特許文献１】特開２００７−２５７１１９号公報
【図１】
0005803598.tif 000002
【図２】
0005803598.tif 000003
【図３】
0005803598.tif 000004
【図４】
0005803598.tif 000005
【図５】
0005803598.tif 000006
【図６】
0005803598.tif 000007
【図７】
0005803598.tif 000008
【図８】
0005803598.tif 000009