(57)【要約】【課題】電子制御装置において、データ保持用領域の必要容量を低減できるようにする。【解決手段】電子制御装置は、複数種類の制御データをそれぞれ算出する算出手段（Ｓ１２０，Ｓ１４０）と、データの書き換えが可能な不揮発性メモリと、算出手段により算出された制御データに当該制御データの種類を示す種類情報を付加した種類情報付き制御データを、不揮発性メモリにおけるデータ書込用領域に順次書き込んでいく書込手段（Ｓ１５０）と、複数種類の制御データの何れかに対応する保持条件が成立したと判定すると、その成立した保持条件に対応する制御データを含む種類情報付き制御データを、前記データ書込用領域から種類情報に基づいて読み出し、その読み出した種類情報付き制御データを不揮発性メモリにおけるデータ保持用領域に書き込む保持手段（Ｓ１６０〜Ｓ１８０）と、を備える。【選択図】図２
2016012213.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するために用いられる複数種類の制御データをそれぞれ算出する算出手段（３１，Ｓ１２０，Ｓ１４０）と、
データの書き換えが可能な不揮発性メモリ（３５）と、
前記算出手段により算出された前記制御データに当該制御データの種類を示す種類情報を付加した種類情報付き制御データを、前記不揮発性メモリにおけるデータ書込用領域（１〜３）に順次書き込んでいく書込手段（３１，Ｓ１５０，Ｓ２１０〜Ｓ２８０）と、
前記複数種類の制御データのうちの何れかに対応する保持条件が成立したと判定すると、その成立した保持条件に対応する制御データを含む前記種類情報付き制御データを、前記データ書込用領域から前記種類情報に基づいて読み出し、その読み出した種類情報付き制御データを前記不揮発性メモリにおけるデータ保持用領域に書き込む保持手段（３１，Ｓ１６０〜Ｓ１８０，Ｓ３１０〜Ｓ３４０，Ｓ４１０〜Ｓ４６０）と、
を備えることを特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記保持条件は複数通りあり、
前記保持条件毎に、前記データ保持用領域に保持すべき保持対象の制御データと、その制御データの保持個数とが、定められており、
前記保持手段は、成立した保持条件に対応する前記保持対象の制御データの保持個数がＮ（Ｎは１以上の整数）である場合には、前記データ書込用領域から、前記保持対象の制御データを含む前記種類情報付き制御データを、最新のものからＮ個読み出して、その読み出したＮ個の種類情報付き制御データを前記データ保持用領域に書き込むこと（Ｓ４１０〜Ｓ４３０，Ｓ４５０）、
を特徴とする電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
前記保持手段は、前記データ書込用領域に書き込まれている前記種類情報付き制御データの新旧を、それらの前記データ書込用領域における書き込み順によって判別すること、
を特徴とする電子制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の電子制御装置において、
前記データ書込用領域は、前記不揮発性メモリにおける複数の記憶領域（１〜３）からなり、
前記書込手段は、前記種類情報付き制御データを、前記複数の記憶領域のうちの何れかの記憶領域に書き込んでいき、その記憶領域に空き領域がなくなると、前記種類情報付き制御データを、前記複数の記憶領域のうちの他の記憶領域に書き込んでいくように構成されており、
前記保持手段は、前記複数の記憶領域のうちの何れか１つを前記データ保持用領域として用いること（Ｓ４４０）、
を特徴とする電子制御装置。
【請求項５】
請求項４に記載の電子制御装置において、
前記保持手段は、前記複数の記憶領域のうち、前記データ保持用領域として用いる記憶領域への、前記種類情報付き制御データの書き込みを完了すると、前記データ保持用領域として用いる記憶領域に対する書き込み及び消去を禁止すること（Ｓ４６０）、
を特徴とする電子制御装置。
【請求項６】
請求項４または請求項５に記載の電子制御装置において、
前記データ書込用領域となる前記複数の記憶領域は、前記書込手段によって前記種類情報付き制御データが書き込まれる書き込み先記憶領域となる順番が、定められており、
前記書込手段は、下記〈１〉〜〈４〉の動作を行うこと、を特徴とする電子制御装置。
〈１〉前記複数の記憶領域のうち、前記順番が最も早い記憶領域を、前記書き込み先記憶領域とする。
〈２〉前記算出手段により前記複数種類の制御データの何れかが算出される毎に、現在の前記書き込み先記憶領域に、前記種類情報付き制御データを書き込んでいく。
〈３〉現在の前記書き込み先記憶領域に空き領域がなくなると、前記複数の記憶領域のうち、前記順番が次の記憶領域を、次回の前記書き込み先記憶領域とし、当該次回の前記書き込み先記憶領域内のデータを消去した後、当該次回の前記書き込み先記憶領域を現在の前記書き込み先記憶領域として、前記〈２〉の動作を行う。
〈４〉前記複数の記憶領域のうち、前記順番が最も後の記憶領域が、現在の前記書き込み先記憶領域であって、その現在の前記書き込み先記憶領域に空き領域がなくなった場合には、前記順番が最も早い記憶領域を、次回の前記書き込み先記憶領域とする。
【請求項７】
請求項６に記載の電子制御装置において、
前記書込手段は、現在の前記書き込み先記憶領域に空き領域がなくなって、次回の前記書き込み先記憶領域内のデータを消去した後、前記〈２〉の動作を始める前に、現在の前記書き込み先記憶領域に記憶されている前記種類情報付き制御データの中から、前記制御データの種類毎について、最新の種類情報付き制御データを選択し、その選択した種類情報付き制御データを、次回の前記書き込み先記憶領域に書き込むこと（Ｓ２７０）、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関する。
【背景技術】
【０００２】
例えば車両に搭載される電子制御装置では、ある種の異常を検出した時の（あるいは更に、異常検出時よりも前の時点での）制御データを、不揮発性メモリに保持することが要求されている。このように保持される制御データは、フリーズフレームデータあるいはフリーズデータと呼ばれ、例えば異常の発生原因を解析するために用いられる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１３８７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記要求を実現するための手法として、例えば下記の手法が考えられる。
まず、フリーズフレームデータとして必要となる可能性がある複数種類の各制御データについて、その制御データをｍ個分（ｍは１以上の整数）ずつ記憶するための記憶領域を、不揮発性メモリにデータ保持用領域として確保しておく。その場合、各データが書き込まれるアドレスを予め定めておく。そして、各制御データについて、新しいものからｍ個分を、データ保持用領域において対応するアドレスに、常に保存するように書き込み処理を行う。このように構成することで、どのような異常を検出した場合でも、データ保持用領域には全種類の制御データが保持されていることとなる。
【０００５】
上記手法では、発生した異常と関連性の低い制御データ（つまり、本来ならば保持しなくても良い制御データ）もデータ保持用領域に保持することとなるため、データ保持用領域として用意する記憶領域が大きくなってしまう。
【０００６】
そこで、本発明は、電子制御装置において、データ保持用領域の必要容量を低減できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
第１発明の電子制御装置は、制御対象を制御するために用いられる複数種類の制御データをそれぞれ算出する算出手段と、データの書き換えが可能な不揮発性メモリと、書込手段と、保持手段と、を備える。
【０００８】
書込手段は、算出手段により算出された制御データに当該制御データの種類を示す種類情報を付加したデータである種類情報付き制御データを、不揮発性メモリにおけるデータ書込用領域に順次書き込んでいく。
【０００９】
保持手段は、複数種類の制御データのうちの何れかに対応する保持条件が成立したと判定すると、その成立した保持条件に対応する制御データを含む種類情報付き制御データを、前記データ書込用領域から前記種類情報に基づいて読み出し、その読み出した種類情報付き制御データを不揮発性メモリにおけるデータ保持用領域に書き込む。
【００１０】
この電子制御装置によれば、ある種の制御データを保持すべき保持条件が成立したときに、複数種類の制御データのうち、その保持条件に対応した制御データであって、保持が必要な制御データだけを、データ保持用領域に保持させることができる。よって、データ保持用領域の必要容量を低減することができる。
【００１１】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１２】
【図１】実施形態の電子制御装置（ＥＣＵ）を表す構成図である。
【図２】データ処理を表すフローチャートである。
【図３】データ処理中の書き込み処理を表すフローチャートである。
【図４】書き込み処理の作用を説明する説明図である。
【図５】データ処理中の保持対象データ決定処理を表すフローチャートである。
【図６】データ処理中のデータ保持処理を表すフローチャートである。
【図７】データ保持処理の作用を説明する説明図である。
【図８】記憶領域が３つの場合の、書き込み処理の作用を説明する説明図である。
【図９】記憶領域が３つの場合の、データ保持処理の作用を説明する説明図である。
【発明を実施するための形態】
【００１３】
以下に、本発明が適用された実施形態の電子制御装置について説明する。
図１に示す実施形態の電子制御装置（以下、ＥＣＵという）１１は、車両に搭載され、制御対象として、例えば車両のエンジンを制御する。
【００１４】
図１に示すように、ＥＣＵ１１は、当該ＥＣＵ１１の動作を司るマイコン（マイクロコンピュータ）１３と、センサ信号取得回路１５と、アクチュエータ駆動回路１７と、通信回路１９と、を備える。
【００１５】
マイコン１３は、エンジンの状態を検出する様々なセンサ２０からの情報を、センサ信号取得回路１５を介して取得する。そして、マイコン１３は、センサ２０からの情報に基づいて、エンジンを制御するための演算を行い、その演算結果に基づいて、アクチュエータ駆動回路１７に制御信号を出力することにより、エンジンを動作させるためのアクチュエータ２１を駆動する。
【００１６】
センサ２０としては、エンジンのクランク角を検出するためのクランク角センサや、エンジンの冷却水温を検出する水温センサや、空燃比センサ等がある。アクチュエータ２１としては、エンジンの各気筒に燃料を噴射するインジェクタや、各気筒への点火を行う点火装置等がある。
【００１７】
また、ＥＣＵ１１には、車両内の通信線２３が接続されており、マイコン１３は、通信線２３に通信回路１９を介して接続されている。そして、マイコン１３は、通信線２３に接続された他の電子制御装置と、通信回路１９を介して通信する。
【００１８】
マイコン１３は、プログラムを実行するＣＰＵ３１と、信号の入出力を行うための入出力回路３３と、データの書き換えが可能な不揮発性メモリ（本実施形態ではデータフラッシュ）３５と、プログラムが格納されたＲＯＭ３７と、ＣＰＵ３１による演算結果を記憶する揮発性のＲＡＭ３９と、を備えている。マイコン１３の動作は、ＣＰＵ３１がＲＯＭ３７内のプログラムを実行することで実現される。
【００１９】
データフラッシュ３５内には、複数の記憶領域（この例では、２つの記憶領域１，２）がある。データフラッシュ３５では、消去された状態からから書き込むこと（例えば消去状態が“１”とすると、“１”の状態から“０”にすること）はできるが、逆方向の書き込み（“０”から“１”にすること）はできず、消去は、記憶領域１，２の単位で行う必要がある。
【００２０】
次に、マイコン１３のＣＰＵ３１がＲＯＭ３７内のプログラムに基づいて実行するデータ処理について、図２を用い説明する。尚、ＣＰＵ３１は、図２のデータ処理を、例えば一定時間毎に実行する。
【００２１】
図２に示すように、ＣＰＵ３１は、データ処理を開始すると、まずＳ１１０にて、噴射量演算タイミングか否かを判定し、噴射量演算タイミングであれば、Ｓ１２０にて、噴射量演算を行うことにより、制御データとして、噴射量を表す噴射量データを算出する。そして、その後、Ｓ１５０に進む。尚、噴射量は、インジェクタから噴射させる燃料の量である。そして、図示は省略しているが、ＣＰＵ３１は、Ｓ１２０で算出した噴射量データに基づいてインジェクタを駆動する処理も行う。
【００２２】
また、ＣＰＵ３１は、上記Ｓ１１０にて、噴射量演算タイミングではないと判定した場合には、Ｓ１３０進み、点火時期演算タイミングか否かを判定する。そして、点火時期演算タイミングであれば、Ｓ１４０にて、点火時期演算を行うことにより、制御データとして、点火時期を表す点火時期データを算出し、その後、Ｓ１５０に進む。尚、点火時期は、点火装置に点火を実施させる時期である。そして、図示は省略しているが、ＣＰＵ３１は、Ｓ１４０で算出した点火時期データに基づいて点火装置を駆動する処理も行う。
【００２３】
ＣＰＵ３１は、Ｓ１５０では、今回のＳ１２０又はＳ１４０で算出した制御データ（この例では噴射量データ又は点火時期データ）を、データフラッシュ３５の記憶領域１，２の何れかに書き込むための書き込み処理を行い、その後、Ｓ１６０に進む。書き込み処理の内容については、後で説明する。
【００２４】
一方、ＣＰＵ３１は、上記Ｓ１３０にて、点火時期演算タイミングではないと判定した場合には、そのままＳ１６０に進む。
ＣＰＵ３１は、Ｓ１６０では、データ保持（詳しくは、制御データの保持）が必要か否かを判定する。尚、ＣＰＵ３１は、図示していない異常検出処理により、複数種類の各異常について、発生したか否かを判定し、異常を検出した場合には、発生した異常を示すコード（いわゆるＤＴＣ：Diagnostic Trouble Code）を、データフラッシュ３５における特定の領域、あるいは他の書き換え可能な不揮発性メモリに記憶する。そして、Ｓ１６０では、異常検出処理の判定結果を参照して、何れかの異常が発生したと判定したならば、データ保持が必要と判定する。
【００２５】
そして、ＣＰＵ３１は、上記Ｓ１６０にて、データ保持が必要であると判定した場合には、Ｓ１７０にて、保持対象データ（即ち、保持する対象の制御データ）を決定するための保持対象データ決定処理を行う。更に、ＣＰＵ３１は、次のＳ１８０にて、Ｓ１７０で決定した保持対象データをデータフラッシュ３５内に保持するためのデータ保持処理を行い、その後、当該データ処理を終了する。保持対象データ決定処理とデータ保持処理との各内容については、後で説明する。
【００２６】
また、ＣＰＵ３１は、上記Ｓ１６０にて、データ保持が必要ではないと判定した場合には、そのまま当該データ処理を終了する。
尚、本実施形態の説明では、制御データが、噴射量データと点火時期データとの２種類として説明しているが、例えば、制御データとしては噴射時期を表す噴射時期データや、水温を表す水温データなどもある。
【００２７】
次に、図２のＳ１５０で行われる書き込み処理について、図３を用い説明する。
図３に示すように、ＣＰＵ３１は、書き込み処理を開始すると、まずＳ２１０にて、データフラッシュ３５における複数の記憶領域１，２のうちから、制御データを書き込む記憶領域である書き込み先記憶領域を選定する。
【００２８】
記憶領域１，２は、使用できるか否かを管理するための状態として、「アクティブ」、「フル」、「ホールド」の、３つの状態のうちの何れかに設定される。アクティブ状態は、空き領域があって書き込みが可能な状態であり、フル状態は、空き領域が無くて書き込みができない状態であり、ホールド状態は、書き込み及び消去が禁止された状態である。そして、各記憶領域１，２の状態は、記憶領域１，２毎に設けられている状態情報が書き換えられることで、上記３つの状態のうちの何れかに切り換わる。また、ＥＣＵ１１の製造時において、記憶領域１，２は、初期化されており（つまり、データが消去されており）且つアクティブ状態に設定されている。また、記憶領域１，２は、書き込み先記憶領域とされる順番（以下、使用順番という）が定められており、本実施形態において、使用順番は「記憶領域１→記憶領域２」の順である。
【００２９】
このため、ＣＰＵ３１は、Ｓ２１０では、記憶領域１，２のうち、アクティブ状態の記憶領域を、書き込み先記憶領域として選定するが、アクティブ状態の記憶領域が複数ある場合には、アクティブ状態の記憶領域のうちで使用順番が最も早い記憶領域を、書き込み先記憶領域として選定する。よって、ＥＣＵ１１が製造されてから、初めてＳ２１０の処理が行われた場合には、記憶領域１が書き込み先記憶領域として選定されることとなる。尚、ＥＣＵ１１の製造時において、記憶領域１，２のうち、使用順番が最も早い記憶領域１だけがアクティブ状態に設定され、他の記憶領域２はフル状態に設定されていても良い。
【００３０】
ＣＰＵ３１は、次のＳ２２０にて、今回のＳ１２０又はＳ１４０で算出した制御データ（即ち、最新の噴射量データ又は点火時期データ）を、Ｓ２１０で選定した現在の書き込み先記憶領域に、有効のデータとして書き込む。
【００３１】
制御データは、記憶領域１，２の何れかに書き込まれる際には、制御データの種類を示す種類情報と、「有効」または「無効」を示すステータス情報とが付加される。
本実施形態では、例えば、所定ビット数（例えば３バイト）の種類情報と、所定ビット数（例えば４バイト）の制御データ（換言すれば、制御データの値）と、所定ビット数（例えば１バイト）のステータス情報とを、直列に並べたデータ列（種類情報付き制御データに相当）を、記憶領域１，２への書き込みデータとしている。そして、ＣＰＵ３１は、その書き込みデータを、書き込み先記憶領域の先頭アドレスから昇順あるいは最終アドレスから降順に書き込んでいく。例えば、書き込みデータが８バイトで、記憶領域１，２の１アドレス当たりのデータ量が２バイトであるとすると、４アドレス分ずつデータを書き込んでいくことになる。
【００３２】
また、ステータス情報が「有効」であることは、そのステータス情報が付加された制御データが、それと同じ種類の制御データのうちで、最新のもの（最新値）であることを意味している。逆に、ステータス情報が「無効」であることは、そのステータス情報が付加された制御データが、それと同じ種類の制御データのうちで、最新のものではないことを意味している。Ｓ２２０にて、制御データを有効のデータとして書き込むとは、書き込みデータにおけるステータス情報であって、書き込み対象の制御データに付加するステータス情報を「有効」にする、ということである。つまり、有効のデータとは、付加されたステータス情報が「有効」である制御データのことであるが、以下の説明では、制御データと種類情報と「有効」であるステータス情報とからなる書き込みデータ全体のことも、有効のデータという。
【００３３】
尚、後述するＳ２７０や図６のＳ４５０において、記憶領域１，２の何れかにデータを書き込む場合にも、書き込むデータは、制御データに種類情報とステータス情報とを付加した上記書き込みデータの形式であると共に、Ｓ２２０と同様の要領で書き込みが行われる。
【００３４】
ＣＰＵ３１は、次のＳ２３０にて、現在の書き込み先記憶領域内に、Ｓ２２０で今回書き込んだ制御データと同じ種類で且つ有効のデータが、複数存在するか否かを判定し、複数存在している場合には（Ｓ２３０：ＹＥＳ）、Ｓ２４０に進む。
【００３５】
ＣＰＵ３１は、Ｓ２４０では、書き込み先記憶領域内に複数存在する有効のデータのうち、過去の方（即ち、今回書き込んだものではない方）を、無効化する。つまり、ステータス情報を「有効」から「無効」に変更する。
【００３６】
具体的には、記憶領域１，２において、ステータス情報のビットは、「有効」を示す方が、消去状態の方の値（例えば“１”）になっている。このため、ステータス情報を「無効」に変更する処理としては、ステータス情報のビットを、“１”から“０”にする書き込み処理が行われる。尚、このようにステータス情報を変更するのは、各種類の制御データについて、最新値はどれかを管理するための処置である。
【００３７】
そして、ＣＰＵ３１は、上記Ｓ２４０の処理を行った後、Ｓ２５０に進む。
また、ＣＰＵ３１は、上記Ｓ２３０にて、現在の書き込み先記憶領域内に、今回書き込んだ制御データと同じ種類で且つ有効のデータが、複数存在しないと判定した場合、つまり、今回のＳ２２０での書き込みが、今回書き込んだ種類の制御データの初回書き込みであった場合には、そのままＳ２５０に進む。
【００３８】
ＣＰＵ３１は、Ｓ２５０では、現在の書き込み先記憶領域に空き領域があるか否かを判定し、空き領域があれば、そのまま当該書き込み処理を終了するが、空き領域がなければ（Ｓ２５０：ＮＯ）、Ｓ２６０に進む。
【００３９】
ＣＰＵ３１は、Ｓ２６０では、次回のデータ書き込みに向けた準備として、記憶領域１，２のうち、使用順番が現在の書き込み先記憶領域の次である記憶領域を、次回の書き込み先記憶領域として選定する。但し、記憶領域１，２のうち、使用順番が最も後の記憶領域２が、現在の書き込み先記憶領域である場合には、使用順番が最も早い記憶領域１を次回の書き込み先記憶領域として選定する。また、ホールド状態の記憶領域は、書き込み先記憶領域の選定対象から除外する。このため、記憶領域１，２が何れもホールド状態でない場合に、記憶領域１が現在の書き込み先記憶領域であれば、記憶領域２が次回の書き込み先記憶領域となり、記憶領域２が現在の書き込み先記憶領域であれば、記憶領域１が次回の書き込み先記憶領域となる。更に、ＣＰＵ３１は、Ｓ２６０では、選定した次回の書き込み先記憶領域内のデータを消去する。
【００４０】
ＣＰＵ３１は、次のＳ２７０にて、現在の書き込み先記憶領域に記憶されている有効のデータをステータス情報に基づいて選択し、その選択した有効のデータを、Ｓ２６０で選定した次回の書き込み先記憶領域へ有効のデータとして書き込む。つまり、現在の書き込み先記憶領域から次回の書き込み先記憶領域へ、有効のデータをコピーする。このコピーの際には種類情報もコピーされる。
【００４１】
そして、ＣＰＵ３１は、次のＳ２８０にて、現在の書き込み先記憶領域の状態をフル状態に変更すると共に、次回の書き込み先記憶領域の状態をアクティブ状態に設定する。この処理により、Ｓ２６０で選定した次回の書き込み先記憶領域は、次回のＳ２１０にて、書き込み先記憶領域として選定されることとなり、次回のＳ２２０では、現在の書き込み先記憶領域として使用されることとなる。尚、次回の書き込み先記憶領域の状態は、Ｓ２８０の処理が実行される前にフル状態であったならば、Ｓ２８０の処理により、フル状態からアクティブ状態に変更されることとなる。そして、ＣＰＵ３１は、Ｓ２８０の処理を行った後、当該書き込み処理を終了する。
【００４２】
次に、図３の書き込み処理の作用を、図４に示す具体例を用いて説明する。
この例では、図４の（Ａ）部分に示すように、書き込み処理が開始される前の時点において、記憶領域１がアクティブ状態で、書き込み先記憶領域になっており、記憶領域２がフル状態になっているとする。そして、記憶領域１には、新しさが異なる新旧２つの噴射量データと、１つの点火時期データと、１つの他種データ（他種類の制御データ）とが記憶されている。また、この時点において、記憶領域１には、空き領域として、書き込みデータを１つ書き込むことが可能な領域がある。
【００４３】
尚、図４に記載されている記憶領域１，２の四角枠内において、（）の左側に記載されている「噴射量」や「点火時期」や「他種データ」は、制御データの種類情報を表しており、（）内の「値：ｎ（ｎは数字）」は、制御データの値を表しており、（）内の「情報：有効」あるいは「情報：無効」は、ステータス情報を表している。そして、このことは、後述の図７についても同様である。
【００４４】
図４の（Ａ）部分に示す状態において、ＣＰＵ３１は、書き込み処理を開始すると、記憶領域１，２のうち、アクティブ状態の記憶領域１を、書き込み先記憶領域として選定する（Ｓ２１０）。
【００４５】
そして、今回算出された制御データが噴射量データであるとすると、図４の（Ｂ）部分に示すように、ＣＰＵ３１は、その算出された最新の噴射量データを、書き込み先記憶領域（記憶領域１）の空き領域に、有効のデータとして書き込むこととなる（Ｓ２２０）。また、この例の場合、書き込み先記憶領域には、噴射量データが既に書き込まれているため、書き込み先記憶領域内には、ステータス情報が「有効」の噴射量データが２つ存在することとなる。このため、ＣＰＵ３１は、図３のＳ２３０でＹＥＳと判定して、今回書き込んだものでない噴射量データのステータス情報を「有効」から「無効」に変更することとなる（Ｓ２４０）。
【００４６】
その後、ＣＰＵ３１は、図３のＳ２５０にて、現在の書き込み先記憶領域に空き領域があるか否かを判定するが、この例では、図４の（Ｂ）部分に示すように、今回の書き込みによって記憶領域１に空き領域がなくなっている。このため、ＣＰＵ３１は、図３のＳ２５０で空き領域がないと判定することとなる。
【００４７】
よって、ＣＰＵ３１は、図４の（Ｃ）部分に示すように、次回のデータ書き込みに向けた準備として、他の記憶領域２を、次回の書き込み先記憶領域として選定し、その記憶領域２内のデータを全て消去する（Ｓ２６０）。そして、その後、現在の書き込み先記憶領域である記憶領域１に記憶されている全ての有効のデータを、次回の書き込み先記憶領域である記憶領域２へ有効のデータとして書き込む（Ｓ２７０）。更に、その後、記憶領域１をアクティブ状態からフル状態に変更して、少なくとも次回のデータ書き込みには使用しないようにすると共に、記憶領域２をフル状態からアクティブ状態に変更する（Ｓ２８０）。
【００４８】
その後は、記憶領域２に新たなデータが書き込まれていく。そして、記憶領域２に空き領域がなくなると、図４の（Ｃ）部分とは逆に、記憶領域１内のデータが全て消去されて、記憶領域２に記憶されている全ての有効のデータが記憶領域１にコピーされ、その後、記憶領域２がアクティブ状態からフル状態に変更されると共に、記憶領域１がフル状態からアクティブ状態に変更されることとなる。尚、図４の（Ａ）部分の時点において、記憶領域２がフル状態になっているのは、Ｓ２８０の処理が以前に行われたことによる。
【００４９】
図３の書き込み処理の作用をまとめると、ＣＰＵ３１は、その書き込み処理を実行することにより、下記《１》〜《５》の動作を行うこととなる。
《１》ＥＣＵ１１が車両に組み付けられてから最初の書き込み先記憶領域としては、複数の記憶領域１，２のうち、使用順番が最も早い記憶領域１を、書き込み先記憶領域とする（Ｓ２１０）。
【００５０】
《２》図２のＳ１２０又はＳ１４０により複数種類の制御データの何れか（この例では、噴射量データ又は点火時期データ）が算出される毎に、その算出した制御データに種類情報を付加した種類情報付き制御データを、現在の書き込み先記憶領域に書き込んでいく（Ｓ２２０）。尚、本実施形態において、記憶領域１，２に書き込む種類情報付き制御データは、同じ種類の制御データのうちの最新値か否かを表すステータス情報も付加された前述の書き込みデータである。
【００５１】
《３》現在の書き込み先記憶領域に空き領域がなくなると（Ｓ２５０：ＮＯ）、複数の記憶領域１，２のうち、使用順番が次の記憶領域を、次回の書き込み先記憶領域とし、当該次回の書き込み先記憶領域内のデータを消去した後、当該次回の書き込み先記憶領域を現在の書き込み先記憶領域として、前記《２》の動作を行う（Ｓ２６０，Ｓ２８０→Ｓ２１０）。
【００５２】
《４》複数の記憶領域１，２のうち、使用順番が最も後の記憶領域２が、現在の書き込み先記憶領域であって、その現在の書き込み先記憶領域に空き領域がなくなった場合には、使用順番が最も早い記憶領域１を、次回の書き込み先記憶領域とする（Ｓ２６０）。
【００５３】
《５》現在の書き込み先記憶領域に空き領域がなくなって、次回の書き込み先記憶領域内のデータを消去した後、前記《２》の動作を始める前に、現在の書き込み先記憶領域に記憶されている種類情報付き制御データの中から、制御データの種類毎について、最新の種類情報付き制御データ（即ち、有効のデータ）を選択し、その選択した有効のデータを、次回の書き込み先記憶領域に書き込む（Ｓ２７０）。
【００５４】
次に、図２のＳ１７０で行われる保持対象データ決定処理について、図５を用い説明する。
図５に示すように、ＣＰＵ３１は、保持対象データ決定処理を開始すると、Ｓ３１０にて、噴射量演算に関するデータ保持が必要か否かを判定する。この判定は、噴射量データの保持条件（つまり、噴射量データの保持を実施する条件）が成立したか否かを判定することに相当する。例えば、Ｓ３１０では、前述の異常検出処理により、噴射量が関連すると考えられる異常が検出された場合に、噴射量演算に関するデータ保持が必要（換言すれば、噴射量データの保持条件が成立した）と肯定判定（ＹＥＳと判定）する。尚、噴射量が関連すると考えられる異常としては、例えば、空燃比の検出値と目標値との差が所定値以上といった異常がある。
【００５５】
そして、ＣＰＵ３１は、Ｓ３１０で肯定判定した場合には、Ｓ３２０に進み、噴射量データを保持対象データとして決定すると共に、その噴射量データの保持個数を決定し、その後、当該保持対象データ決定処理を終了する。
【００５６】
また、ＣＰＵ３１は、上記Ｓ３１０にて、噴射量演算に関するデータ保持が必要ではない（噴射量データの保持条件が成立していない）と判定した場合には、Ｓ３３０に進み、点火時期演算に関するデータ保持が必要か否かを判定する。この判定は、点火時期データの保持条件（つまり、点火時期データの保持を実施する条件）が成立したか否かを判定することに相当する。例えば、Ｓ３３０では、前述の異常検出処理により、点火時期が関連すると考えられる異常が検出された場合に、点火時期演算に関するデータ保持が必要（換言すれば、点火時期データの保持条件が成立した）と肯定判定する。尚、点火時期が関連すると考えられる異常としては、例えば、失火異常やノッキングの継続発生といった異常がある。
【００５７】
そして、ＣＰＵ３１は、Ｓ３３０で肯定判定した場合には、Ｓ３４０に進み、点火時期データを保持対象データとして決定すると共に、その点火時期データの保持個数を決定し、その後、当該保持対象データ決定処理を終了する。
【００５８】
尚、成立した保持条件毎にＳ３２０とＳ３４０との各々で決定する保持対象データと保持個数は、ＲＯＭ３７のプログラムによって定められている。つまり、制御データの保持条件毎に、保持対象データと、その保持対象データの保持個数とが定められており、その定められた内容は、ＲＯＭ３７にプログラムとして記憶されている。
【００５９】
また、ＣＰＵ３１は、上記Ｓ３３０にて、点火時期演算に関するデータ保持が必要ではない（点火時期データの保持条件が成立していない）と判定した場合には、そのまま当該保持対象データ決定処理を終了する。尚、ここでは、保持対象データとなり得る制御データが、噴射量データと点火時期データとの２種類であることを前提にして説明している。噴射量データ及び点火時期データ以外の制御データも、保持対象データとなり得るのであれば、Ｓ３３０でＮＯと判定した場合、他の種類の制御データを保持対象データとして決定すると共に、その制御データの保持個数を決定することとなる。
【００６０】
次に、図２のＳ１８０で行われるデータ保持処理について、図６を用い説明する。
図６に示すように、ＣＰＵ３１は、データ保持処理を開始すると、Ｓ４１０にて、保持対象データ決定処理（図５）で決定した保持対象データは、最新値以外も保持が必要か否かを判定する。具体的には、図５のＳ３２０又はＳ３４０で保持対象データと共に決定した保持個数が２以上か否かを判定する。そして、ＣＰＵ３１は、保持個数が１であって、最新値以外の保持は必要ではないと判定した場合には（Ｓ４１０：ＮＯ）、Ｓ４２０に進む。
【００６１】
ＣＰＵ３１は、Ｓ４２０では、記憶領域１，２のうち、アクティブ状態の記憶領域（即ち、現在の書き込み先記憶領域）から、最新の保持対象データをＲＡＭ３９上に読み出し、その後、Ｓ４４０に進む。
【００６２】
保持対象データを読み出すということは、保持対象データとしての制御データと種類情報とステータス情報とからなる書き込みデータ全体を読み出す、ということである。また、保持対象データは、付加されている種類情報によって特定する。また、アクティブ状態の記憶領域から最新の保持対象データを読み出すためには、ステータス情報が「有効」の保持対象データを読み出せば良い。
【００６３】
他の例として、最新の保持対象データを読み出す手法としては、アクティブ状態の記憶領域に記憶されている保持対象データのうち、書き込み順が最新のものを読み出しても良く、結局は、ステータス情報が「有効」の保持対象データを読み出すこととなる。つまり、ＣＰＵ３１は、記憶領域１，２に書き込まれているデータの新旧を、それらの記憶領域１，２における書き込み順によって判別することができる。書き込み順は、データの発生順でもあり、データが記憶されているアドレスから判別することができる。
【００６４】
一方、ＣＰＵ３１は、上記Ｓ４１０にて、保持対象データは最新値以外も保持が必要と判定した場合（即ち、保持個数が２以上の場合であって、時系列データとしての保持が必要な場合）には、Ｓ４３０に進む。
【００６５】
ＣＰＵ３１は、Ｓ４３０では、記憶領域１，２の何れかから、保持対象データを、最新のものから保持個数分だけ、ＲＡＭ３９上に読み出す。
具体的には、記憶領域１，２に記憶されている保持対象データのうち、最新のものから保持個数分を、記憶領域１，２における保持対象データの書き込み順から特定し、その特定した保持個数の保持対象データをＲＡＭ３９上に読み出す。尚、データの新旧順を特定する際に、現在の書き込み先記憶領域において最も古い保持対象データと、前回の書き込み先記憶領域において最も新しい保持対象データとは、同じものとして扱う。図３のＳ２７０の処理が行われているからである。このため、例えば、制御データの更新記憶に使用されるデータフラッシュ３５の記憶領域が３つであるとすると、前回の書き込み先記憶領域において最も古い保持対象データと、前々回の書き込み先記憶領域において最も新しい保持対象データとの、両者も同じものとして扱うこととなる（後述の図９における点線の矢印参照）。
【００６６】
そして、ＣＰＵ３１は、Ｓ４３０の処理を行った後、Ｓ４４０に進む。
ＣＰＵ３１は、Ｓ４４０では、記憶領域１，２の何れか１つを、保持対象データを保持するための保持先記憶領域（データ保持用領域に相当）として選定し、その選定した保持先記憶領域内のデータを消去する。
【００６７】
尚、Ｓ４４０では、記憶領域１，２のうち、現在の書き込み先記憶領域からみて最も過去に書き込み先記憶領域となった記憶領域を、保持先記憶領域として選定することが好ましい。その記憶領域には、最も過去のデータが記憶されていると考えられるからである。このことを勘案すると、Ｓ４４０では、フル状態の記憶領域を保持先記憶領域として選定することが好ましく、もし記憶領域の総数が３以上あって、フル状態の記憶領域が２つ以上ある場合には、それらのうちで、最も過去に書き込み先記憶領域となっていた記憶領域を保持先記憶領域として選定することが好ましい。
【００６８】
ＣＰＵ３１は、次のＳ４５０にて、Ｓ４２０又はＳ４３０で読み出した保存対象データを、保持先記憶領域に書き込む。保持対象データも、種類情報とステータス情報とを付加した書き込みデータの形式で保持先記憶領域に書き込むが、書き込む全ての保持対象データのステータス情報は、例えば「有効」にする。また、Ｓ４３０の処理を実行した場合であって、保持対象データが複数で時系列のデータである場合、その時系列の各保持対象データは、例えば、それらが図３のＳ２２０で記憶領域１，２の何れかに書き込まれた順番と同じ順（即ち、古いもの順）に、保持先記憶領域に書き込む。このため、保持先記憶領域に保持される各保持対象データは、それらの書き込み順が後のデータほど、新しいデータということになる。
【００６９】
上記Ｓ４３０，Ｓ４４０，Ｓ４５０の処理により、保持対象データを予め時系列のデータとして保存していなくても、保持先記憶領域に時系列のデータとして書き込んで保持することができる。
【００７０】
そして、ＣＰＵ３１は、次のＳ４６０にて、保持先記憶領域の状態をホールド状態に変更する。このＳ４６０の処理により、今まで制御データの更新記憶に使用していた記憶領域を、データ保持専用の記憶領域とする。そして、ＣＰＵ３１は、その後、当該データ保持処理を終了する。
【００７１】
次に、図６のデータ保持処理の作用を、図７に示す具体例を用いて説明する。
この例では、データ保持処理が開始される前の時点において、記憶領域１，２は、図７の（Ａ）部分に示す状態になっており、保持対象データは噴射量データで、保持個数は３であるとする。
【００７２】
ＣＰＵ３１は、データ保持処理を開始すると、この例では「保持個数＝３」であるため、図６のＳ４１０でＹＥＳと判定してＳ４３０の処理を行う。この例では、図７の（Ａ）部分に示すように、アクティブ状態の記憶領域１に、保持個数分（３つ）の噴射量データが記憶されているため、Ｓ４３０では、記憶領域１から、保持個数分の噴射量データを読み出すこととなる。
【００７３】
その後、ＣＰＵ３１は、記憶領域１，２のうち、フル状態の記憶領域２を保持先記憶領域として選定して、その記憶領域２内のデータを消去する（Ｓ４４０）。すると、図７の（Ｂ）部分に示すように、記憶領域２は全て空き領域になる。
【００７４】
そして、ＣＰＵ３１は、図７の（Ｃ）部分に示すように、Ｓ４３０で読み出した噴射量データ（この例では３つ）を、保持先記憶領域として選定した記憶領域２に、有効のデータとして書き込む（Ｓ４５０）。保持先記憶領域への各噴射量データの書き込み順は、前述した通り、古いデータの順である。最後に、ＣＰＵ３１は、保持先記憶領域である記憶領域２の状態を、フル状態からホールド状態に変更することにより、以後は、記憶領域２への書き込み及び消去を禁止する（Ｓ４６０）。
【００７５】
ところで、制御データの更新記憶に使用されるデータフラッシュ３５の記憶領域は、２つに限らず、３つ以上であっても良い。そこで、例えば、３つの記憶領域１〜３が、制御データの更新記憶に使用される場合について、図８，図９を用い説明する。記憶領域１〜３の使用順番は、「記憶領域１→記憶領域２→記憶領域３」であるとする。
【００７６】
尚、図８，図９おいて、データＡ，Ｂ，Ｃの各々は、ＣＰＵ３１が算出する３種類の制御データである。また、各記憶領域１〜３内において、「（初回）」と付されたデータは、同種のデータのうち、図３のＳ２２０の処理によって、その記憶領域に最初に書き込まれたデータであり、「（２回目）」と付されたデータは、同種のデータのうち、図３のＳ２２０の処理によって、その記憶領域に２回目に書き込まれたデータである。また、各記憶領域１〜３内において、「（移動時）」と付されたデータは、図３のＳ２７０の処理によってコピーされたデータであり、前回の書き込み先記憶領域に記憶されていた同種のデータのうち、最終（即ち、最終値）のデータである。
【００７７】
まず、図３の書き込み処理の作用について、図８の例に基づき説明する。
〈ａ〉図８において、矢印（ａ）に示すように、ＣＰＵ３１は、最初は、記憶領域１を書き込み先記憶領域とし、その記憶領域１に各種の制御データを書き込んでいく。
【００７８】
尚、ＣＰＵ３１は、書き込み先記憶領域内に既に存在するデータと同種のデータ（この例ではデータＣ）を書き込む場合には、旧データに上書きするのではなく、旧データのステータス情報を「無効」にし、最新のデータはステータス情報を「有効」にして新規のアドレスに書き込む。
【００７９】
〈ｂ〉記憶領域１に空き領域がなくなると、ＣＰＵ３１は、矢印（ｂ）に示すように、使用順番が次の記憶領域２内のデータを削除して、記憶領域１に格納されている各種データの最新値（つまり、有効のデータ）を、記憶領域２に移植する（コピーする）。その後、ＣＰＵ３１は、記憶領域２を書き込み先記憶領域として、その記憶領域２に新たな制御データを書き込んでいく。
【００８０】
〈ｃ〉記憶領域２に空き領域がなくなると、ＣＰＵ３１は、矢印（ｃ）に示すように、使用順番が次の記憶領域３内のデータを削除して、記憶領域２に格納されている各種データの最新値（有効のデータ）を、記憶領域３に移植する。その後、ＣＰＵ３１は、記憶領域３を書き込み先記憶領域として、その記憶領域３に新たな制御データを書き込んでいく。
【００８１】
〈ｄ〉記憶領域３に空き領域がなくなると、ＣＰＵ３１は、矢印（ｄ）に示すように、使用順番が最初の記憶領域１内のデータを削除して、記憶領域３に格納されている各種データの最新値（有効のデータ）を、記憶領域１に移植する。その後、ＣＰＵ３１は、記憶領域１を書き込み先記憶領域として、その記憶領域１に新たな制御データを書き込んでいく。
【００８２】
以後、ＣＰＵ３１は、上記〈ｂ〉〜〈ｄ〉の動作を繰り返す。尚、ＥＣＵ１１の製造時において、記憶領域１内のデータが消去されているのでなければ、ＣＰＵ３１は、上記〈ａ〉の動作で記憶領域１への書き込みを初めて行う前に、記憶領域１内のデータを消去すれば良い。また、ＥＣＵ１１の製造時において、記憶領域２，３内のデータも消去されているのであれば、ＣＰＵ３１は、上記〈ｂ〉，〈ｃ〉の各動作を最初に行う場合には、記憶領域２，３内のデータ消去を行わなくても良い。
【００８３】
次に、図６のデータ保持処理の作用について、図９の例に基づき説明する。
例えば、ＣＰＵ３１が、３つの記憶領域１〜３のうち、記憶領域３を書き込み先記憶領域としている場合に、データＣの保持条件が成立したと判定し、そのデータＣの保持個数が４であるとする。
【００８４】
その場合、ＣＰＵ３１は、図９に示すように、記憶領域１〜３からＲＡＭ３９に、新しい順の４個のデータＣを読み出す。
この例では、記憶領域３内のデータＣのうち、「☆」印が付されたデータＣが、ステータス情報が「有効」のデータＣであって、最新のデータＣであり、「◎」印が付されたデータＣが、２番目に新しいデータＣである。そして、記憶領域２内のデータＣのうち、「○」印が付されたデータＣが、３番目に新しいデータＣであり、記憶領域１内のデータＣのうち、「△」印が付されたデータＣが、４番目に新しいデータＣである。よって、それら４個のデータＣが、ＲＡＭ３９上に読み出される。
【００８５】
尚、図９において、点線の矢印で示すように、「◎」印が付されたデータＣは、記憶領域２内において「（初回）」と付されたデータＣと同じであり、その「（初回）」と付されたデータＣが、図３のＳ２７０の処理によって記憶領域２から記憶領域３にコピーされたものである。同様に、「○」印が付されたデータＣは、記憶領域１内において「（２回目）」と付されたデータＣと同じであり、その「（２回目）」と付されたデータＣが、図３のＳ２７０の処理によって記憶領域１から記憶領域２にコピーされたものである。
【００８６】
その後、ＣＰＵ３１は、記憶領域１〜３の何れか１つを、保持先記憶領域Ｈとして選定する。例えば、前述したように、現在の書き込み先記憶領域（この例では記憶領域３）からみて最も過去に書き込み先記憶領域となった記憶領域１を、保持先記憶領域Ｈとして選定する。そして、ＣＰＵ３１は、選定した保持先記憶領域Ｈ内のデータを消去した後、ＲＡＭ３９から保持先記憶領域Ｈに４個のデータＣを書き込み、その後、保持先記憶領域Ｈの状態をホールド状態に設定する。
【００８７】
以上のようなＥＣ１１において、マイコン１３のＣＰＵ３１は、制御データを算出する毎に、その算出した制御データに種類情報を付加した種類情報付き制御データを、データフラッシュ３５におけるデータ書込用領域としての記憶領域１，２（１〜３）に順次書き込んでいく。そして、ＣＰＵ３１は、複数種類の制御データの何れかに対応する保持条件が成立したと判定すると、その成立した保持条件に対応する制御データを含む種類情報付き制御データを、記憶領域１，２（１〜３）から種類情報に基づいて読み出し、その読み出した種類情報付き制御データを、データフラッシュ３５における保持先記憶領域（データ保持用領域に相当）に書き込む。
【００８８】
このため、ある種の制御データを保持すべき保持条件が成立したときに、複数種類の制御データのうち、その保持条件に対応した制御データであって、保持が必要な制御データだけを、保持先記憶領域に保持させることができる。よって、データ保持用領域に相当する保持先記憶領域の必要容量を低減することができる。
【００８９】
また、保持条件は複数通りあり、保持条件毎に、保持先記憶領域に保持すべき制御データである保持対象データと、そのデータの保持個数とが、定められている。そして、ＣＰＵ３１は、成立した保持条件に対応する保持対象データの保持個数がＮ（Ｎは１以上の整数）である場合には、記憶領域１，２（１〜３）から、保持対象データを含む種類情報付き制御データを、最新のものからＮ個読み出して、その読み出したＮ個の種類情報付き制御データを保持先記憶領域に書き込む（Ｓ４１０〜Ｓ４３０，Ｓ４５０）。このため、保持先記憶領域に書き込むデータ数を必要最小限（つまり、予め定められた保持個数）に抑えることができる。
【００９０】
また、ＣＰＵ３１は、記憶領域１，２（１〜３）に書き込まれている種類情報付き制御データの新旧を、それらの記憶領域１，２（１〜３）における書き込み順によって判別するため、データの新旧を確実に判別できる。
【００９１】
また、データフラッシュ３５において、制御データの更新記憶に使用する記憶領域は、複数の記憶領域１，２（１〜３）からなり、ＣＰＵ３１は、種類情報付き制御データを、記憶領域１，２（１〜３）のうちの何れかに書き込んでいき、その記憶領域に空き領域がなくなると、種類情報付き制御データを、記憶領域１，２（１〜３）のうちの他の記憶領域に書き込んでいく。そして、ＣＰＵ３１は、記憶領域１，２（１〜３）のうちの何れか１つを、保持先記憶領域として用いる（Ｓ４４０）。このため、データフラッシュ３５において、保持先記憶領域としての専用領域を予め準備しておく必要がなく、記憶領域の必要数を削減することができる。
【００９２】
また、ＣＰＵ３１は、記憶領域１，２（１〜３）のうち、保持先記憶領域として用いる記憶領域への、種類情報付き制御データの書き込みを完了すると、その記憶領域（即ち、保持先記憶領域）の状態をホールド状態にして、その記憶領域に対する書き込み及び消去を禁止する（Ｓ４６０）。このため、保持したデータを失ってしまうことを防止することができる。よって、データの保持を確実に実現することができる。
【００９３】
また、複数の記憶領域１，２（１〜３）には使用順番が定められており、ＣＰＵ３１は、記憶領域１，２（１〜３）に制御データを書き込む動作として、前述した《１》〜《４》の動作を行う。このため、複数の記憶領域１，２（１〜３）を使って、各制御データを新しいもの順に更新記憶することができる。更に、ＣＰＵ３１は、前述した《５》の動作も行うため、各種類の制御データについて、最新のものを確実に残すことができる。
【００９４】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、保持対象データの保持個数を予め決めておかず、データ保持処理では、図３の書き込み処理によって記憶領域１，２（１〜３）に記憶されている全ての順番の保持対象データを、保持先記憶領域に保持するように構成しても良い。
【００９５】
データフラッシュ３５の記憶領域のうち、制御データの更新記憶に使用する記憶領域１，２（１〜３）とは別の記憶領域を、保持先記憶領域として用いても良い。また、複数の記憶領域１，２（１〜３）のうち、アクティブ状態の記憶領域を保持先記憶領域として用いるようにしても良い。
【００９６】
記憶領域１，２（１〜３）に書き込む制御データに、ステータス情報を付加しないようになっていても良い。但し、ステータス情報を付加すれば、最新のデータを検索することが容易となる面で有利である。
【００９７】
同じ種類の制御データであっても、検出した異常の種類（故障モード）に応じて、保持する数（保持個数）を変えるように構成しても良い。
１つの保持条件に対して、２種類以上の制御データを保持対象データとしても良い。
【００９８】
データ書込用領域は、１つの記憶領域でも良い。
データの書き換えが可能な不揮発性メモリは、データフラッシュに限らず、例えばＥＥＰＲＯＭでも良い。
【００９９】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、ＥＣＵにおけるデータ保持方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【０１００】
３１…マイコンのＣＰＵ、３５…データフラッシュ（データの書き換えが可能な不揮発性メモリ）、１〜３…データフラッシュ内の記憶領域
【図１】
2016012213.tif 000003
【図２】
2016012213.tif 000004
【図３】
2016012213.tif 000005
【図４】
2016012213.tif 000006
【図５】
2016012213.tif 000007
【図６】
2016012213.tif 000008
【図７】
2016012213.tif 000009
【図８】
2016012213.tif 000010
【図９】
2016012213.tif 000011