第章DMA控制器.pptVIP

  • 5
  • 0
  • 约2.08千字
  • 约 29页
  • 2018-06-09 发布于山西
  • 举报
第章DMA控制器

7.2 DMA控制器8237A 7.2.1 DMA控制器概述 7.2.2 8237的编程结构(含工作模式) 7.2.3 8237的引脚信号 7.2.4 8237的应用编程 7.2.1 DMA控制器概述  DMA控制器可得到总线控制权,用DMA方式实现外部设备和存储器之间的数据高速传输。 一个DMA控制器一般可以连接一个或几个输入输出接口,每个接口通过一组连线和DMA控制器相连。  习惯上,将DMA控制器中和某个接口有联系的部分称为一个通道。 DMA方式下外设往内存传输数据的过程: 7.2.2 8237A的编程结构(含工作模式) 8237A是INTEL系统中的高性能可编程DMA控制器,允许DMA传输速度高达1.6M字节/秒。 8237A一方面为总线主模块,另一方面又可以和其他接口一样,接受CPU的读写操作,即作为总线从模块。 (1) 编程结构 8237A内部包含4个独立的通道,每通道包含: 16位的地址寄存器 16位的字节计数器 8位的模式寄存器 4个通道公用控制寄存器和状态寄存器 (1)基地址寄存器:存放本通道传输时的地址初值 (2)基本字节计数器:传输时的字节数(比实际少1,当计数到0并再减到FFFF时,产生计数结束信号) (3)模式寄存器 DMA有四种工作模式: 说明: (1)自动预置:当计数到0时,当前地址寄存器和当前字节计数器会从基本地址寄存器和基本字节计数器中重新取得新值,从而可进入下一个数据传输过程。 (2)读写传输是相对于内存而言, (3)校验传输用于器件测试。 (4)请求寄存器与屏蔽寄存器 设置请求寄存器,即是用软件的方法来向DMA产生DMA请求.(通过DREQ引脚是用硬件方式引入DMA请求.) 置屏蔽寄存器对应位为1,则该通道不能接收DMA请求(硬件或软件); 在没有设置自动预置时,当EOP信号有效时,就自动设置屏蔽标志。 综合屏蔽命令 (5)状态寄存器 (6)控制寄存器 说明: (1)内存到内存传输时,固定用通道0的地址寄存器存放源地址,通道1的地址寄存器和字节计数器存放目的地址和计数值。 (2)8237可连接4个I/O设备,在固定优先级方式下,通道0的优先级最高、其次为通道1、2、3。 在循环优先级方式下,通道的优先级依次循环。 (3)普通时序:一般对应3个时钟周期,适合慢速设备;压缩时序对应2个时钟,适合快速设备。 (4)扩展写信号:加宽IOW与MEMW信号并提前,使得READY信号早一点到来,从而提高传输速度。 (7)复位命令端口 复位命令相当于RESET,它使得各寄存器清0(控制寄存器、先/后触发器等),而屏蔽寄存器置位(1)。 7.2.4 8237的应用编程 1 8237的端口地址 8237在系统中被分配了16个端口地址,通过A0-A3实现16个端口的寻址。 2.8237的编程步骤 (1)输出主清除命令。 (2)写入基与现行地址寄存器。 (3)写入基与现行字节数寄存器。 (4)写入模式寄存器。 (5)写入屏蔽寄存器。 (6)写入命令寄存器。 (7)写入请求寄存器。若有软件请求,就写入指定通道,可以开始DMA传送的过程。 若无软件请求,则在完成了(1)~(6)的编程后,由通道的DREQ启动DMA传送过程。 7.2.6  实验分析 (1)存储器到存储器的传输 (2)存储器至I/O的数据传输 (3)I/O至存储器的数据传输 * * 外设向DMA发DMA请求 DMA向总线发总线请求 CPU在允许情况下向DMA 发总线允许信号 DMA将地址寄存器的内容 送地址总线 往外设接口发DMA回答 向I/O发读信号、向内存 发写信号 外设接口将数据送数据 总线并撤除DMA请求 内存接收数据、回送DMA 一信号 DMA控制器的地址寄存器加1或减1 ,计数器减1,DMA撤除总线请求信号 当前地址寄存器与当前字节计数器是一个动态值,允许CPU通过输入指令读出。 单字节传输模式(每传输一字节并释放总线) 块传输模式(连续传输多个字节) 请求传输模式(每传输一个字节检测DREQ) 级联传输模式 物理上,四个请求触发器,对应一个请求寄存器,四个屏蔽触发器对应一个屏蔽寄存器 DMA请求寄存器的格式 屏蔽寄存器的格式 综合屏蔽命令可以一次对4个通道的屏蔽设置 一般在使用8237前要对它进行复位操作。 7.2.3 8237的引脚信号 起始地址+7 起始地址+6 通道3 起始地址+5 起始地址+4 通道2 起始地址+3 起始地址+2 通道1 起始地址+1 起始地址+0 通道0 基与现行字节数寄存器 基与现行地址寄存器 DMA通道 起始地址+F 综合屏蔽命令 起始地址+E 清除屏蔽标志 起始

文档评论(0)

1亿VIP精品文档

相关文档