第十章 ARM9_直接存储器存取DMA控制.pptVIP

第十章 ARM9_直接存储器存取DMA控制.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 直接存储器存取(DMA)控制 10.1 DMA基本知识 计算机系统中各种常用的数据输入/输出方法有查询方式(包括无条件及条件传送方式)和中断方式,这些方式适用于CPU与慢速及中速外设之间的数据交换。但当高速外设要与系统内存或者要在系统内存的不同区域之间进行大量数据的快速传送时,就在一定程度上限制了数据传送的速率。直接存储器存取(DMA)就是为解决这个问题提出的,采用DMA方式,在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。 典型DMA控制器(以下简称DMAC )工作电路如图10-1所示,其数据传送工作过程如下: 1.外设向 DMAC发出DMA传送请求; 2. DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求; 3.CPU在完成当前总线操作后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面,CPU将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方面,CPU将有效的HLDA信号加到DMAC上,以通知DMAC CPU己经放弃了总线的控制权; 4.CPU将总线浮空,即放弃了总线控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA的应答信号; 5.DMAC送出地址信号和控制信号,实现外设与内存或内存之间大量数据的快速传送。 6.DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。 需要注意的是,在内存与外设之间进行DMA传送期间,DMAC控制器只是输出地址及控制信号,而数据传送是直接在内存和外设端口之间进行的,并不经过DMAC。对于内存不同区域之间的DMA传送,则应先用一个DMA存储器读周期将数据从内存的源区域读出,存入到DMAC的内部数据暂存器中,再利用一个DMA存储器写周期将该数据写到内存的目的区域中去。 DMA传送包括三种方式:I/O接口到存储器、存储器到I/O接口以及存储器到存储器,由于它们具有不同的特点,所需要的控制信号也不相同。 . I/O接口到存储器 当进行由I/O接口到存储器的数据传送时,来自I/O接口的数据利用DMAC送出的控制信号将数据输送到系统数据总线D0~D7上,同时,DMAC送出存储器单元地址及控制信号,将存在于D0~D7上的数据写入所选中的存储单元中。这样就完成了由I/O接口到存储器一个字节的传送。同时DMAC修改内部地址及字节数寄存器的内容。 .存储器到I/O接口 与前一种情况类似,在进行这种传送时,DMAC送出存储器地址及控制信号,将选中的存储单元的内容读出放在数据总线D0~D7上,接着,DMAC送出控制信号,将数据写到规定的(预选中)端口中去,而后MDAC自动修改内部的地址及字节数寄存器的内容。 .存储器到存储器 存储器到存储器的DMA数据传送采用数据块传送方式,首先送出内存源区域的地址和控制信号,将选中内存单元的的数据暂存,接着修改地址及字节数寄存器的值,然后输出内存目的区域的地址及控制信号,将暂存的数据通过系统数据总线写入到内存的目的区域中去,最后修改地址和字节数据寄存器的内容,当字节计数器减到零或外部输入时,可结束一次DMA传输过程。 10.2 S3C2410的DMA控制器 S3C2410支持位于系统总线和外设总线之间的4个通道的DMA控制器。每个通道可以处理以下四种情况: 1. 源和目的都在系统总线上; 2. 源在系统总线而目的在外设总线上; 3 源在外设总线而目的在系统总线上; 4 源和目的都在外设总线上。 关于每个寄存器的详细说明,请参考随书软件包S3C2410的使用手册,下面,将结合程序代码简单的说明S3C2410DMA控制器相关的一些设置。 DMA地址寄存器: DISRC0~DISRC3[30:0] 寄存DMA要传送的数据的源地址, DISRCC0~DISRCC3[30:0] 寄存DMA要传送的数据的目的地址 DISRCC0~DISRCC3[1]:=0,DMA源数据在AHB总线上;=1,DMA源数据在APB总线上 DISRCC0~DISRCC3[0]:=0,源数据每传一个,源地址加一;=1,源地址固定。 DIDSTC0~ DIDSTC3[1]:=0,DMA目的数据在AHB总线上;=1,DMA目的数据在APB总线上 DIDSTC0~ DIDSTC3[0]:=0,目的数据接收一个,目的地址加一;=1,目的地址固定。 DMA控制寄存器: DCON0~DCON3[31]=0,请求模式;=1,握手摸式; DCON0~DCON3[30]=0,DMAZ中断与APB同步;=1,与AHB同步; DCON0~DCON3[29

文档评论(0)

briuo + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档