(57)【要約】【課題】フラッシュメモリに記憶された制御プログラムの書換えを安全、便利かつ経済的にする。【解決手段】フラッシュメモリ２０に、制御プログラムを記憶する領域Ｂと、バックアップ領域Ｃと、ブート時に領域Ｂに記憶されたプログラムか領域Ｃに記憶されたプログラムかを選択する選択プログラムを記憶した領域Ｃとを設ける。ブート時に、選択プログラムは、制御プログラムが正常であれば、制御プログラムをＲＡＭ３０にロードさせる一方、正常ではなければ、領域ＣにバックアップされたプログラムをＲＡＭ３０にロードさせる。コンピュータ１００から制御プログラムを書換える指示を受信した際に、ＲＡＭ３０にロードされたプログラムは、領域Ｂに記憶された制御プログラムに含まれたブートプログラムをバックアップ領域Ｃにコピーしてから領域Ｂをクリアして制御プログラムの書換えを行う。【選択図】          図２
2004192329.tif 000002
【特許請求の範囲】
【請求項１】
端末装置に備えられたフラッシュメモリに記憶された、該端末装置を実行させるための制御プログラムを、外部処理装置からのプログラム書換え指示に応じて書き換えるプログラム書換え方法において、
前記フラッシュメモリに、前記制御プログラムを記憶する制御プログラム記憶領域と異なるバックアップ領域を設け、
前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うことを特徴とするプログラム書換え方法。
【請求項２】
フラッシュメモリと、外部処理装置からのプログラム書換え指示に応じて前記フラッシュメモリに記憶された制御プログラムを書き換えることが可能なプログラム書換え手段とを備えた端末装置であって、
前記制御プログラムが、前記端末装置を実行させるためのものであり、
前記フラッシュメモリが、前記制御プログラムを記憶した制御プログラム記憶領域、バックアップ領域、および前記端末装置ブート時に前記制御プログラム記憶領域に記憶された前記制御プログラムが正常であるか否かの判断を行うと共に、前記判断の結果に基づいて前記制御プログラムを実行するか前記バックアップ領域に記憶されたプログラムを実行するかを選択する選択プログラムを記憶した選択プログラム記憶領域を備え、
前記プログラム書換え手段が、前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであることを特徴とする端末装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御プログラムを書換え可能な端末装置およびその制御プログラムの書換え方法に関するものである。
【０００２】
【従来の技術】
プリンタや、ネットワーク機器などの装置は、内部に備えられた不揮発性メモリに記憶された制御プログラムにより実行される。この制御プログラムは、各種初期化プログラムや、必要なデータなど、装置を実行させるために必要なプログラム群（データも含む。以下同じ）から構成されるものである。装置の電源が入れられたとき、不揮発性メモリに記憶された制御プログラムは、装置に備えられた、ＲＡＭと呼ばれる揮発性メモリにコピー(ロード)され、装置を実行させる。
【０００３】
不揮発性メモリとは、電源が切れても記憶した内容を保持することができるメモリのことであり、装置の制御プログラムを記憶する不揮発性メモリとしてＲＯＭが用いられている。ＲＯＭにはマスクＲＯＭとＰＲＯＭに大別され、マスクＲＯＭは、ＬＳＩの製造過程で記憶内容をチップに焼き付けてなるもので、その記憶内容を書き換えることができないが、ＰＲＯＭはユーザが自由に記憶内容を書き換えることができるものである。
【０００４】
従来、大量生産の場合にコストが安いとの利点から、装置の制御プログラムを記憶する不揮発性メモリとしてマスクＲＯＭが利用されてきた。しかし、工場出荷時にインプットされている制御プログラムは、バグの排除や、機能の増減や、仕様変更などのために、しばしば出荷後にバージョンアップされる必要がある。マスクＲＯＭの場合、制御プログラムをバージョンアップするには、このマスクＲＯＭが備えられた装置および関連装置の電源を切り、ＲＯＭを装置から外し、新しい制御プログラムのインプットされたＲＯＭと交換するようにして制御プログラムのバージョンアップを行うので、メーカ側における新しいマスクＲＯＭの製造、発送にかかるコストと煩わしさや、ユーザが交換時に接続ピンを折ってしまうなどの失敗をしてＲＯＭを壊してしまうリスクなどがあるため、ユーザによって、記憶内容の書換えが可能なＰＲＯＭを装置の制御プログラムを保持する不揮発性メモリとして利用することが多くなってきた。
【０００５】
ＰＲＯＭには、ＲＯＭライターと呼ばれる機械で記憶内容を書き換えることができるＥＰＲＯＭがあり、ユーザは、ＲＯＭライターさえあれば、メーカにより提供されるプログラムを何回も書き換えることができる。しかし、装置の開発部門などのユーザ以外にＲＯＭライターを有するユーザが少なく、例えば、自宅のプリンタ一台のために、プリンタよりも高価になる可能性のあるＲＯＭライターまで購入することは、ユーザにとって本末顛倒であり、抵抗を感じることである。
【０００６】
ＥＰＲＯＭのうちの特殊なものとして、ＥＥＰＲＯＭと呼ばれる不揮発性メモリがあり、このＥＥＰＲＯＭは、フラッシュメモリとも呼ばれ、電気的に記憶内容の書換えが可能なものである。例えば、ＬＡＮ、ＷＡＮなどのネットワークインターフェースや、シリアルインターフェース（ＩＥＥＥ１３９４）や、パラレルインターフェース（ＩＥＥＥ１２８４）などの通信手段を利用してコンピュータと電気的に接続し、コンピュータからＥＥＰＲＯＭの記憶内容の書換えができる。この場合、コンピュータからプログラムをダウンロードする意味において、ＥＥＰＲＯＭを装着した装置は、その種類に拘わらずコンピュータの端末装置と称することができる。コンピュータの普及率が高い背景下において、ユーザは新たに機械を購入せずに、コンピュータを用いてプリンタや、ネットワーク機器などの端末装置のＥＥＰＲＯＭに記憶された制御プログラムをメーカから提供される新しい制御プログラムに書き換えることができるので、大変便利である。
【０００７】
また、近年、開発技術の進歩に伴って、大容量のＥＥＰＲＯＭが安価になっているので、装置の制御プログラムを記憶する不揮発メモリとしてＥＥＰＲＯＭが利用しやすくなり、脚光を浴びるようになっている。
【０００８】
しかし、装置の制御プログラムを記憶する不揮発性メモリとしてフラッシュメモリ、すなわちＥＥＰＲＯＭを用いた場合は、制御プログラムをバージョンアップするために、ＲＯＭライターの必要もなく、ハードウェア（ＲＯＭ）を交換する必要もないが、制御プログラムの書換え中に、書込みエラーが発生した場合や、書き換え時の消去処理時にエラーが生じた場合や、書換え中に装置の電源オフなどされた場合には、制御プログラムが消失するか破壊されてしまうので、制御プログラムの書換えは勿論のこと、装置本体の通常動作までもできなくなってしまう危険性がある。
【０００９】
そこで、特許文献１には、制御プログラムを記憶する制御プログラム領域を複数のセクションに分割し、書換え時にセクション毎にエラーチェックする書換え方法が提案されている。
【００１０】
また、特許文献２には、制御プログラムを格納した２つのフラッシュメモリを装置に装着し、装置のＣＰＵに付属のメモリ選択回路で２つのフラッシュメモリのうちの１つに記憶された制御プログラムを選択して動作させると共に、制御プログラムの書換えの際には、動作していない片方のフラッシュメモリに記憶された制御プログラムを書き換えるようにして不慮の事故への対策を図る方法が提案されている。
【００１１】
【特許文献１】
特開平６−２５９２６０号公報
【００１２】
【特許文献２】
特開平７−２００３０６号
【００１３】
【発明が解決しようとする課題】
しかし、特許文献１に提案されている方法は、エラー防止および書換え失敗時に復旧時間の短縮などには効果があるものの、書換え中の電源オフなどの不慮事故の対策にはならない。
【００１４】
また、特許文献２に提案された方法は、不揮発性メモリの切替え回路を必要とすると共に、膨大なサイズを有する制御プログラムを夫々格納するフラッシュメモリを複数用いるため、回路の構成が複雑で、装置が高価になるという問題がある。
【００１５】
本発明は上記事情に鑑みてなされたものであり、簡単、安全かつ経済的なプログラム書換え方法およびこの方法により制御プログラム書換え可能な端末装置を提供することを目的とするものである。
【００１６】
【課題を解決するための手段】
本発明のプログラム書換え方法は、端未装置に備えられたフラッシュメモリに記憶された、該端末装置を実行させるための制御プログラムを、外部処理装置からのプログラム書換え指示に応じて書き換えるプログラム書換え方法において、前記フラッシュメモリに、前記制御プログラムを記憶する制御プログラム記憶領域と異なるバックアップ領域を設け、
前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うことを特徴とするものである。
【００１７】
ここで、「フラッシュメモリ」とは、電源が切れても記憶内容を保持することができ、かつ電気的に記憶内容の消去、更新ができるメモリのことを意味し、ＥＥＰＲＯＭとすることができる。
【００１８】
また、「外部処理装置」とは、本発明における端末装置と通信可能で、前記端末装置のフラッシュメモリに記憶された制御プログラムの書換え指示を与えて書換えを行わせることができる装置のことを意味し、通常コンピュータが用いられる。
【００１９】
また、本発明における「端末装置」は、外部処理装置に備え付けられた記憶媒体または外部処理装置からの書換え指示により指定された場所から新しい制御プログラムを取得する意味においての端末装置であり、制御プログラムを記憶するメモリとしてフラッシュメモリが用いられた、外部処理装置と通信可能な装置であればいかなる装置であってもよく、例えばプリンタや、ネットワーク機器などを例として挙げることができる。
【００２０】
また、「制御プログラム」とは、本発明における端末装置の全般的な動作を行わせるプログラム（そのためのパラメータなどのデータも含む）のことを意味し、例えば、プリンタの場合、プリンタの印刷を司る部分の動作を行わせるプログラムは勿論、ブート時の各種初期化プログラムや、外部処理装置、例えばコンピュータからの印刷指示、印刷データを受信するための通信用プログラムなども含むものである。また、本発明においては、制御プログラムは、端末装置のフラッシュメモリに記憶された制御プログラムを書き換えるための種々のプログ
ラムも含むものである。
【００２１】
「ブートプログラム」とは、制御プログラムに含まれた、制御プログラムの書換えに必要なプログラムを意味し、例えば、書換え指示および新しい制御プログラムのデータを受信するための通信用プログラムや、フラッシュメモリの制御プログラム記憶領域の消去、更新をするためのプログラムなどを含むものとすることができる。なお、フラッシュメモリを節約すると共に、ブートプログラムのバックアップのスピードアップを図る視点から、本発明におけるブートプログラムは、制御プログラムの書換えに必要かつ最小限のプログラムとすることが好ましい。
【００２２】
本発明の端末装置は、フラッシュメモリと、外部処理装置からのプログラム書換え指示に応じて前記フラッシュメモリに記憶された制御プログラムを書き換えることが可能なプログラム書換え手段とを備えた端末装置であって、
前記制御プログラムが、前記端末装置を実行させるためのものであり、
前記フラッシュメモリが、前記制御プログラムを記憶した制御プログラム記憶領域、バックアップ領域、および前記端末装置ブート時に前記制御プログラム記憶領域に記憶された前記制御プログラムが正常であるか否かの判断を行うと共に、前記判断の結果に基づいて前記制御プログラムを実行するか前記バックアップ領域に記憶されたプログラムを実行するかを選択する選択プログラムを記憶した選択プログラム記憶領域を備え、
前記プログラム書換え手段が、前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであることを特徴とするものである。
【００２３】
ここで、「プログラム書換え手段」は、前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであり、たとえば、制御プログラムを書き換えるためのプログラム（書換えプログラムという）とこのプログラムが動作するためのハードウェア（ＣＰＵなど）とすることができる。また、書換えプログラムは、前記ブートプログラムに含まれた形でフラッシュメモリに記憶されたものであってもよいし、ブートプログラムに含まれず、マスクＲＯＭなどに記憶され、前記ブートプログラムを利用して制御プログラムの書換えを行うものであってもよい。すなわち、前記ブートプログラムは、制御プログラムの書換えを実行する書換えプログラムと、この書換えプログラムが実行するために必要なプログラム(データ受信のための通信用プログラムなど)とからなるものであってもよいし、書換えプログラムが制御プログラムから独立している場合は、書換えプログラムが実行するために必要なプログラムのみであってもよい。
【００２４】
【発明の効果】
本発明のプログラム書換え方法および端末装置によれば、端末装置のフラッシュメモリに記憶された、この端末装置を実行させるための制御プログラムを書き換える際に、制御プログラムに含まれた、書換えに必要なブートプログラムをバックアップしてから書換えを行うようにすることによって、書換え中にエラーや、不慮の事故などが生じて書換えが失敗しても、書換えに必要なブートプログラムがバックアップされているので、再度の書換えが可能であり、安全である。
【００２５】
また、ブートプログラムのみをバックアップするので、必要なフラッシュメモリの容量も小さいので、経済的である。
【００２６】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００２７】
図1は、本発明の実施形態となるプリントシステムの構成を示すブロック図である。図示のように、本実施形態のプリントシステムは、端末装置となるプリンタ１と、プリンタ１とネットワーク（ＬＡＮ）を介して接続されたコンピュータ１００とからなるものであり、コンピュータ１００は、プリンタ１に印刷用データを送信して印刷を行わせるためのプリンタドライバと共に、プリンタ1の制御プログラムを書き換えるためのユーティリティも実装されている。
【００２８】
図２は、図１に示すプリントシステムにおけるプリンタ１の構成を示すブロック図である。図示のように、本実施形態におけるプリンタ１は、不揮発性メモリであるフラッシュメモリ２０と、揮発性メモリＲＡＭ３０と、コンピュータ１００から送信されてきたデータを印刷する印刷実行部５０と、コンピュータとの交信などを行うコントローラ１０とを備えてなるものである。フラッシュメモリ２０は、プリンタ１を動作させるためのプログラム群（データを含む）からなる制御プログラムを記憶した領域Ｂと、制御プログラムに含まれるブートプログラムをバックアップするための領域Ｃと、プリンタ１のブート時に領域Ａに記憶された制御プログラムをＲＡＭ３０にロードするか、領域Ｃに記憶されたブートプログラムをＲＡＭ３０にロードするかを選択する選択プログラムを記憶した領域Ａとからなり、ブートプログラムは、制御プログラムを記憶した領域Ｂの消去や、更新などを行う書換えプログラムと、書換えプログラムが動作する上に必要な通信プログラムや、初期化プログラムなどからなるものである。領域Ｂまたは領域Ｃに記憶されたプログラムは、選択プログラムにより選択されると、ＲＡＭ３０にロードされてプリンタ１を動作させる。
【００２９】
次いで、図３、図４を参照して図２に示すプリンタ１の動作を具体的に説明する。なお、フラッシュメモリ２０、ＲＡＭ３０上のプログラムが動作するには図１と図２に示してないＣＰＵや、各種ハードウェア的な回路を必要とするが、本発明の主旨を分かりやすくするために、ＣＰＵ、各種ハードウェア回路の説明は、ここで省略する。
【００３０】
図４は、図２に示すプリンタ１の全般的な動作を示すフローチャートであり、図３は、図２に示すプリンタ１の制御プログラムを書換える時の動作を示すプロチャートである。まず、プリンタ１の制御プログラムを書換える時の動作を説明する。
【００３１】
図３は、プリンタ１のＲＡＭ３０上に、既にブートプログラム（ブートプログラムのみまたはブートプログラムを含んだ制御プログラム）がロードされた状態からの書換え動作を示すものである。図示のように、プリンタ１における制御プログラムの書換え動作（図示動作Ｐ）は、コントローラ１０を介してコンピュータ１００から書換え開始コマンドを受信した時から始まる。コンピュータ１００から書換え開始コマンドを受信すると（Ｓ１０）、まず、ＲＡＭ３０上にあるブートプログラムは、フラッシュメモリ２０の領域Ｂから、制御プログラムに含まれたブートプログラムを領域Ｃにコピーしてバックアップする（Ｓ１２）。バックアップ作業が終わると、ブートプログラム（ブートプログラムに含まれる書換えプログラム)は、フラッシュメモリ２０の領域Ｂをクリアして既存の制御プログラムを削除する（Ｓ１４）。次いで、ブートプログラムは、コントローラ１０を介して受信したコンピュータ１００から順次送信されてきた新しいプログラム内容からなるデータをフラッシュメモリ２０の領域Ｂに書き込む（Ｓ１６）。書き込む途中に、エラー(書込みエラーや、不意の電源オフなど)が生じる（Ｓ１８：Ｙｅｓ）と、書き込み動作が中断する。このとき、フラッシュメモリ２０の領域Ｂには、不完全な制御プログラムしか書き込まれていないが、領域Ｃには、ブートプログラムがバックアップされている。
【００３２】
エラーが生じなければ（Ｓ１８：Ｎｏ）、領域Ｂへの書込みは、コンピュータ１００から書換え終了コマンドを受信するまで繰り返される（Ｓ２０：Ｎｏ）。一方、コンピュータ１００から書換え終了コマンドを受信すると（Ｓ２０：Ｙｅｓ）、ＲＡＭ３０上のブートプログラムは、領域Ｂに書き込まれた新しい制御プログラムのＳＵＭ値を計算してコントローラ１０を介してコンピュータ１００に返送する（Ｓ２２）。コンピュータ１００における書換え用のユーティリティは、返送されてきたＳＵＭ値と予め計算しておいたＳＵＭ値と比較し、一致していれば、リブートコマンドをプリンタ１に送信する。ブートプログラムはコントローラ１０により、コンピュータ１００からリブートコマンドを受信すると（Ｓ２４：Ｙｅｓ）、プリンタ１をリセットし、再起動させる（Ｓ２６）ことをもって書換え動作を終了する。この場合、領域Ｂには新しい制御プログラムが正常に書き込まれている。
【００３３】
一方、コンピュータ１００側において、プリンタ１から返送されてきたＳＵＭ値と、予め計算しておいてＳＵＭ値と一致しなければ、リブートコマンドを送信しない（Ｓ２４：Ｎｏ）ので、ＲＡＭ３０上のブートプログラムは、プリンタ１をリブートさせないまま、書換え動作を終了する。この場合、領域Ｂに書き込まれた新しい制御プログラムは正常ではないこととなる。
【００３４】
書込み途中でエラーが生じた場合や、書込みが終了したものの正常ではない場合において、ユーザによるプリンタ１の電源の入れ直しを必要とする。
【００３５】
図４は、プリンタ１の電源が入れられた（通常の電源オンや、図３のステップＳ２６に示す書換え正常終了時のリブートや、書込み途中に失敗したときにユーザによる電源の入れ直しなど)時からの動作を示すフローチャートである。図示のように、プリンタ１の電源が入れられると、まず、フラッシュメモリ２０の領域Ａに記憶された選択プログラムは、領域Ｂにある制御プログラムのＳＵＭ値を計算する（Ｓ５０）。制御プログラムのＳＵＭ値が正しければ（工場出荷時状態または正常に書き換えられた状態に相当する）、選択プログラムは、制御プログラムが正常であると判断し、実行するべきプログラムとして領域Ｂの制御プログラムを選択する（Ｓ５５：Ｙｅｓ）。一方、制御プログラムのＳＵＭ値が正しくなければ（書換えが失敗した状態に相当する）、選択プログラムは、制御プログラムが正常ではないと判断し、実行するべきプログラムとして領域Ｃにバックアップされたブートプログラムを選択する（Ｓ５５：Ｎｏ）。選択プログラムは続いて選択した領域のプログラムをＲＡＭ３０にロードし、そのプログラムに該当するフラグを設定する（Ｓ６０〜Ｓ７４）。具体的には、領域Ｂの制御プログラムが選択されれば（Ｓ５５：Ｙｅｓ）、領域Ｂから制御プログラムをＲＡＭ３０にロードすると共に、制御プログラムのフラグ（本実施形態において、例として８１ＦＦＦＦＦＦｈ＝０ｘ００とする）を設定する（Ｓ６０、Ｓ６４）一方、領域Ｃのブートプログラムが選択されれば（Ｓ５５：Ｎｏ）、領域ＣからブートプログラムをＲＡＭ３０にロードすると共に、ブートプログラムのフラグ（本実施形態において、例として８１ＦＦＦＦＦＦｈ＝０ｘ０１する）を設定する（Ｓ７０、Ｓ７４）。
【００３６】
ここまでは、プリンタ1の電源が入れられた後のプログラムロード処理である。
【００３７】
プログラムがＲＡＭ３０ヘロードされれば、プリンタ１の起動処理が始まる。ここで、ＲＡＭ３０上にあるプログラムの種類によって、プリンタ１が異なるモードで起動される。すなわち、ＲＡＭ３０にロードされたプログラムのフラグが制御プログラムであることを示す０であれば（Ｓ８０：Ｙｅｓ）、該プログラムが実行されることによってプリンタ１は通常モード（印刷と書換え両方可能なモード）で起動される（Ｓ８２）一方、ＲＡＭ３０にロードされたプログラムのフラグがブートプログラムであることを示す１であれば（Ｓ８０：Ｎｏ）、該プログラムが実行されることによってプリンタ１はブートモード（書換えのみ可能なモード）で起動される（Ｓ９０）。
【００３８】
通常モードで起動されたプリンタ１は、コンピュータ１００からの指示があるまで待機し（Ｓ８４：Ｎｏ）、コントローラ１０を介してコンピュータ１００から指示を受信する（Ｓ８４：Ｙｅｓ）と、ＲＡＭ３０上の制御プログラムは、この指示が印刷指示であるか書き換え指示であるかを確認する（Ｓ８６）。印刷指示であれば（Ｓ８６：Ｙｅｓ）、制御プログラムに含まれた、印刷を担うプログラムにより印刷実行部５０に印刷を行わせる（Ｓ８８）が、コンピュータ１００からの指示が書換え指示であれば（Ｓ８６：Ｎｏ）、制御プログラムに含まれたブートプログラムにより図３に示す書換え動作Ｐを行う。
【００３９】
一方、ブートモードで起動されたプリンタ１は、コンピュータ１００からの書換え指示があるまで待機し（Ｓ９５：Ｎｏ）、コンピュータ１００から書換え指示を受信する（Ｓ９５：Ｙｅｓ）と、ＲＡＭ３０にロードされたブートプログラム（このとき、ＲＡＭ３０上にブートプログラムのみロードされている）は図３に示す書換え動作Ｐを行う。
【００４０】
このように、本実施形態のプリントシステムにおいて、プリンタ１において、フラッシュメモリ２０に記憶された制御プログラムを書き換える際に、まず制御プログラムに含まれた、書き換え処理に必要最小限のブートプログラムをバックアップ領域となる領域Ｃにコピーしてバックアップするようにしているので、書換え処理中に何らかのはずみで失敗しても、ブートプログラムが残っているので、プリンタ1の電源を入れ直したりすれば、再度制御プログラムの書換えを行うことができるので、安全である。また、バックアップする領域Ｃは、制御プログラムを記憶する領域Ａと同様のフラッシュメモリ２０にある上に、バックアップするプログラムは書換えに必要最小限のブートプログラムであるので、膨大なサイズのフラッシュメモリも、複雑な切替え回路も必要とせず、便利かつ経済的である。
【００４１】
本実施形態のプリントシステムにおけるプリンタ１は、本発明のプログラム書換え方法を用いると共に、フラッシュメモリ２０の領域Ａに選択プログラムを記憶し、この選択プログラムにより、プリンタ１のブート時に領域Ｂにある制御プログラムが正常か否かの判断を行うと共に、制御プログラムが正常であれば制御プログラムをＲＡＭ３０にロードさせるようにしてプリンタ１を通常モードで起動させる一方、制御プログラムが正常ではなければ領域ＣにバックアップされたブートプログラムをＲＡＭ３０にロードさせるようにしてプリンタ１をブートモードで起動させて制御プログラムの再度の書換えを可能にしているので、安全、便利かつ経済的に制御プログラムの書換えが可能な端末装置を実現している。
【００４２】
上述において、本発明の望ましい実施形態について説明したが、本発明のプログラム書換え方法および端末装置は、上述した実施形態に限られるものではなく、本発明の主旨を変えない限り、様々な変更、増減を加えることができる。
【００４３】
例えば、図２に示すプリンタ１は、書き換えられた制御プログラムのＳＵＭ値に基づいてこの制御プログラムが正常であるか否かを判断するようにしているが、制御プログラムが正常であるか否かの判断基準はＳＵＭ値に限られるものではなく、選択プログラムにより正常か否かの判断ができるものであればいかなる情報であってもよい。例えば、制御プログラムの付属情報として付与された、正常か否かを示すデータを用いてもよく、この場合、制御プログラムを書き換える際に、制御プログラムの書換えが正常に終了したときにのみ、制御プログラムに正常を示す付属情報を付与すればよい。
【００４４】
また、図１に示す実施形態のプリントシステムにおけるプリンタ１は、制御プログラムを書き換える際に制御プログラム全体を書き換えるようにしているが、制御プログラムに含まれるプログラムを機能別にグループ分けして夫々の領域に記憶し、書き換える際には選択的に書き換えることを可能にしてもよい。この場合、ブートプログラムが含まれたグループを本発明に定義される制御プログラムとし、このグループが書き換えられるときにのみ、ブートプログラムのバックアップを行うようにしてもよい。
【００４５】
また、ブートプログラムのバックアップを実行するタイミングも、プログラム書換え指示を受信した時に限らず、制御プログラムを書き換える前、すなわち制御プログラムを記憶した領域の消去を行う前のいかなるタイミングでもよい。
【００４６】
また、プリンタ１とコンピュータ１００との接続および通信形態も、ネットワークに限らず、シリアルインターフェースや、パラレルインターフェースなどを介して行ってもよい。
【００４７】
また、上述した実施形態のプリントシステムにおいて、新しい制御プログラムの内容からなるデータをコンピュータ１００から取得するようにしているが、データを記憶した、端末装置からそのデータを取得することができる他のコンピュータのハードディスクや、端末装置自身に備えられた補助記憶装置などから取得するようにしてもよい。
【００４８】
また、本発明のプログラム書換え方法および端末装置は、プリンタに限られることがなく、フラッシュメモリに記憶された制御プログラムにより実行されるいかなる装置にも適用することができる。
【図面の簡単な説明】
【図１】本発明の実施形態のプリントシステムの構成を示すブロック図
【図２】図１に示すプリントシステムにおけるプリンタ１の構成を示す図
【図３】図２に示すプリンタ１の制御プログラム書換えの動作を示すチャート
【図４】図２に示すプリンタ１の全般的な動作を示すフローチャート
【符号の説明】
１    プリンタ
１０    コントローラ
２０    フラッシュメモリ
３０    ＲＡＭ
５０    印刷実行部
１００    コンピュータ
【図１】
2004192329.tif 000003
【図２】
2004192329.tif 000004
【図３】
2004192329.tif 000005
【図４】
2004192329.tif 000006