【解決手段】監視回路10は、クロック1に同期してカウント動作を行うnビットカウンタ12のカウンタ値を、クロック1と非同期で、かつ、クロック1の周波数以下の周波数を有するクロック2に同期して、直列に接続された複数のデータ保持回路14に順次保持し、データ保持回路14の各々で保持されるカウンタ値が一致する場合に異常検出信号を出力する。
第1のクロック信号に同期してカウント動作を行うカウンタのカウンタ値を、前記第1のクロック信号と非同期で、かつ、前記第1のクロック信号の周波数以下の周波数を有する第2のクロック信号に同期して、直列に接続された複数のデータ保持回路に順次保持し、
前記データ保持回路の各々で保持される前記カウンタ値が一致する場合に異常を通知する異常検出信号を出力する
監視方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
図4は、特許文献1に開示された自己診断機能付きタイマの構成図である。
図4に示すように、自己診断機能付きタイマは、カウント信号でカウントされるカウンタと、カウンタのカウンタ値をキャプチャ信号に同期してキャプチャする2個のキャプチャレジスタから成る1組のキャプチャレジスタと、各々のキャプチャレジスタに記憶されたカウンタ値を比較するキャプチャ値不一致検出回路とをキャプチャ信号毎に備える。
【0005】
自己診断機能付きタイマにおける各々のカウンタは、同じカウント信号に同期してカウントを行い、何れかのカウンタでオーバーフローが発生した場合、オーバーフロー信号を出力して、マイクロコントローラで異常が発生したことを外部に通知する。
【0006】
また、自己診断機能付きタイマは、同じカウント信号に同期してカウントを行う各々のカウンタのカウンタ値をカウンタ不一致検出回路で比較し、カウンタ値が一致しない場合、又は、キャプチャ信号に同期して記憶された、少なくとも1組のキャプチャレジスタのカウンタ値が異なる場合に、カウンタ又はキャプチャレジスタが故障したことを通知する異常検出信号を出力する。
【0007】
しかしながら、特許文献1に開示された自己診断機能付きタイマで自己診断を行うためには複数のカウンタが必要となる上、カウンタが故障したことは異常検出信号で通知できるが、複数のカウンタのうち、何れのカウンタが故障したのかまでは通知できない。
【0008】
また、キャプチャ信号毎に2個のキャプチャレジスタ、及びキャプチャ値不一致検出回路を実装しなければならず、回路が複雑になってしまう。
【0009】
本発明は、上述した課題を解決するために提案されたものであり、複数のカウンタを用いることなく自身の故障を通知することができる監視回路、マイクロコントローラ、及び監視方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明の監視回路は、第1のクロック信号に同期してカウント動作を行うカウンタと、前記カウンタのカウンタ値を出力する端子と直列に接続され、前記第1のクロック信号と非同期で、かつ、前記第1のクロック信号の周波数以下の周波数を有する第2のクロック信号に同期して、前記カウンタ値を順次保持する複数のデータ保持回路と、前記データ保持回路の各々で保持される前記カウンタ値が一致する場合に異常を通知する異常検出信号を出力する出力端子と、を備える。
【発明の効果】
【0011】
本発明によれば、複数のカウンタを用いることなく自身の故障を通知することができる、という効果を有する。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明を用いた実施形態の一例を詳細に説明する。なお、機能が同じ働きを担う構成要素には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。
【0014】
<第1実施形態>
図1は、第1実施形態に係る監視回路10のブロック構成の一例を示す図である。
【0015】
監視回路10は、外部から供給されるクロック1に同期して、0からnビットで表される値までをカウントするnビットカウンタ12と、入力がnビットカウンタ12における現在のカウンタ値を出力する出力端子に接続され、クロック1とは異なるクロック2に同期して、nビットカウンタ12のカウンタ値を保持するデータ保持回路14−1を備える。
【0016】
データ保持回路14−1の出力はデータ保持回路14−2の入力に接続され、データ保持回路14−2は、データ保持回路14−1と同じくクロック2に同期して、データ保持回路14−1から出力されるnビットカウンタ12のカウンタ値を保持する。
【0017】
更に、データ保持回路14−1、及びデータ保持回路14−2の各々の出力はデータ比較回路16に入力される。以降では、個々のデータ保持回路を区別して説明する必要がない場合には「データ保持回路14」ということにする。
【0018】
データ比較回路16には各々のデータ保持回路14の出力、すなわち、nビットカウンタ12のカウンタ値が入力される。データ比較回路16は、入力された各々のカウンタ値を比較し、入力される全てのカウンタ値が一致するか否かを示す比較結果信号を出力する。なお、入力される全てのカウンタ値が一致するか否かが示されれば比較結果信号をどのように表現してもよいが、ここでは一例として、入力される全てのカウンタ値が一致する場合には“1”を出力し、少なくとも1つのカウンタ値が異なる場合には“0”を出力するものとする。
【0019】
データ比較回路16から出力される比較結果信号はデータ保持回路14−Aに入力され、データ保持回路14−Aは、データ保持回路14−1及びデータ保持回路14−2に入力される同じクロック2に同期して、比較結果信号を保持する。
【0020】
更に、データ保持回路14−Aの出力は出力端子18に接続され、データ保持回路14−Aは出力端子18を介して、保持した比較結果信号を異常検出信号として監視回路10の外部に通知する。すなわち、データ保持回路14−Aは、出力用データ保持回路の一例である。
【0021】
なお、クロック1とクロック2は、互いに他方のクロックの動作とは無関係に動作する非同期のクロックであり、クロック2の周波数はクロック1の周波数以下に設定される。クロック1は第1のクロック信号の一例であり、クロック2は第2のクロック信号の一例である。
【0022】
また、「クロックに同期する」とは、クロックの立ち上がり又は立ち下がりといったレベルの変化点に従って処理を行うことをいう。したがって、データ保持回路14において「クロック2に同期して値を保持する」とは、クロック2の立ち上がり又は立ち下がりのタイミングで、各々のデータ保持回路14に入力される値を記憶することをいう。一例として、nビットカウンタ12は、クロック1の立ち上がりにおいてカウントアップを行い、各々のデータ保持回路14もクロック2の立ち上がりにおいて値を保持するものとする。
【0023】
図1に示すように、監視回路10ではデータ保持回路14−1の出力とデータ保持回路14−2の入力が接続されているため、クロック2に同期して、nビットカウンタのカウンタ値がデータ保持回路14−1からデータ保持回路14−2へと順次保持されることになる。このように一方のデータ保持回路14の出力と、他方のデータ保持回路14の入力を接続することを、「データ保持回路14を直列に接続する」という。また、n個のデータ保持回路14が直列に接続されている構成を、「データ保持回路14がn段接続されている」という場合があり、カウンタ値の入力元となるデータ保持回路14を「前段のデータ保持回路14」といい、カウンタ値の出力先となるデータ保持回路14を「後段のデータ保持回路14」という場合がある。すなわち、
図1において、データ保持回路14−1から見た場合、データ保持回路14−2は後段のデータ保持回路14であり、データ保持回路14−2から見た場合、データ保持回路14−1は前段のデータ保持回路14ということになる。
【0024】
次に、監視回路10の動作について説明する。
【0025】
nビットカウンタ12は、クロック1に同期して“0”から(2
n−1)まで1つずつカウンタ値を増加し、カウンタ値が(2
n−1)に達した後、更にカウンタ値が1増加した場合、オーバーフロー信号を出力してカウンタ値を“0”に戻す。ただし、nビットカウンタ12にクリア信号が入力された場合、nビットカウンタ12はカウンタ値を“0”に設定する。なお、説明の便宜上、
図1ではnビットカウンタ12からのオーバーフロー信号の出力、及びnビットカウンタ12へのクリア信号の入力を省略している。
【0026】
このようにnビットカウンタ12がカウンタ値を更新する状況において、データ保持回路14−1は、クロック2に同期してnビットカウンタ12のカウンタ値を保持する。そして、データ保持回路14−1で保持されたカウンタ値は、クロック2の次の立ち上がり時にデータ保持回路14−2によって保持される。すなわち、データ保持回路14−1で保持されたカウンタ値が、クロック2が立ち上がるタイミングで後段のデータ保持回路14に順次伝達され、保持されることになる。
【0027】
この際、クロック2の周波数はクロック1の周波数以下であることから、nビットカウンタ12が正常に動作している期間においては、クロック2の次の立ち上がりまでにnビットカウンタ12のカウンタ値が更新されるため、クロック2の立ち上がり毎にデータ保持回路14−1に保持されるカウンタ値は異なることになる。
【0028】
したがって、データ保持回路14−1で保持するカウンタ値と、データ保持回路14−2で保持するカウンタ値とは異なるため、データ比較回路16から出力される比較結果信号は“0”となり、異常検出信号として出力端子18から “0”が出力される。すなわち、異常検出信号が“0”の場合、nビットカウンタ12が正常に動作していることを示している。
【0029】
一方、nビットカウンタ12で異常が発生し、nビットカウンタ12のカウンタ値が更新されなくなってしまった場合には、データ保持回路14−1が保持するカウンタ値と、データ保持回路14−2が保持するカウンタ値は同じ値になる。この場合、データ比較回路16から出力される比較結果信号は“1”となり、異常検出信号として出力端子18から “1”が出力される。すなわち、異常検出信号が“1”の場合、nビットカウンタ12で異常が発生していることを示している。
【0030】
このように監視回路10は、nビットカウンタ12に対して直列に接続された2つのデータ保持回路14−1、14−2で保持されるカウンタ値を比較することで、監視回路10が故障したか否かを外部に通知することができる。
【0031】
また、監視回路10では、比較結果信号がクロック2に同期してデータ保持回路14−Aで保持されることから、nビットカウンタ12の動作が復旧してカウンタ値が更新され始めた場合であっても、少なくともクロック2の周期の間、異常検出信号が“1”に保持されることになる。したがって、nビットカウンタ12の復旧と同時に異常検出信号が“0”に変化する場合と比較して、異常検出信号を監視する外部回路において監視回路10の故障が検出しやすくなる。
【0032】
更に、データ保持回路14−Aとして、一度でも保持した値が“1”になった場合、例えばnビットカウンタ12が自然復旧し、データ比較回路16の出力が“0”になったとしても、データ保持回路14−Aに対する図示しないリセット信号が入るまで“1”を保持し続ける種類のデータ保持回路14を用いてもよい。この場合、監視回路10が自然復旧した後であっても、外部回路で監視回路10が故障したことを検出することができる。
【0033】
<第2実施形態>
図2は、第2実施形態に係る監視回路10Aのブロック構成の一例を示す図である。
【0034】
監視回路10Aが第1実施形態で説明した監視回路10と異なる点は、nビットカウンタ12に対してN個のデータ保持回路14−1〜14−N(Nは3以上の整数)が直列に接続され、データ保持回路14−1〜14−Nの出力がそれぞれデータ比較回路16Aに入力されている点であり、他の構成は監視回路10と同じである。
【0035】
データ比較回路16Aは、入力されたN個のカウンタ値を比較し、入力される全てのカウンタ値が一致するか否かを示す比較結果信号を出力する。データ比較回路16Aは第1実施形態に係るデータ比較回路16と同様に、例えば入力される全てのカウンタ値が一致する場合には“1”を出力し、少なくとも1つのカウンタ値が異なる場合には“0”を出力するものとする。
【0036】
nビットカウンタ12のカウンタ値は、クロック2の立ち上がり毎にデータ保持回路14−1からデータ保持回路14−Nまで1段ずつ順次伝達され、各々のデータ保持回路14で保持される。
【0037】
第1実施形態の監視回路10で説明したように、nビットカウンタ12が正常に動作している期間においては、クロック2の次の立ち上がりまでにnビットカウンタ12のカウンタ値が更新されるため、クロック2の立ち上がり毎にデータ保持回路14−1に保持されるカウンタ値は異なることになる。したがって、各々のデータ保持回路14で保持するカウンタ値は異なるため、データ比較回路16Aから出力される比較結果信号は“0”となり、異常検出信号として出力端子18から “0”が出力されることになる。
【0038】
一方、nビットカウンタ12で異常が発生し、nビットカウンタ12のカウンタ値が更新されなくなってしまった場合には、各々のデータ保持回路14が保持するカウンタ値は同じ値になる。したがって、データ比較回路16Aから出力される比較結果信号は“1”となり、異常検出信号として出力端子18から “1”が出力されることになる。
【0039】
しかしながら、クロック1とクロック2は非同期のクロックであるため、場合によってはクロック1の立ち上がりのタイミングと、クロック2の立ち上がりのタイミングが一致することがある。このようにクロック1の変化点とクロック2の変化点が一致した場合、クロック2の立ち上がりのタイミングでは、まだnビットカウンタ12のカウンタ値が更新されていない状況が確率的に発生することがある。したがって、データ保持回路14−1で保持したカウンタ値が、前回のクロック2の立ち上がりで保持したカウンタ値と同じになることがある。
【0040】
クロック2の隣り合う立ち上がりにおいて、データ保持回路14−1が同じカウンタ値を保持すると、データ保持回路14−1の後段に位置するデータ保持回路14−2で保持するカウンタ値が、データ保持回路14−1で保持するカウンタ値と同じになる。
【0041】
すなわち、第1実施形態に係る監視回路10では、nビットカウンタ12が正常に動作している場合であっても、異常検出信号が“1”になることがある。
【0042】
一方、監視回路10Aでは、3段以上のデータ保持回路14が直列に接続されているため、クロック1の立ち上がりのタイミングと、クロック2の立ち上がりのタイミングが一致する場合であっても、各々のデータ保持回路14で保持される全てのカウンタ値が一致することはない。したがって、nビットカウンタ12が正常に動作しているにもかかわらず、異常検出信号が“1”になるといった状況は発生しない。
【0043】
<監視回路の適用例>
上記に説明した監視回路10又は監視回路10Aは、例えばウォッチドッグタイマ専用IC(Integrated Circuit)に内蔵される。
【0044】
ウォッチドッグタイマ専用ICは、クロック1の入力端子であるクロック1端子、クロック2の入力端子であるクロック2端子、nビットカウンタ12がオーバーフローした場合にオーバーフロー信号を出力するオーバーフロー端子、nビットカウンタ12をクリアするクリア信号の入力端子であるクリア端子、及び監視回路10又は監視回路10Aの異常検出信号を出力する異常検出端子を備える。
【0045】
ウォッチドッグタイマ専用ICは、nビットカウンタ12がオーバーフローするまでにクリア信号を受け付けなかった場合、オーバーフロー端子からオーバーフロー信号を出力する。また、ウォッチドッグタイマ専用ICは、内蔵されている監視回路10又は監視回路10Aのnビットカウンタ12が故障した場合、異常検出端子から値を“1”に設定した異常検出信号を出力する。
【0046】
すなわち、ウォッチドッグタイマ専用ICは、監視回路10又は監視回路10Aを内蔵することで、監視回路10又は監視回路10Aはnビットカウンタ12の故障を外部に通知することができる。
【0047】
監視回路10又は監視回路10Aは、例えばCPU(Central Processing Unit)を搭載したMCU(Micro Controller Unit)のように、命令コード(「プログラム」ともいう)を解釈して、命令コードで規定された処理を実行するマイクロコントローラ20にも内蔵される。
【0048】
図3は、監視回路10又は監視回路10Aを内蔵したマイクロコントローラ20の概略を示すブロック構成図の一例である。マイクロコントローラ20は、監視回路10及び監視回路10Aの何れを内蔵してもよいが、ここでは監視回路10を内蔵しているものとして説明を行う。
【0049】
マイクロコントローラ20は、監視回路10と、演算回路22と、クロック供給回路24を備える。
【0050】
演算回路22は命令コードを解釈し、図示しない周辺回路を制御しながら命令コードで規定された処理を実行する。
【0051】
命令コードにnビットカウンタ12をクリアするクリア命令が含まれる場合、演算回路22はクリア信号を監視回路10のnビットカウンタ12に出力する。
【0052】
クロック供給回路24はクロック1及びクロック2を生成し、監視回路10に供給する。
【0053】
監視回路10は、nビットカウンタ12がオーバーフローするまでにクリア信号を受け付けなかった場合、オーバーフロー信号をマイクロコントローラ20の外部に出力する。マイクロコントローラ20からオーバーフロー信号を受け付けた図示しないマイクロコントローラ監視回路は、例えばマイクロコントローラ20をリセットする等の処理を行い、マイクロコントローラ20の動作を復旧させる。
【0054】
また、監視回路10は、nビットカウンタ12が故障した場合、値を“1”に設定した異常検出信号を演算回路22に出力する。
【0055】
値が“1”に設定された異常検出信号を受け付けた演算回路22は命令コードの実行を中断し、監視回路10が故障した場合に実行する予め定めた処理、例えばLEDの点灯、及び通信回線を介した故障発生電文の送信といった処理を割り込み処理として実行する。
【0056】
監視回路10の故障を割り込み処理で外部に通報することにより、例えば演算回路22がポーリング方式で異常検出信号を監視する場合と比較して、監視回路10の故障をいち早く知らせることができる。しかしながら、異常検出信号の監視方法に制約はなく、演算回路22がポーリング方式で監視するようにしてもよい。
【0057】
すなわち、マイクロコントローラ20は、監視回路10又は監視回路10Aを内蔵することで、監視回路10又は監視回路10Aはnビットカウンタ12の故障を外部に通知することができる。
【0058】
なお、上記ではマイクロコントローラ20がクロック供給回路24を含む例について説明したが、マイクロコントローラ20にクロック供給回路24は必ずしも必要ない。マイクロコントローラ20にクロック供給回路24が含まれない場合、マイクロコントローラ20はクロック1及びクロック2を図示しない周辺回路から受け付け、監視回路10又は監視回路10Aに供給すればよい。
【0059】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記の各実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記の各実施形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も本発明の技術的範囲に含まれる。