1、 数字信号处理(Digital Signal Processing,DSP)是一个发展极为迅速的科学技术领域,广泛应用于许多领域的新兴学科。它利用计算机或专用的数字设备对数字信号进行采集、变换、滤波、估值、增强、压缩和识别等加工处理,以得到符合人们需要的信号形式并进行有效的传输与应用。后来又受到计算机技术、微电子技术迅猛发展的促进,使数字信号处理技术的发展推向了高潮。1.1 引言引言 1.1.1 DSP的定义的定义 简单地说,数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,它的英文原名叫digital signal processing,简称DSP。另外DSP也是digital s
2、ignal processor的简称,即数字信号处理器。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。1.1.2 数字信号处理的实现方法数字信号处理的实现方法 数字信号处理一般有以下几种方法来实现。(1)在通用的计算机上用软件实现数字信号处理。(2)在通用的计算机系统中加上专用的极速卡来实现数 字信号处理。(3)利
3、用单片机实现数字信号处理:单片机是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的、完整的单片微型计算机。因此具有结构简单、可靠性高、低功耗、性价比高等优点;但单片机的速度慢、功能弱、精度低,只使用在数据运算较小的场合。(4)用可编程DSP芯片实现数字信号处理:对于数据运算较大的场合,使用DSP芯片进行数字信号处理更合适。这是因为DSP芯片有更快的CPU,更大容量的存储器和专用的硬件乘法器,使DSP芯片拥有高速的数据运算能力。更适合用于海量数据处理。(5)用可编程阵列器件FPGA实现数字信号处理:随着数字系统规模和复杂度的增长,目前常用的可编程阵列器件FPGA主要是Altera,
4、Xilinx,Lattice公司的产品。FPGA中的寄存器资源比较丰富,适合同步时序电路较多的数字系统。在以上的实现方法中,利用可编程阵列器件FPGA为数字信号处理的实现打开了一个崭新的局面。在未来,将FPGA和DSP相结合将会是一个重要的发展方向。DSP芯片的操作灵活性高,速度快,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。它具有高级的改进哈佛结构(1条程序存储器总线、3条数据存储总线和4条地址总线)、带有专用逻辑功能的CPU、片内存储器、片内外设和高度专业化的指令集。这些产品已经并且将来也会继续得到发展,为电子市场上的专门领域服务。1.2
5、.1 DSP芯片的特点芯片的特点 DSP芯片之所以特别适合数字信号处理运算,是因为其在硬件结构和软件指令系统中具有以下一些特点,我们现在以TI公司的产品为例进行说明。如下:1.改进的哈佛结构 传统的微处理器采用的是冯洛依曼(Von Neuman)结构,而DSP芯片采用的是哈佛结构而不是冯洛依曼(Von Neuman)结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问,增强了芯片数据调用的灵活性。2.流水线型操作 基本指令分为四级:取址、译码、读和执行。当处理器并行处理四条指令时,各条指令处于流水线的
6、不同单元。在不发生流水线冲突的情况下,具有流水线结构的处理器的长时间执行效率接近于没有流水线结构的处理器的四倍。因此,DSP芯片广泛采用流水线操作以减少指令执行的时间,增强处理器的处理能力。图1.1给出了一个三级流水线操作的例子。3.存储器 存储器具有192K字可寻址存储空间(包括64K字程序存储空间、64K字数据存储空间和64K字I/O空间)。其中,TMS320C548、TMS320C549、TMS320C5402、TMS320C5410和TMS320C5420的程序存储空间还可以扩展到8M字。片内存储器配置因型而异。4.采用专用的硬件乘法器 在通用微处理器中算法指令需要多个指令周期,如MC
7、S-51的乘法指令需要4个周期。相比而言,DSP芯片有一个专用的硬件乘法器,乘法可在一个指令周期内完成,还可以与加法并行输出,完成一个乘法和一个加法只需一个周期。5.高度专业化的指令集 在DSP芯片的指令集能够快速地实现算法并用于高级语言编程优化。其高度专业化的指令集包括单指令重复和块指令重复;用于更好地管理程序存储器和数据存储器的块移动指令;32位长整数操作指令;指令同时读取2或3个操作数;并行存储和加载的算数指令;条件存储指令和快速中断返回。6.快速的指令周期 目前TMS320C64xx系列的最高主频已经发展到了720MHz,使得一个指令周期达到了1.4ns,数据处理能力提高了几十倍,甚至
8、上百倍。而TMS320C54x执行单周期定点指令的时间达到了25/20/15/12.5/10ns,每秒指令数为40/66/100MIPS。7.功耗低 TMS320C54x电源由IDLE1、IDLE2和IDLE3功耗下降指令控制功耗,以便DSP工作在节电模式下,使之更适合于手机。其控制CLKOUT引脚的输出,省功耗。1.2.2 DSP芯片的分类与选择芯片的分类与选择 现在,世界上的DSP芯片有三百多种,其中定点DSP就有两百多种。主要厂家除了TI公司外,其他具有代表性的公司还有美国模拟器件(Analog Devices,AD)公司、Luccent公司、LSI Logic公司以及Motorola公
9、司。其中TI公司的DSP产品占了市场份额的50%。所以,在这里我们以TI公司的DSP芯片为主进行分类。人们将市场的TI公司DSP系列产品分为三类,即TMS320C2000系列、TMS320C5000系列和TMS320C6000系列。1.TMS320C2000系列 TMS320C2000系列专为基于数字控制(如电机控制、电源控制)和运动控制当中。主要包括TMS320C24x/F24x、TMS320LC240 x/LF240 x、TMS320LC240 xA/LF240 xA、TMS320F28xx等。x24x系列DSP面向控制应用场合进行了优化,其运算速度为2040MIPS,LF24xx系列比C
10、24x系列价格便宜,性能更好。C28xx系列主要用于像数字电机控制、数字电源这样的大存储设备和高性能的场合。C55x是TI公司最新推出的定点DSP芯片系列,它比C54x的性能有很大提高,而且功耗大大降低,是目前TI公司推出的功率最小的DSP芯片,适用于便携式超低功率场合。两者主要用于高性能低功耗的场合,是目前用户最多的DSP系列。2.TMS320C5000系列 TMS320C5000系列主要包括C54x和C55x系列。其中C54x具有功耗小,高度并行等优点,可以满足电信等众多领域的实时处理的要求。3.TMS320C6000系列 TMS320C6000系列是TI公司推出的,定点浮点兼容的DSP芯
11、片系列。其中定点DSP系列是TMS320C62xx,目前有C6201、C6202、C6203、C6204、C6205和C6211。浮点DSP系列是TMS320C67xx,目前有C6701和C6711两种,支持32位单精度数据和64位双精度数据。主要应用于高性能、多功能、复杂应用场合,如移动通信基站、电信基础设施和成像应用等。定点DSP芯片和浮点DSP芯片因为他们有着各自的特点,都有着广泛的市场。定点DSP芯片有运算精度较低和动态范围较小的不足,但是有着价格低廉的优势;而浮点DSP芯片主要广泛应用在高性能实时处理系统当中。设计DSP应用系统,选择DSP芯片是一个非常重要的一个环节。只有选定了DS
12、P芯片才能进一步设计外围电路及系统的其他电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。一般来说,选择DSP芯片时我们通常会考虑以下几个因素:1.运算速度 首先,我们要确定数字信号处理的算法,算法确定以后其运算量和完成时间也就大体确定了。根据运算量,及其时间要求就可以估算DSP芯片运算速度的下限。运算速度的主要衡量指标主要有MIPS(每秒处理的百万级的机器语言指令数)、MOPS(每秒百万次运算)、MBPS(兆比特位每秒)、MACS(乘加次数每秒)等。2.运算精度 一般情况下,浮点DSP芯片的运算精度要高于定点DSP芯片的运算精度,但是功耗和价格也随之上升。定点DSP主频高、速度
13、快、成本低、功耗小,主要用于计算复杂度不高的控制、通信、语音/图像等领域。浮点DSP芯片的速度一般比定点DSP芯片处理速度低,其成本和功耗都比定点DSP高,但是其处理精度、动态范围都高于定点DSP,适合于运算复杂度高和精度要求高的场合。因此说,运算精度是一个折衷的问题,需要根据经验等来确定一个最佳的结合点。3.字长的选择 一般浮点DSP芯片都是采用的32位的数据字,大多数定点DSP芯片是16位数据字。字长大小是影响成本的重要因素,它影响芯片的大小、引脚数以及存储器的大小,设计时在满足性能指标的条件下,尽可能选用最小的数据字。4.存储器等片内硬件资源安排 包括存储器的大小、片内存储器的数量、总线
14、寻址空间等。片内存储器的大小决定了芯片运行速度和成本,不同种类芯片存储器的配置等硬件资源各不相同。通过对算法程序和应用目标的仔细分析可以大致判定对DSP芯片片内资源的要求。几个重要的考虑因素是片内RAM、ROM的数量,可否外扩存储器、总线接口/中断/串行口等是否够用,是否具有A/D转换等。5.开发调试工具 完善、方便的开发工具和相关支持软件是开发大型、复杂DSP系统的必备条件,对缩短产品的开发周期和提高开发效率有很重要的作用。开发工具包括硬件和软件两部分。6.价格和售后服务 采用昂贵的DSP芯片就算它的性能再高,但是其自身的应用范围也肯定受到一定的限制。相反,采用价格低廉的DSP芯片必然其功能
15、少、性能差、片内存储器少,这就给编程带来了一定的难度。因此,我们在选择DSP芯片时要根据实际系统的应用情况,确定一个价位适合我们的DSP芯片。除此之外,我们还要考虑售后服务,因为良好的售后技术支持也是重要的资源。随着计算机技术、微电子技术的迅猛发展,将数字信号处理技术的发展推向了高潮。它的应用领域也越来越广,以数字信号处理器为核心的数字信号处理系统已经在通信、语音识别与处理、图像处理、通信、自动控制、军事、仪器仪表、医学工程、家用电器和汽车等领域得到了广泛的应用。1.3.1 DSP系统的构成系统的构成 一个典型的数字信号处理系统应包括抗混叠滤波器、A/D转换器、数字信号处理器DSP、D/A转换
16、器和低通滤波器等。图1.2就是一个典型的数字信号处理系统的简化框图。数字信号处理系统的工作过程如下:将输入的连续信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,防止信号频谱的混叠,然后通过A/D(Analog to Digital)转换器,A/D转换器的目的就是对连续信号进行抽样、量化和编码,将滤波后的连续信号变为数字信号x(n);在转换的过程中,我们为了能够使转换的信号能够无失真的还原原来的信号,抽样的频率应该满足奈奎斯特抽样定理,即抽样频率至少是输入带限信号最高频率的两倍。再将数字信号x(n)由DSP芯片进行处理得到数字信号y(n);经过处理后的数字信号y(n)再由D/A转换器将y(n
17、)转换成模拟信号;最后通过低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。该系统是一个典型的数字信号处理系统。1.3.2 DSP系统的设计过程系统的设计过程设计一个DSP系统主要包括以下几个步骤:1.明确设计任务和确定设计目标 我们在设计一个DSP系统时,我们必须明确我们的设计任务和设计目标。根据应用系统的目标来确定系统的各项性能指标以及信号处理的要求。例如,运算速度、运算精度、存储器片内硬件资源等。2.算法模拟 为了实现系统的最终目标,需要对输入信号进行适当的处理,但是不同的处理方法会产生不同的系统性能。为了能够使系统性能满足我们的目标,就必须在这一步确定对信号处理的算法,即数字信号处
18、理算法。3.选择DSP芯片和外围芯片 明确了设计目标之后,我们就可以根据系统的各项性能指标来确定合适的DSP芯片和外围芯片使系统能够实现信号处理的要求。4.设计实时的DSP芯片系统 实时DSP芯片系统主要包括硬件设计和软件设计。硬件设计就是根据确定的DSP芯片和外围芯片设计外围电路和其他电路。软件设计就是根据系统要求和确定的DSP芯片编写相应的DSP汇编程序。5.硬件和软件调试 硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂,也可以借助于一般的工具进行调试。软件调试一般借助于DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。6.系统集成和测试 所谓系
19、统集成是先将软件程序固化,再把软硬件结合起来组装成一台样机。系统完成集成之后进行系统测试。系统测试将软件脱离开发系统直接在应用系统上运行。在真实环境当中完成系统的测试,查看测试结果是否满足我们的设计目标,如果不满足我们就需要重新修改算法或重新进行调试。直到最后的测试结果能够满足我们的要求。1.3.3 DSP系统的特点系统的特点 数字信号处理器系统是以数字信号处理为基础的系统,因此数字信号处理系统具有以下一些明显的特点。1.稳定性好 模拟系统的元器件都有一定的温度系数,因此受到像温度、噪声、电磁感应等因素的影响是很大的。相反,DSP系统是以数字处理为基础,并且数字系统只有两个信号电平0和1,电压
20、容差范围较大,所以受到外界的环境因素(像温度、噪声)的影响很小。所以DSP系统拥有更好的稳定性。2.精度高 与通常的模拟元器件的精度相比,数字系统只要16位就可以达到10-5级的精度,而通常的模拟元器件的精度很难达到10-3以上。所以以数字处理为基础的DSP系统拥有更高的精度。3.灵活性高或可重复性 通常模拟系统的性能受到元器件参数性能的变化比较大,而在数字信号处理系统中,数字信号处理系统的性能是由乘法器的系数来决定的,而这些系数是存放在系数存储器中的。因此,根据我们的需要,我们只需要改变存储器当中的系数就可以得到满足我们需要的数字系统。这比改变硬件电路结构来改变模拟系统要方便的多,也就是说数字系统具有更高的灵活性或可重复性。所以,数字系统更加便于调试、测试和大规模生产。4.集成方便 对于数字系统中的数字部件都有高度的规范性,所以更加的适合成产和集成化。但是数字信号处理系统也有其自己的缺点,例如,数字系统的速度还不算高,在海量数据处理时会增加成本;在DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题;并且DSP系统需要很大的功耗。