DMA传输原理..

  • 格式:ppt
  • 大小:1.11 MB
  • 文档页数:68

下载文档原格式

  / 68
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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