TMS320 F2812 DSP原理与应用实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 DSP系统的构成和设计方法

为了快速的实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。本节主要以TMS320系列为例来介绍DSP芯片的基本构成和设计方法。

1.2.1 DSP应用系统的构成

TMS320系列DSP芯片的基本结构包括哈佛结构、流水线操作、专用的硬件乘法器及特殊的DSP指令。这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。由于TMS320系列DSP芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。

1.哈佛结构(Harvard architecture)

传统的微处理器采用的冯·诺依曼(见图1-3(a))结构,是将指令和数据存放在同一存储空间中,统一编址。指令和数据通过同一总线访问同一地址空间上的存储器。而DSP芯片采用的哈佛结构(见图1-3(b))则是不同于冯·诺依曼结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置两条总线,即程序总线和数据总线,从而使数据的吞吐率提高了一倍。

图1-3(a)冯·诺依曼结构

图1-3(b)哈佛结构

如图1-3(b)所示,在哈佛结构中,由于程序存储器和数据存储器在两个分开的空间里,因此取指和执行能够完全重叠运行。为了进一步提高运行速度和灵活性,TMS320C3x DSP系列芯片在基本哈佛结构的基础上作了改进,一是允许数据存放在程序存储器中,并能被算术运算指令直接使用,增强芯片的灵活性;二是增加了高速缓冲器(Cache),Cache中的指令在执行时不用再从存储器中读取,节约了一个指令周期,在TMS320C3x系列芯片中有64个字的Cache。

2.流水线操作(pileline)

流水线与哈佛结构相关,DSP芯片广泛采用流水线操作以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。图1-4所示是一个三级流水线操作的例子。

图1-4 三级流水线操作示意图

3.专用的硬件乘法器

在通用微处理器中,乘法指令需要多个指令周期,如MCS-51的乘法指令需4个周期。相比较而言,DSP芯片的特征就是有一个专用的硬件乘法器,乘法可以在一个指令周期内完成,还可以与加法并行进行,完成一个乘法和一个加法只需一个指令周期。可见,高速的乘法指令和并行操作大大提高了DSP处理器的性能。

在一般形式的FIR滤波器中,乘法是DSP的重要组成部分。对每个滤波器抽头,必须做一次乘法和一次加法。乘法速度越快,DSP处理器的性能就越高。在TMS320系列中,由于具有专用的硬件乘法器,乘法可在一个指令周期内完成。从最早的TMS32010实现FIR的每个抽头算法可以看出,滤波器每个抽头需要一条乘法指令MPY:

LT;装乘数到T寄存器

DMOV;在存储器中移动数据以实现延迟

MPY;相乘

APAC;将乘法结果加到ACC中

其他三条指令用来将乘数装入到乘法器电路(LT),移动数据(DMOV)以及将乘法结果(存在乘积寄存器P中)加到ACC中(APAC)。因此,若采用256抽头的FIR滤波器,这四条指令必须重复执行256次,且256次乘法必须在一个抽样间隔内完成。在典型的通用微处理器中,每个抽头需要30~40个指令周期,而TMS32010 只需4条指令。如果采用特殊的DSP指令或采用TMS320C54x等新一代的DSP芯片,可进一步降低FIR抽头的计算时间。

4.特殊的DSP指令

DSP芯片的另一个特点是采用特殊的指令,这些特殊指令进一步提高了DSP芯片的处理能力。DMOV就是一个特殊的DSP指令,它完成数据移位功能。在数字信号处理中,延迟操作非常重要,它就是通过DMOV来实现的。TMS32010中的另一个特殊指令是LTD,它在一个指令周期内完成LT、DMOV和APAC三条指令。LTD和MPY指令可以将FIR滤波器抽头计算从4条指令降为2条指令。在第二代处理器中,如TMS320C25,增加了2条更特殊的指令,即RPT和MACD指令,采用这2条特殊指令,可以进一步将每个抽头的运算指令数从2条降为1条:

RPTK 255;重复执行下条指令256次

MACD;LT,DMOV,MPY及APAC

1.2.2 DSP应用系统的设计方法

与其他系统的设计工作一样,在进行DSP系统的设计之前,设计者首先要明确设目的和技术指标。进行具体的DSP系统设计时,一般的设计流程如图1-5所示。

图1-5 DSP系统设计流程图

设计过程大致分为如下几个阶段:

1.算法研究及优化

该阶段主要是根据设计任务确定系统设计的技术指标。首先应该根据系统需求进行算法的仿真和高级语言模拟实现,通过仿真来验证算法的正确性以及效率、精度等,以确定一种最佳的算法,并初步确定相应的参数。

其次核算算法所需的DSP处理能力,一方面这是选择DSP的重要因素,另一方面也影响目标板的DSP结构,如采用单DSP还是多DSP,串行结构还是并行结构。

最后还要对算法反复进行优化,一方面提高算法的效率,另一方面使算法更加适合DSP的体系结构。

一般来说,为了实现系统的最终目标,需要对输入的信号进行适当的处理,而处理方法的不同会导致不同的系统性能。要得到最佳的系统性能,就必须在这一步确定最佳的处理方法,即数字信号处理的算法(Algorithm),因此这一步也称算法模拟阶段。例如,语音压缩编码算法就是要在确定的压缩比条件下,获得最佳的合成语音。算法模拟所用的输入数据是实际信号经采集而获得的,通常以计算机文件的形式存储为数据文件。如语音压缩编码算法模拟时所用的语音信号就是实际采集而获得并存储为计算机文件形式的语音数据文件。有些算法模拟时所用的输入数据并不一定要是实际采集的信号数据,输入数据只要能验证算法的可行性即可。

2.DSP芯片的选择

根据算法的运算速度、运算精度、存储要求、系统成本和体积、功耗等参数来选择DSP芯片及其外围芯片。不同的DSP芯片都有其各自适合处理的领域。例如:TMS320C24xx系列主要适用于家电产品领域,不论对算法的支持、存储器配置还是外设的支持,都能充分保证应用的效率。

3.软件、硬件设计

软硬件设计阶段一般分为下列几个步骤:

(1)根据选定的算法和DSP芯片对系统的各项功能是通过软件实现还是硬件实现来进行初步分工,例如FFT、数字上/下变频器、RAKE分集接收是否需要专门的芯片或者FPGA芯片实现,译码判决算法是用硬件判决还是软件判决等。

(2)根据系统设计的技术指标要求进行硬件设计,完成DSP芯片外围电路和其他电路的转换、控制、存储等的设计。

(3)根据系统设计指标和要求编写DSP汇编程序,完成软件的设计。软件设计也可以采用高级语言进行。由于现有的高级语言编译器的效率比较低,还没有手工编写的效率高,因此实际应用中常常采用高级语言和汇编语言混合的方法进行编程,即在算法运算量大的地方采用手工编写汇编语言,在运算量相对较小的地方采用高级语言。采用这种方法的优点是缩短了软件开发的周期,提高了程序的可读性和可移植性,满足了系统实时运算的要求。

4.软件和硬件调试

DSP硬件和软件设计完成后,就需要进行硬件和软件的调试。软件的调试一般都需要借助于DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。在调试DSP算法时,一般采用比较实时结果与模拟结果的方法,如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可以根据实际情况进行调试。硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂,也可以借助于一般的工具进行调试。

5.系统集成及测试

系统的软件和硬件分别测试完毕以后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道现实系统的性能,但实际上仿真环境不可能做到与现实系统环境完全一致,而且在将仿真算法移植到现实系统时,必须考虑算法是否能够运行的问题。如果算法运算量太大而不能在硬件上实际运行,则必须重新修改或简化算法。