基于FPGA的数字显示相位差测量仪
基于FPGA的相关法测量相位差
基于FPGA的相关法测量相位差唐升;王天翔;雷浩丹;侯榆青;吕亚林【摘要】针对弦波信号问的相位差测量问题,提出了一种基于FPGA的相关法测量技术方案,着重分析了同步采样对相位差测量精度影响,详细阐述了FPGA基础上使用硬件描述语言实现测量算法的关键技术,并搭建实验平台对所研制的相位差测量原理样机进行了性能测试.实验结果表明,针对100 Hz低频弦波信号之间的相位差的测量,0~45°范围之内相对测量误差小于1.4%.【期刊名称】《时间频率学报》【年(卷),期】2018(041)001【总页数】10页(P17-26)【关键词】相位差;同步采样;相关法;FPGA;CORDIC【作者】唐升;王天翔;雷浩丹;侯榆青;吕亚林【作者单位】西北大学信息科学与技术学院,西安710127;西北大学信息科学与技术学院,西安710127;西北大学信息科学与技术学院,西安710127;西北大学信息科学与技术学院,西安710127;济南市计量检定测试院,济南250002【正文语种】中文【中图分类】TM935.10 引言准确测量两个弦波信号之间的相位差在通信、电力、地质勘探、故障诊断、航空航天等领域有着重要意义[1-4]。
近年来,随着电子计算机技术的不断发展和相位差测量在不同应用领域技术需求的不断增加,涌现出许多的相位差测量方法。
根据不同的电路类型和结构,这些测量方法可以分为传统模拟方法和数字方法。
得益于微处理器与大规模集成电路的发展,数字化的测量方法表现出诸多优点。
例如,精度高、体积小、成本低、灵活性好等[5-8]。
数字化测量方法的实现大多依赖于计算机、微处理器(MCU,microcontroller unit)或数字信号处理器(DSP,digital signal processor)平台。
目前拥有多核处理器的计算机平台在实现大数据量算法的时候通常不会存在运算速度不足的问题,但是很难满足测量系统的便携性、小型化需求。
基于FPGA控制的低频数字式相位测量仪研究(胡云朋
基于FPGA控制的低频数字式相位测量仪研究胡云朋(电子信息工程学院微电子及固体电子专业 113114310)摘要:提出了一种基于Verilog开发的低频数字相位测量仪设计。
系统以FPGA为核心,构成完备的测量系统,可以对20Hz-20KHz的频率范围的信号进行频率、相位等参数的精确测量。
硬件结构简单,程序简单可读性强,与传统电路相比,具有处理速度快、稳定性高、性价比高的特点。
关键字:相位测量仪、FPGA、Verilog语言目录第一章研究背景 (3)第二章方案设计与论证 (3)一、设计指标要求 (3)二、设计方案论证 (4)第三章系统硬件设计 (6)硬件电路的设计: (6)第四章软件系统设计 (7)一、FPGA完成的任务 (7)二、FPGA芯片内部电路框图 (7)三、FPGA的Verilog程序及仿真结果 (7)第五章结束语 (11)参考文献: (11)第一章 研究背景随着科学技术的突飞猛进的发展,电子技术广泛的应用于工业、农业、交通运输、航空航天、国防建设等国民经济的诸多领域中,而电子测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
相位是交流信号的重要参数。
相位差的测量是电子和电力测量中经常遇到的问题,测量两路同频信号的相位差在工程上有着重要的意义。
其测量方法可分为模拟和数字方法两种:传统依靠模拟器件的方法,如二极管鉴相法、脉冲计数法等,测量系统复杂、需专用器件、硬件成本高、而且精度不高。
随着集成电路的发展,利用大规模集成电路来完成各种高速、高精度电子仪器的设计,已经成为一种行之有效的方法。
采用这种技术制成的电子仪器电路结构简单、性能可靠、测量精确且易于调试,而且精度明显高于一般的模拟式测量。
在工业和民用场合, 为了对各种低频信号进行测量分析,常常引入相位测量仪。
低频数字式相位测试仪在工业领域中是经常用到的一般测量工具,例如在电力系统中,当电网合闸时,要求两电网电信号的相位相同,如果两路信号的相位不同,会出现很大的电网冲激电流,对供电系统产生巨大的破坏力,因此,精确测量出两个信号的相位差是非常重要的。
FPGA的低频数字相位开题报告
FPGA的低频数字相位开题报告《基于FPGA的低频数字相位测量仪设计》开题报告一、课题的目的和意义1.研究目的随着数字电子技术的发展,由数字逻辑电路组成的控制系统逐渐成为现代检测技术中的主流,数字测量系统也在工业中越来越受到人们的重视。
在实际工作中,常常需要测量两列频率相同的信号之间的相位差,来解决实践中出现的种种问题。
例如,电力系统中电网合闸时,要求两电网的电信号之间的相位相同,这时需要精确测量两列工频信号之间的相位差。
如果两列信号之间的相位差达不到相同,会出现很大的电网冲激电流,对供电系统产生巨大的破坏力,所以必须精确地测量出两列信号之间的相位差。
数字式仪器采用数码管显示相位差,精确度高,稳定性能好,读数方便且不需要经常调试,所以数字式测量仪逐渐代替了原来的模拟式仪器。
本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。
其中数据釆集电路用FPGA实现,其功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。
2.研究意义随着相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,相位测量在电力、机械等部门有着尤其重要的意义,对于低频相位的测量,用传统的模拟指针式仪表显然不能够满足所需的精度要求,随着电子技术以及微机技术的发展,数字式仪表因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。
基于这些要求,我们设计并制作了基于FPGA为核心的低频数字式相位测量系统。
二、文献综述本设计给出了以FPGA为核心的数字式相位测量的基本原理与实现方案。
该系统由数据釆集电路、数据运算控制电路和数据显示电路组成。
其中数据采集电路用FPGA 实现,其功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。
同频率正弦信号间的相位差测量在电工技术、工业自动化、智能控制及通讯、电子等许多领域都有着广泛的应用,如电工领域中的电机功角测试,介质材料损耗角的确定等。
推荐-FPGA和MCU的相位测量仪的设计 精品
存档日期:存档编号:本科生()题目:基于FPGA和MCU的相位测量仪的设计学院:电气工程及自动化学院专业:电气工程及其自动化XX大学教务处印制随着社会和历史的不断进步,相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,数字式相位测量仪因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。
本文首先论述了相位测量技术的国内外发展概况,并根据现状设计了此相位测量系统。
该设计包括系统设计的理论分析,系统结构设计及硬件实现,最终验证了该测量系统的可行性和有效性。
该设计采用单片机与FPGA相结合的电路实现方案,很好地发挥了FPGA的运算速度快、资源丰富、编程方便的特点,并利用了单片机的较强运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。
文章主要介绍设计方案的论证、系统硬件和软件的设计,给出了详细的系统硬件电路图和系统软件主程序流程图。
关键词: 数字式相位测量仪单片机 FPGA 设计方案Along with the social and historical progress, phase measurement technology is widely used in national defense, scientific research, production and other fields, on the phase measurement requirements are also gradually to high precision, high intelligent direction, in the range of low frequency digital phase measurement instrument, because of its high precision measurement resolution and highly intelligent, intuitive characteristics have been more and more widely applied.This text first discusses the phase measuring technology development in domestic and international, and according to the present situation designs the phase measuring system. The design includes system design theory analysis, system structure design and hardware realization, finally verified the feasibility and validity of the system.The bination of MCU and FPGA is adopted in the design .It has the features of FPGA high operating speed, abundant resources and convenient programming. And the use of MCU’s strong operation and control function, which makes the whole system modularized, the hardware circuit is simple and the operation is convenient. The paper mainly introduces the designs of the demonstration, hardware and software, the hardware circuits and main software program are given in detail.Keywords:Digital phase measuring instrument MCU FPGA Design strategy目录I1 绪论1.1 课题背景及研究意义随着社会和历史的不断进步,科学技术突飞猛进的发展,电子技术广泛应用于工业、交通、国防、科研、生产等各个领域,而相位测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
基于FPGA的低频数字式相位测量仪
摘要本系统以单片机和FPGA为核心,辅以必要的模拟电路,构成了一个基于具有高速处理能力的FPGA的低频数字式相位测量仪。
该系统由相位测量仪、数字式移相信号发生器以及移相网络组成;移相网络能够产生-45°~45°相位差的两路信号;相位测量仪能够测量出具有0°~359°的两路信号的相位差;而数字式移相信号发生器能够产生出相位差为0°~359°的且具有数字设置步进为1°的两路输出信号。
经过实验测试,以上功能均可以准确实现。
一、方案设计与论证1、移相网络设计方案本设计的核心问题是信号的模拟移相程控问题,其中包括波形相位以及波形幅度的程控。
在设计过程中,我们首先考虑了赛题中提供的方案。
如图1-1所示:该模拟电路主要采用高、低通电路的临界截止点来产生极值相位的偏移。
当高、低通电路的截止频率等于输入信号频率时,根据其幅频特性,信号波形所产生的相位分别为45°和-45°,恰好满足赛题要求的连续相移范围-45°~45°的调节。
由于高、低通电路在截止点时会产生幅度的衰减,故电路在后级加了放大电路,且采用了电压串联负反馈的方式提高了输入阻抗并降低了输出阻抗,电路最后还设计有调幅装置,能够很好地满足A、B输出的正弦信号峰—峰值可分别在0.3V—5V范围内变化。
综上所述,该移相网络能够满足赛题的所有要求,且电路设计简单、易行,故我们直接采用了这种方式来产生模拟的相移输出。
2、数字式移相信号发生器设计方案本单元设计的关键在于两个波形相位差的准确定位,在设计中我们综合考虑了两种实现方案:方案一:采点式相位确定。
利用相位范围0°~ 360°设定每个波形含有360个点,即每一点都对应一度,以保证相位的精确定位。
但当输入波形频率较高时,FPGA中的 DDFS对该波形的采点数将降低,该方法也不再适合;此外360个点的波形很难利用DDFS的地址线准确产生,由于DDFS在运行时地址是不断向下扫描的,其多余地址中的零数据也将同样会被显示输出,使得波形不再准确。
基于FPGA的工频相位差测量系统的设计
基于FPGA的工频相位差测量系统的设计【摘要】:工频相位差测量在电力系统中具有重要意义,为提高精度,文章采用了一种基于FPGA的数字化相位差测量方法并以模块化方式加以实现,同时分析了FPGA数据采集电路的仿真结果。
利用8051单片机完成数据运算处理和显示功能。
具有一定的应用价值。
【关键词】:相位差;测量;FPGA;数据采集中图分类号: TM93文献标识码: A 文章编号:1002-6908(2007)1210040-011.系统总体设计在电力系统中,经常需要对两路50Hz工频正弦信号的相位差进行精确测量,如电能计量中功率因数角的确定,电子式互感器相差的测定等。
相位差的测量方法较多,传统的模拟化的测量方法实现起来电路复杂,精度不高。
随着电子技术的发展,高精度的数字化相位差测量方法得到发展并被应用到实际产品之中。
文章便是研究一种基于FPGA和8051单片机实现的工频数字式相位差测量系统,其总体系统设计如图1所示。
图中,信号调理电路将两路输入信号经过脉冲整形后送给FPGA进行处理,FPGA数据采集电路负责在两路方波信号相位差所对应的时间间隔内对高频脉冲进行计数并将计数结果送给单片机,单片机则负责控制和接收FPGA传输的数据并进行运算,在此基础上将结果通过显示电路输出。
2.信号调理电路设计信号调理电路由电压跟随器和过零比较器两部分电路组成,电压跟随器起到提高系统输入阻抗的作用,由高精度运放AD827来实现。
过零比较器则负责将两路双极性的正弦波转化为单极性的方波后送给FPGA,考虑到被测信号为低频信号,过零比较可由性价比较高的集成电压比较器LM339实现,简单的单门限过零比较器抗干扰能力差,容易导致过零点的多次误触发,故过零比较器采用抗干扰能力强的施密特触发器来实现。
具体的电路结构简单通用易于实现,故不再赘述。
3.FPGA数据采集电路设计根据测量相位的要求,设计出一系列测量所需的控制信号,其工作时序如图2所示。
基于FPGA的数字显示相位差测量仪
基于FPGA的数字显示相位差测量仪[摘要] 本文主要介绍了数字显示相位差测试仪的设计方案和硬件部分。
针对FPGA的特点,在数字相位差测量系统的设计思想上,给出了一种用FPGA 芯片EP1K10TC144-3实现相位差智能化测量仪的方案。
该测量仪只需少量的外围电路,有效将测量信号正弦波,方波、三角波信号移相放大,整形为所需要的方波信号,且不失真,测量这些信号的相位差,硬件电路简单,实现了输入阻抗大,误差小,精度高,抗干扰强。
[关键词] FPGA 相位差测量晶振1.基于该题目数字显示相位差测量仪,我们在方案设计上采用了三种不同的方案,各方案各有优缺点,在综合考虑了几种方案后,我们选定了基于FPGA的数字显示相位差测量仪,因为FPGA是在可编程专用集成电路(ASIC)的设计基础上发展起来的。
由于它们集成度高、可重复编程,并能实现系统级编程(ISP),在近10年内得到迅速发展。
FPGA的集成度、工作速度不断提高,包含的资源越来越丰富,可实现功能越来越强大,具有静态可重复编程或在线动态重构的特性,使得硬件功能可以像软件一样通过编程来修改,不仅使设计修改变得十分容易,而且大大提高了电子系统的灵活性和通用能力,已成为当今实现电子系统集成化的重要手段。
该测量仪只需少量的外围电路,有效将测量信号正弦波,方波、三角波信号移相放大,整形为所需要的方波信号,且不失真,测量这些信号的相位差,硬件电路简单,实现了输入阻抗大,误差小,精度高。
2.系统设计思想2.1系统设计整个测量我们分为两个部分,一部分是测量输入的信号A的频率,在这一部分中,将一个78125的晶振经一个计数分频得到频率为0.5HZ的信号(0.5HZ 信号的周期为T=2),当原信号A与0.5HZ的信号与非的时候,其低电平半周期时(也就是T=1S时),会有一段脉冲个数,将此脉冲个数送入计数器计数输出,输出的值即为原信号的频率值;另一部分则是测量输入的两个同频异相信号A 和B的相位差,而我们输入的都是单个的模拟信号,所以在测试相位差的时候首先应产生两个同频异相的信号。
基于FPGA的低频数字相位测量仪的设计
1引言关于低频数字相位测量系统的设计与实现方法,提出了以单片机最小系统和复杂可编程逻辑芯片为核心的电路设计模型。
相位的数字测量方法基本分为硬件电路测量与A/D采样后利用软件计算两种。
硬件法测量由于电路结构比较复杂,易受外界干扰影响以及准确度较差的缺点,限制了其作用进一步发挥。
近年来,随着计算机硬件及其外围设备的日益发展,以数字信号处理为核心的软件法测量技术在相位差的测量中得到了越来越多关注,并且得到了较快发展。
同频率正弦信号间的相位差测量在电工技术、工业自动化、智能控制及通讯、电子等许多领域都有广泛的应用,如电工领域中的电机功角测试,介质材料的损耗角的确定等。
因此相位差测量有着广泛的实用价值。
本系统由数据采集电路、数据运算控制电路和数据显示电路三大部份构成,其系统功能主要是进行相位差测量及频率测量。
该系统采用单片机和FPGA作为低频数字相位测量仪的核心部分。
采用单片机和FPGA作为低频数字相位测量仪的核心部分,由数据采集电路、数据运算控制电路基于FPGA的低频数字相位测量仪的设计康占义 张家口教育学院宣化分校职业教育部图1 系统原理框图图3 采用施密特触发器的整形电路和数据显示电路三大部分构成,其系统功能主要是进行相位差测量及频率测量。
采用VHDL语言实现FPGA的功能。
2系统设计方案本系统分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。
考虑到FPGA具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA和单片机相结合,构成整个系统的测控主体。
系统原理框图如图1。
2.1 信号整形电路的设计最简单的信号整形电路就是一个单门限电压比较器(如图2所示),当输入信号每通过一次零时触发器的输出就要产生一次突然的变化。
当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。
基于FPGA的相位差测量模块的设计
基于FPGA的相位差测量模块的设计相位差测量设计思路相位差测量设计要求基于FPGA设计一个测量两路同频率信号相位差的模块,具体要求如下:测量信号频率范围: 20Hz~20kHz ,精度:2度,测量波形:方波。
自行设计相位差可控双路输出脉冲源作为被测对象。
发挥部分:(1)相位差和频率交替显示或同时显示(2)提高测量精度(3)拓宽频率范围到20Hz~200kHz(4)设计出一套相位计前置整形电路方案(采用模拟电路或者模数混合,仅设计和仿真,不制作),要求能自适应峰峰值在0.2V至5伏的非方波输入信号,尽量减少两路输入信号幅度不一致引入的误差,带宽不小于20Hz~20kHz,输出信号能接入本课题设计的相位差测量模块。
相位差测量设计方案根据题目要求,我们组把这个模块的设计分为四个子模块,分别为:信号源的发生、频率计的设计、相位差的测量和四位LED相位差显示。
信号源的发生产生两路同频、相位差可控的信号;频率计的设计是借用信号源产生的信号,然后根据内部晶振产生闸门宽度为1秒的闸门信号,在高电平时开始计数,记得的周期个数,即信号源产生信号的频率;相位差的测量是先通过测量两路信号的上升沿之间内部晶振的周期数,然后由此周期数换算出相位差,再通过VHDL语言内部函数转换成十进制数输出到显示模块。
RTL图如下:模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kzys ISPORT ( CLK : IN STD_LOGIC;KG : IN STD_LOGIC;ZS : IN NATURAL;KG_OUT: OUT STD_LOGIC );END entity kzys;ARCHITECTURE one OF kzys ISSIGNAL CNT: NATURAL;BEGINPROCESS(KG,CLK)BEGINIF KG='0' THEN CNT<=0;KG_OUT<='0';ELSIF CLK'EVENT AND CLK='1' THEN IF CNT<ZS THENCNT<=CNT+1;ELSEKG_OUT<='1';END IF;END IF;END PROCESS;END;library ieee;use ieee.std_logic_1164.all;entity xhk isport(sw_1:in std_logic_vector(4 downto 0); f_out1:out natural;y_out2:out natural );end xhk;architecture one of xhk isbeginprocess(sw_1)begincase sw_1 iswhen "00001"=>f_out1<=499999;y_out2<=277778;when "00010"=>f_out1<=499999;y_out2<=625000;when "00011"=>f_out1<=499999;y_out2<=1666667;when "00100"=>f_out1<=6666;y_out2<=5556;when "00101"=>f_out1<=6666; y_out2<=11111;when "00110"=>f_out1<=6666; y_out2<=16667;when "00111"=>f_out1<=499; y_out2<=1806;when "01000"=>f_out1<=499; y_out2<=1667;when "01001"=>f_out1<=499; y_out2<=625;when "01010"=>f_out1<=82; y_out2<=174;when "01011"=>f_out1<=82; y_out2<=81;when "01100"=>f_out1<=82; y_out2<=220;when "01101"=>f_out1<=49;y_out2<=32;when "01110"=>f_out1<=49;y_out2<=65;when "01111"=>f_out1<=49;y_out2<=122;when "10000"=>f_out1<=0;y_out2<=0;when others=>f_out1<=0;y_out2<=0;end case;end process;end;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY plfsq ISPORT ( clk: IN STD_LOGIC; ZS: IN NATURAL;KG: IN STD_LOGIC;F_OUT : OUT STD_LOGIC );END ;ARCHITECTURE one OF plfsq IS SIGNAL FULL: STD_LOGIC ;BEGINPROCESS(clk)VARIABLE CNT8 : NATURAL;BEGINIF KG='0' THENFULL <='0';CNT8 :=ZS;ELSIF clk'EVENT AND clk='1' THEN IF CNT8 >0 THENCNT8:=CNT8-1;ELSECNT8 :=ZS;FULL <= NOT FULL;END IF;END IF;END PROCESS ;PROCESS(clk,FULL)BEGINIF KG='1' THENIF clk 'EVENT AND clk = '1' THEN IF FULL = '1' THEN F_OUT <='1'; ELSE F_OUT <='0';END IF;END IF;END IF;END PROCESS;END one;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY plfsqy ISPORT ( clk: IN STD_LOGIC; ZS: IN NATURAL;KG: IN STD_LOGIC;F_OUTY : OUT STD_LOGIC );END ;ARCHITECTURE one OF plfsqy IS SIGNAL FULL: STD_LOGIC ;BEGINPROCESS(clk)VARIABLE CNT8 : NATURAL;BEGINIF KG='0' THENFULL <='0';CNT8 :=ZS;ELSIF clk'EVENT AND clk='1' THEN IF CNT8 >0 THENCNT8:=CNT8-1;ELSECNT8 :=ZS;FULL <= NOT FULL;END IF;END IF;END PROCESS ;PROCESS(clk,FULL)BEGINIF KG='1' THENIF clk 'EVENT AND clk = '1' THEN IF FULL = '1' THEN F_OUTY <='1'; ELSE F_OUTY <='0';END IF;END IF;END IF;END PROCESS;END one;信号源的发生:library ieee;use ieee.std_logic_1164.all;entity xhy isport(sw_1:in std_logic_vector(4 downto 0); clk:in std_logic;kg:in std_logic;f_outy:out std_logic;f_out:out std_logic);end xhy;architecture qq of xhy iscomponent xhkport(sw_1:in std_logic_vector(4 downto 0);f_out1:out natural;y_out2:out natural ); end component ;component kzysPORT ( CLK : IN STD_LOGIC; KG : IN STD_LOGIC;ZS : IN NATURAL;KG_OUT: OUT STD_LOGIC ); end component;component plfsqyPORT ( clk: IN STD_LOGIC; ZS: IN NATURAL;KG: IN STD_LOGIC;F_OUTY : OUT STD_LOGIC ); end component; component plfsqPORT ( clk: IN STD_LOGIC;ZS: IN NATURAL;KG: IN STD_LOGIC;F_OUT : OUT STD_LOGIC );end component;signal a,b:NATURAL;signal c:STD_LOGIC;beginu1:xhk port map( sw_1=>sw_1,f_out1=>a,y_out2=>b);u2:kzys port map(zs=>b,clk=>clk,kg=>kg,kg_out=>c);u3: plfsqy port map(clk=>clk,ZS=>a, KG=>C,F_OUTY=>F_OUTY); u4: plfsq port map(clk=>clk,ZS=>a,KG=>KG,F_OUT=>F_OUT); END ARCHITECTURE qq;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport(clk,en,clr:in std_logic;count10:buffer integer range 0 to 400000000); end cnt10;architecture art of cnt10 isbeginprocess(clk,clr,en)beginif clr='1'thencount10<=0;elsif rising_edge(clk)thenif(en='1')thencount10<=count10+1;end if;end if;end process;end art;频率计的设计:use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity freq_measure isPort( clk0 : instd_logic;wave1 : in std_logic;q : out integer range 0 to 400000000);end freq_measure;architecture art of freq_measure iscomponent cnt10port(clk,en,clr:in std_logic;count10:buffer integer range 0 to 400000000);end component;signal en1,clr1 : std_logic;signal date:integer range 0 to 400000000;beginprocess(clk0)variable cnt:integer range 0 to 6;beginif rising_edge(clk0) thenif cnt = 0 then clr1 <= '1';cnt:=1;elsif cnt > 5 then cnt := 0;q<=date;else cnt := cnt+1;clr1 <= '0';en1 <= '1';end if;end if;end process;u1 : cnt10 port map(clk=>wave1,en=>en1,clr=>clr1,count10=>date);end art;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity measure_n isPort( clk,clk0,clk1:instd_logic;n_out:out std_logic_vector(15 downto 0));end measure_n;architecture art of measure_n issignal count0,count01,count02,count1,count2 : std_logic_vector(15 downto 0);signal x,y,a,clk10,clk11,clk20,clk21: std_logic;beginprocess(clk,clk0,clk1,x,y,count1,count2)beginif clk'event and clk='1'thencase a iswhen '0'=>clk10<=clk0;clk11<=clk1;if clk10='0' and clk11='0'thencount1<=(others=>'0');end if;if clk10='0'thenx<='1';end if;if x='1' thenif clk10='1' thenif clk11='0' then y<='1'; end if;if y='1' thenif clk11='1' thencount01<=count1;count1<=count1;elsecount1<=count1+1;end if;end if;end if;end if;if count01=0 thena<='1';else a<='0';end if;when '1'=>clk20<=clk1;clk21<=clk0;if clk20='0' and clk21='0'then count2<=(others=>'0');end if;if clk20='0'thenx<='1';end if;if x='1' thenif clk20='1' thenif clk21='0' then y<='1';end if;if y='1' thenif clk21='1' thencount02<=count2;count2<=count2;elsecount2<=count2+1;end if;end if;end if;end if;if count02=0 thena<='0';else a<='1';end if;when others=>a<='1';end case;count0<=count01 or count02;end if;n_out<=count0;end process;end art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity consider1 isport ( clk :in std_logic;n1:in std_logic_vector(15 downto 0);freq:in integer range 0 to 400000000;cout:out std_logic_vector(15 downto 0));end consider1;architecture arch of consider1 issignal c0,c1,e,e0,d0,d1:integer range 0 to 400000000;signal count:std_logic_vector(15 downto 0); signal m:std_logic_vector(15 downto 0); beginprocess(n1,clk)beginif rising_edge(clk) thenm<=n1;c0<=conv_integer(m);d0<=c0*151;d1<=d0/1024;end if;end process;process(clk,freq)beginif rising_edge(clk) thenc1<=freq;e<=c1*d1;e0<=e/2048;count<=conv_std_logic_vector(e0,16);end if;end process;cout<=count;end arch;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count isport( clk:in std_logic;c_in:in std_logic_vector(15 downto 0);qa1,qb1,qc1,qd1:out INTEGER RANGE 0 TO 9); End count;architecture art of count isSignal a:integer range 0 to 400000000;signal m: std_logic_vector(15 downto 0); BeginProcess(clk,c_in)variable ai,bi,ci,di:integer range 0 to 9; beginif clk'event and clk='1' thenm<=c_in;a<=conv_integer(m);di:=(a-ai-10*bi-100*ci) /1000;ci:= (a-ai-10*bi)/100;bi:= ((a-ai) rem 100)/10;ai:=a rem 10;end if;qd1<=di;qc1<=ci;qb1<=bi;qa1<=ai;end process;end art;相位差的测量:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity phase_measure1 isport( clkin,clk0in,clk1in:in std_logic;qa1out,qb1out,qc1out,qd1out:out integer range 0 to 9 );end;architecture art of phase_measure1 iscomponent measure_nPort( clk,clk0,clk1:instd_logic;n_out:out std_logic_vector(15 downto 0));end component;COMPONENT freq_measurePort( clk0 : instd_logic;wave1 : in std_logic;q : out integer range 0 to 400000000 );end COMPONENT;component consider1port ( clk :in std_logic;n1:in std_logic_vector(15 downto 0);freq:in integer range 0 to 400000000;cout:out std_logic_vector(15 downto 0));end component ;component countport( clk:in std_logic;c_in:in std_logic_vector(15 downto 0);qa1,qb1,qc1,qd1:out integer range 0 to 9);end component;signal d,f: std_logic_vector(15 downto 0);signal e: integer range 0 to 400000000;beginu1: measure_n portmap(clk=>clkin,clk0=>clk0in,clk1=>clk1in,n_out=>d);u2: freq_measure port map(clk0=>clkin,wave1=>clk0in,q=>e);u3: consider1 port map(clk=>clkin,n1=>d,freq=>8192,cout=>f);u4: count portmap(clk=>clkin,c_in=>f,qa1=>qa1out,qb1=>qb1out,qc1=>qc1out,qd1=>qd1out);end art;四位LED相位差显示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 ISPORT(BCD:IN INTEGER RANGE 0 TO 9;LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE ART OF BCD7 ISBEGINLED<= "0111111"WHEN BCD= 0 ELSE "0000110"WHEN BCD= 1 ELSE "1011011"WHEN BCD= 2 ELSE "1001111"WHEN BCD= 3 ELSE "1100110"WHEN BCD= 4 ELSE "1101101"WHEN BCD= 5 ELSE "1111101"WHEN BCD= 6 ELSE "0000111"WHEN BCD= 7 ELSE "1111111"WHEN BCD= 8 ELSE "1101111"WHEN BCD= 9 ELSE "0000000";END ART;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY Vhdl1 ISPORT(LOCK:IN STD_LOGIC;QA,QB,QC,QD:IN INTEGER RANGE 0 TO 9;LEDA,LEDB,LEDC,LEDD:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;ARCHITECTURE ART OF Vhdl1 ISSIGNAL QAL,QBL,QCL,QDL:INTEGER RANGE 0 TO 9; COMPONENT BCD7PORT(BCD:IN INTEGER RANGE 0 TO 9;LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;BEGINPROCESS(LOCK)BEGINIF(LOCK'EVENT AND LOCK='1')THENQAL<=QA;QBL<=QB;QCL<=QC;QDL<=QD;END IF;END PROCESS;U1:BCD7 PORT MAP(QAL,LEDA); U2:BCD7 PORT MAP(QBL,LEDB); U3:BCD7 PORT MAP(QCL,LEDC); U4:BCD7 PORT MAP(QDL,LEDD); END ART;。
基于FPGA的数字式相位测量仪的设计与制作
基于FPGA的数字式相位测量仪的设计与制作基于FPGA的数字式相位测量仪的设计与制作摘要:本设计给出了基于FPGA核心的数字式相位测量的基本原理与实现方案,实现的是对两列信号的相位差的精确测量并数字显示测量结果。
该系统利用可编程逻辑器件为主系统芯片,用VHDL对其进行设计开发,系统由相位测量仪、数字式移相信号发生器和移相网络三个模块构成,整个装置具有原理简单,测量精度高,测量结果显示直观的特点。
本次设计在EDA软件开发平台MAX+PLUSⅡ上利用硬件描述语言VHDL进行设计编程。
关键词:FPGA/CPLD、VHDL、测相仪FPGA-based digital phase-measuring instrument design and production Abstract: The design is based on the FPGA core of the digital phase measurement and realization of the basic principles of the programme, the realization of the two signals in the phase of precision measurement and statistics show that the measurement results. The system of programmable logic devices based system chips, with their VHDL design and development, the system by the phase-measuring instrument, the digital shift believe that the phase-shifting, generator and a network of three modules, the device has a simple theory, measurement High-precision measurement results show that the visual characteristics. The design of the EDA software development platform MAX + PLUS Ⅱon the use of hardware description language VHDL design programming.Key words: FPGA / CPLD;VHDL;measurement of the instrument第1章绪论1.1 EDA技术概述1.1.1 引言20世纪末,电子技术获得飞速发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力推动社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
常雪毕业设计FPGA的低频数字相位开题报告
《基于FPGA的低频数字相位测量仪设计》开题报告一、课题的目的和意义1.研究目的随着数字电子技术的发展,由数字逻辑电路组成的控制系统逐渐成为现代检测技术中的主流,数字测量系统也在工业中越来越受到人们的重视。
在实际工作中,常常需要测量两列频率相同的信号之间的相位差,来解决实践中出现的种种问题。
例如,电力系统中电网合闸时,要求两电网的电信号之间的相位相同,这时需要精确测量两列工频信号之间的相位差。
如果两列信号之间的相位差达不到相同,会出现很大的电网冲激电流,对供电系统产生巨大的破坏力,所以必须精确地测量出两列信号之间的相位差。
数字式仪器采用数码管显示相位差,精确度高,稳定性能好,读数方便且不需要经常调试,所以数字式测量仪逐渐代替了原来的模拟式仪器。
本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。
其中数据采集电路用FPGA 实现,其功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。
2.研究意义随着相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,相位测量在电力、机械等部门有着尤其重要的意义,对于低频相位的测量,用传统的模拟指针式仪表显然不能够满足所需的精度要求,随着电子技术以及微机技术的发展,数字式仪表因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。
基于这些要求,我们设计并制作了基于FPGA为核心的低频数字式相位测量系统。
二、文献综述本设计给出了以FPGA为核心的数字式相位测量的基本原理与实现方案。
该系统由数据采集电路、数据运算控制电路和数据显示电路组成。
其中数据采集电路用FPGA 实现,其功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。
同频率正弦信号间的相位差测量在电工技术、工业自动化、智能控制及通讯、电子等许多领域都有着广泛的应用,如电工领域中的电机功角测试,介质材料损耗角的确定等。
基于FPGA的相位测量仪
2.FPGA芯 片 介 绍
本 次 设 计采 用 杭 州 康 芯 电子 有 限 公 司生 产 的 以Altera公 司 生 产 的FPGA器件 ::Cyclone EP1c3T144c8N为主 体 的适 配 板作 为 数 据 采 集 电路 硬 件 的 核 心 , 该适 配 板 提 供 了 一片 集 成 度 为 1 5万 门的 EP1C3T144C8N,一个 20MHz时钟 ,一个 JATG下载 模 式 , 一个AS 模 式下 载 口,使 用起 来十 分 方便 。其 中它 所提 供 的20MHz时 钟可 直 接用 来 作为 数据 采集 时所 用 的基准 信 号源 。
3.设 计 的 理 论 分 析
FPGA数据 采 集 电路 测 量 正 弦波 信 号频 率 的 原理 是 :在 正 弦波
整 形后 得 到 的 方 波 信 号 的一 个 周 期为 Tc秒 的数 据采 样 信 号 进 行 计 数 ,其计 数结 果乘 以1/Tc,就 是被 测 正弦波 的频 率 ,单 位为 Hz。测 量 正弦 波 信 号 周 期 的原 理 是 :在 正 弦波 信 号 整 形后 得 到 的方 波 信 号 的一个 周期 为Tc秒 的数 据采 样信 号进 行计 数 ,其计 数 结果乘 以Tc 秒 ,就 是 被 测 信 号 的周 期 ,单 位 为秒 。测 量 两 个 同 频信 号 的相 位 差 ,关 键 就是 要测 出两个 同频 正弦 波信 号 起 点的 时 间差 △t,若 △t 测 出,则 根据 :A a=At×360。/t即可求 出相 位差 △a,因此 其测 量原 理与 测量 正弦 波信 号周 期 的原理 相似 。
基于单片机和FPGA的低频数字相位测量仪研究
21信 号 整 形 电路 的 设计 . 由于输入信号幅值 、 频率都 是变化的, 以必须对信号进行整 所 形处理。 最简单 的信号整形 电路就 是一个单 门限 电压 比较器 。 当输 人为 正弦波时 , 信号每过 一次零 , 比较器的输出端会产生一次 电压 跳变 , 由于它 的正 负幅值均受 到供 电电源 的限制 , 但 因此输 出的 电 压波形是一 个具有正 负极 性的方波 , 这样就 完成了 电压 波形的整 形。 但该整形 电路抗 干扰 能力 比较差 , 会在信号过零点 时发生多次 触发的现象 , 而影  ̄F G 从 P A计数 , 使单片机无法准确计算出数值 。 为避 免发生 干扰 , 本系统使用两个引入正反馈网络 的施密特触发器 组成的整形 电路 , 以有效地 提高抗干扰能力。 中为保证输入 电 可 其 路对相位 差测量结果不带来误差 , 这里必须保 证两 个施密特触发器 的 门 限 电平 是 相 等 的D。 】 2 P . F GA数据 采 集 电路 的设 计 2 FG P A数据采集 电路测量正弦波信号频率的原理是 : 在正弦波 信号整 形后得到 的方 波信 号的一个周 期内 , 对周 期为T 秒的数据 c 采样信号进行计 数, 将其计数结果 除以T , 到的就 是被 测正 弦波 c得 信号 的频率 , 单位为Hz测量正 弦波信号周期的原理 是 : 。 同样在整 形得 到的方波信 号的一个周期 内 , 对周期为T 秒 的数据采样信号 c 进行计数 , 其计数结果乘以T , 是被测正弦波信号 的周期 , c就 单位为 秒 。 P 数据 采集 电路的功能是实现将待测同频正弦波信号 的周 F GA 期、 相位差转变 为l位的数字量 。 9 测量两个 同频正 弦波信号 的相位 差, 关键是要测 出两个同频信号起点之间的时间差 △t则根据 △ , △t 6 。 t ×30 / 即可求出相位差 △由, 因此测量正弦波信号相位差原 理与测量周 期的原理相似 。 根据 以上设计思想 , P A数据采集 电路 可设计成 时钟信号分 FG 频模 块F Q, P 测量控制信号发生模块KZ XH, 被测信号有 关时间检 测模块S J 数据 锁存 模块S S 和输出选择模 块S XZ JC, JC C 五个模块 ,
基于FPGA的高精度相位计的设计与实现
U2(≠)=Esin(wt一 ) Uz(f)的过零 时刻为 t ,u2(f)的过零 时刻为 t, 当 (f)=0,U,(f)=0时 可得
早期相位差的测量都依靠于模拟器件 ,大多是将相位差转换成
wtl w t2一 = n7r
电流或 电压来进行测量 ,例如示波器测量法 、阻抗法 、和差法 、三 电
数字化和极适合低频精密相位 测量 。缺点是对谐 波的影响很敏 感 , 相后得到方波脉冲 串,之后再将其转换成相位差读取。
而且要从一个具有一定噪声干扰的信号 中准确检测其过零点是 比
用这 种 方 法 设计 的相 位 计要 用 到 波 形整 形 电路 ,以将 正 弦 波转
较 困难 的 。【2
_L I 沣 扛 术
设计 开发
基于 FPGA的高精度相位计的设计与实现
张 翔
(63713部 队 山西忻 州 036300)
摘要:相位计 是指测量 两个 同频信号之 间相位差的仪 器,是一种应 用非常广泛 的电子仪器 。本 文遵循EDA(电子设 计 自动化)技术的设计 流程,采 用
VHDL语言 完成 了相 位计 的编程 设计,并在基 @cyclone FPGA(现场可 编程 门阵列)的 实验 开发板 上 实现 相位计 的测相 、转换 等功 能。本文在FPGA ̄
的影响,大大 提高了相 位计的稳定性与可靠性 。口
1过 零鉴 相 法 的基 本原 理
2基 于FPGA的鉴相 法 过零鉴相 是数字相位计 中应用最广的一种方法 。目前 ,低频精
密 相位 计 多 采 用 这种 方 法 。它 的优 点是 测 量 精 度高 、分 辨 率 高 、便 于
原有 的过零鉴相法都是基 准信号和待测信号通过整形 、过零鉴
数字式相位差测量仪的设计
目录绪论 (1)1 系统设计方案 (2)1.1 设计任务的分析 (2)1.1.1 设计主要内容及基本要求 (2)1.1.2 技术指标 (2)1.2 系统方案的选择 (2)1.3 系统的总体设计方案 (3)2 系统硬件电路的设计 (4)2.1 信号整形电路的设计 (4)2.1.1 LM339 的简介 (4)2.1.2 最简单的信号整形电路的设计 (4)2.1.3 采用了施密特触发器组成的信号整形电路的设计 (5)2.2 FPGA数据采集电路 (6)2.2.1 FPGA数据采集电路的功能分析 (6)2.2.2 FPGA数据采集电路的原理 (7)2.2.3 FPGA数据采集电路中各模块确定 (7)2.3 单片机数据运算控制电路的设计 (8)2.3.1 单片机数据运算控制电路的设计 (8)2.3.2 数据显示电路的设计 (9)3 软件部分的设计 (12)3.1 FPGA数据采集电路的VHDL语言程序设计 (12)3.1.1 VHDL语言的简介 (12)3.1.2 VHDL语言程序设计 (12)3.2 单片机数据运算控制电路的程序设计 (12)3.2.1 数据处理的技巧分析 (12)3.2.2 软件设计思路 (13)4 系统的仿真与调试 (17)4.1 FPGA数据采集电路的调试 (17)4.1.1 软件调试 (17)4.1.2 程序下载 (19)4.1.3 调试中的问题 (20)4.2 单片机数据运算控制电路的软件制作与调试 (20)4.2.1 操作过程 (20)4.2.2 问题分析 (21)4.3 系统的联合调试与验证 (21)结论 (22)参考文献 (23)附录一:元器件清单 (24)附录二:程序清单 (25)致谢 (46)数字式相位差测量仪的设计摘要本设计——数字式相位差测量系统使用FPGA和单片机相结合,构成整个系统的测控主体。
FPGA主要负责采集两个同频待测正弦信号的频率和相位差所对应的时间差,而两个同频待测正弦信号经过信号整形电路变成方波后送入FPGA数据采集电路中。
基于FPGA平均值原理相位差计的设计
基于FPGA平均值原理相位差计的设计
赵威威;廖京川;余先伦;李红莲
【期刊名称】《现代电子技术》
【年(卷),期】2009(32)6
【摘要】相位差的测量在研究网络特性中具有重要作用.设计一个测量快速、精确的相位差计已成为生产科研中重要课题.提出了基于平均值原理相位差计的设计方法,采用FPGA芯片实现了平均值相位差计,重点时相位差测量中的超前与滞后判断、输入信号处理、相位差计数器、锁存显示等几个数字环节进行VHDL语言编程,顶
层用原理图方式构建了相位差测量系统.该系统电路结构简单,占用逻辑资源少,抗干扰能力强,可靠性高.
【总页数】3页(P18-20)
【作者】赵威威;廖京川;余先伦;李红莲
【作者单位】重庆三峡学院,重庆,万州,404000;重庆三峡学院,重庆,万州,404000;重庆三峡学院,重庆,万州,404000;西南交通大学,四川,成都,610031
【正文语种】中文
【中图分类】TN957.53
【相关文献】
1.相位差的测量及虚拟相位差计的设计 [J], 李国朝;禹定臣;张继金
2.基于FPGA的数字频率计原理设计与实现 [J], 张一鸣
3.基于相关原理的相位差测量及虚拟相位差计的设计 [J], 李国朝;黄庆华
4.基于相关原理的相位差测量及虚拟相位差计的设计 [J], 李国朝;黄庆华
5.基于相关原理的虚拟相位差计的设计 [J], 李国朝
因版权原因,仅展示原文概要,查看原文内容请购买。
基于FPGA和MCU的相位测量仪的设计-毕业设计
存档日期:存档编号:本科生毕业设计(论文)论文题目:基于FPGA和MCU的相位测量仪的设计学院:电气工程及自动化学院专业:电气工程及其自动化XX大学教务处印制随着社会和历史的不断进步,相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,数字式相位测量仪因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。
本文首先论述了相位测量技术的国内外发展概况,并根据现状设计了此相位测量系统。
该设计包括系统设计的理论分析,系统结构设计及硬件实现,最终验证了该测量系统的可行性和有效性。
该设计采用单片机与FPGA相结合的电路实现方案,很好地发挥了FPGA的运算速度快、资源丰富、编程方便的特点,并利用了单片机的较强运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。
文章主要介绍设计方案的论证、系统硬件和软件的设计,给出了详细的系统硬件电路图和系统软件主程序流程图。
关键词: 数字式相位测量仪单片机 FPGA 设计方案Along with the social and historical progress, phase measurement technology is widely used in national defense, scientific research, production and other fields, on the phase measurement requirements are also gradually to high precision, high intelligent direction, in the range of low frequency digital phase measurement instrument, because of its high precision measurement resolution and highly intelligent, intuitive characteristics have been more and more widely applied.This text first discusses the phase measuring technology development in domestic and international, and according to the present situation designs the phase measuring system. The design includes system design theory analysis, system structure design and hardware realization, finally verified the feasibility and validity of the system.The combination of MCU and FPGA is adopted in the design .It has the features of FPGA high operating speed, abundant resources and convenient programming. And the use of MCU’s strong operation and control function, which makes the whole system modularized, the hardware circuit is simple and the operation is convenient. The paper mainly introduces the designs of the demonstration, hardware and software, the hardware circuits and main software program are given in detail.Keywords:Digital phase measuring instrument MCU FPGA Design strategy目录摘要 (I)Abstract (II)1 绪论 (1)1.1课题背景及研究意义 (1)1.2国内外发展动态 (1)1.3课题设计任务 (3)2 设计方案论证 (4)2.1以MCU为核心的实现方案 (4)2.2以MCU和FPGA相结合的实现方案 (8)2.3两个设计方案的比较 (11)3 系统硬件设计 (13)3.1输入模块设计 (13)3.2基于FPGA的数据采集模块设计 (14)3.3基于MCU的数据处理模块设计 (16)3.4显示模块设计 (20)4 系统软件设计 (20)4.1FPGA的Verilog HDL程序设计 (20)4.2MCU的汇编语言程序设计 (24)5 系统设计总结 (29)致谢 (30)[参考文献] (31)附录1 (32)附录2 (33)1 绪论1.1 课题背景及研究意义随着社会和历史的不断进步,科学技术突飞猛进的发展,电子技术广泛应用于工业、交通、国防、科研、生产等各个领域,而相位测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的数字显示相位差测量仪
[摘要] 本文主要介绍了数字显示相位差测试仪的设计方案和硬件部分。
针对FPGA的特点,在数字相位差测量系统的设计思想上,给出了一种用FPGA 芯片EP1K10TC144-3实现相位差智能化测量仪的方案。
该测量仪只需少量的外围电路,有效将测量信号正弦波,方波、三角波信号移相放大,整形为所需要的方波信号,且不失真,测量这些信号的相位差,硬件电路简单,实现了输入阻抗大,误差小,精度高,抗干扰强。
[关键词] FPGA 相位差测量晶振
1.基于该题目
数字显示相位差测量仪,我们在方案设计上采用了三种不同的方案,各方案各有优缺点,在综合考虑了几种方案后,我们选定了基于FPGA的数字显示相位差测量仪,因为FPGA是在可编程专用集成电路(ASIC)的设计基础上发展起来的。
由于它们集成度高、可重复编程,并能实现系统级编程(ISP),在近10年内得到迅速发展。
FPGA的集成度、工作速度不断提高,包含的资源越来越丰富,可实现功能越来越强大,具有静态可重复编程或在线动态重构的特性,使得硬件功能可以像软件一样通过编程来修改,不仅使设计修改变得十分容易,而且大大提高了电子系统的灵活性和通用能力,已成为当今实现电子系统集成化的重要手段。
该测量仪只需少量的外围电路,有效将测量信号正弦波,方波、三角波信号移相放大,整形为所需要的方波信号,且不失真,测量这些信号的相位差,硬件电路简单,实现了输入阻抗大,误差小,精度高。
2.系统设计思想
2.1系统设计
整个测量我们分为两个部分,一部分是测量输入的信号A的频率,在这一部分中,将一个78125的晶振经一个计数分频得到频率为0.5HZ的信号(0.5HZ 信号的周期为T=2),当原信号A与0.5HZ的信号与非的时候,其低电平半周期时(也就是T=1S时),会有一段脉冲个数,将此脉冲个数送入计数器计数输出,输出的值即为原信号的频率值;另一部分则是测量输入的两个同频异相信号A 和B的相位差,而我们输入的都是单个的模拟信号,所以在测试相位差的时候首先应产生两个同频异相的信号。
因此必须使输入原信号A通过一个移相网络,得到两个同频异相的信号(两个输出信号中一个是原信号A,另一个是移相后的信号B)。
然后将A,B两个信号经放大整形进行异或得到相位差信号C,同时将A信号3600倍频,在将C信号与3600倍频后的信号3600fc进行与非,然后将输出信号D通过计数器计数,将所得计数值N经过算法计算后得到信号的相位差值送往数码管显示。
那数码管显示的值和相位差又有什么关系呢?我们可以先看下面的算法:
两被测信号的相位差可表示为:
Phase=360(t1-t2)/T (1)
其中T为被测信号周期,t1-t2为相位差时间。
数字测量时的表达式:
Phase=360NØ/T=N(360fc/fm)(2)
其中Ø 为计数脉冲周期,fm为其频率,fc为被测信号频率,N为计数值。
显然这个表达式包括乘法和除法,计算烦琐,利用单片机处理,固然可以,但是仔细观察(2)就可以发现,若分子部分360Ø与分母部分T可以撤去,即360Ø/T=1,则PHASE=N,也就是说计数器的值N即是相位差P,这个假设成立的条件是360Ø=T,用频率表示为360Ø/ fm=1/ fc,fm=360 fc,即计数脉冲的频率为被测信号频率的360倍时,计数器的值就表示了相位差,显然此时测量的精度为1度。
若要使相位差的精度达到0.1度,仍然从相位差表达式出发,将相位差表达式进行变形:
PHASE=(N/10)*(3600 fc/ fm)(3)
当fm=3600 fc时,计数器的值N除以10即为相位差,则测量精度提高到0.1度,因此在显示时,小数点左移一位即表示相位差。
通过上面是算法我们就可以知道,相位差的值为数码管显示值×0.1°。
在此设计中,移相网络、放大及整形由硬件实现,分频、异或、与非、控制及计数都由软件来实现。
在这个方案中,我们用晶振代替锁相环。
当然在方案二中,我们必须考虑选择的晶振的大小,由于要求能测量20-10KHZ信号,如果我们将信号满相位分成3600等份1/(3600*10K)=1/36000K≥1/36M的计算,我们可以知道,在本设计中只要36M的有源晶体就可以满足我们的设计要求。
如果我们用晶振直接代替锁相环的话,通过仔细观察我们发现是有问题的。
不管什么信号通过锁相环后出来的信号都是原输入信号的3600倍频,但是对于晶振来说,当输入信号为10KHZ 的时候,能够将原输入信号3600倍频,也就是说精度为0.1;当输入信号为1KHZ 的时候,可以为原输入信号36000倍频,精度为0.01。
计数器输出的值只需要乘以0.1或0.01就可以得到准确的相位差值。
而当频率在0~1K和1K~10K之间时,计数器所得的值就不能通过这种方法读出准确的数值,这样就需要有更好的办法来便于读出计数值。
为了达到这一要求,就必须对被测信号进行跟踪倍频,也就是说与相位差信号相与非的信号频率是一定要是原被测信号频率的3600
倍。
为了得到这一精确的3600倍频后的信号,我们在测频率部分中增加了一个计数器和一个分频比可变分频器,计数器的作用是将频率器输出的脉冲信号计数,计出频率值再送到可变分频比分频器中。
可变分频比分频器的作用是将频率计数器送入的值做判断, 如果计数所得的信号频率小于1KHz,则只将该信号倍频36000倍,如果计数所得的信号频率大于1KHz,则只将该信号倍频3600倍,然后由36MHz的有源晶振通过分频的方式产生相应的倍频信号输出。
这里将送入的信号通过判断后决定倍频36000倍还是3600倍是为了使整个测量系统在保持测量范围的条件下测量精度达到最高,这样,通过这个可变分频器,我们只需将计数器计得的数值,直接乘以0.1或0.01读出的就是相位差的准确值了。
测频率:78125的晶振经一个计数分频得到频率为0.5HZ的信号,在将此信号与原信号A与非,将所得的信号送到计数器读数输出,输出的值即为原信号的频率值
测相位:同频信号fr、fs经过放大、整形后,输出标准的TTL电平,再将同频信号进行2分频后,送入异或,而原输入信号经过与非、计数、分频比可变器后出来的信号为原输入信号的3600倍频,通过异或后的信号在与分频比可变器输出的信号进行与非,将与非后的信号送入计数器计数,计数的N值由数码管显示。
数码管的值×0.1即是精确的相位差的值。
在这个数字系统设计中采用了自顶向下、由粗到细、逐步求精的方法。
将系统的整体分解为各个子系统和模块,使整个系统中各子系统划分关系合理,便于逻辑电路的设计、调试、仿真及实现。
2.2 EP1K10TC144-3介绍
在本设计中,最核心的芯片就是EP1K10TC144-3,通过软件编程,它能实现包括了计数、控制、门锁等所有数字电路的实现。
EP1K10TC144-3是Altera 公司的ACEX1K系列FPGA,它采用COMS工艺,并以第二代矩阵为基础,实际上也是一种基于SRAM的器件。
EP1K10TC144-3有144个引脚,其中5根用于ISP下载,可方便的对其进行在系统编程,最高工作频率高达125MHZ,并支持多种编程方式,同时可利用Altera公司的第三代开发软件MAX+PLUSⅡ方便的进行仿真、综合和下栽。
3.测试方法及结果
3.1 实验测试仪器
(VP-5564D)40M双踪示波器;
(TFG2001B)0.4MHZ—40MHZ数字合成信号发生器;
毫伏表
数字电路实验箱
3.2 测试方法及结果
测试包括硬件电路测试和程序调试。
硬件电路采用分级测试法,先在实验板上按信号流向逐级调通,最后统一制板统一调测。
程序调试采用断点读值比较法直至读数为期望值或接近期望值为止。
(1)相位差精度测量:
由于该部分电路前端只进行了简单的整形,分频,所以无需高精度测量,只需定性观察是否起到相应的作用即可。
用信号发生器输入一正弦波,经过比较器LM393后,用示波器观察,得到与输入信号同频率的很好的方波,且波形没有失真。
用示波器双通道观察,在输入同一信号时,两方波应该严格同步,没有相位差。
结合软件调试:用数字信号发生器产生不同幅度,不同频率的正弦波,经过移相网络,加入电路,执行程序,看是否与示波器所读值相同。
(2)输入阻抗测量:
将一交流信号Ui接入系统输入端,框图如下:
输入阻抗计算公式为:Ui-Us/R=Us/Rin得:
Rin=R×Ui/Ui-Us
(3)测试结果:
a) 预置移相:搭建在100HZ时相移约50°得RC移相网络到输入端,采集数据如下:
b) 输入阻抗最后测量结果为:
Rin=Ui/(Ui-Us)×R=4.1/(5.2-4.1)×50K≈200K
结束语本设计已完成下载、调试、测试等工作,测试情况良好,在Maxplus Ⅱ中的软件时序仿真和ACEXIK10TC中的双踪示波器实际测量,结果基本达到预定目标,用FPGA不难提高测量精度,但精度的提高是以牺牲频率测量范围为代价发。
本设计中采用36M有源晶振,测量范围为20-10KHZ左右,测量精度为0.1°,调节电位器很方便的调节了频率的宽度,实现了实验的要求。
参考文献:
[1]何建新. 《EDA技术及应用教程》. 四川大学出版社
[2]孙传友. 《感测技术及基础》. 电子工业出版社。