2dma与dma控制器1

上传人:正** 文档编号:34633191 上传时间:2018-02-26 格式:PPT 页数:33 大小:203.50KB
返回 下载 相关 举报
2dma与dma控制器1_第1页
第1页 / 共33页
2dma与dma控制器1_第2页
第2页 / 共33页
2dma与dma控制器1_第3页
第3页 / 共33页
2dma与dma控制器1_第4页
第4页 / 共33页
2dma与dma控制器1_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《2dma与dma控制器1》由会员分享,可在线阅读,更多相关《2dma与dma控制器1(33页珍藏版)》请在金锄头文库上搜索。

1、,2 DMA技术,2018/2/26,2,CPU与外设之间的数据传送方式,(1)无条件传送方式 (2)查询传送方式(3)中断传送方式(4)直接存储器存取(DMA)方式DMA(Direct Memory Access)DMA方式,即直接存储器存取方式,存储器与外设在DMA控制器( DMAC)的控制下,通过系统总线直接传送数据而不经过CPU,传输速率主要取决于存储器和外设的速度。在微机系统的外设数据传输中,DMA传输方式是最快的。,CPU与外部设备交换信息通常有如下四种方式:,数据 状态/控制端口 端口,DMA控制器,CPU,存储器,数据缓冲寄存器,DMA请求触发器,输入设备,地址寄存器,计 数

2、器,控制/状态寄存器,HOLD,HLDA,Ready,DMA请求,DMA响应,DMA控制器原理框图,系统总线,2018/2/26,4,2 DMA技术,在DMA传送周期内,CPU处于“HOLD”状态,即CPU的所有三态总线呈高阻状态,而DMA控制器夺取了总线控制权,由它提供存储器和I/O操作所需的总线信号,执行存储器和I/O之间的数据传输。可见,DMA控制器必须具有产生地址信号,修改地址指针,控制传送的字节数,发生DMA请求信号,以及在进入DMA方式后判断服务是否结束信号等功能。,2018/2/26,5,DMA传送方式与DMA控制器,DMA传送方式不需CPU干预可完成M与I/O、 M与M、 I/

3、O与M间数据传送。DMA期间系统总线由DMAC控制(驱动)控制总线的DMAC要提供系统的地址及控制信号。DMAC与处理器CPU配合才可实现微机系统的DMA功能。,2018/2/26,6,DMA与DMA控制器,DMA的系统组成,2018/2/26,7,DMA的工作过程I/O向DMAC DMAC向 CPU响应 DMAC向 发请求 CPU发请求 DMAC请求 I/O发响应,DMA传送进行,DMAC发出内存地址,2018/2/26,8,Intel 8237A可编程DMA控制器,8237A的主要功能:每片有4个独立的DMA通道可编程决定各通道的优先权顺序一次传送数据最大长度64K允许从外部结束DMA传送

4、或重新初始化,2018/2/26,9,8237A内部寄存器:8237A有四个独立通道,每个通道内包含有5个寄存器。16位的基地址寄存器16位的当前地址寄存器16位的基字节数寄存器16位的当前字节数寄存器8位的模式寄存器四个通道共用控制寄存器,状态寄存器,各寄存器均为8位。,Intel 8237A可编程DMA控制器,2018/2/26,10,Intel 8237A可编程DMA控制器,8237A内部寄存器:四个通道共用临时地址寄存器、临时字节数寄存器、命令寄存器、暂存寄存器、屏蔽寄存器、请求寄存器8237A内部共有27个寄存器。见P270,表8.1。?,2018/2/26,11,Intel 823

5、7A可编程DMA控制器框图,2018/2/26,12,8237A的内部口地址及操作,2018/2/26,13,Intel 8237A可编程DMA控制器,8237A主从两面性:作为DMAC,8237A是可控制总线的主模块。这是工作的主方式;作为I/O芯片,8237A可被处理器读写,是系统总线的从设备,是8237A的从方式。使用时注意8237A主-从地位的变化。,2018/2/26,14,控制线-CS:片选,从模块时处理器用来寻址8237A。-IOR,IOW:I/O读写控制,双向。8237A在从模块时为输入,在主模块时为输出。AEN,ADSTB输出:8位地址锁存允许及选通。在主模块时允许外部锁存器

6、锁存8237A的高8位地址。-MEMR,-MEMW:输出,存储器读写控制,主模块时送存储器。READY:输入,准备就绪,主模块时控制总线周期的长度,与慢速设备同步。,Intel 8237A的引脚,2018/2/26,15,RESET:输入,复位信号,复位时屏蔽寄存器置1,其它寄存器置0。-EOP:双向。输出时,表明内部通道传送结束;输入时,表明外部强迫DMA传送停止。DREQ0-DREQ3:I/O设备DMA请求输入信号。DACK0-DACK3:输出DMA请求的响应信号。HRQ:8237A向处理器发出的总线请求信号。HLDA:处理器发给8237A的总线请求响应信号。,Intel 8237A的引脚

7、,2018/2/26,16,数据线 DB7-DB08237A为从模块时被处理器编程为读状态,DB7-DB0作为数据线,传输数据或命令字。8237A为主模块时DB7-DB0输出地址A15-A8,在MM传送操作时经DB7-DB0,将M数据送8237A暂存寄存器。地址线 A3-A0, A7-A4当8237A为从模块时A3-A0为输入,对8237A内部寄存器进行寻址;8237A为主模块时主模块时输出低4位地址。8237A为主模块时A7-A4输出高4位地址,作为从模块时处于高阻状态。,Intel 8237A的引脚,2018/2/26,17,DMA控制器8237A,8237A主控总线进行DMA传输时,一共

8、有四种工作模式:P272 单字节传送模式 块传送模式请求传送模式 级联模式,2018/2/26,18,DMA传送类型,DMA传送有三种类型:PDMA读(传输数据由存储器到外设)DMA写(传输数据由外设到存储器)DMA空操作(仅产生时序和地址信号,不产生有效控制信号,外设可利用此时序进行校验),2018/2/26,19,1、模式 REG的格式(写入0BH):工作方式设定,8237A的编程,2018/2/26,20,2、8237A 控制REG格式(写入08H):8237A硬件设置:,8237A的编程,2018/2/26,21,3、8237A DMA请求寄存器(写入09H),8237A的编程,DMA

9、请求可以来自两个方面:一是由硬件产生,硬件是DREQ线的有效电平会使该触发器置1;也可以通过软件产生,即通过对每个通道的DMA请求标志置位产生。只有在数据块传送方式才允许使用软件请求。,2018/2/26,22,D7,D6,D3,D2,D1,D0,D5,D4,不用,0,清除 MASK 位,建立 MASK 位,1,0,0,Channel 0,0,0,1,1,1,1,Channel 1,Channel 2,Channel 3,通道选择,4、8237A屏蔽REG(写0AH): 设屏蔽字(单通道),8237A的编程,2018/2/26,23,D7,D6,D3,D2,D1,D0,D5,D4,不用,0,清

10、 Channel 3 M 位,设 Channel 3 M 位,1,0,清 Channel 2 M 位,1,设 Channel 2 M 位,5、8237A全屏蔽寄存器(写0FH):设屏蔽字(四通道) 可以实现一次对多个通道设置/清除屏蔽字,8237A的编程,2018/2/26,24,6、8237A状态REG格式(读08H):查询8237A的状态信息,D0D3:分别用来表示通道03的计数器的工作状态。只要通道到达计数终点,或由外界的-EOP触发结束,D0D3的相应位就被置为1;D4D7:分别用来表示通道03的DMA请求状态。相应位为1即有DMA请求,反之,无DMA请求。,8237A的编程,2018

11、/2/26,25,通道 3 有DMA请求 1,8237A的编程,6、8237A状态REG格式(读08H):可监测运行状态,2018/2/26,26,8237A的软件命令有3条:主清除命令、清除先/后触发器和综合屏蔽命令主清除命令:相当于硬件的RESET信号清除先/后触发器:使CPU能正确读写16位寄存器的内容。当先/后触发器为0时,CPU读写寄存器的低8位;当先/后触发器为1时,CPU读写寄存器的高8位;读写完毕,先/后触发器又恢复为0。综合清除屏蔽命令:清除4个通道的屏蔽标志,允许各通道接受DMA请求。,DMA与DMA控制器,2018/2/26,27,关于3个软件命令:有确定端口号,与DB线

12、上的内容无关。写0C号地址:清除字节指针F/F,使将装入顺序为先LSB后MSB。写0D号地址:主清除命令,屏蔽REG为1,其它REG为0 ,软件复位。写0E号地址,清除屏蔽标志。,DMA与DMA控制器,2018/2/26,28,8237A的内部寄存器的寻址 例见P283,2018/2/26,29,8237A的编程步骤,输出主清除命令(0DH)写入基地址和当前地址寄存器写入基字节和现行字节数寄存器写入模式寄存器(0BH)写入屏蔽寄存器(0AH/0FH)写入控制寄存器(08H)若是软件请求则写入请求寄存器(09H),2018/2/26,30,对8237A的编程举例,例:假设要利用通道0的单字节读模

13、式,由外设输入一个数据块到内存,数据块长度为16K,内存区首地址为2000H,采用地址加1变化,不进行自动预置。外设的DREQ与DACK均为低有效,普通时序,固定优先级。试完成初始化程序与应用程序。设8237A的口地址为0010H001FH模式寄存器:01001000(48H)控制寄存器:01000000(40H),MOV AL, 00H OUT 1DH, AL MOV AL, 00H OUT 10H, AL MOV AL, 20H; OUT 10H, AL MOV AL, 00H OUT 11H, AL MOV AL, 40H OUT 11H, AL MOV AL, 48H OUT 1BH,

14、 AL MOV AL, 00H OUT 1AH, AL MOV AL, 40H OUT 18H, ALWAIT: IN AL, 18H AND AL, 01H JZ WAIT,2018/2/26,31,8237A的操作时序,见教材P280,2018/2/26,32,IBM PC/XT的DMA结构,IBM PC/XT中DMA控制电路由一片8237A、一片DMA页面寄存器74LS670、DMA地址锁存器、DMA地址驱动器等组成。8237A提供四DMA通道CH0CH3,各通道使用如下:CH0: 动态RAM刷新; CH1: 为用户保留DMA通道;CH2: 软磁盘;CH3: 硬磁盘。,2018/2/26,33,作业二:,雷丽文 书P2948-18-28-38-48-5,

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

当前位置:首页 > 建筑/环境 > 工程造价

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