基于GPS的时标系统实现方法探究( 二 )


对GPS的PPS失步监测是通过解读其有关输出语句报文信息来实现的 。报文信息通常使用NMEA-0183格式输出,目前广泛使用V2.0版本,输出的数据代码为ASCⅡ码字符 。在NMEA-0183的主要语句中,GPRMC为时间、定位和日期输出语句,其标准格式为:

;$GPRMC,hhmmss.ss,a,ddmm.mmmm,n,dddmm.mmmm,w,z.z,y.y,ddmmyy,d.d,v*CC
每一项以逗号相隔,其中第一项为格林威治时间的时、分、秒信息;第九项为格林威治时间的日、月、年信息;第二项为定位数据是否有效信息,"A"表示有效,"V"表示警告或者数据无效 。单片机通过解读此报文信息便可判定GPS是否失步 。
在GPS接收器工作正常时(GPS接收器能接收到卫星信号),由GPS提供秒脉冲信号 。否则,由频率为20MHz的高精度恒温晶振(OXOF系列频率精度为1×10-8~1×10-9)和一个25位计数器临时替代GPS发出秒脉冲信号,使不同厂站间时钟偏差在一定时间内控制在要求的范围 。时钟系统原理图如图1所示 。
时钟系统工作过程如下:
(1)采用Jupiter型GPS接收器,在秒脉冲信号前沿来临前先发报文 。
(2)采用单片机(如AT89C2051)接收GPS串行报文数据,产生年、月、日、时、分、秒信号,并判定GPS即将发出的秒脉冲信号是否有效,从而控制P1.0口的状态 。
(3)采用频率为20MHz的高精度恒温晶振驱动25位计数器计数,当计数器计满1312D00H个数(时间为1s)时,计数器清零重新开始计数,同时在其输出口置"1" 。当计数器计到7D000H个数(时间为25.6ms)时,在其输出口置"0",产生秒脉冲信号 。
(4)当单片机获悉GPS接收器跟踪到卫星信号时,P1.0口置"1",与门(1)打开,与门(2)关闭,在与门(1)的输出口输出精确的秒脉冲信号,同时每一个秒脉冲信号上跳沿对25位计数器清零使之重新开始计数,为计数器提供精确的时间基准,以减少计数器的累计误差 。
(5)当单片机获悉GPS接收器没有跟踪到卫星信号时,P1.0口置"0",与门1关闭,与门2打开,由25位计数器临时产生秒脉冲信号 。用MAXPLUSⅡ做仿真实验时,由于计算机资源不足,无法进行1秒钟的仿真实验,可以仿真1ms的情况 。计数器计满4E20H个数(0000H-4E1FH),时间为1ms 。图2和图3反映的是同一次仿真的两个不同片断 。
5; 精确时间标签的实现方案
时钟系统能保证在任何情况下产生个稳定的、高精度的秒脉冲信号,从而为高速数据采集系统中的采集数据贴上精确的时间标签打下坚实基础 。
时标系统原理图如图4所示 。高速ADC、地址发生器、地址计数器、计时器在时钟源CLK(5MHz)的同步下以统一的步调工作 。在ADuC812初始化时,将P3.5置"0",P3.4发出清零脉冲对地址发生器和地址计数器同时清零;当故障信号出现时,ADuC812将P3.5置"1",计时器和地址计数器同时停止计数;暂态信号记录完毕后,ADuC812分时读出计时器中的值并将该数值保存在双口RAM中,此值即为精度为0.2μs的时间信息;A-DuC812分时读出地址计数器中的值并将该数值保存在双口RAM中,此地址的精确时间即为计时器中的计数值 。这样,就为高速数据采集系统中的采集数据贴上了精确的时间标签 。
【基于GPS的时标系统实现方法探究】 时标系统工作过程如下:
(1)ADuC812初始化时P3.5置"0",同时P3.4发出清零脉冲使地址发生器和地址计数器同步计数 。ADuC812控制内部的A/D转换模块对经过调整的取自电流互感器二次侧的电流进行A/D转换 。采用半波比较,在每个工频内采集36个点,分别用第n个点和第n 18个点、第n 1个点和第n 19个点比较,依此类推 。假如大于事先设定的门槛值即认为故障已经发生,ADuC812将P3.5置"1",计时器和地址计数器同时停止计数,计时器中的数据即为地址计数器记录的对应于SRAM相同地址的采集数据的时间标签 。由于高速ADC的转换频率固定(本次设计为5MHz),所以,可以此为基准为整个SRAM中的采集数据贴上时间标签 。

推荐阅读