JP5894495B2 - 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム - Google Patents

情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム Download PDF

Info

Publication number
JP5894495B2
JP5894495B2 JP2012103836A JP2012103836A JP5894495B2 JP 5894495 B2 JP5894495 B2 JP 5894495B2 JP 2012103836 A JP2012103836 A JP 2012103836A JP 2012103836 A JP2012103836 A JP 2012103836A JP 5894495 B2 JP5894495 B2 JP 5894495B2
Authority
JP
Japan
Prior art keywords
peripheral device
firmware
information processing
processing apparatus
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012103836A
Other languages
English (en)
Other versions
JP2013232100A5 (ja
JP2013232100A (ja
Inventor
康寛 岩楯
康寛 岩楯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012103836A priority Critical patent/JP5894495B2/ja
Priority to US13/863,458 priority patent/US20130290946A1/en
Publication of JP2013232100A publication Critical patent/JP2013232100A/ja
Publication of JP2013232100A5 publication Critical patent/JP2013232100A5/ja
Application granted granted Critical
Publication of JP5894495B2 publication Critical patent/JP5894495B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ファームウエアの更新を行う情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラムに関する。
従来、例えば、プリンタでは、単機能印刷装置(SFP:Single Function Printer)であったものを多機能複合装置(MFP:Mutlti Function Peripheral)化するためのスキャナユニットを含む場合がある。また、測色センサを取り付けて色の測定を行うための測色ユニットを含む場合がある。このように、本体機器とは別に、追加可能に構成された周辺機器を有する製品が増えてきている。
特許文献1では、周辺機器に対応するドライバにアップデート制御機能を有しており、自動的に、最適なファームウエアをロードしてファームウエア更新が可能であることが記載されている。
特開2004−21463号公報
しかしながら、特許文献1では、本体機器や周辺機器において、ファームウエアを更新する際に、機器が使用可能状態となるまでの時間が長いという問題があった。
特に周辺機器のファームウエアを更新する際に、複数機器間でファームウエアを送受信して、そのファームウエア自体のサイズが極めて大きいものである場合や、機器間の通信速度が低速である場合はこの問題が顕著となる。
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、ファームウエアの更新をする際に情報処理装置の使用が可能状態となるまでの時間を短縮する情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラムを提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、接続可能である周辺機器が単体で動作するために必要な基本部分と、当該基本部分以外であるアプリケーション部分とを含む周辺機器用のファームウエアを取得する取得手段と、前記取得手段により取得された前記周辺機器用のファームウエアの基本部分を抽出する抽出手段と、前記周辺機器用のファームウエアのアプリケーション部分を送信するよりも前に、前記抽出手段により抽出された前記周辺機器用のファームウエアの基本部分を前記周辺機器へ送信する送信手段と、を備えることを特徴とする。
本発明によると、ファームウエアの更新する際にユーザによる使用が可能状態となるまでの時間を短縮することができる。
複数の装置を含むシステムの構成を示す図である。 本体機器と周辺機器に格納されたファームウエアを示す図である。 本体機器に格納されたファームウエアの更新処理の手順を示す図である。 周辺機器に格納されたファームウエアの更新処理の手順を示す図である。
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
[システム構成]
図1は、複数の装置を含むシステムの構成を示す図である。図1に示すように、本実施例においては、本体機器100と周辺機器200とが相互に通信可能に接続されている。本体機器100は、例えば印刷装置であり、周辺機器200は、例えば測色器である。本体機器100と周辺機器200は、本体機器100がホストとして、周辺機器200がクライアントとして機能する関係であれば良い。従って、例えば、本体機器100が単機能印刷装置(SFP)であり、周辺機器200がスキャナユニットであっても良い。
本体機器100は、汎用的なPC等の情報処理装置と同様に、ROM1、CPU2、RAM3、通信インタフェース(I/F)4を含む。本体機器100が例えば印刷装置である場合には、不図示の、印刷対象の画像データを高速で転送し、RIP等を接続する画像バスで構成された画像処理部や、記録ヘッドや記録媒体の搬送制御を行う印刷制御部等を含む。周辺機器200は、通信インタフェース(I/F)5、ROM6、CPU7、RAM8を含む。周辺機器200が例えば測色器である場合には、不図示の発光素子やパッチ画像等からの反射光を受光するための受光素子等の光学系制御部等を含む。本体機器100と周辺機器200とは、通信インタフェース4及び通信インタフェース5を介して相互に通信可能である。なお、図1には不図示であるが、本体機器100及び周辺機器200は、ユーザからの指示を受け付けるためのディスプレイ等の表示部や、ユーザが指示を投入するためのキーボードやハードキー等の操作パネル部や、ハードディスク等の記憶領域も有する。
本体機器100と周辺機器200はそれぞれ、不揮発性メモリであるROM1及びROM6に、各機器のハードウエア資源を制御するためのファームウエアを格納している。
詳細は後述するが、本体機器100のROM1に格納されているファームウエアは、本体機器100自身が単体で動作するために最低限必要な起動用プログラム部分(基本部分ともいう)と、起動用プログラム部分以外の部分とが区別されて格納されている。本体機器100の起動用プログラム部分としては、例えばCPU2等の制御関連のハードウエア資源を制御するための、システム起動処理に必要な起動用プログラム部分が挙げられる。以下、ファームウエアのうち、上記の起動用プログラム部分以外(基本部分以外)の部分をアプリケーション部分とする。
周辺機器200のROM6に格納されているファームウエアは、周辺機器200自身が単独で動作するために最低限必要な起動用プログラム部分と、起動用プログラム部分以外の部分とが区別して格納されている。周辺機器200の起動用プログラム部分としては、例えば、CPU7等の制御関連のハードウエア資源を制御するための、システム起動処理に必要な起動用プログラム部分が挙げられる。以下、ファームウエアのうち、上記の起動用プログラム部分以外の部分をアプリケーション部分とする。
本実施例では、本体機器100のROM1には、本体機器100用のファームウエアだけでなく、周辺機器200用のファームウエアも格納されている。本体機器100のCPU2は、その格納された周辺機器200用のファームウエアを、周辺機器200のROM6に格納されているファームウエアを更新するために、周辺機器200に送信する。周辺機器200でファームウエアが更新されることにより、本体機器100用のファームウエアと周辺機器200用のファームウエアとでバージョン等の整合をとることができる。
[ファームウエア格納状態]
図2は、本体機器100と周辺機器200それぞれに格納されたファームウエアを示す図である。本実施例においては、各機器用のファームウエアは、システムを起動させるために必要な起動用プログラムと、システムの起動には必要のないアプリケーションとに記憶領域上で区別されて格納されている。すなわち、ファームウエアとして複数のプログラムが存在するが、それぞれが起動用プログラムと、アプリケーションとに区別して管理されている。
ここで、起動用プログラムとは、各機器が単独で動作するために最低限必要な基本部分であり、上述の起動用プログラム部分に対応している。本実施例では、起動用プログラムは、ブートプログラムと、その他各機器が単独で動作するために最低限必要なプログラムとを含む。ブートプログラム以外で機器が単独で動作するために最低限必要なプログラムとしては、例えばカーネルが挙げられる。また、アプリケーションとは、上述のアプリケーション部分に対応している。
本体機器100のROM1には、本体機器100用のファームウエア(情報処理装置用ファームウエア)と、周辺機器200用のファームウエア(周辺機器用ファームウエア)とが含まれる。
図2の本体機器起動用プログラム9と本体機器用アプリケーション10とが本体機器100用のファームウエアに対応する。図2のHost Boot Program9は、一般的なブートプログラムのみを指すものではなく、上述した本体機器起動用プログラムに対応する。ここで、本体機器起動用プログラム9は、ブートプログラム、本体機器100自身が単独で動作するために最低限必要なプログラム、及び周辺機器200に更新情報を送信するために必要なプログラムを含む。一方、本体機器用アプリケーション10は、例えば、周辺機器200との連動機能(パッチ画像を測色させる機能等)についてハードウエア資源を制御する。本体機器100のファームウエアは、詳細は後述するが、図示しない外部装置(パーソナルコンピュータ、サーバ、USB等)からファームウエアの更新情報を受信し、ROM1に記憶され、更新処理が実行されことで更新される。
図2の周辺機器起動用プログラム11と、周辺機器用アプリケーション12及び13とが周辺機器200用のファームウエアに対応する。周辺機器200用ファームウエアとは、本体機器100自身が使用するプログラムではなく、周辺機器200に少なくとも送信するためのプログラムである。周辺機器用アプリケーション12及び13は、例えば、測色器の乾燥ファンの駆動についてハードウエア資源を制御する。図2では、周辺機器用アプリケーション12及び13は、2つ示されているが、1つであっても良いし、各用途に対応して3つ以上であっても良い。本体機器用アプリケーション10も1つとして示されているが、複数であっても良い。
図2に示すように、各機器用のファームウエアは記憶領域上でそれぞれが起動用プログラムとアプリケーションの2種類に区別されて格納されているが、予めユーザにより起動用プログラムとアプリケーションに各対応した複数のファイルで用意されて、記憶領域上に区別して格納するようにしても良い。若しくは、ファームウエアのヘッダ情報を参照して、起動用プログラム部分とアプリケーション部分とを抽出して記憶領域に区別して格納する構成を本体機器100が有するようにしても良い。
周辺機器200のROM6には、周辺機器200用のファームウエアが格納されている。周辺機器用ブートプログラム14、周辺機器用アプリケーション15及び16が周辺機器200用のファームウエアに対応する。図2のClient Boot Program14は、一般的なブートプログラムのみを指すものではなく、上述した周辺機器用起動プログラムに対応する。ここで、周辺機器用起動プログラムは、ブートプログラム及び周辺機器200自身が単独で動作するために最低限必要なプログラムを含む。
周辺機器200のファームウエアの更新処理については、詳細は後述するが、本体機器100のROM1に格納されている周辺機器200用のファームウエアにより、周辺機器200に格納されているファームウエアが更新される。すなわち、本体機器100のROM1の周辺機器200用のファームウエアが周辺機器200に送信されることにより、周辺機器200に格納されているファームウエアが更新される。例えば、その送信の際に、本体機器100のCPU2は、送信したファームウエアに対応する、周辺機器200のCPU7にROM6に格納されている周辺機器用のファームウエアについての更新を指示する。
また、周辺機器200においてファームウエアが更新されると、更新された情報が周辺機器200から本体機器100に送信されて、本体機器100のROM1に記憶される。これにより、本体機器100は、周辺機器200のファームウエアの更新状態を管理することができる。
周辺機器200のROM6に格納されている周辺機器起動用プログラム14は、本体機器100のROM1に格納されている周辺機器起動用プログラム11に対応する。また、周辺機器200のROM6に格納されている周辺機器用アプリケーション15は、本体機器100のROM1に格納されている周辺機器用アプリケーション12に対応する。また、周辺機器200のROM6に格納されている周辺機器用アプリケーション16は、本体機器100のROM1に格納されている周辺機器用アプリケーション13に対応する。
[ファームウエア更新処理]
以下、本体機器100用のファームウエアを更新してから、周辺機器200用のファームウエアを更新するまでの処理について順に説明する。
図3は、本体機器100用のファームウエアの更新処理の手順を示すフローチャートである。図3に示す処理は、例えば、本体機器100のCPU2によりインストーラ(プログラム)を実行することでなされる処理である。
まず、S301において、CPU2は、本体機器100用のファームウエアとともに、周辺機器200用のファームウエアも取得する。例えば、CPU2は、外部のサーバ装置等から、本体機器100用のファームウエアと周辺機器200用のファームウエアとを含むインストーラをパッケージ形式で受信する。S301で受信した各機器用のファームウエアには、起動用プログラム部分と、アプリケーション部分と、各部分のアドレス情報が記述されたヘッダとが含まれている。また、インストーラにはそれぞれのプログラムの実行順序が規定されており、起動用プログラム部分の更新が先に行われるように規定されている。
S302において、CPU2は、S301で取得した本体機器100用のファームウエアにより、本体機器100のファームウエアを更新する。本実施例では、現在のROM1に格納されている本体機器起動用プログラム9のみを更新する。具体的には、まず、CPU2は、S301で取得した本体機器100用のファームウエアのヘッダを参照し、起動用プログラム部分の開始アドレスと終端アドレスとを取得し、起動用プログラム部分を抽出する。そして、CPU2は、その抽出された起動用プログラム部分により、現在のROM1に格納されている本体機器起動用プログラム9を更新する。その更新時には、チェックサムやMD5等を用いたハッシュ値チェックや、ROMサイズチェックを行って、更新したファームウエアの妥当性を検証するようにしても良い。
このように、本実施例では、S301で取得した本体機器100用のファームウエアにより、本体機器起動用プログラム9と本体機器用アプリケーション10の両方を更新するのではなく、まず、本体機器起動用プログラム9のみを更新する。従来では、本体機器100用のファームウエアの更新の際には、起動用プログラム部分とアプリケーション部分とを区別せず、両方を一括して更新していた。従って、その更新後に再起動等により本体機器100のシステムを起動させて初めて、本体機器100がユーザ使用可能な状態となっていた。一方、本実施例では、本体機器100用のファームウエアの更新の際、まず、本体機器起動用プログラム9についてのみ行うので、最低限本体機器100が動作できる部分の更新時間が従来に比べて短縮される。従って、本体機器100がより早くユーザ使用可能な状態となることができる。これにより、例えば、ユーザによる操作パネルが可能となったり、ユーザが投入した印刷ジョブを処理したりすることができる。また、本体機器100のシステムが起動することにより、アプリケーション部分の更新がされていなくても、後述するように、周辺機器200にファームウエアを送信し、ファームウエアを更新させることができる。
S303において、CPU2は、本体機器100に周辺機器200が接続されているか否かを判定する。例えば、CPU2は、周辺機器200のCPU7とテスト通信を行うことにより接続を確認するようにしても良い。S303で接続されていると判定された場合には、S304に進む。一方、接続されていないと判定された場合には、S305に進む。
S304において、CPU2は、周辺機器起動用プログラム11と周辺機器用アプリケーション12及び13のそれぞれについてファームウエア強制更新フラグが設定されたフラグデータを生成する。ここで、ファームウエア強制更新フラグとは、周辺機器200に、ファームウエアのバージョン確認処理をスキップさせてファームウエアの更新を強制的に開始させるためのフラグである。ファームウエア強制更新フラグを設定することにより、不要なチェックを行う必要がなくなり、バージョンが一致していてもファームウエアが正しく更新できていなかった場合にも更新することができる。S304では、CPU2は、ROM1に格納されている周辺機器起動用プログラム11と、周辺機器200のROM6に格納されている周辺機器起動用プログラム14とが整合していないと判定した場合に、周辺機器起動用プログラム11についてのファームウエア強制更新フラグを有効に設定する。例えば、CPU2は、バックアップとして確保しておいた更新前の周辺機器起動用プログラム14についてのバージョン情報と、現在の周辺機器起動用プログラム11のバージョン情報とを比較して異なっていれば、ファームウエア強制更新フラグを有効に設定するようにしても良い。周辺機器用アプリケーション12及び13と、周辺機器用アプリケーション15及び16との整合性の判定についても同様に行う。
S305において、CPU2は、更新した本体機器起動用プログラム9を用いてシステム起動処理を行うために、本体機器100の再起動を行う。なお、再起動前に、CPU2は、S301で取得した本体機器100用のファームウエアと周辺機器200用のファームウエアは、ハードディスク等の記憶領域に保存しておく。本実施例では、再起動が完了することで、更新処理が完了となる。
図4は、周辺機器200用のファームウエアの更新処理の手順を示すフローチャートである。周辺機器200用のファームウエアの更新は、図3の本体機器100用のファームウエア(本実施例では、本体機器100用のファームウエアのうち起動用プログラムのみ)を更新した後に開始される。周辺機器200用のファームウエアの更新は、本体機器100のファームウエアの更新の際に本体機器100に周辺機器200が接続されている場合は、図3のファームウエアの更新と連続して行えばよいが、これに限定されるものではない。本体機器100に周辺機器200が接続されていない状態で、図3の処理により本体機器起動用プログラムが更新された場合には、その後に周辺機器200が本体機器100に接続された際に周辺機器200のファームウエアの更新処理が開始される。S401において、本体機器100のCPU2は、本体機器100を起動する。本体機器100に周辺機器200が接続されている状態で、図3のS305の処理が行われた場合は、S401は、図3のS305に対応する。
S402において、本体機器100のCPU2は、S303と同様に、本体機器100に周辺機器200が接続されているか否かを判定する。ここで、周辺機器200が接続されていないと判定された場合には、図4の本処理を終了する。一方、周辺機器200が接続されていると判定された場合には、本体機器100のCPU2は、再起動前に保存しておいた周辺機器200用のファームウエアから、そのヘッダに基づいて、起動用プログラム部分とアプリケーション部分とを抽出する。本体機器100のCPU2は、周辺機器200用のファームウエアから抽出した起動用プログラム部分とアプリケーション部分により、ROM1の周辺機器起動用プログラム11と周辺機器用アプリケーション12及び13を更新する。また、本体機器100のCPU2は、周辺機器200に対して通信インタフェース4を介して、S304で生成されたフラグデータと、抽出された起動用プログラム部分及びアプリケーション部分とを個別に送信してS403に進む。
S403において、周辺機器200のCPU7は、本体機器100から受信したフラグデータを参照して、周辺機器起動用プログラム11についての強制更新フラグが有効に設定されているか否かを判定する。ここで、有効に設定されていると判定された場合には、S404に進む。一方、有効に設定されていないと判定された場合には、S405に進む。
S404において、周辺機器200のCPU7は、本体機器100から受信した周辺機器起動用プログラム部分により、現在ROM6に格納されている周辺機器起動用プログラム14を更新する。
S403で有効に設定されていないと判定された場合には、S405において、周辺機器200のCPU7は、本体機器100から受信した周辺機器起動用プログラム部分と、現在ROM6に格納されている周辺機器起動用プログラム14とのバージョンを比較する。ここで、バージョンが一致していない場合には、S404の処理が実行される。一方、バージョンが一致している場合には、周辺機器起動用プログラム14の更新を行わずに、S406に進む。また、S403において、強制更新フラグの設定内容が何らかの理由により確認できない場合には、更新を行わないとすると周辺機器200が正常に起動できないおそれがあるので、周辺機器起動用プログラム14の更新を行うこととする。
ここまでの処理で、周辺機器起動用プログラム14は最新の状態、即ち、周辺機器起動用プログラム11に更新されたことになる。つまり、周辺機器200も、システム起動処理に必要な起動用プログラムの更新が完了したということなので、周辺機器200を再起動してシステム起動処理を開始することができる。
このように、本実施例においては、周辺機器200用のファームウエアについても、まず、周辺機器起動用プログラムについてのみ更新を行う。従って、周辺機器200についても、周辺機器200が最低限動作できる部分の更新時間が従来に比べて短縮され、その結果、周辺機器200がより早くユーザ使用可能状態(例えば、ユーザ指示に従って周辺機器200を設定する等)となることができる。
また、周辺機器200におけるS403〜S405の処理中に、本体機器100側では、本体機器100自身の処理を並行して進行させることができる。つまり、本体機器100のCPU2が本体機器100自身の処理中のタイミングで周辺機器200に対して周辺機器起動用プログラムを送信することができるので、本体機器100のシステム起動処理と周辺機器200のシステム起動処理とを並行して行うことが可能となる。その結果、本体機器100及び周辺機器200の構成全体としても、従来に比べてより早くユーザ使用可能な状態となることができる。
また、図4のS404に記載したように、ROM6に格納されている周辺機器起動用プログラム14を更新した後は、周辺機器200のCPU7は、その更新後、強制更新フラグを無効に設定して、本体機器100に返信する。本体機器100のCPU2は、その返信により、周辺機器200において周辺機器起動用プログラムの更新が行われたことを認識することができる。なお、周辺機器起動用プログラムの更新後に周辺機器200が正常に起動できない場合には、通信エラーもしくはファームウエア送受信エラーとしてディスプレイ等やLED等でエラー表示を行う。
S406以降は、周辺機器用アプリケーションの更新についての処理である。S406以降の処理は、本体機器100のシステム起動処理中のタイミングで実行される場合もあるが、その他のタイミングで実行される場合もある。例えば、システム起動処理後の本体機器100のアイドル中やスリープ処理前のタイミングや、周辺機器用アプリケーションの実行前や実行中のタイミングで実行される場合もある。
図4においては、周辺機器200のCPU7は、本体機器100から周辺機器起動用プログラム部分とアプリケーション部分とを受信すると、自律的に、周辺機器起動用プログラム14のみを先に更新している。しかしながら、本体機器100のCPU2は、本体機器100のシステム起動中に、周辺機器起動用プログラム部分のみを周辺機器200に送信して更新させるように制御しても良い。その場合に、周辺機器200では、当然のことながら、周辺機器起動用プログラム14のみが更新される。そして、本体機器100のCPU2は、その後、周辺機器200に対して、各アプリケーション部分を送信して更新させるように制御しても良い。その場合の各アプリケーション部分の送信タイミングは、例えば、上記のような、本体機器100のシステム起動処理中のタイミング、システム起動処理後の本体機器100のアイドル中やスリープ処理前のタイミングや、本体機器100の周辺機器用アプリケーションの実行前や実行中のタイミングでも良い。
また、周辺機器用アプリケーションは複数存在可能であるので、アプリケーションごとに、周辺機器用アプリケーションの更新タイミングを定義しても良い。例えば、本体機器100が大判プリンタであり、周辺機器200が測色器であるとする。その場合に、測色器の測色センサのランプ調整中のタイミングで、乾燥ファンについての周辺機器用アプリケーションの更新を行っても良い。又は、測色器においてパッチ印刷物の乾燥処理中のタイミングで、測色キャリッジについての周辺機器用アプリケーションの更新を行っても良い。このように、異なるアプリケーションが実行されている間に、更新対象の周辺機器用アプリケーションの更新を行うことで、ユーザにアプリケーションの更新時間を意識させることがなく、利便性を向上させることができる。
S406において、周辺機器200のCPU7は、本体機器100から受信したフラグデータを参照して、周辺機器用アプリケーション12についての強制更新フラグが有効に設定されているか否かを判定する。ここで、有効に設定されていると判定された場合には、S407に進む。一方、有効に設定されていないと判定された場合には、S408に進む。
S407において、周辺機器200のCPU7は、本体機器100から受信した周辺機器用アプリケーション部分により、現在ROM6に格納されている周辺機器用アプリケーション15を更新する。周辺機器200のCPU7は、その更新後、強制更新フラグを無効に設定して、本体機器100に返信する。本体機器100のCPU2は、その返信により、周辺機器200において周辺機器用アプリケーションの更新が行われたことを認識することができる。
S406で有効に設定されていないと判定された場合には、S408において、周辺機器200のCPU7は、本体機器100から受信した周辺機器用アプリケーション部分と、現在ROM6に格納されている周辺機器用アプリケーション15とのバージョンを比較する。ここで、バージョンが一致していない場合には、S407の処理が実行される。一方、バージョンが一致している場合には、周辺機器用アプリケーション15の更新を行わない。周辺機器200のCPU7は、周辺機器用アプリケーション16の更新についても、S406〜S408の処理と同様に行う。
本実施例においては、図2に示すように、本体機器100及び周辺機器200ともに、ファームウエアすべて、すなわち、起動用プログラム及びアプリケーションをROMに格納している。しかしながら、起動用プログラムとアプリケーションとを相異なる記憶領域に格納するようにしても良い。例えば、システム起動用の起動用プログラムは更新される可能性が少ないので、フラッシュROM領域に格納し、アプリケーションは更新される可能性が高いので、プログラム実行時の実行速度を速めるためにRAM領域に格納する。
周辺機器200のCPU7が周辺機器起動用プログラム14〜周辺機器用アプリケーション16の更新を行う際には、本体機器100に対して、更新前の周辺機器起動用プログラム14〜周辺機器用アプリケーション16を送信するようにしても良い。その結果、本体機器100は、更新前の周辺機器起動用プログラム14〜周辺機器用アプリケーション16をバックアップとして確保しておくことができる。
以上のように、本実施例においては、本体機器100は、本体機器用のファームウエアを起動用プログラムとアプリケーションの2つに区別して記憶領域に保存することにより、別々に更新を可能にしている。その結果、本体機器100は、ファームウエアのうち起動用プログラムのみを先に更新することにより、ファームウエアを一括して更新していた従来構成に比べて、更新時間を短縮し、より早く機器をユーザ使用可能状態とすることができる。
また、本体機器では、周辺機器200のファームエアを保存する構成としているので、本体機器100に周辺機器200が接続されていない場合でも、本体機器100は正常に作動し、周辺機器用のファームウエアの更新情報を受信して保存することができる。したがって、例えば、本体機器100から周辺機器200を取り外した際に外部から周辺機器用のファームウエアの受信が行われた場合、本体機器100に周辺機器200が再度接続された際に、周辺機器200のファームウエアを更新することができる。これにより、本体機器100と周辺機器200のファームウエアのバージョン等の不整合の発生を抑制することができる。
また、本体機器100では、周辺機器用のファームウエアについても、起動用プログラムとアプリケーションの2つに区別して記憶領域に保存している。これにより、本体機器100は、周辺機器200に、起動用プログラムのみを送信することができ、一度に送信するデータ量を減らすことができる。これにより、本体機器100と周辺機器200の通信速度が遅い場合であっても、起動用プログラムの短時間で送信することができる。また、本体機器100に周辺機器200が接続され、本体機器100が周辺機器200のファームウエアを更新する場合においても、周辺機器200は、起動用プログラムのみを先に更新することにより、更新時間を短縮し、より早くユーザ使用可能状態とすることができる。
また、本体機器100は、再起動後のシステム起動処理時に、周辺機器200に対して周辺機器起動用プログラムを送信すればよいので、両機器のシステム起動を並行して実行することができ、両機器全体としても、より早くユーザ使用可能状態とすることができる。
なお、S301で取得した本体機器100用のファームウエアからそのヘッダに基づいて抽出したアプリケーション部分により、ROM1の本体機器用アプリケーション10を更新するタイミングは特に限定されない。例えば、S302において更新してもよく、また、周辺機器用のファームウエアを周辺機器200に送信した後にROM1の本体機器用アプリケーション10を更新してもよい。
また、本実施例では、S303及びS304の後に、本体機器を再起動して本体機器起動用プログラムを更新するようにしたが、S302の後に、周辺機器が接続されているか確認せずに更新を行うようにしてもよい。
本実施例では、本体機器100が周辺機器200と接続可能なものとしたが、本体機器100のみの場合でも、本体機器用のファームウエアを起動用プログラムとアプリケーションとに区別して記憶することにより、本発明の効果を得ることができる。なお、本実施例では、本体機器用のファームウエアを、本体機器起動用プログラム9と本体機器用アプリケーション10とに区別するようにしたが、本体機器用のファームウエアを区別しなくてもよい。周辺機器用のファームウエアのみを、起動用プログラムと、アプリケーションとに区別するようにした場合は、周辺機器200に対する周辺機器用のファームウエアの更新の時間を短くして、ユーザの使用可能状態となる時間を短くすることができる。
本体機器100において、周辺機器用のファームウエアを区別してROM1に格納するようにしたが、本体機器100では、周辺機器用のファームウエアを区別せずに記憶し、周辺機器200に送信するようにしてもよい。この場合は、周辺機器200のCPU7が、まず、ROM6に格納されている起動用プログラム14のみを更新するようにすればよい。例えば、CPU7は、取得したファームウエアのヘッダを参照し、起動用プログラム部分の開始アドレスと終端アドレスとを取得し、起動用プログラム部分を抽出する。そして、CPU7は、その抽出された起動用プログラム部分により、現在のROM6に格納されている起動用プログラム14を更新すればよい。 本実施例では、更新後のプログラムは、再起動後に実行可能としたが、再起動させずに反映させることが可能であれば、再起動させずに実行させるようにしてもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又はコンピュータ読取可能な各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置の、または複数のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (16)

  1. 接続可能である周辺機器が単体で動作するために必要な基本部分と、当該基本部分以外であるアプリケーション部分とを含む周辺機器用のファームウエアを取得する取得手段と、
    前記取得手段により取得された前記周辺機器用のファームウエアの基本部分を抽出する抽出手段と、
    前記周辺機器用のファームウエアのアプリケーション部分を送信するよりも前に、前記抽出手段により抽出された前記周辺機器用のファームウエアの基本部分を前記周辺機器へ送信する送信手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記送信手段は、前記周辺機器用のファームウエアの基本部分を送信した後、前記周辺機器用のファームウエアのアプリケーション部分を送信することを特徴とする請求項1に記載の情報処理装置。
  3. 前記取得手段により取得された前記周辺機器用のファームウエアを記憶する第1記憶手段、をさらに備え、
    前記送信手段により送信された前記周辺機器用のファームウエアの基本部分は、前記周辺機器が備える第2記憶手段に記憶される、
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記第1記憶手段はさらに、情報処理装置用のファームウエアを、前記情報処理装置が単体で動作するための基本部分と、当該基本部分以外であるアプリケーション部分とに区別して記憶ることを特徴とする請求項に記載の情報処理装置。
  5. 第1記憶手段は、前記周辺機器用のファームウエアを、前記周辺機器が単体で動作するために必要な基本部分と、当該基本部分以外であるアプリケーション部分とに区別して記憶することを特徴とする請求項3又は4に記載の情報処理装置。
  6. 前記送信手段は、情報処理装置用のファームウエアの基本部分が更新された後且つ前記情報処理装置用ファームウエアのアプリケーション部分が更新される前に、前記周辺機器用のファームウエアの基本部分を前記周辺機器に送信する、ことを特徴とする請求項3乃至5のいずれか1項に記載の情報処理装置。
  7. 前記第1記憶手段に記憶された前記周辺機器用のファームウエアの基本部分と前記第2記憶手段に記憶されている周辺機器用のファームウエアの基本部分とが整合していない場合、前記第1記憶手段に記憶された前記周辺機器用のファームウエアの強制更新フラグを設定する設定手段、をさらに備え、
    前記設定手段により前記強制更新フラグが設定された場合、前記周辺機器の前記第2記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分が前記第1記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分で更新される、
    ことを特徴とする請求項3乃至6のいずれか1項に記載の情報処理装置。
  8. 前記第1記憶手段に記憶された前記周辺機器用のファームウエアの基本部分と前記第2記憶手段に記憶されている周辺機器用のファームウエアの基本部分との比較に基づき、前記周辺機器の前記第2記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分が前記第1記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分で更新されることを特徴とする請求項3乃至7のいずれか1項に記載の情報処理装置。
  9. 前記第1記憶手段に記憶された前記周辺機器用のファームウエアの基本部分のバージョンと前記第2記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分のバージョンとが一致していない場合に、前記周辺機器の前記第2記憶手段に記憶されている前記周辺機器用のファームウエアの基本部分が更新されることを特徴とする請求項8に記載の情報処理装置。
  10. 前記第2記憶手段に記憶されている周辺機器用のファームウエアの基本部分が更新された後、前記周辺機器が周辺機器用のファームウエアのアプリケーション部分の更新を行うように前記周辺機器を制御する制御手段、をさらに備えることを特徴とする請求項3乃至9のいずれか1項に記載の情報処理装置。
  11. 前記抽出手段は、前記取得手段により取得された前記周辺機器用のファームウエアのヘッダを参照して、前記取得手段により取得された前記周辺機器用のファームウエアの基本部分と、前記取得手段により取得された前記周辺機器用のファームウエアのアプリケーション部分とを抽出する、ことを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 前記周辺機器は、周辺機器用のファームウエアの基本部分を更新した後、周辺機器用のファームウエアのアプリケーション部分を更新するように、前記情報処理装置により制御される、ことを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  13. 前記周辺機器が単体で動作するために必要な基本部分は、ブートプログラムとカーネルとを含むことを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
  14. 前記送信手段は、前記情報処理装置の再起動後に、前記周辺機器用のファームウエアの基本部分を送信ることを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
  15. 情報処理装置において実行されるファームウエアの更新方法であって、
    接続可能である周辺機器が単体で動作するために必要な基本部分と、当該基本部分以外であるアプリケーション部分とを含む周辺機器用のファームウエアを取得する取得工程と、
    前記取得工程において取得された前記周辺機器用のファームウエアの基本部分を抽出する抽出工程と、
    前記周辺機器用のファームウエアのアプリケーション部分を送信するよりも前に、前記抽出工程において抽出された前記周辺機器用のファームウエアの基本部分を前記周辺機器へ送信する送信工程と、
    を有することを特徴とするファームウエアの更新方法。
  16. 請求項1乃至14のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
JP2012103836A 2012-04-27 2012-04-27 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム Active JP5894495B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012103836A JP5894495B2 (ja) 2012-04-27 2012-04-27 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム
US13/863,458 US20130290946A1 (en) 2012-04-27 2013-04-16 Information processing apparatus, method for updating firmware in information processing apparatus, and storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012103836A JP5894495B2 (ja) 2012-04-27 2012-04-27 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2013232100A JP2013232100A (ja) 2013-11-14
JP2013232100A5 JP2013232100A5 (ja) 2015-06-18
JP5894495B2 true JP5894495B2 (ja) 2016-03-30

Family

ID=49478525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012103836A Active JP5894495B2 (ja) 2012-04-27 2012-04-27 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム

Country Status (2)

Country Link
US (1) US20130290946A1 (ja)
JP (1) JP5894495B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5939896B2 (ja) * 2012-06-12 2016-06-22 キヤノン株式会社 画像形成装置
JP6417704B2 (ja) * 2014-05-07 2018-11-07 富士ゼロックス株式会社 情報処理装置、画像処理装置およびプログラム
US10185551B2 (en) 2014-07-02 2019-01-22 Hewlett-Packard Development Company, L.P. Firmware update
JP6697164B2 (ja) * 2017-01-25 2020-05-20 富士通クライアントコンピューティング株式会社 情報処理装置及び情報処理装置の制御方法
US10860305B1 (en) * 2017-09-29 2020-12-08 Amazon Technologies, Inc. Secure firmware deployment
JP7058984B2 (ja) 2017-11-20 2022-04-25 キヤノン株式会社 ファームウェア組み込み装置、制御方法、プログラム
JP7231807B2 (ja) 2018-04-27 2023-03-02 日本電信電話株式会社 通信装置及び情報処理方法
CN112905218B (zh) * 2021-02-07 2023-05-26 杭州海康威视数字技术股份有限公司 一种固件升级方法、装置及设备
CN118170320A (zh) * 2022-12-30 2024-06-11 北京忆芯科技有限公司 进入低功耗状态的存储设备及其方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325105A (ja) * 2000-05-15 2001-11-22 Canon Inc 動作プログラム書き換え方法
US6961785B1 (en) * 2000-08-03 2005-11-01 International Business Machines Corporation Permanent open firmware PCI host bridge (PHB) unit addressing to support dynamic memory mapping and swapping of I/O drawers
JP2004021463A (ja) * 2002-06-14 2004-01-22 Canon Inc 周辺装置ファームウエアアップデート装置
US7219343B2 (en) * 2003-04-10 2007-05-15 International Business Machines Corporation Firmware update mechanism in a multi-node data processing system
US7322029B2 (en) * 2003-05-08 2008-01-22 American Megatrends, Inc. Method and system for recovering program code in a computer system
US7313682B2 (en) * 2004-04-29 2007-12-25 Alcatel Lucent Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
JP2007025821A (ja) * 2005-07-12 2007-02-01 Seiko Epson Corp 情報処理装置及び情報処理装置の制御方法
US20120011509A1 (en) * 2007-02-15 2012-01-12 Syed Mohammad Amir Husain Migrating Session State of a Machine Without Using Memory Images
JP5272414B2 (ja) * 2008-01-18 2013-08-28 富士通セミコンダクター株式会社 情報処理システム及びファームウェア実行方法
JP4512645B2 (ja) * 2008-02-15 2010-07-28 シャープ株式会社 定着装置および画像形成装置
WO2011115024A1 (ja) * 2010-03-15 2011-09-22 日本電気株式会社 情報処理装置、情報処理方法及び情報処理プログラム
KR101697979B1 (ko) * 2010-11-23 2017-01-19 삼성전자주식회사 네트워크로 연결 가능한 기기에서 데이터를 동기화하기 위한 장치 및 방법
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment

Also Published As

Publication number Publication date
JP2013232100A (ja) 2013-11-14
US20130290946A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
JP5894495B2 (ja) 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム
JP5232427B2 (ja) 情報処理システム及びファームウェアの設定変更方法
US11216266B2 (en) Information processing apparatus and firmware updating method
JP5921358B2 (ja) 情報処理装置、プログラム更新方法及びプログラム
US8922805B2 (en) Image processing apparatus having updatable firmware, method for controlling image processing apparatus, and program
US9965299B2 (en) Information processing apparatus, method for controlling the same, and storage medium
US20150334262A1 (en) Image forming apparatus, image forming method, and recording medium
US20210255849A1 (en) Information processing apparatus and method
KR101219432B1 (ko) 화상형성장치 및 그 펌웨어 이력정보 제공방법
JP2013218510A (ja) 情報処理装置、情報処理装置のプログラム更新方法、及びプログラム
JP5040264B2 (ja) 情報処理装置、情報更新方法及びそのプログラム
US20240106955A1 (en) Image forming device
JP2014052888A (ja) 画像形成装置、プログラム更新方法及びプログラム
US10019212B2 (en) Printing apparatus that decompresses and updates software installed therein, method of controlling the same, and storage medium
JP2015022681A (ja) 情報処理装置および情報処理装置におけるソフトウェア更新方法
US9742945B2 (en) Image forming apparatus to store activation application specifying information that specifies an application to be activated on the operating system of the operation unit in response to the image forming apparatus entering a given state, image forming system, and image forming method
US20080215666A1 (en) Information Delivery Device and Information Processing Method
JP5515642B2 (ja) 印刷装置とプログラムとサーバ装置
US10409580B2 (en) Image processing apparatus, method, and program recording medium
JP6652297B2 (ja) 情報処理装置及びその制御方法、プログラム
US11327693B2 (en) Computer-readable medium, information processing device, and Method for installing appropriate program
JP2003330655A (ja) 画像形成装置および画像形成装置の制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
JP2020021286A (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2016193582A (ja) ジョブ処理装置およびそのプログラム
JP2011059987A (ja) 画像処理装置、ホストコンピューター、ドライバーインストール方法、および画像処理システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150423

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160226

R151 Written notification of patent or utility model registration

Ref document number: 5894495

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151