Yamamoto's Laboratory
Z80
シリアル通信
コンピューター Z80 シリアル通信

8ビット CPU Z80シリアル通信

Z80 にシリアル通信を接続する方法を示します.

目次


シリアル通信とは

データを1ビットずつ送受信する通信をシリアル通信と言います.Z80でのシリアル通信は RS-232 が一般的で,最も簡単です.このシリアル通信には,送信と受信にそれぞれ伝送路がある全二重通信と,伝送路はひとつで送信と受信を切り替える半二重通信があります.この通信信号の同期には,クロックを同期する同期式通信,クロックは同期しないで伝送速度を予め決める非同期式 (調歩同期) 通信があります.ここでは,全二重通信の非同期式の回路とします.Z80マイコンとそのターミナルのPCとは,図1のようにして接続します.

Serial Communication
RS-232 の結線

この図のように,たった3本の線でここで製作する Z80 マイコンと,ディスプレイとキーボードの役割をするターミナルが接続することが可能です.

Z80マイクロプロセッサーは,直接,図1に示した信号(Tx, Rx)を入力できません.Z80が外部から入力できる信号は,データバスに流れる8ビットのパラレル信号のみです.そのために,Z80とシリアル回線の間に,双方向(パラレル↔シリアル)に変換する回路が必要です.その回路は LSI 化されており,Intel 8251が最も有名です,この LSI については,次節以降で説明します.

シリアル通信用 LSI Intel 8251 USART

概要

シリアル通信用の LSI はいろいろありますが,Intel 8251 USRT が最も多く使われたようです.USART(Universal Synchronous/Asynhronous Receiver/Transmitter)とは,汎用同期/非同期の受信/送信というような意味です.セカンドソースもあるようなので,それを使うこともできます.図2に,NECの互換 IC を示します.

8251
8251の互換IC(NEC D8251AC)

8251はマイクロプロセッサーとシリアル通信ラインの間に入り,パラレルとシリアルデータの変換が主な役割です.また,両者の通信速度の違いの調整も行います.シリアル通信はマイクロプロセッサーと比較してデータの送受信が大変遅いので,その間に入り両者に適した速度に合わせる必要があります.

ここでは,8251を使うために必要な知見を示します.

端子配置

図3に8251の実体図を示します.28ピンのパッケージに収められています.端子の名前らから機能が想像できるものもあります.もちろん,見当がつかないものもあるでしょう.そこで,図4のように端子を機能別に分けて説明します.8251の端子は,(1)データバス,(2)リード/ライト制御,(3)送信,(4)受信,(5)モデム制御,(6)電源/グラウンドと6種類に分けることができます.これで,何となく動作が分かったような気になります.

図4に示す端子の入出力の区別は矢印で表しています.また,機能名称の上に線が引かれているピンはアクティブ Low であることを示しています.

Z80 Timming Z80 Timming
8251のピン配置 8251の各ピンの機能

機能

各ピンの機能は,以下の通りです.これは,参考資料[1][2]に書かれている内容です.

データバス

8251のデータバスは直接CPUのデータバスに接続され,データの受け渡しに使われます.

D0 — D7
(データバス)
出力: アクティブ High,トライステート
マイクロプロセッサーとのデータの受け渡しに使われます.受け渡しは,1バイト(8ビット)単位です.

リード/ライト制御

RESET 入力: アクティブ High
Hレベルになると,この LSI は初期状態にリセットされます.
CLK
(CLocK)
入力
このクロック信号は内部デバイスのタイミング用で,他のクロック信号 RxCTxC とは独立です.このクロック信号(CLK)は,同期モードでは RxCTxC の30倍以上,非同期では4.5倍以上でなくてはなりません.
C/D
(Control/Data)
入力  H:コントロール, L:データ
CPUが8251にアクセスするときのレジスターを選択します.
RD
(ReaD)
入力  アクティブ Low
Lレベルの時,8251のレジスタの内容がデータバスに出力されます.
WR
(WRite)
入力  アクティブ Low
Lレベルの時,マイクロプロセッサーがデータバスに出力したデータを 8251 が読み込みます.
CS
(Chip Select)
出力  アクティブ Low
Lレベルになるとこの 8251 がマイクロプロセッサーと通信可能になります.外部装置として,マイクロプロセッサーに接続する場合にLレベルにします.

送信

TxD
(Transmitter Data)
出力
この端子からシリアルデータを出力します.リセットの後,あるいは送信が禁止されている時には,「マーク状態」(Hレベル)になります.
TxRDY
(Transmitter Ready)
出力
8251がデータキャラクターを受信可能なときに,端子がHレベルになります.このとき,8251はデータの送信が可能ということです.
TxEMPTY
(Transmitter EMPTY)
出力  H:バッファーが空
送信データが無くなったときに,Hレベルになります.プロセッサーからデータを受け取るとるために WR端子の立ち上がりを検知すると,TxEMPTY は L レベルになります.
TxC
(Transmitter Clock)
入力
送信データの送信スピードを制御するクロック信号を入力します.同期モードでは,ボーレートはこのクロック(TxC)は同一になります.非同期モードでは,1倍と1/16倍,1/64倍を選択することができます.

受信

RxD
(Receiver Data)
入力
この端子からシリアルデータを 8251 に入力します.
RxRDY
(Receiver Ready)
出力
8251にマイクロプロセッサーが読み込むデータが含まれているときに,Hレベルになります.マイクロプロセッサーがデータを読み込み時,RD端子の立ち上がりを検知すると,Lレベルになります.マイクロプロセッサーが 8251 のデータを読み込む前に,次のデータを受信すると,前のデータは失われます.この場合,オーバーランフラグが立ちます.
RxC
(Receiver Clock)
入力
受信データの受信スピードを制御するクロックを入力します.同期モードでは,ボーレートと同じ周波数にします.非同期モードでは,RxCと同一にし,1倍,1/16倍,1/64倍の設定ができます.
SYNDET
(SYNc DETect/braek detect)
双方向
コントロールワードの設定により,同期モードでは,この端子は入力あるいは出力として使われます.出力として使う場合(内部同期モード),SYNC文字を検出したときに H レベルになり,ステータスワードを読むとリセットされます.外部同期モードでは,この端子は入力で,Hレベルにすると 非同期モードでは

モデム制御

DSR
(Data Set Ready)
入力
DTR
(Data Terminal Ready)
出力
CTS
(Clear To Send)
入力
RTS
(Request To Send)
出力

電源/グラウンド

Vcc
(supply Voltage)
電圧入力
GND
(GrouND)
基準電位

ページ作成情報

参考資料

  1. 8251のデータシート「Intel 8251A PROGRAMMABLE COMMUNICATION INTERFACE」
  2. 柏谷栄一 佐野羊介 中村陽一 若島正敏, マイコン応用システム入門[ハード編], 東京電機大学出版局, 2005年
    図解Z80 マイコン応用システム入門 ハード編図解Z80 マイコン応用システム入門 ハード編
    柏谷 英一 中村 陽一 佐野 羊介 若島 正敏

    東京電機大学出版局 2000-05
    売り上げランキング : 522655

    Amazonで詳しく見る
    by G-Tools
  3. 8251 UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER (USART)

更新履歴

2014年 ページの新規作成


no counter