JP3633812B2 - フラッシュファームダウンロードによるフラッシュメモリ制御システム - Google Patents
フラッシュファームダウンロードによるフラッシュメモリ制御システム Download PDFInfo
- Publication number
- JP3633812B2 JP3633812B2 JP02677399A JP2677399A JP3633812B2 JP 3633812 B2 JP3633812 B2 JP 3633812B2 JP 02677399 A JP02677399 A JP 02677399A JP 2677399 A JP2677399 A JP 2677399A JP 3633812 B2 JP3633812 B2 JP 3633812B2
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- flash
- pulses
- high voltage
- flash 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
Landscapes
- Read Only Memory (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、フラッシュファームダウンロードによるフラッシュメモリ制御システムに関する。
【0002】
【従来の技術】
フラッシュメモリを搭載したフラッシュマイコンにおいては、フラッシュマイコンを製造するプロセスにおいてデバイス固有の設計、製造条件に関するフラッシュメモリの消去・書き込みのプログラムを書き込んだ際に一部が消失したり、あるいはその他バグが発生するなどの前記製造プロセスの特性等の問題から、メモリに一旦記憶させたファームウェアをその後に変更する等の仕様変更が多い。
【0003】
また、一旦格納したファームウェアに欠陥があったことが判明したり、そのファームウェアをグレードアップしたりすることなど、その後ファームウェアに変更する必要が生じる場合も少なくない。
【0004】
しかしながら最新のファームウェアであるフラッシュファームウェアは、マイコン搭載時には、マイコン内部のファームROMに直接格納するため、前記したマイコン搭載後のファームウェア等の仕様を変更するには、このフラッシュファームウェアが記憶されたファームROMの内容を変更し、あるいは新たなファームウェアを、このファームROMに拡散して記憶させる必要があった。
【0005】
また前記フラッシュプログラムを、その後通信等により入手してファームウェアを変更する方法では、現在のフラッシュプログラマとの通信プロトコルにおいて、常に前記プログラマがマスタとなり、フラッシュマイコン側がスレーブとなる。したがって、このようなプログラマであるライタから送られてきたコマンドの処理が終了してから、前記ライタ側からの処理が終了したか否かの確認が実行されるまでが、通信のオーバーヘッドタイムとなり、処理速度の低下、通信コストの上昇等を招くこととなっている。
【0006】
また前記した方式以外に、外部ROMに格納されたフラッシュファームを動作させて制御方式を変更することも可能である。しかしながらこのような前記外部ROMは、外付けであり、このため外付け回路が新たに必要であり、ユーザのターゲット上では実現が困難である。
さらに、このような外付け回路に、外付ROMが実装できないなど問題があった。
【0007】
【発明が解決しようとする課題】
したがって、フラッシュマイコンの外部から前記した最新のファームウェアであるフラッシュファームウェアを、フラッシュマイコンの内部RAM等にダウンロードして、ダウンロードしたこのフラッシュファームウェアを実行させ、フラッシュメモリの制御およびフラッシュプログラマとの通信の最適化を行うことができるようなシステムが要求されている。
【0008】
本発明は、上記したような要求に鑑みてなされたものであって、ファームウェアに不具合がある場合にこれを修正したり、変更することが必要とされる場合であっても、格納されているファームウェアを最新のフラッシュファームウェア仕様に容易に変更することのできるようなシステムを提供することを目的としている。
【0009】
【課題を解決するための手段】
請求項1に記載の発明によれば、VPP端子からのパルス数をカウントするVPPパルス検出部と、カウントした数を保持するカウント数保持手段と、前記VPP端子に高電圧が印加されていることを検出する高電圧検出部と、CPUと、ファームウェアを格納するための第1の格納手段と、記憶内容を電気的に消去および/または書込可能な読み出し専用の記憶手段と、前記高電圧検出部からの出力信号と前記CPUからの信号から、前記第1の格納手段と前記記憶手段とのアクセス許可を選択する選択手段と、外部との通信を制御する制御部と、該制御部を介してダウンロードしたデータを格納する第2の格納手段と、高電圧検出部からの信号を記憶する記憶手段とを有し、前記選択手段は、ANDおよびNAND論理ゲートを有し、前記VPPパルス検出部により得られたパルス数と、あらかじめ登録されたパルス数とを比較して、該パルス数が前記登録されたパルス数であるか否かをチェックする機能をさらに有し、前記機能により前記登録されたパルス数である場合に前記第2の格納手段にダウンロードしたファームウェアプログラムが書き込まれて分岐され遷移して、当該第2の格納手段の前記ファームウェアプログラムが実行され前記第1の格納手段の書き換え、消去、書き込みデータの照合の制御を行うことを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システムが提供される。
【0010】
請求項2に記載の発明によれば、請求項1において、前記制御部は、シリアル制御部であることを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システムが提供される。
【0015】
【発明の実施の形態】
以下、本発明に係るフラッシュファームダウンロードによるフラッシュメモリ制御方式の第1の実施の形態について述べる。
本発明に係るフラッシュメモリ制御システムは、図1に示すように、VPP端子2からのパルス数をカウントするVPPパルス検出部6と、VPPパルス検出部6でカウントした数を保持するレジスタ11と、前記VPP端子に高電圧が印加されていることを検出する高電圧検出部7と、CPU8と、ファームウェアを格納するための第1の格納手段であるファームROM13と、記憶内容を電気的に消去および/または書込可能な読み出し専用のフラッシュROM12と、外部からのフラッシュファームウェアを格納する第2の格納手段である内部RAM14と、前記高電圧検出部からの出力信号と前記CPUから、前記ファームROM13と前記フラッシュROM12のアクセス許可を選択する選択手段9とを有している。
【0016】
そして選択手段9は、図1に示すように、高電圧検出部7からの信号と、CPU8からの信号をインプットして、アウトプット先を、フラッシュROM12と、ファームROMにしている。そして高電圧検出部から信号が入力されない場合にはフラッシュROMにアクセスし、高電圧検出部から信号が入力された場合にはファームROMとアクセスするように、NAND論理ゲートと、AND論理ゲートを有する構成となっている。
【0017】
このような本発明に係るフラッシュメモリ制御システムにおいては、フラッシュROM12などのフラッシュデバイスをプログラミングモードへ引き込み、ファームROM13に内蔵されているスタートアップルーチンを実行することにより、特定のVPP端子のパルス数確認後に、フラッシュROMに対してブランクチェックを行って、これがOK(良)であれば、ファームROM領域に本来格納されているファームウェアとは別の、内部RAM14にダウンロードされているフラッシュファームプログラムへと処理を分岐させることができるようなファームROM13を有することを特徴とする。
【0018】
図1に示すように、本発明に係るフラッシュメモリ制御システムは、VPP端子2に印加された高電圧を、高電圧検出部7で検出することにより、CPU8は、フラッシュプログラミングモードに切り替わる。これによって、ファームROM13に内蔵されているスタートアップルーチンが実行されることになる。
【0019】
このスタートアップルーチンでは、VPPパルス検出部6により検出されたVPPパルス数をカウントし、このカウントした値が、あらかじめ決められた特定のカウント数である場合には、フラッシュROM12に対してブランクチェックを行うことができる。なおこの特定のカウント数は、セキュリティ機能を有するように設定することができる。
【0020】
このようなブランクチェックを行った結果、OK(フラッシュROMがブランク状態)であれば、内部RAM14への処理を後述するようにして分岐させ、あらかじめRAM14にシリアル制御部10を介して外部通信によりダウンロードされたフラッシュファームウェアを実行することにより、フラッシュROM12の書き込み、消去および書き込みデータの照合などの制御が行われる。
【0021】
通常モードにおいては、VPP端子2に、高電圧(たとえば10V)は印加されない。したがって、セレクタ9により、ROMの中でもフラッシュROM12がアクセス許可となっている。
そして前記VPP端子2に高電圧が印加されると、高電圧検出部7が高電圧が印加されたことを検出して、CPU8がフラッシュプログラミングモードに切り替わる。これによって、CPU8は、ファームROMとアクセス可能となる。
【0022】
また本発明に係るフラッシュメモリ制御システムは、外部とのシリアル通信を制御するためのシリアル制御部10と、外部からのシリアル通信によりダウンロードしたデータを格納することのできる内部RAM14を有している。
このような本発明に係るフラッシュメモリ制御システムの動作について、図2を参照しつつ、説明する。また図3に、CPU8から見たメモリマッピングを示す。
【0023】
図2に示すように、VPPに高電圧が印加されていない場合には、CPU8は前記したように通常モードとなっており、このような通常モードにおいてCPU8は、フラッシュROM12にのみアクセスすることが許可されている(ステップS11→ステップS23)。
【0024】
次に、通常モード以外のモードに切り替わる場合について説明する。
まず、外部よりVPPに高電圧が印加されると(ステップS11)、高電圧検出回路7により高電圧が検出される(ステップS12)。高電圧が検出されると、好ましくは記憶手段11’ (レジスタ)に高電圧検出部7の情報を蓄積し、これを内部バス15を介してCPU8に伝達し、これによりCPU8のモードが、通常モードからフラッシュプログラミングモードに遷移(切替え)する(ステップS13)。また、これと独立に、外部からのVPP端子から、特定のパルスを有するVPPを振幅させた信号が入力される(ステップS14)。
【0025】
このVPPを振幅させた信号が外部から入力されるのと独立して、CPU8は、ファ−ムROM13にアクセスしてこれを実行させる(ステップS15)。
この実行により、スタートアップルーチンが開始され、VPPのパルス数がチェックされ、VPPのパルス数が、特定の数であるか否かを判定し(ステップS16)、否と判定されれば、フラッシュROM12の制御が行われ、終了する(ステップS16→ステップS24)。なおこのパルス数は、外部とどのような通信手段で通信するか、また、通信する相手は特定されている者からの入力であるかなどの確認を行うことができる情報を含んだ機能を有している。すなわち前記パルス数が特定した値であれば、通信手段が特定され、特定の外部の者であることを確認するセキュリティ機能を有している。このような前記通信手段としては、三線式通信、擬似三線式通信、UART通信およびIIC通信などの前記したシリアル通信が現在使用され、費用等の点から等により好ましく選択される。また本発明に係るフラッシュメモリ制御システムは、このようなシリアル通信以外のパラレル通信でもよく、また、アプリケーションに特化した通信プロトコルによりデータを転送するような通信手段であってもよい。
【0026】
一方、前記したVPPパルス数がある特定の回数である場合には、フラッシュROMのブランクチェックを行い、フラッシュROMがブランクであるか否かを確認する(ステップS17)。そして確認の結果、否である(フラッシュROM内にデータが内蔵済みの)場合、終了する。また、前記確認の結果、フラッシュROMがブランクである場合には、以下のような行程が続行される。なお前記したスタートアップルーチンプログラムは、VPPをカウントし、フラッシュROM12のブランクチェックを行い、ブランクチェックがあることで終了する。
【0027】
前記フラッシュROMがブランクであることを確認した場合には、あらかじめファームROMに格納してあるローダプログラムを、CPUはコールする(ステップS18)。このローダプログラムは、外部から本発明に係るフラッシュメモリ制御システムの内部RAMに、シリアル制御部10を介して外部からデータを受け入れるためのプログラムである。
【0028】
このローダプログラムの実行により、シリアル制御部を介して、外部から内部RAMにデータがダウンロードされ(ステップS19)、ダウンロードが完了したか否かを確認する(ステップS20)。
【0029】
前記内部RAMへのダウンロードが終了したことを確認すると、図3に示すように、内部RAMへダウンロードされたファームプログラム(ファームウェアプログラム)がRAMに書き込まれて処理が分岐する(ステップS21)。この処理の分岐により、以後、フラッシュプログラミングモードに遷移してスタートアップルーチンが実行されると、ファームROMに内蔵されたファームプログラムが実行されずにCPUはRAMに分岐した新たなファームプログラムに移行してこれを実行するようになる。
【0030】
その後、フラッシュROM12の書き込み、消去、書き込みデータの照合などの制御が行われて処理が終了する(ステップS22)。
【0031】
次に、本発明に係るフラッシュメモリの制御システムの第2の実施の形態について説明する。前述したように、本発明の第1の実施の形態においては、フラッシュファームウェアを外部から好ましくはシリアル転送により、本発明に係るフラッシュメモリの制御システムの内部RAMに、このフラッシュファームウェアを書き込み、次いでVPPパルス数が特定の回数であるか確認し、フラッシュROMがブランクの場合、内部RAMに、図3に示すように、ファームプログラム処理を分岐させているが、第2の実施の形態においては、第1の実施の形態で用いられたダウンロード先の内部RAMから、EEPROMに代える。
【0032】
このように、ダウンロード先をEEPROMに変更することにより、あらかじめユーザプログラムをこのEEPROMに入力させて、ローダプログラムをコールすることなくデータをダウンロードすることができるようにすることができる。なお、このEEPROMと、内部RAMとをダウンロード用として併用してもよいことはもちろんである。この場合には、たとえばアドレス先をCPUあるいは外部からコントロールして、外部からフラッシュファームプログラムを適宜ダウンロードさせることができる。
【0033】
【発明の効果】
以上、説明したように、本発明に係るフラッシュメモリ制御システムによれば、ファームウェアは、ROMに格納されているために、このファームウェアの不具合の修正や、実験のためにファームウェアの変更が必要とされた場合に、新しいファームウェアを拡散行程から、再度やり直す必要がなく、標準的なあるいは最新のファームウェアを実行することができるようにした。これによって、ファームウェアの一部に不具合があっても、すぐに改善したファームウェアを提供可能となるため、ファームウェアの開発までの時間が短縮されるなどによりファームウェアの開発が促進され、フラッシュマイコンの早期提供に寄与することとなる。
【0034】
またブランク状態のフラッシュROMなどのデバイスのみが、本発明に係るフラッシュメモリ制御システムに使用される内部RAMにロードされたフラッシュファームの実行可能であり、フラッシュROMのデータを勝手に読み出すことができない。このため、たとえ外部の者が本発明に係るフラッシュメモリ制御システムに侵入したとしても、容易にフラッシュROMのデータを読み出すことはできない。
【0035】
また、本発明に係るフラッシュメモリ制御システムによって、本システム中の内部RAMにダウンロードされた新たなファームウェアを実行するために、フラッシュプログラマとのデータ通信プロトコルを容易にカスタマイズすることができる。このため、現在のシリアル通信、たとえば三線式シリアル通信、擬似三線式シリアル通信、UARTシリアル通信およびIICシリアル通信が本発明に係るフラッシュメモリ制御システムのみでなく、パラレル通信をサポートしたシステムにすることもでき、さらに、アプリケーションソフトに、特化した通信プロトコルを介してデータ転送を行うようにすることもできる。このようにすることにより、データ転送の高速化、通信のオーバーヘッドを防止することができる。
【0036】
さらに本発明に係るフラッシュメモリ制御システムによって、外付基板などの外部部品が不要となり、従来品に対して操作性、通信速度の向上、通信コストの低減下できるシステムを低コストで提供できる。したがってファームウェアを内蔵するROMに再拡散せずにファームウェアを変更するような、従来、外部基板に外付ROMを接続して、外付ROMに格納した変更したファームウェアを実行することにより行われてきた、これら外付基板の変更は、従来必須のものとなっていたり、また外付基板には、外付ROM以外の部品も必要であり、この問題を一気に払拭することができる。
【図面の簡単な説明】
【図1】本発明に係るフラッシュメモリ制御システムの第1の実施の形態の構成を示す図である。
【図2】本発明に係るフラッシュメモリ制御システムの第1の実施の形態の動作を示すフローチャートである。
【図3】本発明に係るフラッシュメモリ制御システムの第1の実施の形態のCPUから見たメモリマッピングを示す図である。
【符号の説明】
1 フラッシュメモリ制御システム
2 VPP端子
3 SO端子
4 SI端子
5 SCK端子
6 VPPパルス検出部
7 高電圧検出部
8 CPU
9 セレクタ
10 シリアル制御部
11 レジスタ
12 フラッシュROM
13 ファームROM
14 内部RAM
15 内部バス
16 レジスタ
Claims (2)
- VPP端子からのパルス数をカウントするVPPパルス検出部と、
カウントした数を保持するカウント数保持手段と、
前記VPP端子に高電圧が印加されていることを検出する高電圧検出部と、
CPUと、
ファームウェアを格納するための第1の格納手段と、
記憶内容を電気的に消去および/または書込可能な読み出し専用の記憶手段と、
前記高電圧検出部からの出力信号と前記CPUからの信号から、前記第1の格納手段と前記記憶手段とのアクセス許可を選択する選択手段と、
外部との通信を制御する制御部と、
該制御部を介してダウンロードしたデータを格納する第2の格納手段と、
高電圧検出部からの信号を記憶する記憶手段を有し、
前記選択手段は、ANDおよびNAND論理ゲートとを有し、
前記VPPパルス検出部により得られたパルス数と、あらかじめ登録されたパルス数とを比較して該パルス数が前記登録されたパルス数であるか否かをチェックする機能をさらに有し、
前記機能により前記登録されたパルス数である場合に前記第2の格納手段にダウンロードしたファームウェアプログラムが書き込まれて分岐され遷移して、当該第2の格納手段の前記ファームウェアプログラムが実行され前記第1の格納手段の書き換え、消去、書き込みデータの照合の制御を行うことを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システム。 - 前記制御部は、シリアル制御部であることを特徴とする請求項1に記載のフラッシュファームダウンロードによるフラッシュメモリ制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02677399A JP3633812B2 (ja) | 1999-02-03 | 1999-02-03 | フラッシュファームダウンロードによるフラッシュメモリ制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02677399A JP3633812B2 (ja) | 1999-02-03 | 1999-02-03 | フラッシュファームダウンロードによるフラッシュメモリ制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000222199A JP2000222199A (ja) | 2000-08-11 |
JP3633812B2 true JP3633812B2 (ja) | 2005-03-30 |
Family
ID=12202631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02677399A Expired - Fee Related JP3633812B2 (ja) | 1999-02-03 | 1999-02-03 | フラッシュファームダウンロードによるフラッシュメモリ制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3633812B2 (ja) |
-
1999
- 1999-02-03 JP JP02677399A patent/JP3633812B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000222199A (ja) | 2000-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7805562B2 (en) | Microcomputer with configurable communication interfacing | |
JP3710671B2 (ja) | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
EP3518097B1 (en) | Firmware updating method and electronic device using the same | |
US7404028B2 (en) | ECU identification retention across reprogramming events | |
US7856614B2 (en) | Programmable system-on-chip apparatus and method for updating firmware | |
US8176281B2 (en) | Controlling access to an embedded memory of a microcontroller | |
EP0858040B1 (en) | Microcomputer containing flash EEPROM therein | |
US20010027524A1 (en) | Method of detecting manipulation of a programable memory device of a digital controller | |
US9367482B2 (en) | Systems and methods to extend ROM functionality | |
JP2001306543A (ja) | マイクロコンピュータ及びフラッシュメモリのデータ書換え方法 | |
JP3633812B2 (ja) | フラッシュファームダウンロードによるフラッシュメモリ制御システム | |
CN100363893C (zh) | 加载系统及方法 | |
JPH06275084A (ja) | 不揮発性半導体記憶装置及びそれを用いたデータ処理装置 | |
JP3937598B2 (ja) | 電子制御装置 | |
CN111796839B (zh) | 控制器程序管理方法和装置 | |
US7490232B2 (en) | Disk device using disk to rewrite firmware and firmware determination method | |
CN110888653A (zh) | 存储器中固件读写的控制方法、系统、电子设备、芯片 | |
JP3912447B2 (ja) | メモリシステムおよび外部不揮発メモリの使用方法 | |
WO2024108456A1 (zh) | 一种控制器升级方法以及装置 | |
KR20000033437A (ko) | 부트스트랩로더 기능 구현 장치 | |
EP1083481A2 (en) | Computer and firmware writing method and apparatus thereof | |
JPH11167525A (ja) | 不揮発性メモリ混載マイコン及びその不揮発性メモリ書換え方法並びに不揮発性メモリ混載マイコンの不揮発性メモリ書換えプログラムを記録した記録媒体 | |
CN117707567A (zh) | 一种mcu固件完整性识别方法 | |
KR20000074229A (ko) | 차량의 엔진 이씨유에서의 프로그램 다운 로딩장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20011106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041221 |
|
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: 20080107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
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: 20110107 Year of fee payment: 6 |
|
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: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 9 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |