文档介绍:第4章 DMA技术
概述
DMA控制器82C37
DMA编程和应用
1
西南交通大学计算机与通信工程学院
概述
DMA的组成和作用
概念:DMA(Direct Memory Access)方式,是用硬件实现存储器和存储器之间、存储器和I/O设备之间直接进行高速数据传送,不需要CPU的干预,提高了传送速度。
通常用于高速传送大批量的数据块。缺点:DMA传送期间CPU不占用总线,因而影响系统的实时性;当传送速度和传送量要求不高时,一般不采用DMA方式。
包括:
读传送:存储器I/O设备。
写传送:I/O设备存储器。
存储单元传送:存储器存储器(至少需要2个DMA周期)
DMA检验(完成某种校验过程,测试DMA控制器状态)
2
西南交通大学计算机与通信工程学院
DMA响应
(DACK)
DMA请求
(DREQ)
DMAC
传送过程
CPU
AB
DB
CB
总线请求
(HOLD)
总线响应
(HLDA)
DMA传送示意图
1
2
3
4
5
6
7
外设
接口
内存储器
地址寄存器
字节寄存器
状态寄存器
控制寄存器
3
西南交通大学计算机与通信工程学院
DMA传送的工作过程
1)I/O设备向DMAC发出DMA请求(请求传送数据)
2)DMAC接到DMA请求后,向CPU发出总线请求(请求CPU释放总线,由DMAC接管对总线的控制)。
3)CPU执行完当前指令的当前总线周期后向DMAC发出总线响应信号。
4)CPU脱离对总线的控制,处于等待(但监视DMA总线请求信号),由DMAC接管对总线的控制。
5)DMAC向I/O设备发出DMA应答信号。
6)DMAC将地址送到地址线上,通过控制总线向外设发出读/写信号,从而完成一个字节的传送。
(对数据输入过程:向外设发出“外设读”信号,同时向存储器发出“存储器写”信号,在这两个信号作用下,1个
4
西南交通大学计算机与通信工程学院
字节数据从外设接口送到数据总线,存储器从数据总线接收数据,写入由地址总线上的地址指定的内存单元。
对数据输出过程,情况正好相反)
传送1个字节之后,DMAC自动对地址寄存器内容进行修改,指向下1个要传送的字节,同时字节计数器减1,记录尚未完成的传输次数。
7)设定字节数传送完后,DMA向CPU撤消“总线请求”信号,脱离对总线的控制,CPU检测总线请求信号无效后将总线响应信号无效,恢复对总线控制,继续其当前总线周期。
以上过程完全由硬件电路实现,速度很快。
DMA周期:用DMA方式进行1次数据传输所经历的时间称为DMA周期,大体上相当于1次总线读写周期的时间。
5
西南交通大学计算机与通信工程学院
DMA传送的方式
1. DMA操作类型
数据传送
数据校验
数据搜索
2. DMA操作方式
指进行DMA操作时,每次操作的字节数。一般有四种操作方式:
单字节操作方式:每操作1个字节都要进行DMA申请。
连续操作方式
请求操作方式:每传送完1个字节检测DREQ状态。
级联传送方式
6
西南交通大学计算机与通信工程学院
DMA控制器
DMA控制器工作状态
82C37A内部结构和引脚功能说明
82C37A的内部寄存器
82C37A DMA控制器端口地址
软命令
DMA控制器工作时序
7
西南交通大学计算机与通信工程学院
DMA控制器工作状态
DMAC在系统中有两种工作状态:
被动态
DMAC获得总线控制权之前,DMAC受CPU控制。此时CPU可对DMAC进行初始化编程,也可从DMAC中读出状态。DAMC上电或复位时自动处于被动态。
主动态
DMAC获得总线控制权后,成为系统主控者,接管和控制系统总线。通过总线控制两实体之间的数据传输。
读:发出IOR及MEMW,数据从I/O设备到存储器
写:发出MEMR及IOW,数据从存储器到I/O设备
8
西南交通大学计算机与通信工程学院
82C37A的内部结构与引脚功能
1. 82C37A的特点
1)具有4个独立的DMA通道,每个通道都可独立进行初始化。
2)每个通道的DMA请求都可以被允许或禁止。
3)每个通道的DMA有不同的优先级,可以是固定优先级或循环优先级。
4)每个通道进行一次传送的最大字节数为64K(216bit)。
5)有4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。
6)时钟频率从DC到5MHz的全静态设计。
7)
9
西南交通大学计