当前位置:无忧公文网 >范文大全 > 征文 > 基于FPGA的高速数据采集分析系统的设计

基于FPGA的高速数据采集分析系统的设计

时间:2022-03-18 08:21:52 浏览次数:

摘 要: 为了实现对模拟量的高速采集与快速傅里叶分析,提出了一种基于FPGA的高速数据采集分析系统的设计方案,系统采用Cyclone系列FPGA配合高速A/D转换器,并使用了Altera公司的定制快速傅里叶分析集成核,通信与上位机采用RS 232串行通信标准协议配合基于Matlab GUI的上位机分析软件,并对多组高频模拟信号进行了高速数据采集与快速傅里叶分析实验,同时在上位机分析软件中实时显示出分析结果。实验结果验证了快速傅里叶分析理论,实现了低成本、高性能数据采集分析系统的设计完成。

关键词: FPGA; 高速数据采集; 快速傅里叶分析; FIFO存储器

中图分类号: TN710⁃34 文献标识码: A 文章编号: 1004⁃373X(2014)16⁃0135⁃03

Design of high⁃speed data acquisition and analysis system based on FPGA

MA Zhi⁃bin, LIAO Wen, LIU Fang

(Harbin Institute of Technology, Weihai 264209, China)

Abstract: In order to realize the high⁃speed acquisition and fast Fourier analysis of analog quantity, a design scheme of high⁃speed data acquisition and analysis system based on FPGA is proposed in this paper. Cyclone series FPGA chip, high⁃speed A/D converter and Altera’s fast Fourier analysis integration core are used in the system. RS⁃232 serial communication standard protocol and host analysis software based on Matlab GUI are adopted for the communication. The high⁃speed data acquisition and fast Fourier data analysis experiment are employed for multi⁃group high⁃frequency analog signal. The analysis result is displayed in real time in the principal computer analysis software. The fast Fourier analysis theory was validated in the experiment. The design of low cost but high performance data acquisition and analysis system was completed.

Keywords: FPGA; high⁃speed data acquisition; fast Fourier analysis; FIFO memory

0 引 言

在信号处理技术中,数据采集显得尤为重要。数据采集的传统设计方法,通常以单片机为控制核心,并配合A/D转换器、存储器等其他功能模块工作。科学技术飞速发展的今天,工业与科技各个领域均对数据采集速度提出了更高的要求,过去的单片机设计方案弊端严重地制约了数据采集技术的发展。单片机工作时运行频率低,且主要依靠软件编程算法实现数据的采集,“软件式”采集使得采集速度和效率大打折扣[1]。而FPGA(Field Programmable Gate Array,现场可编程门阵列)则克服了传统单片机的这一劣势。FPGA工作时钟频率高,内部延时小,运行工作全部由硬件逻辑实现,速度快、效率高。

本文介绍一种基于FPGA,应用高速ADC和快速傅里叶分析算法设计实现的高速数据采集分析系统。

1 系统硬件组成与设计

本设计以FPGA为核心,主要包括数据采集模块、通信接口模块以及电源模块等几部分。其中核心控制部分主要负责各部分模块控制信号发生,完成对整个系统的逻辑控制和对来自上位机软件面板采集分析模式的定义,并根据系统需要对ADC采集转换后数据进行了合理编帧,电源模块则为该系统提供可靠直流电源。系统的原理框图如图1所示。

图1 系统原理框图

1.1 数据采集模块

该模块由一片Altera公司的FPGA和一片高速ADC芯片组成。由于系统设计的最大采样速度为15 MHz,则依据“香农”采样定理,采样ADC的工作频率至少应该在30 MHz以上,才能保证采样后的信号不失真。所以本系统选择AD公司的AD9280作为采样核心。该芯片精度为8位,工作范围为2.7~5.5 V,功耗低,最高工作频率为32 MSPS。经试验测试可很好地满足系统高速采样的要求。

通常在低速系统中常使用单片机(MCU)作为CPU主控制器。但在高速采集系统中,往往会受到MCU的限制,而且随着速度越来越高,ADC,RAM,MCU之间的时序同步也会变得越来越困难。基于此本系统选择了高速、多I/O口的FPGA芯片作为主控芯片,并配合ADC和RAM等其他模块,从而较好地解决了采样速度过高带来的同步时序问题[2]。

FPGA是从PAL、GAL发展来的阵列型高密度PLO器件,具有密度高、速度高、低功耗等特点。特别适合作为复杂的组合逻辑控制核心。根据系统的设计要求,本设计中使用的FPGA芯片型号为Altera公司的EP2C8Q208[3⁃4]。并拥有8 000个可用门,可供用户使用的I/O近100个,内部计数器的工作频率可达200 MHz以上。在本设计中FPGA主要实现以下逻辑功能:

(1) 接收采样启动信号,启动A/D转换,实现对ADC采样控制;

(2) 在FPGA中定制FFT(快速傅里叶分析)IP核;

(3) 对采集后的信号进行快速傅里叶分析编帧,并将编帧后的分析结果写入FIFO存储器;

(4) 指示串口通信模块实现采样分析结果的上传。

本系统的FPGA功能逻辑采用VHDL语言编写,这是一种硬件描述语言,主要针对数字系统的行为、结构、接口和功能进行描述。硬件电路的VHDL语言设计,可以使开发者无需编写真值表或逻辑表达式。这样使得设计硬件电路的难度大幅度降低,从而使工作效率得到提高,同时也缩短了开发周期[5]。

1.2 通信接口部分

串口通信是一种常用的通信协议标准,它具有使用灵活、连接方便、易于控制等特点。目前,仍有很多计算机外围设备采用串行通信接口,本设计中为了控制设计方便也采用了串口通信。

在串口通信模块和EP2C8Q208之间采用了FIFO(First in First out SRAM)芯片作为分析数据传输的缓冲部分,这样可以使得串口芯片和FPGA之间的最大数据传输速度大大超过串口线的速度,使之不会成为数据传输速度的瓶颈,从而有效地解决了FPGA内部数据传输与串口传输速度不匹配的问题[6⁃7]。

2 FPGA主要模块的逻辑实现

FPGA系统的设计模块主要有数据采集模块、快速傅里叶分析(FFT)模块和通信控制模块三部分。采集模块分为逻辑控制模块、时序生成模块、时钟逻辑控制模块等。下面主要就快速傅里叶分析模块和数据采集模块进行描述。

2.1 数据采集模块设计

本设计采用的AD转换芯片为AD9280,其工作原理为:AD9280利用多级流水线架构实现了低功耗高速数据转换;它将整个的转换精度分成几个低精度的单阶子转换器,各阶转换的结果在时序控制下通过内部数字校准电路实现了高精度的数据转换。AD9280的流水线构架使得它既工作在时钟的上升沿又工作在下降沿。将AD9280的工作模式选择好以及驱动电路配置好后,即可上电使芯片正常工作,芯片正常工作后只需在每个时钟周期读取ADC的数据输入端口即可[8⁃9]。AD9280的工作时序图如图2所示。

图2 AD9280工作图

数据完成A/D转换后将由一个数字滤波模块处理。数字滤波采用8点滑动均值滤波。滑动均值滤波的原理为:把N个采样数据设成一个列队,列队的长度固定为N,采样数据按照先进先出的方式进入列队,每进行一次新的采样,就把采样结果放入队尾,而扔掉原来队首的一个数据,这样在列队中始终保持着N个“最新”的数据。计算滤波时,只要把队列中的N个数据进行平均,即可得到新的滤波值。滑动均值滤波法对周期性的干扰有良好的抑制作用,对信号的平滑度高,适用于高频振荡系统。

如图3为利用Quartus Ⅱ软件自带的嵌入式逻辑分析仪抓取到的滤波前后的信号波形。从波形可以看出,信号经过滤波后消除了大部分毛刺抖动误差,使信号波形趋于标准平滑[10]。在Quartus Ⅱ开发软件中设计生成的A/D输入滤波模块如图4所示。

该模块共有三个输入信号,一个输出信号。clk25m为时钟输入信号,rst为复位信号,AD_in[7..0]为A/D芯片的8位数字输出信号,data_out[9..0]为滤波后的输出信号。

图3 滤波前后的信号波形

图4 滑动均值滤波模块

2.2 快速傅里叶分析模块设计

在现代科学技术发展的众多领域中经常会用到信号处理技术,对信号处理的分析主要有两个方面,一个是在时域里对信号进行分析,一个是在频域里对信号进行分析,快速傅里叶变换(Fast Fourier Transform Algorithm,FFT)是经常用到的一种方法。快速傅里叶变换是由离散傅里叶变换(Discrete Fourier Transformation, DFT)发展而来,它是DFT的一种快速算法[11]。本设计中的FFT模块是在Quartus Ⅱ开发软件中的Mege Wizard Plug⁃In Manager中定制的。定制的FFT运算模块的输入数据位数为10位,旋转因子为10位。生成的FFT运算模块如图5所示。

图5 FFT运算模块

FFT运算后的结果将被写入一片FIFO存储器中,当FIFO存储到设定的上限值时,便向串口通信模块产生一个请求信号,通知串口通信模块此时可读取FIFO数据。FIFO的设定上限值根据系统的FFT运算点数设定,设计上不能过于接近FIFO的总深度。这是由于在串口通信模块响应这一读取请求信号时,并在FIFO中进行读取分析结果的过程中,FPGA仍在控制进行数据的采集、分析和存储。此时若设定上限值过于接近FIFO的总深度,将会发生FIFO写入溢出的错误,这时部分分析结果将会被丢失。为了避免写入溢出错误的发生,本系统中将FIFO芯片的半满信号作为设定的写入上限,当FIFO存储器被写满其容量的一半时,FPGA便向串口模块产生一个请求数据读取信号。FIFO存储器的其他功能信号有:读写数据信号q/data;读写使能信号rden/wren;读空写满标志信号empty/full。分析结果data在写使能有效时按照写时钟往FIFO里面存储,在读使能有效时,缓冲数据按照读时钟从q数据输出总线上读出[12]。其模拟仿真图如图6所示。

图6 FIFO控制模块仿真图

在A/D采样测试准确以及FFT IP核模块仿真正常后,将系统整体连接好进行整体测试。系统采样频率为25 MHz,FFT分析点数为512点,因此可得频谱分析分辨率为48.8 kHz。系统实测分析结果如图7所示,所测输入模拟信号为4.88 MHz的正弦波,测试结果与信号发生器中生成的标准信号一致,系统分析结果准确。

图7 系统实测分析图

3 结 语

本文完成高速数据采集、FFT分析系统的FPGA设计,该系统设计电路简单、体积小,便于携带,可对工作现场的各类模拟信号进行高速采集和FFT分析。利用Quartus开发工具和VHDL硬件描述语言对FPGA进行现场设计、仿真和试验验证,便于设计的修改和功能优化,很大程度上缩短了开发产品的设计周期。由于FPGA还具有在线编程的特点,这使得开发者可以根据现场变化的复杂情况,对FPGA的内部逻辑控制部分进行修改,进一步增强了系统实际应用的方便性和灵活性,经试验测试设计达到了满意的测量、分析效果,且分析结果较为准确,是一种较为理想的高速数据采集、FFT分析的解决方案。

参考文献

[1] 肖祖胜,程明.基于FPGA的数据采集分析系统设计[J].电子技术应用,2009(3):49⁃54.

[2] 马建民,周长城.数据采集与处理技术[M].西安:西安电子科技大学出版社,2005.

[3] 杨真理.基于FPGA的数字系统设计[J].中国科技信息,2009(17):128⁃138.

[4] 马军.高速高性能数据采集系统的实现方法[J].数控技术,2007(9):130⁃131.

[5] WEI Jian⁃min, YANG Yong⁃ming, GUO Qiao⁃hui. Design of real⁃time ECG signals processing system based on FPGA [J]. Journal of Electron Devices, 2005(3): 581⁃588.

[6] Compaq Computer Corporation. Universal serial bus specification [M]. Revision 2.0. USA: Compaq Computer Corporation, 2000.

[7] 万耀,李小清,周云飞.基于FPGA的多通道数据采集系统设计[J].微计算机信息,2007(2):199⁃201.

[8] 徐海军.FPGA在高性能数据采集系统中的应用[J].计算机技术与应用,2005(1):62⁃64.

[9] 王振华.基于FPGA的超高速数据采集系统的开发[D].北京:清华大学,2006.

[10] 胡广书.数字信号处理:理论算法和实现[M].北京:清华大学出版社,1997.

[11] 付博.基于SoC的实际成像系统中的FFT处理器的设计[D].北京:中国科学院计算机技术研究所,2004.

[12] 蔡可红.基于FPGA的FFT设计与实现[D].南京:南京理工大学,2006.

推荐访问: 数据采集 分析 设计 系统 FPGA