▲学习指导和要求▲第一节I/O接口概述▲第二节并行接口8255A▲第三节定时/计数器8254▲第四节串行接口8250▲第五节DMA控制器8237A第七章I/O接口技术掌握I/O接口的构成、功能、控制方式和编址方式;掌握8255A的内部结构、工作方式,能熟练进行8255A的初始化编程;掌握8254的内部结构、工作方式,能熟练进行8254的初始化编程;掌握8250的内部结构、工作方式,能熟练进行8250的初始化编程;了解8237A的结构和工作方式,能熟练进行初始化编程。学习指导和要求输入输出设备是计算机系统的重要组成部分,称为外部设备或I/O设备。在微机应用系统中,计算机处理的信息,如程序,原始数据和各种采集到的数据需要通过输入设备送入计算机,而计算机处理的结果又需要通过输出设备输出。I/O设备的种类繁多,常用的I/O设备有:鼠标、键盘、显示器、打印机、磁盘、绘图仪等。由于I/O设备的特性差别很大,传送的信息也不同,因此CPU与I/O设备无法直接连接,需要通过“接口”把CPU与I/O设备连接起来。实现这一过程的处理技术称为输入/输出接口技术。一、接口的概念和功能1、接口接口是CPU与外设的连结电路,是CPU与外设进行信息交换的桥梁或中介。CPU与外设之间设置接口的主要原因:CPU与外设的信号线不兼容,逻辑关系和时序关系不一致。两者的工作速度不兼容。若外设直接由CPU控制,会大大降低CPU的效率。同样地,会使外设的硬件结构依赖于CPU。第一节I/O接口概述2、接口技术微机接口技术是采用硬件与软件结合的方法,研究CPU如何与外设进行最佳连接,以实现CPU与外设进行高效可靠的信息交换的一门技术。3、接口技术在微机应用中的作用微机应用系统的研究与开发,从硬件角度来讲,就是接口电路的研究与开发,接口技术已成为直接影响微机系统功能和微机推广应用的关键。因此,掌握微机接口技术是学生必须具备的基本技能。CPU接口外设数据总线地址总线控制总线……数据状态控制CPU与I/O设备之间的接口信息1、数据信息2、状态信息3、控制信息CPU与I/O接口之间传送的信息主要有:(1)控制信号CPU接口,控制接口的工作方式。(2)状态信号CPU←接口,向CPU提供接口的工作状态.(3)数据CPU与外设之间交换的信息。为了实现以上功能,I/O接口通常由下面几部分组成(见P184图7-1):(1)数据缓冲单元暂时存放CPU接口的数据(2)读/写控制电路接受CPU发来的命令,完成对接口内部的寄存器的读/写。二、接口的基本构成(3)命令/状态单元命令单元存放CPU接口的命令信息,状态单元存放接口的工作状态信息,供CPU查询。(二)I/O接口的主要功能(1)具有缓冲数据的传送功能,以实现高速CPU与慢速I/O设备之间数据传送时取得同步。(2)具有转换数据格式的功能。如串行与并行数据格式之间的转换。(3)具有信号量转换的功能。如数字量与模拟量之间的转换。(4)具有定时/计数功能。以满足总线对数据传送的时序要求等二、I/O接口的编址方式通常有下列两种端口编址方式:1.端口与存储器统一编址访问M的指令都能访问I/O,但端口地址占用了MEM的空间地址。2.端口独立编址端口的地址独立,不占用M的地址空间,但需要专用的I/O指令来访问I/O端口。80X86CPU采用独立编址方式,有两种寻址方式:(1)直接寻址可寻址256个端口,编码为00H--FFH。例如:INAL,0FFHOUT80H,AL(2)间接寻址使用16位地址码:从0000H--FFFFH,I/O端口地址用间接方式给出。例如:MOVDX,1000HOUTDX,AL三、I/O数据传送的控制方式I/O数据传送通常采用程序控制方式、中断控制方式和DMA(直接内存访问)控制方式。1.程序控制方式(无条件传送方式)是一种最简单的情况,它假设外设总是处于准备好的状态。输入输出操作完全在程序控制下进行的,用IN和OUT指令直接访问I/O端口。1、无条件传送的输入方式总认为来自外设的数据已出现在三态缓冲器的输入端。只要CPU对指定的端口执行输入(IN)指令。如下图:三态缓冲器地址译码器数据来自外设数据总线地址总线(A0~A9)YAENIORCPU2、无条件传送的输出方式CPU对指定的端口执行输出OUT指令。如下图:锁存器地址译码器到外设数据总线地址总线(A0~A9)YAENIOWCPU二、查询传送方式查询传送方式就是在传送数据前,先查询外设的状态,当外设准备好时才传送数据,否则,CPU等待。这种方式传送数据的效率低。启动外设读状态字数据传送传送结束准备就绪否?查询控制流程图NY查询输入的部分程序:POLL:MOVDX,STATUS_PORT;状态端口INAL,DXTESTAL,80HJEPOLLMOVDX,DATA_PORT;数据端口INAL,DX查询输出的部分程序:POLL:MOVDX,STATUS_PORT;状态端口INAL,DXTESTAL,80HJNEPOLLMOVDX,DATA_PORT;数据端口MOVAL,BUFFEROUTDX,AL三、中断传送方式当外部设备需要进行输入/输出操作时,向CPU发出中断请求信号,由CPU处理。这种方式避免了查询方式中CPU的等待状态,提高了CPU的效率。中断传送方式的最大优点是:CPU与外设可并行工作。例:CPU与打印机并行工作,如图所示:四、DMA(直接存储器存取)方式虽然中断方式可实现CPU与外设的并行工作,但每次中断都要保护断点、保护现场、恢复断点和恢复现场,这对高速外设来说速度太慢。另外CPU的效率也不高。DMA传送方式使外设和内存之间,在DMAC的控制下,直接进行数据交换而不通过CPU。在DMA方式下,CPU让出总线,系统总线由DMAC接管;DMA传送结束后,DMAC又将总线控制权还给CPU。第二节并行接口芯片8255A一、并行接口的特点:①并行接口最基本的特点是在多根数据线上以字节(字)为单位与I/O设备进行数据交换。例如:打印机接口,A/D、D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。②在并行接口中,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联络)信号线,以便进行互锁异步握手方式(即查询方式)的通信。③在并行接口中,一次传送8位或16位,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入/输出8位或16位。④并行传送信息,不要求固定的格式,这与串行通信有固定的数据格式不同。1.8255A的基本特性①8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片。②8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。③8255芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。④8255A有两条内容丰富的可编程命令(方式字和控制字),为用户如何根据外界条件来使用8255A构成多种接口电路,为组成的微机应用系统提供了灵活方便的编程环境。⑤8255A的PC口使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的大部分引脚被分配用作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又用做方式1、2的状态口。一、8255A的结构与引脚信号123456789101112131415161718192040393837363534333231302928272625242322218255APA4PA5PA6PA7WRD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3RESETPA3PA2PA1PA0RDCSA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2GND8255A是一个单+5V电源供电,40个引脚的双列直插式IC,其外部引线下图所示:数据总线缓冲读/写控制逻辑A组控制B组控制A口(8)C口(高4)C口(低4)B口(8)D0--D7RDWRA1A0RESETCSPA0--PA7PC7--PC4PC3--PC0PB7--PB08255A的内部结构图各部分功能说明如下:1.数据总线缓冲器用于CPU和8255A之间传递信息。2.读/写控制逻辑接受读/写控制和端口选择信号,控制8255的读/写操作。CS为片选信号,A1和A0决定8255A的4个地址:00A口,01B口,10C口,11方式控制字。3.输入/输出口共三个8位的I/O口:A口、B口、C口。A组控制A口和C口的高4位,B组控制B口和C口的低4位。A口和B口作输入/输出线用,C口除了作I/O线外还可作联络控制线用。面向地址总线的有:CS:片选信号。A1,A2:片内端口地址信号。面向控制总线的有:RD:读信号,低电平有效。WR:写信号,低电平有效。RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态。二、8255A的工作方式8255A有以下三种工作方式:1.方式0—基本输入/输出方式(A口、B口、C口)此方式适用于无条件数据传送或查询方式的数据传送。(一)方式0及其应用1、特点①方式0是一种基本输入/输出工作方式。通常不用联络信号,或不使用固定的联络信号。②在方式0下,彼此独立的两个8位和两个4位并行口,都能被指定作为输入或者输出用,共有16种不同的使用状态。③在方式0下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的某一根线完成某种联络功能,这与后面要讨论的在1方式、2方式下设置固定的专用联络信号线不同。④是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时既作输入又作输出。2、方式1——选通输入/输出方式(A口、B口)此时需要联络信号,适用于中断和查询方式的数据传送。1、特点①需设置专用的联络信号线或应答信号线,以便在I/O设备和CPU两侧进行联络。数据的输入输出都有锁存功能。②PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号引脚,用户不能再指定作其他用途。③各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。④输入/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。⑤单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。(1)方式1输入A口此时用C口的PC3--PC5作为联络信号。B口此时用C口的PC0--PC2作为联络信号。&PC4PC5PC3INTEAPA0~7PC6,7RDI/O2INTRAIBFASTBA8&PC2PC1PC0INTEBPB0~7RDINTRBIBFBSTBB8图5.45方式1输入时联络信号线定义方式1输入(端口A)方式1输入(端口B)STB:选通信号,有效时表示外设送数据到A、B口的输入锁存器。IBF:输入缓冲器满信号,有效时表示输入锁存器已收到外设送来的数据,当数据被CPU读取后,IBF被清除。INTR:中断请求信号,有效时向CPU请求中断方式输入数据。CPU方式1输入时的信息流向8255A输入设备DB7~DB0INTRIBFSTBPA/PB(2)方式1输入的工作时序方式1的工作时序如下图所示。其信号交接过程如下:tSTtpstSTBtSITtRITtRIBtPHSTBRDIBFINTR来自外设的输入数据图5.46方式1输入时工作时序图符号参数8255A单位MINMAXtSTSTB脉冲宽度500nstSTBSTB=0至IBF=1300nstSITSTB=1到INTR=1300nstRIBRD=1到IBF=0300nstRITRD=0到INTR=0400nsTPS数据提前STB无效的时间0nstPH数据保持时间180ns方式1输入工作时序表①数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发STB信号,由它把数据输入到8255A。②在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表