DMA相关知识.doc

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

DMA相关知识 )))))) (1)字节(Byte):一个字节是DMA通道最小的数据传输单位; (2)单元(Element):若干个字节构成的数据传输单位称为一个单元,一个单元可以是8位、16位或32位的。一个单元的传输是不能被中断的。 (3)帧(Frame):若干个单元构成的数据传输单位称为一帧。在一帧的传输过程中不能被中断。 (4)块(Block):若干个帧构成的数据传输单位称为一个块,每个通道一次或多次传输一个块。在块的传输过程中可以被中断。 对于DMA的每个通道,可以定义一块中包括帧的个数,一帧中单元的个数,一个单元中字节的个数。 2.数据打包 DMA控制器具有数据打包功能,比如选择8比特的数据传输而目的端口是32位的数据总线,可以将4个8比特的数据片打包成一个32比特的数据包进行传输,这样会提高DMA的传输速率。DMA控制器的数据打包功能通过参数寄存器DMACSDP中的DST(SRC)PACK字段设定。 当DST(SRC)PACK=0时,不打包; 当DST(SRC)PACK=1时,对数据打包后再传输。 3.端口 DMA通道传输的目的端口和源端口由参数寄存器DMACSDP中的DST(SRC)字段来确定。 当DST(SRC)= xx00时,目的(源)端口为SARAM; 当DST(SRC)= xx01时,目的(源)端口为DARAM; 当DST(SRC)= xx10时,目的(源)端口为EMIF; 当DST(SRC)= xx11时,目的(源)端口为Peripheral。 4.数据源和目的地址 DMA控制器采用字节地址,一个DMA通道的数据源起始地址由源起始地址寄存器DMACSSAL和DMACSSAU指定,其中DMACSSAL存放低16位地址,DMACSSAU存放高位地址;目的起始地址由目的起始地址寄存器DMACDSAL和DMACDSAU指定,其中DMACDSAL存放低16位地址,DMACDSAU存放高位地址。 DMA通道在数据传输过程中的地址修改方式由DMACCR寄存器中的DST(SRC) AMODE字段确定。 当DST(SRC)AMODE=00时,目的(源)地址为固定地址,用于单元的传输; 当DST(SRC)AMODE=01时,目的(源)地址在每个单元传输完后自动增加。根据数据的位数是8位、16位还是32位,地址分别增加1、2或4。 当DST(SRC)AMODE=10时,目的(源)地址在每个单元传输完后自动增加一个索引值,索引值由单元索引寄存器DMACEI/DMACSEI确定。 当DST(SRC)AMODE=11时,目的(源)地址在每个单元传输完后按单元索引和帧索引自动增加,索引值由单元索引寄存器DMACEI/DMACSEI和帧索引寄存器DMACFI/DMACSFI确定,又称为双索引。 七.通道和端口 DMA控制器有6个通道,用于4个标准端口之间的数据传送,每个通道可以从某个端口读取数据,也可以将数据写入某个端口。每个通道有一个FIFO缓冲区。如图所示,使数据的传输包括两个阶段:端口读取和端口写入。DMA先从源端口读取数据,并将其放到通道的FIFO缓冲区里,然后再从FIFO缓冲区取出写入目的端口。 DMA控制器的寄存器有两套:一套是配置寄存器,供CPU写入所需的配置值;另一套是工作寄存器,供DMA工作时使用。所以,DMA通道正在进行数据传输时,CPU可以写入下次传输的配置参数,而不影响正在进行的传输。但是,寄存器DMACSDP,DMACCR,DMACICR,DMACSR,DMAGCR,DMAGSCR,和DMAGTCR不能使用这种方式配置。 传输数据时,配置寄存器的内容复制到工作寄存器,DMA控制器则使用工作寄存器的值来控制通道的工作。只要使能DMACCR的en = 1,就进行上述复制。如果使用自动初始化模式DMACCR里的AUTOINIT = 1,则该复制在块传输之间发生。 八.DMA源/目标地址改变的步长 1. 源/目标突发传送步长SCR/DST_BURST_STEP。每次突发传送,源地址及目标地址的增量步长由此寄存器设定。寄存器中的值有符号二进制形式,地址按要求增加或减少。倘若不要求增量步进,设置次寄存器为0。(如访问McBSP) 2. 源/目标传送步长SRC/DST_TLTRANSFER_STEP.定义了在当前突发传送完成后,下一个突发传送的地址偏移量。当访问的寄存器或内存单元存在固定的地址间隔,可使用此功能。 3. 源/目标返回步长SRC/DST_WRAP_STEP。当返回计数器归零时,此寄存器定义了BEG_ADDR指针增加或减少字的个数,从而设定新的地址。 九.DMA两级循环状态机的运行模式: 1.单次触发模式(ONESHOT))void DMACH1AddrConfig(volatile Uint16 *

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档