1.1 实时数字信号处理技术的发展
20世纪60年代以来,随着信息技术的不断进步,数字信号处理技术应运而生并得到迅速发展。80年代以前,由于方法的限制,数字信号处理技术处于理论研究阶段,还得不到广泛的应用。在此阶段,人们利用通用计算机进行数字滤波、频谱分析等算法的研究,以及数字信号处理系统的模拟和仿真。而将数字信号处理技术推向高峰的则是实时数字信号处理技术的高速发展。
实时数字信号处理对数字信号处理系统的处理能力提出了严格的要求,所有运算、处理都必须小于系统可接受的最大时延。以视频会议为例,从发送端图像、声音信号的采集、压缩,通过信道传输,到接收端完成数据接收,图像、声音信号的解压、还原,其中任何一个处理环节都应满足最大时延要求,否则将出现图像、声音信号的间断,从而影响视频会议的正常进行,如果每个数据包都包含了20ms的音、视频信号,可以很容易得出整个系统的整体延迟必须小于500ms,而每个数据包的处理时间必须小于20ms才能满足系统实时处理要求。
典型实时数字信号处理系统的基本部件包括:抗混叠滤波器(Anti-aliasing filter)、模/数转换器(Analog-to-Digital Converter,ADC)、数字信号处理、数/模转换器(Digital-to-Analog Converter,DAC)和抗镜像滤波器(Anti-image filter),如图1-1所示。其中,抗混叠滤波器将输入的模拟信号中高于奈奎斯特频率的频率成分滤掉;ADC将模拟信号转换成DSP可以处理的并行或串行的数字比特流;数字信号处理部分完成数字信号处理算法;经过处理的数字信号经DAC转换成为模拟样值之后,再由抗镜像滤波器完成模拟波形的重建。
图1-1 典型实时数字信号处理系统框图
和其他数字系统一样,实时数字信号处理系统具有许多模拟系统不具备的优点,如灵活,可编程,支持时分复用,易于模块化设计,可重复使用,可靠性高,抗环境干扰能力强,易于维护等。当前实用的数字信号处理系统主要有以下几种,它们各具优缺点,这就需要使用者根据具体情况做出相应选择。
1.利用X86处理器完成实时数字信号处理
随着CPU技术的不断进步,X86处理器的处理能力不断发展,基于X86处理器的处理系统已经不仅局限于以往的模拟和仿真,也能满足部分数字信号的实时处理要求,而各种便携式或工业标准的推出,如PC104、PC104 Plus结构,以及CPCI总线标准的应用,这些都改善了X86系统的抗恶劣环境的性能,扩展了X86系统的应用范围。利用X86系统进行实时数字信号处理有下列优点:
(1)处理器选择范围较宽:X86处理器涵盖了从386到奔腾系列,处理速度从100MHz到几GHz,而为了满足工控等各种应用,X86厂商也推出了多款低功耗处理器,其功耗远远小于商用处理器。
(2)主板及外设资源丰富:无论是普通结构,还是基于PC104和PC104 Plus结构,以及CPCI总线标准,都有多种主板及扩展子板可供选择,节省了用户的大量硬件开发时间。
(3)有多种操作系统可供选择:这些操作系统包括Windows、Linux、Win CE等,而针对特殊应用,还可根据需要对操作系统进行剪裁,以适应实时数字信号处理要求。
(4)开发、调试较为方便:X86的开发、调试工具十分成熟,使用者不需要很深的硬件基础,只要能够熟练使用VC、C-Build等开发工具即可进行开发。
但使用X86进行实时信号处理的缺点也是十分明显的。
(1)数字信号处理能力不强:X86系列处理器没有为数字信号处理提供专用乘法器等资源,寻址方式也没有为数字信号处理进行优化,实时信号处理对中断的响应延迟时间要求十分严格,通用操作系统并不能满足这一要求。
(2)硬件组成较为复杂:即使是采用最小系统,X86数字信号处理系统也要包括主板(包括CPU、总线控制、内存等)、非易失存储器(硬盘或电子硬盘、SD卡或CF卡)和信号输入/输出部分(这部分通常为AD扩展卡和DA扩展卡),如果再包括显示、键盘等设备,系统将更为复杂。
(3)系统体积、重量较大,功耗较高:即使采用紧凑的PC104结构,其尺寸也达到96mm×90mm,而采用各种降低功耗的措施,X86主板的峰值功耗仍不小于5W,高功耗则对供电提出较高要求,则需要便携系统提供容量较大的电池,进一步增大了系统的重量。
(4)抗环境影响能力较弱:便携系统往往要工作于自然环境当中,温度、湿度、振动、电磁干扰等都会给系统正常工作带来影响,而为了克服这些影响,X86系统所需付出的代价将是十分巨大的。
2.利用通用微处理器完成实时数字信号处理
通用微处理器的种类多,包括51系列及其扩展系列,德州仪器公司的MSP430系列, ARM公司的ARM7、ARM9、ARM10系列等,利用通用微处理器进行信号处理的优点如下。
(1)可选范围广:通用微处理器种类多,使用者可从速度、片内存储器容量、片内外设资源等各种角度进行选择,许多处理器还为执行数字信号处理专门提供了乘法器等资源。
(2)硬件组成简单:只需要非易失存储器,A/D、D/A即可组成最小系统,这类处理器一般都包括各种串行、并行接口,可以方便地与各种A/D、D/A转换器进行连接。
(3)系统功耗低,适应环境能力强。
利用通用微处理器进行信号处理的缺点如下。
(1)信号处理的效率较低:以一个两个数值乘法为例,处理器需要先用两条指令从存储器当中取值到寄存器中,用一条指令完成两个寄存器的值相乘,再用一条指令将结果存到存储器中,这样,完成一次乘法就花费了4条指令,使信号处理的效率难以提高。
(2)内部DMA通道较少:数字信号处理需要对大量的数据进行搬移,如果这些数据搬移全部通过CPU进行,将极大的浪费CPU资源,但通用处理器往往DMA通道数量较少,甚至没有DMA通道,这也将影响信号处理的效率。
针对这些缺点,当前的发展趋势是在通用处理器中内嵌硬件数字信号处理单元,如很多视频处理器产品都是在ARM9处理器中嵌入H.264、MPEG4等硬件视频处理模块,从而取得了较好的处理效果;而另一条路径是在单片中集成ARM处理器和DSP处理器,类似的产品如德州仪器的OMAP处理器及最新的达芬奇视频处理器,它们就是在一个芯片中集成了一个ARM9处理器和一个C55x处理器或一个C64x处理器。
3.利用可编程逻辑阵列(FPGA)进行实时数字信号处理
随着微电子技术的快速发展,FPGA的制作工艺已经进入到45nm时期,这意味在一片集成电路当中可以集成更多的晶体管,芯片运行更快,功耗更低。其主要优点如下。
(1)适合高速信号处理:FPGA采用硬件实现数字信号处理,更加适合实现高速数字信号处理,对于采样率大于100MHz的信号,采用专用芯片或FPGA是适当的选择。
(2)具有专用数字信号处理结构:纵观当前最先进的FPGA,如ALTERA公司的Stratix Ⅱ、Ⅲ系列、Cyclone Ⅱ、Ⅲ系列,Xilinx公司的Virtex-4、Virtex-5系列都为数字信号处理提供了专用的数字信号处理单元,这些单元由专用的乘法累加器组成,所提供的乘法累加器不仅减少了逻辑资源的使用,其结构也更加适合实现数字滤波器、FFT等数字信号处理算法。
使用FPGA的缺点如下。
(1)开发需要较深的硬件基础:无论用VHDL还是Verilog HDL语言实现数字信号处理功能都需要较多的数字电路知识,硬件实现的思想与软件编程有着很大区别,从软件算法转移到FPGA硬件实现存在着很多需要克服的困难。
(2)调试困难:对FPGA进行调试与软件调试存在很大区别,输出的信号需要通过示波器、逻辑分析仪进行分析,或者利用JTAG端口记录波形文件,而很多处理的中间信号量甚至无法引出进行观察,因此FPGA的更多工作是通过软件仿真来进行验证的,这就需要编写全面的测试文件,FPGA的软件测试工作是十分艰巨的。
4.利用数字信号处理器实时实现数字信号处理
数字信号处理器(Digital Signal Processor,DSP)是一种专门为实时、快速实现各种数字信号处理算法而设计的具有特殊结构的微处理器。20世纪80年代初,世界上第一片可编程DSP芯片的诞生为数字信号处理理论的实际应用开辟了道路;随着低成本数字信号处理器的不断推出,更加促进了这一进程。90年代以后,DSP芯片的发展突飞猛进。其功能日益强大,性能价格比不断上升,开发手段不断改进。DSP芯片已成为集成电路中发展最快的电子产品之一。DSP芯片迅速成为众多电子产品的核心器件,DSP系统也被广泛地应用于当今技术革命的各个领域——通信电子、信号处理、自动控制、雷达、军事、航空航天、医疗、家用电器、电力电子,而且新的应用领域还在不断地被发现、拓展。可以说,基于DSP技术的开发应用正在成为数字时代应用技术领域的潮流。