JP3991782B2 - Electronic control unit - Google Patents
Electronic control unit Download PDFInfo
- Publication number
- JP3991782B2 JP3991782B2 JP2002182424A JP2002182424A JP3991782B2 JP 3991782 B2 JP3991782 B2 JP 3991782B2 JP 2002182424 A JP2002182424 A JP 2002182424A JP 2002182424 A JP2002182424 A JP 2002182424A JP 3991782 B2 JP3991782 B2 JP 3991782B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- task
- electronic control
- control device
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、2つ以上のCPUを有する電子制御装置にかかり、特に各CPUに供給されるクロック信号の異常や処理抜け異常を好適に検出するための電子制御装置に関するものである。
【0002】
【従来の技術】
車両制御等を実施する電子制御装置として、複数のCPUを備え、各CPU間で相互に異常を監視する機能を持つものがある。その一つとして、所定周期で反転するウオッチドッグパルス(WDパルス)をモニタしてCPUの動作状態を監視する方法がある。これは、一方のCPUが、他方のCPUよりWDパルスを入力し、該WDパルスが停止すると当該他方のCPUが異常である(暴走している)と判定するものである。
【0003】
【発明が解決しようとする課題】
この種の電子制御装置に関わる異常として、発振器等から各CPUに供給されるクロック信号の異常がある。この場合、発振器の異常等によりクロック信号の周波数が大小変化すると、そのクロック異常の状態によってはその異常が検出できないことが考えられる。
【0004】
例えば、クロック信号の周波数が正常時よりも大きくなる場合、それに起因してCPU内での時間演算の精度が低下する。そのため、定期的に実施されるべき各種の演算処理が所定の周期で実施されなくなるという不都合が生じる。かかる場合、上記の如くWDパルスによりCPUの異常検出を実施しても、WDパルスは定期的に発行されているため、クロック異常を判定することができない。
【0005】
また、優先度の異なる複数のタスクを起床するCPUでは、CPUの処理負荷が高まると低優先度のタスクで処理抜けが発生する場合が考えられる。この場合、通常WDパルスの発行は高優先度の処理であるため、低優先度処理が抜けたときでも正常にWDパルスが発行される。そのため、処理抜けが発生してもWDパルスには影響が出ず、処理抜けを検出することができない。最悪の場合、そのまま処理を継続する可能性が考えられる。
【0006】
本発明は上記問題に着目してなされたものであって、その目的とするところは、クロック異常や処理抜け異常を適正に検出し、ひいてはCPUの信頼性の確保を図ることができる電子制御装置を提供することである。
【0007】
【課題を解決するための手段】
請求項1に記載の発明では、第1CPUと第2CPUとを備え、これら各CPUに個別のクロック信号が入力されると共に該クロック信号を基に各CPUで定期的な演算処理が実施される。前記第2CPUは自身に入力されるクロック信号を基に一定周期の時間情報を前記第1CPUに通知する。また特に、前記第1CPUは、自身に入力されるクロック信号を基に一定周期で主カウンタをカウントすると共に、前記第2CPUより入力される一定周期の時間情報を基に副カウンタをカウントする。そして、これら主副両カウンタの差分を、前後する2つのタイミングで比較し、その比較結果から前記クロック信号の異常を検出する。
【0008】
仮に第2CPU側のクロック信号が異常となり、その周波数が正常時よりも小さくなる場合、第2CPUから第1CPUへ通知される時間情報の時間間隔が広がり、結果として副カウンタのカウント動作が遅くなる。この場合、主副両カウンタの差分が正常時とは相違し、更に前後する差分を比較することで、クロック信号が異常である旨判定できる。つまり、クロック信号の周期が変化するような異常を検出することができる。その結果、クロック異常を適正に検出し、ひいてはCPUの信頼性の確保を図ることができるようになる。
【0009】
請求項2に記載の発明では、前記第1CPUは、一定周期でタスクAを起床し、当該タスクAにて主カウンタをカウントすると共に、前記第2CPUからの時間情報をトリガとしてタスクBを起床し、当該タスクBにて副カウンタをカウントする。この場合、タスクA及びタスクBが適宜起床されることで主副両カウンタのカウント動作を行わせることができる。
【0010】
上記の如く第1CPUは、第2CPUから時間情報の通知を受けて副カウンタを動作させるが、かかる場合において、時間情報の通知を以下の形態で実現すると良い。
・請求項3に記載の発明では、前記第2CPUは、クロック信号に基づく定期処理にて一定周期でトリガ信号を出力し、前記第1CPUは、該トリガ信号の入力の都度、副カウンタをカウントする。
・請求項4に記載の発明では、前記第2CPUは、クロック信号に基づく定期の通信処理にて一定周期でデータ送信を行い、前記第1CPUは、第2CPUからのデータ受信の都度、副カウンタをカウントする。
・請求項5に記載の発明では、前記第2CPUより所定周期で反転するウオッチドッグパルスを入力し、そのウオッチドッグパルスが所定時間以上反転しないと第2CPUに対してリセット信号を出力する監視回路を更に備え、前記第1CPUは、前記ウオッチドッグパルスを第2CPUより入力し、その入力の都度、副カウンタをカウントする。
【0011】
上記何れの場合にも、第1CPUにおいて一定周期で副カウンタがカウントされ、その副カウンタと主カウンタとの差分によりクロック異常が適正に検出できる。
【0012】
請求項6に記載の発明では、前記第1CPUは、前後2つのタイミングの主副両カウンタの差分を比較して差分変化量を求め、その差分変化量が毎回同一である場合に、クロック異常である旨判定する。これにより、クロック異常が精度良く検出できる。
【0013】
請求項7に記載の発明では、前記第1CPUは、前後2つのタイミングの主副両カウンタの差分を比較して差分変化量を求め、その差分変化量が一方のカウンタのカウント分相当である場合に、何れかのカウンタが停止している旨判定する。これにより、カウンタ停止の異常が精度良く検出できる。請求項2のように、タスクAで主カウンタがカウントされ、タスクBで副カウンタがカウントされる場合、何れかのタスクが停止したことが精度良く検出できる。
【0014】
請求項8に記載したように、主副両カウンタの周期が同一である場合、それら両カウンタが共に正常であれば、差分が常に一致する。それ故、主副両カウンタの差分の比較が容易に実施できる。
【0015】
請求項9に記載の発明では、前記第1CPUは、前記第2CPUより通知される時間情報をトリガとして所定のタスクを起床し、当該タスク内において規定の処理単位で処理終了の履歴を残す。そして、次回のタスク起床時に前記履歴から処理抜け異常を検出する。この場合、前記タスクが最後まで実施されれば、全処理について処理終了の履歴が残るが、途中までしか実施されなければ未実施分については処理終了の履歴が残らない。従って、当該タスクについて処理抜けを検出することができる。また、履歴を確認することにより、処理抜けが発生した位置を特定することができる。
【0016】
上記請求項9の発明では請求項10に記載したように、前記第1CPUは、優先度の異なる複数のタスクを起床し、そのうち優先度の低いタスクにて規定の処理単位で処理終了の履歴を残すと良い。優先度の異なる複数のタスクが存在する場合、優先度の低いタスクは、その実施途中で高優先度のタスクが割り込むことで処理抜け(処理の中断)が生じるおそれがあるが、かかる場合に処理抜けの発生やその発生場所の特定が可能となる。
【0017】
また、請求項11に記載したように、前記第1CPUは、前記第2CPUからの時間情報にて起床される所定のタスクの最後に、前記副カウンタをカウントすると良い。これにより、処理抜けが発生した場合に副カウンタがカウントされなくなり、主副両カウンタの差分から異常発生の判定が可能となる。
【0018】
一方、請求項12に記載の発明でも、上記請求項9と同様に、前記タスクが最後まで実施されれば、全処理について処理終了の履歴が残るが、途中までしか実施されなければ未実施分については処理終了の履歴が残らない。従って、当該タスクについて処理抜けを検出することができる。また、履歴を確認することにより、処理抜けが発生した位置を特定することができる。
【0019】
更に、請求項13に記載したように、前記第1CPUは、優先度の異なる複数のタスクを起床し、そのうち優先度の低いタスクにて規定の処理単位で処理終了の履歴を残すことで、高優先度のタスクが割り込んで処理抜け(処理の中断)が発生しても、当該処理抜けの発生やその発生場所の特定が可能となる。
【0020】
また、請求項14に記載の発明は、前記第1CPUは電子スロットル制御を実施し、前記第2CPUは電子スロットル制御に関するフェイルセーフ処理を実施する車両用電子制御装置として適用される。そして、前記第1CPUは、クロック異常又は処理抜け異常である旨を検出した時にそれを第2CPUに通知し、第2CPUは、第1CPUからの異常情報に基づきフェイルセーフ処理を実施する。この場合、クロック異常や処理抜け異常が発生しても、その適正なフェイルセーフ処理が実施できる。
【0021】
【発明の実施の形態】
以下、本発明を具体化した一実施の形態を図面に従って説明する。本実施の形態では、車両に搭載されるエンジンECUとして本発明の電子制御装置を具体化している。図1は、本実施の形態におけるエンジンECUの構成を示すブロック図である。
【0022】
図1において、エンジンECU10は、エンジンの噴射制御、点火制御及び電子スロットル制御を実施するための制御CPU11と、電子スロットル制御に関するフェイルセーフ処理や制御CPU11の監視を実施するための監視CPU12とを備える。これらの各CPU11,12は相互に通信可能に接続されている。制御CPU11には発振器13よりクロックCK1(クロック信号)が入力され、監視CPU12には発振器14よりクロックCK2(クロック信号)が入力される。なお本実施の形態では、制御CPU11が「第1CPU」に相当し、監視CPU12が「第2CPU」に相当する。
【0023】
制御CPU11は、発振器13からのクロックCK1に基づき一定周期でタスクAを起床し、そのタスクA内にて毎回カウンタCAをカウントアップする。タスクAは高優先度のタスクであり、本実施の形態では2ms毎に起床されるようになっている。また、制御CPU11には監視CPU12からトリガ信号が取り込まれる。制御CPU11はこのトリガ信号に基づきタスクBを起床し、そのタスクB内にて毎回カウンタCBをカウントアップする。
【0024】
一方、監視CPU12は、発振器14からのクロックCK2に基づき2ms毎に定期処理を起床し、その定期処理にて一定周期のトリガ信号を生成し出力する。このトリガ信号が制御CPU11に取り込まれる。本実施の形態では、カウンタCAが「主カウンタ」に、カウンタCBが「副カウンタ」に相当し、トリガ信号が「一定周期の時間情報」に相当する。
【0025】
また、監視CPU12は「監視回路」としてのWD回路15に対してWDパルスを出力し、WD回路15は監視CPU12からのWDパルスが所定時間以上反転しなかった場合に監視CPU12に対してリセット信号を出力する。
【0026】
ここで、カウンタCA及びCBの動作を図2にて説明する。カウンタCA及びCBが共に正常動作する場合、図2の(a)に示すように、各カウンタが何れも2ms毎にカウントアップされる。この場合、カウンタCA及びCBの差分をΔCn (=CA−CB)とすると、タイミングt1ではその差分がΔC1 、タイミングt2ではその差分がΔC2 となる。図2の(a)は正常動作を表すためΔC1 =ΔC2 となる。
【0027】
これに対し、図2の(b)〜(d)はカウンタCBが異常動作となる場合を示す。(b)〜(d)を詳しく説明する。(b)は、カウンタCBの周期が正常時よりも大きくなっている。これは監視CPU12側のクロックCK2が異常(クロック異常)となり、それが原因で定期処理の起床周期(トリガ信号の周期)が変わり、更にはカウンタCBの周期が変化したと考えられる。この場合、タイミングt1,t2での差分ΔC1 ,ΔC2 はΔC1 <ΔC2 となる。
【0028】
また、(c)は、カウンタCBが停止する異常を示し、(d)は、監視CPU12での定期処理が抜けてしまう異常(処理抜け異常)を示す。なお、処理抜けは不定期に発生し、この処理抜けによりカウンタCBが一定周期でカウントアップされない事態が生じる。これら(c),(d)の場合にもやはり、タイミングt1,t2での差分ΔC1 ,ΔC2 がΔC1 <ΔC2 となる。
【0029】
本実施の形態では、上記図2の(b)〜(d)の各異常について何れも検出可能であって、更に各異常の形態を特定できる異常検出手法を提案する。上記図2の(b)の場合、カウンタCA及びCBのカウントアップの周期が相違するため各カウンタ値の差分ΔCn は毎回相違するが、同ΔCn の変化は一律であり、一定の時間間隔で前後する2つのΔCn を比較すると、その変化量は一定である。つまり、前後する差分の変化量をDCn (以下、差分変化量DCn )とすると、その差分変化量DCn は毎回同じ値となる(DCn =DCn-1 となる)。それ故、その差分変化量DCn によりクロック異常が特定できる。勿論、カウンタCBの周期が小さくなる場合や、カウンタCAの周期が大きくなる(又は小さくなる)場合にも同様にクロック異常が特定できる。
【0030】
また、上記図2の(c)の場合、一方のカウンタCAは正常にカウントアップし、他方のカウンタCBは停止しているため、各カウンタCA及びCBの差分変化量DCn はカウンタCAのカウントアップ分に相当する。この場合、差分変化量DCn は、t1−t2間の時間間隔DTn をカウンタ1周期分の時間T(2ms)で除算した値(DTn /T)に一致する(DCn =DTn /Tとなる)。これにより、タスクB停止の異常が特定できる。
【0031】
また、上記図2の(d)の場合、上記(b),(c)と同様にΔC1 ≠ΔC2 (すなわち、DCn ≠0)であるが、差分ΔCn の変化は不定期なものとなる。よって、ΔC1 ≠ΔC2 であり、且つ上記図2の(b),(c)に該当しなければ、処理抜け異常であると特定できる。
【0032】
次に、各CPU11,12で起床される演算処理について図3〜図6のフローチャートを参照しながら詳しく説明する。先ずはじめに、図3はタスクAの手順を示すフローチャートであり、このタスクAは制御CPU11により2ms毎に起床される。
【0033】
図3において、先ずステップ101では、カウンタCA及びCBに基づいて異常検出処理を実施する。但しその詳細(図4の処理)は後述する。また、ステップ102では、タスクAに関して通常処理を実施し、続くステップ103では、カウンタCAを1インクリメントする。このタスクAにより、2ms毎にカウンタCAがカウントアップされるようになる。
【0034】
図4の異常検出処理では、8ms毎に一連の異常検出を実施することとしており、ステップ201がYESであることを条件に後続のステップ202に進む(つまり、タスクA起床の4回に1回の割合で異常検出が実施される)。
【0035】
ステップ202に進むと、カウンタCA及びCBの差分ΔCn がどれだけ変化したかを示す差分変化量DCn を算出する。具体的には、カウンタCA及びCBの差分の今回値ΔCn と前回値ΔCn-1 との差を取り、差分変化量DCn を算出する(DCn =ΔCn −ΔCn-1 )。
【0036】
その後、ステップ203では、差分変化量DCn が0であるか否かを判別する。前記図2の(a)で説明した通りカウンタCA及びCBが何れも正常の場合、DCn =0(ΔCn =ΔCn-1 )となる。DCn =0の場合、ステップ204に進み、各種の異常カウンタErrCk,ErrF,ErrStを何れも0にクリアする。そしてその後、本処理を一旦終了する。
【0037】
また、DCn≠0の場合、ステップ205に進み、差分変化量の今回値DCn と前回値DCn-1 とを比較する。そして、DCn =DCn-1 であれば、クロック異常であると推定し、ステップ206でクロック異常カウンタErrCkを1インクリメントする。これは、前記図2の(b)の場合に該当する。
【0038】
また、DCn ≠DCn-1 の場合、ステップ207で時間間隔DTn (前回の異常検出から今回の異常検出までの時間幅)を算出し、続くステップ208でDCn =DTn /Tであるか否かを判別する。そして、YESの場合、タスクBの停止異常であると推定し、ステップ209でタスクB停止カウンタErrStを1インクリメントする。また、NOの場合、処理抜け異常であると推定し、ステップ210で処理抜け異常カウンタErrFを1インクリメントする。ステップ208がYESであることは前記図2の(c)の場合に該当し、同ステップ208がNOであることは前記図2の(d)の場合に該当する。
【0039】
その後、ステップ211〜213では、各異常カウンタErrCk,ErrSt,ErrFが所定の判定値Lmtよりも小さいか否かを判別する。そして、何れも判定値Lmt未満であれば、そのまま本処理を終了する。また、判定値Lmt以上となる異常については、それに対応する異常フラグ(XErrCk,XErrSt,XErrFの何れか)をONする(ステップ214〜216)。なお、判定値Lmtは、何れも同一にする必要はなく、各異常カウンタErrCk,ErrSt,ErrF毎に個別に設定することも可能である。また、同一の異常が所定回連続して検出された場合にのみ、異常フラグをONする構成としても良い。
【0040】
また、図5はタスクBの手順を示すフローチャートであり、このタスクBは、監視CPU12からトリガ信号を入力する都度制御CPU11により起床される。実際には、トリガ信号は2ms周期のパルス信号であり、タスクAと同じ周期でこのタスクBが実施されるようになっている。因みに、トリガ信号は、図6に示す定期処理にて生成される。つまり、監視CPU12は、定期処理内の通常処理(ステップ401,403)の途中でトリガ信号を生成し出力する(ステップ402)。
【0041】
タスクBでは、n個の処理(処理1〜処理n)が順次実施され、各処理が実施される都度、処理完了を表す処理完了フラグXfinがONされる。つまりこのとき、処理1〜処理nが規定の処理単位であり、その処理終了の履歴が処理完了フラグXfinとして残される。そして、次回のタスクB起床時においてこの処理完了フラグXfinに基づき、処理抜け場所が特定されるようになっている。
【0042】
図5において、先ずステップ301では、処理番号を示すiを0にクリアし、続くステップ302では、処理iの処理完了フラグxfin(i)がONしているか否かを判別する。フラグONであれば、前回のタスクBで当該処理iが処理完了したと判断される。この場合、ステップ303でi=nであるか否かを判別する。そして、i=nが成立するまで、ステップ304でiを1ずつ加算しつつ、フラグxfin(i)がONしているか否かを繰り返し判別する。
【0043】
フラグxfin(i)=OFFの場合には、その該当する処理iで処理抜けが発生したと判断できる。そのため、ステップ305に進み、その時の処理iを処理抜け発生位置としてメモリに記憶する。
【0044】
その後、ステップ306では、処理完了フラグxfinを全てクリアする。ステップ307〜312では、処理1〜処理nを順次実施すると共に、各処理の実施直後に、各々に対応する処理完了フラグXfinをONしていく。最後に、ステップ313では、カウンタCBを1インクリメントする。
【0045】
上記図4の異常検出処理にて異常である旨検出されると(前記異常フラグがONされると)、それが制御CPU11から監視CPU12に通知され、監視CPU12では、電子スロットル制御の通電カットなど、所定のフェイルセーフ処理が実施される。この場合、クロック異常や処理抜け異常が発生しても、その適正なフェイルセーフ処理が実施でき、エンジンECU10としての信頼性が確保される。
【0046】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
クロック異常が発生すると、カウンタCA及びCBの差分ΔCn が正常時とは相違するため、前後する2つの差分ΔCn を比較することでクロック異常である旨判定できる。つまり、クロックの周期が変化するような異常を検出することができる。その結果、クロック異常を適正に検出し、ひいてはCPUの信頼性の確保を図ることができるようになる。
【0047】
カウンタCA及びCBの差分変化量DCn が毎回同一である場合にクロック異常である旨判定するため、クロック異常が精度良く検出できる。
また、カウンタCA及びCBの差分変化量DCn が一方のカウンタのカウント分相当である場合に何れかのカウンタが停止している旨判定するため、カウンタ停止の異常が精度良く検出できる。またこれは、何れかのタスクが停止したことが精度良く検出できることと同意である。
【0048】
タスクB内において規定の処理単位で処理終了の履歴(処理完了フラグxfin)を残し、次回のタスク起床時に前記履歴から処理抜け異常を検出するため、処理抜けが発生した位置を確実に特定することができる。
【0049】
なお本発明は、上記以外に次の形態にて具体化できる。
上記実施の形態では、制御CPU11は、監視CPU12からトリガ信号を入力し、そのトリガ信号にてタスクBを起床したが、この構成を変更しても良い。例えば、
(1)制御CPU11は、監視CPU12から定期的にデータを受信する都度、タスクBを起床する。但しこの場合、上記2つのCPU間で定期的な通信が行われることが前提条件となる。
(2)制御CPU11は、監視CPU12からWDパルスを入力し、その入力の都度、タスクBを起床する。この場合、前記図1の構成において、監視CPU12からWD回路15へのWDパルスを分岐させ、当該WDパルスを制御CPU11にも入力する構成とすれば良い。
【0050】
これら何れの場合にも、制御CPU11において一定周期でカウンタCBがカウントされ、そのカウンタCA及びCBの差分によりクロック異常が適正に検出できる。
【0051】
上記実施の形態では、カウンタCA及びCBの周期(すなわち、タスクA及びタスクBの起床周期)が同一である場合を例示したが、その周期が相違するものであっても良い。カウンタCA及びCBの周期が相違しても、各カウンタが何れも正常であればその差分ΔCn はある規則性を保つ。そのため、やはり前後する2つのタイミングで差分ΔCn を比較し、その比較結果からクロック異常が検出できる。
【0052】
本発明は、エンジンECU以外にも他のECUに適用でき、更に車両用電子制御装置以外の用途に具体化することも可能である。要は、2つ以上のCPUを備え、各CPUに個別のクロック信号が入力されると共に該クロック信号を基に各CPUで定期的な演算処理が実施される構成の電子制御装置であれば本発明が適用できる。
【図面の簡単な説明】
【図1】発明の実施の形態におけるエンジンECUの構成を示すブロック図。
【図2】(a)〜(d)はカウンタ動作を示すタイムチャート。
【図3】制御CPUによるタスクAの手順を示すフローチャート。
【図4】制御CPUによる異常検出処理を示すフローチャート。
【図5】制御CPUによるタスクBの手順を示すフローチャート。
【図6】監視CPUによる定期処理を示すフローチャート。
【符号の説明】
10…ECU、11…制御CPU、12…監視CPU、13,14…発振器、15…監視回路。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an electronic control device having two or more CPUs, and more particularly to an electronic control device for suitably detecting an abnormality in a clock signal supplied to each CPU and an abnormality in processing omission.
[0002]
[Prior art]
2. Description of the Related Art Some electronic control devices that perform vehicle control and the like include a plurality of CPUs and have a function of monitoring each other for abnormalities. As one of them, there is a method of monitoring the operating state of the CPU by monitoring a watchdog pulse (WD pulse) that is inverted at a predetermined cycle. In this case, one CPU inputs a WD pulse from the other CPU, and when the WD pulse stops, the other CPU is determined to be abnormal (runaway).
[0003]
[Problems to be solved by the invention]
As an abnormality relating to this type of electronic control device, there is an abnormality of a clock signal supplied to each CPU from an oscillator or the like. In this case, if the frequency of the clock signal changes due to an abnormality of the oscillator, it is conceivable that the abnormality cannot be detected depending on the state of the clock abnormality.
[0004]
For example, when the frequency of the clock signal is higher than that at normal time, the accuracy of time calculation in the CPU is lowered due to this. Therefore, there arises a disadvantage that various arithmetic processes that should be performed periodically are not performed at a predetermined cycle. In such a case, even if the CPU abnormality is detected by the WD pulse as described above, the clock abnormality cannot be determined because the WD pulse is periodically issued.
[0005]
In addition, in a CPU that wakes up a plurality of tasks having different priorities, there may be a case where processing loss occurs in a low priority task when the processing load on the CPU increases. In this case, since the issuance of the normal WD pulse is a high-priority process, the WD pulse is normally issued even when the low-priority process is lost. For this reason, even if a process omission occurs, the WD pulse is not affected and the process omission cannot be detected. In the worst case, there is a possibility of continuing the processing as it is.
[0006]
The present invention has been made paying attention to the above-mentioned problem, and an object of the present invention is to appropriately detect a clock abnormality and a processing omission abnormality, and as a result, ensure the reliability of the CPU. Is to provide.
[0007]
[Means for Solving the Problems]
According to the first aspect of the present invention, the first CPU and the second CPU are provided, and an individual clock signal is input to each of the CPUs, and periodic arithmetic processing is performed in each CPU based on the clock signals. The second CPU notifies the first CPU of time information of a fixed period based on a clock signal input to the second CPU. In particular, the first CPU counts the main counter at a constant period based on the clock signal input to itself, and counts the sub-counter based on the time information at a constant period input from the second CPU. Then, the difference between the main and sub counters is compared at two timings before and after, and the abnormality of the clock signal is detected from the comparison result.
[0008]
If the clock signal on the second CPU side becomes abnormal and its frequency is smaller than that at the normal time, the time interval of time information notified from the second CPU to the first CPU is widened, and as a result, the counting operation of the sub-counter is delayed. In this case, it can be determined that the difference between the main and sub counters is different from the normal state, and that the clock signal is abnormal by comparing the difference between the counters. That is, it is possible to detect an abnormality in which the cycle of the clock signal changes. As a result, it is possible to properly detect the clock abnormality and to secure the reliability of the CPU.
[0009]
In the invention according to
[0010]
As described above, the first CPU receives the time information notification from the second CPU and operates the sub-counter. In such a case, the time information notification may be realized in the following form.
In the invention according to claim 3, the second CPU outputs a trigger signal at a constant period in a periodic process based on a clock signal, and the first CPU counts a sub-counter every time the trigger signal is input. .
In the invention according to claim 4, the second CPU transmits data at a constant cycle in a periodic communication process based on a clock signal, and the first CPU sets a sub-counter every time data is received from the second CPU. Count.
In a fifth aspect of the present invention, the monitoring circuit outputs a reset signal to the second CPU when a watchdog pulse that is inverted at a predetermined cycle is input from the second CPU and the watchdog pulse is not inverted for a predetermined time or more. In addition, the first CPU inputs the watchdog pulse from the second CPU, and counts the sub-counter each time it is input.
[0011]
In any of the above cases, the first CPU counts the sub-counter at a constant period, and the clock abnormality can be properly detected by the difference between the sub-counter and the main counter.
[0012]
In the invention according to claim 6, the first CPU compares the difference between the main and sub counters at the two timings before and after to obtain a difference change amount, and when the difference change amount is the same every time, the clock abnormality occurs. Judge that there is. Thereby, the clock abnormality can be detected with high accuracy.
[0013]
In the invention according to claim 7, the first CPU obtains a difference change amount by comparing a difference between the main and sub counters at two timings before and after, and the difference change amount corresponds to the count of one counter. Then, it is determined that one of the counters is stopped. Thereby, the abnormality of the counter stop can be detected with high accuracy. As in
[0014]
As described in claim 8, when the periods of both the main and sub counters are the same, if both the counters are normal, the difference always matches. Therefore, the difference between the main and sub counters can be easily compared.
[0015]
In the invention according to claim 9, the first CPU wakes up a predetermined task by using time information notified from the second CPU as a trigger, and leaves a history of processing completion in a prescribed processing unit within the task. Then, when the next task wakes up, a process omission abnormality is detected from the history. In this case, if the task is executed to the end, a history of processing completion remains for all the processing. However, if the task is executed only halfway, no history of processing completion is left for the unexecuted portion. Therefore, it is possible to detect missing processing for the task. Further, by confirming the history, it is possible to identify the position where the processing omission has occurred.
[0016]
In the ninth aspect of the invention, as described in the tenth aspect, the first CPU wakes up a plurality of tasks having different priorities, and records a processing end history in a prescribed processing unit in a task having a lower priority. It is good to leave. If there are multiple tasks with different priorities, a task with a low priority may cause a processing dropout (interruption of processing) due to a high-priority task interrupting the process. Occurrence of omission and location of occurrence can be specified.
[0017]
According to another aspect of the present invention, the first CPU may count the sub-counter at the end of a predetermined task that is woken up by time information from the second CPU. As a result, when a process omission occurs, the sub-counter is not counted, and it is possible to determine the occurrence of abnormality from the difference between the main and sub-counters.
[0018]
On the other hand, in the invention according to
[0019]
Furthermore, as described in
[0020]
According to a fourteenth aspect of the present invention, the first CPU performs electronic throttle control, and the second CPU is applied as a vehicle electronic control device that performs fail-safe processing relating to electronic throttle control. When the first CPU detects that the clock is abnormal or the process is abnormal, the first CPU notifies the second CPU, and the second CPU performs fail-safe processing based on the abnormality information from the first CPU. In this case, even if a clock abnormality or a process omission abnormality occurs, the appropriate fail-safe process can be performed.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, an embodiment of the invention will be described with reference to the drawings. In the present embodiment, the electronic control device of the present invention is embodied as an engine ECU mounted on a vehicle. FIG. 1 is a block diagram showing a configuration of an engine ECU in the present embodiment.
[0022]
In FIG. 1, an
[0023]
The
[0024]
On the other hand, the monitoring
[0025]
Further, the monitoring
[0026]
Here, the operations of the counters CA and CB will be described with reference to FIG. When both the counters CA and CB operate normally, each counter is incremented every 2 ms as shown in FIG. In this case, if the difference between the counters CA and CB is ΔCn (= CA−CB), the difference is ΔC1 at timing t1, and the difference is ΔC2 at timing t2. FIG. 2A shows normal operation, so that ΔC1 = ΔC2.
[0027]
On the other hand, FIGS. 2B to 2D show cases where the counter CB operates abnormally. (B) to (d) will be described in detail. In (b), the cycle of the counter CB is larger than that in the normal state. It is considered that this is because the clock CK2 on the
[0028]
Further, (c) shows an abnormality in which the counter CB stops, and (d) shows an abnormality (processing omission abnormality) in which the regular processing in the
[0029]
In the present embodiment, an abnormality detection method is proposed in which any of the abnormalities shown in FIGS. 2B to 2D can be detected and the form of each abnormality can be specified. In the case of (b) in FIG. 2 above, since the count-up cycles of the counters CA and CB are different, the difference ΔCn of each counter value is different every time, but the change of the same ΔCn is uniform, and is changed at regular intervals. When the two ΔCn are compared, the amount of change is constant. That is, if the change amount of the difference between before and after is DCn (hereinafter referred to as difference change amount DCn), the difference change amount DCn becomes the same value every time (DCn = DCn-1). Therefore, the clock abnormality can be specified by the difference change amount DCn. Of course, when the cycle of the counter CB becomes small or when the cycle of the counter CA becomes large (or small), the clock abnormality can be specified similarly.
[0030]
In the case of FIG. 2 (c), since one counter CA has normally counted up and the other counter CB has stopped, the difference change amount DCn between the counters CA and CB is counted up by the counter CA. Corresponds to minutes. In this case, the difference change amount DCn coincides with a value (DTn / T) obtained by dividing the time interval DTn between t1 and t2 by the time T (2 ms) for one counter cycle (DCn = DTn / T). Thereby, the abnormality of the stop of task B can be specified.
[0031]
In the case of (d) in FIG. 2, ΔC1 ≠ ΔC2 (that is, DCn ≠ 0) as in the cases (b) and (c), but the change in the difference ΔCn is irregular. Therefore, if ΔC1 ≠ ΔC2 and the conditions (b) and (c) in FIG.
[0032]
Next, the arithmetic processing that is woken up by the
[0033]
In FIG. 3, first, in step 101, an abnormality detection process is performed based on the counters CA and CB. However, the details (processing of FIG. 4) will be described later. In
[0034]
In the abnormality detection process of FIG. 4, a series of abnormality detection is performed every 8 ms, and the process proceeds to the
[0035]
In
[0036]
Thereafter, in
[0037]
If DCn ≠ 0, the process proceeds to step 205, where the current value DCn of the difference change amount is compared with the previous value DCn-1. If DCn = DCn-1, it is estimated that the clock is abnormal, and in
[0038]
If DCn.noteq.DCn-1, the time interval DTn (time width from the previous abnormality detection to the current abnormality detection) is calculated in
[0039]
Thereafter, in
[0040]
FIG. 5 is a flowchart showing the procedure of task B. This task B is woken up by the
[0041]
In task B, n processes (
[0042]
In FIG. 5, first, in
[0043]
When the flag xfin (i) = OFF, it can be determined that a process omission has occurred in the corresponding process i. Therefore, the process proceeds to step 305, and the process i at that time is stored in the memory as a process missing occurrence position.
[0044]
Thereafter, in step 306, all the process completion flags xfin are cleared. In steps 307 to 312, processing 1 to processing n are sequentially performed, and the processing completion flag Xfin corresponding to each processing is turned ON immediately after the execution of each processing. Finally, in
[0045]
When an abnormality is detected in the abnormality detection process of FIG. 4 (when the abnormality flag is turned on), this is notified from the
[0046]
According to the embodiment described in detail above, the following effects can be obtained.
When the clock abnormality occurs, the difference ΔCn between the counters CA and CB is different from the normal state. Therefore, it can be determined that the clock abnormality is caused by comparing the two differences ΔCn before and after. That is, it is possible to detect an abnormality that changes the clock cycle. As a result, it is possible to properly detect the clock abnormality and to secure the reliability of the CPU.
[0047]
Since the clock abnormality is determined when the difference change amount DCn between the counters CA and CB is the same every time, the clock abnormality can be detected with high accuracy.
In addition, when the difference change amount DCn between the counters CA and CB is equivalent to the count of one counter, it is determined that one of the counters is stopped, so that the abnormality of the counter stop can be accurately detected. This also agrees that it is possible to accurately detect that any task has stopped.
[0048]
In Task B, a processing end history (processing completion flag xfin) is left in a prescribed processing unit, and a processing loss abnormality is detected from the history when the next task wakes up. Can do.
[0049]
In addition to the above, the present invention can be embodied in the following forms.
In the above embodiment, the
(1) The
(2) The
[0050]
In any of these cases, the
[0051]
In the above embodiment, the case where the periods of the counters CA and CB (that is, the wake-up period of the task A and the task B) are the same is illustrated, but the periods may be different. Even if the periods of the counters CA and CB are different, if each counter is normal, the difference ΔCn maintains a certain regularity. For this reason, the difference ΔCn is compared at the two preceding and following timings, and the clock abnormality can be detected from the comparison result.
[0052]
The present invention can be applied to other ECUs besides the engine ECU, and can also be embodied for uses other than the vehicle electronic control device. In short, an electronic control device having two or more CPUs and having a configuration in which individual clock signals are input to the CPUs and periodic arithmetic processing is performed by the CPUs based on the clock signals. The invention can be applied.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an engine ECU in an embodiment of the invention.
FIGS. 2A to 2D are time charts showing a counter operation.
FIG. 3 is a flowchart showing a procedure of task A by the control CPU.
FIG. 4 is a flowchart showing abnormality detection processing by a control CPU.
FIG. 5 is a flowchart showing a procedure of task B by the control CPU.
FIG. 6 is a flowchart showing regular processing by a monitoring CPU.
[Explanation of symbols]
DESCRIPTION OF
Claims (14)
前記第1CPUは、自身に入力されるクロック信号を基に一定周期で主カウンタをカウントすると共に、前記第2CPUより入力される一定周期の時間情報を基に副カウンタをカウントし、これら主副両カウンタの差分を、前後する2つのタイミングで比較し、その比較結果から前記クロック信号の異常を検出することを特徴とする電子制御装置。A first CPU and a second CPU are provided, and an individual clock signal is input to each of the CPUs, and a periodic calculation process is performed by each CPU based on the clock signal, and the second CPU receives a clock input to itself. An electronic control device for notifying the first CPU of time information of a fixed period based on a signal,
The first CPU counts the main counter at a fixed period based on the clock signal input to itself, and also counts the sub counter based on the time information of the fixed period input from the second CPU. An electronic control device characterized by comparing a difference of a counter at two timings before and after and detecting an abnormality of the clock signal from the comparison result.
前記第1CPUは、前記第2CPUより通知される時間情報をトリガとして所定のタスクを起床し、当該タスク内において規定の処理単位で処理終了の履歴を残し、次回のタスク起床時に前記履歴から処理抜け異常を検出することを特徴とする電子制御装置。A first CPU and a second CPU are provided, and an individual clock signal is input to each of the CPUs, and a periodic calculation process is performed by each CPU based on the clock signal, and the second CPU receives a clock input to itself. An electronic control device for notifying the first CPU of time information of a fixed period based on a signal,
The first CPU wakes up a predetermined task with the time information notified from the second CPU as a trigger, and keeps a history of processing completion in a prescribed processing unit within the task, and the processing is lost from the history when the next task wakes up. An electronic control device characterized by detecting an abnormality.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182424A JP3991782B2 (en) | 2002-06-24 | 2002-06-24 | Electronic control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182424A JP3991782B2 (en) | 2002-06-24 | 2002-06-24 | Electronic control unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004029992A JP2004029992A (en) | 2004-01-29 |
JP3991782B2 true JP3991782B2 (en) | 2007-10-17 |
Family
ID=31178929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002182424A Expired - Fee Related JP3991782B2 (en) | 2002-06-24 | 2002-06-24 | Electronic control unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3991782B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100406689C (en) | 2004-04-27 | 2008-07-30 | 三菱扶桑卡客车公司 | Variable valve gear of internal combustion engine |
KR100727197B1 (en) * | 2005-12-27 | 2007-06-13 | 미쓰비시덴키 가부시키가이샤 | Control device of elevator |
US7617412B2 (en) * | 2006-10-25 | 2009-11-10 | Rockwell Automation Technologies, Inc. | Safety timer crosscheck diagnostic in a dual-CPU safety system |
JP5223630B2 (en) * | 2008-11-28 | 2013-06-26 | 株式会社デンソー | Electronic control unit |
JP6022965B2 (en) * | 2013-02-15 | 2016-11-09 | 株式会社マキタ | Electric tool equipment |
JP5987723B2 (en) * | 2013-02-18 | 2016-09-07 | 株式会社デンソー | Slave for communication |
JP6165677B2 (en) * | 2014-06-06 | 2017-07-19 | 本田技研工業株式会社 | Electronic control system |
KR102384977B1 (en) * | 2020-12-07 | 2022-04-07 | 현대오토에버 주식회사 | Synchronization system and method for maintaining real-time between multi-core |
-
2002
- 2002-06-24 JP JP2002182424A patent/JP3991782B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004029992A (en) | 2004-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4609381B2 (en) | Abnormality monitoring program, recording medium, and electronic device | |
US7496800B2 (en) | Malfunction monitoring method and system | |
US8799703B2 (en) | Methods and systems for measuring I/O signals | |
US9335183B2 (en) | Method for reliably operating a sensor | |
JP3991782B2 (en) | Electronic control unit | |
CN113946148B (en) | MCU chip awakening system based on multi-ECU cooperative control | |
US8943303B2 (en) | Monitoring circuit with a window watchdog | |
US20080282248A1 (en) | Electronic computing device capable of specifying execution time of task, and program therefor | |
US20120047403A1 (en) | Data processing system | |
JP3901987B2 (en) | Electronic control device for vehicle | |
JPH11232148A (en) | Method and system for measuring load rate of computer | |
CN110135198A (en) | Program flow monitoring method, system and vehicle | |
JP2002091802A (en) | Runaway monitoring device for electronic control system | |
US10514970B2 (en) | Method of ensuring operation of calculator | |
JP2001323836A (en) | Abnormality detection method for crank synchronous task | |
JP2870250B2 (en) | Microprocessor runaway monitor | |
JP2019120441A (en) | Facility monitoring device and facility monitoring method | |
JPH08119553A (en) | Control device for elevator | |
US20030093725A1 (en) | Method and circuit for monitoring microcomputer for onboard electronic control device | |
KR102158773B1 (en) | Pulse Width Modulator and method for PWM signal monitoring using the same | |
JP3163904B2 (en) | CPU device with runaway monitoring function | |
JPS622685Y2 (en) | ||
JP2002314556A (en) | Vehicle control system | |
JP4063699B2 (en) | Program runaway detection circuit | |
JP2023170679A (en) | On-vehicle device, program and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070716 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130803 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |