《微机原理输入和输出学习教案.pptx》由会员分享,可在线阅读,更多相关《微机原理输入和输出学习教案.pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理输入微机原理输入(shr)和输出和输出第一页,共52页。这种方式的优点是:(1)CPU对外设的操作可使用全部的存储器操作指令,故指令多,使用方便。例如可以对外设中的数据(存于外设的寄存器中)进行算术和逻辑运算,进行循环或移位等。(2)内存和外设的地址分布图是同一个。(3)不需要专门的输入输出指令以及区分是存储器还是I/O操作的控制(kngzh)信号。缺点是:外设占用了内存单元,使内存容量减小。第1页/共52页第二页,共52页。2端口寻址的输入输出方式在这种工作方式中:CPU有专门的I/O指令(zhlng),用地址来区分不同的外设。但要注意实际上是以端口(Port)作为地址的单元,因为一
2、个外设不仅有数据寄存器还有状态寄存器和控制命令寄存器,它们各需要一个端口才能加以区分,故一个外设往往需要数个端口地址。CPU用地址来选择外设。要寻址的外设的端口地址,显然比内存单元的地址要少得多。所以,在用直接寻址方式寻址外设时,它的地址字节,通常总要比寻址内存单元的地址少一个字节,因而节省了指令(zhlng)的存储空间,缩短了指令(zhlng)的执行时间。第2页/共52页第三页,共52页。7.1.2 CPU与I/O设备之间的接口信息1数据(Data)在微型机中,数据通常为8位、16位或32位。它大致可以分为三种基本类型:(1)数字(shz)量(2)模拟量(3)开关量2状态信息(Status)
3、在输入时,有输入设备是否准备好(Ready)的状态信息;在输出时,有输出设备是否有空(Empty)的状态信息,若输出设备正在输出,则以忙(Busy)指示等等。第3页/共52页第四页,共52页。3控制信息(Control)控制输入输出设备(shbi)启动或停止等等。状态信息和控制信息与数据是不同性质的信息,必须要分别传送。但在大部分微型机中(8086也如此),只有通用的IN和OUT指令,因此,外设的状态也必须作为一种数据输入;而CPU的控制命令也必须作为一种数据输出。所以,一个外设往往要几个端口地址,CPU寻址的是端口,而不是笼统的外设。第4页/共52页第五页,共52页。7.1.3 CPU的输入
4、输出时序通常I/O接口电路(dinl)的工作速度较慢,往往要插入等待状态。7.1.4 CPU与接口电路(dinl)间数据传送的形式CPU与外设的信息交换称为通信(Communication)。基本的通信方式有两种:并行通信数据的各位同时传送;串行通信数据一位一位顺序传送。第5页/共52页第六页,共52页。第6页/共52页第七页,共52页。7.2 CPU与外设数据(shj)传送的方式7.2.1 查询传送方式CPU与I/O设备的工作往往是异步的,很难保证当CPU执行输入操作时,外设已把要输入的信息(xnx)准备好了;而当CPU执行输出时,外设的寄存器(用于存放CPU输出数据的寄存器)一定是空的。所
5、以,通常程序控制的传送方式在传送之前,必须要查询一下外设的状态,当外设准备就绪了才传送;若未准备好,则CPU等待。第7页/共52页第八页,共52页。1查询式输入在输入时,CPU必须了解(lioji)外设的状态,看外设是否准备好。查询式输入(shr)程序流程图第8页/共52页第九页,共52页。查询式输入接口(ji ku)电路第9页/共52页第十页,共52页。查询部分的程序如下:POLL:INAL,STATUS_PORT;从状态端口输入状态信息TESTAL,80H;检查(jinch)READY是否为1JEPOLL;未READY,循环INAL,DATA_PORT;READY,从数据端口输入数据第10
6、页/共52页第十一页,共52页。2查询式输出同样的,在输出时CPU也必须了解外设的状态,看外设是否有空(即外设不是正处在输出状态,或外设的数据寄存器是空的,可以接收CPU输出的信息),若有空,则CPU执行(zhxng)输出指令,否则就等待。第11页/共52页第十二页,共52页。查询式输出(shch)接口电路第12页/共52页第十三页,共52页。查询(chxn)式输出程序流程图第13页/共52页第十四页,共52页。查询部分的程序为:POLL:INAL,STATUS_PORT;从状态端口输入状态信息TESTAL,80H;检查BUSY位JNEPOLL;BUSY则循环(xnhun)等待MOVAL,ST
7、ORE;否则,从缓冲区取数据OUTDATA_PORT,AL;从数据端口输出其中,STATUS_PORT是状态端口的符号地址;DATA_PORT是数据端口的符号地址;STORE是存放数据单元的地址偏移量。第14页/共52页第十五页,共52页。一个采用查询方式的数据采集系统 一个有8个模拟量输入(shr)的数据采集系统,用查询的方式与CPU传送信息,其电路如图所示。查询方式的数据采集(cij)系统 第15页/共52页第十六页,共52页。实现这样的数据采集过程的程序为:START:MOV DL,0F8H;设置启动A/D转换的信号LEA DI,DSTOR;存放输入数据缓冲区的地址(dzh)偏移量DIA
8、GAIN:MOV AL,DL AND AL,0EFH;使D4=0 OUT 4,AL;停止A/D转换 CALL DELAY;等待停止A/D操作的完成 MOV AL,DL OUT4,AL;启动A/D,且选择模拟量A0POLL:IN AL,2;输入状态信息SHR AL,1JNC POLL ;若未READY,程序循环等待IN AL,3 ;否则,输入数据STOSB ;存至内存INC DL ;修改多路开关(kigun)控制信号,指向下一个模拟量JNE AGAIN ;8个模拟量未输入完,循环已完,执行别的程序段 第16页/共52页第十七页,共52页。7.2.2 中断传送方式在上述的查询传送方式中,CPU要不
9、断地询问外设,当外设没有准备好时,CPU要等待,不能进行别的操作,这样就浪费了CPU的时间。而且许多外设的速度是较低的,在等待过程中,CPU本可以执行大量的指令。为了提高CPU的效率,可采用中断的传送方式:在输入、输出时,若外设已准备好,则由外设向CPU 发出中断请求,CPU就暂停原执行的程序(即实现中断),转去执行输入或输出操作(中断服务),待输入输出操作完成后即返回,CPU再继续执行原来的程序。这样就可以大大提高CPU的效率,而且允许CPU与外设(甚至多个(du)外设)同时工作。第17页/共52页第十八页,共52页。中断传送(chun sn)方式接口电路 第18页/共52页第十九页,共52
10、页。7.2.3 直接数据通道传送(DMA)中断(zhngdun)传送仍是由CPU通过程序来传送,每次要保护断点,保护现场需用多条指令,每条指令要有取指和执行时间。这对于一个高速I/O设备,以及成组交换数据的情况,例如磁盘与内存间的信息交换,就显得速度太慢了。第19页/共52页第二十页,共52页。所以希望用硬件在外设与内存间直接进行数据交换(DMA),而不通过CPU,这样数据传送的速度的上限就取决于存储器的工作速度。但是,通常系统的地址和数据总线以及一些控制(kngzh)信号线是由CPU管理的。在DMA方式时,就希望CPU把这些总线让出来(即CPU连到这些总线上的线处于第三态高阻状态),而由DM
11、A控制(kngzh)器接管,控制(kngzh)传送的字节数,判断DMA是否结束,以及发出DMA结束等信号。这些都是由硬件实现的。第20页/共52页第二十一页,共52页。DMA工作(gngzu)流程图 第21页/共52页第二十二页,共52页。DMA控制器方框图 第22页/共52页第二十三页,共52页。DMA传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速(o s)的外设之间进行DMA传送第23页/共52页第二十四页,共52页。1DMA控制器的基本功能DMAC是控制存储器和外部设备之间直接高速地传送数据的硬件电路,它应能取代CPU,用硬件完成各项功能。具体地说
12、应具有如下功能:(1)能接收外设的请求,向CPU发出DMA请求信号。(2)当CPU发出DMA响应信号之后,接管对总线的控制,进入(jnr)DMA方式。第24页/共52页第二十五页,共52页。(3)能寻址存储器,即能输出地址(dzh)信息和修改地址(dzh)。(4)能向存储器和外设发出相应的读/写控制信号。(5)能控制传送的字节数,判断DMA传送是否结束。(6)在DMA传送结束以后,能结束DMA请求信号,释放总线,使CPU恢复正常工作。第25页/共52页第二十六页,共52页。2DMA传送方式各种DMAC一般都有两种基本的DMA传送方式:(1)单字节方式:每次DMA请求只传送一个字节数据,每传送完
13、一个字节,都撤除DMA请求信号,释放总线。(2)字节(字符)组方式:每次DMA请求连续传送一个数据块,待规定长度(chngd)的数据块传送完了以后,才撤除DMA请求,释放总线。第26页/共52页第二十七页,共52页。7.3 DMA控制器8237的工作周期8237在设计时规定它有两种主要的工作周期(或工作状态),即空闲周期和有效(yuxio)周期。每一个周期又是由若干个时钟周期所组成的。第27页/共52页第二十八页,共52页。8237的工作方式8237在DMA传送(chun sn)时有四种工作方式。1单字节传送(chun sn)方式这种方式一次只传送(chun sn)一个字节。数据传送(chun
14、 sn)后字节计数器减量,地址要相应修改(增量或减量取决于编程)。HRQ变为无效,释放系统总线。若传送(chun sn)使字节数减为0,TC发生或者终结DMA传送(chun sn),或重新初始化。第28页/共52页第二十九页,共52页。2块传送方式在这种传送方式下,8237由DREQ启动后就连续(linx)地传送数据,直至字节数计数器减到零产生TC(Terminal Count),或者由外部输入有效的信号来终结DMA传送。第29页/共52页第三十页,共52页。3请求传送方式在这种工作方式下,8237可以进行连续的数据传送。当出现以下三种情况之一时停止传送。(1)字节数计数器减到0,发生TC;(
15、2)由外界送来一个有效(yuxio)的 信号;(3)外界的DREQ信号变为无效(外设的数据已传送完)。第30页/共52页第三十一页,共52页。4级连方式这种方式用于通过级连以扩展(kuzhn)通道的情况。第二级的HRQ和HLDA信号连到第一级的DREQ和DACK上。在前三种工作方式下,DMA传送有三种类型:DMA读、写和校验。第31页/共52页第三十二页,共52页。第32页/共52页第三十三页,共52页。8237的寄存器组和编程1现行地址寄存器每一个通道有一个16位的现行地址寄存器。在这个寄存器中保存着用于DMA传送(chun sn)的地址值,在每次传送(chun sn)后,这个寄存器的值自动
16、增量或减量。这个寄存器的值可由CPU写入或读出(分两次连续操作)。2现行字节数寄存器每个通道有一个16位的现行字节数寄存器,它保持着要传送(chun sn)的字节数,在每次传送(chun sn)后此寄存器减量。当这个寄存器的值减为零时,TC将产生。这个寄存器的值在编程状态可由CPU读出和写入。第33页/共52页第三十四页,共52页。3基地址和基字节数寄存器每一个通道有一对16位的基地址和基字节数寄存器,它们存放着与现行寄存器相联系的初始值。4命令(mng lng)寄存器这是一个8位寄存器,用以控制8237的工作。命令(mng lng)字的格式如图所示。第34页/共52页第三十五页,共52页。第
17、35页/共52页第三十六页,共52页。5模式寄存器每一个(y)通道有一个(y)6位的模式寄存器以规定通道的工作模式,如图所示。在编程时用最低两位来选择写入哪个通道的模式寄存器。第36页/共52页第三十七页,共52页。第37页/共52页第三十八页,共52页。6请求寄存器8237的每个通道有一条硬件的DREQ请求线,当工作在数据块传送方式时,也可以由软件(run jin)发出DREQ请求。所以,在8237中有一种请求寄存器,如图所示。每个通道的软件(run jin)请求可以分别设置。软件(run jin)请求是非屏蔽的,它们的优先权同样受优先权逻辑的控制。第38页/共52页第三十九页,共52页。第
18、39页/共52页第四十页,共52页。7屏蔽寄存器每个通道外设通过DREQ线发出的请求,可以(ky)单独地屏蔽或允许,所以在8237中有一个屏蔽寄存器,如图所示。第40页/共52页第四十一页,共52页。屏蔽(pngb)寄存器第41页/共52页第四十二页,共52页。8状态(zhungti)寄存器8237中有一个可由CPU读取的状态(zhungti)寄存器,如图所示。第42页/共52页第四十三页,共52页。9临时寄存器在存储器到存储器的传送方式下,临时寄存器保存从源单元(dnyun)读出的数据,又由它写入至目的单元(dnyun)。在传送完成时,它保留传送的最后一个字节,此字节可由CPU读出。10软件
19、命令8237在编程状态还有两种软件命令,软件命令不需要通过数据总线写入控制字,而由8237直接对地址和控制信号进行译码。(1)清除高/低触发器(2)主清除命令第43页/共52页第四十四页,共52页。118237的编程步骤(1)输出主清除命令。(2)写入基与现行(xinxng)地址寄存器。(3)写入基与现行(xinxng)字节数寄存器。(4)写入模式寄存器。(5)写入屏蔽寄存器。(6)写入命令寄存器。(7)写入请求寄存器。若有软件请求,就写入指定通道,可以开始DMA传送的过程。若无软件请求,则在完成了(1)(6)的编程后,由通道的DREQ启动DMA传送过程。第44页/共52页第四十五页,共52页
20、。编程举例若要利用通道0,由外设(磁盘)输入32KB的一个数据块,传送至内存8000H开始的区域(增量传送),采用块连续传送的方式,传送完不自动初始化,外设的DREQ和DACK都为高电平有效。要编程首先要确定端口地址。地址的低4位用以区分8237的内部(nib)寄存器,高4位地址A7A4经译码后,连至选片端CS,假定选中时高4位为5。第45页/共52页第四十六页,共52页。按上述(shngsh)要求,可确定如下控制字:模式控制字84H 屏蔽字00H 命令字A0H初始化程序如下:第46页/共52页第四十七页,共52页。OUT 5DH,AL;输出主清除(qngch)命令MOVAL,00HOUT50
21、H,AL;输出基和现行地址的低8位MOVAL,80HOUT50H,AL;输出基和现行地址的高8位MOVAL,00HOUT51H,ALMOVAL,80H第47页/共52页第四十八页,共52页。OUT51H,AL;给基和现行(xinxng)字节数赋值MOVAL,84HOUT5BH,AL;输出模式字MOVAL,00HOUT5AH,AL;输出屏蔽字MOVAL,0A0HOUT58H,AL;输出命令字 第48页/共52页第四十九页,共52页。精品(jn pn)课件!第49页/共52页第五十页,共52页。精品(jn pn)课件!第50页/共52页第五十一页,共52页。作业(zuy)1.CPU和输入输出设备之间传送的信息有哪几类?2.CPU和外设之间的数据传送方式有那几种?实际(shj)选择某种传输方式时,只要依据是什么?具体采用哪种传送方式,取决于数据传送的速度和数量.当外部设备的信息传送速度较低或要求实时处理时,采用中断方式;当外设速度与CPU想当时,采用查询方式;当要求传送速度快且是批量传送时,采用DMA方式.3.设一个接口的输入端口地址为0100H,状态端口地址为0104H,状态端口中D5位为1表示输入缓冲区中有一个字节准备好,可以输入.设计具体程序以实现查询式输入.第51页/共52页第五十二页,共52页。
限制150内