第6.3章:DMA控制方法(lyz)(v1.0).ppt
文本预览下载声明
第6.3章:DMA控制方式 主讲老师:廉迎战 副教授 6.3、DMA方式和DMA控制器 6.3.1、DMA方式 1、什么是DMA传送方式? 在查询和中断方式下,数据传送: 2、DMA工作过程 1、外设 DMAC CPU(HOLD = 1 请求占有总线) CPU(HLDA = 1 同意让出总线) DMAC 2、CPU将地址、数据、控制总线的管理权交DMAC 3、DMAC回答外设。 4、进行DMA传送。传送的内存地址,字节数由DMAC控制。 5、传送完毕,DMAC交出总线管理权,CPU重新占有总线。 6.DMA控制器的功能结构 1)总线控制功能。 2)具有用于提供交换数据地址的地址寄存器。 3)具有数据块长度计数器。 4)具有编程寄存器和状态寄存器。 6.3.2 可编程DMA控制器8237 1.8237可编程控制器 1)8237特证 DIP40,单时钟,单+5V 4个DMA通道,每个通道有独立的地址/字节数寄存器,而控制/状态寄存器为四个通道所共用。 每个通道DMA请求可分别被允许/禁止,有不同优先权 4种工作方式,可级连以增加通道数 2)8237A主从两面性: 作为DMAC,8237A是可控制总线的主模块。 作为I/O芯片,8237A可被处理器读写。 运行时注意8237A主-从地址的变化。 3、8237操作类型和传送方式 1)操作类型(四种) DMA写传送: IO写入RAM -IOR读IO数据 -MEMW写数据入RAM DMA读传送: RAM读出数据IO -MEMR读RAM数据 -IOW写入IO数据 3、8237操作类型和传送方式 1)操作类型(四种) DMA校验 对数据块进行效验 RAM--RAM传送: 用两个DAM通道CH0和CH1 CH0为源地址,CH1为目的地址 需要两个周期完成 字节计数器存字节数 3、8237操作类型和传送方式 2)传送方式(四种) 单字节 每次一个字节 块传送 每次N个字节 字节计数器为FFFFH时,-EOP=0,DMA 终止 随机请求传送 每次传送一个字节后,8237对DREQ测试。 直到连续传送到字节计数器为0 或外部输入使-EOP变低或DREQ变为无效时为止。 3、8237操作类型和传送方式 2)传送方式(四种) 级联传送 优先权决定于连接的通道号 可扩充系统的DMA通道数。下一级的HRQ接到上一级的某一通道的DREQ上,而上一级的响应信号DACK,可接下一级的HLDA上。 在级联方式下,当第二级8237的请求得到响应时,第一级8237仅应输出HRQ信号而不能输出地址及控制信号,因为,第二级的8237才是真正的主控制器,而第一级的8237仅应起到传递DREQ请求信号及DACK应答信号的作用。 3、8237操作类型和传送方式 3)优先级 8237有两种优先级方案可供编程选择: (1).固定优先级 规定各通道的优先级是固定的,即通道0的优先级最高,依次降低,通道3的优先级最低。 (2).循环优先级 规定刚被服务通道的优先级最低,依次循环。这就可以保证4个通道的优先级是动态变化的,若3个通道已经被服务则剩下的通道一定是优先级最高的。 3、8237操作类型和传送方式 4)传输速率 在一般情况下,8237进行一次DMA传送需要4个时钟周期(不包括插入的等待周期SW)。 例如,PC机的时钟周期约210ns,则一次DMA传送需要210ns*4+2l0ns=1050ns。多加一个210 ns是考虑到人为插入一个SW的缘故。 另外,8237为了提高传送速率,可以在压缩定时状态下工作。在压缩定时状态下,每个DMA总线周期仅用2个时钟周期就可以实现,从而可以大幅度地提高数据的传送速率。。 4、8237编程 1)通道REG设定 工作方式设定( 8237A 模式 REG. 格式(写B号) ) 4、8237编程 2)公用REG设定 命令REG设定 6.8237编程举例 例1:PC机系统,程序中的变量DMA地址为00H,设对8237的0通道编程,使其工作于单一传送方式,地址加1,自动预置,读出操作。传送数据源地址为:20000H。 1、控制命令字 方式控制字:0101,1000(58H) 屏蔽字: 0000,0000(00H) 命令字: 0000,0000(00H) 请求字: 0000,0000(00H) 6.8237编程举例 例2:8086系统中,利用8237的1通道由外设(磁盘
显示全部