1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.DMA控制器

第7章 DMA控制器 7.1 DMA基本概念 7.2 DMA占用总线方式 7.3 DMA控制器8237A 7.4 8237A在PC上的应用 7.5 DMA读传送实例 7.1 DMA基本概念 DMA的意思是“直接存储器存取”,意指不通过CPU、直接对存储器进行访问,它由专门的硬件装置DMA控制器(DMAC)来完成。除了事先要用指令设置DMAC外,传送是应外设请求、在硬件控制下完成的。所以,它具有极高的传送速率。 DMAC对存储器的访问与CPU类似,一般利用系统总线来进行。 以读存储器为例,其过程是:DMAC一面向存储器送存储单元地址和读控制信号( ) ,同时又向外设端口送写控制信号( ),数据在硬件信号的控制下通过总线由源直接送达目的地。为了支持数据块的传送,DMAC还具有修改地址指针、统计传送次数、判断传送是否结束等多项自动功能。 所以,使用DMA方法,可支持外设→存储器、存储器→外设的高速直接传送;变通后,也可支持存储器→存储器、外设→外设的高速直接传送。 7.2 DMA占用总线方式 1.CPU暂时放弃总线控制权方式 此类DMA操作,CPU必须暂停任何总线操作,并让出对总线的控制权、直至DMA传送结束或完成一个总线操作周期之后,CPU才能继续控制总线。 实现这种方式的方法是DMAC向CPU发出总线请求信号,CPU在完成当前的总线周期操作之后,释放对总线的控制(有关的引脚信号处于高阻状态)并发出总线响应信号。 这类DMA又可分为两种情况:周期挪用和数据块传送。 如果DMAC控制总线的时间为一个总线周期,则称为周期挪用。对于这种操作方式,每次DMA操作仅传送一个字节(或字)数据。然后DMAC释放对总线的控制; 若DMAC控制总线的时间超过一个总线周期,用来完成一组数据(即数据块)的传送,在该组数据传送期间,DMAC一直控制着总线,这种操作方式称为数据块传送。 下面以图7-1为例说明这种DMA操作方式的工作过程。假定8086CPU工作于最小模式,且是将存储器中的数据传送给外部设备。在DMA操作之前,DMAC作为系统的一个接口部件,接受CPU送来的操作命令,也即对DMAC的初始化,以规定传输类型(存储器和外设之间)、操作方式(单字节传送)、传送方向、内存的首地址、传送的字节数等。在完成初化编程之后,DMAC就准备好进行DMA操作,传送一个字节数据的过程如下(在图7-1中以圆圈内的序号表示)。 (1)外设已作好接收数据准备,向DMAC发出请求信号DRQ。 (2)DMAC向CPU发出DMA操作请求HRQ,该请求信号送到CPU的HOLD信号引脚。 (3)CPU在完成当前的总线周期操作之后(若总线处于空闲状态,则立即做出响应),使数据总线、地址总线及部分控制信号处于三态,并向DMAC发出响应信号HLDA,指示DMAC可以使用总线。 (4)DMAC将地址(A19~A0)放入地址总线,该地址用来寻址内存储单元。 (5)DMAC向I/O接口发出响应信号DACK,该信号可作为接口接受数据的控制条件,有效时,表示允许接口接受数据; (6)DMAC向存储器发出读控制信号,在该信号的控制下,由A19~A0指定的单元的内容送入数据总线。 (7)DMAC向接口发出写控制信号,在该信号及DACK信号的共同作用下,将数据总线上的内容储存到接口中的数据寄存器,并通过接口将数据传送给外设,至此完成了数据传送。 (8)DMAC撤销对CPU的请求信号。 (9)CPU撤销保持响应信号并恢复对总线的控制。 如果数据未传送完,则又从第二步开始重复所述过程。 2.暂停CPU时钟脉冲方式 这种方式也就是强迫CPU立即停止工作的方式。 在进入DMA操作时,把CPU的时钟“暂停”,就能达到停止CPU操作的目的。 这种方式的原理如图7-2所示,CPU的时钟脉冲由系统主时钟脉冲通过与门来提供,与门由PAS信号控制。 当PAS=1时,向CPU提供时钟脉冲,CPU操作得以进行;当PAS=0时,暂停时钟,CPU便处于“休眠”状态,此时可进行DMA操作。 图7-2 暂停CPU时钟脉冲方式示意图 3.窃取CPU空闲时间方式 上述两种DMA总线占用方式共同的特点是,进行DMA操作时均使CPU的正常工作暂时停止。其优点是简单,可以不受限制地传送任意长度的数据块,但会浪费CPU资源。 为了充分利用CPU 资源,可以采用只有当CPU不使用总线时才进行DMA操作的方法,这样CPU不会因DMA传送而浪费时间。但这种DMA操作只能安排在CPU执行内部操作当中 例如取完指令操作码后,CPU要进行指令译码或CPU内部要进行算术/逻辑运算时,CPU均不使用总线,这时DMAC可以接管总线。MC6800 CPU有专门的信号用来指示总线是否正在被使用,这就给安排DMA操作带来

文档评论(0)

taotao0c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档