1 / 18

第 10 章 DMA 技术及应用

第 10 章 DMA 技术及应用. DMA 技术概述 DMA 的四种传送方式 DMA 控制器 8237A 8237A 的初始化. 10.1 DMA 技术概述. DMA 是直接内存存取的英文缩写。它为高速 I/O 设备与存储器之间进行批量数据交换提供直接的传输通道。在传输过程中, CPU 不再干预,而是由一个硬件 DMA 控制器负责管理。. 10.1 DMA 技术概述.

Download Presentation

第 10 章 DMA 技术及应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第10章 DMA技术及应用 • DMA技术概述 • DMA的四种传送方式 • DMA控制器8237A • 8237A的初始化

  2. 10.1 DMA技术概述 DMA是直接内存存取的英文缩写。它为高速I/O设备与存储器之间进行批量数据交换提供直接的传输通道。在传输过程中,CPU不再干预,而是由一个硬件DMA控制器负责管理。

  3. 10.1 DMA技术概述 在实行DMA传送时,必须将CPU的工作停下来,把CPU对总线的管理能力接管过来,这就需要一个专门用于DMA传输的管理部件DMA控制器。DMA传输过程中,对总线的管理、源和目的地址的选定以及传输的起止都要由这个控制器管理。 3

  4. 10.1 DMA技术概述 • DMA传送的四种方式如下: • 单字节DMA传送 • 成组传送 • 请求方式成组传送 • 级联方式传送 4

  5. DMA传送的基本过程 一个DMA控制器通常可以连接一个或几个输入/输出接口,每个接口通过一组连线和DMA控制器相连。习惯上,将DMA控制器中和某个接口有联系的部分称为一个通道。一个DMA控制器一般由几个通道组成。

  6. 数据总线 DMA请求 来自外设接口 控制寄存器 总线请求 总线允许 状态寄存器 控制总线 DMA回答 送往外设接口 地址寄存器 地址 译码器 计数结束信号 送往接口或中断请求线 地址总线 字节计数器 DMA传送的基本过程 图1:单通道DMA控制器的编程结构和外部连线图

  7. 典型DMA的操作过程 • 外设提出DMA传送请求 • DMA控制器响应请求 • CPU响应 • DMA控制器的动作

  8. DMA控制器的功能 • 能够响应外设的DMA请求,使CPU暂停工作,接管总线控制权 • 能够按节拍提供外设和存储器工作的各种信号 • 提供存储器地址 • 应是可编程的,使之能灵活运用

  9. 8237A引脚及结构 8237A采用40引脚双列直插封装,允许DMA传输速度高达1.6MB/S。 DMAC一方面可以控制系统总线,作为系统主模块;另一方面又可以和其他接口一样接受CPU对它的读写操作,作为总线从模块。 8237A有两种状态:DMA周期和空闲周期。

  10. 8237A内部寄存器

  11. 8237A内部寄存器 • 基地址寄存器是由CPU用程序控制写入的,表示数据块在内存中存储的地址。 • 基字数寄存器中写入的是本次传输的数据块字节数 • 当前地址寄存器的变化方向由编程时的设置决定,而现剩字数寄存器则恒做减量计数。

  12. 工作方式寄存器

  13. DMA请求寄存器

  14. DMA屏蔽寄存器

  15. 通道3有DMA请求 通道0计数结束状态 通道2有DMA请求 通道1计数结束状态 通道1有DMA请求 通道2计数结束状态 通道0有DMA请求 通道3计数结束状态 DMA状态寄存器

  16. 8237A的软件命令 • 1.主清除命令 • 主清除命令与硬件的RESET信号具有相同的作用。执行这条命令后,命令、状态等寄存器以及触发器都被复位,屏蔽寄存器被置位。 • 主清除命令的地址是0DH,只需对该端口执行写操作即可发出主清除命令,至于写入的数据可以任意。

  17. 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

  18. 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

More Related