(57)【要約】【課題】ＯＳ起動プログラムのアップデートが失敗したときも装置を復旧して再度アップデートを可能とする。【解決手段】本発明の画像形成装置は、プログラムの書き換えが失敗したと判断した場合、ＣＰＵ１００が、バッテリ１０７により状態が保持されたＣＥ切り替え部１０５により、ＳＲＡＭ１０２からリカバリープログラムを起動し、ＨＤＤ１０８に待避したＦＲＯＭデータをＦＲＯＭ１０１へ書き戻し、再びプログラムのアップデートを行う準備を行う。【選択図】図２
2005078336.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと通信回線を介して接続される画像形成装置において、
上記画像形成装置を動作させる第１のプログラムを格納している第１の記憶手段と、
データを格納している第２の記憶手段と、
上記第１の記憶手段に格納されている第１のプログラムを第２のプログラムに書き換える際、上記ホストコンピュータから送信される第２のプログラムとリカバリープログラムとを格納する第３の記憶手段と、
この第３の記憶手段に格納されたリカバリープログラムを上記第２の記憶手段に格納し、上記第２の記憶手段に先に格納されているデータを上記第３の記憶手段に格納する制御を行う第１の制御手段と、
上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段にも格納する制御を行う第２の制御手段と、
上記第１、第２の制御手段による制御が終了した際、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段に格納されている第２のプログラムに書き換える書換手段と、
この書換手段による書き換えが成功したか否かを判断する判断手段と、
この判断手段で書き換えが成功しなかったと判断された際、上記第２の記憶手段に格納されているリカバリープログラムを起動し、上記第３の記憶手段に格納されている第１のプログラムとデータとを用いて元の状態に復旧させる制御を行う第３の制御手段と、
を具備したことを特徴とする画像形成装置。
【請求項２】
上記第１の記憶手段に格納されている第１のプログラム及び第２のプログラムは、ブートプログラムであることを特徴とする請求項１記載の画像形成装置。
【請求項３】
上記第２の記憶手段は、上記画像形成装置の電源断の際にも格納内容が保持されていることを特徴とする請求項１記載の画像形成装置。
【請求項４】
上記第３の制御手段は、上記複数の記憶手段を選択する選択手段を用いて制御することを特徴とする請求項１記載の画像形成装置。
【請求項５】
ホストコンピュータと通信回線を介して接続される画像形成装置にあって、当該画像形成装置を動作させる第１のプログラムを格納している第１の記憶手段と、データを格納している第２の記憶手段と、上記第１の記憶手段に格納されている第１のプログラムを第２のプログラムに書き換える際、上記ホストコンピュータから送信される第２のプログラムとリカバリープログラムとを格納する第３の記憶手段とを有する画像形成装置のプログラム書換方法であって、
上記第３の記憶手段に格納されたリカバリープログラムを上記第２の記憶手段に格納し、上記第２の記憶手段に先に格納されているデータを上記第３の記憶手段に格納し、
上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段にも格納し、
上記第２の記憶手段に上記リカバリープログラムが格納され、上記第３の記憶手段に上記第１のプログラムと上記データとが格納された際、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段に格納されている第２のプログラムに書き換え、
この書き換えが成功したか否かを判断し、
この書き換えが成功しなかったと判断された際、上記第２の記憶手段に格納されているリカバリープログラムを起動し、上記第３の記憶手段に格納されている第１のプログラムとデータとを用いて元の状態に復旧させる制御を行うようにしたことを特徴とする画像形成装置のプログラム書換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークを利用して遠隔操作などが行われるデジタル複写機等の画像形成装置と画像形成装置のプログラム書換方法に関する。
【背景技術】
【０００２】
従来、機器組み込みシステムにおいて、自動的にシステムのアップデートを行え、しかもシステムをフリーズさせることのないプログラム更新装置に関する発明が提案されている（例えば、特許文献１）。
【０００３】
以下、内容を説明する。
【０００４】
リモートプログラム更新方式を実行するためのシステムは、機器制卸器等の機器に組み込まれている。このようなシステムは、例えば、マイクロプロセッサ（ＣＰＵ）、パワーオンリセット回路、ウォッチドックタイマ、ブートステータスレジスタ、ブートプログラムＲＯＭ、第１、第２のプログラムＲＯＭ、ＲＡＭ、入出力部（Ｉ／Ｏ）、ネットワークインターフェイス、メモリカード等によって構成され、これらがバスラインを介して接続されている。
【０００５】
ブートプログラムＲＯＭは、最小限のブートプログラム領域である。第１、第２のプログラムＲＯＭは、２重化されたプログラム格納領域である。ブートプログラムＲＯＭ及び第１、第２のプログラムＲＯＭは、同一メモリの領域を分割したものであってもよい。
【０００６】
ここで、ＯＳ上でアプリケーションプログラムの動作例を説明する。システム起動時に働くブートプログラム、システム全体を制御するＯＳ、機器の利用目的を実行する実行アプリケーション、必要最小限の修復機能を持った修復アプリケーションによって構成される。この中で、アップデート対象部分はＯＳと実行アプリケーションである。
【０００７】
一方、上記アップデート対象部分をアップデートするためのアップデート実行部は、新しいＯＳと以前からのＯＳのうちいずれのＯＳを起動させるかを決める起動ＯＳ決定部、どのアプリケーションプログラムを起動させるかを決定する起動アプリケーション決定部、起動したアプリケーションの動作を監視するアプリケーション動作監視部とを備えている。
【０００８】
このようなシステムによるリモートプログラム更新を説明する。
【０００９】
プログラム更新方式は、大まかにはダウンロードステップ、新起動ステップ、復旧起動ステップとからなる。そして、システムのアップデートが開始した際、システムに新動作プログラム（アップデートされた動作プログラム）がダウンロードされ、システム内のプログフム動作用とは別領域にある記憶装置空き領域（例えば、複数のＲＯＭ領域において、旧動作プログラムが稼動中でないＲＯＭ領域）に新動作プログラムを転送して書き込みを行う。
【００１０】
新動作プログラムがダウンロードされて転送と書き込みが終了した際、ダウンロードの時点で動作していた旧プログラムに代えてダウンロードした新動作プログラムが起動される。そして、新動作プログラムが正常に動作したか否かが判定され、新動作プログラムが正常に起動していたら正常解決機能によってアップデートが完了したと判断され、アップデート作業が完了される。
【００１１】
これに対して、新動作プログラムが正常に起動していないと判断された場合には、復旧挑戦機能および確実復旧機能を内容とするシステム復旧動作が行われてシステムが再起動されてフリーズが復旧され（復旧起動ステップ）、アップデート作業が完了される。このとき、新動作プログラムにアップデートされている場合と確実に動作させるために旧動作プログラムに戻っている場合とがある。旧動作プログラムのまま動作する場合には、プログラム更新装置の外部に通信回線又は表示等によって通知し、次の新動作プログラムのアップデート作業を待つことになる。
【００１２】
しかしながら、このような組み込みシステムにおいては、機器の起動時間短縮のため、ＯＳが起動する前の段階、つまり、ブートプログラムの中で機器制御の一部を行う場合がある。そのため、起動部分の制御を変更したい場合、どうしてもブートプログラムをアップデートする必要がある。しかし、上述した従来技術では、ＯＳよりも上位の部分しかアップデート失敗時のリカバリーができないでいた。また、上述した従来技術では、新旧プログラムを記憶するための記憶装置を用意する必要があり、必要以上の容量の記憶装置が必要となりその分コストが高くなる。
【００１３】
近年、上述したようなシステムが組み込まれ、ネットワークを利用して遠隔操作などが行われるデジタル複写機等の画像形成装置が提供されている。
【００１４】
このようなデジタル複写機において、ＯＳ起動プログラム（ブートプログラム）をアップデート（メモリへの書き込み）中、ネットワークの切断、停電などによりアップデートが失敗してしまった場合、そのデジタル複写機は起動しなくなってしまう。このような場合、起動用プログラムが書き込まれた治具を利用してＯＳを起動し、治具から複写機本体のプログラムをアップデートしなければならなかった。
【特許文献１】特開２００２−３３３９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記したように、ネットワークを利用して遠隔操作などが行われるデジタル複写機等の画像形成装置において、ＯＳ起動プログラム（ブートプログラム）をアップデート中、ネットワークの切断、停電などによりアップデートが失敗してしまった場合、その画像形成装置が起動しなくなってしまうという問題があった。
【００１６】
この発明の目的は、ＯＳ起動プログラム（ブートプログラム）のアップデートが失敗したときも装置を復旧して再度アップデートが可能となる画像形成装置と画像形成装置のプログラム書換方法を提供することである。
【課題を解決するための手段】
【００１７】
この発明の画像形成装置は、ホストコンピュータと通信回線を介して接続される画像形成装置において、上記画像形成装置を動作させる第１のプログラムを格納している第１の記憶手段と、データを格納している第２の記憶手段と、上記第１の記憶手段に格納されている第１のプログラムを第２のプログラムに書き換える際、上記ホストコンピュータから送信される第２のプログラムとリカバリープログラムとを格納する第３の記憶手段と、この第３の記憶手段に格納されたリカバリープログラムを上記第２の記憶手段に格納し、上記第２の記憶手段に先に格納されているデータを上記第３の記憶手段に格納する制御を行う第１の制御手段と、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段にも格納する制御を行う第２の制御手段と、上記第１、第２の制御手段による制御が終了した際、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段に格納されている第２のプログラムに書き換える書換手段と、この書換手段による書き換えが成功したか否かを判断する判断手段と、この判断手段で書き換えが成功しなかったと判断された際、上記第２の記憶手段に格納されているリカバリープログラムを起動し、上記第３の記憶手段に格納されている第１のプログラムとデータとを用いて元の状態に復旧させる制御を行う第３の制御手段とから構成されている。
【００１８】
また、この発明の画像形成装置のプログラム書換方法は、ホストコンピュータと通信回線を介して接続される画像形成装置にあって、当該画像形成装置を動作させる第１のプログラムを格納している第１の記憶手段と、データを格納している第２の記憶手段と、上記第１の記憶手段に格納されている第１のプログラムを第２のプログラムに書き換える際、上記ホストコンピュータから送信される第２のプログラムとリカバリープログラムとを格納する第３の記憶手段とを有する画像形成装置のプログラム書換方法であって、上記第３の記憶手段に格納されたリカバリープログラムを上記第２の記憶手段に格納し、上記第２の記憶手段に先に格納されているデータを上記第３の記憶手段に格納し、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段にも格納し、上記第２の記憶手段に上記リカバリープログラムが格納され、上記第３の記憶手段に上記第１のプログラムと上記データとが格納された際、上記第１の記憶手段に格納されている第１のプログラムを上記第３の記憶手段に格納されている第２のプログラムに書き換え、この書き換えが成功したか否かを判断し、この書き換えが成功しなかったと判断された際、上記第２の記憶手段に格納されているリカバリープログラムを起動し、上記第３の記憶手段に格納されている第１のプログラムとデータとを用いて元の状態に復旧させる制御を行うようにしたことを特徴とする。
【発明の効果】
【００１９】
本発明の画像形成装置は、通常のＯＳ起動プログラムとリカバリー用起動プログラムとを切り替えてＯＳを起動することにより、アップデートが失敗したときも装置を復旧して再度アップデートが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、この発明の実施の形態について詳細に説明する。
【００２１】
図１は、この発明の画像形成装置に係るデジタル複写機（複合機）の概略構成を示すものである。このデジタル複写機は、スキャナ部１、プリント部２、操作パネル３、及び主制御部４とから構成されている。主制御部４は、スキャナ部１とプリント部２を含む全体の制御を司るＣＰＵ１００、画像データの画像処理を行う画像処理部５、各種データが格納されるハードディスク装置（ＨＤＤ）１０８、外部と接続するネットワークインターフェイス（Ｉ／Ｆ）１０９とを有している。
【００２２】
また、このデジタル複写機は、ネットワークＩ／Ｆ１０９を介してホストコンピュータ１０に接続されている。
【００２３】
図２は、本発明に係る主制御部４の構成を示すものである。ＣＰＵ１００には、制御プログラムが格納されるＦＲＯＭ１０１、ファクシミリの電話帳データを保持するためにバッテリ１０７でバックアップされたＳＲＡＭ１０２、ＦＲＯＭ１０１のプログラムが展開され、実際にプログラムが実行されるＳＤＲＡＭ１０６、及びＨＤＤ１０８とネットワークＩ／Ｆ１０９などが接続されている。
【００２４】
主制御部４には、さらにＳＲＡＭ１０２のＣＥを切り替えるＳＷＩＴＣＨ１０３と、ＳＷＩＴＣＨ１０３の状態を保持するためのフリップフロップ（Ｆ．Ｆ）１０４とにより構成されるＣＥ切り替え部１０５が設けられている。また、このＣＥ切り替え部１０５は、バッテリ１０７でバックアップされている。
【００２５】
図３は、ＣＥ切り替え部１０５の構成例を示すものである。ＳＷＩＴＣＨ１０３は、３ステートバッファを利用して実現することが可能である。ＳＷＩＴＣＨ１０３は、Ｆ．Ｆ１０４からの信号が反転入力される半導体素子Ｂ１、Ｂ３と、Ｆ．Ｆ１０４からの信号がそのまま入力される半導体素子Ｂ２、Ｂ４とを有している。
【００２６】
例えば、Ｆ．Ｆ１０４の出力がローのときは半導体素子Ｂ１、Ｂ３が出力状態となり、半導体素子Ｂ２、Ｂ４はハイインピーダンスとなる。その結果、ＣＥ０はＦＲＯＭ１０１、ＣＥ１はＳＲＡＭ１０２と接続される。逆に、Ｆ．Ｆの出力がハイのときは、半導体素子Ｂ１、Ｂ３がハイインピーダンスとなり、半導体素子Ｂ２、Ｂ４が出力状態となる。その結果、ＣＥ０はＳＲＡＭ１０２、ＣＥ１はＦＲＯＭ１０１と接続される。
【００２７】
本発明では、詳しくは後述するが、デジタル複写機の稼働中にＦＲＯＭ１０１の書き換えが行われるため、書き換え中にＦＲＯＭ１０１へのアクセスが発生しないように注意が必要である。一般に、デジタル複写機の起動後は、ＦＲＯＭ１０１のプログラムがＳＤＲＡＭ１０６上に展開され、その後はＳＤＲＡＭ１０６上のプログラムが動作するため、ＦＲＯＭ１０１にアクセスするのは、システム起動直後のみである。
【００２８】
このため、本デジタル複写機では、稼働中でも、ＦＲＯＭ１０１の内容を書き換えることが可能である。また、常にＦＲＯＭ１０１上のプログラムが実行されるようなシステムにおいても、アップデートプログラムだけは、ＳＤＲＡＭ１０６上に展開し、アップデート中はＳＤＲＡＭ１０６上で動作し、ＦＲＯＭ１０１ヘアクセスしないように制御すれば、デジタル複写機の稼働中においても、ＦＲＯＭ１０１の内容を書き換えることは可能である。
【００２９】
次に、ブートプログラムのアップデートの方法を説明する。
【００３０】
プログラムのアップデートは、ターゲットが定期的にホストのプログラムをチェックして、更新されていれば、これをダウンロードしてプログラムを書き換えてもよいし、逆に、ホストコンピュータがターゲットに接続し（ある意味、ターゲットがホスト的な役割となり、接続待ち状態にあるものとする）、最新プログラムの転送を行ってもよい。
【００３１】
このように、ホストコンピュータから転送されたプログラムは、直接、ＦＲＯＭ１０１に書き込む方法、ＳＤＲＡＭ１０６又はＨＤＤ１０８に一時的に保存されたものをＦＲＯＭ１０１に書き込む方法などがあるが、いずれの方法でもよい。
【００３２】
ここでは、ＨＤＤ１０８に一時的に保存された場合に関して説明を行う。
【００３３】
このような構成において、ブートプログラムのアップデート動作を図４のフローチャートを参照して説明する。ここでは、プログラムをＨＤＤ１０８に一時的に保存した後の処理を示す。すなわち、開始時点では、図５に示すように、最新プログラムとリカバリープログラムがＨＤＤ１０８に保存された状態になっている。
【００３４】
まず、ＣＰＵ１００は、ＳＲＡＭ１０２のデータ、ＦＲＯＭ１０１のデータ（アップデートする前の古いプログラム）をＨＤＤ１０８へコピーする（Ｓ１）。
【００３５】
続いて、ＣＰＵ１００は、ＨＤＤ１０８に一時的に保存されたリカバリープログラムをＳＲＡＭ１０２ヘコピーする（Ｓ２）。
【００３６】
そこで、ＣＰＵ１００は、ローカルバス（Local Bus）アクセスにより、Ｆ．Ｆ１０４の出力をハイにラッチし、ＳＷＩＴＣＨ１０３を介してＣＥ０をＳＲＡＭ１０２と接続する（Ｓ３）。このとき、同時にＣＥ１がＦＲＯＭ１０１と接続される。
【００３７】
上述したステップＳ１〜３でブートプログラムアップデートの準備が完了したことになり、これ以降にリブートが行われた場合、ＳＲＡＭ１０２のプログラムが起動することとなる。
【００３８】
図６は、ステップＳ１〜Ｓ３の処理が完了した状態を示すものである。
【００３９】
ここで、ＣＰＵ１００は、ＦＲＯＭ１０１の書き換えを開始する（Ｓ４）。
【００４０】
図７は、ステップＳ４の書き換えの状態を示すものである。
【００４１】
そして、ＣＰＵ１００は、書き換えが成功したか否かを判断する（Ｓ５）。この判断の方法には何通りかある。１つ目は、ＨＤＤ１０８上にある最新プログラムのバイナリデータをＦＲＯＭ１０１に書き込んだデータと比較させる方法がある。２つ目は、ＦＲＯＭ１０１にライトコマンドを実行させた後、予めそのコマンドが成功したか否かを検出する機能をＦＲＯＭ１０１に用意して、これを用いる方法がある。ＦＲＯＭ１０１への書き換え失敗の原因としては、ＦＲＯＭ１０１自体に故障があり、消去はできても書き込みができない場合、ＦＲＯＭ１０１の書き換え回数が限界値（通常１０万回程度）を超えた場合などが考えられる。また、その他のＦＲＯＭ１０１への書き換え失敗の原因としては、書き込み中の停電、ユーザによる電源断などが発生した場合なども考えられる。
【００４２】
ステップＳ５で書き換えが失敗したと判断した場合、ＣＰＵ１００は、システムの再起動を行う（Ｓ６）。この際、電源断による書き換え失敗の場合は、手動による電源再投入となる。
【００４３】
デジタル複写機の再起動時、ＣＰＵ１００は、バッテリ１０７により状態が保持されたＣＥ切り替え部１０５により、ＣＥ０がＳＲＡＭ１０２と接続されているので、ＳＲＡＭ１０２からリカバリープログラムを起動する（Ｓ７）。
【００４４】
ＣＰＵ１００は、ステップＳ１でＨＤＤ１０８に待避したＦＲＯＭデータをＦＲＯＭ１０１へ書き戻す作業を行う（Ｓ８）。このとき、ＣＰＵ１００は、ステップＳ５と同様の手段により、データの書き戻しが成功したか否かを判断する（Ｓ９）。ステップＳ９で再び書き戻しに失敗した場合、ＣＰＵ１００は、ＦＲＯＭ１０１の故障等が考えられるため、操作パネル３にサービスマンコールを表示し（Ｓ１０）、処理を終了する。
【００４５】
ステップＳ９で書き戻しが成功した場合は、ステップＳ５で書き換え失敗となった原因がＦＲＯＭ１０１の故障ではなかったことになるので、再びプログラムのアップデートを行う準備を行う。
【００４６】
そこで、ＣＰＵ１００は、ＨＤＤ１０８に待避したＳＲＡＭデータをＳＲＡＭ１０２へ書き戻し（Ｓ１１）、ローカルバスアクセスにより、ＣＥ０を再びＦＲＯＭ１０１と接続する（Ｓ１２）。
【００４７】
これにより、図８に示すようにプログラムアップデート直前の状態が再現される。
【００４８】
そこで、ＣＰＵ１００は、システムを再起動し（Ｓ１３）、プログラムのアップデートをステップＳ１からやり直す。
【００４９】
上述したステップＳ８〜Ｓ１３までがリカバリープログラムの制御内容となる。
【００５０】
また、ステップＳ５で書き換えが成功したと判断した場合、ＣＰＵ１００は、ＨＤＤ１０８に待避したＳＲＡＭデータをＳＲＡＭ１０２へ書き戻し（Ｓ１４）、ＣＥ０をＦＲＯＭ１０１と接続し（Ｓ１５）、処理を終了する。
【００５１】
以上説明したように上記発明の実施の形態によれば、通常のブートプログラム格納領域と、リカバリープログラム格納領域を自動的に切り替えてシステムを起動する手段を有することにより、通常のブートプログラム書き換え失敗時にリカバリープログラムを起動し、ブートプログラム書き換え前の状態を復元し、再びブートプログラム書き換えを行うことが可能となる。
【００５２】
また、リカバリープログラムの格納場所を、通常は別のデータが格納されているローカルデバイス（本実施形態では、バッテリバックアップされたＳＲＡＭ）とすることで、リカバリープログラムを専用に格納しておくメモリ（ＦＲＯＭ）領域を用意する必要がなくなり、結果としてメモリ（ＦＲＯＭ）を削減することが可能となる。
【００５３】
なお、上述したデジタル複写機の実施形態を、機器に組み込んだシステムに用いても同様の効果を有する。
【００５４】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（の少なくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００５５】
【図１】本発明の画像形成装置に係るデジタル複写機（複合機）の概略構成を示す図。
【図２】本発明に係る主制御部の構成を示すブロック図。
【図３】ＣＥ切り替え部の構成例を示す図。
【図４】ブートプログラムのアップデート動作を説明するためのフローチャート。
【図５】開始時点の最新プログラムとリカバリープログラムがＨＤＤに保存された状態を示す図。
【図６】ステップＳ１〜Ｓ３の処理が完了した状態を示す図。
【図７】書き換えの状態を示す図。
【図８】プログラムアップデート直前の状態を示す図。
【符号の説明】
【００５６】
１…スキャナ部、２…プリント部、３…操作パネル、４…主制御部、５…画像処理部、１００…ＣＰＵ（制御手段、書換手段、判断手段）、１０１…ＦＲＯＭ（第１の記憶手段）、１０２…ＳＲＡＭ（第２の記憶手段）、１０３…ＳＷＩＴＣＨ、１０４…フリップフロップ、１０５…ＣＥ切り替え部（選択手段）、１０６…ＳＤＲＡＭ、１０７…バッテリ、１０８…ハードディスク装置（第３の記憶手段）、１０９…ネットワークインターフェイス。
【図１】
2005078336.tif 000003
【図２】
2005078336.tif 000004
【図３】
2005078336.tif 000005
【図４】
2005078336.tif 000006
【図５】
2005078336.tif 000007
【図６】
2005078336.tif 000008
【図７】
2005078336.tif 000009
【図８】
2005078336.tif 000010