(57)【要約】【課題】制御データの記憶アドレスの変更を伴なう制御プログラムの更新が行なわれた場合であっても、制御データの再利用が可能でありながら、その再利用のための処理を簡便に行なうこと。【解決手段】ＣＰＵ４が、初期化処理の一環として、制御プログラムのバージョン情報と、制御データの位置履歴に関するデータとの対応関係に基づいて、ＥＥＰＲＯＭ８内における制御データの配置替えの必要性を認識し、必要である場合に、その制御データの配置替えを実行するように構成される。このため、制御プログラムが更新された場合であっても制御データの再利用が可能になるとともに、制御データの配置替えは、ＣＰＵ４によって初期化処理時に自動的に行なわれるので、制御データの配置替えに関しての処理が簡便になる。【選択図】      図５
2005338955.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラム記憶手段に保存されている制御プログラムに従って、所定の制御処理を実行する制御部を有する電子制御装置であって、
前記所定の制御処理において使用される複数の制御データを記憶する不揮発性の制御データ記憶手段を備え、
当該制御データ記憶手段には、前記複数の制御データに加えて、当該複数の制御データの記憶アドレスの変更履歴に関する情報が記憶され、
前記制御プログラム記憶手段に保存されている制御プログラムの更新が行なわれ、その制御プログラムの更新が前記複数の制御データの記憶アドレスの変更を伴なう場合、前記制御部は、前記制御プログラムの更新情報と、前記制御データの記憶アドレスの変更履歴に関する情報に基づいて、前記制御データの記憶アドレスの変更の必要性を認識し、前記制御データ記憶手段における前記複数の制御データの配置替えを実行することを特徴とする電子制御装置。
【請求項２】
前記制御部は、前記複数の制御データの配置替えが完了した後に、前記制御データの記憶アドレスの変更履歴に関する情報を前記制御データ記憶手段に書き込むことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記制御プログラムの更新情報は、更新された制御プログラムのバージョン情報であり、前記制御データの記憶アドレスの変更履歴に関する情報は、前記制御プログラムの各バージョンとの対応関係を示す識別情報であって、前記制御部は、前記バージョン情報と前記識別情報との対応関係が不一致であると、前記制御データの記憶アドレスの変更が必要であると認識することを特徴とする請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記制御部による、前記バージョン情報と前記識別情報との不一致の確認及び不一致である場合の前記複数の制御データの配置替えは、前記制御プログラムの実行開始直後における初期化処理の一環として実行されることを特徴とする請求項３に記載の電子制御装置。
【請求項５】
前記制御プログラムの更新時に、当該制御プログラムに使用される前記複数の制御データに関して、各々の制御データのアドレス位置及びデータサイズを含む制御データ構成情報を記憶する構成情報記憶手段を備え、
前記構成情報記憶手段に記憶された、更新前の制御プログラム用の制御データの構成情報は、前記制御プログラムの更新後も保持され、
前記制御部は、その更新前後の制御プログラム用の制御データ構成情報を参照して前記複数の制御データの配置替えを実行することを特徴とする請求項１又は請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムにおいて使用される複数の制御データを記憶するための不揮発性メモリを備え、その制御プログラムが更新された際には、不揮発性メモリにおける複数の制御データの配置替えを自動で行なう電子制御装置に関するものである。
【背景技術】
【０００２】
例えば、エンジン等の車載機器の制御に用いられる電子制御装置（ＥＣＵ）の開発段階においては、制御仕様の見直し等によって、そのＥＣＵに適用される制御プログラムが度々更新される場合がある。制御プログラムは、ＥＣＵ内のフラッシュＲＯＭ等の不揮発性メモリに記憶されており、その更新時には、外部ツールを用いて不揮発性メモリ内の制御プログラムが書き換えられる（制御プログラムのバージョンアップ）。
【０００３】
一方、例えばエンジン制御などにおいては、スロットルセンサのゼロ点等の学習値やダイアグ情報などの制御データがＥＥＰＲＯＭ等の不揮発性メモリに記憶されるようになっている。学習値は、実際の制御状態に基づいて常に最適な値に更新され、また、ダイアグ情報は、制御中に異常が発生した際に、その都度、記憶される。このような学習値やダイアグ情報等の制御データを不揮発性メモリに記憶しておくと、その記憶された制御データは電源オフ時にも保持される。よって、エンジン制御開始直後から適切な制御を行ない得ることによってエンジンの始動性を向上できたり、異常発生時における確実なフェ‐ルセーフ処理を実行したり、さらには不具合情報の解析を行なうことなどができる。
【０００４】
ここで、上述した制御プログラムのバージョンアップが行なわれた場合、その制御プログラムにおいて使用される制御データとしての学習値やダイアグ情報の種類が追加、削除されたり、データサイズが変更されたりして、不揮発性メモリにおける各制御データの記憶アドレスが変更される場合がある。これにより、新旧の制御プログラムに対する制御データのデータ互換性がなくなるため、それに対する処置が必要となる。
【０００５】
このような問題点を解決する従来技術として、特許文献１及び特許文献２に記載される装置が知られている。特許文献１に記載の装置では、不揮発性メモリにおける制御データの割り付けの変更を伴なう制御フログラムの更新時には、その制御プログラムを保存するフラッシュＲＯＭに新しい制御プログラムのバージョン情報を記憶する。そして、ＥＣＵは、電源投入時に、フラッシュＲＯＭのバージョン情報と、制御データを記憶するＥＥＰＲＯＭのバージョン情報とを比較し、その比較結果が不一致であれば、ＥＥＰＲＯＭのデータ初期化を実施する。
【０００６】
また、特許文献２に記載の装置では、ＥＣＵに接続されるプログラム書換装置が、プログラムを書き換える前に、プログラムのバージョンに拘わらず継続して使用したい制御データが格納される保存領域から当該制御データを読み出して、書換装置のメモリに退避させる。そして、プログラムの書き換え完了後、退避データの中から書き換え後の新プログラムでも使用される制御データを選択し、その各制御データを新プログラムに適合するように並び替えて、ＥＣＵの保存領域に書き込む。
【特許文献１】特開２００２−１４９４１２号公報
【特許文献２】特開２００３−２５６２２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１の装置では、フラッシュＲＯＭのバージョン情報と、ＥＥＰＲＯＭのバージョン情報とが不一致であれば、ＥＥＰＲＯＭのデータを初期化する。これにより、別種の制御データを混同して使用してしまう等の間違いは生じないが、その一方で、ＥＥＰＲＯＭに記憶されている貴重な情報である学習値やダイアグ情報などの制御データが初期化によって消去されてしまう。これらの制御データを再び獲得するには、種々の条件でエンジンを動作させる等の作業が必要となり、余分な手間がかかる。
【０００８】
また、上述した特許文献２の装置では、旧プログラムにおいて使用していた制御データを新プログラムでも使用することが可能である。しかしながら、制御データの再利用のため、一旦、全ての制御データを書換装置のメモリに退避させ、その後、その各制御データを新プログラムに適合するように並び替えて、ＥＣＵの保存領域に書き込むようにしている。このように、制御データの再利用のための処理が複雑であり、処理工数が増加するとともに処理時間も長くなる。
【０００９】
本発明は、上述した点に鑑みてなされたものであり、制御データの記憶アドレスの変更を伴なう制御プログラムの更新が行なわれた場合に、制御データの再利用が可能でありながら、その再利用のための処理を簡便に行なうことが可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１に記載の電子制御装置は、制御プログラム記憶手段に保存されている制御プログラムに従って、所定の制御処理を実行する制御部を有するものであって、所定の制御処理において使用される複数の制御データを記憶する不揮発性の制御データ記憶手段を備え、
当該制御データ記憶手段には、複数の制御データに加えて、当該複数の制御データの記憶アドレスの変更履歴に関する情報が記憶され、
制御プログラム記憶手段に保存されている制御プログラムの更新が行なわれ、その更新が複数の制御データの記憶アドレスの変更を伴なう場合、制御部は、制御プログラムの更新情報と、制御データの記憶アドレスの変更履歴に関する情報に基づいて、制御データの記憶アドレスの変更の必要性を認識し、制御データ記憶手段における複数の制御データの配置替えを実行することを特徴とする。
【００１１】
このように、請求項１に記載の電子制御装置では、その電子制御装置の制御部が、制御データの記憶アドレスの変更の必要性を認識して、複数の制御データの配置替えを実行するように構成されている。このため、制御プログラムが更新された場合であっても制御データの再利用が可能となる。また、制御データの配置替えは、制御部によってその必要性が認識されることにより自動的に行なわれる。従って、従来のように、制御データを書換装置内のメモリに退避する等の処理が不要となるので、制御データを再利用するための処理を簡便に行なうことができる。
【００１２】
請求項２に記載したように、制御部は、複数の制御データの配置替えが完了した後に、制御データの記憶アドレスの変更履歴に関する情報を制御データ記憶手段に書き込むことが好ましい。これにより、例えば電源の遮断によって、複数の制御データの配置替えのための処理が途中で中断した場合など、制御部は、まだ制御データの配置替えを行なっていないと判断することになり、再度、制御データの配置替えを実行する。従って、更新された制御プログラムに対応するように、制御部によって確実に制御データの配置替えを実行させることができる。
【００１３】
請求項３に記載したように、制御プログラムの更新情報は、更新された制御プログラムのバージョン情報であり、制御データの記憶アドレスの変更履歴に関する情報は、制御プログラムの各バージョンとの対応関係を示す識別情報であって、制御部は、バージョン情報と識別情報との対応関係が不一致であると、制御データの記憶アドレスの変更が必要であると認識することが好ましい。これにより、制御プログラムの各バージョンと制御データの記憶アドレスとを確実に対応づけるように、制御データの配置替えを行なうことができる。
【００１４】
請求項４に記載したように、制御部による、バージョン情報と識別情報との不一致の確認及び不一致である場合の複数の制御データの配置替えは、制御プログラムの実行開始直後における初期化処理の一環として実行されることが好ましい。例えば、制御データとしての学習値に基づく制御処理やダイアグ情報の検出処理が実行される前に、制御データの配置替えを行なっておかないと、誤った制御データに基づいて、各種の処理が実行されてしまうためである。
【００１５】
請求項５に記載したように、制御プログラムの更新時に、当該制御プログラムに使用される複数の制御データに関して、各々の制御データのアドレス位置及びデータサイズを含む制御データ構成情報を記憶する構成情報記憶手段を備え、
構成情報記憶手段に記憶された、更新前の制御プログラム用の制御データ構成情報は、制御プログラムの更新後も保持され、
制御部は、その更新前後の制御プログラム用の制御データ構成情報を参照して前記複数の制御データの配置替えを実行することが好ましい。
【００１６】
このように、新旧すべての制御プログラム用の制御データ構成情報を保存しておくことにより、例えば、新制御プログラムから旧制御プログラムに戻すような場合にも、制御データの配置替えを簡単に行なうことができるようになる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態による電子制御装置に関して、図面を用いて詳細に説明する。なお、本実施形態では、電子制御装置が、車両のエンジンの運転状態を制御するエンジン制御用電子制御装置として適用された例について説明するが、エンジン以外の機器を制御対象とすることももちろん可能である。
【００１８】
図１は、本実施形態におけるエンジン制御用電子制御装置（ＥＣＵ）１の概略構成を示している。図１に示すように、ＥＣＵ１は、電源回路２、入力回路３、ＣＰＵ４、出力回路５、フラッシュＲＯＭ６、ＲＡＭ７、ＥＥＰＲＯＭ８等を備えている。電源回路２は、イグニッションスイッチ１１を介してバッテリＢに接続され、イグニッションスイッチ１１のオン時にバッテリ電圧が供給される。このバッテリ電圧の供給により、電源回路２は、動作電圧を生成しＣＰＵ４等に対して出力する。これにより、フラッシュＲＯＭ６に保存された制御プログラムに従って、エンジン制御が開始される。
【００１９】
入力回路３は、エンジンの運転状態を検出する各種センサ１２からの信号を入力して波形処理やＡ／Ｄ変換等の処理を行なう。ＣＰＵ４は、入力回路３からのセンサ信号に基づきエンジン（図示せず）に対する最適な制御量を算出し、その算出結果に基づき制御信号を出力する。出力回路５は、ＣＰＵ４からの制御信号を受けて、エンジンに取り付けられたインジェクタ（燃料噴射弁）やイグナイタ等のアクチュエータ１３を駆動する。
【００２０】
ＣＰＵ４とフラッシュＲＯＭ６及びＲＡＭ７は、互いにバスを介して接続されており、ＣＰＵ４とＥＥＰＲＯＭ８は、シリアルデータラインで接続されている。フラッシュＲＯＭ６及びＥＥＰＲＯＭ８は、電気的にデータの書き換えが可能な不揮発性のメモリであり、電源オフ等によりその動作電圧が遮断されたとしても記憶データを保持することができる。フラッシュＲＯＭ６には、制御プログラムを構成するプログラムデータが記憶されている。このプログラムデータには、制御プログラムのバージョン情報が含まれる。
【００２１】
また、ＥＥＰＲＯＭ８には、学習制御により得られる学習値、故障検出処理により得られるダイアグ情報、アクチュエータ１３の個体差を補正するための補正値等、制御プログラムにおいて使用される各種制御データが、フラッシュＲＯＭ６に保存されている制御プログラムのバージョンに対応するように、所定のアドレスに配置される。
【００２２】
なお、制御プログラムは、自身のバージョンにおいて使用される、制御データのアドレス及びデータサイズを含む制御データ構成情報を備え、この制御データ構成情報は、制御プログラムとは分離され、フラッシュＲＯＭ６内の別の領域に記憶される。この制御データ構成情報に関しては、後に詳細に説明する。
【００２３】
そして、ＣＰＵ４は、フラッシュＲＯＭ６に格納されている制御プログラムに従ってエンジンを制御するための各種の処理を実行する。ＲＡＭ７は、ＣＰＵ４による制御演算結果などを一時記憶する。また、電源投入時（イグニッションスイッチ１１のオン時）における初期化処理にて、ＥＥＰＲＯＭ８の制御データがＲＡＭ７へ読み出されて、各種制御に反映される。さらに、ＲＡＭ７上の学習値等のデータは、エンジン制御の実行中に更新され、その更新データが所定のタイミング（例えば、イグニッションスイッチ１１のオフタイミング）にてＥＥＰＲＯＭ８に書き込まれる。なお、本実施の形態では、フラッシュＲＯＭ６が制御プログラム記憶手段に相当し、ＥＥＰＲＯＭ８が制御データ記憶手段に相当する。
【００２４】
本実施の形態におけるＥＣＵ１は、書き込みツール１５によって制御プログラムの書き替え（更新）が実施できるようになっている。具体的には、制御プログラムの書き替え時には、書き込みツール１５が通信ラインを介してＥＣＵ１に接続される。そして、書き込みツール１５からの指令に従いＣＰＵ４にて所定の書き換えプログラムが処理されることにより、フラッシュＲＯＭ６に新しい制御プログラムが書き込まれる。
【００２５】
ＥＣＵ１に組み込まれる制御プログラムが更新される場合、ＥＥＰＲＯＭ８内の制御データの配置が変わることがある。すなわち、制御データの種類が追加、削除されたり、データサイズが変更されたりして、ＥＥＰＲＯＭ８内の各制御データの記憶アドレスが変更される場合がある。例えば、図２（ａ）及び（ｂ）に示す例では、制御プログラムの更新前は、制御データはそれぞれ１バイトのデータサイズを持つ情報Ａと情報Ｂとからなるものであったのに対し、制御プログラムの更新後は、分解能もしくは検出範囲の拡大のため、情報Ａのデータサイズが拡大され（１バイト→２バイト）、結果として情報Ｂのアドレス位置が変更されている。さらに、図２（ｂ）に示すように、制御データとして情報Ｃが新たに追加されている。
【００２６】
この各種の制御データとともに、ＥＥＰＲＯＭ８内には、制御データの位置履歴を示すデータが記憶されている。この制御データの位置履歴を示すデータ（０ｘ０１，０Ｘ０２等）は、制御プログラムの各バージョンとの対応関係を示す識別情報である。すなわち、更新前の制御プログラムのバージョンが１であれば、そのバージョン１と対応する位置履歴であることを示すために、位置履歴を示すデータとして０ｘ０１（バージョン１を示す）がＥＥＰＲＯＭ８内に記憶され、制御プログラムがバージョン２に更新されると、そのバージョン２に対応する位置履歴であることを示すために、位置履歴を示すデータが０ｘ０２（バージョン２を示す）に変更される。
【００２７】
このように、制御データとともに、その制御データの位置履歴を示すデータを記憶するようにしたため、制御プログラムの実行時に、その制御プログラムのバージョンと位置履歴を示すデータとの対応関係を確認することにより、ＣＰＵ４が、制御データの配置替えの必要性があるか否かを認識できるのである。
【００２８】
さらに、上述したように、本実施形態では、制御プログラムが自身のバージョンにおいて使用される、制御データのアドレス及びデータサイズを含む制御データ構成情報を備えている。そして、この制御データ構成情報は、フラッシュＲＯＭ６内の制御プログラムとは別の領域に記憶される。図３（ａ）及び（ｂ）に、図２（ａ）及び（ｂ）に示す制御データに関する制御データ構成情報を示す。
【００２９】
図３（ａ）及び（ｂ）において、データＩＤ０ｘ００は、制御データの位置履歴を示すデータに対応しており、その記憶アドレスが０ｘ００であり、データサイズは０ｘ０１（１バイト）である。また、データＩＤ０ｘ０１は情報Ａ，データＩＤ０ｘ０２は情報Ｂにそれぞれ対応している。そして、図３（ａ）において、情報Ａに対応するデータＩＤ０ｘ０１のアドレスは０ｘ０１、データサイズは０ｘ０１（１バイト）であるが、制御プログラムの更新により、情報Ａのデータサイズが拡大されたため、図３（ｂ）では、データサイズが０ｘ０２（２バイト）に変更されている。このため、図３（ｂ）では、情報Ｂに対応するデータＩＤ０ｘ０２のアドレスが０ｘ０３に変更されるのである。
【００３０】
制御データ構成情報は、制御プログラムとは別の領域に記憶されており、制御プログラムの更新によって消去されることなく、フラッシュＲＯＭ６に保存され続ける。ＣＰＵ４は、制御プログラムのバージョンと位置履歴を示すデータとの対応関係から、制御データの配置替えが必要と判断した場合、ＥＥＰＲＯＭ８内の全制御データを一旦、ＲＡＭ７上に読出す。このとき、ＥＥＰＲＯＭ８内の位置履歴を示すデータから、各アドレスに記憶されている制御データの種類を判別し、さらに更新された制御プログラムのバージョン用の制御データ構成情報を参照して、その新構成情報に対応するようにＲＡＭ７上で並べ替えを行なう。その後、ＲＡＭ７上で並べ替えられた制御データを、そのまま、ＥＥＰＲＯＭ８に書き移すことによって、制御データの自動配置替えを実施する。最後に、制御データの位置履歴を示すデータを、更新後の制御プログラムのバージョンに対応するように書き換えて（例えば０ｘ０１→０ｘ０２）、制御データの配置替え作業が全て完了する。
【００３１】
なお、上述したように、制御データ構成情報を、制御プログラムの更新に拘わらず全て保存しておくことにより、例えば、制御プログラムが新バージョンから旧バージョンに変更になった再にも、各バージョンの制御データ構成情報を参照することにより、制御データの配置替えを容易に行なうことができる。
【００３２】
次に、本実施形態における制御データの自動配置替えに関する処理を図４及び図５のフローチャートを用いて具体的に説明する。なお、図４は、制御プログラムに従った処理の全体を示すフローチャートであり、図５は、制御データの配置替え処理を示すフローチャートである。この制御データの配置替え処理は、制御プログラムの実行開始直後における初期化処理の一環として実行される。
【００３３】
図４に示すように、電源の投入によって制御プログラムの実行が開始されると、まずステップＳ１００において、ＣＰＵ４の初期化処理が実行される。このＣＰＵ４の初期化処理では、ＣＰＵ４の各ポートや各レジスタの内容がクリアされる。次にステップＳ１１０では、出力初期化処理が行なわれる。この出力初期化処理では、警報ランプ等を所定時間点灯するなどの処理を行ない、その動作が正常であるか否かを確認後、消灯させる。さらに、ステップＳ１２０では、ＲＡＭ７の初期化処理を行なう。すなわち、ＲＡＭ７内に設定されるカウンタやフラグの値をクリアする。
【００３４】
続くステップＳ１３０では、ＥＥＰＲＯＭ８内の制御データの配置替え処理を行なう。この配置替え処理に関して、図５のフローチャートを参照して詳しく説明する。この配置替え処理においては、図５に示すように、まずステップＳ２００において、ＥＥＰＲＯＭ８内の制御データの位置履歴を示すデータを読み込む。そして、ステップＳ２１０において、制御プログラム自身のバージョン情報と、読み込んだ位置履歴を示すデータとの対応関係が不一致であるか否かを判定する。ここで、不一致であると判定された場合、制御プログラムが更新されたとみなして、ステップＳ２２０以降の処理に進む。一方、ステップＳ２１０において一致していると判定された場合には、制御データの配置替え処理を終了する。
【００３５】
ここで、制御プログラムの書き換え（更新）処理について簡単に説明する。制御プログラムの書き換えが行なわれる場合、書き込みツール１５からのプログラム書き替え指令がＣＰＵ４に出力される。このプログラム書き換え指令に基づいて、ＣＰＵ４は、所定の書き換えプログラムを起動し、まず、フラッシュＲＯＭ６に保存されている制御プログラムを消去する。その後、書き込みツール１５から送信される制御プログラムデータを読み込んで、該データをフラッシュＲＯＭ６に書き込む。このとき、制御プログラムの書き込みとともに、制御データ構成情報がフラッシュＲＯＭ６の別領域に書き込まれる。また、書き込まれた制御プログラムは、自身のバージョン情報を保有しており、ステップＳ２１０において、位置履歴を示すデータとの対応関係が不一致であるか否かを判定することができる。なお、制御プログラムの更新に伴いＥＥＰＲＯＭ８の配置替えが必要となる場合のみ、制御プログラムのバージョン情報が変更されることはいうまでもない。
【００３６】
ステップＳ２２０では、ＥＥＰＲＯＭ８に記憶されている（アドレス位置変更前の）制御データの位置履歴を示すデータ、及びその位置履歴に対応する制御データ構成情報に基づいて、各アドレスに記憶されている制御データの種類を判別しつつ、ＥＥＰＲＯＭ８内の全制御データを一旦、ＲＡＭ７上に読出す。続くステップＳ２３０では、更新された制御プログラムのバージョン用の制御データ構成情報を参照して、その構成情報のアドレス位置に対応するように制御データをＲＡＭ７上で並べ替える。その後、ステップＳ２４０において、ＲＡＭ７上で並べ替えられた制御データが対応するアドレス位置に保存されるように、ＥＥＰＲＯＭ８に書き込む。最後に、ステップＳ２５０において、制御データの位置履歴を示すデータを、更新後の制御プログラムのバージョンに対応するように書き換えることによって、制御データの配置替え処理が全て完了する。
【００３７】
再び図４に戻り、ステップＳ１４０では、ＥＥＰＲＯＭ８に記憶されている制御データをＲＡＭ７に転送し、制御データに基づく制御処理や制御データの更新処理の準備を行なう。その後、ステップＳ１５０に進み、各種のセンサ信号や制御データに基づいて、エンジン制御を実施する。
【００３８】
以上、説明したように、本実施形態によれば、制御プログラムのバージョン情報と制御データの位置履歴に関するデータとに基づいて、ＣＰＵ４が、制御データの配置替えが必要か否かを判別し、必要である場合には、ＥＣＵ１の初期化処理の一環として複数の制御データの配置替えを実行するようにした。このため、制御プログラムが更新された場合であっても、旧制御プログラムにおいて生成された制御データの再利用が可能となる。また、制御データの配置替えは、ＣＰＵ４の初期化処理において、その必要性が認識されることにより自動的に行なわれる。従って、制御プログラムの更新時に、制御データの配置替えに関しての処理はほぼ不要にできる。
【００３９】
なお、本発明は、上述した実施形態に制限されることなく、本発明の主旨を逸脱しない範囲において種々変更して実施することができる。
【００４０】
例えば、上述した実施形態では、位置履歴を示すデータが、制御プログラムのバージョンの更新に対応するように増加される例について説明したが、制御プログラムの各バージョンと制御データとの対応関係が判別できる限り、位置履歴を示すデータとしてどのような種類のデータを使用しても良い。例えば、更新日時、フラッシュＲＯＭ６又はＥＥＰＲＯＭ８に記憶させるデータのサイズ（バイト数）、フラッシュＲＯＭ６又はＥＥＰＲＯＭ８に記憶させるデータの変更回数等を、位置履歴を示すデータとして用いても良い。
【００４１】
また、上述した実施形態では、制御プログラムをフラッシュＲＯＭに記憶し、制御データをＥＥＰＲＯＭに記憶する例について説明したが、書き換え可能な不揮発性メモリである限り、制御プログラムや制御データの保存に用いることは可能である。また、記憶領域ごとに書き換えが可能である場合には、制御プログラムと制御データとを同一の記憶媒体に記憶させるようにしても良い。
【図面の簡単な説明】
【００４２】
【図１】エンジン制御用電子制御装置（ＥＣＵ）１の概略構成を示す構成図である。
【図２】（ａ）は、アドレス位置変更前の、ＥＥＰＲＯＭにおける制御データ及び位置履歴を示すデータの構成を示す説明図であり、（ｂ）は、制御プログラムの更新に対応するようにアドレス位置を変更した後の、ＥＥＰＲＯＭにおける制御データ及び位置履歴を示すデータの構成を示す説明図である。
【図３】（ａ）は、図２（ａ）に示す制御データに関する、制御データのアドレス及びデータサイズを含む制御データ構成情報を示す説明図であり、（ｂ）は、図２（ｂ）に示す制御データに関する制御データ構成情報を示す説明図である。
【図４】制御プログラムに従った処理の全体を示すフローチャートである。
【図５】制御データの配置替え処理を示すフローチャートである。
【符号の説明】
【００４３】
１  電子制御装置
４  ＣＰＵ
６  フラッシュＲＯＭ
８  ＥＥＰＲＯＭ
【図１】
2005338955.tif 000003
【図２】
2005338955.tif 000004
【図３】
2005338955.tif 000005
【図４】
2005338955.tif 000006
【図５】
2005338955.tif 000007