原创 GPS数据格式

2009-10-21 09:31 3807 10 11 分类: MCU/ 嵌入式

a.GPS固定数据输出语句($GPGGA)
这是一帧GPS定位的主要数据,也是使用最广的数据。
$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。该数据帧的结构及各字段释义如下:


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


$GPGGA:起始引导符及语句格式说明(本句为GPS定位数据);


<1>   UTC时间,格式为hhmmss.sss;
<2>   纬度,格式为ddmm.mmmm(第一位是零也将传送);
<3>   纬度半球,N或S(北纬或南纬)
<4>   经度,格式为dddmm.mmmm(第一位零也将传送);
<5>   经度半球,E或W(东经或西经)
<6>   定位质量指示,0=定位无效,1=定位有效;
<7>   使用卫星数量,从00到12(第一个零也将传送)
<8>   水平精确度,0.5到99.9
<9>   天线离海平面的高度,-9999.9到9999.9米
M 指单位米
<10> 大地水准面高度,-9999.9到9999.9米
M 指单位米
<11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量


<12>   差分参考基站标号,从0000到1023(首位0也将传送)。


* 语句结束标志符
xx 从$开始到*之间的所有ASCII码的异或校验和
<CR> 回车
<LF> 换行



b.可视卫星状态输出语句($GPGSV)     
例2:$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78   
标准格式:   $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)   
各部分含义为:   
(1)总的GSV语句电文数;2;
(2)当前GSV语句号:1;   
(3)可视卫星总数:08;   
(4)卫星号:06;   
(5)仰角(00~90度):33度;   
(6)方位角(000~359度):240度;   
(7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息);   
*总和校验域;  
hh 总和校验数:78;   
(CR)(LF)回车,换行。   
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:  
(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。


c.当前卫星信息($GSA)
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7>


<1>模式 :M = 手动, A = 自动。
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
<4> PDOP位置精度因子(0.5~99.9)
<5> HDOP水平精度因子(0.5~99.9)
<6> VDOP垂直精度因子(0.5~99.9)
<7> Checksum.(检查位).


d.推荐定位信息(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> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)


e.地面速度信息(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> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)



GPS 数据格式
GPRMC(建议使用最小GPS数据格式)


$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
1) 标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。
2) 定位状态,A = 数据可用,V = 数据不可用。
3) 纬度,格式:度度分分.分分分分(ddmm.mmmm)。
4) 纬度区分,北半球(N)或南半球(S)。
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.(检查位)


GPGSV(所示卫星格式)


$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
1) 天空中收到讯号的卫星总数。
2) 定位的卫星总数。
3) 天空中的卫星总数,00 至 12。
4) 卫星编号, 01 至 32。
5) 卫星仰角, OO 至 90 度。
6) 卫星方位角, OOO 至 359 度。实际值。
7) 讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
8) Checksum.(检查位).


第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。


GPGSA(GPS精度指针及使用卫星格式)
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>


1)模式 2:M = 手动, A = 自动。
2)模式 1:定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
3) PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
4) PDOP-位置精度稀释 0.5 至 99.9.
5) HDOP-水平精度稀释 0.5 to 99.9.
6) VDOP-垂直精度稀释 0.5 to 99.9.
7) Checksum.(检查位).  


 


GPS固定数据输出语句($GPGGA)  
这是一帧GPS定位的主要数据,也是使用最广的数据。为了便于理解,下面举例说明$GPGGA语句各部分的含义。例1是用GN-77N和笔者开发的软硬件接口,在笔者所在地接收到的$GPGGA语句的内容。
例1:$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65  
其标准格式为:$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)
各部分所对应的含义为:  
(1)定位UTC时间:05时09分01秒
(2)纬度(格式ddmm.mmmm:即dd度,mm.mmmm分);
(3)N/S(北纬或南纬):北纬39度31.4449分;
(4)经度(格式dddmm.mmmm:即ddd度,mm.mmmm分);
(5)E/W(东经或西经):东经116度43.5123分;
(6)质量因子(0=没有定位,1=实时GPS,2=差分GPS):1=实时GPS;
(7)可使用的卫星数(0~8):可使用的卫星数=07;
(8)水平精度因子(1.0~99.9);水平精度因子=1.4;
(9)天线高程(海平面,-9999.9~99999.9,单位:m);天线高程=76.2m);  
(10)大地椭球面相对海平面的高度(-999.9~9999.9,单位:m):-7.0m;  
(11)差分GPS数据年龄,实时GPS时无:无;  
(12)差分基准站号(0000~1023),实时GPS时无:无;  
*总和校验域;
hh 总和校验数:65  
(CR)(LF)回车,换行。   


b.可视卫星状态输出语句($GPGSV)    
例2:$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78  
标准格式:   $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)  
各部分含义为:  
(1)总的GSV语句电文数;2;
(2)当前GSV语句号:1;  
(3)可视卫星总数:08;  
(4)卫星号:06;  
(5)仰角(00~90度):33度;  
(6)方位角(000~359度):240度;  
(7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息);  
*总和校验域;
hh 总和校验数:78;  
(CR)(LF)回车,换行。  
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:
(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。


From: http://zhidao.baidu.com/question/71090414.html



GPS接收机能提供ASCII和二进制两种格式。其中ASCII码为NMEA-0183,NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。它是在过去海用电子设备的标准格式0180和0182的基础上,增加了GPS接收机输出的内容而完成的。目前广泛采用的是Ver 2.00版本。现在除少数GPS接收机外,几乎所有的接收机均采用了这一格式。各条语句都以$开头,格式为:$AAXXX,ddd…ddd,*hh<CR><LF>。AA为识别符,XXX为语句名,ddd…ddd为发送的数据内容,*后hh为校验和,<CR><LF>回车、换行符。GPS接收机可以输出多种数据格式。如GGA、ZDA、GLL、GSA、GSV、VTG等格式。其中$GPGGA是最常用的一种数据格式。下面是$GPGGA的一个例子。


$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65


说明如下:


(1)    GGA表示定位语句。


(2)    定位UTC时间:050901表示05时09分01秒


(3)    接收机所在纬度值(格式ddmm.mmmm),N/S(北纬或南纬)。3931.4449,N表示北纬39度31.4449分。


(4)    经度(格式dddmm.mmmm),E/W(东经或西经)。11643.5123,E表示东经116度43.5123分。


(5)    定位代号(0 为未定位或无效的定位;1为 GPS SPS 格式(SPS为商业用途格式),已定位;2 为偏差修正GPS(即DGPS),SPS 格式,已定位;3 为GPS PPS 格式(PPS为军用格式),已定位)。1表示使用SPS定位服务而且是有效的定位。


(6)    可使用的卫星数。07表示可使用的卫星数为7颗。


(7)    水平精度因子(HDOP),1.4表示水平精度因子为1.4。


(8)    天线MSL(MSL - Main Sea Level公海平面)高程(海平面,-9999.9~99999.9,单位:m),76.2为天线MSL高程。


(9)    大地椭球面相对海平面的高度(-999.9~9999.9,单位:m),-7.0m。


(10)差分GPS数据年龄,实时GPS时无:无。


(11)差分基准站号(0000~1023),实时GPS时无:无。


(12)*总和校验域(hh ),总和校验数为65。


NMEA-0183的串行通讯协议为:波特率为4800,无校验位,8个数据位,开始位和停止位各为1。

文章评论1条评论)

登录后参与讨论

用户1588142 2011-6-7 10:32

收下!!!!

用户1196145 2007-8-28 16:56

嵌入式是发展的必然趋势,单片机是比较容易上手的入门学习材料,大家好好学习吧,可以一起搞个小的试验系统来做做,先练练手!

相关推荐阅读
用户1591794 2015-01-27 12:49
GPRS流量计算方法(TCP/IP)
 流量统计方法: 一、登陆网络,建立TCP链路 PPP握手阶段大约要来回12~16个PPP握手包,每个包为30字节。30*16=480字节。 TCP连接阶段:40×3=120字节 注册:...
用户1591794 2014-07-18 09:27
Warning[Pa082]:undefined behavior:
IAR编译的时候,出现警告如下: Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in...
用户1591794 2014-03-21 10:28
Eclipse AVR Windows8.1 Error
...
用户1591794 2013-08-08 09:13
STM32如何进入sleep模式
  STM32如何进入sleep模式 网上说STM32 STOP模式和Standby模式的不少,却很少有人说怎么操作Sleep模式,东西不多,加一个函数而已,废话不多,下面就给出添加的函数...
用户1591794 2013-08-07 06:50
STM32 BOOT0连接不当造成死机
  STM32的三种启动方式依靠BOOT0和BOOT1两个引脚的电平来决定,ST官方推荐的是串联10k电阻然后在接高电平或接地。 理论上这两个引脚只是在启动的时候用来选择启动方式,启动结束...
用户1591794 2013-04-20 21:52
STM32L BOR 应用
BOR功能 是STM32L系列特有的复位和启动电压调整功能。 BOR 关闭时STM32L的供电范围是1.65 V to 3.6 V, BOR 关闭时STM32L的供电范围是1.8 V to...
我要评论
1
10
关闭 站长推荐上一条 /2 下一条