(57)【要約】【課題】  種々の電子機器のファームウェアのアップデートを当該機器、あるいはネットワーク上の他のサーバやホストに過大な負荷を与えることなく実施できるようにする。【解決手段】  ＰＣ（１１１、１１２）に周辺機器として接続されるプリンタ（１２１〜１２３）のファームウェアを更新するに際し、プリンタの起動時、またはＰＣへのプリンタの接続時に、ＰＣ側にファームウェアのＲＯＭイメージがなければプリンタからＲＯＭイメージを取得し、またＰＣ側にＲＯＭイメージがあれば、プリンタのＲＯＭイメージと、ＰＣ側のＲＯＭイメージの新旧を比較し、前者よりも後者の方が新しい場合は前者のＲＯＭイメージによりプリンタのファームウェアを更新し、後者よりも前者の方が新しい場合はプリンタから後者のＲＯＭイメージを取得する。また、ネットワーク上のＰＣ間でも最新のＲＯＭイメージの更新を行なう。【選択図】  図２
2006171920.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に周辺機器として接続される電子機器のフラッシュＲＯＭに格納されたファームウェアを更新するファームウェア更新制御方法において、
前記ホスト装置の記憶手段に前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアのＲＯＭイメージを格納するＲＯＭイメージデータ領域を確保し、
前記電子機器の起動時、または前記ホスト装置への前記電子機器の接続時に、前記ホスト装置が前記電子機器から前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアに関するバージョン情報を取得し、
前記ＲＯＭイメージデータ領域にＲＯＭイメージが格納されていない場合には、前記ホスト装置が前記電子機器から前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアのＲＯＭイメージを取得して前記ＲＯＭイメージデータ領域に取得したＲＯＭイメージを格納し、
前記ＲＯＭイメージデータ領域にＲＯＭイメージが格納されている場合は、前記バージョン情報によって、前記電子機器の前記フラッシュＲＯＭに格納されているファームウェアのＲＯＭイメージと、前記ＲＯＭイメージデータ領域に格納されたＲＯＭイメージの新旧を比較し、前者のＲＯＭイメージよりも後者のＲＯＭイメージの方が新しい場合は後者のＲＯＭイメージにより前記電子機器の前記フラッシュＲＯＭのファームウェアを更新し、後者のＲＯＭイメージよりも前者のＲＯＭイメージの方が新しい場合は前記電子機器から前者のＲＯＭイメージを取得し、前記ＲＯＭイメージデータ領域に格納するファームウェア更新制御を行なうことを特徴とするファームウェア更新制御方法。
【請求項２】
請求項１に記載のファームウェア更新制御方法において、前記ホスト装置が、ネットワーク上の他のホスト装置の前記ＲＯＭイメージデータ領域に格納されたＲＯＭイメージのバージョン情報を取得し、
自機が前記ＲＯＭイメージデータ領域に格納しているＲＯＭイメージと前記他のホスト装置が前記ＲＯＭイメージデータ領域に格納しているＲＯＭイメージとの新旧を比較し、
後者のＲＯＭイメージよりも前者のＲＯＭイメージの方が新しい場合は前者のＲＯＭイメージにより前記他のホスト装置の前記ＲＯＭイメージデータ領域のＲＯＭイメージを更新し、前者のＲＯＭイメージよりも後者のＲＯＭイメージの方が新しい場合は後者のＲＯＭイメージにより自機の前記ＲＯＭイメージデータ領域のＲＯＭイメージを更新するよう前記ホスト装置とネットワーク上の他のホスト装置がデータ交換を行ない、
その後、前記ホスト装置と前記他のホスト装置において前記ファームウェア更新制御を行なうことを特徴とするファームウェア更新制御方法。
【請求項３】
請求項１または２に記載のファームウェア更新制御方法を実施するホスト装置として動作するファームウェア更新制御装置。
【請求項４】
請求項１または２に記載のファームウェア更新制御方法によりファームウェア更新制御を受ける電子機器として動作する電子機器。
【請求項５】
請求項１または２に記載のファームウェア更新制御方法を実施すべくホスト装置または前記電子機器を制御するファームウェア更新制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置に周辺機器として接続される電子機器のフラッシュＲＯＭに格納されたファームウェアを更新するファームウェア更新制御方法、ファームウェア更新制御装置、電子機器、およびファームウェア更新制御プログラムに関するものである。
【背景技術】
【０００２】
旧来、電子機器に搭載されるプログラムを変更するには、その装置に搭載しているＲＯＭやＣＰＵ自身の交換が必要であり非常に煩雑な上に技術を要していたが、近年では電気的に書き換え可能な不揮発性メモリ（フラッシュＲＯＭ）の普及により、印刷装置やデジタルカメラ、ビデオ、複写機などの種々の電子機器で、ネットワーク上のサーバやＩＣカードなどからプログラムをダウンロードし、該機器の制御プログラム（ファームウェア）を書き換えることが可能な製品が増えてきた。
【０００３】
このように制御プログラムをダウンロードすることが可能な装置では、プログラムの不具合の修正だけでなく、新機能の追加も比較的簡単な操作で行なえるようになった。
【０００４】
しかし、ここで簡単な操作とは言っても、工場の生産部門などでは、一区画、一フロア内に数十台から数百台の装置が存在するような環境が存在し、この比較的簡単な書き換え作業でも、一台ごとにそのプログラムを更新するには多大な労力が必要になっていた。
【０００５】
この労力を軽減するため、従来では、新たなプログラムをネットワーク上のサーバにロードし、そのネットワークに接続されている各印刷装置がそのサーバから新たなプログラムをダウンロードし、プログラム書き換えを行なう構成が提案されている（たとえば下記の特許文献１）。このような構成によれば、ネットワーク上に何台の印刷装置が接続されて利用されていても、１台のサーバに最新のプログラムを保持していれば、自動的に各印刷装置のプログラムも最新のものに更新することができる。
【０００６】
また、ホスト装置とネットワークを介して接続された複数の印刷装置におけるプログラム更新については、各印刷装置がネットワーク上にて自身と同じプログラムで動作している印刷装置を検索し、その検索した印刷装置のプログラムのバージョン情報を取得し、その取得したプログラムのバージョンと自身のプログラムのバージョンとの新旧を比較して、自身のプログラムのバージョンの方が古いときには、検索した印刷装置から新バージョンのプログラムをダウンロードして自身のプログラムを更新する構成が提案されている（たとえば下記の特許文献２）。
【特許文献１】特開平９−２５１３５５号公報
【特許文献２】特開２０００−２１５０３４公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１および２のいずれにおいても、図１に示すように、印刷装置（プリンタ１２１、１２２）自体がネットワーク（ＬＡＮ１００）へ接続するためのインターフェースを持ち、ネットワークに直接、接続されている環境が想定されている。なお、図１において、ＬＡＮ１００上にはコンピュータ１１１〜１１３が接続され、また、ＬＡＮ１００はサーバ（あるいはルータやゲートウェイ）１０１を介してＷＡＮ１０２に接続されている。図１の例では、サーバ１０１がプリンタ１２１、あるいは１２２のファームウェアを供給するが、サーバ１０１はＬＡＮ内のみならずＷＡＮ１０２側に設置されていてもよい。
【０００８】
そして、このようにネットワーク上に印刷装置が直接、接続されている場合に、特許文献１では、サーバ１０１からプリンタ１２１または１２２へのルートでファームウェアのアップデートが行なわれる。このような構成では、同ネットワーク上の最新プログラムを保持するサーバを常時稼働状態にしておくため、このようなサーバを設置し、また常時稼働させておくためのコストは非常に大きい。
【０００９】
また、サーバ（１０１）に新しいファームウェアがアップロードされた場合に、複数台の装置からのアップデートのためのＲＯＭイメージの取得のためのサーバへのアクセスが集中することも予想され、ネットワークのトラフィックや、サーバのパフォーマンスに大きな影響が出る可能性がある。
【００１０】
一方、特許文献２では、印刷装置間、たとえば図１のプリンタ１２１〜１２２間のルートでのファームウェアのアップデートが行なわれるが、ネットワーク上にある最新プログラムを保持する印刷装置が電源オンされている状態において、アップデートの対象となる装置の電源オンおよび、ネットワークへの接続がなされなければならないという厳しい条件の上に成り立っている。また、この条件をクリアしたとしても、ＣＰＵやメモリなどのハードウェア資源がＰＣなどに比べてはるかに限定された印刷装置にアップデート処理を実行させるため、処理時間を要し、本来の印刷処理に悪影響を与えかねない問題がある。特に、印刷装置それぞれに、他の印刷装置をネットワーク上で探索する機能、そして他の印刷装置にファームウェアをダウンロードさせるサーバ機能を組み込んでおく必要があるから、構成が複雑高価になりがちで、また、印刷装置に対する負荷も大きくなる。
【００１１】
いずれにしても、特許文献１および２に記載の技術では、印刷装置を利用したいホスト、および印刷装置以外のそれらを取り巻く環境に厳しい条件が課せられるという問題がある。
【００１２】
もちろん、上述の問題は、印刷装置のみならず、他の種々の機器の制御プログラム（以下ファームウェアという）のアップデートに関して共通するものである。
【００１３】
本発明の課題は、上記問題に鑑み、種々の電子機器のファームウェアのアップデートを当該機器、あるいはネットワーク上の他のサーバやホストに過大な負荷を与えることなく実施できるようにすることにある。
【課題を解決するための手段】
【００１４】
課題を解決するため、本発明においては、ホスト装置に周辺機器として接続される電子機器のフラッシュＲＯＭに格納されたファームウェアを更新するファームウェア更新制御方法、ファームウェア更新制御装置、電子機器、およびファームウェア更新制御プログラムにおいて、前記ホスト装置の記憶手段に前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアのＲＯＭイメージを格納するＲＯＭイメージデータ領域を確保し、前記電子機器の起動時、または前記ホスト装置への前記電子機器の接続時に、前記ホスト装置が前記電子機器から前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアに関するバージョン情報を取得し、前記ＲＯＭイメージデータ領域にＲＯＭイメージが格納されていない場合には、前記ホスト装置が前記電子機器から前記電子機器の前記フラッシュＲＯＭに格納されたファームウェアのＲＯＭイメージを取得して前記ＲＯＭイメージデータ領域に取得したＲＯＭイメージを格納し、前記ＲＯＭイメージデータ領域にＲＯＭイメージが格納されている場合は、前記バージョン情報によって、前記電子機器の前記フラッシュＲＯＭに格納されているファームウェアのＲＯＭイメージと、前記ＲＯＭイメージデータ領域に格納されたＲＯＭイメージの新旧を比較し、前者のＲＯＭイメージよりも後者のＲＯＭイメージの方が新しい場合は後者のＲＯＭイメージにより前記電子機器の前記フラッシュＲＯＭのファームウェアを更新し、後者のＲＯＭイメージよりも前者のＲＯＭイメージの方が新しい場合は前記電子機器から前者のＲＯＭイメージを取得し、前記ＲＯＭイメージデータ領域に格納するファームウェア更新制御を行なう構成を採用した。
【００１５】
あるいは、さらに、前記ホスト装置が、ネットワーク上の他のホスト装置の前記ＲＯＭイメージデータ領域に格納されたＲＯＭイメージのバージョン情報を取得し、
自機が前記ＲＯＭイメージデータ領域に格納しているＲＯＭイメージと前記他のホスト装置が前記ＲＯＭイメージデータ領域に格納しているＲＯＭイメージとの新旧を比較し、
後者のＲＯＭイメージよりも前者のＲＯＭイメージの方が新しい場合は前者のＲＯＭイメージにより前記他のホスト装置の前記ＲＯＭイメージデータ領域のＲＯＭイメージを更新し、前者のＲＯＭイメージよりも後者のＲＯＭイメージの方が新しい場合は後者のＲＯＭイメージにより自機の前記ＲＯＭイメージデータ領域のＲＯＭイメージを更新するよう前記ホスト装置とネットワーク上の他のホスト装置がデータ交換を行ない、
その後、前記ホスト装置と前記他のホスト装置において前記ファームウェア更新制御を行なう構成を採用した。
【発明の効果】
【００１６】
上記構成によれば、ホスト装置が主導する処理によりその周辺機器として接続される電子機器のフラッシュＲＯＭに格納されたファームウェアを更新する基本構成を採用しており、ネットワーク上にファームウェア供給用のサーバを設置する必要がなく、また、ファームウェア更新対象であるプリンタなどの電子機器に過大なファームウェアサーバ機能や通信機能、ファームウェアバージョン比較機能などを設ける必要がなく、たとえばホスト装置に接続された複数の電子機器間で、あるいはネットワーク上のホスト装置に接続された複数の電子機器間で、簡単安価かつ自動的に電子機器のファームウェアを最新の状態に更新することができる。
【００１７】
したがって、従来技術におけるようなファームウェア更新対象であるプリンタなどの電子機器の負荷増大、ファームウェアサーバへ複数のアクセスが集中、などの問題を全て解決できる。
【００１８】
また、ホスト装置とファームウェア更新対象の電子機器間のＲＯＭイメージデータ更新は、ネットワークに依存せずに行なうことができ、特にホスト装置にファームウェア更新対象の電子機器が複数接続されるような状況において、これらの電子機器のファームウェアをネットワーク通信を行なうことなく最新の状態に更新することができる。
【００１９】
また、ホスト装置がＲＯＭイメージデータ領域を確保し、このＲＯＭイメージデータ領域に最新のファームウェアのＲＯＭイメージデータが格納されるようＲＯＭイメージデータ領域の更新が行なわれるため、電子機器側（たとえば最新のファームウェアを保有する電子機器）は必ずしも起動している必要がなく、別の電子機器のフラッシュＲＯＭや、他のホスト装置のＲＯＭイメージデータ領域の更新を行なうことができる。
【発明を実施するための最良の形態】
【００２０】
以下、ネットワーク上のホストＰＣに接続されたプリンタ（記録装置）のファームウェアのアップデートを行なう実施例を示す。
【実施例１】
【００２１】
本発明は、図２に示すように従来技術がターゲットとしている形態とは異なり、ファームウェアをアップデートすべき対象機器（プリンタ１２１、１２２、１２３）がホスト装置としてのホストＰＣ（コンピュータ１１１、１１２）に周辺機器として接続される環境を前提とする。
【００２２】
なお、図２においてＬＡＮ１００、ＷＡＮ１０２、サーバ（あるいはルータないしゲートウェイ）１０１の構成は図１と同様であるが、本実施例のファームウェアアップデートにはサーバ１０１は必要ない。
【００２３】
図１０は、上記のホストＰＣ（コンピュータ１１１、１１２）の構成を示している。図１０のＰＣ１０００は、いわゆるＰＣ／ＡＴ互換機の構成であり、主制御部たるＣＰＵ１００１、システムの起動プログラムなどを格納したＲＯＭ１００２、後述の各種のデータやプログラムを展開して実行するためのワークエリアとして用いられるＲＡＭ１００３、各種アプリケーションプログラム、データ、さらに後述の制御データを格納するためのＨＤＤ１００４、ユーザーインターフェースを構成するディスプレイ（ＬＣＤやＣＲＴにより構成される）１００５およびキーボード（あるいはさらにマウスなどのポインティングデバイス）１００６、ファームウェアのアップデート対象であるプリンタ１２１、１２２、１２３、あるいは他の周辺機器を接続するためのＵＳＢインターフェース１００７、およびＬＡＮ１００（あるいはＷＡＮ）と接続するためのＮＩＣ１００８から構成されている。
【００２４】
なお、本実施例ではホストＰＣ（コンピュータ１１１、１１２）は、いわゆるＰＣ／ＡＴ互換機の構成を想定しているが、これらのホスト装置はＰＣ／ＡＴ互換機フォームである必要はなく、適当なインターフェース（下記のＵＳＢに限らない）でファームウェアをアップデートすべき対象機器（以下で例示するプリンタに限定されない）を接続できるものであればよい。プリンタ側の構成については、以下で詳述する。
【００２５】
本実施例では、上記のような構成において、ファームウェアのアップデート対象であるプリンタ１２１、１２２、１２３の電源をオンしたりホストに接続したりするタイミングにおいて、最新プログラムを供給するサーバ（あるいは印刷装置）が電源オンの状態であることを必ずしも必要とせずにファームウェアのバージョンアップを自動的に行なう。
【００２６】
図３において符号３００は本発明を適用した記録装置を示す。この記録装置３００は図１のプリンタ１２１〜１２３に該当するものである。
【００２７】
図３において符号３０１は、データ受信部で物理インターフェースよりデータを受信する。本実施例ではデータ受信部３０１の物理インターフェース３１１は、ＵＳＢ２．０ＦｕｌｌＳｐｅｅｄのアップストリームポートを搭載しており、この物理インターフェース３１１を介してホストＰＣ（図２のコンピュータ１１１あるいは１１２）に接続される。
【００２８】
符号３０２はプリンタを動作させるためのプログラム、データ、テーブル等の入った書き換え可能な不揮発性メモリのフラッシュＲＯＭである。
【００２９】
さらに符号３０３はデータを印刷するために各種モータ、キャリッジ、ＡＳＦなどのプリンタエンジン各部を制御する制御部のＣＰＵ、３０４はデータ受信時や、プログラム実行時など一時的にデータをロードするためのＲＡＭである。
【００３０】
符号３０５は各プリンタのデータである最終印字時間、エラー履歴、などを格納するためのＥＥＰＲＯＭ、３０６は印刷部（プリンタエンジン）で、受信したデータを実際に画像や、文字に出力するキャリッジ、紙送り、ヘッドの制御部分から構成される。なお、印刷部（プリンタエンジン）の印刷方式は、インクジェット方式、あるいは電子写真方式など任意である。
【００３１】
次に上記構成における動作につき説明する。図４〜図７は、図２のコンピュータ１、プリンタ１、プリンタ３における、プリンタのファームウェアの書き換え処理を説明するものである。
【００３２】
図４におけるコンピュータ１は、図１０に示したような構成を有するＰＣ／ＡＴ互換機であり、図２のコンピュータ１１１あるいは１１２に相当し、ＵＳＢインターフェースを有し、プリンタ１、プリンタ３と接続される。
【００３３】
また、図４のプリンタ１、プリンタ３は図３に示ように構成された記録装置である。これらプリンタ１、プリンタ３はともにモデル名はＡＢ１２３であり同機種であるが、シリアル番号は異なる記録装置であるものとする。
【００３４】
このような構成において、パワーオン状態のコンピュータ１と、パワーオン状態のプリンタ１を接続すると、本実施例のプリンタのインターフェースがＵＳＢであるので、デバイスの自動認識が行なわれ、（コンピュータ１にプリンタ１のドライバがまだインストールされていなければ）ドライバのインストールが促される。
【００３５】
そして、図４のステップＳ４００おいて、コンピュータ１にプリンタ１およびプリンタ３の共通のプリンタドライバがインストールされる。なお、このプリンタドライバは、プリンタを駆動するためのコンピュータ側で実行するドライバプログラムであり、このインストールに際しては、あらかじめコンピュータのＨＤＤ（図１０の１００４）に格納されているか、あるいは他の外部記憶媒体から（あるいはネットワーク上のサーバから）ＯＳで利用できるようＲＡＭ上に展開されるとともに、所定の記憶位置（通常はＨＤＤ１００４上のファイル）に格納される。
【００３６】
これにより、ＰＣの記憶領域に、本実施例ではＨＤＤ（図１０の１００４）上に、図９に示す制御データ領域を確保する。図９の制御データ領域は、上部に示されるように、（過去に接続されたことのある）プリンタのプリンタ名（コンピュータ側から見たＡＢ１２３、ＡＢ１２３（コピー１）、ＡＢ１２３（コピー２）などのプリンタ名）、モデル名、プリンタのＲＯＭ（フラッシュＲＯＭ）のファームウェアのバージョン、シリアル番号を格納する領域９０１と、最新のプリンタのファームウェアのバージョンを格納する領域９０２、さらに最新のプリンタのファームウェアのＲＯＭイメージデータを保持するためのＲＯＭイメージデータ領域（図９下部）９０３を含む。これらの領域は、各情報を格納するための配列を含む所定のフォーマットで格納される。
【００３７】
次にステップＳ４０１にてコンピュータ１は、フラッシュＲＯＭの書き換えの可否を判断するための情報、本実施例では、プリンタのモデル名、シリアル番号、ファームウェアのバージョン番号（図９の上部の領域９０１の各データに対応する）を要求する。
【００３８】
次にステップＳ４０２で、上記要求を受け取ったプリンタ１は、要求されたプリンタのモデル名、シリアル番号、ファームウェアのバージョン番号を返送する。
【００３９】
次にステップＳ４０３にてコンピュータ１は、ステップＳ４０２にて取得したプリンタ１の情報を、ＰＣ上から見たプリンタ名に対応づけた上、図９上部の領域９０１内の配列のメンバとして順次格納する。
【００４０】
続いて、このモデルのプリンタで、プリンタ１が最初に繋がれたプリンタである場合は、コンピュータ１はステップＳ４０４でプリンタ１に対してＲＯＭイメージデータを要求するコマンドをＵＳＢインターフェースを介して送信する。
【００４１】
ステップＳ４０５でそのコマンドを受け取ったプリンタ１は、現在フラッシュＲＯＭに格納されているファームウェアを読み出し、コンピュータ１に転送する。
【００４２】
ステップＳ４０６でコンピュータ１は、取得したＲＯＭイメージを図９下部の「保持している最新のＲＯＭイメージデータ」のＲＯＭイメージデータ領域９０３に保存し、そのバージョンを「保持している最新のＲＯＭバージョン」の領域９０２に保存する。
【００４３】
その後、同モデルのソフトパワーオン状態のプリンタ３が接続されると、ステップＳ４０７でコンピュータ１はプリンタのモデル名、シリアル番号、ファームウェアのバージョン番号を要求する情報取得要求コマンドをプリンタ３に対して送信する。
【００４４】
ステップＳ４０８で該コマンドを受信したプリンタ３は、モデル名、シリアル番号、ファームウェアのバージョン番号の情報を返送し、これに対して、ステップＳ４０９において、コンピュータ１は受信したプリンタ３の情報を順次、図９の領域９０１の配列に格納する。
【００４５】
次に、コンピュータ１は、ステップＳ４１０で図９の領域９０１内に記憶された情報を用いて、プリンタ１とプリンタ３のファームウェアバージョンを比較する。
【００４６】
そして、いずれかのプリンタのファームウェアが他方よりも新しい場合には、バージョンの古い方のファームウェアを有するプリンタのファームウェアを更新する。
【００４７】
ここで、プリンタ３のファームウェアバージョンが新しい場合の処理を図５に、プリンタ１のファームウェアバージョンが新しい場合の処理を図６に示す。なお、プリンタ１とプリンタ３のファームウェアバージョンが等しい場合には何も処理は行わない。
【００４８】
コンピュータ１がプリンタ３のファームウェアバージョンが新しいと判断した場合には、図５のステップＳ５００でプリンタ３にＲＯＭイメージを要求するコマンドを、ＵＳＢインターフェースを介して送信する。
【００４９】
これに対して、ステップＳ５０１でプリンタ３は自身のＲＯＭを読み出し、コンピュータ１に転送する。ステップＳ５０２で新しいバージョンのＲＯＭイメージを取得したコンピュータ１は、そのバージョンとＲＯＭイメージデータを図９に示す「保持している最新のＲＯＭバージョン」の領域９０２、および「保持している最新のＲＯＭイメージデータ」の領域（ＲＯＭイメージデータ領域）９０３に保存する。
【００５０】
次にステップＳ５０３でコンピュータ１は、プリンタ１に対してプリンタに搭載するフラッシュＲＯＭを書き換えるモード（以後ダウンロードモードと記述する）に移行することを要求するコマンドをプリンタ１に送信する。
【００５１】
ステップＳ５０４で該コマンドを受信したプリンタ１は、キャリッジの退避や、ヘッド電源オフや、キャッピング等ソフトパワーオフ処理を行い、その後でダウンロードモードへ移行し、これが完了するとステップＳ５０５でダウンロード準備ＯＫを示すレスポンスをコンピュータ１に返送する。
【００５２】
続いてコンピュータ１は、ステップＳ５０６でＨＤＤ１００４のＲＯＭイメージデータ領域９０３に保持している最新のＲＯＭイメージデータをプリンタ１に送信する。
【００５３】
これに対して、ステップＳ５０７でプリンタ１は受信したＲＯＭイメージデータをフラッシュＲＯＭに書き込む処理を行なう。ここで正常にＲＯＭの書き換えができた場合には、ステップＳ５０８で通常のプリンタとして利用するための起動モード（以後ユーザーモードと記述する）でソフトパワーオン処理を実行し、新しいファームウェアで起動し直し、コンピュータ１へ再接続する。
【００５４】
この再接続の後、コンピュータ１はステップＳ５０９でプリンタ１の情報取得要求コマンドを再度送信し、続いてステップＳ５１０でプリンタ１から返送されたデータによりプリンタ１に対するＨＤＤ１００４上のプリンタ情報を更新する（ステップＳ５１１）。
【００５５】
一方、コンピュータ１がプリンタ１のファームウェアバージョンが新しいと判断した場合には、図６のステップＳ６００でプリンタ３に対してダウンロードモード移行の要求コマンドを送信する。
【００５６】
次にステップＳ６０１でプリンタ３は、キャリッジの退避や、ヘッド電源オフや、キャッピング等ソフトパワーオフ処理を行い、その後、ダウンロードモードへ移行し、これが完了するとステップＳ６０２でコンピュータ１にダウンロード準備完了を通知する。
【００５７】
次にステップＳ６０３でコンピュータ１は、プリンタ１より取得してＲＯＭイメージデータ領域９０３に保持しているファームウェアのＲＯＭイメージデータをプリンタ３に対して送信する。
【００５８】
次にステップＳ６０４で、プリンタ３は受信したＲＯＭイメージデータを自身のフラッシュＲＯＭに書き込み、この書き換え処理が正常に終了すると、ステップＳ６０５で新しいＲＯＭで起動し直し、ユーザーモードでソフトパワーオン処理を行い、コンピュータ１へ再接続する。
【００５９】
この再接続に応じて、ステップＳ６０６でコンピュータ１は、プリンタ３に対してプリンタの情報取得要求のコマンドを送信し、ステップＳ６０７でプリンタがコンピュータ１に対してファームウェア情報を返送する。最後にステップＳ６０８でコンピュータ１は、取得したプリンタ３の情報を、コンピュータ１のＨＤＤ１００４上の情報領域（図９の領域９０１）に格納する。
【００６０】
以上のようにして、コンピュータ１にプリンタ１および３が接続され、プリンタ１ないし３のいずれかのファームウェアの方が新しい場合は、新しい方のファームウェアを有するプリンタから転送させた新しい方のファームウェアにより、古い方のファームウェアを有するプリンタのファームウェアを更新することができ、簡単安価かつ自動的に電子機器のファームウェアを最新の状態に更新することができる。
【００６１】
このような構成によれば、特別なサーバを必要とせず、また、殆どの処理をコンピュータの主導により実行するようになっているため、プリンタ側に過大なハードウェア資源を必要とせず、また、プリンタに大きな負荷がかかることもない。
【００６２】
以上では、コンピュータ１にプリンタ１および３が接続される場合のプリンタ１または３のファームウェア更新について示したが、同様の処理は別々のコンピュータに接続されたプリンタのファームウェアに関して実行することができる。この例を図７および図８に示す。
【００６３】
図７、図８は、図２におけるコンピュータ１（１１１）とコンピュータ２（１１２）のネットワークを介した処理の流れを示したものである。図２に示すように、コンピュータ１（１１１）にはプリンタ１および３（１２１、１２３）が接続され、コンピュータ２（１１２）にはプリンタ２（１２２）が接続されている。
【００６４】
図７は、このような環境において、図２におけるコンピュータ２（１１２）が保持している最新のプリンタのファームウェアバージョンが新しい場合であり、図８は古い場合である。
【００６５】
図７において、コンピュータ２がパワーオン済みであり、既にネットワークに接続した状態にある時、コンピュータ１の電源がオンされ、ステップＳ７００でコンピュータ１のパワーオン処理が実行される。
【００６６】
続いて、コンピュータ１は、ドライバインストール時に登録したサービス処理に関して、図９のようなファイルフォーマットで保持しているプリンタの最新のファーム情報（最低限、図９の領域９０２の最新ＲＯＭバージョンの情報を含む）をネットワーク上のＰＣ／ＡＴ互換機にブロードキャストする。
【００６７】
なお、このとき、ブロードキャストするネットワークの範囲をＩＰアドレスのマスクや、ドメイン、ワークグループ等により制限できるようにするとよい。これにより、必要のないネットワークセグメントにデータが流出する可能性を低くすることができ、ネットワークシステム全体の保安性を高めることができる。
【００６８】
次にステップＳ７０２でその通知を受け取ったモデル名ＡＢ１２３のプリンタドライバをインストール済みのコンピュータ２は、自身が保持しているＡＢ１２３のファームウェアの最新ＲＯＭバージョン（図９領域９０２）と比較する。
【００６９】
コンピュータ２が保持しているファームウェアのバージョンが新しい場合は、ステップＳ７０３で自身が新しいバージョンのファームウェアを保持していることを、コンピュータ１に通知する（コンピュータ２自身が保持しているファームウェアバージョンの方が古い場合のフローについては図８で説明する）。
【００７０】
次に新しいファームウェアの存在を通知されたコンピュータ１は、ステップＳ７０４でそのＲＯＭのイメージデータの取得要求をコンピュータ２に送信する。次にステップＳ７０５でコンピュータ２はコンピュータ１へ新しいファームウェアのＲＯＭイメージを転送する。
【００７１】
これに対して、コンピュータ１はステップＳ７０６で新しいファームウェアのＲＯＭイメージデータおよびそのファームウェアバージョンを保存する図９の領域９０３および９０２にそれぞれ格納する。
【００７２】
その後、コンピュータ１に接続されるモデル名ＡＢ１２３のプリンタに対して、ＲＯＭイメージデータ領域９０３に格納されているもの（あるいは領域９０２の最新ＲＯＭバージョン情報により示されるもの）よりも古いファームウェアを搭載するものが接続された場合には、随時そのプリンタのファームウェアの書き換え処理を行なう。その際の処理のフローは、図４、図５、図６の場合と同様の流れとなる。
【００７３】
一方、コンピュータ２が保持しているファームウェアバージョンの方が古い場合には、図８の処理が行なわれる。
【００７４】
図８は、コンピュータ２がパワーオン済みであり、既にネットワークに接続した状態にある時、コンピュータ１の電源がオンされた場合のフローであり、ステップＳ８０２までは、図７の分岐ステップＳ７０２までと全く同じである。
【００７５】
ステップＳ８０２でコンピュータ２が保持しているモデル名ＡＢ１２３の最新のファームウェアバージョンの方が古いと判断した場合は、ステップＳ８０３でコンピュータ２はコンピュータ１にコンピュータ１が保持しているプリンタのファームウェアの取得要求を送信する。
【００７６】
次にステップＳ８０４でその要求を受けたコンピュータ１は、コンピュータ２に対して最新のファームウェアのＲＯＭイメージとそのファームウェアバージョンを送信する。次にステップＳ８０５でそのデータを受け取ったコンピュータ２は、自身が保持している最新のファームウェアのＲＯＭイメージデータおよび、保持している最新のファームウェアバージョンを更新する。
【００７７】
その後コンピュータ２に、接続されるモデル名ＡＢ１２３のプリンタでＲＯＭイメージデータ領域９０３に格納されているもの（あるいは領域９０２の最新ＲＯＭバージョン情報により示されるもの）よりも古いファームウェアを搭載するものが接続された場合には、随時書き換え処理を行なう。その際の処理のフローは、図４、図５、図６の場合と同様の流れとなる。
【００７８】
以上のように、本実施例によれば、ホスト装置（上記の各コンピュータないしＰＣ）が主導する処理によりその周辺機器として接続される電子機器（上記の各プリンタ）のフラッシュＲＯＭに格納されたファームウェアを更新する基本構成を採用しており、ネットワーク上にファームウェア供給用のサーバを設置する必要がなく、また、ファームウェア更新対象であるプリンタなどの電子機器に過大なファームウェアサーバ機能や通信機能、ファームウェアバージョン比較機能などを設ける必要がなく、たとえばホスト装置に接続された複数の電子機器間で、あるいはネットワーク上のホスト装置に接続された複数の電子機器間で、簡単安価かつ自動的に電子機器のファームウェアを最新の状態に更新することができる。
【００７９】
したがって、従来技術におけるようなファームウェア更新対象であるプリンタなどの電子機器の負荷増大、ファームウェアサーバへ複数のアクセスが集中、などの問題を全て解決できる。
【００８０】
また、ホスト装置とファームウェア更新対象の電子機器間のＲＯＭイメージデータ更新は、ネットワークに依存せずに行なうことができ、特にホスト装置にファームウェア更新対象の電子機器が複数接続されるような状況において、これらの電子機器のファームウェアをネットワーク通信を行なうことなく最新の状態に更新することができる。
【００８１】
また、ホスト装置がＲＯＭイメージデータ領域を確保し、このＲＯＭイメージデータ領域に最新のファームウェアのＲＯＭイメージデータが格納されるようＲＯＭイメージデータ領域の更新が行なわれるため、電子機器側（たとえば最新のファームウェアを保有する電子機器）は必ずしも起動している必要がなく、別の電子機器のフラッシュＲＯＭや、他のホスト装置のＲＯＭイメージデータ領域の更新を行なうことができる。
【００８２】
なお、上記構成において、ファームウェアをホスト装置と、ファームウェア更新対象の電子機器あるいは他のホスト装置と交換している期間（たとえば図５のＳ５０４、Ｓ５０５）、あるいはファームウェア更新対象の電子機器でフラッシュＲＯＭが書き換えられ再起動するまでの期間（たとえば図５のＳ５０７、Ｓ５０８）において、ホスト装置のユーザーインターフェース（たとえば図１０のディスプレイ１００５）を用いてこれらの処理の進行状況をユーザに報知（たとえば表示出力）することができる。これにより、ユーザに不安感を与えることなく、確実にファームウェア更新処理を行なうことができる。
【００８３】
また、上記構成によれば、状況によっては、最新のＲＯＭイメージを保持しているホスト装置が複数ネットワーク上で見つかる場合も予想される。このような場合、ホスト装置の負荷状況（ネットワーク負荷あるいは計算負荷）に一番余裕のあるホスト装置から最新のＲＯＭイメージをダウンロードするように自動制御する構成が有効であると考えられる。なお、このような構成に必要なホスト装置間で負荷状況（ネットワーク負荷あるいは計算負荷）に関する情報を交換（あるいは検出）するための手段は当業者において任意に実装すればよい。
【００８４】
さらに、以上では、ホスト装置間でファームウェア更新に関する通信を行なう場合、ネットワークの範囲をＬＡＮや、ＬＡＮ内のワークグループ、ドメイン、ゲートウェイや、ＩＰアドレスの指定により検索の範囲を指定する検索が可能な範囲に限定する例を示した。この構成は、ネットワークセキュリティの向上に役立つが、さらに、ホスト装置間、あるいはホスト装置間とファームウェア更新対象の電子機器間でファームウェア更新に関する通信を行なう場合にはこれらの機器間でなんらかの認証情報（ユーザ、ユーザグループ、ドメインに関する認証情報、あるいはファームウェア更新対象の電子機器のメーカー識別情報など）を交換して認証が正しく行なわれた場合のみＲＯＭイメージデータ領域やフラッシュＲＯＭのファームウェアを更新するような構成をとってもよい。
【００８５】
また、ウィルスやワームのような有害なコードあるいはデータを含む不適当な（たとえば不法に改造された）ファームウェアがインストールされないように、ホスト装置間、あるいはホスト装置間とファームウェア更新対象の電子機器間でＲＯＭイメージのチェックサムやＣＲＣ情報などを併せて交換し、照合を行なうことも有効である。
【００８６】
さらに、ホスト装置間でファームウェア更新に関する通信を行なう場合、たとえば、自機のＲＯＭイメージデータ領域のＲＯＭイメージが新しい（あるいは古い）ことを通知する場合、あるいはＲＯＭイメージデータ領域のＲＯＭイメージの送信（あるいは受信）要求を行なう場合などのタイミングをネットワークのトラフィック状況（あるいは自機や他機のネットワークないし計算負荷など）に応じて、自動調整するようにしてもよい。
【産業上の利用可能性】
【００８７】
本発明は、ホスト装置と、この周辺機器として接続されるファームウェア更新対象の電子機器を含む種々のシステムに適用できる。ホスト装置およびファームウェア更新対象の電子機器は上記のＰＣ（コンピュータ）やプリンタのみならず、他の種々の情報処理を行なう機器であってよい。すなわち、本発明のファームウェア更新制御装置およびファームウェア更新対象の電子機器は、上記のホスト装置として機能できる装置であればどのような装置であってもよい。
【００８８】
また、本発明の制御プログラムは、上記のホスト装置のアプリケーションプログラム、ＯＳのシステムコード（たとえばＵＳＢドライバないしその関連ソフトウェアの一部）、あるいはファームウェア更新対象の電子機器のドライバないしその関連ソフトウェアの一部として実装でき、種々の外部記憶媒体（ＣＤＲＯＭ、フレキシブルディスクなど）からホスト装置に供給する他、ネットワーク経由でホスト装置に供給することができる。電子機器側の制御プログラムは、ファームウェアの一部として出荷状態より実装しておけばよい。
【図面の簡単な説明】
【００８９】
【図１】従来技術が前提とするネットワーク環境を示した説明図である。
【図２】本発明を実施可能なネットワーク環境を示した説明図である。
【図３】本発明を採用したプリンタ（記録装置）の構成を示したブロック図である。
【図４】コンピュータ１台に対して複数のプリンタが接続される場合の制御を示したフローチャート図である。
【図５】図４においてプリンタ３のファームウェアが新しい場合の制御を示したフローチャート図である。
【図６】図４においてプリンタ１のファームウェアが新しい場合の制御を示したフローチャート図である。
【図７】図２のコンピュータ１とコンピュータ２が保持しているファームウェアバージョンが異なる場合（コンピュータ２が保持しているファームウェアの方が新しい）の制御を示したフローチャート図である。
【図８】図２においてコンピュータ１とコンピュータ２が保持しているファームウェアバージョンが異なる場合（コンピュータ１が保持しているファームウェアの方が新しい）の制御を示したフローチャート図である。
【図９】本発明においてプリンタのファームウェアを管理するための制御情報を示した説明図である。
【図１０】本発明においてホスト装置として機能するコンピュータ（ＰＣ）の構成を示したブロック図である。
【符号の説明】
【００９０】
１００  ＬＡＮ
１０１  サーバ（あるいはルータまたはゲートウェイ）
１０２  ＷＡＮ
１２１〜１２３  プリンタ
３０１  データ受信部
３０２  フラッシュＲＯＭ
３０３  ＣＰＵ
３０４  ＲＡＭ
３０５  ＥＥＰＲＯＭ
３０６  印刷部
３１１  物理インターフェース
１００１  ＣＰＵ
１００２  ＲＯＭ
１００３  ＲＡＭ
１００４  ＨＤＤ
１００５  ディスプレイ
１００６  キーボード／ポインティングデバイス
１００７  ＵＳＢインターフェース
１００８  ＮＩＣ
【図１】
2006171920.tif 000003
【図２】
2006171920.tif 000004
【図３】
2006171920.tif 000005
【図４】
2006171920.tif 000006
【図５】
2006171920.tif 000007
【図６】
2006171920.tif 000008
【図７】
2006171920.tif 000009
【図８】
2006171920.tif 000010
【図９】
2006171920.tif 000011
【図１０】
2006171920.tif 000012