(57)【要約】【課題】組込ソフトウェアが異常動作したときは確実にリセット信号を出力し、組込ソフトウェアが正常動作している間はリセット信号を不要に発生させないようにすることのできる技術を提供することを目的とする。【解決手段】本発明に係るＰ−ＲＵＮ信号出力装置は、優先度の異なる複数の組込プログラムの実行状態を監視し、システムクロックが示す時刻と各組込プログラムの前回実行時刻との差分が所定閾値を超えている場合は、Ｐ−ＲＵＮ信号を出力しない。また、Ｐ−ＲＵＮ信号を出力するか否かを判断してＰ−ＲＵＮ信号を出力する処理を、組込プログラムのなかで最も優先度の高いもの以上の優先度で実行する。【選択図】図４
2012069063.tif 000002
【特許請求の範囲】
【請求項１】
組込プログラムが動作している旨を通知するＰ−ＲＵＮ信号を出力する装置であって、
前記組込プログラムを実行する演算部と、
前記組込プログラムの動作を監視するプログラム動作監視部と、
前記組込プログラムを実行するタイミングの基準となるクロック信号を取得するクロック信号取得部と、
を備え、
前記プログラム動作監視部は、
実行優先度の異なる複数の前記組込プログラムのうち少なくともいずれかについて、前回実行時刻を取得するステップと、
前記クロック信号が示す時刻と前記組込プログラムの前回実行時刻との差分を求めるステップと、
前記差分が所定閾値を超えている場合は前記Ｐ−ＲＵＮ信号を出力せず、前記差分が前記所定閾値を超えていない場合は前記Ｐ−ＲＵＮ信号を出力する、Ｐ−ＲＵＮ信号出力ステップと、
を有するＰ−ＲＵＮ信号出力処理を、複数の前記組込プログラムのなかで最も優先度が高いもの以上の優先度で実行する
ことを特徴とするＰ−ＲＵＮ信号出力装置。
【請求項２】
前記プログラム動作監視部は、
前記組込プログラムの実行間隔よりも長い前記所定閾値を用いて、前記Ｐ−ＲＵＮ信号出力ステップを実行する
ことを特徴とする請求項１記載のＰ−ＲＵＮ信号出力装置。
【請求項３】
前記プログラム動作監視部は、
前記Ｐ−ＲＵＮ信号出力処理を記述したＰ−ＲＵＮ信号出力プログラムを用いて構成されており、
前記演算部は、
前記Ｐ−ＲＵＮ信号出力プログラムを、複数の前記組込プログラムのなかで最も優先度が高いもの以上の優先度で実行する
ことを特徴とする請求項１または２記載のＰ−ＲＵＮ信号出力装置。
【請求項４】
前記Ｐ−ＲＵＮ信号出力プログラムは、複数の前記組込プログラムのなかで最も優先度が高いものの一部として構成されている
ことを特徴とする請求項３記載のＰ−ＲＵＮ信号出力装置。
【請求項５】
前記プログラム動作監視部は、
複数の前記組込プログラムの全てについて、前記Ｐ−ＲＵＮ信号出力処理を実行する
ことを特徴とする請求項１から４のいずれか１項記載のＰ−ＲＵＮ信号出力装置。
【請求項６】
請求項１から５のいずれか１項記載のＰ−ＲＵＮ信号出力装置と、
前記クロック信号を出力するシステムクロックと、
前記Ｐ−ＲＵＮ信号出力装置が前記Ｐ−ＲＵＮ信号を所定時間以上出力しなかったとき前記Ｐ−ＲＵＮ信号出力装置を初期化する初期化処理部と、
を備えたことを特徴とする組込制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込プログラムの動作状態を監視するために用いるＰ−ＲＵＮ（Ｐｒｏｇｒａｍ  ＲＵＮｎｉｎｇ）信号を出力する技術に関するものである。
【背景技術】
【０００２】
自動車等に搭載されるＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）の組込ソフトウェアにおいて、外部要因（外来ノイズ）や内部要因（ソフトウェア不正処理、ソフトウェアバグなど）によるソフトウェア暴走（期待通りのソフトウェア動作とならない状態）を監視する技術として、ＷＤＴ（Ｗａｔｃｈ  Ｄｏｇ  Ｔｉｍｅｒ）を用いるものが知られている。
【０００３】
この技術では、組込ソフトウェアが暴走した時はＷＤＴがリセット信号を出力し、ＥＣＵを自動復帰させる。Ｐ−ＲＵＮ信号は、組込ソフトウェアが正常動作している間はＷＤＴによるリセットを発生させないように、ＷＤＴを定期的に初期化する役割を果たす。
【０００４】
ＷＤＴとＰ−ＲＵＮ信号を用いて組込ソフトウェアの動作を監視する技術では、ＷＤＴの内部でタイマ（あるいはカウンタ）を動作させておく。ソフトウェアが正常動作している間は、ＷＤＴ内部のタイマが所定の上限値に達する前にＰ−ＲＵＮ信号をＷＤＴに対して出力し、ＷＤＴのタイマをクリアする。ソフトウェアに異常があってタイマがクリアされずに所定の上限値に達した場合、ＷＤＴはマイコンをリセットするなどのリカバリー処理を実行する。
【０００５】
ソフトウェアが正常動作している時は、Ｐ−ＲＵＮ信号を一定周期でＷＤＴに供給する。ソフトウェアが暴走している時は、Ｐ−ＲＵＮ信号が停止または規定外の周波数となってＷＤＴに供給される。ＷＤＴは、Ｐ−ＲＵＮ信号が規定周波数で供給されていない状態となった場合、リセット信号を出力してＥＣＵを自動復帰させる。Ｐ−ＲＵＮ判定回路は通常、マイコンとは別の回路に構成される。ただし、ハードウェアとしては同一ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）上に実装される場合もある。
【０００６】
下記特許文献１には、割込処理と通常処理の双方について組込ソフトウェアの動作を監視する手法が記載されている。同文献では、Ｐ−ＲＵＮ信号を出力する処理は通常処理内で実行される。また、Ｐ−ＲＵＮ信号を出力すべきか否かを判断する処理は、割込処理内で実施している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−２８２１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記特許文献１に記載されている技術では、組込ソフトウェアが暴走したとき、またはハードウェアに異常が生じたときなどに、割込処理が実行されない場合がある。このとき通常処理内のみでＰ−ＲＵＮ信号を出力するようにしていると、割込処理の異常を検出することができない可能性がある。
【０００９】
本発明は、上記のような課題を解決するためになされたものであり、組込ソフトウェアが異常動作したときは確実にリセット信号を出力し、組込ソフトウェアが正常動作している間はリセット信号を不要に発生させないようにすることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るＰ−ＲＵＮ信号出力装置は、優先度の異なる複数の組込プログラムの実行状態を監視し、システムクロックが示す時刻と各組込プログラムの前回実行時刻との差分が所定閾値を超えている場合は、Ｐ−ＲＵＮ信号を出力しない。また、Ｐ−ＲＵＮ信号を出力するか否かを判断してＰ−ＲＵＮ信号を出力する処理を、組込プログラムのなかで最も優先度の高いもの以上の優先度で実行する。
【発明の効果】
【００１１】
本発明に係るＰ−ＲＵＮ信号出力装置は、システムクロックと組込プログラムの前回実行時刻との差分を所定閾値と比較してＰ−ＲＵＮ信号を出力する処理を、最も高い優先度で実行する。これにより、通常処理および割込処理がどのようなタイミングで実行される場合でも、確実に異常動作を検出し、Ｐ−ＲＵＮ信号を出力することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１に係る組込制御装置１００の機能ブロック図である。
【図２】ＣＰＵ１１２が通常処理プログラムを実行する際のフローチャートである。
【図３】ＣＰＵ１１２が１０ｍｓ割込処理プログラムを実行する際のフローチャートである。
【図４】ＣＰＵ１１２が２ｍｓ割込処理プログラムを実行する際のフローチャートである。
【図５】ＣＰＵ１１２およびプログラム監視部１１３が実行する各処理の実行タイミングを示すタイミングチャートである。
【図６】１０ｍｓ割込処理が異常停止している場合の各処理の実行タイミングを示すタイミングチャートである。
【図７】特許文献１におけるＰ−ＲＵＮ信号出力処理の実行タイミングを示すタイミングチャートである。
【図８】実施形態２に係る組込制御装置１００の機能ブロック図である。
【図９】ＷＤＴ１１４をマイクロコンピュータ１１０から切り離し、電源ＩＣ一体型ＷＤＴ１１５を代わりに用いた構成例を示す図である。
【図１０】ＷＤＴ１１４をマイクロコンピュータ１１０から切り離し、ＷＤＴ専用ＩＣ１１６を代わりに用いた構成例を示す図である。
【図１１】ＷＤＴ１１４と併用して、電源ＩＣ一体型ＷＤＴ１１５をマイクロコンピュータ１１０の外部に設けた構成例を示す図である。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
図１は、本発明の実施形態１に係る組込制御装置１００の機能ブロック図である。組込制御装置１００は、電子機器などの動作を制御する組込装置であり、マイクロコンピュータ１１０を備える。マイクロコンピュータ１１０はさらに、システムクロック１１１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１２、プログラム動作監視部１１３、ＷＤＴ１１４を備える。
【００１４】
システムクロック１１１は、ＣＰＵ１１２が組込プログラムを実行するタイミングの基準となる時刻を示すクロック信号を出力する。
【００１５】
ＣＰＵ１１２は、システムクロック１１１が出力するクロック信号が示す時刻を基準として、組込プログラムを実行する。ここでいう組込プログラムは、組込制御装置１００が電子機器などを制御する動作を記述した複数の制御プログラムであり、後述するように複数の優先度で実行される。
【００１６】
ＣＰＵ１１２は、図示しないメモリに、後述する通常処理プログラム、１０ｍｓ割込処理プログラム、２ｍｓ割込処理プログラムを保持しており、これらプログラムを実行することにより、電子機器の制御処理を実行する。
【００１７】
プログラム動作監視部１１３は、ＣＰＵ１１２が実行する組込プログラムの実行状態を監視する。ここでいう監視とは、組込プログラムが所定のタイミングで正常に実行されているか否かを監視することをいう。プログラム動作監視部１１３は、組込プログラムが正常に実行されている間はＰ−ＲＵＮ信号を所定間隔でＷＤＴ１１４に出力し、正常に実行されていない時間が所定時間以上継続したときはＰ−ＲＵＮ信号の出力を停止する。
【００１８】
ＷＤＴ１１４は、内部にタイマまたはカウンタを備え、Ｐ−ＲＵＮ信号を受け取るごとにそのタイマまたはカウンタを初期化する。ＷＤＴ１１４は、内部タイマまたはカウンタの値が所定上限値以上になると、ＲＥＳＥＴ信号をＣＰＵ１１２に対して出力し、ＣＰＵ１１２を初期化する。すなわち、組込プログラムが正常動作している間は継続的にＰ−ＲＵＮ信号を受け取るのでＲＥＳＥＴ信号は発生せず、組込プログラムが正常動作していない状態が所定時間以上継続するとＷＤＴ１１４内部のタイマまたはカウンタが所定上限値に達してＲＥＳＥＴ信号が出力される。
【００１９】
プログラム動作監視部１１３は、その機能を実現する回路デバイスなどのハードウェアとして構成することもできるし、ＣＰＵ１１２などの演算装置とその動作を規定するソフトウェアとして構成することもできる。
【００２０】
本実施形態１における「演算部」は、ＣＰＵ１１２が相当する。「初期化処理部」は、ＷＤＴ１１４が相当する。
【００２１】
以上、組込制御装置１００の構成を説明した。次に、組込制御装置１００の動作を説明する。なお、以下の説明では、記載の便宜上、各組込プログラムを動作主体として説明する場合があるが、実際にこれら組込プログラムを実行するのはＣＰＵ１１２であることを付言しておく。
【００２２】
図２は、ＣＰＵ１１２が通常処理プログラムを実行する際のフローチャートである。ここでいう通常処理とは、割込処理以外の、比較的優先度の低い処理をさす。以下、図２の各ステップについて説明する。
（図２：ステップＳ２００）
マイクロコンピュータ１１０に電源が投入されると、ＣＰＵ１１２は動作を開始する。ＣＰＵ１１２は、所定のタスク管理機構の制御手順にしたがって、通常処理を実行するための組込プログラム（通常処理プログラム）を起動することにより、本フローチャートを開始する。
【００２３】
（図２：ステップＳ２０１〜Ｓ２０２）
ＣＰＵ１１２は、プログラム動作監視部１１３を初期化し、Ｐ−ＲＵＮ信号の出力間隔を初期状態にリセットする（Ｓ２０１）。次にＣＰＵ１１２は、システムクロック１１１から取得する基準時刻の値を初期化する（Ｓ２０２）。
（図２：ステップＳ２０３）
ＣＰＵ１１２は、通常処理プログラムを実行する時間間隔を取得するため、システムクロック１１１のクロック値を取得する。ここで取得したクロック値は、ＣＰＵ１１２が備えるメモリ（図示せず）などに記憶しておく。
【００２４】
（図２：ステップＳ２０４）
ＣＰＵ１１２は、通常処理プログラムの記述にしたがって、通常処理を実行する。後述する２ｍｓ割込処理または１０ｍｓ割込処理を実行すべきタイミングではこれら割込処理を優先し、空き時間ができた時点で本ステップの通常処理を実行する。
（図２：ステップＳ２０５）
ＣＰＵ１１２は、通常処理を終了する場合は本フローチャートを終了し、継続する場合はステップＳ２０３に戻って同様の処理を繰り返す。
【００２５】
図３は、ＣＰＵ１１２が１０ｍｓ割込処理プログラムを実行する際のフローチャートである。ここでいう１０ｍｓ割込処理とは、ＣＰＵ１１２が１０ｍｓ毎に起動する割込処理のことをいう。ＣＰＵ１１２は、通常処理よりも高い優先度で１０ｍｓ割込処理を実行する。以下、図３の各ステップについて説明する。
（図３：ステップＳ３００）
ＣＰＵ１１２は、所定のタスク管理機構の制御手順にしたがって、１０ｍｓ割込処理を実行するための組込プログラム（１０ｍｓ割込処理プログラム）を１０ｍｓ毎に起動することにより、本フローチャートを開始する。
【００２６】
（図３：ステップＳ３０１）
ＣＰＵ１１２は、１０ｍｓ割込処理プログラムを実行する時間間隔を取得するため、システムクロック１１１のクロック値を取得する。ここで取得したクロック値は、ＣＰＵ１１２が備えるメモリなどに記憶しておく。
（図３：ステップＳ３０２）
ＣＰＵ１１２は、１０ｍｓ割込処理プログラムの記述にしたがって、１０ｍｓ割込処理を実行する。後述する２ｍｓ割込処理を実行すべきタイミングではこれを優先し、空き時間ができた時点で本ステップの１０ｍｓ割込処理を実行する。
【００２７】
図４は、ＣＰＵ１１２が２ｍｓ割込処理プログラムを実行する際のフローチャートである。ここでいう２ｍｓ割込処理とは、ＣＰＵ１１２が２ｍｓ毎に起動する割込処理のことをいう。ＣＰＵ１１２は、通常処理および１０ｍｓ割込処理よりも高い優先度で２ｍｓ割込処理を実行する。以下、図４の各ステップについて説明する。
（図４：ステップＳ４００）
ＣＰＵ１１２は、所定のタスク管理機構の制御手順にしたがって、２ｍｓ割込処理を実行するための組込プログラム（２ｍｓ割込処理プログラム）を２ｍｓ毎に起動することにより、本フローチャートを開始する。
【００２８】
（図４：ステップＳ４０１）
ＣＰＵ１１２は、プログラム動作監視部１１３に対し、通常処理の実行間隔が規定範囲に収まっているか否かを判定するように指示する。プログラム動作監視部１１３は、現在のシステムクロック１１１のクロック値と、ステップＳ２０３で取得した値との差分を求める。ＣＰＵ１１２は、その差分と所定の閾値を比較することにより、通常処理を前回実行したときから経過した時間が同閾値を超えているか否かを判定する。前回実行時からの経過時間が閾値以内に収まっていればステップＳ４０２へ進み、超えていればステップＳ４０４へスキップする。
（図４：ステップＳ４０２）
ＣＰＵ１１２は、プログラム動作監視部１１３に対し、１０ｍｓ割込処理の実行間隔が規定範囲に収まっているか否かを判定するように指示する。プログラム動作監視部１１３は、現在のシステムクロック１１１のクロック値と、ステップＳ３０１で取得した値との差分を求める。ＣＰＵ１１２は、その差分と所定の閾値を比較することにより、１０ｍｓ処理を前回実行したときから経過した時間が同閾値を超えているか否かを判定する。前回実行時からの経過時間が閾値以内に収まっていればステップＳ４０３へ進み、超えていればステップＳ４０４へスキップする。
（図４：ステップＳ４０１〜４０２：補足）
これらのステップは、通常処理および１０ｍｓ割込処理が所定の実行間隔で周期的に実行されているか否かを判断する意義を有する。これら処理が異常停止した場合、前回実行時からの経過時間が本来の実行周期よりも過大に長くなるため、プログラム動作監視部１１３はこれら処理が正常実行されていないことが分かる。
【００２９】
（図４：ステップＳ４０３）
ＣＰＵ１１２は、ステップＳ４０１〜Ｓ４０２の結果により、通常処理および１０ｍｓ処理が正常実行されていることが分かるので、Ｐ−ＲＵＮ信号を出力するようにプログラム動作監視部１１３へ指示する。プログラム動作監視部１１３は、ＷＤＴ１１４に対してＰ−ＲＵＮ信号を出力する。
（図４：ステップＳ４０４）
ＣＰＵ１１２は、２ｍｓ割込処理プログラムの記述にしたがって、２ｍｓ割込処理を実行する。
【００３０】
図５は、ＣＰＵ１１２およびプログラム監視部１１３が実行する各処理の実行タイミングを示すタイミングチャートである。ここでは全ての処理が正常動作している場合の例を示す。以下、図５に示す各処理の実行タイミングについて説明する。
【００３１】
システムクロックは、継続的にクロック信号を出力する。クロック信号が示す時刻は、各プログラムを実行する際の基準時刻となる。無限にクロック値を増加させることはできないので、ＣＰＵ１１２は適当なタイミングでシステムクロックを初期化し、クロック値を０に戻して改めて計時を開始させる。
【００３２】
通常処理は、１０ｍｓ割込処理および２ｍｓ割込処理を実行していないタイミングで随時実行されるため、その実行タイミングは必ずしも規則的にはならない。ＣＰＵ１１２はステップＳ２０３において、通常処理を実行するクロック値を取得する。通常処理を実行するタイミングは断続的であるため、通常処理の実行時刻も断続的な値となる。
【００３３】
１０ｍｓ割込処理は１０ｍｓ毎に実行されるため、正常に実行されていれば実行間隔は１０ｍｓ前後の値となる。
【００３４】
プログラム動作監視部１１３は、２ｍｓ割込処理のなかで起動されるため、プログラム監視部１１３が各組込プログラムの実行状態を監視し、ステップＳ４０３でＰ−ＲＵＮを出力するのは、略２ｍｓ毎となる。なお図５では、信号が反転する毎にＰ−ＲＵＮ信号を出力しているものとして表記した。以下の図６〜図７でも同様である。
【００３５】
図６は、１０ｍｓ割込処理が異常停止している場合の各処理の実行タイミングを示すタイミングチャートである。図５と異なり、１０ｍｓ割込処理が動作していないので、ステップＳ３０１で１０ｍｓ毎に更新されているはずの値が一定値のままとなっている。
【００３６】
プログラム動作監視部１１３は、ステップＳ３０１で更新されているべき、１０ｍｓ割込処理の前回実行時刻と、システムクロック値との差分を、２ｍｓ割込処理のなかで求める（Ｓ４０２）。１０ｍｓ割込処理が異常停止している場合、前回実行時刻とシステムクロック値の差分は、１０ｍｓを超える。そのためプログラム動作監視部１１３は、１０ｍｓ割込処理が正常動作していないことを検出することができる。
【００３７】
なお、どの時点で１０ｍｓ割込処理が正常動作していないと判断するかについては、ある程度の余裕を持たせることができる。例えば図６において、前回実行時刻とシステムクロック値の差分が１０ｍｓに達した時点で即座に異常であると判断するのではなく、さらに数ｍｓ経過した時点で異常であると判断している。これは、１０ｍｓ割込処理が他のより優先度の高い割込処理などのために所定の実行タイミングよりもやや遅れて実行される場合があるからである。
【００３８】
この判断余裕は、ステップＳ４０１〜Ｓ４０２における閾値の値を、各組込プログラムの実行間隔（１０ｍｓ割込処理であれば１０ｍｓ）よりも大きい値に設定することにより、設けることができる。
【００３９】
図７は、特許文献１におけるＰ−ＲＵＮ信号出力処理の実行タイミングを示すタイミングチャートである。ここでは図６と同様に、１０ｍｓ割込処理が異常停止している例を示した。特許文献１では、以下の手順でＰ−ＲＵＮ信号を出力する。
【００４０】
図７における黒色の矩形は、通常処理を実行している期間を示している。ＣＰＵは、通常処理を開始した後のあるタイミングで、Ｐ−ＲＵＮ信号を出力してよいか否かを、所定の許可フラグ値に基づき判断する。図７に示す例では、黒色矩形の最初の方のタイミングで、許可フラグ値を照会している。
【００４１】
一方、２ｍｓタスクが実行される毎に、Ｐ−ＲＵＮ信号出力許可フラグがＯＮになり、通常処理内でＰ−ＲＵＮ信号を出力する毎に同フラグが再びＯＦＦになる。すなわち、特許文献１では、２ｍｓタスクが正常に実行されている限り、Ｐ−ＲＵＮ信号を出力してよい旨のフラグがＯＮになるものの、そのフラグをＯＦＦにするのは実際にＰ−ＲＵＮ信号を出力するとき、すなわち通常処理を実行するタイミングとなる。
【００４２】
そのため、特許文献１では、通常処理を実行するタイミングによっては、許可フラグをＯＦＦにするタイミングが訪れず、同フラグをＯＮにしたままの状態が長時間継続する可能性がある。したがって、１０ｍｓ割込処理が正常に実行されていない場合でも、許可フラグがＯＮのままであるため、Ｐ−ＲＵＮ信号が出力され続け、ＣＰＵをリセットできないことになる。
【００４３】
これに対し本実施形態１では、Ｐ−ＲＵＮ信号を出力すべきか否かを判断する処理（すなわちステップＳ４０１〜Ｓ４０２）と、実際にＰ−ＲＵＮ信号を出力する処理（ステップＳ４０３）を、ともに優先度が最も高い２ｍｓ割込処理内で実行している。これにより、各処理が正常実行されているときは、確実にＰ−ＲＵＮ信号を出力することができ、組込制御装置１００およびその制御対象の安全性を高めることができる。
【００４４】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る組込制御装置１００は、Ｐ−ＲＵＮ信号を出力すべきか否かを判断する処理と、実際にＰ−ＲＵＮ信号を出力する処理を、各処理のなかで最も高い優先度で実行する。これにより、各処理が正常実行されているときは、確実にＰ−ＲＵＮ信号を出力することができる。
【００４５】
また、本実施形態１に係る組込制御装置１００は、システムクロック値と各組込プログラムの前回実行時刻との差分が規定範囲内に収まっているか否かを判断する際に、各組込プログラムの実行間隔よりも余裕をもたせて同判断を行うことができる。これにより、何らかの要因によって各組込プログラムの実行タイミングが遅れているような場合でも、ＣＰＵ１１２を不要にリセットさせることなく制御動作を継続することができる。
【００４６】
また、本実施形態１において、プログラム動作監視部１１３は、全ての組込プログラムの動作を監視することを前提としたが、一部の組込プログラムの動作のみを監視するようにしてもよい。例えば、重要度の低い組込プログラムについては監視しないこととし、演算負荷を抑えることもできる。
【００４７】
また、本実施形態１において、ＷＤＴ１１４はＣＰＵ１１２をリセットすることとしたが、リセットする対象はマイクロコンピュータ１１０全体でもよい。リセットを実行する処理そのものは、ＣＰＵ１１２が実行してもよいし、その他のリセット回路などの機能部が実行してもよい。
【００４８】
＜実施の形態２＞
図８は、本発明の実施形態２に係る組込制御装置１００の機能ブロック図である。本実施形態２では、プログラム動作監視部１１３はソフトウェアプログラムとして構成されている。ＣＰＵ１１２は、プログラム動作監視部１１３を実行することにより、実施形態１と同様の処理を実行する。
【００４９】
具体的には、２ｍｓ割込処理から呼び出すことのできるプログラムモジュールとしてプログラム動作監視部１１３を構成することもできるし、２ｍｓ割込処理プログラムの一部としてプログラム動作監視部１１３に相当する処理を記述することもできる。
【００５０】
本実施形態２では、プログラム動作監視部１１３に相当する回路デバイスなどのハードウェアを組込制御装置１００内に設ける必要がなくなるので、ハードウェアのコストや専有面積の観点で有利である。
【００５１】
＜実施の形態３＞
本発明の実施形態３では、ＷＤＴの構成に関する種々の構成例を説明する。組込プログラムの動作監視に関する構成および動作は実施形態１〜２と同様であるため、以下では差異点を中心に説明する。
【００５２】
図９は、ＷＤＴ１１４をマイクロコンピュータ１１０から切り離し、電源ＩＣ一体型ＷＤＴ１１５を代わりに用いた構成例を示す図である。電源ＩＣ一体型ＷＤＴ１１５の動作はＷＤＴ１１４と同様である。
【００５３】
図１０は、ＷＤＴ１１４をマイクロコンピュータ１１０から切り離し、ＷＤＴ専用ＩＣ１１６を代わりに用いた構成例を示す図である。ＷＤＴ専用ＩＣ１１６の動作はＷＤＴ１１４と同様である。
【００５４】
図１１は、ＷＤＴ１１４と併用して、電源ＩＣ一体型ＷＤＴ１１５をマイクロコンピュータ１１０の外部に設けた構成例を示す図である。本構成例では、プログラム監視部１１３はＰ−ＲＵＮ信号をＷＤＴ１１４と電源ＩＣ一体型ＷＤＴ１１５の双方に出力する。ＷＤＴ１１４と電源ＩＣ一体型ＷＤＴ１１５は、リセット信号をＣＰＵ１１２に対して出力する。両者が出力するリセット信号は結合されているので、いずれかのリセット信号がＣＰＵ１１２に届いた時点で、ＣＰＵ１１２はリセットされる。
【００５５】
一般に、組込制御装置１００を起動するとき、ＷＤＴが正常に動作するか否かをテストするため、いったんＷＤＴのリセット処理を稼動させた後、ＣＰＵ１１２等の初期化処理を開始する。そのため、その分だけ起動時間が長くなる傾向にある。
【００５６】
一方、図１１に示す構成例によれば、同様の動作を実行するＷＤＴが２つあるため、いずれかが動作していればＣＰＵ１１２をリセットする役割を果たすことができる。２つのＷＤＴが同時に故障することは稀であるため、図１１の構成例の下ではＷＤＴが動作するか否かをテストする必要はない。したがって、組込制御装置１００の起動時間を短縮することができる。
【符号の説明】
【００５７】
１００：組込制御装置、１１０：マイクロコンピュータ、１１１：システムクロック、１１２：ＣＰＵ、１１３：プログラム動作監視部、１１４：ＷＤＴ、１１５：電源ＩＣ一体型ＷＤＴ、１１６：ＷＤＴ専用ＩＣ。
【図１】
2012069063.tif 000003
【図２】
2012069063.tif 000004
【図３】
2012069063.tif 000005
【図４】
2012069063.tif 000006
【図５】
2012069063.tif 000007
【図６】
2012069063.tif 000008
【図７】
2012069063.tif 000009
【図８】
2012069063.tif 000010
【図９】
2012069063.tif 000011
【図１０】
2012069063.tif 000012
【図１１】
2012069063.tif 000013