《微机原理及接口技术》 2008-6-13
第12章 8237A DMA控制器
第12章 8237A DMA控制器 1 / 49
《微机原理及接口技术》 2008-6-13
DMA控制器8237
1. 概述 2. 8237的引脚功能 3. 8237的编程结构 4. 8237对内存和I/O的寻址 5. 8237的应用
第12章 8237A DMA控制器 2 / 49
《微机原理及接口技术》 2008-6-13
概述
DMA=Direct Memory Access,直接存储器存取
数据通道 CPU
数据通道 DMAC
数据通道 内存 外设 内存 DMA方式
第12章 8237A DMA控制器 3 / 49
外设
非DMA方式 (包括程序控制方式和中断方式)
《微机原理及接口技术》 2008-6-13
概述
DMAC具有独立的控制三大总线来访问存储器和I/O端 口的能力,它能像CPU一样提供数据传送所需的地址 信息和读写控制信息 DMAC和CPU都挂在系统总线上,当进入DMA方式 时,DMAC成为总线主控. 在总线上,可以控制其他部件的部件称为总线主控或 主控(bus master),被控部件称为从控(slave).任意时 刻,总线上只有一个主控.
第12章 8237A DMA控制器 4 / 49
《微机原理及接口技术》 2008-6-13
DMA控制器基本功能
(1)能向CPU提出DMA请求,请求信号加到CPU的 HOLD上. (2)CPU响应DMA请求后,DMA控制器从CPU那获得对 总线的控制权.在DMA操作期间.由DMA控制器管理系 统总线.控制数据传递,CPU则暂停工作. (3)能提供读/写存储器或I/O设备的各种控制命令. (4)确定数据传输的起始地址和数据的长度,每传送一 个数据,地址增1或减l,数据长度减1. (5)数据传达完毕,能发出结束DMA传送的信号.
第12章 8237A DMA控制器 5 / 49
《微机原理及接口技术》 2008-6-13
概述
DMA操作之前,应先对DMAC编程,把要传送的数据 块长度,数据块在存储器中的起始地址,数据传送方向 等信息发送给DMAC DMA操作过程包括三个阶段: DMA请求 DMA响应和数据传送 传送结束
第12章 8237A DMA控制器 6 / 49
概述
DMA请求阶段
当外设要求以DMA方式为它服务时,发DMA请求信 号DREQ到DMAC DMAC检查该信号是否被屏蔽及其优先权,如确认该 信号有效则向CPU发送总线请求信号HRQ(连到CPU 的HOLD) 地址总线 CPU HRQ DREQ DMAC 外设 数据总线 存储器
概述
DMA响应和数据传送阶段
每个总线周期结束时CPU检测HOLD,如为高电平,则响应 HOLD请求进入保持态,使三态总线CPU侧呈高阻状态,并以总 线保持响应信号HLDA通知DMAC DMAC接管总线,并以DACK信号通知外设,使之成为DMA传 送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存 储器读写控制信号,在外设和存储器之间完成数据传送 地址总线 CPU HLDA DACK 外设 I
OR/IOW 数据总线 存储器
MEMR/MEMW
DMAC
概述
传送结束阶段
传送完成后,DMAC放弃总线,撤消总线请求(HRQ 为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA ,CPU重新获得总线控制权 地址总线 CPU HRQ EOP DMAC 外设 数据