首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   ADSP2116中DMA的应用      ★★★ 【字体: 】  
ADSP2116中DMA的应用
收集整理:佚名    来源:本站整理  时间:2009-01-10 22:19:49   点击数:[]    

器(CPx)进行控制以使其指向存储在片内的下一个TCB。

表2 TCB中各相关参数寄存器的排列顺序

地   址外部口Link口和串口
CPx+0x00040000IIEPxIIx
CPx-1+0x00040000IMEPxIMx
CPx-2+0x00040000CEPxCx
CPx-3+0x00040000CPEPxCPx
CPx-4+0x00040000GPEPxGPx
CPx-5+0x00040000EIEPx 
CPx-6+0x00040000EMEPx 
CPx-7+0x00040000ECEPx 
CPx-8+0x00040000- 

CPx在链式DMA中具有非常重要的作用,它是一个19位的寄存器,其中低18位是偏移地址,在ADSP2116x中,这组偏移地址加上0x00040000后才是片内存储器中的实际地址,其中最高一位为中断控制位。该位在被设置的情况下,I/O处理器将在链式DMA结束时产生一个中断,实际上CPx指向的是TCB的最大地址,在TCB中,各有关DMA参数寄存器的排列顺序如表2所列。表中的“x”代表所用到的DMA通道。链式DMA传输过程的设置步骤如下:

(1)在片内存储器中设置好所有的TCB

(2)设置对应通道的控制寄存器,并将其中的DMA使能位和链式使能位设为有效

(3)将第一个TCB的最大地址写到CPx中,并开始链式DMA的传输

(4)传输结束后,产生对应的中断。

有两点要特别注意:第一是链式DMA只能发生在同一DMA通道内;二是SPI口不支持链式DMA。

3 几种常用的DMA操作

在基于ADSP2116x的DSP系统开发过程中,最常用的操作是片内存储器和片外存储器之间的DMA、link口之间的DMA、串口之间的DMA以及SPI之间的DMA等几种。限于篇幅,本文只介绍前面两种。

3.1 片内存储器和片外存储器之间的DMA

片内存储器与片外存储器之间的DMA传输可用通道10~13这四个通道中的任意一个来进行。下面通过一个例子来说明这种传输。假定要把片内存储器地址0x50000~0x5001f中的32个数据利用DMA通道10传送到片外存储器0x2000000~0x200001f中,则可用下面的程序来实现:

R0=0;dm(DMAC10)=R0 //清空对应通道的DMA控制寄存器

//设置片内存储器参烽寄存器

R0=0x50000; dm(IIEP0)=R0; //设置片内存储器起始地址

R0=1; dm(EMEP0)=R0; //设置片内存储器地址增加值

R0=32; dm(ECEP0)=R0; // 设置片内存储器计数寄存器

//设置片外参数寄存器

R0=0x2000000( dmEIEP0)=R0 //设置片外存储器起始地址

R0=1; dm(IMEP0)=R0; //设置片外存储器地址增加值

R0=32; dm(CEP0)=R0; //设置片外存储器计数寄存器

//设置对应通道的DMA控制寄存器

Ustat1=0x00000000;

Bit set ustat1 MASTER|PMODE4|TRAN|DEN;

Dm(DMAC10)=ustat1; // 设置为master和无打包模式,并开始DMA传输

上面的例子是一般的DMA传输。而如果需要进行两段或两段以上的数据传输,则要在中断后重新设置参数寄存器,在这种情况下,用链式DMA更有利于提高核心处理单元的效率。假定要把片内存储器地址0x50000~0x5001f中的32个数据和0x50040~0x5007f中的64个数据利用DMA通道10分别传送到片外存储器0x2000000~0x200001f和0x2000040~0x200007f中,可用下面的程序来实现:

VAR tcb1[8] = 32, //ECEP0

1, //EMEP0

0x2000000, // EIEP0

0, // GPEP0

tcb2+7-0x40000, // CPEP0,保证第一次DMA结束后自动加载第二个TCB

32, // CEP0

1, // IMEP0

0x50000; // IIEP0

VAR tcb2[8]=64,1,0x2000040,

// ECEP0, EMEP0, EIEP0,0 //GPEP0

0x40000, //CPEP0,保证第二个DMA结束后产生DMA中断

64,1,0x50040;//CEP0, IMEP0, IIEP0

r0=0,

dm(DMAC10)=r0; //清空对应通道的DMA控制器

ustat0=0x00000000;

bit set ustat0 INT32 |MASTER|PMODE4|CHEN|DEN|TRAN;

dm(DMAC10)=ustat0; //设置为master和无打包模式,链式DMA

r0=tcb1+7-0x40000;

dm(CPEP0) =r0; //加载第一个TCB的CPEP0

开始DMA传输完第一段数据

后自动开始加载第二个TCB,

直到两段数据后产生中断

bit set mode1 IRPTEN //设置全局中断使能

bit set imask EP0I //设置DMA通道#10中断使能

3.2 片内存储器与link口之间的DMA

ADSP2116x具有很强的并行工作能力,它不需另加任何外部仲裁电路,便可以直接通过link口联接在一起并行工作以实现片间数据的交换,在通常情况下可采用DMA方式,以便充分发挥其优点。下面是两片ADSP2116x之间通过link0口进行数据传输的例子。假定要把第一片片内存储器0x100000~0x1001ff中的512个数据传送到第二片的片内存储器0x120000~0x1201ff中。其程序如下:

//第一片

.var txtcb_source8=0000051210x100000

//设置DMA TCB

r0 = 0 dmLCTL = r0 //清空对应通道的

控制寄存器

ustat1=dmLCTL

bit clr ustat1 L0TRAN | LAB0 | L0CLKD0

bit set ustat1 L0EN | L0CLKD1 | L0DEN | L0CHEN dmLCTL=ustat1 //设置DMA控制器LCTL

//设置link0口为2x时钟,发

送数据模式,链式DMA

r1 = 0x00040000

r0 = txtcb_source + 7

r0 = r1 or r0 //设置CPLB0寄存器中的PCI位

dmtxtcb_source + 4 = r0 //设置TCB中的CPLB0

dmCPLB0 = r0 //加载TCB中的CPLB0,并

开始链式DMA

//第二片

.var rxtcb_dest8=0000051210x120000

//设置DMA TCB

r0=0 dmLCTL=r0 //清空对应通道的控制

寄存器

ustat1=dmLCTL

bit clr ustat1 LAB0 | L0CLKD0

bit set ustat1 L0TRAN | L0EN | L0CLKD1 | L0DEN | L0CHEN 

dmLCTL=ustat1 //设置DMA控制器LCTL

//设置link0口为2x时钟,

接收数据模式,链式DMA

r1 = 0x00040000

r0 = rxtcb_dest + 7

r0 = r1 or r0 //设置CPLB0中的PCI位

dmrxtcb_dest + 4 = r0 //设置TCB中的CPLB0

dmCPLB0 = r0 //加载TCB中的CPLB0

并开始链式DMA

4 结束语

本文简要介绍了ADSP2116x中DMA的基本原理,给出了几种DMA操作时的编程实例,这些例子重点突出了链式DMA的应用。由于ADSP2116x中DMA操作功能强大,形式多样。因此,只有熟练掌握和应用各种DMA,才能使数据进出芯片变得更加流畅,同时也才能使其核心处理单元的运算能力发挥到极致。




上一页  [1] [2] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:一种数字语音通信系统的DSP实现

  • 下一篇文章:多制式语音编码及其DSP实现
  • 返回上一页】【打 印】【关闭窗口
    中查找“ADSP2116中DMA的应用”更多相关内容 5VAR论文频道
    中查找“ADSP2116中DMA的应用”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››ADSP-21535Blackfin的MemDMA高速通...
  • ››ADSP系列处理器在网络多媒体中的应...
  • ››ADSP-218X的IDMA接口自举设计
  • ››ADSPTigerSHARC芯片TS101S及其应用...
  • ››ADSP2116中DMA的应用
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .