(57)【特許請求の範囲】
【請求項１】
揮発性メモリを内蔵し、前記揮発性メモリが記憶する制御用データに基づき、車両制御を実行すると共に、この制御結果に従い、前記揮発性メモリが記憶する制御用データを更新する車両用の電子制御装置であって、
前記揮発性メモリにおいて発生した異常を検出する異常検出手段と、
前記異常検出手段によって検出された異常の履歴を、前記揮発性メモリにおける異常の発生領域を表す情報と関連付けて、前記揮発性メモリに記録する異常履歴記録手段と、
外部装置と通信可能な通信インタフェースと、
前記異常履歴記録手段によって前記揮発性メモリに記録された履歴に基づき、前記揮発性メモリについての異常履歴を表す送信信号を生成し、これを前記通信インタフェースを通じて外部装置に送信する異常履歴送信手段と、
を備え、前記揮発性メモリは、車載バッテリからの電源供給を常時受けて、所有データを常時記憶保持可能な構成にされていることを特徴とする電子制御装置。
【請求項２】
揮発性メモリを内蔵し、前記揮発性メモリが記憶する制御用データに基づき、車両制御を実行すると共に、この制御結果に従い、前記揮発性メモリが記憶する制御用データを更新する車両用の電子制御装置であって、
電気的にデータ書換可能な不揮発性メモリと、
前記揮発性メモリにおいて発生した異常を検出する異常検出手段と、
前記異常検出手段によって検出された異常の履歴を、前記揮発性メモリにおける異常の発生領域を表す情報と関連付けて、前記不揮発性メモリに記録する異常履歴記録手段と、
外部装置と通信可能な通信インタフェースと、
前記異常履歴記録手段によって前記不揮発性メモリに記録された履歴に基づき、前記揮発性メモリについての異常履歴を表す送信信号を生成し、これを前記通信インタフェースを通じて外部装置に送信する異常履歴送信手段と、
を備えることを特徴とする電子制御装置。
【請求項３】
前記異常履歴送信手段は、前記通信インタフェースを通じ、外部装置から異常履歴の送信要求信号を受信すると、前記異常履歴を表す送信信号を生成し、これを送信要求元の外部装置に送信する構成にされていることを特徴とする請求項１又は請求項２記載の電子制御装置。
【請求項４】
前記送信要求信号には、異常の発生領域を指定する情報が含まれ、
前記異常履歴送信手段は、前記通信インタフェースを通じ、外部装置から異常履歴の送信要求信号を受信すると、前記異常履歴記録手段により記録された履歴の内、前記受信した送信要求信号により指定された領域において発生した異常についての履歴を表す前記送信信号を生成し、これを送信要求元の外部装置に送信する構成にされていることを特徴とする請求項３記載の電子制御装置。
【請求項５】
前記通信インタフェースを通じ、外部装置から異常履歴のクリア要求信号を受信すると、前記異常履歴記録手段によって記録された履歴を、クリアする異常履歴クリア手段、
を備えることを特徴とする請求項１〜請求項４のいずれかに記載の電子制御装置。
【請求項６】
前記クリア要求信号には、異常の発生領域を指定する情報が含まれ、
前記異常履歴クリア手段は、前記通信インタフェースを通じ、外部装置から異常履歴のクリア要求信号を受信すると、前記異常履歴記録手段により記録された履歴の内、前記受信したクリア要求信号により指定された前記異常の発生領域を表す情報と関連付けられて前記異常履歴記録手段により記録された履歴を、クリアする構成にされていることを特徴とする請求項５記載の電子制御装置。
【請求項７】
前記異常履歴記録手段は、前記異常検出手段によって検出された異常の履歴として、前記異常の発生領域を表す情報に関連付けて、異常の発生回数を記録する構成にされていることを特徴とする請求項１〜請求項６のいずれかに記載の電子制御装置。
【請求項８】
前記異常検出手段は、複数種類の異常を検出可能な構成にされ、
前記異常履歴記録手段は、前記異常検出手段により異常が検出された各領域毎に、前記各種類の異常の発生回数を記録する構成にされていることを特徴とする請求項７記載の電子制御装置。
【請求項９】
前記異常履歴記録手段は、車両乗員の操作により車両制御が開始されてから車両制御が終了されるまでの期間に、前記異常検出手段によって検出された各異常に関し、異常の発生領域及び異常の種類毎に、１度のみ、異常の発生回数を１カウントアップして、各領域及び各種類の異常の発生回数を記録する構成にされていることを特徴とする請求項８記載の電子制御装置。
【請求項１０】
前記異常検出手段により異常が検出されると、前記検出された異常に対して所定のフェールセーフ処理を実行するフェールセーフ処理実行手段、
を備えることを特徴とする請求項１〜請求項９のいずれかに記載の電子制御装置。
【請求項１１】
前記フェールセーフ処理実行手段は、前記検出された異常の発生領域に応じ、実行するフェールセーフ処理の内容を切り替える構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項１２】
前記フェールセーフ処理実行手段は、前記検出された異常と同一領域で過去に発生した異常の発生回数に応じ、実行するフェールセーフ処理の内容を切り替える構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項１３】
前記フェールセーフ処理実行手段は、前記検出された異常の発生領域、及び、この領域で過去に発生した異常の発生回数に応じ、実行するフェールセーフ処理の内容を切り替える構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項１４】
前記制御用データには、データ化け検出用のデータとしてのチェックデータが含まれ、
前記異常検出手段は、前記異常として、前記チェックデータに基づき、前記揮発性メモリが記憶する各制御用データについてのデータ化けを検出可能な構成にされていることを特徴とする請求項１〜請求項１３のいずれかに記載の電子制御装置。
【請求項１５】
前記制御用データには、データ化け検出用のデータとしてのチェックデータが含まれ、
前記異常検出手段は、前記異常として、前記チェックデータに基づき、前記揮発性メモリが記憶する各制御用データについてのデータ化けを検出可能な構成にされ、
前記フェールセーフ処理実行手段は、前記データ化けに対するフェールセーフ処理として、前記データ化けが検出された制御用データを、データ化け発生前の制御用データに更新する処理を実行する構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項１６】
前記揮発性メモリが記憶する各制御用データは、種類毎にグループ化されており、
前記フェールセーフ処理実行手段は、前記データ化けに対するフェールセーフ処理として、前記データ化けが検出された制御用データを、データ化け発生前の制御用データに更新すると共に、前記データ化けが検出された制御用データと同一グループに属する各制御用データを、前記データ化け発生前の制御用データと対となる制御用データに更新する処理を実行する構成にされていることを特徴とする請求項１５記載の電子制御装置。
【請求項１７】
前記異常検出手段により異常が検出されていない領域に記憶された前記揮発性メモリ内の各制御用データを、前記不揮発性メモリにバックアップ保存するバックアップ手段と、
前記異常検出手段により異常が検出されると、前記検出された異常に対して所定のフェールセーフ処理を実行するフェールセーフ処理実行手段と、
を備え、
前記制御用データには、データ化け検出用のデータとしてのチェックデータが含まれ、
前記異常検出手段は、前記異常として、前記チェックデータに基づき、前記揮発性メモリが記憶する各制御用データについてのデータ化けを検出可能な構成にされ、
前記フェールセーフ処理実行手段は、前記データ化けに対するフェールセーフ処理として、前記異常検出手段によりデータ化けが検出された制御用データを、前記バックアップ手段により前記不揮発性メモリに記憶された異常検出前の制御用データに更新する処理を実行する構成にされていることを特徴とする請求項２記載の電子制御装置。
【請求項１８】
前記制御用データには、データ化け検出用のデータとしてのチェックデータが含まれ、
前記異常検出手段は、前記異常として、前記チェックデータに基づき、前記揮発性メモリが記憶する各制御用データについてのデータ化けを検出可能な構成にされ、車両制御の開始時に、各制御用データに対しデータ化けの検出動作を実行する構成にされ、
当該電子制御装置は、更に、
車両制御の開始時に前記異常検出手段によって実行された前記検出動作の結果に基づき、前記車載バッテリの脱着があったか否かを判断する脱着判断手段、
を備え、
前記異常履歴記録手段は、前記脱着判断手段により前記車載バッテリの脱着があったと判断されると、前記車両制御の開始時に前記異常検出手段により検出されたデータ化けについての異常の履歴を記録しないことを特徴とする請求項１記載の電子制御装置。
【請求項１９】
前記制御用データには、データ化け検出用のデータとしてのチェックデータが含まれ、
前記異常検出手段は、前記異常として、前記チェックデータに基づき、前記揮発性メモリが記憶する各制御用データについてのデータ化けを検出可能な構成にされ、車両制御の開始時に、各制御用データに対しデータ化けの検出動作を実行する構成にされ、
前記揮発性メモリは、車載バッテリからの電源供給を常時受けて、所有データを常時記憶保持可能な構成にされ、
当該電子制御装置は、更に、
車両制御の開始時に前記異常検出手段によって実行された前記検出動作の結果に基づき、前記車載バッテリの脱着があったか否かを判断する脱着判断手段、
を備え、
前記異常履歴記録手段は、前記脱着判断手段により前記車載バッテリの脱着があったと判断されると、前記車両制御の開始時に前記異常検出手段により検出されたデータ化けについての異常の履歴を記録しないことを特徴とする請求項２記載の電子制御装置。
【請求項２０】
前記異常検出手段は、前記揮発性メモリが記憶する制御用データの更新時に、このデータ更新に先立って、更新される制御用データに対しデータ化けの検出動作を実行することを特徴とする請求項１４〜請求項１９のいずれかに記載の電子制御装置。
【請求項２１】
前記異常検出手段は、前記揮発性メモリが記憶する制御用データの更新時に、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出可能な構成にされていることを特徴とする請求項１〜請求項２０のいずれかに記載の電子制御装置。
【請求項２２】
前記異常検出手段は、前記揮発性メモリが記憶する制御用データの更新時に、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出可能な構成にされ、
前記フェールセーフ処理実行手段は、前記書込異常に対するフェールセーフ処理として、前記書込異常が検出された制御用データの格納領域を、前記揮発性メモリ上の別領域に変更する処理を実行する構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項２３】
前記異常検出手段は、前記揮発性メモリが記憶する制御用データの更新時に、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出可能な構成にされ、
前記フェールセーフ処理実行手段は、前記書込異常に対するフェールセーフ処理として、前記書込異常が検出された制御用データの読出指令が発せられた際、前記書込異常が検出された制御用データの初期値を、前記読出指令に対する応答結果として出力する処理を実行する構成にされていることを特徴とする請求項１０記載の電子制御装置。
【請求項２４】
前記異常検出手段により異常が検出されていない領域に記憶された前記揮発性メモリ内の各制御用データを、前記不揮発性メモリにバックアップ保存するバックアップ手段と、
前記異常検出手段により異常が検出されると、前記検出された異常に対して所定のフェールセーフ処理を実行するフェールセーフ処理実行手段と、
を備え、
前記異常検出手段は、前記揮発性メモリが記憶する制御用データの更新時に、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出可能な構成にされ、
前記フェールセーフ処理実行手段は、前記書込異常に対するフェールセーフ処理として、前記書込異常が検出された制御用データの読出指令が発せられた際、前記バックアップ手段により前記不揮発性メモリに記憶された異常検出前の該当制御用データを、前記読出指令に対する応答結果として出力する処理を実行する構成にされていることを特徴とする請求項２記載の電子制御装置。
【請求項２５】
前記異常履歴記録手段により記録された履歴に基づき、車両乗員に対して異常を報知する必要があるか否かを判断する警告要否判断手段と、
前記警告要否判断手段にて報知が必要であると判断されると、車両内に設けられた警告装置を制御し、車両乗員に対して、異常を報知する警告装置制御手段と、
を備えることを特徴とする請求項１〜請求項２４のいずれかに記載の電子制御装置。
【請求項２６】
前記警告要否判断手段は、前記異常の発生領域毎に、異なる基準で、車両乗員に対して異常を報知する必要があるか否かを判断する構成にされていることを特徴とする請求項２５記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揮発性メモリが記憶する制御用データに基づき、車両制御を実行すると共に、制御結果に従って制御用データを更新する車両用の電子制御装置に関する。
【背景技術】
【０００２】
従来より、車両用の電子制御装置としては、車載バッテリにて常時電源供給がなされるバックアップＲＡＭに、制御用データを記憶保持し、この制御用データに基づき車両制御を実行すると共に、制御結果に基づき、バックアップＲＡＭが記憶する制御用データを更新する学習機能を備えた電子制御装置が知られている。また、この種の電子制御装置としては、バックアップＲＡＭの異常を検出し、異常が検出された場合には、警告ランプを点灯させて、異常を車両乗員に報知するものが知られている（例えば、特許文献１参照）。
【０００３】
また、メモリの異常を検出可能な電子制御装置としては、ＲＯＭに記憶されたデータの異常を検出し、異常が検出された場合には、フェールセーフ処理を実行すると共に、その異常に関するデータを記憶し、必要に応じて外部装置に出力するものが知られている（例えば、特許文献２，３参照）。
【特許文献１】特開平１１−１８４７６２号公報
【特許文献２】特開平１０−２９９５６５号公報
【特許文献３】特開平１１−０３９２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来装置では、制御用データを記憶する揮発性メモリの異常を検出した際、警告ランプを点灯させ、異常を車両乗員に報知する程度であるため、車両乗員やメンテナンス時の作業者等は、揮発性メモリの異常を詳細に知ることができず、異常解消のために、適切な処置を採ることができないといった問題があった。
【０００５】
特に、揮発性メモリにおいては、電源等の影響を受けるため、ＲＯＭよりも安定的にデータを記憶保持することができず、また制御用データを繰返し更新する場合には、更新時に偶発的な異常が発生しやすいため、揮発性メモリの異常を詳細に知ることができないと、異常が恒久的なものであるのかについてすら知ることができず、異常解消のために、適切な処置を採ることができないといった問題があった。
【０００６】
本発明は、こうした問題に鑑みなされたものであり、制御用データを記憶する揮発性メモリの異常に関して、詳細な情報を外部装置に提供可能な電子制御装置を提供することを第一の目的とする。また、揮発性メモリの異常に関する情報を外部装置に提供すると共に、特定の異常に関しては、内部的に解決可能な電子制御装置を提供することを第二の目的とする。
【課題を解決するための手段】
【０００７】
かかる目的を達成するためになされた本発明の車両用の電子制御装置は、揮発性メモリが記憶する制御用データに基づき、車両制御を実行すると共に、この制御結果に従い、制御用データを更新する。また、この電子制御装置は、異常検出手段により、揮発性メモリで発生した異常を検出し、異常履歴記録手段により、この異常検出手段で検出された異常の履歴を、異常の発生領域を表す情報と関連付け、記録する。
【０００８】
尚、揮発性メモリが、イグニッションスイッチのオン／オフ操作にかかわらず、車載バッテリからの電源供給を常時受け、所有データを常時記憶保持する構成にされている場合、異常履歴記録手段は、上記履歴を、揮発性メモリに記録することができる（請求項１）。また、電子制御装置が、電気的にデータ書換可能な不揮発性メモリを備える場合、異常履歴記録手段は、上記履歴を、不揮発性メモリに記録することができる（請求項２）。
【０００９】
また、この電子制御装置は、外部装置と通信可能な通信インタフェースを備え、異常履歴記録手段によって記録された履歴に基づき、異常履歴送信手段にて、揮発性メモリについての異常履歴を表す送信信号を生成し、これを通信インタフェースを通じて外部装置に送信する。
【００１０】
このように構成された電子制御装置（請求項１，２）によれば、イグニッションスイッチのオン／オフ操作にかかわらず、異常履歴を揮発性メモリ又は不揮発性メモリにて記憶することができ、異常履歴を長期に渡り蓄積し、これを外部装置に提供することができる。また、異常履歴の記録の際には、異常履歴を、発生領域を表す情報と関連付けて記録するため、外部装置には、発生領域を表す情報と共に異常の履歴を提供できる。
【００１１】
従来装置においては、揮発性メモリに係る異常の履歴を、長期に渡り、発生領域を表す情報と関連付けて記録し、これを外部装置に提供する機能がないため、本発明によれば、従来よりも、異常が恒久的なものであるのか等の異常の分析に役立つ詳細情報を外部装置に提供することができる。従って、この発明によれば、利用者は、外部装置を通じ、揮発性メモリの異常の詳細を把握することができ、異常解消のための適切な処理を採ることができる。尚、外部装置としては、無線通信ネットワークを通じて通信インタフェースと通信可能に接続される外部センタや、車内ＬＡＮを通じて通信インタフェースと通信可能に接続される車両用の故障診断装置（所謂ダイアグテスタ）等を挙げることができる。
【００１２】
また、異常履歴送信手段は、定期的に、異常履歴を表す送信信号を生成し、これを外部装置に送信する構成にされてもよいが、次のように構成されると一層好ましい。即ち、異常履歴送信手段は、通信インタフェースを通じ、外部装置から異常履歴の送信要求信号を受信すると、上記異常履歴を表す送信信号を生成し、これを送信要求元の外部装置に送信する構成にされるとよい。このように構成された電子制御装置（請求項３）によれば、外部装置からの要求に応じて効率的に異常履歴を外部装置に提供することができる。
【００１３】
また、異常履歴送信手段は、外部装置から送信要求信号を受信した場合、異常履歴記録手段により記録された全履歴を表す送信信号を生成し、これを外部装置に送信する構成にされてもよいが、次のように構成されると一層好ましい。
【００１４】
即ち、送信要求信号は、異常の発生領域を指定する情報を内包する構成にされ、異常履歴送信手段は、通信インタフェースを通じ、外部装置から異常履歴の送信要求信号を受信すると、異常履歴記録手段により記録された履歴の内、受信した送信要求信号により指定された領域において発生した異常についての履歴を表す送信信号を生成し、これを送信要求元の外部装置に送信する構成にされるとよい。
【００１５】
このように構成された電子制御装置（請求項４）によれば、外部装置からの要求に応じて、要求された情報を選択的に送信することができ、利用者は、外部装置を通じ、必要な情報のみを得て、効率的に異常原因を究明することができる。
【００１６】
また、異常の内容によっては、再現テストを行い、このテスト時に生成された異常履歴を解析したほうが、効率的に異常原因を究明できる場合もあるため、上記電子制御装置には、通信インタフェースを通じ、外部装置から異常履歴のクリア要求信号を受信すると、異常履歴記録手段によって記録された履歴をクリアする異常履歴クリア手段を設けるとよい。上記異常履歴クリア手段が設けられた電子制御装置（請求項５）によれば、外部装置を通じて、異常履歴記録手段にて記録された履歴をクリアすることができ、利用者は、外部装置を通じて、異常履歴記録手段に記録された履歴をクリアした後に再現テストを実行することで、異常原因の究明を効率的に行うことができる。
【００１７】
尚、異常履歴クリア手段は、クリア要求信号を受信すると、異常履歴記録手段によって記録された履歴を、全てクリアする構成にされてもよいが、次のように構成されると一層好ましい。即ち、クリア要求信号は、異常の発生領域を指定する情報を内包する構成にされ、異常履歴クリア手段は、通信インタフェースを通じ、外部装置から異常履歴のクリア要求信号を受信すると、異常履歴記録手段により記録された履歴の内、受信したクリア要求信号により指定された上記異常の発生領域を表す情報と関連付けられて異常履歴記録手段により記録された履歴を、クリアする構成にされるとよい。
【００１８】
このように構成された電子制御装置（請求項６）によれば、外部装置を通じ、クリア操作を詳細に行うことができ、利用者にとっては、クリアする必要のない履歴をクリアせずに済むため、便利である。尚、クリア要求信号を受信した場合に、異常履歴記録手段によって記録された履歴を、全てクリアする電子制御装置では、請求項６記載の電子制御装置と比較して、全履歴のクリアが簡単に行えるといった利点がある。
【００１９】
また、異常履歴記録手段は、異常検出手段によって検出された異常の履歴として、異常の発生領域を表す情報に関連付けて、異常の発生日時等を記録する構成にされてもよいが、好ましくは、異常検出手段によって検出された異常の履歴として、異常の発生領域を表す情報に関連付け、異常の発生回数を記録する構成にされるとよい。このように構成された電子制御装置（請求項７）によれば、外部装置側では、揮発性メモリ上の各領域の異常の発生頻度を簡単に知ることができ、各領域での異常が恒久的な異常か、偶発的な異常かを簡単に判断することができる。
【００２０】
また、上記電子制御装置において、異常検出手段は、複数種類の異常を検出可能な構成にされ、異常履歴記録手段は、異常検出手段により異常が検出された各領域毎に、各種類の異常の発生回数を記録する構成にされるとよい。このように構成された電子制御装置（請求項８）によれば、揮発性メモリ上の各領域毎に、複数種類の異常の発生回数を表す情報を外部装置に提供することができ、利用者は、この情報に基づき異常原因の究明を効率的に行うことができる。
【００２１】
また、異常履歴記録手段は、車両乗員の操作により車両制御が開始されてから車両制御が終了されるまでの期間に、異常検出手段によって検出された各異常に関し、異常の発生領域及び異常の種類毎に、１度のみ、異常の発生回数を１カウントアップして、各領域及び各種類の異常の発生回数を記録する構成にされると好ましい。
【００２２】
車両乗員のイグニッション操作により車両制御が開始されてから車両制御が終了されるまでの期間（１度の車両運転期間）に、１度のみ異常の発生回数を記録するように電子制御装置を構成すれば、異常履歴の記録動作に係る電子制御装置内の処理負荷を抑えることができる。また、１度の運転期間に、異常の発生回数を、検出回数分カウントアップしても、これらの情報は、車両の運転状態の詳細を利用者が把握していなければ、無意味な情報となる可能性が高いため、本発明（請求項９）によれば、効率的に、異常の発生回数を記録することができる。
【００２３】
また、上記の電子制御装置には、請求項１０記載のように、異常検出手段により異常が検出されると、検出された異常に対して所定のフェールセーフ処理を実行するフェールセーフ処理実行手段を設けるのが好ましい。また、このフェールセーフ処理実行手段は、検出された異常の発生領域に応じ、実行するフェールセーフ処理の内容を切り替える構成にされるとよい（請求項１１）。
【００２４】
異常が検出された領域にて記憶される制御用データの重要度にかかわらず、同一内容のフェールセーフ処理を実行すると、重要度の高い制御用データに対して適切なフェールセーフ処理を実行することができない可能性があるが、検出された異常の発生領域に応じ、実行するフェールセーフ処理の内容を切り替えるように電子制御装置を構成すれば、制御用データの重要度に応じて、適切なフェールセーフ処理を実行することができる。
【００２５】
例えば、書込異常が生じた領域が重要度の高い制御用データが格納される領域である場合には、揮発性メモリ上の別領域に、この制御用データの記憶領域を確保する内容のフェールセーフ処理を実行し、書込異常が生じた領域が重要度の低い制御用データが格納される領域である場合には、別領域に制御用データの記憶領域を確保せずに、この制御用データの初期値を、制御用データの読出時に、返値として出力する内容のフェールセーフ処理を実行するように、電子制御装置を構成すれば、重要度の高い制御用データの書込異常に対して、より適切なフェールセーフ処理を実行することができる。
【００２６】
また、フェールセーフ処理実行手段は、検出された異常と同一領域で過去に発生した異常の発生回数に応じ、実行するフェールセーフ処理の内容を切り替える構成にされてもよい。このようにフェールセーフ処理実行手段が構成された電子制御装置（請求項１２）によれば、異常が偶発的なものであるのか恒久的なものであるのかによって、フェールセーフ処理の内容を切り替えることができ、異常の性質に合わせて適切なフェールセーフ処理を実行することができる。
【００２７】
例えば、制御用データの書込異常が発生したとしても、異常の発生回数が閾値未満である場合には、別領域に制御用データの記憶領域を確保せずに、この制御用データの初期値を、制御用データの読出時に、返値として出力する内容のフェールセーフ処理を実行するようにし、異常の発生回数が閾値以上である場合には、書込異常が恒久的なものであるとして、揮発性メモリ上の別領域に、この制御用データの記憶領域を確保する内容のフェールセーフ処理を実行すれば、異常の性質に合わせ、適切に異常に対処することができる。
【００２８】
また、フェールセーフ処理実行手段は、検出された異常の発生領域、及び、この領域で過去に発生した異常の発生回数に応じ、実行するフェールセーフ処理の内容を切り替える構成にされてもよい。このように構成された電子制御装置（請求項１３）によれば、異常が偶発的なものであるか恒久的なものであるのかに応じて、又は、異常が発生した領域が重要な制御用データを記憶する領域であるか否かに応じて、フェールセーフ処理の内容を適切に切り替えることができ、各ケースにて、適切なフェールセーフ処理を実行することができる。
【００２９】
また、上記の電子制御装置においては、制御用データに、データ化け検出用のデータとしてのチェックデータを内包させるようにし、異常検出手段では、上記異常として、チェックデータに基づき、揮発性メモリが記憶する各制御用データについてのデータ化けを検出するとよい。このように構成された電子制御装置（請求項１４）によれば、各制御用データについてのデータ化けに関する異常履歴を記録して、外部装置に提供することができる。
【００３０】
その他、フェールセーフ処理実行手段は、データ化けに対するフェールセーフ処理として、データ化けが検出された制御用データを、データ化け発生前の制御用データに更新する処理を実行する構成にされるとよい。このように構成された電子制御装置（請求項１５）によれば、データ化けによる異常を、電子制御装置内部で解決することができ、車両の安全性を高めることができる。
【００３１】
また、電子制御装置では、複数の制御用データを用いて、車両制御を行う場合があり、複数の制御用データが正常な値の組合せとなっていないと、正常な車両制御を行うことができない場合もある。このため、揮発性メモリが記憶する各制御用データについては、制御用データの種類毎にグループ化し、フェールセーフ処理実行手段は、データ化けに対するフェールセーフ処理として、データ化けが検出された制御用データを、データ化け発生前の制御用データに更新すると共に、データ化けが検出された制御用データと同一グループに属する各制御用データを、上記データ化け発生前の制御用データと対となる制御用データに更新する処理を実行する構成にされるとよい。
【００３２】
このように構成された電子制御装置（請求項１６）によれば、車両制御に必要な一組の制御用データについて、そのいずれかにデータ化けが発生した際に、組内の制御用データを全て更新するので、組内の制御用データが不整合となって、不安定な車両制御が行われるのを防止することができる。
【００３３】
尚、上記データ化け発生前の制御用データとしては、製品出荷時に設定された制御用データを挙げることができるが、データ化けが発生した際に、対応する制御用データを、製品出荷時の値に戻してしまうと、制御用データについての学習の成果が失われることになる。
【００３４】
従って、不揮発性メモリを備える電子制御装置には、異常検出手段により異常が検出されていない領域に記憶された揮発性メモリ内の各制御用データを、不揮発性メモリにバックアップ保存するバックアップ手段を設け、フェールセーフ処理実行手段は、データ化けに対するフェールセーフ処理として、異常検出手段によりデータ化けが検出された制御用データを、バックアップ手段により不揮発性メモリに記憶された異常検出前の制御用データに更新する処理を実行する構成にされるとよい。
【００３５】
このように構成された電子制御装置（請求項１７）によれば、制御用データが化けた場合でも、制御用データを製品出荷時の値に戻さなくて済み、学習結果に基づいた適切な車両制御を実行することができる。
【００３６】
また、車載バッテリからの電源供給を常時受ける揮発性メモリを備えた電子制御装置においては、揮発性メモリに制御用データが保持されているため、車両制御開始時に、不揮発性メモリ等から制御用データを読み出し、これを揮発性メモリにセットしないのが普通である。よって、上記種類の揮発性メモリを備える電子制御装置においては、車載バッテリの脱着作業後に、異常検出手段が動作すると、異常検出手段にて、車載バッテリの脱着作業を原因とする制御用データの揮発が、データ化けとして検出されてしまう可能性がある。
【００３７】
このことから、上記種類の電子制御装置では、異常検出手段にて、車両制御の開始時に、各制御用データに対しデータ化けの検出動作を実行する共に、車両制御の開始時に異常検出手段によって実行された検出動作の結果に基づき、脱着判断手段にて、車載バッテリの脱着があったか否かを判断するとよい。また、この電子制御装置において、異常履歴記録手段は、脱着判断手段により車載バッテリの脱着があったと判断されると、車両制御の開始時に異常検出手段により検出されたデータ化けについての異常の履歴を記録しない構成にされるとよい。
【００３８】
このように構成された電子制御装置（請求項１８，１９）によれば、車載バッテリの脱着に起因する異常検出を無視することができ、この異常が外部通知されてしまうことによって、車両乗員や作業者等が、電子制御装置に異常があると錯誤してしまうのを防止することができる。
【００３９】
その他、異常検出手段は、揮発性メモリが記憶する制御用データが更新される際、このデータ更新に先立って、更新される制御用データに対しデータ化けの検出動作を実行する構成にされるとよい。このように異常検出手段が構成された電子制御装置（請求項２０）によれば、データ更新前の制御用データにデータ化けが生じている場合でも、データ更新によってデータ化け異常が解消される前に、この異常を漏らさず検出することができる。従って、この電子制御装置によれば、正確に、異常の履歴を記録することができる。
【００４０】
また、異常検出手段は、揮発性メモリが記憶する制御用データの更新時に、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出する構成にされてもよい。このように異常検出手段が構成された電子制御装置（請求項２１）によれば、各制御用データについて、書込異常に関する履歴を記録し、これを外部装置に提供することができる。
【００４１】
また、フェールセーフ処理実行手段は、上記書込異常に対するフェールセーフ処理として、書込異常が検出された制御用データの格納領域を、揮発性メモリ上の別領域に変更する処理を実行する構成にされるとよい。このように構成された電子制御装置（請求項２２）によれば、書込異常によって、以後、制御用データの更新ができなくなるのを防止することができ、学習結果に基づいた適切な車両制御を行うことができる。
【００４２】
その他、フェールセーフ処理実行手段は、上記書込異常に対するフェールセーフ処理として、書込異常が検出された制御用データの読出指令が発せられた際、この制御用データの初期値を、読出指令に対する応答結果として出力する処理を実行する構成にされてもよい。書込異常が発生した領域の制御用データについては、データ内容にも異常がある可能性が高いため、このフェールセーフ処理実行手段を備える電子制御装置（請求項２３）によれば、少なくとも、異常な制御用データに基づいた車両制御を行わなくて済み、車両の安全性を高めることができる。
【００４３】
尚、初期値としては、製品出荷時の値を挙げることができるが、書込異常後、対応する制御用データを、製品出荷時の値に戻してしまうと、制御用データについての学習の成果が失われることになる。
【００４４】
従って、バックアップ手段を備える電子制御装置においては、フェールセーフ処理実行手段を次のように構成するとよい。即ち、フェールセーフ処理実行手段は、書込異常に対するフェールセーフ処理として、書込異常が検出された制御用データの読出指令が発せられた際、バックアップ手段により不揮発性メモリに記憶された異常検出前の該当制御用データを、読出指令に対する応答結果として出力する処理を実行する構成にされるとよい。このように構成された電子制御装置（請求項２４）によれば、製品出荷時の値を用いる電子制御装置よりも、学習結果に基づいた適切な車両制御を実行することができる。
【００４５】
また、上記の電子制御装置には、異常履歴記録手段により記録された履歴に基づき、車両乗員に対して異常を報知する必要があるか否かを判断する警告要否判断手段と、警告要否判断手段にて報知が必要であると判断されると、車両内に設けられた警告装置を制御し、車両乗員に対して、異常を報知する警告装置制御手段と、を設けるのが好ましい。このように構成された電子制御装置（請求項２５）によれば、発生頻度の高い異常が発生した場合に、早期に車両乗員に対して異常を警告することができると共に、偶発的な異常については、これを報知せずに済み、車両乗員に不安を与えないようにすることができる。
【００４６】
また、揮発性メモリには、異常が発生すると車両の挙動に大きく影響を与える重要度の高い制御用データや、異常が発生しても車両の挙動には大きな影響を与えない重要度の低い制御用データ等の種々が記憶されるので、重要度の高い制御用データの記憶領域、及び、重要度の低い制御用データの記憶領域を夫々区別して、異常を報知する必要があるか否かを判断するとよい。即ち、警告要否判断手段は、異常の発生領域毎に、異なる基準で、車両乗員に対して異常を報知する必要があるか否かを判断する構成にされるとよい。このように構成された電子制御装置（請求項２６）によれば、重大な異常を、車両乗員に対し適切に報知することができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施例について、図面と共に説明する。
図１（ａ）は、電子制御装置１の構成を表すブロック図であり、図１（ｂ）は、電子制御装置１のＣＰＵ１１にて実現される一部機能を表す機能ブロック図である。本実施例の電子制御装置１は、車両に搭載された車両用電子制御装置であり、ＣＰＵ１１と、プログラム実行時に作業領域として使用される揮発性メモリとしてのＲＡＭ１３と、ＣＰＵ１１にて実行される各種プログラムを記憶するＲＯＭ１５と、電気的にデータ書換可能な不揮発性メモリとしてのＥＥＰＲＯＭ１７と、タイマ１９と、車両を駆動する各種アクチュエータ等の制御対象装置や車両の状態を検出する各種センサ等と電気的に接続された入出力装置（Ｉ／Ｏ）２１と、車内ＬＡＮを通じて車外装置と通信可能な通信インタフェース２３とを備える。
【００４８】
電子制御装置１としては、具体的に、エンジン制御用の電子制御装置を挙げることができ、電子制御装置１がエンジン制御用の電子制御装置である場合、制御対象装置としては、イグナイタやインジェクタ等を挙げることができる。
【００４９】
この電子制御装置１では、運転席に設けられたイグニッションスイッチ操作部を通じ、イグニッションスイッチＳＷがオンにされると、装置内部全体に、車載バッテリ２５から電源供給がなされ、装置内各部が始動する。
【００５０】
ＣＰＵ１１は、イグニッションスイッチＳＷがオンにされると、ＲＯＭ１５に記憶されたプログラムを実行し、学習制御部１１ａ及び書込読出制御部１１ｂとしての機能を実現する。具体的に、学習制御部１１ａは、ＲＡＭ１３に記憶された制御用データ（制御パラメータの値を示すデータ）に基づき、各種アクチュエータを制御し、車両制御を実行すると共に、センサの出力信号が示す制御結果に従い、書込読出制御部１１ｂを通じてＲＡＭ１３が記憶する制御用データを更新する。また、書込読出制御部１１ｂは、読出処理や書込処理を実行するものであり、学習制御部１１ａからの読出指令や書込指令を受けて、ＲＡＭ１３に制御用データを書き込んだり、ＲＡＭ１３から制御用データを読み出し、これを学習制御部１１ａに入力する。
【００５１】
また、ＲＡＭ１３は、車載バッテリ２５に直結され、イグニッションスイッチＳＷの状態にかかわらず、車載バッテリ２５からの電源供給を常時受ける領域を有する。即ち、ＲＡＭ１３の一部は、バックアップメモリ１３ａとして機能し、イグニッションスイッチＳＷのオン／オフにかかわらず、車載バッテリ２５からの電源供給を受けて、常時、所有データを記憶保持する構成にされている。このバックアップメモリ１３ａには、制御用データや、バックアップメモリ１３ａ内で発生した異常の履歴を示す異常履歴データ等が記録される。図２は、このバックアップメモリ１３ａのデータ構成を表す説明図である。
【００５２】
バックアップメモリ１３ａは、データ記憶領域Ｒ１と、代替データ記憶領域Ｒ２と、異常履歴記憶領域Ｒ３と、を備える。データ記憶領域Ｒ１は、制御用データを記憶する領域であり、このデータ記憶領域Ｒ１に記憶される各制御用データは、主データと、この主データのデータ化けを検出するためのチェックデータと、からなる。尚、チェックデータとしては、主データの全ビットの合計値を表すデータや、主データの全ビットが反転してなるミラーデータ等を挙げることができる。
【００５３】
また、データ記憶領域Ｒ１は、各制御用データに適合する固定バイトの領域毎に区画化されており、各制御用データは、書込読出制御部１１ｂの動作により、データ記憶領域Ｒ１内の同一区画に書き込まれる。また、各区画には、固有ＩＤが割り当てられ、本実施例の電子制御装置１は、この固有ＩＤを用いて、データの読み出しや書き込みを行う構成にされている（詳細後述）。
【００５４】
また、代替データ記憶領域Ｒ２は、データ記憶領域Ｒ１において異常が発生した場合に、異常が発生した区画に格納されていた制御用データを、代替記憶させるための領域である。この代替データ記憶領域Ｒ２は、データ記憶領域Ｒ１と同様に区画化されており、各区画には、データ記憶領域Ｒ１にて異常が発生した際、対応する制御用データが書き込まれる。また、各区画には、データ記憶領域Ｒ１と同様、固有ＩＤが割り当てられている。
【００５５】
その他、異常履歴記憶領域Ｒ３は、データ記憶領域Ｒ１及び代替データ記憶領域Ｒ２にて発生した異常の履歴を表す異常履歴データを記憶する領域である。異常履歴データは、異常発生箇所の固有ＩＤを表す履歴データ（以下、「異常発生箇所履歴データ」という。）と、ＲＡＭ化け（即ち、データ化け）異常の発生回数を表す履歴データ（以下、「ＲＡＭ化け異常発生回数履歴データ」という。）と、書込異常の発生回数を表す履歴データ（以下、「書込異常発生回数履歴データ」という。）と、電源不安定異常の発生回数を表す履歴データ（以下、「電源不安定異常発生回数履歴データ」という。）と、メモリセル異常の発生回数を表す履歴データ（以下、「メモリセル異常発生回数履歴データ」という。）と、からなる。また、各履歴データは、主データと、上述のチェックデータと、からなる。
【００５６】
また、異常履歴記憶領域Ｒ３は、各履歴データに適合する固定バイトの領域毎に区画化されており、各区画には、データ記憶領域Ｒ１と同様に、固有ＩＤが割り当てられている。そして、一組の履歴データからなる上記異常履歴データは、メモリアドレス方向に連続した複数（本実施例では５つ）の区画にまたがって、書込読出制御部１１ｂにより書き込まれる。
【００５７】
一方、ＲＯＭ１５は、上述した固有ＩＤとメモリアドレスとの対応関係を示す固有ＩＤ割当情報と、セクションテーブルと、重要度テーブルと、初期値テーブルとを有する。尚、図３は、ＲＯＭ１５のデータ構成を表す説明図である。
【００５８】
セクションテーブルは、各制御用データ及び履歴データの所属グループを定義するものであり、バックアップメモリ１３ａに割り当てられた各区画の固有ＩＤ毎に、所属グループを表すセクション番号が記述されたレコードを有する。具体的に、本実施例では、異常発生時に、同時に書き換えられる必要のあるデータに対して同一グループを割り当てるように、設計段階で、セクションテーブルを生成している。但し、本実施例では、代替データ記憶領域Ｒ２内の区画に対して割り当てたセッション番号とは異なるセッション番号を、データ領域Ｒ１及び異常履歴記憶領域Ｒ３の各区画に対し割り当てているものとする。
【００５９】
また、重要度テーブルは、各制御用データ及び履歴データの重要度を定義するものであり、バックアップメモリ１３ａに割り当てられた各区画の固有ＩＤ毎に、重要度を表す値が記述されたレコードを有する。その他、初期値テーブルは、各制御用データの初期値（製品出荷時の値）を示すものであり、各区画の固有ＩＤ毎に、初期値が記述されてなる。
【００６０】
また、ＥＥＰＲＯＭ１７は、図４に示すように、ＩＤ変更テーブルと、前回値テーブルと、異常履歴前回値テーブルと、車載バッテリ２５の脱着回数を表すデータと、を記憶するためのメモリとして用いられる。尚、図４は、ＥＥＰＲＯＭ１７のデータ構成を表す説明図である。
【００６１】
ＥＥＰＲＯＭ１７が記憶するＩＤ変更テーブルは、代替データ記憶領域Ｒ２に格納領域が変更された制御用データの格納領域についての変更前固有ＩＤと変更後固有ＩＤとの対応関係を示すテーブルである。ＩＤ変更テーブルの変更後固有ＩＤの各フィールドには、代替データ記憶領域Ｒ２の各区画に割り当てられた固有ＩＤが予め記述されており、変更前固有ＩＤのフィールドには、書込読出制御部１１ｂの動作により、順次、対応する固有ＩＤが書き込まれる。
【００６２】
また、前回値テーブルは、重要度が高い制御用データのバックアップ領域として機能する。具体的に、前回値テーブルは、重要度が基準値Ｄ１以上に設定されたバックアップ対象の制御用データ毎に、固有ＩＤと、バックアップ保存時の制御用データの値（前回値）と、からなるレコードを有する。
【００６３】
また、異常履歴前回値テーブルは、異常履歴記憶領域Ｒ３が記憶するデータのバックアップ領域として機能するものであり、この異常履歴前回値テーブルには、バワーダウン時に、書込読出制御部１１ｂの動作により、異常履歴記憶領域Ｒ３が記憶するデータが書き込まれる。
【００６４】
続いて、書込読出制御部１１ｂが実行する処理について説明する。図５は、イグニッションスイッチＳＷがオンにされた後、書込読出制御部１１ｂが最初に実行するパワーオン処理を表すフローチャートである。
【００６５】
パワーオン処理を開始すると、書込読出制御部１１ｂは、バックアップメモリ１３ａの各区画に割り当てられた固有ＩＤの全てに関し、各固有ＩＤ毎に、ＲＡＭ化け異常フラグ、書込異常フラグ、電源不安定異常フラグ、メモリセル異常フラグ、ＲＡＭ化け異常記録完了フラグ、書込異常記録完了フラグ、電源不安定異常記録完了フラグ、及び、メモリセル異常記録完了フラグを生成し、各フラグをオフに設定する（Ｓ１１０）。
【００６６】
そして、ＥＥＰＲＯＭ１７が記憶するＩＤ変更テーブルをＲＡＭ１３にコピーし（Ｓ１２０）、この後、データ記憶領域Ｒ１及び異常履歴記憶領域Ｒ３の各区画に割り当てられた固有ＩＤについて、各固有ＩＤ毎に、これを引数に設定したバックアップメモリ読出処理（図６参照）を実行する（Ｓ１３０）。尚、詳細は後述するが、このバックアップメモリ読出処理では、バックアップメモリ１３ａから、引数に設定された固有ＩＤに対応するデータ（制御用データ又は履歴データ）を読み出すと共に、読み出し時にＲＡＭ化け（データ化け）異常がないかどうかを検査し、ＲＡＭ化け異常がある場合には、この固有ＩＤに対応するＲＡＭ化け異常フラグをオンにする動作を行う。
【００６７】
そして、該当する全固有ＩＤについて、バックアップメモリ読出処理を実行すると、Ｓ１４０に移行して、オンとなったＲＡＭ化け異常フラグが所定数以上であるか否かを判断し、オンとなったＲＡＭ化け異常フラグが所定数未満であると判断すると（Ｓ１４０でＮｏ）、当該パワーオン処理を終了する。
【００６８】
一方、オンとなったＲＡＭ化け異常フラグが所定数以上であると判断すると（Ｓ１４０でＹｅｓ）、書込読出制御部１１ｂは、車載バッテリ２５が脱着されたと判断し、バッテリ脱着回数を１増加させるように、ＥＥＰＲＯＭ１７が記憶するバッテリ脱着回数を表すデータを更新する（Ｓ１５０）。
【００６９】
また、この処理を終えると、書込読出制御部１１ｂは、ＥＥＰＲＯＭ１７が記憶する異常履歴前回値テーブルを、バックアップメモリ１３ａの異常履歴記憶領域Ｒ３にコピーし（Ｓ１６０）、全固有ＩＤについての各フラグを全てオフに設定する（Ｓ１７０）。その後、当該パワーオン処理を終了する。
【００７０】
続いて、書込読出制御部１１ｂが実行するバックアップメモリ読出処理について説明する。図６は、書込読出制御部１１ｂが実行するバックアップメモリ読出処理を表すフローチャートである。このバックアップメモリ読出処理は、書込読出制御部１１ｂ内部で必要に応じて実行されると共に、パワーオン処理実行後、学習制御部１１ａからのバックアップメモリ１３ａに対する読出指令を受けて実行される。
【００７１】
バックアップメモリ読出処理を開始すると、書込読出制御部１１ｂは、まず、当該バックアップメモリ読出処理実行時に、引数に設定された固有ＩＤ（以下、「引数ＩＤ」という。）を用いて、図７に示す処理ＩＤ設定処理を実行する（Ｓ２１０）。図７は、書込読出制御部１１ｂが実行する処理ＩＤ設定処理を表すフローチャートである。
【００７２】
処理ＩＤ設定処理を開始すると、書込読出制御部１１ｂは、引数ＩＤがＲＡＭ１３のＩＤ変更テーブルにおいて変更前固有ＩＤとして登録されている種類の固有ＩＤであるか否かを判断し（Ｓ３１０）、変更前固有ＩＤとして登録されている種類の固有ＩＤであると判断すると（Ｓ３１０でＹｅｓ）、この引数ＩＤに対応する変更後固有ＩＤを、処理ＩＤに設定し（Ｓ３２０）、その後、当該処理ＩＤ設定処理を終了する。一方、引数ＩＤがＩＤ変更テーブルにおいて変更前固有ＩＤとして登録されている種類の固有ＩＤではないと判断すると（Ｓ３１０でＮｏ）、この引数ＩＤを処理ＩＤに設定し（Ｓ３３０）、当該処理ＩＤ設定処理を終了する。
【００７３】
また、このようにしてＳ２１０での処理ＩＤ設定処理を終了すると、書込読出制御部１１ｂは、設定された処理ＩＤに対応するバックアップメモリ１３ａの区画から、この区画に記憶されたデータ（制御用データ又は履歴データ）を読み出し（Ｓ２２０）、読み出したデータの主データとチェックデータとの整合性を確認することにより、読み出したデータがデータ化けしていないかどうかを検査する（Ｓ２３０）。例えば、チェックデータが、主データの全ビットの合計値を示すデータである場合、書込読出制御部１１ｂは、チェックサム方式により、チェックデータと対となっている主データの全ビットの合計値を算出し、この値が、チェックデータが示す値と一致するかを確認する。
【００７４】
そして、主データとチェックデータとの整合がとれている（主データの全ビットの合計値がチェックデータが示す値と一致する）場合には（Ｓ２４０でＹｅｓ）、Ｓ２７０に移行し、整合がとれていない（主データの全ビットの合計値がチェックデータが示す値と一致しない）場合には（Ｓ２４０でＮｏ）、ＲＡＭ化け異常が発生していると判断し、Ｓ２５０に移行する。
【００７５】
また、Ｓ２５０に移行すると、書込読出制御部１１ｂは、処理ＩＤのＲＡＭ化け異常フラグがオンになっているか否かを判断し、オンになっていないと判断すると（Ｓ２５０でＮｏ）、処理ＩＤのＲＡＭ化け異常フラグをオンに設定し（Ｓ２５５）、その後、Ｓ２６０に移行する。一方、ＲＡＭ化け異常フラグがオンになっていると判断すると（Ｓ２５０でＹｅｓ）、書込読出制御部１１ｂは、Ｓ２５５の処理を実行せずに、Ｓ２６０に移行する。
【００７６】
また、Ｓ２６０に移行すると、書込読出制御部１１ｂは、図８に示すＲＡＭ化け異常フェールセーフ（Ｆ／Ｓ）処理を実行する。図８は、書込読出制御部１１ｂが実行するＲＡＭ化け異常フェールセーフ処理を表すフローチャートである。
【００７７】
ＲＡＭ化け異常フェールセーフ処理を開始すると、書込読出制御部１１ｂは、まず、処理ＩＤがＳ３２０の処理を経て設定された固有ＩＤ（変更後固有ＩＤ、即ち、代替データ記憶領域Ｒ２の区画に割り当てられた固有ＩＤ）であるか否かを判断し（Ｓ４１０）、処理ＩＤがＳ３２０の処理を経て設定された固有ＩＤであると判断すると（Ｓ４１０でＹｅｓ）、この処理ＩＤの変更前固有ＩＤに設定されたセクション番号を、ＲＯＭ１５が記憶するセクションテーブルから読み出し、これを照合番号に設定する（Ｓ４２０）。その後、Ｓ４４０に移行する。
【００７８】
一方、書込読出制御部１１ｂは、処理ＩＤがＳ３２０の処理を経て設定された固有ＩＤではないと判断すると（Ｓ４１０でＮｏ）、この処理ＩＤに設定されたセクション番号を、セクションテーブルから読み出し、これを照合番号に設定する（Ｓ４３０）、その後、Ｓ４４０に移行する。
【００７９】
また、Ｓ４４０に移行すると、書込読出制御部１１ｂは、Ｓ４５０以降の処理について未処理のレコードを、セクションテーブル内において一つ選択し、選択したレコードが示すセクション番号が照合番号に一致するか否かを判断する（Ｓ４５０）。そして、このセクション番号が照合番号に一致しないと判断すると（Ｓ４５０でＮｏ）、Ｓ４５５〜Ｓ４８０の処理を実行せずに、Ｓ４９０に移行する。
【００８０】
一方、選択したレコードが示すセクション番号が照合番号に一致すると判断すると（Ｓ４５０でＹｅｓ）、書込読出制御部１１ｂは、上記選択したレコードにおいてセクション番号と対応付けられた固有ＩＤを、初期値取得先ＩＤに設定し（Ｓ４５５）、この初期値取得先ＩＤを用いて、図９に示す初期値取得処理を実行する（Ｓ４６０）。図９は、書込読出制御部１１ｂが実行する初期値取得処理を表すフローチャートである。
【００８１】
初期値取得処理を開始すると、書込読出制御部１１ｂは、Ｓ５１０にて、初期値取得先ＩＤが異常履歴記憶領域Ｒ３の区画に割り当てられた固有ＩＤであるか否かを判断し、初期値取得先ＩＤが異常履歴記憶領域Ｒ３の区画に割り当てられた固有ＩＤであると判断すると（Ｓ５１０でＹｅｓ）、異常履歴前回値テーブルから、初期値取得先ＩＤに対応する履歴データの前回値を読み出し（Ｓ５２０）、その後、当該初期値取得処理を終了する。
【００８２】
一方、書込読出制御部１１ｂは、初期値取得先ＩＤが異常履歴記憶領域Ｒ３の区画に割り当てられた固有ＩＤではなく、データ記憶領域Ｒ１又は代替データ記憶領域Ｒ２の区画に割り当てられた固有ＩＤであると判断すると（Ｓ５１０でＮｏ）、重要度テーブルに基づき、初期値取得先ＩＤに設定された重要度を識別し（Ｓ５３０）、この処理を終えると、Ｓ５４０にて、識別した重要度が基準値Ｄ１以上であるか否かを判断する。尚、本実施例の電子制御装置１は、重要度が基準値Ｄ１以上の制御用データを、前回値テーブルにバックアップ保存する構成にされており、Ｓ５４０では、この基準値Ｄ１が用いられる。
【００８３】
Ｓ５４０にて、上記識別した重要度が、基準値Ｄ１以上であると判断すると（Ｓ５４０でＹｅｓ）、書込読出制御部１１ｂは、前回値テーブルから、初期値取得先ＩＤに対応する制御用データの前回値を読み出し（Ｓ５５０）、その後、当該初期値取得処理を終了する。その他、Ｓ５４０にて、上記識別した重要度が、基準値Ｄ１未満であると判断すると（Ｓ５４０でＮｏ）、書込読出制御部１１ｂは、初期値テーブルから、初期値取得先ＩＤに対応する制御用データの初期値を読み出し（Ｓ５６０）、その後、当該初期値取得処理を終了する。
【００８４】
また、このようにしてＳ４６０での初期値取得処理を終えると、書込読出制御部１１ｂは、Ｓ４７０に移行し、上記選択したレコードにおいてセクション番号と対応付けられた固有ＩＤを、書込先ＩＤに設定する共に、初期値取得処理にて読み出したデータを、書込対象データに設定する。但し、上記選択したレコードにおいてセクション番号と対応付けられた固有ＩＤが、ＲＡＭ１３のＩＤ変更テーブルにおいて変更前固有ＩＤとして登録されたものである場合には、Ｓ４７０において、この固有ＩＤに対応する変更後固有ＩＤを、書込先ＩＤに設定する。
【００８５】
また、このようにしてＳ４７０での処理を終えると、書込読出制御部１１ｂは、この書込先ＩＤ及び書込対象データを用いて、図１０に示す異常判定付き書込処理を実行する（Ｓ４８０）。尚、図１０は、書込読出制御部１１ｂが実行する異常判定付き書込処理を表すフローチャートである。
【００８６】
異常判定付き書込処理を開始すると、書込読出制御部１１ｂは、書込対象データを、書込先ＩＤに対応するバックアップメモリ１３ａ内の区画に書き込む（Ｓ６１０）。また、この処理を終えると、Ｓ６２０に移行して、書込先ＩＤに対応する区画から、この区画に書き込まれたデータを読み出し、読み出したデータと書込対象データとの整合性を確認する（Ｓ６３０）。即ち、読み出したデータと書込対象データとが一致するか否かを判断する。そして、読み出したデータと書込対象データとの整合がとれている（読み出したデータと書込対象データとが一致する）場合には（Ｓ６４０でＹｅｓ）、返値として、書込に「成功」したことを示す値を出力する（Ｓ６５０）。その後、当該異常判定付き書込処理を終了する。
【００８７】
一方、読み出したデータと書込対象データとの整合がとれていない（読み出したデータと書込対象データとが一致しない）場合には（Ｓ６４０でＮｏ）、書込異常が発生したと判断して、Ｓ６６０に移行し、書込先ＩＤの書込異常フラグがオンに設定されているか否かを判断する。そして、書込先ＩＤの書込異常フラグがオンに設定されていないと判断すると（Ｓ６６０でＮｏ）、書込先ＩＤの書込異常フラグをオンに設定した後（Ｓ６７０）、Ｓ６８０に移行し、返値として、書込に「失敗」したことを示す値を出力する。その後、当該異常判定付き書込処理を終了する。
【００８８】
その他、書込先ＩＤの書込異常フラグがオンにされていると判断すると（Ｓ６６０でＹｅｓ）、書込読出制御部１１ｂは、Ｓ６７０の処理を実行せずに、Ｓ６８０に移行し、返値として、書込に「失敗」したことを示す値を出力した後、当該異常判定付き書込処理を終了する。
【００８９】
また、このようにしてＳ４８０での異常判定付き書込処理を終了すると、書込読出制御部１１ｂは、Ｓ４９０に移行して、セクションテーブル内の全レコードについて、Ｓ４５０以降の処理を実行したか否かを判断し、全レコードについて、Ｓ４５０以降の処理を実行していないと判断すると（Ｓ４９０でＮｏ）、Ｓ４４０に移行する。一方、書込読出制御部１１ｂは、全レコードについて、Ｓ４５０以降の処理を実行したと判断すると（Ｓ４９０でＹｅｓ）、当該ＲＡＭ化け異常フェールセーフ処理を終了する。
【００９０】
また、書込読出制御部１１ｂは、このようにしてＳ２６０でのＲＡＭ化け異常フェールセール処理を終了すると、Ｓ２８０に移行する。
その他、Ｓ２８０に移行すると、書込読出制御部１１ｂは、当該バックアップメモリ読出処理実行時に引数に設定された固有ＩＤ（引数ＩＤ）を、初期値取得先ＩＤに設定し、この初期値取得先ＩＤを用いて、上述した図９に示す初期値取得処理を実行する（Ｓ２８５）。また、この処理を終えると、書込読出制御部１１ｂは、Ｓ２８５での初期値取得処理にて読み出したデータを、返値として、当該バックアップメモリ読出処理の実行指令元に出力し（Ｓ２９０）、その後、当該バックアップメモリ読出処理を終了する。
【００９１】
また、書込読出制御部１１ｂは、バックアップメモリ読出処理において、Ｓ２７０に移行すると、処理ＩＤの書込異常フラグがオフに設定されているか否かを判断し、処理ＩＤの書込異常フラグがオフに設定されていると判断すると（Ｓ２７０でＹｅｓ）、返値として、Ｓ２２０にて読み出した処理ＩＤに対応するデータを出力する（Ｓ２９５）。その後、当該バックアップメモリ読出処理を終了する。
【００９２】
この他、書込読出制御部１１ｂは、Ｓ２７０において、処理ＩＤの書込異常フラグがオンに設定されていると判断すると（Ｓ２７０でＮｏ）、上述したＳ２８０〜Ｓ２９０の処理を実行した後、当該バックアップメモリ読出処理を終了する。
【００９３】
続いて、書込読出制御部１１ｂが実行するバックアップメモリ書込処理について説明する。図１１は、書込読出制御部１１ｂが実行するバックアップメモリ書込処理を表すフローチャートである。このバックアップメモリ書込処理は、書込読出制御部１１ｂ内部で必要に応じて実行されると共に、パワーオン処理実行後、学習制御部１１ａからのバックアップメモリ１３ａに対する書込指令を受けて実行される。
【００９４】
バックアップメモリ書込処理を開始すると、書込読出制御部１１ｂは、まず、このバックアップメモリ書込処理実行時に引数に設定された固有ＩＤ（引数ＩＤ）を用いて、図７に示す処理ＩＤ設定処理を実行する（Ｓ７１０）と共に、このバックアップメモリ書込処理実行時に引数に設定された上記固有ＩＤ（引数ＩＤ）と同一の固有ＩＤを引数に設定してバックアップメモリ読出処理（図６参照）を実行する（Ｓ７２０）。尚、Ｓ７２０では、処理ＩＤに対応する区画でのデータ化けを検出する目的で、バックアップメモリ読出処理を実行する。
【００９５】
また、この処理を終えると、書込読出制御部１１ｂは、Ｓ７２５に移行し、Ｓ７１０で設定された処理ＩＤを書込先ＩＤに設定すると共に、当該バックアップメモリ書込処理実行時に引数に設定された指定データを、書込対象データに設定し、この書込先ＩＤ及び書込対象データを用いて、図１０に示す異常判定付き書込処理を実行する（Ｓ７３０）。
【００９６】
そして、Ｓ７３０での異常判定付き書込処理を終了すると、返値に基づき、書込対象データのバックアップメモリ１３ａへの書込に成功したか否かを判断し（Ｓ７４０）、書込に成功したと判断すると（Ｓ７４０でＹｅｓ）、処理ＩＤがＳ７１０での処理ＩＤ設定処理においてＳ３２０の処理を経て設定された固有ＩＤ（変更後固有ＩＤ）であるか否かを判断する（Ｓ７５０）。
【００９７】
そして、処理ＩＤがＳ３２０の処理を経て設定された固有ＩＤであると判断すると（Ｓ７５０でＹｅｓ）、Ｓ７６０に移行し、処理ＩＤがＳ３３０の処理を経て設定された固有ＩＤであると判断すると（Ｓ７５０でＮｏ）、Ｓ７７０に移行する。
【００９８】
また、Ｓ７６０に移行すると、書込読出制御部１１ｂは、この処理ＩＤに対応する変更前固有ＩＤのメモリセル異常フラグがオンに設定されているか否かを判断し、変更前固有ＩＤのメモリセル異常フラグがオフに設定されていると判断すると（Ｓ７６０でＮｏ）、この変更前固有ＩＤのメモリセル異常フラグをオンに設定し（Ｓ７６５）、その後、Ｓ７７０に移行する。一方、処理ＩＤに対応する変更前固有ＩＤのメモリセル異常フラグがオンに設定されていると判断すると（Ｓ７６０でＹｅｓ）、Ｓ７６５の処理を実行することなく、Ｓ７７０に移行する。
【００９９】
また、Ｓ７７０に移行すると、書込読出制御部１１ｂは、返値として、書込に「成功」したことを示す値を、当該バックアップメモリ書込処理の実行指令元に出力する。その後、当該バックアップメモリ書込処理を終了する。
【０１００】
これに対し、Ｓ７３０での異常判定付き書込処理で出力された返値に基づき、書込対象データのバックアップメモリ１３ａへの書込に失敗したと判断すると（Ｓ７４０でＮｏ）、書込読出制御部１１ｂは、Ｓ７８０に移行して、処理ＩＤがＳ７１０での処理ＩＤ設定処理においてＳ３２０の処理を経て設定された固有ＩＤ（変更後固有ＩＤ）であるか否かを判断する。
【０１０１】
そして、処理ＩＤがＳ３２０の処理を経て設定された固有ＩＤであると判断すると（Ｓ７８０でＹｅｓ）、Ｓ７８５の処理を実行することなく、Ｓ７９０に移行し、処理ＩＤがＳ３３０の処理を経て設定された固有ＩＤであると判断すると（Ｓ７８０でＮｏ）、Ｓ７８５に移行して、図１２に示すＩＤ変更処理を実行する。そして、このＩＤ変更処理を終了すると、Ｓ７９０に移行する。
【０１０２】
また、Ｓ７９０に移行すると、書込読出制御部１１ｂは、返値として、書込に「失敗」したことを示す値を、当該バックアップメモリ書込処理の実行指令元に出力する。その後、当該バックアップメモリ書込処理を終了する。尚、このバックアップメモリ書込処理の返値として「失敗」したことを示す値を得た実行指令元（学習制御部１１ａ等）は、例えば、書込に成功するまで所定回数、同様のバックアップメモリ書込処理の実行を試みるといった対応を採る。また、Ｓ７９０での処理を終えると、書込読出制御部１１ｂは、当該バックアップメモリ書込処理を終了する。
【０１０３】
続いて、Ｓ７８５で実行されるＩＤ変更処理について説明する。図１２は、書込読出制御部１１ｂが、Ｓ７８５で実行するＩＤ変更処理を表すフローチャートである。
ＩＤ変更処理を開始すると、書込読出制御部１１ｂは、Ｓ７１０で設定された処理ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されているか否かを判断し（Ｓ８１０）、この処理ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されていないと判断すると（Ｓ８１０でＮｏ）、当該ＩＤ変更処理を終了する。
【０１０４】
一方、Ｓ７１０で設定された処理ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されていると判断すると（Ｓ８１０でＹｅｓ）、この処理ＩＤを値に持つ異常発生箇所履歴データが格納された区画の固有ＩＤに基づき、この異常発生箇所履歴データと組となっている書込異常発生回数履歴データが格納された区画の固有ＩＤを割り出し（Ｓ８２０）、割り出した固有ＩＤを引数ＩＤに設定して、バックアップメモリ読出処理を実行することにより、上記書込異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ８３０）。
【０１０５】
また、この処理を終えると、書込読出制御部１１ｂは、重要度テーブルに基づいて処理ＩＤに設定された重要度を識別し（Ｓ８４０）、処理ＩＤに設定された重要度が、所定の基準値Ｄ２以上であるか否かを判断する（Ｓ８５０）。尚、基準値Ｄ２は、代替データ記憶領域Ｒ２を使用する権限のあるデータを判別するために用いられるものである。
【０１０６】
そして、書込読出制御部１１ｂは、上記重要度が基準値Ｄ２以上であると判断すると（Ｓ８５０でＹｅｓ）、Ｓ８６０に移行し、上記処理ＩＤに設定された重要度が基準値Ｄ２未満であると判断すると（Ｓ８５０でＮｏ）、当該ＩＤ変更処理を終了する。
【０１０７】
また、Ｓ８６０に移行すると、書込読出制御部１１ｂは、ＲＯＭ１５に記憶された第一閾値設定テーブルに基づき、処理ＩＤに設定された重要度に応じて異なる閾値Ｖ１を設定する。尚、図１２に示すように、第一閾値設定テーブルは、重要度が所定の基準値Ｄ３（Ｄ３＞Ｄ２）以上である場合に閾値Ｖ１として設定すべき値Ｖ１［１］と、重要度が基準値Ｄ３未満である場合に閾値Ｖ１として設定すべき値Ｖ１［２］と、が記述されてなる。
【０１０８】
この他、Ｓ８６０での処理を終えると、書込読出制御部１１ｂは、Ｓ８３０で読み出した書込異常発生回数履歴データが示す書込異常の発生回数が閾値Ｖ１以上であるか否かを判断し（Ｓ８７０）、書込異常の発生回数が閾値Ｖ１以上であると判断すると（Ｓ８７０でＹｅｓ）、ＲＡＭ１３のＩＤ変更テーブルから、変更前固有ＩＤのフィールドについて、空（未使用）のフィールドを検索し（Ｓ８８０）、検索の結果発見された未使用のフィールドに、処理ＩＤを書き込むことで、この処理ＩＤに、変更後固有ＩＤを割り当てる（Ｓ８９０）。即ち、この処理ＩＤの区画を格納場所とするデータに対し、新たな格納領域として、代替データ記憶領域Ｒ２内の区画を割り当てる。また、この処理を終えると、書込読出制御部１１ｂは、当該ＩＤ変更処理を終了する。
【０１０９】
一方、Ｓ８３０で読み出した書込異常発生回数履歴データが示す書込異常の発生回数が閾値Ｖ１未満であると判断すると（Ｓ８７０でＮｏ）、書込読出制御部１１ｂは、Ｓ８８０〜Ｓ８９０の処理を実行することなく、当該ＩＤ変更処理を終了する。
【０１１０】
尚、本実施例においては、異常履歴記憶領域Ｒ３の各区画に対し、重要度を最低に設定しており、処理ＩＤがこれらの区画の固有ＩＤである場合、Ｓ８５０では常にＮｏと判断される。
【０１１１】
続いて、書込読出制御部１１ｂが、タイマ１９のカウント値に基づき、車両制御の実行期間（車両運転期間）中に、定期的に実行する処理について説明する。図１３は、書込読出制御部１１ｂが、異常履歴の記録のために定期的に実行する異常履歴記録処理を表すフローチャートである。尚、本実施例では、ＲＡＭ化け異常の発生回数を記録するための異常履歴記録処理、書込異常の発生回数を記録するための異常履歴記録処理、及び、メモリセル異常の発生回数を記録するための異常履歴記録処理の計３種類の異常履歴記録処理が存在する。そして、書込読出制御部１１ｂは、これら各異常履歴記録処理を、図１３に示す手順に従って、夫々定期的に実行する。
【０１１２】
以下には、これらの各異常履歴記録処理をまとめて説明するが、この説明において用いる「異常フラグ」との表現は、ＲＡＭ化け異常の発生回数を記録するための異常履歴記録処理の場合、ＲＡＭ化け異常フラグのことを示し、書込異常の発生回数を記録するための異常履歴記録処理の場合、書込異常フラグのことを示し、メモリセル異常の発生回数を記録するための異常履歴記録処理の場合、メモリセル異常フラグのことを示すものとする。
【０１１３】
また、「異常記録完了フラグ」との表現は、ＲＡＭ化け異常の発生回数を記録するための異常履歴記録処理の場合、ＲＡＭ化け異常記録完了フラグのことを示し、書込異常の発生回数を記録するための異常履歴記録処理の場合、書込異常記録完了フラグのことを示し、メモリセル異常の発生回数を記録するための異常履歴記録処理の場合、メモリセル異常記録完了フラグのことを示すものとする。
【０１１４】
その他、「更新対象の異常発生回数履歴データ」との表現は、ＲＡＭ化け異常の発生回数を記録するための異常履歴記録処理の場合、ＲＡＭ化け異常発生回数履歴データのことを示し、書込異常の発生回数を記録するための異常履歴記録処理の場合、書込異常発生回数履歴データのことを示し、メモリセル異常の発生回数を記録するための異常履歴記録処理の場合、メモリセル異常発生回数履歴データのことを示すものとする。
【０１１５】
図１３に示す異常履歴記録処理を開始すると、書込読出制御部１１ｂは、バックアップメモリ１３ａの各区画に割り当てられた固有ＩＤの中から、異常フラグがオンに設定され、異常記録完了フラグがオフに設定された固有ＩＤを一つ検索し（Ｓ９１０）、この検索の結果、該当する固有ＩＤが発見されなかった場合には（Ｓ９２０でＮｏ）、当該異常履歴記録処理を終了し、該当する固有ＩＤが発見された場合には（Ｓ９２０でＹｅｓ）、Ｓ９３０に移行する。
【０１１６】
また、Ｓ９３０に移行すると、書込読出制御部１１ｂは、検索の結果発見された固有ＩＤを、履歴取得対象ＩＤに設定し、この履歴取得対象ＩＤを用いて、図１４に示す異常履歴ＩＤ取得処理を実行する（Ｓ９４０）。尚、図１４は、書込読出制御部１１ｂが実行する異常履歴ＩＤ取得処理を表すフローチャートである。
【０１１７】
異常履歴ＩＤ取得処理を開始すると、書込読出制御部１１ｂは、設定された履歴取得対象ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されているか否かを判断し（Ｓ１０１０）、この履歴取得対象ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されていると判断すると（Ｓ１０１０でＹｅｓ）、Ｓ１０２０に移行して、異常発生箇所履歴データが格納された区画の固有ＩＤを、返値として出力する。その後、当該異常履歴ＩＤ取得処理を終了する。
【０１１８】
一方、履歴取得対象ＩＤを値に持つ異常発生箇所履歴データが異常履歴記憶領域Ｒ３に記録されていないと判断すると（Ｓ１０１０でＮｏ）、書込読出制御部１１ｂは、履歴取得対象ＩＤを値（主データ）に持つ異常発生箇所履歴データを生成すると共に（Ｓ１０３０）、異常履歴記憶領域Ｒ３における未使用領域から、新規に異常履歴データを書き込むための領域を選択する（Ｓ１０４０）。また、この処理を終えると、選択した領域の先頭区画の固有ＩＤを引数ＩＤに設定すると共に、Ｓ１０３０で生成した異常発生箇所履歴データを、指定データとして引数に設定して、図１１に示すバックアップメモリ書込処理を実行することにより、Ｓ１０３０で生成した異常発生箇所履歴データを、上記選択した領域の先頭区画に書き込む（Ｓ１０５０）。
【０１１９】
また、この処理を終えると、書込読出制御部１１ｂは、異常発生箇所履歴データを書き込んだ区画の固有ＩＤを、返値として出力する（Ｓ１０６０）。その後、当該異常履歴ＩＤ取得処理を終了する。
【０１２０】
また、このようにしてＳ９４０での異常履歴ＩＤ取得処理を終了すると、書込読出制御部１１ｂは、返値の固有ＩＤに基づいて、組となっている更新対象の異常発生回数履歴データが格納された区画の固有ＩＤを割り出し（Ｓ９５０）、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、更新対象の異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ９６０）。
【０１２１】
そして、バックアップメモリ読出処理の返値として得た更新対象の異常発生回数履歴データに基づき、このデータが示す異常発生回数よりも１大きい異常発生回数を示す異常発生回数履歴データを新たに生成する（Ｓ９７０）。尚、異常履歴記憶領域Ｒ３の未使用領域は、値ゼロを示すデータで初期化されているものとする。即ち、Ｓ９４０での異常履歴ＩＤ取得処理にて新規領域が選択された場合に、Ｓ９６０で読み出される異常発生回数履歴データは、異常発生回数として値ゼロを示す。
【０１２２】
また、この処理を終えると、書込読出制御部１１ｂは、Ｓ９５０で割り出した固有ＩＤを引数ＩＤに設定すると共に、Ｓ９７０で生成した異常発生回数履歴データを、指定データとして引数に設定して、図１１に示すバックアップメモリ書込処理を実行し、Ｓ９７０で生成した異常発生回数履歴データを、上記割り出した固有ＩＤに対応する区画に書き込む（Ｓ９８０）。これによって、書込読出制御部１１ｂは、バックアップメモリ１３ａ内において、更新対象の異常発生回数履歴データを、異常発生回数が１増加するように更新する。
【０１２３】
そして、Ｓ９８０での処理を終えると、書込読出制御部１１ｂは、Ｓ９９０に移行し、Ｓ９１０での検索の結果発見された上記固有ＩＤ（履歴取得対象ＩＤ）の異常記録完了フラグをオンに設定する。また、Ｓ９９０での処理を終えると、Ｓ９１０に移行して、再び、異常フラグがオンに設定され、異常記録完了フラグがオフに設定された固有ＩＤを検索する。そして、異常フラグがオンに設定され、異常記録完了フラグがオフに設定された固有ＩＤが発見されなかったならば、当該異常履歴記録処理を終了する。
【０１２４】
続いて、書込読出制御部１１ｂが、電源不安定異常の検出及びこれについての異常履歴の記録のために定期的に実行する電源不安定異常検出記録処理について説明する。図１５は、書込読出制御部１１ｂが実行する電源不安定異常検出記録処理を表すフローチャートである。
【０１２５】
電源不安定異常検出記録処理を開始すると、書込読出制御部１１ｂは、現在オンに設定されている書込異常記録完了フラグが、所定数以上あるか否かを判断することにより、電源不安定異常を検出する（Ｓ１１１０）。
【０１２６】
そして、現在オンに設定されている書込異常記録完了フラグが所定数未満であると判断すると（Ｓ１１１０でＮｏ）、書込読出制御部１１ｂは、電源不安定異常が発生していないとして、Ｓ１１２０〜１１９０の処理を実行することなく、当該電源不安定異常検出記録処理を終了する。
【０１２７】
一方、現在オンに設定されている書込異常記録完了フラグが所定数以上であると判断すると（Ｓ１１１０でＹｅｓ）、書込読出制御部１１ｂは、電源不安定異常が発生しているとして、Ｓ１１２０に移行する。
【０１２８】
また、Ｓ１１２０に移行すると、書込読出制御部１１ｂは、バックアップメモリ１３ａの各区画に割り当てられた固有ＩＤの中から、書込異常記録完了フラグがオンに設定され、電源不安定異常フラグ及び電源不安定異常記録完了フラグがオフに設定されている固有ＩＤを一つ検索し、この検索の結果、該当する固有ＩＤが発見されなかった場合には（Ｓ１１２５でＮｏ）、当該電源不安定異常検出記録処理を終了し、該当する固有ＩＤが発見された場合には（Ｓ１１２５でＹｅｓ）、Ｓ１１３０に移行する。
【０１２９】
また、Ｓ１１３０に移行すると、書込読出制御部１１ｂは、検索の結果発見された固有ＩＤを、履歴取得対象ＩＤに設定すると共に、この固有ＩＤ（履歴取得対象ＩＤ）の電源不安定異常フラグをオンに設定する（Ｓ１１４０）。また、Ｓ１１３０で設定した履歴取得対象ＩＤを用いて、図１４に示す異常履歴ＩＤ取得処理を実行する（Ｓ１１５０）。
【０１３０】
そして、Ｓ１１５０での異常履歴ＩＤ取得処理を終了すると、書込読出制御部１１ｂは、返値の固有ＩＤに基づき、対応する電源不安定異常発生回数履歴データが格納された区画の固有ＩＤを割り出し（Ｓ１１６０）、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、上記電源不安定異常発生回数履歴データを、バックアップメモリ１３ａから読み出し（Ｓ１１６５）、バックアップメモリ読出処理の返値として得た電源不安定異常発生回数履歴データに基づき、このデータが示す異常発生回数よりも１大きい異常発生回数を示す電源不安定異常発生回数履歴データを新たに生成する（Ｓ１１７０）。
【０１３１】
また、この処理を終えると、書込読出制御部１１ｂは、新たに生成した電源不安定異常発生回数履歴データをバックアップメモリ１３ａに書き込むため、Ｓ１１６０で割り出した固有ＩＤを引数ＩＤに設定すると共に、Ｓ１１７０で生成した電源不安定異常発生回数履歴データを、指定データとして引数に設定して、図１１に示すバックアップメモリ書込処理を実行し、Ｓ１１７０で生成した電源不安定異常発生回数履歴データを、上記割り出した固有ＩＤに対応する区画に書き込む（Ｓ１１８０）。これによって、Ｓ１１８０では、バックアップメモリ１３ａにおいて、対応する電源不安定異常発生回数履歴データを、異常発生回数が１増加するように更新する。
【０１３２】
そして、Ｓ１１８０での処理を終えると、書込読出制御部１１ｂは、Ｓ１１９０に移行し、Ｓ１１２０での検索の結果発見された上記固有ＩＤ（履歴取得対象ＩＤ）の電源不安定異常記録完了フラグをオンに設定する。また、Ｓ１１９０での処理を終えると、Ｓ１１２０に移行して、再び、書込異常記録完了フラグがオンに設定され、電源不安定異常フラグ及び電源不安定異常記録完了フラグがオフに設定されている固有ＩＤを検索する。そして、該当する固有ＩＤが発見されなかった場合には、当該電源不安定異常検出記録処理を終了する。
【０１３３】
続いて、書込読出制御部１１ｂが異常を車両乗員に向けて報知（警告）するために定期的に実行する異常監視処理について説明する。図１６及び図１７は、書込読出制御部１１ｂが実行する異常監視処理を表すフローチャートである。
【０１３４】
異常監視処理を開始すると、書込読出制御部１１ｂは、バックアップメモリ１３ａの各区画に割り当てられた固有ＩＤの中から、検査対象ＩＤとして未選択の固有ＩＤを一つ選択し、これを検査対象ＩＤに設定する（Ｓ１２１０）。また、この処理を終えると、書込読出制御部１１ｂは、検査対象ＩＤに対応する異常記録完了フラグのいずれかがオンに設定されているか否かを判断する（Ｓ１２２０）。即ち、検査対象ＩＤのＲＡＭ化け異常記録完了フラグ、書込異常記録完了フラグ、電源不安定異常記録完了フラグ、及び、メモリセル異常記録完了フラグのいずれかがオンに設定されているか否かを判断する。
【０１３５】
そして、書込読出制御部１１ｂは、異常記録完了フラグのいずれかがオンに設定されていると判断すると（Ｓ１２２０でＹｅｓ）、Ｓ１２３０に移行し、異常記録完了フラグが全てオフに設定されていると判断すると（Ｓ１２２０でＮｏ）、Ｓ１２９０に移行する。
【０１３６】
また、Ｓ１２３０に移行すると、書込読出制御部１１ｂは、上記検査対象ＩＤと同一の固有ＩＤを、履歴取得対象ＩＤに設定し（Ｓ１２３０）、設定した履歴取得対象ＩＤを用いて、図１４に示す異常履歴ＩＤ取得処理を実行する（Ｓ１２４０）。そして、この異常履歴ＩＤ取得処理を終了すると、検査対象ＩＤのＲＡＭ化け異常記録完了フラグがオンに設定されているか否かを判断し（Ｓ１２５０）、ＲＡＭ化け異常記録完了フラグがオンに設定されていると判断すると（Ｓ１２５０でＹｅｓ）、Ｓ１２５１に移行する。
【０１３７】
また、Ｓ１２５１に移行すると、書込読出制御部１１ｂは、Ｓ１２４０で返値として出力された固有ＩＤに基づき、対応するＲＡＭ化け異常発生回数履歴データが格納された区画の固有ＩＤを割り出し、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、上記ＲＡＭ化け異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ１２５３）。
【０１３８】
そして、この処理を終えると、書込読出制御部１１ｂは、ＲＯＭ１５が記憶する第二閾値設定テーブルに基づき、検査対象ＩＤのクラスに応じて異なる閾値Ｖ２を設定する（Ｓ１２５５）。図１８は、ＲＯＭ１５が記憶する第二閾値設定テーブルの構成を表す説明図である。
【０１３９】
図１８に示すように、第二閾値設定テーブルは、固有ＩＤのクラス毎に、ＲＡＭ化け異常、書込異常、電源不安定異常、及び、メモリセル異常の各異常発生時に閾値Ｖ２として設定すべき値Ｖ２［ｉ，１］〜Ｖ２［ｉ，４］を有する（ｉ＝１〜４）。また、この第二閾値設定テーブルにおいて、上記固有ＩＤのクラスとしては、重要度が基準値Ｄ４以上に設定されたデータ記憶領域内の区画に割り当てられた固有ＩＤのクラス、重要度が基準値Ｄ４未満に設定されたデータ記憶領域Ｒ１内の区画に割り当てられた固有ＩＤのクラス、代替データ記憶領域Ｒ２内の区画に割り当てられた固有ＩＤのクラス、及び、異常履歴記憶領域Ｒ３内の区画に割り当てられた固有ＩＤのクラスが設定されている。
【０１４０】
書込読出制御部１１ｂは、このように構成された第二閾値設定テーブルを用い、値Ｖ２［１，１］〜Ｖ２［４，１］の内、検査対象ＩＤのクラスに対応する値を、閾値Ｖ２に設定する（Ｓ１２５５）。
【０１４１】
また、このようにしてＳ１２５５での処理を終えると、書込読出制御部１１ｂは、Ｓ１２５３で読み出したＲＡＭ化け異常発生回数履歴データが示すＲＡＭ化け異常の発生回数が閾値Ｖ２以上であるか否かを判断し（Ｓ１２５７）、ＲＡＭ化け異常の発生回数が閾値Ｖ２以上であると判断すると（Ｓ１２５７でＹｅｓ）、ＲＡＭ化け異常を表すメッセージを、運転席前方のインストルパネルに設けられた表示装置２７に表示することにより、このＲＡＭ化け異常を、車両乗員に報知する（Ｓ１２５９）。その後、Ｓ１２６０に移行する。
【０１４２】
これに対し、Ｓ１２５７にて、ＲＡＭ化け異常の発生回数が閾値Ｖ２未満であると判断すると（Ｓ１２５７でＮｏ）、書込読出制御部１１ｂは、Ｓ１２５９の処理を実行せずに、Ｓ１２６０に移行する。
【０１４３】
また、Ｓ１２５０において、検査対象ＩＤのＲＡＭ化け異常記録完了フラグがオフに設定されていると判断すると（Ｓ１２５０でＮｏ）、書込読出制御部１１ｂは、Ｓ１２６０に移行し、検査対象ＩＤの書込異常記録完了フラグがオンに設定されているか否かを判断する。そして、書込異常記録完了フラグがオンに設定されていると判断すると（Ｓ１２６０でＹｅｓ）、Ｓ１２６１に移行する。
【０１４４】
また、Ｓ１２６１に移行すると、書込読出制御部１１ｂは、Ｓ１２４０で返値として出力された固有ＩＤに基づき、対応する書込異常発生回数履歴データが格納された区画の固有ＩＤを割り出し、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、上記書込異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ１２６３）。
【０１４５】
そして、この処理を終えると、書込読出制御部１１ｂは、ＲＯＭ１５が記憶する第二閾値設定テーブルに基づき、検査対象ＩＤのクラスに応じて異なる閾値Ｖ２を設定する（Ｓ１２６５）。即ち、書込読出制御部１１ｂは、第二閾値設定テーブルに記述された値Ｖ２［１，２］〜Ｖ２［４，２］の内、検査対象ＩＤのクラスに対応する値を、閾値Ｖ２に設定する。
【０１４６】
また、このようにしてＳ１２６５での処理を終えると、書込読出制御部１１ｂは、Ｓ１２６３で読み出した書込異常発生回数履歴データが示す書込異常の発生回数が閾値Ｖ２以上であるか否かを判断し（Ｓ１２６７）、書込異常の発生回数が閾値Ｖ２以上であると判断すると（Ｓ１２６７でＹｅｓ）、書込異常を表すメッセージを、表示装置２７に表示することにより、この書込異常を、車両乗員に報知する（Ｓ１２６９）。その後、Ｓ１２７０に移行する。
【０１４７】
その他、Ｓ１２６７にて、書込異常の発生回数が閾値Ｖ２未満であると判断すると（Ｓ１２６７でＮｏ）、書込読出制御部１１ｂは、Ｓ１２６９の処理を実行せずに、Ｓ１２７０に移行する。
【０１４８】
また、Ｓ１２６０において、検査対象ＩＤの書込異常記録完了フラグがオフに設定されていると判断すると（Ｓ１２６０でＮｏ）、書込読出制御部１１ｂは、Ｓ１２７０に移行し、検査対象ＩＤの電源不安定異常記録完了フラグがオンに設定されているか否かを判断する。そして、電源不安定異常記録完了フラグがオンに設定されていると判断すると（Ｓ１２７０でＹｅｓ）、Ｓ１２７１に移行する。
【０１４９】
また、Ｓ１２７１に移行すると、書込読出制御部１１ｂは、Ｓ１２４０で返値として出力された固有ＩＤに基づき、対応する電源不安定異常発生回数履歴データが格納された区画の固有ＩＤを割り出し、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、上記電源不安定異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ１２７３）。
【０１５０】
そして、Ｓ１２７３での処理を終えると、書込読出制御部１１ｂは、ＲＯＭ１５が記憶する第二閾値設定テーブルに基づき、検査対象ＩＤのクラスに応じて異なる閾値Ｖ２を設定する（Ｓ１２７５）。即ち、Ｓ１２７５において、書込読出制御部１１ｂは、第二閾値設定テーブルに記述された値Ｖ２［１，３］〜Ｖ２［４，３］の内、検査対象ＩＤのクラスに対応する値を、閾値Ｖ２に設定する。
【０１５１】
また、Ｓ１２７５での処理を終えると、書込読出制御部１１ｂは、Ｓ１２７３で読み出した電源不安定異常発生回数履歴データが示す電源不安定異常の発生回数が閾値Ｖ２以上であるか否かを判断し（Ｓ１２７７）、電源不安定異常の発生回数が閾値Ｖ２以上であると判断すると（Ｓ１２７７でＹｅｓ）、電源不安定異常を表すメッセージを、表示装置２７に表示することにより、この電源不安定異常を、車両乗員に報知する（Ｓ１２７９）。その後、Ｓ１２８０に移行する。
【０１５２】
これに対し、Ｓ１２７７にて、電源不安定異常の発生回数が閾値Ｖ２未満であると判断すると（Ｓ１２７７でＮｏ）、書込読出制御部１１ｂは、Ｓ１２７９の処理を実行せずに、Ｓ１２８０に移行する。
【０１５３】
また、Ｓ１２７０において、検査対象ＩＤの電源不安定異常記録完了フラグがオフに設定されていると判断すると（Ｓ１２７０でＮｏ）、書込読出制御部１１ｂは、Ｓ１２８０に移行し、検査対象ＩＤのメモリセル異常記録完了フラグがオンに設定されているか否かを判断する。そして、メモリセル異常記録完了フラグがオンに設定されていないと判断すると、Ｓ１２９０に移行し、オンに設定されていると判断すると（Ｓ１２８０でＹｅｓ）、Ｓ１２８１に移行する。
【０１５４】
また、Ｓ１２８１に移行すると、書込読出制御部１１ｂは、Ｓ１２４０で返値として出力された固有ＩＤに基づき、対応するメモリセル異常発生回数履歴データが格納された区画の固有ＩＤを割り出し、割り出した固有ＩＤを引数に設定してバックアップメモリ読出処理を実行することにより、上記メモリセル異常発生回数履歴データを、バックアップメモリ１３ａから読み出す（Ｓ１２８３）。
【０１５５】
そして、Ｓ１２８３での処理を終えると、書込読出制御部１１ｂは、ＲＯＭ１５が記憶する第二閾値設定テーブルに基づき、検査対象ＩＤのクラスに応じて異なる閾値Ｖ２を設定する（Ｓ１２８５）。即ち、Ｓ１２８５において、書込読出制御部１１ｂは、第二閾値設定テーブルに記述された値Ｖ２［１，４］〜Ｖ２［２，４］の内、検査対象ＩＤのクラスに対応する値を、閾値Ｖ２に設定する。
【０１５６】
また、Ｓ１２８５での処理を終えると、書込読出制御部１１ｂは、Ｓ１２８３で読み出したメモリセル異常発生回数履歴データが示すメモリセル異常の発生回数が閾値Ｖ２以上であるか否かを判断し（Ｓ１２８７）、メモリセル異常の発生回数が閾値Ｖ２以上であると判断すると（Ｓ１２８７でＹｅｓ）、メモリセル異常を表すメッセージを表示装置２７に表示することにより、このメモリセル異常を、車両乗員に報知する（Ｓ１２８９）。その後、Ｓ１２９０に移行する。
【０１５７】
これに対し、Ｓ１２８７にて、メモリセル異常の発生回数が閾値Ｖ２未満であると判断すると（Ｓ１２８７でＮｏ）、書込読出制御部１１ｂは、Ｓ１２８９の処理を実行せずに、Ｓ１２９０に移行する。
【０１５８】
また、Ｓ１２９０に移行すると、書込読出制御部１１ｂは、バックアップメモリ１３ａの各区画に割り当てられた固有ＩＤの全てをＳ１２１０において検査対象ＩＤに設定してＳ１２２０以降の処理を実行したか否かを判断し、全固有ＩＤを検査対象ＩＤに設定していないと判断すると（Ｓ１２９０でＮｏ）、Ｓ１２１０に移行して、未選択の固有ＩＤの一つを、検査対象ＩＤに設定し、Ｓ１２２０以降の処理を実行する。そして、全固有ＩＤを検査対象ＩＤに設定してＳ１２２０以降の処理を実行したと判断すると（Ｓ１２９０でＹｅｓ）、当該異常監視処理を終了する。
【０１５９】
続いて、書込読出制御部１１ｂが実行するパワーダウン処理について説明する。図１９は、運転席に設けられたイグニッションスイッチ操作部を通じ、イグニッションスイッチのオフ操作がなされ、所定のタイムラグをもって、イグニッションスイッチＳＷがオフされるまでの間に、書込読出制御部１１ｂが実行するパワーダウン処理を表すフローチャートである。
【０１６０】
パワーダウン処理を開始すると、書込読出制御部１１ｂは、まず、データ記憶領域Ｒ１及び代替データ記憶領域Ｒ２の各区画に割り当てられた固有ＩＤの中から、前回値書込対象ＩＤとして未選択の固有ＩＤを一つ選択し、これを前回値書込対象ＩＤに設定する（Ｓ１３１０）。
【０１６１】
また、この処理を終えると、書込読出制御部１１ｂは、重要度テーブルに基づき、前回値書込対象ＩＤに設定された重要度を識別し（Ｓ１３２０）、識別した重要度が基準値Ｄ１以上であるか否かを判断する（Ｓ１３３０）。但し、前回値書込対象ＩＤが代替データ記憶領域の区画に割り当てられた固有ＩＤである場合、Ｓ１３２０では、この前回値書込対象ＩＤに設定された固有ＩＤの変更前固有ＩＤに設定された重要度を識別する。
【０１６２】
そして、重要度が基準値Ｄ１未満であると判断すると（Ｓ１３３０でＮｏ）、書込読出制御部１１ｂは、Ｓ１３６０に移行し、重要度が基準値Ｄ１以上であると判断すると（Ｓ１３３０でＹｅｓ）、Ｓ１３４０に移行する。また、Ｓ１３４０に移行すると、書込読出制御部１１ｂは、この前回値書込対象ＩＤの異常記録完了フラグのいずれかが、オンに設定されているか否かを判断する。即ち、ＲＡＭ化け異常記録完了フラグ、書込異常記録完了フラグ、電源不安定異常記録完了フラグ、及び、メモリセル異常記録完了フラグのいずれかがオンに設定されているか否かを判断する。
【０１６３】
そして、前回値書込対象ＩＤの異常記録完了フラグのいずれかがオンに設定されていると判断すると（Ｓ１３４０でＹｅｓ）、Ｓ１３５０の処理を実行することなく、Ｓ１３６０に移行し、前回値書込対象ＩＤの異常記録完了フラグの全てがオフに設定されていると判断すると（Ｓ１３４０でＮｏ）、Ｓ１３５０に移行して、前回値テーブルにおいて上記前回値書込対象ＩＤに対応付けられている制御用データを、前回値書込対象ＩＤに対応するバックアップメモリ１３ａ内の区画に記録されたデータ（制御用データ）に更新する。
【０１６４】
但し、上記前回値書込対象ＩＤが代替データ記憶領域の区画に割り当てられた固有ＩＤである場合には、前回値テーブルにおいて、この変更前固有ＩＤに対応付けられた制御用データを、前回値書込対象ＩＤに対応するバックアップメモリ１３ａ内の区画に記録されたデータ（制御用データ）に更新する。また、Ｓ１３５０での処理を終えると、書込読出制御部１１ｂは、Ｓ１３６０に移行する。
【０１６５】
この他、Ｓ１３６０に移行すると、書込読出制御部１１ｂは、データ記憶領域Ｒ１及び代替データ記憶領域Ｒ２の各区画に割り当てられた固有ＩＤの全てを、前回値書込対象ＩＤに選択してＳ１３２０以降の処理を実行したか否かを判断し、全固有ＩＤを前回値書込対象ＩＤに選択していないと判断すると（Ｓ１３６０でＮｏ）、Ｓ１３１０に移行して、未選択の固有ＩＤを、前回値書込対象ＩＤに設定し、Ｓ１３２０以降の処理を実行する。
【０１６６】
一方、全固有ＩＤを前回値書込対象ＩＤに選択したと判断すると（Ｓ１３６０でＹｅｓ）、書込読出制御部１１ｂは、Ｓ１３７０に移行し、ＥＥＰＲＯＭ１７が記憶するＩＤ変更テーブルを、ＲＡＭ１３が記憶するＩＤ変更テーブルと同一内容に更新して、最新のＩＤ変更テーブルを、ＥＥＰＲＯＭ１７にバックアップ保存する。
【０１６７】
また、この処理を終えると、書込読出制御部１１ｂは、Ｓ１３８０に移行し、ＥＥＰＲＯＭ１７が記憶する異常履歴前回値テーブルの内容を、バックアップメモリ１３ａにおける異常履歴記憶領域Ｒ３の内容と同一内容に更新して、各異常履歴データを、ＥＥＰＲＯＭ１７にバックアップ保存する。その後、当該パワーダウン処理を終了する。
【０１６８】
以上、書込読出制御部１１ｂにて実行される処理について説明したが、本実施例の電子制御装置１は、この書込読出制御部１１ｂによって生成・記録された異常履歴データを出力する機能を有する。
【０１６９】
即ち、本実施例の電子制御装置１が備える通信インタフェース２３には、車内ＬＡＮを通じて、当該車両に搭載された無線通信装置３１が接続されており、電子制御装置１は、図２０（ａ）に示すように、この無線通信装置３１を通じて、外部のリモートセンタ３２から異常履歴データを要求する旨の要求メッセージを受信すると、これに応答して、要求された異常履歴データを格納した応答メッセージを、リモートセンタ３２に送信する。
【０１７０】
また、本実施例の電子制御装置１が備える通信インタフェース２３には、車内ＬＡＮを通じて、ダイアグテスタ（故障診断装置）３４の接続を受け付ける外部接続装置３３が接続されており、電子制御装置１は、この外部接続装置３３を通じて、外部接続装置３３に接続されたダイアグテスタ３４から異常履歴データを要求する旨の要求メッセージを受信すると、これに応答して、要求された異常履歴データを格納した応答メッセージを、ダイアグテスタ３４に送信する。
【０１７１】
尚、図２０（ａ）は、リモートセンタ３２及びダイアグテスタ３４と電子制御装置１とのメッセージ送受に関する説明図であり、図２０（ｂ）は、要求メッセージの構成を表す説明図、図２０（ｃ）は、応答メッセージの構成を表す説明図である。また、図２１は、イグニッションスイッチＳＷがオンにされ上述のパワーオン処理が実行された後、ＣＰＵ１１が、ＲＯＭ１５に記憶された所定のプログラムに基づき繰返し実行する外部メッセージ受付処理を表すフローチャートである。
【０１７２】
外部メッセージ受付処理を開始すると、ＣＰＵ１１は、通信インタフェース２３を通じて外部装置（リモートセンタ３２又はダイアグテスタ３４）からメッセージを受信するまで待機し（Ｓ１４１０）、メッセージを受信すると、受信メッセージを解析し（Ｓ１４２０）、受信メッセージが正しいデータ構造の要求メッセージであるか否かを判断する（Ｓ１４３０）。尚、要求メッセージは、図２０（ｂ）に示すように、当該メッセージが要求メッセージであることを示すコード情報と、要求の種類を表すコード情報と、付属データと、からなる構造を採る。
【０１７３】
ＣＰＵ１１は、受信メッセージが図２０（ｂ）に示す構造の要求メッセージである場合、受信メッセージが正しいデータ構造の要求メッセージであると判断して（Ｓ１４３０でＹｅｓ）、Ｓ１４４０に移行し、受信メッセージが正しいデータ構造の要求メッセージではないと判断すると（Ｓ１４３０でＮｏ）、当該外部メッセージ受付処理を一旦終了する。その後、再びＳ１４１０に移行する。
【０１７４】
また、Ｓ１４４０に移行すると、ＣＰＵ１１は、受信メッセージに格納された要求の種類を表すコード情報に基づき、受信メッセージが、データ要求メッセージであるか否かを判断し、受信メッセージがデータ要求メッセージであると判断すると（Ｓ１４４０でＹｅｓ）、Ｓ１４５０にて、付属データに基づき、要求されたデータを識別する。具体的に、付属データが”０ｘＦＦＦＦ”との値を示す場合、ＣＰＵ１１は、要求されたデータが、異常履歴記憶領域Ｒ３に記憶された各異常発生箇所履歴データが示す固有ＩＤのリストを記したリストデータであると識別する。そして、要求されたデータがリストデータであると識別すると、Ｓ１４６０に移行し、このリストデータを格納した応答メッセージを生成する。尚、応答メッセージは、図２０（ｃ）に示すように、当該メッセージが応答メッセージであることを示すコード情報と、付属データと、からなる構造を採る。
【０１７５】
即ち、異常履歴記憶領域Ｒ３に記憶された異常発生箇所履歴データが示す固有ＩＤが、”ＩＤ１２３４”及び”ＩＤ１３４５”である場合、ＣＰＵ１１は、付属データとして、”１２３４，１３４５”との値を示す付属データを生成し、応答メッセージ用の上記コード情報と、この付属データとを配列した応答メッセージを生成する（Ｓ１４６０）。
【０１７６】
また、この処理を終えると、ＣＰＵ１１は、Ｓ１４９０に移行し、応答メッセージを、通信インタフェース２３を通じて要求メッセージ送信元装置に送信する。その後、当該外部メッセージ受付処理を終了する。
【０１７７】
一方、受信メッセージの付属データが”０ｘＦＦＦＦ”以外の値を示す場合、ＣＰＵ１１は、Ｓ１４５０において要求されたデータが異常履歴データであると識別し、Ｓ１４７０にて、この付属データが示す値と一致する固有ＩＤを示す異常発生箇所履歴データを有する異常履歴データを、付属データとした応答メッセージを生成する。即ち、要求メッセージの付属データが示す固有ＩＤが割り当てられたバックアップメモリ１３ａの区画にて発生したＲＡＭ化け異常、書込異常、電源不安定異常、メモリセル異常の各異常についての発生回数を記述した応答メッセージを生成する。
【０１７８】
また、このようにしてＳ１４７０での処理を終えると、ＣＰＵ１１は、生成した応答メッセージを、通信インタフェース２３を通じて要求メッセージ送信元装置に送信する（Ｓ１４９０）。その後、当該外部メッセージ受付処理を終了する。
【０１７９】
その他、Ｓ１４４０において、受信メッセージに格納された要求の種類を表すコード情報に基づき、受信メッセージがデータ要求メッセージではないと判断すると、ＣＰＵ１１は、受信メッセージが、データクリアを要求する旨のクリア要求メッセージであるか否かを判断し（Ｓ１４８０）、クリア要求メッセージであると判断すると（Ｓ１４８０でＹｅｓ）、受信メッセージの付属データに基づき、指定されたクリア対象の区画を識別する（Ｓ１４８１）。
【０１８０】
具体的に、付属データが”０ｘＦＦＦＦ”との値を示す場合、ＣＰＵ１１は、指定されたクリア対象が、異常履歴記憶領域Ｒ３の全区画であると識別し、Ｓ１４８３にて、異常履歴記憶領域Ｒ３内の全区画のデータをクリアする。また、この処理を終えると、ＣＰＵ１１は、Ｓ１４８７に移行し、データクリアした旨のメッセージを記した応答メッセージを生成し、この応答メッセージを、通信インタフェース２３を通じて要求メッセージ送信元装置に送信する（Ｓ１４９０）。その後、当該外部メッセージ受付処理を終了する。
【０１８１】
一方、受信メッセージの付属データが”０ｘＦＦＦＦ”以外の値を示す場合、ＣＰＵ１１は、Ｓ１４８１において指定されたクリア対象が特定区画であると識別し、Ｓ１４８５にて、この付属データが示す値と一致する固有ＩＤを示す異常発生箇所履歴データを有する異常履歴データが格納された各区画のデータをクリアする。また、この処理を終えると、ＣＰＵ１１は、Ｓ１４８７に移行し、データクリアした旨のメッセージを記した応答メッセージを生成し、この応答メッセージを、通信インタフェース２３を通じて要求メッセージ送信元装置に送信する（Ｓ１４９０）。その後、当該外部メッセージ受付処理を終了する。
【０１８２】
その他、Ｓ１４８０において、受信メッセージがクリア要求メッセージではないと判断すると（Ｓ１４８０でＮｏ）、ＣＰＵ１１は、Ｓ１４８９に移行し、受信メッセージが示す要求内容に対応した処理を実行し、その後、当該外部メッセージ受付処理を終了する。
【０１８３】
以上、本実施例の電子制御装置１について説明したが、本実施例の電子制御装置１では、バックアップメモリ１３ａにて異常を検出すると、バックアップメモリ１３ａの異常履歴記憶領域Ｒ３において、検出された異常の発生区画の固有ＩＤを表す異常発生箇所履歴データと関連付けられて記憶された異常発生回数履歴データを更新することにより、この異常発生回数を、異常の発生区画の情報と対応付けて記録する（図１３参照）。また、車載バッテリ２５が脱着されても異常発生回数がリセットされないように、パワーダウン時には、異常履歴記憶領域Ｒ３内のデータをＥＥＰＲＯＭ１７に書き込む（図１９参照）。
【０１８４】
また、本実施例の電子制御装置１は、車外装置と通信可能な通信インタフェース２３を備え、異常履歴記録処理等により記録された異常履歴の内容に基づき、バックアップメモリ１３ａで発生した異常の発生回数を表すデータ（応答メッセージ）を、通信インタフェース２３を通じて車外装置に送信する（図２１参照）。
【０１８５】
このように、本実施例の電子制御装置１では、イグニッションスイッチのオン／オフ操作にかかわらず、異常発生回数の情報を記憶して、異常発生回数を長期に渡り累積的に記録し、これをダイアグテスタ３４やリモートセンタ３２等に提供するので、従来よりも、異常が恒久的な異常か、偶発的な異常かを判断するのに役立つ詳細な情報を提供することができる。
【０１８６】
即ち、本実施例によれば、利用者（車両乗員やメンテナンス作業者等）は、ダイアグテスタ３４等を通じ、バックアップメモリ１３ａにおける異常の発生頻度を正確に把握することができ、異常解消のための適切な処置を採ることができる。具体的には、異常が恒久的な異常である場合には、ハードウェアを交換する等の処置を採ることができると共に、偶発的な異常である場合には、ハードウェアを交換せず、異常に対処することができる。
【０１８７】
また、本実施例の電子制御装置１によれば、通信インタフェース２３を通じて外部装置から受信したデータ要求メッセージに応答して、異常履歴データを要求元装置に送信するため、効率的に異常履歴データを外部に提供することができる。
【０１８８】
また、本実施例の電子制御装置１は、受信したデータ要求メッセージにより固有ＩＤの指定を受けて、この固有ＩＤに対応する区画の異常発生回数を表す応答メッセージを、データ要求元装置に送信する。即ち、本実施例の電子制御装置１によれば、要求された異常発生回数の情報を選択的に、利用者に提供することができ、利用者は、必要な異常履歴の情報を得て、効率的に異常を究明することができる。
【０１８９】
その他、異常の内容によっては、再現テストを行い、このテスト時に生成された異常履歴データを解析したほうが、効率的に異常原因を究明できる場合もあるため、本実施例の電子制御装置１には、通信インタフェース２３を通じ、外部装置からクリア要求メッセージを受信した場合に、異常履歴データをクリアする機能を設けた。従って、利用者は、ダイアグテスタ３４等を通じて、異常履歴データをクリアした後に再現テストを実行することで、異常原因の究明を効率的に行うことができる。
【０１９０】
また、本実施例の電子制御装置１では、受信したクリア要求メッセージにより指定された固有ＩＤと同一の値を示す異常発生箇所履歴データを有する異常履歴データを、選択的にクリアできるため、利用者は、ダイアグテスタ等を通じ、クリアする必要のない異常履歴データをクリアせずに必要なデータのみを選択的にクリアすることができる。
【０１９１】
また、本実施例の電子制御装置１によれば、ＲＡＭ化け異常発生回数履歴データと、書込異常発生回数履歴データと、電源不安定異常発生回数履歴データと、メモリセル異常発生回数履歴データとを更新して、これらの各異常発生回数を記録するため、利用者は、ダイアグテスタ等を通じて、様々な異常の発生頻度を把握することができ、様々な異常に対し適切に対処することができる。
【０１９２】
その他、１度の運転期間に、異常の発生回数を、検出回数分カウントアップしても、これらの情報は、車両の運転状態の詳細を利用者が把握していなければ、無意味な情報となる可能性が高いため、本実施例の電子制御装置１では、異常記録完了フラグを用いて、車両乗員の操作により当該装置がパワーオンされてから、パワーダウンされるまでの期間（１度の運転期間）に発生した各異常に関し、異常の発生区画及び異常の種類毎に、１度のみ、異常の発生回数を１カウントアップし、各区画及び各種類の異常の発生回数を記録するようにした。従って、本実施例の電子制御装置１によれば、効率的に、異常の発生回数を記録することができ、ＣＰＵ１１の処理負荷を抑えることができる。
【０１９３】
また、本実施例では、異常判定付き書込処理において、バックアップメモリ１３ａ内の制御用データを更新する際、制御用データが目的の制御用データに書き換えられたか否かを判断することにより、制御用データの書込異常を検出するようにした。そして、書込異常が検出された場合には、書込異常の発生区画に応じ、フェールセーフ処理の内容を切り替えるようにした。
【０１９４】
即ち、データ記憶領域Ｒ１の区画で書込異常が生じた場合であって、この区画に記憶された制御用データが重要度の高い制御用データである場合には、代替データ記憶領域Ｒ２に、この制御用データの記憶領域を確保するといった内容のフェールセーフ処理を実行し、書込異常が生じた区画の制御用データが重要度の低い制御用データである場合には、代替データ記憶領域Ｒ２に制御用データの記憶領域を確保せず、この制御用データの初期値を、制御用データの読出時に、返値として出力するといった内容のフェールセーフ処理を実行するようにした。従って、本実施例によれば、代替データ記憶領域Ｒ２を必要以上に大きくしなくても、書込異常の問題を電子制御装置１内で適切に解決することができる。
【０１９５】
また、本実施例では、重要度の高い制御用データに対して、書込異常の発生時に代替データ記憶領域Ｒ２の区画を割り当てるが、この割り当ての実行タイミングを、書込異常の発生回数で調整するようにした。
【０１９６】
即ち、本実施例の電子制御装置１では、書込異常が検出された場合に実行するフェールセーフ処理の内容を、同一区画で過去に発生した異常の発生回数に応じ切り替え、制御用データの書込異常が発生しても、異常の発生回数が閾値Ｖ１未満である場合には、代替データ記憶領域Ｒ２に制御用データの記憶領域を確保せずに、この制御用データの初期値を、制御用データの読出時に、返値として出力するようにし、異常の発生回数が閾値Ｖ１以上である場合には、書込異常が恒久的なものであるとして、代替データ記憶領域Ｒ２に、この制御用データの記憶領域を確保するようにした。従って、本実施例によれば、偶発的な書込異常が発生している区画の制御用データに、代替データ記憶領域Ｒ２を割り当てなくて済み、代替データ記憶領域Ｒ２を有効に活用することができる。
【０１９７】
また、本実施例の電子制御装置１では、チェックデータに基づき、各制御用データについてのデータ化けを検出し、この異常発生回数を記録すると共に、データ化けに対するフェールセーフ処理として、データ化けが検出された制御用データを、データ化け発生前の制御用データに更新する処理を実行するようにした。従って、本実施例の電子制御装置１によれば、データ化けによる異常を、電子制御装置１内部で解決することができる。
【０１９８】
その他、本実施例の電子制御装置１では、互いに整合が取れていないと好ましくない制御用データ群を、セクション番号によってグループ化し、データ化けが検出された制御用データを、データ化け発生前の制御用データに更新する際には、データ化けが検出された制御用データと同時に、データ化けが検出された制御用データと同一グループに属する各制御用データを、データ化け発生前の値に更新するようにした。従って、本実施例によれば、各制御用データ間の整合をとりながら、データ化けに対処することができ、制御用データ間の不整合により、不安定な車両制御が行われるのを防止することができる。
【０１９９】
また、本実施例の電子制御装置１では、異常が検出されていない区画の制御用データを、ＥＥＰＲＯＭ１７にバックアップ保存し、データ化けが検出された場合には、対応する区画のバックアップ保存値（前回値）を用い、データ化けが検出された区画の制御用データを復元するようにした。従って、本実施例によれば、データ化け発生時にも、学習結果に基づいた適切な車両制御を実行することができる。
【０２００】
また、本実施例の電子制御装置１では、チェックデータを制御用データに組み込んでいるため、車載バッテリ２５の脱着によりバックアップメモリ１３ａ内のデータが揮発した場合には、バックアップメモリ１３ａ内の各区画において、データ化けが検出されてしまうが、本実施例では、パワーオン時に、各制御用データに対し、データ化けの検出動作を実行するようにし、この動作にて所定数以上のデータ化けが検出された場合には、車載バッテリ２５が脱着されたと判断して、このデータ化けに基づき、異常発生回数を更新しないようにした。従って、本実施例によれば、車載バッテリ２５の脱着に起因する異常検出を無視することができ、この異常の報知によって、車両乗員や作業者等が、電子制御装置１に異常があると錯誤してしまうのを防止することができる。
【０２０１】
その他、本実施例では、バックメモリ書込処理にて、実行指令元からの指定データを対応する固有ＩＤの区画に書き込む際、これに先立って、バックアップメモリ読出処理を実行することにより、上記区画に対する書込動作（上記区画のデータ更新）に先立って、更新される制御用データに対しデータ化けの検出動作を実行するようにした。従って、本実施例の電子制御装置１によれば、データ更新前の制御用データにデータ化けが生じている場合でも、データ更新によって異常が解消される前に、この異常を漏らさず検出することができ、正確に、データ化けに係る異常履歴を記録することができる。
【０２０２】
また、本実施例の電子制御装置１では、異常が検出されていない区画の制御用データをの内、重要度の高いものをＥＥＰＲＯＭ１７にバックアップ保存し、この区画についての書込異常が検出された場合には、この書込異常に対するフェールセーフ処理として、対応する区画のバックアップ保存値（前回値）を、読出指令に対する応答結果として出力するようにした。従って、本実施例によれば、書込異常発生時にも、学習結果に基づいた適切な車両制御を実行することができる。
【０２０３】
また、本実施例の電子制御装置１では、異常履歴データが表す異常発生回数に基づき、車両乗員に対して異常を報知する必要があるか否かを判断し、報知が必要であると判断した場合には、インストルパネル内の表示装置２７を通じて、車両乗員に対し、異常を報知するようにした。従って、本実施例によれば、発生頻度の高い異常が発生した場合に、早期に車両乗員に対して異常を警告することができると共に、偶発的な異常については、これを報知せずに済み、車両乗員に不安を与えないようにすることができる。
【０２０４】
また特に、本実施例では、異常が発生している区画のクラスに応じて異なる閾値Ｖ２を設定し、この閾値Ｖ２を基準として、車両乗員に対して異常を報知する必要があるか否かを判断するようにした。従って、電子制御装置１によれば、車両乗員に対し適切に必要な異常を報知することができる。
【０２０５】
尚、本発明の異常検出手段は、Ｓ２３０〜Ｓ２５５，Ｓ６３０〜Ｓ６７０，Ｓ７５０〜Ｓ７６５，Ｓ１１１０〜Ｓ１１４０の処理にて実現され、異常履歴記録手段は、異常履歴記録処理及びＳ１１５０〜Ｓ１１９０，Ｓ１３８０の処理にて実現されている。また、異常履歴送信手段は、外部メッセージ受付処理、特に、Ｓ１４７０，Ｓ１４９０の処理にて実現されている。その他、異常履歴クリア手段は、外部メッセージ受付処理、特に、Ｓ１４８５の処理にて実現されている。
【０２０６】
また、フェールセーフ処理実行手段は、Ｓ２６０，Ｓ２８０〜Ｓ２９０，Ｓ７８０〜Ｓ７８５の処理にて実現され、バックアップ手段は、Ｓ１３１０〜Ｓ１３６０の処理にて実現されている。その他、脱着判断手段は、Ｓ１４０の処理にて実現され、警告要否判断手段及び警告装置制御手段は、異常監視処理にて実現されている。
【０２０７】
また、本発明の電子制御装置は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、異常監視処理において、インストルパネルに設けられた表示装置２７を通じ、メッセージの形態で、車両乗員に異常を報知するようにしたが、異常監視処理においては、表示装置２７に代えて、インストルパネルに設けられた警告ランプを制御し、これを点灯させることにより、車両乗員に異常を報知するようにしても構わない。
【図面の簡単な説明】
【０２０８】
【図１】電子制御装置１の構成を表すブロック図（ａ）及びＣＰＵ１１にて実現される機能を表す機能ブロック図（ｂ）である。
【図２】バックアップメモリ１３ａのデータ構成を表す説明図である。
【図３】ＲＯＭ１５のデータ構成を表す説明図である。
【図４】ＥＥＰＲＯＭ１７のデータ構成を表す説明図である。
【図５】書込読出制御部１１ｂが行うパワーオン処理を表すフローチャートである。
【図６】書込読出制御部１１ｂが行うバックアップメモリ読出処理を表すフローチャートである。
【図７】書込読出制御部１１ｂが行う処理ＩＤ設定処理を表すフローチャートである。
【図８】書込読出制御部１１ｂが行うＲＡＭ化け異常フェールセーフ処理を表すフローチャートである。
【図９】書込読出制御部１１ｂが行う初期値取得処理を表すフローチャートである。
【図１０】書込読出制御部１１ｂが行う異常判定付き書込処理を表すフローチャートである。
【図１１】書込読出制御部１１ｂが行うバックアップメモリ書込処理を表すフローチャートである。
【図１２】書込読出制御部１１ｂが行うＩＤ変更処理を表すフローチャートである。
【図１３】書込読出制御部１１ｂが定期的に行う異常履歴記録処理を表すフローチャートである。
【図１４】書込読出制御部１１ｂが行う異常履歴ＩＤ取得処理を表すフローチャートである。
【図１５】書込読出制御部１１ｂが行う電源不安定異常検出記録処理を表すフローチャートである。
【図１６】書込読出制御部１１ｂが行う異常監視処理を表すフローチャートである。
【図１７】書込読出制御部１１ｂが行う異常監視処理を表すフローチャートである。
【図１８】ＲＯＭ１５が記憶する第二閾値設定テーブルの構成を表す説明図である。
【図１９】書込読出制御部１１ｂが行うパワーダウン処理を表すフローチャートである。
【図２０】外部装置と電子制御装置１とのメッセージ送受に関する説明図（ａ）及び要求メッセージの構成及び応答メッセージの構成を表す説明図（ｂ，ｃ）である。
【図２１】ＣＰＵ１１が行う外部メッセージ受付処理を表すフローチャートである。
【符号の説明】
【０２０９】
１…電子制御装置、１１…ＣＰＵ、１１ａ…学習制御部、１１ｂ…書込読出制御部、１３…ＲＡＭ、１３ａ…バックアップメモリ、１５…ＲＯＭ、１７…ＥＥＰＲＯＭ、１９…タイマ、２１…入出力装置、２３…通信インタフェース、２５…車載バッテリ、２７…表示装置、３１…無線通信装置、３２…リモートセンタ、３３…外部接続装置、３４…ダイアグテスタ、Ｒ１…データ記憶領域、Ｒ２…代替データ記憶領域、Ｒ３…異常履歴記憶領域
【図１】
0004736828.tif 000002
【図２】
0004736828.tif 000003
【図３】
0004736828.tif 000004
【図４】
0004736828.tif 000005
【図５】
0004736828.tif 000006
【図６】
0004736828.tif 000007
【図７】
0004736828.tif 000008
【図８】
0004736828.tif 000009
【図９】
0004736828.tif 000010
【図１０】
0004736828.tif 000011
【図１１】
0004736828.tif 000012
【図１２】
0004736828.tif 000013
【図１３】
0004736828.tif 000014
【図１４】
0004736828.tif 000015
【図１５】
0004736828.tif 000016
【図１６】
0004736828.tif 000017
【図１７】
0004736828.tif 000018
【図１８】
0004736828.tif 000019
【図１９】
0004736828.tif 000020
【図２０】
0004736828.tif 000021
【図２１】
0004736828.tif 000022