(57)【要約】【課題】  値が所定の規則性に従った特定の変化方向に更新されていくデータを、書き換え可能不揮発性メモリを用いて継続的に保存する電子制御装置において、その不揮発性メモリへのデータの記憶抜けを検出する。【解決手段】  本エンジン制御装置は、ＲａｔｅＢａｓｅモニタ法で定められている各診断対象項目のモニタ頻度を表すデータであって、本装置の１回の動作期間中に最大で１回だけ＋１されるデータを、ＥＥＰＲＯＭとバッテリバックアップされたＲＡＭ（ＳＲＡＭ）とに記憶させるようにしており、動作開始時に、各データについて、ＳＲＡＭ内の値Ｓ［ｉ］がＥＥＰＲＯＭ内の値Ｅ［ｉ］よりも１だけ大きいか否かを判定し（Ｓ２２０〜Ｓ２５０）、肯定判定したデータがあれば、該データは前回の動作期間にてＥＥＰＲＯＭへの書き込みが未完了であったと判断し、Ｓ［ｉ］をＥＥＰＲＯＭに書き込む（Ｓ２４０：Ｙ→Ｓ２６０）。【選択図】  図５
2004164601.tif 000002
【特許請求の範囲】
【請求項１】
動作電源の供給が停止されても継続して保存すべきデータであって、所定の規則性を持って増加又は減少し、その規則性に従った特定の変化方向に更新されていくデータ（以下、継続保存対象データという）を、電気的にデータの書き換えが可能な不揮発性メモリと、データ保持用の電源が常時供給されたＲＡＭ（以下、スタンバイＲＡＭという）との両方に記憶させて保存する電子制御装置であって、
当該装置が動作電源の投入により動作を開始した際に、前記スタンバイＲＡＭに記憶されている継続保存対象データの値が、前記不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向に進んでいる値であるか否かを判定し、該判定により肯定判定したならば、当該装置の前回の動作期間において、前記不揮発性メモリへの前記継続保存対象データの書き込みが未完了であったと判断する記憶抜け検知手段を備えていること、
を特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記継続保存対象データは、当該装置に動作電源が投入されてから該動作電源が遮断されるまでの１回の動作期間中に、最大で１回だけ更新されることで値がＮ（但しＮは正数）だけ前記変化方向に変化するデータであり、
前記記憶抜け検知手段は、前記スタンバイＲＡＭに記憶されている継続保存対象データの値が、前記不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向に前記Ｎだけ進んでいる値であるか否かを判定し、該判定により肯定判定したならば、当該装置の前回の動作期間において、前記不揮発性メモリへの前記継続保存対象データの書き込みが未完了であったと判断すること、
を特徴とする電子制御装置。
【請求項３】
請求項１又は請求項２に記載の電子制御装置において、
前記記憶抜け検知手段により、前記不揮発性メモリへの前記継続保存対象データの書き込みが未完了であったと判断された場合に、前記スタンバイＲＡＭに記憶されている継続保存対象データの値を前記不揮発性メモリに書き込むデータ回復手段を備えていること、
を特徴とする電子制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の電子制御装置において、
当該装置が動作電源の投入により動作を開始した際に、前記スタンバイＲＡＭ内のデータが正常であるか否かを判定し、正常でないと判定した場合には、前記記憶抜け検知手段の動作を禁止する判定手段を備えていること、
を特徴とする電子制御装置。
【請求項５】
車両に搭載された車載機器を制御する電子制御装置であって、
車両が所定の運転状態となったことを検出する検出手段と、
所定の条件が満足された場合に前記車載機器における診断対象の故障診断を実施する故障診断手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
データ保持用の電源が常時供給されたＲＡＭ（以下、スタンバイＲＡＭという）と、
当該制御装置の起動から停止までの間に、前記検出手段にて前記所定の運転状態が検出されたときに前記スタンバイＲＡＭに記憶されている運転回数を１回分だけ更新した値に書き換える処理を実行すると共に、前記故障診断手段にて前記故障診断が実施されたときに前記スタンバイＲＡＭに記憶されている故障診断回数を１回分だけ更新した値に書き換える処理を実行する書換え手段と、
該書換え手段により前記運転回数又は前記故障診断回数の書き換え処理が実行された後に、その書き換えられた運転回数又は故障診断回数を前記不揮発性メモリに記憶する記憶手段と、
当該装置が動作電源の投入により動作を開始した際に、前記スタンバイＲＡＭに記憶されている前記運転回数又は前記故障診断回数の値が、前記不揮発性メモリに記憶されている前記運転回数又は前記故障診断回数の値よりも１回分だけ更新された値であるか否かを判定し、該判定により肯定判定したならば、当該装置の前回の動作期間において、前記不揮発性メモリへの前記運転回数又は前記故障診断回数の書き込みが未完了であったと判断する記憶抜け検知手段を備えていること、
を特徴とする電子制御装置。
【請求項６】
請求項５に記載の電子制御装置において、
当該制御装置は車両外部の診断ツールと接続可能となっており、前記診断ツールからの前記運転回数、前記故障診断回数の出力要求があった場合には、前記不揮発性メモリに記憶されている前記運転回数、前記故障診断回数を前記診断ツールに対して出力する出力手段をさらに備えることを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作中に更新される特定のデータを、電気的にデータの書き換えが可能な不揮発性メモリを用いて継続的に保存する電子制御装置に関し、特に、その不揮発性メモリへのデータの記憶抜けを検出する技術に関するものである。
【背景技術】
【０００２】
従来より、自動車用の電子制御装置では、動作電源の供給が停止されても継続して保存すべき故障診断情報や制御学習値などの特定のデータを、電気的にデータの書き換えが可能なＥＥＰＲＯＭなどの不揮発性メモリに書き込んでおくことにより、バッテリ外れやバッテリ上がりが発生しても、そのデータを継続して保持及び更新することができるようにしている。例えば、バッテリバックアップされたＲＡＭ（以下、バックアップＲＡＭともいう）内の所定領域のデータを、ＥＥＰＲＯＭに逐次コピーして保存しておき、動作電源の投入に伴う動作開始時に、そのＲＡＭ内のデータが異常であれば、ＥＥＰＲＯＭ内のデータを上記ＲＡＭへコピーして復元する装置が知られている（例えば、特許文献１参照）。
【０００３】
また、この種の電子制御装置においては、ＥＥＰＲＯＭに記憶されているデータの良否を、チェックサムによってチェックすることもある（例えば、特許文献２参照）。尚、他のチェック方法として、例えば、（１）：本来の記憶データと足し合わせると予め決められた所定値となるミラーデータもＥＥＰＲＯＭに記憶させておき、そのミラーデータと本来の記憶データとを加算して、上記所定値にならなかったら不良と判定する方法や、（２）：データをＥＥＰＲＯＭ内の３箇所に記憶させておき、多数決によって正常なデータを判定する多数決法もある。
【０００４】
一方、自動車用電子制御装置においては、ＣＡＲＢ（カリフォルニア大気資源保護局）によるＯＢＤ（オンボードダイアグノスティック）２の法規に、ＲａｔｅＢａｓｅモニタ法があり、そのＲａｔｅＢａｓｅモニタ法では、下記の式で示されるモニタ頻度を継続的に記憶しておく必要がある。
【０００５】
モニタ頻度＝モニタリング実施回数／運転回数
尚、モニタ頻度は、故障診断を実施した頻度であり、触媒コンバータ，フューエルエバポレーションシステム，酸素センサ等といった複数の項目の故障診断について各々存在する。そして、運転回数（以下、分母という）は、その項目について法規で定められた所定の走行条件が満たされたときにインクリメントされるデータである。また、モニタリング実施回数（以下、分子という）は、その項目について自動車メーカで定めた故障診断実施条件が満たされて、正常又は異常の判定が終了した時点で、インクリメントされるデータである。そして更に、これら分母と分子は、両方共に、自動車のイグニッションスイッチがオンされてオフされるまでの間（即ち、故障診断を実施する電子制御装置に動作電源が投入されて該動作電源が遮断されるまでの１回の動作期間中）に、１回だけインクリメントされるか、或いは、インクリメントされずにそのままの値を維持するかの何れかである。よって、各項目の分母と分子は、１インクリメントされると、その回の自動車の運転期間中では、それ以上値が更新されることはない。
【特許文献１】特開平４−３３６３５１号公報（第３頁、図３，図４）
【特許文献２】特開平５−２１６７７６号公報（第２頁）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記チェックサム又はミラーデータによるチェックや多数決法によるチェックでは、ＥＥＰＲＯＭに記憶したデータが壊れているか否かのチェックはできるものの、電子制御装置の前回の動作期間においてＥＥＰＲＯＭ等の書き換え可能不揮発性メモリへのデータの書き込みが未完了であったこと（以下、データの記憶抜けともいう）は検出することができない。
【０００７】
つまり、データの記憶抜けが起こっても、それ以前に記憶されているデータとチェックサム又はミラーデータとの関係が壊れるわけではないからである。また、多数決法は、メモリ内の３箇所に同じデータを書き込んでおき、ビット毎に２つ以上一致したデータを真とするものであるが、この方法でも、データの記憶抜けについては検出することができない。
【０００８】
また特に、ＥＥＰＲＯＭの場合は、一般に、マイコンとの間のシリアル通信によってデータのリード／ライトが実施され、マイコンに内蔵のＲＡＭ等のメモリと比べるとデータの書き込みに時間がかかるため、そのＥＥＰＲＯＭへのデータの書き込みが未完了の時点で電子制御装置への動作電源が遮断されてしまう可能性が比較的高い。
【０００９】
そこで、本発明は、前述したＲａｔｅＢａｓｅモニタ法の分母及び分子のように、その値が所定の規則性に従った特定の変化方向に更新されていくデータを、ＥＥＰＲＯＭ等の書き換え可能不揮発性メモリを用いて継続的に保存する電子制御装置において、その不揮発性メモリへのデータの記憶抜けを検出できるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた請求項１に記載の電子制御装置は、動作電源の供給が停止されても継続して保存すべきデータであって、所定の規則性を持って増加又は減少し、その規則性に従った特定の変化方向に更新されていく継続保存対象データを、電気的にデータの書き換えが可能な不揮発性メモリ（書き換え可能不揮発性メモリ）と、データ保持用の電源が常時供給されたＲＡＭ（以下、スタンバイＲＡＭという）との両方に記憶させて保存するものであり、記憶抜け検知手段を備えている。
【００１１】
そして、記憶抜け検知手段は、当該装置が動作電源の投入により動作を開始した際に、スタンバイＲＡＭに記憶されている継続保存対象データの値が、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向に進んでいる値であるか否かを判定し、その判定により肯定判定したならば（即ち、スタンバイＲＡＭに記憶されている継続保存対象データの値が、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向に進んでいる値であると判定したならば）、当該装置の前回の動作期間において、書き換え可能不揮発性メモリへの継続保存対象データの書き込みが未完了であったと判断する。
【００１２】
尚、スタンバイＲＡＭに記憶されている継続保存対象データの値Ｄａが、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値Ｄｂよりも前記変化方向に進んでいる値であるとは、例えば、前記規則性が単純増加であるならば、継続保存対象データの値の変化方向は常に増加であるため、「Ｄａ＞Ｄｂ」ということであり、前記規則性が単純減少であるならば、継続保存対象データの値の変化方向は常に減少であるため、「Ｄａ＜Ｄｂ」ということである。
【００１３】
このような請求項１の電子制御装置によれば、従来のチェックサム又はミラーデータによるチェックや多数決法によるチェックでは検出不能であった書き換え可能不揮発性メモリへのデータの記憶抜けを検出することができるようになる。つまり、更新された継続保存対象データのスタンバイＲＡＭへの記憶は完了しているが、そのデータの書き換え可能不揮発性メモリへの書き込みが完了する前に、電子制御装置への動作電源が遮断された場合には、スタンバイＲＡＭに記憶されている継続保存対象データの値が、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向に進んだ値となるため、そのことを次の動作開始時に検出することにより、前回の動作期間において書き換え可能不揮発性メモリへの継続保存対象データの書き込みが未完了であったこと（即ち、データの記憶抜け）を検知することができるのである。
【００１４】
次に、請求項２に記載の電子制御装置では、請求項１の電子制御装置において、継続保存対象データは、当該装置に動作電源が投入されてから該動作電源が遮断されるまでの１回の動作期間中に、最大で１回だけ更新されることで値がＮ（但しＮは正数）だけ前記変化方向に変化するデータである。
【００１５】
そして、記憶抜け検知手段は、スタンバイＲＡＭに記憶されている継続保存対象データの値が、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向にＮだけ進んでいる値であるか否かを判定し、該判定により肯定判定したならば（即ち、スタンバイＲＡＭに記憶されている継続保存対象データの値が、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値よりも前記変化方向にＮだけ進んでいる値であると判定したならば）、当該装置の前回の動作期間において、書き換え可能不揮発性メモリへの継続保存対象データの書き込みが未完了であったと判断する。
【００１６】
尚、スタンバイＲＡＭに記憶されている継続保存対象データの値Ｄａが、書き換え可能不揮発性メモリに記憶されている継続保存対象データの値Ｄｂよりも前記変化方向にＮだけ進んでいる値であるとは、例えば、前記規則性が単純増加であるならば、継続保存対象データの値の変化方向は常に増加であるため、「Ｄａ＝Ｄｂ＋Ｎ」ということであり、前記規則性が単純減少であるならば、継続保存対象データの値の変化方向は常に減少であるため、「Ｄａ＝Ｄｂ−Ｎ」ということである。
【００１７】
このような請求項２の電子制御装置によれば、当該装置の動作期間中に最大で１回だけ更新されることで値がＮだけ変化するデータについて、そのデータの書き換え可能不揮発性メモリへの記憶抜けを正確に検出することができるようになる。
【００１８】
次に、請求項３に記載の電子制御装置では、請求項１，２の電子制御装置に対して、データ回復手段を設けている。そして、そのデータ回復手段は、記憶抜け検知手段により、書き換え可能不揮発性メモリへの継続保存対象データの書き込みが未完了であったと判断された場合に、スタンバイＲＡＭに記憶されている継続保存対象データの値を書き換え可能不揮発性メモリに書き込む。
【００１９】
このような請求項３の電子制御装置によれば、前回の動作期間において書き換え可能不揮発性メモリへの書き込みが未完了であった継続保存対象データを、スタンバイＲＡＭから書き換え可能不揮発性メモリに書き込んでリカバリーすることができる。
【００２０】
次に、請求項４に記載の電子制御装置では、請求項１〜３の電子制御装置に対して、判定手段を設けている。そして、その判定手段は、当該装置が動作電源の投入により動作を開始した際に、スタンバイＲＡＭ内のデータが正常であるか否かを判定し、正常でないと判定した場合には、記憶抜け検知手段の動作を禁止する。
【００２１】
このような判定手段を備えた請求項４の電子制御装置によれば、バッテリ外れやスタンバイＲＡＭの故障が発生して、スタンバイＲＡＭ内のデータが正常でなくなった場合には、当該装置の動作開始時における記憶抜け検知手段の動作が禁止されるため、スタンバイＲＡＭ内のデータが正常でないことによる記憶抜け検知手段での誤検出（即ち、前回の動作期間において書き換え可能不揮発性メモリへの継続保存対象データの書き込みが未完了であったと誤って判断してしまうこと）を防止することができ、特に、請求項３のデータ回復手段を備えている構成においては、異常なデータ値が書き換え可能不揮発性メモリに記憶されてしまうことを防止することができる。
【００２２】
ところで、請求項１，２に記載の電子制御装置の特徴を採用した具体的な装置の構成としては、請求項５に記載の電子制御装置が考えられる。
即ち、請求項５に記載の電子制御装置は、車両に搭載された車載機器を制御するものであり、車両が所定の運転状態となったことを検出する検出手段と、所定の条件が満足された場合に前記車載機器における診断対象の故障診断を実施する故障診断手段と、記憶内容を電気的に書き換え可能な不揮発性メモリと、データ保持用の電源が常時供給されたスタンバイＲＡＭと、当該制御装置の起動から停止までの間に、前記検出手段にて前記所定の運転状態が検出されたときにスタンバイＲＡＭに記憶されている運転回数を１回分だけ更新した値に書き換える処理を実行すると共に、前記故障診断手段にて前記故障診断が実施されたときにスタンバイＲＡＭに記憶されている故障診断回数を１回分だけ更新した値に書き換える処理を実行する書換え手段と、該書換え手段により前記運転回数又は前記故障診断回数の書き換え処理が実行された後に、その書き換えられた運転回数又は故障診断回数を前記不揮発性メモリに記憶する記憶手段と、記憶抜け検知手段とを備えている。
【００２３】
そして、記憶抜け検知手段は、当該装置が動作電源の投入により動作を開始した際に、スタンバイＲＡＭに記憶されている運転回数又は故障診断回数の値が、前記不揮発性メモリに記憶されている運転回数又は故障診断回数の値よりも１回分だけ更新された値であるか否かを判定し、その判定により肯定判定したならば、当該装置の前回の動作期間において、前記不揮発性メモリへの運転回数又は故障診断回数の書き込みが未完了であったと判断する。
【００２４】
よって、このような請求項５の電子制御装置によれば、書き換え可能不揮発性メモリへの運転回数又は故障診断回数の記憶抜けを検出することができる。
また、請求項５の電子制御装置は、請求項６に記載のように構成することもできる。即ち、請求項６に記載の電子制御装置は、車両外部の診断ツールと接続可能になっており、更に出力手段を備えている。そして、その出力手段は、前記診断ツールからの前記運転回数、前記故障診断回数の出力要求があった場合には、前記不揮発性メモリに記憶されている前記運転回数、前記故障診断回数を前記診断ツールに対して出力する。そして、このような電子制御装置によれば、不揮発性メモリに記憶されている運転回数と故障診断回数を外部の診断ツールによって読み出すことができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の一実施形態について、図面を用いて説明する。
まず図１は、自動車に搭載されて内燃機関型エンジンの制御を行う、実施形態の電子制御装置（以下、ＥＣＵという）１の構成を表すブロック図である。
【００２６】
図１に示すように、ＥＣＵ１は、エンジンの運転状態やエンジンの周辺機器の状態を検出するための様々なセンサ３からの信号を入力して波形処理する入力処理回路５と、入力処理回路５からのセンサ信号等に基づき、エンジン制御や故障診断等に関する様々な処理を行うマイクロコンピュータ（以下、マイコンという）７と、マイコン７と通信ライン９を介して接続され、そのマイコン７にて算出されるデータのうちで、当該ＥＣＵ１への動作電源の供給が停止されても継続して保存すべきデータ（継続保存対象データ）が記憶される書き換え可能不揮発性メモリとしてのＥＥＰＲＯＭ１１と、マイコン７からの制御信号に応じて、エンジンに取付けられた燃料噴射装置（インジェクタ）や点火装置（イグナイタ）等のアクチュエータ１３を駆動する出力回路１５と、自動車のイグニッションスイッチ１７のオンに伴い供給されるバッテリ１９からの動作電源としての電圧ＶＤを受けて、マイコン７を始めとする当該ＥＣＵ１内の各部に動作用の電源電圧（例えば５Ｖ）Ｖｍを供給すると共に、バッテリ１９から常時供給される電圧ＶＢから、マイコン７内の後述するスタンバイＲＡＭ２９が常時データを保持するための副電源電圧Ｖｓ（データ保持用の電源に相当）を生成して出力する電源回路２１とを備えている。
【００２７】
尚、電源回路２１は、イグニッションスイッチ１７がオンされて上記電源電圧Ｖｍの供給を開始してから、その電源電圧Ｖｍが安定すると見なされる所定時間だけマイコン７へリセット信号を出力する、所謂パワーオンリセット機能も有している。
【００２８】
そして、マイコン７は、プログラムを実行する周知のＣＰＵ（中央演算処理装置）２３と、ＣＰＵ２３によって実行されるプログラム（詳しくは、そのプログラムを構成する命令コードやそのプログラムの実行時に参照される固定のデータ）を記憶する不揮発性のＲＯＭ２５と、ＣＰＵ２３による演算結果等を一時的に記憶するための揮発性のＲＡＭ２７と、電源回路２１からの副電源電圧Ｖｓを受けて常時データを保持可能なスタンバイＲＡＭ（バッテリバックアップされたＲＡＭであり、以下、ＳＲＡＭと記す）２９と、入力処理回路５，ＥＥＰＲＯＭ１１，及び出力回路１５等との間で信号やデータをやり取りするためのＩ／Ｏ３１とを備えている。尚、以下の説明において、バッテリバックアップされていない通常のＲＡＭ２７は、ＳＲＡＭ２９との区別を明確にするために、ＮＲＡＭ（ノーマルＲＡＭ）２７と呼ぶ。
【００２９】
以上のような構成のＥＣＵ１は、イグニッションスイッチ１７がオンされている間、バッテリ１９からの電圧ＶＤを受けて動作する。
そして、ＥＣＵ１では、イグニッションスイッチ１７がオンされて、電源回路２１からマイコン７へのリセット信号が解除されると、マイコン７が初期状態から動作を開始して、後述するイニシャル処理を行った後、エンジンを制御するための制御処理を行う。尚、マイコン７の動作は、ＣＰＵ２３がＲＯＭ２５内のプログラムを実行することによるものである。
【００３０】
また、マイコン７は、前述したＣＡＲＢ・ＯＢＤ２のＲａｔｅＢａｓｅモニタ法で定められている故障診断対象項目の各々（触媒コンバータ，フューエルエバポレーションシステム，酸素センサ等）について、その項目の故障診断実施条件が成立したか否かを例えば定期的に判定すると共に、故障診断実施条件が成立した場合には、該当する項目についての故障診断処理を実施して正常又は異常の判定を行う、といった故障診断手段としての処理を実行する。そして更に、マイコン７は、上記各故障診断対象項目について、前述したモニタ頻度を表す分子（故障診断回数としてのモニタリング実施回数）と分母（運転回数）のデータを、ＥＥＰＲＯＭ１１とＳＲＡＭ２９とを使用して継続的に保存及び更新していくようにしている。
【００３１】
また更に、ＥＣＵ１には、車両外部の診断ツール３３がダイアグコネクタ３５を介して接続可能となっている。そして、ＥＣＵ１は、診断ツール３３からの故障診断に関する出力要求に応じて、その要求に応じた内容のデータを出力するようになっており、上記故障診断モニタ頻度に関わる情報の出力要求あった際に、ＥＥＰＲＯＭ１１に記憶されている分子と分母のデータを出力する。尚、診断ツール３３からの出力要求に応じてＥＥＰＲＯＭ１１内の分子と分母のデータを診断ツール３３へ出力する処理は、マイコン７が実行しており、本実施形態では、その処理が出力手段としての処理に相当している。また、図１において、符号３７は、マイコン７が診断ツール３３と通信を行うための通信回路である。
【００３２】
そこで次に、ＥＣＵ１のマイコン７が、各故障診断対象項目についてのモニタ頻度の分子と分母のデータを継続して保存及び更新していくために実行する処理の内容について、図２〜図５を用いて説明する。
【００３３】
まず、図２に示すように、本実施形態では、各故障診断対象項目についてのモニタ頻度の分子と分母の各々である継続保存対象データに対して、０番から順に番号を付けている。例えば、０番目のデータは、フューエルエバポレーションシステム（以下単に、エバポという）についてのモニタ頻度の分子であり、１番目のデータは、エバポについてのモニタ頻度の分母であり、２番目のデータは、触媒コンバータ（以下単に、触媒という）についてのモニタ頻度の分子であり、３番目のデータは、触媒についてのモニタ頻度の分母であり、４番目のデータは、酸素センサについてのモニタ頻度の分子であり、５番目のデータは、酸素センサについてのモニタ頻度の分母である。
【００３４】
また、図２に示すように、ＮＲＡＭ２７内には、各継続保存対象データについて、そのデータのインクリメントが実施されたか否かを示すインクリメント終了フラグＦ［ｉ］が設けられている。尚、［］内のｉは、そのフラグが対応している継続保存対象データの番号であり、継続保存対象データの総数をｎとすると、０〜「ｎ−１」の何れかである。
【００３５】
そして、マイコン７は、図３に示すように、各継続保存対象データについて、そのデータのインクリメント条件が成立すると（Ｓ９１：ＹＥＳ）、そのデータをＮＲＡＭ２７上で１インクリメントして（Ｓ９３）、そのデータに対応するインクリメント終了フラグＦ［ｉ］をオンする（Ｓ９５）。
【００３６】
尚、既述したように、分母のデータについては、該当する故障診断対象項目について法規で定められている所定の走行条件が満たされたこと（換言すれば、車両が、その故障診断対象項目について法規で定められている所定の運転状態となったこと）を、検出手段としての処理によって検出したときに、インクリメント条件が成立したと判定する。また、分子のデータについては、該当する故障診断対象項目について、前述した故障診断手段としての処理により、自動車メーカで定められた所定の故障診断実施条件が満たされたと判定されて故障診断が実施され正常又は異常の判定が終了した時点で、インクリメント条件が成立したと判定する。一方、ＮＲＡＭ２７内の全てのインクリメント終了フラグＦ［ｉ］は、マイコン７が動作開始時に行うイニシャル処理でのＮＲＡＭ２７に対する初期化（後述する図５のＳ２０５）により、予めオフ側にクリアされている。
【００３７】
次に、図４は、マイコン７が一定時間毎（例えば６４ｍｓ毎）に実行する定期処理を表すフローチャートである。
マイコン７が図４の定期処理を開始すると、まずＳ１１０にて、継続保存対象データの番号を示す変数ｉを０に設定し、続くＳ１２０にて、変数ｉの値が継続保存対象データの総数（データ数）ｎよりも小さいか否かを判定する。尚、変数ｉは、ＮＲＡＭ２７内のデータである。
【００３８】
そして、変数ｉの値がデータ数ｎよりも小さいと判定した場合には（Ｓ１２０：ＹＥＳ）、Ｓ１３０に進んで、ｉ番目の継続保存対象データ（即ち、番号が変数ｉの値である継続保存対象データ）のインクリメントが終了しているか否かを、そのデータに対応するインクリメント終了フラグＦ［ｉ］がオンされているか否かで判定し、ｉ番目の継続保存対象データのインクリメントが終了していない（即ち、インクリメント終了フラグＦ［ｉ］がオンされていない）と判定したならば（Ｓ１３０：ＮＯ）、Ｓ１４０に移行して、変数ｉの値を１インクリメントした後、Ｓ１２０に戻る。
【００３９】
また、上記Ｓ１３０にて、ｉ番目の継続保存対象データのインクリメントが終了していると判定した場合には（Ｓ１３０：ＹＥＳ）、Ｓ１５０に移行して、そのｉ番目の継続保存対象データをＮＲＡＭ２７からＳＲＡＭ２９に記憶（コピー）する。すると、そのｉ番目の継続保存対象データのＳＲＡＭ２９内での記憶値は、１回分だけ更新した値（即ち１だけ増加した値）に書き換えられることとなる。つまり、このＳ１５０の処理により、何れかの継続保存対象データのインクリメント条件が成立したときに、その継続保存対象データのＳＲＡＭ２９内での記憶値が、１回分だけ更新した値に書き換えられることとなる。
【００４０】
そして更に、続くＳ１６０にて、そのｉ番目の継続保存対象データをＮＲＡＭ２７からＥＥＰＲＯＭ１１に記憶（コピー）する。このため、上記Ｓ１５０の処理でＳＲＡＭ２９に更新して記憶されたｉ番目の継続保存対象データがＥＥＰＲＯＭ１１にも書き込まれることとなる。そして、その後、上記Ｓ１４０に移行して、変数ｉの値を１インクリメントした後、Ｓ１２０に戻る。
【００４１】
一方、上記Ｓ１２０にて、変数ｉの値がデータ数ｎよりも小さくない（即ち、ｉ≧ｎである）と判定した場合には（Ｓ１２０：ＮＯ）、当該定期処理を終了する。
つまり、図４の定期処理では、Ｓ１１０〜Ｓ１４０の処理により、全ての継続保存対象データについてのインクリメント終了フラグＦ［ｉ］をチェックすることで、本ＥＣＵ１の今回の動作期間中において１インクリメントされた継続保存対象データを探し出している。そして、１インクリメントされた継続保存対象データがあれば（Ｓ１３０：ＹＥＳ）、そのデータをＮＲＡＭ２７からＳＲＡＭ２９とＥＥＰＲＯＭ１１との両方に書き込むようにしている（Ｓ１５０及びＳ１６０）。
【００４２】
尚、ＥＥＰＲＯＭ１１へのデータ書き込み回数を節約するために、上記Ｓ１６０でＥＥＰＲＯＭ１１に書き込んだデータについては、以後その動作期間中では、ＥＥＰＲＯＭ１１へ書き込むＳ１６０の処理を実施しないようにしても良い。
【００４３】
具体的には、各継続保存対象データについてＮＲＡＭ２７内に書込完了フラグを用意しておくと共に、その書込完了フラグは、インクリメント終了フラグと共に、イニシャル処理でのＮＲＡＭ２７に対する初期化によって予めオフ側にクリアしておくようにする。そして、上記Ｓ１６０にて、ＥＥＰＲＯＭ１１に書き込んだ継続保存対象データについての書込完了フラグをオンするようにし、更に、Ｓ１３０にて、ｉ番目の継続保存対象データのインクリメントが終了していると肯定判定しても、そのｉ番目の継続保存対象データについての書込完了フラグが既にオンされていたならば、Ｓ１５０及びＳ１６０の処理をスキップして、Ｓ１４０に移行するように構成すれば良い。
【００４４】
次に、図５は、マイコン７がイグニッションスイッチ１７のオンに伴い動作を開始した際に実行するイニシャル処理を表すフローチャートである。
図５に示すように、マイコン７がイニシャル処理の実行を開始すると、まずＳ２０５にて、ＮＲＡＭ２７内のデータを初期化し、続くＳ２１０にて、ＳＲＡＭ２９内のデータが正常であるか否かを判定する。尚、このＳ２１０では、バッテリ外れ（バッテリ１９が外されたこと）の履歴があるか否かを判定すると共に、ＳＲＡＭ２９内のデータ自体をパリティチェックやチェックサム等の方法で検査して、バッテリ外れの履歴が無く且つデータ自体も正常であったならば、ＳＲＡＭ２９内のデータは正常であると判定する。
【００４５】
そして、ＳＲＡＭ２９内のデータが正常であると判定した場合には（Ｓ２１０：ＹＥＳ）、Ｓ２２０に進んで、継続保存対象データの番号を示す変数ｉを０に設定し、続くＳ２３０にて、変数ｉの値が継続保存対象データの総数（データ数）ｎよりも小さいか否かを判定する。
【００４６】
ここで、変数ｉの値がデータ数ｎよりも小さいと判定した場合には（Ｓ２３０：ＹＥＳ）、Ｓ２４０に進む。
そして、Ｓ２４０にて、ｉ番目の継続保存対象データのＳＲＡＭ値（即ち、ＳＲＡＭ２９に記憶されているｉ番目の継続保存対象データの値）Ｓ［ｉ］と、ｉ番目の継続保存対象データのＥＥＰＲＯＭ値（即ち、ＥＥＰＲＯＭ１１に記憶されているｉ番目の継続保存対象データの値）Ｅ［ｉ］とを読み出して、「Ｓ［ｉ］＝Ｅ［ｉ］＋１」であるか否かを判定し、「Ｓ［ｉ］＝Ｅ［ｉ］＋１」でなければ（Ｓ２４０：ＮＯ）、Ｓ２５０に移行して、変数ｉの値を１インクリメントした後、Ｓ２３０に戻る。
【００４７】
また、上記Ｓ２４０にて、「Ｓ［ｉ］＝Ｅ［ｉ］＋１」であると判定した場合には（Ｓ２４０：ＹＥＳ）、本ＥＣＵ１の前回の動作期間においてＥＥＰＲＯＭ１１へのｉ番目の継続保存対象データの書き込みが未完了であった（換言すれば、ＥＥＰＲＯＭ１１へのｉ番目の継続保存対象データの記憶抜けが生じていた）と判断して、Ｓ２６０に進む。そして、このＳ２６０にて、Ｓ［ｉ］をＥＥＰＲＯＭ１１にＥ［ｉ］として書き込み、その後、上記Ｓ２５０に移行して、変数ｉの値を１インクリメントした後、Ｓ２３０に戻る。
【００４８】
また、上記Ｓ２３０にて、変数ｉの値がデータ数ｎよりも小さくない（即ち、ｉ≧ｎである）と判定した場合には（Ｓ２３０：ＮＯ）、Ｓ２８０に移行して、ＳＲＡＭ２９に記憶されている全ての（即ちｎ個の）継続保存対象データをＮＲＡＭ２７にコピーし、その後、エンジン制御処理や図４の定期処理といった各種処理の実行へ移る。
【００４９】
一方、上記Ｓ２１０にて、ＳＲＡＭ２９内のデータが正常ではないと判定した場合には（Ｓ２１０：ＮＯ）、Ｓ２７０に移行して、ＥＥＰＲＯＭ１１に書き込まれている全ての（ｎ個の）継続保存対象データをＳＲＡＭ２９にコピーし、その後、上記Ｓ２８０の処理を行う。
【００５０】
つまり、このイニシャル処理では、ＳＲＡＭ２９内のデータが正常であれば（Ｓ２１０：ＹＥＳ）、Ｓ２２０〜Ｓ２５０の処理により、全ての継続保存対象データについて、ＳＲＡＭ値Ｓ［ｉ］がＥＥＰＲＯＭ値Ｅ［ｉ］よりも１だけ大きい値であるか否か（換言すれば、ＳＲＡＭ値Ｓ［ｉ］がＥＥＰＲＯＭ値Ｅ［ｉ］よりも継続保存対象データの変化方向に１だけ進んでいる値であるか否をチェックし、「Ｓ［ｉ］＝Ｅ［ｉ］＋１」となっているデータがあったならば（Ｓ２４０：ＹＥＳ）、そのｉ番目のデータは前回の動作期間においてＥＥＰＲＯＭ１１への書き込みが未完了であったと判断して、そのデータのＳＲＡＭ値Ｓ［ｉ］をＥＥＰＲＯＭ１１に書き込むようにしている（Ｓ２６０）。
【００５１】
そして更に、ＳＲＡＭ２９内のデータが正常であれば（Ｓ２１０：ＹＥＳ）、そのＳＲＡＭ２９には、図４のＳ１５０の処理により、前回動作までの継続保存対象データの最終値が記憶されているため、Ｓ２８０の処理により、そのＳＲＡＭ２９内の全ての継続保存対象データを、インクリメント処理の作業エリアであるＮＲＡＭ２７にコピーして、その各継続保存対象データが前回動作時までの値を継承しつつ更新され得るようにしている。
【００５２】
また、ＥＥＰＲＯＭ１１にも、図４のＳ１６０の処理（或いは更に前回動作までの図５のＳ２６０の処理）により、前回動作までの継続保存対象データの最終値が記憶されているため、ＳＲＡＭ２９内のデータが正常でなければ（Ｓ２１０：ＮＯ）、ＥＥＰＲＯＭ１１内の全ての継続保存対象データをＳＲＡＭ２９にコピーしてから（Ｓ２７０）、Ｓ２８０の処理を行っている。このため、バッテリ外れ等によってＳＲＡＭ２９内のデータが異常になっても、ＥＥＰＲＯＭ１１に記憶されていた前回動作までの継続保存対象データがＮＲＡＭ２７にコピーされ、これにより、各継続保存対象データが前回動作時までの値を継承しつつ更新されていくこととなる。
【００５３】
以上のような本実施形態のＥＣＵ１では、マイコン７が図４の定期処理を実行することにより、本ＥＣＵ１の１回の動作期間中において、何れかの継続保存対象データが１回インクリメントされると（Ｓ１３０：ＹＥＳ）、その１インクリメントされたデータをＳＲＡＭ２９とＥＥＰＲＯＭ１１との両方に書き込むようにしている（Ｓ１５０，Ｓ１６０）。そして、マイコン７が図５のイニシャル処理を実行することにより、本ＥＣＵ１が動作電源ＶＤの投入により動作を開始した際に、各継続保存対象データについて、ＳＲＡＭ値がＥＥＰＲＯＭ値よりも１だけ大きい値（１回分だけ更新された値）であるか否かを判定し（Ｓ２２０〜Ｓ２５０）、ＳＲＡＭ値がＥＥＰＲＯＭ値よりも１だけ大きいデータがあれば、そのデータは本ＥＣＵ１の前回の動作期間においてＥＥＰＲＯＭ１１への書き込みが未完了であったと判断して、そのデータのＳＲＡＭ値をＥＥＰＲＯＭ１１に書き込むようにしている（Ｓ２４０：ＹＥＳ→Ｓ２６０）。
【００５４】
よって、このような本実施形態のＥＣＵ１によれば、ＲａｔｅＢａｓｅモニタ法で定められている各診断対象項目のモニタ頻度を表すデータであって、１回の動作期間中に最大で１回だけインクリメントされることで値が１だけ増加する継続保存対象データについて、そのデータのＥＥＰＲＯＭ１１への記憶抜けを正確に検出することができ、更に、その記憶抜けが生じたデータ（即ち、前回の動作期間においてＥＰＲＯＭ１１への書き込みが未完了であったデータ）を、ＳＲＡＭ２９からＥＥＰＲＯＭ１１に書き込んでリカバリーすることができる。
【００５５】
また、本実施形態のＥＣＵ１では、マイコン７が図５のイニシャル処理を実行することにより、本ＥＣＵ１が動作電源ＶＤの投入により動作を開始した際に、ＳＲＡＭ２９内のデータが正常であるか否かを判定し（Ｓ２１０）、正常でないと判定した場合には、Ｓ２２０〜Ｓ２６０の処理が実施されるのを禁止している（Ｓ２１０：ＮＯ）。
【００５６】
このため、バッテリ外れ等が発生してＳＲＡＭ１９内のデータが正常でなくなった場合に、前回の動作期間においてＥＥＰＲＯＭ１１への継続保存対象データの書き込みが未完了であったと誤って判断してしまうことと、異常なデータ値がＥＥＰＲＯＭ１１に記憶されてしまうこととを防止することができる。
【００５７】
尚、本実施形態では、図４の定期処理が、継続保存対象データを書き換え可能不揮発性メモリとスタンバイＲＡＭとの両方に記憶させる処理に相当している。そして、図５のＳ２２０〜Ｓ２５０が、記憶抜け検知手段としての処理に相当し、図５のＳ２６０が、データ回復手段としての処理に相当している。そして更に、図５のＳ２１０が、判定手段としての処理に相当している。また、図４のＳ１５０が、書換え手段としての処理に相当し、図４のＳ１６０が、記憶手段としての処理に相当している。
【００５８】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態では、継続保存対象データが、ＥＣＵの１回の動作期間中に、最大で１回だけ更新されることで値が１だけ増加方向に変化するデータであったため、図５のＳ２４０にて、「Ｓ［ｉ］＝Ｅ［ｉ］＋１」であるか否かを判定したが、もし、継続対象データがデクリメントされるものであり、そのデータの変化方向が減少方向であるならば、図５のＳ２４０にて、「Ｓ［ｉ］＝Ｅ［ｉ］−１」であるか否かを判定するように構成すれば良い。
【００５９】
また、継続保存対象データが、ＥＣＵの１回の動作期間中において、ある単位変化量ずつ且つ複数回増加される可能性があるものならば、図５のＳ２４０にて、「Ｓ［ｉ］＞Ｅ［ｉ］」であるか否かを判定するように構成すれば良い。同様に、継続保存対象データが、ＥＣＵの１回の動作期間中において、ある単位変化量ずつ且つ複数回減少される可能性があるものならば、図５のＳ２４０にて、「Ｓ［ｉ］＜Ｅ［ｉ］」であるか否かを判定するように構成すれば良い。尚、この場合、継続保存対象データの単位変化量は、常に同じ値である必要はない。
【００６０】
また、上記実施形態では、各継続保存対象データのＳＲＡＭ２９及びＥＥＰＲＯＭ１１への書き込み処理を、１つの定期処理（図４）で実施するようにしたが、その書き込み処理は、各継続保存対象データの値をＮＲＡＭ２７上で更新するルーチン毎に、関数コールやサブルーチン形式等で実施するようにしても良い。
【００６１】
一方、上記実施形態において、ＮＲＡＭ２７を設けずに、継続保存対象データのインクリメント処理を含む各種データ処理をＳＲＡＭ２９上で実施するのであれば（つまり、継続保存対象データをインクリメントする作業エリアが元々ＳＲＡＭ２９である場合）には、図４のＳ１５０と図５のＳ２０５及びＳ２８０とが不要となる。尚、この場合、インクリメント終了フラグＦ［ｉ］もＳＲＡＭ２９内に設けられることとなるため、そのフラグのクリアは、イニシャル処理の何処かで実施すれば良い。
【００６２】
また、図５において、Ｓ２７０の処理は、Ｓ２１０とＳ２３０との何れかで否定判定した場合に、Ｓ２８０の直前で実施するようにしても良い。但し、Ｓ２７０の処理は、図５のように、Ｓ２１０でＳＲＡＭ２９内のデータが正常ではないと判定した場合にのみ実施した方が効率的である。
【００６３】
また更に、書き換え可能不揮発性メモリとしては、ＥＥＰＲＯＭに限らず、例えばフラッシュＲＯＭを用いても良い。
一方、継続保存対象データは、単純に増加又は減少していくものに限らず、初期値Ａから最終値Ｂまでの間で繰り返し変化するように設定されるものでも良く、その場合には、最終値Ｂの次が初期値Ａになるという規則性に従って、データの記憶抜け検出を行い本案でのデータ回復手段を適用すれば良い。
【００６４】
具体例を挙げると、図６に示すように、継続保存対象データが、初期値０から１ずつ増加すると共に、最大値１５の次には初期値０に戻るように更新される場合には、図５のイニシャル処理を、図７のように変形すれば良い。尚、図７において、図５と同じ内容の処理ステップについては、同一のステップ番号を付しているため、説明を省略する。
【００６５】
即ち、図７のイニシャル処理では、図５に対してＳ２４５の処理が追加されている。そして、Ｓ２４０で「Ｓ［ｉ］＝Ｅ［ｉ］＋１」でないと判定した場合に（Ｓ２４０：ＮＯ）、そのＳ２４５へ移行して、「Ｓ［ｉ］＝０且つＥ［ｉ］＝１５」であるか否かを判定し、「Ｓ［ｉ］＝０且つＥ［ｉ］＝１５」でなければ（Ｓ２４５：ＮＯ）、そのままＳ２５０に移行するが、「Ｓ［ｉ］＝０且つＥ［ｉ］＝１５」であったならば（Ｓ２４５：ＹＥＳ）、Ｓ２４０で「Ｓ［ｉ］＝Ｅ［ｉ］＋１」であると判定した場合と同様に、ＥＥＰＲＯＭ１１へのｉ番目の継続保存対象データの記憶抜けが生じていたと判断して、Ｓ２６０に進み、そのＳ２６０にて、Ｓ［ｉ］をＥＥＰＲＯＭ１１にＥ［ｉ］として書き込むようにすれば良い。
【００６６】
そして、このようにすれば、継続保存対象データが図６のように初期値０から最大値１５までの間で繰り返し変化するような規則性を持ったデータであっても、ＥＥＰＲＯＭ１１への記憶抜けを防止することができる。尚、継続保存対象データは、初期値から最小値までの間で繰り返し変化する（つまり、初期値から減少して最小値になると次に初期値へ戻る）という規則性を持ったデータであっても良い。
【図面の簡単な説明】
【００６７】
【図１】実施形態の電子制御装置（ＥＣＵ）の構成を表すブロック図である。
【図２】ＳＲＡＭ及びＥＥＰＲＯＭに記憶される継続保存対象データと、インクリメント終了フラグとを説明する説明図である。
【図３】ＥＣＵのマイコンが継続保存対象データをＲＡＭ上でインクリメントする際の処理を表すフローチャートである。
【図４】ＥＣＵのマイコンで実行される定期処理を表すフローチャートである。
【図５】ＥＣＵのマイコンで実行されるイニシャル処理を表すフローチャートである。
【図６】継続保存対象データの他の規則性を表す説明図である。
【図７】継続保存対象データが図６のように更新される場合のイニシャル処理を表すフローチャートである。
【符号の説明】
【００６８】
１…電子制御装置（ＥＣＵ）、３…センサ、５…入力処理回路、７…マイコン、９…通信ライン、１１…ＥＥＰＲＯＭ、１３…アクチュエータ、１５…出力回路、１７…イグニッションスイッチ、１９…バッテリ、２１…電源回路、２３…ＣＰＵ、２５…ＲＯＭ、２７…ノーマルＲＡＭ（ＮＲＡＭ）、２９…スタンバイＲＡＭ（ＳＲＡＭ）、３１…Ｉ／Ｏ、３３…診断ツール
【図１】
2004164601.tif 000003
【図２】
2004164601.tif 000004
【図３】
2004164601.tif 000005
【図４】
2004164601.tif 000006
【図５】
2004164601.tif 000007
【図６】
2004164601.tif 000008
【図７】
2004164601.tif 000009