摘 要:鉴于短时标在航天、电子及电力系统中的需求,本文阐述了以FPGA为主处理器对GPS接收机进行数据采集处理,提供高精度短时标及短时标对应的时间码相关信息。为了确保时标的精度,减少时间信息解码过程中的采样误差,从方法、设计两方面考虑,采取了一系列的措施,保证了时标设计的精度。 关键词:短时标;GPS接收机;FPGA;多时钟域处理;
1 引 言
随着导弹,航天技术的不断发展以及现代电子通信领域的进步,在工程和科学领域中对短时标的应用越来越多,对它的精度要求也越来越高。我们知道卫星授时能实现发播信号的大面积覆盖。它向用户提供的无线电波是直达波,受大气折射的影响远远小于短波、长波受电离层的影响,精度要高的多。因此这一技术已成为实现远距离时间同步的最佳方法。随着全球定位系统24颗卫星遍布全球,GPS已成为目前全世界用户最多的主动式高精度卫星授时手段。基于此本文从工程应用的角度出发,阐述了基于FPGA的GPS高精度短时标设计。
2 设计方案
硬件设计主要有三部分组成: GPS接收机、主处理器、接口。GPS接收机主要完成初时标、时间码相关信息的接收;主处理器主要完成时间信息的解码、冗余设计、高精度短时标的生成;接口主要完成时标的通信功能。由于串口方便同PC机进行联合调试,调试完成后还可以扩展此口用做与用户之间的数据通信,因此在接口的选择上采用串口这种形式。硬件的系统框图见图1。

3 主处理器的数据采集和解码
3.1 1pps时间串行码的采集
GPS接收机常用的时间码相关语句有Gb语句、Ha语句以及Hb语句。它们的数据格式分别为:@@GbmdyyhmsshmC<CR><LF>,@@Hamdyyhmsffffaaaaoooohhhhmmmmaaaaoooo
hhhhmmmmVVvvhhddntimsiddssrrccooooTTushmvvvvvvC<CR><LF>,@@HbmdyyhmsffffaaaaoooohhhhmmmmVVvvhhddntssrrvvvvvvC<CR><LF>。接收机提供了两种定时模式:一种是在已知站址的情况下采用的位置保持模式;另一种是在未知站址的情况下采用的位置解算模式。实际应用中在无法确定站址的情况下,我们一般采用第二种方法来进行测试。位置解算模式共有四个未知参数:三个站址坐标未知参数和一个时间未知参数,要得到正确的时标信息至少需要接收四颗卫星。因此我们提供的时标信息包括年、月、日、时、分、秒以及可跟踪卫星数。观察这三种语句的数据结构可以发现Gb语句十分简单,但是它没有提供可跟踪卫星数。Ha语句提供了判断标志,但是过于复杂,增加了时间码相关信息的采集时间,从而增加了解码过程中的误码率。因此最后选择了Hb语句。
主处理器在对1pps时标对应的时间码相关信息进行采集时,按照异步串行通信的格式进行数据的接收。为了减少采集时的毛刺,提高采样的分辨率和抗干扰能力,采用外部晶振提供的标准频率作为定时采样时钟,这里采用的主时钟为10MHz。由于接收机提供的时间码相关信息的传输速率为9600bps,所以时间码的位周期为104200ns,当采样时钟采集到第一个低电平时将这一点定为起始点,直到连续采集到521个低电平,将其定为起始位,对应的点为起始位中心,然后以此为时间基准,每隔1042个采样时钟周期采样一次,定位检测一个数据位。将接收到的时间信息暂时存放在主处理器的寄存单元中。如果改变系统的标准频率,采样的基本思想不变。数据采集过程由图2和图3可见。

3.2 时间信息解码过程中的冗余设计
硬件在测试的过程中,在无法确定天线精确位置的情况下,将接收机设定为自动定位模式。但是它也存在一个缺陷:需要跟踪到3颗以上的卫星才能使接收机输出正确的信息,否则接收机输出的信息是无效的。因此为了确保时标的精度,当接收机输出时标及其解码信息在短时间内无效的情况下,沿用固定计数值产生准秒脉冲,使用上秒的时间信息作为下秒的输出依据。
3.3 解码过程中跳秒现象的修正
在本硬件系统中,接收机输出的数据是以Hb语句的形式输出,主处理器进行数据采集的起始时刻未必是一帧数据的开始时刻,所以在数据采集时,必须先判断字头块,在接收到字头快后,才开始数据的采集。采用的方法为:对语句的字头块“@@Hb”进行校验,将@、@、H、b 这四个ASCⅡ代码同对应的二进制数进行比较,如果匹配的话,继续时间信息的解码,表示这一秒的解码值是正确的。但是只要有一个字块头不匹配的话,从这一秒退出,进行下一秒的解码。这种校验方法虽然增强了解码的可信度,但同时带来了相应的问题:解码出错的这一秒成为了无效秒,这一秒的值被忽略了。为了在输出端正确的显示相应的时间,当某一秒的解码出错,程序退出这一秒的时候,应当在上一秒的基础上对这一秒的值进行加一操作。
4 其他短时标的生成
硬件系统提供的1pps时标在实际应用中是远远不够的,基于对其他高精度短时标的需求,在本硬件设计中提出了生成高精度更短时标的思想,这样在设计的硬件系统上就可以提供多种短时标的输出,以满足不同用户的需求。这里以10pps时标为例来说明。将生成的高速采样时钟对1pps时标对应的时间区域进行重新分配,生成10pps时标信号。
4.1 高精度采样时钟的生成
在硬件设计中,要得到更短的时标,需要对1pps时标采样,将1pps时标对应的时间区域进行重新分配,这需要提高采样的时钟频率,从而保证采样的精度。共有两种方法可选择:一种是改用更高速的标准频率,但是晶振的速度越高,价格越贵,而且在单一的SoC系统上由外部提供两种标准频率,增加了硬件设计的复杂度。另外一种方法,就是我们在实际中经常用到的:对主时钟进行倍频处理。实现这一功能需要引入DLL模块。每个延迟锁相环能提供2倍频输出,将几个DLL级连,可以提供4倍、8倍以及更高倍数的时钟输出信号。将输入时钟内部倍频到100MHz,这样的高速时钟是难以保证质量的,需要在时钟的输出端用一个DLL级连,去除时钟抖动和延时。由图4可视生成高精度采样时钟的框图。
4.2 硬件系统中多时钟域处理方法
本硬件系统中的主时钟和高精度采样时钟之间的关系属于频率不同、相位相同的类型。主时钟域中生成的1pps解码信息在被高精度采样时钟采样时由于过于靠近其上升沿,会造成同步失败。同步失败是因为输出在其采样点上处于亚稳态所形成的,而且这种亚稳态可能向后传播,造成后级出现逻辑错误,在硬件设计顶层模块的综合阶段出错,导致综合的失败。因此在这里可以采用生成异步FIFO模块的方法来解决。由图5可见异步FIFO在1pps模块和10pps模块接口电路中的应用,其中1pps时标模块的工作速度比较低,采用10MHz的标准频率。10pps时标模块的速度比较快,其时钟频率是由基准频率经过倍频处理之后得到的,大小为100MHz。在两个模块的通讯过程中,只要empty信号不为1,就可以进行读操作,full信号只要不为1就可以进行写操作。采用这种接口方式不仅运行可靠,而且可以实现缓冲。

图5.用异步FIFO方法实现两个时钟系统之间的通讯
5.总结
本硬件系统本着得到高精度短时标的目的,在设计中通过提高高速时钟的稳定度,对多时钟系统采用有效的处理方法等确保了系统输出时标的精度。在电力系统高压输电线路的故障定位中为准确定位故障提供了高精度的时间同步信号及时间信息。
本文作者创新观点:为了得到高精度的时标信号,应当尽可能的提高频率标准的精度和稳定度,减少系统在数据采集过程中的时延和抖动。在本硬件的设计中选用具有内置DLL的FPGA进行数据采集处理,DLL具有倍频功能,同时又可以补偿延迟和稳定时钟。将得到的时标信号同天文台的铯原子钟进行比对测量,最后得到的精度达到了10ns/sigma。在接收机天线无效的情况下,采用标准频率进行短期守时,用上秒的输出作为下一秒的输出依据,保证了时标的准确度。
参考文献
[1] 张凯,林伟。VHDL实例剖析。北京:国防工业出版社,2004.1
[2] 李向涛,仵国锋。FPGA同步设计技术。无线通信技术,2003.12
[3] 朱永峰,陆生礼,茆邦琴。SoC设计中的多时钟域处理。微电子与基础产品,2003.7
[4] Elliott D.Kaplan(著),丘致和,王万义译。GPS原理与应用,北京:电子工业出版社,2002
[5] 何香玲等,GPS全球卫星定位技术的发展现状、动态及应用。微计算机信息,2002
[6] JENS U. HORSTMANN, MEMBER, IEEE, HANS W. EICHEL, AND ROBERT L. COATES,“Metastability Behavior of [7] CMOS ASIC Flip-Flops in Theory and Test” IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 24, NO. 1.FEBRUARY 1989.
|