基于FPGA的恒温晶振频率校准系统的设计

时间:2010-10-09来源:网络

  1.5 PicoBlaze软核设计

  PicoBlaze是XILINX公司设计的8位微控制器软核,可以嵌入到Cool Runner II、Virtex-E、Virtex-II(Pro) 和 Spartan3(E)的CPLD以及FPGA中,设计灵活方便。PicoBlaze的端口总线提供8位地址(PORT_ID)和读写选通信号,最多可以实现256个输入和输出端口。接口设计如图6所示,PicoBlaze用来接收延迟线模块和计数器模块输出的结果,同时读取异步串行控制器(UART)的数据和状态信息。其中异步串行控制器直接调用XILINX的IP核,与外部GPS模块进行串行通信。


  此外,为了实现对测量数据的存储以方便数据处理,PicoBlaze连接了一个FIFO数据缓冲,用于暂存未处理的测量数据。如图7所示,PicoBlaze每个读写操作需要两个时钟周期,此期间地址总线一直处于有效状态,而读写使能信号仅在第二个时钟周期开始有效,所以地址总线上可以连接适当的逻辑电路进行地址解码。


  设计中使用四路选通器分别连接计数器模块、延迟线模块和FIFO缓冲的输出,其中因计数器模块中采用16位的计数器循环计数,为了与PicoBlaze输入匹配,须将计数值分两部分接到选通器。异步串行控制器的输出和状态信息分别接到三路选通器,剩余一路连接四路选通器的输出。由于UART和PicoBlaze使用的时钟频率和测量部分不同,为了提高数据传输的可靠性,在选通器之间增加了流水线寄存器。

  系统运行时PicoBlaze将对UART状态进行查询,当检测到有GPS串码数据时便开始读取其串码信息。GPS串码信息用于分析当前GPS的状态,如果检测GPS模块已经锁定卫星,则系统开始进行测量和校准工作。

  2 测量数据处理

  根据测量到的时间间隔数据,按照公式:


  可以计算出晶振信号相对于GPS的频率偏差,其中T1和T2分别是测量部分相隔采样时间τ前后输出的时间间隔测量值。根据频率偏差的大小,再结合晶振的压控灵敏度,便可以实现对晶振的输出频率进行控制和修正。但GPS信号在传输过程中容易受到外界影响,GPS模块输出的1-pps信号是一个波动信号,其短期稳定性较差。图8的黑色曲线是使用本系统测量得到的本地晶振相对于GPS系统的时间间隔曲线,使用这些数据计算得到的频率偏差也会受到影响而发生波动,所以不能直接使用。


  从式(4)可以看出,计算频率偏差仅仅需要窗口的端点处的测量值而不受窗口内的测量值影响。在实际应用时,计算量很小而且简单,方便使用PicoBlaze软核处理器来实现。PicoBlaze连接的FIFO数据缓冲用来存储滑动窗口中的测量数据。当存储达到预设的窗口长度时,将从FIFO中顺序读取出先前的测量值,配合当前测量值,根据式(3)计算出频率偏差。图8的白色曲线是添加滤波处理后系统输出的时间间隔,对比可以看出滤波对抖动和较大的跳变点都有很好的抑制作用。

  本文介绍的晶振频率校准系统利用GPS模块输出的标准秒脉冲信号对本地晶振频率进行校准。本设计基于FPGA内部进位逻辑资源实现了高分辨率的时间间隔测量单元,并配合滑动平均滤波法利用PicoBlaze处理器对测量的时间间隔数据进行实时处理。不仅能够准确地测量本地晶振分频信号与GPS秒脉冲信号之间的时间间隔,而且降低了GPS秒脉冲波动对测量结果的干扰,为校准晶振频率提供可靠的修正数据。此外,系统测控部分完全在FPGA中实现,利于提高测量分辨率,减小系统体积,提高系统运行的稳定性。本系统不仅可以用于大地电磁三维采集站,还可以在其他对频率准确度有要求的仪器中使用。

1 2 3

关键词: FPGA 恒温晶振 频率校准 系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版