(57)【特許請求の範囲】
【請求項１】
フラッシュメモリを備えた制御装置において、
前記フラッシュメモリは、
制御データを書き込む複数の記憶ブロックと、
前記複数の記憶ブロックによって形成する単位セグメントと、によって構成し、
所定読み出し条件が成立した場合に、前記記憶ブロックに記憶する前記制御データが読み出され、
所定書き込み条件が成立した場合に、前記記憶ブロックに前記制御データを書き込まれるフラッシュメモリであって、
前記制御データの更新頻度に応じて形成し、少なくとも１つの前記記憶ブロックを有する複数の領域を備え、
前記更新頻度の高い前記制御データを記憶する前記領域は、前記更新頻度の低い制御データを記憶する前記領域よりも多くの記憶ブロックを有し、
前記記憶ブロックは、
前記領域に書き込まれた回数を記憶するカウント記憶部と、
前記制御データを記憶するデータ記憶部とを備え、
前記制御装置は、
前記データ記憶部から読み出した前記制御データを記憶し、前記制御データを更新可能なデータ更新部と、
前記カウント記憶部から読み出した前記領域への書き込み回数を記憶し、前記制御データが更新され、かつ更新した前記制御データを前記領域に書き込む場合に、記憶した書き込み回数を増加させるカウント部と、を備え、
前記制御データを前記データ記憶部から読み出す場合には、前記カウント記憶部の書き込み回数から、前記制御データを読み出す前記記憶ブロックを設定し、
前記制御データを前記データ記憶部へ書き込む場合には、前記カウント部の書き込み回数から、前記制御データを記憶させる前記記憶ブロックを設定することを特徴とするフラッシュメモリを備えた制御装置。
【請求項２】
前記制御データは、車両の走行に関する走行データであることを特徴とする請求項１に記載のフラッシュメモリを備えた制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリを備えた制御装置に関するものである。
【背景技術】
【０００２】
制御データを書き換え頻度の高いデータと書き換え頻度の低いデータとに分類し、別のセクタに書き込む技術としては、特許文献１に開示されている。
【特許文献１】特開２００２−００７２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記の発明では、フラッシュメモリがセクタＡからセクタＨまで８分割されており、セクタＡ〜Ｆがプログラム領域、セクタＧが書き換え頻度の少ない工程調整データ領域、セクタＨが書き換え頻度の多いユーザー調整データ領域として割り当てられている。セクタＨは記憶ブロック０から９まで１０等分されており、各記憶ブロックには書き込み判別領域が設けられている。データ書き込みについて、ユーザー調整間に調整データの変更がなければデータの書き込みは行わず、調整データの変更があった場合には、セクタＨ内の記憶ブロック０から順に書き込み、書き込みと同時に書き込み判別領域が未書き込み状態を示すＦＦｈから書き込み済みを示す００ｈへと変更する。調整データ書き込みの際に記憶ブロック０から９まで全て書き込み済み（００ｈ）の場合は、セクタＨを一括消去して、記憶ブロック０から順に書き込む。
【０００４】
しかし、上記の発明では、書き換え頻度の少ない工程調整データ領域のセクタＧと書き換え頻度の多いユーザー調整データ領域のセクタＨとが、同じ容量である。従って、書き換え頻度の少ないセクタＧは書き換え頻度の多いセクタＨに比べ、書き込み回数が少なく、セクタＨの書き換え回数が更新保証回数に達しフラッシュメモリを取り替える必要があるとき、セクタＧの書き換え回数は更新保証回数となるまでには十分余裕があり、まだ書き込み可能である。つまりセクタＧ領域を有効に活用できないといった問題点がある。
【０００５】
本発明ではこのような問題点を解決するために発明されたもので、フラッシュメモリを有効に利用することを目的とする。
【課題を解決するための手段】
【０００６】
本発明では、フラッシュメモリを備えた制御装置において、フラッシュメモリは、制御データを書き込む複数の記憶ブロックと、複数の記憶ブロックによって形成する単位セグメントと、によって構成し、所定読み出し条件が成立した場合に、記憶ブロックに記憶する制御データが読み出され、所定書き込み条件が成立した場合に、記憶ブロックに制御データを書き込まれるフラッシュメモリであって、制御データの更新頻度に応じて形成し、少なくとも１つの記憶ブロックを有する複数の領域を備え、更新頻度の高い制御データを記憶する領域は、更新頻度の低い制御データを記憶する領域よりも多くの記憶ブロックを有し、記憶ブロックは、領域に書き込まれた回数を記憶するカウント記憶部と、制御データを記憶するデータ記憶部とを備え、制御装置は、データ記憶部から読み出した制御データを記憶し、制御データを更新可能なデータ更新部と、カウント記憶部から読み出した領域への書き込み回数を記憶し、制御データが更新され、かつ更新した制御データを領域に書き込む場合に、記憶した書き込み回数を増加させるカウント部と、を備え、制御データをデータ記憶部から読み出す場合には、カウント記憶部の書き込み回数から、制御データを読み出す記憶ブロックを設定し、制御データをデータ記憶部へ書き込む場合には、カウント部の書き込み回数から、制御データを記憶させる記憶ブロックを設定することを特徴とする。
【発明の効果】
【０００７】
本発明によると、更新頻度の高い制御データを記憶する領域の記憶ブロック数を、更新頻度の低い制御データを記憶する領域の記憶ブロック数よりも多くすることで、更新頻度に応じて、フラッシュメモリを有効に利用することができる。これによりフラッシュメモリの耐用時間を長くすることができ、交換回数を減らすことができる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施形態の制御装置の概略構成について図１を用いて説明する。なお、この実施形態では車両の自動変速機に用いるシステムのコントロールユニットについて説明するが、これに限られることはない。
【０００９】
図１は、この実施形態のコントロールユニット１であり、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（データ更新部）３ａおよびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３ｂを有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３と、フラッシュメモリ４と、を備える。また、コントロールユニット１は、電源５と、センサ６と、出力回路７と、他のコントロールユニット８と接続している。
【００１０】
フラッシュメモリ４の概略構成について図２を用いて説明する。フラッシュメモリ４は、複数のセグメント（単位セグメント）Ａ〜Ｈによって構成され、さらに各セグメントＡ〜Ｈはそれぞれ複数の記憶ブロックから構成される。
【００１１】
セグメントＡは、記憶ブロックＡ１〜Ａ９の９つの記憶ブロックから構成される。なお、セグメントＢ〜ＨもセグメントＡと同様に、それぞれ９つの記憶ブロックから構成され、例えばセグメントＢは記憶ブロックＢ１〜Ｂ９で構成される。
【００１２】
次に記憶ブロックの概略構成について図３を用いて説明する。図３においては説明のため記憶ブロックＡ１〜Ａ３のみを記載するが、その他の記憶ブロックにおいても同様の構成である。
【００１３】
記憶ブロックＡ１〜Ａ３はそれぞれカウンタ記憶部１０とデータ部（データ記憶部）１１とから構成される。カウンタ記憶部１０は制御データを書き込んだ回数が記憶され、データ部１１は制御データが記憶される。記憶ブロックＡ１〜Ａ３に例えばＲＡＭ３ａから制御データを書き込む場合には、新たな書き込みに応じてカウンタ記憶部１０に記憶された書き込み回数が更新（書き込み回数に１を増加）され、ＲＡＭ３ａから新たな制御データがデータ部１１に書き込まれる。これにより、システムがＯＦＦとなり、ＲＡＭ３ａなどに記憶された制御データが消去された場合にも、ＲＡＭ３ａなどに記憶された制御データをフラッシュメモリ４に記憶させ、次回のシステムＯＮ時にフラッシュメモリ４から前回のシステムＯＦＦ時の制御データなどを読み出すことができる。
【００１４】
この実施形態では各記憶ブロックＡ１〜Ａ３の書き込み回数限界値はそれぞれ１００００回であり、書き込み回数を通し番号でカウントする。つまり、書き込み回数１〜１００００回の場合には記憶ブロックＡ１に書き込みを行い、書き込み回数１０００１〜２００００回の場合には記憶ブロックＡ２に書き込みを行う。
【００１５】
この実施形態ではセンサ６および他のコントロールユニット８から入力される複数の制御データを更新頻度に基づいて、データグループａ、ｂ、ｃに分類する。
【００１６】
データグループａは、更新頻度が低い制御データであり、例えば故障情報（故障発生時の車両情報）、診断テスタなどの外部からの書き込み情報、故障診断コードなどの制御データである。
【００１７】
データグループｂは、更新頻度が比較的高い制御データであり、例えば運転時学習する学習情報（油圧を加えるタイミング、クラッチ圧など）などの制御データである。
【００１８】
データグループｃは、更新頻度が高い制御データであり、例えば走行距離、走行時間などの制御データである。
【００１９】
なお、データグループａ、ｂ、ｃの更新頻度は、データグループｂはデータグループａに対して略２倍の更新頻度、またデータグループｃはデータグループａに対して略３倍の更新頻度である。
【００２０】
この実施形態では、図２に示すように記憶ブロックＡ１〜Ａ３の３つの記憶ブロックをデータグループａを記憶させる領域とし、記憶ブロックＡ４〜Ａ９の６つの記憶ブロックをデータグループｂを記憶させる領域とし、セグメントＢの全て、つまり記憶ブロックＢ１〜Ｂ９の９つの記憶ブロックをデータグループｃを記憶させる領域とする。更新頻度が高いデータグループには多くの記憶ブロックを割り当てることで、更新頻度に応じてフラッシュメモリ４の記憶ブロックを有効に利用し、無駄な制御データ記憶領域、つまり利用されない記憶ブロックを低減し、フラッシュメモリ４の耐用時間を増加することができる。
【００２１】
センサ６は、例えば油温センサ、回転速度センサ、スロットル開度センサなどである。
【００２２】
出力回路７は、例えばクラッチやブレーキを作動させるソレノイドである。
【００２３】
他のコントロールユニット８は、例えばエンジンコントロールユニットやインパネなどのコントローラユニットである。
【００２４】
システムが稼働している場合には、センサ６によって検出されたデータは、Ｉ／Ｏ２を介してＡ／Ｄ変換され、ＣＰＵ３に入力される。ＣＰＵ３に入力された入力データは、ＲＡＭ３ａ、ＲＯＭ３ｂに記憶され、出力回路７へ出力される。
【００２５】
次にシステムを起動した場合の制御データの読み出し制御について、図４のフローチャートを用いて説明する。ここではデータグループａの制御データの読み出しについて説明するが、データグループｂ、ｃについても同様の読み出し制御を行う。
【００２６】
車両のイグニッションスイッチ（図示せず）がオフからオン状態（予め定められた所定読み出し条件）となると、本制御を開始する。
【００２７】
ステップＳ１００では、記憶ブロックＡ１のカウンタ記憶部１０に記憶された書き込み回数を読み出す。なお、後述するステップＳ１０３によって読み出す記憶ブロックが変更された場合には、その変更された記憶ブロックのカウンタ記憶部に記憶された書き込み回数を読み出す。以下において、記憶ブロックＡ１について説明するが、ステップＳ１０３によって読み出す記憶ブロックが変更された場合には、変更した記憶ブロックについて以下の制御を行うものとする。
【００２８】
ステップＳ１０１では、ステップＳ１００によって読み出した記憶ブロックＡ１の書き込み回数が書き込み回数限界値の倍数であるかどうか判定する。そして、記憶ブロックＡ１の書き込み回数が、書き込み回数限界値の倍数である場合には、ステップＳ１０２へ進み、書き込み回数限界値の倍数ではない場合には、ステップＳ１０４へ進む。
【００２９】
この実施形態では各領域への書き込み回数を通し番号でカウントするので、ステップ１００によって読み出された書き込み回数が、書き込み回数限界値の倍数、例えば書き込み回数限界値の１倍である１００００回となっている場合には、読み出した記憶ブロックＡ１は書き込み回数限界であると判定する。
【００３０】
ステップＳ１０２では、現在読み出した記憶ブロックＡ１の次の記憶ブロックＡ２のカウンタ記憶部１０に書き込み回数が設定されているか判定する。そして、記憶ブロックＡ２に書き込み回数が設定されている場合、つまり記憶ブロックＡ２に書き込みが行われている場合にはステップＳ１０３へ進み、記憶ブロックＡ２に書き込み回数が設定されていない場合、つまり記憶ブロックＡ２に書き込みが行われていない場合にはステップＳ１０４に進む。
【００３１】
記憶ブロックＡ１の書き込み回数が書き込み回数限界値であり、かつ記憶ブロックＡ２の書き込み回数が設定されているので、ステップＳ１０３では、参照アドレスを記憶ブロックＡ２に変更する。つまり、ステップＳ１０３ではステップＳ１００によって読み出す記憶ブロックＡ１が書き込み回数限界値（例えば、１００００回）であり、かつステップＳ１００によって読み出した記憶ブロックＡ１の次の記憶ブロックＡ２に書き込み回数が設定されている場合には、読み出す記憶ブロックＡ２を変更する。その後ステップＳ１００に戻り、記憶ブロックＡ２について上記制御を繰り返す。
【００３２】
なお、ここでは、ステップＳ１００からステップＳ１０３において、読み出す記憶ブロックを記憶ブロックＡ１から記憶ブロックＡ２へ変更する場合について説明したが、上記制御に基づいて、読み出す記憶ブロックを記憶ブロックＡ２から記憶ブロックＡ３へと変更する場合なども同様に行われる。
【００３３】
一方、ステップＳ１０１において書き込み回数限界値の倍数ではないと判定された場合、またはステップＳ１０２において記憶ブロックＡ２のカウンタ記憶部１０に書き込み回数が設定されていないと判定された場合には、ステップＳ１０４において、ステップＳ１００において読み出した書き込み回数に応じた記憶ブロックＡ１のデータ部１１の制御データを読み出す。
【００３４】
ステップＳ１０５では、ステップＳ１００において読み出した書き込み回数と、ステップＳ１０４によって読み出した制御データと、をＣＰＵ３のＲＡＭ３ａにコピーする。なお、書き込み回数は、ＲＡＭ３ａのカウント表示部（カウント部）９にコピーする。
【００３５】
以上の読み出し制御によって、車両などの搭載したシステムを起動させる場合に、フラッシュメモリ４に記憶されている書き込み回数と制御データとを読み出し、ＲＡＭ３ａにコピーする。
【００３６】
次に制御データの書き込み制御について図５のフローチャートを用いて説明する。ここではデータグループａについて説明する。ここではデータグループａの制御データの書き込みについて説明するが、データグループｂ、ｃについても同様の書き込み制御を行う。
【００３７】
車両のイグニッションスイッチ（図示せず）がオンからオフ状態（予め定められた所定書き込み条件）となると、本制御を開始する。
【００３８】
ステップＳ２００では、データグループａの制御データに変更がないかどうか判定する。そして、制御データに変更がある場合にはステップＳ２０１へ進み、制御データに変更がない場合には、本制御を終了する。制御データに変更がない場合に、記憶ブロック、つまりフラッシュメモリ４に書き込みを行わないことで、無駄な書き込みによるフラッシュメモリ４の耐用時間の減少、および書き込み時間を省くことが出来る。
【００３９】
ステップＳ２０１では、制御データに変更があったので、現在のＲＡＭ３ａのカウント表示部９の書き込み回数に１を加算する。
【００４０】
ステップＳ２０２では、ステップＳ２０１によって加算した書き込み回数に応じた記憶ブロックを設定する。例えば、ステップＳ２０１によって加算した書き込み回数が１００００の場合には、書き込む記憶ブロックを記憶ブロックＡ１に決定し、加算した書き込み回数が１０００１の場合には、書き込む記憶ブロックを記憶ブロックＡ２に決定する。書き込み回数を通し番号とし、書き込み回数に応じて予め制御データを書き込む記憶ブロックを設定しておくことで、例えば、記憶ブロックＡ１から記憶ブロックＡ２、Ａ３へと順に制御データの未書き込みの記憶ブロックを検索する必要がなく、制御データの書き込み時間を短縮することができる。
【００４１】
ステップＳ２０３では、ＲＡＭ３ａの制御データをステップＳ２０２によって決定した記憶ブロックに書き込む。
【００４２】
以上の書き込み制御によって、車両などに搭載したシステムを停止する場合に、ＲＡＭ３ａなどの記憶された制御データをフラッシュメモリ４に記憶させることができる。
【００４３】
この実施形態では、各データグループの制御データの容量が各記憶ブロックの容量と等しいか、それ以下の容量を前提としているが、データグループによってはデータグループの制御データの容量が記憶ブロックの容量よりも大きくなる場合もあり得る（例えば、データグループａの制御データの容量＞記憶ブロックＡ１の容量）。そのような場合には、データグループａの制御データの容量と略同じ容量に記憶ブロックを、例えば、セグメントＡを記憶ブロックＡ１〜Ａ６と分割し、各記憶ブロックの容量を大きくしても良い。または、データグループａの制御データを例えば２つの記憶ブロックＡ１、Ａ２に書き込んでも良く、この場合には、２つの記憶ブロックＡ１、Ａ２に対する書き込みを１回の書き込み回数とする。
【００４４】
また、データグループの数は３つに限られるものではなく、更新頻度によってさらに細かくグループを設けても良い。
【００４５】
また、各制御データのデータグループ分け、およびデータグループに設定される記憶ブロックの数、または容量は、実際の車両の走行により、所定期間の制御データの更新回数を集計し、制御データのデータグループ分け、グループに割り当てる記憶ブロックの数または容量を変更しても良い。これによって、制御データのデータグループ分け、グループに割り当てる記憶ブロックの数または容量を適切に行うことができ、フラッシュメモリ４を更に有効に利用することができる。
【００４６】
本発明の実施形態の効果について説明する。
【００４７】
この実施形態では、フラッシュメモリ４において、更新頻度の高い領域の記憶ブロックを、更新頻度の低い領域の記憶ブロックよりも多くする。つまり、制御データの更新頻度が高いデータグループｂ、ｃの制御データを記憶する領域（記憶ブロックＡ４〜Ａ９、記憶ブロックＢ１〜Ｂ９）を、更新頻度の低い制御データであるデータグループａの制御データを記憶する領域（記憶ブロックＡ１〜Ａ３）よりも大きくする。これにより、制御データの更新頻度に応じて、領域の記憶ブロックの数または容量を設定し、フラッシュメモリ４を有効に利用し、利用されない記憶ブロックを低減し、フラッシュメモリ４の耐用時間を増加することができる。
【００４８】
更新頻度に応じて分類した領域毎に制御データの読み出し、および書き込みを行うので、制御データを１つ１つ読み出し、および書き込む場合よりも素早く処理することができるので、制御データの読み出し、および書き込み時間を短くすることができる。
【００４９】
制御データを領域への書き込みを行う場合に、書き込み回数を通し番号とし、ＲＡＭ３ａのカウント表示部９の書き込み回数に応じて、制御データを書き込む領域の記憶ブロックを設定することで、未書き込みの記憶ブロックを検索する必要がなく、制御データを書き込む記憶ブロックの検索時間を短縮し、制御データの書き込み時間を短縮することができる。
【００５０】
また、制御データを読み出す場合に、記憶ブロックに設けられたカウント記憶部の書き込み回数を読み込むことで、最新の制御データ（最後に書き込んだ制御データ）を読み出すことができ、制御データの読み出し時間を短縮することができる。
【００５１】
特に自動車に搭載したフラッシュメモリ４においては、自動車の走行に関する走行データは多数存在する上、更新頻度が大きく異なるため、本願発明のフラッシュメモリ４を使用し、制御データとして走行データをフラッシュメモリ４に記憶させることで、フラッシュメモリ４を効率良く利用でき、耐用時間を大幅に増加できる上、制御データの書き込み、及び読み出しにかかる時間を大幅に低減することができる。
【００５２】
記憶ブロックへの現在の書き込み回数をカウンタ記憶部によりカウントし、書き込み回数に応じて、記憶ブロックへの書き込みを制限することで、各記憶ブロックへの必要以上の書き込みを制限し、信頼性の高いフラッシュメモリ４を得ることができる。
【００５３】
本発明は上記した実施形態に限定されるものではなく、その技術的思想の範囲内でなしうるさまざまな変更、改良が含まれることは言うまでもない。
【産業上の利用可能性】
【００５４】
更新頻度の異なるデータを記憶するフラッシュメモリを備えた制御装置に利用することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施形態の制御装置の概略構成を示す図である。
【図２】本発明の実施形態のフラッシュメモリの概略構成を示す図である。
【図３】本発明の実施形態の記憶ブロックの概略構成を示す図である。
【図４】本発明の実施形態のシステム起動時の制御データ読み出し制御についてのフローチャートである。
【図５】本発明の実施形態のシステム停止時の制御データ書き込み制御についてのフローチャートである。
【符号の説明】
【００５６】
１      コントロールユニット
２      Ｉ／Ｏ
３      ＣＰＵ
３ａ    ＲＡＭ（データ更新部）
３ｂ    ＲＯＭ
４      フラッシュメモリ
９      カウント表示部（カウント部）
１０    カウント記憶部
１１    データ部（データ記憶部）
【図１】
0004686358.tif 000002
【図２】
0004686358.tif 000003
【図３】
0004686358.tif 000004
【図４】
0004686358.tif 000005
【図５】
0004686358.tif 000006