(57)【要約】【課題】  フラッシュROM内の圧縮されたコントローラファームプログラムを、高速に伸張・展開する。【解決手段】  ローダー移動プログラムを起動し、起動したローダー移動プログラムによって、ローダープログラムをメインRAM上に移動して起動し、起動したローダープログラムによって、データ圧縮されたコントローラファームプログラム本体をメインRAMに移動し、移動したデータ圧縮されたコントローラファームプログラム本体を、ファーム専用のRAMがない場合は、データ伸張してメインRAM上の定められた位置に展開して起動し、ファーム専用のRAMがある場合は、データ伸張してファーム専用のRAM上の定められた位置に展開して起動する。【選択図】  図２
2005178169.tif 000002
【特許請求の範囲】
【請求項１】
印刷するページの画像を生成するコントローラ部と、生成されたページの画像を用紙に転写、現像、定着するエンジン部とを備えたプリンタを含めた印刷装置であって、
コントローラ部において、内蔵のフラッシュROMは、データ圧縮されたコントローラファームプログラム本体、ローダープログラム、ローダー移動プログラムとを有し、
プリンタがユーザーによって電源オンされると、上記ローダー移動プログラムを起動する手段と、
上記起動したローダー移動プログラムによって、ローダープログラムをコントローラ部のRAM上に移動または複写し、起動するローダープログラム起動手段と、
上記起動したローダープログラムによって、データ圧縮されたコントローラファームプログラム本体をRAM上のワーク領域に移動または複写する手段と、
上記ローダープログラムによって、コントローラ部に、上記メインのRAM以外にファーム専用のRAMがあるかどうかをチェックするチェック手段と、
上記チェック手段によってファーム専用のRAMがないと判断できた場合は、上記起動したローダープログラムによって、RAM上のデータ圧縮されたコントローラファームプログラム本体を、データ伸張してRAM上の定められた位置に展開して起動し、上記チェック手段によってファーム専用のRAMがあると判断できた場合は、上記起動したローダープログラムによって、メインのRAM上のワーク領域にあるデータ圧縮されたコントローラファームプログラム本体を、データ伸張してファーム専用のRAM上の定められた位置に展開して起動するファームプログラム起動手段と
を備えたことを特徴とする印刷装置。
【請求項２】
請求項１において、上記起動手段が、データ圧縮されたコントローラファームプログラム本体を展開後、ローダープログラム、データ圧縮されたコントローラファームプログラム本体を解放したあとで、起動することを特徴とする印刷装置。
【請求項３】
請求項１、請求項２において、コントローラ部の内蔵のフラッシュROMはダウンロードプログラムを有し、
上記起動したローダープログラムによって、上記ダウンロードプログラムをRAM上に移動または複写する移動手段と、
上記起動したローダープログラムによって、フラッシュROM内のデータ圧縮されたコントローラファームプログラムが不正であると判断された場合は、上記RAM上に移動または複写後のダウンロードプログラムを起動する手段と、
上記起動したダウンロードプログラムによって、正しい「データ圧縮されたコントローラファームプログラム本体」を内蔵のフラッシュROMにダウンロードする手段と、
を更に備えたことを特徴とする印刷装置。
【請求項４】
請求項３において、上記起動したローダープログラムによって、コントローラ部に付属のパネル経由で、ユーザーからダウンロードの指示があったと判断できた場合は、上記RAM上のダウンロードプログラムを起動する手段を備えたことを特徴とする印刷装置。
【請求項５】
請求項３、請求項４において、上記移動手段は、上記ダウンロードプログラムを上記起動したローダー移動プログラムによって、上記ローダープログラムと共に移動または複写することを特徴とする印刷装置。
【請求項６】
請求項１、２において、コントローラ部の内蔵のフラッシュROMはダウンロードプログラムを有し、
上記起動したローダープログラムによって、フラッシュROM内のデータ圧縮されたコントローラファームプログラム本体が不正であると判断できた場合は、上記ダウンロードプログラムをRAM上に移動し、起動する手段と、
上記起動したダウンロードプログラムによって、正しい「データ圧縮されたコントローラファームプログラム本体」を内蔵のフラッシュROMにダウンロードする手段と、
を備えたことを特徴とする印刷装置。
【請求項７】
請求項６において、上記起動したローダープログラムによって、コントローラ部に付属のパネル経由で、ユーザーからダウンロードの指示があったと判断できた場合は、上記ダウンロードプログラムをRAM上に移動し、起動する手段、を備えたことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラ部とエンジン部で構成された印刷装置であって、コントローラ部に内蔵のフラッシュROMには、データ圧縮されたコントローラファームプログラム本体があり、その圧縮されたプログラムをデータ伸張してコントローラ部のRAM上に展開し、起動する、プリンタを含む印刷装置に関するものである。
【背景技術】
【０００２】
従来、プリンタのコントローラ部としては、コントローラファームプログラム本体がコントローラ部のマスクROMに内蔵され、プリンタの電源オンと同時に、マスクROM上でプログラムが起動されて動作していた。しかし、マスクROMではプログラムの書き換えができないので、障害が発生した場合の障害対応プログラムの配布が難しかった。新規に、障害対応プログラムを内蔵したマスクROMを作成し、コントローラボードに取り付けて準備し、クレームユーザーを訪問して１台１台のコントローラボードを交換することも考えられるが、時間と費用が莫大なものにならざるを得なかった。
【０００３】
そこで、マスクROMを、書き換え可能なフラッシュROMに変えて、障害対応プログラムをダウンロード可能な形にすることが考えられる。ダウンロード作業自体は、ユーザーが容易に行うことができる。
【０００４】
例えば、ROMとしてNAND型のフラッシュROMを使う場合、長所として、安価、比較的大容量、等が挙げられるが、反対に欠点として、NAND型のフラッシュROM上でプログラムを動作させると、アクセススピードが遅い関係から、プログラムの動作が非常に遅くなって実用に耐えないという状況があった。
【０００５】
一方、コントローラファームプログラム本体の大きさも、機能追加によって、マスクROMの容量を越える大きさになり、データ圧縮してようやくマスクROMに格納することができるようになったが、しかし、圧縮したままでは、ROM上でのプログラムは、実行不可である。
【０００６】
上記ふたつの要請から、フラッシュROM上にある圧縮されたコントローラファームプログラム本体を、プリンタの電源オン時に、データ伸張しながらRAM上に展開して、RAM上でコントローラファームプログラムを実行することが考えられる。
【０００７】
この場合、プリンタの電源オンから印刷可能な状態にするまでの時間を、１０数秒までに短縮する必要があることから、上記、フラッシュROM内にある圧縮されたプログラムデータのデータ伸張と、RAM上への展開を高速で行う必要がある。
【０００８】
従来、上記データ伸張と、RAM上への展開を高速で行う技術としては、下記特許文献１等がある。この特許文献１では、ROM内の圧縮プログラムをCPUとCODEC回路でそれぞれ伸張して、RAM上に展開するものであった。
【特許文献１】特開2002-366362号公報「電子機器、及び、電子機器の制御方法」
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、課題の第１は、フラッシュROM内の圧縮されたコントローラファームプログラムを、高速に、データ伸張とRAM上への展開を行うことである。
【００１０】
ただし、プリンタのコントローラには、メインのRAM以外に、ファーム用RAMを搭載した機種があり、プリンタの機種判別をした上で、プログラムの展開先を、メインRAMか、ファームRAMか決定し、RAM上への展開を行う必要がある。これが第２の課題である。
【００１１】
さらには、そもそも「データ伸張とRAM上への展開」作業を行う前に、フラッシュROM内にある圧縮されたコントローラファームプログラムが正しくダウンロードされたモジュールかチェックし、不正なモジュールと判断できた場合は、「データ伸張とRAM上への展開」作業は行わずに、ユーザーに対し、フラッシュROMへの正しいモジュールの再ダウンロードを促す必要がある。不正なモジュールとは、例えば、以前、フラッシュROMへのダウンロード途中で、ダウンロード作業を中止してしまった場合等があたる。これが第３の課題である。
【００１２】
また、上述の通常のプリンタの電源オンの時の動作とは別に、ユーザーの意思によって、フラッシュROM内の圧縮されたコントローラファームプログラムのバージョンアップを行う方法が必要となる。これが第４の課題である。
【００１３】
上記、第１の課題、第２の課題、第３の課題、第４の課題を同時に満たす方法等は、上記文献には記載されていない。
【課題を解決するための手段】
【００１４】
上述した課題を解決するために、本発明では、まず、フラッシュROM内部を固定部とダウンロード部に分ける。ダウンロード部には、データ圧縮されたコントローラファームプログラム本体がダウンロードされる。固定部は、ダウンロードされないプログラム、つまり、変更されないプログラムがセットされている。具体的には、ローダー移動プログラム、ローダープログラム、ダウンロードプログラムがセットされている。
【００１５】
プリンタが電源オンされると、まず、ローダー移動プログラムが、フラッシュROM上で動作を開始するが、固定部の中のローダープログラムをメインRAM上のワーク領域に移動して起動する。すると、ローダープログラムは、固定部の中のダウンロードプログラムをメインRAM上のワーク領域に移したあと、ダウンロード部のデータ圧縮されたコントローラファームプログラム本体が、正しいモジュールかチェックし、正しいと判断できたなら、データ圧縮されたコントローラファームプログラム本体を、CPUのバースト転送機能を使って、高速に、メインRAM上のワーク領域に移動する。
【００１６】
前述のローダープログラム、ダウンロードプログラムの移動についても、CPUのバースト転送機能を使って、高速に、メインRAM上のワーク領域に移動するのは同様である。
【００１７】
そして、このプリンタがファーム用RAMがある機種か、ファーム用RAMがない機種か、コントローラボードの種別から判定し、ファーム用RAMがあれば、メインRAM上のワーク領域にあるデータ圧縮されたコントローラファームプログラム本体を、データ伸張しながら、ファーム用RAMの所定の位置に展開し、起動する。
【００１８】
ファーム用RAMがない機種なら、メインRAM上のワーク領域にあるデータ圧縮されたコントローラファームプログラム本体を、データ伸張しながら、メインRAM上の所定の位置に展開し、起動する。
【００１９】
一方、ローダープログラムが、「フラッシュROM内のデータ圧縮されたコントローラファームプログラム本体が不正なモジュール」と判断したなら、メインRAM上のワーク領域にあるダウンロードプログラムを起動し、ユーザーに対し、正しい「圧縮されたコントローラファームプログラム本体」の再ダウンロードを促す。
【００２０】
または、上述のローダープログラムが、「フラッシュROM内のデータ圧縮されたコントローラファームプログラム本体が不正なモジュール」と判断する前に、「ユーザーがプリンタのパネルから、新しいバージョンの圧縮されたコントローラファームプログラムのダウンロードを指示している」と判断できた場合は、このときも、メインRAM上のワーク領域にあるダウンロードプログラムを起動し、ユーザーに対し、新バージョンの「圧縮されたコントローラファームプログラム本体」の再ダウンロードを促す。
【００２１】
本発明では以上の方法を用いて、上述した第１の課題、第２の課題、第３の課題、第４の課題を同時に解決する。
【００２２】
なお、上述の「移動」の用語は、「コピー」と同義として使用している。以降の記述についても、「移動」を「コピー」と読み替えてもよい。
【発明の効果】
【００２３】
本発明では、CPUのバースト転送機能を使って、高速に、フラッシュROM上のプログラムをメインRAM上に移動し、データ伸張作業をRAM上で行うことで、第１の課題の「フラッシュROM内の圧縮されたコントローラファームプログラムについて、高速に、データ伸張とRAM上への展開」を行うことができる。
【００２４】
本発明では、コントローラボードの種別の判定によりファーム用RAMの有無を判定できるので、第２の課題の「プログラムの展開先を、メインRAMか、ファームRAMか決定し、RAM上への展開を行う」ことができる。
【００２５】
本発明では、フラッシュROM内を固定部とダウンロード部に分け、固定部にダウンロードプログラムを内蔵し、プリンタ起動時にはダウンロードプログラムをメインRAM上のワーク領域に移動し、ダウンロード部にある「データ圧縮されたコントローラプログラム本体」が不正であると判断された場合は、ダウンロードプログラムを起動して、ユーザーに再ダウンロードを促すので、第３の課題を解決することができる。
【００２６】
本発明では、「ユーザーがプリンタのパネルから、新しいバージョンの圧縮されたコントローラファームプログラムのダウンロードを指示している」と判断できた場合は、メインRAM上のダウンロードプログラムを起動するので、第４の課題を解決することができる。
【００２７】
以上により、第１の課題、第２の課題、第３の課題、第４の課題を同時に解決できるという効果がある。
【発明を実施するための最良の形態】
【００２８】
（実施例１）
次に図を用いて第１の実施例を説明する。
【００２９】
図１はプリンタ１のブロック構成図である。
【００３０】
プリンタ１は、コントローラ部２とエンジン部３に分かれているが、コントローラ部２は、パソコン等からの印刷データを受信して、印刷データからページイメージを作成し、そのページイメージをビデオ信号に変換してエンジン部３に送信して、ページの印刷を実行させる。エンジン部３は、コントローラ部２からのページイメージのビデオ信号を受信し、コントローラ部２の指示に従って、用紙へのページイメージの転写、現像、定着、排紙を実行する。
【００３１】
コントローラ部２を構成する要素の詳細は次のとおり。４はコントローラ部２全体を制御するCPU、５は圧縮されたコントローラファームプログラムの入っているフラッシュROM、６はメインRAMである。メインRAM６上には、フラッシュROM５内の圧縮されたコントローラファームプログラムがデータ伸張後セットされ、そのあと起動されて、プリンタとしての動作を開始する。また、メインRAM６は各種プログラムが動作する際のワーク領域として使用される。受信した印刷データは、メインRAM６内に設けられた受信バッファに一時保管され、受信バッファ内の印刷データをもとに描画・生成されるページイメージも、メインRAM６上に作成される。
【００３２】
機種によってはファームRAM７があり、ここにデータ伸張されたコントローラファームがセットされ、そのあと起動される。メインRAM６等、他のモジュールとは別個のバスでCPU４と単独に接続されており、そのバス上はコントローラファームプログラム動作の信号のみが流れるので、高速にプログラム実行できる。
【００３３】
８はパネルインターフェースであって、ユーザーが液晶表示を見ながら、キーを用いてプリンタ１の設定を行うことができる。
【００３４】
９はコントローラ側通信部で、このモジュールを通じてエンジン部３の制御や、状態取得を行うことができる。
【００３５】
１０はビデオ信号変換部で、メインRAM６上に作成されたページイメージをビデオ信号に変換してエンジン部３に送信する。
【００３６】
１１は外部インターフェース部で、パソコン等ホストマシンからの印刷データを受信し、メインRAM６上の受信バッファにセットする役目を持つ。具体的なインターフェースは、ネットワークインターフェース、USBインターフェース、セントロニクスインターフェース等である。
【００３７】
エンジン部３を構成する構成要素の詳細は次のとおり。１２はエンジン部３全体を制御するCPUであり、１３はエンジン部３の制御プログラムが入っているROM、１４は制御プログラムが動作する際のワーク領域としてのRAMである。ROM１３に入っているプログラムはROM１３上で動作する。コントローラ部２のように、フラッシュROM５からプログラムをメインRAM６上に移動して動作させることはしない。
【００３８】
１５はコントローラ部２と通信するためのエンジン側通信部である。エンジン側通信部１５は、コントローラ部２からの給紙指示等の制御コマンドを受け取ることと、エンジン部３の状態をコントローラ部２に知らせるコマンドを送信する役目を持つ。
【００３９】
１６は、コントローラ部２から送られてくるページイメージのビデオ信号を受信するためのビデオ信号受信部であって、ビデオ信号は１８の現像・定着部に送られ、レーザーを利用した電子写真機構によってページイメージが用紙に転写・定着される。
【００４０】
１７は白紙の用紙を給紙する給紙部、１８は前述の現像・定着部、１９は現像・定着後の用紙の排紙を行う排紙部である。
【００４１】
図２は原理の説明図である。
【００４２】
プリンタ１のコントローラ部２の各種メモリ、及び、搭載されているプログラム、及び、その移動と起動の関係を示している。なお、以後「移動」とは「コピー」と同義である。
【００４３】
メモリとしては、フラッシュROM５、メインRAM６、があるが、機種によっては、これ以外にファームRAM７がある。図１でも説明したように、ファームRAM７はメインRAM６とは別個のバスによってCPUと単独接続され、高速でプログラムを実行できる。
【００４４】
まずプリンタ１が電源オンされると、フラッシュROM５上の固定部にあるローダー移動プログラムが起動する。このプログラムだけは、フラッシュROM５上で起動するが、フラッシュROM５はアクセススピードが遅いので、プログラムの動作も非常に遅いため、フラッシュROM５上で動作するのはこのローダー移動プログラムだけである。
【００４５】
ローダー移動プログラムは、同じくフラッシュROM５の固定部にあるローダープログラムを、メインRAM６上のワーク領域に移動し、起動する。ローダー移動プログラムが実行するのはこれだけである。
【００４６】
なお、フラッシュROM５からメインRAM６上への移動は、CPU４のバースト転送機能を用いて、極力高速でプログラムの移動を行う。このバースト転送機能を使う点は、これ以降の記述でも同様である。
【００４７】
メインRAM６上で起動したローダープログラムは、フラッシュROM５上の固定部にあるダウンロードプログラムをメインRAM６上のワーク領域に移動する。この場合も、CPUのバースト転送機能を使用する。
【００４８】
そして、フラッシュROM５上のダウンロード部にあるデータ圧縮されたコントローラファームプログラム本体が正しくダウンロードされたモジュールであるかチェックし、正しいモジュールであると判断できれば、フラッシュROM５上のデータ圧縮されたコントローラファームプログラム本体を、そのまま、メインRAM６上のワーク領域に移動する。このときも、CPUのバースト転送機能を使い、高速にプログラムの移動を行う。
【００４９】
そのあと、この機種のプリンタ１にファームRAM７がついているかどうか、CPU４がコントローラ部２のボードをチェックし、ファームRAM７が搭載されていると判断できたなら、メインRAM６上のワーク領域にあるデータ圧縮されたコントローラファームプログラム本体を、データ伸張しながら、ファームRAM７上の所定の位置に展開し、コントローラファームプログラムを起動する。
【００５０】
ファームRAM７が搭載されていないと判断できたなら、メインRAM６上のワーク領域にあるデータ圧縮されたコントローラファームプログラム本体を、データ伸張しながら、メインRAM６上の所定の位置に展開し、コントローラファームプログラムを起動する。
【００５１】
上記コントローラファームプログラムを起動する直前には、メインRAM６のワーク領域に移動した、ローダープログラム、ダウンロードプログラム、データ圧縮されたコントローラファームプログラム本体、はメモリ上から解放される。つまり、消去される。
【００５２】
一方、フラッシュROM５上のデータ圧縮されたコントローラファームプログラム本体が、不正なモジュールであった場合、つまり、以前にダウンロードしたとき途中でダウンロードが中断してしまった場合等は、メインRAM６上のワーク領域にあるローダープログラムは、メインRAM６上のワーク領域にあるダウンロードプログラムを起動する。つまり、フラッシュROM５内の不正な「データ圧縮されたコントローラファームプログラム本体」の、メインRAM６のワーク領域上への移動は行わない。
【００５３】
起動されたダウンロードファイルは、プリンタ１のパネル８に、「データ圧縮されたコントローラファームプログラム」のダウンロードを促す表示を行い、プリンタの外部インターフェース１１から「データ圧縮されたコントローラファームプログラム」が入力されたなら、フラッシュROM５にダウンロードしセットして動作を終了する。
【００５４】
正しくダウンロードされたかどうかは、次の手順で行うので確実である。まず、ダウンロードする前に、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域を消去する。外部インターフェース１１を経由して届いたダウンロードモジュールの先頭にはチェックサム情報があるので、それをメインRAMのワーク領域に控えておく。そして、ダウンロードモジュールの「データ圧縮されたコントローラファームプログラム本体」をフラッシュROM５のダウンロード部にダウンロード、セットする。そしてセットされた後、フラッシュROM５内のダウンロード部にある「データ圧縮されたコントローラファームプログラム本体」のチェックサムを計算し、最初に控えておいたチェックサム値と同一か判定し、同一なら、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域にチェックサム値を記録する。
【００５５】
仮にチェックサム値が一致しないなら、ダウンロードが失敗したとして、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域には何も記録しない。
【００５６】
図３は、第１の実施例の動作を説明するフローチャートである。
【００５７】
まず、プリンタ１を電源オンすると、ステップＳ１で、フラッシュROM５上のローダー移動プログラムが起動する。ローダー移動プログラムはフラッシュROM５上で動作するが、前述のように、フラッシュROM５のアクセススピードは遅いので、ローダー移動プログラムの動作も遅い。起動したローダー移動プログラムは、ステップＳ２で、フラッシュROM５の固定部にあるローダープログラムをメインRAM６上のワーク領域に移動し、ステップＳ３で、移動したローダープログラムを起動する。ちなみに、この場合の「移動」は、実際は「コピー」である。CPUのバースト転送機能を使って高速のコピーを行う。また、ローダープログラムを起動した時点で、ローダー移動プログラムの動作は終了する。
【００５８】
ステップＳ３のあとはステップＳ４に移るが、この部分はローダープログラムによる動作である。ステップＳ４では、フラッシュROM５上のダウンロードプログラムを、メインRAM６上のワーク領域に移動するが、この場合の「移動」も実際はコピーで、CPUのバースト転送機能を使って高速のコピーを行うことは同じ。
【００５９】
ステップＳ４のあとは、ステップＳ５で、フラッシュROM５内のダウンロード部にある、データ圧縮されたコントローラファームプログラムは正しいかチェックし、ＹＥＳならステップＳ６で、フラッシュROM５内のダウンロード部にあるデータ圧縮されたコントローラファームプログラム本体を、メインRAM６上のワーク領域に移動する。この場合の「移動」も、実際にはコピーであり、CPUのバースト転送機能を使って高速のコピーを行うことは同じである。
【００６０】
そのあとステップＳ７で、このプリンタ１のコントローラ部２にはファームRAM７が搭載されているかチェックし、ＹＥＳなら、ステップＳ８で、メインRAM６のワーク領域にあるデータ圧縮されたコントローラファームプログラムを、データ伸張してファームRAM７上の所定の位置に展開して、コントローラファームプログラムを起動する。なお、起動する前には、メインRAM６上のワーク領域にある、ローダープログラム、ダウンロードプログラム、データ圧縮されたコントローラファームプログラム、を解放してから、つまり消去してから、ファームRAM７上のコントローラファームプログラムを起動する。この時点で、ローダープログラムの動作は終了する。
【００６１】
ステップＳ８の後はステップＳ９で、ユーザーによってプリンタが電源オフされるまで、ファームRAM７上のコントローラファームプログラムにより、プリンタ動作を実行・継続する。
【００６２】
ステップＳ７でＮＯの場合は、ステップＳ１０で、メインRAM６のワーク領域にあるデータ圧縮されたコントローラファームプログラムを、データ伸張してメインRAM６上の所定の位置に展開して、コントローラファームプログラムを起動する。ステップＳ９の場合と同じく、起動する前には、メインRAM６上のワーク領域にある、ローダープログラム、ダウンロードプログラム、データ圧縮されたコントローラファームプログラム、を解放してから、つまり消去してから、メインRAM６上の所定の位置にあるコントローラファームプログラムを起動する。この時点で、ローダープログラムの動作は終了するのも、ステップＳ９の場合と同様。
【００６３】
ステップＳ１０のあとは、ステップＳ９に移り、ユーザーによってプリンタが電源オフされるまで、ファームRAM７上のコントローラファームプログラムにより、プリンタ動作を実行・継続する。
【００６４】
ステップＳ５でＮＯの場合は、ステップＳ１１で、メインRAM６上のワーク領域にあるダウンロードプログラムを起動し、この時点で、ローダープログラムの動作を終了する。次に、ステップＳ１２で、ダウンロードプログラムの働きにより、外部インターフェース部１１経由で受信した、データ圧縮されたコントローラファームプログラムデータを、フラッシュROM５のダウンロード部にダウンロード、セットする。そして、すべての動作を終了する。
【００６５】
ステップＳ１２の動作の詳細は、次のとおり。まず、ダウンロードする前に、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域を消去する。外部インターフェース１１を経由して届いた「データ圧縮されたコントローラファームプログラムデータ」としてのダウンロードモジュールの先頭にはチェックサム情報があるので、メインRAM６のワーク領域に保存しておく。そして、ダウンロードモジュールの「データ圧縮されたコントローラファームプログラム本体」をフラッシュROM５のダウンロード部にダウンロード、セットする。そしてセットした後、フラッシュROM５内のダウンロード部にある「データ圧縮されたコントローラファームプログラム本体」のチェックサムを計算し、最初にメインRAM６のワーク領域に保存しておいたチェックサム値と同一か判定し、同一なら、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域にチェックサム値を記録する。
【００６６】
仮にチェックサム値が一致しないなら、ダウンロードが失敗したとして、フラッシュROM５内のダウンロード部にある、チェックサムを記録する領域には何も記録しない。
【００６７】
また、ダウンロードモジュールの転送作業の途中で、送信元のパソコンの不調、あるいは、送信経路の不調等の理由で、転送作業が中断した場合も、チェックサム値を記録しない。
【００６８】
以上の仕組みにより、図３のフローチャート上のステップＳ５の段階では、このフラッシュROM５内のチェックサム記録領域をチェックすることで、フラッシュROM内の圧縮されたコントローラファームプログラムが正しいかどうか判断することができる。
【００６９】
（実施例２）
実施例１では、「ユーザーからの強制的なダウンロード指示」の手順はなかったが、実施例２では、この操作・処理を挿入した形で、全体の動作手順を考えることもできる。
【００７０】
具体的には、実施例１の図３の、ステップＳ４とステップＳ５の間に、ステップＳ１３を挿入する。それが、図４であって、ステップＳ１３では、プリンタ１のパネル８から、ユーザーによるダウンロードの指示があったかチェックする。「ユーザーによるダウンロードの指示」とは、具体的には、ユーザーが、プリンタ１のパネル８上の複数のキーを押しながらプリンタ１の電源をオンにする、等の操作である。
【００７１】
ステップＳ１３でＮＯなら、ステップＳ５に移り、以降の動作を続けるが、図３で説明済みなので詳細は省略する。
【００７２】
ステップＳ１３で、ユーザーによるプリンタ１のパネル８からの、「ダウンロードの指示」があったと判断されたなら、ステップＳ１１に移り、メインRAM６のワーク領域にあるダウンロードプログラムを起動する。この時点で、ローダープログラムの動作は終了する。そして、ステップＳ１２で、ダウンロードプログラムの働きにより、外部インターフェース部１１経由で受信した、データ圧縮されたコントローラファームプログラムデータを、フラッシュROM５のダウンロード部にダウンロード、セットする。そして、すべての動作を終了する。
【００７３】
（実施例３）
実施例１、実施例２では、ローダー移動プログラムのみフラッシュROM５上で動作し、フラッシュROM５内の固定部にあるローダープログラムをメインRAM６上へ移動して起動し、その後は、メインRAM６上で動作中のローダープログラムが、フラッシュROM５内の固定部にあるダウンロードプログラムと、ダウンロード部にある「データ圧縮されたコントローラファームプログラム本体」を、メインRAM６上のワーク領域に移動していた。
【００７４】
実施例３では、ダウンロードプログラムがそれほど大きくないと仮定して、最初に起動したローダー移動プログラムが、フラッシュROM５内の固定部にあるローダープログラムとダウンロードプログラムを、いっしょにして、メインRAM６のワーク領域に移動する。
【００７５】
このようにすれば、動作がより単純になる。
【００７６】
なお、実施例３においても、上述の「移動」は「コピー」と同義である。
【００７７】
（実施例４）
実施例１、実施例２、実施例３では、動作の手順の中で、ダウンロードプログラムをメインRAM６上のワーク領域に移動しておいてから、「ユーザーから、パネルでダウンロードの指示があったか」、あるいは、「フラッシュROM５内のデータ圧縮されたコントローラファームプログラムが正しいか」チェックし、「ダウンロード指示があった」、あるいは、「コントローラファームプログラムが不正」と判断された場合は、メインRAM５上のワーク領域にあるダウンロードプログラムを起動する形にしていた。
【００７８】
実施例４では、ダウンロードプログラムの移動の順序を逆にする。
【００７９】
つまり、「ユーザーから、パネルでダウンロードの指示があったか」、あるいは、「フラッシュROM５内のデータ圧縮されたコントローラファームプログラムが正しいか」チェックし、「ダウンロード指示があった」、あるいは、「コントローラファームプログラムが不正」と判断された場合に、その時点で、フラッシュROM５内の固定部にあるダウンロードプログラムをメインRAM６上のワーク領域に移動して起動するようにする。
【００８０】
このようにすれば、プリンタ１の通常の電源オンの場合は、フラッシュROM５からメインRAM６への、ダウンロードプログラムの移動が省けるので、プリンタの立ち上がり時間の節約になる。
【００８１】
なお、実施例４においても、上述の「移動」は「コピー」と同義である。
【図面の簡単な説明】
【００８２】
【図１】プリンタのブロック構成図。
【図２】原理の説明図。
【図３】手順の説明図。
【図４】第２の実施例の、手順の説明図。
【符号の説明】
【００８３】
１  プリンタ
２  コントローラ部
３  エンジン部
４  CPU
５  フラッシュROM
６  メインRAM
７  ファームRAM
８  パネル
９  コントローラ側通信部
１０  ビデオ信号変換部
１１  外部インターフェース部
１２  CPU
１３  ROM
１４  RAM
１５  エンジン側通信部
１６  ビデオ信号受信部
１７  給紙部
１８  現像・定着部
１９  排紙部
【図１】
2005178169.tif 000003
【図２】
2005178169.tif 000004
【図３】
2005178169.tif 000005
【図４】
2005178169.tif 000006