(57)【要約】【課題】  マルチファンクション装置にバックアップ用のメモリを追加すること無く、ファームウェアのアップデート失敗時に、アップデート以前の状態に復帰すること。【解決手段】  マルチファンクション装置自身のファームウェアをネットワーク上にあるサーバに対して転送しておき、ネットワークやローカルインターフェイスを経由して、別のファームウェアに該自分自身のファームウェアを更新する際に、前記別のファームウェアの書き込み処理が完了しなかった場合はサーバ装置に格納しておいたファームウェアを読み出し、これをファームウェアとして書き込む。【選択図】  図５
2006164030.tif 000002
【特許請求の範囲】
【請求項１】
マルチファンクション装置のファームウエアアップデート方法において、
前記マルチファンクション装置自身のファームウェアをネットワーク上にある第１サーバに対して転送し格納する手段、
前記ファームウェアを格納した第１サーバのアドレスやディレクトリを記憶しておく記憶手段、
ネットワークやローカルインターフェイスを経由して、別のファームウェアを該自分自身のファームウェアに更新する際に、前記別のファームウェアの書き込み処理が完了しなかった場合、前記第１サーバに格納しておいた該自分自身のファームウェアを読み出し、これを新たな自分自身のファームウェアとして実行することを特徴とするマルチファンクション装置のファームウエアアップデート方法。
【請求項２】
更新する前記別のファームウェアを保存しているネットワーク上の第２サーバのアドレスやディレクトリ情報を前記更新の実行前に記憶してから、ファームウェアのアップデートを開始し、ネットワーク上にあるサーバ等別の装置に退避しておいた自分自身のファームウェアのアップデートに失敗した場合は、前記第２サーバのアドレスやディレクトリ情報を元に、新ファームウェアを読み出してそれを使って更新を実行することを特徴とする、請求項１記載のマルチファンクション装置のファームウェアのアップデート方法。
【請求項３】
前記更新する新ファームウェアを保存していると思われるネットワーク上の第２サーバのアドレスやディレクトリ情報は、ファームウェアをアップデートする装置が備えている操作パネル等からユーザが手動で入力することを特徴とする請求項２記載のマルチファンクション装置のファームウェアのアップデート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチファンクションシステム等で動作するファームウェアのアップデートに関するものである。
【背景技術】
【０００２】
従来、マルチファンクション装置などのファームウェアをアップデートする場合にはそのファームウェアが格納されているフラッシュＲＯＭを新しいファームウェアが格納された別のフラッシュＲＯＭに交換したり、ＲＳ２３２Ｃ等のシリアルインターフェイス、ＩＥＥＥ１２８４などのパラレルインターフェイス、またはＵＳＢやＩＥＥＥ１３９４等の装置が持っているインターフェイスを経由して、新しいファームウェアを転送し、転送した新しいファームウェアをフラッシュＲＯＭに対して書き込む等の方法を用いるのが一般的であった。
【０００３】
また、各種インターフェイスを経由して新しいファームウェアを書き込む仕組みを採用する場合はファームウェアを格納するフラッシュＲＯＭはファームウェアの容量に対して２倍程度の容量のフラッシュＲＯＭを用意しておき、新しいファームウェアを書き込む場合は古いファームウェアはフラッシュＲＯＭの別の領域に退避してから、新しいファームウェアを書き込んだり（今使っている領域に書き込む）。使用中のファームウェアの領域とは別の領域に新しいファームウェアを各種インターフェイスを経由して書き込んでから、それを今使っている領域にコピーするなどしてファームウェアのアップデートを実行するものであった（例えば特許文献１を参照）。
【特許文献１】特開２００１−１１７７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では装置の外部から各種インターフェイスを経由して新しいファームウェアを転送し、ファームウェアのアップデートを行う際に。外部から転送するデータ（新しいアップデートするファームウェアの）転送に失敗したり、転送が成功しても実際に新しいファームウェアを所望の場所（例えばフラッシュROMのファームウェアを実行する領域）に書き込む時に失敗した場合、フラッシュＲＯＭ等装置内部の別の領域にバックアップしてあった古いファームウェア（現在使用中のファームウェア）を再度所望の場所へ書き込む様にしているが、この場合現在使用中のファームウェアのバックアップ用のメモリ（フラッシュＲＯＭやＲＡＭ等）が必ず必要なので、装置が実装しなければならないメモリを小さくすることが出来ないという課題があった。
【課題を解決するための手段】
【０００５】
上述した課題を解決する為に、本発明はファームウェアのアップデートを実行する前に、現在動作している自分自身のファームウェア（＝古いファームウェア）をネットワーク上のサーバのハードディスク等、適当な場所に転送して格納し、退避しておく。もちろん、古いファームウェアを退避したサーバのアドレスや、格納したハードディスクのディレクトリ情報等は記憶しておく。
【０００６】
この状態で各種インターフェイスから新しいファームウェアの転送を行い、ファームウェアをアップデートするが、万が一新しいファームウェアの転送に失敗したり、転送に成功しても所望の場所への書き込みが失敗する等ファームウェアのアップデートに失敗した時には、前記ネットワーク上のサーバのハードディスク等に転送して（退避して）おいた古いファームウェアを読み出してきて所望の場所に書き込み再度利用する。
【０００７】
もしくは、新ファームウェアが格納されている特定のWebサーバ（例えばファームウェアが動作している装置の製造会社のWebサーバ等）のアドレスや新ファームウェアが格納されている場所のディレクトリやURL等を記憶しておき、ファームウェアのアップデートに失敗した場合はそのWebサーバにアクセスし必要としている新ファームウェア（または現在動作中と同じバージョンのファームウェア）を検索し、目的のバージョンのファームウェアが存在した場合はそれをダウンロードして所望の場所に書き込み利用する（新ファームウェアとして起動する）手段を有することを特徴とする。
【発明の効果】
【０００８】
本発明によって各種インターフェイスを経由して新しいファームウェアを転送しファームウェアをアップデートする場合にも、現在動作している自分自身のファームウェアを退避したり、新しいファームウェアを格納する為のフラッシュＲＯＭ等の記憶領域（メモリ）を確保しておく必要がなくなるので、ファームウェアをアップデートするだけのためにメモリを確保する必要がないので、ファームウェアを格納する為の余計なメモリ（フラッシュＲＯＭ等）が節約できるという効果がある。
【発明を実施するための最良の形態】
【０００９】
（実施例１）
以下、図等を参照して第１の実施例を説明する。
【００１０】
図１は、本発明が採用されたマルチファンクション装置１００の全体構成を示している。
【００１１】
１０１はＵＳＢやイーサーネット（登録商標）等各種インターフェイスとの間でデータの送受信を行う送受信手段（イーサーネット等各種インターフェイスは図示していない）。１０２は後述するＣＰＵやＲＡＭ、ＲＯＭ等マルチファンクション装置１００の各種構成要素同士を接続するシステムバス。１０３はマルチファンクション装置１００の動作を制御するＣＰＵ。１０４はマルチファンクション装置１００が実行する処理において一時的にデータ等を記憶しておく為のRAM。
【００１２】
１０５はマルチファンクション装置１００に必要なプログラム（＝ファームウェア）や各種データを保存しておくROM（又はフラッシュＲＯＭ）等の不揮発性記憶手段。１０６は送受信手段１０１から受け取った印刷データや、画像を読み込むことができるスキャナ１０８から読み取った画像データを、プリントエンジン１０７で印刷可能な形式のデータに変換する画像変換手段。１０９はマルチファンクション装置１００を使用するユーザに対して各種情報（マルチファンクション装置の内部情報等）を表示するディスプレイや、ユーザが設定する設定値を入力するボタンやキーボード等を備えた操作パネルである。
【００１３】
図３は本発明が採用されたマルチファンクション装置１００が送受信手段１０１を経由してＬＡＮ等のネットワーク３０１に接続されている状態を示した図である。ＬＡＮ等のネットワークには３０２、３０３で示す様なサーバやその他のＰＣも接続されている。また、ネットワーク３０１は３０４のゲートウェイ（ルータ等の装置でネットワーク３０１が別のネットワークに接続出来る様になっている）を経由して、インターネット３０５にも接続されている。さらにインターネット３０５には３０５と同様なゲートウェイ３０６を経由して別のネットワーク３０９が接続されている。別のネットワーク３０９にも３０７、３０８に示す様なＷｅｂサーバやＰＣが接続されている。
【００１４】
ここでは図示しないが、インターネットには別のネットワーク３０９以外にも様々なネットワークが接続されていることは言うまでも無い。
【００１５】
次に図２〜図４のフローチャートを用いて本発明の第１の実施例の動作を説明する。
【００１６】
ファームウェアのアップデートを行う際、まずマルチファンクション装置１００が接続されているネットワーク３０１上に、現在動作中のファームウェア（＝ＲＯＭ１０５に格納されている古いファームウェア）を退避しておく為の場所（ハードディスクやメモリ等の記憶手段）が無いか検索する（Ｓ２０１）。
【００１７】
古いファームウェアを退避しておく場所が見つかった場合はＳ２０３へ進むが、見つからない場合、今度はインターネットを経由した別のサーバ等（３０７、３０８）に同様な古いファームウェアを退避しておく場所が無いか検索する（Ｓ２０２）。検索の結果どちらにも古いファームウェアを退避しておく場所が無い場合は（４）を経由してＳ２１５へ進む（こちらの処理については後述）。
【００１８】
どちらからに古いファームウェアを退避しておく場所（サーバ等）があった場合はその場所へ古いファームウェアをＲＯＭ１０５から読み出して転送し格納する（Ｓ２０３）。サーバ等への古いファームウェアの転送が成功したか確認し（Ｓ２０４）、転送が成功しなかった場合はサーバが見つからなかった場合と同様に（４）を経由してＳ２１５へ進む。
【００１９】
古いファームウェアの退避が成功した場合は退避したサーバのアドレスや古いファームウェアを格納したディスクのディレクトリやＵＲＬ等、後で古いファームウェアが読み出せる様に、各種情報をＲＯＭ１０５やＲＡＭ１０４に記憶しておく（Ｓ２０５）。
【００２０】
次に更新する新しいファームウェア（通常はバージョンアップされたファームウェア）を送受信手段１０１を経由してＲＯＭ１０５へ転送（上書き）する（Ｓ２０６）。送信元はネットワーク３０１上のＰＣ等何処からであっても問題ない。また、この時ＲＯＭ１０５に記憶してある古いファームウェアの中でネットワークに対するアクセスとデータの送受信、及びＲＯＭに対する書き込み等、アップデート時に必要最低限の処理を実行するのに必要なファームウェアの領域はＲＯＭ１０５上の別の領域に退避して保存しておく（又は新しいファームウェアをＲＯＭ１０５に書き込む場合もその部分は上書きしない）。
【００２１】
Ｓ２０７で新しいファームウェアが全て転送され、ＲＯＭ１０５に書き込まれたかを確認し、もし転送が失敗する等してＲＯＭ１０５に対する書き込みが失敗した場合は（２）を経由してＳ２０９へ進む。転送及びＲＯＭ１０５に対する書き込みも成功した場合はＳ２０８で書き込まれた新しいファームウェアのチェックサム等を確認して、データの抜けや転送途中のデータ化けが無いかも検査する。検査の結果新しいファームウェアが正しくない場合は上記転送に失敗した場合と同様に（２）を経由してＳ２０９へ進む。
【００２２】
検査の結果新しいファームウェアが正しくＲＯＭ１０５に書き込まれたと確認できたら（（５）を経由して）Ｓ２１４に進み、新しいファームウェアを使ってマルチファンクション装置１００を再起動する。言うまでも無く直ちに再起動するかどうかをユーザに選択させる事も可能である。
【００２３】
また、新しいファームウェアで再起動した時から、前述した古いファームウェアの中でネットワークに対するアクセスとデータの送受信、及びＲＯＭに対する書き込み等、アップデート時に必要最低限の処理を実行するのに必要なファームウェアの部分（上書きしなかった部分）は必要なくなるので、ＲＯＭ１０５上のこの部分も別の用途として利用する事が可能になる。
【００２４】
新しいファームウェアの転送やＲＯＭ１０５に対する書き込みが失敗した場合（Ｓ２０７，２０８から遷移した場合）Ｓ２０９において、Ｓ２０５で記憶しておいた古いファームウェアの格納してある場所（ネットワーク３０１のサーバ３０２等）から、古いファームウェアをＲＯＭ１０５に転送する。この古いファームウェアの転送においても、それが成功したか確認し（Ｓ２１０）、転送に失敗した場合は（３）を経由してＳ２１３へ進む。古いファームウェアの転送に成功した場合は、さらにＳ２１１においてチェックサム等を確認し、データが正しいかも確認する、データが正しくない場合は上記と同様にＳ２１３へ進む。
【００２５】
古いファームウェアが正しくＲＯＭ１０５に転送できた場合は、そのファームウェアを使ってマルチファンクション装置１００を再起動する（Ｓ２１２）。
【００２６】
古いファームウェアの転送やＲＯＭ１０５への格納に失敗した場合、Ｓ２１３でユーザに対するエラー警告を表示し（操作パネル１０９等に表示する）、ファームウェアのアップデートに失敗したことを通知する。
【００２７】
前述のＳ２０２，２０４で古いファームウェアの転送に失敗した場合の処理（Ｓ２１５）では、操作パネル１０９等に対してその旨（古いファームの転送等に失敗した）を示す警告を表示し、ユーザにこのままファームウェアのアップデートを継続するか選択させる（Ｓ２１６）。ユーザがファームのアップデート継続を選択した場合はＳ２１７に進み、新しいファームウェアの転送（転送元からＲＯＭ１０５に対する転送）を行う。この場合についても、転送に成功したかを確認したり（Ｓ２１８）、転送した後のチェックサム等のデータのチェックも行い（Ｓ２１９）、新しいファームウェアの転送に失敗したならＳ２１３に進みエラーを表示する。
【００２８】
（実施例２）
図６〜図７を用いて第２の実施例を説明する。
【００２９】
ファームウェアのアップデートを行う際、まずユーザがマルチファンクション装置１００の操作パネル１０９等から、更新する新しいファームウェアが格納されていると思われるＷｅｂサーバのアドレス（例えばマルチファンクション装置１００の製造元が提供しているＷｅｂサーバのアドレス）、ディレクトリ、またはＵＲＬ等の新しいファームウェアを読み出して転送するのに必要な情報を入力してＲＯＭ１０５などに記憶しておく（Ｓ４０１）。
【００３０】
次に前記実施例１の様に更新する新しいファームウェア（通常はバージョンアップされたファームウェア）を送受信手段１０１を経由してＲＯＭ１０５へ転送（上書き）する。但し、第２の実施例の場合は古いファームウェアを退避しておかなくても良い。
【００３１】
新しいファームウェアの転送に失敗したり、転送には成功するがその後のデータのチェック（チェックサム等のチェック）でデータが正しくないないと判断され場合（Ｓ４０３）、前記Ｓ４０１で記憶しておいた新しいファームウェアが格納されていると思われるアドレス情報等を元に、格納されている場所をネットワーク上等から検索する（Ｓ４０４）。アドレス情報等に従って検索した結果サーバが見つからなかった場合はＳ４０8へ進む。
【００３２】
Ｓ４０１で記憶しておいた新しいファームウェアが格納されていると思われるアドレス情報等を元に、格納場所（サーバ等）が見つかった場合は、そこから新しいファームウェアを読み出してＲＯＭ１０５に転送する（Ｓ４０５）。転送が成功しなかった場合や、転送が成功してもチェックサム等のデータのチェックが正しくなかった場合（Ｓ４０６）。Ｓ４０８へ進む。
【００３３】
Ｓ４０１で記憶しておいた新しいファームウェアが格納されていると思われるアドレス情報等を元に検出したサーバ等から読み出してＲＯＭ１０５に転送した新しいファームウェアが正しい場合はその新しいファームウェアでマルチファンクション装置を起動する（Ｓ４０７）。
【００３４】
また、Ｓ４０１ではユーザが直接操作パネル１０９から各種情報を入力していたが、マルチファンクション装置１００の外部からネットワーク３０１やその他インターフェイス等を経由して、それらの情報を入力しても発明の効果に変わりは無い。
【００３５】
（実施例３）
前記実施例２ではファームウェアのアップデートを開始する前に、更新する新しいファームウェアが格納されていると思われるＷｅｂサーバのアドレス、ディレクトリ、またはＵＲＬ等の新しいファームウェアを読み出して転送するのに必要な情報を入力していたが、Ｓ４０３で新ファームウェアの転送や格納に失敗したと判断してから、そのタイミングでユーザに警告を表示し、上記の各種情報を入力させても、発明の効果に変わりは無い。
【００３６】
（実施例４）
前記実施例１〜３ではマルチファンクション装置１００を対象としていたが、本発明が対象としているのはプリンタやファクシミリ等単機能しか持たないシングルファンクション装置であってもかまわない。
【図面の簡単な説明】
【００３７】
【図１】本発明を採用したマルチファンクション装置のコントローラ等の概略を示すブロック図
【図２】本発明の第１の実施例を説明するフローチャート
【図３】本発明の第１の実施例を説明するフローチャート
【図４】本発明の第１の実施例を説明するフローチャート
【図５】本発明を採用したマルチファンクション装置が接続されているネットワーク環境等の概略を示す図
【図６】本発明の第２の実施例を説明するフローチャート
【図７】本発明の第２の実施例を説明するフローチャート
【符号の説明】
【００３８】
１００  マルチファンクション装置
１０１  各種インターフェイスとの送受信を行う送受信手段
１０２  ＣＰＵと各種構成要素を接続するシステムバス
１０３  ＣＰＵ
１０４  ＲＡＭ
１０５  フラッシュＲＯＭ等の不揮発性記憶手段
１０６  プリントエンジン対して画像を変換して出力する画像変換手段
１０７  印刷を行うプリントエンジン
１０８  画像イメージを読み込むスキャナ
１０９  ユーザが装置の状態を確認する為の表示器やユーザが操作可能なボタンを搭載した操作パネル
３０１  本発明を採用したマルチファンクション装置１００が接続されているＬＡＮ等のネットワーク
３０２〜３０３  ３０１のＬＡＮに接続されているサーバやその他のＰＣ等
３０４  ３０１のＬＡＮとインターネット等の外部ネットワークを接続する為のルータ等のゲートウェイ
３０５  インターネット等
３０６  ３０５のインターネット等と別のＬＡＮを接続する為のゲートウェイ
３０７〜３０８  ３０５のゲートウェイを介して、３０１とは別のＬＡＮに接続されているサーバやその他のＰＣ等
【図１】
2006164030.tif 000003
【図２】
2006164030.tif 000004
【図３】
2006164030.tif 000005
【図４】
2006164030.tif 000006
【図５】
2006164030.tif 000007
【図６】
2006164030.tif 000008
【図７】
2006164030.tif 000009