今回は、標準的な単方向カウンター・タイマーICである「82C54」と簡単なソフトウェアを使い、直角位相差出力のエンコーダーとISA入出力バスのインタフェース回路を紹介する。
双方向の回転検出用途では通常、直角位相差出力*)の光学式インクリメンタル・シャフト・エンコーダーを使う。2000パルス/回転を超える分解能を備えたものが入手できる。双方向の機械的な運動をデジタル値で読み出す方法としては、インクリメンタル・エンコーダーは高速で安価で信頼性の高いものである。
*)位相が90°異なる2本の矩形波信号(A信号とB信号)を出力すること。
エンコーダーは極めて高速であり、1万回転/分を超える速度で動く。しかし、必要とされるインタフェース論理回路は少々厄介だ。この論理回路は普通、多ビット(例えば16ビット)の双方向カウンターを少なくとも1個は必要とする。単方向のカウンターであれば、8253や8254、9511といった手軽なICでいろいろな回路構成が実現できる。
しかし、双方向のカウンターICは少なく入手しづらい。必要とする機能を実現する手法としてはASICがある。ハード・ワイヤード・ロジックやFPGAも考えられる。しかしこれらの手法は、コストやプリント基板の実装占有面積の点で理想とはかけはなれる。
図1では、標準的な単方向カウンター・タイマーICである「82C54」と簡単なソフトウェアを使い、直角位相差出力のエンコーダーとISA入出力バスのインタフェース回路を構成した。この回路は、双方向の動きを簡単にデジタル化する。
図2に示すように、82C54が内蔵する2個の単方向カウンターを使うことが肝である。エンコーダーの回転方向ごとに1個のカウンターを利用する。エンコーダーの直角位相差出力の一方であるA信号は、両方のカウンターのゲート・ピン(14番ピンと16番ピン)を駆動する。これでエンコーダーの出力サイクルごとに1回ずつカウントできる。
1対のシュミット・トリガー・インバーター段は、もう一方の出力であるB信号の位相を分割して1対の相補信号を生成する。同相信号は時計回りのカウンター(82C54のカウンター1)のトリガー入力(15番のクロック・ピン)を駆動する。逆相信号は反時計回りのカウンター(82C54のカウンター2)のトリガー入力(18番のクロック・ピン)を駆動する。
この結果、時計回りに回転している間だけは、時計回りのカウンター(カウンター1)だけがアクティブになり、反時計回りに回転している間だけは、反時計回りのカウンター(カウンター2)がアクティブになる。
リスト1はMBasicで記述したプログラムである。カウンターの内容を周期的にラッチし、読み出す。そして合計値を求めてエンコーダーの位置を32ビット・データとして連続して出力する。
本稿で紹介した回路は、500kHzのパルス出力速度に容易に対応する。RC受動フィルターとシュミット・トリガー信号整形によってエンコーダーのケーブル系が拾った雑音を除去する。本回路は、工業用の動き検出用途に適している。
Copyright © ITmedia, Inc. All Rights Reserved.