(57)【要約】    【課題】  自動車用電子制御装置のフラッシュメモリにおいて、メモリ容量の使用効率を高める。    【解決手段】  データを記憶させるエリアを全て初期化しておき、最小書き込みサイズ毎に書き込みを行なわせると共に、前記最小書き込みサイズから書き込みデータのサイズを除いた残りに、全て初期値を書き込む。そして、データ書き込みの先頭アドレスを、書き込みデータのサイズ分だけ前回からずらして次回の書き込みを行なわせる。【選択図】  図４
2005346635.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置であって、
前記不揮発性メモリにデータを書き込むときに、書き込み先頭アドレスを、最小書き込みサイズ以下のサイズ分ずらす手段を備えたことを特徴とする自動車用電子制御装置。
【請求項２】
前記書き込み先頭アドレスの最終値を別個に保存することで、次回の書き込み先頭アドレスを規定することを特徴とする請求項１記載の自動車用電子制御装置。
【請求項３】
前記書き込み先頭アドレスをずらすサイズを固定し、書き込み回数を別個に保存することで、次回の書き込み先頭アドレスを規定することを特徴とする請求項１記載の自動車用電子制御装置。
【請求項４】
書き込みデータにインデックスデータを付し、該インデックスデータにより次回の書き込み先頭アドレスを規定することを特徴とする請求項１記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関し、詳しくは、電気的にデータの消去及び書き込みが可能な不揮発性メモリのデータ書き込み技術に関する。
【背景技術】
【０００２】
特許文献１には、電気的にデータの消去及び書き込みが可能な不揮発性メモリであるフラッシュメモリを備えた自動車用電子制御装置が開示されている。
前記フラッシュメモリは、メモリセルのブロック単位でブロック毎にデータ消去・書き込みができるようにされ、複数ブロックが、フラッシュ書込プログラム領域，エンジン制御プログラム領域，データ領域として設定される。
【０００３】
そして、書込モードにおいては、まず、前記データ領域を消去した後、当該データ領域にフラッシュ書込用データを書き込むようにしていた。
【特許文献１】特開２０００−２５７５０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記構成では、書き込みデータサイズが最小書き込みサイズで収まるデータのエリアにも、消去ブロックサイズが割り付けられ、メモリ容量の使用効率が悪いという問題があった。
本発明は上記問題点に鑑みなされたものであり、電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置において、メモリ容量を効率良く使用して最小書き込みサイズで収まるデータの書き込みが行なえるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
そのため請求項１記載の発明では、不揮発性メモリにデータを書き込むときに、書き込み先頭アドレスを、最小書き込みサイズ以下のサイズ分ずらす手段を備える構成とした。
かかる構成によると、書き込み先頭アドレスが最小書き込みサイズ以下のサイズ分ずらすことが可能であるから、最小書き込みサイズよりも小さいサイズのデータを書き込むときに、前回の書き込みにおける余白部分にデータを上書きすることになり、データを順次詰めて書き込むことができる。
【０００６】
従って、不揮発性メモリにおけるメモリ容量の使用効率が向上する。
請求項２記載の発明では、前記書き込み先頭アドレスの最終値を別個に保存することで、次回の書き込み先頭アドレスを規定する構成とした。
かかる構成によると、前回書き込みを行なったときの書き込み先頭アドレスが保存されているから、前回の書き込み先頭アドレスとデータサイズとから、書き込み済みのデータの末尾アドレス、即ち、次回の書き込み先頭アドレスを容易に規定できる。
【０００７】
請求項３記載の発明では、前記書き込み先頭アドレスをずらすサイズを固定し、書き込み回数を別個に保存することで、次回の書き込み先頭アドレスを規定する構成とした。
かかる構成によると、先頭アドレスをずらすサイズが固定されるから、書き込み回数が分かれば、前回の書き込み先頭アドレスが分かり、この前回の書き込み先頭アドレスから固定のサイズだけずれた位置が今回の書き込み先頭アドレスとして規定される。
【０００８】
請求項４記載の発明では、書き込みデータにインデックスデータを付し、該インデックスデータにより次回の書き込み先頭アドレスを規定する構成とした。
かかる構成によると、インデックスデータを付した書き込みデータが書き込まれるから、インデックスデータの配置上に書き込まれたインデックスデータに基づき、次回の書き込み先頭アドレスを規定できる。
【発明を実施するための最良の形態】
【０００９】
以下に本発明の実施の形態を説明する。
図１は、実施の形態における自動車用電子制御装置としてのエンジンコントロールユニット（以下、ＥＣＵと略す。）１の構成を示す。
ＥＣＵ１は、車両用エンジンにおける燃料供給量や点火時期を制御するためのものであり、ＲＡＭ３及び電気的にデータの消去及び書き込みが可能な不揮発性メモリであるフラッシュメモリ２、ＲＡＭ３、及び、マイクロコンピュータ４を含んで構成される。
【００１０】
前記マイクロコンピュータ４は、ＣＰＵ，内蔵ＲＡＭ，タイマ，Ａ／Ｄコンバータ，ＳＣＩ等を備えて構成され、ＲＡＭ３やフラッシュメモリ２に格納された各種のプログラムを実行する。
前記フラッシュメモリ４の記憶領域は、ブロックＡとブロックＢとに区分される。
前記ブロックＡは、書き込みデータ格納領域である。
【００１１】
一方、ブロックＢには、フラッシュ書き込みプログラム及びアプリケーションプログラムが格納され、更に、定数データ格納領域が設けられる。
前記フラッシュ書き込みプログラムは、前記書き込みデータ格納領域におけるデータの消去・書き込みを制御するプログラムである。
前記アプリケーションプログラムは、車両に搭載されるエンジンを制御するためのプログラムであり、車両用エンジンに備えられた各種センサからの検出信号を入力して演算処理し、燃料噴射制御信号や点火制御信号などを出力する機能を備える。
【００１２】
前記定数データ格納領域には、エンジン制御等に必要な定数データを格納する。
一方、外部ツールとしてのフラッシュ書き込みツール５は、前記ＥＣＵ１と通信回線６を介して接続され、内部に保存されるフラッシュメモリ書き込みデータを、ＥＣＵ１に送信して、フラッシュメモリ２に対するデータの書き込みが行なわれる。
図２のフローチャートは、フラッシュメモリ書き込みデータの書き込み処理を示すものであり、まず、ステップＳ１００では、通常のアプリケーションを実行してエンジンを制御し、ステップＳ１１０でイグニションスイッチ（ＩＧＳＷ）がＯＦＦされたか否かを判別する。
【００１３】
そして、イグニションスイッチ（ＩＧＳＷ）がＯＦＦされると、ステップＳ１２０へ進み、フラッシュメモリの書換え要求が発生しているか否かを判別する。
ここで、書換え要求が発生している場合に、ステップＳ１３０へ進み、書き込みデータをバッファに格納した後、ステップＳ１４０へ進んで、書き込み制御プログラムを実行する。
【００１４】
前記書き込み制御プログラムの処理内容は、図３のフローチャートに示してある。
まず、ステップＳ２００では、書き込みアドレスを設定し、次のステップＳ２１０では、書き込みエリアの値が全てＦＦｈ（消去状態）であるか否かを判別する。
書き込みエリアの値が全てＦＦｈであれば、ステップＳ２２０に進み、フラッシュメモリ２に対する書き込み処理を実行する。
【００１５】
ステップＳ２３０では、データの書き込みが終了したか否かを判別し、書き込みが終了するまで、ステップＳ２００〜ステップＳ２２０の処理を繰り返す。
ここで、前記書き込み処理の詳細を、図４に従って説明する。
図４に示す書き込み処理は、１バイト毎のデータ書き込みであって、最小書き込みサイズを１２８バイトとする例である。
【００１６】
まず、フラッシュメモリ２のデータ格納領域の値を全てＦＦｈ（初期値）として初期化しておく（図４（Ａ）参照）。
そして、１回目のデータ書き込みにおいては、先頭の１バイトに必要なデータを書き込み、残りの１２７バイトにはＦＦｈを書き込む（図４（Ｂ）参照）。
続いて、２回目のデータ書き込みにおいては、書き込み先頭アドレスを前回に対して１バイトだけインクリメントし、１回目と同様に、先頭の１バイトに必要なデータを書き込み、残りの１２７バイトにはＦＦｈ（初期値）を書き込む（図４（Ｃ）参照）。
【００１７】
従って、１回目にＦＦｈが書き込まれた１２７バイトは、２回目に上書きされることになる。
上記のように、最小書き込みサイズよりも小さい１バイトのデータ分だけ書き込み先頭アドレスを順次ずらし、１２８バイトのうちの先頭の１バイトのみに必要なデータを設定し、残りの１２７バイトを全てＦＦｈとすることで、最小書き込みサイズ単位の書き込み動作を行なわせつつ、最小書き込みサイズよりも小さいサイズのデータを詰めて書き込むことができる。
【００１８】
従って、フラッシュメモリの容量を効率良く使用することができる。
尚、書き込むデータのサイズがｎバイト（＜１２８バイト）であれば、書き込み先頭アドレスをｎバイトずらし、１２８バイトの先頭側のｎバイトに必要なデータを設定し、１２８−ｎバイトである残りバイトにＦＦｈを設定すれば良く、データサイズを１バイトに限定するものではない。
【００１９】
また、前回データ書き込みを行なったときの先頭アドレス（書き込み先頭アドレスの最終値）を別個にＲＡＭ等に保存しておけば、次回の書き込みにおける先頭アドレスは、前回先頭アドレス＋ずれ代（データサイズ）として容易に規定することができる。
更に、上記のようにデータサイズが固定であれば、書き込み回数を別個にＲＡＭ等に保存しておけば、書き込み回数×ずれ代（データサイズ）に基づいて、次回の書き込みにおける先頭アドレスを容易に規定することができる。
【００２０】
また、書き込みデータのサイズが可変であっても良い。
図５は、前記書き込み処理の別の例を示す。
図５に示す例では、記憶するデータのサイズが１５バイトで、最小書き込みサイズが１２８バイト、更に、記憶データに付するインデックスデータの配置を、アドレス＝１６＊Ｎとする。
【００２１】
まず、フラッシュメモリ２のデータ格納領域の値を全てＦＦｈとして初期化しておく（図５（Ａ）参照）。
そして、１回目のデータ書き込みにおいては、０バイト位置にインデックスデータ（０１ｈ）、１〜１５バイトに記憶データ、１６〜１２７バイトに全てＦＦｈを書き込む（図５（Ｂ）参照）。
【００２２】
２回目のデータ書き込みにおいては、１回目に書き込まれた記憶データに続く１６バイトの位置に、１回目のインデックスデータを１だけインクリメントしたインデックスデータ（０２ｈ）を書き込み、続く１７〜３１バイトに記憶データを、３２〜１４３バイトに全てＦＦｈを書き込む（図５（Ｃ）参照）。
３回目以降のデータ書き込みにおいても、前回の書き込み先頭アドレスから１６バイト（インデックスデータ＋記憶データ分）だけずらした位置を先頭アドレスとして、１バイトのインデックスデータ、１５バイトの記憶データ、残り１２２バイトのＦＦｈからなる、最小書き込みサイズの書き込みを行なう。
【００２３】
この場合も、インデックスデータ＋記憶データを詰めて書き込むことができ、フラッシュメモリの容量を効率良く使用することができる。
ここで、最新の書き込みデータを参照する場合には、１６＊Ｎのアドレス位置、即ち、インデックスデータの格納アドレス位置が、初めてＦＦｈとなるアドレス位置を探し、前記ＦＦｈとなるアドレスから１０ｈを減算した値が、最新にデータ書き込みが行なわれた先頭アドレスとなり、前記初めてＦＦｈとなるアドレス位置が次回の書き込み先頭アドレスとなる（図５（Ｄ）参照）。
【００２４】
ここで、上記実施形態から把握し得る請求項以外の技術思想について、以下にその効果と共に記載する。
（イ）電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置であって、
データを記憶させるエリアを全て初期化しておき、前記最小書き込みサイズでデータの書き込みを行なわせると共に、前記最小書き込みサイズから記憶データのサイズ又は記憶データにインデックスデータを加算したサイズを除いた残りに、全て初期値を書き込むことを特徴とする自動車用電子制御装置。
【００２５】
かかる構成によると、データの記憶エリアを予め初期化しておくことで、１回目のデータ書き込みが行なえ、更に、データを書き込むときの最小書き込みサイズの残り部分に初期値を書き込むことで、次回の書き込みにおいて、前回初期値を書き込んだ位置に上書きすることができ、最小書き込みサイズ単位の書き込みを行なわせつつ、最小書き込みサイズよりも小さいデータを詰めて書き込むことが可能となる。
（ロ）（イ）記載の自動車用電子制御装置において、
データ書き込みの先頭アドレスを、データのサイズ分だけ前回からずらして次回の書き込みを行なわせることを特徴とする自動車用電子制御装置。
【００２６】
かかる構成によると、前回書き込まれたデータの次から別のデータを書き込むことができ、データを余白なしに詰めて記憶することができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態における自動車用電子制御装置の構成図。
【図２】実施形態におけるフラッシュメモリへの書き込み処理のメインルーチンを示すフローチャート。
【図３】実施形態におけるフラッシュメモリへの書き込み処理のサブルーチンを示すフローチャート。
【図４】実施形態におけるフラッシュメモリへの書き込み処理の第１実施形態を示す図。
【図５】実施形態におけるフラッシュメモリへの書き込み処理の第２実施形態を示す図。
【符号の説明】
【００２８】
１…エンジンコントロールユニット（ＥＣＵ）、２…フラッシュメモリ、３…ＲＡＭ、４…マイクロコンピュータ、５…フラッシュ書き込みツール、６…通信回線
【図１】
2005346635.tif 000003
【図２】
2005346635.tif 000004
【図３】
2005346635.tif 000005
【図４】
2005346635.tif 000006
【図５】
2005346635.tif 000007