第9章DMA微型计算机原理与接口技术

上传人:我*** 文档编号:137678907 上传时间:2020-07-11 格式:PPT 页数:31 大小:759KB
返回 下载 相关 举报
第9章DMA微型计算机原理与接口技术_第1页
第1页 / 共31页
第9章DMA微型计算机原理与接口技术_第2页
第2页 / 共31页
第9章DMA微型计算机原理与接口技术_第3页
第3页 / 共31页
第9章DMA微型计算机原理与接口技术_第4页
第4页 / 共31页
第9章DMA微型计算机原理与接口技术_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《第9章DMA微型计算机原理与接口技术》由会员分享,可在线阅读,更多相关《第9章DMA微型计算机原理与接口技术(31页珍藏版)》请在金锄头文库上搜索。

1、8 DMA控制器8237A,DMA方式是让存储器直接和高速外设直接交换数据,在传输的过程中不需要CPU的介入,传输操作都由硬件完成,因此减轻了CPU的负担,同时也大大提高了传输的速度。,8.1 DMA控制器一般结构,8.2 DMA控制器8237A的原理,1、8237A的编程结构,模式寄存器,基地址寄存器,当前地址寄存器,基字节寄存器,当前字节寄存器,通道0,控制寄存器,状态寄存器,请求寄存器,屏蔽寄存器,暂存器,通道1,通道2,通道3,DREQ0,DACK0,DREQ1,DACK1,DREQ2,DACK2,DREQ3,DACK3,AEN,ADSTB,A4A7,AD0AD7,MEMR,MEMW,

2、IOR,IOW,HRQ,HLAD,EOP,READY,RESET,CLK,GND,VCC,A0A3,2、8237的寄存器组,1)现行地址寄存器 每一个通道有一个16位的现行地址寄存器。在这个寄存器中保存着用于DMA传送的地址值,在每次传送后,这个寄存器的值自动增量或减量。这个寄存器的值可由CPU写入或读出(分两次连续操作)。 2)现行字节数寄存器 每个通道有一个16位的现行字节数寄存器,它保持着要传送的字节数,在每次传送后此寄存器减量。当这个寄存器的值减为零时,TC将产生。这个寄存器的值在编程状态可由CPU读出和写入。 以上2个寄存器在自动预置方式时,当EOP信号有效时,自动置初值(由基地址和

3、基字节数寄存器决定)。,3)基地址和基字节数寄存器 每一个通道有一对16位的基地址和基字节数寄存器,它们存放着与现行寄存器相联系的初始值。 4)控制寄存器、状态寄存器、暂存器(在MM期间临时保存数据)等,3、DMA引脚功能,主要引脚的功能: 1)READY:I/O或存储器准备就绪信号,高电平有效; 2)ADSTB:高8位地址锁存信号,在DMA的地址输出周期,锁存从AD0AD7输出的高8位地址; 3)AEN:地址允许信号,在DMA期间,禁止地址信号产生I/O译码; 4)EOP:低电平,外部输入EOP信号到DMA时,强迫DMA结束;当DMA内部计数器计数结束时,输出低电平,通知I/O,DMA结束;

4、 5)A0A3:低4位地址,在DMA期间产生低位地址,在DMA编程初始化时,对DMA内部寄存器寻址; 6)MEMR、MEMW、IOR、IOW: 7)HRQ、HLAD:总线请求和总线回应信号; 8)AD0AD7:8位数据线,在DMA输出地址周期,产生高8位地址; 9)DREQ、DACK:DMA请求和应答信号; 10)A4A7:DMA地址信号。,4、8237A功能,8237A DMA控制器的主要功能: 1)8237 有4个独立的 DMA 通道; 2)每个通道的DMA请求都可以分别允许和禁止; 3)每个通道的DMA请求有不同的优先权,优先权可以是固定的,也可以是旋转的(由编程来决定)。 4)每个通道

5、一次传送数据的最大长度为 64KB,可以是存储器与 I/O之间传送数据,也可以是存储器之间传送数据; 5)8237有4种传送方式: (1)单字节传送方式; (2)数据块传送方式; (3)请求传送方式; (4)级连方式。 6)有一个结束处理的输入信号 EOP,CPU 可以通过EOP结束DMA操作或对DMA重新初始化; 7)8237可以级连,任意扩展通道数。,5、8237内部寄存器,6、8237的工作周期 1)空闲周期 SI 在空闲周期,DMA采样DREQ信号,如无DMA请求,则执行 SI周期。 同时,DMA采样 DMA的CS信号,CS有效,表示CPU要对8237进行读写操作,此时控制线IOR、I

6、OW及A0-A3,用来控制8237内部寄存器的读写。如果读写16位数,则根据8237内部的高/低触发器控制读写的是高8位还是低8位。,2)请求应答周期 S0 在SI下降沿DMA采样到 DREQ信号,则DMA进入S0状态,并向 CPU 发送 HRQ信号,S0状态一直持续到 CPU的回应信号 HLDA有效。 3)DMA操作周期 S1 - S4 S1:DMA 从DB0DB7输出高8位地址,发送ADSTB有效信号,A0A7输出低8位地址;且 AEN信号有效。 S2:外部地址锁存器锁存高8位地址,并输出16位地址到RAM,向申请DMA传送的外设发出请求回答信号 DACK,DACK作为I/O的选通信号(I

7、/O寻址被禁止);并发送读命令(IOR/MEMR),为DMA读准备。 S3:DMA写,DMA写信号(MEMW/IOW) S4:DMA结束 ,并检查EOP信号。,S,1,S,2,S,1,S,1,S,3,S,0,S,0,S,W,S,W,S,4,DREQ,HLDA,就绪,块字节,未,就,绪,就,绪,单,字,节,HRQ,数据传输状态,请求应答态,空闲状态,7、DMA工作方式 1)单字节传送方式 这种方式一次只传送一个字节。数据传送后字节计数器减量,地址要相应修改(增量或减量取决于编程)。HRQ变为无效,释放系统总线。若传送使字节数减为0,TC发生或者终结DMA传送,或重新初始化。 2)块传送方式 在这

8、种传送方式下,8237由DREQ启动后就连续地传送数据,直至字节数计数器减到零产生TC(Terminal Count),或者由外部输入有效的EOP信号来终结DMA传送。 3)请求方式 在这种工作方式下,8237可以进行连续的数据传送。当出现以下三种情况之一时停止传送。 (1)字节数计数器减到0,发生TC; (2)由外界送来一个有效的EOP信号; (3)外界的DREQ信号变为无效(外设的数据已传送完)。,4)级联方式 这种方式用于通过级连以扩展通道的情况。第二级的HRQ和HLDA信号连到第一级的DREQ和DACK上。此时,第一级DMA只是个优先权网络。 在前三种工作方式下,DMA传送有三种类型:

9、DMA读、写和校验。,CPU,8237,HRQ,HLDA,DERQ0,DACK0,DERQ3,DACK3,8237,HRQ,HLDA,DERQ0,DACK0,DERQ3,DACK3,8237,HRQ,HLDA,DERQ0,DACK0,DERQ3,DACK3,5)8237A工作模式寄存器格式,通道选择 00:通道0 01:通道1 10:通道2 11:通道3,传输类型 00:MM校验 01:I/OM写 10:MI/O读 11:无意义,自动预置 0:禁止,1:允许。在自动预置时,当计数器计数到0时,当前地 址寄存的值和当前计数寄存器的值会被基地址寄存器和基计数寄存 器的值预置。,地址增减选择 0:地

10、址减1 1:地址加1,模式选择 00:请求模式 01:单字节传输 10:块传输 11:级联,8、8237A控制寄存器格式,1:MM传输方式 0:其它,1:MM时,源地址 保持不变。,0:启动8237A工作 1:停止8237A工作,0:普通时序, 1:压缩时序,0:固定 优先级 1:循环 优先级,0:无扩展写信号 1:扩展写,D6=0:DREQ高电平有效 D6=1:DREQ低电平有效 D7=0:DACK低电平有效 D7=1:DACK高电平有效,D0=1,表示存储器到存储器的数据传送,此时,由通道0发出软件DMA请求,规定通道0从源内存地址读取数据到暂存器。再由通道1把暂存器的数据写到目的内存单元

11、。 MM的操作需要2个DMA周期。,9、请求寄存器 8237的每个通道有一条硬件的DREQ请求线,当工作在数据块传送方式时,也可以由软件发出DREQ请求,即请求该通道进行DMA操作。所以,在8237中有一种请求寄存器。 每个通道的软件请求可以分别设置。软件请求是非屏蔽的,它们的优先权同样受优先权逻辑的控制。 软件请求标志在DMA复位或EOP有效时,会自动清0。 在对通道进行DMA软请求时,D2=1表示请求标志置1,否则置0 。 D1D0:对通道进行选择。,10、屏蔽寄存器 每个通道外设通过DREQ线发出的请求,可以单独地屏蔽或允许,所以在8237中有一个屏蔽寄存器,用来控制某个通道的DMA操作

12、是否被屏蔽。 EOP信号有效时,且某通道禁止自动预置,则对应的屏蔽位被置1(被屏蔽)。DMA在复位时,所有的屏蔽位都被置1。 每个通道可以用命令来置位或复位,命令格式有2种: (1)单个通道屏蔽,如请求寄存器的操作一样,地址为DMA+0AH。 D2=1,屏蔽;D1D0:选择通道。 (2)同时写4个通道,屏蔽寄存器地址为:DMA+0FH。 D0=1,屏蔽通道0;D1=1,屏蔽通道1;D2=1,屏蔽通道2; D3=1,屏蔽通道3。,11、状态寄存器 8237中有一个可由CPU读取的状态寄存器,用来了解DMA的状态。其中,D0 D3 为1,分别表示DMA0DMA3计数到终点或EOP信号有效。为0表示

13、DMA复位或CPU产生了一次状态寄存器读操作。D4 D7 为1分别表示DMA0DMA3有DMA请求,为0为没有DMA请求。,12、软件命令 8237在编程状态还有两种软件命令,软件命令不需要通过数据总线写入控制字,而由8237直接对地址和控制信号进行译码。 (1)清除高/低触发器(字节指示器):高/低触发器为0,CPU与DMA进行低8位数据传送;为1时,进行高8位数据传送。地址为:DMA+0CH 如:OUT 8CH,AL(AL=0) (2)主清除命令:相当于RESET信号,它执行后,能清除命令寄存器、状态寄存器、各通道的请求标志、暂存器和高/低触发器,并将各通道的屏蔽标志置1,8237进入空闲

14、周期。地址为DMA+0DH 如:OUT 8DH,AL(AL=0),13、8237内部寻址 8237内部寄存器分2组:通道寄存器组和命令与状态寄存器组,寻址靠 A0 A3完成,且A3=0时,对通道寄存器组寻址;A3=1时,对命令与状态寄存器组寻址。 (1)通道寄存器的寻址 8237内部有4个通道,每个通道有4个寄存器:基地址寄存器、基字节计数器、现行地址寄存器、现行字节计数器。CPU在写基地址寄存器、基字节计数器时,同时写现行地址寄存器、现行字节计数器。而只能读现行地址寄存器、现行字节计数器。故在CPU对DMA写时,基地址寄存器与现行地址寄存器、基字节计数器与现行字节计数器的地址一样。 A1、A

15、2区分通道DMA0 DMA3;A0=0,表示写基地址寄存器和现行地址寄存器,或者读现行地址寄存器;A0=1,表示写基字节计数器和现行字节计数器,或者读现行字节计数器。在读写时,先读写低8位,紧接着读写高8位。,例如,DMA的地址为80H,将地址8040H写通道1的基地址寄存器和现行地址寄存器: MOV AL, 40H OUT 82H,AL MOV AL,80H OUT 82H,AL 读通道1的现行地址寄存器到AX: IN AL,82H MOV BL,AL IN AL,82H MOV AH, AL MOV AL, BL,(2)命令与状态寄存器组的寻址,8.3 8237的编程 (1)输出主清除命令。 (2)写入基与现行地址寄存器。 (3)写入基与现行字节数寄存器。 (4)写入模式寄存器。 (5)写入屏蔽寄存器。 (6)写入命令寄存器。 (7)写入请求寄存器。若有软件请求,就写入指定通道,可以开始DMA传送的过程。若无软件请求,则在完成了(1)(6)的编程后,由通道的DREQ启动DMA传送过程。,8.4 8237时序 1)标准时序:S1、S2、S3、S4 (以I/OM) S1:DB0DB7:高8位地址,发出ADSTB、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号