(57)【要約】【課題】不揮発性メモリの故障診断精度を向上させる。【解決手段】自動車用電子制御装置は、イグニッションスイッチがＯＦＦになったセルフシャットダウン中に、不揮発性メモリに確保された複数のデータバンクに同一データを書き込む。また、自動車用電子制御装置は、イグニッションスイッチがＯＮになった起動時に、複数のデータバンクに書き込まれた各データが正常であるか否かを判定し（Ｓ１１，Ｓ１２）、データの少なくとも１つが正常でなければ（Ｓ１３）、正常でないと判定されたデータが書き込まれていたデータバンクに正常であると判定されたデータを書き込む（Ｓ１４）。そして、自動車用電子制御装置は、データを正常に書き込むことができなければ（Ｓ１６）、不揮発性メモリが故障していると診断する（Ｓ１９）。【選択図】図４
2020035503.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータを書換可能な不揮発性メモリを有する自動車用電子制御装置であって、
イグニッションスイッチがＯＦＦになったセルフシャットダウン中に、前記不揮発性メモリに確保された複数の第１の記憶領域に同一データを書き込み、
前記イグニッションスイッチがＯＮになった起動時に、前記複数の第１の記憶領域に書き込まれた各データが正常であるか否かを判定し、前記データの少なくとも１つが正常でなければ、正常でないと判定された前記データが書き込まれていた前記第１の記憶領域に正常であると判定された前記データを書き込み、当該データを正常に書き込むことができなければ、前記不揮発性メモリが故障していると診断する、
自動車用電子制御装置。
【請求項２】
正常でないと判定された前記データが書き込まれていた前記第１の記憶領域に正常であると判定された前記データを書き込むに先立って、データ書き込み対象の前記第１の記憶領域に所定のデータを書き込む、
請求項１に記載の自動車用電子制御装置。
【請求項３】
前記所定のデータは、１６進数の５５５５ｈ及びＡＡＡＡｈである、
請求項２に記載の自動車用電子制御装置。
【請求項４】
前記複数の第１の記憶領域に書き込まれていたすべてのデータが正常でないとき、前記複数の第１領域のすべてに所定のデフォルト値を書き込む、
請求項１〜請求項３のいずれか１つに記載の自動車用電子制御装置。
【請求項５】
前記不揮発性メモリが故障していると診断されたとき、他の電子制御装置に対して警告灯の点灯依頼を送信する、
請求項１〜請求項４のいずれか１つに記載の自動車用電子制御装置。
【請求項６】
前記イグニッションスイッチがＯＮになるたびに、前記不揮発性メモリに確保された少なくとも１つの第２の記憶領域に任意のデータを書き込み、前記任意のデータと前記少なくとも１つの第２の記憶領域に書き込まれたデータとを比較して、前記不揮発性メモリへのデータ書き込み機能が失陥しているか否かを診断する、
請求項１〜請求項５のいずれか１つに記載の自動車用電子制御装置。
【請求項７】
前記任意のデータは、前記イグニッションスイッチがＯＮになるたびに変化するデータである、
請求項６に記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関する。
【背景技術】
【０００２】
自動車用電子制御装置には、イグニッションスイッチをＯＦＦにすると、制御対象の学習値、故障情報などのデータを不揮発性メモリに書き込むなど、ファイナライズ処理を行ってから内部電源を遮断する「セルフシャットダウン機能」が備えられている。そして、イグニッションスイッチをＯＮにすると、自動車用電子制御装置は、不揮発性メモリからデータをＲＡＭ（Random Access Memory）に読み出し、そのデータを使用して制御対象を制御する。
【０００３】
不揮発性メモリの素子の固着などの故障を検知するため、特開２０１４−７５０７８号公報（特許文献１）に記載される技術が提案されている。この提案技術においては、イグニッションスイッチがＯＮになったときに、不揮発性メモリから読み出したデータについて、データに含まれる誤り検出符号を使用してデータが正常に書き込まれたか否かを判定することで、不揮発性メモリの故障が検知されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−７５０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、セルフシャットダウン中のデータ書き込みによって不揮発性メモリの故障が検知できても、例えば、バックアップＲＡＭがないと、その故障情報を保持し続けることができない。また、イグニッションスイッチがＯＮになったときの故障検知では、データ書き込み電圧の瞬間的な低下又は遮断によるデータ破損か、不揮発性メモリ自体の故障であるかを区別することもできない。
【０００６】
そこで、本発明は、不揮発性メモリの故障診断精度を向上させた、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
このため、電気的にデータを書換可能な不揮発性メモリを有する自動車用電子制御装置は、イグニッションスイッチがＯＦＦになったセルフシャットダウン中に、不揮発性メモリに確保された複数の記憶領域に同一データを書き込む。また、自動車用電子制御装置は、イグニッションスイッチがＯＮになった起動時に、複数の記憶領域に書き込まれた各データが正常であるか否かを判定し、データの少なくとも１つが正常でなければ、正常でないと判定されたデータが書き込まれていた記憶領域に正常であると判定されたデータを書き込む。そして、自動車用電子制御装置は、データを正常に書き込むことができなければ、不揮発性メモリが故障していると診断する。
【発明の効果】
【０００８】
本発明によれば、不揮発性メモリの故障診断精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】自動車用電子制御装置の一例を示す概略構成図である。
【図２】学習値、故障情報などのデータを格納する記憶領域のデータ構造図である。
【図３】データ書き込み処理の一例を示すフローチャートである。
【図４】故障診断処理の一例を示すフローチャートである。
【図５】正常時における診断シーケンスの第１段階の説明図である。
【図６】正常時における診断シーケンスの第２段階の説明図である。
【図７】正常時における診断シーケンスの第３段階の説明図である。
【図８】正常時における診断シーケンスの第４段階の説明図である。
【図９】異常時における診断シーケンスの第１段階の説明図である。
【図１０】異常時における診断シーケンスの第２段階の説明図である。
【図１１】異常時における診断シーケンスの第３段階の説明図である。
【図１２】異常時における診断シーケンスの第４段階の説明図である。
【図１３】異常時における診断シーケンスの第５段階の説明図である。
【図１４】異常時における診断シーケンスの第６段階の説明図である。
【図１５】書き込み機能診断処理の一例を示すフローチャートである。
【図１６】書き込み機能診断シーケンスの第１段階の説明図である。
【図１７】書き込み機能診断シーケンスの第２段階の説明図である。
【図１８】書き込み機能診断シーケンスの第３段階の説明図である。
【図１９】書き込み機能診断シーケンスの第４段階の説明図である。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、自動車用電子制御装置（以下「電子制御装置」という）１００の一例を示す。
【００１１】
電子制御装置１００は、図示しない自動車に搭載され、例えば、エンジン、自動変速機、燃料ポンプ、バルブタイミングを電動で変更する電動ＶＴＣ（Valve Timing Control）、圧縮比を変更するＶＣＲ（Variable Compression Ratio）などを電子制御する。電子制御装置１００は、プロセッサ１１０と、ＲＡＭ（Random Access Memory）１２０と、ＥＥＰＲＯＭ（Electrically Etasable Programmable Read Only Memory）１３０と、通信回路１４０と、入出力回路１５０と、これらを相互通信可能に接続するバス１６０と、を有している。なお、電動ＶＴＣやＶＣＲなどのサブシステムには、一般的に、セルフシャットダウン中に検知された故障を保持し続けることができるバックアップＲＡＭや、警告灯を点灯させる機能は備えられていない。以下の説明では、電子制御装置１００は電動ＶＴＣなどのサブシステムとするが、この限りではない。
【００１２】
プロセッサ１１０は、ソフトウエアプログラムに記述された命令セットを実行するハードウエアであって、例えば、ＣＰＵ（Central Processing Unit）などからなる。ＲＡＭ１２０は、電源を遮断するとデータが消失する揮発性メモリの一例であって、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）などからなる。ＥＥＰＲＯＭ１３０は、電源を遮断してもデータが保持されると共に、電気的にデータを書換可能な不揮発性メモリの一例であって、例えば、フラッシュＲＯＭ（Read Only Memory）などからなる。通信回路１４０は、車載ネットワークの一例であるＣＡＮ（Controller Area Network）などを介して、他の電子制御装置などと通信するためのデバイスであって、例えば、ＣＡＮトランシーバなどからなる。入出力回路１５０は、各種のセンサ又はスイッチなどからアナログ信号又はデジタル信号を読み込むと共に、アクチュエータなどにアナログ又はデジタルの駆動信号を出力するデバイスであって、例えば、Ａ／Ｄコンバータ、Ｄ／Ｄコンバータなどからなる。
【００１３】
ＥＥＰＲＯＭ１３０には、図２に示すように、制御対象に関する学習値、故障情報などのデータを記憶する複数の第１の記憶領域として、例えば、データバンク１〜４が確保されている。ここで、故障情報は、電子制御装置１００の作動中に、例えば、ＯＢＤ（On-Board Diagnostics）機能により収集される。なお、複数の第１の記憶領域としては、４つのデータバンク１〜４に限らず、例えば、制御対象の重要度などを考慮してその個数を決定することができる。
【００１４】
そして、電子制御装置１００は、例えば、ＥＥＰＲＯＭ１３０とは異なるＰＲＯＭ（Programmable ROM）に格納されている制御プログラム（制御変数を含む）に従って、以下に説明する処理によって、ＥＥＰＲＯＭ１３０に故障が発生しているか否かを診断する。ここで、制御プログラムがＰＲＯＭに格納されている理由は、ＥＥＰＲＯＭ１３０に故障が発生していると、制御プログラムが正常に動作しない可能性があるため、ＥＥＰＲＯＭ１３０に故障が発生しているか否かを誤診断してしまうおそれがあるからである。
【００１５】
図３は、イグニッションスイッチがＯＦＦになったことを契機として、電子制御装置１００のプロセッサ１１０が、内部電源を保持しつつファイナライズ処理を実行するセルフシャットダウン中に実行する、データ書き込み処理の一例を示す。なお、データ書き込み処理を実行する前提として、電子制御装置１００の作動中に学習値、故障情報などのデータが収集されてＲＡＭ１２０に記憶されているものとする。
【００１６】
ステップ１（図３では「Ｓ１」と略記する。以下同様。）では、プロセッサ１１０が、ＥＥＰＲＯＭ１３０のデータバンクを特定する制御変数ｉに１を代入する。
【００１７】
ステップ２では、プロセッサ１１０が、ＥＥＰＲＯＭ１３０のデータバンク［ｉ］に、ＲＡＭ１２０に記憶されている学習値、故障情報などのデータを書き込む。このとき、プロセッサ１１０は、データバンク［ｉ］に書き込むデータのチェックサムを算出する。
【００１８】
ステップ３では、プロセッサ１１０が、ステップ２で算出したチェックサムとデータバンク［ｉ］に書き込まれたデータに含まれるチェックサムとを比較し、データの書き込みが正常に終了したか否かを判定する。そして、プロセッサ１１０は、データの書き込みが正常に終了したと判定すれば、処理をステップ５へと進める（Ｙｅｓ）。一方、プロセッサ１１０は、データの書き込みが正常に終了しない、即ち、データの書き込みに異常が発生したと判定すれば、処理をステップ４へと進める（Ｎｏ）。なお、電子制御装置１００のハードウエアによって、データの書き込みが正常に終了したか否かを判定するようにしてもよい。
【００１９】
ステップ４では、データの書き込みが正常に終了しなかったので、プロセッサ１１０が、異常を検出したことをＲＡＭ１２０に記憶させる。その後、プロセッサ１１０は、処理をステップ５へと進める。なお、セルフシャットダウンが終了したときには、内部電源が遮断されてＲＡＭ１２０のデータが消失するので、異常を検出したことをＲＡＭ１２０に記憶させなくてもよい。
【００２０】
ステップ５では、プロセッサ１１０が、制御変数ｉをインクリメント、即ち、ｉ＝ｉ＋１とする。
【００２１】
ステップ６では、プロセッサ１１０が、制御変数ｉがＥＥＰＲＯＭ１３０に確保されたデータバンクの個数ｎ（本実施形態では４）を上回ったか否か、即ち、最後のデータバンクまでデータを書き込んだか否かを判定する。そして、プロセッサ１１０は、最後のデータバンクまでデータを書き込んだと判定すれば、データ書き込み処理を終了させる（Ｙｅｓ）。一方、プロセッサ１１０は、最後のデータバンクまでデータを書き込んでいないと判定すれば、処理をステップ２へと戻す（Ｎｏ）。なお、データ書き込み機能の失陥やＥＥＰＲＯＭ１３０の故障などにより、データ書き込み処理が終了できない可能性を考慮し、イグニッションスイッチをＯＦＦにしてから所定時間経過後に、データ書き込み処理を強制的に終了させてもよい。
【００２２】
かかるデータ書き込み処理によれば、イグニッションスイッチがＯＦＦになったセルフシャットダウン中に、作動中に収集された学習値、故障情報などのデータは、ＥＥＰＲＯＭ１３０に確保された複数のデータバンクに書き込まれる。即ち、ＥＥＰＲＯＭ１３０の複数のデータバンクには、同一データが書き込まれる。なお、データの書き込みが正常に終了したか否かは、チェックサムに限らず、ＣＲＣ（Cyclic Redundancy Check）、パリティビットなどの誤り検出符号を使用して判定してもよい（以下同様）。
【００２３】
図４は、イグニッションスイッチがＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が起動時に実行する、故障診断処理の一例を示す。
【００２４】
ステップ１１では、プロセッサ１１０が、ＥＥＰＲＯＭ１３０の複数のデータバンクに書き込まれているすべてのデータを読み込む。なお、プロセッサ１１０は、どのデータバンクに書き込まれていたデータであるかを特定可能なように、例えば、数字からなる識別子を付しつつデータを読み込むことができる。ここで、識別子として順次大きくなる数値を使用した場合、最も大きい数字が付されているデータバンクが最新のものであると特定することもできる。
【００２５】
ステップ１２では、プロセッサ１１０が、各データバンクに書き込まれていたデータについて、データから算出したチェックサムとデータに含まれるチェックサムとを比較して、内容が異常となっているデータ（異常データ）があるか否かを判定する。そして、プロセッサ１１０は、異常データがあると判定すれば、処理をステップ１３へと進める（Ｙｅｓ）。一方、プロセッサ１１０は、異常データがないと判定すれば、処理をステップ２３へと進める（Ｎｏ）。ここで、異常データが書き込まれていたデータバンクの識別子については、後述の処理のために、例えば、ＲＡＭ１２０に書き込んでおく。
【００２６】
ステップ１３では、プロセッサ１１０が、ステップ１２での比較結果に基づいて、内容が正常であるデータ（正常データ）があるか否かを判定する。そして、プロセッサ１１０は、正常データがあると判定すれば、処理をステップ１４へと進める（Ｙｅｓ）。一方、プロセッサ１１０は、正常データがない、即ち、各データバンクに書き込まれていたすべてのデータが異常であると判定すれば、処理をステップ１６へと進める（Ｎｏ）。
【００２７】
ステップ１４では、プロセッサ１１０が、複数のデータバンクの中から所定規則によって選定された１つのデータバンクに書き込まれているデータをＲＡＭ１２０にコピーする。ここで、所定規則としては、例えば、ステップ１１においてデータ読み込みが正常に行われたデータバンクのうち、識別子によって最新のものであると特定されるデータバンクとすることができる。
【００２８】
ステップ１５では、一部のデータバンクに書き込まれていたデータが異常であったため、プロセッサ１１０が、異常データが書き込まれていたデータバンクに最新の正常データを書き込む。即ち、プロセッサ１１０は、セルフシャットダウン中のデータ書き込み処理において、例えば、書き込み電圧が瞬間的に低下又は遮断して書き込みが正常に終了できなかった可能性を鑑み、データをデータバンクに再度書き込む。このとき、プロセッサ１１０は、データバンクに書き込むデータのチェックサムを算出する。その後、プロセッサ１１０は、処理をステップ１６へと進める。
【００２９】
ステップ１６では、各データバンクに書き込まれていたすべてのデータが異常であるため、プロセッサ１１０が、初期値などのデフォルト値をＲＡＭ１２０にコピーする。
【００３０】
ステップ１７では、各データバンクに書き込まれていたすべてのデータが異常であるため、プロセッサ１１０が、すべてのデータバンク１〜４に初期値などのデフォルト値を書き込む。このとき、プロセッサ１１０は、各データバンクに書き込むデータのチェックサムを算出する。その後、プロセッサ１１０は、処理をステップ１８へと進める。
【００３１】
ステップ１８では、プロセッサ１１０が、ステップ１５又はステップ１７でデータを書き込んだデータバンクについて、ステップ１５又はステップ１７で算出したチェックサムとデータバンクに書き込まれたデータに含まれるチェックサムとを比較し、データの書き込みが正常に終了したか否かを判定する。そして、プロセッサ１１０は、データの書き込みが正常に終了したと判定すれば、処理をステップ１９へと進める（Ｙｅｓ）。一方、プロセッサ１１０は、データの書き込みが正常に終了しない、即ち、データの書き込みに異常が発生したと判定すれば、処理をステップ２０へと進める（Ｎｏ）。なお、電子制御装置１００のハードウエアによって、データの書き込みが正常に終了したか否かを判定するようにしてもよい。
【００３２】
ステップ１９では、セルフシャットダウン中にデータの書き込みが正常に終了しなかったデータバンクへのデータの書き込みが正常に終了したので、プロセッサ１１０が、異常が検出されなかったことをＲＡＭ１２０に記憶させる。その後、プロセッサ１１０は、故障診断処理を終了させる。なお、プロセッサ１１０は、制御対象を実際に制御するとき、ＲＡＭ１２０に書き込まれたデータを参照して、制御値を学習値で補正したり、故障情報を追加したりすることができる。
【００３３】
ステップ２０では、セルフシャットダウン中にデータの書き込みが正常に終了しなかったデータバンクへのデータの書き込みが正常に終了しなかったので、プロセッサ１１０が、ＥＥＰＲＯＭ１３０が異常、即ち、ＥＥＰＲＯＭ１３０が故障していると判断し、異常が検出されたことをＲＡＭ１２０に記憶させる。なお、ＲＡＭ１２０に記憶させた情報は、制御対象を実際に制御する際に利用することができる。
【００３４】
ステップ２１では、プロセッサ１１０が、例えば、車両の運転席の前方に取り付けられているインストルメントパネルの警告灯を点灯させることができるエンジン制御ユニットなどに対して、ＣＡＮ通信などを介して警告灯の点灯依頼を送信する。そして、この点灯依頼を受信したエンジン制御ユニットなどは、電子制御装置１００に代わって警告灯を点灯させる。従って、車両の運転者は、インストルメントパネルの警告灯が点灯することで、ＥＥＰＲＯＭ１３０に故障が発生している可能性があることを認識できる。なお、電子制御装置１００がサブシステムでなければ、自ら警告灯を点灯させることができる。
【００３５】
ステップ２２では、プロセッサ１１０が、制御対象を制御するモードをフェイルセーフモードに移行する。従って、制御対象は、ＥＥＰＲＯＭ１３０が故障していても、機能が制限された状態で作動可能となり、例えば、運転者がサービス工場まで車両を走行させることができる。その後、プロセッサ１１０は、故障診断処理を終了させる。なお、プロセッサ１１０は、フェイルセーフモードに移行する代わりに、又は、これと併せて、ＲＡＭ１２０にデフォルト値を書き込むようにしてもよい。
【００３６】
かかる故障診断処理によれば、イグニッションスイッチがＯＮになった起動時に、ＥＥＰＲＯＭ１３０の複数のデータバンクに書き込まれている各データが正常であるか否かが判定される。そして、データの少なくとも１つが異常であれば、異常データが書き込まれていたデータバンクに最新の正常データが書き込まれる。その後、データが正常に書き込まれたか否かが判定され、データが正常に書き込まれていなければ、ＥＥＰＲＯＭ１３０が故障していると診断される。
【００３７】
要するに、セルフシャットダウン中のデータ書き込みは、書き込み電圧の瞬間的な低下又は遮断などにより正常に終了しなかった可能性を鑑み、再起動時にデータ書き込みを再度実行することで、そのデータ書き込みに係るデータバンク、即ち、ＥＥＰＲＯＭ１３０が故障しているか否かが診断される。このため、何らかの原因によって書き込み電圧の瞬間的な低下又は遮断が頻発する状態であっても、再起動時にＥＥＰＲＯＭ１３０が故障しているか否かが診断されるため、ＥＥＰＲＯＭ１３０の故障診断精度を向上させることができる。再起動時にＥＥＰＲＯＭ１３０の故障が検知できた場合、電動ＶＴＣなどのサブシステムは警告灯を点灯することができないが、例えば、警告灯を点灯できるエンジン制御ユニットにＣＡＮ通信などを介して警告灯の点灯依頼を送信することで、エンジン制御ユニットが、サブシステムに代わって警告灯を点灯して運転者に知らせることができる。また、ＥＥＰＲＯＭ１３０の故障は、イグニッションスイッチがＯＮになったときに診断されるため、バックアップＲＡＭが不要となる。
【００３８】
また、異常データが書き込まれていたデータバンクに正常データを書き込むに先立って、所定のデータ、例えば、１６進数の５５５５ｈ及びＡＡＡＡｈを書き込んでから、正常データを書き込むようにしてもよい。このようにすれば、ＥＥＰＲＯＭ１３０のメモリセル（ビット）故障を検知することができる。
【００３９】
ここで、ＥＥＰＲＯＭ１３０の故障診断方法の理解を容易ならしめることを目的として、ＥＥＰＲＯＭ１３０が正常であるときの診断シーケンスと、ＥＥＰＲＯＭ１３０に異常が発生したときの診断シーケンスと、を比較して説明する。なお、異常が発生したときの診断シーケンスの前提として、ＥＥＰＲＯＭ１３０のデータバンク２が故障しているものとする。
【００４０】
［正常時の診断シーケンス］
イグニッションスイッチがＯＦＦになったセルフシャットダウン中のデータ書き込みでは、図５に示すように、ＲＡＭ１２０のデータ２が、最初に、ＥＥＰＲＯＭ１３０のデータバンク１に書き込まれる。次に、ＲＡＭ１２０のデータ２が、ＥＥＰＲＯＭ１３０のデータバンク２及び３に書き込まれた後、図６に示すように、ＲＡＭ１２０のデータ２が、ＥＥＰＲＯＭ１３０のデータバンク４に書き込まれる。
【００４１】
その後、ファイナライズ処理が終了して内部電源が遮断されると、ＲＡＭ１２０のデータが消失するので、図７に示すように、ＥＥＰＲＯＭ状態及びデータが不定となる。この状態でイグニッションスイッチがＯＮになると、ＥＥＰＲＯＭ１３０の全データバンクに書き込まれていたデータが正常であるか否か判定される。全データバンクに書き込まれていたデータが正常であると、例えば、図８に示すように、データバンク１のデータがＲＡＭ１２０にコピーされると共に、そのＥＥＰＲＯＭ状態が正常に設定される。このような処理が、イグニッションスイッチがＯＦＦ又はＯＮになったときに順次実行され、ＥＥＰＲＯＭ１３０が正常であるとの診断が行われる。
【００４２】
［異常時の診断シーケンス］
イグニッションスイッチがＯＦＦになったセルフシャットダウン中のデータ書き込みでは、図９に示すように、ＲＡＭ１２０のデータ２が、最初に、ＥＥＰＲＯＭ１３０のデータバンク１に書き込まれる。次に、ＲＡＭ１２０のデータ２が、ＥＥＰＲＯＭ１３０のデータバンク２に書き込まれる。このとき、データバンク２が故障しているため、データ書き込みが正常に終了せず、図１０に示すように、ＲＡＭ１２０のＥＥＰＲＯＭ状態が異常に設定される。そして、ＲＡＭ１２０のデータ２が、ＥＥＰＲＯＭ１３０のデータバンク３及び４に夫々書き込まれる。
【００４３】
その後、ファイナライズ処理が終了して内部電源が遮断されると、ＲＡＭ１２０のデータが消失するので、図１１に示すように、ＥＥＰＲＯＭ状態及びデータが不定となる。従って、セルフシャットダウン中にデータバンク２が故障であると判定された情報は、内部電源の遮断によって消失してしまう。この状態でイグニッションスイッチがＯＮになると、ＥＥＰＲＯＭ１３０の全データバンクに書き込まれていたデータが正常であるか否か判定される。データバンク２のデータが異常であるので、図１２に示すように、正常であるデータバンク１のデータがデータバンク２に書き込まれる。そして、データバンク２へのデータ書き込みが正常に終了しなかったので、図１３に示すように、ＲＡＭ１２０のＥＥＰＲＯＭ状態が異常に設定される。このような処理を実行した後、図１４に示すように、正常であるデータバンク１のデータがＲＡＭ１２０にコピーされる。このような処理が、イグニッションスイッチがＯＦＦ又はＯＮになったときに順次実行され、ＥＥＰＲＯＭ１３０が故障しているとの診断が行われる。
【００４４】
ところで、ＥＥＰＲＯＭ１３０の複数のデータバンクにデータが正常に書き込まれている状態で、ＥＥＰＲＯＭ１３０へのデータ書き込み機能が失陥すると、イグニッションスイッチがＯＮになった起動時の故障診断処理において、ＥＥＰＲＯＭ１３０の故障を診断することができない。即ち、セルフシャットダウン中にデータを書き込むことができなくても、複数のデータバンクに書き込まれているデータが正常であるので、これからＥＥＰＲＯＭ１３０の故障を診断することができない。このため、データ書き込み機能が失陥した後、ＥＥＰＲＯＭ１３０の複数のデータバンクにデータを正常に書き込むことができないことを検知できず、制御対象に影響を及ぼしてしまう。
【００４５】
そこで、電子制御装置１００のプロセッサ１１０は、イグニッションスイッチがＯＮになるたびに、ＥＥＰＲＯＭ１３０に確保された２つの記憶領域１及び２に任意のデータ及びその反転値を夫々書き込み、任意のデータ及びその反転値と書き込まれた２つのデータとを比較して、データ書き込み機能が失陥しているか否かを診断してもよい。ここで、任意のデータとしては、イグニッションスイッチがＯＮになるたびに変化するデータが望ましく、例えば、ＥＥＰＲＯＭ１３０へのデータ書き込み回数などを使用することができる。なお、記憶領域１及び２が、少なくとも１つの第２の記憶領域の一例として挙げられる。
【００４６】
図１５は、イグニッションスイッチがＯＮになったことを契機として、電子制御装置１００のプロセッサ１１０が起動時に実行する、書き込み機能診断処理の一例を示す。なお、ＥＥＰＲＯＭ１３０へのデータ書き込み回数は、電子制御装置１００の初期化処理において、ＥＥＰＲＯＭ１３０の記憶領域１より読み出した値をインクリメントし、このインクリメントした値がＲＡＭ１２０に書き込まれているものとする。
【００４７】
ステップ３１では、プロセッサ１１０が、ＲＡＭ１２０からインクリメントされた書き込み回数を読み出し、これをＥＥＰＲＯＭ１３０の記憶領域１に書き込む。
【００４８】
ステップ３２では、プロセッサ１１０が、ＲＡＭ１２０から読み出したインクリメントされた書き込み回数の反転値を求め、これをＥＥＰＲＯＭ１３０の記憶領域２に書き込む。ここで、書き込み回数の反転値とは、書き込み回数データの各ビットを反転、即ち、各ビットの０と１とを反転させたものをいう。このようにすれば、インクリメントされた書き込み回数とその反転値をＥＥＰＲＯＭ１３０に書き込むことによって、書き込み機能診断を毎回全ビット（ハードウエア固有の書き込み単位）に対して行うことができる。また、ＥＥＰＲＯＭ１３０のバスに対する診断もビット単位で行うことができる。
【００４９】
ステップ３３では、プロセッサ１１０が、ＥＥＰＲＯＭ１３０の記憶領域１及び２に書き込まれたデータを夫々読み出し、書き込んだデータと書き込まれたデータとを比較することで、データ間に整合性があるか否かを判定する。具体的には、プロセッサ１１０は、書き込み回数と記憶領域１から読み込んだデータとが同一であるか否かを判定すると共に、書き込み回数の反転値と記憶領域２から読み出したデータとが同一であるか否かを判定することで、データ間の整合性を判定する。そして、プロセッサ１１０は、データ間に整合性がないと判定すれば、処理をステップ３４へと進める（Ｙｅｓ）。一方、プロセッサ１１０は、データ間に整合性があると判定すれば、書き込み機能診断処理を終了させる（Ｎｏ）。
【００５０】
ステップ３４では、データ間に整合性がない、即ち、データを正常に書き込むことができなかったため、プロセッサ１１０が、データ書き込み機能が失陥していると診断する。なお、警告灯を自ら点灯させることができない電動ＶＴＣのデータ書き込み機能が失陥していると診断されたときには、プロセッサ１１０は、例えば、ＣＡＮ通信を介してエンジン制御ユニットなどへ警告灯の点灯依頼を送信し、エンジン制御ユニットが、車両の運転席の前方に取り付けられているインストルメントパネルの警告灯を点灯させてもよい。また、データ書き込み機能が所定回数連続して失陥していると診断されたときに、その診断を確定するようにしてもよい。
【００５１】
かかる書き込み機能診断処理によれば、イグニッションスイッチがＯＮになるたびに、ＥＥＰＲＯＭ１３０に確保された記憶領域１及び２に対して、データ書き込み回数及びその反転値が書き込まれる。そして、書き込んだデータと書き込まれたデータとが比較され、これらの間に整合性がなければ、データ書き込み機能が失陥していると診断される。即ち、データ書き込み機能が失陥しているときには、ＥＥＰＲＯＭ１３０にデータを書き込むことができないので、書き込むデータと書き込まれたデータとの間に整合性がなくなってしまう。このため、書き込むデータと書き込まれたデータとを比較することで、データ書き込み機能が失陥しているか否かを診断することができる。
【００５２】
ここで、データ書き込み機能の失陥診断方法の理解を容易ならしめることを目的として、具体的な例を挙げて説明する。なお、以下の説明においては、初期状態では、データ書き込み機能が正常であり、かつ、データ書き込み回数が００００ｈ（１６進数）であるものとする。ここで、初期状態のデータ書き込み回数は００００ｈ以外の値でもよく、また、データ長も４バイトなどの任意の長さとしてもよい。ここで、データ書き込み回数のデータ長は、ハードウエア固有の書き込み単位の最小値（例えば、２バイト）とし、それ以上のデータ長であってもよい。但し、ハードウエア固有の書き込み単位の最小値の整数倍とすると、ソフトウエアの構成上、管理が容易になる。
【００５３】
初期状態においてイグニッションスイッチがＯＮになると、図１６に示すように、初期化処理でインクリメントされたデータ書き込み回数０００１ｈが記憶領域１に書き込まれると共に、データ書き込み回数の反転値ＦＦＦＥｈが記憶領域２に書き込まれる。初期状態ではデータ書き込み機能が正常であるため、書き込んだデータと書き込まれたデータとの間には整合性がある。このため、第１回目の診断においては、データ書き込み機能が正常であると診断される。ここで、電子制御装置１００が搭載された車両が市場に出荷された後は、初期状態のデータ書き込み回数を使用しないようにすることで、初期状態（若しくは意図した初期化）か、そうでないかを区別することができる。また、市場に出荷されても初期状態のデータ書き込み回数のままであれば、出荷後に何らかの原因でＥＥＰＲＯＭ１３０が故障したと認識することができる。なお、このような場合には、初期状態のデータ書き込み回数は、ソフトウエアによっても書き込まれないようにすることが好ましい。
【００５４】
イグニッションスイッチが再度ＯＮになると、図１７に示すように、初期化処理でインクリメントされたデータ書き込み回数０００２ｈが記憶領域１に書き込まれると共に、データ書き込み回数の反転値ＦＦＦＤｈが記憶領域２に書き込まれる。このとき、データ書き込み機能が正常であるため、書き込んだデータと書き込まれたデータとの間には整合性がある。このため、第２回目の診断においても、データ書き込み機能が正常であると診断される。その後、イグニッションスイッチがＯＦＦになるまでの間に、何らかの理由によって、データ書き込み機能が失陥したとする。
【００５５】
イグニッションスイッチが再度ＯＮになると、図１８に示すように、初期化処理でインクリメントされたデータ書き込み回数０００３ｈが記憶領域１に書き込まれると共に、データ書き込み回数の反転値ＦＦＦＣｈが記憶領域２に書き込まれる。このとき、データ書き込み機能が失陥しているので、記憶領域１及び２の内容は、前回のまま、即ち、記憶領域１には０００２ｈ、記憶領域２にはＦＦＦＤｈが書き込まれており、書き込むデータと書き込まれたデータとの間には整合性がなくなってしまう。このため、第３回目の診断においては、データ書き込み機能が失陥していると診断される。
【００５６】
その後、イグニッションスイッチが再度ＯＮになると、図１９に示すように、初期化処理でインクリメントされたデータ書き込み回数０００４ｈが記憶領域１に書き込まれると共に、データ書き込み回数の反転値ＦＦＦＢｈが記憶領域２に書き込まれる。このとき、データ書き込み機能が失陥しているので、記憶領域１には０００２ｈ、記憶領域２にはＦＦＦＤｈが書き込まれており、書き込むデータと書き込まれたデータとの間には整合性がなくなってしまう。このため、第４回目の診断においては、データ書き込み機能が相変わらず失陥していると診断される。
【００５７】
なお、データ書き込み機能の失陥診断は、ＥＥＰＲＯＭ１３０に確保された２つの記憶領域１及び２に限らず、ＥＥＰＲＯＭ１３０に確保された少なくとも１つの記憶領域を使用して、ここに任意のデータ（診断ごとに異なる値を示すデータ）を書き込むことで診断することもできる。また、ＥＥＰＲＯＭ１３０の記憶領域は、例えば、ＥＥＰＲＯＭ１３０のデータ書き込み回数の制約が緩ければ、データバンク１〜４のいずれかを利用してもよい。この場合、特定のデータバンクに対するデータ書き込み回数が過度に増加しないように、データバンク１〜４を順番に利用することが望ましい。
【符号の説明】
【００５８】
１００  電子制御装置（自動車用電子制御装置）
１３０  ＥＥＰＲＯＭ（不揮発性メモリ）
【図１】
2020035503.tif 000003
【図２】
2020035503.tif 000004
【図３】
2020035503.tif 000005
【図４】
2020035503.tif 000006
【図５】
2020035503.tif 000007
【図６】
2020035503.tif 000008
【図７】
2020035503.tif 000009
【図８】
2020035503.tif 000010
【図９】
2020035503.tif 000011
【図１０】
2020035503.tif 000012
【図１１】
2020035503.tif 000013
【図１２】
2020035503.tif 000014
【図１３】
2020035503.tif 000015
【図１４】
2020035503.tif 000016
【図１５】
2020035503.tif 000017
【図１６】
2020035503.tif 000018
【図１７】
2020035503.tif 000019
【図１８】
2020035503.tif 000020
【図１９】
2020035503.tif 000021