工程中经常需要实现异地数据的同步采集。现有的该类系统大多采用对采集的数据打“时间戳”的方法来实现数据采集的同步性。大量的“数据戳”随数据一起存入RAM,占用了RAM的存储空间,增加了后续数据处理的复杂度。针对上述问题,本文提出了一种电平触发的同步方法,其要点是利用GPS授时检测预置的采集开始时刻的到来,并在该时刻下一个秒脉冲的上升沿产生高电平的触发信号,一组异地分布的数据采集装置因而可以同步工作。按照上述方法设计了具体系统,并进行了实验,结果表明可以达到1 ?滋s的同步精度[1]。
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)[5-6],是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中进行仿真、综合和实现[2-3]。顶层设计由解码模块、I/O控制模块和数据处理模块组成。
工作过程为:串口接收到GPS接收机发来的NEMA $POLYT语句,I/O控制模块检测语句开始和结束标志字符,并检查语句格式的正确性,将正确的语句存入输入缓存;解码模块提取出NEMA信息中的时间信息和GPS定位信息,时间信息输入数据处理模块,GPS定位信息作为“与门”输入;数据处理模块中,将解码模块送来的时间信息进行处理并锁存,与预设的时间信息比对,当两者完全相同时,在下一个PPS上升沿时刻产生同步信号,此同步信号和GPS定位信息相与生成触发信号,触发数据采集卡同步开始工作。
作者:孙改匣1,赵曙光2,王洪亮1 来源:电子技术应用