(57)【要約】【課題】マイクロコンピュータの異常の有無を監視する信頼性の高いウォッチドッグ処理方法および異常監視回路を実現する。【解決手段】マイクロコンピュータ２の異常の有無を監視する異常監視回路１は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路１１であって、電源投入時には初期設定として前記ウォッチドッグ処理を実行するウォッチドッグ回路１１と、ウォッチドッグフラグを監視し、所定の期間経過しても、ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路１２と、を備え、ウォッチドッグ回路１によるウォッチドッグフラグのセットは、マイクロコンピュータ２の時計割り込みフラグを用いて実行される。【選択図】図１
2009053752.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法であって、
電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするイニシャルステップと、
メインルーチンプログラム内の各処理タスクの前に設けられる、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするウォッチドッグフラグセットステップであって、各前記ウォッチドッグフラグセットステップは、当該ウォッチドッグフラグセットステップの前のウォッチドッグフラグセットステップもしくは前記イニシャルステップが前記ウォッチドッグフラグをセットしたときにのみ実行されるステップと、
前記ウォッチドッグフラグを監視し、所定の期間経過しても前記ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力ステップと、
を備えることを特徴とするウォッチドッグ処理方法。
【請求項２】
マイクロコンピュータの異常の有無を監視する異常監視回路であって、
メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前の前記ウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路であって、電源投入時には初期設定として前記ウォッチドッグ処理を実行するウォッチドッグ回路と、
前記ウォッチドッグフラグを監視し、所定の期間経過しても前記ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路と、
を備えることを特徴とする異常監視回路。
【請求項３】
前記ウォッチドッグ回路による前記ウォッチドッグフラグのセットは、マイクロコンピュータの時計割り込みフラグを用いて実行される請求項２に記載の異常監視回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法および異常監視回路に関する。
【背景技術】
【０００２】
複数の処理タスクを含むメインルーチンプログラムの実行に際し、ＣＰＵの暴走やクロックの停止などマイクロコンピュータの各種異常を検知するためにウォッチドッグ回路が用いられる。
【０００３】
従来一般的には、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初に、ウォッチドッグ回路によるウォッチドッグ処理が実行されていた。
【０００４】
これに対し、メインルーチンプログラムの複数個所にチェックポイントを設け、所定の時間内にチェックポイントをすべて通過したときのみ、ウォッチドッグタイマのクリアを行うウォッチドッグタイムアウト検出方法がある（例えば、特許文献１参照）。
【０００５】
また、マイクロコンピュータ内部のシステムクロックには影響されない外部クロックを用いてウォッチドッグタイマを動作させることにより異常検出に対する信頼性を向上させたウォッチドッグタイマがある（例えば、特許文献２参照）。
【０００６】
また、クリアパルス消滅後、次のクリアパルス発生までの時間の検出によりプログラムの異常発生を検知するウォッチドッグタイマがある（例えば、特許文献３参照）。
【０００７】
通常の処理プログラムの所定のブロックごとに異常判定用フラグをセットし、それ以外の処理プログラムでは異常判定用フラグをリセットするようにすると共に、割り込み処理のプログラム実行時に、異常判定用フラグに対応するレベルの異常判定用信号を出力するようにし、出力される異常判定用信号のレベルの状態から異常の有無を判定するマイクロコンピュータの異常信号出力方法がある（例えば、特許文献４参照）。
【０００８】
【特許文献１】特開昭６４−１４６４４号公報
【特許文献２】特開平５−７３３６０号公報
【特許文献３】特開平５−２２５０００号公報
【特許文献４】特開平８−６８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理を実行する場合、マイクロコンピュータ（ＣＰＵ）の暴走時間がウォッチドッグパルスの検出周期よりも短くなる可能性が高い。この場合、当該暴走が単発的に発生したものであると、当該暴走を検知することができず、場合によっては暴走が加速してしまうこともある。特にマイクロコンピュータが原子力発電や航空機のような高度の安全性が要求される技術分野に用いられるものであるような場合には、このような暴走の未検知は重大事故につながりかねない。
【００１０】
また、上記特許文献２（すなわち特開平５−７３３６０号公報）に記載された発明のように、マイクロコンピュータ内部のシステムクロックには影響されない外部クロックを用いてウォッチドッグタイマを動作させるようにすると、マイクロコンピュータが故障しているにもかかわらず、外部クロックが動作し続けることによりウォッチドッグタイマからウォッチドッグパルスが出力され続けることがあるので、当該故障を検知することができないことがある。
【００１１】
従って本発明の目的は、上記問題に鑑み、マイクロコンピュータの異常の有無を監視する信頼性の高いウォッチドッグ処理方法および異常監視回路を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を実現するために、本発明においては、マイクロコンピュータの異常の有無を監視するウォッチドッグ処理方法は、電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするイニシャルステップと、メインルーチンプログラム内の各処理タスクの前に設けられる、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットするウォッチドッグフラグセットステップであって、各ウォッチドッグフラグセットステップは、ウォッチドッグフラグセットステップの前のウォッチドッグフラグセットステップもしくはイニシャルステップが前記ウォッチドッグフラグをセットしたときにのみ実行されるステップと、ウォッチドッグフラグを監視し、所定の期間経過してもウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力ステップと、を備える。
【００１３】
また、本発明によれば、マイクロコンピュータの異常の有無を監視する異常監視回路は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路であって、電源投入時には初期設定として上記ウォッチドッグ処理を実行するウォッチドッグ回路と、ウォッチドッグフラグを監視し、所定の期間経過してもウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路と、を備える。このウォッチドッグ回路によるウォッチドッグフラグのセットは、マイクロコンピュータの時計割り込みフラグを用いて実行される。
【発明の効果】
【００１４】
本発明によれば、メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられるので、１つのメインルーチン内にウォッチドッグ処理が複数回実行される。したがって、本発明によれば、短時間の異常が単発的に発生しても、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理が実行される従来技術に比べて、異常を検知できる可能性が高い。
【００１５】
また、本発明によれば、各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。すなわち、マイクロコンピュータにおいて暴走などの異常が発生した場合は、ウォッチドッグフラグがセットされないので、さらなるウォッチドッグ処理が実行されることはなく、メインルーチンプログラムは確実にストップし、これ以上暴走することはないので安全である。
【００１６】
また、本発明によれば、このウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされるので、例えばマイクロコンピュータが故障して時計割り込みフラグがセットされないような場合には、当然ウォッチドッグフラグはセットされない。したがって、本発明によれば、このようなマイクロコンピュータの故障についても確実に検知することができ、また当該ウォッチドッグ処理の次のウォッチドッグ処理（すなわち新たなるウォッチドッグ処理）が実行されることもないので、この時点でメインルーチンプログラムはストップし、これ以上の暴走を防ぐことができる。
【００１７】
このように、本発明では、（１）メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられ、（２）各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行され、（３）ウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされる。本発明は、かかる構成を備えることによって、上述のように非常に信頼性の高いウォッチドッグ処理方法および異常監視回路を実現することができる。
【発明を実施するための最良の形態】
【００１８】
図１は、本発明の実施例による異常監視回路を示すブロック図である。本発明の実施例による、マイクロコンピュータ（ＣＰＵ）２の異常の有無を監視する異常監視回路１は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理を、当該ウォッチドッグ処理の前のウォッチドッグ処理によりウォッチドッグフラグがセットされたときにのみ、実行するウォッチドッグ回路１１であって電源投入時には初期設定として上記ウォッチドッグ処理を実行するウォッチドッグ回路１１と、ウォッチドッグフラグを監視し、所定の期間経過しても、ウォッチドッグフラグがセットされないときには異常検知信号を出力する信号出力回路１２と、を備える。
【００１９】
ウォッチドッグ回路１によるウォッチドッグフラグのセットは、マイクロコンピュータ２の時計割り込みフラグを用いて実行される。すなわち、ウォッチドッグ回路１では、マイクロコンピュータ２の時計割り込みフラグのインターバル時間を利用して、ウォッチドッグパルスの周期を生成する。
【００２０】
図２は、メインルーチンプログラム内に設けられた、本発明の実施例によるウォッチドック処理を説明するフローチャートである。ここでは一例として、メインルーチンプログラム内に、イニシャル処理（ステップＳ１００）、シーケンス処理（ステップＳ１０２）、モータ回転制御処理（ステップＳ１０４）および異常表示処理（ステップＳ１０６）の、複数の処理タスクが設けられた例を示す。なお、図示の処理タスクの数はあくまでも一例であり、本発明を限定するものではない。
【００２１】
図２に示す本発明の実施例では、メインルーチンプログラム内のシーケンス処理（ステップＳ１０２）、モータ回転制御処理（ステップＳ１０４）および異常表示処理（ステップＳ１０６）の前に、本発明の実施例によるウォッチドッグ処理Ａ（ステップＳ１０１）、ウォッチドッグ処理Ｂ（ステップＳ１０３）およびウォッチドッグ処理Ｃ（ステップＳ１０５）がそれぞれ設けられる。イニシャル処理（Ｓ１００）では、電源投入時の初期設定として、マイクロコンピュータの時計割り込みフラグを用いてウォッチドッグフラグをセットする。各ウォッチドッグ処理Ａ〜Ｃ（ステップＳ１０１、Ｓ１０３およびステップＳ１０５）は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。例えば、ウォッチドッグ処理Ａ（ステップＳ１０１）においてウォッチドッグフラグがセットされなかった場合には、ウォッチドッグ処理Ｂ（ステップＳ１０３）は実行されず、このためこれ以降のモータ回転制御処理（ステップＳ１０４）、ウォッチドッグ処理Ｃ（ステップＳ１０５）および異常表示処理（ステップＳ１０６）も実行されない。すなわち、この時点でメインルーチンプログラムはストップすることになる。
【００２２】
このように、本発明の実施例によれば、メインルーチンプログラム内の各処理タスクの前にウォッチドッグ処理が設けられるので、１つのメインルーチン内にウォッチドッグ処理が複数回実行されることになる。したがって、短時間の異常が単発的に発生しても、繰り返し実行されるメインルーチンプログラムの当該繰り返しが実行される最初にのみウォッチドッグ処理が実行される従来技術に比べて、異常を検知できる可能性が高い。
【００２３】
また、各ウォッチドッグ処理は、当該ウォッチドッグ処理の前のウォッチドッグ処理においてウォッチドッグフラグがセットされたときにのみ実行される。すなわち、マイクロコンピュータにおいて暴走などの異常が発生した場合は、ウォッチドッグフラグがセットされないので、さらなるウォッチドッグ処理が実行されることはなく、したがって、異常を確実に検知し、なおかつメインルーチンプログラムを確実にストップさせることもできる。換言すれば、本発明の実施例においては、ウォッチドッグフラグはいわゆる「通行手形」のような役割を有するものであると言える。
【００２４】
なお、本発明の実施例では、メインループプログラム内において各処理タスクの前それぞれにウォッチドッグ処理を設けたが、設計コストや要求される異常検知精度に応じてウォッチドック処理の数を間引いてもよい。例えば、設計コストを削減するために、シーケンス処理（ステップＳ１０２）とモータ回転制御処理（ステップＳ１０４）との間に設けられるウォッチドッグ処理Ｂ（ステップＳ１０３）を削除してもよい。また、これとは逆に、異常検知精度を上げるために、ウォッチドック処理の数をさらに増やしてもよい。例えば、シーケンス処理（ステップＳ１０２）とモータ回転制御処理（ステップＳ１０４）との間に、複数のウォッチドッグ処理を設けてもよい。また、メインループプログラム内においてこれらウォッチドッグ処理の削減および増設を適宜組み合わせて実現してもよい。
【００２５】
図３は、本発明の実施例によるウォッチドッグ処理方法の処理フローを示すフローチャートである。すなわち、図３は、メインルーチンプログラム内の各処理タスクの前に設けられるウォッチドッグ処理のうちの１つを示すものであり、例えば図２に示す例に限って言えば、各ウォッチドック処理Ａ〜Ｃのそれぞれにおいて具体的に実行される処理フローを示している。
【００２６】
ある１つのウォッチドッグ処理において、図３のステップＳ２０１では、当該ウォッチドッグ処理の前に設けられた同一メインルーチンプログラム内のウォッチドッグ処理においてウォッチドッグフラグがセットされたか否かをウォッチドッグ回路が判定する。
【００２７】
ステップＳ２０１において、前のウォッチドッグ処理においてウォッチドッグフラグがセットされていないと判定された場合は、そのまま処理が終了する。このことは、異常監視対象のマイクロコンピュータにおいて既に異常が発生していたことを意味しており、これ以降の処理タスクおよびウォッチドック処理が実行されることはなく、メインルーチンプログラムはストップする。
【００２８】
一方、ステップＳ２０１において、前のウォッチドッグ処理においてウォッチドッグフラグがセットされていると判定された場合は、ステップＳ２０２へ進む。ステップＳ２０２では、ウォッチドッグ回路が、マイクロコンピュータの時計割り込みフラグのインターバル時間を利用して、ウォッチドッグパルスの周期を生成し、ウォッチドッグフラグをセットする。より具体的には、時計割り込みにてマイクロコンピュータのポートからウォッチドッグフラグを出力する。しかし、ステップＳ２０２では、この時点でマイクロコンピュータに何らかの異常があった場合にはウォッチドッグフラグはセットされない。
【００２９】
ステップＳ２０３では、ウォッチドッグフラグを監視し、所定の時間経過後、当該ウォッチドッグ処理内のステップＳ２０２においてウォッチドッグフラグがセットされたか否かが判定される。
【００３０】
ステップＳ２０３において、当該ウォッチドッグ処理内のステップＳ２０２でウォッチドッグフラグがセットされたと判定された場合は、処理を終了する。これにより、当該ウォッチドッグ処理の次の処理タスクおよび次のウォッチドッグ処理（すなわち新たなるウォッチドッグ処理）に処理が移行する。
【００３１】
一方、ステップＳ２０３において、当該ウォッチドッグ処理内のステップＳ２０２でウォッチドッグフラグがセットされていないと判定された場合は、ステップＳ２０４へ進む。ステップＳ２０４では、信号出力回路が異常検知信号を出力する。当該ウォッチドッグ処理内ではウォッチドッグフラグがセットされないと、当該ウォッチドッグ処理の次のウォッチドッグ処理（すなわち新たなるウォッチドッグ処理）が実行されることはないので、この時点でメインルーチンプログラムはストップする。このように、メインルーチンプログラムは確実にストップするので、これ以上の暴走を防ぐことができる。
【００３２】
また、本発明の実施例では、ウォッチドッグ処理におけるウォッチドッグフラグはマイクロコンピュータの時計割り込みフラグを用いてセットされるので、例えばマイクロコンピュータが故障して時計割り込みフラグがセットされないような場合であっても、マイクロコンピュータの故障についても確実に検知することができる。また当該ウォッチドッグ処理の次のウォッチドッグ処理（すなわち新たなるウォッチドッグ処理）が実行されることもないので、この時点でメインルーチンプログラムはストップし、これ以上の暴走を防ぐことができる。
【産業上の利用可能性】
【００３３】
本発明は、マイクロコンピュータ（ＣＰＵ）の暴走などの異常を検知するウォッチドッグ処理に適用することができる。本発明は、例えば原子力発電や航空機のような高度の安全性が要求される技術分野における異常検知およびシステム暴走防止に有効である。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施例による異常監視回路を示すブロック図である。
【図２】メインルーチンプログラム内に設けられた、本発明の実施例によるウォッチドック処理を説明するフローチャートである。
【図３】本発明の実施例によるウォッチドッグ処理方法の処理フローを示すフローチャートである。
【符号の説明】
【００３５】
１    異常監視回路
２    マイクロコンピュータ
１１    ウォッチドッグ回路
１２    信号出力回路
【図１】
2009053752.tif 000003
【図２】
2009053752.tif 000004
【図３】
2009053752.tif 000005