ADSP2116中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来完成。
(凹丫丫范文网fanwen.oyaya.net收集整理)
2 ADSP2116x中的DMA
2.1 ADSP2116x中DMA的数据传输类型
ADSP2116x中的DMA包含14条独立通道,可完成下列类型的数据传输操作:
●片内存储器与片外存储器或片外设备之间的传输操作;
●片内存储器与其它ADSP2116x的片内存储器之间的传输操作;
●片内存储器与主处理器之间的传输操作;
●片内存储器与串行口之间的传输操作;
●片内存储器与Link口之间的传输操作;
●片内存储器与SPI口之间的传输操作;
●片外存储器与片外设备之间的传输操作。
2.2 ADSP2116x中与DMA有关的寄存器
DMA的编程实际上是通过内部核心处理单元或外部主机对片内有关的I/O寄存器设置来完成的,与DMA有关的I/O寄存器如表1所列。控制寄存器主要用来设置数据传输的方向、数据格式、是否链式等操作;参数寄存器用来设置数据传输的地址、数目等信息;数据缓存器则主要用来缓存传输的数据,以提高数据的传输率。这些I/O寄存器都被映射到片内存储器的前256个地址上。
表1 ADSP2116x中的DMA缓存器