一种基于DSP+FPGA的高速数据采集系统设计

时间:2022-06-23 07:04:59

一种基于DSP+FPGA的高速数据采集系统设计

摘要:结合高速DSP和FPGA各自的特点,设计了一套高速数据采集系统。以浮点DSP为采集系统的核心,对采集到的数据进行滤波及FFT变换等处理。FPGA作为外设,主要对A/D芯片、USB芯片等进行控制。该系统电路结构简单、功耗低、数据传输速度快,可用于电压、电流等模拟量的采集及数字信号的采集。

关键词:数据采集;浮点DSP;FPGA;USB

1引言

随着信息时代的到来,高速数据采集技术已经成为现代信息技术发展的一个必要环节。在工业生产和科学技术研究的各行业,往往需要对电压、电流、温度等信息进行采集,而在无线电、音频处理、图像处理等领域,更是要求数据采集系统具有高速、高精度、高实时性的特点。随着数字技术的发展,一些高性能的DSP(Digital Signal Processor)能够满足算法结构复杂、运算精度高、寻址方式灵活且通信性能强大的要求,而FPGA(Field Programmable Gate Array)更适合于数字逻辑的处理。因此本文设计了一种基于TMS320VC33 DSP和EP2C5Q208 FPGA的高速数据采集系统,通过USB(Universal Serial Bus)接口与PC机进行通信,可以方便的将数据传到上位机。

2系统组成

高速数据采集系统结构框图如图 1所示。该系统以浮点型DSP和FPGA为控制核心,其中DSP主要完成从FPGA中提取数据,并对数据进行FFT变换,对信号的频率分析提供支持。FPGA作为DSP的外设,主要完成对A/D芯片、USB芯片的控制、与DSP的并行通信及数字量信号的采集等。

为保证数据运算速度,本文选择的DSP为TI公司的TMS320VC33,具有150MFLOPS的运算能力,FPGA采用Xilinx公司的EP2C5Q208,可以满足系统的I/O需求和门数要求。高速A/D芯片采用ADI公司的AD7938,该芯片可以同时采样8路模拟量信号,具有两个转换核,并行输出数据,实现了高速数据的采集与传输。为了更方便的与PC机通讯,设计选用 了PHILPS公司生产的ISP1581,完全符合USB2.0规范。

3模块电路设计

3.1 模拟量调理电路

在数据采集系统中,对模拟量的采集过程中往往需要对信号进行放大、衰减及偏置,使输入信号满足A/D芯片的幅度要求,因此模拟量信号的调理是影响系统性能的主要因素之一。本文采用TI公司生产的LM124运算放大器构建偏置及滤波电路,该芯片具有低失调电压和漂移、低输入电压及电流噪声、低偏置电流及高带宽等优点。偏置电路的偏置电压采用芯片LM4040给出稳定的-2.5V,电路设计如图 2所示。为了滤除电路及传感器带来的噪声,利用运算放大器建立了二阶有源低通滤波器,滤波器的带宽可以通过更换滤波器的电阻和电容的大小来定。

3.2 A/D转换模块电路

利用AD7938作为采样电路的转换芯片,如图 4所示,其中AD7938的控制信号CS、RD、WR、W/B、CONVST及其输出信号BUSY都接FPGA,由FPGA的数字逻辑对其进行控制,其8位数据线也直接接到FPGA的I/O口。

3.3 USB模块接口电路

USB目前已逐渐成为现代数据传输的发展趋势,为多点数据采集提供了很大的支持,其传输速率可达到480Mb/s,传输方式有四种:控制传输、同步传输、中断传输及批量传输,而且通过Hub扩展最多可接127个外设,具有成本低、功耗低、易使用等优点。本文选用的ISP1581完全符合USB2.0规范。如图5所示为ISP1581模块原理图,该芯片的控制引脚、数据总线及地址总线都与FPGA的I/O相连。

3.4 DSP与FPGA的接口电路

DSP与FPGA之间通过总线方式连接,接口原理框图如图 6所示。DSP的数据总线宽度为32位,地址总线宽度为22位,将FPGA作为DSP的外设,地址的分配为:040,0000H~040,000FH,通过STRB、R/W信号及PAGE1信号的组合逻辑对FPGA进行读/写操作。

4软件设计

软件设计包括FPGA的软件设计和DSP的软件设计,其中DSP的软件在CCSV3x4x环境下利用C语言进行开发,在此就不再赘述。FPGA的软件开发环境是ISE7.1软件平台,利用VHDL硬件描述语言进行开发。根据FPGA完成的功能,按照模块可以划分为与DSP接口模块、USB芯片控制模块及A/D控制模块。其中A/D控制模块按照AD7938的时序利用状态机实现其控制,其中状态描述线程的程序如下。

State_description: process(current_state)

begin

case current_state is

when state0 =>

conv_n

write_n

latch

when state1 =>

conv_n

read_n

AD_DATA

when st2 =>

conv_n

read_n

AD_DATA 'Z');

when st22 =>

conv_n

read_n

AD_DATA 'Z');

when state2 =>

conv_n

read_n

AD_DATA 'Z');

when state3 =>

conv_n

read_n

AD_DATA 'Z');

when st4 =>

conv_n

read_n

AD_DATA 'Z');

when st44 =>

conv_n

read_n

AD_DATA 'Z');

when state4 =>

conv_n

read_n

AD_DATA 'Z');

when st444 =>

conv_n

read_n

AD_DATA 'Z');

when state5 =>

conv_n

read_n

AD_DATA 'Z');

when others =>

conv_n

read_n

end case;

end process;

5结束语

本系统采用浮点型DSP TMS320VC33作为主处理器,利用FPGA强大的数字逻辑功能,简化了硬件的设计,利用USB2.0与上位机进行通讯,具有数据采集速度快、功耗低、易于使用等优点。

参考文献

[1] 周立功. USB固件编程与驱动开发[M]. 北京: 北京航空航天大学出版社, 2003.

[2] 杨永东, 曾庆立. 基于FPGA+DSP的高速数据采集系统设计. 吉首大学学报[J]. 2009, 30(4)

[3] 牛国朋, 袁洪, 范建军. 一种基于FPGA和DSP的高性能PCI数据采集卡设计[J]. 微计算机信息, 2006: 137-139

作者简介

李玮,山东省广播电视局昆嵛山转播台,工程师。

上一篇:利用重新排序型控制器提升DDR SDRAM的效率 下一篇:Intersil:孜孜不倦致力于产品的推陈出新