(57)【要約】【課題】ウォッチドッグタイマ回路におけるエラー信号の出力動作の故障を検出できるようにすること。【解決手段】初期化信号に応じてトグルする選択信号を出力する選択信号出力回路と、初期化信号に応じて初期化されるとともにオーバーフローするとそれぞれ第１および第２のオーバーフロー信号を出力する第１および第２のカウンタと、選択信号に応じて第２のオーバーフロー信号および所定のクロック信号の一方を選択し、カウント用のクロック信号として第１のカウンタに出力する第１のセレクタと、選択信号に応じて第１のオーバーフロー信号および所定のクロック信号の一方を選択し、カウント用のクロック信号として第２のカウンタに出力する第２のセレクタと、選択信号に応じて第１のオーバーフロー信号および第２のオーバーフロー信号の一方を選択して出力する第３のセレクタと、を備える。【選択図】図１
2013037635.tif 000002
【特許請求の範囲】
【請求項１】
初期化信号に応じてトグルする信号を選択信号として出力する選択信号出力回路と、
前記初期化信号に応じてカウント値が初期化され、該カウント値がオーバーフローした場合には第１のオーバーフロー信号を出力する第１のカウンタと、
前記初期化信号に応じてカウント値が初期化され、該カウント値がオーバーフローした場合には第２のオーバーフロー信号を出力する第２のカウンタと、
前記選択信号に応じて、前記第２のオーバーフロー信号および所定のクロック信号のうちのいずれかの信号を選択し、カウント用のクロック信号として前記第１のカウンタに出力する第１のセレクタと、
前記選択信号に応じて、前記第１のオーバーフロー信号および前記所定のクロック信号のうちのいずれかの信号を選択し、カウント用のクロック信号として前記第２のカウンタに出力する第２のセレクタと、
前記選択信号に応じて、前記第１のオーバーフロー信号および前記第２のオーバーフロー信号のうちのいずれかの信号を選択して、エラー信号として出力する第３のセレクタと、を備えることを特徴とするウォッチドッグタイマ回路。
【請求項２】
前記選択信号がトグルする度に、前記第１のカウンタと前記第２のカウンタとの間で、上位側カウンタと下位側カウンタとを入れ替えることを特徴とする、請求項１に記載のウォッチドッグタイマ回路。
【請求項３】
前記第１のカウンタが上位側カウンタである場合には、前記第１のセレクタは前記第２のオーバーフロー信号を選択し、前記第２のセレクタは前記所定のクロック信号を選択し、前記第３のセレクタは前記第１のオーバーフロー信号を選択し、
前記第２のカウンタが上位側カウンタである場合には、前記第１のセレクタは前記所定のクロック信号を選択し、前記第２のセレクタは前記第１のオーバーフロー信号を選択し、前記第３のセレクタは前記第２のオーバーフロー信号を選択することを特徴とする、請求項２に記載のウォッチドッグタイマ回路。
【請求項４】
前記選択信号に応じて前記エラー信号のアクティブレベルを変更して、エラー出力信号として出力するアクティブレベル設定回路と、
前記選択信号および前記エラー出力信号に基づいて、前記エラー信号の出力経路における故障の有無を判定するエラー信号経路故障判定回路と、をさらに備えることを特徴とする、請求項１ないし３のいずれか１項に記載のウォッチドッグタイマ回路。
【請求項５】
前記第１のオーバーフロー信号の論理レベルを反転して前記第３のセレクタに出力する論理反転回路と、
前記第１の論理反転回路から出力された信号および前記第２のオーバーフロー信号のうちのいずれかの信号を、前記第３のセレクタが前記選択信号に応じて選択した信号と、前記選択信号とに基づいて、前記エラー信号の出力経路における故障の有無を判定するエラー信号経路故障判定回路と、をさらに備えることを特徴とする、請求項１ないし３のいずれか１項に記載のウォッチドッグタイマ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はウォッチドッグタイマ回路に関し、特に、マイクロコンピュータ（マイコン）の暴走を検知するウォッチドッグタイマ回路に関する。
【背景技術】
【０００２】
マイコンのプログラムの異常動作を監視するハードウェアとして、ウォッチドッグタイマが知られている。一般に、ウォッチドッグタイマは、マイコンのシステムクロックをカウントする。このとき、監視対象であるプログラムは、ウォッチドッグタイマのカウント値を初期化することはできるものの、ウォッチドッグタイマのカウント動作を停止させることはできない。
【０００３】
プログラムは、カウントするクロックの周波数とタイマを構成しているカウンタのビット数を考慮して、カウント値を初期化するタイミングを決定する。プログラムの正常動作期間中は、プログラムは、ウォッチドッグタイマのカウント値がオーバーフローしないように、定期的にカウント値を初期化する。
【０００４】
プログラムからのカウント値の初期化動作が発生せず、ウォッチドッグタイマのカウント値がオーバーフローした場合には、プログラムが異常動作していることになる。この場合には、ウォッチドッグタイマ割り込みやリセットを発生して、プログラムを異常動作から正常動作へ復帰させる。このように、ウォッチドッグタイマ割り込みやリセットが発生しないようにするのが、ウォッチドッグタイマの正常な使い方となる。
【０００５】
近年、半導体装置の信頼性に対する要求が高まり、マイコンの異常動作を検知するウォッチドッグタイマの重要性が増大している。ウォッチドッグタイマ回路の信頼性を向上させるために、ウォッチドッグタイマ回路自身の故障検出を行うことも要求されている。
【０００６】
ウォッチドッグタイマ割り込みやリセットが発生してもユーザー動作に影響がないように、一般に、ウォッチドッグタイマ回路の故障検出はリセット期間中に行われる。しかし、リセット期間中にウォッチドッグタイマ回路の故障検出を行うと、リセット期間が長くなるとともに、ユーザー動作中のウォッチドッグタイマの故障検出ができないという問題がある。そこでユーザー動作中にウォッチドッグタイマ回路の故障検出を行う必要性が高まっている。
【０００７】
特許文献１には、ユーザー動作中にウォッチドッグタイマ回路の故障検出を行う不良検出装置が記載されている。特許文献１に記載された不良検出装置においては、ＣＰＵはウォッチドッグタイマのカウンタが初期化される直前のカウント値を取得し、取得したカウント値と設定された所定値とを比較し、比較結果が所定値の範囲内にない場合にはエラー信号を発生することで、ウォッチドッグタイマの故障を検出する。
【０００８】
図４は、特許文献１に記載された不良検出装置の構成を示すブロック図である。図４を参照すると、不良検出装置は、ＣＰＵ１およびウォッチドッグタイマ５３を備えている。ＣＰＵ１は、デジタル出力部（ＤＯ：Ｄｉｇｉｔａｌ  Ｏｕｔｐｕｔ）２およびデジタル入力（ＤＩ：Ｄｉｇｉｔａｌ  Ｉｎｐｕｔ）部５５を備えている。ウォッチドッグタイマ５３は、発振器５１およびタイマ５２を備えている。
【０００９】
デジタル出力部２は、一定時間毎に初期化信号３をタイマ５２に送出する。タイマ５２は、発振器５１から送出されたカウントクロック信号２５でカウントを行い、タイマ５２がオーバーフローすると、エラー信号７を出力する。タイマ５２は、カウント値５４をＣＰＵ１のデジタル入力部５５に出力する。ＣＰＵ１内のプログラムは、デジタル入力部５５に入力されたカウント値５４が所定の範囲内に入っているか否かを判定する。
【００１０】
図５は、ＣＰＵ１で実行されるプログラムのフローチャートである。図５を参照すると、まず、カウント値（計数値）５４と予め定められた正常計数最小値とを比較する（ステップＳ１）。カウント値５４が正常計数最小値よりも小さい場合には（ステップＳ１の「＜」）、不良表示ランプを点灯する（ステップＳ４）。
【００１１】
一方、カウント値５４が正常計数最小値以上である場合には（ステップＳ１の「≧」）、カウント値５４と予め定められた正常計数最大値とを比較する（ステップＳ２）。カウント値５４が正常計数最大値よりも大きい場合には（ステップＳ３の「＞」）、不良表示ランプを点灯する（ステップＳ４）。一方、カウント値５４が正常計数最大値以下である場合には（ステップＳ２の「≦」）、不良表示ランプを消灯する（ステップＳ３）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開昭６０−０５５４４８号公報（図４、５）
【発明の概要】
【発明が解決しようとする課題】
【００１３】
以下の分析は、本発明者によってなされたものである。
【００１４】
特許文献１に記載されたウォッチドッグタイマ回路の故障として、タイマ５２のカウント動作および初期化動作の故障と、エラー信号７の出力動作の故障が考えられる。したがって、これらの故障を検出できるようにする必要がある。特許文献１に記載された故障検出装置によると、上述のように、タイマ５２のカウント動作の故障、および、カウント値の初期化動作の故障を検出することができる。
【００１５】
しかし、特許文献１に記載された故障検出装置によると、エラー信号７の出力動作の故障、すなわち、タイマ５２がオーバーフローしてもエラー信号７が発生しないという故障を検出することができない。その理由について、図４を参照して説明する。
【００１６】
ウォッチドッグタイマ５３のエラー信号７は、プログラムの異常動作により、ＣＰＵ１からの初期化信号３が発生しなくなった場合に、タイマ５２がオーバーフローすることで発生する。しかし、プログラムが正常動作している場合には、エラー信号７が発生する前、すなわち、タイマ５２がオーバーフローする前に、ＣＰＵ１から初期化信号３が発生し、タイマ５２はオーバーフローを起こすことがない。したがって、プログラムが正常に動作する限り、タイマ５２にオーバーフローを起こさせることができず、オーバーフローが生じた場合にエラー信号７が発生するかどうかを検査することができないからである。
【００１７】
そこで、ウォッチドッグタイマ回路におけるエラー信号の出力動作の故障を検出できるようにし、ウォッチドッグタイマ回路の信頼性を向上させることが課題となる。
【課題を解決するための手段】
【００１８】
本発明の一視点に係るウォッチドッグタイマ回路は、
初期化信号に応じてトグルする信号を選択信号として出力する選択信号出力回路と、
前記初期化信号に応じてカウント値が初期化され、該カウント値がオーバーフローした場合には第１のオーバーフロー信号を出力する第１のカウンタと、
前記初期化信号に応じてカウント値が初期化され、該カウント値がオーバーフローした場合には第２のオーバーフロー信号を出力する第２のカウンタと、
前記選択信号に応じて、前記第２のオーバーフロー信号および前記所定のクロック信号のうちのいずれかの信号を選択し、カウント用のクロック信号として前記第１のカウンタに出力する第１のセレクタと、
前記選択信号に応じて、前記第１のオーバーフロー信号および所定のクロック信号のうちのいずれかの信号を選択し、カウント用のクロック信号として前記第２のカウンタに出力する第２のセレクタと、
前記選択信号に応じて、前記第１のオーバーフロー信号および前記第２のオーバーフロー信号のうちのいずれかの信号を選択して、エラー信号として出力する第３のセレクタと、を備える。
【発明の効果】
【００１９】
本発明に係るウォッチドッグタイマ回路によると、エラー信号の出力動作の故障を検出することが可能となり、ウォッチドッグタイマ回路の信頼性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態に係るウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置の回路構成を一例として示すブロック図である。
【図２】第２の実施形態に係るウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置の回路構成を一例として示すブロック図である。
【図３】第３の実施形態に係るウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置の回路構成を一例として示すブロック図である。
【図４】特許文献１に記載された不良検出装置の回路構成を示すブロック図である。
【図５】特許文献１に記載された不良検出装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２１】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２２】
図１を参照すると、本発明のウォッチドッグ回路は、初期化信号（３）に応じてトグルする信号を選択信号（５）として出力する選択信号出力回路（４）と、初期化信号（３）に応じてカウント値が初期化され、カウント値がオーバーフローした場合には第１のオーバーフロー信号（１０）を出力する第１のカウンタ（８）と、初期化信号（３）に応じてカウント値が初期化され、カウント値がオーバーフローした場合には第２のオーバーフロー信号（１１）を出力する第２のカウンタ（９）と、選択信号（５）に応じて、第２のオーバーフロー信号（１１）および所定のクロック信号（カウントクロック信号２５）のうちのいずれかの信号を選択し、カウント用のクロック信号として第１のカウンタ（８）に出力する第１のセレクタ（カウントクロックセレクタ１２）と、選択信号（５）に応じて、第１のオーバーフロー信号（１０）および所定のクロック信号（２５）のうちのいずれかの信号を選択し、カウント用のクロック信号として第２のカウンタ（９）に出力する第２のセレクタ（カウントクロックセレクタ１３）と、選択信号（５）に応じて、第１のオーバーフロー信号（１０）および第２のオーバーフロー信号（１１）のうちのいずれかの信号を選択して、エラー信号（７）として出力する第３のセレクタ（エラー信号セレクタ１８）と、を備えている。
【００２３】
また、ウォッチドッグタイマ回路において、選択信号（５）がトグルする度に、第１のカウンタ（８）と第２のカウンタ（９）との間で、上位側カウンタと下位側カウンタとを入れ替えることが好ましい。さらに、第１のカウンタ（８）が上位側カウンタである場合には、第１のセレクタ（１２）は第２のオーバーフロー信号（１１）を選択し、第２のセレクタ（１３）は所定のクロック信号（２５）を選択し、第３のセレクタ（１８）は第１のオーバーフロー信号（１０）を選択し、第２のカウンタ（９）が上位側カウンタである場合には、第１のセレクタ（１２）は所定のクロック信号（２５）を選択し、第２のセレクタ（１３）は第１のオーバーフロー信号（１０）を選択し、第３のセレクタ（１８）は第２のオーバーフロー信号（１１）を選択することが好ましい。
【００２４】
図１を参照すると、ウォッチドッグタイマ回路は、第１のカウンタ（８）が上位側カウンタである場合には、第２のオーバーフロー信号（１１）を監視し、第２のカウンタ（９）が上位側である場合には、第１のオーバーフロー信号（１０）を監視する異常検出回路（１４、１５）をさらに備えることが好ましい。
【００２５】
図２を参照すると、ウォッチドッグタイマ回路は、選択信号（５）に応じてエラー信号のアクティブレベルを変更して、エラー出力信号（２０）として出力するアクティブレベル設定回路（２０）と、選択信号（５）およびエラー出力信号（２０）に基づいて、エラー信号（７）の出力経路における故障の有無を判定するエラー信号経路故障判定回路（２１）と、をさらに備えていてもよい。
【００２６】
図３を参照すると、ウォッチドッグタイマ回路は、第１のオーバーフロー信号（１０）の論理レベルを反転して第３のセレクタ（５）に出力する第１の論理反転回路（例えばインバータ２９）と、第１の論理反転回路（２９）から出力された信号および第２のオーバーフロー信号（１１）のうちのいずれかの信号を、第３のセレクタ（１８）が選択信号（５）に応じて選択した信号と、選択信号（５）とに基づいて、エラー信号（７）の出力経路における故障の有無を判定するエラー信号経路故障判定回路（２１）と、をさらに備えていてもよい。
【００２７】
また、ウォッチドッグタイマ回路は、第１の論理反転回路（２９）から出力された信号の論理レベルを反転して第２のセレクタ（１３）に出力する第２の論理反転回路（例えばインバータ３０）をさらに備えていてもよい。
【００２８】
本発明に係るウォッチドッグタイマ回路によると、エラー信号（７）の出力動作の故障を検出することが可能となり、ウォッチドッグタイマ回路の信頼性を向上させることができる。
【００２９】
（実施形態１）
第１の実施形態に係るウォッチドッグタイマ回路について、図面を参照して説明する。図１は、本実施形態のウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置１００の構成を一例として示すブロック図である。図１を参照すると、ＣＰＵ暴走検出装置１００は、ＣＰＵ１およびウォッチドッグタイマ回路６を備えている。
【００３０】
ＣＰＵ１は、デジタル出力部（ＤＯ）２を備えている。
【００３１】
ウォッチドッグタイマ回路６は、ＣＰＵ１からの初期化信号３とカウントクロック信号２５を入力とし、エラー信号７と異常検出信号１６、１７を出力する。ウォッチドッグタイマ回路６は、選択信号出力回路４、タイマ２６、エラー信号セレクタ１８、および、異常検出回路１４、１５を備えている。
【００３２】
選択信号出力回路４は、ＣＰＵ１からの初期化信号３を入力とし、選択信号５を出力する。
【００３３】
タイマ２６は、ＣＰＵ１からの初期化信号３と、カウントクロック信号２５と、選択信号出力回路４からの選択信号５を入力とし、オーバーフロー信号１０、１１を出力する。
【００３４】
エラー信号セレクタ１８は、選択信号出力回路４からの選択信号５とタイマ２６からのオーバーフロー信号１０、１１を入力とし、ウオッチドックタイマ回路６の出力としてエラー信号７を出力する。
【００３５】
異常検出回路１４は、ＣＰＵ１からの初期化信号３と、選択信号出力回路４からの選択信号５と、タイマ２６からのオーバーフロー信号１０を入力とし、カウンタ８の異常検出信号として異常検出信号１６を出力する。同様に、異常検出回路１５は、ＣＰＵ１からの初期化信号３と、選択信号出力回路４からの選択信号５と、タイマ２６からのオーバーフロー信号１１を入力とし、カウンタ９の異常検出信号として異常検出信号１７を出力する。
【００３６】
タイマ２６は、カスケード接続された２つのカウンタ８、９と、カウントクロックセレクタ１２、１３を備える。
【００３７】
ＣＰＵ１からの初期化信号３は、選択信号出力回路４と、異常検出回路１４、１５と、タイマ２６のカウンタ８、９に入力される。
【００３８】
カウンタ８のオーバーフロー信号１０は、カウントクロックセレクタ１３と、異常検出回路１４と、エラー信号セレクタ１８に入力される。一方、カウンタ９のオーバーフロー信号１１は、カウントクロックセレクタ１２と、異常検出回路１５と、エラー信号セレクタ１８に入力される。
【００３９】
選択信号５は、異常検出回路１４、１５と、エラー信号セレクタ１８と、タイマ２６のカウントクロックセレクタ１２、１３に入力される。
【００４０】
カウンタ８、９のビット長は、必ずしも同一である必要はなく、下位側カウンタとなったときに少なくとも１回以上オーバーフローするビット長であればよい。
【００４１】
カウントクロック信号２５は発振器によって生成してもよいし、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）によって生成してもよい。ただし、システム動作中には停止しないようなクロック信号を用いることが好ましい。
【００４２】
プログラムは、カウントクロック信号２５の周波数と、タイマ２６を構成しているカウンタ８、９のビット数を考慮し、タイマ２６を初期化するタイミングを任意に決定する。
【００４３】
次に、本実施形態のＣＰＵ暴走検出装置１００の動作について、図１を参照して説明する。ここでは、一例として、選択信号出力回路４の出力である選択信号５がロウレベルの場合に、カウンタ８が上位側カウンタであり、カウンタ９が下位側カウンタであるとする。また、ＣＰＵ１からｎ回目（ｎは自然数）の初期化信号３が発生した時点からの動作について説明する。
【００４４】
ＣＰＵ１からｎ回目の初期化信号３が発生し、選択信号出力回路４の出力である選択信号５の立下りでカウンタ８が上位側カウンタ、カウンタ９が下位側カウンタとなるウォッチドッグタイマのカウンタとして動作するように切り替えられる。また、選択信号５がロウレベルの期間中、この構成が保持される。
【００４５】
このとき、タイマ２６のカウントクロックセレクタ１２は、カウンタ９のオーバーフロー信号１１をカウンタ８のカウントアップ信号として出力する。一方、タイマ２６のカウントクロックセレクタ１３は、カウントクロック信号２５をカウンタ９のカウントアップ信号として出力する。また、エラー信号セレクタ１８は、カウンタ８のオーバーフロー信号１０をエラー信号７として出力する。
【００４６】
ＣＰＵ１から初期化信号３が出力されないとき、すなわち、プログラムが異常動作した場合には、上位側カウンタであるカウンタ８はオーバーフローし、オーバーフロー信号１０にパルスが出力される。これにより、エラー信号７においてエラーパルスが出力される。
【００４７】
このエラーパルスは、タイマ２６のオーバーフロー信号である。したがって、エラーパルスのパルス幅は、カウンタ８、９の各ビットが全て１となっている期間、すなわち、カウントクロック信号２５の１周期分に相当する。
【００４８】
このとき、選択信号５がロウレベルであるため、異常検出回路１５はカウンタ９のオーバーフロー信号１１を検査し、異常検出回路１４は動作を停止する。
【００４９】
下位側カウンタとなったカウンタ９は、ウォッチドッグタイマ動作中にオーバーフローし、オーバーフロー信号１１を出力する。
【００５０】
異常検出回路１５は、オーバーフロー信号１１の発生の有無を検査し、オーバーフロー信号の発生結果を保持する。
【００５１】
次に、ＣＰＵ１から（ｎ＋１）回目の初期化信号３が発生したときに、カウンタ９のオーバーフローが発生していない場合には、異常検出回路１５は、カウンタ９のオーバーフロー信号が発生しないという故障として検出し、異常検出信号１７をアクティブレベルとする。
【００５２】
また、ＣＰＵ１から初期化信号３が出力されると、カウンタ８、９のカウント値が初期化される。さらに、選択信号出力回路４の出力である選択信号５は、トグルし、ロウレベルからハイレベルになる。
【００５３】
選択信号５の立上りで、カウンタ９が上位側カウンタ、カウンタ８が下位側カウンタとなるウォッチドッグタイマのカウンタとして動作するように切り替えられる。また、選択信号５がハイレベルの期間中、この構成が保持される。
【００５４】
このとき、タイマ２６のカウントクロックセレクタ１２は、カウントクロック信号２５をカウンタ８のカウントアップ信号として出力する。一方、タイマ２６のカウントクロックセレクタ１３は、カウンタ８のオーバーフロー信号１０をカウンタ９のカウントアップ信号として出力する。また、エラー信号セレクタ１８は、カウンタ９のオーバーフロー信号１１をエラー信号７として出力する。
【００５５】
ＣＰＵ１から初期化信号３が出力されないとき、すなわち、プログラムが異常動作した場合には、上位側カウンタであるカウンタ９はオーバーフローし、オーバーフロー信号１１にパルスが出力される。これにより、エラー信号７においてエラーパルスが出力される。
【００５６】
このとき、選択信号５がハイレベルであるため、異常検出回路１４はカウンタ８のオーバーフロー信号１０を検査し、異常検出回路１５は動作を停止する。
【００５７】
下位側カウンタとなったカウンタ８は、ウォッチドッグタイマ動作中にオーバーフローし、オーバーフロー信号１０を出力する。
【００５８】
異常検出回路１４は、オーバーフロー信号１０の発生の有無を検査し、オーバーフロー信号の発生結果を保持する。
【００５９】
次に、ＣＰＵ１から（ｎ＋２）回目の初期化信号３が発生したときに、カウンタ８のオーバーフローが発生していない場合には、異常検出回路１４は、カウンタ８のオーバーフロー信号が発生しないという故障として検出し、異常検出信号１６をアクティブレベルとする。
【００６０】
また、ＣＰＵ１から初期化信号３が出力されると、カウンタ８、９はカウント値が初期化される。さらに、選択信号出力回路４の出力である選択信号５はトグルし、ハイレベルからロウレベルになり、選択信号５がロウレベルのときの動作を繰り返す。
【００６１】
以降、ＣＰＵ１から初期化信号３が出力される度に、選択信号５がハイ／ロウとトグルし、上述のように、選択信号５がハイレベルのときの動作と、ロウレベルのときの動作が繰り返される。
【００６２】
以上の動作により、下位側カウンタのオーバーフローの発生の有無をつねに検査することで、タイマ２６のオーバーフロー信号の故障を検出することが可能となる。
【００６３】
本実施形態のウォッチドッグタイマ回路は、マイクロコンピュータ（マイコン）の暴走を検知するウォッチドッグタイマ回路である。図１を参照すると、ウォッチドッグタイマ回路は、カスケード接続された２つのカウンタ（８、９）を含み、ＣＰＵからの初期化信号で初期化されるタイマ回路（２６）と、ＣＰＵからの初期化信号で出力がトグルする選択信号出力回路（４）と、２つのカウンタ（８、９）のそれぞれのカウントクロックとして、選択信号出力回路（４）の出力に応じて、所定のクロック信号（２５）とカスケード接続されたお互いのカウンタのオーバーフロー信号のうちのいずれかを選択するカウントクロックセレクタ（１２、１３）と、選択信号出力回路（４）の出力に応じて、２つのカウンタ（８、９）のオーバーフロー信号を選択して出力するエラー信号セレクタ（１８）と、２つのカウンタ（８、９）のそれぞれのオーバーフロー信号を監視する異常検出回路（１４、１５）とを備えている。選択信号出力回路（４）からの出力がトグルする度に、カスケード接続された２つのカウンタ（８、９）は、上位側カウンタと下位側カウンタの構成順序を入れ替え、カウントクロックセレクタ（１２、１３）は、２つのカウンタ（８、９）のうちの上位側カウンタが下位側カウンタのオーバーフロー信号をカウントクロックとし、下位側カウンタが所定のクロック（２５）を選択するように切り替え、エラー信号セレクタ（１８）は、上位側カウンタのオーバーフロー信号を選択するように切り替え、異常検出回路（１４、１５）は、下位側カウンタのオーバーフロー信号が発生するか否かを監視する。ウォッチドッグタイマ回路は、以上の動作に基づいて、異常を検出する。
【００６４】
本発明に係るウォッチドッグタイマ回路によると、２つのカウンタ（８、９）のいずれにおいても、オーバーフロー信号が発生するかどうかの故障検出が可能となり、ウォッチドッグタイマ回路の信頼性を向上させることができる。
【００６５】
本実施形態のウォッチドッグタイマ回路６によると、ユーザー動作中にウォッチドッグタイマ回路６のエラー信号７の故障を検出することができる。
【００６６】
その理由は、タイマ２６を２つのカウンタ８、９のカスケード接続で構成し、ＣＰＵ１からの初期化信号３の発生毎に下位側カウンタと上位側カウンタのカスケード接続順序を切り替え、下位側カウンタとなったカウンタのオーバーフロー信号をつねに検査することで、ユーザー動作中にタイマ２６が持つ２つのカウンタの両方のオーバーフロー信号１０、１１が発生するかどうかを検査し、エラー信号７の検査が可能となるからである。
【００６７】
（実施形態２）
第２の実施形態に係るウォッチドッグタイマ回路について、図面を参照して説明する。図２は、本実施形態のウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置２００の構成を一例として示すブロック図である。
【００６８】
一般に、ＣＰＵ暴走検出装置の出力であるエラー信号は、リセット制御回路や割り込み制御回路に入力されることで、リセットやウォッチドッグタイマ割り込みを発生し、プログラムを異常動作から正常動作へ復帰させる。
【００６９】
以下では、上述のようにエラー信号が入力されるリセット制御回路および割り込み制御回路を、「エラー信号受信側」という。
【００７０】
図２を参照すると、本実施形態のＣＰＵ暴走検出装置２００は、第１の実施形態のＣＰＵ暴走検出装置１００（図１）の構成に対して、アクティブレベル設定回路１９と、エラー信号受信側２４のエラー信号経路故障判定回路２１とを、さらに備えている。
【００７１】
図２において、ウォッチドッグタイマ回路６の構成を簡略化し、選択信号出力回路４と、タイマ２６と、エラー信号セレクタ１８のみを示したが、ウォッチドッグタイマ回路６は、第１の実施形態と同様の回路構成（図１参照）を備えるものとする。
【００７２】
アクティブレベル設定回路１９は、選択信号出力回路４から出力された選択信号５と、ウォッチドッグタイマ回路６から出力されたエラー信号７を入力とし、エラー出力信号２０を出力する。
【００７３】
エラー信号経路故障判定回路２１は、選択信号出力回路４から出力された選択信号５と、アクティブレベル設定回路１９から出力されたエラー出力信号２０を入力とし、経路異常検出信号２２およびウォッチドッグエラー信号２３を出力する。
【００７４】
次に、本実施形態のＣＰＵ暴走検出装置２００の動作について、図２を参照して説明する。ここでは、一例として、エラー信号７のアクティブレベルがハイレベルであるとする。また、第１の実施形態と同様に、ＣＰＵ１からｎ回目の初期化信号３が発生した時点からの動作について説明する。
【００７５】
ＣＰＵ１からｎ回目の初期化信号３が発生し、選択信号出力回路４の出力である選択信号５がロウレベルのとき、アクティブレベル設定回路１９は、入力されたエラー信号７をエラー出力信号２０として出力する。
【００７６】
このとき、エラー信号受信側２４のエラー信号経路故障判定回路２１は、入力されたエラー出力信号２０を検査し、ハイパルスであればウォッチドッグタイマ回路６のエラーとして検出し、ウォッチドッグエラー信号２３をアクティブレベルとする。
【００７７】
一方、エラー出力信号２０が電源配線やハイレベルの信号とのショート故障を起こした場合には、エラー出力信号２０はハイレベルに固定されるため、エラー信号経路の故障として検出し、経路異常検出信号２２をアクティブレベルとする。
【００７８】
次に、ＣＰＵ１から（ｎ＋１）回目の初期化信号３が出力されると、選択信号出力回路４から出力される選択信号５はトグルし、ロウレベルからハイレベルになる。
【００７９】
選択信号５がハイレベルのとき、アクティブレベル設定回路１９は、入力されたエラー信号７のレベルを反転して、エラー出力信号２０として出力する。
【００８０】
エラー信号受信側２４のエラー信号経路故障判定回路２１は、入力されたエラー出力信号２０を検査し、ロウパルスであればウォッチドッグタイマのエラーとして検出し、ウォッチドッグエラー信号２３をアクティブレベルとする。
【００８１】
一方、エラー出力信号２０がＧＮＤ配線やロウレベルの信号とのショート故障を起こした場合には、エラー出力信号２０はロウレベルに固定されるため、エラー信号経路の故障として検出し、経路異常検出信号２２をアクティブレベルとする。
【００８２】
次に、ＣＰＵ１から（ｎ＋２）回目の初期化信号３が出力されると、選択信号出力回路４の出力である選択信号５はトグルし、ハイレベルからロウレベルになり、選択信号５がロウレベルのときの動作が繰り返される。
【００８３】
以降は、ＣＰＵ１から初期化信号３が出力される度に、選択信号５がハイ／ロウとトグルし、上述のように、選択信号５がハイレベルのときの動作と、ロウレベルのときの動作が繰り返される。
【００８４】
本実施形態では、ＣＰＵ１から初期化信号３が出力される度に、アクティブレベル設定回路１９を介して、エラー信号７のレベルを反転させて、エラー出力信号２０として故障検出を行う。これにより、エラー信号７の経路の故障を検出することが可能となる。
【００８５】
なお、エラー信号７のアクティブレベルがロウレベルである場合についても、上記動作と同じである。
【００８６】
本実施形態によると、第１の実施形態のユーザー動作中にエラー信号７の故障を検出するとともに、エラー信号７の経路の故障を検出することもできる。
【００８７】
その理由は、ＣＰＵ１からの初期化信号３の発生毎にアクティブレベル設定回路１９でエラー信号２０のアクティブレベルを切り替えることにより、ウォッチドッグタイマ回路６のエラーが発生しない場合でも、エラー信号経路がハイレベル／ロウレベルに変化するため、エラー信号７の故障の検査に加えて、エラー信号７の経路の故障も検査できるからである。
【００８８】
（実施形態３）
第３の実施形態に係るウォッチドッグタイマ回路について、図面を参照して説明する。図３は、本実施形態のウォッチドッグタイマ回路を備えたＣＰＵ暴走検出装置３００の構成を一例として示すブロック図である。
【００８９】
図３を参照すると、ＣＰＵ暴走検出装置３００は、第１の実施形態のＣＰＵ暴走検出装置１００の構成（図１）に対して、カウンタ８のオーバーフロー信号１０のアクティブレベルを反転させるインバータ２９と、エラー信号受信側２４のエラー信号経路故障判定回路２１と、反転したオーバーフロー信号１０のアクティブレベルを戻すインバータ３０とを、さらに備えている。
【００９０】
図３において、ウォッチドッグタイマ回路２７の構成を簡略し、異常検出回路１４、１５を省略して示しているが、ウォッチドッグタイマ回路２７は第１の実施形態におけるウォッチドッグタイマ回路６（図１）の構成と同様に、異常検出回路１４、１５を備えるものとする。
【００９１】
カウンタ８のオーバーフロー信号１０は、インバータ２９を介してエラー信号セレクタ１８に入力されるとともに、インバータ３０を介してカウントクロックセレクタ１３に入力される。
【００９２】
エラー信号経路故障判定回路２１は、選択信号出力回路４から出力された選択信号５と、ウォッチドッグタイマ回路２７から出力されたエラー信号７を入力とし、経路異常検出信号２２およびウォッチドッグエラー信号２３を出力する。
【００９３】
本実施形態では、オーバーフロー信号１０のアクティブレベルを反転するために、インバータ２９が挿入されている。また、インバータ２９によって反転されたアクティブレベルを元に戻すためにインバータ３０が挿入されている。ここで、アクティブレベルを反転させる手段は、インバータ以外の手段であってもよい。
【００９４】
また、オーバーフロー信号１０に対してインバータ２９、３０を挿入する代わりに、オーバーフロー信号１１に対して、同様にインバータを挿入するようにしてもよい。すなわち、エラー信号セレクタ１８に入力される、オーバーフロー信号１０とオーバーフロー信号１１のうちのいずれか一方のアクティブレベルを反転する構成を備えていればよい。
【００９５】
次に、本実施形態のＣＰＵ暴走検出装置３００の動作について、図３を参照して説明する。ここでは、一例として、カウンタ８のオーバーフロー信号１０とカウンタ９のオーバーフロー信号１１のアクティブレベルがハイレベルであるとする。また、第１の実施形態と同様に、ＣＰＵ１からｎ回目の初期化信号３が発生した時点からの動作について説明する。
【００９６】
ＣＰＵ１からｎ回目の初期化信号３が発生し、選択信号出力回路４から出力された選択信号５がロウレベルのとき、上位側カウンタであるカウンタ８のオーバーフロー信号１０が、インバータ２９を介してエラー信号７としてエラー信号受信側２４のエラー信号経路故障判定回路２１に入力される。
【００９７】
カウンタ８のオーバーフロー信号１０のインアクティブレベルはロウレベルであるため、インバータ２９を経由することで、正常動作時のエラー信号７の信号レベルはハイレベルとなる。
【００９８】
エラー信号受信側２４のエラー信号経路故障判定回路２１は、入力されたエラー信号７を検査し、ロウパルスであればウォッチドッグタイマのエラーとして検出し、ウォッチドッグエラー信号２３をアクティブレベルとする。一方、エラー信号７がロウレベルに固定されている場合には、エラー信号経路故障判定回路２１はエラー信号経路の故障として検出し、経路異常検出信号２２をアクティブレベルとする。
【００９９】
次に、ＣＰＵ１から（ｎ＋１）回目の初期化信号３が出力されると、選択信号出力回路４から出力される選択信号５はトグルし、ロウレベルからハイレベルになる。
【０１００】
選択信号５がハイレベルのとき、上位側カウンタであるカウンタ９のオーバーフロー信号１１がエラー信号７としてエラー信号受信側２４のエラー信号経路故障判定回路２１に入力される。
【０１０１】
カウンタ９のオーバーフロー信号１１のインアクティブレベルはロウレベルであるため、正常動作時のエラー信号７の信号レベルはロウレベルとなる。
【０１０２】
エラー信号受信側２４のエラー信号経路故障判定回路２１は、入力されたエラー信号７を検査し、ハイパルスである場合には、ウォッチドッグタイマのエラーとして検出し、ウォッチドッグエラー信号２３をアクティブレベルとする。一方、エラー信号７がハイレベルに固定されている場合には、エラー信号経路故障判定回路２１は、エラー信号経路の故障として検出し、経路異常検出信号２２をアクティブレベルとする。
【０１０３】
次に、ＣＰＵ１から（ｎ＋２）回目の初期化信号３が出力されると、選択信号出力回路４から出力される選択信号５はトグルし、ハイレベルからロウレベルになり、選択信号５がロウレベルのときの動作が繰り返される。
【０１０４】
以降、ＣＰＵ１から初期化信号３が出力される度に、選択信号５がハイ／ロウとトグルし、上述のように、選択信号５がハイレベルのときの動作と、ロウレベルのときの動作が繰り返される。
【０１０５】
このように、ＣＰＵ１から初期化信号３が出力される度に、エラー信号７のレベルが変わるため、エラー信号７の経路の故障を検出することが可能となる。
【０１０６】
なお、カウンタ８のオーバーフロー信号１０とカウンタ９のオーバーフロー信号１１のアクティブレベルがロウレベルである場合についても、上記と同様の動作となる。
【０１０７】
本実施形態によると、第２の実施形態と同様に、第１の実施形態のユーザー動作中にエラー信号７の故障を検出することができるとともに、エラー信号７の経路の故障を検出することもできる。さらに、本実施形態によると、第２の実施形態のようにアクティブレベル設定回路１９を設けて信号を反転する必要がなくなり、ウォッチドッグタイマ回路２７の出力に基づいてエラー信号７の経路故障を判定することができる。
【０１０８】
その理由は、カスケード接続された２つのカウンタ８、９のオーバーフロー信号１０、１１の一方のアクティブレベルを変更することで、アクティブレベル設定回路１９を追加することなく、ＣＰＵ１からの初期化信号の発生毎にエラー信号７の経路がハイレベル／ロウレベルに変化するため、ウォッチドッグタイマ回路２７から出力されたエラー信号７に基づいて、エラー信号７の経路の故障を検査できるからである。
【０１０９】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１１０】
１    ＣＰＵ
２    デジタル出力部
３    初期化信号
４    選択信号出力回路
５    選択信号
６、２７    ウォッチドッグタイマ回路
７    エラー信号
８、９    カウンタ
１０、１１    オーバーフロー信号
１２、１３    カウントクロックセレクタ
１４、１５    異常検出回路
１６、１７    異常検出信号
１８    エラー信号セレクタ
１９    アクティブレベル設定回路
２０    エラー出力信号
２１    エラー信号経路故障判定回路
２２    経路異常検出信号
２３    ウォッチドッグエラー信号
２４    エラー信号受信側
２５    カウントクロック信号
２６、２８、５２    タイマ
２９、３０    インバータ
５１    発振器
５３    ウォッチドッグタイマ
５４    カウント値
５５    デジタル入力部
１００、２００、３００    ＣＰＵ暴走検出装置
【図１】
2013037635.tif 000003
【図２】
2013037635.tif 000004
【図３】
2013037635.tif 000005
【図４】
2013037635.tif 000006
【図５】
2013037635.tif 000007