(57)【特許請求の範囲】
【請求項１】
プログラムの格納用に電気的に一括消去および書き換え可能な不揮発性メモリであるフラッシュメモリを内蔵し、このフラッシュメモリのプログラム修正を行う書き換え動作モードを割込により設定されるマイクロコントローラにおいて、
前記フラッシュメモリを書き換えるための一連の動作のプログラムであるファームウェアと後述の通信手段の動作の制御プログラムを設定する割込ベクタを格納したＲＯＭと、
前記ＲＯＭから読み出したファームウェアに従い前記フラッシュメモリの書き換え手順を制御する中央演算処理装置であるＣＰＵと、
外部のホストコンピュータからの前記フラッシュメモリの書き換えデータの受信、及び前記ホストコンピュータへの受信準備完了通知を含む送信を行う通信手段と、
入力／出力（Ｉ／Ｏ）回路およびタイマを含む複数の周辺回路と、
前記フラッシュメモリの書き換えを行わない通常モードのとき、前記複数の周辺回路から送られてくる割込要求信号を予め定めた優先順位に従って前記ＣＰＵに通知するとともに、前記フラッシュメモリの書き換えを行う場合である書き換えモードのとき、この書き換えモード設定に連動した書き換えモード信号の供給に応答して、前記通信手段の割込要求信号を前記優先順位よって定められた前記通信手段の割込順位よりも上位に変更して前記ＣＰＵに通知する割込みコントローラと、を備えることを特徴とするマイクロコントローラ。
【請求項２】
前記割込コントローラが、前記書き換えモード信号の供給に応答して入力された前記通信手段からの割込要求信号である通信割込要求信号を予め定めた基準に基づく割込順位に変更し前記ＣＰＵに割込実行を要求する割込実行要求信号を発生する割込レベル変換回路を備えることを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記割込レベル変換回路が、予め定めたＮ（Ｎは正の整数）個の割込要求信号の優先順位に応じて同時発生した複数の割込のうちの最高優先順位のものを選択し選択割込要求信号を出力する割込順位決定回路と、
前記書き換えモード信号の論理レベルに応答して前記割込順位決定回路から出力される前記選択割込要求信号と前記通信手段からの前記通信割込要求信号とのいずれか一方を前記割込実行要求信号として選択し出力する書き換えモード優先化回路と、
を備えることを特徴とする請求項２記載のマイクロコントローラ。
【請求項４】
前記Ｎが４であり、前記割込順位決定回路が、フラッシュメモリの書き換えを行わない通常動作モードのとき前記４個の割込要求信号のうちの最高優先順位の割込要求信号の反転信号である第１の反転割込要求信号を反転するインバータと、
前記インバータの出力信号と前記４個の割込要求信号のうちの第２の優先順位の割込要求信号の反転信号である第２の反転割込要求信号との否定論理和をとる第１のＮＯＲ回路と、
前記第１の反転割込要求信号と前記第２の反転割込要求信号との否定論理積をとる第１のＮＡＮＤ回路と、
前記第１のＮＡＮＤ回路の出力と前記４個の割込要求信号のうちの第３の優先順位の割込要求信号の反転信号である第３の反転割込要求信号との否定論理和をとる第２のＮＯＲ回路と、
前記第１の反転割込要求信号と前記第２の反転割込要求信号と前記４個の割込要求信号のうちの第３の優先順位の割込要求信号の反転信号である第３の反転割込要求信号との否定論理積をとる第２のＮＡＮＤ回路と、
前記第２のＮＡＮＤ回路の出力と前記４個の割込要求信号のうちの第４の優先順位の割込要求信号の反転信号である第４の反転割込要求信号との否定論理和をとる第３のＮＯＲ回路と、
前記インバータの出力と前記第１〜第３のＮＯＲ回路の各々の出力との論理和をとり前記選択割込要求信号を発生するＯＲ回路と、
を備えることを特徴とする請求項３記載のマイクロコントローラ。
【請求項５】
前記書き換えモード優先化回路が、前記書き換えモード信の論理レベルに応答して前記通信割込要求信号を導通遮断する第１のトランスファゲートと、
前記書き換えモード信号を反転し反転書き換えモード信号を出力するインバータと、
出力端が前記第１のトランスファゲートの出力端と共通接続され、前記インバータの出力である前記反転書き換えモード信号の論理レベルに応答して前記割込順位決定回路から供給を受けた前記選択割込要求信号を導通遮断する第２のトランスファゲートとを備え、前記出力端から前記割込実行要求信号を出力することを特徴とする請求項３記載のマイクロコントローラ。
【請求項６】
前記割込レベル変換回路が、前記書き換えモード信号の不活性化時の論理レベルに応答して予め定めたＮ（Ｎは正の整数）個の割込要求信号の優先順位に応じて同時発生した複数の割込のうちの最高優先順位のものを選択して前記割込実行要求信号を出力し、前記書き換えモード信号の活性化時の論理レベルに応答して前記最高優先順位の割込要求信号の割込順位を強制的に下位順位に変更する割込順位決定回路と、
前記書き換えモード信号を反転して反転書き換えモード信号を生成するとともに前記書き換えモード信号の活性化時の前記反転書き換えモード信号の論理レベルに応答して前記通信手段からの割込要求信号である通信割込信号の順位を最高順位に設定する書き換えモード優先化回路と、
を備えることを特徴とする請求項２記載のマイクロコントローラ。
【請求項７】
前記Ｎが４であり、前記割込順位決定回路が、フラッシュメモリの書き換えを行わない通常動作モードのとき前記４個の割込要求信号のうちの最高優先順位の割込要求信号の反転信号である第１の反転割込要求信号と前記書き換えモード信号との否定論理積をとる第１のＮＡＮＤ回路と、
前記第１のＮＡＮＤ回路の出力信号と前記４個の割込要求信号のうちの第２の優先順位の割込要求信号の反転信号である第２の反転割込要求信号との否定論理和をとる第１のＮＯＲ回路と、
前記第１の反転割込要求信号と前記第２の反転割込要求信号と前記書き換えモード信号との否定論理積をとる第２のＮＡＮＤ回路と、
前記第２のＮＡＮＤ回路の出力と前記４個の割込要求信号のうちの第３の優先順位の割込要求信号の反転信号である第３の反転割込要求信号との否定論理和をとる第２のＮＯＲ回路と、
前記第１の反転割込要求信号と前記第２の反転割込要求信号と前記４個の割込要求信号のうちの第３の優先順位の割込要求信号の反転信号である第３の反転割込要求信号と前記書き換えモード信号との否定論理積をとる第３のＮＡＮＤ回路と、
前記第３のＮＡＮＤ回路の出力と前記４個の割込要求信号のうちの第４の優先順位の割込要求信号の反転信号である第４の反転割込要求信号との否定論理和をとる第３のＮＯＲ回路と、
前記第１のＮＡＮＤ回路の出力と前記第１〜第３のＮＯＲ回路の各々の出力と前記書き換えモード優先化回路の出力との論理和をとり前記選択割込要求信号を発生するＯＲ回路と、を備え、
前記書き換えモード優先化回路が、前記書き換えモード信号を反転して反転書き換えモード信号を出力するインバータと、
前記反転書き換えモード信号と前記通信割込要求信号との否定論理和をとる第４のＮＯＲ回路と、
を備えることを特徴とする請求項６記載のマイクロコントローラ。
【請求項８】
前記通信手段が、シリアルコミュニケーションの一種であるクロック同期式通信方式に対応するクロック同期シリアルインタフェースを備えることを特徴とする請求項１記載のマイクロコントローラ。
【請求項９】
プログラムの格納用に電気的に一括消去および書き換え可能な不揮発性メモリであるフラッシュメモリを内蔵し、このフラッシュメモリのプログラム修正を行う書き換え動作モードを割込により設定されるマイクロコントローラのフラッシュメモリの書き換え方法において、
前記フラッシュメモリの書き換えを行う書き換えモードのときこの書き換えモード設定に連動した書き換えモード信号の論理レベルをＬレベルからＨレベルに設定する第１のステップと、
前記書き換えモード信号のＨレベルへの遷移に応答して、外部のホストコンピュータからの前記フラッシュメモリの書き換えデータの受信、及び前記ホストコンピュータへの受信準備完了通知を含む送信を行う通信手段の割込要求信号の優先順位を予め定められた順位から最上位の順位に変更する第２のステップと、
前記通信手段の割込要求信号から生成した割込み実行要求信号の供給に応答して書き換え動作プログラムを読み出し、ＣＰＵの初期化を行う第３のステップと、
前記通信手段を経由して前記ホストコンピュータから供給される前記フラッシュメモリの書き換えデータの受信を行うための割込を待つ第４のステップと、
前記通信手段が前記ホストコンピュータが送信した割込データである前記書き換えデータを受信する第５のステップと、
前記ＣＰＵが、前記通信手段における前記書き換えデータの受信を認識し、この書き換えデータを下に前記フラッシュメモリの書き換え処理を行う第６のステップと、
すべての前記書き換えデータを受信するまで前記書き換えデータの受信及び前記フラッシュメモリへの書き換え処理を繰り返す第７のステップと、
を含むことを特徴とするマイクロコントローラのフラッシュメモリの書き換え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロコントローラ及びそのプログラムの書き換え方法に関し、特にプログラムの格納用に電気的に一括消去及び書き換え可能な不揮発性メモリ（フラッシュメモリ）を内蔵したマイクロコントローラ及びそのプログラムの書き換え方法に関する。
【０００２】
【従来の技術】
近年、内部にマイクロプロセッサシステム（以下マイクロコントローラ）を持ったテレビジョン受像機，ＶＴＲ，ＤＶＤプレーヤ，オーディオコンポ，衛星放送受信機，ＣＡＴＶ端末等のいわゆるＡＶ機器や家電製品、自動車エレクトロニクス等の電子機器が一般化している。これらは電子機器の内部に、電子機器を構成する各種回路・装置を制御するためのＣＰＵ、並びにこのＣＰＵのプログラムを格納するＰＲＯＭ等のプログラムメモリを内蔵し、上記ＣＰＵにより、ＣＰＵ及びプログラムメモリの接続されたパスを介して電子機器内部に設けられた各種の回路・装置を制御するようになっている。
【０００３】
また、電子機器の高機能化に伴って仕様が複雑化し、年々マイクロコントローラに求められる上記各種の回路・装置の制御も複雑化の一途をたどっている。これにより、電子機器が市場へ出荷後あるいは出荷直前にマイクロコントローラソフトウェアに起因する不具合（いわゆるバグ）が発見されたり、機能仕様の変更も度々発生し、これにより、電子機器の機能を統合的に管理・制御しているマイクロコントローラＣＰＵのプログラムを変更する必要が頻繁に発生する事態が生じている。
【０００４】
また、最近は、マイクロコントローラのプログラムを記憶するプログラムメモリとして、マスクＲＯＭ等の固定メモリに代わり電気的に書き換え可能なＥＥＰＲＯＭあるいはフラッシュメモリ等が用いられるようになり、メモリを物理的に交換せずに、電子機器に実装したままの状態でプログラム修正できるようになっている。
【０００５】
プログラムメモリとしてフラッシュメモリを用い、このフラッシュメモリに格納したプログラムの書き換え制御を行う特開平８−６９１９号公報（文献１）記載の従来のマイクロコントローラは、単一の半導体チップ上に、少なくとも中央処理装置（ＣＰＵ）と、このＣＰＵが処理すべき情報（データ）を電気的な消去書き込みたよって書き換え可能な不揮発性のフラッシュメモリとを搭載し、フラッシュメモリ内のデータの書き換えに対しシリアルコミュニケーションの一種である調歩同期式通信を用いて書き換える書き換え動作モードを備え、この調歩同期式通信のボーレート（ビットレート）を転送元のビットレートに自動的に合わせ込む。
【０００６】
この場合に、上記書き換え動作モードにおいて、フラッシュメモリのデータ書き換え及びシリアルコミュニケーションの制御を行うのはＣＰＵであり、このＣＰＵを制御するプログラムであるファームウェアをフラッシュメモリ又はマスクＲＯＭが保有する。
【０００７】
また、前記書き換え動作モードを起動すると、制御プログラムを保有しているエリア以外のフラッシュメモリのデータを確認し、既に書き込まれたデータがあればこの制御プログラムを保有しているエリア以外を消去する。
【０００８】
この種のプログラム書き換えの制御は、一般に割込により行われる。割込とは、コンピュータがプログラム実行中に発生した非同期的な、又は例外的な事象に応答するために、実行中のプログラムを強制的に一時中断し、指定されたルーチン、すなわち、割込処理ルーチンに自動的に制御を移すことである。その際割込時点で実行中のプログラムを後刻再起動できるように、ＣＰＵ状態を自動的に保存する。
【０００９】
割込発生の要因として、割込発生時点で実行中のプログラムと関連があるか否かによって分類し、関連がある場合の内部要因によるものを割出しと呼び、実行中のプログラムと関連がない外部要因によるものを割込と呼ぶことが一般的である。ここでは、この定義による、すなわち、シリアルコミュニケーション等通信デバイスを経由した外部要因による割込を考える。
【００１０】
この割込は、上記の通信デバイス経由のほか、入出力関係、タイマ関係、他機器関係等、複数存在するのが一般的であり、これら複数の割込のうちから、所定の優先順位及び割込レベルに従って、最高位の割込要求を選択し、ＣＰＵに対して割込要求を行うための割込コントローラが設けられる。
【００１１】
割込の優先順位と優先レベルについては、複数の割込原因が同時に発生した場合に、どの割込を先に起こすかという優先度の問題と、ある割込の処理中にほかの割込原因が発生した場合、より高い緊急度を認めて、重ねて割込を起こすか否かのレベルの問題がある。一般的な方法は、原因（のグループ）毎に割込の優先度及びレベルを定め、割込処理以外の通常のプログラムを最低位レベルとして、高位の割込レベルに属する割込は、低位のレベルの処理中に割り込めるようにする方法である。以下の説明においては、上記優先度を割込順位と呼び、上記レベルを割込レベルと呼ぶことにする。
【００１２】
文献１記載の従来のマイクロコントローラ（以下マイクロコンピュータ）をブロックで示す図７を参照すると、この従来のマイクロコントローラは、内部バスに結合される中央処理装置（ＣＰＵ）３と、ＣＰＵ３を制御する制御プログラムを格納したフラッシュメモリ１と、後述するホストコンピュータ８との通信データ速度（ビットレート）を測定するタイマ３０と、ホストコンピュータ８とのインタフェースを調歩同期式通信で行うためのシリアルコミュニケーションインタフェース（ＳＣＩ）６０と、フラッシュメモリ１からのデータを一時格納するバッフアとして機能するランダムアクセスメモリ（ＲＡＭ）９と、モード端子から入力される動作モード信号を解読し例えば書き換え動作モードが指示されているかを判定するデコーダ７とを備え、例えば、外部のパーソナルコンピュータなどのホストコンピュータ８にＳＣＩ６０を通じて接続されている。なお、上記制御プログラムの格納には、フラッシュメモリ１の代わりに点線で示したマスクＲＯＭ１０を用いても良い。
【００１３】
次に、図７及び処理をフローチャートで示す図８を参照して、従来のマイクロコントローラのプログラムの書き換え方法について説明すると、文献１では特に明記されていないが、割込により、マイクロコンピュータを外部からの書き換え動作モードに設定する動作モード信号ＭＤＯ〜ＭＤ２の供給を受け、デコーダ７で動作モード信号ＭＤＯ〜ＭＤ２をデコードした結果、上記設定での書き換え動作モードの指示であることを判定すると、ＣＰＵ３はリセット（ＲＥＳＴ）スタートによりフラッシュメモリ１に格納された制御プログラムを実行する（ステップＰ１）。これは、動作モード信号ＭＤＯ〜ＭＤ２によるＣＰＵ３への割込により書き換えモードに設定することに相当する。
【００１４】
さらに、制御プログラムが起動されると、ホストコンピュータ８から所定のビットレートでデータが連続送信され（ステップＰ２）、ＣＰＵ３はタイマ３０のインプットキャブチャ機能でホストコンピュータ８が送信するデータのＬＯＷ期間を内部クロック信号ＣＫにより測定する（ステップＰ３：測定処理）。この場合に、ＲＸＤ端子にタイマ３０のインプットキャブチャの端子を割り付けておく。そして、データのＬＯＷ期間の測定値よりＳＣＩ６０内のビットレートレジスタに設定する値を計算する（ステップＰ３：計算処理）。この計算処理はＣＰＵ３で行い、求めた値をＳＣＩ６０内のビットレートレジスタに設定する（ステップＰ３：設定処理）。
【００１５】
続いて、ホストコンピュータ８が転送するビットレートと同じビットレートに調整が終わると、マイクロコンピュータは調整終了の合図を送信線ＳＬを介してホストコンピュータ８に送信し（ステップＰ５：通知処理）、この調整終了の合図をホストコンピュータ８は正常に受信したことを示す信号を受信線ＲＬを介してマイクロコンピュータに出力する（ステップＰ５：確認処理）。
【００１６】
さらに、ホストコンピュータ８は、次に転送するユーザのプログラムの転送バイト数Ｎを通知し（ステップＰ５：通知処理）、以降は順次ユーザの設定したプログラムを送信する。このとき、マイクロコンピュータはホストコンピュータが送信したユーザプログラムを受信し（ステップＰ５：受信処理）、さらにＲＡＭ９に転送する（ステップＰ６：転送処理）。そして、ＣＰＵ３は、上記転送の残りバイト数を計算し（ステップＰ６：残りバイト数計算処理）、ユーザプログラムの転送が終了するまで繰り返して行う（ステップＰ７）。
【００１７】
そして、転送したユーザプログラムを実行する前に、フラッシュメモリ１に書き込まれたデータが存在するか否かを確認し（ステップＰ８、Ｐ９）、既にデータが書き込まれている場合には（ステップＰ９）、全メモリブロックのデータを消去する（ステップＰ１０）。
【００１８】
一方、データが書き込まれていない場合にはフラッシュメモリ１内のテストエリア中にあるプログラム中の最終命令を実行することによりＲＡＭ９のエリアに分岐し、ＲＡＭ９内に転送されたユーザプログラムを実行する（ステップＰ１１）。これにより、フラッシュメモリ１の書き換えを行うことができる。
【００１９】
このように、従来のマイクロコントローラは、動作モード信号ＭＤＯ〜ＭＤ２によりによりフラッシュメモリ書き換えモードへの割込が設定され、この割込の認識結果、フラッシュメモリ書き換えモードと判定すると、ＣＰＵ３はリセットスタートによりフラッシュメモリ１に格納された制御プログラム（ファームウェア）を実行し、このファームウェアの指示に従い、専用の通信端末であるＳＣＩＩ６０にフラッシュメモリ書き換えデータの送受信データレートや信号フォーマット等のデータ転送条件の設定を含むイニシャライズを行い、その後設定したデータ転送条件でフラッシュメモリ書き換えデータを受信し、フラッシュメモリ１の書き換えを行う。
【００２０】
以上述べたように、従来のマイクロコントローラ及びそのプログラムの書き換え方法は、内蔵するフラッシュメモリの書き換えるための割込が発生すると、専用の通信端末にその都度データ転送レート等のデータ転送条件の設定を含むイニシャライズの実施から、フラッシュメモリの書き換えを開始している。
【００２１】
一方、上記割込発生時の割込処理を設定するための割込要求信号のフォーマットである割込ベクタ（上述の従来例では動作モード信号ＭＤＯ〜ＭＤ２の組み合わせ）は、マイクロコンピュータの用途に応じて各種のシリアルもしくはパラレルコミニュケーションデバイス（以下通信デバイス）の割込優先順位あるいは割込レベルが一定ではなく異なるため、マイクロコンピュータの品種毎に異なっている。例えば、ある品種では通信デバイスの割込優先順位が最高位であり、また、別の品種では通信デバイスの割込優先順位が最下位に設定されている。
【００２２】
一般に、内蔵フラッシュメモリの書き換えを必要とする場合は、この書き換えのための割込発生原因が他の割込発生原因に比較して優先度が高く、また、この割込による上記書き換え処理実行中は他の割込を受け付けない最高割込レベルに設定する必要がある。
【００２３】
このため、マイクロコンピュータ内蔵のフラッシュメモリ又はマスクＲＯＭ内のファームウェアは、内蔵されるマイクロコンピュータの品種毎に、通信デバイスの割込優先順位をフラッシュメモリの書き換えるための割込発生に対応して一定の割込順位及び割込レベル、例えば最高位の割込順位及び最高割込レベルに割込ベクタを変更するよう専用設計しなければならず、設計のＴＡＴ（ターンアラウンドタイム）が長期化するという問題があった。
【００２４】
また、マイクロコンピュータの品種毎にファームウェアを変更することによりバグの増大等、設計品質が低下するという問題があった。
【００２５】
ここでベクタとは、公知のように、個々の項目が単一の索引や添字に従って順序良く並んでいるデータの配列をいう。従って割込みベクタとは、所定の順序で並んでいる割込に関連する命令及びデータの配列をいう。
【００２６】
【発明が解決しようとする課題】
上述した従来のマイクロコントローラ及びそのプログラムの書き換え方法は、内蔵するフラッシュメモリの書き換えるための割込が発生すると、専用の通信端末にその都度データ転送レート等のデータ転送条件の設定を含むイニシャライズの実施から、フラッシュメモリの書き換えを開始するが、上記割込発生時の割込処理を設定するための割込要求信号のフォーマットである割込ベクタは、マイクロコンピュータの用途に応じた品種毎に通信デバイスの割込優先レベルが異なるため、上記書き換え制御のための書き換え制御ソフトウェアであるファームウェアは、内蔵されるマイクロコンピュータの品種毎に通信デバイスの割込優先レベルを元の割込優先レベルとは無関係にフラッシュメモリの書き換えるための割込発生に対応して一定のレベル、例えば最高位レベルに変更するよう専用設計しなければならず、設計のＴＡＴが長期化するという欠点があった。
【００２７】
また、マイクロコンピュータの品種毎にファームウェアを変更することにより設計品質が低下するという欠点があった。
【００２８】
本発明の目的は、マイクロコンピュータの品種とは無関係に、内蔵フラッシュメモリの書き換えのための割込が発生すると通信デバイスの割込優先レベルを予め定めたレベルに自動的に設定することにより、ファームウェアの専用化設計を不要とし、設計のＴＡＴの短縮及び設計品質の低下要因を除去したマイクロコントローラ及びそのプログラムの書き換え方法を提供することにある。
【００２９】
【課題を解決するための手段】
本発明のマイクロコントローラは、プログラムの格納用に電気的に一括消去及び書き換え可能な不揮発性メモリであるフラッシュメモリを内蔵し、このフラッシュメモリのプログラム修正を行う書き換え動作モードを割込により設定されるマイクロコントローラにおいて、
前記フラッシュメモリを書き換えるための一連の動作のプログラムであるファームウェアと後述の通信手段の動作の制御プログラム又は少なくともこの制御プログラムを設定する割込ベクタを格納したＲＯＭと、
前記ＲＯＭから読み出したファームウェアに従い前記フラッシュメモリの書き換え手順を制御する中央演算処理装置であるＣＰＵと、
前記フラッシュメモリの書き換えを行わない通常動作モードのとき内蔵する複数の周辺回路から送られてくる割込要求信号の優先順序を制御して前記ＣＰＵに通知するとともに、前記フラッシュメモリの書き換えを行う場合である書き換えモードのときこの書き換えモード設定に連動した書き換えモード信号の供給に応答して入力された後述の通信手段からの割込要求信号を予め定めた割込順位に変更して前記ＣＰＵに通知する割込コントローラと、
入力／出力（Ｉ／Ｏ）回路及びタイマを含む複数の前記周辺回路と、
外部のホストコンピュータからの前記フラッシュメモリの書き換えデータの受信、及び前記ホストコンピュータへの受信準備完了通知を含む送信を行う通信手段と、
を備えて構成されている。
【００３０】
また、前記割込コントローラが、前記書き換えモード信号の供給に応答して入力された前記通信手段からの割込要求信号である通信割込要求信号を予め定めた基準に基づく割込順位に変更し前記ＣＰＵに割込実行を要求する割込実行要求信号を発生する割込レベル変換回路を備えてもよい。
【００３１】
さらに、前記割込レベル変換回路が、予め定めたＮ（Ｎは正の整数）個の割込要求信号の優先順位に応じて同時発生した複数の割込のうちの最高優先順位のものを選択し選択割込要求信号を出力する割込順位決定回路と、
前記書き換えモード信号の論理レベルに応答して前記割込順位決定回路から出力される前記選択割込要求信号と前記通信手段からの前記通信割込要求信号とのいずれか一方を前記割込実行要求信号として選択し出力する書き換えモード優先化回路と、を備えてもよい。
【００３２】
また、前記割込レベル変換回路が、前記書き換えモード信号の不活性化時の論理レベルに応答して予め定めたＮ（Ｎは正の整数）個の割込要求信号の優先順位に応じて同時発生した複数の割込のうちの最高優先順位のものを選択して前記割込実行要求信号を出力し、前記書き換えモード信号の活性化時の論理レベルに応答して前記最高優先順位の割込要求信号の割込順位を強制的に下位順位に変更する割込順位決定回路と、
前記書き換えモード信号を反転して反転書き換えモード信号を生成するとともに前記書き換えモード信号の活性化時の前記反転書き換えモード信号の論理レベルに応答して前記通信手段からの割込要求信号である通信割込信号の順位を最高順位に設定する書き換えモード優先化回路と、を備えてもよい。
【００３３】
本発明のマイクロコントローラのプログラムの書き換え方法は、プログラムの格納用に電気的に一括消去及び書き換え可能な不揮発性メモリであるフラッシュメモリを内蔵し、このフラッシュメモリのプログラム修正を行う書き換え動作モードを割込により設定されるマイクロコントローラのフラッシュメモリの書き換え方法において、
前記フラッシュメモリの書き換えを行う書き換えモードのときこの書き換えモード設定に連動した書き換えモード信号の論理レベルをＬレベルからＨレベルに設定する第１のステップと、
前記書き換えモード信号のＨレベルへの遷移に応答して、外部のホストコンピュータからの前記フラッシュメモリの書き換えデータの受信、及び前記ホストコンピュータへの受信準備完了通知を含む送信を行う通信手段の割込要求信号の優先順位を最上位の順位に変更する第２のステップと、
前記通信手段の割込要求信号から生成した割込実行要求信号の供給に応答して書き換え動作プログラムを読み出し、ＣＰＵの初期化を行う第３のステップと、前記通信手段を経由して前記ホストコンピュータから供給される前記フラッシュメモリの書き換えデータの受信を行うための割込を待つ第４のステップと、
前記通信手段が前記ホストコンピュータが送信した割込データである前記書き換えデータを受信する第５のステップと、
前記ＣＰＵが、前記通信手段における前記書き換えデータの受信を認識し、この書き換えデータを基に前記フラッシュメモリの書き換え処理を行う第６のステップと、
全ての前記書き換えデータを受信するまで前記書き換えデータの受信及び前記フラッシュメモリへの書き換えの処理を繰り返す第７のステップと、
を含むことを特徴とするを特徴とするものである。
【００３４】
【発明の実施の形態】
以下本発明の実施の形態を図面に基づいて詳細に説明する。
【００３５】
本実施の形態のマイクロプロセッサシステム（以下マイクロコントローラ）は、ＡＶ機器や家電製品、自動車エレクトロニクス等の電子機器に備えられ、電子機器を構成する各種回路・装置を制御するためのＣＰＵ、並びにこのＣＰＵのプログラムを格納するプログラムメモリとして電気的な消去書き込みたよって書き換え可能な不揮発性のフラッシュメモリを内蔵し、上記ＣＰＵにより、ＣＰＵ及びプログラムメモリの接続されたパスを介して電子機器内部に設けられた各種の回路・装置を制御するようになっている。また、上記フラッシュメモリは、物理的に交換せずに、電子機器に実装したままの状態でプログラム修正できるようになっている。
【００３６】
このプログラム修正を行う書き換え動作モードは、外部からの書き換え動作モード設定により設定され、この書き換え動作モードにおいて、この書き換え動作モードに対応した割込により、フラッシュメモリのデータ書き換え及びシリアルコミュニケーションの制御を行うのはＣＰＵであり、このＣＰＵを制御するプログラムであるファームウェアをファームウェア格納用のＲＯＭが保有する。
【００３７】
また、前記書き換え動作モードを起動すると、フラッシュメモリのデータを確認し、既に書き込まれたデータがあればこれを消去する。
【００３８】
次に、本発明の第１の実施の形態を図７と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図１を参照すると、この図に示す本実施の形態のマイクロコントローラは、後述のＣＰＵ３のプログラムを格納した電気的に一括消去及び書き換え可能な不揮発性メモリであるフラッシュメモリ１と、フラッシュメモリ１の所定領域を書き換えるための一連の動作のプログラム（ファームウェア）と後述のＣＳＩ６の制御プログラムに対応する割込ベクタを格納しているＲＯＭ（リードオンリーメモリ）２と、ファームウェアに従いフラッシュメモリ１の書き換え手順を制御する中央演算処理装置（ＣＰＵ）３と、フラッシュメモリ１の書き換えを行わない通常動作モードのときマイクロコントローラが内蔵する後述する複数の周辺回路５から送られてくる割込要求信号（割込ベクタ）の優先順序を制御してＣＰＵ３に通知するとともに、フラッシュメモリ１の書き換えを行う場合の書き換えモードのときこの書き換えモード設定に連動した書き換えモード信号ＭＳの供給に応答して入力された後述のＣＳＩ６からの割込要求信号をある一定の基準に基づく割込順位及び割込レベルに変更してＣＰＵ３に通知する割込コントローラ４と、マイクロコントローラに内蔵される入力／出力（Ｉ／Ｏ）回路やタイマ等の様々なユニットである複数の周辺回路５と、マイクロコントローラの外部のホストコンピュータ８からのフラッシュメモリ１の書き換えデータＤＷの受信、もしくはホストコンピュータ８へのアクノリッジ（受信準備完了通知・受信確認）等の送信ＤＡに使用する通信デバイスとして、シリアルコミュニケーションの一種であるクロック同期式通信方式に対応するクロック同期シリアルインタフェース（ＣＳＩ：Ｃｌｏｃｋｅｄ  Ｓｉｒｉａｌ  Ｉｎｔｅｒｆａｃｅ）６とを備える。
【００３９】
なお、図１では、本発明と直接関係しないデータ、制御信号及びアドレス伝送用の内部バス、入力／出力（Ｉ／Ｏ）回路、タイマ、クロック発生回路及びフラッシュメモリ１やＲＯＭ２あるいはＣＰＵ３からのデータを一時的に保持するＲＡＭ及びレジスタ等のこの種のマイクロコンピュータが通常備える共通的な構成要素については割込要求信号を出力するものを周辺回路５として示したほかは図示を省略している。
【００４０】
フラッシュメモリ１は、電気的な一括消去及び書き込みによって情報の書き換えが可能な全面フラッシュメモリであり、マイクロコントローラがその上位システムに実装されている状態で、ＣＰＵ３の制御に基づいて、指定した領域の記憶情報を書き換えられるようになっている。上記指定以外の書き換え対象でない領域は、書き換えを実施しない。
【００４１】
フラッシュメモリ１のメモリセルは、典型的には２層ゲート構造の絶縁ゲート型電界効果トランジスタにより構成されている。Ｐ型シリコン基板に形成されたＰ型拡散層と、上記Ｐ型シリコン基板に形成された低濃度のＮ型拡散層と、上記Ｐ型拡散層及びＮ型拡散層の各々に形成されたＮ型拡散層を有し、薄い絶縁膜（例えば１０ｎｍ）を介して上記Ｐ型シリコン基板に形成されたフローティングゲートと、酸化膜を介してフローティングゲート上に形成されたコントロールゲートと、ソース及びドレインから成る。
【００４２】
このメモリセルに記憶される情報は実質的にしきい値電圧の変化としてトランジスタに保持される。以下、特に述べない限り、メモリセルにおいて、情報を記憶するトランジスタ（以下、記憶トランジスタと称する）がＮチャンネル型の場合について述べる。
【００４３】
メモリセルへの情報の書き込み動作は、コントロールゲート及びドレインに高圧を印加して、アバランシェ注入によりドレイン側からフローティングゲートに電子を注入することで実現される。この書き込み動作により記憶トランジスタはそのコントロールゲートからみたしきい値電圧が、書き込み動作を行わなかった消去状態の記憶トランジスタに比べて高くなる。
【００４４】
一方、消去動作は、ソースに高圧を印加して、トンネル現象によりフローティングゲートからソース側に電子を引き抜くことによって実現される。消去動作により記憶トランジスタはそのコントロールゲートからみたしきい値電圧が低くされる。
【００４５】
書き込みならびに消去状態のいずれにおいても記憶トランジスタのしきい値は正の電圧レベルにされる。すなわち、ワード線からコントロールゲートに与えられるワード線選択レベルに対して、書き込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく１個のトランジスタでメモリセルを構成することができる。
【００４６】
上記メモリセルを用いるメモリセルアレイは、Ｘ，Ｙ方向にマトリクス配置されたメモリセルにおいて、同一行の記憶トランジスタのコントロールゲートはそれぞれ対応するワード線に接続され、同一列に配置された記憶トランジスタのドレイン領域（メモリセルの入出力ノード）はそれぞれ対応するデータ線に接続され、ソース領域はソース線に結合される。このソース線に消去対応の上記高圧を印加することにより、このソース線に接続されたメモリセル、すなわち、この行全体のメモリセルが一括して消去される。従って、少なくともソース線を介してソースが共通接続されたメモリセルに対して一括消去できる。よって、共通接続するソース線の数と同一ソース線に接続するメモリセルの数を変えることにより、一括消去対象のメモリブロックのサイズを任意に設定できる。
【００４７】
ＲＯＭ２には、上記ファームウェアに加えて、ファームウェア設計時に設定した少なくとも１つの通信デバイス、ここでは、上述のクロック同期式通信方式に対応するＣＳＩ６に対する制御プログラムに対応する割込ベクタを格納してある。この割込ベクタは、ＣＳＩ６への割込発生に対し、このＣＳＩ６の通信手順を制御する制御プログラムのアドレスを指定する。この制御プログラムは、ＲＯＭ２自身又はフラッシュメモリ１の書き換え対象外の領域に格納する。
【００４８】
ＣＰＵ３は、フラッシュメモリ１の書き換えモードではない、通常動作モードでは、このマイクロコントローラを実装した上位システムである電子機器を構成する各種回路・装置を制御し、上記書き換えモードでは、上記ファームウェアに従いフラッシュメモリ１の書き換え手順を制御する。
【００４９】
割込コントローラ４は、フラッシュメモリ１の書き換えモード信号ＭＳの供給に応答して入力されたＣＳＩ６の割込要求信号ＩＮＴ３をある一定の基準に基づく後述の割込順位及び割込レベル、ここでは説明の便宜上、最高位及び最優先レベルに変更し、割込実行要求信号ＩＭを発生する割込レベル変換回路４１を備える。
【００５０】
割込レベル変換回路４１の構成をブロックで示す図２を参照すると、この割込レベル変換回路４１は、予め定めた複数の割込要求信号ＩＮＴ０〜ＩＮＴＮの優先順位に応じて同時発生した複数の割込のうちの最高優先順位のものを選択し選択割込要求信号ＶＩを出力する割込順位決定回路４１１と、外部から供給される書き換えモード信号ＭＳの論理レベルに応答して割込順位決定回路４１１からの選択割込要求信号ＶＩとＣＳＩ６からの割込信号ＶＣとのいずれか一方を割込実行要求信号ＩＭとして選択し出力する書き換えモード優先化回路４１２とを備える。
【００５１】
本実施の形態では、説明の便宜上、割込要求信号の数Ｎ（正の整数）、すなわち、優先順位のレベル数を上位から下降順にＩＮＴ０〜ＩＮＴ３の４レベルとし、通常動作時、すなわち、フラッシュメモリの書き換えを行わないとき、通信デバイスであるＣＳＩ６の割込レベルを、最下位レベルであるＩＮＴ３とする。
【００５２】
割込順位決定回路４１１は、例えば、図３に示すように、ＮＡＮＤ回路やＮＯＲ回路等の論理回路の組み合わせによって実現できる。
【００５３】
論理回路の組み合わせによる割込順位決定回路４１１の構成例を回路図で示す図３を参照すると、割込要求信号ＩＮＴ０Ｂ（Ｂはローアクティブ又は信号反転を表す）を反転するインバータＧ４１１と、このインバータＧ４１１の出力信号と割込要求信号ＩＮＴ１Ｂとの否定論理和（以下ＮＯＲ論理）を得る２入力のＮＯＲ回路Ｇ４１２と、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂの否定論理積（以下ＮＡＮＤ論理）を得る２入力のＮＡＮＤ回路Ｇ４１３と、ＮＡＮＤ回路Ｇ４１３の出力信号と割込要求信号ＩＮＴ２ＢとのＮＯＲ論理を得る２入力のＮＯＲ回路Ｇ４１４と、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２ＢのＮＡＮＤ論理を得る３入力のＮＡＮＤ回路Ｇ４１５と、ＮＡＮＤ回路Ｇ４１５の出力信号と割込要求信号ＩＮＴ３ＢとのＮＯＲ論理を得る２入力のＮＯＲ回路Ｇ４１６と、インバータＧ４１１，ＮＯＲ回路Ｇ４１２，Ｇ４１４，Ｇ４１６の出力のＯＲ論理を得て出力である選択割込要求信号ＶＩを出力する４入力のＯＲ回路Ｇ４１７とを備える。
【００５４】
また、マスクＲＯＭ等から成るテーブルに複数の周辺回路５の各々が発生する割込要求の情報に、予め設定した個々の割込優先度に基づく重み付け情報を付加した割込優先順位情報を格納し、この割込優先順位情報を参照することにより入力した割込要求信号の割込優先レベルを決定するものを用いても良い。
【００５５】
図２を再度参照すると、書き換えモード優先化回路４１２は、書き換えモード信号ＭＳの論理レベルに応答して割込要求信号ＩＮＴ３を導通遮断するトランスファゲートＭ４１と、書き換えモード信号ＭＳを反転するインバータＧ４１と、インバータＧ４１の出力である書き換えモード信号ＭＳの反転信号の論理レベルに応答して割込順位決定回路４１１から供給を受けた選択割込要求信号ＶＩを導通遮断するトランスファゲートＭ４２とを備え、これらトランスファゲートＭ４１，Ｍ４２の各々の出力端を共通接続して出力である割込実行要求信号ＩＭを出力する。トランスファゲートＭ４１，Ｍ４２は、例えば各々のドレイン・ソースを伝送対象の割込要求信号の入力・出力にそれぞれ接続し、各々のゲートに書き換えモード信号ＭＳ／書き換えモード信号ＭＳの反転信号の供給を受けるＭＯＳトランジスタで構成しても良い。
【００５６】
次に、本実施の形態のマイクロコントローラの動作について説明する。本実施の形態のフラッシュメモリ１のプログラムの書き換えの制御は、従来技術で説明した割込により行われる。割込とは、コンピュータがプログラム実行中に発生した非同期的な、又は例外的な事象に応答するために、実行中のプログラムを強制的に一時中断し、指定されたルーチン、すなわち、割込処理ルーチンに自動的に制御を移すことである。その際割込時点で実行中のプログラムを後刻再起動できるように、ＣＰＵ状態を自動的に保存する。
【００５７】
割込発生の要因として、割込発生時点で実行中のプログラムと関連があるか否かによって分類し、関連がある場合の内部要因によるものを割出しと呼び、実行中のプログラムと関連がない外部要因によるものを割込と呼ぶことが一般的である。本実施の形態では、この定義による、すなわち、シリアルコミュニケーション等通信デバイスを経由した外部要因による割込を考える。
【００５８】
割込の優先順位と優先レベルについては、複数の割込原因が同時に発生した場合に、どの割込を先に起こすかという優先度の問題と、ある割込の処理中にほかの割込原因が発生した場合、より高い緊急度を認めて、重ねて割込を起こすか否かのレベルの問題がある。一般的な方法は、原因（のグループ）毎に割込の優先度及びレベルを定め、割込処理以外の通常のプログラムを最低位レベルとして、高位の割込レベルに属する割込は、低位のレベルの処理中に割り込めるようにする方法である。本実施の形態においても、この方法を用いるものとする。また、本実施の形態の動作の説明においては、上記優先度を割込順位と呼び、上記レベルを割込レベルと呼ぶことにする。
【００５９】
次に、図１、図２、及び図３を参照して本実施の形態の動作について説明すると、まず、フラッシュメモリ１の書き換えを行わない通常動作の場合は、書き換えモード信号ＭＳを不活性化に対応するＬレベルとする。これにより、ＣＰＵ３は、通常動作モードとなる。同時に、割込コントローラ４の割込レベル変換回路４１は、割込優先順位が最高位の割込要求信号ＩＮＴ０から、最低のＩＮＴ３すなわち、ＣＳＩ６からの割込要求信号ＶＣまでの割込優先順位に応じて、同時発生した複数の割込のうちの最高位のものを選択し、対応する割込実行要求信号ＩＭを発生する。
【００６０】
割込レベル変換回路４１の割込順位決定回路４１１は、上述したように、複数の割込要求信号ＩＮＴ０〜ＩＮＴＮの優先順位に応じて同時発生した複数の割込のうちの最高位のものを選択し選択割込要求信号ＶＩを出力する。
【００６１】
説明の便宜上、割込順位決定回路４１１の全ての入力端には図示しないインバータを介して割込要求信号ＩＮＴ０〜ＩＮＴ３の反転信号である反転割込要求信号ＩＮＴ０Ｂ〜ＩＮＴ３Ｂが供給されるものとする。これら反転割込要求信号ＩＮＴ０Ｂ〜ＩＮＴ３ＢはＬレベルのとき活性状態すなわちローアクティブであるとする。
【００６２】
割込順位決定回路４１１にＬレベルの反転割込要求信号（以下割込要求信号と省略）ＩＮＴ０Ｂが供給されると、この割込要求信号ＩＮＴ０ＢはインバータＧ４１１，ＮＡＮＤ回路Ｇ４１３，Ｇ４１５にそれぞれ入力する。インバータＧ４１１は、Ｈレベルの出力信号をＮＯＲ回路Ｇ４１２の一方の入力端及びＯＲ回路Ｇ４１７の第１入力端にそれぞれ供給する。このときＮＯＲ回路Ｇ４１２は、他方の入力端に供給される割込要求信号ＩＮＴ１Ｂの入力の有無すなわち、Ｈレベル／Ｌレベルに関係なく、ＮＯＲ回路Ｇ４１２はＬレベルの出力信号を出力する。割込要求信号ＩＮＴ０ＢがＨレベルのときは、ＮＯＲ回路Ｇ４１２は割込要求信号ＩＮＴ１ＢがＬレベルのときＨレベルの出力信号を、割込要求信号ＩＮＴ１ＢがＨレベルのときＬレベルの出力信号をそれぞれ出力し、ＯＲ回路Ｇ４１７に供給する。すなわち、割込要求信号ＩＮＴ０Ｂの方が割込要求信号ＩＮＴ１Ｂより優先順位が高い。
【００６３】
割込要求信号ＩＮＴ１Ｂは、ＮＯＲ回路Ｇ４１２，ＮＡＮＤ回路Ｇ４１３，Ｇ４１５にそれぞれ入力する。割込要求信号ＩＮＴ２Ｂは、ＮＯＲ回路Ｇ４１４，ＮＡＮＤ回路Ｇ４１５にそれぞれ入力する。割込要求信号ＩＮＴ３Ｂは、ＮＯＲ回路Ｇ４１６のみに入力する。
【００６４】
ＮＡＮＤ回路Ｇ４１３は、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂの両方がＨレベルのときのみ出力信号をＬレベルとし、他の場合は出力信号をＨレベルとするので、ＮＯＲ回路Ｇ４１４は、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂの両方がＨレベルのとき、すなわち不活性化状態のときのみ割込要求信号ＩＮＴ２Ｂのレベルに対応する出力信号を出力する。すなわち、割込要求信号ＩＮＴ２Ｂは、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂより優先順位が低い。
【００６５】
ＮＡＮＤ回路Ｇ４１５は、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂの３者がＨレベルのときのみ出力信号をＬレベルとし、他の場合は出力信号をＨレベルとするので、ＮＯＲ回路Ｇ４１６は、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂの３者がＨレベルのとき、すなわち不活性化状態のときのみ割込要求信号ＩＮＴ３Ｂのレベルに対応する出力信号、すなわち、割込要求信号ＩＮＴ３ＢがＬレベルのときはＨレベルの出力信号、割込要求信号ＩＮＴ３ＢがＨレベルのときはＬレベルの出力信号をそれぞれ出力する。すなわち、割込要求信号ＩＮＴ３Ｂは、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂより優先順位が低い。
【００６６】
従って、割込優先順位は、ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂ，ＩＮＴ３Ｂの順番で低下する。
【００６７】
例えば、割込順位決定回路４１１に、割込要求信号ＩＮＴ３Ｂと割込要求信号ＩＮＴ０Ｂとが同時に入力（すなわちＬレベルとする）した場合、割込要求信号ＩＮＴ０Ｂの方が優先順位が高いので、この割込要求信号ＩＮＴ０Ｂ対応のインバータＧ４１１の出力がＨレベルとなり、一方、割込要求信号ＩＮＴ３Ｂ対応のＮＯＲ回路Ｇ４１６の出力はＬレベルのままである。また、割込要求信号ＩＮＴ２Ｂは、割込要求がなくＨレベルのままであるので、対応するＮＯＲ回路Ｇ４１４の出力はＬレベルとなる。
【００６８】
ＯＲ回路Ｇ４１７は、インバータＧ４１１，ＮＯＲ回路Ｇ４１２，Ｇ４１３，Ｇ４１６の各出力信号のＯＲ論理を取り、従って、この場合は、インバータＧ４１１のＨレベルに対応して選択割込要求信号ＶＩを出力する。よって、割込要求信号ＩＮＴ０Ｂが選択割込要求信号ＶＩとして出力されることになる。
【００６９】
書き換えモード優先化回路４１２では、トランスファゲートＭ４２に割込順位決定回路４１１から供給を受けた選択割込要求信号ＶＩが入力する。また、トランスファゲートＭ４１に割込要求信号ＩＮＴ３が入力する。書き換えモード信号ＭＳの論理レベルは、Ｌレベルであるので、制御端子（ＭＯＳトランジスタの場合はゲート）にこの書き換えモード信号ＭＳの供給を受けるトランスファゲートＭ４１は遮断状態となり、一方、制御端子に書き換えモード信号ＭＳをインバータＧ４１で反転した反転書き換えモード信号ＭＳＢの供給を受けるトランスファゲートＭ４２は導通状態となる。従って、割込要求信号ＩＮＴ３はトランスファゲートＭ４１により阻止され、トランスファゲートＭ４２を通過した選択割込要求信号ＶＩが割込実行要求信号ＩＭとして出力される。
【００７０】
ＣＰＵ３は、割込実行要求信号ＩＭの供給に応答した割込動作を含む通常の動作を行う。
【００７１】
次に、割込切り替えを自動的に行う場合の処理をフローチャートで示す図４を併せて参照してフラッシュメモリ１の書き換えを行う場合の動作について説明すると、フラッシュメモリ１の書き換えを行う場合は、まず、書き換えモード信号ＭＳをＬレベル（非供給状態又は不活性化状態）からＨレベル（供給状態又は活性化状態）に設定する。書き換えモード信号ＭＳがＨレベル（ステップＳ１）となると、割込コントローラ４の割込レベル変換回路４１は、割込優先順位が最下位、すなわちＩＮＴ３のＣＳＩ６の割込要求信号ＶＣの割込優先順位を最上位の順位に変更する（ステップＳ２）。
【００７２】
同時にＣＰＵ３は、書き換えモードとなり、また、ＣＳＩ６からの割込要求信号ＶＣは最優先で扱われ、割込コントローラ４の割込レベル変換回路４１は、割込実行要求信号ＩＭを発生する状態となる。
【００７３】
割込レベル変換回路４１の書き換えモード優先化回路４１２では、トランスファゲートＭ４２に割込順位決定回路４１１から供給を受けた選択割込要求信号ＶＩが入力する。また、トランスファゲートＭ４１に割込要求信号ＩＮＴ３、すなわち、ＣＳＩ６からの割込要求信号ＶＣが入力する。書き換えモード信号ＭＳの論理レベルは、Ｈレベルであるので、制御端子にこの書き換えモード信号ＭＳの供給を受けるトランスファゲートＭ４１は導通状態となり、一方、制御端子に反転書き換えモード信号ＭＳＢの供給を受けるトランスファゲートＭ４２は遮断状態となる。従って、選択割込要求信号ＶＩはトランスファゲートＭ４２により阻止され、トランスファゲートＭ４１を通過した割込要求信号ＩＮＴ３、すなわち、ＣＳＩ６からの割込要求信号ＶＣが割込実行要求信号ＩＭとして出力される。
【００７４】
次に、ＣＰＵ３は、割込コントローラ４が出力する、ＣＳＩ６の割込要求信号ＶＣから生成した割込実行要求信号ＩＭの供給に応答して書き換え動作プログラムＰＲをＲＯＭ２から読み出し、ＣＰＵ３の初期化ルーチン（ステップＳ３）を経て、ＣＳＩ６を経由して外部のホストコンピュータ８から供給される割込データ、すなわち、フラッシュメモリ１の書き換えデータＤＷを待つ状態、すなわち割込待ち状態（ステップＳ４）となる。
【００７５】
また、ＣＰＵ３は、ＣＳＩ６を経由してこの割込待ち状態、すなわち、受信準備が完了したことを、ホストコンピュータ８に通知する（アクノリッジ）。ホストコンピュータ８は、この受信準備完了通知のアクノリッジに応答して、書き換えデータＤＷを送信する。次に、ＣＳＩ６は、ホストコンピュータ８から割込データであるフラッシュメモリ１の書き換えデータＤＷを受信する（ステップＳ５）。
【００７６】
ＣＳＩ６は、クロック同期シリアルインタフェースであるので、送信側、ここでは、ホストコンピュータ８で発生した通信クロック信号に同期してデータ及びこの通信クロックの送信が行われ、受信側、すなわち、ＣＳＩ６では受信した通信クロックに同期してデータを受信する。従って、調歩同期式のようなビットレート調整等のイニシャライズは不要であり、上記受信準備完了後、直ちにデータ転送処理を行うことが可能である。
【００７７】
ＣＰＵ３は、割り込みコントローラ４経由でＣＳＩ６での書き換えデータＤＷの受信を認識し、ＣＳＩ６から書き換えデータＤＷを読み出した後、この書き換えデータを基にフラッシュメモリ１の書き換え処理を行う（ステップＳ６）。
【００７８】
全ての書き換えデータＤＷを受信するまで書き換えデータＤＷの受信及びフラッシュメモリ１への書き換えの処理を繰り返す（ステップＳ７）。
【００７９】
全てのフラッシュメモリ１の書き換え処理が終わった時点で終了となる。
【００８０】
次に、フラッシュメモリ１の書き換え処理の最初の処理である消去処理をフローチャートで示す図５を参照して、このフラッシュメモリ１の消去処理について説明すると、まず、ＣＰＵ３はフラッシュメモリ１の消去対象とするブロック（領域）を指定する（ステップＳ１１）。さらに、ＣＰＵ３はフラッシュメモリ１をイレースモードに設定する（ステップＳ１２）。
【００８１】
続いて、ＣＰＵ３は消去時間Ｔの期間、ソフトウェアタイマで所定サイクル数待ち（ステップＳ１３）、Ｔ時間経過後フラッシュメモリ１のイレースモードを解除する（ステップＳ１４）。
【００８２】
さらに、フラッシュメモリ１をイレーズベリファイモードに設定し（ステップＳ１５）、消去対象のブロックをリードする（ステップＳ１６）。
【００８３】
そして、全アドレスをリードし、“１”の状態に消去されていると（ステップＳ１７）、ＣＰＵ３はイレーズベリファイモードを解除し（ステップＳ１８）、さらに消去ブロックの指定を解除し（ステップＳ１９）、消去完了となる。
【００８４】
一方、ステップＳ１７において、全アドレスをリードしていない場合にはアドレスをインクリメントした後（ステップＳ２０）、ステップＳ１６のブロックのリードからの処理を繰り返して実行する。
【００８５】
この場合の消去時間Ｔは、メモリセルの書き込み状態（高しきい値領域ＶｔｈＨ）から消去状態（低しきい値領域ＶｔｈＬ）に変化させるための時間である。
【００８６】
この消去時間Ｔはメモリセルのプロセス技術によって変動する。例えば、高しきい値領域ＶｔｈＨは４．５Ｖ以上であり、低しきい値領域ＶｔｈＬは２．５Ｖ以下であり、高しきい値領域ＶｔｈＨから低しきい値領域ＶｔｈＬに変化するまで１０ｍｓかかる。
【００８７】
消去処理完了後、ＣＰＵ３は書き換えデータＤＷをＣＳＩ６からフラッシュメモリ１に転送し、フラッシュメモリ１はこの書き換えデータＤＷの転送を受け、消去完了後の領域への書き込み処理を行う。
【００８８】
本実施の形態では、通信デバイスとしてクロック同期シリアルインタフェース（ＣＳＩ）を用いたが、通信デバイスとしてこのＣＳＩに限ることなく従来技術で説明したような調歩同期式通信（ＵＡＲＴ：Ｕｎｉｖｅｒｓａｌ  ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）や２線式双方向シリアル通信方式のＩ2 Ｃ（Ｉｎｔｅｒ−ＩＣ）等のシリアル通信方式、あるいは一般的なパラレルデータの伝送によるパラレル通信方式を用いても良い。また、これらのうちの２種以上の通信方式に対応し、通信相手によりそのうちの１つの方式を選択使用するものでも良い。
【００８９】
また、本実施の形態の割込コントローラの割込要求信号の数が４の場合について説明したが、これに限ることなく割込要求信号の数を任意に設定できることは明らかである。
【００９０】
次に、本発明の第２の実施の形態を特徴付ける割込レベル変換回路４１Ａを図３と共通の構成要素には共通の参照文字／数字を付して同様に回路図で示す図６を参照すると、この図に示す本実施の形態の割込レベル変換回路４１Ａの前述の第１の実施の形態との相違点は、割込順位決定回路４１１及び書き換えモード優先化回路４１２の各々の代わりに、書き換えモード信号ＭＳの活性化時の論理レベル（Ｈレベル）に応答して割込順位を強制的に下位順位に変更する割込順位決定回路４１１Ａと、書き換えモード信号ＭＳを反転して反転書き換えモード信号ＭＳＢを生成するとともにこの反転書き換えモード信号ＭＳＢの論理レベルに応答してＣＳＩ６からの割込信号ＶＣに対応する割込要求信号ＩＮＴ３の順位を最高順位に設定する書き換えモード優先化回路４１２Ａをそれぞれ備えることである。
【００９１】
割込順位決定回路４１１Ａの割込順位決定回路４１１との相違点は、インバータＧ４１１の代わりに割込要求信号ＩＮＴ０Ｂと書き換えモード信号ＭＳとのＮＡＮＤ論理を得る２入力のＮＡＮＤ回路Ｇ１１Ａを、ＮＡＮＤ回路Ｇ４１３の代わりに割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂに加えて書き換えモード信号ＭＳとのＮＡＮＤ論理を得る３入力のＮＡＮＤ回路Ｇ４１３Ａを、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂに加えて書き換えモード信号ＭＳとのＮＡＮＤ論理を得る４入力のＮＡＮＤ回路Ｇ４１５Ａを、ＮＯＲ回路Ｇ４１２，Ｇ４１４，Ｇ４１６及び後述のＮＯＲ回路Ｇ４１９の各出力のＯＲ論理を得て出力である割込実行要求信号ＩＭを出力する５入力のＯＲ回路Ｇ４１７Ａをそれぞれ備えることである。
【００９２】
書き換えモード優先化回路４１２Ａは、書き換えモード信号ＭＳを反転して反転書き換えモード信号ＭＳＢを生成するインバータＧ４１８と、割込要求信号ＩＮＴ３Ｂと反転書き換えモード信号ＭＳＢとのＮＯＲ論理を得る２入力のＮＯＲ回路Ｇ４１９とを備える。
【００９３】
また、第１の実施の形態と同様に、本実施の形態の割込順位決定回路４１１Ａの全ての入力端には図示しないインバータを介して割込要求信号ＩＮＴ０〜ＩＮＴ３の反転信号である反転割込要求信号ＩＮＴ０Ｂ〜ＩＮＴ３Ｂが供給されるものとする。反転割込要求信号ＩＮＴ０Ｂ〜ＩＮＴ３ＢはＬレベルのとき活性状態すなわちローアクティブであるとする。
【００９４】
本実施の形態の動作について説明すると、まず、書き換えモード信号ＭＳの不活性化に対応してＬレベルである通常動作モードでは、書き換えモード優先化回路４１２Ａは論理レベルがＨレベルの反転書き換えモード信号ＭＳＢを出力する。従って、ＮＯＲ回路Ｇ４１９は割込要求信号ＩＮＴ３Ｂの論理レベルと無関係にＬレベルを出力する。
【００９５】
一方、割込順位決定回路４１１ＡのＮＡＮＤ回路Ｇ４１１Ａ，Ｇ４１３Ａ，Ｇ４１５ＡはそれぞれＬレベルの書き換えモード信号ＭＳが入力されるので、割込順位決定回路４１１Ａは、第１の実施の形態の割込順位決定回路４１１と同一の動作を行い、従って、上位から割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂ，ＩＮＴ３Ｂの優先順序で選択し、ＯＲ回路Ｇ４１７Ａから割込実行要求信号ＩＭを出力する。
【００９６】
すなわち、ＮＡＮＤ回路Ｇ４１１Ａは割込要求信号ＩＮＴ０Ｂの論理レベルがＬの場合はＨレベルを出力し、これは、第１の実施の形態におけるインバータＧ４１１と同一動作である。同様にＮＡＮＤ回路Ｇ４１３Ａ，Ｇ４１５ＡもそれぞれＮＡＮＤ回路Ｇ４１３，Ｇ４１５と同一動作を行う。
【００９７】
次に、フラッシュメモリの書き換えモードに対応して、書き換えモード信号ＭＳが活性化しＨレベルとなると、書き換えモード優先化回路４１２Ａは論理レベルがＬレベルの反転書き換えモード信号ＭＳＢを出力する。従って、ＮＯＲ回路Ｇ４１９は割込要求信号ＩＮＴ３Ｂの論理レベルに応じてその出力論理レベルが変わり、割込要求信号ＩＮＴ３Ｂの論理レベルがＬレベルの場合論理レベルがＨレベルの出力信号を出力する。
【００９８】
一方、割込順位決定回路４１１ＡのＮＡＮＤ回路Ｇ４１１Ａ，Ｇ４１３Ａ，Ｇ４１５ＡはそれぞれＨレベルの書き換えモード信号ＭＳが入力されるので、これらＮＡＮＤ回路Ｇ４１１Ａ，Ｇ４１３Ａ，Ｇ４１５Ａの出力論理レベルは割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂ，ＩＮＴ３Ｂの論理レベルと無関係にＬレベルを出力する。この結果、割込要求信号ＩＮＴ０Ｂ，ＩＮＴ１Ｂ，ＩＮＴ２Ｂ，ＩＮＴ３Ｂの論理レベルと無関係にＮＯＲ回路Ｇ４１２，Ｇ４１４，Ｇ４１６の各々の出力論理レベルはＬレベルとなる。従って、ＯＲ回路Ｇ４１７Ａは、割込要求信号ＩＮＴ３Ｂの論理レベルがＬレベル、すなわち割込要求がある場合に対応の割込実行要求信号ＩＭを出力する。
【００９９】
【発明の効果】
以上説明したように、本発明のマイクロコントローラ及びそのプログラムの書き換え方法は、フラッシュメモリを書き換えるためのファームウェアと通信手段の動作の制御プログラム又は少なくともこの制御プログラムを設定する割込ベクタを格納したＲＯＭと、通常動作モードのとき内蔵する複数の周辺回路から送られてくる割込要求信号の優先順序を制御してＣＰＵに通知するとともに、フラッシュメモリの書き換えモードのときこの書き換えモード設定に連動した書き換えモード信号の供給に応答して入力された通信手段からの割込要求信号を予め定めた割込順位に変更して上記ＣＰＵに通知する割込コントローラを備え、書き換えモードのとき通信手段からのデータの割込優先順位を上記予め定めた割込順位、例えば最高優先順位に自動的に設定し、上記割込ベクタ対応の制御プログラムにより通信手段を制御するので、マイクロコントローラの品種とは無関係に、ファームウェアの専用化設計を不要とすることにより、設計のＴＡＴを短縮できるという効果がある。
【０１００】
また、マイクロコントローラの品種毎にファームウェアを変更する必要がないので、バグ等を十分除去した標準化設計を適用できることにより、設計品質の低下要因を除去できるという効果がある。
【図面の簡単な説明】
【図１】本発明のマイクロコントローラの第１の実施の形態を示すブロック図である。
【図２】図１の割込レベル変換回路の構成の一例を示すブロック図である。
【図３】図２の割込順位決定回路の構成の一例を示す回路図である。
【図４】本実施の形態のマイクロコントローラ及びそのプログラムの書き換え方法における動作の一例を示すフローチャートである。
【図５】本実施の形態のプログラムの書き換え方法における消去動作の一例を示すフローチャートである。
【図６】本発明のマイクロコントローラの第２の実施の形態を特徴付ける割込レベル変換回路の構成の一例を示す回路図である。
【図７】従来のマイクロコントローラ及びそのプログラムの書き換え方法の一例を示すブロック図である。
【図８】従来のマイクロコントローラ及びそのプログラムの書き換え方法における動作の一例を示すフローチャートである。
【符号の説明】
１    フラッシュメモリ
２    ＲＯＭ
３    ＣＰＵ
４    割込コントローラ
５    周辺回路
６    ＣＳＩ
７    デコーダ
８    ホストコンピュータ
９    ＲＡＭ
３０    タイマ
６０    ＳＣＩ
４１，４１Ａ    割込レベル変換回路
４１１，４１１Ａ    割込順位決定回路
４１２，４１２Ａ    書き換えモード優先化回路
Ｇ４１，Ｇ４１１，Ｇ４１８    インバータ
Ｇ４１２，Ｇ４１４，Ｇ４１６，Ｇ４１９    ＮＯＲ回路
Ｇ４１３，Ｇ４１５，Ｇ４１１Ａ，Ｇ４１３Ａ，Ｇ４１５Ａ    ＮＡＮＤ回路
Ｇ４１７，Ｇ４１７Ａ    ＯＲ回路
Ｍ４１，Ｍ４２    トランスファゲート
【図１】
0004127934.tif 000002
【図２】
0004127934.tif 000003
【図３】
0004127934.tif 000004
【図４】
0004127934.tif 000005
【図５】
0004127934.tif 000006
【図６】
0004127934.tif 000007
【図７】
0004127934.tif 000008
【図８】
0004127934.tif 000009