GPS协议0

1 NMEA0183通信协议
    NMEA0183是GPS数据的通信协议,GPS的通信协议有很多种,但目前绝大多数GPS模块生产厂商都采用NMEA0183协议作为其遵循的标准,因此在实现GPS与嵌入式Linux平台之间的通信时,应先对NMEA0183协议有一定的了解
(1)NMEA0183的通信参数.波特率:4800baud;数据位:8;奇偶校验:无;停止位:1位.
(2)NMEA0183的报文格式.NMEA 0183协议报文的语句串(ASCII字符)格式全部信息如图1.

$AAXXX ,ddd …… ,ddd *hh <CR><LF>
图1 NMEA0183的报文格式
    图1中具体内容:$为串头,表示串开始;AA为识别符;XXX为语句名;ddd...ddd为数据字段,字母或数字;*表示串尾;hh表示$与*之间所有字符代码的校验和;<CR>为回车控制符;<LF>为换行控制符.

    在实际的GPS应用中,并不会用到NMEA的全部信息,而是根据具体的需要,从中选取有用的信息,忽略其余的信息内容.
    例如:$GPRMC,152252,A,2513.3072,N,10346.3723,E,0.0,230.4,250503,1.3,W,A,* 02
    其中,$GPRMC为串头,表示此语句为定位语句;“*”之前的内容为数据字段,“152252”为UTC24小时制的标准时间,格式为“时时/分分/秒秒”;“A”表示信号接收状态,“A”表示接收正常,也可能为“V”,则表示一个警告,与卫星通信不正常;“2513.3072”表示纬度值;“N”标明南北半球,“N”表示北纬,“S”表示南纬;“10346.3723”表示经度值;“E”标明东西半球,“E”表示东经,“W”表示西经;“0.0”表示速度;“230.4”表示方位角,它的范围为000.0-359.9;“251205”表示UTC标准时间的日期,格式为“日日/月月/年年”;“1.3”表示磁偏角,范围为000.0-180.0;“W”表示地磁变化方向.
另一种解释:
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)-信噪比。 

串口设置一般为:1个开始位,8bit,1个结束位 没有奇偶校验,波特率参考接收设备说明书


另一种解释:
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协议0)