(57)【要約】【課題】近年、不揮発性メモリ内蔵マイコンに搭載される不揮発性メモリの容量が格段に増加してきたことにより、不揮発性メモリに対する書込み処理の簡便化および高速化が望まれてきている。【解決手段】本発明のデータ書込み装置の書込み方法は、フラッシュライタからフラッシュマイコンへ書込みデータ等を送信する場合には、ＭＤＡＴＡ信号の立ち下がりエッジ信号をハンドシェーク用の信号として使用し、一方、フラッシュマイコンからフラッシュライタへ応答データを送信する場合には、ＭＤＡＴＡ信号の立ち上がりエッジ信号をハンドシェーク用の信号として使用することを特徴とする。【選択図】図５
2008090408.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、ライタからクロックが入力される第１の端子と、前記ライタから書込みデータが入力される第２の端子と、前記ライタへ応答データを出力する第３の端子と、を有し、前記不揮発性メモリへ前記書込みデータを書込むマイクロコンピュータであって、
前記第３の端子から、第１のエッジ信号を前記ライタへ出力し、
前記第１のエッジ信号に応答して、前記ライタから出力される前記クロックが、前記第１の端子に入力され、
前記第１のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記ライタから出力される前記書込みデータが、前記第２の端子に入力され、
前記書込みデータの前記第２の端子への入力後、前記第３の端子から、第２のエッジ信号を出力し、
前記第２のエッジ信号に応答して、前記ライタから出力される前記クロックが、前記第１の端子に入力され、
前記第２のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記第３の端子から、前記応答データを出力することを特徴とするマイクロコンピュータ。
【請求項２】
前記書込みデータの前記第２の端子への入力後から前記第２のエッジ信号に応答して前記ライタから出力される前記クロックが前記第１の端子に入力されるまでに、前記ライタとの間で、前記第２の端子を介したハンドシェーク通信を行わないことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記書込みデータの前記第２の端子への入力後から前記第２のエッジ信号に応答して前記ライタから出力される前記クロックが前記第１の端子に入力されるまでに、前記第２の端子に入力される信号の論理レベルが変化しないことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
前記第１のエッジ信号に応答して前記ライタから出力される前記クロックが前記第１の端子に入力される前に、前記ライタとの間で、前記第２の端子を介したハンドシェーク通信を行わないことを特徴とする請求項１ないし３に記載のマイクロコンピュータ。
【請求項５】
前記第１のエッジ信号は、第１の論理レベルから第２の論理レベルの変化により構成され、前記第２のエッジ信号は、前記第２の論理レベルから前記第１の論理レベルの変化により構成されることを特徴とする請求項１ないし４に記載のマイクロコンピュータ。
【請求項６】
前記書込みデータの書込み処理が正常に行われた場合には、正常な書込み処理が完了したことを示す旨の前記応答データを送信し、前記書込みデータの書込み処理が正常に行われなかった場合には、正常な書込み処理が完了しなかったことを示す旨の前記応答データを送信することを特徴とする請求項１ないし５に記載のマイクロコンピュータ。
【請求項７】
前記ライタからのリセット信号が入力される第４の端子と、
前記ライタからの動作モード設定信号が入力される第５の端子と、を備え、
前記リセット信号の論理レベルが変化したときの前記動作モード設定信号の論理レベルに基づいて、書込み動作モードへの動作モードの遷移を行うことを特徴とする請求項１ないし６に記載のマクロコンピュータ。
【請求項８】
不揮発性メモリを有するマイクロコンピュータと、前記不揮発性メモリへのデータの書込みを実行するライタとが、該ライタから前記マイクロコンピュータへクロックが送信される第１のラインと、前記ライタから前記マイクロコンピュータへ書込みデータが送信される第２のラインと、前記マイクロコンピュータから前記ライタへ応答データが送信される第３のラインと、で接続されるデータ書込み装置の書込み方法であって、
前記マイクロコンピュータが、前記第３のラインを用いて第１のエッジ信号を前記ライタへ送信する第１の処理と、
前記ライタが、前記第１のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信する第２の処理と、
前記ライタが、前記第２の処理で送信する前記クロックに同期して、前記第２のラインを用いて前記書込みデータを前記マイクロコンピュータへ送信する第３の処理と、
前記第３の処理後、前記マイクロコンピュータが、前記第３のラインを用いて第２のエッジ信号を前記ライタへ送信する第４の処理と、
前記ライタが、前記第２のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信する第５の処理と、
前記マイクロコンピュータが、前記第５の処理で前記ライタから送信された前記クロックを受信し、該受信した前記クロックに同期して、前記第３のラインを用いて前記応答データを前記ライタへ送信する第６の処理と、を含むことを特徴とするデータ書込み装置の書込み方法。
【請求項９】
前記第３の処理後から前記第５の処理までの間に、前記ライタと前記マイクロコンピュータは、前記第２のラインを用いてハンドシェーク通信を行わないことを特徴とする請求項８に記載のデータ書込み装置の書込み方法。
【請求項１０】
前記第３の処理後から前記第５の処理までの間に、前記第２のライン上の信号の論理レベルが変化しないことを特徴とする請求項８に記載のデータ書込み装置の書込み方法。
【請求項１１】
前記第２の処理前に、前記ライタと前記マイクロコンピュータは、前記第２のラインを用いてハンドシェーク通信を行わないことを特徴とする請求項８ないし１０に記載のデータ書込み装置の書込み方法。
【請求項１２】
前記第１のエッジ信号は、第１の論理レベルから第２の論理レベルの変化により構成され、前記第２のエッジ信号は、前記第２の論理レベルから前記第１の論理レベルの変化により構成されることを特徴とする請求項８ないし１１に記載のデータ書込み装置の書込み方法。
【請求項１３】
前記第６の処理において、前記マイクロコンピュータは、前記書込みデータの書込み処理が正常に行われた場合には、正常な書込み処理が完了したことを示す旨の前記応答データを送信し、前記書込みデータの書込み処理が正常に行われなかった場合には、正常な書込み処理が完了しなかったことを示す旨の前記応答データを送信することを特徴とする請求項８ないし１２に記載のデータ書込み装置の書込み方法。
【請求項１４】
前記マイクロコンピュータと前記ライタとが、前記ライタから前記マイクロコンピュータへリセット信号が送信される第４のラインと、前記ライタから前記マイクロコンピュータへ動作モード設定信号が送信される第５のラインとで接続され、
前記第１の処理の前に、前記マイクロコンピュータは、前記第４のラインの論理レベルが変化したときの前記第５のラインの論理レベルに基づいて、書込み動作モードへの動作モードの遷移を行うことを特徴とする請求項８ないし１３に記載のデータ書込み装置の書込み方法。
【請求項１５】
不揮発性メモリを有するマイクロコンピュータと、前記不揮発性メモリへのデータの書込みを実行するライタとが、該ライタから前記マイクロコンピュータへクロックが送信される第１のラインと、前記ライタから前記マイクロコンピュータへ書込みデータが送信される第２のラインと、前記マイクロコンピュータから前記ライタへ応答データが送信される第３のラインと、で接続されるデータ書込み装置であって、
前記マイクロコンピュータが、前記第３のラインを用いて第１のエッジ信号を前記ライタへ送信し、
前記ライタが、前記第１のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信し、
前記ライタが、前記第１のエッジ信号に応答して出力する前記クロックに同期して、前記第２のラインを用いて前記書込みデータを前記マイクロコンピュータへ送信し、
前記マイクロコンピュータが、前記書込みデータの受信後、前記第３のラインを用いて第２のエッジ信号を前記ライタへ送信し、
前記ライタが、前記第２のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信し、
前記第２のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記マイクロコンピュータが、前記第３のラインを用いて前記応答データを前記ライタへ送信することを特徴とするデータ書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリ内蔵マイクロコンピュータに対するデータの書込み装置およびその書込み方法に関し、特にハンドシェーク通信を介したデータの書込み装置およびその書込み方法に関する。
【背景技術】
【０００２】
データの書換えが可能である不揮発性メモリには、バイト単位での書換えが可能なＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ブロック単位の書換えが可能なフラッシュメモリ等がある。このような不揮発性メモリを内蔵するマイクロコンピュータ（マイコン）は、ユーザのシステム上で利用される様々なデータやプログラムを、内蔵する不揮発性メモリに格納する。データやプログラムを不揮発性メモリ内蔵マイコンへ書込む際には、ハンドシェーク通信方式によるデータ転送が用いられてきた。
【０００３】
ハンドシェーク通信方式とは、送信側が受信側に対しデータ転送を行う際に、受信側からの確認信号（ＡＣＫ）に応答して、送信側がデータ転送を開始する方式をいう。このハンドシェーク通信方式によれば、信頼性の高い通信を行うことができる。
【０００４】
特許文献１には、ハンドシェーク通信方式を用いて、フラッシュメモリ内蔵マイコン（フラッシュマイコン）にデータを書込む技術が開示されている。図８は、特許文献１のフラッシュ書込み装置８０のブロック図を示す。フラッシュ書込み装置８０は、フラッシュライタ８１と、フラッシュマイコン８２を備える。また、フラッシュマイコン８２は、シリアル送受信部８３と、ポート部８４と、フラッシュメモリ部８５と、制御部８６を有している。さらに、制御部８６は、シリアル送受信制御部８７と、ポート制御部８８と、フラッシュメモリ制御部８９のサブブロックを有する。
【０００５】
フラッシュライタ８１とフラッシュマイコン８２との間は、３線式シリアル通信の場合には、ハンドシェーク用の信号を送受信するハンドシェーク専用線を含め、４本の通信線で接続されている。図８では、フラッシュライタ８１からシリアル送受信部８３へのシリアルクロック出力と、フラッシュライタ８１からシリアル送受信部８３へのデータ出力と、シリアル送受信部８３からフラッシュライタ８１へのデータ出力を行うための配線が、フラッシュライタ８１とシリアル送受信部８３の間にそれぞれ接続されている。また、ハンドシェーク用の信号を送受信するための配線がフラッシュライタ８１とポート部８４との間に接続されている。これらの４本の通信線を使用することで、フラッシュライタ８１は、フラッシュマイコン８２が内蔵するフラッシュメモリ部８５への書込みを実行する。
【０００６】
図８では、フラッシュライタ８１からフラッシュメモリ部８５への書込みデータの転送を行う前に、まず、ポート部８４で管理されている複数の端子のうちからハンドシェーク用の信号の送受信を行うためのハンドシェーク用の端子を決定する。ハンドシェーク用の端子を決定するために、フラッシュライタ８１は、シリアル送受信部８３に対し、シリアルクロックを送信するとともに、ハンドシェーク設定コマンドおよびハンドシェーク端子情報を送信する。シリアル送受信部８３は、受信したハンドシェーク設定コマンドとハンドシェーク端子情報を制御部８６へ出力する。制御部８６の中のシリアル送受信制御部８７は、ハンドシェーク設定コマンドおよびハンドシェーク端子情報を正常に受信したことを示すＡＣＫ信号を、シリアル送受信部８３を介して、フラッシュライタ８１へ送信する。また、制御部８６の中のポート制御部８８は、ハンドシェーク端子情報に基づいて、ポート部８４における複数の端子のうちから１つをハンドシェーク用の端子として決定する。
【０００７】
このようにして、ハンドシェーク通信が可能な状態に設定し、特許文献１のフラッシュ書込み装置８０は、ハンドシェーク用の専用線を使用したハンドシェーク通信方式を使って、フラッシュライタ８１からフラッシュマイコン８２が内蔵するフラッシュメモリ部８５にデータを書込む。
【０００８】
また、特許文献２には、スレーブ装置とマスタ装置との間のデータの転送において、ハンドシェーク用の専用線を使用せずにデータの送信を行う技術が開示されている。図９に、特許文献２のスレーブ装置９０とマスタ装置９１との接続関係を示す。スレーブ装置９０は、スレーブ出力端子（ＳＯ）と、スレーブ入力端子（ＳＩ）と、スレーブクロック端子（ＳＣＬＫ）と、外部割込み入力端子（Ｅｘｔ Ｉｎｔ）を有する。マスタ装置９１は、マスタ入力端子（ＭＩ）と、マスタ出力端子（ＭＯ）と、マスタクロック端子（ＭＣＬＫ）を有する。
【０００９】
スレーブ装置９０とマスタ装置９１は、３本の配線で接続されている。ＳＯとＭＩがバスラインＳＤによって接続され、スレーブ装置９０からマスタ装置９１へバスラインＳＤ上をスレーブデータ（ＳＤ）が送信される。ＳＩとＭＯがバスラインＭＤによって接続され、マスタ装置９１からスレーブ装置９０へバスラインＭＤ上をマスタデータ（ＭＤ）が送信される。ＳＣＬＫとＭＣＬＫがバスラインＣＬＫによって接続され、マスタ装置９１からスレーブ装置９０へバスラインＣＬＫによってクロック（ＣＬＫ）が送信される。また、Ｅｘｔ Ｉｎｔは、ＭＯと接続され、スレーブ装置９０の応答性向上のために利用される。
【００１０】
次に、図９のスレーブ装置９０およびマスタ装置９１のデータの転送方法について説明する。図１０は、スレーブ装置９０からマスタ装置９１へデータを送信する場合を示す。ＭＤおよびＳＤの初期値は、‘Ｈ’レベルとする。また、１回のデータ送信は、８ビットであり、図１０では、Ｈ７〜Ｈ０とＡ７〜Ａ０の２回のデータ送信が行われている。
【００１１】
まず、ｔ０において、スレーブ装置９０は、バスラインＳＤを‘Ｈ’レベル→‘Ｌ’レベルに遷移させて、マスタ装置９１へエッジ信号を送信する。同期のためのＴ１期間経過後、ｔ１において、マスタ装置９１は、バスラインＳＤ上のエッジ信号を検出して受信モードに移行し、バスラインＭＤを‘Ｈ’レベル→‘Ｌ’レベルに設定する。このようにして発生したエッジ信号は、スレーブ装置９０に対して、マスタ装置９１がすでに受信可能な状態であることを知らせる。
【００１２】
バスラインＭＤ上のエッジ信号が発生してからＴ２期間の経過後、ｔ２において、マスタ装置９１は、バスラインＣＬＫ上にＣＬＫを出力する。スレーブ装置９０は、ＣＬＫの発生に伴い、バスラインＳＤ上に、データＨ７を出力する。ｔ３において、マスタ装置９１は、ＣＬＫの立ち上がりエッジで、バスラインＳＤ上のデータＨ７を取得する。このようにして、データＨ６〜Ｈ０までのスレーブ装置９０からマスタ装置９１へのデータ送信が繰り返される。
【００１３】
ｔ４において、データＨ０の転送が完了し、マスタ装置９１からのＣＬＫ出力が停止する。ｔ４からＴ３期間の間、マスタ装置９１は、取得したデータＨ７〜Ｈ０のメモリ（不図示）への転送を行う。
【００１４】
そして、ｔ５において、マスタ装置９１は、バスラインＭＤを‘Ｌ’レベル→‘Ｈ’レベルとしてエッジ信号をスレーブ装置９０に送信する。これにより、スレーブ装置９０は、マスタ装置９１がすでに受信の準備が完了していることを知り、ｔ６において、バスラインＣＬＫ上にＣＬＫが、バスラインＳＤ上にＡ７が出力されて、データの送信が開始する。Ａ６〜Ａ０も同様に、スレーブ装置９０からマスタ装置９１へ送信される。
【００１５】
また、図１１は、マスタ装置９１からスレーブ装置９０へデータを送信する場合を示す。マスタ装置９１からスレーブ装置９０へデータを送信する場合には、バスラインＭＤを介して、データＨ７〜Ｈ０およびＡ７〜Ａ０を送信する。つまり、バスラインＳＤとバスラインＭＤの役割が、逆となる。これ以外は、基本的に、スレーブ装置９０からマスタ装置９１へデータを送信する場合と同じになる。
【００１６】
以上のように、特許文献２のスレーブ装置９０とマスタ装置９１との間のデータ転送においては、特許文献１のようなハンドシェーク用の専用線を使用せずに、データを送信するために使用されるデータ線であるバスラインＳＤおよびバスラインＭＤの２本の信号線を利用して、ハンドシェーク通信を行っている。すなわち、特許文献２では、送信側（スレーブ装置９０／マスタ装置９１）は、データ線（バスラインＳＤ／バスラインＭＤ）を介して、データ送信の開始について同意を求めるリクエスト信号であるエッジ信号を受信側（マスタ装置９１／スレーブ装置９０）へ送信する。受信側は、当該エッジ信号を検出し、データ線（バスラインＭＤ／バスラインＳＤ）を介して、データ転送を認める確認信号（ＡＣＫ）であるエッジ信号を送信側へ返信する。送信側は、当該エッジ信号の受信をトリガとして、データの転送を開始する。
【００１７】
【特許文献１】特開２００１−３５７６９０
【特許文献２】特開２００１−２７４８６２
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、近年、不揮発性メモリ内蔵マイコンに搭載される不揮発性メモリの容量が格段に増加してきたことにより、不揮発性メモリに対する書込み時間の短縮化が重要となってきた。そのため、ハンドシェーク通信方式による書込み処理の簡便化および高速化が望まれてきている。
【課題を解決するための手段】
【００１９】
本発明に係るマイクロコンピュータは、不揮発性メモリと、ライタからクロックが入力される第１の端子と、前記ライタから書込みデータが入力される第２の端子と、前記ライタへ応答データを出力する第３の端子と、を有し、前記不揮発性メモリへ前記書込みデータを書込むマイクロコンピュータであって、前記第３の端子から、第１のエッジ信号を前記ライタへ出力し、前記第１のエッジ信号に応答して、前記ライタから出力される前記クロックが、前記第１の端子に入力され、前記第１のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記ライタから出力される前記書込みデータが、前記第２の端子に入力され、前記書込みデータの前記第２の端子への入力後、前記第３の端子から、第２のエッジ信号を出力し、前記第２のエッジ信号に応答して、前記ライタから出力される前記クロックが、前記第１の端子に入力され、前記第２のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記第３の端子から、前記応答データを出力することを特徴とする。
【００２０】
また、本発明に係るデータ書込み装置の書込み方法は、不揮発性メモリを有するマイクロコンピュータと、前記不揮発性メモリへのデータの書込みを実行するライタとが、該ライタから前記マイクロコンピュータへクロックが送信される第１のラインと、前記ライタから前記マイクロコンピュータへ書込みデータが送信される第２のラインと、前記マイクロコンピュータから前記ライタへ応答データが送信される第３のラインと、で接続されるデータ書込み装置の書込み方法であって、前記マイクロコンピュータが、前記第３のラインを用いて第１のエッジ信号を前記ライタへ送信する第１の処理と、前記ライタが、前記第１のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信する第２の処理と、前記ライタが、前記第２の処理で送信する前記クロックに同期して、前記第２のラインを用いて前記書込みデータを前記マイクロコンピュータへ送信する第３の処理と、前記第３の処理後、前記マイクロコンピュータが、前記第３のラインを用いて第２のエッジ信号を前記ライタへ送信する第４の処理と、前記ライタが、前記第２のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信する第５の処理と、前記マイクロコンピュータが、前記第５の処理で前記ライタから送信された前記クロックを受信し、該受信した前記クロックに同期して、前記第３のラインを用いて前記応答データを前記ライタへ送信する第６の処理と、を含むことを特徴とする。
【００２１】
また、本発明に係るデータ書込み装置は、不揮発性メモリを有するマイクロコンピュータと、前記不揮発性メモリへのデータの書込みを実行するライタとが、該ライタから前記マイクロコンピュータへクロックが送信される第１のラインと、前記ライタから前記マイクロコンピュータへ書込みデータが送信される第２のラインと、前記マイクロコンピュータから前記ライタへ応答データが送信される第３のラインと、で接続されるデータ書込み装置であって、前記マイクロコンピュータが、前記第３のラインを用いて第１のエッジ信号を前記ライタへ送信し、前記ライタが、前記第１のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信し、前記ライタが、前記第１のエッジ信号に応答して出力する前記クロックに同期して、前記第２のラインを用いて前記書込みデータを前記マイクロコンピュータへ送信し、前記マイクロコンピュータが、前記書込みデータの受信後、前記第３のラインを用いて第２のエッジ信号を前記ライタへ送信し、前記ライタが、前記第２のエッジ信号に応答して、前記第１のラインを用いて前記クロックを前記マイクロコンピュータへ送信し、前記第２のエッジ信号に応答して前記ライタから出力される前記クロックに同期して、前記マイクロコンピュータが、前記第３のラインを用いて前記応答データを前記ライタへ送信することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、ハンドシェーク通信方式による書込み処理を簡便化、高速化することが可能となり、不揮発性メモリ内蔵マイコンが内蔵する不揮発性メモリに対する書込み時間を短縮することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好ましい実施の形態について、図面を参照して詳細に説明する。なお、実施の形態においては、フラッシュメモリ内蔵マイクロコンピュータ（フラッシュマイコン）を用いて説明をするが、これに限定されることはなく、フラッシュメモリ以外の不揮発性メモリ（ＥＥＰＲＯＭやＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等）を内蔵するマイクロコンピュータ（マイコン）であってもよい。
【００２４】
実施の形態
図１は、本発明の実施の形態に係るデータ書込み装置１０のブロック図である。図１に示すように、データ書込み装置１０は、フラッシュライタ１１と、フラッシュメモリを内蔵するフラッシュマイコン１２を備える。フラッシュライタ１１は、フラッシュマイコン１２が内蔵するフラッシュメモリにデータを書込むための装置である。
【００２５】
フラッシュライタ１１は、ＷＳＣＫ端子１１０と、ＷＳＯ端子１１１と、ＷＳＩ端子１１２と、ＷＯＡ端子１１３と、ＷＯＢ端子１１４と、ＷＩ端子１１５を有する。また、フラッシュマイコン１２は、ＭＳＣＫ端子１２０と、ＭＳＩ端子１２１と、ＭＳＯ端子１２２と、ＭＲＳＴ端子１２３と、ＭＭＯＤＥ端子１２４を有する。
【００２６】
ＷＳＣＫ端子１１０とＭＳＣＫ端子１２０は、ＳＣＫ信号線で接続され、当該ＳＣＫ信号線を介して、フラッシュライタ１１からフラッシュマイコン１２へシリアルクロック（ＳＣＫ信号）が送信される。ＷＳＯ端子１１１とＭＳＩ端子１２１は、ＷＤＡＴＡ線で接続され、当該ＷＤＡＴＡ線を介して、フラッシュライタ１１からフラッシュマイコン１２へシリアルのデータ信号（ＷＤＡＴＡ信号）が送信される。ＷＳＩ端子１１２とＭＳＯ端子１２２は、ＭＤＡＴＡ線で接続され、当該ＭＤＡＴＡ線を介して、フラッシュマイコン１２からフラッシュライタ１１へシリアルのデータ信号（ＭＤＡＴＡ信号）が送信される。ＷＯＡ端子１１３とＭＲＳＴ端子１２３は、ＲＳＴ信号線で接続され、当該ＲＳＴ信号線を介して、フラッシュライタ１１からフラッシュマイコン１２へリセット信号（ＲＳＴ信号）が送信される。ＷＯＢ端子１１４とＭＭＯＤＥ端子１２４は、ＭＯＤＥ信号線で接続され、当該ＭＯＤＥ信号線を介して、フラッシュライタ１１からフラッシュマイコン１２へ動作モード設定信号（ＭＯＤＥ信号）が送信される。
【００２７】
また、ＷＩ端子１１５は、フラッシュマイコン１２に内蔵されるフラッシュメモリに書込むためのデータである書込みデータ等を、フラッシュライタ１１へ入力するためのデータ入力端子である。なお、フラッシュライタ１１とフラッシュマイコン１２との間には、ハンドシェーク用の専用線は、存在しない。
【００２８】
次に、図２を用いて、フラッシュライタ１１の詳細について説明する。図２は、本発明の実施の形態に係るフラッシュライタ１１のブロック図を示す。フラッシュライタ１１は、図１に示される６つの端子に接続されたフラッシュライタ制御用マイコン２０を有する。フラッシュライタ制御用マイコン２０は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３とＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）部２４と、バス２５を有する。
【００２９】
ＣＰＵ２１は、バス２５に接続され、当該バス２５を介して、ＲＯＭ２２、ＳＲＡＭ２３およびＩ／Ｆ部２４に、それぞれアクセス可能とされている。
【００３０】
ＲＯＭ２２は、バス２５に接続されている。ＲＯＭ２２は、フラッシュライタ１１を制御するためのプログラムが格納されており、当該プログラムをＣＰＵ２１が読出して実行することによって、フラッシュライタ１１の制御が行われる。
【００３１】
ＳＲＡＭ２３は、バス２５に接続されている。ＳＲＡＭ２３は、ＷＩ端子１１５等の入力端子から入力されたデータの格納場所として使用されるとともに、ＣＰＵ２１がＲＯＭ２２から読出したプログラムを格納する場所としても使用される。
【００３２】
Ｉ／Ｆ部２４は、バス２５と、図１で示される６つの端子と接続される。また、Ｉ／Ｆ部２４は、ポート部２４０と、ポート制御部２４１と、シリアル送受信制御部２４２と、シリアルクロック生成部２４３のサブブロックを有する。
【００３３】
ポート部２４０は、図１で示される６つの端子と接続される。フラッシュライタ制御用マイコン２０の各端子は、汎用的に使用することができる。汎用的とは、所定の端子を、例えば、入力端子、出力端子、若しくは、入出力端子として選択して使用することができ、さらに、シリアル通信として使用する場合には、シリアルクロック出力端子、シリアルデータ出力端子、およびシリアルデータ入力端子として使用することができる。ポート部２４０は、ポート制御部２４１と接続され、フラッシュライタ制御用マイコン２０の端子の設定は、ポート制御部２４１から出力される制御信号によって行われる。また、ポート部２４０は、ポート制御部２４１から出力される制御信号を受けて、出力端子として設定された所定の端子の出力を、特定の論理レベルに維持する機能も有する。例えば、ＷＯＡ端子１１３が出力端子として設定される場合に、当該ＷＯＡ端子１１３の出力を‘Ｈ’レベルに固定したり、‘Ｈ’→‘Ｌ’レベルに遷移させたりすることもできる。
【００３４】
ポート制御部２４１は、フラッシュライタ制御用マイコン２０の各端子の設定および出力信号の論理レベルを制御するための制御信号をポート部２４０へ出力する。また、ポート制御部２４１は、バス２５と接続され、ポート制御部２４１から出力される信号は、ＣＰＵ２１からの命令によって制御される。
【００３５】
シリアル送受信制御部２４２は、バス２５と、ポート部２４０に接続され、フラッシュライタ制御用マイコン２０の端子が、シリアル通信用の端子として設定された場合のシリアル通信の制御を行う。具体的には、フラッシュマイコン１２から送信されポート部２４０から入力されるシリアルデータをシリアルクロックに同期させて取り込み、当該取り込んだシリアルデータを複数ビットのパラレルデータに変換して、ＣＰＵ２１またはＳＲＡＭ２３へ出力する。また、ＣＰＵ２１またはＳＲＡＭ２３から入力される複数ビットのパラレルデータをシリアルデータに変換して、シリアルクロックに同期させてポート部２４０を介してフラッシュマイコン１２へ出力する。なお、データのパラレル−シリアル（シリアル−パラレル）変換は、例えば、シフトレジスタによって行うことができる。
【００３６】
シリアルクロック生成部２４３は、ポート部２４０と、シリアル送受信制御部２４２に接続される。シリアルクロック生成部２４３は、シリアル送受信制御部２４２の制御信号を受けて、シリアルクロックを生成し、生成したシリアルクロックをポート部２４０およびシリアル送受信制御部２４２へ出力する。
【００３７】
なお、図２では、フラッシュライタ１１の制御用プログラムの格納場所をＲＯＭ２２としたがこれに限定されることはなく、例えば、フラッシュメモリのような書換え可能な不揮発性メモリであっても構わない。また、一時的なデータの格納場所として、ＳＲＡＭ２３を使用しているが、これについても限定されることはなく、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であっても構わない。
【００３８】
続いて、図３を用いて、フラッシュマイコン１２の詳細について説明する。図３は、本発明の実施の形態に係るフラッシュマイコン１２のブロック図を示す。フラッシュマイコン１２は、図１に示される５つの端子の他に、ＣＰＵ３０と、フラッシュメモリ３１と、ＲＯＭ３２と、ＳＲＡＭ３３と、Ｉ／Ｆ部３４と、バス３５を有する。
【００３９】
ＣＰＵ３０は、バス３５に接続され、当該バス３５を介して、フラッシュメモリ３１、ＲＯＭ３２、ＳＲＡＭ３３およびＩ／Ｆ部３４に、それぞれアクセス可能とされている。さらに、ＣＰＵ３０は、ＭＲＳＴ端子１２３およびＭＭＯＤＥ端子１２４と接続される。ＣＰＵ３０は、ＭＲＳＴ端子１２３を介して入力されるＲＳＴ信号を受けて、フラッシュマイコン１２のリセット（初期化処理）を行う。また、ＣＰＵ３０は、ＭＭＯＤＥ端子１２４を介して入力されるＭＯＤＥ信号に基づいて、フラッシュマイコン１２が動作する動作モードを設定する。フラッシュマイコン１２の動作モードには、ユーザのシステムで動作する通常動作モードと、フラッシュライタ１１と接続されてフラッシュメモリ３１にデータを書込むための書込み動作モードがある。
【００４０】
フラッシュメモリ３１は、バス３５と接続され、フラッシュライタ１１から送信される書込みデータを格納する。また、フラッシュメモリ３１は、フラッシュメモリ制御部３１０およびメモリセルアレイ３１１のサブブロックを有する。フラッシュメモリ制御部３１０は、メモリセルアレイ３１１に対するデータの書込み、読出しおよび消去の各処理を実行する。
【００４１】
ＲＯＭ３２は、バス３５に接続されている。ＲＯＭ３２は、フラッシュマイコン１２の動作を制御するためのプログラムが格納されており、当該プログラムをＣＰＵ３０が読出して実行することによって、フラッシュマイコン１２の動作の制御が行われる。また、ＲＯＭ３２に格納されるプログラムには、フラッシュメモリ３１の書込み、読出しおよび消去を制御するためのプログラム（ファームウェア）も含まれており、フラッシュメモリ制御部３１０は、このファームウェアに基づいて、メモリセルアレイ３１１に対する書込み等の処理を実行する。
【００４２】
ＳＲＡＭ３３は、バス３５に接続されている。ＳＲＡＭ３３は、フラッシュライタ１１からＩ／Ｆ部３４を介してフラッシュマイコン１２が受信した書込みデータや書込み先を示すアドレス、各種コマンド（以下、書込みデータ等という）を、一時的に格納するための場所として使用されるとともに、ＣＰＵ３０がＲＯＭ３２から読出したプログラムを格納する場所としても使用される。
【００４３】
Ｉ／Ｆ部３４は、バス３５と、図１で示される３つの端子（ＭＳＣＫ端子１２０、ＭＳＩ端子１２１、ＭＳＯ端子１２２）と接続される。また、Ｉ／Ｆ部３４は、ポート部３４０と、ポート制御部３４１と、シリアル送受信制御部３４２のサブブロックを有する。
【００４４】
ポート部３４０は、図１で示される３つの端子と接続される。図２のフラッシュライタ制御用マイコン２０内のポート部２４０と同じように、ポート部３４０に接続される３つの各端子の設定（端子の種類と出力信号の論理レベル）は、ポート制御部３４１から行われる。
【００４５】
ポート制御部３４１およびシリアル送受信制御部３４２の機能についても、図２のフラッシュライタ制御用マイコン２０内のポート制御部２４１およびシリアル送受信制御部２４２と基本的に同様である。但し、シリアルクロックの生成は、フラッシュライタ１１側でのみ行われるため、シリアル送受信制御部３４２は、フラッシュライタ１１から送信されるシリアルクロックを受信して、当該受信したシリアルクロックに同期したシリアル通信の制御を行う。
【００４６】
なお、図２の場合と同様に、図３においても、ＲＯＭ３２やＳＲＡＭ３３に限定されることはない。
【００４７】
次に、図４を用いて、本発明の実施の形態に係るデータ書込み装置１０の動作について説明する。図４は、本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２の動作フローを示す。なお、図４では、１回のデータ転送に関連するフラッシュライタ１１とフラッシュマイコン１２の処理のみを示している。
【００４８】
まず、Ｓ４−１において、フラッシュライタ１１の動作モードの設定が行われる。詳細には、ＣＰＵ２１が、ＲＯＭ２２からフラッシュライタ１１を制御するためのプログラムを読出して実行し、フラッシュライタ１１が、フラッシュライタとして動作可能な状態へ移行する。動作モードの設定が行われると、その後のフラッシュライタ１１の動作は、ＲＯＭ２２に格納されたプログラムに基づいて制御される。なお、プログラムの実行においては、ＲＯＭ２２から読出したプログラムを一旦ＳＲＡＭ２３に格納し、ＳＲＡＭ２３からプログラムを読出して実行するようにしてもよい。
【００４９】
Ｓ４−２において、ＣＰＵ１１は、フラッシュライタ１１の端子の設定を行う。詳細には、ＣＰＵ２１は、ポート部２４０およびポート制御部２４１を介して、ＷＳＣＫ端子１１０をシリアルクロック（ＳＣＫ信号）を出力するための出力端子として、ＷＳＯ端子１１１をシリアルデータであるＷＤＡＴＡ信号を出力するための出力端子として、ＷＳＩ端子１１２をシリアルデータであるＭＤＡＴＡ信号を入力するための入力端子として、ＷＯＡ端子１１３をＲＳＴ信号を出力するための出力端子として、ＷＯＢ端子１１４をＭＯＤＥ信号を出力するための出力端子として、ＷＩ端子１１５をフラッシュマイコンへ転送する書込みデータ等を入力するための入力端子として、それぞれ設定する。また、ＷＳＣＫ端子１１０、ＷＳＯ端子１１１、ＷＯＡ端子１１２およびＷＯＢ端子１１４の各出力端子は、すべて初期状態として、‘Ｈ’レベルに設定される。
【００５０】
Ｓ４−３において、フラッシュマイコン１２へ転送される書込みデータ等が、ＷＩ端子１１５を介して、外部から入力される。入力された書込みデータ等は、ＳＲＡＭ２３に格納される。なお、Ｓ４−３の処理は、Ｓ４−１やＳ４−２の処理の前に持ってきても構わない。但し、その場合には、ＷＩ端子１１５は、書込みデータ等を入力可能な専用の入力端子であるか、若しくは、フラッシュライタ１１の電源投入後の初期状態としては、ＷＩ端子１１５は、入力端子として設定されている必要がある。
【００５１】
Ａ４−１において、フラッシュライタ１１は、フラッシュマイコン１２に対して、リセットを行うための信号を送信する。詳細には、ＣＰＵ２１は、ポート部２４０およびポート制御部２４１を介して、ＷＯＡ端子１１３の出力を、‘Ｈ’レベル→‘Ｌ’レベルに遷移させ、‘Ｌ’レベルのＲＳＴ信号をフラッシュマイコン１２へ送信する。フラッシュマイコン１２は、ＭＲＳＴ端子１２３から‘Ｌ’レベルのＲＳＴ信号を受信し、内部ブロックのリセット（初期化処理）を行う。
【００５２】
Ａ４−２において、フラッシュライタ１１は、書込み動作モードを設定するための信号（書込み動作モード設定信号）をフラッシュマイコン１２へ送信する。詳細には、ＣＰＵ２１は、ポート部２４０およびポート制御部２４１を介して、ＷＯＢ端子１１４の出力を、‘Ｈ’レベル→‘Ｌ’レベルに遷移させ、‘Ｌ’レベルのＭＯＤＥ信号をフラッシュマイコン１２へ送信する。フラッシュマイコン１２は、ＭＭＯＤＥ端子１２４から‘Ｌ’レベルのＭＯＤＥ信号を受信する。
【００５３】
Ａ４−３において、フラッシュライタ１１は、Ａ４−１でフラッシュマイコン１２に対して実行したリセットを解除するための信号を送信する。詳細には、ＣＰＵ２１は、ポート部２４０およびポート制御部２４１を介して、ＷＯＡ端子１１３の出力を、‘Ｌ’レベル→‘Ｈ’レベルに遷移させ、‘Ｈ’レベルのＲＳＴ信号をフラッシュマイコン１２へ送信する。これにより、フラッシュマイコン１２のリセット状態が解除される。
【００５４】
Ｓ４−４において、フラッシュマイコン１２は、動作モードの選択を行う。詳細には、ＣＰＵ３０は、ＭＲＳＴ端子１２３から入力されるＲＳＴ信号の立ち上がりエッジのタイミング（リセット状態が解除されたとき）において、ＭＭＯＤＥ端子１２４に入力されているＭＯＤＥ信号の論理レベルを確認する。ＭＯＤＥ信号の論理レベルが‘Ｈ’レベルである場合には、通常動作モードが、ＭＯＤＥ信号の論理レベルが‘Ｌ’レベルである場合には、書込み動作モードが、ＣＰＵ３０によって選択される。ここでは、‘Ｌ’レベルのＭＯＤＥ信号が入力されているので、ＣＰＵ３０は、書込み動作モードを選択する。
【００５５】
Ｓ４−５において、フラッシュマイコン１２の動作モードの設定が行われる。詳細には、ＣＰＵ３０がＲＯＭ３２から書込み動作モードに対応したプログラムを読出して実行し、フラッシュマイコン１２が、フラッシュライタ１１からデータ転送を受けてフラッシュメモリ３１への書込み動作が可能な状態へ移行する。書込み動作モードの設定が行われると、その後のフラッシュマイコン１２の動作は、ＲＯＭ３２に格納されたプログラムに基づいて制御される。なお、フラッシュライタ１１の場合と同じように、プログラムの実行においては、ＲＯＭ３２から読出したプログラムを一旦ＳＲＡＭ３３に格納し、ＳＲＡＭ３３からプログラムを読出して実行するようにしてもよい。
【００５６】
Ｓ４−６において、ＣＰＵ３０は、フラッシュマイコン１２の端子の設定を行う。詳細には、ＣＰＵ３０は、ポート部３４０およびポート制御部３４１を介して、ＭＳＣＫ端子１２０をシリアルクロック（ＳＣＫ信号）を入力するための入力端子として、ＭＳＩ端子１２１をシリアルデータであるＷＤＡＴＡ信号を入力するための入力端子として、ＷＳＯ端子１２２をシリアルデータであるＭＤＡＴＡ信号を出力するための出力端子として、それぞれ設定する。また、ＭＳＯ端子１２２の出力端子は、初期状態として、‘Ｈ’レベルに設定される。
【００５７】
フラッシュマイコン１２における書込み動作モードの設定および端子の設定が完了すると、Ａ４−４において、フラッシュマイコン１２は、書込みデータ等の受信準備が完了したことを通知する信号をフラッシュライタ１１へ送信する。詳細には、ＣＰＵ３０が、ポート部３４０およびポート制御部３４１を介して、ＭＳＯ端子１２２の出力を、‘Ｈ’レベル→‘Ｌ’レベルに遷移させ、ＭＤＡＴＡ信号の立ち下がりエッジ信号をフラッシュライタ１１へ送信する。これにより、フラッシュライタ１１は、フラッシュマイコン１２の受信準備が完了していることを認識する。
【００５８】
フラッシュライタ１１は、Ａ４−４におけるＭＤＡＴＡ信号の立ち下がりエッジ信号に応答して、Ａ４−５ａにおいて、シリアルクロックをフラッシュマイコン１２へ送信する。また、フラッシュライタ１１は、当該シリアルクロックに同期して、Ａ４−５ｂにおいて、書込みデータ等をフラッシュマイコン１２へ送信する。詳細には、ＭＤＡＴＡ信号の立ち下がりエッジ信号を検出したＣＰＵ２１は、ＳＲＡＭ２３に格納されている書込みデータ等を読出し、シリアル送受信制御部２４２に対しシリアル送信するように命令する。シリアル送受信制御部２４２は、シリアルクロック生成部２４３に対し、シリアルクロックを生成するように制御信号を出力する。シリアルクロック生成部２４３で生成されたシリアルクロックは、シリアル送受信制御部２４２とポート部２４０へ出力される。シリアル送受信制御部は、シリアルクロックに同期して、書込みデータ等のパラレルーシリアル変換を行いポート部２４０へ出力する。ポート部２４０は、入力されたシリアルクロックとシリアルの書込みデータ等を、ＷＳＣＫ端子１１０およびＷＳＯ端子１１１を介して、ＳＣＫ信号およびＷＤＡＴＡ信号としてフラッシュマイコン１２へ送信する。
【００５９】
Ｓ４−７において、フラッシュマイコン１２は、書込みデータ等の受信処理を行う。詳細には、ＭＳＩ端子１２１から入力される書込みデータ等は、ポート部３４０を介して、シリアル送受信制御部３４２に入力される。シリアル送受信制御部３４２は、シリアルの書込みデータ等に対してシリアル−パラレル変換を行い、パラレルの書込みデータ等を生成し、ＳＲＡＭ３３へ出力する。ＳＲＡＭ３３に格納された書込みデータ等は、ＣＰＵ３０によって読出され、読出された書込みデータ等に含まれるチェックサムデータから、当該データ転送が正常に行われたかどうかの確認を行う。また、それとともに、受信した書込みデータ等の種類を判別する。すなわち、フラッシュライタ１１から送信される書込みデータ等には、フラッシュメモリ３１に実際に書込まれる書込みデータそのものの他に、メモリセルアレイ３１１のどの番地にデータを書込むのかを指定するアドレスデータや、各種コマンド（例えば、消去コマンドや書込みコマンド）が含まれるため、ＣＰＵ３０は、受信した書込みデータ等の内容を把握する。
【００６０】
Ｓ４−８において、ファームウェア処理、すなわち、書込み等に関する処理が行われる。詳細には、ＣＰＵ３０は、ＲＯＭ３２からフラッシュメモリ３１のアクセスを制御するためのファームウェアを読出して実行する。その後の書込み処理は、このファームウェアによって制御される。ＣＰＵ３０は、ＳＲＡＭ３３から書込みデータ等を読出し、フラッシュメモリ制御部３１０へ出力する。フラッシュメモリ制御部３１０は、メモリセルアレイ３１１の所定の番地に、書込みデータを書込む。データの書込みが終了した後には、ベリファイ処理が行われ、書込んだデータと期待値との比較が行われる。
【００６１】
Ｓ４−９において、フラッシュマイコン１２は、Ｓ４−７およびＳ４−８の各処理が正常に行われ、フラッシュライタ１１から送信された書込みデータのフラッシュメモリ３１への書込み処理が正常に完了できたかどうかの書込み処理結果の判定を行う。Ｓ４−７のステップにおいて、チェックサムのエラーが検出されず、かつ、Ｓ４−８のステップにおいて、ベリファイ処理の結果が一致となった場合には、フラッシュメモリ３１への書込みが正常に行われたと判断する。
【００６２】
Ａ４−６において、フラッシュマイコン１２は、Ｓ４−９の結果をフラッシュライタ１１へ送信する準備ができたことを、送信準備完了通知をもって、フラッシュライタ１１へ知らせる。詳細には、ＣＰＵ３０は、ポート部３４０およびポート制御部３４１を介して、ＭＳＯ端子１２２の出力を、‘Ｌ’レベル→‘Ｈ’レベルに遷移させ、ＭＤＡＴＡ信号の立ち上がりエッジ信号をフラッシュライタ１１へ送信する。これにより、フラッシュライタ１１は、フラッシュマイコン１２の送信準備が完了しており、シリアルクロックの送信が要求されていることを認識する。
【００６３】
フラッシュライタ１１は、Ａ４−６におけるＭＤＡＴＡ信号の立ち上がりエッジ信号に応答して、Ａ４−７ａにおいて、シリアルクロックをフラッシュマイコン１２へ送信する。また、フラッシュマイコン１２は、受信したシリアルクロックに同期して、Ａ４−７ｂにおいて、応答データをフラッシュライタ１１へ送信する。詳細には、ＭＤＡＴＡ信号の立ち上がりエッジを検出したＣＰＵ２１は、シリアル送受信制御部２４２に対しシリアルクロックを送信するように命令する。シリアル送受信制御部２４２は、シリアルクロック生成部２４３に対し、シリアルクロックを生成するように制御信号を出力する。シリアルクロック生成部２４３で生成されたシリアルクロックは、ポート部２４０へ出力される。ポート部２４０は、入力されたシリアルクロックを、ＷＳＣＫ端子１１０を介して、フラッシュマイコン１２へ送信する。ＭＳＣＫ端子１２０から入力されたシリアルクロックは、ポート部３４０を介して、シリアル送受信部制御部３４２に入力される。シリアル送受信制御部は、ＣＰＵ３０から出力された応答データ（Ｓ４−９の結果）のパラレル−シリアル変換を行い、シリアルの応答データとして、ポート部３４０へ出力する。ポート部３４０に入力されたシリアルの応答データは、ＭＳＯ端子１２２を介して、ＭＤＡＴＡ信号として、フラッシュライタ１１へ送信される。ＷＳＩ端子１１２から入力されたシリアルの応答データは、ポート部２４０を介して、シリアル送受信制御部２４２に入力される。シリアル送受信制御部２４２は、シリアルの応答データをシリアルクロック生成部２４３から入力されるシリアルクロックに同期して取得するとともに、シリアルーパラレル変換を行い、パラレルの応答データを生成して、ＣＰＵ２１へ出力する。これにより、ＣＰＵ２１は、応答データを確認することによって、Ａ４−５ｂにおいて送信した書込みデータの書込み処理が正常に行われたかどうかを把握することができる。応答データの結果が、正常な書込み処理の完了を示すものであった場合には、次の書込みデータに関連する処理に移行する。一方、応答データがエラーを示すものであった場合には、書込みデータ等の再送信等のエラー処理を実行する。
【００６４】
次に、図５〜７のタイミングチャートを用いて、フラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングについて説明する。なお、図５〜７においては、フラッシュライタ１１とフラッシュマイコン１２との間で送受信されるデータの大きさを８ｂｉｔとして説明するが、これに限定されることはない。
【００６５】
図５は、本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（正常な書込みが行われた場合）を示したものである。図５では、フラッシュライタ１１からフラッシュマイコン１２へ送信される書込みデータ等を、「０１１０００１０」とし、フラッシュマイコン１２からフラッシュライタ１１へ送信される正常な書込みが行われたことを示す応答データを、「００１１１１００」とする。
【００６６】
ｔ０〜ｔ３の期間は、フラッシュマイコン１２の動作モードを設定する期間である。ｔ０において、ＲＳＴ信号が‘Ｈ’レベル→‘Ｌ’レベルに遷移し、フラッシュマイコン１２にリセットがかかる。ＲＳＴ信号が‘Ｌ’レベルであるｔ０〜ｔ２の間は、フラッシュマイコン１２のリセット状態がつづく。ｔ１において、フラッシュマイコン１２に対し、書込み動作モードが設定されるように、フラッシュライタ１１がＭＯＤＥ信号を‘Ｈ’レベル→‘Ｌ’レベルに遷移させる。ｔ２において、ＲＳＴ信号が‘Ｌ’レベル→‘Ｈ’レベルに遷移し、フラッシュマイコン１２のリセット状態が解除されるとともに、フラッシュマイコン１２は、ＭＯＤＥ信号の‘Ｌ’レベルに基づいて書込み動作モードへ移行する。
【００６７】
ｔ３〜ｔ４の期間は、フラッシュライタ１１とフラッシュマイコン１２との間で、書込みデータ等の転送を開始するためのハンドシェーク（ＨＳ）通信処理が行われる期間である。ｔ３において、フラッシュマイコン１２は、書込みデータ等の受信が可能な状態にあることをフラッシュライタ１１に伝えるために、ＭＤＡＴＡ信号を‘Ｈ’レベル→‘Ｌ’レベルに遷移させて立ち下がりエッジ信号を生成し、フラッシュライタ１１に送信する。フラッシュライタ１１は、立ち下がりエッジ信号を受信し、すでにフラッシュマイコン１２が、受信可能な状態にあることを知る。フラッシュライタ１１は、ＭＤＡＴＡ信号の立ち下がりエッジ信号に応答して、ｔ４において、ＳＣＫ信号としてシリアルクロックを送信するとともに、ＷＤＡＴＡ信号として書込みデータ等のシリアル送信を開始する。
【００６８】
ｔ４〜ｔ５の期間は、フラッシュライタ１１からフラッシュマイコン１２へ書込みデータ等が送受信される期間である。ＷＤＡＴＡ信号は、フラッシュライタ１１からＳＣＫ信号の立ち下がりエッジに同期して送信され、フラッシュマイコン１２ではＳＣＫ信号の立ち上がりエッジでＷＤＡＴＡ信号を受信する。この期間において、「０１１０００１０」の８ｂｉｔのシリアルデータの送受信が行われる。なお、フラッシュライタ１１は、書込みデータ等の送信後のＷＤＡＴＡ信号を、ｔ５において、‘Ｈ’レベルに設定する。
【００６９】
ｔ５〜ｔ６の期間は、フラッシュマイコン１２が、受信した書込みデータ等の通信エラーの有無の確認、受信した書込みデータ等の内容の確認、フラッシュメモリ３１への書込み処理、書込んだデータのベリファイ処理、一連の書込みに関する処理が正常に行われたかどうかの判断が行われる期間である。これらのすべては、フラッシュマイコン１２の内部で行われるものであるため、この期間におけるフラッシュライタ１１とフラッシュマイコン１２との間のデータ通信は行われない。
【００７０】
ｔ６〜ｔ７の期間は、フラッシュライタ１１とフラッシュマイコン１２との間で、一連の書込みに関する処理が正常に行われたかどうかを示す応答データの転送を開始するためのハンドシェーク（ＨＳ）通信処理が行われる期間である。ｔ６において、フラッシュマイコン１２は、応答データの送信が可能な状態にあることをフラッシュライタ１１に伝えるために、ＭＤＡＴＡ信号を‘Ｌ’レベル→‘Ｈ’レベルに遷移させて立ち上がりエッジ信号を生成し、フラッシュライタ１１に送信する。フラッシュライタ１１は、立ち上がりエッジ信号を受信し、すでにフラッシュマイコン１２が、送信可能な状態にあることを知る。フラッシュライタ１１は、ＭＤＡＴＡ信号の立ち上がりエッジ信号に応答して、ｔ７において、ＳＣＫ信号としてシリアルクロックを開始する。また、フラッシュマイコン１２は、このシリアルクロックに同期して、フラッシュライタ１１へ応答データの送信を開始する。
【００７１】
ｔ７〜ｔ８の期間は、フラッシュマイコン１２からフラッシュライタ１１へ応答データが送受信される期間である。ＭＤＡＴＡ信号は、フラッシュマイコン１２からＳＣＫ信号の立ち下がりエッジに同期して送信され、フラッシュライタ１１ではＳＣＫ信号の立ち上がりエッジでＷＤＡＴＡ信号を受信する。この期間において、「００１１１１００」の８ｂｉｔのシリアルデータの送受信が行われる。なお、フラッシュマイコン１２は、応答データの送信後のＭＤＡＴＡ信号を、ｔ８において、‘Ｈ’レベルに設定する。
【００７２】
図５においては、ｔ７〜ｔ８における応答データは、正常な書込みが行われたことを示すものであるため、ｔ８以降の期間は、次のデータの書込み処理へ移行する。
【００７３】
図６は、本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（正常な書込みが行われなかった場合）を示したものである。図６では、フラッシュライタ１１からフラッシュマイコン１２へ送信される書込みデータ等を、「０１１０００１１」とし、フラッシュマイコン１２からフラッシュライタ１１へ送信される正常な書込みが行われなかったことを示す応答データを、「１１００００１１」とする。
【００７４】
図５の場合との相違点は、書込みデータ等や応答データが異なるだけであるため、基本的に図６の信号変化のタイミングは、図５の場合と同じである。但し、図６での応答データは、正常な書込みが行われなかったことを示すものであるため、ｔ８以降の処理は、エラー処理となる。エラー処理の具体的な内容としては、再度、同じ書込みデータ等をフラッシュマイコン１２へ転送して再書込み処理をする場合や、書込み処理を諦めて不図示の出力端子によりフラッシュライタ１１がユーザに対して、警告信号を発する処理を行う場合が考えられる。
【００７５】
また、正常な書込みが行われなかったことを示す応答データは、その原因ごとに異なる応答データを用意し、フラッシュライタ１１へ送信するようにしてもよい。例えば、フラッシュライタ１１からフラッシュマイコン１２への書込みデータ等の送受信自体がうまくいかなかったために書込み処理がエラーとなってしまった場合には、応答データ＝「１１１０００１１」とし、フラッシュライタ１１からフラッシュマイコン１２への書込みデータ等の送受信はうまくいったが、フラッシュメモリ３１への書込みの際にエラーが起こった（ベリファイエラー）場合には、応答データ＝「１１００００１１」というように、異なるものを適用してもよい。
【００７６】
さらに、応答データにも、チェックサム等の通信エラーを確認する手段を含めてもよい。これにより、応答データに通信エラーが生じた場合には、フラッシュライタ１１は、再度フラッシュマイコン１２に対して、応答データを送信するように要求することができる。
【００７７】
なお、図６では、図５とは異なり、フラッシュライタ１１またはフラッシュマイコン１２から送信される最後のシリアルデータの論理が、双方とも「１」（‘Ｈ’レベル）であるため、図５のｔ５またはｔ８での‘Ｌ’レベル→‘Ｈ’レベルの遷移に相当する処理は、不要となる。また、図５のｔ５におけるＷＤＡＴＡ信号の‘Ｌ’レベル→‘Ｈ’レベルの遷移は、必ずしも必要な処理ではない。しかし、図５のｔ８におけるＭＤＡＴＡ信号の‘Ｌ’レベル→‘Ｈ’レベルの遷移は、ＭＤＡＴＡ信号自体がハンドシェーク処理に使用されるため、必要な処理である。
【００７８】
図７は、本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（連続して書込みデータ等を送信する場合）を示したものである。図７に示す通り、フラッシュライタ１１からフラッシュマイコン１２へ２種類の書込みデータ等（「０１１０００１０」、「１１１１００００」）を連続して送信している。また、フラッシュマイコン１２は、ｔ５〜ｔ６の間には、書込みに関連する処理は行わずに、受信した書込みデータ等をＳＲＡＭ３３に格納する処理等だけを行っている。
【００７９】
前述の通り、フラッシュライタ１１からフラッシュマイコン１２へ書込みデータ等を送信する場合には、ＭＤＡＴＡ信号の立ち下がりエッジ信号をハンドシェーク用の信号として使用し、一方、フラッシュマイコン１２からフラッシュライタ１１へ応答データを送信する場合には、ＭＤＡＴＡ信号の立ち上がりエッジ信号をハンドシェーク用の信号として使用する。つまり、図７の例においては、１回目の「０１１０００１０」の書込みデータ等の送信後、ＭＤＡＴＡ信号が‘Ｌ’レベルのままでは、２回目の「１１１１００００」の書込みデータ等を送信するために必要なＭＤＡＴＡ信号の立ち下がりエッジ信号を作り出せない。そこで、図７のｔ６において、一旦ＭＤＡＴＡ信号を‘Ｌ’レベル→‘Ｈ’レベルに遷移させた後、再びｔ７において、‘Ｈ’レベル→‘Ｌ’レベルに遷移させている。なお、図５の場合も同様の理由により、図５のｔ８においてＭＤＡＴＡ信号を‘Ｌ’レベル→‘Ｈ’レベルに遷移させておかないと、ｔ８以降に行われる次データの送受信処理に行われるハンドシェーク用の信号を生成することができない。但し、‘Ｌ’レベル→‘Ｈ’レベルに遷移されるタイミングは、ｔ８でなくても構わず、次データの書込み処理に影響がないタイミングであれば、どのタイミングで行っても構わない。
【００８０】
このように、本発明の実施の形態では、フラッシュライタ１１からフラッシュマイコン１２へ書込みデータ等を転送する場合には、ＭＤＡＴＡ信号の立ち下がりエッジ信号をハンドシェーク用の信号として使用し、一方、フラッシュマイコン１２からフラッシュライタ１１へ応答データを転送する場合には、ＭＤＡＴＡ信号の立ち上がりエッジ信号をハンドシェーク用の信号として使用する。すなわち、フラッシュライタ１１からの信号を受けて、フラッシュマイコン１２が書込み動作モードに移行した後のフラッシュライタ１１とフラッシュマイコン１２との間のデータの送受信においては、ＭＤＡＴＡ信号が送信されるＭＤＡＴＡ線の１本の信号線のみを利用して、ハンドシェーク通信を実現する。このようなハンドシェーク通信による不揮発性メモリ内蔵マイコンへの書込み処理方式は、従来の方式と比較してより簡便な方式であるため、本発明のハンドシェーク通信の制御（処理）が容易となる。これによって、不揮発性メモリ内蔵マイコンへの書込み処理時間の高速化が、可能となる。
【００８１】
以上の通り、本発明の実施の形態に基づいて詳細に説明したが、本発明は、本発明の主旨を変更しない限り、種々の変形が可能である。例えば、各信号の論理レベルを逆にしても構わない。すなわち、図５において、ｔ０におけるＷＤＡＴＡ信号およびＭＤＡＴＡ信号の初期値を‘Ｌ’レベルとし、ｔ３のＭＤＡＴＡ信号のハンドシェーク用のエッジ信号を立ち上がりエッジ信号に、ｔ８のＭＤＡＴＡ信号のハンドシェーク用のエッジ信号を立ち下がりエッジ信号に、それぞれ変更しても構わない。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態に係るデータ書込みシステム１０のブロック図である。
【図２】本発明の実施の形態に係るフラッシュライタ１１のブロック図である。
【図３】本発明の実施の形態に係るフラッシュマイコン１２のブロック図である。
【図４】本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２の動作を示す動作フローである。
【図５】本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（正常な書込みが行われた場合）である。
【図６】本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（正常な書込みが行われなかった場合）である。
【図７】本発明の実施の形態に係るフラッシュライタ１１とフラッシュマイコン１２との間で送受信される信号のタイミングチャート（連続して書込みデータ等を送信する場合）である。
【図８】従来のフラッシュ書込み装置８０のブロック図である。
【図９】従来のスレーブ装置９０とマスタ装置９１との接続関係を示す図である。
【図１０】従来のスレーブ装置９０からマスタ装置９１へデータを送信する場合のタイミングチャートである。
【図１１】従来のマスタ装置９１からスレーブ装置９０へデータを送信する場合のタイミングチャートである。
【符号の説明】
【００８３】
１０            データ書込み装置
１１、８１        フラッシュライタ
１１０            ＷＳＣＫ端子
１１１            ＷＳＯ端子
１１２            ＷＳＩ端子
１１３            ＷＯＡ端子
１１４            ＷＯＢ端子
１１５            ＷＩ端子
１２、８２        フラッシュマイコン
１２０            ＭＳＣＫ端子
１２１            ＭＳＩ端子
１２２            ＭＳＯ端子
１２３            ＭＲＳＴ端子
１２４            ＭＭＯＤＥ端子
２０            フラッシュライタ制御用マイコン
２１、３０        ＣＰＵ
２２、３２        ＲＯＭ
２３、３３        ＳＲＡＭ
２４、３４        Ｉ／Ｆ部
２４０、３４０、８４    ポート部
２４１、３４１、８８    ポート制御部
２４２、３４２、８７    シリアル送受信制御部
２４３            シリアルクロック生成部
２５、３５        バス
３１            フラッシュメモリ
３１０、８９        フラッシュメモリ制御部
３１１            メモリセルアレイ
８０            フラッシュ書込み装置
８３            シリアル送受信部
８５            フラッシュメモリ部
８６            制御部
９０            スレーブ装置
９１            マスタ装置
【図１】
2008090408.tif 000003
【図２】
2008090408.tif 000004
【図３】
2008090408.tif 000005
【図４】
2008090408.tif 000006
【図５】
2008090408.tif 000007
【図６】
2008090408.tif 000008
【図７】
2008090408.tif 000009
【図８】
2008090408.tif 000010
【図９】
2008090408.tif 000011
【図１０】
2008090408.tif 000012
【図１１】
2008090408.tif 000013