(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6454619
(24)【登録日】2018年12月21日
(45)【発行日】2019年1月16日
(54)【発明の名称】パルス出力装置
(51)【国際特許分類】
H03K 23/66 20060101AFI20190107BHJP
G01F 1/60 20060101ALI20190107BHJP
G01F 1/00 20060101ALI20190107BHJP
【FI】
H03K23/66 F
G01F1/60
G01F1/00 Y
【請求項の数】2
【全頁数】9
(21)【出願番号】特願2015-155893(P2015-155893)
(22)【出願日】2015年8月6日
(65)【公開番号】特開2017-34622(P2017-34622A)
(43)【公開日】2017年2月9日
【審査請求日】2018年3月27日
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】岡山 喜彦
【審査官】
白井 亮
(56)【参考文献】
【文献】
特開昭54−100202(JP,A)
【文献】
特開昭58−154932(JP,A)
【文献】
特開昭59−190724(JP,A)
【文献】
特開平04−107009(JP,A)
【文献】
特開2008−236557(JP,A)
【文献】
特開平06−204858(JP,A)
【文献】
特開2001−044824(JP,A)
【文献】
特開平05−273008(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 23/66
G01F 1/00
G01F 1/60
(57)【特許請求の範囲】
【請求項1】
複数の周波数のうちいずれか1つの周波数のクロックを選択的に出力することが可能なプリスケーラと、
このプリスケーラの出力を入力クロックとするnビット(nは2のべき乗の値で、16以上の値)の第1のタイマと、
この第1のタイマの出力を入力クロックとするnビットの第2のタイマと、
この第2のタイマから出力させる所望の出力パルスの周波数に応じて前記プリスケーラから出力させるクロックの周波数を決定するクロック周波数決定手段と、
前記第1、第2のタイマの設定値を決定するタイマ設定値決定手段とを備え、
前記タイマ設定値決定手段は、前記プリスケーラから出力させるクロックの周波数と前記所望の出力パルスの周波数とからn×2ビットの分周比を決定し、このn×2ビットの分周比の上位nビットの値に1を加えた値を、前記第2のタイマの設定値とし、前記n×2ビットの分周比を前記第2のタイマの設定値で割った商を、前記第1のタイマの設定値とすることを特徴とするパルス出力装置。
【請求項2】
請求項1記載のパルス出力装置において、
前記クロック周波数決定手段は、前記所望の出力パルスの周波数の低下に伴って、前記プリスケーラから出力させるクロックの周波数と前記所望の出力パルスの周波数とで決まるn×2ビットの分周比が前記第1、第2のタイマの設定値の最大値の2乗の数値範囲に収まらなくなったときに、前記プリスケーラから出力させるクロックの周波数を下げる方向に切り替えることを特徴とするパルス出力装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイマを利用してクロックを分周し広い周波数範囲のパルスを生成するパルス出力装置に関するものである。
【背景技術】
【0002】
電磁流量計の流量出力には4−20mAの電流出力とパルス出力があり、いずれも流量の瞬時値を電流値やパルス周波数に変換して出力している(特許文献1参照)。電流出力の場合は多重レンジを使って小流量と大流量を切り替えてレンジ出力接点と組み合わせて外部に知らせることができる。一方、パルス出力の場合はパルスの数が単位時間当たりの流量になるので、レンジで分解能を上げることはできず、電流出力のようなレンジ切り替えは使えない。このため、0.00001Hz〜3000Hzといった低い周波数から高い周波数までパルスを連続的に作りださなけばならない。通常、パルス出力はコンピュータのタイマを使って分周する方法で実現している。
【0003】
コンピュータのタイマを使って0.00001Hz〜3000Hzの広い周波数のパルスを生成しようとすると、複数のタイマを組み合わせる必要がある。この場合、各タイマは独立しているため、下段のタイマのタイムアウト出力を上段のタイマの入力としてカスケード構成になるが、このような構成では分周比をそのままタイマの設定値とすることはできない。その理由は、タイマ動作はカウント値が0(タイムアウト)になると、設定値をリロードしてカウントダウンをするという動作を繰り返すため、下段のタイマがタイムアウトしたとき上段のタイマもタイムアウトするとは限らないためである。
【0004】
タイマを3つ縦続接続した場合の分周比は、上段のタイマ設定値×中段のタイマ設定値×下段のタイマ設定値となるため、分周比(浮動小数点数)を3つの整数の積に因数分解してタイマ設定値を求める必要があるが、最適な3つの整数を見つけるのは難しい。
そこで、従来の実装では、例えば16ビットタイマを3つ使ってタイマ設定値2つをスパン周波数(出力したい最大周波数)と出力パーセント値から決め打ちして、最後の1つを割り算で求めて3つ目のタイマ設定値としていた。
【0005】
従来のパルス出力装置の構成を
図5に示す。パルス出力装置は、複数の周波数のうちいずれか1つの周波数のクロックを選択的に出力することが可能なプリスケーラ(分周器)P0と、タイマT0〜T2とから構成される。
【0006】
プリスケーラP0は、周波数f1=7.3728MHzのクロックと、f1を8分周したf8=921.6KHzのクロックと、f1を32分周したf32=230.4KHzのクロックと、周波数fc32=900Hzのクロックの4つのうちいずれか1つの周波数のクロックを選択的に出力することができる。
【0007】
3つのタイマT0〜T2のタイマ設定値を決定するには、まずタイマT1のタイマ設定値(分周比)をPV%値によって決める。PV%値は、電磁流量計で計測した瞬時流量値[m
3/h]を設定スパン(最大瞬時流量[m
3/h])で割って100倍した0〜100%の値である。ここでは、10%≦PV%≦115%の場合、タイマT1の設定値を1とし、1%≦PV%<10%〜15%の場合、タイマT1の設定値を10とし、0.08%≦PV%<1%〜2%の場合、タイマT1の設定値を100とし、0%≦PV%<0.08%の場合、タイマT1のパルス出力を停止とする。
【0008】
次に、タイマT2の設定値とプリスケーラP0から出力するクロックとを、スパン周波数から決定する。スパン周波数は、パルス重み口径から計算することができる。パルス重みとは、電磁流量計のパルス出力における1パルスあたりの流体の体積[m
3]または質量[t]を表す。電磁流量計の口径[m]は、瞬時流量[m
3/h]を計算するとき必要であり、電磁流量計の配管断面積[m
2]は、π×口径[m]×口径[m]/4となる。この断面積を用いて、電磁流量計を流れる流体の瞬時流量[m
3/h]は流速[m/s]×断面積[m
2]×3600で計算できる。
【0009】
パルス重み[m
3]が指定されると、瞬時流量[m
3/h]をパルス重み[m
3]で割ることにより、1時間あたりのパルス数が得られるので、この1時間あたりのパルス数を3600倍すれば、電磁流量計で計測した瞬時流量[m
3/h]に対応する瞬時パルス周波数[Hz](
図5のパルス出力装置から出力するパルスの周波数)を求めることができる。スパン周波数[Hz]を求めるためには、予め設定されたスパン(最大瞬時流量[m
3/h])をパルス重み[m
3]で割って3600倍すればよい。
【0010】
以上のようにして求めたスパン周波数からクロックを決定する。0.029<スパン周波数≦3200の場合、プリスケーラP0から出力するクロックをf1=7.3728MHzのクロックとし、0.00288<スパン周波数≦0.029の場合、プリスケーラP0から出力するクロックをf8=921.6KHzのクロックとし、0.00072<スパン周波数≦0.00288の場合、プリスケーラP0から出力するクロックをf32=230.4KHzのクロックとし、スパン周波数≦0.00072の場合、プリスケーラP0から出力するクロックをfc32=900Hzのクロックとする。いずれの場合も、タイマT2の設定値は、クロック周波数÷(スパン周波数×4000)で計算できる。
【0011】
最後に、瞬時パルス周波数[Hz]=クロック周波数/(タイマT0の設定値×タイマT1の設定値×タイマT2の設定値)という関係が成立するように、タイマT0の設定値を決定する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開平5−273008号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
以上のように従来のパルス出力装置では、タイマT0の設定値を求める割り算の結果を整数値に丸めるときの小数点以下の値が大きいと、出力パルスの周波数誤差が大きくなるという問題点があった。また、条件判断で不連続なタイマ設定値をタイマT0〜T2に設定するため、連続性に問題があり、出力パルスの周波数を滑らかに変化させることが難しいという問題点があった。また、出力パルスの周波数を変化させる場合、タイマがタイムアウトするまで新しい周波数に移れないため、応答性が悪いという問題点があった。
【0014】
本発明は、上記課題を解決するためになされたもので、周波数誤差が小さく、滑らかな周波数変化が可能で、応答性に優れたパルス出力が可能なパルス出力装置を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明のパルス出力装置は、複数の周波数のうちいずれか1つの周波数のクロックを選択的に出力することが可能なプリスケーラと、このプリスケーラの出力を入力クロックとするnビット(nは2のべき乗の値で、16以上の値)の第1のタイマと、この第1のタイマの出力を入力クロックとするnビットの第2のタイマと、この第2のタイマから出力させる所望の出力パルスの周波数に応じて前記プリスケーラから出力させるクロックの周波数を決定するクロック周波数決定手段と、前記第1、第2のタイマの設定値を決定するタイマ設定値決定手段とを備え、前記タイマ設定値決定手段は、前記プリスケーラから出力させるクロックの周波数と前記所望の出力パルスの周波数とからn×2ビットの分周比を決定し、このn×2ビットの分周比の上位nビットの値に1を加えた値を、前記第2のタイマの設定値とし、前記n×2ビットの分周比を前記第2のタイマの設定値で割った商を、前記第1のタイマの設定値とすることを特徴とするものである。
また、本発明のパルス出力装置の1構成例において、前記クロック周波数決定手段は、前記所望の出力パルスの周波数の低下に伴って、前記プリスケーラから出力させるクロックの周波数と前記所望の出力パルスの周波数とで決まるn×2ビットの分周比が前記第1、第2のタイマの設定値の最大値の2乗の数値範囲に収まらなくなったときに、前記プリスケーラから出力させるクロックの周波数を下げる方向に切り替えることを特徴とするものである。
【発明の効果】
【0016】
本発明によれば、2つのタイマの縦続接続でパルス出力装置を実現することができる。本発明では、プリスケーラの周波数とタイマ設定値の決定の際に複雑な判断が不要となり、出力パルスの周波数から一意にプリスケーラの周波数と2つのタイマの設定値を決めることができるので、従来よりもアルゴリズムが単純となり、クロック周波数決定手段とタイマ設定値決定手段の処理負荷を小さくすることができる。本発明では、出力パルスの周波数誤差を小さくすることができる。また、本発明では、タイマ設定値が連続的になり、出力パルスの滑らかな周波数変化が期待できる。また、本発明では、出力パルスの周波数を変化させるときの応答性を向上させることができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施の形態に係るパルス出力装置の構成を示すブロック図である。
【
図2】本発明の実施の形態に係るパルス出力装置のタイマ設定値決定処理を説明するフローチャートである。
【
図3】従来のパルス出力装置と本発明の実施の形態に係るパルス出力装置の出力パルスの周波数誤差を示す図である。
【
図4】本発明の実施の形態に係るパルス出力装置のタイマ設定値の連続性を検証した結果を示す図である。
【
図5】従来のパルス出力装置の構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について図面を参照して説明する。
図1は本発明の実施の形態に係るパルス出力装置の構成を示すブロック図である。本実施の形態のパルス出力装置は、複数の周波数のうちいずれか1つの周波数のクロックを選択的に出力することが可能なプリスケーラ(分周器)P0と、プリスケーラP0の出力を入力クロックとして、ダウンカウントを行なう16ビットのカウンタであるタイマT1と、タイマT1の出力パルスを入力クロックとして、ダウンカウントを行なう16ビットのカウンタであるタイマT2と、タイマT2から出力させる所望の出力パルスの周波数に応じてプリスケーラP0から出力させるクロックの周波数を決定するクロック周波数決定部1と、タイマT1,T2の設定値を決定するタイマ設定値決定部2とから構成される。
【0019】
プリスケーラP0とタイマT1,T2としては、コンピュータに内蔵されているものを用いる。このコンピュータのCPU(Central Processing Unit)は、コンピュータのメモリに格納されたプログラムに従って処理を実行し、クロック周波数決定部1およびタイマ設定値決定部2として機能する。
【0020】
以下、本実施の形態のパルス出力装置のタイマ設定値決定処理について
図2を参照して説明する。まず、クロック周波数決定部1は、プリスケーラP0から出力させるクロックの周波数fclkを決定する(
図2ステップS1)。具体的には、クロック周波数決定部1は、パルス出力装置から出力させたいパルスの周波数foが0.00006Hz未満の場合、fclk=fc32=900HzのクロックをプリスケーラP0から出力させ、周波数foが0.00006Hz〜0.00021Hzの場合、fclk=f32=230.4KHzのクロックをプリスケーラP0から出力させ、周波数foが0.00022Hz〜0.00171Hzの場合、fclk=f8=921.6KHzのクロックをプリスケーラP0から出力させ、周波数foが0.00172Hz以上の場合、fclk=f1=7.3728MHzのクロックをプリスケーラP0から出力させる。
【0021】
このようにクロックの周波数fclkは、出力したいパルスの周波数foで一意に決まる。このクロック周波数fclkの決定方法は、所望の出力パルスの周波数foの低下に伴って、クロック周波数fclkとパルスの周波数foとで決まる32ビット(2つのタイマT1,T2の合計のビット数)の分周比がタイマT1,T2の設定値の最大値(16ビットのカウンタの場合で65535)の2乗の数値範囲に収まらなくなったときに、クロックの周波数fclkを下げる方向に切り替えるというものである。
【0022】
次に、タイマ設定値決定部2は、タイマT1,T2の設定値を決定する。まず、タイマ設定値決定部2は、プリスケーラP0から出力させるクロックの周波数fclkとパルス出力装置から出力させたいパルスの周波数foとから、32ビットの分周比DRを次式のように計算する(
図2ステップS2)。
DR=fclk/fo ・・・(1)
【0023】
続いて、タイマ設定値決定部2は、32ビットの分周比DRの上位16ビットの値に1を加えた値を、上段のタイマT2の設定値(分周比)R2とする(
図2ステップS3)。分周比DRの上位16ビットの値に1を加える理由は、下段のタイマT1の設定値が最大値65535を超えないようにするためである。
【0024】
また、タイマ設定値決定部2は、32ビットの分周比DRを上段のタイマT2の設定値R2で割った商を、下段のタイマT1の設定値(分周比)R1とする(
図2ステップS4)。
そして、タイマ設定値決定部2は、ステップS3,S4で決定した設定値R1,R2をそれぞれタイマT1,T2に設定する(
図2ステップS5)。こうして、タイマ設定値決定処理が終了する。
図2のタイマ設定値決定処理は、出力したいパルスの周波数foが変わる度(電磁流量計のパルス出力の場合には、瞬時流量値が変わる度)に行われる。
【0025】
タイマT1は、プリスケーラP0から入力されるクロックと同期して設定値R1からダウンカウントを行ない(クロックが入力される度にカウント値が1減少)、タイムアウト(カウント値が0)になると、タイマ設定値決定部2からカウント値が設定値R1に再設定され、カウント値が0になったときのクロックの次のクロックから再びダウンカウントを開始するという動作を繰り返す。
【0026】
同様に、タイマT2は、タイマT1の出力パルスを入力クロックとして、このクロックと同期して設定値R2からダウンカウントを行ない、タイムアウトになると、タイマ設定値決定部2からカウント値が設定値R2に再設定され、カウント値が0になったときのクロックの次のクロックから再びダウンカウントを開始するという動作を繰り返す。
【0027】
こうして、プリスケーラP0から入力されるクロックを、タイマT1,T2の設定値R1,R2で決まる分周比(R1×R2)で分周することができ、所望の周波数foのパルスを出力することができる。本実施の形態のタイマ設定値決定処理によれば、タイマT1の方に大きい値が設定される。このような設定を行なう理由は、出力したいパルスの周波数foが変化したときに、高い周波数の分周タイマT1の設定値R1のみが変化し、低い周波数の分周タイマT2の設定値R2ができるだけ変化しないようにするためである。
【0028】
図3は、
図5に示した従来のパルス出力装置と本実施の形態のパルス出力装置の出力パルスの周波数誤差を示す図である。
図3における30は従来のパルス出力装置の出力パルスの周波数誤差を示し、31は本実施の形態のパルス出力装置の出力パルスの周波数誤差を示している。
図3によれば、本実施の形態のパルス出力装置の方が出力パルスの周波数誤差が概ね小さいことが分かる。
【0029】
図4は、本実施の形態のパルス出力装置のタイマ設定値の連続性を検証した結果を示す図である。従来のパルス出力装置については、スパン周波数を0.01Hzとし、プリスケーラP0から出力させるクロックをf8=921.6KHzのクロックとしている。本実施の形態によれば、タイマ設定値の変化が連続的になるのと、タイマT1の設定値を65535に近い大きい値にできるため、設定値の書き込みとタイムアウトのタイミングが一致する確率を小さくすることができる。
【0030】
次に、従来のパルス出力装置と本実施の形態のパルス出力装置の出力パルスの周波数が切り替わる時間について比較する。例えばスパン周波数が3000Hzで、出力パルスの周波数を2.4Hz(0.08%)から3000Hz(100%)に切り替える場合、出力パルスの周波数が2.4HzのときのタイマT2の設定値は1、タイマT1の設定値は100、タイマT0の設定値は30720となる。また、出力パルスの周波数が3000HzのときのタイマT2の設定値は1、タイマT1の設定値は1、タイマT0の設定値は2458となる。いずれの場合も、プリスケーラP0から出力させるクロックはf1=7.3728MHzのクロックである。
【0031】
T0がタイムアウトする時間は30720/7372800=0.0042秒、T1がタイムアウトする時間は2458/7372800×100=0.0333秒、T2がタイムアウトする時間は2458/7372800×1=0.0003秒となる。その結果、従来のパルス出力装置において出力パルスの周波数が2.4Hzから3000Hzに切り替わる時間は、0.0042秒+0.0333秒+0.0003秒=0.0378秒となる。
【0032】
一方、本実施の形態のパルス出力装置において、出力パルスの周波数が2.4HzのときのタイマT2の設定値は47、タイマT1の設定値は65361となる。また、出力パルスの周波数が3000HzのときのタイマT2の設定値は1、タイマT1の設定値は2458となる。いずれの場合も、プリスケーラP0から出力させるクロックはf1=7.3728MHzのクロックである。
【0033】
本実施の形態においてT1がタイムアウトする時間は65361/7372800=0.0089秒、T2がタイムアウトする時間は2458/7372800×47=0.0157秒となる。その結果、本実施の形態のパルス出力装置において出力パルスの周波数が2.4Hzから3000Hzに切り替わる時間は、0.0089秒+0.0157秒=0.0246秒となる。
【0034】
このように、本実施の形態のパルス出力装置の方が出力パルスの周波数が早く切り替わることが分かる。その理由は、上記のとおり、本実施の形態では、下段のタイマT1の方に65535に近い大きい値が設定されるため、上段のタイマT2には小さい値が設定されることになり、従来のパルス出力装置のタイマT2の設定値×タイマT1の設定値よりも小さい値が本実施の形態のタイマT2に設定されるためである。さらに、本実施の形態では、プリスケーラP0から出力するクロックの周波数も切り替えているため、高周波数に移行したとき、下段のタイマT1が早くタイムアウトするためである。
【0035】
以上のように、従来のパルス出力装置では3つのタイマを縦続接続していたのに対し、本実施の形態では2つのタイマT1,T2の縦続接続でパルス出力装置を実現することができる。本実施の形態では、プリスケーラP0の周波数とタイマ設定値の決定の際に複雑な判断が不要となり、出力パルスの周波数foから一意にプリスケーラP0の周波数と2つのタイマT1,T2の設定値を決めることができるので、従来よりもアルゴリズムが単純となり、CPUの負荷を小さくすることができる。
【0036】
また、本実施の形態では、出力パルスの周波数誤差を小さくすることができる。従来のパルス出力装置では条件判断で不連続なタイマ設定値を設定することになるが、本実施の形態では条件判断はないのでタイマ設定値が連続的になり、出力パルスの滑らかな周波数変化が期待できる。また、本実施の形態では、出力パルスの周波数を変化させるときの応答性を向上させることができる。
【0037】
なお、本実施の形態では、広い周波数範囲のパルスを生成するため、タイマT1,T2として16ビットのタイマ(カウンタ)を用いているが、これに限るものではなく、nビット(nは2のべき乗の値で、16以上の値)のタイマを使用すればよい。
【産業上の利用可能性】
【0038】
本発明は、クロックを分周して広い周波数範囲のパルスを生成する技術に適用することができる。
【符号の説明】
【0039】
1…クロック周波数決定部、2…タイマ設定値決定部、P0…プリスケーラ、T1,T2…タイマ。