低频数字相位测量仪.docx
《低频数字相位测量仪.docx》由会员分享,可在线阅读,更多相关《低频数字相位测量仪.docx(27页珍藏版)》请在冰豆网上搜索。
低频数字相位测量仪
现代电子学实验报告
实验题目:
低频数字相位测量仪
姓名:
年级:
2012级
指导教师:
完成日期:
2015年10月14日
原创性声明
本人声明本实验报告涉及的电路图、程序代码均为自己设计,没有抄袭他人的成果。
特此声明!
声明人:
2.1总体框架....................................................2
三、系统模块设计....................................................3
3.1信号整形电路的设计...........................................3
3.2FPGA数据采集电路的设计......................................5
3.2.1硬件部分..............................................5
3.2.2精度分析..............................................5
3.2.3软件部分..............................................5
3.3、单片机数据运算控制电路的设计...............................6
3.3.1硬件部分..............................................6
3.3.2软件部分.............................................7
3.4.1显示部分设计方案....................................10
3.4.2数据显示电路.........................................10
四、参考资料.......................................................12
附录...............................................................13主要器件介绍.......................................................13
FPGA数据采集程序.................................................15
硬件电路图.........................................................21
低频数字式相位测量仪的设计
摘要:
基于过零检测法原理,以单片机89C51和可编程逻辑器件CPLD为核心,从数据采集﹑数据运算控制、显示等电路功能电路设计,实现了一个低频数字式相位测量仪系统。
在此过程中,采用MCU与FPGA相结合的方案,将软件部分为数据采集、运算、控制和单片机控制显示两部分,充分发挥单片机具有的控制、运算能力强,FPGA数据采集速度快的特点来对实现各个模块功能进行程序设计,同时还对相关程序进行调试和仿真,验证了其可行性,使其性能接近最优。
而对硬件电路设计包括采用施密特触发器组成的整形电路、显示电路、FPGA芯片及单片机外围电路等,实现了对频率信号频率、相位差的显示,同时配合系统完成数据采集、运算、控制等功能。
在上述基础上,本文还对有关频率信号的频率、相位测量技术及理论进行了研究和分析,对FPGA可编程芯片、单片机控制等的运用进行了学习,从而为课题研究奠定了理论基础。
关键字:
数据采集;单片机;FPGA;频率;相位差;
一、系统设计要求与技术指标
设计并制作一个低频数字相位测量仪,其设计要求如下:
(1)频率范围:
20Hz~20kHz。
(2)相位测量仪的输入阻抗≥100kΩ。
(3)允许两路输入正弦信号峰-峰值可分别在1~5V范围内变化。
(4)相位测量绝对误差≤2。
(5)具有频率测量及数字显示功能。
(6)相位差数字显示:
相位读数为0~359.9,分辨力为0.1。
二、方案选择与可行性论证
2.1、总体框架
根据系统的设计要求,本系统可分为三大基本组成部分:
数据采集电路、数据运算控制电路和数据显示电路。
考虑到FPGA/CPLD具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA/CPLD和单片机相结合,构成整个系统的测控主体。
FPGA主要负责测量两个同频待测正弦信号的频率和相位差所对应的时间差。
单片机则负责读取FPGA测量到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,同时通过功能键切换显示出待测信号的频率和相位差。
同时,由于FPGA对脉冲信号比较敏感,而被测信号是周期相同,相位不同的两路正弦波信号,为了准确地测出两路正弦波信号的相位差及其频率,我们需要对输入波形进行整形,使正弦波变成方波信号,并输入FPGA进行处理。
综上所述,这个系统的总体原理框图如图2.1所示。
图2.1系统原理框图
根据题目要求,主要任务是频率和相位测量,几种测量方案比较如下:
2.2、频率测量
方案一:
计数式直接测频法
这是指在一定的时间间隔T内,对输入的周期信号脉冲计数为:
N,则信号的频率为fx=N/T。
方案二:
测周法
设信号周期为Tx,由晶体振荡器(或经分频电路)输出时标为Ts的脉冲,将Tx与时标Ts进行比较,若在Tx期间脉冲技术值为N,则Tx=NTs。
综合考虑量化误差与标准误差得出:
测量低频时不宜采用直接测频方法,宜采用测低频信号的周期再换算成被测信号的频率,从而提高测量的精确度。
为了提高测量准确度,把被测信号经过几级10分频电路,使周期扩大10,100,1000倍等,主门开放时间及脉冲数N均增长同样倍数,再通过内部电路自动移动小数点位置,使显示的数值为被测信号的一个周期所对应的时间。
利用这种“周期倍乘”的方法可以减少
1误差,从而提高了测量的准确度。
2.3、相位测量
我们采用直读式数字相位计,其基本原理是基于时间间隔测量法,通过相位-时间转换器,将相位差
的两个信号(分别称参考信号和被测信号)转换成一定的时间间隔
的起始和停止脉冲。
相位测量方案通常分为三种。
方案一:
将被测的两路正弦波信号经过波形整形为方波信号,利用异或门电路进行鉴相处理,将得到的脉冲序列经过RC平滑滤波取出其直流分量,该直流电平的幅值与两路信号的相位差成正比,将此信号送入A/D转换器由单片机进行运算处理从而计算出相位差值。
方案二:
采用脉冲填充计数法,将正弦信号经波形整形称为方波信号,其前后沿分别对应于正弦波的正相过零点与负相过零点,对两路方波信号进行异或操作之后输出脉冲序列的脉宽可以反映两列信号的相位差,以输入信号所整成的方波信号作为基频,经锁相环倍频得到的高频脉冲作为闸门电路的计数脉冲,由单片机对获取的计数值进行处理得到两路信号的相位差。
方案三:
将两路被测正弦波信号整成方波信号,在一路信号的上升沿来时鉴相部分同方案二,将两路方波信号异或后与品振的基准频率进行与操作,得到一系列的高频窄脉冲序列。
通过两片计数器同时对该脉冲序列进行计数,一路方波信号送入单片机外部中断口,作为控制信号控制两片计数器,得到的两路技数值送入单片机进行处理得到相位差值。
对以上三种方案进行比较,方案一在低频段时,RC滤波电路的输出波动很大,难以达到要求的相位精度,而方案二在所测频率较高时,受锁相环工作频率等参数的影响会造成相位差测量的误差,极大地影响测量的精度,采用方案三由高精度的晶振产生稳定的基准频率,可以满足系统高精度、高稳定度的要求。
三、系统模块设计
3.1、信号整形电路的设计
方案一:
最简单的信号整形电路就是一个单门限电压比较器(如图3.11所示),当输入信号每通过一次零时触发器的输出就要产生一次突然的变化。
当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。
图3.11采用单门限触发器的整形电路
方案二:
使用施密特触发器组成的整形电路。
施密特触发器在单门限电压比较器的基础上引入了正反馈网络。
由于正反馈的作用,它的门限电压随着输出电压Uo的变化而改变,因此提高了抗干扰能力。
本系统中我们使用两个施密特触发器对两路信号进行整形,电路图如图3.12所示。
图3.12采用施密特触发器的整形电路
方案比较:
为了避免过零点多次触发的现象,提高抗干扰能力,减少计数误差,故采用方案二电路。
图中,R2和R6均为上拉电阻,可选10K。
通过调节电位器RV1,使得两个施密特触发器的门限电平相等。
3.2、FPGA数据采集电路的设计
FPGA数据采集电路的功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。
FPGA数据采集的硬件电路我们可采用FPGA下载板来实现,该下载板包含FPGA芯片、下载电路和配置存储器,其电路结构可参见对应的FPGA下载板说明书。
本电路主要是进行FPGA的硬件描述语言(HDL)程序设计。
3.2.1、硬件部分:
根据系统的总体设计方案,FPGA数据采集电路的输入信号有:
CLK——系统工作用时钟信号输入端;CLKAA,CLKBB——两路被测信号输入端;EN——单片机发出的传送数据使能信号,在EN的上升沿,FPGA向单片机传送数据;RSEL——单片机发出的传送数据类型信号,当RSEL=0时,FPGA向单片机传送被测信号频率数据,当RSEL=1时,FPGA向单片机传送被测信号相位差数据。
FPGA数据采集电路的输出信号有:
DATA[18..0]——FPGA到单片机的数据输出口,由输出控制信号EN和RSEL控制。
3.2.2、精度分析
本数字式相位测量仪的要求是测试并显示输入信号频率范围在20Hz~20KHz,测试并显示a、b的相位差,相位差的变化范围为
=0~
,相位差的显示分辨力为
,要求测量相位的绝对误差
,由此可知:
由以上分析可知,要保证系统要求的精度,必须采用低于1/0.27us=3.7MHz的采集速度对信号周期进行计数,为进一步提高测量精度,同时便于计算,我们采用了10MHz方波信号作为FPGA数据采样信号,FPGA在10MHz时钟信号作用下对待测信号周期计数,并对两个同频正弦信号的相位差所对应的时间差进行计数,分别得到19位数字量的物理单位是0.1us.本设计采用20MHz的高频晶体振荡源,由FPGA内部的分频模块对20MHz信号进行二分频,得到10MHz的数据采样信号,其采样周期0.1us。
为了实现中低频测量精度的要求,我们可采用10MHz的信号来循环计数被测信号的周期和两个同频正弦信号的相位差所对应的时间差值,时间单位为0.1us。
也就是说,计数周期和相位差所对应的时间差值的精度是0.1us。
20KHz时达到10KHz,可以实现高频多测量,低频少测量的效果,时间计数准确可靠,为后面单片机的数据处理提供了稳定、可靠的数据源。
3.2.3、软件部分:
根据以上设计思想及精度要求,FPGA数据测量电路可设计成五个模块:
时钟信号分频模块FPQ,作用是:
将输入的20MHz的信号分频成10MHz的测控基准时钟信号CLKF。
测量控制信号发生模块KZXH,作用是:
根据两路被测信号整形后的方波信号CLKAA和CLKBB,产生有关测控信号,包括时间检测使能信号ENA,时间检测清零信号CLRA,锁存频率数据控制信号LOADA,锁存两路被测信号相位差数据控制信号CLB。
被测信号频率和相位差数据检测模块SJJC,作用是:
在控制信号ENA和CLRA的控制下,对测控基准时钟信号CLKF进行计数和清零,以便获取有关频率和相位差数据。
数据锁存模块SJSC,作用是:
在LOADA的上升沿将频率数据锁存在DATAA中,在CLB的下降沿时将相位差数据存在DATAB中,
输出选择模块SCXZ,作用是:
根据单片机发出的控制信号传送使能信号EN和输出数据类型选择信号RSEL,将被测信号频率数据或相位差数据输出。
图3.2.3顶层设计模块
3.3、单片机数据运算控制电路的设计
单片机数据运算控制电路的功能就是负责读取FPGA/CPLD采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,同时显示出待测信号的频率和相位差。
3.3.1、硬件部分:
单片机数据运算控制电路的硬件可由单片机、晶振电路、按键及显示接口电路等组成。
使用单片机的P0口,P2口及P1.0、P1.1、P1.2、P1.3接收FPGA送来的对应于正弦信号的周期、相位差的19位数据信号。
该电路的工作原理是:
单片机通过向FPGA发送数据传送指令,使FPGA按照单片机的要求发送数据,同时通过使用单片机的串口,将待显示的数据信息送给数据显示电路显示。
其原理图如图3.31所示。
图3.31单片机系统原理图
3.3.2软件部分:
单片机数据运算控制电路的软件设计思路是,单片机不断地从FPGA读取信号的周期和a、b信号相位差所对应的时间差,读取数据后进行有关计算,并通过转换后,送出给显示模块,实现频率和相位差的显示。
单片机主程序流程图如图3.32所示。
图3.32主程序流程图
单片机在获取FPGA的数据时,开始的是一般的读取指令MOV指令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据,通过控制口线P1.3、P1.4控制FPGA释放数据。
经过多次测试,采用这种方式获得了比较好的效果。
单片机读取FPGA数据的程序流程图如3.33所示。
图3.33读FPGA数据程序流程图
单片机从FPGA读取信息后,对信息进行计算,算出信号a的频率,其流程图如图3.34所示。
图3.34计算a的频率程序流程图
由于a、b信号是两路频率相同、相位不同的正弦波信号,因此经过整形电路后形成频率相同,时间上不重合的两路信号,这样,FPGA可以计数出两路信号的时间差从而可以计算出a、b信号的相位差,其程序流程图如图3.35所示。
图3.35计算a、b相位差的程序流程图
最后单片机需要将信号送到输出端显示出来,即单片机通过显示子程序将信息送到显示电路显示出来,程序流程图如图3.36所示。
图3.36显示程序流程图
3.4、数据显示电路的设计
3.4.1、显示部分设计方案
方案一:
采用八位共阴极LED数码管进行显示,利用单片机串行口的移位寄存器工作方式,外接MAX7219串行输入共阴极显示驱动器,每片可驱动8个LED数码管。
方案二:
采用点阵字符型LCD液晶显示,可以显示数字与阿拉伯字母等字符,随着半导体技术的发展,LCD的液晶显示越来越广泛的应用于各种显示场合。
比较这两种方案,数码管显示驱动简单,但显示信息量少,功耗大;利用液晶显示可以工作在低电压、低功耗下,显示界面友好、内容丰富,综合考虑,选用LCD来实现显示功能。
3.4.2、数据显示电路
整个系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,在此设计中采用LCD12864来显示频率与相位差数据显示电路如图3.41所示。
图3.41数据显示电路
四、参考资料
【1】蒋焕文,孙续.电子测量技术【M】第三版.北京:
中国计量出版社,2014.4:
156页——163页
【2】黄智伟.全国大学生电子设计竞赛系统设计【M】.北京:
北京航空航天大学出版社,2006.12:
230页---245页
【3】包敏.基于FPGA与单片机控制技术结合的低频数字相位测量仪设计【D】.湖南:
湖南工程学院,2013
【4】潘松,黄继业.EDA技术实用教程【M】.北京:
科学出版社,2013
【5】童诗白,华成英.模拟电子技术基础【M】第四版.北京:
高等教育出版社,2006.5
【6】王振红.VHDL数字电路设计与应用实践教程【M】.北京:
机械工业出版社,2003.6
【7】孟宪元,钱伟康.FPGA嵌入式系统设计【M】.北京:
电子工业出版社,2007.10
【8】王秀霞.高精度相位计的研究与设计【D】.河北:
燕山大学,2004
附录:
1、主要器件介绍
(一)LM339介绍
LM339集成块内部装有四个独立的电压比较器,其外形及管脚排列如图1.1所示。
图1.1LM339芯片引脚排列图
在图2.1中,LM339每个比较器有两个输入端和一个输出端。
两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。
用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压。
当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。
当“-”端电压高于“+”端时,输出管饱和,相当于输出端接低电位。
两个输出端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。
LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。
选不同阻值得上拉电阻会影响输出端高电位的值。
另外各比较器的输出端允许连接在一起使用。
图1.2单限比较器图
图1.2给出了一个基本单限比较器。
输入信号Uin,即待比较电压,它加到同相输入端,在反相输入端接一个参考电压(门限电压)Ur。
当输入电压Uin>Ur时,输出为高电平UoH。
(二)LCD12864介绍
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性
1.低电源电压(VDD:
+3.0--+5.5V)
2.显示分辨率:
128×64点
3.内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
4.内置128个16×8点阵字符
5.2MHZ时钟频率
6.显示方式:
STN、半透、正显
7.驱动方式:
1/32DUTY,1/5BIAS
8.视角方向:
6点
9.背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
10.通讯方式:
串行、并口可选
11.内置DC-DC转换电路,无需外加负压
12.无需片选信号,简化软件设计
13.工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
管脚说明
表1.3LCD12864管脚说明
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0~+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:
8位或4位并口方式,L:
串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
基本用途
该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。
(三)AT80C51单片机介绍
AT80C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT80C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2、FPGA数据采集程序
(一)FPGA的VHDL源程序清单
--SZXWY﹒VHD
LIBRARYIEEE;
USEIEEE.STD_L
OGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSZXWYIS
PORT(CLK:
INSTD_LOGIC;
CLKAA:
INSTD_LOGIC;
CLKBB:
INSTD_LOGIC;
EN,RSEL:
INSTD_LOGIC;
CLKAC,CLKBC:
OUTSTD_LOGIC;
DATA:
OUTSTD_LOGIC_VECTOR(18DOWNTO0));
ENDENTITYSZXWY;
ARCHITECTUREARTOFSZXWYIS
SIGNALCLKF:
STD_LOGIC;
SIGNALDATAA:
STD_LOGIC_VECTOR(18DOWNTO0);
SIGNALDATAB:
STD_LOGIC_VECTOR(18DOWNTO0);
SIGNALCLB:
STD_LOGIC;
SIGNALDA:
STD_LOGIC_VECTOR(18DOWNTO0);
SIGNALCLRA:
STD_LOGIC;
SIGNALENA:
STD_LOGIC;
SIGNALLOADA:
STD_LOGIC;
BEGIN
--信号分频模块
FPQ: