(57)【要約】【課題】通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアの更新データの送信が途中で失敗した場合において、リモートサイトから当該更新データの送信をやり直す方法、システム及びプログラムを提供すること。【解決手段】コンピュータ１１等は、更新データの送信エラーが発生した場合に、周辺機器（プリンタ１３ａ１等）から前記送信エラーの発生を通知するデータを受信し、前記更新データについて残りの所定の送信レコードの送信を中止し、更に周辺機器（プリンタ１３ａ１等）をリセットするコマンドを周辺機器（プリンタ１３ａ１等）に送信する。【選択図】図４
2008033709.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークに接続されたコンピュータが、前記通信ネットワークに接続された周辺機器に、前記周辺機器のファームウェアの更新データを送信する方法であって、
前記コンピュータが、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信するステップと、
前記周辺機器が、前記コンピュータから前記所定の送信レコードを順次受信するステップと、
前記周辺機器が、前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックするステップと、
前記周辺機器が、前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信するステップと、
前記コンピュータが、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止するステップと、
前記コンピュータが、前記周辺機器をリセットするコマンドを前記周辺機器に送信するステップと、を含む方法。
【請求項２】
前記所定の送信レコードを順次受信するステップにおいて、前記周辺機器は、前記所定の送信レコードを受信中に所定の時間以上経過しても次のデータを受信しない場合に、前記周辺機器をリセットする請求項１に記載の方法。
【請求項３】
前記周辺機器に順次送信するステップにおいて、前記コンピュータが、複数の前記周辺機器に、分割した前記送信レコードに前記所定のチェックデータを付加して順次送信し、
前記更新データについて残りの所定の送信レコードの送信を中止するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記更新データについて残りの所定の送信レコードの送信を中止し、
前記周辺機器をリセットするコマンドを送信するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記周辺機器をリセットするコマンドを送信する請求項１又は請求項２に記載の方法。
【請求項４】
通信ネットワークに接続された周辺機器に、前記周辺機器のファームウェアの更新データを送信するコンピュータを含むシステムであって、
前記コンピュータは、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信する手段を備え、
前記周辺機器は、前記コンピュータから前記所定の送信レコードを順次受信する手段と、
前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックする手段と、
前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信する手段と、を備え、
前記コンピュータは、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止する手段と、
前記周辺機器をリセットするコマンドを前記周辺機器に送信する手段と、を更に備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの更新データを送信する方法及びシステムに関する。特に、通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアの更新データを送信する方法及びシステムに関する。
【背景技術】
【０００２】
従来、通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアをバージョンアップや不具合対応等のために更新する場合、当該通信ネットワークに接続されたコンピュータから、当該ファームウェアの更新データを送信することにより、当該プリンタ等の周辺機器において当該更新データを受信して更新処理を実行している。
【０００３】
より具体的には、当該プリンタ等の周辺機器は、当該ファームウェアを記憶するＦｌａｓｈＲＯＭ等の記憶手段を備えている。そこで、当該コンピュータから、例えば、モトローラ（登録商標）Ｓ３フォーマットで当該ＦｌａｓｈＲＯＭに記憶されているファームウェアの全体イメージファイルの更新データを、通信ネットワークを介して当該プリンタ等の周辺機器に送信する。
【０００４】
ところで、モトローラ（登録商標）Ｓ３フォーマットは、バイナリ形式のデータレコードに変換することができる。すなわち、図６に示すように、当該ファームウェアの更新データを最大２５０バイトずつのオブジェクトデータに分割し、分割したそれぞれのオブジェクトデータに対して、２バイトのタイプフィールド、１バイトのデータ長フィールド、及び４バイトのアドレスフィールドで構成する合計７バイトのヘッダ部、並びに１バイトのチェックサムを加えた単位データの配列として構成可能である。
【０００５】
近年のプリンタの機能向上の要請に応じて、プリンタのファームウェアも高機能化が進んでおり、ファームウェアの更新データのサイズは拡大する傾向にある。それに伴い、１回のファームウェアの更新で送信する更新データを構成する単位データの数は増大することになる。
【０００６】
ここで、上述のように、送信する更新データのサイズが大きくなってきたことによって、例えば、当該プリンタ等の周辺機器がＵＳＢ、パラレル、Ｅｔｈｅｒｎｅｔ（登録商標）その他の高速通信インターフェイスで接続されている場合には、更新データの送信時間はそれほど問題とならないものの、ＲＳ−２３２Ｃ等のシリアルＩ／Ｆその他の低速通信インターフェイスで接続されている場合には、更新データの送信時間が運用上の課題となってきた。
【０００７】
例えば、６ＭＢの更新データを１９２００ｂｐｓで送信する場合には通信時間は４５分、９６００ｂｐｓで送信する場合には９０分かかることになる。通常、ファームウェアの更新データの送受信中は、当該プリンタ等の周辺機器は使用できないので、特に、２４時間稼動している施設のプリンタ等の周辺機器のファームウェアの更新の際において、更新データの送信時間の削減が望まれている。
【０００８】
このような状況において、特許文献１に記載の技術によれば、例えば、ＰＣから９６００ｂｐｓで受信したデータを一旦記憶しておく外部メモリを備えたインターフェースボックスを当該ＰＣに接続して使用することにより、その後、より高速な通信速度でデータ送受信可能な携帯型情報機器を当該インターフェースボックスに接続したことに応じて、当該外部メモリに一旦記憶しておいたデータを当該携帯型情報機器に例えば５００００ｂｐｓで送信することができる。
【０００９】
従って、当該インターフェースボックスは、接続される携帯型情報機器の最大通信速度に応じて、最適な通信速度を選択してデータを当該携帯型情報機器に送信することができる。
【特許文献１】特開平１１−２１２９０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述のように、通信ネットワークに接続されたホストコンピュータから、当該通信ネットワークに接続されたＰＣ等にあらかじめシリアルＩ／Ｆで接続されているプリンタ等の周辺機器にファームウェアの更新データを送信する場合に、特許文献１の技術を応用したとしても、結局当該ＰＣとインターフェースボックス間の通信速度である９６００ｂｐｓがボトルネックとなり、システム全体としては更新データの送信時間を削減することはできない。なぜならば、上述のように、通信ネットワークに原則として常時接続されているプリンタ等の周辺機器のファームウェアの更新データを送信する場合には、特許文献１の技術は、ボトルネックとなるＩ／Ｆにおける通信速度を超えて送信することができないからである。
【００１１】
ここで、当該更新データの送信が、何らかの理由により途中で失敗した場合には、当該ホストコンピュータが当該更新データを最後まで送信し終えるまで、エラーであることが確認できず、送信のやり直し等の対応を行うまでに要する時間が長期化する、という課題もある。
【００１２】
また、当該更新データの送信が途中でエラーになってしまうと、送信のやり直しを行うためには一度人間が電源をＯＦＦ／ＯＮしなければならず、当該プリンタ等の周辺機器が、通信ネットワークを介して遠隔地に存在している場合には、現実的には送信のやり直しが難しい、という課題も存在している。
【００１３】
更に、当該通信ネットワーク上に複数の更新対象のプリンタ等の周辺機器が存在する場合には、上述のような課題は更に解決が困難となる。
【００１４】
従って、プリンタ等の周辺機器のファームウェアの更新データの送信が途中で失敗した場合において、直接当該プリンタ等の周辺機器を操作することなく、当該更新データの送信をやり直す方法を提供することが望まれている。
【００１５】
更に、当該通信ネットワーク上に更新対象のプリンタ等の周辺機器が複数存在する場合にも、送信が途中で失敗したプリンタ等の周辺機器のみについて、当該更新データの送信をやり直す方法を提供することが望まれている。
【００１６】
そこで、本発明は、通信ネットワークに接続されたプリンタ等の周辺機器のファームウェアの更新データの送信が途中で失敗した場合において、リモートサイトから当該更新データの送信をやり直す方法、システム及びプログラムを提供することを目的とする。
【００１７】
更に、当該通信ネットワーク上に更新対象のプリンタ等の周辺機器が複数存在する場合にも、送信が途中で失敗したプリンタ等の周辺機器のみについて、当該更新データの送信をやり直す方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
そこで、上記の目的を達成するため、本発明者らが研究を重ねた結果、リモートサイトから前記更新データの送信をやり直す方法を見出し、本発明を完成するに至った。本発明は、具体的には以下のようなものを提供する。
【００１９】
本発明は、通信ネットワーク（通信ネットワーク１４）に接続されたコンピュータ（コンピュータ11等）が、前記通信ネットワークに接続された周辺機器（プリンタ１３ａ１等）に、前記周辺機器のファームウェアの更新データを送信する方法であって、
前記コンピュータが、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信するステップと、
前記周辺機器が、前記コンピュータから前記所定の送信レコードを順次受信するステップと、
前記周辺機器が、前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックするステップと、
前記周辺機器が、前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信するステップと、
前記コンピュータが、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止するステップと、
前記コンピュータが、前記周辺機器をリセットするコマンドを前記周辺機器に送信するステップと、を含むことを特徴とする。
【００２０】
本発明のこのような構成によれば、前記コンピュータは、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信し、
前記周辺機器が、前記コンピュータから前記所定の送信レコードを順次受信し、
前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックし、
前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信し、
前記コンピュータが、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止し、
前記周辺機器をリセットするコマンドを前記周辺機器に送信することが可能である、という作用効果を有する。
【００２１】
このことにより、前記コンピュータは、送信エラーが発生した場合に、前記周辺機器から前記送信エラーの発生を通知するデータを受信し、前記更新データについて残りの所定の送信レコードの送信を中止し、更に前記周辺機器をリセットするコマンドを前記周辺機器に送信することができる。
【００２２】
その結果、前記コンピュータは、前記送信エラーの発生を通知するデータを受信した時点でまだ送信していない前記所定の送信レコードについて、その送信を中止することができるので、送信を中止することができた前記送信レコードの送信時間に応じて前記更新データの送信をやり直すのに要する時間を削減することができる。
【００２３】
更に、前記コンピュータは、前記送信エラーの発生を通知するデータを送信した周辺機器をリセットするコマンドを当該周辺機器に送信することができるので、当該周辺機器がそのコマンドに応じてリセットを完了することができれば、現地で直接当該周辺機器を操作することなく、リモートで周辺機器のリセットを行い、再び更新データの送信をやり直すことができる。
【００２４】
なお、前記所定の送信レコードの大きさは、前記通信ネットワークの通信速度その他の要件に応じて適当な値を設定することが好ましい。
【００２５】
前記更新データをより小さな送信レコードに分割すれば、前記送信エラーが発生した場合に、送信途中の送信レコードの大きさも小さくなるので、より迅速に残りの送信レコードの送信を中止し、その結果、前記更新データの送信のやり直しに要する時間をより削減することができる。
【００２６】
逆に、前記更新データをより大きな送信レコードに分割すれば、前記送信エラーが発生した場合に、送信途中の送信レコードの大きさも大きくなるので、その結果、前記更新データの送信のやり直しに要する時間のうち削減可能な時間はより小さくなるが、送信エラーをチェックするための前記所定のチェックデータの数が少なくて済む分、送信時間そのものをより短くすることが可能となり、送信エラーのチェックの回数が減る分、当該チェックに要する時間をより削減することが可能となる。
【００２７】
このように、送信レコードの大きさの設定にはトレードオフがあるので、前記通信ネットワークの通信速度、送信エラーの発生確率等に応じて適当な値を設定することが好ましい。
【００２８】
また、本発明は、前記所定の送信レコードを順次受信するステップにおいて、前記周辺機器は、前記所定の送信レコードを受信中に所定の時間以上経過しても次のテータを受信しない場合に、前記周辺機器をリセットすることが更に望ましい。
【００２９】
本発明のこのような構成によれば、前記所定の送信レコードを順次受信するステップにおいて、前記周辺機器は、前記所定の送信レコードを受信中に所定の時間以上経過しても次のデータを受信しない場合に、前記周辺機器をリセットすることが可能である、という作用効果を有する。
【００３０】
このことにより、前記周辺機器は、何らかの原因で、前記所定の送信レコードの送信が途中で受けられなくなったり、大幅な通信遅延が発生したりした場合においても、自ら周辺機器をリセットすることができる。
【００３１】
より具体的には、例えば、前記所定のチェックデータが欠けた場合、前記コンピュータ側で、更新データの送信プログラムが強制終了されてしまった場合等の原因により、途中で前記所定の送信レコードの送信ができなくなった場合、通信ネットワークを構成するケーブルが抜けた場合、及び、前記所定の送信レコードが丸ごと欠けた場合等において、前記周辺機器側で自らリセットすることができる。
【００３２】
なお、このように前記周辺機器側でリセットを完了することができれば、その後前記コンピュータ側で、復帰確認を行う際に、送信エラーが発生したことを認識することができる。
【００３３】
従って、前記コンピュータは、前記周辺機器を直接操作することなく、リモートで前記更新データの送信を再開することができる。
【００３４】
なお、この所定の時間は、通信ネットワークの通信速度等のシステム環境に応じて適当な値を設定してよい。当該所定の時間をより長く設定することによって、一時的にネットワークの遅延が発生した場合等、更新データの送信自体は継続可能である場合にもエラー処理を実行してしまう可能性を低くすることができる。反面、実際にエラーが発生した場合の対応が遅くなる。逆に、当該所定の時間より短く設定すると、実際にエラーが発生した場合にエラー対応をより迅速に行うことができる反面、実際には一時的なネットワーク遅延等により更新データの送信自体は継続可能であるにもかかわらず、エラー処理を実行してしまう可能性が高くなる。
【００３５】
このように、所定の時間の設定にはトレードオフがあるので、システム環境に応じて適当な値を設定し、通信速度がより高速なプリンタに対してよりはより短く、逆により低速なプリンタに対してはより長く設定してもよい。
【００３６】
また、本発明は、前記周辺機器に順次送信するステップにおいて、前記コンピュータが、複数の前記周辺機器に、分割した前記送信レコードに前記所定のチェックデータを付加して順次送信し、
前記更新データについて残りの所定の送信レコードの送信を中止するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記更新データについて残りの所定の送信レコードの送信を中止し、
前記周辺機器をリセットするコマンドを送信するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記周辺機器をリセットするコマンドを送信することが更に望ましい。
【００３７】
本発明のこのような構成によれば、前記周辺機器に順次送信するステップにおいて、前記コンピュータが、複数の前記周辺機器に、分割した前記送信レコードに前記所定のチェックデータを付加して順次送信し、
前記更新データについて残りの所定の送信レコードの送信を中止するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記更新データについて残りの所定の送信レコードの送信を中止し、
前記周辺機器をリセットするコマンドを送信するステップにおいて、前記コンピュータが、複数の前記周辺機器のうち、前記送信エラーの発生を通知するデータを送信した周辺機器に対して、前記周辺機器をリセットするコマンドを送信することが可能である、という作用効果を有する。
【００３８】
このことにより、当該通信ネットワーク上に複数の更新対象の周辺機器が存在する場合においても、前記コンピュータは、前記送信エラーの発生を通知するデータを送信した周辺機器についてのみ、前記更新データについて残りの所定の送信レコードの送信を中止し、前記周辺機器をリセットすることができる。
【００３９】
ここで、前記コンピュータは、前記コンピュータのユーザによる操作を受け付けたことに応じて、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して複数の前記周辺機器にそれぞれ順次送信してもよいし、あらかじめ作成しておいたプログラムを動作させることにより送信してもよい。
【００４０】
いずれにしても、前記コンピュータは、前記所定の送信レコードを一度に複数の周辺機器にそれぞれ送信することによって、複数の前記周辺機器のうち、送信エラーの発生した周辺機器のみについて、前記更新データについて残りの所定の送信レコードの送信を中止し、前記周辺機器をリセットすることができる。
【００４１】
その結果、前記ユーザは、前記更新対象の周辺機器一つひとつに対して更新データの送信を指示する手間を削減することができる。
【００４２】
なお、上述の一連の更新処理で送信エラーとなった周辺機器を記憶しておき、記憶した当該周辺機器に対して更に自動的に更新データの送信を行い、これらの処理を繰り返すことによって、全ての周辺機器の更新データの送信が完了するまで自動的に処理することもできる。
【００４３】
本発明は、通信ネットワークに接続された周辺機器に、前記周辺機器のファームウェアの更新データを送信するコンピュータを含むシステムであって、
前記コンピュータは、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信する手段を備え、
前記周辺機器は、前記コンピュータから前記所定の送信レコードを順次受信する手段と、
前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックする手段と、
前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信する手段と、を備え、
前記コンピュータは、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止する手段と、
前記周辺機器をリセットするコマンドを前記周辺機器に送信する手段と、を更に備えることを特徴とする。
【００４４】
本発明のこのような構成によれば、前記コンピュータは、前記更新データを、所定の送信レコードに分割し、前記所定の送信レコード毎に前記所定の送信レコードの送信エラーをチェックするための所定のチェックデータを付加して前記周辺機器に順次送信し、
前記周辺機器は、前記コンピュータから前記所定の送信レコードを順次受信し、
前記コンピュータから前記所定の送信レコードを順次受信したことに応じて、受信した前記所定の送信レコードについて前記所定のチェックデータを用いて送信エラーを順次チェックし、
前記所定の送信レコードについて送信エラーが発生したと判断した場合に、前記送信エラーの発生を通知するデータを前記コンピュータに送信し、
前記コンピュータは、前記周辺機器から前記送信エラーの発生を通知するデータを受信したことに応じて、前記更新データについて残りの所定の送信レコードの送信を中止し、
前記周辺機器をリセットするコマンドを前記周辺機器に送信することが可能である、という作用効果を有する。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照して本発明の実施形態について説明する。
【００４６】
図１は、本発明の好適な実施形態の一例に係るシステムの全体構成を示すブロック図である。図２は、本発明の好適な実施形態の一例に係るコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・の構成を示すブロック図である。図３は、本発明の好適な実施形態の一例に係る周辺機器としてのプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・の構成を示すブロック図である。図４及び図５は、本発明の好適な実施形態の一例に係る更新データ送信処理を示すフローチャートである。図６は、本発明の好適な実施形態の一例に係る更新データのフォーマットの一例を示す図である。
［システムの全体構成］
【００４７】
図１に示すように、本発明に係る好適な実施形態の一例に係るシステム１は、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・、周辺機器としてのプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ・・・を含んで構成されている。
【００４８】
コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・は通信ネットワーク１４を介して接続されている。更に、プリンタ１３ａ１、１３ａ２、１３ａ３はそれぞれ通信ネットワーク１５ａ１、１５ａ２、１５ａ３を介してコンピュータ１２ａに接続されている。同様に、プリンタ１３ｂはコンピュータ１２ｂに、プリンタ１３ｃは１２ｃに、それぞれ通信ネットワーク１５ｂ、１５ｃを介して接続されている。
【００４９】
図１の例において、コンピュータ１２ａ、１２ｂ、１２ｃはいわゆる汎用パーソナルコンピュータとして実現してもよいし、キャッシュレジスター等の専用情報機器として実現してもよい。
【００５０】
また、通信ネットワーク１４は、Ｅｔｈｅｒｎｅｔ（登録商標）等の構内通信網（ＬＡＮ）として実現してもよいし、専用線、インターネット、ＶＰＮ等の広域通信網（ＷＡＮ）として実現してもよい。通信ネットワーク１４がＷＡＮを含み、コンピュータ１１がコンピュータ１２ａ、１２ｂ、１２ｃ、・・・と互いに遠隔地の関係にある場合に、本発明の効果がより発揮される。
【００５１】
更に、通信ネットワーク１５ａ１、１５ａ２、１５ａ３、１５ｂ、１５ｃ、・・・はＲＳ−２３２Ｃ（最大通信速度１４．４ｋｂｐｓ）、ＵＳＢ（ＵＳＢ２．０で最大通信速度６０Ｍｂｐｓ）等のシリアルインターフェイスで実現してもよいし、ＳＣＳＩ（最大通信速度３２０Ｍｂｐｓ）等のパラレルインターフェイスで実現してもよい。通信ネットワーク１５ａ１、１５ａ２、１５ａ３、１５ｂ、１５ｃ、・・・が、より低速のインターフェイスで実現されている場合に、本発明の効果がより発揮される。
【００５２】
更に、コンピュータ１２ａ、１２ｂ、１２ｃ、・・・は、通信ネットワーク１４を介して互いに異なる通信速度でコンピュータ１１に接続されていてもよい。
【００５３】
同様に、プリンタ１３ａ１、１３ａ２、１３ａ３、・・・はそれぞれ通信ネットワーク１５ａ１、１５ａ２、１５ａ３と互いに異なる通信速度で接続されていてもよい。
［コンピュータの構成］
【００５４】
図２に示すように、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・は、制御部１１１、記憶部１１２、通信Ｉ／Ｆ部１１３、入力部１１４、表示部１１５が、バス１１６を介して接続されて構成されている。
【００５５】
制御部１１１は、情報の演算、処理を行う情報演算処理装置であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。また、制御部１１１はコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・全体の制御を行い、記憶部１１２に記憶された各種プログラムを適宜読み出して実行することにより、上述のハードウェアが協働し、本発明に係る各種機能を実現している。
【００５６】
ここで、表示部１１５は、ユーザにデータの入力を受け付ける画面を表示したり、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００５７】
ここで、入力部１１４は、ユーザによる入力の受付を行うものであり、キーボード、ポインティングデバイス等を含んでよい。入力部１１４は、直接又は介在Ｉ／Ｏコントローラを介してコンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・と接続することができる。
【００５８】
ここで、通信Ｉ／Ｆ部１１３は、コンピュータ１１、１２ａ、１２ｂ、１２ｃ、・・・を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信Ｉ／Ｆ部１１３は、モデム、ケーブル・モデム及びＥｔｈｅｒｎｅｔ（登録商標）・アダプタを含んでよい。
【００５９】
ここで、記憶部１１２は、制御部１１１と組み合わせてプログラムの実行に使用するローカルメモリ、大容量のバルクメモリ、及び当該バルクメモリの検索を効率的に行うために使用するキャッシュメモリを含んでよい。記憶部１１２を実現するコンピュータ可読媒体としては、電気的、磁気的、光学的、電磁的に実現するものを含んでよい。より具体的には、半導体記憶装置、磁気テープ、フレキシブルディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、ＣＤ−ＲＯＭとＣＤ−Ｒ／ＷとＤＶＤとを含む光ディスクが含まれる。
［プリンタの構成］
【００６０】
図３に示すように、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・は、ＣＰＵ１３１、ＦｌａｓｈＲＯＭ１３２、ＲＡＭ１３３、通信Ｉ／Ｆ部１３４、操作ボタン１３５、表示部１３６、プリンタユニット１３７が、バス１３８を介して接続されて構成されている。
【００６１】
ＣＰＵ１３１は、情報の演算、処理を行う情報演算処理装置であり、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・全体の制御を行い、ＦｌａｓｈＲＯＭ１３２に記憶されたファームウェア等の各種プログラムを適宜読み出して実行することにより、上述のハードウェアが協働し、本発明に係る各種機能を実現している。
【００６２】
ここで、表示部１３６は、ユーザにデータの入力を受け付ける画面を表示したり、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・による演算処理結果の画面を表示したりするものであり、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００６３】
ここで、操作ボタン１３５は、ユーザによる入力の受付を行うものであり、様々な形式のボタンその他の入力デバイスを含んでよい。操作ボタン１３５は、直接又は介在Ｉ／Ｏコントローラを介してプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・と接続することができる。
【００６４】
ここで、通信Ｉ／Ｆ部１３４は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ、・・・を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信Ｉ／Ｆ部１３４は、ＲＳ−２３２Ｃ、ＵＳＢ等のシリアルインターフェイス・アダプタ、ＳＣＳＩ等のパラレルインターフェイス・アダプタ、Ｅｔｈｅｒｎｅｔ（登録商標）・アダプタ等を含んでよい。
【００６５】
ここで、ＦｌａｓｈＲＯＭ１３２は、本発明の更新データに係るファームウェアを記憶しており、６４ｋＢ等の所定のブロック単位で一括消去、書き換えが可能となっている。
【００６６】
また、ＲＡＭ１３３は、制御部１１１と組み合わせてプログラムの実行に使用するローカルメモリ、大容量のバルクメモリ、及び当該バルクメモリの検索を効率的に行うために使用するキャッシュメモリを含んでよい。
【００６７】
また、プリンタユニット１３７は、詳細な説明は省略するが、ＣＰＵ１３１の制御に基づいて実際に印刷を行うプリンタヘッド、用紙フィード装置等が含まれる。
［更新データ送信処理１］
【００６８】
図４に示したように、本発明の好適な実施形態の一例に係るシステム１は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・のＦｌａｓｈＲＯＭ１３２に記憶されたファームウェアの更新データの送信処理を実行する。
【００６９】
まず、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・の制御部１１１は、前処理を行う（ステップＳ１０１）。
【００７０】
具体的には、制御部１１１は、更新データの送信の準備のために、例えば、プリンタのスプーラを停止させたり、デバイスＩＤを取得したり、信号線の確認を行ったりする。また、制御部１１１は、送信する更新データを読み込み、必要に応じてフォーマット変換等を実施してもよい。更に、接続している通信Ｉ／Ｆをオープンしたり、信号線を確認したり、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・の機種ＩＤを取得したり、ファームウェアのバージョンを取得したり、といった処理を行う。
【００７１】
ここで、更新データのフォーマットの一例について説明する。図６に示すように、ファームウェアの更新データがバイナリ形式で記述されている場合、最大２５０バイトのオブジェクトデータ及び合計８バイトの管理データを含んでいる。更新データは、一のオブジェクトデータ及び対応する管理データの組み合わせとして構成される単位データの配列として構成される。
【００７２】
ここで、当該オブジェクトデータは、更新データの内容である。また、当該管理データは、当該オブジェクトデータの最初のデータの書き込みアドレスを示すアドレスデータ、チェックサムデータ、及び当該アドレスデータと当該オブジェクトデータとチェックサムデータとの長さの合計を示す長さデータを含んで構成されている。
【００７３】
次に、制御部１１１は、更新データをプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・へ送信するために、所定の送信レコードに分割する（ステップＳ１０２）。
【００７４】
具体的には、例えば、当該更新データが上述のバイナリ形式で記述されている場合には、更新データを一のオブジェクトデータ毎に一の送信レコードとして分割する。
【００７５】
次に、制御部１１１は、分割した当該送信レコード毎に所定のチェックデータを付加して、更新データをプリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・へ順次送信する（ステップＳ１０３）。
【００７６】
具体的には、例えば、当該更新データが上述のバイナリ形式で記述されている場合には、一のオブジェクトデータ毎に対応するチェックサムデータを含む管理データを付加して送信する。
【００７７】
次に、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・のＣＰＵ１３１は、制御部１１１が送信した送信レコードを受信する（ステップＳ１０４）。
【００７８】
次に、ＣＰＵ１３１は、受信した当該送信レコードに含まれる所定のチェックデータを用いて送信エラーのチェックを行う（ステップＳ１０５）。
【００７９】
具体的には、例えば、当該更新データが上述のバイナリ形式で記述されている場合には、当該送信レコードに含まれるチェックサムデータを用いて送信エラーをチェックする。
【００８０】
次に、ＣＰＵ１３１は、受信した当該送信レコードに含まれる所定のチェックデータを用いて送信エラーのチェックを行う（ステップＳ１０５）。
【００８１】
ステップＳ１０６において、送信エラーと判断した場合には、ＣＰＵ１３１は、制御をステップＳ１０７に移す。また、送信エラーではないと判断した場合には、ＣＰＵ１３１は、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・からの次の送信レコードの送信を待ち受ける。（ステップＳ１０６）。
【００８２】
ステップＳ１０７において、ＣＰＵ１３１は、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・に送信エラーの発生を通知するデータを送信する。
【００８３】
次に、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・の制御部１１１は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・から送信された当該送信エラーの発生を通知するデータを受信したことに応じて、未だ全ての送信レコードの送信が終了していない場合には、その後残りの送信レコードの送信を中止する（ステップＳ１０８）。
【００８４】
このことにより、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・から送信エラーの発生を通知するデータを受信した後は、当該データを送信したプリンタに対する送信レコードの送信を中止し、送信エラー対応処理として、更新データの再送信等の処理を行うことができる。
【００８５】
次に、制御部１１１は、送信エラー対応処理として、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・をリセットするコマンドを当該プリンタに送信する（ステップＳ１０９）。
【００８６】
次に、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・のＣＰＵ１３１は、当該コマンドを受信したことに応じて、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・をリセットする（ステップＳ１１０）。
【００８７】
このように、本発明の原理によれば、更新データの送信が途中で失敗した場合において、リモートサイトから当該更新データの送信をやり直すことが可能となる。更に、当該通信ネットワーク上に更新対象のプリンタ等の周辺機器が複数存在する場合にも、送信が途中で失敗したプリンタ等の周辺機器のみについて、当該更新データの送信をやり直すことが可能となる。
【００８８】
［更新データ送信処理２］
【００８９】
図５に示したように、本発明の好適な実施形態の別の一例に係るシステム１は、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・のＦｌａｓｈＲＯＭ１３２に記憶されたファームウェアの更新データの送信処理を実行する。
【００９０】
まず、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・の制御部１１１は、前処理を行う（ステップＳ２０１）。以下、図５において、ステップＳ２０２からステップＳ２０５までは、上述の更新データ送信処理１と同様であるので、説明を省略する。
【００９１】
次に、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・のＣＰＵ１３１は、前回の送信データを受信してから、１０秒以内に次の送信データを受信したか否かをチェックする（ステップＳ２０６）。１０秒以上経過してもなお次のデータを受信しない場合、ＣＰＵ１３１は、エラーが発生したと判断し、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・をリセットするコマンドを実行して当該プリンタをリセットする。
【００９２】
なお、この１０秒の時間は、通信ネットワーク１４、１５ａ１、１５ａ２、１５ａ３の通信速度その他の通信環境に応じて適当な値を設定してよい。また、ステップＳ２０４からステップＳ２０６において、送信レコードを受信してから１０秒以上経過したか否かをチェックしているが、ステップＳ２０４で送信レコードを受信中に、次のデータを受信するまでに１０秒以上経過したか否かをチェックするようにしてもよい。
【００９３】
このことにより、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・の制御部が、その後プリンタのファームウェアの更新確認を行う際に、エラーが発生したことを認識し、エラー対応処理として、更新データの再送信等の処理を行うことが可能となる。
【００９４】
このように、本発明の原理によれば、１０秒以上送信レコードの送信がなされなかった場合には、コンピュータ１１、１２ａ、１２ｂ又は１２ｃ、・・・の制御部が、プリンタ１３ａ１、１３ａ２、１３ａ３、１３ｂ又は１３ｃ、・・・をリセットするコマンドを送信することなく、当該プリンタ自身がエラーの発生を認識し、リセット処理を行うことによって、リモートサイトから当該更新データの送信をやり直すことが可能となる。更に、当該通信ネットワーク上に更新対象のプリンタ等の周辺機器が複数存在する場合にも、当該エラーが発生したプリンタ等の周辺機器のみについて、当該更新データの送信をやり直すことが可能となる。
【００９５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【００９６】
具体的には、例えば、本発明に係る周辺機器として、プリンタの例を挙げて説明したが、本発明の技術的範囲はこれに限られず、ビデオカードやストレージドライブなど、その他の周辺機器のファームウェアの更新データの送信にも適用可能である。
【図面の簡単な説明】
【００９７】
【図１】本発明に係るシステムの全体構成を示すブロック図である。
【図２】本発明に係るコンピュータの構成を示すブロック図である。
【図３】本発明に係るプリンタの構成を示すブロック図である。
【図４】本発明に係る更新データ送信処理を示すフローチャートである。
【図５】本発明に係る更新データ送信処理を示すフローチャートである。
【図６】本発明に係る更新データのフォーマットの一例を示す図である。
【符号の説明】
【００９８】
１  システム、１１、１２ａ、１２ｂ、１２ｃ  コンピュータ、１３ａ１、１３ａ２、１３ａ３、１３ｂ、１３ｃ  プリンタ、１４、１５ａ１、１５ａ２、１５ａ３、１５ｂ、１５ｃ  通信ネットワーク、１１１  制御部、１１２  記憶部、１１３  通信Ｉ／Ｆ部、１１４  入力部、１１５  表示部、１１６  バス、１３１  ＣＰＵ、１３２  ＦｌａｓｈＲＯＭ、１３３  ＲＡＭ、１３４  通信Ｉ／Ｆ部、１３５  操作ボタン、１３６  表示部、１３７  プリンタユニット、１３８  バス
【図１】
2008033709.tif 000003
【図２】
2008033709.tif 000004
【図３】
2008033709.tif 000005
【図４】
2008033709.tif 000006
【図５】
2008033709.tif 000007
【図６】
2008033709.tif 000008