新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ATmega128的GPS时钟设计与实现

基于ATmega128的GPS时钟设计与实现

作者:时间:2008-04-03来源:网络收藏
摘要:介绍了采用OEM接收板的精确授时功能来精密系统的思路和方法,给出基本的硬件电路和软件流程并单片机上的提取并在LCD上显示。
关键词高精度液晶显示

1.引言

GPS(Global Positioning System)全球定位系统是利用美国的24颗GPS地球卫星所发射的信号而建立的导航、定位、授时的系统。目前,GPS系统广泛地应用在导航、大地测量、精确授时、车辆定位及防盗等领域。

GPS授时功能是其主要功能之一。时间信号的准确与否,直接关系到人们的日常生活、工业生产和社会发展。GPS时钟为满足精密定位和导航的需要,在系统与实验之初就建立了自己专用的时间系统,该系统简写为GPST,它由GPS主控站的高精度原子钟守时和授时。由于计算机技术、网络技术、通信技术、GPS定位技术等相关技术的发展,以及GPS OEM板价格的降低,GPS时钟已经具备了为各个应用领域提供高精度授时的可能性。

本文旨在通过利用GPS所提供的精确授时功能,采用单片机技术,适合于需要精确授时的高精度时钟系统,并通过LCD进行显示。

2.GPS授时原理

GPS时间系统是由GPS系统定义和使用的时间系统。卫星定位系统以时间为基本观测量,由于卫星高速飞行,因此要求时间系统必须十分精确,否则就会带来很大的距离误差。GPS时间系统以原子频率标准作为时间基准,以1980年1月6日0时作为起点。它不存在跳秒,它的时间与协调时秒以下的差异可以保持在100微妙内,并定期公布误差,在星历文件中发布的卫星钟差就是相对GPS时间系统的钟差。

GPS 授时的基本原理是: 卫星不间断地发送自身的星历参数和时间信息, 用户接收到这些信息后,经过计算求出接收机的三维位置、三维方向以及运动速度和时间信息。这里只需要 GPS 授时系统的时间信息。若设(x,y,z)为接收机的位置, (xn,yn,zn)为已知卫星的位置, 则解下列方程就可以得 x,y,z到和标准时间 T:

(x-x1)2+(y-y1)2+ (z-z1)2 =C2(T+ T-T1 - 1)

(x-x2)2+(y-y2)2+ (z-z2)2 =C2(T+ T-T2 - 2)

(x-x3)2+(y-y3)2+ (z-z3)2 =C2(T+ T-T3 - 3)

(x-x4)2+(y-y4)2+ (z-z4)2 =C2(T+ T-T4 - 4)

其中△T为用户时钟与 GPS主钟标准时间的时差;Tn 为卫星 n 所发射信号的发射时间; 为卫星 n 上的原子钟与GPS主钟标准时间的时差[1]

3.本系统构成及硬件软件

3.1 本设计采用GPS板介绍

本设计采用THALES-NACIGATION公司生产的A12 GPSOEM接收板,它采用了先进半导体设计手段,具有尺寸小、功耗低、性能稳定、性价比高等优良特性。利用它可以方便、快速地开发出各种GPS应用系统。其主要性能指标如下:

接收通道――12通道并行接收,可同时跟踪12颗卫星;

授时精度――小于400ns,无累计误差;

数据更新时间――1s;

体积和重量――39mm60mm10mm,约重40g;

数据输出格式――NMEA-0183 v2.0;RTCM-sc104 v2.0;

环境工作温度――-30℃~+80℃;

正常工作参数――电压5(10.05)V;电流70mA。

图1 GPSOEM板A12

GPSOEM板提供硬件接口如表1所示:

管脚

信号类型

功能

1

VCC

电源

2

V_ANT

天线电源接口

3

V_BACK

备用电源

4

GND

5

RTCM

接收信号口B

6

RXD

接收信号口A

7

TXD

发送信号接口A

8

1PPS

1个脉冲输出/秒

表 1 GPS输出接口定义

其输出数据逻辑电平为 TTL 电平,这样能够很方便地与单片机相连。格式位默认为:波特率4800,8个数据位,1个停止位,无奇偶校验位。GPS输出数据采用NME-0813格式输出,数据代码采用ASCII码字符,本设计采用NME-0813中RMC格式,下面是GPS输出的一组数据:$GPRMC,140736.00,A,3800.9040,N,11226.5364,E,00.0,355.6,121106,04,W,D*3B,其中140736.00代表14时07分36.00秒,121106代表06年11月12日,根据系统需要,我们需要提取这个数据。GPS所得时间为格林尼治时间(零时区),要得到北京时间(东八区)一定要将提取到的世界时加上 8 h 才是北京时间。

3.2 系统组成及其实现

系统选用单片机,它有丰富的外部资源,利用它的USART1与GPS接收机通信:

其总体硬件连接如图2所示。

图2 GPS时钟实现的结构

液晶显示器采用含控制器S1D15G14的3510i彩色液晶显示,S1D15G14附带有LCD电源驱动电路的LCD驱动器,可在单片上实现彩色显示,能显示4096色,分辨率是98x67。它与单片机ATmega128采用串口连接。

主程序提取GPS数据采用查询方式[2]

图3 程序流程图

GPS时钟在ATmega128上软件实现[3] (其中LCD函数为显示函数):

if(USART1_Receive() == '$') // USART1_Receive()为串口接收函数

{ while((gps_data_buff[counter ++] = USART1_Receive()) != '*');

data = 1; j = 0; i = 0 ; //接收数据放入gps_data_buff[ ]数组当中

for (i=0;i69;i++)

{if(gps_data_buff[i] == ',')

{ data ++ ; j = 0;

}

switch(data)

{ case 1: break;

case 2: time[j ++] = gps_data_buff[i + 1];time[j] = '' ; break;

case 3: break;

case 4: break;

case 5: break;

case 6: break;

case 7: break;

case 8: break;

case 9: break;

case 10: day[j ++] = gps_data_buff[i + 1];day[j] = '' ; break;

default: break;

}

}

LCD_FillArea( 0, 0,98,67,COLOR_WHILE); // LCD刷屏函数

LCD_WriteSpecHZ_GPS_time(2,0,COLOR_BLUE); // LCD显示时间汉字提示

LCD_WriteEnglishString(2,16,time,T_TS,COLOR_BLACK,0); //LCD显示时间

LCD_WriteSpecHZ_GPS_day(2,32,COLOR_BLUE); //LCD显示日期汉字提示

LCD_WriteEnglishString(2,48,day,T_TS,COLOR_BLACK,0); //LCD显示日期

}

最后结果如下图4所示:显示时间为2006年12月15日10点09分00.00秒

图4 GPS时钟提取并液晶显示效果

4.结论

本文作者创新点在于利用ATmega128提取GPS高精度时钟,并实现了GPS时钟在LCD上的显示,它具有精度高、成本低、易于实现等特点。GPS精密时钟主要应用于城市重要公共建筑,如车站、码头、公园、交通路口、标志建筑等场所和电信行业的移动及固定电话报时等方面。

参考文献:

[1] 宋文广,邬春学,江琼琴.GPS授时功能及其在内河航道导航中的应用[J].微计算机信息,2006,9-1:258

[2] 桂承鲲,邬林达.GPS时间源的自控时钟的设计与实现.十堰:湖北汽车工业学院报. 2004, 6

[3] 高 翔,陶 炜.DSP系统的GPS 高精度时钟设计和实现.北京:华北电力技术,2003,8



评论


相关推荐

技术专区

关闭