微机原理与接口技术课件:07 dma控制器8237a

上传人:xiao****1972 文档编号:72225479 上传时间:2019-01-22 格式:PPT 页数:57 大小:2.71MB
返回 下载 相关 举报
微机原理与接口技术课件:07 dma控制器8237a_第1页
第1页 / 共57页
微机原理与接口技术课件:07 dma控制器8237a_第2页
第2页 / 共57页
微机原理与接口技术课件:07 dma控制器8237a_第3页
第3页 / 共57页
微机原理与接口技术课件:07 dma控制器8237a_第4页
第4页 / 共57页
微机原理与接口技术课件:07 dma控制器8237a_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《微机原理与接口技术课件:07 dma控制器8237a》由会员分享,可在线阅读,更多相关《微机原理与接口技术课件:07 dma控制器8237a(57页珍藏版)》请在金锄头文库上搜索。

1、1 DMA控制器概要 2 8237A的编程结构和外部引脚 3 8237A的工作模式和模式寄存器 4 8237A的工作时序 5 8237A的控制寄存器和状态寄存器 6 8237A各寄存器对应的端口地址,目录,1 DMA控制器概述,一、DMA(Direct Memory Access)控制器概念,数据传送三种方式:查询、中断和DMA(直接存储器存取) 查询、中断: 需要累加器中转;修改地址、判断结束软件完成; DMA:不经过累加器;地址修改、判断结束硬件实现; 主要用于高速、大批量数据传送。如磁盘存取、高速数据采集; 以增加硬件的复杂性为代价;DMA传送期间CPU挂起,可能影响中断响应与处理。 不

2、适用于小系统、速度要求不高、数据不大的系统。,1 DMA控制器概述,一、DMA控制器概念:,DMA(Direct Memory Access):直接存储器存取技术,是一种不需要CPU干预也不需要软件介入的高速数据传送方式。 CPU只是启动DMA过程,但是不干预这一过程,整个DMA过程是由硬件自动完成的,也不需要软件的介入。 在DMA控制器的控制下,可以实现外设到和内存,内存到内存的数据传输。,无需CPU指令,1 DMA控制器概述,二、DMA控制器工作过程:,DMA控制器的工作过程分为四个阶段,分别是: 申请阶段 响应阶段 数据传送阶段 传送结束阶段。,1 DMA控制器概述,二、DMA控制器工作

3、过程-申请阶段,1.外设向DMAC发出DMA请求信号DREQ(DMA Request); 2. DMAC向CPU发总线请求信号HRQ(Hold Request)。,1 DMA控制器概述,二、DMA控制器工作过程-响应阶段,1. CPU向DMA发总线保持回答信号HLDA。 状态: CPU让出总线,DMAC为主控者。,1 DMA控制器概述,二、DMA控制器工作过程-数据传送阶段,1. DMAC向外设发DMA请求回答信号DMACK,选中外设。 2. 并通过AB选中内存单元 3. 通过DB将数据从源端传送到目的端。,1 DMA控制器概述,二、DMA控制器工作过程-传送结束阶段,1.数据传送完毕,DMA

4、C向外设传送“过程结束”信号EOP。 2. DMAC向CPU交回总线,CPU重新获得总线的控制权。,1 DMA控制器概述,几种常见DMAC,2 8237A的编程结构和外部引脚,一、8237A的主要特点:,(1)一个芯片中有4个独立的DMA通道。 (2)可以实现内存与外设,内存与内存的数据传输。 (3)每一个通道的DMA请求都可以被允许或禁止。 (4)每个通道的DMA请求有不同的优先级,即可以是 固定优先级,也可以是循环优先级。 (5)每个通道一次传送的最大字节数为64KB。 (6)8237A提供4种传送方式:单字节传送方式、数据块 传送方式、请求传送方式和级连传送方式。,二、8237A的编程结

5、构图(1):,2.1 8237A的编程结构,2.1 8237A的外部引脚,三、8237A的外部引脚-引脚图:,8237A是有40个引脚的双列直插式芯片。 40个引脚分成两组:一组与CPU的连接;一组与I/O接口的连接。,2.1 8237A的外部引脚,三、8237A的外部引脚:,1.DREQ0-DREQ3:(DMA Request)DMA请求信号。由外设输入,信号极性可编程决定 2.HRQ(Hold Request) :总线请求信号。输出,高电平有效。 8237A向CPU请求使用总线。 3.HLDA(Hold Acknowledge):总线响应信 号。输入,高电平有效。CPU对 HRQ的回答,表

6、示已让出总线控制权。 4.DACK0-DACK3:(DMA Acknowledge)DMA应答信号。DMAC向外设输出,信号极性可编程决定。,2.1 8237A的外部引脚,三、8237A的外部引脚:,5.A3-A0:(Adress)地址信号。双向,DMAC控制总线时,输出16位地址中的A3-A0。CPU控制总线时,输入,选中某个寄存器。 6.A7-A4:(Adress)地址信号。输出16位地址中的A7-A4(访问存储器)用。 7.DB7-DB0:(Data Bus)数据/地址复用线。双向,8 位数据线,传送CPU的控制命令,和内部寄存器的内容。作为地址高8位锁存。,2.1 8237A的外部引脚

7、,三、8237A的外部引脚:,8. IOR:(I/O Read)I/O读信号。三态双向, 低电平有效。作主模块时:输出, 给I/O设备发读命令。作从模块时: 输入,接收来自CPU的读命令。 9.IOW:(I/O Write)I/O写信号。三态双 向,低电平有效。作主模块时:输 出,给I/O设备发写命令。作从模块 时:输入,接收来自CPU的写命令 10.MEMR:(Memory Read)存储器读命 令。输出,低电平有效。 11.MEMW:(Memory Write)存储器写命 令。输出,低电平有效。,2.1 8237A的外部引脚,三、8237A的外部引脚:,12. CLK:(clock )时钟

8、信号。输入, 8237A:最高3MHZ. 8237A-5:最高5MHZ. 13. CS:(Chip Slected)片选信号。输 入,低电平有效。 14. RESET:复位信号。输入,高电平有 效。8237内部寄存器清0,屏蔽寄 存器置1,8237A处于状态,允许 CPU访问。 15.READY:就绪信号。输入,低速设备 可通过给此引脚加低电平来延长 总线周期。,2.1 8237A的外部引脚,三、8237A的外部引脚:,16. AEN:(Adress Enable)地址允许信号。输出,高电平有效。AEN=1时,8237A控制器输出的存储器单元地址送上系统地址总线,禁止其他总线控制设备使用总线。

9、在DMA传送过程中,AEN信号一直有效。 17. ADSTB:(Adress Strobe)地址选通 信号。输出,低电平有效。表示DB7-DB0输出的是高8位地址。利用该信号将这8位地址送入片外地址锁存器。 18. EOP:(End of Process)传输过程结束信号,双向,低电平有效。 输出:通过外设DMA传送结束。 输入:强迫8237结束DMA操作。,2 8237A的编程结构和外部引脚,二、8237A的外部引脚-与外部的连接图:,要求: 每发生一次DMA请求,就从接口电路74LS244向内存传送一个字节数据。,那对于20位地址线8237如何处理?,在8086/88系统中,系统的寻址范围

10、是1MB,地址线有20条,即A0A19。为了能够在8086/88系统中使用8237来实现DMA,需要用硬件提供一组4位的页寄存器。 通道0、1、2、3各有一个4位的页寄存器。在进行DMA传送之前,这些页寄存器可利用I/O地址来装入和读出。当进行DMA传送时,DMAC将A0A15放在系统总线上,同时页寄存器把A16A19也放在系统总线上,形成A0A19这20位地址信号实现DMA传送。其地址产生如图所示。,8237,暂存器,内存,内存,A0A15,MEMW,MEMR,D0D7,内存到内存的传输,D0D7,DMA如何实现内存到内存的数据传输?,3 8237A的工作方式,8237A的工作状态 8237

11、A的工作模式 8237A的传送类型 8237A的优先级,一、8237A的工作状态,1.主模块:接管并取得总线控制权,取代CPU而成为系统的 主控者。DMAC通过三总线向M或I/O发出地址码及 读/写信号,以控制M和I/O设备之间的数据传送。 2.从模块:未取得总线控制时,同于其他 I/O设备,受CPU 的控制。这时,CPU对DMAC进行初始化操作或从 DMAC读取状态信息。,3 8237A的工作方式,二、8237A工作模式(1),1.单字节传输模式:在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。 2.块传输模式:指DMA控制器每次请求总线连续传送一个

12、数据块,待整个数据块全部传送完成后再释放总线控制权。 由DREQ启动连续地传送数据,直到字节数寄存器从0减 到FFFFH终止计数,或由外部输入有效信号终结DMA传送 DREQ只需维持有效到DACK有效,3 8237A的工作方式,二、8237A工作模式(续),3.请求传输模式:此方式与块传输方式基本类似,不同的是每传输完一个字节,DMA控制器都要检测由I/O接口发来的DMA请求信号DREQ是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至DMA请求信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。,3 8237A的工作方式,二、823

13、7A工作模式(续),4.级联传输模式:在系统中有多片8237A,构成主从式DMA系统。级联的办法是把从片的HRQ端与主片的DREQ端联。,3 8237A的工作方式,返回,三、8237A操作类型,1.DMA读:,3.DMA校验:这是一种伪传输,实际上是校验8237A芯片内部的读写信号,在这种传输中,8237A芯片如同DMA读和DMA写一样,产生地址及响应信号,但禁止实际传输。,2.DMA写:,内存 I/O ;MEMR 和IOW,3 8237A的工作方式,四、8237A的优先级,1.固定优先级:四通道优先级固定,通道1最高,通道3最低。即:DREQ0-DREQ3 2.循环优先级:优先级相同。当某一

14、通道被响应且服务后,它就被指定为最你优先级,下一通道就为最高优先级。,注意:DMA禁止嵌套,优先级排除只在DMA响应前有效,DMA响应后无效。,3 8237A的工作方式,5 8237A的寄存器,-模式寄存器,5 8237A的寄存器,5 8237A的寄存器,-请求寄存器,5 8237A的寄存器,-屏蔽寄存器,8237A每个通道有一位“屏蔽位”,当其通道的“屏蔽位”置1时,则外部对应的DREQ信号被屏蔽,不予响应,从而禁止了该通道的DMA操作。 四个通道的“屏蔽位”构成一个4位的屏蔽寄存器。 有两种屏蔽命令字格式, 单独对某一个通道的屏蔽位进行置位或复位,; 另一种是可以同时设定四个通道的屏蔽位,

15、也称综合屏蔽命令字。,5 8237A的寄存器,-屏蔽寄存器,控制外设硬件DMA请求是否被响应(为0允许),各个通道互相独立。3种方法: 单通道屏蔽字只对一个DMA通道屏蔽位进行设置 主屏蔽字对4个DMA通道屏蔽位同时进行设置 清屏蔽寄存器命令使4个屏蔽位都清零(允许) 复位使4个通道全置于屏蔽状态 当一个通道的DMA过程结束,则这一通道的屏蔽位置位后,必须再次编程为允许,才能进行下次DMA传送。,5 8237A的寄存器,-屏蔽寄存器,5 8237A的寄存器,5 8237A的寄存器,DMA控制器8237,控制寄存器格式和有关问题:,D7 D6 D5 D4 D3 D2 D1 D0,D0:为1则为内

16、存到内存的传送。此时通道0用于存放源地址,通道1用于存放目的地址及计数值。,DMA控制器8237,D0D7,38,8237,暂存器,内存,内存,A0A15,MEMW,MEMR,D0D7,内存到内存的传输,5 8237A的寄存器,主菜单,6 8237A的编程,8237A的编程通常可按如下步骤进行。 输出清除命令,使8237A进入初始状态; 将DMA传送的存贮器起始地址写入基地址和当前地址寄存器; 将要传送的字节数写入基字节寄存器和当前字节计数器; 写模式寄存器,规定8237A的工作方式等; 写控制寄存器,规定各通道优先级及DREQ、DACK的有效电平等; 写屏蔽寄存器,规定开放和屏蔽的通道; 写请求寄存器,发DMA请求命令(内存到内存)。,编程备用:8237A的寄存器,-模式寄存器,编程备用: 8237A的寄存器,主菜单,-控制寄

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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