(57)【要約】【課題】ホストコンピュータのユーザ操作に依存することなく、ホストコンピュータのシステム資源に最適なファームウエアをダウンロードして、ファームウエアを適時にアップデートすることである。【解決手段】ネットワーク２０を介して複数の置き換え用ファームウエアを管理するサーバ３１あるいはホストコンピュータ１０と通信可能な周辺装置１において、ＲＯＭ３に記憶されるアップデート制御プログラムがサーバ３１またはホストコンピュータ１０よりファームウエア書き換えのための判定要因情報を取得し、該取得される判定要因情報に基づいて、サーバ３１で管理されるファームウエア群より最適なファームウエアの選択とダウンロードを制御する構成を特徴とする。【選択図】      図１
2004259224.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置であって、
前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得手段と、
前記取得手段により取得される判定要因情報に基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御手段と、
を有することを特徴とする周辺装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置に対するファームウエアのダウンロード処理に関するものである。
【０００２】
【従来の技術】
従来、ネットワークに接続された周辺装置のファームウエアのアップデートは、図７に示すように実行されていた。
【０００３】
図７は、この種の周辺装置を適用可能な情報処理システムの構成を説明するブロック図であり、ホストコンピュータ１０がネットワーク２０を介して周辺装置１と通信可能なシステムに対応する。
【０００４】
図７において、１は周辺装置で、プリンタ，スキャナ，モデム，デジタルカメラ，記憶装置等が含まれる。２はＲＡＭで、前記周辺装置１内のコントローラ制御に必要なプログラムやデータが記憶されるワークメモリとして機能する。
【０００５】
３はフラッシュメモリ等の書き換え可能なＲＯＭで、周辺装置１内のコントローラが実行すべき制御プログラム，データ，フォント等が記憶される。１０はホストコンピュータで、周辺装置１を制御する。
【０００６】
１１はアップデート制御プログラムで、現在記憶媒体３０から、例えばＲＡＭ上にロードされた状態に対応する。
【０００７】
１２は置き換え用ファームウエアで、アップデートのために周辺装置１の現在のファームウエアを新しく置き換える制御プログラムである。３０は記憶媒体で、前記アップデート制御プログラムや置き換え用ファームウエアが記憶されたフレキシブルディスクやＣＤ−ＲＯＭ等で構成される。
【０００８】
通常、周辺装置１にはその周辺装置１の機能を制御するためのコントローラ（図示しない）が内蔵されており、そのコントローラの制御を実行するためのプログラム、即ちファームウエアがコントローラ上の不揮発性メモリであるＲＯＭ３に格納されている。
【０００９】
一方、ホストコンピュータ１０にはそのホストコンピュータ１０の動作を制御するＯＳが搭載されていて、そのＯＳ上で何らかのアプリケーションプログラムが動作している。
【００１０】
ホストコンピュータ１０の使用者が周辺装置１を利用したい場合は、前記アプリケーションプログラムに指示を図示しない入力デバイス（キーボード，ポインティングデバイス）を操作して行う。アプリケーションプログラムは、使用者からの指示に従い周辺装置のハード的な違いを吸収するためのデバイスドライバ（前記ＯＳに予めインストールされている）に制御を託す。
【００１１】
デバイスドライバは、周辺装置１側の前記ファームウエアとの間で予め規定されているコマンドやステータスや処理データ（例えば、プリンタの場合は印字用の画像データ等）を両者が接続されているネットワーク２０を介してやり取りしながら前記周辺装置１を制御する。
【００１２】
以上の構成において、周辺装置１のファームウエアをアップデートするには、従来は図８のフローチャートに示すような手順で行われていた。
【００１３】
図８は、従来の情報処理システムにおけるファームウエアップデート処理手順の一例を示すフローチャートである。なお、（８００）〜（８０８）は各ステップを示し、ホストコンピュータ上で実行されるアップデート制御プログラムが前記周辺装置のファームウエアップデート処理を制御する場合の手順に対応する。
【００１４】
まず、周辺装置１やホストコンピュータ１０の操作者（以後操作者と呼ぶ）がホストコンピュータ１０に記憶媒体３０、例えばフレキシブルディスクやＣＤ−ＲＯＭディスクあるいは接続されているネットワーク等から周辺装置１のメーカから提供されるアップデート制御プログラムをインストール（図７に示す矢印４０参照）し、該インストールしたアップデート制御プログラムを実行させる（８０１）。
【００１５】
次に、前記実行されたアップデート制御プログラムが、やはり、フレキシブルディスクやＣＤ−ＲＯＭディスクあるいは接続されているネットワーク等から周辺装置１のメーカから提供される置き換え用ファームウエア１２をホストコンピュータ１０のＲＡＭ上にロード（図７に示す矢印４１参照）する（８０２）。
【００１６】
次に、前記実行されたアップデート制御プログラムが置き換え用ファームウエア１２を周辺装置１とホストコンピュータ１０が接続されているネットワーク２０を介して周辺装置１のＲＡＭ２の特定領域に転送する（８０３）。以下、周辺装置１とホストコンピュータ１０間でやり取りされるコマンドやステータスやデータ等は、周辺装置１とホストコンピュータ１０が接続されているネットワークを介して転送されるものとする。
【００１７】
次に、前記実行されたアップデート制御プログラムが周辺装置１に対し、アップデート実行コマンドを発行する（８０４）。次に、周辺装置１はホストコンピュータ１０からのアップデート実行コマンドを受けて、アップデート実行処理、すなわち既にＲＡＭ上に転送されている置き換え用ファームウエア１２をＲＯＭ３上の現在のファームウエアを置き換えるように書き込みを行う（８０５）。
【００１８】
次に、周辺装置１は、アップデート実行処理が完了すると、その完了したことをホストコンピュータ１０に知らせるために、アップデート実行処理完了ステータス（以後、実行完了ステータスと呼ぶ。）をホストコンピュータ１０のアップデート制御プログラム１１に返す（８０６）。
【００１９】
そして、アップデート制御プログラム１１は、周辺装置１からの実行完了ステータスを見て、周辺装置１のＲＯＭ３の書込み（つまり、アップデート実行処理）が終了したことを認識し確認すると、そのアップデート実行処理が終了したことを操作者に知らせ、さらに、周辺装置１やホストコンピュータ１０の初期化を行わせるように指示を出す（８０７）。
【００２０】
以上でアップデート実行処理が完了し、操作者によりアップデート制御プログラムも終了させられ、ホストコンピュータ１０も初期化される。
【００２１】
なお、図８のフローチャートにおいて、ステップ（８０２）の処理は、ステップ（８０３）の処理時にフレキシブルディスクやＣＤ−ＲＯＭディスク等で周辺装置１のメーカから提供される置き換え用ファームウエア１１をアップデート制御プログラムが読み出しながら直接周辺装置１へ転送することにより、省略することも可能である。
【００２２】
【発明が解決しようとしている課題】
しかしながら、上記従来例では操作者は、アップデート制御プログラム１１や置き換え用ファームウエア１２を周辺装置１のメーカから別途入手する必要があり、そのアップデート制御プログラム１１をホストコンピュータ１０にインストールする必要もある。
【００２３】
さらに、アップデート制御プログラム１１の操作方法を理解するために、説明書やマニュアル等を熟読する必要がある。
【００２４】
このようなアップデート制御プログラム１１においては、操作や手順を間違えるとやり直しのできない状態になることも多く間違えのないように完全に理解するまで、熟読する必要がある。
【００２５】
また、近年の周辺装置１は最初に発売されてから後に、バグ修正や性能向上のために内部仕様が予告無く変更されることが多く、操作者は所有している周辺装置１の内部仕様において、入手した置き換え用ファームウエア１２にアップデートしてよいか悪いかを判断する必要があり、その判断を下すのが困難である。
【００２６】
また、不用意にアップデートを行うと、その周辺装置１が制御不能になることもあり大きな問題となることが多い。
【００２７】
さらに、周辺装置１のファームウエアは、ホストコンピュータ１０側のドライバやＯＳと密接な関係があり、ドライバのバージョンナンバやＯＳの種類やバージョンナンバ等を認識し、アップデートしようとする置き換え用ファームウエア１２との整合性を操作者が判断することが必要であり、さらに困難さを増す。もし、前記整合性の無いままアップデートを実行してしまった場合には、前記ＯＳや周辺装置１が動作不能になってしまうこともあり、その影響が大きい。
【００２８】
さらに、近年の周辺装置１は機能が拡張できるようにオプションのボードを装備できるような機能があり、周辺装置１本体の発売時には無かったものを装備することもありオプションボードの有無に応じて別々のファームウエアを実装しなければならなくなることも想定される。
【００２９】
さらに、プリンタ等の場合、より高画質の印字を行うために新しいタイプのインクカートリッジや印刷用紙を装着するようなこともあり、インクカートリッジや印刷用紙のタイプにより、異なったヘッド制御をしなければならないこともある。
【００３０】
つまり、インクカートリッジや印刷用紙のタイプに応じ異なったファームウエアが必要なことがある。
【００３１】
以上述べた内容は、かなり専門的であり、一般の操作者が前記種々の条件を判別、認識しその条件に最適なファームウエアにアップデートすることは非常に困難である。
【００３２】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置において、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得し、該取得される判定要因情報に基づいて、サーバで管理されるファームウエア群より最適なファームウエアの選択とダウンロードを制御することにより、ホストコンピュータのユーザ操作に依存することなく、ホストコンピュータのシステム資源に最適なファームウエアをダウンロードして、ファームウエアを適時にアップデートして、周辺装置に機能を最大限に発揮できる環境を自動構築できる周辺装置を提供することである。
【００３３】
【課題を解決するための手段】
上記目的を達成する本発明の周辺装置は以下に示す構成を備える。
【００３４】
本発明は、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得手段と、前記取得手段により取得される判定要因情報に基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御手段とを有することを特徴とする。
【００３５】
【発明の実施の形態】
〔第１実施形態〕
図１は、本発明の第１実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図であり、図７と同一のものには同一の符号を付してある。
【００３６】
図１において、１は周辺装置、２はＲＡＭで、周辺装置１内のコントローラ制御に必要な制御プログラム，データ等がロードされるワークメモリとして機能する。３は例えば書換え可能なフラッシュメモリ等で構成されるＲＯＭで、周辺装置１内のコントローラ制御下で、アップデート制御プログラムと周辺装置１の動作を制御するためのファームウエアとで構成される。そして，電源ＯＮ時やリセット時には、まず最初にアップデート制御プログラムが実行されるように構成されている。
【００３７】
４は交換あるいは更新可能なデバイスで、周辺装置１が例えばプリンタで構成される場合には、インクカートリッジ等に相当する。５はオプションユニットで、周辺装置１の機能に追加できる機能処理を実行するための、例えば各種オプションボード等に相当し、ユーザが適宜追加することが可能に構成されている。
【００３８】
１０はホストコンピュータで、ネットワーク２０を介して周辺装置１やサーバ３１と通信可能に構成されている。なお、ホストコンピュータ１０は、ネットワーク２０を介して周辺装置１を制御可能である。
【００３９】
１４は図示しないＲＡＭ上にロードされるオペレーティングシステム（ＯＳ）で、ホストコンピュータ１０の動作を制御する。１３はデバイスドライバ（ドライバ）で、ＯＳ１４から周辺装置１を（同種製品のハードウェアの違いを吸収して）制御するためのドライバであり、予めＯＳ１４にインストールされる。つまり、ドライバ１３自身は当然ながら最初はインストールされていない。
【００４０】
しかしながら、最近主流のＷｉｎｄｏｗｓ（登録商標）ＯＳを搭載したコンピュータ等においてはＰｌｕｇ＆Ｐｌａｙ機能が搭載されていて、そのコンピュータに周辺装置１が接続されたときに、その周辺装置１を制御するためのドライバが自動的にインストールされる。
【００４１】
１５は各種のアプリケーションプログラム（アプリケーション）で、ＯＳ１４上で動作し、周辺装置１の機能を使用するものである。２０はネットワークで、周辺装置１やホストコンピュータ１０やサーバ３１が接続されている。
【００４２】
３１はサーバで、ネットワーク２０に接続され、置き換え用ファームウエア群３３を格納しているサーバ（取得先）として予め指定されている。
【００４３】
３２はファームウエア管理テーブルで、サーバ３１中に格納されている複数の置き換え用ファームウエア群３３を各種条件に対応づけて、例えば図２に示すように管理している。
【００４４】
図２は、図１に示したファームウエア管理テーブル３２の一例を説明する図である。
【００４５】
本実施形態において、ファームウエア管理テーブル３２は、例えば図２に示すように、ホストコンピュータ１０に搭載されているＯＳの種類（例えばＷｉｎｄｏｗｓ（登録商標）９５等を含む最新のＯＳを含む）、ＯＳにインストールされている周辺装置１を制御するためのドライバのバージョン、周辺装置１を、例えばプリンタと想定した場合のインクカートリッジのタイプ（インクの原材料等で区別される）、周辺装置１を機能拡張するためのオプションボードの種類等の各組合せに最適な置き換え用ファームウエアの番号を対応させている。
【００４６】
つまり、例えばホストコンピュータ１０にＷｉｎｄｏｗｓ（登録商標）２０００のＯＳ１４が搭載されそのＯＳ１４にインストールされているプリンタ用のドライバのバージョンが１．０で、プリンタには、例えばｂのタイプのインクカートリッジが搭載されてて、Ｃのタイプのオプションボードが実装されていると仮定すると、このプリンタにはファームウエア管理テーブル３３の「４２」の管理番号で管理される置き換え用ファームウエアが最適であると、後述するようにアップデート制御プログラムが判断することができる。
【００４７】
なお、置き換え用ファームウエア群３３には、ファームウエア管理テーブル３２で管理されている、例えば図２に示すファームウエア管理テーブル３２では、１〜４８の置き換え用ファームウエアが外部記憶装置に記憶されている。なお、置き換え用ファームウエアは、報告される不具合等に応じて、随時その内容が更新されてバージョンが上がる場合には、その数が増えることは言うまでもない。
【００４８】
通常、周辺装置１にはその周辺装置１の機能を制御するためのコントローラが内蔵されており、そのコントローラの制御を実行するためのプログラム、即ちファームウエアがコントローラ上のＲＯＭ３に格納されている。
【００４９】
一方、ホストコンピュータ１０にはそのホストコンピュータ１０の動作を制御するＯＳ１４が搭載されていて、そのＯＳ１４上で何らかのアプリケーションプログラムが動作している。
【００５０】
ホストコンピュータ１０の使用者が、図１に示した周辺装置１を利用したい場合は、アプリケーションプログラム１５に指示を出し、該指示に従い、アプリケーションプログラム１５は、使用者からの指示に従い周辺装置１のハード的な違いを吸収するためのドライバ１３（ＯＳ１４に予めインストールされている）に制御を託す。
【００５１】
ドライバ１３は、周辺装置１側のファームウエア（ＲＯＭ３内に格納されている）との間で予め規定されているコマンドやステータスや処理データ（周辺装置１が、例えばプリンタの場合は印字用の画像データ等）を両者が接続されているネットワーク２０を介してやり取りしながら周辺装置１を制御する。なお、本実施形態において、ネットワーク２０は、インターネット等も含む概念である。
【００５２】
以下に、上記構成時に前記アップデート制御プログラムの動作を基にどのようにしてアップデートが行われるかを、図１の構成図、及び図３に示すフローチャートを用いて説明する。
【００５３】
図３は、本発明に係る情報処理システムにおける第１のデータ処理手順の一例を説明するフローチャートである。なお、（２００）〜（２０７）は各ステップを示す。
【００５４】
上記構成において、周辺装置１の電源ＯＮ時やリセット時にＲＯＭ３中のアップデート制御プログラムが起動されると（２００）、アップデート制御プログラムは、周辺装置１の内部の構成（ＲＯＭ３中に実装されている現在のファームウエアのバージョンナンバ、搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等）の情報を取得し、さらに、アップデート制御プログラムはホストコンピュータ１０のドライバとも通信し、ドライバ１３のバージョンやＯＳ１４の種類やバージョン等の情報も取得する（２０１）。
【００５５】
次に、アップデート制御プログラムは、このシステム条件においてはどの置き換え用ファームウエアが最適かを、予め指定されたサーバ３１に格納されているファームウエア管理テーブル３２を参照することにより判定し、その置き換え用ファームウエアを選択する（２０２）。
【００５６】
次に、アップデート制御プログラムはサーバ３１の予め指定された場所に格納されている複数の置き換え用ファームウエアの中から、先程のファームウエア管理テーブル３２の参照により最適と判定されたファームウエア管理番号で管理されている置き換え用ファームウエアを周辺装置１のＲＡＭ２上にロードしてくる（２０３）。
【００５７】
続いて、アップデート制御プログラムは、ＲＡＭ２に転送された置き換え用ファームウエアを、現在のＲＯＭ中のファームウエアを置き換えるように書き込む（２０４）。
【００５８】
その後、アップデート制御プログラムはプログラムの実行権を同じＲＯＭ中のファームウエアに渡して、ファームウエアップデートの処理を終了する（２０５）。
【００５９】
つまり、この時点でＲＯＭ３内のファームウエアが実行されて周辺装置１の動作が開始され（２０６）、この後は、前記ファームウエアが常時動作し、周辺装置１の動作を制御する。そして、前記周辺装置１の電源ＯＦＦに伴って強制的に終了することになる（２０７）。
【００６０】
このように第１実施形態における情報処理システムにおいては、周辺装置１の起動時にコントローラのＲＯＭ中に実装されたアップデート制御プログラムが起動し、周辺装置１の状態や周辺装置１を制御するホストコンピュータ１０側のＯＳやドライバのバージョンナンバ等の情報を収集し、それらの構成に最適なファームウエアを予め指定されたサーバ３１に用意されている複数の置き換え用ファームウエアの中から選択し、周辺装置１に転送し現在のファームウエアを書き換えて、周辺装置１のファームウエアップデートを自動的に行わせることが可能な機能を設けることにより、操作者は、従来のアップデート制御プログラムや置き換え用ファームウエアを別途入手し、またそれをインストールしたり、前記アップデート制御プログラムの煩わしい学習や困難な判断をしなくても周辺装置１を常に最新のファームウエアで動作させることができ、周辺装置１の最大限の性能を発揮させることが可能である。
【００６１】
また、ホストコンピュータ１０に搭載されているＯＳ１４を変更した場合や、周辺装置１のメーカが性能向上のために周辺装置１の内部仕様やドライバを改定した場合でも自動的に最適なファームウエアにアップデートできる。
【００６２】
さらに、オプションボード等の追加や交換可能な機能を変更した場合でも、その機能の性能を最大限発揮させることが可能である。
【００６３】
さらに、周辺装置１を製造／販売する側にとっても、製品の内部仕様を変更することが容易になり、新しい技術が開発されれば直ぐに市場に流れている製品にも反映させることが可能であり、製品に付加価値をつけることができる。
【００６４】
また、周辺装置１を製造／販売する側は、従来のようにアップデート制御プログラムを製造したり配布したり告知したり質問に回答したりする必要が無く、ただ、予め指定された場所の置き換え用ファームウエアやファームウエア管理テーブルのみをメンテナンスするのみでよく、ユーザサポートの労力を大幅に削減できる。
【００６５】
〔第２実施形態〕
上記第１実施形態では、通常周辺装置のシステム構成等の変更は、電源ＯＦＦ時に行われるため、そのあとは必ず周辺装置の起動がかかるため、起動時にアップデート制御プログラムを動作させ、周辺装置の電源ＯＮ時やリセット時等の起動時にのみ、アップデート制御プログラムが動作する場合について説明したが、ネットワークに接続されている周辺装置は、複数の種類のホストコンピュータからアクセスされることもあり、また、１台のホストコンピュータしかアクセスしない場合でも複数のＯＳを搭載したホストコンピュータからＯＳを切り替えてアクセスされることも考えられる。つまり、周辺装置の電源がＯＮの状態の間に、異なるＯＳやドライバからアクセスされることがある。
【００６６】
このような場合、第１実施形態の周辺装置１では最適なファームウエアで操作させられない事が起き得る。そこで、このような事態に備えて、周辺装置のコントローラ上のプログラム用のＲＯＭにアップデート制御プログラムと複数のファームウエアを格納可能とし、それら複数のファームウエアを切り替えて動作させる構成にしてもよい。以下、その実施形態について説明する。
【００６７】
図４は、本発明の第２実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図であり、図１と同一のものには同一の符号を付してある。
【００６８】
図４に示すように、周辺装置１のコントローラ上のプログラムＲＯＭにアップデート制御プログラムと複数のファームウエアＦ１〜Ｆ６を格納可能（ＲＯＭ３の容量に応じてその数は任意とする）とし、それら複数のファームウエアを切り替えて動作させる構成を備える。
【００６９】
そして、アップデート制御プログラムは、ＲＯＭ３中の各ファームウエアの管理番号を参照できる手段を有し、プログラムの実行権をＲＯＭ３中の最適なファームウエアに渡す手段や各ファームウエアが過去に実行された回数を管理する手段も有する。
【００７０】
また、ＲＯＭ３中の各ファームウエアは、自身が実行中に、定期的に周辺装置１のシステム構成情報（搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等）をチェックし変化があった場合や、ホストコンピュータ１０からアクセスがあった場合に、そのホストコンピュータ１０のドライバ１３と通信し、ホストコンピュータ１０のドライバ１３のバージョンやＯＳ１４の種類やバージョン等の情報も取得し、前回の取得情報と異なっていた場合等にプログラムの実行権を前記アップデート制御プログラムに戻す手段を有する。
【００７１】
なお、本実施形態において、ＲＯＭ３の中の構成と、そのＲＯＭ３中のアップデート制御プログラムと各複数のファームウエア以外の構成や機能は、第１実施形態と同様である。
【００７２】
以上の構成において、本実施形態のアップデート処理について、図４の構成図および図５に示すフローチャートを参照して説明する。
【００７３】
図５は、本発明に係る情報処理システムにおける第２のデータ処理手順の一例を説明するフローチャートである。なお、（５００）〜（５１２）は各ステップを示す。
【００７４】
図４に示すシステム構成において、まず、周辺装置１の電源がＯＮまたはリセットされると、アップデート制御プログラムが起動される（５００）。アップデート制御プログラムは、周辺装置１の内部の構成（ＲＯＭ３中に実装されている複数の各ファームウエアの管理ナンバ、搭載されているインクカートリッジのタイプ、実装されているオプションボードの種類等）の情報を取得する。さらに、ホストコンピュータ１０からのアクセスがある場合には、そのホストコンピュータ１０のドライバ１３とも通信し、ドライバ１３のバージョンやＯＳ１４の種類やバージョン等の情報も取得する（５０１）。
【００７５】
次に、アップデート制御プログラムは、このシステム条件においてはどの置き換え用ファームウエアが最適かを、予め指定されたサーバ３１に格納されているファームウエア管理テーブル３２を参照することにより判定し、その置き換え用ファームウエアを選択する（５０２）。
【００７６】
次に、アップデート制御プログラムは、先程選択されたファームウエアの管理番号とＲＯＭ３中にある各ファームウエアの管理番号とを比較して判定し（５０３）、同じ管理番号のものが有る場合には、すでに最適なファームウエアが存在するため、その同じ管理番号のファームウエア（５０６）〜（５１１）にプログラムの実行権を渡す。
【００７７】
一方、ステップ（５０３）で、同じ管理番号が無いと判断した場合には、初めてのファームウエアであると判断できるため、サーバ３１の予め指定された場所に格納されている複数の置き換え用ファームウエアのなかから、先程のファームウエア管理テーブル３２の参照により最適と判定されたファームウエア管理番号で管理されている置き換え用ファームウエアを周辺装置１のＲＡＭ２上にロードしてくる（５０４）。
【００７８】
続いて、アップデート制御プログラムは、ＲＡＭ２に転送された置き換え用ファームウエアをＲＯＭ３中の空いているファームウエア書き込みエリアに書き込む（５０５）。なお、もし、空き書き込みエリアが無い場合には、過去の各ファームウエアの実行回数の最も少ないファームウエアを置き換えるように書き込む。
【００７９】
その後、アップデート制御プログラムはプログラムの実行権を先程書き込んだファームウエアに渡して（５０６〜５１１）、本処理を終了する（５１２）。
【００８０】
つまり、この時点で最適なファームウエアが実行されて、周辺装置１の動作が開始される。そして、そのファームウエアが実行中に、定期的にシステム構成情報をチェックしたり、ホストコンピュータ１０からアクセスがあった場合にそのホストコンピュータ１０のドライバ１３と通信し前記ホストコンピュータ１０のドライバ１３のバージョンやＯＳ１４の種類やバージョン等の情報を取得し続ける。それらの取得情報が前回取得した情報と異なっていた場合には、システム構成やホストコンピュータ１０側のＯＳ１４やドライバ１３等が変更されたと判断し、プログラムの実行権を前記アップデート制御プログラムに戻す。
【００８１】
つまり、図５に示したステップ（５０２）の処理へ戻る。
【００８２】
そして、最後に取得した情報を基に前述したのと同様に、予め指定されたサーバ３１に格納されているファームウエア管理テーブル３２を参照することにより判定し、その置き換え用ファームウエアを選択する。
【００８３】
以下、前述したのと同様に動作し、ステップ（５０２）〜（５１１）の処理を実行するループを構成し、プログラムが実行され続ける。そして、周辺装置１の電源ＯＦＦに伴って強制的に終了することになる（５１２）。
【００８４】
以上のように、プログラム（アップデート制御プログラムと選択されたファームウエア）が実行され続けることにより、周辺装置１のシステム構成が変更されたり異なるホストコンピュータからアクセスされても、常に最適なファームウエアで周辺装置１を動作させることができる。
【００８５】
以上説明したように、上記第２実施形態によれば、周辺装置１のコントローラ上のプログラムＲＯＭにアップデート制御プログラムと複数のファームウエアを格納可能とし、それら複数のファームウエアを切り替えて動作させることができる手段を有し、アップデート制御プログラムは、ＲＯＭ３中の各ファームウエアの管理番号を参照できる手段を有し、プログラムの実行権をＲＯＭ３中の最適なファームウエアに渡す手段や各ファームウエアが過去に実行された回数を管理する手段も有し、また、前記ＲＯＭ３中の各ファームウエアは、自身が実行中に、定期的に周辺装置１のシステム構成情報をチェックしたりホストコンピュータ１０からアクセスがあった場合にそのホストコンピュータ１０のドライバ１３と通信しホストコンピュータ１０のドライバ１３のバージョンやＯＳ１４の種類やバージョン等の情報も取得し前回の取得情報と異なっていた場合等にプログラムの実行権を前記アップデート制御プログラムに戻す手段を有する構成とすることにより、周辺装置１のシステム構成が変更されたり異なるホストコンピュータからアクセスされても、常に最適なファームウエアで周辺装置１を動作させることができる。つまり、常に周辺装置１の最大限の性能を発揮させることが可能である。
【００８６】
また、複数のファームウエアを切り替えて使用できるため、例えば、オプションボードを頻繁に着脱して使用したり、複数のインクカートリッジを場合に応じて使い分けて使用したりしても、最初の１回のみの置き換え用ファームウエアのロードおよび書き込みのみで済ませることができる。
【００８７】
つまり、通常ＲＯＭ３への書き込みは時間がかかり、また、書き込み回数の制限もあるため、アップデート処理時間および信頼性の点で、有効である。
【００８８】
以下、図６に示すメモリマップを参照して本発明に係る情報処理システムで読み取り可能なデータ処理プログラムの構成について説明する。
【００８９】
図６は、本発明に係る情報処理システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【００９０】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【００９１】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【００９２】
本実施形態における図３，図５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００９３】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００９４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ等を用いることができる。
【００９６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９８】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【００９９】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではなく、以下の実施態様も含まれることはいうまでもない。以下、その実施態様１〜２３について説明する。
【０１００】
〔実施態様１〕
ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得手段（図１に示すＲＯＭ３に記憶されるアップデート制御プログラムに相当）と、前記取得手段により取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御手段（図１に示すＲＯＭ３に記憶されるアップデート制御プログラムに相当）とを有することを特徴とする周辺装置。
【０１０１】
〔実施態様２〕
前記ダウンロード制御手段は、前記周辺装置の電源ＯＮ時やリセット時に起動することを特徴とする実施態様１記載の周辺装置。
【０１０２】
〔実施態様３〕
前記取得手段が取得する判定要因情報には、ホストコンピュータ側のＯＳやドライバのバージョンナンバ等の情報を含むことを特徴とする実施態様１記載の周辺装置。
【０１０３】
〔実施態様４〕
前記内部資源情報には、前記ファームウエアのバージョンナンバ、オプションボードの有無と種類、実装されているインクカートリッジや紙のタイプ等を含むことを特徴とする実施態様１記載の周辺装置。
【０１０４】
〔実施態様５〕
前記ダウンロード制御手段は、前記周辺装置に記憶されている登録済みファームウエアを前記サーバよりダウンロードされたファームウエアに書き換えるアップデートを行うことを特徴とする実施態様１記載の周辺装置。
【０１０５】
〔実施態様６〕
前記ダウンロード制御手段は、ホストコンピュータ側から初めての種類のＯＳからアクセスがあった場合に、前記取得手段により取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードすることを特徴とする実施態様１記載の周辺装置。
【０１０６】
〔実施態様７〕
複数種のファームウエアを記憶するファームウエア記憶手段を備え、前記ダウンロード制御手段は、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して、ダウンロードしたファームウエアの書き換えを制御することを特徴とする実施態様１または２記載の周辺装置。
【０１０７】
〔実施態様８〕
前記ダウンロード制御手段は、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して、前記ファームウエア記憶手段に記憶されるいずれかのファームウエアを切り換えることを特徴とする実施態様１または２記載の周辺装置。
【０１０８】
〔実施態様９〕
前記ダウンロード制御手段は、前記ファームウエア記憶手段の空き領域と記憶されるファームウエアの選択履歴を管理して、選択頻度の少ないファームウエアを削除して、ダウンロードしたファームウエアを書き込ませることを特徴とする実施態様１または２記載の周辺装置。
【０１０９】
〔実施態様１０〕
ネットワークを介してホストコンピュータからのデータ処理要求を行う周辺装置のファームウエアを管理するサーバであって、前記ホストコンピュータのシステム構成情報に基づいて前記周辺装置にダウンロードすべき複数の置き換え用ファームウエアを管理する管理手段（図１に示すサーバ３１のコントローラが実行する制御プログラムに相当）を有することを特徴とするサーバ。
【０１１０】
〔実施態様１１〕
前記管理手段は、前記周辺装置にダウンロードすべき置き換え用の複数のファームウエア群を記憶する記憶手段（図１に示すサーバ３１の図示しない外部記憶装置）と、前記複数のファームウエア群の特徴を管理する管理テーブル（図１に示すファームウエア管理テーブル３２に相当）とを備えることを特徴とする実施態様１０記載のサーバ。
【０１１１】
〔実施態様１２〕
ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置におけるダウンロード方法であって、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得する取得ステップ（例えば図２に示すステップ（２０１））と、前記取得ステップにより取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードするダウンロード制御ステップ（例えば図２に示すステップ（２０２）〜（２０７））とを有することを特徴とするダウンロード方法。
【０１１２】
〔実施態様１３〕
前記ダウンロード制御ステップは、前記周辺装置の電源ＯＮ時やリセット時に起動することを特徴とする実施態様１２記載のダウンロード方法。
【０１１３】
〔実施態様１４〕
前記取得ステップが取得する判定要因情報には、ホストコンピュータ側のＯＳやドライバのバージョンナンバ等の情報を含むことを特徴とする実施態様１２記載のダウンロード方法。
【０１１４】
〔実施態様１５〕
前記内部資源情報には、前記ファームウエアのバージョンナンバ、オプションボードの有無と種類、実装されているインクカートリッジや紙のタイプ等を含むことを特徴とする実施態様１２記載のダウンロード方法。
【０１１５】
〔実施態様１６〕
前記ダウンロード制御ステップは、前記周辺装置に記憶されている登録済みファームウエアを前記サーバよりダウンロードされたファームウエアに書き換えるアップデートを行うことを特徴とする実施態様１２記載のダウンロード方法。
【０１１６】
〔実施態様１７〕
前記ダウンロード制御ステップは、ホストコンピュータ側から初めての種類のＯＳからアクセスがあった場合に、前記取得ステップにより取得される判定要因情報と内部資源情報とに基づいて、前記サーバで管理されるファームウエア群より最適なファームウエアを選択してダウンロードすることを特徴とする実施態様１２記載のダウンロード方法。
【０１１７】
〔実施態様１８〕
複数種のファームウエアを記憶するファームウエア記憶手段を備え、前記ダウンロード制御ステップは、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して（図５に示すステップ（５０３））、ダウンロードしたファームウエアの書き換えを制御することを特徴とする実施態様１２または１３記載のダウンロード方法。
【０１１８】
〔実施態様１９〕
前記ダウンロード制御ステップは、前記サーバよりダウンロードしたファームウエアが既に登録済みか否かを判断して（図５に示すステップ（５０３））、前記ファームウエア記憶手段に記憶されるいずれかのファームウエアを切り換えることを特徴とする実施態様１２または１３記載のダウンロード方法。
【０１１９】
〔実施態様２０〕
前記ダウンロード制御ステップは、前記ファームウエア記憶手段の空き領域と記憶されるファームウエアの選択履歴を管理して、選択頻度の少ないファームウエアを削除して、ダウンロードしたファームウエアを書き込ませることを特徴とする実施態様１２または１３記載のダウンロード方法。
【０１２０】
〔実施態様２１〕
ネットワークを介してホストコンピュータからのデータ処理要求を行う周辺装置のファームウエアを管理するサーバにおけるダウンロード方法であって、前記ホストコンピュータのシステム構成情報に基づいて前記周辺装置にダウンロードすべき複数の置き換え用ファームウエアを管理する管理ステップを有することを特徴とするダウンロード方法。
【０１２１】
〔実施態様２２〕
実施態様１２〜２１のいずれかに記載のダウンロード方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【０１２２】
〔実施態様２３〕
実施態様１２〜２１のいずれかに記載のダウンロード方法を実現することを特徴とするプログラム。
【０１２３】
【発明の効果】
以上説明したように、本発明によれば、ネットワークを介して複数の置き換え用ファームウエアを管理するサーバあるいはホストコンピュータと通信可能な周辺装置において、前記サーバまたはホストコンピュータよりファームウエア書き換えのための判定要因情報を取得し、該取得される判定要因情報に基づいて、サーバで管理されるファームウエア群より最適なファームウエアの選択とダウンロードを制御するので、ホストコンピュータのユーザ操作に依存することなく、ホストコンピュータのシステム資源に最適なファームウエアをダウンロードして、ファームウエアを適時にアップデートして、周辺装置の機能を最大限に発揮できる環境を自動構築できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図である。
【図２】図１に示したファームウエア管理テーブルの一例を説明する図である。
【図３】本発明に係る情報処理システムにおける第１のデータ処理手順の一例を説明するフローチャートである。
【図４】本発明の第２実施形態を示す周辺装置およびサーバを適用可能な情報処理システムの構成を説明するブロック図である。
【図５】本発明に係る情報処理システムにおける第２のデータ処理手順の一例を説明するフローチャートである。
【図６】本発明に係る情報処理システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図７】この種の情報処理システムの構成を説明するブロック図である。
【図８】従来の情報処理システムにおけるファームウエアップデート処理手順の一例を示すフローチャートである。
【符号の説明】
１  周辺装置
２  ＲＡＭ
３  ＲＯＭ
４  インクカートリッジ
５  オプションボード
１０  ホストコンピュータ
１３  ドライバ
１４  ＯＳ
１５  アプリケーション
２０  ネットワーク
３１  サーバ
３２  ファームウエア管理テーブル
３３  置き換え用ファームウエア
【図１】
2004259224.tif 000003
【図２】
2004259224.tif 000004
【図３】
2004259224.tif 000005
【図４】
2004259224.tif 000006
【図５】
2004259224.tif 000007
【図６】
2004259224.tif 000008
【図７】
2004259224.tif 000009
【図８】
2004259224.tif 000010