(57)【特許請求の範囲】
【請求項１】
ＶＰＰ端子からのパルス数をカウントするＶＰＰパルス検出部と、
カウントした数を保持するカウント数保持手段と、
前記ＶＰＰ端子に高電圧が印加されていることを検出する高電圧検出部と、
ＣＰＵと、
ファームウェアを格納するための第１の格納手段と、
記憶内容を電気的に消去および／または書込可能な読み出し専用の記憶手段と、
前記高電圧検出部からの出力信号と前記ＣＰＵからの信号から、前記第１の格納手段と前記記憶手段とのアクセス許可を選択する選択手段と、
外部との通信を制御する制御部と、
該制御部を介してダウンロードしたデータを格納する第２の格納手段と、
高電圧検出部からの信号を記憶する記憶手段を有し、
前記選択手段は、ＡＮＤおよびＮＡＮＤ論理ゲートとを有し、
前記ＶＰＰパルス検出部により得られたパルス数と、あらかじめ登録されたパルス数とを比較して該パルス数が前記登録されたパルス数であるか否かをチェックする機能をさらに有し、
前記機能により前記登録されたパルス数である場合に前記第２の格納手段にダウンロードしたファームウェアプログラムが書き込まれて分岐され遷移して、当該第２の格納手段の前記ファームウェアプログラムが実行され前記第１の格納手段の書き換え、消去、書き込みデータの照合の制御を行うことを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システム。
【請求項２】
前記制御部は、シリアル制御部であることを特徴とする請求項１に記載のフラッシュファームダウンロードによるフラッシュメモリ制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュファームダウンロードによるフラッシュメモリ制御システムに関する。
【０００２】
【従来の技術】
フラッシュメモリを搭載したフラッシュマイコンにおいては、フラッシュマイコンを製造するプロセスにおいてデバイス固有の設計、製造条件に関するフラッシュメモリの消去・書き込みのプログラムを書き込んだ際に一部が消失したり、あるいはその他バグが発生するなどの前記製造プロセスの特性等の問題から、メモリに一旦記憶させたファームウェアをその後に変更する等の仕様変更が多い。
【０００３】
また、一旦格納したファームウェアに欠陥があったことが判明したり、そのファームウェアをグレードアップしたりすることなど、その後ファームウェアに変更する必要が生じる場合も少なくない。
【０００４】
しかしながら最新のファームウェアであるフラッシュファームウェアは、マイコン搭載時には、マイコン内部のファームＲＯＭに直接格納するため、前記したマイコン搭載後のファームウェア等の仕様を変更するには、このフラッシュファームウェアが記憶されたファームＲＯＭの内容を変更し、あるいは新たなファームウェアを、このファームＲＯＭに拡散して記憶させる必要があった。
【０００５】
また前記フラッシュプログラムを、その後通信等により入手してファームウェアを変更する方法では、現在のフラッシュプログラマとの通信プロトコルにおいて、常に前記プログラマがマスタとなり、フラッシュマイコン側がスレーブとなる。したがって、このようなプログラマであるライタから送られてきたコマンドの処理が終了してから、前記ライタ側からの処理が終了したか否かの確認が実行されるまでが、通信のオーバーヘッドタイムとなり、処理速度の低下、通信コストの上昇等を招くこととなっている。
【０００６】
また前記した方式以外に、外部ＲＯＭに格納されたフラッシュファームを動作させて制御方式を変更することも可能である。しかしながらこのような前記外部ＲＯＭは、外付けであり、このため外付け回路が新たに必要であり、ユーザのターゲット上では実現が困難である。
さらに、このような外付け回路に、外付ＲＯＭが実装できないなど問題があった。
【０００７】
【発明が解決しようとする課題】
したがって、フラッシュマイコンの外部から前記した最新のファームウェアであるフラッシュファームウェアを、フラッシュマイコンの内部ＲＡＭ等にダウンロードして、ダウンロードしたこのフラッシュファームウェアを実行させ、フラッシュメモリの制御およびフラッシュプログラマとの通信の最適化を行うことができるようなシステムが要求されている。
【０００８】
本発明は、上記したような要求に鑑みてなされたものであって、ファームウェアに不具合がある場合にこれを修正したり、変更することが必要とされる場合であっても、格納されているファームウェアを最新のフラッシュファームウェア仕様に容易に変更することのできるようなシステムを提供することを目的としている。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明によれば、ＶＰＰ端子からのパルス数をカウントするＶＰＰパルス検出部と、カウントした数を保持するカウント数保持手段と、前記ＶＰＰ端子に高電圧が印加されていることを検出する高電圧検出部と、ＣＰＵと、ファームウェアを格納するための第１の格納手段と、記憶内容を電気的に消去および／または書込可能な読み出し専用の記憶手段と、前記高電圧検出部からの出力信号と前記ＣＰＵからの信号から、前記第１の格納手段と前記記憶手段とのアクセス許可を選択する選択手段と、外部との通信を制御する制御部と、該制御部を介してダウンロードしたデータを格納する第２の格納手段と、高電圧検出部からの信号を記憶する記憶手段とを有し、前記選択手段は、ＡＮＤおよびＮＡＮＤ論理ゲートを有し、前記ＶＰＰパルス検出部により得られたパルス数と、あらかじめ登録されたパルス数とを比較して、該パルス数が前記登録されたパルス数であるか否かをチェックする機能をさらに有し、前記機能により前記登録されたパルス数である場合に前記第２の格納手段にダウンロードしたファームウェアプログラムが書き込まれて分岐され遷移して、当該第２の格納手段の前記ファームウェアプログラムが実行され前記第１の格納手段の書き換え、消去、書き込みデータの照合の制御を行うことを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システムが提供される。
【００１０】
請求項２に記載の発明によれば、請求項１において、前記制御部は、シリアル制御部であることを特徴とするフラッシュファームダウンロードによるフラッシュメモリ制御システムが提供される。
【００１５】
【発明の実施の形態】
以下、本発明に係るフラッシュファームダウンロードによるフラッシュメモリ制御方式の第１の実施の形態について述べる。
本発明に係るフラッシュメモリ制御システムは、図１に示すように、ＶＰＰ端子２からのパルス数をカウントするＶＰＰパルス検出部６と、ＶＰＰパルス検出部６でカウントした数を保持するレジスタ１１と、前記ＶＰＰ端子に高電圧が印加されていることを検出する高電圧検出部７と、ＣＰＵ８と、ファームウェアを格納するための第１の格納手段であるファームＲＯＭ１３と、記憶内容を電気的に消去および／または書込可能な読み出し専用のフラッシュＲＯＭ１２と、外部からのフラッシュファームウェアを格納する第２の格納手段である内部ＲＡＭ１４と、前記高電圧検出部からの出力信号と前記ＣＰＵから、前記ファームＲＯＭ１３と前記フラッシュＲＯＭ１２のアクセス許可を選択する選択手段９とを有している。
【００１６】
そして選択手段９は、図１に示すように、高電圧検出部７からの信号と、ＣＰＵ８からの信号をインプットして、アウトプット先を、フラッシュＲＯＭ１２と、ファームＲＯＭにしている。そして高電圧検出部から信号が入力されない場合にはフラッシュＲＯＭにアクセスし、高電圧検出部から信号が入力された場合にはファームＲＯＭとアクセスするように、ＮＡＮＤ論理ゲートと、ＡＮＤ論理ゲートを有する構成となっている。
【００１７】
このような本発明に係るフラッシュメモリ制御システムにおいては、フラッシュＲＯＭ１２などのフラッシュデバイスをプログラミングモードへ引き込み、ファームＲＯＭ１３に内蔵されているスタートアップルーチンを実行することにより、特定のＶＰＰ端子のパルス数確認後に、フラッシュＲＯＭに対してブランクチェックを行って、これがＯＫ（良）であれば、ファームＲＯＭ領域に本来格納されているファームウェアとは別の、内部ＲＡＭ１４にダウンロードされているフラッシュファームプログラムへと処理を分岐させることができるようなファームＲＯＭ１３を有することを特徴とする。
【００１８】
図１に示すように、本発明に係るフラッシュメモリ制御システムは、ＶＰＰ端子２に印加された高電圧を、高電圧検出部７で検出することにより、ＣＰＵ８は、フラッシュプログラミングモードに切り替わる。これによって、ファームＲＯＭ１３に内蔵されているスタートアップルーチンが実行されることになる。
【００１９】
このスタートアップルーチンでは、ＶＰＰパルス検出部６により検出されたＶＰＰパルス数をカウントし、このカウントした値が、あらかじめ決められた特定のカウント数である場合には、フラッシュＲＯＭ１２に対してブランクチェックを行うことができる。なおこの特定のカウント数は、セキュリティ機能を有するように設定することができる。
【００２０】
このようなブランクチェックを行った結果、ＯＫ（フラッシュＲＯＭがブランク状態）であれば、内部ＲＡＭ１４への処理を後述するようにして分岐させ、あらかじめＲＡＭ１４にシリアル制御部１０を介して外部通信によりダウンロードされたフラッシュファームウェアを実行することにより、フラッシュＲＯＭ１２の書き込み、消去および書き込みデータの照合などの制御が行われる。
【００２１】
通常モードにおいては、ＶＰＰ端子２に、高電圧（たとえば１０Ｖ）は印加されない。したがって、セレクタ９により、ＲＯＭの中でもフラッシュＲＯＭ１２がアクセス許可となっている。
そして前記ＶＰＰ端子２に高電圧が印加されると、高電圧検出部７が高電圧が印加されたことを検出して、ＣＰＵ８がフラッシュプログラミングモードに切り替わる。これによって、ＣＰＵ８は、ファームＲＯＭとアクセス可能となる。
【００２２】
また本発明に係るフラッシュメモリ制御システムは、外部とのシリアル通信を制御するためのシリアル制御部１０と、外部からのシリアル通信によりダウンロードしたデータを格納することのできる内部ＲＡＭ１４を有している。
このような本発明に係るフラッシュメモリ制御システムの動作について、図２を参照しつつ、説明する。また図３に、ＣＰＵ８から見たメモリマッピングを示す。
【００２３】
図２に示すように、ＶＰＰに高電圧が印加されていない場合には、ＣＰＵ８は前記したように通常モードとなっており、このような通常モードにおいてＣＰＵ８は、フラッシュＲＯＭ１２にのみアクセスすることが許可されている（ステップＳ１１→ステップＳ２３）。
【００２４】
次に、通常モード以外のモードに切り替わる場合について説明する。
まず、外部よりＶＰＰに高電圧が印加されると（ステップＳ１１）、高電圧検出回路７により高電圧が検出される（ステップＳ１２）。高電圧が検出されると、好ましくは記憶手段１１’  （レジスタ）に高電圧検出部７の情報を蓄積し、これを内部バス１５を介してＣＰＵ８に伝達し、これによりＣＰＵ８のモードが、通常モードからフラッシュプログラミングモードに遷移（切替え）する（ステップＳ１３）。また、これと独立に、外部からのＶＰＰ端子から、特定のパルスを有するＶＰＰを振幅させた信号が入力される（ステップＳ１４）。
【００２５】
このＶＰＰを振幅させた信号が外部から入力されるのと独立して、ＣＰＵ８は、ファ−ムＲＯＭ１３にアクセスしてこれを実行させる（ステップＳ１５）。
この実行により、スタートアップルーチンが開始され、ＶＰＰのパルス数がチェックされ、ＶＰＰのパルス数が、特定の数であるか否かを判定し（ステップＳ１６）、否と判定されれば、フラッシュＲＯＭ１２の制御が行われ、終了する（ステップＳ１６→ステップＳ２４）。なおこのパルス数は、外部とどのような通信手段で通信するか、また、通信する相手は特定されている者からの入力であるかなどの確認を行うことができる情報を含んだ機能を有している。すなわち前記パルス数が特定した値であれば、通信手段が特定され、特定の外部の者であることを確認するセキュリティ機能を有している。このような前記通信手段としては、三線式通信、擬似三線式通信、ＵＡＲＴ通信およびＩＩＣ通信などの前記したシリアル通信が現在使用され、費用等の点から等により好ましく選択される。また本発明に係るフラッシュメモリ制御システムは、このようなシリアル通信以外のパラレル通信でもよく、また、アプリケーションに特化した通信プロトコルによりデータを転送するような通信手段であってもよい。
【００２６】
一方、前記したＶＰＰパルス数がある特定の回数である場合には、フラッシュＲＯＭのブランクチェックを行い、フラッシュＲＯＭがブランクであるか否かを確認する（ステップＳ１７）。そして確認の結果、否である（フラッシュＲＯＭ内にデータが内蔵済みの）場合、終了する。また、前記確認の結果、フラッシュＲＯＭがブランクである場合には、以下のような行程が続行される。なお前記したスタートアップルーチンプログラムは、ＶＰＰをカウントし、フラッシュＲＯＭ１２のブランクチェックを行い、ブランクチェックがあることで終了する。
【００２７】
前記フラッシュＲＯＭがブランクであることを確認した場合には、あらかじめファームＲＯＭに格納してあるローダプログラムを、ＣＰＵはコールする（ステップＳ１８）。このローダプログラムは、外部から本発明に係るフラッシュメモリ制御システムの内部ＲＡＭに、シリアル制御部１０を介して外部からデータを受け入れるためのプログラムである。
【００２８】
このローダプログラムの実行により、シリアル制御部を介して、外部から内部ＲＡＭにデータがダウンロードされ（ステップＳ１９）、ダウンロードが完了したか否かを確認する（ステップＳ２０）。
【００２９】
前記内部ＲＡＭへのダウンロードが終了したことを確認すると、図３に示すように、内部ＲＡＭへダウンロードされたファームプログラム（ファームウェアプログラム）がＲＡＭに書き込まれて処理が分岐する（ステップＳ２１）。この処理の分岐により、以後、フラッシュプログラミングモードに遷移してスタートアップルーチンが実行されると、ファームＲＯＭに内蔵されたファームプログラムが実行されずにＣＰＵはＲＡＭに分岐した新たなファームプログラムに移行してこれを実行するようになる。
【００３０】
その後、フラッシュＲＯＭ１２の書き込み、消去、書き込みデータの照合などの制御が行われて処理が終了する（ステップＳ２２）。
【００３１】
次に、本発明に係るフラッシュメモリの制御システムの第２の実施の形態について説明する。前述したように、本発明の第１の実施の形態においては、フラッシュファームウェアを外部から好ましくはシリアル転送により、本発明に係るフラッシュメモリの制御システムの内部ＲＡＭに、このフラッシュファームウェアを書き込み、次いでＶＰＰパルス数が特定の回数であるか確認し、フラッシュＲＯＭがブランクの場合、内部ＲＡＭに、図３に示すように、ファームプログラム処理を分岐させているが、第２の実施の形態においては、第１の実施の形態で用いられたダウンロード先の内部ＲＡＭから、ＥＥＰＲＯＭに代える。
【００３２】
このように、ダウンロード先をＥＥＰＲＯＭに変更することにより、あらかじめユーザプログラムをこのＥＥＰＲＯＭに入力させて、ローダプログラムをコールすることなくデータをダウンロードすることができるようにすることができる。なお、このＥＥＰＲＯＭと、内部ＲＡＭとをダウンロード用として併用してもよいことはもちろんである。この場合には、たとえばアドレス先をＣＰＵあるいは外部からコントロールして、外部からフラッシュファームプログラムを適宜ダウンロードさせることができる。
【００３３】
【発明の効果】
以上、説明したように、本発明に係るフラッシュメモリ制御システムによれば、ファームウェアは、ＲＯＭに格納されているために、このファームウェアの不具合の修正や、実験のためにファームウェアの変更が必要とされた場合に、新しいファームウェアを拡散行程から、再度やり直す必要がなく、標準的なあるいは最新のファームウェアを実行することができるようにした。これによって、ファームウェアの一部に不具合があっても、すぐに改善したファームウェアを提供可能となるため、ファームウェアの開発までの時間が短縮されるなどによりファームウェアの開発が促進され、フラッシュマイコンの早期提供に寄与することとなる。
【００３４】
またブランク状態のフラッシュＲＯＭなどのデバイスのみが、本発明に係るフラッシュメモリ制御システムに使用される内部ＲＡＭにロードされたフラッシュファームの実行可能であり、フラッシュＲＯＭのデータを勝手に読み出すことができない。このため、たとえ外部の者が本発明に係るフラッシュメモリ制御システムに侵入したとしても、容易にフラッシュＲＯＭのデータを読み出すことはできない。
【００３５】
また、本発明に係るフラッシュメモリ制御システムによって、本システム中の内部ＲＡＭにダウンロードされた新たなファームウェアを実行するために、フラッシュプログラマとのデータ通信プロトコルを容易にカスタマイズすることができる。このため、現在のシリアル通信、たとえば三線式シリアル通信、擬似三線式シリアル通信、ＵＡＲＴシリアル通信およびＩＩＣシリアル通信が本発明に係るフラッシュメモリ制御システムのみでなく、パラレル通信をサポートしたシステムにすることもでき、さらに、アプリケーションソフトに、特化した通信プロトコルを介してデータ転送を行うようにすることもできる。このようにすることにより、データ転送の高速化、通信のオーバーヘッドを防止することができる。
【００３６】
さらに本発明に係るフラッシュメモリ制御システムによって、外付基板などの外部部品が不要となり、従来品に対して操作性、通信速度の向上、通信コストの低減下できるシステムを低コストで提供できる。したがってファームウェアを内蔵するＲＯＭに再拡散せずにファームウェアを変更するような、従来、外部基板に外付ＲＯＭを接続して、外付ＲＯＭに格納した変更したファームウェアを実行することにより行われてきた、これら外付基板の変更は、従来必須のものとなっていたり、また外付基板には、外付ＲＯＭ以外の部品も必要であり、この問題を一気に払拭することができる。
【図面の簡単な説明】
【図１】本発明に係るフラッシュメモリ制御システムの第１の実施の形態の構成を示す図である。
【図２】本発明に係るフラッシュメモリ制御システムの第１の実施の形態の動作を示すフローチャートである。
【図３】本発明に係るフラッシュメモリ制御システムの第１の実施の形態のＣＰＵから見たメモリマッピングを示す図である。
【符号の説明】
１  フラッシュメモリ制御システム
２  ＶＰＰ端子
３  ＳＯ端子
４  ＳＩ端子
５  ＳＣＫ端子
６  ＶＰＰパルス検出部
７  高電圧検出部
８  ＣＰＵ
９  セレクタ
１０  シリアル制御部
１１  レジスタ
１２  フラッシュＲＯＭ
１３  ファームＲＯＭ
１４  内部ＲＡＭ
１５  内部バス
１６  レジスタ
【図１】
0003633812.tif 000002
【図２】
0003633812.tif 000003
【図３】
0003633812.tif 000004