好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

[工学]第9章_DMA技术.ppt

64页
  • 卖家[上传人]:油条
  • 文档编号:49693663
  • 上传时间:2018-08-01
  • 文档格式:PPT
  • 文档大小:958KB
  • / 64 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第9 9章章 DMADMA技术技术9.1 DMA传输 9.1.1 DMA传送的特点DMA传送方式让存储器与外设,外设与外设,存储器与 存储器之间直接交换数据,不需经过累加器,减少了中间 环节,并且内存地址的修改,传送结束的报告都由硬件完 成,大大提高了传输速率 (1)适合高速大批量数据传输系统 (2)用硬件控制代替软件控制在小系统或速度要求不高 的系统,一般不采用DMA (3)用DMA控制器取代CPU来完成对DMA传送全过程的控制 下图画出了两种不同形式的数据传送方式:  执行程序指令的传输路径(用 线表示) DMA方式的传输路径(用 线表示)CPU外设存储器总 线下面画出几种不同形式的DMA方式内存外设输出输入DMAC内存内存DMAC外设外设DMAC9.1.2 DMA传输的过程在DMA操作前,需对DMA控制器初始化,包括:传送 字节数、存储器的起始地址、传送方向和DMA通道号初 始化之后就等待外设来申请DMA传输其传输过程包括: (1)申请阶段在初始化之后,若接收到外设的DMA请求信号DREQ后 ,在DMA控制器允许的情况下便向CPU发出总线保持信号 HOLD其过程如下: I/ODMACCPU请求DREQ回答DACK总线保持HOLD回答HOLDACK(包括总线裁决)(2)响应阶段CPU在每个总线周期结束时检测HOLD信号,当HOLD有效,并且总线锁定信号LOCK无效时,响应HOLD请求;此时 ,CPU脱离三总线,发出总线保持回答信号HOLDACK,使 DMAC与总线“接通”。

      此刻,DMAC正式成为系统的主控者 I/ODMACCPU请求DREQ回答DACK总线保持HOLD回答HOLDACK(包括总线裁决)(3)数据传送阶段此阶段做两件事: 以DMA请求回答信号DACK通知发出请求的外部设备,使之成为被选中的DMA设备 DMAC行使总线控制权,控制数据按初始化的设定进行 数据传输I/ODMACCPU请求DREQ回答DACK总线保持HOLD回答HOLDACK(包括总线裁决)(4)传送结束阶段 由初始化中规定的数据字节传输完毕引发其过程是: 由外设发出一个“过程结束”信号引发DMAC产生一个“计数已到”信号给外设外设撤消DMA请求信号DREQ相继撤消总线保持信号HOLD和总线回答信号HOLDACKDMAC放弃总线,CPU获取总线9.2 DMA操作 9.2.1 DMA操作类型 1、数据传输把源地址的数据传到目标地址去源地址和目标地 址可以是存储器,也可以是外设 2、数据校验该操作不进行数据传输,只对数据块的每个字节进 行某种校验其过程与数据传输相同,只是DMAC不发存储 器和外设的读/写信号 3、数据检索数据检索与数据校验一样,只是对某个存储区查找 某些关键数据。

      9.2.2 DMA操作方式 1、单字节方式每次DMA操作只操作一个字节即每传送一个字节,DMAC都必须重新向CPU申请占用总线数据传送后,字数计 数器减1,释放总线控制权,当计数器从0减到FFFF时,产 生终止计数信号T/C在这种方式下,每传一个数据,CPU都至少可得到一个总线周期,接着8237会立即采样DREQ信号,进行下个字节 的传送 2、连续方式在传送一个数据块的过程中,DMAC始终占用总线,即使DMA请求变为无效,DMAC也不释放总线,只是暂停传 送,直到DMA请求变为有效后,继续传送当字数计数器 由0减到FFFF时,产生终止计数信号或由外部输入结束信号EOP为止 3、请求方式该方式以外部设备是否有DMA请求来决定有请求时,DMAC才占用总线停止传送(释放总线)由以下三种情况 之一决定 数据传送结束,产生终止计数信号T/C 由外部送来过程结束信号EOP 当外设的请求DREQ无效在中,虽然8237A释放总线,但通道内的现行地址和字节数仍保存着,只要外设准备好数据,由DREQ信号再次 有效就可使传送继续下去4、级连方式用于扩展通道微 处 理 器第一级8237第二级8237HRQ HLDADREQ0 DACK0DACK3DREQ3HRQHRQHLDAHLDA……DREQ0 DACK0DACK3DREQ3…DREQ0 DACK0DACK3DREQ3…外设0外设3外设12外设15………存储器和I/O交换数据时,DMAC对它们的控制。

      数据交换的顺序I/ODMACRAMCPU①DREQ②HOLD③HOLDACK④DACKR/WI/ODMACCPUI/ORAMDMAC①DREQ②HOLD③HOLDACK④DACKR/W由被动态 进入主动态(总裁) 经总线裁决后认可,进入 总线保持状态,CPU失去 总线控制权经判优及屏 蔽处理后例:从内存输出一个字节数据到外设的工作过程(1)CPU的控制过程 内存中100个数传送到I/O中的程序:MOVSI,1000H;内存的首地址MOVDX,300H;端口地址MOVCX,100LL:MOVAL,[SI]INCSIOUTDX,ALLOOP LLSI的内容送地址总线上 存储器“读”操作 数据总线上的内容送ALDX的内容送地址总线上 AL的内容送数据总线上 I/O“写”操作(2)DMA控制过程总线 控制器HOLD HOLDACK内存接口DMA 控制器I/O设备接口发DMA请求接口锁存数据发总线保持总线允许控 制 总 线地 址 总 线数 据 总 线DMA请 求被确认内存把数据送数据总线CPU收回总线控制权撤消总线保持DMA控制器把地址送地址总线DMA发 存储器读DMA发I/O写9.3 DMA控制器 9.3.1 DMA控制器在系统中的工作状态1、DMA控制器在系统中的两种状态主动态:取代CPU,获得系统总线控制权,向存储器和外设发 号施令。

      表现在:DMA写时:发IOR和MEMW信号,数据由外设传到存储器中DMA读时:发MEMR和IOW信号,数据由存储器传到外设中因此DMA控制器有相应的控制线发出不同的控制信号完成数 据的交换被动态:DMAC接受CPU对它的控制和指挥主要完成两件工 作:(1)等待CPU对DMAC初始化编程(在DMA传送之前,CPU必 需要对DMAC进行初始化编程以确定DMAC的工作方式)以及 从DMAC中读取状态(在DMA传送完毕后),如同一般的I/O 芯片在加电复位后,DMAC处于被动状态2)在每个总线周期后DMAC去检测外部设备提出的DMA请 求,以便完成DMA传送2、总线控制权在DMAC与CPU之间的转移主动态被动态DMAC提出HOLD后,CPU发出HOLDACKDMAC发出过程结束信号EOP,撤消HOLD9.3.3 DMA控制器82C37A的外部特性1、特点:(1)四个独立通道2)64KB寻址与计数能力3)有级联方式和多种操作模式其引脚信号的功能可分为以下几类:(1)I/O设备的请求信号DREQ0-3:由I/O设备发向DMAC,DREQ0优先级最高2)DMAC回答I/O的信号DACK0-3 :由DMAC回答I/O外设注意:系统允许多个DREQ信号同时有效,可以有几个I/O同时提出申请,但同一个时间,只能有一个DACK信号有效。

      3)总线保持和应答HRQ和HLDA:总线保持与总线应答4)IOR/IOW,MEMR/MEMW,CSIOR/IOW:双向,主动态时为输出MEMR/MEMW:单向输出,仅在主动态时使用5)地址线 A0-A7,数据线DB0-7双向数据线DB0-7,即是数据线,又是16位地址线的高8位6)EOP:过程结束,双向可由计数终止产生,也可由外设产生2、82C37A的内部逻辑结构3、82C37A的内部寄存器*为软命令9.3.4 DMA控制器82C37A编程命令 1、命令寄存器用于控制82C37A所有通道的操作方式其内容由 CPU写入,由复位和总清命令清除2、方式寄存器设置DMA的操作类型、操作方式等每个通道都有自己的 方式寄存器注意:单一方式:通道启动一次,只传送一个数,传送完就释放系统总线交还CPU并且:当前地址寄存器+1(-1)当前字节数计数器+1(-1)块传送:启动一次可把整个数据块传送完并且,当前字节计数器减到0,产生EOP信号,DMAC才释放系统总线 询问传送:与块传送类似,其不同点在于每传送一个字节之后,要检测(询问)DREQ是否有效 若无效,则“挂起” ;若有效,继续传送 直 至字节计数器为0止。

      存贮器-存贮器:为数据块传送而设置,这种传送在通道0与1之间传送通道0(源)→ 通道1(目的)例:PC系列软盘R/W操作选择DMA通道2,单字节传送,地址 增1,不用自动预置,其R/W操作方式字为:I/O→RAM 读盘(DMA写)= 01000110B 0B=46HRAM→I/O 写盘(DMA读)= 01001010B0B=4AH因此,从软盘上读一个扇区的数据存放到内存储区的方式字为46H,写一个扇区的数据到软盘的方式字为 4AH3、地址寄存器每个通到都有基地址寄存器和当前地址寄存器,16位地址寄存器存放DMA传送的内存首址,在初始化时由 CPU写入,传送中基地址不变,而当前地址在变4、字节计数寄存器每个通道都有基字节寄存器和当前字节寄存器,16位字节寄存器存放DMA传送的总字节数,在初始化时由 CPU写入,传送中基值字节计数寄存器不变,而当前字 节寄存器在变化5、请求寄存器DMA请求寄存器就是用于由软件启动DMA请求, 如:RAM→RAM,这种软件请求DMA传输必须是块传输 方式其格式如下:例:若用软件请求使用通道1进行DMA传送,则请求寄存器 写入05H即可6、屏蔽寄存器用来禁止或允许通道的DMA请求。

      但对由软件设定的DMA 请求位不能屏蔽 有二种格式:  单一位屏蔽寄存器每次只能屏蔽一个通道其格式如下: 4位屏蔽寄存器可同时屏蔽4个通道其格式如下: 例:开放通道2,作为响应软盘的DMA请求① 使用单一屏蔽MOV AL,00000010BOUT 0AH,AL② 使用4位屏蔽(仅开放通道2 )MOV AL,00001011BOUT 0FH,AL7、状态寄存器功能:提供哪些通道已到终止计数,哪些通道有DMA请求 等状态信息,供CPU使用其格式如下:8、暂存寄存器 功能:用于存贮器对存贮器传送时,暂时保存从源地址读 出的数据9、软命令(有三条)所谓软命令就是只要对特定地址进行一次写操作, 命令就生效,而与写入的具体数据无关 清先/后触发器命令  总清除命令 清屏蔽寄存器命令(清4个通道)例:清先/后触发器 MOV AL,0AAH;AL为任意值 OUT 0CH,AL;置先/后触发器为0态 例:总清除命令 MOV AL,0BBH;AL为任意值 OUT 0DH,AL;总清命令9.3.5 DMA控制器82C37A的工作时序DMA有7种状态周期,分别为:SI,S0,S1,S2,S3,S4及SW。

      1)空闲周期SI上电后未编程前,还没有DMA请求时,便进入空闲周期SI;此时DMA处于被动工作方式,CPU可对DMA进行编程2)过渡状态S0若检测到DREQ(外设发)请求,DMAC即向CPU发出总线请求信号HRQ;并且DMAC从SI跳入S0状态,并重复执行,直 到收到HLDA信号,进入S1状态图9.9 82C37A的时序图(3)DMA有效周期(S1-S4)① 在CPU的回答信号HLDA到达后,DMAC进入了有效的 DMA周期,开始传送数据② 一个完整的传送周期包括S1 ,S2 ,S3 和 S4四个周 期;如果I/O速度跟不上,可在S3 和S4 之间插入等待 周期SW a) S1 周期:更新高8位地址DMAC在S1状态发出地址允许AEN信号(表示DMA过程的开始),将高8位地址A8-A15送 到数据总线DB0-DB7上DMA页面寄存器锁存器RAM20位地址 (24位)CPU读RAM写RAM74LS670(61。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.