《微型计算机基本原理与应用》课件第8章 IO接口与DMA技术_第1页
《微型计算机基本原理与应用》课件第8章 IO接口与DMA技术_第2页
《微型计算机基本原理与应用》课件第8章 IO接口与DMA技术_第3页
《微型计算机基本原理与应用》课件第8章 IO接口与DMA技术_第4页
《微型计算机基本原理与应用》课件第8章 IO接口与DMA技术_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章I/O接口与DMA技术本章主要内容1.I/O接口的基本概念2.I/O控制方式3.DMA接口技术4.可编程DMA控制器82378.1I/O接口概述8.1.1I/O接口的基本功能

(1)数据缓冲

(2)提供联络信息

(3)信号与信息格式的转换

(4)设备选择

(5)中断管理

(6)可编程功能8.1.2I/O接口的基本结构I/O接口的基本结构如图8.1所示。cpu外围设备数据输入寄存器数据输出寄存器状态寄存器

控制寄存器中断控制逻辑数据总线地址总线控制总线图8.1I/O接口的基本结构I/O接口8.1.3I/O端口的编址方式输入输出接口包含一组称为I/O端口的寄存器。为了让CPU能够访问这些I/O端口,每个I/O端口都需有自己的端口地址(或端口号)。在一个微型计算机系统中,如何编排这些I/O接口的端口地址,称为I/O端口的编址方式。常见的I/O端口编址方式有两种:一种是I/O端口和存储器统一编址,也称存储器映像的I/O(MemoryMappedI/O)方式;另一种是I/O端口和存储器分开编址,也称I/O映像的I/O(I/OMappedI/O)方式1.I/O端口和存储器统一编址(Memory-mappedI/O)I/O端口和存储器统一编址的地址空间分布情况如图8.2所示。I/O端口存储单元I/O地址空间存储器地址空间整个地址空间图8.2I/O端口和存储器统一编址这种编址方式的优点是,可以用访向存储器的指令来访问I/O端口,而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对I/O端口内的数据进行处理。例如,若一个存储器映像的I/O端口地址为3000H,则可以直接用指令“ADDAL,DS:[3000H]”对端口的内容进行算术运算。缺点是:由于I/O端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小;另外,由于利用访问存储器的指令来进行I/O操作,指令的长度通常比单独I/O指令要长,因而指令的执行时间也较长。微处理器MC6800系列、6502系列以及MC680x0系列采用这种编址方式。2.I/O端口和存储器单独编址

(I/O-mappedI/O)I/O端口和存储器单独编址的地址空间分布如图8.3所示。存储单元存储地址空间I/O端口I/O地址空间图8.3I/O端口和存储器单独编址这种编址方式的优点是:第一,I/O端口不占用存储器地址,故不会减少用户的存储器地址空间;第二,单独I/O指令的地址码较短,地址译码方便,I/O指令短,执行速度快;第三,采用单独的I/O指令,使程序中I/O操作和其他操作层次清晰,便于理解。这种编址方式的缺点是:第一,单独I/O指令的功能有限,只能对端口数据进行输入/输出操作,不能直接进行移位、比较等其他操作;第二,由于采用了专用的I/O操作时序及I/O控制信号线,因而增加了微处理器本身控制逻辑的复杂性。微处理器Z80系列、Intel80x86系列采用了这种编址方式。8.1.4I/O接口的地址分配表8-1系统板I/O端口地址分配地址空间器件/接口适配器实际使用端口地址0000~001FHDMA控制器823700~0FH0020~003FH中断控制器8259A20~21H0040~005FH计数器/定时器825340~43H0060~007FH并行接口片8255A60~63H0080~009FHDMA页面寄存器(74LS670)80~83H00A0~00BFHNMI寄存器A0H00C0~01FFH未用表8-2扩展槽I/O端口地址分配地址空间器件/接口适配器地址空间器件/接口适配器200~20FH游戏卡380~38FHSDLC通信卡210~217H扩充部件390~3AFH未用218~2F7H未用3B0~3BFH单显/打印卡2F8~2FFH异步通信卡(COM2)3C0~3CFH未用300~31FH未用3D0~3DFH彩显/图形卡320~32FH硬盘卡3E0~3EFH未用330~377H未用3F0~3F7H软盘卡378~37FH打印卡3F8~3FFH异步通信卡(COM1)8.1.5I/O接口的地址译码及片选信号的产生在一个微机系统中通常具有多台外设,当CPU与外设进行通信时,需要对各个设备所对应的接口芯片进行逻辑选择,从而实现与相应的设备进行数据交换。这种逻辑选择功能是由I/O接口电路中的地址译码器实现的。目前常见的一种做法是:先通过对I/O端口地址的某几位高位地址进行译码,产生有效的片选信号,从而选中对应的接口芯片,再利用I/O端口地址的低位地址作为对接口芯片内部有关寄存器的选择。例如,在IBMPC/XT微机中,其系统板上有数片I/O接口芯片,其中包括DMA控制器8237、中断控制器8259A、并行接口8255A、计数器/定时器8253等。这些接口芯片必须是在相应的片选信号有效时才能工作。图8.4所示的就是在该微机系统中片选信号的产生电路。AY0

BY1

CY2Y3Y4G2B

Y5

G2AY6

G1Y7A5A6A874LS138A7A9AENPPICST/CCSINTRCSDMACSIOWWRTDMAPG(写DMA页面寄存器)WRTNMIREG(写NMI屏蔽寄存器) 图8.4片选信号的产生8.2I/O控制方式主机与外围设备之间的数据传送控制方式(即I/O控制方式)主要有三种:程序控制方式、中断控制方式和直接存储器存取(DMA)方式。8.2.1程序控制方式程序控制方式是指在程序控制下进行的数据传送方式。它又分为无条件传送和程序查询传送两种。1.无条件传送方式优点:缺点:

2.程序查询传送方式优点:缺点:准备好?读取状态信息输入数据是否图8.5查询式输入程序流程图忙?读取状态信息输出数据否是图8.6查询式输出程序流程图8.2.2中断控制方式与程序查询方式相比,中断控制方式的数据交换具有如下特点:(1)提高了CPU的工作效率;(2)外围设备具有申请服务的主动权;(3)CPU可以和外设并行工作;(4)可适合实时系统对I/O处理的要求。8.2.3DMA方式1.DMA的基本概念采用程序控制方式以及中断方式进行数据传送时,都是靠CPU执行程序指令来实现数据的输入/输出的。采用程序控制方式及中断方式时,数据的传输率不会很高。对于高速外设,如高速磁盘装置或高速数据采集系统等,采用这样的传送方式,往往满足不了其数据传输率的要求。例如,对于磁盘装置,其数据传输率通常在20万字节/秒以上,即传输一个字节的时间要小于5μs。对于通常的PC机来说,执行一条程序指令平均需要几μs时间。显然,采用程序控制或中断方式不能满足这种高速外设的要求。由此产生不需要CPU干预(不需CPU执行程序指令),而在专门硬件控制电路控制之下进行的外设与存储器间直接数据传送的方式,称为直接存储器存取(DirectMemoryAccess),简称DMA方式。这一专门的硬件控制电路称为DMA控制器,简称DMAC。CPU外设存储器总线:执行程序指令的数据传送路径;:DMA方式的数据传送路径图8.7两种不同的数据传送路径内存外设DMAC输出输入外设外设DMAC内存内存DMAC图8.8DMA传送的几种形式8.3DMA接口技术8.3.1DMA控制器的基本功能(1)能接收I/O接口的DMA请求,并向CPU发出总线请求信号;(2)当CPU发出总线回答信号后,接管对总线的控制,进入DMA传送过程;(3)能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;(4)能向存储器和I/O接口发出相应的读/写控制信号;(5)能控制数据传送的字节数,控制DMA传送是否结束;(6)在DMA传送结束后,能释放总线给CPU,恢复CPU对总线的控制。8.3.2DMA控制器的一般结构一个单通道DMA控制器的一般结构及其与I/O接口的连接如图8.9所示。图8.9的上半部分是I/O接口,下半部分是DMA控制器。计数结束信号(可作为中断请求信号)控制寄存器

状态寄存器数据输入寄存器数据输出寄存器控制寄存器

状态寄存器地址寄存器字节计数寄存器数据总线控制总线数据总线控制总线地址总线地址总线地址译码器DMA控制器DMA请求DMA响应中断请求外设I/O接口总线回答总线请求图8.9DMA控制器的一般结构及其与I/O接口的连接8.3.3DMA控制器的工作方式

DMA控制器的工作方式通常有“单字节传输方式”、“块传输方式”以及“请求传输方式”等,下面分别予以说明。1.单字节传输方式在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。在此方式下,总线控制权处于CPU与DMA控制器交替控制之中,其间,总线控制权经过多次交换。2.块传输方式(也称成组传输方式)块传输方式是指DMA控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。3.请求传输方式每传输完一个字节,DMA控制器都要检测由I/O接口发来的“DMA请求”信号是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至“DMA请求”信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。8.3.4DMA工作过程

在DMA方式下,往往传送的是一个数据块,但传送这个数据块的具体操作方式,可以采用上面介绍的单字节传输方式,也可采用块传输或请求传输方式。下面先以从内存输出一个字节数据到外设的DMA传送过程为例,具体说明DMA的操作过程。然后再给出以DMA方式输入一个数据块的工作过程。以DMA方式从内存输出一个字节数据到外设的具体工作过程如图8.10中第①~⑨步所示。(6)

内存把数据送数据总线(7)

接口锁存数据内存接口DMA控制器I/O设备8086和总线控制逻辑HOLDHLDA

(1)

接口准备就绪,发DMA请求(2)

发总线请求(3)

总线允许(5)DMA请求得到确认(9)8086收回总线控制权(8)

撤销总线请求(4)DMA控制器把地址送地址总线数据总线控制总线地址总线图8.10以DMA方式输出一个字节数据的工作过程若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,其主要工作过程为:(1)I/O接口向DMA控制器发送DMA请求信号;(2)DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权;(3)DMA控制器将其地址寄存器的内容送到地址总线上。(4)DMA控制器往I/O接口发送DMA响应信号,并接着发出读I/O接口信号IOR,令I/O接口把数据送到数据总线上;(5)DMA控制器发出存储器写信号MEMW,将数据传送到由地址总线上的地址所指向的内存单元;(6)DMA控制器放弃对总线的控制权;(7)地址寄存器加1;(8)字节计数寄存器减1;(9)如果字节计数寄存器的值不为零,则返回第一步,否则结束。8.4可编程DMA控制器8237DMAChip8237A----ADetourHighwayinthePC.Intel8237是一种功能很强的可编程DMA控制器,广泛应用于微型计算机系统中。采用5MHz时钟时,其传输速率可达1.6M字节/秒;一片8237内部有四个独立的DMA通道,每个通道一次DMA传送的最大长度可达64K字节。每个通道的DMA请求都可以分别允许和禁止;不同通道的DMA请求有不同的优先级,优先级可以是固定的,也可以是循环的(可编程设定);四个通道可以分时地为四个外部设备实现DMA传送,也可以同时使用其中的通道0和通道1实现存储器到存储器的直接传送,还可以用多片8237进行级联,从而构成更多的DMA通道。IntelEnable/DisableControlofIndividualDMARequestFourIndependentDMAChannelsIndependentAutoinitializationofallChannelsMemory-to-MemoryTransfersMemoryBlockInitializationAddressIncrementorDecrementHighPerformance:Transfersupto1.6MBytes/Secondwith5MHz8237-2DirectlyExpandabletoanyNumberofChannelsEndofProcessInputforTerminatingTransfersSoftwareDMARequestsIndependentPolarityControlforDREQandDACKSignals8237/8237-2HIGH

PERFORMANCEPROGRAMMABLEDMACONTROLLER

8.4.18237的结构

DMA控制器8237的结构框图及在系统中的有关逻辑如图8.11所示。图中只画了一个通道的具体情况,其他通道与此相同。命令寄存器状态寄存器模式寄存器基字节数寄存器基地址寄存器当前字节数寄存器当前地址寄存器暂存寄存器请求位屏蔽位通道0(6位)(8位)(8位)(8位)通道1通道3通道2___IOR______MEMR____IOW______MEMWREADYRESETDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3HRQHLDACLKAENADSTBDB7~DB0A3~A0A7~A4__CSA15~A8A7~A0___OESTB8位锁存器地址译码器_IO/M数据总线使CPU的总线信号无效HOLDHLDAClock____EOP+5VVccGND图8.118237的结构及有关逻辑表8-38237内部寄存器寄存器名称位数数量CPU访问方式基地址寄存器16位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.28237的引脚8237芯片采用40个引脚双列直插封装,其引脚配置(pinconfiguration)如图8.12所示。

图8.128237的引脚配置8237/8237-2A7Vcc(+5V)A0A1A2A3EOPA4A5A6DB0DB1IORHRQAENADSTBHLDAREADY(NOTE11)MEMWMEMRIOWCSRESETCLKDB2DB5DACK0DB4DB3DB7DB6DACK1DACK2DACK3DREQ3DREQ2DREQ1DREQ0(GND)Vss110987654321120191817161513124031323334353637383930212224252627282914238.4.38237的工作方式

8237具有四种工作方式:1.单字节传送方式(singletransfermode)2.块传送方式(blocktransfermode)3.请求传送方式(demandtransfermode)4.级联方式(cascademode)在级联方式下,将多个8237级联起来,以扩展DMA通道数。后一级的HRQ和HLDA信号连到前一级的DREQ和DACK上,如图8.13所示。微处理器

HOLD

HLDADREQ0DACK0

HRQ.HLDA..

8237

DREQ3DACK38237HRQHLDAHRQHLDA8237……第二级第一级图8.138237的级联DirectlyExpandabletoanyNumberofChannels另外,在前三种工作方式下,DMA传送有三种类型,它们是:读传送、写传送和校验传送。DMA读传送是指把数据由存储器传送至I/O接口(可简记为M→I/O),操作时先由MEMR有效从存储器读出数据放在数据总线上,然后再由IOW有效把数据写入I/O接口;DMA写传送是指把数据由I/O接口传送至存储器,操作时先由IOR有效从I/O接口读出数据放在数据总线上,然后再由MEMW有效把数据写入存储器.校验传送也被称为假传送(pseudotransfers)。在校验传送时,8237虽然也像读传送或写传送一样地产生地址以及响应EOP信号等,但存储器和I/O接口的读、写控制信号均处于无效状态,所以实际上并不进行真正的数据传送。这种传送类型一般是用于对DMAC器件测试时使用。8.4.48237的寄存器及有关问题的说明1.当前地址寄存器2.当前字节计数寄存器3.基地址和基字节计数寄存器基寄存器的内容不能被CPU读出,而当前寄存器的内容可以被CPU读出。4.模式寄存器模式字的格式如图8.14所示。D7D6D5D4D3D2D1D00地址增一1地址减一0禁止自动初始化1允许自动初始化00选择通道001选择通道110选择通道211选择通道300校验传送01写传送10读传送11非法XX若D7D6=1100请求传送方式01单字节传送方式10块传送方式11级联方式图8.14模式字格式5.命令寄存器命令寄存器是四个通道公用的一个8位寄存器,用以控制整个8237的操作。一片8237只有一个命令寄存器,其内容对四个通道都有效。编程时,由CPU对它写入命令字,命令字的格式如图8.15所示。D7D6D5D4D3D2D1D00DACK低电平有效1DACK高电平有效0DREQ高电平有效1DREQ低电平有效0正常写1

扩展写X若D3=10

固定优先级1循环优先级0

禁止存储器到存储器传送1

允许存储器到存储器传送0禁止通道0地址保存1

允许通道0地址保存X

若D0=00

控制器允许1

控制器禁止0

普通时序1

压缩时序X

若D0=1图8.15命令寄存器(1)D0位用来规定是否工作在存储器到存储器的传送方式。当8237工作在这种传送方式时,要使用通道0和通道1两个DMA通:

通道0的地址寄存器编程为源区地址;

通道1的地址寄存器编程为目的区地址;

通道1的字节计数寄存器编程为传送的字节数。由于此传送过程没有外部设备参与,因此不需一个外部引入的DREQ信号来启动。传送是由设置通道0的软件DMA请求来启动的。每传送一个字节要用8个时钟周期,其中前4个时钟周期以通道0的当前地址寄存器内容为源地址读出数据送入暂存寄存器,后4个时钟周期以通道1的当前地址寄存器内容为目的地址把暂存寄存器中的数据写入目的区。每传送一个字节,源地址和目的地址都要修改(增1或减1),字节数减1。直至通道1的字节计数结束,产生EOP有效信号,才停止DMA传送。(2)D1位用来设定在存储器到存储器传送的整个过程中,通道0中的源地址是否保持不变。若D1=1,则通道0中的源地址保持不变,DMA传送的结果是将源区的同一个数据字节写入到整个目的区中;若D1=0,则表示通道0中的源地址可以修改。若D0=0,则不允许存储器到存储器的传送,此时D1位无意义。(3)D2位是用于允许(Enable)或禁止(Disable)8237工作的控制位。(4)D3、D5位是与时序有关的控制位,详见后面的时序说明。

(5)D4位用来设定通道优先权结构。当D4=0时,为固定优先权,通道0的优先权最高,其他通道的优先权随通道号的增大而递减,通道3的优先权最低;当D4=1时,为循环优先权,即在每次DMA服务之后,各个通道的优先权都发生变化,刚刚服务过的通道其优先权变为最低,它后面通道的优先权变为最高。如表8-4所示。表8-4优先权循环的情况

第一次服务第二次服务第三次服务最高优先权02服务3服务1服务3请求02请求01最低优先权312需注意的是,DMA的优先权排序只是用来决定同时请求DMA服务的通道的响应次序,而任何一个通道一旦进入DMA服务,其他通道都不能打断它的服务,这一点和中断服务的情况是不同的。(6)D6、D7位用于设定DREQ和DACK的有效电平极性。6.请求寄存器8237的每个通道除了可以响应硬件的DMA请求信号(DREQ)外,当其工作在块传送方式时也可以响应由软件发出的DMA请求。软件的DMA请求是通过使相应通道的“请求位”(requestbit)置位来实现的,它等效于外部产生一个有效的DREQ信号。8237每一个通道有一位“请求位”,四个通道的请求位构成一个4位的请求寄存器。对请求寄存器的命令字(请求命令字)格式如图8.16所示。D7D6D5D4D3D2D1D000

选择通道001

选择通道110

选择通道211

选择通道30

清除请求1

设置请求无关图8.16请求命令字一个通道的DMA传输结束后,其请求位被清除。复位操作将使整个请求寄存器清除。只有在块传送方式时,才允许使用软件请求,若用于存储器到存储器的传送,则必须用对通道0的软件请求来启动传送过程。7.屏蔽寄存器8237每个通道有一位“屏蔽位”(maskbit),当其通道的“屏蔽位”置1时,则外部对应的DREQ信号被屏蔽,不予响应,从而禁止了该通道的DMA操作。四个通道的“屏蔽位”构成一个4位的屏蔽寄存器。有两种屏蔽寄存器的命令字格式:

一种是单独对某一个通道的屏蔽位进行置位或复位,如图8.17(a)所示;另一种是可以同时设定四个通道的屏蔽位,也称综合屏蔽命令字,如图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.17屏蔽字的两种格式8.状态寄存器8237有一个可由CPU读取的状态寄存器,如图8.18所示。CPU通过读取状态寄存器的内容可以了解DMA进行的情况。D7D6D5D4D3D2D1D01

通道3请求1

通道2请求1

通道1请求1

通道0请求1

通道0传输结束1

通道1传输结束1通道2传输结束1

通道3传输结束图8.18状态存储器8.4.5特殊软件命令CPU向8237输出的软件命令可分为两种不同类型,一类是不仅与写入的端口地址有关(不同的软件命令必须写入到不同的端口之中),也与写入软件命令时数据总线上的位模式(bitpattern)有关,即写入指定端口的软件命令应有特定的数据格式。如前面介绍的模式字、命令字、屏蔽字等就属这种类型。8237还有另一类软件命令(特殊的软件命令),它们只与写入的端口地址有关,而与写入软件命令时数据总线上的位模式无关(Theydonotdependonanyspecificbitpatternonthedatabus),即这些命令是8237直接对地址(A3~A0)和CS、IOW信号的译码产生的,并不使用数据总线。也就是说,在输出特殊软件命令时,只要往指定端口实施写入操作即可,而无须通过数据总线输出特定格式的控制字。8237有两种特殊软件命令:1.清除高/低触位器(ClearFirst/LastFlipFlop)命令8237内部有一个高/低触发器,用以控制读/写16位寄存器的低字节和高字节。若该触发器为“0”,则读/写低字节;为“1”,则读/写高字节。每次复位后,此触发器被清零。每当对16位寄存器进行一次读/写操作,则此触发器改变一次状态。用户可以用此软件命令使高/低触发器强制清零,以保证对16位寄存器的读/写是从低字节开始。2.主清除命令(MasterClear)该软件命令与硬件的Reset信号作用相同,即它使命令、模式、状态、请求、暂存器以及内部的高/低触发器清零,而使屏蔽寄存器置为全“1”。执行主清除命令后,使8237进入空闲周期,以便对其编程。8.4.68237内部寄存器的寻址一片8237占用16个连续的I/O端口地址。在片选信号CS有效的前提下,由地址信号A3~A0、IOR及IOW实现对8237内部寄存器(I/O端口)的寻址。8237内部寄存器的寻址情况如表8-5所示。表8-58237内部寄存器的寻址A3A2A1A0通道号读操作(IOR)写操作(IOW)00000读当前地址寄存器写基和当前地址寄存器0001读当前字节计数寄存器写基和当前字节计数寄存器00101读当前地址寄存器写基和当前地址寄存器0011读当前字节计数寄存器写基和当前字节计数寄存器01002读当前地址寄存器写基和当前地址寄存器0101读当前字节计数寄存器写基和当前字节计数寄存器01103读当前地址寄存器写基和当前地址寄存器0111读当前字节计数寄存器写基和当前字节计数寄存器1000四个通道公用读状态寄存器写命令寄存器1001--写请求寄存器

1010--写屏蔽寄存器某一位1011--写模式寄存器

1100--清除高低位触发器命令

1101读暂存寄存器主清除命令1110----

1111--写屏蔽寄存器所有位8.4.88237的页面寄存器由于8237只能输出16位地址,所以在其控制下进行的DMA传送的最大寻址空间为216。对于更大的DMA传送地址空间,则必须设法提供除此16位地址以外的高位地址。例如在IBMPC/XT微机系统中,内存地址为20位(A19~A0),所以高4位地址(A19~A16)不能由8237提供。为此,系统中专门为每个DMA通道增设了一个4位I/O端口,在数据块传送之前可单独对其编程,用以提供高4位地址。这4位I/O端口也称DMA页面寄存器。IBMPC/XT的页面寄存器是由一个寄存器堆(74LS670)构成,内含4个4位寄存器,可用来存放4个DMA通道的高4位地址A19~A16。它与8237送出的16位地址一起形成20位地址A19~A0,用这20位地址信息即可寻址全部1MB存储单元。IBMPC/XT中分配的页面寄存器的端口地址为:通道1——83H;通道2——81H;通道3——82H。由于在该系统中8237的通道0是用于对动态RAM刷新操作,而动态RAM刷新时不需要使用页面寄存器,因而也就不需要分配通道0的页面寄存器端口地址。8.4.98237的编程1.编程步骤

8237的编程通常可按如下步骤进行:(1)输出主清除命令;(2)置页面寄存器;(3)写入基和当前地址寄存器;(4)写入基和当前字节计数寄存器;(5)写入模式寄存器;(6)写入命令寄存器;(7)写入屏蔽寄存器;(8)写入请求寄存器。其中第(8)步是采用软件DMA请求时所需要的,由此可将相应的请求命令字写入指定通道,从而启动DMA传送过程;若为硬件DMA请求,则无需此步骤,只要在完成了(1)~(7)步编程后,由通道的DREQ信号即可启动DMA传送过程。2.编程举例在IBMPC系统中,试利用8237通道1,将内存8000H:0H开始的16K字节数据传送至磁盘(地址增量传送)。要求采用块传送方式,传送完不自动预置,DREQ和DACK均为高电平有效,固定优先级,普通时序,不扩展写信号。系统中8237的端口地址为00H~0FH。通道1“页面寄存器”的端口地址为83H。10001001D7D6D5D4D3D2D1D089H块方式读传送通道1地址增量非自动初始化(1)确定模式字D7D6D5D4D3D2D1D010000000(2)确定命令字非存储器至存储器传送无意义控制器允许普通时序DACK高电平有效DREQ高电平有效正常写固定优先级80H(3)确定屏蔽字D7D6D5D4D3D2D1D00000000101H通道1的屏蔽位复位初始化程序如下:

OUT0DH,AL;输出主清除命令MOVAL,08H;置通道1“页面寄存器”OUT83H,ALMOVAL,00H;写入基和当前地址低8位OUT02H,ALMOVAL,00H;写入基和当前地址高8位OUT02H,ALMOVAL,00H;写入基和当前字节计数寄存器低8位OUT03H,ALMOVAL,40H;写入基和当前字节计数寄存器高8位OUT03H,ALMOVAL,89H

;输出模式字OUT0BH,ALMOVAL,80H

;输出命令字OUT08H,ALMOVAL,01H

;输出屏蔽字OUT0AH,AL8.4.108237应用举例例8.1

利用8237通道1进行DMA传送的实验电路示意图如图8-24所示。现要求每发生一次DMA请求,则从接口电路(74LS244)向内存传送一个字节数据,存入从6000H:0H开始的10个字节的缓冲区,随后将该缓冲区的内容送PC机屏幕上显示。试编写实现上述功能的8237的初始化程序及有关控制程序。

8237的端口地址为00H~0FH,通道1页面寄存器的端口地址为83H。

解:

(1)实现本例功能要求的程序框图如图8-25所示。

(2)确定模式字:55H

确定命令字:00H

确定屏蔽字:01H参考程序:DMA-IN.ASM

DATASEGMENTIN-dataDB10dup(20H),0DH,0AH,24HDATAENDSEXTRASE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论