説明

電子制御装置

【課題】フラッシュROM内の制御プログラムを書き換えた際に、EEPROMの初期化の時、継続使用可能なデータと初期化するデータを区別することができる電子制御装置を得る。
【解決手段】ECU100において、フラッシュROM2には、制御プログラムの書き換え時に、新プログラムと共に、そのプログラムがEEPROM20に保存する学習値等の並びがどのように変わるのかを示すデータ配列変換情報が書き込まれる。そして、フラッシュROM2内の制御プログラムによる最初の初期化処理にて、データ配列変換情報を参照してEEPROM20に保存されているデータを新プログラムで使用する並び順に並び替えを行い、以前のデータを継続使用することによって、制御プログラムの書き換え前後で、EEPROM20に保存するデータの並びが変わったとしても、走行フィーリングの悪化や変速ショックが継続することを防ぐことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、制御プログラムが書き換えられた場合に、学習値を更新する電子制御装置に関するものである。
【背景技術】
【0002】
従来、例えば自動車のエンジンやトランスミッション等を制御する電子制御装置として、電気的に記憶内容の書き換え(詳しくは、記憶内容の消去及び書き込み)が可能なフラッシュROM等の不揮発性メモリ(以下、書換可能不揮発性メモリともいう)に制御プログラム(詳しくは、制御用のプログラムを構成する命令コードやそのプログラムで参照される固定の制御データ)を格納しておき、このような不揮発性メモリ内の制御プログラムを、市場への供給後でもオンボードで書き換え可能に構成されたものがある。
【0003】
即ち、この種のプログラム書換機能を有した電子制御装置は、通常時には、書換可能不揮発性メモリに記憶された制御プログラムに従ってエンジン等の制御対象を制御するが、別途接続される外部装置としてのメモリ書換装置から書き換え要求信号を受ける等、書換条件が成立したと判断すると、自己の動作モードを書換モードに移行させて、書換可能不揮発性メモリ内の制御プログラムをメモリ書換装置から送信されて来る新たな制御プログラムに書き換える書き換え処理を行う。そして、このような電子制御装置によれば、何等かの原因で動作内容(制御内容)を変更しなければならない場合に、制御プログラムを簡単に変更して対応することができる。
【0004】
また、この種の車両用電子制御装置では、制御対象の経時変化や個体差などの影響をなくすために、過去の制御結果を評価して制御パラメータや制御論理を修正する、いわゆる学習制御が行われる。そして、制御プログラムによって更新及び参照される様々なデータのうち、学習制御で算出した制御パラメータなどの学習値や、異常検出結果を表すダイアグノシス情報といった特定のデータは、制御プログラムが格納されるメモリとは別の書換可能不揮発性メモリに保存され、バッテリ上がりやバッテリ外れが発生しても、そのデータを継続して使用できるようにしている。
【0005】
つまり、この種の電子制御装置では、電源供給が停止されても継続して保存すべき学習値やダイアグノシス情報などの特定のデータ(以下、継続使用データという)を、予め決められた更新書込条件が成立する毎(例えば、一定時間毎や電源供給が停止されて動作を終了する直前毎)に、通常のRAMからEEPROMなどの書換可能不揮発性メモリにコピーする。そして、電源が供給されて動作を開始する初期動作時などにおいて、その書換可能不揮発性メモリから通常のRAMへ継続使用データを転送することにより、過去に算出した学習値やダイアグノシス情報を失わずに使用できるようにしている。
【0006】
ここで、制御プログラムがフラッシュROMに記憶され、学習値やダイアグノシス情報といった継続使用データがEEPROMに記憶される場合を例に挙げると、この種の電子制御装置では、制御プログラムのバージョンアップに伴って、EEPROMのデータ配列(即ち、どの種類のデータがEEPROMのどのアドレスに格納されるか)が変わることが多い。これは、制御プログラムのバージョンアップにより、新たな学習制御が追加されて継続使用データの種類が増加したり、不要となった学習制御が削除されて継続使用データの種類が減少したりするためである。
【0007】
また、EEPROM内のデータは、制御プログラムによって更新されるが、一般に、その更新のための書き込みは、頻繁ではなく、前述したように、予め決められた更新書込条件が成立しなければ行われない。このため、プログラム書換機能を有した電子制御装置において、フラッシュROM内の制御プログラムが新しいバージョンのものに書き換えられた場合に、EEPROのデータ配列が新旧の制御プログラム間で変わっていると、EEPROM内のデータが新たな制御プログラムによって適正値に書き換えられるまでの間(即ち、前述の更新書込条件が成立するまでの間)は、正常でない学習値などを用いて制御対象を制御してしまう可能性がある。これは、例えば、EEPROMから、ある種類のデータを読み出したつもりでも、その読み出し先のアドレスには、他の種類のデータが格納されている可能性があるからである。
【0008】
一般に、制御プログラムを書き換えた際には、EEPROMの初期化(即ち、EEPROMの各アドレスのデータを、制御プログラムに合った初期値に設定すること)を行う必要がある。そして、このようなEEPROMの初期化に関する技術として、EEPROMの使用容量が変わった場合だけ、EEPROMを初期化する、という技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2002−323990号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上述した従来技術では、EEPROMのデータ配列が変更され、継続使用データの種類が増減しても、EEPROMの使用容量に変化がない限り初期化が実施されないため、異常なデータが制御に適用されることになるという問題点があった。
【0011】
また、EEPROMの使用容量に変化がある場合に継続使用可能なデータを全て初期化しているが、継続使用データには、学習値が収束するまでかなりの時間が必要なデータもあり、走行フィーリングの悪化や変速ショックが継続するという問題点があった。
【0012】
本発明は、前記のような課題を解決するためになされたものであり、電気的に記憶内容の書き換えが可能な第1の書換可能不揮発性メモリに記憶した制御プログラムをオンボードで書き換え可能であると共に、その制御プログラムで算出した学習値や異常検出結果等の特定のデータを、電気的に記憶内容の書き換えが可能な第2の書換可能不揮発性メモリに保存することができるようにした電子制御装置において、第1の書換可能不揮発性メモリ内の制御プログラムを書き換えた際に、第2の書換可能不揮発性メモリの初期化の時、継続使用可能なデータと初期化するデータを区別することができる電子制御装置を得ることを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る電子制御装置は、第1の制御プログラム及び第1の書き換え処理プログラムを記憶する、電気的に記憶内容の書き換えが可能な第1の書換可能不揮発性メモリと、前記第1の制御プログラムにより使用される第1の継続使用データを記憶する、電気的に記憶内容の書き換えが可能な第2の書換可能不揮発性メモリと、データを一時的に記憶する揮発性メモリと、プログラムを実行する中央演算処理装置とを備え、前記第1の書換可能不揮発性メモリ上の第1の制御プログラムは、書換モードの場合には、前記第1の書換可能不揮発性メモリ上の第1の書き換え処理プログラムを揮発性メモリにコピーし、前記揮発性メモリ上の第1の書き換え処理プログラムは、前記第1の書換可能不揮発性メモリ上の第1の制御プログラム及び第1の書き換え処理プログラムを、外部から送信されてくる第2の制御プログラム、第2の書き換え処理プログラム、データ配列順序を並び替えるための情報であるデータ配列変換情報、継続使用データの並び替えを指示するための情報である並び替え指示情報、及び継続使用データの初期値に書き換え、前記第1の書換可能不揮発性メモリ上の第2の制御プログラムは、前記第2の書換可能不揮発性メモリ上の第1の継続使用データを揮発性メモリにコピーし、前記第1の書換可能不揮発性メモリ上のデータ配列変換情報を揮発性メモリにコピーし、前記第2の書換可能不揮発性メモリ上の第1の継続使用データの誤り検出符号と、前記揮発性メモリにコピーした第1の継続使用データの誤り検出符号が一致している場合には、前記第1の書換可能不揮発性メモリ上の並び替え指示情報を揮発性メモリにコピーし、前記並び替え指示情報が指示のときには、前記第1の継続使用データを、前記データ配列変換情報に基づいて並び替え処理を行い、前記データ配列変換情報に基づいて、前記第1の継続使用データのうち初期化が必要な継続使用データを、前記初期値に更新するものである。
【発明の効果】
【0014】
本発明に係る電子制御装置によれば、第1の書換可能不揮発性メモリ内の制御プログラムを書き換えた際に、第2の書換可能不揮発性メモリの初期化の時、継続使用可能なデータと初期化するデータを区別し、継続使用可能なデータを継続使用することで走行フィーリングの悪化や変速ショックの発生を防止することができる。
【図面の簡単な説明】
【0015】
【図1】この発明の実施の形態1に係る電子制御装置の構成を示す図である。
【図2】この発明の実施の形態1に係る電子制御装置の制御全体の動作を示すフローチャートである。
【図3】この発明の実施の形態1に係る電子制御装置の電源投入後の初期化処理を示すフローチャートである。
【図4】この発明の実施の形態1に係る電子制御装置のEEPROMに記憶するデータの並び替え処理を示すフローチャートである。
【図5】この発明の実施の形態1に係る電子制御装置のEEPROMに記憶するデータの初期化処理を示すフローチャートである。
【図6】この発明の実施の形態1に係る電子制御装置のシステム停止処理を示すフローチャートである。
【図7】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え前の状態を示す図である。
【図8】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え実施中の状態を示す図である。
【図9】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え実施中及び後の状態を示す図である。
【図10】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え後の状態を示す図である。
【図11】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図12】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図13】この発明の実施の形態1に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図14】この発明の実施の形態1に係る電子制御装置の継続使用データの格納時の状態を示す図である。
【図15】この発明の実施の形態1に係る電子制御装置のシステム停止処理時の状態を示す図である。
【図16】この発明の実施の形態1に係る電子制御装置のシステム停止処理時の状態を示す図である。
【図17】この発明の実施の形態1に係る電子制御装置の制御プログラム書き換え後、2回目以降の電源投入時の状態を示す図である。
【図18】この発明の実施の形態1に係る電子制御装置の継続使用データの並び替え処理を説明するRAMの状態変遷図である。
【図19】この発明の実施の形態1に係る電子制御装置の書き換え後の制御プログラムで追加された継続使用データの初期化処理を説明する図である。
【発明を実施するための形態】
【0016】
以下、本発明の電子制御装置の好適な実施の形態につき図面を用いて説明する。
【0017】
実施の形態1.
この発明の実施の形態1に係る電子制御装置について図1から図19までを参照しながら説明する。図1は、この発明の実施の形態1に係る電子制御装置の構成を示す図である。なお、以降では、各図中、同一符号は同一又は相当部分を示す。
【0018】
図1において、車両(自動車)に搭載されて変速機の制御を行う、実施の形態1に係る電子制御装置(ECU)100は、後述する入力処理回路からのセンサ信号等に基づき、変速機400を制御するための様々な処理を行うマイクロコンピュータ(以下、マイコンという)10と、このマイコン10と通信線21を介して接続されるEEPROM(第2の書換可能不揮発性メモリ)20と、エンジン300に接続された変速機400の運転状態を検出する様々なセンサ401からの信号を入力して波形処理する入力処理回路30と、マイコン10からの制御信号に応じて、変速機400に取付けられた油圧制御装置(リニアソレノイド)等のアクチュエータ402を駆動する出力回路40と、メモリ書換装置200との間で通信線51を介してデータ通信を行うための通信回路50とが設けられている。
【0019】
マイコン10は、プログラムを実行するCPU(中央演算処理装置)1と、このCPU1によって実行されるプログラム(詳しくは、そのプログラムを構成する命令コードやそのプログラムの実行時に参照される固定のデータ)を記憶する不揮発性のフラッシュROM(第1の書換可能不揮発性メモリ)2と、CPU1による演算結果等を一時的に記憶するための揮発性のRAM(揮発性メモリ)3と、EEPROM20、入力処理回路30、出力回路40及び通信回路50との間で信号やデータをやり取りするための入出力インターフェース回路(I/O)4と、各種レジスタ(図示省略)等とが設けられている。
【0020】
ここで、フラッシュROM2は、電気的に記憶内容の消去及び書き込みが可能な第1の書換可能不揮発性メモリに相当するものであり、このフラッシュROM2には、制御対象としての変速機400を制御するための制御プログラム(詳しくは、変速機制御用のプログラムを構成する命令コード及びそのプログラムの実行時に参照される固定の制御データ)が記憶されている。
【0021】
一方、EEPROM20には、当該ECU100への電源供給が停止されても継続して保存すべき学習値やダイアグノシス情報などの特定のデータ(継続使用データ)が記憶されている。例えば、特定の変速(2→3アップシフト、停止前ダウンシフト)時の油圧を学習することで変速ショックを軽減することが可能であり、また降坂路でのエンジンブレーキ制御におけるブレーキの効き具合を運転者の嗜好にあわせることが可能である。このように学習値を活用して走行時のフィーリングを良くしている。
【0022】
つぎに、この実施の形態1に係る電子制御装置の動作について図面を参照しながら説明する。
【0023】
ECU100は、車両のイグニッションスイッチがオンされると、動作電源が供給されて動作する。
【0024】
また、ECU100は、フラッシュROM2に書き込まれている制御プログラムを新たな内容に書き換える際に、メモリ書換装置200が接続される。そして、図1に示すように、ECU100とメモリ書換装置200とは通信回路50及び通信線51を介して、通信する。
【0025】
ECU100において、マイコン10のCPU1が、まず、フラッシュROM2内のブートプログラムを実行する。そして、メモリ書換装置200から当該ECU100へフラッシュROM2内の制御プログラムの書き換えを指示する書換要求コマンドが送信されて来ない通常時には、そのブートプログラムによりフラッシュROM2内の制御プログラムをコールし、その制御プログラムにより、後述する初期化処理を行った後、変速機400を制御するための制御処理を行う。
【0026】
また、マイコン10のCPU1は、ブートプログラムの実行時に、メモリ書換装置200から当該ECU100へ書換要求コマンドが送信されて来たことを検出すると、動作モードをプログラムの書換モードに移行させて、フラッシュROM2に格納されている制御プログラムを、メモリ書換装置200から通信線51及び通信回路50を介して送信されて来る新たな制御プログラムに書き換えるための書き換え処理を行う。
【0027】
ここで、ECU100のマイコン10で実行される処理の内容について、図2のフローチャートを用いて説明する。図2は、マイコン10で実行される処理の全体を表すフローチャートであり、そのステップ(以下、単に「S」と記す)110、S120、S140乃至S180の処理は、フラッシュROM2内の制御プログラムによって実行され、S130の処理は、フラッシュROM2からRAM3にコピーされる書き換え処理プログラムによって実行される。
【0028】
図2に示すように、マイコン10は、初期状態(リセット状態)から動作を開始すると、最初のS110において、所定時間以内にメモリ書換装置200から書換要求コマンドが送信されて来たか否かを判定することにより、書換モードに移行すべきか否かを判断する。
【0029】
そして、S110において、所定時間以内に書換要求コマンドが送信されて来たと判定した場合には、書換条件が成立したとして、書換モードに移行するために、S120へ進む。
【0030】
次に、S120において、書き換え処理プログラムをフラッシュROM2からRAM3にコピーする。
【0031】
これにより、フラッシュROM2からRAM3上にコピーした書き換え処理プログラムがRAM3上で実行され、S130に示す如く、フラッシュROM2に格納されている現在の制御プログラムをメモリ書換装置200から送信されて来る新たな制御プログラムに書き換えるための処理が行われる。
【0032】
即ち、図2のS130では、メモリ書換装置200から送信されて来る新たな制御プログラム(書き換え対象プログラム)を受信すると共に、その受信した書き換え対象プログラムをフラッシュROM2に、旧来の制御プログラムに代えて、書き込む書き換え処理を行う。
【0033】
次に、制御プログラムの書き換えが終了したならば、再起動するために、S140において、リセット処理を行う。書き換えが完了しているためS110において、書換条件が成立せず、S150に進む。
【0034】
一方、図2のS110において、所定時間以内に書換要求コマンドが送信されて来なかったと判定した場合には、書換条件が成立せず、書換モードに移行すべきではないと判断して、S150に進む。
【0035】
そして、S150では、フラッシュROM2内の制御プログラムに従って、電源投入後の初期化処理が行われ、更にその後、S160に示す如く変速機400を制御するための制御処理がS170でIGOFF(イグニッションスイッチのオフ)を判定するまで繰り返し実行されることとなる。S150の電源投入時の初期化処理の詳細内容は後述する。
【0036】
一方、図2のS170でIGOFFを検出した場合には、S180に進み、システム停止処理を行ってECU100の動作を終了する。S180のシステム停止処理の詳細内容は後述する。
【0037】
尚、制御処理の中では、変速機400を適切に制御するための学習制御の処理や、変速機400及びそれの周辺機器の異常を検出するための異常検出処理が行われる。そして更に、この制御処理では、RAM3上で演算される各種データ(即ち、制御プログラムによって更新及び参照されるデータ)のうち、学習制御で算出した制御パラメータなどの学習値や、異常検出結果を表すダイアグノシス情報といった特定のデータについては、当該ECU100への電源供給が停止されても継続して保存すべき継続使用データとして、予め決められた更新書込条件が成立する毎(例えば、一定時間毎や電源供給が停止されて動作を終了する直前毎)に、RAM3から継続使用データをEEPROM20へコピーする。
【0038】
次に、S150で行う初期化処理について、図2乃至図6のフローチャートを用いて、詳しい内容を説明する。
【0039】
まず、図2のS150で初期化処理が開始されると、図3に示すように、最初のS210において、RAM3をゼロに初期化する。
【0040】
次に、S220において、書き換え前の制御プログラムで使用していた、EEPROM20内の継続使用データをRAM3上にコピーする。
【0041】
次に、S230において、フラッシュROM2上のデータ配列変換情報をRAM3上にコピーする。
【0042】
次に、S240において、RAM3上にコピーした書き換え前の制御プログラムで使用していた継続使用データの整合性判定を行う。
【0043】
ここで、整合性判定は、EEPROM20に継続使用データと共に書き込んだ継続使用データのSUM値と、EEPROM20からRAM3に読み出した継続使用データのSUMが、一致している場合に「正常」、不一致の場合に「異常」と判定する。なお、一致を確認するための値はSUM値に限らず、CRC値など、誤りが含まれていないことを検出するための誤り検出符号等の他の手段で求めた値でも良い。
【0044】
S240の整合性判定結果が「正常」であれば、S250に進み、フラッシュROM2上の並び替え指示情報をRAM3上にコピーする。
【0045】
次に、S260において、S250でRAM3上に読み込んだ並び替え指示情報が「指示」となっていればS270に進み、S220でEEPROM20からRAM3上にコピーした書き換え前の制御プログラムで使用していた継続使用データを、S230でRAM3にコピーしたデータ配列変換情報に基づいて並び替え処理を行う。
【0046】
次に、S270で行う並び替え処理について図4のフローチャートを用いて、詳しい内容を説明する。
【0047】
まず、S310において、変数Nを1とする。
【0048】
次に、S320において、RAM3上にコピーしたデータ配列変換情報のN番目のデータをMにコピーする。
【0049】
次に、S330において、Mの値を確認する。Mがゼロでない場合は、S340に進む。
【0050】
S340において、書き換え前の制御プログラムで使用していた継続使用データのM番目のデータをLにコピーする。
【0051】
次に、S350において、Lを書き換え後の制御プログラムで使用する継続使用データのN番目にコピーする。ここで、Mがゼロの場合は何もしない。
【0052】
その後、S360において、Nに1加算して、S370でNがデータ配列変換情報のデータ数を超えたかを確認する。Nがデータ配列変換情報のデータ数を超えるまではS320に戻り処理を継続する。Nがデータ配列変換情報のデータ数を超えた場合には図3のS280に進む。
【0053】
一方、S260において、S250でRAM3上に読み込んだ並び替え指示情報が「非指示」となっていればS270の処理を行うことなくS280に進む。
【0054】
また一方、S240の継続使用データの整合性判定の結果が「異常」の場合は、S290において、RAM3上にコピーしている、並び替え指示情報のデータをゼロに更新する。これは、データ配列変換情報のデータをゼロにすることで別の処理をさせるためである。
【0055】
次に、S280において、RAM3上のデータ配列変換情報を参照し、ゼロが設定してある位置、すなわち書き換え後の制御プログラムで使用する継続使用データ配列では初期化が完了していないデータについて初期化処理を行う。この初期化処理について図5のフローチャートを用いて、詳しい内容を説明する。
【0056】
まず、S410において、変数Nを1とする。
【0057】
次に、S420において、RAM3上にコピーしたデータ配列変換情報のN番目のデータの値を確認する。ここで、値がゼロの場合は、S430に進み、フラッシュROM2上の制御プログラムに定義されている初期値を、継続使用データのN番目にコピーする。値がゼロでない場合は何もしない。
【0058】
その後、S440において、Nに1加算して、S450でNがデータ配列変換情報のデータ数を超えたか確認する。Nがデータ配列変換情報のデータ数を超えるまではS420に戻り処理を継続する。Nがデータ配列変換情報のデータ数を超えた場合は図3のS280の初期化処理を終了する。
【0059】
その後、図2のS160に進んで、変速機制御処理を開始する。
【0060】
そして、S170でIGOFFを検出した場合には、S180に進み、システム停止処理を行ってECU100の動作を終了する。
【0061】
次に、S180で行うシステム停止処理について図6のフローチャートを用いて、詳しい内容を説明する。
【0062】
まず、最初のS510において、フラッシュROM2上の並び替え指示情報を参照し、「非指示」の場合は、S520において、書き換え前の制御プログラムで使用する継続使用データの配列から並び替えられていない、RAM3上の継続使用データを、EEPROM20にコピーし、システムを終了する。
【0063】
一方、S510において、参照したフラッシュROM2上の並び替え指示情報が「指示」の場合は、S530において、書き換え後の制御プログラムで使用する継続使用データの配列に並び替えられている、RAM3上の継続使用データを、EEPROM20にコピーする。
【0064】
次に、S540において、フラッシュROM2上の書き換え処理プログラムを部分書き換え処理プログラムとしてRAM3へコピーする。
【0065】
次に、S550において、RAM3上の部分書き換え処理プログラムを用いて、フラッシュROM2上の並び替え指示情報を「指示」から「非指示」へ更新し、システムを終了する。なお、並び替え指示情報の「非指示」はゼロである。
【0066】
図1で示す、ECU100のマイコン10で実行される処理の内容について、図2乃至図6のフローチャートを用いて説明したが、メモリ書換装置200がECU100に接続され、新たな制御プログラムに更新されるとともに、継続使用データの構成が変化した場合のフラッシュROM2、RAM3、EEPROM20の状態の変遷について図7乃至図17を用いて説明する。図中の旧プログラムは書き換え前の制御プログラムを、旧データは書き換え前の制御プログラムで使用していた継続使用データを、新プログラムは書き換え後の制御プログラムを、新データは書き換え後の制御プログラムで使用する継続使用データを、それぞれ表す。
【0067】
図7は、新たな制御プログラムに書き換える前の状態である。この時、メモリ書換装置200には新プログラムが書き込まれているが、メモリ書換装置200とECU100は接続されていない。また、フラッシュROM2には旧プログラムが書き込まれており、EEPROM20には旧プログラムで使用していた旧データが書き込まれている状態である。
【0068】
ここで、旧データは、例えば、ON2−3変速油圧学習値や停止前ダウンシフト変速油圧学習値といった、特定の変速における油圧学習値などがあり、部品劣化による油圧特性の変化に対応するため長期に渡って学習を行うことが多い。
【0069】
次に、制御プログラムを書き換えるため、通信線51を介してメモリ書換装置200が接続され、マイコン10が、動作開始後所定時間内にメモリ書換装置200からの書換要求コマンドを受信したため、図8で示すように、書換モードに移行して、フラッシュROM2上の書き換え処理プログラムをRAM3上にコピーした状態に変化する。これは、図2のフローチャートのS120で説明した動作である。
【0070】
また、図9に示すように、フラッシュROM2からRAM3上にコピーした書き換え処理プログラムがRAM3上で実行され、フラッシュROM2に格納されている現在の制御プログラムをメモリ書換装置200から送信されて来る新たな制御プログラムに書き換えるための処理が行われる。即ち、メモリ書換装置200から送信されて来る新たな制御プログラム(書き換え対象プログラム)を受信し、その受信した書き換え対象プログラムにフラッシュROM2の内容を書き換えた状態となる。これは、図2のフローチャートのS130で説明した動作である。この時、書き換え対象プログラムには、書き換え処理プログラム、並び替え指示情報、データ配列変換情報、新データ6の初期値Gも含まれる。
【0071】
そして、図10に示すように、新たな制御プログラムがフラッシュROM2に格納されると、リセット処理が行われ、制御プログラムの書き換え後、初めての電源投入となる。
【0072】
次に、図11に示すように、マイコン10が、書き換え前の制御プログラムで使用していた継続使用データを、EEPROM20からRAM3上にコピーしている状態に変化する。これは、図3のフローチャートのS220で説明した動作である。
【0073】
その後、図12に示すように、マイコン10が、データ配列変換情報をフラッシュROM2からRAM3上にコピーしている状態に変化する。これは、図3のフローチャートのS230で説明した動作である。
【0074】
次に、図13に示すように、フラッシュROM2上の並び替え指示情報が「指示」となっているため、RAM3上にコピーしたデータ配列変換情報を用いて、書き換え前の制御プログラムで使用していた継続使用データを、書き換え後の制御プログラムで使用する継続使用データの配列に並び替え処理を行い、さらに、フラッシュROM2上の新データ6の初期値Gを用いて、EEPROM20に記憶する継続使用データの初期化処理を行う状態となる。これは、図3のフローチャートのS270、S280で説明した動作である。
【0075】
次に、RAM3上の書き換え後の制御プログラムで使用する継続使用データを、EEPROM20に記憶させている状態を図14に示す。即ち、EEPROM20上の継続使用データが書き換え前の制御プログラムで使用する継続使用データから書き換え後の制御プログラムで使用する継続使用データに更新された状態となる。これは、図6のフローチャートのS530で説明した動作である。
【0076】
次に、図15に示すように、マイコン10が、部分書き換え処理プログラムをフラッシュROM2からRAM3にコピーした状態となる。これは、図6のフローチャートのS540で説明した動作である。
【0077】
次に、図16に示すように、RAM3上の部分書き換え処理プログラムが、フラッシュROM2上の並び替え指示情報を「指示」から「非指示」に上書きする状態となる。これは、図6のフローチャートのS550で説明した動作である。
【0078】
このため、2回目以降の電源投入時は、図17に示す状態となっており、フラッシュROM2上の並び替え指示情報が「非指示」であるため、マイコン10はEEPROM20に記憶している継続使用データの並び替えを行わない。
【0079】
ここで、制御プログラムの書き換え後、初回の電源投入時の初期化処理において、EEPROM20に記憶する継続使用データの並び替え処理及び初期化処理が行われた場合のRAM3の状態の変遷について、図18及び図19を用いて説明する。
【0080】
まず、図18(a)は、制御プログラムの書き換え後、初回の電源投入時の初期化処理において、フラッシュROM2上のデータ配列変換情報と、EEPROM20上の書き換え前の制御プログラムで使用していた継続使用データ(図18、図19中の旧データを示す)を、コピーした直後のRAM3の状態を示している。
【0081】
データ配列変換情報は、例として、1、2、3、5、6、0の値が入っており、その順序は、書き換え後の制御プログラムで使用する継続使用データ(図18、図19中の新データを示す)の並びと同じとする。なお、この時点では、EEPROM20に記憶する継続使用データの並び替え処理及び初期化処理が行われていないため、RAM3上の書き換え後の制御プログラムで使用する継続使用データは全てゼロとなっている。また、書き換え前の制御プログラムで使用していた継続使用データは、例として、A、B、C、D、E、Fが入っている。さらに、フラッシュROM2上の並び替え指示情報は「指示」、新データ6の初期値はGである。
【0082】
次に、フラッシュROM2上の並び替え指示情報が「指示」であるため、EEPROM20に記憶する継続使用データの並び替え処理が行われる。処理開始から終了するまでのRAM3の状態は図18(a)→図18(b)→図18(c)→図18(d)のように変化する。
【0083】
まず、RAM3上のデータ配列変換情報の1番目のデータを参照し、その値が示す位置の書き換え前の制御プログラムで使用していた継続使用データを、書き換え後の制御プログラムで使用する継続使用データの1番目にコピーする。即ち、図18(b)に示すように、書き換え後の制御プログラムで使用する継続使用データの1番目はAとなる。これは、図4のフローチャートのS310で説明したN=1の場合の動作である。
【0084】
さらに、並び替え処理を進める。RAM3上のデータ配列変換情報の4番目のデータが5であるため、書き換え前の制御プログラムで使用していた継続使用データの5番目のデータを、書き換え後の制御プログラムで使用する継続使用データの4番目にコピーする。即ち、図18(c)に示すように、書き換え後の制御プログラムで使用する継続使用データの4番目はEとなり、先頭からのデータはA、B、C、Eとなる。
【0085】
さらに、並び替え処理を進める。RAM3上のデータ配列変換情報の6番目のデータが0である場合は、書き換え前の制御プログラムで使用していた継続使用データが、書き換え後の制御プログラムで使用する継続使用データの構成から削除されているとみなし、書き換え後の制御プログラムで使用する継続使用データの6番目には何もコピーしない。即ち、図18(d)に示すように、書き換え後の制御プログラムで使用する継続使用データの6番目はゼロのままとなる。これは、図4のフローチャートのS330で説明したM=0の場合の動作である。
【0086】
続いて、並び替え処理において、RAM3上のデータ配列変換情報のデータが0であるため、何も処理しなかった、書き換え後の制御プログラムで使用する継続使用データについて、初期化処理を行う。並び替え処理と同様に、RAM3上のデータ配列変換情報のデータがゼロであるかを、1番目のデータから確認し、データがゼロの位置の書き換え後の制御プログラムで使用する継続使用データに、フラッシュROM2上の初期化データを格納する。即ち、図19に示すように、書き換え後の制御プログラムで使用する継続使用データの6番目は、フラッシュROM2上の新データ6の初期値Gとなる。これは、図5のフローチャートで説明した動作である。
【0087】
以上のような本実施の形態のECU100において、フラッシュROM2に最初に制御プログラムを書き込む場合、その最初の制御プログラムP1の並び替え指示情報は「非指示」としておく。一方「指示」としてしまった場合は、その最初の制御プログラムP1が初めて実行されて、図3の初期化処理が行われ、図4の並び替え処理されるが、この時、EEPROM20の所定アドレスには情報が何も書き込まれていない(あるいは内容が不定である)ため、整合性不一致と判定され、初期化処理後、EEPROM20の所定アドレスに書き込む情報は同じになる。さらに、フラッシュROM2上の並び替え指示情報も「指示」から「非指示」に上書きされる。
【0088】
次に、ECU100に電源が投入されて制御プログラムP1による図3の初期化処理が行われた際に、フラッシュROM2上の並び替え情報が「非指示」となっている場合は、EEPROM20は初期化されず、そのEEPROM20に格納されている学習値などのデータが初期値に戻されることはない。
【0089】
その後、フラッシュROM2の記憶内容が、最初の制御プログラムP1から、その時点で最新の制御プログラム(即ち2番目の制御プログラム)P2に書き換えられたとする。新たな制御プログラムP2の並び替え指示情報は「指示」としておく。
【0090】
そして、その2番目の制御プログラムP2が初めて実行されて、図2のS150及び図3の電源投入後の初期化処理が行われると、フラッシュROM2上の並び替え指示情報の確認が行われる。
【0091】
ここで、フラッシュROM2上の並び替え指示情報が「指示」となっているため、図3のS270において、EEPROM20に記憶するデータの並び替え処理が行われる。
【0092】
次に、図3のS280において、書き換え後の制御プログラムで使用する継続使用データ配列のうち、初期化が完了していないデータについて初期化処理を行う。
【0093】
そして、この継続使用データを使用して変速機制御を開始する。
【0094】
次に、図2のS170において、IGOFFを判定した場合には、上述のとおり継続使用データをEEPROM20にコピーしてシステムを終了する。
【0095】
以上のように、実施の形態1によれば、ECU100は、制御プログラムのバージョンアップ(書き換え)に伴いEEPROM20のデータ配列が変更される場合にはデータ配列変換情報を作成し、並び替え指示情報を「指示」とすることで、旧制御プログラムの実行で蓄積されたEEPROM20内の学習値を、新制御プログラムでも引き続き使用することができる。このため、制御プログラムをバージョンアップする毎に必ず学習値をもう一度学習制御によって記憶させ直す、という手間がなくなるとともに、学習値が初期値に戻ることによるフィーリング悪化を防止できる。
【0096】
しかも、実施の形態1のECU100では、フラッシュROM2内の制御プログラムがバージョンアップされても、EEPROM20のデータ配列が変わっていなければ、並び替え指示情報を「非指示」とするため、EEPROM20は初期化されない。このため、制御プログラムがバージョンアップされても、EEPROM20のデータ配列に変更がなかった場合には、旧制御プログラムの実行によって蓄積されたEEPROM20内のデータを、新制御プログラムで引き続き使用することができる。
【0097】
このため、例えばECU100の評価段階において、制御プログラムは変更したが、EEPROM20のデータ配列は変わらないといった場合には、データ配列変換情報を作成し、並び替え指示情報を「指示」とした場合と同様に学習値が初期値に戻ることによるフィーリング悪化を防止できる。
【0098】
以上のことから、実施の形態1のECU100によれば、フラッシュROM2内の制御プログラムを書き換えた際、旧制御プログラムの実行によって蓄積されたEEPROM20内のデータを、新制御プログラムで引き続き使用することが、簡単に且つ適切に実施することができるようになる。
【0099】
以上、本発明の一実施の形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。例えば、実施の形態1のECU100では、学習値などを保存しておくための第2の不揮発性メモリとして、EEPROM20を用いたが、フラッシュROMなどの他の書換可能不揮発性メモリを用いても良い。
【0100】
また、実施の形態1のECU100は、車両の変速機を制御するものであったが、本発明は、例えばエンジン、ブレーキ、サスペンション等の他の制御対象を制御する電子制御装置に対しても、全く同様に適用することができる。
【符号の説明】
【0101】
1 CPU、2 フラッシュROM、2 RAM、4 I/O10 マイコン、20 EEPROM、21 通信線、30 入力処理回路、40 出力回路、50 通信回路、51 通信線、200 メモリ書換装置、300 エンジン、400 変速機、401 センサ、402 アクチュエータ。

【特許請求の範囲】
【請求項1】
第1の制御プログラム及び第1の書き換え処理プログラムを記憶する、電気的に記憶内容の書き換えが可能な第1の書換可能不揮発性メモリと、
前記第1の制御プログラムにより使用される第1の継続使用データを記憶する、電気的に記憶内容の書き換えが可能な第2の書換可能不揮発性メモリと、
データを一時的に記憶する揮発性メモリと、
プログラムを実行する中央演算処理装置とを備え、
前記第1の書換可能不揮発性メモリ上の第1の制御プログラムは、
書換モードの場合には、前記第1の書換可能不揮発性メモリ上の第1の書き換え処理プログラムを揮発性メモリにコピーし、
前記揮発性メモリ上の第1の書き換え処理プログラムは、
前記第1の書換可能不揮発性メモリ上の第1の制御プログラム及び第1の書き換え処理プログラムを、外部から送信されてくる第2の制御プログラム、第2の書き換え処理プログラム、データ配列順序を並び替えるための情報であるデータ配列変換情報、継続使用データの並び替えを指示するための情報である並び替え指示情報、及び継続使用データの初期値に書き換え、
前記第1の書換可能不揮発性メモリ上の第2の制御プログラムは、
前記第2の書換可能不揮発性メモリ上の第1の継続使用データを揮発性メモリにコピーし、
前記第1の書換可能不揮発性メモリ上のデータ配列変換情報を揮発性メモリにコピーし、
前記第2の書換可能不揮発性メモリ上の第1の継続使用データの誤り検出符号と、前記揮発性メモリにコピーした第1の継続使用データの誤り検出符号が一致している場合には、前記第1の書換可能不揮発性メモリ上の並び替え指示情報を揮発性メモリにコピーし、
前記並び替え指示情報が指示のときには、前記第1の継続使用データを、前記データ配列変換情報に基づいて並び替え処理を行い、
前記データ配列変換情報に基づいて、前記第1の継続使用データのうち初期化が必要な継続使用データを、前記初期値に更新する
ことを特徴とする電子制御装置。
【請求項2】
前記第1の書換可能不揮発性メモリ上の第2の制御プログラムは、
前記並び替え指示情報が指示のときには、前記揮発性メモリ上の更新された第1の継続使用データを、前記第2の制御プログラムにより使用される第2の継続使用データとして第2の書換可能不揮発性メモリにコピーし、
前記第1の書換可能不揮発性メモリ上の第1の書き換え処理プログラムを部分書き換え処理プログラムとして揮発性メモリへコピーし、
前記揮発性メモリ上の部分書き換え処理プログラムは、
前記第1の書換可能不揮発性メモリ上の並び替え指示情報を指示から非指示へ更新する
ことを特徴とする請求項1記載の電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate