基于GPS的授时服务器的设计
扫描二维码
随时随地手机看文章
引言
全球定位系统(global positioning system, GPS)自从建成以来,得到了广泛的应用,在航天、军事、经济、通信、电力、交通等领域发挥了巨大的作用。授时系统的功能是使钟表或测量仪器的时钟与国际标准时间达到精确同步。通常可用原子钟来保证仪器的时间与国标时间达到精确同步,但是原子钟价格昂贵。常用的授时方法主要有无线电授时、卫星授时、网络授时等。其中利用导航卫星进行物体定位、时钟授时与同步数据采集控制,可以达到传统测量控制手段所不及的精确程度,同时可以获得本地定位信息等数据。这种卫星定位授时同步技术在航空航海、陆上交通、科学考察、极地探险、地理测量、气象预报、设备巡检、系统监控等方面得到广泛应用。GPS时钟采用世界协调时-UTC,在GPS卫星上载有与UTC时间同步的铯原子钟,成为一种空间的时间基准,用户可接收GPS卫星的时间服务信号,校正本机时钟,与GPS时钟同步,完成时间传递任务,称为GPS授时。
2 工作原理
GPS授时服务器主要由AT89S52单片机、LCM显示模块和GPS OEM 模块 GPS25-LVS以及输出模块等组成。它能够显示经纬度、北京时间、速度等实时信息,其系统原理见图1。
单片机作为主控制器,对GPS25-LVS模块进行初始化,GPS25-LVS模块接收卫星传送的信号,输出NMEA-0183格式语句,经过单片机的解算处理,最后送至LCM液晶显示模块进行显示,同时由输出模块提供多种电气特性的秒脉冲(1PPS)信号。
3 硬件设计
3.1 GPS OEM模块的选择
GARMIN公司的GPS25-LVS系列OEM板[4]采用单一5V供电,内置保护电池,RS232、TTL两种电平自动输出NMEA 0183 2.0格式(ASCII字符型)语句,是目前应用最广泛的GPS接收处理板之一,能满足各种导航和授时领域的需求。具有很高的性价比和强有力的市场竞争力,其主要性能特点如下:
并行12通道,可同时接收12颗卫星
定位时间:重捕<2sec,热启动为15sec,冷启动45sec,自动搜索90sec
定位精度:15mRMS/差分时<5m
可接收实时差分信号用于精确定位,信号格式为RTCM SC-104,波特率自适应。
1PPS秒脉冲信号输出,精度指标高达10-6秒
双串口(TTL)输出,波特率可由软件设置(1200~9600)
灵敏度:-166Dbw
天线接口:50ohm MCX 接头有源天线(5V)
3.2 GPS25-LVS 模块的数据输出格式
GPS25-LVS的通信波特率默认值为4800,1个起始位,8个数据位,1个停止位,无奇偶校验。通常使用NMEA-0183格式输出,数据代码为ASCII码字符。NMEA-0183是美国海洋电子协会为海用电子设备制定的标准格式,目前广泛使用V2.0版本。由于该格式为ASCII码字符串,比较直观和易于处理,在许多高级语言中都可以直接进行判别、分离,以提取用户所需要的数据。GPS25-LVS系列OEM板可输出12句语句,分别是GPGGA,GPGSA,GPGSV,GPRMC,GPVTG,LCGLL,LCVTG,PGRME,PGRMF,PGRMT,PGRMV,GPGLL。
3.3 GPS OEM 与AT89S52 的连接
GPS25-LVS OEM 板有2个串行口, 其串口2 用来接收RTCMSC2104 版本2. 1 的GPS 差分信息,相位数据输出。串口1 是异步串行数据通信接口,因此可与AT89S52 单片机进行异步串行数据通信。由于串口配置的电平为标准的RS-232电平,而AT89S52 单片机的输出电压为0~5V 的TTL 电平,二者的电压规范不一致,所以不能直接进行通讯. 为使TTL 电平与RS-232 标准兼容,采用了MAXIM 公司的多路发送,接收集成芯片MAX232,实现单片机与OEM 板的串行通信。GPS25-LVS OEM板初始化后,还会输出秒脉冲信号。1pps信号由CPLD处理后一路作为单片机的外部中断源,以实现时间信息的同步处理,另外也用来监测信号是否正常。
3.4 矩阵键盘及LCM显示
设计2×4 矩阵键盘,可以在系统运行时响应用户的操作。按键有 “菜单”、“向上”、“向下”和“清除”等功能。单片机程序运行中实时检测按键操作,当有按键按下后,进行去抖、扫描等操作,取得按键的键值,根据键值和当前状态,执行不同代码以实现键盘复用。
在系统中, 使用HTM4002A的点阵图形液晶模块,该模块使用S6A0069控制驱动器,内置国标一、二级字库,该液晶模块不仅显示字符、汉字,而且也可以显示连续、完整的图形。 该模块使用单电源5V供电,无需负压。
3.5 逻辑电路及输出
逻辑电路主要由CPLD来实现,采用了Altera的 MAX 7000S系列的EPM-7128,基于电可擦除可编程只读存储器(EEPROM)的MAX7000产品采用先进的CMOS工艺制造,提供从32到512个宏单元的密度范围,速度达3.5 ns的管脚到管脚延迟。支持在系统可编程能力(ISP),可以在现场轻松进行重配置。
EPM-7128产生本地秒脉冲,它在有GPS秒脉冲时不起作用,在失去GPS信号时代替GPS给单片机提供秒脉冲输出。如图2所示,信号1即为本地秒脉冲,它是依据前1S的1PPS信号上升沿为起始时刻,定时1S得到的,同时为了在一定误差情况下使自产生的脉冲不至于覆盖正常工作时的GPS秒脉冲,所以加了一段延时△t,而在检测到失去GPS信号时,就要去掉△t,以代替GPS秒脉冲。信号2为EPM-7128输出的一个窄脉冲信号,用来屏蔽脉冲干扰,它分布在GPS秒脉冲上升沿两侧,与GPS秒脉冲进行与操作。在窄脉冲之外的脉冲干扰就会被屏蔽。这样就实现了防止GPS信号失效和抗干扰脉冲功能。
输出模块包括MAX232、DS90C031、74HC245等多种芯片,它们将EPM-7128的输出转换为232、差分及TTL等多种电气特性的秒脉冲信号的输出,为各种应用提供便捷的解决方案。
4 软件设计
本系统采用C51编程[2]实现,主程序流程见图3.首先初始化,OEM板输出的数据是以数据流的形式输出,采集的起始时刻未必是一帧数据的开始时刻,所以在数据采集时,必须先判断字头块,在接收到字头块后,开始采集数据。设定单片机的波特率为4800bit/s,使其与GPS OEM 板的传输波特率一致。给OEM 板发送一条指令,使其发送的0183 数据格式为“$GPGGA”,该指令预先存在数据存储器里,用循环方式顺次从程序存储器里取出数据就可循环发送,然后OEM 板将输出相应格式的数据。单片机对接收的信息进行判断,由于接收到的时间是协调世界时(UTC),因此在此时间上加上8小时才是准确的北京时间,并对时间信息做相应的处理,然后进行显示。
5 结论
本文采用的GPS OEM 板的串口输出的协调世界时进行授时,其操作简便,实用性强,并且提供了丰富的秒脉冲接口,能满足大多数用户的要求。在GPS信号正常时具有较高的精度,授时系统经实验室测试,误差小于100ns,结果较为满意。在GPS信号失效时也能保证相当的精确性,但其精度和稳定度与恒温晶振的频率精度和稳定度有直接的关系,如果CPLD采用精度更高的时钟信号,结果将会更为理想。