IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7040075情報処理装置、画像形成装置、アップデート方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-14
(45)【発行日】2022-03-23
(54)【発明の名称】情報処理装置、画像形成装置、アップデート方法
(51)【国際特許分類】
   G06F 8/65 20180101AFI20220315BHJP
   H04N 1/00 20060101ALI20220315BHJP
【FI】
G06F8/65
H04N1/00 C
【請求項の数】 15
(21)【出願番号】P 2018019560
(22)【出願日】2018-02-06
(65)【公開番号】P2018156638
(43)【公開日】2018-10-04
【審査請求日】2020-11-18
(31)【優先権主張番号】P 2017053608
(32)【優先日】2017-03-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(72)【発明者】
【氏名】渡邊 元気
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2014-179039(JP,A)
【文献】特開2001-249815(JP,A)
【文献】特開2014-006571(JP,A)
【文献】特開2009-048484(JP,A)
【文献】特開2012-220963(JP,A)
【文献】特開2000-357093(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
情報処理装置であって、
第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
更新プログラムを取得する取得部と、
更新制御部であって、
前記情報処理装置が前記第1記憶領域を起動対象として動作しているときに、前記第2記憶領域に記憶されているプログラムを前記取得部で取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御する更新制御部と、
を有し、
前記記憶部は、さらに、他のいずれの記憶領域にも同じ情報が記憶されていない第3記憶領域を有し、
前記更新制御部は、前記第3記憶領域に記憶されている情報が更新対象に含まれる場合、前記第3記憶領域に記憶されている情報を、前記情報処理装置のシャットダウンの最中に更新する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記情報処理装置は、さらに、
前記情報処理装置のシャットダウンおよび起動を制御する電力状態制御部を有し、
前記更新制御部は、前記更新プログラムへの更新完了後に、前記情報処理装置の次回の起動時に起動対象となる記憶領域を示す領域特定データを書き替え、
前記電力状態制御部は、前記情報処理装置の次回の起動時に、前記書き替えられた領域特定データを参照して、起動対象となる記憶領域を特定し、前記特定された記憶領域に記憶されたプログラムを起動する、情報処理装置。
【請求項3】
請求項1に記載の情報処理装置において、
前記情報処理装置が前記第2記憶領域に記憶されている更新後のプログラムを用いて起動した後、前記更新制御部は、前記第1記憶領域に記憶された前記プログラムを更新する情報処理装置。
【請求項4】
請求項2に記載の情報処理装置において、
前記更新制御部は、前記更新プログラムへの更新が失敗した場合に、前記領域特定データを書き替えない、情報処理装置。
【請求項5】
請求項1に記載の情報処理装置において、さらに、
前記更新プログラムへの更新の結果を表示する表示部を有する、情報処理装置。
【請求項6】
請求項5に記載の情報処理装置において、
前記表示部は、前記結果が更新失敗である場合、前記情報処理装置を引き続き利用することができることを示すメッセージを表示する情報処理装置。
【請求項7】
請求項1乃至6いずれか一項に記載の情報処理装置において、
前記第3記憶領域に記憶されている情報の更新が失敗した場合、前記情報処理装置の起動の最中に、前記第3記憶領域に記憶されている情報を更新する情報処理装置。
【請求項8】
請求項1に記載の情報処理装置において、
更新対象である前記プログラムは、ハードウェアを制御する第1プログラムを実行させる第2プログラムであり、当該第2プログラムは、ユーザから指示を直接受け、当該指示に基づき前記第1プログラムを実行させ、当該第1プログラムの実行結果をユーザに通知するプログラムであり、
前記更新制御部は、前記第2記憶領域に記憶されている前記第2プログラムを、前記取得部で取得される更新プログラムで更新する、情報処理装置。
【請求項9】
情報処理装置であって、
第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
更新プログラムを取得する取得部と、
更新制御部であって、
前記情報処理装置が前記第1記憶領域を起動対象として動作しているときに、前記第2記憶領域に記憶されているプログラムを前記取得部で取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御する更新制御部と、
設定データを更新する設定データ更新制御部と、
前記更新制御部によるプログラムの更新処理と、前記設定データ更新制御部による設定データの更新処理とを並列で実行させる並列実行制御部と、
を有する、情報処理装置。
【請求項10】
請求項に記載の情報処理装置において、
前記並列実行制御部は、プログラムとの並列更新を許容もしくは禁止する設定データを規定している第1データを取得し、当該第1データに基づき、許容された設定データを前記プログラムと並列で更新させる、情報処理装置。
【請求項11】
請求項10に記載の情報処理装置において、
前記並列実行制御部は、並列更新が禁止された設定データを前記設定データ更新制御部が更新している場合、当該更新処理が終了した後に、前記更新制御部によるプログラムの更新処理を実行させる、情報処理装置。
【請求項12】
画像形成装置であって、
第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
更新プログラムを取得する取得部と、
更新制御部であって、
前記画像形成装置が前記第1記憶領域を起動対象として動作しているときに、前記第2記憶領域に記憶されているプログラムを前記取得部で取得した更新プログラムで更新し、
前記画像形成装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御する更新制御部と、
プリント、コピー、スキャン、FAXのうちの少なくとも1つの画像形成ジョブを行うエンジン部と、
を有し、
前記更新制御部は、前記エンジン部の動作を伴うジョブを実行している最中に、バックグラウンドで、前記更新制御部が前記第2記憶領域に記憶されたプログラムを更新プログラムで更新する画像形成装置。
【請求項13】
情報処理装置において特定の機能を実行させる制御プログラムのアップデート方法であって、
前記情報処理装置は、
第1記憶領域と第2記憶領域と他のいずれの記憶領域にも同じ情報が記憶されていない第3記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部を有しており、
更新プログラムを取得し、
前記情報処理装置が前記第1記憶領域を起動対象として動作しているときに、前記第2記憶領域に記憶されているプログラムを、取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御し、
前記第3記憶領域に記憶されている情報が更新対象に含まれる場合、前記第3記憶領域に記憶されている情報を、前記情報処理装置のシャットダウンの最中に更新する、
アップデート方法。
【請求項14】
情報処理装置において特定の機能を実行させる制御プログラムのアップデート方法であって、
前記情報処理装置は、
第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部を有しており、
更新プログラムを取得し、
前記情報処理装置が前記第1記憶領域を起動対象として動作しているときに、前記第2記憶領域に記憶されているプログラムを、取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御し、
設定データを更新し、
前記プログラムの更新処理と、前記設定データの更新処理とを並列で実行させる、
アップデート方法。
【請求項15】
画像形成装置において特定の機能を実行させる制御プログラムのアップデート方法であって、
前記画像形成装置は、
第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、前記第1記憶領域と前記第2記憶領域には同じプログラムが記憶され、少なくとも前記第1記憶領域または前記第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
プリント、コピー、スキャン、FAXのうちの少なくとも1つの画像形成ジョブを行うエンジン部と、を有しており、
更新プログラムを取得し、
前記画像形成装置が前記第1記憶領域を起動対象として動作しているときに、前記エンジン部の動作を伴うジョブを実行している最中に、バックグラウンドで、前記第2記憶領域に記憶されているプログラムを、取得した更新プログラムで更新し、
前記画像形成装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第2記憶領域となるように制御する、
アップデート方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、画像形成装置、アップデート方法に関する。
【背景技術】
【0002】
画像形成装置などの装置は、不揮発性記憶装置にファームウェアと呼ばれるプログラムを導入し、これを実行して各種処理や制御を行っている。近年、ファームウェアは、不具合の修正や機能の拡張を行うことができるように、書き替えて更新することができる。
【0003】
ファームウェアの更新には、SDメモリカードやUSB(Universal Serial Bus)メモリなどの外部記憶装置から更新プログラムを取得して更新処理を実施する方法や、外部のリモートサーバから更新プログラムを受信して更新処理を実施する方法がある。
【0004】
また従来技術には、ファームウェアを更新する際のメモリ使用量などを低減させるとともに、電源断や失敗時の復旧方法がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のファームウェアの更新処理では、更新処理中は装置を利用することができない。また、停電などによる電源断でファームウェアの更新が失敗した場合、当該復旧処理中も装置を利用することができない。
【0006】
本発明は、ファームウェアの更新中でもユーザが装置を利用することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の一態様は、情報処理装置であって、第1記憶領域と第2記憶領域とを含む複数の記憶領域を有し、第1記憶領域と第2記憶領域には同じプログラムが記憶され、少なくとも第1記憶領域または第2記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、更新プログラムを取得する取得部と、更新制御部であって、情報処理装置が第1記憶領域を起動対象として動作しているときに、第2記憶領域に記憶されているプログラムを取得部で取得した更新プログラムで更新し、情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の第2記憶領域となるように制御する更新制御部と、を有し、前記記憶部は、さらに、他のいずれの記憶領域にも同じ情報が記憶されていない第3記憶領域を有し、前記更新制御部は、前記第3記憶領域に記憶されている情報が更新対象に含まれる場合、前記第3記憶領域に記憶されている情報を、前記情報処理装置のシャットダウンの最中に更新する。
【発明の効果】
【0008】
本発明によれば、ファームウェア更新中の際にも、装置を通常どおり利用することができる。
【図面の簡単な説明】
【0009】
図1】実施形態のシステム構成および画像形成装置のハードウェア構成例を示す図である。
図2】実施形態の画像形成装置が有する機能ブロックの一例を示す図である。
図3】実施形態のパーティション構成例およびファームウェアの更新前後の起動パーティションを例示する図である。
図4】ファームウェアの更新処理が失敗した場合の更新処理前後の起動パーティションを例示する図である。
図5】実施形態の更新処理の一例を示すフローチャートである。
図6】更新処理が正常終了したときの表示例を示す図である。
図7】実施形態の起動時の動作例を示すフローチャートである。
図8】実施形態のバックアップ処理を行わなかった場合の問題点を説明する図である。
図9】単一パーティションの更新処理が正常終了しなかった場合を考慮した起動動作例を示すフローチャートである。
図10】更新処理が失敗した場合の動作例を示すフローチャートである。
図11】更新処理が失敗したときの表示例を示す図である。
図12】実施形態の更新処理の一例を示すシーケンス図である。
図13】実施形態の更新処理の一例を示すシーケンス図である。
図14】実施形態の更新処理の一例を示すシーケンス図である。
図15】実施形態の情報処理装置のハードウェア構成例を示す図である。
図16】実施形態の情報処理装置が有する機能ブロックの一例を示す図である。
図17】第2実施形態の画像形成装置が有する機能ブロックの一例を示す図である。
図18】第2実施形態の設定データ管理テーブルの一例を示す図である。
図19】第2実施形態の更新処理制御テーブルの一例を示す図である。
図20】第2実施形態の更新処理の一例を示すシーケンス図である。
図21】第2実施形態の表示画面の一例を示す図である。
図22】第2実施形態の表示ダイアログの一例を示す図である。
図23】第2実施形態の表示画面の一例を示す図である。
図24】第2実施形態の情報処理装置が有する機能ブロックの一例を示す図である。
【発明を実施するための形態】
【0010】
(第1実施形態)
本実施形態の装置は、複数のパーティションに分割された記憶部を有する。また本実施形態の装置は、同じファームウェアを記憶したパーティションを二つ以上設けて多重化し、装置起動の際は、いずれか1つのパーティションで起動するように制御する。こうすることで、この起動パーティションに不具合が生じても、他のパーティションで起動させることができる。
【0011】
またファームウェアの更新を行う際、本実施形態では、起動対象のパーティションではなく、非起動のパーティションに対し更新処理を行う。そして実施形態では、次回起動時に更新処理を行ったパーティションで起動するように、起動するパーティションを切り替える。本実施形態では、装置の運用稼働中に起動側のパーティションのファームウェアを書き替える必要がなくなり、装置を停止させることなくファームウェアの更新処理を行うことができる。また更新失敗や停電などにより電源断が生じた際には、これまで起動していたパーティションと同じパーティションで起動する。これにより、更新前の状態で、通常どおり稼働させることができる。
【0012】
以下、主に画像形成装置を例にして、本実施形態の態様について図面を参照しつつ説明する。尚、本実施形態の態様は、後述の情報処理装置や、情報処理装置のアップデート方法にも適用可能である。
【0013】
図1に本実施形態の画像形成装置のハードウェア構成例を示す。画像形成装置100は、CPU101(CPU:Central Processing Unit)、ROM102、RAM103(RAM:Random Access Memory)、HDD104(HDD:Hard Disk Drive)、セキュリティチップ105、プリントエンジン部106、操作部107、不揮発性メモリ108、I/F109(I/F:Interface)を有する。
【0014】
CPU101は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現するため、画像形成装置100内の各ハードウェアの動作を統括的に制御する。CPU101は、RAM103をワークエリアとして、ROM102またはHDD104に記憶されたファームウェアや制御プログラムを実行することで、画像形成装置100全体の動作を制御する。
【0015】
RAM103は、CPU101のワークエリアとして、データを揮発的に記憶する記憶装置である。ROM102は、データを不揮発的に記憶する記憶装置であり、本実施形態では、NAND型フラッシュメモリとする。ROM102の記憶領域は、複数のパーティションに分割されており、本実施形態の更新処理の対象であるプログラムが記憶されている。
【0016】
HDD104は、データを不揮発的に記憶する補助記憶装置である。また、不揮発性メモリ108は、EEPROM(Electrically Erasable Programmable Read Only Memory)など、電源を供給しなくてもデータを記憶し続ける記憶装置である。不揮発性メモリ108は、例えばブートローダなど、画像形成装置100が電源オンとなったときに実行される起動プログラムを記憶している。
【0017】
操作部107は、ユーザから各種の入力を受け付けるとともに、各種の情報を表示するユーザインターフェイスである。操作部107は、フラット型のパネルディスプレイを表示装置とし、当該パネルディスプレイ上に積層配置したタッチパネルを入力装置として動作する。操作部107で表示される情報としては、例えば、受け付けたジョブの実行結果や、画像形成装置100の動作状況を示す情報、設定状態などを示す情報などである。
【0018】
I/F109は、ネットワーク130と接続するためのインタフェースを含む。I/F109は、ネットワーク130を介して、外部サーバ150などと通信することができるインタフェースであり、外部サーバ150から更新プログラムなどを取得する取得部である。またI/F109は、SDカードと接続する端子を含み、SDカードからも更新プログラムなどを取得することが可能となる。
【0019】
プリントエンジン部106は、プリント、コピー、スキャン、FAXのうち少なくとも1つの画像形成ジョブを行うエンジン部である。プリントエンジン部106は、例えば、原稿の画像をスキャンして読み取るスキャナ、シートなどの記録媒体への画像形成を行うプロセスユニット、シートを搬送する搬送路などを有する。さらに、プリントエンジン部106は、画像形成後のシートを仕分けるフィニッシャや、原稿を自動給送する自動原稿給送装置を有することもできる。
【0020】
セキュリティチップ105は、TPM(Trusted Platform Module)であり、データの漏洩防止を目的としたチップである。セキュリティチップ105は、データを暗号化してHDD104やROM102などに記憶する。セキュリティチップ105は、HDD104やROM102などに記憶された、暗号化されたデータを復号して利用可能にする。尚、暗号化する鍵と復号する鍵は、同じ鍵を用いてもよいし、互いに関連のある異なった鍵を用いてもよい。以降、暗号化する鍵や復号する鍵を、暗号鍵と称する。
【0021】
図2は、本実施形態のソフトウェア構成例について説明する図である。画像形成装置100は、ファームウェア更新制御部201、鍵管理制御部202、操作制御部203、電力状態制御部204、画像形成部205、記憶部206を有する。尚、図面ではファームウェアを「FW」と表記する。以下、各機能部の詳細を以下に記す。
【0022】
ファームウェア更新制御部201は、ROM102に記憶されている、ファームウェアや各種データの更新処理を行う。ファームウェア更新制御部201は、SDカードやネットワーク130を経由して外部サーバ150からデータ受信することで、更新ファイル情報212、鍵情報213を取得し、記憶部206に記憶する。ファームウェア更新制御部201の機能を実現するプログラムは、不揮発性メモリ108、ROM102、HDD104のいずれかに記憶されているものとする。
【0023】
鍵管理制御部202は、セキュリティチップ105を含み、取得した更新ファイル情報212に添付された署名情報を検証したり、データの暗号化や復号化などを行ったりする。暗号鍵など鍵管理制御部202で扱う制御データも、更新対象となる場合がある。
【0024】
操作制御部203は、ユーザの操作を受け付ける入力部、およびユーザに通知するメッセージを表示する表示部を有する。操作制御部203は、図1に示す操作部107を含み、ユーザから入力を受け付けるとともに、各種の情報を表示する。また操作制御部203は、ユーザが行う操作の全般を制御する機能部でもあり、例えば、主電源をオン状態、オフ状態にする物理スイッチやタッチパネルの操作なども検知する。
【0025】
電力状態制御部204は、画像形成装置100の起動やシャットダウン、省電力モードへの移行や省電力モードからの復帰を制御する。電力状態制御部204は、省電力モードである場合、操作制御部203のパネルタッチ操作や、タイマ、ネットワーク経由の外部アクセスなどをトリガにして省電力モードから復帰させる。電力状態制御部204は、これら以外に、電源オンとなった際に不揮発性メモリ108に記憶された起動プログラムを実行し、ROM102、HDD104に記憶されたプログラムを起動する機能も有する。
【0026】
画像形成部205は、印刷、コピー、スキャン、ファックス等、画像形成装置100が提供する各種機能において、特にシートに画像を形成する機能を提供する機能部である。画像形成部205は、例えば、図1のプリントエンジン部106、およびCPU101で動作するプログラム等によって実現される。
【0027】
記憶部206は、RAM103、ROM102、HDD104の各記憶装置のいずれか、もしくは全てを含む。記憶部206には、SDカードもしくは外部サーバ150から取得する更新ファイル情報212、鍵情報213を一時的に記憶する。更新ファイル情報212は、更新する全てのファイルの名前やパスを一覧にしたリストデータを含み、更新プログラムの本体や設定制御用のデータも含んでいる。鍵情報213は、鍵の更新処理に必要となるファイルをまとめたものである。SDカードや外部サーバ150は、更新ファイル情報212、鍵情報213を圧縮した状態で提供し、ファームウェア更新制御部201が展開して、更新ファイル情報212、鍵情報213を記憶部206に記憶する。
【0028】
本実施形態のファームウェア更新の概要について、図3を参照しつつ説明する。図3は、ROM102のパーティション構成を示しており、いずれのパーティションで起動しているかも図示している。また図3の左図は、ファームウェア更新前の起動パーティションや非起動パーティションの状態を示しており、図3の右図はファームウェアが正常に更新された後の起動パーティションや非起動パーティションの状態を示している。
【0029】
図3に示すように、本実施形態では、システム系ファームウェア、およびアプリケーション系ファームウェアの2つのファームウェアに分別され、これらが事前に導入されている。尚、図面においては、アプリケーション系ファームウェアをアプリ系ファームウェアと記している。
【0030】
アプリケーション系ファームウェアは、システム系ファームウェアとは異なるファームウェアである。アプリケーション系ファームウェアは、コピー、スキャン、プリント、FAX送受信などのジョブのパラメータ値や実行指示をユーザから直接受け付け、実行結果などをユーザに直接通知するファームウェアである。システム系ファームウェアは、アプリケーション系ファームウェアから指示を受けて、プリントエンジン部106などのハードウェアを制御するプログラムである。システム系ファームウェアは、ハードウェアの動作結果をアプリケーション系ファームウェアに戻す。
【0031】
ROM102は、6つの記憶領域に論理的に分割されている。ここではそれぞれパーティション0~5とする。パーティション0およびパーティション1は、双方同じシステム系ファームウェアを記憶するためのパーティションである。画像形成装置100は、いずれか一方のパーティションに記憶されているファームウェアで起動し、他方のパーティションに記憶されているファームウェアを使用しない。パーティション0およびパーティション1は、このような動作となるように二重化されている。以降、必要に応じて、起動している側のパーティションを起動パーティションと称し、起動の際に使用しなかったパーティションを非起動パーティションと称する。
【0032】
パーティション2およびパーティション3は、双方同じアプリケーション系ファームウェアを記憶するためのパーティションである。パーティション2およびパーティション3も、一方が起動パーティションとなり、他方は非起動パーティションとなるように二重化されている。
【0033】
パーティション4はデータを記憶するパーティションであり、ユーザ所有のデータやソフトウェアが動作するための一時ファイルなどが記憶される領域である。パーティション5は、暗号規格、鍵長を定義した設定ファイルや暗号鍵など、セキュリティチップ105が処理するにあたり必要となる情報が記憶される。パーティション4、パーティション5は、本実施形態では二重化されていないパーティションである。このように二重化されていないパーティションを、必要に応じて単一パーティションと称する。
【0034】
尚、パーティション0およびパーティション2を、第1記憶領域とし、パーティション1およびパーティション3を、第2記憶領域とする。またパーティション4、5の単一パーティションをそれぞれ第3記憶領域とする。またシステム系ファームウェアを第1プログラムとし、アプリケーション系ファームウェアを第2プログラムとする。
【0035】
図3の左図の状態の場合、システム系ファームウェアはパーティション0で起動し、アプリケーション系ファームウェアはパーティション2で起動している。パーティション1、3は非起動パーティションである。ファームウェア更新制御部201は更新処理を行う場合、非起動パーティションに対し更新処理を行う。すなわち、ファームウェア更新制御部201は、システム系ファームウェアを更新する場合は、非起動のパーティション1に書き込み、アプリケーション系ファームウェアを更新する場合は、非起動のパーティション3に書き込んで、更新処理を行う。更新処理が正常に完了した場合、ファームウェア更新制御部201は、画像形成装置100の再起動の際に、更新を行ったパーティションのファームウェアで起動するように制御する。尚、ユーザが操作することによって画像形成装置100が再起動するものとするが、例えば深夜などの時間帯を指定して、指定時間に自動で再起動してもよい。
【0036】
電源オンとなった際には、上記のおとり、電力状態制御部204がブートローダなどの起動プログラムを用いて起動処理を行う。電力状態制御部204は、いずれのパーティションで起動するかを、所定の記憶領域に書き込まれた、起動の設定を示すデータを参照して決定する。ファームウェア更新制御部201は、更新処理が成功した場合、この所定の記憶領域に記憶された、設定データを書き替えて、更新後のパーティションで起動するよう制御する。以降、この設定データの書き替え処理をスイッチ処理と称し、書き替え対象の設定データを切り替えデータ(領域特定データ)と称する。
【0037】
切り替えデータには、起動するファームウェアが記憶されているアドレスやファイル名、パーティションの識別情報など、起動するファームウェアを特定することができるデータを含んでいる。また切り替えデータには、パーティション0とパーティション1とを切り替えるためのデータと、パーティション2とパーティション3とを切り替えるためのデータとの2つのデータがある。
【0038】
ファームウェア更新制御部201は、これまではパーティション0およびパーティション2で起動していた状態を、スイッチ処理を行うことで、図3の右図に示すように、パーティション1、パーティション3で起動するように切り替える。また、例えば非起動パーティション1のみを更新し、非起動パーティション3については更新しなかった場合、ファームウェア更新制御部201は、パーティション0、1の切り替えデータのみをスイッチ処理してもよい。
【0039】
ファームウェア更新制御部201は、更新処理の最後にスイッチ処理を行うものとし、更新処理が正常に終了した場合にのみスイッチ処理を行う。すなわち、更新処理が異常終了した場合、スイッチ処理までたどり着かず、切り替えデータは書き替わらない。
【0040】
ファームウェア更新制御部201は、バックグラウンドで更新処理を行う。すなわち、プリンタ・スキャナ・FAX・コピーを含む画像形成動作であるジョブを実行している最中やユーザがジョブパラメータの設定を行っている最中、省電力化モード中、スタンバイ中などのいずれの状態であっても、ファームウェア更新制御部201は、これらの状態を維持したまま、バックグラウンドで更新処理を行う。
【0041】
また、単一パーティションであるパーティション4やパーティション5は、画像形成装置100のシャットダウンの動作内で行う。暗号鍵のデータは、ネットワーク通信時のセキュリティ検証などでも利用されるケースがある。そのため、バックグラウンドで暗号鍵のデータを変更すると、フォアグラウンドでの動作に支障が出る可能性がある。そこで、ファームウェア更新制御部201は、フォアグラウンドの動作を終了するシャットダウンのタイミングで、暗号鍵などのデータを更新し、次回起動時に更新済みの状態で起動する。
【0042】
停電などで正常にシャットダウン処理が行われず、パーティション4やパーティション5についての更新処理が実施されなかった場合、ファームウェア更新制御部201は、次回起動時にこれらのパーティションについての更新処理を行う。
【0043】
図3に示すように、本実施形態では、起動パーティションや非起動パーティションのマウントパスは、起動パーティション、非起動パーティションでそれぞれ同じパスが割り当てられるようにする。図3の場合、起動パーティションのパスを、更新前後ともに/flash/P0、P2、P4、P5とする。また非起動パーティションのパスを/flash/P1、P3とする。こうすることで、ROM102内のデータを参照しているモジュールがある場合、常に同じマウントパスを参照すればよいことになる。尚、ファームウェア更新制御部201は、非起動パーティションのパスである/flash/P1、P3にアクセスすることで、更新処理を行う。この実装により、動作しているアプリケーションへの影響は限定的となる。
【0044】
図4は、ファームウェアの更新に失敗した場合の、起動パーティション、非起動パーティションの状態を示した図である。バックグラウンドの更新処理中に停電などが発生して電源断となった場合や、デバイス不良等による書込み失敗となった場合、更新処理は正常終了しない。正常終了しなかった場合、上記のとおり、スイッチ処理までたどり着かないため、スイッチ処理が行われずに起動パーティションの切り替えが発生しない。よって、次回起動時、画像形成装置100は前回の起動パーティションと同じパーティションで問題なく起動することができる。
【0045】
図5は、更新処理の動作例を示すフローチャートである。ファームウェア更新制御部201は、SDカードや外部サーバ150から更新用データを受信した場合、またはユーザから更新指示を受け付けた場合(S501)、今現在いずれのパーティションで起動しているかの情報を取得する(S502)。ファームウェア更新制御部201は、上記の切り替えデータを参照することで、いずれのパーティションで起動しているかの情報を取得する。次いでファームウェア更新制御部201は、鍵領域などの単一パーティションが更新対象となっているかを判定する(S503)。これは、例えば更新ファイル情報212に含まれる、更新対象のファイルのパス名などを参照することで判定することができる。
【0046】
単一パーティションが更新対象となっていない場合(S503:No)、ファームウェア更新制御部201は、非起動パーティションに対して更新処理を行う(S504)。尚、本実施形態では、非起動パーティション内の全てのデータを書き替えて更新するのではなく、更新が必要なファイルのみを書き替える。例えばスキャン用ファームウェアが更新対象となっており、その他のファームウェアは更新対象となっていない場合、スキャン用ファームウェアに関するファイルのみが書き替わる。
【0047】
更新完了後、ファームウェア更新制御部201はスイッチ処理を行い(S505)、次回起動の際の起動パーティションを切り替える。ファームウェア更新制御部201は、操作制御部203を動作させて、ファームウェアのアップデートが終了したこと、および再起動の操作によって更新後のファームウェアで起動する旨を通知する(S506)。このときの操作制御部203の表示例を図6に示す。ユーザは、図6に示すダイアログを確認し、確認ボタンが押下されると、通常のメニュー画面などに戻る。このメニュー画面内の規定の表示領域に、図6に示すメッセージを小さく表示してもよい。
【0048】
更新対象のデータに、二重化でない単一パーティションのデータが含まれる場合(S503:Yes)、ファームウェア更新制御部201は、二重化されたパーティションの非起動パーティションのみを、バックグラウンドで更新する(S511)。そしてファームウェア更新制御部201は、パーティション4、5の単一パーティションの更新データはHDD104に一時保存しておく(S512)。バックグラウンドでの更新が完了した後、ファームウェア更新制御部201はスイッチ処理して(S513)、次回起動するパーティションを切り替える。ファームウェア更新制御部201は、操作制御部203を動作させて、ファームウェアのアップデートが終了したこと、および再起動の操作によって更新後のファームウェアで起動する旨を通知する(S514)。このとき、シャットダウン中に引き続きアップデートの処理を継続することをユーザに通知してもよい。
【0049】
ユーザの操作によりシャットダウンが開始されると、ファームウェア更新制御部201は、二重化していない単一パーティション4、5に対して更新処理を行う(S515)。このシャットダウン時の更新処理が正常に終了したら、ファームウェア更新制御部201は、HDD104に一時保存していた更新データを削除する(S516)。
【0050】
図7は、画像形成装置100が起動するときの動作例を示したフローチャートである。電源オンになると、電力状態制御部204は、画像形成装置100の起動処理を行う(S701)。S701では、電力状態制御部204は、切り替え用データで示されるパーティションで起動する。
【0051】
起動処理が完了すると、ファームウェア更新制御部201は、前回の運用稼働中にファームウェアの更新を実施したかを判定する(S702)。二重化しているパーティションについての更新ファイル情報212が現存している場合、ファームウェア更新制御部201は、前回の起動運用中に更新処理を実施したと判定する。またファームウェア更新制御部201は、更新ファイル情報212が無い場合、実施していないと判定する。
【0052】
前回の運用稼働中にファームウェアの更新を実施した場合(S702:Yes)、ファームウェア更新制御部201は、今回非起動となったファームウェアに対し、更新ファイル情報212のファイルで更新してバックアップ処理を行う(S703)。または、ファームウェア更新制御部201は、今回非起動となったファームウェアに対し、今回起動となった更新ファームウェアのファイルを上書きコピーしてバックアップ処理を行ってもよい。これらのいずれかを行うことで、今回非起動のパーティションのファームウェアのバージョンと、今回起動のパーティションのファームウェアのバージョンとが一致し、いずれのパーティションも最新の状態となる。このバックアップ処理が終了すると、二重化されたパーティションを対象とした更新ファイル情報212を削除する(S704)。
【0053】
ここで、S703のバックアップ処理の必要性について、図8を用いて説明する。ここでは、アプリケーション系ファームウェアを更新する場合について言及し、スキャンアプリケーション、FAXアプリケーションの2つを例にして説明する。尚、システム系ファームウェアでも同様である。
【0054】
まずは、バックアップ処理を実行しない場合について、図8上段を参照して説明する。まず図8上段の左図に示すように、スキャンアプリケーションのバージョンがv1.1、FAXアプリケーションのバージョンがv1.1であるとする。
【0055】
本実施形態では、上記のとおり必要なファームウェアのみ更新する動作となっており、スキャンアプリケーションとFAXアプリケーションとを、それぞれ個別に更新することができる。ここで例えば、ファームウェア更新制御部201が非起動のパーティション3のFAXアプリケーションのバージョンをv1.2に更新し、再起動を行うと、図8上段の中央図の状態となる。すなわち、v1.2にバージョンアップした、パーティション3のFAXアプリケーションが起動する。一方、非起動のパーティション2のFAXアプリケーションは、v1.1のままとなっている。
【0056】
この図8上段の中央図の状態で運用稼働し、次に非起動パーティション2に対してスキャンアプリケーションのバージョンをv1.1からv1.2に更新する処理を行い、再起動すると、図8上段の右図の状態となる。すなわち、FAXアプリケーションのバージョンが元のv1.1に戻った状態で起動されてしまう。このように、当初起動状態であったパーティションが、第1のファームウェアの更新処理により非起動状態となり、次いで他の第2のファームウェアの更新処理によって起動状態になると、第1のファームウェアは、更新前のバージョンに戻った状態で起動する。これは、二重化している各パーティションで、新旧のファームウェアが混在してしまい、最新のファームウェアを保つことができないことに起因する。
【0057】
これを回避するため、本実施形態では、起動パーティション内のファームウェアと非起動パーティション内のファームウェアのバージョンを揃えるよう、バックアップを行う。この場合の例を図8下段に示す。
【0058】
図8下段の左図の状態は、図8上段の左図と同じであり、スキャンアプリケーション、FAXアプリケーションのバージョンのバージョンは、それぞれv1.1である。ここでファームウェア更新制御部201が更新処理を行い、非起動のパーティション3のFAXアプリケーションのバージョンをv1.2に更新して再起動を行う。ファームウェア更新制御部201は、再起動後に、今回非起動となったパーティション2のFAXアプリケーションも、v1.2となるようにバックアップをとる。この状態が図8下段の中央図である。すなわち、ファームウェア更新制御部201は、起動しているパーティションのファームウェアと、非起動のパーティションのファームウェアとのバージョンを、常に同じとなるようにする。
【0059】
図8下段の中央図の状態で、次に非起動のパーティション2のスキャンアプリケーションをv1.2に更新して再起動し、バックアップ処理を行うと、図8下段の右図の状態となる。FAXアプリケーションは、先の図8下段の左図の状態から図8下段の中央図の状態までの間にバックアップ処理をしたことから、バージョンダウンが発生せずにv1.2を維持して、パーティション2にて起動状態となる。またスキャンアプリケーションのバージョンも、バックアップ処理により、起動パーティション、非起動パーティションのいずれでもv1.2となる。このように、バックアップ処理を行うことで、起動状態、非起動状態が繰り返されてもファームウェアのバージョンを両パーティションで最新のものに維持することができる。尚、バージョンの整合性を図るため、バックアップ処理が完了するまでは次回のファームウェア更新は受け付けない、とする実装でもよい。
【0060】
図9は、起動時の動作を示すフローチャートであり、シャットダウンの処理が停電などの理由で正常に行われず、単一パーティション4、5の更新が正常に行われなかった場合を考慮した動作例を示している。
【0061】
画像形成装置100の電源がオン状態になると(S901)、ファームウェア更新制御部201は、前回の運用稼働中の際に、ファームウェアの更新処理を実施したかを判定する(S902)。更新処理を実施しなかった場合(S902:No)、電力状態制御部204は、そのまま起動を行って(S903)、終了となる。
【0062】
一方、前回の運用稼働中にファームウェアの更新処理を実施した場合(S902:Yes)、ファームウェア更新制御部201は、単一パーティション4、5の更新が未完了であるかを判定する(S904)。単一パーティション4、5の更新が正常終了すると、図5のS516で説明した通り、単一パーティション4、5に関する更新ファイル情報212は削除される。このことから、ファームウェア更新制御部201は、パーティション4、5に関する更新ファイル情報212が残っているか否かにより、更新処理が未完了であるかを判定することができる。
【0063】
単一パーティション4、5についての更新処理が完了している場合(S904:No)、電力状態制御部204は、起動処理を行う(S905)。ここでは、今まで非起動であったパーティションから起動される。そしてファームウェア更新制御部201は、上記のバックアップ処理を行う(S906)。
【0064】
単一パーティション4、5についての更新処理が未完了である場合(S904:Yes)、ファームウェア更新制御部201は、単一パーティション4、5についての更新処理をこの段階で行う(S907)。更新処理が完了すると、電力状態制御部204は、起動処理を行う(S908)。尚、S908の起動も、今まで非起動であったパーティションから起動される。またファームウェア更新制御部201は、残っている更新ファイル情報212を削除して(S909)、バックアップ処理を行う(S910)。
【0065】
図10は、更新処理が失敗したときの動作例を示すフローチャートである。図5と同様に、更新指示を受け付けると(S1001)、ファームウェア更新制御部201は起動パーティションを取得し(S1002)、その後非起動パーティションを更新する(S1003)。
【0066】
この更新処理中、更新が失敗したり、停電などで電源断が発生したりする場合(S1004)、電源をオフ状態からオン状態にして再起動しても(S1005)、前と同じファームウェアで起動される(S1006)。これは、スイッチ処理が発生しなかったため、電力状態制御部204が前回と同じパーティションで起動処理を行ったからである。
【0067】
ファームウェア更新制御部201は、操作制御部203を動作させて、更新処理が正常終了しなかったことを通知するため、更新失敗ダイアログを表示する(S1007)。尚、ファームウェア更新制御部201は、更新処理を行う直前にフラグファイルを出力し、更新が正常に完了すると当該フラグファイルを削除する、などの動作を加えることで、このフラグファイルの有無により正常終了したか失敗したか判定することができる。
【0068】
図11に、S1007で表示されるダイアログの一例を示す。本実施形態では、更新が失敗したこと、および引き続き装置を利用することができる旨のメッセージが表示される。図11に示す確認ボタンが押下されると(S1008)、今までとおり、同じファームウェアで利用可能となる(S1009)。また、更新操作を改めて行うことで、同様のファームウェア更新処理を行うことができる。尚、図11に示す確認ボタンが押下されると、通常のメニュー画面などに戻るが、このメニュー画面内の規定の領域に、図11に示すメッセージを小さく表示してもよい。
【0069】
図12図13は、更新処理の動作を示すシーケンス図である。ユーザがファームウェアを記憶したSDカードを挿入し(S1200)、操作制御部203がこれを検知すると(S1201)、ファームウェア更新制御部201は、SDカードから更新用のデータを取得する。当該更新用データは圧縮ファイルであるため、ファームウェア更新制御部201は、このファイルを展開して(S1202)、記憶部206に記憶する(S1203)。展開先は、HDD104などが該当する。これにより、更新ファイル情報212、鍵情報213が取得される。
【0070】
ファームウェア更新制御部201は、ファームウェアの更新を行うことを、電力状態制御部204、画像形成部205に通知する(S1204、S1205)。従来は、この動作によりジョブの実行や省電力モードへの移行などを行わないように制限していたが、本実施形態では、バックグラウンドで更新処理を行うため、何も制限せずに通知のみが行われるものとする。
【0071】
ファームウェア更新制御部201は、更新ファイル情報212、鍵情報213の検証を行う(S1206)。ここでは、ファームウェア更新制御部201は、鍵管理制御部202を動作させて署名を検証して更新用データが正規のものかを検証するとともに、機種情報、仕向け情報、接続機器情報の確認を行う。
【0072】
ファームウェア更新制御部201は、上記の切り替えデータを参照して、現在起動しているパーティションの識別情報などを取得することで、非起動パーティションを決定する(S1207)。ファームウェア更新制御部201は、非起動パーティションに対し、更新ファイル情報212に基づき更新処理を行う(S1208)。
【0073】
更新処理が終了したら、ファームウェア更新制御部201は、次いで正常に書き込まれたかの検証を行う(S1209)。この検証結果が適合である場合、ファームウェア更新制御部201は、次回起動時には現在の非起動パーティションで起動するように、スイッチ処理を行う(S1210)。
【0074】
上記のS1200~S1202の処理は、ユーザの操作や、更新用ファイルを取得したことをトリガにして行われるが、S1203~S1210の処理は、ユーザの操作や機器状態、ジョブの実行に影響を与えることなく、バックグラウンドで行われる。
【0075】
次いで、画像形成装置100のシャットダウン動作について説明する。操作制御部203は、ユーザによる主電源キーの操作を検知して、電力状態制御部204に電源オフの信号を出力する(S1221、S1222)。電力状態制御部204は、シャットダウンの開始をファームウェア更新制御部201に通知する(S1223)。ファームウェア更新制御部201は、データ領域のパーティション4、および鍵領域のパーティション5に対して、更新処理を行う(S1224)。この処理は、鍵情報213が存在するなど、当該領域が更新対象である場合に行われる。
【0076】
更新処理の後、電力状態制御部204は、操作制御部203、画像形成部205、記憶部206、ファームウェア更新制御部201、鍵管理制御部202に対してシャットダウン処理を実行する(S1225~S1229)。そして電力状態制御部204は、自らもシャットダウンする(S1230)。これにより、画像形成装置100は正常終了し、電源オフの状態となる。
【0077】
図13は、画像形成装置100の起動時の動作を示すシーケンス図である。操作制御部203は、ユーザによる主電源キーの操作を検知して、電力状態制御部204に電源オンの信号を出力する(S1301、S1302)。電力状態制御部204は、起動開始の通知をファームウェア更新制御部201に通知する(S1303)。ファームウェア更新制御部201は、鍵情報213の有無や単一パーティション4、5に関する更新ファイル情報212の有無などを判定することで、シャットダウン時の更新が正常に終了したかを判定する。ここで、正常に終了していない場合、データ領域のパーティション4、および鍵領域のパーティション5に対する更新処理を行う(S1304)。
【0078】
ファームウェア更新制御部201から完了通知を受けた電力状態制御部204は、切り替えデータを参照して、起動パーティションを決定し(S1305)、当該パーティションで起動処理を実行する(S1306、S1307)。電力状態制御部204は、正常起動したことをファームウェア更新制御部201に通知する(S1308)。この通知を受信したファームウェア更新制御部201は、バックアップ処理を行い、現在の起動パーティションと非起動パーティションとでのファームウェアのバージョンを最新のものにそろえる(S1309)。
【0079】
図14は、更新用データの取得先を外部サーバ150とした場合の更新処理を示す図である。更新用データがある場合、外部サーバ150は画像形成装置100に当該更新用データを送信する(S1401)。尚、本実施形態では、データを送信する側である外部サーバ150が、能動的にデータを送信するプッシュ型のデータ配信方法を採用する。尚、ファイアウォールによる通信制限が設けられている場合や、NAT(Network Address Translation)が設けられているネットワーク環境などでは、プッシュ型のデータ送信が機能しない場合もある。このような場合は、画像形成装置100側が能動的にデータを取りに行くプル型でもよい。
【0080】
以降のS1202からS1210までの処理は、図12に示すS1202からS1210までの処理と同様である。更新処理が完了すると、ファームウェア更新制御部201は、更新完了通知を外部サーバ150に送信する(S1402)。更新完了通知を受信した外部サーバ150は、ログ出力や管理データの書き替えを行う(S1403)。尚、S1402、S1403は、画像形成装置100の次回起動時でもよい。
【0081】
本実施形態の画像形成装置は、ROM内のファームウェアを二重化することで、装置の動作を止めることなく、バックグラウンドで非起動パーティションに対して更新を行うことができる。また、本実施形態の画像形成装置は、更新処理が正常終了した後にスイッチ処理を行う。よって、更新処理に失敗した場合や、更新処理中に停電等で電源断となった場合は、スイッチ処理が行われないため、再起動後でもこれまでと同じパーティションで起動される。これにより、更新前の状態で正常に起動される。
【0082】
オフィスなどで使用する画像形成装置は、多数のユーザが使用する装置であるため、更新処理で運用が停止すると、その分影響も大きい。本実施形態のように、停止させることなくバックグラウンドで更新処理を行うことで、可用性に優れ、且つ、容易に保守を行うことができる。
【0083】
上記実施形態では、単一パーティションについては、シャットダウン時、起動時に更新するものとしたが、画像形成装置100の非使用時であればよい。尚、シャットダウン時や起動時は、画像形成装置100の非使用時の一つの態様である。また、単一パーティションの更新処理は、再起動しても更新データが残るように、HDD104などの不揮発性記憶装置に更新データを一時記憶することについても言及した。
【0084】
また、一定時間経過後に自動で更新を行い再起動する実装を、ファームウェア更新制御部201に付加してもよい。また、一定時間経過後に自動で更新を行い再起動することを、例えば外部サーバ150に確認する実装を、ファームウェア更新制御部201に付加してもよい。さらに、外部サーバ150からの指示またはユーザの操作によって、当該更新の時間を変更することも可能とする実装を、ファームウェア更新制御部201に付加してもよい。
【0085】
上記では、パーティションを二重化する実装例について言及したが、二以上の多重化であれば、上記実施形態を実現することができる。また、1つの記憶装置に対して複数のパーティションを設けてもよいし、複数の記憶装置に対して複数のパーティションを設けてもよい。また、パーティションで分割する構成とはせず、1つの記憶装置を複数有した構成としても、記憶領域自体は複数となる。この構成でも、上記の実施形態を実現することも可能である。また、本実施形態では、「二重化」や「多重化」と表記したが、例えば「二面化」や「多面化」、「二つの領域」や「複数の記憶領域」などと表記してもよい。
【0086】
尚、記憶部は、単数のハードウェア(ROMやHDD)であっても、複数のハードウェア(ROMやHDD)から成ってもよい。
【0087】
本実施形態の上記態様を、汎用コンピュータなどの情報処理装置にも適用させることができる。図15を用いて説明すると、情報処理装置1500は、CPU1501、ROM1502、RAM1503、HDD1504、セキュリティチップ1505、操作部1507、不揮発性メモリ1508、I/F1509を有する。図15に示す各ハードウェアは、図1に示すハードウェアと同様である。また図16は、情報処理装置1500の機能ブロックである。情報処理装置1500は、ファームウェア更新制御部1601、鍵管理制御部1602、操作制御部1603、電力状態制御部1604、記憶部1606を有する。記憶部1606には、更新ファイル情報1612、鍵情報1613が記憶されている。これら各機能ブロックやデータは、いずれも図2に示すものと同様の機能を有し、上記と同様の動作を行うことができる。図15図16に示す情報処理装置1500は、図3に示すパーティション構成を有しており、上記と同じように、バックグラウンドで更新処理やスイッチ処理、メッセージ表示などを行うことができる。
【0088】
以上に詳説したように、パーティションを多重化し、非起動側のパーティションに対してバックグラウンドでファームウェアの更新を行うことで、ファームウェア更新中も機器を通常どおり利用することができる。
【0089】
(第2実施形態)
上記の第1実施形態や従来技術では、画像形成装置のファームウェアを最新のものに更新する際や、画像形成装置をリプレースする際、まずはファームウェアを更新し、その後に設定値やユーザデータなどの各種データ(以下、設定データもしくは単に設定値と称する)の更新処理を行う。すなわち、ファームウェアの更新と設定データの更新とを、それぞれ個別に実行しているため、時間がかかるという問題がある。
【0090】
第2実施形態では、ファームウェアの更新と設定データの更新とを並列で実施することで、更新時間を削減する実装例について説明する。尚、第2実施形態では、主に画像形成装置の新旧交換(リプレース)に伴うデータ移行を想定して説明するが、画像形成装置の新規導入の際や、既設の画像形成装置のファームウェアや設定データの更新の際にも適用される。
【0091】
図17は、第2実施形態におけるソフトウェア構成例について説明する図であり、上記第1実施形態と同様の部位については、第1実施形態と同様の符号を付している。またハードウェア構成については、第1実施形態と同様である(図1参照)。第2実施形態における画像形成装置100は、第1実施形態に加え、設定データ更新制御部1701、並列実行制御部1702を有し、記憶部206には、設定データ管理テーブル1710、更新処理制御テーブル1711、設定データ1712が記憶される。
【0092】
設定データ更新制御部1701は、設定データを更新する機能部である。設定データ更新制御部1701は、ファームウェアの更新と同期をとるため、各フェーズで並列実行制御部1702に実行可否を問い合わせ、実行可である場合に更新処理を進める。
【0093】
並列実行制御部1702は、ファームウェアの更新と設定データの更新とを並列で実行するように制御する。例えばスキャナ用のファームウェアと、ハードウェア全般に関係する設定データとを同時に更新すると、状況によってはデータの不整合などが生じるおそれがあるが、スキャナ用のファームウェアと、スキャナとは関連の無い操作画面の設定データとを同時に更新しても、問題は生じない。このように、並列で更新することができる組み合わせと、できない組み合わせが存在する。並列実行制御部1702は、効率的に処理を進められるように、ファームウェアおよび設定データの両方の更新処理の同期を取りながら、並列で実行するよう制御する。この制御は、記憶部206に記憶されている設定データ管理テーブル1710、更新処理制御テーブル1711に基づき行われる。
【0094】
設定データ管理テーブル1710、更新処理制御テーブル1711は、更新処理の際に並列実行制御部1702により参照されるテーブルであり、詳細については後述する。設定データ1712は、更新ファイル情報212、鍵情報213とともに、SDカードや外部サーバ150(図1参照)から提供され、一時的に記憶部206に記憶される。設定データ1712は、設定データの本体と、更新する全ての設定ファイルの名前やパスを一覧にしたリストデータとを含んでいる。尚、第1実施形態においては、更新ファイル情報212に制御データなどの設定データを含むものとしたが、第2実施形態では、別途設定データ1712として提供される。
【0095】
また第2実施形態におけるファームウェア更新制御部201は、並列実行制御部1702との間で連携しながら動作する。
【0096】
第2実施形態においては、ファームウェアや設定データを、その種類に応じて、エンジン、コントローラ、操作部の3つに区分し、各区分ごとにフェーズ分けして更新処理を行う。ここで、エンジン、コントローラ、操作部について説明する。エンジンは、プロッタ、スキャナ、フィニッシャなどのハードウェア機器を直接的にソフトウェア制御するドライバソフトウェア群であり、第1実施形態におけるシステム系ファームウェアに相当する。コントローラは、画像形成装置100のコピー機能やプリンタ機能などを実現するソフトウェア群であり、第1実施形態におけるアプリケーション系ファームウェアに相当する。また操作部は、画面表示や操作に関する制御を担うソフトウェア群であり、例えばWebベースで表示制御が行われる場合、操作部はWebサーバプログラムおよびブラウザプログラムに相当する。
【0097】
エンジンの設定データとしては、例えばシート搬送速度やトナーの出力量、シートをスキャンする際のスキャナの移動速度、本体からフィニッシャにシートを搬送する際のタイミング値などを挙げることができる。コントローラの設定データとしては、コピーやプリンタ処理を行う際のデフォルト値(白黒/カラーの別、シートサイズや拡大/縮小率、解像度など)、画像をシート上に形成する際に行われる各画像処理用の設定値などである。操作部の設定データとしては、操作制御部203により表示されるボタン用画像データ(アイコン)、入力欄やボタンの表示サイズ、配置関係を示すデータなどである。ここで示したものはあくまで例示であり、エンジン、コントローラ、操作部は、これら以外にも様々な設定データを用いて処理を行う。
【0098】
図18は、設定データ管理テーブル1710の一例を示す図である。図18においては、説明上、「エンジン」、「なし」などの文字列を記しているが、事前に割り振られた数値データやコードなどがテーブル内に格納されてもよい。
【0099】
設定データ管理テーブル1710は、更新する各設定データを管理するためのテーブルである。設定データ管理テーブル1710は、各設定データの識別番号(図中の設定値番号)、設定値格納先(具体的にはディレクトリやフォルダの名前)、当該設定データを利用するデバイスを対応付けて記憶する。並列実行制御部1702は、設定データの格納先や利用デバイスの動作、変更可能設定値(後述の図19)が重ならないように、更新処理を実行させる。すなわち、設定データ管理テーブル1710は、当該設定データの更新時に何に影響するのかを管理しているテーブルとなる。
【0100】
例えば、上から2段目のレコード(設定値番号:SP1-180-020)は、当該設定データがエンジン用の格納フォルダに記憶され、且つ、スキャナに影響を与える設定データであることを規定している。このレコードに関する設定データの更新処理が行われる場合、並列実行制御部1702は、エンジン用のフォルダに格納されるファームウェアの更新処理を禁止するとともに、スキャナの使用を不可とするように制御する。ユーザは、当該設定データを更新している最中において、スキャナを使用するスキャン処理やコピー処理、FAX送信処理を行うことができない。一方、スキャナの動作を伴わない、ネットワーク経由で印刷データを取得するプリンタ処理については、実行させることができる。
【0101】
このほかの例として、上から5段目のレコード(設定値番号:SP5-552-785)は、コントローラ用として割り振られた格納先に記憶され、影響を与える機器が無い設定データを規定している。このレコードの場合、並列実行制御部1702が当該設定データを更新している最中でも、ユーザはコピー処理やプリンタ処理、スキャナ処理などを行うことができる。
【0102】
図19は、更新処理制御テーブル1711の一例を示す図である。図19においても、説明上、各項目値として文字列を記しているが、事前に割り振られた数値データやコードなどが格納されてもよい。
【0103】
更新処理制御テーブル1711は、ファームウェア更新時に、許容する動作や禁止する動作をファームウェア毎に規定しているテーブルである。更新処理制御テーブル1711は、ファームウェア毎に、その名称(図中の更新対象FW)、格納先デバイス、変更可能設定値、更新中パネル操作の可否、更新中に動作可能なデバイスを対応付けて記憶する。
【0104】
変更可能設定値は、当該更新プログラムとの並列更新を許容もしくは禁止する設定データを規定しているデータ(第1データ)である。例えば上から1段目の「コントローラシステム」のファームウェアを更新する場合、全ての設定データと並列で更新することができる。一方、上から8段目の「操作部システム」のファームウェアを更新する場合、操作部の設定データと並列で更新することができない。また「操作部システム」のファームウェアを更新する場合、再起動が必要となることも規定されている。
【0105】
更新中パネル操作は、一時的もしくは更新中全期間で操作制御部203を利用することができるか否かを規定している。パネル操作不可のファームウェアを更新する場合、ユーザはパネル操作を行うことができない。同様に、更新中動作可能デバイスで許容されていないデバイスを使用する操作も、更新処理中は行うことができない。例えば、図19の例において、下から3段目の「プロッタ」のファームウェアを更新している場合、パネル操作は可能だが、プロッタとスキャナの利用は不可となる。この場合、ユーザはコピーの設定操作までを行うことができるが、コピーの実行はできない。
【0106】
図20は、第2実施形態での動作例を示すシーケンス図である。ここでは、コントローラ、操作部、エンジンの順でファームウェアが更新され、エンジン、操作部、コントローラの順で設定データが更新されるものとする。設定データに関しては、アドレス帳などの移行も最後に行われるものとして説明する。またここでは、説明を簡略にするため、コントローラとしては、図19に示す「コントローラシステム」、操作部としては「操作部システム」、エンジンとしては「プロッタ」の3つのファームウェアを更新対象とする。
【0107】
また図20に示す処理が実行される前に、操作制御部203は、図21に示す画面を表示する。図21の画面例は、設定データの更新のみ行うのか、ファームウェアの更新のみを行うのか、もしくは両方を実施するのかをユーザに選択させるための画面である。ここで、両方実施を示すボタン2101が押下されると、図20に示す処理が実行される。
【0108】
設定データ更新制御部1701は、並列実行制御部1702にエンジン設定データの更新可否を問い合わせる電文を出力し(S2001)、これとともに、エンジンの設定データを記憶部206から取得する(S2002)。
【0109】
エンジン設定データの更新可否の問合せ電文を入力した並列実行制御部1702は、ファームウェア更新制御部201が今現在でいずれのファームウェアに対して更新を行っているかを判定する。並列実行制御部1702は、ファームウェア更新制御部201が今現在更新しているファームウェアの名称(図19の更新対象FWの項目)、設定データ更新制御部1701が今現在更新している設定データの識別情報(図18の設定値番号)を、リアルタイムに記憶している。並列実行制御部1702は、この記憶内容と、図19に示す変更可能設定値とに基づき、判定動作を行う。尚、ステップS2001の時点では、ファームウェア更新制御部201は更新処理を行っていないため、並列実行制御部1702は、更新許可の電文を設定データ更新制御部1701に出力する(S2003)。
【0110】
更新許可の電文を入力した設定データ更新制御部1701は、エンジン設定データの更新処理を開始する(S2004)。設定データ更新制御部1701がエンジン設定データの更新処理を行っている最中に、並列実行制御部1702は、コントローラのファームウェアの更新を行うように、ファームウェア更新制御部201に指示電文を出力する(S2005)。ファームウェア更新制御部201は、この指示電文を入力すると、コントローラのファームウェアの更新処理を開始する(S2006)。
【0111】
設定データ更新制御部1701は、エンジン設定データの更新処理が完了すると、完了通知を並列実行制御部1702に出力し(S2007)、次いで操作部設定データの更新に進む。設定データ更新制御部1701は、更新用の操作部設定データを記憶部206から取得し(S2008)、更新可否を問い合わせる電文を、並列実行制御部1702に出力する(S2009)。
【0112】
並列実行制御部1702は、更新処理制御テーブル1711の変更可能設定値を取得し、現在行われているコントローラのファームウェア更新と、操作部設定データの更新とが並列実行可能であるかを判定する。当該ファームウェア(コンローラシステム)の変更可能設定値は、図19の例によると「全て可」となっていることから、並列実行制御部1702は、更新許可の電文を設定データ更新制御部1701に出力する(S2010)。これにより設定データ更新制御部1701は、操作部設定データの更新処理を開始する(S2011)。
【0113】
操作部設定データの更新処理の最中に、ファームウェア更新制御部201は、スイッチ処理(第1実施形態参照)を行うなどの必要な処理を行う(S2012)。そしてファームウェア更新制御部201は、処理が完了した場合に、コントローラのファームウェア更新完了通知を並列実行制御部1702に出力する(S2013)。
【0114】
並列実行制御部1702は、引き続き操作部のファームウェア更新を行うにあたり、まずは更新処理制御テーブル1711の変更可能設定値を取得し、参照する。今現在、操作部設定データの更新処理(S2011)が行われており、また更新予定のファームウェア(操作システム)の変更可能設定値には、操作部設定データとの並列処理を禁止する値が設定されている。よって並列実行制御部1702は、今現在実行されている操作部設定データの更新処理が完了するまで待機する(S2014)。
【0115】
そして並列実行制御部1702は、操作部設定データの更新完了通知を設定データ更新制御部1701から入力すると(S2015)、操作部のファームウェア更新開始指示の電文をファームウェア更新制御部201に出力する(S2016)。ファームウェア更新制御部201は、この電文を入力すると、操作部の更新処理を開始する(S2017)。
【0116】
一方、設定データ更新制御部1701は、引き続きコントローラ用設定データの更新処理を行う。設定データ更新制御部1701は、記憶部206からコントローラの設定データを取得し(S2018)、更新処理の問い合わせ電文を並列実行制御部1702に出力する(S2019)。コントローラ用設定データの更新と、現在実行されている操作部(操作部システム)のファームウェア更新とは、図19の変更可能設定値によると並列実行可能となっている。よって並列実行制御部1702は、更新許可の電文を出力する(S2020)。この電文を入力した設定データ更新制御部1701は、コントローラ用設定データの更新処理を開始する(S2021)。
【0117】
ファームウェア更新制御部201は、操作部のファームウェア更新処理が完了すると、完了通知を並列実行制御部1702に出力する(S2022)。並列実行制御部1702は、引き続きエンジンのファームウェア更新を行うにあたり、更新処理制御テーブル1711の変更可能設定値を参照する。今現在、コントローラ用設定データの更新処理(S2021)が行われており、また変更可能設定値には、エンジン(プロッタ)のファームウェア更新とコントローラ用設定データのインポート処理とは、並列して実行可能と規定されている。よって並列実行制御部1702は、エンジンのファームウェア更新指示をファームウェア更新制御部201に対して行う(S2023)。ファームウェア更新制御部201は、この指示に従い、エンジンのファームウェアの更新処理を開始する(S2024)。
【0118】
ファームウェア更新制御部201がエンジンのファームウェアの更新処理を行っている最中に、設定データ更新制御部1701は、コントローラ用設定データの更新処理の完了通知を出力する(S2025)。そして設定データ更新制御部1701は、アドレス帳のインポート処理の可否確認を並列実行制御部1702に出力し(S2026)、アドレス帳のデータを記憶部206から取得する(S2027)。更新処理制御テーブル1711には、アドレス帳に関する許可/禁止の設定は設けられていない。よって並列実行制御部1702は、許可通知を返信し(S2028)、この許可通知を入力した設定データ更新制御部1701は、アドレス帳の更新処理を開始する(2029)。
【0119】
アドレス帳の更新処理の最中に、並列実行制御部1702は、ファームウェア更新制御部201からエンジンのファームウェア更新の完了通知を入力する(S2030)。並列実行制御部1702は、ファームウェアに関しては全ての更新処理が完了したため、全更新処理の完了通知を設定データ更新制御部1701に出力する(S2031)。
【0120】
設定データ更新制御部1701は、アドレス帳のインポート処理を完了すると、完了通知を並列実行制御部1702に出力し(S2032)、再起動の可否確認の電文を出力する(S2033)。並列実行制御部1702は、全てのファームウェア更新が完了しているため、再起動許可通知を出力する(S2034)。この許可通知を入力した設定データ更新制御部1701は、再起動処理を行う(S2035)。尚、ここでは設定データ更新制御部1701が再起動処理を行うものとしているが、第1実施形態と同様に、電力状態制御部204が再起動処理を行ってもよい。
【0121】
尚、設定データ更新処理およびファームウェア更新処理の各処理の途中で、主電源キーが押下された場合、設定データ更新制御部1701は、並列実行制御部1702の指示に従い、一連の更新処理を全て終えてから再起動処理を行う。また、停電などで意図せず電源が切れた場合は、次回起動時の最初に残りの処理が行われる。
【0122】
図22は、図20に示す更新処理を行っている最中に操作制御部203により表示されるダイアログの遷移例を示す図である。操作制御部203は、メニュー画面内の規定の領域に、このダイアログを小さく表示する。並列実行制御部1702は、設定データ更新制御部1701から設定データの更新完了通知を入力するごとに、またファームウェア更新制御部201からファームウェアの更新完了通知を入力するごとに、表示内容を遷移させる。ユーザは、このダイアログを確認することで、現状の更新処理の進捗状況を把握することができる。
【0123】
また図23は、ファームウェア更新、および設定データの更新処理のいずれか一方が終了した場合に、他方を待つかをユーザに確認するための画面表示例である。待つ場合は、引き続き更新処理が続行され、待たない場合は中途段階でも処理は停止され、処理前のデータに戻してから再起動の動作となる。尚、第1実施形態の態様のとおりパーティションが二重化されている場合、ファームウェアの切り替え設定を元に戻すだけでよい。
【0124】
また図23の例のように、残り時間の目安を表示することで、ユーザは、このまま継続するか否かの判断を容易に行うことができる。
【0125】
上記第2実施形態では、画像形成装置の更新について言及したが、第2実施形態の上記態様を、図15示す情報処理装置1500にも適用させることができる。図24は、第2実施形態における情報処理装置1500の機能ブロックである。第2実施形態の情報処理装置1500は、上記第1実施形態の情報処理装置1500に加え、設定データ更新制御部2401、並列実行制御部2402を有する。また記憶部1606には、さらに、設定データ管理テーブル2410、更新処理制御テーブル2411、設定データ2412が記憶されている。これら各機能ブロックやデータは、いずれも図17に示すものと同様の機能を有し、上記と同様の動作を行うことができる。
【0126】
上記の説明では、第1実施形態で説明した起動パーティションや非起動パーティションの二重化領域に関してはあまり言及していないが、更新用ファームウェアとともに、設定データが二重化領域に記憶される実装でもよい。また、二重化されていない単一パーティションに設定データが記憶され、更新されてもよい。尚、第1実施形態では、単一パーティションに対し更新処理を行う場合は画像形成装置100のシャットダウンの動作内で行うものとしたが、第2実施形態では、上記のとおりファームウェアの更新と並列に行われる。このように、第1実施形態の態様と第2実施形態の態様を組み合わせてもよい。
【0127】
第2実施形態の態様を適用することで、設定データの更新とファームウェアの更新とを並列で実施することが可能となり、更新時間を削減することができる。
【符号の説明】
【0128】
100 :画像形成装置
1500 :情報処理装置
101、1501 :CPU
102、1502 :ROM
103、1503 :RAM
104、1504 :HDD
105、1505 :セキュリティチップ
106 :プリントエンジン部
107、1507 :操作部
108、1508 :不揮発性メモリ
109、1509 :I/F
130 :ネットワーク
150 :外部サーバ
201、1601 :ファームウェア更新制御部
202、1602 :鍵管理制御部
203、1603 :操作制御部
204、1604 :電力状態制御部
205 :画像形成部
206、1606 :記憶部
212、1612 :更新ファイル情報
213、1613 :鍵情報
1701、2401 :設定データ更新制御部
1702、2402 :並列実行制御部
1710、2410 :設定データ管理テーブル
1711、2411 :更新処理制御テーブル
1712、2412 :設定データ
【先行技術文献】
【特許文献】
【0129】
【文献】特開2013-109450号公報
【文献】特開2008-284711号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24