JP2009053752A - ウォッチドッグ処理方法および異常検出回路 - Google Patents
ウォッチドッグ処理方法および異常検出回路 Download PDFInfo
- Publication number
- JP2009053752A JP2009053752A JP2007217295A JP2007217295A JP2009053752A JP 2009053752 A JP2009053752 A JP 2009053752A JP 2007217295 A JP2007217295 A JP 2007217295A JP 2007217295 A JP2007217295 A JP 2007217295A JP 2009053752 A JP2009053752 A JP 2009053752A
- Authority
- JP
- Japan
- Prior art keywords
- watchdog
- flag
- microcomputer
- abnormality
- circuit
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】マイクロコンピュータの異常の有無を監視する信頼性の高いウォッチドッグ処理方法および異常監視回路を実現する。
【解決手段】マイクロコンピュータ2の異常の有無を監視する異常監視回路1は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路11であって、電源投入時には初期設定として前記ウォッチドッグ処理を実行するウォッチドッグ回路11と、ウォッチドッグフラグを監視し、所定の期間経過しても、ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路12と、を備え、ウォッチドッグ回路1によるウォッチドッグフラグのセットは、マイクロコンピュータ2の時計割り込みフラグを用いて実行される。
【選択図】図1
【解決手段】マイクロコンピュータ2の異常の有無を監視する異常監視回路1は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路11であって、電源投入時には初期設定として前記ウォッチドッグ処理を実行するウォッチドッグ回路11と、ウォッチドッグフラグを監視し、所定の期間経過しても、ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路12と、を備え、ウォッチドッグ回路1によるウォッチドッグフラグのセットは、マイクロコンピュータ2の時計割り込みフラグを用いて実行される。
【選択図】図1
Description
本発明は、マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法および異常監視回路に関する。
複数の処理タスクを含むメインルーチンプログラムの実行に際し、CPUの暴走やクロックの停止などマイクロコンピュータの各種異常を検知するためにウォッチドッグ回路が用いられる。
従来一般的には、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初に、ウォッチドッグ回路によるウォッチドッグ処理が実行されていた。
これに対し、メインルーチンプログラムの複数個所にチェックポイントを設け、所定の時間内にチェックポイントをすべて通過したときのみ、ウォッチドッグタイマのクリアを行うウォッチドッグタイムアウト検出方法がある(例えば、特許文献1参照)。
また、マイクロコンピュータ内部のシステムクロックには影響されない外部クロックを用いてウォッチドッグタイマを動作させることにより異常検出に対する信頼性を向上させたウォッチドッグタイマがある(例えば、特許文献2参照)。
また、クリアパルス消滅後、次のクリアパルス発生までの時間の検出によりプログラムの異常発生を検知するウォッチドッグタイマがある(例えば、特許文献3参照)。
通常の処理プログラムの所定のブロックごとに異常判定用フラグをセットし、それ以外の処理プログラムでは異常判定用フラグをリセットするようにすると共に、割り込み処理のプログラム実行時に、異常判定用フラグに対応するレベルの異常判定用信号を出力するようにし、出力される異常判定用信号のレベルの状態から異常の有無を判定するマイクロコンピュータの異常信号出力方法がある(例えば、特許文献4参照)。
繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理を実行する場合、マイクロコンピュータ(CPU)の暴走時間がウォッチドッグパルスの検出周期よりも短くなる可能性が高い。この場合、当該暴走が単発的に発生したものであると、当該暴走を検知することができず、場合によっては暴走が加速してしまうこともある。特にマイクロコンピュータが原子力発電や航空機のような高度の安全性が要求される技術分野に用いられるものであるような場合には、このような暴走の未検知は重大事故につながりかねない。
また、上記特許文献2(すなわち特開平5−73360号公報)に記載された発明のように、マイクロコンピュータ内部のシステムクロックには影響されない外部クロックを用いてウォッチドッグタイマを動作させるようにすると、マイクロコンピュータが故障しているにもかかわらず、外部クロックが動作し続けることによりウォッチドッグタイマからウォッチドッグパルスが出力され続けることがあるので、当該故障を検知することができないことがある。
従って本発明の目的は、上記問題に鑑み、マイクロコンピュータの異常の有無を監視する信頼性の高いウォッチドッグ処理方法および異常監視回路を提供することにある。
上記目的を実現するために、本発明においては、マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法は、電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするイニシャルステップと、メインルーチンプログラム内の各処理タスクの前に設けられる、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするウォッチドッグフラグセットステップであって、各ウォッチドッグフラグセットステップは、ウォッチドッグフラグセットステップの前のウォッチドッグフラグセットステップもしくはイニシャルステップが前記ウォッチドッグフラグをセットしたときにのみ実行されるステップと、ウォッチドッグフラグを監視し、所定の期間経過してもウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力ステップと、を備える。
また、本発明によれば、マイクロコンピュータの異常の有無を監視する異常監視回路は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路であって、電源投入時には初期設定として上記ウォッチドッグ処理を実行するウォッチドッグ回路と、ウォッチドッグフラグを監視し、所定の期間経過してもウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路と、を備える。このウォッチドッグ回路によるウォッチドッグフラグのセットは、マイクロコンピュータの時計割り込みフラグを用いて実行される。
本発明によれば、メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられるので、1つのメインルーチン内にウォッチドッグ処理が複数回実行される。したがって、本発明によれば、短時間の異常が単発的に発生しても、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理が実行される従来技術に比べて、異常を検知できる可能性が高い。
また、本発明によれば、各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。すなわち、マイクロコンピュータにおいて暴走などの異常が発生した場合は、ウォッチドッグフラグがセットされないので、さらなるウォッチドッグ処理が実行されることはなく、メインルーチンプログラムは確実にストップし、これ以上暴走することはないので安全である。
また、本発明によれば、このウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされるので、例えばマイクロコンピュータが故障して時計割り込みフラグがセットされないような場合には、当然ウォッチドッグフラグはセットされない。したがって、本発明によれば、このようなマイクロコンピュータの故障についても確実に検知することができ、また当該ウォッチドッグ処理の次のウォッチドッグ処理(すなわち新たなるウォッチドッグ処理)が実行されることもないので、この時点でメインルーチンプログラムはストップし、これ以上の暴走を防ぐことができる。
このように、本発明では、(1)メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられ、(2)各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行され、(3)ウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされる。本発明は、かかる構成を備えることによって、上述のように非常に信頼性の高いウォッチドッグ処理方法および異常監視回路を実現することができる。
図1は、本発明の実施例による異常監視回路を示すブロック図である。本発明の実施例による、マイクロコンピュータ(CPU)2の異常の有無を監視する異常監視回路1は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路11であって電源投入時には初期設定として上記ウォッチドッグ処理を実行するウォッチドッグ回路11と、ウォッチドッグフラグを監視し、所定の期間経過しても、ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路12と、を備える。
ウォッチドッグ回路1によるウォッチドッグフラグのセットは、マイクロコンピュータ2の時計割り込みフラグを用いて実行される。すなわち、ウォッチドッグ回路1では、マイクロコンピュータ2の時計割り込みフラグのインターバル時間を利用して、ウォッチドッグパルスの周期を生成する。
図2は、メインルーチンプログラム内に設けられた、本発明の実施例によるウォッチドック処理を説明するフローチャートである。ここでは一例として、メインルーチンプログラム内に、イニシャル処理(ステップS100)、シーケンス処理(ステップS102)、モータ回転制御処理(ステップS104)および異常表示処理(ステップS106)の、複数の処理タスクが設けられた例を示す。なお、図示の処理タスクの数はあくまでも一例であり、本発明を限定するものではない。
図2に示す本発明の実施例では、メインルーチンプログラム内のシーケンス処理(ステップS102)、モータ回転制御処理(ステップS104)および異常表示処理(ステップS106)の前に、本発明の実施例によるウォッチドッグ処理A(ステップS101)、ウォッチドッグ処理B(ステップS103)およびウォッチドッグ処理C(ステップS105)がそれぞれ設けられる。イニシャル処理(S100)では、電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットする。各ウォッチドッグ処理A〜C(ステップS101、S103およびステップS105)は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。例えば、ウォッチドッグ処理A(ステップS101)においてウォッチドッグフラグがセットされなかった場合には、ウォッチドッグ処理B(ステップS103)は実行されず、このためこれ以降のモータ回転制御処理(ステップS104)、ウォッチドッグ処理C(ステップS105)および異常表示処理(ステップS106)も実行されない。すなわち、この時点でメインルーチンプログラムはストップすることになる。
このように、本発明の実施例によれば、メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられるので、1つのメインルーチン内にウォッチドッグ処理が複数回実行されることになる。したがって、短時間の異常が単発的に発生しても、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理が実行される従来技術に比べて、異常を検知できる可能性が高い。
また、各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。すなわち、マイクロコンピュータにおいて暴走などの異常が発生した場合は、ウォッチドッグフラグがセットされないので、さらなるウォッチドッグ処理が実行されることはなく、したがって、異常を確実に検知し、なおかつメインルーチンプログラムを確実にストップさせることもできる。換言すれば、本発明の実施例においては、ウォッチドッグフラグはいわゆる「通行手形」のような役割を有するものであると言える。
なお、本発明の実施例では、メインループプログラム内において各処理タスクの前それぞれにウォッチドッグ処理を設けたが、設計コストや要求される異常検知精度に応じてウォッチドック処理の数を間引いてもよい。例えば、設計コストを削減するために、シーケンス処理(ステップS102)とモータ回転制御処理(ステップS104)との間に設けられるウォッチドッグ処理B(ステップS103)を削除してもよい。また、これとは逆に、異常検知精度を上げるために、ウォッチドック処理の数をさらに増やしてもよい。例えば、シーケンス処理(ステップS102)とモータ回転制御処理(ステップS104)との間に、複数のウォッチドッグ処理を設けてもよい。また、メインループプログラム内においてこれらウォッチドッグ処理の削減および増設を適宜組み合わせて実現してもよい。
図3は、本発明の実施例によるウォッチドッグ処理方法の処理フローを示すフローチャートである。すなわち、図3は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理のうちの1つを示すものであり、例えば図2に示す例に限って言えば、各ウォッチドック処理A〜Cのそれぞれにおいて具体的に実行される処理フローを示している。
ある1つのウォッチドッグ処理において、図3のステップS201では、当該ウォッチドッグ処理の前に設けられた同一メインルーチンプログラム内のウォッチドッグ処理においてウォッチドッグフラグがセットされたか否かをウォッチドッグ回路が判定する。
ステップS201において、前のウォッチドッグ処理においてウォッチドッグフラグがセットされていないと判定された場合は、そのまま処理が終了する。このことは、異常監視対象のマイクロコンピュータにおいて既に異常が発生していたことを意味しており、これ以降の処理タスクおよびウォッチドック処理が実行されることはなく、メインルーチンプログラムはストップする。
一方、ステップS201において、前のウォッチドッグ処理においてウォッチドッグフラグがセットされていると判定された場合は、ステップS202へ進む。ステップS202では、ウォッチドッグ回路が、マイクロコンピュータの時計割り込みフラグのインターバル時間を利用して、ウォッチドッグパルスの周期を生成し、ウォッチドッグフラグをセットする。より具体的には、時計割り込みにてマイクロコンピュータのポートからウォッチドッグフラグを出力する。しかし、ステップS202では、この時点でマイクロコンピュータに何らかの異常があった場合にはウォッチドッグフラグはセットされない。
ステップS203では、ウォッチドッグフラグを監視し、所定の時間経過後、当該ウォッチドッグ処理内のステップS202においてウォッチドッグフラグがセットされたか否かが判定される。
ステップS203において、当該ウォッチドッグ処理内のステップS202でウォッチドッグフラグがセットされたと判定された場合は、処理を終了する。これにより、当該ウォッチドッグ処理の次の処理タスクおよび次のウォッチドッグ処理(すなわち新たなるウォッチドッグ処理)に処理が移行する。
一方、ステップS203において、当該ウォッチドッグ処理内のステップS202でウォッチドッグフラグがセットされていないと判定された場合は、ステップS204へ進む。ステップS204では、信号出力回路が異常検知信号を出力する。当該ウォッチドッグ処理内ではウォッチドッグフラグがセットされないと、当該ウォッチドッグ処理の次のウォッチドッグ処理(すなわち新たなるウォッチドッグ処理)が実行されることはないので、この時点でメインルーチンプログラムはストップする。このように、メインルーチンプログラムは確実にストップするので、これ以上の暴走を防ぐことができる。
また、本発明の実施例では、ウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされるので、例えばマイクロコンピュータが故障して時計割り込みフラグがセットされないような場合であっても、マイクロコンピュータの故障についても確実に検知することができる。また当該ウォッチドッグ処理の次のウォッチドッグ処理(すなわち新たなるウォッチドッグ処理)が実行されることもないので、この時点でメインルーチンプログラムはストップし、これ以上の暴走を防ぐことができる。
本発明は、マイクロコンピュータ(CPU)の暴走などの異常を検知するウォッチドッグ処理に適用することができる。本発明は、例えば原子力発電や航空機のような高度の安全性が要求される技術分野における異常検知およびシステム暴走防止に有効である。
1 異常監視回路
2 マイクロコンピュータ
11 ウォッチドッグ回路
12 信号出力回路
2 マイクロコンピュータ
11 ウォッチドッグ回路
12 信号出力回路
Claims (3)
- マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法であって、
電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするイニシャルステップと、
メインルーチンプログラム内の各処理タスクの前に設けられる、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするウォッチドッグフラグセットステップであって、各前記ウォッチドッグフラグセットステップは、当該ウォッチドッグフラグセットステップの前のウォッチドッグフラグセットステップもしくは前記イニシャルステップが前記ウォッチドッグフラグをセットしたときにのみ実行されるステップと、
前記ウォッチドッグフラグを監視し、所定の期間経過しても前記ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力ステップと、
を備えることを特徴とするウォッチドッグ処理方法。 - マイクロコンピュータの異常の有無を監視する異常監視回路であって、
メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前の前記ウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路であって、電源投入時には初期設定として前記ウォッチドッグ処理を実行するウォッチドッグ回路と、
前記ウォッチドッグフラグを監視し、所定の期間経過しても前記ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路と、
を備えることを特徴とする異常監視回路。 - 前記ウォッチドッグ回路による前記ウォッチドッグフラグのセットは、マイクロコンピュータの時計割り込みフラグを用いて実行される請求項2に記載の異常監視回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217295A JP2009053752A (ja) | 2007-08-23 | 2007-08-23 | ウォッチドッグ処理方法および異常検出回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217295A JP2009053752A (ja) | 2007-08-23 | 2007-08-23 | ウォッチドッグ処理方法および異常検出回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009053752A true JP2009053752A (ja) | 2009-03-12 |
Family
ID=40504817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007217295A Pending JP2009053752A (ja) | 2007-08-23 | 2007-08-23 | ウォッチドッグ処理方法および異常検出回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009053752A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013223A1 (ja) | 2009-07-29 | 2011-02-03 | パイオニア株式会社 | スピーカ装置 |
WO2011077560A1 (ja) | 2009-12-25 | 2011-06-30 | パイオニア株式会社 | スピーカ用振動体、スピーカ装置 |
JP2019078728A (ja) * | 2017-10-27 | 2019-05-23 | ローム株式会社 | 監視装置 |
-
2007
- 2007-08-23 JP JP2007217295A patent/JP2009053752A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013223A1 (ja) | 2009-07-29 | 2011-02-03 | パイオニア株式会社 | スピーカ装置 |
WO2011077560A1 (ja) | 2009-12-25 | 2011-06-30 | パイオニア株式会社 | スピーカ用振動体、スピーカ装置 |
JP2019078728A (ja) * | 2017-10-27 | 2019-05-23 | ローム株式会社 | 監視装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003915B (zh) | 驱动控制装置 | |
US7966528B2 (en) | Watchdog mechanism with fault escalation | |
JP5476238B2 (ja) | 半導体装置 | |
WO2011114493A1 (ja) | マイコン相互監視システム及びマイコン相互監視方法 | |
US20160335149A1 (en) | Peripheral Watchdog Timer | |
JP2009053752A (ja) | ウォッチドッグ処理方法および異常検出回路 | |
US8392643B2 (en) | Data processing device, semiconductor integrated circuit device, and abnormality detection method | |
CN107436668B (zh) | 电力供给的控制器系统以及半导体装置 | |
US20090044050A1 (en) | Watchdog mechanism with fault recovery | |
JP2018163498A (ja) | 監視回路 | |
EP2626788B1 (en) | Control device and nuclear power plant control system | |
JP5772716B2 (ja) | 電子制御装置 | |
US20130177119A1 (en) | Control device and nuclear power plant control system | |
JP5438667B2 (ja) | マイクロプロセッサの間欠異常検出方法 | |
JP4534995B2 (ja) | ディジタル形保護継電装置のリスタート方式 | |
JP2018097697A (ja) | 処理装置 | |
JP2011008493A (ja) | ウォッチドッグタイマーによるシステム異常検出方式 | |
JP4396572B2 (ja) | 信号処理装置のリセット方法 | |
JP2018097442A (ja) | 電子制御装置 | |
JPH0540668A (ja) | プログラム暴走防止方式 | |
CN114375426B (zh) | Plc系统的错误状态控制方法 | |
JP2018032230A (ja) | Cpuの異常検出回路 | |
JPH0612294A (ja) | 監視装置 | |
JP2004310291A (ja) | ウォッチドッグタイマ故障検出回路を備えたcpuシステム | |
WO2011142015A1 (ja) | 演算器異常判定装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090121 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090121 |