您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > NMEA0813标准数据格式的解释和模拟
NMEA0813标准数据格式的解释和模拟NMEA是“NationalMarineElectronicsAssociation”(国际海洋电子协会)的缩写,同时也是数据传输标准工业协会,该协会定制的GNSS数据格式是NMEA0183数据格式,它是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出。最常用的格式为“GGA”,它包含了定位时间、纬度、经度、高度、定位所用的卫星数、DOP值、差分状态和校正时段等,还有速度,跟踪,日期等。GPS接收机根据NMEA0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA实际上已成为所有的GNSS接收机和最通用的数据输出格式,同时它也被用于与GNSS接收机接口的大多数软件包里。NMEA-0183协议是GNSS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GNSS接收机、GNSS数据处理软件、导航软件都遵守或者至少兼容这个协议。NMEA0813格式与专业RTCM2.3/3.0和CMR+的GNSS数据格式不同,NMEA0813格式主要针对民用定位导航设备,通过NMEA0183格式,可以实现GNSS接收机与PC或PDA之间的数据交换,可以通过USB和COM口等通用数据接口进行数据传输,其兼容性高,数据传输稳定。同时NMEA0183可以作为民用差分GPS服务解算基础数据,通过CORS参考站和GPRS/CDMA公网通讯,直接接收NMEA0183兼容格式的差分信息,实现一般差分GNSS服务。NMEA最基本的使用方式如图1所示。图一NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。NMEA-0183的每条语句的格式如下表1所示。表1NMEA协议语句格式定义符号(ASCII)定义“$”语句起始位aaccc地址域,前两位为识别符,后三位为语句名“,”域分隔符ddd…ddd发送的数据内容“*”效验和符号,后面的两位数是效验和hh效验和CR/终止符,回车或换行LF不同的GPSOEM接收板提供的NMEA语句有很大差异,主要表现在字段的意义和位置上。用户需要先弄清楚需要哪些信息,然后对照GPSOEM接收板的技术资料,寻找那些包括所需信息的NMEA语句。下面将介绍兼容性最广泛的6条NMEA语句(1)$GPGGA语句GlobalPositioningSystemFixData(GGA),即GPS定位信息。该语句中反映GPS定位主要数据,包括经纬度、质量因子、HDOP、高程、参考站号等字段。其标准格式如下:$GPGGA,1,2,3,4,5,6,7,8,9,M,10,M,11,12*hhCRLF各字段的含义和取值范围见表2所示。表2$GPGGA语句各字段的含义和取值范围字段含义取值范围1UTC时间hhmmss.ss000000.00~235959.992纬度,格式:ddmm.mmmm000.00000~8959.99993南北半球N北纬;S南纬4经度格式dddmm.mmmm00000.0000~17959.99995东西半球E表示东经;W表示西经6GPS状态0=未定位,1=GPS单点定位固定解,2=差分定位,3=PPS解;4=RTK固定解;5=RTK浮点解;6=估计值;7=手工输入模式;8=模拟模式7应用解算位置的卫星数00~128HDOP,水平图形强度因子0.500~99.000(大于6不可用)9海拔高度-9999.9~99999.9l0地球椭球面相对大地水准面的高度(高程异常)-9999.9~99999.911差分时间从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空12参考站号0000~1023;不使用DGPS时为空例句:$GPGGA,074529.82,2429.6717,N,11804.6973,E,1,8,1.098,42.110,M,,M,,*76(2)$GPGSA语句GPSDOPandActiveSatellites(GSA)即当前卫星信息,其标准格式如下:$GPGSA,1,2,3,3,3,3,3,3,3,3,3,3,3,3,4,5,6*hhCRLF各字段的含义和取值范围见表3所示。表3$GPGSA语句各字段的含义和取值范围字段含义取值范围1模式M=手动,A=自动2定位类型1=没有定位,2=2D定位,3=3D定位3PRN码(伪随机噪声码),正在用于解算位置的卫星号01~324PDOP位置精度因子0.5~99.95HDOP水平精度因子0.5~99.96VDOP垂直精度因子0.5~99.9例句:$GPGSA,A,3,19,11,03,23,27,13,16,,,,,,3.43,1.67,2.99*0E(3)$GPGSV语句GPSSatellitesinView(GSV)可见卫星信息,反映GPS可见星的方位角、俯仰角、信噪比等。其标准格式如下:$GPGSV,1,2,3,4,5,6,7,…4,5,6,7*hhCRLF各字段的含义和取值范围见表4所示。表4$GPGSV语句各字段的含义和取值范围字段含义取值范围1总的GSV语句电文数0~12当前GSV语1-32句号3可视卫星总数00~124卫星号01~325卫星仰角00~90度6卫星方位角000~359度7信噪比00~99dB,没有跟踪到卫星时为空注:4,5,6,7信息将按照每颗卫星进行循环显示,每条GSV语句最多可以显示4颗卫星的信息。其他卫星信息将在下一序列的NMEA0183语句中输出。例句:$GPGSV,3,1,11,1,83,54,32,3,19,192,28,6,26,57,36,7,51,140,37*7D$GPGSV,3,2,11,14,40,136,34,16,64,266,36,20,21,293,,22,2,168,*4C$GPGSV,3,3,11,23,10,321,,25,53,7,40,30,2,46,*48(4)$GPRMC语句RecommendedMinimumSpecificGPS/TRANSITData(RMC),即推荐定位信息。其标准格式如下:$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12*hhCRLF各字段的含义和取值范围见表5所示。表5$GPRMC语句各字段的含义和取值范围字段含义取值范围1UTC时间,hhmmss.ss000000.00~235959.992定位状态A=有效定位,V=无效定位3纬度,格式:ddmm.mmmm000.00000~8959.99994南北半球N表示北纬;S表示南纬5经度格式dddmm.mmmm00000.0000~17959.99996东西半球E表示东经;W表示西经7地面速率000.0~999.9节8地面航向000.0~359.9,以真北为参考基准9UTC日期,格式:ddmmyy日月年10磁偏角000.0~180.0度11磁偏角E表示偏东;W表示偏西12模式指示(NMEA01833.00版本输出)A=自主定位,D=差分,E=估算,N=数据无效例句:$GPRMC,074529.82,A,2429.6717,N,11804.6973,E,12.623,32.122,010806,,W,A*08(5)$GPVTG语句TrackMadeGoodandGroundSpeed(VTG),即地面速度信息。其标准格式为:$GPVTG,1,T,2,M,3,N,4,K,5*hhCRLF各字段的含义和取值范围见表6所示。表6$GPVTG语句各字段的含义和取值范围字段含义取值范围1以真北为参考基准的地面航向000~359度2以磁北为参考基准的地面航向000~359度3地面速率000.0~999.9节4地面速率0000.0~1851.8公里/小时5模式指示(仅NMEA01833.00版本输出)A=自主定位,D=差分,E=估算,N=数据无效例句:$GPVTG,257.314,T,257.314,M,10.739,N,19.888,K,A*2F(6)$GPGLL语句GeographicPosition(GLL),即定位地理信息。其标准格式如下:$GPGLL,1,2,3,4,5,6,7*hhCRLF各字段的含义和取值范围见表7所示。表7$GPGLL语句各字段的含义和取值范围字段含义取值范围1纬度,格式:ddmm.mmmm000.00000~8959.99992南北半球N表示北半球;S表示南半球3经度,格式:dddmm.mmmm00000.0000~17959.99994东西半球E表示东经;W表示西经5UTC时间,格式:hhmmss000000.00~235959.996定位状态A=有效定位,V=无效定位7模式指示(NMEA01833.00版本输出)A=自主定位,D=差分,E=估算,N=数据无效5NMEA0183数据模拟该源代码为VC++源代码,是对一个模拟NMEA数据的类的定义。structCNmeaData{CNmeaData();voidResetData();//DataretrievedfromtheNMEAsentences.doublelat;//纬度,单位为度(正数为北纬,负数为南纬)doublelon;//经度,单位为度(正数为东经,负数为西经)doublealtitude;//海拔高度,米doublespeed;//速度,节doubletrack;//追踪卫星高度角,度doublemagVariation;//磁偏角,度doublehdop;//HDOP值intnumSats;//追踪卫星数intUTCYear;//UTC年intUTCMonth;//UTC月intUTCDay;//UTC日intUTCHour;//UTC时intUTCMinute;//UTC分intUTCSecond;//UTC秒CSatDatasatData[MAC_SATS];//卫星锁定数://0=无效,1=卫星锁定,2=DGPS状态GPS_FIX_QUALITYlastFixQuality;//有效卫星数boolisValidLat;//纬度boolisValidLon;//经度boolisValidAltitude;//高程boolisValidSpeed;//速度boolisValidDate;//日期boolisValidTime;//时间boolisValidTrack;//追踪卫星角boolisValidMagVariation;//磁偏角变化boolisValidHdop;//HDOP值boolisValidSatData;//卫星数//确定是否有有效的坐标数据发送到数据端口boolhasCoordEverBeenValid;};classCNmeaParser{public:CNmeaParser();SENTENCE_STATUSParseSentence(constchar*sentence);voidGetData(CNmeaData&data)const;voidResetData(){m_data.ResetData();}private:boolParseDegrees(double°rees,constchar*degString)const;boolParseDate(in
本文标题:NMEA0813标准数据格式的解释和模拟
链接地址:https://www.777doc.com/doc-2889728 .html