JP4005950B2 - マイクロコントローラ - Google Patents
マイクロコントローラ Download PDFInfo
- Publication number
- JP4005950B2 JP4005950B2 JP2003186518A JP2003186518A JP4005950B2 JP 4005950 B2 JP4005950 B2 JP 4005950B2 JP 2003186518 A JP2003186518 A JP 2003186518A JP 2003186518 A JP2003186518 A JP 2003186518A JP 4005950 B2 JP4005950 B2 JP 4005950B2
- Authority
- JP
- Japan
- Prior art keywords
- rewrite
- mode
- built
- microcontroller
- nonvolatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
本発明は、マイクロコントローラに接続されるフラッシュメモリ等の電気的に書き換え可能な外部不揮発性メモリのデータの書き換えを容易にする技術に関する。
【0002】
【従来の技術】
システム基板上に実装されたフラッシュメモリ等の外部不揮発性メモリのデータの書き換えは、外部不揮発性メモリをシステム基板から取り外し、取り外した外部不揮発性メモリをフラッシュライタ等の専用の書き換え装置に取り付けることで行っている。外部不揮発性メモリは、データの書き換え時にシステム基板から容易に取り外せるように、ICソケットを介してシステム基板に実装される。このため、システム基板の面積は、ICソケットの実装により増加し、システムコストは増加する。
【0003】
このような不具合を解消するため、外部不揮発性メモリ内に、この外部不揮発性メモリのデータを書き換えるための書き換えプログラムを予め書き込んでおき、データの書き換え時に、書き換えプログラムを揮発性メモリにコピーする手法が提案されている(例えば、特許文献1参照)。この手法では、揮発性メモリ上の書き換えプログラムを実行することで、データは、外部不揮発性メモリをシステム基板から取り外すことなく書き換えられる。
【0004】
また、マイクロプロセッサ内にCPUコアと上記書き換えプログラムが書き込まれた内蔵不揮発性メモリとを組み込み、CPUコアが内蔵不揮発性メモリ上の書き換えプログラムを実行することで、外部不揮発性メモリをシステム基板から取り外すことなくデータを書き換える手法が提案されている(例えば、特許文献2参照)。
【0005】
【特許文献1】
特開平9−231065号公報
【特許文献2】
特開平8−249016号公報
【0006】
【発明が解決しようとする課題】
外部不揮発性メモリに書き換えプログラムを書き込んでおく場合、ユーザが使用できる外部不揮発性メモリの記憶容量は、減少してしまう。ユーザの使用領域を確保するために、記憶容量の大きい外部不揮発性メモリを使用する場合、システムコストは増加してしまう。
マイクロプロセッサ内の内蔵不揮発性メモリに書き換えプログラムを内蔵する場合、CPUコアは、この書き換えプログラムをいつでもアクセスできる。このため、ノイズあるいはソフトウエアのバグ等により、書き換えプログラムが誤って実行される場合、不揮発性メモリのデータは、正しくないデータに書き換えられてしまう。この場合、システムはダウンする。
【0007】
本発明の目的は、マイクロコントローラに接続されるフラッシュメモリ等の電気的に書き換え可能な外部不揮発性メモリのデータが、誤って書き換えられることを防止することにある。
本発明の別の目的は、マイクロコントローラに接続されるフラッシュメモリ等の電気的に書き換え可能な外部不揮発性メモリのデータを、容易かつ確実に書き換えることにある。
【0008】
【課題を解決するための手段】
本発明のマイクロコントローラでは、モード端子は通常動作モードおよび書き換えモードのいずれかを示すモード信号を受ける。内蔵不揮発性メモリには、書き換えモード中に実行されるプログラムが書き込まれている。CPUコアは、アドレス信号を順次生成するとともに、アドレス信号が第1領域を示すときに第1チップセレクト信号を活性化し、アドレス信号が第2領域を示すときに第2チップセレクト信号を活性化する。また、CPUコアは、書き換えモード中に内蔵不揮発性メモリに格納されているプログラムに基づいて書き換えデータを受信し、受信した書き換えデータを、マイクロコントローラに接続される電気的に書き換え可能な外部不揮発性メモリに書き込む。
セレクタ回路は、モード信号を選択端子で受け、モード信号が通常動作モードを示すときに第1チップセレクト信号を外部不揮発性メモリに伝え、第2チップセレクト信号をマイクロコントローラに接続される外部揮発性メモリに伝える。セレクタ回路は、モード信号が書き換えモードを示すときに第1チップセレクト信号を内蔵不揮発性メモリに伝え、第2チップセレクト信号を外部不揮発性メモリに伝える。換言すれば、通常動作モード中に第1および第2チップセレクト信号に応じて外部不揮発性メモリおよび外部揮発性メモリがそれぞれアクセス可能になり、書き換えモード中に第1および第2チップセレクト信号に応じて内蔵不揮発性メモリおよび外部不揮発性メモリがそれぞれアクセス可能になる。
CPUコアは、書き換えモード中に第2チップセレクト信号により外部不揮発性メモリを直接アクセスできる。このため、セレクタ回路の切り替えだけで、書き換えデータを外部不揮発性メモリに容易に書き込むことができる。第1チップセレクト信号の供給先は、動作モードに応じて変更されるため、通常動作モード中、内蔵不揮発性メモリは、第1チップセレクト信号によって活性化されることはない。したがって、通常動作モード中に内蔵不揮発性メモリのプログラムが誤って実行され、外部不揮発性メモリのデータが書き換えられることを防止できる。
【0009】
セレクタ回路は、モード信号を選択端子で受け、モード信号が通常動作モードを示すときに第1チップセレクト信号を外部不揮発性メモリに伝え、モード信号が書き換えモードを示すときに第1チップセレクト信号を内蔵不揮発性メモリに伝える。第1チップセレクト信号の供給先は、動作モードに応じて変更されるため、通常動作モード中、内蔵不揮発性メモリは、第1チップセレクト信号によって活性化されることはない。したがって、通常動作モード中に内蔵不揮発性メモリのプログラムが誤って実行され、外部不揮発性メモリのデータが書き換えられることを防止できる。
【0010】
本発明のマイクロコントローラでは、マイクロコントローラは、CPUコアによりアクセスされる内蔵揮発性メモリを有している。内蔵不揮発性メモリは、外部不揮発性メモリに書き込まれる書き換えデータを内蔵揮発性メモリに転送する転送プログラムと、外部不揮発性メモリに書き換えデータを書き込むための書き換えプログラムとを予め記憶している。CPUコアは、書き換えモード中に、転送プログラムを実行することで書き換えデータを受信し、書き換えプログラムを実行することで受信した書き換えデータを外部不揮発性メモリに書き込む。内蔵不揮発性メモリに転送プログラムと書き換えプログラムとを書き込んでおくことで、通常動作モードから書き換えモードに移行した後、外部不揮発性メモリのデータを迅速かつ容易に書き換えることができる。
【0011】
本発明のマイクロコントローラでは、マイクロコントローラは、CPUコアによりアクセスされる内蔵揮発性メモリを有している。内蔵不揮発性メモリは、外部不揮発性メモリに書き込まれる書き換えデータと、外部不揮発性メモリに書き換えデータを書き込むための書き換えプログラムとを、内蔵揮発性メモリに転送する転送プログラムを予め記憶している。CPUコアは、転送プログラムを実行することで、書き換えデータおよび書き換えプログラムを内蔵揮発性メモリに転送し、内蔵揮発性メモリに転送された書き換えプログラムを実行することで、内蔵揮発性メモリに転送された書き換えデータを外部不揮発性メモリを書き込む。書き換えプログラムを予め内蔵不揮発性メモリに記憶しておく必要がないため、内蔵不揮発性メモリの記憶容量を小さくできる。この結果、マイクロコントローラのチップサイズを小さくでき、チップコストを削減できる。
【0012】
本発明のマイクロコントローラでは、CPUコアは、外部不揮発性メモリへの書き換えデータの書き込み完了に応答してモード切替信号を出力する。セレクタ制御回路は、モード切替信号を受けたときに、モード端子を介して入力されるモード信号を無効にし、セレクタ回路の選択端子に通常動作モードを示すレベルを強制的に出力する。このため、マイクロコントローラの外部からのモード信号に依存せず、書き換えデータの書き込み後に動作モードを書き換えモードから通常動作モードに移行できる。CPUコアの制御により通常動作モードに復帰できるため、CPUコアをリセットすることなく、外部不揮発性メモリに書き込まれた新たなデータをアクセスできる。
【0015】
本発明のマイクロコントローラでは、インタフェース回路は、外部不揮発性メモリに書き込まれる書き換えデータを外部端子を介して受信する。CPUコアは、プログラムに基づいてインタフェース回路を制御して書き換えデータを受信する。マイクロコントローラは、インタフェース回路を形成することで、様々な形式または電圧レベルの書き換えデータを受信できる。例えば、直列並列変換機能を有するインタフェース回路を用いることで、外部端子を介して供給されるシリアルデータを、CPUコアのデータバス幅に対応する並列データに変換できる。また、TTLレベルで入力される書き換えデータをCMOSレベルに変換できる。
【0016】
本発明のマイクロコントローラでは、マイクロコントローラは、CPUコアによりアクセスされる内蔵揮発性メモリを有している。CPUコアは、書き換えモード中に、書き換えデータをインタフェース回路を介して内蔵揮発性メモリに転送する。書き換えデータを内蔵揮発性メモリに一時記憶することで、書き換えデータの受信レートに依存せず、書き換えデータを外部不揮発性メモリに確実に書き込むことができる。換言すれば、書き換えデータが消失することを防止できる。
【0017】
本発明のマイクロコントローラでは、CPUコアは、パワーオン時の最初に第1領域を示すアドレス信号を生成する。このため、書き換えモード中に、書き換えデータは、マイクロコントローラのパワーオンリセット直後に外部不揮発性メモリに書き込まれる。書き換えデータを、常に同じ状態(マイクロコントローラがリセットされた状態)で外部不揮発性メモリに書き込めるため、誤動作を防止できる。
【0018】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて説明する。図中、太線で示した信号線は、複数本で構成されている。頭に"/"が付く端子は、負論理を示している。
図1は、本発明のマイクロコントローラの第1の実施形態を示している。このマイクロコントローラは、シリコン基板上にCMOSプロセスを使用してシングルチップマイクロコンピュータとして形成されている。
【0019】
マイクロコントローラは、CPUコア10、内蔵RAM12(内蔵揮発性メモリ)、シリアルインタフェース回路14、内蔵ROM16(内蔵不揮発性メモリ)、およびセレクタ18、20、22を有している。マイクロコントローラを示す破線枠上の二重丸は、外部端子を示している。内蔵RAM12、シリアルインタフェース回路14および内蔵ROM16は、内部バスIBUSを介してCPUコア10に接続されている。
【0020】
CPUコア10は、チップセレクト信号XCS0(第1チップセレクト信号)およびチップセレクト信号XCS1(第2チップセレクト信号)を出力する。チップセレクト信号XCS0、XCS1は、負論理の信号であり、"論理0"のときに有効になり活性化状態を示す。チップセレクト信号XCS0、XCS1は、CPUコア10の内部で生成されるアドレス信号ADが第1領域および第2領域を示すときに、それぞれ活性化される。例えば、第1領域は、16進数の"00000"〜"3FFFF"のアドレス信号ADに対応し、第2領域は、"40000"〜"7FFFF"のアドレス信号ADに対応するように、CPUコア10に予め設定されている。CPUコア10は、パワーオン時に、アドレス信号AD="000000"から順次アドレス信号ADを生成する。すなわち、パワーオン時の最初に、チップセレクト信号XCS0が活性化され、第1領域のデータ(プログラム)がフェッチされる。
【0021】
内蔵RAM12は、ワークメモリと使用されるとともに、後述するように、シリアルインタフェース回路14を介して入力される書き換えデータを一時保存するために使用される。書き換えデータは、フラッシュメモリ26に格納されるユーザプログラム(製品プログラム)である。内蔵RAM12は、CPUコア10が出力する図示しない別のチップセレクト信号に応じて、内部バスIBUSを介してアクセスされる。書き換えデータを内蔵RAM12に一時的に記憶することで、例えば、書き換えデータの受信レートに依存せず、かつ書き換えデータを失うことなく、書き換えデータをフラッシュメモリ26(外部不揮発性メモリ)に確実に書き込むことができる。
【0022】
シリアルインタフェース回路14は、外部端子I/Oを介して外部からのシリアルデータを並列データに変換し、内部バスIBUSに出力する。シリアルインタフェース回路14は、例えば、TTLレベルの入力を、CMOSレベルに変換する。また、シリアルインタフェース回路14は、内部バスIBUSに伝達される並列データをシリアルデータに変換し、外部端子I/Oに出力する。
【0023】
シリアルインタフェース回路14は、メモリマップトI/Oとして割り当てられており、CPUコア10が実行するプログラムに応じて動作する。シリアルインタフェース回路14は、例えば、USB(Universal Serial Bus)コントローラ、またはUART(Universal Asynchronous Receiver-Transmitter)である。この実施形態では、シリアルインタフェース回路14は、書き替えモード中に、外部端子I/Oを介してフラッシュメモリ26に書き込む書き換えデータを受信する。
【0024】
内蔵ROM16は、書き換えモード中にフラッシュメモリ26に書き込まれるユーザプログラムをシリアルインタフェース回路14を介して内蔵RAM12に転送する転送プログラムと、フラッシュメモリ26にユーザプログラムを書き込む書き換えプログラムとを予め記憶している。内蔵ROM16は、内部バスIBUSを介してCPUコア10によりアクセスされる。
【0025】
内部バスIBUSは、アドレス信号ADを伝達するアドレスバス、データ信号DTを伝達するデータバス、および制御信号CNTを伝達する制御バスにより構成されている。内部バスIBUSは、外部端子を介して外部バスEBUSに接続されている。外部バスEBUSには、システム基板上にマイクロコントローラとともに搭載されるSRAMチップ24(外部揮発性メモリ)およびフラッシュメモリチップ26が接続されている。
【0026】
SRAM24は、ワークメモリとして使用される。フラッシュメモリ26は、CPUコア10が実行する製品の機能を実現するためのプログラムが格納される。なお、内部バスIBUSと外部バスEBUSの規格(入力電圧、出力電圧等)が異なる場合、内部バスIBUSおよび外部バスEBUSは、規格を合わせるためにバスインタフェース回路(図示せず)を介して接続されてもよい。
【0027】
モード端子(モード信号)MDは、通常動作モード中(ユーザプログラムの実行中)に低レベルに設定され、フラッシュメモリ26にプログラムされたユーザプログラムを書き換える書き換えモード中に、マイクロコントローラを搭載するシステムにより高レベルに設定される。例えば、モード端子MDは、マイクロコントローラが搭載されるシステム基板上に設けられたディップスイッチを切り替えることで高レベルに変化する。あるいは、モード端子MDは、システム基板により実現される製品(例えば、ディジタルカメラ、携帯電話等)の操作スイッチを所定時間押し続けることで高レベルに変化する。
【0028】
セレクタ18、20、22は、同じ回路であり、選択端子SELに供給されるモード信号MDが低レベル("論理0")のとき、入力端子IN0に供給される信号を出力端子OUTに出力し、モード信号MDが高レベル("論理1")のとき、入力端子IN1に供給される信号を出力端子OUTに出力する。セレクタ20、22は、モード信号MDが低レベルのときにチップセレクト信号XCS0をフラッシュメモリ26に伝え、モード信号MDが高レベルのときにチップセレクト信号XCS0を内蔵ROM16に伝える第1セレクタ回路として動作する。セレクタ18、20は、モード信号MDが低レベルのときにチップセレクト信号XCS1をSRAM24のチップセレクト端子/CSに伝え、モード信号MDが高レベルのときにチップセレクト信号XCS1をフラッシュメモリ26のチップセレクト端子/CSに伝える第2セレクタ回路として動作する。
【0029】
セレクタ18は、モード信号MDが低レベルのとき、CPU10からのチップセレクト信号XCS1をSRAM24のチップセレクト端子/CSに伝達し、モード信号MDが高レベルのとき、電源電圧VCC(高レベル)をSRAM24のチップセレクト端子/CSに伝達する。すなわち、SRAM24は、通常動作モード中(モード信号MD=低レベル)、チップセレクト信号XCS1に応じて選択され、書き換えモード中(モード信号MD=高レベル)、非選択にされる。
【0030】
セレクタ20は、モード信号MDが低レベルのとき、チップセレクト信号XCS0をフラッシュメモリ26のチップセレクト端子/CSに伝達し、モード信号MDが高レベルのとき、チップセレクト信号XCS1をフラッシュメモリ26のチップセレクト端子/CSに伝達する。すなわち、フラッシュメモリ26は、通常動作モード中(モード信号MD=低レベル)、チップセレクト信号XCS0に応じて選択され、書き換えモード中(モード信号MD=高レベル)、チップセレクト信号XCS1に応じて選択にされる。
【0031】
セレクタ22は、モード信号MDが低レベルのとき、電源電圧VCC(高レベル)を内蔵ROM16のチップセレクト端子/CSに伝達し、モード信号MDが高レベルのとき、チップセレクト信号XCS0を内蔵ROM16のチップセレクト端子/CSに伝達する。すなわち、内蔵ROM16は、通常動作モード中(モード信号MD=低レベル)、非選択にされ、書き換えモード中(モード信号MD=高レベル)、チップセレクト信号XCS0に応じて選択される。
【0032】
図2は、第1の実施形態の通常動作モード中と書き換えモード中におけるメモリマップを示している。ここでは、通常動作モード中の動作と、書き換えモード中の動作についても説明する。
通常動作モード中、モード信号MDは低レベルであるため、セレクタ18、20、22により、チップセレクト信号XCS0、XCS1は、フラッシュメモリ26およびSRAM24にそれぞれ供給される。このため、第1領域には、フラッシュメモリ26が割り当てられ、第2領域には、SRAM24が割り当てられる。他の領域には、内蔵RAM12およびシリアルインタフェース回路14が割り当てられる。CPUコア10は、パワーオン時の最初に、フラッシュメモリ26に書き込まれているユーザプログラムをフェッチする。
【0033】
内蔵ROM16は、セレクタ22から高レベルをチップセレクト端子/CSで受け、非活性化される。内蔵ROM16は、メモリマップ上に存在しないため、電源ノイズあるいはプログラムのバグによってもアクセスさせることはない。すなわち、通常動作モード中にフラッシュメモリ26の転送プログラムおよび書き換えプログラムが実行されることはない。
【0034】
モード信号MDが高レベルに変化し、動作モードが通常動作モードから書き換えモードに移行すると、セレクタ18、20、22により、チップセレクト信号XCS0、XCS1は、内蔵ROM16およびフラッシュメモリ26にそれぞれ供給される。このため、第1領域には、内蔵ROM16が割り当てられ、第2領域には、フラッシュメモリ26が割り当てられる。SRAM24は、セレクタ18からの高レベルをチップセレクト端子/CSで受け、非活性化される。このため、SRAM24は、メモリマップ上に存在しない。他の領域には、通常動作モード中と同様に内蔵RAM12およびシリアルインタフェース回路14が割り当てられる。マイクロコントローラが搭載されるシステム基板は、モード信号MDの高レベルへの変化とともに、CPUコア10のリセット端子(図示せず)にリセット信号を供給する。このため、CPUコア10は、リセット後の最初に、内蔵ROM16に書き込まれている転送プログラムをフェッチする。
【0035】
CPUコア10が実行する転送プログラムにより、フラッシュメモリ26の書き換えデータは、シリアルインタフェース回路14を介して内蔵RAM12に転送される。この後、CPUコア10が内蔵ROM16内の書き換えプログラムを実行することにより、書き換えデータは、フラッシュメモリ26に書き込まれる。より詳細には、書き換えプログラムにより、フラッシュメモリ26の全領域のデータが一括消去され、この後、書き換えデータがフラッシュメモリ26に書き込まれる。
【0036】
マイクロコントローラのパワーオンリセット直後に転送プログラムを実行することで、マイクロコントローラを常に同じ状態にして、書き換えデータをフラッシュメモリ26に書き込みできる。このため、誤動作および誤書き込みを防止できる。
上述したように、書き換えモード中、チップセレクト信号XCS1は、セレクタ20によりフラッシュメモリ26のチップセレクト端子/CSに供給される。すなわち、セレクタ20の切り替え動作により、フラッシュメモリ26をSRAM24の変わりにメモリマップ上に存在させることができる。このため、CPUコア10は、書き換えデータを容易にフラッシュメモリ26にプログラムすることができる。
【0037】
フラッシュメモリ26へのデータの書き換え動作の完了後、操作者の操作により、マイクロコントローラまたはシステム基板の電源が再投入される(再パワーオン)。システム基板のパワーオンリセット中に、モード信号MDは、高レベルから低レベルに変化され、動作モードは、書き換えモードから通常動作モードに戻る。
【0038】
そして、CPUコア10は、フラッシュメモリ26に新たに書き込まれたユーザプログラムのフェッチを開始する。
以上、第1の実施形態では、セレクタ22の切り替えにより、内蔵ROM16が、通常動作モード中にチップセレクト信号XCS0により活性化されることを禁止することで、通常動作モード中に内蔵ROM16内の転送プログラムおよび書き換えプログラムが誤って実行され、フラッシュメモリ26のユーザプログラムが書き換えられることを防止できる。
【0039】
内蔵ROM16に転送プログラムおよび書き換えプログラムを予め書き込んでおくことで、通常動作モードから書き換えモードに移行した後、フラッシュメモリ26のユーザプログラムを迅速かつ容易に書き換えることができる。
書き換えモード中に、セレクタ回路20によりチップセレクト信号XCS1をフラッシュメモリ26に供給することで、CPUコア10は、書き換えモード中にフラッシュメモリ26を直接アクセスできる。このため、ユーザプログラムをフラッシュメモリ26に容易に書き込むことができる。
【0040】
図3は、本発明の半導体メモリの第2の実施形態を示している。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、マイクロコントローラは、第1の実施形態に加えて、さらに制御レジスタ28およびセレクタ制御回路30を有している。その他の構成は、第1の実施形態と同じである。
【0041】
制御レジスタ28は、メモリマップトI/Oとして割り当てられており、所定のアドレス信号ADにより選択される。CPUコア10は、書き換えモード中に、フラッシュメモリ26への書き換えデータの書き込み完了に応答して、制御レジスタ28に高レベル("論理1")を書き込む。高レベルの書き込みは、CPUコア10がデータ信号DTをモード切替信号として制御レジスタ28に出力することで行う。制御レジスタ28は、CPUコア10からの高レベルの書き込みに同期して、モード切替信号SW(高レベル)をセレクタ制御回路30に出力する。
【0042】
セレクタ制御回路30は、高レベルのモード切替信号SWに応答して、モード端子MDを介して入力されるモード信号MDをセレクタ18、20、22にモード信号MD1として供給することを禁止し、モード信号MD1を強制的に高レベルから低レベルに変化させる。すなわち、セレクタ制御回路30は、モード切替信号SWに応答して、モード信号MDを無効にし、動作モードを書き換えモードから通常動作モードに移行する。このため、書き換えデータの書き込み後、CPUコア10をリセットすることなく新しいユーザプログラムを実行できる。
【0043】
図4は、第2の実施形態の通常動作モード中と書き換えモード中におけるメモリマップを示している。メモリマップは、制御レジスタ28が新たに追加されることを除き、第1の実施形態と同じである。但し、内蔵ROM16および内蔵RAM12に格納されるデータは、第1の実施形態と異なる。ここでは、書き換えモード中の動作についても説明する。通常動作モード中の動作は、第1の実施形態と同じであるため、説明を省略する。
【0044】
モード信号MDが高レベルに変化し、動作モードが通常動作モードから書き換えモードに移行すると、第1の実施形態と同様に、第1領域には、内蔵ROM16が割り当てられ、第2領域には、フラッシュメモリ26が割り当てられる。SRAM24は、セレクタ18からの高レベルをチップセレクト端子/CSで受け、非活性化される。CPUコア10は、第1の実施形態と同様に、システム基板から供給されるリセット信号に応答するリセット後の最初に、内蔵ROM16に書き込まれている転送プログラムをフェッチする。
【0045】
CPUコア10が実行する転送プログラムにより、フラッシュメモリ26の書き換えデータおよびこの書き換えデータをフラッシュメモリ26に書き込む書き換えプログラムは、シリアルインタフェース回路14を介して内蔵RAM12に転送される。書き換えプログラムをマイクロコントローラの外部から入力することで、内蔵ROM16の記憶容量は、小さくなる。また、書き換えプログラムのバーションアップに容易に対応できる。この後、CPUコア10が内蔵RAM12内の書き換えプログラムを実行することで、書き換えデータは、フラッシュメモリ26に書き込まれる。
【0046】
フラッシュメモリ26へのデータの書き換え動作の完了後、CPUコア10は、制御レジスタ28に高レベルを書き込む。セレクタ制御回路30は、制御レジスタ28からの切替信号SWを受け、モード信号MD1を高レベルから低レベルに変化させる。モード信号MD1の変化により、動作モードは、書き換えモードから通常動作モードに移行し、アドレスマップの第1領域および第2領域には、フラッシュメモリ26およびSRAM24が割り当てられる。
【0047】
CPUコア10は、制御レジスタ28への書き込み直後にアドレスAD="00000"にジャンプする。そして、CPUコア10は、パワーオンリセットされることなく、フラッシュメモリ26内の新たなユーザプログラムのフェッチを開始する。
この実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、書き換えモード中に、書き換えデータおよびこの書き換えデータをフラッシュメモリ26に書き込むための書き換えプログラムを、マイクロコントローラの外部から内蔵RAM12に転送する。このため、内蔵ROM16は、書き換えプログラムを記憶する必要はない。したがって、内蔵ROM16の記憶容量を小さくでき、マイクロコントローラのチップサイズを小さくでき、チップコストを削減できる。
【0048】
フラッシュメモリ26へのユーザプログラムの書き込み完了に応答して、CPUコア10は、セレクタ18、20、22に供給されるモード信号MD1を、モード端子MDに供給されるレベルにかかわりなく強制的に低レベルに変化させる。このため、CPUコア10自身の制御により、書き換えモードから通常動作モードに復帰させることができる。したがって、CPUコア10をリセットすることなく、ユーザプログラムの書き換え後即座にフラッシュメモリ26に書き込まれた新たなユーザプログラムを実行できる。
【0049】
なお、上述した第1の実施形態では、シリアルインタフェース回路14を介して供給される書き換えデータを内蔵RAM12に一時的に保持する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、書き換えデータをSRAM24(外部揮発性メモリ)に一時的に保持してもよい。
上述した実施形態では、本発明をフラッシュメモリ26のデータの書き換えに適用する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明をEEPROM等の他の電気的に書き換え可能な不揮発性メモリのデータの書き換えに適用してもよい。
【0050】
上述した実施形態では、フラッシュメモリ26にユーザプログラムを書き込む例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、フラッシュメモリ26にユーザプログラムだけでなく、ユーザプログラムで使用するデータを書き込んでもよい。
上述した実施形態では、書き換えデータの受信に、USBコントローラまたはUART等のシリアルインタフェース回路14を用いる例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、並列データのインタフェース回路を用いてもよい。インタフェース回路は、電気インタフェースに限らず、光インタフェースでもよい。
【0051】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【0052】
【発明の効果】
本発明のマイクロコントローラでは、通常動作モード中、内蔵不揮発性メモリは、第1チップセレクト信号によって活性化されることはないため、通常動作モード中に内蔵不揮発性メモリのプログラムが誤って実行され、外部不揮発性メモリのデータが書き換えられることを防止できる。また、セレクタ回路の切り替えるだけで、書き換えデータを外部不揮発性メモリに容易に書き込むことができる。
本発明のマイクロコントローラでは、通常動作モードから書き換えモードに移行した後、外部不揮発性メモリのデータを迅速かつ容易に書き換えることができる。
【0053】
本発明のマイクロコントローラでは、書き換えプログラムを予め内蔵不揮発性メモリに記憶しておく必要がないため、内蔵不揮発性メモリの記憶容量を小さくできる。この結果、マイクロコントローラのチップサイズを小さくでき、チップコストを削減できる。
本発明のマイクロコントローラでは、マイクロコントローラの外部からのモード信号に依存せず、書き換えデータの書き込み後に動作モードを書き換えモードから通常動作モードに移行できる。CPUコアの制御により通常動作モードに復帰できるため、CPUコアをリセットすることなく、外部不揮発性メモリに書き込まれた新たなデータをアクセスできる。
【0054】
本発明のマイクロコントローラでは、インタフェース回路を形成することで、様々な形式または電圧レベルの書き換えデータを受信できる。
【0055】
本発明のマイクロコントローラでは、書き換えデータを内蔵揮発性メモリに一時記憶することで、書き換えデータの受信レートに依存せず、書き換えデータを外部不揮発性メモリに確実に書き込むことができる。
本発明のマイクロコントローラでは、書き換えデータを、常にマイクロコントローラがリセットされた状態で外部不揮発性メモリに書き込めるため、誤動作を防止できる。
【図面の簡単な説明】
【図1】本発明のマイクロコントローラの第1の実施形態を示すブロック図である。
【図2】第1の実施形態のメモリマップを示す説明図である。
【図3】本発明のマイクロコントローラの第1の実施形態を示すブロック図である。
【図4】第2の実施形態のメモリマップを示す説明図である。
【符号の説明】
10 CPUコア
12 内蔵RAM
14 シリアルインタフェース回路
16 内蔵ROM
18、20、22 セレクタ
24 SRAM
26 フラッシュメモリ
28 制御レジスタ
30 セレクタ制御回路
AD アドレス信号
CNT 制御信号
DT データ信号
EBUS 外部バス
IBUS 内部バス
I/O 外部端子
MD モード端子、モード信号
SEL 選択端子
XCS0、XCS1 チップセレクト信号
Claims (7)
- 通常動作モードおよび書き換えモードのいずれかを示すモード信号を受けるモード端子と、
前記書き換えモード中に実行されるプログラムが書き込まれている内蔵不揮発性メモリと、
アドレス信号を順次生成するとともに、前記アドレス信号が第1領域を示すときに第1チップセレクト信号を活性化し、前記アドレス信号が第2領域を示すときに第2チップセレクト信号を活性化し、前記書き換えモード中に前記内蔵不揮発性メモリに格納されているプログラムに基づいて書き換えデータを受信し、受信した書き換えデータを、マイクロコントローラに接続される電気的に書き換え可能な外部不揮発性メモリに書き込むCPUコアと、
前記モード信号を選択端子で受け、前記モード信号が前記通常動作モードを示すときに前記第1チップセレクト信号を外部不揮発性メモリに伝え、前記第2チップセレクト信号をマイクロコントローラに接続される外部揮発性メモリに伝え、前記モード信号が前記書き換えモードを示すときに前記第1チップセレクト信号を前記内蔵不揮発性メモリに伝え、前記第2チップセレクト信号を前記外部不揮発性メモリに伝えるセレクタ回路とを備えていることを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記CPUコアによりアクセスされる内蔵揮発性メモリを備え、
前記内蔵不揮発性メモリは、前記外部不揮発性メモリに書き込まれる前記書き換えデータを前記内蔵揮発性メモリに転送する転送プログラムと、前記外部不揮発性メモリに前記書き換えデータを書き込む書き換えプログラムとを予め記憶しており、
前記CPUコアは、前記書き換えモード中に、前記転送プログラムを実行することで、前記書き換えデータを前記内蔵揮発性メモリに転送し、前記書き換えプログラムを実行することで、転送した前記書き換えデータを前記外部不揮発性メモリに書き込むことを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記内蔵不揮発性メモリは、前記外部不揮発性メモリに書き込まれる前記書き換えデータと、前記外部不揮発性メモリに前記書き換えデータを書き込む書き換えプログラムとを、前記内蔵揮発性メモリに転送する転送プログラムを予め記憶しており、
前記CPUコアは、前記転送プログラムを実行することで、前記書き換えデータおよび前記書き換えプログラムを前記内蔵揮発性メモリに転送し、前記内蔵揮発性メモリに転送された前記書き換えプログラムを実行することで、前記内蔵揮発性メモリに転送された前記書き換えデータを前記外部不揮発性メモリを書き込むことを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記CPUコアは、前記外部不揮発性メモリへの前記書き換えデータの書き込み完了に応答してモード切替信号を出力し、
マイクロコントローラは、前記モード切替信号を受けたときに、前記モード端子を介して入力される前記モード信号を無効にし、前記セレクタ回路の前記選択端子に前記通常動作モードを示すレベルを強制的に出力するセレクタ制御回路を備えていることを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記外部不揮発性メモリに書き込まれる前記書き換えデータを外部端子を介して受信するインタフェース回路を備え、
前記CPUコアは、前記プログラムに基づいて前記インタフェース回路を制御して前記書き換えデータを受信することを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記外部不揮発性メモリに書き込まれる前記書き換えデータを外部端子を介して受信するインタフェース回路と、
前記CPUコアによりアクセスされる内蔵揮発性メモリとを備え、
前記CPUコアは、前記プログラムに基づいて前記インタフェース回路を制御して前記書き換えデータを受信し、前記書き換えモード中に、前記書き換えデータを前記インタフェース回路を介して前記内蔵揮発性メモリに転送することを特徴とするマイクロコントローラ。 - 請求項1記載のマイクロコントローラにおいて、
前記CPUコアは、パワーオン時の最初に第1領域を示す前記アドレス信号を生成することを特徴とするマイクロコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003186518A JP4005950B2 (ja) | 2003-06-30 | 2003-06-30 | マイクロコントローラ |
US10/776,254 US7308552B2 (en) | 2003-06-30 | 2004-02-12 | Microcontroller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003186518A JP4005950B2 (ja) | 2003-06-30 | 2003-06-30 | マイクロコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025238A JP2005025238A (ja) | 2005-01-27 |
JP4005950B2 true JP4005950B2 (ja) | 2007-11-14 |
Family
ID=33535445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003186518A Expired - Fee Related JP4005950B2 (ja) | 2003-06-30 | 2003-06-30 | マイクロコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7308552B2 (ja) |
JP (1) | JP4005950B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244129A (ja) * | 2005-03-03 | 2006-09-14 | Denso Corp | フラッシュeeprom書換え方法および電子制御装置 |
JP4848734B2 (ja) | 2005-10-18 | 2011-12-28 | セイコーエプソン株式会社 | 電子機器 |
US8554090B2 (en) * | 2009-10-30 | 2013-10-08 | Ui Technologies, Inc. | Replacement printer cartridge chip with a microcontroller with an encrypted memory device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100274099B1 (ko) * | 1991-08-02 | 2001-01-15 | 비센트 비.인그라시아 | 점진적으로 프로그램가능한 비휘발성 메모리 및 이를 구비한 집적 회로와 비휘발성 메모리 프로그래밍 방법 |
US5784611A (en) * | 1994-12-19 | 1998-07-21 | Seagate Technology, Inc. | Device and process for in-system programming electrically erasable and programmable non-volatile memory |
JPH08249016A (ja) | 1995-03-09 | 1996-09-27 | Koyo Electron Ind Co Ltd | プログラマブルコントローラ |
JPH09231065A (ja) | 1996-02-21 | 1997-09-05 | Matsushita Electric Ind Co Ltd | プログラム変更可能な電子制御装置 |
JPH11282590A (ja) | 1998-03-31 | 1999-10-15 | Mitsubishi Electric Corp | 複数系統バス制御マイクロコンピュータ |
JP2002132527A (ja) | 2000-10-26 | 2002-05-10 | Fuji Heavy Ind Ltd | 車載用電子制御装置 |
-
2003
- 2003-06-30 JP JP2003186518A patent/JP4005950B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-12 US US10/776,254 patent/US7308552B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7308552B2 (en) | 2007-12-11 |
US20040268023A1 (en) | 2004-12-30 |
JP2005025238A (ja) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100375217B1 (ko) | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 | |
US9245634B2 (en) | Initialization of flash storage via an embedded controller | |
US20020147882A1 (en) | Universal serial bus flash memory storage device | |
JPWO2008117520A1 (ja) | メモリコントローラ、不揮発性メモリシステムおよびホスト装置 | |
JP2006209744A (ja) | カードおよびホスト機器 | |
JP4908665B2 (ja) | プロセッサシステム及びその起動方法 | |
KR20020036717A (ko) | 마이크로컴퓨터 및 그 제어 방법 | |
US6738308B2 (en) | Asynchronous flash-EEPROM behaving like a synchronous RAM/ROM | |
JP4005950B2 (ja) | マイクロコントローラ | |
US7370810B2 (en) | Semiconductor device and memory card having the same | |
JP2009176147A (ja) | 電子機器および電子機器のメモリアクセス許可判別方法 | |
JP7006410B2 (ja) | 制御装置、画像形成装置および回路装置 | |
JP3737360B2 (ja) | オンボード書き換え装置 | |
JP3997505B2 (ja) | プログラマブルコントローラのシステムプログラム書き換え方法 | |
JP3866269B2 (ja) | マイクロコンピュータ | |
JP2006155303A (ja) | 制御装置 | |
JP2002287994A (ja) | マイクロコントローラ | |
JP2008090408A (ja) | マイクロコンピュータ、データ書込み装置およびその書込み方法 | |
JP2006018610A (ja) | デジタルデータ処理カード、及びデジタルデータ処理システムの制御方法 | |
JPH07193860A (ja) | プログラムメモリを有した携帯端末装置 | |
US20060070064A1 (en) | Computer apparatus on which download board can be mounted | |
JPH052462A (ja) | 端末装置 | |
JPH1050086A (ja) | Eepromを有するマイクロコンピュータ及びその書換方法 | |
JPH11328980A (ja) | 不揮発性半導体メモリ | |
JP2004295587A (ja) | メモリ制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070723 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070824 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130831 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |