(57)【要約】【課題】診断情報の書き込みができなかった場合や診断情報が消失した場合であっても故障確定の判定を行うことができる電子制御装置を提供すること。【解決手段】ＥＣＵ１０は、ＣＰＵ１、第１不揮発性メモリ５などを備える。ＣＰＵ１は、イグニッションＳＷ４０がオフからオンに切り替わってから自己遮断するまでの診断期間中に異常診断を行うとともに、セルフシャット中に、複数の診断期間の夫々における診断情報を第１不揮発性メモリ５に書き込む。そして、ＣＰＵ１は、今回の診断結果と、第１不揮発性メモリ５に書き込まれた診断情報とに基づいて、異常有りと診断された診断期間の数が判定値の初期値に達したことを条件として故障確定と判定する。さらに、ＣＰＵ１は、前回までの診断期間における診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かの判定を行い、正常に書き込まれていないと判定した場合は、判定値を１に変更する。【選択図】図１
2013222294.tif 000002
【特許請求の範囲】
【請求項１】
メインスイッチがオンの場合は第１電源部から電源供給されて動作可能であるとともに、前記メインスイッチがオンからオフに切り替わるとサブスイッチを介して前記第１電源部から電源供給されて動作可能であり、且つ、前記サブスイッチを介して前記第１電源部から電源供給されている場合、前記サブスイッチをオフに切り替えて前記第１電源部からの電源供給を自己遮断することが可能な電子制御装置であって、
自己遮断後も記憶状態を保持可能な第１メモリ部と、
前記メインスイッチがオフからオンに切り替わってから自己遮断するまでの診断期間中に異常診断を行う診断部と、
前記診断部による異常診断が終わってから自己遮断するまでの間に、複数の診断期間の夫々における前記診断部による診断結果を示す診断情報を前記第１メモリ部に書き込む第１書込部と、
前記診断部による今回の診断結果と、前記第１書込部にて前記第１メモリ部に書き込まれている診断情報とに基づいて、異常有りと診断された診断期間の数が判定値の初期値（２以上）に達したことを条件として故障確定と判定する故障確定判定部と、
前回までの診断期間における診断情報が前記第１メモリ部に正常に書き込まれているか否かの判定を、前記メインスイッチがオフからオンに切り替わってから、前記故障確定判定部による判定の前までに行う書込判定部と、
前記書込判定部にて正常に書き込まれていないと判定された場合は、判定値を１に変更する判定値変更部と、を備え、
前記故障確定判定部は、前記判定値変更部にて判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定することを特徴とする電子制御装置。
【請求項２】
前記書込判定部にて正常に書き込まれていないと判定された回数をカウントするとともに、自己遮断後もカウント値を保持可能なカウント部を備え、
前記判定値変更部は、前記書込判定部にて正常に書き込まれていないと判定されたことに加えて、前記カウント部にて回数がカウントされるたびに、判定値の初期値からカウント値を減算することで、判定値を１に変更することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記書込判定部にて正常に書き込まれていないと判定された回数をカウントするとともに、自己遮断後もカウント値を保持可能なカウント部を備え、
前記判定値変更部は、前記書込判定部にて正常に書き込まれていないと判定されたことに加えて、カウント値が判定値の初期値よりも１少ない数に達したことを条件として、判定値を１に変更することを特徴とする請求項１に記載の電子制御装置。
【請求項４】
前記第１メモリ部は、不揮発性メモリからなり、
前記第１書込部は、前記診断部による異常診断が終わって、前記メインスイッチがオンからオフに切り替わってから、自己遮断するまでの間でのみ、前記第１メモリ部に書き込むことを特徴とする請求項１乃至３のいずれか一項に記載の電子制御装置。
【請求項５】
自己遮断後も記憶状態を保持可能な第２メモリ部を備え、
前記第１書込部は、前記第１メモリ部への診断情報の書き込み要求があったことを示す要求情報を前記第１メモリ部への診断情報の書き込み要求の発生から実際に書き込みを行うまでの期間に前記第２メモリ部に書き込み、前記第１メモリ部への診断情報の書き込みが完了すると要求情報を前記第２メモリ部から消去するものであり、
前記書込判定部は、前記第２メモリ部に要求情報が記憶されていなかった場合、正常に書き込まれていると判定し、前記第２メモリ部に要求情報が記憶されていた場合、正常に書き込まれていないと判定することを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記第１メモリ部は、第２電源部から電源供給されている間は記憶状態を保持可能なものであることを特徴とする請求項１乃至３のいずれか一項に記載の電子制御装置。
【請求項７】
前記第１電源部から電源供給されている期間に、前記第１メモリ部への電源供給が停止したか否かを判定する停止判定部を備え、
前記書込判定部は、前記停止判定部にて前記第１メモリ部への電源供給が停止したと判定されなかった場合、正常に書き込まれていると判定し、前記停止判定部にて前記第１メモリ部への電源供給が停止したと判定された場合、正常に書き込まれていないと判定することを特徴とする請求項６に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自身への電源供給が停止している間、診断情報をメモリに記憶しておく電子制御装置に関するものである。
【背景技術】
【０００２】
従来、電子制御装置の一例として、特許文献１に開示されたものがある。
【０００３】
この電子制御装置は、電源回路を介して電源部（バッテリ）からの電源供給を受ける。電源回路と電源部との間には、メインスイッチ（イグニッションキースイッチ）が介装されている。また、メインスイッチを迂回して電源回路と電源部とを接続する回路には、サブスイッチ（セルフシャットリレースイッチ）が介装されている。このサブスイッチは、電子制御装置から出力される制御信号によって、そのオン、オフが制御される。
【０００４】
電子制御装置は、メインスイッチがオンされると、電源部と電源回路とが電気的に接続され、電源部からの電源供給を受ける。さらに、電子制御装置は、メインスイッチがオフであっても、サブスイッチがオンであれば、電源部と電源回路とが電気的に接続され、電源部からの電源供給を受けることができる。
【０００５】
この電子制御装置は、メインスイッチがオフされると、サブスイッチを介して電源が供給されている間に、電源供給が遮断された後もデータを保持可能な不揮発性メモリ（フラッシュメモリ）にバックアップデータを書き込む。なお、バックアップデータは、電子制御装置が定常処理（メインスイッチがオン中に実行する処理）中にＲＡＭに書き込んだ学習データや診断情報（故障診断情報）などである。
【０００６】
そして、電子制御装置は、不揮発性メモリへの書き込み処理が終了すると、サブスイッチをオフして自身への電源供給を自己遮断する。つまり、電子制御装置は、メインスイッチがオフされてから、サブスイッチをオフして電源供給を自己遮断する間（セルフシャット中）に、バックアップデータをメモリに書き込む。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１４０３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、電子制御装置は、メインスイッチがオフからオンに切り替わってから、自己遮断を行うまでの診断期間中に異常診断を行い、複数の診断期間で異常有りと診断したことを条件として故障確定と判定することが考えられる。例えば、異常有りと診断した診断期間の数が三回に達したことを条件として故障確定と判定する場合（つまり、判定値が三回の場合）、過去２回の診断期間で異常有りと診断しており、今回異常有りと診断すると故障確定と判定する。つまり、過去２回の診断期間における異常有りを示す診断情報がメモリに記憶されており、今回の診断期間で異常有りと診断すると故障確定と判定する。
【０００９】
しかしながら、セルフシャット中にのみ不揮発性メモリに対する診断情報の書き込みを行う場合、診断情報の書き込みが完了する前に、何らかの異常によってサブスイッチがオフしてしまうと、前回までの診断情報の記憶ができなくなってしまう。このように、過去の診断情報が記憶できなかった場合、上述のような故障確定の判定を行うことができない。例えば、上述の例において、過去２回の診断期間で異常有りと診断しているが、異常有りを示す診断情報が記憶できてなかった場合、今回の診断期間で異常有りと診断したとしても故障確定と判定することができない。
【００１０】
また、このような診断情報は、メインスイッチがオフ中であっても、電子制御装置に電源供給を行う電源部とは別の電源部（第２電源部）から電源供給されて記憶状態を保持可能なメモリに記憶しておくことも考えられる。しかしながら、このようなメモリを用いる場合、何らかの異常によって第２電源部からメモリへの電源供給が停止して、メモリに記憶されていた診断情報が消失してしまうことが起こり得る。よって、上述の不揮発性メモリを用いた場合と同様に、故障確定と判定することができない。
【００１１】
本発明は、上記問題点に鑑みなされたものであり、診断情報の書き込みができなかった場合や診断情報が消失した場合であっても故障確定の判定を行うことができる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために請求項１に記載の電子制御装置は、
メインスイッチがオンの場合は第１電源部から電源供給されて動作可能であるとともに、メインスイッチがオンからオフに切り替わるとサブスイッチを介して第１電源部から電源供給されて動作可能であり、且つ、サブスイッチを介して第１電源部から電源供給されている場合、サブスイッチをオフに切り替えて第１電源部からの電源供給を自己遮断することが可能な電子制御装置であって、
自己遮断後も記憶状態を保持可能な第１メモリ部と、
メインスイッチがオフからオンに切り替わってから自己遮断するまでの診断期間中に異常診断を行う診断部と、
診断部による異常診断が終わってから自己遮断するまでの間に、複数の診断期間の夫々における診断部による診断結果を示す診断情報を第１メモリ部に書き込む第１書込部と、
診断部による今回の診断結果と、第１書込部にて第１メモリ部に書き込まれている診断情報とに基づいて、異常有りと診断された診断期間の数が判定値（２以上）に達したことを条件として故障確定と判定する故障確定判定部と、
前回までの診断期間における診断情報が第１メモリ部に正常に書き込まれているか否かの判定を、メインスイッチがオフからオンに切り替わってから、故障確定判定部による判定の前までに行う書込判定部と、
書込判定部にて正常に書き込まれていないと判定された場合は、判定値を１に変更する判定値変更部と、を備え、
故障確定判定部は、判定値変更部にて判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定することを特徴とする。
【００１３】
このように、前回までの診断期間における診断情報が第１メモリ部に正常に書き込まれていないと判定された場合は、判定値を１に変更する。そして、判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定する。例えば、前回までの診断期間における診断情報が第１メモリ部に正常に書き込まれていなかった場合、今回の異常診断において異常有りと診断されたことで故障確定と判定することができる。このようにすることによって、異常有りと診断された診断期間の数が判定値の初期値（２以上）に達したことを条件として故障確定と判定するものにおいて、診断情報の書き込みができなかった場合や診断情報が消失した場合であっても故障確定と判定することができる。
【００１４】
また、請求項２に示すように、
書込判定部にて正常に書き込まれていないと判定された回数をカウントするとともに、自己遮断後もカウント値を保持可能なカウント部を備え、
判定値変更部は、書込判定部にて正常に書き込まれていないと判定されたことに加えて、カウント部にて回数がカウントされるたびに、判定値の初期値からカウント値を減算することで、判定値を１に変更するようにしてもよい。
【００１５】
つまり、カウント部にて回数がカウントされるたびに段階的に判定値を小さくしていって、最終的に判定値を１に変更するようにしてもよい。このようにすることによって、診断情報が正常に書き込まれていないとの判定が１回なされただけで、判定値を１に変更することを抑制できる。よって、判定値が三以上の場合においては、例えばノイズなどによって１回だけ診断情報が正常に書き込まれなかった際に、今回の異常診断において異常有りと診断されたことで故障確定と判定されることを抑制することができる。
【００１６】
また、請求項３に示すように、
書込判定部にて正常に書き込まれていないと判定された回数をカウントするとともに、自己遮断後もカウント値を保持可能なカウント部を備え、
判定値変更部は、書込判定部にて正常に書き込まれていないと判定されたことに加えて、カウント値が判定値の初期値よりも１少ない数に達したことを条件として、判定値を１に変更するようにしてもよい。
【００１７】
このようにすることによって、診断情報が正常に書き込まれていないとの判定が１回なされただけで、判定値を１に変更することを抑制できる。よって、判定値が三以上の場合においては、例えばノイズなどによって１回だけ診断情報が正常に書き込まれなかった際に、今回の異常診断において異常有りと診断されたことで故障確定と判定されることを抑制することができる。
【００１８】
また、請求項４に示すように、
第１メモリ部は、不揮発性メモリからなり、
第１書込部は、診断部による異常診断が終わって、メインスイッチがオンからオフに切り替わってから、自己遮断するまでの間（セルフシャット中）でのみ、第１メモリ部に書き込むようにしてもよい。
【００１９】
このように、第１メモリ部として不揮発性メモリを採用することによって、診断情報を保持するのに電源を必要としないので好ましい。
【００２０】
また、通常、不揮発性メモリは、書き込み可能回数が限られている。よって、第１メモリ部として不揮発性メモリを採用する際には、できるだけ書き込み回数を減らしたい。そこで、請求項４に記載ように、第１書込部は、診断部による異常診断が終わって、セルフシャット中でのみ、第１メモリ部に書き込むようにすると好ましい。このようにすることによって、１回の起動（メインスイッチのオンから次の自己遮断までの間）で、１度だけ第１メモリ部へ書き込むことになる。よって、第１メモリ部への書き込み回数を最小限に抑えることができるので好ましい。
【００２１】
なお、このように、セルフシャット中にのみ不揮発性メモリ（第１メモリ部）に診断情報を書き込む場合、診断情報の書き込みが完了する前に、何らかの異常によってサブスイッチがオフしてしまうと、前回までの診断情報の記憶ができなくなってしまう。しかしながら、本発明においては、第１メモリ部として不揮発性メモリを採用した場合であっても、請求項１で説明したように故障確定を判定することができる。
【００２２】
また、請求項５に示すように、
自己遮断後も記憶状態を保持可能な第２メモリ部を備え、
第１書込部は、第１メモリ部への診断情報の書き込み要求があったことを示す要求情報を第１メモリ部への診断情報の書き込み要求の発生から実際に書き込みを行うまでの期間に第２メモリ部に書き込み、第１メモリ部への診断情報の書き込みが完了すると要求情報を第２メモリ部から消去するものであり、
書込判定部は、第２メモリ部に要求情報が記憶されていなかった場合、正常に書き込まれていると判定し、第２メモリ部に要求情報が記憶されていた場合、正常に書き込まれていないと判定するようにしてもよい。
【００２３】
請求項５においては、要求情報は、第１書込部によって、第２メモリ部に書き込まれるとともに、診断情報の書き込みが完了すると消去される。しかしながら、診断情報の書き込みが完了する前に、何らかの異常によってサブスイッチがオフしてしまうと、この要求情報は第２メモリ部に記憶されたままになる。よって、第２メモリ部に要求情報が記憶されていなかった場合は、正常に書き込まれていると判定することができる。一方、第２メモリ部に要求情報が記憶されていた場合、正常に書き込まれていないと判定することができる。このように、第２メモリ部に要求情報を書き込んだり、消去したりするとともに、第２メモリ部に要求情報が記憶されているか否かを確認するだけなので、診断情報が第１メモリ部に正常に書き込まれているか否かの判定を容易に行うことができる。
【００２４】
また、請求項６に示すように、第１メモリ部は、第２電源部から電源が供給されている間は記憶状態を保持可能なものを採用してもよい。
【００２５】
このように、第１メモリ部としては、第２電源部から電源が供給されている間は記憶状態を保持可能なもの（揮発性メモリ）を採用することもできる。ただし、揮発性メモリは、第２電源部から電源供給が停止してしまうと、前回までの診断情報の記憶ができなくなってしまう。しかしながら、本発明においては、第１メモリ部として揮発性メモリを採用した場合であっても、請求項１で説明したように故障確定を判定することができる。
【００２６】
また、請求項７に示すように、
第１電源部から電源供給されている期間に、第１メモリ部への電源供給が停止したか否かを判定する停止判定部を備え、
書込判定部は、停止判定部にて第１メモリ部への電源供給が停止したと判定されなかった場合、正常に書き込まれていると判定し、停止判定部にて第１メモリ部への電源供給が停止したと判定された場合、正常に書き込まれていないと判定するようにしてもよい。
【００２７】
第１メモリ部は、揮発性メモリであるため、自身への電源供給が停止すると、記憶内容を保持することができない。よって、第１メモリ部への電源供給が停止したと判定されなかった場合は、正常に書き込まれていると判定することができる。一方、第１メモリ部への電源供給が停止したと判定された場合は、正常に書き込まれていないと判定することができる。このように、第１メモリ部への電源供給が停止したか否かを確認するだけなので、診断情報が第１メモリ部に正常に書き込まれているか否かの判定を容易に行うことができる。
【図面の簡単な説明】
【００２８】
【図１】電子制御装置の概略構成を示すブロック図である。
【図２】電子制御装置における周期実行する処理を示すフローチャートである。
【図３】電子制御装置における起動時の処理を示すフローチャートである。
【図４】電子制御装置における故障確定処理を示すフローチャートである。
【図５】実施形態における電子制御装置の処理動作を示すタイムチャートである。
【図６】変形例１における電子制御装置の処理動作を示すタイムチャートである。
【図７】変形例２における電子制御装置の処理動作を示すタイムチャートである。
【図８】比較例における電子制御装置の処理動作（正常書き込み時）を示すタイムチャートである。
【図９】比較例における電子制御装置の処理動作（異常書き込み時）を示すタイムチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図に基づいて説明する。本実施形態においては、本発明の電子制御装置を車両のエンジン制御などを行うエンジンＥＣＵ（Electronic Control Unit、以下単にＥＣＵとも称する）１０に適用した例を採用する。しかしながら、本発明の電子制御装置は、これらに限定されるものではない。例えば、ハイブリッド自動車のモータ制御などを行うハイブリッドＥＣＵや、車両以外に搭載される電子制御装置などに適用することもできる。
【００３０】
図１に示すように、ＥＣＵ１０は、主に、ＣＰＵ（CentralProcessing Unit）１、Ｉ／Ｏ（Input/Output）２、ＲＡＭ（Random Access Memory）３、プログラムＲＯＭ（Read Only Memory）４、第１不揮発性メモリ５、第２不揮発性メモリ６を備えて構成されている。このＥＣＵ１０は、電源回路２０及びイグニッションＳＷ（switch）４０を介してバッテリ３０と電気的に接続可能であり、且つ、電源回路２０及びリレーＳＷ５０を介してバッテリ３０と電気的に接続可能である。
【００３１】
そして、ＥＣＵ１０は、イグニッションＳＷ４０と電源回路２０、又はリレーＳＷ５０と電源回路２０を介してバッテリ３０から電源供給されている状態で動作可能である。なお、イグニッションＳＷ４０は、ユーザによって操作されることで、オンからオフ及びオフからオンに切り替わる。一方、リレーＳＷ５０は、後ほど説明するが、ＣＰＵ１からの指示によって、オンからオフ及びオフからオンに切り替わる。
【００３２】
より詳細には、ＥＣＵ１０は、イグニッションＳＷ４０がオンの場合は、イグニッションＳＷ４０及び電源回路２０を介してバッテリ３０から電源供給されて動作可能である。言い換えると、ＥＣＵ１０は、イグニッションＳＷ４０がオフからオンに切り替わることで起動する。また、ＥＣＵ１０は、イグニッションＳＷ４０がオンからオフに切り替わったとしても、リレーＳＷ５０がオンの場合は、リレーＳＷ５０及び電源回路２０を介してバッテリ３０から電源供給されて動作可能である。つまり、ＥＣＵ１０は、イグニッションＳＷ４０がオンからオフに切り替わるとリレーＳＷ５０及び電源回路２０を介してバッテリ３０から電源供給されて動作可能である。そして、ＥＣＵ１０は、イグニッションＳＷ４０がオフであり、且つ、リレーＳＷ５０がオフの場合に、バッテリ３０から電源供給が停止されて動作不可（動作停止状態）になる。なお、バッテリ３０からＥＣＵ１０への電源供給を電源オン、バッテリ３０からＥＣＵ１０への電源供給の停止を電源オフとも称する。
【００３３】
なお、バッテリ３０は、特許請求の範囲における第１電源部に相当するものである。また、イグニッションＳＷ４０は、特許請求の範囲におけるメインスイッチに相当するものである。また、リレーＳＷ５０は、特許請求の範囲におけるサブスイッチに相当するものである。
【００３４】
ＣＰＵ１は、バッテリ３０からの電源供給がなされている間、プログラムＲＯＭ４に記憶されているプログラムを実行することにより、ＲＡＭ３の一時記憶機能を利用しつつ各種演算処理を行うことで各種制御を実行する。ＣＰＵ１が実行する制御の一例としては、上述のリレーＳＷ５０に対するオン及びオフの指示、第１不揮発性メモリ５に対するデータの書き込み、第１不揮発性メモリ５からのデータの読み込みなどである。
【００３５】
また、ＣＰＵ１は、Ｉ／Ｏ２を介してイグニッションＳＷ４０のオン及びオフを示すＩＧ信号が入力される。よって、ＣＰＵ１は、イグニッションＳＷ４０がオンであるかオフであるかを認識することが可能である。
【００３６】
また、ＣＰＵ１は、Ｉ／Ｏ２を介してリレーＳＷ５０に、オンからオフへの切り替え、及びオフからオンへの切り替えを指示することが可能である。例えば、ＣＰＵ１は、イグニッションＳＷ４０がオンからオフに切り替わった時点でＥＣＵ１０への電源供給が停止することを防止するために、イグニッションＳＷ４０がオンである間に、リレーＳＷ５０に対してオン状態を保持するように指示する（保持要求）。つまり、ＣＰＵ１は、イグニッションＳＷ４０がオンである間に、リレーＳＷ５０に対してオフからオンへの切り替えを指示する。また、ＣＰＵ１は、イグニッションＳＷ４０がオフであり、リレーＳＷ５０を介してバッテリ３０から電源供給されている場合、リレーＳＷ５０をオフに切り替えてバッテリ３０からの電源供給を自己遮断することが可能である。
【００３７】
なお、イグニッションＳＷ４０がオンからオフに切り替わってから、自己遮断するまでに行う処理をセルフシャット処理とも称する。また、イグニッションＳＷ４０がオンからオフに切り替わってから、自己遮断するまでの間をセルフシャット中とも称する。
【００３８】
また、ＣＰＵ１は、Ｉ／Ｏ２を介して各種センサ（冷却水温センサなど）からの信号を取得するとともに、Ｉ／Ｏ２を介して各種アクチュエータ（インジェクタのソレノイドコイルなど）や、インジケータ６０に制御信号を出力する。このインジケータ６０は、後ほど説明する、故障確定時に、ユーザに故障確定を知らせるためのものである。よって、インジケータ６０は、ＭＩＬ(Malfunction Indicator Lamp)と言い換えることもできる。
【００３９】
ＲＡＭ３は、ＣＰＵ１がプログラム実行中のデータを保持（記憶）するための揮発性メモリである。つまり、ＲＡＭ３は、電源オン中にのみ、データを保持することが可能なメモリである。また、プログラムＲＯＭ４は、プログラムが格納（記憶）されている不揮発性メモリである。つまり、プログラムＲＯＭ４は、自己遮断（電源オフ）後も記憶状態を保持可能なメモリである。
【００４０】
第１不揮発性メモリ５は、特許請求の範囲における第１メモリ部に相当するものであり、データの書き換えを複数回行うことが可能な不揮発性メモリである。つまり、第１不揮発性メモリ５は、自己遮断後も記憶状態を保持可能なメモリである。上述のようにＲＡＭ３は、揮発性メモリである。よって、ＲＡＭ３に記憶されているデータは、電源オフすると失われてしまう。そこで、第１不揮発性メモリ５は、電源オフしている間、ＲＡＭ３に記憶されていたデータを保持（記憶）しておくためのものである。この第１不揮発性メモリ５に記憶しておくデータの具体例は、例えば後ほど説明する診断情報などである。
【００４１】
なお、ＣＰＵ１は、電源オフしている間はプログラムの実行を停止（以下、単にプログラム停止とも称する）する。よって、第１不揮発性メモリ５は、プログラム停止している間に、ＲＡＭ３に記憶されていたデータを保持するためのメモリとも言い換えることができる。さらに、第１不揮発性メモリ５は、バックアップ用又は退避用のメモリとも言い換えることができる。
【００４２】
第２不揮発性メモリ６は、特許請求の範囲における第２メモリ部に相当するものであり、第１不揮発性メモリ５と同様に、データの書き換えを複数回行うことが可能な不揮発性メモリである。つまり、第２不揮発性メモリ６は、自己遮断後も記憶状態を保持可能なメモリである。この第２不揮発性メモリ６に記憶しておくデータの具体例は、例えば後ほど説明する要求情報などである。
【００４３】
より詳細には、第１不揮発性メモリ５は、第２不揮発性メモリ６よりも記憶容量が大きいものである。また、第１不揮発性メモリ５は、セルフシャット中にのみ書き込みが可能であるのに対して、第２不揮発性メモリ６は、即時（随時）書き込みが可能である。
【００４４】
なお、第１不揮発性メモリ５と第２不揮発性メモリ６とは、個別の不揮発性メモリであってもよいし、同じ不揮発性メモリの異なる領域であってもよい。また、プログラムＲＯＭ４、第１不揮発性メモリ５及び第２不揮発性メモリ６としては、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable ReadOnly Memory）やフラッシュＲＯＭなどを採用することができる。
【００４５】
ここで、図２乃至図５を用いつつ、ＥＣＵ１０（ＣＰＵ１）の主な処理動作に関して説明する。
【００４６】
まず、先に説明しておくが、本実施形態におけるＣＰＵ１は、イグニッションＳＷ４０がオフからオンに切り替わってから自己遮断するまでの診断期間中に異常診断を行うものである（診断部）。なお、ＣＰＵ１は、イグニッションＳＷ４０がオフからオンに切り替わってから自己遮断する前までの診断期間中に異常診断を行うものであってもよい（診断部）。
【００４７】
ＣＰＵ１は、Ｉ／Ｏ２を介して取得した各種センサからの信号に基づいて異常診断を行う。しかしながら、ＣＰＵ１は、異常有りと１回診断しただけでは、故障確定と判定するわけではない。つまり、ＣＰＵ１は、異常有りと１回診断しただけでは、インジケータ６０によってユーザに故障確定を知らせるわけではない。
【００４８】
本実施形態におけるＣＰＵ１は、異常有りと診断された診断期間（異常有りとの診断結果が得られた診断期間）の数が異常確定サイクル数（２以上）に達したことを条件として故障確定と判定する（故障確定判定部）。つまり、異常有りと診断された診断期間の数が異常確定サイクル数に達したことを条件として、インジケータ６０によってユーザに故障確定を知らせる。
【００４９】
より具体的には、ＣＰＵ１は、診断期間中に異常有りと診断した場合、異常サイクルカウンタのカウント値をインクリメント（プラス１）する。ただし、ＣＰＵ１は、１度の診断期間中に異常有りと複数回診断した場合であっても、異常サイクルカウンタのカウント値を１回だけインクリメント（プラス１）する。この異常サイクルカウンタのカウント値は、異常有りとの診断結果が得られた診断期間の数に相当する。そして、ＣＰＵ１は、異常サイクルカウンタのカウント値が異常確定サイクル数に達したことを条件として故障確定と判定する（故障確定判定部）。
【００５０】
なお、異常確定サイクル数は、特許請求の範囲における判定値に相当するものであり、以下の説明においては判定値とも称する。また、異常有りとの診断結果が得られた診断期間を異常期間とも称する。よって、言い換えると、ＣＰＵ１は、異常期間の数が判定値に達したことを条件として故障確定と判定する。
【００５１】
さらに、この診断期間は、ドライビングサイクルと置き換えることが可能である。よって、ＣＰＵ１は、異常有りと診断されたドライビングサイクル数が、判定値に達したことを条件として故障確定と判定すると言い換えることもできる。また、異常有りとの診断結果が得られたドライビングサイクルを異常サイクルとも称する。よって、ＣＰＵ１は、異常サイクルの数が判定値に達したことを条件として故障確定と判定すると言い換えることができる。なお、異常サイクルと異常期間とは、略同等の期間を示すものであり、互いに置き換えることが可能である。
【００５２】
なお、ドライビングサイクルとは、ＥＣＵ１０における１回以上のセルフシャットを含むサイクルである。より詳細には、本実施形態におけるドライビングサイクルとは、イグニッションＳＷ４０がオフからオンに切り替わってから、エンジン回転数が所定値に達したことを経験した後、次にイグニッションＳＷ４０がオフからオンに切り替わるまでの期間を示すものである。従って、毎回のイグニッションＳＷがオンの期間に必ずエンジンが所定回転数以上に達する場合においても、必ず１回のセルフシャットを含むことになり、また、エンジンが所定回転数に達しなかった場合においても、イグニッションＳＷがオフされる毎にセルフシャット処理は行われるため、１回以上のセルフシャットを含むことになる。
【００５３】
また、連続する異常サイクルの数（又は異常期間の数）が、判定値に達したことを条件として故障確定と判定するようにしてもよい。なお、本実施形態においては、一例として、異常サイクル（又は異常期間）が３回連続した場合に故障確定と判定する例を採用する。つまり、判定値の初期値として「３」を一例として採用する。
【００５４】
次に、図２に基づいて、ＥＣＵ１０（ＣＰＵ１）が周期実行する処理に関して説明する。ＥＣＵ１０のＣＰＵ１は、イグニッションＳＷ４０がオフからオンに切り替わると図２のフローチャートで示す処理をスタートする。なお、ＣＰＵ１は、図２のフローチャートで示す処理をスタートした時点でリレーＳＷ５０に対して保持要求をしているものとする。
【００５５】
ステップＳ１０では、Ｉ／Ｏ２を介して取得したＩＧ信号に基づいて、キーオンであるか否か（すなわち、イグニッションＳＷ４０がオンであるか否か）を判定する。そして、イグニッションＳＷ４０がオンであることを示すＩＧ信号が入力されている場合はキーオンと判定してステップＳ１１へ進み、イグニッションＳＷ４０がオフであることを示すＩＧ信号が入力されている場合はキーオンでないと判定してステップＳ１２へ進む。
【００５６】
ステップＳ１１では、書き込み要求セット処理を行う。この書き込み要求セット処理では、ＣＰＵ１は、メモリ異常カウンタをインクリメントする。ただし、イグニッションＳＷ４０がオンになってから次にオフになるまでのキーサイクルにおいて、１度だけインクリメントする。
【００５７】
なお、ＣＰＵ１は、自己遮断後もメモリ異常カウンタのカウント値が保持されるようにするため、メモリ異常カウンタのカウント値を第２不揮発性メモリ６に書き込む。このように、本実施形態においては、メモリ異常カウンタのカウント値を第２不揮発性メモリ６に書き込む例を採用しているが、本発明はこれに限定されるものではない。自己遮断後もメモリ異常カウンタのカウント値が保持可能であればよい。
【００５８】
また、後ほど説明するが、ＣＰＵ１は、セルフシャット中に、複数の診断期間の夫々における診断結果を示す診断情報を第１不揮発性メモリ５に書き込むものである。メモリ異常カウンタは、この診断情報が正常に第１不揮発性メモリ５に書き込まれたか否かを判定するためのものである。
【００５９】
このように、ＣＰＵ１は、セルフシャット中に必ず診断情報を第１不揮発性メモリ５に書き込むものである。また、セルフシャット処理を行う前には、必ずイグニッションＳＷ４０がオン（キーオン）になっているはずである。よって、イグニッションＳＷ４０がオン（キーオン）になったことを、診断情報の書き込み要求がなされたとみなすことができる。従って、ＣＰＵ１は、診断情報の第１不揮発性メモリ５への書き込み要求があった場合に、要求情報を第２不揮発性メモリ６に書き込む（すなわち、メモリ異常カウンタをインクリメントする）と言い換えることができる。なお、このメモリ異常カウンタの各カウント値は、特許請求の範囲における要求情報に相当するものである。
【００６０】
また、第１不揮発性メモリ５へ書き込むべき診断情報を更新することは、第１不揮発性メモリ５の更新（書き込み）と同等の意味である。よって、イグニッションＳＷ４０がオンになっている期間において継続的に診断が行われる装置においてはイグニッションＳＷ４０がオン（キーオン）になったことを、更新要求の発生とみなすこともできる。従って、要求情報は、更新要求の発生を示す情報と言い換えることもできる。
【００６１】
ステップＳ１２では、更新要求発生の有無を確認する。本実施例においてはイグニションＳＷ４０がオンになったことを更新要求の発生とみなすものである。よって、本ステップ１２では、キーオフであるか否かを判定する（つまり、イグニッションＳＷ４０がオフであることを条件とする）。ＣＰＵ１は、Ｉ／Ｏ２を介して取得したＩＧ信号に基づいて、キーオフであるか否か（すなわち、イグニッションＳＷ４０がオフであるか否か）を判定する。そして、キーオンと判定した場合はステップＳ１２に戻る。一方、キーオフと判定した場合はステップＳ１３へ進む。なお、更新要求の発生に別の条件を適用する場合、キーオフに加えてそれらの条件によって更新要求の発生を判定する。また、ＣＰＵ１は、このようにキーオフになると、セルフシャット処理を開始する。なお、ＣＰＵ１は、リレーＳＷ５０に対して保持要求を行っているので、キーオフになったとしても、リレーＳＷ５０を介してバッテリ３０から電源供給がなされる。
【００６２】
ステップＳ１３では、書き込み処理を行う。ＣＰＵ１は、セルフシャット中に、複数の診断期間の夫々における診断結果を示す診断情報を第１不揮発性メモリ５に書き込む。つまり、今回の診断期間中における診断結果を示す診断情報と、過去の複数の診断期間中における診断結果を示す診断情報の夫々を第１不揮発性メモリ５に書き込む。このように、ＣＰＵ１は、診断情報の書き込み要求があった場合に、診断情報を第１メモリ部に書き込む（第１書込部）。より詳細には、ＣＰＵ１は、異常診断が終わって、イグニッションＳＷ４０がオンからオフに切り替わってから、自己遮断するまでの間（すなわち、セルフシャット中）でのみ、診断情報を第１メモリ部に書き込む。
【００６３】
このように、第１メモリ部として第１不揮発性メモリ５を採用することによって、診断情報を保持するのに電源を必要としないので好ましい。また、通常、不揮発性メモリは、書き込み可能回数が限られている。つまり、不揮発性メモリは、書き込み回数が増えるにつれて、データ保持可能時間（書き込まれたデータを保持し続けることができる時間）が減少する特性がある。
【００６４】
よって、第１メモリ部として第１不揮発性メモリ５を採用する際には、できるだけ書き込み回数を減らしたい。そこで、本実施形態のように、ＣＰＵ１は、異常診断が終わって、セルフシャット中にのみ、第１不揮発性メモリ５に診断情報を書き込むようにすると好ましい。このようにすることによって、１回の起動（イグニッションＳＷ４０のオンから次の自己遮断までの間）で、１度だけ第１不揮発性メモリ５へ書き込むことになる。よって、第１不揮発性メモリ５への書き込み回数を最小限に抑えることができるので好ましい。
【００６５】
ステップＳ１４では、書き込みが完了したか否かを判定する。ＣＰＵ１は、第１不揮発性メモリ５への診断情報の書き込みが完了したか否かを判定する。つまり、ＣＰＵ１は、ステップＳ１３での書き込み処理が完了したか否かを判定する。言い換えると、ＣＰＵ１は、第１不揮発性メモリ５における診断情報が正常に全て書き換わったか否かを判定する。この書き込みが完了したか否かの判定方法は、特に限定されるものではない。例えば、書き込み処理が最後まで行われたか否かなどによって判定することができる。
【００６６】
ステップＳ１５では、書き込み要求リセット処理を行う。この書き込み要求リセット処理では、メモリ異常カウンタをクリアする。つまり、ＣＰＵ１は、第１不揮発性メモリ５への診断情報の書き込みが完了すると、第２不揮発性メモリ６に書き込んでいたメモリ異常カウンタのカウント値を消去する（第１書込部）。
【００６７】
ステップＳ１６では、セルフシャット処理終了許可とする。ＣＰＵ１は、リレーＳＷ５０に対してオンからオフに切り替わるように指示する。つまり、ＣＰＵ１は、リレーＳＷ５０に対する保持要求を解除する。これによって、ＥＣＵ１０は、バッテリ３０からの電源供給を自身で停止させる（自己遮断する）。
【００６８】
ところで、本実施形態のように、セルフシャット中にのみ第１不揮発性メモリ５に診断情報を書き込む場合、診断情報の書き込みが完了する前に、何らかの異常によってリレーＳＷ５０がオフしてしまうと、前回までの診断情報の書き込み（記憶）ができなくなってしまう（言い換えると、診断情報の書き込みに失敗してしまう）。このような場合、第２不揮発性メモリ６に書き込んでいたメモリ異常カウンタのカウント値は消去されないまま、自己遮断してしまうことになる。よって、次回の起動時には、第２不揮発性メモリ６に書き込んでいたメモリ異常カウンタのカウント値が記憶された状態になる。
【００６９】
さらに、診断情報の記憶の失敗を繰り返すと、メモリ異常カウンタのカウント値がカウントアップされていく。従って、第２不揮発性メモリ６に書き込まれたメモリ異常カウンタのカウント値から、診断情報の記憶の失敗回数がわかる。このように、ＣＰＵ１のメモリ異常カウンタは、診断情報が正常に書き込まれていないと判定された回数をカウントするものと言い換えることができる。よって、ＣＰＵ１のメモリ異常カウンタは、特許請求の範囲におけるカウント部に相当するものである。
【００７０】
次に、図３に基づいて、ＥＣＵ１０の起動時に実行する処理に関して説明する。ＥＣＵ１０のＣＰＵ１は、イグニッションＳＷ４０がオフからオンに切り替わってから、故障確定の判定を行う前までに、図３のフローチャートで示す処理を一度だけ実行する。
【００７１】
ステップＳ２０では、メモリ異常カウンタ読み出し処理を行う。ＣＰＵ１は、第２不揮発性メモリ６に記憶されているメモリ異常カウンタのカウント値を読み出す。
【００７２】
ステップＳ２１では、メモリ異常カウンタのカウント値が０（ゼロ）であるか否かを判定する。これは、前回までの診断期間における診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かを判定するためである（書込判定部）。
【００７３】
そして、ＣＰＵ１は、メモリ異常カウンタのカウント値が０であると判定した場合は、前回のセルフシャット中に、診断情報が第１不揮発性メモリ５に正常に書き込まれているとみなしてステップＳ２２へ進む。なお、メモリ異常カウンタのカウント値が０ということは、第２不揮発性メモリ６に要求情報が記憶されていないことと同様である。よって、言い換えると、ＣＰＵ１は、第２不揮発性メモリ６に要求情報が記憶されていなかった場合、診断情報が第１不揮発性メモリ５に正常に書き込まれていると判定する（書込判定部）。
【００７４】
一方、ＣＰＵ１は、メモリ異常カウンタのカウント値が０でないと判定した場合は、前回のセルフシャット中に、診断情報が第１不揮発性メモリ５に正常に書き込まれていないとみなしてステップＳ２３へ進む。なお、メモリ異常カウンタのカウント値が０でないということは、第２不揮発性メモリ６に要求情報が記憶されていることと同様である。よって、言い換えると、ＣＰＵ１は、第２不揮発性メモリ６に要求情報が記憶されていた場合、診断情報が第１不揮発性メモリ５に正常に書き込まれていないと判定する（書込判定部）。
【００７５】
このように、ＣＰＵ１は、前回までの診断期間における診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かの判定を、イグニッションＳＷ４０がオフからオンに切り替わってから、故障確定の判定前までに行う（書込判定部）。
【００７６】
ステップＳ２２では、診断制御ステータスを通常時判定制御とする。このとき、ＣＰＵ１は、診断制御ステータス（通常時判定制御）を第２不揮発性メモリ６やレジスタ（図示省略）などに書き込む。ただし、ＣＰＵ１は、判定値の変更処理は行わない。
【００７７】
ステップＳ２３では、ＣＰＵ１は、診断制御ステータスを異常時判定制御とする。このとき、ＣＰＵ１は、診断制御ステータス（異常時判定制御）を第２不揮発性メモリ６やレジスタ（図示省略）などに書き込むとともに、判定値の変更処理を行う。ＣＰＵ１は、正常に書き込まれていないと判定した場合、判定値を１に変更する（判定値変更部）。しかしながら、本実施形態においては、正常に書き込まれていないと判定されたことに加えて、メモリ異常カウンタにて回数がカウントされるたびに、判定値の初期値からメモリ異常カウンタのカウント値を減算することで、判定値を１に変更する（判定値変更部）。つまり、メモリ異常カウンタにて回数がカウントされるたびに段階的に判定値を小さくしていって、最終的に判定値を１に変更する。このように、ＣＰＵ１は、第１不揮発性メモリ５に診断情報が記憶されなかった回数に応じて、ドライビングサイクル単位の判定値を変更する。例えば、今回のメモリ異常カウンタのカウント値が１の場合、判定値の初期値３から１を減算して、判定値を２に変更する。また、今回のメモリ異常カウンタのカウント値が２の場合、判定値の初期値３から２を減算して、判定値を１に変更する。
【００７８】
次に、図４に基づいて、ＥＣＵ１０（ＣＰＵ１）における故障確定処理に関して説明する。ＥＣＵ１０のＣＰＵ１は、異常診断を行い、異常有りとの診断結果が得られると、図４のフローチャートで示す処理を実行する。
【００７９】
ステップＳ３０では、通常時判定制御での判定値を読み出す。ＣＰＵ１は、例えばプログラムＲＯＭ４などから、判定値の初期値（３）を読み出す。
【００８０】
ステップＳ３１では、判定値を確認する。そして、ステップＳ３１では、ＣＰＵ１は、判定値が２以上であるか否かを判定する。つまり、異常サイクル（異常期間）の数が２以上で故障確定とみなすか、異常サイクル（異常期間）の数が１で故障確定とみなすかを判定する。２以上と判定した場合はステップＳ３３へ進み、２以上でないと判定した場合は、この時点で故障確定であるためステップＳ３８へ進む。
【００８１】
ステップＳ３３では、診断制御ステータスを確認する。ＣＰＵ１は、図３のステップＳ２２又はＳ２３で設定された診断制御ステータスを確認する。つまり、ＣＰＵ１は、第２不揮発性メモリ６又はレジスタなどに記憶された診断制御ステータスを確認する。
【００８２】
ステップＳ３４では、診断制御ステータスが異常時判定制御であるか否かを判定する。そして、異常時判定制御であると判定した場合はステップＳ３５へ進み、異常時判定制御でないと判定した場合はステップＳ３６へ進む。
【００８３】
ステップＳ３５では、異常時判定制御での判定値を設定する。ＣＰＵ１は、図３のステップＳ２３で変更された値を判定値として設定する。なお、このように、本実施形態においては、異常有りとの診断結果が得られた後に、判定値を変更する例を採用している。しかしながら、本発明はこれに限定されるものではない。異常有りとの診断結果が得られる前（例えばキーオン時）に、判定値を変更しておいてもよい。また、後ほど説明する変形例においても、異常有りとの診断結果が得られる前に、判定値を変更しておいてもよい。
【００８４】
ステップＳ３６では、異常確定か否かを判定する。ＣＰＵ１は、今回の診断結果と、第１不揮発性メモリ５に書き込まれた診断情報とに基づいて、異常期間の数を算出する。なお、上述のように、この図４のフローチャートは、異常有りとの結果が得られた場合にスタートするものである。よって、今回の診断期間は異常期間である。従って、例えば、第１不揮発性メモリ５に書き込まれた診断情報が過去に２回の異常期間があったことを示すものである場合、異常期間の数は３になる。また、例えば、第１不揮発性メモリ５に書き込まれた診断情報が過去に異常期間がなかったことを示すものである場合、異常期間の数は１になる。
【００８５】
そして、ＣＰＵ１は、異常期間の数が判定値（変更後の判定値）に達してない場合は異常確定でないと判定してステップＳ３７へ進み、異常期間の数が判定値（変更後の判定値）に達した場合は異常確定と判定してステップＳ３８へ進む。このように、ＣＰＵ１は、今回の診断結果と、第１不揮発性メモリ５に書き込まれている診断情報とに基づいて、異常有りと診断された診断期間の数が判定値（変更後の判定値）に達しているか否かを判定する。そして、ＣＰＵ１は、異常有りと診断された診断期間の数が判定値（変更後の判定値）に達したことを条件として故障確定と判定する（故障確定判定部）。よって、ＣＰＵ１は、判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定する（故障確定判定部）。つまり、ＣＰＵ１は、今回の異常有り判定のみで、故障確定と判定する。
【００８６】
ステップＳ３７では、仮故障処理を実行する。このとき、ＣＰＵ１は、変更後の判定値に対して何回目の異常有り判定であるかを、例えば第１不揮発性メモリ５もしくは第１不揮発性メモリに書き込むデータを一時的に記憶しているＲＡＭ３などに記憶する。なお、この仮故障の状態は、複数回の診断期間での異常有り判定を経て故障確定とするシステムにおいて、異常有りと診断されているが、異常期間の数が判定値に達してない状態である。言い換えると、正常状態から故障確定までの中間の状態である。この仮故障の状態では、まだインジケータ６０の点灯は行わない。
【００８７】
ステップＳ３８では、確定故障処理を実行する。このとき、ＣＰＵ１は、インジケータ６０に対して点灯指示を行い、インジケータ６０を点灯させて、ユーザに故障確定を知らせる。なお、本実施形態においては、確定故障処理として、インジケータ６０を点灯させる例を採用しているが、本発明はこれに限定されるものではない。確定故障処理として、フェールセーフを行うようにしてもよい。
【００８８】
ここで図５、図８、図９のタイムチャートを用いて、ＥＣＵ１０の処理動作を、比較例におけるＥＣＵの処理動作と比較しながら説明する。なお、比較例におけるＥＣＵ（ＣＰＵ）は、イグニッションＳＷがオフからオンに切り替わってから自己遮断するまでの診断期間中に異常診断を行うものである。また、セルフシャット中にのみ診断情報を不揮発性メモリ（本願の第１不揮発性メモリ５に相当する）に書き込む。そして、異常有りと診断された診断期間の数が異常確定サイクル数（２以上、ここでは３）に達したことを条件として故障確定と判定する。しかしながら、比較例におけるＥＣＵは、判定値の変更は行わないものである。つまり、比較例におけるＥＣＵ（ＣＰＵ）は、判定値の変更を行わないこと以外は、ＥＣＵ１０と同様である。また、図８は、比較例におけるＥＣＵにおいて、診断情報が不揮発性メモリに正常に書き込まれていた場合の処理動作を示すタイムチャートである。図９は、比較例におけるＥＣＵにおいて、不揮発性メモリへの診断情報の書き込みに失敗した場合の処理動作を示すタイムチャートである。
【００８９】
図８に示すように、比較例のＥＣＵは、１回目、２回目のドライビングサイクルにおいて異常有りとの診断結果を得た場合、３回目のドライビングサイクル中に異常有りとの診断結果を得ると、異常サイクルカウンタのカウント値が３になる。よって、比較例のＥＣＵは、３回目のドライビングサイクル中に異常有りとの診断結果を得ると、故障確定と判定する。また、故障確定と判定することによって、インジケータを点灯させて、ユーザに故障確定と知らせることができる。
【００９０】
一方、図９に示すように、不揮発性メモリへの診断情報の書き込に失敗した場合、異常サイクルカウンタのカウント値が１から増加しない。よって、比較例のＥＣＵは、３回目のドライビングサイクル中に異常有りとの診断結果を得たとしても故障確定と判定できない。よって、インジケータを点灯させて、ユーザに故障確定を知らせることができない。
【００９１】
これに対して、図５に示すように、ＥＣＵ１０のＣＰＵ１は、１回目のドライビングサイクルで異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込に失敗した場合、メモリ異常カウンタのカウント値を１とする。つまり、メモリ異常カウンタのカウント値１が記憶された状態になる。よって、ＣＰＵ１は、判定値の初期値３からメモリ異常カウンタのカウント値１を減算して、２回目のドライビングサイクルで異常有りと診断された際の判定値を２に変更する。なお、ＥＣＵ１０のＣＰＵ１は、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込が完了した場合、メモリ異常カウンタのカウント値を０とする（クリアする）。
【００９２】
次に、ＣＰＵ１は、２回目のドライビングサイクルにおいても異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込に失敗した場合、メモリ異常カウンタのカウント値を２とする。つまり、メモリ異常カウンタのカウント値２が記憶された状態になる。よって、ＣＰＵ１は、判定値の初期値３からメモリ異常カウンタのカウント値２を減算して、３回目のドライビングサイクルで異常有りと診断された際の判定値を１に変更する。なお、ＥＣＵ１０のＣＰＵ１は、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込が完了した場合、メモリ異常カウンタのカウント値を０とする（クリアする）。
【００９３】
さらに、ＣＰＵ１は、３回目のドライビングサイクルにおいても異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込に失敗した場合、メモリ異常カウンタのカウント値を３とするつまり、メモリ異常カウンタのカウント値３が記憶された状態になる。よって、ＣＰＵ１は、判定値の初期値３からメモリ異常カウンタのカウント値３を減算する。しかしながら、判定値の下限値は１であるため、４回目のドライビングサイクルで異常有りと診断された際の判定値は１のままとする。このようにすることよって、異常サイクルカウンタのカウント値が判定値に達していなくても、３回目のドライビングサイクルにおいて異常有りと診断した場合、故障確定と判定することができる。
【００９４】
このように、ＥＣＵ１０は、前回までの診断期間における診断情報が第１不揮発性メモリ５に正常に書き込まれていないと判定された場合は、判定値を１に変更する。そして、判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定する。このようにすることによって、異常有りと診断された診断期間の数が判定値の初期値（２以上）に達したことを条件として故障確定と判定するものにおいて、診断情報の書き込みができなかった場合であっても故障確定と判定することができる。従って、診断情報の書き込みができなかった場合であっても、インジケータ６０の点灯やフェールセーフなどを実行することができる。
【００９５】
また、本実施形態においては、上述のように、段階的に判定値を小さくしていって、最終的に判定値を１に変更するので、診断情報が正常に書き込まれていないとの判定が一回なされただけで、判定値を１に変更することを抑制できる。よって、判定値が３以上の場合においては、例えばノイズなどによって１回だけ診断情報が正常に書き込まれなかった際に、今回の異常診断において異常有りと診断されたことで故障確定と判定されることを抑制することができる。
【００９６】
また、本実施形態においては、上述のように、要求情報（メモリ異常カウンタのカウント値）は、第２不揮発性メモリ６に書き込まれるとともに、診断情報の書き込みが完了すると第２不揮発性メモリ６から消去される。しかしながら、診断情報の書き込みが完了する前に、何らかの異常によってリレーＳＷ５０がオフしてしまうと、この要求情報は第２不揮発性メモリ６に記憶されたままになる。よって、第２不揮発性メモリ６に要求信号が記憶されていなかった場合は、正常に書き込まれていると判定することができる。一方、第２不揮発性メモリ６に要求信号が記憶されていた場合、正常に書き込まれていないと判定することができる。
【００９７】
このように、第２不揮発性メモリ６に要求情報（メモリ異常カウンタのカウント値）を書き込んだり、消去したりするとともに、第２不揮発性メモリ６に要求情報が記憶されているか否かを確認するだけなので、診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かの判定を容易に行うことができる。
【００９８】
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
【００９９】
（変形例１）
ここで変形例１の電子制御装置に関して説明する。上述の実施形態においては、判定値を変更する際に、判定値の初期値からメモリ異常カウンタのカウント値を減算していって、判定値を１にする例を採用したが、本発明はこれに限定されるものではない。なお、変形例１のＥＣＵ１０と、上述の実施形態のＥＣＵ１０とは、判定値の変更方法が異なるだけであり、その他の処理や構成は同様である。よって、変形例１におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）と同じ符号を付与して説明する。つまり、変形例１におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）を用いて説明する。
【０１００】
変形例１におけるＥＣＵ１０（ＣＰＵ１）は、正常に書き込まれていないと判定されたことに加えて、メモリ異常カウンタのカウント値が判定値の初期値よりも１少ない数に達したことを条件として、判定値を１に変更する（判定値変更部）。
【０１０１】
図６に示すように、変形例１におけるＥＣＵ１０のＣＰＵ１は、１回目のドライビングサイクルで異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込に失敗した場合、メモリ異常カウンタのカウント値を１とする。つまり、メモリ異常カウンタのカウント値１が記憶された状態になる。しかしながら、ＣＰＵ１は、２回目のドライビングサイクルでは、判定値の変更は行わない。なお、変形例１におけるＥＣＵ１０のＣＰＵ１は、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込が完了した場合、メモリ異常カウンタのカウント値を０とする（クリアする）。
【０１０２】
次に、変形例１のＣＰＵ１は、２回目のドライビングサイクルにおいても異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込に失敗した場合、メモリ異常カウンタのカウント値を２とする。つまり、メモリ異常カウンタのカウント値２が記憶された状態になる。この時点で、メモリ異常カウンタのカウント値２は、判定値の初期値３よりも１少ない数となる。よって、ＣＰＵ１は、３回目のドライビングサイクルでは、判定値を１に変更する。これによって、３回目のドライビングサイクルにおいても異常有りと診断した場合、故障確定と判定することができる。なお、変形例１におけるＥＣＵ１０のＣＰＵ１は、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込が完了した場合、メモリ異常カウンタのカウント値を０とする（クリアする）。
【０１０３】
このようにすることによって、診断情報が正常に書き込まれていないとの判定が１回なされただけで、判定値を１に変更することを抑制できる。よって、判定値が３以上の場合においては、例えばノイズなどによって１回だけ診断情報が正常に書き込まれなかった際に、今回の異常診断において異常有りと診断されたことで故障確定と判定されることを抑制することができる。
【０１０４】
（変形例２）
ここで変形例２の電子制御装置に関して説明する。上述の実施形態においては、メモリ異常カウンタのカウント値によって、前回までの診断期間における診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かの判定を行う例を採用したが、本発明はこれに限定されるものではない。なお、変形例２のＥＣＵ１０と、上述の実施形態のＥＣＵ１０とは、診断情報が第１不揮発性メモリ５に正常に書き込まれているか否かの判定方法と、判定値の変更方法が異なるだけであり、その他の処理や構成は同様である。よって、変形例２におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）と同じ符号を付与して説明する。つまり、変形例２におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）を用いて説明する。
【０１０５】
変形例２におけるＥＣＵ１０（ＣＰＵ１）は、診断情報の書き込み要求があった場合に、書き込み要求があったことを示す要求情報としてメモリ異常フラグを立てて（例えば、メモリ異常フラグを第２不揮発性メモリ６に記憶）、第１不揮発性メモリ５への診断情報の書き込みが完了するとメモリ異常フラグを消去する（第１書込部）。そして、ＥＣＵ１０（ＣＰＵ１）は、第２不揮発性メモリ６にメモリ異常フラグが記憶されていなかった場合、正常に書き込まれていると判定し、第２不揮発性メモリ６にメモリ異常フラグが記憶されていた場合、正常に書き込まれていないと判定する（書込判定部）。言い換えると、ＥＣＵ１０（ＣＰＵ１）は、メモリ異常フラグが立ってなかったら正常に書き込まれていると判定し、メモリ異常フラグが立っていたら正常に書き込まれていないと判定する（書込判定部）。また、変形例２におけるＥＣＵ１０（ＣＰＵ１）は、診断情報が第１不揮発性メモリ５に正常に書き込まれていないと１回でも判定すると、判定値を１に変更する。
【０１０６】
図７に示すように、変形例２におけるＥＣＵ１０のＣＰＵ１は、１回目のドライビングサイクルで異常有りと診断したが、このドライビングサイクルにおけるセルフシャット中に、第１不揮発性メモリ５への診断情報の書き込みに失敗した場合、メモリ異常フラグを立てる。つまり、メモリ異常フラグが立ったままの状態となる（メモリ異常フラグが記憶された状態になる）。
【０１０７】
次に、変形例２におけるＥＣＵ１０のＣＰＵ１は、２回目のドライビングサイクルにおいても異常有りと診断した場合、判定値を１に変更する。これによって、２回目のドライビングサイクルにおいて異常有りと診断した場合、故障確定と判定することができる。
【０１０８】
なお、変形例２においても、上述の実施形態や変形例１と同様に、判定値を変更するようにしてもよい。例えば、診断情報の書き込み要求があるたびにメモリ異常フラグを立てる。上述のように、このメモリ異常フラグは、第１不揮発性メモリ５への診断情報の書き込みが完了すると消去される。しかしながら、メモリ異常フラグは、第１不揮発性メモリ５への診断情報の書き込みが失敗すると、第２不揮発性メモリ６に記憶されたままとなる。
【０１０９】
そこで、ＣＰＵ１は、このメモリ異常フラグをカウントする。そして、ＣＰＵ１は、正常に書き込まれていないと判定されたことに加えて、メモリ異常フラグがカウントされるたびに、判定値の初期値からメモリ異常フラグのカウント値を減算することで、判定値を１に変更する（判定値変更部）。又は、ＣＰＵ１は、正常に書き込まれていないと判定されたことに加えて、メモリ異常フラグの数が判定値の初期値よりも１少ない数に達したことを条件として、判定値を１に変更する（判定値変更部）。
【０１１０】
（変形例３）
ここで変形例３の電子制御装置に関して説明する。上述の実施形態においては、第１メモリ部として、不揮発性のメモリである第１不揮発性メモリ５を採用したが、本発明はこれに限定されるものではない。変形例３におけるＥＣＵは、第１メモリ部として、第２電源部から電源が供給されている間は記憶状態を保持可能な記憶装置５を搭載している。つまり、変形例３では、第１メモリ部として、バッテリーバックアップ形式の不揮発性メモリ（常時、電源供給がなされる揮発性メモリ）５を採用する。以下、バッテリーバックアップ形式の不揮発性メモリをスタンバイＲＡＭ５とも称する。なお、便宜上、変形例３におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）と同じ符号を付与して説明する。つまり、変形例３におけるＥＣＵ（及びＥＣＵに含まれる構成要素）として、上述の実施形態のＥＣＵ１０（及びＥＣＵ１０に含まれる構成要素）を用いて説明する。
【０１１１】
スタンバイＲＡＭ５は、バッテリ３０からＥＣＵ１０への電源供給が停止している間も、第２電源部（図示省略）から電源供給がなされて、記憶情報を保持することが可能である。ただし、スタンバイＲＡＭ５は、第１電源部（バッテリ３０）および第２電源部からの電源供給が停止すると、前回までの診断情報の記憶ができなくなってしまう（消失してしまう）。
【０１１２】
そこで、上述の実施形態や変形例と同様に、ＣＰＵ１は、前回までの診断期間における診断情報がスタンバイＲＡＭ５に正常に書き込まれているか否かの判定を行う（書込判定部）。この判定は、イグニッションＳＷ４０がオフからオンに切り替わってから、故障確定の判定前までに行う。また、ＣＰＵ１は、診断情報がスタンバイＲＡＭ５に正常に書き込まれていないと判定した場合は、判定値を１に変更する（判定値変更部）。そして、ＣＰＵ１は、判定値が１に変更された場合、異常有りと診断された診断期間の数が１に達したことを条件として故障確定と判定する（故障確定判定部）。このようにすることによって、第１メモリ部としてスタンバイＲＡＭ５を採用した場合であっても、故障確定を判定することができる。
【０１１３】
変形例３においては、ＣＰＵ１は、起動された際（つまり、バッテリ３０から電源供給されている期間）、スタンバイＲＡＭ５への電源供給が停止したか否かを判定する（停止判定部）。スタンバイＲＡＭ５は、揮発性メモリであるため、自身への電源供給が停止すると、記憶内容を保持することができない。よって、ＣＰＵ１は、スタンバイＲＡＭ５への電源供給が停止したと判定しなかった場合は、正常に書き込まれていると判定することができる。一方、ＣＰＵ１は、スタンバイＲＡＭ５への電源供給が停止したと判定した場合は、正常に書き込まれていないと判定することができる。このように、第１メモリ部への電源供給が停止したか否かを確認するだけなので、診断情報がスタンバイＲＡＭ５に正常に書き込まれているか否かの判定を容易に行うことができる。
【０１１４】
なお、スタンバイＲＡＭ５への電源供給が停止したか否かの判定は、例えば、消失確認用のチェックコード（チェックサム・反転データ（１の補数）のデータ保持・整合確認）によって行うことができる。しかしながら、スタンバイＲＡＭ５への電源供給が停止したか否かの判定の方法は、これに限定されるものではない。
【０１１５】
また、変形例３においても、上述の実施形態と同様に、ＣＰＵ１は、正常に書き込まれていないと判定した回数をカウントし（カウント部）、正常に書き込まれていないと判定したことに加えて、回数をカウントするたびに、判定値の初期値からカウント値を減算することで、判定値を１に変更するようにしてもよい（判定値変更部）。
【０１１６】
また、変形例３においても、上述の変形例１と同様に、ＣＰＵ１は、正常に書き込まれていないと判定した回数をカウントし（カウント部）、正常に書き込まれていないと判定したことに加えて、カウント値が判定値の初期値よりも１少ない数に達したことを条件として、判定値を１に変更するようにしてもよい（判定値変更部）。
【０１１７】
また、変形例３においても、上述の変形例１と同様に、ＣＰＵ１は、正常に書き込まれていないと１回でも判定すると、判定値を１に変更するようにしてもよい（判定値変更部）。
【符号の説明】
【０１１８】
１  ＣＰＵ、２  Ｉ／Ｏ、３  ＲＡＭ、４  プログラムＲＯＭ、５  第１不揮発性メモリ、６  第２不揮発性メモリ、１０  ＥＣＵ、２０  電源回路、３０  バッテリ、４０  イグニッションＳＷ、５０  リレーＳＷ、６０  インジケータ
【図１】
2013222294.tif 000003
【図２】
2013222294.tif 000004
【図３】
2013222294.tif 000005
【図４】
2013222294.tif 000006
【図５】
2013222294.tif 000007
【図６】
2013222294.tif 000008
【図７】
2013222294.tif 000009
【図８】
2013222294.tif 000010
【図９】
2013222294.tif 000011