(57)【要約】【課題】複数のカウンタを用いることなく自身の故障を通知する。【解決手段】監視回路１０は、クロック１に同期してカウント動作を行うｎビットカウンタ１２のカウンタ値を、クロック１と非同期で、かつ、クロック１の周波数以下の周波数を有するクロック２に同期して、直列に接続された複数のデータ保持回路１４に順次保持し、データ保持回路１４の各々で保持されるカウンタ値が一致する場合に異常検出信号を出力する。【選択図】図１
2019096070.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号に同期してカウント動作を行うカウンタと、
前記カウンタのカウンタ値を出力する端子と直列に接続され、前記第１のクロック信号と非同期で、かつ、前記第１のクロック信号の周波数以下の周波数を有する第２のクロック信号に同期して、前記カウンタ値を順次保持する複数のデータ保持回路と、
前記データ保持回路の各々で保持される前記カウンタ値が一致する場合に異常を通知する異常検出信号を出力する出力端子と、
を備えた監視回路。
【請求項２】
前記データ保持回路が前記端子に対して３つ以上直列に接続された
請求項１記載の監視回路。
【請求項３】
前記異常検出信号を、前記第２のクロック信号に同期して前記出力端子から出力する出力用データ保持回路を備えた
請求項１又は請求項２記載の監視回路。
【請求項４】
請求項１〜請求項３の何れか１項に記載の監視回路と、
前記監視回路から異常を通知する異常検出信号が出力された場合に、前記異常検出信号に対応した予め定めた処理を実行する演算回路と、
を備えたマイクロコントローラ。
【請求項５】
前記演算回路は、前記監視回路から前記異常検出信号が出力された場合、割り込み処理を実行する
請求項４記載のマイクロコントローラ。
【請求項６】
第１のクロック信号に同期してカウント動作を行うカウンタのカウンタ値を、前記第１のクロック信号と非同期で、かつ、前記第１のクロック信号の周波数以下の周波数を有する第２のクロック信号に同期して、直列に接続された複数のデータ保持回路に順次保持し、
前記データ保持回路の各々で保持される前記カウンタ値が一致する場合に異常を通知する異常検出信号を出力する
監視方法。
【請求項７】
前記カウンタ値を直列に接続された３つ以上の前記データ保持回路に順次保持する
請求項６記載の監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視回路、マイクロコントローラ、及び監視方法に関するものである。
【背景技術】
【０００２】
マイクロコントローラの故障により、カウンタがオーバーフローする前にマイクロコントローラによってカウンタがクリアされなかった場合にオーバーフロー信号を出力して、マイクロコントローラで異常が発生したことを外部に通知する自己診断機能付きタイマ（例えば、特許文献１）が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１２７６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図４は、特許文献１に開示された自己診断機能付きタイマの構成図である。図４に示すように、自己診断機能付きタイマは、カウント信号でカウントされるカウンタと、カウンタのカウンタ値をキャプチャ信号に同期してキャプチャする２個のキャプチャレジスタから成る１組のキャプチャレジスタと、各々のキャプチャレジスタに記憶されたカウンタ値を比較するキャプチャ値不一致検出回路とをキャプチャ信号毎に備える。
【０００５】
自己診断機能付きタイマにおける各々のカウンタは、同じカウント信号に同期してカウントを行い、何れかのカウンタでオーバーフローが発生した場合、オーバーフロー信号を出力して、マイクロコントローラで異常が発生したことを外部に通知する。
【０００６】
また、自己診断機能付きタイマは、同じカウント信号に同期してカウントを行う各々のカウンタのカウンタ値をカウンタ不一致検出回路で比較し、カウンタ値が一致しない場合、又は、キャプチャ信号に同期して記憶された、少なくとも１組のキャプチャレジスタのカウンタ値が異なる場合に、カウンタ又はキャプチャレジスタが故障したことを通知する異常検出信号を出力する。
【０００７】
しかしながら、特許文献１に開示された自己診断機能付きタイマで自己診断を行うためには複数のカウンタが必要となる上、カウンタが故障したことは異常検出信号で通知できるが、複数のカウンタのうち、何れのカウンタが故障したのかまでは通知できない。
【０００８】
また、キャプチャ信号毎に２個のキャプチャレジスタ、及びキャプチャ値不一致検出回路を実装しなければならず、回路が複雑になってしまう。
【０００９】
本発明は、上述した課題を解決するために提案されたものであり、複数のカウンタを用いることなく自身の故障を通知することができる監視回路、マイクロコントローラ、及び監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の監視回路は、第１のクロック信号に同期してカウント動作を行うカウンタと、前記カウンタのカウンタ値を出力する端子と直列に接続され、前記第１のクロック信号と非同期で、かつ、前記第１のクロック信号の周波数以下の周波数を有する第２のクロック信号に同期して、前記カウンタ値を順次保持する複数のデータ保持回路と、前記データ保持回路の各々で保持される前記カウンタ値が一致する場合に異常を通知する異常検出信号を出力する出力端子と、を備える。
【発明の効果】
【００１１】
本発明によれば、複数のカウンタを用いることなく自身の故障を通知することができる、という効果を有する。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係る監視回路の構成例を示すブロック構成図である。
【図２】第２実施形態に係る監視回路の構成例を示すブロック構成図である。
【図３】監視回路を内蔵したマイクロコントローラの構成例を示すブロック構成図である。
【図４】従来の自己診断機能付きタイマの一例を示す構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明を用いた実施形態の一例を詳細に説明する。なお、機能が同じ働きを担う構成要素には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。
【００１４】
＜第１実施形態＞
図１は、第１実施形態に係る監視回路１０のブロック構成の一例を示す図である。
【００１５】
監視回路１０は、外部から供給されるクロック１に同期して、０からｎビットで表される値までをカウントするｎビットカウンタ１２と、入力がｎビットカウンタ１２における現在のカウンタ値を出力する出力端子に接続され、クロック１とは異なるクロック２に同期して、ｎビットカウンタ１２のカウンタ値を保持するデータ保持回路１４−１を備える。
【００１６】
データ保持回路１４−１の出力はデータ保持回路１４−２の入力に接続され、データ保持回路１４−２は、データ保持回路１４−１と同じくクロック２に同期して、データ保持回路１４−１から出力されるｎビットカウンタ１２のカウンタ値を保持する。
【００１７】
更に、データ保持回路１４−１、及びデータ保持回路１４−２の各々の出力はデータ比較回路１６に入力される。以降では、個々のデータ保持回路を区別して説明する必要がない場合には「データ保持回路１４」ということにする。
【００１８】
データ比較回路１６には各々のデータ保持回路１４の出力、すなわち、ｎビットカウンタ１２のカウンタ値が入力される。データ比較回路１６は、入力された各々のカウンタ値を比較し、入力される全てのカウンタ値が一致するか否かを示す比較結果信号を出力する。なお、入力される全てのカウンタ値が一致するか否かが示されれば比較結果信号をどのように表現してもよいが、ここでは一例として、入力される全てのカウンタ値が一致する場合には“１”を出力し、少なくとも１つのカウンタ値が異なる場合には“０”を出力するものとする。
【００１９】
データ比較回路１６から出力される比較結果信号はデータ保持回路１４−Ａに入力され、データ保持回路１４−Ａは、データ保持回路１４−１及びデータ保持回路１４−２に入力される同じクロック２に同期して、比較結果信号を保持する。
【００２０】
更に、データ保持回路１４−Ａの出力は出力端子１８に接続され、データ保持回路１４−Ａは出力端子１８を介して、保持した比較結果信号を異常検出信号として監視回路１０の外部に通知する。すなわち、データ保持回路１４−Ａは、出力用データ保持回路の一例である。
【００２１】
なお、クロック１とクロック２は、互いに他方のクロックの動作とは無関係に動作する非同期のクロックであり、クロック２の周波数はクロック１の周波数以下に設定される。クロック１は第１のクロック信号の一例であり、クロック２は第２のクロック信号の一例である。
【００２２】
また、「クロックに同期する」とは、クロックの立ち上がり又は立ち下がりといったレベルの変化点に従って処理を行うことをいう。したがって、データ保持回路１４において「クロック２に同期して値を保持する」とは、クロック２の立ち上がり又は立ち下がりのタイミングで、各々のデータ保持回路１４に入力される値を記憶することをいう。一例として、ｎビットカウンタ１２は、クロック１の立ち上がりにおいてカウントアップを行い、各々のデータ保持回路１４もクロック２の立ち上がりにおいて値を保持するものとする。
【００２３】
図１に示すように、監視回路１０ではデータ保持回路１４−１の出力とデータ保持回路１４−２の入力が接続されているため、クロック２に同期して、ｎビットカウンタのカウンタ値がデータ保持回路１４−１からデータ保持回路１４−２へと順次保持されることになる。このように一方のデータ保持回路１４の出力と、他方のデータ保持回路１４の入力を接続することを、「データ保持回路１４を直列に接続する」という。また、ｎ個のデータ保持回路１４が直列に接続されている構成を、「データ保持回路１４がｎ段接続されている」という場合があり、カウンタ値の入力元となるデータ保持回路１４を「前段のデータ保持回路１４」といい、カウンタ値の出力先となるデータ保持回路１４を「後段のデータ保持回路１４」という場合がある。すなわち、図１において、データ保持回路１４−１から見た場合、データ保持回路１４−２は後段のデータ保持回路１４であり、データ保持回路１４−２から見た場合、データ保持回路１４−１は前段のデータ保持回路１４ということになる。
【００２４】
次に、監視回路１０の動作について説明する。
【００２５】
ｎビットカウンタ１２は、クロック１に同期して“０”から(２n−１)まで１つずつカウンタ値を増加し、カウンタ値が(２n−１)に達した後、更にカウンタ値が１増加した場合、オーバーフロー信号を出力してカウンタ値を“０”に戻す。ただし、ｎビットカウンタ１２にクリア信号が入力された場合、ｎビットカウンタ１２はカウンタ値を“０”に設定する。なお、説明の便宜上、図１ではｎビットカウンタ１２からのオーバーフロー信号の出力、及びｎビットカウンタ１２へのクリア信号の入力を省略している。
【００２６】
このようにｎビットカウンタ１２がカウンタ値を更新する状況において、データ保持回路１４−１は、クロック２に同期してｎビットカウンタ１２のカウンタ値を保持する。そして、データ保持回路１４−１で保持されたカウンタ値は、クロック２の次の立ち上がり時にデータ保持回路１４−２によって保持される。すなわち、データ保持回路１４−１で保持されたカウンタ値が、クロック２が立ち上がるタイミングで後段のデータ保持回路１４に順次伝達され、保持されることになる。
【００２７】
この際、クロック２の周波数はクロック１の周波数以下であることから、ｎビットカウンタ１２が正常に動作している期間においては、クロック２の次の立ち上がりまでにｎビットカウンタ１２のカウンタ値が更新されるため、クロック２の立ち上がり毎にデータ保持回路１４−１に保持されるカウンタ値は異なることになる。
【００２８】
したがって、データ保持回路１４−１で保持するカウンタ値と、データ保持回路１４−２で保持するカウンタ値とは異なるため、データ比較回路１６から出力される比較結果信号は“０”となり、異常検出信号として出力端子１８から “０”が出力される。すなわち、異常検出信号が“０”の場合、ｎビットカウンタ１２が正常に動作していることを示している。
【００２９】
一方、ｎビットカウンタ１２で異常が発生し、ｎビットカウンタ１２のカウンタ値が更新されなくなってしまった場合には、データ保持回路１４−１が保持するカウンタ値と、データ保持回路１４−２が保持するカウンタ値は同じ値になる。この場合、データ比較回路１６から出力される比較結果信号は“１”となり、異常検出信号として出力端子１８から “１”が出力される。すなわち、異常検出信号が“１”の場合、ｎビットカウンタ１２で異常が発生していることを示している。
【００３０】
このように監視回路１０は、ｎビットカウンタ１２に対して直列に接続された２つのデータ保持回路１４−１、１４−２で保持されるカウンタ値を比較することで、監視回路１０が故障したか否かを外部に通知することができる。
【００３１】
また、監視回路１０では、比較結果信号がクロック２に同期してデータ保持回路１４−Ａで保持されることから、ｎビットカウンタ１２の動作が復旧してカウンタ値が更新され始めた場合であっても、少なくともクロック２の周期の間、異常検出信号が“１”に保持されることになる。したがって、ｎビットカウンタ１２の復旧と同時に異常検出信号が“０”に変化する場合と比較して、異常検出信号を監視する外部回路において監視回路１０の故障が検出しやすくなる。
【００３２】
更に、データ保持回路１４−Ａとして、一度でも保持した値が“１”になった場合、例えばｎビットカウンタ１２が自然復旧し、データ比較回路１６の出力が“０”になったとしても、データ保持回路１４−Ａに対する図示しないリセット信号が入るまで“１”を保持し続ける種類のデータ保持回路１４を用いてもよい。この場合、監視回路１０が自然復旧した後であっても、外部回路で監視回路１０が故障したことを検出することができる。
【００３３】
＜第２実施形態＞
図２は、第２実施形態に係る監視回路１０Ａのブロック構成の一例を示す図である。
【００３４】
監視回路１０Ａが第１実施形態で説明した監視回路１０と異なる点は、ｎビットカウンタ１２に対してＮ個のデータ保持回路１４−１〜１４−Ｎ（Ｎは３以上の整数）が直列に接続され、データ保持回路１４−１〜１４−Ｎの出力がそれぞれデータ比較回路１６Ａに入力されている点であり、他の構成は監視回路１０と同じである。
【００３５】
データ比較回路１６Ａは、入力されたＮ個のカウンタ値を比較し、入力される全てのカウンタ値が一致するか否かを示す比較結果信号を出力する。データ比較回路１６Ａは第１実施形態に係るデータ比較回路１６と同様に、例えば入力される全てのカウンタ値が一致する場合には“１”を出力し、少なくとも１つのカウンタ値が異なる場合には“０”を出力するものとする。
【００３６】
ｎビットカウンタ１２のカウンタ値は、クロック２の立ち上がり毎にデータ保持回路１４−１からデータ保持回路１４−Ｎまで１段ずつ順次伝達され、各々のデータ保持回路１４で保持される。
【００３７】
第１実施形態の監視回路１０で説明したように、ｎビットカウンタ１２が正常に動作している期間においては、クロック２の次の立ち上がりまでにｎビットカウンタ１２のカウンタ値が更新されるため、クロック２の立ち上がり毎にデータ保持回路１４−１に保持されるカウンタ値は異なることになる。したがって、各々のデータ保持回路１４で保持するカウンタ値は異なるため、データ比較回路１６Ａから出力される比較結果信号は“０”となり、異常検出信号として出力端子１８から “０”が出力されることになる。
【００３８】
一方、ｎビットカウンタ１２で異常が発生し、ｎビットカウンタ１２のカウンタ値が更新されなくなってしまった場合には、各々のデータ保持回路１４が保持するカウンタ値は同じ値になる。したがって、データ比較回路１６Ａから出力される比較結果信号は“１”となり、異常検出信号として出力端子１８から “１”が出力されることになる。
【００３９】
しかしながら、クロック１とクロック２は非同期のクロックであるため、場合によってはクロック１の立ち上がりのタイミングと、クロック２の立ち上がりのタイミングが一致することがある。このようにクロック１の変化点とクロック２の変化点が一致した場合、クロック２の立ち上がりのタイミングでは、まだｎビットカウンタ１２のカウンタ値が更新されていない状況が確率的に発生することがある。したがって、データ保持回路１４−１で保持したカウンタ値が、前回のクロック２の立ち上がりで保持したカウンタ値と同じになることがある。
【００４０】
クロック２の隣り合う立ち上がりにおいて、データ保持回路１４−１が同じカウンタ値を保持すると、データ保持回路１４−１の後段に位置するデータ保持回路１４−２で保持するカウンタ値が、データ保持回路１４−１で保持するカウンタ値と同じになる。
【００４１】
すなわち、第１実施形態に係る監視回路１０では、ｎビットカウンタ１２が正常に動作している場合であっても、異常検出信号が“１”になることがある。
【００４２】
一方、監視回路１０Ａでは、３段以上のデータ保持回路１４が直列に接続されているため、クロック１の立ち上がりのタイミングと、クロック２の立ち上がりのタイミングが一致する場合であっても、各々のデータ保持回路１４で保持される全てのカウンタ値が一致することはない。したがって、ｎビットカウンタ１２が正常に動作しているにもかかわらず、異常検出信号が“１”になるといった状況は発生しない。
【００４３】
＜監視回路の適用例＞
上記に説明した監視回路１０又は監視回路１０Ａは、例えばウォッチドッグタイマ専用ＩＣ(Integrated Circuit)に内蔵される。
【００４４】
ウォッチドッグタイマ専用ＩＣは、クロック１の入力端子であるクロック１端子、クロック２の入力端子であるクロック２端子、ｎビットカウンタ１２がオーバーフローした場合にオーバーフロー信号を出力するオーバーフロー端子、ｎビットカウンタ１２をクリアするクリア信号の入力端子であるクリア端子、及び監視回路１０又は監視回路１０Ａの異常検出信号を出力する異常検出端子を備える。
【００４５】
ウォッチドッグタイマ専用ＩＣは、ｎビットカウンタ１２がオーバーフローするまでにクリア信号を受け付けなかった場合、オーバーフロー端子からオーバーフロー信号を出力する。また、ウォッチドッグタイマ専用ＩＣは、内蔵されている監視回路１０又は監視回路１０Ａのｎビットカウンタ１２が故障した場合、異常検出端子から値を“１”に設定した異常検出信号を出力する。
【００４６】
すなわち、ウォッチドッグタイマ専用ＩＣは、監視回路１０又は監視回路１０Ａを内蔵することで、監視回路１０又は監視回路１０Ａはｎビットカウンタ１２の故障を外部に通知することができる。  
【００４７】
監視回路１０又は監視回路１０Ａは、例えばＣＰＵ(Central Processing Unit)を搭載したＭＣＵ(Micro Controller Unit)のように、命令コード（「プログラム」ともいう）を解釈して、命令コードで規定された処理を実行するマイクロコントローラ２０にも内蔵される。
【００４８】
図３は、監視回路１０又は監視回路１０Ａを内蔵したマイクロコントローラ２０の概略を示すブロック構成図の一例である。マイクロコントローラ２０は、監視回路１０及び監視回路１０Ａの何れを内蔵してもよいが、ここでは監視回路１０を内蔵しているものとして説明を行う。
【００４９】
マイクロコントローラ２０は、監視回路１０と、演算回路２２と、クロック供給回路２４を備える。
【００５０】
演算回路２２は命令コードを解釈し、図示しない周辺回路を制御しながら命令コードで規定された処理を実行する。
【００５１】
命令コードにｎビットカウンタ１２をクリアするクリア命令が含まれる場合、演算回路２２はクリア信号を監視回路１０のｎビットカウンタ１２に出力する。
【００５２】
クロック供給回路２４はクロック１及びクロック２を生成し、監視回路１０に供給する。
【００５３】
監視回路１０は、ｎビットカウンタ１２がオーバーフローするまでにクリア信号を受け付けなかった場合、オーバーフロー信号をマイクロコントローラ２０の外部に出力する。マイクロコントローラ２０からオーバーフロー信号を受け付けた図示しないマイクロコントローラ監視回路は、例えばマイクロコントローラ２０をリセットする等の処理を行い、マイクロコントローラ２０の動作を復旧させる。
【００５４】
また、監視回路１０は、ｎビットカウンタ１２が故障した場合、値を“１”に設定した異常検出信号を演算回路２２に出力する。
【００５５】
値が“１”に設定された異常検出信号を受け付けた演算回路２２は命令コードの実行を中断し、監視回路１０が故障した場合に実行する予め定めた処理、例えばＬＥＤの点灯、及び通信回線を介した故障発生電文の送信といった処理を割り込み処理として実行する。
【００５６】
監視回路１０の故障を割り込み処理で外部に通報することにより、例えば演算回路２２がポーリング方式で異常検出信号を監視する場合と比較して、監視回路１０の故障をいち早く知らせることができる。しかしながら、異常検出信号の監視方法に制約はなく、演算回路２２がポーリング方式で監視するようにしてもよい。
【００５７】
すなわち、マイクロコントローラ２０は、監視回路１０又は監視回路１０Ａを内蔵することで、監視回路１０又は監視回路１０Ａはｎビットカウンタ１２の故障を外部に通知することができる。
【００５８】
なお、上記ではマイクロコントローラ２０がクロック供給回路２４を含む例について説明したが、マイクロコントローラ２０にクロック供給回路２４は必ずしも必要ない。マイクロコントローラ２０にクロック供給回路２４が含まれない場合、マイクロコントローラ２０はクロック１及びクロック２を図示しない周辺回路から受け付け、監視回路１０又は監視回路１０Ａに供給すればよい。
【００５９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記の各実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記の各実施形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【符号の説明】
【００６０】
１０（１０Ａ）・・・監視回路
１２・・・ｎビットカウンタ
１４（１４−１〜１４−Ｎ、１４−Ａ）・・・データ保持回路
１６（１６Ａ）・・・データ比較回路
１８・・・出力端子
２０・・・マイクロコントローラ
２２・・・演算回路
２４・・・クロック供給回路
【図１】
2019096070.tif 000003
【図２】
2019096070.tif 000004
【図３】
2019096070.tif 000005
【図４】
2019096070.tif 000006