全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
卫星导航技术的飞速发展已逐渐取代了无线电导航、天文导航等传统导航技术,而成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长足进步。现不仅应用于物理勘探、电离层测量和航天器导航等诸多民用领域,在军事领域更是取得了广泛的应用-在弹道导弹、野战指挥系统、精确弹道测量以及军用地图快速测绘等领域均大量采用了卫星导航定位技术。有鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。我国也于2000年10月31日和12月21日成功发射了第一颗和第二颗导航定位试验卫星并建立了我国第一代卫星导航定位系统-北斗导航系统,但由于起步晚也没有得到广泛应用。目前在我国应用最多的还是美国的GPS系统。本文就针对当前比较普及的GPS系统,对其卫星定位信息的接收及其定位参数提取的实现方法予以介绍。edf测绘网定位信息的接收edf测绘网通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分组成。由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS接收机传送到计算机中进行信息提取处理。从串口读取数据有多种方法,在此直接使用 Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为文件,因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置:edf测绘网m_hCom=CreateFile(COM1,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); file:/以异步方式打开COM1口edf测绘网SetCommMask (m_hCom, EV_RXCHAR ) ; file:/添加或修改Windows所报告的事件列表edf测绘网SetupComm (m_hCom,READBUFLEN/*读缓冲*/,WRITEBUFLEN/*写缓冲*/); / 初始化通讯设备参数 edf测绘网/ 清除缓冲信息edf测绘网PurgeComm (m_hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR) ;edf测绘网/ 对异步I/O进行设置edf测绘网CommTimeOuts.ReadIntervalTimeout = MAXDWORD ; file:/接收两连续字节的最大时间间隔edf测绘网CommTimeOuts.ReadTotalTimeoutMultiplier =0; file:/接收每字节的平均允许时间 edf测绘网CommTimeOuts.ReadTotalTimeoutConstant = 0 ; file:/接收时间常数edf测绘网SetCommTimeouts (m_hCom , &CommTimeOuts) ;edf测绘网file:/获取并设置串口edf测绘网GetCommState ( m_hCom, &dcb) ;edf测绘网dcb.BaudRate = CBR_4800;edf测绘网dcb.ByteSize = 8;edf测绘网dcb.Parity = ODDPARITY;edf测绘网dcb.StopBits = ONESTOPBIT ; edf测绘网SetCommState( m_hCom, &dcb);edf测绘网在成功打开并设置通讯口后,可采取轮询串口和事件触发两种方式对数据进行接收处理,本文在此采取效率比较高的事件触发方式进行接收处理,通过等待EV_RXCHAR事件的发生来启动ReadFile函数完成对GPS定位信息的接收:edf测绘网while(true)edf测绘网WaitCommEvent (m_hCom,&dwEvtMask,NULL); edf测绘网if (dwEvtMask&EV_RXCHAR = EV_RXCHAR)edf测绘网if(ComStat.cbInQue0) edf测绘网ReadFile(m_hCom,m_readbuf,ComStat.cbInQue,&nLength,&olRead);edf测绘网 edf测绘网提取定位数据edf测绘网GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本文所使用的GARMIN GPS天线板,其发送到计算机的数据主要由帧头、帧尾和谑葑槌桑菔葜牟煌芬膊幌嗤饕?$GPGGA、$GPGSA、$GPGSV以及$GPRMC等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从$GPRMC帧中获取得到,该帧的结构及各字段释义如下:edf测绘网$GPRMC,*hhedf测绘网 当前位置的格林尼治时间,格式为hhmmssedf测绘网 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。edf测绘网 纬度, 格式为ddmm.mmmmedf测绘网 标明南北半球, N 为北半球、S为南半球edf测绘网 径度,格式为dddmm.mmmmedf测绘网 标明东西半球,E为东半球、W为西半球edf测绘网 地面上的速度,范围为0.0到999.9edf测绘网 方位角,范围为000.0到 359.9 度edf测绘网 日期, 格式为ddmmyyedf测绘网 地磁变化,从000.0到 180.0 度edf测绘网 地磁变化方向,为E 或 Wedf测绘网至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对$GPRMC帧进行数据的提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码$来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。下面就是对缓存Data中的数据进行解帧处理的主要代码,本文在此只关心时间(日期和时间)和地理坐标(经、纬度):edf测绘网for(int i=0;iBR if(Datai=$) file:/帧头,SectionID为逗号计数器edf测绘网SectionID=0;edf测绘网if(Datai=10) file:/帧尾edf测绘网edf测绘网if(Datai=,) file:/逗号计数edf测绘网SectionID+;edf测绘网else edf测绘网switch(SectionID)edf测绘网case 1: file:/提取出时间edf测绘网m_sTime+=Datai;edf测绘网break;edf测绘网case 2: file:/判断数据是否可信(当GPS天线能接收到有3颗GPS卫星时为A,可信)edf测绘网if(Datai=A)edf测绘网GPSParamm_nNumber.m_bValid=true;edf测绘网break;edf测绘网case 3: file:/提取出纬度edf测绘网m_sPositionY+=Datai;edf测绘网break;edf测绘网case 5: file:/提取出经度edf测绘网m_sPositionX+=Datai;edf测绘网break;edf测绘网case 9: file:/提取出日期edf测绘网m_sDate+=Datai;edf测绘网break;edf测绘网default:edf测绘网break;edf测绘网edf测绘网edf测绘网edf测绘网现在已将所需信息提取到内存,即时间、日期以及经纬度分别保存在CString型变量 m_sTime、m_Data、m_sPositionY和m_sPositionX中。在实际应用中往往要根据需要对其做进一步的运算处理,比如从GPS接收机中获得的时间信息为格林尼治时间,因此需要在获取时间上加8小时才为我国标准时间。而且GPS使用的WGS84坐标系也与我国采用的坐标系不同,有时也要对此加以变换。而这些变换运算必须通过数值运算完成,因此需要将前面获取的字符型变量转化为数值型变量,这部分工作可放在检测到帧尾完成:edf测绘网:strcpy(buf,m_sTime); edf测绘网str.Format(%c%c,buf0,buf1);edf测绘网GPSParamm_nNumber.m_nHour=(atoi(str)+8)%24; file:/提取出小时并转化为24小时制北京时间edf测绘网第2、3字节为分钟,4、5字节为秒,提取方法同上edf测绘网edf测绘网:strcpy(buf,m_sDate);edf测绘网str.Format(%c%c,buf0,buf1); file:/提取出月份edf测绘网第2、3字节为天,4、5字节为年,提取方法同上edf测绘网edf测绘网:strcpy(buf,m_sPositionY);edf测绘网str.Format(%c%c,buf0,buf1);edf测绘网PositionValue=atoi(str); edf测绘网str.Format(%c%c%c%c%c%c%c,buf2,buf3,buf4,buf5,buf6,buf7,buf8);edf测绘网GPSParamm_nNumber.m_dPositionY=PositionValue*60+atof(str); file:/提取出纬度edf测绘网edf测绘网:strcpy(buf,m_sPositionX);edf测绘网if(m_sPositionX.GetLength()=10) file:/经度超过90度(如东经125度)edf测绘网edf测绘网str.Format(%c%c%c,buf0,buf1,buf2);edf测绘网PositionValue=atoi(str);edf测绘网str.Format(%c%c%c%c%c%c%c,buf3,buf4,buf5,buf6,buf7,buf8,buf9);edf测绘网GPSParamm_nNumber.m_dPositionX=PositionValue*60+atof(str); file:/提取出经度(单位为分)edf测绘网edf测绘网if(m_sPositionX.GetLength()=9) file:/经度未超过90度(如东经89度)edf测绘网edf测绘网file:/处理方法同上,只是buf的第0、1字节为度数,29为分数。edf测绘网edf测绘网edf测绘网到此为止,已将时间和经纬度信息提取到GPS结构数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大庆市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有答案详解
- 乌兰察布市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(巩固)
- 2025合同协议股权投资私募资金信托合同
- 南京市人民医院角膜内皮细胞计数检查技能考核
- 2025劳务合同书(国有企业使用)
- 2025煤矿机电产品买卖合同(示范文本)工程文档范本
- 连云港市中医院免疫检查点抑制剂内分泌不良反应考核
- 采购主管的工作计划与试题及答案
- 幼儿教师教育试题及答案
- 工程造价咨询的试题及答案
- 高等职业教育产教融合共同体建设研究
- 监理项目合作管理办法
- 特殊气候条件下施工安全保障措施与应对策略
- 2025年广东中考数学试卷试题真题及答案详解(精校打印版)
- 监控设备改造方案(3篇)
- 混凝土结构设计原理-006-国开机考复习资料
- 人教版必修第一册Unit2Travelling around Reading and Thinking课件
- 旋挖钻机地基承载力验算2017.7
- 英语课程标准研究与教材分析(第2版)课件全套 第1-9章 英语课程标准和英语课程的基本概念 -英语教材难度分析
- 版式设计课件:版式设计概述
- 土方公司挂靠协议书
评论
0/150
提交评论