GPS数据采集分析要点_第1页
GPS数据采集分析要点_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于GPS数据采集系统的设计时间:2012-08-0209:58:50来源:现代电子技术作者:史晓影关键字:GPS数据采集系统摘要:为了设计高精度、全天候、全天时的数据采集系统,采用了GPS技术实现通信,信息采用NMEA-0183格式,单片机接收GPS输出的时间和定位信息后,将信息调整为我国的标准,并将调整后的经度、纬度、海拔高度和时间等信息通过液晶终端显示。最终实现了GPS数据采集及转换等工作,为事故定位、搜查救援等工作提供了技术依据。关键词:GPS数据采集;定位;数据处理;单片机随着科技的发展,移动技术的不断成熟,定位导航开辟了一个重要的新兴市场。GPS(GlobalPositioning

2、System)以其高精度、全天候、全天时的特点,在定位、导航、测距等领域被广泛应用,具有测量精度高、速度快、用户数量不限、抗干扰能力强等优点。不仅用于军事领域,还广泛用于工农业生产、交通运输、野外探险等领域。本系统实现的数据采集精确度较高;采集到的位置可以控制在2m范围之内,接收数据并处理的时间小于2s,存精确度和实时性上要优于其他数据采集系统。1GPS数据采集系统的设计硬件系统中主要由主控制器、液晶显示模块和CPS射频前端,数据传输单元组成,如图1所示。斛1题址褴圏GPS信号通过天线接收值射频前端模块,在射频芯片中实现A/D转换,将模拟中频信号转化为数字信号通过串口传入单片机,单片机接收的数

3、据信息经过时差,坐标处理等操作,在通过LCD显示出来。2GPS数据采集系统的设计及实现2.1GPS语句的输出格式GPS-OEM板采用NMEA-0183通信格式,可以输出多种句型,均以“$”开头。其语句格式如表1所示。旬将衣Tb.1NMKA.01A3jAhterkkent符仔ASCII说明g24H前瞎也为识别罚.騎弋位Aac申城介端捋I,/”卄IdHHkir松號利符号后谕的卿怕數圧楼酚和L片臆阳吕S3ODH.OAH凹牟*澳行:冷反输出的语句按串口通信协议:1位开始位,8位数据位,1位停止位,无奇偶校验。输出数据采用的是ASCII码字符,内容包含了纬度、经度、速度、日期、航向及卫星状况等信息。语句

4、达十余种,其中定位语句$GPRMC其结构为:$GPRMC,1.2,3.4,v5.6,7,8,9,10,11*hhvCRxLF其中:“GP”-交谈识别符;“RMC”-语句识别符;“*”-校验和识别符;“hh”-为校验和,其代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符)。$GPRMC语句数据区的内容为:1)定位点的协调世界时间(UTC),hhmmss(时分秒)格式;2)定位状态,A二有效定位,V二无效定位;3)定位点纬度,ddmm.mmmmm(度分)格式;4)纬度半球,N(北半球)或S(南半球);5)定位点经度,dddmm.mmmmm(度分)格式;6)经度半球,E(东经)或W(西

5、经);7)地面速度,000.0节999.9节;8)地面航向,000.0度359.9度;9)UTC日期,ddmmyy(日月年)格式;10)磁偏角,000.0度180度;11)磁偏角方向,E(东)或W(西)。2.2GPS数据接收利用单片机的串行接口接收GPS传送过来的数据,其硬件原理如图2所示,GPS的接口及单片机串口均采用TTL电平传输数据,所以GPS接口引脚4和3可直接与单片机的TXD和RXD引脚相连,无需电平转换,硬件电路图如图2所示。OEMAT89S52伽】*U)站D】TX&CM)1GNE)Jt图2G?S啟裾接收GPS模块输出的是数据流,每秒钟更新一次数据。必须要用单片机对其输出的数据流中

6、的数据进行提取,以方便用户直接读取。首先打开串口中断服务子程序,开始接收数据,判断其是否有“$”符号,然后根据逗号的个数进行判断数据的类型,然后分别存储时间、经度、纬度、日期等信号,若接收到则接收结束。用C语言编程,其程序如下:vidchkhd()interrupt4#串口攥收申瞒uchaichnumip37=!p37;if(ch=SBUF:Ih-=*S*)Iji(和邛=i);W(ob-e(Twtgp盅弋烬“|rturn+|=ch;iffaum79)KRS_revnum)=AO;KPJal();Kps_fla=O:jiEll=O;在PC机上接收的GPRMC语句信息如下:$GPRMC,10332

7、0,A,4350.95221,N,12524.06042,E,000.0,000.0,130507,009.1,W*50这是一条GPS定位数据信息语句,涵义是UTC时间为10时33分20秒,位置在北纬43度50.9522分,东经125度24.0604分,移动速度为0,移动范围为0,日期为2007年5月13日,地磁变化为9.10,地磁变化方向为西,校验和为50H。根据接收的信息用单片机进行相应的处理,就可以得到所需的信息了,信息处理过程见3节。3对接收信息的处理数据的处理主要包括两个方面:1)时间的处理直接从卫星接收到的时间信息是UTC时间(格林尼治时间),需要处理成北京时间。要变成北京时间需要

8、加上8个小时,如果超过24小时,则减去24小时后,才是北京时间。时间转换处理程序如下:if(pps_receive|-)for(i=O:iwgi+#、IIimriveiijian(1)+i;)ifCtimeS1ptimeJ0=l:dme()-=2ftke(imr|I+=82)定位的处理GPS接受的经度、纬度等信息采用的是美国的84坐标系统,需要转换成我国的54坐标系统。为便于描述设如下几个参量:大地坐标-(B,L,H)平面坐标-(x,y,z)椭球偏心率-C椭球参数m,n-大地坐标转换到指教坐标需要使用的参数,则有:mp=m-二j:爛啦ir弓十和岛由3k4结束语本系统讨论了用单片机对GPS数据的

9、读取及处理的方法,分析了GPS模块的信息格式并编制了通信软件,不仅成功地实现了GPS定位信息的接收与提取,而且具有硬件电路简单、成本低廉、编程方便、性能稳定的特点,具有一定的使用价值。GPS模块的数据格式对GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183协议。NMEA-0183是美国国家海洋电子协会(NationalMarineElectronicsAssociation)所指定的标准规格,这一标准制订所有航海电子仪器间的通讯标准,其中包含传输资料的格式以及传输

10、资料的通讯协议。以下是一组正常的GPS数据$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,0&1.0,20.6,M,0000*35$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,*38$GPVTG,0.0,T,M,0.00,N,0.0,K*50下面分别对每组数据的含义进行分析。GPS固定数据输出语句($GPGGA),这是一帧GPS定位的主要数据,也是使用最广的数据。为了便于理解,下面举例说明$GPGGA语句各部分的含义。例:$GPGGA,082006.000,3852.9276,

11、N,11527.4283,E,1,08,1.0,20.6,M,0000*35其标准格式为:$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)火hh(CR)(LF)各部分所对应的含义为:(1) 定位UTC时间:08时20分06秒(2) 纬度(格式ddmm.mmmm:即dd度,mm.mmmm分);(3) N/S(北纬或南纬):北纬38度52.9276分;(4) 经度(格式dddmm.mmmm:即ddd度,mm.mmmm分);(5) E/W(东经或西经):东经115度27.4283分;(6) 质量因子(0二没有定位,1二实时GP

12、S,2二差分GPS):1=实时GPS;(7) 可使用的卫星数(08):可使用的卫星数=08(8) 水平精度因子(1.099.9);水平精度因子=1.0;(9) 天线高程(海平面,一9999.999999.9,单位:m);天线高程=20.6m);(10) 大地椭球面相对海平面的高度(一999.99999.9,单位:m):无;(11) 差分GPS数据年龄,实时GPS时无:无;(12) 差分基准站号(00001023),实时GPS时无:无;火总和校验域;hh总和校验数:35(CR)(LF)回车,换行。GPRMC(建议使用最小GPS数据格式)$GPRMC,082006.000,A,3852.9276,

13、N,11527.4283,E,0.00,0.0,261009,*38$GPRMC,1,2,3,4,5,6,7,8,9,10,11CRLF(1) 标准定位时间(UTCtime)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。(2) 定位状态,A=数据可用,V二数据不可用。(3) 纬度,格式:度度分分分分分分(ddmm.mmmm)。(4) 纬度区分,北半球(N)或南半球(S)。(5) 经度,格式:度度分分.分分分分。(6) 经度区分,东(E)半球或西(W)半球。(7) 相对位移速度,0.0至1851.8knots(8) 相对位移方向,000.0至359.9度。实际值。(9) 日期,格式:日日月

14、月年年(ddmmyy)。(10) 磁极变量,000.0至180.0。(11) 度数。(12) Checksum.(检查位)$GPVTG地面速度信息例:$GPVTG,0.0,T,M,0.00,N,0.0,K*50字段0:$GPVTG,语句ID,表明该语句为TrackMadeGoodandGroundSpeed(VTG)地面速度信息字段1:运动角度,000-359,(前导位数不足则补0)字段2:T二真北参照系字段3:运动角度,000-359,(前导位数不足则补0)字段4:M二磁北参照系字段5:水平运动速度(0.00)(前导位数不足则补0)字段6:N二节,Knots字段7:水平运动速度(0.00)(

15、前导位数不足则补0)字段8:K二公里/时,km/h字段9:校验值表1GPS模块主要参数GPS模块主要参数GPS芯片组SiRFStarIII工作频率L1,1575.42MHz粗捕获码(C/A)率1.023MHzchiprate同时跟踪通道数20灵敏度-159dBm定位精度5m(2维均方根,允许广域差分系统)最小速度0.1m/s时间精度1uS(与GPS时间同步)默认坐标系1984年世界大地坐标系(WGS-84)重获时间0.1S(平均值)热启动1S(平均值)温启动38S(平均值)冷启动42S(平均值)最咼工作海拔18km(60000feet)最大移动速率515m/S(1000knots)最大加速度4

16、g最大急冲度20m/S3电源电压5V0.5V整机电流约60mA,不超过100mA整板外形61mmX49mmX17mmGPS芯片外形27.9mmX20mmX2.9mm波特率9600bps数据输出格式SiRF二进制格式或NMEA0183GGA,GSA,GSV,RMC,VTG,GLL数据输出电平同时具备TTL电平和RS232电平数据输出接口20pin插针(TTL电平)和DB9母座(RS232电平)天线类型外置有源GPS天线(3.3V/5V电压可选,默认为3.3V)后备电池CR1220锂电池,3V,不可充电工作温度-40C至+85CGPS模块的应用程序设计GPS模块的应用程序设计主要分为两部分,第一部

17、分为串口的设置于数据读取,第二部分为数据的分析和需要数据的提取。与其他的关于设备编程的方法一样,在Linux下,操作、控制串口也是通过操作起设备文件进行的。在Linux下,串口的设备文件是/dev/ttySO或/dev/ttySl等。因此要读写串口,我们首先要打开串口,然后根据GPS模块的配置参数对串口的波特率、校验、流控制等进行设置,这些参数设置均通过对termios结构中c_cflag的配置实现,串口配置部分函数如下:intgps:set_opt(intfd,intnSpeed,intnBits,charnEvent,intnStop)struettermiosnewtio,oldtio;

18、if(tcgetattr(fd,&oldtio)!=0)perror(SetupSerial1);return1;bzero(&newtio,sizeof(newtio);newtio.c_cflag|=CLOCAL|CREAD;newtio.c_cflag&二CSIZE;switch(nBits)case7:newtio.c_cflag|=CS7;break;case8:newtio.c_cflag|=CS8;break;switch(nEvent)caseO:/奇校验newtio.c_cflag|=PARENB;newtio.c_cflag|=PARODD;newtio.c_iflag|=

19、(INPCK|ISTRIP);break;caseE:/偶校验newtio.c_iflag|=(INPCK|ISTRIP);newtio.c_cflag|=PARENB;newtio.c_cflag&=PARODD;break;caseN:/无校验newtio.c_cflag&=PARENB;break;switch(nSpeed)case2400:cfsetispeed(&newtio,B2400);cfsetospeed(&newtio,B2400);break;case4800:cfsetispeed(&newtio,B4800);cfsetospeed(&newtio,B4800);b

20、reak;case9600:cfsetispeed(&newtio,B9600);cfsetospeed(&newtio,B9600);break;case115200:cfsetispeed(&newtio,B115200);cfsetospeed(&newtio,B115200);break;default:cfsetispeed(&newtio,B9600);cfsetospeed(&newtio,B9600);break;if(nStop=1)newtio.c_cflag&二CST0PB;elseif(nStop=2)newtio.c_cflag|=CSTOPB;newtio.c_cc

21、VTIME=0;newtio.c_ccVMIN=0;tcflush(fd,TCIFLUSH);if(tcsetattr(fd,TCSANOW,&newtio)!=0)qDebug()comseterrorendl;return-1;qDebug()setdone!endl;return0;在GPS数据的处理上首先将窗口数据存入一个字符串,接着通过对字符串数据的判断来提取数据内容,判断分为两步,首先判断是什么类型的数据,在本程序的设计中需要读取$GPRMC两组数据,因此首先判断字符串GPS_BUF5是。还是A,由于数据是通过符号“,”进行隔开,因此通过查找“,”来确定数据位置。在实现上将得到逗号位置函数单独封装调用,程序如下:/得到指定序号的逗号位置intgps:GetComma(intnum,char*str)inti,j=O;intlen二strlen(str);for(i=0;iD.hour=(GPS_BUF7-O)*10+(GPS_BUF8-O);GPS-D.minute=(GPS_BUF9-O)*10+(GPS_BUF10-0);GPS-D.second=(GPS_BUF11-O)*1O+(GPS_BUF12-O);tmp=GetComma(9,GPS_BUF);GPS-D.day=(GPS_BUFtmp+O-O)*10+(GPS_BUFtmp+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论