ロータリーエンコーダボードの説明


1 ロータリーエンコーダボードの機能説明
 ロータリーエンコーダボードは、ロータリーエンコーダ信号処理回路とタッチセンサ信号処理回路を1つにまとめ、Industry Packの形にしたもので、以下に示す機能を持つ。

2 回路構成
 ロータリーエンコーダボードは、大別してロータリーエンコーダ信号処理回路とタッチセンサ信号処理回路、そしてVIPC310とのインターフェイスのための制御回路からなる。以下にその詳細を示す。

@ロータリーエンコーダ信号処理回路
 ロータリーエンコーダ信号処理回路は、ロータリーエンコーダの2相の信号からロータリーエンコーダの回転数と回転方向を測定し、CPUの命令にしたがってデータの出力をおこなう。
 回路はロータリーエンコーダ接続回路とカウンタ回路、カウンタリセット回路から成る。
 ロータリーエンコーダ接続回路はロータリーエンコーダの出力波形が論理回路の"H"、"L"レベルを満足するような振幅を設定するためのものである。
 カウンタ回路は、ロータリーエンコーダの信号をカウントし、2相の信号の位相差から回転方向を判断する。これには、マウス制御用カウンタIC(μPD4701)を使用した。このICは、カウンタと方向判別回路の両方の回路を備えていて、ロータリーエンコーダが2つつけられる。またマウスのボタン入力ピンをタッチセンサに応用できるためとても都合がよい。
 カウンタリセット回路は、カウンタのリセット信号を発生させる回路である。μPD4701Aの2つのカウンタは独立にリセット機能を持つため、回路も2つのカウンタを別々にリセットできるようにした。

Aタッチセンサ信号処理回路
 タッチセンサ信号処理回路は、タッチセンサの信号からスイッチ割り込みの割り込み要求をおこなう。回路は、タッチセンサのチャタリング防止回路と割り込み信号発生回路、タッチセンサステータス出力回路、割り込みVECTOR発生回路から成る。
 タッチセンサの信号処理にも、μPD4701Aを利用する。タッチセンサはRSフリップフロップを用いてチャタリングを除去し、その信号をμPD4701Aに取り込む。そして、μPD4701Aの持つスイッチフラグ信号を利用して割り込み信号発信回路で割り込みを発生させる。タッチセンサの状態は、μPD4701Aのカウント値とまとめて出力されるため、別にタッチセンサステータス出力回路を設計する必要はない。
 割り込みVECTOR発生回路は、割り込みサイクル時にVIPC310-IP間のデータバス(Internal Data Bus)に8ビットの割り込みVECTORを載せる回路である。IPからのデータバスには通常μPD4701Aの出力データが載せられているため、バス上にμPD4701Aの出力データと割り込みVECTORが同時に載るようなことのないよう、3ステートのバッファを用いて割り込みVECTORの出力を制御する。割り込みVECTORの設定は、8ビットディップスイッチによっておこなう。IPをVIPC310に搭載したまま割り込みVECTORの設定を行えるよう、ディップスイッチは横向きのものを使用した。

Bインタフェイス仕様と制御回路
 制御回路は、CPUからの命令の解読とVIPC310とのI/Oのタイミングの制御の役目を持つ。
 ここで、VIPC310とIPとのインターフェイス仕様のうちで特にロータリーエンコーダボードの設計に重要なものを示す。
 IPが可能なデータ入出力のサイクルには、表1に示した8種類がある。それぞれのサイクルは4つのセレクト信号(IOSel*,MemSel*,IntSel*,IDSel*)とR/W*、DMAck*により決定される。
 すべてのサイクルで4つのセレクトサイクルのうちの1つだけactiveになる。1つのサイクルは、セレクト信号がactiveになってからIPがAck*を返すまでである。
 図1に、最短の場合のInput、Outputサイクルのタイミングチャートを示す。
 また、図2にタイミングの規定を示す。なお、図2中のIP CarrierはVIPC310である。
 制御回路は以下のような仕様を満たすように設計しなければならない。
 制御回路では、セレクト信号、アドレス、データなどをデコードしてCPUからの命令を解読し、CLKと同期をとり、ロータリーエンコーダ信号処理回路やタッチセンサ信号処理回路に必要な信号を送ったり、命令に応じたデータをCPU側に返したりする。IPの大きさを考慮して、回路をPLDで作成する。

 次にこれらの回路の詳細を述べる。

カウンタ部
 カウンタ部では、ロータリー縁コーダの信号処理を行う。縁コーダ用カウンタICμPD4701A(以後カウンタICと呼ぶ:NEC)を用いて、ロータリーエンコーダの回転数をカウントする。この時、ロータリーエンコーダの信号がカウンタICのスレッショルドレベルを満たすように抵抗値(R1からR6)を設定する。この値は使用するロータリーエンコーダによって変わる。

スイッチ部
 カウンタ部に用いたカウンタICで、タッチセンサの信号処理も行う。タッチセンサには、チャッタレススイッチを用いる。チャタリング除去回路にはRSフリップフロップを用い、74LS279で作成する。カウンタICによりタッチセンサの状態を読み取り、スイッチフラグ(以後SF*)を発生させる。なお、このSF*を制御回路に取り込んで割り込み信号を発生させる。

制御回路
 制御回路部では、I/Oボードとのインターフェイスを行う。その役目は、CPUからの命令解読とタイミングの制御、割り込み信号の発生、バスリセット時にはカウンタをリセットし、タッチセンサの割り込みを禁止する。回路の小型化のために、PLD(16V8)2個を用いて作成する。

割り込みVECTOR発生回路
 割り込み時のVECTORはロータリーエンコーダのカウント値を出力するのと同じデータバスに載せるので、カウント値と割り込みVECTORの出力の切り替えに3ステートバッファを用いる。回路はを74LS244を用いて作成する。割り込みVECTORの設定用に8ビットのディップスイッチを用いる。スイッチはロータリーエンコーダボードをI/Oボードに搭載したままでも操作できるように横向きのディップスイッチA6DR-8を用いる。