版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 可编程DMA控制器8237A 8.1 概述概述 8.2 8237A的内部结构与引脚的内部结构与引脚8.3 8237A的工作方式的工作方式8.4 8237A内部寄存器功能及格式内部寄存器功能及格式8.5 8237A的编程及应用的编程及应用 8.1 概述 8.1.1 8237A8.1.1 8237A的主要功能的主要功能8.1.2 8237A8.1.2 8237A的工作状态的工作状态8.1.1 8237A的主要功能 Inte18237A是一种有是一种有40个引脚的高性能可编程个引脚的高性能可编程DMA控制器,采用主频控制器,采用主频5MHz的的8237A传送速度可传送速度可达到达到1.6MB
2、/秒。秒。 8237A的主要的主要功能功能为:为:(1)在一个在一个8237A芯片中有芯片中有4个独立的个独立的DMA通道,每通道,每个通道均可独立地传送数据,可控制个通道均可独立地传送数据,可控制4个个I/O外设进外设进行行DMA传送。传送。(2)每个通道的每个通道的DMA请求都可以分别允许和禁止。请求都可以分别允许和禁止。每个通道的每个通道的DMA请求有不同的优先权,优先权可请求有不同的优先权,优先权可以是固定的,也可以是循环的。以是固定的,也可以是循环的。8.1 概述(3)每个通道均有每个通道均有64KB的寻址和计数能力,即一次的寻址和计数能力,即一次DMA传送的数据最大长度可达传送的数
3、据最大长度可达64KB。可以在存储。可以在存储器与外设之间,也可在存储器的两个区域之间传器与外设之间,也可在存储器的两个区域之间传送。送。 (4)8237A有四种有四种DMA传送方式,分别为单字节传传送方式,分别为单字节传送、数据块传送、请求传送方式和级连方式。送、数据块传送、请求传送方式和级连方式。(5)8237A可以级连,扩展更多的通道。可以级连,扩展更多的通道。8.1.2 8237A的工作状态 DMA DMA控制器一方面可以控制系统总线,这时,它控制器一方面可以控制系统总线,这时,它是总线主控模块;另一方面,它又和其它接口一是总线主控模块;另一方面,它又和其它接口一样,接受样,接受CPU
4、CPU对它的读对它的读/ /写操作,这时,它又成了写操作,这时,它又成了总线从模块。总线从模块。 所以,所以,8237A8237A有两种不同的工作状态,分别为从有两种不同的工作状态,分别为从态方式和主态方式。态方式和主态方式。8.1.2 8237A的工作状态(1)(1)在在DMADMA控制器未取得总线控制权时必须由控制器未取得总线控制权时必须由CPUCPU对对DMADMA控制器进行编程,以确定通道的选择、数据传控制器进行编程,以确定通道的选择、数据传送的方式和类型、内存单元起始地址、地址是递送的方式和类型、内存单元起始地址、地址是递增还是递减及要传送的总字节数等,增还是递减及要传送的总字节数等
5、,CPUCPU也可以读也可以读取取DMADMA控制总线的状态。控制总线的状态。 这时,这时,CPUCPU处于主控状态,而处于主控状态,而DMADMA控制器就和一控制器就和一般的般的I/OI/O芯片一样,是系统总线的从设备,这种工芯片一样,是系统总线的从设备,这种工作方式称为作方式称为从态方式从态方式。8.1.2 8237A的工作状态(2)(2)当当DMADMA控制器取得总线控制权后,系统就完全控制器取得总线控制权后,系统就完全在它的控制下,使在它的控制下,使I/OI/O设备和存储之间或存储器与设备和存储之间或存储器与存储器之间进行直接的数据传送,这种工作方式存储器之间进行直接的数据传送,这种工
6、作方式称为称为主态方式主态方式。8.2 8237A8.2 8237A的内部结构及引脚的内部结构及引脚 8.2.1 8237A8.2.1 8237A的内部结构的内部结构8.2.2 8237A8.2.2 8237A的引脚的引脚8.2.1 8237A8.2.1 8237A的内部结构的内部结构 8237A 8237A的内部结构如图的内部结构如图8-18-1所示,主要由时序与所示,主要由时序与控制逻辑、优先级编码电路、数据和地址缓冲器控制逻辑、优先级编码电路、数据和地址缓冲器组、命令控制逻辑和内部寄存器等组成。组、命令控制逻辑和内部寄存器等组成。时序与控制逻辑优先级编码命令寄存器(8)屏蔽寄存器(4)请
7、求寄存器(4)字数暂存器EOPRESETCSCLKAENADSTBMEMRMEMWIORIOWREADYHRQHLDA03DREQ-03DACK-44读缓冲器基地址寄存器(164)基字寄存器读/写缓冲器当前地址寄存器(164)当前字计数器(164)1616写缓冲器读缓冲器内部数据总线方式寄存器(46)状态寄存器(8)暂存寄存器(8)地址暂存器A15A8I/O缓冲输出缓冲A3-A0A7-A4命令控制逻辑D1-D0I/O缓冲DB7-DB0(164)图图8-1 8237A8-1 8237A的的内部结构图内部结构图 8.2.1 8237A 8.2.1 8237A的内部结构的内部结构(1)(1)时序与控
8、制逻辑时序与控制逻辑:8237A8237A处于从态时,这部分处于从态时,这部分电路用于接收系统送来的时钟、复位、片选和读电路用于接收系统送来的时钟、复位、片选和读写控制信号,完成相应的控制操作;处于主态时,写控制信号,完成相应的控制操作;处于主态时,则向系统发出相应的控制信号。则向系统发出相应的控制信号。(2)(2)优先级编码电路优先级编码电路:根据:根据CPUCPU对对8237A8237A初始化时送初始化时送来的命令,对同时提出来的命令,对同时提出DMADMA请求的多个通道进行排请求的多个通道进行排队,决定优先级。有两种方式:固定和循环。优队,决定优先级。有两种方式:固定和循环。优先级高的通
9、道正在服务时,其它通道的请求被禁先级高的通道正在服务时,其它通道的请求被禁止,直到该通道服务完毕为止。止,直到该通道服务完毕为止。 8.2.1 8237A 8.2.1 8237A的内部结构的内部结构(3)(3)数据和地址缓冲器组数据和地址缓冲器组:有地址线:有地址线A7A7A4A4、A3A3A0A0;DB7DB7DB0DB0在从态时传送数据,在主态时分时在从态时传送数据,在主态时分时送出高送出高8 8位地址和双向的位地址和双向的8 8位数据,均有缓冲寄存位数据,均有缓冲寄存器,可以接管和释放总线。器,可以接管和释放总线。(4)(4)命令控制逻辑命令控制逻辑:从态时,接收:从态时,接收CPUCP
10、U送来的寄存送来的寄存器选择信号器选择信号A3A3A0A0;主态时,对方式字的最低两;主态时,对方式字的最低两位位D1D0D1D0进行译码,以确定进行译码,以确定DMADMA的操作类型。的操作类型。A3A3A0A0与与/IOR/IOR、/IOW/IOW配合可能组成多种操作命令。配合可能组成多种操作命令。 8.2.1 8237A 8.2.1 8237A的内部结构的内部结构(5)(5)内部寄存器内部寄存器:有:有4 4个独立的通道,每个通道有个独立的通道,每个通道有4 4个个1616位的寄存器,即基地址寄存器、基字节寄存位的寄存器,即基地址寄存器、基字节寄存器、当前地址寄存器、当前字节寄存器。另外
11、,器、当前地址寄存器、当前字节寄存器。另外,还有还有4 4个通道所共用的工作方式寄存器、命令寄存个通道所共用的工作方式寄存器、命令寄存器、状态寄存器、请求寄存器、屏蔽寄存器、暂器、状态寄存器、请求寄存器、屏蔽寄存器、暂存寄存器。通过对这些寄存器的编程,可设置工存寄存器。通过对这些寄存器的编程,可设置工作方式、优先级管理方式、实现存储器之间的传作方式、优先级管理方式、实现存储器之间的传送等。送等。8.2.2 8237A8.2.2 8237A的引脚的引脚 8237A 8237A采用双列采用双列直插式,有直插式,有4040个引个引脚,其引脚排列如脚,其引脚排列如图图8-28-2所示。所示。 IORI
12、OWMEMRNCMEMWREADYHLDAADSTBAENHQRCSCLKRESET2DACK3DACK2DREQ1DREQ3DREQ0DREQGNDA A7A6A5A4AEOP3A2A1A0ACCV0DB1DB2DB3DB4DB0DACK1DACK5DB6DB7DB1 402 398 82 23 37 7A A3 384 375 366 357 348 339 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21 图 8-2 8237A 的引脚 8.2.2 8237A8.2.2 8237A的引脚的引脚1.CLK1.CLK:时钟信号
13、。用来控制内部操作和数据传输:时钟信号。用来控制内部操作和数据传输速率。速率。8237A8237A的时钟频率为的时钟频率为4MHz4MHz,8237A-58237A-5为为5MHz5MHz。2./CS2./CS:片选信号。从态时,:片选信号。从态时,/CS/CS为低,表示选中为低,表示选中此片,此片,CPUCPU可与可与82378237交换信息。交换信息。3.RESET3.RESET:复位信号。高有效。复位时,将屏蔽寄:复位信号。高有效。复位时,将屏蔽寄存器置存器置1 1,其它寄存器均清,其它寄存器均清0 0。复位后,它工作在。复位后,它工作在空闲周期。空闲周期。8.2.2 8237A8.2.
14、2 8237A的引脚的引脚4.READY4.READY:外设或存储器送来的准备好信号。当参:外设或存储器送来的准备好信号。当参与传输的设备为低速的与传输的设备为低速的I/OI/O设备或存储器速度较低设备或存储器速度较低时,需要延长读时,需要延长读/ /写周期。这时,可使写周期。这时,可使READYREADY为低为低电平,使在电平,使在DMADMA的传输周期中插入等待周期的传输周期中插入等待周期T TW W。存。存储器或外设准备好时,储器或外设准备好时,READYREADY变高,表示数据绪,变高,表示数据绪,不再等待。不再等待。5.ADSTB5.ADSTB:地址选通信号。为高时,通过:地址选通信
15、号。为高时,通过DB7DB7DB0DB0锁存锁存DMADMA地址寄存器的高地址寄存器的高8 8位到外部锁存器。位到外部锁存器。8.2.2 8237A8.2.2 8237A的引脚的引脚6.AEN6.AEN:地址允许信号。为高时,将地址锁存器中:地址允许信号。为高时,将地址锁存器中锁存的高锁存的高8 8位地址送到地址总线上,与位地址送到地址总线上,与82378237直接送直接送出的低出的低8 8位地址一起构成位地址一起构成1616位的内存偏移地址。它位的内存偏移地址。它还使与还使与CPUCPU相连接的地址锁存器无效。这样,保证相连接的地址锁存器无效。这样,保证了地址总线上的信息是来自了地址总线上的
16、信息是来自82378237,而不是来自,而不是来自CPUCPU。7./MEMR7./MEMR:存储器读信号。主态时,与:存储器读信号。主态时,与/IOW/IOW配合,配合,将数据从主存读出并送入外设。也可用于存储器将数据从主存读出并送入外设。也可用于存储器之间的数据传送,把数据从源地址区读出。从态之间的数据传送,把数据从源地址区读出。从态时,无效。时,无效。8.2.2 8237A8.2.2 8237A的引脚的引脚8./MEMW8./MEMW:存储器写信号。主态时,与:存储器写信号。主态时,与/IOR/IOR配合,配合,将数据从外设写入内存。也可用于存储器之间的将数据从外设写入内存。也可用于存储
17、器之间的数据传送,把数据写入目的地址区。从态时,无数据传送,把数据写入目的地址区。从态时,无效。效。9./IOR9./IOR:外设读信号。从态时,为:外设读信号。从态时,为CPUCPU读读82378237内部内部寄存器的控制信号。主态时,为外设的读信号。寄存器的控制信号。主态时,为外设的读信号。10./IOW10./IOW:外设写信号。从态时,为:外设写信号。从态时,为CPUCPU写写82378237内内部寄存器的控制信号。主态时,为外设的写信号。部寄存器的控制信号。主态时,为外设的写信号。11./EOP11./EOP:传送结束信号,字节计数器从:传送结束信号,字节计数器从0 0减为减为FFF
18、FHFFFFH时送出,或由外部输入时送出,或由外部输入12.DREQ312.DREQ3DREQ0DREQ0:外设送来的:外设送来的DMADMA请求信号请求信号8.2.2 8237A8.2.2 8237A的引脚的引脚13.DACK313.DACK3DACK0DACK0:给外设的响应信号:给外设的响应信号14.HRQ14.HRQ:给:给CPUCPU的总线请求信号的总线请求信号15.HLDA15.HLDA:CPUCPU送来的让出总线的总线响应信号送来的让出总线的总线响应信号16.A316.A3A0A0:双向低:双向低4 4位地址线位地址线17.A717.A7A4A4:主态时输出的高:主态时输出的高4
19、 4位地址线,从态时位地址线,从态时浮空浮空18.DB718.DB7DB0DB0:从态时,与:从态时,与CPUCPU连接的双向数据线,连接的双向数据线,主态时,分时送出高主态时,分时送出高8 8位地址和双向的位地址和双向的8 8位数据。位数据。8.3 8237A8.3 8237A工作方式工作方式8.3.1 8.3.1 单字节传送方式单字节传送方式8.3.2 8.3.2 块传送方式块传送方式8.3.3 8.3.3 请求传送方式请求传送方式8.3.4 8.3.4 级联传送方式级联传送方式8.3.1 8.3.1 单字节传送方式单字节传送方式单字节传送方式单字节传送方式:每进行一次每进行一次DMADM
20、A操作,只传送一操作,只传送一个字节的数据。个字节的数据。 8237A 8237A每完成一个字节的传送,计数器便自动减每完成一个字节的传送,计数器便自动减1 1,地址寄存器的值加,地址寄存器的值加1 1或减或减1 1。接着,。接着,8237A8237A释放释放系统总线,把控制权交还给系统总线,把控制权交还给CPUCPU。 但是但是8237A8237A在释放总线后,会立即对在释放总线后,会立即对DREQDREQ端进行端进行测试,一旦测试,一旦DREQDREQ有效,则有效,则8237A8237A会立即发送总线请会立即发送总线请求,在获得总线控制权后,又成为总线主模块而求,在获得总线控制权后,又成为
21、总线主模块而进行进行DMADMA传送。传送。特点:特点:一次一次DMADMA传送传送1 1个字节的数据,占用个字节的数据,占用1 1个总线个总线周期,然后释放系统总线。因此,这种方式又被周期,然后释放系统总线。因此,这种方式又被称为总线周期窃取方式。称为总线周期窃取方式。8.3.2 8.3.2 块传送方式块传送方式块传送方式块传送方式:一旦开始传送,就会一个字节一个一旦开始传送,就会一个字节一个字节的进行下去,直到把整个数据块全部传送完字节的进行下去,直到把整个数据块全部传送完毕,才交出系统总线控制权。毕,才交出系统总线控制权。 特点:特点:数据传输效率高,数据传输效率高,DREQDREQ有效
22、电平只要保持有效电平只要保持到到DACKDACK有效,就能传送完整批数据,但整个数据有效,就能传送完整批数据,但整个数据块传送期间,块传送期间,CPUCPU失去总线控制权,因而别的失去总线控制权,因而别的DMADMA请求也被禁止。请求也被禁止。8.3.3 8.3.3 请求传送方式请求传送方式请求传送方式请求传送方式:这种工作方式每传送一个字节后,这种工作方式每传送一个字节后,8237A8237A都对都对DREQDREQ端进行测试,询问其是否有效。如端进行测试,询问其是否有效。如果检测到果检测到DREQDREQ端变为无效电平,则立刻端变为无效电平,则立刻“挂起挂起”,停止停止DMADMA传送,但
23、并不释放系统总线,测试过程仍传送,但并不释放系统总线,测试过程仍然进行。当检测到然进行。当检测到DREQDREQ端变为有效电平时,就在端变为有效电平时,就在原来的基础上继续进行传送。由于请求传送方式原来的基础上继续进行传送。由于请求传送方式在传送完一个字节的数据之后就询问在传送完一个字节的数据之后就询问DREQDREQ信号是信号是否有效,故又称询问传送方式。否有效,故又称询问传送方式。 特点:特点:DREQDREQ信号一直有效时,则连续传送数据,信号一直有效时,则连续传送数据,只有当字节计数器由只有当字节计数器由0 0减为减为FFFFHFFFFH,或外部送来有,或外部送来有效的效的/EOP/E
24、OP信号,或信号,或DREQDREQ变为无效时才结束变为无效时才结束DMADMA传送传送过程。过程。8.3.4 8.3.4 级联传送方式级联传送方式级联传送方式级联传送方式:可可以把一片以把一片8237A(8237A(称称为主片为主片) )和几片和几片8237A(8237A(称为从片称为从片) )进行级联,以便扩进行级联,以便扩充充DMADMA通道。通道。 图图8-38-3所示为二所示为二级级8237A8237A级联时的级联时的情况。情况。 微处理器 H O LD H LD A H RQ D REQ0 H LD A D A CK08237A D REQ3 D A CK3 8237AH RQH
25、LD AH RQH LD A 8237A主片从片图图8-3 8-3 二级二级8237A8237A级联级联8.4 8237A内部寄存器功能及格式 8237A 8237A的内部可编程寄存器主要有的内部可编程寄存器主要有1010个,如下表个,如下表所示。所示。名名 称称位数位数数数 量量功能功能当前地址寄存器当前地址寄存器16164(4(每通道一个每通道一个) )保存在保存在DMADMA传送期间的地址值,可读写传送期间的地址值,可读写当前字节计数寄存当前字节计数寄存器器16164(4(每通道一个每通道一个) )寄存当前字节数,初始值比实际值少寄存当前字节数,初始值比实际值少1 1,可读写可读写基地址
26、寄存器基地址寄存器16164(4(每通道一个每通道一个) )寄存当前地址寄存器的初始值,只能寄存当前地址寄存器的初始值,只能写写基字节数寄存器基字节数寄存器16164(4(每通道一个每通道一个) )保存相应通道当前字保存相应通道当前字( (节节) )数的计数器数的计数器的初值的初值工作方式寄存器工作方式寄存器8 84(4(每通道一个每通道一个) )命令寄存器命令寄存器8 81(41(4个通道共用一个个通道共用一个) )寄存寄存CPUCPU发送的控制命令发送的控制命令状态寄存器状态寄存器8 81(41(4个通道共用一个个通道共用一个) )存放存放8237A8237A各通道的现行状态各通道的现行状
27、态请求寄存器请求寄存器4 44(4(每通道一个每通道一个) )寄存各通道的寄存各通道的DMADMA请求信号请求信号屏蔽寄存器屏蔽寄存器4 44(4(每通道一个每通道一个) )用于选择允许或禁止各通道的用于选择允许或禁止各通道的DMADMA请求请求信号信号暂存寄存器暂存寄存器8 84(4(每通道一个每通道一个) )暂存传输数据,仅用于存储器到存储暂存传输数据,仅用于存储器到存储器的传输器的传输 8.4 8237A内部寄存器功能及格式 8237A 8237A的不同类型的寄存器有不同的控制作用,在的不同类型的寄存器有不同的控制作用,在DMADMA操操作前,必须写入相应的内容,即初始化编程,以确定所需
28、作前,必须写入相应的内容,即初始化编程,以确定所需要的功能。要的功能。8.4.1 8.4.1 当前地址寄存器当前地址寄存器8.4.2 8.4.2 当前字节寄存器当前字节寄存器8.4.3 8.4.3 基地址寄存器基地址寄存器8.4.4 8.4.4 基字节寄存器基字节寄存器8.4.5 8.4.5 命令寄存器命令寄存器8.4.6 8.4.6 工作寄存器工作寄存器8.4.7 8.4.7 请求寄存器请求寄存器8.4.8 8.4.8 屏蔽寄存器屏蔽寄存器8.4.9 8.4.9 状态寄存器状态寄存器8.4.10 8.4.10 暂存寄存器暂存寄存器8.4.11 8.4.11 软件命令软件命令 8.4.1 当前
29、地址寄存器 每个通道均有,每个通道均有,1616位,存放位,存放DMADMA传送时存储器的传送时存储器的当前的地址。每传送一个数据,地址自动加当前的地址。每传送一个数据,地址自动加/ /减减1 1。初始化时,由初始化时,由CPUCPU设定初值,也可读入当前值。设定初值,也可读入当前值。 但对但对1616位的地址,要分两次读写。若工作方式位的地址,要分两次读写。若工作方式设为自动预置时,则当设为自动预置时,则当DMADMA传送结束,产生传送结束,产生/EOP/EOP信信号时,自动将基地址寄存器的内容送到当前地址号时,自动将基地址寄存器的内容送到当前地址寄存器中。寄存器中。8.4.2 当前字节寄存
30、器 每个通道均有,每个通道均有,1616位。用于存放位。用于存放DMADMA传送的当前传送的当前字节数。实际上是比应该传送的字节数少字节数。实际上是比应该传送的字节数少1 1。因为。因为是从是从0 0减为减为FFFFHFFFFH时,才为结束。时,才为结束。 CPU CPU对它的读写操作也是连续两次进行。对它的读写操作也是连续两次进行。 若工作方式设为自动预置时,则当若工作方式设为自动预置时,则当DMADMA传送结束,传送结束,产生产生/EOP/EOP信号时,自动将基字节寄存器的内容送信号时,自动将基字节寄存器的内容送到当前字节寄存器中。到当前字节寄存器中。 若为非自动预置方式,在减为若为非自动
31、预置方式,在减为FFFFHFFFFH时,即保持时,即保持不变。不变。8.4.3 基地址寄存器 每个通道均有,每个通道均有,1616位。存放存储器的基地址,位。存放存储器的基地址,在自动预置方式时,传送结束时,自动送该基地在自动预置方式时,传送结束时,自动送该基地址到当前地址寄存器中。址到当前地址寄存器中。 此寄存器不能被此寄存器不能被CPUCPU读出,在传送时,也不被修读出,在传送时,也不被修改。改。 8.4.4 基字节寄存器 每个通道均有,每个通道均有,1616位。存放要传送字节的数量,位。存放要传送字节的数量,在自动预置方式时,传送结束时,自动送该基字在自动预置方式时,传送结束时,自动送该
32、基字节到当前字节寄存器中。此寄存器不能被节到当前字节寄存器中。此寄存器不能被CPUCPU读出,读出,在传送时,也不被修改。在传送时,也不被修改。 对对1616位寄存器的读写,是先低字节后高字节。位寄存器的读写,是先低字节后高字节。片内有一个高片内有一个高/ /低触发器,复位时清低触发器,复位时清0 0,操作低字,操作低字节,反转为节,反转为1 1,再操作高字节,再反转为,再操作高字节,再反转为0 0。 8.4.5 命令寄存器 8 8位寄存器,用来控制各种操作。位寄存器,用来控制各种操作。D7D6D5D4D3D2D1D0MM传送0 禁止1 允许DACK有效0 低电平1 高电平DREQ有效1 低电
33、平0 高电平写选择0 不扩展1 扩展D3=1时无效优先级0 固定1 循环时序0 正常1 压缩D0=1时无效8237操作0 允许1 禁止通道0地址保持不变0 禁止1 允许D0=0时无效 8.4.5 命令寄存器 8 8位寄存器,用来控制各种操作。位寄存器,用来控制各种操作。D7D6D5D4D3D2D1D0D0D0: MMMM的传送控制,的传送控制,1 1允许允许0 0禁止。允许时,禁止。允许时,0 0通道的当前地址寄存器存放源地址,通道的当前地址寄存器存放源地址,1 1通道的当前通道的当前地址寄存器存放目的地址,地址寄存器存放目的地址,1 1通道的当前字节计数通道的当前字节计数器控制传送的结束。传
34、送时,先从源地址读出一器控制传送的结束。传送时,先从源地址读出一字节到暂存器,再从暂存器写入到目的地址。字节到暂存器,再从暂存器写入到目的地址。D1D1:在:在D0=1D0=1允许允许M-MM-M传送时,控制通道的当前地址传送时,控制通道的当前地址寄存器的值是否改变,寄存器的值是否改变,1 1不变,不变,0 0改变。不变时,改变。不变时,即把同一字节的源数据写入到一片目的地址中。即把同一字节的源数据写入到一片目的地址中。当当D0=0D0=0时,此位无效。时,此位无效。 8.4.5 命令寄存器 8 8位寄存器,用来控制各种操作。位寄存器,用来控制各种操作。D7D6D5D4D3D2D1D0D2D2
35、:82378237是否工作的控制位,是否工作的控制位,0 0允许允许1 1禁止。禁止。D5D5、D3D3:与时序有关的控制位。:与时序有关的控制位。D4D4:优先级的选择,:优先级的选择,0 0固定固定( (由高到低为由高到低为0123)0123),1 1循环。循环。D6D6:DREQDREQ的有效电平选择位,的有效电平选择位,0 0高高1 1低。低。D7D7:DACKDACK的有效电平的选择位,的有效电平的选择位,0 0低低1 1高。高。8.4.6 工作寄存器又称方式控制寄存器,每个通道均有,又称方式控制寄存器,每个通道均有,8 8位。指定位。指定操作类型、传送方式、是否自动预置、地址加操作
36、类型、传送方式、是否自动预置、地址加/ /减。减。D7D6D5D4D3D2D1D0自动预置0 禁止1 允许地址0 加11 减100 校验传送01 写传送10 读传送11 非法D7D6=11 无效通道选择00 001 110 211 3传送方式00 请求01 单字节10 数据块11 级连8.4.6 工作寄存器又称方式控制寄存器,每个通道均有,又称方式控制寄存器,每个通道均有,8 8位。指定位。指定操作类型、传送方式、是否自动预置、地址加操作类型、传送方式、是否自动预置、地址加/ /减。减。D7D6D5D4D3D2D1D0D1D0D1D0:通道选择位,:通道选择位,0000、0101、1010、1
37、111选择通道选择通道0 0、1 1、2 2、3 3。即此命令是给哪一个通道的。即此命令是给哪一个通道的。8.4.6 工作寄存器又称方式控制寄存器,每个通道均有,又称方式控制寄存器,每个通道均有,8 8位。指定位。指定操作类型、传送方式、是否自动预置、地址加操作类型、传送方式、是否自动预置、地址加/ /减。减。D7D6D5D4D3D2D1D0D3D2D3D2:传送方式选择位。:传送方式选择位。 0000为校验传送。实际上不传送,主要用来对读为校验传送。实际上不传送,主要用来对读/ /写传送进行校验。由写传送进行校验。由82378237产生地址信息,不影响产生地址信息,不影响/EOP/EOP。不
38、发出存储器和外设的读。不发出存储器和外设的读/ /写信号,所以不写信号,所以不能传送信息。但能传送信息。但82378237仍保持对总线的控制权,外仍保持对总线的控制权,外设可使用这些信号,对外设内部对指定数据块的设可使用这些信号,对外设内部对指定数据块的每一个字节进行存取,以进行校验。使用这种方每一个字节进行存取,以进行校验。使用这种方式时,应禁止式时,应禁止MMMM。8.4.6 工作寄存器又称方式控制寄存器,每个通道均有,又称方式控制寄存器,每个通道均有,8 8位。指定位。指定操作类型、传送方式、是否自动预置、地址加操作类型、传送方式、是否自动预置、地址加/ /减。减。D7D6D5D4D3D
39、2D1D0D3D2D3D2:传送方式选择位。:传送方式选择位。 0101为写传送。从外设读出为写传送。从外设读出(/IOR)(/IOR),写入存储器,写入存储器(/MEMW)(/MEMW)。 1010为读传送。从存储器读出为读传送。从存储器读出(/MEMR)(/MEMR),写入外设,写入外设(/IOW)(/IOW)。 1111为非法。为非法。8.4.6 工作寄存器又称方式控制寄存器,每个通道均有,又称方式控制寄存器,每个通道均有,8 8位。指定位。指定操作类型、传送方式、是否自动预置、地址加操作类型、传送方式、是否自动预置、地址加/ /减。减。D7D6D5D4D3D2D1D0D4D4:是否自动
40、预置选择位。:是否自动预置选择位。1 1允许允许0 0禁止。禁止。自动预置:收到自动预置:收到/EOP/EOP信号后,自动将基地址寄存信号后,自动将基地址寄存器内容装入当前地址寄存器,基字节数寄存器内器内容装入当前地址寄存器,基字节数寄存器内容装入当前字节数计数器,在下一次容装入当前字节数计数器,在下一次DMADMA时即可再时即可再次传送同样的字节数到同样的地址中。次传送同样的字节数到同样的地址中。D5D5:地址增减选择位,:地址增减选择位,0 0加加1 1减。减。D7D6D7D6:工作方式选择位。:工作方式选择位。0000、0101、1010、1111分别为分别为请求方式、单字节方式、数据块
41、方式、级连方式。请求方式、单字节方式、数据块方式、级连方式。8.4.7 请求寄存器 对对M MM M的传送,必须由软件来启动,由的传送,必须由软件来启动,由CPUCPU对请对请求寄存器写入命令,以启动相应通道的求寄存器写入命令,以启动相应通道的M MM M请求。请求。M MM M传送必定是成组传送的。只能写入,不能读传送必定是成组传送的。只能写入,不能读出。出。D7D6D5D4D3D2D1D00 复位请求位1 置位请求位通道选择00 001 110 211 38.4.8 屏蔽寄存器 选择是否禁止各通道接收选择是否禁止各通道接收DMADMA请求信号请求信号DREQDREQ,0 0允许允许1 1禁
42、止。复位时,各通道均禁止禁止。复位时,各通道均禁止( (置置1)1)。有两。有两种屏蔽字,端口不同。种屏蔽字,端口不同。1.1.通道屏蔽字通道屏蔽字D7D6D5D4D3D2D1D00 复位屏蔽位1 置位屏蔽位通道选择00 001 110 211 32.2.主屏蔽字主屏蔽字 D0D0D3D3分别为通道分别为通道0-30-3的屏蔽位。的屏蔽位。 8.4.9 状态寄存器 一个可由一个可由CPUCPU读出的读出的8 8位寄存器,位寄存器,D0D0D3D3表示通表示通道道0-30-3是否传送结束,产生了是否传送结束,产生了TCTC,1 1为有,为有,0 0为无。为无。 D4 D4D7D7表示通道表示通道
43、0-30-3是否有是否有DMADMA请求,请求,0 0无,无,1 1有。有。D7D6D5D4D3D2D1D0 8.4.10 暂存寄存器 一个一个8 8位的寄存器,在位的寄存器,在M MM M传送方式时,暂存由传送方式时,暂存由存储器中读出的数据,再传送到另一个存储区中。存储器中读出的数据,再传送到另一个存储区中。传送结束时,保持最后一个数据,并可由传送结束时,保持最后一个数据,并可由CPUCPU读出。读出。可由可由RESETRESET清除。清除。 8.4.11 软件命令 3 3条软件命令。条软件命令。1.1.主清除命令,作用同主清除命令,作用同RESETRESET。使控制寄存器、状。使控制寄存
44、器、状态寄存器、各通道的请求寄存器、暂存器、字节态寄存器、各通道的请求寄存器、暂存器、字节指示器均清指示器均清0 0,使屏蔽寄存器各位均置,使屏蔽寄存器各位均置1 1,使,使82378237进入空闲期,经便进行编程。进入空闲期,经便进行编程。2.2.清除字节指示器命令,即使字节触发器清清除字节指示器命令,即使字节触发器清0 0,以,以便操作低字节。便操作低字节。82378237各通道的地址寄存器、字节各通道的地址寄存器、字节数寄存器均为数寄存器均为1616位,而位,而82378237的数据总线为的数据总线为8 8位,需位,需要连续要连续2 2次写入,先低后高。字节指示器为次写入,先低后高。字节
45、指示器为0 0时访时访问低字节,随后,此指示器变为问低字节,随后,此指示器变为1 1,为,为1 1时访问高时访问高字节。字节。3.3.清除屏蔽寄存器命令,清除清除屏蔽寄存器命令,清除4 4个通道的屏蔽,使个通道的屏蔽,使各通道均能接受各通道均能接受DMADMA的请求。的请求。8.5 8237A的编程及应用8.5.1 8237A8.5.1 8237A主要寄存器端口地址分配主要寄存器端口地址分配8.5.2 8237A8.5.2 8237A编程的一般步骤编程的一般步骤8.5.3 8237A8.5.3 8237A的应用举例的应用举例8.5.1 8237A主要寄存器端口地址分配 4 4条地址线,可选择条
46、地址线,可选择1616个个寄存器端口。寄存器端口。A3A2A1A0通道号通道号 读读写写00000当前地址当前地址当前当前(基基)地址地址00010当前字节数当前字节数当前当前(基基)字节数字节数00101当前地址当前地址当前当前(基基)地址地址00111当前字节数当前字节数当前当前(基基)字节数字节数01002当前地址当前地址当前当前(基基)地址地址01012字节数字节数当前当前(基基)字节数字节数01103当前地址当前地址当前当前(基基)地址地址01113字节数字节数当前当前(基基)字节数字节数1000共用共用状态状态命令命令8.5.1 8237A主要寄存器端口地址分配 4 4条地址线,可
47、选择条地址线,可选择1616个个寄存器端口。寄存器端口。A3A2A1A0通道号通道号读读写写1001请求请求1010屏蔽一位屏蔽一位1011模式控制模式控制1100清除字节指示器清除字节指示器1101暂存暂存主清除主清除1110清除屏蔽寄存器清除屏蔽寄存器1111屏蔽寄存器各位屏蔽寄存器各位8.5.2 8237A编程的一般步骤 8237A 8237A进行初始化编程的步骤如下:进行初始化编程的步骤如下:(1)(1)输出主清除命令,使输出主清除命令,使8237A8237A处于复位状态,以处于复位状态,以接收新的命令;接收新的命令;(2)(2)写入工作方式寄存器,以确定写入工作方式寄存器,以确定82
48、37A8237A工作方式工作方式和传送类型;和传送类型;(3)(3)写入命令寄存器,以控制写入命令寄存器,以控制8237A8237A的工作;的工作;(4)(4)根据所选通道,输入相应通道当前地址寄存器根据所选通道,输入相应通道当前地址寄存器和基地址寄存器的初始值;和基地址寄存器的初始值;(5)(5)输入当前字节计数器和基字节寄存器的初值;输入当前字节计数器和基字节寄存器的初值;(6)(6)写入屏蔽寄存器;写入屏蔽寄存器;(7)(7)写入请求寄存器,便可由软件写入请求寄存器,便可由软件DMADMA传送。否则,传送。否则,经过经过(1)(1)(6)(6)步编程后,由通道步编程后,由通道DREQDR
49、EQ启动启动DMADMA传送传送过程。过程。8.5.2 8237A编程的一般步骤【例例8.18.1】利用通道利用通道1 1从外设输入从外设输入54KB54KB的数据传送的数据传送到到5678H5678H开始的存储区中,增量传送,块传送方式,开始的存储区中,增量传送,块传送方式,传送结束不自动重置。外设的传送结束不自动重置。外设的DREQDREQ和和DACKDACK均为高均为高电平有效。电平有效。82378237的端口地址为的端口地址为50H5FH50H5FH。分析:分析:D7 D6 D5 D4 D3 D2 D1 D0模式控制字模式控制字10000101屏蔽字屏蔽字00000001命令寄存器命令
50、寄存器101000008.5.2 8237A编程的一般步骤【例例8.18.1】OUTOUT5DH,AL5DH,AL; ;主清命令主清命令MOVMOVAL,78HAL,78H; ;基地址和当前地址的低字节基地址和当前地址的低字节OUTOUT52H,AL52H,AL; ;MOVMOVAL,56HAL,56H; ;基地址和当前地址的高字节基地址和当前地址的高字节OUTOUT52H,AL52H,AL; ;MOVMOVAL,0FFHAL,0FFH; ;基字节数和当前字节数的低字节基字节数和当前字节数的低字节OUTOUT53H,AL53H,AL; ;MOVMOVAL,0D7HAL,0D7H; ;基字节数和
51、当前字节数的高字节基字节数和当前字节数的高字节OUTOUT53H,AL53H,AL; ;MOVMOVAL,85HAL,85H; ;模式控制字模式控制字OUTOUT5BH,AL5BH,AL; ;MOVMOVAL,01HAL,01H; ;屏蔽控制字屏蔽控制字OUTOUT5AH,AL5AH,AL; ;MOVMOVAL,0A0HAL,0A0H; ;命令字命令字OUTOUT58H,AL58H,AL8.5.2 8237A编程的一般步骤【例例8.28.2】在某一个系统中,用一片在某一个系统中,用一片8237A8237A设计了设计了DMADMA传输电路,传输电路,8237A8237A的基地址为的基地址为00H
52、00H。要求利用它。要求利用它的通道的通道0 0,从外设,从外设( (如磁盘如磁盘) )输入一个输入一个1KB1KB的数据块,的数据块,传送到内存中传送到内存中6000H6000H开始的区域中,每传送一个字开始的区域中,每传送一个字节,地址增节,地址增1 1,采用数据块连续传送方式,禁止自,采用数据块连续传送方式,禁止自动预置,外设的动预置,外设的DMADMA请求信号请求信号DREQDREQ和响应信号和响应信号DACKDACK均为高电平有效。初始化均为高电平有效。初始化8237A8237A的程序如下:的程序如下:8.5.2 8237A编程的一般步骤【例例8.28.2】DMADMA EQUEQU
53、 00H00H;8237A;8237A的基地址为的基地址为00H00H; ;输出主清除命令输出主清除命令OUTOUT DMA+0DH,ALDMA+0DH,AL; ;发总清除命令发总清除命令; ;将基地址将基地址6000H6000H写入通道写入通道0 0基地址和当前地址寄存基地址和当前地址寄存器,分两次进行器,分两次进行MOVMOV AX,6000HAX,6000H ; ;基地址和当前地址寄存器基地址和当前地址寄存器OUTOUT DMA+00H,ALDMA+00H,AL; ;先写入低先写入低8 8位地址位地址MOVMOV AL,AHAL,AHOUTOUT DMA+00H,ALDMA+00H,AL
54、; ;后写入高后写入高8 8位地址位地址8.5.2 8237A编程的一般步骤【例例8.28.2】; ;把要传送的总字节数把要传送的总字节数1K=400H1K=400H减减1 1后,送到基字计后,送到基字计数器和当前字计数器数器和当前字计数器MOVMOV AX,0400HAX,0400H; ;总字节数总字节数DECDEC AXAX; ;总字节数减总字节数减1 1OUTOUT DMA+01H,ALDMA+01H,AL; ;先写入字节数的低先写入字节数的低8 8位位MOVMOV AL,AHAL,AHOUTOUT DMA+01H,ALDMA+01H,AL; ;后写入字节数的高后写入字节数的高8 8位位
55、; ;写入方式字:数据块传送,地址增量,禁止自动写入方式字:数据块传送,地址增量,禁止自动预置,写传送,选择通道预置,写传送,选择通道MOVMOV AL,10000100BAL,10000100B ; ;方式字方式字OUTOUT DMA+0BH,ALDMA+0BH,AL; ;写入方式字写入方式字8.5.2 8237A编程的一般步骤【例例8.28.2】; ;写入屏蔽字:通道写入屏蔽字:通道0 0屏蔽位清屏蔽位清0 0MOVMOV AL,00HAL,00H; ;屏蔽字屏蔽字OUTOUT DMA+0AH,ALDMA+0AH,AL; ;写入写入8237A8237A; ;写入命令字:写入命令字:DACK
56、DACK和和DREQDREQ为高电平,固定优先级,为高电平,固定优先级,非存储器间传送非存储器间传送MOVMOV AL,10000000BAL,10000000B ; ;命令字命令字OUTOUT DMA+08H,ALDMA+08H,AL; ;写入写入8237A8237A; ;写入请求字:通道写入请求字:通道0 0产生请求产生请求MOVMOV AL,04HAL,04H; ;请求字请求字OUTOUT DMA+09H,ALDMA+09H,AL; ;将请求字写入将请求字写入8237A8237A,用软件启动用软件启动8237A8237A8.5.3 8237A的应用举例 在在PC/XTPC/XT机中,用一
57、片机中,用一片8237A-58237A-5构成构成DMADMA控制电路控制电路形成形成4 4个个DMADMA通道,提供数据宽度为通道,提供数据宽度为8 8位的位的DMADMA传输。传输。使用固定优先级,所以通道使用固定优先级,所以通道0 0的优先级最高,通道的优先级最高,通道3 3最低。这最低。这4 4个个DMADMA通道的功能分配如下:通道的功能分配如下:通道通道0 0 用于动态用于动态RAMRAM的刷新的刷新通道通道1 1 为用户保留为用户保留通道通道2 2 用于软盘用于软盘DMADMA传送传送通道通道3 3 用于硬盘用于硬盘DMADMA传送传送8.5.3 8237A的应用举例 在在PC/
58、XTPC/XT机进行软盘或硬盘机进行软盘或硬盘DMADMA传输时,先要对传输时,先要对8237A-58237A-5进行编程。进行编程。 下面是下面是ROM BIOSROM BIOS中的一段程序,名为中的一段程序,名为DMA_SETUPDMA_SETUP,位于首地址为,位于首地址为FEEC8HFEEC8H的内存中。它被的内存中。它被读软盘、写软盘和软盘校验程序等调用,用来向读软盘、写软盘和软盘校验程序等调用,用来向8237A-58237A-5输入所要读写数据的输入所要读写数据的2020位首地址和字计数位首地址和字计数器初始值。器初始值。8.5.3 8237A的应用举例 调用前要求的入口参数是:调
59、用前要求的入口参数是: AL=DMA AL=DMA方式字方式字( (读读=46H=46H,写,写=4AH=4AH,校验,校验=42H)=42H)。 DH= DH=要传送的扇区个数。每个扇区的字节数基数要传送的扇区个数。每个扇区的字节数基数为为128128,实际由磁盘驱动器的规格而定,可能是,实际由磁盘驱动器的规格而定,可能是128128,256256,512512或或10241024个,也就是说可能是个,也就是说可能是128128的的1 1,2 2,4 4,8 8倍,表示成倍,表示成2 2的的N N次方,次方,N N分别为分别为0 0、1 1、2 2、3 3。 N N存放在磁盘基值区存放在磁盘
60、基值区DISK_BASEDISK_BASE的第的第0303号单元中,号单元中,可由它和可由它和DHDH中的扇区数计算出实际要传送的总字中的扇区数计算出实际要传送的总字节数。节数。8.5.3 8237A的应用举例ES:BX=ES:BX=所读写数据的内存首地址所读写数据的内存首地址( (段地址:偏移量段地址:偏移量) )DMA_SETUP PROC NEARDMA_SETUP PROC NEARPUSHPUSH CXCX; ;保护保护CXCX的值的值CLICLI; ;关中断关中断OUTOUT DMA+0CH,ALDMA+0CH,AL; ;清除先清除先/ /后触发器后触发器PUSHPUSH AXAX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年窗帘地毯深度清洗试题及答案
- 2026年云计算集成审计评估合同
- 2026年安防咨询外包服务合同
- 行业景气度跟踪报告:能源品种涨价明显机械券商高景气
- 2025年版浅表淋巴结超声诊断专家共识课件
- 2026年农业投资风控合规协议
- 小学生挫折教育情境模拟实效性-基于2023年心理团辅活动记录
- 2026年易燃易爆物品管理试题含标准答案
- 2025年6月(第1套)大学英语六级考试真题+答案
- 常见的酸和碱:常见的酸课件2025-2026学年九年级化学人教版下册
- 中央国家核应急响应技术支持中心招聘笔试历年参考题库附带答案详解
- 课件-项目5-5.2AI赋能高效办公的常用工具
- 2026中国REITS指数之不动产资本化率调研报告(第六期)
- 上海市徐汇区2026届高三一模生物试卷(含答案)
- 肾衰竭中医辨证施治方案
- 110接警员培训课件
- 攀登计划课件
- 四川综合评标专家库试题及答案
- 2025年机场运行与管理面试题库及答案
- GB/T 3934-2025普通螺纹量规技术条件
- 2025年高职网络营销与直播电商(直播营销)试题及答案
评论
0/150
提交评论