DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 790|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 14:52:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘  要:介绍了采用GPSOEM接收板的精确授时功能来实现精密时钟系统的设计思路和方法,给出基本的硬件电路和软件流程并基于ATmega128单片机上实现GPS时钟的提取并在LCD上显示。
关键词:GPS  ATmega128  高精度时钟  液晶显示
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;
体积和重量——39mm×60mm×10mm,约重40g;
数据输出格式——NMEA-0183 v2.0;RTCM-sc104 v2.0;
环境工作温度——-30℃~+80℃;
正常工作参数——电压5(1±0.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 系统组成及其实现
系统选用ATmega128单片机,它有丰富的外部资源,利用它的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;i<69;i++)   
                     {if(gps_data_buff == ',')
                            {     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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-13 10:17 , 耗时 0.090044 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表