基于DSP和FPGA的高速数字信号处理系统设计

时间:2020-09-13 08:26:22 通信工程毕业论文 我要投稿

基于DSP和FPGA的高速数字信号处理系统设计

  【摘要】 DSP、FPGA等专用的数字信号处理芯片为人们日常处理数字信号提供了有力的支撑,特别经过不断的发展,此类芯片的功耗越来越低、处理速度越来越快、功能也越来越强大,可以满足数字信号实时处理的要求。本文介绍了数字信号处理系统目前发展的现状,以通用领域高速数字信号处理作为应用背景,结合实际经验,探究了在高速数字信号处理中基于DSP和FPGA的使用方案。

  【关键字】 DSP  数字信号FPGA 实时处理

  一、前言

  早期的信号处理主要采用模拟的处理方法,包括运算放大电路、声表面波(SAW)器件以及电荷耦合器件(CCD)。运算放大电路通过不同的电阻组配可以实现算数运算,通过电阻、电容的组配可以实现滤波处理等等。模拟处理最大的问题是不灵活、不稳定。解决以上问题的最好办法就是采用数字信号处理技术。数字信号处理主要通过软件实现,可以很方便的修改参数,具有很大灵活性。并且数字电路采用逻辑值进行处理,也相当可靠。当今数字信号处理的理论和方法已经得到长足的发展,成为数字化时代的重要支撑,已经渗透到我们生活和工作的各个方面。[1]高速实时信号处理是信号处理中的一个特殊分支。它的主要特点是高速处理和实时处理,被广泛应用在工业和军事的关键领域,如对雷达信号的处理、对通信基站信号的处理等。高速实时信号处理技术除了核心的高速DSP技术外,还包括很多外围技术,如ADC、DAC等外围器件技术、系统总线技术等。

  二、高速数字信号处理硬件体系设计

  DSP(数字信号处理器)是专门为了数字信号处理应用而设计的'高速芯片,由用户通过编程实现处理算法,其编程语言多为C语言。DSP具有开发周期短、处理速度快、实时处理能力强的特点,目前,已经成为了数字信号处理系统中最为重要的处理器件之一。 FPGA(现场可编程门阵列)近年来发展迅速,因为它的灵活性、可重构性、广泛的适应性,在一些信息量较大的场合,如雷达信号处理、海洋气候数据、农业生产信息处理等应用领域,现场可编程门阵列(FPGA)可以跟DSP等芯片配合使用,增加系统的可用性和效率,是嵌入式系统中不可或缺的芯片[2]。本文设计的数字信号处理系统主要以DSP为核心,FPGA为协处理器,再搭配ADC和DAC及接口电路,为可重构电路,是目前比较常用的并行处理系统解决方案,主要完成数字信号的检测、处理和传输。该系统最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率,同时其开发周期短,系统易于维护和扩展,适合于实时信号处理。[3]

  2.1 DSP和FPGA器件的选型

  DSP芯片选择了TI公司的TMS320C6416,其最高工作频率可以达到1GHz,器件本身拥有1MB的内部存储空间,1280MB的外部存储空间,可以通过HPI、PCI、EMIF等接口与其它器件连接,能够胜任数据的高速处理要求。[4]

  FPGA芯片选择了Xilinx公司的XC5VSX95T,其拥有14720个Slices、1520KbRAM、640个DSP48E Slices和640个User I/O。可以依靠片内的大量RAM资源和乘法器完成各种逻辑运算和处理算法。

  2.2系统功能与总体结构设计

  本系统对前端输出的模拟信号进行ADC采样,然后经过滤波、变频、抽取和处理,得到处理数据,再通过接口送往显控设备显示,同时,可以通过DAC输出基带信号,系统的总体设计结构如图1所示。

  其中,FPGA主要实现ADC和DAC控制,ADC采样信号的滤波、变频、解调等预处理,系统外围接口电路的逻辑控制,离散的信号控制和状态监测,以及和DSP的接口逻辑等;DSP属于信号处理硬件的核心部分,实现数据处理的核心算法等功能,处理得到的数据通过UART口送往显控设备;FPGA和DSP之间通过EMIF口连接,并使用DSP的外部中断作为读取数据的触发;具体的电路结构如图2所示。

  三、系统性能优化

  3.1 FPGA与DSP的接口优化

  本信号处理硬件中FPGA作为数据输入/输出的控制及预处理芯片,必须要与核心处理器DSP交换数据,因此,FPGA和DSP之间需要建立高速数据接口。

  FPGA作为一个外设,挂在DSP的EMIFA口,因为EMIF口工作时钟可能和FPGA内部工作时钟不一致,为了控制FPGA内部电路的时序,在FPGA内部,设计了两个FIFO,来实现EMIF口对FPGA的数据访问。当DSP响应其外部中断信号时,从FIFO_R中读取FPGA预处理的数据,当要给FPGA下发工作参数时,将数据写入FIFO_W。

  3.2接口驱动优化

  为了实现信号的高质量传输,需要在DSP的EMIF口和外部存储器之间增加双电源三态缓冲器,这里选择的是性能稳定的SN74LVC16T245。本设计中,在FPGA与DSP的EMIF之间使用该芯片构成数据缓冲。

  3.3 软件优化

  随着电子技术和大数据时代的激发,多个领域对更大的数字信号数据量的存储和处理需求提出了更高的诉求。特别是雷达、高清视频实时转播等系统采用的高采样率设备,数据率可以达到Gbps,这就需要除了对硬件采集信号的质量加以控制之外,还要对软件算法不断加以优化[5]。尤其是在FPGA程序设计中,需要特别注意信号采集和发送的时序,不仅要在原理图设计初期根据厂家的芯片Datasheet进行合理的配置,也要在编写程序时合理处理多时钟域问题。在一个设计中,一般应该只有一个全局时钟网络可以驱动全部触发器,这样可以极大的简化时序分析,去除掉大量与多时钟域相关的问题,但是在实际的设计时,由于FPGA对外接口较多,每个接口的约束条件都不同,只利用一个时钟是不可能的,这时候就要处理多个时钟问题。可以通过以下几个技巧进行处理。

  1)使用全局时钟buffer。对于全局时钟信号,尽量使用全局时钟buffer(BUFGP)驱动,FPGA内部需要低时钟偏差的信号,也尽量使用二级全局buffer(BUFGS)驱动。

  2)分频信号的处理。对于设计中需要采用“分频信号”作为时钟的电路,在不要求占空比时,可以将分频信号设计成和主时钟一样宽度的信号,然后在实际处理中,仍然以主时钟为触发条件,把分频信号作为控制信号处理。如图3所示,假设主时钟为100MHz,产生一个10MHz的分频信号。

  3)合理选择语法。在VHDL中,if语句指定了一个具有优先级的编码逻辑,而case语句则是并行逻辑,不具有优先级。通常,if-else结构速度较慢,但需要的电路面积较少;case结构执行速度较快,但占用电路面积较大。在具体编程时,要综合考虑速度和面积的关系,如果对速度有特殊要求,而对资源没有较高要求,则应使用case结构。在必须使用if-else结构时,不正确的嵌套使用if语句会增加延时,因此,对于延时要求苛刻的路径,应该放在较高的优先级。[6]

  四、结术语

  本文主要研究了高速数字信号处理中使用FPGA+DSP的方案结构,分析了其中重要的接口设计和软件优化,基本解决了通用高速数字信号的采集和处理问题。但是目前看来,提出的基于FPGA+DSP的数据采集和处理的硬件实现,对多路信号的并行计算速度还不够。下一步的目标将是,通过对FPGA中的算法模块和控制逻辑模块、接口协议的调整优化以满足更高的要求。

  参考文献:

  [1]石星. 高速数字信号处理设计评述[A]. 中国电子学会.中国电子学会第七届学术年会论文集[C].中国电子学会:,2001:6.

  [2]郑文明. 基于FPGA的数字信号处理算法研究与高效实现[D].哈尔滨工程大学,2009.

  [3]孙进平,王俊,李伟,张有光等.DSP/FPGA嵌入式实时处理技术及应用[M].北京航空航天大学出版社.2011.

  [4]红雨,纪祥春 等.TMS320C6000系列DSP的CPU与外设[M].清华大学出版社.2007.

  [5]贾凯宾. 高速数字PCB互连设计信号完整性研究[D].南京理工大学,2008.

  [6]孟宪元 译.高级FPGA设计结构、实现和优化[M].机械工业出版社.2009.

  [7]康康. 基于双通道DSP+FPGA的数字信号处理系统[D].西安电子科技大学,2014.

【基于DSP和FPGA的高速数字信号处理系统设计】相关文章:

1.基于EDA技术的FPGA设计

2.FPGA的原理和设计

3.基于DSP算法的正向设计方法学概论论文

4.基于嵌入式系统的语音加密处理系统设计

5.基于fpga 的f.i.r 滤波器设计探讨

6.基于FPGA的HDLC通信模块的实现

7.基于PowerPC+DSP总线通信软件的设计与实现论文

8.基于FPGA的DCT域图像水印算法设计及其优化技术研究

9.基于FPGA的集成运放参数测试仪