基于FPGA控制的低频数字式相位测量仪研究胡云朋.docx
- 文档编号:3124428
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:10
- 大小:180.12KB
基于FPGA控制的低频数字式相位测量仪研究胡云朋.docx
《基于FPGA控制的低频数字式相位测量仪研究胡云朋.docx》由会员分享,可在线阅读,更多相关《基于FPGA控制的低频数字式相位测量仪研究胡云朋.docx(10页珍藏版)》请在冰豆网上搜索。
基于FPGA控制的低频数字式相位测量仪研究胡云朋
基于FPGA控制的低频数字式相位测量仪研究
胡云朋
(电子信息工程学院微电子及固体电子专业113114310)
摘要:
提出了一种基于Verilog开发的低频数字相位测量仪设计。
系统以FPGA为核心,构成完备的测量系统,可以对20Hz-20KHz的频率范围的信号进行频率、相位等参数的精确测量。
硬件结构简单,程序简单可读性强,与传统电路相比,具有处理速度快、稳定性高、性价比高的特点。
关键字:
相位测量仪、FPGA、Verilog语言
第一章研究背景
随着科学技术的突飞猛进的发展,电子技术广泛的应用于工业、农业、交通运输、航空航天、国防建设等国民经济的诸多领域中,而电子测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
相位是交流信号的重要参数。
相位差的测量是电子和电力测量中经常遇到的问题,测量两路同频信号的相位差在工程上有着重要的意义。
其测量方法可分为模拟和数字方法两种:
传统依靠模拟器件的方法,如二极管鉴相法、脉冲计数法等,测量系统复杂、需专用器件、硬件成本高、而且精度不高。
随着集成电路的发展,利用大规模集成电路来完成各种高速、高精度电子仪器的设计,已经成为一种行之有效的方法。
采用这种技术制成的电子仪器电路结构简单、性能可靠、测量精确且易于调试,而且精度明显高于一般的模拟式测量。
在工业和民用场合,为了对各种低频信号进行测量分析,常常引入相位测量仪。
低频数字式相位测试仪在工业领域中是经常用到的一般测量工具,例如在电力系统中,当电网合闸时,要求两电网电信号的相位相同,如果两路信号的相位不同,会出现很大的电网冲激电流,对供电系统产生巨大的破坏力,因此,精确测量出两个信号的相位差是非常重要的。
同频信号间相位差的测量在电力系统、工业自动化、智能控制及通信、电子、地球物理勘探等许多领域都有着广泛的应用。
尤其在工业领域中,相位不仅是衡量安全的重要依据,还可以为节约能源提供参考。
因此,研究和设计低频数字式相位测量仪,将会为国民经济的发展起到推动和促进作用。
第二章方案设计与论证
一、设计指标要求
设计一个如图1所示的低频数字式相位测量仪,设计基本要求如下:
(1)频率范围:
20Hz~20kHz。
(2)相位测量绝对误差≤2°。
(5)具有频率测量功能。
(6)相位差数字显示:
相位读数为00~359.90分辨率为0.1°。
图1 整体示意图
二、设计方案论证
从功能角度来看,相位测量仪要完成信号频率的测量和相位差的测量。
相位测量仪有两路输入信号,也是被测信号,它们是两个同频率的正弦信号,频率范围为20Hz~20kHz(正好是音频范围),
根据我们学过的电路理论知识,我们知道正弦电信号为
,其中
,ω,
为正弦量的三要素,且只有两个同频率的(正弦)信号才有相位差的概念。
不妨令两个同频率的正弦信号为
则相位差
,由此可看出,相位差在数值上等于初相位之差,θ是一个角度。
不妨令
,式中
是相位差θ对应的时间差,且令T为信号周期,则有比例关系
,可以推导得到
此式说明,相位差θ与
一一对应,可以通过测量时间差
及信号周期T,计算而得到相位差θ,这就是相位差的基本测量原理。
由相位差的基本测量原理可知,相位差的测量本质上是时间差
及信号周期T的测量,也就是时间的测量,而时间的测量不可避免地要用到电子计数器。
时间的测量有多种方法,而设计题目关于相位测量仪的技术指标要求会影响到我们对方案的选择。
由一般常识可知,MCU应用系统一般能较好地实现各种不同的测量及控制功能,但有时达不到设计要求的技术指标。
而因FPGA具有工作速度快、编程方便等特点,往往能满足一些设计要求比较高的技术指标,因此,我们提出,在进行电子系统设计时,用FPGA完成系统指标与功能。
1.设计方案
(1)
设计总体框图
图2设计总体框图
(2)测量工作原理
两路待测信号经整形后变成了矩形波信号I、V,且可以认为I和V是同频率、不同相位的矩形波。
频率的测量
用测周期的方法获得信号频率。
由图3可知,对I进行2分频后的信号波形中,高电平宽度正好对应I的周期,我们将此高电平信号作为FPGA定时器的启动/停止信号,便可测得周期T,再由公式f=1/T,计算得到频率f。
图3分频器的输入输出波形图
相位差的测量
利用鉴相器(异或门),在鉴相器的输出波形IV中,正脉冲宽度就是要测量的I和V相位差所对应的时间差
。
如图4所示。
图4鉴相器的输入输出波形图
信号是I信号的二倍频(I与V同频),由此可见,对于同频不同相的两个信号,经过异或门后可得到二倍频的信号。
因此从这个意义上讲,异或门可实现信号的二倍频。
f0的确定及FPGA的二进制数据位数的确定
因为相位差测量绝对误差Δθ≤2°,而FPGA在测量
时有一个字的误差,对待测信号频率f=20kHz而言,下式成立:
,则有
这就是说,FPGA在采集相位差对应的时间差
时,至少要能分辨出0.278μs的时间间隔。
为了兼顾计算的方便和时标信号获得的方便,我们采用T0=0.1μs,即f0=10MHz的时钟脉冲作为时标信号。
当选定f0=10MHz后,就可以确定FPGA采用的二进制数据的位数。
对于待测信号频率f=20Hz而言,N1对应取最大值。
因为f=20Hz时周期T=50ms,在50ms内对T
0计数,计数值为N1=50ms÷0.1μs=5×100000=500000,而218=262144,219=524288所以有
218<500000<219
则FPGA的二进制数据位数确定为19bit。
第三章系统硬件设计
硬件电路的设计:
输入的两路正弦波由DDS产生,输入电路起到波形变换及整形的功能。
由于FPGA对脉冲信号比较敏感,而被测信号是周期相同、幅度和相位不同的两路正弦信号,为了准确地测量出两路正弦信号的相位差及其频率,需要对输入波形进行整形,使输入信号变成矩形波信号,并送给FPGA进行处理。
我们设计了整形输入电路方案。
本文采取的方案是使用单门限电压比较器来完成,当输入信号电压每通过一次零时单门限电压比较器的输出就要翻转一次,即比较器的输出端将产生一次电压跳变,它的正、负向幅度均受到供电电源的限制,因此,输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。
这种方案的电路图如图所示。
图5采用单门限电压比较器的整形电路
经过整形的波形可按照上述的原理通过FPGA来实现相位差的测量以及频率的测定。
第四章软件系统设计
一、FPGA完成的任务
由前面的叙述可知,在系统中,FPGA对整形后的两路待测信号(AIN、BIN)进行数据采集。
(1)对输入的40MHz时钟脉冲clk进行4分频,得到系统所需要的10MHz时标信号clk。
(2)19bit的加1计数器counter,完成对clk的计数,以便分别得到与相位差对应的时间差数据outcome1和待测信号的周期数据outcome2。
由前面的分析可知,outcome1和outcome2都是19bit的二进制数据,时间单位为0.1μs。
(3)二分频器divider实现对单一输入信号的分频,以测得信号的频率。
(4)为了实现第
(2)点的功能,应该要产生:
①计数器清零信号;②计数器使能信号;③其他控制信号的逻辑电路。
二、FPGA芯片内部电路框图
根据对“FPGA完成的任务”讨论,不难画出FPGA芯片内部的逻辑电路框图,如图所示。
图6逻辑电路框图
三、FPGA的Verilog程序及仿真结果
(1)分频器divider
源程序:
moduledivider(clk_in,enable,reset,clk_out);
inputclk_in,enable,reset;
outputclk_out;
regclk_out;
always@(posedgeclk_in)
if(!
reset)clk_out=1'b0;
else
if(enable)
clk_out=!
clk_out;
initialclk_out=1'b0;
endmodule
仿真时序图结果:
图7分频器仿真时序图
由时序图可知输出信号由输入信号上升沿触发对于输入信号进行了二分频。
且仿真结果符合设计要求。
(2)19位计数器counter
源程序:
modulecounter(inclk,rst_n,en,out);
inputinclk,rst_n,en;
output[18:
0]out;
reg[18:
0]out,value_r;
always@(posedgeinclkornegedgerst_n)
if(~rst_n)value_r<=19'b0;
else
if(en)
begin
value_r<=value_r+19'h1;
end
else
if(!
en)
begin
out<=value_r;
value_r<=0;
end
initialvalue_r<=0;
endmodule
仿真时序图结果:
图8计数器仿真时序图
由上述的仿真时序图可知我们将时钟信号以及使能信号设置完之后,计数器就会在时钟信号以及使能信号的作用下计数,本文仿真时,使能信号期间,共有三个时钟信号上升沿到达,则计数器计数值为3,当使能端为低电平时,计数器将计数值传给寄存器,且计数器清零,最后的仿真结果寄存器out值也为3,由此可证19位计数器设计正确。
(3)Top文件
源程序:
modulephase(AIN,BIN,outcome1,outcome2,rst_n,clk,en);
inputAIN,BIN,rst_n,clk,en;
output[18:
0]outcome1,outcome2;
wireAB,Aout;
wire[18:
0]out;
xoru1(AB,AIN,BIN);
divider(AIN,en,rst_n,Aout);
countercont2(clk,rst_n,Aout,outcome2);
countercont1(clk,rst_n,AB,outcome1);
assignout=(outcome1*360)/outcome2;
endmodule
仿真时序图:
图8TOP文件仿真时序图
由上述时序图可知,我们在系统时钟信号的触发下,利用19位计数器计数器分别对分频过的整形信号以及鉴相器输出信号进行计数,然后利用语句out=(outcome1*360)/outcome2来求得角度。
(4)系统技术时钟产生
forever#50nsclock=~clock;
产生一个周期为100ns即频率为10MHz的FPGA系统时钟脉冲,但在仿真时可以利用仿真软件时序图产生时钟脉冲,而不使用该语句。
第五章结束语
本文主要介绍了基于FPGA控制的低频数字式相位测量仪的分析与设计,并实现了设计的最初要求与目的。
通过了这次课程设计,基本掌握了Verilog语句,并能熟练掌握利用quartusII软件对FPGA进行仿真思想和方法,并对以后进一步学习该方面知识打下了坚实的基础,并触发了极大的兴趣。
参考文献:
1.刘力.基于FPGA的高精度相位测量仪的设计.电子设计应用.2005.12.98-101
2.邱洪顺.基于FPGA的高精度相位测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 控制 低频 数字式 相位 测量仪 研究 胡云朋