(57)【要約】 【課題】  電子制御装置のプログラムを変更するとき、データの新しい構成情報に従って以前のデータの構成を変更する。【解決手段】電子制御装置は、コンピュータ・プログラムを格納するための書換可能な第１の不揮発性メモリ、および前記プログラムが使用するデータを格納するための書換可能な第２の不揮発性メモリを備える。この電子制御装置は、外部装置と接続して、コンピュータ・プログラムを前記第１の不揮発性メモリに書き込む手段を有する。さらに、電子制御装置は、第２の不揮発性メモリに記憶されているデータの構成と第１の不揮発性メモリに書き込まれたプログラムが指定するデータ構成情報とを比較し、第２の不揮発性メモリに記憶されているデータを第１の構成情報に従って新しい構成に変換して、第２の不揮発性メモリに書き込む手段を有する。   【選択図】図１
2006063939.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・プログラムを格納するための書換可能な第１の不揮発性メモリ、および前記プログラムが使用するデータを格納するための書換可能な第２の不揮発性メモリを備える電子制御装置であって、
外部装置に接続して、コンピュータ・プログラムを前記第１の不揮発性メモリに書き込む手段と、
前記第２の不揮発性メモリに記憶されているデータの構成と前記第１の不揮発性メモリに書き込まれたコンピュータ・プログラムが指定するデータ構成情報とを比較し、前記第２の不揮発性メモリに記憶されているデータを前記データ構成情報に従って新しい構成に変換して、該第２の不揮発性メモリに書き込む手段と、
を備える電子制御装置。
【請求項２】
前記第１の不揮発性メモリは、メモリ全体またはブロック単位で一括消去を行うタイプのメモリであり、前記第２の不揮発性メモリは、ビット単位、バイト単位、またはワード単位で消去を行うことができるタイプのメモリである、請求項１に記載の電子制御装置。
【請求項３】
所与のデータに関し、前記データ構成情報が規定する単位と前記第２不揮発性メモリに記憶されているデータの単位が異なるときは、該データを前記データ構成情報が規定する単位に変換する手段を備える、請求項１に記載の電子制御装置。
【請求項４】
前記第２の不揮発性メモリに書き込む手段は、前記第２の不揮発性メモリに記憶されているデータに含まれるデータ項目であって、前記データ構成情報に含まれないものがあるときは、該データ項目のデータを削除し、該データ項目の記憶位置に他のデータ項目を記憶させる請求項３に記載の電子制御装置。
【請求項５】
前記第２の不揮発性メモリに書き込む手段は、前記データ構成情報に該第２の不揮発性メモリに記憶されていないデータ項目があるときは、該データ項目のデータを前記第２の不揮発性メモリに書き込む請求項３に記載の電子制御装置。
【請求項６】
前記電子制御装置は、車両に搭載される電子制御装置であり、前記データは、車両を制御するための演算に使用するパラメータの学習値を含んでいる、請求項１から５のいずれかに記載の電子制御装置。
【請求項７】
前記第１の不揮発性メモリおよび第２の不揮発性メモリは、共通のハードディスク装置である、請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムを書き換えることができる電子制御装置に関し、より具体的にはプログラムの書換に伴ってデータの構成を変換して記憶することができる電子制御装置に関する。
【背景技術】
【０００２】
近年、車両に搭載される電子制御装置、機械を制御する電子制御装置、家庭電化製品に内蔵される電子制御装置など、製品の制御に使われる電子制御装置の数が増大している。これらの電子制御装置は、コンピュータの一形態であり、読取専用メモリ（ROM）に格納されたコンピュータ・プログラムによって動作している。これらの製品の耐用年数は比較的長いから、使用している間にプログラムを変更、改良することがある。
【０００３】
この場合、使用中の電子制御装置に内蔵されているプログラムを更新することが望まれる。このため、プログラムを記憶するメモリとして、書き換え可能な不揮発性メモリを使用し、必要に応じてプログラムを更新することが行われる。
【０００４】
特許文献１には、車載の電子制御装置において、ROMを書き換えるに際し、RAMのバックアップ領域のデータを外部装置に転送しておき、ROMの書き換えが終了してから、そのデータをRAMのバックアップ領域に戻すことが記載されている。
【０００５】
特許文献２には、車載の電子制御装置において、制御メモリを書き換える際、制御メモリに学習値が記憶されているときは、この学習値が初期値に書き換えられないよう、書き換えを禁止することが記載されている。
【０００６】
特許文献３には、車載の電子制御装置に実装されたフラッシュメモリにおいて、プログラム転送の際に異常が検出されると、通信ソフトをフラッシュメモリに退避させることが記載されている。
【０００７】
特許文献４には、車載の電子制御装置に実装された書き換え可能の不揮発性メモリを書き換える際の、アドレス管理について記載されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
自動車、家庭電化製品などに使用される電子制御装置の多くは、使用条件に応じた最適の制御をすることができるよう、演算のパラメータのいくつかは、使用状況に応じて学習し、学習値を記憶しておいて利用する方式をとっている。このような電子制御装置のプログラムを変更するとき、それまでの学習値を消去して初期値に設定すると、再び最適の学習値に到達するまでに時間を要することになり、利便性を一時的に低下させることになる。
【０００９】
上に掲げた従来技術においても、学習値を保存するなどの工夫がされているが、新しいプログラムにおいて使用されるデータの構成(configuration、コンフィギュレーション)がそれまでのものから変更になるとき、過去のデータを利用することができなかった。
【００１０】
電子制御装置のプログラムを変更するとき、データの新しい構成情報に従って以前のデータの構成を変更する手法が必要とされている。
【課題を解決するための手段】
【００１１】
この発明の電子制御装置は、コンピュータ・プログラムを格納するための書換可能な第１の不揮発性メモリ、および前記プログラムが使用するデータを格納するための書換可能な第２の不揮発性メモリを備える。この電子制御装置は、外部装置と接続して、コンピュータ・プログラムを前記第１の不揮発性メモリに書き込む手段を有する。さらに、電子制御装置は、第２の不揮発性メモリに記憶されているデータの構成と第１の不揮発性メモリに書き込まれたプログラムが指定するデータ構成情報とを比較し、第２の不揮発性メモリに記憶されているデータを第１の構成情報に従って新しい構成に変換して、第２の不揮発性メモリに書き込む手段を有する。
【００１２】
この発明によると、過去のデータが新しいプログラムが指定するデータ構成情報に従って変換されて不揮発性メモリに記憶されるので、プログラムが更新されても、それまでに蓄積したデータを活用することができる。
【００１３】
この発明の一形態では、第１の不揮発性メモリは、メモリ全体またはブロック単位で一括消去を行うタイプのメモリであり、前記第２の不揮発性メモリは、ビット単位、バイト単位、またはワード単位で消去を行うことができるタイプのメモリである。このメモリは、設計に応じてビット単位、バイト単位、ワード単位など任意の単位で消去することができる。最小単位のビットごとに消去することができるので、どのような単位で消去するかはアプリケーションに応じた設計事項である。
【００１４】
第１の不揮発性メモリは、代表的にはフラッシュメモリである。第２の不揮発性メモリは、代表的には１つの記憶セルが２つのトランジスタで構成され、原理的にはビット単位で消去することができるEEPROMである。EEPROMは、フラッシュメモリよりも高価であるが、ビット単位で書き換えができ、電源が完全にオフになっても記憶を保持するので、電子制御装置で用いるパラメータの学習値を記憶するのに適している。
【００１５】
この発明の一形態では、所与のデータに関し、新しいプログラムが指定するデータ構成情報で規定される単位と前記第２不揮発性メモリに記憶されているデータの単位が異なるときは、該データを前記データ構成情報が規定する単位に変換する手段を備える。
【００１６】
この形態によると、過去のデータを捨てることなく、新しいプログラムがデータの単位を変更して使用することができる。これにより、過去のデータを気にすることはく、データのレンジの変更、精度の変更などを新しいプログラムにおいて採用することができる。
【００１７】
この発明の一形態においては、第２の不揮発性メモリに書き込む手段は、第２の不揮発性メモリに記憶されているデータに含まれるデータ項目であって、新しいプログラムのデータ構成情報に含まれないものがあるときは、該データ項目のデータを削除し、該データ項目の記憶位置に他のデータ項目を記憶させる。
【００１８】
こうすることにより、第２の不揮発性メモリの記憶空間を有効に利用することができる。
【００１９】
この発明の一形態では、第２の不揮発性メモリに書き込む手段は、データ構成情報に第２の不揮発性メモリに記憶されていないデータ項目があるときは、このデータ項目のデータを第２の不揮発性メモリに書き込む。
【００２０】
このようにプログラムの書き換えに伴って新しいデータ項目を使用することが可能になる。
【００２１】
この発明の一形態では、電子制御装置は、車載の電子制御装置であり、前記データは、車両を制御するための演算に使用するパラメータの学習値を含んでいる。
【００２２】
この形態によると、自動車に搭載される電子制御装置は、プログラムを更新する際に、それまでに蓄積したデータを活かして利用することができる。
【００２３】
この発明の一形態では、自動車に搭載される電子制御装置がハードディスク装置(HDD)を備えている。この形態では、前記第１の不揮発性メモリおよび第２の不揮発性メモリは、共通の１台のHDDで実現することができる。近年、HDDの小型化が進められており、携帯電子装置に搭載することができるHDDが開発されているので、車載の電子制御装置にこれを搭載することも可能である。
【発明を実施するための最良の形態】
【００２４】
次に図面を参照しながら、この発明の実施形態を説明する。図１は、自動車の電子制御装置（Electronic Control Unit, ECU）に含まれるコンピュータ10と、このコンピュータに新しいプログラムを導入するための外部装置であるツール12との関係を示すブロック図である。
【００２５】
自動車の電子制御装置は、車のエンジンその他の箇所から各種のセンサ信号を受け取り、これに基づいて演算を行って、代表的にはエンジンに対する燃料噴射量、点火時期などを制御するための制御信号を生成して、燃料噴射装置、点火プラグなどに送る。車に含まれる多くの部品は、経年変化により特性が変化するので、制御信号を生成するための演算に用いるパラメータには学習値が用いられる。
【００２６】
図１を参照すると、電子制御装置のコンピュータ10は、中央演算装置（CPU）14、およびCPU14による演算の作業領域を与えるランダムアクセスメモリ（RAM）16を備えている。また、この実施例では、コンピュータ10は、プログラムを格納するためのフラッシュメモリ18、およびコンピュータ10が演算に用いるための上述した学習値その他のデータを保存するためのEEPROM20を備えている。フラッシュメモリ18は、ブロック単位で消去可能な不揮発性メモリである。フラッシュメモリは、ブロック単位でないと消去できないという制約があるが、比較的低コストであるので、書き換え頻度の低いプログラムおよびデータの保存に適している。
【００２７】
EEPROM20は、書き換え可能な不揮発性メモリであり、ビット単位で消去することができる点で機能的に優れている。このメモリは、比較的高コストであるので、部分的な書き換えが行われ、しかも電源オフ時にも消えないで保存しておく必要のある上述の学習値などのデータの保存に適している。
【００２８】
車載の電子制御装置の場合、一実施例では、走行中はバックアップRAMに保存された学習値を用いてエンジン制御のための演算が行われ、更新された学習値は、バックアップRAMに記憶される。一例では、イグニションスイッチがオンにされたとき、バックアップRAMの記憶が保持されているならば、すなわちバッテリを外すなどしてバックアップRAMが消去されることがなかったならば、そのままバックアップRAMの内容を使用してエンジン制御のための演算を行う。
【００２９】
バッテリが外されたなどの原因でバックアップRAMの記憶が消えているときは、EEPROMからデータをバックアップRAMにロードして使用する。EEPROMへの書き込みは、イグニションスイッチがオンにされたときに行われる。EEPROMは、RAMに比べて書き込み回数の保証値が小さい（たとえば10万回）ので、書き込み回数を制限して使用する。
【００３０】
図２から図４を参照して、プログラムおよびデータを書き換える手法を説明する。プログラム書き換え装置12を車載の電子制御装置(ECU)にシリアル通信パスを介して接続し、書き換え制御プログラムを起動する（101）。この書き換え制御プログラムは、予めフラッシュメモリ18に格納されている。プログラム書き換え装置12からフラッシュメモリ書き換えの要求がくると、コンピュータ10は、フラッシュメモリ18内の書き換え制御プログラムをRAMに転送し、RAMで書き換え制御プログラムを実行する。書き換え制御プログラムは、コンピュータ10とツール12との通信を制御するほか、フラッシュメモリ18の消去およびフラッシュメモリ18への書き込みを制御する。
【００３１】
コンピュータ10は、起動した書き換え制御プログラムに従って、書き換え装置12から送られてくるデータブロックに対応するフラッシュメモリ18の領域を消去し、受信したデータブロックをフラッシュメモリ18に書き込む(103)。この際、RAM16は書き込まれるデータブロックの一時記憶領域（バッファ）を提供する。書き換え装置12からフラッシュメモリ18に書き込まれる内容には、エンジン制御その他のプログラムおよびこのエンジン制御等のプログラムが使用するテーブルなどのデータが含まれる。フラッシュメモリ18に書き込む際には、これらの内容はすべてデータとして扱われるから、転送される内容の単位をデータブロックと呼ぶ。書き換え装置12からフラッシュメモリ18にデータブロックを書き込む方法は、本願出願人の特許出願に係る前述の特許文献４に詳細に記載されている。
【００３２】
書き換え装置12は、エンジン制御等のプログラムおよびデータに加えて、EEPROM20に保存されているいくつかのパラメータの学習値データの構成情報をフラッシュメモリ18に書き込む。この構成情報の一例を図３に示す。(A)は、現にEEPROM20に保存されている学習値データの構成（configuration）を示し、(B)は、今回書き込まれるプログラムで使用する学習値データの構成を示す。
【００３３】
書き換えプログラムは、EEPROM20のデータを読み出し（105）、データ構成情報の識別番号EIDをフラッシュメモリにロードされた新構成情報のEIDと比較する（107）。図３において、最初の行のEIDは、構成情報の識別番号で、この番号から構成情報のバージョンを知ることができる。図３の例では、(A)の旧構成情報のEID31が123で、(B)の新構成情報のEID31’が124であり、(A)と(B)のバージョンが異なることがわかる。構成情報のバージョンが同じであれば、EEPROM20のデータを変換する必要がないので、処理を終了する。２つのEIDが異なるときは、ステップ111から121の処理を、更新の必要なデータ項目の数だけ、繰り返す(109)。
【００３４】
構成情報の２行目33、33’はEEPROM20に記憶される学習値データの総数を示す。旧構成（A）では32個のデータ項目であったのに対し、新構成(B)では30個のデータ項目が記憶される。構成情報の３行目35には、データ項目１のID、すなわち識別名が記憶される。構成情報の４行目37には、３行目のデータ項目のデータのLSB（最低位ビット）の単位を示す値が格納されている。構成情報は、このようにデータ項目のIDとこのデータの単位との対で形成されている。
【００３５】
データ１から順に処理を進めていき、旧構成にない新しいデータ項目が新構成情報に現れたときは（111）、そのデータ項目の初期値をEEPROM20に書き込む(115)。この初期値は、書き換え装置12からフラッシュメモリ18に導入されるデータに含まれている。
【００３６】
データの単位が変更になるデータ項目が現れたときは(113)、EEPROM20から読み出したデータを変換式に従って新しい単位に変換し、EEPROM20に書き込む（119）。
【００３７】
図３および図４を参照してステップ119の処理の詳細を説明する。旧構成(A)では、データ項目１のIDは、KO2（エンジンの排気系に設けられた酸素濃度センサの出力値）であり、新構成（B）でもデータ項目１のIDは、KO2である。旧構成でのデータのLSB（最低位のビット）の単位は、1/8000hである。一方、新構成でのKO2のLSBの単位は1/4000hである。すなわち、旧構成では、KO2は、固定小数点の数値表示において、LSB=1/8000hで表されていたのに対し、新構成では、同じKO2が固定小数点表示において、LSB=1/4000hで表されることが示されている。
【００３８】
図４は、EEPROM20に記憶されるデータの例を示す。図４(A)は、旧構成情報に従って記憶されている旧データを示し、図４(B)は、新構成情報に従って旧データの上に上書きされる新データを示す。アドレス00には、EIDが記憶される。旧データのEIDが123であったのに対し、新データのEIDは124であるので、アドレス00の内容は、上書きされて124になる。
【００３９】
アドレス01には、旧データではデータ項目１のKO2の学習値9999hが記憶されている。学習値9999hは、固定小数点の数値であり、２進数で表すと、1001 1001 1001 1001である。この数値のLSBの単位は1/8000hである。すなわち、最低位のビットの単位は、（1000 0000 0000 0000）分の１である。このことは、固定小数点の整数部がMSBの１ビットで、小数点が、MSB（最上位のビット）の1と２番目のビット0との間にあることを示している。
【００４０】
新構成情報の４行目37’は、新しいプログラムでは、KO2の学習値のLSBが1/4000hであることを示している。これは、最低位のビットの単位が、(0100 0000 0000 0000)分の１であることを示しており、整数部が２ビットで、小数点が左から２番目のビットと左から３番目のビットとの間にあることを示している。
【００４１】
10進数で表現すると、旧構成では、KO2は、0から2までの値であったのに対し、新構成では、KO2は、0から4までの値をとることができる。このようにデータの構成を変えることによりパラメータのレンジを変えることができる。書き換え装置12は、新構成情報をフラッシュメモリ18に書き込む際に、データ単位の変換プログラムをフラッシュメモリ18に導入する。図４のアドレス01に保存されるKO2の学習値に関しては、変換プログラムは、旧データの9999hをLSB=1/8000hの単位からLSB=1/4000hの単位に変換する。この値は、10進数の1.2に相当する。変換を式で表すと次のようになる。
【数１】
2006063939.tif 000003
【００４２】
こうして変換された値4CCCh（0100 1100 1100 1100）がEEPROM20のアドレス01に上書きされる(119)。この値は、２進数表示では、旧データの9999hを右に１ビットシフトして整数部を２ビットにし、あふれたビットを捨てたものになっている。この例では、変換プログラムは、9999hを右に１ビットだけシフトさせて4CCChを生成し、フラッシュメモリ18のアドレス01に上書きする。
【００４３】
新旧の構成情報でデータの単位が変えられていないデータ項目については、EEPROM20から読み出したデータがそのままEEPROM20に書き込まれる(117)。
【００４４】
図３を参照すると、EEPROM20の次のアドレスに保存されるデータ項目がIXREF（アイドルエア学習値）であることがわかる。旧構成では、IXREFのLSBの単位が1/1000hであるのに対し、新構成ではLSBの単位が1/4000hである。すなわち、旧構成では、LSBの単位が(0001 0000 0000 0000)分の１であったのに対し、新構成では、LSBの単位が(0100 0000 0000 0000)分の１である。このことは、旧構成では、固定小数点の整数部分が4ビットであったのに対し、新構成では、固定小数点の整数部分が2ビットであることを示している。
【００４５】
図４を参照すると、変換プログラムは、EEPROMのアドレス02に保存されているIXREFの値0E66h (0000 1110 0110 0110)を左に２ビットシフトし、オーバーフローするMSB２ビットを捨て、LSBに00を追加した結果の値3998h (0011 1001 1001 1000)をEEPROM20のアドレス02に上書きする。この場合、新構成の値は、小数点以下の部分が2ビット増えており、数値の精度が高められている。
【００４６】
再び図３を参照すると、旧構成での３つ目のデータ項目43は、KREF（燃料補正学習値）である。一方、新構成での３つ目のデータ項目43’は、DISTOLF（累積走行距離）である。このことは、この例では新構成では、データ項目KREFは、使われないことを示している。したがって、変換プログラムは、EEPR0M20のアドレス03に保存されていたKREFの値を消去してDISTOLFの値をこのアドレスに書き込む。旧構成で、DISDOLFが４番目のデータ項目であったときは、その値をLSBの単位に従って変換してEEPROM20のアドレス03に書き込む。DISDOLFが新プログラムに新たに導入されたパラメータであるときは、新プログラムに添付されているパラメータ初期値のテーブルからDISDOLFの初期値を読み出してEEPROM20のアドレス03に書き込む。
【００４７】
図４を参照すると、旧データ(A)の最後の行32にはデータのエラーを点検するためのチェックサムが記録されている。チェックサムは既知の手法であるので、その詳細の記述は省略する。新データ(B)では、データ項目が２つ減少しており、チェックサムが行30に記録されている。こうしてデータ項目の減少により生じた空き空間は、データの末尾の領域に集められる。この空き領域は、その後のデータ項目の追加などに使用することができる。こうしてすべてのデータ項目について変換処理が行われると（121）、処理を終了する。
【００４８】
以上にこの発明の一実施例を説明したが、この発明は、このような実施例に限定されるものではない。
【図面の簡単な説明】
【００４９】
【図１】この発明の一実施例の機能ブロック図。
【図２】この発明の一実施例におけるEEPROMのデータ変換処理の流れを示すフローチャート。
【図３】この発明の一実施例におけるパラメータの学習値の構成情報を示す図。
【図４】この発明の一実施例におけるEEPROMに記憶された学習値の例を示す図。
【符号の説明】
【００５０】
１０      電子制御装置のコンピュータ
１２      書き換え装置
１４      CPU
１６      RAM
１８      フラッシュメモリ（第１の不揮発性メモリ）
２０      EEPROM（第２の不揮発性メモリ）  
【図１】
2006063939.tif 000004
【図２】
2006063939.tif 000005
【図３】
2006063939.tif 000006
【図４】
2006063939.tif 000007