APP下载

基于FPGA的矢量信号分析系统设计与测试*

2019-12-20叔晟竹吴校生王振瑜

传感器与微系统 2019年1期
关键词:矢量器件幅值

叔晟竹, 吴校生, 王振瑜

(上海交通大学 电子信息与电气工程学院 微纳米加工技术国家级重点实验室,上海 200240)

0 引 言

在微传感器、微谐振器等微机电系统(micro-electro-mechanical system,MEMS)器件中,处理电路需要同时获取被测信号的幅值和相位信息[1]。目前主要通过先进的矢量网络分析仪[2]获得这些信号信息。矢量网络分析仪成本高、体积庞大,应用局限性大,在一些微小器件的信号检测中,不利于系统集成。开发一种面向微小MEMS器件应用、便于系统集成的矢量信号分析廉价系统具有广泛需求。

本文研究并开发了一种基于现场可编辑门阵列(field programmable gate array,FPGA)的矢量信号分析集成系统。该系统采用高性能模/数转换器(analog-to-digital converter,ADC)模块将待测模拟信号数字化并采集到FPGA芯片,在FPGA中实现矢量信号分析等数据处理。这种方法结合FPGA快速信号处理的优势,同时,其结构简单、成本低且易于调试,非常适合用于开发这种快速信号处理集成系统。

1 矢量信号分析方法

1.1 总体设计

本文采用的矢量信号分析系统通过硬件模块完成被测模拟信号的数字化,在FPGA芯片中实现数字矢量信号分析,具体内容如图1所示,系统总体分为应用器件和矢量分析两部分。

图1 系统总体框图设计

应用器件部分主要包括压电谐振器及其驱动端和输出端。微谐振器的驱动信号需要幅值稳定和共振频率跟踪,通过采用自动增益控制(automatic gain control,AGC)实现振幅稳定,采用锁相环(phase-locked loop,PLL)实现跟踪频率谐振点。AGC以被测信号的幅值作为放大器增益的调节依据,来实现稳幅。PLL以被测信号的相位信息作为依据,来调节直接数字式频率合成器(direct digital synthesizer,DDS)信号发生器输出信号的频率。

矢量分析部分包括信号采集与信号处理。首先,DDS产生同频率的参考正交信号M1,M2,使用A/D转换模块分别采集被测信号和参考信号,实现信号数字化并输出到FPGA芯片,运用FPGA强大的数据并行处理能力进行数字信号处理,运用Verilog语言编程实现数字矢量信号分析技术,矢量分析采用数字锁定技术来实现,从而获得待测信号幅值与相位的瞬变特性。经过进一步数据处理,FPGA输出幅值和相位控制信号给应用器件部分,用以控制MEMS微传感器的工作状态。

本系统采用DDS芯片产生信号,相比于使用FPGA内部DDS软核(IP)产生信号的方式,可以更好实现驱动信号与参考信号的完全同步,同时也减少了系统资源占用。

1.2 数字锁定矢量信号分析技术

矢量信号分析有多种实现方法,目前,主流采用数字锁定技术[3]。数字锁定技术的基本结构包括信号信道、参考信道、乘法器和低通滤波器(low pass filter,LPF)等。乘法器是用参考信号r(t)与待测信号x(t)进行乘法运算,从而实现频谱迁移,再经过低通滤波器滤除倍频分量和噪声,其输出对输入信号的幅度和相位都敏感,达到了同时解调幅值与相位信息的目的。

DDS信号产生模块可以同时输出同相分量和正交分量。正交矢量型锁定放大器的两个参考信号是同频同幅,但相位相差90°,在同相通道中参考输入信号的相移为θ(0°~360°),正交通道中参考输入信号的相移为θ+90°。正交锁定算法流程如图2所示。

图2 正交锁定算法流程

设待测信号为x(t)=Vsin(ωt+θ)+n(t)。

参考信号为rs(t)=sinωt,rc(t)=cosωt。

同时,利用求得的开方求得的值去除I,Q可得到相位差对应的sin和cos值,使用反正切算法就可以求出相位差θ=arctan(Q/I)。

以上公式算法均可在FPGA这个通用的硬件平台上实现,其中需要的乘除法,开平方与反正切均可以使用软核IP进行运算,大大提高了开发效率。

2 系统硬件设计

2.1 FPGA平台

FPGA可以达到数百个I/O接口,可以很容易使用不同I/O接口连接外设满足本系统需要连接很多外设的需求。FPGA同时包含单片机和DSP软核,并且I/O数仅受FPGA自身I/O限制,所以单片机和DSP能实现的功能,FPGA一般都能实现。

本系统采用赛灵思(Xilinx)公司Spartan—6系列的XC6SLX25型号芯片[4]。Spartan—6系列实现了性价比与功耗上的平衡,设计开发人员能够将精力集中到创新工作上。

FPGA与A/D采样模块接口设计采用与ADC模块接口匹配的ASP—134603—01板对板连接器。通过该连接器给ADC子板供电及通信。主要包括AD7960器件工作模式设置引脚EN[3︰0]、转换控制引脚CNV±,LVDS数据输出引脚D±,LVDS缓冲数据输出引脚DCO±,LVDS时钟输入引脚 CLK±,子板电源输入引脚VIN等。

2.2 A/D转换模块

针对需要检测的MEMS微传感器,用于采集信号的ADC需要有够高的采样精度和足够大的采样频率,在本系统中,ADC采用Analog Devices公司的 AD7960芯片。AD7960是一款18位、最高吞吐速率5MSPS、电荷再分配逐次逼近型(SAR)模数转换器[5]。SAR架构提供无与伦比的噪声性能(信噪比(signal to noise ratio,SNR):99 dB)和线性度(积分非线性(INL):±0.8LSB(典型值),差分非线性(differential non-linear,DNL):±0.5LSB(典型值))。本系统设计了用于信号采集的A/D转换PCB,可同时进行待测信号与两路参考正交信号的A/D转换与FPGA采集。

2.3 DDS模块

根据检测系统需要,信号产生模块需要产生三路同频率且其中两路始终保持相位差90°的信号。为了检测系统对幅值与相位的解调能力,信号产生模块也需要提供幅度、相移可控的信号。

本系统的信号产生模块采用AD9959芯片,AD9959含有4个DDS,提供各通道独立的频率、相位和振幅控制。因为所有通道共用一个系统时钟,因此固有的同步,也支持多个设备的同步。AD9959采用先进的数/模转换器(digital to analog converter,DAC)技术,提供低高性能低功耗。该器件集成了四个高速10位DAC具有优良的宽带和窄带SFDR。每个通道有一个专门的32位频率调谐字,14位相位偏移,和一个10位幅度调节输出。AD9959可以满足本系统功能实验的全部需求,通过STM32F103单片机发送控制信号给AD9959模块可以输出幅度、频率及相移可调模拟正弦波。

3 基于FPGA的矢量信号分析程序设计

3.1 FPGA程序设计

本系统的软件部分通过Verilog-HDL语言在FPGA平台上实现,主要任务包括ADC转换数字信号的采集、正交矢量分析锁定算法的实现:

ADC数字信号采集主要包含:接口的配置、对FPGA的管脚约束、FPGA与ADC之间通信差分信号转换的实现以及ADC信号采集,本系统的ADC采用回波时钟模式,即采用FPGA发出的时钟(clock,CLK)信号工作,可以很好地实现FPGA主机与ADC之间的同步,FPGA采用100 MHz的时钟信号,ADC采用4 MHz采样率,待测信号的中心频率设置为200 kHz,因此一个信号周期可以有20个采样点,能够非常完好的还原信号。

3.2 系统软件仿真测试

仿真分为功能仿真和时序仿真两种。1)对程序进行的仿真,验证电路的功能在理想情况下是否符合设计初衷的要求;2)考虑电路延迟与布线延迟,看电路能否满足时序要求[6]。采用Modelsim 对FPGA设计电路进行仿真。测试向量(Testbench)是用来测试源代码所施加的激励信号。源代码编好后,以一系列激励信号作为源代码的输入,查看输出信号正确与否,进而验证源代码的正确性。

本文使用ISE与Modelsim联合仿真功能,将ISE中芯片库参数,IP核转化成Modelsim识别的库文件,进行算法的功能验证。图3为Modelsim 仿真。待测信号I与正交参考信号均采用ISE提供的DDS IP核产生,并参考ADC采样率对产生的正弦波进行采样。通过M×S,并对其低通滤波可实现待测信号同相直流分量与正交直流分量的提取。最终经过一系列算法模块后解调出幅值与相位信息。

图3 Modelsim功能仿真

4 实验测试与结果

根据系统总体框架设计,用于实际测试的系统的硬件实物结构如图4所示,FPGA平台通过JTAG与电脑进行信息传输,包括FPGA配置文件的烧写与矢量信号分析结果的传输。系统左半部分为应用器件,包括压电谐振器、DDS模块,AGC,PLL,功率放大等电路;右半部分为矢量信号分析电路,主要为A/D转换模块、DDS模块、FPGA平台。

图4 硬件系统实物

4.1 信号幅值解调测试结果

通过改变输入待测信号幅值来测量本检测系统对幅值检测的能力。本实验输入信号均由AD9599产生,产生信号频率为200 kHz,输出的幅值由STM32单片机进行控制,幅值控制字(0~1023)来控制AD9599输出0~523 mV的幅值。本实验进行了幅值扫描,步长设置为100控制字,对应50 mV,分别运用TDS2024B示波器和FPGA检测系统对幅值进行检测。

FPGA实验实测数据与示波器实测数据拟合如图5(a)所示,可见两个系列数据相关度达到0.998 1,FPGA测得数据的零点漂移在0.585 1 mV。FPGA实验测试数据误差如图5(b)所示,可以看出误差控制在较小的范围内。

图5 矢量信号测试系统幅值标定实验

4.2 信号相位解调测试结果

通过改变输入待测信号幅值来测量本检测系统对相位解调的能力。本实验输入信号均由AD8599产生,输出的相移由STM32单片机进行控制,相位控制字(0~16385)来控制AD8599输出0°~360°的相移。分别运用示波器和FPGA检测系统对幅值进行检测。示波器采用TDS2024B型号,采样率200 MHz,时间测量精度可达到2 ns,导出的测量结果可以很好地作为实验参考数据。

FPGA实测的数据通过在线逻辑分析仪(ChipScope)在线测量,ChipScope可以显示实时的相位解调出的数据。根据 CORDIC IP核的定义,反正切后输出的为全象限、有符号的二进制弧度值,输出16位数据,其中最高位为符号位,2位整数位,13位小数位。经过数值转换可以求得FPGA测试的相位差值。

FPGA实验实测数据与示波器实测数据拟合曲线如图6(a)所示,可见两个系列数据相关度达到0.999 1,FPGA测得数据的零点漂移在-0.060 9°。FPGA实验实测数据与示波器实测数据误差百分比如图6(b)所示,从数据可以看出FPGA实验测试的数据误差很好地控制在±1 %以内。

图6 矢量信号测试系统相位标定实验

5 结 论

本文设计的数字矢量信号分析系统电路简单、抗干扰能力强、精度高、处理速度快,可以很方便地测出被测信号的幅值与相位特性。经过实验测试,本文设计的基于FPGA的矢量信号分析系统解调出的幅值和相位信息与实际情况理论值误差很小,具有良好线性度,满足MEMS器件应用需求。

猜你喜欢

矢量器件幅值
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
AFM轻敲模式下扫描参数对成像质量影响的研究
《液压与气动》常用单位的规范
基于S变换的交流电网幅值检测系统计算机仿真研究
基于矢量最优估计的稳健测向方法
正序电压幅值检测及谐波抑制的改进
三角形法则在动态平衡问题中的应用
毫米波高频器件高效加工方法
旋涂-蒸镀工艺制备红光量子点器件