JPH10104018A - ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法 - Google Patents

ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法

Info

Publication number
JPH10104018A
JPH10104018A JP25854996A JP25854996A JPH10104018A JP H10104018 A JPH10104018 A JP H10104018A JP 25854996 A JP25854996 A JP 25854996A JP 25854996 A JP25854996 A JP 25854996A JP H10104018 A JPH10104018 A JP H10104018A
Authority
JP
Japan
Prior art keywords
rotation direction
chattering
rotation
rotary encoder
count number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP25854996A
Other languages
English (en)
Inventor
Hiroshi Sakurai
浩 桜井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TOCHIGI NIPPON DENKI KK
Original Assignee
TOCHIGI NIPPON DENKI KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TOCHIGI NIPPON DENKI KK filed Critical TOCHIGI NIPPON DENKI KK
Priority to JP25854996A priority Critical patent/JPH10104018A/ja
Publication of JPH10104018A publication Critical patent/JPH10104018A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Transmission And Conversion Of Sensor Element Output (AREA)

Abstract

(57)【要約】 【課題】 ハードウェアの改造を行わずにチャタリング
を取り除くことにより、操作性を向上させることにあ
る。 【解決手段】 回転方向取得処理部21により、カウン
ト数の回転方向のみを抽出することにより、ロータリー
エンコーダ11の回転速度に比べ大き過ぎるカウント数
を取り除き、回転方向取得処理部21で得られた回転方
向の情報に基づいて、現回転方向を前回転方向と比較
し、2回以上同じ回転方向でない場合には、チャタリン
グによりロータリーエンコーダ11の回転している方向
とは逆になっている回転方向であると判断しこれを取り
除く。これにより、不完全なチャタリング除去回路を使
用している場合の、出力パルスカウンタでチャタリング
の残った出力パルス信号をカウントしたときのカウント
数の異常値を、チャタリング除去処理によって取り除く
ため、ハードウェアの変更を行う必要がなくなり操作性
を向上させることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ロータリエンコー
ダのチャタリング防止装置およびチャタリング防止方法
に関する。
【0002】
【従来の技術】従来からロータリエンコーダを用いてチ
ャタリングの発生を防止する装置がある。このような装
置において、ロータリエンコーダが回転するときには、
パルス信号を出力し、回転していない時には、パルス信
号が出力しないように構成されている。ロータリーエン
コーダの回転時には、パルス信号は2つ出力され、それ
ぞれの凸部の一端が90゜だけ位相のずれを生じる。一
方のパルス信号を基準としたときの、他方のパルス信号
の位相のずれが90゜の場合のロータリーエンコーダの
回転が右回転とすると、左回転のときの位相のずれは−
90゜になる。
【0003】ロータリーエンコーダの出力パルス信号の
検出回路(出力パルス信号カウンタは、ロータリーエン
コーダの回転の方向の違いに伴う、2つの出力パルス信
号の位相のずれの違いを考慮に入れた上で、右回転の場
合は正の数値で出力パルス信号をカウントし、左回転の
場合は負の数値で出力パルス信号をカウントするよう回
路設計されている。
【0004】ところで、一般的なロータリーエンコーダ
では出力パルス信号を発生をさせるためにスイッチを使
用しており、出力パルス信号の「立上がり」と「立下が
り」はそれぞれ、「スイッチのオフからオンへの移行」
と、「スイッチのオンからオフへの移行」であるため、
ロータリーエンコーダの実際の出力パルス信号は、チャ
タリングを含んだものとなる。チャタリングを含んだま
まの出力パルス信号を出力パルス信号カウンタがカウン
トした場合、無効な信号をカウントしてしまうために異
常に大きなカウント数になったり、2つの出力パルス信
号の位相のずれがはっきりしないために回転方向を間違
えたカウント数になるなどの誤動作を生じる。
【0005】このため、従来のチャタリング防止装置で
は、2つの出力パルス信号が出力パルス信号カウンタに
入る前に、ローパスフィルタなどの時定数回路やRSフ
リップフロツプ回路など(チャタリン除去回路)を用い
て、出力パルス信号のチャタリングを取り除くことによ
り、出力パルス信号カウンタの誤動作を防止している。
【0006】
【発明が解決しようとする課題】しかしながら、この種
のチャタリング防止装置では、ローパスフィルタなどの
時定数回路を用いた場合、回路動作が外部のタイミング
に依存するために、ロータリーエンコーダを早く回した
い場合の応答性が悪くなるという問題がある。
【0007】またRSフリップフロップ回路などの回路
を用いた装置では、応答性が良いが、回路設計によって
はチャタリングを完全に除去できない場合がある。また
RSフリップフロップ回路などの回路では、IC化され
たものがあり、チャタリングの除去が完全でない場合
に、それを補うために新たに別の回路を追加したり、あ
るいはIC内部の回路そのものを見直さなければならな
かったり、回路や基板などのハードウェアの変更を余儀
なくされる場合がある。
【0008】本発明の目的は、ロータリエンコーダの入
力パルスにチャタリングが発生した場合に、誤ったカウ
ント数を除去することにより、ロータリエンコーダの操
作性を向上するロータリエンコーダのチャタリング防止
装置およびチャタリング防止方法を提供することにあ
る。
【0009】
【課題を解決するための手段】本発明は、チャタリング
を含むパルス信号を出力するロータリーエンコーダと、
このロータリーエンコーダの出力パルス信号のチャタリ
ングを完全に取り除くことが不可能な第1のチャタリン
グ除去手段と、チャタリングの残ったままのパルス信号
をカウントする出力パルス信号カウンタから成るロータ
リーエンコーダ入力装置の、カウンタ数が所定のしきい
値より大きな値を取り除くために、カウント数を回転方
向のみの情報に変換する回転方向取得手段と、回転方向
を格納する格納手段と、この格納手段から取得した回転
方向の内ロータリーエンコーダの回転とは逆になってし
まった回転方向データを取り除くための第2のチャタリ
ング除去手段とから成る。
【0010】ところで、ロータリーエンコーダを回転さ
せると、「カチカチ」という音がするが、トータリーエ
ンコーダはパルスを発生するために内部に歯車のような
構造を有するからである。ロータリーエンコーダを回転
していないときの状態は、歯車の「谷」の位置で止まっ
ていて、ロータリーエンコーダを1回だけ「カチ」とい
う回転(以下、クリックという)するという動作は、
「谷」の位置で止まったいた状態から「山」の位置を通
過してとなりの「谷」の位置へ移動することを意味す
る。出力パルス信号は、歯車の「山」と「谷」で発生す
るので、1クリックさせた場合には、出力パルス信号が
2回発生することになる。
【0011】従って、カウント数取得のタイミングによ
っては、「山」の位置で発生した出力パルス信号または
「谷」の位置で発生した出力パルス信号のどちらか1回
を含んだ奇数のカウント数となる場合がある。
【0012】しかしながら、ロータリーエンコーダで操
作を行う機器での、ロータリーエンコーダの最小の動作
単位は1クリックでなければならないため、カウント数
「山」の位置で発生した出力パルス信号と「谷」の位置
で発生した出力パルス信号が対になるようにカウント数
の調整をする処理(クリック判定処理)を施した後に、
回転方向の取得を行う必要がある。
【0013】本発明は、回転方向取得手段により定時的
に起動を行う。第2のチャタリング除去手段は、回転方
向取得手段の動作が数回行われると、1回起動する。ま
た第2のチャタリング除去手段は、回転方向取得手段で
得た4回分の回転状態をトータルして、右、左それぞれ
の回転方向カウンタに格納する。先に説明したように、
ロータリエンコーダのパルスは、いわば、歯車の山から
谷に至るまでの間に発生する。そのため、カウント数が
「2」で1ステップになる。回転方向取得手段では、カ
ウント数が1ステップ以上になった時点で、カウント数
が正のときは右回転(+1)、カウント数が負のとき左
回転(−1)、回転していないときは、非回転状態
(0)の回転状態データとして情報を取り出し、格納手
段に格納する。ここで、1ステップ以上は、全て回転状
態データのみとなるので、大きなカウント数が除去され
る。
【0014】チャタリング除去手段における判断手段で
は、回転状態が「0」でないとき、前回の回転方向と今
回の回転方向とが一致しない場合は、回転状態のデータ
を廃棄し、すなわち、最低2ステップ同じ回転方向でな
いデータを廃棄する。さらにこの判断手段は、右および
左回転方向カウンタの小さい方の回転状態データを廃棄
する。誤った逆方向のカウント数は、正しい回転方向の
カウント数と比較手段において比較して、逆方向のカウ
ント数を除去することができる。以上により、カーソル
が急に移動したり、逆戻りしてしまう動作がなくなり、
操作性が大幅に向上する。
【0015】以上に説明した本発明は、ロータリーエン
コーダ操作時の異常な動作がなくなり ロータリーエン
コーダを使用している機器の操作性が向上し、また、不
完全な第1のチャタリング防止手段であるチヤタリング
除去回路を使用している場合の、チャタリングの残った
出力パルス信号をカウントしたとき、カウント数が所定
のしきい値以上のとき、すなわちチャタリングによる異
常値を、第2のチャタリング防止手段により取り除くこ
とができる。このチャタリング防止手段は、ソフトウェ
アで構成されているため、ハードウェアの変更を行う必
要がなく操作性を向上させることができる。
【0016】
【発明の実施の形態】次に、本発明のロータリエンコー
ダのチャタリング防止装置およびチャタリング防止方法
の実施例を図面を参照して説明する。図1は本発明の実
施例のロータリエンコーダのチャタリング防止装置に構
成を説明するブロック図、図2はロータリエンコーダの
出力パルスを示す図、図3はチャタリングを含む波形を
示す図である。これらの図において、符号1はチャタリ
ングを含むロータリエンコーダ入力装置で、この入力装
置1にはロータリエンコーダ11、チャタリング除去回
路および出力パルス信号カウンタが設けられている。
【0017】チャタリング防止処理部2には、回転方向
取得処理部21、リングバッファ22およびチャタリン
グ除去処理部23からなる。回転方向取得処理部21と
チャタリング除去処理部23は後述する図4および図5
の処理により、チャタリングを防止することができる。
【0018】図2は、図1におけるロータリエンコーダ
11の出力パルス100,101を示すものである。こ
の出力パルス100,101はチャタリング除去回路に
入力する。このチャタリング除去回路は公知のローパス
フイルタなどの時定数回路やRsフリップフロップ回路
などからなるものである。
【0019】図3は、チャタリング除去回路12の出力
で、まだチャタリングを含む波形信号を出力102する
ことを示すものである。この矩形波信号の立ち上がりお
よび立ち下がりにはサグからなるチャタリング波形成分
が含まれる。
【0020】次に図4〜図8を参照して回転方向取得処
理部21の実施例の動作を説明する。図4および図5に
おける本発明の実施例の動作を説明するフローチャー
ト、図6〜図8は図4の動作を説明するシーケンス図で
ある。
【0021】以下の説明において、カウント数を2で割
った余り(すなわち1クリックの対にならない余剰分の
カウント数)をカウント余りと呼ぶことにする。先ず、
ステップ41(以下、S41という)において、回転方
向取得処理部21は、最初に出力パルス信号カウンタ1
3からカウント数の取得を行う。回転方向取得処理部2
1の起動周期は、ロータリーエンコーダ11の出力パル
ス信号にチャタリングが全くないと仮定し、人間がロー
タリーエンコーダ11を可能な限り速く回転したとき
に、出力パルス信号カウンタ13から取得するカウント
数の平均が約2カウント(1クリック)以下になるよう
に合わせてある。
【0022】これは、人間が手でロータリーエンコーダ
11を速く回転させる際の回転速度の限界は、装置の処
理速度に比べればさほど早くないという点と、例えばチ
ャタリングのない出力パルス信号のカウントを行う場
合、出力パルス信号カウンタ13からソフトウェアがカ
ウント数を取得したとき出力パルス信号カウンタ13の
内部カウンタは「0」にクリアされる。
【0023】このときには、カウント数の取得周期を速
くすれば、出力パルス信号カウンタ13の内部カウンタ
の「0」クリアが頻繁になり、出力パルス信号カウンタ
13は、カウントする時間間隔が短くなるため、取得周
期を速くする前と、後でロータリーエンコーダ11の回
転速度が同じであるとするなら、取得周期の速い方のカ
ウント数は必然的に小さくなるはずである。
【0024】またチャタリングを含む出力パルス信号の
カウントを行う場合は、図4の103のような波形は立
上がりから立下がりまでの時間がカウント数の取得周期
と比べても非常に短いため、チャタリングによる異常に
大きなカウント数は、カウント数の取得周期を早くして
もそれほど小さくならず、大きな値のままであるという
点の2点に着目している。
【0025】次にカウント数の取得後、S42において
は、カウント数が0のときに非回転状態と判断し、S4
3−5において、回転方向を非回転状態「0」にしてリ
ングバッファ2に格納する。カウント数が0でない場合
は、クリック判定処理を行い、カウント数が1クリック
以上の場合は、S47において、回転方向の判定を行
い、1クリックに満たない場合は、S43−5におい
て、回転方向を非回転状態「0」にする。クリック判定
処理は、1クリック以上の回転でない場合の回転方向を
非回転状態であると判定するのに、1クリックである
「山」と「谷」の出力パルス信号の対を対応させなけれ
ばならず、カウント余りを次回クリック判定処理6が実
行されるときまで保持しておく方法をとっている。
【0026】ここで説明を円滑に進めるために、S4
4、S43−1時点でのカウント余りをMl(前回保持
したカウント余りの値)、ステップS46、S43−
3、S43−4時点でのカウント余りの値をM2(次回
のために保持しておくカウント余り)、S43時点での
カウント数の値をNl(出力パルス信号カウンタ13か
ら取得したカウント数)、S47時点でのカウント数の
値をN2(S4のカウント余りM2算出後のカウント数
または、S42−2時点のカウント数)とする。
【0027】カウント数が1クリック以上になる条件
は、カウント数Nlの絶対値が2以上のとき(S43〜
S46を通過する以下条件1という)とカウント数Nl
とカウント余りMlを加算したカウント数の絶対値が2
(1クリック)になるとき、すなわちカウント数Nlの
絶対値が1でカウント余りMlが0でなく、カウント数
Nlとカウント余りMlの回転方向(符号)が同じとき
(ステップS43、S43−1を通過する。以下条件2
という)ときである。
【0028】1クリックの対を判定した後は、次回クリ
ック判定処理6を実行するときのためにカウント余りの
更新を行う。条件1の場合には、S44において、カウ
ント数Nlとカウント余りMlが同じ回転方向かどうか
を調べ、ここでカウント余りMlが0であった場合はS
45において、正の数と同じならカウント数N2はカウ
ント数Nlとカウント余りMlの加算したものであり、
カウント余りM2はS46において、カウント数N2を
2で割ったときの余りである。
【0029】カウント数Nlとカウント余りMlが同じ
回転方向でないときは、カウント余りMlは、対になる
出力パルス信号がないことになり、異常なデータもしく
はチャタリングの影響によるものと考えられるので、カ
ウント余りMlは破棄し、カウント数Nlとカウント余
りMlの加算は行わない。よってカウント数N2はカウ
ント数Nlそのものであるから、カウント余りM2は、
S46においてカウント数Nlを2で割ったときの余り
である。以上の処理の結果であるカウント余りM2は、
S46において、最終的にカウント余りに格納される。
【0030】条件2の場合には、条件1同様の計算をす
ると、カウント数Nlとカウント余りMlを加算した結
果、カウント数N2の絶対値が2になることが明白であ
るため、S43−3において、カウント余りM2が0で
あることが決定し、カウント余りを格納すれば良いこと
になる。条件1及びと条件2にあてはまらない1クリッ
ク未満の回転とは、カウント数Nlの絶対値が1でカウ
ント余りMlが0のとき(S43、S43−1、S43
−4を通過する。以下条件3という)か、カウント数N
lの絶対値が1でカウント数Nlとカウント余りMlの
回転方向が違うときすなわちカウント余りMlが異常な
データもしくはチャタリングの影響と考えられ破棄され
るべきデータであるとき(S43、S43−1、S43
−2、S43−4を通過する。以下条件4という)の2
通りである。
【0031】条件3、条件4のいずれの場合も、カウン
ト余りMlは0もしくは破棄されるデータであり、カウ
ント数Nlの絶対値1はカウント余りそのものであるか
ら、S43−4において、カウント数Nlをカウント余
りM2として、カウント余りに代入すれば良い。また、
1クリック未満のときは非回転状態であるとするのだか
ら、S43−5において、回転方向には非回転状態0を
入れる。ところで条件1及び条件2の場合、本来ならカ
ウント数をクリック数に換算すべきところであるが、回
転方向(符号)の判定を行い回転方向に置き換えてしま
うため、結果的にはクリック数への換算処理は省くこと
ができるので、カウント数N2をそのまま回転方向判定
の対象として扱うことができる。
【0032】同じならカウント数N2は、S45におい
て、カウント数Nlとカウント余りMlの加算したもの
であり、S46において、カウント余りM2はカウント
数N2を2で割ったときの余りである。カウント数Nl
とカウント余りMlが同じ回転方向でないときは、カウ
ント余りMlは対になる出力パルス信号がないことにな
り、異常なデータもしくはチャタリングの影響によるも
のと考えられるので、カウント余りMlは破棄し、カウ
ント数Nlとカウント余りMlの加算は行わない。よっ
てカウント数N2はカウント数Nlそのものであるか
ら、カウント余りM2は、S46において、カウント数
Nlを2で割ったときの余りである。以上の処理の結果
であるカウント余りM2は、S46において、最終的に
カウント余りに格納される。
【0033】条件2の場合には、条件1同様の計算をす
ると、カウント数Nlとカウント余りMlを加算した結
果、カウント数N2の絶対値が2になることが明白であ
るため、S43ー3において、カウント余りM2が0で
あることが決定し、カウント余りには0を格納すれば良
いことになる。条件1および条件2にあてはまらない1
クリック未満の回転とは、カウント数Nlの絶対値が1
でカウント余りMlが0のとき(ステップS43、S4
3−1、S43−4を通過する。以下条件3という)
か、カウント数Nlの絶対値が1でカウント数Nlとカ
ウント余りMlの回転方向が違うとき、すなわちカウン
ト余りMlが異常なデータかもしくはチャタリングの影
響と考えられ破棄されるべきデータであるとき(ステッ
プS43、S43−1、S43ー2、S43−4を通過
する。以下条件4という)の2つ通りである。
【0034】条件3、条件4のいずれの場合も、カウン
ト余りMlは0もしくは破棄されるデータであり、カウ
ント数Nlの絶対値1はカウント余りそのものであるか
ら、S43−4において、カウント数Nlをカウント余
りM2として、カウント余りに代入すれば良い。また、
1クリック未満のときは、S43−5において、非回転
状態であるとするのだから、回転方向には非回転状態0
を入れる。ところで条件1及び条件2の場合、本来なら
カウント数をクリック数に換算すべきところであるが、
回転方向(符号)の判定を行い回転方向に置き換えてし
まう訳だから、結果的にはクリック数への換算処理は省
くことができるので、カウント数N2をそのまま回転方
向判定の対象として扱っている。
【0035】条件1及び条件2では、ロータリーエンコ
ーダ11の回転が1クリック以上の場合であるから、S
47において、カウント数N2の回転方向の判定を行
い、S48において、カウント数N2が正のときには回
転方向を右回転状態1にし、S47−1負のときには右
回転状態−1にする。最後に、S49において、回転方
向をリングバッファ22に格納して終了する。
【0036】以下、図5に示すチャタリング除去処理部
の説明する。チャタリング除去処理は、実際には回転方
向取得処理の中で数回(4回位が適当)に一回起動する
形を取っている(図4は回転方向取得処理部21のチャ
タリング除去方法の説明をするための図であるためチャ
タリング除去処理の起動処理部の記述は省略する)。
【0037】まず、図において、チャタリング除去処理
は、S50において、回転方向取得処理部21で取得し
た回転方向を格納しているリングバッファ22が空でな
いことを確認する。リングバッファ22が空であったと
きは、チャタリング除去処理23を終了し、リングバッ
ファ22が空でない場合は空になるまで処理を繰り返
す。
【0038】次に、S51において、リングバッファ2
2が空でないときは、リングバッファ22から回転方向
(現回転方向)を取得し、S52において、現回転方向
が非回転状態0でないかどうかを判定し、現回転方向が
非回転状態0であった場合は、S50に戻る。
【0039】ところで、回転方向カウンタ3(右回転カ
ウンタ31と左回転カウンタ32)は、ロータリーエン
コーダの入力を必要とするソフトウェア(以下アプリケ
ーションソフトという)が利用するための変数であり、
アプリケーションソフトがこの値を取得した後に、回転
方向カウンタ3は0にクリアされるものとする。アプリ
ケーションソフトは、回転方向カウンタ3の値を元に、
回転方向と回転スピードを認識し各種処理を行うとがで
きる。
【0040】現回転方向が非回転状態0でない場合は、
S53において、現回転方向と前回転方向を比較して回
転方向が同じかどうかを判定する。現回転方向と前回転
方向が同じ場合は、S54において、現回転方向の回転
方向を判定し、S55において、右回転状態1の場合は
右回転カウンタ31に1を加算し、左回転状態の場合は
左回転カウンタ32に1を加算する(ステップ22)。
次に、S56においては、現回転方向と前回転方向が同
じでない場合は、チャタリングによるロータリーエンコ
ーダ11の回転とは逆方向の回転方向である疑いがある
ため、S54〜S56における処理は行わない。最後
に、前回転方向を現回転方向に更新して、ステップS5
0に戻る。
【0041】図5に示すチャタリング除去処理は、ロー
タリーエンコーダ11で操作を行う場合に、ある程度の
時間連続して同じ方向のみの回転を行って操作すること
が多いという点に着目する。不完全にしろある軽度チャ
タリングの除去を行った出力パルス信号を出力パルスカ
ウンタでカウントした場合は、ロータリーエンコーダ1
1の回転方向と逆になってしまったカウント数は正常な
カウント数と比べ小さくなる。したがって、2回以上連
続してカウントされることがほとんどない点にも着目し
ている。さらに、人間の手でロータリーエンコーダ11
を連続して同じ方向のみに回転している場合は、そこに
突発的な逆方向の回転をすることは不可能になるという
点にも着目している。そこで、2回以上同じ回転方向が
入ってきたときのみ正常な回転方向と判定するようにし
ている。
【0042】非回転状態でない前回転方向と現回転方向
を比較している理由は、上記の回転方向取得処理21の
説明で述べた、カウント数の取得周期を人間がロータリ
ーエンコーダ11を可能な限り速く回転したときの出力
パルス信号カウンタ13から取得するカウント数の平均
が約2カウント(1クリック)以下になるように合わせ
ているので、ある程度の速い回転でもカウント数に0が
入ってくることが多いためである。以上の結果、回転方
向カウンタ3の値はチャタリングによる異常なカウント
数を取り除いたものとなる。
【0043】図6は、ロータリーエンコーダ11を右回
転している場合で、周期A4のときに、チャタリングに
よる異常に大きなカウント数を含む7周期分の回転方向
取得処理21の第1の実施例である。周期Alでは、カ
ウント数Nl=1、カウント余りMl=0であるから、
S43、S43−1、S43−4およびS43−5の処
理を通ることになる。S43−4では、カウント数をカ
ウント余りに代入し、カウント余りを周期A2まで保持
する訳けであるから、周期Alのカウント数Nlがその
まま周期A2のカウント余りとなる。
【0044】また周期Alでは、カウント数N2(通常
はS45を通らない限りは、カウント数Nl=カウント
数N2である)が1クリック未満であるから、S43−
5における回転方向は非回転状態0とする。周期A2で
は、カウント数Nl=2、カウント余りMl=1で共に
正であるから、S43、S44、S45、S46、S4
7およびS48の処理を通る。S45では、カウント数
とカウント余りの加算が行われ、カウント数N2=3と
なり、ステップS46では、カウント数N2を2で割っ
た余りをカウント余りに代入しているから、カウント余
りM2=1となる。カウント数N2は、1クリック以上
で正であるから、S48において、回転方向が右回転状
態1とする。
【0045】周期A3では、S43−5において、カウ
ント数Nlが0であるから回転方向を非回転状態0とす
る。またカウント余りはそのまま周期A4まで保留され
る。周期A4では、カウント数Nl=9、カウント余り
Ml=1で、処理は周期A2と同様の処理になる。S4
5においては、カウント数N2=カウント数Nl+カウ
ント余りMl=10となり、カウント余りM2はカウン
ト数N2を2で割った余りであるから10を2で割った
余り0である。カウント数Nlはチャタリングによる異
常に大きなカウント数であるが、回転方向のみを考える
ので、カウント数は1クリック以上で正であるから、回
転方向は右回転状態1となる。
【0046】周期A5は周期A2、A4と同様であるか
ら説明を省略する。周期A6では、カウント数Nl=
1、カウント余りMl=1であり、カウント数の絶対値
が1でカウント数Nl、カウント余りMl共に正である
から、カウント数は1クリック以上ということになり、
S43、S47−1、S43−2、S43−3、S47
およびS48の処理を通る。ここでは、カウント数Nl
とカウント余りMlの和であるカウント数N2が2とな
り、S43−3において、カウント数N2を2で割った
カウント余りM2が0であることは周知のことであるか
ら、カウント余りは0とする。周期A7は、周期A3と
同様であるので、説明を省略する。
【0047】図7は、ロータリーエンコーダ11を左回
転している場合で、周期B5のときに、チャタリングに
よる異常に大きなカウント数を含む8周期分の回転方向
取得処理21の第1の変形実施例である。カウント数、
回転方向共に値が負になっているだけで、それ以外は図
6の場合と同様の処理であるから説明は省略する。
【0048】図8は、周期C3、周期C4に1クリック
の対にならないカウント余りを有する8周期分の回転方
向取得処理21の第2の変形実施例である。周期C3で
は、カウント数Nl=−3、カウント数Ml=1である
から、S43、S44、S46、S47およびS47−
11を通る。ここでカウント数Nlとカウント余りMl
の符号すなわち回転方向が違うため、S45におけるカ
ウント数とカウント余りの加算は行われない。ロータリ
ーエンコーダ11を1クリックしたときには「山」と
「谷」で出力パルス信号が発生するのだから、連続して
同 じ方向のカウント数が入ってこなければならない、
つまりカウント数はトータルすれば偶数になるはずであ
るが、周期C3ではクリック余りが対にならないため異
常なデータであり、チャタリングの影響によるものと考
えられる。そこで、S45におけるカウント数Mlの値
を破棄するためカウント数とカウント余りの加算は行わ
れない。結局カウント数N2=Nlであるから、S46
におけるカウント数Nlがそのままカウント余りM2の
計算と回転方向取得の対象となり、カウント余りM2
は、カウント数Nlを2で割った余りとする。また、カ
ウント数Nlは、絶対値が1クリック(2カウント)以
上で負であるから、S47−1における回転方向は左回
転状態一1となる。
【0049】周期C7では、カウント数Nl=1、カウ
ント数Ml=−1であるから、S43、S43ー1、S
43ー2、S43−4およびS43−5を通る。カウン
ト数Nlとカウント余りMlは、周期C3と同様に回転
方向が異なるが、カウント数Nlの絶対値が1クリック
(2カウント)未満であるから、処理の経路が違う。カ
ウント余りは、周期C3同様クリックの対のない異常な
値であるから破棄され、カウント数Nlは、S43−4
において、1クリックに満たないカウント余りそのもの
であるから、S43−5において、カウント余りM2は
カウント数Nlとし、回転方向は1クリックに満たない
ので非回転状態0とする。周期C3、C7を除く周期C
l〜C8は、図6,7と同様の処理であるから説明は省
略する。
【0050】次に図5,9を参照してチャタリング除去
処理の変形実施例をさらに具体的に説明する。図9は、
課程D4およびD14にロータリーエンコーダ11の回
転とは逆方向になってしまった回転方向を含む18過程
分のチャタリング除去処理の変形実施例である。ここで
右回転カウンタおよび左回転カウンタは、課程Dlの直
前で0クリアされたものとする。課程D3、D6、D
9、D12、D15、D17では、現回転方向が非回転
状態0であるため、S52の判定でS50から処理をや
り直すことになる。つまり、回転方向が非回転状態0で
あった場合は、S57において、現回転方向を次回の前
回転方向として保持せず、S54〜56における右回転
カウンタおよび左回転カウンタの更新処理も行われな
い。現回転方向が非回転状態0でない場合には、S54
〜56における現回転方向を次回の前回転方向として保
持し、回転カウンタおよび左回転カウンタの更新処理を
行う。過程D2、D7、D8、Dll、D13、D18
では、S52における現回転方向が0でなく、S53に
おける前回転方向と現回転方向が同じであるため、S5
4における現回転方向の回転方向を判定する。次に、S
55において、回転方向が正なら右回転カウンタに1を
加算し、S56において、回転方向が負なら右回転カウ
ンタに1を加算し、S57において、現回転方向を次回
の前回転方向として保存する。過程D4,14はチャタ
リングによる異常値で、S52における前回転方向と現
回転方向の回転方向が違うので、S54〜56における
チャタリングの影響による異常値の疑いがあるとして、
右回転カウンタおよび左回転カウンタの更新処理は行わ
ない。
【0051】さて、過程Dl,10は、回転方向が変わ
ったところであり、また過程D5,14は、チャタリン
グの直後で双方とも正常値であるが、過程D4,14と
同様に異常値として扱えわれてしまう。これはチャタリ
ングの異常な回転方向と区別がつかないためであるが、
この回転方向を正常値かどうか判定する完全な方法はな
く、行うとすれば以前の回転方向を更に数回分保持する
などの方法をとらざるを得ないが、例えば回転方向が1
と一1を交互に繰り返すような操作をした場合を考える
と、この方法でも判定は不可能である。またこの方法で
は、回転方向の判定処理が膨れ上がってしまい高速処理
を要求される本処理には利用できず、また以前の回転方
向の全てが集まらないと処理ができないためロータリー
エンコーダ11の操作時の反応自体も更に鈍くなってし
まう。結局、回転方向変化時の初回1回めの回転方向や
チャタリングによる異常値の直後の回転方向が捨てられ
てしまうが、図5の方法がもっともシンプルで優れてい
ることとなる。また前述した通りロータリーエンコーダ
11の操作はある程度、同じ方向に連続して回転させる
ことが多く、回転方向変化時の初回1回だけ回転方向が
捨てらたり、チャタリングによる異常値の直後の回転方
向が捨てられても大きな影響がない。
【0052】また微調整する場合は、1クリック程度で
交互に回転方向を切り換えることになるが、多少反応が
鈍くても、チャタリングの影響により意図した操作と異
なる動作が発生する方が操作上重大である。また多少反
応は鈍くなっても、ローパスフィルタなどの時定数回路
を使用した場合の、ロータリーエンコーダ11の高速回
転時に全く応答しないといつたことはなく、ロータリー
エンコーダ11の高速回転時でも動作に支障はない。
【0053】
【発明の効果】以上に説明した本発明では、ロータリー
エンコーダの操作時の異常な動作がなくなり、ロータリ
ーエンコーダを使用している機器の操作性が向上し、ま
た、不完全なチヤタリング除去回路を使用している場合
の、出力パルスカウンタでチャタリングの残った出力パ
ルス信号をカウントしたときのカウント数の異常値を、
チャタリング除去処理によって取り除くため、ハードウ
ェアの変更を行う必要がなくなり操作性を向上させるこ
とができるなどの効果を奏することができる。
【図面の簡単な説明】
【図1】本発明のチャタリング防止処理を備えたロータ
リーエンコーダ入力装置のブロック図である。
【図2】ロータリーエンコーダの出力パルス信号を説明
するための図である。
【図3】チャタリングを含んだ波形を説明するための図
である。
【図4】図1の回転方向取得処理部の動作を説明するた
めのフローチャートである。
【図5】図1のチャタリング防止処理部の動作を説明す
るためのフローチャートである。
【図6】図4の回転方向取得処理部の実施例を示すシー
ケンス図である。
【図7】図4の回転方向取得処理部の実施例を示すシー
ケンス図である。
【図8】図4の回転方向取得処理部の実施例を示すシー
ケンス図である。
【図9】図5のチャタリング除去処理部の実施例を示す
シーケンス図である。
【符号の説明】
1 ロータリーエンコーダ入力装置 2 チャタリング防止処理部 3 回転方向カウンタ 11 ロータリーエンコーダ 12 チャタリング除去回路 13 出力パルス信号カウンタ(出力パルス信号の検出
回路) 21 回転方向取得処理 22 リングバッファ 31 右回転カウンタ 32 左回転カウンタ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】チャタリングを含むパルス信号を出力する
    ロータリーエンコーダと、このロータリーエンコーダの
    出力パルス信号のチャタリングを取り除く第1のチャタ
    リング除去手段と、この第1のチャタリング除去手段か
    らの出力信号であるチャタリングの残ったままパルス信
    号をカウントする出力パルス信号カウンタとを有し、前
    記パルス信号のチャタリングを防止するロータリエンコ
    ーダのチャタリング防止装置において、 前記出力パルス信号カウンタのカウンタ数が所定のしき
    い値以上のとき、そのカウント値を取り除くために、前
    記カウント数を回転方向のみの情報に変換して、回転方
    向を取得する回転方向取得手段と、 前記回転方向の情報を格納する格納手段と、 前記格納手段から取得した回転方向情報が前記ロータリ
    ーエンコーダの回転とは逆になる回転方向データを取り
    除くため、さらにチャタリングを除去する処理をする第
    2のチャタリング除去手段と、 を備えたことを特徴とするロータリエンコーダのチャタ
    リング防止装置。
  2. 【請求項2】前記回転方向取得手段により定時的に起動
    を行うと、前記第2のチャタリング除去手段により前記
    回転方向取得手段の動作が数回行われると1回起動し、
    前記第2のチャタリング除去手段により、前記回転方向
    取得手段で得た回転状態をトータルして、右、左それぞ
    れの回転方向カウンタに格納することを特徴とする請求
    項1に記載のロータリエンコーダのチャタリング防止装
    置。
  3. 【請求項3】前記回転方向取得手段では、カウント数が
    1ステップ以上になった時点で、カウント数が正のとき
    は右回転、カウント数が負のとき左回転、回転していな
    いときは、非回転状態の回転状態データとして情報を取
    り出し、前記格納手段に格納することを特徴とする請求
    項1または2に記載のロータリエンコーダのチャタリン
    グ防止装置。
  4. 【請求項4】前記第2のチャタリング除去手段では、前
    回の回転方向と今回の回転方向とが一致しない場合に、
    判断手段により回転状態のデータを廃棄することを特徴
    とする請求項1または2に記載のロータリエンコーダの
    チャタリング防止装置。
  5. 【請求項5】前記第2のチャタリング除去手段では、前
    記判断手段が右および左回転方向カウンタの小さい方の
    回転状態データを廃棄することを特徴とする請求項1、
    2および4のいずれかに記載のロータリエンコーダのチ
    ャタリング防止装置。
  6. 【請求項6】前記第2のチャタリング除去手段の出力信
    号に基づいて比較手段において誤った逆方向のカウント
    数の情報と、正しい回転方向のカウント数の情報との比
    較を行い、前記逆方向のカウント数の情報を除去するこ
    とを特徴とする請求項1〜5のいずれかに記載のロータ
    リエンコーダのチャタリング防止装置。
  7. 【請求項7】ロータリエンコーダを用いてチャタリング
    の発生を防止するロータリエンコーダのチャタリング防
    止装置において、 前記ロータリーエンコーダの回転スピードに対してチャ
    タリングにより所定のしきい値以上のカウント数を取り
    除くため、入力される前記カウント数を右に回転してい
    る右回転状態と、左に回転している左回転状態と、回転
    していない非回転状態の3つの回転方向を表す情報に変
    換する変換手段と、 この変換手段によって変換された前記回転方向情報を格
    納する格納手段と、 を備えたことを特徴とするロータリーエンコーダのチャ
    タリング防止装置。
  8. 【請求項8】前記格納手段に前記回転方向情報を格納
    し、その回転方向情報に基づいて一定周期で起動する起
    動手段を備えたことを特徴とする請求項7に記載のロー
    タリーエンコーダのチャタリング防止装置。
  9. 【請求項9】前記ロータリーエンコーダが回転している
    方向とは逆方向の前記カウント数を取り除くため、前記
    格納手段から取得した現在の回転方向を示す情報と、こ
    の現在の回転方向情報より前に前記格納手段から取得し
    た前記非回転状態でないことを示す回転方向情報とを比
    較する比較手段と、 前記回転方向が同じ場合には、正常な回転方向と判断
    し、回転方向が違う場合はチャタリングによる異常な回
    転方向になるおそれがあると判断する判断手段と、 を備え、前記回転方向の取得状態に応じて前記起動手段
    を起動させることを特徴とする請求項7または8に記載
    のロータリーエンコーダのチャタリング防止装置。
  10. 【請求項10】前記格納手段は、リングバッファである
    ことを特徴とする請求項7〜9のいずれかに記載のロー
    タリーエンコーダのチャタリング防止装置。
  11. 【請求項11】チャタリングを含むパルス信号を出力す
    るロータリーエンコーダと、このロータリーエンコーダ
    の出力パルス信号のチャタリングを取り除く第1のチャ
    タリング除去手段と、この第1のチャタリング除去手段
    からの出力信号であるチャタリングの残ったままパルス
    信号をカウントする出力パルス信号カウンタとを有し、
    前記パルス信号のチャタリングを防止するロータリエン
    コーダのチャタリング防止方法において、 前記出力パルス信号カウンタのカウンタ数が所定のしき
    い値以上のとき、そのカウント値を取り除くために、前
    記カウント数を回転方向のみの情報に変換して、回転方
    向を取得するステップと、 前記回転方向の情報を格納するステップと、 前記格納手段から取得した回転方向情報が前記ロータリ
    ーエンコーダの回転とは逆になる回転方向データを取り
    除くため、さらに第2のチャタリングを除去する処理を
    するステップと、 を含むことを特徴とするロータリエンコーダのチャタリ
    ング防止方法。
  12. 【請求項12】前記回転方向の取得のために、定時的に
    起動を行うステップと、 前記第2のチャタリング除去動作が数回行われると1回
    起動するステップと、前記第2のチャタリング除去動作
    により、4回分の回転状態をトータルして、右、左それ
    ぞれの格納領域に格納するステップと、 前記カウント数が1ステップ以上になった時点で、前記
    カウント数が正のときは右回転、前記カウント数が負の
    とき左回転、回転していないときは、非回転状態の回転
    状態データとして情報を取り出し、前記格納領域に格納
    するステップと、 を含むことを特徴とする請求項11に記載のロータリエ
    ンコーダのチャタリング防止方法。
  13. 【請求項13】前記第2のチャタリング除去動作では、
    前回の回転方向と今回の回転方向とが一致しない場合
    に、回転状態のデータを廃棄するステップと、 右および左回転方向カウンタの小さい方の回転状態デー
    タを廃棄するステップと、 を含むことを特徴とする請求項11または12に記載の
    ロータリエンコーダのチャタリング防止方法。
  14. 【請求項14】前記第2のチャタリング除去動作では、
    出力信号に基づいて誤った逆方向のカウント数の情報
    と、正しい回転方向のカウント数の情報との比較を行
    い、前記逆方向のカウント数の情報を除去することを特
    徴とする請求項11〜13のいずれかに記載のロータリ
    エンコーダのチャタリング防止方法。
  15. 【請求項15】ロータリエンコーダを用いてチャタリン
    グの発生を防止するロータリエンコーダのチャタリング
    防止方法において、 前記ロータリーエンコーダの回転スピードに対してチャ
    タリングにより所定のしきい値以上のカウント数を取り
    除くため、入力される前記カウント数を右に回転してい
    る右回転状態と、左に回転している左回転状態と、回転
    していない非回転状態の3つの回転方向を表す情報に変
    換するステップと、 この変換された前記回転方向情報を格納するステップ
    と、 その回転方向情報に基づいて一定周期で起動するステッ
    プと、 を含むことを特徴とするロータリーエンコーダのチャタ
    リング防止方法。
  16. 【請求項16】前記ロータリーエンコーダが回転してい
    る方向とは逆方向の前記カウント数を取り除くため、現
    在の回転方向を示す情報と、この現在の回転方向情報よ
    り前に前記非回転状態でないことを示す回転方向情報と
    を比較するステップと、 前記回転方向が同じ場合には、正常な回転方向と判断
    し、回転方向が違う場合はチャタリングによる異常な回
    転方向になるおそれがあると判断するステップと、 前記回転方向の取得状態に応じて前記起動させるステッ
    プと、 を含むことを特徴とする請求項15に記載のロータリー
    エンコーダのチャタリング防止方法。
  17. 【請求項17】ロータリエンコーダを用いてチャタリン
    グの発生を防止するロータリエンコーダのチャタリング
    防止方法において、 前記ロータリーエンコーダの回転スピードに対してチャ
    タリングの影響による異常なカウント数を取り除くた
    め、入力される前記カウント数を右に回転している右回
    転状態と、左に回転している左回転状態と、回転してい
    ない非回転状態の3つの回転方向を表す情報に変換する
    ステップと、 この変換された前記回転方向情報を格納するステップ
    と、 その回転方向情報に基づいて一定周期で起動するステッ
    プと、 を含むことを特徴とするロータリーエンコーダのチャタ
    リング防止方法。
  18. 【請求項18】前記ロータリーエンコーダが回転してい
    る方向とは逆方向の前記カウント数を取り除くため、現
    在の回転方向を示す情報と、この現在の回転方向情報よ
    り前に取得した前記非回転状態でないことを示す回転方
    向情報とを比較するステップと、 前記回転方向が同じ場合には、正常な回転方向と判断
    し、回転方向が違う場合はチャタリングによる異常な回
    転方向になるおそれがあると判断するステップと、 前記回転方向の取得状態に応じて起動させるステップ
    と、 を含むことを特徴とする請求項17に記載のロータリー
    エンコーダのチャタリング防止方法。
JP25854996A 1996-09-30 1996-09-30 ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法 Pending JPH10104018A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25854996A JPH10104018A (ja) 1996-09-30 1996-09-30 ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25854996A JPH10104018A (ja) 1996-09-30 1996-09-30 ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法

Publications (1)

Publication Number Publication Date
JPH10104018A true JPH10104018A (ja) 1998-04-24

Family

ID=17321783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25854996A Pending JPH10104018A (ja) 1996-09-30 1996-09-30 ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法

Country Status (1)

Country Link
JP (1) JPH10104018A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010014535A (ja) * 2008-07-03 2010-01-21 Yanmar Co Ltd 回転検出装置及び不整地用走行車両
JP2013072784A (ja) * 2011-09-28 2013-04-22 Pioneer Electronic Corp 信号周期検出装置及び信号周期検出方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010014535A (ja) * 2008-07-03 2010-01-21 Yanmar Co Ltd 回転検出装置及び不整地用走行車両
JP2013072784A (ja) * 2011-09-28 2013-04-22 Pioneer Electronic Corp 信号周期検出装置及び信号周期検出方法

Similar Documents

Publication Publication Date Title
JPH10104018A (ja) ロータリエンコーダのチャタリング防止装置およびチャタリング防止方法
US5233573A (en) Digital data processor including apparatus for collecting time-related information
US5325341A (en) Digital timer apparatus and method
CN116896379A (zh) 用于对由旋转编码器产生的信号进行去抖动的电路和方法
JP2707778B2 (ja) ノイズ除去回路
JP2001249154A (ja) エンコーダの断線検出装置および断線検出方法
JP4352297B2 (ja) シリアル通信装置及びこれを用いた信号処理装置
JP3010095B2 (ja) クリック付きロータリエンコーダの読取り方法
JPH08316946A (ja) クロック断検出回路
JP2540779B2 (ja) 状態変化検出装置
JP4320414B2 (ja) 符号判定装置及びその方法並びにプログラム
JP3475589B2 (ja) 信号読み取り装置
JPH07190807A (ja) エンコーダのパルスカウント回路
JP3460675B2 (ja) 光エンコーダによる移動方向検出装置、光エンコーダによる移動方向検出方法。
JP3082781B2 (ja) ディジタル信号用フィルタ
JPH06303101A (ja) デジタルフィルタ
JP2002271427A (ja) ノイズ除去回路
JPH0653835A (ja) D/a変換装置
JPH04354220A (ja) スタートビット検出回路
JPH10126228A (ja) デジタル波形整形回路
JP3263568B2 (ja) 誤り訂正装置
JP3122563B2 (ja) 位相同期回路
JP2003058310A (ja) ロータリースイッチの回転方向検出装置
JPH08189942A (ja) パルス幅計測装置
JPH07105183A (ja) 相関検出器