この節では各種インターフェースのうちパラレルインターフェース回路について説明する。
本装置にはパラレルインターフェース用LSIである8255Aが3個組み込まれている。このLSIはPPI(Programmable Peripheral Interface)といい,プログラム可能なインターフェース回路である。そもそも8255AはIntel社が8ビットの8080系CPU向けに設計したものであるが,16/32ビットなど処理能力の高いCPUや他社のCPUでも使用できることから一般的によく利用されており,パラレルインターフェース用LSIとしては最も代表的なものである。
この8255Aには入出力ポートが24ビットあり,それぞれ12ビットのグループA,グループBに分けることができる。グループAはポートAの8ビットとポートCの上位4ビット,グループBはポートBの8ビットとポートCの下位4ビットから構成されている。これらポートによるデータ入出力方法には,一方的にデータを送信する場合,相手と同期を取りながらデータの受け渡しを行う場合,あるいはデータを送る方向が単方向か双方向かなどいくつかの種類がある。8255Aではモード0からモード2まで3種類の動作モードがあり,それぞれ以下のような設定が可能となる。
①モード0…<基本入出力モード>
8ビットの入出力ポートを3組(ポートA,ポートB,ポートC)あるいは8ビットの入出力ポートを2組(ポートA,ポートB)と,4ビットの入出力ポートを2組(ポートCの上位4ビット,下位4ビット)設定できる。
②モード1…<ハンドシェイク入出力モード>
ポートCを制御信号と状態信号に割り当て,グループA,グループBの各8ビットの入出力を行うモードである。
③モード2…<双方向データ通信モード>
モード0,モード1が単方向データ通信であるのに対し,モード2では双方向データ通信が可能となる。グループAのポートCの上位4ビットに制御信号,状態信号を割り当て,ポートAの8ビットにより双方向データ通信を行う。このときグループBはモード0,モード1のいずれかで使用可能である。
このLSIには前述のモード設定,各入出力ポートの条件設定を行うための8ビットレジスタが内蔵されている。このコントロールワードレジスタに設定値であるコントロールワードを書き込むことによりLSIの動作条件が決定される。表3にコントロールワード設定方法を示す。例えばモード0を使用し,各入出力ポートをすべて入力に設定する場合,表3よりコントロールワードは16進数表現で9Bとなる(以下,「9BH」と記す)。
BASIC-52ボードと8255Aとのデータの送受信では,8ビットのデータバスと2ビットのアドレスバス(A0,A1)が使用される。アドレスは入出力ポートとコントロールワードレジスタが以下のように割り当てられている。
A1=0,A0=0:アドレス<0>…ポートA
A1=0,A0=1:アドレス<1>…ポートB
A1=1,A0=0:アドレス<2>…ポートC
A1=1,A0=1:アドレス<3>…コントロールワードレジスタ
そのほか,制御に関係するピンとして,8255Aのアドレスを示すチップセレクトピン(CS)と入出力の切り替えを行うリード・ライト制御ピン(RD,WR),8255Aをリセットするリセットピン(RESET)がある。
以下に,マイコン実験装置に組み込まれている3種のパラレルインターフェース回路の概要を示す。
①パラレルインターフェース回路1
図12は出力専用回路である。ポートA,ポートBに発光ダイオード,ポートCにメカニカルリレーが接続されており,基本的な出力機器の制御が学習できる。また,リレーを通して外部の機器の制御学習も可能である。これら入出力機器の駆動電流を確保するため,本回路ではトランジスタアレイ(TD62083AP)を使用している。このICは最大500mAの電流を駆動でき,さらにリレーの逆起電力を制限するクランプダイオードがついている。
②パラレルインターフェース回路2
図13は入力専用回路である。ポートA,ポートBにトグルスイッチ,ポートCに押しボタンスイッチが接続されており,基本的な入力機器の制御が学習できる。回路図中のTC74HC240は正論理入力にするため,信号を反転している。
③パラレルインターフェース回路3
図14の入出力回路には,ポートA,ポートBに7 seg LED,ポートCにサムロータリスイッチが接続されている。7 seg LEDのドライバにはBCDコードによる入力を7 seg LED素子駆動信号に変換するデコーダであるTC5068BPを使用している。また,サムロータリスイッチの信号を反転し正論理入力とするため,TC74HC240APを使用している。
これらの回路には前述のようにアドレスが割り当てられている。アドレス設定には8ビットのコンパレータを使用し,アドレスバスから送られてきた信号とディップスイッチで設定された信号が一致した場合に8255Aのチップセレクトピンに信号を送るようになっている。表4に各回路のアドレスを示す。
8255Aの制御ではまず1番目にモード設定(入出力の割り当てを含む)を行い,その後データの入出力を行う。図12の回路は接続されている機器のすべてが出力機器であることからコントロールワードは表3より80Hとなる。同様に考えると図13の回路のコントロールワードは9BH,図14のそれは89Hとなる。図15にパラレルインターフェース回路の制御プログラム例を示す。これは図13に接続されている押しボタンスイッチ0が押されるとトグルスイッチの情報を図12のLEDおよび図14の7 seg LEDに表示し,この処理を図13の押しボタンスイッチ1が押されるまで繰り返すプログラムである。このような処理はシーケンス制御の基本であり,出力機器をシリンダ,モータなどのアクチュエータに置き換えて考えればより実践的な学習となるであろう。
(つづく)