説明

パルス信号測定装置及び方法

【課題】パルス信号の入力及びオーバーフローの双方について割り込み信号を発生するタイマを用いてパルス信号の幅や周期を正確に測定可能なパルス信号測定方法を提供する。
【解決手段】リロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いてパルス幅又は周期を測定する際に、割り込み信号を受けてリロードレジスタのカウント値を読み出し(ステップST1)、タイマのオーバーフローフラグの状態を判別し(ステップST2)、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回値と前回値との比較に基づいてパルス信号の入力の有無を判断する(ステップST6)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カウンタ回路を備えたタイマを用いてパルス幅やパルス周期を測定するパルス信号測定装置及び方法に関する。
【背景技術】
【0002】
パルス信号の周期やパルス幅を検出するためのタイマとしては、パルス信号の立ち上がりあるいは立ち下がり(パルス信号のエッジ)に同期してカウンタ回路によりカウント動作すると共にパルス信号のエッジを検出する毎に割り込み信号を出力するものが知られている(例えば、特許文献1参照)。したがって、割り込み要求の発生に応じてカウンタ回路のカウント値を読み出せば、パルス幅やパルス周期を検出することができる。
【特許文献1】特開平05−150858号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上記のタイマでは、パルス幅や周期が長いパルス信号が入力されてカウンタ回路にオーバーフローが発生した場合には、オーバーフローフラグをオンすると共に上記の割り込み信号をオンさせる。すなわち、上記のタイマでは、パルス信号の入力による場合とオーバーフローが生じた場合とで同じ割り込み信号を生成する。通常は、この割り込み信号がパルス信号の入力によるものか、あるいは、オーバーフローによるものかを判別するには、オーバーフローフラグがオンしているかで判断できる。
しかしながら、オーバーフローフラグがオンしている状態でパルス信号が入力されたような場合には、割り込み要求がオーバーフローによるものなのか、パルス信号の入力による割り込み信号が得られず、オーバーフローが発生するようなパルス信号の幅や周期の正確な測定が困難であった。
【0004】
本発明は、上記の事情に鑑みて成されたものであり、その目的とするところは、パルス信号の入力及びカウンタ回路のオーバーフローの双方について割り込み信号を発生するタイマを用いてパルス信号の幅や周期の正確な測定が可能なパルス信号測定装置及び方法を提供することにある。
【課題を解決するための手段】
【0005】
本発明に係るパルス信号測定方法は、パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いたパルス信号測定方法であって、タイマからの割り込み信号を受けてリロードレジスタのカウント値を読み出す読出ステップと、タイマからの割り込み信号を受けてタイマのオーバーフローフラグの状態を判別するフラグ判別ステップと、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回のカウント値と前記のカウント値との比較に基づいてオーバーフローフラグがオンしている間におけるパルス信号の入力の有無を判断する入力判別ステップと、を有することを特徴としている。
この構成によれば、オーバーフローによりオーバーフローフラグがオンしている間に新たにパルス信号が入力(新たにパルス信号のエッジが検出)された場合には、リロードレジスタに新たなカウント値がリロードされるので、このリロードレジスタの値から新たなパルス信号の入力の有無を検出できる。
【0006】
上記構成において、入力判別ステップは、リロードレジスタから読み出した今回と前回とのカウント値が一致しない場合にはパルス信号の入力による割り込み要求があったと判断し、リロードレジスタから読み出した今回と前回とのカウント値が一致する場合には、パルス信号の入力による割り込み要求がないと判断する、構成を採用できる。
この構成によれば、リロードレジスタの前回と今回の値とを比較すれば、新たにパルス信号が入力されたかを検出でき、オーバーフローフラグがオンしている間の新たなパルス信号の入力を検出できる。
【0007】
上記構成において、フラグ判別ステップにおいてオーバーフローフラグがオフ状態と判断される場合、及び、入力判別ステップにおいてパルス信号の入力による割り込み要求があったと判断される場合に、パルス信号のパルス幅又は周期を算出する算出ステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローによる割り込み要求とパルス信号の入力による割り込み要求とは確実に区別されるので、パルス信号のパルス幅又は周期を正確に算出できる。
【0008】
上記構成において、入力判別ステップにおける判別結果を通知するステップをさらに有する、構成を採用できる。
この構成によれば、タイマのカウント値を利用するアプリケーション等に、オーバーフローによる割り込み要求か、パルス信号の入力による割り込み要求かを知らせることができる。
【0009】
上記構成において、判別結果の通知後に、オーバーフローフラグをオフする処理をするステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローフラグをタイマの外部から強制的にオフする処理をするので、一のカウント動作においてオーバーフローフラグがオンする回数をカウントすることによりオーバーフローの発生回数を取得できる。
【0010】
上記構成において、フラグ判別ステップにおいてオーバーフローが発生したと判断される場合に、一のカウント動作中に発生したオーバーフローの回数を更新する更新ステップをさらに有する、構成を採用できる。
この構成によれば、一のカウント動作中に発生したオーバーフローの回数が得られるので、パルス信号の幅や周期が長い場合にも測定可能となる。
【0011】
上記構成において、更新ステップを実行する前にオーバーフローの回数が所定の最大値を超えていないかを判断し、超えている場合には更新ステップを実行させない最大値ガード処理ステップをさらに有する、構成を採用できる。
この構成によれば、誤った幅や周期を算出することを防止できる。
【0012】
上記構成において、オーバーフローの回数と、前記リロードレジスタから読み出したカウント値とに基づいて、パルス幅又は周期を算出する算出ステップをさらに有する、構成を採用できる。
この構成によれば、オーバーフローの発生するような長いパルス幅又は周期のパルス信号の正確な測定が可能となる。
【0013】
本発明に係るパルス信号測定装置は、パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、カウント値がオーバーフローした場合にはリロードレジスタへリロードせずに割り込み信号を出力するタイマを用いたパルス信号測定装置であって、タイマからの割り込み信号を受けてリロードレジスタのカウント値を読み出す読出手段と、タイマからの割り込み信号を受けてタイマのオーバーフローフラグの状態を判別するフラグ判別手段と、オーバーフローフラグがオンしている場合に、リロードレジスタから読み出した今回のカウント値とのカウント値との比較に基づいてオーバーフローフラグがオンしている間におけるパルス信号の入力の有無を判断する入力判別手段と、を有することを特徴としている。
【発明の効果】
【0014】
本発明によれば、入力されるパルス信号のエッジの検出及びカウンタ回路のオーバーフローの双方について割り込み信号を発生するタイマを用いて幅や周期が長いパルス信号の幅や周期の正確な測定が可能となる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図1は、本発明の一実施形態に係るパルス信号測定装置に用いられるタイマの回路構成図である。
このタイマ10は、図1に示すように、パルスエッジ検出回路30、カウンタリセット回路40、オーバーフローフラグ(レジスタ)50、クロック発生回路60、カウンタ回路70、リロードレジスタ80等から構成されている。尚、本実施形態では、タイマ10は、独立の回路として構成されているが、プロセッサの一部の回路として構成されていてもよい。
【0016】
パルスエッジ検出回路30は、入力ポート20から入力されるパルス信号PSのエッジを検出し、検出に応じてパルスをカウンタリセット回路40へ出力する。また、パルスエッジ検出回路30は、設定された各検出モードに応じてパルス信号PSの立ち上がりエッジ及び/又は立下りエッジを検出する。例えば、パルス信号PSの周期を検出するモードでは、パルス信号PSの立ち上がりエッジ又は立下りエッジを検出し、パルス信号PSのパルス幅を検出する場合には、立ち上がりエッジ及び立下りエッジの双方を検出する。
【0017】
カウンタリセット回路40は、パルス信号PSのエッジの検出に同期してリセットパルスをカウンタ回路70へ出力する。カウンタ回路70はリセットパルスの入力により一のカウント動作を終了して新たなカウント動作を開始する。
【0018】
オーバーフローフラグ50は、カウンタ回路70においてカウント値CTがオーバーフローした場合にオンされて、オーバーフローの発生を示すためのフラグ(レジスタ)である。オーバーフローフラグ50はオンされると、外部(例えば、パルス信号測定装置100)からソフトウエア処理によりオフされるまでオン状態を維持する。
【0019】
クロック発生回路60、設定された周波数のクロック信号をカウンタ回路70へ供給する。
【0020】
カウンタ回路70は、クロック発生回路60から供給されるクロック信号及びカウンタリセット回路から入力されるリセットパルスに基づいてカウント動作をする。
カウンタ回路70は、具体的には、リセットパルスが入力されるとアップカウントを開始し、次にリセットパルスが入力されるとそのときのカウント値CTをリロードレジスタ80へリロードすると共に割り込み信号INTをパルス信号測定装置100へ出力し、かつ、再びアップカウントを開始する。
また、カウンタ回路70は、カウント動作中にオーバーフローが発生した場合には、カウント値CTをリロードレジスタ80へリロードせずに割り込み信号INTを出力すると共にオーバーフローフラグ50をオン状態にし、かつ、アップカウントを継続する。例えば、カウンタ回路70が16ビットのレジスタを有する場合には、カウント値が65536を超えるとオーバーフローが発生する。尚、割り込み信号INTは、オーバーフローフラグ50がオフされるまで出力される。
【0021】
リロードレジスタ80は、カウンタ回路70で確定したカウント値CTを次回のカウント値CTが確定するまで保持する。すなわち、リロードレジスタ80は、カウンタ回路70から新たなカウント値CTがリロードされるまでは、前回のカウント値CTを保持する。
【0022】
パルス信号測定装置100は、例えば、プロセッサ、メモリ等のハードウエアと所要のソフトウエアから構成され、後述する処理を実行する。
【0023】
次に、タイマ10を用いたパルス信号測定装置100による処理の一例について図2ないし図5を参照して説明する。
ここで、図2はパルス信号測定装置における処理の一例を示すフローチャート、図3はパルス信号の入力による割込処理とオーバーフローによる割込処理の一例を示すフローチャート、図4はパルス信号の測定に関する各種変数の一例を示すタイミングチャート、及び図5は各種変数の他の例を示すタイミングチャートである。
【0024】
先ず、パルス信号測定装置100による処理を説明する前に、タイマ10の動作について図4及び図5を参照して説明する。尚、図4及び図5は、パルス信号PSの周期を測定する場合のタイミングチャートである。
カウンタ回路70は、図4(B)に示すように、パルス信号PS(図4(A))の立ち上がりに同期してアップカウント動作をすると共に、図4(C)に示すように、リロードレジスタ80の値を更新する。
また、カウンタ回路70は、図4(B)に示すように、カウント値CTがオーバーフローした場合には、リロードレジスタ80の値は更新せずに、図4(D)に示すように、オーバーフローフラグ50をオンする。このオーバーフローフラグ50は、ソフトウエアによりオフされるまでオン状態を維持する。
さらに、カウンタ回路70は、図4(E)に示すように、パルス信号PSの立ち上がりに同期して割り込み信号INTを出力すると共に、オーバーフローの発生に同期して割り込み信号INTを出力する。このような場合には、オーバーフローフラグ50の状態を検出することにより、割り込み信号INTの発生原因を特定することができる。
【0025】
一方、図5(A)ないし(E)に示すように、カウント値CTがオーバーフローしてオーバーフローフラグがオンした状態で、カウンタ回路パルス70にパルス信号PSの立ち上がりエッジが入力された場合、すなわち、オーバーフローとパルス信号PSのエッジの入力が重なった場合には、カウンタ回路70は、割り込み信号INTをオーバーフローの発生により既に出力しているので、パルス信号PSの立ち上がりエッジに同期した割り込み信号INTは出力されない。すなわち、タイマ10へパルス信号PSの立ち上がりエッジが入力されても、これに同期した割り込み信号INTが得られない。
【0026】
次に、図2ないし図5を参照してパルス信号測定装置100による処理について説明する。
パルス信号測定装置100は、タイマ10から割り込み信号INTを受けると、図2に示すタイマ割り込み処理を実行する。
このタイマ割り込み処理は、先ず、リロードレジスタ80の値を読み出して、今回値として記憶する(ステップST1)。
次いで、オーバーフローフラグ50がオンしているかを判断し(ステップST2)、オーバーフローフラグ50がオフしている場合には、タイマ10からの割り込み要求がパルス信号PSの立ち上がりエッジの入力によるものと判断し、後述するパルス信号の入力による割込み処理を実行する(ステップST3)。
【0027】
一方、ステップST2において、オーバーフローフラグ50がオンしている場合には、
オーバーフローの回数が所定の最大数(例えば、レジスタのビット数で規定される)を超えているかを判断する最大値ガード処理を実行し(ステップST4)、超えていない場合には、オーバーフローの回数をカウントアップする(ステップST5)。尚、オーバーフローの回数は、パルス信号測定装置100における変数であり、図4(G)や図5(G)に示すように、オーバーフローの発生毎に変化する。また、オーバーフローの回数の初期値は0である。
【0028】
次いで、リロードレジスタ80から読み出した今回のカウント値と前回のカウント値とが異なっているかを比較する(ステップST6)。
ここで、今回のカウント値と前回のカウント値とが一致している場合には、パルス信号PSの入力による割り込み要求がないと判断して、後述するオーバーフローによる割り込み処理を実行する(ステップST8)。
一方、今回のカウント値と前回のカウント値とが異なっている場合には、オーバーフローフラグ50がオンしている間にパルス信号PSの入力が有ったものと判断し、後述するパルス信号の入力による割込み処理を実行する(ステップST7)。
【0029】
ここで、ステップST3、ST7におけるパルス信号の入力による割込み処理、図3(A)に示すように、先ず、パルス幅又は周期の算出する(ステップST21)。パルス幅又は周期は、リロードレジスタ80のカウンタ最大値+1にオーバーフロー回数を掛け合わせた値に、リロードレジスタ80の今回値を加算することにより求められる。したがって、パルス信号測定装置100では、図4(F)や図5(F)に示すように、パルス信号の入力による割り込みが発生する毎に、パルス周期(又はパルス幅)が算出される。
【0030】
次いで、オーバーフローの回数を初期化すると共に(ステップST22)、パルス信号の入力による割り込み要求が発生したことを、アプリケーション等に通知する処理をする(ステップST23)。これにより、アプリケーションでは、割り込み信号INTの発生原因を特定することができる。
【0031】
ステップST8におけるオーバーフローによる割り込み処理は、図3(B)に示すように、オーバーフローによる割り込み要求が発生したことをアプリケーション等に通知する処理をする(ステップST31)。これにより、アプリケーションでは、オーバーフローフラグがオンしている間にパルス信号の入力がなかったことを確実に識別できる。
【0032】
パルス信号測定装置100は、ステップST7の処理を終えたのち、ステップST3,ST7,ST8の割り込み処理が完了するまで所定時間が経過するのを待ち(ステップST9)、その後に、タイマ10のオーバーフローフラグ50を、図4(D)や図5(D)に示すように、オフする処理を実行する(ステップST10)。これにより、タイマ10からの割り込み信号INTの出力は停止する。
次いで、リロードレジスタ80から読み出した今回値を前回値として更新し(ステップST11)、割り込み処理を終了する。
【0033】
以上のように、本実施形態によれば、オーバーフローフラグがオンした状態においてもパルス信号の入力の有無が検出できるので、パルス信号の入力に同期した割り込み処理を確実に実行することができ、オーバーフローが発生するような長い周期又は幅のパルス信号の正確な測定が可能となる。
【0034】
上記実施形態では、タイマ10とパルス信号測定装置100とを別々に構成した場合について説明したが、これに限定されるわけではなく、これらを一のプロセッサで構成することも可能である。
【図面の簡単な説明】
【0035】
【図1】本発明の一実施形態に係るパルス信号測定装置に用いられるタイマの回路構成図である。
【図2】パルス信号測定装置における処理の一例を示すフローチャートである。
【図3】(A)はパルス信号の入力による割込処理の一例を示すフローチャートであり、(B)はオーバーフローによる割り込み処理の一例を示すフローチャートである。
【図4】パルス信号の測定に関する各種変数値の関係の一例を示すタイミングチャートある。
【図5】パルス信号の測定に関する各種変数値の関係の他の例を示すタイミングチャートある。
【符号の説明】
【0036】
10…タイマ
20…入力ポート
30…パルスエッジ検出回路
40…カウンタリセット回路
50…オーバーフローフラグ
60…クロック発生回路
70…カウンタ回路
80…リロードレジスタ
100…パルス信号測定装置
PS…パルス信号
CT…カウント値

【特許請求の範囲】
【請求項1】
パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、前記カウント値がオーバーフローした場合には前記リロードレジスタへリロードせずに前記割り込み信号を出力すると共にオーバーフローフラグをオン状態にするタイマを用いたパルス信号測定方法であって、
前記タイマからの割り込み信号を受けて前記リロードレジスタのカウント値を読み出す読出ステップと、
前記タイマからの割り込み信号を受けて前記タイマのオーバーフローフラグの状態を判別するフラグ判別ステップと、
前記オーバーフローフラグがオンしている場合に、前記リロードレジスタから読み出した今回のカウント値と前回のカウント値との比較に基づいて前記オーバーフローフラグがオンしている間における前記パルス信号の入力の有無を判断する入力判別ステップと、
を有することを特徴とするパルス信号測定方法。
【請求項2】
前記入力判別ステップは、前記リロードレジスタから読み出した今回と前回とのカウント値が一致しない場合には前記パルス信号の入力による割り込み要求があったと判断し、
前記リロードレジスタから読み出した今回と前回とのカウント値が一致する場合には、前記パルス信号の入力による割り込み要求がないと判断する、
ことを特徴とする請求項1に記載のパルス信号測定方法。
【請求項3】
前記フラグ判別ステップにおいてオーバーフローフラグがオフ状態と判断される場合、及び、前記入力判別ステップにおいて前記パルス信号の入力による割り込み要求があったと判断される場合に、前記パルス信号のパルス幅又は周期を算出する算出ステップをさらに有する、
ことを特徴とする請求項2に記載のパルス信号測定方法。
【請求項4】
前記入力判別ステップにおける判別結果を通知するステップをさらに有する

ことを特徴とする請求項2又は3に記載のパルス信号測定方法。
【請求項5】
前記判別結果の通知後に、前記オーバーフローフラグをオフする処理をするステップをさらに有する、
ことを特徴とする請求項4に記載のパルス信号測定方法。
【請求項6】
前記フラグ判別ステップにおいてオーバーフローが発生したと判断される場合に、一のカウント動作中に発生したオーバーフローの回数を更新する更新ステップをさらに有する、
ことを特徴とする請求項5に記載のパルス信号測定方法。
【請求項7】
前記更新ステップを実行する前にオーバーフローの回数が所定の最大値を超えていないかを判断し、超えている場合には前記更新ステップを実行させない最大値ガード処理ステップをさらに有する、
ことを特徴とする請求項6に記載のパルス信号測定方法。
【請求項8】
前記オーバーフローの回数と、前記リロードレジスタから読み出したカウント値とに基づいて、前記パルス幅又は周期を算出する算出ステップをさらに有する
ことを特徴とする請求項6又は7に記載のパルス信号測定方法。
【請求項9】
パルス信号のエッジの検出に基づいてカウント動作を実行してそのカウント値をリロードレジスタへリロードすると共に割り込み信号を出力し、かつ前記カウント値がオーバーフローした場合には前記リロードレジスタへリロードせずに割り込み信号を出力するタイマを用いたパルス信号測定装置であって、
前記タイマからの割り込み信号を受けて前記リロードレジスタのカウント値を読み出す読出手段と、
前記タイマからの割り込み信号を受けて前記タイマのオーバーフローフラグの状態を判別するフラグ判別手段と、
前記オーバーフローフラグがオンしている場合に、前記リロードレジスタから読み出した今回のカウント値と前記のカウント値との比較に基づいて前記オーバーフローフラグがオンしている間における前記パルス信号の入力の有無を判断する入力判別手段と、
を有することを特徴とするパルス信号測定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−57446(P2007−57446A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−245127(P2005−245127)
【出願日】平成17年8月26日(2005.8.26)
【出願人】(000237592)富士通テン株式会社 (3,383)
【Fターム(参考)】