DMA传输原理ppt
• 级联时,主片通过软件在方式寄存器中设置为级联 传输方式。从片设置成上面的三种方式之一。
13
3. 8237A的传输类型
(1)DMA写传输(I/O→存储器) (2)DMA读传输(存储器→I/O) (3)DMA检验
(完成校验过程,测试DMA控制器的状态)。 (4)存储器到存储器传输
14
6.2.2 8237A的内部结构和外部连接
进行DMA传输时,CPU暂停对系统总线的 控制,DMAC取得了对总线的控制权,这时的 DMAC称为总线主模块。
6
பைடு நூலகம்
2. DMA传输过程
• 总线请求:DMAC向CPU申请使用总线 • 总线控制转移:CPU同意DMAC管理总线 • 数据传输:外设接口和存储器之间传输数据 • 修改地址和计数器:为下一次传输做准备 • 结束处理:DMAC放弃对总线的控制权
基本字节计数器
电源
公 共 部 份
IOR IOW MEMR MEMW READY
1 2 通道0 当前地址寄存器 当前字节计数器
CS
通道1
A4~A7
通道2
A0~A3
A0~A3
通道3
1:请求触发器 2:屏蔽触发器
DREQ0 DACK0
DREQ1 DACK1
DREQ2 DACK2 DREQ3 DACK3 EOP16
• 以上的过程完全由硬件电路实现,速度很快。
• 用DMA方式进行一次数据传输所经历的时间称为
“DMA周期”,大体上相当于一次总线读写周期的时
间。
7
[例]:用DMA方式将串行通信口接收到的200字节 的数据存入以BUFFER为首地址内存区域
对DMAC进行预置:向DMAC写入内存首地址,传输字 节数(200),传输方向(外设接口→内存),控制命令 (允许DMA传输)等;
3. 8086系统中的DMA信号
•最小模式
CPU通过HOLD接收DMA控制器的总线请求; 在HLDA引脚上发出对总线请求的允许信号。
•最大模式
通过RQ/GT0和RQ/GT1引脚接收DMA控制器的 总线请求,发送对总线请求的允许信号。
RQ/GT0引脚有较高的优先权。
9
6.2 DMA控制器8237A
这种方式可以获得最高的数据传输速度。如果一次传输的数 据较多,对系统工作可能产生一定的影响。
11
(3)请求传输方式
• 申请一次总线可以连续进行多个数据的传输。 • 每传输1个字节后,8237A都对外设接口的请求信号
进行测试:
DREQ端无效,暂停传输; DREQ有效,接着进行下一个数据的传输。
• 允许数据不连续,按照外设的最高速度进行数据传输, 使用比较灵活。
控制命令等;
• 状态寄存器:存放DMAC当前的状态,包括有无
DMA请求,是否结束等。
4
图6-1
5
DMAC在系统中有二种不同的作用:
• 总线从模块:
CPU对DMAC进行预置操作,也就是向 DMAC写入内存传送区的首地址、传送字节数和 控制字时,DMAC相当于一个外设接口,称为总 线从模块。
• 总线主模块:
12
(4)级联传输方式
• 几个8237A进行级联,一片8237A用作主片,其余用 作从片,构成主从式DMA系统。
• 从片收到外设接口的DMA请求信号后,向DMA控制器 主片申请,再由主片向CPU申请。
• 一片主片最多可以连接四片从片。这样,五片8237A 构成的二级DMA系统,可以得到16个DMA通道。
1. DMA通道
8237A有四个独立的通道(CH0一CH3)
每个通道:
• 16位地址寄存器; • 16位字节计数器; • 8位方式寄存器; • 1位的DMA请求触发器; • 1位的屏蔽触发器。 • 四个通道公用一个控制寄存器和一个状态寄存器。
对串行通信接口进行初始化,设置串行通信的参数,允 许串行输入等;
串口每输入一个数据,自动进行DMA传输;
最后一个数据传输结束后,DMAC发出传输结束信号 EOP。CPU可以通过查询知道传输已经结束,也可以利 用EOP信号申请中断,在中断服务程序里进行结束处理。
DMA方式传输200字节过程为:1次对DMAC初始化, 1次对串口初始化, 200次DMA周期,1次结束处理。 8
第6章 DMA传输
6.1 DMA传输原理 6.2 DMA控制器8237A 6.3 8237A的编程使用
1
直接存储器传送
(Direct Memory Access—DMA)
将外设的数据不经过CPU直接送入内存储器, 或者,从内存储器不经过CPU直接送往外部设备
M
CPU
I/O
一次DMA传送只需要执行一个DMA周期(相当于
8237A的内部结构分成二部分:
四个DMA通道和一个公共控制部分
15
+5V
HOLD HLDA
CLK 使微处理器地址锁存信号无效
1 锁存缓冲器 EN
STB 连接数据总线
M/IO
地
址
A8~A15
译
码
A4~A7
HRQ HLDA CLK
AEN
地 控制寄存器 状态寄存器 暂存寄存器
ADSTB
DB0~7
方式寄存器 基本地址寄存器
1. 8237A芯片的主要特点
有4个完全独立的DMA通道,可分别进行编程控制。 每个通道的DMA请求均可分别允许和禁止,并对各通道进行
优先级排队。 数据块最大为64KB,每传送一个字节后地址自动加1或减1。 DMA请求可以由外部输入,也可以由软件设置。 可以用级联的方法扩展DMA通道数。 可以进行从存储器到存储器的数据传输,用于对存储区域进
行初始化。
10
2. 8237A的工作方式
(1)单字节传输方式
8237A每申请一次总线,进行1个字节传输,然后释放系 统总线,一次DMA传输结束。
CPU可以在每个DMA周期结束后控制总线,进行数据传输, 所以不会对系统的运行产生大的影响。
(2)块传输方式
DMA控制器获得总线控制权后,可以连续进入多个DMA周 期,进行多个字节的传输(最多64K字节)。
一个总线读/写周期),因而能够满足高速外设数 据传输的需要。
2
6.1 DMA传输原理
1. DMA控制器
使用DMA方式传输时,需要一个专门的器件 来协调外设接口和内存储器的数据传输,这个 专门的器件称为DMA控制器,简称DMAC。
3
DMAC内部的寄存器:
• 地址寄存器:存放DMA传输时存储单元地址; • 字节计数器:存放DMA传输的字节数; • 控制寄存器:存放由CPU设定的DMA传输方式,