(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】監視装置および電子制御装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20240109BHJP
G05B 23/02 20060101ALI20240109BHJP
G06F 11/14 20060101ALI20240109BHJP
【FI】
G06F11/07 157
G05B23/02 302Z
G06F11/14 641Z
(21)【出願番号】P 2019224532
(22)【出願日】2019-12-12
【審査請求日】2022-03-10
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】神谷 優人
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開平06-337803(JP,A)
【文献】特開2018-015032(JP,A)
【文献】特開平03-003041(JP,A)
【文献】特開2016-053882(JP,A)
【文献】特開2002-140209(JP,A)
【文献】特開平09-123894(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07-11/36
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
マイコン(3)からの監視対象の信号が入力される監視装置(5)であって、
前記信号が前記マイコンの異常可能性有りを示す特定状態になっている連続時間を、カウントし、前記信号が前記マイコンの正常動作を示す非特定状態になった場合に、前記連続時間のカウント値がクリアされるように構成されたカウント部(28,29)と、
前記カウント値が異常判定用の閾値に達するか或いは前記閾値を越えた場合に、前記マイコンをリセットするためのリセットパルスを、前記マイコンに出力するように構成されたリセット実施部(33)と、
前記カウント値が異常判定用の前記閾値に達するか或いは前記閾値を越えた場合に前記リセット実施部が出力する前記リセットパルスにより前記マイコンがリセットされる前の、前記信号が前記特定状態から前記非特定状態になったことによって前記カウント値がクリアされる直前の前記カウント値であるカウント極大値が、記憶されるように構成された記憶部(31,32)と、を備える、
監視装置。
【請求項2】
請求項1に記載の監視装置であって、
前記記憶部には、前記リセットパルスが出力される前における前記カウント極大値の最大値が記憶される、
監視装置。
【請求項3】
請求項1に記載の監視装置であって、
前記記憶部には、前記リセットパルスが出力される前における最新の前記カウント極大値が記憶される、
監視装置。
【請求項4】
請求項1に記載の監視装置であって、
前記記憶部は、複数の前記カウント極大値を記憶可能に構成されている、
監視装置。
【請求項5】
請求項1ないし請求項4の何れか1項に記載の監視装置であって、
前記記憶部に記憶された前記カウント極大値に基づいて、前記マイコンによる制御の内容を変更するように構成された制御変更部(S310,S320)、を更に備える、
監視装置。
【請求項6】
請求項1ないし請求項5の何れか1項に記載の監視装置であって、
前記記憶部に記憶された前記カウント極大値に基づいて、前記閾値を変更するように構成された閾値変更部(S410,S420)、を更に備える、
監視装置。
【請求項7】
請求項1~6の何れか1項に記載の監視装置と、
前記監視装置に前記監視対象の信号を出力するマイコンと、を備える、
電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、マイコンの動作を監視する監視装置に関する。また、当該監視装置を備えた電子制御装置に関する。
【背景技術】
【0002】
例えば、下記の特許文献1には、マイコンの動作を監視するためのデバイスとして、マイコンから出力される信号の周波数が許容範囲外になった場合に、マイコンにリセットパルスを出力するデバイスが記載されている。尚、マイコンとは、マイクロコンピュータの略である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
発明者の詳細な検討の結果、下記の課題が見出された。
上記従来技術では、マイコンの異常を検出して当該マイコンをリセットすることができたとしても、リセットの原因、即ち異常の原因を特定するための手がかりが得られない。
【0005】
そこで、本開示の1つの局面は、マイコンに関する異常の原因を特定するための手がかりを、増やそうとするものである。
【課題を解決するための手段】
【0006】
本開示の1つの態様による監視装置は、マイコン(3)からの監視対象の信号が入力される監視装置(5)であり、カウント部(28,29)と、リセット実施部(33)と、記憶部(31,32)と、を備える。
【0007】
カウント部は、監視対象の前記信号がマイコンの異常可能性有りを示す特定状態になっている連続時間を、カウントし、また、前記信号がマイコンの正常動作を示す非特定状態になった場合に、前記連続時間のカウント値がクリアされるように構成されている。リセット実施部は、前記カウント値が異常判定用の閾値に達するか或いは前記閾値を越えた場合に、マイコンをリセットするためのリセットパルスを、マイコンに出力するように構成されている。そして、記憶部には、前記信号が前記特定状態から前記非特定状態になったことによって前記カウント値がクリアされる直前の、前記カウント値であるカウント極大値が、記憶される。
【0008】
このような構成によれば、マイコンが前記リセットパルスによってリセットされた場合に、記憶部に記憶されているカウント極大値を読み出すことで、マイコンがリセットされる前の当該マイコンの状態を推定し易くなる。よって、マイコンに関する異常の原因を特定するための手がかりを、増やすことができる。
【0009】
また、本開示の1つの態様による電子制御装置は、本開示の1つの態様による監視装置と、当該監視装置に前記監視対象の信号を出力するマイコンと、を備える。このため、マイコンに関する異常の原因を特定するための手がかりを、増やすことができる。
【図面の簡単な説明】
【0010】
【
図1】実施態様の電子制御装置の構成を示すブロック図である。
【
図2】制御ソフトの構成を示すフローチャートである。
【
図3】第1カウント部及びリセット実施部の動作を示すタイムチャートである。
【
図4】第2カウント部及びリセット実施部の動作を示すタイムチャートである。
【
図5】リセット制御部の動作例を表す第1のタイムチャートである。
【
図6】リセット制御部の動作例を表す第2のタイムチャートである。
【
図7】効果を説明するための第1のタイムチャートである。
【
図8】効果を説明するための第2のタイムチャートである。
【
図11】第2実施形態のリセット制御部の動作を表すフローチャートである。
【
図12】第3実施形態のリセット制御部の動作を表すフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本開示の実施形態を説明する。
[1.第1実施形態]
[1-1.構成]
図1に示す実施形態の電子制御装置(以下、ECU)1は、例えば、車両のエンジンを制御するものである。ECUは、「Electronic Control Unit」の略である。
【0012】
ECU1は、当該ECU1の動作を司る制御部としてのマイコン3と、マイコン3の動作を監視して異常と判定した場合にマイコン3をリセットする機能を有したIC5と、を備える。
【0013】
マイコン3は、エンジン制御用のソフトが含まれる制御ソフト7と、IC5からのリセット信号を受け取るためのリセット信号入力回路11と、IC5との間で通信するための通信回路13と、を備える。ソフトとは、ソフトウェアの略である。
【0014】
IC5からマイコン3へのリセット信号は、微少な所定時間だけ、マイコン3をリセットする方のレベル(即ち、アクティブレベル)となるため、リセットパルスであると言える。また、リセット信号のアクティブレベルは、ローであるが、ハイであっても良い。尚、
図1及び後述する他の図において、リセット信号は「INIT」と記載されている。マイコン3とIC5との通信は、例えば同期式シリアル通信のうちのSPI通信であるが、他の通信方式でも良い。SPIは、「Serial Peripheral Interface」の略である。
【0015】
また、図示は省略されているが、マイコン3は、CPU及びメモリを備える。そして、制御ソフト7は上記メモリに記憶されている。マイコン3では、CPUがメモリ内の制御ソフト7を実行することで、当該制御ソフト7による機能が実現される。
【0016】
そして、制御ソフト7には、IC5にWDC信号を出力するためのWDC信号生成部9が含まれる。WDC信号は、マイコン3が正常に動作しているか否かを示す信号であり、IC5にとっては、マイコン3が正常に動作しているか否かを判断するために監視する監視対象信号である。WDCは、「Watch Dogtimer Clear」の略である。
【0017】
図2に示すように、制御ソフト7は、繰り返し実行される点線枠内のメインルーチンと、メインルーチンの途中で実行されるサブルーチンまたは割り込みルーチンと、を備える。
図2の例では、S110~S140の処理がメインルーチンの中で実行される。また、S200の処理Aと、S210の処理Bとが、サブルーチンまたは割り込みルーチンとして実行される。そして、メインルーチンにおけるS140にて、WDC信号を出力する処理が実行される。例えば、S140では、WDC信号の出力レベルをハイ又はローに反転させるレベル反転処理が行われるが、WDC信号を所定時間だけハイまたはローにするワンショットパルス出力処理が行われても良い。つまり、S140がWDC信号生成部9に該当する。
【0018】
ここで、例えば
図2における矢印Y1に示すように、S200の処理Aからメインルーチンに戻るまでの間に、別の処理Cの実行が加わってしまった場合には、メインルーチンにおけるS140の実行間隔が、正常時よりも長くなってしまう。よって、この場合には、WDC信号の出力間隔が正常時よりも長くなる。また、別の処理Cからメインルーチンへ戻らなくなった場合には、WDC信号の出力が実施されなくなる。尚、ここで言うWDC信号の出力とは、WDC信号のレベル変化(即ち、レベル反転)のことである。WDC信号の出力間隔とは、WDC信号のレベル変化間隔のことである。
【0019】
また、例えば
図2における矢印Y2に示すように、メインルーチンにおける正規の処理(例えば、S120,S130)が飛ばされた場合には、S140の実行間隔が正常時よりも短くなってしまう。よって、この場合には、マイコン3からのWDC信号が高周波化する。つまり、WDC信号の出力間隔が正常時よりも短くなる。
【0020】
一方、
図1に示すように、IC5は、マイコン3からのWDC信号を受け取るためのWDC信号入力回路15と、リセット制御部17と、電源回路19と、噴射回路21と、A/F回路23と、出力回路25と、を備える。
【0021】
電源回路19は、車両に搭載されたバッテリの電圧であるバッテリ電圧から、マイコン3及び当該IC5が動作するのに使用される一定の電源電圧(例えば5V)を生成する。
噴射回路21は、エンジンに燃料を噴射するインジェクタを、マイコン3からの駆動指令信号に従って駆動する。
【0022】
A/F回路23は、エンジンの排気経路に設けられた空燃比センサへの印加電圧を制御したり、該空燃比センサからの信号を取り込んでマイコン3に提供するための動作を行う。
【0023】
出力回路25は、エンジンを制御するためのアクチュエータのうち、インジェクタとは別のアクチュエータを、マイコン3からの駆動指令信号に従って駆動する。
リセット制御部17には、マイコン3からのWDC信号がWDC信号入力回路15を介して入力される。そして、リセット制御部17は、2つのカウント部28,29と、各カウント部28,29に対応して設けられた2つの記憶部31,32と、リセット実施部33と、を備える。以下では、カウント部28,29を区別する場合、カウント部28の方を、第1カウント部28とも言い、カウント部29の方を、第2カウント部とも言う。同様に、記憶部31,32を区別する場合、第1カウント部28に対応する方の記憶部31を、第1記憶部31とも言い、第2カウント部29に対応する方の記憶部32を、第2記憶部32とも言う。
【0024】
第1カウント部28は、時間を計測するために所定の一定時間毎にカウントアップされるカウンタ28aを備える。
第1カウント部28は、
図3に示すように、WDC信号に立ち下がりが生じない連続時間をカウンタ28aによりカウント(即ち、計測)し、WDC信号に立ち下がりが生じた場合に、カウンタ28aの値tNがクリアされて初期値に戻るように構成されている。以下では、カウンタ28aの値tNのことを、カウント値tNとも言う。カウント値tNの初期値は0であるが、0以外でも良い。第1カウント部28でのカウント値tNは、WDC信号に立ち下がりが生じない連続時間のカウント値に該当する。WDC信号の立ち上がりとは、ハイからローへのレベル変化のことである。
【0025】
第1カウント部28にとって、WDC信号が立ち下がりの無い状態であることは、WDC信号がマイコン3の異常可能性有りを示す特定状態になっていることに相当する。また、WDC信号に立ち下がりが生じることは、WDC信号がマイコン3の正常動作を示す非特定状態になったことに相当する。
【0026】
尚、カウント値tNは、WDC信号のローからハイへのレベル変化(即ち、立ち上がり)によってクリアされても良いし、WDC信号の立ち下がりと立ち上がりとの両方によってクリアされても良い。
【0027】
リセット実施部33は、
図3における〈1〉の期間に示すように、第1カウント部28におけるカウント値tNが異常判定用の閾値th1以下である場合には、マイコン3へのリセット信号をハイにする。つまり、マイコン3へのリセットパルスを出力しない。
【0028】
また、
図3における〈2〉の期間に示すように、カウント値tNが増大し続けて閾値th1を越えると、リセット実施部33は、
図3における〈3〉の期間に示すように、マイコン3へのリセット信号を所定時間tRだけローにする。つまり、マイコン3へリセットパルスを出力する。マイコン3へのリセット信号がローになると、カウント値tNはクリアされる。そして、
図3における〈4〉の期間に示すように、リセット信号がローからハイに戻ると、カウンタ28aの初期値(例えば、0)からのカウントアップが再開される。
【0029】
尚、リセット実施部33は、カウント値tNが閾値th1に達した場合に、マイコン3へリセットパルスを出力するように構成されても良い。また、上記閾値th1は、例えばマイコン3によって可変設定されるようになっていても良い。
【0030】
一方、第2カウント部29も、時間を計測するために所定の一定時間毎にカウントアップされるカウンタ29aを備える。また、第2カウント部29は、WDC信号の立ち下がり間隔tWを、例えばカウンタ29aとは別に備えられた図示しないカウンタによって計測する。WDC信号の立ち下がり間隔tWとは、WDC信号の立ち下がりから次の立ち下がりまでの時間間隔である。
【0031】
そして、第2カウント部29は、
図4における〈1〉又は〈6〉の期間に示すように、WDC信号の立ち下がり間隔tWが高周波判定用の閾値thW以上であると判定している場合に、カウンタ29aの値tHをクリアして初期値にするように構成されている。以下では、カウンタ29aの値tHのことを、カウント値tHとも言う。カウント値tHの初期値は0であるが、0以外でも良い。
【0032】
また、第2カウント部29は、立ち下がり間隔tWが閾値thW未満であると判定している場合には、
図4における〈2〉又は〈4〉の期間に示すように、カウンタ29aをカウントアップさせる。つまり、立ち下がり間隔tWが閾値thW未満になっている連続時間を、カウンタ29aによりカウント(即ち、計測)する。
【0033】
そして、第2カウント部29は、カウント値tHが異常判定用の閾値th2を越える前に、立ち下がり間隔tWが閾値thW以上に戻ったと判定した場合には、
図4における〈3〉の期間に示すように、カウント値tHをクリアする。第2カウント部29でのカウント値tHは、立ち下がり間隔tWが閾値thW未満になっている連続時間のカウント値に該当する。
【0034】
第2カウント部29にとって、WDC信号の立ち下がり間隔tWが閾値thW未満であることは、WDC信号がマイコン3の異常可能性有りを示す特定状態になっていることに相当する。また、WDC信号の立ち下がり間隔tWが閾値thW以上であることは、WDC信号がマイコン3の正常動作を示す非特定状態になったことに相当する。
【0035】
リセット実施部33は、
図4における〈1〉~〈3〉の期間に示すように、第2カウント部29におけるカウント値tHが異常判定用の上記閾値th2以下である場合には、マイコン3へのリセット信号をハイにする。つまり、マイコン3へのリセットパルスを出力しない。
【0036】
また、
図4における〈4〉の期間に示すように、カウント値tHが増大し続けて閾値th2を越えると、リセット実施部33は、
図4における〈5〉の期間に示すように、マイコン3へのリセット信号を所定時間tRだけローにする。
【0037】
つまり、リセット実施部33は、第1カウント部28におけるカウント値tNが閾値th1を越えるか、あるいは、第2カウント部29におけるカウント値tHが閾値th2を越えると、マイコン3へリセットパルスを出力する。
【0038】
マイコン3へのリセット信号がローになると、カウント値tHはクリアされる。そして、
図4における〈6〉の期間に示すように、リセット信号がローからハイに戻って、WDC信号の立ち下がり間隔tWが閾値thW以上になれば、カウント値tHのクリアが継続される。
【0039】
尚、リセット実施部33は、カウント値tHが閾値th2に達した場合に、マイコン3へリセットパルスを出力するように構成されても良い。また、上記閾値thW,th2の両方又は一方は、例えばマイコン3によって可変設定されるようになっていても良い。
【0040】
第1記憶部31は、カウント値tNを記憶するために使用される保持レジスタR1を備える。第2記憶部32は、カウント値tHを記憶するために使用される保持レジスタR2を備える。
【0041】
[1-2.リセット制御部が行う処理]
リセット制御部17は、WDC信号に立ち下がりが生じた場合に、第1カウント部28にてクリアされる直前のカウント値tNであるカウント極大値tNpを、第1記憶部31の保持レジスタR1に記憶する。そして、本実施形態では、カウント極大値tNpの最大値が保持レジスタR1に更新記憶(即ち、上書き)される。つまり、リセット制御部17は、最新のカウント極大値tNpと、保持レジスタR1に記憶されている値(即ち、記憶値)とを比較し、最新のカウント極大値tNpが記憶値よりも大きければ、その最新のカウント極大値tNpを保持レジスタR1に上書きする。保持レジスタR1の記憶値は、第1記憶部31の記憶値でもある。
【0042】
また、リセット制御部17は、第2カウント部29により、WDC信号の立ち下がり間隔tWが閾値thW未満から閾値thW以上に戻ったと判定された場合に、クリアされる直前のカウント値tHであるカウント極大値tHpを、第2記憶部32の保持レジスタR2に記憶する。そして、本実施形態では、カウント極大値tHpの最大値が保持レジスタR2に更新記憶される。つまり、リセット制御部17は、最新のカウント極大値tHpと、保持レジスタR2に記憶されている値(即ち、記憶値)とを比較し、最新のカウント極大値tHpが記憶値よりも大きければ、その最新のカウント極大値tHpを保持レジスタR2に上書きする。保持レジスタR2の記憶値は、第2記憶部32の記憶値でもある。
【0043】
[1-3.リセット制御部の動作例]
次に、リセット制御部17の動作の具体例について、
図5,
図6のタイムチャートを用いて説明する。
【0044】
[1-3-1.第1記憶部の保持レジスタに関するリセット制御部の動作例]
図5において〈1〉の期間は、ECU1への電源供給の開始によってマイコン3及びIC5が起動した直後の期間を示している。また、IC5の起動時に保持レジスタR1はクリアされている。
【0045】
図5における〈1〉の期間に示すように、第1カウント部28でのカウント値tNは、WDC信号に立ち下がりが生じない間はカウンタ28aのカウントアップによって増加し、WDC信号に立ち下がりが生じる毎にクリアされて再び初期値から増加し始める。
【0046】
尚、
図5及び後述する
図6において「WDC starting delay」と記載されている期間は、マイコン3が起動してからWDC信号の出力(即ち、
図2のS140)を最初に実施するまでの遅れ時間に該当する期間である。このため、
図5において「Not Update(A)」と記載した部分に示すように、リセット制御部17は、マイコン3が起動してからWDC信号が最初に立ち下がったタイミングでは、保持レジスタR1への書き込みを行わない。
【0047】
そして、リセット制御部17は、マイコン3が起動してからWDC信号が2回目に立ち下がったタイミングにて、その時のカウント極大値tNpであって、クリア直前のカウント値tNである「T0」が、保持レジスタR1の記憶値よりも大きいか否かを判定する。この時点において、保持レジスタR1の記憶値は「0」であるため、「T0」は記憶値よりも大きい。よって、リセット制御部17は、「T0」を保持レジスタR1に書き込む(即ち、記憶する)。
【0048】
その後も、リセット制御部17は、WDC信号の立ち下がりタイミングにて、その時のカウント極大値tNpである最新のカウント極大値tNpが、保持レジスタR1の記憶値よりも大きいか否かを判定する。そして、最新のカウント極大値tNpが保持レジスタR1の記憶値よりも大きければ、その最新のカウント極大値tNpを保持レジスタR1に上書きする。逆に、最新のカウント極大値tNpが保持レジスタR1の記憶値よりも大きくなければ、保持レジスタR1の記憶値を更新しない。
【0049】
このため、
図5における〈1〉の期間の最後部分に示すように、WDC信号の立ち下がりタイミングにて、カウント極大値tNpが、保持レジスタR1の記憶値である「T0」よりも大きい「T1」であれば、その「T1」がリセット制御部17により保持レジスタR1に上書きされる。
【0050】
また、
図5において「Not Update(not max)」と記載した部分に示すように、WDC信号の立ち下がりタイミングにて、最新のカウント極大値tNpが、保持レジスタR1の記憶値である「T1」よりも大きくなければ、保持レジスタR1の記憶値は更新されない。
【0051】
その後、
図5における〈2〉の期間に示すように、WDC信号がレベル変化しなくなって、カウント値tNが異常判定用の閾値th1を超えると、リセット実施部33によりマイコン3へリセットパルスが出力される。即ち、マイコン3へのリセット信号が所定時間tRだけローになる。すると、カウント値tNはクリアされる。
【0052】
また、
図5において「Not Update(B)」と記載した部分に示すように、リセットパルスの出力に伴ってカウント値tNがクリアされた場合には、リセット制御部17は保持レジスタR1の記憶値を更新しない。そして、リセット制御部17は、マイコン3によって保持レジスタR1の記憶値が読み出されるまで、保持レジスタR1の記憶値を更新しない。
【0053】
その後、
図5における〈3〉の期間の最後部分に示すように、リセットから再起動したマイコン3が、SPI通信により、IC5に対して保持レジスタR1の記憶値の読出要求を出力すると、リセット制御部17は、保持レジスタR1の記憶値をマイコン3に送信する。このようにして、マイコン3は保持レジスタR1の記憶値を読み出すことができる。IC5からマイコン3に読み出された保持レジスタR1の記憶値は、例えばマイコン3の内部又は外部に設けられたフラッシュメモリ等の書き換え可能な不揮発性メモリに記憶されて良い。尚、リセット制御部17は、マイコン3へリセットパルスが出力された後、マイコン3からの読出要求を受けることなく、保持レジスタR1の記憶値をマイコン3に送信するように構成されても良い。
【0054】
そして、リセット制御部17は、保持レジスタR1の記憶値をマイコン3に送信した後、
図5において「read clear」と記載した部分に示すように、保持レジスタR1をクリアする。その後、
図5における〈4〉の期間に示すように、保持レジスタR1には、再び、カウント極大値tNpの最大値が記憶されていく。
【0055】
また、IC5には、電源回路19によってマイコン3に供給される電源電圧VOM5が所定の閾値電圧Vth以下になるとマイコン3にリセットパルスを出力する機能、即ち、パワーオンリセット機能も備えられている。そして、
図5における〈5〉の期間に示すように、このパワーオンリセット機能によってマイコン3にリセットパルスが出力された場合には、カウント値tNがクリアされると共に、保持レジスタR1もクリアされる。
【0056】
[1-3-2.第2記憶部の保持レジスタに関するリセット制御部の動作例]
図6においても、〈1〉の期間は、ECU1への電源供給の開始によってマイコン3及びIC5が起動した直後の期間を示している。そして、IC5の起動時には、保持レジスタR1と共に、保持レジスタR2もクリアされている。
【0057】
また以下では、第2カウント部29により、WDC信号の立ち下がり間隔tWが閾値thW未満から閾値thW以上に戻ったと判定されることを、正常周波復帰判定という。また、
図6の2段目において、斜線ハッチングが付けられた期間は、第2カウント部29により、WDC信号の立ち下がり間隔tWが閾値thW未満であると判定されている期間(以下、高周波判定期間)である。よって、斜線ハッチングが付けられた高周波判定期間の終了タイミングは、第2カウント部29による正常周波復帰判定のタイミングに該当する。
【0058】
図6における〈1〉の期間に示すように、第2カウント部29でのカウント値tHは、WDC信号の立ち下がり間隔tWが閾値thW以上である場合(即ち、正常時)にクリアされ続ける。また、カウント値tHは、WDC信号の立ち下がり間隔tWが閾値thW未満になると、カウンタ29aのカウントアップによって増加し、立ち下がり間隔tWが閾値thW以上に戻って、第2カウント部29により正常周波復帰判定されると、再びクリアされる。
【0059】
そして、リセット制御部17は、マイコン3が起動してから最初に第2カウント部29により正常周波復帰判定されると、その時のカウント極大値tHpであって、クリア直前のカウント値tHである「T4」が、保持レジスタR2の記憶値よりも大きいか否かを判定する。この時点において、保持レジスタR2の記憶値は「0」であるため、「T4」は記憶値よりも大きい。よって、リセット制御部17は、「T4」を保持レジスタR2に書き込む(即ち、記憶する)。
【0060】
その後も、リセット制御部17は、第2カウント部29により正常周波復帰判定される毎に、その時のカウント極大値tHpである最新のカウント極大値tHpが、保持レジスタR2の記憶値よりも大きいか否かを判定する。そして、最新のカウント極大値tHpが保持レジスタR2の記憶値よりも大きければ、その最新のカウント極大値tHpを保持レジスタR2に上書きする。逆に、最新のカウント極大値tHpが保持レジスタR2の記憶値よりも大きくなければ、保持レジスタR2の記憶値を更新しない。
【0061】
このため、
図6において「Not Update(not max)」と記載した部分に示すように、第2カウント部29により正常周波復帰判定されたタイミングにて、最新のカウント極大値tHpが保持レジスタR2の記憶値である「T4」よりも大きくなければ、保持レジスタR2の記憶値は更新されない。
【0062】
その後、
図6における〈2〉の期間に示すように、高周波判定期間が続いて、カウント値tHが異常判定用の閾値th2を超えると、リセット実施部33によりマイコン3へリセットパルスが出力される。すると、カウント値tHはクリアされる。
【0063】
また、
図6において「Not Update(B)」と記載した部分に示すように、リセットパルスの出力に伴ってカウント値tHがクリアされた場合には、リセット制御部17は保持レジスタR2の記憶値を更新しない。そして、リセット制御部17は、マイコン3によって保持レジスタR2の記憶値が読み出されるまで、保持レジスタR2の記憶値を更新しない。
【0064】
その後、
図6における〈3〉の期間の最後部分に示すように、リセットから再起動したマイコン3が、SPI通信により、IC5に対して保持レジスタR2の記憶値の読出要求を出力すると、リセット制御部17は、保持レジスタR2の記憶値をマイコン3に送信する。このようにして、マイコン3は保持レジスタR2の記憶値も読み出すことができる。IC5からマイコン3に読み出された保持レジスタR2の記憶値は、例えばマイコン3の内部又は外部に設けられたフラッシュメモリ等の書き換え可能な不揮発性メモリに記憶されて良い。尚、保持レジスタR2の記憶値の読出要求は、保持レジスタR1の記憶値の読出要求と共用される要求であっても良い。また、リセット制御部17は、マイコン3へリセットパルスが出力された後、マイコン3からの読出要求を受けることなく、保持レジスタR2の記憶値をマイコン3に送信するように構成されても良い。
【0065】
そして、リセット制御部17は、保持レジスタR2の記憶値をマイコン3に送信した後、
図6において「read clear」と記載した部分に示すように、保持レジスタR2をクリアする。その後、
図6における〈4〉の期間に示すように、保持レジスタR2には、再び、カウント極大値tHpの最大値が記憶されていく。
【0066】
また、
図6における〈5〉の期間に示すように、IC5からマイコン3へパワーオンリセット機能によるリセットパルスが出力された場合には、カウント値tHがクリアされると共に、保持レジスタR2もクリアされる。
【0067】
[1-4.効果]
以上詳述した第1実施形態の監視装置としてのIC5によれば、以下の効果を奏する。
(1a)
IC5の第1記憶部31には、WDC信号が立ち下がったことによってクリアされる直前の、第1カウント部28でのカウント値tNであるカウント極大値tNpが、記憶される。また、IC5の第2記憶部32には、WDC信号の立ち下がり間隔tWが閾値thW未満から閾値thW以上に復帰したことによってクリアされる直前の、第2カウント部29でのカウント値tHであるカウント極大値tHpが、記憶される。尚、第1記憶部31におけるカウント極大値tNpの記憶場所は、詳しくは保持レジスタR1であるが、保持レジスタR1以外のRAMやフラッシュメモリ等の記憶媒体でも良い。第2記憶部32におけるカウント極大値tHpの記憶場所は、詳しくは保持レジスタR2であるが、保持レジスタR2以外のRAMやフラッシュメモリ等の記憶媒体でも良い。
【0068】
このようなIC5によれば、マイコン3がリセットパルスによってリセットされた場合に、記憶部31,32の記憶値(即ち、カウント極大値tNp,tHp)を読み出すことで、マイコン3がリセットされる前の当該マイコン3の状態を推定し易くなる。よって、マイコン3に関する異常の原因を特定するための手がかりを、増やすことができる。
【0069】
記憶部31,32のうち、第1記憶部31の方を例に挙げて説明する。
例えば、
図7は、マイコン3からIC5へWDC信号を伝達させるための、端子や回路や信号線等のハードウェア(以下、ハード)が故障したことにより、カウント値tNが閾値th1を超えて、マイコン3へリセットパルスが出力された場合の一例を表している。
【0070】
図7に示すように、ハード故障によってマイコン3がリセットされた場合、リセットパルスが出力される直前まで、マイコン3からIC5へWDC信号が正常に出力されている可能性が高い。つまり、ハード故障によるWDC信号のレベル変化停止は、突然発生する可能性が高い。このため、第1記憶部31に記憶されるカウント極大値tNpは、比較的小さい正常時の値(例えば、
図7中のT0)になる可能性が高い。
【0071】
また、
図8は、マイコン3によるソフトウェアの実行異常(以下、ソフト故障)が生じたことにより、カウント値tNが閾値th1を超えて、マイコン3へリセットパルスが出力された場合の一例を表している。
【0072】
図8に示すように、ソフト故障によってマイコン3がリセットされた場合、リセットパルスが出力される少し前から、
図2における矢印Y1で示したような処理異常が生じて、WDC信号の出力間隔が正常時よりも長くなる可能性が高い。つまり、ソフト故障の場合には、マイコン3のリセット前に兆候として、カウント値tNが大きくなる傾向が現れる可能性が高い。このため、第1記憶部31に記憶されるカウント極大値tNpは、正常時の値(例えば、
図8中のT0)よりも大きい値(例えば、
図8中のT1)になる可能性が高い。
【0073】
よって、
図9に示すように、第1記憶部31の記憶値が所定値Nj以上か否かによって、マイコン3のリセットを招いた異常が、ハード要因の異常とソフト要因の異常との何れかであったのかを判別して良い。具体的には、記憶値が所定値Nj以下であればハード要因の異常と判定して良く、記憶値が所定値Nj以上であればソフト要因の異常と判定して良い。
【0074】
そして、第2記憶部32の記憶値についても、第1記憶部31の記憶値と同様のことが言える。ハード故障によるWDC信号の高周波化は、突然発生する可能性が高いため、ハード故障によってマイコン3がリセットされた場合、第2記憶部32に記憶されるカウント極大値tHpは、0あるいは、ほぼ0の小さい値になる可能性が高い。また、ソフト故障の場合には、マイコン3にリセットパルスが出力される少し前から、
図2における矢印Y2で示したような処理異常が生じて、WDC信号の高周波化が断続的に発生する可能性が高い。このため、ソフト故障によってマイコン3がリセットされた場合、第2記憶部32に記憶されるカウント極大値tHpは、0よりも十分大きい値になる可能性が高い。よって、第2記憶部32の記憶値に基づいても、マイコン3のリセットを招いた異常が、ハード要因の異常とソフト要因の異常との何れかであったのかを判別し易くなる。
【0075】
(1b)
記憶部31,32には、マイコン3にリセットパルスが出力される前におけるカウント極大値tNp,tHpの最大値が記憶される。このため、記憶部31,32の記憶容量としては、カウント極大値tNp,tHpを1つ記憶可能な容量で良い。具体的には、カウント極大値tNp,tHpを記憶するための保持レジスタR1,R2が1つ備えられれば良い。
【0076】
一方、変形例1として、記憶部31,32には、マイコン3にリセットパルスが出力される前における最新のカウント極大値tNp,tHpが記憶されるように構成されても良い。つまり、リセット制御部17は、最新のカウント極大値tNp,tHpを、保持レジスタR1,R2の記憶値と比較せずに、保持レジスタR1,R2に上書きするように構成されて良い。このような変形例の構成であっても、上記(1b)と同様の効果が得られる。
【0077】
また、変形例2として、記憶部31,32は複数のカウント極大値tNp,tHpを記憶可能に構成されても良い。具体的には、記憶部31,32は複数の保持レジスタを備えても良い。ここでは、記憶部31について具体例を説明するが、記憶部32についても同様である。
【0078】
図10は、記憶部31が3つの保持レジスタRa,Rb,Rcを備えた例を示している。尚、保持レジスタの数は3に限らず、2でも4以上でも良い。
例えば、
図10に示すように、保持レジスタRaには、0以上で第1所定値Nj1未満のカウント極大値tNpが記憶され、保持レジスタRbには、第1所定値Nj1以上で第2所定値Nj2未満のカウント極大値tNpが記憶されて良い。そして、保持レジスタRcには、第2所定値Nj2以上のカウント極大値tNpが記憶されて良い。第1所定値Nj21と第2所定値Nj2と閾値th1との大小関係は、「0<Nj1<Nj2<th1」である。
【0079】
このような構成によれば、マイコン3がリセットパルスによってリセットされた場合に、保持レジスタRaにカウント極大値tNpが記憶されていたならば、ハード故障が生じたことによるリセットであったと判定することができる。また、保持レジスタRbにカウント極大値tNpが記憶されていたならば、第1のソフト故障と第2のソフト故障のうち、第1のソフト故障が生じたことによるリセットであったと判定することができる。また、保持レジスタRcにカウント極大値tNpが記憶されていたならば、第2のソフト故障が生じたことによるリセットであったと判定することができる。ここで言う第1のソフト故障は、マイコン3のリセット実施に至る前に、WDC信号の立ち下がり間隔が第1所定値Nj1から第2所定値Nj2までの範囲に該当する時間になると考えられるソフト故障である。そして、第2のソフト故障は、マイコン3のリセット実施に至る前に、WDC信号の立ち下がり間隔が第2所定値Nj2に該当する時間よりも長くなると考えられるソフト故障である。
【0080】
また例えば、保持レジスタRa~Rcには、カウント極大値tNpが大きい順に3つ格納されるように構成されても良い。また例えば、保持レジスタRa~Rcには、カウント極大値tNpが新しい順に3つ格納されるように構成されても良い。このように構成されても、マイコン3のリセット前の挙動、延いては、リセットの原因を推定し易くなる。
【0081】
[2.第2実施形態]
[2-1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。尚、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【0082】
第2実施形態のIC5では、例えばリセット制御部17が、
図11に示す処理を例えば一定時間毎に行う。尚、本実施形態のIC5に含まれる各部の機能は、ハードウェアで実現されているが、ここでは便宜上、
図11のフローチャートを用いて、リセット制御部17の動作を説明する。
【0083】
図11に示すように、リセット制御部17は、S310にて、記憶部31,32の記憶値が所定の制御変更実施条件を満たしたか否かを判定する。
例えば、リセット制御部17は、記憶部31の記憶値(即ち、カウント極大値tNp)が、所定の判定値N1以上であるか否かを判定する。判定値N1は、異常判定用の閾値th1よりも小さい値で良い。
【0084】
また、リセット制御部17は、記憶部32の記憶値(即ち、カウント極大値tHp)についても、所定の判定値N2以上であるか否かを判定する。判定値N2は、異常判定用の閾値th2よりも小さい値で良い。判定値N1と判定値N2は、同じ値であっても良いし、異なる値であっても良い。
【0085】
そして、リセット制御部17は、S310では、記憶部31の記憶値が判定値N1以上であるか、あるいは、記憶部32の記憶値が判定値N2以上であれば、記憶部31,32の記憶値が制御変更実施条件を満たしたと判定する。
【0086】
リセット制御部17は、記憶部31,32の記憶値が制御変更実施条件を満たしたと判定した場合には、ソフト故障の兆候があると考えられることから、S320にて、マイコン3による制御の内容を変更する。
【0087】
例えば、リセット制御部17は、マイコン3との通信により、マイコン3に対して、エンジンの出力を制限する出力制限モードへの移行を指令するように構成されて良い。出力制限モードでは、エンジンの出力に関係するアクチュエータ(例えば、スロットルモータ)の駆動が停止又は制限されるようになっていて良い。また例えば、リセット制御部17は、エンジンの出力に関係するアクチュエータの駆動回路に対して、駆動の強制停止を指令することにより、マイコン3から当該駆動回路への駆動指令を無効化するように構成されても良い。このような構成であっても、マイコン3による制御の内容が結果的に変更されることになる。
【0088】
[2-2.効果]
以上詳述した第2実施形態によれば、前述した第1実施形態の効果を奏し、更に、ソフト故障の兆候をとらえて、マイコンによる制御の安全性を高める処置を行うことができる。この第2実施形態の構成は前述の変形例1と組み合わせても良い。
【0089】
尚、第2実施形態では、リセット制御部17が、制御変更部として機能している。そして、
図11のS310,S320が、制御変更部としての処理に相当する。
また例えば、リセット制御部17は、S310では、記憶部31内の最大値(即ち、カウント極大値tNpの最大値)が所定回数だけ更新された場合に、制御変更実施条件が満たされたと判定して、S320の処理を行っても良い。記憶部32に関しても同様である。
【0090】
また例えば、リセット制御部17は、S310では、記憶部31内の最大値が所定回数だけ更新され、且つ、更新された最大値が所定範囲H内であった場合に、制御変更実施条件が満たされたと判定して、S320の処理を行っても良い。所定範囲Hは、例えば、
図9に示した所定値Njから閾値th1までの範囲、あるいは当該範囲に含まれる範囲であって良い。記憶部32に関しても同様である。
【0091】
また例えば、記憶部31に複数のカウント極大値tNpが大きい順や新しい順に記憶される構成の場合、リセット制御部17は、S310では、記憶部31に記憶されている複数の記憶値の平均値について、判定値N1以上であるか否かを判定しても良い。記憶部32に関しても同様である。
【0092】
[3.第3実施形態]
[3-1.第1実施形態との相違点]
第3実施形態も、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。尚、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【0093】
第3実施形態のIC5では、例えばリセット制御部17が、
図12に示す処理を例えば一定時間毎に行う。尚、本実施形態のIC5に含まれる各部の機能は、ハードウェアで実現されているが、ここでは便宜上、
図12のフローチャートを用いて、リセット制御部17の動作を説明する。
【0094】
図12に示すように、リセット制御部17は、S410にて、記憶部31,32のそれぞれについて、記憶値が所定の閾値変更実施条件を満たしたか否かを判定する。
例えば、リセット制御部17は、記憶部31の記憶値(即ち、カウント極大値tNp)が、所定の判定値Na以上であれば、閾値変更実施条件を満たしたと判定する。判定値Naは、異常判定用の閾値th1よりも小さい値で良い。
【0095】
また、リセット制御部17は、記憶部32の記憶値(即ち、カウント極大値tHp)についても、所定の判定値Nb以上であれば、閾値変更実施条件を満たしたと判定する。判定値Nbは、異常判定用の閾値th2よりも小さい値で良い。判定値Naと判定値Nbは、同じ値であっても良いし、異なる値であっても良い。
【0096】
そして、リセット制御部17は、記憶部31,32の少なくとも一方について、記憶値が閾値変更実施条件を満たしたと判定した場合には、S420に進む。
リセット制御部17は、記憶部31の記憶値が閾値変更実施条件を満たした(即ち、判定値Na以上である)と判定した場合、S420では、リセット実施部33で用いられる異常判定用の閾値th1を変更する。具体的には、閾値th1を当該閾値th1の初期値よりも大きい値に変更する。
【0097】
また、リセット制御部17は、記憶部32の記憶値が閾値変更実施条件を満たした(即ち、判定値Nb以上である)と判定した場合、S420では、リセット実施部33で用いられる異常判定用の閾値th2を変更する。具体的には、閾値th2を当該閾値th2の初期値よりも大きい値に変更する。
【0098】
[3-2.効果]
以上詳述した第3実施形態によれば、前述した第1実施形態の効果に加えて、下記の効果を奏する。
【0099】
記憶部31,32に記憶されたカウント極大値tNp,tHpに基づいて、異常判定用の閾値th1,th2が変更される。このため、IC5に入力されるWDC信号の立ち下がり間隔または周波数が、ハードウェアの経時劣化によってずれた場合に、閾値th1,th2が変更されてマイコン3の過剰なリセットが回避されるようにし易い。
【0100】
具体的には、ハードウェアの経時劣化により、WDC信号の立ち下がり間隔が長くなって記憶部31の記憶値が大きくなった場合に、閾値th1が大きい値に変更されることで、マイコン3の過剰なリセットが回避される。また、ハードウェアの経時劣化により、WDC信号の周波数が大きくなって記憶部32の記憶値が大きくなった場合に、閾値th2が大きい値に変更されることで、マイコン3の過剰なリセットが回避される。
【0101】
尚、第3実施形態の構成は前述の変形例1と組み合わせても良い。また、第3実施形態の構成と第2実施形態の構成と組み合わせても良い。また、第3実施形態では、リセット制御部17が、閾値変更部として機能している。そして、
図12のS410,S420が、閾値変更部としての処理に相当する。
また例えば、リセット制御部17は、S410では、記憶部31内の最大値(即ち、カウント極大値tNpの最大値)が所定回数だけ更新された場合に、閾値変更実施条件が満たされたと判定しても良い。記憶部32に関しても同様である。また例えば、リセット制御部17は、S410では、記憶部31内の最大値が所定回数だけ更新され、且つ、更新された最大値が所定範囲H内であった場合に、閾値変更実施条件が満たされたと判定しても良い。所定範囲Hは、例えば、
図9に示した所定値Njから閾値th1までの範囲、あるいは当該範囲に含まれる範囲であって良い。記憶部32に関しても同様である。
また例えば、記憶部31に複数のカウント極大値tNpが大きい順や新しい順に記憶される構成の場合、リセット制御部17は、S410では、記憶部31に記憶されている複数の記憶値の平均値について、判定値Na以上であるか否かを判定しても良い。記憶部32に関しても同様である。
【0102】
[4.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0103】
例えば、IC5は、第1カウント部28及び第1記憶部31と、第2カウント部29及び第2記憶部32とのうち、一方だけを備えるように構成されても良い。
また、本開示に記載のIC5に含まれる各部の機能を実現する手法は、一つあるいは複数のハードウェアで良いが、ソフトウェアが含まれても良い。例えば、本開示に記載のIC5及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されても良い。あるいは、本開示に記載のIC5及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されても良い。もしくは、本開示に記載のIC5及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されても良い。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されても良い。
【0104】
また、上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしても良い。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしても良い。また、上記実施形態の構成の一部を省略しても良い。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換しても良い。
【0105】
また、上述したIC5の他、当該IC5を構成要素とするECU、このECUを備えるシステム、マイコンの監視方法等、種々の形態で本開示を実現することもできる。
【符号の説明】
【0106】
1…ECU、3…マイコン、5…IC、28,29…カウント部、31,32…記憶部、33…リセット実施部