(57)【要約】  パルス入力信号（３４）の周波数を求める方法およびシステム。所定の測定間隔の始めと終りにパルスカウントおよびタイマ（３６、４４）カウントを捕捉することができ、それによって開始パルスカウント（８８）および終了パルスカウント（９８）、ならびにその開始パルス時間（８８）および終了パルス時間（９８）を得ることができる。次いで、終了パルスカウント（９８）から開始パルスカウント（８８）を引いた差を、終了パルス時間（９８）から開始パルス時間（８８）を引いた差で割ったパルス周波数を決定することができ、それによってパルス入力信号（３４）の非常に正確な周波数測定を、広周波数範囲にわたって得ることが可能となる。パルスカウントおよびタイマ（３６、４４）は、それぞれパルスカウンタ（４８）およびタイマ（３６、４４）を使用して捕捉することができる。パルス周波数は、一般に入力パルス信号の周波数を含み、それによってパルス周波数が、基準タイマ（３６、４４）クロックだけに依存する精度に基づいて決定される。
2005514604.tif 000002
【特許請求の範囲】
【請求項１】
所定の測定間隔の始めと終りにパルスカウントおよびタイマカウント（３６、４４）を捕捉し、それによって開始パルスカウント（８８）および終了パルスカウント（９８）、ならびにその開始パルス時間（８８）および終了パルス時間（９８）を捕捉するステップと、
前記終了パルスカウント（９８）から前記開始パルスカウント（８８）を引いた差を、前記終了パルス時間（９８）から前記開始パルス時間（８８）を引いた差で割ったパルス周波数を決定し（８０）、それによって前記パルス入力信号（３４）の非常に正確な周波数測定を、広周波数範囲にわたって得ることが可能となるステップと、
を含むパルス入力信号の周波数を求める方法。
【請求項２】
パルスカウントおよびタイマ（３６、４４）カウントを捕捉する前記ステップが、
パルスカウンタ（４８）を使用して前記パルスカウントを捕捉するステップと、
タイマ（３６、４４）を使用して前記タイマ（３６、４４）カウントを捕捉するステップとを含む、請求項１に記載の方法。
【請求項３】
パルス周波数を決定する（８０）前記ステップが、
前記パルス周波数を決定するステップであって、前記パルス周波数が、入力パルス信号の周波数を含み、それによって前記パルス周波数が、基準タイマ（３６、４４）クロックだけに依存する精度に基づいて決定されるステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記所定の測定間隔の開始カウントと終了カウントの差を、前記所定の測定間隔の開始時間と終了時間の差で割ることにより、前記入力パルス信号の前記周波数を計算するステップをさらに含む、請求項３に記載の方法。
【請求項５】
精度が、前記所定の測定期間に対する、関連する水晶発振器（４４）周波数の精度と、基準タイマ（３６、４４）クロックの分解能とに制限される、パルス周波数測定の前記精度を決定するステップをさらに含む、請求項１に記載の方法。
【請求項６】
パルスカウントおよびタイマ（３６、４４）カウントを捕捉する前記ステップは、
少なくとも２つの自走カウンタを使用して、前記パルスカウントおよび前記タイマ（３６、４４）カウントを捕捉するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記少なくとも２つの自走カウンタのそれぞれを、低位計数能力を提供する集積回路カウンタとして構成するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記集積回路カウンタのオーバーフロー（５７）信号を、マイクロコントローラ（５４）の割込みに向けて送り、前記マイクロコントローラ（５４）の高位カウンタを提供するステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記パルス周波数を自動的に測定するように周波数測定回路を構成するステップをさらに含み、前記前記周波数測定回路が、
第１の集積回路カウンタ（４６）にリンクされ、前記第１の集積回路カウンタ（４６）が比較器（５２）およびタイマラッチに信号を供給するタイマ（３６、４４）クロックと、
時間割込み（５１）線、ライト線（５３）、リード線（５９）、データ線（６０）、およびパルスオーバーフロー割込み線を有し、前記ライト線（５３）、前記リード線（５９）、および前記時間割込み（５１）線で前記比較器（５２）に接続され、前記データ線（６０）でタイマ（３６、４４）ラッチに接続されるマイクロコントローラ（５４）と、
第１の出力信号を前記マイクロコントローラ（５４）の前記リード線（５９）に供給し、前記リード線（５９）が前記タイマ（３６、４４）ラッチの少なくとも１つの出力線に接続される第２の集積回路カウンタ（４８）と、
前記マイクロコントローラ（５４）の前記パルスオーバーフロー割込み線に供給される前記第２の集積回路カウンタ（４８）の第２の出力信号とを含む、請求項１に記載の方法。
【請求項１０】
前記マイクロコントローラ（５４）は、高位時間カウントを格納する第１の記憶レジスタと、高位パルスカウントを格納する第２の記憶レジスタとを備える、請求項９に記載の方法。
【請求項１１】
前記タイマ（３６、４４）クロックは水晶発振器（４４）を含む、請求項９に記載の方法。
【請求項１２】
前記第２の集積回路カウンタ（４８）の前記第２の出力信号は、オーバーフロー（５７）信号を含む、請求項９に記載の方法。
【請求項１３】
前に前記パルスカウントが更新された時間を前記パルス時間が含むように、同一の入力パルス内の前記パルスカウントおよび前記パルス時間を読み取り、それによって有効なパルス捕捉が行われたか否かを決定するステップをさらに含む、請求項１に記載の方法。
【請求項１４】
所定の測定間隔の始めと終りにパルスカウントおよびタイマ（３６、４４）カウントを捕捉し、それによって開始パルスカウント（８８）および終了パルスカウント（９８）、ならびにその開始パルス時間（８８）および終了パルス時間（９８）を得る捕捉機構と、
前記終了パルスカウント（９８）から前記開始パルス（８８）カウントを引いた差を、前記終了パルス時間（９８）から前記開始パルス時間（８８）を引いた差で割ったパルス周波数を決定し（８０）、それによって前記パルス入力信号（３４）の非常に正確な周波数測定を、広周波数範囲にわたって得ることが可能となる測定機構と、
を備えるパルス入力信号（３４）の周波数を決定するシステム。
【請求項１５】
前記捕捉機構は、
前記パルスカウントを捕捉するパルスカウンタ（４８）と、
前記タイマカウントを捕捉するタイマ（３６、４４）と、
をさらに備える、請求項１３に記載のシステム。
【請求項１６】
前記パルス周波数は、入力パルス信号の周波数を含み、それによって前記パルス周波数は、基準タイマクロック（３６、４４）だけに依存する精度に基づいて決定される、請求項１３に記載のシステム。
【請求項１７】
前記周波数は、前記所定の測定間隔の開始カウントと終了カウントの差を、前記所定の測定間隔の開始時間と終了時間の差で割ることによって計算された周波数を含む、請求項１６に記載のシステム。
【請求項１８】
前記測定機構によって決定されるパルス周波数測定の精度は、前記所定の測定期間に対する、関連する水晶発振器（４４）周波数の精度と、基準タイマ（３６、４４）クロックの分解能とに基づく、請求項１３に記載のシステム。
【請求項１９】
前記捕捉機構は少なくとも２つの自走カウンタを備える、請求項１３に記載のシステム。
【請求項２０】
前記少なくとも２つの自走カウンタがそれぞれ、低位計数機能を提供する集積回路カウンタを備える、請求項１９に記載のシステム。
【請求項２１】
前記集積回路カウンタのオーバーフロー（５７）信号を、マイクロコントローラ（５４）の割込みに向けて送り、マイクロコントローラ（５４）の高位カウンタを提供するディレクティング機構をさらに備える、請求項２０に記載のシステム。
【請求項２２】
前記パルス周波数を自動的に測定する周波数測定回路をさらに備え、前記周波数測定回路が、
第１の集積回路カウンタ（４６）にリンクされたタイマクロックであって、前記第１の集積回路カウンタ（４６）が比較器（５２）およびタイマ（３６、４４）ラッチに信号を供給するタイマクロックと、
時間割込み線（５１）、ライト線（５３）、リード線（５９）、データ線（６０）、およびパルスオーバーフロー割込み線を有し、前記ライト線（５３）、前記リード線（５９）、および前記時間割込み（５１）線で前記比較器（５２）に接続され、前記データ線（６０）でタイマラッチに接続されるマイクロコントローラ（５４）と、
第１の出力信号を前記マイクロコントローラ（５４）の前記リード線（５９）に供給し、前記リード線（５９）が、前記タイマ（３６、４４）ラッチの少なくとも１つの出力線に接続される第２の集積回路カウンタ（４８）と、
前記マイクロコントローラ（５４）の前記パルスオーバーフロー割込み線に供給される前記第２の集積回路カウンタの第２の出力信号と、
を含む、請求項１３に記載のシステム。
【請求項２３】
前記マイクロコントローラ（５４）は、高位時間カウントを格納する第１の記憶レジスタと、高位パルスカウントを格納する第２の記憶レジスタとを備える、請求項２１に記載のシステム。
【請求項２４】
前記タイマ（３６、４４）クロックは水晶発振器（４４）を含む、請求項２２に記載のシステム。
【請求項２５】
前記第２の集積回路カウンタ（４８）の前記第２の出力信号は、オーバーフロー（５７）信号を含む、請求項２２に記載のシステム。
【請求項２６】
前に前記パルスカウントが更新された時間を前記パルス時間が含むように、同一の入力パルス内の前記パルスカウントおよび前記パルス時間を読み取り、それによって有効なパルス捕捉が行われたか否かを決定する読取り機構をさらに備える、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に周波数測定方法およびシステムに関する。本発明はまた、パルス信号測定方法およびシステムに関する。加えて本発明は、タイマクロックおよび水晶制御式発振器装置に関する。加えて本発明は、周波数測定回路に関する。
【背景技術】
【０００２】
周期パルス信号の周波数測定は、ある時間期間の間に評価した平均パルス数と定義することができる。典型的なマイクロコントローラでは、水晶制御式発振器がタイマクロックを生成することができ、そのタイマクロックが、測定のための基準として使用される。タイマクロックの精度は非常に正確である。しかし、パルス信号の実際の測定により、許容できない精度が導入される可能性がある。高周波数で正確なある測定技法では、低周波数測定が不正確である。低周波数で不正確な他の方法は、高周波数で不正確となる傾向がある可能性がある。
【０００３】
図１に、固定期間にわたるパルスカウントを示す従来技術のタイミング図１０を示す。計算のための一技法は、固定期間にわたって発生したパルス数をカウントするものである。そのような技法では、図１に示すように、タイマおよびカウンタを同時に開始することができる。タイマは、所定の時間の後に終了するように設定される。カウンタは、タイマが使用可能である間に発生したパルスの数をカウントすることができる。タイマが終了すると、カウンタは停止する。その期間の終りに得られるカウント数を時間期間で割り、周波数を決定する。図１のタイミング図１０に示すように、パルス入力信号１２は、タイマクロック１４（すなわちタイマ）が固定測定期間１６にわたって動作する間に、固定測定期間１６にわたって発生したパルスの数を示す。一般には、この測定技法のパーセント精度は、以下の式（１）によって求めることができる。
【０００４】
パーセント精度＝１００％  ×  ２／カウントしたパルス数（Ｍ）      （１）
加えて周波数は、式（２）に示す式に従って求めることができる。
【０００５】
周波数＝パルス数／時間期間                                          （２）
カウントされる最初のパルスと最後のパルスは測定タイマクロック１４と同期しないので、図１に示す手法は制限される。この結果、最大２パルス時間の誤差が生じる可能性がある。高周波数では、測定期間にわたってカウントされるパルス数が非常に多く、２パルスの誤差は相対的に小さいので、このことは高周波数では問題ではない。低周波数では、カウントされるパルス数は比例して小さくなる。その結果、周波数が低下すると共に測定精度が低下する。サンプル期間近くの周波数では、精度が１００％を超える可能性がある。
【０００６】
図２に、固定パルス数についてのパルス時間測定を示す従来技術のタイミング図２０を示す。図２のタイミング図２０で示す手法では、１つまたは複数のパルス間の時間が測定される。タイミング図２０は、タイマクロック２６およびパルス入力信号２４を示す。時間期間２２が、パルス入力信号２４によって生成されたパルスの範囲にわたって延びる。図２に示す技法は、図１に関連して上記で論じた方法に固有の低周波数誤差を解決することができる。しかし、図２に示す方法では、タイマ（すなわちタイマクロック２６）が、入力パルスの立上りでトリガされるイネーブル信号によって開始する。次いでカウンタを使用して、特定のパルス数をカウントすることができる。所定のパルス数をカウントした後、次の入力信号の立上りによって生成されるトリガがタイマをディスエーブルする。一般には、タイミング図は、タイミング測定が固定パルス数に対して行われることを示す。パーセント精度は、式（３）に従って計算することができる。
【０００７】
パーセント精度＝１００％  ×  入力周波数／タイマ周波数        （３）
図２に示す測定方法により、パルス数（一定）を測定時間期間で割ることによってパルス入力周波数を求めることが可能となる。周波数は、以下の式（４）に従って求めることができる。
周波数＝（サンプルクロックレート）×  パルス数（Ｍ）／測定時間期間（Ｎ）  （４）
ただし、
Ｍ＝設定したパルス数（一定）
Ｎ＝経過したクロックパルス数
図２に示した方法は、パルスカウントがタイマクロック周波数に比較して小さくなる低周波数で、良好な精度をもたらす。妥当な時間で低周波数測定を行うために、カウントするパルス数は比較的少ない。例えば、１０Ｈｚの信号を少なくとも２００ミリ秒に一度測定するために、パルスカウント２を使用することができる。これは低周波数については良好である。しかし、高周波数では、この少ないパルス数の結果として、タイマ／カウンタの分解能によって引き起こされる誤差が生じる可能性がある。例えば１００ｋＨｚでは、２パルスが２０マイクロ秒で発生することになる。１メガヘルツタイマカウンタの分解能は１マイクロ秒である。この結果、２０分の１すなわち５％の誤差が生じる。
【０００８】
誤差が入力周波数に依存することに加えて、取得期間にも依存する。時間は、入力周波数に反比例する。これにより、入力取得を実施するのに予測可能な時間が必要となる測定プロセスに適用することが不都合となる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記に基づいて、本発明者等は、広周波数範囲にわたってパルス入力信号の周波数を求める方法およびシステムが求められていると判断した。さらにこのような方法およびシステムは、適切に実施した場合、広周波数範囲にわたって非常に正確な測定結果が得られるべきである。従来技法とは異なり、基準信号に対する信号の出力の測定に焦点を当てる、パルス周波数を測定する改良型の方法およびシステムも求められている。
【課題を解決するための手段】
【００１０】
本発明に固有の革新的な特徴の一部を理解することが容易となるように、下記の発明の概要を与えるが、これは完全な説明を意図するものではない。明細書全体、特許請求の範囲、図面、および要約を全体として考慮することにより、本発明の様々な態様の完全な理解を得ることができよう。
【００１１】
したがって、本発明の一態様は、周波数を測定する改良型の方法およびシステムを提供することである。
【００１２】
本発明の別の態様は、広周波数範囲にわたって入力周期パルス信号の周波数を確実に測定する方法およびシステムを提供することである。
【００１３】
本発明の別の態様は、測定精度が基準タイマクロックだけに依存する周波数測定方法およびシステムを提供することである。
【００１４】
本発明のさらに別の態様は、測定精度が指定の周波数範囲全体にわたって一定である周波数測定方法およびシステムを提供することである。
【００１５】
本発明のさらに別の態様は、測定する信号の周波数の如何に関わらず予測可能な測定取得時間を実現する測定方法およびシステムを提供することである。
【００１６】
上記およびその他の態様は、これから説明するのと同様に達成することができる。パルス入力信号の周波数を求める方法およびシステムが本明細書で開示される。パルスカウントおよびタイマカウントは、所定の測定間隔の始めおよび終りで捕捉することができ、それによって開始パルスカウントおよび終了パルスカウント、ならびにその開始パルス時間および終了パルス時間を得ることができる。次いで、終了パルスカウントから開始パルスカウントを引いた差を、終了パルス時間から開始パルス時間を引いた差で割ったパルス周波数を求めることができ、それによってパルス入力信号の非常に正確な周波数測定を、広周波数範囲にわたって得ることが可能となる。パルスカウントおよびタイマカウントは、それぞれパルスカウンタおよびタイマを使用して捕捉することができる。パルス周波数は、一般に入力パルス信号の周波数を含み、それによってパルス周波数が基準タイマクロックだけに依存する精度に基づいて求められる。周波数入力信号は、一般にパルスカウンタ用のクロック、およびシステム自走タイマ用の捕捉ラッチ信号として使用される。そのようにする際に、パルスが発生したとき、パルスはパルスカウンタを増分し、パルスが発生したときの現システム時間をラッチする。このようにして、所定の測定期間内に発生した最初のパルスおよび最後のパルスに関するパルスカウントおよび関連するパルス時間を捕捉することができる。そのようにする際に、所定の測定間隔内で捕捉された開始カウントおよび終了カウントの差を、同一の所定の測定間隔の、各取得開始時間および終了時間の差で割ることによって入力パルス信号の周波数を計算することができる。
【００１７】
したがってパルス周波数測定の精度が、所定の測定期間に対する、関連する水晶発振器周波数の精度と、基準タイマクロックの分解能だけに制限される。したがって、少なくとも２つの自走カウンタを使用してパルスカウントおよびタイマカウントを捕捉することができる。各カウンタは、低位計数能力を提供する集積回路カウンタとして構成することができる。オーバーフロー信号を、集積回路カウンタのうち１つまたは複数からマイクロコントローラの割込み（すなわち割込み線）に向けて送り、マイクロコントローラの高位カウンタを提供することができる。
【００１８】
パルス周波数を自動的に測定するように周波数測定回路を構成することができる。この周波数測定回路は、第１の集積回路カウンタにリンクされたタイマクロックを備える。第１の集積回路カウンタは、比較器およびタイマラッチに信号を供給する。マイクロコントローラは、時間割込み線、ライト線、リード線、データ線、およびパルスオーバーフロー割込み線を有し、マイクロコントローラは、ライト線、リード線、および時間割込み線で前記比較器に接続され、データ線でタイマラッチに接続される。加えて、第２の集積回路カウンタが、第１の出力信号をマイクロコントローラのリード線に供給し、リード線が、タイマラッチの少なくとも１つの出力線に接続される。第２の集積回路カウンタの第２の出力信号が、一般にマイクロコントローラのパルスオーバーフロー割込み線に供給される。マイクロコントローラは、高位時間カウントを格納する第１の記憶レジスタと、高位パルスカウントを格納する第２の記憶レジスタとを有する。タイマクロックは水晶発振器として構成することができ、第２の集積回路カウンタの第２の出力信号はオーバーフロー信号を含む。
【発明を実施するための最良の形態】
【００１９】
添付の各図では、個々の図全体を通して同様の参照番号が同一または機能的に類似した要素を指しており、添付の各図は、本明細書に組み込まれ、本明細書の一部を形成するが、添付の各図は、本発明をさらに例示しており、発明の詳細な説明と合わせて、本発明の原理を説明する役割を果たす。
【００２０】
こうした非限定的な例で論じる特定の値および構成は、変化する可能性があり、単に本発明の実施形態を例示するために引用したに過ぎず、本発明の範囲を限定することを意図しているわけではない。
【００２１】
本明細書で開示される発明は、基準タイマクロックだけに依存する精度で入力期間パルス信号の周波数を確実に測定し、精度が指定の周波数範囲全体にわたって一定となる測定方法およびシステムを対象とする。したがって、従来技術の計算技法の誤差をなくすことができると共に、周波数範囲全体にわたって時間クロックの水晶発振器だけによって制限される精度を実現する設計が開示される。
【００２２】
図３に、本発明の好ましい実施形態による、パルスカウントおよび時間の捕捉によって周波数を求める方法を例示するタイミング図３０を示す。タイミング図３０は、タイマクロック３６およびパルス入力信号３４を示す。サンプル時間が各パルスと共に捕捉されることに留意されたい。終了フェーズ３８に加えて、開始フェーズ３２を図３に示す。開始フェーズ３２は、例えば約１００ｍ秒でよく、終了フェーズ３８は約１００ｍ秒でよい。開始フェーズ３２を終了フェーズ３８から分離する線３１は、最後に捕捉されたカウント（Ｎ）および時間Ｔ（Ｎ）が開始フェーズ３２で保存されることを表す。線３３は、最後に捕捉されたカウント（Ｍ）および時間Ｔ（Ｍ）が終了フェーズ３８で保存されることを表す。
【００２３】
図３は、タイマクロック精度だけに制限される精度を実現する、高周波数信号と低周波数信号両用の周波数測定の解法を示す。本明細書に記載の方法およびシステムによれば、取得時間は不変である。精度は、すべての入力周波数に対して一定である。この解法の基礎は、パルスカウンタ／タイマ捕捉機能を使用して、本質的に、所定の測定間隔の始めと終りにパルスカウントとタイマカウントを共に「捕捉する」ことである。これにより、以下の計算に基づいてパルス周波数測定を実施することが可能となる。
【００２４】
周波数＝（終了パルスカウント−開始パルスカウント）／（終了パルス時間−
開始パルス時間）                                      （５）
この技法の精度は、所定の測定期間に対する、水晶発振器周波数の精度と、タイマクロックの分解能とに制限される。例えば１ＭＨｚのタイマでは、２００ｍ秒の測定期間にわたって、分解能精度は、２００ミリ秒で約１マイクロ秒、すなわち０．０００５％である（比較として、水晶発振器の精度は通常１０ｐｐｍすなわち０．００１％である）。この方法による周波数範囲は、通常は約１０Ｈｚから１００ｋＨｚの範囲であるが、本明細書に記載の方法およびシステムに従って拡張することができる。
【００２５】
本明細書で開示される方法およびシステムによる周波数測定は、開始フェーズ３２および終了フェーズ３８の２つのフェーズで実施することができる。開始フェーズと終了フェーズの取得時間はどちらも事前に決定されている。図３の例では、開始取得時間と終了取得時間が共に１００ミリ秒に設定され、それによって全周波数入力取得時間が２００ミリ秒となる。開始フェーズでは、入力周波数およびタイマクロックを使用して、パルスカウンタおよびタイマカウンタを駆動する。開始フェーズ３２の間、関連するプロセッサまたはマイクロプロセッサが１００ミリ秒待機し、次いで少なくとも１つの入力パルスが発生したか否かを決定するためにチェックする。パルスが発生した場合、プロセッサは、パルスカウンタとパルスタイマの両方の値を読み取る。開始フェーズ３２の間にパルスが発生しなかった場合、信号は１０Ｈｚ未満であると決定され、範囲外とみなされる。開始フェーズ３２の終りに、パルスカウンタおよびタイマカウンタを読み取り、それぞれ開始カウントおよび開始時間として格納する。したがって格納した値は、開始フェーズ３２の間に発生した、捕捉された最後のパルスのカウントおよびタイマである。
【００２６】
終了フェーズ３８は、所定のタイマ期間（例えば１００ミリ秒）待機し、発生した最後のパルスのカウントおよび時間を捕捉するので、開始フェーズ３２と同様である。終了フェーズ３８が終了したとき、パルスカウンタおよびタイマの値を終了カウントおよび終了時間として保存する。開始フェーズまたは終了フェーズのどちらかの間にパルスが発生しなかった場合、入力周波数が範囲未満であるとみなされる。
【００２７】
開始カウントおよび終了カウントおよび時間を格納した後、開始カウントと終了カウントの差を開始時間と終了時間の差で割ることにより、入力パルス信号の周波数を計算することができる。
【００２８】
周波数＝（終了カウント−開始カウント）／（終了時間−開始時間）    （６）
同様に、以下の表現に従って周波数を計算することができる。この表現では、図３に示す変数Ｍ、Ｎ、およびＴ（時間）を使用することができる。
【００２９】
周波数＝（Ｍ−Ｎ）／（Ｔ（Ｍ）−Ｔ（Ｎ））                        （７）
図４に、本発明の好ましい実施形態による周波数捕捉回路４０を示すブロック図を示す。回路４０は、少なくとも２つの自走カウンタの使用に基づいて実装することができる。第１のカウンタは、タイマクロックをカウントするのに使用される。第２のカウンタは、入力パルスをカウントするのに使用することができる。このような自走カウンタは、低位計数機能を提供する集積回路カウンタとして実装することができる。このような集積回路カウンタのオーバーフロー信号は、マイクロコントローラのソフトウェアが高位カウンタを提供することが可能となる方式で、マイクロコントローラの割込みに向けて送ることができる。
【００３０】
したがって、回路４０は、パルス周波数を自動的に測定するように構成することができる。回路４０は一般に、第１の集積回路カウンタ４６にリンクされたタイマクロック４４を備える。図４に示す例では、タイマクロック４４を、水晶４２にリンクされた水晶発振器として構成することができ、タイマクロック４４は、１ＭＨｚを超える範囲で動作する。集積回路カウンタ４６は、例えば典型的な１６ビット集積回路カウンタとして構成することができる。第１の集積回路カウンタ４６は一般に、比較器５２およびタイマラッチ５０に信号を供給する。マイクロコントローラ５４は、時間割込み線５１、ライト線５３、リード線５９、データバス６０、およびパルスオーバーフロー割込み線５７を含む。マイクロコントローラ５４は通常、ライト線５３、リード線５９、および時間割込み線５１で比較器５２に接続される。マイクロコントローラ５４はまた、タイマラッチ５０およびデータバス６０に接続される。
【００３１】
加えて、第２の集積回路カウンタ４８は、第１の出力信号を、線５５に沿ってマイクロコントローラ５４のリード線５９に供給することができる。リード線５９は一般に、ノードＢでタイマラッチ５０の少なくとも１つの出力線６２に接続される。したがって、出力線６２は、ノードＡおよびノードＢでリード線５９に結合される。ノードＡとノードＢは本質的に同一のドであることに留意されたい。第２の集積回路カウンタ４８の第２の出力信号は、マイクロコントローラ５４のパルスオーバーフロー割込み線５７に供給することができる。加えて、マイクロコントローラ５４は、高位時間カウントを格納する第１の記憶レジスタ５６と、高位パルスカウントを格納する第２の記憶レジスタ５８とを備える。第２の集積回路カウンタ４８の第２の出力信号は、一般にオーバーフロー信号を含む。パルス入力信号が、ノードＣで第２の集積回路カウンタ４８に供給される。加えてノードＣは、タイマラッチ５０の入力線６４に結合される。
【００３２】
単なる例であるが、１００ミリ秒の測定時間を使用すると仮定する。測定することができる低周波数は、測定時間によって制限される。１００ミリ秒では、測定可能な最低の周波数は、１／１００ミリ秒＞１０Ｈｚである。測定時間を延長することにより、低周波数範囲が拡張される。
【００３３】
測定プロセスは、現在時間（カウンタ値）を読み取り、１０ミリ秒と同等なカウントを加え、この値を比較レジスタ（すなわち比較器５２）に書き込むことによって開始する。次いで比較割込み（すなわち時間割込み線５２を介する比較割込み）がイネーブルされ、それによって比較器５２の１６ビット比較割込みが、１０ミリ秒後に割込みを生成する。割込みが発生したとき、１０ミリ秒に対応するカウントを以前の比較値に加え、後で割込み１０ミリ秒を生成する。これにより、タイムベースとして使用することができる周期的１０ミリ秒割込みが提供される（本明細書で与える値は、単に例として提示したに過ぎず、本発明の特徴を限定するものとはみなされないことに留意されたい）。
【００３４】
２つの理由で１０ミリ秒サンプル期間を使用することができる。第１に、上記で論じた例によれば取得時間は一般に２００ミリ秒であるが、クロック周波数１メガヘルツでは２００，０００カウントが必要となり、１６ビット数の最大値６５，５３６よりも大きくなる。比較レジスタ（すなわち比較器５２）およびタイマカウンタ（すなわちタイマクロック４４および第１の集積回路カウンタ４６）は１６ビットしかない。１０ミリ秒サンプルを使用する第２の理由は、タイマカウンタのローリングオーバのためである。パルスが発生したときに、タイマラッチ５０（すなわち「パルス時間」）がタイマカウンタの下位１６ビットを捕捉するが、上位カウントは、関連するソフトウェアで捕捉することができる。これを実施するためには、タイマロールオーバの前でパルスが発生したか、それとも後で発生したかをアルゴリズムが決定することができるように、ロールオーバレートの２倍より高速にパルス検出をサンプリングしなければならない。１０ミリ秒期間を選ぶことができるが、本明細書に記載の方法およびシステムによれば、１メガヘルツクロックに対して３２，７６８ミリ秒未満の時間期間も実施することができる。一般に、本明細書に記載の例によれば、２００ミリ秒の取得期間に達するために２０個の１０ミリ秒期間を実現することができる。
【００３５】
図４に第２の集積回路カウンタ４８として示すパルスカウンタ（「パルスカウント」）は、プロセッサデータレジスタを使用して、８ビットパルスカウンタおよび１６ビット高位パルスカウンタとして実装することができる。パルスカウンタのオーバーフロー（すなわち、線５７を参照）が、プロセッサ（すなわちマイクロコントローラ５４）上の割込みに接続される。マイクロコントローラ５４がパルスカウンタオーバーフロー（すなわち線５７）上の割込みを検出したとき、１６パルスにより、単に高位パルスカウントをマイクロコントローラ５４の記憶レジスタ５８を介して増分することによって、ソフトウェアが高位パルスカウントを提供することが可能となる。ハードウェアパルスカウンタ（すなわち第２の集積回路カウンタ４８）および高位パルスカウント（記憶レジスタ５８）はどちらも、ロールオーバし、その最大カウントに達したときに０で再始動する点で自走カウンタである。
【００３６】
ノードＣで供給される入力パルス信号はまた、パルスが発生した時間を「捕捉する」タイマラッチ５０にも送られる。したがってタイマラッチ５０は、「捕捉」機構であると言うことができる。立上りを使用して、パルス時間を捕捉し、パルスカウントを増分することができる。パルスカウンタ（すなわち第２の集積回路カウンタ４８）とタイマラッチ５０が共に同一のエッジを使用する限り、入力パルスの立下りも使用することができる。パルスがパルスラッチによって「捕捉された」とき、パルスが発生したことを示すフラグがセットされる。このフラグは割込みを引き起こさず、単にサンプル期間中に少なくとも１つのパルスが発生したという標識を含む。一般に、タイマカウンタを、各プロセッサクロックサイクル時に増分する自走１６ビットカウンタとして構成することができる。このようなカウンタは、その最大カウントをロールオーバし、０から再びカウントアップを開始する。
【００３７】
本発明の重要な特徴は、パルスカウントが最後に更新されたときをパルス時間が含むように、パルスカウントとパルス時間を共に同一の入力パルス内で読み取ることを必要とする。最初にパルスカウンタを読み取り、その後にタイマ捕捉の読取り、次いでパルスカウンタの再読取りが続く。第２のカウンタが第１のカウンタ読取り値と同一である場合、その捕捉は有効である。カウントが最後の読取りから変化した場合、パルス時間の読取り中にパルスが発生したはずである。この場合、ソフトウェアを使用して、時間およびカウントを再び読み取ることができる。パルスカウントが２度目に再び変化した場合、入力周波数が高過ぎて捕捉することができないと決定し、オーバレンジエラーを生成する。第２の読取り値が不変である場合、第１の読取り中にカウンタを増分するが、第２の読取り値は十分である。
【００３８】
図５に、本発明の好ましい実施形態による、開始サイクルおよび終了サイクルについてのパルスおよび時間を捕捉するための論理演算ステップを示すオペレーションのフローチャート８０を示す。ブロック８２で示すように、サイクルカウンタを０にセットし、再試行値も０にセットする再始動オペレーションを開始することができる。その後にブロック８４で示すように、タイマ割込みを求めて待機を行う。その後、ブロック８６で示すように、判断オペレーションを処理して、現サイクルカウンタが０であるか否かを決定することができる。０である場合、ブロック８８で示すオペレーションを処理することができ、そのオペレーションで、開始カウントがパルスカウントと等しくなるようにセットし、開始時間がパルス時間と等しくなるようにセットする。
【００３９】
ブロック８８に記載のオペレーションの処理に続いて、ブロック９０で示すように判断オペレーションを実施することができ、パルスカウントが開始カウントと等しいか否かを決定する。その答えがＹｅｓである場合、ブロック１０８で示すオペレーションを実施することができ、そのオペレーションで、増分サイクルカウンタオペレーションを処理することができ、再試行値を０にセットする。ブロック１０８で示すオペレーションの処理に続いて、ブロック８４で示すオペレーションを処理することができ、サイクルは、それ自体を反復することができる。しかし、ブロック９０で示す判断オペレーションがＮｏである場合、その後にブロック９２で示す判断オペレーションを処理することができ、そのオペレーションで、再試行値が２に等しいか否かについて決定を行う。再試行値が２に等しくないと決定した場合、ブロック８８で示すオペレーションを再度処理することができる。ブロック８９で示すように、パルスカウントはカウントオーバーフローフラグを含むことに留意されたい。しかし、再試行値が２に等しいと決定した場合、ブロック９４で示すオペレーションを処理することができ、そのオペレーションで、フェイルオーバレンジを再始動する。
【００４０】
ブロック８６で示すように、サイクルカウンタが０に等しくないと決定した場合、ブロック９６で示すオペレーションを処理することができ、そのオペレーションで、一般には、サイクルカウンタが値２０に等しいか否かに関する決定を行う。その答えがＮｏである場合、ブロック１０８で示すオペレーションを処理することができる。しかし、その答えがＹｅｓである場合、ブロック９８で示すオペレーションを処理することができ、そのオペレーションでは、終了カウントがパルスカウントに等しくなり、終了時間がパルス時間に等しくなる。ブロック９８で示すオペレーションの処理に続いて、ブロック１００で示すように判断オペレーションを処理することができ、その判断オペレーションでは、パルスカウントが終了カウントと等しいか否かについて決定を行う。パルスカウントは、測定する入力パルス信号によってクロッキングされるパルスカウンタから読み取った値である。
【００４１】
パルスカウントが終了カウントに等しいと決定した場合、ブロック１０４で示すように、ストアデータ／再始動オペレーションを処理する。しかし、パルスカウントが開始カウントに等しくないと決定した場合、ブロック１０２で示すオペレーションを処理することができる。ブロック１０２で示すオペレーションは、再試行値が２に等しいか否かを決定する。ブロック１０２で示すように、再試行値が２に等しい場合、ブロック１０６で示すように、フェイルオーバレンジとなり、再始動オペレーションを開始する。再試行値が２に等しくない場合、ブロック９８で示すオペレーションを再び処理し、一般に後続の操作ステップを反復する。
【００４２】
１６ビットタイマは、１００ミリ秒の取得期間を包含するのには十分でない可能性がある。１６ビットカウンタについての最大カウントは６５５３６である。したがって、タイマを追加のビットに拡張することが可能となるように、拡張カウンタをプロセッサＲＡＭ中に実現することができる。
【００４３】
パルス時間について、１６ビットタイマ捕捉と、高位ソフトウェアパルスカウンタの両方を捕捉することは重要である。ハードウェア１６ビットタイマはパルスの立上り時にのみラッチされるので、ソフトウェアは、パルス捕捉が行われたときにソフトウェア高位カウンタの値がいくつであったかを求めなければならない。
【００４４】
本明細書に記載の例では、開始捕捉期間および終了捕捉期間が１００ミリ秒であっても、パルスおよびタイマカウンタを１０ミリ秒ごとにサンプリングすることができる。この「オーバサンプリング」により、２つの連続する１０ミリ秒サンプル上で発生した２つの別々のパルスのパルス時間が相異なること、およびタイマカウンタロールオーバの前で発生したか、それとも後で発生したかをについて、捕捉されたどんなパルスも決定できることが保証される。このことは、１０ミリ秒サイクル当たり１０，０００個の１ＭＨｚクロック周期が存在する点から理解することができる。１６ビットタイマカウンタは６５，５３６カウントごとに循環する。１０，０００カウントをタイマ比較レジスタに追加することによって１０ミリ秒時間が生成される場合、連続する各期間は、異なる範囲のタイマ値を使用することになる。
【００４５】
以下の例はこのようなパラメータを示す。
【００４６】
１．サンプル周期Ｎ−１＝１６ビットタイマカウンタがＤ８Ｆ０  Ｈｅｘ〜００００  Ｈｅｘをカウントする
２．サンプル周期Ｎ＝１６ビットタイマカウンタが０００１  Ｈｅｘ〜２７１０  Ｈｅｘをカウントする
３．サンプル周期Ｎ＋１＝１６ビットタイマカウンタが２７１１  Ｈｅｘ〜４２ｅ０  Ｈｅｘをカウントする
４．サンプル期間Ｎで捕捉される任意のパルスは、１から１０，０００の間の捕捉時間を有する
５．サンプル期間Ｎ＋１で捕捉される任意のパルスは、１０，００１から２０，０００の間の捕捉時間を有する
１０ミリ秒サンプル割込みがタイマ比較をリロードしたとき、ソフトウェアアルゴリズムは、タイマロールオーバが行われたか否かを決定するためにチェックし、そのようなロールオーバが実際に行われた場合、捕捉された時間の高位カウントに１を加える。本明細書に記載の例では、１０ミリ秒割込みをトリガした比較レジスタの値が１０，０００未満であった場合、タイマカウンタロールオーバは、１０ミリ秒サンプル期間中に行われることを示すことができる。本明細書に記載の例はまた、ロールオーバサンプル期間中に捕捉されたパルスが、タイマカウンタがロールオーバする前に発生した場合、一般に１にセットされた高位ビットを有することも示す。
【００４７】
上記の説明では、サンプル期間中にパルスが発生したか否かをプロセッサ（例えば図４のマイクロコントローラ５４）が検出できることが一般に必要である。このことは、パルスカウントの現在値を読み取り、それを以前のサンプル期間に格納されたパルスカウントの値と比較することによって実施することができる。
【００４８】
ロールオーバ処理を含む、１０ミリ秒の場合のパルスカウントおよび時間捕捉は、以下の一般的アルゴリズムに従って例示することができる。
【００４９】
Capture count（捕捉カウント） = 8-bit pulse count（８ビットパルスカウント） + 256 * software extended count（ソフトウエア拡張カウント）
If capture count（捕捉カウント） = previous capture count（前の捕捉カウント）
{
Capture time（捕捉カウント） = 16-bit pulse time（パルス時間） + 65536 * software extended timer（ソフトウエア拡張タイマ）
If current 16-bit timer compare（現１６ビットタイマが比較すると） < 10,000 then /*timer 16-bit counter roll over occurred (タイマ１６ビットカウンタのロールオーバが行われた)*/
{
Increment software extended timer（ソフトウエア拡張タイマを増分）
}
If captured pulse 16-bit timer（捕捉パルス１６ビットタイマ） < 10,000 then /*capture occurred after roll over (ロールオーバ後に捕捉が行われた)*/
{
Add 65536
}
}
Previous capture count（前の捕捉カウント） = capture count（捕捉カウント） /*save capture count as previous capture count (捕捉カウントを以前の捕捉カウントとして保存する)*/
１００ミリ秒（すなわち、１０個の１０ミリ秒タイマ比較期間）の終りに、１０ミリ秒サンプル期間中に捕捉された最後のパルス時間およびカウント時間を、それぞれ開始時間およびカウントとして保存することができる。終了時間およびカウントとしてそれぞれ保存した最後のサンプル時間およびカウントと共に、さらに１０個のサンプルを取ることができる。２００ミリ秒取得時間全体では、２００，０００サンプルクロックと、２０個の１０ミリ秒サンプル期間と、３から４個の１６ビットタイマカウンタロールオーバとが生じることになる。
【００５０】
したがって、終了カウントから開始カウントを引くことにより、サンプリングしたパルス数が得られる。最小パルスカウントは０であり、入力パルスが発生しなかったことを示す。したがって、最大パルス数は、先に説明した捕捉方法によって検出することのできる最大入力周波数とすることができる。通常、１メガヘルツシステムクロックを有するプロセッサでは、最大捕捉周波数は一般に、約４００キロヘルツである。その場合、典型的な最大カウント数は約８０，０００である。
【００５１】
終了時間から開始時間を引くことにより、開始パルスと終了パルスの間の時間が得られる。これは０から２０，０００の間の値となり、これがサンプルクロック周波数の計算比である。したがって、
入力信号周波数＝（プロセッサ周波数）  ×  （終了カウント−開始カウント）／
（終了時間−開始時間）                            （８）
終了／開始パルスカウント値はそれぞれの捕捉時間値と共に捕捉されるので、導入される可能性のある誤差は、プロセッサクロックの精度だけである。開始カウントおよび終了カウントは、プロセッサクロックサイクルの分解能の範囲内の整数のパルス数である。これは、分解能精度が２００，０００カウント中の２カウント以内であること、または以下のことを意味する。
【００５２】
カウントからの理論誤差＝０（カウントは、立上り時に捕捉された整数値）
開始時間に関するタイマカウンタ分解能＝１タイマクロック／取得時間＝１ｕＳｅｃ／１００ｍｓｅｃ＝．００１％
終了時間に関するタイマカウンタ分解能＝１タイマクロック／取得時間＝１ｕＳｅｃ／１００ｍｓｅｃ＝．００１％
合計理論誤差＝全周波数範囲にわたって０＋２＊．００１％＝．００２％
タイマカウンタ発振器の精度、および入力信号をひずませるパルス入力信号の立上り時の何らかのイズにより、その他の誤差が導入される可能性がある。
【００５３】
上記に基づいて、本明細書で開示される発明が、広周波数範囲にわたってパルス入力信号の周波数を求め、得られる周波数測定値が非常に正確で信頼性が高い方法およびシステムを全般的に説明していることを理解されよう。入力周期パルス信号の周波数を確実に測定する単一の方法および／またはシステムが本明細書で開示される。このような方法およびシステムの精度は、基準タイマクロックだけに依存する。この精度はまた、指定の周波数範囲全体にわたって一定である。したがって、本発明の好ましい実施形態または代替実施形態に従って、所定の測定間隔の始めと終りにパルスカウントおよびタイマカウントを共に「捕捉する」ようにパルスカウンタ／時間捕捉機能を実現することができる。こうした値により、本明細書で説明するようにパルス周波数測定を実施することが可能となる。
【００５４】
加えて、本発明は、周期的固定持続データ取得期間で適用することを可能にする自走高速クロックカウンタを使用する。したがって、本発明は、２つの連続する測定期間の最初に捕捉されたパルスカウントおよびパルス時間を取ることによって周波数を計算する連続的方法を説明する。本発明はまた、カウンタオーバーフローを検出し、それを補償する方法も説明する。
【００５５】
本発明の利点の１つは、同期が不要であることである。加えて、本明細書に記載の発明は、一般に自走式（すなわち開始および停止がない）であり、固定時間データ取得期間で容易に実施することができる。具体的には、本明細書に記載の基準クロックおよびパルスカウンタは、自走式であり、開始信号および停止信号が不要であり、固定データ取得期間に対して実施することができる。
【００５６】
従来技術の方法とは異なり、本発明は、パルス入力の周波数を測定せず、または基準信号に対する信号の出力を測定しない。本発明は、そうせずにパルス周波数の測定に対処する。本発明の別の利点は、パルス測定期間を開始するのにシンクロナイザを使用する必要がなく、複数の固定の測定周波数に基づくクロックを使用する必要もないことである。
【００５７】
本発明は、終了カウント割込み装置を使用する必要はない。その代わりに、本発明は、最後に捕捉されたパルスカウントおよびタイマカウント値を使用する。本発明の別の利点は、データをカウンタにプリロードするためのロード信号が不要であり、測定期間の測定のために所定のパルスカウントを使用する必要がないことである。加えて、本明細書に記載の手法は、市販のマイクロプロセッサを利用することができ、特殊な論理復号化回路は不要である。したがって、固定データ取得期間で自走タイマおよびパルスカウンタを使用することは本発明の主要な利点である。
【００５８】
本発明とその実際的応用例を最も良く説明し、それによって当業者が本発明を作成し利用することが可能となるように、本明細書に記載の実施形態および例を提示した。しかし、上記の説明および例は単に例示のために提示したに過ぎないことを当業者は理解されよう。例えば、パルスカウントおよびパルス時間捕捉を、より高い分解能を提供するハードウェアレジスタで実現することにより、本明細書に記載の方法およびシステムをより高い周波数に拡張することができる。加えて、本明細書に記載の方法およびシステムは、取得時間を増加させるか、または複数の取得期間の間の捕捉時間およびカウントを比較することにより、より低い周波数に拡張することができる。
【００５９】
本発明のその他の変形形態および修正形態は当業者にとって明らかであろう。添付の特許請求の範囲は、このような変形形態および修正形態を包含するものとする。記載の説明は網羅的なものではなく、本発明の範囲を限定するものでもない。頭記の特許請求の範囲の精神および範囲から逸脱することなく、上記の教示に照らして多数の修正形態および変形形態が可能である。本発明の使用は、異なる特性を有する構成要素を含むことができることが企図される。本明細書に添付の特許請求の範囲によって本発明の範囲が定義され、すべての点で均等物に対する完全な理解が与えられるものとする。
【図面の簡単な説明】
【００６０】
【図１】固定の期間にわたるパルスカウントを示す従来技術のタイミング図を示す図である。
【図２】固定のパルス数に対するパルス時間測定を示す従来技術のタイミング図を示す図である。
【図３】本発明の好ましい実施形態による、パルスカウントおよび時間の捕捉によって周波数を求める方法を例示するタイミング図を示す図である。
【図４】本発明の好ましい実施形態による周波数捕捉回路を示すブロック図を示す図である。
【図５】本発明の好ましい実施形態による、開始サイクルおよび終了サイクルについてのパルスおよび時間を捕捉するための演算ステップを示すオペレーションのフローチャートを示す図である。
【図１】
2005514604.tif 000003
【図２】
2005514604.tif 000004
【図３】
2005514604.tif 000005
【図４】
2005514604.tif 000006
【図５】
2005514604.tif 000007
【国際調査報告】
2005514604.tif 000008
2005514604.tif 000009