您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第7章 输入输出接口(南通大学)(陈继红)
第7章输入输出接口第7章输入输出接口7.1I/O接口概述7.2简单I/O接口芯片7.3CPU与外设之间的数据传输方式7.4DMA控制器第7章输入输出接口7.1I/O接口概述I/O接口电路是计算机和外设之间传送信息的部件,每个外设部件都要通过相应的接口与系统总线相连,实现与CPU之间的数据交换。接口技术专门研究CPU和外设之间的数据传送方式、接口电路的工作原理和使用方法等。7.1.1输入/输出信息1.数据信息CPU和外设交换的基本信息是数据。数据信息大致可分为数字量、模拟量和开关量三种类型。2.状态信息状态信息反映了外设当前所处的工作状态,是外设发送给CPU的,用来协调CPU和外设之间的操作。3.控制信息控制信息是由CPU发送给外设,用以控制外设工作。第7章输入输出接口7.1.2I/O接口的主要功能输入接口:只有当CPU从该接口输入数据时才允许选定的输入接口将数据送到总线上由CPU读取,其它时间不得占用总线。因此一般使用三态缓冲器(三态门)。输出时,CPU通过总线将数据传送到输出接口内的数据寄存器中,然后由外设读取。在CPU向它写入新数据之前该数据将保持不变。数据寄存器一般由锁存器实现,如74LS373。1.对输入输出数据进行缓冲和锁存2.对信号的形式和数据的格式进行变换由计算机直接处理的信号为一定范围内的数字量、开关量和脉冲量,它与外设所使用的信号可能不同。所以,在输入输出时,必须将它们转变成适合对方的形式。第7章输入输出接口4.提供联络信号3.对I/O端口进行寻址I/O接口处在CPU和外设之间,既要面向CPU进行联络,又要面向外设进行联络。联络的目的是使CPU与外设之间数据传送的速度匹配。联络的具体内容有:状态信息、控制信息和请求信息。在一个微机系统中,通常会有多个外设。而在一个外设的接口电路中,又可能有多个端口(Port),每个端口用来保存和交换不同信息。每个端口必须有各自的端口地址以便CPU访问。因此,接口电路中应包含地址译码电路使CPU能够寻址到每个端口。第7章输入输出接口7.1.3I/O接口的结构数据端口:用于数据信息输入输出的端口。状态端口:CPU通过状态端口了解外设或接口部件本身状态。控制端口:CPU通过控制端口发出控制命令,以控制接口部件或外设的动作。第7章输入输出接口7.1.4I/O的寻址方式1.I/O端口与内存统一编址I/O端口与内存统一编址,即I/O端口的地址和内存的地址在同一个地址空间内。所有访问内存的指令都可访问I/O端口,其缺点是占去内存部分空间且难以区分某条指令访问的是内存还是I/O端口。2.I/O端口独立编址I/O端口有独立的地址空间,即I/O端口的地址和内存的地址不在同一个地址空间内。系统需有专门的输入/输出的指令,需要相应的控制电路和控制信号。好处是I/O端口不占用内存部分地址空间,缺点是需增加硬件电路的复杂性,并且I/O指令一般较少、不如访问内存的指令丰富。第7章输入输出接口7.2简单I/O接口芯片1.锁存器74LS37374LS373是由8个D触发器组成的具有三态输出和驱动的锁存器,使能端G有效时,将输入端(D端)数据打入锁存器,当输出允许端有效时,将锁存器中锁存的数据送到输出端Q;当=1时输出为高阻。常用的锁存器还有74LS273,Intel8282等。OEOE第7章输入输出接口74LS244是一种三态输出的缓冲器(或称单向线驱动器),74LS244逻辑电路及引脚如图所示,内部线驱动器分为两组,分别有四个输入端(1A1~1A4,2A1~2A4)和四个输出端(1Y1~1Y4,2Y1~2Y4),分别由使能端、控制。当为低电平,1Y1~1Y4的电平与1A1~1A4的电平相同,当为低电平,2Y1~2Y4的电平与2A1~2A4的电平相同;当(或)为高电平时,输出1Y1~1Y4(或2Y1~2Y4)为高阻态。常用的缓冲器还有74LS240,74LS241等。2.缓冲器74LS244G1G2G1G2G1G2第7章输入输出接口第7章输入输出接口74LS245是一种三态输出的数据收发器(或称双向线驱动器),74LS245逻辑电路及引脚如图所示,16个三态门每两个三态门组成一路双向驱动。由、DIR两个控制端控制,控制驱动器有效或高阻态;当端有效时DIR控制驱动器的驱动方向,DIR=0时,驱动方向为B→A;DIR=1时,驱动方向为A→B。74LS245的真值表如表所示。常用的数据收发器还有74LS243、Intel8286、Intel8287等。GGG使能方向控制DIR传送方向LLB→ALHA→BH×隔开74LS245真值表3.数据收发器74LS245G第7章输入输出接口第7章输入输出接口7.3CPU与外设之间的数据传输方式微机系统与外设之间的数据传输过程在程序的控制下进行。特点:以CPU为中心,由输入/输出程序实现数据传输。两种方式:无条件传输条件传输(查询方式)7.3.1程序方式第7章输入输出接口1.无条件传输方式一般用于能够确信外设已经准备就绪的场合。如读取开关的状态,LED的显示等。第7章输入输出接口【例题7.1】硬件如下图所示,不断扫描开关Si,当开关闭合时,点亮相应的LEDi,当地址为200H时,为低电平。分析:开关Si闭合时,输入为低电平“0”,而点亮相应LEDi,则输出为高电平“1”,输入与输出的关系相反。编写程序时,若采取先读入开关状态,再分析每一位的状态,然后决定LED的亮灭,则该程序显得非常繁琐。Y第7章输入输出接口CODESEGMENTASSUMECS:CODEMAINPROCFARSTART:PUSHDSMOVAX,0PUSHAXAGAIN:MOVAH,1;读键盘缓冲区字符INT16HCMPAL,1BH;若为“Esc”键,则退出JZEXITMOVDX,200HINAL,DX;读取开关状态NOTAL;取反OUTDX,AL;输出控制LEDJMPAGAINEXIT:RET;返回DOSMAINENDPCODEENDSENDSTART第7章输入输出接口2.条件传输方式CPU不断读取并测试外设的状态,如果外设处于“准备好”状态(输入设备)或“空闲”状态(输出设备),则输入或输出数据。对于条件传输来说,一个条件传输数据的过程一般由三个环节组成:(1)CPU从接口中读取状态字;(2)CPU检测状态字的相应位是否满足“就绪”条件,若不满足,则转1;(3)若状态位表明外设已处于“就绪”状态,则传输数据。第7章输入输出接口【例题7.2】从终端往缓冲区输入1行字符,当遇到回车符(0DH)或超过81个字符时,输入结束,并自动加上一个换行符(0AH)。如果在输入的81个字符中没有回车符,则在终端上输出信息“BUFFEROVERFLOW”。设终端接口的数据输入端口地址为32H,数据输出端口地址为34H,状态端口地址为36H。状态寄存器的D1=1,表示输入缓冲器已准备好数据,CPU可读取数据;状态寄存器的D0=1,表示输出缓冲器已空,CPU可往终端输出数据。终端接口电路具有根据相应操作对状态寄存器自动置1和清0功能。具体程序如下:第7章输入输出接口DATASEGMENTMESSDB‘BUFFEROVERFLOW’,0DH,0AHBUFFERDB82DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,BUFFERMOVCX,81INPUT:INAL,36H;读状态端口TESTAL,02H;测输入状态D1位JZINPUT;未“准备好”转INPUT第7章输入输出接口INAL,32H;读取输入字符MOV[SI],AL;输入字符存缓冲区INCSICMPAL,0DH;输入字符为回车否?LOOPNEINPUT;不是回车且接收字符个数未超过81,转INPUTJNEOVERFLOW;不是回车且接收字符个数超过81,转OVERFLOWMOVAL,0AH;是回车且接收字符个数≤81,存换行符MOV[SI],ALJMPEXIT;转程序结束处理OVERFLOW:MOVCX,17;初始化输出字符个数LEASI,MESS;初始化显示字符串首址OUTPUT:INAL,36H;读状态端口TESTAL,01H;测输出状态D0位JZOUPUT;输出缓冲器未空,转OUTPUT第7章输入输出接口MOVAL,[SI];取出输出字符INCSIOUT34H,AL;输出字符LOOPOUTPUTEXIT:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART第7章输入输出接口7.3.2中断方式程序控制传输方式的缺点是CPU和外设只能串行工作,各外设之间也只能串行工作。在中断传输方式下,当输入设备将数据准备好或输出设备可以接收数据时,便向CPU发出中断请求,使CPU暂时停止执行当前程序,而去执行数据输入/输出的中断服务程序,与外设进行数据传输操作,中断服务程序执行完后,CPU又返回继续执行原来的程序。利用中断方式进行数据传输,CPU不必花费大量时间在两次输入或输出过程间对接口进行状态测试和等待,从而大大提高了CPU的效率。第7章输入输出接口7.3.3直接存储器存取(DMA)方式DMA方式是指不经过CPU的干预,直接在外设和内存之间进行数据传输的方式。1次DMA传输需要执行1个DMA周期(相当于1个总线读或写周期)。实现DMA方式,需要专门的接口器件来控制外设接口和内存之间的数据传输,它被称为DMA控制器(DMAC)。第7章输入输出接口采用DMA方式进行数据传输时,使用系统的数据总线、地址总线和控制总线。在用DMA方式进行数据传输前,DMAC向CPU发出申请使用系统总线的请求。当CPU同意并让出系统总线控制权后,DMAC接管系统总线,实现外设与内存之间的数据传输。传输完毕,将总线控制权交还给CPU。第7章输入输出接口DMA操作的基本方法有三种:(1)CPU停机方式。指在DMA传送时,CPU停止工作,不再使用总线。该方式比较容易实现,但由于CPU停机,可能影响到某些实时性很强的操作,如中断响应等。(2)周期挪用方式。利用窃取CPU不进行总线操作的周期,来进行DMA传送。这一方式不影响CPU的操作,但需要复杂的时序电路,而且数据传送过程是不连续的和不规则的。(3)周期扩展方式。该方式需要专门时钟电路的支持,当传送发生时,该时钟电路向CPU发送加宽的时钟信号,CPU在加宽时钟周期内操作不往下进行;另一方面,仍向DMAC发送正常的时钟信号,DMAC利用这段时间进DMA传送。第7章输入输出接口*7.4DMA控制器直接存储器存取(DMA)是一种外设与存储器之间直接传输数据的方法,适用于需要数据高速大量传送的场合。DMA数据传送利用DMA控制器进行控制,不需要CPU直接参与。Intel8237A是一种高性能的可编程DMA控制器芯片。在5MHz时钟频率下,其传送速率可达1.6MB/s。每片8237A有4个独立的DMA通道,即有4个DMA控制器(DMAC)。每个DMA通道具有不同的优先权,都可以允许和禁止。每个通道有4种工作方式,一次传送的最大长度可达64KB。多片8237A可以级连,任意扩展通道数。第7章输入输出接口7.4.18237A的内部结构和引脚8237A要在DMA传送期间作为系统的控制器件,所以,它的内部结构和外部引脚都相对比较复杂。从应用角度看,内部结构主要由两类寄存器组成。一类是通道寄存器,它们是现行地址寄存器、现行字节数寄存器和基地址寄存器、基字节数寄存器,这些寄存器都是16位的寄存器。另一类是控制和状态寄存器,它们是方式寄存器(6位寄存器)、命令寄存器(8位)、状态寄存器(8位)、屏蔽寄存器(4位)、请求寄存器(4位)、临时寄存器(8位)。第7章输入输出接口第7章输入输出接口需要说明的引脚:DMA通道请求(DREQ0~DREQ3):每个通道对应一个DREQ信号,用以接受外设的DMA请求。DMA通道响应(DACK0~DACK3):每个通道对应一个DACK信号,是8237A对外设DMA请求的响应信号。总线请求(HRQ):当外设的I/O接口
本文标题:第7章 输入输出接口(南通大学)(陈继红)
链接地址:https://www.777doc.com/doc-3681409 .html