以下において、図面を参照しながら、発明を実施するための形態を説明する。本実施形態では、一例として、本発明を図1に示す電子制御装置100に適用した例を採用する。また、電子制御装置100は、例えば、内燃機関と電動機とを動力源とした所謂ハイブリッド車(プラグインハイブリッド車を含む)に搭載される。なお、ハイブリッド車は、被搭載機に相当する。
まず、図1を用いて、電子制御装置100の構成に関して説明する。電子制御装置100は、図1に示すように、イグニッションスイッチ200、補機バッテリ300が接続されており、且つ、DC‐DCコンバータを介して主バッテリ400が接続されている。電子制御装置100は、これらとともにハイブリッド車に搭載されている。
電子制御装置100は、イグニッションスイッチ200のオンオフに応じて、イグニッションスイッチ200のオンを示すIG信号(例えばハイや1)、及びイグニッションスイッチ200のオフを示すIG信号(例えばローや0)が入力される。また、電子制御装置100は、補機バッテリ300から電源供給されるとともに、主バッテリ400から補機バッテリ300を充電するための処理を行う。なお、充電するための処理(以下、充電制御)に関しては、後程説明する。
主バッテリ400は、例えば300V程度であり、動力源としての電動機に対する電源供給を行う。一方、補機バッテリ300は、例えば12V程度であり、主バッテリ400から充電可能に構成されており、電子制御装置100や、ハイブリッド車に搭載される各種機器(補機系負荷)に対する電源供給を行う。このように、主バッテリ400は、補機バッテリ300よりも電圧が高く、高電圧バッテリとも言える。これに対して、補機バッテリ300は、低電圧バッテリとも言える。
電子制御装置100は、図1に示すように、主に、マイコン10、タイマIC20、電源IC30などを備えて構成されている。これらは、互いに電気的に接続されている。なお、マイコンは、マイクロコンピュータの略称である。
また、電子制御装置100は、アクセル開度センサ及び車速センサなどの各種センサや各種電子制御ユニットが、直接又は車内ネットワーク経由で電気的に接続されている。電子制御装置100は、各種センサの検出信号及び各種電子制御ユニットから入力されるデータなどを用いつつ動力源である内燃機関や電動機に対する制御信号を出力する。よって、電子制御装置100は、ハイブリッドECUとも言える。また、電子制御装置100は、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出するように構成されている。
電源IC30は、電源供給部に相当する。電源IC30は、補機バッテリ300からバッテリ電圧が供給されて、マイコン10とタイマIC20に供給する電源を生成し、マイコン10とタイマIC20に電源を供給する。詳述すると、電源IC30は、マイコン10に対して動作時の動作電源を供給するとともに、メモリ11とタイマIC20に対して常時電源を供給する。よって、メモリ11とタイマIC20は、マイコン10に対して動作電源が供給されておらずマイコン10が停止している間も電源が供給される。
このように、本実施形態では、メモリ11とタイマIC20とに共通の電源を供給する例を採用している。つまり、メモリ11とタイマIC20は、同一電源となるように構成されている。よって、電子制御装置100は、補機バッテリ300が外れると、メモリ11の記憶内容が消去されるとともに、タイマIC20が停止する。
また、電源IC30は、オア回路31とバッテリ外れ検出部32を備えている。オア回路31は、入力端子にイグニッションスイッチ200とタイマIC20が接続されており、出力端子がマイコン10に接続されている。オア回路31は、イグニッションスイッチ200からのオンを示すIG信号と、タイマIC20からの起動信号(例えばハイや1)の少なくとも一方が入力されていると、マイコン10に対して動作を指示する指示信号(例えばハイや1)を出力する。バッテリ外れ検出部32は、補機バッテリ300が電子制御装置100から取り外されたことを検出する。
マイコン10は、制御部に相当する。マイコン10は、例えばCPU、ROM、RAM、及びこれらを接続するバスラインなどのハードを備えて構成されている。さらに、マイコン10は、内部タイマを備えている。よって、マイコン10は、内部タイマによって、時間を計測できる。内部タイマは、例えば、所定の時間間隔でカウントアップするものを採用できる。なお、マイコン10は、図7のタイミングt4に示すように、タイマIC20をリセット可能に構成されている。
マイコン10は、CPUがROMからプログラムや各種データを読み出す。CPUは、プログラムを実行するとともに読み出したデータや入力されるデータなどを用いて、RAMを一時的な記憶手段として利用しつつ所定の演算を行うように構成されている。このようにして、マイコン10は、上記制御信号の出力などの各種処理を実行する。また、マイコン10は、補機バッテリ300のバッテリ電圧を検出したり、バッテリ外れ検出部32の検出結果を取得したりする処理を実行するように構成されている。
マイコン10は、後程説明するメモリ11に対して常時電源が供給され、且つ、メモリ11に対する電源とは別に電源IC30から動作電源が供給される。マイコン10は、動作電源が供給されて動作している状態と、動作電源が供給されておらず停止している状態をとることができる。
マイコン10は、停止している状態において、イグニッションスイッチ200がオンされたり、タイマIC20から起動信号が出力されたりすると、電源IC30から動作電源が供給されるとともに指示信号が入力されて起動して動作を開始する。また、マイコン10は、起動した際に、所定の起動時処理を実行した後に、制御信号を出力など通常処理を行うように構成されている。
なお、マイコン10は、車内のネットワークに接続されている場合、車内ネットワークにおける他の電子制御ユニットから出力された起動信号が入力された場合に、起動するように構成されていてもよい。オンを示すIG信号や他の制御装置から出力された起動信号は、外部信号に相当する。
また、マイコン10は、動作している状態において、イグニッションスイッチ200がオフされると、電源IC30から指示信号が入力されなくなるとともに動作電源が供給されなくなり停止する。詳述すると、マイコン10は、電源IC30から指示信号が入力されなくなると、所定のオフ後処理を実行した後に、動作電源が供給されなくなり停止するように構成されている。このように、マイコン10は、イグニッションスイッチ200がオンからオフに切り換わっても、オフ後処理が終了するまで動作中となる。なお、マイコン10は、電源IC30に対して、マイコン10への動作電源の供給を停止する指示を行うことで、動作電源が供給されなくなる。
マイコン10は、常時、電源IC30から電源供給されるメモリ11を備えている。メモリ11は、記憶部に相当し、上記ROMなどである。メモリ11は、電源供給されている間、記憶内容を保持可能に構成されている。マイコン10は、上記のようにメモリ11に対して常時電源が供給され、且つ、メモリ11に対する電源とは別に電源IC30から動作電源が供給される。よって、メモリ11は、マイコン10の動作中及び停止中にかかわらず記憶内容を保持できる。なお、メモリ11は、マイコン10の外部に設けられていてもよい。
メモリ11は、タイマIC20に設定する設定値を記憶している。この設定値は、設定時間に相当する。また、設定値は、マイコン10が停止している間に、タイマIC20に計測させる時間である。
また、マイコン10は、停止しているマイコン10を、タイマIC20に起動させるために設定値を設定する。よって、設定値は、マイコン10が停止してから、停止しているマイコン10を起動させるまでの時間的間隔とも言える。また、設定値は、起動予定時間とも言える。
このように、メモリ11に記憶された設定値と、タイマIC20に設定された設定値とは、異常が発生していない場合、同じ値である。以下においては、これらを区別するために、タイマIC20に設定された設定値をタイマ設定値、メモリ11に記憶された設定値をマイコン設定値とも称する。なお、本実施形態では、一例として、設定値として5日を採用する。
さらに、メモリ11は、補機バッテリ300の予測電圧やダイアグ情報などを記憶している。予測電圧は、マイコン10が停止した後で、且つ、設定値が示す時間が経過した時点における補機バッテリ300のバッテリ電圧を予測した値である。つまり、予測電圧は、マイコン10が停止してから5日後における、電圧が低下した状態の補機バッテリ300のバッテリ電圧の予測値である。ダイアグ情報は、後程説明する各異常検出の結果、すなわち異常履歴を示す情報である。しかしながら、本発明は、予測電圧やダイアグ情報を記憶していなくても、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。
タイマIC20は、計時部に相当する。タイマIC20は、図7に示すように、マイコン10の動作中及び停止中にかかわらず時間を計測することができる。タイマIC20は、マイコン10から設定値が設定される。例えば、タイマIC20は、マイコン10からタイマ設定値が設定された場合、タイマ設定値をレジスタなどに格納する。タイマIC20は、図7に示すように、計測時間がタイマ設定値に達すると(タイミングt3)、起動信号を出力することでマイコン10を起動させる。
なお、計測時間は、タイマ値とも言える。また、タイマ値は、マイコン10から読み取られる。よって、タイマ値は、読み取り時間とも称することができる。
次に、図2〜図8を用いて、電子制御装置100の処理動作に関して説明する。なお、マイコン10は、以下のフローチャートで示す処理の他にも処理を行う。例えば、マイコン10は、通常処理として、動作中におけるタイマIC20の異常判定を行う。この場合、マイコン10は、所定期間の時間を内部タイマにより計測する。そして、マイコン10は、所定期間内にタイマIC20で計測された時間と内部タイマで計測された時間とを比較することで、タイマIC20の異常を判定する。例えば、マイコン10は、所定期間として、図7のタイミングt1〜t2や図8のタイミングt11〜t12の時間を計測する。そして、マイコン10は、タイミングt2において、タイマIC20で計測された時間と内部タイマで計測された時間とを比較する。また、マイコン10は、タイミングt12で計測された時間と内部タイマで計測された時間とを比較する。
まず、図2を用いて、マイコン10のオフ後処理に関して説明する。マイコン10は、イグニッションスイッチ200がオンからオフに切り換わると、図2のフローチャートに示す処理をスタートする。
ステップS10では、タイマIC20に1秒を設定する(設定部)。この1秒は、確認用設定時間に相当する。つまり、マイコン10は、動作中において、タイマIC20に対して確認用設定時間を設定する。マイコン10は、動作を停止する前に、タイマIC20が正常に起動信号を出力できるか否かを確認するために確認用設定時間を設定する。
この確認用設定時間は、タイマIC20に計測させる時間である。また、確認用設定時間は、タイマIC20に、確認用設定時間が経過すると起動信号を出力させるための時間である。よって、タイマIC20は、マイコン10から1秒が設定されると、時間を計測する。そして、タイマIC20は、タイマIC20で計測した時間が1秒に達すると起動信号を出力する。
なお、確認用設定時間は、一例として1秒を採用しているがこれに限定されない。しかしながら、マイコン10は、確認用設定時間に長い時間が設定されると、その分、オフ後処理の時間が長くなる。このため、確認用設定時間は、1秒程度が好ましい。また、マイコン10は、タイマIC20が正常に起動信号を出力できるか否かを確認するために確認用設定時間を設定するため、上記タイマ設定値よりも十分に短い時間を採用する。
ステップS11では、時間を計測する(経過時間計測部)。マイコン10は、ステップS10で1秒を設定してから起動指示があるまでの経過時間を、内部タイマで計測する。つまり、マイコン10は、ステップS10で1秒を設定してからタイマIC20から起動信号が出力されるまでの時間を計測する。ステップS11は、タイマIC20における時間の計測精度を確認するためである。
ステップS12では、タイマIC20から起動信号が有るか否かを判定する(確認部)。つまり、マイコン10は、ステップS10で確認用設定時間を設定した後に、タイマIC20からマイコン10を起動させる起動指示があるか否かを確認する。そして、マイコン10は、起動信号有りと判定した場合はステップS13へ進み、起動信号有りと判定してない場合はステップS20へ進む。なお、このときのマイコン10は、動作中であるため、起動信号有りと判定しても、後程説明する起動時処理を行うことはない。
これによって、マイコン10は、タイマIC20から正常に起動信号が出力されるか否かを、動作を停止する前に判定できる。よって、マイコン10は、タイマIC20に対してタイマ設定値を設定したにもかかわらず、タイマIC20から起動されない起動不良を抑制できる。
ステップS13では、0.95秒≦起動時間≦1.05秒であるか否かを判定する(精度判定部)。この起動時間は、ステップS11で計測を開始してから起動信号が出力されるまので時間である。よって、タイマIC20における時間の計測精度が正常であれば、起動時間は、1秒となるはずである。ステップS13は、タイマIC20における時間の計測精度を確認するための判定処理である。
マイコン10は、0.95秒≦起動時間≦1.05秒であると判定した場合、タイマIC20の計測精度が正常であるとみなしてステップS14へ進む。このように、マイコン10は、ステップS10で設定してから起動信号が出力されるまでの経過時間が1秒と一致、もしくは経過時間が1秒に対して所定範囲内の誤差であった場合、タイマIC20の計測精度が正常であると判定する。一方、マイコン10は、0.95秒≦起動時間≦1.05秒であると判定しなった場合、タイマIC20の計測精度が正常でないとみなしてステップS17へ進む。なお、ここでは、誤差の範囲の一例として±5%を採用しているが、これに限定されない。
ステップS14では、タイマIC20に5日を設定する。この5日は、タイマ設定値に相当する。マイコン10は、タイマ設定値として5日を、タイマIC20に設定する。つまり、マイコン10は、5日後にマイコン10を起動させるように、タイマIC20に指示する。これによって、タイマIC20は、レジスタなどにタイマ設定値として5日を示す値(時間)を格納する。
このステップS14は、イグニッションスイッチ200がオフされている間にマイコン10を起動させて、充電制御を行うためである。補機バッテリ300は、イグニッションスイッチ200がオフされている間にも電力を消費する。このため、補機バッテリ300は、イグニッションスイッチ200がオフされている状態が継続されると、バッテリあがりが起こる可能性がある。そこで、マイコン10は、補機バッテリ300がバッテリあがりとならないように、充電制御を行うためにステップS14を行う。よって、タイマ設定値は、補機バッテリ300がバッテリあがりを起こさず、充電が頻繁に行われない程度の値が設定される。
ステップS15では、5日設定履歴を記憶する。マイコン10は、ステップS14でタイマIC20に設定したタイマ設定値と同じ値を示すマイコン設定値をメモリ11に記憶する。これによって、メモリ11には、マイコン設定値として5日を示す値が記憶される。
ステップS16では、マイコン10は処理を終了し、電源がオフされる。つまり、マイコン10は、オフ後処理を終了すると、マイコン10への動作電源の供給を停止させる。このようにすることで、マイコン10は、タイマIC20が正常にマイコン10を起動させることができることを確認したうえで、マイコン10の処理を終了させることができる。
一方、ステップS17では、タイマIC20の精度異常と判定する。そして、ステップS18では、精度異常履歴を記憶する。マイコン10は、タイマIC20の計測精度が異常であることをメモリ11に記憶する。ここで記憶する異常履歴は、他の異常履歴と区別するために第1異常履歴とも称する。
なお、マイコン10は、メモリ11に異常履歴を記憶する際には、異常履歴が何回記憶されたかを判断できるように記憶すると好ましい。例えば、マイコン10は、第1異常履歴が何回記憶されたかを判断できるように記憶する。これは、後程説明する他の異常履歴を記憶する場合も同様である。つまり、マイコン10は、メモリ11に各異常履歴を記憶する場合、各異常履歴が何回記憶されたかを判断できるように記憶すると好ましい。
ステップS19では、タイマIC20をリセットする。つまり、マイコン10は、計測精度が異常であるタイマIC20を初期化する。タイマIC20は、リセットによって計測精度が正常に戻る可能性がある。
ステップS20では、1.05秒<計測時間であるか否かを判定する。マイコン10は、ステップS11で計測を開始してからの計測時間が1.05秒を超えたと判定していない場合はステップS12へ戻る。一方、マイコン10は、計測時間が1.05秒を超えたと判定した場合はステップS21へ進む。このように、1秒後に起動信号を出力するようにタイマIC20に指示したにもかかわらず、タイマIC20から起動信号が出力されずに、計測時間が1.05秒を超えた場合、何らかの異常が発生していると考えられる。よって、マイコン10は、計測時間が1.05秒を超えたと判定した場合、何らかの異常が発生しているとみなしてステップS21へ進む。
ステップS21では、時間読み取りを行う。マイコン10は、タイマIC20からタイマ値を読み取る。これは、タイマIC20の計測精度の確認、タイマIC20の起動機能の確認、及びマイコン10とタイマIC20との間の通信状態の確認を行うためである。
ステップS22では、読み取り可であるか否かを判定する。マイコン10は、タイマIC20からタイマ値を読み取れたか否かを判定し、タイマ値を読み取れたと判定した場合はステップS23へ進み、タイマ値を読み取れたと判定してない場合はステップS27へ進む。
ステップS23では、読み取り時間≦1.05秒であるか否かを判定する。つまり、マイコン10は、読み取れたタイマ値が1.05秒以下であるか否かを判定する。そして、マイコン10は、1.05秒以下であると判定した場合はステップS17へ進み、タイマIC20の精度異常と判定する。一方、マイコン10は、1.05秒以下であると判定しなかった場合はステップS24へ進む。
ステップS24では、タイマIC20の起動異常と判定する。つまり、マイコン10は、タイマIC20の計測精度は正常であるが、起動信号を出力する機能、すなわちマイコン10を起動させる機能に異常が生じていると判定する。
ステップS25では、起動異常履歴を記憶する。マイコン10は、タイマIC20が起動異常であることをメモリ11に記憶する。ここで記憶する異常履歴は、他の異常履歴と区別するために第2異常履歴とも称する。なお、ステップS26では、ステップS19と同様にタイマIC20をリセットする。
ステップS27では、タイマIC20の通信異常と判定する。つまり、マイコン10は、タイマIC20との通信状態に異常が生じていると判定する。通信状態の異常は、タイマIC20の通信機能の異常に加えて、マイコン10とタイマIC20との間の通信経路の異常が考えられる。
ステップS28では、通信異常履歴を記憶する。マイコン10は、タイマIC20が通信異常であることをメモリ11に記憶する。ここで記憶する異常履歴は、他の異常履歴と区別するために第3異常履歴とも称する。なお、ステップS29では、ステップS19と同様にタイマIC20をリセットする。
なお、マイコン10は、ステップS19、S26、S29に進んだ場合、タイマIC20をリセットした後に、ステップS16へ進んでもよい。また、マイコン10は、ステップS19、S26、S29に進んだ場合、ステップS10へ戻り、再度、ステップS19、S26、S29に進んだ場合、ステップS16へ進んでもよい。
次に、図3〜図6を用いて、マイコン10の起動時処理に関して説明する。マイコン10は、起動すると図3のフローチャートに示す処理をスタートする。なお、図3のフローチャートと図4のフローチャートは、マイコン10の一連の起動時処理を示している。つまり、マイコン10は、図3のステップS30でNO判定すると(A点)、図4のステップS39(A点)へ進む。また、マイコン10は、図4のステップS47、S51を終了すると(B点)、図3のエンド(B点)へ進む。
ステップS30では、タイマIC20から起動信号有りか否かを判定する。マイコン10は、タイマIC20から起動信号有りか否かを判定することで、タイマIC20から起動されたか、外部信号によって起動したのかを判定する。マイコン10は、タイマIC20から起動信号有りと判定しなかった場合、外部信号によって起動したとみなしてステップS39へ進む。つまり、マイコン10は、図8のタイミングt14に示すように、停止中にイグニッションスイッチ200がオフからオンに切り換わると、すなわち、ステップS30でNO判定の場合、起動して動作を開始する。
一方、マイコン10は、タイマIC20から起動信号有りと判定した場合、タイマIC20から起動されたとみなしてステップS31へ進む。なお、マイコン10は、上記のように、タイマIC20から起動信号有りと判定した場合、充電制御を行うことになる。
マイコン10は、図7のタイミングt3に示すように、停止中にタイマIC20から起動信号が出力されると、すなわち、ステップS30でYES判定の場合、起動して動作を開始する。タイマIC20から起動信号が出力されたということは、タイマ値が設定時間に達したと、タイマIC20によって判定されたということである。このように、マイコン10は、タイマIC20から起動されると、上記のように充電制御を行う。しかしながら、本発明はこれに限定されない。つまり、本発明は、充電制御を行わなくても、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。
マイコン10は、タイマIC20から起動信号有りと判定した場合、ステップS31〜S38を行うことになる。ステップS31では、タイマIC20から時間を読み取る。つまり、マイコン10は、タイマIC20からタイマ値を読みる。
ステップS32では、通信異常処理を行う。マイコン10は、ステップS31において、タイマIC20からタイマ値を読み取ることができなかった場合、ステップS27と同様に、タイマIC20との通信状態に異常が生じていると判定する。そして、マイコン10は、ステップS28と同様に、通信異常であることをメモリ11に記憶してもよい。なお、ここで記憶する異常履歴は、他の異常履歴と区別するために第4異常履歴とも称する。しかしながら、マイコン10は、タイマIC20からタイマ値を読み取ることができた場合、ステップS32を行うことなく、ステップS33へ進む。
ステップS33では、読み取り時間が5日±5%以内であるか否かを判定する。マイコン10は、ステップS31で読み取ったタイマ値が5日±5%以内であるか否かを判定する。マイコン10は、タイマ値が5日±5%以内であると判定した場合はステップS34へ進み、タイマ値が5日±5%以内であると判定しなかった場合はステップS36へ進む。ステップS33は、タイマIC20における時間の計測精度を確認するための判定処理である。
ステップS34では、計測時間判定処理を行う。そして、マイコン10は、ステップS34が終了すると、ステップS35において、タイマIC20をリセットする。
ここで、図5を用いて、ステップS34の計測時間判定処理に関して説明する。マイコン10は、予め設定しておいた設定値(5日)で起動できたと判定した場合に、計測時間判定処理を行う。詳述すると、マイコン10は、タイマIC20から起動されて充電制御を行う前にステップS34を行う。
ステップS60では、電圧を検出する。マイコン10は、主バッテリ400から補機バッテリ300を充電する前に、補機バッテリ300のバッテリ電圧を検出する。つまり、マイコン10は、マイコン10が停止した後で、且つ、設定値が示す時間が経過した時点における、電圧が低下した状態の補機バッテリ300のバッテリ電圧を検出する。このため、タイマIC20が正常に動作してマイコン10を起動させている場合、ここで検出された検出電圧は、メモリ11に記憶された予測電圧と同等になる。
ステップS61では、比較する(比較部)。マイコン10は、メモリ11に記憶されている予測電圧と、ステップS70で検出された検出電圧とを比較する。このように予測電圧と検出電圧とを比較するのは、タイマIC20によるマイコン10の起動タイミングが正常であるか否かを判定するである。
ステップS62では、予測電圧と検出電圧が一致しているか否かを判定する(起動判定部)。マイコン10は、ステップS61での比較結果に基づいて、予測電圧と検出電圧が一致していると判定した場合はステップS63へ進み、予測電圧と検出電圧が一致していると判定しなかった場合はステップS64へ進む。なお、ステップS62では、予測電圧と検出電圧とが完全に一致している場合だけでなく、予測電圧と検出電圧との差が誤差程度であれば一致しているとみなしてもよい。
ステップS63では、正常と判定する(起動判定部)。マイコン10は、予測電圧と検出電圧とが一致した場合は、タイマIC20が正常に動作してマイコン10を起動させていると判定する。言い換えると、マイコン10は、タイマIC20による起動タイミングが正常であると判定する。
ステップS64では、検出電圧が予測電圧よりも高いか否かを判定する(起動判定部)。マイコン10は、ステップS61での比較結果に基づいて、検出電圧が予測電圧よりも高いと判定した場合はステップS65へ進み、検出電圧が予測電圧よりも高いと判定しなかった場合はステップS66へ進む。
ステップS65では、起動タイミングが予定よりも早いと判定する(起動判定部)。検出電圧が予測電圧よりも高い場合、マイコン10が設定した本来のタイマ設定値が経過する前に、補機バッテリ300が充電されている可能性がある。このため、マイコン10は、検出電圧が予測電圧よりも高い場合、タイマIC20による起動タイミングが、本来の起動タイミングよりも早い異常と判定する。これは、タイマIC20が時間の計測を開始してからタイマ設定値に達するまでの本来の時間よりも早いタイミングでタイマ設定値に達したと判定してしまう異常がタイマIC20に発生しているとみなすことができる。
これによって、マイコン10は、予定よりも短い間隔で補機バッテリ300の充電が行われていることを検出できる。つまり、マイコン10は、補機バッテリ300の充電回数が予定よりも増えていることを検出できる。
補機バッテリ300は、充電回数が増えるにつれて寿命が短くなる。このため、マイコン10は、充電回数が予定よりも増えたことを検出できるため、充電回数が意図せず増えたことによる補機バッテリ300の短寿命化を抑制する効果も期待できる。
なお、マイコン10は、ステップS65において異常と判定した場合に起動異常履歴をメモリ11に記憶してもよい。また、マイコン10は、ステップS65において、検出電圧が予測電圧よりも極端に高い場合のみ異常と判定してもよい。これによって、マイコン10は、検出電圧と予測電圧との差がわずかであるにもかかわらず異常と判定、すなわち誤判定することを抑制できる。さらに、マイコン10は、誤判定を抑制できるため、起動異常履歴の記憶を抑制できる。
ステップS66では、起動タイミングが予定よりも遅いと判定する(起動判定部)。検出電圧が予測電圧よりも低い場合、マイコン10が設定した本来のタイマ設定値が経過しても補機バッテリ300が充電されてない可能性がある。このため、マイコン10は、検出電圧が予測電圧よりも低い場合、タイマIC20による起動タイミングが、本来の起動タイミングよりも遅い異常と判定する。これは、タイマIC20が時間の計測を開始してからタイマ設定値に達するまでの本来の時間よりも遅いタイミングでタイマ設定値に達したと判定してしまう異常がタイマIC20に発生しているとみなすことができる。
なお、マイコン10は、ステップS66において異常と判定した場合に起動異常履歴をメモリ11に記憶してもよい。また、マイコン10は、ステップS66において、検出電圧が予測電圧よりも極端に低い場合のみ異常と判定してもよい。これによって、マイコン10は、検出電圧と予測電圧との差がわずかであるにもかかわらず異常と判定、すなわち誤判定することを抑制できる。さらに、マイコン10は、誤判定を抑制できるため、起動異常履歴の記憶を抑制できる。
ここで、図3のフローチャートの説明に戻る。ステップS36では、タイマIC20の起動異常と判定する。マイコン10は、タイマIC20から起動されたものの、予定していた時間に起動されなかったため、タイマIC20の起動異常と判定する。つまり、マイコン10は、マイコン10を起動させることができるものの、予め設定された時間に起動させることができない異常が、タイマIC20に生じていると判定する。ここでの起動異常は、タイマIC20の精度異常とみなすことができる。
ステップS37では、起動異常履歴を記憶する。マイコン10は、タイマIC20が起動異常であることをメモリ11に記憶する。また、マイコン10は、タイマIC20が精度異常であることをメモリ11に記憶してもよい。ここで記憶する異常履歴は、他の異常履歴と区別するために第5異常履歴とも称する。なお、ステップS38では、ステップS35と同様にタイマIC20をリセットする。
また、マイコン10は、ステップS30でタイマIC20から起動信号有りと判定しなかった場合、ステップS39〜S51を行うことになる。
ステップS39では、マイコン外起動と判定する。マイコン10は、タイマIC20によって起動されたのではなく、イグニッションスイッチ200がオフからオンに切り換わるなど外部信号に応じて起動したと判定する。例えば、マイコン10は、図8のタイミングt14に示すようにイグニッションスイッチ200がオフからオンに切り換わると、ステップS40〜S51を行う。
ところで、タイマIC20は、電源IC30から常時電源が供給されており、マイコン10の動作中及び停止中にかかわらず時間を計測することができる。しかしながら、タイマIC20は、図8のタイミングt13に示すように、マイコン10の停止中に、タイマIC20に異常が発生してタイマ設定値やタイマ値が消失することも起こりうる。なお、タイマIC20は、電源IC30から供給されている電源が瞬間的に停止した場合であっても、タイマ設定値やタイマ値が消失する可能性がある。
マイコン10は、タイマIC20に異常が発生していない場合、タイミングt13〜t14の間にタイマ値がタイマ設定値に達して、タイマIC20から起動される可能性がある。しかしながら、マイコン10は、タイマIC20に異常が発生した場合、タイマIC20から起動される予定のタイミングで起動されずに、イグニッションスイッチ200がオフからオンに切り換わるタイミングt14で起動することが起こりうる。
そこで、マイコン10は、外部信号に応じて起動した場合、以下に説明するように、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出する。ステップS40では、タイマIC20から設定値を読み取る(読取部)。つまり、マイコン10は、マイコン10がタイマIC20に設定したタイマ設定値を、タイマIC20から読み取る。このタイマ設定値は、読み取り結果の一つである。
ステップS41では、マイコン設定値と一致しているか否かを判定する。マイコン10は、ステップS40で読み取ったタイマ設定値と、メモリ11に記憶しているマイコン設定値とを比較して、これらが一致しているか否かを判定する。つまり、マイコン10は、タイマ設定値が5日であるか否かを判定する。例えば、マイコン10は、図8のタイミングt15などで、マイコン設定値とタイマ設定値とを比較する。
タイマIC20は、異常が発生した場合、タイマ設定値が消失したり変化したりすることが考えられる。よって、タイマ設定値とマイコン設定値とが一致していなかった場合、ステップS40で読み取った読み取り結果は、タイマIC20の異常を示しているとみなすことができる。よって、マイコン10は、ステップS40で読み取った読み取り結果が、タイマIC20の異常を示しているか否かを確認するとも言える。なお、タイマ設定値の変化とは、タイマ設定値が意図せず変化したことを示しており、タイマ設定値が化けた、とも言える。
そして、マイコン10は、タイマ設定値とマイコン設定値とが一致していると判定した場合、読み取り結果がタイマIC20の異常を示していないとみなして、ステップS42へ進む。一方、マイコン10は、タイマ設定値とマイコン設定値とが一致していないと判定した場合、読み取り結果がタイマIC20の異常を示しているとみなして、ステップS48へ進む。
ステップS42では、タイマIC20から時間を読み取る(読取部)。つまり、マイコン10は、タイマIC20で計測されたタイマ値を、タイマIC20から読み取る。このタイマ値は、読み取り結果の一つである。
ステップS43では、通信異常処理を行う(通信異常判定部)。マイコン10は、ステップS42において、タイマIC20からタイマ値を読み取ることができなかった場合、タイマIC20との通信に異常が生じていると判定する。そして、マイコン10は、タイマIC20との通信に異常が生じていることをメモリ11に記憶してもよい。よって、マイコン10は、タイマIC20からタイマ値を読み取ることができた場合、ステップS43を行うことなく、ステップS44へ進む。
なお、マイコン10は、ステップS40でタイマIC20からタイマ設定値を読み取れなかった場合も通信異常と判定してもよい。この場合も、マイコン10は、タイマIC20との通信に異常が生じていることをメモリ11に記憶してもよい。
つまり、マイコン10は、タイマIC20からタイマ設定値又はタイマ値を読み取ることができなかった場合に、通信に異常が生じていると判定する。このように、マイコン10は、外部信号に応じて動作を開始した後に通信異常の判定を行う場合、タイマ設定値又はタイマ値を、タイマIC20から読み取ることで通信異常であるか否かを判定できる。また、マイコン10は、通信異常であるか否かを判定することで、異常が、タイマIC20との通信異常であると特定できる。
ステップS44では、(5日+5%)<読み取り時間であるか否かを判定する(異常判定部)。マイコン10は、(5日+5%)<タイマ値であるか否かを判定する。つまり、マイコン10は、読み取り結果であるタイマ値がタイマIC20の異常を示しているか否かを確認する。なお、5%は、誤差を示している。つまり、本実施形態では、マイコン設定値とタイマ設定値が一致しているとみなす。しかしながら、本発明は、誤差を考慮することなく、ステップS44において5日<タイマ値であるか否か判定してもよい。
(5日+5%)<タイマ値の場合、マイコン10は、タイマIC20に5日後に起動するように設定して停止したにもかかわらず、5日を過ぎてもタイマIC20から起動されなかったことになる。つまり、タイマIC20は、マイコン10から設定された5日でマイコン10を起動できておらず、マイコン10の停止中に異常が発生しているとみなせる。よって、マイコン10は、(5日+5%)<タイマ値であると判定した場合、読み取り結果であるタイマ値がタイマIC20の異常を示しているとみなしてステップS45へ進む。
一方、(5日+5%)<タイマ値でない場合、マイコン10は、タイマIC20に設定した5日が経過する前に、外部信号によって起動したことになる。よって、タイマIC20は、マイコン10の停止中に異常が発生しているとみなさない。よって、マイコン10は、(5日+5%)<タイマ値であると判定しなかった場合、読み取り結果であるタイマ値がタイマIC20の異常を示しているとみなすことなく、ステップS47へ進む。
ステップS45では、タイマIC20が起動異常であると判定する(異常判定部)。タイマIC20は、異常が発生した場合、タイマ値がタイマ設定値に達しても、マイコン10を起動できないことが考えられる。なお、この異常は、起動異常と言える。このため、マイコン設定値とタイマ設定値とが一致し、且つ、タイマ値がマイコン設定値を超えていた場合は、読み取り結果がタイマIC20の異常を示しているとみなすことができる。
よって、マイコン10は、マイコン設定値とタイマ設定値とが一致し、且つ、タイマ値がマイコン設定値を超えていた場合、タイマIC20に異常が発生していると判定する。このように、マイコン10は、タイマIC20における起動異常を検出できる。また、マイコン10は、タイマIC20との通信異常などではなく、タイマIC20における起動異常であると特定できる。ここでの起動異常は、タイマIC20の精度異常とみなすことができる。
なお、マイコン10は、マイコン設定値とタイマ設定値とが一致しているか否かに関係なく、タイマ値がマイコン設定値を超えていた場合、タイマIC20に異常が発生していると判定してもよい(異常判定部)。
ステップS46では、起動異常履歴を記憶する。マイコン10は、タイマIC20が起動異常であることをメモリ11に記憶する。また、マイコン10は、タイマIC20が精度異常であることをメモリ11に記憶してもよい。ここで記憶する異常履歴は、他の異常履歴と区別するために第6異常履歴とも称する。なお、ステップS47では、ステップS35と同様にタイマIC20をリセットする。
ステップS48では、バッテリ外れ検出有りか否かを判定する(バッテリ検出部)。マイコン10は、バッテリ外れ検出部32の検出結果によって、バッテリ外れ検出有りか否かを判定する。マイコン10は、バッテリ外れ検出部32の検出結果が、補機バッテリ300が電子制御装置100から取り外されたこを示している場合、バッテリ外れ検出有りと判定してステップS47へ進む。また、マイコン10は、バッテリ外れ検出部32の検出結果が、補機バッテリ300が電子制御装置100から取り外されたこを示していない場合、バッテリ外れ検出有りと判定せずにステップS49へ進む。
ところで、補機バッテリ300を交換する場合など、電子制御装置100から補機バッテリ300が取り外された場合、タイマIC20は、正常であるにもかかわらず、タイマ設定値が消える。また、後程説明するが、マイコン10は、ステップS49でタイマIC20が設定値異常であると判定する。
そこで、本実施形態では、マイコン設定値とタイマ設定値とが一致しておらず、且つ、ステップS48でYES判定した場合は、ステップS49へ進むことなくステップS47へ進む例を採用している。つまり、本実施形態では、マイコン設定値とタイマ設定値とが不一致であっても、電子制御装置100から補機バッテリ300が取り外されていた場合はタイマIC20の異常とみなさい(異常判定部)。
これによって、マイコン10は、タイマIC20が正常であるにもかかわらず、タイマIC20に異常が発生していると誤判定することを抑制できる。さらに、マイコン10は、ステップS50で起動異常履歴を記憶することを防止でき、後程説明するダイアグ情報を記憶することを抑制できる。なお、マイコン10は、ステップS44でYES判定した際に、電子制御装置100から補機バッテリ300が取り外されていた場合はタイマIC20の異常とみなさいようにしてもよい。
なお、本発明は、ステップS48を行わなくても、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。よって、マイコン10は、ステップS41でNO判定した場合、ステップS49に進んでもよい。
ステップS49では、タイマIC20が設定値異常であると判定する(異常判定部)。マイコン10は、マイコン設定値とタイマ設定値とが異なる場合、タイマIC20に異常が発生していると判定する。つまり、マイコン10は、タイマIC20におけるタイマ設定値の喪失や変化を検出できる。また、マイコン10は、タイマIC20との通信異常などではなく、タイマ設定値の異常であると特定できる。
ステップS50では、起動異常履歴を記憶する。マイコン10は、タイマIC20が起動異常であることをメモリ11に記憶する。また、マイコン10は、タイマIC20がタイマ設定異常であることをメモリ11に記憶してもよい。ここで記憶する異常履歴は、他の異常履歴と区別するために第7異常履歴とも称する。なお、ステップS51では、ステップS35と同様にタイマIC20をリセットする。
本発明は、異常判定部として、ステップS41とS44とS45、ステップS41とS49のいずれか一方を備えていればよい。このため、マイコン10は、異常判定部としてステップS41とS44とS45のみを備えている場合、外部信号に応じて動作を開始した後にタイマ設定値とタイマ値をタイマIC20から読み取る。一方、マイコン10は、異常判定部としてステップS41とS49のみを備えている場合、外部信号に応じて動作を開始した後にタイマ設定値のみをタイマIC20から読み取る。つまり、電子制御装置100は、タイマ設定値又はタイマ値をタイマIC20から読み取ることで、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。さらに、本発明は、異常判定部として、ステップS44とS45のみを備えていてもよい。
ところで、電子制御装置100は、上記のように、メモリ11とタイマIC20とが同一電源となるように構成されている。このため、電子制御装置100は、補機バッテリ300が外れたときに、メモリ11のマイコン設定値などの記憶内容が消去されるとともに、タイマIC20が停止してタイマ設定値が消去される。
これに対して、電子制御装置100は、メモリ11とタイマIC20が同一電源でない場合、メモリ11とタイマIC20の一方にだけ電源が供給されないことが起こりうる。この場合、電子制御装置100は、例えば、メモリ11のマイコン設定値が消えておらず、タイマIC20のタイマ設定値のみが消えることが考えられる。よって、電子制御装置100は、メモリ11とタイマIC20が同一電源でない場合、タイマIC20に電源が供給されていないだけであるにもかかわらず、タイマIC20が異常であると誤判定してしまう可能性がある。
しかしながら、電子制御装置100は、補機バッテリ300が外れたときに、メモリ11のマイコン設定値などの記憶内容が消去されるとともに、タイマIC20が停止してタイマ設定値が消去される。このため、電子制御装置100は、上記のような誤判定を抑制できる。これに伴って、電子制御装置100は、タイマIC20が異常でないにもかかわらず、異常履歴を記憶することを抑制できる。なお、本発明は、メモリ11とタイマIC20に異なる電源が供給されていても、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。
ここで、図6を用いて、ダイアグ記憶処理に関して説明する。マイコン10は、オフ後処理時と起動時処理時に、図6に示すダイアグ記憶処理を行う。
ステップS70では、タイマIC20の異常履歴が2回異常であるか否かを判定する。マイコン10は、ステップS18、S25、S28、S32、S37、S46、S50の夫々で記憶された異常履歴の記憶回数を個別にカウントして、そのカウント値が2以上であるか否かを判定する。つまり、マイコン10は、第1異常履歴〜第7異常履歴の夫々が記憶された回数を個別に数えて、各異常履歴が2回以上記憶されているか否かを判定する。ここでの判定基準値は、2回に限定されず、3回以上であっても採用できる。
そして、マイコン10は、記憶された回数が2回以上であると判定した場合はステップS71へ進み、履歴が2回以上でないと判定した場合はダイアグ記憶処理を終了する。つまり、マイコン10は、第1異常履歴を対象としてダイアグ記憶処理を開始した場合、第1異常履歴の記憶回数が2回以上であると判定した場合、ステップS71へ進み、2回以上であると判定しなかった場合、ダイアグ記憶処理を終了する。そして、マイコン10は、同様の判定を第2異常履歴〜第7異常履歴の夫々を対象として個別に行う。なお、本発明は、ステップS65、S66で記憶した異常履歴を対象に含めることもできる。
ステップS71では、タイマIC20を異常と判定する。マイコン10は、異常履歴の記憶回数が2回以上であった場合、タイマIC20が異常であると判定する。例えば、マイコン10は、第1異常履歴の記憶回数が2回以上であった場合、タイマIC20が精度異常であると判定する。また、マイコン10は、第2異常履歴の記憶回数が2回以上であった場合、タイマIC20が起動異常であると判定する。
ステップS72では、ダイアグを記憶する。マイコン10は、ステップS71で異常であると判定した場合、タイマIC20に異常が生じていることを示すダイアグ情報をメモリ11に記憶する。例えば、マイコン10は、第1異常履歴の記憶回数が2回以上であった場合、タイマIC20が精度異常であることを示すダイアグ情報をメモリ11に記憶する。また、マイコン10は、第2異常履歴の記憶回数が2回以上であった場合、タイマIC20が起動異常であることを示すダイアグ情報をメモリ11に記憶する。
マイコン10は、第1異常履歴〜第7異常履歴の夫々を対象としてダイアグ記憶処理を行うため、第1異常履歴〜第7異常履歴の夫々に対応したダイアグ情報をメモリ11に記憶できる。これによって、ディーラなどでの故障診断では、タイマIC20の異常が、精度異常、起動異常、通信異常、タイマ設定異常のいずれであるかを容易に判断できる。
なお、マイコン10は、精度異常の履歴と、通信異常の履歴と、タイマ設定値異常の履歴の夫々を対象として、ダイアグ記憶処理を個別に行う。つまり、マイコン10は、同種の異常である異常履歴を纏めてカウントし、そのカウント値が判定基準値以上である場合に、ダイアグ情報を記憶してもよい。例えば、マイコン10は、第1異常履歴の記憶回数、第5異常履歴の記憶回数、第6異常履歴の記憶回数の合計が、判定基準値以上である場合に、精度異常であることを示すダイアグ情報を記憶してもよい。
また、マイコン10は、第1異常履歴〜第7異常履歴の夫々が記憶された異常履歴の総数をカウントしてもよい。この場合、マイコン10は、総数が判定基準値を超えた場合に、タイマIC20に異常が発生していることを示すダイアグ情報をメモリ11に記憶する。これによって、ディーラなどでの故障診断では、タイマIC20の異常が発生していることを判断できる。マイコン10は、メモリ11におけるダイアグ情報の容量を減らすことができる。
以上のように、電子制御装置100は、マイコン10とタイマIC20とを備えて構成されている。マイコン10は、マイコン10が停止中にタイマIC20に計測させる時間であるタイマ設定値を、タイマIC20に設定する。そして、タイマIC20は、マイコン10が停止している間に計測した時間がタイマ設定値に達すると、マイコン10を起動させる。ところが、タイマIC20は、マイコン10が停止している間にタイマIC20に異常が発生することもある。
そこで、マイコン10は、IG信号などの外部信号に応じて動作を開始した後、タイマIC20に設定されているタイマ設定値やタイマIC20で計測されたタイマ値をタイマIC20から読み取る。この読み取り結果は、タイマIC20が正常な場合と、タイマIC20に異常が発生した場合とで異なる。よって、マイコン10は、読み取り結果がタイマIC20の異常を示しているか否かを確認し、異常を示している場合にタイマIC20に異常が発生していると判定する。これによって、電子制御装置100は、マイコン10が動作を停止している間に発生したタイマIC20の異常を検出できる。
さらに、本実施形態では、マイコン10が動作を停止している間に発生したタイマIC20の異常検出を、起動時処理時に行う例を採用している。このため、マイコン10は、いち早くタイマIC20の異常を検出できる。つまり、マイコン10は、通常処理を行う前に、タイマIC20の異常を検出できる。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上記実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。