(57)【要約】【課題】プログラムの高い保守性を維持しつつ、プログラムの実行異常時には的確にその回復処理を行うことのできるプログラム異常監視方法及びプログラム異常監視装置を提供する。【解決手段】マイクロコンピュータ１のプログラム実行部１０により逐次処理される一連の複数のタスクからなる逐次処理プログラムの開始処理をトリガとして、ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みを発生させ、この逐次処理プログラムの終了処理として同周期割り込みの発生を停止させる。そして、この周期割り込みに基づきウォッチドッグ信号ＷＤＣを変化させる（論理レベルを反転させる）とともに、逐次処理プログラムの実行が完了されると推定される時間を超えて同周期割り込みが発生したとき、この周期割り込みの以降の発生を禁止することによってウォッチドッグ信号ＷＤＣの以降の変化を禁止する。【選択図】      図１
2006338605.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行に際してマイクロコンピュータから出力されるウォッチドッグ信号の変化をウォッチドッグタイマにて監視し、このウォッチドッグ信号が前記ウォッチドッグタイマのタイムアウト時間以内に変化しないことに基づいて前記マイクロコンピュータをリセットするプログラム異常監視方法において、
前記マイクロコンピュータにより逐次処理される一連の複数のタスクからなる逐次処理プログラムの実行に際し、前記ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みを発生させ、この周期割り込みに基づき前記ウォッチドッグ信号を変化させるとともに、前記逐次処理プログラムの実行が完了されると推定される時間を超えて前記周期割り込みが発生したとき、この周期割り込みの以降の発生を禁止する
ことを特徴とするプログラム異常監視方法。
【請求項２】
前記逐次処理プログラムの実行が完了されると推定される時間を同周期割り込みの発生周期で除算した値として判定値を設定するとともに、前記逐次処理プログラムの実行と並行して前記周期割り込みの発生回数を計数し、この計数する周期割り込みの発生回数が前記設定した判定値を超えることに基づいて前記逐次処理プログラムの実行が完了されると推定される時間を超えて前記周期割り込みが発生した旨を判断する
請求項１に記載のプログラム異常監視方法。
【請求項３】
監視対象とする複数の逐次処理プログラムに対し、それぞれその実行が完了されると推定される時間に基づき、前記判定値を各別に設定する
請求項２に記載のプログラム異常監視方法。
【請求項４】
監視対象とする逐次処理プログラムの開始処理をトリガとして前記周期割り込みの発生を開始させ、当該逐次処理プログラムの終了処理として同周期割り込みの発生を停止する
請求項２または３に記載のプログラム異常監視方法。
【請求項５】
前記監視対象とする逐次処理プログラムの開始処理として、
ａ１．前記ウォッチドッグ信号を変化させる処理、及び
ａ２．当該逐次処理プログラムの実行が完了されると推定される時間に基づき前記判定値を設定する処理、及び
ａ３．前記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ａ４．周期タイマに前記周期割り込みの発生周期とする時間を設定してこの周期タイマを起動する処理、
をそれぞれ実行し、当該逐次処理プログラムの終了処理として、
ｂ１．前記ウォッチドッグ信号を変化させる処理、及び
ｂ２．前記周期タイマを停止する処理、
をそれぞれ実行する
請求項４に記載のプログラム異常監視方法。
【請求項６】
請求項２〜５のいずれか一項に記載のプログラム異常監視方法において、
前記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクの実行中に前記判定値を当該タスクの推定実行時間に基づき変更する処理をさらに行う
ことを特徴とするプログラム異常監視方法。
【請求項７】
請求項２〜６のいずれか一項に記載のプログラム異常監視方法において、
前記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクに対し前記周期割り込みにかかる割り込み周期を変更する処理をさらに行う
ことを特徴とするプログラム異常監視方法。
【請求項８】
前記逐次処理プログラムの開始処理として、
ｃ１．前記ウォッチドッグ信号を変化させる処理、及び
ｃ２．前記割り込み周期を変更するまでに実行するタスクに対する割り込み周期を第１の周期として設定する処理、及び
ｃ３．前記割り込み周期を変更するまでに実行するタスクの推定実行時間を前記設定した第１の周期で除算した値として前記判定値を第１の値に設定する処理、及び
ｃ４．前記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ｃ５．周期タイマに前記設定した第１の周期とする時間を設定してこの周期タイマを起動する処理、
をそれぞれ実行し、前記任意のタスクに対する前記周期割り込みにかかる割り込み周期を変更する処理として、
ｄ１．前記ウォッチドッグ信号を変化させる処理、及び
ｄ２．前記周期タイマを停止する処理、及び
ｄ３．当該タスクに対する割り込み周期を第２の周期として設定する処理、及び
ｄ４．当該タスクの推定実行時間を前記設定した第２の周期で除算した値として前記判定値を第２の値に設定する処理、及び
ｄ５．前記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ｄ６．前記周期タイマに前記設定した第２の周期とする時間を設定してこの周期タイマを起動する処理、
をそれぞれ実行する
請求項７に記載のプログラム異常監視方法。
【請求項９】
前記周期割り込みを、フリーランカウンタによるオーバーフロー割り込み、及びフリーランカウンタのカウント値と比較用レジスタにセットされた値とに基づくコンペアマッチ割り込み、及びフリーランカウンタによるデューティー制御に際して周期レジスタにセットされているパルス幅変調周期にフリーランカウンタのカウント値が到達する毎に実行されるパルス幅変調周期割り込み、のいずれかによって行う
請求項１〜８のいずれか一項に記載のプログラム異常監視方法。
【請求項１０】
監視対象とする前記逐次処理プログラムが、前記マイクロコンピュータへの給電開始に伴うイニシャル処理プログラム、及び同マイクロコンピュータへの給電停止に伴うオフタスク処理プログラムの少なくとも一方である
請求項１〜９のいずれか一項に記載のプログラム異常監視方法。
【請求項１１】
プログラムの実行に際してマイクロコンピュータから出力されるウォッチドッグ信号の変化をウォッチドッグタイマにて監視し、このウォッチドッグ信号が前記ウォッチドッグタイマのマイムアウト時間以内に変化しないことに基づいて前記マイクロコンピュータをリセットするプログラム異常監視装置において、
前記マイクロコンピュータにより逐次処理される一連の複数のタスクからなる逐次処理プログラムの実行に際し、前記ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みを発生させ、この周期割り込みに基づき前記ウォッチドッグ信号を変化させるとともに、前記逐次処理プログラムの実行が完了されると推定される時間を超えて前記周期割り込みが発生したとき、この周期割り込みの以降の発生を禁止する制御を行う監視制御手段を備える
ことを特徴とするプログラム異常監視装置。
【請求項１２】
前記監視制御手段は、前記逐次処理プログラムの実行が完了されると推定される時間を同周期割り込みの発生周期で除算した値として判定値を設定するとともに、前記逐次処理プログラムの実行と並行して前記周期割り込みの発生回数を計数し、この計数する周期割り込みの発生回数が前記設定した判定値を超えることに基づいて前記逐次処理プログラムの実行が完了されると推定される時間を超えて前記周期割り込みが発生した旨を判断する
請求項１１に記載のプログラム異常監視装置。
【請求項１３】
前記監視制御手段は、監視対象とする複数の逐次処理プログラムに対し、それぞれその実行が完了されると推定される時間に基づき、前記判定値を各別に設定する
請求項１２に記載のプログラム異常監視装置。
【請求項１４】
前記監視制御手段は、監視対象とする逐次処理プログラムの開始処理をトリガとして前記周期割り込みの発生を開始し、当該逐次処理プログラムの終了処理として同周期割り込みの発生を停止する
請求項１２または１３に記載のプログラム異常監視装置。
【請求項１５】
前記監視制御手段は、前記監視対象とする逐次処理プログラムの開始処理を実行する手段として、
Ａ１．前記ウォッチドッグ信号を変化させる手段、及び
Ａ２．当該逐次処理プログラムの実行が完了されると推定される時間に基づき前記判定値を設定する手段、及び
Ａ３．前記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
Ａ４．周期タイマに前記周期割り込みの発生周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備え、当該逐次処理プログラムの終了処理を実行する手段として、
Ｂ１．前記ウォッチドッグ信号を変化させる手段、及び
Ｂ２．前記周期タイマを停止する手段、
をそれぞれ備える
請求項１４に記載のプログラム異常監視装置。
【請求項１６】
請求項１２〜１５のいずれか一項に記載のプログラム異常監視装置において、
前記監視制御手段は、前記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクの実行中に前記判定値を当該タスクの推定実行時間に基づき変更する手段をさらに備える
ことを特徴とするプログラム異常監視装置。
【請求項１７】
請求項１２〜１６のいずれか一項に記載のプログラム異常監視装置において、
前記監視制御手段は、前記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクに対し前記周期割り込みにかかる割り込み周期を変更する手段をさらに備える
ことを特徴とするプログラム異常監視装置。
【請求項１８】
前記監視制御手段は、前記逐次処理プログラムの開始処理を実行する手段として、
Ｃ１．前記ウォッチドッグ信号を変化させる手段、及び
Ｃ２．前記割り込み周期を変更するまでに実行するタスクに対する割り込み周期を第１の周期として設定する手段、及び
Ｃ３．前記割り込み周期を変更するまでに実行するタスクの推定実行時間を前記設定した第１の周期で除算した値として前記判定値を第１の値に設定する手段、及び
Ｃ４．前記周期割り込みの発生回数を計数するためのカウンタをクリアする手段、及び
Ｃ５．周期タイマに前記設定した第１の周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備え、前記任意のタスクに対する前記周期割り込みにかかる割り込み周期を変更する処理を実行する手段として、
Ｄ１．前記ウォッチドッグ信号を変化させる手段、及び
Ｄ２．前記周期タイマを停止する手段、及び
Ｄ３．当該タスクに対する割り込み周期を第２の周期として設定する手段、及び
Ｄ４．当該タスクの推定実行時間を前記設定した第２の周期で除算した値として前記判定値を第２の値に設定する手段、及び
Ｄ５．前記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
Ｄ６．前記周期タイマに前記設定した第２の周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備える
請求項１７に記載のプログラム異常監視装置。
【請求項１９】
前記監視制御手段は、前記周期割り込みを、フリーランカウンタによるオーバーフロー割り込み、及びフリーランカウンタのカウント値と比較用レジスタにセットされた値とに基づくコンペアマッチ割り込み、及びフリーランカウンタによるデューティー制御に際して周期レジスタにセットされているパルス幅変調周期にフリーランカウンタのカウント値が到達する毎に実行されるパルス幅変調周期割り込み、のいずれかによって行う
請求項１１〜１８のいずれか一項に記載のプログラム異常監視装置。
【請求項２０】
前記監視制御手段が監視対象とする前記逐次処理プログラムが、前記マイクロコンピュータへの給電開始に伴うイニシャル処理プログラム、及び同マイクロコンピュータへの給電停止に伴うオフタスク処理プログラムの少なくとも一方である
請求項１１〜１９のいずれか一項に記載のプログラム異常監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両の制御装置等に用いられるマイクロコンピュータによるプログラムの実行を監視し、該プログラムの実行中に異常が生じたと判断される場合に上記マイクロコンピュータをリセットするプログラム異常監視方法及びプログラム異常監視装置に関するものである。
【背景技術】
【０００２】
従来、例えば車両の電子制御装置にあっては、制御の信頼性を確保するために、同電子制御装置に搭載されたマイクロコンピュータによるプログラムの実行を監視し、そのプログラムの実行が何らかの原因により中断あるいは停止される等の異常を検知した場合、上記マイクロコンピュータをリセットしてプログラムの再実行を促す方法が採用されている。この方法の一つとして、プログラムの異常の発生を監視する専用の異常監視用ＩＣをマイクロコンピュータに接続しておき、この異常監視用ＩＣを用いて、マイクロコンピュータによるプログラムの実行の監視、並びにプログラムの実行異常に基づくマイクロコンピュータのリセットを行う方法がある。このようなプログラムの異常監視方法を実現するための構成、並びに監視態様の一例を図２５及び図２６に示す。
【０００３】
図２５に示されるように、上記異常監視方法の実現のためには、監視対象となるマイクロコンピュータ１０１に対してウォッチドッグ回路を備える異常監視用ＩＣ１０２が接続される構成となる。すなわちこのような構成にあって、マイクロコンピュータ１０１からは、そのプログラムの実行に伴い、図２６（ｂ）に示すように、周期的に論理レベルが反転するウォッチドッグ信号ＷＤＣがその出力ポート（ＷＤＣ出力ポート）を介して出力される。一方、異常監視用ＩＣ１０２では、例えば図２６（ｂ）にタイミングｔ１〜ｔ５として示される各タイミング、すなわちウォッチドッグ信号の論理レベルが論理Ｈ（ハイ）レベルから論理Ｌ（ロー）レベルに移行する際の各エッジが検出され、このエッジの検出に基づいてウォッチドッグタイマがリセットされる。また、異常監視用ＩＣ１０２では、上記エッジがウォッチドッグタイムアウト時間（ＷＤタイムアウト時間）ＴＯ以内に検出されないときには、リセット信号出力端子を介してリセット信号を出力することによってマイクロコンピュータ１０１をリセットする。例えば、図２６（ｂ）にタイミングｔ６として示すタイミングにおいてプログラムの実行異常が発生したとすると、その後、マイクロコンピュータ１０１からはウォッチドッグ信号が出力されなくなる。このため、異常監視用ＩＣ１０２では、タイミングｔ５からウォッチドッグタイムアウト時間ＴＯの経過したタイミングｔ７において、図２６（ａ）に示すリセット信号を出力してマイクロコンピュータ１０１をリセットする。
【０００４】
ところで、このような態様でマイクロコンピュータ１０１の異常監視が行われる場合、同マイクロコンピュータ１０１では、上記ウォッチドッグ信号ＷＤＣを出力するために、その出力ポートへ出力する同信号ＷＤＣの論理レベルをウォッチドッグタイムアウト時間ＴＯよりも短い周期で反転させる必要がある。そこで次に、上記ウォッチドッグ信号ＷＤＣの反転にかかる処理として従来一般に採用されている処理の一例を、電源投入時に実行されるイニシャル処理を例にとって、図２７（ａ）、（ｂ）に示すフローチャートを参照しつつ説明する。
【０００５】
図２７（ａ）に示されるように、イニシャル処理が複数の処理、例えば処理Ａ〜Ｄからなるとする場合、これら処理Ａ〜Ｄを連続して実行するとその実行時間が上記ウォッチドッグタイムアウト時間ＴＯを超えてしまうことがある。そこでこの場合、同図２７（ａ）に示すように、処理Ａ〜Ｄ（ステップＳ６２、Ｓ６３、Ｓ６５、Ｓ６７）のうちの適切な箇所、あるいはこれら処理の前後において、上記ウォッチドッグ信号ＷＤＣを反転させる処理（ステップＳ６１、Ｓ６４、Ｓ６６、Ｓ６８）を行うようにしている。
【０００６】
また、上記イニシャル処理のうち、例えば処理Ｄが繰り返し処理として定義されており、その繰り返し処理に起因して処理Ｄの実行時間が上記ウォッチドッグタイムアウト時間ＴＯを超えてしまうこともある。この場合には、例えば同図２７（ｂ）に示すように、カウンタｉをクリアした後（ステップＳ６７１）、処理Ｄ１の繰り返しにかかる処理（ステップＳ６７２、Ｓ６７３、Ｓ６７５、Ｓ６７６）が例えば３００回繰り返される毎にウォッチドッグ信号ＷＤＣの反転処理（ステップＳ６７４）を実行する。そして、このような反転処理の実行によって、上記ウォッチドッグタイムアウト時間ＴＯ内での同ウォッチドッグ信号ＷＤＣの論理レベルの反転を図るようにしている。
【０００７】
図２８及び図２９は、マイクロコンピュータ１０１によるこうしたウォッチドッグ信号ＷＤＣの反転処理の実行態様と上記異常監視用ＩＣ１０２による同マイクロコンピュータ１０１の異常監視態様とについてその具体例を示したものであり、次に、これら図２８及び図２９を参照して、その監視方法をさらに詳述する。
【０００８】
図２８（ｂ）に示すように、マイクロコンピュータ１０１では、電源が投入されると、上述したイニシャル処理の実行を通じて、ウォッチドッグタイムアウト時間ＴＯよりも短い周期でウォッチドッグ信号ＷＤＣの反転処理を開始する。これにより、マイクロコンピュータ１０１からは、図２８（ｃ）に示される態様でウォッチドッグ信号ＷＤＣが出力される。このとき、異常監視用ＩＣ１０２では、例えば周期Ｘや周期Ｙといったいずれもウォッチドッグタイムアウト時間ＴＯよりも短い周期毎にウォッチドッグ信号ＷＤＣのエッジが検出されてウォッチドッグタイマがリセットされるため、図２８（ａ）に示されるように、異常監視用ＩＣ１０２からリセット信号が出力されることはない。すなわち、マイクロコンピュータ１０１がリセットされることはない。なお、マイクロコンピュータ１０１では、イニシャル処理が完了すると、続いて通常処理が実行される。
【０００９】
一方、図２９（ｂ）に示されるように、上記イニシャル処理のうち、例えば処理Ｃの実行が何らかの原因により中断されたとすると、マイクロコンピュータ１０１では上記ウォッチドッグ信号ＷＤＣの反転処理を実行することができなくなる。この結果、図２９（ｃ）に示されるように、ウォッチドッグタイムアウト時間ＴＯを過ぎても異常監視用ＩＣ１０２ではウォッチドッグ信号ＷＤＣのエッジを検出することができず、図２９（ａ）に示されるように、同時間ＴＯを経過した時点で、異常監視用ＩＣ１０２からマイクロコンピュータ１０１に対しリセット信号が出力される。これにより、マイクロコンピュータ１０１がリセットされる。なお、マイクロコンピュータ１０１では、こうしてリセットされると、図２９（ｂ）に示されるように、イニシャル処理を再実行することとなる。
【特許文献１】特開平７−１１４４９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このように、上記従来のプログラム異常監視方法では、プログラムの実行時間がウォッチドッグタイムアウト時間ＴＯを超える場合、その実行時間を事前に見積もったうえで、ウォッチドッグ信号ＷＤＣの反転処理をプログラムの適切な箇所に挿入する必要がある。このため、プログラムを設計した当初には適切な箇所にウォッチドッグ信号ＷＤＣの反転処理が挿入されていたとしても、プログラムのアルゴリズム変更、あるいはマイクロコンピュータの仕様変更等によって、事後的に、この反転処理の挿入箇所を再設計する必要性に迫られる場合もある。しかも、繰り返し処理の回数が変更されれば、その都度、ウォッチドッグ信号ＷＤＣの反転処理を実行する繰り返し回数をウォッチドッグタイムアウト時間ＴＯとの比較のもとに再設計する必要性も生じる。結局、上記従来のプログラム異常監視方法では、ウォッチドッグ信号ＷＤＣの反転処理を挿入する箇所の管理が非常に煩雑であり、プログラムの保守性の低下が避けられなかった。
【００１１】
なお従来、例えば特許文献１に見られるように、ウォッチドッグ信号の反転処理を最も優先順位の高い割り込み処理の中で行うようにしたプログラム異常監視方法なども知られてはいる。ちなみに、このプログラム異常監視方法では、マイクロコンピュータに対して一定時間間隔毎に割り込みを発生させておき、この割り込みの発生回数が予め設定された回数となるまでに優先順位の低い処理が実行されないとき、ウォッチドッグ信号の反転処理の禁止を通じてマイクロコンピュータをリセットするようにしている。しかし、この場合であれ、上述したプログラムのアルゴリズム変更、あるいはマイクロコンピュータの仕様変更等に際しては優先度の管理も併せて行う必要があり、プログラムの保守性という意味では、やはりその低下が避けられない。
【００１２】
本発明は、こうした実情に鑑みてなされたものであり、その目的は、プログラムの高い保守性を維持しつつ、プログラムの実行異常時には的確にその回復処理を行うことのできるプログラム異常監視方法及びプログラム異常監視装置を提供することにある。
【課題を解決するための手段】
【００１３】
こうした目的を達成するため、請求項１に記載の発明では、プログラムの実行に際してマイクロコンピュータから出力されるウォッチドッグ信号の変化をウォッチドッグタイマにて監視し、このウォッチドッグ信号が上記ウォッチドッグタイマのタイムアウト時間以内に変化しないことに基づいて上記マイクロコンピュータをリセットするプログラム異常監視方法として、上記マイクロコンピュータにより逐次処理される一連の複数のタスクからなる逐次処理プログラムの実行に際し、上記ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みを発生させ、この周期割り込みに基づき上記ウォッチドッグ信号を変化させるとともに、上記逐次処理プログラムの実行が完了されると推定される時間を超えて上記周期割り込みが発生したとき、この周期割り込みの以降の発生を禁止するようにした。
【００１４】
また、請求項１１に記載の発明では、プログラムの実行に際してマイクロコンピュータから出力されるウォッチドッグ信号の変化をウォッチドッグタイマにて監視し、このウォッチドッグ信号が上記ウォッチドッグタイマのマイムアウト時間以内に変化しないことに基づいて上記マイクロコンピュータをリセットするプログラム異常監視装置として、上記マイクロコンピュータにより逐次処理される一連の複数のタスクからなる逐次処理プログラムの実行に際し、上記ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みを発生させ、この周期割り込みに基づき上記ウォッチドッグ信号を変化させるとともに、上記逐次処理プログラムの実行が完了されると推定される時間を超えて上記周期割り込みが発生したとき、この周期割り込みの以降の発生を禁止する制御を行う監視制御手段を備えることとした。
【００１５】
このようなプログラム異常監視方法あるいはプログラム異常監視装置によれば、逐次処理プログラムの実行に際しては、その対応する期間、これと並行して上記ウォッチドッグタイマのタイムアウト時間よりも短い時間間隔にて周期割り込みが発生され、この発生される周期割り込みに基づいてウォッチドッグ信号の変化、具体的には論理レベルの反転が繰り返される。そして、この周期割り込みは上記逐次処理プログラムの実行内容そのものとは無関係に発生されるため、上記逐次処理プログラムの実行中に異常が発生した場合には、同逐次処理プログラムの実行が完了すると推定される時間を超えてこの周期割り込みが発生することともなる。ただし、上記方法あるいは装置ではこの場合、同周期割り込みの以降の発生の禁止を通じてウォッチドッグ信号の変化を禁止するようにしているため、マイクロコンピュータのリセットを通じて同マイクロコンピュータの回復処理が的確に図られるようになる。しかも、上記方法あるいは装置ではこのように、上記逐次処理プログラムの実行とはいわば別系統の周期割り込みに基づいてウォッチドッグ信号を変化させるようにしているため、プログラムのアルゴリズム変更等の必要性が事後的に生じたとしても、前述した従来の電子制御装置のようなウォッチドッグ信号を変化させるための処理に対する管理は一切不要となり、プログラムの高い保守性を維持することができるようにもなる。
【００１６】
また、上記請求項１に記載のプログラム異常監視方法において請求項２に記載の発明によるように、あるいは上記請求項１１に記載のプログラム異常監視装置において請求項１２に記載の発明によるように、上記逐次処理プログラムの実行が完了されると推定される時間を同周期割り込みの発生周期で除算した値として判定値を設定するとともに、上記逐次処理プログラムの実行と並行して上記周期割り込みの発生回数を計数し、この計数する周期割り込みの発生回数が上記設定した判定値を超えることに基づいて上記逐次処理プログラムの実行が完了されると推定される時間を超えて上記周期割り込みが発生した旨を判断するようにすれば、周期割り込みの発生時間という連続的な物理量を発生回数という離散的な数値として扱うことができるため、上記マイクロコンピュータの処理負荷を軽減することができるとともに、上記判断についてもこれを的確に実行することができるようになる。
【００１７】
また、上記請求項２に記載のプログラム異常監視方法において請求項３に記載の発明によるように、あるいは上記請求項１２に記載のプログラム異常監視装置において請求項１３に記載の発明によるように、監視対象とする上記逐次処理プログラムが複数あるときには、それら逐次処理プログラムに対し、それぞれその実行が完了されると推定される時間に基づき、上記判定値を各別に設定することがより望ましい。このようにすれば、プログラムの実行異常が判断されるまでの時間を、各逐次処理プログラムの実行時間の長短や事後的にプログラムのアルゴリズム変更等が見込まれる程度の差に応じて各逐次処理プログラム毎に柔軟に設定することができるようになる。また、逐次処理プログラムのアルゴリズム変更等に伴って上記判定値を再設定する必要性が生じたとしても、その変更等の対象となる逐次処理プログラムの判定値のみを再設定すれば足りるため、プログラムの保守性のさらなる向上も図られるようになる。
【００１８】
また、上記請求項２または上記請求項３に記載のプログラム異常監視方法において請求項４に記載の発明によるように、あるいは上記請求項１２または上記請求項１３に記載のプログラム異常監視装置において請求項１４に記載の発明によるように、監視対象とする逐次処理プログラムの開始処理をトリガとして上記周期割り込みの発生を開始させ、当該逐次処理プログラムの終了処理として同周期割り込みの発生を停止するようにすれば、逐次処理プログラムの実行に際して発生する周期割り込みが同逐次処理プログラムの実行の完了とともに確実に停止するため、上述したプログラムの実行異常の監視が確実に実行されるようになる。また、周期割り込みの発生や停止にかかる処理が逐次処理プログラムの開始処理や終了処理として実行されるため、プログラムの保守性を維持しつつ、上記逐次処理プログラムの構成の簡素化を図ることができるようにもなる。
【００１９】
具体的には、上記請求項４に記載のプログラム異常監視方法において請求項５に記載の発明によるように、上記監視対象とする逐次処理プログラムの開始処理として、
ａ１．上記ウォッチドッグ信号を変化させる処理、及び
ａ２．当該逐次処理プログラムの実行が完了されると推定される時間に基づき上記判定値を設定する処理、及び
ａ３．上記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ａ４．周期タイマに上記周期割り込みの発生周期とする時間を設定してこの周期タイマを起動する処理、
をそれぞれ実行し、当該逐次処理プログラムの終了処理として、
ｂ１．上記ウォッチドッグ信号を変化させる処理、及び
ｂ２．上記周期タイマを停止する処理、
のそれぞれを実行する、あるいは上記請求項１４に記載のプログラム異常監視装置において請求項１５に記載の発明によるように、上記監視対象とする逐次処理プログラムの開始処理を実行する手段として、
Ａ１．上記ウォッチドッグ信号を変化させる手段、及び
Ａ２．当該逐次処理プログラムの実行が完了されると推定される時間に基づき上記判定値を設定する手段、及び
Ａ３．上記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
Ａ４．周期タイマに上記周期割り込みの発生周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備え、当該逐次処理プログラムの終了処理を実行する手段として、
Ｂ１．上記ウォッチドッグ信号を変化させる手段、及び
Ｂ２．上記周期タイマを停止する手段、
をそれぞれ備えることとすれば、上記逐次処理プログラムの実行に際して上記開始処理及び上記終了処理の実行を通じて同逐次処理プログラムの実行異常の監視が的確に図られるようになる。
【００２０】
また、上記請求項２〜５のいずれかに記載のプログラム異常監視方法において請求項６に記載の発明によるように、あるいは上記請求項１２〜１５のいずれかに記載のプログラム異常監視装置において請求項１６に記載の発明によるように、上記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクの実行中に上記判定値を当該タスクの推定実行時間に基づき変更する処理をさらに行う、あるいは同変更を行う手段をさらに備えるようにすれば、特に実行時間が諸条件によって変動するようなタスクが存在する場合であれ、上記設定値の変更によってその変動時間が吸収されるようになるため、プログラムの実行異常の監視もより的確に実行されるようになる。
【００２１】
さらに、上記請求項２〜６のいずれかに記載のプログラム異常監視方法において請求項７に記載の発明によるように、あるいは上記請求項１２〜１６のいずれかに記載のプログラム異常監視装置において請求項１７に記載の発明によるように、上記逐次処理プログラムを構成する複数のタスクのうちの任意のタスクに対し上記周期割り込みにかかる割り込み周期を変更する処理をさらに行う、あるいは同変更を行う手段をさらに備えるようにすれば、各タスク毎、あるいは複数のタスクのブロック毎に上記割り込み周期を異ならしめることができるようになるため、上記逐次処理プログラムの実行中に異常が発生した際には、この割り込み周期の計測を通じて同異常の発生箇所の特定や絞込みを行うことができるようになり、ひいては逐次処理プログラムの異常解析にかかる時間の短縮を図ることができるようにもなる。
【００２２】
具体的には、上記請求項７に記載のプログラム異常監視方法において請求項８に記載の発明によるように、上記逐次処理プログラムの開始処理として、
ｃ１．上記ウォッチドッグ信号を変化させる処理、及び
ｃ２．上記割り込み周期を変更するまでに実行するタスクに対する割り込み周期を第１の周期として設定する処理、及び
ｃ３．上記割り込み周期を変更するまでに実行するタスクの推定実行時間を上記設定した第１の周期で除算した値として上記判定値を第１の値に設定する処理、及び
ｃ４．上記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ｃ５．周期タイマに上記設定した第１の周期とする時間を設定してこの周期タイマを起動する処理、
をそれぞれ実行し、上記任意のタスクに対する上記周期割り込みにかかる割り込み周期を変更する処理として、
ｄ１．上記ウォッチドッグ信号を変化させる処理、及び
ｄ２．上記周期タイマを停止する処理、及び
ｄ３．当該タスクに対する割り込み周期を第２の周期として設定する処理、及び
ｄ４．当該タスクの推定実行時間を上記設定した第２の周期で除算した値として上記判定値を第２の値に設定する処理、及び
ｄ５．上記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
ｄ６．上記周期タイマに前記設定した第２の周期とする時間を設定してこの周期タイマを起動する処理、
のそれぞれを実行する、あるいは上記請求項１７に記載のプログラム異常監視装置において請求項１８に記載の発明によるように、上記監視対象とする逐次処理プログラムの開始処理を実行する手段として、
Ｃ１．上記ウォッチドッグ信号を変化させる手段、及び
Ｃ２．上記割り込み周期を変更するまでに実行するタスクに対する割り込み周期を第１の周期として設定する手段、及び
Ｃ３．上記割り込み周期を変更するまでに実行するタスクの推定実行時間を上記設定した第１の周期で除算した値として上記判定値を第１の値に設定する手段、及び
Ｃ４．上記周期割り込みの発生回数を計数するためのカウンタをクリアする手段、及び
Ｃ５．周期タイマに上記設定した第１の周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備え、上記任意のタスクに対する上記周期割り込みにかかる割り込み周期を変更する処理を実行する手段として、
Ｄ１．上記ウォッチドッグ信号を変化させる手段、及び
Ｄ２．上記周期タイマを停止する手段、及び
Ｄ３．当該タスクに対する割り込み周期を第２の周期として設定する手段、及び
Ｄ４．当該タスクの推定実行時間を上記設定した第２の周期で除算した値として上記判定値を第２の値に設定する手段、及び
Ｄ５．上記周期割り込みの発生回数を計数するためのカウンタをクリアする処理、及び
Ｄ６．上記周期タイマに上記設定した第２の周期とする時間を設定してこの周期タイマを起動する手段、
をそれぞれ備えることとすれば、上述した割り込み周期の変更も容易に、しかも的確に実現されるようになる。
【００２３】
また、上記請求項１〜８のいずれかに記載のプログラム異常監視方法において請求項９に記載の発明によるように、あるいは上記請求項１１〜１８のいずれかに記載のプログラム異常監視装置において請求項１９に記載の発明によるように、上記周期割り込みを発生させるための具体的な手法としては、上記周期割り込みを、フリーランカウンタによるオーバーフロー割り込み、及びフリーランカウンタのカウント値と比較用レジスタにセットされた値とに基づくコンペアマッチ割り込み、及びフリーランカウンタによるデューティー制御に際して周期レジスタにセットされているパルス幅変調周期にフリーランカウンタのカウント値が到達する毎に実行されるパルス幅変調周期割り込み、等々の任意の手法が選択可能である。
【００２４】
また、上記請求項１〜９のいずれかに記載のプログラム異常監視方法において請求項１０に記載の発明によるように、あるいは上記請求項１１〜１９のいずれかに記載のプログラム異常監視装置において請求項２０に記載の発明によるように、監視対象とする上記逐次処理プログラムとしては、その代表的なものに、上記マイクロコンピュータへの給電開始に伴うイニシャル処理プログラム、あるいは同マイクロコンピュータへの給電停止に伴うオフタスク処理プログラム等があり、これらの逐次処理プログラムを対象として上記異常監視を行うことが特に有効である。
【発明を実施するための最良の形態】
【００２５】
（第１の実施の形態）
以下、本発明にかかるプログラム異常監視方法及び該プログラム異常監視方法を実行するプログラム異常監視装置を、車載機器の制御を行う電子制御装置に適用した第１の実施の形態について、図１〜図７を参照して説明する。
【００２６】
この実施の形態にかかるプログラム異常監視装置も、基本的には前述した従来の電子制御装置に搭載されるプログラム異常監視装置と同様、電子制御装置に搭載されたマイクロコンピュータによるプログラムの実行を同じく電子制御装置に搭載された異常監視用ＩＣを通じて監視する。そして、そのプログラムの実行が何らかの原因により中断あるいは停止される等の異常を検知した場合には、異常監視用ＩＣからマイクロコンピュータにリセット信号を出力して回復処理、すなわちプログラムの再実行を促す。
【００２７】
図１は、このプログラム異常監視装置の構成、及び上記マイクロコンピュータの機能的な構成についてその概要を示したものである。まず、この図１を参照しつつ、同プログラム異常監視装置の構成、及びマイクロコンピュータ１を構成する各機能ブロックの内容について説明する。
【００２８】
同図１に示されるように、このプログラム異常監視装置において、マイクロコンピュータ１には、ウォッチドッグタイマを内蔵した異常監視用ＩＣ２が接続されている。この異常監視用ＩＣ２は、前述の従来の異常監視用ＩＣと同様、マイクロコンピュータ１から出力されるウォッチドッグ信号ＷＤＣがその入力端子（ＷＤＣ入力端子）を介して入力され、この入力されるウォッチドッグ信号ＷＤＣの推移に基づいて上記マイクロコンピュータ１によるプログラムの実行異常の有無を監視する。具体的には、上記ウォッチドッグ信号ＷＤＣの論理レベルが論理Ｈ（ハイ）レベルから論理Ｌ（ロー）レベルに移行する際の立下りエッジがウォッチドッグタイムアウト時間（ＷＤタイムアウト時間）ＴＯ以内に検出される都度、内蔵するウォッチドッグタイマをリセットする。一方、何らかのプログラム実行異常に起因して上記立下りエッジがウォッチドッグタイムアウト時間ＴＯ以内に検出されないときには、プログラムの再実行を促すべくリセット信号出力端子からリセット信号を発してマイクロコンピュータ１をリセットする。
【００２９】
一方、同プログラム異常監視装置において、マイクロコンピュータ１は、同図１に示されるように、プログラム実行部１０、周期タイマＴＰ、及び割り込み発生回数カウンタＣＩを備えて構成されている。このうち周期タイマＴＰは、プログラム実行部１０により指示された割り込み周期毎にプログラム実行部１０に対して周期割り込みを発生させるものである。また、上記割り込み発生回数カウンタＣＩは、上記周期タイマＴＰによる周期割り込みの発生回数を計数するものである。そして、プログラム実行部１０は、上記マイクロコンピュータ１への給電開始に伴うイニシャル処理プログラム、車載機器の制御等からなる通常処理プログラム、及び同マイクロコンピュータ１への給電停止に伴うオフタスク処理プログラムをはじめ、各種の処理プログラムを実行する部分である。なお、マイクロコンピュータ１により実行されるこれら処理プログラムのうち、上記イニシャル処理プログラム及び上記オフタスク処理プログラムは、逐次処理される複数のタスクから構成される逐次処理プログラムでもある。
【００３０】
また、上記プログラム実行部１０は、ＷＤＣ開始処理部１１、ＷＤＣ終了処理部１２、タイマ割り込み処理部１３、及び判定値保持部１４等の機能ブロックから構成されており、イニシャル処理プログラム及びオフタスク処理プログラムの実行に際しては、これら各機能ブロックとの協働のもとにウォッチドッグ信号ＷＤＣの制御を行う。なお、本実施の形態のプログラム異常監視装置では、同図１に二点破線にて示すように、上記周期タイマＴＰ、上記割り込み発生回数カウンタＣＩ、ＷＤＣ開始処理部１１、ＷＤＣ終了処理部１２、タイマ割り込み処理部１３、及び判定値保持部１４によって監視制御部（監視制御手段）１５が構成されている。
【００３１】
次に、こうしたプログラム実行部１０により実行される逐次処理プログラムのうち上記イニシャル処理プログラムの内容を、図２〜図５に示すフローチャートを参照しつつさらに詳述する。
【００３２】
図２（ａ）に示されるように、プログラム実行部１０では、イニシャル処理プログラムの実行に際して、まず開始処理としてＷＤＣ開始処理部１１がＷＤＣ開始処理を実行する（ステップＳ１１）。その後、プログラム実行部１０では、処理Ａ（ステップＳ１２）、処理Ｂ（ステップＳ１３）、処理Ｃ（ステップＳ１４）、及び処理Ｄ（ステップＳ１５）を逐次連続して実行（逐次処理）する。また、プログラム実行部１０では、これら処理Ａ〜処理Ｄの実行の後、終了処理としてＷＤＣ終了処理部１２を通じてＷＤＣ終了処理を実行する（ステップＳ１６）。
【００３３】
また、本実施の形態において、上記処理Ｄは、その実行に要する時間が異常監視用ＩＣ２のウォッチドッグタイムアウト時間ＴＯよりも長い処理として定義されているとする。すなわち、処理Ｄは、同図２（ｂ）に示されるように、ステップＳ１５１においてまずカウンタｉをクリアした後、ステップＳ１５２〜Ｓ１５４において処理Ｄ１を１０００回繰り返す処理として定義されている。なお、ここではイニシャル処理に際して逐次処理されるタスクとして処理Ａ〜処理Ｄの４つのタスクを示したが、こうしたタスクの数は一例にすぎない。
【００３４】
次に、プログラム実行部１０を通じて実行される上記ＷＤＣ開始処理について、図３に示すフローチャートを参照しつつ、同処理の処理手順を以下に列記する。
１．ウォッチドッグ信号ＷＤＣを変化させる。すなわち、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図３ステップＳ１１１）。
２．次に、上記イニシャル処理プログラムが正常に実行されているか否かを判断する際の基準値として、後述するタイマ割り込み処理プログラムの実行にあたって用いられる判定値ＪＶを、同イニシャル処理プログラムの実行が完了すると推定される時間に基づき算出する。具体的には、イニシャル処理の実行が完了されると推定される時間よりも若干長い時間をタイムアウト時間Ｅとし、ウォッチドッグタイムアウト時間ＴＯよりも短い時間を周期タイマＴＰによる周期割り込みの発生周期である反転周期Ｔとしたとき、
判定値ＪＶ＝タイムアウト時間Ｅ／反転周期Ｔ
となる関係にて上記判定値ＪＶを設定する（図３ステップＳ１１２）。そして、プログラム実行部１０では、この設定した判定値ＪＶを判定値保持部１４（図１）に記憶する。なお、こうして設定された上記判定値ＪＶは、タイムアウト時間Ｅとなるまでのウォッチドッグ信号ＷＤＣの論理レベルの反転回数を示すこととなる。
３．割り込み発生回数カウンタＣＩをクリアする（図３ステップＳ１１３）。
４．その後、上記反転周期Ｔをタイマ周期として周期タイマＴＰ（図１）を起動する（図３ステップＳ１１４）。これにより、周期タイマＴＰによる周期的な割り込みがマイクロコンピュータ１に対して発生するようになる。
【００３５】
また、プログラム実行部１０では、上記周期タイマＴＰによる周期割り込みが発生する都度、上記イニシャル処理プログラムの実行と並行してタイマ割り込み処理部１３によるタイマ割り込み処理を実行する。ここで、このタイマ割り込み処理について、図４に示すフローチャートを参照しながら、その詳細を説明する。
【００３６】
同図４に示されるように、このタイマ割り込み処理の実行に際してはまず、上記割り込み発生回数カウンタＣＩがインクリメントされる（ステップＳ２１）。すなわち、このステップＳ２１では、周期タイマＴＰによる周期割り込みの発生回数の計数を通じてウォッチドッグ信号ＷＤＣの論理レベルの反転回数が計数される。そして、続くステップＳ２２において、この割り込み発生回数カウンタＣＩのカウント値が上記判定値ＪＶ以上か否か、すなわち、イニシャル処理プログラムの実行がタイムアウト時間Ｅ以内に完了したか否かが判断される。このステップＳ２２において否定判断された場合、続くステップＳ２３においてウォッチドッグ信号ＷＤＣの論理レベルが反転された後、当該処理が終了される。
【００３７】
一方、上記ステップＳ２２において肯定判断された場合、すなわち、タイムアウト時間Ｅを超えて周期割り込みが発生している場合、ステップＳ２４において一切の割り込みが禁止された後、ステップＳ２５において無限ループに入る。これにより、周期割り込みの以降の発生の禁止を通じてウォッチドッグ信号ＷＤＣの論理レベルの反転も以降は禁止され、マイクロコンピュータ１（図１）は、上記異常監視用ＩＣ２から出力されるリセット信号の入力待ちの状態となる。
【００３８】
他方、上記ＷＤＣ終了処理に際しては、図５に示されるように、まずウォッチドッグ信号ＷＤＣの論理レベルが反転され（ステップＳ１６１）、その後、周期タイマＴＰ（図１）が停止される（ステップＳ１６２）。すなわち、イニシャル処理プログラムの実行が完了したときには周期割り込みの発生が停止され、その結果、割り込み発生回数カウンタＣＩのカウントも停止されることとなる。このため、イニシャル処理プログラムの実行が正常に完了すれば、上記割り込み発生回数カウンタＣＩのカウント値が上記判定値ＪＶを超えることはなく、マイクロコンピュータ１が異常監視用ＩＣ２によってリセットされることもない。
【００３９】
このように、本実施の形態にあっては、イニシャル処理プログラムの実行に際し、同イニシャル処理プログラムの実行内容そのものとは無関係にウォッチドッグ信号ＷＤＣを変化させるための処理が行われるようになる。
【００４０】
図６及び図７は、マイクロコンピュータ１によるこうしたウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについてその具体例を示したものであり、次に、これら図６及び図７を併せ参照して、本実施の形態にかかるプログラム異常監視方法をさらに詳述する。なお、ここでは便宜上、上記判定値ＪＶを「７」としている。
【００４１】
＜プログラムの正常実行時＞
まず、マイクロコンピュータ１によるイニシャル処理プログラムの実行が正常に完了した場合のウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについて図６（ａ）〜（ｆ）にしたがって説明する。
【００４２】
図６（ａ）に示すように、マイクロコンピュータ１では、給電が開始されてリセット信号が論理Ｈレベルになると、図６（ｂ）に示すように、上述したイニシャル処理プログラムの実行が開始される。そして、このイニシャル処理プログラムの実行に際してはまず、図６（ｃ）に示されるように、上述したＷＤＣ開始処理（図３）が実行され、このＷＤＣ開始処理の実行を通じて図６（ｄ）に示されるように、タイミングｔ１０にてウォッチドッグ信号ＷＤＣの論理レベルが反転されるとともに、図６（ｅ）に示されるように周期タイマＴＰが起動される。これにより、周期タイマＴＰによる反転周期Ｔ毎の周期割り込みがマイクロコンピュータ１に対して発生することとなる。
【００４３】
その後、マイクロコンピュータ１では、図６（ｂ）に示されるように、処理Ａ〜処理Ｄの各処理（タスク）が逐次処理されるとともに、図６（ｃ）に併せて示されるように、上記周期割り込みの発生に基づいてタイマ割り込み処理（図４）が実行される。このタイマ割り込み処理は、図６（ｅ）に示されるように、上記反転周期Ｔに対応して設定されたタイマ値ＰＥに周期タイマＴＰのタイマ値が到達する各タイミング（タイミングｔ１１〜ｔ１５）でそれぞれ実行される。その結果、図６（ｄ）に示されるように、反転周期Ｔ毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力されることとなる。また、図６（ｆ）に示されるように、こうしたタイマ割り込み処理の実行に伴い、割り込み発生回数カウンタＣＩがインクリメントされる。
【００４４】
そして、イニシャル処理プログラムの実行が正常に完了される場合には、図６（ｃ）に示されるように、マイクロコンピュータ１では、上記処理Ｄが実行された後にＷＤＣ終了処理（図５）が実行される。このＷＤＣ終了処理の実行によって、図６（ｅ）に示されるようにタイミングｔ１６での周期タイマＴＰの停止を通じて周期割り込みの発生が停止されることとなり、その結果、図６（ｆ）に示されるように割り込み発生回数カウンタＣＩのインクリメントも停止される。
【００４５】
なお、イニシャル処理プログラムの実行が完了すると、引き続き通常処理プログラムの実行が開始される。この通常処理プログラムの実行に際しては、例えば前記特許文献１に記載の方法等の周知の方法にてプログラムの実行異常が監視される。
【００４６】
＜プログラムの実行異常の発生時＞
次に、マイクロコンピュータ１によるイニシャル処理プログラムの実行中に何らかの原因により中断、あるいは停止される等の異常が生じた場合のウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについて図７（ａ）〜（ｆ）にしたがって説明する。
【００４７】
この場合も、同図７（ａ）〜（ｆ）に示されるように、タイミングｔ２０において周期タイマＴＰが起動されると、それ以降、反転周期Ｔをタイマ周期とする周期割り込みが発生する。ただし、図７（ｂ）に示されるように、イニシャル処理プログラムの実行中、例えば処理Ｃの実行中に発生した異常によって同処理Ｃの実行が中断されたとすると、その後、上記ＷＤＣ終了処理が実行されることはなくなる。このため、先の図６のタイミングｔ１１〜ｔ１５に対応しているとするタイミングｔ２１〜ｔ２５以降においても周期割り込みが発生することとなり、図７（ｆ）に示されるように、この周期割り込みに基づいて割り込み発生回数カウンタＣＩも引き続きインクリメントされる。そして、割り込み発生回数カウンタＣＩがタイミングｔ２６、ｔ２７においてそれぞれインクリメントされると、そのカウント値が上記判定値ＪＶ以上となり、マイクロコンピュータ１は無限ループへと入ってリセット信号の入力待機状態になる（図４参照）。そしてこのときには、図７（ｅ）に示されるように、周期割り込みの発生も停止される。
【００４８】
このため、結局は、タイミングｔ２８にて、図７（ｄ）に示されるように、ウォッチドッグ信号ＷＤＣの変化が停止される以前の直近の立ち下がりエッジ、すなわちタイミングｔ２５からの経過時間がウォッチドッグタイムアウト時間ＴＯを超過することとなり、これに伴い、図７（ａ）に示されるように、異常監視用ＩＣ２からリセット信号が入力される。これにより、マイクロコンピュータ１はリセットされ、図７（ｂ）に示される態様で、イニシャル処理プログラムが再実行される。
【００４９】
以上説明したように、本実施の形態にかかるプログラム異常監視方法及びプログラム異常監視装置によれば、以下のような効果を得ることができるようになる。
（１）イニシャル処理プログラムの実行に際して、その開始処理であるＷＤＣ開始処理において周期割り込みを発生させ、この周期割り込みに基づいてウォッチドッグ信号ＷＤＣの論理レベルを反転させるようにした。そして、同イニシャル処理プログラムの終了処理であるＷＤＣ終了処理において、上記周期割り込みの発生を停止するようにした。また、こうした周期割り込みの発生回数を計数するようにし、同周期割り込みの発生回数が、イニシャル処理プログラムの実行が完了されると推定される時間に基づいて設定された判定値ＪＶ以上となったとき、同周期割り込みの発生の停止を通じてマイクロコンピュータ１をリセットするようにした。このため、イニシャル処理プログラムの実行異常が発生した場合には、マイクロコンピュータ１のリセットを通じて同マイクロコンピュータのリセット、すなわち回復処理が確実に図られるようになる。
【００５０】
（２）また、こうして周期割り込みに基づく割り込み処理の実行を通じてウォッチドッグ信号ＷＤＣの論理レベルを反転させるようにしたため、ウォッチドッグ信号ＷＤＣの状態に関する管理が一切不要となり、前述したプログラムの変更等に際しても、その高い保守性を維持することができるようになる。
【００５１】
（３）また、イニシャル処理プログラムの実行異常の発生の有無の判断を、周期割り込みの発生回数、すなわち割り込み発生回数カウンタＣＩのカウント値と同カウント値に対応した判定値ＪＶといった離散的な数値同士の比較のもとに行うようにした。このため、マイクロコンピュータ１の処理負荷を軽減することができるとともに、上記判断も的確に実行することができるようになる。ちなみに、周期割り込みの発生時間を求める方法としては、この他にも、例えば外部タイマＩＣを別途設けてこの外部タイマＩＣによって上記周期割り込みの発生時間を直接計測する方法もある。ただし、この方法では、マイクロコンピュータ１の他に別途外部タイマＩＣが必要となるため、マイクロコンピュータ１を含めたハードウェア構成が複雑なものとなってしまう。その点、このように周期割り込みの発生回数に基づいてイニシャル処理プログラムの実行異常を監視する方法によれば、マイクロコンピュータ１の処理負荷を軽減することができるとともに、マイクロコンピュータ１を含めたハードウェア構成の簡素化を図ることもできる。
（第２の実施の形態）
次に、本発明を具体化した第２の実施の形態について説明する。本実施の形態のプログラム異常監視装置の構成も、基本的には先の第１の実施の形態にかかるプログラム異常監視装置の構成に準じたものとなっている。ただし、本実施の形態のプログラム異常監視装置では、複数の逐次処理プログラム、例えば前述したイニシャル処理プログラム及びオフタスク処理プログラムに対し、それぞれの実行が完了されると推定される時間に基づき、前記判定値を各別に設定するようにしている。以下、こうしたプログラム異常監視装置について、先の図１、図４、図５及び図８〜図１３を参照しながら説明する。
【００５２】
まず、本実施の形態にかかるプログラム実行部１０が実行する処理の内容を、前述のイニシャル処理プログラム及びオフタスク処理プログラムを例にとって、先の図５、及び図８〜図１１に示すフローチャートを参照しつつ説明する。なお、ここでは、便宜上、オフタスク処理プログラムの実行時間とイニシャル処理プログラムの実行時間との間には、「オフタスク処理プログラムの実行時間＞イニシャル処理プログラムの実行時間」なる関係があるものとする。
【００５３】
図８に示されるように、プログラム実行部１０では、イニシャル処理プログラムの実行に際して、まず開始処理としてＷＤＣ開始処理部１１（図１）が第１ＷＤＣ開始処理を実行し（ステップＳ３１）、その後、処理Ａ１（ステップＳ３２）、処理Ｂ１（ステップＳ３３）、処理Ｃ１（ステップＳ３４）、及び処理Ｄ１（ステップＳ３５）を逐次処理する。また、プログラム実行部１０では、これら処理Ａ１〜処理Ｄ１の実行の後、先の第１の実施の形態同様、終了処理としてＷＤＣ終了処理部１２（図１）を通じてＷＤＣ終了処理（図５）を実行する（ステップＳ３６）。
【００５４】
また、図９に示されるように、オフタスク処理プログラムの実行に際しては、まず開始処理として上記ＷＤＣ開始処理部１１（図１）が第２ＷＤＣ開始処理を実行する（ステップＳ４１）。そしてその後、処理Ａ２（ステップＳ４２）、処理Ｂ２（ステップＳ４３）、処理Ｃ２（ステップＳ４４）、及び処理Ｄ２（ステップＳ４５）を逐次処理する。また、上記イニシャル処理プログラムと同様、これら処理Ａ２〜処理Ｄ２の実行の後、終了処理としてＷＤＣ終了処理部１２（図１）を通じてＷＤＣ終了処理（図５）を実行する（ステップＳ４６）。
【００５５】
このように、本実施の形態にかかるプログラム実行部１０は、イニシャル処理プログラムの実行に際してはその開始処理として第１ＷＤＣ開始処理を実行し、オフタスク処理プログラムの実行に際してはその開始処理として第２ＷＤＣ開始処理を実行する。ここで、これら第１ＷＤＣ開始処理及び第２ＷＤＣ開始処理について、図１０及び図１１に示すフローチャートを参照しつつ、その処理手順を以下に列記する。
＜第１ＷＤＣ開始処理＞
図１０に示されるように、第１ＷＤＣ開始処理に際しては、
１．まず、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図１０ステップＳ３１１）。
２．イニシャル処理プログラムの実行時間よりも若干長い時間として予め設定されたイニシャル処理時間ＩＴからタイムアウト時間Ｅ１を求める（図１０ステップＳ３１２）。これにより、イニシャル処理プログラムに固有のタイムアウト時間Ｅ１が設定される。
３．次に、上記タイムアウト時間Ｅ１と前述した反転周期Ｔとに基づいて判定値ＪＶ１を設定する。具体的には、
判定値ＪＶ１＝タイムアウト時間Ｅ１／反転周期Ｔ
となる関係にて上記判定値ＪＶ１を設定する（図１０ステップＳ３１３）。これにより、イニシャル処理プログラムに固有の判定値ＪＶ１が設定される。また、プログラム実行部１０では、この設定した判定値ＪＶ１を判定値保持部１４（図１）に記憶する。
４．割り込み発生回数カウンタＣＩ（図１）をクリアする（図１０ステップＳ３１４）。
５．その後、上記反転周期Ｔをタイマ周期として周期タイマＴＰ（図１）を起動する（図１０ステップＳ３１５）。これにより、周期タイマＴＰによる周期割り込みがマイクロコンピュータ１に対して発生するようになる。
＜第２ＷＤＣ開始処理＞
他方、図１１に示されるように、第２ＷＤＣ開始処理に際しては、
１．まず、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図１１ステップＳ４１１）。
２．続いて、オフタスク処理プログラムの実行時間よりも若干長い時間として予め設定されたオフタスク処理時間ＯＴからタイムアウト時間Ｅ２を求める（図１１ステップＳ４１２）。これにより、オフタスク処理プログラムに固有のタイムアウト時間Ｅ２が設定される。
３．上記タイムアウト時間Ｅ２と前述した反転周期Ｔとに基づいて判定値ＪＶ２を設定する。具体的には、
判定値ＪＶ２＝タイムアウト時間Ｅ２／反転周期Ｔ
となる関係にて上記判定値ＪＶ２を設定する（図１１ステップＳ４１３）。これにより、オフタスク処理プログラムに固有の判定値ＪＶ２が設定される。また、プログラム実行部１０では、この設定した判定値ＪＶ２を判定値保持部１４（図１）に記憶する。
４．割り込み発生回数カウンタＣＩ（図１）をクリアする（図１１ステップＳ４１４）。
５．上記反転周期Ｔをタイマ周期として周期タイマＴＰ（図１）を起動する（図１１ステップＳ４１５）。これにより、周期タイマＴＰによる周期割り込みがマイクロコンピュータ１に対して発生するようになる。
【００５６】
このように、本実施の形態にかかるプログラム実行部１０では、これら第１ＷＤＣ開始処理や第２ＷＤＣ開始処理の実行を通じて、イニシャル処理プログラム及びオフタスク処理プログラムに対し、各別に判定値を設定する。そして、プログラム実行部１０は、こうして設定された判定値と割り込み発生回数カウンタＣＩのカウント値との比較のもとに、イニシャル処理プログラムやオフタスク処理プログラム毎にそのプログラムの実行異常の有無を判断することとなる。
【００５７】
図１２は、本実施の形態にかかるマイクロコンピュータ１によるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについてその具体例を示したものである。ここでは便宜上、「判定値ＪＶ１＜判定値ＪＶ２」としている。以下、この図１２を参照しつつ、本実施の形態にかかるプログラム異常監視方法についてさらに詳述する。なお、本実施の形態にかかるプログラム異常監視方法についても、基本的には先の第１の実施の形態にかかるプログラム異常監視方法に準じている。
【００５８】
図１２（ａ）に示されるように、この場合も、マイクロコンピュータ１では、給電が開始されてリセット信号が論理Ｈレベルになると、図１２（ｂ）に示すように、上述したイニシャル処理プログラムの実行が開始される。そして、このイニシャル処理プログラムの実行に際してはまず、図１２（ｃ）に示されるように、上述した第１ＷＤＣ開始処理（図１０）が実行される。これにより、図１２（ｆ）に示されるように、イニシャル処理プログラムの実行時間に基づいて設定された判定値ＪＶ１が同イニシャル処理プログラムの実行異常の有無を判断するための判定値として設定される。また、この第１ＷＤＣ開始処理の実行を通じて図１２（ｄ）に示されるように、ウォッチドッグ信号ＷＤＣの論理レベルが反転されるとともに、図１２（ｅ）に示されるように周期タイマＴＰが起動され、同周期タイマＴＰによる反転周期Ｔ毎の周期割り込みがマイクロコンピュータ１に対して発生することとなる。
【００５９】
その後、マイクロコンピュータ１では、図１２（ｂ）に示されるように、処理Ａ１〜処理Ｄ１の各処理（タスク）が逐次処理されるとともに、図１２（ｃ）に併せて示されるように、上記周期割り込みの発生に基づいてタイマ割り込み処理（図４）が実行される。その結果、図１２（ｄ）に示されるように、反転周期Ｔ毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力される。また、図１２（ｆ）に示されるように、こうしたタイマ割り込み処理が実行されると、割り込み発生回数カウンタＣＩがインクリメントされることとなる。
【００６０】
そして、イニシャル処理プログラムの実行が正常に完了される場合には、図１２（ｃ）に示されるように、マイクロコンピュータ１では、上記処理Ｄ１が実行された後にＷＤＣ終了処理（図５）が実行されることとなり、このＷＤＣ終了処理の実行を通じて周期割り込みの発生が停止される。この周期割り込みの発生の停止に伴い、図１２（ｆ）に示されるように、割り込み発生回数カウンタＣＩのインクリメントも停止される。
【００６１】
なお、もしこうしたイニシャル処理プログラムの実行中に異常が発生して、上記割り込み発生回数カウンタＣＩのカウント値が上記判定値ＪＶ１を超過することとなれば、マイクロコンピュータ１は無限ループへと入ってリセット信号の入力待機状態になる（図４参照）。そして、異常監視用ＩＣ２からリセット信号が入力されると、マイクロコンピュータ１はリセットされ、イニシャル処理プログラムが再実行される。
【００６２】
他方、図１２（ｂ）に示すように、マイクロコンピュータ１では、給電が停止されると、オフタスク処理プログラムが実行される。このオフタスク処理プログラムの実行に際してはまず、図１２（ｃ）に示されるように、上述した第２ＷＤＣ開始処理（図１１）が実行される。これにより、図１２（ｆ）に示されるように、オフタスク処理プログラムの実行時間に基づいて設定された判定値ＪＶ２が同オフタスク処理プログラムの実行異常を判断するための判定値として設定される。すなわち、この時点で、判定値ＪＶ１は判定値ＪＶ２に変更される。また、この第２ＷＤＣ開始処理の実行を通じて図１２（ｄ）に示されるように、ウォッチドッグ信号ＷＤＣの論理レベルが反転されるとともに、図１２（ｅ）に示されるように周期タイマＴＰが起動され、同周期タイマＴＰによる反転周期Ｔ毎の周期割り込みがマイクロコンピュータ１に対して発生することとなる。
【００６３】
その後、マイクロコンピュータ１では、図１２（ｂ）に示されるように、処理Ａ２〜処理Ｄ２の各処理（タスク）が逐次処理されるとともに、図１２（ｃ）に併せて示されるように、上記周期割り込みの発生に基づいてタイマ割り込み処理（図４）が実行される。その結果、この場合も、図１２（ｄ）に示されるように、反転周期Ｔ毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力されることとなる。また、図１２（ｆ）に示されるように、こうしたタイマ割り込み処理の実行に伴い、割り込み発生回数カウンタＣＩがインクリメントされる。
【００６４】
そして、オフタスク処理プログラムの実行が正常に完了される場合には、図１２（ｃ）に示されるように、マイクロコンピュータ１では、上記処理Ｄ２が実行された後にＷＤＣ終了処理（図５）が実行され、このＷＤＣ終了処理の実行を通じて周期割り込みの発生が停止される。この周期割り込みの発生の停止に伴い、図１２（ｆ）に示されるように、割り込み発生回数カウンタＣＩのインクリメントも停止される。
【００６５】
なお、もしこうしたオフタスク処理プログラムの実行中に異常が発生して、上記割り込み発生回数カウンタＣＩのカウント値が上記判定値ＪＶ２を超過することとなれば、上記イニシャル処理プログラムの実行異常時と同様、マイクロコンピュータ１は無限ループへと入ってリセット信号の入力待機状態になる（図４参照）。そして、異常監視用ＩＣ２からリセット信号が入力されると、マイクロコンピュータ１はリセットされ、必要な回復処理、例えばオフタスク処理プログラムが再実行される。
【００６６】
以上説明したように、本実施の形態にかかるプログラム異常監視方法及びプログラム異常監視装置によれば、上記（１）〜（３）の効果に加えて、以下のような新たな効果を得ることができるようになる。
【００６７】
（４）イニシャル処理プログラム及びオフタスク処理プログラム対して、プログラムの実行異常の有無を判断するための判定値を各別に設定するようにした。このため、プログラムの実行異常が判断されるまでの時間を、イニシャル処理プログラム及びオフタスク処理プログラムのそれぞれに対して、その実行時間の長短や事後的にプログラムのアルゴリズム変更等が見込まれる程度の差に応じて柔軟に各別に設定することができるようになる。また、プログラムのアルゴリズム変更等に伴って上記判定値を再設定する必要性が生じたとしても、その変更等の対象となる逐次処理プログラムの判定値のみ、例えばイニシャル処理プログラムであればイニシャル処理プログラムの判定値のみを再設定すれば足りるため、プログラムの保守性のさらなる向上も図られるようになる。
【００６８】
特に、イニシャル処理プログラムは全ての処理に先立って実行されるプログラムであって、このイニシャル処理プログラムの実行中における異常の発生は以降の通常処理プログラムの実行にも影響を及ぼすことになる。このため、イニシャル処理プログラムの実行異常に対してはマイクロコンピュータ１の早期のリセットが必要とされる。そこで、上記イニシャル処理時間ＩＴを短めに設定すれば、イニシャル処理プログラムの実行中に異常が生じた際に、マイクロコンピュータ１を早期にリセットすることができるようになる。一方、オフタスク処理プログラムは、通常処理プログラムの実行の後に実行されるプログラムであり、このオフタスク処理プログラムの実行中に異常が発生したとしても、その異常の影響は限定的である。また、オフタスク処理プログラムの実行時には、プログラム異常監視装置を含めた電子制御装置の動作が安定していることもあり、同オフタスク処理プログラムの実行中に異常が発生したとしても、マイクロコンピュータ１の回復処理に対する緊急性もそれほど高くない。そこで、この場合には、上記オフタスク処理時間ＯＴを長めに設定することとすれば、オフタスク処理プログラムの実行異常の発生からマイクロコンピュータ１がリセットされるまでの時間が長くなるため、このリセットがかかるまでの時間を利用してフェールセーフ処理や各種設定値の保存処理等を実行することもできる。
（第３の実施の形態）
次に、本発明を具体化した第３の実施の形態について説明する。本実施の形態のプログラム異常監視装置の構成も、基本的には先の第１の実施の形態にかかるプログラム異常監視装置の構成に準じたものとなっている。ただし、本実施の形態のプログラム異常監視装置では、タスクの実行に際して、そのとき推定される同タスクの実行時間に基づいて前記判定値を変更するようにしている。以下、こうしたプログラム異常監視装置について、先の図１、図１１及び図１３、図１４を参照しながら説明する。なお、ここでは、一例として、先のオフタスク処理プログラムのうちの処理Ｃ２の処理が、車載機器の制御に際して異常が生じた際にその異常コードをＲＯＭ等の書き込み速度の遅いメモリへ書き込み処理であるとする。この処理Ｃ２について、図１３に示すフローチャートを参照しつつ、同処理の処理手順を説明する。
【００６９】
この処理Ｃ２の実行に際してはまず、通常処理プログラムの実行中に異常が発生したか否か、すなわちメモリ書込条件が成立したか否かが判断される（ステップＳ４４１）。このステップＳ４４１においてメモリ書込条件が不成立と判断される場合、当該処理が終了される。
【００７０】
一方、上記ステップＳ４４１において上記メモリ書込条件が成立したと判断される場合、続くステップＳ４４２において、上記異常コードのメモリへの書き込み作業に際して必要とされる推定作業時間を含めた処理Ｃ２の実行時間よりも若干長めに予め設定されたオフタスク延長処理時間ＤＴからタイムアウト時間Ｅ３が求められる。そして、ステップＳ４４３において、この求めたタイムアウト時間Ｅ３と前述の反転周期Ｔとに基づいて判定値ＪＶ３が設定される。具体的には、
判定値ＪＶ３＝タイムアウト時間Ｅ３／反転周期Ｔ
となる関係にて上記判定値ＪＶ３が設定される。すなわち、通常処理プログラムの実行中に異常が発生した場合には、この処理Ｃ２の実行を通じて判定値ＪＶ２が判定値ＪＶ３に変更されることとなる。そして、ステップＳ４４４において異常コードのメモリへの書き込みが行われた後、当該処理が終了される。
【００７１】
また、本実施の形態にかかるプログラム実行部１０も、イニシャル処理プログラムやオフタスク処理プログラムの実行と並行してウォッチドッグ信号ＷＤＣの反転処理を行うとともに、先の第２の実施の形態に準じてこれらプログラムの実行異常の有無を監視する。ここでは、同反転処理及びプログラムの実行異常の有無の監視態様についてはその詳細な説明を割愛することとし、以下、通常処理プログラムの実行異常の発生に基づいて処理Ｃ２の実行を通じて判定値ＪＶ２が上記判定値ＪＶ３に変更される様子を、図１４（ａ）〜（ｆ）に示すタイミングチャートを参照しつつ、さらに詳述する。
【００７２】
図１４（ｆ）に示されるように、通常処理プログラムの実行中に異常が発生したとしても、オフタスク処理プログラムの実行に際して前述の第２ＷＤＣ開始処理（図１１）が実行されると、同オフタスク処理プログラムの実行異常の有無を判断するための判定値としてまず判定値ＪＶ２が設定される。ただし、このように通常処理プログラムの実行異常が発生した場合には、その後の処理Ｃ２の実行に際して、例えばタイミングｔ２０において上述のメモリ書込条件が成立する。このため、図１４（ｆ）に示されるように、同タイミングｔ２０において、オフタスク延長処理時間ＤＴに基づいて設定された判定値ＪＶ３（＞判定値ＪＶ２）が同オフタスク処理プログラムの実行異常の有無を判断するための判定値として設定される。すなわち、このタイミングｔ２０以降は、この判定値ＪＶ３と割り込み発生回数カウンタＣＩのカウント値との比較のもとに、オフタスク処理プログラムの実行異常の有無が判断されることとなる。
【００７３】
なお、判定値ＪＶ２を判定値ＪＶ３に変更するための条件や該条件が成立したときに実行する処理の内容については任意である。また、判定値ＪＶ３は判定値ＪＶ２よりも小さい値でもよい。例えば、特定の条件が成立したときに不要となる処理を処理Ｃ２の処理の一部に含んでいる場合には、その不要となる処理を除いた処理Ｃ２の実行時間に基づいてタイムアウト時間Ｅ３を予め設定しておき、上記特定の条件が成立した際、このタイムアウト時間Ｅ３に基づいて判定値ＪＶ３を設定するようにしてもよい。また、判定値を変更するための条件の数、それら条件の成立時に変更される判定値の数も任意である。
【００７４】
以上説明したように、本実施の形態にかかるプログラム異常監視方法及びプログラム異常監視装置によれば、上記（１）〜（４）の効果に加えて、以下のような新たな効果を得ることができるようになる。
【００７５】
（５）通常処理プログラムの実行中に異常が発生した場合には、オフタスク処理プログラムの処理Ｃ２の実行中に、同異常の発生を示す旨の異常コードをＲＯＭに記憶するために必要とされる時間を含めた同オフタスク処理プログラムの実行時間に基づいて判定値ＪＶ３を設定するようにした。そして、それ以降、この判定値ＪＶ３と割り込み発生回数カウンタＣＩのカウント値との比較のもとに、オフタスク処理プログラムの実行異常の有無を判断するようにした。これにより、通常処理プログラムの実行結果に応じて処理Ｃ２の実行時間が変動するような場合でも、判定値の変更を通じてその実行時間の変動が吸収されるようになり、プログラムの実行異常の監視もより的確に実行されるようになる。
（第４の実施の形態）
次に、本発明を具体化した第４の実施の形態について説明する。本実施の形態のプログラム異常監視装置の構成も、基本的には先の第１の実施の形態にかかるプログラム異常監視装置の構成に準じたものとなっている。ただし、本実施の形態のプログラム異常監視装置では、イニシャル処理プログラムの実行中、あるいはオフタスク処理プログラムの実行中に、周期割り込みにかかる割り込み周期を変更するようにしている。まず、こうしたプログラム異常監視装置において、本実施の形態にかかるプログラム実行部１０（図１）が実行する処理のうち、イニシャル処理プログラムを例にとって、図１５〜図１８にフローチャートとして示し、このフローチャートを参照しながら説明する。
【００７６】
図１５に示されるように、このプログラム実行部１０では、イニシャル処理プログラムの実行に際して、まず開始処理としてＷＤＣ開始処理部１１（図１）がＷＤＣ開始処理を実行し（ステップＳ５１）、その後、処理Ａ（ステップＳ５２）及び処理Ｂ（ステップＳ５３）を逐次処理する。そして、周期割り込みにかかる周期を変更するための処理として第１反転周期変更処理を実行し（ステップＳ５４）、その後、処理Ｃを実行する（ステップＳ５５）。さらに、同じく周期割り込みにかかる周期を変更するための処理として第２反転周期変更処理を実行し（ステップＳ５６）、その後、処理Ｄを実行する（ステップＳ５７）。そしてその後、終了処理としてＷＤＣ終了処理部１２（図１）を通じてＷＤＣ終了処理（図５）を実行する（ステップＳ５８）。
【００７７】
次に、本実施の形態にかかるプログラム実行部１０を通じて実行される上記ＷＤＣ開始処理について、図１６に示すフローチャートを参照しつつ、同処理の処理手順を以下に列記する。
１．本実施の形態においてもまず、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図１６ステップＳ５１１）。
２．処理Ａ及び処理Ｂに対して予め割り当てられた反転周期から反転周期Ｔ１を求める（図１６ステップＳ５１２）。
３．処理Ａ及び処理Ｂの総実行時間よりも若干長い時間として予め設定された見積処理時間からタイムアウト時間Ｅ１を求める（図１６ステップＳ５１３）。
４．次に、上記タイムアウト時間Ｅ１と上記反転周期Ｔ１とに基づいて判定値ＪＶ１を設定する。具体的には、
判定値ＪＶ１＝タイムアウト時間Ｅ１／反転周期Ｔ１
となる関係にて上記判定値ＪＶ１を設定する（図１６ステップＳ５１４）。そして、プログラム実行部１０では、この設定した判定値ＪＶ１を判定値保持部１４（図１）に記憶する。
５．割り込み発生回数カウンタＣＩ（図１）をクリアする（図１６ステップＳ５１５）。
６．その後、上記反転周期Ｔ１をタイマ周期として周期タイマＴＰ（図１）を起動する（図１６ステップＳ５１６）。これにより、マイクロコンピュータ１に対して反転周期Ｔ１毎に周期割り込みが発生するようになる。
【００７８】
次に、上記第１反転周期変更処理及び第２反転周期変更処理を図１７及び図１８にフローチャートとして示し、このフローチャートを参照しつつ、両処理の処理手順を以下にそれぞれ列記する。
＜第１反転周期変更処理＞
１．この場合もまず、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図１７ステップＳ５４１）。
２．次に、周期タイマＴＰを停止する（図１７ステップＳ５４２）。
３．処理Ｃに対して予め割り当てられた反転周期から反転周期Ｔ２を求める（図１７ステップＳ５４３）。
４．処理Ｃの実行時間よりも若干長い時間として予め設定された見積処理時間からタイムアウト時間Ｅ２を求める（図１７ステップＳ５４４）。
５．そして、上記タイムアウト時間Ｅ２と上記反転周期Ｔ２とに基づいて判定値ＪＶ２を設定する。具体的には、
判定値ＪＶ２＝タイムアウト時間Ｅ２／反転周期Ｔ２
となる関係にて上記判定値ＪＶ２を設定する（図１７ステップＳ５４５）。そして、プログラム実行部１０では、この設定した判定値ＪＶ２を判定値保持部１４（図１）に記憶する。
６．割り込み発生回数カウンタＣＩ（図１）をクリアする（図１７ステップＳ５４６）。
７．その後、上記反転周期Ｔ２をタイマ周期として周期タイマＴＰ（図１）を起動する（図１７ステップＳ５４７）。これにより、マイクロコンピュータ１に対して反転周期Ｔ２毎に周期割り込みが発生するようになる。
＜第２反転周期変更処理＞
１．この第２反転周期変更処理に際してもまず、ウォッチドッグ信号ＷＤＣの論理レベルを反転させる（図１８ステップＳ５６１）。
２．そして、周期タイマＴＰを停止する（図１８ステップＳ５６２）。
３．処理Ｄに対して予め割り当てられた反転周期から反転周期Ｔ３を求める（図１８ステップＳ５６３）。
４．処理Ｄの実行時間よりも若干長い時間として予め設定された見積処理時間からタイムアウト時間Ｅ３を求める（図１８ステップＳ５６４）。
５．次に、上記タイムアウト時間Ｅ３と上記反転周期Ｔ３とに基づいて判定値ＪＶ３を設定する。具体的には、
判定値ＪＶ３＝タイムアウト時間Ｅ３／反転周期Ｔ３
となる関係にて上記判定値ＪＶ３を設定する（図１８ステップＳ５６５）。そして、プログラム実行部１０では、この設定した判定値ＪＶ３を判定値保持部１４（図１）に記憶する。
６．割り込み発生回数カウンタＣＩ（図１）をクリアする（図１８ステップＳ５６６）。
７．その後、上記反転周期Ｔ３をタイマ周期として周期タイマＴＰ（図１）を起動する（図１８ステップＳ５６７）。これにより、マイクロコンピュータ１に対して反転周期Ｔ３毎に周期割り込みが発生するようになる。
【００７９】
また、図１９及び図２０は、マイクロコンピュータ１によるこうしたウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについてその具体例を示したものであり、次に、これら図１９及び図２０を併せ参照して、その監視方法をさらに詳述する。
【００８０】
＜プログラムの正常実行時＞
まず、マイクロコンピュータ１によるイニシャル処理プログラムの実行が正常に完了した場合のウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについて図１９（ａ）〜（ｆ）にしたがって説明する。
【００８１】
図１９（ａ）に示すように、この場合も、マイクロコンピュータ１では、給電が開始されてリセット信号が論理Ｈレベルになると、図１９（ｂ）に示すように、上述したイニシャル処理プログラムの実行が開始される。そして、このイニシャル処理プログラムの実行に際してはまず、図１９（ｃ）に示されるように、上述したＷＤＣ開始処理（図１６）が実行され、このＷＤＣ開始処理の実行を通じて図１９（ｄ）に示されるように、ウォッチドッグ信号ＷＤＣの論理レベルが反転されるとともに、図１９（ｅ）に示されるように周期タイマＴＰが起動される。これにより、周期タイマＴＰによる反転周期Ｔ１毎の周期割り込みがマイクロコンピュータ１に対して発生することとなる。そして、図１９（ｃ）に示されるように、先の第１の実施の形態と同様、この周期割り込みに基づいてタイマ割り込み処理（図４）が実行されることとなり、図１９（ｄ）に示されるように、反転周期Ｔ１毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力される。またこうしてＷＤＣ開始処理が実行されると、図１９（ｆ）に示されるように、その後に実行される処理Ａ及び処理Ｂの実行異常の有無を判断するための判定値として判定値ＪＶ１が設定される。なお、図１９（ｆ）に示されるように、タイマ割り込み処理が実行されると、割り込み発生回数カウンタＣＩがインクリメントされる。
【００８２】
その後、マイクロコンピュータ１では、図１９（ｂ）に示されるように、処理Ａ及び処理Ｂが逐次処理された後、上記第１反転周期変更処理（図１７）が実行される。これにより、周期割り込みにかかる割り込み周期が、反転周期Ｔ１から反転周期Ｔ２に変更される。その結果、図１９（ｄ）に示されるように、反転周期Ｔ２毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力されることとなる。またこうして第１反転周期変更処理が実行されると、図１９（ｆ）に示されるように、判定値ＪＶ１が判定値ＪＶ２に変更される。すなわち、その後に実行される処理Ｃの実行異常を判定するための判定値として判定値ＪＶ２が設定されることとなる。なおこの場合も、図１９（ｆ）に示されるように、タイマ割り込み処理が実行されると、割り込み発生回数カウンタＣＩがインクリメントされる。ただし、周期割り込みにかかる割り込み周期が周期Ｔ１から周期Ｔ２に変更されるため、インクリメントの際の時間間隔は同反転周期Ｔ２に対応して変更されることとなる。
【００８３】
そして、図１９（ｂ）に示されるように、マイクロコンピュータ１では、処理Ｃが実行された後、第２反転周期変更処理が実行される。これにより、周期割り込みにかかる割り込み周期は、反転周期Ｔ２から反転周期Ｔ３に変更される。その結果、図１９（ｄ）に示されるように、反転周期Ｔ３毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力されることとなる。
【００８４】
このように、処理Ａ及び処理Ｂが実行されているときには反転周期Ｔ１毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが出力され、処理Ｃが実行されているときには反転周期Ｔ２毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが出力される。また、処理Ｄが実行されているときには、反転周期Ｔ３毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが出力されることとなる。すなわち、ウォッチドッグ信号ＷＤＣの反転周期は、処理Ａ及び処理Ｂ、処理Ｃ、処理Ｄの各処理毎に対応付けられる。
【００８５】
またこうして第２反転周期変更処理が実行されると、図１９（ｆ）に示されるように、判定値ＪＶ２が判定値ＪＶ３に変更される。すなわち、その後に実行される処理Ｄの実行異常を判定するための判定値として判定値ＪＶ３が設定される。なおこの場合も、図１９（ｆ）に示されるように、タイマ割り込み処理が実行されると、割り込み発生回数カウンタＣＩがインクリメントされる。ただし、周期割り込みにかかる割り込み周期が周期Ｔ２から周期Ｔ３に変更されるため、インクリメントの時間間隔は同反転周期Ｔ３に対応して変更されることとなる。
【００８６】
そして、イニシャル処理プログラムの実行が正常に完了される場合には、図１９（ｃ）に示されるように、マイクロコンピュータ１では、上記処理Ｄが実行された後にＷＤＣ終了処理（図５）が実行される。このＷＤＣ終了処理の実行によって、図１９（ｅ）に示されるように周期タイマＴＰの停止を通じて周期割り込みの発生が停止されることとなり、その結果、図１９（ｆ）に示されるように割り込み発生回数カウンタＣＩのインクリメントも停止される。
【００８７】
＜プログラムの異常実行時＞
次に、マイクロコンピュータ１によるイニシャル処理プログラムの実行中に何らかの原因により中断、あるいは停止される等の異常が生じた場合のウォッチドッグ信号ＷＤＣの反転処理の実行態様と、上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様とについて図２０（ａ）〜（ｆ）にしたがって説明する。ここでは、イニシャル処理プログラムのうち処理Ｃの実行中に異常が生じた場合を例にとって、ウォッチドッグ信号ＷＤＣの反転処理の実行態様、及び上記異常監視用ＩＣ２による同マイクロコンピュータ１の異常監視態様について説明する。
【００８８】
上述したように、イニシャル処理プログラムの実行に際して第１反転周期変更処理が実行されると、図２０（ｄ）に示されるように、反転周期Ｔ２毎に論理レベルが反転するウォッチドッグ信号ＷＤＣが異常監視用ＩＣ２に対して出力される。そしてこのとき、この処理Ｃの実行異常を判断するための判定値としては判定値ＪＶ２が設定される。ここで、処理Ｃの実行中に異常が生じたとすると、その後に第２反転周期変更処理が実行されることがなくなるため、この反転周期Ｔ２毎に論理レベルが反転するウォッチドッグ信号ＷＤＣがその後も継続して出力されることとなる。このため、このウォッチドッグ信号ＷＤＣの反転周期を測定することにより、同反転周期の測定値からイニシャル処理プログラムのうち処理Ｃの実行中に異常が発生したことを特定することができるようになる。
【００８９】
また、図２０（ｆ）に示されるように、割り込み発生回数カウンタＣＩのカウント値が上記判定値ＪＶ２を超過することとなれば、マイクロコンピュータ１は無限ループへと入ってリセット信号の入力待機状態になる（図４参照）。そしてその後、異常監視用ＩＣ２からリセット信号が入力されると、マイクロコンピュータ１はリセットされる。
【００９０】
以上説明したように、本実施の形態にかかるプログラム異常監視方法及びプログラム異常監視装置によれば、上記（１）〜（５）の効果に加えて、以下のような新たな効果を得ることができるようになる。
【００９１】
（６）イニシャル処理プログラムを構成する各処理の実行に際して、周期割り込みにかかる割り込み周期、すなわちウォッチドッグ信号ＷＤＣの周期を変更するようにした。これにより、イニシャル処理プログラムの実行中に異常が発生した際には、この割り込み周期の計測、あるいはウォッチドッグ信号ＷＤＣの周期の計測を通じて同異常の発生箇所の特定や絞込みを行うことができるようになる。
（他の実施の形態）
なお、この発明にかかるプログラム異常監視方法及び該プログラム異常監視方法を実行するプログラム異常監視装置は上記各実施の形態に限定されるものではなく、上記各実施の形態を適宜変更した例えば次のような形態として実現することもできる。
【００９２】
・マイクロコンピュータ１に対して周期割り込みを発生させる方法は、上記各実施の形態における周期タイマＴＰを用いる方法に限定されず、種々の方法を採用することができる。例えば、いわゆるタイマーオーバーフロー割り込みによって周期的な割り込みを発生させるようにしてもよい。以下、このタイマオーバーフロー割り込みを発生させる方法について、図２１及び図２２を参照しつつ説明する。
【００９３】
図２１は、マイクロコンピュータ１の内部構成のうち、周期割り込みを発生させるための構成について、その一例を示したものである。
同図２１に示されるように、マイクロコンピュータ１は、周期割り込みを発生させるための構成として、中央演算処理装置（ＣＰＵ）２０とタイマ部２１とを備えている。そして、これら中央演算処理装置２０及びタイマ部２１には、共通のクロック信号が入力されている。なお、上記中央演算処理装置２０は、上述した各種の処理を実行する部分でもある。
【００９４】
またこのうち、上記タイマ部２１は、フリーランカウンタ部２１ａ及び割り込み発生部２１ｂを備えている。フリーランカウンタ部２１ａは、例えば２バイトのカウンタからなり、上記クロック信号のエッジを計数する部分である。また、割り込み発生部２１ｂは、上記フリーランカウンタ部２１ａが桁あふれ（オーバーフロー）したときに中央演算処理装置２０に対して割り込み信号を出力する部分である。ここで、上記フリーランカウンタ部２１ａ及び割り込み発生部２１ｂによって周期割り込みが発生する様子を、図２２に示すタイムチャートにしたがって説明する。
【００９５】
図２２にタイミングｔ１〜ｔ３として示すように、フリーランカウンタ部２１ａのカウント値は、「ＦＦＦＦ（１６進）」を超えると桁あふれを起こして「００００（１６進）」にリセットされる。このとき、割り込み発生部２１ｂは、割り込み信号を上記マイクロコンピュータ１に対して出力する。これにより、中央演算処理装置２０には、タイミングｔ１〜ｔ３の各タイミングにおいて割り込みが発生する。また、こうしたフリーランカウンタ部２１ａの桁あふれは周期的に発生することから、中央演算処理装置２０には周期割り込みが発生することとなる。
【００９６】
このようにフリーランカウンタ部２１ａの桁あふれに基づく割り込み、いわゆるタイマーオーバーフロー割り込みによって周期割り込みを発生させることとすれば、マイクロコンピュータ１のリソースを節約することができるようになる。ここで、このタイマーオーバーフロー割り込みによるとマイクロコンピュータ１のリソースが節約できる点について、他の割り込みの発生方法についても補足的に説明しつつ、さらに詳述する。なお、ここでは、その他の周期割り込みの発生方法として、コンペアマッチ割り込みとパルス幅変調周期割り込みとを例にとって、それぞれ説明することとする。
【００９７】
まず、コンペアマッチ割り込みの発生態様の一例について、図２３にタイムチャートとして示し、このタイムチャートを参照しつつ説明する。
このコンペアマッチ割り込みによって周期割り込みを発生させるために、タイマ部２１には、図２１に二点鎖線で付記するレジスタ部（比較用レジスタ）２１ｃが設けられる。このレジスタ部２１ｃには、周期割り込みにかかる割り込み周期として中央演算処理装置２０から指示される同割り込み周期に対応するカウント値、すなわち上記各実施の形態でいう反転周期Ｔに対応するカウント値が設定値として記憶される。そして、割り込み発生部２１ｂでは、フリーランカウンタ部２１ａのカウント値とレジスタ部２１ｃに記憶された設定値とを比較し、両者が一致するタイミング、すなわち図２３に示すタイミングｔ１〜ｔ６の各タイミングにおいて割り込み信号をマイクロコンピュータ１に対して出力する。また、割り込み発生部２１ｂでは、こうして割り込み信号を出力した後、上記レジスタ部２１ｃの設定値を該設定値分だけインクリメントしてこのインクリメントされた設定値を新たな設定値としてレジスタ部２１ｃに記憶する。これにより、レジスタ部２１ｃの設定値は該設定値分ずつ変化することとなり、中央演算処理装置２０には周期割り込みが発生することとなる。
【００９８】
このように、コンペアマッチ割り込みによってもマイクロコンピュータ１に対して周期割り込みを発生させることはできる。ただし、この方法の場合、レジスタ部２１ｃが構成要素として必要となる。この点、上述のオーバーフロー割り込みによって周期割り込みを発生させることとすれば、このレジスタ部２１ｃが不要となるため、マイクロコンピュータ１のリソースを節約することができる。
【００９９】
次に、パルス幅変調周期割り込みの発生態様の一例について、図２４にタイムチャートとして示し、このタイムチャートを参照しつつ説明する。
このパルス幅変調周期割り込みによって周期割り込みを発生させる場合、タイマ部２１には、周期レジスタ及びＤｕｔｙレジスタからなるレジスタ部２１ｃが設けられる。このうち、周期レジスタには、割り込み周期に対応するカウント値、すなわち上記各実施の形態でいう反転周期Ｔに対応するカウント値が設定値として記憶される。一方、Ｄｕｔｙレジスタには、デューティー制御に用いられるデューティー比が設定される。ここでは、一例として、周期レジスタの設定値が「２０００（１６進）」であり、Ｄｕｔｙレジスタの設定値が「６０％」である場合の周期割り込みの発生態様を図２４に示す。
【０１００】
同図２４に示されるように、割り込み発生部２１ｂは、レジスタ部２１ｃの設定値をパルス幅変調周期としてフリーランカウンタ部２１ａによるデューティー制御を実行する。また、割り込み発生部２１ｂは、フリーランカウンタ部２１ａのカウント値がレジスタ部２１ｃの設定値と一致すタイミング、すなわちタイミングｔ１〜ｔ３の各タイミングにおいて割り込み信号を中央演算処理装置２０に対して出力する。これにより、中央演算処理装置２０には周期割り込みが発生することとなる。
【０１０１】
このように、パルス幅変調周期割り込みによってもマイクロコンピュータ１に対して周期割り込みを発生させることはできる。ただし、この方法の場合も、レジスタ部２１ｃが構成要素として必要となる。しかも、特にこの方法の場合、周期レジスタ及びＤｕｔｙレジスタの２つのレジスタが必要となる。この点からも、上述のオーバーフロー割り込みによって周期割り込みを発生させる方法が、マイクロコンピュータ１のリソースを節約する面からも有利である。もっとも、実用に際しては、電子制御装置としてのそれぞれの環境に応じた任意の周期割り込み手法を採用することができる。
【０１０２】
・本発明にかかるプログラム異常監視方法、あるいはプログラム異常監視装置による監視対象は、イニシャル処理プログラムやオフタスク処理プログラムには限定されない。すなわち、マイクロコンピュータにより逐次処理される一連の複数のタスクからなる逐次処理プログラムであれば、任意の逐次処理プログラムに対して適用可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明にかかるプログラム異常監視装置の第１の実施の形態についてその構成例を示すブロック図。
【図２】（ａ）は、同実施の形態のマイクロコンピュータを構成するプログラム実行部が実行する逐次処理プログラムのうち、イニシャル処理プログラムについてその処理手順を示すフローチャート、（ｂ）は、同イニシャル処理プログラムのうち、処理Ｄについてその処理手順例を示すフローチャート。
【図３】図２（ａ）に例示したイニシャル処理プログラムのうちのＷＤＣ開始処理についてその処理手順を示すフローチャート。
【図４】同実施の形態のプログラム実行部が実行するタイマ割り込み処理についてその処理手順を示すフローチャート。
【図５】図２（ａ）に例示したイニシャル処理プログラムのうちのＷＤＣ終了処理についてその処理手順を示すフローチャート。
【図６】（ａ）〜（ｆ）は、同実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図７】（ａ）〜（ｆ）は、同実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図８】本発明にかかるプログラム異常監視装置の第２の実施の形態について、マイクロコンピュータを構成するプログラム実行部が実行する逐次処理プログラムのうちのイニシャル処理プログラムの処理手順を示すフローチャート。
【図９】同第２の実施の形態のプログラム実行部が実行する逐次処理プログラムのうちのオフタスク処理プログラムについてその処理手順を示すフローチャート。
【図１０】図８に例示したイニシャル処理プログラムのうちの第１ＷＤＣ開始処理についてその処理手順を示すフローチャート。
【図１１】図９に例示したオフタスク処理プログラムのうちの第２ＷＤＣ開始処理についてその処理手順を示すフローチャート。
【図１２】（ａ）〜（ｆ）は、同第２の実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図１３】本発明にかかるプログラム異常監視装置の第３の実施の形態について、マイクロコンピュータを構成するプログラム実行部が実行する逐次処理プログラムのうちのイニシャル処理プログラムを構成する処理Ｃ２の処理手順を示すフローチャート。
【図１４】（ａ）〜（ｆ）は、同第３の実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図１５】本発明にかかるプログラム異常監視装置の第４の実施の形態について、マイクロコンピュータを構成するプログラム実行部が実行する逐次処理プログラムのうちのイニシャル処理プログラムの処理手順を示すフローチャート。
【図１６】図１５に例示したイニシャル処理プログラムのうちのＷＤＣ開始処理についてその処理手順を示すフローチャート。
【図１７】図１５に例示したイニシャル処理プログラムのうちの第１反転周期変更処理についてその処理手順を示すフローチャート。
【図１８】図１５に例示したイニシャル処理プログラムのうちの第２反転周期変更処理についてその処理手順を示すフローチャート。
【図１９】（ａ）〜（ｆ）は、同第４の実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図２０】（ａ）〜（ｆ）は、同第４の実施の形態にかかるプログラム異常監視装置のマイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図２１】上記各実施の形態のプログラム異常監視装置において、周期割り込みを発生させるためのマイクロコンピュータの構成例を示すブロック図。
【図２２】オーバーフロー割り込みによる周期割り込みの発生態様を示すタイムチャート。
【図２３】コンペアマッチ割り込みによる周期割り込みの発生態様を示すタイムチャート。
【図２４】パルス幅変調周期割り込みによる周期割り込みの発生態様を示すタイムチャート。
【図２５】従来のプログラム異常監視装置の構成例を示すブロック図。
【図２６】（ａ）は、同プログラム異常監視装置において、マイクロコンピュータに対するリセット信号の推移を示すタイムチャート、（ｂ）は、同マイクロコンピュータから出力されるウォッチドッグ信号の推移を示すタイムチャート。
【図２７】（ａ）は、マイクロコンピュータが実行するプログラムのうち、イニシャル処理プログラムについてその処理手順を示すフローチャート、（ｂ）は、同イニシャル処理プログラムのうち、処理Ｄについてその処理手順例を示すフローチャート。
【図２８】（ａ）〜（ｃ）は、マイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【図２９】（ａ）〜（ｃ）は、マイクロコンピュータによるウォッチドッグ信号ＷＤＣの反転処理の実行態様と、異常監視用ＩＣによる同マイクロコンピュータの異常監視態様とについて、その具体例を示すタイムチャート。
【符号の説明】
【０１０４】
１、１０１…マイクロコンピュータ、２、１０２…異常監視用ＩＣ、１０…プログラム実行部、１１…ＷＤＣ開始処理部、１２…ＷＤＣ終了処理部、１３…タイマ割り込み処理部、１４…判定値保持部、１５…監視制御部、２０…中央演算処理装置（ＣＰＵ）、２１…タイマ部、２１ａ…フリーランカウンタ部、２１ｂ…割り込み発生部、２１ｃ…レジスタ部、ＴＰ…周期タイマ、ＣＩ…割り込み発生回数カウンタ。
【図１】
2006338605.tif 000003
【図２】
2006338605.tif 000004
【図３】
2006338605.tif 000005
【図４】
2006338605.tif 000006
【図５】
2006338605.tif 000007
【図６】
2006338605.tif 000008
【図７】
2006338605.tif 000009
【図８】
2006338605.tif 000010
【図９】
2006338605.tif 000011
【図１０】
2006338605.tif 000012
【図１１】
2006338605.tif 000013
【図１２】
2006338605.tif 000014
【図１３】
2006338605.tif 000015
【図１４】
2006338605.tif 000016
【図１５】
2006338605.tif 000017
【図１６】
2006338605.tif 000018
【図１７】
2006338605.tif 000019
【図１８】
2006338605.tif 000020
【図１９】
2006338605.tif 000021
【図２０】
2006338605.tif 000022
【図２１】
2006338605.tif 000023
【図２２】
2006338605.tif 000024
【図２３】
2006338605.tif 000025
【図２４】
2006338605.tif 000026
【図２５】
2006338605.tif 000027
【図２６】
2006338605.tif 000028
【図２７】
2006338605.tif 000029
【図２８】
2006338605.tif 000030
【図２９】
2006338605.tif 000031