APP下载

基于FPGA的数字锁相电路设计

2018-05-14

山西电子技术 2018年2期
关键词:锁相程控串口

杨 晓

(山西工商学院,山西 太原 030006)

随着科学技术的不断进步,测量技术也得以日益完善,同时对检测技术的要求也在不断提高。速度快慢和精度的大小是测量技术的两个核心模块,锁相放大技术在这两个方面都能够很好的实现,因此成为了微弱信号检测领域的一种有效手段并得到广泛的应用[1]。

本文提出了一种数字锁相电路的设计,利用信号的相关性实现得到待测信号的幅值和相位信息的目的。电路主要包括程控放大模块、AD采集模块、互相关运算模块、串口传输和LabVIEW模块。各模块经测试分析具有较高的可靠性,能够达到运算要求。

1 锁相技术基本原理

锁相放大技术是利用被测信号和参考信号的互相关原理对信号进行窄带化操作,去除无用的噪声信号,提取有效信息的一种检测手段。为了获得输入信号的幅值和相位值,这里采用数字乘法累加器的方式来实现[2,3]。互相关运算原理如图1。

图1 互相关运算原理图

设计首先将待测信号通过AD转换电路进行模数转换,然后将信号传输到FPGA的内部进行互相关运算。设待测信号为s(t),AD采样电路的频率为fN,对待测信号进行整周期采样,设每个周期的采样点数为N,那么在P个周期时可得采样的点数共有M=N·P个[4]。其表达式如下:

(1)

其中,θ为待测信号的初相位,A为幅值量。

产生的参考信号和待测信号s(t)是同频的,设正弦参考信号为rs(s):

(2)

其中,B为参考信号的幅值。对s(k)和rs(s)进行互相关运算,并进行整数个周期的采样,最后能够得到两个信号的运算结果函数为:

(3)

通过上面的结果值可以看出,待测信号的初始相位θ的未知性能够对结果造成影响,因此需要消除这一未知量,设计采用两路待测信号分别进行互相关的方式[5]。设余弦参考信号为rc(k):

(4)

对s(k)和rc(s)进行互相关运算:

(5)

进行整数个周期的采样,最后能够得到两个信号的运算结果函数为:

(6)

由式(6)和式(3)可得:

(7)

(8)

由式(7)、式(8)可得,当参考信号的幅值B为1时,能够直接得到待测信号的幅值A和待测信号与参考信号之间的相位差θ。

2 数字锁相电路的硬件设计

首先通过频率累加技术DDS在FPGA内部产生一个方波信号,其频率和占空比均是可调的,并以一个光耦合隔离电路的输出来对高压驱动电路进行驱动。外部待处理信号首先经过程控放大电路和电压跟随电路以后,再通过AD采集端口进行数据的采集并传输到FPGA内部,在FPGA中将该路信号与FPGA内部产生的正弦参考信号、余弦参考信号、直流参考信号分别进行乘累加运算,然后将运算结果通过串口传输到上位机LabVIEW中完成数据的拼接工作并将数据保存。

图2 硬件电路整体设计

电源电路中既有数字电源又包括模拟电源,设计采用AMS1117_3.3、AMS1117_1.2、AMS1117_2.5分别为串口电路以及FPGA内部电路进行供电,采用供电电源为模拟部分产生+5V的电压供电。

为了提高信号的抗干扰能力以及电路与地之间的串扰,在电路中设计了光耦合隔离电路,芯片采用高速光耦6N135,使电路板能够与高压驱动电路板隔离开。

由于待处理信号较为微弱,在进行AD转换前需进行放大处理,电路采用具有较高的输入阻抗AD8250芯片实现对待测信号的程控放大,电路中采用的是三个AD8250级联的方式,选择了该芯片的简单增益放大模式,并通过FPGA对放大倍数进行调整,该设计能够实现1~1 000倍之间的放大倍数调整。在放大电路与AD采集电路之间,设计增加电压跟随电路来保证信号的完整性,选择OP27放大器能够实现预期要求。

AD转换电路实现模拟信号到数字信号的转换,在设计中根据完成锁相放大运算的精度要求,每个信号周期至少需采集64个点,因此AD的采样率需为3.125 MHz左右。选择ADI公司的AD9220芯片能够满足设计需要,该芯片的最高采样率为10 MHz,转换精度为12位,信号可以选择差分或单端方式输入。

实现信号解调功能的FPGA芯片采用Altera公司生产的Cyclonc系列,其型号是EP3C16Q240C8N。时钟电路采用的是50MHz的CETECJ有源晶振,它具有信号稳定以及信号质量好的优势。采用JTAG和AS两种方式进行下载配置,JTAG模式主要用于对程序和芯片的调试,AS模式将程序下载到FPGA的外部存储器EPSC16。

3 FPGA 数字锁相软件程序设计

该部分主要包括基于FPGA 的DDS 信号发生器的设计、A/D 采集控制模块的设计、数字锁相乘累加程序的设计、基于NIOSⅡ与上位机 LabVIEW 串口通信程序的设计以及 LabVIEW 程序的设计。

3.1 信号发生模块设计

DDS技术的主要作用是通过改变波形存储器中的数据,产生任意频率和任意精度的波形信号。首先通过一个时钟fclk来控制累加寄存器中的数值,使之与频率控制字K不断累加,再经过数模转换和低通滤波处理得到所求得信号频率fout,计算公式如下:

fout=fclkK/2N.

(9)

其中,N为累加寄存器的位数。

该设计中通过PLL锁相环倍频产生200 MHz的时钟作为DDS模块时钟,累加寄存器为2位,频率控制字为1位。

正余弦参考信号的产生通过调用FPGA自带的ROM宏功能模块实现,将波形数据通过MATLAB离散化产生64个点以后保存为.mif文件,ROM通过按地址寻址的方式将存储的波形在时钟上升沿时输出。

3.2 AD采集控制模块设计

设计采用AD9220作为AD采集模块的芯片,只需要为它提供一个正确的时钟,该芯片就能完成所需工作,即每个周期完成64个点的采样。设计采用同步电路的方式来避免信号采集时毛刺造成的干扰,即需要保证毛刺不出现在沿口。由于毛刺出现的持续时间短,仅为几纳秒,因此出现在沿口的概率是很小的,该方式基本能够避免毛刺对采集数据的影响。

3.3 基于 FPGA 的数字锁相乘累加程序的设计

锁相功能的实现主要依赖于该部分的乘累加模块。设计通过将采集信号与FPGA内部产生的同频率正余弦参考信号互相关运算完成对信号的解调。在 FPGA 中利用本身的宏功能模块ALTMULT_ACCUM(Multiply-Accumulate)来实现乘累加功能。

输入端口A为AD采集得到的12位无符号待测信号,端口B为10位有符号的参考正弦或者余弦信号。在accum_sload端为0时,该模块进行乘累加运算,变为1时将运算结果输出。设计通过计数器对累加的时间进行控制。运算完成后取出结果的高32位为有效位通过串口传输到上位机并将结果清零。

3.4 FPGA向 LabVIEW 的数据传输

本设计中 FPGA 通过串口将乘累加结果的直流项、正弦互相关和余弦互相关每路32位通过串口RS232传输到LabVIEW中,然后在LabVIEW中进行数据的拼接。

首先采用VISA库进行串口的配置,将串口的波特率设为38 400 bit/s,数据位为8位,停止位为1,VISA资源名称为通信COM口的选择。然后进入主程序,检测帧头帧尾并将有效的字节数据读取出来。主程序包括在一个while循环中,并利用VISA读取缓存数据。下一步再对有效的字节数据进行重新拼接,这里利用数组将字节取出并拆分再利用整数拼接的方式,将数据从高位到地位拼接起来。最后将处理完成的数据保存起来通过MATLAB进行运算处理。

4 实验验证及分析

实验验证部分主要包括程控放大模块放大倍数的测试、A/D 采集模块采集功能的测试和 FPGA 内部乘累加模块的测试。

1) DDS技术测试

DDS信号发生器是锁相放大运算的关键模块之一,设计通过数字信号发生器和示波器对FPGA产生的方波信号的精度进行。首先通过QuartusⅡ 编写测试程序使DDS产生50KHz的方波信号并下载到电路板,然后将其输入到示波器的通道一,同时使用信号发生器产生同样的信号并将其输入至示波器的通道三。将两个通道的信号调整至相对静止后,其显示如图3。

图3 DDS产生方波信号

由图可见,两信号频率一致,相差值仅为0.518 Hz,误差值较小,满足要求。

2) 程控放大的测试

利用数字信号发生器产生一个正弦信号作为程控放大的输入,其峰峰值设为200 mV,偏置为100 mV,频率是100 kHz。信号放大后将结果输出到示波器,放大倍数设为5倍,其结果如图4所示。

由图4可见,经放大后的输出结果分别为1.01 V。

3) 将AD9220的采样时钟频率设定为3.125 MHz,然后通过数字信号发生器产生频率大小为50 kHz,峰峰值为3 V的正弦信号作为输入,AD的采样结果通过逻辑分析仪进行观测,其结果如图5。

其中采样时钟为ad_clk,ad_data为直接输入进来的信号,ad_data_r为经过同步电路处理后的信号,通过图5能够看出A/D电路可以准确采集波形数据。

4)乘累加模块的测试

分别对参考信号和乘累加的IP核进行测试。首先是生成ROM的宏功能模块,建立.mif文件并存放64个10位的数据,该数据为两个周期的余弦波形,然后利用Verilog语言编写程序,为ROM提供6位地址和3.125 MHz的时钟。定制乘累加IP核ALTMULT_ACCUM,将两个累加器a、b作为两个输入端,其中a每次累加1,b每次累加2;最后分别在QuartusⅡ中编写测试程序,进而通过Modelsim-Altera6.6d软件进行功能仿真。结果如图6所示。

图4 程控放大结果

图5 AD采集功能测试

图6 乘累加器功能测试

通过以上各模块的测试分析可知,锁相放大电路的程控放大模块、A/D采集模块和FPGA内部乘累加模块均能够正常工作,且结果具有较高的准确性,各模块互相配合实现锁相放大功能。

5 结束语

提出一种正交矢量锁相放大电路的设计,以FPGA作为数据处理模块,实现待测信号处理并求得其的相位和幅值信息,并完成AD采集、程控放大、数据处理、串口传输等模块的硬件电路的设计。该电路经实验验证能够正确有效地处理待测信号实现锁相放大功能,获得准确数据实现科学计算。

[1] 许文佳.基于FPGA的数字锁相放大器的设计与研究[D].长春:吉林大学,2012.

[2] 赵俊杰,郝育闻,郭璐璐,等.数字锁相放大器的实现研究[J].现代电子技术,2012,35(3):191-195.

[3] 吕润发.基于FPGA数字锁相实现的弹光调制测旋光技术研究[D].太原:中北大学,2017.

[4] 陈光威.弹光调制双闭环稳定与控制技术的研究[D].太原:中北大学,2016.

[5] 李刚,张丽君,林凌,等.一种新型数字锁相放大器的设计及其优化算法[J].天津大学学报(自然科学与工程技术版),2008,41(4):429-432.

猜你喜欢

锁相程控串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于Multisim10和AD603的程控增益放大器仿真研究
程控增益射频宽带放大器
基于STC89C52的程控移相器的设计
基于双dq锁相技术的三电平SVG研究
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
宽频锁相的一种实现方法
基于LabVIEW的锁相放大器的设计与测量
CDSC在单相电网同步锁相技术中的应用