资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 输入和输出7.1 7.1 7.1 7.1 概述概述概述概述7.2 CPU7.2 CPU7.2 CPU7.2 CPU与外设数据传送的方式与外设数据传送的方式与外设数据传送的方式与外设数据传送的方式7.3 DMA7.3 DMA7.3 DMA7.3 DMA控制器控制器控制器控制器7.1 概述概述7.1.1 7.1.1 输入输出的寻址方式输入输出的寻址方式CPUCPU寻址外设可以有两种方式。寻址外设可以有两种方式。1 1存储器对应输入输出方式存储器对应输入输出方式在在这这种种方方式式中中,把把一一个个外外设设端端口口作作为为存存储储器器的的一一个个单单元元来来对对待待,故故每每一一个个外外设设端端口口占占有有存存储储器器的的一一个个地地址址。从从外外部部设设备备输输入入一一个个数数据据,作作为为一一次次存存储储器器读读的的操操作作;而而向向外外部部设设备备输输出出一一个个数数据据,则则作作为为一一次次存存储器写的操作。储器写的操作。这种方式的优点是:这种方式的优点是:(1 1)CPUCPU对外设的操作可使用全部的存储器操作对外设的操作可使用全部的存储器操作指令,故指令多,使用方便。例如可以对外设中的数指令,故指令多,使用方便。例如可以对外设中的数据(存于外设的寄存器中)进行算术和逻辑运算,进据(存于外设的寄存器中)进行算术和逻辑运算,进行循环或移位等。行循环或移位等。(2 2)内存和外设的地址分布图是同一个。)内存和外设的地址分布图是同一个。(3 3)不需要专门的输入输出指令以及区分是存储)不需要专门的输入输出指令以及区分是存储器还是器还是I/OI/O操作的控制信号。操作的控制信号。缺点是:缺点是:外设占用了内存单元,使内存容量减小。外设占用了内存单元,使内存容量减小。2 2端口寻址的输入输出方式端口寻址的输入输出方式在在这这种种工工作作方方式式中中:CPUCPU有有专专门门的的I/OI/O指指令令,用用地地址址来来区区分分不不同同的的外外设设。但但要要注注意意实实际际上上是是以以端端口口(PortPort)作作为为地地址址的的单单元元,因因为为一一个个外外设设不不仅仅有有数数据据寄寄存存器器还还有有状状态态寄寄存存器器和和控控制制命命令令寄寄存存器器,它它们们各各需需要要一一个个端端口口才才能能加加以以区区分分,故故一一个个外外设设往往往往需需要要数数个个端口地址。端口地址。CPUCPU用地址来选择外设。用地址来选择外设。要要寻寻址址的的外外设设的的端端口口地地址址,显显然然比比内内存存单单元元的的地地址址要要少少得得多多。所所以以,在在用用直直接接寻寻址址方方式式寻寻址址外外设设时时,它它的的地地址址字字节节,通通常常总总要要比比寻寻址址内内存存单单元元的的地地址址少少一一个个字字节节,因因而而节节省省了了指指令令的的存存储储空空间间,缩缩短短了了指指令令的的执行时间。执行时间。7.1.2 CPU7.1.2 CPU与与I/OI/O设备之间的接口信息设备之间的接口信息1 1数据(数据(DataData)在在微微型型机机中中,数数据据通通常常为为8 8位位、1616位位或或3232位位。它它大大致可以分为三种基本类型:致可以分为三种基本类型:(1 1)数字量)数字量(2 2)模拟量)模拟量(3 3)开关量)开关量2 2状态信息(状态信息(StatusStatus)在在输输入入时时,有有输输入入设设备备是是否否准准备备好好(ReadyReady)的的状状态态信信息息;在在输输出出时时,有有输输出出设设备备是是否否有有空空(EmptyEmpty)的的状状态态信信息息,若若输输出出设设备备正正在在输输出出,则则以以忙忙(BusyBusy)指指示等等。示等等。3 3控制信息(控制信息(ControlControl)控制输入输出设备启动或停止等等。控制输入输出设备启动或停止等等。状状态态信信息息和和控控制制信信息息与与数数据据是是不不同同性性质质的的信信息息,必必须须要要分分别别传传送送。但但在在大大部部分分微微型型机机中中(80868086也也如如此此),只只有有通通用用的的ININ和和OUTOUT指指令令,因因此此,外外设设的的状状态态也也必必须须作作为为一一种种数数据据输输入入;而而CPUCPU的的控控制制命命令令也也必必须须作作为为一一种种数数据据输输出出。所所以以,一一个个外外设设往往往往要要几几个个端端口口地地址址,CPUCPU寻址的是端口,而不是笼统的外设。寻址的是端口,而不是笼统的外设。7.1.3 CPU7.1.3 CPU的输入输出时序的输入输出时序通常通常I/OI/O接口电路的工作速度较慢,往往要插入等待接口电路的工作速度较慢,往往要插入等待状态。状态。7.1.4 CPU7.1.4 CPU与接口电路间数据传送的形式与接口电路间数据传送的形式CPUCPU与外设的信息交换称为与外设的信息交换称为通信通信(CommunicationCommunication)。)。基本的通信方式有两种:基本的通信方式有两种: 并行通信并行通信数据的各位同时传送;数据的各位同时传送; 串行通信串行通信数据一位一位顺序传送。数据一位一位顺序传送。7.2 CPU7.2 CPU与外设数据传送的方式与外设数据传送的方式7.2.1 7.2.1 查询传送方式查询传送方式CPUCPU与与I/OI/O设设备备的的工工作作往往往往是是异异步步的的,很很难难保保证证当当CPUCPU执执行行输输入入操操作作时时,外外设设已已把把要要输输入入的的信信息息准准备备好好了了;而而当当CPUCPU执执行行输输出出时时,外外设设的的寄寄存存器器(用用于于存存放放CPUCPU输输出出数数据据的的寄寄存存器器)一一定定是是空空的的。所所以以,通通常常程程序序控控制制的的传传送送方方式式在在传传送送之之前前,必必须须要要查查询询一一下下外外设设的的状状态态,当当外外设设准准备备就就绪绪了了才才传传送送;若若未未准准备备好好,则则CPUCPU等待。等待。1 1查询式输入查询式输入在输入时,在输入时,CPUCPU必必须了解外设的状态,须了解外设的状态,看外设是否准备好。看外设是否准备好。查询式输查询式输入程序流程图入程序流程图查询式输查询式输入接口电路入接口电路查询部分的程序如下:查询部分的程序如下: POLL:INAL,STATUS_PORT;从状态端从状态端口输入状态信息口输入状态信息TEST AL,80H;检查检查READY是否为是否为1JEPOLL;未;未READY,循环循环INAL,DATA_PORT;READY,从从数据端口输入数据数据端口输入数据2 2查询式输出查询式输出同样的,在输出时同样的,在输出时CPUCPU也必须了解外设的状态,看外也必须了解外设的状态,看外设是否有空(即外设不是正处在输出状态,或外设的数据设是否有空(即外设不是正处在输出状态,或外设的数据寄存器是空的,可以接收寄存器是空的,可以接收CPUCPU输出的信息),若有空,则输出的信息),若有空,则CPUCPU执行输出指令,否则就等待。执行输出指令,否则就等待。查询式输查询式输出接口电路出接口电路查询式输查询式输出程序流程图出程序流程图查询部分的程序为:查询部分的程序为:POLL: INAL,STATUS_PORT;从状态端口输从状态端口输入状态信息入状态信息TESTAL,80H;检查检查BUSY位位JNEPOLL;BUSY则循环等待则循环等待MOVAL,STORE;否则,从缓冲区取数据否则,从缓冲区取数据OUTDATA_PORT,AL;从数据端口输出从数据端口输出其中,其中,STATUS_PORT是状态端口的符号地址;是状态端口的符号地址;DATA_PORT是是数据端口的符号地址;数据端口的符号地址;STORE是存放数据单元的地址偏移量。是存放数据单元的地址偏移量。 一个采用查询方式的数据采集系统一个采用查询方式的数据采集系统 一个有一个有8个模拟量输入的数据采集系统,用查询的方个模拟量输入的数据采集系统,用查询的方式与式与CPU传送信息,其电路如图所示。传送信息,其电路如图所示。查询方式的数据采集系统查询方式的数据采集系统 实现这样的数据采集过程的程序为:实现这样的数据采集过程的程序为:START: MOV DL,0F8H;设置启动设置启动A/D转换的信号转换的信号LEA DI,DSTOR;存放输入数据缓冲区的地址偏移量存放输入数据缓冲区的地址偏移量DIAGAIN: 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 ;修改多路开关控制信号,指向下一个模拟量修改多路开关控制信号,指向下一个模拟量JNE AGAIN ;8个模拟量未输入完个模拟量未输入完,循环已完循环已完,执行别的程序段执行别的程序段 7.2.2 7.2.2 中断传送方式中断传送方式在在上上述述的的查查询询传传送送方方式式中中,CPUCPU要要不不断断地地询询问问外外设设,当当外外设设没没有有准准备备好好时时,CPUCPU要要等等待待,不不能能进进行行别别的的操操作作,这这样样就就浪浪费费了了CPUCPU的的时时间间。而而且且许许多多外外设设的的速速度度是是较较低低的的,在在等等待待过过程程中中,CPUCPU本本可可以以执执行行大大量量的的指指令令。为为了了提提高高CPUCPU的的效效率率,可可采采用用中中断断的的传传送送方方式式:在在输输入入、输输出出时时,若若外外设设已已准准备备好好,则则由由外外设设向向CPU CPU 发发出出中中断断请请求求,CPUCPU就就暂暂停停原原执执行行的的程程序序( 即即实实现现中中断断),转转去去执执行行输输入入或或输输出出操操作作(中中断断服服务务),待待输输入入输输出出操操作作完完成成后后即即返返回回,CPUCPU再再继继续续执执行行原原来来的的程程序序。这这样样就就可可以以大大大大提提高高CPUCPU的的效率,而且允许效率,而且允许CPUCPU与外设(甚至多个外设)同时工作。与外设(甚至多个外设)同时工作。中断传送方式接口电路中断传送方式接口电路 7.2.3 7.2.3 直接数据通道传送(直接数据通道传送(DMADMA)中中断断传传送送仍仍是是由由CPUCPU通通过过程程序序来来传传送送,每每次次要要保保护护断断点点,保保护护现现场场需需用用多多条条指指令令,每每条条指指令令要要有有取取指指和和执执行行时时间间。这这对对于于一一个个高高速速I/OI/O设设备备,以以及及成成组组交交换换数数据据的的情情况,例如磁盘与内存间的信息交换,就显得速度太慢了。况,例如磁盘与内存间的信息交换,就显得速度太慢了。所以希望用硬件在外设与内存间直接进行数据交换所以希望用硬件在外设与内存间直接进行数据交换(DMADMA),),而不通过而不通过CPUCPU,这样数据传送的速度的上限就这样数据传送的速度的上限就取决于存储器的工作速度。但是,通常系统的地址和数取决于存储器的工作速度。但是,通常系统的地址和数据总线以及一些控制信号线是由据总线以及一些控制信号线是由CPUCPU管理的。在管理的。在DMADMA方式方式时,就希望时,就希望CPUCPU把这些总线让出来(即把这些总线让出来(即CPUCPU连到这些总线连到这些总线上的线处于第三态上的线处于第三态高阻状态),而由高阻状态),而由DMADMA控制器接管,控制器接管,控制传送的字节数,判断控制传送的字节数,判断DMADMA是否结束,以及发出是否结束,以及发出DMADMA结结束等信号。这些都是由硬件实现的。束等信号。这些都是由硬件实现的。DMA工作流程图工作流程图 DMA控制器方框图控制器方框图 DMADMA传送已不局限于存储器与外设间的信息交换,而传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行之间进行DMADMA传送传送1 1DMADMA控制器的基本功能控制器的基本功能DMACDMAC是是控控制制存存储储器器和和外外部部设设备备之之间间直直接接高高速速地地传传送送数数据据的的硬硬件件电电路路,它它应应能能取取代代CPUCPU,用用硬硬件件完完成成各各项项功功能能。具体地说应具有如下功能:具体地说应具有如下功能:(1 1)能接收外设的请求,向)能接收外设的请求,向CPUCPU发出发出DMADMA请求信号。请求信号。(2 2)当当CPUCPU发发出出DMADMA响响应应信信号号之之后后,接接管管对对总总线线的的控控制,进入制,进入DMADMA方式。方式。(3)能寻址存储器,即能输出地址信息和修改地址。)能寻址存储器,即能输出地址信息和修改地址。 (4)能向存储器和外设发出相应的读)能向存储器和外设发出相应的读/写控制信号。写控制信号。 (5)能控制传送的字节数,判断)能控制传送的字节数,判断DMA传送是否结束。传送是否结束。 (6)在)在DMA传送结束以后,能结束传送结束以后,能结束DMA请求信号,请求信号,释放总线,使释放总线,使CPU恢复正常工作。恢复正常工作。2 2DMADMA传送方式传送方式各种各种DMACDMAC一般都有两种基本的一般都有两种基本的DMADMA传送方式:传送方式:(1 1)单单字字节节方方式式:每每次次DMADMA请请求求只只传传送送一一个个字字节节数数据据,每传送完一个字节,都撤除,每传送完一个字节,都撤除DMADMA请求信号,释放总线。请求信号,释放总线。(2 2)字字节节(字字符符)组组方方式式:每每次次DMADMA请请求求连连续续传传送送一一个个数数据据块块,待待规规定定长长度度的的数数据据块块传传送送完完了了以以后后,才才撤撤除除DMADMA请求,释放总线。请求,释放总线。7.3 DMA7.3 DMA控制器控制器82378237的工作周期的工作周期82378237在在设设计计时时规规定定它它有有两两种种主主要要的的工工作作周周期期(或或工工作作状状态态),即即空空闲闲周周期期和和有有效效周周期期。每每一一个个周周期期又又是是由由若干个时钟周期所组成的。若干个时钟周期所组成的。82378237的工作方式的工作方式82378237在在DMADMA传送时有四种工作方式。传送时有四种工作方式。1 1单字节传送方式单字节传送方式这这种种方方式式一一次次只只传传送送一一个个字字节节。数数据据传传送送后后字字节节计计数数器器减减量量,地地址址要要相相应应修修改改(增增量量或或减减量量取取决决于于编编程程)。HRQHRQ变变为为无无效效,释释放放系系统统总总线线。若若传传送送使使字字节节数数减减为为0 0,TCTC发生或者终结发生或者终结DMADMA传送,或重新初始化。传送,或重新初始化。2 2块传送方式块传送方式在这种传送方式下,在这种传送方式下,82378237由由DREQDREQ启动后就启动后就连续地传送数据,直至字节数计数器减到零产连续地传送数据,直至字节数计数器减到零产生生TCTC(Terminal CountTerminal Count),),或者由外部输入有或者由外部输入有效的效的信号来终结信号来终结DMADMA传送。传送。3 3请求传送方式请求传送方式在这种工作方式下,在这种工作方式下,82378237可以进行连续的数据传可以进行连续的数据传送。当出现以下三种情况之一时停止传送。送。当出现以下三种情况之一时停止传送。(1 1)字节数计数器减到)字节数计数器减到0 0,发生,发生TCTC;(2 2)由外界送来一个有效的由外界送来一个有效的 信号;信号;(3 3)外界的)外界的DREQDREQ信号变为无效(外设的数据已传信号变为无效(外设的数据已传送完)。送完)。4 4级连方式级连方式这这种种方方式式用用于于通通过过级级连连以以扩扩展展通通道道的的情情况况。第第二二级级的的HRQHRQ和和HLDAHLDA信号连到第一级的信号连到第一级的DREQDREQ和和DACKDACK上。上。在在前前三三种种工工作作方方式式下下,DMADMA传传送送有有三三种种类类型型:DMADMA读读、写和校验。写和校验。82378237的寄存器组和编程的寄存器组和编程1 1现行地址寄存器现行地址寄存器每每一一个个通通道道有有一一个个1616位位的的现现行行地地址址寄寄存存器器。在在这这个个寄寄存存器器中中保保存存着着用用于于DMADMA传传送送的的地地址址值值,在在每每次次传传送送后后,这这个个寄寄存存器器的的值值自自动动增增量量或或减减量量。这这个个寄寄存存器器的的值可由值可由CPUCPU写入或读出(分两次连续操作)。写入或读出(分两次连续操作)。2 2现行字节数寄存器现行字节数寄存器每每个个通通道道有有一一个个1616位位的的现现行行字字节节数数寄寄存存器器,它它保保持持着着要要传传送送的的字字节节数数,在在每每次次传传送送后后此此寄寄存存器器减减量量。当当这这个个寄寄存存器器的的值值减减为为零零时时,TCTC将将产产生生。这这个个寄寄存存器器的值在编程状态可由的值在编程状态可由CPUCPU读出和写入。读出和写入。3 3基地址和基字节数寄存器基地址和基字节数寄存器每每一一个个通通道道有有一一对对1616位位的的基基地地址址和和基基字字节节数数寄寄存存器器,它们存放着与现行寄存器相联系的初始值。它们存放着与现行寄存器相联系的初始值。4 4命令寄存器命令寄存器这这是是一一个个8 8位位寄寄存存器器,用用以以控控制制82378237的的工工作作。命命令令字字的格式如图所示。的格式如图所示。5 5模式寄存器模式寄存器每每一一个个通通道道有有一一个个6 6位位的的模模式式寄寄存存器器以以规规定定通通道道的的工工作模式,如图所示。作模式,如图所示。在在编编程程时时用用最最低低两两位位来来选选择择写写入入哪哪个个通通道道的的模模式式寄寄存器。存器。6 6请求寄存器请求寄存器82378237的的每每个个通通道道有有一一条条硬硬件件的的DREQDREQ请请求求线线,当当工工作作在在数数据据块块传传送送方方式式时时,也也可可以以由由软软件件发发出出DREQDREQ请请求求。所所以以,在在82378237中有一种请求寄存器,如图所示。中有一种请求寄存器,如图所示。每每个个通通道道的的软软件件请请求求可可以以分分别别设设置置。软软件件请请求求是是非非屏屏蔽的,它们的优先权同样受优先权逻辑的控制。蔽的,它们的优先权同样受优先权逻辑的控制。7 7屏蔽寄存器屏蔽寄存器每每个个通通道道外外设设通通过过DREQDREQ线线发发出出的的请请求求,可可以以单单独独地地屏屏蔽蔽或或允允许许,所所以以在在82378237中中有有一一个个屏屏蔽蔽寄寄存存器器,如如图图所所示。示。屏蔽屏蔽寄存寄存器器8 8状态寄存器状态寄存器82378237中有一个可由中有一个可由CPUCPU读取的状态寄存器,如图所示。读取的状态寄存器,如图所示。9 9临时寄存器临时寄存器在在存存储储器器到到存存储储器器的的传传送送方方式式下下,临临时时寄寄存存器器保保存存从从源源单单元元读读出出的的数数据据,又又由由它它写写入入至至目目的的单单元元。在在传传送送完完成成时时,它它保保留留传传送送的的最最后后一一个个字字节节,此此字字节节可可由由CPUCPU读读出。出。1010软件命令软件命令82378237在在编编程程状状态态还还有有两两种种软软件件命命令令,软软件件命命令令不不需需要要通通过过数数据据总总线线写写入入控控制制字字,而而由由82378237直直接接对对地地址址和和控控制信号进行译码。制信号进行译码。(1 1)清除高)清除高/ /低触发器低触发器(2 2)主清除命令)主清除命令111182378237的编程步骤的编程步骤(1 1)输出主清除命令。)输出主清除命令。(2 2)写入基与现行地址寄存器。)写入基与现行地址寄存器。(3 3)写入基与现行字节数寄存器。)写入基与现行字节数寄存器。(4 4)写入模式寄存器。)写入模式寄存器。(5 5)写入屏蔽寄存器。)写入屏蔽寄存器。(6 6)写入命令寄存器。)写入命令寄存器。(7 7)写写入入请请求求寄寄存存器器。若若有有软软件件请请求求,就就写写入入指指定定通通道,可以开始道,可以开始DMADMA传送的过程。传送的过程。若若无无软软件件请请求求,则则在在完完成成了了(1 1)(6 6)的的编编程程后后,由通道的由通道的DREQDREQ启动启动DMADMA传送过程。传送过程。 编程举例编程举例若要利用通道若要利用通道0,由外设,由外设(磁盘磁盘)输入输入32KB的一个数据的一个数据块,传送至内存块,传送至内存8000H开始的区域开始的区域(增量传送增量传送),采用块连,采用块连续传送的方式,传送完不自动初始化,外设的续传送的方式,传送完不自动初始化,外设的DREQ和和DACK都为高电平有效。都为高电平有效。要编程首先要确定端口地址。地址的低要编程首先要确定端口地址。地址的低4位用以区分位用以区分8237的内部寄存器,高的内部寄存器,高4位地址位地址A7A4经译码后,连至选经译码后,连至选片端片端CS,假定选中时高假定选中时高4位为位为5。 按上述要求,可确定如下控制字:按上述要求,可确定如下控制字: 模式控制字模式控制字84H 屏蔽字屏蔽字00H 命令字命令字A0H初始化程序如下:初始化程序如下: OUT 5DH,AL;输出主清除命令输出主清除命令MOV AL,00HOUT50H,AL;输出基和现行地输出基和现行地址的低址的低8位位MOV AL,80HOUT50H,AL;输出基和现行地输出基和现行地址的高址的高8位位MOV AL,00HOUT51H,ALMOV AL,80HOUT51H,AL;给基和现行字节给基和现行字节数赋值数赋值MOV AL,84HOUT5BH,AL;输出模式字输出模式字MOV AL,00HOUT5AH,AL;输出屏蔽字输出屏蔽字MOV AL,0A0HOUT58H,AL;输出命令字输出命令字 作业作业1.CPU和输入输出设备之间传送的信息有哪几类和输入输出设备之间传送的信息有哪几类?2.CPU和外设之间的数据传送方式有那几种和外设之间的数据传送方式有那几种?实际选择某实际选择某种传输方式时种传输方式时,只要依据是什么只要依据是什么? 具体采用哪种传送方式具体采用哪种传送方式,取决于数据传送的速度和数量取决于数据传送的速度和数量.当外部设当外部设备的信息传送速度较低或要求实时处理时备的信息传送速度较低或要求实时处理时,采用中断方式采用中断方式;当外设当外设速度与速度与CPU想当时想当时,采用查询方式采用查询方式;当要求传送速度快且是批量传当要求传送速度快且是批量传送时送时,采用采用DMA方式方式.3.设一个接口的输入端口地址为设一个接口的输入端口地址为0100H,状态端口地址为状态端口地址为0104H,状态端口中状态端口中D5位为位为1表示输入缓冲区中有一个字表示输入缓冲区中有一个字节准备好节准备好,可以输入可以输入.设计具体程序以实现查询式输入设计具体程序以实现查询式输入.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号