GPS调试笔记.doc

上传人:b****3 文档编号:2486889 上传时间:2022-10-30 格式:DOC 页数:12 大小:1.38MB
下载 相关 举报
GPS调试笔记.doc_第1页
第1页 / 共12页
GPS调试笔记.doc_第2页
第2页 / 共12页
GPS调试笔记.doc_第3页
第3页 / 共12页
GPS调试笔记.doc_第4页
第4页 / 共12页
GPS调试笔记.doc_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

GPS调试笔记.doc

《GPS调试笔记.doc》由会员分享,可在线阅读,更多相关《GPS调试笔记.doc(12页珍藏版)》请在冰豆网上搜索。

GPS调试笔记.doc

..

GPS调试笔记

调试GPS过程是在老师指导下完成的,大部分功能是我们在寒假期间调试出来的,在调试的过程中困难重重,还是具体介绍我们调试的过程吧。

刚开始我们买回来了GPS模块型号是ST-200看着模块介绍手册,就想着把硬件电路搭建起来,利用实验室师兄刚刚制作的一个单片机最小系统板和GPS模块进行通讯,开始想的很简单就是数据的接收和显示过程,GPS模块是一个较小的原件携带方便如图一GPS模块。

(图一GPS模块)

GPS模块一共就有六个引脚如图二。

(图二GPS引脚图)

这样连接起来也简单方便,下面对管脚进行一下介绍1:

接地GND,2:

电源VCC,3:

输入TXA,4:

输出RXA,5:

预备电源V_BAT,6:

脚可以悬空,就是这么一个简单的模块就可以接收卫星信号了,开始是用串口采集数据看接收的数据是什么形式的,虽然在很多资料中已经看到过这方面数据的介绍,但是还要自己验证一下才好。

起初的时候由于读写信号线没能正确连接,导致数据不能通过串口传输过来,通过很长时间查找,也问了很多人最后是老师发现读写信号线出现了问题,这个小问题可让我查了好久才解决的,在下面的调试过程中自己也是从这里总结出来了经验,把每一步慢慢做好不能急功近利。

下面具体说一下这个问题:

问题就是在单片机、max232、GPS模块这三者的读写信号线之间的矛盾。

开始自己是按与单片机通讯来设置的线路,但是如果与单片机通讯,那么GPS和单片机的读写信号就应该交换,但是这样就不会与232进行通讯了,只有和单片机的读写信号线对应连接就可以了。

这个问题虽然解决了,但是想象中的数据怎么没有那,在实验室屋里就是怎么调也没有数据,还是老师指点这GPS是必须得在外边使用,在有建筑物遮挡的情况下是不能接收到信号的,这时又有新问题出现了没有电源啊,实验室里电源是好办了,但是在空旷的操场那里有电源啊,最后还是我的笔记本解决了这个问题(在后来又换上了电池),用USB供电就轻松解决了电力问题,拿着笔记本在拿上两个板凳就到外边做实验是,今年的雪特别大,那几天还偏赶上是大雪纷飞的时候,在雪中我们做着实验首先通过串口接收数据。

如图三串口界面截图:

(图三串口截图)

在串口中就可以成功接受到我们预期中的数据,下面是一部分串口采集的数据:

$GPGSA,A,2,30,26,14,,,,,,,,,,3.1,2.9,1.0*39

$GPRMC,092700.000,A,4355.3451,N,12633.8076,E,0.00,232.21,210310,,,A*6B

$GPVTG,232.21,T,,M,0.00,N,0.0,K,A*0D

$GPGGA,092701.000,4355.3451,N,12633.8076,E,1,03,2.9,172.7,M,15.6,M,,0000*50

$GPGSA,A,2,30,26,14,,,,,,,,,,3.1,2.9,1.0*39

$GPGSV,3,1,10,14,64,318,34,30,57,148,33,01,55,148,32,22,54,207,16*72

$GPGSV,3,2,10,12,53,080,,26,46,098,22,18,26,172,24,31,25,251,26*7B

$GPGSV,3,3,10,09,18,061,14,27,16,063,*7D

这样就有了GPS传送过来的数据,我们还用软件定位了一下天上的卫星,软件用的是“GpsViewer1.5”,蓝色卫星就是用于计算坐标的,三个或三个以上的蓝色卫星就可以计算出具体的经纬度信息,然后就可以通过经纬度查出我们的位置。

下面是GpsViewer软件界面如图四:

(图四GpsViewer界面)

这样就成功的看到天上卫星数量,在上面还可以清晰的看到模拟的卫星,有可见的和不可见还有时间和日期等等,经纬度也有明确的显示,这样就可以按着所传送的数据进行编程及其他计算了。

首先说明一下GPS传送过来的语句,这些语句是遵循NMEA0183协议下面对这些协议进行一下说明:

1、 GlobalPositioningSystemFixData(GGA)GPS定位信息

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh

<1>

UTC时间,hhmmss(时分秒)格式

<2>

纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<3>

纬度半球N(北半球)或S(南半球)

<4>

经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<5>

经度半球E(东经)或W(西经)

<6>

GPS状态:

0=未定位,1=非差分定位,2=差分定位,6=正在估算

<7>

正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)

<8>

HDOP水平精度因子(0.5~99.9)

<9>

海拔高度(-9999.9~99999.9)

<10>

地球椭球面相对大地水准面的高度

<11>

差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

<12>

差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)

2、 GPSDOPandActiveSatellites(GSA)当前卫星信息

$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh

<1>

模式,M=手动,A=自动

<2>

定位类型,1=没有定位,2=2D定位,3=3D定位

<3>

PRN码(伪随机噪声码),正在用于解算位置的卫星号(01~32,前面的0也将被传输)。

<4>

PDOP位置精度因子(0.5~99.9)

<5>

HDOP水平精度因子(0.5~99.9)

<6>

VDOP垂直精度因子(0.5~99.9)

3、 GPSSatellitesinView(GSV)可见卫星信息

$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…<4>,<5>,<6>,<7>*hh

<1>

GSV语句的总数

<2>

本句GSV的编号

<3>

可见卫星的总数(00~12,前面的0也将被传输)

<4>

PRN码(伪随机噪声码)(01~32,前面的0也将被传输)

<5>

卫星仰角(00~90度,前面的0也将被传输)

<6>

卫星方位角(000~359度,前面的0也将被传输)

<7>

信噪比(00~99dB,没有跟踪到卫星时为空,前面的0也将被传输)

注:

<4>,<5>,<6>,<7>信息将按照每颗卫星进行循环显示,每条GSV语句最多可以显示4颗卫星的信息。

其他卫星信息将在下一序列的NMEA0183语句中输出。

4、 RecommendedMinimumSpecificGPS/TRANSITData(RMC)推荐定位信息

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh

<1>

UTC时间,hhmmss(时分秒)格式

<2>

定位状态,A=有效定位,V=无效定位

<3>

纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<4>

纬度半球N(北半球)或S(南半球)

<5>

经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<6>

经度半球E(东经)或W(西经)

<7>

地面速率(000.0~999.9节,前面的0也将被传输)

<8>

地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)

<9>

UTC日期,ddmmyy(日月年)格式

<10>

磁偏角(000.0~180.0度,前面的0也将被传输)

<11>

磁偏角方向,E(东)或W(西)

<12>

模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

5、 TrackMadeGoodandGroundSpeed(VTG)地面速度信息

$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh

<1>

以真北为参考基准的地面航向(000~359度,前面的0也将被传输)

<2>

以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)

<3>

地面速率(000.0~999.9节,前面的0也将被传输)

<4>

地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)

<5>

模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

6、 GeographicPosition(GLL)定位地理信息

$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh

<1>

纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

<2>

纬度半球N(北半球)或S(南半球)

<3>

经度dddmm.mmmm(度分)格式(前面的0也将被传输)

<4>

经度半球E(东经)或W(西经)

<5>

UTC时间,hhmmss(时分秒)格式

<6>

定位状态,A=有效定位,V=无效定位

<7>

模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

通过这些说明就可以理解串口接受过来的数据,下面对一组RMC数据进行一下具体分析:

$GPRMC,044614.262,A,3148.4710,N,12138.6413,E,0.00,,171105,,*1E

N,12138.6413--N表示东经,东经121度38.6431分。

3148.4710--北纬31度48.4710分。

A--表示这次数据是有效的,如果是无效的显示V。

171105--表示是05年11月17号。

044614.262--表示格林威治时间04点46分14秒262毫秒,因为格林威治时间比北京时间慢8小时,所以对应的北京时间是下午12点。

E,0.00,,--E后面的是运动方向数据,正北方为0度,东方为90度,南方为180度,西方为270度。

两个,,之间是运动数据,因为模块此时没有运动,所以没有速度数据产生,它的单位是海里/小时。

数据在程序里加以处理就可以分析出经纬度、时间、卫星数、年、月、日等其他数据。

因为我们在应用时的需要,在开始编程时主要运用了GGA、GSV、RMC这三种语句格式进行数据分析。

在调试时用串口中断方式在中断中处理接收的数据,主要运用switchcase语句进行语句格式的查询,通过对上面语句分析可总结出:

“$”为语句起始标志,“,”为域名分隔符,“*”为校验识别符,其后面的两位数为校验和,代表“$”和“*”之间所有字符的按位异或值(不包括这两个字符),“/”为终止符,所有语句必须以它来结束。

利用这些标志在case语句中做出判断。

利用这些就可以把经纬度查询出来,在加上多组数据的验证就可以有较高的精度,从而确定我们的位置,通过上面那些数据就可以把经纬度进行处理从而得出可以用于软件定位的数据,通过4355.3451,N,12633.8076,E这个数据为例在经过运算就能把度、分、秒分析出来,分析如下4355.3451前边两位为度即为43°,下面两位为分即为55′,小数点后需要换算为秒即为0.3451*60=20.706即为20.706″。

全部换算后即为43°55′20.706″N,126°33′48.456″E,通过这个数据在“Google地球”这个软件上就可以查询我们做实验时的地理位置,在下面图五输入界面输入经纬度。

(图五Google地球输入位置)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1