(57)【要約】【課題】不揮発性メモリに記憶される学習値，異常情報などのデータの消失を抑制する。【解決手段】イグニッションスイッチがＯＦＦになってから所定条件が成立したときに内部電源を遮断するセルフシャットダウン機能を有する電子制御装置において、不揮発性メモリの空き領域に、学習値，異常情報及び車両情報などのデータを、所定規則で分別したグループごとに格納する複数のバンク（記憶領域）を確保する。そして、例えば、セルフシャットダウン中のバンク１へのデータ書き込み中に、イグニッションスイッチがＯＦＦからＯＮになる再起動操作が行われると、バンク１へのデータの書き込みが終了するまで再起動を待ち、その後、電子制御装置を再起動する。【選択図】図６
2014061793.tif 000002
【特許請求の範囲】
【請求項１】
セルフシャットダウン中にイグニッションスイッチがＯＮになると、不揮発性メモリの記憶領域を複数に分割した各記憶単位のうち、前記イグニッションスイッチがＯＮになったときに情報を書き込んでいた前記記憶単位への書き込みが終了した場合に、前記不揮発性メモリへの情報の書き込みを中断して再起動する、ことを特徴とする自動車用電子制御装置。
【請求項２】
前記セルフシャットダウン中に前記イグニッションスイッチがＯＮになってから所定時間経過した場合に、前記不揮発性メモリへの情報の書き込みを強制的に中断して再起動する、ことを特徴とする請求項１に記載の自動車用電子制御装置。
【請求項３】
少なくとも一部の情報について、同一情報を複数の前記記憶単位に多重に書き込み、
前記複数の記憶単位の少なくとも１つへの情報の書き込みが正常に終了した場合に再起動する、ことを特徴とする請求項１又は請求項２に記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関する。
【背景技術】
【０００２】
自動車用電子制御装置には、特開２００１−８４００２号公報（特許文献１）に記載されるように、イグニッションスイッチをＯＦＦにすると、制御対象の学習値，異常情報などのデータを不揮発性メモリに書き込むために、所定時間経過後に内部電源を遮断する「セルフシャットダウン機能」が備えられている。そして、イグニッションスイッチをＯＮにすると、自動車用電子制御装置は、不揮発性メモリからデータをＲＡＭ（Random Access Memory）に読み出し、そのデータを使用して制御対象を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−８４００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
セルフシャットダウン中に、イグニッションスイッチがＯＮになると、不揮発性メモリへのデータの書き込みを中断し、ＲＡＭに保持されているデータを使用して、自動車用電子制御装置が再起動される。このとき、何らかの原因によってバッテリ電圧が一時的に低下すると、ＲＡＭに保持されていたデータがクリアされてしまうおそれがあった。
【０００５】
そこで、本発明は、不揮発性メモリに記憶される学習値，異常情報などのデータの消失を抑制した、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
自動車用電子制御装置は、セルフシャットダウン中にイグニッションスイッチがＯＮになると、不揮発性メモリの記憶領域を複数に分割した各記憶単位のうち、イグニッションスイッチがＯＮになったときに情報を書き込んでいた記憶単位への書き込みが終了した場合に、不揮発性メモリへの情報の書き込みを中断して再起動する。
【発明の効果】
【０００７】
不揮発性メモリへの情報の書き込みは、不揮発性メモリの記憶領域を複数に分割した記憶単位ごとに行われるため、その書き込みが短時間で終了し、情報の消失を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】自動車用エンジンシステムの構成図である。
【図２】電子制御装置の一例を示す構成図である。
【図３】フラッシュメモリにおける記憶領域のデータ構造図である。
【図４】プロセッサが実行する処理の第１実施例のフローチャートである。
【図５】通常時のセルフシャットダウン処理のタイムチャートである。
【図６】セルフシャットダウン中に再起動が行われたときのタイムチャートである。
【図７】セルフシャットダウン中に再起動が行われてバッテリ電圧が低下したときのタイムチャートである。
【図８】プロセッサが実行する処理の第２実施例のフローチャートである。
【図９】フラッシュメモリにおける記憶領域の他のデータ構造図である。
【図１０】プロセッサが実行する処理の第３実施例のフローチャートである。
【図１１】プロセッサが実行する処理の第４実施例のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、本実施形態に係る電子制御装置が適用され得る、自動車用エンジンのシステム構成を示す。
【００１０】
エンジン１０は、例えば、直列４気筒ガソリンエンジンであり、各気筒に吸気（吸入空気）を導入するための吸気管１２には、エンジン１０の負荷の一例としての吸気流量Ｑを検出する吸気流量センサ１４が取り付けられている。吸気流量センサ１４としては、例えば、エアフローメータなどの熱線式流量計を使用することができる。なお、エンジン１０の負荷としては、吸気流量Ｑに限らず、例えば、吸気負圧、過給圧力、スロットル開度、アクセル開度など、トルクと密接に関連する状態量を使用することができる。
【００１１】
各気筒の燃焼室１６に吸気を導入する吸気ポート１８には、その開口を開閉する吸気弁２０が配設されている。吸気弁２０の吸気上流に位置する吸気管１２には、吸気ポート１８に向けて燃料を噴射する燃料噴射弁２２が取り付けられている。燃料噴射弁２２は、電磁コイルへの通電によって磁気吸引力が発生すると、スプリングによって閉弁方向に付勢されている弁体がリフトして開弁し、燃料を噴射する、電磁式の噴射弁である。燃料噴射弁２２には、その開弁時間に比例した燃料が噴射されるように、所定圧力に調圧された燃料が供給されている。
【００１２】
燃料噴射弁２２から噴射された燃料は、吸気ポート１８と吸気弁２０との隙間を介して燃焼室１６に吸気と共に導入され、点火プラグ２４の火花点火によって着火燃焼し、その燃焼による圧力がピストン２６をクランクシャフト（図示省略）に向けて押し下げることで、クランクシャフトを回転駆動させる。
【００１３】
また、燃焼室１６から排気を導出する排気ポート２８には、その開口を開閉する排気弁３０が配設され、排気弁３０が開弁することで、排気ポート２８と排気弁３０との隙間を介して、排気が排気管３２へと排出される。排気管３２には、触媒コンバータ３４が配設されており、排気中の有害物質は、触媒コンバータ３４によって無害成分に浄化された後、排気管３２の終端開口から大気中に放出される。ここで、触媒コンバータ３４としては、例えば、排気中のＣＯ（一酸化炭素），ＨＣ（炭化水素）及びＮＯｘ（窒素酸化物）を同時に浄化する三元触媒を使用することができる。
【００１４】
燃料噴射弁２２及び点火プラグ２４は、電子制御装置１００によって制御される。電子制御装置１００は、各種センサからの信号を入力し、予め記憶されたプログラムに従って、燃料噴射弁２２及び点火プラグ２４の各操作量を決定し出力する。燃料噴射弁２２による燃料噴射制御においては、例えば、各気筒の吸気行程に合わせて個別の燃料噴射を行う、いわゆる「シーケンシャル噴射制御」が行われる。
【００１５】
電子制御装置１００には、吸気流量センサ１４の信号に加え、エンジン１０の冷却水温度（水温）Ｔｗを検出する水温センサ３６、エンジン１０の回転速度Ｎｅを検出する回転速度センサ３８、排気中の空燃比Ａ／Ｆを検出する空燃比センサ４０及びイグニッションスイッチ４２の各信号が入力されている。
【００１６】
電子制御装置１００は、次のように、燃料噴射弁２２及び点火プラグ２４を制御する。即ち、電子制御装置１００は、吸気流量センサ１４及び回転速度センサ３８から、吸気流量Ｑ及び回転速度Ｎｅを夫々読み込み、これらに基づいてエンジン運転状態に応じた基本燃料噴射量を算出する。また、電子制御装置１００は、水温センサ３６から水温Ｔｗを読み込み、基本燃料噴射量を水温Ｔｗなどで補正した燃料噴射量を算出する。そして、電子制御装置１００は、エンジン運転状態に応じたタイミングで、燃料噴射量に応じた燃料を燃料噴射弁２２から噴射し、点火プラグ２４を適宜作動させて燃料と吸気との混合気を着火燃焼させる。このとき、電子制御装置１００は、空燃比センサ４０から空燃比Ａ／Ｆを読み込み、排気中の空燃比Ａ／Ｆが理論空燃比に近づくように、燃料噴射弁２２をフィードバック制御する。以下、電子制御装置１００が燃料噴射弁２２及び点火プラグ２４をエンジン運転状態に応じて制御することを、「定常処理」と称することとする。
【００１７】
電子制御装置１００は、図２に示すように、ＣＰＵ（Central Processing Unit）などのプロセッサ１１０と、一時的な作業領域となるＲＡＭ１２０と、フラッシュメモリ１３０と、を有する。フラッシュメモリ１３０は、フラッシュＲＯＭ（Read Only Memory）など、電源供給を遮断してもデータが消えない不揮発性の半導体メモリ（不揮発性メモリ）であって、例えば、燃料噴射弁２２及び点火プラグ２４を制御するときに学習した学習値、ＯＢＤ（On Board Diagnostics）機能によって診断された異常情報、走行距離などの車両情報を保持記憶する。プロセッサ１１０、ＲＡＭ１２０及びフラッシュメモリ１３０は、バス１４０を介して相互に接続されている。
【００１８】
フラッシュメモリ１３０の空き領域には、図３に示すように、データ領域１３０Ａ，バンク状態１３０Ｂ及び誤り検出符号１３０Ｃを保持する、複数のバンク（記憶単位）１〜Ｎが確保されている。データ領域１３０Ａには、学習値，異常情報及び車両情報など、所定規則で分別したグループのデータ（情報）であって、他のグループのデータに影響を及ぼさないデータが格納される。一例を挙げて説明すると、例えば、バンク１には学習値、バンク２には異常情報、バンク３には車両情報が格納される。ここで、データ領域１３０Ａは、格納される情報に応じたサイズを有する。バンク状態１３０Ｂには、バンクの状態、具体的には、データ領域１３０Ａにデータが正常に書き込まれていることを示す「正常」、又は、データ領域１３０Ａにデータが正常に書き込まれていないことを示す「異常」のいずれかが格納される。誤り検出符号１３０Ｃには、データ領域１３０Ａに書き込まれたデータのチェックサム、ＣＲＣ（Cyclic Redundancy Check）などの誤り検出符号が格納される。
【００１９】
図４は、イグニッションスイッチ４２がＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が、フラッシュメモリ１３０に格納された制御プログラムに従って実行する処理の第１実施例を示す。なお、イグニッションスイッチ４２のＯＮなどにより、電子制御装置１００への電源供給が開始されて起動する場合には、初期化処理として、フラッシュメモリ１３０に格納されているデータをＲＡＭ１２０に読み出す処理が実行される。
【００２０】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、プロセッサ１１０が、定常処理を実行する。定常処理においては、例えば、最新の学習値，異常情報及び車両情報などのデータがＲＡＭ１２０の所定領域に随時格納される。
【００２１】
ステップ２では、プロセッサ１１０が、イグニッションスイッチ４２のＯＮ／ＯＦＦ信号を読み込み、イグニッションスイッチ４２がＯＮからＯＦＦになったか否かを判定する。要するに、プロセッサ１１０は、エンジン運転状態に応じた燃料噴射弁２２及び点火プラグ２４の制御から、セルフシャットダウン制御に移行したか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＦＦになったと判定すれば処理をステップ３へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ１へと戻す（Ｎｏ）。
【００２２】
ステップ３では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータをフラッシュメモリ１３０に書き込むために、定常処理を停止させる。
【００２３】
ステップ４では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータを、所定規則で分別したグループごとに、フラッシュメモリ１３０に確保したバンクに順次書き込む。即ち、プロセッサ１１０は、データ書込先であるバンクについて、記憶されているデータを消去した後、そのバンクに割り当てられているデータの書き込みを開始する。このとき、プロセッサ１１０は、バンク状態１３０Ｂを「異常」に設定した後、データ領域１３０Ａにデータを書き込み、データの書き込みが終了するとバンク状態１３０Ｂを「正常」に設定する。このようにすれば、バンク状態１３０Ｂを参照することで、データ領域１３０Ａの区切りまでデータの書き込みが正常に終了しているか否かを判定できる。また、プロセッサ１１０は、データ領域１３０Ａにデータを書き込む際、チェックサム，ＣＲＣなどの誤り検出符号を算出し、これを誤り検出符号１３０Ｃに格納する。
【００２４】
ステップ５では、プロセッサ１１０が、イグニッションスイッチ４２のＯＮ／ＯＦＦ信号を読み込み、イグニッションスイッチ４２がＯＦＦからＯＮになったか否か、要するに、セルフシャットダウン中に再起動操作がなされたか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮになったと判定すれば処理をステップ６へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＦＦのままであると判定すれば処理をステップ７へと進める（Ｎｏ）。
【００２５】
ステップ６では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮになってからの経過時間を計時するタイマのカウントを更新（インクリメント）する。
ステップ７では、イグニッションスイッチ４２がＯＦＦのままであるので、プロセッサ１１０が、タイマのカウントをリセットする。
【００２６】
ステップ８では、プロセッサ１１０が、タイマによって計時された経過時間が所定時間に達したか否かを判定する。そして、プロセッサ１１０は、経過時間が所定時間に達したと判定すれば処理をステップ９へと進める一方（Ｙｅｓ）、経過時間が所定時間に達していないと判定すれば処理をステップ１０へと進める（Ｎｏ）。ここで、所定時間は、セルフシャットダウンから再起動へと移行する場合の待ち時間を規定する閾値であって、例えば、電子制御装置１００が動作を開始するまでに要する最大時間から定めることができる。なお、所定時間は、他の電子制御装置が通信異常などを判定可能な時間、運転者が違和感を感じる時間、過去のデータ書き込み時間（前回値、所定回の移動平均など）にマージン（所定値、所定比率など）を加算した時間などから定めてもよい。
【００２７】
ステップ９では、プロセッサ１１０が、データ書込先であるバンクからバンク状態１３０Ｂを読み出し、これが「正常」であるか否かを介して、そのバンクの区切りまでデータを書き込んだか否かを判定する。そして、プロセッサ１１０は、バンクの区切りまでデータを書き込んだと判定すれば処理をステップ１へと戻す一方（Ｙｅｓ）、バンクの区切りまでデータを書き込んでいないと判定すれば処理をステップ１０へと進める（Ｎｏ）。
【００２８】
ステップ１０では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータがすべてフラッシュメモリ１３０に書き込まれたか否か、要するに、すべてのデータの書き込みが終了したか否かを判定する。そして、プロセッサ１１０は、すべてのデータの書き込みが終了したと判定すれば処理をステップ１１へと進める一方（Ｙｅｓ）、すべてのデータの書き込みが終了していないと判定すれば処理をステップ５へと戻す（Ｎｏ）。
【００２９】
ステップ１１では、プロセッサ１１０が、イグニッションスイッチ４２のＯＮ／ＯＦＦ信号を読み込み、イグニッションスイッチ４２がＯＮのままであるか否か、要するに、再起動操作が継続しているか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ１へと戻す一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮからＯＦＦになったと判定すれば処理をステップ１２へと進める（Ｎｏ）。
【００３０】
ステップ１２では、プロセッサ１１０が、セルフシャットダウンを終了させるために、内部電源を遮断する。
かかる電子制御装置１００によれば、定常処理の実行中に、イグニッションスイッチ４２がＯＮからＯＦＦになると、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータをフラッシュメモリ１３０に書き込む処理が開始される。このとき、学習値，異常情報及び車両情報などのデータは、所定規則により分別されたグループごとに、フラッシュメモリ１３０のバンクに順次書き込まれる。そして、所定条件が成立、例えば、すべてのデータの書き込みが終了すると、内部電源が遮断される。
【００３１】
また、データ書き込みが行われているセルフシャットダウン中に、イグニッションスイッチ４２がＯＮになると、イグニッションスイッチ４２がＯＮになってからの経過時間が計時される。この経過時間が所定時間に達し、かつ、バンクの区切りまでデータが書き込まれていれば、それ以降のバンクへのデータ書き込みを中断し、電子制御装置１００が再起動される。
【００３２】
なお、電子制御装置１００を再起動する場合には、電子制御装置１００に内蔵された自己初期化回路からリセット信号を出力したり、制御プログラムに内蔵された初期化プログラムを実行することで、初期状態から動作を開始させればよい。
【００３３】
このため、電子制御装置１００のセルフシャットダウン中に再起動操作が行われた場合には、再起動操作が行われたときにデータ書き込み中であったバンクの最後までデータを書き込んだ後、電子制御装置１００が再起動されることとなる。従って、例えば、再起動操作に伴ってバッテリ電圧が一時的に低下しない限り、フラッシュメモリ１３０に格納されている学習値，異常情報及び車両情報などのデータが消失することを抑制できる。この場合、ＲＡＭ１２０に格納されているデータがクリアされないので、フラッシュメモリ１３０からＲＡＭ１２０へのデータ読み出しは行わなくてもよい。
【００３４】
一方、電子制御装置１００のセルフシャットダウン中に再起動操作が行われたことに伴い、例えば、クランキングなどによってバッテリ電圧が一時的に低下すると、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータがクリアされてしまう。この場合、バンクへのデータ書き込みが終了していないので、そのバンクに割り当てられたデータは消失してしまう。しかし、消失したデータは、所定規則で分別したグループのデータであって、他のグループのデータに影響を及ぼさないデータであるため、データ消失による影響を小さくすることができる。
【００３５】
そして、電子制御装置１００は、フラッシュメモリ１３０からＲＡＭ１２０にデータを読み出すとき、バンクに格納されているデータが妥当であるか否かは、バンク状態１３０Ｂ又は誤り検出符号１３０Ｃにより判定することができる。なお、バンクのデータが妥当でない場合には、例えば、そのデータをデフォルト値（初期値）に初期化すればよい。また、関連するデータが複数のバンクに亘って存在する場合には、一部のバンクのデータが妥当でないときには、関連するバンクすべてを初期化すればよい。
【００３６】
ここで、電子制御装置１００の作用の理解を容易ならしめるため、具体的な事例を想定して説明する。その前提として、ＲＡＭ１２０及びフラッシュメモリ１３０には、バンク０〜３が夫々確保されており、定常処理実行中に、ＲＡＭ１２０のバンクに最新の学習値，異常情報及び車両情報が格納されるものとする。
【００３７】
イグニッションスイッチ４２がＯＮからＯＦＦになった場合には、図５に示すように、所定のディレイ時間経過後に、セルフシャットダウン処理が開始される。セルフシャットダウン処理においては、規定順序に従ってＲＡＭ１２０からフラッシュメモリ１３０へとデータが書き込まれる。図示の例においては、ＲＡＭ１２０のバンク０からフラッシュメモリ１３０のバンク０へと、ＲＡＭ１２０のバンク１からフラッシュメモリ１３０のバンク１へと、ＲＡＭ１２０のバンク２からフラッシュメモリ１３０のバンク２へと、ＲＡＭ１２０のバンク３からフラッシュメモリ１３０のバンク３へと、この順番でデータが書き込まれることが示されている。そして、バンク３のデータの書き込みが終了した後、内部電源が遮断されて、電子制御装置１００が停止する。
【００３８】
セルフシャットダウン中のバンク１へのデータ書き込み中に、図６に示すように、イグニッションスイッチ４２がＯＦＦからＯＮになると、バンク１へのデータの書き込みが終了するまで再起動を待ち、電子制御装置１００が再起動される。この場合には、バンク２及び３のデータがフラッシュメモリ１３０に書き込まれないが、ＲＡＭ１２０にそのデータが残っているため、その後のセルフシャットダウン処理においてデータをフラッシュメモリ１３０に書き込めば何ら問題が生じない。
【００３９】
セルフシャットダウン中のバンク１へのデータ書き込み中に、図７に示すように、イグニッションスイッチ４２がＯＦＦからＯＮになって、クランキングなどによってバッテリ電圧が一時的に低下すると、その電圧低下が回復したときに、電子制御装置１００が再起動される。この場合には、バッテリ電圧の低下によって電子制御装置１００の作動が停止するので、ＲＡＭ１２０のバンク０〜３のデータがクリアされてしまう。しかし、フラッシュメモリ１３０のバンク１へのデータ書き込みが終了しているので、再起動時にこれを読み出せば制御に支障が生じない。なお、バッテリ電圧の低下タイミングによっては、フラッシュメモリ１３０のバンク１へのデータ書き込みが途中で中断されてデータが消失してしまうが、他のバンク０,２及び３のデータは依然として残っており、制御への影響を小さくすることができる。
【００４０】
その後、電子制御装置１００の再起動により、同図に示すように、初期化処理として、フラッシュメモリ１３０のバンク０〜３からＲＡＭ１２０のバンク０〜３へとデータが順次読み出され、定常処理が開始される。
【００４１】
図８は、イグニッションスイッチ４２がＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が、フラッシュメモリ１３０に格納された制御プログラムに従って実行する処理の第２実施例を示す。この前提として、フラッシュメモリ１３０の空き領域には、図９に示すように、複数のバンク１〜Ｎのうち少なくとも１つのバンク、例えば、バンク２が複数（例えば２つ）のバンク２−１及び２−２から構成され、一方のバンク２−１がメインバンクとして、他方のバンク２−２がメインバンクのミラーバンクとして使用されるものとする。なお、先の第１実施例と共通する処理については、重複説明を排除するため、その説明を簡略化するものとする（以下同様）。
【００４２】
ステップ２１では、プロセッサ１１０が、定常処理を実行する。
ステップ２２では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮからＯＦＦになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＦＦになったと判定すれば処理をステップ２３へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ２１へと戻す（Ｎｏ）。
【００４３】
ステップ２３では、プロセッサ１１０が、定常処理を停止させる。
ステップ２４では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータを、所定規則で分別したグループごとに、フラッシュメモリ１３０に確保したバンクに順次書き込む。ここで、あるバンクがメインバンク及びミラーバンクから構成されている場合には、メインバンクにデータを書き込んだ後、ミラーバンクに同一内容のデータを書き込むようにすればよい。
【００４４】
ステップ２５では、プロセッサ１１０が、イグニッションスイッチ４２がＯＦＦからＯＮになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮになったと判定すれば処理をステップ２６へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＦＦのままであると判定すれば処理をステップ２７へと進める（Ｎｏ）。
【００４５】
ステップ２６では、プロセッサ１１０が、タイマのカウントを更新する。
ステップ２７では、プロセッサ１１０が、タイマのカウントをリセットする。
ステップ２８では、プロセッサ１１０が、タイマによって計時された経過時間が所定時間に達したか否かを判定する。そして、プロセッサ１１０は、経過時間が所定時間に達したと判定すれば処理をステップ２９へと進める一方（Ｙｅｓ）、経過時間が所定時間に達していないと判定すれば処理をステップ３１へと進める（Ｎｏ）。
【００４６】
ステップ２９では、プロセッサ１１０が、データ書込先であるバンクがミラーバンクであって、そこにデータを書き込み中であるか否かを判定する。データ書き込み中であるか否かは、例えば、ミラーバンクのバンク状態１３０Ｂが「正常」であるか否かを介して判定することができる。そして、プロセッサ１１０は、ミラーバンクにデータを書き込み中であると判定すれば処理をステップ２１へと戻す一方（Ｙｅｓ）、ミラーバンクにデータを書き込み中でないと判定すれば処理をステップ３０へと進める（Ｎｏ）。
【００４７】
ステップ３０では、プロセッサ１１０が、データ書込先であるバンクの区切りまでデータを書き込んだか否かを判定する。そして、プロセッサ１１０は、バンクの区切りまでデータを書き込んだと判定すれば処理をステップ２１へと戻す一方（Ｙｅｓ）、バンクの区切りまでデータを書き込んでいないと判定すれば処理をステップ３１へと進める（Ｎｏ）。
【００４８】
ステップ３１では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのすべてのデータの書き込みが終了したか否かを判定する。そして、プロセッサ１１０は、すべてのデータの書き込みが終了したと判定すれば処理をステップ３２へと進める一方（Ｙｅｓ）、すべてのデータの書き込みが終了していないと判定すれば処理をステップ２４へと戻す（Ｎｏ）。
【００４９】
ステップ３２では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮのままであるか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ２１へと戻す一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮからＯＦＦになったと判定すれば処理をステップ３３へと進める（Ｎｏ）。
【００５０】
ステップ３３では、プロセッサが、内部電源を遮断する。
かかる電子制御装置１００によれば、先の第１実施例の作用・効果に加え、メインバンク及びミラーバンクからなるバンクについて、少なくともメインバンクへのデータ書き込みが終了していれば、電子制御装置１００が再起動される。この場合、ミラーバンクにはデータが正常に書き込まれていない可能性があるが、メインバンクに書き込まれたデータを使用して燃料噴射弁２２及び点火プラグ２４を制御すればよい。なお、メインバンクのデータが妥当でなければ、ミラーバンクのデータを使用して燃料噴射弁２２及び点火プラグ２４を制御すればよい。メインバンク及びミラーバンクのデータが共に妥当でなければ、デフォルト値（初期値）で初期化すればよい。
【００５１】
このようにすれば、重要なデータは多重化して書き込まれるため、そのデータの消失をより抑制することができる。
図１０は、イグニッションスイッチ４２がＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が、フラッシュメモリ１３０に格納された制御プログラムに従って実行する処理の第３実施例を示す。
【００５２】
ステップ４１では、プロセッサ１１０が、定常処理を実行する。
ステップ４２では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮからＯＦＦになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＦＦになったと判定すれば処理をステップ４３へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ４１へと戻す（Ｎｏ）。
【００５３】
ステップ４３では、プロセッサ１１０が、定常処理を停止させる。
ステップ４４では、プロセッサ１１０が、データ書き込みを中断したバンクがあるか否かを判定する。データ書き込みを中断したバンクか否かは、例えば、バンク状態１３０Ｂが「異常」になっているか否かを介して判定することができる。そして、プロセッサ１１０は、データ書き込みを中断したバンクがあると判定すれば処理をステップ４５へと進める一方（Ｙｅｓ）、データ書き込みを中断したバンクがないと判定すれば処理をステップ４６へと進める（Ｎｏ）。
【００５４】
ステップ４５では、プロセッサ１１０が、データ書き込みを中断したバンクを、データ書き込みを開始する開始位置とする。
ステップ４６では、プロセッサ１１０が、予め決められた規定バンクを、データ書き込みを開始する開始位置とする。ここで、規定バンクの一例としては、例えば、先頭のバンクから最後のバンクまで順番に選択することができる。
【００５５】
ステップ４７では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータを、所定規則で分別したグループごとに、開始位置で特定されるバンクに書き込む。
【００５６】
ステップ４８では、プロセッサ１１０が、イグニッションスイッチ４２がＯＦＦからＯＮになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮになったと判定すれば処理をステップ４９へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＦＦのままであると判定すれば処理をステップ５０へと進める（Ｎｏ）。
【００５７】
ステップ４９では、プロセッサ１１０が、タイマのカウントを更新する。
ステップ５０では、プロセッサ１１０が、タイマのカウントをリセットする。
ステップ５１では、プロセッサ１１０が、タイマによって計時された経過時間が所定時間に達したか否かを判定する。そして、プロセッサ１１０は、経過時間が所定時間に達したと判定すれば処理をステップ５２へと進める一方（Ｙｅｓ）、経過時間が所定時間に達していないと判定すれば処理をステップ５４へと進める（Ｎｏ）。
【００５８】
ステップ５２では、プロセッサ１１０が、ミラーバンクにデータを書き込み中であるか否かを判定する。そして、プロセッサ１１０は、ミラーバンクにデータを書き込み中であると判定すれば処理をステップ４１へと戻す一方（Ｙｅｓ）、ミラーバンクにデータを書き込み中でないと判定すれば処理をステップ５３へと進める（Ｎｏ）。
【００５９】
ステップ５３では、プロセッサ１１０が、データ書込先であるバンクの区切りまでデータを書き込んだか否かを判定する。そして、プロセッサ１１０は、バンクの区切りまでデータを書き込んだと判定すれば処理をステップ４１へと戻す一方（Ｙｅｓ）、バンクの区切りまでデータを書き込んでいないと判定すれば処理をステップ５４へと進める（Ｎｏ）。
【００６０】
ステップ５４では、プロセッサ１１０が、すべてのデータの書き込みが終了したか否かを判定する。そして、プロセッサ１１０は、すべてのデータの書き込みが終了したと判定すれば処理をステップ５５へと進める一方（Ｙｅｓ）、すべてのデータの書き込みが終了していないと判定すれば処理をステップ４４へと戻す（Ｎｏ）。
【００６１】
ステップ５５では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮのままであるか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ４１へと戻す一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮからＯＦＦになったと判定すれば処理をステップ５６へと進める（Ｎｏ）。
【００６２】
ステップ５６では、プロセッサ１１０が、内部電源を遮断する。
かかる電子制御装置１００によれば、先の第２実施例の作用・効果に加え、前回の処理において、バンク（メインバンク又はミラーバンク）へのデータ書き込みが途中で中断したバンクがある場合には、そのバンクからデータの書き込みが開始される。このため、異なったタイミングでバンクへのデータの書き込みが途中で中断した場合であっても、データ書き込みが不完全であるバンクが１つとなり、例えば、この状態でバッテリ電圧が一時的に低下しても、複数のグループに属するデータの消失を抑制することができる。
【００６３】
図１１は、イグニッションスイッチ４２がＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が、フラッシュメモリ１３０に格納された制御プログラムに従って実行する処理の第４実施例を示す。
【００６４】
ステップ６１では、プロセッサ１１０が、定常処理を実行する。
ステップ６２では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮからＯＦＦになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＦＦになったと判定すれば処理をステップ６３へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ６１へと戻す（Ｎｏ）。
【００６５】
ステップ６３では、プロセッサ１１０が、定常処理を停止させる。
ステップ６４では、プロセッサ１１０が、ＲＡＭ１２０に格納されている学習値，異常情報及び車両情報などのデータを、所定規則で分別したグループごとに、フラッシュメモリ１３０に確保したバンクに順次書き込む。
【００６６】
ステップ６５では、プロセッサ１１０が、イグニッションスイッチ４２がＯＦＦからＯＮになったか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮになったと判定すれば処理をステップ６６へと進める一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＦＦのままであると判定すれば処理をステップ６７へと進める（Ｎｏ）。
【００６７】
ステップ６６では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮになってからの経過時間を計時するタイマ１のカウントを更新（インクリメント）する。
ステップ６７では、プロセッサ１１０が、タイマ１のカウントをリセットする。
【００６８】
ステップ６８では、プロセッサ１１０が、タイマ１によって計時された経過時間が第１の所定時間ｔ１に達したか否かを判定する。そして、プロセッサ１１０は、経過時間が第１の所定時間ｔ１に達したと判定すれば処理をステップ６９へと進める一方（Ｙｅｓ）、経過時間が第１の所定時間ｔ１に達していないと判定すれば処理をステップ７２へと進める（Ｎｏ）。
【００６９】
ステップ６９では、プロセッサ１１０が、データ書込先であるバンクの区切りまでデータを書き込んだか否かを判定する。そして、プロセッサ１１０は、バンクの区切りまでデータを書き込んだと判定すれば処理をステップ６１へと戻す一方（Ｙｅｓ）、バンクの区切りまでデータを書き込んでいないと判定すれば処理をステップ７０へと進める（Ｎｏ）。
【００７０】
ステップ７０では、プロセッサ１１０が、ステップ６５においてイグニッションスイッチ４２がＯＦＦからＯＮになってからの経過時間を計時するタイマ２のカウントを更新（インクリメント）する。
【００７１】
ステップ７１では、プロセッサ１１０が、タイマ２によって計時された経過時間が第２の所定時間ｔ２に達したか否かを判定する。そして、プロセッサ１１０は、経過時間が第２の所定時間ｔ２に達したと判定すれば処理をステップ６１へと戻す一方（Ｙｅｓ）、経過時間が第２の所定時間ｔ２に達していないと判定すれば処理をステップ７２へと進める（Ｎｏ）。なお、プロセッサ１１０は、タイマ２に代えて、タイマ１を使用して経過時間が第２の所定時間ｔ２に達したか否かを判定してもよい。
【００７２】
ステップ７２では、プロセッサ１１０が、すべてのデータの書き込みが終了したか否かを判定する。そして、プロセッサ１１０は、すべてのデータの書き込みが終了したと判定すれば処理をステップ７３へと進める一方（Ｙｅｓ）、すべてのデータの書き込みが終了していないと判定すれば処理をステップ６４へと戻す（Ｎｏ）。
【００７３】
ステップ７３では、プロセッサ１１０が、イグニッションスイッチ４２がＯＮのままであるか否かを判定する。そして、プロセッサ１１０は、イグニッションスイッチ４２がＯＮのままであると判定すれば処理をステップ６１へと戻す一方（Ｙｅｓ）、イグニッションスイッチ４２がＯＮからＯＦＦになったと判定すれば処理をステップ７４へと進める（Ｎｏ）。
【００７４】
ステップ７４では、プロセッサ１１０が、内部電源を遮断する。
かかる電子制御装置１００によれば、先の第１実施例の作用・効果に加え、セルフシャットダウン中にイグニッションスイッチ４２がＯＮになった場合、それから所定時間ｔ２経過すると、バンクの区切りまでデータが書き込まれていなくても、電子制御装置１００が再起動される。このため、何らかの原因によってバンクへのデータの書き込みに時間がかかっても、その途中で強制的に電子制御装置１００が再起動されるので、再起動の応答性を確保することができる。
【００７５】
第１実施例〜第４実施例については、少なくとも２つの実施例を適宜組み合わせた制御としてもよい。また、電子制御装置１００の制御対象としては、燃料噴射弁２２及び点火プラグ２４に限らず、例えば、可変動弁機構、自動変速機、ブラシレスモータ、電動ブレーキシステムなど、各種の車載機器であってもよい。
【００７６】
ここで、前記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）前記不揮発性メモリの記憶領域を複数に分割した各記憶単位には、所定規則で分別したグループごとに、前記情報を書き込む、ことを特徴とする請求項１〜請求項３のいずれか１つに記載の自動車用電子制御装置。
このようにすれば、セルフシャットダウン中にイグニッションスイッチがＯＮになった再起動時に、例えば、クランキングによってバッテリ電圧が一時的に低下して情報が消失しても、他のグループに属する情報への影響を小さくすることができる。
【００７７】
（ロ）前記不揮発性メモリの記憶領域を複数に分割した各記憶単位は、前記グループに属する情報に応じたサイズを有している、ことを特徴とする（イ）に記載の自動車用電子制御装置。
このようにすれば、不揮発性メモリの記憶領域を有効に利用することができる。
【００７８】
（ハ）前記セルフシャットダウンが開始された場合、それまでの処理において情報の書き込みが終了していない記憶単位から情報を書き込み始める、ことを特徴とする請求項１〜請求項３、（イ）及び（ロ）のいずれか１つに記載の自動車用電子制御装置。
このようにすれば、異なったタイミングで記憶単位への情報の書き込みが途中で中断した場合であっても、情報の書き込みが不完全な記憶単位が１つとなり、例えば、この状態でバッテリ電圧が一時的に低下しても、複数のグループに属する情報の消失を抑制することができる。
【００７９】
（ニ）前記記憶単位は、情報を格納するデータ領域と、情報の書き込み状態と、を含んで構成され、前記記憶単位に情報を書き込む場合、前記書き込み状態に異常を示す情報を書き込んだ後、前記データ領域に情報を書き込み、その後前記書き込み状態に正常を示す情報を書き込む、ことを特徴とする請求項１〜請求項３、（イ）、（ロ）及び（ハ）のいずれか１つに記載の自動車用電子制御装置。
このようにすれば、記憶単位の書き込み状態を参照することで、データ領域への情報の書き込みが正常に終了しているか否かを判定することができる。
【００８０】
（ホ）前記記憶単位は、前記データ領域に書き込まれた情報の誤り検出符号を更に含む、ことを特徴とする（ニ）に記載の自動車用電子制御装置。
このようにすれば、誤り検出符号によりデータ領域に書き込まれた情報が妥当であるか否かを判定することができる。
【符号の説明】
【００８１】
４２  イグニッションスイッチ
１００  電子制御装置
１１０  プロセッサ
１２０  ＲＡＭ
１３０  フラッシュメモリ
【図１】
2014061793.tif 000003
【図２】
2014061793.tif 000004
【図３】
2014061793.tif 000005
【図４】
2014061793.tif 000006
【図５】
2014061793.tif 000007
【図６】
2014061793.tif 000008
【図７】
2014061793.tif 000009
【図８】
2014061793.tif 000010
【図９】
2014061793.tif 000011
【図１０】
2014061793.tif 000012
【図１１】
2014061793.tif 000013