(57)【要約】【課題】パルス信号の入力及びオーバーフローの双方について割り込み信号を発生するタイマを用いてパルス信号の幅や周期を正確に測定可能なパルス信号測定方法を提供する。【解決手段】リロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いてパルス幅又は周期を測定する際に、割り込み信号を受けてリロードレジスタのカウント値を読み出し（ステップＳＴ１）、タイマのオーバーフローフラグの状態を判別し（ステップＳＴ２）、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回値と前回値との比較に基づいてパルス信号の入力の有無を判断する（ステップＳＴ６）。【選択図】図２
2007057446.tif 000002
【特許請求の範囲】
【請求項１】
パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、前記カウント値がオーバーフローした場合には前記リロードレジスタへリロードせずに前記割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いたパルス信号測定方法であって、
前記タイマからの割り込み信号を受けて前記リロードレジスタのカウント値を読み出す読出ステップと、
前記タイマからの割り込み信号を受けて前記タイマのオーバーフローフラグの状態を判別するフラグ判別ステップと、
前記オーバーフローフラグがオンしている場合に、前記リロードレジスタから読み出した今回のカウント値と前回のカウント値との比較に基づいて前記オーバーフローフラグがオンしている間における前記パルス信号の入力の有無を判断する入力判別ステップと、
を有することを特徴とするパルス信号測定方法。
【請求項２】
前記入力判別ステップは、前記リロードレジスタから読み出した今回と前回とのカウント値が一致しない場合には前記パルス信号の入力による割り込み要求があったと判断し、
前記リロードレジスタから読み出した今回と前回とのカウント値が一致する場合には、前記パルス信号の入力による割り込み要求がないと判断する、
ことを特徴とする請求項１に記載のパルス信号測定方法。
【請求項３】
前記フラグ判別ステップにおいてオーバーフローフラグがオフ状態と判断される場合、及び、前記入力判別ステップにおいて前記パルス信号の入力による割り込み要求があったと判断される場合に、前記パルス信号のパルス幅又は周期を算出する算出ステップをさらに有する、
ことを特徴とする請求項２に記載のパルス信号測定方法。
【請求項４】
前記入力判別ステップにおける判別結果を通知するステップをさらに有する
、
ことを特徴とする請求項２又は３に記載のパルス信号測定方法。
【請求項５】
前記判別結果の通知後に、前記オーバーフローフラグをオフする処理をするステップをさらに有する、
ことを特徴とする請求項４に記載のパルス信号測定方法。
【請求項６】
前記フラグ判別ステップにおいてオーバーフローが発生したと判断される場合に、一のカウント動作中に発生したオーバーフローの回数を更新する更新ステップをさらに有する、
ことを特徴とする請求項５に記載のパルス信号測定方法。
【請求項７】
前記更新ステップを実行する前にオーバーフローの回数が所定の最大値を超えていないかを判断し、超えている場合には前記更新ステップを実行させない最大値ガード処理ステップをさらに有する、
ことを特徴とする請求項６に記載のパルス信号測定方法。
【請求項８】
前記オーバーフローの回数と、前記リロードレジスタから読み出したカウント値とに基づいて、前記パルス幅又は周期を算出する算出ステップをさらに有する
ことを特徴とする請求項６又は７に記載のパルス信号測定方法。
【請求項９】
パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、かつ前記カウント値がオーバーフローした場合には前記リロードレジスタへリロードせずに割り込み信号を出力するタイマを用いたパルス信号測定装置であって、
前記タイマからの割り込み信号を受けて前記リロードレジスタのカウント値を読み出す読出手段と、
前記タイマからの割り込み信号を受けて前記タイマのオーバーフローフラグの状態を判別するフラグ判別手段と、
前記オーバーフローフラグがオンしている場合に、前記リロードレジスタから読み出した今回のカウント値と前記のカウント値との比較に基づいて前記オーバーフローフラグがオンしている間における前記パルス信号の入力の有無を判断する入力判別手段と、
を有することを特徴とするパルス信号測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カウンタ回路を備えたタイマを用いてパルス幅やパルス周期を測定するパルス信号測定装置及び方法に関する。
【背景技術】
【０００２】
パルス信号の周期やパルス幅を検出するためのタイマとしては、パルス信号の立ち上がりあるいは立ち下がり（パルス信号のエッジ）に同期してカウンタ回路によりカウント動作すると共にパルス信号のエッジを検出する毎に割り込み信号を出力するものが知られている（例えば、特許文献１参照）。したがって、割り込み要求の発生に応じてカウンタ回路のカウント値を読み出せば、パルス幅やパルス周期を検出することができる。
【特許文献１】特開平０５−１５０８５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記のタイマでは、パルス幅や周期が長いパルス信号が入力されてカウンタ回路にオーバーフローが発生した場合には、オーバーフローフラグをオンすると共に上記の割り込み信号をオンさせる。すなわち、上記のタイマでは、パルス信号の入力による場合とオーバーフローが生じた場合とで同じ割り込み信号を生成する。通常は、この割り込み信号がパルス信号の入力によるものか、あるいは、オーバーフローによるものかを判別するには、オーバーフローフラグがオンしているかで判断できる。
しかしながら、オーバーフローフラグがオンしている状態でパルス信号が入力されたような場合には、割り込み要求がオーバーフローによるものなのか、パルス信号の入力による割り込み信号が得られず、オーバーフローが発生するようなパルス信号の幅や周期の正確な測定が困難であった。
【０００４】
本発明は、上記の事情に鑑みて成されたものであり、その目的とするところは、パルス信号の入力及びカウンタ回路のオーバーフローの双方について割り込み信号を発生するタイマを用いてパルス信号の幅や周期の正確な測定が可能なパルス信号測定装置及び方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係るパルス信号測定方法は、パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いたパルス信号測定方法であって、タイマからの割り込み信号を受けてリロードレジスタのカウント値を読み出す読出ステップと、タイマからの割り込み信号を受けてタイマのオーバーフローフラグの状態を判別するフラグ判別ステップと、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回のカウント値と前記のカウント値との比較に基づいてオーバーフローフラグがオンしている間におけるパルス信号の入力の有無を判断する入力判別ステップと、を有することを特徴としている。
この構成によれば、オーバーフローによりオーバーフローフラグがオンしている間に新たにパルス信号が入力（新たにパルス信号のエッジが検出）された場合には、リロードレジスタに新たなカウント値がリロードされるので、このリロードレジスタの値から新たなパルス信号の入力の有無を検出できる。
【０００６】
上記構成において、入力判別ステップは、リロードレジスタから読み出した今回と前回とのカウント値が一致しない場合にはパルス信号の入力による割り込み要求があったと判断し、リロードレジスタから読み出した今回と前回とのカウント値が一致する場合には、パルス信号の入力による割り込み要求がないと判断する、構成を採用できる。
この構成によれば、リロードレジスタの前回と今回の値とを比較すれば、新たにパルス信号が入力されたかを検出でき、オーバーフローフラグがオンしている間の新たなパルス信号の入力を検出できる。
【０００７】
上記構成において、フラグ判別ステップにおいてオーバーフローフラグがオフ状態と判断される場合、及び、入力判別ステップにおいてパルス信号の入力による割り込み要求があったと判断される場合に、パルス信号のパルス幅又は周期を算出する算出ステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローによる割り込み要求とパルス信号の入力による割り込み要求とは確実に区別されるので、パルス信号のパルス幅又は周期を正確に算出できる。
【０００８】
上記構成において、入力判別ステップにおける判別結果を通知するステップをさらに有する、構成を採用できる。
この構成によれば、タイマのカウント値を利用するアプリケーション等に、オーバーフローによる割り込み要求か、パルス信号の入力による割り込み要求かを知らせることができる。
【０００９】
上記構成において、判別結果の通知後に、オーバーフローフラグをオフする処理をするステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローフラグをタイマの外部から強制的にオフする処理をするので、一のカウント動作においてオーバーフローフラグがオンする回数をカウントすることによりオーバーフローの発生回数を取得できる。
【００１０】
上記構成において、フラグ判別ステップにおいてオーバーフローが発生したと判断される場合に、一のカウント動作中に発生したオーバーフローの回数を更新する更新ステップをさらに有する、構成を採用できる。
この構成によれば、一のカウント動作中に発生したオーバーフローの回数が得られるので、パルス信号の幅や周期が長い場合にも測定可能となる。
【００１１】
上記構成において、更新ステップを実行する前にオーバーフローの回数が所定の最大値を超えていないかを判断し、超えている場合には更新ステップを実行させない最大値ガード処理ステップをさらに有する、構成を採用できる。
この構成によれば、誤った幅や周期を算出することを防止できる。
【００１２】
上記構成において、オーバーフローの回数と、前記リロードレジスタから読み出したカウント値とに基づいて、パルス幅又は周期を算出する算出ステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローの発生するような長いパルス幅又は周期のパルス信号の正確な測定が可能となる。
【００１３】
本発明に係るパルス信号測定装置は、パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力するタイマを用いたパルス信号測定装置であって、タイマからの割り込み信号を受けてリロードレジスタのカウント値を読み出す読出手段と、タイマからの割り込み信号を受けてタイマのオーバーフローフラグの状態を判別するフラグ判別手段と、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回のカウント値とのカウント値との比較に基づいてオーバーフローフラグがオンしている間におけるパルス信号の入力の有無を判断する入力判別手段と、を有することを特徴としている。
【発明の効果】
【００１４】
本発明によれば、入力されるパルス信号のエッジの検出及びカウンタ回路のオーバーフローの双方について割り込み信号を発生するタイマを用いて幅や周期が長いパルス信号の幅や周期の正確な測定が可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図１は、本発明の一実施形態に係るパルス信号測定装置に用いられるタイマの回路構成図である。
このタイマ１０は、図１に示すように、パルスエッジ検出回路３０、カウンタリセット回路４０、オーバーフローフラグ（レジスタ）５０、クロック発生回路６０、カウンタ回路７０、リロードレジスタ８０等から構成されている。尚、本実施形態では、タイマ１０は、独立の回路として構成されているが、プロセッサの一部の回路として構成されていてもよい。
【００１６】
パルスエッジ検出回路３０は、入力ポート２０から入力されるパルス信号ＰＳのエッジを検出し、検出に応じてパルスをカウンタリセット回路４０へ出力する。また、パルスエッジ検出回路３０は、設定された各検出モードに応じてパルス信号ＰＳの立ち上がりエッジ及び／又は立下りエッジを検出する。例えば、パルス信号ＰＳの周期を検出するモードでは、パルス信号ＰＳの立ち上がりエッジ又は立下りエッジを検出し、パルス信号ＰＳのパルス幅を検出する場合には、立ち上がりエッジ及び立下りエッジの双方を検出する。
【００１７】
カウンタリセット回路４０は、パルス信号ＰＳのエッジの検出に同期してリセットパルスをカウンタ回路７０へ出力する。カウンタ回路７０はリセットパルスの入力により一のカウント動作を終了して新たなカウント動作を開始する。
【００１８】
オーバーフローフラグ５０は、カウンタ回路７０においてカウント値ＣＴがオーバーフローした場合にオンされて、オーバーフローの発生を示すためのフラグ（レジスタ）である。オーバーフローフラグ５０はオンされると、外部（例えば、パルス信号測定装置１００）からソフトウエア処理によりオフされるまでオン状態を維持する。
【００１９】
クロック発生回路６０、設定された周波数のクロック信号をカウンタ回路７０へ供給する。
【００２０】
カウンタ回路７０は、クロック発生回路６０から供給されるクロック信号及びカウンタリセット回路から入力されるリセットパルスに基づいてカウント動作をする。
カウンタ回路７０は、具体的には、リセットパルスが入力されるとアップカウントを開始し、次にリセットパルスが入力されるとそのときのカウント値ＣＴをリロードレジスタ８０へリロードすると共に割り込み信号ＩＮＴをパルス信号測定装置１００へ出力し、かつ、再びアップカウントを開始する。
また、カウンタ回路７０は、カウント動作中にオーバーフローが発生した場合には、カウント値ＣＴをリロードレジスタ８０へリロードせずに割り込み信号ＩＮＴを出力すると共にオーバーフローフラグ５０をオン状態にし、かつ、アップカウントを継続する。例えば、カウンタ回路７０が１６ビットのレジスタを有する場合には、カウント値が６５５３６を超えるとオーバーフローが発生する。尚、割り込み信号ＩＮＴは、オーバーフローフラグ５０がオフされるまで出力される。
【００２１】
リロードレジスタ８０は、カウンタ回路７０で確定したカウント値ＣＴを次回のカウント値ＣＴが確定するまで保持する。すなわち、リロードレジスタ８０は、カウンタ回路７０から新たなカウント値ＣＴがリロードされるまでは、前回のカウント値ＣＴを保持する。
【００２２】
パルス信号測定装置１００は、例えば、プロセッサ、メモリ等のハードウエアと所要のソフトウエアから構成され、後述する処理を実行する。
【００２３】
次に、タイマ１０を用いたパルス信号測定装置１００による処理の一例について図２ないし図５を参照して説明する。
ここで、図２はパルス信号測定装置における処理の一例を示すフローチャート、図３はパルス信号の入力による割込処理とオーバーフローによる割込処理の一例を示すフローチャート、図４はパルス信号の測定に関する各種変数の一例を示すタイミングチャート、及び図５は各種変数の他の例を示すタイミングチャートである。
【００２４】
先ず、パルス信号測定装置１００による処理を説明する前に、タイマ１０の動作について図４及び図５を参照して説明する。尚、図４及び図５は、パルス信号ＰＳの周期を測定する場合のタイミングチャートである。
カウンタ回路７０は、図４（Ｂ）に示すように、パルス信号ＰＳ（図４（Ａ））の立ち上がりに同期してアップカウント動作をすると共に、図４（Ｃ）に示すように、リロードレジスタ８０の値を更新する。
また、カウンタ回路７０は、図４（Ｂ）に示すように、カウント値ＣＴがオーバーフローした場合には、リロードレジスタ８０の値は更新せずに、図４（Ｄ）に示すように、オーバーフローフラグ５０をオンする。このオーバーフローフラグ５０は、ソフトウエアによりオフされるまでオン状態を維持する。
さらに、カウンタ回路７０は、図４（Ｅ）に示すように、パルス信号ＰＳの立ち上がりに同期して割り込み信号ＩＮＴを出力すると共に、オーバーフローの発生に同期して割り込み信号ＩＮＴを出力する。このような場合には、オーバーフローフラグ５０の状態を検出することにより、割り込み信号ＩＮＴの発生原因を特定することができる。
【００２５】
一方、図５（Ａ）ないし（Ｅ）に示すように、カウント値ＣＴがオーバーフローしてオーバーフローフラグがオンした状態で、カウンタ回路パルス７０にパルス信号ＰＳの立ち上がりエッジが入力された場合、すなわち、オーバーフローとパルス信号ＰＳのエッジの入力が重なった場合には、カウンタ回路７０は、割り込み信号ＩＮＴをオーバーフローの発生により既に出力しているので、パルス信号ＰＳの立ち上がりエッジに同期した割り込み信号ＩＮＴは出力されない。すなわち、タイマ１０へパルス信号ＰＳの立ち上がりエッジが入力されても、これに同期した割り込み信号ＩＮＴが得られない。
【００２６】
次に、図２ないし図５を参照してパルス信号測定装置１００による処理について説明する。
パルス信号測定装置１００は、タイマ１０から割り込み信号ＩＮＴを受けると、図２に示すタイマ割り込み処理を実行する。
このタイマ割り込み処理は、先ず、リロードレジスタ８０の値を読み出して、今回値として記憶する（ステップＳＴ１）。
次いで、オーバーフローフラグ５０がオンしているかを判断し（ステップＳＴ２）、オーバーフローフラグ５０がオフしている場合には、タイマ１０からの割り込み要求がパルス信号ＰＳの立ち上がりエッジの入力によるものと判断し、後述するパルス信号の入力による割込み処理を実行する（ステップＳＴ３）。
【００２７】
一方、ステップＳＴ２において、オーバーフローフラグ５０がオンしている場合には、
オーバーフローの回数が所定の最大数（例えば、レジスタのビット数で規定される）を超えているかを判断する最大値ガード処理を実行し（ステップＳＴ４）、超えていない場合には、オーバーフローの回数をカウントアップする（ステップＳＴ５）。尚、オーバーフローの回数は、パルス信号測定装置１００における変数であり、図４（Ｇ）や図５（Ｇ）に示すように、オーバーフローの発生毎に変化する。また、オーバーフローの回数の初期値は０である。
【００２８】
次いで、リロードレジスタ８０から読み出した今回のカウント値と前回のカウント値とが異なっているかを比較する（ステップＳＴ６）。
ここで、今回のカウント値と前回のカウント値とが一致している場合には、パルス信号ＰＳの入力による割り込み要求がないと判断して、後述するオーバーフローによる割り込み処理を実行する（ステップＳＴ８）。
一方、今回のカウント値と前回のカウント値とが異なっている場合には、オーバーフローフラグ５０がオンしている間にパルス信号ＰＳの入力が有ったものと判断し、後述するパルス信号の入力による割込み処理を実行する（ステップＳＴ７）。
【００２９】
ここで、ステップＳＴ３、ＳＴ７におけるパルス信号の入力による割込み処理、図３（Ａ）に示すように、先ず、パルス幅又は周期の算出する（ステップＳＴ２１）。パルス幅又は周期は、リロードレジスタ８０のカウンタ最大値＋１にオーバーフロー回数を掛け合わせた値に、リロードレジスタ８０の今回値を加算することにより求められる。したがって、パルス信号測定装置１００では、図４（Ｆ）や図５（Ｆ）に示すように、パルス信号の入力による割り込みが発生する毎に、パルス周期（又はパルス幅）が算出される。
【００３０】
次いで、オーバーフローの回数を初期化すると共に（ステップＳＴ２２）、パルス信号の入力による割り込み要求が発生したことを、アプリケーション等に通知する処理をする（ステップＳＴ２３）。これにより、アプリケーションでは、割り込み信号ＩＮＴの発生原因を特定することができる。
【００３１】
ステップＳＴ８におけるオーバーフローによる割り込み処理は、図３（Ｂ）に示すように、オーバーフローによる割り込み要求が発生したことをアプリケーション等に通知する処理をする（ステップＳＴ３１）。これにより、アプリケーションでは、オーバーフローフラグがオンしている間にパルス信号の入力がなかったことを確実に識別できる。
【００３２】
パルス信号測定装置１００は、ステップＳＴ７の処理を終えたのち、ステップＳＴ３，ＳＴ７，ＳＴ８の割り込み処理が完了するまで所定時間が経過するのを待ち（ステップＳＴ９）、その後に、タイマ１０のオーバーフローフラグ５０を、図４（Ｄ）や図５（Ｄ）に示すように、オフする処理を実行する（ステップＳＴ１０）。これにより、タイマ１０からの割り込み信号ＩＮＴの出力は停止する。
次いで、リロードレジスタ８０から読み出した今回値を前回値として更新し（ステップＳＴ１１）、割り込み処理を終了する。
【００３３】
以上のように、本実施形態によれば、オーバーフローフラグがオンした状態においてもパルス信号の入力の有無が検出できるので、パルス信号の入力に同期した割り込み処理を確実に実行することができ、オーバーフローが発生するような長い周期又は幅のパルス信号の正確な測定が可能となる。
【００３４】
上記実施形態では、タイマ１０とパルス信号測定装置１００とを別々に構成した場合について説明したが、これに限定されるわけではなく、これらを一のプロセッサで構成することも可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係るパルス信号測定装置に用いられるタイマの回路構成図である。
【図２】パルス信号測定装置における処理の一例を示すフローチャートである。
【図３】（Ａ）はパルス信号の入力による割込処理の一例を示すフローチャートであり、（Ｂ）はオーバーフローによる割り込み処理の一例を示すフローチャートである。
【図４】パルス信号の測定に関する各種変数値の関係の一例を示すタイミングチャートある。
【図５】パルス信号の測定に関する各種変数値の関係の他の例を示すタイミングチャートある。
【符号の説明】
【００３６】
１０…タイマ
２０…入力ポート
３０…パルスエッジ検出回路
４０…カウンタリセット回路
５０…オーバーフローフラグ
６０…クロック発生回路
７０…カウンタ回路
８０…リロードレジスタ
１００…パルス信号測定装置
ＰＳ…パルス信号
ＣＴ…カウント値
【図１】
2007057446.tif 000003
【図２】
2007057446.tif 000004
【図３】
2007057446.tif 000005
【図４】
2007057446.tif 000006
【図５】
2007057446.tif 000007