(57)【要約】【課題】  ファームウェアの更新に伴なう弊害を防止し得る印刷装置を提供する。【解決手段】  印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置１０において、更新データを取得すると、自己の動作状態の確認を行う確認部３４０と、確認部の確認結果に応じて、更新処理を開始する更新処理部３７０とを備える。【選択図】        図３
2006255955.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置において、
前記更新データを取得すると、
自己の動作状態の確認を行う確認部と、
前記確認部の確認結果に応じて、前記更新処理を開始する更新処理部とを備えることを特徴とする印刷装置。
【請求項２】
前記確認部は、前記印刷処理のための未処理の印刷データの有無を確認する未処理データ確認部を備えることを特徴とする請求項１記載の印刷装置。
【請求項３】
前記確認部は、自己の動作異常を確認する動作確認部を備えることを特徴とする請求項１記載の印刷装置。
【請求項４】
前記確認部は、取得した前記更新データが当該印刷装置に適合するか否かを判定する適合判定部を備えることを特徴とする請求項１記載の印刷装置。
【請求項５】
前記適合判定部は、装置種別、更新データの版数、データハッシュ値の少なくとも一つの適合判断を行うことを特徴とする請求項４記載の印刷装置。
【請求項６】
前記更新データを電子メールで取得するためのメール通信部を備えることを特徴とする請求項１記載の印刷装置。
【請求項７】
前記更新データは、不揮発性の記憶部に保持されることを特徴とする請求項１記載の印刷装置。
【請求項８】
前記記憶部に前記更新データが格納されると、該更新データが記憶部に格納させていることを示す格納情報を生成し、該格納情報を不揮発性の記憶部に保持することを特徴とする請求項７記載の印刷装置。
【請求項９】
前記確認部は、当該印刷装置が起動すると、前記格納情報の有無を確認し、該格納情報があることを確認すると、前記記憶部で保持する更新データに基づいて更新処理を開始することを特徴とする請求項８記載の印刷装置。
【請求項１０】
印刷データに基づいて印刷処理を行う印刷装置のための制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する制御プログラムの更新方法において、
前記更新データを取得すると、
自己の動作状態の確認を行うこと、
確認結果に応じて、前記更新処理を開始することを特徴とする制御プログラムの更新方法。
【請求項１１】
前記動作状態の確認は、前記印刷処理のための未処理の印刷データの有無を確認することを特徴とする請求項１０記載の制御プログラムの更新方法。
【請求項１２】
前記動作状態の確認は、自己の動作異常を確認することを特徴とする請求項１０記載の制御プログラムの更新方法。
【請求項１３】
前記動作状態の確認は、取得する更新データが当該印刷装置に適合するか否かを判定することを特徴とする請求項１０記載の制御プログラムの更新方法。
【請求項１４】
前記適合判定は、装置種別、更新データの版数、データハッシュ値の少なくとも一つの適合判断を行うことを特徴とする請求項１３記載の制御プログラムの更新方法。
【請求項１５】
前記更新データは電子メールで取得することを特徴とする請求項１０記載の制御プログラムの更新方法。
【請求項１６】
前記更新データは、不揮発性の記憶部に保持されることを特徴とする請求項１０記載の制御プログラムの更新方法。
【請求項１７】
前記記憶部に前記更新データが格納されると、該更新データが記憶部に格納されたことを示す格納情報を生成し、該格納情報を不揮発性の記憶部に保持することを特徴とする請求項１６記載の制御プログラムの更新方法。
【請求項１８】
印刷装置が起動すると、前記格納情報の有無を確認し、
前記格納情報があることを確認すると、前記記憶部で保持する更新データに基づいて更新処理を開始することを特徴とする請求項１７記載の制御プログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置の制御プログラム更新に関するものである。
【背景技術】
【０００２】
印刷データに基づいて印刷処理を行う印刷装置は、印刷処理のために装置を制御する制御プログラム（ファームウェア）を保持する記憶部を備えている。記憶部に保持されたファームウェアは、印刷処理の機能向上のために適宜更新がおこなわれており、ネットワークを介して取得する更新データに基づいて更新処理を行う印刷装置が特許文献１に開示されている。
【０００３】
特許文献１によれば、ネットワークを介して取得する更新データは分割されて伝送され、分割された更新データの全てが揃ったら、ファームウェアの更新を行うことを開示している。
【特許文献１】特開２０００−１２３４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、この種のネットワークによりファームフェアの更新処理が行われる印刷装置は、ネットワークに接続する更新者の端末と離れた場所に配置されている。従って、更新者は、印刷装置の動作状態を把握することができない。このような設置環境において、更新データが更新者の端末から印刷装置に送信され、印刷装置は取得した更新データに基づいてファームウェアの更新を行っている。
【０００５】
印刷装置は、ネットワークを介して取得する更新データに基づいてファームウェアの更新処理を行った後、該更新処理においてリブートと称される再起動が行われる。
従って、例えば未処理の印刷データが存在する印刷処理中に更新処理を行うと、前記したリブートにより、未処理の印刷データが消去されてしまい、これが問題となっていた。また、印刷装置が例えばジャム（紙詰まり）やカバーの開口など人的介入を必要とする異常状態中に更新処理を行うと、異常状態が原因で更新処理が正常に行えないことも問題となっていた。
【０００６】
以上の問題に鑑みて、本発明の目的は、更新者が直ちに確認できない離れた場所に配置された印刷装置において、ファームウェアの更新に伴なう弊害を防止し得る印刷装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、以上の点を解決するために、次の構成を採用する。
印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置において、更新データを取得すると、自己の動作状態の確認を行う確認部と、確認部の確認結果に応じて、更新処理を開始する更新処理部とを備えることを特徴とする。
【０００８】
印刷データに基づいて印刷処理を行う印刷装置のための制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する制御プログラムの更新方法において、更新データを取得すると、自己の動作状態の確認を行うこと、確認結果に応じて、更新処理を開始することを特徴とする。
【発明の効果】
【０００９】
本発明の印刷装置によれば、自己の動作状態を確認し、更新処理に問題が無いことを確認した後、ファームウェアの更新処理を行う。すなわち、更新処理に伴なう再起動が生じても、例えば未処理の印刷データが消去されて印刷処理ができないなどの弊害を防止することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について、図を用いて詳細に説明する。以下の説明では、各実施の形態に用いる図面について同一の構成要素は同一の符号を付し、かつ重複する説明は可能な限り省略する。尚、実施例では印刷装置としてプリンタを例に説明を行う。
【実施例１】
【００１１】
本発明のプリンタ１０は、図１に示すように、ファームウェアの更新者の端末２０に、インターネットなどのネットワーク３０を介して接続しており、端末２０からプリンタ１０へ送信された電子メールが印刷装置１０で受信可能にネットワーク構築されいる。
【００１２】
プリンタ１０は、図２に示すように、ネットワークを介してデータを取得し、取得したデータに基づいて処理を行うコントロールユニット（以降ＣＵ部と略称する）１００と、該コントロールユニット１００からのデータに基づいて印刷処理を行うプリンタユニット（以降ＰＵ部と略称する）２００とを備えており、ＣＵ部１００はＰＵ部２００に印刷処理を行わせるためのＶｉｄｅｏ  Ｄａｔａと称される印刷データをビットマップ化したデータをシリアル伝送している。
【００１３】
ＣＵ部１００は、ネットワーク接続するためのＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）と称されるネットワークインタフェース１１０と、操作表示部１２０と、ＰＵ部２００とシリアル通信するためのシリアルインタフェース制御部１３０と、プログラムを格納するＥＰ−ＲＯＭ（消去およびプログラム可能な読出し専用メモリ）１４０と、記憶部としてのＳ−ＲＡＭ１５０と、不揮発性メモリとしてのＮＶ−ＲＡＭ１６０と、印刷ページ毎にラスター展開を行う画像処理部１７０と、プログラムに基づいてＣＵ部における制御を行うＣＰＵ１８０と、ＣＵ部におけるバス１９０とを備える。
【００１４】
ネットワークインタフェース１１０は、ネットワークを介して端末２０から印刷データや電子メールを受信するための制御を行う。
ところで、電子メールには、必要に応じて当該プリンタ１０のプログラムを更新するための更新データが添付されており、該更新データに基づいてプリンタ１０のプログラムが更新される。
操作表示部１２０は、表示メニューに基づく入力を受けると共に、プリンタの動作状況を表示する。
【００１５】
シリアルインタフェース制御部１３０は、ＰＵ部２００とシリアル通信するための通信制御を行う。
ＥＰ−ＲＯＭ１４０は、ＣＰＵ１８０のためのプログラムを保持しており、ＣＰＵ１８０は、該プログラムをＥＰ−ＲＯＭ１４０から順次読出し、該プログラムに従って各種機能の制御を行う。尚、各機能は、図３に示されているように、データ取得部、確認部、データ処理部および通信制御処理部などの機能ブロックとして後に詳述する。
【００１６】
Ｓ−ＲＡＭ１５０は、データを受信するための受信バッファやＣＰＵ１８０および画像処理部１７０の処理で作業領領域として用いられたり処理結果を保持したり、後述するページバッファとして用いられる。
ところで受信バッファは構造化されており、受信したデータは第１バッファに一旦格納された後、該第１バッファに保持するデータが第２受信バッファに格納される。第２受信バッファで保持するデータが逐次読み出され、後述するデータ処理部でデータ処理が行われる。
【００１７】
ＮＶ−ＲＡＭ１６０はフラッシュメモリと称される不揮発性の記憶部であり、プリンタ１０の電源がＯＦＦされても、当該ＮＶ−ＲＡＭ１６０で保持するデータは消去されることなく保持される。ＮＶ−ＲＡＭ１６０は、操作表示部１２０で設定された内容（メニュー設定内容）を保持する。
【００１８】
画像処理部１７０は、ネットワークインタフェース１１０で受信した描画系のコマンドで表現された印刷データに基づいてラスター処理を行う。画像処理部１７０は、ラスタ処理で１ページ毎にページ画像データを生成し、該ページ描画データをＮＶ−ＲＡＭ１６０の領域確保したページバッファに保持する。
【００１９】
ページバッファに保持されたページ描画データは、ＰＵ部２００からの読出し指示で１ドットライン毎に読み出され、読み出したデータはビデオデータとして図示しない通信機能により、ＰＵ部２００へ送られる。
【００２０】
一方、ＰＵ部２００は、ＣＵ部１００とシリアル通信するためのシリアルインタフェース制御部２１０と、記憶部としてのＳ−ＲＡＭ２２０と、ＰＵ部２００におけるプログラムを格納するフラッシュＲＯＭ２３０と、ＣＵ部１００からビデオデータを取得するためのビデオデータ取得部２４０と、取得したビデオデータに基づいて画像を形成する各機構の駆動を制御する駆動部２５０と、設定情報を保持するＮＶ−ＲＡＭ２６０と、フラッシュＲＯＭ２３０で保持するプログラムを読出し、該プログラムに基づいてＰＵ部２００における制御を行うＣＰＵ２７０と、ＰＵ部におけるバス２８０とを備える。
【００２１】
ＰＵ部２００のＳ−ＲＡＭ２２０は、ＣＰＵ２７０の処理で作業領域として用いられたり、ＣＵ部１００からの更新データを一時的に保持する。
フラッシュＲＯＭ２３０は、ＰＵ部２００におけるプログラムをファームウェアとして保持しており、該プログラムを書換え可能に保持する。尚、本実施例では、フラッシュＲＯＭ２３０で保持するプログラムが更新データに基づいて更新される。
【００２２】
ビデオデータ取得部２４０は、ビデオデータをＣＵ部１００から取得するための制御を行う。
駆動部２５０は、ビデオデータに基づいて画像を形成するための各機構の駆動制御を行う。
ＮＶ−ＲＡＭ２６０は、駆動部２５０において各機構の駆動制御に必要な設定情報を保持する。この設定情報は、例えば印刷位置に関する情報であったり、印刷濃度に関する情報などである。
【００２３】
ＣＰＵ２７０は、フラッシュＲＯＭ２３０で保持するプログラムに従って、各種機能の制御を行う。尚、各機能は、図３に示されているように、確認部、データ更新部などの機能ブロックとして後に詳述する。
【００２４】
ここで、ＣＰＵ１８０およびＣＰＵ２７０がプログラムに基づいて制御する各機能を図３のブロック図を用いて説明する。
プリンタ１０は、ネットワークを介してデータを取得するための制御を行うデータ取得部（ネットワーク通信部）３１０と、取得したデータを保持するための受信バッファ３２０と、取得したデータ種別に応じた処理を行うべく、印刷データであるときは画像処理を行い、更新データであるときは後述する更新処理部に出力するデータ処理部３３０と、自己の動作状態および更新データの適合とその内容を確認する確認部３４０と、画像処理されたページデータを保持するページバッファ３５０と、ページバッファからビデオデータを取得して画像を形成する印刷処理部３６０と、更新データに基づいてプログラムの更新を行う更新処理部３７０とを備える。
【００２５】
尚、図３において、確認部３４０および３８０、印刷処理部３６０および３９０、更新処理部３７０および４００は、ＣＵ部１００およびＰＵ部２００のそれぞれに設けられているが、これはＣＵ部１００におけるプログラムおよびＰＵ部２００におけるプログラムに基づいてそれぞれの確認部３４０および３８０、印刷処理部３６０および３９０、更新処理部３７０および４００が機能することを示している。
【００２６】
データ取得部３１０は、パケット処理部３１１と、印刷データなどの通常データ処理部３１２と、メール処理部３１３とを備えている。
パケット処理部３１１は、ネットワークインタフェース１１０で取得するパケットを図示しない第１受信バッファに一時的に保持しており、該第１受信バッファで保持するパケットを読出し解析を行い、該パケットを通常データ処理部３１２またはメール処理部３１３の何れに送るか判定を行う。
【００２７】
通常データ処理部３１２は、パケット処理部３１１から送られたパケットを印刷データや制御データとして処理すべく、該データを第２の受信バッファとしての受信バッファ３２０に保持する。
メール処理部３１３は、パケット処理部３１１から送られたパケットに添付された更新データを取得し、該データを第２の受信バッファとしての受信バッファ３２０に保持する。
尚、受信バッファ３２０において、通常データ処理部３１２からのデータと、メール処理部３１３からのデータは、それぞれ異なる領域に保持される。
【００２８】
確認部３４０は、適合判定部３４１および動作確認部３４２を備えており、適合判定部３４１は、更新データの適合判断と更新データのハッシュチェックとを行い、動作確認部３４２はデータの受信処理中であるか否かを確認し、印刷処理中であるか否かも確認し、更に自己（プリンタ）の異常状態を確認する。確認部３４０は、確認指示されたとき、各状態の確認を行ってもよいし、最新の状態を監視して保持しておき、指示に基づき最新の状態を通知するようにしてもよい。
【００２９】
データ処理部３３０は、受信バッファ３２０からデータを読出し、読出したデータが更新データであるときは、更新処理部３７０へ出力し、印刷データであるときは、前記した画像処理部１７０における処理を行う。すなわちデータ処理部３３０は、印刷データに基づいてラスター処理を行い、ページ画像データを生成し、生成したページ画像データをページバッファに保持する。
【００３０】
印刷処理部３６０は、ページバッファ３５０に保持するページ画像データを１ドットライン毎に読出し、読み出した１ドットラインのデータをビデオデータとしてＣＵ部１００からＰＵ部２００へ出力する。ＰＵ部２００においてビデオデータを受信した印刷処理部３９０は、該ビデオデータに基づいて印刷媒体に画像を１ドットライン毎に形成するように、１ページ分の画像をする。このとき、印刷処理部３９０は、前記した駆動部２５０の制御を行い、紙送り制御や図示しない画像形成ドラムなどの制御又はインク噴射ノズルなどの制御が行われる。
【００３１】
更新処理部３７０は、シリアルＩ／Ｆを介してＣＵ部１００およびＰＵ部２００間で更新データの授受を行っており、ＣＵ部１００で取得した更新データは、先ず確認部３４０の適合判定部３４１で更新データのハッシュチェックが行われる。その後、ハッシュチェックに問題がないと、動作確認部３４２で装置状態をチェックし問題がないと、更新処理部３７０は更新データに基づいてＰＵ部２００のフラッシュＲＯＭ２３０で保持するプログラムの更新を行う。
【００３２】
次に本発明のプリンタ１０の動作概念を図４のフローチャートを用いて説明し、その後詳細な動作を説明する。
尚、以降の動作説明では、プログラムの更新を中心に説明を行う。
データ取得部３１０でパケットに受信処理を行い（ステップＳ４０１）、受信したパケット（データ）の解析処理を行う（ステップＳ４０２）。
【００３３】
解析処理で更新データであると判断されると、該更新データの適合判断が適合判定部３４１で行われる（ステップＳ４０３）。
適合する更新データであると判断されると、動作確認部３４２はデータ受信中および処理中であるか否かを判断する（ステップＳ４０４）。
【００３４】
受信中ではないとき、第１受信バッファから第２受信バッファに更新データが転送される（ステップＳ４０５）。その後、動作確認部３４２は、印刷処理中であるか否かをページバッファ３５０の保持状況に基づいて判断すると共に、例えばジャム（紙詰まり）やカバーの開口などの異常状態を判定する（ステップＳ４０６）。尚、動作確認部３４２は、ジャムの発生やカバーの開口はＰＵ部２００に問合せることにより、これらの情報を取得する。
印刷処理中および異常状態中ではないとき、更新処理部３７０は更新データに基づいてファームウェア（プログラム）の更新を行うため、更新データを更新処理部４００に送り更新する（ステップＳ４０７）。その後、更新結果が利用者に通知される（ステップＳ４０８）。
【００３５】
次に、各ステップにおける動作を詳細に説明する。
受信処理と解析処理の詳細な動作は、図５のフローチャートに示すように、データ取得部３１０でパケット（データ）を受信すると（ステップＳ５０１）、該データは第１受信バッファに保持される。パケット処理部３１１は受信したパケットで示される電子メールにファイルが添付されているか判断し、ファイルが添付されている場合には、添付ファイルの名称をチェックする（ステップＳ５０２）。
【００３６】
この判定でファイル名が更新データを示す例えば「ｐｕｆｗ．ｔｘｔ」ではないとき（ステップＳ５０３）、第１受信バッファに保持されたデータは、通常データ処理部３１２に送られて通常のデータ処理が行われる（ステップＳ５０４）。更新データを含む電子メールは、「ｐｕｆｗ．ｔｘｔ」ファイルと、該「ｐｕｆｗ．ｔｘｔ」で指定された更新データとが添付されている。
【００３７】
一方、前記したステップＳ５０３において、更新データが添付されているとき、適合判定部３４１は、該添付データの内容を解析すべく、受信したファイルを開く（ステップＳ５０６）。
【００３８】
ファイルを開くと、図１３に示すように１ライン目に例えば「ＰＲ５００．ＰＲＮ」、「ＰＲ５００．ＰＲＮ」なる電子メールに添付された更新データファイル名が示されており、２ライン目に例えば「Ｐｒｉｎｔｅｒ５００」、「Ｐｒｉｎｔｅｒ５００Ｆ」、「Ｐｒｉｎｔｅｒ６００」、「Ｐｒｉｎｔｅｒ６００ＰＳ」なる該更新データに対応する機種名が示されており、３ライン目に例えば「０２．４３」、「０３．６７」なる該更新データに対応するＣＵ部１００におけるプログラムのバージョン（この場合、Ｖ０２．４３〜Ｖ０３．６７の間が有効）が示されており、４ライン目に例えば「０１．０５．３３」なる該更新データに対応するＰＵ部２００におけるバージョンが示されている。尚、図１３において、当該プリンタ１０における適合が下線で示されている。
【００３９】
適合判定部３４１は、第１ラインに示された内容を確認し「ファイル名」を取得し、取得した「ファイル名」をＳ−ＲＡＭ１５０に保持する（ステップＳ５０７）。ところで、第１ラインには、図１３に示すように、複数の「ファイル名」が示されている場合があり、その全ての「ファイル名」がＳ−ＲＡＭ１５０で保持される。
【００４０】
適合判定部３４１は、Ｓ−ＲＡＭ１５０で一時的に保持した「ファイル名」のファイルが添付されているか否かを確認し（ステップＳ５０８）、当該ファイル名のファイルが添付されていないとき（ステップＳ５０９）、エラー処理が行われる（ステップＳ５１０）。
一方、前記したステップＳ５０８において一時的に保持した「ファイル名」のファイルが添付されているとき、当該ファイルを第２受信バッファに保持する（ステップＳ５１１）。これを、一時的に保持している全ての「ファイル名」において行う（ステップＳ５１２）。
その後、ステップＳ５０６において開いたファイルを閉じる（ステップＳ５１３）。
【００４１】
次に、図４における更新データの適合判定（ステップＳ４０３）の動作を図６を用いて説明する。この処理は、図５のフローチャートにおけるステップＳ５０９およびステップＳ５１１の間で行われる。
適合判定は適合判定部３４１が行っており、該適合判定部３４１における更新データの適合判定の動作を図６のフローチャートに沿って説明する。
適合判定部３４１は、ファイル名が「ｐｕｆｗ．ｔｘｔ」のファイルを開く（ステップＳ６０１）。
【００４２】
適合判定部３４１は、ファイル名が「ｐｕｆｗ．ｔｘｔ」のファイルの２行目に示されたモデル名（機種名）を取得し（ステップＳ６０２）、該機種名内に当該プリンタの機種が示されている否か判断を行う（ステップＳ６０３）。「ｐｕｆｗ．ｔｘｔ」の２行目に当該プリンタの機種名が示されていない場合、更新データは不適合として、当該更新データに基づく更新処理は行われない（ステップＳ６１０）。
【００４３】
一方、前記したステップＳ６０３において、機種名が当該プリンタの機種を示すとき、適合判定部３４１は、ファイル名が「ｐｕｆｗ．ｔｘｔ」のファイルの３行目に示されたＣＵ部のプログラムの版数を取得し（ステップＳ６０４）、取得したプログラムの版数が当該プリンタのＣＵ部１００のプログラムの版数内であるか否かを判定し（ステップＳ６０５）、取得したＣＵ部のプログラムの版数が当該プリンタのＣＵ部１００のプログラムの版数内にないとき、更新データも基づく更新処理は行われない（ステップＳ６１０）。
【００４４】
前記したステップＳ６０５において、取得したＣＵ部のプログラムの版数が当該プリンタのＣＵ部１００のプログラムの版数内であるとき、適合判定部３４１は、ファイル名が「ｐｕｆｗ．ｔｘｔ」のファイルの４行目に示されたＰＵ部のプログラムの版数を取得し（ステップＳ６０６）、取得した版と、当該プリンタのＰＵ部２００のプログラムの版数とを比較する（ステップＳ６０７）。
【００４５】
この比較で４行目に示されたフＰＵ部のプログラムの版数が当該プリンタのＰＵ２００部のプログラムの版数より大きいとき、すなわちプログラムが新しいとき（ステップＳ６０８）、更新データは適合すると判断され（ステップＳ６０９）、小さいとき、すなわちプログラムが古いとき、不適合と判断される（ステップＳ６１０）。
尚、当該プリンタのＣＵ部１００のプログラムの版を示す情報は、ＥＰ−ＲＯＭ１４０又はＮＶ−ＲＡＭ１６０で保持されており、ＰＵ部２００のプログラムの版数を示す情報は、Ｓ−ＲＡＭ２２０又はＮＶ−ＲＡＭ２６０で保持されており、適合判定部３４１は、これらの記憶部から必要に応じて版数を示す情報を読出して適合判定を行う。
【００４６】
次に、図４におけるデータ受信中判定（ステップＳ４０４）の動作を図７を用いて説明する。
データ受信中判定は動作確認部３４２が行っており、該動作確認部３４２におけるデータ受信中判定処理の動作を図７のフローチャートに沿って説明する。
動作確認部３４２は、所定の時間内において、データの受信があるか否か判定する（ステップＳ７０１）。この判定で所定の時間内にデータの受信がある場合には、何らかの連続したデータをパケット単位で受信する恐れがある。ステップＳ７０１において、所定の時間内にデータ受信がないと、動作確認部３４２は、印刷データの受信を拒否する。尚、制御データは、継続して受信し、その対応を行う（ステップＳ７０２）。その後、未処理のデータの有無を確認し（ステップＳ７０３）、未処理のデータを処理する（ステップＳ７０４）。
【００４７】
ところで、図４におけるダウンロードデータ処理（ステップＳ４０５）は、ステップＳ４０４までの処理を終えた後、第１受信バッファに保持する更新データを第２受信バッファにダウンロードし、その後のＰＵ部２００における印刷処理中および異常状態中の判定を行う。この判定処理は、図８に示すように、動作確認部３４２は、ＣＵ部１００におけるページバッファ３５０においてページ画像データの有無を確認し、印刷待ちであるか否かを判定し（ステップＳ７０５）、ＣＵ部１００における印刷待ちデータが処理されるまで、プログラムの更新処理を待機状態とする。
【００４８】
ＣＵ部１００のページバッファ３５０において、全てのデータが処理された後、動作確認部３４２は、自己の動作における異常を確認し（ステップＳ７０６）、異常状態が解消されるまでプログラムの更新処理を待機状態とする。その後、ＰＵ部２００における未処理のデータ（１ドットラインデータ）を確認し（ステップＳ７０７）、ＰＵ部２００におけるデータ処理が終了するまで、すなわちプリンタ１０における印刷処理が終了するまでプログラムの更新処理を待機状態とする（ステップＳ７０８）。
【００４９】
次に、図４におけるファームウェアの更新処理（ステップＳ４０７）の動作を説明する。
先ず、ファームウェアの更新が正常に行われるときの更新処理部３７０の動作を、図９に示すＣＵ部１００およびＰＵ部２００におけるシーケンス図を用いて説明する。
ＣＵ部１００は、ＰＵ部２００に対し「フラッシュＲＯＭ書込みモード」を指定する（ステップＳ９０１）。指定を受けたＰＵ部２００は、ダウンロードされるデータのサイズの領域をＳ−ＲＡＭ２２０において確保し（ステップＳ９０２）、ダウンロードの準備が完了したことをＣＵ部１００に通知する（ステップＳ９０３）。
【００５０】
通知を受けたＣＵ部１００は、ＰＵ部２００へ更新データを送信する（ステップＳ９０４）。このとき、ＣＵ部１００は、図示しない時間監視タイマを起動する（ステップＳ９０５）。ＰＵ部２００は、ＣＵ部１００からの更新データをビデオデータ取得部２４０を介して取得すると、該更新データをＳ−ＲＡＭ２２０に保持し（ステップＳ９０６）、全ての更新データの取得を終えるとハッシュチェックを行い（ステップＳ９０７）、その結果をＣＵ部１００へ通知する（ステップＳ９０８）。
【００５１】
これにより、ＣＵ部１００からＰＵ部２００へ更新データを授受するとき、データ化けした更新データのチェックを行うことができる。
【００５２】
ハッシュチェックに問題がないとき、ＰＵ部２００はＳ−ＲＡＭ２２０に一旦保持した更新データをフラッシュＲＯＭ２３０ｂに書込み（ステップＳ９０９）、その後リブート（再起動）を指示し（ステップＳ９１０）、ＰＵ部２００の初期化が行われる（ステップＳ９１１）。
【００５３】
ところで、初期化が行われてＳ−ＲＡＭ２２０などのメモリで保持するデータが初期化されても、未処理の印刷データが存在しないことから、初期化に伴なって印刷データが消失するようなことはない。
初期化後、ＰＵ部２００は、初期化に伴ないＰＵ部２００の電源が投入されたことを示す「ＰＵ  Ｐｏｗｅｒ  ＯＮ  Ｒｅａｄｙ（Ｎｏｒｍａｌ）」をＣＵ部１００に通知する（ステップＳ９１２）。
【００５４】
「ＰＵ  Ｐｏｗｅｒ  ＯＮ  Ｒｅａｄｙ（Ｎｏｒｍａｌ）」通知を受けたＣＵ部１００は、起動している時間監視タイマを停止し（ステップＳ９１３）、その後「ＣＵ  Ｐｏｗｅｒ  ＯＮ  Ｒｅａｄｙ（Ｎｏｒｍａｌ）」をＰＵ部２００に通知し（ステップＳ９１４）、以降通常の動作を行う。
【００５５】
次に、前記した図９におけるハッシュチェック（ステップＳ９０７）において、ハッシュエラーが生じたときの動作を図１０のシーケンス図を用いて説明する。
ハッシュチェックエラーが生じると（ステップＳ１００７）、ＰＵ部２００はＳ−ＲＡＭ２２０に確保した領域を開放し（ステップＳ１００９）、ハッシュチェックがＮＧであることをＣＵ部１００に通知する（ステップＳ１０１０）。ＮＧ通知を受けたＣＵ部１００は、起動している時間監視タイマを停止し（ステップＳ１０１１）、再度ファームウェアの更新を試みる。このとき、ＣＵ部１００はリトライ処理に先立ち所定の回数リトライを行ったか確認を行う（ステップＳ１０１２）。
【００５６】
次に、前記した図９におけるリブート後の初期化処理（ステップＳ９１１）が正常に行われないときの動作を、図１１のシーケンズを用いて説明する。
ＰＵ部２００は、ステップＳ１１１１における初期化処理の異常を検出すると（ステップＳ１１１１）、異常を示す「ＰＵ  Ｐｏｗｅｒ  ＯＮ  Ｒｅａｄｙ（Ｅｒｒｏｒ）」をＣＵ部１００に通知する（ステップＳ１１１３）。
異常通知を受けたＣＵ部１００は（Ｓ１１１４）、起動している時間監視タイマを停止し（ステップＳ１１１５）、再度ファームウェアの更新を試みる。このとき、ＣＵ部１００はリトライ処理に先立ち所定の回数リトライを行ったか確認を行う（ステップＳ１１１６）。
【００５７】
尚、時間監視タイマは、前記したファームウェアの更新処理において所定の時間内にフェームウェアの更新処理が終了しない場合、何らかの不具合が発生したことを自己検出するために設けられている。
【００５８】
前記したファームウェアの更新処理が行われた後、図４におけるファームウェア更新の結果通知処理が行われる。ファームウェア更新の結果通知処理は、図１２に示すように、ファームウェアの更新が正常に終了したこと（処理結果１）、更新データが不適合でファームウェア更新を行うことなく処理を終了したこと（処理結果２）、更新データが正しくメールに添付されておらず処理を終了したこと（処理結果３）、異常状態が長時間継続したり、ハッシュエラーが生じたり、フラッシュＲＯＭ２３０に正常に書込みができなかったり、更新データに不具合があり、正常に再起動できないこと（処理結果４）などであり、これらの少なくとも一つを処理結果として得た更新処理部３７０は、停止している印刷データの受信を解除する（ステップＳ１２０５）。その後、更新処理部３７０は、処理結果を示す電子メールを生成し、該電子メールを端末２０へ送信する（処理結果Ｓ１２０６）。
【００５９】
尚、前記した処理結果２および処理結果３を示す電子メールを受信した更新管理者は、プリンタ１０に対し送信した更新データ（送信ファイル）の確認を行い、ファームウェアの更新結果が処理結果４および処理結果５であるとき、当該プリンタ１０の保守を行う必要がある。
【００６０】
前記したように、本発明のプリンタ１０によれば、ファームウェアの更新に先立ち、自己の動作状態を確認することから、フェームウェアの更新処理に伴なうリブートにより未処理のデータの消失を招くことがなく、フェームウェアの更新処理に伴なう弊害を防止することができる。
【００６１】
ところで、前記した実施例では、ＣＵ部１００およびＰＵ部２００間で更新データの授受を行った後、更新データのハッシュチェックを行ったが、端末２０から更新データを受信したとき、適合判定部３４１でハッシュチェックを行うようにしてもよい。
【実施例２】
【００６２】
次に、受信した更新データを不揮発性記憶部としてのデバイスストレージで保持するプリンタを説明する。
実施例２のプリンタ４０は、図１４に示すように、前記した実施例１の構成に不揮発性の記憶部としてのデバイスストレージ４００（例えばハードディスクメモリ等）を加えた構成であり、該デバイスストレージ４００はＣＵ部１００に備えられている。
ところで、デバイスストレージ４００に更新データを保持した後、プリンタ４０の電源がＯＦＦ制御されてもデバイスストレージ４００で保持する更新データは消滅することなく保持される。
【００６３】
ところで、デバイスストレージ４００に更新データが保持されると、更新データがデバイスストレージ４００にダウンロードされたことを示す格納情報を生成すべくダウンロードフラグをＯＮにセットする。該ダウンロードフラグはＮＶ−ＲＡＭ１６０で保持され、プリンタ４０の電源がＯＦＦされても消去されることはない。
【００６４】
次に、実施例２のプリンタ４０におけるダウンロードフラグとデバイスストレージ４００との関係を図１５のブロック図を用いて説明する。実施例２のプリンタ４０は、図１５に示すように、前記した実施例１の機能構成に、メール処理部３１３からの更新データを保持するデバイスストレージ４００が追加されている。
【００６５】
実施例２のメール処理部３１３は、パケット処理部３１１から送られたパケットに添付された更新データをデバイスストレージ４００にダウンロードして良いか否かを適合判定部３４１で判定する。適合判定部３４１でダウンロード可能と判定された更新データはパケット処理部３１１からデバイスストレージ４００へ出力される。デバイスストレージ４００は、メール処理部３１３からの更新データを保持すると、ダウンロードフラグをＯＮにセットし、更に更新データを受信バッファ３２０で保持する。
【００６６】
受信バッファ３２０で保持される更新データは、データ処理部３３０を介して更新処理部３７０へ送られると、更新処理部３７０は、動作確認部３４２でデータ受信中、印刷処理中および異常状態中か否かを判定させ、これらの状態ではないとき、更新データをＰＵ部２００へ出力する。ＰＵ部２００の更新処理部４００は、取得した更新データでフラッシュＲＯＭ２３０に保持されたプログラムの更新を行う。更新後、更新完了通知を受けると更新処理部３７０はダウンロードフラグをＯＦＦにセットする。
【００６７】
ところで、デバイスストレージ４００に更新データが保持された後、ファームウェアの更新が完了することなく、プリンタ４０の電源がＯＦＦされた後、再度電源がＯＮされると、ＯＮ−Ｌｉｎｅ制御（ネットワーク通信接続制御）に先立ち、更新処理部３７０はダウンロードフラグのチェックを行い、該フラグがＯＮにセットされていると、前記したと同様にデバイスストレージ４００から更新データを読出しファームウェアの更新処理を行う。
【００６８】
ここで、プリンタ４０のファームウェア更新時の動作をフローチャートを図１６のフローチャートを用いて説明する。尚、電源がＯＮされたときの動作も同じフローチャートを用いて説明する。
データ取得部３１０でパケットに受信処理を行い（ステップＳ２４０１）、受信したパケット（データ）の解析処理を行う（ステップＳ２４０２）。
【００６９】
解析処理で更新データであると判断されると、該更新データの適合判断が適合判定部３４１で行われる（ステップＳ２４０３）。適合する更新データであると判断されると、更新データはデバイスストレージ４００に保持される。
【００７０】
ここで、図１７のフローチャートを用いて、更新データをデバイスストレージ４００に保持する動作を説明する。尚、電子メールを受信するステップＳ２５０１から電子メールの解析を行うステップＳ２５１０までの動作は、前記した実施例１と同様であることから、その説明を割愛する。
【００７１】
図１７のステップＳ２５０９において適合判定部３４１は、Ｓ−ＲＡＭ１５０で一時的に保持した「ファイル名」のファイルが添付されているか否かを確認し、一時的に保持した「ファイル名」のファイルが添付されているとき（ステップＳ２５１０）、当該ファイルがデバイスストレージ４００に保持される（ステップＳ２５１１）。これを、一時的に保持している全ての「ファイル名」において行うップＳ２５１２）。
これにより、適合判定部３４１で適合と判断された全ての更新データがデバイスストレージ４００で保持される。
【００７２】
その後、デバイスストレージ４００に更新データが保持されると、ダウンロードフラグがＯＮにセットされる（ステップＳ２４０４）。その後動作確認部３４２はデータ受信中および処理中であるか否かを判断する（ステップＳ２４０５）。
【００７３】
データ受信中および処理中ではないとき、更新データは受信バッファに転送される（ステップＳ２４０６）。その後、動作確認部３４２は、印刷処理中であるか否かをページバッファ３５０の保持状況に基づいて判断すると共に異常状態を判定する（ステップＳ２４０７）。印刷処理中および異常状態中ではないとき、更新処理部３７０は更新データに基づいてファームウェア（プログラム）の更新を行う（ステップＳ２４０８）。更新処理部３７０は、ファームウェアの更新処理が終了すると、ダウンロードフラグをＯＦＦにセットする（ステップＳ２４０９）。その後、更新結果が端末２０に通知される。
【００７４】
次に、更新データの受信は行われたが、更新処理が行われることなく、プリンタ４０の電源がＯＦＦに制御された後、再度電源がＯＮされたときの動作を説明する。
先ず電源が投入されると、ＲＯＭおよびＲＡＭのチェック等を行う初期化処理が行われる（ステップＳ２４１１）。その後ＮＶ−ＲＡＭ１６０で保持するダウンロードフラグをチェックし、該フラグがＯＮされているとき、デバイスストレージ４００で保持する更新データを受信バッファ３２０へ転送するステップＳ２４０６からの処理を行う。
【００７５】
一方、前記したステップＳ２４１２において、ダウンロードフラグがＯＦＦにセットされている場合には、ネットワーク回線接続制御（オンライン処理）を行い（ステップＳ２４１３）、印刷データの受信に備える。
【００７６】
前記したように、実施例２のプリンタ４０によれば、更新データをデバイスストレージ４００に保持すると、ダウンロードフラグをＯＮに設定することにより、ファームウェアの更新中に電源がＯＦＦされても、ダウンロードフラグを確認し、該フラグがＯＮ設定されているとき、デバイスストレージ４００で保持する更新データを読出し、該更新データでファームウェアの更新を引き続き行うことができる。
【産業上の利用可能性】
【００７７】
本発明は、プリンタに限定する必要はなく、例えばネットワークを介してデータを取得可能なファクシミリや複合機などの印刷機能を備えた装置に本発明を適用することができる。
【図面の簡単な説明】
【００７８】
【図１】接続図である。
【図２】実施例１のプリンタのブロック図である。
【図３】実施例１のプリンタの機能ブロック図である。
【図４】実施例１のプリンタの動作概念を示すフローチャートである。
【図５】実施例１の受信・解析処理の動作を示すフローチャートである。
【図６】適合判断処理を示すフローチャートである。
【図７】データ受信中判定の動作を示すフローチャートである。
【図８】印刷処理中および異常状態中判定の動作を示すフローチャートである。
【図９】正常時の書込みシーケンス図である。
【図１０】ＨＡＳＨエラー時のシーケンス図である。
【図１１】書込エラー時のシーケンス図である。
【図１２】ファームウェアの更新結果の通知処理を示すフローチャートである。
【図１３】添付ファイルのフォーマットを示す図である。
【図１４】実施例２のプリンタのブロック図である。
【図１５】実施例２のプリンタの機能ブロック図である。
【図１６】実施例２のプリンタの動作を示すフローチャートである。
【図１７】実施例２の受信・解析処理の動作を示すフローチャートである。
【符号の説明】
【００７９】
１０  プリンタ
１００  ＣＵ部
２００  ＰＵ部
２３０  Ｆｌａｓｈ  ＲＯＭ
３１０  データ取得部
３１１  パケット処理部
３１２  通常データ処理部
３２０  受信バッファ
３３０  データ処理部
３４０、３８０  確認部
３４１、３８１  適合判定部
３４２  動作確認部
３５０  ページバッファ
３６０、３９０印刷処理部
３７０、４００  更新処理部
【図１】
2006255955.tif 000003
【図２】
2006255955.tif 000004
【図３】
2006255955.tif 000005
【図４】
2006255955.tif 000006
【図５】
2006255955.tif 000007
【図６】
2006255955.tif 000008
【図７】
2006255955.tif 000009
【図８】
2006255955.tif 000010
【図９】
2006255955.tif 000011
【図１０】
2006255955.tif 000012
【図１１】
2006255955.tif 000013
【図１２】
2006255955.tif 000014
【図１３】
2006255955.tif 000015
【図１４】
2006255955.tif 000016
【図１５】
2006255955.tif 000017
【図１６】
2006255955.tif 000018
【図１７】
2006255955.tif 000019