高速数据采集系统 [一种基于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"Z");
when state1 =>
conv_n
conv_n"Z");
when st22 =>
conv_n"Z");
when state2 =>
conv_n"Z");
when state3 =>
conv_n"Z");
when st4 =>
conv_n"Z");
when st44 =>
conv_n"Z");
when state4 =>
conv_n"Z");
when st444 =>
conv_n"Z");
when state5 =>
conv_n"Z");
when others =>
conv_n"Z");
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
作者简介
李玮,山东省广播电视局昆嵛山转播台,工程师。