您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 事务文书 > 微型计算机和外部设备间的数据传输
第七章微型计算机和外设间的数据传输7.1概述•输入/输出:计算机通过外部设备同外部世界通信或交换数据。•I/O接口电路(简称I/O接口):把外部设备同计算机连接起来实现数据传送的控制电路。为什么要采用I/O接口电路?•外设处理信息的类型、速度、通信方式与CPU不匹配,不能直接挂在总线上,必须通过接口和系统相连。说明•计算机和存储器之间也是要交换信息的,但计算机和存储器之间并没有专门的接口电路,原因就在于计算机和存储器的工作速度基本上是匹配的,信号的形式也是一致的。如果存储器的速度较慢,可以通过增加等待周期来解决。•而外设和计算机的工作速度相差太大,不可能通过增加等待周期的方式来解决两者速度的不一致。使用接口电路则是必然的。7.2CPU和I/O设备间的信号•7.2.1CPU与I/O之间的接口信号•接口电路中的信息–1.数据信息–2.状态信息–3.控制信息•接口和端口为了区分以上所述的三种信息,在接口部件中都包含一组寄存器,分别对应不同的外设地址,CPU和外设交换信息时,将三种不同的信息,送入不同的寄存器:–数据送入数据寄存器,状态信息就送入状态寄存器,等等。–这些寄存器就称为端口(PORT)。不同的端口有不同的地址,不同的端口存放不同的信息。8086/8088CPU用地址总线的低16位作为对8位I/O端口的寻址线,所以8086CPU可访问的8位I/O端口有65536个。两个编号相邻的8位端口可以组成一个16位的端口。一个8位的I/O设备既可以连接在数据总线的高8位上,也可以连接在数据总线的低8位上。7.2.2I/O端口及其寻址方式•1.存储器映像的I/O寻址方式(I/O端口和存储器统一编址)–即存储器和外设共同分享CPU的寻址空间。一般,存储器占用较多的寻址空间,而外设(I/O接口)占用较少的寻址空间。–在这种情况下,CPU可以用对存储器的操作指令来对外设进行操作,两者对CPU来说,实际上是相同的。即不需要专用的对外设操作的指令。–外设和存储器的区别就在于地址。–MCS-51单片机就是这种编址方式。2.I/O端口和存储器统一编址•特点–I/O端口相当于内存的一部分,使内存容量减小。–对I/O端口的读/写与对存储器的读/写相同,所有可对内存操作的指令对I/O端口均可使用。–指令系统中不专设I/O指令。I/O端口单独编址•这时,存储器和I/O接口,各自都有自己的地址范围,而且这些地址在数值上可以是重叠的。也就是不能用地址来区别存储器和外设。•端口与存储器分别独立编址,端口不占用内存空间。•设有专门的I/O指令对端口进行读写,对内存操作的指令不能用于I/O端口。输入输出指令共有两条。输入指令IN用于从外设端口读入数据,输出指令OUT则向端口发送数据。无论是读入的数据或是准备发送的数据都必须放在寄存器AL(字节)或AX(字)中(不用AH寄存器)。输入输出指令可以分为两大类:一类是端口直接寻址的输入输出指令;另一类是端口通过DX寄存器间接寻址的输入输出指令。在直接寻址的指令中只能寻址256个端口(0~255),而间接寻址的指令中可寻址64K个端口(0~65535)。输入输出指令(第3章P58)输入指令IN(INputbyteorword)INAL,i8;字节输入,AL←端口i8INAX,i8;字输入,AL←端口i8,AH←端口i8+1INAL,DX;字节输入,AL←端口[DX]INAX,DX;字输入,AL←端口[DX],AH←[DX+1]注释:①“i8”从形式上来说是立即数,实际上是端口地址,因而指令的寻址方式为直接寻址。②“MOV”指令中,直接寻址要加中括号,输入输出指令不加。(MOVAL,[2000H];INAL,25H)③第三、四两条指令为寄存器间接寻址,但对DX不加中括号。(moval,[bx];inal,dx)地址FFH地址FFH1)输入指令IN输出指令OUT(OUTputbyteorword)OUTi8,AL;字节输出,端口i8←ALOUTi8,AX;字输出,端口i8←AL,端口i8+1←AHOUTDX,AL;字节输出,端口[DX]←ALOUTDX,AX;字输出,端口[DX]←AL,[DX+1]←AH注释:①输入输出指令从寻址方式来说分成两种:直接寻址和寄存器DX间接寻址。如果要访问的端口地址在0~255之间,既可以用直接寻址,也可以用DX间接寻址;如果要访问的端口地址≥256,则只能用DX间接寻址。②另外,输入输出指令中可用的数据寄存器只能是AL和AX,其他寄存器不可使用。③不影响标志。2)输出指令OUT1.INAL,205H7.MOVAX,55AAH2.INAX,20HMOVDX,3FCH3.INAL,25HOUTDX,AX4.INAH,0FFH8.MOVAH,865.MOVDX,2050HOUT25H,AHOUTDX,AL9.INAL,25H6.MOVDX,2050HMOVBL,ALINBX,DXINAL,36H(OUTDX,BX)MOVBH,AL(×)(×)(×)(×)(×)例题:(对错混合)7.3CPU和外设之间的数据传送方式•7.3.1无条件传送方式–无条件是指CPU不管外设的状态,在需要和外设交换信息的时候,就用输入或输出指令和外设交换信息。–在这种方式下,CPU和外设之间只有数据信息的传送,没有状态信息的传送。–但无条件传送,不等于不需要接口电路,只是接口电路可以比较简单,因为只有数据的通道,一般就只有输出锁存器和输入缓冲器。例7-1如下图所示为采用无条件传送方式控制的电路,输入接口中自带有数据缓冲器,输出接口中自带有锁存器,控制开关K0~K2打开则对应发光二极管Q0~Q2亮,开关闭合则对应发光二极管不亮。编写这段控制程序。解:DON:INAL,IN_PORT;读入B口开关状态XORAL,0FFH;求反OUTOUT_PORT,AL;点亮对应发光二极管JMPDONHLT7.3.2查询传送方式(异步传送方式)这种方式,CPU要遵循“先查询,后传送”的原则,保证只有在外设已经是在“准备好”状态,才开始传送数据。–查询式传送的一般流程:•先从状态口读入状态字;•如果状态是“准备好”,开始传送;•如果状态是“没有准备好”,则继续查询,直到“准备好”,开始传送。•1.查询式输入•查询式输入的程序流程图:例7-2查询传送输入接口电路如下图所示:8位锁存器与8位三态缓冲器构成数据寄存器,该接口的输入端连接输入设备,输出端直接与系统的数据总线相连。状态寄存器由D触发器和1位三态缓冲器构成。输入设备可通过控制信号对该状态口进行控制,CPU可通过数据线D7访问该状态口。编写查询输入控制程序。•查询输入的部分程序:MOVDX,STATUS_PORT;DX指向状态端口START:INAL,DX;读状态端口信息TESTAL,80H;测试状态标志位D7JZSTART;D7=0,外设未准备好,继续查询MOVDX,DATA_PORT;DX指向数据端口INAL,DX;从数据端口输入数据RET输入输出传送方式•2.查询式输出•查询式输出流程图:例7-3下图所示接口电路中:8位锁存器作为数据寄存器,其输入端与数据线相连,输出端连接输出设备。状态寄存器由D触发器和1位三态缓冲器构成,CPU则可利用数据线D0输入该状态口的信息。编写查询输出控制程序。查询式输出的相应程序段为:MOVDX,STATUS_POR;DX指向状态端口START:INAL,DX;读状态端口信息TESTAL,01H;测试状态标志位D7,JZSTART;D7=0,继续查询MOVDX,DATA_PORT;DX指向数据端口MOVAL,BUF;取数据OUTDX,AL;向外设输出数据RET解:当输出设备将数据输出后,会发出一个ACK信号,使D触发器翻转为0(BUSY信号由1变0会触发ACK翻转)。CPU查询到这个状态信息后,知道外设空闲,于是就执行输出指令,将新的输出数据送至8位锁存器。同时,将D触发器置为1,通知外设进行数据输出操作,同时,在输出设备尚未完成输出之前,一直维持D触发器输出为1,阻止CPU输出新的数据。•查询方式的优点:CPU和外设之间可以很好地配合工作。•缺点:CPU要长期地查询外设的状态,查询实际上就是一种等待。CPU长期的等待会影响CPU的工作效率。•例7-4如下图所示,试编程实现将48000H为首地址的顺序100个单元的数据,利用查询方式输出到外设。解:程序如下:START:MOVAX,4000HMOVDS,AXMOVSI,8000HMOVCX,100GOON:MOVDX,00F1HWAIT:INAL,DXANDAL,01HJZWAITMOVAL,[SI]MOVDX,00F0HOUTDX,ALINCSILOOPGOONRET7.3.3中断传送方式•中断方式是由外设向CPU发出要求交换数据的请求,即中断请求。CPU收到中断请求后,中断当前的工作,为外设服务。服务结束(输入或输出)后,继续原来的工作。•中断方式不要求CPU等待或查询,可以大大地提高CPU工作效率。但接口电路比较复杂。7.3.4DMA方式•DMA方式,是由DMA控制器来控制数据从外设到存储器的直接传送。CPU不参与DMA传送的控制。•中断方式仍然是指令控制下的传送,为了进一步提高传送速度,希望传送直接是在硬件控制下完成。•DMA方式是速度最快的外设和存储器交换信息的方式。1.DMA传送的工作原理2.DMA控制器的基本功能(1)能接受外设的DMA请求信号DMARQ,并能向外设发出DMA响应信号DMAAK;(2)能向CPU发出总线请求信号(HRQ),当CPU发出总线响应信号(HLDA)后能接管对总线的控制权,进入DMA方式;(3)能发出地址信息,对存储器寻址并修改地址指针;(4)能向存储器和外设发出读/写控制信号;(5)能决定传送的字节数,并能判断DMA传送是否结束;(6)能发出DMA结束信号,释放总线,让CPU重新获得总线控制权。3.DMA操作方式(1)单字节方式在单字节操作方式下,DMA控制器操作每次只传送一个字节。即获得总线控制权后,每传送完一个字节的数据,便将总线控制权还给CPU,按这种工作方式,即使有一个数据块要传送,也只能传送完一个字节后,由DMA控制器重新向CPU申请总线。(2)字组方式字组操作方式也叫请求方式或查询方式。这种方式下一个DMA请求能够连续传送一批数据。在此期间,DMA控制器一直保持总线控制权。当DMA请求无效,数据传送结束,或检索到匹配字节,以及外加一个过程结束信号时,DMA控制器便释放总线控制权。(3)连续方式连续操作方式是指在数据块传送的整个过程中,不管DMA请求是否撤消,DMA控制器始终控制着总线。除非传送结束或检索到“匹配字节”,才把总线控制权交回CPU。在传送过程中,当DMA请求失效时,DMA控制器将等待它变为有效,却并不释放总线。简单I/O接口扩展实验•原理框图CPU74LS24474LS273……K1K2K8LED1LED2LED8三大总线I/O接口外设内存简单I/O接口扩展实验•1、题目要求:当只有K1向上时,LED1亮;当只有K2向上时,LED2亮;当K1、K2均向上时,LED1、LED2均不亮;当K1、K2均向下时,LED1、LED2均亮。•2、接线:CS244接CS0(地址04A0~04AF偶地址有效),CS273接CS1(地址04B0~04BF偶地址有效);K1接IN0,K2接IN1;LED1接D0,LED2接D1。•注:1)、对LED灯来说,输入0时灯亮,输入1时灯灭。2)、对开关来说,开关向上拨时输出0,开关向下拨时输出1。简单I/O接口扩展实验•3、分析K1K2LED1LED20011010110101100简单I/O接口扩展实验•编程codesegmentpublicassumecs:codeorg100hstart:movdx,04a0h;74LS244地址inal,dx;读输入开关量ANDal,03hcmpal,00hJZQ1CMPAL,01HJZQ2CMPAL,02HJZQ3MOVAL,00HJMPABCQ1:MOVAL,0
本文标题:微型计算机和外部设备间的数据传输
链接地址:https://www.777doc.com/doc-3181874 .html