(57)【特許請求の範囲】
【請求項１】
プログラム領域内にユニークパターンを保持し消去及び書き込みが可能なシステムプログラムと、消去及び書き込みが行われないように保護をかけられた消去プログラム並びに書き換えプログラムと、前記システムプログラムが保持するものと同一のユニークパターンとを格納した不揮発性メモリと、前記システムプログラムの書き換えを許可するフラグ情報を格納したメモリと、電源オンと同時に所定キーが押下された場合に前記フラグ情報を書き換え許可に書き換えるフラグ書き換え手段と、前記フラグ情報が書き換え許可のとき前記不揮発性メモリのシステムプログラムに対するライト許可信号の有効／無効を有効に設定するライト制御手段と、前記ライト許可信号が有効な場合に前記不揮発性メモリ内の消去プログラム並びに書き換えプログラムをＳＲＡＭに転送し当該ＳＲＡＭ上の消去プログラムを実行して不揮発性メモリのシステムプログラムを消去してから当該ＳＲＡＭ上の書き換えプログラムを実行して外部より新しいシステムプログラムを不揮発性メモリに書き込むことによりシステムプログラムの書き換えを行う書き換え手段と、電源オン時に前記所定キーが押下されなかった場合に前記システムプログラムが保持するユニークパターンと不揮発性メモリが格納するユニークパターンとを照合し不一致のとき再度システムプログラムの書き換えを行わせるためエラー表示を行うユニークパターン判定手段と、を具備することを特徴とする電子機器。
【請求項２】
メモリは複数のフラグ情報を格納し、電源オンと同時に所定キーが押下された場合に書き換え許可に書き換えられるフラグ情報の他に、暗証番号が正常な場合に書き換え許可に書き換えられる他のフラグ情報を備え、ライト制御手段は前記複数のフラグ情報のいずれもが書き換え許可を示す場合にライト許可信号を有効とすることを特徴とする請求項１記載の電子機器。
【請求項３】
ライト制御手段は、プログラム書き換え手順の途中でフラグ情報の確認を複数回行うことを特徴とする請求項１又は請求項２記載の電子機器。
【請求項４】
フラグ書き換え手段は、前記システムプログラム格納領域に含まれるユニークパターンが不揮発性メモリの格納するユニークパターンと一致する場合にフラグ情報を不許可とすることを特徴とする請求項１乃至請求項３のいずれか記載の電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリに格納したプログラムにより動作する電子機器に関する。本発明は、特にフラッシュメモリに格納したプログラムの誤操作又は誤動作による書き換えを防止する電子機器に関する。
【０００２】
【従来の技術】
近年、ノートパソコン、携帯情報端末（ＰＤＡ）等のような電子機器において、特開平７−８４７７６号公報及び特開平１０−１１２７９号公報に開示されているように、フラッシュメモリにシステムプログラムを格納し、必要に応じて書き換えることが行われている。
【０００３】
フラッシュメモリは不揮発性メモリの一つであり、電源を切ってもデータが消えず、しかも書き換えプログラムを実行して容易に書き換えが可能である。この反面、誤操作により書き換えプログラムが実行され、システムプログラムが消去されてしまうと、電子機器は正常に動作できなくなる。
【０００４】
従来、このような誤操作による消去、書き換えを防止するため、特定のキーの押し下げながら電源を入れることや、暗証番号を要求し、これらの条件を満足した場合にのみ書き換えが行われるように、書き換えプログラムに確認手順を設けることが行われている。
【０００５】
【発明が解決しようとする課題】
しかし、電気的ノイズ等の影響で書き換えプログラムが暴走した場合、誤って書き込みモジュールが呼び出され、システムプログラムが書き換えられてしまう可能性がある。
【０００６】
また、正常に書き換えプログラムが実行されている場合であっても、システムプログラム消去中や書き込み中に電源を落とすと、電子機器が二度と立ち上がらない。
【０００７】
本発明は、かかる点に鑑みてなされたものであり、第１にシステムプログラムが誤操作及び誤動作により消去又は書き換えられるのを防止できる電子機器を提供することを目的とする。
【０００８】
本発明は、第２にシステムプログラムの消去や書き換え中に誤って電源が落とされた場合でも復帰可能な電子機器を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上述の目的を達成するため、以下の構成をとる。
【００１０】
請求項１記載の電子機器に関する発明は、プログラム領域内にユニークパターンを保持し消去及び書き込みが可能なシステムプログラムと、消去及び書き込みが行われないように保護をかけられた消去プログラム並びに書き換えプログラムと、前記システムプログラムが保持するものと同一のユニークパターンとを格納した不揮発性メモリと、前記システムプログラムの書き換えを許可するフラグ情報を格納したメモリと、電源オンと同時に所定キーが押下された場合に前記フラグ情報を書き換え許可に書き換えるフラグ書き換え手段と、前記フラグ情報が書き換え許可のとき前記不揮発性メモリのシステムプログラムに対するライト許可信号の有効／無効を有効に設定するライト制御手段と、前記ライト許可信号が有効な場合に前記不揮発性メモリ内の消去プログラム並びに書き換えプログラムをＳＲＡＭに転送し当該ＳＲＡＭ上の消去プログラムを実行して不揮発性メモリのシステムプログラムを消去してから当該ＳＲＡＭ上の書き換えプログラムを実行して外部より新しいシステムプログラムを不揮発性メモリに書き込むことによりシステムプログラムの書き換えを行う書き換え手段と、電源オン時に前記所定キーが押下されなかった場合に前記システムプログラムが保持するユニークパターンと不揮発性メモリが格納するユニークパターンとを照合し不一致のとき再度システムプログラムの書き換えを行わせるためエラー表示を行うユニークパターン判定手段と、を具備する構成を採る。
【００１１】
この構成により、プログラムの書き換えを開始すると、ライト制御手段は、フラグ情報が書き換え許可を示しているか否か判断し、フラグ情報が書き換え許可を示している場合にのみライト許可信号を有効とする。物理的な書き換えを行うライト許可信号の有効／無効をフラグ情報に基づいて切り換えることにより、誤操作及び誤動作によるプログラムを書き換えるのを防止できる。
【００１２】
請求項２記載の発明は、メモリは複数のフラグ情報を格納し、電源オンと同時に所定キーが押下された場合に書き換え許可に書き換えられるフラグ情報の他に、暗証番号が正常な場合に書き換え許可に書き換えられる他のフラグ情報を備え、ライト制御手段は前記複数のフラグ情報のいずれもが書き換え許可を示す場合にライト許可信号を有効とする構成を採る。
【００１３】
この構成により、複数のフラグ情報の書き換えは、プログラム書き換え手順で順次行われる操作、例えば、電源を投入する際に所定のキーが押し下げられていること、及び、暗証番号要求に対して正しい暗証番号が入力されたこと等に関連して行われ、これらの操作が正しく行われた場合にフラグ情報が書き換え許可になり、複数のフラグ情報のいずれもが書き換え許可を示す場合にライト許可信号が有効になり、書き換え手段がプログラムの書き換えを行う。従って、誤操作によるプログラムの書き換えを防止することができる。また、請求項１記載の発明と同様に、誤動作によりプログラムを書き換えるのを防止できる。
【００１４】
請求項３記載の発明は、請求項１又は請求項２記載の電子機器の発明において、ライト制御手段は、プログラム書き換え手順の途中でフラグ情報の確認を複数回行う構成を採る。
【００１５】
この構成により、書き換え手順が異常に行われ、一つのフラグ情報の確認を飛ばして書き換え手順が進められたとしても、他のフラグ情報の確認でフラグ情報が書き換え不可を示す場合、ライト制御手段はライト許可信号を無効にする。従って、書き換え手段は書き換えを行わないので、プログラムが書き換えられるのを防止できる。
【００１８】
請求項４記載の発明は、請求項１乃至請求項３のいずれか記載の電子機器の発明において、フラグ書き換え手段は、前記システムプログラム格納領域に含まれるユニークパターンが不揮発性メモリの格納するユニークパターンと一致する場合にフラグ情報を不許可とする構成を採る。
【００１９】
この構成により、プログラムが正常な場合に必ずフラグ情報は不許可を示すことになり、誤操作及び誤動作によりプログラムが書き換えられるのを防止することができる。
【００２０】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を参照して説明する。
【００２１】
図１は、本発明の実施の形態に係る電子機器を示す概略構成図である。
【００２２】
ＣＰＵ１は、電子機器の各部の制御を行う演算処理回路である。シリアル通信ポート（ＵＡＲＴ）、入力ポート１、出力ポート２、チップセレクト信号端子ＣＳ１、ＣＳ２、ＣＳ３、アドレスバス端子（アドレス）、データバス端子（データ）、リード信号端子（ＲＤ）及びライト許可信号端子（ＷＲ）を備えている。
【００２３】
ＣＰＵ１のシリアル通信ポート（ＵＡＲＴ）には、プログラムデータを転送するためのパーソナルコンピュータ９が接続される。
【００２４】
スタートキー２は、ファクシミリ送信動作を開始するための操作キーであり、ＣＰＵの入力ポート１に接続されている。
【００２５】
リセット回路３は、電子機器のリセットを行う回路である。リセット回路３は、電源スイッチ４がオンされるとリセット信号をＣＰＵ１のリセット（RESET）端子に出力する。
【００２６】
プログラム用フラッシュメモリ５は、プログラム格納用の不揮発性メモリであり、システムプログラム、消去プログラム、書き込みプログラム及びパワーオンプログラムを含むプログラムを格納する。プログラム用フラッシュメモリ５は、アドレスバス端子（アドレス）、データバス端子（データ）、チップセレクト信号（ＣＳ）、リード信号端子（ＲＤ）及びライト許可信号端子（ＷＲ）を備えている。
【００２７】
ＳＲＡＭ６は、揮発性メモリであり、実行するプログラムを一時的に格納すると共に、フラグを記憶する。ＳＲＡＭ６は、アドレスバス端子（アドレス）、データバス端子（データ）、チップセレクト信号（ＣＳ）、リード信号端子（ＲＤ）及びライト許可信号端子（ＷＲ）を備えている。
【００２８】
データ用フラッシュメモリ７は、電子機器が取り扱う、例えばファクス画像データのような画像データ等のデータを格納する不揮発性メモリである。データ用フラッシュメモリ７は、アドレスバス端子（アドレス）、データバス端子（データ）、チップセレクト信号（ＣＳ）、リード信号端子（ＲＤ）及びライト許可信号端子（ＷＲ）を備えている。
【００２９】
ゲート回路８は、ライト許可信号（ＷＲ）の有効／無効の切替を行う。すなわち、ゲート回路８は、出力ポート２からの信号がLOWレベルのときには、ＣＰＵ１のライト許可信号端子（ＷＲ）からのライト許可信号（ＷＲ）を無効にし、出力ポート２の信号がHIGHレベルの時はライト許可信号（ＷＲ）を有効とする。
【００３０】
図２は、上記実施の形態に係るプログラム用フラッシュメモリの格納エリアのアドレス配置を示す模式図である。
【００３１】
プログラム用フラッシュメモリ５のアドレスF80000hからアドレスFF0000hまでのエリア（以下、第１エリアという）には、システムプログラムが格納されている。このシステムプログラム中には、システムプログラムの初期化処理を行うリセット処理モジュールが含まれている。システムプログラムの先頭及び最後にはユニークパターン１１がセットされている。ユニークパターンは、例えば「１２３４５６７８９」という任意の文字列を用いることができる。
【００３２】
プログラム用フラッシュメモリ５のアドレスFF0000hからアドレスFF8000hまでのエリア（以下、第２エリアという）には、消去プログラム及び書き換えプログラムが格納されている。また、プログラム用フラッシュメモリ５のアドレスFF8000h以降のエリア（以下、第３エリアという）には、電源を入れたときに実行されるパワーオンプログラムが格納されている。第２、第３エリアには消去及び書き込みが行われないように保護がかけられている。従って、プログラムの暴走及び誤操作によって消去及び書き換えられることはない。
【００３３】
図３は、上記実施の形態に係る電子装置におけるシステムプログラムの書き換え動作を示すフロー図である。
【００３４】
まず、通常動作について説明する。
【００３５】
ステップ（以下、ＳＴという）３０１において、電源スイッチ４が入ると、パワーオンプログラムが起動し、起動時処理を実行する。
【００３６】
ＳＴ３０２において、電源をオンしたときにスタートキー２が押し下げられていたか否かを判定する。スタートキー２が押し下げられていない場合、ＳＴ３０３に進む。ＳＴ３０３では、図２に示す第１エリアに格納されたシステムプログラムの先頭及び最後が、ユニークパターンに一致しているか否か判定する。ユニークパターンが一致し正常な場合には、ＳＴ３０４に進む。
【００３７】
ＳＴ３０４では、ＳＲＡＭ６に記憶したライト許可１及びライト許可２のフラグをオフする。また、出力ポート２からの信号をLOWレベルとし、言い換えれば出力ポート２からの信号をオフし、ライト許可信号（ＷＲ）を無効とする。
【００３８】
ＳＴ３０５において、システムプログラムのリセット処理、一般的にはパワーオン初期化処理を行い、ＳＴ３０６において通常処理に移行する。
【００３９】
上述のように通常使用時には、ライト許可信号（ＷＲ）が常に無効となっているので、たとえシステムプログラムが暴走しても、プログラムが消去、書き換えられることはない。
【００４０】
次に、システムプログラムの書き換え動作について説明する。
【００４１】
オペレータは、電源をオンするのと同時にスタートキー２を押し下げる。
【００４２】
ＳＴ３０２において、電源をオンしたときにスタートキー２が押し下げられていることを認識し、ＳＴ３０７に進む。
【００４３】
ＳＴ３０７において、フラグ「ライト許可１」をオンする。次いで、ＳＴ３０８において、暗証番号入力を要求する。ＳＴ３０９において、暗証番号が正常であるか否か判定する。暗証番号が異常である場合には、ＳＴ３１０において、エラーを表示し、ＳＴ３１１において電源オフ待ちに移行する。一方、暗証番号が正しい場合、ＳＴ３１２に進み、ライト許可２をオンする。
【００４４】
ＳＴ３１３においては、フラグ「ライト許可１」及び「ライト許可２」が両方オンか否か判断する。両者がオンでない場合、ＳＴ３１０に進み、エラーを表示して電源オフ待ちに移行する。一方、両者がオンの場合には、ＳＴ３１４に進み、出力ポートの信号をHIGHレベルとして、ライト許可信号（ＷＲ）を有効にする。
【００４５】
ＳＴ３１５において、消去プログラム及び書き換えプログラムをプログラム用フラッシュメモリ５からＳＲＡＭ６に転送する。フラッシュメモリは書き換えや消去中にデータの読み出しができないので、フラッシュメモリ上にプログラムを置いたままでは消去や書き換えを実行できないためである。
【００４６】
ＳＴ３１６において、ＳＲＡＭ６上の消去プログラムを実行し、プログラム用フラッシュメモリ５に格納したシステムプログラムを消去する。次に、ＳＴ３１７において、ＳＲＡＭ６上の書き換えプログラムを実行し、パーソナルコンピュータ９よりシリアル通信ポート（ＵＡＲＴ）を介して、新しいシステムプログラムを読み込み、プログラム用フラッシュメモリ５に書き込む。ＳＴ３１６、３１７におけるプログラムの消去及び書き込みは、ライト許可信号（ＷＲ）が有効であるときだけ行われる。
【００４７】
次いで、ＳＴ３１８において、ライト許可１及びライト許可２をオフし、また、出力ポートの信号をLOWレベルとして、ライト許可信号（ＷＲ）を無効にする。
【００４８】
ＳＴ３１９において、システムプログラムのリセット処理を実行して、プログラム書き換え処理を終了する。
【００４９】
上述のように、システムプログラムの書き換え手順で順次行われる、電源オン及び暗証番号入力に関連して複数のフラグを立てているので、フラグが両方立っていない場合には、システムプログラムが書き換えられることはなく、確実に誤操作によるプログラムの消去及び書き換えを防止できる。
【００５０】
以下、プログラムの消去及び書き換えをさらに詳細に説明する。
【００５１】
ＳＲＡＭ等の揮発性メモリは、プログラムアドレスにプログラムデータを書き込むだけで書き込み終了となる。しかし、フラッシュメモリは、所定の一連の処理（シーケンス）でないと書き込みができないように設計されている。従って、通常はこのシーケンスをモジュール化し、モジュールコールという形でプログラムの書き換えを行う。
【００５２】
図４は、上記実施の形態に係る電子機器における書き込みモジュールの動作を示すフロー図である。
【００５３】
本実施の形態では、プログラム用フラッシュメモリ５は、アドレス１にコマンド１を書き込み、次にアドレス２にコマンド２を書き込み、最後にアドレス１にコマンド３を書き込む一連の処理を行わないと、データ書き込みができないように設計されている。
【００５４】
ＳＴ４０１においては、ライト許可１及びライト許可２が両方オンか否か判断する。両者が両方オンでない場合、ＳＴ４０２においてライト許可１及びライト許可２をオフし、出力ポート２の信号をLAWレベルとして、ライト許可信号（ＷＲ）を無効にする。その後、ＳＴ４０３において、システムプログラムのリセット処理を行う。
【００５５】
ＳＴ４０１で両者が両方オンである場合、ＳＴ４０４において、プログラム用フラッシュメモリ５のアドレス１にコマンド１を書き込む。次いで、ＳＴ４０５において、アドレス２にコマンド２を書き込む。
【００５６】
ＳＴ４０６においては、ライト許可１及びライト許可２が両方オンか否か判断する。両者が両方オンでない場合、ＳＴ４０７においてライト許可１及びライト許可２をオフし、出力ポート２の信号をLAWレベルとして、ライト許可信号（ＷＲ）を無効にする。その後、ＳＴ４０８において、システムプログラムのリセット処理を行う。
【００５７】
ＳＴ４０６で両者が両方オンである場合、ＳＴ４０９において、プログラム用フラッシュメモリ５のアドレス１にコマンド３を書き込む。
【００５８】
ＳＴ４１０において、プログラムアドレスにプログラムデータを書き込む。次いで、ＳＴ４１１において、プログラムフラッシュメモリ５のデータポーリングを行う。その後、ＳＴ４１２において、プログラムが正常に終了したか否か判断する。異常の場合には、ＳＴ４１３に進み、エラー処理を行う。一方、正常な場合には書き込み処理を終了する。
【００５９】
従って、書き込みモジュールは、ＳＴ４０４、ＳＴ４０５及びＳＴ４０９のシーケンスを経て始めて、プログラムを書き込むことができる。そして、ＳＴ４０１及びＳＴ４０６において、フラグが書き換え許可を示していることを確認しているため、誤操作によりプログラムの書き込みが行われるのを防止することができる。
【００６０】
上述のように、プログラム用フラッシュメモリ５のライト許可信号（ＷＲ）が有効となるのは、電源をオンするときにスタートキー２を押し下げたこと、及び、暗証番号が正常であることの両方が満たされた場合にのみとなり、誤操作によりシステムプログラムが消去及び書き換えられることはない。
【００６１】
次にシステムプログラムが暴走して、図３に示すＳＴ３１４のライト許可信号を有効にする処理にプログラムが飛んできた場合について説明する。
【００６２】
本実施の形態に係る電子機器のように、データ用フラッシュメモリ７を搭載している場合、システムプログラムは、フラッシュメモリを消去及び書き換えるプログラムが存在する。このため、システムプログラムが暴走してシステムプログラム用フラッシュメモリ５に対して、消去及び書き換えを実行しようとすることがある。
【００６３】
図４に示すように、書き込みモジュールでは、ライト許可１及びライト許可２が両方オンになっていない場合、ＳＴ４０１及びＳＴ４０６の確認処理で検出し、ＳＴ４０２及びＳＴ４０７で、ライト許可１及びライト許可２をオフし、ライト許可信号（ＷＲ）を無効にして、ＳＴ４０３及びＳＴ４０７のシステムプログラムのリセット処理へ進む。従って、フラッシュメモリの書き込みはＳＴ４０４、ＳＴ４０５及びＳＴ４０９のシーケンスが順番通りに実行されないと行われないため、プログラムの書き換えを防止することができる。
【００６４】
また、ＳＴ４０４のアドレス１にコマンド１を書き込む処理にプログラムが暴走してきた場合でも、ＳＴ４０６においてフラグを確認するためにシステムプログラムが書き変わることはない。
【００６５】
同様に消去シーケンスにも同じ判定を用いることにより、システムプログラムが不正に消去されるのを防ぐことができる。
【００６６】
上述のように、システムプログラムが暴走してＳＴ３１４に飛んできても、フラグがオンでないため、書き込みモジュールでのＳＴ４０１及びＳＴ４０６での確認処理でエラーとなり、書き込みシーケンスが順番通りに実行されない。この結果、システムプログラムが間違って書き込まれることが防止できる。
【００６７】
さらに、書き込みモジュールの書き込みシーケンスの途中でフラグの確認を行っているので（ＳＴ４０６）、システムプログラムの暴走によりＳＴ４０４に飛んでしまってもシステムプログラムが間違って書き込まれるのを防止できる。この結果、プログラムの暴走に対してフラッシュメモリのプログラムの信頼性を飛躍的に向上することができる。
【００６８】
次にシステムプログラムの消去中や書き込み中に誤って電源がオフになった場合について説明する。
【００６９】
システムプログラムの消去及び書き込み中に誤って電源がオフになった場合、プログラムの書き換えが正常に終了していないので、システムプログラムの先頭及び最後の少なくとも一方は「００」又は「ＦＦ」にセットされる。このため、システムプログラムの先頭又は最後の文字列は、パワーオンプログラムに保存されたユニークパターン１１と一致しなくなる。従って、図３に示すＳＴ３０３のユニークパターン判定でエラーとなり、ＳＴ３１０に進み、エラーを表示し、Ｓ３１１において電源オフ待ちになる。オペレータは、一度電源をオフし、再度スタートキー２を押し下げながら電源をオンして、システムプログラムの書き換えを行う。以上の動作により、正常にシステムプログラムの書き換えを行えば、電子装置が正常動作するようになる。この結果、システムプログラムの書き換えに以上があっても簡単に電子機器の機能を回復することができる。
【００７０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、不揮発性メモリに搭載されたプログラムが、誤操作及び誤動作により消去又は書き換えられるのを防止することができる。また、プログラムの暴走に対して不揮発性メモリのプログラムの信頼性を飛躍的に向上することができる。
【００７１】
また、本発明によれば、システムプログラムの消去及び書き換えが正常に終了しなかった場合にも簡単に電子機器の機能を復帰させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る電子機器を示す概略構成図
【図２】上記実施の形態に係るプログラム用フラッシュメモリの格納エリアのアドレス配置を示す模式図
【図３】上記実施の形態に係る電子装置におけるシステムプログラムの書き換え動作を示すフロー図
【図４】上記実施の形態に係る電子機器における書き込みモジュールの動作を示すフロー図
【符号の説明】
１  ＣＰＵ
２  スタートキー
３  リセット回路
４  電源スイッチ
５  プログラム用フラッシュメモリ
６  ＳＲＡＭ
７  データ用フラッシュメモリ
８  ゲート回路
【図１】
0004050824.tif 000002
【図２】
0004050824.tif 000003
【図３】
0004050824.tif 000004
【図４】
0004050824.tif 000005