EDN China > 设计实例 > 测试与测量 > 通用测试仪器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

来源:电子设计应用/刘力 陈明义?? 2006年11月14日 ?? 收藏0
nbsp;????????????????????????????? 图3 控制模块顶层原理框图

图3中,B1、C10、D100、P1K分别为频率步进输入端;Re为复位端;PW1、PW10分别为1?? 10?的相位步进输入。其中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?。LOR为异或门,其输出信号的脉宽为(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位DAC THS5651来产生波形。通过在示波器观察两路波形发现,波形比较稳定,频率与设定值一致。此外,为了测量DDS模块产生的移相是否正确,还人为的通过相位输入端设定相移值,并将参考波形输出端和移相输出端输出的波形经整形后,用测相模块测量两路波形的相位差,通过硬件调试发现测得的相位差与设定的相位差完全一致,从而证明了该系统是精确、稳定的。

结语

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


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? 相位测量仪? 集成电路?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈