以下、本発明に係る電子制御装置の一実施の形態について、図1〜図10を参照して説明する。まず、図1及び図2を併せ参照して、本実施の形態の電子制御装置の構成及び機能について説明する。なお、図1は、本実施の形態の電子制御装置全体の構成を示すブロック図であり、図2は、同実施の形態の電子制御装置のラッチ回路の一例を示す等価回路図である。
同図1に示されるように、電子制御装置1は、基本的に、背景技術の欄に記載した従来の電子制御装置に準じて構成されている。すなわち、電源部としての電源IC10、主制御部としてのメインマイクロコンピュータ(以下、メインマイコンとも記載する)20、副制御部としてのサブマイクロコンピュータ(以下、サブマイコンとも記載する)30等々を備えている。ただし、本実施の形態の電子制御装置1では、サブマイコン30がリセットされる直前にリレー50に印加していた電圧レベルを保持し、この電圧レベルと同一の電圧レベルの信号をリレー50に継続して印加するラッチ回路40を備えることで、メインマイコン20の動作状態が長期に渡って異常である場合でも、リレー50の接点溶着が生じることを防止して、フェイルセーフ側にリレー50を制御しようとしている。なお、本実施の形態の電子制御装置1は、例えば内燃機関の燃焼室の予熱機構を構成するグロープラグ(いずれも図示略)を点消灯するグローリレー50のオンオフ制御を行うものとして具体化されている。
図1に示されるように、メインマイコン20は、そのCPU端子が、例えば「5V」の定電圧源Vcに抵抗器511を介して接続されているとともに、リレー50をオンオフ制御するためのトランジスタ541のゲートに抵抗器512を介して接続されている。さらに、メインマイコン20のCPU端子は、抵抗器512及び531を介して接地されている。
また、メインマイコン20は、図1に示されるように、当該メインマイコン20のWDC端子が電源IC10のWDC1端子に接続されている。ここで、メインマイコン20は、その動作状態が正常であるとき、基本的に、例えば「8ミリ秒」を1周期とするパルス状のウォッチドッグ信号をこのWDC端子を介して電源IC10に常時出力する。しかしながら、メインマイコン20は、その動作状態が異常であるとき、そもそも、そうしたウォッチドッグ信号を出力することができない。こうした状況に鑑みて、電源IC10は、ウォッチドッグ信号に基づき、メインマイコン20の動作状態を常に監視している。
また、メインマイコン20は、図1に示されるように、当該メインマイコン20のRESB11端子が電源IC10のRESET11端子に接続されている。既述したように、電源IC10は、メインマイコン20から出力されるウォッチドッグ信号に基づきメインマイコン20の動作状態を常に監視しており、後述する第1リセット条件が成立すると、メインマイコン20の動作状態を正常に戻すべく、RESET11端子を介してリセット信号を出力する。そしてメインマイコン20は、RESB11端子にリセット信号が入力されると、リセットされる。なお、メインマイコン20はリセットされるとハイインピーダンス状態となり、そのCPU端子から特定の電圧レベルの信号を出力することができず、CPU端子における電圧レベルは不定となる。
また、メインマイコン20は、図1に示されるように、当該メインマイコン20のRESET12端子がサブマイコン30のRESB12端子に接続されている。ここで、メインマイコン20は、当該メインマイコン20が電源IC10によってリセットされ、このリセットから復帰すると、RESET12端子を介してサブマイコン30にリセット信号を出力する。そしてサブマイコン30は、RESB12端子にリセット信号が入力されることでリセットされる。なお、サブマイコン30もメインマイコン20と同様に、リセットされるとハイインピーダンス状態となり、後述するCPUF端子やLATCH端子から特定の電圧レベルの出力信号を出力することができず、これら端子における電圧レベルは不定となる。
また、メインマイコン20は、図1に示されるように、当該メインマイコン20のWDC端子がサブマイコン30のWDC2端子に接続されている。さらに、メインマイコン20は、CPU(図示略)を介することなくメモリ(図示略)間で直接にデータのやり取りを行う、いわゆるDMA(Direct Memory Access)方式にて、リレー50のオンオフ制御に係る情報通信をサブマイコン30と行うべく、サブマイコン30に接続されている。このメインマイコン20とサブマイコン30との間での情報通信においては、リレー50のオンオフ制御に係る情報が交換されているだけでなく、メインマイコン20は、当該メインマイコン20が起動(リセットから復帰)した旨をサブマイコン30に送信したり、逆に、サブマイコン30は、当該サブマイコン30が起動(リセットからの復帰)した旨をメインマイコン20に送信したりする。
ここで、メインマイコン20は、その動作状態が正常であるとき、既述したように、基本的に、常時、パルス状のウォッチドッグ信号をWDC端子を介してサブマイコン30に出力する。また、メインマイコン20の動作状態が正常であるとき、当該メインマイコン20−サブマイコン30間で、上述した情報通信がほとんど常時行われる。しかしながら、メインマイコン20は、その動作状態が異常であるとき、そもそも、ウォッチドッグ信号を出力することはできないことが多い。また、メインマイコン20の動作状態が異常であるとき、情報通信を行おうにも行うことができないことが多い。こうした状況に鑑みて、サブマイコン30は、これらウォッチドッグ信号やDMA通信の通信状態に基づき、メインマイコン20の動作状態を常に監視している。
また、メインマイコン20は、図1に示されるように、当該メインマイコン20のRESB2端子がサブマイコン30のRESET2端子に接続されている。サブマイコン30は、RESET2端子を介してリセット信号を出力する。そして、RESB2端子にリセット信号が入力されると、メインマイコン20は、リセットされる。
他方、サブマイコン30は、図1に示されるように、WDC2端子がメインマイコン20のWDC端子に接続されており、RESB12端子がメインマイコン20のRESET12端子に接続されている。また、RESET2端子がメインマイコン20のRESB2端子に接続されている。このうち、WDC2端子に対しては、既述したように、メインマイコン20からウォッチドッグ信号が入力されている。サブマイコン30は、このウォッチドッグ信号や先のDMA通信の通信状態に基づいて、メインマイコン20の動作状態を常に監視している。そしてサブマイコン30は、先のDMA通信の通信状態に基づく後述する第2リセット条件が成立するとき、RESET2端子を介してメインマイコン20にリセット信号を出力する。なお、メインマイコン20は、RESB2端子にリセット信号が入力されることでリセットされる。
また、サブマイコン30は、図1に示されるように、当該サブマイコン30のEWDC端子がメインマイコン20のEWDC1端子に接続されている。ここで、サブマイコン30は、その動作状態が正常であるとき、基本的に、例えば8m秒を1周期とするパルス状のウォッチドッグ信号をこのEWDC端子を介してメインマイコン20に常時出力する。しかしながら、サブマイコン30は、その動作状態が異常であるとき、そもそも、そうしたウォッチドッグ信号を出力することができない。こうした状況に鑑みて、メインマイコン20は、ウォッチドッグ信号に基づき、サブマイコン30の動作状態を常に監視している。
また、サブマイコン30は、図1に示されるように、そのCPUF端子及びLATCH端子がラッチ回路40に接続されている。ここで、サブマイコン30は、メインマイコン20の動作状態が正常であると判断すると、メインマイコン20によるリレー50のオンオフ制御を阻害しないようにするため、論理Hiレベルに対応する電圧レベルにて第1及び第2出力信号をCPUF端子及びLATCH端子にそれぞれ出力する。一方、サブマイコン30は、メインマイコン20の動作状態が異常であると判断すると(後述するフェイルセーフ条件成立時)、メインマイコン20によるリレー50の的確なオンオフ制御を期待することはできないため、リレー50を安全側に動作させるべく、論理Loレベルに対応する電圧レベルにて第1及び第2出力信号をCPUF端子及びLATCH端子にそれぞれ出力する。他方、サブマイコン30は、第1リセット条件あるいは第2リセット条件が成立してメインマイコン20によりリセットされると、当該サブマイコン30は第1及び第2出力信号を特定の電圧レベルにてCPUF端子及びLATCH端子にそれぞれ出力することができないため、これらCPUF端子及びLATCH端子にそれぞれ出力される第1及び第2出力信号の電圧レベルは不定となる。
ラッチ回路40は、図1及び図2に示すように、基本的に、サブマイコン30のCPUF端子及びLATCH端子に接続されるNANDゲート431及び432を組み合わせたラッチ部43と、CPUF端子及びLATCH端子における電圧レベルが不定となるときに、これらの電圧レベルを固定するための抵抗器412及び413と、ラッチ部43の駆動初期の出力信号の電圧レベルを固定するための、コンデンサ441を含む初期位相固定回路44等々を有している。
詳しくは、同図2に示されるように、ラッチ部43を構成するNANDゲート431及び432は、2つの入力端子In1及びIn2と1つの出力端子Outをそれぞれ有している。このうち、NANDゲート431の一方の入力端子In1は、基本的に、サブマイコン30(図1)のCPUF端子に接続されているとともに、他方の入力端子In2は、NANDゲート432の出力端子Outに接続されている。なお、入力端子In1は、例えば「5V」の定電圧源Vcにも、プルアップ抵抗として機能する抵抗器412を介して接続されている。また、NANDゲート431の出力端子Outは、基本的に、トランジスタ453のゲートに抵抗器451を介して接続されているとともに、NANDゲート432の入力端子In2に初期位相固定回路44を介して接続されている。この出力端子Outはさらに、抵抗器451及びプルダウン抵抗として機能する452を介して接地されてもいる。一方、NANDゲート432の一方の入力端子In1は、トランジスタ423に接続されているとともに、プルアップ抵抗として機能する抵抗器413を介して定電圧源Vcに接続されている。他方の入力端子In2は、初期位相固定回路44を構成するインバータ444の出力端子Outに接続されている。また、NANDゲート432の出力端子Outは、NANDゲート431の入力端子In2に接続されている。
また、図2に示されるように、初期位相固定回路44は、コンデンサ441、抵抗器442、NANDゲート443、及び、インバータ444を有している。このうち、コンデンサ441は、一端が抵抗器411を介して定電圧源Vcに接続されており、他端が接地されている。NANDゲート443の一方の入力端子In2は、抵抗器442及び411を介して定電圧源Vcに接続されており、他方の入力端子In1は、ラッチ部43を構成するNANDゲート431の出力端子Outに接続されている。NANDゲート443の出力端子Outは、インバータ444を介して、ラッチ部43を構成するNANDゲート432の入力端子In2に接続されている。
以上のようにして構成された電子制御装置1に電源が投入され、メインマイコン20、サブマイコン30、及び、ラッチ回路40が動作開始した直後にあっては、基本的に、各種能動素子の出力端子における電圧レベルは不定となっている。特に、メインマイコン20のCPU端子の電圧レベルや、サブマイコン30のCPUF端子及びLATCH端子の電圧レベル、さらには、ラッチ回路40を構成する能動素子の出力端子における電圧レベルは不定となっており、次のようにして電圧レベルが安定する。なお、図3に各端子における電圧レベルを一覧にして示す。
まず、当該電子制御装置1に電源が投入されると、初期位相固定回路44を構成するNANDゲート443の一方の入力端子In2における電圧レベルは、コンデンサ441に電荷が蓄えられるまでの僅かな期間、論理Loレベルに対応する電圧レベルとなる。したがって、他方の入力端子In1はNANDゲート431の出力端子Outに接続されておりその電圧レベルは不定であるものの、NANDゲート443の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルとなる。また、後段に接続されたインバータ444の出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルとなり、さらに後段に接続されたNANDゲート432の入力端子In2における電圧レベルも、論理Loレベルに対応する電圧レベルとなる。ここで、NANDゲート432の入力端子In1における電圧レベルは、抵抗器413によってプルアップされているため、論理Hiレベルに対応する電圧レベルとなる。したがって、NANDゲート432の入力端子In1及びIn2における電圧レベルはそれぞれ、論理Hiレベル及び論理Loレベルに対応する電圧レベルであるため、NANDゲート432の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルとなる。
一方、サブマイコン30のCPUF端子における電圧レベルは不定であるものの、抵抗器412によってプルアップされているため、NANDゲート431の入力端子In1における電圧レベルは論理Hiレベルに対応する電圧レベルとなる。なお、NANDゲート431の入力端子In2における電圧レベルは、NANDゲート432の出力端子Outにおける電圧レベルと同一であるため、上述したように、論理Hiレベルに対応する電圧レベルとなる。したがって、NANDゲート431の入力端子In1及びIn2における電圧レベルは両方とも、論理Hiレベルに対応する電圧レベルとなるため、Out端子における電圧レベルは、論理Loに対応する電圧レベルとなる。
この間、コンデンサ441に電荷が十分に蓄えられるため、NANDゲート443の入力端子In2における電圧レベルは論理Hiレベルに対応する電圧レベルに変化する。また、上述したように、NANDゲート431の出力端子Outにおける電圧レベルが論理Loレベルに対応する電圧レベルになるため、NANDゲート443の入力端子In1における電圧レベルは論理Loレベルに対応する電圧レベルに定まる。ただし、後段に接続された各能動素子の出力端子における電圧レベルに変化はないため、NANDゲート431の出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルのままで安定することになる。なお、NANDゲート431の出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルであるため、後段に接続されたトランジスタ453は駆動せず、ラッチ回路40のCPUF_KO端子(図1)における電圧レベルはオープンとなる。
ちなみに、オープンとされたCPUF_KO端子における電圧レベルは、トランジスタ541(図1)のゲートに印加される電圧レベルと略同一となる。具体的には、論理Hiレベルに対応する電圧レベルとなる。詳しくは、図1に示されるように、電源が投入されて間もないため、メインマイコン20のCPU端子における電圧レベルも不定である。そうした場合にあっては、抵抗器511がプルアップ抵抗として機能し、経路「定電圧源Vc→抵抗器511→抵抗器512→抵抗器531→GND」をたどって電流が流れる。このとき、抵抗器511〜531による定電圧「5V」の分圧値がトランジスタ541のゲートに印加される。これら抵抗器511〜531の抵抗値は、この分圧値がトランジスタ541の駆動電圧(論理Hiレベル)に達するように設定されているため、CPUF_KO端子における電圧レベルは、論理Hiレベルと略同一の電圧レベルとなる(実際には、抵抗器521による電圧降下があるため、若干低くなる)。ちなみに、トランジスタ541はオンとされ、このトランジスタ541に接続されているリレー50もオンとされる(イニシャル状態)。なお、当該電子制御装置1が搭載される内燃機関の始動性を向上するべく、リレー50は、イニシャル状態において、オン制御されるようにしている。
このように初期位相固定回路44が作動することにより、当該電子制御装置1への電源投入直後の、ラッチ回路40のCPUF_KO端子における電圧レベルは論理Hiレベルに対応する電圧レベルに確定される。
次に、メインマイコン20の動作状態が正常であるときの当該電子制御装置1の動作について説明する。
メインマイコン20の動作状態が正常であるとき、サブマイコン30のCPUF端子及びLATCH端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなり、図2に示されるように、経路「LATCH端子→抵抗器421→抵抗器422→GND」をたどって電流が流れる。すると、論理Hiレベルに対応する電圧レベルの抵抗器421及び422による分圧値がトランジスタ423のゲートに印加され、トランジスタ423はオンとされる。トランジスタ423がオンとされると、経路「定電圧源Vc(図2)→抵抗器413→トランジスタ423→GND」をたどって電流が流れ、ラッチ部43を構成するNANDゲート432の入力端子In1における電圧レベルは、論理Loレベルに対応する電圧レベルとなる。そのため、NANDゲート432の入力端子In2における電圧レベルが論理Hiレベルに対応する電圧レベルであろうと、論理Loレベルに対応する電圧レベルであろうと、NANDゲート432の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルとなる。そして、NANDゲート431の入力端子In1及びIn2における電圧レベルは共に論理Hiレベルに対応する電圧レベルであるため、出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルとなる。したがって、先の電源投入初期における動作と同様に、後段に接続されたトランジスタ453は駆動せず、ラッチ回路40のCPUF_KO端子(図1)における電圧レベルはオープンとなる(メインマイコン20によるリレー50のオンオフ制御を阻害しない)。
ちなみに、リレー50(図1)をオン制御するときにあっては(通常時)、メインマイコン20は、論理Hiレベルに対応する電圧レベルにて第3出力信号をCPU端子に出力する。すると、このCPU端子における電圧は定電圧源Vcとほぼ同一となり、経路「CPU端子→抵抗器512→抵抗器531→GND」をたどって電流が流れる。このとき、抵抗器512及び531による論理Hiレベルに対応する電圧レベルの分圧値がトランジスタ541のゲートに印加される。これら抵抗器512及び531の抵抗値は、この分圧値がトランジスタ541の駆動電圧に達するように設定されているため、トランジスタ541はオンとされ、このトランジスタ541に接続されているリレー50もオンとされる。
一方、リレー50(図1)をオフ制御するときにあっては、メインマイコン20は、論理Loレベルに対応する電圧レベルにて第3出力信号をCPU端子に出力する。すると、このCPU端子における電圧よりも定電圧源Vcの方が高電位となり、経路「定電圧源Vc→抵抗器511→CPU端子」をたどって電流が流れる。このとき、トランジスタ541のゲートの電圧レベルは、論理Loレベルに対応する電圧レベルが印加されることになる。したがって、トランジスタ541はオンとされず、このトランジスタ541に接続されているリレー50もオンとされない。
次に、メインマイコン20の動作状態が異常であるときの当該電子制御装置1の動作について説明する。
ここで、本実施の形態では、メインマイコン20の動作状態が異常であり、リレー50のオンオフ制御を正常に行うことができないと判定するためのフェイルセーフ条件として、「サブマイコン30が連続してリセットされる回数が所定回数(例えば2回)に達すること」を採用しており、そうしたサブマイコン30がリセットされる条件としては、第1リセット条件あるいは第2リセット条件が成立することを採用している。なお、第1リセット条件としては、「メインマイコン20から電源IC10へ入力されるはずのウォッチドッグ信号が途絶して以後第1判定期間(例えば40ミリ秒)を経過すること」を採用しており、第2リセット条件としては、「メインマイコン20とサブマイコン30との間での情報通信が途絶されて以後第2判定期間(例えば100ミリ秒)を経過すること」を採用している。
本来であれば、メインマイコン20の動作状態が異常である場合のフェイルセーフであるため、フェイルセーフ条件として、サブマイコン30が連続してリセットされる回数を採用するのではなく、メインマイコン20が連続してリセットされる回数を採用すべきである。しかしながら、既述したように、メインマイコン20がリセットされると、その復帰後、サブマイコン30をリセットするため、メインマイコン20の連続リセット回数は、基本的に、サブマイコン30の連続リセット回数と同一となる。したがって、本実施の形態では、サブマイコン30の連続リセット回数を採用している。
ただし、実際には、メインマイコン20はサブマイコン30の動作状態を常に監視しており、サブマイコン30の動作状態が異常となったと判断されるとき、メインマイコン20はサブマイコン30をリセットするため、厳密には、メインマイコン20の連続リセット回数は、サブマイコン30の連続リセット回数と同一にはならないこともある。こうした連続リセット回数の差異に対しては、後述するように、サブマイコン30は、第1及び第2リセット条件のうちどちらの条件が成立したことによりメインマイコン20がリセットされるのかについて履歴を残す。また、メインマイコン20も、サブマイコン30の動作状態が異常となったためサブマイコン30をリセットした旨、履歴に残す。したがって、サブマイコン30は、これら履歴及び自身の連続リセット回数に基づき、メインマイコン20の連続リセット回数を的確にカウントしている。
こうしたフェイルセーフ条件が成立するときにあっては、メインマイコン20を1度リセットしても正常な動作状態に至らなかったことを意味するため、メインマイコン20によるリレー50の的確なオンオフ制御を期待することはできない。そのため、サブマイコン30は、メインマイコン20に代わり、リレー50をフェイルセーフ側にオフ制御するフェイルセーフ処理を行う。具体的には、サブマイコン30は、CPUF端子及びLATCH端子における電圧レベルを論理Loレベルに対応する電圧レベルとし、図2及び図3に示されるように、ラッチ部43を構成するNANDゲート431の入力端子In1における電圧レベルを論理Loレベルに対応する電圧レベルとする。そのため、NANDゲート431の入力端子In2における電圧レベルが、論理Hiレベルに対応する電圧レベルであろうと、論理Loレベルに対応する電圧レベルであろうと、NANDゲート431の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルとなる。そして、初期位相固定回路44を構成するNANDゲート443の入力端子In1における電圧レベルも論理Hiレベルに対応する電圧レベルとなり、ひいては、ラッチ部43を構成するNANDゲート432の入力端子In2における電圧レベルは、論理Hiレベルに対応する電圧レベルとなる。一方、サブマイコン30はLATCH端子における電圧レベルを論理Loレベルに対応する電圧レベルとするため、トランジスタ423はオフとされる。すると、抵抗器413によってプルアップされるため、NANDゲート432の入力端子In1における電圧レベルは論理Hiレベルに対応する電圧レベルとなる。したがって、NANDゲート432の出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルとなり、NANDゲート431の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルに安定する。すると、経路「NANDゲート431の出力端子Out→抵抗器451→抵抗器452→GND」をたどって電流が流れ、論理Hiレベルに対応する電圧レベルの抵抗器451及び452による分圧値がトランジスタ453のゲートに印加され、トランジスタ453はオンとされる。そして、経路「定電圧源Vc(図1)→抵抗器511→抵抗器512→抵抗器521→トランジスタ453→GND」をたどって電流が流れることとなる。このとき、トランジスタ541のゲートに印加される電圧は論理Loレベルに対応する電圧レベルとなり、トランジスタ541はオフとされる。このトランジスタ541がオフとされると、リレー50もオフとされ、安全側にオフ制御されたこととなる。なおこのとき、CPUF_KO端子における電圧レベルは論理Loレベルに対応する電圧レベルとなる。
また、第1リセット条件あるいは第2リセット条件が成立するとき、電源IC10あるいはサブマイコン30は、メインマイコン20の動作状態を正常に戻すべく、メインマイコン20をリセットする。なお、メインマイコン20がリセットされると、メインマイコン20のCPU端子における電圧レベルは不定となる。また、メインマイコン20は、このリセットからの復帰後にサブマイコン30をリセットするため、サブマイコン30のCPUF端子及びLATCH端子における電圧レベルも不定となる。こうした場合においては、サブマイコン30がリセットされる直前に、当該電子制御装置1がイニシャル時または正常時にあったか、あるいは、当該電子制御装置1がフェイルセーフ時にあったかによって、ラッチ回路40の動作が異なる。
例えば、当該電子制御装置1がイニシャル時または正常時にあったとき、すなわち、NANDゲート431の出力端子Outにおける電圧レベルが論理Loレベルに対応する電圧レベルであったとき、NANDゲート431及び432の各入力端子In1における電圧レベルは、抵抗器412及び413によってそれぞれプルアップされるため、図3にリセット時1として示すように、論理Hiレベルに対応する電圧レベルとなる。一方、NANDゲート431の出力端子Outにおける電圧レベルが論理Loレベルに対応する電圧レベルであったため、NANDゲート432の入力端子In2における電圧レベルも、論理Loレベルに対応する電圧レベルとなる。そのため、NANDゲート432の出力端子Outにおける電圧レベルは論理Hiレベルに対応する電圧レベルとなり、NANDゲート431の入力端子In2における電圧レベルも論理Hiレベルに対応する電圧レベルとなる。NANDゲート431の入力端子In1及びIn2における電圧レベルが共に論理Hiレベルに対応する電圧レベルあるため、NANDゲート431の出力端子Outにおける電圧レベルは論理Loレベルで安定することとなる。もともと、NANDゲート431の出力端子Outにおける電圧レベルは論理Loレベルであったことから、リセット条件が成立してサブマイコン30がリセットされたとしても、その電圧レベルは保持されることとなる。したがって、リレー50のオンオフ制御も、サブマイコン30がリセットされる直前の制御と同様の制御が維持されることとなる。
また例えば、当該電子制御装置1がフェイルセーフ時にあったとき、すなわち、NANDゲート431の出力端子Outにおける電圧レベルが論理Hiレベルに対応する電圧レベルであったとき、NANDゲート431及び432の各入力端子In1における電圧レベルは、抵抗器412及び413によってそれぞれプルアップされるため、図3にリセット時2として示すように、論理Hiレベルに対応する電圧レベルとなる。一方、NANDゲート431の出力端子Outにおける電圧レベルが論理Hiレベルに対応する電圧レベルであったため、NANDゲート432の入力端子In2における電圧レベルも論理Hiレベルに対応する電圧レベルとなる。そのため、NANDゲート432の出力端子Outにおける電圧レベルは論理Loレベルに対応する電圧レベルとなり、NANDゲート431の入力端子In2における電圧レベルも論理Loレベルに対応する電圧レベルとなる。NANDゲート431の入力端子In1における電圧レベルが論理Hiレベルに対応する電圧レベルであり、入力端子2における電圧レベルが論理Loレベルに対応する電圧レベルであるため、NANDゲート431の出力端子Outにおける電圧レベルは論理Hiレベルで安定することとなる。もともと、論理Hiレベルであったことから、リセット条件が成立してサブマイコン30がリセットされたとしても、フェイルセーフ状態が優先され、その電圧レベルが保持されることとなる。したがって、リレー50のオンオフ制御も、サブマイコン30がリセットされる直前の制御と同様の制御が維持されることとなる。
以上説明した本実施の形態の電子制御装置1によれば、メインマイコン20の動作状態が長期に渡って異常であったとしても、フェイルセーフ処理とイニシャル処理とを交互に繰り返すことに起因して生じるリレー50の接点溶着が生じることを抑制することができるようになり、制御対象(リレー50)をフェイルセーフ側に制御することができるようになる。
ところで、サブマイコン30のCPUF端子及びLATCH端子における電圧レベルにノイズが重畳されるようなことがあると、こうしたノイズが重畳することに起因して、CPUF_KO端子における電圧レベルが変化してしまい、リレー50のオンオフ制御に誤動作が生じることが懸念される。
その点、本実施の形態では、サブマイコン30は、CPUF端子及びLATCH端子から出力する第1及び第2出力信号の電圧レベルを変える必要がない場合であっても、そのCPUF端子及びLATCH端子に例えば「8ミリ秒」毎に第1及び第2出力信号を繰り返し出力し、CPUF端子及びLATCH端子における電圧レベルを更新することとしている。これにより、サブマイコン30のCPUF端子及びLATCH端子における電圧レベルにノイズが重畳され、リレー50が誤動作しようとしても、その動作を即座に修正することができるようになる。
次に、図4〜図6を併せ参照して、電源IC10及びサブマイコン30が実行するリセット処理及びフェイルセーフ処理の処理手順について説明する。なお、図4は、主に電源IC10によるメインマイコン20のリセット処理の処理手順の一例を示したものであり、図5は、サブマイコン30によるメインマイコン20のリセット処理の処理手順の一例を示したものである。また、図6は、サブマイコン30によるフェイルセーフ処理の処理手順の一例を示したものである。
当該電子制御装置1に電源が投入された後、電源IC10及びサブマイコン30は、図4に示される上記第1リセット条件に係るリセット処理を実行している。具体的には、電源IC10及びサブマイコン30は、メインマイコン20から入力されるウォッチドッグ信号に基づいてメインマイコン20の動作状態を監視している。
まず、サブマイコン30は、ウォッチドッグ信号が途絶してから16ミリ秒が経過したか否かを判断するステップS102の判断処理、及び、ウォッチドッグ信号が正常に入力されるようになったか否かを判断するステップS104の判断処理を通じて、メインマイコン20の動作状態が異常であるか否かを一次的に判断する。ここで、ステップS102の判断処理においては「No」であり、続くステップS104の判断処理においては「Yes」であるとき、メインマイコン20の動作状態がそもそも正常である、あるいは、ウォッチドッグ信号が一時的に途絶しただけであるため、サブマイコン30は、続くステップS106の処理において、後述するウォッチドッグ異常履歴を消去する。一方、ステップS102の判断処理において「NO」であり、続くステップS104の判断処理においても「No」であるとき、メインマイコン20の動作状態が異常である可能性が高まりつつある。そのため、サブマイコン30は、ステップS102及びS104の判断処理を繰り返し実行し、このステップS102の判断処理において「Yes」となったとき、ウォッチドッグ信号が16ミリ秒間途絶したことから、メインマイコン20の動作状態が異常である可能性が高いため、サブマイコン30は、続くステップS108の処理として、ウォッチドッグ異常履歴を記憶する。なお、このウォッチドッグ異常履歴は、サブマイコン30に備えられた適宜の記憶保持手段に記憶され、サブマイコン30がリセットされても、その内容は保持される。
次に、電源IC10は、ウォッチドッグ信号が途絶してから40ミリ秒が経過したか否かを判断するステップS110、及び、ウォッチドッグ信号が正常に入力されるようになったか否かを判断するステップS112の判断処理を通じて、メインマイコン20の動作状態が異常であるか否かを二次的に判断する。ここで、ステップS110の判断処理においては「No」であり、続くステップS112の判断処理においては「Yes」であるとき、メインマイコン20の動作状態が異常であると一度は判断されたものの正常に復帰したため、サブマイコン30は、先のステップS106の処理を通じて、ウォッチドッグ異常履歴を消去する。一方、ステップS110の判断処理において「No」であり、続くステップS112の判断処理においても「No」であるとき、メインマイコン20の動作状態が異常である可能性は極めて高い。そのため、電源IC10は、ステップS110の判断処理を繰り返し実行し、このステップS110の判断処理において「Yes」となったとき、ウォッチドッグ信号が40ミリ秒もの間途絶したことから、電源IC10は、続くステップS114の処理として、メインマイコン20の動作状態を正常に戻すべく、メインマイコン20をリセットする。なお、既述したように、メインマイコン20が電源IC10によってリセットされて該リセットから復帰すると、サブマイコン30をリセットする。サブマイコン30は、そうしたリセットからの復帰後、ウォッチドッグ異常履歴や後述する通信状態異常履歴等を参照することにより、メインマイコン20の連続リセット回数を把握することができる。
また、当該電子制御装置1に電源が投入された後、サブマイコン30は、図5に示される上記第2リセット条件に係るリセット処理を実行している。サブマイコン30は、メインマイコン20との情報通信の通信状態に基づいてメインマイコン20の動作状態を監視する。
まず、サブマイコン30は、ステップS200の処理として、CPUF端子及びLATCH端子に例えば「8ミリ秒」毎に第1及び第2出力信号を繰り返し出力し、CPUF端子及びLATCH端子における電圧レベルを更新する。サブマイコン30のCPUF端子及びLATCH端子における電圧レベルにノイズが重畳されると、このノイズに起因してリレー50が誤動作することがあることは既述した通りである。このステップS200の処理を通じて電圧レベルを更新することで、ノイズに起因してリレー50に誤動作が生じることを防止するとともに、誤動作が生じた場合であっても即座に修正することができるようになる。
次に、サブマイコン30は、情報通信が途絶してから16ミリ秒が経過したか否かを判断するステップS202の判断処理、及び、情報通信が正常になったか否かを判断するステップS204の判断処理を通じて、メインマイコン20の動作状態が異常であるか否かを一次的に判断する。ここで、ステップS202の判断処理においては「No」であり、続くステップS204の判断処理においては「Yes」であるとき、メインマイコン20の動作状態がそもそも正常である、あるいは、情報通信が一時的に途絶しただけであるため、サブマイコン30は、続くステップS206の処理において、後述する通信状態異常履歴を消去する。一方、ステップS202の判断処理において「NO」であり、続くステップS204の判断処理においても「No」であるとき、メインマイコン20の動作状態が異常である可能性が高まりつつある。そのため、サブマイコン30は、ステップS202及びS204の判断処理を繰り返し実行し、このステップS202の判断処理において「Yes」となったとき、情報通信が16ミリ秒間途絶したことから、メインマイコン20の動作状態が異常である可能性が高いため、サブマイコン30は、続くステップS208の処理として、情報通信異常履歴を記憶する。なお、この情報通信異常履歴は、サブマイコン30に備えられた適宜の記憶保持手段に記憶され、サブマイコン30がリセットされても、その内容は保持される。
次に、サブマイコン30は、情報通信が途絶してから100ミリ秒が経過したか否かを判断するステップS210、及び、情報通信が正常になったか否かを判断するステップS212の判断処理を通じて、メインマイコン20の動作状態が異常であるか否かを二次的に判断する。ここで、ステップS210の判断処理においては「No」であり、続くステップS212の判断処理においては「Yes」であるとき、メインマイコン20の動作状態が異常であると一度は判断されたものの正常に復帰したため、サブマイコン30は、先のステップS206の処理を通じて、情報通信異常履歴を消去する。一方、ステップS210の判断処理において「No」であり、続くステップS212の判断処理においても「No」であるとき、メインマイコン20の動作状態が異常である可能性は極めて高い。そのため、サブマイコン30は、ステップS210及びステップS212の判断処理を繰り返し実行し、このステップS210の判断処理において「Yes」となったとき、情報通信が100ミリ秒もの間途絶したことから、サブマイコン30は、続くステップS214の処理として、メインマイコン20の動作状態を正常に戻すべく、メインマイコン20をリセットする。なお、これも既述したように、メインマイコン20が電源IC10によってリセットされて該リセットから復帰すると、サブマイコン30をリセットする。サブマイコン30は、そうしたリセットからの復帰後、先のウォッチドッグ異常履歴やこの通信状態異常履歴等を参照することにより、メインマイコン20の連続リセット回数を把握することができる。
また、当該電子制御装置1に電源が投入された後、サブマイコン30は、図6に示されるフェイルセーフ処理を実行してもいる。サブマイコン30は、ステップS300の判断処理として、メインマイコン20が連続してリセットされる回数が2回に到達したか否かを判断する。なおこのとき、サブマイコン30は、先のウォッチドッグ異常履歴及び通信状態異常履歴等々を参照しつつ自身のリセット回数に基づき、メインマイコン20の連続リセット回数を判断していることは既述した通りである。
ここで、メインマイコン20は、リセットされると、多くの場合、その動作状態が正常に復帰する。そのため、ステップS300の判断処理において「No」であるとき、メインマイコン20が正常に復帰する可能性が高いため、既述したフェイルセーフ処理を行わない。しかしながら、ステップS300の判断処理において「Yes」であるとき、メインマイコン20は、1度リセットされてもなお動作状態が正常でないことを意味する。そのため、続くステップS302の処理として、既述したフェイルセーフ処理を実行する。なお、こうしてフェイルセーフ状態に入ると、サブマイコン30は、続くステップS304及びS306の処理を通じて、先の通信状態異常履歴やウォッチドッグ異常履歴を消去する。
図7は、メインマイコン20から出力されるウォッチドッグ信号が途絶した場合の本実施の形態の動作例を示すタイミングチャートである。次に、この図7を参照して説明する。
図7(a)〜(f)に示されるように、例えば時刻t70において当該電子制御装置1に電源が投入されたとする。このとき、初期位相固定回路44(図2)によって初期における電圧レベルが確定され、メインマイコン20の動作状態が正常であるため、サブマイコン30のRESB12端子、ラッチ回路40のLATCH端子及びCPUF端子並びにCPUF_KO端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなっている。そして、図7(b)に示すように、メインマイコン20の動作状態が例えば時刻t71において異常となり、この時刻t71から40ミリ秒経過してもなおウォッチドッグ信号が途絶したままであると、電源IC10は、メインマイコン20の動作状態が異常であると判断し、RESET11端子を介してメインマイコン20をリセットする。そして、リセットされたメインマイコン20がこのリセットから復帰すると、メインマイコン20は、RESET12端子を介してサブマイコン30をリセットする。具体的には、図7(c)に示されるように、先の時刻t71から40ミリ秒経過後の時刻t72において、サブマイコン30のRESB12端子における電圧レベルは、論理Loレベルに対応する電圧レベルとされる。リセットされたサブマイコンのLATCH端子及びCPUF端子における電圧レベルは不定となるものの、ラッチ回路40のLATCH端子(正確にはトランジスタ423のゲート)における電圧レベルは論理Loレベルに対応する電圧レベルとなり、ラッチ回路40のCPUF端子(正確にはNANDゲート431の入力端子In1)における電圧レベルは論理Hiレベルに対応する電圧レベルとなる。その結果、図7(f)に示されるように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなる。このリセットの復帰後も依然としてメインマイコン20の動作状態が異常であってウォッチドッグ信号が出力されないと、電源ICは、再び、メインマイコン20をリセットし、このリセットから復帰したメインマイコン20は、例えば時刻t73において、再び、サブマイコン30をリセットする。
こうしてリセットされると、メインマイコン20が連続してリセットされた回数が2回に達するフェイルセーフ条件が成立するため、サブマイコン30は、例えば時刻t74において、そのLATCH端子及びCPUF端子における電圧レベルを論理Loレベルに対応する電圧レベルとするフェイルセーフ処理を実行する。すると、図7(d)及び(e)に示すように、ラッチ回路40のLATCH端子及びCPUF端子における電圧レベルも論理Loレベルとされ、図7(f)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルも論理Loレベルに対応する電圧レベルとされる。さらには、リレー50(図1)もオフとされ、フェイルセーフ状態となる。
時刻t74以後のフェイルセーフ状態にあっても、電源IC10によるメインマイコン20のリセット処理は継続して実行される。すなわち、リセット条件が成立して電源IC10がメインマイコン20をリセットし、このリセットから復帰したメインマイコン20が、図7(c)に示すように、例えば時刻t75においてサブマイコン30をリセットすると、図7(d)に示すように、ラッチ回路40のLATCH端子における電圧レベルは論理Loレベルに対応する電圧レベルとなり、図7(e)に示すように、ラッチ回路40のCPUF端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなる。ただし、図7(f)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Loレベルに対応する電圧レベルを保持し、リレー50(図1)もオフ制御されたままとなる。以降、リセット条件が成立して、電源IC10によってメインマイコン20がリセットされ、このリセット復帰後メインマイコン20によってサブマイコン30がリセットされても、CPUF_KO端子における電圧レベルは、リセットされる直前と同一の電圧レベルを保持し、リレー50のオンオフ制御を保持されるようになる。
図8は、メインマイコン20とサブマイコン30との間の情報通信が途絶した場合の本実施の形態の動作例を示すタイミングチャートである。次に、この図8を参照して説明する。
図8(a)〜(f)に示されるように、例えば時刻t80において当該電子制御装置1に電源が投入されたとする。このとき、初期位相固定回路44(図2)によって初期における電圧レベルが確定され、メインマイコン20の動作状態が正常であるため、サブマイコン30のRESB12端子、ラッチ回路40のLATCH端子及びCPUF端子並びにCPUF_KO端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなっている。そして、図8(a)に示すように、メインマイコン20の動作状態が例えば時刻t81において異常となり、この時刻t81から100ミリ秒経過してもなおサブマイコン30との情報通信が途絶したままであると、サブマイコン30は、メインマイコン20の動作状態が異常であると判断し、RESET2端子を介してメインマイコン20をリセットする。そして、リセットされたメインマイコン20がこのリセットから復帰すると、メインマイコン20は、RESET12端子を介してサブマイコン30をリセットする。具体的には、図8(c)に示されるように、先の時刻t81から100ミリ秒経過後の時刻t82において、サブマイコン30のRESB12端子における電圧レベルは、論理Loレベルに対応する電圧レベルとされる。リセットされたサブマイコンのLATCH端子及びCPUF端子における電圧レベルは不定となるものの、ラッチ回路40のLATCH端子(正確にはトランジスタ423のゲート)における電圧レベルは論理Loレベルに対応する電圧レベルとなり、ラッチ回路40のCPUF端子(正確にはNANDゲート431の入力端子In1)における電圧レベルは論理Hiレベルに対応する電圧レベルとなる。その結果、図8(f)に示されるように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなる。このリセットの復帰後も依然としてメインマイコン20の動作状態が異常であって情報通信が行われないと、サブマイコン30は、再び、メインマイコン20をリセットし、このリセットから復帰したメインマイコン20は、例えば時刻t83において、サブマイコン30を再びリセットする。
こうしてリセットされると、メインマイコン20が連続してリセットされた回数が2回に達するフェイルセーフ条件が成立するため、サブマイコン30は、例えば時刻t84において、そのLATCH端子及びCPUF端子における電圧レベルを論理Loレベルに対応する電圧レベルとするフェイルセーフ処理を実行する。すると、図8(d)及び(e)に示すように、ラッチ回路40のLATCH端子及びCPUF端子における電圧レベルも論理Loレベルとされ、図8(f)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルも論理Loレベルに対応する電圧レベルとされる。さらには、リレー50(図1)もオフとされ、フェイルセーフ状態となる。
時刻t84以後のフェイルセーフ状態にあっても、サブマイコン30よるメインマイコン20のリセット処理は継続して実行される。すなわち、リセット条件が成立してサブマイコン30がメインマイコン20をリセットし、このリセットから復帰したメインマイコン20が、図8(c)に示すように、例えば時刻t85においてサブマイコン30をリセットすると、図8(d)に示すように、ラッチ回路40のLATCH端子における電圧レベルは論理Loレベルに対応する電圧レベルとなり、図8(e)に示すように、ラッチ回路40のCPUF端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなる。ただし、図8(f)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Loレベルに対応する電圧レベルを保持し、リレー50(図1)もオフ制御されたままとなる。以降、リセット条件が成立して、サブマイコン30によってメインマイコン20がリセットされ、このリセット復帰後メインマイコン20によってサブマイコン30がリセットされても、CPUF_KO端子における電圧レベルは、リセットされる直前と同一の電圧レベルを保持し、リレー50のオフ制御を保持するようになる。
図9及び図10は、サブマイコン30のLATCH端子及びCPUF端子における電圧レベルを更新出力する本実施の形態の動作例及び更新出力しない動作例をそれぞれ示すタイミングチャートである。次に、これら図9及び図10を併せ参照して説明する。
図9(a)〜(g)及び図10(a)〜(g)に示されるように、例えば時刻t90において当該電子制御装置1に電源が投入されたとする。このとき、初期位相固定回路44(図2)によって初期における電圧レベルが確定され、メインマイコン20の動作状態が正常であるため、サブマイコン30のRESB12端子、ラッチ回路40のLATCH端子及びCPUF端子並びにCPUF_KO端子における電圧レベルは、論理Hiレベルに対応する電圧レベルとなっている。なお、図9においては、サブマイコン30は、そのLATCH端子及びCPUF端子の電圧レベルを8ミリ秒毎に更新している(ステップS200の処理(図5))。
ここで、図9(a)及び図10(a)にそれぞれ示すノイズがサブマイコン30のLATCH端子(正確には、トランジスタ423のゲート)及びCPUF端子(正確にはNANDゲート431の入力端子In1)における電圧レベルに重畳されたとする。このとき、図9(e)及び(f)並びに図10(e)及び(f)に示されるように、サブマイコン30のLATCH端子及びCPUF端子における電圧レベルはそれぞれ徐々に低下し、例えば時刻t91及びt101において、論理Loレベルに対応する電圧レベルにまで低下する。そのため、図9(g)及び図10(g)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Loレベルに対応する電圧レベルに変化してしまう。
このように、ノイズが重畳することにより電圧レベルが変化したままであると、図10(g)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルは、論理Loレベルに対応する電圧レベルのままであり、メインマイコン20の動作状態が正常であるにもかかわらず、フェイルセーフ状態とされてしまう。
しかしながら、ノイズが重畳して電圧レベルが変化しても、サブマイコン30がそのLATCH端子及びCPUF端子の電圧レベルを更新すると、図9(e)及び(f)に示すように、ラッチ回路40のLATCH端子及びCPUF端子における電圧レベルが例えば時刻t92において更新されて、それぞれ論理Hiレベルに対応する電圧レベルとなる。したがって、図9(g)に示すように、ラッチ回路40のCPUF_KO端子における電圧レベルは、時刻t92において、正常に復帰することとなる。
なお、本発明に係る電子制御装置は、上記実施の形態で例示した構成に限られるものではなく、本実施の形態を適宜変更した例えば次の形態として実行することもできる。
上記実施の形態では、第1リセット条件として、「メインマイコン20から電源IC10へ入力されるはずのウォッチドッグ信号が途絶して以後第1判定期間(例えば40ミリ秒)を経過すること」を採用していたが、第1判定期間は40ミリ秒に限らず任意である。同じく、上記実施の形態(変形例を含む)では、第2リセット条件として、「メインマイコン20とサブマイコン30との間での情報通信が途絶されて以後第2判定期間(例えば100ミリ秒)を経過すること」を採用していたが、第2判定期間も100ミリ秒に限らず任意である。また、第2リセット条件としては、第1リセット条件のように、メインマイコン20とサブマイコン30との間での情報通信が途絶されて以後の経過時間に替えて、もしくは、これに加えて、メインマイコン20からサブマイコン30へ入力されるウォッチドッグ信号が途絶して以後の経過時間に基づくこととしてもよい。
上記実施の形態(変形例を含む)では、メインマイコン20が連続してリセットされる回数が2回に到達することをフェイルセーフ条件としていたが、そうした回数は2回に限らず任意である。メインマイコン20は、その動作状態が一旦異常となってしまっても、リセット復帰後に正常に戻ることもある。したがって、メインマイコン20の動作状態が正常に戻るような試みをした上で、フェイルセーフ処理に移行することが望ましい。そのため、フェイルセーフ条件としては、リセットされる回数にも限らない。第1リセット条件や第2リセット条件と同様に、メインマイコン20から出力されるはずのウォッチドッグ信号が途絶して以後経過した期間に基づくフェイルセーフ条件としてもよく、あるいは、メインマイコン20とサブマイコン30との間の情報通信が途絶して以後経過した期間に基づくフェイルセーフ条件としてもよい。
上記実施の形態(変形例を含む)では、当該電子制御装置1の駆動初期において、NANDゲート431及び432の各端子における電圧レベルを固定するためのコンデンサ441を含んで初期位相固定回路44を構成していたが、コンデンサに限らない。他に例えば定電圧源を備え、駆動初期においてのみ、NANDゲート432の入力端子In2における電圧レベルを論理Loレベルに対応する電圧レベルに固定することとしてもよい。駆動初期における電圧レベルを固定することができれば、その構成は任意である。
上記実施の形態(変形例を含む)では、サブマイコン30は、第1及び第2出力信号の電圧レベルを変える必要がない場合であっても、そのCPUF端子及びLATCH端子に例えば「8ミリ秒」毎に第1及び第2出力信号を繰り返し出力し、CPUF端子及びLATCH端子における電圧レベルを更新していたが、これに限らない。CPUF端子及びLATCH端子における電圧レベルにノイズが重畳することがないのであれば、あるいは、重畳されてもリレー50が誤動作しないのであれば、そうした更新を実行しなくともよい。
上記実施の形態(変形例を含む)では、当該電子制御装置の制御対象とするリレー50として、内燃機関の燃焼室の予熱機構を構成するグロープラグを点消灯するグローリレーを採用していたが、これに限らない。他にも、内燃機関の燃焼室に燃料を噴射供給するインジェクタを駆動制御するEDUへ駆動電圧を供給するEDUリレーを採用してもよい。要は、イニシャル時とフェイルセーフ時とで、そのオンオフが異なるリレーであれば、本発明は同様に有効である。
1…電子制御装置、10…電源IC(電源部)、20…メインマイクロコンピュータ(主制御部)、30…サブマイクロコンピュータ(副制御部)、40…ラッチ回路、411〜R413、421、422、442、451、452、511、512、521、531…抵抗器、423、453、541…トランジスタ、43…ラッチ部、431、432、443、444……オペアンプ、44…初期位相固定回路、441…コンデンサ、50…リレー