搜档网
当前位置:搜档网 › GPS通讯协议(NMEA0183)解析

GPS通讯协议(NMEA0183)解析

GPS通讯协议(NMEA0183)解析

说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧!

GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种

NMEA通讯协议硬件接口

符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~-15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~±6V 。

虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C 输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。

NMEA通讯协议所定义的标准通讯接口参数为:

波特率:4800bit/s;

数据位:8位;

停止位:1位;

奇偶校验:无;

NMEA-OI83语句解析

NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。

典型的NMEA0183语句如下面的GPGGA语句。

当GPS正常工作时,语句如:

$GPGGA,053152,3957.7484,N,11626.7626,E,1,06,1.5,88.1,M,-8.0,M,,*64

当GPS收不到卫星信号时,GPGGA语句输出变为:

$GPGGA,053247,3957.7484,N,11626.7626,E,0,00,,,M,,M,,*46

除标准语句外,NMEAO183规范还允许个别厂商定义私有的语句格式,这些语句以“$P”开始,然后是三个字符长度的厂商识别号,跟着是厂商定义的数据,接下来的数据格式与标准格式相同。

如Garmin的PGRME私有格式如下:

$PGRME,8.9,M,6.1,M,10.8,M*11

其中,“P”代表私有格式,“GRM”是Garmin的代码,“E”表示语句类型。

NMEA数据处理中的注意事项

如果开发基于GPS的应用系统,就需要将GPS作为信息源,正确接收和解析GPS发送的NMEA一0183数据。此时,在编程实现时需要注意几个问题。

1、通讯端口的设置

虽然NMEA规范推荐的串行通讯参数为“波特率:4800;奇偶校验:无;数据位:8;停止位:1”,但也有厂商的产品允许用户将波特率设置的更高,此时需要注意设置计算机的接口参数与GPS设备一致。

2、所需信息的正确提取

NMEA—O183是以语句形式发送数据的,接收机可能发送很多类型的语句,而我们需要的可能只是某些语句中的几个字段。因此就需要对接收到的数据进行解析,取得所需的信息。另外,可能会由于小数点位数不同等原因,语句的长度是可变的,因而分离感兴趣的信息时,不能按照该信息在语句中所处的字符位置来查找,只能依据逗号分隔符,这一点在数据提取的过程中非常重要。笔者就经常遇到一些应用软件工程师,在提取NMEA语句中的信息的时候按照字符的长度提取,这样编出来的程序,通用性差,而且经常会出现信息提取错误的问题。

以上都是我们在程序中需要注意的问题。为解决信息的正确提取问题,并提高程序的复用性,可以编写适当的函数,如一个函数用来分离语句(即通过$字符判断语句头,一直到换行回车结束一条语句);一个函数用来判断语句中的字段数(通过“,”分隔符来提取语句字段),还有一个函数用来返回语句中指定字段的内容。有了这三个函数,就可以方便的提取所需的信息,此时的工作只是简单字符串比较和显示格式的变换

检验和的计算与比较

最后,为了确保所采集的GPS数据的可靠性,必须进行检验和的计算与比较。检验和hh为“$”与“*”之间的所有字符按位异或的结果,并将其高4位和低4位各用一个十六进制数(字母大写)表示出来。为此,需编写函数,从语句头识别符“*”开始,计算检验和,直至“*”到达为止,这时“*”号后面的两个字符就是检验码,将自己的计算结果同这两个检验码字符比较,若不同,按出错处理,并继续运行;若相同,则说明通讯成功,数据接收正确,可以处理该语句,提取所需数据。

这里简单介绍了NMEA一0183规范的接口定义和数据格式,但是篇幅限制没有对NMEA语句进行详细的解析,语句的详细说明可参照NMEA规范或各GPS接收机的说明书。我现在

手中有一份中文版本的NMEA协议语句的详细解析,当然并不是全部的语句,是根据GARMIN技术手册翻译过来的,如果有兴趣了解的兄弟可以留下邮箱。

以上这些文字,是AKA按照自己对NMEA协议的的理解,再加上一点东找西看来的东西写出来的,如对其中的问题有疑问,欢迎探讨!

NMEA协议详解

NMEA协议详解 2017/9/11 NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术 委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associations)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串 口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议, 大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 不过,也有少数厂商的设备使用自行约定的协议比如GARMIN的GPS设备(部分GARMIN设备也 可以输出兼容NMEA-0183协议的数据)。软件方面,我们熟知的Google Earth目前也不支持 NMEA-0183协议,但Google Earth已经声明会尽快实现对NMEA-0183协议的兼容。呵呵,除非 你确实强壮到可以和工业标准分庭抗礼,否则你就得服从工业标准。 NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183语句 的字段定义解释。 $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS 定位信息 字段1:UTC 时间,hhmmss.sss,时分秒格式 字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0) 字段3:纬度N(北纬)或S(南纬) 字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0) 字段5:经度E(东经)或W(西经) 字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算 字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0) 字段8:HDOP水平精度因子(0.5 - 99.9) 字段9:海拔高度(-9999.9 - 99999.9) 字段10:地球椭球面相对大地水准面的高度 字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

GPS数据协议NMEA0183

GPS 数据协议 NMEA-0183
NMEA 0183 是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。目前业已成了 GPS 导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。
序号 1 2 3 4 5 6 7
命令 $GPGGA $GPGSA $GPGSV $GPRMC $GPVTG $GPGLL $GPZDA
说明 全球定位数据 卫星 PRN 数据 卫星状态信息 运输定位数据 地面速度信息 大地坐标信息 UTC 时间和日期
最大帧长 72 65 210 70 34
注:发送次序$PZDA、$GPGGA、$GPGLL、$GPVTG、$GPGSA、$GPGSV*3、 $GPRMC 协议帧总说明: 该协议采用 ASCII 码, 其串行通信默认参数为: 波特率=4800bps, 数据位=8bit, 开始位=1bit,停止位=1bit,无奇偶校验。 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh 1、“$”——帧命令起始位 2、aaccc——地址域,前两位为识别符,后三位为语句名 3、ddd…ddd——数据 4、“*”——校验和前缀 5、hh——校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字 节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符。) 6、——CR(Carriage Return) + LF(Line Feed)帧结束,回车和 换行 GPGGA GPS 固定数据输出语句, 这是一帧 GPS 定位的主要数据, 也是使用最广的数据。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<1 5> <1> UTC 时间,格式为 hhmmss.sss。 <2> 纬度,格式为 ddmm.mmmm(前导位数不足则补 0)。 <3> 纬度半球,N 或 S(北纬或南纬)。 <4> 经度,格式为 dddmm.mmmm(前导位数不足则补 0)。

单片机解析GPS数据

三、单片机解读GPS信息的程序设计 用单片机解读GPS信息是GPS模块使用最重要的环节,由于汲设到产品的保密问题,这里只介绍时间的处理方法,而方位、速度的处理方法不做介绍,但通过时间的处理方法,同样可以处理方位、速度。 1、获取GPS模块的输出信息 由于GPS模块每秒输出一次:$GPGGA 、$GPGSA、$GPGSV、$GPRMC数据。速率慢,因此必须采用中断方式接收!(采用查询会造成数据丢失),而且单片机只需要处理$GPRMC信息,即可得到时间、方位、速度。程序采用C51编制,在Keil C中编译! code unsigned char GPS_ASC[]="$GPRMC" ; //定义特征字符串 unsigned char idata RsBuf[60]; //********************************************************** //读取GPS模块串口数据, 采用中断方式 void GetRs232_Data() interrupt 4 { unsigned char i; unsigned int j; if (RI){ RI=0; RsBuf[0]=SBUF; if (RsBuf[0] =='$'){ //是GPS数据的开始,进入查询接收 for (i=1;i

GNSS输出NEMA协议解析

GNSS 导航芯片输出 NEMA 协议解析 1. NEMA 协议的由来 NMEA 协议是为了在不同的 GPS (全球定位系统)导航设备中建立统一的 BTCM (海事无线电技术委员会)标准,由美国国家海洋电子协会( NMEA-The National Marine Electronics Associa-tion )制定的一套通讯协议。GPS接收机根据NMEA-0183 协议的标准规范,将位置、速度等信息通过串口传送到 PC 机、PDA 等设备。 NMEA-0183 协议是 GPS 接收机应当遵守的标准协议,也是目前 GPS 接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 NMEA-0183 协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA $GPGSA 、 $GPGSV 、 $GPRMC 、 $GPVTG 、 $GPGLL 等。下面给出这些常用 NMEA-0183 语句的字段定义解释。$GPGGA 例: $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段 0: $GPGGA ,语句 ID,表明该语句为 Global Positioning System Fix Data (GGA )GPS 定位信息 字段 1 : UTC 时间, hhmmss.sss ,时分秒格式 字段 2:纬度 ddmm.mmmm ,度分格式(前导位数不足则补 0) 字段3:纬度N (北纬)或S (南纬) 字段 4 :经度 dddmm.mmmm ,度分格式(前导位数不足则补 0 ) 字段 5: 经度 E(东经)或 W(西经) 字段 6: GPS 状态, 0=未定位, 1=非差分定位, 2=差分定位, 3=无效 PPS , 6=正在估算 字段 7: 正在使用的卫星数量( 00 - 12 )(前导位数不足则补 0) 字段 8 : HDOP 水平精度因子( 0.5 - 99.9 ) 字段 9: 海拔高度( -9999.9 - 99999.9 ) 字段 10: 地球椭球面相对大地水准面的高度 字段 11 : 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 字段 12: 差分站 ID 号 0000 - 1023 (前导位数不足则补 0,如果不是差分定位将为空) 字段 13: 校验值

MATLAB解析GPS数据程序

% 注:本程序可直接在MATLAB 2017a 中运行 %该脚本文件用于学习GPS数据的读取,需要做其他用途请自行修改代码 %本脚本文件的前面几行代码是要设置的一些参数 %默认使用COM3(需视情况修改) %波特率设为GPS模块默认的38400 %下面为程序源码 clear num_execute = 100; % 执行次数 num_SingleRead = 150; %单次从串口读取的字节数(最好设置足够大(最低大概设为80),保证单次读取的数据包含一条完整的GPS数据) Timedelay = ; % 用于延时读取串口数据 BaudRate = 38400; % 读取数据的波特率 Terminator = 'CR'; num_MaxTry = 5; %打开串口的最多尝试次数 BytesAvailableFcnCount = 1000; %% 设置参数 % delete(instrfindall); % 串口打开失败时使用此句 % delete(s);clear s % 串口打开失败时使用此句 serial3 = serial('COM3'); % 串口设置 = 'byte'; % = 38400; % 输出波特率 = BaudRate; % 读入波特率

% = 1024; = BytesAvailableFcnCount; = 'continuous'; = Terminator; %% 打开串口 count_opentimes = 1; while contains,'closed') > 0 && count_opentimes < num_MaxTry fopen(serial3); %打开串口 count_opentimes = count_opentimes+1; end if contains,'open') < 1 disp('open com failed!'); return end %% 读取并处理数据 % 初始化 GPS_Data = GPS_Init(); while(num_execute > 0) GPS_DataStrs = fread(serial3,num_SingleRead,'char'); %一次读出10个字符 GPS_DataStrs = reshape(GPS_DataStrs,1,[]); GPS_DataStrs = split_str2strs(GPS_DataStrs); GPS_Data_tmp = get_GPS_specificData(GPS_DataStrs);

Gps协议解析

GPS卫星定位接收器的NMEA协议解析 GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本文所使用的GARMIN GPS 天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有"$GPGGA"、"$GPGSA"、"$ GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,该帧的结构及各字段释义如下: $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh <1> 当前位置的格林尼治时间,格式为hhmmss <2> 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。 <3> 纬度, 格式为ddmm.mmmm <4> 标明南北半球, N 为北半球、S为南半球 <5> 径度,格式为dddmm.mmmm <6> 标明东西半球,E为东半球、W为西半球 <7> 地面上的速度,范围为0.0到999.9 <8> 方位角,范围为000.0到359.9 度 <9> 日期, 格式为ddmmyy <10> 地磁变化,从000.0到180.0 度 <11> 地磁变化方向,为E 或W 至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对"$GPRMC"帧进行数据的提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码"$"来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。 附:NMEA0183常用协议格式 说明:NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等

NMEA0183协议说明(中文)

NMEA-0183协议说明 V2.20 2004年1月 注:因本人水平有限,难免出现错,敬请修改。

1、NMEA输出报文 A. GGA –全球定位系统固定数据 $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18

B. GLL –地理信息——纬度/经度 $GPGLL, 3723.2475,N,12158.3416,W,161229.487,A*2C C. GSA –GNSS DOP(定位点)活动卫星 $GPGSA, A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.5*33

和表1.7应互换) D. GSV –GNSS DOP(定位点)活动卫星 $GPGSV,2,2,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71

E. RMC –推荐的最小具体定位数据 $GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

$GPVTG,309.62,T,,M,0.13,N,0,2,K*6E NMEA 输入报文提供了允许通过NMEA协议控制GPS的方法。 传输格式: 1.起始符包含3个字节,从MID100开始(Message identifier consisting of three numeric characters. Input messages begin at MID 100.)。?????? 2.具体数据,特定的数据序列。 3.NMEA定义的校验是2个HEX的字符,适用于所有输入报文。

GPS-NMEA数据格式详解

NMEA data Table of Contents ?Introduction ?Hardware connection ?NMEA sentences ?Decodes of some position sentences ?Decodes of some navigation sentences ?Decodes of a few other sentences ?Decodes of some proprietary sentences ?Sample Streams Disclaimer This site is based on personal research and is believed to be accurate but there is no guarantee that any of the information is correct or suitable for any purpose. I have been told by the NMEA folks that my information is old and out of date. The current version of NMEA at the time I wrote this is 3.01 which is not described here. This site is for historical information and is not intended to be used for any official purpose. For official data please contact the NMEA web site. Please see the bottom of this article for the sources of this data. Introduction The National Marine Electronics Association (NMEA) has developed a specification that defines the interface between various pieces of marine electronic equipment. The standard permits marine electronics to send information to computers and to other marine equipment. A full copy of this standard is available for purchase at their web site. None of the information on this site comes from this standard and I do not have a copy. Anyone attempting to design anything to this standard should obtain an official copy. GPS receiver communication is defined within this specification. Most computer programs that provide real time position information understand and expect data to be in NMEA format. This data includes the complete PVT (position, velocity, time) solution computed by the GPS receiver. The idea of NMEA is to send a line of data called a sentence that is totally self contained and independent from other sentences. There are standard sentences for each device category and there is also the ability to define

NMEA通讯协议详解

NMEA通讯协议详解 说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧! GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种 NMEA通讯协议硬件接口 符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~-15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~±6V 。 虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C 输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。 NMEA通讯协议所定义的标准通讯接口参数为: 波特率:4800bit/s; 数据位:8位; 停止位:1位; 奇偶校验:无; NMEA-OI83语句解析 NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。 典型的NMEA0183语句如下面的GPGGA语句。

GPS数据分析

nmea数据如下: $GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,00 00*77 $GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A* 54 $GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04 $GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,,00 00*72 $GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D $GPGSV,3,3,10,29,07,074,,30,07,163,28*7D 注:NMEA0183格式以“$”开始,主要语句有GPGGA,GPRMC,GPGSA,GPGSV,GPVTG,GPZDA等 1、 GPS DOP and Active Satellites(GSA)当前卫星信息 $GPGSA,<1>,<2>,<3>,<4>,,,,,<12>,<13>,<14>, <15>,<16>,<17>,<18> <1>模式:M = 手动, A = 自动。 <2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。 <3>到<14>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息 (上面蓝色处,总共有12个)。 <15> PDOP位置精度因子(0.5~99.9) <16> HDOP水平精度因子(0.5~99.9) <17> VDOP垂直精度因子(0.5~99.9) <18> Checksum.(检查位). 2、 GPS Satellites in View(GSV)可见卫星信息 $GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8> <1> GSV语句的总数 <2> 本句GSV的编号 <3> 可见卫星的总数,00 至 12。 <4> 卫星编号, 01 至 32。 <5>卫星仰角, 00 至 90 度。 <6>卫星方位角, 000 至 359 度。实际值。 <7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。 <8>Checksum.(检查位). 第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。

GPGGA数据解析论文

摘要 GPS全球定位系统能连续、实时地确定船舶的准确位置,并将它的信息反馈给船舶驾驶自动控制系统的中央处理系统,以便中央处理系统随时检查船舶是否偏离最佳航线,据此采取措施,确保船舶稳定而精确地沿最佳航线航行。 GPGGA,作为GPS NMEA-0183协议主要数据之一,是目前使用最广的数据。最大帧长72,包括17个字段。我们可以通过解析它来确定船舶当前的时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号。 本次设计主要是要通过学习GPS原理及NMEA-0183协议,运用C语言进行编程,即读取、解析数据的定位信息。 关键字:GPS,GPGGA,C语言,NMEA-0183协议

目录 前言 (1) 1.绪论 (3) 2.方案设计 (6) 3.PCB图绘制 ............................................................................. 错误!未定义书签。4.调试.. (25) [参考文献] (26)

前言 GPS的工作原理,简单地说来,是利用我们熟知的几何与物理上一些基本原理。首先我们假定卫星 的位置为已知,而我们又能准确测定我们所在地点A至卫星之间的距离,那么A点一定是位于以卫星为 中心、所测得距离为半径的圆球上。进一步,我们又测得点A至另一卫星的距离,则A点一定处在前后 两个圆球相交的圆环上。我们还可测得与第三个卫星的距离,就可以确定A点只能是在三个圆球相交的 两个点上。根据一些地理知识,可以很容易排除其中一个不合理的位置。当然也可以再测量A点至另一 个卫星的距离,也能精确进行定位。事实上,接收机往往可以锁住4颗以上的卫星,收到四颗则加上高 程值这时,接收机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用 作定位,从而提高精度。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议。GPGGA 是GPS NMEA0183协议语句中的一种格式,这是一帧GPS定位的主要数据,也是使用最广的数据。GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符和换行符),分别用14个逗号进行分隔。利用一些软件就能把GPGGA的这些信息数据完整的显示出来。 GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。其最初目的是 为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯 等一些军事目的;目前已被广泛应用于交通、测绘等许多行业。GPS由21颗工作的卫星和3颗备用 的卫星组成。它能够覆盖全球,可以为公路、铁路、空中和海上的交通运输工具提供导航定位服务。它 能够军民两用,战略作用与商业利益并举。全球卫星定位系统包括绕地球运行的多颗卫星,能连续发射 一定频率的无线电信号。只要持有便携式信号接收仪,则无论身处陆地、海上还是空中,都能收到卫星 发出的特定信号。接收仪中的电脑选取几颗卫星发出的信号进行分析,就能确定接收仪持有者的位置。 全球定位系统用途广泛,主要有三个方向的应用:(1)陆地应用,主要包括车辆导航、应急 反应、大气物理观测、地球物理资源勘探、工程测量、变形监测、地壳运动监测、市政规划控 制等;(2)海洋应用,包括远洋船最佳航程航线测定、船只实时调度与导航、海洋救援、海洋探宝、水文地质测量以及海洋平台定位、海平面升降监测等;(3)航空航天应用,包括飞机导航、 航空遥感姿态控制、低轨卫星定轨、导弹制导、航空救援和载人航天器防护探测等。 【1】随着科技的发展,GPS定位系统应用越来越广泛。不光在尖端科技方面普遍,就在我们的生活方面也得到广泛的应用。 在军事、科技等尖端方面应用有航空方面的,还有导弹方面的。在军事领域和科技领域起着越来越重要的作用。并且在这些方面的发展很有前景。未来在这方面的竞争将非常激烈。 现在已经进入3G时代,有许多手机已经安装了导航系统。为我们的生活提供了很大的方便,越来越贴近我们的生活。还有在其他方面的应用主要有: 1.船舶远洋导航和进港引水; 2.飞机航路引导和进场降落; 3.汽车自主导航; 4.地面车辆跟踪和城市智能交通管理; 5.紧急救生; 6.个人旅游及野外探险;

NEMA0183协议

NMEA0183协议 Glenn Baddeley - GPS - NMEA senten ce information All $GPxxx sentence codes and short descripti ons ?$GPAAM - Waypoint Arrival Alarm ?$GPALM - GPS Almanac Data ?$GPAPA - Autopilot format "A" ?$GPAPB - Autopilot format "B" ?$GPASD - Autopilot System Data ?$GPBEC - Bearing & Distance to Waypoint, Dead Reckoning ?$GPBOD - Bearing, Origin to Destination ?$GPBWC - Bearing & Distance to Waypoint, Great Circle ?$GPBWR - Bearing & Distance to Waypoint, Rhumb Line ?$GPBWW - Bearing, Waypoint to Waypoint ?$GPDBT - Depth Below Transducer ?$GPDCN - Decca Position ?$GPDPT - Depth ?$GPFSI - Frequency Set Information ?$GPGGA - Global Positioning System Fix Data

?$GPGLC - Geographic Position, Loran-C ?$GPGLL - Geographic Position, Latitude/Longitude ?$GPGRS - GPS Range Residuals ?$GPGSA - GPS DOP and Active Satellites ?$GPGST - GPS Pseudorange Noise Statistics ?$GPGSV - GPS Satellites in View ?$GPGXA - TRANSIT Position ?$GPHDG - Heading, Deviation & Variation ?$GPHDT - Heading, True ?$GPHSC - Heading Steering Command ?$GPLCD - Loran-C Signal Data ?$GPMSK - Control for a Beacon Receiver ?$GPMSS - Beacon Receiver Status ?$GPMTA - Air Temperature (to be phased out) ?$GPMTW - Water Temperature ?$GPMWD - Wind Direction ?$GPMWV - Wind Speed and Angle ?$GPOLN - Omega Lane Numbers ?$GPOSD - Own Ship Data ?$GPR00 - Waypoint active route (not standard) ?$GPRMA - Recommended Minimum Specific Loran-C Data ?$GPRMB - Recommended Minimum Navigation Information

NMEA0183 协议

GNSS NMEA 0813标准数据格式的解释和模拟 廖永生梁绕 (广西第一测绘院广西南宁530023) 【摘要】对NMEA 0183格式的定位数据进行解释和数据模拟,为开发GNSS应用服务系统作了基础性研究,可作为未来GNSS各应用系统开发参考。 【关键词】NMEA 0183 GNSS数据解释模拟 1 前言 GNSS导航定位技术是目前应用得最广泛的空间定位技术之一,已被广泛应用于空间信息数据采集和服务等各个方面。随着各地区域性CORS(Continously Operation Reference System)建成,差分GPS定位服务得到了不断深化。随着GLONASS的完善和Galileo卫星导航定位系统的建成,GNSS导航定位技术将更加普及,将会对各行各业都产生重大影响。 数据格式问题一直是GNSS相关服务中的难题,特别是差分GNSS数据和静态GNSS数据格式之间的差异使普通GPS设备无法直接获得专业差分服务。数据格式标准的统一,是实现GNSS相关服务的基础。 目前最通用的GNSS格式是NMEA 0183格式,NMEA 0183是最终定位格式,即将二进制定位格式转为统一标准定位格式,与卫星类型无关。掌握NMEA 0183格式,对于推广GNSS应用服务和研究GNSS相关技术具有重要意义。 本文将对NMEA 0183格式进行概括说明,同时采用程序模拟NMEA 0183格式,作为NMEA 0183标准格式的技术探索。 2 NMEA 0183协议概述 NMEA是“National Marine Electronics Association”(国际海洋电子协会)的缩写,同时也是数据传输标准工业协会,该协会定制的GNSS数据格式是NMEA 0183数据格式,它是一套定义接收机输出的标准信息,有几种不同

GPS NMEA协议数据全分析

NMEA是"National Marine Electronics Association"(国际海洋电子协会)缩写,同时也是数据传输标准工业协会,在这里,实际上应为NMEA 0183。它是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出,最常用的格式为"GGA",它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP值,差分状态和校正时段等,其他的有速度,跟踪,日期等。NMEA实际上已成为所有的GPS接收机和最通用的数据输出格式,同时它也被用于与GPS接收机接口的大多数的软件包里。 NMEA数据如下:$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77 $GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54 $GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04 $GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,,0000*72 $GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D $GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70 $GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E $GPGSV,3,3,10,29,07,074,,30,07,163,28*7D $GPGGA,032648.00,2307.595860,N,11321.993373,E,1,09,0.9,30.7,M,-5.2,M,,*4C $PSAT,HPR,032714.00,74.19,-23.16,,N*1F 说明:NMEA0183格式以“$”开始,常用语句有GPGGA,GPVTG,GPZDA等 1、GPS DOP and Active Satellites(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.(检查位). 2、GPS Satellites in View(GSV)可见卫星信息$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8> <1> GSV语句的总数<2> 本句GSV的编号<3> 可见卫星的总数,00 至12。<4> 卫星编号,01 至32。<5>卫星仰角,00 至90 度。<6>卫星方位角,000 至359 度。实际值。<7>讯号噪声比(C/No),00 至99 dB;无表未接收到讯号。<8>Checksum.(检查位). 第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。 3、Global Positioning System Fix Data(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(度分)

GPS-GPZDA数据解析C语言

摘要 GPS(Global Positioning System)可说是目前最热门、最受人瞩目的一项科技。简单的说,GPS是利用位于地球同步轨道上的同步卫星,以其相对位置的关系,来测出精确的位置,事实上,接收机往往可以锁住4颗以上的卫星,这时,接收机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用作定位,从而提高精度。GPS除了可作为精确的定位工具之外,同时也可以用作精密的测量工具。在进行大范围、大面积的地面测量时,往往受限于地球本身的弧度与测量仪器的精密程度,甚至于当时的天候状况或测量人员本身的许多因素,导致测量的结果产生或多或少的误差。倘若利用GPS来作为测量工具,由于人造卫星高悬于地表上空,受地表弯曲弧度的影响相对减少。透过GPS与GIS的结合,更可以让我们更快速、精确地处理所需的资料。 发明准确的计时工具之后的短时间内,没有人会想象得到有了准确的时间会带来改变世界的冲击,影响了我们的生活,新兴的产品和服务产业都由其引发。GPS对精确的位置就有如时钟对精确的时间一样,因此其得到大范围使用。由于GPS定位需要非常精确的时间,每颗GPS卫星上都有精密的原子钟,所以发送的信号可以附带精确的时间信息。对于接收机也就有一定要求,GPS卫星接收机种类很多,根据型号分为测地型、全站型、定时型、手持型、集成型;根据用途分为车载式、船载式、机载式、星载式、弹载式。 随着通信技术的迅速发展,为适应社会的需求,满足用户的需要,必须提高软件开发水平,近些年随着嵌入式操作系统的兴起,嵌入式终端与GPS的结合更加完善了GPS的可视性、功能性和操作性,使GPS 的泛用性得到增强,用户的数量增多使功能需求越来越复杂,其中就有部分用户对时间精度要求较高,需要专门的语句格式来解析,这也是GPZDA得到应用并推广的原因之一。 无论是生活还是军事,GPS全球卫星定位系统都已经成为最重要的定位系统。它的信号所包含的信息中有位置信号和时间信号,NMEA-0183协议的其他语句格式解析可以为用户指明自己的所处方位,时间信息却不是很准确。用户所需要的除了准确的位置信息,还有收到信号时的准确时间。GPZDA是NMEA0183协议中专门为解析时间准备的编码,比NMEA0183协议中的其他语句格式更加精确,因此其专用性受到用户认可。经过20余年的实践证明,GPS系统是一个高精度、全天候和全球性的无线电导航、定位和定时的多功能系统。 GPS技术已经发展成为多领域、多模式、多用途、多机型的国际性高新技术产业。 关键字:GPS 0183协议 GPZDA

相关主题