次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
図1に、本発明の実施形態に係る電子制御装置の例として、燃料噴射用の電子制御装置(FIECU)1の構成図を示す。自動車等の車両には、様々な電子制御装置1が搭載されて、それぞれの電子制御装置1に本発明を適用できるのであるが、本実施形態では、エンジン内に燃料を噴射させる燃料噴射(FI)システムを制御するFIECU(電子制御装置)1を例に説明する。なお、車両には、エンジンシステム(燃料電池車の場合はFCシステム)、操舵システム等のような複数のシステムが搭載され、それぞれのシステムは、自身のシステムを制御する電子制御装置1を有している。例えば、エンジンシステムでは、そのシステム内に燃料噴射(FI)システムを更に有しており、その燃料噴射(FI)システムが、FIECU(電子制御装置)1を有している。
また、車両は、イグニッションスイッチ(IGSW)9と、メインリレー(MAIN RLY)8と、バッテリ(+B)を有している。車両の運転者が、イグニッションスイッチ9をオンすることによって、メインリレー8がオンし、バッテリ(+B)から、メインリレー8を介して、電力が、FIECU(電子制御装置)1を含めた燃料噴射(FI)システム全体に供給され、更には、車両を構成する複数のシステム全体に供給される。そして、車両、その車両の複数のシステム、そのシステムの電子制御装置1が、始動する。また、運転者が、イグニッションスイッチ9をオフすると、メインリレー8がオフし、バッテリ(+B)からの電力供給がストップする。そして、FIECU(電子制御装置)1を含めた複数のシステム、更には、車両を、停止することができる。
車両に搭載されている燃料噴射(FI)システム等のシステムは、自己診断機能を有しており、自動で故障診断を実施することができる。大半の故障診断は、イグニッションスイッチ9がオンしているとき、特に、オンした直後に行われるが、一部の故障診断には、イグニッションスイッチ9がオフしているときに実施されるものがある。具体的には、燃料タンク周りのリーク診断等である。このリーク診断等は、エンジンシステム等が停止して、その温度が下がってシステム内雰囲気が安定した状態で行う必要がある。そこで、イグニッションスイッチ9をオフして、車両(エンジンシステム等を含んだ複数のシステム全体)を停止した後、燃料タンク周りの温度が下がる数時間程度の設定時間に等しい時間を、WakeUPタイマ(低速クロックタイマ、第1タイマ)3aで計測してから、燃料噴射(FI)システム、特に、FIECU(電子制御装置)1のメインCPU(MainCPU、マイコン)2を起動し、リーク診断を行い、更に、WakeUPタイマ3aの故障診断(の一部)を行う。リーク診断とWakeUPタイマ3aの故障診断(の一部)が終了すると、メインCPU(MainCPU、マイコン)2等は停止する。
FIECU(電子制御装置)1は、メインCPU(MainCPU、マイコン)2と、サブCPU(SubCPU)3と、カスタムIC4と、第1電源回路5と、メインリレー(MRLY)制御回路6と、第2電源回路7とを有している。
第2電源回路7は、バッテリ(+B)に直接接続されている。このため、第2電源回路7は、サブCPU(SubCPU)3とカスタムIC4に、常時、電力を供給(通電)している。第2電源回路7は、常時、バッテリ(+B)から電圧VBUの電力が供給され、定電圧VCC_Sの電力を出力する定電圧源になっている。
サブCPU(SubCPU)3は、常時、通電され、オン状態になっている。サブCPU3は、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aと、高速クロックタイマ(故障検知用)3bとを有している。後記では、WakeUPタイマを、低速クロックタイマ3aと呼ぶ。サブCPU3は、イグニッションスイッチ9がオン状態とオフ状態とで、クロックモードを、高速クロックモードと低速クロックモードとで切替え、電力消費を抑えている。イグニッションスイッチ9のオン状態では、メインCPU2において、様々なアプリケーションを高速(例えば、20MHz)に実行するため、高速クロックタイマ3bで、高速にカウントを行っている(高速クロックモード)。このため、時間当たりの消費電力は大きくなる傾向にある。イグニッションスイッチ9のオフ状態では、イグニッションスイッチ9がオフされてからの時間、例えば、WakeUPするまでの時間(設定時間に達するまでの時間)が、計測できればよいので、時間当たりのカウント数が少なく低速な(例えば、30kHz)低速クロックタイマ(WakeUPタイマ、第1タイマ)3aを用いることができる(低速クロックモード)。そして、時間当たりの消費電力を小さくすることができる。なお、イグニッションスイッチ9のオフ状態で、WakeUPにより、メインCPU2において、リーク診断等のアプリケーションが実行される際には、高速クロックタイマ3bで、高速なカウントが行われる(高速クロックモード)。そして、WakeUPしたとき(まで)と、イグニッションスイッチ9がオンしたとき(まで)の、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの計測時間は、シリアル通信等の通信によりメインCPU2に送信される。
なお、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aは、前記のとおり、イグニッションスイッチ9がオフされてからの時間を計測する。低速クロックタイマ3aは、WakeUP設定時間(設定時間)に等しい時間を計測した場合に、それまで計測した計測時間をリセットして時間の計測を再スタートする。この計測時間は、メインCPU2において、WakeUPタイマ受信値として、SOAK時間受信値との差がとられる。この差が、WakeUP設定時間(設定時間)や所定時間と比較されることで、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの異常を判定することができる。なお、WakeUPにおける処理が終了した後は、再び、低速クロックモードに戻る。
また、詳細は後記するが、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aと、高速クロックタイマ3bとで、同時に時間計測をすることで、クロックずれ(時計の進みや遅れ)といった故障を検知することができる。これによれば、高速クロックタイマ3bは、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの故障検知用タイマとして機能すると考えることができる。
サブCPU(SubCPU)3は、メモリ3cを有している。メモリ3cは、WakeUP起動要求フラグ、最大時間、WakeUP設定時間(設定時間)などを記憶することができる。WakeUP設定時間(設定時間)は、メインCPUで設定され、WakeUP設定時間送信値として、シリアル通信等の通信によりサブCPU3のメモリ3cに送信され、記憶される。低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの計測時間が、WakeUP設定時間(設定時間)に達すると、サブCPU3は、MRLY ON(メインリレーオン)要求を、メインリレー(MRLY)制御回路6に送信する。これにより、メインCPU2がWakeUPとして起動することになる。WakeUP起動要求フラグは、これが立っている(オンしている)ときに限って、サブCPU3によるMRLY ON(メインリレーオン)要求の送信を許可するようになっている。
リーク診断等の診断は、車両の1回の停車時に、1回行えばよい。そこで、WakeUPする回数も1回でよい。そこで、最初にWakeUPの(計測時間がWakeUP設定時間に達する)前にWakeUP起動要求フラグを立てておき、WakeUPの直後にWakeUP起動要求フラグをオフする。これによれば、WakeUPの後に、再度、計測時間がWakeUP設定時間に達しても、MRLY ON要求は送信されず、メインCPU2がWakeUP起動することはない。低速クロックタイマ3aは、WakeUP設定時間(設定時間)に等しい時間を計測した場合(最初のWakeUPの後)に、それまで計測した計測時間をリセットして時間の計測を再スタートするので、WakeUPをしてからの時間を計測することができる。
メモリ3cが記憶している最大時間は、低速クロックタイマ3aが計測できる最大時間であり、サブCPU3はその変更が可能である。詳細は後記するが、サブCPU3は、低速クロックタイマ3aがWakeUP設定時間に等しい時間を計測した場合(WakeUPの際)に、最大時間を、WakeUP設定時間分だけ小さくしている。なお、低速クロックタイマ3aの計測時間が、最大時間に達した場合、サブCPU3は、それ以降、その最大時間を、記憶し、WakeUPタイマ受信値として、メインCPU2へ送信する。
カスタムIC4は、サブCPU3と同様に、常時、通電され、オン状態になっている。カスタムIC4は、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aと、メモリ4bとを有している。SOAK時間計測回路(SOAKタイマ、第2タイマ)4aは、イグニッションスイッチ9がオフされてからオンされるまでの時間を計測する。このため、カスタムIC4(SOAK時間計測回路4a)は、必ずしも、常時オンしている必要はなく、イグニッションスイッチ9がオフされてからオンされるまでの間、すなわち、イグニッションスイッチ9がオフ時のみオンしていればよい。そして、WakeUPしたとき(まで)と、イグニッションスイッチ9がオンしたとき(まで)の、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間は、シリアル通信等の通信により、SOAK時間受信値として、メインCPU2に送信される。
なお、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aを、サブCPU3が有していてもよい。この場合、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aは、カスタムIC4が有していてもよい。また、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aと、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aの役割を入れ替えてもよい。
メモリ4bは、SOAK時間計測回路4aが計測できる最大時間を記憶している。この最大時間は、WakeUPの前にメモリ3cに記憶されている最大時間と等しくなるように設定されている。なお、SOAK時間計測回路4aの計測時間が、最大時間に達した場合、カスタムIC4は、それ以降、その最大時間を記憶し、SOAK時間受信値として、メインCPU2へ送信する。
メインCPU2は、メモリ2aを有している。メモリ2aは、仮正常フラグのオン又はオフの状態と、異常フラグのオン又はオフの状態を記憶している。メインCPU2は、イグニッションスイッチ9がオンされ起動したときに、メモリ2aに記憶されている仮正常フラグと異常フラグの状態に基づいて、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの異常を判定することができる。仮正常フラグや異常フラグは、イグニッションスイッチ9がオフされた後のメインCPU2がオフするわずかな時間や、メインCPU2のWakeUP起動中に、行った故障診断に基づいて、オン・オフを設定することができる。なお、メモリ2aには、メインCPU2に電力が供給されていないときでも、記憶が保持されるように、不揮発性のメモリであることが望ましい。
メインCPU2は、第1電源回路5と、メインリレー(MRLY)制御回路6とに接続している。MRLY制御回路6は、イグニッションスイッチ9がオン状態のときに出力される信号IG1、又は、サブCPU3から出力されるMRLY ON要求を受信した場合に、配線MRLYを介して接続するメインリレー(MAIN RLY)8をオンする。これにより、バッテリ(+B)から配線IGPを介して、第1電源回路5に電力が供給される。第1電源回路5は、メインリレー8のオンのタイミングで、メインCPU2に、電力を供給(通電)している。第1電源回路5は、バッテリ(+B)から電圧VBUの電力が供給され、定電圧VCC_Mの電力を出力する定電圧源になっている。メインリレー8は、MRLY制御回路6によって、イグニッションスイッチ9がオン状態のときオンし、オフ状態のときにオフする。ただ、メインリレー8は、MRLY制御回路6により、イグニッションスイッチ9がオンになると直後にオンするが、イグニッションスイッチ9がオフになった場合は、そのオフから遅れてオフする。この遅れ時間の間に、後記する図2のステップS1〜S6が実施されることになる。
また、メインリレー8は、MRLY制御回路6によって、サブCPU3から出力されるMRLY ON要求を受信した場合において、一時的にオンする。MRLY ON要求は、メインCPU2がWakeUP起動してからリーク診断の実施期間中にわたって出力される必要はなく、MRLY制御回路6にMRLY ON要求がいったん入力されると、メインリレー8のオン状態は継続される。メインCPU2は、WakeUP起動すると、メインリレー8をオン状態に保持することを要求するSSD要求(MRLY保持要求)を出力し、この出力をリーク診断が終了するまで行い、リーク診断の終了の後にSSD要求をオフする。このオフによりメインリレー8はオフ状態に転じ、メインCPU2は、第1電源回路5からの電力供給がカットされ停止する。
図2に、本発明の実施形態に係る電子制御装置(FIECU)1による低速クロックタイマ(WakeUPタイマ、第1タイマ)3aの故障診断方法のフローチャートを示す。また、図3は、タイマクロックずれチェック(低速クロックタイマ3aの故障診断方法の初期チェック)の方法を説明するためのタイミングチャートであり、図4は、WakeUP時間ずれ判定方法(低速クロックタイマ3aの故障診断方法の主要部)を説明するためタイミングチャートである。この故障診断方法は、図4に示すようにイグニッションスイッチ(IGSW)9が運転者によってオフされることによってスタートする。
まず、ステップS1で、サブCPU3は、メモリ3cにおいて、WakeUP起動要求フラグをオンにする。
次に、ステップS2で、サブCPU3は、初期チェックを実施する。図3を用いて、タイマ初期チェック(タイマクロックずれチェック)の方法を説明する。図3は、低速クロック(タイマ)3aと高速クロック(タイマ)3bのカウント値波形のタイミングチャートである。低速クロック(タイマ)3aに、(1)リセット、(2)カウントスタート、(3)カウント値がタイマレジスタMax値に達したらカウントストップ、のような、(1)〜(3)の一連の動作を、1回もしくは複数回(図3の例では6回)繰り返す。低速クロック(タイマ)3aが正常であれば、(1)のリセットから(3)のカウントストップまでの時間(又は(3)のカウント値がタイマレジスタMax値に達するまでの時間)は、回毎に等しく、一定時間を示すと考えられる。(1)と(3)のカウントストップのタイミングで、高速クロック(タイマ)3bのカウント値を検出する。(1)のリセットのタイミングでの高速クロック(タイマ)3bのカウント値から、(3)のカウントストップのタイミングでの高速クロック(タイマ)3bのカウント値を引いたカウント値の差は、低速クロック(タイマ)3aで計測した(1)のリセットから(3)のカウントストップまでの一定時間(計測時間)に相当する。したがって、このカウント値の差も低速クロック(タイマ)3aが正常であれば、一定値になると考えられる。このカウント値の差が、この一定値に誤差を加味した範囲内であれば、低速クロックタイマ3aは正常であり、範囲外であれば異常であると判定することができる。そして、タイマレジスタMax値を、WakeUP設定時間とみなしてメインリレー8を擬似的にオンさせる「WakeUP処理の割り込み」を行えば、メインリレー制御回路6とメインリレー8を含めた故障診断を行うことができる。
次に、ステップS3で、サブCPU3は、前記にしたがい、低速クロックタイマ3aが正常か否か判定する。低速クロックタイマ3aが正常と判定されれば(ステップS3、Yes)、ステップS5へ進み、低速クロックタイマ3aが正常でない(異常)と判定されれば(ステップS3、No)、ステップS4へ進む。
ステップS4で、メインCPU2は、メモリ2aにおいて、異常フラグをオンにする。また、サブCPU3は、メモリ3cにおいて、WakeUP起動要求フラグをオフにする。
ステップS5で、メインCPU2は、メモリ2aにおいて、仮正常フラグをオンにする。
ステップS6で、メインCPU2は、WakeUP設定時間(設定時間)を、図4の例では5hrに設定し、サブCPU3へ送信する。サブCPU3は、メモリ3cに、WakeUP設定時間を記憶する。サブCPU3は、メモリ3cに、最大時間を記憶させることで、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aにガード値を設定する。カスタムIC4は、メモリ4bに、最大時間を記憶させることで、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aにガード値を設定する。サブCPU3は、低速クロックタイマ(WakeUPタイマ、第1タイマ)3aを、リセットし、図4のS6に示すように、カウント(時間計測)をスタートさせる。カスタムIC4は、SOAK時間計測回路(24hタイマ、SOAKタイマ、第2タイマ)4aを、リセットし、図4のS6に示すように、カウント(時間計測)をスタートさせる。
ステップS7で、メインリレー制御回路6は、メインリレー8をオフする。図4のS7に示すように、配線IGPの電位が低下し、メインCPU(マイコン)2がオフされる。
ステップS8で、サブCPU3は、低速クロックタイマ(WakeUPタイマ)3aの計測時間が、WakeUP設定時間(設定時間、図4の例では5hr)に達したか否か判定する。低速クロックタイマ3aの計測時間が、設定時間に達していれば(ステップS8、Yes)、ステップS8aへ進み、設定時間に達していなければ(ステップS8、No)、ステップS13へ進む。図4の低速クロックタイマ(WakeUPタイマ)3aの計測時間の波形として、設定時間通りWakeUPしているケースC0(正常)と、設定時間より早くWakeUPしているケースC1(故障、異常)と、設定時間より遅くWakeUPしているケースC2(故障、異常)とが描かれている。どのケースC0、C1、C2でも、達した時刻に差はあるものの、設定時刻に達している。
ステップS8aで、サブCPU3は、メモリ3cに記憶されているWakeUP起動要求フラグが、オン状態か否か判定する。オン状態であれば(ステップS8a、Yes)、ステップS9へ進み、オン状態でなければ(ステップS8a、No)、ステップS13へ進む。
ステップS9で、サブCPU3は、図4に示すどのケースC0、C1、C2でも、低速クロックタイマ(WakeUPタイマ)3aの計測時間をリセットし、時間計測を再スタートさせる。サブCPU3は、メモリ3cに記憶されている最大時間を、設定時間分小さくして記憶させることで、低速クロックタイマ(WakeUPタイマ)3aのガード値を下げる。サブCPU3は、メモリ3cに記憶されたWakeUP起動要求フラグがオン状態であることを条件に、MRLY ON要求を、メインリレー制御回路6へ送信する。これにより、メインリレー制御回路6は、メインリレー8をオンする。図4のS9に示すように、配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。メインCPU(マイコン)2は、SSD要求を出力し、オン状態を保持しながら、リーク診断(燃料タンクの漏れ診断)を実施する。
ステップS10で、メインCPU(マイコン)2は、リーク診断が終了するのを待って、SSD要求の出力を停止する。これにより、メインリレー制御回路6は、メインリレー8をオフする。図4のS10に示すように、配線IGPの電位が低下し、メインCPU(マイコン)2がオフされる。サブCPU3は、メモリ3cに記憶されているWakeUP起動要求フラグをオンからオフに変更して記憶する。
ステップS11で、メインCPU2は、低速クロックタイマ(WakeUPタイマ)3aの計測時間が(WakeUP)設定時間に達した時刻における、SOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間(Sカウント値)が、(WakeUP)設定時間、又は、低速クロックタイマ(WakeUPタイマ)3aの計測時間に等しい(SOAK時間計測回路4aの計測時間(Sカウント値)=(WakeUP)設定時間=低速クロックタイマ3aの計測時間)か否か判定する。同じ時間を計測しているので、正常であれば、等しくなる。具体的には、所定時間の計測誤差を加味して、SOAK時間計測回路4aの計測時間(Sカウント値)と(WakeUP)設定時間との差、又は、SOAK時間計測回路4aの計測時間(Sカウント値)と低速クロックタイマ3aの計測時間との差が、前記所定時間より小さいか否か判定する。設定時間に等しい(所定時間より小さい)と判定されれば(ステップS11、Yes)、正常であるとして、ステップS13へ進み、設定時間に等しくない(所定時間より小さくない)と判定されれば(ステップS11、No)、異常であるとして、ステップS12へ進む。
ステップS12で、メインCPU2は、メモリ2aにおいて、異常フラグをオンにし、仮正常フラグをオフにする。
ステップS13で、サブCPU3は、イグニッションスイッチ(IGSW)9が運転者によってオンされたか否か判定する。オンされたと判定されれば(ステップS13、Yes)、ステップS14へ進み、オンされていないと判定されれば(ステップS13、No)、ステップS8へ戻る。
ステップS14では、図4のS13に示すように、イグニッションスイッチ(IGSW)9はオンしているので、メインリレー制御回路6は、メインリレー8をオンする。図4のS14に示すように、配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。
ステップS15で、メインCPU2は、メモリ2aに記憶された異常フラグがオン状態か否か判定する。異常フラグがオン状態であると判定されれば(ステップS15、Yes)、ステップS18へ進み、異常フラグがオン状態でないと判定されれば(ステップS15、No)、ステップS16へ進む。
ステップS16で、メインCPU2は、低速クロックタイマ(WakeUPタイマ)3aの計測時間(Wカウント値)に、(WakeUP)設定時間を加算し加算値を算出する。SOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間(Sカウント値)から(WakeUP)設定時間を減算し減算値を算出してもよい。SOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間(Sカウント値)と低速クロックタイマ(WakeUPタイマ)3aの計測時間(Wカウント値)との差分を算出してもよい。
具体的に図4に実線で示すケースC0(正常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間である8hrに、設定時間の5hrを加算し加算値13hr(=8+5)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間の5hrを減算し減算値8hr(=13−8)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間8hrとの差分5hr(13−8)を算出する。
具体的に図4に一点鎖線で示すケースC1(異常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間16hrに、設定時間5hrを加算し加算値21hr(=16+5)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間の5hrを減算し減算値8hr(=13−8)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間16hrとの差分−3hr(13−16)を算出する。
具体的に図4に二点鎖線で示すケースC2(異常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間4hrに、設定時間5hrを加算し加算値9hr(=4+5)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間の5hrを減算し減算値8hr(=13−8)を算出する。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間4hrとの差分9hr(13−4)を算出する。
ステップS17で、メインCPU2は、加算値がSOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間(Sカウント値)に等しいか否か判定する。減算値が、低速クロックタイマ(WakeUPタイマ)3aの計測時間(Wカウント値)に等しいか否か判定してもよい。Sカウント値とWカウント値の差分が、(WakeUP)設定時間に等しいか否か判定してもよい。これらが等しいと判定されれば(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果が正常であるとして、故障診断方法のフロー(チャート)を終了する。これらが等しくないと判定されれば(ステップS17、No)、低速クロックタイマ3aの故障診断結果が異常であるとして、ステップS18へ進み、運転者に異常を警告するために車両のインパネ等に異常を知らせる表示等を行う。
具体的に図4に実線で示すケースC0(正常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間8hrに設定時間5hrを加算した加算値13hr(=8+5)は、SOAK時間計測回路(SOAKタイマ4aの計測時間13hrに等しいので(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果は正常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間の5hrを減算した減算値8hr(=13−8)は、低速クロックタイマ(WakeUPタイマ)3aの計測時間8hrに等しいので(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果は正常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間8hrとの差分5hr(13−8)は、設定時間5hrに等しいので(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果は正常となる。
具体的に図4に示すケースC1(異常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間16hrに設定時間5hrを加算した加算値21hr(=16+5)は、SOAK時間計測回路(SOAKタイマ4aの計測時間13hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間5hrを減算した減算値8hr(=13−8)は、低速クロックタイマ(WakeUPタイマ)3aの計測時間16hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間16hrとの差分−3hr(13−16)は、設定時間5hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。
具体的に図4に示すケースC2(異常)の例では、低速クロックタイマ(WakeUPタイマ)3aの計測時間4hrに設定時間5hrを加算した加算値9hr(=4+5)は、SOAK時間計測回路(SOAKタイマ4aの計測時間13hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrから設定時間5hrを減算した減算値8hr(=13−8)は、低速クロックタイマ(WakeUPタイマ)3aの計測時間4hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。あるいは、SOAK時間計測回路(SOAKタイマ)4aの計測時間13hrと低速クロックタイマ(WakeUPタイマ)3aの計測時間4hrとの差分9hr(13−4)は、設定時間5hrに等しくないので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常となる。
図5に、故障診断方法を実施して、低速クロックタイマ3aの正常時(SOAKタイマまたはWakeUpタイマの計測可能最大時間:100時間未満)におけるタイミングチャートを示す。まず、イグニッションスイッチ(IGSW)9が運転者によってオフされることによってスタートする。次に、ステップS1で、WakeUP起動要求フラグをオンにする。次に、ステップS2で、タイマ初期チェックを実施する。次に、ステップS3で、タイマ初期チェックにおいて、低速クロックタイマ3aが正常か否か判定する。低速クロックタイマ3aが正常と判定され(ステップS3、Yes)、ステップS5へ進み、仮正常フラグをオンにする。ステップS6で、WakeUP設定時間(設定時間)を、5hrに設定し、カウントUPガード値として、メモリ3c、4bに、計測可能最大時間100H(hr)を設定する。低速クロックタイマ(WakeUPタイマ、第1タイマ)3aと、SOAK時間計測回路(24hタイマ、SOAKタイマ、第2タイマ)4aを、リセットし、カウント(時間計測)を同時にスタートさせる。ステップS7で、メインリレー8をオフし、配線IGPの電位が低下し、メインCPU(マイコン)2がオフされる。
ステップS8で、低速クロックタイマ(WakeUPタイマ)3aの計測時間が、WakeUP設定時間の5hrに達したか否か判定する。低速クロックタイマ3aの計測時間が、WakeUP設定時間の5hrに達すると(ステップS8、Yes)、ステップS8aへ進み、WakeUP起動要求フラグが、オン状態か否か判定する。オン状態であるので(ステップS8a、Yes)、ステップS9へ進み、低速クロックタイマ(WakeUPタイマ)3aの計測時間をリセットし、時間計測を再スタートさせる。サブCPU3は、MRLY ON要求を、メインリレー制御回路6へ送信し、メインリレー制御回路6は、メインリレー8をオンする。配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。メインリレーがオン(起動)して、メモリ3cに記憶されている最大時間(低速クロックタイマ(WakeUPタイマ)3aのカウントUPガード値の100hrを、WakeUP設定時間の5hr分下げ、95hr(=100−5)に設定する。また、メインCPU(マイコン)2は、リーク診断(燃料タンクの漏れ診断)を実施する。
なお、ガード値を下げる指令を出力するのはメインCPUもしくはサブCPUでも良い。
ステップS10で、リーク診断終了後に、メインリレー制御回路6は、メインリレー8をオフする。配線IGPの電位が低下し、メインCPU(マイコン)2がオフされる。WakeUP起動要求フラグはオンからオフに変更される。
ステップS11で、低速クロックタイマ(WakeUPタイマ)3aの計測時間が(WakeUP)設定時間の5hrに達した時刻における、SOAK時間計測回路(SOAKタイマ)4aの計測時間が、(WakeUP)設定時間の5hr、又は、低速クロックタイマ(WakeUPタイマ)3aの計測時間に等しく(同等)、正常であるので(ステップS11、Yes)、仮正常フラグはオンのまま維持される。
ステップS13で、イグニッションスイッチ(IGSW)9が運転者によってオンされたと判定されると(ステップS13、Yes)、ステップS14へ進み、イグニッションスイッチ(IGSW)9はオンしているので、メインリレー制御回路6は、メインリレー8をオンする。配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。ステップS15で、異常フラグがオン状態でないと判定され(ステップS15、No)、ステップS16へ進む。
ステップS16で、低速クロックタイマ(WakeUPタイマ)3aの計測時間の7H(hr)に、WakeUP設定時間の5hrを加算し加算値12H(hr)を算出する。ステップS17で、加算値12hrがSOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間の12H(hr)に等しいか否か判定する。これは等しいと判定されるので(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果が正常であるとして、故障診断方法のフロー(チャート)を終了する。
図6に、故障診断方法を実施して、低速クロックタイマ3aの正常時(SOAKタイマの計測時間:100時間以上)におけるタイミングチャートを示す。図5のようにWakeUpタイマまたはSOAKタイマに計測可能最大時間があり、例えば上記のように100時間であった場合に、イグニッションのオフ時間が100時間を超えた場合にはメインCPUが正しく起動されたか否かに関わらずWakeUpタイマとSOAKタイマのカウント値が100時間となってしまう。このようにイグニッションスイッチのオフ時間が長い場合での故障診断手法が図6のタイミングチャートである。図6のタイミングチャートは、図5のタイミングチャートと比較して、ステップS16前後の処理が異なっている。すなわち、ステップS13でイグニッションスイッチ(IGSW)9がオンされたと判定される前に(ステップS13、Yes)、低速クロックタイマ(WakeUPタイマ)3aの計測時間は、最大時間のカウントUPガード値95H(hr)に達し、SOAK時間計測回路(SOAKタイマ)4aの計測時間は、最大時間のカウントUPガード値100H(hr)に達している。
ステップS16で、低速クロックタイマ(WakeUPタイマ)3aの計測時間の95H(hr)に、WakeUP設定時間の5hrを加算し加算値100H(hr)を算出する。ステップS17で、加算値100hrがSOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間の100H(hr)に等しいか否か判定する。これは等しいと判定されるので(ステップS17、Yes)、低速クロックタイマ3aの故障診断結果が正常であるとして、故障診断方法のフロー(チャート)を終了する。
図7に、故障診断方法を実施して、低速クロックタイマ3aの異常時(その1:初期チェックエラー)におけるタイミングチャートを示す。まず、イグニッションスイッチ(IGSW)9が運転者によってオフされることによってスタートする。次に、ステップS1で、WakeUP起動要求フラグをオンにする。次に、ステップS2で、タイマ初期チェックを実施する。次に、ステップS3で、タイマ初期チェックにおいて、低速クロックタイマ3aが正常か否か判定する。低速クロックタイマ3aが正常でないと判定され(ステップS3、No)、ステップS4へ進み、異常フラグをオンし、WakeUP起動要求フラグをオフする。ステップS6で、WakeUP設定時間(設定時間)とカウントUPガード値(最大時間)を設定する。低速クロックタイマ(WakeUPタイマ、第1タイマ)3aは、仮正常フラグがオン状態でないので、カウント(時間計測)をスタートさせない。SOAK時間計測回路(24hタイマ、SOAKタイマ、第2タイマ)4aは、リセットし、カウント(時間計測)をスタートさせる。ステップS7で、メインリレー8をオフし、配線IGPの電位が低下し、メインCPU(マイコン)2がオフされる。
ステップS8で、低速クロックタイマ(WakeUPタイマ)3aの計測時間が、WakeUP設定時間の5hrに達したか否か判定する。低速クロックタイマ3aの計測時間は、設定時間に達しないので(ステップS8、No)、ステップS13へ進む。
ステップS13で、イグニッションスイッチ(IGSW)9が運転者によってオンされたと判定されると(ステップS13、Yes)、ステップS14へ進み、イグニッションスイッチ(IGSW)9はオンしているので、メインリレー制御回路6は、メインリレー8をオンする。配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。ステップS15で、異常フラグがオン状態であると判定され(ステップS15、Yes)、ステップS18へ進む。ステップS18で、低速クロックタイマ3aの故障診断結果が異常であるとして、運転者に異常を警告するために車両のインパネ等に異常を知らせる表示等を行う。故障診断方法のフロー(チャート)を終了する。
図8に、故障診断方法を実施して、低速クロックタイマ3aの異常時(その2:WakeUP時エラー)におけるタイミングチャートを示す。図8のタイミングチャートは、図5のタイミングチャートと比較して、ステップS11以降の処理が異なっている。すなわち、ステップS11で、低速クロックタイマ(WakeUPタイマ)3aの計測時間が(WakeUP)設定時間の5hrに達した時刻における、SOAK時間計測回路(SOAKタイマ)4aの計測時間が、(WakeUP)設定時間の5hr、又は、低速クロックタイマ(WakeUPタイマ)3aの計測時間に等しくなく(異なり)、異常であるので(ステップS11、No)、ステップS12へ進み、異常フラグをオンにし、仮正常フラグをオフにする。
ステップS13で、イグニッションスイッチ(IGSW)9が運転者によってオンされたと判定されると(ステップS13、Yes)、ステップS14へ進み、イグニッションスイッチ(IGSW)9はオンしているので、メインリレー制御回路6は、メインリレー8をオンする。配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。ステップS15で、異常フラグがオン状態であると判定され(ステップS15、Yes)、ステップS18へ進む。ステップS18で、低速クロックタイマ3aの故障診断結果が異常であるとして、運転者に異常を警告するために車両のインパネ等に異常を知らせる表示等を行う。故障診断方法のフロー(チャート)を終了する。
図9に、故障診断方法を実施して、低速クロックタイマ3aの異常時(その3:WakeUPしないエラー:100時間未満)におけるタイミングチャートを示す。図9のタイミングチャートは、図5のタイミングチャートと比較して、ステップS8〜S12の処理が欠落し、WakeUPしていない。このため、ステップS13以降の処理が異なっている。すなわち、ステップS13で、イグニッションスイッチ(IGSW)9が運転者によってオンされたと判定されると(ステップS13、Yes)、ステップS14へ進み、イグニッションスイッチ(IGSW)9はオンしているので、メインリレー制御回路6は、メインリレー8をオンする。配線IGPの電位が上昇し、メインCPU(マイコン)2がオン(起動)する。ステップS15で、異常フラグがオン状態でないと判定され(ステップS15、No)、ステップS16へ進む。
ステップS16で、低速クロックタイマ(WakeUPタイマ)3aの計測時間の12H(hr)に、WakeUP設定時間の5hrを加算し加算値17hr(=12+5)を算出する。ステップS17で、加算値17hrがSOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間の12H(hr)に等しいか否か判定する。これは等しくないと判定されるので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常であるとして、ステップS18で、運転者に異常を警告するために車両のインパネ等に異常を知らせる表示等を行う。また、異常フラグをセットする。故障診断方法のフロー(チャート)を終了する。
図10に、故障診断方法を実施して、低速クロックタイマ3aの異常時(その4:WakeUPしないエラー:100時間以上)におけるタイミングチャートを示す。図10のタイミングチャートは、図9のタイミングチャートと比較して、ステップS16前後の処理が異なっている。すなわち、ステップS13でイグニッションスイッチ(IGSW)9がオンされたと判定される前に(ステップS13、Yes)、低速クロックタイマ(WakeUPタイマ)3aの計測時間とSOAK時間計測回路(SOAKタイマ)4aの計測時間は、最大時間のカウントUPガード値100H(hr)に達している。
ステップS16で、低速クロックタイマ(WakeUPタイマ)3aの計測時間の100H(hr)に、WakeUP設定時間の5hrを加算し加算値105hr(=100+5)を算出する。ステップS17で、加算値105hrがSOAK時間計測回路(SOAKタイマ、第2タイマ)4aの計測時間の100H(hr)に等しいか否か判定する。これは等しくないと判定されるので(ステップS17、No)、低速クロックタイマ3aの故障診断結果は異常であるとして、ステップS18で、運転者に異常を警告するために車両のインパネ等に異常を知らせる表示等を行う。また、異常フラグをセットする。故障診断方法のフロー(チャート)を終了する。
図5、図6などに示した手法でガード値を設定時間分だけ下げたが、WakeUpタイマ3aまたはSOAKタイマ4aが設定時間だと認識してMainCPU2が起動した時間だけガード値を下げても良い。このようにすることで、WakeUpタイマ3aまたはSOAKタイマ4aの計測値を用いてガード値を下げることができるので、ガード値の精度を向上させることができる。この設定時間に等しいMainCPU2が起動した時間には、MainCPU2が起動して現在の計測時間を読み取るまでの間にWakeUpタイマ3aやSOAKタイマ4aが計測し続けた時間などを含めることができる。