新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA的高精度相位测量仪的设计方案

基于FPGA的高精度相位测量仪的设计方案

作者: 时间:2011-01-13 来源:网络 收藏

  图3中,B1、C10、D100、P1K分别为频率步进输入端;Re为复位端;PW1、PW10分别为110的步进输入。其中fbcout为频率控制字计算模块,完成由频率步进值到二进制频率控制字的转换。

  cout360为输入计算模块,由输入端的脉冲输入计算出实际的移相值(0~359)。add_data_rom是存放相位控制字的ROM,其数据文件是MIF文件,内部360个地址值分别对应0~359的相危每个地址中的数据为每个相位值对应的正弦波ROM的地址值。由于正弦波ROM将一个波形分成了1024个点,则0~359的相位值对αSINROM中的360个点。考虑到1024/360=2。84非整,为了减小移相误差,提高移相精度,本中采用分段处理的方法,将360个地址分成60组。第15、30、45、60组的6个地址中点与点之间的距离都为3;其余各组前5点之间的点距为3,第5点与第6点之间的点距为2。

相位测量模块原理

  本系统的相位测量采用由高速时钟脉冲测量两路波形过零点之间距离的方法。相位测量模块原理框图如图4所示。

相位测量模块原理框图

  图4相位测量模块原理框图

  图4中,A、B为两路方波输入,CLK为50MHz时钟输入,dfd2块为下降沿触发的2分频模块。A、B经2分频的目的是使测相范围由0~180扩大0~360。XOR为异或门,其输出信号的脉宽为(b-a)。clxw为一高速计数器,通过25MHz的高频时钟来计算(b-a)的长度。fb360模块为倍乘模块,主要完成(b-a)×360的运算。bpsc模块为分频模块,将25MHz的时钟信号进行(b-a)×360倍的分频,使其输出信号脉宽为Tclk×(b-a)×360(Tclk为25MHz的时钟周期)。xwc为相位差计数模块,通过A相输入脉冲,计算Tclk×(b-a)×360的长度,然后完成(b-a)×360/a的计算,进而得出相位差值输出,同时该模块还将测得的相位差值送到数码管显示。

  在对该模块进行仿真时,人为设定了频率为10KHz,相位差为72。

系统验证调试

  在整个系统的验证中,由外部按键通过控制模块来设定波形的频率和相位值,并通过将DDS模块的输出端FOUT和POUT外接10位DACTHS5651来产生波形。通过在示波器观察两路波形发现,波形比较稳定,频率与设定值一致。此外,为了测量DDS模块产生的移相是否正确,还人为的通过相位输入端设定相移值,并将参考波形输出端和移相输出端输出的波形经整形后,用测相模块测量两路波形的相位差,通过硬件调试发现测得的相位差与设定的相位差完全一致,从而证明了该系统是精确、稳定的。

结语

  本系统选用Altera公司的quartusII4。1作为硬件开发平台,并采用VHDL语言进行电路。在设计中按功能划分模块,方便了调试与修改,且易于升级。同时,系统设计中还较多采用了同步时序电路来实现各个进程模块的功能,从而有效避免了电路毛刺现象。此外,在相位测量模块中,相位差计数块还带有锁存功能,从而有利于输出的相位差值显示稳定。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭