(57)【特許請求の範囲】
【請求項１】
ファームウェアを備える情報処理装置であって、
ファームウェアのデータセットを取得する取得手段と、
前記取得手段にて取得したファームウェアのデータセットを用いて、ファームウェアの更新を行う更新手段と、
前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれ、かつ、前記更新手段によるファームウェアの更新時にカスタマイズデータの適用が制限されている場合、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータを保持する保持手段と、
ファームウェアが有する機能に対する設定値を示すカスタマイズデータを、前記情報処理装置が備えるファームウェアに適用する適用手段と
を有し、
前記適用手段は、前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれている場合、当該カスタマイズデータを適用するか否かを判定し、当該判定の結果に応じて、前記更新手段によるファームウェアの更新が完了した後、前記制限が解除された際に、前記保持手段が保持するカスタマイズデータを適用することを特徴とする情報処理装置。
【請求項２】
前記適用手段は、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータのバージョンと、前記情報処理装置に適用されている現在のカスタマイズデータのバージョンとを比較し、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータの方が新しい場合に適用すると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新手段および前記適用手段による処理の結果を通知する手段を更に有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置が備えるファームウェアの設定値を初期化する初期化手段を更に有し、
前記適用手段は、前記初期化手段によるファームウェアの設定値の初期化が行われた後、当該初期化が行われる前に適用されていたカスタマイズデータを再度、適用することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記初期化手段による初期化の結果を通知する手段を更に有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれている場合、前記情報処理装置に適用されている現在のカスタマイズデータをバックアップするバックアップ手段を更に有し、
前記適用手段は、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータの適用に失敗した場合、前記バックアップ手段にてバックアップされているカスタマイズデータを用いて、前記ファームウェアの設定をレストアすることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記更新手段によるファームウェアの更新時にカスタマイズデータの適用が制限されている場合とは、ファームウェアの更新に伴う前記情報処理装置の動作モードにより、前記適用手段の動作が制限される場合であることを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記適用手段は、前記保持手段が保持するカスタマイズデータを適用する際に、前記情報処理装置がユーザからの操作を受け付けないように制御することを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記カスタマイズデータが示す設定値は、ファームウェアが有する機能を有効化もしくは無効化するための設定値であることを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
ファームウェアを備える情報処理装置におけるファームウェア更新方法であって、
ファームウェアのデータセットを取得する取得工程と、
前記取得工程にて取得したファームウェアのデータセットを用いて、ファームウェアの更新を行う更新工程と、
前記取得工程にて取得したファームウェアのデータセットにカスタマイズデータが含まれ、かつ、前記更新工程によるファームウェアの更新時にカスタマイズデータの適用が制限されている場合、前記取得工程にて取得したファームウェアのデータセットに含まれるカスタマイズデータを保持する保持工程と、
ファームウェアが有する機能に対する設定値を示すカスタマイズデータを、前記情報処理装置が備えるファームウェアに適用する適用工程と
を有し、
前記適用工程において、前記取得工程にて取得したファームウェアのデータセットにカスタマイズデータが含まれている場合、当該カスタマイズデータを適用するか否かを判定し、当該判定の結果に応じて、前記更新工程におけるファームウェアの更新が完了した後、前記制限が解除された際に、前記保持工程にて保持したカスタマイズデータを適用させることを特徴とするファームウェア更新方法。
【請求項１１】
コンピュータを、
ファームウェアのデータセットを取得する取得手段、
前記取得手段にて取得したファームウェアのデータセットを用いて、ファームウェアの更新を行う更新手段、
前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれ、かつ、前記更新手段によるファームウェアの更新時にカスタマイズデータの適用が制限されている場合、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータを保持する保持手段、
ファームウェアが有する機能に対する設定値を示すカスタマイズデータを、前記コンピュータが備えるファームウェアに適用する適用手段
として機能させ、
前記適用手段は、前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれている場合、当該カスタマイズデータを適用するか否かを判定し、当該判定の結果に応じて、前記更新手段によるファームウェアの更新が完了した後、前記制限が解除された際に、前記保持手段が保持するカスタマイズデータを適用することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ファームウェア更新方法、およびプログラムに関する。
【背景技術】
【０００２】
複合機を販売する上で、顧客の個別要望に応えるため、専用にカスタマイズされた商談専用機能を提供するケースがある。この場合に、商談ファームウェアを個別開発するとコストがかかるため、製品ファームウェアの中に商談専用機能を予め実装し、有効化／無効化の切り替えを可能にするカスタムスイッチを用意することが一般的である。
【０００３】
しかし、人手によりカスタムスイッチを有効化して顧客先に設置することは、手間がかかる上にミスが入る可能性がある。そのため、個々の商談に合わせて適切なカスタムスイッチを有効化するためのカスタマイズデータを作成し、カスタマイズデータをインポートすることが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１４１１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、製品ファームウェアとカスタマイズデータの組み合わせを間違えると、製品ファームウェアの中の機能を適切に有効化できないといった問題が発生する課題がある。これは、カスタマイズデータは、特定の製品ファームウェアのバージョンに合わせて作成する必要があるためである。特許文献１では、ファームウェアアップデート時にデバイスが記憶していた設定を新しいファームウェアでも扱えるようにマイグレーションする技術が開示されているが、カスタムスイッチの値を変更することはできない。
【０００６】
本発明は、上記問題を鑑み、ファームウェアとの組み合わせが正しいカスタマイズデータが人手を介することなく自動的に適用される仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本願発明は、以下の構成を有する。すなわち、ファームウェアを備える情報処理装置であって、ファームウェアのデータセットを取得する取得手段と、前記取得手段にて取得したファームウェアのデータセットを用いて、ファームウェアの更新を行う更新手段と、前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれ、かつ、前記更新手段によるファームウェアの更新時にカスタマイズデータの適用が制限されている場合、前記取得手段にて取得したファームウェアのデータセットに含まれるカスタマイズデータを保持する保持手段と、ファームウェアが有する機能に対する設定値を示すカスタマイズデータを、前記情報処理装置が備えるファームウェアに適用する適用手段とを有し、前記適用手段は、前記取得手段にて取得したファームウェアのデータセットにカスタマイズデータが含まれている場合、当該カスタマイズデータを適用するか否かを判定し、当該判定の結果に応じて、前記更新手段によるファームウェアの更新が完了した後、前記制限が解除された際に、前記保持手段が保持するカスタマイズデータを適用する。
【発明の効果】
【０００８】
本発明により、ファームウェアとの組み合わせが正しいカスタマイズデータが、ファームウェア更新時に人手を介することなく自動的に適用され、組み合わせミスなどが発生しなくなる。
【図面の簡単な説明】
【０００９】
【図１】本願発明に係る画像形成装置のハードウェアの構成例を示す図。
【図２】第一の実施形態に係る画像形成装置のソフトウェアの構成例を示す図。
【図３】本願発明に係るファームウェアセットの構成例を示す図。
【図４】カスタマイズデータの記述例を示す図。
【図５】ファームウェアリストファイルの記述例を示す図。
【図６】ファームウェアの更新結果画面の例を示す図。
【図７】第一の実施形態に係るファームウェアを更新するフローチャート。
【図８】本願発明に係る設定値を初期化するフローチャート。
【図９】第二の実施形態に係るソフトウェア構成の例を示す図。
【図１０】第二の実施形態に係るファームウェアを更新するフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の説明において、本願発明に係る情報処理装置の一例としてＭＦＰなどの画像形成装置を挙げて説明するが、これに限定するものでは無く、ファームウェアを備える情報処理装置であれば、他の装置であってもよい。
【００１１】
＜第一の実施形態＞
［システム構成］
図１は、本実施形態に係る画像形成装置１０１のハードウェア構成の例を示す図である。画像形成装置１０１は、ＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などの複合機に代表される、画像を形成する機能を有する装置である。画像形成装置１０１は、ＣＰＵ１０１、不揮発性メモリ１０２、揮発性メモリ１０３、補助記憶装置１０４、ディスプレイ１０５、入力装置１０６、およびネットワーク通信装置１０７を備える。各構成部は、通信バスである内部バス１１０を介して、画像形成装置１０１内で互いに通信可能に接続される。
【００１２】
ＣＰＵ１０１は、プログラムの実行や、様々な処理の制御を行う。不揮発性メモリ１０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）から構成され、機器の起動処理において初期段階に必要なプログラムやデータが格納される。揮発性メモリ１０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成され、プログラム、データの一時的な格納場所として利用される。補助記憶装置１０４は、ハードディスクやＲＡＭドライブ等の大容量記憶装置から構成され、大容量データの保管、プログラムの実行コードの保持、画像形成装置１０１の設定値の保持を行う。補助記憶装置１０４は、揮発性メモリ１０３と比較して、長時間保持する必要があるデータを記憶する。補助記憶装置１０４は、不揮発性の記憶装置であるため、画像形成装置１０１の電源が切られてもデータを記憶し続けることができる。
【００１３】
ディスプレイ１０５は、各種情報を表示するための表示装置である。入力装置１０６は、ユーザの指示を受け付け、内部バス１１０を介してプログラムに伝達するための装置である。ネットワーク通信装置１０７は、画像形成装置１０１がネットワーク１２０を介して外部の情報機器と通信することを可能とする。
【００１４】
図２は、本実施形態に係る画像形成装置１０１のソフトウェア構成例を示す図である。図２に示す各ソフトウェアは、画像形成装置１０１において不揮発性メモリ１０２もしくは補助記憶装置１０４に保存され、ＣＰＵ１０１にて実行される。また、実行時に使用する各種情報は、画像形成装置１０１において、揮発性メモリ１０３もしくは補助記憶装置１０４に保持してソフトウェア間で各種情報のやりとりを行う。
【００１５】
本実施形態に係るソフトウェアは、設定記憶部２０１、ファームウェアバージョン記憶部２０２、ファームウェア記憶部２０３、設定初期化部２０４、ファームウェア更新判定部２０５、ファームウェア更新部２０６、カスタマイズデータ適用部２０７、およびファームウェア更新結果通知部２０８を含んで構成される。
【００１６】
設定記憶部２０１は、画像形成装置１０１の各機能の振る舞いを切り替えるための設定を補助記憶装置１０４に記憶する。以下の表１に示す設定一覧は、設定記憶部２０１に記憶される設定値の一例を示す。
【００１７】
【表１】
0006600240.tif 000002
【００１８】
表１に示す例では、設定Ａと設定Ｂという二つの設定項目が存在し、その値はともに０である状態を示している。設定の具体例としては、デフォルト画面に社名やロゴを表示する機能を有効化する設定、送信機能を利用できなくする設定、アドレス帳に登録された宛先以外に送信できなくする設定などが挙げられる。顧客によっては必ずしも便利ではない機能であるため、顧客の要望に応じて画像形成装置１０１が備える機能の有効化／無効化を制御する。なお、設定項目の数はこれに限定するものではなく、更に多くの設定項目を含んでもよい。また、上記の設定項目は、１のファームウェアに含まれる複数の機能のうちのいずれかの機能に対する設定であってもよいし、複数のファームウェアに共通する機能に対する設定であってもよい。
【００１９】
ファームウェアバージョン記憶部２０２は、画像形成装置１０１で動作中のファームウェアのバージョンを補助記憶装置１０４に記憶する。以下の表２に示すファームウェアバージョン一覧は、ファームウェアバージョン記憶部２０２に記憶されるファームウェアバージョンの一例を示す。
【００２０】
【表２】
0006600240.tif 000003
【００２１】
表２に示す例では、ファームウェア１、２、３という３つのファームウェアと、カスタマイズデータを保持するファームウェアの計４つのファームウェアが存在し、そのバージョンは全て１．０である状態を示している。ファームウェアの具体例としては、プリンタエンジン用ファームウェア、スキャナエンジン用ファームウェア、フィニッシャ用ファームウェアなどが挙げられる。なお、ファームウェアの数や種類はこれに限定するものでは無く、より細かい区分がなされていてもよい。
【００２２】
ファームウェア記憶部２０３は、画像形成装置１０１で動作するファームウェアを補助記憶装置１０４に記憶する。
【００２３】
設定初期化部２０４は、画像形成装置１０１が設定記憶部２０１にて記憶している設定値を初期化する。基本となる初期値は、ファームウェア記憶部２０３に記憶されたファームウェアが保持している。設定初期化部２０４は、各設定値を基本となる初期値に戻したうえで、ファームウェア記憶部２０３が記憶しているファームウェアの中にカスタマイズデータが含まれているか判定する。ここでの判定は、ファームウェアバージョン記憶部２０２が記憶するファームウェアリストの中に、カスタマイズデータというファームウェア名称のファームウェアが存在し、有効なバージョンが記憶されているか否かにより判定される。なお、判定方法については、ファームウェア記憶部２０３が記憶するファームウェアを直接検索する方法であってもよい。カスタマイズデータが含まれている場合には、カスタマイズデータ適用部２０７に対して、カスタマイズデータの適用を依頼する。これにより、カスタマイズデータも反映した初期値への初期化処理が行われる。
【００２４】
ファームウェア更新判定部２０５は、ファームウェアの更新要求を受け付けて更新すべきファームウェアを判定する。ファームウェアの更新要求は、例えば、ユーザが入力装置１０６を操作することで要求されてもよいし、ネットワーク通信装置１０７を介して別の情報機器から要求されてもよい。
【００２５】
図３は、更新に用いられるファームウェアのデータ構成の例を示す。ファームウェアセット３０１は、各ファームウェアや情報ファイルをひとまとめにしたデータセットである。図３の例では、ファームウェアファイル３０２（３つのファームウェア１、２、３）と、カスタマイズデータ３０３という名称のファームウェアの、計４つのファームウェアが含まれている。更に、ファームウェアセット３０１には、ファームウェアセット３０１の情報を示すファームウェアリストファイル３０４が含まれている。ファームウェア１、２、３の実態は、例えばＣＰＵ１０１が実行可能な形式のソフトウェアプログラムである。上記の通り、ファームウェアセット３０１に含まれるカスタマイズデータ３０３もファームウェアの一種として扱われる。
【００２６】
図４は、カスタマイズデータ３０３の記述例を示す。図４の例では、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のファイルになっており、カスタマイズした設定の識別子と設定値が保持されている。ここでは、設定Ｂの値を“１”に変更するカスタマイズデータを示す。カスタマイズデータ３０３の具体的な例としては、デフォルト画面に社名やロゴを表示する機能を有効化する設定を含むＸＭＬファイル等が挙げられる。カスタムスイッチは複数あってもよいし、より複雑な条件がついていてもよい。なお、ここではＸＭＬ形式のファイルを一例として挙げているが、この形式に限定するものではない。
【００２７】
図５は、ファームウェアリストファイル３０４の記述例を示す。図５の例では、ＸＭＬ形式のファイルになっており、ファームウェアセット３０１に含まれているファームウェアのリストが保持されている。ファームウェアリストファイル３０４において、各ファームウェアの名称とバージョンが保持されている。例えば、ファームウェア１はバージョンが“１．１”である。ファームウェアリストファイル３０４に記述されたファームウェアの情報は、ファームウェアセット３０１に含まれるファームウェアと一致しているか、少なくとも包含関係にある必要がある。各ファームウェアの情報は、少なくともファームウェアの新旧が分かる情報と、ファームウェアを識別できる情報の２つを保持する必要がある。なお、上記以外にも、チェック用のハッシュ値があってもよいし、ファイルサイズの情報があってもよい。
【００２８】
ファームウェア更新判定部２０５は、ファームウェアバージョン記憶部２０２が記憶するファームウェアのバージョンと、ファームウェアリストファイル３０４に保存されたファームウェアのバージョンを比較し、ファームウェアの更新が必要か否かを判定する。例えば、ファームウェア１のバージョンが表２に示す通り“１．０”であり、ファームウェアセット３０１に含まれるファームウェア１のバージョンが図５の通り“１．１”であるとする。この時、ファームウェア更新判定部２０５は、バージョンが新しくなっていることを検知し、ファームウェア１の更新が必要であると判定する。また、ファームウェア２のバージョンが表２に示す通り“１．０”であり、ファームウェアセット３０１に含まれるファームウェア２のバージョンが図５の通り“１．０”であるとする。この時、ファームウェア更新判定部２０５はバージョンの変更がないことを検知し、ファームウェア２の更新が必要ないと判定する。
【００２９】
ファームウェア更新部２０６は、ファームウェア更新判定部２０５によって更新する必要があると判定されたファームウェアのデータファイルを取得して、ファームウェアを更新する処理を行う。ファームウェアは、ファームウェア記憶部２０３によって記憶されており、ファームウェア更新部２０６は、このファームウェアを上書きして更新する。
【００３０】
カスタマイズデータ適用部２０７は、カスタマイズデータ３０３に保持されたカスタムスイッチを、設定記憶部２０１に記憶された設定値に適用する。例えば、表１に示す設定値を保持した状態の画像形成装置１０１に、図４に示すカスタマイズデータ３０３を適用した場合、設定Ｂの設定値が“０”から“１”に変更される。
【００３１】
ファームウェア更新結果通知部２０８は、ファームウェアの更新結果を要求元に通知する。ユーザが入力装置１０６からファームウェアの更新を要求した場合、ファームウェア更新結果通知部２０８は、ディスプレイ１０５に結果画面を表示して結果を通知する。図６（ａ）は、ファームウェア更新が成功した時の結果通知画面６０１の例を示す。結果通知画面６０１において、各ファームウェアの更新前後のバージョンが表示されている。図６（ｂ）は、ファームウェア更新が失敗した時の結果通知画面６０２の例を示す。結果通知画面６０２は、カスタマイズデータ３０３の適用に失敗し、バージョンが上がっていないことを示している。
【００３２】
ここではディスプレイ１０５に表示する画面を例に示したが、他の形態であってもよい。例えば、ファームウェア更新の要求をネットワーク１２０経由で行った場合には、要求を行った情報端末上に表示する構成であってもよい。また、通知する内容は、より詳細であってもよい。例えば、カスタマイズデータ３０３の適用に失敗した理由が表示されていてもよい。失敗した理由の例としては、カスタマイズデータ３０３に依存したジョブの実行中である場合や、カスタマイズデータ３０３自体が破損している場合などが想定される。
【００３３】
［処理フロー］
（ファームウェア更新処理）
図７は、本実施形態に係る画像形成装置１０１のファームウェア更新の流れを説明するためのフローチャートである。本処理は、画像形成装置１０１のＣＰＵ１０１が補助記憶装置１０４等に格納されたプログラムを読み出して実行されることにより、上述した各ソフトウェアの部位として動作することで実現される。
【００３４】
Ｓ７０１にて、ファームウェア更新判定部２０５は、ファームウェアの更新要求を検知する。
【００３５】
Ｓ７０２にて、ファームウェア更新判定部２０５は、更新するファームウェアセット３０１に含まれるファームウェアリストファイル３０４を読み込み、ファームウェアリストを取得する。
【００３６】
Ｓ７０３にて、ファームウェア更新判定部２０５は、Ｓ７０２で取得したファームウェアリストに対してＳ７０４以降の処理を行っていないファームウェアがあるか否かを判定する。未処理のファームウェアがある場合（Ｓ７０３にてＹＥＳ）Ｓ７０４に進み、未処理のファームウェアが存在しない場合（Ｓ７０３にてＮＯ）Ｓ７０８へ進む。
【００３７】
Ｓ７０４にて、ファームウェア更新判定部２０５は、処理対象のファームウェアの更新が必要か判定する。ここでの判定は、ファームウェアバージョン記憶部２０２に記憶されたファームウェアのバージョンと、Ｓ７０２で取得したファームウェアリストに記載されたファームウェアのバージョンとを比較することによって行われる。ここでは、表２の状態の画像形成装置１０１に対して、図５のファームウェアリストのファームウェアを更新しようとした場合を例に説明する。ファームウェア１とカスタマイズデータについては、バージョン“１．０”からバージョン“１．１”に上がるため、更新が必要だと判定する。一方、ファームウェア２と３については、更新前後のバージョンは同じ“１．０”のファームウェアであるため、更新は不要と判定する。更新が必要と判定された場合（Ｓ７０４にてＹＥＳ）Ｓ７０５へ進み、更新が必要ないと判定された場合（Ｓ７０４にてＮＯ）Ｓ７０３へ戻る。
【００３８】
Ｓ７０５にて、ファームウェア更新部２０６は、ファームウェアを更新する。ファームウェア更新部２０６は、ファームウェアセット３０１を用いて、ファームウェア記憶部２０３が記憶しているファームウェアを新しいものに置きかえるとともに、ファームウェアバージョン記憶部２０２に記憶されたファームウェアバージョンを更新する。表２の状態の画像形成装置１０１に対して、図５のファームウェアリストのファームウェアを更新した場合、ファームウェアバージョン記憶部２０２に記憶された情報は、以下の表３に示すようになる。
【００３９】
【表３】
0006600240.tif 000004
【００４０】
Ｓ７０６にて、カスタマイズデータ適用部２０７は、Ｓ７０５で展開したファームウェアがカスタマイズデータ３０３を含んでいるか否かを判定する。カスタマイズデータ３０３を含んでいる場合（Ｓ７０６にてＹＥＳ）Ｓ７０７へ進み、カスタマイズデータ３０３を含んでいない場合（Ｓ７０６にてＮＯ）Ｓ７０３へ戻る。
【００４１】
Ｓ７０７にて、カスタマイズデータ適用部２０７は、カスタマイズデータ３０３を適用する。ここでは、表１の状態の画像形成装置１０１に対して、図４に示すカスタマイズデータ３０３を適用した場合を例に説明する。カスタマイズデータ３０３に記載されているのは、設定Ｂに対して設定値“１”をセットするというカスタマイズである。カスタマイズデータ３０３が適用されると、設定記憶部２０１に記憶された設定は以下の表４に示すようになる。
【００４２】
【表４】
0006600240.tif 000005
【００４３】
Ｓ７０８にて、ファームウェア更新結果通知部２０８は、ファームウェアの更新結果を通知する。表２の状態の画像形成装置１０１に対して、図５に示すファームウェアリストファイル３０４のファームウェアを更新しようとした場合には、図６で説明したような結果が表示される。
【００４４】
（初期化処理）
図８は、画像形成装置１０１の設定値の初期化処理の流れを説明するためのフローチャートである。本処理は、画像形成装置１０１のＣＰＵ１０１が補助記憶装置１０４等に格納されたプログラムを読み出して実行されることにより、上述した各ソフトウェアの部位として動作することで実現される。
【００４５】
Ｓ８０１にて、設定初期化部２０４は、設定の初期化指示を検知する。
【００４６】
Ｓ８０２にて、設定初期化部２０４は、ファームウェア記憶部２０３に記憶されたファームウェアが保持する初期値を適用し、設定記憶部２０１が記憶する設定値を初期値にする。例えば、表１に示す値が初期値であるとし、表４の状態の画像形成装置１０１に対して本ステップが実行された場合を例に説明する。初期化前は設定Ａの値が“０”であり、設定Ｂの値が“１”である。これに対し、本ステップの処理によって、設定Ｂの値が表１に示すように“０”に変更される。
【００４７】
Ｓ８０３にて、設定初期化部２０４は、現在のファームウェアリストにカスタマイズデータが含まれるか否かを判定する。表２を例にとると、カスタマイズデータのファームウェアがバージョン“１．０”として存在するため、カスタマイズデータが含まれると判定される。カスタマイズデータが含まれると判定された場合（Ｓ８０３にてＹＥＳ）Ｓ８０４へ進み、カスタマイズデータが含まれないと判定された場合（Ｓ８０３にてＮＯ）Ｓ８０５へ進む。
【００４８】
Ｓ８０４にて、カスタマイズデータ適用部２０７は、画像形成装置１０１に対しカスタマイズデータの適用を行う。例えば、Ｓ８０２で説明した状態の画像形成装置１０１に対して、図４に示すカスタマイズデータ３０３が適用された場合を例に説明する。Ｓ８０２により、設定Ａの値が“０”となり、設定Ｂの値が“０”になっている。これに対し、図４のカスタマイズデータ３０３には設定Ｂの値を“１”に設定するように記憶されているため、本工程の処理の結果、設定Ａの値は“０”のままとなり、設定Ｂの値は“１”に設定される。つまり、カスタマイズデータ適用部２０７は、初期化処理の前に適用されていたカスタマイズデータを再度、初期化処理の後に適用する。
【００４９】
Ｓ８０５にて、設定初期化部２０４は、設定の初期化処理の結果を通知する。なお、ここでは結果画面については不図示であるが、初期化が完了したことが、初期化を指示したユーザに通知される。
【００５０】
以上、本実施形態では、画像形成装置のファームウェア更新時にカスタマイズデータ適用部２０７を備え、カスタマイズデータが更新された場合に適用する。これにより、必要なカスタマイズ設定をユーザの操作を介することなく有効化することができる。
【００５１】
また、図８に示す処理により、本実施形態では、初期化処理が行われたとしても、カスタマイズデータにて制御されるカスタムスイッチの設定は失われることはない。
【００５２】
また、上記の例では、ファームウェアセットのうち、ファームウェア１とカスタマイズデータが更新された例を示したが、カスタマイズデータのみを更新するような場合でも図７に示す処理を適用可能である。言い換えると、上記処理により、カスタマイズデータのみを更新し、その内容を反映することが可能となる。
【００５３】
＜第二の実施形態＞
次に、本発明を実施するための第二の実施形態について説明する。第二の実施形態は、カスタマイズデータの適用をファームウェア更新時に行うことができない環境を想定した実施形態である。組み込み機器におけるファームウェア更新方法として、通常の起動モードとは異なるファームウェア更新用の起動モードを用意する場合がある。このようなファームウェア更新用の起動モードでは、動作できるプログラムに制限があることが一般的であるため、カスタマイズデータの適用を行う上で必要なプログラムが動作できないケースが想定される。このような状況においても、起動モードを切り替えることによって本願発明の実現が可能である。
【００５４】
［システム構成］
図９は、本実施形態に係るソフトウェアの構成例を示す図である。なお、第一の実施形態と重複する構成については、同じ参照番号を付し、詳細な説明は省略する。
【００５５】
本実施形態に係る画像形成装置１０１は、図２にて示した構成に加え、カスタマイズデータバックアップ部９０１、カスタマイズデータレストア部９０２、およびファームウェア更新モード起動制御部９０３を含んで構成される。
【００５６】
カスタマイズデータバックアップ部９０１は、ファームウェア記憶部２０３によって記憶されたファームウェアのうち、カスタマイズデータをバックアップし、別の場所に保存する処理を行う。ここでの保存場所は、例えば補助記憶装置１０４の記憶領域などが該当する。また、カスタマイズデータバックアップ部９０１は、ファームウェアバージョン記憶部２０２によって記憶されたカスタマイズデータのファームウェアバージョンも合わせて保存する。
【００５７】
カスタマイズデータレストア部９０２は、カスタマイズデータバックアップ部９０１によってバックアップされたカスタマイズデータを、ファームウェア記憶部２０３が記憶するカスタマイズデータと置き換える処理を行う。また、カスタマイズデータレストア部９０２は、同時にファームウェアバージョン記憶部２０２が記憶するカスタマイズデータのファームウェアバージョンを置き換える処理を行う。
【００５８】
本実施形態では、ファームウェアの展開と、カスタマイズデータの適用を行うタイミングが異なるため、カスタマイズデータの適用に失敗した時のリカバリ処理を考慮する必要がある。そこで、カスタマイズデータバックアップ部９０１とカスタマイズデータレストア部９０２により、カスタマイズデータのファームウェアを元に戻す処理を行う。
【００５９】
ファームウェア更新モード起動制御部９０３は、ファームウェア更新専用の起動モードへの切り替えを行う。ファームウェア更新専用の起動モードとは、ファームウェア更新部２０６によるファームウェア更新に関わる処理の実行に必要な最低限のファームウェアだけを動作させることを指す。これにより、動作中のプログラムを変更することに起因する不具合の発生を防ぐ狙いがある。ファームウェア更新専用の起動モードを、「ファームウェア更新モード」と表記する。また、ファームウェア更新モードと対応させて、通常の起動モードを「通常起動モード」と表記する。
【００６０】
［処理フロー］
図１０は、画像形成装置１０１のファームウェア更新の流れを説明するためのフローチャートである。本処理は、画像形成装置１０１のＣＰＵ１０１が補助記憶装置１０４等に格納されたプログラムを読み出して実行されることにより、上述した各ソフトウェアの部位として動作することで実現される。また、図１０に示す各処理工程のうち、第一の実施形態にて図７を用いて述べた処理と同じ内容の処理工程の詳細については省略する。
【００６１】
Ｓ１００１にて、ファームウェア更新判定部２０５は、ファームウェアの更新要求を検知する。
【００６２】
Ｓ１００２にて、ファームウェア更新モード起動制御部９０３は、画像形成装置１０１の動作モードをファームウェア更新モードに変更する。
【００６３】
Ｓ１００３にて、ファームウェア更新判定部２０５は、更新するファームウェアセット３０１に含まれるファームウェアリストファイル３０４を読み込み、ファームウェアリストを取得する。
【００６４】
Ｓ１００４にて、ファームウェア更新判定部２０５は、Ｓ１００３で取得したファームウェアリストに対してＳ１００５〜Ｓ１０１０の処理を行っていないファームウェアがあるか否かを判定する。未処理のファームウェアがある場合（Ｓ１００４にてＹＥＳ）Ｓ１００５に進み、未処理のファームウェアがない場合（Ｓ１００４にてＮＯ）Ｓ１０１１へ進む。
【００６５】
Ｓ１００５にて、ファームウェア更新判定部２０５は、ファームウェアの更新が必要か否かを判定する。ここでの判定は、ファームウェアバージョン記憶部２０２に記憶されたファームウェアのバージョンと、Ｓ１００３で取得したファームウェアリストに記載されたファームウェアのバージョンとを比較することによって行われる。更新が必要であると判定された場合（Ｓ１００５にてＹＥＳ）Ｓ１００６に進み、更新が不要であると判定された場合（Ｓ１００５にてＮＯ）Ｓ１００４に進む。
【００６６】
Ｓ１００６にて、カスタマイズデータ適用部２０７は、Ｓ１００５で更新が必要であると判定されたファームウェアがカスタマイズデータを含んでいるか否かを判定する。カスタマイズデータを含んでいる場合（Ｓ１００６にてＹＥＳ）Ｓ１００７へ進み、カスタマイズデータを含んでいない場合（Ｓ１００６にてＮＯ）Ｓ１０１０へ進む。
【００６７】
Ｓ１００７にて、カスタマイズデータバックアップ部９０１は、更新前のカスタマイズデータをバックアップする。
【００６８】
Ｓ１００８にて、ファームウェア更新部２０６は、ファームウェアを更新する。ファームウェア更新部２０６は、ファームウェアセット３０１を用いて、ファームウェア記憶部２０３が記憶しているファームウェアを新しいものに置きかえるとともに、ファームウェアバージョン記憶部２０２に記憶されたファームウェアバージョンを更新する。
【００６９】
Ｓ１００９にて、カスタマイズデータ適用部２０７は、Ｓ１００８で展開された新しいカスタマイズデータを、補助記憶装置１０４の中で、通常起動モードでも参照可能な領域に複製する。
【００７０】
Ｓ１０１０にて、ファームウェア更新部２０６は、ファームウェアを更新する。ファームウェア更新部２０６は、フファームウェアセット３０１を用いて、ファームウェア記憶部２０３が記憶しているファームウェアを新しいものに置きかえるとともに、ファームウェアバージョン記憶部２０２に記憶されたファームウェアバージョンを更新する。
【００７１】
Ｓ１０１１にて、ファームウェア更新モード起動制御部９０３は、画像形成装置１０１の起動モードを通常起動モードに変更する。これにより、画像形成装置１０１においてカスタマイズデータの適用に対する制限が解除される。
【００７２】
Ｓ１０１２にて、カスタマイズデータ適用部２０７は、Ｓ１００９で複製しておいたカスタマイズデータを検出する。
【００７３】
Ｓ１０１３にて、カスタマイズデータ適用部２０７は、ユーザの操作を禁止する。禁止する方法は様々あるが、例えばディスプレイ１０５に警告画面を表示し、通常操作ができない状態する方法が考えられる。ユーザの操作を禁止するのは、カスタマイズデータの反映と、ユーザの操作とが競合することを防止するためである。
【００７４】
Ｓ１０１４にて、カスタマイズデータ適用部２０７は、カスタマイズデータを適用する。
【００７５】
Ｓ１０１５にて、カスタマイズデータ適用部２０７は、カスタマイズデータの適用に成功したか否かを判定する。成功した場合（Ｓ１０１５にてＹＥＳ）Ｓ１０１７へ進み、失敗した場合（Ｓ１０１５にてＮＯ）Ｓ１０１６へ進む。
【００７６】
Ｓ１０１６にて、カスタマイズデータレストア部９０２は、Ｓ１００７でバックアップしたカスタマイズデータと、カスタマイズデータのファームウェアのバージョンをレストアする。これにより、カスタマイズデータの更新に失敗する前の状態になる。なお、カスタマイズデータの更新に成功した場合、もしくは、失敗後のレストアが完了した場合に、Ｓ１００７にてバックアップした更新前のカスタマイズデータおよびＳ１００９にて複製した更新用のカスタマイズデータを補助記憶装置１０４から削除するようにしてもよい。
【００７７】
Ｓ１０１７にて、ファームウェア更新結果通知部２０８は、ファームウェアの更新結果を通知する。通知方法としては、第一の実施形態にて述べた図６のような画面を表示する方法が挙げられる。
【００７８】
以上、本実施形態により、画像形成装置のファームウェア更新専用の起動モードがある場合にも、必要なカスタマイズ設定をユーザの操作を介することなく有効化することができる。
【００７９】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８０】
１０１…画像形成装置、２０５…ファームウェア更新判定部、２０６…ファームウェア更新部、２０７…カスタマイズデータ適用部
【図１】
0006600240.tif 000006
【図２】
0006600240.tif 000007
【図３】
0006600240.tif 000008
【図４】
0006600240.tif 000009
【図５】
0006600240.tif 000010
【図６】
0006600240.tif 000011
【図７】
0006600240.tif 000012
【図８】
0006600240.tif 000013
【図９】
0006600240.tif 000014
【図１０】
0006600240.tif 000015