DMA传输原理.pptVIP

  • 91
  • 0
  • 约 68页
  • 2017-06-26 发布于湖北
  • 举报
DMA传输原理

第6章 DMA传输 直接存储器传送 (Direct Memory Access—DMA) 6.1 DMA传输原理 1. DMA控制器 使用DMA方式传输时,需要一个专门的器件来协调外设接口和内存储器的数据传输,这个专门的器件称为DMA控制器,简称DMAC。 DMAC内部的寄存器: DMAC在系统中有二种不同的作用: 2. DMA传输过程 [例]:用DMA方式将串行通信口接收到的200字节 的数据存入以BUFFER为首地址内存区域 8086系统中的DMA信号 6.2 DMA控制器8237A 1. 8237A芯片的主要特点 2. 8237A的工作方式 (3)请求传输方式 (4)级联传输方式 3. 8237A的传输类型 6.2.2 8237A的内部结构和外部连接 1. DMA通道 DMA通道--地址寄存器 DMA通道--字节计数器 2. 读/写逻辑 3. 控制逻辑 4. 锁存缓冲器(外接) 5. 页面地址寄存器(外接) 6.2.3 8237A的对外连接信号 8237A作为总线主模块时的引脚信号 (2)对存储器/外设接口的读写控制信号 (2)对存储器/外设接口的读写控制信号 (3) DMA联络信号 3. 其他引脚信号 4. 小结 向接口和存储器提供读写控制信号: 输出IOR#和IOW#,控制外设接口的数据传输方向。 输出MEMR#和MEMW#,控制存储器的读写。 6.2.4 8237A的工作时序 1. 空闲周期SI 2. 有效周期(由S0~S4五种周期组成) S2—数据读出周期: 向外设送出DACK信号,启动外设工作 送出数据读控制信号 DMA读操作--送出MEMR# DMA写操作--送出IOR# S3--数据写入周期: 送出写操作所需的控制信号: DMA读操作--送出IOW# DMA写操作--送出MEMW# S3状态结束时: READY无效,插入SW周期 READY有效,进入S4周期 S4—结束周期: 结束本次一个字节传输。 扩展写 压缩时序 6.3 8237A的编程使用 8237A: 共占用16个端口地址(PC机内地址00~0FH) 每个通道占用2个端口地址(共8个) 其余8个端口地址由各通道共用 地址锁存器(外配,不占用端口地址): 锁存8237A送出的高8位地址信号 发送高8位地址信号 页面寄存器(外配,端口地址83H): 存储和发送最高4位地址信号A19~A16 与8237A发出的16位地址组合得到20位地址信号 6.3.1 8237A通道专用寄存器 每一通道内包含四个16位的寄存器: 基地址寄存器 基字节数寄存器 现行地址寄存器 现行字节数计数器 存放DMA传输的存储器地址及数据字节数 每个通道内有一个8位的模式寄存器 记录通道的工作方式 1. 基地址寄存器和基字节数寄存器 2. 现行地址寄存器 3. 现行字节数寄存器 6.3.2 8237A通道公用寄存器 4. 复位命令(BASE+0DH) 6.3.3 8237A端口地址及通道分配 6.3.4 8237A的编程 对于IBM-PC系列微型计算机,它的8237A通道0、2、3已分配使用,而且在开机时已对8237A作了初始化。在这种情况下,不允许再对它重新初始化和重新设置控制字 上述编程过程的(1)、(2)二步改为:将所需使用的通道置屏蔽状态(这样做是为了在其他设置未完成时避免误动作)。 2. 应用举例 MOV AL OUT 0AH,AL ;写屏蔽寄存器,屏蔽通道1 MOV AL ;方式字:请求传输,地址增 OUT 0BH,AL ;非自动预置,写传输,通道1 MOV AL, 02H OUT 83H, AL ;页面地址 = 02H OUT 0CH,AL ;清先/后触发器 MOV AL, 30H OUT 02H,AL ;写低位地址( 30H ) MOV AL,10H OUT 02H,AL ;写高位地址( 10H ) MOV AX,300 ;传输字节数 DEC AX OUT 03H,AL ;写字节数低位 MOV AL,AH OUT 03H,AL ;写字节数高位 MOV AL OUT 0AH,AL ;清除通道1屏蔽 CALL SET_NET ;对网络设备进行设置 PUSH DS MOV AX,2103H MOV DS,AX ;DS置初值,缓冲区首地址 DS:0000H WT:OUT 0CH,AL ;清先/后触发器 IN AL, 03H MOV BL, AL

文档评论(0)

1亿VIP精品文档

相关文档