(57)【要約】【課題】  書き換え可能な領域のプログラムと書き換え可能でない領域のプログラムの該組み合わせを防止する電子制御装置を提供する。【解決手段】  書き換えが禁止されるブート領域と書き換え可能なアプリケーション領域とを有するフラッシュメモリの書き換えに際し、外部装置からの指示に基づいて前記アプリケーション領域に記憶した制御プログラムおよび制御データの少なくともいずれかを書き換える手段と、前記ブート領域に記憶された制御プログラムおよび制御データを識別するブート領域識別データと、前記ブート領域識別データと同じ識別データを前記アプリケーション領域に記憶するアプリケーション記憶手段を有し、前記ブート領域識別データと前記アプリケーション領域に記憶された識別データの組み合わせを比較する組み合わせチェック手段によりチェックする。【選択図】図１
2006338067.tif 000002
【特許請求の範囲】
【請求項１】
書き換えが禁止されるブート領域と書き換え可能なアプリケーション領域とを有するフラッシュメモリの書き換えに際し、外部装置からの指示に基づいて前記アプリケーション領域に記憶した制御プログラムおよび制御データの少なくともいずれかを書き換える手段と、前記ブート領域に記憶された制御プログラムおよび制御データを識別するブート領域識別データと、前記ブート領域識別データと同じ識別データを前記アプリケーション領域に記憶するアプリケーション記憶手段を有し、前記ブート領域識別データと前記アプリケーション領域に記憶された識別データの組み合わせを比較する組み合わせチェック手段を有することを特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、前記組み合わせチェック手段実行前にブート領域のサム値を計算するサム値算出手段を有し、前記ブート領域識別データは前記サム値算出手段にて算出されたサム値とし、アプリケーション領域に記憶された識別データは予め定めたブート領域のサム値とすることを特徴とする電子制御装置。
【請求項３】
請求項１に記載の電子制御装置において、前記ブート領域識別データはブート領域の制御プログラムおよび制御データを識別するための番号をブート領域に記憶することを特徴とする電子制御装置。
【請求項４】
請求項１に記載の電子制御装置において、前記組み合わせチェック手段により比較された識別データが不一致のときは、前記制御プログラムの実行を禁止することを特徴とする電子制御装置。
【請求項５】
請求項１に記載の電子制御装置において、前記組み合わせチェック手段により比較された識別データが不一致のときは、前記制御プログラムを予め定めるフェールセーフモードとすることを特徴とする電子制御装置。
【請求項６】
請求項１から５のいずれかに記載の電子制御装置において、前期組み合わせ手段による比較は、前記電子制御装置の始動時に行うことを特徴とする電子制御装置。
【請求項７】
請求項６に記載の電子制御装置において、前記始動時は、電子制御装置の起動毎とすることを特徴とする電子制御装置。
【請求項８】
請求項６に記載の電子制御装置において、前記始動時は、前記外部装置からの指示に従い前記アプリケーション領域に記憶した制御プログラムおよび制御データの少なくともいずれかを書き換え毎とすることを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムや制御データを書き換え可能なフラッシュメモリを有する電子制御装置に関する。
【背景技術】
【０００２】
従来より、例えば特開平９−１２８２２９号公報に記載されているように、書き換え可能な領域の最後に特定のデータを設けチェックすることで、書き換えが異常終了したことを検出する技術が提案されている。更に、書き換えが異常終了した場合でも、書き換え可能でない領域に設けたプログラムによって、再書き換えを可能にしている。
【０００３】
【特許文献１】特開平９−１２８２２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、プログラムの開発過程では、書き換え可能な領域に配置した制御プログラムのみを変更するだけでなく、時として書き換え可能でない領域に配置しているプログラムの変更が必要になる。書き換え可能な領域のプログラムが書き換え可能でない領域のプログラムまたはデータを参照する構成としている場合、書き換え可能な領域と書き換え可能でない領域の組み合わせを保証する必要が生じる。
【０００５】
プログラムの書き換えによって、書き換え可能な領域のプログラムのみが更新されることになるが、書き換え可能な領域のプログラムと書き換えが可能でない領域のプログラムが組み合わされた場合、書き換え可能でない領域のプログラムと書き換えが可能な領域のプログラムでは、例えばアドレスの参照先が一致しなくなり、期待した動作とならず再度書き換えができなくなる恐れがある。
【０００６】
本発明の目的は、書き換え可能な領域のプログラムと書き換え可能でない領域のプログラムの組み合わせを判断し、このような場合においても再書き換えができる手法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題は、書き換えが禁止されるブート領域と書き換え可能なアプリケーション領域とを有するフラッシュメモリの書き換えに際し、外部装置からの指示に基づいて前記アプリケーション領域に記憶した制御プログラムおよび制御データの少なくともいずれかを書き換える手段と、前記ブート領域に記憶された制御プログラムおよび制御データを識別するブート領域識別データと、前記ブート領域識別データと同じ識別データを前記アプリケーション領域に記憶するアプリケーション記憶手段を有し、前記ブート領域識別データと前記アプリケーション領域に記憶された識別データの組み合わせを比較する組み合わせチェック手段を有することを特徴とする電子制御装置により、解決される。
【発明の効果】
【０００８】
本発明によれば、書き換え可能な領域のプログラムと書き換え可能でない領域のプログラムの組み合わせを誤った場合でも、これを検出し、制御プログラムの異常動作を防止することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明が適用された実施例について図面を用いて説明する。
【００１０】
最初に図１を用いて、自動車に搭載されてエンジンの制御を行うエンジン制御装置１の全体構成を説明する。
【００１１】
エンジン制御装置（以下、ＥＣＭという）１は、ＣＰＵ２と、入力回路３と、出力回路４と通信回路５から構成されている。ＥＣＭ１には、エンジンの動作状態を検出するセンサ６とエンジンに取り付けられた燃料噴射弁やイグナイタ等のアクチュエータ７が接続されている。具体的には、ＣＰＵ２は複数のセンサ６からの信号を入力回路３を経由して取り込み、取り込んだ信号に基づきエンジンに対する制御量を演算し、その演算結果に基づいた制御信号を出力回路４を経由して出力しアクチュエータ７を駆動する。また、エンジン制御用プログラムやデータの書き換え時は、書き換え装置８をＥＣＭ１に接続し、通信回路５を介してＣＰＵ２とデータのやり取りを行う。
【００１２】
ＣＰＵ２は、ＭＰＵ１０と、Ｉ／Ｏ１１と、不揮発性のＲＯＭ１２と、演算結果を一時的に記憶するＲＡＭ１３を備えている。ＭＰＵ１０は、前記入力回路３または前記通信回路５からの信号の取り込み、および前記出力回路への信号の出力をＩ／Ｏ１１を介して行う。これらの動作は、ＲＯＭ１２に記憶されたプログラムおよびデータに基づき実施される。また、ＲＡＭ１３は、プログラムの演算結果を一時的に記憶するのに用いる。
【００１３】
なお、ＲＯＭ１２は、一旦書き込んだデータを全て／一部消去することができ、再書き込みができるフラッシュＲＯＭを用いる。
【００１４】
次に、図２（ａ）を用いて前記ＲＯＭ１２の内容について説明する。
【００１５】
ＲＯＭ１２は、書き換え可能なアプリケーション領域１２Ａと、書き換えを禁止したブート領域１２Ｂとに区別される。
【００１６】
アプリケーション領域１２Ａには、エンジン制御用の制御プログラム１２Ａａと、制御データ１２Ａｂと、識別データ２０を記憶している。ブート領域１２Ｂには、イニシャライズプログラム１２Ｂａと、組み合わせチェックプログラム１２Ｂｂと、通信プログラム・データ１２Ｂｃと、フラッシュＲＯＭ書き換え制御プログラム・データ１２Ｂｄを記憶している。
【００１７】
エンジン制御用の制御プログラム１２Ａａは、前述の通り、ＥＣＭ１に接続された複数のセンサ６からの信号を取り込み、取り込んだ信号に基づきエンジンに対する制御量を演算しアクチュエータ７を駆動する。制御量を決定するための諸パラメータは制御データ
１２Ａｂとして記憶してある。
【００１８】
ＥＣＭ１に電源が投入されると、イニシャライズプログラム１２Ｂａが実行される。ここでは、ＣＰＵ２を動作させるために必要な初期化処理を行う。その後、組み合わせチェックプログラム１２Ｂｂが図３に示すプログラムフローに従い実行される。
【００１９】
通信プログラム・データ１２Ｂｃは、ＥＣＭ１に接続される書き換え装置との通信制御を行うもので、書き換え装置からの書き換え要求を認識した時に、フラッシュＲＯＭ書き換え制御プログラム・データ１２Ｂｄを実行する。フラッシュＲＯＭ書き換え制御プログラム・データは、通信プログラム・データ１２Ｂｃを介して書き換え装置から送信される書き換えデータをＲＯＭ１２に書き込む処理を行う。
【００２０】
次に、図３には、組み合わせチェックプログラム１２Ｂｂのプログラムフローを示す。これを用いてチェック組み合わせチェックの方法を説明する。
【００２１】
組み合わせチェックプログラムが実行されるとＳ１００において、ブート領域１２Ｂのサム値を計算し、ブート領域識別データとしてＲＡＭ１３に一時記憶しておく。Ｓ１０１においてはアプリケーション領域１２Ａに記憶してある識別データ２０を読み出す。その後、Ｓ１０２において、ＲＡＭ１３に一時記憶したブート領域識別データと識別データ
２０を比較し、値が一致した場合は組み合わせ正常と判断し、不一致の場合は組み合わせ異常と判断する。
【００２２】
ここで識別データ２０には、予め机上で計算したブート領域のサム値をデータとして記憶させておく。また、机上での計算方法とＳ１００におけるサム値の計算方法を同一にしておくことで、Ｓ１０２でのブート領域識別データと識別データ２０の比較結果を一致させることができる。
【００２３】
Ｓ１０２にて組み合わせが正常と判断できた場合は、Ｓ１１０にて通常の制御プログラムを実行し、エンジン制御を行う。異常と判断した場合は、Ｓ１２０の異常時処理を実行する。異常時処理では、ＥＣＭ１に接続される書き換え装置８からの書き換え信号に応じてフラッシュＲＯＭの書き換え制御プログラム１２Ｂｄを起動しＲＯＭの書き換えを行うことで、組み合わせを正常な状態に戻すことができる。また、エンジン制御をフェールセーフモードとし、例えば制御プログラム１２Ａａで算出する制御量に対してフェールセーフ用の補正を掛け、アクチュエータ７に出力することで、エンジン回転数上限制限や車速上限制限を行うことができる。これにより、安全な車輌の移動が可能になる。
【００２４】
次に図４を用いて、組み合わせ結果異常が発生するケースについて説明する。
【００２５】
（ａ）は、ブート領域１２Ｂ１のサム値が＄ＡＡＡＡとなる場合のＲＯＭを例にしている。予め机上で計算したサム値も＄ＡＡＡＡとなるので、識別データ２０ａに＄ＡＡＡＡを記憶してある。この場合、ブート領域１２Ｂ１のサム値を計算した結果と識別データ
２０ａは一致するので、組み合わせチェック結果は正常となるＲＯＭである。
【００２６】
（ｂ）は、ブート領域１２Ｂ２のサム値が＄ＢＢＢＢとなる場合のＲＯＭを例にしている。上記（ａ）と同様に識別データ２０ｂに、ブート領域のサム値である＄ＢＢＢＢを記憶してあり、組み合わせチェック結果は正常となるＲＯＭである。
【００２７】
（ｃ）は、前記（ａ）のＲＯＭに前記（ｂ）のＲＯＭを書き込んだ時のＲＯＭを示している。ブート領域１２Ｂ１は、書き換えが禁止される領域であるため、（ａ）のＲＯＭのアプリケーション領域１２Ａ１が（ｂ）のＲＯＭのアプリケーション領域１２Ａ２に置き換えられる。この場合、図３で示したプログラムフローＳ１００において計算されるサム値は＄ＡＡＡＡとなるが、識別データ２０ｂは、＄ＢＢＢＢを示しているため、これらを比較すると組み合わせ異常と判断できる。このようにプログラムの進化に伴い、ブート領域のプログラム内容が変更になった場合でも、プログラムフローＳ１００でのサム値計算結果も変更になるため、組み合わせ異常と判断することができる。
【００２８】
前述の例では、ブート領域識別データにサム値を用いた例を示したが、図２（ｂ）に示すように、ブート領域識別データ１２ＢｅをＲＯＭに記憶させて、アプリケーション領域１２Ａに記憶してある識別データ２０と比較する方法もある。この場合、プログラムフローのブート領域のサム値を計算する処理Ｓ１００が不要となり代わりにブート領域識別データ１２Ｂｅを取得するだけで済むため、処理を簡素化することができる。
【００２９】
また前述の例では、組み合わせチェックプログラムはＥＣＭ１の起動時を例に説明したが、ＲＯＭ１２の書き換えが完了した時点で実行することもできる。この場合、書き換えが完了した時点で、ブート領域１２Ｂとアプリケーション領域１２Ａの組み合わせの正常／異常を判断できるため、ＥＣＭ１の再起動を待たなくてもエンジン制御を禁止またはフェールセーフモードとすることができる。
【産業上の利用可能性】
【００３０】
本発明は、制御プログラムや制御データを書き換え可能なフラッシュメモリを有する電子制御装置に関する。
【図面の簡単な説明】
【００３１】
【図１】実施例のエンジン制御装置（ＥＣＵ）の全体構成を示すブロック図である。
【図２】ＲＯＭ上のプログラムおよびデータの配置を示す説明図である。
【図３】実施例のＣＰＵにて実行される、プログラムの組み合わせチェック部分のプログラムフローチャートである。
【図４】プログラムの組み合わせチェックが異常となる場合の説明図である。
【符号の説明】
【００３２】
１…エンジン制御装置（ＥＣＭ）、２…ＣＰＵ、３…入力回路、４…出力回路、５…通信回路、６…センサ、７…アクチュエータ、８…書き換え装置、１０…ＭＰＵ、１２…不揮発性のＲＯＭ（フラッシュメモリ）、１２Ａ…アプリケーション領域、１２Ｂ…ブート領域、１３…ＲＡＭ、２０…識別データ。
【図１】
2006338067.tif 000003
【図２】
2006338067.tif 000004
【図３】
2006338067.tif 000005
【図４】
2006338067.tif 000006