《第2章输入输出(精品).ppt》由会员分享,可在线阅读,更多相关《第2章输入输出(精品).ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、COMPUTER SCIENCE AND TECHNOLOGY1第第2章章 输入输出输入输出 在微型计算机系统的应用中,CPU除与内存交换信息外,还必然要经常与各种外部设备交换信息。主机与外设进行信息交换过程主要是完成数据输入或输出的传送操作。输入或输出操作的确切含义是有选择地启动被微处理器选中的外部设备,以便使其接收来自CPU的数据或向CPU送入数据。数据传送的方向标准通常以微处理器为中心,当数据是由外部设备,如键盘、纸带读入机、光笔等设备向CPU送入时,称为输入传送;而当数据自CPU送到如发光二极管、七段显示器、CRT显示器、点阵打印机、绘图仪等设备时,称为输出传送。CPU与各外部设备之间
2、的连接和信息交换是比较复杂的。通常把CPU与外部设备间的连接方法与信息交换手段的研究称为输入输出技术(由于外部设备通常简称I/O设备,故亦称输入输出技术为I/0技术)。COMPUTER SCIENCE AND TECHNOLOGY22.1 接口概述接口概述 2.1.1 接口与端口 从广义上讲,接口就是指两个系统或两个部件之间的交接部分,可以是两种硬设备之间的连接电路,也可以是两个软件之间公用的逻辑边界。在微型计算机系统中,CPU与外部设备之间的联系,需要有特定的硬件连接和相应的控制软件。完成这一任务的软、硬件的综合称为接口。对这种硬件、软件的设计,称为接口技术。应该指出,接口(Interfac
3、e)和端口(Port)是不同的。所谓端口是指接口电路中那些完成信息传送,可由程序寻址并进行读写操作的寄存器。原则上讲,若干个端口加上相应的控制逻辑才构成接口。所以,一个接口中往往含有几个端口,CPU可以通过输入指令从端口读出信息,通过输出指令向端口写入信息。CPU寻址的是端口,而不是笼统的外设接口。COMPUTER SCIENCE AND TECHNOLOGY32.1.2 接口的功能接口的功能 1地址译码或设备选择接口必须进行地址译码,从而产生设备选择信号,以使微处理器和指定的外部设备交换信息。2数据缓冲和锁存在微计算机系统中,数据总线是系统各部分之间公用的双向总线,所有设备分时复用。所以,无
4、论是存储器,还是外部设备,都不能长期占用数据总线,只允许被选中的设备在读/写周期内可用其传送数据。3信息格式与电平的转换接口应该具有信号传送格式、信号类型、信号电平的转换能力。4数据传送的协调CPU工作是有一定的时序的,CPU与外部设备交换数据时必须采用一定的传送方式进行控制。COMPUTER SCIENCE AND TECHNOLOGY42.1.3 接口的一般编程结构接口的一般编程结构 COMPUTER SCIENCE AND TECHNOLOGY5I/O接口与外设的连接信号接口与外设的连接信号 I/O接口与外设的连接信号分为数据线、状态线和控制线三种。(1)数据线大致分为如下三种类型。1)
5、数字量。数字量是以二进制形式表示的数据或是以ASCII码表示的数据及字符。2)模拟量。许多连续变化的物理量,如温度、湿度、位移、压力、流量等都是模拟量。3)开关量。开关量可表示两个状态,如开关的闭合和断开、电机的运转和停止、阀门的打开和关闭等。(2)状态线外设将其状态通过状态线送往接口中的状态寄存器,它反映了当前外设所处的工作状态。对于输入设备来说,通常用准备好(READY)信号来表明输入设备是否准备就绪。(3)控制线控制线是由CPU向I/O接口输出的控制外部设备的信息。COMPUTER SCIENCE AND TECHNOLOGY62.1.4 接口的分类接口的分类 1按应用分类从应用角度分类
6、,微计算机接口一般可分为四种基本类型:用户交互接口、辅助操作接口、传感接口和控制接口。2按功能分类(1)按数据传送方式分类:并行接口、串行接口。(2)按接口通用性分类:通用接口、专用接口。(3)按接口的可选择性分类:可编程接口、不可编程接口。(4)按接口输入/输出信号分类:数字接口、模拟接口。COMPUTER SCIENCE AND TECHNOLOGY72.2 I/O端口的地址选择端口的地址选择 微计算机的操作速度很快,可以控制很多外部设备。但是,微计算机采用的是总线结构,只有一组数据线。当CPU发出一个数据信息后,到底哪一个外部设备来接收这个数据呢?不得而知。因此,在微计算机与外部设备交换
7、信息之前,应首先通过地址总线发出地址信息,通过某种编址方式来选中一个外部设备,进而实现信息交换。这里所谓的“与外部设备”交换信息,确切地应理解为“与外部设备的端口”交换信息。对端口的编址(寻址)有两种方式,这就是存储器映像方式和I/O映像方式。常见的端口地址选择方法有三种:门电路组合法、译码器译码法、比较器比较法。COMPUTER SCIENCE AND TECHNOLOGY82.2.1 输入输出的寻址方式输入输出的寻址方式 1存储器映像方式这种寻址方式把一个I/O端口看作是一个存储单元(或采用地址重叠技术,对应n个存储单元),相当于给每一个I/O端口分配一个存储器地址(或n个存储器地址)。存
8、储器映像寻址方式的主要优点是:(1)指令丰富。(2)I/O端口空间大。(3)寻址的控制逻辑比较简单。这种寻址方式的主要缺点是:(1)I/O端口占用了一部分存储器地址空间,使可用的内存空间相对减少。(2)对I/O端口的访问和对存储器的访问一样,必须对全部地址线译码,因而地址译码电路比较复杂。(3)存储器操作指令的机器码比较长,需要较长的执行时间。(4)用存储器指令来处理输入/输出操作,在程序清单中不易区别,给程序的设计、分析、调试带来一定的困难。采用存储器映像寻址方式的计算机有PDP-11小型机、6800系列微型机、6502系列微型机等。COMPUTER SCIENCE AND TECHNOLO
9、GY92I/O映像方式在这种寻址方式中,I/O端口空间与存储器空间各自独立,互不干涉,互不影响,故亦称为独立的I/O寻址方式。在指令操作上,对存储单元的一般性传送使用MOV指令,而对I/O端口的传送操作,使用系统专门提供的一组I/O指令,即IN和OUT指令。I/O映像寻址方式的主要优点是:(1)I/O空间与存储器空间各自独立,可分开设计。(2)由于采用单独的I/O指令,其助记符与存储器指令明显不同,因而使程序编制清晰,易于理解。(3)I/O地址线较少,所以译码电路简单。(4)I/O指令格式短,执行时间快。这种寻址方式的主要缺点是:(1)需要专门的I/O指令,且这些指令一般不如存储器访问指令丰富
10、,程序设计灵活性较差。(2)参加译码的地址线较少,使外设端口的数目受到限制。(3)采用专用的I/O周期和专用的I/O控制线,这不仅使微处理器有限的引脚更加紧张,而且也增加了控制逻辑的复杂性。COMPUTER SCIENCE AND TECHNOLOGY102.2.2 用门电路组合法进行端口地址选择用门电路组合法进行端口地址选择 门电路组合法是最简单的一种端口地址选择方法,它采用常见的与门、或门、非门等作为基本的组合元件。一般端口都是指寄存器、锁存器或缓冲器,这些器件都有一个芯片选择信号,简称片选信号,多数是低电平有效。当然,也有一些芯片没有片选信号,而是有使能端,或脉冲控制端,总之是使器件产生
11、动作的控制端。端口地址选择的目的,是当地址线上出现某种信息组合时,在端口地址选择电路的输出端会产生一个有效信号(有效信号有四种状态,即高电平、低电平、上跳沿、下跳沿,具体使用哪种状态,视所使用的器件而定),该信号连到器件的控制端,使器件产生动作,从而完成I/O端口的读/写操作。COMPUTER SCIENCE AND TECHNOLOGY112.2.3 用译码器译码法进行端口地址选择用译码器译码法进行端口地址选择 译码器译码法是最常用的一种方法,就是利用译码器芯片对地址进行译码。PC/XT微计算机系统板上接口芯片的端口地址译码电路采用译码器译码法。所连接的接口芯片都有片选信号,74LS138译
12、码器的输出与这些接口芯片的片选信号连接。各接口芯片内部有多个寄存器,因而,相应地有多个端口地址。译码器只直接使用地址线A9-A5,其余的低5位地址线A4-A0未接,留给各接口芯片内部自行译码,以便寻址多个寄存器。COMPUTER SCIENCE AND TECHNOLOGY122.2.4 用比较器比较法进行端口地址选择用比较器比较法进行端口地址选择 COMPUTER SCIENCE AND TECHNOLOGY132.3 输入输出控制方式输入输出控制方式 CPU对I/O控制方式,就微机系统而言有四种基本方式,即程序查询方式、程序中断方式、DMA方式和I/O处理机方式。前两种主要由程序来实现,而
13、后两种主要由附加硬件来实现。目前,微机中多数采用前三种。程序查询方式:CPU通过查询I/O设备的状态,断定哪个设备需要服务,然后转入相应的服务程序。程序中断方式:当I/O设备需要CPU为其服务时,可以发生中断请求信号INTR,CPU接到请求信号后,中断正在执行的程序,转去为该设备服务,服务完毕,返回原来被中断的程序并继续执行。直接存储器存取(DMA)方式:采用这种方式时,在DMA控制器的管理下,I/O设备和存储器直接交换信息,而不需要CPU介入。I/O处理机方式:引入I/O处理机,全部的输入/输出操作由I/O处理机独立地承担。COMPUTER SCIENCE AND TECHNOLOGY142
14、.3.1 程序查询方式程序查询方式 程序查询传送方式又分为无条件传送方式和查询传送方式。程序查询方式是有条件的传送控制方式,在这种方式中,CPU对I/O设备的控制(调度)全部由程序来实现,所有的输入输出操作都处于正在被执行的程序的控制下,I/O设备完全处于被动地位。所谓查询,就是询问外部设备的工作状态,通过这一状态来判定外设是否已具备了与CPU交换数据的条件,即外设是否已准备好与CPU交换数据。对输入设备而言,这个状态指示输入设备的数据是否已经准备就绪,CPU是否可以随时来读取这个数据。对输出设备而言,这个状态指示输出设备的数据接收寄存器是否已空,是否可以随时接受CPU送来的数据。COMPUT
15、ER SCIENCE AND TECHNOLOGY151无条件传送方式无条件传送方式 COMPUTER SCIENCE AND TECHNOLOGY162查询输入传送方式查询输入传送方式 COMPUTER SCIENCE AND TECHNOLOGY17COMPUTER SCIENCE AND TECHNOLOGY183查询输出传送方式查询输出传送方式 COMPUTER SCIENCE AND TECHNOLOGY19COMPUTER SCIENCE AND TECHNOLOGY202.3.2 程序中断方式程序中断方式 无条件传送方式和查询传送方式的缺点是CPU和外设只能串行工作,各外设之间也
16、只能串行工作。为了使CPU和外设以及外设和外设之间能并行工作,提高系统的工作效率,充分发挥CPU高速运算的能力,在微机系统中引入了中断技术,利用中断来实现CPU与外设之间的数据传送,这就是程序中断传送方式。在程序中断传送方式中,通常是在主程序中某一时刻安排启动某一台外设的指令,然后CPU继续执行其主程序,当外设完成数据传送的准备后,向CPU发出“中断请求”信号,在CPU可以响应中断的条件下,中断(即暂停)现行主程序的执行,而转去执行“中断服务程序”,在“中断服务程序”中完成一次CPU与外设之间的数据传送,传送完成后仍返回被中断的断点处继续执行主程序。COMPUTER SCIENCE AND T
17、ECHNOLOGY212.3.3 DMA方式方式 1DMA传送方式的提出与程序查询方式相比,利用中断方式进行数据传送可以大大提高CPU的工作效率。但在中断方式中,仍然是通过CPU执行程序来实现数据传送的,每传送一个字节(或一个字)CPU都必须把主程序停下来,转去执行中断服务程序。而每进入一次中断服务程序,CPU都要保护断点和转入中断服务程序,上述几方面的因素造成中断方式下的传输效率仍然不是很高。如果I/O设备的数据传输率较高,那么CPU和这样的外部设备进行数据传输时,即使尽量压缩程序查询方式和中断方式中的非数据传输时间,也仍然不能满足要求。这是因为在这两种方式下,还存在另外一个影响传输速度的原
18、因,即它们都是按字节或字来进行传输的。为了解决这个问题,实现按数据块传输,就需要改变传输方式,为此,提出了在外设和内存之间直接传送数据的方式,这就是直接存储器传输方式,即DMA方式。COMPUTER SCIENCE AND TECHNOLOGY222DMA操作的基本方法操作的基本方法(1)CPU停机方式在这种方式下,当要进行DMA传送时,DMA控制器向CPU发出总线请求信号,迫使CPU在现行的总线周期结束后,使其地址总线、数据总线和部分控制总线处于高阻状态,从而让出对总线的控制权,并给出DMA响应信号。DMA控制器接到该响应信号后,就可以对总线进行数据传送的控制工作,直到DMA操作完成,CPU
19、再恢复对总线的控制权,继续执行被中断的程序。(2)周期扩展在这种方式下,当需要进行DMA操作时,由DMA控制器发出请求信号给时钟电路,时钟电路把供给CPU的时钟周期加宽,而提供给存储器和DMA控制器的时钟周期不变。用这种方法进行DMA操作,一次只能传送一个字节。(3)周期挪用在这种方式下,利用CPU不访问内存的那些周期来实现DMA操作,此时DMA操作使用总线不用通知CPU也不会妨碍CPU的工作。COMPUTER SCIENCE AND TECHNOLOGY233DMA控制器的功能控制器的功能(1)当外设准备就绪,希望进行DMA操作时,会向DMA控制器发出DMA请求信号,DMA控制器接到此信号后
20、,应能向CPU发总线请求信号。(2)CPU接到总线请求信号后,如果允许,则会发出DMA响应信号,从而CPU放弃对总线的控制,这时DMA控制器应能实行对总线的控制。(3)DMA控制器得到总线控制权以后,要往地址总线发送地址信号,修改所用的存储器的地址指针。(4)在DMA传送期间,DMA控制器应能发存储器或接口的读/写控制信号。(5)能统计传送的字节数,并且判断DMA传送是否结束。(6)能向CPU发出DMA结束信号,将总线控制权交还给CPU。COMPUTER SCIENCE AND TECHNOLOGY244DMA传送的一般工作过程传送的一般工作过程 COMPUTER SCIENCE AND TE
21、CHNOLOGY252.3.4 I/O处理机方式处理机方式 为了提高整个系统的工作效率,使CPU完全摆脱管理、控制输入/输出的沉重负担。从20世纪60年代开始又引入了I/O处理机的概念,提出了数据传送的I/0处理机方式。于是,专门用来处理输入输出的I/O处理机IOP应运而生。如Intel 8089就是一种专门配合8086/8088使用的I/O处理器芯片。I/O处理机有自己的指令系统,也能独立地执行程序,能承担原来由CPU处理的全部输入/输出操作。如对外设进行控制、对输入/输出过程进行管理,并能完成字与字之间的装配和拆卸、码制的转换、数据块的错误检测和纠错,以及格式变换等操作。同时它还可以向CP
22、U报告外设和外设控制器的状态,对状态进行分析,并对输入/输出系统出现的各种情况进行处理。上述操作都是同CPU程序并行执行的。为了使CPU的操作与输入/输出操作并行进行,必须使外设工作所需要的各种控制命令和定时信号与CPU无关,由I/O处理机独立形成。COMPUTER SCIENCE AND TECHNOLOGY262.4 DMA控制器控制器8237A 主要的功能有:1在一片8237A内有4个独立的DMA通道。2每个通道的DMA请求可分别编程允许或禁止。3每个通道的DMA请求有不同的中断优先级(即DMA操作优先权),优先级有两种:固定优先级和循环优先级,由编程决定。固定优先级的顺序是通道0最高,
23、依次是通道1,通道2和通道3。4可在外设与存储器,存储器与存储器之间传送数据,存储器地址寄存器可以加1或减1。5可由软件编程改变DMA读写周期长度。6有四种工作方式:单字节传送方式,数据块传送方式,请求传送方式,级连方式。7可以多片级连,扩展通道数。8DMA操作结束有两种方法:一是字节计数器减1由0变为FFFFH,二是外界通过输入负脉冲,强制DMA操作结束。9DMA操作启动有两种方法:一是外设输入DMA请求信号DREQ,二是通过软件编程从内部启动。COMPUTER SCIENCE AND TECHNOLOGY272.4.1 8237A的内部结构及引脚功能的内部结构及引脚功能 COMPUTER
24、SCIENCE AND TECHNOLOGY288237A内部端口地址分配内部端口地址分配 COMPUTER SCIENCE AND TECHNOLOGY298237A芯片内部共有芯片内部共有12种寄存器种寄存器 1)基地址寄存器 16位42)基字节数计数器 16位43)当前地址寄存器 16位44)当前字节数计数器 16位45)方式字寄存器 6位46)暂存地址寄存器 16位17)暂存字节数计数器 16位18)状态寄存器 8位19)命令寄存器 8位110)暂存寄存器 8位111)屏蔽寄存器 4位112)请求寄存器 4位1 COMPUTER SCIENCE AND TECHNOLOGY302.4.
25、2 8237A的工作方式的工作方式 从DMA操作过程的角度,DMA控制器8237A的几种工作方式包括主从模态、传送方式、传送类型、优先级编码、自动初始化方式、存储器到存储器的传送等。COMPUTER SCIENCE AND TECHNOLOGY311主从模态主从模态 DMA控制器既可以作为I/O端口接受CPU的读写操作,也可以代替CPU占有总线,控制外设与存储器之间传送数据,它充分体现了DMA控制器的两大特性,即总线的主控性和总线的从属性,按这两大特性,它也就有两种工作模态:主态方式和从态方式。COMPUTER SCIENCE AND TECHNOLOGY32(1)主态方式)主态方式 在主态方
26、式时,DMA控制器是总线的控制者,此时,8237A是主模块,它如同CPU一样,掌握总线的控制权,可对涉及的外设端口或存储器单元进行读写操作。在DMA操作时,DMA控制器成为系统的控制核心,为完成DMA操作,它应提供存储器地址,指定外设,发出读写控制信号。由于只有一组地址总线,所以当DMA控制器提供了存储器地址后,就无法再提供外部设备的地址,因此DMA控制器在DMA传送时用DACK来选择外设,代替外设的地址选择逻辑,使申请DMA操作并被接受的外部设备在DMA操作中一直保持被选通状态,仅用或来控制数据的流向和启停。另外,DMA操作在外设和存储器之间建立了直接数据通道,数据传送时不需要经过DMA控制
27、器,加快了数据传送速度,减少了中间环节,这也是DMA方式能高速传送的原因之一。COMPUTER SCIENCE AND TECHNOLOGY33(2)从态方式)从态方式 在从态方式时,CPU是总线的控制者,而DMA控制器不过是普通的一个外部设备,有若干个端口而已,它的地位同一般的I/O接口芯片是一样的,所以,此时8237A是从模块。DMA控制器在开始工作之前,要由CPU写入初始化控制字,建立DMA控制器工作的基本条件,如传送方式、传送类型、地址增加还是减少、是否设置自动初始化方式等,CPU还要写入一些数据,以确定DMA方式传送的具体内容,如存储区地址、传送字节数等,在这些操作中,DMA控制器以
28、被规定的端口地址接收数据。另外,在DMA传送后,CPU也往往读取DMA控制器的状态。显然,在这两种情况下,DMA控制器是系统的从属设备。COMPUTER SCIENCE AND TECHNOLOGY342传送方式传送方式 8237A通过编程,可选择4种传送方式,分别是单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。COMPUTER SCIENCE AND TECHNOLOGY35(1)单字节传送方式)单字节传送方式 单字节传送方式时,一次只传送一个字节,然后释放总线。若又有外设DMA请求,8237A再向CPU发下一次总线请求HRQ,获得总线控制权后,再传送下一个字节数据。在这种传送
29、方式中应注意以下几方面:1)在DACK有效之前,DREQ应保持有效。2)即使DREQ在传送过程中一直保持有效,在总线响应后HRQ也将变成无效,并在传送一个字节后DMA控制器释放总线,但由于DREQ一直有效,HRQ很快再次变成有效,在芯片接受到新的HLDA后,下一个字节又开始传输。显然,在两次DMA传送之间至少执行一个完整的机器周期,在此期间,完全可能响应另一个高优先级的DMA请求。3)每次传送后,当前字节数计数器减1,当前地址寄存器减1或加1,当当前字节数计数器减1由0变成FFFFH时,发出有效信号(产生终止计数TC信号),如果通道编程设为自动初始化方式,则自动地重新装入计数值和地址寄存器。C
30、OMPUTER SCIENCE AND TECHNOLOGY36(2)数据块传送方式)数据块传送方式 数据块传送方式时,响应一次DMA请求,将完成设定的字节数的全部传送。当字节数计数器减l由0变为FFFFH时,产生TC有效信号,使8237A将总线控制权交还给CPU从而结束DMA操作方式,外部有效的信号也可以终结DMA传送。在DACK变成有效之前,DREQ信号必须保持有效。一旦DACK有效,不管DREQ如何,8237A一直不放弃总线控制权。即便是在传送过程中,DREQ变为无效,8237A也不会释放总线,只是暂停数据的传送,等到通道请求信号再次有效后,8237A又继续进行数据传送,直到整块数据全部
31、传完,才会退出DMA操作,将总线控制权交还CPU。PC机不能采用这种方式,否则会影响动态存储器刷新和磁盘驱动器的数据传送,它们都不允许另一个DMA传送长期占用总线。COMPUTER SCIENCE AND TECHNOLOGY37(3)请求传送方式)请求传送方式 请求传送方式又称查询方式,类似数据块传送,但每传送一个字节后,检测DREQ状态,若无效则停止,若有效则继续DMA传送。在下述情况之一发生时,将停止传送:1)DREQ变为无效。2)字节数计数器减1由0变为FFFFH,产生TC信号。3)外界输入有效信号。当DREQ无效时,8237A停止传送,内部的当前地址寄存器和当前字节数计数器还保留当时
32、的数值,一旦外设准备好要传送的新数据,可以再次使DREQ变为有效,就可以使传送继续下去。当DREQ无效时,8237A停止传送,此时释放总线,当DREQ重新有效时,将重新开始一次DMA请求过程。COMPUTER SCIENCE AND TECHNOLOGY38(4)级连方式)级连方式 这种方式允许连接一个以上的芯片来扩展DMA通道的个数。其连接方法是将扩展的DMA芯片的HRQ和HLDA分别连到主片的某个通道的DREQ和DACK。当主片接到扩展芯片的DMA请求并响应后,它仅发出DACK应答,其它的地址信号与控制信号一律禁止,由扩展芯片控制DMA传送。这种情况下,主片的连接通道只起两个作用:一是优先
33、级连接的作用,即将从片的4个DMA通道纳入到主片的优先级管理机制,二是向CPU输出HRQ和传递HLDA。COMPUTER SCIENCE AND TECHNOLOGY393传送类型传送类型 DMA系统无论是工作在单片方式,还是多片级联,也不管采用单字节传送、数据块传送、请求传送中的哪种传送方式,都可以对每个通道的方式字寄存器进行设置,采用DMA读、DMA写、DMA校验等三种不同的传送类型。(1)DMA读 8237A输出有效的和信号,把存储器的数据读到I/O设备。(2)DMA写 8237A输出有效的和信号,把I/O设备的数据写到存储器。(3)DMA校验 这是一种伪传输,实际上是校验8237A芯片
34、内部的读写功能,也就是对读传输功能或写传输功能进行检验。在这种传送类型中,8237A芯片的操作如同DMA读和DMA写一样,产生地址信号以及对响应等,但对存储器和I/O设备的控制线(、)均处于无效状态,禁止实际传送。DMA校验传输功能是器件测试时才使用的,一般的使用者对这项功能并不感兴趣。COMPUTER SCIENCE AND TECHNOLOGY404优先级编码优先级编码 8237A芯片可设定为两种优先级编码:固定优先级和循环优先级,这两种优先级编码我们已作介绍。固定优先级中4个通道的优先级顺序是固定的,DREQ0最高,DREQ3最低。循环优先级中4个通道的优先级顺序是可变的,但其变化仍有一
35、定的规律。当某一个通道申请DMA请求并被响应服务后,它就被指定为最低优先级,它的下一级就成为最高优先级。值得注意的一点是,无论在任何情况下,DMA请求禁止嵌套服务。当一个通道的DMA请求被响应并服务后,其它3个通道的DMA请求将都被禁止,无论它们的优先级是高还是低。优先权排队只在DMA响应之前有效,DMA响应之后则无效。COMPUTER SCIENCE AND TECHNOLOGY415自动初始化方式自动初始化方式 通过对方式字寄存器的编程,可设置某个通道为自动初始化方式。自动初始化方式的功能是,当该通道完成一个数据传送并产生信号时(可能是由内部的TC产生,也可能是外部产生),用基地址寄存器和
36、基字节数计数器的内容,使相应的当前地址寄存器和当前字节数计数器恢复初值。当前地址寄存器和当前字节数计数器的最初值,是由CPU在初始化编程时写入的(这个最初值同时也写入到基地址寄存器和基字节数计数器),但在DMA传送过程中,当前地址寄存器和当前字节数计数器的内容被不断修改,而基地址寄存器和基字节数计数器的内容维持不变(除非重新编程)。在自动初始化以后,通道就作好了进行另一次DMA传送的准备。COMPUTER SCIENCE AND TECHNOLOGY426存储器到存储器的传送存储器到存储器的传送 利用这种方式,可以使数据块从一个存储空间传送到另一个存储空间,将程序的影响和传输时间减到最小。这种
37、方式需要占用8237A的2个通道。由通道0的地址寄存器提供源地址,通道1的地址寄存器提供目的地址,通道1的字节数计数器编程为传送的字节数,传送由设置一个通道0的软件DREQ启动,8237A按正常方式向CPU发出HRQ,当CPU发出总线响应信号HLDA后,DMA传送即可开始。每次传送需要两个总线周期(8个时钟状态):第一个总线周期(前4个时钟状态)先将源地址(由通道0指示,传送后地址寄存器做相应修改)的数据读入8237A的暂存器,在第二个总线周期(后4个时钟状态)再将暂存器的内容放到数据总线上,然后在写信号的控制下,将数据总线上的数据写入目的地址(由通道1指示,传送后地址寄存器做相应修改)的存储
38、单元,然后通道1的当前字节数计数器减1。继续这种传送,直到通道1的字节数计数器的值减1由0变为FFFFH时,产生信号,从而终止DMA服务。COMPUTER SCIENCE AND TECHNOLOGY432.4.3 8237A的工作时序的工作时序 8237A的工作时序有正常时序、压缩时序和扩展写时序。对应各种工作时序有两类工作周期:空闲周期和操作周期。操作周期也叫有效周期。全部工作周期分为7种时钟状态(时钟周期):空闲状态SI、起始状态S0、传送状态S1、S2、S3、S4以及等待状态SW。COMPUTER SCIENCE AND TECHNOLOGY441工作周期工作周期 COMPUTER S
39、CIENCE AND TECHNOLOGY452正常时序正常时序 8237A DMA控制器可选择正常时序、压缩时序和扩展写时序等操作时序。不同操作时序的实质是在控制读、写脉冲发出的时间与时钟信号CLK的对应关系。正常时序传送一个字节数据包含4个时钟脉冲周期,即S1-S4状态。产生的读写脉冲信号与这4个状态有确定的对应关系。若是数据块传送中不改变高8位地址,则省去S1,只占用S2、S3、S4三个时钟周期。COMPUTER SCIENCE AND TECHNOLOGY463压缩时序压缩时序 压缩时序方式所占用的脉冲数将减少。压缩时序操作把读命令的宽度压缩到等于写命令的宽度,省掉了S3,即由S4完成
40、读和写的操作。所以,在压缩时序方式下传送一个字节数据需要占用3个时钟周期,即S1、S2、S4,而在大多数情况下高8位地址并不改变,于是省掉了S1,因此,在数据块传送中大多数情况占用2个时钟周期,即S2和S4。此时用S2状态修改低8位地址值,用S4状态完成读和写的操作,也就是把正常时序中S3和S4二个状态的功能压缩在一个状态中完成。由于压缩时序传送类型只用2个状态完成一个数据字节的传送,因此它具有更高的数据传送速率。COMPUTER SCIENCE AND TECHNOLOGY474扩展写时序扩展写时序 在正常时序操作下,可选择扩展写方式,即写命令提前到读命令,从S3状态开始(一般情况下,读为S
41、3、S4状态,写为S4一个状态)。也就是说,写命令同读命令一样,扩展为2个时钟周期。COMPUTER SCIENCE AND TECHNOLOGY482.4.4 8237A的编程的编程 8237A依靠它的可编程特性实现它的各种工作方式的选择和设定。8237A在HLDA信号处于无效的任何时间里,即使HRQ有效,也可以接受CPU对它的编程。CPU对8237A的编程初始化工作是通过8237A的端口进行的。8237A的端口是用A3A2A1A0低4位地址线编址的,共有16个端口地址,其具体编址情况如表2.4.1所示。假设我们以DMA代表16个端口地址的首地址,那么写通道2基字节数计数器的端口地址可表示为
42、DMA05H,写方式寄存器的端口地址可表示为DMA0BH。COMPUTER SCIENCE AND TECHNOLOGY4916个端口地址分为两部分个端口地址分为两部分 (1)00H-07H分配给4个通道的相应的16位寄存器,它们的端口地址分配如下:基和当前地址寄存器端口 基和当前字节数计数器端口 通道0 DMA0 DMA1 通道1 DMA2 DMA3 通值2 DMA4 DMA5 通道3 DMA6 DMA7 由于这几个寄存器都是16位,而8237A只有8位数据线,因此,读/写操作均分两次进行(使用两条I/O指令)。每次读/写前应先用软件命令清除字节指针触发器(即先/后触发器),然后,以先低字节
43、后高字节的顺序进行读/写操作。(2)08H-0FH分配给其他寄存器,其中包括3条不使用数据总线而只利用端口地址进行操作的清除命令。COMPUTER SCIENCE AND TECHNOLOGY508237A的初始化编程命令字总共有8个,其中控制命令有5个:方式字、命令字、请求字、屏蔽字、状态字;清除命令有3个:清先/后触发器软件命令、复位软件命令、清屏蔽寄存器软件命令。COMPUTER SCIENCE AND TECHNOLOGY511控制命令字控制命令字 方式字写入端口地址0BH,其主要功能是:选择传送方式和传送类型,设置自动初始化方式和地址增量方向。命令字写入端口地址08H,其主要功能是:
44、选择DREQ、DACK有效极性,读写时序,优先级编码方式等。请求字写入端口地址09H,其主要功能是:发生软件DMA请求。屏蔽字写入端口地址0AH或0FH,其主要功能是:允许或禁止通道的DMA请求。状态字从端口地址08H读出,其主要功能是:反映通道DMA请求状态和是否有TC信号。COMPUTER SCIENCE AND TECHNOLOGY52方式字方式字 COMPUTER SCIENCE AND TECHNOLOGY53命令字命令字 COMPUTER SCIENCE AND TECHNOLOGY54请求字请求字 COMPUTER SCIENCE AND TECHNOLOGY55一位屏蔽字一位屏
45、蔽字 COMPUTER SCIENCE AND TECHNOLOGY56四位屏蔽字四位屏蔽字 COMPUTER SCIENCE AND TECHNOLOGY57状态字状态字 COMPUTER SCIENCE AND TECHNOLOGY582清除命令清除命令 清除命令有3条。这三条命令与数值无关,不需通过数据总线,即执行输出指令时,AL的内容可随便设置,只要对特定的端口地址执行一次写操作,依靠这个地址和控制信号,命令就生效。这就是所谓的“软件命令”。(1)清先/后触发器软件命令(写入端口地址0CH)即清除字节指针命令,是专为16位寄存器的读/写而设置的。因为数据线是8位,所以16位数据要分两次
46、读/写。而且要使用同一个端口地址。为区分两个高低字节,8237A设置了先/后触发器作为字节指针,为0时对应低字节,为1时对应高字节。而且每次对16位寄存器的读/写操作,都将使字节指针自动翻转一次:由0变1,或由1变0,从而控制高、低字节的读/写。系统复位后,先/后触发器被清0。清先/后触发器软件命令使字节指针(先/后触发器)被清0。(2)复位软件命令(写入端口地址0DH)此命令与硬件的RESET信号功能相同,是软件复位命令,除了使屏蔽寄存器各位置1外,其它各寄存器均被清0,使8237A进入空闲状态,准备接收CPU对它的初始化编程,此时8237A处于从态方式。(3)清屏蔽寄存器软件命令(写入端口
47、地址0EH)其功能是将4个通道的屏蔽位清除,允许它们接受DMA请求。该命令是对屏蔽寄存器操作的第三个命令。COMPUTER SCIENCE AND TECHNOLOGY5938237A的编程步骤的编程步骤(1)CPU发复位软件命令;(2)写入基地址及当前地址值;(3)写入基字节数和当前字节数初值;(4)写入方式字;(5)写入屏蔽字;(6)写入命令字;(7)写入请求字,可用软件DMA请求启动通道,也可在(1)-(6)完成以后,等待外部DREQ请求信号。COMPUTER SCIENCE AND TECHNOLOGY60例例2.4.1 8237A数据块传送数据块传送 设在某8088系统中,用8237
48、A通道1将内存1000H单元开始的24K字节数据转存到软盘之中(暂不考虑20位地址的问题,可认为1000H就是基地址的初值)。采用数据块方式传送,地址增量方式,只传送一遍,设DREQ和DACK低电平有效,当A15-A4=0000 0000 0111时选中8237A,要求设计8237A通道1的初始化程序。COMPUTER SCIENCE AND TECHNOLOGY611端口地址A3-A0由8237A芯片内部译码,编码范围是从0000到1111,再与A15-A4组合,则端口地址范围是0070H-007FH。2传送字节数24K字节对应16进制数为6000H,但写入通道字节数计数器的值应为6000H
49、-1=5FFFH,因为TC的产生不是在计数器由1到0的跳变处,而是在计数器由0到FFFFH的跳变处。所以写入的计数初值应比实际字节数少一个。3方式字按题目要求,方式字的组合为:1000 1001B4一位屏蔽字按题目要求,一位屏蔽字的组合为:0000 0001B5命令字按题目要求,命令字的组合为:0100 0000BCOMPUTER SCIENCE AND TECHNOLOGY626初始化程序START:MOVDX,007DH;发复位软件命令OUTDX,ALMOVDX,0072HMOVAL,00HOUTDX,AL;送基地址和当前地扯低8位MOVAL,10HOUTDX,AL;送基地址和当前地址高8
50、位MOVDX,0073HMOVAL,0FFH;送基计数值和当前计数值低8位OUTDX,ALMOVAL,5FH;送基计数值和当前计数值高8位OUTDX,ALMOVDX,007BHMOVAL,89H;写入方式控制字,DMA读传送OUTDX,ALMOVDX,007AHMOVAL,01H;写入屏蔽字OUTDX,ALMOVDX,0078HMOVAL,40H;写入命令控制字OUTDX,ALCOMPUTER SCIENCE AND TECHNOLOGY632.4.5 8237A在在PC机中的应用机中的应用 COMPUTER SCIENCE AND TECHNOLOGY6474LS148的引脚和逻辑关系的引脚