王红鑫 嵌入式系统DMA控制.pptx

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

嵌入式系统DMA控制 专业:电力电子与电力传动 姓名:王红鑫 学号:1206009 什么是DMA DMA(Direct Memory Acess)是指不用处理器干预即可完成储存器与I/O间数据传送。 为什么要使用DMA控制 嵌入式系统I/O操作中,中断方式(包括查询方式)是广泛使用的操作方式。其特点是需要通过CPU执行ISR来控制整个数据的传送,输入输出都要以CPU的寄存器为中转站。以中断方式数据传输为例,每一次响应中断,CPU都要保护主程序断点的工作现场,而后执行ISR。数据传输操作完毕后,还要恢复断点处的工作现场。因此在某些高频度I/O操作的嵌入式应用场合,执行中断方式的输入输出会导致系统频繁切换工作现场,CPU运行效率不高。 DMA控制的优势 在高速大数据量传输场合,DMA方式可以不通过CPU直接完成输入输出设备与存储器间的数据交换,在数据传送期间不会影响CPU的其它工作, 使CPU具有了同时进行多种实时操作的能力,增强了系统的实时性。 DMA方式由于系统开销少,传输效率,比中断方式优越。因此,现代通用计算机都具备DMA传输功能。嵌入式系统并非都拥有DMA功能。8位嵌入式处理器一般不具备DMA数据传输功能。但16位和32位嵌入式处理器一般都具有DMA功能。例如:ARM、68K、PowerPC和MIPS处理器。 几款常用嵌入式处理器的DMA 控制器简表 DMA系统组成 地址总线 HRQ DREQ DMAC HLDA DACK 总线 请求 总线 响应 HOLD HLDA CPU DMA 请求 DMA 响应 I / O 设备 控制总线 数据总线 DMA 通道类型 ① 源设备和目标都在系统总线AHB上 ② 源设备和目标都在外围总线APB上 ③ 源设备在系统总线,而目标设备位于外围总线 ④ 源设备在外围总线,而目标设备位于系统总线 S3C2410的DMA方式 DMA请求源 DMA的模式 DMA请求模式 DMA请求模式表明一个DMA操作是由谁发起的。S3C2410支持2种DMA请求模式:S/W请求模式和H/W请求模式。 DMA传输模式 DMA传输模式描述了DMA操作触发后,数据传输的同步。有两种传输模式:询问模式和握手模式。 DMA传输模式 DMA传输模式描述了DMA传输操作该如何结束。DMA的服务模式有两种:单独服务模式和整体服务模式。 DMA的基本时序 询问/握手时序 单发/阵法传输时序 DMA寄存器 每个DMA通道有9个控制寄存器 DISRC  DISRCC DCON DIDST  DIDSTC  DMASKTRIG DSTAT DCSRC DCDST DISRC 需要传输的数据的起始地址 地址只能当没有数据传送( CURR_SRC 为0)而且DMA 请求被响应后(ACK为1)才能装载到CURR_SRC DISRCC 数据传送源设备位置和地址增长方式 DMA控制寄存器 设置传输方式,传输尺寸,传输协议等信息 DCON DCONn[31](DMD_HS) 0:Demand方式 1:HandShake方式 DCONn[30](SYNC) 0:采用PCLK时钟(外围总线) 1:采用HCLK时钟(系统总线) DCONn[29](INT) 0:禁止CURR_TC中断 1:所有的传输结束后(CURR_TC=0)产生中断请求 DCONn[28](TSZ) 0:单元传输方式 1:猝发传输方式(4单元) DCONn[27](SERVMODE) 0:单一服务模式(当一个原子操作完成后将DMA停止并等待新的请求) 1:整体服务模式(重复进行原子操作,直到计数为0) DCONn[21:20](HWSRCSEL) 数据尺寸 00 = Byte 01 = Half word 10 = Word 11 = reserved DCONn[19:0](TC) 初始传输次数 实际的传输字节通过DSZ x TSZ x TC计算 只有当CURR_SRC 为 0和DMA ACK为 1时才装载到CURR_SRC 中 当前DMA操作源地址 DCSRC DMASKTRIG DMASKTRIGn[2]:STOP 1:当前的原子操作结束后,立即停止DMA操作 CURR_TC设为0 DMASKTRIGn[1]:ON_OFF 0: DMA通道关闭 1: DMA通道开启 DMASKTRIGn[0]:SW_TRIG 1:软件触发一个DMA操作 必须选择S/W 请求模式 (DCONn[23]) ,通道的ON_OFF位为1 当DMA操作开始后,该位自动清除 操作步骤 ① DMA通道初始化:rDISRC 、rDISRCC 、r

文档评论(0)

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

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

1亿VIP精品文档

相关文档