タッチセンサ(その2)


1.目的
 本ドキュメントは,ロータリエンコーダボード初版(V94−PART−001,V94−PART−002,V94−CARD−*01)の作成法を明確にすることを目的とする。

2.適用範囲
 本ドキュメントは,ロータリエンコーダボード初版(V94−PART−001,V94−PART−002,V94−CARD−*01)に対して適用する。

3.作成方法
 以下の手順でロータリエンコーダボードを作成する。

i)基板を焼く
 両面基板にパターンを焼き付け、エッチングする。パターンは、V94-CARD-401(パターンCADファイル)を用いる。エッチングが終わったら基板を正確な大きさに切る。特に基板の横幅は、いっぱいまでパターンが引かれているのでIC1及びディップスイッチのランドが削れるぐらいまで基板を削る事(図1の概観図で基板寸法を参照してください)。

図1 ロータリエンコーダボード概観図
6KB

ii)基板に穴を開ける
 ドリルは0.8mmを用いる。但し基板の四隅にある大き目のランドはIndustryPackをI/Oボードに固定する時のねじ穴であるので2.5mmのドリルで穴を開ける。

注意
 穴の位置は、必ずランドの中心にあるわけではありません。プリント基板に焼き付けたパターンで解りにくい場合は、V94-CARD-401(パターンCADファイル)を参照してください。場合によってはランドの内径がつぶれて穴の位置がうまく定まらない事があるので、必要に応じてポンチ等を活用してください。
 2つの50ピンコネクタは、ドリルの穴がきれいに整列していないと基板に差し込む時に特に苦労するので注意してください。

iii)半田付け
 部品を基板に乗せる前に、必ず基板の表と裏(部品面と半田面)を結ぶ作業をします。基板を部品面から見た時(パターンCADファイルでの、LAYER1)に、ランドが部品の足以外の所にあるものは、全て裏側の半田面と結びます。抵抗などの足の切った残りや被服をはいだ導線などを差し込み、両面を半田付けしてください。この作業は、全部で48ヶ所あります。結びおわったら、しっかりとつながっているかどうか、導通チェックをしてください。
 基板を部品面から見た時(パターンCADファイルでの、LAYER1)にランドが部品の足の所にあるもの(R4、R5、R6、C4の4パーツ、5ヶ所)は、取り付けた部品の足の部品面側も半田付けします。
 残りの部品も載せて、半田付けします。但し、IC4とIC5はPLDなので、ICソケットを取り付けてください。

iv)PLDを焼く
 PLDの書き込みデータは、1つのICにつき1つのディレクトリを用意してあります。必要なディレクトリは、部品表から検索してください。
 ディレクトリには、テキスト形式で論理式を記したソースファイル(拡張子:PDS)と、ソースファイルから作成したドキュメントファイル(拡張子:DOC)、PLDライタ用にコンパイルしたファイル(拡張子:JED)の3つのファイルがあります。これらをフロッピーディスクに読み出しPLDライタに読み込ませてPLDの焼き付けを行ってください。
 PLDを焼いたら基板に載せて完成です。

3.2 回路設計

 タッチセンサ信号処理回路、そしてVIPC310とのインタフェースのための制御回路から成る。


3.2.2 タッチセンサ信号処理回路

 タッチセンサ信号処理回路は、タッチセンサの信号からスイッチ割り込みの割込み要求を行う。回路は、タッチセンサのチャタリング防止回路と割込み信号発生回路、タッチセンサステータス出力回路、割込みVECTOR発生回路から成る。
 タッチセンサの信号処理にも、μPD4701Aを利用する。タッチセンサはSR−FFを用いてチャタリングを除去し、その信号をμPD4701Aに取り込む。そして、μPD4701Aの持つスイッチフラグ信号を利用して割込み信号発生回路で割込み信号を発生させる。タッチセンサの状態は、μPD4701Aのカウント値とまとめて出力される為、別に、タッチセンサステータス出力回路を設計する必要はない。図3に、μPD4701Aのデータ出力形式を示す。
図3 μPD4701Aデータ出力形式
   出力は3ステートである
3KB

 割込みVECTOR発生回路は、割込みサイクル時にVIPC310−IP間のデータバス(Internal Data Bus)に8ビットの割込みVECTORを載せる回路である。IPからデータバスには通常μPD4701Aの出力データが載せられる為、バス上にμPD4701Aの出力データと割込みVECTORが同時に載るようなことの無いよう、3ステートのバッファを用いて割込みVECTORの出力を制御する。割込みVECTORの設定は、8ビットディップスイッチによって行う。IPをVIPC310に搭載するとき、両者は互いにボードの部品面を向かい合わせる事になる。IPをVIPC310に搭載したまま割込みVECTORの設定を行えるよう、ディップスイッチは横向きのものを使用した。


3.2.3 インタフェース仕様と制御回路

 制御回路は、CPUからの命令の解読とVIPC310とのI/Oのタイミングの制御の役目を持つ。
 ここで、VIPC310とIPとのインタフェース仕様のうちで特にロータリエンコーダ・ボードの設計に重要なものを記す。

i)物理インタフェース
 IPの寸法と、コネクタピン番号を図4に示す。50ピンコネクタはAMP社の173279−3である。
図4 IndustryPackのサイズとコネクタピン番号
5KB

ii)ソフトウェアインタフェース
 IPが可能なデータ入出力のサイクルには、表1に示した8種類がある。それぞれのサイクルは4つのセレクト信号(IOSel*,MemSel*,IntSel*,IDSel*)とR/W*、DMAck*により決定される。
表1 Cycle Types
Cycle Type R/W* IOSel* MemSel* IntSel* IDSel* MDAck*
Input H L H H H H
Output L L H H H H
Memory Read H H L H H H
Memory Write L H L H H H
Interrupt Ack H H H L H H
ID Read H H H H L H
IO-DMA H/L L H H H L
Memory-DMA H/L H L H H L
 すべてのサイクルで4つのセレクトサイクルのうちの1つだけactiveになる。1つのサイクルは、セレクト信号がactiveになってからIPがAck*を返すまでである。
 図5に、最短の場合のInput、Outputサイクルのタイミングチャートを示す。
 また、図6にタイミングの規定を示す。なお、図6中のIP Carrierは本研究ではVIPC310の事を指す。

図5 Fastest I/O Cycle
6KB

図6 IP Detailed Timing Diagram
7KB

 制御回路は、以上のような仕様を満たすように設計しなければならない。
 制御回路では、セレクト信号、アドレス、データなどをデコードしてCPUからの命令を解読し、CLKと同期を取り、ロータリエンコーダ信号処理回路やタッチセンサ信号処理回路に必要な信号を送ったり、命令に応じたデータをCPU側に返したりする。IPの大きさを考慮して、回路をPLDで作製することにした。


3.2.4 コネクタピンアサイン

 表2、3にロータリエンコーダボードのコネクタピンアサインを示す。表2はコネクタJ3のピンアサインで、これはIPとVIPC310のインタフェースのコネクタである。表3はコネクタJ5のピンアサインで、これはIPとセンサの接続コネクタである。

表2 コネクタJ
 No. 信号名 方向 内容 備考
  1   GND -- GND
  2  CLK Clock 8MHz
  3 BRESET* CPUリセット信号
  4   D00 ←→ DATA 20
  5  D01 ←→ DATA 21
  6   D02 ←→ DATA 22
  7  D03 ←→ DATA 23
  8   D04 ←→ DATA 24
  9   D05 ←→ DATA 25
 10  D06 ←→ DATA 26
 11  D07 ←→ DATA 27
 12   D08 ←→ DATA 28 未使用
 13   D09 ←→ DATA 29 未使用
 14  D10 ←→ DATA 210 未使用
 15  D11 ←→ DATA 211 未使用
 16   D12 ←→ DATA 212 未使用
 17  D13 ←→ DATA 213 未使用
 18  D14 ←→ DATA 214 未使用
 19  D15 ←→ DATA 215 未使用
 20  BS0* Byte Select (下位ÊÞ²Ä) BS0*=0 (active)
 21  BS1* Byte Select (上位ÊÞ²Ä) BS1*=1 (negative)
 22   V- -- 電源-12V 未使用
 23   V+ -- 電源+12V 未使用
 24   Vcc -- 電源+5V
 25   GND -- GND
 26  GND -- GND
 27  Vcc -- 電源+5V
 28  PWR* Read*Write Select 1=Read,0=Write
 29  IDA* ID PROM Select 信号
 30   H1 high level 入力
 31 MEMSELA* Memory R*W Cycle 信号 未使用
 32   H2 high level 入力
 33 INTSELA* Interrupt Cycle 信号
 34   H3 high level 入力
 35 IOSELA* I/O Cycle 信号
 36   H4 high level 入力
 37  ADDR1 Address 21
 38   H5 high level 入力
 39  ADDR2 Address 22
 40   H6 high level 入力
 41  ADDR3 Address 23
 42 IRQA0*  → Interrupt 信号 (割込み level=4)
 43 ADDR4 Address 24
 44  IRQA1*  → Interrupt 信号 (割込み level=5) 未使用
 45  ADDR5 Address 25
 46   H7 high level 入力
 47  ADDR6 Address 26
 48  ACKA*  → Acknowledge
 49 +5PSTBT -- VIPC310ボードのÊÞ¯ÃØ°電源 ÃÞ°À保存用¤未使用
 50   GND -- GND

表3 コネクタJ
 No.  信号名 方向 内容 備考
  1   GND -- GND
  2   GND -- GND
  3   GND -- GND
  4   GND -- GND
  5   GND -- GND
  6   GND -- GND
  7   GND -- GND
  8   GND -- GND
  9   GND -- GND
 10   GND -- GND
 11   GND -- GND
 12   GND -- GND
 13   GND -- GND
 14   GND -- GND
 15   GND -- GND
 16   GND -- GND
 17   GND -- GND
 18   GND -- GND
 19   GND -- GND
 20   GND -- GND
 21   GND -- GND
 22   GND -- GND
 23   GND -- GND
 24   GND -- GND
 25   GND -- GND
 26   GND -- GND
 27 RRa ←  右ロータリ・エンコーダa相信号
 28   GND -- GND
 29  Vcc -- 電源+5V
 30   GND -- GND
 31 RRb ←  右ロータリ・エンコーダb相信号
 32   GND -- GND
 33 RLa ←  左ロータリ・エンコーダa相信号
 34   GND -- GND
 35  Vcc -- 電源+5V
 36   GND -- GND
 37 RLb ←  左ロータリ・エンコーダb相信号
 38   GND -- GND
 39 TRs* ←  右タッチセンサON信号
 40   GND -- GND
 41 TRr* ←  右タッチセンサOFF信号
 42   GND -- GND
 43 TMs* ←  中央タッチセンサON信号
 44   GND -- GND
 45 TMr* ←  中央タッチセンサOFF信号
 46   GND -- GND
 47 TLs* ←  左タッチセンサON信号
 48   GND -- GND
 49 TLr* ←  左タッチセンサOFF信号
 50   GND -- GND