第章DMA技术.ppt
文本预览下载声明
第四章 直接存贮器存取(DMA)技术 4.1 DMA传送过程 1.申请阶段 a. 外设向DMA发出DREQ请求; b. DMA向CPU发HRQ请求 2. 响应阶段 c. CPU向DMA发总线保持回答信号:HLDA; d. 状态: CPU让出总线,DMAC为主控者. 4.2 DMA传送方式 DMA操作类型 数据传送 数据校验 数据检索 2. DMA操作方式 单字节方式 连续方式 请求方式 4.3 DMA控制器 一. DMAC在系统中的工作状态: 主动态(主控器): 接管并取得总线控制权,取代CPU而成为系统的主控者。 被动态(受控器): 未取得总线控制时,受CPU的控制。 二. DMA控制器 8237-DMAC的特点: 1.特点: (1)四个独立通道(可对4个I/O设备进行DMA服务) (2)64KB寻址与计数能力 (3)数据传输率1.5Mb/s (4)有级联方式和多种操作模式 2.内部逻辑结构 其引脚信号的功能,它们分为以下几类: (1)I/O设备的请求信号 DREQ0-3,由I/O向DMA发出,DREQ0优先级最高。 (2)DMA回答I/O的信号 DACK0-3,由DMA回答I/O. 注意: 系统允许多个DREQ信号,同时有效,即可以几个I/O同时提出申请。但同一个时间,只能有一个DACK信号有效。 (3)总线请求和应答: HRQ和HLDA (4)读写控制: IOR- IOW- MEMR- MEMW; (5) 地址线:A0- A7 (6) 双向数据线:DB0-7,既是数据线,又是16位地址线的高8位。 三、8237A内部寄存器及编程(15个寄存器) 1.内部寄存器: (1)通道寄存器 (0,1,2,3) 读通道当前地址寄存器(16bit) 读通道当前字节计数器(16bit) 写通道基地址与当前地址寄存器(16) 写通道基字节计数器与当前字节计数器(16) (2)共用寄存器: 工作方式寄存器 命令寄存器 状态寄存器 屏蔽寄存器 2. 寄存器功能 3种基本传送方式 3种DMA传送类型 2种工作时序 2种优先级排队 1种传送地址和字节数 1种RAM-RAM之间传送 ( 3:3:2:2:1:1)通过编程可完成。 3. 寄存器编程 (1) 工作方式寄存器(DMA+11) 功能:用于控制DMA传送的操作方式,传送类型以及自动预置。 格式: 注意: 单一方式: 通道启动一次,只传送一个数据,传送完就 释放系统总线交还CPU,并且: 当前地址寄存器+1(-1) 当前字节计数器+1(-1) 成组传送: 启动一次可把整个数据块传送完,并且,当前字节计数器减到0,产生EOP-信号,释放总线。 例:PC系列软盘R/W操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其R/W操作方式字为: I/O →RAM 读盘(DMA写)= 0 1 0 0 0 1 1 0 B (46H) RAM →I/O 写盘(DMA读)= 0 1 0 0 1 0 1 0 B (42H) 因此,从软盘上读一个扇区的数据存放到内存区方式字为46H,写一个扇区的数据到软盘为4AH。 问: 校验盘? 2.基值地址寄存器(DMA+1,+2,+4,+6) 16位 存放DMA传送的内存首址,,在初始化时由CPU写入,传送中基值地址不变,只写不读。 3.当前地址寄存器(DMA+0,+2,+4,+6) 16位 存放DMA传送地程中的内存地址.初值与基值地址相同,每次传送自动加1(减1),可读可写。 4.基值字节计数器(DMA+1,+3,+5,+7) 16位 存放DMA传送的总字节数,在初始化时由CPU写入,传送中,基值字节计数器不变,只写不读。 5.当前字节计数器(DMA+1,+3,+5,+7) 16位 存放DMA传送过程中没有传送完的节数,每传送一个字节后减1,减为0时,产生EOP,表示传送完毕。 例:开放通道2,作为响应软盘的DMA请求。 ①使用单一屏蔽 MOV AL,0 0 0 0 0 0 1 0 B OUT DMA+10,AL 或 ②使用4位屏蔽 MOV AL,0 0 0 0 1 0 1 1 B OUT DMA+15,AL 7.请求寄存器(DMA+9) DMA请求寄存器就是用于由软
显示全部