(57)【要約】【課題】ＣＰＵに内蔵されている不揮発性メモリを使用しながら、電源電圧の低下による異常判定及び異常値の書き込みを抑制でき、ＣＰＵの負担を軽減できる自動車用電子制御装置を提供する。【解決手段】ＣＰＵ２に内蔵された不揮発性メモリ６に車両の状態を示す学習値を記憶し、前記不揮発性メモリから読み出した学習値に基づき車両を制御する電子制御装置であって、前記ＣＰＵに印加される電源電圧Ｖｂａが所定値よりも低下した場合、及び所定値よりも低下することが予想される場合に、前記ＣＰＵによる前記不揮発性メモリへのアクセスを制限する、ことを特徴とする。電源電圧が低下あるいは低下が予想される場合に、不揮発性メモリへのアクセスを制限することで、異常判定及び異常値の書き込みを抑制でき、ＣＰＵによる処理を低減して負担を軽減できる。【選択図】図１
2015060526.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵに内蔵された不揮発性メモリに車両の状態を示す学習値を記憶し、前記不揮発性メモリから読み出した学習値に基づき車両を制御する電子制御装置であって、
前記ＣＰＵに印加される電源電圧が所定値よりも低下した場合、及び所定値よりも低下することが予想される場合に、前記ＣＰＵによる前記不揮発性メモリへのアクセスを制限する、ことを特徴とする自動車用電子制御装置。
【請求項２】
前記不揮発性メモリへの書き込み中に前記電源電圧が低下した場合は、前記電源電圧の復帰後に再書き込みを実施する、ことを特徴とする請求項１に記載の自動車用電子制御装置。
【請求項３】
前記電源電圧の復帰後の再書き込みの前に、前記不揮発性メモリにおける再書き込みの対象となる記憶領域の初期化を行う、ことを特徴とする請求項２に記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵに内蔵された不揮発性メモリに車両の状態を示す学習値を記憶し、この不揮発性メモリから読み出した学習値に基づき車両を制御する自動車用電子制御装置に関する。
【背景技術】
【０００２】
メインマイクロコンピュータ（メインマイコン）と、サブマイクロコンピュータ（サブマイコン）とを備え、不揮発性メモリを外付けして、サブマイコンの管理下で使用する自動車用電子制御装置では、クランキング等による電源電圧の低下時に、不揮発性メモリへの書き込みが重なると正常に処理できない可能性がある。
そこで、例えば特許文献１では、電源電圧がサブマイコンの最低作動電圧より低下したときに、メインマイコンで、サブマイコンによる外付けの不揮発性メモリへの書き込みを禁止している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２４１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、外付けの不揮発性メモリを廃止し、マイコン（ＣＰＵ）に内蔵された不揮発性メモリを使用すれば、外付け不揮発性メモリだけでなく、この不揮発性メモリを管理及び制御するサブマイコンも不要となり、車両用制御機器のコストを削減できる。
しかしながら、電力不足により内蔵不揮発性メモリに不定値の書き込みが行われないように、メインマイコン自身での電源電圧を監視する必要がある。また、サブマイコンに比べて最低作動電圧が高いメインマイコンで不揮発性メモリへの書き込み処理を実施しなければならないため、電源電圧が低下した場合に、異常判定及び異常値を書き込む可能性が高くなる。しかも、電源電圧の低下が予想される場合、及び書き込み異常が疑われる場合等において、それぞれに応じた処理が必要となり、メインマイコンの負担が増大する、という課題があった。
【０００５】
本発明は上記のような事情に鑑みてなされたもので、その目的とするところは、ＣＰＵに内蔵されている不揮発性メモリを使用しながら、電源電圧の低下による異常判定及び異常値の書き込みを抑制でき、ＣＰＵの負担を軽減できる自動車用電子制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の自動車用電子制御装置は、ＣＰＵに内蔵された不揮発性メモリに車両の状態を示す学習値を記憶し、前記不揮発性メモリから読み出した学習値に基づき車両を制御する電子制御装置であって、前記ＣＰＵに印加される電源電圧が所定値よりも低下した場合、及び所定値よりも低下することが予想される場合に、前記ＣＰＵによる前記不揮発性メモリへのアクセスを制限する、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ＣＰＵに印加される電源電圧が所定値よりも低下した場合、及び所定値よりも低下することが予想される場合に、ＣＰＵによる不揮発性メモリへのアクセスを制限することで、異常判定及び異常値の書き込みを抑制でき、ＣＰＵによる処理を低減して負担を軽減できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る自動車用電子制御装置の概略構成を示すブロック図である。
【図２】図１に示した自動車用電子制御装置における不揮発性メモリに対する第１の制御動作を示すフローチャートである。
【図３】第１の制御動作の変形例１を示すフローチャートである。
【図４】第１の制御動作の変形例２を示すフローチャートである。
【図５】第１の制御動作の変形例３を示すフローチャートである。
【図６】第１の制御動作の変形例４を示すフローチャートである。
【図７】不揮発性メモリに対する第２の制御動作を示すフローチャートである。
【図８】不揮発性メモリに対する第３の制御動作を示すフローチャートである。
【図９】図８におけるデータ待避動作とデータ復旧動作について説明するブロック図である。
【図１０】不揮発性メモリに対する第４の制御動作を示すフローチャートである。
【図１１】不揮発性メモリに対する第５の制御動作を示すフローチャートである。
【図１２】不揮発性メモリに対する第６の制御動作を示すフローチャートである。
【図１３】第６の制御動作の変形例５を説明するフローチャートである。
【図１４】不揮発性メモリに対する第７の制御動作を示すフローチャートである。
【図１５】不揮発性メモリに対する第８の制御動作を示すフローチャートである。
【図１６】不揮発性メモリに対する第９の制御動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
図１に示すように、自動車用電子制御装置としてのＥＣＵ（Electronic Control Unit）１は、ＣＰＵ（Central Processing Unit）２、入力回路３、出力回路・出力監視回路４、及び電源回路５等を含んで構成されている。入力回路３には各種センサ及びスイッチ、例えばエンジン回転センサ、クランク角センサ、スロットルセンサ、電圧センサ、水温センサ、イグニッションキー、及びスタータスイッチ等から計測結果やスイッチの状態を示す信号が入力される。入力回路３に入力された信号はＣＰＵ２に入力され、ＣＰＵ２で処理された信号が、出力回路から各種被制御機器のリレーやソレノイドバルブ等に供給され、これらが制御される。この際、出力監視回路によって各種被制御機器の制御状態がＣＰＵ２にフィードバックされ、ＣＰＵ２によって各種被制御機器の制御状態が監視される。
【００１０】
電源回路５には、バッテリ等の電源から電源電圧Ｖｂａが印加され、各回路、例えば上記ＣＰＵ２、入力回路３、及び出力回路・出力監視回路４に動作電源が供給される。
そして、上記ＥＣＵ１によって、例えば点火タイミング、燃料噴射量、スロットルバルブの開閉、及びバルブタイミング等が制御されるようになっている。
上記ＣＰＵ２には、電気的に記録内容の消去・再書き込みが可能な不揮発性メモリ（不揮発性半導体メモリ）６が内蔵されている。この不揮発性メモリ６には、ＣＰＵ２による制御手順を記述したソフトウェア、車両の状態、例えばエンジンの状態を示す学習値、及び自己診断の結果（エラーコード）等が格納されており、エンジン始動時に読み出してＣＰＵ２内のＲＡＭ等に記憶し、これらの記憶情報に基づき車両、例えばエンジンを制御する。また、学習値はバッテリ取り外し時やバッテリ交換時等の復帰用データ（初期値）として使用する。
【００１１】
［第１の制御動作］
次に、ＣＰＵ２による不揮発性メモリ６に対する第１の制御動作について、図２のフローチャートにより説明する。ＣＰＵ２は、電圧センサで電源電圧Ｖｂａを監視しており（ステップＳ１）、電源電圧Ｖｂａが低下したか否かを判定する（ステップＳ２）。この電圧センサによる電源電圧Ｖｂａの検出には、例えばバッテリライン電圧あるいはイグニッションキーに直結されている電源ラインの電圧を計測する。
【００１２】
そして、電源電圧Ｖｂａが所定値、すなわち不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより低下（Ｖｂａ＜Ｖｍｉｎ）したと判定されると、不揮発性メモリ６への書き込みを禁止する（ステップＳ３）。一方、通常状態（Ｖｂａ≧Ｖｍｉｎ）であると判定されると、不揮発性メモリ６への書き込みを許可する（ステップＳ４）。
次のステップＳ５で、電源電圧Ｖｂａが低下して不揮発性メモリ６が書き込み禁止中か否かを判定する。書き込み禁止中でなければステップＳ１に戻って、電源電圧Ｖｂａの監視に基づき、不揮発性メモリ６へのアクセス（書き込み）制御動作を繰り返す（ステップＳ１〜Ｓ４）。
【００１３】
一方、ステップＳ５で書き込み禁止中と判定されると、電源電圧Ｖｂａを計測し（ステップＳ６）、書き込み禁止の解除電圧Ｖｒｅ以上（Ｖｂａ＞Ｖｒｅ）に回復したか否かを判定する（ステップＳ７）。電源電圧Ｖｂａが解除電圧Ｖｒｅ以上に回復していなければ、不揮発性メモリ６への書き込み禁止を維持し（ステップＳ８）、ステップＳ６に戻って電源電圧Ｖｂａを計測し、書き込み禁止の解除電圧Ｖｒｅ以上に回復するまでステップＳ６〜Ｓ８の動作を繰り返す。
ステップＳ７で電源電圧Ｖｂａが解除電圧Ｖｒｅ以上に回復したと判定されると、不揮発性メモリ６への書き込みを許可する（ステップＳ９）。そして、ＥＣＵ１による制御が終了したか否か、例えばイグニッションキーがオンからオフになったか否かを判定し（ステップＳ１０）、ＥＣＵ１による制御が終了するまで上述したステップＳ１〜Ｓ９の動作を繰り返す。
【００１４】
このように、車両のバッテリ等の電源からＥＣＵ１へ供給される電源電圧Ｖｂａを監視及び確認して、通常時、すなわち不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎ（例えば６Ｖ）以上のときは、不揮発性メモリ６に対する書き込み、及びブランクチェック等のアクセスを許可し、下限値Ｖｍｉｎより低電圧のときには不揮発性メモリ６への書き込み、及びブランクチェック等のアクセスを禁止する。また、電源電圧Ｖｂａが低下して不揮発性メモリ６がアクセス禁止となった場合には、解除電圧Ｖｒｅ以上となるまでアクセス禁止状態を維持し、解除電圧Ｖｒｅ以上となったときにアクセスを許可する。
【００１５】
上記構成の自動車用電子制御装置によると、内蔵の不揮発性メモリ６へ書き込みを行うと不定値となるような低い電源電圧（Ｖｂａ＜Ｖｍｉｎ）の場合には、不揮発性メモリ６に対する書き込み、及びブランクチェック等のアクセスを行わないので、異常判定及び異常値の書き込みを抑制することができる。また、電源電圧Ｖｂａが、下限値Ｖｍｉｎ以下になった場合は、電源電圧Ｖｂａが解除電圧Ｖｒｅ以上（Ｖｂａ≧Ｖｒｅ）に回復してから、不揮発性メモリ６に対するアクセスを行うことで、正常な書き込み等の処理を行うことができる。これによって、外付けの不揮発性メモリとサブマイコンを削減し、ＥＣＵ１に内蔵された不揮発性メモリ６を使用しながら、異常判定及び異常値の書き込みを抑制でき、ＣＰＵ２の負担を軽減できる。
【００１６】
なお、上記解除電圧Ｖｒｅは、書き込み禁止時の低電圧判定値である不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎと等しくすることもできるが、電源電圧Ｖｂａの安定性と不揮発性メモリ６への書き込み余裕を考慮して、下限値Ｖｍｉｎよりも高く設定すると良い。
また、電源電圧Ｖｂａの低下で、本処理後にＣＰＵ２がリセットした場合には、不揮発性メモリ６へリセットフラグをセットして、ＣＰＵ２がリセットされたことを記録し、従来と基本的に同様な後処理を行う。
【００１７】
＜変形例１＞
図３に示す変形例１は、図２に示したフローチャートにおける、不揮発性メモリ６へのアクセス（書き込み）制御において、イグニッションキーのオン／オフ状態を考慮するものである。
すなわち、まずイグニッションキーがオンか否かを判定し（ステップＳ１１）、オンであれば電源電圧Ｖｂａが低下する可能性があるので、不揮発性メモリ６を書き込み禁止にする（ステップＳ１２）。そして、イグニッションキーがオンしてからの経過時間を計測し（ステップＳ１３）、所定時間が経過したか否かを判定する（ステップＳ１４）。所定時間が経過するまではステップＳ１２〜Ｓ１４を繰り返し、不揮発性メモリ６への書き込み禁止を維持する。この所定時間は、イグニッションキーがオンしてから、例えばスタータが回転されてエンジンが始動し、電源電圧Ｖｂａが安定するまでの時間を設定する。そして、所定時間経過すると、不揮発性メモリ６への書き込みを許可し（ステップＳ１５）、ステップＳ１９の書き込み禁止中か否かの判定に移動する。
【００１８】
一方、ステップＳ１１でイグニッションキーがオフと判定された場合には、電圧センサで電源電圧Ｖｂａを監視し（ステップＳ１６）、電源電圧Ｖｂａが低下したか否かを判定する（ステップＳ１７）。電源電圧Ｖｂａが所定値、例えば不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより低下したと判定されると、不揮発性メモリ６への書き込みを禁止し（ステップＳ１８）、通常状態（動作保証電圧内）であると判定されると、不揮発性メモリ６への書き込みを許可する（ステップＳ１５）。
ステップＳ１９では、電源電圧Ｖｂａが低下したことにより、不揮発性メモリ６が書き込み禁止中か否かを判定する。書き込み禁止中でなければステップＳ１１に戻り、上述した制御動作を繰り返す。
【００１９】
本変形例１では、車両のバッテリ等の電源からＥＣＵ１へ供給される電源電圧Ｖｂａの監視及び確認に加えて、イグニッションキーのオン／オフ状態を考慮するので、電源電圧Ｖｂａが低下したときだけでなく、電源電圧Ｖｂａの低下が予想される場合にも、ＣＰＵ２による不揮発性メモリ６への書き込みを禁止することで、異常判定及び異常値の書き込みを抑制できる。これによって、ＣＰＵ２による処理を低減して負担を軽減できる。
なお、復帰動作は、図２のフローチャートのステップＳ６以降と同様であり、電源電圧Ｖｂａが解除電圧Ｖｒｅより低い場合には書き込み禁止を維持し、解除電圧Ｖｒｅ以上になったときに、不揮発性メモリ６への書き込みを許可に復帰させる。
【００２０】
＜変形例２＞
図４に示す変形例２は、スタータスイッチのオン／オフ状態に応じて不揮発性メモリ６へのアクセス（書き込み）制御を行うものである。
まず、スタータスイッチがオンか否かを判定し（ステップＳ２１）、オンの時には不揮発性メモリ６を書き込み禁止にし（ステップＳ２２）、オフの時は書き込み許可とする（ステップＳ２３）。
【００２１】
そして、書き込み禁止中か否かを判定し（ステップＳ２４）、書き込み禁止中でなければステップＳ２１に戻ってスタータスイッチのオン／オフ状態に応じた不揮発性メモリ６への書き込み制御を行う。
スタータスイッチのオンによるクランキングは、消費電力が大きく、電源電圧Ｖｂａが低下する可能性があるので、上述したようにＣＰＵ２による不揮発性メモリ６への書き込みを禁止することで、異常判定及び異常値の書き込みを抑制でき、ＣＰＵ２による処理を低減して負担を軽減できる。
なお、復帰動作は、図２のフローチャートに示したように、電源電圧Ｖｂａが解除電圧Ｖｒｅより低い場合には書き込み禁止を維持し、解除電圧Ｖｒｅ以上になったときに、不揮発性メモリ６への書き込みを許可に復帰させる。
【００２２】
また、本変形例２は、図２に示した電源電圧Ｖｂａの監視と組み合わせることもでき、スタータスイッチがオンで、且つ電源電圧Ｖｂａが不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより低下したときに、不揮発性メモリ６へのアクセス（書き込み）を禁止するようにしても良い。
更に、図３に示したステップＳ１１において、イグニッションキーがオンか否かの判定ではなく、スタータスイッチがオンか否かを判定し、ステップＳ１４の所定時間を、スタータスイッチがオンしてからエンジンが始動するまでの時間、あるいはエンジン回転が安定するまでの時間に設定しても良い。
【００２３】
＜変形例３＞
図５に示す変形例３は、エンジン停止時に、電源電圧Ｖｂａが低下した場合に不揮発性メモリ６を書き込み禁止にし、エンジンが所定回転以上で回転している時は書き込み許可とするものである。
まず、エンジン回転センサ等によりエンジンが回転しているか否かを判定し（ステップＳ３１）、回転している場合には、所定回転以上で回転しているか否か判定する（ステップＳ３２）。エンジンが所定回転以上で回転している場合には不揮発性メモリ６への書き込みを許可し（ステップＳ３３）、所定回転数以下の場合には不揮発性メモリ６への書き込みを禁止する（ステップＳ３６）。
【００２４】
ステップＳ３１でエンジンが回転していないと判定された場合（停車時、アイドルストップ時等）には、電源電圧Ｖｂａを監視し（ステップＳ３４）、電源電圧Ｖｂａが不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより低下したか否かを判定し（ステップＳ３５）、低下したときには不揮発性メモリ６への書き込みを禁止し（ステップＳ３６）、低下していないときには書き込みを許可する（ステップＳ３３）。
次のステップＳ３７で、不揮発性メモリ６が書き込み禁止中か否かを判定する。書き込み禁止中でなければステップＳ３１に戻って、エンジン回転と電源電圧Ｖｂａの監視を行い、上述した動作を繰り返す。復帰動作は、図２のフローチャートにおけるステップＳ６以降と同様である。
【００２５】
エンジンが所定の回転以上で回転していれば、発電が行われて電源電圧Ｖｂａを確保できるので、エンジンが停止している状態や、アイドリング状態のような回転数が低い状態で、ＣＰＵ２による不揮発性メモリ６への書き込みを禁止することで、異常判定及び異常値の書き込みを抑制でき、ＣＰＵ２による処理を低減して負担を軽減できる。
なお、アイドリング状態でも十分な発電量が確保できれば、ステップＳ３２でのエンジン回転による判断は不要である。また、このステップＳ３２で電源電圧Ｖｂａを計測し、不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより高いか低いかを判定し、低い場合にはＣＰＵ２による不揮発性メモリ６への書き込みを禁止し、高い場合には許可するようにしても良い。これは、ＨＥＶ（Hybrid Electric Vehicle）車両では、走行中でもエンジンを停止することがあり、ＥＣＵ１への電力供給が不足する可能性があるためである。
【００２６】
＜変形例４＞
図６に示す変形例４は、電源電圧Ｖｂａを監視し、電源電圧Ｖｂａが低下したレベルに応じて不揮発性メモリ６への書き込み量（時間）を制限するものである。
まず、電源電圧Ｖｂａを監視し（ステップＳ４１）、電源電圧Ｖｂａが低下したか否かを判定する（ステップＳ４２）。電源電圧が低下していない場合には、不揮発性メモリ６の全記憶領域を書き込み許可にする（ステップＳ４３）。
【００２７】
ステップＳ４２で電源電圧Ｖｂａが低下したと判定されると、電源電圧Ｖｂａが極低電圧、例えば不揮発性メモリ６の動作保証電圧の下限値Ｖｍｉｎより低いか否かを判定する（ステップＳ４４）。電源電圧Ｖｂａが極低電圧でない場合には、不揮発性メモリ６への書き込み量（時間）を小さく（短く）設定して書き込み許可し（ステップＳ４５）、極低電圧であれば書き込みを禁止する（ステップＳ４６）。
次に、不揮発性メモリ６が書き込み制限中か否かを判定し（ステップＳ４７）、書き込み制限中でなければステップＳ４１に戻って、上述した動作を繰り返す。
復帰動作は、図２のフローチャートに示したように、電源電圧Ｖｂａが解除電圧Ｖｒｅより低い場合には書き込み禁止を維持し、解除電圧Ｖｒｅ以上になったときに、不揮発性メモリ６への書き込みを許可に復帰させる。
【００２８】
上記変形例４によれば、不揮発性メモリ６への書き込み禁止と書き込み許可だけでなく、電源電圧Ｖｂａが動作保証電圧の下限値Ｖｍｉｎ付近（下限値Ｖｍｉｎより高いが十分な余裕がないレベル）に低下したときに、書き込み量（時間）を小さく（短く）設定して書き込みを行うことで、電源電圧Ｖｂａのレベルに応じた書き込み制御を行うことができる。
なお、上記変形例４では、電源電圧Ｖｂａの低下と極低電圧か否かの判定を行ったが、これらのステップＳ４２，Ｓ４４間に、電源電圧Ｖｂａの中間レベルを判定するステップを設けることで、電源電圧Ｖｂａの低下に応じた、より細かい制御が可能となる。例えば、電源電圧Ｖｂａが６．０Ｖ以上であれば記憶領域の全域に書き込み許可、５．５Ｖまでは３／４の領域、５．０Ｖまでは１／２の領域、４．５Ｖまでは１／４の領域を書き込み許可とし、４．５Ｖ以下では書き込み禁止にする。
【００２９】
［第２の制御動作］
図７のフローチャートに示す第２の制御動作は、デバイスの駆動中か否か、不揮発性メモリが書き込み中か否かに応じて、不揮発性メモリ６への書き込みを制限するものである。
ステップＳ５１では、デバイスが稼働中か否かを判定し、稼働中でなければ不揮発性メモリ６への書き込みを許可する（ステップＳ５２）。ここで、デバイスとは作動によって電源電圧Ｖｂａの低下が予想される機器、例えばアクチュエータ、スタータ、ヒータ、パワーステアリング、及びエアコン等であり、エンジンが低回転時に高いギヤへの切り替えも含む。
【００３０】
次のステップＳ５３では、不揮発性メモリ６への書き込み中か否かを判定し、書き込み中であれば不揮発性メモリへの書き込みを中断し（ステップＳ５４）、書き込み中でなければ不揮発性メモリ６への書き込みを禁止する（ステップＳ５５）。この際、書き込みを中断したアドレスをバックアップＲＡＭ等に記憶しておく。
ステップＳ５６では、不揮発性メモリ６への書き込みが制限（禁止及び中断）中か否かを判定し、書き込み許可状態であればステップＳ５１に戻り、ステップＳ５１〜Ｓ５５の動作を繰り返す。書き込み制限中であれば、電源電圧Ｖｂａを計測し（ステップＳ５７）、書き込み禁止の解除電圧Ｖｒｅ以上に回復したか否かを判定する（ステップＳ５８）。電源電圧Ｖｂａが解除電圧Ｖｒｅ以上に回復していなければ、不揮発性メモリ６への書き込み制限を維持し（ステップＳ５９）、ステップＳ５７に戻って電源電圧Ｖｂａを計測し、書き込み禁止の解除電圧Ｖｒｅ以上に回復するまでステップＳ５７〜Ｓ５９の動作を繰り返す。
【００３１】
ステップＳ５８で電源電圧Ｖｂａが解除電圧Ｖｒｅ以上に回復していれば、不揮発性メモリ６への書き込みを許可し、中断していた場合には中断したアドレスから再書き込みを行う（ステップＳ６０）。そして、書き込み終了後にＥＣＵ１による制御が終了したか否か、例えばイグニッションキーがオンからオフになったか否かを判定し（ステップＳ６１）、ＥＣＵ１による制御が終了するまで上述したステップＳ５１〜Ｓ６０の動作を繰り返す。
上記のような第２の制御動作では、デバイスが稼働中か否かにより、電源電圧Ｖｂａの低下を予想し、且つ不揮発性メモリ６への書き込み中か否かを判定することで、電源電圧Ｖｂａが低下したときに書き込みを禁止するだけでなく、不揮発性メモリ６への書き込み中であっても書き込みを中断することで、異常判定及び異常値の書き込みを抑制できる。
また、電源電圧Ｖｂａが解除電圧Ｖｒｅ以上に回復したときに、中断したアドレスから書き込みを行うことで、正常な書き込みを行うことができる。
【００３２】
［第３の制御動作］
図８のフローチャートに示す第３の制御動作は、上述した第１、第２の制御動作及びその変形例１〜４において、不揮発性メモリ６への書き込み許可を受け、不揮発性メモリ６へ書き込みを行う際の詳しい動作を示している。本第３の制御動作は、例えば不揮発性メモリ６への書き込み中に瞬低等によりＮＭＩ（Non-Maskable Interrupt）割り込みが発生した場合に、不揮発性メモリ６内のデータをバックアップＲＡＭへ待避するものである。
すなわち、不揮発性メモリ６への書き込み許可を受け、不揮発性メモリ６へ書き込みを行う（ステップＳ７１）。書き込み中の電源電圧Ｖｂａを監視し（ステップＳ７２）、電源電圧Ｖｂａが所定値以下か否かを判定する（ステップＳ７３）。電源電圧Ｖｂａが所定値以下でなければ、データの待避が実施済みか否かを判定し（ステップＳ７４）、実施済みであればバックアップＲＡＭから不揮発性メモリ６にデータを復旧する（ステップＳ７５）。実施済みでなければ、書き込み許可を受けた後のステップに戻る。
【００３３】
電源電圧Ｖｂａが所定値以下であれば、電源電圧Ｖｂａが動作保証電圧以上か否かを判定する（ステップＳ７６）。そして、動作保証電圧以上であれば、不揮発性メモリ６内のデータをバックアップＲＡＭ内に待避し（ステップＳ７７）、待避が終了したか否か判定して（ステップＳ７８）、終了と判定されると書き込み許可を受けた後のステップに戻る。ステップＳ７６で動作保証電圧以上であると判定されると、不揮発性メモリ６への書き込みを中断し（ステップＳ７９）、中断したアドレスをバックアップＲＡＭ等に記憶して、書き込み許可を受けた後のステップに戻る。
上記ステップＳ７７におけるバックアップＲＡＭへのデータの待避は、図９に示すように、バックアップＲＡＭ７における学習値を記憶する領域７ａと異なるデータ待避領域７ｂにする。そして、矢印に示すように、不揮発性メモリ６とデータ待避領域７ｂとの間でデータの待避（矢印８ａ）と復旧（矢印８ｂ）を行う。
【００３４】
本第３の制御動作では、不揮発性メモリへの書き込み中に瞬低によりＮＭＩ割り込みが発生した場合に、書き込み中の不揮発性メモリ６のアドレスを記憶して書き込み動作を中断する。また、不揮発性メモリ６内のデータをＲＡＭまたはバックアップＲＡＭへ待避する。そして、瞬低発生時は、不揮発性メモリ６へ正常に書き込みが行われないことがあるので、瞬低が発生した場合には、ＲＡＭまたはバックアップＲＡＭのデータを不揮発性メモリ６へ書き込む。
これによって、不揮発性メモリへの書き込み中にＮＭＩ割り込み等が発生した場合に、異常判定及び異常値の書き込みを抑制し、不揮発性メモリ６内のデータをバックアップＲＡＭへ待避して、バックアップＲＡＭから不揮発性メモリ６に復旧させることができる。
なお、ステップＳ７７，Ｓ７８のバックアップＲＡＭへの待避と、ステップＳ７４のデータ待避実施済みかの判定は行わず、不揮発性メモリへの書き込み中にＮＭＩ割り込み等が発生した場合に、異常判定及び異常値の書き込みを抑制するようにしても良い。
【００３５】
［第４の制御動作］
図１０のフローチャートに示す第４の制御動作は、不揮発性メモリ６のデータを、予め不揮発性メモリ６内の別の記憶領域に複製しておくものである。本第４の制御動作は、上述した第１乃至第３の制御動作とは独立して行い、これらの制御動作のいずれか、あるいは複数と組み合わせることができる。
まず、エンジン回転センサ等によりエンジン回転が所定回転数以上で安定しているか否か判定し（ステップＳ８１）、安定している場合に不揮発性メモリ６のデータを、該不揮発性メモリ６の別の記憶領域（物理アドレス）に複製しておく（ステップＳ８２）。続いて、前回の書き込み中に電源電圧Ｖｂａが低下したか否かを判定する（ステップＳ８３）。前回、不揮発性メモリ６への書き込み中に電源電圧Ｖｂａの低下（６Ｖ未満、ＮＭＩ割り込み等）が発生し、その後、電源電圧Ｖｂａが復帰（判断基準を６Ｖ以上、または６Ｖ＋α等に設定）した場合は、不揮発性メモリ６内のデータが破損している可能性があるため、予め複製しておいたデータで復旧する。また、不揮発性メモリ６の消去中に電源電圧Ｖｂａの低下が起きた場合には、不揮発性メモリ６が内部異常（ブランク不良等）を起こしている可能性があるため、不揮発性メモリ６の初期化を行う。
【００３６】
次に、今回の書き込み時に電源電圧Ｖｂａが回復したか否かを判定し（ステップＳ８４）、電源電圧Ｖｂａが回復したと判定されると、不揮発性メモリ６の内容を複製したデータから復旧する。
ステップＳ８１でエンジン回転が所定回転数以上で安定していないと判定された場合、ステップＳ８３で前回の書き込み中に電源電圧Ｖｂａが低下していないと判定された場合、及びステップＳ８４で今回の書き込み時に電源電圧Ｖｂａが回復していないと判定された場合には、本第４の制御動作を終了する。
【００３７】
このように、電源電圧Ｖｂａの瞬低が起こり難い、エンジン回転数が安定しているときに、不揮発性メモリ６内のデータを、予め不揮発性メモリ６の別の記憶領域（物理アドレス）に複製しておくことで、不揮発性メモリ６への書き込み中に電源電圧Ｖｂａの低下が発生しても、複製したデータから復旧させることができる。
なお、データ複製時に、不揮発性メモリ６の複数の記憶領域へ書き込むことで、データを復旧できる可能性を高くできる。
【００３８】
［第５の制御動作］
図１１のフローチャートに示す第５の制御動作は、不揮発性メモリ６のデータを読み出し、予め設定した範囲内に値が収まっているかを確認するものである。本第５の制御動作も、上述した第１乃至第４の制御動作とは独立して行う。
まず、不揮発性メモリ６のデータを読み出し（ステップＳ９１）、予め設定した範囲内に値が収まっているかを判定する（ステップＳ９２）。この設定範囲は、予め設定範囲データとして記憶しておいても良いし、制御用のプログラム値に含まれていても良い。そして、不揮発性メモリ６から読み出したデータが予め設定した範囲外であれば、不揮発性メモリ６の記憶データが破損した可能性があるので、該当する不揮発性メモリ６の特定のデータ、または同一ブロック、または全てのデータを初期化し、新たに初期値を設定する（ステップＳ９３）。
本第５の制御動作は、不揮発性メモリ６の記憶データが破損した可能性がある場合に実施することで、不揮発性メモリ６の特定のデータ、ブロックあるいは全てのデータを復旧できる。
【００３９】
［第６の制御動作］
図１２のフローチャートに示す第６の制御動作は、複数のＥＣＵを備えたシステムであって、これらＥＣＵ間でデータの授受が行われる場合に、不揮発性メモリ６のデータを、当該ＥＣＵ１とは異なる別のＥＣＵに待避するものである。本第６の制御動作も、上述した第１乃至第５の制御動作とは独立して行う。
学習値を更新後（ステップＳ１０１）、この学習値をＥＣＵ１とは異なる別のＥＣＵが備えるＲＡＭ、バックアップＲＡＭあるいは不揮発性メモリ等に待避しておく（ステップＳ１０２）。学習値を待避する別のＥＣＵは、少なくともＥＣＵ１と同等か、より低い電源電圧Ｖｂａで動作するものが望ましい。
【００４０】
そして、ＥＣＵ１で学習値を不揮発性メモリ６に書き込み更新する（ステップＳ１０３）。この学習値の更新中あるいは消去中に、電源電圧Ｖｂａの低下が発生したか否か判定し（ステップＳ１０４）、発生した場合には、上記別のＥＣＵに待避した学習値を不揮発性メモリ６に書き込んでデータを復旧する。電源電圧Ｖｂａの低下が発生しない場合には終了し、次回の学習値の書き込み中の電源電圧Ｖｂａの低下に備える。
本第６の制御動作によれば、不揮発性メモリ６へ学習値の更新中、及び消去中に電源電圧Ｖｂａの低下によるＮＭＩ割り込み等が発生した場合に、他のＥＣＵへ待避していた学習値等を不揮発性メモリ６へ書き込んで復旧させることができる。
【００４１】
＜変形例５＞
図１３に示す制御動作は、図１２に示した第６の制御動作の変形例を示している。ステップＳ１０１〜Ｓ１０４は、図１２と同じであるので詳細な説明は省略する。
すなわち、ステップＳ１０４で学習値の更新中あるいは消去中に、電源電圧Ｖｂａの低下が発生したと判定された場合に、同一ブロック内で複数の範囲に異常があるか否か判定する（ステップＳ１０６）。複数の範囲に異常なしと判定された場合には、他のＥＣＵから不揮発性メモリ６の該当データを復旧する（ステップＳ１０７）。複数の範囲に異常ありと判定された場合には、異ブロック間で複数の範囲に異常があるか否かを判定する（ステップＳ１０８）。異ブロック間で複数の範囲に異常ありと判定されると、他のＥＣＵから不揮発性メモリ６の該当ブロックのデータを復旧する（ステップＳ１０９）。異ブロック間で複数の範囲に異常なしと判定されると、他のＥＣＵから不揮発性メモリ６の全記憶領域のデータを復旧する（ステップＳ１１０）。
本変形例５によれば、不揮発性メモリ６へのデータの復旧を、データの異常の状況に応じて、該当データ、該当ブロック、全記憶領域と切り換え、効率良く復旧することができる。
【００４２】
［第７の制御動作］
図１４のフローチャートに示す第７の制御動作は、複数のＥＣＵを備えたシステムであって、これらＥＣＵ間で通信等によりデータの授受が行われる場合に、不揮発性メモリ６のデータを、当該ＥＣＵ１とは異なる別のＥＣＵに待避し、不揮発性メモリ６の物理的な破損時、またはデータが所定範囲内にない時（データの破損）等において、他のＥＣＵから通信等を使用してデータを復旧するものである。本第７の制御動作も、上述した第１乃至第６の制御動作とは独立して行う。
【００４３】
すなわち、不揮発性メモリ６の全データを、ＥＣＵ１とは異なる別のＥＣＵが備えるＲＡＭ、バックアップＲＡＭあるいは不揮発性メモリ等に待避しておく（ステップＳ１１１）。
そして、不揮発性メモリ６が破損したか否か、あるいはデータが所定範囲内にあるか否かを判定する（ステップＳ１１２）。データが所定範囲内にあるか否かの判定には、例えば不揮発性メモリ６の記憶データのＳＵＭ値、ＩＮ／ＯＵＴ値等で確認を行う。不揮発性メモリ６が破損している場合、あるいはデータが破損している場合には、別のＥＣＵから通信等を使用して不揮発性メモリ６の全データを復旧する。破損していない場合には、本制御動作を終了する。
【００４４】
本第７の制御動作によれば、不揮発性メモリ６の物理的な破損時、または全データが所定範囲内にない（全データ破損）時等に、他のＥＣＵから通信等を使用してデータを復旧することができる。
なお、不揮発性メモリ６のデータを待避する際、複数の他のＥＣＵへ全データを待避しても良く、復帰させるデータは複数の待避先のデータの多数決で決めても良いし、優先順位（例えば動作保証電圧が低いＥＣＵほど、優先度が高い等）に従って決定しても良い。
また、データの待避先に不揮発性メモリを用いる場合には、別のＥＣＵに内蔵されている不揮発性メモリと、外付け不揮発性メモリのどちらも使用することができる。
【００４５】
［第８の制御動作］
図１５のフローチャートに示す第８の制御動作は、不揮発性メモリへの書き込み中に、瞬低（ＮＭＩ割り込み等）が発生した場合に、書き込み時の領域を記憶禁止にして、この記憶禁止にした領域に、再度不揮発性メモリへＲＡＭまたはバックアップＲＡＭ値を書き込むものである。本第８の制御動作も、上述した第１乃至第７の制御動作とは独立して行う。
まず、不揮発性メモリ６が書き込み中か否か判定し（ステップＳ１２１）、書き込み中であれば、電源電圧Ｖｂａを監視して瞬低（ＮＭＩ割り込み等）が発生したか否かを判定する（ステップＳ１２２）。瞬低が発生した場合は、書き込み中の不揮発性メモリ６の記憶領域（アドレス）を記憶する（ステップＳ１２３）。そして、次のステップＳ１２４で、該当アドレスにＲＡＭまたはバックアップＲＡＭから再書き込みを行う。
ステップＳ１２１で不揮発性メモリ６が書き込み中でないと判定された場合、ステップＳ１２２で瞬低が発生していないと判定されない場合には、制御動作を終了する。
本第８の制御動作によれば、瞬低発生時は、不揮発性メモリ６へ正常に書き込みが行われないことがあるので、不揮発性メモリ６へＲＡＭまたはバックアップＲＡＭのデータの再書き込みを行うことで、記憶したデータの信頼性を向上できる。
【００４６】
［第９の制御動作］
図１６のフローチャートに示す第９の制御動作は、不揮発性メモリ６の書き込み用カウンタ値に応じて、学習値の待避先を外付け不揮発性メモリと内蔵不揮発性メモリで切り換えるものである。外付け不揮発性メモリは、例えば複数のＥＣＵを備えたシステムにおいて、これらＥＣＵ間でデータの授受が行われる場合に、当該ＥＣＵ１とは異なる別のＥＣＵに外付けされているものを用いる。本第９の制御動作も、上述した第１乃至第８の制御動作とは独立して行う。
【００４７】
まず、不揮発性メモリ６の書き込み用カウンタ値が奇数か偶数かを判定し（ステップＳ１３１）、奇数の場合には外付け不揮発性メモリに学習値を待避し（ステップＳ１３２）、偶数の場合には内蔵不揮発性メモリ６に学習値を待避する（ステップＳ１３３）。次に、不揮発性メモリ６の書き込み用カウンタ値を更新する（ステップＳ１３４）。学習値を待避後に、書き込み用カウンタ値を更新することで、次回の書き込みを今回とは異なるメモリに書き込むように設定する。そして、不揮発性メモリ６の書き込みが正常か否かを判定する（ステップＳ１３５）。正常であれば制御動作を終了し、正常でなければ不揮発性メモリのデータを修復する（ステップＳ１３６）。
【００４８】
本第９の制御動作では、内蔵不揮発性メモリ６のデータが破損した場合は、外付け不揮発性メモリのデータを使用することで、不定値のデータを使用することがない。また、内蔵不揮発性メモリ６のデータが破損していた場合には、書き込みを行ったメモリとは別形式のデータから復旧するので、データ修復の可能性を高くすることができる。
なお、内蔵不揮発性メモリ６と外付け不揮発性メモリに同時に同じデータを書き込み、一方が壊れたときに、他方で救済するように構成しても良い。また、外付け不揮発性メモリと内蔵不揮発性メモリでは、外付け不揮発性メモリの方が信頼性が高いので、外付け不揮発性メモリを優先するように構成しても良い。
【００４９】
更に、外付け不揮発性メモリが、ＥＣＵ１とは異なる別のＥＣＵに外付けされているものを用いる場合について説明したが、コストよりも信頼性を優先する場合には、ＥＣＵ１に不揮発性メモリを外付けしても良い。
更にまた、カウンタ値が奇数の時に外付け不揮発性メモリに待避し、偶数の時に内蔵不揮発性メモリ６に待避するようにしたが、カウンタ値が偶数の時に外付け不揮発性メモリに待避し、奇数の時に内蔵不揮発性メモリ６に待避するようにしても良いのはもちろんである。
【００５０】
上述したように、ソフトウェアとバッテリ取り外し後の学習値復帰用データ（＝内蔵不揮発性メモリ）がＣＰＵ内に共存する構成において、内蔵の不揮発性メモリが不定値を取り得るような電源電圧の場合は、内蔵不揮発メモリへのアクセス（書き込み）を禁止する。また、例えばイグニッションキーのオフ時やエンジン停止時（ＨＥＶ車含む）に電源電圧を監視して、内蔵不揮発性メモリへの書き込みを制御している。
これによって、電源電圧が低下したときには、内蔵不揮発性メモリへの書き込み、及びブランクチェックを行わないため、異常判定及び異常値を書き込むことがなくなる。また、一度不定値を取り得るような状態になった場合には、電源電圧のレベルが安定してから、内蔵不揮発性メモリへの書き込みを行うことで、正常に書き込み処理が行える。
【００５１】
従って、本発明によれば、ＣＰＵに印加される電源電圧が所定値よりも低下した場合、及び所定値よりも低下することが予想される場合に、ＣＰＵによる不揮発性メモリへのアクセスを制限することで、異常判定及び異常値の書き込みを抑制でき、ＣＰＵによる処理を低減して負担を軽減できる。
自動車用電子制御装置にあっては、例えば空燃比の学習値のデータが不定値となったり破壊されたりすると、空燃比が適正な範囲から外れ、失火してエンストを招く惧れがあるので、安全性の見地から前述した制御動作が有効である。
【００５２】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）請求項１記載の自動車用電子制御装置において、前記電源電圧が所定値よりも低下した後、アクセス制限の解除電圧以上に回復した場合に、前記ＣＰＵから前記不揮発性メモリへのアクセス制限を解除する、自動車用電子制御装置。
上記構成によると、電源電圧が、内蔵の不揮発性メモリの記憶情報が不定値を取り得る状態になった場合に、電源電圧が解除電圧以上に回復してから、不揮発性メモリに対するアクセスを行うことで、正常な書き込み等の処理を行うことができる。
【００５３】
（ロ）請求項１記載の自動車用電子制御装置において、更にイグニッションキーがオンしてから所定時間経過するまでの時間、スタータがオンしたとき、エンジン回転が所定回転よりも低いとき、及び作動によって電源電圧の低下が予想される機器が稼働中の少なくともいずれかの場合に、前記ＣＰＵから前記不揮発性メモリへのアクセスを制限する、自動車用電子制御装置。
上記構成によると、電源電圧が低下する可能性がある場合に、前記ＣＰＵから前記不揮発性メモリへのアクセスを制限することができる。
【符号の説明】
【００５４】
１…ＥＣＵ（自動車用電子制御装置）、２…ＣＰＵ、３…入力回路、４…出力回路・出力監視回路、５…電源回路、６…不揮発性メモリ、Ｖｂａ…電源電圧
【図１】
2015060526.tif 000003
【図２】
2015060526.tif 000004
【図３】
2015060526.tif 000005
【図４】
2015060526.tif 000006
【図５】
2015060526.tif 000007
【図６】
2015060526.tif 000008
【図７】
2015060526.tif 000009
【図８】
2015060526.tif 000010
【図９】
2015060526.tif 000011
【図１０】
2015060526.tif 000012
【図１１】
2015060526.tif 000013
【図１２】
2015060526.tif 000014
【図１３】
2015060526.tif 000015
【図１４】
2015060526.tif 000016
【図１５】
2015060526.tif 000017
【図１６】
2015060526.tif 000018