《可同步于GPS的FPGA恒温晶振频率校准系统设计.docx》由会员分享,可在线阅读,更多相关《可同步于GPS的FPGA恒温晶振频率校准系统设计.docx(6页珍藏版)》请在第一文库网上搜索。
1、可同步于GPS的FPGA恒温晶振频率校准系统设计三维大地电磁勘探技术是以面元为单位,多分量采集站为中心,多远参考、互参考和密集布点为特征来获得高质量的采集数据。野外施工时,为了保持站点间同步地进行数据采集,一般采用GPS秒脉冲值号或恒温晶振的定时信号来同步各个采集站点。前者在恶劣的施工环境下常会因为各种干扰而发生跳变,同步效果并不理想。后者长时间存在频率漂移,同样无法维持长时间的同步采集。为解决以上问题,本文将GPS授时信号用于校准各站点的压控晶振,之后再使用晶振分频得到定时信号来同步各采集站点。这样不仅克服了GPS授时信号易受外界干扰的缺点,也解决了晶振频率随时间漂移的问题,能获得较为理想的
2、同步信号。为了使本地晶振长时间地同步于GPS系统,就需要不断测量GPS授时信号与本地晶振的分频信号的时间间隔,再根据测量数据来校准和同步本地晶振。因此,时间间隔测量的准确性是保证频率校准系统工作性能的关键。本文基于FPGA集成度高、高速和高可靠性的特点,介绍了晶振频率校准系统在FPGA中的设计方法。系统的特点是使用FPGA内部进位逻辑构造延迟线来实现时间间隔测量,大大提高了测量分辨率,同时使用FPGA嵌入式软核处理器E1coB1aze对系统状态进行监控,并对测量数据进行滤波处理,充分发挥了FPGA的集成优势。1系统设计1.1 系统实现方案系统的原理如图1所示,主要由GPS接收模块、FPGA测控
3、模块、D/A转换模块和压控恒温晶振4部分组成。GPS接收模块用于输出标准的1-pps脉冲信号,FPGA测控模块用于测量本地晶振分频信号与1-pps信号的时间间隔,并将所测值在PicoB1aze中进行处理得到晶振输出频率相对于GPS系统的频率偏差,最后将结果作为D转换模块的输入得到修正本地晶振频率的控制电压。1.2 测量原理时间间隔在FPGA中的测量的原理如图2所示,使用1-pps秒脉冲信号与本地晶振分频得到的100kHz信号进行比对,得到的时差即是待测的时间间隔。由于只采样两者的上升沿间的时间间隔,所以用100kHz分频信号代替1HZ秒信号与1-pps比对,可以减小每次的测量值,方便数据处理。
4、需要注意的是晶振相对于1-pps的时差范围必须在IOOkHz信号的一个周期内,即该信号的频率决定了测量量程的大小,可以根据实际测量需要来决定该信号的频率。图2中T是待测的时间间隔,1是计数时钟周期,M是计数器在1-pps信号到来时的计数值,N是计数器在IOOHZ信号到来时的计数值,n2是由于1-pps脉冲上升沿和计数时钟上升沿不一致所引起的测量误差,这部分误差由内插延迟线来测量。由于100kHz信号由晶振分频得到,它和计数时钟同步,所以不会产生测量误差。因此,待测的时间间隔可以表示为:T=(Af-Ar)Ti+nTjIVeeTICOk1U-I8IR!AC1KFXISO.中断中淅*中单元Fff15
5、为数森尔元结的o71cy瓦j7.-.M&aQh1if飨而时钟前沿附近计数器输出为亚稳态,如果1-PPS信号恰好在这个时刻到达,便会将错误的计数值锁存。为了解决这个问题,模块中使用数字时钟管理器输出相位差为180的两路时钟,分别驱动两个计数器同时工作,这样无论任何时刻都能保证其中之一的输出为正确值,之后再对两者进行判断选择。选择信号由延迟线单元提供,通过统计1-pps信号经过延迟单元的个数来确定1-PPS信号与时钟前沿的时差,然后输出Se1eCt信号。两个计数器进行循环计数,每个计数器都连接着两组堂超其中一组将GPS秒脉冲信号作为工作时钟;另一组的时钟信号与对应计数器的时钟相连接,且其使能端与1
6、00kHz分频信号相连。当GPS秒脉冲和100kHz信号到来时,便会将计数值送入相应的寄存器组。这样可以充分利用FPGA的全局时钟资源,使相应的寄存器组都使用同一时钟,保证寄存器触发的同步性。此外,使用循环计数的方式也解决了传统起停型计数器由于启动和停止信号不满足建立保持时间而造成计数器输出错误的问题。当1-pps信号与100kHz信号的前沿都到达后,中断单元将输出中断信号,用于通知PiCoB1aZe软核读取测量结果。1.5PicoB1aze软核设计PicoB1aze是XI1INX公司设计的8位微控制器软核,可以嵌入到Coo1RunnerIIVirte-EVirtex-II(Pro)和SPar
7、tan3(E)的CP1D以及FPGA中,设计灵活方便。Pic。B1aZe的巡旦总线提供8位地址(PORT而由读写选通信号,最多可以实现256个输入和输出端口。接口设计如图6所示,PicoB1aze用来接收延迟线模块和计数器模块输出的结果,同时读取异步串行控制器(UART)的数据和状态信息。其中异步串行控制器直接调用X11INX的IP核,与外部GPS模块进行串行通信。图6PimBIazr接口结构Oa/哂雌而此外,为了实现对测量数据的存储以方便数据处理,Pic。B1aZe连接了一个FIFO数据缓冲,用于暂存未处理的测量数据。如图7所示,PiCOB1aZe每个读写操作需要两个时钟周期,此期间地址总线
8、一直处于有效状态,而读写使能信号仅在第二个时钟周期开始有效,所以地址总线上可以连接适当的逻辑电路进行地址解码。时钟UIr1r1nr1港通图7PimBIaze读写时设计中使用四路选通器分别连接计数器模块、延迟线模块和FIFO缓冲的输出,其中因计数器模块中采用16位的计数器循环计数,为了与PiCoB1aZe输入匹配,须将计数值分两部分接到选通器。异步串行控制器的输出和状态信息分别接到三路选通器,剩余一路连接四路选通器的输出。由于UART和Pic。B1aZe使用的时钟频率和测量部分不同,为了提高数据传输的可靠性,在选通器之间增加了流水线寄存器。系统运行时PiCoB1aZe将对UART状态进行查询,当
9、检测到有GPS串码数据时便开始读取其串码信息。GPS串码信息用于分析当前GPS的状态,如果检测GPS模块已经锁定卫星,则系统开始进行测量和校准工作。2测量数据处理根据测量到的时间间隔数据,按照公式:可以计算出晶振信号相对于GPS的频率偏差,其中T1和T2分别是测量部分相隔采样时间前后输出的时间间隔测量值。根据频率偏差的大小,再结合晶振的压控灵敏度,便可以实现对晶振的输出频率进行控制和修正。但GPS信号在传输过程中容易受到外界影响,GPS模块输出的1-pps信号是一个波动信号,其短期稳定性较差。图8的黑色曲线是使用本系统测量得到的本地晶振相对于GPS系统的时间间隔曲线,使用这些数据计算得到的频率
10、偏差也会受到影响而发生波动,所以不能直接使用。滑动平均滤波可以用来削弱测量结果受I-PpS信号波动的影响,取一组测量得到的时间间隔数列T1,T2.Ti、7八T、丁田、0.2;以作为滑动窗口长度将其中个测量值求平均,随着窗口移动便能得到新的时间间隔数列P1、匕、必O由于I-PPS信号包含的是随机误差,所以只要将取值足够大,随机误差变化趋向零,这样就能有效削弱JPPS信号对计算结果的影响根据式(2)计算频率偏差为:从式(4)可以看出,计算频率偏差仅仅需要窗口的端点处的测量值而不受窗口内的测量值影响。在实际应用时,计算量很小而且简单,方便使用PicoB1aze软核处理器来实现。PicoB1aze连接
11、的FIFO数据缓冲用来存储滑动窗口中的测量数据。当存储达到预设的窗口长度时,将从FIFO中顺序读取出先前的测量值,配合当前测量值,根据式(3)计算出频率偏差。图8的白色曲线是添加滤波处理后系统输出的时间间隔,对比可以看出滤波对抖动和较大的跳变点都有很好的抑制作用。本文介绍的晶振频率校准系统利用GPS模块输出的标准秒脉冲信号对本地晶振频率进行校准。本设计基于FPGA内部进位逻辑资源实现了高分辨率的时间间隔测量单元,并配合滑动平均滤波法利用PicoB1aze处理器对测量的时间间隔数据进行实时处理。不仅能够准确地测量本地晶振分频信号与GPS秒脉冲信号之间的时间间隔,而且降低了GPS秒脉冲波动对测量结果的干扰,为校准晶振频率提供可靠的修正数据。此外,系统测控部分完全在FPGA中实现,利于提高测量分辨率,减小系统体积,提高系统运行的稳定性。本系统不仅可以用于大地电磁三维采集站,还可以在其他对频率准确度有要求的仪器中使用。