基于DSP与FPGA的实时功率谱分析仪

2015-06-07 10:47盖淑萍林楠森周基阳徐声伟刘军涛蔡新霞
仪表技术与传感器 2015年2期
关键词:谱分析实时性线程

周 权,盖淑萍,林楠森,周基阳,徐声伟,刘军涛,蔡新霞

(1.中国科学院电子学研究所,传感技术联合国家重点实验室,北京 100190;2.中国科学院大学,北京 100190)



基于DSP与FPGA的实时功率谱分析仪

周 权1,2,盖淑萍1,2,林楠森1,周基阳1,2,徐声伟1,刘军涛1,蔡新霞1,2

(1.中国科学院电子学研究所,传感技术联合国家重点实验室,北京 100190;2.中国科学院大学,北京 100190)

设计了一套实时功率谱分析系统,主要用于信号的实时功率谱分析。采用DSP浮点芯片TMS32C6713作为系统的主处理单元,负责进行功率谱分析;FPGA芯片 Spartan xc2s200为主控制单元,并通过CY7C68013 USB芯片与基于LabVIEW的上位机进行通信。为了保证系统的实时性,在DSP中使用了实时操作系统内核DSP/BIOS.它提供了抢占式多线程、硬件抽象、与寄存器配置等功能。 分别采用频率为25 Hz、100 Hz的正弦信号对该系统进行标定。

DSP;FPGA;LabVIEW;功率谱分析;实时性;DSP/BIOS

0 引言

功率谱分析在现代工业中有着极为广泛的应用[1-3],如石油探测、噪声分析、机床故障判断等。针对许多应用中对功率谱分析的实时性要求,针对工业中常见信号的特征,设计了该系统,该系统在诸多工业应用的功率谱分析中是可以通用的。

以TI DSP浮点芯片TMS32C6713为主处理单元,FPGA芯片 Spartan xc2s200为控制单元,使用CY7C68013 USB芯片与基于LabVIEW的上位机进行通信。同时系统使用了实时操作系统内核DSP/BIOS.DSP/BIOS是为集成开发环境CCS开发的一个尺寸可伸缩的实时内核,是为需要实时调度与同步而设计的,提供了抢占式多线程,硬件抽象,与寄存器配置等功能[4]。

1 功率谱分析方法

系统的功率谱分析采用了非参量方法。具体流程是先使用汉明窗对信号截断为若干段长为L的子信号段,然后对各子信号段分别进行功率谱估计,最后对各信号段的功率谱取算数平均值。对长为L的子信号段XL[n]的周期图功率谱估计方法如下:

(1)

(2)

(3)

2 系统设计

2.1 系统整体设计

系统整体设计如图1所示,FPGA控制ADC芯片AD9240进行采样,当ADC采满512×14 bit 数据之后通过通用I/O口(GPIO)中断DSP芯片,DSP芯片通过增强型DMA(EDMA)将数据读入DSP进行功率谱估计,DSP处理完数据后将数据交给FPGA,FPGA再通过USB芯片CY7C68013将数据传输给上位机显示。

图1 系统结构

2.2 滤波放大电路

系统放大滤波电路是由 ADA4004-4 组成的滤波放大电路,由四阶带通组成,通带范围为 10 Hz~3 kHz,放大倍数为1 000倍,如图2所示。

图2 带通滤波放大电路

2.3 DSP模块

DSP模块是整个系统的处理核心。为了保证系统的时序,使用了实时操作系统内核DSP/BIOS进行任务调度。在DSP/BIOS中,编写了3个线程:读A/D数据的线void AD(),做FFT的线程void FFT(),写USB的线程 void USB_Write()。3个线程之间通过Semaphore通信。

下面以void USB_Write()线程为例说明:

void USB_Write()

{

while(1)

{

SEM_pend(&fftComplish,SYS_FOREVER);//等待FFT的完成

usbWrite((float*)power,N>>1);//前面已经定义好的函数,将FFT后的数据传输走

SEM_post(&usbWriteComplish);//告诉其他线程FFT后的数据已经传输完成

}

}

ADC芯片由FPGA控制,并通过FPGA读取采样后的数据,当FPGA读满大小为512×14 bit的buffer后中断DSP,DSP的线程 void AD()通过EDMA从FPGA的buffer读取512×14 bit数据,读取完成后触发FFT线程。

FFT运算线程void FFT()负责对void AD()读入的512×14 bit数据进行FFT变换,并最后转化为功率谱。FFT模块是系统计算量最大的部分,考虑到系统的性能,使用库DSP67x.lib,调用它的库函数void DSPF_sp_cfftr2_dit(float* x,float* w,short n)进行基2 FFT计算。

当FFT线程完成后,会触发void USB_Write()线程,将功率谱分析的结果传输给FPGA,FPGA再将数据传输给由FPGA控制的USB芯片CY7C 68013。

2.4 FPGA模块

FPGA模块使用Verilog HDL (HDL:Hardware Discription Language)语言编写。FPGA采用Spartan2 系列xc2s200芯片。该模块是系统的控制核心,控制着ADC芯片与USB芯片,以及通过DSP的EMIF接口与DSP进行通信。

对于ADC芯片,FPGA通过接受用户在上位机设定的采样频率,为ADC芯片提供该频率的时钟信号,使ADC芯片工作在该采样频率下;同时在ADC时钟上升沿到来时读取一次数据ADC所采样的数据,并存放在FPGA内部,当FPGA采集完512×14 bit数据之后,中断DSP芯片,DSP芯片将数读走。FPGA传输数据给DSP的Verilog代码如下:

assign EXT_INT = (data_addr==511);//采完512个数后FPGA通过DSP芯片的外部中断引脚中断DSP芯片

reg[13:0] TED_o;

always @(CE[2] or TEA or dout)

if (~CE[2] && (TEA==4’b0000))

TED_o = dout;

assign TED = (~AOE) ? TED_o : 16’bz;//DSP芯片读取FPGA内部数据

USB芯片由FPGA芯片控制。当FPGA收到从DSP芯片传输过来的功率谱分析数据后就会将数据交给USB芯片的端点0进行传输,USB芯片将该数据传输给LabVIEW上位机显示。

2.5 USB模块

USB芯片采用了EZ-USB FX2 系列芯片之中的CY7C68013,该芯片符合USB 2.0标准,可以工作在USB 2.0的最大速度下。系统中,USB芯片工作在 slave FIFO模式下。

2.6 ADC模块

ADC芯片选择14 bit芯片AD9240,由FPGA为其提供时钟。

2.7 上位机模块

上位机软件采用LabVIEW编写,对功率谱估计的结果实时显示。首先,需要安装NI-VISA,NI-VISA是一个用来与各种仪器总线进行通讯的高级应用编程接口(API)[5-6]。安装完成之后,还需要安装USB设备驱动程序。之后,就可以在LabVIEW上实现与USB设备的通信。

3 系统标定

使用SPF20信号发生器产生频率分别为25 Hz、100 Hz,幅度为0.5 mV的正弦波信号对该功率谱分析系统进行标定 ,在上位机上对ADC采样频率设定为512 Hz.

图3为使用该系统对上述正弦信号功率谱分析结果。谱线高度为0.125 mW/Hz左右(由于有噪声,所以略有浮动),这与正弦信号的理论功率谱是吻合的,由此完成系统的标定。

(a)25 Hz正弦信号功率谱

(b)100 Hz正弦信号功率谱图3 LabVIEW显示的正弦信号的功率谱分析结果

4 结束语

利用DSP芯片与FPGA芯片设计了一套功率谱分析系统,并使用了实时操作系统内核DSP/BIOS,可以保证系统的实时性,完全可以满足对实时性要求很高的工业场合;同时该系统使用方便,成本较低,配合各类传感器,在工业的许多领域具有很好的使用价值。

[1] 李绍令,张磊,张漫,等.基于功率谱分析的机械故障免拆检测装置设计.仪表技术与传感器,2012(7): 21-23.

[2] 王峰,鞠文涛,胡亮,等 自适应FFT功率谱分析在涡街流量计中的应用.机床与液压,2008(10):116-118.

[3] 叶朋,王驰宇,李金桂.FFT功率谱分析技术在旋进流量计中的应用.中国测试,2009(2):70-74.

[4] Texas Instruments.TMS320C6000 DSP/BIOS 5.x Application Programming Interface (API) Reference Guide.www.ti.com,2013.

[5] 宗荣芳,田锦明.基于 LabVIEW 的海洋环境弱信号检测系统.仪表技术与传感器,2013(11): 35-37.

[6] 袁宝红,付奎,张德祥.基于FPGA和LabVIEW的USB数据采集与传输系统.仪表技术与传感器,2013(9):24-27.

DSP and FPGA-based Real-time Power Spectrum Analyzer

ZHOU Quan1,2,GAI Shu-ping1,2,LIN Nan-sen1,ZHOU Ji-yang1,2,XU Sheng-wei1,LIU Jun-tao1,CAI Xin-xia1,2

(1.State Key Laboratory of Transducer Technology,Institute of Electronics,Chinese Academy of Sciences,Beijing 100190,China; 2.University of Chinese Academy of Sciences,Beijing 100190,China)

Power spectrum analysis in the modern industry has very important significance and practical application value. A real time power spectrum analysis system was designed, mainly used for real-time signal power spectrum analysis. In this paper, a TI’s floating-point DSP chip TMS32C6713 was used as main processing unit, responsible for the power spectrum analysis. A Xilinx’s FPGA chip Spartan xc2s200 was used as main control unit, and communicated with the LabVIEW-based PC through Cypress’s USB chip CY7C68013. In order to ensure the real-time of the system, a real-time operating system kernel DSP / BIOS was used. It provides the functions of preemptive multithreading, hardware abstraction, register configuration, and so on. The sinusoidal signals with the frequency of 25 Hz and 100 Hz were adopted to calibrate the system.

DSP; FPGA; LabVIEW; power spectrum analysis; real-time analysis; DSP/BIOS

中国科学院战略性先导专项项目(XDA06020100);国家重大科学研究计划(2011CB933202);国家自然科学基金项目(61027001,61125105,61271147)

2013-12-25 收修改稿日期:2014-10-17

TP206.3

A

1002-1841(2015) 02-0026-03

周权(1989—),硕士研究生,从事电子通信以及仪器仪表的研究。E-mail:zq19891202@163.com

猜你喜欢
谱分析实时性线程
纳谱分析技术(苏州)有限公司
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
航空电子AFDX与AVB传输实时性抗干扰对比
Cr12MoV冷作模具钢渗铬层界面能谱分析
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
沉香GC-MS指纹图谱分析
基于AR双谱分析的电梯运行质量研究