GPS-GPZDA数据解析C语言

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全球定位系统的主要用途:(1)陆地应用,主要包括车辆导航、应急反应、大气物理观测、地球物理资源勘探、工程测量、变形监测、地壳运动监测、市政规划控制等;(2)海洋应用,包括远洋船最佳航程航线测定、船只实时调度与导航、海洋救援、海洋探宝、水文地质测量以及海洋平台定位、海平面升降监测等;(3)航空航天应用,包括飞机导航、航空遥感姿态控制、低轨卫星定轨、导弹制导、航空救援和载人航天器防护探测等。
图4主流程图
图5解析子流程图
3.1
#include <stdio.h>
main()
{
FILE *fp;
char ch[128]={'\0'};
char ch1[10]={'\0'};
char chday[5]={'\0'};
char chmonth[5]={'\0'};
char chyear[5]={'\0'};
无论是生活还是军事,GPS全球卫星定位系统都已经成为最重要的定位系统。它的信号所包含的信息中有位置信号和时间信号,NMEA-0183协议的其他语句格式解析可以为用户指明自己的所处方位,时间信息却不是很准确。用户所需要的除了准确的位置信息,还有收到信号时的准确时间。GPZDA是NMEA0183协议中专门为解析时间准备的编码,比NMEA0183协议中的其他语句格式更加精确,因此其专用性受到用户认可。经过20余年的实践证明,GPS系统是一个高精度、全天候和全球性的无线电导航、定位和定时的多功能系统。 GPS技术已经发展成为多领域、多模式、多用途、多机型的国际性高新技术产业。
NMEA通讯协议所规定的通讯语句都是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以它来结束,也就是ASCII字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。NMEA-0183协议包括GPGGA,GPRMC,GPGSA,GPGSV,GPZDA等语句格式,其中GPZDA的功能就是解析卫星信号中的时间信息,将其信号序列变为非专业人员可读取的文字。
printf("This program is finished by our team:\nShenJianFeng WangTing HeXiaoTian\nSongZhenZhong WuYunChao CaiQiWei\n");
printf("Finished Time:2010-12-20\n\n");
第二章
NMEA—0183通信方式是由美国国家海洋电子协会开发、维护并发布的标准,目前大多数GPS接收设备都遵循这一标准,该接口协议定义了在波特率4800的串口数据总线上传输的电器信号需求、数据传输协议和时间以及详细的句型格式,以“句子”为单位进行发送。假如数据域中的某个值无效,该值将被简单的忽略,但对应的“,”仍需发送。
GPS的卫星系统对于地面观测者来说,每天将提前4分钟见到同一颗GPS卫星位于地平线以上的卫星颗数随着时间和地点的不同而不同,最少可见到4颗,最多可见到11颗。地面设备监控卫星上的各种设备是否工作正常,以及卫星是否一直沿着预定轨道运行。除此之外,使用者接收机能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到的GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间,解译出GPS卫星所发送的导航电文,实时地
第三个阶段是语义分析,它的任务是审查源程序有无语义上的错误并且为代码收集类型信息。
最后一个阶段是代码生成,它是在语法分析和语义分析的基础上生成最终的目标程序。
2.2
NMEA 0183的信息格式一般如下所示:
$aaaaa,df1,df2,....[CR][LF]
所有的信息由$开始,以换行结束,紧跟着$后的五个字符解释了信息的基本类型,多个参数之间用逗号隔开。
char chhour[5]={'\0'};
char chmin[5]={'\0'};
char chsec[8]={'\0'};
char chsum[10]={'\0'};
char afterch[128]={'\0'};
int i,j,n,m; /*定义并初始化一些数组,指针,整型变量等用于后续程序使用*/
图1GPS卫星环绕图
计算出测站的三维位置,三维速度和时间。
GPS通过掌握卫星的位置,测定所在地点与卫星之间的距离,运用数学计算测得测站的三维位置,另外,接收机往往可以锁住4颗以上的卫星,收到四颗则加上高程值这时,接收机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用作定位,从而提高精度。要了解卫星所处的准确位置,需要优化设计卫星运行轨道,并且,地面监测站要连续不断监测卫星的运行状态,适时发送控制指令,使卫星保持在正确的运行轨道。每颗GPS卫星上都装置有十分精密的电子钟,并由监测站经常进行校准。卫星除了发送定位导航信息,也能发送时间信息,GPS接收机收到信息后就能对时间进行校准。所以,GPS接收机除了能准确定位之外,还可产生精确的时间信息。
摘要
GPS(Global Positioning System)可说是目前最热门、最受人瞩目的一项科技。简单的说,GPS是利用位于地球同步轨道上的同步卫星,以其相对位置的关系,来测出精确的位置,事实上,接收机往往可以锁住4颗以上的卫星,这时,接收机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用作定位,从而提高精度。GPS除了可作为精确的定位工具之外,同时也可以用作精密的测量工具。在进行大范围、大面积的地面测量时,往往受限于地球本身的弧度与测量仪器的精密程度,甚至于当时的天候状况或测量人员本身的许多因素,导致测量的结果产生或多或少的误差。倘若利用GPS来作为测量工具,由于人造卫星高悬于地表上空,受地表弯曲弧度的影响相对减少。透过GPS与GIS的结合,更可以让我们更快速、精确地处理所需的资料。
通过这次课程设计我们可以了解,如何用GPZDA解析GPS的时间信号,在计算机上输出普通用户所能理解的语句,让用户能够在时间信息这方面更加精确地得到信息,给用户提供更可靠的更高水准的服务。
第一章
GPS全球卫星定位系统由21颗工作卫星和3颗备用卫星组成。它们分布在6个等间距的轨道平面上,每个轨道面上有4颗工作卫星。GPS能覆盖全球,能够连续、实时、隐蔽地定位,一次定位时间仅几秒到十几秒,用户不发射任何电磁信号,只要接受卫星导航信号即可定位,所以可全天候昼夜作业。
关键字:GPS 0183协议 GPZDA
图索引
前言
GPS全球卫星定位系统是目前世界上应用最广的定位系统,其准确性与可靠性都是首屈一指,由于GPS技术所具有的全天候、高精度和自动测量的特点,作为先进的测量手段和新的生产力,已经融入了国民经济建设、国防建设和社会发展的各个应用领域。GPS的信号不仅能传输三维位置和三维速度,还能传输时间信号,它的卫星系统是在地面监测站的监控下进行工作的,卫星上的精密电子钟经常与监测站校时,以保证时间信号的准确。因此,其时间信号也是GPS信号解析的一部分。
GPS的主要特点:(1)全天候;(2)全球覆盖;(3)三维定速定时高精度;(4)快速省时高效率;(5)应用广泛多功能。
NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM标准协议。大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。
发明准确的计时工具之后的短时间内,没有人会想象得到有了准确的时间会带来改变世界的冲击,影响了我们的生活,新兴的产品和服务产业都由其引发。GPS对精确的位置就有如时钟对精确的时间一样,因此其得到大范围使用。由于GPS定位需要非常精确的时间,每颗GPS卫星上都有精密的原子钟,所以发送的信号可以附带精确的时间信息。对于接收机也就有一定要求,GPS卫星接收机种类很多,根据型号分为测地型、全站型、定时型、手持型、集成型;根据用途分为车载式、船载式、机载式、星载式、弹载式。
2.3
NMEA0183中有以下三种基本的协议类型:
2.3.1
信息源的标准格式为:$ttsss,df1,ຫໍສະໝຸດ Baiduf2,....[CR][LF]
在紧随$后的两个字符是用来识别作为信息内容识别码的后面三个字符,信息识别码定义了保留的数据区,在NMEA0183的标准下,每个类型的数据区的信息内容是符合标准的。例如:$HCHDM,238,M[CR][LF]。其中“HC”信息源是一个磁性的罗盘,“HDM”是表明后面的代表磁性的船首向航向,238是船首向航向的值,M则表示船首向航向值的磁性。
随着通信技术的迅速发展,为适应社会的需求,满足用户的需要,必须提高软件开发水平,近些年随着嵌入式操作系统的兴起,嵌入式终端与GPS的结合更加完善了GPS的可视性、功能性和操作性,使GPS的泛用性得到增强,用户的数量增多使功能需求越来越复杂,其中就有部分用户对时间精度要求较高,需要专门的语句格式来解析,这也是GPZDA得到应用并推广的原因之一。
图2NMEA-0183协议框架
图3编译过程流程图
2.1
编译过程主要分为四个阶段,分别是词法分析、语法分析、语义分析和代码生成。
第一个阶段是词法分析,它是从左到右一个字符一个字符的读取源程序并对字符进行扫描和分解,从而识别一个一个单词。
第二个阶段是语法分析,它是在词法分析的基础上将一个一个的单词组成各类语法短语,如“程序”、“语句”、“表达式”等。
2.4
UTC时间/日期及本地时区偏移量
$GPZDA, <1>,<2>,<3>,<4>,*<5>[CR][LF]
<1> UTC时间,格式hhmmss.ss(前导位数不足则补0)。
<2> UTC日期,01到31(前导位数不足则补0)。
<3> UTC月份,01到12(前导位数不足则补0)。
<4> UTC年,格式yyyy。
HERE:
printf("Welcome!Please input n (n=0 or 1 or2)\n 0 means Open the File 'a.txt'\n 1 means Open the File 'b.txt'\n 2 means Manual Operation Input):");
全球定位系统由三部分构成:(1)地面控制部分,由主控站(负责管理、协调整个地面控制系统的 工作)、地面天线(在主控站的控制下,向卫星注入寻电文)、监测站(数据自动收集中心)和通讯辅助系统(数据传输)组成;(2)空间部分,由24颗卫星组成,分布在6个道平面上;(3)用户装置部分, 主要由GPS接收机和卫星天线组成。
<5> 校验和。
第三章
编程的主要思想:
由于GPZDA的形式是:$GPZDA,hhmmss,XX,XX,XXXX,,*hh,所以,我们学习老师的课件及上课的内容从而确定编程的主线:通过对逗号的扫描来确定每一段的解析数据,需要进一步解析的就再次解析,从而最终解析出所有我们需要的数据。具体的程序流程图如下,由主流程图和子流程图组成。
2.3.2
查询的标准格式为:$ttllQ,sss,[CR][LF]
前面两个字符表示请求者的信息源的识别码,后面两个字符是被查询设备的识别码,最后一个字符说明这是一个查询的信息。紧跟着的字符(SSS)包含了三个字的被查询内容的记忆信息。例如: $CCGPQ,ZDA[CR][LF] “CC”说明计算机正从“GP”这个设备查询ZDA中的内容。GPS将会每隔1秒发送内容直到有新的请求。
2.3.3
这是一种使用没有在标准下预定义的特殊内容的方法。它通常的格式为:$PmmmA,df1,df2,....,[CR][LF]P说明是属性内容,mmm定义为厂商信息代码,A(A-Z)表明信息类型。
NMEA-0183协议定义的语句非常的多,主要有$GPGLL、 $GPGGA、$GPVTG、$GPZDA等。因为本次课题我们需要使用GPS-GPZDA进行数据解析所以我们只介绍GPZDA标准格式的样式。
相关文档
最新文档