【0001】
【発明の属する技術分野】
本発明は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置に対するファームウエアのダウンロード処理に関するものである。
【0002】
【従来の技術】
従来、ネットワークに接続された周辺装置のファームウエアのアップデートは、図7に示すように実行されていた。
【0003】
図7は、この種の周辺装置を適用可能な情報処理システムの構成を説明するブロック図であり、ホストコンピュータ10がネットワーク20を介して周辺装置1と通信可能なシステムに対応する。
【0004】
図7において、1は周辺装置で、プリンタ,スキャナ,モデム,デジタルカメラ,記憶装置等が含まれる。2はRAMで、前記周辺装置1内のコントローラ制御に必要なプログラムやデータが記憶されるワークメモリとして機能する。
【0005】
3はフラッシュメモリ等の書き換え可能なROMで、周辺装置1内のコントローラが実行すべき制御プログラム,データ,フォント等が記憶される。10はホストコンピュータで、周辺装置1を制御する。
【0006】
11はアップデート制御プログラムで、現在記憶媒体30から、例えばRAM上にロードされた状態に対応する。
【0007】
12は置き換え用ファームウエアで、アップデートのために周辺装置1の現在のファームウエアを新しく置き換える制御プログラムである。30は記憶媒体で、前記アップデート制御プログラムや置き換え用ファームウエアが記憶されたフレキシブルディスクやCD−ROM等で構成される。
【0008】
通常、周辺装置1にはその周辺装置1の機能を制御するためのコントローラ(図示しない)が内蔵されており、そのコントローラの制御を実行するためのプログラム、即ちファームウエアがコントローラ上の不揮発性メモリであるROM3に格納されている。
【0009】
一方、ホストコンピュータ10にはそのホストコンピュータ10の動作を制御するOSが搭載されていて、そのOS上で何らかのアプリケーションプログラムが動作している。
【0010】
ホストコンピュータ10の使用者が周辺装置1を利用したい場合は、前記アプリケーションプログラムに指示を図示しない入力デバイス(キーボード,ポインティングデバイス)を操作して行う。アプリケーションプログラムは、使用者からの指示に従い周辺装置のハード的な違いを吸収するためのデバイスドライバ(前記OSに予めインストールされている)に制御を託す。
【0011】
デバイスドライバは、周辺装置1側の前記ファームウエアとの間で予め規定されているコマンドやステータスや処理データ(例えば、プリンタの場合は印字用の画像データ等)を両者が接続されているネットワーク20を介してやり取りしながら前記周辺装置1を制御する。
【0012】
以上の構成において、周辺装置1のファームウエアをアップデートするには、従来は図8のフローチャートに示すような手順で行われていた。
【0013】
図8は、従来の情報処理システムにおけるファームウエアップデート処理手順の一例を示すフローチャートである。なお、(800)〜(808)は各ステップを示し、ホストコンピュータ上で実行されるアップデート制御プログラムが前記周辺装置のファームウエアップデート処理を制御する場合の手順に対応する。
【0014】
まず、周辺装置1やホストコンピュータ10の操作者(以後操作者と呼ぶ)がホストコンピュータ10に記憶媒体30、例えばフレキシブルディスクやCD−ROMディスクあるいは接続されているネットワーク等から周辺装置1のメーカから提供されるアップデート制御プログラムをインストール(図7に示す矢印40参照)し、該インストールしたアップデート制御プログラムを実行させる(801)。
【0015】
次に、前記実行されたアップデート制御プログラムが、やはり、フレキシブルディスクやCD−ROMディスクあるいは接続されているネットワーク等から周辺装置1のメーカから提供される置き換え用ファームウエア12をホストコンピュータ10のRAM上にロード(図7に示す矢印41参照)する(802)。
【0016】
次に、前記実行されたアップデート制御プログラムが置き換え用ファームウエア12を周辺装置1とホストコンピュータ10が接続されているネットワーク20を介して周辺装置1のRAM2の特定領域に転送する(803)。以下、周辺装置1とホストコンピュータ10間でやり取りされるコマンドやステータスやデータ等は、周辺装置1とホストコンピュータ10が接続されているネットワークを介して転送されるものとする。
【0017】
次に、前記実行されたアップデート制御プログラムが周辺装置1に対し、アップデート実行コマンドを発行する(804)。次に、周辺装置1はホストコンピュータ10からのアップデート実行コマンドを受けて、アップデート実行処理、すなわち既にRAM上に転送されている置き換え用ファームウエア12をROM3上の現在のファームウエアを置き換えるように書き込みを行う(805)。
【0018】
次に、周辺装置1は、アップデート実行処理が完了すると、その完了したことをホストコンピュータ10に知らせるために、アップデート実行処理完了ステータス(以後、実行完了ステータスと呼ぶ。)をホストコンピュータ10のアップデート制御プログラム11に返す(806)。
【0019】
そして、アップデート制御プログラム11は、周辺装置1からの実行完了ステータスを見て、周辺装置1のROM3の書込み(つまり、アップデート実行処理)が終了したことを認識し確認すると、そのアップデート実行処理が終了したことを操作者に知らせ、さらに、周辺装置1やホストコンピュータ10の初期化を行わせるように指示を出す(807)。
【0020】
以上でアップデート実行処理が完了し、操作者によりアップデート制御プログラムも終了させられ、ホストコンピュータ10も初期化される。
【0021】
なお、図8のフローチャートにおいて、ステップ(802)の処理は、ステップ(803)の処理時にフレキシブルディスクやCD−ROMディスク等で周辺装置1のメーカから提供される置き換え用ファームウエア11をアップデート制御プログラムが読み出しながら直接周辺装置1へ転送することにより、省略することも可能である。
【0022】
【発明が解決しようとしている課題】
しかしながら、上記従来例では操作者は、アップデート制御プログラム11や置き換え用ファームウエア12を周辺装置1のメーカから別途入手する必要があり、そのアップデート制御プログラム11をホストコンピュータ10にインストールする必要もある。
【0023】
さらに、アップデート制御プログラム11の操作方法を理解するために、説明書やマニュアル等を熟読する必要がある。
【0024】
このようなアップデート制御プログラム11においては、操作や手順を間違えるとやり直しのできない状態になることも多く間違えのないように完全に理解するまで、熟読する必要がある。
【0025】
また、近年の周辺装置1は最初に発売されてから後に、バグ修正や性能向上のために内部仕様が予告無く変更されることが多く、操作者は所有している周辺装置1の内部仕様において、入手した置き換え用ファームウエア12にアップデートしてよいか悪いかを判断する必要があり、その判断を下すのが困難である。
【0026】
また、不用意にアップデートを行うと、その周辺装置1が制御不能になることもあり大きな問題となることが多い。
【0027】
さらに、周辺装置1のファームウエアは、ホストコンピュータ10側のドライバやOSと密接な関係があり、ドライバのバージョンナンバやOSの種類やバージョンナンバ等を認識し、アップデートしようとする置き換え用ファームウエア12との整合性を操作者が判断することが必要であり、さらに困難さを増す。もし、前記整合性の無いままアップデートを実行してしまった場合には、前記OSや周辺装置1が動作不能になってしまうこともあり、その影響が大きい。
【0028】
さらに、近年の周辺装置1は機能が拡張できるようにオプションのボードを装備できるような機能があり、周辺装置1本体の発売時には無かったものを装備することもありオプションボードの有無に応じて別々のファームウエアを実装しなければならなくなることも想定される。
【0029】
さらに、プリンタ等の場合、より高画質の印字を行うために新しいタイプのインクカートリッジや印刷用紙を装着するようなこともあり、インクカートリッジや印刷用紙のタイプにより、異なったヘッド制御をしなければならないこともある。
【0030】
つまり、インクカートリッジや印刷用紙のタイプに応じ異なったファームウエアが必要なことがある。
【0031】
以上述べた内容は、かなり専門的であり、一般の操作者が前記種々の条件を判別、認識しその条件に最適なファームウエアにアップデートすることは非常に困難である。
【0032】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置において、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得し、該取得される判定要因情報に基づいて、サーバで管理されるファームウエア群より最適なファームウエアの選択とダウンロードを制御することにより、ホストコンピュータのユーザ操作に依存することなく、ホストコンピュータのシステム資源に最適なファームウエアをダウンロードして、ファームウエアを適時にアップデートして、周辺装置に機能を最大限に発揮できる環境を自動構築できる周辺装置を提供することである。
【0033】
【課題を解決するための手段】
上記目的を達成する本発明の周辺装置は以下に示す構成を備える。
【0034】
本発明は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得手段と、前記取得手段により取得される判定要因情報に基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御手段とを有することを特徴とする。
【0035】
【発明の実施の形態】
〔第1実施形態〕
図1は、本発明の第1実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図であり、図7と同一のものには同一の符号を付してある。
【0036】
図1において、1は周辺装置、2はRAMで、周辺装置1内のコントローラ制御に必要な制御プログラム,データ等がロードされるワークメモリとして機能する。3は例えば書換え可能なフラッシュメモリ等で構成されるROMで、周辺装置1内のコントローラ制御下で、アップデート制御プログラムと周辺装置1の動作を制御するためのファームウエアとで構成される。そして,電源ON時やリセット時には、まず最初にアップデート制御プログラムが実行されるように構成されている。
【0037】
4は交換あるいは更新可能なデバイスで、周辺装置1が例えばプリンタで構成される場合には、インクカートリッジ等に相当する。5はオプションユニットで、周辺装置1の機能に追加できる機能処理を実行するための、例えば各種オプションボード等に相当し、ユーザが適宜追加することが可能に構成されている。
【0038】
10はホストコンピュータで、ネットワーク20を介して周辺装置1やサーバ31と通信可能に構成されている。なお、ホストコンピュータ10は、ネットワーク20を介して周辺装置1を制御可能である。
【0039】
14は図示しないRAM上にロードされるオペレーティングシステム(OS)で、ホストコンピュータ10の動作を制御する。13はデバイスドライバ(ドライバ)で、OS14から周辺装置1を(同種製品のハードウェアの違いを吸収して)制御するためのドライバであり、予めOS14にインストールされる。つまり、ドライバ13自身は当然ながら最初はインストールされていない。
【0040】
しかしながら、最近主流のWindows(登録商標)OSを搭載したコンピュータ等においてはPlug&Play機能が搭載されていて、そのコンピュータに周辺装置1が接続されたときに、その周辺装置1を制御するためのドライバが自動的にインストールされる。
【0041】
15は各種のアプリケーションプログラム(アプリケーション)で、OS14上で動作し、周辺装置1の機能を使用するものである。20はネットワークで、周辺装置1やホストコンピュータ10やサーバ31が接続されている。
【0042】
31はサーバで、ネットワーク20に接続され、置き換え用ファームウエア群33を格納しているサーバ(取得先)として予め指定されている。
【0043】
32はファームウエア管理テーブルで、サーバ31中に格納されている複数の置き換え用ファームウエア群33を各種条件に対応づけて、例えば図2に示すように管理している。
【0044】
図2は、図1に示したファームウエア管理テーブル32の一例を説明する図である。
【0045】
本実施形態において、ファームウエア管理テーブル32は、例えば図2に示すように、ホストコンピュータ10に搭載されているOSの種類(例えばWindows(登録商標)95等を含む最新のOSを含む)、OSにインストールされている周辺装置1を制御するためのドライバのバージョン、周辺装置1を、例えばプリンタと想定した場合のインクカートリッジのタイプ(インクの原材料等で区別される)、周辺装置1を機能拡張するためのオプションボードの種類等の各組合せに最適な置き換え用ファームウエアの番号を対応させている。
【0046】
つまり、例えばホストコンピュータ10にWindows(登録商標)2000のOS14が搭載されそのOS14にインストールされているプリンタ用のドライバのバージョンが1.0で、プリンタには、例えばbのタイプのインクカートリッジが搭載されてて、Cのタイプのオプションボードが実装されていると仮定すると、このプリンタにはファームウエア管理テーブル33の「42」の管理番号で管理される置き換え用ファームウエアが最適であると、後述するようにアップデート制御プログラムが判断することができる。
【0047】
なお、置き換え用ファームウエア群33には、ファームウエア管理テーブル32で管理されている、例えば図2に示すファームウエア管理テーブル32では、1〜48の置き換え用ファームウエアが外部記憶装置に記憶されている。なお、置き換え用ファームウエアは、報告される不具合等に応じて、随時その内容が更新されてバージョンが上がる場合には、その数が増えることは言うまでもない。
【0048】
通常、周辺装置1にはその周辺装置1の機能を制御するためのコントローラが内蔵されており、そのコントローラの制御を実行するためのプログラム、即ちファームウエアがコントローラ上のROM3に格納されている。
【0049】
一方、ホストコンピュータ10にはそのホストコンピュータ10の動作を制御するOS14が搭載されていて、そのOS14上で何らかのアプリケーションプログラムが動作している。
【0050】
ホストコンピュータ10の使用者が、図1に示した周辺装置1を利用したい場合は、アプリケーションプログラム15に指示を出し、該指示に従い、アプリケーションプログラム15は、使用者からの指示に従い周辺装置1のハード的な違いを吸収するためのドライバ13(OS14に予めインストールされている)に制御を託す。
【0051】
ドライバ13は、周辺装置1側のファームウエア(ROM3内に格納されている)との間で予め規定されているコマンドやステータスや処理データ(周辺装置1が、例えばプリンタの場合は印字用の画像データ等)を両者が接続されているネットワーク20を介してやり取りしながら周辺装置1を制御する。なお、本実施形態において、ネットワーク20は、インターネット等も含む概念である。
【0052】
以下に、上記構成時に前記アップデート制御プログラムの動作を基にどのようにしてアップデートが行われるかを、図1の構成図、及び図3に示すフローチャートを用いて説明する。
【0053】
図3は、本発明に係る情報処理システムにおける第1のデータ処理手順の一例を説明するフローチャートである。なお、(200)〜(207)は各ステップを示す。
【0054】
上記構成において、周辺装置1の電源ON時やリセット時にROM3中のアップデート制御プログラムが起動されると(200)、アップデート制御プログラムは、周辺装置1の内部の構成(ROM3中に実装されている現在のファームウエアのバージョンナンバ、搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等)の情報を取得し、さらに、アップデート制御プログラムはホストコンピュータ10のドライバとも通信し、ドライバ13のバージョンやOS14の種類やバージョン等の情報も取得する(201)。
【0055】
次に、アップデート制御プログラムは、このシステム条件においてはどの置き換え用ファームウエアが最適かを、予め指定されたサーバ31に格納されているファームウエア管理テーブル32を参照することにより判定し、その置き換え用ファームウエアを選択する(202)。
【0056】
次に、アップデート制御プログラムはサーバ31の予め指定された場所に格納されている複数の置き換え用ファームウエアの中から、先程のファームウエア管理テーブル32の参照により最適と判定されたファームウエア管理番号で管理されている置き換え用ファームウエアを周辺装置1のRAM2上にロードしてくる(203)。
【0057】
続いて、アップデート制御プログラムは、RAM2に転送された置き換え用ファームウエアを、現在のROM中のファームウエアを置き換えるように書き込む(204)。
【0058】
その後、アップデート制御プログラムはプログラムの実行権を同じROM中のファームウエアに渡して、ファームウエアップデートの処理を終了する(205)。
【0059】
つまり、この時点でROM3内のファームウエアが実行されて周辺装置1の動作が開始され(206)、この後は、前記ファームウエアが常時動作し、周辺装置1の動作を制御する。そして、前記周辺装置1の電源OFFに伴って強制的に終了することになる(207)。
【0060】
このように第1実施形態における情報処理システムにおいては、周辺装置1の起動時にコントローラのROM中に実装されたアップデート制御プログラムが起動し、周辺装置1の状態や周辺装置1を制御するホストコンピュータ10側のOSやドライバのバージョンナンバ等の情報を収集し、それらの構成に最適なファームウエアを予め指定されたサーバ31に用意されている複数の置き換え用ファームウエアの中から選択し、周辺装置1に転送し現在のファームウエアを書き換えて、周辺装置1のファームウエアップデートを自動的に行わせることが可能な機能を設けることにより、操作者は、従来のアップデート制御プログラムや置き換え用ファームウエアを別途入手し、またそれをインストールしたり、前記アップデート制御プログラムの煩わしい学習や困難な判断をしなくても周辺装置1を常に最新のファームウエアで動作させることができ、周辺装置1の最大限の性能を発揮させることが可能である。
【0061】
また、ホストコンピュータ10に搭載されているOS14を変更した場合や、周辺装置1のメーカが性能向上のために周辺装置1の内部仕様やドライバを改定した場合でも自動的に最適なファームウエアにアップデートできる。
【0062】
さらに、オプションボード等の追加や交換可能な機能を変更した場合でも、その機能の性能を最大限発揮させることが可能である。
【0063】
さらに、周辺装置1を製造/販売する側にとっても、製品の内部仕様を変更することが容易になり、新しい技術が開発されれば直ぐに市場に流れている製品にも反映させることが可能であり、製品に付加価値をつけることができる。
【0064】
また、周辺装置1を製造/販売する側は、従来のようにアップデート制御プログラムを製造したり配布したり告知したり質問に回答したりする必要が無く、ただ、予め指定された場所の置き換え用ファームウエアやファームウエア管理テーブルのみをメンテナンスするのみでよく、ユーザサポートの労力を大幅に削減できる。
【0065】
〔第2実施形態〕
上記第1実施形態では、通常周辺装置のシステム構成等の変更は、電源OFF時に行われるため、そのあとは必ず周辺装置の起動がかかるため、起動時にアップデート制御プログラムを動作させ、周辺装置の電源ON時やリセット時等の起動時にのみ、アップデート制御プログラムが動作する場合について説明したが、ネットワークに接続されている周辺装置は、複数の種類のホストコンピュータからアクセスされることもあり、また、1台のホストコンピュータしかアクセスしない場合でも複数のOSを搭載したホストコンピュータからOSを切り替えてアクセスされることも考えられる。つまり、周辺装置の電源がONの状態の間に、異なるOSやドライバからアクセスされることがある。
【0066】
このような場合、第1実施形態の周辺装置1では最適なファームウエアで操作させられない事が起き得る。そこで、このような事態に備えて、周辺装置のコントローラ上のプログラム用のROMにアップデート制御プログラムと複数のファームウエアを格納可能とし、それら複数のファームウエアを切り替えて動作させる構成にしてもよい。以下、その実施形態について説明する。
【0067】
図4は、本発明の第2実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図であり、図1と同一のものには同一の符号を付してある。
【0068】
図4に示すように、周辺装置1のコントローラ上のプログラムROMにアップデート制御プログラムと複数のファームウエアF1〜F6を格納可能(ROM3の容量に応じてその数は任意とする)とし、それら複数のファームウエアを切り替えて動作させる構成を備える。
【0069】
そして、アップデート制御プログラムは、ROM3中の各ファームウエアの管理番号を参照できる手段を有し、プログラムの実行権をROM3中の最適なファームウエアに渡す手段や各ファームウエアが過去に実行された回数を管理する手段も有する。
【0070】
また、ROM3中の各ファームウエアは、自身が実行中に、定期的に周辺装置1のシステム構成情報(搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等)をチェックし変化があった場合や、ホストコンピュータ10からアクセスがあった場合に、そのホストコンピュータ10のドライバ13と通信し、ホストコンピュータ10のドライバ13のバージョンやOS14の種類やバージョン等の情報も取得し、前回の取得情報と異なっていた場合等にプログラムの実行権を前記アップデート制御プログラムに戻す手段を有する。
【0071】
なお、本実施形態において、ROM3の中の構成と、そのROM3中のアップデート制御プログラムと各複数のファームウエア以外の構成や機能は、第1実施形態と同様である。
【0072】
以上の構成において、本実施形態のアップデート処理について、図4の構成図および図5に示すフローチャートを参照して説明する。
【0073】
図5は、本発明に係る情報処理システムにおける第2のデータ処理手順の一例を説明するフローチャートである。なお、(500)〜(512)は各ステップを示す。
【0074】
図4に示すシステム構成において、まず、周辺装置1の電源がONまたはリセットされると、アップデート制御プログラムが起動される(500)。アップデート制御プログラムは、周辺装置1の内部の構成(ROM3中に実装されている複数の各ファームウエアの管理ナンバ、搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等)の情報を取得する。さらに、ホストコンピュータ10からのアクセスがある場合には、そのホストコンピュータ10のドライバ13とも通信し、ドライバ13のバージョンやOS14の種類やバージョン等の情報も取得する(501)。
【0075】
次に、アップデート制御プログラムは、このシステム条件においてはどの置き換え用ファームウエアが最適かを、予め指定されたサーバ31に格納されているファームウエア管理テーブル32を参照することにより判定し、その置き換え用ファームウエアを選択する(502)。
【0076】
次に、アップデート制御プログラムは、先程選択されたファームウエアの管理番号とROM3中にある各ファームウエアの管理番号とを比較して判定し(503)、同じ管理番号のものが有る場合には、すでに最適なファームウエアが存在するため、その同じ管理番号のファームウエア(506)〜(511)にプログラムの実行権を渡す。
【0077】
一方、ステップ(503)で、同じ管理番号が無いと判断した場合には、初めてのファームウエアであると判断できるため、サーバ31の予め指定された場所に格納されている複数の置き換え用ファームウエアのなかから、先程のファームウエア管理テーブル32の参照により最適と判定されたファームウエア管理番号で管理されている置き換え用ファームウエアを周辺装置1のRAM2上にロードしてくる(504)。
【0078】
続いて、アップデート制御プログラムは、RAM2に転送された置き換え用ファームウエアをROM3中の空いているファームウエア書き込みエリアに書き込む(505)。なお、もし、空き書き込みエリアが無い場合には、過去の各ファームウエアの実行回数の最も少ないファームウエアを置き換えるように書き込む。
【0079】
その後、アップデート制御プログラムはプログラムの実行権を先程書き込んだファームウエアに渡して(506〜511)、本処理を終了する(512)。
【0080】
つまり、この時点で最適なファームウエアが実行されて、周辺装置1の動作が開始される。そして、そのファームウエアが実行中に、定期的にシステム構成情報をチェックしたり、ホストコンピュータ10からアクセスがあった場合にそのホストコンピュータ10のドライバ13と通信し前記ホストコンピュータ10のドライバ13のバージョンやOS14の種類やバージョン等の情報を取得し続ける。それらの取得情報が前回取得した情報と異なっていた場合には、システム構成やホストコンピュータ10側のOS14やドライバ13等が変更されたと判断し、プログラムの実行権を前記アップデート制御プログラムに戻す。
【0081】
つまり、図5に示したステップ(502)の処理へ戻る。
【0082】
そして、最後に取得した情報を基に前述したのと同様に、予め指定されたサーバ31に格納されているファームウエア管理テーブル32を参照することにより判定し、その置き換え用ファームウエアを選択する。
【0083】
以下、前述したのと同様に動作し、ステップ(502)〜(511)の処理を実行するループを構成し、プログラムが実行され続ける。そして、周辺装置1の電源OFFに伴って強制的に終了することになる(512)。
【0084】
以上のように、プログラム(アップデート制御プログラムと選択されたファームウエア)が実行され続けることにより、周辺装置1のシステム構成が変更されたり異なるホストコンピュータからアクセスされても、常に最適なファームウエアで周辺装置1を動作させることができる。
【0085】
以上説明したように、上記第2実施形態によれば、周辺装置1のコントローラ上のプログラムROMにアップデート制御プログラムと複数のファームウエアを格納可能とし、それら複数のファームウエアを切り替えて動作させることができる手段を有し、アップデート制御プログラムは、ROM3中の各ファームウエアの管理番号を参照できる手段を有し、プログラムの実行権をROM3中の最適なファームウエアに渡す手段や各ファームウエアが過去に実行された回数を管理する手段も有し、また、前記ROM3中の各ファームウエアは、自身が実行中に、定期的に周辺装置1のシステム構成情報をチェックしたりホストコンピュータ10からアクセスがあった場合にそのホストコンピュータ10のドライバ13と通信しホストコンピュータ10のドライバ13のバージョンやOS14の種類やバージョン等の情報も取得し前回の取得情報と異なっていた場合等にプログラムの実行権を前記アップデート制御プログラムに戻す手段を有する構成とすることにより、周辺装置1のシステム構成が変更されたり異なるホストコンピュータからアクセスされても、常に最適なファームウエアで周辺装置1を動作させることができる。つまり、常に周辺装置1の最大限の性能を発揮させることが可能である。
【0086】
また、複数のファームウエアを切り替えて使用できるため、例えば、オプションボードを頻繁に着脱して使用したり、複数のインクカートリッジを場合に応じて使い分けて使用したりしても、最初の1回のみの置き換え用ファームウエアのロードおよび書き込みのみで済ませることができる。
【0087】
つまり、通常ROM3への書き込みは時間がかかり、また、書き込み回数の制限もあるため、アップデート処理時間および信頼性の点で、有効である。
【0088】
以下、図6に示すメモリマップを参照して本発明に係る情報処理システムで読み取り可能なデータ処理プログラムの構成について説明する。
【0089】
図6は、本発明に係る情報処理システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0090】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0091】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0092】
本実施形態における図3,図5に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0093】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0094】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0095】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0096】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0097】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0098】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から排除するものではない。
【0099】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではなく、以下の実施態様も含まれることはいうまでもない。以下、その実施態様1〜23について説明する。
【0100】
〔実施態様1〕
ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得手段(図1に示すROM3に記憶されるアップデート制御プログラムに相当)と、前記取得手段により取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御手段(図1に示すROM3に記憶されるアップデート制御プログラムに相当)とを有することを特徴とする周辺装置。
【0101】
〔実施態様2〕
前記ダウンロード制御手段は、前記周辺装置の電源ON時やリセット時に起動することを特徴とする実施態様1記載の周辺装置。
【0102】
〔実施態様3〕
前記取得手段が取得する判定要因情報には、ホストコンピュータ側のOSやドライバのバージョンナンバ等の情報を含むことを特徴とする実施態様1記載の周辺装置。
【0103】
〔実施態様4〕
前記内部資源情報には、前記ファームウエアのバージョンナンバ、オプションボードの有無と種類、実装されているインクカートリッジや紙のタイプ等を含むことを特徴とする実施態様1記載の周辺装置。
【0104】
〔実施態様5〕
前記ダウンロード制御手段は、前記周辺装置に記憶されている登録済みファームウエアを前記サーバよりダウンロードされたファームウエアに書き換えるアップデートを行うことを特徴とする実施態様1記載の周辺装置。
【0105】
〔実施態様6〕
前記ダウンロード制御手段は、ホストコンピュータ側から初めての種類のOSからアクセスがあった場合に、前記取得手段により取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードすることを特徴とする実施態様1記載の周辺装置。
【0106】
〔実施態様7〕
複数種のファームウエアを記憶するファームウエア記憶手段を備え、前記ダウンロード制御手段は、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して、ダウンロードしたファームウエアの書き換えを制御することを特徴とする実施態様1または2記載の周辺装置。
【0107】
〔実施態様8〕
前記ダウンロード制御手段は、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して、前記ファームウエア記憶手段に記憶されるいずれかのファームウエアを切り換えることを特徴とする実施態様1または2記載の周辺装置。
【0108】
〔実施態様9〕
前記ダウンロード制御手段は、前記ファームウエア記憶手段の空き領域と記憶されるファームウエアの選択履歴を管理して、選択頻度の少ないファームウエアを削除して、ダウンロードしたファームウエアを書き込ませることを特徴とする実施態様1または2記載の周辺装置。
【0109】
〔実施態様10〕
ネットワークを介してホストコンピュータからのデータ処理要求を行う周辺装置のファームウエアを管理するサーバであって、前記ホストコンピュータのシステム構成情報に基づいて前記周辺装置にダウンロードすべき複数の置き換え用ファームウエアを管理する管理手段(図1に示すサーバ31のコントローラが実行する制御プログラムに相当)を有することを特徴とするサーバ。
【0110】
〔実施態様11〕
前記管理手段は、前記周辺装置にダウンロードすべき置き換え用の複数のファームウエア群を記憶する記憶手段(図1に示すサーバ31の図示しない外部記憶装置)と、前記複数のファームウエア群の特徴を管理する管理テーブル(図1に示すファームウエア管理テーブル32に相当)とを備えることを特徴とする実施態様10記載のサーバ。
【0111】
〔実施態様12〕
ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置におけるダウンロード方法であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得ステップ(例えば図2に示すステップ(201))と、前記取得ステップにより取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御ステップ(例えば図2に示すステップ(202)〜(207))とを有することを特徴とするダウンロード方法。
【0112】
〔実施態様13〕
前記ダウンロード制御ステップは、前記周辺装置の電源ON時やリセット時に起動することを特徴とする実施態様12記載のダウンロード方法。
【0113】
〔実施態様14〕
前記取得ステップが取得する判定要因情報には、ホストコンピュータ側のOSやドライバのバージョンナンバ等の情報を含むことを特徴とする実施態様12記載のダウンロード方法。
【0114】
〔実施態様15〕
前記内部資源情報には、前記ファームウエアのバージョンナンバ、オプションボードの有無と種類、実装されているインクカートリッジや紙のタイプ等を含むことを特徴とする実施態様12記載のダウンロード方法。
【0115】
〔実施態様16〕
前記ダウンロード制御ステップは、前記周辺装置に記憶されている登録済みファームウエアを前記サーバよりダウンロードされたファームウエアに書き換えるアップデートを行うことを特徴とする実施態様12記載のダウンロード方法。
【0116】
〔実施態様17〕
前記ダウンロード制御ステップは、ホストコンピュータ側から初めての種類のOSからアクセスがあった場合に、前記取得ステップにより取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードすることを特徴とする実施態様12記載のダウンロード方法。
【0117】
〔実施態様18〕
複数種のファームウエアを記憶するファームウエア記憶手段を備え、前記ダウンロード制御ステップは、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して(図5に示すステップ(503))、ダウンロードしたファームウエアの書き換えを制御することを特徴とする実施態様12または13記載のダウンロード方法。
【0118】
〔実施態様19〕
前記ダウンロード制御ステップは、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して(図5に示すステップ(503))、前記ファームウエア記憶手段に記憶されるいずれかのファームウエアを切り換えることを特徴とする実施態様12または13記載のダウンロード方法。
【0119】
〔実施態様20〕
前記ダウンロード制御ステップは、前記ファームウエア記憶手段の空き領域と記憶されるファームウエアの選択履歴を管理して、選択頻度の少ないファームウエアを削除して、ダウンロードしたファームウエアを書き込ませることを特徴とする実施態様12または13記載のダウンロード方法。
【0120】
〔実施態様21〕
ネットワークを介してホストコンピュータからのデータ処理要求を行う周辺装置のファームウエアを管理するサーバにおけるダウンロード方法であって、前記ホストコンピュータのシステム構成情報に基づいて前記周辺装置にダウンロードすべき複数の置き換え用ファームウエアを管理する管理ステップを有することを特徴とするダウンロード方法。
【0121】
〔実施態様22〕
実施態様12〜21のいずれかに記載のダウンロード方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【0122】
〔実施態様23〕
実施態様12〜21のいずれかに記載のダウンロード方法を実現することを特徴とするプログラム。
【0123】
【発明の効果】
以上説明したように、本発明によれば、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置において、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得し、該取得される判定要因情報に基づいて、サーバで管理されるファームウエア群より最適なファームウエアの選択とダウンロードを制御するので、ホストコンピュータのユーザ操作に依存することなく、ホストコンピュータのシステム資源に最適なファームウエアをダウンロードして、ファームウエアを適時にアップデートして、周辺装置の機能を最大限に発揮できる環境を自動構築できるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図である。
【図2】図1に示したファームウエア管理テーブルの一例を説明する図である。
【図3】本発明に係る情報処理システムにおける第1のデータ処理手順の一例を説明するフローチャートである。
【図4】本発明の第2実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図である。
【図5】本発明に係る情報処理システムにおける第2のデータ処理手順の一例を説明するフローチャートである。
【図6】本発明に係る情報処理システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図7】この種の情報処理システムの構成を説明するブロック図である。
【図8】従来の情報処理システムにおけるファームウエアップデート処理手順の一例を示すフローチャートである。
【符号の説明】
1 周辺装置
2 RAM
3 ROM
4 インクカートリッジ
5 オプションボード
10 ホストコンピュータ
13 ドライバ
14 OS
15 アプリケーション
20 ネットワーク
31 サーバ
32 ファームウエア管理テーブル
33 置き換え用ファームウエア[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a process for downloading firmware to a peripheral device that can communicate with a server or a host computer that manages a plurality of replacement firmware via a network.
[0002]
[Prior art]
Conventionally, firmware update of peripheral devices connected to a network has been performed as shown in FIG.
[0003]
FIG. 7 is a block diagram illustrating the configuration of an information processing system to which this type of peripheral device can be applied, and corresponds to a system in which the host computer 10 can communicate with the peripheral device 1 via the network 20.
[0004]
In FIG. 7, reference numeral 1 denotes a peripheral device, which includes a printer, a scanner, a modem, a digital camera, a storage device, and the like. Reference numeral 2 denotes a RAM, which functions as a work memory in which programs and data necessary for controlling the controller in the peripheral device 1 are stored.
[0005]
A rewritable ROM 3 such as a flash memory stores control programs, data, fonts, and the like to be executed by a controller in the peripheral device 1. A host computer 10 controls the peripheral device 1.
[0006]
Reference numeral 11 denotes an update control program corresponding to a state currently loaded from the storage medium 30 to, for example, a RAM.
[0007]
Reference numeral 12 denotes replacement firmware, which is a control program for newly replacing the current firmware of the peripheral device 1 for updating. Reference numeral 30 denotes a storage medium, which comprises a flexible disk or a CD-ROM in which the update control program and the replacement firmware are stored.
[0008]
Usually, the peripheral device 1 has a built-in controller (not shown) for controlling the function of the peripheral device 1, and a program for executing the control of the controller, that is, firmware is stored in a nonvolatile memory on the controller. Is stored in the ROM 3.
[0009]
On the other hand, the host computer 10 has an OS for controlling the operation of the host computer 10, and some application program runs on the OS.
[0010]
When the user of the host computer 10 wants to use the peripheral device 1, the user operates an input device (keyboard, pointing device) (not shown) to give an instruction to the application program. The application program entrusts control to a device driver (preinstalled in the OS) for absorbing a hardware difference between peripheral devices according to an instruction from the user.
[0011]
The device driver transmits commands, statuses, and processing data (for example, image data for printing in the case of a printer) which have been defined in advance with the firmware of the peripheral device 1 to the network 20 to which both are connected. The peripheral device 1 is controlled while exchanging data via the.
[0012]
In the above configuration, updating the firmware of the peripheral device 1 has conventionally been performed according to the procedure shown in the flowchart of FIG.
[0013]
FIG. 8 is a flowchart illustrating an example of a firmware update processing procedure in a conventional information processing system. The steps (800) to (808) indicate the respective steps, and correspond to the procedure when the update control program executed on the host computer controls the firmware update process of the peripheral device.
[0014]
First, an operator of the peripheral device 1 or the host computer 10 (hereinafter, referred to as an operator) sends the host computer 10 a storage medium 30 such as a flexible disk or a CD-ROM disk or a connected network from a manufacturer of the peripheral device 1. The provided update control program is installed (see the arrow 40 shown in FIG. 7), and the installed update control program is executed (801).
[0015]
Next, the executed update control program stores the replacement firmware 12 provided by the manufacturer of the peripheral device 1 from a flexible disk, a CD-ROM disk, or a connected network or the like on the RAM of the host computer 10. (See arrow 41 shown in FIG. 7) (802).
[0016]
Next, the executed update control program transfers the replacement firmware 12 to a specific area of the RAM 2 of the peripheral device 1 via the network 20 to which the peripheral device 1 and the host computer 10 are connected (803). Hereinafter, it is assumed that commands, statuses, data, and the like exchanged between the peripheral device 1 and the host computer 10 are transferred via a network connecting the peripheral device 1 and the host computer 10.
[0017]
Next, the executed update control program issues an update execution command to the peripheral device 1 (804). Next, the peripheral device 1 receives the update execution command from the host computer 10 and executes the update execution process, that is, the replacement firmware 12 already transferred to the RAM so as to replace the current firmware on the ROM 3. Is performed (805).
[0018]
Next, when the update execution processing is completed, the peripheral device 1 updates the update execution processing completion status (hereinafter referred to as an execution completion status) of the host computer 10 to notify the host computer 10 of the completion. Return to the program 11 (806).
[0019]
Then, the update control program 11 checks the execution completion status from the peripheral device 1 and recognizes that the writing to the ROM 3 of the peripheral device 1 (that is, the update execution process) has been completed. The operation is notified to the operator, and further, an instruction is issued to initialize the peripheral device 1 and the host computer 10 (807).
[0020]
Thus, the update execution processing is completed, the update control program is terminated by the operator, and the host computer 10 is also initialized.
[0021]
In the flowchart of FIG. 8, the processing in step (802) is performed by updating the replacement firmware 11 provided by the manufacturer of the peripheral device 1 on a flexible disk, a CD-ROM disk, or the like at the time of processing in step (803). Can be omitted by transferring the data directly to the peripheral device 1 while reading.
[0022]
[Problems to be solved by the invention]
However, in the above conventional example, the operator needs to separately obtain the update control program 11 and the replacement firmware 12 from the manufacturer of the peripheral device 1, and also needs to install the update control program 11 in the host computer 10.
[0023]
Further, in order to understand the operation method of the update control program 11, it is necessary to carefully read the instruction manual and the manual.
[0024]
In such an update control program 11, it is often necessary to read carefully until a complete understanding is made so that mistakes in operations and procedures often lead to an irreparable state.
[0025]
In addition, in recent years, after the peripheral device 1 is first released, the internal specifications are often changed without notice in order to fix bugs or improve performance. Therefore, it is necessary to determine whether or not the acquired replacement firmware 12 can be updated, and it is difficult to make that determination.
[0026]
In addition, careless updating may cause the peripheral device 1 to become uncontrollable, often causing a serious problem.
[0027]
Further, the firmware of the peripheral device 1 has a close relationship with the driver and the OS of the host computer 10, and recognizes the version number of the driver, the type of the OS, the version number, and the like, and updates the replacement firmware 12 to be updated. It is necessary for the operator to judge the consistency with the above, which further increases the difficulty. If the update is performed without the consistency, the OS or the peripheral device 1 may become inoperable, which has a great effect.
[0028]
Furthermore, the peripheral device 1 in recent years has a function that can be equipped with an optional board so that the function can be expanded. The peripheral device 1 may be equipped with a peripheral device that was not present at the time of release. It may be necessary to implement the firmware of
[0029]
Furthermore, in the case of a printer, etc., a new type of ink cartridge or printing paper may be installed in order to perform higher quality printing, and different head controls must be performed depending on the type of ink cartridge and printing paper. Sometimes it doesn't.
[0030]
That is, different firmware may be required depending on the type of the ink cartridge or the printing paper.
[0031]
The contents described above are quite specialized, and it is very difficult for a general operator to discriminate and recognize the various conditions and update the firmware to the optimal one for the conditions.
[0032]
The present invention has been made to solve the above problems, and an object of the present invention is to provide a server or a host computer that manages a plurality of replacement firmware via a network, and a peripheral device that can communicate with the host computer. Obtaining judgment factor information for rewriting firmware from a server or a host computer, and controlling selection and download of optimal firmware from a group of firmware managed by the server based on the obtained judgment factor information; This makes it possible to download the optimal firmware for the system resources of the host computer and update the firmware in a timely manner without relying on the user operation of the host computer, automatically creating an environment where peripheral devices can maximize their functions. It is to provide a peripheral device that can be constructed.
[0033]
[Means for Solving the Problems]
The peripheral device of the present invention that achieves the above object has the following configuration.
[0034]
The present invention relates to a peripheral device that can communicate with a server or a host computer that manages a plurality of replacement firmware via a network, and obtains determination factor information for rewriting firmware from the server or the host computer. Means, and download control means for selecting and downloading optimum firmware from a group of firmware managed by the server based on the determination factor information acquired by the acquisition means.
[0035]
BEST MODE FOR CARRYING OUT THE INVENTION
[First Embodiment]
FIG. 1 is a block diagram illustrating a configuration of an information processing system to which a peripheral device and a server according to a first embodiment of the present invention can be applied, and the same components as those in FIG. 7 are denoted by the same reference numerals. .
[0036]
In FIG. 1, reference numeral 1 denotes a peripheral device, and 2 denotes a RAM, which functions as a work memory into which control programs, data, and the like necessary for controlling the controller in the peripheral device 1 are loaded. Reference numeral 3 denotes a ROM constituted by, for example, a rewritable flash memory or the like, which comprises an update control program and firmware for controlling the operation of the peripheral device 1 under the control of a controller in the peripheral device 1. Then, at the time of power ON or reset, the update control program is executed first.
[0037]
Reference numeral 4 denotes a replaceable or updatable device, which corresponds to an ink cartridge or the like when the peripheral device 1 is constituted by a printer, for example. Reference numeral 5 denotes an option unit, which corresponds to, for example, various option boards for executing a function process that can be added to the function of the peripheral device 1, and is configured to be appropriately added by a user.
[0038]
Reference numeral 10 denotes a host computer which is configured to be able to communicate with the peripheral device 1 and the server 31 via the network 20. Note that the host computer 10 can control the peripheral device 1 via the network 20.
[0039]
An operating system (OS) 14 is loaded on a RAM (not shown) and controls the operation of the host computer 10. Reference numeral 13 denotes a device driver (driver) which is a driver for controlling the peripheral device 1 from the OS 14 (by absorbing differences in hardware of similar products), and is installed in the OS 14 in advance. That is, the driver 13 itself is not installed at first at first.
[0040]
However, recently, a computer or the like equipped with a Windows (registered trademark) OS has a Plug & Play function, and a driver for controlling the peripheral device 1 when the peripheral device 1 is connected to the computer. Installed automatically.
[0041]
Reference numeral 15 denotes various application programs (applications) that operate on the OS 14 and use the functions of the peripheral device 1. Reference numeral 20 denotes a network to which the peripheral device 1, the host computer 10, and the server 31 are connected.
[0042]
Reference numeral 31 denotes a server which is connected to the network 20 and is designated in advance as a server (acquisition source) storing the replacement firmware group 33.
[0043]
A firmware management table 32 manages a plurality of replacement firmware groups 33 stored in the server 31 in association with various conditions, for example, as shown in FIG.
[0044]
FIG. 2 is a diagram illustrating an example of the firmware management table 32 illustrated in FIG.
[0045]
In the present embodiment, the firmware management table 32 includes, for example, as shown in FIG. 2, the type of OS (including the latest OS including Windows (registered trademark) 95 and the like), the OS Version of the driver installed in the peripheral device 1 for controlling the peripheral device 1, the type of the ink cartridge when the peripheral device 1 is assumed to be, for example, a printer (discriminated by the raw material of the ink, etc.), and the function expansion of the peripheral device 1 The optimal replacement firmware number is associated with each combination such as the type of option board to be used.
[0046]
That is, for example, an OS 14 of Windows (registered trademark) 2000 is installed in the host computer 10 and the version of the driver for the printer installed in the OS 14 is 1.0, and an ink cartridge of type b is installed in the printer. If it is assumed that an option board of type C is mounted, the replacement firmware managed by the management number of "42" in the firmware management table 33 is optimal for this printer. The update control program can make a determination as to what to do.
[0047]
The replacement firmware group 33 is managed by a firmware management table 32. For example, in the firmware management table 32 shown in FIG. 2, 1 to 48 replacement firmware are stored in an external storage device. I have. It is needless to say that the number of replacement firmware is increased when the content is updated and the version is updated at any time in response to a reported defect or the like.
[0048]
Normally, the peripheral device 1 has a built-in controller for controlling the function of the peripheral device 1, and a program for executing the control of the controller, that is, firmware, is stored in the ROM 3 on the controller.
[0049]
On the other hand, the host computer 10 has an OS 14 for controlling the operation of the host computer 10, and some application program runs on the OS 14.
[0050]
When the user of the host computer 10 wants to use the peripheral device 1 shown in FIG. 1, it issues an instruction to the application program 15, and the application program 15 follows the instruction and the hardware of the peripheral device 1 according to the instruction from the user. The control is entrusted to a driver 13 (pre-installed in the OS 14) for absorbing the difference.
[0051]
The driver 13 includes commands, statuses, and processing data defined in advance with firmware (stored in the ROM 3) of the peripheral device 1 (images for printing when the peripheral device 1 is, for example, a printer). The peripheral device 1 is controlled while exchanging data and the like via a network 20 to which both are connected. In the present embodiment, the network 20 is a concept including the Internet and the like.
[0052]
Hereinafter, how the update is performed based on the operation of the update control program in the above configuration will be described with reference to the configuration diagram of FIG. 1 and the flowchart shown in FIG.
[0053]
FIG. 3 is a flowchart illustrating an example of a first data processing procedure in the information processing system according to the present invention. Note that (200) to (207) indicate each step.
[0054]
In the above configuration, when the update control program in the ROM 3 is started when the power of the peripheral device 1 is turned on or reset (200), the update control program is executed by the internal configuration of the peripheral device 1 (currently implemented in the ROM 3). Firmware version number, the type of the installed ink cartridge, the type of the installed optional board, etc.), and the update control program communicates with the driver of the host computer 10. Information such as the version and the type and version of the OS 14 is also acquired (201).
[0055]
Next, the update control program determines which replacement firmware is optimal under the system conditions by referring to the firmware management table 32 stored in the server 31 specified in advance, and determines the replacement firmware. Firmware is selected (202).
[0056]
Next, the update control program uses a firmware management number determined to be optimal by referring to the firmware management table 32 from among the plurality of replacement firmware stored in a predetermined location of the server 31. The managed replacement firmware is loaded onto the RAM 2 of the peripheral device 1 (203).
[0057]
Subsequently, the update control program writes the replacement firmware transferred to the RAM 2 so as to replace the current firmware in the ROM (204).
[0058]
Thereafter, the update control program passes the execution right of the program to the firmware in the same ROM, and ends the firmware update process (205).
[0059]
That is, at this point, the firmware in the ROM 3 is executed and the operation of the peripheral device 1 is started (206). After that, the firmware always operates to control the operation of the peripheral device 1. Then, the process is forcibly terminated when the power of the peripheral device 1 is turned off (207).
[0060]
As described above, in the information processing system according to the first embodiment, when the peripheral device 1 is started, the update control program mounted in the ROM of the controller starts, and the host computer 10 that controls the state of the peripheral device 1 and the peripheral device 1 Information such as the version number of the OS and the driver on the side is collected, and the optimum firmware for the configuration is selected from a plurality of replacement firmware prepared in the server 31 specified in advance, and the peripheral device 1 is selected. To update the current firmware and automatically update the firmware of the peripheral device 1, the operator can separately install the conventional update control program and replacement firmware. Obtain and install it, or use the update control program Even without the cumbersome learning and difficult judgment of the peripheral device 1 can always be operated with the latest firmware, it is possible to exert the maximum performance of the peripheral device 1.
[0061]
Also, when the OS 14 installed in the host computer 10 is changed, or when the maker of the peripheral device 1 revises the internal specifications or driver of the peripheral device 1 to improve performance, the firmware is automatically updated to the optimum firmware. it can.
[0062]
Furthermore, even when an option board or the like is added or a replaceable function is changed, the performance of the function can be maximized.
[0063]
Furthermore, it is easy for the side that manufactures / sells the peripheral device 1 to change the internal specification of the product, and if a new technology is developed, it can be reflected on the product that is flowing to the market immediately. , It can add value to products.
[0064]
In addition, the side that manufactures / sells the peripheral device 1 does not need to manufacture, distribute, notify, or answer a question as in the related art, but merely replaces the location designated in advance. Only the firmware and the firmware management table need be maintained, and the user support effort can be greatly reduced.
[0065]
[Second embodiment]
In the first embodiment, since the change of the system configuration and the like of the peripheral device is normally performed when the power is turned off, the peripheral device is always started after that. Although the case where the update control program operates only at the time of startup such as ON or reset has been described, a peripheral device connected to the network may be accessed from a plurality of types of host computers. Even when only one host computer is accessed, it is conceivable that the OS is switched from a host computer on which a plurality of OSs are mounted and accessed. In other words, the peripheral device may be accessed from a different OS or driver while the power of the peripheral device is ON.
[0066]
In such a case, the peripheral device 1 of the first embodiment may not be operated with the optimal firmware. Therefore, in preparation for such a situation, a configuration may be adopted in which the update control program and a plurality of firmware can be stored in the program ROM on the controller of the peripheral device, and the plurality of firmware are switched to operate. Hereinafter, the embodiment will be described.
[0067]
FIG. 4 is a block diagram illustrating a configuration of an information processing system to which a peripheral device and a server according to a second embodiment of the present invention can be applied, and the same components as those in FIG. 1 are denoted by the same reference numerals. .
[0068]
As shown in FIG. 4, an update control program and a plurality of firmwares F1 to F6 can be stored in a program ROM on a controller of the peripheral device 1 (the number of firmware F1 to F6 is arbitrary depending on the capacity of the ROM 3). A configuration for switching firmware to operate is provided.
[0069]
The update control program has means for referring to the management number of each firmware in the ROM 3, means for transferring the execution right of the program to the optimal firmware in the ROM 3, and the number of times each firmware has been executed in the past. There is also a means for managing
[0070]
Each firmware in the ROM 3 periodically checks the system configuration information (the type of the installed ink cartridge, the type of the installed optional board, etc.) of the peripheral device 1 during execution and changes. When there is an access from the host computer 10, the communication with the driver 13 of the host computer 10 is performed, and information such as the version of the driver 13 of the host computer 10 and the type and version of the OS 14 is also acquired. Means for returning the execution right of the program to the update control program when the acquired information is different from the acquired information.
[0071]
Note that, in this embodiment, the configuration in the ROM 3 and the configuration and functions other than the update control program and each of the plurality of firmware in the ROM 3 are the same as those in the first embodiment.
[0072]
In the above configuration, the update processing of this embodiment will be described with reference to the configuration diagram of FIG. 4 and the flowchart shown in FIG.
[0073]
FIG. 5 is a flowchart illustrating an example of a second data processing procedure in the information processing system according to the present invention. (500) to (512) indicate each step.
[0074]
In the system configuration shown in FIG. 4, first, when the power of the peripheral device 1 is turned on or reset, the update control program is started (500). The update control program includes information on the internal configuration of the peripheral device 1 (management numbers of a plurality of firmware mounted in the ROM 3, types of mounted ink cartridges, types of installed option boards, etc.). To get. Further, when there is an access from the host computer 10, it also communicates with the driver 13 of the host computer 10 and acquires information such as the version of the driver 13 and the type and version of the OS 14 (501).
[0075]
Next, the update control program determines which replacement firmware is optimal under the system conditions by referring to the firmware management table 32 stored in the server 31 specified in advance, and determines the replacement firmware. The firmware is selected (502).
[0076]
Next, the update control program compares the management number of the firmware selected previously with the management number of each firmware in the ROM 3 to determine (503). Since the optimal firmware already exists, the right to execute the program is transferred to the firmware (506) to (511) having the same management number.
[0077]
On the other hand, if it is determined in step (503) that the same management number does not exist, it can be determined that the firmware is the first firmware. Therefore, a plurality of replacement firmware stored in a predetermined location of the server 31 is determined. Among them, the replacement firmware managed by the firmware management number determined to be optimum by referring to the firmware management table 32 is loaded onto the RAM 2 of the peripheral device 1 (504).
[0078]
Subsequently, the update control program writes the replacement firmware transferred to the RAM 2 into an empty firmware write area in the ROM 3 (505). If there is no free write area, writing is performed so as to replace the firmware that has been executed the least number of times in the past.
[0079]
Thereafter, the update control program passes the execution right of the program to the firmware that has been written earlier (506 to 511), and ends this processing (512).
[0080]
That is, at this point, the optimal firmware is executed, and the operation of the peripheral device 1 is started. During the execution of the firmware, the system configuration information is periodically checked. When the firmware is accessed, the host computer 10 communicates with the driver 13 of the host computer 10 and communicates with the driver 13 of the host computer 10. And information on the type and version of the OS 14 and the like. If the acquired information is different from the information acquired last time, it is determined that the system configuration, the OS 14 and the driver 13 of the host computer 10 have been changed, and the execution right of the program is returned to the update control program.
[0081]
That is, the process returns to step (502) shown in FIG.
[0082]
Then, in the same manner as described above based on the information acquired last, the determination is made by referring to the firmware management table 32 stored in the server 31 specified in advance, and the replacement firmware is selected.
[0083]
Hereinafter, the same operation as described above is performed, a loop for executing the processing of steps (502) to (511) is formed, and the program is continuously executed. Then, the process is forcibly terminated when the power of the peripheral device 1 is turned off (512).
[0084]
As described above, by continuing to execute the program (the update control program and the selected firmware), even if the system configuration of the peripheral device 1 is changed or accessed from a different host computer, the peripheral device 1 is always updated with the optimal firmware. The device 1 can be operated.
[0085]
As described above, according to the second embodiment, the update control program and the plurality of firmware can be stored in the program ROM on the controller of the peripheral device 1, and the plurality of firmware can be switched and operated. The update control program has means for referring to the management number of each firmware in the ROM 3, and means for passing the execution right of the program to the optimal firmware in the ROM 3 Each firmware in the ROM 3 also periodically checks the system configuration information of the peripheral device 1 or receives an access from the host computer 10 during execution of the firmware. Communication with the driver 13 of the host computer 10 when the By acquiring information such as the version of the driver 13 and the type and version of the OS 14 and returning the execution right of the program to the update control program when the acquired information is different from the previous acquired information, Even if the system configuration of the device 1 is changed or accessed from a different host computer, the peripheral device 1 can always be operated with the optimal firmware. That is, it is possible to always exert the maximum performance of the peripheral device 1.
[0086]
Also, since a plurality of firmware can be switched and used, for example, even if the option board is frequently attached and detached and used, or a plurality of ink cartridges are selectively used depending on the case, only the first one is used. Only the loading and writing of the replacement firmware.
[0087]
That is, since writing to the ROM 3 usually takes time and the number of times of writing is limited, it is effective in terms of update processing time and reliability.
[0088]
Hereinafter, the configuration of a data processing program readable by the information processing system according to the present invention will be described with reference to a memory map shown in FIG.
[0089]
FIG. 6 is a diagram illustrating a memory map of a storage medium that stores various data processing programs that can be read by the information processing system according to the present invention.
[0090]
Although not shown, information for managing a group of programs stored in the storage medium, for example, version information, a creator, and the like are also stored, and information dependent on the OS or the like on the program reading side, for example, a program is identified and displayed. Icons and the like may also be stored.
[0091]
Further, data dependent on various programs is also managed in the directory. In addition, a program for installing various programs on a computer or a program for decompressing a program to be installed when the program to be installed is compressed may be stored.
[0092]
The functions shown in FIGS. 3 and 5 in the present embodiment may be executed by a host computer by a program installed from the outside. In this case, the present invention is applied even when a group of information including a program is supplied to the output device from a storage medium such as a CD-ROM, a flash memory, or an FD, or from an external storage medium via a network. Things.
[0093]
As described above, the storage medium storing the program codes of the software for realizing the functions of the above-described embodiments is supplied to the system or the apparatus, and the computer (or CPU or MPU) of the system or the apparatus stores the storage medium in the storage medium. It goes without saying that the object of the present invention is also achieved by reading and executing the program code thus obtained.
[0094]
In this case, the program code itself read from the storage medium implements the novel function of the present invention, and the storage medium storing the program code constitutes the present invention.
[0095]
As a storage medium for supplying the program code, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, EEPROM, or the like may be used. it can.
[0096]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0097]
Further, after the program code read from the storage medium is written into a memory provided on a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that a CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0098]
The present invention is not limited to the above embodiments, and various modifications (including organic combinations of the embodiments) are possible based on the spirit of the present invention, and those are excluded from the scope of the present invention. is not.
[0099]
Although various examples and embodiments of the present invention have been shown and described, those skilled in the art will recognize that the spirit and scope of the present invention is not limited to the specific description herein, but rather includes the following embodiments. Needless to say, this is also included. Hereinafter, Embodiments 1 to 23 will be described.
[0100]
[Embodiment 1]
An acquisition device that is a peripheral device that can communicate with a server or a host computer that manages a plurality of replacement firmware via a network, and that obtains determination factor information for rewriting firmware from the server or the host computer (FIG. 1) Based on the update control program stored in the ROM 3 shown in FIG. 3) and the determination factor information and the internal resource information acquired by the acquisition means, the most appropriate firmware is selected from the firmware group managed by the server. And a download control means (corresponding to an update control program stored in the ROM 3 shown in FIG. 1).
[0101]
[Embodiment 2]
The peripheral device according to claim 1, wherein the download control unit is activated when the power of the peripheral device is turned on or reset.
[0102]
[Embodiment 3]
The peripheral device according to claim 1, wherein the determination factor information obtained by the obtaining unit includes information such as the version number of the OS and the driver of the host computer.
[0103]
[Embodiment 4]
The peripheral device according to claim 1, wherein the internal resource information includes a version number of the firmware, the presence / absence and type of an option board, a type of an installed ink cartridge and paper, and the like.
[0104]
[Embodiment 5]
The peripheral device according to claim 1, wherein the download control unit performs an update of rewriting registered firmware stored in the peripheral device with firmware downloaded from the server.
[0105]
[Embodiment 6]
The download control means, when accessed from the first type of OS from the host computer, the firmware managed by the server based on the determination factor information and the internal resource information acquired by the acquisition means. The peripheral device according to the first embodiment, wherein an optimal firmware is selected from a group and downloaded.
[0106]
[Embodiment 7]
A firmware storage unit for storing a plurality of types of firmware, wherein the download control unit determines whether the firmware downloaded from the server is already registered, and controls rewriting of the downloaded firmware. 3. The peripheral device according to claim 1, wherein:
[0107]
[Embodiment 8]
The first or second embodiment is characterized in that the download control means determines whether or not the firmware downloaded from the server has already been registered, and switches one of the firmware stored in the firmware storage means. 2. The peripheral device according to 2.
[0108]
[Embodiment 9]
The download control unit manages a free area of the firmware storage unit and a selection history of the stored firmware, deletes firmware with a low selection frequency, and writes the downloaded firmware. 3. The peripheral device according to claim 1, wherein
[0109]
[Embodiment 10]
A server that manages firmware of a peripheral device that issues a data processing request from a host computer via a network, and stores a plurality of replacement firmware to be downloaded to the peripheral device based on system configuration information of the host computer. A server having management means for managing (corresponding to a control program executed by a controller of the server 31 shown in FIG. 1).
[0110]
[Embodiment 11]
The management unit includes a storage unit (an external storage device (not shown) of the server 31 shown in FIG. 1) for storing a plurality of replacement firmware groups to be downloaded to the peripheral device, and a feature of the plurality of firmware groups. The server according to the tenth embodiment, further comprising a management table for managing (corresponding to the firmware management table 32 shown in FIG. 1).
[0111]
[Embodiment 12]
A download method in a peripheral device that can communicate with a server or a host computer that manages a plurality of replacement firmware via a network, and an obtaining step of obtaining determination factor information for rewriting firmware from the server or the host computer (E.g., step (201) shown in FIG. 2) and selecting the most appropriate firmware from a group of firmware managed by the server based on the determination factor information and the internal resource information obtained in the obtaining step. A download method comprising a download control step for downloading (for example, steps (202) to (207) shown in FIG. 2).
[0112]
[Embodiment 13]
13. The download method according to embodiment 12, wherein the download control step is started when the peripheral device is turned on or reset.
[0113]
[Embodiment 14]
13. The download method according to embodiment 12, wherein the determination factor information obtained by the obtaining step includes information such as a version number of an OS and a driver of the host computer.
[0114]
[Embodiment 15]
13. The download method according to embodiment 12, wherein the internal resource information includes a version number of the firmware, presence / absence and type of an option board, type of an installed ink cartridge and paper, and the like.
[0115]
[Embodiment 16]
The download method according to embodiment 12, wherein the download control step performs an update for rewriting registered firmware stored in the peripheral device with firmware downloaded from the server.
[0116]
[Embodiment 17]
The download control step includes a step of, when an access is made from a first type of OS from the host computer side, based on the determination factor information and the internal resource information acquired in the acquisition step, firmware managed by the server. The download method according to embodiment 12, wherein an optimal firmware is selected from a group and downloaded.
[0117]
[Embodiment 18]
Firmware download means for storing a plurality of types of firmware; the download control step determines whether or not the firmware downloaded from the server has already been registered (step (503) shown in FIG. 5); 14. The downloading method according to the twelfth or thirteenth aspect, wherein rewriting of the downloaded firmware is controlled.
[0118]
[Embodiment 19]
In the download control step, it is determined whether the firmware downloaded from the server has already been registered (step (503) shown in FIG. 5), and any of the firmware stored in the firmware storage unit is determined. The download method according to embodiment 12 or 13, wherein the download is performed.
[0119]
[Embodiment 20]
The download control step manages a free area of the firmware storage means and a selection history of stored firmware, deletes firmware with a low selection frequency, and writes the downloaded firmware. 14. The download method according to embodiment 12 or 13, wherein
[0120]
[Embodiment 21]
A download method in a server that manages firmware of a peripheral device that issues a data processing request from a host computer via a network, comprising a plurality of replacement devices to be downloaded to the peripheral device based on system configuration information of the host computer. A download method, comprising a management step of managing firmware.
[0121]
[Embodiment 22]
A computer-readable storage medium storing a program for implementing the download method according to any one of embodiments 12 to 21.
[0122]
(Embodiment 23)
A program for implementing the download method according to any one of embodiments 12 to 21.
[0123]
【The invention's effect】
As described above, according to the present invention, in a peripheral device that can communicate with a server or a host computer that manages a plurality of replacement firmware via a network, the server or the host computer determines the firmware for rewriting. The factor information is obtained, and the selection and download of the most appropriate firmware from the firmware group managed by the server are controlled based on the obtained determination factor information. This has the effect of downloading the most suitable firmware for the system resources of the host computer, updating the firmware in a timely manner, and automatically constructing an environment in which the functions of the peripheral devices can be maximized.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an information processing system to which a peripheral device and a server according to a first embodiment of the present invention can be applied.
FIG. 2 is a diagram illustrating an example of a firmware management table illustrated in FIG.
FIG. 3 is a flowchart illustrating an example of a first data processing procedure in the information processing system according to the present invention.
FIG. 4 is a block diagram illustrating a configuration of an information processing system to which a peripheral device and a server according to a second embodiment of the present invention can be applied.
FIG. 5 is a flowchart illustrating an example of a second data processing procedure in the information processing system according to the present invention.
FIG. 6 is a diagram illustrating a memory map of a storage medium that stores various data processing programs readable by the information processing system according to the present invention.
FIG. 7 is a block diagram illustrating the configuration of this type of information processing system.
FIG. 8 is a flowchart illustrating an example of a firmware update processing procedure in a conventional information processing system.
[Explanation of symbols]
1 Peripheral equipment
2 RAM
3 ROM
4 Ink cartridge
5 Option board
10 Host computer
13 Driver
14 OS
15 Applications
20 Network
31 Server
32 Firmware management table
33 Replacement firmware