微型计算机的并行输入输出接口电路-Z80-PIO

🏠 首页 《无线电》杂志 1985年 🔗 第12期 🔗 第5页 分类:应用电子仪器 🔗 焦宝文 🔗

大家知道,微型计算机在完成控制任务的过程中,CPU经常要和外界被控制的对象、设备交换信息,有时要输入,有时要输出。因此,在计算机和被控对象之间需要一个接口电路,以便传递信息。CPU和外部设备(简称I/O设备之间的联系是靠输入程序(软件)和接口电路(硬件)来实现。

接口电路(简称接口)是把外部设备与微型计算机连接起来的桥梁和缓冲电路,也叫输入输出控制器。目前微型机的接口电路,一般都由一片大规模集成电路再配以若干种中小规模集成电路构成。根据应用不同,可分为专用接口和通用接口两种。专用接口是指为某类外设专门设计的控制芯片,它要和外设的种类甚至型号完全匹配才能使用。而通用接口和外设的配用范围比较广。初学者接触最多的Z80-CPU,与之适配的接口芯片就有两大类:(1)专用I/O芯片——主要有磁盘控制器、CRT控制器、键盘接口、键盘显示接口和数据编码接口等等。(2)通用I/O芯片:主要有并行I/O(PIO),串行I/O(SIO)以及计数/定时电路(CTC)等。

Z80-PIO并行输入输出接口电路(PARALLEL INPUT/OUTPUT)是一个与Z80CPU配套的器件,与其它接口不同,它具有两个独特的优点:(1)可以通过编程变更PIO的工作方式,从而能与各样的外部设备——如键盘、打印机、EPROM写入器等相接而不用其它外加电路;(2)外部设备与CPU之间的所有数据传送都是在中断控制下实现的,因为在传送数据时,计算机的工作必须暂时中断。

图1是Z80-PIO结构框图,它由CPU总线I/O接口,内部控制逻辑、中断控制逻辑、端口A的I/O逻辑,端口B的I/O逻辑等五部分组成。其中CPU总线接口允许PIO直接与Z80-CPU相接,而不需要外加逻辑电路。PIO芯片有两个独立的出入口(Port),一般称为口A和口B(Port A Port B)。每个口有8条引出线、即可以有8位数字并行出入。另有两条联络线(Handshaking)用来控制数据的传输。

图1
图1 🔍原图 (853×404)

PIO的每个端口可以根据需要选择下列四种不同的工作方式:(1)输出方式(方式0);CPU通过执行一条输出指令(OUT),把数据送给端口;当外设从端口取走数据后,STB-引脚发出一个负脉冲,它的上升沿可使INT-引脚变低位,向OPU发出中断申请,另一方面使RDY变低位,一次数据输出过程就结束了。PIO通过STB-线和RDY线与外设进行联络,通常称这种联络过程为“握手”过程。(2)输入方式(方式1):CPU通过执行一条输入指令(IN),即可取走端口中的数据,等RDY重新变高电位后即可进行下一个数据的送入。(3)双向方式(方式2):双向数据传送方式适用于既有输入、又有输出的外设。但只有端口A能工作在这种方式。其输入输出过程与方式0和方式1基本相同,差别仅在于方式2的输出过程,只有在ASTB-为低电平时才允许数据送到端口A的总线上。(4)位控方式(方式3):这种方式是供微机发出命令或接收状态信号用。在这种情况下,端口的各条线都可以用控制字设定哪几条是输入,哪几条是输出(这时两组联络线均不使用,两条RDY线均保持为低电平)。

通过上面的分析可知, PIO的A口可以工作在四种工作方式中的任何一种,而B口只可以工作在方式0、方式1和方式3。下面通过一个实例再介绍一下确定PIO端口工作方式的方法。

图2是Z80-PIO作为Z80-CPU和一个工业加工系统之间接口电路的连接图。因为需要监测的参量为8个,故只选用一个端口即可。假设我们选定端口B作为信息传送端口。分别把有关连线接向B\(_{0}\)7,其中该系统受监视的三个报警信号(PB\(_{0}\)压力、PB3温度,PB\(_{5}\)掉电)均是输入信息。生产过程中任何不正常的情况发生,都将通知CPU立即进行处理;其余五项是输出信息,是CPU用来控制加工系统的,即向外设发出控制命令。可见,PIO的B口应工作在方式3为宜。

图2
图2 🔍原图 (750×526)

PIO共有六种控制字,使用者应当清楚地掌握这六种控制字。在搞清了应被设置的各种控制字、并确定了B口的数据寄存器和控制寄存器地址后,才能写出置PIOB口为位控方式的初始化程序。(焦宝文)