(57)【要約】【課題】フラッシュＲＯＭ内の制御プログラムを書き換えた際に、ＥＥＰＲＯＭの初期化の時、継続使用可能なデータと初期化するデータを区別することができる電子制御装置を得る。【解決手段】ＥＣＵ１００において、フラッシュＲＯＭ２には、制御プログラムの書き換え時に、新プログラムと共に、そのプログラムがＥＥＰＲＯＭ２０に保存する学習値等の並びがどのように変わるのかを示すデータ配列変換情報が書き込まれる。そして、フラッシュＲＯＭ２内の制御プログラムによる最初の初期化処理にて、データ配列変換情報を参照してＥＥＰＲＯＭ２０に保存されているデータを新プログラムで使用する並び順に並び替えを行い、以前のデータを継続使用することによって、制御プログラムの書き換え前後で、ＥＥＰＲＯＭ２０に保存するデータの並びが変わったとしても、走行フィーリングの悪化や変速ショックが継続することを防ぐことが可能となる。【選択図】図１
2011150617.tif 000002
【特許請求の範囲】
【請求項１】
第１の制御プログラム及び第１の書き換え処理プログラムを記憶する、電気的に記憶内容の書き換えが可能な第１の書換可能不揮発性メモリと、
前記第１の制御プログラムにより使用される第１の継続使用データを記憶する、電気的に記憶内容の書き換えが可能な第２の書換可能不揮発性メモリと、
データを一時的に記憶する揮発性メモリと、
プログラムを実行する中央演算処理装置とを備え、
前記第１の書換可能不揮発性メモリ上の第１の制御プログラムは、
書換モードの場合には、前記第１の書換可能不揮発性メモリ上の第１の書き換え処理プログラムを揮発性メモリにコピーし、
前記揮発性メモリ上の第１の書き換え処理プログラムは、
前記第１の書換可能不揮発性メモリ上の第１の制御プログラム及び第１の書き換え処理プログラムを、外部から送信されてくる第２の制御プログラム、第２の書き換え処理プログラム、データ配列順序を並び替えるための情報であるデータ配列変換情報、継続使用データの並び替えを指示するための情報である並び替え指示情報、及び継続使用データの初期値に書き換え、
前記第１の書換可能不揮発性メモリ上の第２の制御プログラムは、
前記第２の書換可能不揮発性メモリ上の第１の継続使用データを揮発性メモリにコピーし、
前記第１の書換可能不揮発性メモリ上のデータ配列変換情報を揮発性メモリにコピーし、
前記第２の書換可能不揮発性メモリ上の第１の継続使用データの誤り検出符号と、前記揮発性メモリにコピーした第１の継続使用データの誤り検出符号が一致している場合には、前記第１の書換可能不揮発性メモリ上の並び替え指示情報を揮発性メモリにコピーし、
前記並び替え指示情報が指示のときには、前記第１の継続使用データを、前記データ配列変換情報に基づいて並び替え処理を行い、
前記データ配列変換情報に基づいて、前記第１の継続使用データのうち初期化が必要な継続使用データを、前記初期値に更新する
ことを特徴とする電子制御装置。
【請求項２】
前記第１の書換可能不揮発性メモリ上の第２の制御プログラムは、
前記並び替え指示情報が指示のときには、前記揮発性メモリ上の更新された第１の継続使用データを、前記第２の制御プログラムにより使用される第２の継続使用データとして第２の書換可能不揮発性メモリにコピーし、
前記第１の書換可能不揮発性メモリ上の第１の書き換え処理プログラムを部分書き換え処理プログラムとして揮発性メモリへコピーし、
前記揮発性メモリ上の部分書き換え処理プログラムは、
前記第１の書換可能不揮発性メモリ上の並び替え指示情報を指示から非指示へ更新する
ことを特徴とする請求項１記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御プログラムが書き換えられた場合に、学習値を更新する電子制御装置に関するものである。
【背景技術】
【０００２】
従来、例えば自動車のエンジンやトランスミッション等を制御する電子制御装置として、電気的に記憶内容の書き換え（詳しくは、記憶内容の消去及び書き込み）が可能なフラッシュＲＯＭ等の不揮発性メモリ（以下、書換可能不揮発性メモリともいう）に制御プログラム（詳しくは、制御用のプログラムを構成する命令コードやそのプログラムで参照される固定の制御データ）を格納しておき、このような不揮発性メモリ内の制御プログラムを、市場への供給後でもオンボードで書き換え可能に構成されたものがある。
【０００３】
即ち、この種のプログラム書換機能を有した電子制御装置は、通常時には、書換可能不揮発性メモリに記憶された制御プログラムに従ってエンジン等の制御対象を制御するが、別途接続される外部装置としてのメモリ書換装置から書き換え要求信号を受ける等、書換条件が成立したと判断すると、自己の動作モードを書換モードに移行させて、書換可能不揮発性メモリ内の制御プログラムをメモリ書換装置から送信されて来る新たな制御プログラムに書き換える書き換え処理を行う。そして、このような電子制御装置によれば、何等かの原因で動作内容（制御内容）を変更しなければならない場合に、制御プログラムを簡単に変更して対応することができる。
【０００４】
また、この種の車両用電子制御装置では、制御対象の経時変化や個体差などの影響をなくすために、過去の制御結果を評価して制御パラメータや制御論理を修正する、いわゆる学習制御が行われる。そして、制御プログラムによって更新及び参照される様々なデータのうち、学習制御で算出した制御パラメータなどの学習値や、異常検出結果を表すダイアグノシス情報といった特定のデータは、制御プログラムが格納されるメモリとは別の書換可能不揮発性メモリに保存され、バッテリ上がりやバッテリ外れが発生しても、そのデータを継続して使用できるようにしている。
【０００５】
つまり、この種の電子制御装置では、電源供給が停止されても継続して保存すべき学習値やダイアグノシス情報などの特定のデータ（以下、継続使用データという）を、予め決められた更新書込条件が成立する毎（例えば、一定時間毎や電源供給が停止されて動作を終了する直前毎）に、通常のＲＡＭからＥＥＰＲＯＭなどの書換可能不揮発性メモリにコピーする。そして、電源が供給されて動作を開始する初期動作時などにおいて、その書換可能不揮発性メモリから通常のＲＡＭへ継続使用データを転送することにより、過去に算出した学習値やダイアグノシス情報を失わずに使用できるようにしている。
【０００６】
ここで、制御プログラムがフラッシュＲＯＭに記憶され、学習値やダイアグノシス情報といった継続使用データがＥＥＰＲＯＭに記憶される場合を例に挙げると、この種の電子制御装置では、制御プログラムのバージョンアップに伴って、ＥＥＰＲＯＭのデータ配列（即ち、どの種類のデータがＥＥＰＲＯＭのどのアドレスに格納されるか）が変わることが多い。これは、制御プログラムのバージョンアップにより、新たな学習制御が追加されて継続使用データの種類が増加したり、不要となった学習制御が削除されて継続使用データの種類が減少したりするためである。
【０００７】
また、ＥＥＰＲＯＭ内のデータは、制御プログラムによって更新されるが、一般に、その更新のための書き込みは、頻繁ではなく、前述したように、予め決められた更新書込条件が成立しなければ行われない。このため、プログラム書換機能を有した電子制御装置において、フラッシュＲＯＭ内の制御プログラムが新しいバージョンのものに書き換えられた場合に、ＥＥＰＲＯのデータ配列が新旧の制御プログラム間で変わっていると、ＥＥＰＲＯＭ内のデータが新たな制御プログラムによって適正値に書き換えられるまでの間（即ち、前述の更新書込条件が成立するまでの間）は、正常でない学習値などを用いて制御対象を制御してしまう可能性がある。これは、例えば、ＥＥＰＲＯＭから、ある種類のデータを読み出したつもりでも、その読み出し先のアドレスには、他の種類のデータが格納されている可能性があるからである。
【０００８】
一般に、制御プログラムを書き換えた際には、ＥＥＰＲＯＭの初期化（即ち、ＥＥＰＲＯＭの各アドレスのデータを、制御プログラムに合った初期値に設定すること）を行う必要がある。そして、このようなＥＥＰＲＯＭの初期化に関する技術として、ＥＥＰＲＯＭの使用容量が変わった場合だけ、ＥＥＰＲＯＭを初期化する、という技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−３２３９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した従来技術では、ＥＥＰＲＯＭのデータ配列が変更され、継続使用データの種類が増減しても、ＥＥＰＲＯＭの使用容量に変化がない限り初期化が実施されないため、異常なデータが制御に適用されることになるという問題点があった。
【００１１】
また、ＥＥＰＲＯＭの使用容量に変化がある場合に継続使用可能なデータを全て初期化しているが、継続使用データには、学習値が収束するまでかなりの時間が必要なデータもあり、走行フィーリングの悪化や変速ショックが継続するという問題点があった。
【００１２】
本発明は、前記のような課題を解決するためになされたものであり、電気的に記憶内容の書き換えが可能な第１の書換可能不揮発性メモリに記憶した制御プログラムをオンボードで書き換え可能であると共に、その制御プログラムで算出した学習値や異常検出結果等の特定のデータを、電気的に記憶内容の書き換えが可能な第２の書換可能不揮発性メモリに保存することができるようにした電子制御装置において、第１の書換可能不揮発性メモリ内の制御プログラムを書き換えた際に、第２の書換可能不揮発性メモリの初期化の時、継続使用可能なデータと初期化するデータを区別することができる電子制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る電子制御装置は、第１の制御プログラム及び第１の書き換え処理プログラムを記憶する、電気的に記憶内容の書き換えが可能な第１の書換可能不揮発性メモリと、前記第１の制御プログラムにより使用される第１の継続使用データを記憶する、電気的に記憶内容の書き換えが可能な第２の書換可能不揮発性メモリと、データを一時的に記憶する揮発性メモリと、プログラムを実行する中央演算処理装置とを備え、前記第１の書換可能不揮発性メモリ上の第１の制御プログラムは、書換モードの場合には、前記第１の書換可能不揮発性メモリ上の第１の書き換え処理プログラムを揮発性メモリにコピーし、前記揮発性メモリ上の第１の書き換え処理プログラムは、前記第１の書換可能不揮発性メモリ上の第１の制御プログラム及び第１の書き換え処理プログラムを、外部から送信されてくる第２の制御プログラム、第２の書き換え処理プログラム、データ配列順序を並び替えるための情報であるデータ配列変換情報、継続使用データの並び替えを指示するための情報である並び替え指示情報、及び継続使用データの初期値に書き換え、前記第１の書換可能不揮発性メモリ上の第２の制御プログラムは、前記第２の書換可能不揮発性メモリ上の第１の継続使用データを揮発性メモリにコピーし、前記第１の書換可能不揮発性メモリ上のデータ配列変換情報を揮発性メモリにコピーし、前記第２の書換可能不揮発性メモリ上の第１の継続使用データの誤り検出符号と、前記揮発性メモリにコピーした第１の継続使用データの誤り検出符号が一致している場合には、前記第１の書換可能不揮発性メモリ上の並び替え指示情報を揮発性メモリにコピーし、前記並び替え指示情報が指示のときには、前記第１の継続使用データを、前記データ配列変換情報に基づいて並び替え処理を行い、前記データ配列変換情報に基づいて、前記第１の継続使用データのうち初期化が必要な継続使用データを、前記初期値に更新するものである。
【発明の効果】
【００１４】
本発明に係る電子制御装置によれば、第１の書換可能不揮発性メモリ内の制御プログラムを書き換えた際に、第２の書換可能不揮発性メモリの初期化の時、継続使用可能なデータと初期化するデータを区別し、継続使用可能なデータを継続使用することで走行フィーリングの悪化や変速ショックの発生を防止することができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の実施の形態１に係る電子制御装置の構成を示す図である。
【図２】この発明の実施の形態１に係る電子制御装置の制御全体の動作を示すフローチャートである。
【図３】この発明の実施の形態１に係る電子制御装置の電源投入後の初期化処理を示すフローチャートである。
【図４】この発明の実施の形態１に係る電子制御装置のＥＥＰＲＯＭに記憶するデータの並び替え処理を示すフローチャートである。
【図５】この発明の実施の形態１に係る電子制御装置のＥＥＰＲＯＭに記憶するデータの初期化処理を示すフローチャートである。
【図６】この発明の実施の形態１に係る電子制御装置のシステム停止処理を示すフローチャートである。
【図７】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え前の状態を示す図である。
【図８】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え実施中の状態を示す図である。
【図９】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え実施中及び後の状態を示す図である。
【図１０】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え後の状態を示す図である。
【図１１】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図１２】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図１３】この発明の実施の形態１に係る電子制御装置の制御プログラムの書き換え後、初回の電源投入時の状態を示す図である。
【図１４】この発明の実施の形態１に係る電子制御装置の継続使用データの格納時の状態を示す図である。
【図１５】この発明の実施の形態１に係る電子制御装置のシステム停止処理時の状態を示す図である。
【図１６】この発明の実施の形態１に係る電子制御装置のシステム停止処理時の状態を示す図である。
【図１７】この発明の実施の形態１に係る電子制御装置の制御プログラム書き換え後、２回目以降の電源投入時の状態を示す図である。
【図１８】この発明の実施の形態１に係る電子制御装置の継続使用データの並び替え処理を説明するＲＡＭの状態変遷図である。
【図１９】この発明の実施の形態１に係る電子制御装置の書き換え後の制御プログラムで追加された継続使用データの初期化処理を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の電子制御装置の好適な実施の形態につき図面を用いて説明する。
【００１７】
実施の形態１．
この発明の実施の形態１に係る電子制御装置について図１から図１９までを参照しながら説明する。図１は、この発明の実施の形態１に係る電子制御装置の構成を示す図である。なお、以降では、各図中、同一符号は同一又は相当部分を示す。
【００１８】
図１において、車両（自動車）に搭載されて変速機の制御を行う、実施の形態１に係る電子制御装置（ＥＣＵ）１００は、後述する入力処理回路からのセンサ信号等に基づき、変速機４００を制御するための様々な処理を行うマイクロコンピュータ（以下、マイコンという）１０と、このマイコン１０と通信線２１を介して接続されるＥＥＰＲＯＭ（第２の書換可能不揮発性メモリ）２０と、エンジン３００に接続された変速機４００の運転状態を検出する様々なセンサ４０１からの信号を入力して波形処理する入力処理回路３０と、マイコン１０からの制御信号に応じて、変速機４００に取付けられた油圧制御装置（リニアソレノイド）等のアクチュエータ４０２を駆動する出力回路４０と、メモリ書換装置２００との間で通信線５１を介してデータ通信を行うための通信回路５０とが設けられている。
【００１９】
マイコン１０は、プログラムを実行するＣＰＵ（中央演算処理装置）１と、このＣＰＵ１によって実行されるプログラム（詳しくは、そのプログラムを構成する命令コードやそのプログラムの実行時に参照される固定のデータ）を記憶する不揮発性のフラッシュＲＯＭ（第１の書換可能不揮発性メモリ）２と、ＣＰＵ１による演算結果等を一時的に記憶するための揮発性のＲＡＭ（揮発性メモリ）３と、ＥＥＰＲＯＭ２０、入力処理回路３０、出力回路４０及び通信回路５０との間で信号やデータをやり取りするための入出力インターフェース回路（Ｉ／Ｏ）４と、各種レジスタ（図示省略）等とが設けられている。
【００２０】
ここで、フラッシュＲＯＭ２は、電気的に記憶内容の消去及び書き込みが可能な第１の書換可能不揮発性メモリに相当するものであり、このフラッシュＲＯＭ２には、制御対象としての変速機４００を制御するための制御プログラム（詳しくは、変速機制御用のプログラムを構成する命令コード及びそのプログラムの実行時に参照される固定の制御データ）が記憶されている。
【００２１】
一方、ＥＥＰＲＯＭ２０には、当該ＥＣＵ１００への電源供給が停止されても継続して保存すべき学習値やダイアグノシス情報などの特定のデータ（継続使用データ）が記憶されている。例えば、特定の変速（２→３アップシフト、停止前ダウンシフト）時の油圧を学習することで変速ショックを軽減することが可能であり、また降坂路でのエンジンブレーキ制御におけるブレーキの効き具合を運転者の嗜好にあわせることが可能である。このように学習値を活用して走行時のフィーリングを良くしている。
【００２２】
つぎに、この実施の形態１に係る電子制御装置の動作について図面を参照しながら説明する。
【００２３】
ＥＣＵ１００は、車両のイグニッションスイッチがオンされると、動作電源が供給されて動作する。
【００２４】
また、ＥＣＵ１００は、フラッシュＲＯＭ２に書き込まれている制御プログラムを新たな内容に書き換える際に、メモリ書換装置２００が接続される。そして、図１に示すように、ＥＣＵ１００とメモリ書換装置２００とは通信回路５０及び通信線５１を介して、通信する。
【００２５】
ＥＣＵ１００において、マイコン１０のＣＰＵ１が、まず、フラッシュＲＯＭ２内のブートプログラムを実行する。そして、メモリ書換装置２００から当該ＥＣＵ１００へフラッシュＲＯＭ２内の制御プログラムの書き換えを指示する書換要求コマンドが送信されて来ない通常時には、そのブートプログラムによりフラッシュＲＯＭ２内の制御プログラムをコールし、その制御プログラムにより、後述する初期化処理を行った後、変速機４００を制御するための制御処理を行う。
【００２６】
また、マイコン１０のＣＰＵ１は、ブートプログラムの実行時に、メモリ書換装置２００から当該ＥＣＵ１００へ書換要求コマンドが送信されて来たことを検出すると、動作モードをプログラムの書換モードに移行させて、フラッシュＲＯＭ２に格納されている制御プログラムを、メモリ書換装置２００から通信線５１及び通信回路５０を介して送信されて来る新たな制御プログラムに書き換えるための書き換え処理を行う。
【００２７】
ここで、ＥＣＵ１００のマイコン１０で実行される処理の内容について、図２のフローチャートを用いて説明する。図２は、マイコン１０で実行される処理の全体を表すフローチャートであり、そのステップ（以下、単に「Ｓ」と記す）１１０、Ｓ１２０、Ｓ１４０乃至Ｓ１８０の処理は、フラッシュＲＯＭ２内の制御プログラムによって実行され、Ｓ１３０の処理は、フラッシュＲＯＭ２からＲＡＭ３にコピーされる書き換え処理プログラムによって実行される。
【００２８】
図２に示すように、マイコン１０は、初期状態（リセット状態）から動作を開始すると、最初のＳ１１０において、所定時間以内にメモリ書換装置２００から書換要求コマンドが送信されて来たか否かを判定することにより、書換モードに移行すべきか否かを判断する。
【００２９】
そして、Ｓ１１０において、所定時間以内に書換要求コマンドが送信されて来たと判定した場合には、書換条件が成立したとして、書換モードに移行するために、Ｓ１２０へ進む。
【００３０】
次に、Ｓ１２０において、書き換え処理プログラムをフラッシュＲＯＭ２からＲＡＭ３にコピーする。
【００３１】
これにより、フラッシュＲＯＭ２からＲＡＭ３上にコピーした書き換え処理プログラムがＲＡＭ３上で実行され、Ｓ１３０に示す如く、フラッシュＲＯＭ２に格納されている現在の制御プログラムをメモリ書換装置２００から送信されて来る新たな制御プログラムに書き換えるための処理が行われる。
【００３２】
即ち、図２のＳ１３０では、メモリ書換装置２００から送信されて来る新たな制御プログラム（書き換え対象プログラム）を受信すると共に、その受信した書き換え対象プログラムをフラッシュＲＯＭ２に、旧来の制御プログラムに代えて、書き込む書き換え処理を行う。
【００３３】
次に、制御プログラムの書き換えが終了したならば、再起動するために、Ｓ１４０において、リセット処理を行う。書き換えが完了しているためＳ１１０において、書換条件が成立せず、Ｓ１５０に進む。
【００３４】
一方、図２のＳ１１０において、所定時間以内に書換要求コマンドが送信されて来なかったと判定した場合には、書換条件が成立せず、書換モードに移行すべきではないと判断して、Ｓ１５０に進む。
【００３５】
そして、Ｓ１５０では、フラッシュＲＯＭ２内の制御プログラムに従って、電源投入後の初期化処理が行われ、更にその後、Ｓ１６０に示す如く変速機４００を制御するための制御処理がＳ１７０でＩＧＯＦＦ（イグニッションスイッチのオフ）を判定するまで繰り返し実行されることとなる。Ｓ１５０の電源投入時の初期化処理の詳細内容は後述する。
【００３６】
一方、図２のＳ１７０でＩＧＯＦＦを検出した場合には、Ｓ１８０に進み、システム停止処理を行ってＥＣＵ１００の動作を終了する。Ｓ１８０のシステム停止処理の詳細内容は後述する。
【００３７】
尚、制御処理の中では、変速機４００を適切に制御するための学習制御の処理や、変速機４００及びそれの周辺機器の異常を検出するための異常検出処理が行われる。そして更に、この制御処理では、ＲＡＭ３上で演算される各種データ（即ち、制御プログラムによって更新及び参照されるデータ）のうち、学習制御で算出した制御パラメータなどの学習値や、異常検出結果を表すダイアグノシス情報といった特定のデータについては、当該ＥＣＵ１００への電源供給が停止されても継続して保存すべき継続使用データとして、予め決められた更新書込条件が成立する毎（例えば、一定時間毎や電源供給が停止されて動作を終了する直前毎）に、ＲＡＭ３から継続使用データをＥＥＰＲＯＭ２０へコピーする。
【００３８】
次に、Ｓ１５０で行う初期化処理について、図２乃至図６のフローチャートを用いて、詳しい内容を説明する。
【００３９】
まず、図２のＳ１５０で初期化処理が開始されると、図３に示すように、最初のＳ２１０において、ＲＡＭ３をゼロに初期化する。
【００４０】
次に、Ｓ２２０において、書き換え前の制御プログラムで使用していた、ＥＥＰＲＯＭ２０内の継続使用データをＲＡＭ３上にコピーする。
【００４１】
次に、Ｓ２３０において、フラッシュＲＯＭ２上のデータ配列変換情報をＲＡＭ３上にコピーする。
【００４２】
次に、Ｓ２４０において、ＲＡＭ３上にコピーした書き換え前の制御プログラムで使用していた継続使用データの整合性判定を行う。
【００４３】
ここで、整合性判定は、ＥＥＰＲＯＭ２０に継続使用データと共に書き込んだ継続使用データのＳＵＭ値と、ＥＥＰＲＯＭ２０からＲＡＭ３に読み出した継続使用データのＳＵＭが、一致している場合に「正常」、不一致の場合に「異常」と判定する。なお、一致を確認するための値はＳＵＭ値に限らず、ＣＲＣ値など、誤りが含まれていないことを検出するための誤り検出符号等の他の手段で求めた値でも良い。
【００４４】
Ｓ２４０の整合性判定結果が「正常」であれば、Ｓ２５０に進み、フラッシュＲＯＭ２上の並び替え指示情報をＲＡＭ３上にコピーする。
【００４５】
次に、Ｓ２６０において、Ｓ２５０でＲＡＭ３上に読み込んだ並び替え指示情報が「指示」となっていればＳ２７０に進み、Ｓ２２０でＥＥＰＲＯＭ２０からＲＡＭ３上にコピーした書き換え前の制御プログラムで使用していた継続使用データを、Ｓ２３０でＲＡＭ３にコピーしたデータ配列変換情報に基づいて並び替え処理を行う。
【００４６】
次に、Ｓ２７０で行う並び替え処理について図４のフローチャートを用いて、詳しい内容を説明する。
【００４７】
まず、Ｓ３１０において、変数Ｎを１とする。
【００４８】
次に、Ｓ３２０において、ＲＡＭ３上にコピーしたデータ配列変換情報のＮ番目のデータをＭにコピーする。
【００４９】
次に、Ｓ３３０において、Ｍの値を確認する。Ｍがゼロでない場合は、Ｓ３４０に進む。
【００５０】
Ｓ３４０において、書き換え前の制御プログラムで使用していた継続使用データのＭ番目のデータをＬにコピーする。
【００５１】
次に、Ｓ３５０において、Ｌを書き換え後の制御プログラムで使用する継続使用データのＮ番目にコピーする。ここで、Ｍがゼロの場合は何もしない。
【００５２】
その後、Ｓ３６０において、Ｎに１加算して、Ｓ３７０でＮがデータ配列変換情報のデータ数を超えたかを確認する。Ｎがデータ配列変換情報のデータ数を超えるまではＳ３２０に戻り処理を継続する。Ｎがデータ配列変換情報のデータ数を超えた場合には図３のＳ２８０に進む。
【００５３】
一方、Ｓ２６０において、Ｓ２５０でＲＡＭ３上に読み込んだ並び替え指示情報が「非指示」となっていればＳ２７０の処理を行うことなくＳ２８０に進む。
【００５４】
また一方、Ｓ２４０の継続使用データの整合性判定の結果が「異常」の場合は、Ｓ２９０において、ＲＡＭ３上にコピーしている、並び替え指示情報のデータをゼロに更新する。これは、データ配列変換情報のデータをゼロにすることで別の処理をさせるためである。
【００５５】
次に、Ｓ２８０において、ＲＡＭ３上のデータ配列変換情報を参照し、ゼロが設定してある位置、すなわち書き換え後の制御プログラムで使用する継続使用データ配列では初期化が完了していないデータについて初期化処理を行う。この初期化処理について図５のフローチャートを用いて、詳しい内容を説明する。
【００５６】
まず、Ｓ４１０において、変数Ｎを１とする。
【００５７】
次に、Ｓ４２０において、ＲＡＭ３上にコピーしたデータ配列変換情報のＮ番目のデータの値を確認する。ここで、値がゼロの場合は、Ｓ４３０に進み、フラッシュＲＯＭ２上の制御プログラムに定義されている初期値を、継続使用データのＮ番目にコピーする。値がゼロでない場合は何もしない。
【００５８】
その後、Ｓ４４０において、Ｎに１加算して、Ｓ４５０でＮがデータ配列変換情報のデータ数を超えたか確認する。Ｎがデータ配列変換情報のデータ数を超えるまではＳ４２０に戻り処理を継続する。Ｎがデータ配列変換情報のデータ数を超えた場合は図３のＳ２８０の初期化処理を終了する。
【００５９】
その後、図２のＳ１６０に進んで、変速機制御処理を開始する。
【００６０】
そして、Ｓ１７０でＩＧＯＦＦを検出した場合には、Ｓ１８０に進み、システム停止処理を行ってＥＣＵ１００の動作を終了する。
【００６１】
次に、Ｓ１８０で行うシステム停止処理について図６のフローチャートを用いて、詳しい内容を説明する。
【００６２】
まず、最初のＳ５１０において、フラッシュＲＯＭ２上の並び替え指示情報を参照し、「非指示」の場合は、Ｓ５２０において、書き換え前の制御プログラムで使用する継続使用データの配列から並び替えられていない、ＲＡＭ３上の継続使用データを、ＥＥＰＲＯＭ２０にコピーし、システムを終了する。
【００６３】
一方、Ｓ５１０において、参照したフラッシュＲＯＭ２上の並び替え指示情報が「指示」の場合は、Ｓ５３０において、書き換え後の制御プログラムで使用する継続使用データの配列に並び替えられている、ＲＡＭ３上の継続使用データを、ＥＥＰＲＯＭ２０にコピーする。
【００６４】
次に、Ｓ５４０において、フラッシュＲＯＭ２上の書き換え処理プログラムを部分書き換え処理プログラムとしてＲＡＭ３へコピーする。
【００６５】
次に、Ｓ５５０において、ＲＡＭ３上の部分書き換え処理プログラムを用いて、フラッシュＲＯＭ２上の並び替え指示情報を「指示」から「非指示」へ更新し、システムを終了する。なお、並び替え指示情報の「非指示」はゼロである。
【００６６】
図１で示す、ＥＣＵ１００のマイコン１０で実行される処理の内容について、図２乃至図６のフローチャートを用いて説明したが、メモリ書換装置２００がＥＣＵ１００に接続され、新たな制御プログラムに更新されるとともに、継続使用データの構成が変化した場合のフラッシュＲＯＭ２、ＲＡＭ３、ＥＥＰＲＯＭ２０の状態の変遷について図７乃至図１７を用いて説明する。図中の旧プログラムは書き換え前の制御プログラムを、旧データは書き換え前の制御プログラムで使用していた継続使用データを、新プログラムは書き換え後の制御プログラムを、新データは書き換え後の制御プログラムで使用する継続使用データを、それぞれ表す。
【００６７】
図７は、新たな制御プログラムに書き換える前の状態である。この時、メモリ書換装置２００には新プログラムが書き込まれているが、メモリ書換装置２００とＥＣＵ１００は接続されていない。また、フラッシュＲＯＭ２には旧プログラムが書き込まれており、ＥＥＰＲＯＭ２０には旧プログラムで使用していた旧データが書き込まれている状態である。
【００６８】
ここで、旧データは、例えば、ＯＮ２−３変速油圧学習値や停止前ダウンシフト変速油圧学習値といった、特定の変速における油圧学習値などがあり、部品劣化による油圧特性の変化に対応するため長期に渡って学習を行うことが多い。
【００６９】
次に、制御プログラムを書き換えるため、通信線５１を介してメモリ書換装置２００が接続され、マイコン１０が、動作開始後所定時間内にメモリ書換装置２００からの書換要求コマンドを受信したため、図８で示すように、書換モードに移行して、フラッシュＲＯＭ２上の書き換え処理プログラムをＲＡＭ３上にコピーした状態に変化する。これは、図２のフローチャートのＳ１２０で説明した動作である。
【００７０】
また、図９に示すように、フラッシュＲＯＭ２からＲＡＭ３上にコピーした書き換え処理プログラムがＲＡＭ３上で実行され、フラッシュＲＯＭ２に格納されている現在の制御プログラムをメモリ書換装置２００から送信されて来る新たな制御プログラムに書き換えるための処理が行われる。即ち、メモリ書換装置２００から送信されて来る新たな制御プログラム（書き換え対象プログラム）を受信し、その受信した書き換え対象プログラムにフラッシュＲＯＭ２の内容を書き換えた状態となる。これは、図２のフローチャートのＳ１３０で説明した動作である。この時、書き換え対象プログラムには、書き換え処理プログラム、並び替え指示情報、データ配列変換情報、新データ６の初期値Ｇも含まれる。
【００７１】
そして、図１０に示すように、新たな制御プログラムがフラッシュＲＯＭ２に格納されると、リセット処理が行われ、制御プログラムの書き換え後、初めての電源投入となる。
【００７２】
次に、図１１に示すように、マイコン１０が、書き換え前の制御プログラムで使用していた継続使用データを、ＥＥＰＲＯＭ２０からＲＡＭ３上にコピーしている状態に変化する。これは、図３のフローチャートのＳ２２０で説明した動作である。
【００７３】
その後、図１２に示すように、マイコン１０が、データ配列変換情報をフラッシュＲＯＭ２からＲＡＭ３上にコピーしている状態に変化する。これは、図３のフローチャートのＳ２３０で説明した動作である。
【００７４】
次に、図１３に示すように、フラッシュＲＯＭ２上の並び替え指示情報が「指示」となっているため、ＲＡＭ３上にコピーしたデータ配列変換情報を用いて、書き換え前の制御プログラムで使用していた継続使用データを、書き換え後の制御プログラムで使用する継続使用データの配列に並び替え処理を行い、さらに、フラッシュＲＯＭ２上の新データ６の初期値Ｇを用いて、ＥＥＰＲＯＭ２０に記憶する継続使用データの初期化処理を行う状態となる。これは、図３のフローチャートのＳ２７０、Ｓ２８０で説明した動作である。
【００７５】
次に、ＲＡＭ３上の書き換え後の制御プログラムで使用する継続使用データを、ＥＥＰＲＯＭ２０に記憶させている状態を図１４に示す。即ち、ＥＥＰＲＯＭ２０上の継続使用データが書き換え前の制御プログラムで使用する継続使用データから書き換え後の制御プログラムで使用する継続使用データに更新された状態となる。これは、図６のフローチャートのＳ５３０で説明した動作である。
【００７６】
次に、図１５に示すように、マイコン１０が、部分書き換え処理プログラムをフラッシュＲＯＭ２からＲＡＭ３にコピーした状態となる。これは、図６のフローチャートのＳ５４０で説明した動作である。
【００７７】
次に、図１６に示すように、ＲＡＭ３上の部分書き換え処理プログラムが、フラッシュＲＯＭ２上の並び替え指示情報を「指示」から「非指示」に上書きする状態となる。これは、図６のフローチャートのＳ５５０で説明した動作である。
【００７８】
このため、２回目以降の電源投入時は、図１７に示す状態となっており、フラッシュＲＯＭ２上の並び替え指示情報が「非指示」であるため、マイコン１０はＥＥＰＲＯＭ２０に記憶している継続使用データの並び替えを行わない。
【００７９】
ここで、制御プログラムの書き換え後、初回の電源投入時の初期化処理において、ＥＥＰＲＯＭ２０に記憶する継続使用データの並び替え処理及び初期化処理が行われた場合のＲＡＭ３の状態の変遷について、図１８及び図１９を用いて説明する。
【００８０】
まず、図１８（ａ）は、制御プログラムの書き換え後、初回の電源投入時の初期化処理において、フラッシュＲＯＭ２上のデータ配列変換情報と、ＥＥＰＲＯＭ２０上の書き換え前の制御プログラムで使用していた継続使用データ（図１８、図１９中の旧データを示す）を、コピーした直後のＲＡＭ３の状態を示している。
【００８１】
データ配列変換情報は、例として、１、２、３、５、６、０の値が入っており、その順序は、書き換え後の制御プログラムで使用する継続使用データ（図１８、図１９中の新データを示す）の並びと同じとする。なお、この時点では、ＥＥＰＲＯＭ２０に記憶する継続使用データの並び替え処理及び初期化処理が行われていないため、ＲＡＭ３上の書き換え後の制御プログラムで使用する継続使用データは全てゼロとなっている。また、書き換え前の制御プログラムで使用していた継続使用データは、例として、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆが入っている。さらに、フラッシュＲＯＭ２上の並び替え指示情報は「指示」、新データ６の初期値はＧである。
【００８２】
次に、フラッシュＲＯＭ２上の並び替え指示情報が「指示」であるため、ＥＥＰＲＯＭ２０に記憶する継続使用データの並び替え処理が行われる。処理開始から終了するまでのＲＡＭ３の状態は図１８（ａ）→図１８（ｂ）→図１８（ｃ）→図１８（ｄ）のように変化する。
【００８３】
まず、ＲＡＭ３上のデータ配列変換情報の１番目のデータを参照し、その値が示す位置の書き換え前の制御プログラムで使用していた継続使用データを、書き換え後の制御プログラムで使用する継続使用データの１番目にコピーする。即ち、図１８（ｂ）に示すように、書き換え後の制御プログラムで使用する継続使用データの１番目はＡとなる。これは、図４のフローチャートのＳ３１０で説明したＮ＝１の場合の動作である。
【００８４】
さらに、並び替え処理を進める。ＲＡＭ３上のデータ配列変換情報の４番目のデータが５であるため、書き換え前の制御プログラムで使用していた継続使用データの５番目のデータを、書き換え後の制御プログラムで使用する継続使用データの４番目にコピーする。即ち、図１８（ｃ）に示すように、書き換え後の制御プログラムで使用する継続使用データの４番目はＥとなり、先頭からのデータはＡ、Ｂ、Ｃ、Ｅとなる。
【００８５】
さらに、並び替え処理を進める。ＲＡＭ３上のデータ配列変換情報の６番目のデータが０である場合は、書き換え前の制御プログラムで使用していた継続使用データが、書き換え後の制御プログラムで使用する継続使用データの構成から削除されているとみなし、書き換え後の制御プログラムで使用する継続使用データの６番目には何もコピーしない。即ち、図１８（ｄ）に示すように、書き換え後の制御プログラムで使用する継続使用データの６番目はゼロのままとなる。これは、図４のフローチャートのＳ３３０で説明したＭ＝０の場合の動作である。
【００８６】
続いて、並び替え処理において、ＲＡＭ３上のデータ配列変換情報のデータが０であるため、何も処理しなかった、書き換え後の制御プログラムで使用する継続使用データについて、初期化処理を行う。並び替え処理と同様に、ＲＡＭ３上のデータ配列変換情報のデータがゼロであるかを、１番目のデータから確認し、データがゼロの位置の書き換え後の制御プログラムで使用する継続使用データに、フラッシュＲＯＭ２上の初期化データを格納する。即ち、図１９に示すように、書き換え後の制御プログラムで使用する継続使用データの６番目は、フラッシュＲＯＭ２上の新データ６の初期値Ｇとなる。これは、図５のフローチャートで説明した動作である。
【００８７】
以上のような本実施の形態のＥＣＵ１００において、フラッシュＲＯＭ２に最初に制御プログラムを書き込む場合、その最初の制御プログラムＰ１の並び替え指示情報は「非指示」としておく。一方「指示」としてしまった場合は、その最初の制御プログラムＰ１が初めて実行されて、図３の初期化処理が行われ、図４の並び替え処理されるが、この時、ＥＥＰＲＯＭ２０の所定アドレスには情報が何も書き込まれていない（あるいは内容が不定である）ため、整合性不一致と判定され、初期化処理後、ＥＥＰＲＯＭ２０の所定アドレスに書き込む情報は同じになる。さらに、フラッシュＲＯＭ２上の並び替え指示情報も「指示」から「非指示」に上書きされる。
【００８８】
次に、ＥＣＵ１００に電源が投入されて制御プログラムＰ１による図３の初期化処理が行われた際に、フラッシュＲＯＭ２上の並び替え情報が「非指示」となっている場合は、ＥＥＰＲＯＭ２０は初期化されず、そのＥＥＰＲＯＭ２０に格納されている学習値などのデータが初期値に戻されることはない。
【００８９】
その後、フラッシュＲＯＭ２の記憶内容が、最初の制御プログラムＰ１から、その時点で最新の制御プログラム（即ち２番目の制御プログラム）Ｐ２に書き換えられたとする。新たな制御プログラムＰ２の並び替え指示情報は「指示」としておく。
【００９０】
そして、その２番目の制御プログラムＰ２が初めて実行されて、図２のＳ１５０及び図３の電源投入後の初期化処理が行われると、フラッシュＲＯＭ２上の並び替え指示情報の確認が行われる。
【００９１】
ここで、フラッシュＲＯＭ２上の並び替え指示情報が「指示」となっているため、図３のＳ２７０において、ＥＥＰＲＯＭ２０に記憶するデータの並び替え処理が行われる。
【００９２】
次に、図３のＳ２８０において、書き換え後の制御プログラムで使用する継続使用データ配列のうち、初期化が完了していないデータについて初期化処理を行う。
【００９３】
そして、この継続使用データを使用して変速機制御を開始する。
【００９４】
次に、図２のＳ１７０において、ＩＧＯＦＦを判定した場合には、上述のとおり継続使用データをＥＥＰＲＯＭ２０にコピーしてシステムを終了する。
【００９５】
以上のように、実施の形態１によれば、ＥＣＵ１００は、制御プログラムのバージョンアップ（書き換え）に伴いＥＥＰＲＯＭ２０のデータ配列が変更される場合にはデータ配列変換情報を作成し、並び替え指示情報を「指示」とすることで、旧制御プログラムの実行で蓄積されたＥＥＰＲＯＭ２０内の学習値を、新制御プログラムでも引き続き使用することができる。このため、制御プログラムをバージョンアップする毎に必ず学習値をもう一度学習制御によって記憶させ直す、という手間がなくなるとともに、学習値が初期値に戻ることによるフィーリング悪化を防止できる。
【００９６】
しかも、実施の形態１のＥＣＵ１００では、フラッシュＲＯＭ２内の制御プログラムがバージョンアップされても、ＥＥＰＲＯＭ２０のデータ配列が変わっていなければ、並び替え指示情報を「非指示」とするため、ＥＥＰＲＯＭ２０は初期化されない。このため、制御プログラムがバージョンアップされても、ＥＥＰＲＯＭ２０のデータ配列に変更がなかった場合には、旧制御プログラムの実行によって蓄積されたＥＥＰＲＯＭ２０内のデータを、新制御プログラムで引き続き使用することができる。
【００９７】
このため、例えばＥＣＵ１００の評価段階において、制御プログラムは変更したが、ＥＥＰＲＯＭ２０のデータ配列は変わらないといった場合には、データ配列変換情報を作成し、並び替え指示情報を「指示」とした場合と同様に学習値が初期値に戻ることによるフィーリング悪化を防止できる。
【００９８】
以上のことから、実施の形態１のＥＣＵ１００によれば、フラッシュＲＯＭ２内の制御プログラムを書き換えた際、旧制御プログラムの実行によって蓄積されたＥＥＰＲＯＭ２０内のデータを、新制御プログラムで引き続き使用することが、簡単に且つ適切に実施することができるようになる。
【００９９】
以上、本発明の一実施の形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。例えば、実施の形態１のＥＣＵ１００では、学習値などを保存しておくための第２の不揮発性メモリとして、ＥＥＰＲＯＭ２０を用いたが、フラッシュＲＯＭなどの他の書換可能不揮発性メモリを用いても良い。
【０１００】
また、実施の形態１のＥＣＵ１００は、車両の変速機を制御するものであったが、本発明は、例えばエンジン、ブレーキ、サスペンション等の他の制御対象を制御する電子制御装置に対しても、全く同様に適用することができる。
【符号の説明】
【０１０１】
１  ＣＰＵ、２  フラッシュＲＯＭ、２  ＲＡＭ、４  Ｉ／Ｏ１０  マイコン、２０  ＥＥＰＲＯＭ、２１  通信線、３０  入力処理回路、４０  出力回路、５０  通信回路、５１  通信線、２００  メモリ書換装置、３００  エンジン、４００  変速機、４０１  センサ、４０２  アクチュエータ。
【図１】
2011150617.tif 000003
【図２】
2011150617.tif 000004
【図３】
2011150617.tif 000005
【図４】
2011150617.tif 000006
【図５】
2011150617.tif 000007
【図６】
2011150617.tif 000008
【図７】
2011150617.tif 000009
【図８】
2011150617.tif 000010
【図９】
2011150617.tif 000011
【図１０】
2011150617.tif 000012
【図１１】
2011150617.tif 000013
【図１２】
2011150617.tif 000014
【図１３】
2011150617.tif 000015
【図１４】
2011150617.tif 000016
【図１５】
2011150617.tif 000017
【図１６】
2011150617.tif 000018
【図１７】
2011150617.tif 000019
【図１８】
2011150617.tif 000020
【図１９】
2011150617.tif 000021