以下、本発明の実施形態について、図面を参照して説明する。図1は、本発明の実施形態における周波数カウンタの概略構成を示したブロック図である。周波数カウンタ10は、パルス生成回路11と、パルス数カウンタ12と、パルス周期カウンタ13と、パルス周期積算レジスタ14と、加算器15と、パルス数レジスタ16と、クロック数レジスタ17と、パルス周期変動判定部18と、を含んで構成される。また、パルス周期変動判定部18は、パルス周期レジスタ181と、パルス周期変動リミット算出回路182と、比較器183および比較器184と、論理和回路(以下、「OR回路」という)185と、論理積回路(以下、「AND回路」という)186と、を含んで構成される。
周波数カウンタ10は、入力された基準クロックに基づいて、入力された被測定信号の周波数を算出するために使用するデータを出力する。より具体的には、周波数カウンタ10は、被測定信号の周期が複数含まれる合計の期間(以下、「サンプリング時間」という)を表すデータとして、サンプリング時間に含まれる基準クロックのクロック数のデータ(以下、「クロック数データ」という)を出力する。また、周波数カウンタ10は、サンプリング時間内に含まれる被測定信号のパルス数のデータ(以下、「パルス数データ」という)を出力する。
なお、図1に示した周波数カウンタ10の概略構成においては、クロック数データとパルス数データとに基づいて、被測定信号における最終的な周波数を算出する周波数演算部の図示を省略している。この不図示の周波数演算部は、従来のレシプロカル型周波数カウンタにおいて被測定信号の周波数を算出する処理と同様に、クロック数データをパルス数データで除算することによって平均化した被測定信号の1周期分の時間を算出し、算出した被測定信号の1周期分の時間の逆数をとることによって、被測定信号における最終的な周波数を算出する。なお、不図示の周波数演算部の機能は、例えば、汎用または専用の論理回路の構成よって実現してもよいし、CPU(Central Processing Unit)などの処理装置によって実現してもよい。
また、図1に示した周波数カウンタ10の概略構成においては、不図示の周波数演算部が算出した被測定信号における最終的な周波数の値を提示するための表示部の図示も省略している。図1に示した周波数カウンタ10と、不図示の周波数演算部と、不図示の表示部とを含んだ構成にすることによって、単体で動作させる周波数カウンタ、いわゆる、周波数測定装置を実現することができる。
なお、周波数カウンタ10は、様々な設備を持つプラントにおいて、プラント内に配置されたそれぞれの設備が稼働している状態の監視や設備の運転の制御を行うことを目的としたフィールド機器と呼ばれる測定器や操作器などの現場機器(例えば、差圧・圧力伝送器)に搭載してもよい。この場合、不図示の表示部は、周波数カウンタ10を搭載したフィールド機器に備えた表示部であってもよい。さらに、不図示の周波数演算部の機能も、周波数カウンタ10を搭載したフィールド機器に備えた制御部や処理部が実現してもよい。
パルス生成回路11は、被測定信号を基準クロックに同期させる回路である。より具体的には、パルス生成回路11は、被測定信号の信号レベルを基準クロックのタイミングごとに判定することによって、被測定信号の周期の始まりのタイミングを検出する。つまり、パルス生成回路11は、被測定信号の出現を検出する。パルス生成回路11は、被測定信号の出現を検出したとき、このことを表す被測定信号パルスを生成する。ここで、パルス生成回路11が生成する被測定信号パルスは、基準クロックに同期したパルス信号である。周波数カウンタ10に備えたそれぞれの構成要素は、パルス生成回路11が生成した被測定信号パルスに応じたタイミングで動作することによって、基準クロックに同期した被測定信号の周波数を測定する動作を行う。パルス生成回路11は、生成した被測定信号パルスを、パルス周期カウンタ13およびパルス周期変動判定部18のそれぞれに出力する。
パルス数カウンタ12は、サンプリング時間内に出現する被測定信号の数(パルス数)をカウントするカウンタ回路である。パルス数カウンタ12は、入力端子INに基準クロックが入力され、イネーブル端子ENに、パルス周期変動判定部18から出力されたイネーブル信号が入力されている。パルス数カウンタ12は、イネーブル端子ENに入力されたイネーブル信号が有効であることを表している間、入力端子INに入力された基準クロックをカウントすることによって、被測定信号のパルス数をカウントする。パルス数カウンタ12は、カウントした被測定信号のパルス数を表すカウント値のデータを、出力端子OUTから、パルス数レジスタ16に逐次出力する。
パルス周期カウンタ13は、被測定信号のそれぞれの周期を測定するカウンタ回路である。パルス周期カウンタ13は、入力端子INに基準クロックが入力され、リセット端子RSTに、被測定信号パルスが入力されている。パルス周期カウンタ13は、リセット端子RSTに入力された被測定信号パルスが被測定信号の出現を検出したことを表しているときの基準クロックに同期してリセットされ、リセットが解除されているときに、基準クロックをカウントする。パルス周期カウンタ13は、カウントした基準クロックの数(クロック数)を表すカウント値を、出力端子OUTから、加算器15およびパルス周期変動判定部18のそれぞれに逐次出力する。
パルス周期積算レジスタ14は、パルス周期カウンタ13から逐次出力されている基準クロックのクロック数を表すカウント値を、予め定めたタイミングで記憶するレジスタ回路である。パルス周期積算レジスタ14は、データ入力端子Dに、加算器15の出力データが入力され、イネーブル端子ENに、パルス周期変動判定部18から出力されたイネーブル信号が入力されている。パルス周期積算レジスタ14は、イネーブル端子ENに入力されたイネーブル信号が有効であることを表しているときに、データ入力端子Dに入力された加算器15の出力データを一時的に記憶する。パルス周期積算レジスタ14は、記憶したデータを、データ出力端子Qから、加算器15とクロック数レジスタ17のそれぞれに出力する。
加算器15は、パルス周期カウンタ13から逐次出力されている基準クロックのクロック数を表すカウント値と、パルス周期積算レジスタ14が記憶して出力したデータ(これの、基準クロックのクロック数を表すカウント値である)とを加算する加算回路である。加算器15は、パルス周期カウンタ13から出力されたカウント値と、パルス周期積算レジスタ14から出力されたデータとを加算した結果のデータを、パルス周期積算レジスタ14に逐次出力する。
周波数カウンタ10では、パルス周期積算レジスタ14と加算器15との構成によって、パルス周期カウンタ13がカウントした、被測定信号の周期を表す基準クロックのクロック数を表すそれぞれのデータを積算(累積)して記憶する。ここで、パルス周期積算レジスタ14が記憶しているデータ(以下、「積算データ」という)は、サンプリング時間に含まれる被測定信号のそれぞれの周期を表す基準クロックのクロック数を合計したデータである。つまり、パルス周期積算レジスタ14が記憶している積算データは、被測定信号の複数の周期が含まれるサンプリング時間の長さを表しているデータである。
パルス数レジスタ16は、パルス数カウンタ12から逐次出力されている被測定信号のパルス数を表すカウント値を、予め定めたタイミングで記憶するレジスタ回路である。パルス数レジスタ16は、データ入力端子Dに、パルス数カウンタ12から出力されたカウント値が入力され、イネーブル端子ENに、データロード信号が入力されている。パルス数レジスタ16は、イネーブル端子ENに入力されたデータロード信号が、データを記憶する(ロードする)ことを表しているときに、データ入力端子Dに入力された、パルス数カウンタ12が出力しているカウント値を一時的に記憶する。パルス数レジスタ16は、記憶したデータを、データ出力端子Qから、パルス数データとして周波数カウンタ10の外部に出力する。
クロック数レジスタ17は、パルス周期積算レジスタ14が記憶しているサンプリング時間の長さを表すデータ(積算データ)を、予め定めたタイミングで記憶するレジスタ回路である。クロック数レジスタ17は、データ入力端子Dに、パルス周期積算レジスタ14から出力された積算データが入力され、イネーブル端子ENに、データロード信号が入力されている。クロック数レジスタ17は、イネーブル端子ENに入力されたデータロード信号が、データを記憶する(ロードする)ことを表しているときに、データ入力端子Dに入力された、パルス周期積算レジスタ14が出力している積算データを一時的に記憶する。パルス数レジスタ16は、記憶した積算データを、データ出力端子Qから、クロック数データとして周波数カウンタ10の外部に出力する。
これにより、周波数カウンタ10を備えた単体で動作する周波数測定装置や周波数カウンタ10を搭載したフィールド機器において備える不図示の周波数演算部は、パルス数レジスタ16から出力されたパルス数データと、クロック数レジスタ17から出力されたクロック数データとに基づいて、被測定信号における最終的な周波数を算出することができる。より具体的には、不図示の周波数演算部は、クロック数データをパルス数データで除算することによって、平均化した被測定信号の1周期分の時間を算出する。そして、不図示の周波数演算部は、算出した被測定信号の1周期分の時間の逆数をとることによって、被測定信号の周波数を算出する。
なお、ここまでの構成は、従来のレシプロカル型周波数カウンタとほぼ同様の構成である。従来のレシプロカル型周波数カウンタと周波数カウンタ10とでは、クロック数データおよびパルス数データを取得するタイミングが異なる。より具体的には、従来のレシプロカル型周波数カウンタでは、サンプリング時間において、被測定信号パルスが被測定信号の出現を検出したことを表している全てのタイミングで取得したデータを、クロック数データとパルス数データとのそれぞれとして出力する。これに対して、周波数カウンタ10では、上述したように、パルス周期変動判定部18を備え、パルス周期変動判定部18から出力されたイネーブル信号が有効であることを表しているタイミングで取得したデータを、クロック数データとパルス数データとのそれぞれとして出力する。より具体的には、周波数カウンタ10では、上述したように、パルス数カウンタ12が、イネーブル信号が有効であることを表している間カウントした基準クロックのクロック数を被測定信号のパルス数としてカウントし、パルス数データとして出力する。また、周波数カウンタ10では、上述したように、パルス周期積算レジスタ14が、イネーブル信号が有効であることを表しているときに加算器15の出力データを記憶した積算データを、クロック数データとして出力する。
パルス周期変動判定部18は、入力されたパルス周期変動許容値に基づいて、パルス周期カウンタ13がカウントした被測定信号の1周期分の期間を表すカウント値が、予め定めた被測定信号における変動の規定量内の値であるか否かを判定し、判定した結果に基づいて、パルス数カウンタ12とパルス周期積算レジスタ14との動作を制御する。より具体的には、パルス周期変動判定部18は、パルス数カウンタ12によって基準クロックをカウントさせる、すなわち、サンプリング時間内に出現する被測定信号のパルス数としてカウントさせるか否かを制御する。また、パルス周期変動判定部18は、パルス周期積算レジスタ14によって加算器15の出力データを積算データとして記憶させる、すなわち、サンプリング時間に含まれる被測定信号のそれぞれの周期を表す基準クロックのクロック数を積算(累積)させるか否かを制御する。
パルス周期レジスタ181は、パルス周期カウンタ13から逐次出力されている基準クロックのクロック数を表すカウント値を、予め定めたタイミングで記憶するレジスタ回路である。パルス周期レジスタ181は、データ入力端子Dに、パルス周期カウンタ13から出力されたカウント値が入力され、イネーブル端子ENに、被測定信号パルスが入力されている。パルス周期レジスタ181は、イネーブル端子ENに入力された被測定信号パルスが被測定信号の出現を検出したことを表しているときに、データ入力端子Dに入力された、パルス周期カウンタ13が出力したカウント値を一時的に記憶する。すなわち、パルス周期レジスタ181は、パルス周期カウンタ13がカウントした被測定信号の1周期分を表す基準クロックのクロック数のデータ(以下、「1周期クロック数データ」という)を、それぞれの周期ごとに順次記憶する。パルス周期レジスタ181は、記憶した1周期クロック数データを、データ出力端子Qから、パルス周期変動リミット算出回路182に出力する。
パルス周期変動リミット算出回路182は、入力されたパルス周期変動許容値に基づいて、被測定信号の1周期分の期間において許容することができる周期の変動量を算出する回路である。より具体的には、パルス周期変動リミット算出回路182は、パルス周期レジスタ181に記憶されて出力された1周期クロック数データが表す基準クロックのクロック数と、パルス周期変動許容値に基づいて、被測定信号の1周期分として許容することができる範囲(許容範囲)の基準クロックのクロック数を算出する。
例えば、1周期クロック数データが表す基準クロックのクロック数が16クロックであり、パルス周期変動許容値が25%である場合を考える。この場合、パルス周期変動リミット算出回路182は、16クロックに対する±25%のクロック数をそれぞれ算出する。ここでは、16クロックに対する25%のクロック数は4クロックである。このため、パルス周期変動リミット算出回路182は、被測定信号の1周期が長くなる方向に変動した場合(長周期側に変動した場合)における限界(リミット)のクロック数として、16クロック+4クロック=20クロックを算出する。また、パルス周期変動リミット算出回路182は、被測定信号の1周期が短くなる方向に変動した場合(短周期側に変動した場合)におけるリミットのクロック数として、16クロック−4クロック=12クロックを算出する。ここで算出した12クロック〜20クロックまでの間の基準クロックのクロック数が、被測定信号の1周期分の許容範囲となる。
これにより、パルス周期変動判定部18は、パルス周期カウンタ13が被測定信号の周期をカウントしたカウント値が、12クロック〜20クロックまでの間にあれば、被測定信号の変動は予め定めた規定量内の変動であり、周波数を算出するために有効な(信頼性が高い)被測定信号であると判定することができる。一方、パルス周期変動判定部18は、パルス周期カウンタ13が被測定信号の周期をカウントしたカウント値が、12クロック〜20クロックまでの間になければ、被測定信号の変動は予め定めた規定量よりも大きな変動であり、周波数を算出するために無効な(信頼性の低い)被測定信号であると判定することができる。
なお、パルス周期変動許容値は、上述したように、許容することができる被測定信号の変動を割合で表した値のみではなく、例えば、基準クロックのクロック数を直接表した値であってもよい。また、パルス周期変動許容値は、長周期側の変動と短周期側の変動とが異なる値であってもよい。このパルス周期変動許容値は、周波数カウンタ10が測定する被測定信号に影響するノイズの大きさやノイズの頻度に応じて、適切な任意の値に設定することができる。
そして、パルス周期変動リミット算出回路182は、算出したそれぞれのリミットのクロック数に応じたデータを、比較器183と比較器184のそれぞれに出力する。より具体的には、被測定信号の1周期が長周期側に変動した場合のリミットのクロック数を表すデータ(以下、「長周期リミットデータ」という)を、比較器183に出力し、被測定信号の1周期が短周期側に変動した場合のリミットのクロック数を表すデータ(以下、「短周期リミットデータ」という)を、比較器184に出力する。
比較器183と比較器184とのそれぞれは、パルス周期変動リミット算出回路182から出力されたリミットのクロック数を表すデータと、パルス周期カウンタ13から逐次出力されている基準クロックのクロック数を表すカウント値とを比較する。そして、比較器183と比較器184とのそれぞれは、比較した結果を表す信号を、OR回路185に出力する。より具体的には、比較器183は、パルス周期変動リミット算出回路182から出力された長周期リミットデータと、パルス周期カウンタ13が出力したカウント値とを比較する。そして、比較器183は、パルス周期カウンタ13が出力したカウント値が、長周期リミットデータを超えた場合に、このことを表す長周期リミット信号をOR回路185に出力する。また、比較器184は、パルス周期変動リミット算出回路182から出力された短周期リミットデータと、パルス周期カウンタ13が出力したカウント値とを比較する。そして、比較器184は、パルス周期カウンタ13が出力したカウント値が、短周期リミットデータ以上である場合に、このことを表す短周期リミット信号をOR回路185に出力する。
OR回路185は、比較器183から出力された長周期リミット信号と、比較器184から出力された短周期リミット信号とを論理和した信号を、AND回路186の否定入力端子に出力する。
AND回路186は、パルス生成回路11から出力された被測定信号パルスと、OR回路185から出力された信号とを論理積した信号を、パルス周期変動判定部18が出力するイネーブル信号として、パルス数カウンタ12およびパルス周期積算レジスタ14のそれぞれに出力する。
このような構成によって、パルス周期変動判定部18は、パルス数カウンタ12とパルス周期積算レジスタ14との動作を制御する。ここで、OR回路185が出力する信号は、被測定信号の1周期分として許容することができる範囲の基準クロックのクロック数を表す信号である。従って、AND回路186が出力するイネーブル信号は、被測定信号パルスをOR回路185から出力された信号でマスクした信号である。このように、パルス周期変動判定部18は、1周期分として許容することができる被測定信号に対応した被測定信号パルスのみが含まれるイネーブル信号を、周波数カウンタ10が出力するクロック数データとパルス数データとのそれぞれを取得するタイミングを表す信号として出力する。より具体的には、パルス周期変動判定部18は、パルス数カウンタ12が基準クロックのクロック数を被測定信号のパルス数としてカウントするタイミングを表す信号、パルス周期積算レジスタ14が加算器15の出力データを積算データとして記憶するタイミングを表す信号として、イネーブル信号を出力する。
次に、周波数カウンタ10の動作の一例について説明する。図2は、本実施形態の周波数カウンタ10において被測定信号を測定する動作タイミングの一例を示したタイミングチャートである。図2に示した周波数カウンタ10の動作タイミングの一例を示したタイミングチャートには、周波数カウンタ10の入力信号および出力信号と、周波数カウンタ10に備えたそれぞれの構成要素の出力信号とを示している。より具体的には、図2には、周波数カウンタ10が周波数を算出する対象の被測定信号と、周波数カウンタ10の動作の基準のタイミングとなる基準クロックと、周波数カウンタ10が被測定信号の周波数を算出するために使用するデータを出力するタイミングを表すデータロード信号とのそれぞれのタイミングを示している。また、図2には、周波数カウンタ10に備えた構成要素の出力として、パルス生成回路11が出力する被測定信号パルス、パルス周期カウンタ13が出力する基準クロックのカウント値、パルス周期積算レジスタ14が記憶する積算データ、およびパルス数カウンタ12が出力する被測定信号のカウント値のそれぞれのタイミングを示している。また、図2には、パルス周期変動判定部18に備えた構成要素の出力として、パルス周期レジスタ181が記憶する1周期クロック数データ、長周期リミット信号、短周期リミット信号、およびイネーブル信号のそれぞれのタイミングを示している。また、図2には、周波数カウンタ10が出力するデータとして、パルス数データとクロック数データとのそれぞれのタイミングを示している。
なお、以下の説明においては、図2に示した最初のタイミングより以前に、周波数カウンタ10に備えたそれぞれの構成要素を初期化する動作は終了しており、図2に示した最初のタイミングから、被測定信号の周波数を測定するサンプリング時間における動作が開始されるものとして説明する。そして、以下の説明においては、被測定信号の波形において5周期目の“Low”レベルが欠けてしまっている場合の動作について説明する。ここで、周波数カウンタ10には、パルス周期変動許容値=40%が入力されているものとして説明する。
パルス生成回路11は、入力された被測定信号の出現を検出し、被測定信号パルスを生成している。図2に示したタイミングチャートにおいては、被測定信号の出現を検出したときに、基準クロックの1周期分だけ“High”レベルとなる被測定信号パルスを示している。
そして、パルス周期カウンタ13は、被測定信号パルスが“High”レベルである期間の基準クロックに同期したタイミングでリセットされ、リセットが解除されたときから、基準クロックのクロック数をカウントしたカウント値(以下、「パルス周期カウンタ値」という)を出力する。図2に示したタイミングチャートにおいては、被測定信号パルスが“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングでリセットされ、基準クロックの立ち上がりエッジのタイミングで加算(インクリメント)されるパルス周期カウンタ値を示している。
パルス周期レジスタ181は、被測定信号パルスが“High”レベルである期間の基準クロックに同期したタイミングで、パルス周期カウンタ13が出力したパルス周期カウンタ値を、1周期クロック数データとして記憶する。図2に示したタイミングチャートにおいては、被測定信号パルスが“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングでパルス周期カウンタ値を記憶した1周期クロック数データの変化を示している。例えば、図2に示したタイミングチャートにおける被測定信号の1周期目に対応する被測定信号パルスのタイミングでは、パルス周期カウンタ値=“8”が、1周期クロック数データとして記憶されている。以降同様に、1周期クロック数データは、被測定信号パルスが“High”レベルである期間の基準クロックに同期したそれぞれのタイミングで、対応するパルス周期カウンタ値に更新される。
パルス周期変動リミット算出回路182は、パルス周期変動許容値と、1周期クロック数データ、つまり、前の周期の被測定信号における最終的なパルス周期カウンタ値とに基づいて、被測定信号の1周期分として許容することができる範囲の基準クロックのクロック数を算出する。図2においては、パルス周期変動許容値=40%であるため、例えば、1周期クロック数データが表す基準クロックのクロック数=“8”である場合、パルス周期変動リミット算出回路182は、8クロックに対する40%のクロック数=3クロックを算出する。これにより、パルス周期変動判定部18は、次の周期の被測定信号におけるパルス周期カウンタ値が、8クロック−3クロック=5クロック〜8クロック+3クロック=11クロックまでの間にあれば、周波数を算出するために有効な被測定信号におけるパルス周期カウンタ値であり、5クロック〜11クロックまでの間になければ、周波数を算出するために無効な被測定信号におけるパルス周期カウンタ値であると判定することができる。パルス周期変動リミット算出回路182は、8クロック+3クロック=11クロックを、長周期リミットデータとして比較器183に出力し、8クロック−3クロック=5クロックを、短周期リミットデータとして比較器184に出力する。
これにより、比較器183と比較器184とのそれぞれから、図2に示したような長周期リミット信号と短周期リミット信号とのそれぞれが出力される。より具体的には、比較器183は、パルス周期変動リミット算出回路182から出力された長周期リミットデータと、パルス周期カウンタ13が出力した現在のパルス周期カウンタ値とを比較した長周期リミット信号を出力する。例えば、図2に示したタイミングチャートにおける被測定信号の1周期目の期間において比較器183は、パルス周期カウンタ値が長周期リミットデータ=11クロックを超えていないため、パルス周期カウンタ値が有効な被測定信号であることを表す“Low”レベルの長周期リミット信号を出力する。また、比較器184は、パルス周期変動リミット算出回路182から出力された短周期リミットデータと、パルス周期カウンタ13が出力した現在のパルス周期カウンタ値とを比較した短周期リミット信号を出力する。例えば、図2に示したタイミングチャートにおける被測定信号の1周期目の期間において比較器184は、パルス周期カウンタ値が短周期リミットデータ=5クロック未満である期間が、パルス周期カウンタ値が無効な被測定信号であることを表す“High”レベルであり、パルス周期カウンタ値が短周期リミットデータ=5クロック以上であるときに“Low”レベルになる短周期リミット信号を出力する。
長周期リミット信号と短周期リミット信号とが共に“Low”レベルあるとき、現在のパルス周期カウンタ値は、有効な被測定信号の周期を表すカウント値である。この場合、被測定信号パルスはマスクされず、被測定信号パルスの“High”レベルがイネーブル信号に現れる。
パルス数カウンタ12は、イネーブル信号が“High”レベルである期間中にカウントした基準クロックのクロック数のカウント値(以下、「パルス数カウンタ値」という)を出力する。図2に示したタイミングチャートにおいては、イネーブル信号が“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングで加算(インクリメント)されるパルス数カウンタ値を示している。以降同様に、パルス数カウンタ値は、イネーブル信号が“High”レベルである期間の基準クロックに同期したそれぞれのタイミングで、加算(インクリメント)される。なお、イネーブル信号の“High”レベル、つまり、被測定信号パルスの“High”レベルの期間は、基準クロックの1周期分の期間である。従って、パルス数カウンタ値は、“1”ずつ加算(インクリメント)される。
パルス周期積算レジスタ14は、イネーブル信号が“High”レベルである期間の基準クロックに同期したタイミングで、加算器15の出力データを、積算データとして記憶する。図2に示したタイミングチャートにおいては、イネーブル信号が“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングで、加算器15によってパルス周期カウンタ値が加算された出力データを記憶した積算データの変化を示している。例えば、図2に示したタイミングチャートにおける被測定信号の1周期目に対応する被測定信号パルスのタイミングでは、パルス周期積算レジスタ14に記憶していた積算データ=“0”にパルス周期カウンタ値=“8”が加算された出力データ=“8”が、積算データとして記憶(更新)されている。以降同様に、積算データは、イネーブル信号が“High”レベルである期間の基準クロックに同期したそれぞれのタイミングで、記憶している積算データにパルス周期カウンタ値が積算(累積)された積算データに更新される。
なお、図2に示したタイミングチャートにおいて、被測定信号の4周期目に対応する被測定信号パルスのタイミングでパルス周期レジスタ181が記憶した1周期クロック数データは、1周期クロック数データ=“7”である。これは、被測定信号の3周期目の周期が、揺らぎ(ジッタ)によって短くなったことにより、パルス周期レジスタ181が被測定信号の4周期目に対応する被測定信号パルスのタイミングのときに出力されているパルス周期カウンタ13からのパルス周期カウンタ値が、パルス周期カウンタ値=“7”となっていることによるものである。この場合、パルス周期変動リミット算出回路182は、7クロックに対する40%のクロック数=3クロックを算出し、7クロック+3クロック=10クロックを長周期リミットデータとして比較器183に出力し、7クロック−3クロック=4クロックを短周期リミットデータとして比較器184に出力する。これにより、図2に示したタイミングチャートにおける被測定信号の4周期目の期間では、比較器184が出力する短周期リミット信号が、パルス周期カウンタ値が短周期リミットデータ=4クロック未満である期間が“High”レベルであり、パルス周期カウンタ値が短周期リミットデータ=4クロック以上であるときに“Low”レベルになる信号となっている。この場合であっても、被測定信号の揺らぎ(ジッタ)、つまり、被測定信号の変動量は、被測定信号の1周期分の期間において想定される(許容することができる)周期の変動量であるため、パルス数カウンタ値は“1”が加算(インクリメント)され、積算データはパルス周期カウンタ値=“7”が積算(累積)された積算データに更新される。
ところで、図2に示したタイミングチャートにおいて、被測定信号の波形における“Low”レベルが欠けてしまっている5周期目のパルス周期カウンタ値に基づいてパルス数カウンタ値および積算データを更新するタイミングである被測定信号の6周期目の期間では、5周期目における被測定信号の波形の欠けによって被測定信号パルスが“High”レベルとならない。このため、パルス周期カウンタ13は、5周期目に引き続いて6周期目の期間も継続して基準クロックをカウントしたパルス周期カウンタ値を出力する。図2に示したタイミングチャートにおいては、パルス周期カウンタ値=16までカウントされている。これにより、短周期リミット信号は、有効な被測定信号であることを表す“Low”レベルとなっているものの、長周期リミット信号は、パルス周期カウンタ値が長周期リミットデータ=11クロックを超えたときに、無効な被測定信号であることを表す“High”レベルとなっている。従って、被測定信号の7周期目に対応する被測定信号パルスのタイミングでは、被測定信号パルスがマスクされて、被測定信号パルスの“High”レベルがイネーブル信号に現れない。この場合、被測定信号の7周期目の期間では、パルス数カウンタ値および積算データは、以前の状態のままで更新されない。つまり、5周期目および6周期目の期間においてパルス周期カウンタ13が被測定信号の1周期分としてカウントしたパルス周期カウンタ値は、被測定信号の変動が予め定めた規定量よりも大きな、周波数を算出するために無効な被測定信号の周期をカウントした値であるため、破棄される。
なお、図2に示したタイミングチャートにおいて、被測定信号の7周期目に対応する被測定信号パルスのタイミングでパルス周期レジスタ181が記憶した1周期クロック数データは、1周期クロック数データ=“16”である。これは、上述したように、被測定信号の5周期目の“Low”レベルが欠けてしまったことにより、パルス周期カウンタ13が、5周期目および6周期目の期間を被測定信号の1周期分としてカウントしたことによるものである。この場合、パルス周期変動リミット算出回路182は、16クロックに対する40%のクロック数=6クロックを算出し、16クロック+6クロック=22クロックを長周期リミットデータとして比較器183に出力し、16クロック−6クロック=10クロックを短周期リミットデータとして比較器184に出力する。これにより、図2に示したタイミングチャートにおける被測定信号の7周期目の期間では、比較器184が出力する短周期リミット信号が、7周期目の全ての期間において無効な被測定信号であることを表す“High”レベルの信号となっている。このため、被測定信号の8周期目に対応する被測定信号パルスのタイミングでも、被測定信号パルスがマスクされて、被測定信号パルスの“High”レベルがイネーブル信号に現れず、被測定信号の8周期目の期間においても、パルス数カウンタ値および積算データは、以前の状態のままで更新されない。つまり、被測定信号の8周期目の期間においても、パルス周期カウンタ13が被測定信号の1周期分としてカウントしたパルス周期カウンタ値は、被測定信号の変動が予め定めた規定量よりも大きな、周波数を算出するために無効な被測定信号の周期をカウントした値として破棄される。これは、パルス周期変動判定部18が、パルス周期レジスタ181が記憶した前の周期の被測定信号における最終的なパルス周期カウンタ値である1周期クロック数データに基づいて、被測定信号の1周期分として許容することができる範囲(許容範囲)の基準クロックのクロック数を算出するためである。
その後、パルス数レジスタ16は、サンプリング時間が終了するタイミングで入力されたデータロード信号が“High”レベルである期間の基準クロックに同期したタイミングでパルス数カウンタ12が出力しているパルス数カウンタ値を記憶し、記憶したパルス数カウンタ値をパルス数データとして出力する。図2に示したタイミングチャートにおいては、基準クロックの1周期分だけ“High”レベルとなるデータロード信号を示している。また、データロード信号が“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングでパルス数レジスタ16がパルス数カウンタ値を記憶して出力するパルス数データの変化を示している。
また、クロック数レジスタ17は、サンプリング時間が終了するタイミングで入力されたデータロード信号が“High”レベルである期間の基準クロックに同期したタイミングでパルス周期積算レジスタ14が出力している積算データを記憶し、記憶した積算データをクロック数データとして出力する。図2に示したタイミングチャートにおいては、データロード信号が“High”レベルである期間の基準クロックの立ち下がりエッジのタイミングでクロック数レジスタ17が積算データを記憶して出力するクロック数データの変化を示している。
このように、周波数カウンタ10では、パルス周期変動判定部18が、パルス周期カウンタ13が出力した現在のパルス周期カウンタ値が、パルス周期変動許容値によって表される許容範囲内にあるか否かを判定し、現在のパルス周期カウンタ値が許容範囲内にある場合にのみ、パルス数カウンタ値および積算データを更新する。つまり、周波数カウンタ10では、隣接した2周期分の被測定信号の周期の差、言い換えれば、隣接した2周期分の被測定信号の周期の変化率が予め定めた許容範囲内にある場合にのみ、パルス数カウンタ値および積算データを更新する。これにより、周波数カウンタ10では、周波数を算出するために無効な被測定信号、つまり、周波数の測定精度を悪化させる要因となる被測定信号を除外したクロック数データとパルス数データとを出力することができる。
上記に述べたとおり、本発明を実施するための形態によれば、周波数カウンタ10内に、パルス周期変動許容値に基づいて、パルス周期カウンタ13がカウントした被測定信号の1周期分の期間を表すカウント値の変動を判定し、判定した結果に基づいて、パルス数カウンタ12とパルス周期積算レジスタ14との動作を制御するパルス周期変動判定部18を備える。つまり、本発明を実施するための形態では、周波数カウンタ10内に、パルス周期カウンタ13がカウントした被測定信号の1周期分の期間を表すカウント値が、周波数を算出するために有効な(信頼性が高い)被測定信号の周期を表すカウント値であるか否かを判定する機能を実現するパルス周期変動判定部18を備える。そして、本発明を実施するための形態では、パルス周期変動判定部18が、パルス周期カウンタ13が出力した被測定信号の周期のカウント値が、周波数を算出するために有効な(信頼性が高い)被測定信号の周期を表すカウント値であると判定した場合にのみ、パルス数カウンタ12とパルス周期積算レジスタ14とがデータを更新するように制御する。
これにより、本発明を実施するための形態では、パルス数カウンタ12によって、周波数を算出するために有効な(信頼性が高い)被測定信号の数(パルス数)のみがカウントされ、パルス周期積算レジスタ14によって、周波数を算出するために有効な(信頼性が高い)被測定信号の周期を表すカウント値が積算(累積)される。言い換えれば、本発明を実施するための形態では、周波数を算出するために無効な(信頼性の低い)被測定信号の数(パルス数)のカウントと、周期を表すカウント値の積算(累積)とが除外される。より具体的には、本発明を実施するための形態では、例えば、外部からのノイズなどの影響によって被測定信号の波形の割れやパルスの部分的な欠けなど、被測定信号の周期を表すカウント値に影響するような突然の変動をパルス周期変動判定部18が検出した場合には、被測定信号の数(パルス数)のカウントと、周期を表すカウント値の積算(累積)とが除外される。
このことにより、本発明を実施するための形態では、出力するパルス数データとクロック数データとの信頼性が、従来のレシプロカル型周波数カウンタによるものよりも向上し、周波数の測定精度の悪化を回避することができる。
なお、実施形態では、図2において、被測定信号の周期を表すカウント値に影響するような突然の変動の一例として、被測定信号のパルスの部分的な欠けが生じた場合の動作の一例について説明した。より具体的には、パルス周期変動判定部18が、被測定信号のパルスに部分的な欠けが生じてしまった後の周期(図2においては7周期目)において出力された被測定信号パルスを長周期リミット信号によってマスクし、さらに次の周期(図2においては8周期目)において出力された被測定信号パルスを短周期リミット信号によってマスクすることによって、周波数を算出するために無効な被測定信号の周期をカウントした値を破棄する動作の一例について説明した。しかし、被測定信号の周期を表すカウント値に影響するような突然の変動には、上述したように、被測定信号のパルスの部分的な欠け以外にも、被測定信号の波形の割れもある。この場合においても、周波数カウンタ10は、隣接した2周期分の被測定信号の周期の変化率が予め定めた許容範囲内にある場合にのみ、パルス数カウンタ値および積算データを更新する動作になる。より具体的には、パルス周期変動判定部18は、被測定信号の波形に割れが生じてしまった後半の短い周期において出力された被測定信号パルスを短周期リミット信号によってマスクし、次の周期において出力された被測定信号パルスを長周期リミット信号によってマスクし、さらに次の周期において出力された被測定信号パルスを長周期リミット信号によってマスクすることによって、周波数を算出するために無効な被測定信号の周期をカウントした値を破棄する動作となる。
なお、周波数カウンタ10に備えたパルス周期変動判定部18の機能は、必要に応じて停止させる(OFFする)こともできる。例えば、周波数カウンタ10に設定するパルス周期変動許容値を非常に大きな値にすることによって、パルス周期変動判定部18の機能を停止させることができる。例えば、周波数カウンタ10に設定するパルス周期変動許容値を、パルス周期変動許容値=10000%にすることによって、被測定信号の周期が1/100になるような被測定信号の波形の割れや、被測定信号の周期が100倍になるような被測定信号のパルスの部分的な欠けが発生した場合でも、パルス周期変動判定部18が被測定信号パルスのマスクを行わなくなるため、実質的にパルス周期変動判定部18の機能を停止させているのと同様になる。しかし、パルス周期変動判定部18の機能を停止させる方法は、上述したパルス周期変動許容値の設定による方法に限定されるものではなく、例えば、パルス周期変動判定部18の機能を停止させる構成をパルス周期変動判定部18に備えてもよい。なお、周波数カウンタ10に設定するパルス周期変動許容値を0%にした場合には、被測定信号の周期の揺らぎ(ジッタ)も変動として判定する動作にすることができる。
なお、上述したように、周波数カウンタ10は、フィールド機器に搭載してもよい。この場合、周波数カウンタ10に設定するパルス周期変動許容値は、周波数カウンタ10を搭載したフィールド機器が配置されている環境におけるノイズの大きさやノイズの頻度に応じて、適切な任意の値に設定することができる。なお、周波数カウンタ10を搭載したフィールド機器においてパルス周期変動許容値を設定する場合、フィールド機器を制御するときの設定の一部として、プラント内に専用に構築された通信ネットワークによる通信よって設定してもよい。
なお、周波数カウンタ10をフィールド機器に搭載した場合、パルス周期変動判定部18によって被測定信号パルスのマスクが行われた、つまり、被測定信号が、周波数を算出するために無効な(信頼性の低い)状態のときがあったことを表す情報を提示する構成にすることもできる。例えば、パルス周期変動判定部18に、被測定信号パルスをマスクした時刻や回数などをサンプリング時間ごとに記録する機能(レジスタ回路やメモリ回路など)を設け、ここで記憶した情報を通信ネットワークによって送信する(出力する)構成にすることもできる。この情報は、例えば、周波数カウンタ10を搭載したフィールド機器が配置されている位置におけるノイズ環境の改善や、被測定信号の波形の品位の向上に利用することができる。なお、被測定信号パルスをマスクした時刻や回数などを記録した情報の個数は、予め定めた個数(例えば、10個など)であってもよい。この場合、被測定信号パルスをマスクした最も古い情報を、最も新しい情報に更新(上書きなど)して、予め定めた個数分の情報を記録する構成が考えられる。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。