GPS高精度的时钟的设计和实现
摘要:介绍采用GPS、OEM接收板来实现精密时钟系统的设计思路和方法,给出基本的硬件电路和软件流程。
关键词:GPS GPS OEM 串口通信
1 概述
GPS(Global Positioning System)全球定位系统是利用美国的24颗GPS地址卫星所发射的信号而建立的导航、定位、授时的系统。美国政府已承诺,在今后相当长的一段时间内,GPS系统将向全世界免费开放。目前,GPS系统广泛地应用在导航、大地测量、精确授时、车辆定位及防盗等领域。因此,开展对GPS系统的研究和应用,将极大地提高生产力,并产生巨大的经济效益。本文旨在通过利用GPS所提供的精确授时的功能,采用单片机技术,设计适合于需要精确授时的高精度时钟系统。
GSU-16是日本光电(KODEN)公司生产的并行11通道GPS OEM接收板,由于采用了先进半导体设计手段,它具有尺寸小、功耗低、性能稳定、性价比高等优良特性。利用它,可以方便、快速地开发出各种GPS应用系统。其主要性能指标如下:
接收通道——11通道并行接收,可同时跟踪11颗卫星;
授时精度——小于400ns,无累计误差;
数据更新时间——1s;
体积和重量——65mm×35mm,约重40g(含锂电池);
数据输出格式——NMEA-0183 v2.0;RTCM-sc104 v2.0;
环境工作温度——-30~+75℃;
正常工作参数——电压5(1±0.05)V;电流100mA;功耗100mW。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 GSU-16的硬件接口和软件接口
(1)硬件接口
GSU-16同时提供12脚接口(J3)和5脚接口(J4)。本设计中采用5链接口J4,各引脚的功能如表1所列。
表1
接口编号 | 信号名称 | 功 能 |
1 | GND | 电源地 |
2 | backup in | 备份电源输入,3V时消耗2μA |
3 | SD1 | 串行输出 |
4 | RD1 | 串行输入 |
5 | +5V | 主供电电源输入 |
GSU-16的RD1脚为RS232C的通信接口,其逻辑电平为TTL电平。这样能够很方便地与各种单片机连接连接,无须电平转换。同时,12脚接口还提供了高精度的秒脉冲输出,可用于需要更高精度定时服务的测量系统。在此,我们仅使用其时钟信息,故只需在其输出的ASCII数据中直接提取即可。
(2)软件接口
GSU-16的通信波特率为4800,1个起始位,8个数据位,1个停止位,无奇偶校验。通常使用NMEA-0183格式输出,数据代码为ASCII码字符。
NMEA-0183是美国海洋电子协会为海用电子设备制定的标准格式,目前广泛使用V2.0版本。由于该格式为ASCII码字符串,比较直观和易于处理,在许多高级语言中都可以直接进行判别、分离,以提取用户所需要的数据。
NMEA-0183主要语句中,最常见的几种格式为:
GPGGA GPS定位数据
GPGLL 地址位置和经纬度
GPZDA 日期和时间
GPVTG 方位角对地速度
例如,GPZDA为时间和日期输出语句,其标准格式如下:
javascript:window.open(this.src);" style="cursor:pointer;"/>
又如,$GP GGA为定位导航数据输出语句,其标准格式如下:
javascript:window.open(this.src);" style="cursor:pointer;"/>
在具体使用时,可以在收到一条消息后,用软件来判别消息引导头是否为“$GPZDA”或“$GPGGA”来确认收到的消息正确与否,然后从消息中提取世界时,一定要注意将提取到的世界时加上8小时才是北京时间,而且软件还必须对16:00~24:00世界时作相应的处理,以转换为正确的北京日期和时间。
3 应用电路和程序设计
在设计该时钟系统时,我们采用的单片机是Motolola公司的MC68HC08的通用芯片MC68HC908GP32。该芯片以它的高性能、低功耗、低价位获得了广泛的应用,其主要特性为:
①32KB片内Flash存储器,具有在线可编程能力和保密功能;
②512B片内RAM;
③增强型串行通信口和串行外围接口;
④支持C语言。
其接口电路可按图1设计,程序流程如图2所示。
单片机初始化程序样例如下:
SCBR EQU $0019
SCC1 EQU $0013
SCC2 EQU $0014
SCC3 EQU $0015
SCS1 EQU $0016
SCS2 EQU $0017
SCDR EQU $0018
TEMP EQU $40 ;定义1个字节的临时存储空间
ORG $8000 ;定义程序的起始位置
INIT:LDA#%00100010;初始化开始
STA SCBR ;波特率定义
LDA #%01000000javascript:window.open(this.src);" style="cursor:pointer;"/>
STA SCC1
LDA #%00001100
STA SCC2
LDA #%00000000
STA SCC3
START:JSR GETDATA ;接收1个字符
STA TEMP ;将其存放临时空间
CMP #$"$";判是否为“$”符,如不是转START
……
;判是否为GPZDA信息模块,如不是则转START重新接收
……
;数据接收与处理模块
……
;时钟驱动与显示模块
……
;返回START重新接收下一组消息
GETDATA:BRCLR 5,SCS1,GETDATA
LDA SCRA
RTS
4 结论
时间信号的准确与否,直接关系到人们的日常生活、工业生产和社会发展。由于计算机技术、网络技术、通信技术、GPS定位技术等相关技术的发展和礅,以及GPS OEM板价格的降低,已经具备了为各个应用领域提供高精度授时的可能性。
GPS精密时钟主要应用于城市重要公共建筑,如车站、码头、公园、交通路口、标志建筑等场所和电信行业的移动及固定电话报时等方面。它是供了准确的公众时间,为人们的日常生活提供便利,避免了因时钟不准确而带来的不便。同时,也为GPS系统的应用开拓了一个较好的用途,具广泛的现实意义。