(57)【特許請求の範囲】
【請求項１】
車両又は車両の一部を制御するための処理を行うコンピュータがその処理に用いるメモリの記憶領域の全部又は一部を診断対象として、該診断対象の領域を複数に分割した各分割領域毎に診断するメモリ診断装置であって、
前記各分割領域を診断する頻度は、その分割領域に記憶されるデータの異常が前記車両の安全性に与える影響の度合に応じて、その度合が大きいほど高くなるように設定されていること、
を特徴とするメモリ診断装置。
【請求項２】
請求項１に記載のメモリ診断装置において、
前記分割領域を更に複数に分割した各領域を、同じ頻度でかつ異なるタイミングで診断すること
を特徴とするメモリ診断装置。
【請求項３】
車両又は車両の一部を制御するための処理を行うコンピュータを有した制御装置であって、
前記コンピュータが前記処理に用いるメモリの記憶領域の全部又は一部を診断対象として、該診断対象の領域を複数に分割した各分割領域毎に診断する診断手段を備え、
前記診断手段が前記各分割領域を診断する頻度は、その分割領域に記憶されるデータの異常が前記車両の安全性に与える影響の度合に応じて、その度合が大きいほど高くなるように設定されていること、
を特徴とする制御装置。
【請求項４】
請求項３に記載の制御装置において、
前記診断手段は、前記分割領域を更に複数に分割した各領域を、同じ頻度でかつ異なるタイミングで診断すること
を特徴とする制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両又は車両の一部を制御するための処理を行うコンピュータのメモリを診断する技術に関するものである。
【０００２】
【従来の技術】
従来より、例えば、車両のエンジンを制御する電子制御装置においては、そのエンジン制御のための処理をマイクロコンピュータ（以下、マイコンという）が行うようになっている。そして、このマイコンでは、ＲＡＭやＲＯＭ等のメモリが正常であるか否かの診断を定期的に行い、正常でないと判断すると適切なフェイルセーフ処理を行うようになっている。
【０００３】
例えば、特開２０００−６６９６３号公報には、ＲＡＭの記憶領域を複数に分割した各領域毎に順番に診断を行い、異常を検出した場合には、その異常に対処するための処理を行う技術が開示されている。
【０００４】
【発明が解決しようとする課題】
ところで、近年の制御処理の複雑化等により、メモリに記憶されるデータ量が大きくなってきており、ＲＡＭの全領域を一通り診断するだけでもある程度の時間を要する。このため、上記公報の技術では、例えば、ある領域についての診断が完了した直後にその領域で異常が発生したとすると、他の全ての領域を診断して再びその領域が診断されるまでのしばらくの間は、その異常が検出されないこととなる。このため、異常の発生した領域に記憶されているデータが、異常となった際の対処に緊急性を要するものである場合には、その対処が遅れてしまうことが考えられる。
【０００５】
本発明は、こうした問題に鑑みなされたものであり、メモリで発生した異常に対処するための処理の遅れを防止することを目的としている。
【０００６】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載のメモリ診断装置は、車両又は車両の一部を制御するための処理を行うコンピュータがその処理に用いるメモリの記憶領域の全部又は一部を診断対象として、この診断対象の領域を複数に分割した各分割領域毎に診断するものである。そして特に、本装置において、上記各分割領域を診断する頻度は、同じ頻度ではなく、その分割領域に記憶されるデータの異常が車両の安全性に与える影響の度合に応じて、その度合が大きいほど高くなるように設定されている。
【０００９】
この構成によれば、車両の安全性に与える影響の度合が大きいデータ（即ち、車両の安全性の上でより早急な対処が要求されるデータ）であるほど、その異常の発生を早く検出することができるため、異常に対処するための処理の遅れを防止して車両の安全性を向上させることができる。
また、請求項２に記載のメモリ診断装置は、請求項１に記載のメモリ診断装置において、分割領域を更に複数に分割した各領域を、同じ頻度でかつ異なるタイミングで診断する。この構成によれば、１回の診断処理に要する時間を短くして、本来の制御のための処理への影響を小さくすることができる。
【００１０】
一方、請求項３に記載の制御装置は、車両又は車両の一部を制御するための処理を行うコンピュータを有したものであり、このコンピュータが処理に用いるメモリの記憶領域の全部又は一部を診断対象として、その診断対象の領域を複数に分割した各分割領域毎に診断する診断手段を備えている。そして、本装置では、診断手段が各分割領域を診断する頻度が、その分割領域に記憶されるデータの異常が車両の安全性に与える影響の度合に応じて、その度合が大きいほど高くなるように設定されている。この制御装置によれば、上記請求項１の装置について述べた効果と同様に、車両の安全性を向上させることができる。
また、請求項４に記載の制御装置は、請求項３に記載の制御装置において、診断手段が、分割領域を更に複数に分割した各領域を、同じ頻度でかつ異なるタイミングで診断する。この構成によれば、１回の診断処理に要する時間を短くして、本来の制御のための処理への影響を小さくすることができる。
【００１１】
【発明の実施の形態】
以下、本発明が適用された実施形態について、図面を用いて説明する。
まず図１は、実施形態の電子制御装置（以下、ＥＣＵという）１の構成を表すブロック図である。
【００１２】
本実施形態のＥＣＵ１は、自動車のエンジンを制御するものであり、マイコン３を備えている。そして、マイコン３は、プログラムを実行するＣＰＵ５と、ＣＰＵ５により実行されるプログラム及びそのプログラムの実行時に参照される固定データ等が格納されたＲＯＭ７と、ＣＰＵ５によって演算されるデータが格納されるＲＡＭ９と、外部との入出力を行うためのＩ／Ｏインタフェース１１と、それらを接続するバス１３とを有している。
【００１３】
また、ＥＣＵ１には、各種センサ（スロットルポジションセンサ、吸気温センサ等）や各種スイッチからの信号をマイコン３に入力させる入力回路１５と、マイコン３からの指令に応じてインジェクタやスロットル開度調節用モータ等の各種アクチュエータに駆動信号を出力する出力回路１７と、自動車のバッテリ１９からの電力を受けて、マイコン３、入力回路１５及び出力回路１７に一定の電源電圧Ｖｄｄを供給する電源ＩＣ（以下、監視用ＩＣともいう）２１とが備えられている。
【００１４】
尚、電源ＩＣ２１は、マイコン３から所定時間以内毎にウォッチドッグパルスＷＤＰが出力されない場合にそのマイコン３へリセット信号ＲＳＴを出力する、いわゆるウォッチドッグタイマ機能（暴走監視機能）を備えている。
次に、ＲＡＭ９の記憶領域について説明する。
【００１５】
図２に示すように、ＲＡＭ９の記憶領域は、高ブロック、中ブロック及び低ブロックの３つのブロック（分割領域に相当）に分けられている。そして、ＲＡＭ９に記憶されるべきデータも、当該データが異常となった際の車両の安全性に及ぶ影響の度合（以下、影響度という）に応じて３種類のグループに分類されており、影響度の高いグループから順に、高ブロック、中ブロック、低ブロックにそれぞれ記憶されるようになっている。以下、各ブロックに記憶されるデータについて説明する。
【００１６】
高ブロックには、例えば、ＲＯＭチェック異常フラグや、監視用ＩＣ異常フラグ等のデータが記憶される。
ここで、ＲＯＭチェック異常フラグは、ＲＯＭ７に記憶されているデータを診断した結果を、ＲＯＭ７が正常であれば「０」、異常であれば「１」という値で表すものである。そして、ＣＰＵ５は、このＲＯＭチェック異常フラグの値が「１」になったことを検出すると、その異常に対処するための処理を実行するようになっている。そのため、ＲＡＭ９におけるＲＯＭチェック異常フラグの記憶領域に異常が生じた場合には、ＲＯＭ７に異常が発生したにもかかわらず、ＲＯＭチェック異常フラグの記憶値が「０」のまま変わらず、その異常に対処するための処理が行われないといったことが起こり得る。そして、この場合には、マイコン３自体の動作が保証されなくなることから、自動車の安全性に与える影響度が極めて大きい。
【００１７】
また、監視用ＩＣ異常フラグは、監視用ＩＣ２１が正常であるか否かを、正常であれば「０」、異常であれば「１」という値で表すものである。ここで、監視用ＩＣ２１が正常であるか否かは、例えば、監視用ＩＣ２１からマイコン３へ定期的に信号が送られてくるようになっていれば、その信号が検出されているか否かにより判断することができる。そして、ＣＰＵ５は、この監視用ＩＣ異常フラグの値が「１」になったことを検出すると、その異常に対処するための処理を実行するようになっている。そのため、ＲＡＭ９における監視用ＩＣ異常フラグの記憶領域に異常が生じた場合には、監視用ＩＣ２１に異常が発生したにもかかわらず、監視用ＩＣ異常フラグの記憶値が「０」のまま変わらず、その異常に対処するための処理が行われないといったことが起こり得る。そして、この場合にも、マイコン３自体の動作が保証されなくなることから、自動車の安全性に与える影響度が極めて大きい。
【００１８】
一方、中ブロックには、例えば、スロットル全閉学習記憶値や、オーバラン判定フラグ等のデータが記憶される。
ここで、スロットル全閉学習記憶値は、スロットルバルブが全閉となっている状態でのスロットルポジションセンサの検出値を記憶したものである。そして、ＣＰＵ５は、このスロットル全閉学習記憶値を用いて、スロットルポジションセンサの検出値を補正するようになっている。そのため、ＲＡＭ９におけるスロットル全閉学習記憶値の記憶領域に異常が生じた場合には、スロットルポジションセンサの検出値が適正に補正されなくなり、例えば、スロットルバルブが全閉であるにもかかわらず開いていると判定されて燃料噴射量が最適値からずれてしまうといったことが起こり得る。この場合には、自動車の走行性能に影響することから、自動車の安全性に与える影響度が大きい。
【００１９】
また、オーバラン判定フラグは、エンジンが許容回転数を超えて回転する異常が発生したか否かを、異常が発生していなければ「０」、異常が発生した場合には「１」という値で表すものである。そして、ＣＰＵ５は、このオーバラン判定フラグの値が「１」になったことを検出すると、その異常に対処するための処理を実行するようになっている。そのため、ＲＡＭ９におけるオーバラン判定フラグの記憶領域に異常が生じた場合には、エンジンが許容回転数を超えて回転する異常が発生しているにもかかわらず、オーバラン判定フラグの記憶値が「０」のまま変わらず、その異常に対処するための処理が行われないといったことが起こり得る。そして、この場合には、エンジンの故障を招くおそれがあることから、自動車の安全性に与える影響度が大きい。
【００２０】
一方また、低ブロックには、例えば、吸気温センサ異常フラグや、始動時ＩＳＣ（Ｉｄｌｅ  Ｓｐｅｅｄ  Ｃｏｎｔｒｏｌ）補正量等のデータが記憶される。
ここで、吸気温センサ異常フラグは、吸気温センサが正常であるか否かを、正常であれば「０」、異常であれば「１」という値で表すものである。そして、ＣＰＵ５は、この吸気温センサ異常フラグの値が「１」になったことを検出すると、その異常に対処するための処理を実行するようになっている。そのため、ＲＡＭ９における吸気温センサ異常フラグの記憶領域に異常が生じた場合には、吸気温センサに異常が発生したにもかかわらず、吸気温センサ異常フラグの記憶値が「０」のまま変わらず、その異常に対処するための処理が行われないといったことが起こり得る。しかしながら、吸気温センサの検出値自体が燃料噴射量にそれほど影響しないため、この場合には、自動車の走行性能にあまり影響せず、自動車の安全性に与える影響度が小さい。
【００２１】
また、始動時ＩＳＣ補正量は、エンジン始動直後のアイドル回転数を補正するためのものである。そして、ＣＰＵ５は、この始動時ＩＳＣ補正量を用いて、アイドル回転数を補正するようになっている。そのため、ＲＡＭ９における始動時ＩＳＣ補正量の記憶領域に異常が生じた場合には、アイドル回転数が適正に補正されなくなるといったことが起こり得るが、自動車の走行性能にはあまり影響せず、自動車の安全性に与える影響度も小さい。
【００２２】
次に、ＣＰＵ５が行う処理について説明する。
ＣＰＵ５は、４．１ｍｓ毎に、８ビットのカウンタをインクリメントする処理を行うようになっており、このカウンタの値に基づき、エンジン制御のための様々な時間同期処理を実行する。例えば、カウンタの値が「＊＊＊＊＊＊＊０」（「」内は２進数表示の値であり、＊は０又は１の何れか）となる毎に実行する処理と、カウンタの値が「＊＊＊＊＊＊＊１」となる毎に実行する処理とは、４．１ｍｓずれたタイミングで、それぞれ８．２ｍｓ毎に実行されることとなる。
【００２３】
また、ＣＰＵ５は、こうした時間同期処理として、エンジン制御のための処理の他に、ＲＡＭ９の記憶領域を診断するための診断処理を行う。具体的には、ＲＡＭ９の高ブロックを診断する高ブロック診断処理と、中ブロックを診断する中ブロック診断処理と、低ブロックを診断する低ブロック診断処理とを、それぞれ異なる頻度で実行する。以下、各処理について説明する。
【００２４】
まず、高ブロック診断処理について、図３のフローチャートを用いて説明する。尚、本高ブロック診断処理は、上述したカウンタの値が「＊＊＊＊＊１１１」となる毎（３２．８ｍｓ毎）に実行される。
この高ブロック診断処理が開始されると、まずＳ１００にて、ＲＡＭ９の記憶領域のうち、高ブロックのミラーチェックを行う。ここで、ミラーチェックには、周知の手法が用いられる。例えば、次のような手順で行われる。
【００２５】
即ち、まず、高ブロックを単位データ量の領域毎に区切り、その１つの領域（以下、単位領域という）に記憶されているデータを、一旦、別の記憶領域（例えば、ＣＰＵ５内のレジスタ）へ待避させる。そして、この単位領域に、予め決められた診断用のデータを書き込んで、そのデータを読み出すことにより、データの書込み／読出しが正常に行えるか否かを判断する。その後、この単位領域に、待避させたデータを戻す。こうした処理を単位領域毎に行い、高ブロック全域を診断する。
【００２６】
こうして、Ｓ１００でのミラーチェックが終了すると、Ｓ１１０へ移行し、Ｓ１００でのミラーチェックの結果、高ブロックにて異常が検出されたか否かを判定する。
そして、Ｓ１１０で異常が検出されなかったと判定した場合には、そのまま本高ブロック診断処理を終了する。
【００２７】
一方、Ｓ１１０で異常が検出されたと判定した場合には、Ｓ１２０へ移行し、フェイルセーフ処理を実施した後、本高ブロック診断処理を終了する。ここで、フェイルセーフ処理としては、例えば、図示しないメータパネルに設けられる異常警告ランプを点灯させる処理等が挙げられる。
【００２８】
尚、フェイルセーフ処理としてマイコン３をリセットするような構成であっても良い。即ち、本ＥＣＵ１に、マイコン３をリセットするためのリセット回路を予め設けておき、マイコン３は、ＲＡＭ９に異常が検出された際のフェイルセーフ処理として、上記リセット回路に自分をリセットしてもらうための依頼信号を出力する。このようにすれば、ＲＡＭ９のデータが一時的に異常となっただけの場合に、そのまま復帰させることができる。一方、リセットしても再び同じ異常が検出されるようであれば、異常警告ランプを点灯させるようにしてもよい。
【００２９】
次に、中ブロック診断処理について、図４のフローチャートを用いて説明する。尚、本中ブロック診断処理は、上述したカウンタの値が「＊＊＊＊１０１１」となる毎に実行される。つまり、６５．６ｍｓ毎に、前述した高ブロック診断処理（図３）とは異なるタイミングで実行されるようになっている。
【００３０】
この中ブロック診断処理が開始されると、まずＳ２００にて、ＲＡＭ９の記憶領域のうち、中ブロックのミラーチェックを、前述したＳ１００の処理と同様に行う。
続いて、Ｓ２１０では、Ｓ２００でのミラーチェックの結果、中ブロックにて異常が検出されたか否かを判定する。
【００３１】
そして、Ｓ２１０で異常が検出されなかったと判定した場合には、そのまま本中ブロック診断処理を終了する。
一方、Ｓ２１０で異常が検出されたと判定した場合には、Ｓ２２０へ移行し、前述したＳ１２０の処理と同様にフェイルセーフ処理を実施した後、本中ブロック診断処理を終了する。
【００３２】
次に、低ブロック診断処理について、図５のフローチャートを用いて説明する。尚、本低ブロック診断処理は、上述したカウンタの値が「＊＊＊１００１１」となる毎に実行される。つまり、１３１．２ｍｓ毎に、前述した高ブロック診断処理（図３）や中ブロック診断処理（図４）とは異なるタイミングで実行されるようになっている。
【００３３】
この低ブロック診断処理が開始されると、まずＳ３００にて、ＲＡＭ９の記憶領域のうち、低ブロックのミラーチェックを、前述したＳ１００の処理と同様に行う。
続いて、Ｓ３１０では、Ｓ３００のミラーチェックの結果、低ブロックにて異常が検出されたか否かを判定する。
【００３４】
そして、Ｓ３１０で異常が検出されなかったと判定した場合には、そのまま本低ブロック診断処理を終了する。
一方、Ｓ３１０で異常が検出されたと判定した場合には、Ｓ３２０へ移行し、前述したＳ１２０の処理と同様にフェイルセーフ処理を実施した後、本低ブロック診断処理を終了する。
【００３５】
尚、本実施形態のＥＣＵ１では、図３におけるＳ１００の処理と、図４におけるＳ２００の処理と、図５におけるＳ３００の処理とが、診断手段に相当している。
以上のように、本実施形態のＥＣＵ１では、ＲＡＭ９の記憶領域を、記憶されるデータの異常が自動車の安全性に与える影響の大きいブロックほど高い頻度で診断する。よって、異常となった場合に早急なフェイルセーフ処理が要求されるデータであるほど、異常の発生を早く検出することができ、フェイルセーフ処理の遅れを防止して自動車の安全性を向上させることができる。
【００３６】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態のＥＣＵ１では、ＲＡＭ９の診断を、高ブロック、中ブロック、低ブロックといった診断頻度の異なるブロック単位で行うようになっているが、これに限ったものではない。例えば、各ブロックを更に複数の領域に分割し、同一ブロックの各領域を、同じ頻度ではあるが異なるタイミングで診断することもできる。具体例を挙げると、高ブロックを第１領域、第２領域…というように複数の領域に分割し、上述したカウンタの値が「＊＊＊＊＊１１１」となる毎に第１領域を診断する診断処理を開始し、カウンタの値が「＊＊＊＊＊１０１」となる毎に第２領域を診断する診断処理を開始する、といった具合に行う。このようにすれば、１回の診断処理に要する時間を短くして、本来のエンジン制御のための処理への影響を小さくすることができる。
【００３７】
また、上記実施形態のＥＣＵ１では、ＲＡＭ９の全領域を診断対象として診断を行うようになっているが、これに限ったものではない。例えば、ＲＡＭ９に記憶されるべきデータのうち、重要度の高いデータのみを集めた領域（以下、クリティカル領域という）を設け、このクリティカル領域内のデータのみを診断するようにしても良い。そして、この場合にも、クリティカル領域を複数のブロックに分割して異なる頻度で診断するようにすれば、より重要度の高いデータが異常となった際の対処を即座に行うことができる。
【００３８】
また更に、上記実施形態のＥＣＵ１では、ＲＡＭ９の診断について説明したが、例えば、ＲＯＭ７についても同様の手法で診断することができる。即ち、ＲＯＭ７の記憶領域を複数のブロックに分割して、各ブロックを異なる頻度で診断するのである。このようにすれば、ＲＡＭ９の場合と同様に、重要なデータの異常を早急に検出して対処することができる。尚、ＲＯＭ７については、サムチェック等によって診断すれば良い。
【００３９】
一方、上記実施形態では、自動車のエンジンを制御するＥＣＵ１に設けられるマイコン３のＲＡＭ９を診断する構成について説明したが、これに限ったものではなく、例えば、自動車に搭載される他のＥＣＵに適用できることはいうまでもない。
【図面の簡単な説明】
【図１】  実施形態のＥＣＵの構成を表すブロック図である。
【図２】  ＲＡＭの記憶領域を説明するための説明図である。
【図３】  高ブロック診断処理を表すフローチャートである。
【図４】  中ブロック診断処理を表すフローチャートである。
【図５】  低ブロック診断処理を表すフローチャートである。
【符号の説明】
１…ＥＣＵ、３…マイコン、５…ＣＰＵ、７…ＲＯＭ、９…ＲＡＭ、１１…Ｉ／Ｏインタフェース、１３…バス、１５…入力回路、１７…出力回路、１９…バッテリ、２１…電源ＩＣ（監視用ＩＣ）
【図１】
0004042466.tif 000002
【図２】
0004042466.tif 000003
【図３】
0004042466.tif 000004
【図４】
0004042466.tif 000005
【図５】
0004042466.tif 000006