(57)【要約】【課題】  瞬断等によりフラッシュメモリの内容データが破壊された場合に、容易に復旧することができる書き換え保護装置を提供する。【解決手段】  瞬断等が発生したときに、ＥＥＰＲＯＭ３０のフラグ領域にフラッシュメモリ１２の記憶領域へデータが正常に書き込まれたかどうかが記憶される。次の電源起動時には、このフラグ領域の記憶から、フラッシュメモリ１２の記憶領域へデータが正常に書き込まれたかどうかが判明する。正常に書き込まれなかったと判明した場合には、ＥＥＰＲＯＭ３０に記憶された、フラッシュメモリ１２のデータを正常に復帰させるための復帰プログラムをハードウエア部２８がフラッシュメモリ１２に書き込み、フラッシュメモリ１２のデータを正常に復帰させる。【選択図】  図２
2005122362.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリに格納されたデータを書き換える際の書き換え保護装置であって、
フラッシュメモリへデータを書き込むハードウエア手段と、
前記フラッシュメモリと異なる不揮発性の記憶領域を有し、前記不揮発性の記憶領域内に前記フラッシュメモリの記憶領域へデータが正常に書き込まれたかどうかを記憶するフラグ領域を有すると共にフラッシュメモリへデータが正常に書き込まれなかった場合に次の電源起動時にフラッシュメモリのデータを正常に復帰させるための復帰プログラムを記憶した記憶手段と、からなり、
前記次の電源起動時に前記記憶手段のフラグ領域の記憶から前記フラッシュメモリの記憶領域へデータが正常に書き込まれなかったと判明した場合は、前記記憶手段に記憶された復帰プログラムを前記ハードウエア手段が前記フラッシュメモリに書き込み、前記フラッシュメモリのデータを正常に復帰させる書き換え保護装置。
【請求項２】
前記記憶手段は、ＥＥＰＲＯＭである請求項１の書き換え保護装置。
【請求項３】
前記ハードウエア手段は、ＡＳＩＣ又はＦＰＧＡの内部に搭載されたハードウエア回路からなる請求項１又は２の書き換え保護装置。
【請求項４】
ＣＰＵの指示に基づきフラッシュメモリに格納されたデータを書き換える書き換え保護装置であって、
前記ＣＰＵの指示によってフラッシュメモリへデータを書き込むハードウエア手段と、
前記フラッシュメモリと異なる不揮発性の記憶領域を有し、前記不揮発性の記憶領域内に前記フラッシュメモリの記憶領域へデータが正常に書き込まれたかどうかを記憶するフラグ領域を有すると共にフラッシュメモリへデータが正常に書き込まれなかった場合に次の電源起動時にフラッシュメモリのデータを正常に復帰させるための復帰プログラムを記憶した記憶手段と、からなり、
前記次の電源起動時に前記ＣＰＵが前記記憶手段のフラグ領域の記憶から前記フラッシュメモリの記憶領域へデータが正常に書き込まれなかったと判断した場合は、前記ＣＰＵの指示により前記記憶手段に記憶された復帰プログラムを前記ハードウエア手段が前記フラッシュメモリに書き込み、前記フラッシュメモリのデータを正常に復帰させる書き換え保護装置。
【請求項５】
前記記憶手段は、ＥＥＰＲＯＭである請求項４の書き換え保護装置。
【請求項６】
前記ハードウエア手段は、ＡＳＩＣ又はＦＰＧＡの内部に搭載されたハードウエア回路からなる請求項４又は５の書き換え保護装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリに格納されたデータを書き換える際の書き換え装置に関する。
【背景技術】
【０００２】
近年、パソコン、デジタルカメラ、プリンタなどの電子機器にはフラッシュメモリを装備したものが多い。
【０００３】
ＣＰＵを備えた電子機器では、ＣＰＵの処理プログラムやデータ等をフラッシュメモリに予め格納しておき、必要に応じてそのプログラム等を起動させ、プログラムやデータを読み出すことにより所定の作業を遂行する。
【０００４】
フラッシュメモリは比較的安価で、記憶容量が大きく、書き換え可能な記憶領域を有するために、上記ＣＰＵの処理プログラムやデータ等を格納するのに使用される。
【０００５】
一般にフラッシュメモリの記憶領域は、複数のブロックによって区切られた記憶領域から構成されている。フラッシュメモリへのデータの書き換えは、ＲＡＭのようにアドレスごとに順次データを書き換える方法で行われるのではなく、記憶領域をブロック単位で一括してデータを消去してから、ブロックの未記載アドレスに順次データを書込む方法がとられている。
【０００６】
この方法を用いて、上記フラッシュメモリを装備する装置を他のパソコンやネットワークなどに接続し、バージョンアップするためのプログラムや種々の入手可能なデータを外部から書き換えることができるインターフェイスを備えることにより、フラッシュメモリに格納されているプログラムやデータを書き換えることがよく行われる。
【０００７】
しかしながら、このフラッシュメモリを外部から書き換え操作中に、電源電圧が短時間切断されたり（以下、「瞬断」と呼ぶ）、書き換え操作強制中断等により、誤書き込み、不正書き込み処理が行われ、フラッシュメモリの内容データが破壊されてしまい、装置が動作しない等の問題が発生する。
【０００８】
このような問題が発生したときに、下記特許文献１では、問題発生の有無を認識して処理することにより、再度書き込み処理を行う方法が開示されている。下記特許文献２では、別プロセッサから直接、再度書き込み処理を行う方法が開示されている。しかし、最悪の場合、装置交換又は部品交換が必要となる。
【特許文献１】特開２００１−３４４１５６号公報
【特許文献２】特開２００１−２７９５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上記の事実を考慮し、瞬断等によりフラッシュメモリの内容データが破壊された場合に、容易に復旧することができる書き換え保護装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、フラッシュメモリに格納されたデータを書き換える際の書き換え保護装置であって、
フラッシュメモリへデータを書き込むハードウエア手段と、
前記フラッシュメモリと異なる不揮発性の記憶領域を有し、前記不揮発性の記憶領域内に前記フラッシュメモリの記憶領域へデータが正常に書き込まれたかどうかを記憶するフラグ領域を有すると共にフラッシュメモリへデータが正常に書き込まれなかった場合に次の電源起動時にフラッシュメモリのデータを正常に復帰させるための復帰プログラムを記憶した記憶手段と、からなり、
前記次の電源起動時に前記記憶手段のフラグ領域の記憶から前記フラッシュメモリの記憶領域へデータが正常に書き込まれなかったと判明した場合は、前記記憶手段に記憶された復帰プログラムを前記ハードウエア手段が前記フラッシュメモリに書き込み、前記フラッシュメモリのデータを正常に復帰させる書き換え保護装置、からなる。
【００１１】
本発明によれば、瞬断等が発生したときに、記憶手段のフラグ領域にフラッシュメモリの記憶領域へデータが正常に書き込まれたかどうかが記憶される。次の電源起動時には、このフラグ領域の記憶から、フラッシュメモリの記憶領域へデータが正常に書き込まれたかどうかが判明する。正常に書き込まれなかったと判明した場合には、前記記憶手段に記憶された、フラッシュメモリのデータを正常に復帰させるための復帰プログラムをハードウエア手段がフラッシュメモリに書き込み、フラッシュメモリのデータを正常に復帰させる。
【００１２】
前記記憶手段は、例えば、ＥＥＰＲＯＭである。
【００１３】
前記ハードウエア手段は、例えば、ＡＳＩＣ(Application Specific Integrated Circuit) 又はＦＰＧＡ(Field Programmable Gate Array) の内部に搭載されたハードウエア回路からなる。
【発明の効果】
【００１４】
本発明によれば、瞬断等によりフラッシュメモリの内容データが破壊されてもハードウエア手段により容易に復旧することができる。
【００１５】
また、ハードウエア手段による復旧なので、確実に復旧が行われ、書き換え保護装置としての信頼性が担保される。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面に従って、本発明に係る書き換え保護装置を適用したプリンタの実施の形態について詳説する。
【００１７】
図１は、従来のプリンタ２の構成を示すブロック図である。
【００１８】
プリンタ２は、ホストパソコン４と接続されており、データ入力部８がホストパソコン４からのコマンドやデータの入力インターフェースの部分である。データ入力部８は、ＳＣＳＩ(Small Computer System Interface) 、ＳＩＯ(Super I/O) 、ＩＥＥＥ１３９４などが適用される。
【００１９】
ＣＰＵ１０は、プリンタ２を統括制御する制御部である。ＣＰＵ１０は、電源スイッチ、その他の操作パネル部２２から受入する入力信号に基づいて、対応する回路の動作を制御し、フラッシュメモリ１２、ＲＡＭ１４、エンジンインターフェース（Ｉ／Ｆ）部１６、操作パネルインターフェース（Ｉ／Ｆ）部２０の制御を行う。
【００２０】
フラッシュメモリ１２には、プリンタ２のプリント機能を実行するためのプリントプログラム（ブート処理、実行プログラム、プリントパラメータなど）が格納されている。
【００２１】
ＲＡＭ１４は、プリントする文字データや画像データを一時的に格納し、操作パネル部２２からの入力信号にしたがって文字・画像データを補正等するための作業領域である。      
【００２２】
エンジンインターフェース（Ｉ／Ｆ）部１６は、ＣＰＵ１０からのコマンドにしたがってプリントエンジン１８を起動させるためのインターフェース部である。
【００２３】
操作パネルインターフェース（Ｉ／Ｆ）部２０は、操作パネル部２２からの入力信号を受け入れするためのインターフェース部である。
【００２４】
なお、データ入力部８、ＣＰＵ１０、フラッシュメモリ１２は、一体の基板で配設されることが多い。
【００２５】
文字データや画像データがホストパソコン４から送られてくると、データ入力部８が当該文字・画像データを受け入れる。ＣＰＵ１０はフラッシュメモリ１２に格納されているプリントプログラムを立ち上げ、そのプリントプログラムにしたがって受け入れた文字・画像データをプリント実行する。受け入れられた文字・画像データは、ＲＡＭ１４に送られ、ＲＡＭ１４に一旦保存される。ＲＡＭ１４に保存された画像データは操作パネル部２２から入力された入力信号によりプリントプログラムにしたがって、ＲＡＭ１４において画像解析、濃度処理、エッジ強調処理、ＷＢ（ホワイトバランス）補正処理がされる。これらの補正処理は、処理内容に応じて前処理パラメータの処理量が予め決められている。この前処理パラメータは前述のプリントプログラムに格納されている。これらの処理は、ＣＰＵ１０からのコマンドに従ってされる。補正処理された画像データ等は、エンジンインターフェース（Ｉ／Ｆ）部１６を介してＣＰＵ１０からのコマンドにしたがってプリントエンジン１８でプリントされる。
【００２６】
従来のこのプリンタ２では、フラッシュメモリ１２に格納されたプリントプログラムをバージョンアップで書き換える必要がでてきた場合、新しいプリントプログラムをプリンタ２にダウンロードする。
【００２７】
その場合、ホストパソコン４から新しいプリントプログラムがプリンタ２に送られ、データ入力部８が当該プログラムを受け付け、ＣＰＵ１０のコマンドにより、フラッシュメモリ１２にそれまで格納されていたプリントプログラムを電気的に消去し、フラッシュメモリ１２に新しいプリントプログラムを書き込む。
【００２８】
この一連の書き換え作業中に、プリンタの電源瞬断や書き換え操作強制中断等が発生すると、フラッシュメモリ１２に誤書き込み、不正書き込み処理が行われ、フラッシュメモリの内容が破壊されてしまい、プリンタが動作しないなどの問題が起こっていた。
【００２９】
そこで、本発明を適用したプリンタを図２のように構成した。図２は、本発明を適用したプリンタ２４の構成を示すブロック図である。
【００３０】
図２中、図１と同一の番号を付したものは同一の部材であるので、説明を省略する。
【００３１】
図２のプリンタ２４では、ＣＰＵ１０にハードウエア部２８を接続させ、このハードウエア部２８にフラッシュメモリ１２とＥＥＰＲＯＭ(Electrically Erasable Programmable Read-only Memory) ３０とを接続させた。
【００３２】
ハードウエア部２８は、ＡＳＩＣ(Application Specific Integrated Circuit：特定用途向け集積回路）、ＦＰＧＡ(Field Programmable Gate Array：プログラマブルゲート配列）などの内部に搭載したハードウエア回路が適用できる。
【００３３】
フラッシュメモリ１２には、プリンタ２４のプリント機能を実行するためのプリントプログラム（ブート処理、実行プログラム、プリントパラメータなど）が格納されている。図３は、フラッシュメモリ１２に格納されているプリントプログラムの構成を示した図である。ここでは、プリントプログラムは全体で８Ｍｂｉｔ程度で、ブート処理プログラム、実行プログラム、プリントパラメータからなる。
【００３４】
ブート処理プログラムは、プリントシステムが起動するための最低限の機能動作を行うためのプログラムで、容量は小さい。ブート処理プログラムを格納して実行させれば、プリンタ２４は起動する。
【００３５】
実行プログラムは、プリンタ２４がプリントを行うのに必要なプログラムである。
【００３６】
プリントパラメータは、プリントの画質、色調などの要因となる濃度処理、エッジ強調処理、ＷＢ（ホワイトバランス）補正処理を決定する媒介変数である。
【００３７】
ＥＥＰＲＯＭ３０には、プリンタ２４を最低限起動させるブート処理プログラムが格納されている。したがって、容量がそれほど大きくないＥＥＰＲＯＭ３０でも格納可能である。ブート処理プログラムはＥＥＰＲＯＭ３０に予め又はＥＥＰＲＯＭ３０が基板に配設された状態で書き込まれている。ブート処理プログラムには、フラグ領域が設けられている。
【００３８】
データ入力部８、ＣＰＵ１０、ハードウエア部２８、フラッシュメモリ１２、ＥＥＰＲＯＭ３０は、一体の基板２６で配設されることが多い。
【００３９】
文字データや画像データがホストパソコン４から送られてくると、データ入力部８が当該文字・画像データを受け入れる。ＣＰＵ１０はハードウエア部２８を介してフラッシュメモリ１２に格納されているプリントプログラムを立ち上げ、そのプリントプログラムにしたがって受け入れた文字・画像データをプリント実行する。受け入れられた文字・画像データは、ＲＡＭ１４に送られ、ＲＡＭ１４に一旦保存される。ＲＡＭ１４に保存された画像データは操作パネル部２２から入力された入力信号によりプリントプログラムにしたがって、ＲＡＭ１４において画像解析、濃度処理、エッジ強調処理、ＷＢ（ホワイトバランス）補正処理がされる。これらの処理は、ＣＰＵ１０からのコマンドに従ってされる。補正処理された画像データ等は、エンジンインターフェース（Ｉ／Ｆ）部１６を介してＣＰＵ１０からのコマンドにしたがってプリントエンジン１８でプリントされる。
【００４０】
プリンタ２４において、フラッシュメモリ１２に格納されたプリントプログラムをバージョンアップで書き換える必要がでてきた場合、新しいプリントプログラムをホストパソコン４からプリンタ２４にダウンロードする場合を説明する。
【００４１】
図４は、正常時の書き換えシーケンスを示したフローチャートである。
【００４２】
まず、ホストパソコン４は、プリンタ２４のデータ入力部８を介してＣＰＵ１０と通信を行う。
【００４３】
次に、ホストパソコン４からプリンタ２４をフラッシュメモリ書き換えモードにする（ステップ５０）。
【００４４】
書き換えが始まったことをＥＥＰＲＯＭ３０へ示すため、ＣＰＵ１０がハードウエア部２８を介してＥＥＰＲＯＭ３０のフラグ領域にフラグを立てる（ステップ５２）。
【００４５】
ホストパソコン４から書き換え用の新しいデータをプリンタ２４へ送り、データ入力部８で当該データを受け、当該書き換え用のデータを順次、ＣＰＵ１０がフラッシュメモリ１２へハードウエア部２８を介して書き込む（ステップ５４）。
【００４６】
フラッシュメモリ１２へのデータ書き込みが終了したかどうか判断する（ステップ５６）。終了していない場合は、ステップ５６の工程を繰り返す。終了した場合は、正常に終了したとしてＥＥＰＲＯＭ３０のフラグ領域のフラグをねかせる（ステップ５８）。
【００４７】
上述の場合において、フラッシュメモリ１２へのデータ書き換え中に、電源瞬断や書き込み強制終了が発生した場合、フラッシュメモリ１２の内容が破壊され、プリンタ２４が動作不良となる恐れがある。図５は、このような電源瞬断や書き込み強制終了が発生した場合に、次にホストパソコン４及び／又はプリンタ２４の電源をＯＮにしたときのＣＰＵ１０のとるシーケンスを示したフローチャートである。
【００４８】
まず、上述のように電源をＯＮにする（ステップ６０）。
【００４９】
ＣＰＵ１０がハードウエア部２８を介してＥＥＰＲＯＭ３０にアクセスし、ＥＥＰＲＯＭ３０のフラグ領域のフラグ状態を判断する（ステップ６２）。
【００５０】
フラグが立っている場合は、フラッシュメモリ１２書き換え中ということになり、ＥＥＰＲＯＭ３０に予め格納してあったブート処理プログラムを、ＣＰＵ１０経由ではなく、ハードウエア部２８がフラッシュメモリ１２へ書き込む（ステップ６４）。したがって、フラッシュメモリ１２のブート処理プログラムが書き換えられる。フラッシュメモリ１２に格納してあるデータは正常に復帰される（ステップ６６）。そして、プリンタ２４にリセットをかける（ステップ６８）。プリンタ２４は正常の動作状態へ復帰する（ステップ７０）。
【００５１】
ステップ６２でフラグがねている場合は、フラッシュメモリ１２へ正常に書き換えが行われたと判断され、ステップ７０へ移行する。
【００５２】
本実施の形態によれば、電源瞬断等によりフラッシュメモリ１２の内容が破壊されてもハードウエア制御で正常状態に復旧できる。ハードウエア制御によるため、フラッシュメモリ１２の復旧がフラッシュメモリの状態如何にかかわらず確実になされる。また、プリンタ２４を最低限起動させるブート処理プログラムを安価なＥＥＰＲＯＭ３０に格納したため、プリンタ２４全体が高価になる心配もほとんどない。
【００５３】
本実施の形態では、書き換え保護装置をプリンタに適用した例で説明したが、プリンタに限らず、デジタルカメラ、ビデオカメラ、その他のシステム機器に応用できる。
【図面の簡単な説明】
【００５４】
【図１】従来のプリンタの構成を示すブロック図。
【図２】本発明を適用したプリンタの構成を示すブロック図。
【図３】フラッシュメモリに格納されているプリントプログラムの構成を示した図。
【図４】正常時の書き換えシーケンスを示したフローチャート。
【図５】電源瞬断や書き込み強制終了が発生した場合に次に電源をＯＮにしたときのＣＰＵのとるシーケンスを示したフローチャート。
【符号の説明】
【００５５】
８…データ入力部、１０…ＣＰＵ、１２…フラッシュメモリ、２４…プリンタ、２８…ハードウエア部、３０…ＥＥＰＲＯＭ
【図１】
2005122362.tif 000003
【図２】
2005122362.tif 000004
【図３】
2005122362.tif 000005
【図４】
2005122362.tif 000006
【図５】
2005122362.tif 000007