《CHDMA控制器的编程结构及编程实用实用教案》由会员分享,可在线阅读,更多相关《CHDMA控制器的编程结构及编程实用实用教案(48页珍藏版)》请在金锄头文库上搜索。
1、DMADMA(DirectMemoryAccess):让存储器与高速外设直接进行数据交换而无需CPU的干预。特点DMA传送期间(qjin),DMA控制器(DMAC)接管了CPU对总线的控制权。DMA方式中,内存地址的修改、传送结束的判断都由硬件电路实现。即:用硬件控制代替了软件控制。DMA控制器是实现DMA传送的核心器件。19.0 DMA传送传送(chun sn)的特点的特点第1页/共47页第一页,共48页。应用场合DMA方式主要用于高速(os)大批量传输数据的场合。如:硬盘和软盘外设;快速通信通道;多处理机和多程序数据块传送;图像处理中向CRC屏幕传送数据;快速数据采集;DRAM的刷新操作。
2、29.0 DMA传送传送(chun sn)的特点的特点第2页/共47页第二页,共48页。39.1 DMA控制器概要控制器概要(giyo)第3页/共47页第三页,共48页。DMA的传送过程(guchng)分5个阶段:1.初始化阶段4 要传送的数据字节数 数据在存储器中的起始地址 传送方向 DMAC的通道号 DMAC 9.1 DMA控制器概要控制器概要(giyo)第4页/共47页第四页,共48页。2. 2. 申请阶段申请阶段当外设有当外设有DMADMA需求,并且已准备就绪,则向需求,并且已准备就绪,则向DMADMA控制器发出控制器发出DMADMA请求信号请求信号DREQDREQ。DMADMA控制器
3、接收到控制器接收到DMADMA请求信号后,向请求信号后,向CPUCPU发出总线发出总线(zn xin)(zn xin)请求信号请求信号HRQHRQ。该信号连接到该信号连接到CPUCPU的的HOLDHOLD信号。信号。5 CPU DMAC 外部设备DREQHRQ9.1 DMA控制器概要控制器概要(giyo)第5页/共47页第五页,共48页。3. 3. 响应响应(xingyng)(xingyng)阶段阶段CPUCPU收到收到DMADMA的的HRQHRQ请求后,若允许请求后,若允许DMADMA传输,则在当前总线周期结束传输,则在当前总线周期结束后,释放总线控制权,并向后,释放总线控制权,并向DMAC
4、DMAC发发HLDAHLDA信号,通知其信号,通知其CPUCPU已交出总已交出总线。线。6CPU检测HRQHRQ有效且LOCK无效CPU交出总线CPU向DMAC发HLDAYNDMAC成为成为(chngwi)总线主总线主控者控者 9.1 DMA控制器概要控制器概要(giyo)第6页/共47页第六页,共48页。4. 4. 数据传送阶段数据传送阶段DMADMA控制器获得总线的控制权,向外设发送控制器获得总线的控制权,向外设发送(f sn)(f sn)应答信号应答信号DACKDACK,通知,通知外设可以进行外设可以进行DMADMA传输了。传输了。DMADMA控制器送出地址信号和控制信号,实现外设与内存
5、的数据传输。控制器送出地址信号和控制信号,实现外设与内存的数据传输。7 外部设备 DMAC 存储器 DACK地址信号读写信号9.1 DMA控制器概要控制器概要(giyo)第7页/共47页第七页,共48页。5. 5. 传送结束阶段传送结束阶段(jidun)(jidun)DMACDMAC向向外外设设发发送送EOPEOP信信号号,外外设设撤撤销销DREQDREQ请请求求,同同时时HRQHRQ和和HLDAHLDA信信号号变变为为无无效效,DMACDMAC释释放放总总线线,CPUCPU重重获获总总线线控控制权。制权。8CPU重获总线重获总线(zn xin)控控制权制权DMAC向外设发EOP信号(xnho
6、)外设撤消DREQ信号HRQ和HLDA变为无效DMAC交出总线控制权9.1 DMA控制器概要控制器概要第8页/共47页第八页,共48页。lDMA控制器8237A-5的基本特点l8237A-5是一个高性能通用可编程DMAC。l具有(jyu)4个独立的通道,通过级联方式进行扩充。最多可扩展4个从片,即16个DMA通道。每个通道可传输的最大数据块均为64KB。l可实现内存到外设、外设到内存以及内存到内存之间的高速数据传输,最高数据传输速率可达1.6MB/s。l具有(jyu)多种控制方式和操作类型。99.2 DMA控制器控制器8237A的原理的原理(yunl)第9页/共47页第九页,共48页。109.
7、2 DMA控制器控制器8237A的原理的原理(yunl)lDMA控制器的2种状态l主动工作态:主模块l 在主动工作状态下,DMAC取代处理器CPU,获得了对系统总线的控制权,成为(chngwi)系统总线的主控者,向存储器和外设发号施令。l被动工作态:从模块l 在被动工作状态下,DMAC接受CPU对它的控制和指挥。例如:对DMAC进行初始化编程以及从DMAC读取状态等。1. 8237A的编程结构(jigu)第10页/共47页第十页,共48页。l8237A-5外部特性(txng)l概况l40引脚双列直插封装。l引脚说明119.2 DMA控制器控制器8237A的原理的原理(yunl)第11页/共47
8、页第十一页,共48页。l8237A内部结构l4个DMA通道和一个公共控制部分。l每个DMA通道包括:l基本地址寄存器、当前地址寄存器l基字节寄存器、当前字节计数器l公共控制部分:l工作方式寄存器、命令寄存器、状态寄存器l请求(qngqi)寄存器、屏蔽寄存器、暂存寄存器129.2 DMA控制器控制器8237A的原理的原理(yunl)第12页/共47页第十二页,共48页。139.2 DMA控制器控制器8237A的原理的原理(yunl)图图9 9. .1 1 8 82 23 37 7A A的的编编程程结结构构( (j ji i g g u u) )和和外外部部连连接接第13页/共47页第十三页,共4
9、8页。(1)请求与应答信号请求与应答信号DREQ3DREQ0:DMA通道请求输入信号(由外设提供)通道请求输入信号(由外设提供)。有效。有效(yuxio)电平可高可低,由程序选定。电平可高可低,由程序选定。优先级:优先级:DREQ0最高,最高,DREQ3最低。最低。DACK3DACK0:DMA响应输出信号(外接外设)。有响应输出信号(外接外设)。有效效(yuxio)电平可高可低,由程序选定。电平可高可低,由程序选定。8237A在同一在同一个时间,只能有一个个时间,只能有一个DACK应答信号有效应答信号有效(yuxio)。HRQ:8237A-5向向CPU发出的总线请求信号,高电平有效发出的总线请
10、求信号,高电平有效(yuxio)。HLDA:CPU发给发给8237A-5的总线请求响应信号。高电平有的总线请求响应信号。高电平有效效(yuxio)。有效。有效(yuxio)时表示时表示CPU已让出总线。已让出总线。14 外部设备外部设备 DMAC DREQ CPU HRQHLDADACK9.2 DMA控制器控制器8237A的原理的原理(yunl)2. 8237A的外部的外部(wib)信号信号第14页/共47页第十四页,共48页。(2)地址信号线A3A0:地址线,双向三态。被动状态下,为输入,作为CPU对8237A内部的16个寄存器与计数器寻址之用。主动(zhdng)状态下,为输出,作为20位存
11、储器地址的最低4位。A7A4:地址线,单向。主动(zhdng)状态下,为输出。作为访问20位存储器地址低8位中的高4位。159.2 DMA控制器控制器8237A的原理的原理(yunl)2. 8237A的外部的外部(wib)信信号号第15页/共47页第十五页,共48页。(3)数据信号)数据信号DB7DB0:地址数据复用线,双向三态。:地址数据复用线,双向三态。被动状态下,为双向数据线。用于被动状态下,为双向数据线。用于CPU对对8237A进进行初始化,或行初始化,或DMA传输结束后传送状态。传输结束后传送状态。主动主动(zhdng)状态下,分时复用作为访问存储器的状态下,分时复用作为访问存储器的
12、高高8位地址线和数据线。在存储器到存储器传送方位地址线和数据线。在存储器到存储器传送方式中,作为数据的输入输出端。式中,作为数据的输入输出端。169.2 DMA控制器控制器8237A的原理的原理(yunl)2. 8237A的外部的外部(wib)信号信号第16页/共47页第十六页,共48页。(4)控制信号CS:片选信号,低有效。被动状态下用于CPU对8237的寻址。CLK:控制芯片(xnpin)内部操作和数据传输。RESET:输入信号,复位8237A。IOR/IOW:读写控制信号。被动状态下,为输入。用于CPU向DMAC写命令或初始化参数,或CPU读取8237A内部寄存器状态。主动状态下,为输出
13、。对外设进行读写。MEMR/MEMW:存储器读/写信号,单向输出。当8237A为主动工作状态时,对存储器进行读写。179.2 DMA控制器控制器8237A的原理的原理(yunl)2. 8237A的外部的外部(wib)信信号号第17页/共47页第十七页,共48页。ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地址寄存器中的高8位地址通过DB0DB7送到外部锁存器。AEN:地址允许。使地址锁存器中的高8位地址送地址总线。READY:准备就绪信号。低电平时,8237A处于等待状态,高电平表示外设或存储器准备就绪。EOP:DMA传输过程结束信号。DMA传送过程结束,则从EOP输出一个低有效
14、脉冲。若从EOP输入低脉冲信号,则表明(biomng)外部强制结束DMA传送。189.2 DMA控制器控制器8237A的原理的原理(yunl)(4 4)控制)控制(kngzh)(kngzh)信号信号第18页/共47页第十八页,共48页。lDMA的传送类型l数据传送:把源地址的数据传送到目的地址去。lDMA读:把数据由存储器传送到外设。lDMA写:把外设输入的数据写入存储器。l存储器与存储器之间的传递。l读/写操作均是针对存储器而言。l数据校验(xio yn):对数据块内的每个字节进行校验(xio yn)。l数据检索:在指定的内存区域内查找某个关键字节或某几个关键数据位是否存在,如果查到了,就停
15、止检索。9.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器第19页/共47页第十九页,共48页。n单字节传送方式单字节传送方式(fngsh)n每次传送一个字节,然后每次传送一个字节,然后释放总线控制权。传送下释放总线控制权。传送下一个字节时,重新申请使一个字节时,重新申请使用总线。用总线。n特点特点nCPU在每个在每个DMA周期结周期结束后立即控制总线。对系束后立即控制总线。对系统影响不大。统影响不大。nCPU和和DMAC轮流控制轮流控制系统总线,传输效率低。系统总线,传输效率低。209.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器允许 D
16、MADMAC发总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求NDMA放弃总线NYYDMA请求?块结束否?1. 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器8237A的的四四种种工工作作方方式式第20页/共47页第二十页,共48页。数据块传送方式数据块传送方式(fngsh)只要只要DMA一启动,一启动,DMAC始终占用总线,始终占用总线,直到数据传送结束,或直到数据传送结束,或外部强制停止,才交出外部强制停止,才交出总线控制权。总线控制权。特点特点效率高。效率高。DMA传输期间传输期间CPU长长时间不能控制总线。若时间不能控制总线。若一次传输的数据
17、较多,一次传输的数据较多,对系统会有一定响应。对系统会有一定响应。21YNDMAC控制传一个字节放弃总线中断请求CPU 响应 DMA放弃总线DMAC发总线请求允许 DMADMA请求?块结束?8237A的的四四种种(s zhn)工工作作方方式式9.3 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器第21页/共47页第二十一页,共48页。n请求传送方式请求传送方式n当当8237A检测到检测到DREQ请求时就传输一字节,当请求时就传输一字节,当DREQ无效,或操作结束,或由外部送来结束信无效,或操作结束,或由外部送来结
18、束信号号EOP,DMAC都会释放总线,把总线控制权交都会释放总线,把总线控制权交还还(jiohun)CPU。n具体实现:每传完一个字节,具体实现:每传完一个字节,DMAC都会检测外都会检测外设的设的DREQ请求。若请求。若DREQ无效,则马上停止无效,则马上停止DMA传输,将总线控制权交给传输,将总线控制权交给CPU。n特点特点n实现灵活,实现灵活,DMA操作可由外设用操作可由外设用DREQ信号控制信号控制发送过程。发送过程。228237A的的四四种种工工作作(gngzu)方方式式9.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器1. 8237A的工作方式和方式寄存器
19、的工作方式和方式寄存器第22页/共47页第二十二页,共48页。23允许DMADMAC发出总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求YY放弃总线NNYDMA请求?块结束?DMA请求?N第23页/共47页第二十三页,共48页。n级联传送级联传送(chunsn)方式方式n将多个将多个DMAC连在一起,一个为主,其余为从。连在一起,一个为主,其余为从。从片收到外设的从片收到外设的DMA请求后,不是向请求后,不是向CPU申请总申请总线,而是向主片申请,再由主片向线,而是向主片申请,再由主片向CPU申请。申请。248237A的的四四种种(s zhn)工工作作方方式式9.3 82
20、37A的工作的工作(gngzu)方式和方式和方式寄存器方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器第24页/共47页第二十四页,共48页。258237A的的方方式式(fngsh)寄寄存存器器9.3 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器1. 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器第25页/共47页第二十五页,共48页。例:例:PC系列软盘读写操作选择系列软盘读写操作选择DMA通道通道2,单字节传送,单字节传送,地址增地址增1,不用,不用(byng)自动预置,其写、读、校验操自动预置,其写、读、校验操作的方式字
21、分别如下:作的方式字分别如下:写操作:写操作:01000110 = 46H。读操作:读操作:01001010 = 4AH。校验操作:校验操作:01000010 = 42H。9.3 8237A的工作的工作(gngzu)方式和方式和方式寄存器方式寄存器1. 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器第26页/共47页第二十六页,共48页。9.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器2. 8237A的控制寄存器和有关的控制寄存器和有关(yugun)问题问题 (1) 8237A命令命令(mng lng)寄存器(只写)寄存器(只写)第27页/共4
22、7页第二十七页,共48页。D7、D6:决定DREQ和DACK的有效电平。D5:扩展写和不扩展写D5=1:扩展写信号,表示写脉冲加宽。D5=0:不扩展写信号,表示正常时序。D4:控制通道的优先权D4=0:采用固定优先级,DREQ0最高,DREQ3最低。D4=1:采用循环优先级。已服务(fw)过的通道优先权变为最低,其下一个通道优先权变为最高。289.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器2. 8237A的控制的控制(kngzh)寄存器和有关寄存器和有关问题问题 (1) 8237A命令寄存器(只写)命令寄存器(只写)第28页/共47页第二十八页,共48页。299.
23、3 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器2. 8237A的控制的控制(kngzh)寄存器和有关寄存器和有关问题问题 (1) 8237A命令命令(mng lng)寄存器(只写)寄存器(只写) D3:时序类型lD3=0:普通时序普通时序,每传输一个字节需要3个时钟周期。lD3=1:压缩时序压缩时序,每传输一个字节需要2个时钟周期。 D2:启动和停止8237A的工作。lD2=0:启动;D2=1:停止。l该位影响所有的通道 D1:通道0地址保持。用于内存到内存的传输。lD1=0:不保持。D1=1:保持。l配合D0位使用。第29页/共47页第二十九页,共48页。D0:允许
24、和禁止内存到内存传输。D0=1:允许。D0=0:禁止。在实现内存到内存的传输时,需把源数据先送到8237的暂存器中,然后再送到目的区。这时,用通道0的地址寄存器存放源地址,用通道1的地址寄存器和字节(zji)计数器存放目的地址和计数值。传输时,目的地址寄存器的值正常加1或减1,但源地址寄存器的值可通过设置D1=1而保持不变,这样可使同一数据传输到整个选定的内存区域。309.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器2. 8237A的控制寄存器和有关的控制寄存器和有关(yugun)问题问题 (1) 8237A命令寄存器(只写)命令寄存器(只写)第30页/共47页第三
25、十页,共48页。【 例 】 PC微 机 中 的 8237A-5, 按 如 下 要 求 工 作 : 禁 止(jnzh)存储器到存储器传送,正常时序,滞后写入,固定优先级,允许8237A-5工作,DREQ信号高电平有效,DACK信号低电平有效。已知写命令寄存器对应的地址为08H,请给出写命令的程序段。命令字为00000000H写命令字代码段:MOVAL,00HOUT08H,AL319.3 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器2. 8237A的控制的控制(kngzh)寄存器和有关寄存器和有关问题问题第31页/共47页第三十一页,共48页。低4位表示哪些(nxi)DMA
26、通道传送结束。高4位表示哪些(nxi)通道有DMA请求还未处理。状态位在复位或被读出后,均被清零。329.3 8237A的工作的工作(gngzu)方式和方式和方式寄存器方式寄存器3. 8237A的状态的状态(zhungti)寄存器的寄存器的格式格式第32页/共47页第三十二页,共48页。(1)请求标志和请求寄存器(只写)请求标志和请求寄存器(只写)一般一般DMA请求由硬件发出,通过请求由硬件发出,通过DREQ引脚引入引脚引入DMA请求。但也可通过软件来发出请求。但也可通过软件来发出DMA请求。请求。若是内存到内存传输,则必须由软件请求启动通道若是内存到内存传输,则必须由软件请求启动通道0。仅适
27、用于块传输方式,传送结束信号仅适用于块传输方式,传送结束信号EOP自动自动(zdng)清除请求位。清除请求位。339.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器4. 8237A的请求的请求(qngqi)标志、屏蔽标志和复位命令标志、屏蔽标志和复位命令第33页/共47页第三十三页,共48页。(2)屏蔽寄存器(只写)屏蔽寄存器(只写)用来禁止或允许通道的用来禁止或允许通道的DMA请求请求(qngqi)。各通道相互。各通道相互独立。复位使独立。复位使4个通道全被屏蔽。有以下两种形式:个通道全被屏蔽。有以下两种形式:单通道屏蔽寄存器:每次只能屏蔽一个通道。单通道屏蔽寄存器
28、:每次只能屏蔽一个通道。349.3 8237A的工作的工作(gngzu)方式和方式方式和方式寄存器寄存器4. 8237A的请求的请求(qngqi)标志、屏蔽标志和复位命标志、屏蔽标志和复位命令令第34页/共47页第三十四页,共48页。四通道屏蔽四通道屏蔽(pngb)寄存器:可同时屏蔽寄存器:可同时屏蔽(pngb)4个通道。个通道。低低4位全部置位全部置1,则屏蔽,则屏蔽(pngb)所有的所有的DMA请求。请求。低低4位全部置位全部置0,则允许所有的,则允许所有的DMA请求。请求。359.3 8237A的工作的工作(gngzu)方式和方式和方式寄存器方式寄存器4. 8237A的请求标志、屏蔽的请
29、求标志、屏蔽(pngb)标志和复位命令标志和复位命令(2)屏屏蔽蔽标标志志和和屏屏蔽蔽寄寄存存器器第35页/共47页第三十五页,共48页。【例】为了在每次软盘读/写操作时,进行DMA初始化都必须开放(kifng)通道2,以便响应软盘的DMA请求,可采用下述两种方法之一来实现。(已知屏蔽单通道屏蔽寄存器和4通道屏蔽寄存器对应的地址分别为0AH和0FH)使用单通道屏蔽寄存器MOVAL,00000010;最低3位=010,开放(kifng)通道2OUT0AH,AL;写单个通道屏蔽寄存器使用4通道屏蔽寄存器MOVAL,00001011B;最低4位为1011,开放(kifng)通道2OUT0FH,AL;
30、写四通道屏蔽寄存器369.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器4. 8237A的请求标志、屏蔽标志和复位的请求标志、屏蔽标志和复位(f wi)命令命令第36页/共47页第三十六页,共48页。379.3 8237A的工作的工作(gngzu)方式和方方式和方式寄存器式寄存器4. 8237A的请求的请求(qngqi)标志、屏蔽标志和复位命标志、屏蔽标志和复位命令令(3)总清命令)总清命令 与硬件的与硬件的Reset信号功能相同。信号功能相同。 使得使得DMA控制器内部的命令寄存器、状态寄存器、控制器内部的命令寄存器、状态寄存器、请求请求(qngqi)寄存器、暂存寄
31、存器、字节指针都寄存器、暂存寄存器、字节指针都清清0。 使得屏蔽寄存器全置使得屏蔽寄存器全置1,禁止所有的,禁止所有的DMA请求请求(qngqi)。MOV AL, 00H ;AL为任意值为任意值OUT 0DH, AL ;写入对应的端口;写入对应的端口第37页/共47页第三十七页,共48页。389.4 8237A各寄存器对应各寄存器对应(duyng)的的端口地址端口地址n8237A DMA控制器进行读、写操作共有16个端口,使用地址线A3 A0 进行寻址,分别记作 DMA + n。n占用(zhn yn)的I/O地址为00H0FH。其地址分配情况如下。端口端口通通道道I/O端口端口地址地址寄存器寄
32、存器读读(IOR)写写(IOW)DMA+0000H当前地址寄存器基地址与当前地址寄存器DMA+1001H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+2102H当前地址寄存器基地址与当前地址寄存器DMA+3103H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+4204H当前地址寄存器基地址与当前地址寄存器DMA+5205H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+6306H当前地址寄存器基地址与当前地址寄存器DMA+7307H当前字节计数寄存器基字节计数与当前字节计数寄存器第38页/共47页第三十八页,共48页。39端口端口通通道道I/O口口地址地址寄存器寄存
33、器读读(IOR)写写(IOW)DMA+8公用08H状态寄存器写命令寄存器DMA+909H写请求寄存器DMA+100AH写单个通道屏蔽寄存器DMA+110BH写工作方式寄存器DMA+120CH清除字节指针*DMA+130DH暂存寄存器写总清命令*DMA+140EH写清四个通道屏蔽寄存器*DMA+150FH写四个通道屏蔽寄存器 * 为软命令为软命令(mng lng)。9.4 8237A各寄存器对应各寄存器对应(duyng)的端的端口地址口地址第39页/共47页第三十九页,共48页。DMA系统的初始化HLDA无效时可以(ky)对8237A进行初始化编程。初始化需做的工作有:写命令字,禁止8237A工
34、作,或对相应通道进行屏蔽。执行总清命令进行复位。写方式寄存器。设置基地址、基字节和页面地址寄存器的内容。清除屏蔽允许DMA请求,准备传输数据。409.5 8237A的编程和应用(yngyng)第40页/共47页第四十页,共48页。419.5 8237A的编程和应用(yngyng)【例】在系统中,8237A的通道0做对动态(dngti)RAM的刷新,通道1提供网络通信功能,采用固定优先级,为防止数据丢失,动态(dngti)RAM刷新操作对应的优先级最高。已知:8237A端口地址为0000000FH,DMA代表首地址0000H,8237A的地址寄存器只有16位,为使用CPU的寻址范围,外加页面寄存
35、器。实模式下有20位地址,最高4位地址A19A16放在页面寄存器,其端口地址为0083H。通道通道0初始化程序初始化程序(chngx)如下:如下: 第41页/共47页第四十一页,共48页。429.5 8237A的编程和应用(yngyng)通道通道(tngdo)0初始化程序如下:初始化程序如下:MOVAL, 04MOVDX, DMA+8OUTDX, AL;停止停止8237A工作工作MOVAL, 00MOVDX, DMA+0DHOUTDX, AL;8237A复位复位MOVDX, DMA+1MOVCX, 0004WRITE:MOVAL, 0FFHOUTDX, ALOUTDX, AL;16位计数值位计
36、数值FFFFH写入写入0通道通道(tngdo)计计数器数器INCDXINCDXLOOPWRITE;FFFFH写入写入4个通道个通道(tngdo)计数器计数器第42页/共47页第四十二页,共48页。439.5 8237A的编程和应用(yngyng)通道通道(tngdo)0初始化程序如下:初始化程序如下:MOVDX, DMA+0BHMOVAL, 58H;单字节、地址加单字节、地址加1、自动初始化、读、自动初始化、读OUTDX, AL;通道通道(tngdo)0方式选择方式选择MOVAL, 00MOVDX, DMA+08HOUTDX, AL;设置设置8237A控制字控制字MOVDX, DMA+0AHO
37、UTDX, AL;写单屏蔽寄存器写单屏蔽寄存器第43页/共47页第四十三页,共48页。44NETTRA:MOVDX,DMA+0CHMOVAL,00OUTDX,ALMOVDX,DMA+09HOUTDX,ALMOVAX,01ORAX,SIMOVDX,DMA+0BHOUTDX,ALMOVAX,ESMOVCL,04ROLAX,CLMOVCH,ALANDAL,0F0HADDAX,BXJNCABCINCCHl利用通道1进行网络通信的传输(chun sh)程序ABC:MOVDX,DMA+2OUTDX,ALMOVAL,AHOUTDX,ALMOVAL,CHANDAL,0FHMOVDX,DMA+0083HOUTD
38、X,ALMOVAX,DIDECAXMOVDX,DMA+3OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,DMA+0AH第44页/共47页第四十四页,共48页。45MOVAL,01OUTDX,ALMOVDX,DMA+8MOVAL,60HOUTDX,ALMOVDX,DMA+8WAIT:INAL,DXANDAL,02HJZWAITl利用通道1进行网络通信的传输(chun sh)程序第45页/共47页第四十五页,共48页。更换老师更换老师(losh)(losh)说明说明46第46页/共47页第四十六页,共48页。47感谢您的欣赏(xnshng)!第47页/共47页第四十七页,共48页。内容(nirng)总结DMA。即:用硬件(yn jin)控制代替了软件控制。第5页/共47页。最多可扩展4个从片,即16个DMA通道。作为访问20位存储器地址低8位中的高4位。MEMR/MEMW:存储器读/写信号,单向输出。状态位在复位或被读出后,均被清零。4. 8237A的请求标志、屏蔽标志和复位命令。INCCH。MOVDX,DMA+8。ANDAL,02H。JZWAIT。第46页/共47页。感谢您的欣赏第四十八页,共48页。