(57)【要約】【課題】  状況に応じて短時間で効率的にフラッシュＲＯＭの書換を実行することが可能なプリンタ及びフラッシュＲＯＭ書換方法を提供する。【解決手段】  サブ側フラッシュＲＯＭ１３２には、サブＣＰＵ部用プログラムの一つである第１メインプログラムが記憶される第１メインプログラム領域１３２ｂと、サブＣＰＵ部用プログラムの一つである第２メインプログラムが記憶される第２メインプログラム領域１３２ｃとを有している。サブＣＰＵ部１３０は、第１メインプログラム領域１３２ｂと第２メインプログラム領域１３２ｃとのうち、最も新しく書き換えられた領域中のプログラムを実行して、サブＣＰＵ部１３０の制御及び他方のプログラム領域のデータ書換を実行する。【選択図】      図２
2005288943.tif 000002
【特許請求の範囲】
【請求項１】
メインＣＰＵ部と、
前記メインＣＰＵ部と通信可能に接続されたサブＣＰＵ部と、
前記メインＣＰＵ部上に配置され、前記メインＣＰＵ部にて実行されるメインＣＰＵ部
用プログラムを記憶する第１のフラッシュＲＯＭと、
前記サブＣＰＵ部上に配置され、前記サブＣＰＵ部にて実行されるサブＣＰＵ部用プロ
グラムを記憶する第２のフラッシュＲＯＭと、を備えたプリンタであって、
前記第２のフラッシュＲＯＭは、前記サブＣＰＵ部用プログラムの一つである第１メイ
ンプログラムが記憶される第１メインプログラム領域と、前記サブＣＰＵ部用プログラム
の一つである第２メインプログラムが記憶される第２メインプログラム領域とを有し、
前記サブＣＰＵ部は、前記第１メインプログラム領域と前記第２メインプログラム領域
とのうち、最も新しく書き換えられた領域中のプログラムを実行して、前記サブＣＰＵ部
の制御を実行することを特徴とするプリンタ。
【請求項２】
前記サブＣＰＵ部は、前記第１メインプログラム領域と前記第２メインプログラム領域
のうち、最も新しく書き換えられた領域中のプログラムを実行して、前記第２のフラッシ
ュＲＯＭのデータ書換を実行することを特徴とする請求項１記載のプリンタ。
【請求項３】
前記サブＣＰＵ部は、前記第１メインプログラム領域及び前記第２メインプログラム領
域の一方に保存された前記第１メインプログラム及び前記第２メインプログラムの一方を
実行して、前記第１メインプログラム領域及び前記第２メインプログラム領域の他方のデ
ータを書き換えることを特徴とする請求項１または２記載のプリンタ。
【請求項４】
前記サブＣＰＵ部は、前記第１メインプログラムまたは前記第２メインプログラムを実
行することにより、前記サブＣＰＵ部の再起動を行うことなく通常モードからフラッシュ
ＲＯＭ書き換えモードに移行し、前記第２のフラッシュＲＯＭのデータ書換を実行するこ
とを特徴とする請求項１〜３の何れか一項に記載のプリンタ。
【請求項５】
前記第１メインプログラム領域及び前記第２メインプログラム領域には、それぞれデー
タ書き換え回数を示す更新回数データが保存されており、
前記サブＣＰＵ部は、前記更新回数データを参照して、最も新しく書き換えられた領域
を判別して、実行すべきプログラムを選択することを特徴とする請求項１〜４の何れか１
項に記載のプリンタ。
【請求項６】
前記メインＣＰＵ部は、フラッシュＲＯＭ書換指示に応じて、フラッシュＲＯＭ書換モ
ードに移行するとともに、前記サブＣＰＵ部にフラッシュＲＯＭ書換コマンドを送信し、
前記サブＣＰＵ部は、前記メインＣＰＵ部から受信した前記フラッシュＲＯＭ書換コマ
ンドに応じて、前記サブＣＰＵ部を再起動することなくフラッシュＲＯＭ書換モードに移
行することを特徴とする請求項１〜５の何れか１項に記載のプリンタ。
【請求項７】
さらに、フラッシュＲＯＭ書換終了とともに音を発するブザーを備えたことを特徴とす
る請求項１〜６の何れか１項に記載のプリンタ。
【請求項８】
前記ブザーは、前記第１のフラッシュＲＯＭ及び前記第２のフラッシュＲＯＭの領域毎
に異なる音を発することを特徴とする請求項７記載のプリンタ。
【請求項９】
第１メインプログラム領域と第２メインプログラム領域とを有するフラッシュＲＯＭを
備えたプリンタにおけるフラッシュＲＯＭ書換方法であって、
前記第１メインプログラム領域と前記第２メインプログラム領域のうち最も新しく更新
された一方の領域を選択するステップと、
前記一方の領域内の起動プログラムを用いて前記プリンタを起動するステップと、
フラッシュＲＯＭ書換コマンドに応じて、前記一方の領域内のフラッシュＲＯＭ書換プ
ログラムを実行して、他方の領域内のデータを書き換えるステップと、を有することを特
徴とするフラッシュＲＯＭ書換方法。
【請求項１０】
前記第１メインプログラム領域と前記第２メインプログラム領域に設けられた内部デー
タの更新回数を示す更新回数データの大きいほうが最も新しく更新された前記一方の領域
であると判断されることを特徴とする請求項９記載のフラッシュＲＯＭ書換方法。
【請求項１１】
前記フラッシュＲＯＭの書換終了を知らせる音を発するステップを備えたことを特徴と
する請求項９または１０に記載のフラッシュＲＯＭ書換方法。
【請求項１２】
フラッシュＲＯＭの領域毎に異なる音を発することを特徴とする請求項１１記載のフラ
ッシュＲＯＭ書換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ及びフラッシュＲＯＭ書換方法に関する。
【背景技術】
【０００２】
プリンタの中には、用紙に印刷を行うだけでなく、用紙に記録された情報を読み取り可
能な用紙情報読取装置付きのプリンタも提案されている。
【０００３】
この種のプリンタとしては、例えばスリップ紙やロール紙に印刷を行うとともに、スリ
ップ紙上の画像を読取可能なプリンタが知られている。この種のプリンタには、印刷制御
用のメインＣＰＵ部と、このメインＣＰＵ部と内部インタフェースを介して通信可能に接
続されたサブＣＰＵ部が用意されている場合がある（例えば、特許文献１及び特許文献２
参照）。
【０００４】
メインＣＰＵ部には、ＣＰＵ、ＲＡＭ、フラッシュＲＯＭ等が搭載されており、これら
により主として印刷制御用の制御回路が構成されている。メインＣＰＵ部のＣＰＵは、内
部に設けられたフラッシュＲＯＭからファームウェアを起動することにより、各種印刷部
、紙送り機構、各種検出部を動作させて、スリップ紙やロール紙に印刷を実行させる。
【０００５】
また、サブＣＰＵ部には、メインＣＰＵ部と同様に、ＣＰＵ、ＲＡＭ、フラッシュＲＯ
Ｍ等が搭載されており、主として画像読取制御（スキャン）用の制御回路が構成されてい
る。サブＣＰＵ部のＣＰＵは、内部に設けられたフラッシュＲＯＭからファームウェアを
起動することにより、スリップ紙送り機構、画像読取センサを駆動して、スリップ紙上に
形成された画像を読み取らせている。
【０００６】
この種のプリンタ装置では、メインＣＰＵ部及びサブＣＰＵ部の各フラッシュＲＯＭ内
には、それぞれの制御対象部の起動処理を実行させるブートプログラムが記憶された「ブ
ートセクタ」と、それぞれの制御対象部を介して印刷や画像読取等の通常モードにおける
制御を行うためのメインプログラムが記憶された「メインセクタ」と、各種設定値やフォ
ントデータ等が保存される「データ格納セクタ」とが設けられている。
【０００７】
従来、このような二つのＣＰＵ部を備えた装置では、各ＣＰＵ部上のフラッシュメモリ
のブートセクタ内には、データ書換用のフラッシュメモリ書換プログラムが保存されてい
る。ファームウェアの書換時には、各ＣＰＵ部は対応するフラッシュメモリ内に保存され
たフラッシュメモリ書換プログラムを実行することにより、各ＣＰＵ部が再起動を行って
フラッシュメモリ書換モードに移行し、ファームウェアの書換を行うように構成されてい
る。
【特許文献１】特開２００３−０８７４９６号公報
【特許文献２】特開２００３−０８７４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記構成のようにメインＣＰＵ部とサブＣＰＵ部が再起動を行ってフラ
ッシュメモリ書換モードに移行するような構成においては、メインＣＰＵ部とサブＣＰＵ
部の双方は、ＤＩＰスイッチやコマンドの受信に応じて、両ＣＰＵ部の再起動を行った後
にフラッシュメモリ書換モードに移行し、ファームウェアの書換を実行した後に、再びシ
ステムの再起動を行い通常モードに移行する。このように、上記構成では、メインＣＰＵ
部とサブＣＰＵ部の双方が、それぞれ再起動を２回行わなければファームウェアの書換を
行った後に通常モードに移行できない。
【０００９】
また、上述のように、プリンタ内部のシステムが再起動を行うと、プリンタは各ＣＰＵ
部の初期化動作を行うとともに、その都度ホストコンピュータとの接続を確立しなければ
ならないという手間が発生する。そのため、上記のようなフラッシュメモリの書換では、
通常モードからフラッシュメモリ書換モードに移行して、もう一度通常モードに戻るまで
に非常に長い時間が必要とされていた。
【００１０】
本発明は、上記を鑑みてなされたものであり、フラッシュＲＯＭの書換時の内部処理を
効率化することによって、状況に応じて短時間で効率的にフラッシュＲＯＭの書換を実行
することが可能なプリンタ及びフラッシュＲＯＭ書換方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
（１）  メインＣＰＵ部と、
前記メインＣＰＵ部と通信可能に接続されたサブＣＰＵ部と、
前記メインＣＰＵ部上に配置され、前記メインＣＰＵ部上で実行されるメインＣＰＵ部
用プログラムを記憶する第１のフラッシュＲＯＭと、
前記サブＣＰＵ部上に配置され、前記サブＣＰＵ部上で実行されるサブＣＰＵ部用プロ
グラムを記憶する第２のフラッシュＲＯＭと、を備えたプリンタであって、
前記第２のフラッシュＲＯＭには、前記サブＣＰＵ部用プログラムの一つである第１メ
インプログラムが記憶される第１メインプログラム領域と、前記サブＣＰＵ部用プログラ
ムの一つである第２メインプログラムが記憶される第２メインプログラム領域とを有し、
前記サブＣＰＵ部は、前記第１メインプログラム領域と前記第２メインプログラム領域
とのうち、最も新しく書き換えられた領域中のプログラムを実行して、前記サブＣＰＵ部
の制御を実行することを特徴とするプリンタ。
（２）  前記サブＣＰＵ部は、前記第１メインプログラム領域と前記第２メインプロ
グラム領域のうち、最も新しく書き換えられた領域中のプログラムを実行して、前記第２
のフラッシュＲＯＭのデータ書換を実行することを特徴とする（１）記載のプリンタ。
（３）  前記サブＣＰＵ部は、前記第１メインプログラム領域及び前記第２メインプ
ログラム領域の一方に保存された前記第１メインプログラム及び前記第２メインプログラ
ムの一方を実行して、前記第１メインプログラム領域及び前記第２メインプログラム領域
の他方のデータを書き換えることを特徴とする（１）または（２）記載のプリンタ。
（４）  前記サブＣＰＵ部は、前記第１メインプログラム及び前記第２メインプログ
ラムを実行することにより、前記サブＣＰＵ部の再起動を行うことなく通常モードからフ
ラッシュＲＯＭ書き換えモードに移行し、前記第２のフラッシュＲＯＭのデータ書換を実
行することを特徴とする（１）〜（３）の何れか一項に記載のプリンタ。
（５）  前記第１メインプログラム領域及び前記第２メインプログラム領域には、そ
れぞれデータ書き換え回数を示す更新回数データが保存されており、
前記サブＣＰＵ部は、前記更新回数データを参照して、最も新しく書き換えられた領域
を判別して、実行すべきプログラムを選択することを特徴とする（１）〜（４）の何れか
１項に記載のプリンタ。
（６）  前記メインＣＰＵ部は、フラッシュＲＯＭ書換指示に応じて、フラッシュＲ
ＯＭ書換モードに移行するとともに、前記サブＣＰＵ部にフラッシュＲＯＭ書換コマンド
を送信し、
前記サブＣＰＵ部は、前記メインＣＰＵ部から受信した前記フラッシュＲＯＭ書換コマ
ンドに応じて、前記サブＣＰＵ部を再起動することなくフラッシュＲＯＭ書換モードに移
行することを特徴とする（１）〜（５）の何れか１項に記載のプリンタ。
（７）  さらに、フラッシュＲＯＭ書換終了とともに音を発するブザーを備えたこと
を特徴とする（１）〜（６）の何れか１項に記載のプリンタ。
（８）  前記ブザーは、前記第１のフラッシュＲＯＭ及び前記第２のフラッシュＲＯ
Ｍの領域毎に異なる音を発することを特徴とする（７）記載のプリンタ。
（９）  第１メインプログラム領域と第２メインプログラム領域とを備えたフラッシ
ュＲＯＭを備えたプリンタにおけるフラッシュＲＯＭ書換方法であって、
前記第１メインプログラム領域と前記第２メインプログラム領域のうち最も新しく更新
された一方の領域を選択するステップと、
前記一方の領域内の起動プログラムを用いて前記プリンタを起動するステップと、
フラッシュＲＯＭ書換コマンドに応じて、前記一方の領域内のフラッシュＲＯＭ書換プ
ログラムを実行して、他方の領域内のデータを書き換えるステップと、を有することを特
徴とするフラッシュＲＯＭ書換方法。
（１０）  前記第１メインプログラム領域と前記第２メインプログラム領域に設けら
れた内部データの更新回数を示す更新回数データの大きいほうが最も新しく更新された前
記一方の領域であると判断されることを特徴とする（１０）記載のフラッシュＲＯＭ書換
方法。
（１１）  前記フラッシュＲＯＭの書換終了を知らせる音を発するステップを備えた
ことを特徴とする（９）または（１０）に記載のフラッシュＲＯＭ書換方法。
（１２）  フラッシュＲＯＭの領域毎に異なる音を発することを特徴とする（１１）
記載のフラッシュＲＯＭ書換方法。
【発明の効果】
【００１２】
本発明によれば、第１メインプログラム領域と第２メインプログラム領域のプログラム
は内容が異なるが、何れの領域のメインプログラムを実行してもサブＣＰＵ部は動作可能
のである。したがって、本実施形態では、何れか一方のプログラム領域のデータが破損し
た場合であっても、他方のプログラム領域のデータ、すなわちプログラムを実行してサブ
ＣＰＵ部を起動することにより、プリンタを動作させることが可能である。よって、一方
のメインプログラム領域の書換に失敗した場合であっても、他方のプログラム領域のプロ
グラムを用いてプリンタを起動し動作させることが可能となる。
【００１３】
また、本発明によれば、サブＣＰＵ部は、第１メインプログラム及び第２メインプログ
ラムの一方を実行することにより、サブＣＰＵ部の再起動を行うことなく通常モードから
フラッシュＲＯＭ書き換えモードに移行することができる。したがって、第２のフラッシ
ュＲＯＭのデータ書換を実行するにあたって、サブＣＰＵ部の初期化等の起動処理を行う
必要が無く、速やかに通常モードからフラッシュＲＯＭ書換モードに移行することが可能
である。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら、本発明に係るプリンタ及びフラッシュＲＯＭ書換方法の実
施形態について、詳細に説明を行う。
【００１５】
図１は、本実施形態のプリンタを示す斜視図である。
本実施形態のプリンタ１は、図１に示すように、給紙部３に装填される小切手Ｓ（スリ
ップ紙）を筐体１ａに形成された用紙搬送路Ｐ１に沿って排紙部４まで搬送するとともに
、カード挿入口２０から挿入される第２の読み取り媒体であるカードＣを同じく筐体１ａ
に形成された用紙搬送路Ｐ２に沿って搬送可能に構成されている。そして、プリンタ１は
、用紙搬送路Ｐ１に沿って小切手Ｓを搬送しながら、小切手Ｓ上の画像を読み取り、小切
手Ｓに印字された磁気文字を読み取り、かつ小切手Ｓ上への印字を行うとともに、用紙搬
送路Ｐ２に沿ってカードＣを搬送しながら、カードＣ上の画像を読み取ることが可能であ
る。
また、このプリンタ１には、ロール紙収納部２５の内部に図示せぬロール紙が収納され
ており、このロール紙に対しても印字が行えるように構成されている。印字されたロール
紙は、ロール紙排出口３０から排出される。
このように、本実施形態のプリンタ１は、画像読取装置兼磁気文字読み取り装置兼印字
装置である。
【００１６】
次に、本実施形態のプリンタ１の制御回路について説明を行う。
図２は、プリンタ１の制御回路を示すブロック図である。
本実施形態のプリンタ１は、図２に示すように、主としてロール紙やスリップ紙への印
刷を制御するメインＣＰＵ部１１０と、主として画像読取センサを介してスリップ紙やカ
ードの画像取得を制御するサブＣＰＵ部１３０とを備えている。
【００１７】
メインＣＰＵ部１１０は、メインＣＰＵ部１１０における制御中枢であるＣＰＵ１１１
と、メインＣＰＵ部用ファームウェアである各種プログラムを記憶する不揮発性メモリと
してのメイン側フラッシュＲＯＭ１１２と、データ一次記憶領域としての揮発性メモリで
あるＲＡＭ１１３と、外部（具体的にはホストコンピュータ）との通信を行うシリアルイ
ンタフェース１１４と、サブＣＰＵ部１３０との通信を行うメイン側内部インタフェース
１１５とを有している。
【００１８】
また、メインＣＰＵ部１１０には、スリップ紙への印刷を行うスリップ紙印刷機構１２
１とロール紙への印刷を行うロール紙印刷機構１２２が接続されている。これらの印刷機
構１２１，１２２は、メインＣＰＵ部１１０からの指示に応じて動作することにより、ロ
ール紙やスリップ紙Ｓへの印刷を実行する。
【００１９】
一方、サブＣＰＵ部１３０は、サブＣＰＵ部１３０における制御中枢であるＣＰＵ１３
１と、サブＣＰＵ部用ファームウェアである各種プログラムを記憶する不揮発性メモリで
あるサブ側フラッシュＲＯＭ１３２と、データ一次記憶領域としての揮発性メモリである
ＲＡＭ１３３と、外部（具体的には、ホストコンピュータ）との通信を行うＵＳＢインタ
フェース１３４と、メインＣＰＵ部１１０との通信を行うサブ側内部インタフェース１３
５と、ＣＰＵ１３１からの指示に応じて音を発するブザー１３８とを有している。
【００２０】
また、サブＣＰＵ部１３０には、スリップ紙ＳやカードＣの画像を読み取る画像読取セ
ンサを備えた画像読取部１４２が接続されている。画像読取部１４２は、サブＣＰＵ部１
３０からの指示に応じて画像読取センサを駆動することにより、スリップ紙ＳやカードＣ
をスキャンして、画像情報を取得する。
【００２１】
本実施形態では、プリンタ１は、制御用のホストコンピュータとメインＣＰＵ部１１０
に設けられたシリアルインタフェース１１４またはサブＣＰＵ部１３０に設けられたＵＳ
Ｂインタフェース１３５を介して通信可能に接続される。
【００２２】
また、メインＣＰＵ部１１０とサブＣＰＵ部１３０は、メイン側内部インタフェース１
１５とサブ側内部インタフェース１３４を介して内部バス１２０によって通信可能に接続
されている。したがって、メインＣＰＵ部１１０とサブＣＰＵ部１３０は、シリアルまた
はＵＳＢの何れのインタフェースを介してホストコンピュータと接続されている場合でも
、ホストコンピュータからのコマンドに応じた処理を実行することが可能である。本実施
形態では、ホストコンピュータから送信されるコマンドは、シリアルインタフェース１１
４及びＵＳＢインタフェース１３５の何れのインタフェースが用いられている場合でも、
メインＣＰＵ部１１０側にてコマンドの受信を行い、ＣＰＵ１１１の判断に応じて、必要
な場合にはサブＣＰＵ部１３０にコマンドが転送される。
【００２３】
次に、本実施形態のメイン側フラッシュＲＯＭ１１２及びサブ側フラッシュＲＯＭ１３
２について説明を行う。
【００２４】
フラッシュＲＯＭ１１２及びサブ側フラッシュＲＯＭ１３２は、電気的に記憶の消去及
び書き込みを実行可能な不揮発性メモリであり、それぞれ複数に分割されたセクタ単位で
データを消去し、新たなデータを書き込むことが可能である。なお、フラッシュＲＯＭは
フラッシュメモリと呼ばれることもある。
【００２５】
図３は、メイン側フラッシュＲＯＭ１１２の内部データ構造を示す図であり、図４は、
サブ側フラッシュＲＯＭ１３２の内部データ構造を示す図である。
【００２６】
本実施形態のメイン側フラッシュＲＯＭ１１２には、図３に示すように、ブート領域１
１２ａと、メインプログラム領域１１２ｂと、データ格納領域１１２ｃと、未使用領域１
１２ｄが記憶領域として確保されている。
【００２７】
ブート領域１１２ａには、プリンタ１のメインＣＰＵ部１１０の起動処理を実行する起
動プログラムと、メインＣＰＵ部１１０に搭載されたメイン側フラッシュＲＯＭ１１２内
の各種データを書き換えるフラッシュＲＯＭ書換プログラムとが記憶されている。ＣＰＵ
１１１は、プリンタ１の電源オン時、リセット時にブート領域１１２ａ内のデータの起動
プログラムを実行して、プリンタ１の起動処理を行う。ここで、プリンタ１の起動処理に
おいては、ＲＡＭ１１３やその他記憶回路のチェック、起動モードの判定等が行われる。
【００２８】
メインプログラム領域１１２ｂには、起動プログラムの実行が終了した後に、プリンタ
１を制御するために行われる各種プログラム（以下、メイン側メインプログラム）が保存
されている。このメインプログラム領域１１２ｂ内のメイン側メインプログラムが実行さ
れることにより、シリアルインタフェース１１４を介しての通信処理、サブＣＰＵ部１３
０との通信処理、ホストコンピュータから送信されるコマンド処理、スリップ紙印刷機構
１２１及びロール紙印刷機構１２２の制御等が行われる。
【００２９】
データ格納領域１１２ｃには、主としてメイン側メインプログラムの実行に必要な各種
設定値が保存されている。メイン側メインプログラムは、ホストコンピュータからのコマ
ンドに応じて、このデータ格納領域１１２ｃ内の各種設定値を参照しながら、プリンタ１
の制御を実行する。
なお、未使用領域１１２ｄは、未使用の領域、またはプリンタ１の通常動作には直接影
響のないデータが保存された領域である。
【００３０】
本実施形態のサブ側フラッシュＲＯＭ１３２には、図４に示すように、ブート領域１３
２ａと、第１メインプログラム領域１３２ｂと、第２メインプログラム領域１３２ｃと、
データ格納領域１３２ｄと、未使用領域１３２ｅが記憶領域として確保されている。
【００３１】
ブート領域１３２ａには、プリンタ１のサブＣＰＵ部１３０の起動処理を実行する起動
プログラムが記憶されている。ＣＰＵ１３１は、プリンタ１の電源オン時、またはリセッ
ト時にブート領域１３２ａ内の起動プログラムを実行して、プリンタ１の起動処理を行う
。この起動処理においては、ＲＡＭ１３３やその他記憶回路のチェック等が行われる
【００３２】
第１メインプログラム領域１３２ｂには、ブート領域１３２ａ内の起動プログラムの実
行が終了した後に、プリンタ１を制御するために実行される各種プログラム（以下、第１
サブ側メインプログラム）が保存されている。この第１メインプログラム領域１３２ｂ内
の第１サブ側メインプログラムが実行されることにより、ＵＳＢインタフェース１３５を
介しての通信処理、メインＣＰＵ部１１０との通信処理、ホストコンピュータから送信さ
れるコマンド処理、画像読取部１４１の制御等が行われる。
【００３３】
また、第１サブ側メインプログラムには、フラッシュＲＯＭ書換プログラムが含まれて
いる。このフラッシュＲＯＭ書換プログラムは、メインＣＰＵ部１１０から送信されるフ
ラッシュＲＯＭ書換コマンドに応じて実行され、コマンド内容に応じてフラッシュＲＯＭ
内のプログラムやデータの書換を実行する。このフラッシュＲＯＭ書換プログラムについ
ては、後ほど詳細に説明する。
【００３４】
第２メインプログラム領域１３２ｃには、第１メインプログラム領域１３２ｂに保存さ
れた第１サブ側メインプログラムと同等の機能を有する第２サブ側メインプログラムが保
存されている。この第１サブ側メインプログラムと第２サブ側メインプログラムとは、バ
ージョンは異なるがそれぞれサブＣＰＵ部１３０の制御を実行するプログラムであり、実
際の起動時においては、第１サブ側メインプログラムと第２サブ側メインプログラムのう
ちバージョンの新しいほうのプログラムが実行される。この第１サブ側メインプログラム
と第２サブ側メインプログラムについても、後ほど詳細に説明する
【００３５】
データ格納領域１３２ｄには、主として第１サブ側メインプログラムまたは第２サブ側
メインプログラムの実行に必要な各種設定値が保存されている。第１サブ側メインプログ
ラムまたは第２サブ側メインプログラムは、ホストコンピュータからのコマンドに応じて
、このデータ格納領域１３２ｄ内の各種設定値を参照しながら、プリンタ１の制御を実行
する。
なお、未使用領域１３２ｅは、未使用の領域、またはプリンタ１の通常動作には直接影
響のないデータが保存された領域である。
【００３６】
次に、図５を参照しながら、第１サブ側メインプログラムと第２サブ側メインプログラ
ムについて説明する。
図５は、第１メインプログラム領域と第２メインプログラム領域の内部構造を示す模式
図である。
【００３７】
図５に示すように、第１メインプログラム領域１３２ｂには、第１サブ側メインプログ
ラムとして、プリンタ制御プログラム１５１と、フラッシュＲＯＭ書換プログラム１５２
と、ＩＤデータ１５３と、更新回数データ１５４と、チェックサム１５５とが記憶されて
いる。
また、第２メインプログラム領域１３２ｃには、第２サブ側メインプログラムとして、
プリンタ制御プログラム１６１と、フラッシュＲＯＭ書換プログラム１６２と、ＩＤデー
タ１６３と、更新回数データ１６４と、チェックサム１６５とが記憶されている。
【００３８】
プリンタ制御プログラム１５１及びプリンタ制御プログラム１６１は、それぞれブート
領域１３２ａ内の起動プログラムによる処理終了後に通常実行されるプログラムである。
プリンタ１の各部における通常処理は、プリンタ制御プログラム１５１及びプリンタ制御
プログラム１６１の何れか一方によって実行される。
【００３９】
フラッシュＲＯＭ書換プログラム１５２と及びフラッシュＲＯＭ書換プログラム１６２
は、それぞれメインＣＰＵ部１１０から送信されるフラッシュＲＯＭ書換コマンドに応じ
て実行されるフラッシュＲＯＭ書換用プログラムである。
【００４０】
ＩＤデータ１５３及びＩＤデータ１６３は、それぞれ第１メインプログラム領域１３２
ｂと第２メインプログラム領域１３２ｃとを識別するための識別番号である。
【００４１】
更新回数データ１５４及び更新回数データ１６４は、第１メインプログラム領域１３２
ｂと第２メインプログラム領域１３２ｃのそれぞれが過去において書き換えられて更新さ
れた回数を示すデータである。本実施形態では、それぞれ対応するプログラム領域（第１
メインプログラム領域１３２ｂと第２メインプログラム領域１３２ｃのいずれか）が書き
換えられると、書き換えられたプログラム領域に対応する更新回数データの数値が２増加
するように構成されている。これにより、常に書き換えられたほうの更新回数データの数
値が、書き換えられなかったプログラム領域に対応する更新回数データの数値よりも大き
くなるように設定されている。
【００４２】
チェックサム１５５及びチェックサム１６５は、第１メインプログラム領域１３２ｂま
たは第２メインプログラム領域１３２ｃ内のデータに誤りがないかどうかをチェックする
数字であり、具体的には、それぞれ第１メインプログラム領域１３２ｂまたは第２メイン
プログラム領域１３２ｃのデータの和である。このチェックサムを確認することによって
第１メインプログラム領域１３２ｂまたは第２メインプログラム領域１３２ｃから読み出
されたデータが正しいかどうかをチェックすることが可能である。
【００４３】
本実施形態では、サブＣＰＵ部１３０の起動時には、まずブート領域１３２ａ内の起動
プログラムが実行され、そしてこの起動プログラムは、第１メインプログラム領域１３２
ｂと第２メインプログラム領域１３２ｃに書き込まれたプログラムデータを比較し、最も
新しく書き換えられたほうのプログラム領域からプログラムを読み出して、プリンタ１を
制御するように構成されている。
【００４４】
具体的には、起動プログラムは、第１メインプログラム領域１３２ｂ内の更新回数デー
タ１５４と、第２メインプログラム領域１３２ｃ内の更新回数データ１６４を参照し、更
新回数が多いほうのプログラム領域に記憶されている各種プログラムを実行して、プリン
タ１を起動するように構成されている。
【００４５】
図６は、この起動時におけるプログラムの選択実行の流れを示すフローチャートである
。
まず、電源オンまたはリセットにより、サブＣＰＵ部１３０が再起動すると、まずブー
ト領域１３２ａ内の起動プログラムが実行されて、所定の処理を実行されるとともに、第
１メインプログラム領域１３２ｂ内のＩＤデータ１５３と、第２メインプログラム領域１
３２ｃ内のＩＤデータ１６３が確認され（ステップＳ１）、そしてこれらのＩＤデータが
、規定の値であるかどうか判定される（ステップＳ２）。
【００４６】
ステップＳ２において、ＩＤデータ１５３とＩＤデータ１６３の双方が正常値であれば
、ステップＳ３に移行し、第１メインプログラム領域１３２ｂのチェックサム１５５が正
常であるかどうかが確認され、そしてステップＳ４にて第２メインプログラム領域１３２
ｃのチェックサム１６５が正常であるかどうか確認される。その結果、チェックサム１５
５及びチェックサム１６５が正常であれば、ステップＳ５に進む。
一方、チェックサム１５５のみ正常であればステップＳ６に進み、チェックサム１６５
のみ正常であればステップＳ９に進む（図６では矢印は省略）。なお、双方が異常である
場合には、実行可能なメインプログラムが無いと判断されて、メモリエラーとして異常終
了する。
【００４７】
ステップＳ５では、第１メインプログラム領域１３２ｂの更新回数データ１５４と第２
メインプログラム領域１３２ｃの更新回数データ１６４が読み出され、更新回数の大小が
比較される（ステップＳ５）。そして、第１メインプログラム領域１３２ｂの更新回数デ
ータ１５４が、第２メインプログラム領域１３２ｃの更新回数データ１６４以上であれば
ステップＳ６に移行し、第１メインプログラム領域１３２ｂからプログラムデータが読み
出されて実行される。一方、第１メインプログラム領域１３２ｂの更新回数データ１５４
が、第２メインプログラム領域１３２ｃの更新回数データ１６４より小さければステップ
Ｓ９に移行し、第２メインプログラム領域１３２ｃからプログラムデータが読み出されて
実行される。
【００４８】
また、ステップＳ２において、ＩＤデータ１５３のみが正常値であれば、ステップＳ７
に移行し、第１メインプログラム領域１３２ｂのチェックサム１５５が正常であるかどう
かが確認される。そして、チェックサム１５５が正常であれば、ステップＳ６に進み、第
１メインプログラム領域１３２ｂからプログラムデータが読み出されて実行される。なお
、チェックサム１５５が異常である場合には、実行可能なメインプログラムが無いと判断
されて、メモリエラーとして異常終了する。
【００４９】
同様に、ステップＳ２において、ＩＤデータ１６３のみが正常値であれば、ステップＳ
８に移行し、第２メインプログラム領域１３２ｃのチェックサム１６５が正常であるかど
うかが確認される。そして、チェックサム１６５が正常であれば、ステップＳ９に進み、
第２メインプログラム領域１３２ｃからプログラムデータが読み出されて実行される。な
お、チェックサム１６５が異常である場合には、実行可能なメインプログラムが無いと判
断されて、メモリエラーとして異常終了する。
【００５０】
このように、本実施形態では、サブＣＰＵ部１３０のフラッシュＲＯＭ１３２には、第
１メインプログラム領域１３２ｂと第２メインプログラム領域１３２ｃの二つのメインプ
ログラム領域が設けられており、これらのメインプログラム領域のうち最も新しいプログ
ラムが書き込まれたプログラム領域中のプログラムを介して、プリンタ１の制御が実行さ
れるように構成されている。
【００５１】
次に、プログラム領域の書換と更新回数データの関係について説明する。
図７は、プログラム領域の書換と更新回数データの関係を示す図である。
図７では、簡単のため、第１メインプログラム領域１３２ｂをセクタＡ、第２メインプ
ログラム領域１３２ｃをセクタＢとして説明する。工場からの出荷時には、更新回数は、
一方のセクタには「１」、他方のセクタには「０」が格納される。本実施形態では、セク
タＡの更新回数を「１」、セクタＢの更新回数を「０」とする。
【００５２】
この状態で、プリンタ１が起動されると、更新回数の大きい値を持つセクタＡ（第１メ
インプログラム領域１３２ｂ）内のプログラムにしたがってプリンタ制御が実行される。
そして、フラッシュＲＯＭ書換の場合には、セクタＡ内に記憶されているフラッシュＲＯ
Ｍ書換プログラムが実行されて、セクタＢ（第２メインプログラム領域１３２ｃ）内に記
憶されたプログラムを書き換えるとともに、セクタＢ内の更新回数に２を加えて「２」と
する。
【００５３】
この状態で、プリンタ１が再起動されると、更新回数の大きい値を持つセクタＢ（第２
メインプログラム領域１３２ｃ）内のプログラムにしたがってプリンタ制御が実行される
。そして、フラッシュＲＯＭ書換の場合には、セクタＢ内に記憶されているフラッシュＲ
ＯＭ書換プログラムが実行されて、セクタＡ（第１メインプログラム領域１３２ｂ）内に
記憶されたプログラムを書き換えるとともに、セクタＡ内の更新回数に２を加えて「３」
とする。
以下、再起動の度に、上述のようにセクタの選択を行うとともに、書換指示に応じて書
換を実行することにより、３回目、４回目のプログラム書換を実行することができる。
【００５４】
このように、本実施形態では、第１メインプログラム領域と第２メインプログラム領域
のうち、現在実行されているプログラム領域中のプログラムにより、他方のプログラム領
域が書き換えられるように構成されている。
【００５５】
次に、図８及び図９に示すフローチャートを用いて、本実施形態におけるフラッシュＲ
ＯＭ書換のフローを説明する。
図８は、メインＣＰＵ部１１０におけるフラッシュＲＯＭ書換処理のフローであり、図
９は、サブＣＰＵ部１３０におけるフラッシュＲＯＭ書換処理のフローである。
【００５６】
まず、図８を参照してメインＣＰＵ部１１０におけるメイン側フラッシュＲＯＭ１１２
の書換処理について説明する。
プリンタ１は、シリアルインタフェースまたはＵＳＢインタフェースを介してホストコ
ンピュータからフラッシュＲＯＭ書換モード移行コマンドを受け取ると、フラッシュＲＯ
Ｍ書換モード移行コマンドはメインＣＰＵ部１１０に送られ、メインＣＰＵ部１１０のＲ
ＡＭ１１３内の受信バッファにて受信される（ステップＳ１１）。
【００５７】
次に、メインＣＰＵ部１１０のＣＰＵ１１１は、このフラッシュＲＯＭ書換モード移行
コマンドを解析してフラッシュＲＯＭ書換モードへの移行指示を確認すると、メインＣＰ
Ｕ部１１０を再起動させる。そして、ブート領域１１２ａまたはメインプログラム領域１
１２ｂに書き込まれたフラッシュＲＯＭ書換プログラムを起動し、フラッシュＲＯＭ書換
モードに移行する（ステップＳ１２）。そして、メインＣＰＵ部１１０は、フラッシュＲ
ＯＭ書換モードに移行すると、サブＣＰＵ部１３０にフラッシュＲＯＭ書換を実行させる
ため、フラッシュＲＯＭ書換モード移行コマンドを送信する（ステップＳ１３）。
【００５８】
次に、メインＣＰＵ部１１０のＣＰＵ１１１は、ステップＳ１４に進み、具体的な書換
を指示する書換コマンドをホストコンピュータから受信したかどうかを確認する。そして
、書換コマンドを受信すると、書換コマンドの内容を確認するとともに、データ長、書込
アドレス、書き込みデータ、チェックサムを順次受信し、そして、チェックサムの確認を
行う（ステップＳ１５）。ここで、チェックサムが異常であれば、ホストコンピュータに
送信異常を送信して再送信を促すとともに、ステップＳ１４に戻る。
【００５９】
次に、メインＣＰＵ部１１０のＣＰＵ１１１は、ステップＳ１６にて、受信した書込ア
ドレスを確認する。
そして、書き込みアドレスがサブＣＰＵ部１３０のサブ側フラッシュＲＯＭ１３２に対
応するアドレスであれば、サブＣＰＵ部１３０に受信したコマンド及び各種データを転送
する（ステップＳ１８）。
【００６０】
一方、書き込みアドレスがメインＣＰＵ部１１０のメイン側フラッシュＲＯＭ１１２に
対応するアドレスであれば、ステップＳ１７に移行して、フラッシュＲＯＭ書換処理を実
行する。ここでは、まず書き込みアドレスを参照して書き込まれるフラッシュＲＯＭ中の
セクタを特定し、このセクタに書き込まれるデータをＲＡＭ１１３に展開する。そして、
ＲＡＭ１１３中のセクタと受信データのセクタが切り替わるまで、ＲＡＭ１１３にデータ
を展開し続け処理を終了する。そして、ステップＳ１４からステップＳ１７までを繰り返
していき、ＲＡＭ１１３中のセクタと受信データのセクタが切り替わると、対応するメイ
ン側フラッシュＲＯＭ１１２中のセクタ情報を消去し、ＲＡＭ１１３に展開されたデータ
をメイン側フラッシュＲＯＭ１１２中の対応するセクタに一括書き込みする（ステップＳ
１７）。
【００６１】
一方、ステップＳ１４において、書換コマンドを受信していなかったら、ステップＳ１
９に移行し、終了コマンドをホストコンピュータから受信したかどうかを確認する。ここ
で、終了コマンドを受信していなければ、ステップＳ１４に戻って、再度書換コマンドの
受信確認を行い、終了コマンドを受信していた場合には、ステップＳ２０に進む。
【００６２】
ステップＳ２０では、まずサブＣＰＵ部１３０に終了コマンドを送信して、コマンド書
換が終了する旨を通知する。
そして、ステップＳ２１に進み、まだメイン側フラッシュＲＯＭ１１２に書き込むべき
データがあれば、対応するセクタの消去とデータの一括書き込みを実施する。そして、書
換が行われたセクタのチェックサムの再計算を行い、再計算されたチェックサムを対応す
るセクタに書き込んで終了処理を終了する。
処理の終了後は、メインＣＰＵ部１１０は再起動され、メイン側フラッシュＲＯＭ１１
２書換後のプログラムに基づいて、プリンタ１の制御が実行される。
【００６３】
次に、図９を参照してサブＣＰＵ部１３０のフラッシュＲＯＭ１３２の書換処理につい
て説明を行う。
サブＣＰＵ部１３０は、メインＣＰＵ部１１０よりフラッシュＲＯＭ書換モード移行コ
マンドを受信すると、サブＣＰＵ部１３０の再起動を行うことなく、現時点でプリンタ１
の制御に利用しているメインプログラムに対応するメインプログラム領域（第１メインプ
ログラム領域１３２ｂまたは第２メインプログラム領域１３２ｃ）からフラッシュＲＯＭ
書換プログラムを読み出して、そのままフラッシュＲＯＭ書換モードに移行する（ステッ
プＳ３１）。すなわち、本実施形態のサブＣＰＵ部１３０側では、通常モードの一形態と
してフラッシュＲＯＭ書換モードが存在している。
【００６４】
次に、サブＣＰＵ部１３０のＣＰＵ１３１は、ステップＳ３２に進み、具体的な書換を
指示する書換コマンドをメインＣＰＵ部１１０から受信したかどうかを確認する。そして
、書換コマンドを受信すると、書換コマンドの内容を確認するとともに、データ長、書込
アドレス、書き込みデータ、チェックサムを順次受信し、そして、チェックサムの確認を
行う（ステップＳ３３）。ここで、チェックサムが異常であれば、ホストコンピュータに
送信異常を送信して再送信を促すとともに、ステップＳ３２に戻る。
【００６５】
次に、サブＣＰＵ部１３０は、ステップＳ３４に移行して、フラッシュＲＯＭ書換処理
を実行する。ここでは、まず書き込みアドレスを参照して書き込まれるサブ側フラッシュ
ＲＯＭ１３２中のセクタを特定し、このセクタに書き込まれるデータをＲＡＭ１３３に展
開する。そして、ＲＡＭ１３３中のセクタと受信データのセクタが切り替わるまで、ＲＡ
Ｍ１３３にデータを展開して処理を終了する。そして、ステップＳ３２からステップＳ３
４までを繰り返していき、ＲＡＭ１３３中のセクタと受信データのセクタが切り替わると
、対応するサブ側フラッシュＲＯＭ１３２中のセクタ情報を消去し、ＲＡＭ１３３に展開
されたデータをサブ側フラッシュＲＯＭ１３２中の対応するセクタに一括書き込みする。
【００６６】
ここで、本実施形態では、２つのメインプログラム領域（第１メインプログラム領域１
３２ｂまたは第２メインプログラム領域）のデータが書き換えられる場合には、現時点で
プリンタ１の制御に利用している第１メインプログラム領域１３２ｂ及び第２メインプロ
グラム領域の一方に記憶されているのフラッシュＲＯＭ書換プログラムを用いて、第１メ
インプログラム領域１３２ｂ及び第２メインプログラム領域の他方に対して、データ書換
処理行うように構成されている。
【００６７】
一方、ステップＳ３２において、書換コマンドを受信していなかったら、ステップＳ３
５に移行し、終了コマンドをホストコンピュータから受信したかどうかを確認する。ここ
で、終了コマンドを受信していなければ、ステップＳ３２に戻って、再度書換コマンドの
受信確認を行い、終了コマンドを受信していた場合には、ステップＳ３６に進む。
【００６８】
ステップＳ３６では、まだサブ側フラッシュＲＯＭ１３２に書き込むべきデータがあれ
ば、サブ側フラッシュＲＯＭ１３２中の対応するセクタの消去とデータの一括書き込みを
実施する。そして、ＣＰＵ１３１は、書換が行われたセクタのチェックサムの再計算を行
い、再計算されたチェックサムを対応するセクタに書き込んで終了処理を終了する。
【００６９】
ステップ３６の終了処理において、ＣＰＵ１３１は、フラッシュＲＯＭ書換の正常終了
とともにブザー１３８を駆動して、ブザー１３８から音を発してユーザに書換の正常終了
を通知するようにしてもよい。また、フラッシュＲＯＭ書換が異常終了した場合には、正
常時とは異なる音色の音を発するようにして、ユーザに異常終了が発生したことを積極的
に通知するように構成してもよい。
また、このブザー１３８は、サブ側フラッシュＲＯＭ１３２の各領域の書換終了時に、
その領域を特定することができるように、領域毎に異なる音を発するように構成してもよ
い。
【００７０】
処理の終了後は、サブＣＰＵ部１３０は再起動を待ち、メイン側の再起動に合わせ、サ
ブ側フラッシュＲＯＭ１３２書換後のプログラムに基づいて、プリンタ１の制御が実行さ
れる。
【００７１】
以上の説明からわかるように、本実施形態では、メインＣＰＵ部１１０は、通常モード
からフラッシュＲＯＭ書換モードに移行し再度通常モードに移行するにあたり、２回の再
起動が必要である。
一方、サブＣＰＵ部１３０は、フラッシュＲＯＭ１３２の内部に二つのメインプログラ
ム領域が設けられており、そしてフラッシュＲＯＭ書換時には、これら二つのメインプロ
グラム領域中の何れか一方の領域中のフラッシュＲＯＭ書換プログラムを実行して、他方
の領域を書き換える。したがって、本実施形態では、通常モードの一部機能としてフラッ
シュＲＯＭ書換モードを構成することができ、通常モードからフラッシュＲＯＭ書換モー
ドに移行するにあたり、サブＣＰＵ部１３０の再起動が不必要であることがわかる。
【００７２】
以上説明したように、本実施形態のプリンタ１は、メインＣＰＵ部１１０と、メインＣ
ＰＵ部１１０と通信可能に接続されたサブＣＰＵ部１３０と、メインＣＰＵ部１１０上に
配置され、メインＣＰＵ部１１０上で実行される各種メインＣＰＵ部用プログラムを記憶
するメイン側フラッシュＲＯＭ１３２と、サブＣＰＵ部１３０上に配置され、サブＣＰＵ
部１３０上で実行されるサブＣＰＵ部用プログラムを記憶するサブ側フラッシュＲＯＭ１
３２と、を備えている。サブ側フラッシュＲＯＭ１３２には、サブＣＰＵ部用プログラム
の一つである第１メインプログラムが記憶される第１メインプログラム領域１３２ｂと、
サブＣＰＵ部用プログラムの一つである第２メインプログラムが記憶される第２メインプ
ログラム領域１３２ｃとを有している。そして、サブＣＰＵ部１３０は、第１メインプロ
グラム領域１３２ｂと第２メインプログラム領域１３２ｃとのうち、最も新しく書き換え
られた領域中のプログラムを実行して、サブＣＰＵ部１３０の制御を実行する。
【００７３】
本実施形態によれば、第１のメインプログラム領域１３２ｂと第２のメインプログラム
領域１３２ｃのプログラムはバージョンが異なるのみであり、実際には何れの領域のメイ
ンプログラムを実行してもサブＣＰＵ部１３０は動作可能のである。したがって、本実施
形態では、何れか一方のプログラム領域のデータが破損した場合であっても、他方のプロ
グラム領域のデータ、すなわちプログラムを実行してサブＣＰＵ部１３０を起動すること
により、プリンタ１を動作させることが可能である。よって、一方のメインプログラム領
域の書換に失敗した場合であっても、他方のプログラム領域のプログラムを用いてプリン
タ１を起動し動作させることが可能となる。
【００７４】
本実施形態によれば、サブＣＰＵ部１３０は、第１メインプログラム領域１３２ｂと第
２メインプログラム領域１３２ｃのうち、最も新しく書き換えられた領域中のプログラム
を実行して、サブ側フラッシュＲＯＭ１３２のデータ書換を実行する。具体的には、サブ
ＣＰＵ部１３０は、第１メインプログラム領域１３２ｂ及び第２メインプログラム領域１
３２ｃの一方に保存された第１メインプログラム及び第２メインプログラムの一方を実行
して、第１メインプログラム領域１３２ｂ及び第２メインプログラム領域１３２ｃの他方
のデータを書き換えるように構成されている。
【００７５】
この場合、サブＣＰＵ部１３０は、第１メインプログラム及び第２メインプログラムの
一方を実行することにより、サブＣＰＵ部の再起動を行うことなく通常モードからフラッ
シュＲＯＭ書き換えモードに移行することができる。したがって、前記第２のフラッシュ
ＲＯＭのデータ書換を実行するにあたって、サブＣＰＵ部１３０の初期化等の起動処理を
行う必要が無く、速やかに通常モードからフラッシュＲＯＭ書換モードに移行することが
可能である。
【００７６】
また、サブＣＰＵ部１３０側のＵＳＢインタフェース１３５を介して、ホストコンピュ
ータと接続されているような場合には、サブＣＰＵ部１３０の初期化が為されないため、
ＵＳＢインタフェース１３５を介したホストコンピュータとの接続も断絶されることなく
維持される。したがって、各ＣＰＵ部１１０，１３０の初期化に伴いホストコンピュータ
との通信を再確立するための時間も短縮され、効率的にフラッシュＲＯＭ書換モードに移
行することが可能である。
【００７７】
本実施形態では、具体的には、第１メインプログラム領域１３２ｂ及び第２メインプロ
グラム領域１３２ｃには、それぞれデータ書き換え回数を示す更新回数データ１５３，１
６３が記憶されている。したがって、サブＣＰＵ部１３０は、これらの更新回数データ１
５３，１６３を参照して、最も新しく書き換えられた領域を判別して実行すべきプログラ
ムを選択することが可能である。
【００７８】
また、メインＣＰＵ部１１０は、例えばホストコンピュータからのフラッシュＲＯＭ書
換コマンド（指示）に応じて、フラッシュＲＯＭ書換モードに移行するとともに、前記サ
ブＣＰＵ部にフラッシュＲＯＭ書換コマンドを送信する。この場合、メインＣＰＵ部１１
０は、フラッシュＲＯＭ書換モードに移行するにともない、再起動が必要である。しかし
ながら、サブＣＰＵ部１３０は、メインＣＰＵ部１１０から受信したフラッシュＲＯＭ書
換コマンドに応じて、そのままフラッシュＲＯＭ書換モードに移行することが可能である
ため、サブＣＰＵ部１３０を再起動することない。したがって、サブＣＰＵ部１３０につ
いては、再起動の手間を省きスムーズにフラッシュＲＯＭ書換を実行することが可能であ
る。
【００７９】
さらに、本実施形態では、フラッシュＲＯＭ書換終了とともに音を発するブザー１３８
を備えている。これにより、ユーザは、フラッシュＲＯＭの書換が正常に終了したかどう
かをホストコンピュータのディスプレイ等確認することなく書換終了と同時に瞬時に知る
ことが可能となる。
また、ブザー１３８は、メイン側フラッシュＲＯＭ１１２及びサブ側フラッシュＲＯＭ
１３２の領域毎に異なる音を発するように構成してもよい。このように構成することによ
って、ユーザは、フラッシュＲＯＭの書換が順調に行われていることを確認するとともに
、異常が発生した領域をブザー１３８が発する音の音色によって瞬時に聞き分けることが
できる。したがって、ユーザは、書換における異常発生時に異常に対してすばやく対処で
きるようになる。
【００８０】
なお、本実施形態では、プリンタ１を例に挙げて説明を行ったが、これに限られること
はなく、２つのＣＰＵを有するプリンタまたは一般の電気機器に対して、上記のような構
成及び手法を適用することも可能である。
また、インタフェースについても、メイン側はシリアルインタフェース、サブ側はＵＳ
Ｂインタフェースを例に挙げて説明を行ったが、これに限ることはなく、ホストと通信可
能なインタフェースならどれでも同様となる。
【図面の簡単な説明】
【００８１】
【図１】本実施形態のプリンタを示す外観斜視図である。
【図２】プリンタの制御回路を示すブロック図である。
【図３】メイン側フラッシュＲＯＭの内部データ構造を示す図である。
【図４】サブ側フラッシュＲＯＭの内部データ構造を示す図である。
【図５】第１メインプログラム領域と第２メインプログラム領域の内部構造を示す模式図である。
【図６】起動時におけるプログラムの選択実行の流れを示すフローチャートである。
【図７】プログラム領域の書換と更新回数データの関係を示す図である。
【図８】メインＣＰＵ部におけるフラッシュＲＯＭ書換処理のフローである。
【図９】サブＣＰＵ部におけるフラッシュＲＯＭ書換処理のフローである。
【符号の説明】
【００８２】
１・・プリンタ  １ａ・・筐体  Ｐ１・・第１用紙搬送路  Ｐ２・・第２用紙搬送路  １
１０・・メインＣＰＵ部  １１２・・メイン側フラッシュＲＯＭ  １３０・・サブＣＰＵ
部  １３２・・サブ側フラッシュＲＯＭ
【図１】
2005288943.tif 000003
【図２】
2005288943.tif 000004
【図３】
2005288943.tif 000005
【図４】
2005288943.tif 000006
【図５】
2005288943.tif 000007
【図６】
2005288943.tif 000008
【図７】
2005288943.tif 000009
【図８】
2005288943.tif 000010
【図９】
2005288943.tif 000011