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

下载本文档

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

文档简介

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

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

3、将模拟中频信号转化为数字信号通过串口传入单片机, 单片机接 收的数据信息经过时差,坐标处理等操作,在通过 LCD显示出来。2 GPS数据采集系统的设计及实现3 . 1 GPS语句的输出格式GPS-OEM板采用NMEA-0183通信格式,可以输出多种句型,均以“$” 开头。其语句格式如表1所示。Al语句格式Tab- 1 NMEA-0183 stutemrnt formal符号asc n定义HEX说期$起始位24H谪而起始及Aaccc墟址域的两位为识别符.后三付为分楣符域分隔存2Cf!域分割符【Jddllrld数据块发送数根内容粉is和符号行面的曲位教小帕斡和h校教斯(CR7(i.n终也符ODH.

4、OAH国里.独行输出的语句按串口通信协议:1位开始位,8位数据位,1位停止位, 无奇偶校验。输出数据采用的是ASCn码字符,内容包含了纬度、经度、 速度、日期、航向及卫星状况等信息。语句达十余种,其中定位语句 $GPRMC其结构为:$GPRMC, <1>. <2>, <3>. <4>, <5>. <6>, <7>, <8>, <9>, <10>, <11>*hh<CR><LF>其中:“GF-交谈识别符;“RMC-语句识另I符;“量校验和识别

5、符;“hK为校验和,其代表了 “野口”*之间所有字符白按位异或值(不包 括这两个字符)。$GPRMC语句数据区的内容为:1)定位点的协调世界时间(UTC), hhmmsslM分秒)格式;2)定位状态,A=有效定位,V=无效定位;3)定位点21度,ddmm. mmmmm(度分)格式;4)纬度半球,N(北半球)或S(南半球);5)定位点经度,dddmm. mmmmm(度分)格式;6)经度半球,E(东经)或W(西经);7)地面速度,000. 0节999. 9节;8)地面航向,000. 0度359. 9度;9)UTC日期,ddmmyy(日月年)格式;10)磁偏角,000. 0度180度;11)磁偏角方

6、向,E(东)或W(西)。2. 2 GPS数据接收利用单片机的串行接口接收 GPS传送过来的数据,其硬件原理如图2 所示,GPS的接口及单片机串口均采用 TTL电平传输数据,所以GPS 接口引脚4和3可直接与单片机的TXD和RXD引脚相连,无需电平转 换,硬件电路图如图2所示。GPS模块输出的是数据流,每秒钟更新一次数据。必须要用单片机对其输出的数据流中的数据进行提取,以方便用户直接读取。首先打开串口中断服务子程序,开始接收数据,判断其是否有“蟒号,然后根据逗号的个数进行判断数据的类型,然后分别存储时间、经度、纬度、日期等信号,若接收到 'n”则接收结束。用C语言编程,其程序如下:voi

7、d chkzhd( )interrupt 4"串 口接收中断(char eh . num ;p37=! P37;if(TI=l )T=0;ir(fu-i >ch=SBUF;if(ch="S3(gps_flag=;l ;num=O;)即、n呼二=l)gpA_revfnurn+=ch;if (ch=O H num>79)(gps_revnum|=V),;gps_dat()建psjl咋IRI=O;hip电务同在PC机上接收的GPRMC语句信息如下:$GPRMC, 103320, A, 4350. 95221 , N , 12524. 06042, E, 000. 0,

8、 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个小时,如果超过24小时,则减去

9、24 小时后,才是北京时间。时间转换处理程序如下:if(gps_receive|4jfM )ffor(i=0n<6;i+)Inmefi =gps_re veiveg>s_shijiiin ( 1 ) + i; Itrlsc lime +=8 ;) 2)定位的处理GPS接受的经度、纬度等信息采用的是美国的84坐标系统,需要转换成我国的54坐标系统。为便于描述设如下几个参量:大地坐标-(B , L , H)平面坐标-(x, y, z)椭球偏心率-C椭球参数m, n-大地坐标转换到指教坐标需要使用的参数,则有:8 * * mS Y面门5广x=(p+/).ros(),riKS(L);y=(

10、p+ft )eos(/O,sin( A); l-t,;+石;4结束语本系统讨论了用单片机对GPS数据的读取及处理的方法,分析了 GPS模块的信息格式并编制了通信软件,不仅成功地实现了GPS定位信息的接收与提取,而且具有硬件电路简单、成本低廉、编程方便、性能稳定的特点,具有一定的使用价值。GPS模块的数据格式对GPS®块的数据处理本质上还是串口通信程序设计,只是GPS真块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的 GPSg块大多采用 NMEA-0183协议。NMEA-0183是美国国家海洋电子协会(National Marine Electro

11、nics Association)所指定的标准规格,这一标准制订所有航海电子 仪器间的通讯标准,其中包含传输资料的格式以及传输资料的通讯协议。以下是一组正常的GPS数据$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,0000*35$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0Q261009,*38$GPVTG,0.0,T,M,0.00,N,0.0,K*50下面分别对每组数据的含义进行分析。GPS固定数据输出语句($GPGGA)这是一帧GPS定位的主要数据,也是使用最广的

12、 数据。为了便于理解,下面举例说明 $GPGGA句各部分的含义。例:$GPGGA,082006.000,3852.9276,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)

13、 经度(格式 dddmm.mmmmp ddd 度,mm.mmmm );E/W(东经或西经):东经115度27.4283分;(6)质量因子(0二没有定位,1二实时GPS 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时无:无;*总和校

14、验域;hh总和校验数:35(CR)(LF)回车,换行。GPRM C建议使用最小 GPS数据格式)$GPRMC,082006,000,A,3852.9276,N,11527.4283,E,0,00,0.0,261009,*38$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>(1)标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。(2)定位

15、状态,A =数据可用,V =数据不可用。(3)纬度,格式:度度分分.分分分分(ddmm.mmmm(4)纬度区分,北半球(N)或南半球(S) o(5)经度,格式:度度分分.分分分分。(6)经度区分,东(E)半球或西(W半球。(7)相对位移速度, 0.0 至1851.8 knots(8)相对位移方向,000.0至359.9度。实际值。(9)日期,格式:日日月月年年(ddmmyy。(10)磁极变量,000.0 至 180.0。(11)度数。(12) Checksum.(检查位)$GPVTG®面速度信息例:$GPVTG,0.0,T,M,0.00,N,0.0,K*50字段 0: $GPVTG

16、语句 ID,表明该语句为 Track MadeGoodand Ground Speed (VTG 地面速度信息字段1:运动角度,000 - 359,(前导位数不足则补0)字段2: T二真北参照系字段3:运动角度,000 - 359,(前导位数不足则补0)字段4: M=!北参照系字段5:水平运动速度(0.00)(前导位数不足则补0)字段6: N斗,Knots字段7:水平运动速度(0.00)(前导位数不足则补0)字段8: K/里/时,km/h字段9:校验值表1 GPS模块主要参数GPSg块主要参数GPS芯片组SiRF Star III工作频率L1, 1575.42 MHz粗捕获他(C/A)率1.0

17、23 MHz chip rate同时跟 踪通道 数20灵敏度-159 dBm定位精 度5m (2维均方根, 允许广域差分系 统)最小速度0.1 m/s时间精 度1 m S (与GPS寸间同步)默认坐标系1984年世界大地坐标系(WGS-84重获时 间0.1S (平均值)热启动1S (平均值)温启动38S (平均值)冷启动42S (平均值)最局工 作海拔18km (60000feet )最大移动速率515m/S(1000knots )最大加 速度4g最大急冲度_320m/S电源电 压5 V士 0.5V整机电流约60mA不超过 100mA整板外 形61mme 49mm<17mmGPS芯片外形

18、27.9mmx 20mm<2.9mm波特率9600bps数据输出格式SiRF二进制格式或NMEA 0183 GGA,GSA, GSV, RMC,VTG,GLL数据输 出电平同时具备TTL电平和RS232电平数据输出接口20pin插针(TTL电平)和DB9母座(RS232 电平)天线类 型外置有源GPM线 (3.3V/5V电压可 选,默认为3.3V)后备电池CR1220a电池,3V, 不可充电工作温 度-40oC 至+85oCGPS模块的应用程序设计GPS真块的应用程序设计主要分为两部分,第一部分为串口的设置于数据读取,第 二部分为数据的分析和需要数据的提取。与其他的关于设备编程的方法一样

19、,在Linux下,操作、控制串口也是通过操作起设备文件进行的。在Linux下,串口的设备文件是/dev/ttyS0 或/dev/ttyS1 等。因 此要读写串口,我们首先要打开串口,然后根据GPS®块的配置参数对串口的波特率、校验、流控制等进行设置,这些参数设置均通过对termios结构中c_cflag的配置实现,串口配置部分函数如下:&int gps:set_opt( int fd, int nSpeed, int nBits, char nEvent, int nStop).struct termios newtio,oldtio;if ( tcgetattr( fd,&

20、amp;oldtio) !=0)(perror( "SetupSerial 1"); return - 1;bzero( &newtio, sizeof ( newtio );newtio.c_cflag |= CLOCAL | CREAD;newtio.c_cflag &=CSIZE;switch ( nBits )(case 7:newtio.c_cflag |= CS7;break;case 8:newtio.c_cflag |= CS8; break;switch ( nEvent )(case 'O' :/ 奇校验newtio.c_

21、cflag |= PARENB;newtio.c_cflag |= PARODD;newtio.c_iflag |= (INPCK | ISTRIP);break;case 'E' :/ 偶校验newtio.c_iflag |= (INPCK | ISTRIP);newtio.c_cflag |= PARENB;newtio.c_cflag &=PARODD;break;case 'N' :/ 无校验newtio.c_cflag &=PARENB;break;switch ( nSpeed )(case 2400:cfsetispeed(&

22、;newtio, B2400);cfsetospeed(&newtio, B2400);break;case 4800:cfsetispeed(&newtio, B4800);cfsetospeed(&newtio, B4800);break;case 9600:cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;case 115200:cfsetispeed(&newtio, B115200);cfsetospeed(&newtio, B115200);break;

23、default :cfsetispeed(&newtio, B9600);cfsetospeed(&newtio, B9600);break;if ( nStop = 1 )newtio.c_cflag &= CSTOPB;.else if ( nStop =2 )newtio.c_cflag |= CSTOPB;.newtio.c_ccVTIME =0;newtio.c_ccVMIN =0;tcflush(fd,TCIFLUSH);if (tcsetattr(fd,TCSANOW,&newtio)!= 0)qDebug()<< "com

24、set error" <<endl;return - 1;qDebug()<< "set done!" <<endl;return 0;h在gpsm据的处理上首先将窗口数据存入一个字符串,接着通过对字符串数据的判 断来提取数据内容,判断分为两步,首先判断是什么类型的数据,在本程序的设计 中需要读取$GPRMC$GPGGA组数据,因此首先判断字符串 GPS_BUF5是C还是A, 由于数据是通过符号”进行隔开,因此通过查找”来确定数据位置。在实 现上将得到逗号位置函数单独封装调用,程序如下:阖/得到指定序号的逗号位置int gps:

25、GetComma(int num, char *str)int i,j= 0;int len=strlen(str);for (i= 0;i<len;i+)(if (stri=',')(j+;)if (j=num) return i+ 1;)return 0;)圃接下来根据数据格式,通过逗号位置,提取数据信息,程序如下:囤void gps二gps_parse()(int tmp;char c;c = GPS_BUF 5; if (c='C')(/"GPRMC"GPS->D.hour =(GPS_BUF 7- GPS->D.m

26、inute =(GPS_BUF 9-GPS->D.second =(GPS_BUF 11- tmp = GetComma( 9,GPS_BUF); GPS->D.day =(GPS_BUFtmp+ GPS->D.month =(GPS_BUFtmp+'0' )* 10+(GPS_BUF8- '0');'0' )* 10+(GPS_BUF0- '0');'0' )* 10+(GPS_BUF2- '0');0- '0' )* 10+(GPS_BUFtmp1- '0'

温馨提示

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

评论

0/150

提交评论