(57)【要約】【課題】電源のオンオフ操作を繰り返した場合でも、制御パラメータの学習値を正しく得られるようにする。【解決手段】電子制御装置１は、制御パラメータの学習値を記憶するフラッシュメモリ１２を有する。フラッシュメモリ１２は、複数のブロック３１，３２を有し、電源投入時に第１のブロック３１に空き容量がないときには、そのブロック３１内に１組の学習値が存在しているか調べる。第２のブロック３２内に１組の学習値が揃っているときは、次のブロックに新しい学習値を書き込む。一方、第２のブロック３２内に１組の学習値が揃っていないときは、第２のブロック３２のデータを消去してから第２のブロック３２に新しい学習値を書き込む。【選択図】図１
2014089649.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御パラメータのそれぞれの学習値を記憶可能なフラッシュメモリを備え、電源の供給を受けて複数の前記学習値を用いて所定の制御を行い、電力が供給されている間に新たに算出された前記複数の学習値を前記フラッシュメモリの所定のブロックに追加することによって前記複数の制御パラメータの各々に対応する前記複数の学習値を１組の学習データとして保存可能に構成された車両用電子制御装置において、
前記電源の供給が開始されたときに前記所定のブロックに空き容量がなく、かつ前記所定のブロック内に前記１組の学習データが揃っていないときに、前記所定のブロック内のデータを消去するように構成したことを特徴とする車両用電子制御装置。
【請求項２】
前記電源の供給が開始されたときに前記所定のブロック内の前記１組の学習データがないときには、前記所定のブロック以外の他のブロックから前記１組の学習データのうち不足する前記学習値を取得し、前記不足する前記学習値を前記所定のブロックに書き込むように構成したことを特徴とする請求項１に記載の車両用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用電子制御装置に関する。
【背景技術】
【０００２】
車両に搭載されている電子制御装置では、エンジン制御に使用する制御パラメータを学習して更新することが可能になっている。制御パラメータを学習することによって、排ガスのクリーン化や、燃費向上を図ることができる。このような電子制御装置では、パラメータの最新の学習値を記憶させる装置にフラッシュメモリを使用することによって低コストを図っている。ここで、従来の電子制御装置では、複数のパラメータの学習値をフラッシュメモリの第一の記憶領域に一旦蓄積しておき、学習値の更新条件を満足したら、学習値を同じフラッシュメモリの第二の記録領域に書き込むことによって、フラッシュメモリのブロック毎のデータ消去の回数を減少させている（例えば、特許文献１参照）。これは、フラッシュメモリは、ブロック単位でのデータ消去のみが可能なので、フラッシュメモリのブロック毎のデータ消去の回数を減少させることによって、フラッシュメモリの長寿命化が図れるからである。
【０００３】
また、フラッシュメモリに新しい学習値を書き込むタイミングとしては、車両の電源スイッチオフ後のセルフシャットダウン処理時が知られている。ところが、セルフシャットダウン中に運転者が電源スイッチを再びオンにすると、フラッシュメモリにデータを書き込んでいる最中に学習値の書き込み処理が強制終了され、学習値のデータが化けた状態でフラッシュメモリに記録されることがある。このために、従来の電子制御装置では、セルフシャットダウン中に再度電源スイッチがオンになったときは、データの書き込み処理を強制終了させず、書き込み処理が終了した後、定常の処理を実行させている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１７９４６０号公報
【特許文献２】特開２００８−１４０３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、電子制御装置の低コスト化のために、セルフシャットダウン処理時に使用されるセルフシャットリレーの廃止が検討されている。しかしながら、セルフシャットリレーが廃止されると、電源オフ時に電子制御装置への電力供給が直ぐに停止されるので、学習値をフラッシュメモリに書き込めなくなる。
【０００６】
さらに、学習値の書き込み処理中に、電源がオフになると、学習値がデータ化けを起こした状態でフラッシュメモリに記録される場合がある。この場合、さらに電源のオンオフ操作が繰り返されると、データ化けした学習値が連続してフラッシュメモリに記憶される。フラッシュメモリのブロック内の全ての学習値がデータ化けしてしまうと、ブロック内に正常な学習値が存在しなくなるので、エンジンを制御し難くなる。
本発明は、このような事情を鑑みてなされたものであり、電源のオンオフ操作を繰り返した場合でも、制御パラメータの学習値を正しく得られるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明によれば、複数の制御パラメータのそれぞれの学習値を記憶可能なフラッシュメ
モリを備え、電源の供給を受けて複数の前記学習値を用いて所定の制御を行い、電力が供給されている間に新たに算出された前記複数の学習値を前記フラッシュメモリの所定のブロックに追加することによって前記複数の制御パラメータの各々に対応する前記複数の学習値を１組の学習データとして保存可能に構成された車両用電子制御装置において、前記電源の供給が開始されたときに前記所定のブロックに空き容量がなく、かつ前記所定のブロック内に前記１組の学習データが揃っていないときに、前記所定のブロック内のデータを消去するように構成したことを特徴とする車両用電子制御装置が提供される。
【０００８】
また、本発明によれば、前記電源の供給が開始されたときに前記所定のブロック内の前記１組の学習データがないときには、前記所定のブロック以外の他のブロックから前記１組の学習データのうち不足する前記学習値を取得し、前記不足する前記学習値を前記所定のブロックに書き込むように構成したことを特徴とする請求項１に記載の車両用電子制御装置が提供される。
【発明の効果】
【０００９】
本発明によれば、フラッシュメモリの現在使用中のブロックに空き容量がない状態で、かつ１組の学習データが得られないときにそのブロックのデータが消去されるので、ブロックが不定データで埋めつくされることが防止され、学習値の更新と学習値を用いた制御を確実に実行できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態に係る車両用電子制御装置のブロック図である。
【図２】図２は、本発明の実施の形態に係る車両用電子制御装置において、学習値の更新処理を説明するフローチャートである。
【図３】図３は、本発明の実施の形態に係る車両用電子制御装置におけるフラッシュメモリ内のデータ管理の例を説明する図である。
【図４】図４は、本発明の実施の形態に係る車両用電子制御装置において、学習値のイニシャライズ処理を説明するフローチャートである。
【発明を実施するための最良の形態】
【００１１】
本発明を実施するための形態について以下に詳細に説明する。
図１にブロック図を示すように、車両用電子制御装置１は、電源２から電源回路３を介して電力の供給を受け、制御対象機器５を制御するように構成されている。具体的には、車両用電子制御装置１は、ＣＰＵ（Central Processing Unit）１０と、ＲＡＭ（Random Access Memory）１１と、不揮発性記憶装置であるフラッシュメモリ１２と、制御対象機器５に接続されるＩ／Ｆ（インターフェース）回路１３と、センサやアクチュエータなどの外部機器６に接続されるＩ／Ｏ（入出力）装置１４とを含んで構成されている。ここで、電源２は、バッテリでも良いし、発電機であっても良い。さらに、電源２と電源回路３の間には、スイッチ７が設けられており、ＣＰＵ１０の指令によってスイッチ７のオンとオフが切り換えられるようになっている。
【００１２】
ＣＰＵ１０は、本実施の形態に特徴的な機能として、フラッシュメモリ１２に記憶された制御パラメータの学習値を検索するデータ検索部２１と、フラッシュメモリ１２の所定ブロックのデータを削除するデータ削除部２２と、フラッシュメモリ１２に学習値を書き込んだり、制御パラメータの初期値を書き込んだりするデータ書込部２３とに分割できる。ここで、制御パラメータとしては、例えば、エンジンのスロットルバルブの全閉値があげられる。制御パラメータの学習値とは、例えば、スロットルバルブの全閉値が経時変化によってシフトしたときの経時変化後の全閉値や、シフト量である。制御パラメータの種類や数、学習値のデータ形式は、これらに限定されない。
【００１３】
続いて、図２のフローチャートを参照して、車両用電子制御装置１の処理について説明する。
最初に、ステップＳ１０１で、ＣＰＵ１０のデータ書込部２３が学習値の書き込み要求があったか調べる。書き込み要求は、例えば、車両用電子制御装置１への電力供給が開始されたタイミング、即ち、スイッチ７がＯＮになったときに出力される。書き込み要求がない場合（ステップＳ１０１でＮｏ）、ここでの処理を終了する。
【００１４】
これに対して、書き込み要求があった場合には、ステップＳ１０２に進み、データ書込部２３がフラッシュメモリ１２にアクセスし、フラッシュメモリ１２の現在使用中のブロック内に空き容量があるか調べる。空き容量がある場合には、ステップＳ１０３に進んで、フラッシュメモリ１２の現在のブロック内の空いているセルに、データ書込部２３が新しい学習値を順番に書き込む。この後、ここでの処理を終了する。
【００１５】
一方、ステップＳ１０２でフラッシュメモリ１２の現在使用中のブロック内に空き容量がない場合には、ステップＳ１０４に進む。ステップＳ１０４では、データ検索部２１が現在使用中のブロック内に１組の学習値（１組の学習データ）があるか調べる。１組の学習値とは、制御対象機器５の制御に必要な制御パラメータが例えば３つの場合には、それぞれの制御パラメータに対応した３つの学習値が１組の学習値となる。そして、３つの学習値のうち、少なくとも１つの学習値のデータが化けていた場合、データ検索部２１は１組の学習値が揃っていないと判断する。
【００１６】
ここで、学習値は、学習値の種類を特定するＩＤ（identification）データと、学習値のデータそのものとを関連付けてフラッシュメモリ１２のセルに順番に記憶される。さらに、データの信頼性を高めるために、学習値のデータそのものは、同じデータが複数、例えば３個の同じデータがフラッシュメモリ１２に記憶されている。このような場合に、学習値のデータが化けるとは、ＩＤデータが予め想定されているデータと異なるか、３個のデータ値が完全に一致しない場合が想定される。そして、学習値がデータ化けする原因としては、例えば、学習値の書き込み処理中に電源２がオフにされた場合や、電源２のオンオフ動作が繰り返された場合があげられる。
【００１７】
１組の学習データが揃っていない場合、データ検索部２１は、フラッシュメモリ１２のセルに学習値を書き込む過程でエラーが発生し、データが化けたと判定する。そして、ステップＳ１０５に進んで、データ削除部２２がフラッシュメモリ１２の現在使用中のブロックのデータを全て消去する。その後、ステップＳ１０６で、次のブロックに学習値を書き込み、ここでの処理を終了する。一方、ステップＳ１０４で現在のブロック内に１組の学習データが揃っていた場合には、ステップＳ１０６を実行した後、ここでの処理を終了する。
【００１８】
ここで、次のブロックとは、空き容量がなくなったブロックの次に書き込みが可能なブロックである。また、例えば、ステップＳ１０５でデータ消去されたブロックと、ステップＳ１０６で学習値が書き込まれるブロックは同じブロックでも良い。
【００１９】
ここまでの処理の具体例について、図３（ａ）を参照して説明する。図３（ａ）には、フラッシュメモリ１２内の２つのブロック３１，３２が示されている。さらに、各ブロック３１，３２には、それぞれ８つのセルが書き込み可能に用意されている。学習値は、３つのデータ、例えば、第１の初期データ〜第３の初期データ、又は第１の更新データ〜第３の更新データを１組とする。さらに、各ブロック３１，３２では上のセルから順番にデータが書き込まれるものとする。なお、ブロックの数や、１つのブロック内のセルの数は、図示したものに限定されない。
【００２０】
フラッシュメモリ１２の第１のブロック３１は、１組の初期データと、学習値として第１の更新データと、第２の更新データと、第３の更新データが１つずつ記憶されている。これは、学習値が第１〜第３の初期データから１回ずつ更新されたことを示している。さらに、このケースでは、第１のブロック３１内に２つセルが空いているので、次の更新されるデータは、第１のブロック３１内に書き込まれる。
【００２１】
そして、図３（ｂ）では、第１のブロック３１の全てのセルにデータが書き込まれ、第２のブロック３２の一部のセルにデータが書き込まれている。ここで、第１のブロック３１において、第３の更新データは、３つ記憶されている。これは、最初の２つの学習値が初期データから１回ずつ更新されたのに対して、３つ目の学習値のみが初期データから３回更新されたためである。第１のブロック３１の各セルにデータが書き込まれた後は、ブロック内に空き容量がなくなったので、データ検索部２１が第１のブロック３１内に１組の学習値が存在するか調べる。この場合は、１組の学習値が存在しているので、以降は第２のブロック３２のセルに学習値の更新データ、例えば第１の更新データ、第２の更新データが順番に書き込まれる。
【００２２】
また、図３（ｃ）に示す第２のブロック３２では、最初に１つ目の学習値の第１の更新データが記憶されているが、その他のセルは、不定データになっている。不定データとは、電源のオンオフ動作によって化けたデータ、又はデータの書き込みが正常に終了したことを確認できないデータである。
【００２３】
第２のブロック３２の１つ目のセルに第１の更新データを書き込んだ後、次の更新データが書き込まれるタイミングで電源２のオンオフが繰り返されると、第２のブロック３２内の空いたセルに不定データが書き込まれる。不定データは、第２のブロック３２内に空いたセルがなくなるまで書き込まれる。そして、第２のブロック３２内の全てのセルにデータが書き込まれた後は、データ検索部２１がそのブロック３２内に１組の学習値があるか調べる。
【００２４】
この場合、第２のブロック３２内には第１の更新データだけが存在し、１組の学習値が揃っていないので、データ削除部２２が第２のブロック３２の全てのデータを消去する。以降は、データ消去後の第２のブロック３２に学習値を新たに書き込む。
【００２５】
ここで、電源２をオンにしたときなどには、空き容量を有するブロック３１，３２内に１組の学習値が存在しない場合がある。この場合には、データイニシャライズ処理を実行し、１つのブロック３１，３２内で１組の学習値が得られるようにする。データイニシャライズ処理の詳細について、図４のフローチャートを参照して説明する。
【００２６】
最初に、ステップＳ２０１で、データ検索部２１がフラッシュメモリ１２で現在使用中のブロック内の最新データを検索する。ステップＳ２０２では、データ検索部２１が１組の学習値に不足があるか調べ、不足がなければ、ここでの処理を終了する。以降は、図２にフローチャートに従って、フラッシュメモリ１２に学習値が更新される。
【００２７】
一方、現在使用中のブロック３１，３２内に１組の学習値が揃っていない場合には、ステップＳ２０３に進んで、データ検索部２１が１つ前のブロック３１，３２から不足データを検索し、ステップＳ２０４でデータ書込部２３が不足するデータを現在使用中のブロック３１，３２の空いているセルに書き込む。
【００２８】
例えば、図３（ｂ）の例では、現在使用中の第２のブロック３２には第１の更新データと第２の更新データが存在するが、第３の更新データがないので１組の学習値が揃ってい
ない。このために、１つ前の第１のブロック３１から第３の更新データを抽出し、第２のブロック３２の３つめのセルに書き込む。これによって、１組の学習値が揃う。なお、データイニシャライズ処理は、電源２が投入されたタイミング以外、例えばブロック３１，３２内に空いているセルがあるが、１組の学習値が揃っていない場合に実行しても良い。
【００２９】
なお、制御対象機器５を制御するときは、フラッシュメモリ１２に記憶されている１組の学習値をＲＡＭ１１に展開し、ＣＰＵ１０が制御対象機器５の指令値を作成する。指令値は、Ｉ／Ｆ回路１３を経て制御対象機器５に出力される。制御対象機器５の制御結果は、センサなどの外部機器６から検出結果として車両用電子制御装置１にフィードバックされる。ＣＰＵ１０は、フィードバックされた情報に基づいて制御パラメータの新しい学習値を必要に応じて算出する。算出された新しい学習値は、データ書込部２３によって学習値の種類を特徴付けるＩＤデータと関連付けられて、フラッシュメモリ１２に記憶される。
【００３０】
以上説明したように、この実施の形態では、フラッシュメモリ１２の現在使用中のブロック３１，３２に空き容量がない状態で、かつ１組の学習値が得られないときには、そのブロック３１，３２のデータを消去するようにした。これによって、ブロック３１，３２内の各セルが不定データで埋めつくされることが防止される。そして、そのようなブロック３１，３２内の全てのデータを消去することによって、電子制御装置１は他のブロック３１，３２内の正常な１組の学習値を参照することが可能になるので、一部のデータが不良になった場合でも制御対象機器５を確実に制御できる。
【００３１】
また、ブロック３１，３２内に空き容量がある場合には、１組の学習値が揃っていない場合でも、１つ前のブロック３１，３２から不足しているデータをコピーし、１組の学習値を揃えるようにしたので、学習値の損失を防ぎ、制御対象機器５を確実に制御できるようになる。
【００３２】
なお、本発明は、実施の形態に限定されず、その趣旨を逸脱しない範囲で様々な変更が可能である。例えば、電子制御装置１は、電源投入時以外のタイミングで書き込み要求を出力するように構成しても良い。
【符号の説明】
【００３３】
１  電子制御装置
２  電源
５  制御対象機器
１０  ＣＰＵ
１２  フラッシュメモリ
２１  データ検索部
２２  データ削除部
２３  データ書込部
３１  第１のブロック
３２  第２のブロック
【図１】
2014089649.tif 000003
【図２】
2014089649.tif 000004
【図３】
2014089649.tif 000005
【図４】
2014089649.tif 000006