1、第第8章章 I/O接口与接口与DMA技术技术本章主要内容本章主要内容1.I/O接口的基本概念接口的基本概念2.I/O控制方式控制方式3.DMA接口技术接口技术4.可编程可编程DMA控制器控制器82378.1 I/O接口概述接口概述8.1.1 I/O接口的基本功能接口的基本功能 (1)数据缓冲数据缓冲 (2)提供联络信息提供联络信息 (3)信号与信息格式的转换信号与信息格式的转换 (4)设备选择设备选择 (5)中断管理中断管理 (6)可编程功能可编程功能8.1.2 I/O接口的基本结构接口的基本结构nI/O接口的基本结构如图8.1所示。cpu外外 围围 设设 备备 数据输入寄存器数据输入寄存器数
2、据输出寄存器数据输出寄存器状态寄存器状态寄存器 控制寄存器控制寄存器中断控制逻辑中断控制逻辑数据总线数据总线地址总线地址总线控制总线控制总线图图8.1 I/O 接口的基本结构接口的基本结构I/O接口接口8.1.3 I/O端口的编址方式端口的编址方式n输入输出接口包含一组称为输入输出接口包含一组称为I/O端口的寄存器。为了让端口的寄存器。为了让CPU能够访问这些能够访问这些I/O端口,每个端口,每个I/O端口都需有自己端口都需有自己的端口地址的端口地址(或端口号或端口号)。n在一个微型计算机系统中,如何编排这些在一个微型计算机系统中,如何编排这些I/O接口的端接口的端口地址,称为口地址,称为I/
3、O端口的编址方式。端口的编址方式。n常见的常见的I/O端口编址方式有两种端口编址方式有两种:n一种是一种是I/O端口和存储器端口和存储器统一编址统一编址,也称存储器映像的,也称存储器映像的I/O(MemoryMapped I/O)方式;方式;n另一种是另一种是I/O端口和存储器端口和存储器分开编址分开编址,也称,也称I/O映像的映像的I/O(I/O Mapped I/O)方式方式1.I/O端口和存储器统一编址端口和存储器统一编址n(Memory-mapped I/O)nI/O端口和存储器统一编址的地址空间分布情况如图端口和存储器统一编址的地址空间分布情况如图8.2所示。所示。I/O 端口端口存
4、储单元存储单元I/O 地址空间地址空间存储器地址空间存储器地址空间整个地址空间整个地址空间图图8.2 I/O 端口和存储器统一编址端口和存储器统一编址n这种编址方式的优点是,这种编址方式的优点是,可以用访向存储器的指令来可以用访向存储器的指令来访问访问I/O端口,而访问存储器的指令功能比较强,不仅端口,而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对各种移位、比较指令等,并且可以实现直接对I/O端口端口内的数据进行处理。内的数据进行处理。n例如,若一个存储器映像的例如,若一个存
5、储器映像的I/O端口地址为端口地址为3000H,n则可以直接用指令则可以直接用指令“ADD AL,DS:3000H”对端口对端口的内容进行算术运算。的内容进行算术运算。n缺点是:缺点是:n由于由于I/O端口占用了一部分存储器地址空间,因而使用端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小;户的存储地址空间相对减小;n另外,由于利用访问存储器的指令来进行另外,由于利用访问存储器的指令来进行I/O操作,指操作,指令的长度通常比单独令的长度通常比单独I/O指令要长,因而指令的执行时指令要长,因而指令的执行时间也较长。间也较长。n微处理器微处理器MC6800系列、系列、6502系列以
6、及系列以及MC680 x0系列系列采用这种编址方式。采用这种编址方式。2.I/O端口和存储器单独编址端口和存储器单独编址 (I/O-mapped I/O)nI/O端口和存储器单独编址的地址空间分布如图端口和存储器单独编址的地址空间分布如图8.3所所示。示。存储单元存储单元存储地址空存储地址空间间I/O 端口端口I/O 地址空间地址空间图图8.3 I/O 端口和存储器单独编址端口和存储器单独编址 n这种编址方式的这种编址方式的优点是:优点是:n第一,第一,I/O端口不占用存储器地址,故不会减少用户的端口不占用存储器地址,故不会减少用户的存储器地址空间;存储器地址空间;n第二,单独第二,单独I/O
7、指令的地址码较短,地址译码方便,指令的地址码较短,地址译码方便,I/O指令短,执行速度快;指令短,执行速度快;n第三,采用单独的第三,采用单独的I/O指令,使程序中指令,使程序中I/O操作和其他操作和其他操作层次清晰,便于理解。操作层次清晰,便于理解。n这种编址方式的这种编址方式的缺点是:缺点是:n第一,单独第一,单独I/O指令的功能有限,只能对端口数据进行指令的功能有限,只能对端口数据进行输入输入/输出操作,不能直接进行移位、比较等其他操作;输出操作,不能直接进行移位、比较等其他操作;n第二,由于采用了专用的第二,由于采用了专用的I/O操作时序及操作时序及I/O控制信号控制信号线,因而增加了
8、微处理器本身控制逻辑的复杂性。线,因而增加了微处理器本身控制逻辑的复杂性。n微处理器微处理器Z80系列、系列、Intel 80 x86系列采用了这种编址方系列采用了这种编址方式。式。8.1.4 I/O接口的地址分配接口的地址分配表表8-1 系统板系统板I/O端口地址分配端口地址分配地址空间地址空间器件器件/接口适配器接口适配器实际使用端口地址实际使用端口地址0000001FHDMA控制器控制器8237000FH0020003FH中断控制器中断控制器8259A2021H0040005FH计数器计数器/定时器定时器82534043H0060007FH并行接口片并行接口片8255A6063H0080
9、009FHDMA页面寄存器页面寄存器(74LS670)8083H00A000BFHNMI寄存器寄存器A0H00C001FFH未用未用表表8-2 扩展槽扩展槽I/O端口地址分配端口地址分配地址空间地址空间器件器件/接口适配器接口适配器地址空间地址空间器件器件/接口适配器接口适配器20020FH游戏卡游戏卡38038FHSDLC通信卡通信卡210217H扩充部件扩充部件3903AFH未用未用2182F7H未用未用3B03BFH单显单显/打印卡打印卡2F82FFH异步通信卡异步通信卡(COM2)3C03CFH未用未用30031FH未用未用3D03DFH彩显彩显/图形卡图形卡32032FH硬盘卡硬盘卡
10、3E03EFH未用未用330377H未用未用3F03F7H软盘卡软盘卡37837FH打印卡打印卡3F83FFH异步通信卡异步通信卡(COM1)8.1.5 I/O接口的地址译码及片选信号的产生接口的地址译码及片选信号的产生在一个微机系统中通常具有多台外设,当在一个微机系统中通常具有多台外设,当CPU与外设进与外设进行通信时,需要对各个设备所对应的接口芯片进行逻辑行通信时,需要对各个设备所对应的接口芯片进行逻辑选择,从而实现与相应的设备进行数据交换。选择,从而实现与相应的设备进行数据交换。这种逻辑选择功能是由这种逻辑选择功能是由I/O接口电路中的地址译码器实接口电路中的地址译码器实现的。现的。目前
11、常见的一种做法是目前常见的一种做法是:先通过对:先通过对I/O端口地址的某几端口地址的某几位高位地址进行译码,产生有效的片选信号,从而选中位高位地址进行译码,产生有效的片选信号,从而选中对应的接口芯片,再利用对应的接口芯片,再利用I/O端口地址的低位地址作为端口地址的低位地址作为对接口芯片内部有关寄存器的选择。对接口芯片内部有关寄存器的选择。n例如,在例如,在IBMPC/XT微机中,其系统板上有数片微机中,其系统板上有数片I/O接口芯片,其中包括接口芯片,其中包括DMA控制器控制器8237、中断控制器、中断控制器8259A、并行接口、并行接口8255A、计数器、计数器/定时器定时器8253等。
12、等。n这些接口芯片必须是在相应的片选信号有效时才能工这些接口芯片必须是在相应的片选信号有效时才能工作。作。n图图8.4所示的就是在该微机系统中片选信号的产生电路。所示的就是在该微机系统中片选信号的产生电路。A Y0 B Y1 C Y2 Y3 Y4G2B Y5 G2A Y6 G1 Y7A5A6A874LS138A7A9AENPPICST/C CSINTRCSDMACSIOWWRTDMAPG(写写DMA页面寄存器页面寄存器)WRTNMIREG(写(写NMI屏蔽寄存器)屏蔽寄存器)图图8.4 片选信号的产生片选信号的产生8.2 I/O控制方式控制方式n主机与外围设备之间的数据传送控制方式主机与外围设
13、备之间的数据传送控制方式(即即I/O控制控制方式方式)主要有三种:主要有三种:n程序控制方式程序控制方式、中断控制方式中断控制方式和和直接存储器存取直接存储器存取(DMA)方式。方式。8.2.1 程序控制方式程序控制方式n程序控制方式是指在程序控制下进行的数据传送方式。程序控制方式是指在程序控制下进行的数据传送方式。它又分为无条件传送和程序查询传送两种。它又分为无条件传送和程序查询传送两种。1.无条件传送方式无条件传送方式n优点:优点:n缺点:缺点:2.程序查询传送方式程序查询传送方式优点:优点:缺点:缺点:准备好?准备好?读取状态信息读取状态信息输入数据输入数据是是否否图图8.5 查询式输入
14、程序流程图查询式输入程序流程图忙?忙?读取状态信息读取状态信息输出数据输出数据否否是是图图8.6 查询式输出程序流程图查询式输出程序流程图8.2.2 中断控制方式中断控制方式n与程序查询方式相比,中断控制方式的数据交换具有与程序查询方式相比,中断控制方式的数据交换具有如下特点如下特点:n(1)提高了提高了CPU的工作效率的工作效率;n(2)外围设备具有申请服务的主动权外围设备具有申请服务的主动权;n(3)CPU可以和外设并行工作可以和外设并行工作;n(4)可适合实时系统对可适合实时系统对I/O处理的要求。处理的要求。8.2.3 DMA方式方式1.DMA的基本概念的基本概念n采用程序控制方式以及
15、中断方式进行数据传送时,都采用程序控制方式以及中断方式进行数据传送时,都是靠是靠CPU执行程序指令来实现数据的输入执行程序指令来实现数据的输入/输出的。输出的。n采用程序控制方式及中断方式时,数据的传输率不会采用程序控制方式及中断方式时,数据的传输率不会很高。很高。n对于高速外设对于高速外设,如高速磁盘装置或高速数据采集系统,如高速磁盘装置或高速数据采集系统等,采用这样的传送方式,往往满足不了其数据传输等,采用这样的传送方式,往往满足不了其数据传输率的要求。率的要求。n例如,对于磁盘装置,其数据传输率通常在例如,对于磁盘装置,其数据传输率通常在20万字节万字节/秒以上,即传输一个字节的时间要小
16、于秒以上,即传输一个字节的时间要小于5s。n对于通常的对于通常的PC机来说,执行一条程序指令平均需要几机来说,执行一条程序指令平均需要几s时时间。显然,采用程序控制或中断方式不能满足这种高速外间。显然,采用程序控制或中断方式不能满足这种高速外设的要求。设的要求。n由此产生由此产生不需要不需要CPU干预干预(不需不需CPU执行程序指令执行程序指令),而在,而在专门硬件控制电路控制之下进行的外设与存储器间直接数专门硬件控制电路控制之下进行的外设与存储器间直接数据传送的方式据传送的方式,称为直接存储器存取,称为直接存储器存取(Direct Memory Access),简称简称DMA方式方式。n这一
17、专门的硬件控制电路称为这一专门的硬件控制电路称为DMA控制器,简称控制器,简称DMAC。CPU外设外设存储器存储器总线总线:执行程序指令的数据传送路径;:执行程序指令的数据传送路径;:DMA方式的数据传送路径方式的数据传送路径图图8.7 两种不同的数据传送路径两种不同的数据传送路径内存外设DMAC输出输入外设外设DMAC内存内存DMAC图图 8.8 DMA传送的几种形式传送的几种形式8.3 DMA接口技术接口技术8.3.1 DMA控制器的基本功能控制器的基本功能n(1)能接收能接收I/O接口的接口的DMA请求,并向请求,并向CPU发出总线请发出总线请求信号;求信号;n(2)当当CPU发出总线回
18、答信号后,接管对总线的控制,发出总线回答信号后,接管对总线的控制,进入进入DMA传送过程;传送过程;n(3)能实现有效的寻址,即能输出地址信息并在数据传能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;送过程中自动修改地址;n(4)能向存储器和能向存储器和I/O接口发出相应的读接口发出相应的读/写控制信号;写控制信号;n(5)能控制数据传送的字节数,控制能控制数据传送的字节数,控制DMA传送是否结束;传送是否结束;n(6)在在DMA传送结束后,能释放总线给传送结束后,能释放总线给CPU,恢复,恢复CPU对对总线的控制。总线的控制。8.3.2 DMA控制器的一般结构控制器的一般结
19、构n一个单通道一个单通道DMA控制器的一般结构及其与控制器的一般结构及其与I/O接口的接口的连接如图连接如图8.9所示。所示。n图图8.9的上半部分是的上半部分是I/O接口,下半部分是接口,下半部分是DMA控制器。控制器。计数结束信号计数结束信号(可作为中断请求信号)(可作为中断请求信号)控制寄存器控制寄存器 状态寄存器状态寄存器数据输入寄存器数据输入寄存器数据输出寄存器数据输出寄存器控制寄存器控制寄存器 状态寄存器状态寄存器地址寄存器地址寄存器字节计数寄存器字节计数寄存器数据总线数据总线控制总线控制总线数据总线数据总线控制总线控制总线地址总线地址总线地址总线地址总线地址译地址译码器码器 DM
20、A控制器控制器DMA请求请求DMA响应响应中断请求中断请求外设外设I/O 接口接口总线回答总线回答总线请求总线请求图图8.9 DMA控制器的一般结构及其与控制器的一般结构及其与I/O 接口的连接接口的连接8.3.3 DMA控制器的工作方式控制器的工作方式 DMA控制器的工作方式通常有控制器的工作方式通常有“单字节传输方式单字节传输方式”、“块传输方式块传输方式”以及以及“请求传输方式请求传输方式”等,下面分别等,下面分别予以说明。予以说明。1.单字节传输方式单字节传输方式n在单字节传输方式下,在单字节传输方式下,DMA控制器每次请求总线只传控制器每次请求总线只传送一个字节数据,传送完后即释放总
21、线控制权。送一个字节数据,传送完后即释放总线控制权。n在此方式下,总线控制权处于在此方式下,总线控制权处于CPU与与DMA控制器交替控制器交替控制之中,其间,总线控制权经过多次交换。控制之中,其间,总线控制权经过多次交换。2.块传输方式块传输方式(也称成组传输方式也称成组传输方式)n块传输方式是指块传输方式是指DMA控制器每次请求总线即连续传送控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总一个数据块,待整个数据块全部传送完成后再释放总线控制权。线控制权。3.请求传输方式请求传输方式n每传输完一个字节,每传输完一个字节,DMA控制器都要检测由控制器都要检测由I/O接口
22、接口发来的发来的“DMA请求请求”信号是否仍然有效,如果该信号信号是否仍然有效,如果该信号仍有效,则继续进行仍有效,则继续进行DMA传输;传输;n否则,就暂停传输,交还总线控制权给否则,就暂停传输,交还总线控制权给CPU,直至,直至“DMA请求请求”信号再次变为有效,数据块传输则从刚信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。才暂停的那一点继续进行下去。8.3.4 DMA工作过程工作过程 在在DMA方式下,往往传送的是一个数据块,但传送这方式下,往往传送的是一个数据块,但传送这个数据块的具体操作方式,可以采用上面介绍的单字个数据块的具体操作方式,可以采用上面介绍的单字节传输方
23、式,也可采用块传输或请求传输方式。节传输方式,也可采用块传输或请求传输方式。n下面先以从下面先以从内存输出一个字节数据到外设内存输出一个字节数据到外设的的DMA传送传送过程为例,具体说明过程为例,具体说明DMA的操作过程。的操作过程。n然后再给出然后再给出以以DMA方式输入一个数据块方式输入一个数据块的工作过程。的工作过程。以以DMA方式从内存输出一个字节数据到外设的具体工方式从内存输出一个字节数据到外设的具体工作过程如图作过程如图8.10中第步所示。中第步所示。(6)内存把数据送数据总线内存把数据送数据总线(7)接口锁存数据接口锁存数据内存内存接口接口DMA控制器控制器I/O 设备设备808
24、6 和总线和总线控制逻辑控制逻辑HOLD HLDA(1)接口准备就绪,发接口准备就绪,发DMA请求请求(2)发总线请求发总线请求(3)总线允许总线允许(5)DMA请求得到确认请求得到确认(9)8086收回总线控制权收回总线控制权(8)撤销总线请求撤销总线请求(4)DMA控制器把地址送地址总线控制器把地址送地址总线数据总线数据总线控制总线控制总线地址总线地址总线图图 8.10 以以DMA方式输出一个字节数据的工作过程方式输出一个字节数据的工作过程n若从外设往内存输入一个数据块若从外设往内存输入一个数据块(输入过程输入过程),在,在单字节传输单字节传输方式下方式下,其主要工作过程为:,其主要工作过
25、程为:n(1)I/O接口向接口向DMA控制器发送控制器发送DMA请求信号;请求信号;n(2)DMA控制器向控制器向CPU发总线请求信号,当得到发总线请求信号,当得到CPU送来送来的总线允许信号后,的总线允许信号后,DMA控制器获得总线控制权;控制器获得总线控制权;n(3)DMA控制器将其地址寄存器的内容送到地址总线上。控制器将其地址寄存器的内容送到地址总线上。n(4)DMA控制器往控制器往I/O接口发送接口发送DMA响应信号,并接着响应信号,并接着发出读发出读I/O接口信号接口信号IOR,令,令I/O接口把数据送到数据接口把数据送到数据总线上;总线上;n(5)DMA控制器发出存储器写信号控制器
26、发出存储器写信号MEMW,将数据传,将数据传送到由地址总线上的地址所指向的内存单元;送到由地址总线上的地址所指向的内存单元;n(6)DMA控制器放弃对总线的控制权;控制器放弃对总线的控制权;n(7)地址寄存器加地址寄存器加1;n(8)字节计数寄存器减字节计数寄存器减1;n(9)如果字节计数寄存器的值不为零,则返回第一步,如果字节计数寄存器的值不为零,则返回第一步,否则结束。否则结束。8.4 可编程可编程DMA控制器控制器8237nDMA Chip 8237An-A Detour Highway in the PC.nIntel 8237是一种功能很强的可编程是一种功能很强的可编程DMA控制器控
27、制器,广泛广泛应用于微型计算机系统中。应用于微型计算机系统中。n采用采用5MHz时钟时,其传输速率可达时钟时,其传输速率可达1.6M字节字节/秒;秒;n一片一片8237内部有内部有四个独立的四个独立的DMA通道通道,每个通道一次,每个通道一次DMA传送的最大长度可达传送的最大长度可达64K字节。字节。n每个通道的每个通道的DMA请求都可以分别允许和禁止请求都可以分别允许和禁止;不同通;不同通道的道的DMA请求有不同的优先级请求有不同的优先级,优先级可以是固定的,优先级可以是固定的,也可以是循环的也可以是循环的(可编程设定可编程设定);n四个通道可以分时地为四个通道可以分时地为四个外部设备四个外
28、部设备实现实现DMA传送,传送,也可以同时使用其中的通道也可以同时使用其中的通道0和通道和通道1实现实现存储器到存存储器到存储器的直接传送储器的直接传送,还可以用多片,还可以用多片8237进行进行级联级联,从而,从而构成更多的构成更多的DMA通道。通道。IntelnEnable/Disable Control of Individual DMA Request nFour Independent DMA ChannelsnIndependent Autoinitialization of all ChannelsnMemory-to-Memory TransfersnMemory Block
29、InitializationnAddress Increment or Decrement nHigh Performance:Transfers up to 1.6M Bytes/Second with 5 MHz 8237-2nDirectly Expandable to any Number of Channels nEnd of Process Input for Terminating TransfersnSoftware DMA RequestsnIndependent Polarity Control for DREQ and DACK Signals8237/8237-2HIG
30、H PERFORMANCEPROGRAMMABLE DMA CONTROLLER8.4.1 8237的结构的结构nDMA控制器控制器8237的结构框图及在系统中的有关逻辑如图的结构框图及在系统中的有关逻辑如图8.11所示。所示。n图中只画了一个通道的具体情况,其他通道与此相同。图中只画了一个通道的具体情况,其他通道与此相同。命令寄存器命令寄存器状态寄存器状态寄存器模式寄存器模式寄存器基字节数寄存器基字节数寄存器基地址寄存器基地址寄存器当前字节数寄存器当前字节数寄存器当前地址寄存器当前地址寄存器暂存寄存器暂存寄存器请求位请求位 屏蔽位屏蔽位通道通道0(6位位)(8位位)(8位位)(8位位)通道通
31、道1通道通道3通道通道2_IOR_MEMR_IOW_MEMWREADYRESETDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3HRQHLDACLKAENADSTBDB7DB0A3A0A7A4_CSA15A8A7A0_OESTB8位锁存器位锁存器地址地址译码器译码器 _IO/M数据数据总线总线使使CPU的总线信号无效的总线信号无效HOLDHLDAClock_EOP+5VVccGND图图8.11 8237的结构及有关逻辑的结构及有关逻辑表表8-3 8237内部寄存器内部寄存器寄存器名称寄存器名称位数位数数量数量CPU访问方式访问方式基地址寄存器基地址寄存器16位位
32、4只写只写基字节计数寄存器基字节计数寄存器16位位4只写只写当前地址寄存器当前地址寄存器16位位4可读可写可读可写当前字节计数寄存器当前字节计数寄存器16位位4可读可写可读可写临时地址寄存器临时地址寄存器16位位4不可访问不可访问临时字节计数寄存器临时字节计数寄存器16位位4不可访问不可访问命令寄存器命令寄存器8位位1只写只写状态寄存器状态寄存器8位位1只读只读暂存寄存器暂存寄存器8位位1只读只读模式寄存器模式寄存器6位位4只写只写屏蔽寄存器屏蔽寄存器4位位1只写只写请求寄存器请求寄存器4位位1只写只写8.4.2 8237的引脚的引脚n8237芯片采用芯片采用40个引脚双列直插封装,其引脚配置
33、个引脚双列直插封装,其引脚配置(pin configuration)如图如图8.12所示。所示。图图8.12 8237的引脚配置的引脚配置8237/8237-2A7Vcc(+5V)A0A1A2A3EOPA4A5A6DB0DB1IORHRQAENADSTBHLDAREADY(NOTE 11)MEMWMEMRIOWCSRESETCLKDB2DB5DACK0DB4DB3DB7DB6DACK1DACK2DACK3DREQ3DREQ2DREQ1DREQ0(GND)Vss11098765432112019181716151312403132333435363738393021222425262728291
34、4238.4.3 8237的工作方式的工作方式 8237具有四种工作方式:具有四种工作方式:n1.单字节传送方式单字节传送方式(single transfer mode)n2.块传送方式块传送方式(block transfer mode)n3.请求传送方式请求传送方式(demand transfer mode)n4.级联方式级联方式(cascade mode)n在级联方式下,将多个在级联方式下,将多个8237级联起来,以扩展级联起来,以扩展DMA通通道数。后一级的道数。后一级的HRQ和和HLDA信号连到前一级的信号连到前一级的DREQ和和DACK上,如图上,如图8.13所示。所示。微处理器微处
35、理器 HOLD HLDA DREQ0 DACK0 HRQ .HLDA .8237 DREQ3 DACK38237HRQHLDAHRQHLDA8237第二级第二级第一级第一级图图 8.13 8237的级联的级联nDirectly Expandable to any Number of Channels n另外,在前三种工作方式下,另外,在前三种工作方式下,DMA传送有三种类型,传送有三种类型,它们是:它们是:读传送、写传送和校验传送。读传送、写传送和校验传送。nDMA读传送读传送是指把数据由存储器传送至是指把数据由存储器传送至I/O接口接口(可简可简记为记为MI/O),操作时先由,操作时先由ME
36、MR有效从存储器读出有效从存储器读出数据放在数据总线上,然后再由数据放在数据总线上,然后再由IOW有效把数据写入有效把数据写入I/O接口;接口;nDMA写传送写传送是指把数据由是指把数据由I/O接口传送至存储器,操接口传送至存储器,操作时先由作时先由IOR有效从有效从I/O接口读出数据放在数据总线上,接口读出数据放在数据总线上,然后再由然后再由MEMW有效把数据写入存储器有效把数据写入存储器.n校验传送校验传送也被称为假传送也被称为假传送(pseudo transfers)。在校验在校验传送时,传送时,8237虽然也像读传送或写传送一样地产生地虽然也像读传送或写传送一样地产生地址以及响应址以及
37、响应EOP信号等,信号等,但存储器和但存储器和I/O接口的读、写接口的读、写控制信号均处于无效状态,所以实际上并不进行真正控制信号均处于无效状态,所以实际上并不进行真正的数据传送。的数据传送。n这种传送类型一般是用于对这种传送类型一般是用于对DMAC器件测试时使用。器件测试时使用。8.4.4 8237的寄存器及有关问题的说明的寄存器及有关问题的说明1.当前地址寄存器当前地址寄存器2.当前字节计数寄存器当前字节计数寄存器3.基地址和基字节计数寄存器基地址和基字节计数寄存器n基寄存器的内容不能被基寄存器的内容不能被CPU读出,而当前寄存器的内读出,而当前寄存器的内容可以被容可以被CPU读出。读出。
38、4.模式寄存器模式寄存器n模式字的格式如图模式字的格式如图8.14所示。所示。D7D6D5D4D3D2D1D00 地址增一地址增一1 地址减一地址减一0 禁止自动初始化禁止自动初始化1 允许自动初始化允许自动初始化00 选择通道选择通道001 选择通道选择通道110 选择通道选择通道211 选择通道选择通道300 校验传送校验传送01 写传送写传送10 读传送读传送11 非法非法XX 若若D7D6=1100 请求传送方式请求传送方式01 单字节传送方式单字节传送方式10 块传送方式块传送方式11 级联方式级联方式图图8.14 模式字格式模式字格式5.命令寄存器命令寄存器n命令寄存器是四个通道公
39、用的一个命令寄存器是四个通道公用的一个8位寄存器,用以控位寄存器,用以控制整个制整个8237的操作。的操作。n一片一片8237只有一个命令寄存器,其内容对四个通道都只有一个命令寄存器,其内容对四个通道都有效。有效。n编程时,由编程时,由CPU对它写入命令字,命令字的格式如图对它写入命令字,命令字的格式如图8.15所示。所示。D7D6D5D4D3D2D1D00 DACK低电平有效低电平有效1 DACK高电平有效高电平有效0 DREQ高电平有效高电平有效1 DREQ低电平有效低电平有效 0 正常写正常写1 扩展写扩展写X 若若D3=10 固定优先级固定优先级1 循环优先级循环优先级0 禁止存储器到
40、存储器传送1 允许存储器到存储器传送0 禁止通道禁止通道0地址保存地址保存1 允许通道允许通道0地址保存地址保存X 若若D0=00 控制器允许控制器允许1 控制器禁止控制器禁止0 普通时序普通时序1 压缩时序压缩时序X 若若D0=1图图8.15 命令寄存器命令寄存器(1)D0位用来规定是否工作在位用来规定是否工作在存储器到存储器的传送存储器到存储器的传送方式。方式。n当当8237工作在这种传送方式时,要使用通道工作在这种传送方式时,要使用通道0和通道和通道1两个两个DMA通通:通道通道0的地址寄存器编程为源区地址的地址寄存器编程为源区地址;通道通道1的地址寄存器编程为目的区地址的地址寄存器编程
41、为目的区地址;通道通道1的字节计数寄存器编程为传送的字节数。的字节计数寄存器编程为传送的字节数。n由于此传送过程没有外部设备参与,因此不需一个外部引由于此传送过程没有外部设备参与,因此不需一个外部引入的入的DREQ信号来启动。信号来启动。n传送是由设置通道传送是由设置通道0的软件的软件DMA请求来启动的。请求来启动的。n每传送一个字节要用每传送一个字节要用8个时钟周期,其中前个时钟周期,其中前4个时钟周期以个时钟周期以通道通道0的当前地址寄存器内容为源地址读出数据送入的当前地址寄存器内容为源地址读出数据送入暂存暂存寄存器寄存器,后,后4个时钟周期以通道个时钟周期以通道1的当前地址寄存器内容为的
42、当前地址寄存器内容为目的地址把暂存寄存器中的数据写入目的区。目的地址把暂存寄存器中的数据写入目的区。n每传送一个字节,源地址和目的地址都要修改每传送一个字节,源地址和目的地址都要修改(增增1或减或减1),字节数减字节数减1。直至通道。直至通道1的字节计数结束,产生的字节计数结束,产生EOP有效信有效信号,才停止号,才停止DMA传送。传送。(2)D1位用来设定在存储器到存储器传送的整个过程中,位用来设定在存储器到存储器传送的整个过程中,通道通道0中的源地址是否保持不变。中的源地址是否保持不变。n若若D11,则通道,则通道0中的源地址保持不变,中的源地址保持不变,DMA传送的传送的结果是将结果是将
43、源区的同一个数据字节写入到整个目的区中源区的同一个数据字节写入到整个目的区中;若若D10,则表示通道,则表示通道0中的源地址可以修改。中的源地址可以修改。n若若D00,则不允许存储器到存储器的传送,此时,则不允许存储器到存储器的传送,此时D1位无意义。位无意义。n(3)D2位是用于允许位是用于允许(Enable)或禁止或禁止(Disable)8237工作工作的控制位。的控制位。(4)D3、D5位是与时序有关的控制位,详见后面的时序说位是与时序有关的控制位,详见后面的时序说明。明。(5)D4位用来设定通道优先权结构。位用来设定通道优先权结构。n当当D40时,为固定优先权时,为固定优先权,通道,通
44、道0的优先权最高,其他的优先权最高,其他通道的优先权随通道号的增大而递减,通道通道的优先权随通道号的增大而递减,通道3的优先权最的优先权最低;低;n当当D4=1时,为循环优先权时,为循环优先权,即在每次,即在每次DMA服务之后,各服务之后,各个通道的优先权都发生变化,刚刚服务过的通道其优先个通道的优先权都发生变化,刚刚服务过的通道其优先权变为最低,它后面通道的优先权变为最高。如表权变为最低,它后面通道的优先权变为最高。如表8-4所所示。示。表表8-4 优先权循环的情况优先权循环的情况 第一次服务第一次服务第二次服务第二次服务第三次服务第三次服务最高优先权最高优先权02 服务服务3 服务服务1服
45、务服务3 请求请求02请求请求01最低优先权最低优先权312n需注意的是,需注意的是,DMA的优先权排序只是用来决定同时请的优先权排序只是用来决定同时请求求DMA服务的通道的响应次序,而任何一个通道一旦服务的通道的响应次序,而任何一个通道一旦进入进入DMA服务,其他通道都不能打断它的服务,这一服务,其他通道都不能打断它的服务,这一点和中断服务的情况是不同的。点和中断服务的情况是不同的。n(6)D6、D7位用于设定位用于设定DREQ和和DACK的有效电平极性。的有效电平极性。6.请求寄存器请求寄存器n8237的每个通道除了可以响应硬件的的每个通道除了可以响应硬件的DMA请求信号请求信号(DREQ
46、)外,当其工作在块传送方式时也可以响应由软外,当其工作在块传送方式时也可以响应由软件发出的件发出的DMA请求。请求。n软件的软件的DMA请求是通过使相应通道的请求是通过使相应通道的“请求请求位位”(requestbit)置位来实现的,它等效于外部产生置位来实现的,它等效于外部产生一个有效的一个有效的DREQ信号。信号。n8237每一个通道有一位每一个通道有一位“请求位请求位”,四个通道的请求,四个通道的请求位构成一个位构成一个4位的请求寄存器。位的请求寄存器。n对请求寄存器的命令字对请求寄存器的命令字(请求命令字请求命令字)格式如图格式如图8.16所示。所示。D7D6D5D4D3D2D1D00
47、0 选择通道选择通道001 选择通道选择通道110 选择通道选择通道211 选择通道选择通道30 清除请求清除请求1 设置请求设置请求无关无关图图8.16 请求命令字请求命令字n一个通道的一个通道的DMA传输结束后,其请求位被清除。复位传输结束后,其请求位被清除。复位操作将使整个请求寄存器清除。操作将使整个请求寄存器清除。n只有在块传送方式时,才允许使用软件请求,若用于只有在块传送方式时,才允许使用软件请求,若用于存储器到存储器的传送,则必须用对通道存储器到存储器的传送,则必须用对通道0的软件请求的软件请求来启动传送过程。来启动传送过程。7.屏蔽寄存器屏蔽寄存器n8237每个通道有一位每个通道
48、有一位“屏蔽位屏蔽位”(mask bit),当其通道,当其通道的的“屏蔽位屏蔽位”置置1时,则外部对应的时,则外部对应的DREQ信号被屏蔽,信号被屏蔽,不予响应,从而禁止了该通道的不予响应,从而禁止了该通道的DMA操作。操作。n四个通道的四个通道的“屏蔽位屏蔽位”构成一个构成一个4位的屏蔽寄存器。位的屏蔽寄存器。n有两种屏蔽寄存器的命令字格式:有两种屏蔽寄存器的命令字格式:n一种是单独对某一个通道的屏蔽位进行置位或复位,一种是单独对某一个通道的屏蔽位进行置位或复位,如图如图8.17(a)所示;所示;n另一种是可以同时设定四个通道的屏蔽位,也称综合另一种是可以同时设定四个通道的屏蔽位,也称综合屏
49、蔽命令字,如图屏蔽命令字,如图8.17(b)所示。所示。D7D6D5D4D3D2D1D000 选择通道选择通道001 选择通道选择通道110 选择通道选择通道211 选择通道选择通道30 清除屏蔽位清除屏蔽位1 置位屏蔽位置位屏蔽位无关无关(a)图图8.17 屏蔽字的两种格式屏蔽字的两种格式D7D6D5D4D3D2D1D0无关无关0 清通道清通道0屏蔽位屏蔽位1 置位通道置位通道0屏蔽位屏蔽位0 清通道清通道1屏蔽位屏蔽位1 置位通道置位通道1屏蔽位屏蔽位0 清通道清通道3屏蔽位屏蔽位1 置位通道置位通道3屏蔽位屏蔽位0 清通道清通道2屏蔽位屏蔽位1 置位通道置位通道2屏蔽位屏蔽位(b)图图8
50、.17 屏蔽字的两种格式屏蔽字的两种格式8.状态寄存器状态寄存器n8237有一个可由有一个可由CPU读取的状态寄存器,如图读取的状态寄存器,如图8.18所所示。示。nCPU通过读取状态寄存器的内容可以了解通过读取状态寄存器的内容可以了解DMA进行的进行的情况。情况。D7D6D5D4D3D2D1D01 通道3请求1 通道2请求1 通道1请求1 通道0请求1 通道0传输结束1 通道1传输结束1 通道2传输结束1 通道3传输结束图图8.18 状态存储器状态存储器8.4.5 特殊软件命令特殊软件命令nCPU向向8237输出的软件命令可分为两种不同类型,一输出的软件命令可分为两种不同类型,一类是不仅与写