(57)【特許請求の範囲】
【請求項１】
データの電気的消去及びデータの書き込み読み出しが可能な、一定記憶量の複数ブロックから成る不揮発性メモリを内蔵したマイクロコンピュータであって、
前記不揮発性メモリを誤書き込みから保護するための保護データが格納されるレジスタと、
前記保護データを検知し、前記不揮発性メモリを書き込み許可状態とするデコーダと、
前記一定記憶容量の複数ブロックの１ブロック分の格納容量を有し、前記書き込み許可状態に応じて、前記不揮発性メモリに書き込みデータを一旦格納するページバッファ回路と、
前記書き込みデータが前記ページバッファ回路から前記不揮発性メモリ内の１ブロックに移送される間、前記保護データが格納される前記レジスタをリセットする制御信号は前記マイクロコンピュータからの命令を解読した結果に応答して出力される強制設定信号によって無視され、前記レジスタに対し前記制御信号は無効となることで前記レジスタに格納された前記保護データを維持する強制設定回路と、を備えることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データを一括又は部分的（ページ単位等）に電気消去でき且つデータを繰り返し書き込み及び読み出しできる不揮発性メモリ（フラッシュメモリ等）を内蔵したマイクロコンピュータに関する。
【０００２】
【従来の技術】
１チップマイクロコンピュータは各種論理演算を実行する為のプログラムメモリを内蔵するが、大半の１チップマイクロコンピュータはマスクＲＯＭを内蔵してプログラムメモリとして機能させているのが現状である。この理由は、マスクＲＯＭが１チップマイクロコンピュータを小型化及び低価格化できる構造上の利点を有する為である。しかし、マスクＲＯＭは、集積後のプログラム内容が誤っていた場合、新たなプログラム開発を必要とする為、開発費が高くなると共に納期が遅れる欠点も有する。
【０００３】
そこで、最近の１チップマイクロコンピュータは、データの電気消去及びデータの書き込み読み出しが可能な不揮発性メモリ（フラッシュメモリ）をマスクＲＯＭの代わりに内蔵し、マスクＲＯＭの欠点を補える様になっている。
図３は従来のマイクロコンピュータを示す回路ブロック図である。
図３において、（１）はクロックジェネレータであり、発振回路（水晶、セラミック等の発振振動子を設けた自走発振又は他走発振の何れでもよい）の発振クロックが供給され、発振クロックに分周等の論理処理を施して各種論理演算を実行する為のシステムクロックを発生するものである。
【０００４】
（２）はフラッシュメモリ（不揮発性メモリ）であり、データを一括又は部分的（例えばページ（１２８ワード）単位）に電気消去でき且つデータを繰り返し書き込み及び読み出しできる特性を有する。フラッシュメモリ（２）はマイクロコンピュータのプログラムメモリとして機能し、アドレス領域Ａの内部セルには各種論理演算を実行させる為のプログラム命令が格納され、アドレス領域Ｂの内部セルにはアドレス領域Ａのプログラム命令を書き換える為の書き換え命令が格納されている。フラッシュメモリ（２）は、通常はアドレス領域Ａが指定され、アドレス領域Ａのプログラム内容を書き換える為の割り込み要求が発生した時のみアドレス領域Ｂが指定される様にアドレス領域Ａからジャンプする。マイクロコンピュータは、フラッシュメモリ（２）のアドレス領域Ａから読み出されたプログラム命令の解読結果に従って各種論理演算動作を実行し、一方、フラッシュメモリ（２）のアドレス領域Ｂから読み出された書き換え命令の解読結果に従って、アドレス領域Ａの内容の書き換え動作を実行する。尚、フラッシュメモリ（２）のアドレス領域Ａの書き換えデータは、マイクロコンピュータの内部に事前準備する方法（マスクＲＯＭを別途設けてテーブルデータとして格納する方法等）、又は、マイクロコンピュータの外部から供給する方法（ＰＲＯＭライタから供給する方法等）の何れでも良い。
【０００５】
フラッシュメモリ（２）は、データ記憶用内部セルの他に、以下の周辺回路を含む。即ち、（３）はアドレスデコーダであり、フラッシュメモリ（２）をアドレス指定する為のアドレスデータ（ｍビット）を解読するものである。（４）は検出回路であり、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令が使用者の意思に反して誤って書き換えられる不都合を防止するものである。詳しくは、検出回路（４）は、複数のレジスタ（５）及びデコーダ（６）を含む。複数のレジスタ（５）は、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令（ページ単位）を書き換えようとする前段階で、使用者が予め用意した保護データ（ＡＡＨ、５５Ｈ等）を格納するものである。デコーダ（６）は、複数のレジスタ（５）の値が使用者の意図する値であるかどうかを解読し、複数のレジスタ（５）の全ての値が正しい場合はフラッシュメモリ（２）の書き換え動作を許可し、複数のレジスタ（５）の値が１つでも誤っている場合はフラッシュメモリ（２）の書き換え動作を禁止する様な論理構造となっている。（７）はページバッファ（スタティックＲＡＭ等の揮発性メモリ）であり、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令を１ページ単位で書き換える為の１２８ワードの記憶容量を有する。ページバッファ（７）は、自らをアドレス指定する為のインクリメント機能を有する。書き換えデータは、ページバッファ（７）に一旦格納された後、フラッシュメモリ（２）のアドレス領域Ａの指定ページに書き込まれる。
（８）は識別回路であり、フラッシュメモリ（２）のアドレスＡ領域の内部セルを書き込み可能状態に設定する為の制御信号ＷＲＴを発生する。フラッシュメモリ（２）は、制御信号ＷＲＴがハイレベル（論理値「１」）となることによって書き込み可能状態となる。また、制御信号ＷＲＴは検出回路（４）にも供給され、複数のレジスタ（５）の値は、制御信号ＷＲＴがローレベル（論理値「０」）となることによってリセットされる。
【０００６】
（９）は制御回路であり、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令の解読結果に従って動作し、識別回路（８）に対し、フラッシュメモリ（２）の為の動作許可信号＊ＣＥ、書き込み許可信号＊ＷＥ、読み出し許可信号＊ＯＥ、書き込み禁止信号ＷＩを供給するものである。識別回路（８）は、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥがローレベルに変化したことを検出して制御信号ＷＲＴをハイレベルとし、書き込み禁止信号ＷＩが発生したことを検出して制御信号ＷＲＴをローレベルとする。尚、書き込み禁止信号ＷＩは、フラッシュメモリ（２）のアドレス領域Ｂのプログラム命令の解読結果に従って、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥがローレベルに変化してから一定時間経過後に発生する。詳しくは、書き込み禁止信号ＷＩは、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥがハイレベルに変化した直後から動作許可信号＊ＣＥ及び読み出し許可信号＊ＯＥがローレベルに変化する迄の期間で発生する。
【０００７】
（１０）はＣＰＵであり、フラッシュメモリ（２）のアドレス領域Ａ及びＢから読み出されたプログラム命令の解読結果に従って、各種論理演算動作を実行するものであり、ＡＬＵ、ＡＣＣ、各種レジスタ等を含む。（１１）はプログラムカウンタであり、フラッシュメモリ（２）をアドレス指定する為のアドレスデータ（ｍビット）を発生するものである。プログラムカウンタ（１１）は、フラッシュメモリ（２）から命令を読み出す時に使用する。（１２）はｍ個のラッチ回路であり、フラッシュメモリ（２）のアドレス領域Ｂから読み出された書き換え命令の解読結果に従って、ＣＰＵ（１０）が発生するアドレス領域Ａの一部領域を指定する為のアドレスデータ（ｍビット）をクロックＣＫ０に同期してラッチするものである。同様に、（１３）はｍ個のラッチ回路であり、フラッシュメモリ（２）のアドレス領域Ａの書き換え用の新規プログラムデータ（ｎビット）をクロックＣＫ１に同期してラッチするものである。ラッチ回路（１２）（１３）は、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令を書き換む時に使用する。ＡＮＤゲート（１４）（１５）及びＯＲゲート（１６）から成る切換回路は、プログラムカウンタ（１１）又はラッチ回路（１２）の何れか一方のアドレスデータをフラッシュメモリ（２）に切換出力するものである。（１７）は選択回路であり、切換回路に切り換えを指示する為の選択信号ＳＥＬＥＣＴを供給するものである。即ち、選択信号ＳＥＬＥＣＴは、プログラムカウンタ（１１）の値をフラッシュメモリ（２）に供給する時にハイレベルとなり、ラッチ回路（１２）のＱ端子の値をフラッシュメモリ（２）に供給する時にローレベルとなる。
【０００８】
切換回路から切換出力されるアドレスデータは、フラッシュメモリ（２）をアドレス指定する為にアドレスデコーダ（３）に供給され且つ複数のレジスタ（５）を選択する為に検出回路（４）にも供給されるが、アドレスデコーダ（３）及び検出回路（４）が同時動作することがない為、何ら問題ない。ラッチ回路（１３）から出力されるプログラムデータは複数のレジスタ（５）及びアドレス領域Ａの内部セルに供給される。
【０００９】
制御回路（９）の出力と識別回路（８）の出力との関係は図４のタイムチャートに示す通りである。即ち、制御信号ＷＲＴは書き込み禁止信号ＷＩの作用でハイレベル及びローレベルを繰り返し、フラッシュメモリ（２）を書き込み可能状態又は読み出し可能状態に設定できる様になっている。
【００１０】
【発明が解決しようとする課題】
ところで、フラッシュメモリ（２）が書き込み状態の場合、動作許可信号＊ＣＥが立ち下がった時点でアドレス指定を行い、動作許可信号＊ＣＥが立ち上がった時点でデータ書き込みを行うシーケンスである。その為、複数のレジスタ（５）に保護データを格納しても、複数のレジスタ（５）の内容は制御信号ＷＲＴがローレベルに変化する都度リセットされてしまい、これでは検出回路（４）を設けた意味がない。図３のマイクロコンピュータは、誤書き換え防止機能のないものと等価に過ぎない。
【００１１】
そこで、本発明は、不揮発性メモリのプログラム内容が誤って書き換えられる不都合を防止できるマイクロコンピュータを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、前記問題点を解決する為に成されたものであり、データの電気消去及びデータの書き込み読み出しが可能な特性を有する不揮発性メモリを内蔵したマイクロコンピュータであって、前記不揮発性メモリが書き込みモードの時、前記不揮発性メモリを誤書き込みから保護する為の保護データが格納される保持回路と、前記保持回路の格納値の状態を検出し、前記格納値が正常である場合は前記不揮発性メモリのデータ書き換えを許可し、前記格納値が異常である場合は前記不揮発性メモリのデータ書き換えを禁止させる検出回路と、動作許可信号、書き込み許可信号、読み出し許可信号、書き込み禁止信号の状態変化を検出し、前記動作許可信号及び前記書き込み許可信号が第１論理レベルとなった時、前記不揮発性メモリの内部セルを書き込み可能状態とする為の制御信号を出力して前記不揮発性メモリを書き込みモードとし、前記動作許可信号及び前記書き込み許可信号が第１論理レベルとなった状態で前記書き込み禁止信号が発生した時、前記制御信号の出力を禁止すると共に前記保持回路の格納値をリセットし、前記動作許可信号及び前記読み出し許可信号が第１論理レベルとなった時、前記不揮発性メモリを読み出しモードとする識別回路と、前記保持回路が保護データを格納開始してから前記不揮発性メモリがデータ書き換えを終了する迄の間、前記制御信号を無視して前記不揮発性メモリを書き込みモードとする為の強制設定信号を出力する強制設定回路と、を備えたことを特徴とする。
【００１３】
前記制御信号及び前記強制設定信号の論理和出力で前記不揮発性メモリ及び前記保持回路の状態を制御することを特徴とする。
【００１４】
【発明の実施の形態】
本発明の詳細を図面に従って具体的に説明する。
図１は本発明のマイクロコンピュータを示す回路ブロック図である。尚、図１を説明する際、図３と同一素子については同一番号を記すと共にその説明を省略するものとする。
【００１５】
図１において、（１８）はフラグであり、制御回路（９）に内蔵され、制御信号ＷＲＴの状態と関係なくフラッシュメモリ（２）を強制的に書き込みモードとする為の強制設定信号ＰＬが、フラッシュメモリ（２）のアドレス領域Ｂの書き換え命令の解読結果に従って設定されるものである。フラグ（１８）は制御信号ＷＲＴが立ち下がった時にリセットされる。制御信号ＷＲＴ及び強制設定信号ＰＬはＯＲゲート（１９）を介して検出回路（４）のリセット端子に供給される。
【００１６】
図１の動作を図２のタイムチャートを用いて説明する。
先ず、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令を書き換える為の割込み要求が発生すると、プログラムカウンタ（１１）がアドレス領域Ｂを指定する為のアドレスデータを切換回路を介してアドレスデコーダ（３）に供給し、フラグ（１８）の値はアドレス領域Ｂから読み出された書き換え命令の解読結果に従ってハイレベルとなる。これより、ＯＲゲート（１９）の出力は強制設定信号ＰＬを優先し制御信号ＷＲＴの変化を無視してハイレベルとなり、検出回路（４）はリセット解除状態となる。そして、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥが立ち下がった時、複数のレジスタ（５）の何れか１つをアドレス指定し、その後、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥが立ち上がった時、アドレス指定された何れか１つのレジスタ（５）に保護データを格納し、その後、制御信号ＷＲＴが立ち下がる迄の期間でデコーダ（６）はそのレジスタ（５）の格納値が使用者の意図する値であるかどうかを解読する。複数のレジスタ（５）の数だけ、アドレス指定、保護データ格納、解読の一連の動作を繰り返す。複数のレジスタ（５）の格納値が１つでも使用者の意図する値と異なる場合は、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令が使用者の意思に反して誤書き換えされるものと判断し、書き換え動作を禁止する。一方、複数のレジスタ（５）の格納値が全て使用者の意図する値である場合は、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令の書き換え動作を許可する。これに伴い、ページバッファ（７）がインクリメント動作を開始し、１ページ（１２８ワード）分の新規プログラムデータが内部のＲＯＭテーブル又は外部のＰＲＯＭライタから供給され書き込まれる。ページバッファ（７）の書き込みが終了すると、その後、動作許可信号＊ＣＥ及び読み出し許可信号＊ＯＥがローレベルとなる期間において、フラッシュメモリ（２）のアドレス領域Ｂから読み出されたプログラム命令の解読結果に従って、ページバッファ（７）の内容をフラッシュメモリ（２）のアドレス領域Ａに書き込む動作を開始する。詳しくは、動作許可信号＊ＣＥ及び書き込み許可信号＊ＷＥが立ち下がると、書き込み禁止信号ＷＩがローレベルに固定され制御信号ＷＲＴはページバッファ（７）からフラッシュメモリ（２）のアドレス領域Ａの特定ページへの書き込み動作が終了する迄ハイレベルに固定される。この間、選択信号ＳＥＬＥＣＴはローレベルに固定される。フラグ（１８）の値は制御信号ＷＲＴの立ち下がりでリセットされる。よって、フラッシュメモリ（２）のアドレス領域Ａのプログラム書き換え動作が終了すると、フラッシュメモリ（２）は制御信号ＷＲＴで制御される状態に戻る。
【００１７】
以上より、強制設定信号ＰＬの作用効果によって、複数の全レジスタ（５）に対するアドレス指定、保護データ格納、解読の一連の動作を実行でき、フラッシュメモリ（２）のアドレス領域Ａのプログラム命令が誤書き換えされる不都合を防止できる。
【００１８】
【発明の効果】
本発明によれば、強制設定信号の作用効果によって、複数の全保持回路に対するアドレス指定、保護データ格納、解読の一連の動作を実行でき、不揮発性メモリのプログラム命令が何らかの誤動作の影響で使用者の意思に反して誤書き換えされる様な不都合を防止できる利点が得られる。
【図面の簡単な説明】
【図１】本発明のマイクロコンピュータを示す回路ブロック図である。
【図２】図１の動作を示すタイムチャートである。
【図３】従来のマイクロコンピュータを示す回路ブロック図である。
【図４】図３の動作を示すタイムチャートである。
【符号の説明】
（２）  フラッシュメモリ
（４）  検出回路
（５）  レジスタ
（６）  デコーダ
（７）  ページバッファ
（８）  識別回路
（９）  制御回路
（１８）  フラグ
（１９）  ＯＲゲート
【図１】
0003695931.tif 000002
【図２】
0003695931.tif 000003
【図３】
0003695931.tif 000004
【図４】
0003695931.tif 000005