説明

印刷装置および制御プログラム更新方法

【課題】 ファームウェアの更新に伴なう弊害を防止し得る印刷装置を提供する。
【解決手段】 印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置10において、更新データを取得すると、自己の動作状態の確認を行う確認部340と、確認部の確認結果に応じて、更新処理を開始する更新処理部370とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置の制御プログラム更新に関するものである。
【背景技術】
【0002】
印刷データに基づいて印刷処理を行う印刷装置は、印刷処理のために装置を制御する制御プログラム(ファームウェア)を保持する記憶部を備えている。記憶部に保持されたファームウェアは、印刷処理の機能向上のために適宜更新がおこなわれており、ネットワークを介して取得する更新データに基づいて更新処理を行う印刷装置が特許文献1に開示されている。
【0003】
特許文献1によれば、ネットワークを介して取得する更新データは分割されて伝送され、分割された更新データの全てが揃ったら、ファームウェアの更新を行うことを開示している。
【特許文献1】特開2000−12345号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、この種のネットワークによりファームフェアの更新処理が行われる印刷装置は、ネットワークに接続する更新者の端末と離れた場所に配置されている。従って、更新者は、印刷装置の動作状態を把握することができない。このような設置環境において、更新データが更新者の端末から印刷装置に送信され、印刷装置は取得した更新データに基づいてファームウェアの更新を行っている。
【0005】
印刷装置は、ネットワークを介して取得する更新データに基づいてファームウェアの更新処理を行った後、該更新処理においてリブートと称される再起動が行われる。
従って、例えば未処理の印刷データが存在する印刷処理中に更新処理を行うと、前記したリブートにより、未処理の印刷データが消去されてしまい、これが問題となっていた。また、印刷装置が例えばジャム(紙詰まり)やカバーの開口など人的介入を必要とする異常状態中に更新処理を行うと、異常状態が原因で更新処理が正常に行えないことも問題となっていた。
【0006】
以上の問題に鑑みて、本発明の目的は、更新者が直ちに確認できない離れた場所に配置された印刷装置において、ファームウェアの更新に伴なう弊害を防止し得る印刷装置を提供することにある。
【課題を解決するための手段】
【0007】
本発明は、以上の点を解決するために、次の構成を採用する。
印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置において、更新データを取得すると、自己の動作状態の確認を行う確認部と、確認部の確認結果に応じて、更新処理を開始する更新処理部とを備えることを特徴とする。
【0008】
印刷データに基づいて印刷処理を行う印刷装置のための制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する制御プログラムの更新方法において、更新データを取得すると、自己の動作状態の確認を行うこと、確認結果に応じて、更新処理を開始することを特徴とする。
【発明の効果】
【0009】
本発明の印刷装置によれば、自己の動作状態を確認し、更新処理に問題が無いことを確認した後、ファームウェアの更新処理を行う。すなわち、更新処理に伴なう再起動が生じても、例えば未処理の印刷データが消去されて印刷処理ができないなどの弊害を防止することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施形態について、図を用いて詳細に説明する。以下の説明では、各実施の形態に用いる図面について同一の構成要素は同一の符号を付し、かつ重複する説明は可能な限り省略する。尚、実施例では印刷装置としてプリンタを例に説明を行う。
【実施例1】
【0011】
本発明のプリンタ10は、図1に示すように、ファームウェアの更新者の端末20に、インターネットなどのネットワーク30を介して接続しており、端末20からプリンタ10へ送信された電子メールが印刷装置10で受信可能にネットワーク構築されいる。
【0012】
プリンタ10は、図2に示すように、ネットワークを介してデータを取得し、取得したデータに基づいて処理を行うコントロールユニット(以降CU部と略称する)100と、該コントロールユニット100からのデータに基づいて印刷処理を行うプリンタユニット(以降PU部と略称する)200とを備えており、CU部100はPU部200に印刷処理を行わせるためのVideo Dataと称される印刷データをビットマップ化したデータをシリアル伝送している。
【0013】
CU部100は、ネットワーク接続するためのNIC(Network Interface Card)と称されるネットワークインタフェース110と、操作表示部120と、PU部200とシリアル通信するためのシリアルインタフェース制御部130と、プログラムを格納するEP−ROM(消去およびプログラム可能な読出し専用メモリ)140と、記憶部としてのS−RAM150と、不揮発性メモリとしてのNV−RAM160と、印刷ページ毎にラスター展開を行う画像処理部170と、プログラムに基づいてCU部における制御を行うCPU180と、CU部におけるバス190とを備える。
【0014】
ネットワークインタフェース110は、ネットワークを介して端末20から印刷データや電子メールを受信するための制御を行う。
ところで、電子メールには、必要に応じて当該プリンタ10のプログラムを更新するための更新データが添付されており、該更新データに基づいてプリンタ10のプログラムが更新される。
操作表示部120は、表示メニューに基づく入力を受けると共に、プリンタの動作状況を表示する。
【0015】
シリアルインタフェース制御部130は、PU部200とシリアル通信するための通信制御を行う。
EP−ROM140は、CPU180のためのプログラムを保持しており、CPU180は、該プログラムをEP−ROM140から順次読出し、該プログラムに従って各種機能の制御を行う。尚、各機能は、図3に示されているように、データ取得部、確認部、データ処理部および通信制御処理部などの機能ブロックとして後に詳述する。
【0016】
S−RAM150は、データを受信するための受信バッファやCPU180および画像処理部170の処理で作業領領域として用いられたり処理結果を保持したり、後述するページバッファとして用いられる。
ところで受信バッファは構造化されており、受信したデータは第1バッファに一旦格納された後、該第1バッファに保持するデータが第2受信バッファに格納される。第2受信バッファで保持するデータが逐次読み出され、後述するデータ処理部でデータ処理が行われる。
【0017】
NV−RAM160はフラッシュメモリと称される不揮発性の記憶部であり、プリンタ10の電源がOFFされても、当該NV−RAM160で保持するデータは消去されることなく保持される。NV−RAM160は、操作表示部120で設定された内容(メニュー設定内容)を保持する。
【0018】
画像処理部170は、ネットワークインタフェース110で受信した描画系のコマンドで表現された印刷データに基づいてラスター処理を行う。画像処理部170は、ラスタ処理で1ページ毎にページ画像データを生成し、該ページ描画データをNV−RAM160の領域確保したページバッファに保持する。
【0019】
ページバッファに保持されたページ描画データは、PU部200からの読出し指示で1ドットライン毎に読み出され、読み出したデータはビデオデータとして図示しない通信機能により、PU部200へ送られる。
【0020】
一方、PU部200は、CU部100とシリアル通信するためのシリアルインタフェース制御部210と、記憶部としてのS−RAM220と、PU部200におけるプログラムを格納するフラッシュROM230と、CU部100からビデオデータを取得するためのビデオデータ取得部240と、取得したビデオデータに基づいて画像を形成する各機構の駆動を制御する駆動部250と、設定情報を保持するNV−RAM260と、フラッシュROM230で保持するプログラムを読出し、該プログラムに基づいてPU部200における制御を行うCPU270と、PU部におけるバス280とを備える。
【0021】
PU部200のS−RAM220は、CPU270の処理で作業領域として用いられたり、CU部100からの更新データを一時的に保持する。
フラッシュROM230は、PU部200におけるプログラムをファームウェアとして保持しており、該プログラムを書換え可能に保持する。尚、本実施例では、フラッシュROM230で保持するプログラムが更新データに基づいて更新される。
【0022】
ビデオデータ取得部240は、ビデオデータをCU部100から取得するための制御を行う。
駆動部250は、ビデオデータに基づいて画像を形成するための各機構の駆動制御を行う。
NV−RAM260は、駆動部250において各機構の駆動制御に必要な設定情報を保持する。この設定情報は、例えば印刷位置に関する情報であったり、印刷濃度に関する情報などである。
【0023】
CPU270は、フラッシュROM230で保持するプログラムに従って、各種機能の制御を行う。尚、各機能は、図3に示されているように、確認部、データ更新部などの機能ブロックとして後に詳述する。
【0024】
ここで、CPU180およびCPU270がプログラムに基づいて制御する各機能を図3のブロック図を用いて説明する。
プリンタ10は、ネットワークを介してデータを取得するための制御を行うデータ取得部(ネットワーク通信部)310と、取得したデータを保持するための受信バッファ320と、取得したデータ種別に応じた処理を行うべく、印刷データであるときは画像処理を行い、更新データであるときは後述する更新処理部に出力するデータ処理部330と、自己の動作状態および更新データの適合とその内容を確認する確認部340と、画像処理されたページデータを保持するページバッファ350と、ページバッファからビデオデータを取得して画像を形成する印刷処理部360と、更新データに基づいてプログラムの更新を行う更新処理部370とを備える。
【0025】
尚、図3において、確認部340および380、印刷処理部360および390、更新処理部370および400は、CU部100およびPU部200のそれぞれに設けられているが、これはCU部100におけるプログラムおよびPU部200におけるプログラムに基づいてそれぞれの確認部340および380、印刷処理部360および390、更新処理部370および400が機能することを示している。
【0026】
データ取得部310は、パケット処理部311と、印刷データなどの通常データ処理部312と、メール処理部313とを備えている。
パケット処理部311は、ネットワークインタフェース110で取得するパケットを図示しない第1受信バッファに一時的に保持しており、該第1受信バッファで保持するパケットを読出し解析を行い、該パケットを通常データ処理部312またはメール処理部313の何れに送るか判定を行う。
【0027】
通常データ処理部312は、パケット処理部311から送られたパケットを印刷データや制御データとして処理すべく、該データを第2の受信バッファとしての受信バッファ320に保持する。
メール処理部313は、パケット処理部311から送られたパケットに添付された更新データを取得し、該データを第2の受信バッファとしての受信バッファ320に保持する。
尚、受信バッファ320において、通常データ処理部312からのデータと、メール処理部313からのデータは、それぞれ異なる領域に保持される。
【0028】
確認部340は、適合判定部341および動作確認部342を備えており、適合判定部341は、更新データの適合判断と更新データのハッシュチェックとを行い、動作確認部342はデータの受信処理中であるか否かを確認し、印刷処理中であるか否かも確認し、更に自己(プリンタ)の異常状態を確認する。確認部340は、確認指示されたとき、各状態の確認を行ってもよいし、最新の状態を監視して保持しておき、指示に基づき最新の状態を通知するようにしてもよい。
【0029】
データ処理部330は、受信バッファ320からデータを読出し、読出したデータが更新データであるときは、更新処理部370へ出力し、印刷データであるときは、前記した画像処理部170における処理を行う。すなわちデータ処理部330は、印刷データに基づいてラスター処理を行い、ページ画像データを生成し、生成したページ画像データをページバッファに保持する。
【0030】
印刷処理部360は、ページバッファ350に保持するページ画像データを1ドットライン毎に読出し、読み出した1ドットラインのデータをビデオデータとしてCU部100からPU部200へ出力する。PU部200においてビデオデータを受信した印刷処理部390は、該ビデオデータに基づいて印刷媒体に画像を1ドットライン毎に形成するように、1ページ分の画像をする。このとき、印刷処理部390は、前記した駆動部250の制御を行い、紙送り制御や図示しない画像形成ドラムなどの制御又はインク噴射ノズルなどの制御が行われる。
【0031】
更新処理部370は、シリアルI/Fを介してCU部100およびPU部200間で更新データの授受を行っており、CU部100で取得した更新データは、先ず確認部340の適合判定部341で更新データのハッシュチェックが行われる。その後、ハッシュチェックに問題がないと、動作確認部342で装置状態をチェックし問題がないと、更新処理部370は更新データに基づいてPU部200のフラッシュROM230で保持するプログラムの更新を行う。
【0032】
次に本発明のプリンタ10の動作概念を図4のフローチャートを用いて説明し、その後詳細な動作を説明する。
尚、以降の動作説明では、プログラムの更新を中心に説明を行う。
データ取得部310でパケットに受信処理を行い(ステップS401)、受信したパケット(データ)の解析処理を行う(ステップS402)。
【0033】
解析処理で更新データであると判断されると、該更新データの適合判断が適合判定部341で行われる(ステップS403)。
適合する更新データであると判断されると、動作確認部342はデータ受信中および処理中であるか否かを判断する(ステップS404)。
【0034】
受信中ではないとき、第1受信バッファから第2受信バッファに更新データが転送される(ステップS405)。その後、動作確認部342は、印刷処理中であるか否かをページバッファ350の保持状況に基づいて判断すると共に、例えばジャム(紙詰まり)やカバーの開口などの異常状態を判定する(ステップS406)。尚、動作確認部342は、ジャムの発生やカバーの開口はPU部200に問合せることにより、これらの情報を取得する。
印刷処理中および異常状態中ではないとき、更新処理部370は更新データに基づいてファームウェア(プログラム)の更新を行うため、更新データを更新処理部400に送り更新する(ステップS407)。その後、更新結果が利用者に通知される(ステップS408)。
【0035】
次に、各ステップにおける動作を詳細に説明する。
受信処理と解析処理の詳細な動作は、図5のフローチャートに示すように、データ取得部310でパケット(データ)を受信すると(ステップS501)、該データは第1受信バッファに保持される。パケット処理部311は受信したパケットで示される電子メールにファイルが添付されているか判断し、ファイルが添付されている場合には、添付ファイルの名称をチェックする(ステップS502)。
【0036】
この判定でファイル名が更新データを示す例えば「pufw.txt」ではないとき(ステップS503)、第1受信バッファに保持されたデータは、通常データ処理部312に送られて通常のデータ処理が行われる(ステップS504)。更新データを含む電子メールは、「pufw.txt」ファイルと、該「pufw.txt」で指定された更新データとが添付されている。
【0037】
一方、前記したステップS503において、更新データが添付されているとき、適合判定部341は、該添付データの内容を解析すべく、受信したファイルを開く(ステップS506)。
【0038】
ファイルを開くと、図13に示すように1ライン目に例えば「PR500.PRN」、「PR500.PRN」なる電子メールに添付された更新データファイル名が示されており、2ライン目に例えば「Printer500」、「Printer500F」、「Printer600」、「Printer600PS」なる該更新データに対応する機種名が示されており、3ライン目に例えば「02.43」、「03.67」なる該更新データに対応するCU部100におけるプログラムのバージョン(この場合、V02.43〜V03.67の間が有効)が示されており、4ライン目に例えば「01.05.33」なる該更新データに対応するPU部200におけるバージョンが示されている。尚、図13において、当該プリンタ10における適合が下線で示されている。
【0039】
適合判定部341は、第1ラインに示された内容を確認し「ファイル名」を取得し、取得した「ファイル名」をS−RAM150に保持する(ステップS507)。ところで、第1ラインには、図13に示すように、複数の「ファイル名」が示されている場合があり、その全ての「ファイル名」がS−RAM150で保持される。
【0040】
適合判定部341は、S−RAM150で一時的に保持した「ファイル名」のファイルが添付されているか否かを確認し(ステップS508)、当該ファイル名のファイルが添付されていないとき(ステップS509)、エラー処理が行われる(ステップS510)。
一方、前記したステップS508において一時的に保持した「ファイル名」のファイルが添付されているとき、当該ファイルを第2受信バッファに保持する(ステップS511)。これを、一時的に保持している全ての「ファイル名」において行う(ステップS512)。
その後、ステップS506において開いたファイルを閉じる(ステップS513)。
【0041】
次に、図4における更新データの適合判定(ステップS403)の動作を図6を用いて説明する。この処理は、図5のフローチャートにおけるステップS509およびステップS511の間で行われる。
適合判定は適合判定部341が行っており、該適合判定部341における更新データの適合判定の動作を図6のフローチャートに沿って説明する。
適合判定部341は、ファイル名が「pufw.txt」のファイルを開く(ステップS601)。
【0042】
適合判定部341は、ファイル名が「pufw.txt」のファイルの2行目に示されたモデル名(機種名)を取得し(ステップS602)、該機種名内に当該プリンタの機種が示されている否か判断を行う(ステップS603)。「pufw.txt」の2行目に当該プリンタの機種名が示されていない場合、更新データは不適合として、当該更新データに基づく更新処理は行われない(ステップS610)。
【0043】
一方、前記したステップS603において、機種名が当該プリンタの機種を示すとき、適合判定部341は、ファイル名が「pufw.txt」のファイルの3行目に示されたCU部のプログラムの版数を取得し(ステップS604)、取得したプログラムの版数が当該プリンタのCU部100のプログラムの版数内であるか否かを判定し(ステップS605)、取得したCU部のプログラムの版数が当該プリンタのCU部100のプログラムの版数内にないとき、更新データも基づく更新処理は行われない(ステップS610)。
【0044】
前記したステップS605において、取得したCU部のプログラムの版数が当該プリンタのCU部100のプログラムの版数内であるとき、適合判定部341は、ファイル名が「pufw.txt」のファイルの4行目に示されたPU部のプログラムの版数を取得し(ステップS606)、取得した版と、当該プリンタのPU部200のプログラムの版数とを比較する(ステップS607)。
【0045】
この比較で4行目に示されたフPU部のプログラムの版数が当該プリンタのPU200部のプログラムの版数より大きいとき、すなわちプログラムが新しいとき(ステップS608)、更新データは適合すると判断され(ステップS609)、小さいとき、すなわちプログラムが古いとき、不適合と判断される(ステップS610)。
尚、当該プリンタのCU部100のプログラムの版を示す情報は、EP−ROM140又はNV−RAM160で保持されており、PU部200のプログラムの版数を示す情報は、S−RAM220又はNV−RAM260で保持されており、適合判定部341は、これらの記憶部から必要に応じて版数を示す情報を読出して適合判定を行う。
【0046】
次に、図4におけるデータ受信中判定(ステップS404)の動作を図7を用いて説明する。
データ受信中判定は動作確認部342が行っており、該動作確認部342におけるデータ受信中判定処理の動作を図7のフローチャートに沿って説明する。
動作確認部342は、所定の時間内において、データの受信があるか否か判定する(ステップS701)。この判定で所定の時間内にデータの受信がある場合には、何らかの連続したデータをパケット単位で受信する恐れがある。ステップS701において、所定の時間内にデータ受信がないと、動作確認部342は、印刷データの受信を拒否する。尚、制御データは、継続して受信し、その対応を行う(ステップS702)。その後、未処理のデータの有無を確認し(ステップS703)、未処理のデータを処理する(ステップS704)。
【0047】
ところで、図4におけるダウンロードデータ処理(ステップS405)は、ステップS404までの処理を終えた後、第1受信バッファに保持する更新データを第2受信バッファにダウンロードし、その後のPU部200における印刷処理中および異常状態中の判定を行う。この判定処理は、図8に示すように、動作確認部342は、CU部100におけるページバッファ350においてページ画像データの有無を確認し、印刷待ちであるか否かを判定し(ステップS705)、CU部100における印刷待ちデータが処理されるまで、プログラムの更新処理を待機状態とする。
【0048】
CU部100のページバッファ350において、全てのデータが処理された後、動作確認部342は、自己の動作における異常を確認し(ステップS706)、異常状態が解消されるまでプログラムの更新処理を待機状態とする。その後、PU部200における未処理のデータ(1ドットラインデータ)を確認し(ステップS707)、PU部200におけるデータ処理が終了するまで、すなわちプリンタ10における印刷処理が終了するまでプログラムの更新処理を待機状態とする(ステップS708)。
【0049】
次に、図4におけるファームウェアの更新処理(ステップS407)の動作を説明する。
先ず、ファームウェアの更新が正常に行われるときの更新処理部370の動作を、図9に示すCU部100およびPU部200におけるシーケンス図を用いて説明する。
CU部100は、PU部200に対し「フラッシュROM書込みモード」を指定する(ステップS901)。指定を受けたPU部200は、ダウンロードされるデータのサイズの領域をS−RAM220において確保し(ステップS902)、ダウンロードの準備が完了したことをCU部100に通知する(ステップS903)。
【0050】
通知を受けたCU部100は、PU部200へ更新データを送信する(ステップS904)。このとき、CU部100は、図示しない時間監視タイマを起動する(ステップS905)。PU部200は、CU部100からの更新データをビデオデータ取得部240を介して取得すると、該更新データをS−RAM220に保持し(ステップS906)、全ての更新データの取得を終えるとハッシュチェックを行い(ステップS907)、その結果をCU部100へ通知する(ステップS908)。
【0051】
これにより、CU部100からPU部200へ更新データを授受するとき、データ化けした更新データのチェックを行うことができる。
【0052】
ハッシュチェックに問題がないとき、PU部200はS−RAM220に一旦保持した更新データをフラッシュROM230bに書込み(ステップS909)、その後リブート(再起動)を指示し(ステップS910)、PU部200の初期化が行われる(ステップS911)。
【0053】
ところで、初期化が行われてS−RAM220などのメモリで保持するデータが初期化されても、未処理の印刷データが存在しないことから、初期化に伴なって印刷データが消失するようなことはない。
初期化後、PU部200は、初期化に伴ないPU部200の電源が投入されたことを示す「PU Power ON Ready(Normal)」をCU部100に通知する(ステップS912)。
【0054】
「PU Power ON Ready(Normal)」通知を受けたCU部100は、起動している時間監視タイマを停止し(ステップS913)、その後「CU Power ON Ready(Normal)」をPU部200に通知し(ステップS914)、以降通常の動作を行う。
【0055】
次に、前記した図9におけるハッシュチェック(ステップS907)において、ハッシュエラーが生じたときの動作を図10のシーケンス図を用いて説明する。
ハッシュチェックエラーが生じると(ステップS1007)、PU部200はS−RAM220に確保した領域を開放し(ステップS1009)、ハッシュチェックがNGであることをCU部100に通知する(ステップS1010)。NG通知を受けたCU部100は、起動している時間監視タイマを停止し(ステップS1011)、再度ファームウェアの更新を試みる。このとき、CU部100はリトライ処理に先立ち所定の回数リトライを行ったか確認を行う(ステップS1012)。
【0056】
次に、前記した図9におけるリブート後の初期化処理(ステップS911)が正常に行われないときの動作を、図11のシーケンズを用いて説明する。
PU部200は、ステップS1111における初期化処理の異常を検出すると(ステップS1111)、異常を示す「PU Power ON Ready(Error)」をCU部100に通知する(ステップS1113)。
異常通知を受けたCU部100は(S1114)、起動している時間監視タイマを停止し(ステップS1115)、再度ファームウェアの更新を試みる。このとき、CU部100はリトライ処理に先立ち所定の回数リトライを行ったか確認を行う(ステップS1116)。
【0057】
尚、時間監視タイマは、前記したファームウェアの更新処理において所定の時間内にフェームウェアの更新処理が終了しない場合、何らかの不具合が発生したことを自己検出するために設けられている。
【0058】
前記したファームウェアの更新処理が行われた後、図4におけるファームウェア更新の結果通知処理が行われる。ファームウェア更新の結果通知処理は、図12に示すように、ファームウェアの更新が正常に終了したこと(処理結果1)、更新データが不適合でファームウェア更新を行うことなく処理を終了したこと(処理結果2)、更新データが正しくメールに添付されておらず処理を終了したこと(処理結果3)、異常状態が長時間継続したり、ハッシュエラーが生じたり、フラッシュROM230に正常に書込みができなかったり、更新データに不具合があり、正常に再起動できないこと(処理結果4)などであり、これらの少なくとも一つを処理結果として得た更新処理部370は、停止している印刷データの受信を解除する(ステップS1205)。その後、更新処理部370は、処理結果を示す電子メールを生成し、該電子メールを端末20へ送信する(処理結果S1206)。
【0059】
尚、前記した処理結果2および処理結果3を示す電子メールを受信した更新管理者は、プリンタ10に対し送信した更新データ(送信ファイル)の確認を行い、ファームウェアの更新結果が処理結果4および処理結果5であるとき、当該プリンタ10の保守を行う必要がある。
【0060】
前記したように、本発明のプリンタ10によれば、ファームウェアの更新に先立ち、自己の動作状態を確認することから、フェームウェアの更新処理に伴なうリブートにより未処理のデータの消失を招くことがなく、フェームウェアの更新処理に伴なう弊害を防止することができる。
【0061】
ところで、前記した実施例では、CU部100およびPU部200間で更新データの授受を行った後、更新データのハッシュチェックを行ったが、端末20から更新データを受信したとき、適合判定部341でハッシュチェックを行うようにしてもよい。
【実施例2】
【0062】
次に、受信した更新データを不揮発性記憶部としてのデバイスストレージで保持するプリンタを説明する。
実施例2のプリンタ40は、図14に示すように、前記した実施例1の構成に不揮発性の記憶部としてのデバイスストレージ400(例えばハードディスクメモリ等)を加えた構成であり、該デバイスストレージ400はCU部100に備えられている。
ところで、デバイスストレージ400に更新データを保持した後、プリンタ40の電源がOFF制御されてもデバイスストレージ400で保持する更新データは消滅することなく保持される。
【0063】
ところで、デバイスストレージ400に更新データが保持されると、更新データがデバイスストレージ400にダウンロードされたことを示す格納情報を生成すべくダウンロードフラグをONにセットする。該ダウンロードフラグはNV−RAM160で保持され、プリンタ40の電源がOFFされても消去されることはない。
【0064】
次に、実施例2のプリンタ40におけるダウンロードフラグとデバイスストレージ400との関係を図15のブロック図を用いて説明する。実施例2のプリンタ40は、図15に示すように、前記した実施例1の機能構成に、メール処理部313からの更新データを保持するデバイスストレージ400が追加されている。
【0065】
実施例2のメール処理部313は、パケット処理部311から送られたパケットに添付された更新データをデバイスストレージ400にダウンロードして良いか否かを適合判定部341で判定する。適合判定部341でダウンロード可能と判定された更新データはパケット処理部311からデバイスストレージ400へ出力される。デバイスストレージ400は、メール処理部313からの更新データを保持すると、ダウンロードフラグをONにセットし、更に更新データを受信バッファ320で保持する。
【0066】
受信バッファ320で保持される更新データは、データ処理部330を介して更新処理部370へ送られると、更新処理部370は、動作確認部342でデータ受信中、印刷処理中および異常状態中か否かを判定させ、これらの状態ではないとき、更新データをPU部200へ出力する。PU部200の更新処理部400は、取得した更新データでフラッシュROM230に保持されたプログラムの更新を行う。更新後、更新完了通知を受けると更新処理部370はダウンロードフラグをOFFにセットする。
【0067】
ところで、デバイスストレージ400に更新データが保持された後、ファームウェアの更新が完了することなく、プリンタ40の電源がOFFされた後、再度電源がONされると、ON−Line制御(ネットワーク通信接続制御)に先立ち、更新処理部370はダウンロードフラグのチェックを行い、該フラグがONにセットされていると、前記したと同様にデバイスストレージ400から更新データを読出しファームウェアの更新処理を行う。
【0068】
ここで、プリンタ40のファームウェア更新時の動作をフローチャートを図16のフローチャートを用いて説明する。尚、電源がONされたときの動作も同じフローチャートを用いて説明する。
データ取得部310でパケットに受信処理を行い(ステップS2401)、受信したパケット(データ)の解析処理を行う(ステップS2402)。
【0069】
解析処理で更新データであると判断されると、該更新データの適合判断が適合判定部341で行われる(ステップS2403)。適合する更新データであると判断されると、更新データはデバイスストレージ400に保持される。
【0070】
ここで、図17のフローチャートを用いて、更新データをデバイスストレージ400に保持する動作を説明する。尚、電子メールを受信するステップS2501から電子メールの解析を行うステップS2510までの動作は、前記した実施例1と同様であることから、その説明を割愛する。
【0071】
図17のステップS2509において適合判定部341は、S−RAM150で一時的に保持した「ファイル名」のファイルが添付されているか否かを確認し、一時的に保持した「ファイル名」のファイルが添付されているとき(ステップS2510)、当該ファイルがデバイスストレージ400に保持される(ステップS2511)。これを、一時的に保持している全ての「ファイル名」において行うップS2512)。
これにより、適合判定部341で適合と判断された全ての更新データがデバイスストレージ400で保持される。
【0072】
その後、デバイスストレージ400に更新データが保持されると、ダウンロードフラグがONにセットされる(ステップS2404)。その後動作確認部342はデータ受信中および処理中であるか否かを判断する(ステップS2405)。
【0073】
データ受信中および処理中ではないとき、更新データは受信バッファに転送される(ステップS2406)。その後、動作確認部342は、印刷処理中であるか否かをページバッファ350の保持状況に基づいて判断すると共に異常状態を判定する(ステップS2407)。印刷処理中および異常状態中ではないとき、更新処理部370は更新データに基づいてファームウェア(プログラム)の更新を行う(ステップS2408)。更新処理部370は、ファームウェアの更新処理が終了すると、ダウンロードフラグをOFFにセットする(ステップS2409)。その後、更新結果が端末20に通知される。
【0074】
次に、更新データの受信は行われたが、更新処理が行われることなく、プリンタ40の電源がOFFに制御された後、再度電源がONされたときの動作を説明する。
先ず電源が投入されると、ROMおよびRAMのチェック等を行う初期化処理が行われる(ステップS2411)。その後NV−RAM160で保持するダウンロードフラグをチェックし、該フラグがONされているとき、デバイスストレージ400で保持する更新データを受信バッファ320へ転送するステップS2406からの処理を行う。
【0075】
一方、前記したステップS2412において、ダウンロードフラグがOFFにセットされている場合には、ネットワーク回線接続制御(オンライン処理)を行い(ステップS2413)、印刷データの受信に備える。
【0076】
前記したように、実施例2のプリンタ40によれば、更新データをデバイスストレージ400に保持すると、ダウンロードフラグをONに設定することにより、ファームウェアの更新中に電源がOFFされても、ダウンロードフラグを確認し、該フラグがON設定されているとき、デバイスストレージ400で保持する更新データを読出し、該更新データでファームウェアの更新を引き続き行うことができる。
【産業上の利用可能性】
【0077】
本発明は、プリンタに限定する必要はなく、例えばネットワークを介してデータを取得可能なファクシミリや複合機などの印刷機能を備えた装置に本発明を適用することができる。
【図面の簡単な説明】
【0078】
【図1】接続図である。
【図2】実施例1のプリンタのブロック図である。
【図3】実施例1のプリンタの機能ブロック図である。
【図4】実施例1のプリンタの動作概念を示すフローチャートである。
【図5】実施例1の受信・解析処理の動作を示すフローチャートである。
【図6】適合判断処理を示すフローチャートである。
【図7】データ受信中判定の動作を示すフローチャートである。
【図8】印刷処理中および異常状態中判定の動作を示すフローチャートである。
【図9】正常時の書込みシーケンス図である。
【図10】HASHエラー時のシーケンス図である。
【図11】書込エラー時のシーケンス図である。
【図12】ファームウェアの更新結果の通知処理を示すフローチャートである。
【図13】添付ファイルのフォーマットを示す図である。
【図14】実施例2のプリンタのブロック図である。
【図15】実施例2のプリンタの機能ブロック図である。
【図16】実施例2のプリンタの動作を示すフローチャートである。
【図17】実施例2の受信・解析処理の動作を示すフローチャートである。
【符号の説明】
【0079】
10 プリンタ
100 CU部
200 PU部
230 Flash ROM
310 データ取得部
311 パケット処理部
312 通常データ処理部
320 受信バッファ
330 データ処理部
340、380 確認部
341、381 適合判定部
342 動作確認部
350 ページバッファ
360、390印刷処理部
370、400 更新処理部

【特許請求の範囲】
【請求項1】
印刷データに基づいて印刷処理を行う制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する印刷装置において、
前記更新データを取得すると、
自己の動作状態の確認を行う確認部と、
前記確認部の確認結果に応じて、前記更新処理を開始する更新処理部とを備えることを特徴とする印刷装置。
【請求項2】
前記確認部は、前記印刷処理のための未処理の印刷データの有無を確認する未処理データ確認部を備えることを特徴とする請求項1記載の印刷装置。
【請求項3】
前記確認部は、自己の動作異常を確認する動作確認部を備えることを特徴とする請求項1記載の印刷装置。
【請求項4】
前記確認部は、取得した前記更新データが当該印刷装置に適合するか否かを判定する適合判定部を備えることを特徴とする請求項1記載の印刷装置。
【請求項5】
前記適合判定部は、装置種別、更新データの版数、データハッシュ値の少なくとも一つの適合判断を行うことを特徴とする請求項4記載の印刷装置。
【請求項6】
前記更新データを電子メールで取得するためのメール通信部を備えることを特徴とする請求項1記載の印刷装置。
【請求項7】
前記更新データは、不揮発性の記憶部に保持されることを特徴とする請求項1記載の印刷装置。
【請求項8】
前記記憶部に前記更新データが格納されると、該更新データが記憶部に格納させていることを示す格納情報を生成し、該格納情報を不揮発性の記憶部に保持することを特徴とする請求項7記載の印刷装置。
【請求項9】
前記確認部は、当該印刷装置が起動すると、前記格納情報の有無を確認し、該格納情報があることを確認すると、前記記憶部で保持する更新データに基づいて更新処理を開始することを特徴とする請求項8記載の印刷装置。
【請求項10】
印刷データに基づいて印刷処理を行う印刷装置のための制御プログラムを更新する更新処理のための更新データをネットワークを介して取得する制御プログラムの更新方法において、
前記更新データを取得すると、
自己の動作状態の確認を行うこと、
確認結果に応じて、前記更新処理を開始することを特徴とする制御プログラムの更新方法。
【請求項11】
前記動作状態の確認は、前記印刷処理のための未処理の印刷データの有無を確認することを特徴とする請求項10記載の制御プログラムの更新方法。
【請求項12】
前記動作状態の確認は、自己の動作異常を確認することを特徴とする請求項10記載の制御プログラムの更新方法。
【請求項13】
前記動作状態の確認は、取得する更新データが当該印刷装置に適合するか否かを判定することを特徴とする請求項10記載の制御プログラムの更新方法。
【請求項14】
前記適合判定は、装置種別、更新データの版数、データハッシュ値の少なくとも一つの適合判断を行うことを特徴とする請求項13記載の制御プログラムの更新方法。
【請求項15】
前記更新データは電子メールで取得することを特徴とする請求項10記載の制御プログラムの更新方法。
【請求項16】
前記更新データは、不揮発性の記憶部に保持されることを特徴とする請求項10記載の制御プログラムの更新方法。
【請求項17】
前記記憶部に前記更新データが格納されると、該更新データが記憶部に格納されたことを示す格納情報を生成し、該格納情報を不揮発性の記憶部に保持することを特徴とする請求項16記載の制御プログラムの更新方法。
【請求項18】
印刷装置が起動すると、前記格納情報の有無を確認し、
前記格納情報があることを確認すると、前記記憶部で保持する更新データに基づいて更新処理を開始することを特徴とする請求項17記載の制御プログラムの更新方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate