基于GPS的异地数据采集的改进同步方法及其实现

2010年03月12日 11:30    发布者:李宽
工程中经常需要实现异地数据的同步采集。现有的该类系统大多采用对采集的数据打“时间戳”的方法来实现数据采集的同步性。大量的“数据戳”随数据一起存入 RAM,占用了RAM的存储空间,增加了后续数据处理的复杂度。针对上述问题,本文提出了一种电平触发的同步方法,其要点是利用GPS授时检测预置的采集开始时刻的到来,并在该时刻下一个秒脉冲的上升沿产生高电平的触发信号,一组异地分布的数据采集装置因而可以同步工作。按照上述方法设计了具体系统,并进行了实验,结果表明可以达到1 ?滋s的同步精度。

1 同步原理与实现方案

GPS接收机输出的NEMA信息通过串口1送入解码模块,并提取GPS状态信息和时间信息分别输出到与门和数据处理模块。数据处理模块处理输入的时间信息,并每隔1 s与串口2输入的预设时刻信息比较,若两者完全相同,则在秒脉冲的下一个上升沿时刻产生同步信号。当GPS状态信息与同步信号电平都为高时,产生触发信号触发一组异地分布的数据采集装置同步开始工作。

对于一组异地分布需要同步采集的数据采集装置,每个装置都增加1个(FPGA)同步装置,预置相同的采集开始时刻。同步装置根据GPS授时信息不断检测该时刻的到来,并在该时刻的下一个秒脉冲上升沿触发数据采集动作,使得异地分布的数据采集装置同步开始工作。

单个同步装置的系统框图如图1所示。



2 系统硬件设计

2.1 设备简介

2.1.1 GPS接收机性能简介

本系统采用Navysyc CW25接收机,此接收机是一款专门的授时型接收机。该接收机具有12个并行通道,可同时跟踪12颗卫星,完全校准到UTC时间,产生精确度高达几十纳秒的同步授时,并且支持RS-232串口通信,通信速率38 400 b/s。
2.1.2 GPS秒脉冲输出特性简介

秒脉冲PPS(Pulse Per Second),是1个电平信号,以方波形式输出,周期为1 s,高电平持续时间为100 μs。高电平上升沿为PPS输出的精确时刻,其波形如图2所示。



接收机取得有效导航的时候,脉冲上升沿时刻与UTC时刻相差在±30 ns以内,RS-232传输数据中UTC时刻的输出较秒脉冲上升沿有一定的延迟,即接收机先为用户提供秒脉冲,再提供对应的时间信息,(FPGA)同步控制模块对此(时间信息的滞后)须进行恰当处理,以使PPS的上升沿与实际的时间信息对应。

2.2 系统硬件总体实现

本系统硬件设计主要是利用FPGA设计和实现同步控制功能。由于FPGA与GPS的串口通信采用标准的RS-232接口,所以利用EDK提供的IP核可以直接实现。

3 FPGA设计

3.1 顶层设计

利用FPGA实现基于GPS的异地数据采集同步控制系统的核心处理单元,采用自顶向下的设计方法,用Verilog HDL语言描述,使用Xilinx Spartan-3A FPGA在ISE 10.1中进行仿真、综合和实现。顶层设计由解码模块、I/O控制模块和数据处理模块组成。

工作过程为:串口接收到GPS接收机发来的NEMA $POLYT语句,I/O控制模块检测语句开始和结束标志字符,并检查语句格式的正确性,将正确的语句存入输入缓存;解码模块提取出NEMA信息中的时间信息和GPS定位信息,时间信息输入数据处理模块,GPS定位信息作为“与门”输入;数据处理模块中,将解码模块送来的时间信息进行处理并锁存,与预设的时间信息比对,当两者完全相同时,在下一个PPS上升沿时刻产生同步信号,此同步信号和GPS定位信息相与生成触发信号,触发数据采集卡同步开始工作。

3.2 解码模块

解码模块的任务是提取GPS接收机发来的NEMA语句中的时间信息。FPGA的串口接收到GPS接收机发来的NEMA $POLYT语句,I/O控制模块检测语句开始和结束标志字符,并检查语句格式的正确性,将正确的语句存入输入缓存,再从缓存中提取出时间信息并锁存。$POLYT语句格式如下:$POLYT,hhmmss.ss,ddmmyy,UTC_TOW,week,GPS_TOW,Clk_B,Clk_D,PG,cs,每一项以逗号相隔,其中“hhmmss”项为格林威治时间的时、分、秒信息,FPGA控制板通过解读此报文信息便可得到与1 PPS信号对应的时间信息。解码模块工作的程序流程图如图3所示。



3.3 数据处理模块

数据处理模块的作用有两部分:调整从缓存提取的时间信息和产生同步触发信号。

调整时间信息包括2个方面,(1)GPS接收机输出的时间是GMT时间,需要转换成当前地理位置所在时区的时间。(2)由于GPS接收机的时间信息总是在与之对应的秒脉冲上升沿到来后从串口发出,所以在t时刻的秒脉冲上升沿到来时,t时刻的时间信息还未被数据处理单元接收到。为了实现秒脉冲和时间信息的同步输出,需要将t-1时刻的时间信息加1 s作为t时刻的绝对时间。图4所示显示了调整前后的时间与秒脉冲的对应关系。



将调整后的时间信息与预设的时间信息进行比较,两者完全相同。在下一个PPS脉冲的上升沿对应时刻产生1个电平信号,此信号和GPS状态信息“相与”后输出信号即为数据采集卡的触发信号。仿真结果如图5所示。



本文提出了一种改进的基于GPS的异地数据采集的同步方法,并利用FPGA进行了具体设计和实现。实验结果表明,上述方法和设计克服了常用的“时间戳”方式占用额外存储空间和加重数据处理负担的缺点,满足分布式数据采集对同步精度的要求,并且有助于实现同步装置的小型化、高稳定性,便于维护与升级。

参考文献

李炜,王彪.基于GPS授时的异地同步数据采集系统.测控技术,2006,25(3):40-42.
田耕,徐文波,胡彬,等.Xilinx ISE Design Suite 10.x FPGA开发指南.北京:人民邮电出版社,2008.
Xilinx Inc. DS312 PDF, Spartan-3A FPGA Family:Complete Data Sheet. Xilinx Inc, 2006.
BAUCH A, PIESTER D, MOUDRAK A,et al. Time comparisons between USNO and PTB: a model for the determination of the time offset between GPS time and the future galileo system time. Frequency Control Symposium and Exposition, Montreal, Canada, 2004.
王琦,胡修林.基于OEM板的GPS定位接收机的研究与实现.电子工程师,2004,30(11):4-6.
苗世洪,王少荣,刘沛.一种基于GPS的时间同步装置.电子计算机与外部设备,2000,24(1):15-16.

来源:电子技术应用 作者:孙改匣 赵曙光 王洪亮