(57)【要約】【課題】  搭載するモジュールが異なる複数のモデルが存在する印刷装置の更新処理に係り、印刷装置に送信するデータのデータ量を少なくすることができる。【解決手段】  装置制御プログラム３６を搭載した印刷装置２の制御方法であって、ホスト装置１から、モジュール構成情報を要求する情報要求を受信すると、印刷装置２のモジュール構成情報をホスト装置１に送信するモジュール構成送信ステップと、ホスト装置１から、送信したモジュール構成情報に基づき複数のモジュールから選別された１以上のモジュールの更新データを受信する更新データ受信ステップと、受信した更新データに基づいて、装置制御プログラム３６の更新処理を行うプログラム更新ステップと、を実行する。【選択図】  図６
2019185802.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを備える印刷装置の制御方法であって、
管理装置から、１以上の前記モジュールに対応する更新データを受信する更新データ受信ステップと、
受信した前記更新データに基づいて、前記モジュールの更新処理を行う更新ステップと、を実行し、
前記更新データ受信ステップでは、前記モジュール単位の更新データが、前記管理装置との通信の種類に応じた所定のデータ量より小さい場合、２以上の前記モジュール単位の更新データが統合して送信された前記更新データを受信することを特徴とする印刷装置の制御方法。
【請求項２】
前記更新データ受信ステップでは、前記モジュール単位の更新データが、前記所定のデータ量より大きい場合、当該更新データが前記所定のデータ量内となるように分割して送信された前記更新データを受信することを特徴とする請求項１に記載の印刷装置の制御方法。
【請求項３】
前記管理装置との通信の種類は、第１の通信と、第１の通信よりも通信速度が遅い第２の通信と、を有し、
前記第１の通信に応じた前記所定のデータ量よりも、前記第２の通信に応じた前記所定のデータ量のほうが小さいことを特徴とする請求項１または２に記載の印刷装置の制御方法。
【請求項４】
複数のモジュールと、
管理装置から、１以上の前記モジュールに対応する更新データを受信する更新データ受信部と、
受信した前記更新データに基づいて、前記モジュールの更新処理を行う更新部と、を備え、
前記更新データ受信部は、前記モジュール単位の更新データが、前記管理装置との通信の種類に応じた所定のデータ量より小さい場合、２以上の前記モジュール単位の更新データが統合して送信された前記更新データを受信することを特徴とする印刷装置。
【請求項５】
複数のモジュールを備える印刷装置に、１以上の前記モジュールの更新処理を実行させるための更新データを送信する更新データ送信部を備え、
前記更新データ送信部は、前記モジュール単位の更新データが、前記印刷装置との通信の種類に応じた所定のデータ量より小さい場合、２以上の前記モジュール単位の更新データを統合して送信することを特徴とする管理装置。
【請求項６】
複数のモジュールを備える印刷装置に、１以上の前記モジュールの更新処理を実行させるための更新データを送信する管理装置に、
前記モジュール単位の更新データが、前記印刷装置との通信の種類に応じた所定のデータ量より小さい場合、２以上の前記モジュール単位の更新データを統合して送信する更新データ送信ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置の制御方法、印刷装置、管理装置およびプログラムに関するものである。
【背景技術】
【０００２】
従来、プログラム更新システム（プログラム管理システム）として、管理装置（プログラム管理装置）と、印刷装置（プリンター）と、を備えたものが知られている（特許文献１参照）。このプログラム更新システムでは、管理装置は、印刷装置に対し更新データ（更新用の制御プログラムデータ、更新用のファーム）を送信し、印刷装置は、当該更新データにより、装置制御プログラム（制御プログラム、ファーム）の更新処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、印刷装置について、搭載する装置制御プログラムにおいてモジュールが異なる複数種のモデルが存在するケースが増えてきている。
これに対応すべく、メーカー側では、搭載可能な全てのモジュールに対する更新データを含んだ１種類のファイルを作成している。これに対し、上記従来のプログラム管理システムにおいて、管理装置が、この作成したファイルを取得して印刷装置に送信し、印刷装置が、当該ファイルにより更新処理を行うことが考えられる。
しかしながら、このような構成では、管理装置から印刷装置に送信するデータのデータ量が多くなってしまう。これによって、データ送信に時間がかかってしまうという問題や、データ送信が失敗するリスクが増大するという問題が生じた。
【０００５】
本発明は、搭載するモジュールが異なる複数のモデルが存在する印刷装置の更新処理に係り、印刷装置に送信するデータのデータ量を少なくすることができる印刷装置の制御方法、印刷装置、管理装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の印刷装置の制御方法は、装置制御プログラムを搭載した印刷装置の制御方法であって、管理装置から、モジュール構成情報を要求する情報要求を受信すると、印刷装置のモジュール構成情報を管理装置に送信するモジュール構成送信ステップと、管理装置から、送信したモジュール構成情報に基づき複数のモジュールから選別された１以上のモジュールの更新データを受信する更新データ受信ステップと、受信した更新データに基づいて、装置制御プログラムの更新処理を行うプログラム更新ステップと、を実行することを特徴とする。
【０００７】
本発明のプログラム更新システムは、装置制御プログラムを搭載した印刷装置と、管理装置と、が接続されたプログラム更新システムであって、管理装置は、印刷装置から、当該印刷装置のモジュール構成情報を取得するモジュール構成取得部と、取得したモジュール構成情報に基づいて、各モジュールの更新データから、１以上のモジュールの更新データを選別するデータ選別部と、選別した更新データを含む送信用データを生成する送信用データ生成部と、生成した送信用データを、印刷装置に送信するデータ送信部と、を備え、印刷装置は、管理装置から受信した送信用データに含まれる更新データに基づいて、装置制御プログラムの更新処理を行うプログラム更新部を、備えたことを特徴とする。
【０００８】
本発明の印刷装置は、装置制御プログラムを記憶した記憶部と、管理装置から、モジュール構成情報を要求する情報要求を受信し、印刷装置のモジュール構成情報を送信し、管理装置から、送信したモジュール構成情報に基づき複数のモジュールから選別された１以上のモジュールの更新データを受信する通信部と、受信した更新データに基づいて、装置制御プログラムの更新処理を行う制御部と、を備えることを特徴とする。
【０００９】
これらの構成によれば、印刷装置は装置制御プログラムを構成するモジュールの構成情報を管理装置へ送信し、管理装置において、取得したモジュール構成に基づき、印刷装置が搭載したモジュール構成に合わせて更新データを選別して印刷装置に送信し、印刷装置は更新データにより装置制御プログラムの更新処理を行う。このように、印刷装置のモジュール構成に合わせて、必要な更新データを受信して更新処理する構成であるため、搭載するモジュールが異なる複数のモデルが存在する印刷装置の更新処理に係り、管理装置から印刷装置が受信する更新データのデータ量を極力少なくすることができる。これによって、データ受信にかかる時間を低減させることができる。また、受信途中で、ノイズの影響やユーザーによる印刷装置の電源をオフするなど誤った操作によりデータ受信が失敗するリスクを低減させることができる。
【００１０】
上記の印刷装置の制御方法において、更新データ受信ステップでは、管理装置との通信の種類に応じた所定のデータ量内に分割して送信された更新データを受信することが好ましい。
【００１１】
この場合、更新データ受信ステップでは、管理装置との通信の種類に応じた所定のデータ量内となるように、モジュール単位で統合または分割して送信された更新データを受信することが好ましい。
【００１２】
これらの構成によれば、更新データを分割して受信すると共に、１回当たりの受信データ量が、通信の種類に応じて決定される。そのため、例えば、通信の種類が、通信速度の遅いものの場合に、受信データ量を少なくすることで、１回当たりの通信時間を一定または一定以下にすることができる。すなわち、通信の種類が、通信速度の遅いものであった場合にも、１回の通信時間を、データ受信が失敗するリスクが少ない所定の通信時間まで短くすることができる。そのため、データ受信が失敗するリスクをより低減させることができる。
【００１３】
また、更新データ受信ステップでは、１分割単位の受信の都度、受信の確認情報を送信することを行うが好ましい。
【００１４】
この構成によれば、１回当たりの受信データ量が、通信の種類に応じた所定のデータ量内となるように、更新データをモジュール単位で統合または分割して受信すると共に、１分割単位の受信の都度、受信の成否確認を行う。このように、通信の種類に応じた所定のデータ量送る都度、受信の成否確認を行う構成であるため、例えば、一定または一定以下の通信時間のデータ受信の都度、受信の成否確認を行うことができる。これによって、データ受信が失敗したときに管理装置が再送信を行うことができ、さらに再送信の通信時間を少なくすることができ、再送信にかかる時間を最小限に抑えることができる。
【００１５】
一方、受信した更新データにおける更新時間を算出する更新時間算出ステップと、更新データ受信ステップにより更新データを受信してから、算出した更新時間に達するまで、管理装置との接続確認をポーリングする接続確認ステップと、を更に実行することが好ましい。
【００１６】
この構成によれば、ポーリングのタイムアウト時間を、選別した更新データにおける更新時間（合計更新時間）とすることで、接続確認のポーリングによる更新終了の成否判定を適切に行うことができる。
【００１７】
また、更新データ受信ステップでは、更新データに付加された更新時刻を受信し、プログラム更新ステップでは、更新データに付加された更新時刻に、更新データに基づく更新処理を行うことが好ましい。
【００１８】
この構成によれば、所望の時刻（例えば、業務終了時等）に、印刷装置に更新処理を行わせることができる。ひいては、更新データのデータ送信と、更新データに基づく更新処理とを別々の時刻に行うことができるため、更新データのデータ送信が終わった時点で、一度、印刷装置を印刷可能な状態に戻すことができる。よって、ユーザーが更新データのデータ送信を指示してから、印刷装置が印刷可能な状態になるまでの時間を短くすることができ、ユーザーの待ち時間を少なくすることができる。
【００１９】
さらに、管理装置から、印刷装置の仕向けを示す仕向け情報を要求する仕向け情報要求を受信すると、仕向け情報を管理装置に送信する仕向け情報送信ステップを、更に実行し、更新データ受信ステップでは、管理装置から、送信した仕向け情報に基づき選別された１以上のモジュールの更新データを受信することを特徴とする請求項１ないし６のいずれか一項に記載の印刷装置の制御方法。
【００２０】
この構成によれば、仕向け毎のモデルが存在する印刷装置についても、更新処理に係る印刷装置が受信するデータのデータ量を極力少なくすることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る印刷システムのシステム構成図である。
【図２】ホスト装置および印刷装置の機能構成を示した機能ブロック図である。
【図３】更新データファイルにおけるユニット構成を示した図である。
【図４】更新データの選別処理を説明するための図である。
【図５】印刷システムによる装置制御プログラムの更新動作における前半部を示したフローチャートである。
【図６】印刷システムによる装置制御プログラムの更新動作における後半部を示したフローチャートである。
【発明を実施するための形態】
【００２２】
以下、添付の図面を参照して、本発明の一実施形態に係る印刷装置の制御方法、印刷装置、管理装置およびプログラムについて説明する。実施形態では、本発明を適用した印刷システムを例示する。この印刷システムは、印刷媒体に対し印刷処理を行って、印刷物を作成するものである。また、本印刷システムは、装置制御プログラムを搭載した印刷装置であり、且つ搭載するモジュールが異なる複数のモデルが存在する印刷装置に対し、装置制御プログラムの更新処理を行うプログラム更新システムとしても機能する。
【００２３】
図１に示すように、印刷システムＳＹは、ホスト装置１（管理装置）と、ホスト装置１に接続された印刷装置２と、を有する。ホスト装置１と印刷装置２とは、有線通信によって接続される構成でも良いし、無線通信によって接続される構成でも良い。また、ホスト装置１と印刷装置２とは、直接接続される構成でも良いし、ネットワーク（インターネットやローカルエリアネットワーク）を介して接続される構成でも良い。
【００２４】
ホスト装置１は、各種コマンドを生成し、生成した各種コマンドを印刷装置２に送信するものであり、印刷装置２とのデータ通信を行う通信インターフェース６と、通信インターフェース６を制御する制御部７と、を備える。また、ホスト装置１は、各種情報を表示するディスプレイ８を備える。
【００２５】
通信インターフェース６は、印刷装置２とのデータ通信を行うものである。すなわち、通信インターフェース６は、上記した各種コマンドを含む各種データを印刷装置２に送信すると共に、印刷装置２から各種データを受信する。
【００２６】
制御部７は、ＣＰＵ（Central  Processing  Unit）１１、ＲＡＭ（Random  Access  Memory）１２、ＲＯＭ（Read  Only  Memory）１３およびハードディスクドライブ１４等を有し、ホスト装置１を統括制御する。ハードディスクドライブ１４は、プリンタードライバー１６と、更新管理ツール１７と、を記憶する。ホスト装置１は、制御部７により、更新管理ツール１７を実行することで、印刷装置２による上記更新処理を管理する「管理装置」として機能する。
【００２７】
一方、印刷装置２は、ホスト装置１からの各種コマンドを受信し、当該各種コマンドに基づいて、各種処理を行う。例えば、印刷コマンドに基づいて、印刷媒体に対し印刷処理を行う。この印刷装置２は、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール搭載モデルや、ネットワークモジュール搭載モデル等、搭載するモジュールが異なる複数のモデルが存在する。すなわち、本印刷装置２は、複数のモジュールの中から１以上のモジュールを選択的に搭載したものである。
【００２８】
印刷装置２は、ホスト装置１とのデータ通信を行う通信インターフェース２１（通信部）と、印刷媒体に対し印刷処理を行うプリンターエンジン２２と、通信インターフェース２１およびプリンターエンジン２２を制御するプリンターコントローラー２３と、を備える。印刷装置２は、プリンターコントローラー２３の制御の下、通信インターフェース２１により、各種コマンドを受信する。そして、受信したコマンドが印刷コマンドである場合には、プリンターエンジン２２により、当該印刷コマンドに基づいて印刷媒体に対し印刷処理を行う。これによって、印刷物を作成する。
【００２９】
通信インターフェース２１は、ホスト装置１との通信を行うものである。すなわち、通信インターフェース２１は、ホスト装置１から、上記各種コマンドを含む各種データを受信すると共に、ホスト装置１に各種データを送信する。
【００３０】
プリンターコントローラー２３は、印刷装置２を統括制御する制御部３１と、各種データを記憶する記憶部３２と、を備える。記憶部３２は、フラッシュＲＯＭで構成されており、印刷装置２を制御するための装置制御プログラム３６と、装置制御プログラム３６を更新するためのブートプログラム３７と、を記憶する。装置制御プログラム３６には、印刷装置２に搭載した各モジュールのファームウェアおよび設定情報が含まれる。
【００３１】
制御部３１は、ＣＰＵ４１、ＲＡＭ４２、ＲＯＭ４３等を有し、印刷装置２を統括制御する。ＲＡＭ４２は、送受信バッファ４６を有する。送受信バッファ４６は、通信インターフェース２１によってホスト装置１から受信したデータと、通信インターフェース２１によってホスト装置１に送信するデータと、を一時記憶するものである。なお、送受信バッファ４６は、ＦＩＦＯ（First  In  First  Out）バッファである。
【００３２】
本実施形態では、印刷装置２は、制御部３１により装置制御プログラム３６を実行することで、印刷処理を含む通常の処理を行い、制御部３１によりブートプログラム３７を実行することで、装置制御プログラム３６の更新処理を行う。すなわち、印刷装置２は、制御部３１により装置制御プログラム３６を実行する通常制御モードと、制御部３１によりブートプログラム３７を実行するブート制御モードと、を有し、装置制御プログラム３６の更新処理を行う場合には、通常制御モードからブート制御モードに切り替えて、当該更新処理を行う構成である。なお、通常制御モードでは、通常コマンドとリアルタイムコマンドとを実行可能であり、ブート制御モードでは、リアルタイムコマンドのみを実行可能である。通常コマンドは、印刷装置２が送受信バッファ４６に記憶した順に処理するコマンドであり、リアルタイムコマンドは、印刷装置２が通常コマンドに対し優先して処理するコマンドであり、印刷装置２が他の処理に対し優先して実行するコマンドである。
【００３３】
ここで図２を参照して、ホスト装置１および印刷装置２の機能構成について説明する。まず、印刷装置２の機能構成について説明する。図２に示すように、印刷装置２は、第１データ受信部５０と、第１コマンド解析部５１と、印刷制御部５２と、第１モード切替部５３と、バッファ消去部５４と、第２データ受信部６０と、第２コマンド解析部５５と、応答送信部５６と、装置情報送信部５７と、第２モード切替部５８と、プログラム更新部５９と、を備える。第１データ受信部５０、第１コマンド解析部５１、印刷制御部５２および第１モード切替部５３は、装置制御プログラム３６を実行する制御部３１により構成される。一方、バッファ消去部５４、第２データ受信部６０、第２コマンド解析部５５、応答送信部５６、装置情報送信部５７、第２モード切替部５８およびプログラム更新部５９は、ブートプログラム３７を実行する制御部３１により構成される。
【００３４】
第１データ受信部５０は、通常制御モードにおいて、ホスト装置１からの各種データを、通信インターフェース２１で受信する。具体的には、第１データ受信部５０は、印刷コマンドやモード切替コマンド（後述する）を、通信インターフェース２１で受信する。
【００３５】
第１コマンド解析部５１は、通常制御モードにおいて、受信したデータに対し、コマンド解析を行う。具体的には、第１コマンド解析部５１は、受信したデータが、どのコマンドであるかを判定する。また、第１コマンド解析部５１は、受信したデータが、通常コマンドであるか、リアルタイムコマンドであるか否かを判定する。
【００３６】
印刷制御部５２は、第１コマンド解析部５１によるコマンド解析の結果、受信したデータが、印刷コマンドであると判定された場合、印刷コマンドに基づく印刷処理を行う。すなわち、印刷制御部５２は、プリンターエンジン２２を制御し、印刷コマンドに基づいて、印刷媒体に対し印刷処理を行う。
【００３７】
第１モード切替部５３は、通常制御モードにおいて、ホスト装置１からのモード切替要求に基づき、印刷装置２のモードを、通常制御モードからブート制御モードに切り替える。厳密には、第１モード切替部５３は、ホスト装置１から送信されたモード切替コマンドを受けて、印刷装置２のモードを、ブート制御モードに切り替える。また、ブート制御モードには、ホスト装置１からの要求を受けて各種情報を応答する情報応答モードと、ホスト装置１からのデータにより上記更新処理（書き換え処理）を行う強制書き換えモードと、が有り、第１モード切替部５３は、ホスト装置１からのモード切替コマンドに従って、情報応答モードおよび強制書き換えモードのいずれか一方のモードに切り替える。なお、本実施形態においては、ホスト装置１は、情報応答モードに切り替える旨のモード切替コマンドを送信する構成であるため、第１モード切替部５３は、当該モード切替コマンドに従って、印刷装置２のモードを、通常制御モードから情報応答モードに切り替える。
【００３８】
バッファ消去部５４は、ホスト装置１から、情報応答モードに切り替える旨のモード切替コマンド（モード切替要求）を受信したとき、送受信バッファ４６内のデータを消去する。すなわち、本実施形態では、印刷装置２のモードを情報応答モードに切り替えた後、バッファ消去部５４により、送受信バッファ４６内のデータを消去する構成となる。
【００３９】
第２データ受信部６０は、ブート制御モードにおいて、ホスト装置１からの各種データを、通信インターフェース２１で受信する。具体的には、第２データ受信部６０は、応答要求コマンド、情報要求コマンド、モード切替コマンドや送信用データ（いずれも後述する）を通信インターフェース２１で受信する。なお、詳細は後述するが、第２データ受信部６０は、ホスト装置１から、モジュール構成情報に基づき複数のモジュールから選別された１以上のモジュールの更新データを通信インターフェース２１で受信する。
【００４０】
第２コマンド解析部５５は、情報応答モードにおいて、受信したデータに対しコマンド解析を行い、受信したデータが、どのリアルタイムコマンドであるかを判定する。すなわち、本実施形態では、ホスト装置１は、印刷装置２がブート制御モードとなった状態において、印刷装置２へのコマンド送信をリアルタイムコマンドで行う構成であるため、受信したデータが、どのリアルタイムコマンドであるかを判定することで、受信したデータに対するコマンド解析を行うことができる。
【００４１】
応答送信部５６は、情報応答モードにおいて、ホスト装置１からの応答要求コマンドを受けて、ホスト装置１に対し、応答を通信インターフェース２１で送信する。
【００４２】
装置情報送信部５７は、情報応答モードにおいて、ホスト装置１から、装置情報を要求する情報要求コマンド（情報要求）を受信したとき、ホスト装置１に対し、印刷装置２の装置情報を通信インターフェース２１で送信する。すなわち、装置情報送信部５７は、ホスト装置１から、情報要求コマンドを受信すると、装置情報をホスト装置１に送信する。装置情報送信部５７は、装置情報として、印刷装置２のプリンターＩＤと、印刷装置２のモジュール構成情報（印刷装置２のモジュール構成を示す情報）と、搭載した各モジュールにおける各ファームウェアのバージョン情報と、をホスト装置１に送信する。
【００４３】
第２モード切替部５８は、ブート制御モードにおいて、ホスト装置１からのモード切替要求に基づき、印刷装置２のモードを、情報応答モードと強制書き換えモードとの間で切り替える。厳密には、第２モード切替部５８は、ホスト装置１から送信されたモード切替コマンドを受けて、印刷装置２のモードを切り替える。すなわち、第２モード切替部５８は、情報応答モードにおいて、強制書き換えモードに切り替える旨のモード切替コマンドを受け、印刷装置２のモードを、情報応答モードから強制書き換えモードに切り替える。また、第２モード切替部５８は、強制書き換えモードにおいて、情報応答モードに切り替える旨のモード切替コマンドを受け、印刷装置２のモードを、強制書き換えモードから情報応答モードに切り替える。
【００４４】
プログラム更新部５９は、強制書き換えモードにおいて、ホスト装置１からの送信用データ（後述する）に含まれる更新データに基づいて、装置制御プログラム３６の更新処理を行う。具体的には、記憶部３２に記憶した装置制御プログラム３６における各モジュールのファームウェアおよび設定情報を、送信用データに含まれたものに書き換える。これによって、装置制御プログラム３６を更新する。
【００４５】
次に、ホスト装置１の機能構成について説明する。ホスト装置１は、ファイル取得部６１と、ファイル解析部６２と、モード切替要求部６３と、応答確認部６４と、装置情報取得部６５（モジュール構成取得部）と、ＩＤ確認部６６と、データ選別部６７と、送信用データ生成部６８と、更新時間算出部６９と、通信種類取得部７０と、データ送信部７１と、接続確認部７２と、更新成否判定部７３と、リカバリー手順表示部７４と、を備える。これら各部は、更新管理ツール１７を実行する制御部７により構成される。
【００４６】
ファイル取得部６１は、印刷装置２の上記更新処理を行うための更新データファイルを取得する。更新データファイルは、メーカーによって、印刷装置２の機種毎に１種類用意されるものであり、１機種における各モデルを包括する内容である。ファイル取得部６１は、インターネット等のネットワークを介して、メーカーが用意したサーバーからダウンロードし、または、当該更新データファイルを記憶した記憶媒体から読み出すことで、当該更新データファイルを取得する。
【００４７】
更新データファイルには、上記機種を示すプリンターＩＤ（プロテクトＩＤ）と、当該機種に搭載可能な各モジュールの更新データと、が記憶される。上記したように、１機種における各モデルを包括すべく、更新データファイルには、各モデルで印刷装置２に選択的に搭載される複数のモジュールの全てについて、当該各モジュールの更新データが記憶される。
【００４８】
各モジュールの更新データは、モジュール毎に分けて記憶されるだけでなく、より細かくユニットという単位に分けて記憶される。図３は、更新データファイルにおけるユニット構成（各ユニットの内容）を示した図である。図３に示すように、更新データファイルは、ユニットとして、「ＩＰＬ」、「Ｂｏｏｔ  ｄａｔｅ（ＢＴＳ）」、「Ｆｉｒｍｗａｒｅ  ｄａｔａ（Ｍａｉｎ／Ｗｂｏｏｔ）」、「ＣＧ  ｄａｔａ」、「ＰＣダウンイメージ」、「音声ガイドデータ」、「ＦＰＧＡ  ｄａｔａ（ＦＰＧＡ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ領域）」、「マイコン（Ｓｕｂ−ＣＰＵ）」、「ＭＩＣＲ（Magnetic  ink  character  recognition）」、「Ｂｌｕｅｔｏｏｔｈモジュール」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｋｅｒｎｅｌ／Ｒｏｏｔ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒｆｓ２領域）」、「ｗｒｉｔａｂｌｅ−ｒｅｇｉｏｎ（Ｌｉｎｕｘ（登録商標）設定値）」、「ｂｏｏｔｓｔｒａｐ（登録商標）」、「ｕ−ｂｏｏｔ」、「ｕ−ｂｏｏｔ（ｕ−ｂｏｏｔ設定値）」、「Ｃｅｒｔ  ｔｙｐｅ（証明書Ｔｙｐｅ）」、「Ｃｅｒｔ  Ｄａｔａ（証明書実データ）」および「ＰＫＣＳ１２  ＰＡＳＳＷＡＲＤ（証明書パスワード）」を有する。
【００４９】
「ＩＰＬ」、「Ｂｏｏｔ  ｄａｔｅ（ＢＴＳ）」、「Ｆｉｒｍｗａｒｅ  ｄａｔａ（Ｍａｉｎ／Ｗｂｏｏｔ）」、「ＣＧ  ｄａｔａ」、「ＰＣダウンイメージ」、「ＦＰＧＡ  ｄａｔａ（ＦＰＧＡ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ領域）」は、メインモジュールの更新データである。そして、「ＩＰＬ」、「Ｂｏｏｔ  ｄａｔｅ（ＢＴＳ）」および「Ｆｉｒｍｗａｒｅ  ｄａｔａ（Ｍａｉｎ／Ｗｂｏｏｔ）」は、メインモジュールのファームウェアであり、「ＣＧ  ｄａｔａ」、「ＰＣダウンイメージ」、「ＦＰＧＡ  ｄａｔａ（ＦＰＧＡ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ領域）」は、メインモジュールの設定情報である。なお、「ＰＣダウンイメージ」は、印刷が失敗した場合に、失敗した印刷物に対して「失敗した印刷物」だと分かるように印刷物に上書きする印刷データである。
【００５０】
「音声ガイドデータ」は、スピーカーモジュールの更新データである。「マイコン（Ｓｕｂ−ＣＰＵ）」は、サブＣＰＵモジュールの更新データであり、サブＣＰＵのファームウェアである。「ＭＩＣＲ」は、ＭＩＣＲモジュールの更新データであり、ＭＩＣＲモジュールのファームウェアである。「Ｂｌｕｅｔｏｏｔｈモジュール」は、Ｂｌｕｅｔｏｏｔｈモジュールの更新データであり、Ｂｌｕｅｔｏｏｔｈモジュールのファームウェアである。
【００５１】
「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｋｅｒｎｅｌ／Ｒｏｏｔ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒｆｓ２領域）」、「ｗｒｉｔａｂｌｅ−ｒｅｇｉｏｎ（Ｌｉｎｕｘ設定値）」、「ｂｏｏｔｓｔｒａｐ」、「ｕ−ｂｏｏｔ」、「ｕ−ｂｏｏｔ（ｕ−ｂｏｏｔ設定値）」、「Ｃｅｒｔ  ｔｙｐｅ（証明書Ｔｙｐｅ）」、「Ｃｅｒｔ  Ｄａｔａ（証明書実データ）」および「ＰＫＣＳ１２  ＰＡＳＳＷＡＲＤ（証明書パスワード）」は、ネットワークモジュールの更新データである。そして、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｋｅｒｎｅｌ／Ｒｏｏｔ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒ領域）」、「Ｎｅｔｗｏｒｋ  Ｆｉｒｍｗａｒｅ（ＮＷ  Ｕｓｅｒｆｓ２領域）」、「ｂｏｏｔｓｔｒａｐ」および「ｕ−ｂｏｏｔ」は、ネットワークモジュールのファームウェアであり、「ｗｒｉｔａｂｌｅ−ｒｅｇｉｏｎ（Ｌｉｎｕｘ設定値）」、「ｕ−ｂｏｏｔ（ｕ−ｂｏｏｔ設定値）」、「Ｃｅｒｔ  ｔｙｐｅ（証明書Ｔｙｐｅ）」、「Ｃｅｒｔ  Ｄａｔａ（証明書実データ）」および「ＰＫＣＳ１２  ＰＡＳＳＷＡＲＤ（証明書パスワード）」は、ネットワークモジュールの設定情報である。
【００５２】
また、更新データファイルには、上記プリンターＩＤおよび各モジュールの更新データに加え、当該ユニット構成（ユニットの数および種類）と、各ユニットの更新時間（書き換え時間）と、各ファームウェアのバージョン情報と、が記憶される。
【００５３】
図２に戻り、ファイル解析部６２は、取得した更新データファイルを解析し、当該更新データファイルから、プリンターＩＤ、ユニット構成（ユニットの数および種類）、各ユニットの更新時間および各ファームウェアのバージョン情報を抽出する。これによって、これらの情報を取得する。ファイル解析部６２は、各ユニットの更新時間を取得することで、各モジュールの更新データの各更新時間を取得する。
【００５４】
モード切替要求部６３は、印刷装置２に対し、リアルタイムコマンドでモード切替要求を行う。すなわち、モード切替要求部６３は、リアルタイムコマンドで構成されたモード切替コマンド（モード切替要求）を印刷装置２に送信して、印刷装置２に、モードを切り替えさせる。詳細は後述するが、装置制御プログラム３６の更新動作では、まず、印刷装置２を情報応答モードに切り替えさせて、印刷装置２の装置情報を取得した後、印刷装置２を強制書き換えモードに切り替えさせて、装置制御プログラム３６の更新処理を行わせる。その後、再度、情報応答モードに切り替えさせて、更新処理が正常に行われたか否かを判定する。なお、ホスト装置１は、印刷装置２がブート制御モードに切り替わった状態における、印刷装置２へのコマンド送信を、リアルタイムコマンドで行う。
【００５５】
応答確認部６４は、印刷装置２に対し、リアルタイムコマンドで応答確認を行う。すなわち、応答確認部６４は、リアルタイムコマンドで構成された応答要求コマンドを送信し、これに対する返信である印刷装置２（の応答送信部５６）からの応答を受信する。
【００５６】
装置情報取得部６５は、リアルタイムコマンドで、印刷装置２から、当該印刷装置２の装置情報を取得する。すなわち、装置情報取得部６５は、リアルタイムコマンドで構成された情報要求コマンド（情報要求）を送信し、これに対する返信である印刷装置２（の装置情報送信部５７）からの装置情報を受信する。すなわち、装置情報取得部６５は、印刷装置２から、プリンターＩＤ、モジュール構成情報および各モジュールにおける各ファームウェアのバージョン情報を取得する。
【００５７】
ＩＤ確認部６６は、装置情報取得部６５により取得したプリンターＩＤと、ファイル解析部６２により取得したプリンターＩＤと、を比較して、両プリンターＩＤが一致するか否かを判定する。すなわち、更新する更新データファイルのプリンターＩＤが、更新対象となる印刷装置２のプリンターＩＤと一致するか否かを判定する。
【００５８】
データ選別部６７は、更新データファイルに記憶された更新データから、印刷装置２に必要な更新データ（ユニット）を選別する。具体的には、データ選別部６７は、装置情報取得部６５により取得したモジュール構成情報に基づいて、更新データファイルに記憶された全てのモジュールの更新データから、印刷装置２に搭載された１以上のモジュールの更新データを選別する。例えば、図４に示すように、印刷装置２が、Ｂｌｕｅｔｏｏｔｈモジュールを搭載しないモデルである場合には、Ｂｌｕｅｔｏｏｔｈモジュールの更新データを除外する。また、印刷装置２が、ネットワークモジュールを搭載しないモデルである場合には、ネットワークモジュールの更新データを除外する。
【００５９】
送信用データ生成部６８は、選別した更新データ（ユニット）により、印刷装置２に送信する送信用データを生成する。すなわち、送信用データ生成部６８は、更新データファイルから、選別した更新データを抽出すると共に、抽出した更新データを含む送信用データを生成する。
【００６０】
更新時間算出部６９は、ファイル解析部６２により取得した各ユニットの更新時間に基づき、選別した更新データにおける更新時間（合計更新時間）を算出する。すなわち、更新時間算出部６９は、選別した各更新データにおける各ユニットの各更新時間を集計して、選別した更新データにおける合計更新時間を算出する。なお、この合計更新時間は、送信用データを送信した後に行う接続確認の際に用いるものである。そのため、当該合計更新時間は、送信用データに付加しておくことが好ましい。
【００６１】
通信種類取得部７０は、送信用データを印刷装置２に送信する通信について、通信の種類を取得する。具体的には、通信種類取得部７０は、通信の種類が、ＵＳＢ通信であるか、イーサネット（登録商標）通信であるか、Ｂｌｕｅｔｏｏｔｈ通信であるか、の情報を取得する。なお、「ＵＳＢ」は、「Universal  Serial  Bus」の略である。
【００６２】
データ送信部７１は、送信用データ生成部６８により生成した送信用データを、印刷装置２に送信する。このとき、データ送信部７１は、１回当たりの送信データ量が、通信種類取得部７０により取得した通信の種類に応じた所定のデータ量となるように、送信用データを分割して送信する。具体的には、通信の種類が、ＵＳＢ通信またはイーサネット通信である場合には、１回当たりの送信データ量が２メガバイトとなるように分割する。また、通信の種類が、Ｂｌｕｅｔｏｏｔｈ通信である場合には、１回当たりの送信データ量が５１２キロバイトとなるように分割する。
【００６３】
本実施形態では、モード切替要求部６３により、印刷装置２を強制書き換えモードに切り替えさせた状態で、データ送信部７１により、送信用データを送信することで、印刷装置２に、送信用データに基づく装置制御プログラム３６の更新処理を行わせる。なお、応答確認部６４によって応答確認が確認されなかった場合には、印刷装置２からモジュール構成情報が取得できず、データ選別部６７による選別処理および送信用データ生成部６８による送信用データの生成処理を行うことができない。そのため、送信用データ生成部６８により生成したデータ送信用データに代えて、更新データファイルから各モジュールの更新データ（各ユニット）の全てを抽出し、これを送信用データとして送信する。かかる場合、抽出した更新データをｍｏｔ形式に変換すると共に、印刷装置２の記憶部３２における、各更新データの書き込み先（書き換え先）のアドレス（セクター）を付加して印刷装置２に送信する。このｍｏｔ形式は、フラッシュＲＯＭのセクター単位のデータ形式であり、そのまま記憶部３２に記憶できる形式である。
【００６４】
接続確認部７２は、データ送信部７１により送信用データを送信した後に印刷装置２との接続確認を行って、印刷装置２による上記更新処理が正常に終了した否かを判定する。すなわち、印刷装置２は、更新処理を行っている間、ホスト装置１からの接続ができない状態となり、更新処理が終わると、ホスト装置１から接続可能な状態となる。そのため、印刷装置２との接続確認を行うことで、上記更新処理が正常に終了した否かを判定することができる。
具体的には、接続確認部７２は、送信用データを送信してから、更新時間算出部６９により算出した合計更新時間に達するまで、印刷装置２との接続確認をポーリングする。すなわち、送信用データを送信してから、更新時間算出部６９により算出した合計更新時間に達するまでの間、一定時間毎（数秒毎）に、印刷装置２との接続確認を繰り返し行う。これにより、印刷装置２による上記更新処理が正常に終了した否かを判定する。
【００６５】
更新成否判定部７３は、印刷装置２による上記更新処理が正常に行われたか否かを判定する。本実施形態では、更新処理後のバージョン情報と、更新データファイルのバージョン情報とを、各モジュールのファームウェアそれぞれにおいて比較し、両バージョン情報が、各モジュールのファームウェアそれぞれにおいて一致するか否かを判定する。これによって、印刷装置２による上記更新処理が正常に行われたか否かを判定する。なお、更新処理後のバージョン情報は、更新処理後に装置情報取得部６５により取得したものを用い、更新データファイルのバージョン情報は、ファイル解析部６２により取得したものを用いる。
【００６６】
リカバリー手順表示部７４は、更新成否判定部７３により、印刷装置２による上記更新処理が正常に行われなかったと判定された場合に、リカバリー手順をディスプレイ８に表示する。例えば、ディスプレイ８に、「装置制御プログラムの更新をリトライしてください」等のメッセージを表示して、更新動作のやり直しを促す。
【００６７】
ここで図５および図６を参照して、印刷システムＳＹによる装置制御プログラム３６の更新動作について説明する。本更新動作は、印刷装置２が、記憶部３２に、装置制御プログラム３６およびブートプログラム３７を記憶し、ホスト装置１が、ファイル取得部６１により更新データファイルを取得した状態において、ユーザー操作によって、ホスト装置１上で当該更新データファイルが指定された時に実行されるものである。
【００６８】
図５および図６に示すように、ユーザー操作によって、更新データファイルが指定されると（Ｓ１：Ｙｅｓ）、ファイル解析部６２により、指定された当該更新データファイルから、プリンターＩＤ、ユニット構成（ユニットの数および種類）、各ユニットの更新時間および各ファームウェアのバージョン情報を取得する（Ｓ２）。
【００６９】
これらの情報を取得したら、モード切替要求部６３により、リアルタイムコマンドで、印刷装置２に対し、情報応答モードに切り替える旨のモード切替要求を行う。すなわち、モード切替要求部６３により、リアルタイムコマンドで構成された、情報応答モードに切り替える旨のモード切替コマンドを、印刷装置２に送信する（Ｓ３）。これに対し、印刷装置２は、第１データ受信部５０により、ホスト装置１からのモード切替コマンドを通信インターフェース２１で受信し（Ｓ４）、第１コマンド解析部５１により、受信したデータに対しコマンド解析を行い、受信したデータが、モード切替コマンドであり且つリアルタイムコマンドであると判定する（Ｓ５）。そして、第１モード切替部５３により、当該モード切替コマンドに基づき、印刷装置２のモードを、通常制御モードから情報応答モードに切り替える（Ｓ６）。その後、バッファ消去部５４により、送受信バッファ４６内のデータを消去する（Ｓ７）。
【００７０】
その後、ホスト装置１は、応答確認部６４により、リアルタイムコマンドで、印刷装置２に対し応答確認を行う。すなわち、応答確認部６４により、リアルタイムコマンドで構成された応答要求コマンドを、印刷装置２に送信する（Ｓ８）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの応答要求コマンド（応答要求）を通信インターフェース２１で受信し（Ｓ９）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、応答要求コマンドであると判定する（Ｓ１０）。そして、応答送信部５６により、応答要求コマンドに対する応答をホスト装置１に通信インターフェース２１で送信（返信）する（Ｓ１１）。ホスト装置１は、これを受けて応答を確認する。
【００７１】
この応答確認部６４による応答確認において、印刷装置２からの応答が確認されなかった場合（Ｓ１２：Ｎｏ）には、更新データファイルから、更新データファイルに記憶された全てのモジュールの更新データ（全ユニット）を抽出し、抽出した更新データを、送信用データとして、印刷装置２に送信する（Ｓ１３）。このとき、各更新データをｍｏｔ形式に変換すると共に、各更新データに対し、各更新データの書き込み先のアドレスを付加して送信する。これに対し、印刷装置２は、強制書き換えモードであるため、第２データ受信部６０により、ホスト装置１からの送信用データ（全てのモジュールの更新データ）を通信インターフェース２１で受信し（Ｓ１４）、プログラム更新部５９により、受信した送信用データに基づいて、装置制御プログラム３６の更新処理を行う（Ｓ１５）。すなわち、上記書き込み先のアドレスに従って、各モジュールのファームウェアおよび設定情報を書き換える。これにより、本更新処理を終了する。
【００７２】
一方、応答確認部６４による応答確認において、印刷装置２からの応答が確認された場合（Ｓ１２：Ｙｅｓ）には、装置情報取得部６５により、リアルタイムコマンドで、印刷装置２から、印刷装置２の装置情報を取得する。すなわち、装置情報取得部６５により、リアルタイムコマンドで構成された情報要求コマンドを、印刷装置２に送信する（Ｓ１６）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの情報要求コマンド（情報要求）を通信インターフェース２１で受信し（Ｓ１７）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、情報要求コマンドであると判定する（Ｓ１８）。そして、装置情報送信部５７により、印刷装置２の装置情報（プリンターＩＤ、モジュール構成情報および各ファームウェアのバージョン情報）をホスト装置１に通信インターフェース２１で送信（返信）する（Ｓ１９）（モジュール構成送信ステップ）。ホスト装置１は、これを受信して、印刷装置２の装置情報を取得する。
【００７３】
印刷装置２の装置情報を取得したら、ホスト装置１は、ＩＤ確認部６６により、更新データファイルのプリンターＩＤが、印刷装置２のプリンターＩＤと一致するか否かを判定する（Ｓ２０）。すなわち、ファイル解析部６２によって取得したプリンターＩＤと、装置情報取得部６５によって取得したプリンターＩＤと、を比較して、両プリンターＩＤが一致するか否かを判定する。両プリンターＩＤが一致しない場合（Ｓ２０：Ｎｏ）には、エラーとし、本更新動作を終了する。
【００７４】
一方、両プリンターＩＤが一致した場合（Ｓ２０：Ｙｅｓ）には、モード切替要求部６３により、リアルタイムコマンドで、印刷装置２に対し、強制書き換えモードに切り替える旨のモード切替要求を行う。すなわち、モード切替要求部６３により、リアルタイムコマンドで構成された、強制書き換えモードに切り替える旨のモード切替コマンドを、印刷装置２に送信する（Ｓ２１）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からのモード切替コマンドを通信インターフェース２１で受信し（Ｓ２２）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、モード切替コマンドであると判定する（Ｓ２３）。そして、第２モード切替部５８により、当該モード切替コマンドに従って、印刷装置２のモードを、情報応答モードから強制書き換えモードに切り替える（Ｓ２４）。
【００７５】
その後、データ選別部６７により、装置情報取得部６５によって取得したモジュール構成情報に基づいて、更新データファイルに記憶された全てのモジュールの更新データから、印刷装置２に搭載された１以上のモジュールの更新データを選別する（Ｓ２５）。更新データを選別したら、更新時間算出部６９により、選別した更新データにおける合計更新時間を算出する（Ｓ２６）。その後、送信用データ生成部６８により、選別した更新データによって送信用データを生成する（Ｓ２７）。
【００７６】
送信用データを生成したら、通信種類取得部７０により、送信用データを印刷装置２に送信する通信の種類を取得する（Ｓ２８）。そして、データ送信部７１により、１回当たりの送信データ量が、取得した通信の種類に応じた所定のデータ量となるように、送信用データを分割して送信する（Ｓ２９）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの送信用データを通信インターフェース２１で受信し（Ｓ３０）（更新データ受信ステップ）、プログラム更新部５９により、受信した送信用データに基づいて、装置制御プログラム３６の更新処理を行う（Ｓ３１）（プログラム更新ステップ）。すなわち、記憶部３２に記憶された装置制御プログラム３６における各ファームウェアおよび各設定情報を、送信用データに記憶されたものにそれぞれ書き換える。
すなわち、更新データ受信ステップでは、ホスト装置１から、送信したモジュール構成情報に基づき複数のモジュールから選別された１以上のモジュールの更新データを受信する。ひいては、更新データ受信ステップでは、ホスト装置１との通信の種類に応じた所定のデータ量内に分割して送信された更新データを受信する。
【００７７】
送信用データを送信したら、ホスト装置１は、接続確認部７２により、印刷装置２との接続確認をポーリングする（Ｓ３２）。そして、更新時間算出部６９により算出した合計更新時間に達しても、印刷装置２との接続が確認されなかった場合（Ｓ３３：Ｎｏ）には、上記応答確認の工程で応答が確認されたかった場合と同様、更新データファイルから、更新データファイルに記憶された全てのモジュールの更新データ（全ユニット）を抽出し、抽出した更新データを、送信用データとして、印刷装置２に送信する（Ｓ３４）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの送信用データ（全てのモジュールの更新データ）を通信インターフェース２１で受信し（Ｓ３５）、プログラム更新部５９により、受信した送信用データに基づいて、装置制御プログラム３６の更新処理を行う（Ｓ３６）。これにより、本更新処理を終了する。
【００７８】
一方、合計更新時間に達する前に印刷装置２との接続が確認された場合（Ｓ３３：Ｙｅｓ）には、まず、モード切替要求部６３により、リアルタイムコマンドで、印刷装置２に対し、情報応答モードに切り替える旨のモード切替要求を行う。すなわち、モード切替要求部６３により、リアルタイムコマンドで構成された、情報応答モードに切り替える旨のモード切替コマンドを、印刷装置２に送信する（Ｓ３７）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からのモード切替コマンドを通信インターフェース２１で受信し（Ｓ３８）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、モード切替コマンドであると判定する（Ｓ３９）。そして、第２モード切替部５８により、当該モード切替コマンドに基づき、印刷装置２のモードを、強制書き換えモードから情報応答モードに切り替える（Ｓ４０）。その後、バッファ消去部５４により、送受信バッファ４６内のデータを消去する（Ｓ４１）。
【００７９】
その後、ホスト装置１は、応答確認部６４により、リアルタイムコマンドで、印刷装置２に対し、応答確認を行う。すなわち、応答確認部６４により、リアルタイムコマンドで構成された応答要求コマンドを、印刷装置２に送信する（Ｓ４２）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの応答要求コマンドを通信インターフェース２１で受信し（Ｓ４３）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、応答要求コマンドであると判定する（Ｓ４４）。そして、応答送信部５６により、応答要求コマンドに対する応答をホスト装置１に通信インターフェース２１で送信（返信）する（Ｓ４５）。ホスト装置１は、これを受けて、応答の確認を行う。
【００８０】
印刷装置２からの応答が確認されたら、装置情報取得部６５により、リアルタイムコマンドで、印刷装置２から、印刷装置２の装置情報を取得する。すなわち、装置情報取得部６５により、リアルタイムコマンドで構成された情報要求コマンドを、印刷装置２に送信する（Ｓ４６）。これに対し、印刷装置２は、第２データ受信部６０により、ホスト装置１からの情報要求コマンドを通信インターフェース２１で受信し（Ｓ４７）、第２コマンド解析部５５により、受信したデータに対しコマンド解析を行い、受信したデータが、情報要求コマンドであると判定する（Ｓ４８）。そして、装置情報送信部５７により、印刷装置２の装置情報（プリンターＩＤ、モジュール構成情報および各ファームウェアのバージョン情報）をホスト装置１に通信インターフェース２１で送信（返信）する（Ｓ４９）。ホスト装置１は、これを受信して、印刷装置２の装置情報を取得する。
【００８１】
装置情報を取得したら、更新後のバージョン情報と、更新データファイルのバージョン情報とを、各ファームウェアのそれぞれについて比較し、両バージョン情報が一致するか否かを、各ファームウェアのそれぞれについて判定する（Ｓ５０）。いずれのファームウェアについても、両バージョン情報が一致すると判定された場合（Ｓ５０：Ｙｅｓ）には、装置制御プログラム３６の更新処理が正常に行われたと判断し、本更新動作を終了する。一方、いずれかのファームウェアについて、両バージョン情報が一致しないと判定された場合（Ｓ５０：Ｎｏ）には、リカバリー手順表示部７４により、ディスプレイ８にリカバリー手順を表示して（Ｓ５１）、本更新動作を終了する。
【００８２】
以上のような構成によれば、印刷装置２において、モジュール構成情報をホスト装置１へ送信し、ホスト装置１において、印刷装置２のモジュール構成情報を取得し、取得したモジュール構成情報に基づき、印刷装置２が搭載したモジュールの更新データを選別して印刷装置２に送信し、印刷装置２は更新データにより装置制御プログラム３６の更新処理を行う。このように、印刷装置２のモジュール構成に合わせて、必要な更新データを受信して更新処理する構成であるため、搭載するモジュールが異なる複数のモデルが存在する印刷装置２の更新処理に係り、ホスト装置１から印刷装置２が受信する更新データのデータ量を極力少なくすることができる。これによって、データ送信にかかる時間を低減させることができる。また、受信途中で、ノイズの影響やユーザーによる印刷装置２の電源をオフするなど誤った操作によりデータ受信が失敗するリスクを低減させることができる。
【００８３】
また、送信用データ（更新データ）を分割して受信すると共に、１回当たりの受信データ量が、通信の種類に応じて決定されるため、例えば、通信の種類が、通信速度の遅いものの場合に、１回当たりの受信データ量を少なくすることで、１回当たりの通信時間を一定または一定以下にすることができる。すなわち、通信の種類が、通信速度の遅いものであった場合にも、１回の通信時間を、データ受信が失敗するリスクが少ない所定の通信時間まで短くすることができる。そのため、データ受信が失敗するリスクをより低減させることができる。
【００８４】
さらに、接続確認のポーリングのタイムアウト時間を、選別した更新データにおける合計更新時間とすることで、接続確認のポーリングによる更新終了の成否判定を適切に行うことができる。これよって、更新処理が終わった否かを判定する判定処理に不要に時間がかかってしまうのを避けることができ、更新動作にかかる時間を少なくすることができる。
【００８５】
なお、上記実施形態において、ホスト装置１が更新時刻を付加して送信用データを送信し、印刷装置２による上記更新処理を所望の時刻に行わせる構成でも良い。すなわち、ホスト装置１が、更新時刻を付加して、送信用データを送信する。これに対し、印刷装置２が、送信用データに付加された更新時刻を受信し（更新データ受信ステップ）、これを記憶部３２に記憶しておく。そして、記憶された当該更新時刻に、送信用データに基づく更新処理を行う（プログラム更新ステップ）。このように、印刷装置２が、更新データ受信ステップ（Ｓ３０）では、更新データに付加された更新時刻を受信し、プログラム更新ステップ（Ｓ３１）では、更新データに付加された更新時刻に、更新データに基づく更新処理を行う。かかる構成によれば、所望の時刻（例えば、業務終了時等）に、印刷装置２に更新処理を行わせることができる。ひいては、更新データのデータ送信と、更新データに基づく更新処理とを別々の時刻に行うことができるため、更新データのデータ送信が終わった時点で、一度、印刷装置２を印刷可能な状態に戻すことができる。よって、ユーザーが更新データのデータ送信を指示してから、印刷装置２が印刷可能な状態になるまでの時間を短くすることができ、ユーザーの待ち時間を少なくすることができる。
なお、各モジュールの更新データ毎に、更新時刻を付加（設定）して送信用データを送信し、印刷装置２による各更新データに基づく更新処理を、それぞれの更新時刻に行わせる構成でも良い。
【００８６】
また、上記実施形態において、データ送信部７１により、１分割単位の送信の都度、送信の成否確認を行う構成でも良い。すなわち、ホスト装置１は、１分割単位の送信の都度、問い合わせコマンドを送信する。これに対し、印刷装置２は、受信したデータのデータ量を記憶しておき、問い合わせコマンドを受けて、１分割単位の受信の都度、記憶したデータ量（確認情報）を返信する。そして、ホスト装置１は、印刷装置２から返信されたデータ量に基づいて、送信の成否確認を行う。このように、印刷装置２が、更新データ受信ステップ（Ｓ３０）において、１分割単位の受信の都度、受信の確認情報（記憶したデータ量）を送信する。かかる構成によれば、通信の種類に応じた所定のデータ量送る都度、受信の成否確認を行う構成であるため、例えば、一定または一定以下の通信時間のデータ受信の都度、受信の成否確認を行うことができる。これによって、データ受信が失敗したときにホスト装置１が再送信を行うことができ、さらに再送信の通信時間を少なくすることができ、再送信にかかる時間を最小限に抑えることができる。
【００８７】
さらに、上記実施形態において、選別した更新データについて、モジュール毎の更新データを、通信の種類に応じた上記所定のデータ量に合わせて、統合または分割して送信し、印刷装置２がこれを受信する構成でも良い。別の言い方をすれば、印刷装置２が、更新データ受信ステップ（Ｓ３０）において、ホスト装置１との通信の種類に応じた所定のデータ量内となるように、モジュール単位で統合または分割して送信された更新データを受信する。かかる場合、モジュール毎の更新データが、上記所定のデータ量より大きい場合には、更新データを分割して送信し、モジュール毎の更新データが、上記所定のデータ量より小さい場合には、２以上の更新データを統合して送信する。
【００８８】
なお、上記実施形態においては、モジュール構成情報に基づき、印刷装置２に必要な更新データを選別する構成であったが、モジュール構成情報に加え、各モジュールにおける各ファームウェアのバージョン情報に基づいて、印刷装置２に必要な更新データを選別する構成でも良い。すなわち、モジュール構成情報に基づいて選別した更新データのうち、ファイル解析部６２で取得した各ファームウェアのバージョン情報と、装置情報取得部６５で取得した各ファームウェアのバージョン情報と、が一致しないものを選別し、両バージョン情報が一致するものを除外する構成でも良い。
【００８９】
また、上記実施形態においては、ホスト装置１側で、選別した更新データにおける合計更新時間を算出し、算出した合計更新時間を利用して印刷装置２との接続確認を行う構成であったが、印刷装置２側で、選別した更新データにおける合計更新時間を算出し、算出した合計更新時間を利用してホスト装置１との接続確認を行う構成でも良い。すなわち、印刷装置２が、受信した更新データ（送信用データ）における合計更新時間を算出する更新時間算出ステップと、更新データ受信ステップ（Ｓ３０）により更新データ（送信用データ）を受信してから、算出した合計更新時間に達するまで、ホスト装置１との接続確認をポーリングする接続確認ステップと、を実行する。かかる構成によれば、ポーリングのタイムアウト時間を、選別した更新データにおける合計更新時間とすることで、接続確認のポーリングによる更新終了の成否判定を適切に行うことができる。
【００９０】
さらに、上記実施形態においては、印刷装置２のモジュール構成情報を取得し、これに基づいて、モジュール毎の更新データを選別する構成であったが、印刷装置２に、仕向け毎のモデルが存在する場合、印刷装置２の仕向けを示す仕向け情報を取得し、これに基づいて、仕向け毎の更新データを選別する構成でも良い。
すなわち、更新データファイルに、仕向け毎の更新データを記憶しておく。これに対し、ホスト装置１は、ファイル取得部６１により、当該更新データファイルを取得して、仕向け毎の更新データを取得する。その後、ホスト装置１は、仕向け情報を要求する仕向け情報要求を印刷装置２に送信する。これに対し、印刷装置２は、ホスト装置１から当該仕向け情報要求を受信すると、仕向け情報をホスト装置１に送信する（仕向け情報送信ステップ）。ホスト装置１は、これを受けて印刷装置２の仕向け情報を取得する。その後、ホスト装置１は、データ選別部６７により、取得した仕向け情報に基づいて、取得した仕向け毎の更新データから、印刷装置２に必要な更新データを選別する。そして、送信用データ生成部６８により、ここで選別した更新データによって送信用データを生成し、データ送信部７１により、生成した当該送信用データが送信する。これに対し、印刷装置２は、第２データ受信部６０により、当該送信用データを受信し（更新データ受信ステップ）、プログラム更新部５９により、当該送信用データに基づいて、装置制御プログラム３６を更新する。
このように、印刷装置２が、ホスト装置１から、仕向け情報要求を受信すると、仕向け情報をホスト装置１に送信する仕向け情報送信ステップを、更に実行し、更新データ受信ステップ（Ｓ３０）において、ホスト装置１から、送信した仕向け情報に基づき選別された１以上のモジュールの更新データを受信する。かかる構成によれば、仕向け毎のモデルが存在する印刷装置２についても、更新処理に係る印刷装置２が受信するデータのデータ量を極力少なくすることができる。
【００９１】
なお、上記実施形態においては、更新成否判定部７３（更新成否判定ステップ（Ｓ４０））において、バージョン情報を比較して、更新処理の成否判定を行う構成であったが、チェックサムを用いて、更新処理の成否判定を行う構成でも良い。すなわち、印刷装置２による更新処理の終了後、印刷装置２からチェックサム情報を取得し、これに基づいて、更新処理の成否判定を行う構成でも良い。
【００９２】
また、上記実施形態においては、装置情報取得部６５（装置情報取得ステップ）において、プリンターＩＤ、印刷装置のモジュール構成情報および各モジュールにおける各ファームウェアのバージョン情報を取得する構成であったが、これに加え、印刷装置２における、インターフェースやフォントの種類、ヘッド解像度、紙幅等の仕様情報を取得する構成でも良い。
【符号の説明】
【００９３】
１：ホスト装置、  ２：印刷装置、  ２１：通信インターフェース、  ３１：制御部、  ３２：記憶部、  ３６：装置制御プログラム、  ５９：プログラム更新部、  ６５：装置情報取得部、  ６７：データ選別部、  ６８：送信用データ生成部、  ７１：データ送信部、  ＳＹ：印刷システム。
【図１】
2019185802.tif 000003
【図２】
2019185802.tif 000004
【図３】
2019185802.tif 000005
【図４】
2019185802.tif 000006
【図５】
2019185802.tif 000007
【図６】
2019185802.tif 000008