基于FPGA的数字显示相位差测量仪

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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数字合成信号发生器;

毫伏表

相关文档
最新文档