积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> DSP >> ADI DSP
  相关分类: 应用论文 | TI DSP | 新产品 | 算法 | 下载 | DSP代码示例 | ADI DSP | freescale DSP |
ADSP2116x中DMA的应用
 
作者:江志红 吴春光   来源:国外电子元器件    点击数:731   更新时间:2007-2-7
您可以添加到网摘 让更多人关注此文章:

    

  :直接内存存取(DMA)是DSP芯片中用于快速数据交换的重要技术,文中对AD公司的浮点系列芯片ADSP2116xDMA的应用方法作了详细介绍,同时重点介绍了链式DMA的操作方法,给出了一些实际应用中的例子。
   
关键词DMA;链式DMA;浮点系列芯片;ADSP2116x

1 DMA概述
  直接内存存取(DMA)是计算机系统提高运行效率的一项重要技术。它可以在CPU运行指令的同时,使系统从外部存储器或设备中存取数据,也可以在核心处理器不参与的情况下由专用的DMA设备存取数据。
  对于DSP芯片来讲,DMA的作用尤为重要。众所周知,DSP芯片主要面向实时信号处理,其核心运算部件具有很高的运算速度,常以MFLOPS(每秒百万次浮点运算)来衡量。ADSP2116x的速度为600MFLOPS,此速度是以存储在芯片内部存储器中的程序和数据为前提的。在DSP内部,一般采用多总线的哈佛结构,数据总线和程序总线相互独立,即指令的存取和数据的存取并行不悖;另外,在AD SP2116x内部还有各种接口总线,可用以提高数据的流通能力,而在芯片的外部,所有的总线都被合并在一起了。为了发挥DSP核心运算单元的高速运算能力,必须先把外部数据传输到片内存储器中。使用DMA操作可以减少核心处理器的负担,提高运算速度。另一方面,DSP系统总要与各种外部信号打交道,它从外部输入数字信号,经过各种算法处理后,还要输出给其它外部设备。不仅如此,对于很多应用系统,数据的输入和输出常常是连续不断的。试想,若用DSP的核心部件完成数据的输入和输出,将无法发挥DSP的高速运算能力。而AD公司的ADSP2116x系列则集成了DMA控制器,从而可用DMA来完成数据的输入和输出。
  高效的DSP系统通常采用图1所示的结构。该结构的内部带有输入、输出缓冲区,而数据的获得则依靠DMA控制器。这样,核心运算单元就可以专门进行信号处理,而将外界数据的获取交给DMA来完成。

2 ADSP2116x中的DMA
2
1 ADSP2116xDMA的数据传输类型
  ADSP2116x中的DMA包含14条独立通道,可完成下列类型的数据传输操作:
  片内存储器与片外存储器或片外设备之间的传输操作;
  片内存储器与其它ADSP2116x的片内存储器之间的传输操作;
    ●
片内存储器与主处理器之间的传输操作;
    
片内存储器与串行口之间的传输操作;
    ●
片内存储器与Link口之间的传输操作;
    ●
片内存储器与SPI口之间的传输操作;
    ●
片外存储器与片外设备之间的传输操作。
2
2 ADSP2116x中与DMA有关的寄存器
  DMA的编程实际上是通过内部核心处理单元或外部主机对片内有关的IO寄存器设置来完成的,与DMA有关的IO寄存器如表1所列。控制寄存器主要用来设置数据传输的方向、数据格式、是否链式等操作;参数寄存器用来设置数据传输的地址、数目等信息;数据缓存器则主要用来缓存传输的数据,以提高数据的传输率。这些IO寄存器都被映射到片内存储器的前256个地址上。
2
3 ADSP2116xDMA一般传输过程的设置
    DMA一般传输过程的设置步骤如下:
   
1)设置对应通道的参数寄存器;
  (2)设置对应通道的DMA控制寄存器,并将其中的DMA使能位设为有效;
   
3)开始DMA数据传输;
  (4DMA传输结束后,产生对应的中断,并通过程序对中断进行处理。
2
4 ADSP2116x中的链式DMA
  为了减少由DMA引起的中断,ADSP2116x中的DMA控制器提供了链式DMA功能。所谓链式DMA,是指在当前的DMA结束时,IO处理器能够自动加载DMA参数并开始下一个DMA传输。利用这种特性,程序能够设置多个具有不同属性的DMA传输。在链式DMA过程中,通常先把每次DMA传输的有关参数写成一个传输控制块(TCB),并把它们存储在片内。传输过程中,在当前的DMA结束时,IO处理器将对链式指针寄存器(CPx)进行控制以使其指向存储在片内的下一个TCB


CPx在链式DMA中具有非常重要的作用,它是一个19位的寄存器,其中低18位是偏移地址,在ADSP2116x中,这组偏移地址加上0x00040000后才是片内存储器中的实际地址,其中最高一位为中断控制位。该位在被设置的情况下,IO处理器将在链式DMA结束时产生一个中断,实际上CPx指向的是TCB的最大地址,在TCB中,各有关DMA参数寄存器的排列顺序如表2所列。表中的“x”代表所用到的DMA通道。链式DMA传输过程的设置步骤如下:
   
1)在片内存储器中设置好所有的TCB
  (2)设置对应通道的控制寄存器,并将其中的DMA使能位和链式使能位设为有效;
  (3)将第一个TCB的最大地址写到CPx中,并开始链式DMA的传输;
   
4)传输结束后,产生对应的中断。
  有两点要特别注意:第一是链式DMA只能发生在同一DMA通道内;二是SPI口不支持链式DMA
3
几种常用的DMA操作
  在基于ADSP2116xDSP系统开发过程中,最常用的操作是片内存储器和片外存储器之间的DMAlink口之间的DMA、串口之间的DMA以及SPI之间的DMA等几种。限于篇幅,本文只介绍前面两种。

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




  

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



 

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




 

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

参考资料

1ADSP21160 SHARCDSPHardware ReferenceAnalog DivceInc
2
ADSP21161 SHARCDSPHardware ReferenceAnalog DivceInc



相关文章
· 科技奥运与计算机技术的应用[425]
· Electromedical[2693]
· 患者监控[2742]
· 基于TMS320LF2407A DSP的心电监护系统研究[3187]
· 用S3C2410实现三导联远程心电监护系统[3096]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
严冬期如何发展半导体业 扩
2008年中国集成电路市场回顾与展望
分析师:亚洲芯片厂商库存远超预期
2008年基础电子业十大事件点评
Aptina并购智多微手机软件平台设
凌力尔特公司推出用于多核处理器的&n
安森美半导体任命麦满权为韩国及南亚区
Broadcom:半导体产业依然机会
飞思卡尔推i.MX51芯 
日立芯片守卫新年倒数计时晚会
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
低价专业PCB打样 双面板20...
深圳市天漠科技超低价供应atm...
深圳市天漠科技超低价供应ARM...
[推荐]2.5米精度,高灵敏度...
830实验箱+电脑没有并口...
[原创]平望科技助力自服终端国...
低价专业PCB打样 双面板20...
[原创]低价专业PCB打样 双...
Bootloader for ...
【有奖调查】08-09嵌入式开...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网