180 likes | 316 Views
第 10 章 DMA 技术及应用. DMA 技术概述 DMA 的四种传送方式 DMA 控制器 8237A 8237A 的初始化. 10.1 DMA 技术概述. DMA 是直接内存存取的英文缩写。它为高速 I/O 设备与存储器之间进行批量数据交换提供直接的传输通道。在传输过程中, CPU 不再干预,而是由一个硬件 DMA 控制器负责管理。. 10.1 DMA 技术概述.
E N D
第10章 DMA技术及应用 • DMA技术概述 • DMA的四种传送方式 • DMA控制器8237A • 8237A的初始化
10.1 DMA技术概述 DMA是直接内存存取的英文缩写。它为高速I/O设备与存储器之间进行批量数据交换提供直接的传输通道。在传输过程中,CPU不再干预,而是由一个硬件DMA控制器负责管理。
10.1 DMA技术概述 在实行DMA传送时,必须将CPU的工作停下来,把CPU对总线的管理能力接管过来,这就需要一个专门用于DMA传输的管理部件DMA控制器。DMA传输过程中,对总线的管理、源和目的地址的选定以及传输的起止都要由这个控制器管理。 3
10.1 DMA技术概述 • DMA传送的四种方式如下: • 单字节DMA传送 • 成组传送 • 请求方式成组传送 • 级联方式传送 4
DMA传送的基本过程 一个DMA控制器通常可以连接一个或几个输入/输出接口,每个接口通过一组连线和DMA控制器相连。习惯上,将DMA控制器中和某个接口有联系的部分称为一个通道。一个DMA控制器一般由几个通道组成。
数据总线 DMA请求 来自外设接口 控制寄存器 总线请求 总线允许 状态寄存器 控制总线 DMA回答 送往外设接口 地址寄存器 地址 译码器 计数结束信号 送往接口或中断请求线 地址总线 字节计数器 DMA传送的基本过程 图1:单通道DMA控制器的编程结构和外部连线图
典型DMA的操作过程 • 外设提出DMA传送请求 • DMA控制器响应请求 • CPU响应 • DMA控制器的动作
DMA控制器的功能 • 能够响应外设的DMA请求,使CPU暂停工作,接管总线控制权 • 能够按节拍提供外设和存储器工作的各种信号 • 提供存储器地址 • 应是可编程的,使之能灵活运用
8237A引脚及结构 8237A采用40引脚双列直插封装,允许DMA传输速度高达1.6MB/S。 DMAC一方面可以控制系统总线,作为系统主模块;另一方面又可以和其他接口一样接受CPU对它的读写操作,作为总线从模块。 8237A有两种状态:DMA周期和空闲周期。
8237A内部寄存器 • 基地址寄存器是由CPU用程序控制写入的,表示数据块在内存中存储的地址。 • 基字数寄存器中写入的是本次传输的数据块字节数 • 当前地址寄存器的变化方向由编程时的设置决定,而现剩字数寄存器则恒做减量计数。
通道3有DMA请求 通道0计数结束状态 通道2有DMA请求 通道1计数结束状态 通道1有DMA请求 通道2计数结束状态 通道0有DMA请求 通道3计数结束状态 DMA状态寄存器
8237A的软件命令 • 1.主清除命令 • 主清除命令与硬件的RESET信号具有相同的作用。执行这条命令后,命令、状态等寄存器以及触发器都被复位,屏蔽寄存器被置位。 • 主清除命令的地址是0DH,只需对该端口执行写操作即可发出主清除命令,至于写入的数据可以任意。
8237A初始化编程 设从某外设传送1000H个字节的数据块到起始地址为2000H的内存区域中。采用DMA传送方式,利用通道1,写出8237A的初始化程序。 OUT 0DH,AL ;主清除命令 MOV AL,85H ;选通道1,写传送,禁止自动预置 OUT 0BH,AL ;地址递增,块传送方式 MOV AL,00H ;外设至存储器,正常时序,固定优先级,滞后写 OUT 08H,AL ;DREQ高电平有效,DACK低电平有效 MOV AX,2000H ;地址初值,分两次写入 OUT 02H,AL ;先写低字节 17
8237A初始化编程 MOV AH,AL ;后写高字节 OUT 02H,AL MOV AX,1000H ;字节数初值,分两次写入 OUT 03H,AL ;写低字节 MOV AL,AH OUT 03H,AL ;写高字节 MOV AL,00H OUT 0FH,AL ;清除通道屏蔽位 18