在微计算机的应用中,通过键盘显示器给计算机发布命令,使用软盘给计算机输入程序,使用打印机输出结果,利用调制解调器进行长距离通信,还要利用数模转换器和模数转换器进行生产中的过程控制。所有上述这些设备通称为计算机的外围设备。由于外围设备种类繁多,结构复杂(有电子式、机电式、机械式、电磁式等),使用的器件也不相同(有分立元件的也有集成电路的,集成电路又有TTL、MOS等不同器件之分),加以工作速度、工作电平、交换信息的方式各有不同,因此绝大多数均无法与计算机直接连接。如果想把这些外围设备与计算机相连接,就需要在两者之间架设一座沟通信息的桥梁,这种具有桥梁作用的装置,就是本文要介绍的接口。
接口(interface)是微计算机的重要部件之一。接口技术则是开展微型计算机应用的关键技术之一。接口技术包括:对各种计算机外围设备的机、电等特性的广泛了解;对TTL、CMOS等各种集成电路的熟练使用;对各种通用型大规模集成电路接口芯片的深入了解;对信号及传输系统电磁兼容性(抗干扰)的深刻理解,以及对接口芯片编程技术的运用。接口按功能可以分为:基本功能接口;用户通信接口;传感器接口和控制接口四大类;下面分别加以介绍。
一、基本功能接口
基本功能接口电路包括接收电路、驱动电路、数据锁存器及三态缓冲器等。这些部分有时可以单独成为具有基本功能的接口,有时与各种集成电路芯片一起构成较复杂的接口。
在图1中的微处理器大多数是应用NMOS器件,输出能力仅有几个毫安,所以地址输出线(A\(_{0}\)15)和控制信号线(如读写控制R/W-)均需要用LSTTL(低功耗高速TTL电路)电路隔离驱动。常用的有四与非门74LS00,四与非缓冲器74LS37等。图1中的门1和门3即为74LS37,用它可以提供30mA的灌入电流。

数据总线(D\(_{7}\)~D0)则需要用能双向传输信号的总线收发器,如八总线收发器74LS245等,如图1中的门2。它可以从总线上接收数据,又可以将数据送到总线上去。由于总线一般较长有时还要通过电缆联接,又由于总线接收器的输入阻抗较高,约有几十千欧,电缆线的波阻抗较低,约90Ω至130Ω,二者阻抗不匹配就会发生反射,造成波形畸变,线愈长愈严重。图2(a)的波形就是由于反射形成了“寄生振荡”,这将降低信号传输的可靠性。图1在门2处接了220Ω和270Ω两个电阻,来解决这个问题。不难看出,对交流信号而言,电阻220Ω与270Ω是互相并联的,其等效阻抗约120Ω。这与电缆的波阻抗近似相等,因而阻抗匹配效果较好。匹配后的终端波形如图2(b)所示。

中断信号接收电路采用积分滤波电路,图1门4输入端接的1K电阻和100P电容可以有效地滤除在10μS宽度以内的干扰脉冲,为了进一步增强抗干扰能力,门4可以采用施密特四与非门74LS132,它有较好的整形作用。
属于基本功能接口部分较常见的还有电平转换和开关防颤电路。
图3是TTL电路与CMOS电路的接口,使用CMOS电路的外围设备电源电压从3V至18V不等,例如图3左方的CMOS电路与TTL使用不同的供电电压。此时电阻R取10K左右即可。电平转换电路还经常用晶体管实现,如显示器等用的RS—232接口,采用CMOS电路其传送的逻辑“1”电平是-5V至-15V;逻辑“0”电平是+5V至+15V;利用图4电路可将其转换成TTL电平。转换后的逻辑“1”接近+5V,逻辑“0”为0.2V左右。


图5是开关防颤电路,它是微型计算机与面板置数开关的接口利用74LS00四与非门接成R—S触发器,尽管开关有颤抖,但门3的输出是稳定的。门3输出接到8212的I/O端口中的一位,8212用作编有地址的缓冲器,其输出直接送CPU。

二、用户通信接口
微型计算机与用户交换信息所需要的接口称为用户通信接口,如键盘、终端显示器、光笔显示的接口等,它们大多数采用串行数据传送,即把代码一位接一位的传送,传送速度一般在110位/秒至1000位/秒的范围内。这样的工作速度与CPU的工作速度相比是太慢了。为了不浪费CPU的时间,在CPU中设置了“中断请求”信号,每当设备要求与CPU交换信息时,CPU就停止目前的工作,待信息交换完毕,CPU再继续进行原先的工作。这样就提高了工作效率。通常采用软件查询和向量中断两种中断的方法,其详细情况请见85年第6期本刊的文章,这里就不多讲了。
图6使用串行输入输出接口芯片Z80—SIO以及计数定时器芯片Z80—CTC,将显示器CRT和键盘与Z80相连接。Z80—CPU以软件查询的中断识别方式接收由键盘输入进来的代码,并将它存入RAM,然后再从RAM中取出,送往CRT显示。键盘与Z80—SIO之间以串行方式通信,RXD端是串行数据输入端,在RXD端与键盘之间使用电平转换器,如图4所示,SIO与CRT之间也是以串行方式通信,TXD是SIO的串行数据输出端。SIO接口芯片的时钟由CTC芯片提供。由于SIO是可编程接口,其工作方式由编程来选择,所谓编程就是向其内部的寄存器写入一系列指令,即工作程序。

三、传感器接口
微型计算机在生产过程等控制当中,需要监视被控对象的变化,因此需要接口电路,用以接受各类传感器送来的信息。这类接口电路见图7。传感器种类很多,如温度传感器、压力传感器,以及流量计等,这些传感器把物理量转化成模拟电压送至传感器接口。传感器接口除了包含接收器,驱动器等基本功能接口部分外,还有一个把模拟电压转换成数字量的A/D转换器。转换后的数字量送至CPU中进行处理。

图8是使用Z80—PIO可编程并行接口芯片的温度传感器接口,n型热敏电阻阻值的变化在R—V(电阻—电压)电桥电路中转换成0~5V的电压变化,送入A/D转换器;同时利用程序在PIO的PBD\(_{5}\)上送出一个启动A/D转换器的脉冲,A/D转换器接到启动信号以后开始转换。程序再通过PB2线不断查询A/D转换结果是否结束,如转换已结束,通过PA\(_{0}\)-7读数,最后将数读入RAM,并查读数的次数是否完成,如没有完成,则重复上述动作,若完成即结束。这样每启动一次,就把热敏电阻检测的温度变化成数字量并送往计算机处理一次,最后利用打印机将结果打印出来。

四、控制接口
在过控制过程中,首先由传感器接口向微计算机提供控制对象处于什么状态的信息,经过计算机处理后,再通过控制接口实现计算机对控制对象的控制。控制接口主要包括数模转换器和驱动器。因为控制对象往往是步进电机、电磁阀等,需要大电流驱动的执行机构,所以驱动器经常设计成使用晶体管和可控硅等功率器件的功率放大电路。图9是控制接口框图。

五、通用接口和专用接口
目前微计算机使用的接口芯片很多,最后可以归于两大类,即通用型和专用型。上面介绍了Zltog公司的PIO、SIO,以及Intel公司的8255、8251,Motorola公司的可编程接口适配器MC6820、MC6850等,是最常用接口芯片,使用者通过编程可以赋于它们不同的功能,以适应多种不同外设的需要,上文的图8就是一个例子。
专用型接口芯片也很多,如显示器CRT控制器、键盘控制器,软盘控制器和DMA控制器等。专用接口往往功能很强,如软盘控制器FDC,在一块芯片内就包括读写控制、校验码产生、锁相电路、写入补偿电路、解码电路、步进脉冲产生和格式化等许多功能,使用起来非常方便。
DMA控制器是专为高速输入/输出设备与计算机的内存储器直接交换数据而设计的,DMA就是“直接存储器存取”之意。为什么直接与存储器打交道呢?这是因为采取中断方式交换数据对高速设备来说太慢了。每次中断只能传送一个字符,而CPU每次中断就要暂停执行主程序,暂时转移去执行中断服务子程序,同时还要保护中断时的现场,最后中断服务完毕又要恢复现场,这一系列操作延缓了传送速度。而DMA传送就免去不少麻烦,每次又能传送一批数据,这就快多了。DMA操作流程图见图10,图中“地址寄存器”是DMA控制器芯片内部的一个寄存器,用于存放要进行交换的内存储器单元的起始地址,每交换一次,地址就加1,表示下一次就与另外一个内存单元进行交换,一直交换到“字数计数器”减到零为止。“字数计数器”也是DMA芯片中的一个计数器,在起始时,先存放上想要交换的字数,每交换一次,就减掉一个。

DMA控制器虽然是专用型接口芯片但在用户通信接口,传感器接口和控制接口中都有用武之地。
近年来国外还出现了使用单片微型机(或其它微处理器的智能接口,以及各种局部网络控制器芯片等等,这里就不介绍了。(许奇雄)