最通俗易懂的DMA技术
第1章 微型计算机概论 第9章 微型计算机概论 9.1 DMA技术概述 9.2 DMA控制器8237A 9.3 8237A的应用举例 9.1 DMA技术概述 9.1.1 DMA的传送原理 9.1.1 DAM的传送原理(续1) 9.1.1 DAM的传送原理(续2) 9.1.2 DMA的工作方式 9.1.2 DMA的工作方式(续1) 9.1.3 DMA控制器的功能和结构 9.1.3 DAM控制器的功能和结构(续1) 9.2 DMA控制器8237A 9.2.1 8237A的内部结构和引脚 9.2.1 8237A的内部结构和引脚(续1) 9.2.1 8237A的内部结构和引脚(续2) 9.2.1 8237A的内部结构和引脚(续3) 9.2.1 8237A的内部结构和引脚(续4) 9.2.2 8237A的工作周期和时序 9.2.3 8237A的工作方式和传送类型 9.2.3 8237A的工作方式和传送类型(续1) 9.2.4 8237A的内部寄存器及编程控制字 9.2.4 8237A的内部寄存器及编程控制字(续1) 9.2.4 8237A的内部寄存器及编程控制字(续2) 9.2.4 8237A的内部寄存器及编程控制字(续3) 9.2.4 8237A的内部寄存器及编程控制字(续4) 9.2.4 8237A的内部寄存器及编程控制字(续5) 9.2.4 8237A的内部寄存器及编程控制字(续6) 9.3 8237A的应用举例 9.3.1 8237A的初始化编程(续1) 9.3.1 8237A的初始化编程(续2) 9.3.1 8237A的初始化编程(续3) 9.3.1 8237A的初始化编程(续4) 9.3.2 8237A的应用举例 9.2.3 8237A的应用举例(续1) 9.2.3 8237A的应用举例(续2) 9.3.2 8237A的应用举例(续3) 9.3.2 8237A的应用举例(续4) 9.3.2 8237A的应用举例(续5) 9.3.2 8237A的应用举例(续6) 9.3.2 8237A的应用举例(续7) 9.3.2 8237A的应用举例(续8) 9.3.2 8237A的应用举例(续9) 9.3.2 8237A的应用举例(续10) 【例9-2】如图9-13为一个用于IBM PC系列机的DMA传送接口电路。每当外设准备好接受数据时,提出一次DMA请求,经过D触发器产生DRQ1有效信号。当微机系统允许DMA操作时,它就会输出DMA通道1响应信号,同时在DMA控制器输出I/O写信号的控制下,将内存50000H起始的数据经数据总线~写入锁存器提供给外设。另外,DMA响应信号还使DRQ1请求信号无效,保证DMA请求信号保持到DMA响应为止,说明一次DMA传送结束。 图9-14 DMA读传送的接口电路 分析:假设采用IBM PC/XT中DMA通道1传送4KB数据到外设,下面是汇编语言源程序段,重点给出了对8237A通道1的编程部分。由于PC系列机中8237A的工作方式已经设定,即已写入命令字,所以,对通道1的编程主要是写入模式字、地址寄存器和页面寄存器、字节数寄存器,最后复位DMA屏蔽位允许通道工作。本例中采用程序查询方式检测传送是否完成。 其主体程序如下: MOV AL, 0 OUT 0CH,AL ; 清先/后触发器 MOV AL ; 工作模式为单字节DMA读传 送,地址增量,禁止自动初始化 OUT 0BH,AL POSH AX ; 延时 P0P AX MOV AL,0 OUT 02H,AL ; 送地址的低8位 MOV AL,0 OUT 02H,AL ; 送地址的高8位 MOV AL,05H ; 送最高4位地址 OUT 83H,AL ; 给页面寄存器 MOV AX,4096-1 OUT 03H,AL ; 送字节数低8位到字节数寄 MOV AL,AH OUT 03H,AL ; 送字节数高8位到字