('NMEA0183协议本文档是从大量非官方资源搜集汇编而成。它不是NMEA0183标准的完整版本或无错版本。尤其是它没有涵盖新的语句和版本3.x中定义的高速接口。KlausBetke,2000年5月。修正于2001年8月。1.什么是NMEA0183标准?美国国家海洋电子协会(NMEA)是一个非赢利的协会,会员有系统集成商、分销商、经销商、教育机构和其它对海洋电子行业感兴趣的组织。NMEA0183标准为海洋仪器之间的交互定义了一个电气接口和数据协议。NMEA0183是一个自愿接受的行业标准,第一版本于1983年3月发布。此后不断更新,最新的3.0版本于2001年7月发布,可以向NMEA办公室索取(注意:非会员价格是250美元)。POBox3435NewBernNC28564-3435USAwww.nmea.orgNMEA也成立了一个工作组,专司开发新的航运电子设备间数据交互的标准。新的NMEA2000标准,是一个双向的、多发送者、多接受者的串行数据网络。它是多主机和自配置的,且没有总控制者。NMEA于2000年1月组织了11家系统集成商进行BETA测试,NMEA2000有希望在2001年问世。2.电气接口NMEA0183设备被设计成了发送设备或者接受设备(特殊情况:有些设备既是发送设备又是接受设备),使用一个异步串行接口。接口参数如下:波特率:4800数据位:8(第7位为0)停止位:1(或者更多)奇偶校验:无握手:无NMEA0183允许在一个电路里只有一个发送设备但是有多个接受设备。推荐使用屏蔽双绞线,只要求发送设备屏蔽接地,但是没有对接头没有指定。注:在版本3.0中提到的新的0183-HS(HS为高速)标准中,使用3线接口,波特率为38400,本文不讨论此类接口。推荐发送设备的输出电平符合EIARS-422,一种使用2条信号线“A”和“B”的差分系统。差分驱动信号没有参考地且更抗噪声干扰。但也允许单线的TTL电平。A线上电压信号对应TTL的单线电平,但B线上的电压信号被翻转。(单极性的RS-422模式:当A的输出电平为+5V,B的输出电平为0V,反之亦然。双极性的模式里±5V都被使用)。在这两种情况下,都推荐接受电路使用光耦来给回路提供适当的保护。输入电路要和接1收地隔离。实际应用中,单线或者RS-422的A线可能直接和计算机的RS-232输入接口相连。事实上,更多的新产品比如手持GPS接收机已经没有RS-422差分输出接口了,仅仅只有单线的TTL电平或者5V的CMOS兼容信号水平。3.通用语法格式所有数据按如下语法格式传送:只允许使用可以显示的ASCII字符和CR(回车)、LF(换行)。每句以“$”开始,以“”结束。有三种基本语句:交互语句、专用语句和查询语句。查询语句。基本格式如下:$ttsss,d1,d2,....“$”后的2个字母表示交互标识符。接下来的3的字母“sss”表示语句标识符,再接下来就是由“,”分隔的数据区,还有就是可选的校验和,最后以回车/换行结束。每种语句类型的数据区都是专门定义的。下面是一个交互语句的例子:$HCHDM,238,M“HC”表示发送设备是一个磁罗盘,“HDM”表示接下来是磁性导航信息。“238”表示航向值,“M”表示使用磁场导航。加上“$”和“CR/LF”,每句最到有80个字符。如果数据区不可用会被省略掉,但分隔的逗号不能够省略,且逗号间不能够有空格。校验区由“”和2个16进制数字组成,表示用“$”和“”之间的每一个字母单独和它们进行“OR”运算,但不包括“$”和“”。专用语句。NMEA允许系统集成商定义专用语法格式。这些语句以“$P”打头,接着是3个字母的系统集成商的ID,再接着就是它们定义的数据区。下面将会介绍通用的标准语句格式。一些专用语句,主要是Garmin公司,也会在第6节提到。查询语句。接受设备使用查询语句向发送设备发出查询申请。基本格式如下:$ttllQ,sss,[CR][LF]地址区的头2个字符表示接收者标识符,接下来的2个字符表示发送者标识符。第5个字符为“Q”表示这是一条查询信息。下一区的“sss”为3个字母的助记符。下面是一个查询语句的例子:$CCGPQ,GGA设备“CC”(计算机)向设备“GP”(GPS模块)发出“GGA”这一查询请求,GPS模块收到后会发送此语句每秒一次直到收到一个不同的查询请求。4.交互标识符号AG自动导航——通用AP自动导航——磁性2CD通讯——数字选择性呼叫(DSC)CR通讯——接收机/信号接收机CS通讯——卫星CT通讯——无线电(MF/HF)CV通讯——无线电(VHF)CX通讯——扫描接收机DF定位EC电子海图显示与信息系统(ECDIS)EP应急位置指示标志(EPIRB)GPGPSHC导航——指南针HE导航——寻北陀螺HN导航——非寻北陀螺II综合设备IN综合导航LC罗兰CP专有代码RA雷达和/或自动雷达标绘仪SD响度,深度SN电子定位系统,其它/一般SS响度,扫描TI转弯速率指标VD速度传感器,多普勒,其它/一般DM速度传感器,速度日志,水,磁性VW速度传感器,速度日志,水,机械WI气象仪器YX传感器ZA时钟——原子钟ZC时钟——计时器ZQ时钟——石英钟ZV时钟——无线电更新,WWV或者WWVH5.语句标识和语句格式AAM位点到达警报123456$--AAM,A,A,x.x,N,c--chh1)状态,布尔量,A=到达位点半径内2)状态,布尔量,A=垂直通过位点3)抵达圆半径4)半径单位,海里5)位点ID6)校验和3ALMGPS星历数据12345678910111213141516$--ALM,x.x,x.x,xx,x.x,hh,hhhh,hh,hhhh,hhhh,hhhhhh,hhhhhh,hhhhhh,hhhhhh,hhh,hhh,hh01)信息总数02)信息序号03)卫星的PRN号(01到32)04)GPS周数:GPS的日期和时间是以从1980年1月6日开始的周数和这周的秒数组成。05)SV健康度,每页星历17-24位06)偏心度07)星历参考时间08)倾角09)右阿森松率10)半长轴根11)近地点争议12)阿森松节点精度13)异常表示14)F0时钟参数15)F1时钟参数16)校验和APA自动导航语句“A”1234567891011$--APA,A,A,x.xx,L,N,A,A,xxx,M,c---chh01)状态V=罗兰-C闪烁或者信噪比(SNR)预警A=一般警告标志或者其它导航系统不能够可靠地修正(定位数据)时02)状态V=罗兰-C警告锁定标志A=好的或者未使用03)交叉轨迹的误差大小04)航向,L/R05)交叉轨迹单位(海里或者公里)06)状态A=到达位点半径内07)状态A=垂直通过位点08)从起点到终点09)M=磁性4T=真10)目的点ID11)校验和APB自动导航语句“B”131512345678910111214$--APB,A,A,x.x,a,N,A,A,x.x,a,c--c,x.x,a,x.x,ahh01)状态V=罗兰-C闪烁或者信噪比(SNR)预警A=一般警告标志或者其它导航系统不能够可靠地修正(定位数据)时02)状态V=罗兰-C警告锁定标志A=好的或者未使用03)交叉轨迹的误差大小04)航向,L/R05)交叉轨迹单位,N=海里06)状态A=到达位点半径内07)状态A=垂直通过位点08)从起点到终点09)M=磁性T=真10)目的点ID11)从当前位置到终点12)M=磁性T=真13)指向终点14)M=磁性T=真15)校验和ASD自动导航系统数据格式未知BEC指向位点/位点距离——死帐121234567891011135$--BEC,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x.x,T,x.x,M,x.x,N,c--chh01)时间(UTC)02)位点纬度03)N/S04)位点经度05)E/W06)动向,真07)T=真08)动向,磁性09)M=磁性10)海里11)N=海里12)位点ID13)检验和BOD方向——位点到位点1234567$--BOD,x.x,T,x.x,M,c--c,c--chh1)方向角,真2)T=真3)方向角,磁性4)M=磁性5)到位点6)从位点7)校验和BWC指向位点和位点距离——纬度,N/S,经度,E/W,UTC,状态11123456789101213$--BWC,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x.x,T,x.x,M,x.x,N,c--chh01)时间(UTC)02)位点纬度03)N/S04)位点经度05)E/W06)动向,真07)T=真08)动向,磁性09)M=磁性610)海里11)N=海里12)位点ID13)检验和BWR指向位点和位点距离——恒向线纬度,N/S,经度,E/W,UTC,状态01)时间(UTC)02)位点纬度03)N/S04)位点经度05)E/W06)动向,真07)T=真08)动向,磁性09)M=磁性10)海里11)N=海里12)位点ID13)检验和BWW方向——位点到位点1234567$--BWW,x.x,T,x.x,M,c--c,c--chh1)方向角,真2)T=真3)方向角,磁性4)M=磁性5)到位点6)从位点7)校验和DBK船的龙骨下深度1234567$--DBK,x.x,f,x.x,M,x.x,Fhh1)深度,英尺2)f=英尺3)深度,米4)M=米75)深度,Fathoms(600feet??)6)F=Fathoms7)校验和DBS表面下深度1234567$--DBS,x.x,f,x.x,M,x.x,Fhh1)深度,英尺2)f=英尺3)深度,米4)M=米5)深度,Fathoms(600feet??)6)F=Fathoms7)校验和DBT传感器下深度1234567$--DBT,x.x,f,x.x,M,x.x,Fhh1)深度,英尺2)f=英尺3)深度,米4)M=米5)深度,Fathoms(600feet??)6)F=Fathoms7)校验和DCNDecca位置已作废DPT航向——偏差和变异123$--DPT,x.x,x.xhh1)深度,米2)传感器补偿8正表示从传感器到水线的距离负表示从传感器到船的龙骨的距离DSC数字选择性呼叫信息格式未知DSE扩展DSC格式未知DSIDSC异频雷达收发机启动格式未知DSRDSC异频雷达收发机响应格式未知DTMDTM的参考基准格式未知FSI频率设置信息12345$--FSI,xxxxxx,xxxxxx,c,xhh1)发射频率2)接受频率3)交互模式(NMEA句法2)4)功率等级5)校验和GBSGPS卫星故障检测格式未知GGAGPS的修正数据。GPS接受机的时间、位置和相关数据的修正9111234567891012131415$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxxhh01)时间(UTC)02)纬度03)N/S04)经度05)E/W06)GPS品质指标0-不修正。1-GPS修正。2-GPS差份修正。07)可视卫星数目,00-1208)水平稀释精度,单位为米09)天线高度在平均海平面上/下(大地水准面)10)天线高度,单位为米11)大地偏差,WGS-84地球椭球模型与平均海平面(大地)的差,“-”表示大地平均海平面低于椭球模型12)大地偏差,单位为米13)差分GPS数据的年龄,从最新的SC104类型1或9更新到现在经过了多少秒,此区域为空表示DGPS不可用14)差分参考站的ID,0000-102315)检验和GLC地理位置,罗兰-C1214123456789101113$--GLC,xxxx,x.x,a,x.x,a,x.x,a.x,x,a,x.x,a,x.x,ahh01)GRI微秒/1002)总的TOA微秒03)总的TOA信号状态04)时间差分1,单位为微秒05)时间差分1信号状态06)时间差分2,单位为微秒07)时间差分2信号状态08)时间差分3,单位为微秒09)时间差分3信号状态10)时间差分4,单位为微秒11)时间差分4信号状态12)时间差分5,单位为微秒13)时间差分5信号状态1014)校验和GLL地理位置-纬度/经度1234567$--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,Ahh1)纬度2)N/S3)经度4)E/W5)时间(UTC)6)状态:A-数据有效,V-数据无效7)校验和GRSGPS残留范围格式未知GSTGPS伪噪声统计格式未知GSAGPS的DOP和活动卫星数1231415161718$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.xhh01)选择模式02)模式03)用来修正的第1颗卫星的ID04)用来修正的第2颗卫星的ID……14)用来修正的第12颗卫星的ID15)PDOP,单位为米16)HDOP,单位为米17)VDOP,单位为米18)校验和GSV可视卫星111234567n$--GSV,x,x,x,x,x,x,x,...hh1)总消息数2)消息序号3)可视卫星4)卫星编号5)海拔6)方位角度为真7)SNR,单位为dB更多卫星的消息类似从4)到7)n)校验和GXA经过位置-经过位点的纬度/经度,地点与时间的修正已作废HDG导航-偏差与变化123456$--HDG,x.x,x.x,a,x.x,ahh1)磁传感器导航,单位度2)磁偏角,单位度3)磁偏角方向,E/W4)磁变化,单位度5)磁场变化方向,E/W6)校验和HDM导航-磁性123$--HDM,x.x,Mhh1)磁性导航,单位为度2)M=磁性3)校验和HDT导航-真12312$--HDT,x.x,Thh1)导航单位为度,真2)T=真3)校验和HSC导航掌舵命令12345$--HSC,x.x,T,x.x,M,hh1)导航单位为度,真2)T=真3)导航单位为度,磁性4)M=磁性5)校验和LCD罗兰-C信号数据1234567891011121314$--LCD,xxxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxxhh01)GRI微秒/1002)总的相对SNR03)总的相对ECD04)时间差分1,单位为微秒05)时间差分1信号状态06)时间差分2,单位为微秒07)时间差分2信号状态08)时间差分3,单位为微秒09)时间差分3信号状态10)时间差分4,单位为微秒11)时间差分4信号状态12)时间差分5,单位为微秒13)时间差分5信号状态14)校验和MSKMSK接收机接口(差分信号接受机)123456$GPMSK,xxx.x,xx,xxx,xx,Nhh131)频率单位为kHz(从283.5到325.0)2)频率选项M1=手动A1=自动(区域1为空)3)MSK码率(100或200)4)码率选项M2=手动A2=自动(区域3为空)5)性能状态信息的输出时期,0到100秒($CRMSS)6)校验和MSSMSK接受机信号状态格式未知MWD风速和风的位置格式未知MTW水温123$--MTW,x.x,Chh1)单位为度2)计量单位,摄氏3)校验和MWV风速和风向12345$--MWV,x.x,a,x.x,ahh1)风向,0到360度2)参考标准,R=相对,T=真3)风速4)风速单位,K/M/N5)状态,A=数据有效6)校验和14OLNOmega航道号码已作废OSD本船数据12345678910$--OSD,x.x,A,x.x,a,x.x,a,x.x,x.x,ahh1)航向单位为度,真2)状态,A=数据有效3)船的航道单位为度,真4)航道参考5)船速6)速度参考7)船行方向单位为度,真8)船舶漂移(速度)9)速度单位10)校验和ROO航线上的位点1n$--ROO,c---c,c---c,....hh1)位点ID……n)校验和RMA推荐的最少导航信息121234567891011$--RMA,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,x.x,ahh1)瞬间警告2)纬度3)N/S4)经度5)E/W6)时间差分A,μS7)时间差分B,μS158)航速单位为节9)跟踪的轨迹良好,真实度10)磁变化单位为度11)E/W12)校验和RMB推荐的最少导航信息1412345678910111213$--RMB,A,x.x,a,c--c,c--c,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,Ahh1)状态,V=导航接受机的警告2)交叉轨迹错误-海里3)航向,左/右4)终点的位点ID5)起点的位点ID6)目的地的位点纬度7)N/S8)目的地的位点经度9)E/W10)与目的地的距离,单位为海里11)指向目的地的真实度12)接近目的地的速度,单位为节13)抵达状态,A=进入位点半径内14)校验和RMC推荐的最少导航信息121234567891011$--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,ahh01)时间(UTC)02)状态,V=导航接受机的警告03)纬度04)N/S05)经度06)E/W07)速度单位为节08)跟踪的轨迹良好,真实度09)日期格式,日月年10)磁偏差单位为度11)E/W1612)检验和ROT转向速度123$--ROT,x.x,Ahh1)转向速度,度/分,“-”表示船头指向港口2)状态,A表示有效3)校验和RPM转速123456$--RPM,a,x,x.x,x.x,Ahh1)源。S=轴,E=发电机2)轴或发电机的编号3)转速,转/分4)螺旋桨极限,“%”为最大值,“-”表示反转5)状态,A表示数据有效6)校验和RSA舵传感器角度12345$--RSA,x.x,A,x.x,Ahh1)右舷(或者单边)的舵传感器,“-”指转向港口2)状态,A表示数据有效3)港口的舵传感器4)状态,A表示数据有效5)校验和RSD雷达系统数据1412345678910111213$--RSD,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,a,ahh179)本船的光标10)光标从0度开始顺时针扫描11)射程12)射程单位14)校验和RTE航程12345xn$--RTE,x.x,x.x,a,c--c,c--c,.....c--chh1)待发送的总信息数2)信息号码3)信息模式c=完全的航程,所有的位点w=工作的航程,只有离开的位点和将要抵达的位点。4)位点IDx)更多Waypointsn)校验和SFI扫描频率信息1234n$--SFI,x.x,x.x,xxxxxx,c..........xxxxxx,chh1)总消息数2)消息序号3)频率14)模式1n)校验和STN多种数据的ID12$--STN,x.x,hh1)发送者的ID号2)校验和TLL目标的纬度和经度18格式未知TRF发生的修正数据已作废TTM被跟踪的目标信息1113123456789101214$--TTM,xx,x.x,x.x,a,x.x,x.x,a,x.x,x.x,a,c--c,a,ahh1)目标编号2)目标距离3)与本船的方向4)方向单位5)目标速度6)目标航行7)航向单位8)离目标被追上的最近的点的距离9)到被追上的最近的点的时间,“-”表示增加10)“-”表示增加11)目标名12)目标状态13)参考目标14)校验和VBW2个速度:对地速度/水速1234567$--VBW,x.x,x.x,A,x.x,x.x,Ahh1)纵向水速,“-”表示向船尾2)横向水速,“-”表示港口3)状态,A=数据有效4)纵向对地速度,“-”表示向船尾5)横向对地速度,“-”表示港口6)状态,A=数据有效7)校验和VDR设置和漂移191234567$--VDR,x.x,T,x.x,M,x.x,Nhh1)真实度2)T=真3)磁性度4)M=磁性5)节(当前速度)6)N=节7)校验和VHW水速和水流的方向123456789$--VHW,x.x,T,x.x,M,x.x,N,x.x,Khh1)真实度2)T=真3)磁性度4)M=磁性5)节(船速相对于水速)6)N=节7)千米(船速相对于水速)8)K=千米9)校验和VLW水路距离12345$--VLW,x.x,N,x.x,Nhh1)总计距离2)N=海里3)已走过的路程4)N=海里5)校验和VPW速度-测量平行风12345$--VPW,x.x,N,x.x,Mhh201)速度,“-”表示顺风2)N=节3)速度,“-”表示顺风4)M=米/秒5)校验和VTG跟踪进展良好和对地速度123456789$--VTG,x.x,T,x.x,M,x.x,N,x.x,Khh1)跟踪情况2)T=真3)跟踪情况4)M=磁性5)速度,单位为节6)N=节7)速度,单位为千米/小时8)K=KM/H9)校验和VWR相对风速和风向123456789$--VWR,x.x,a,x.x,N,x.x,M,x.x,Khh1)风极2)风在船首的左/右3)速度4)N=节5)速度6)M=米/秒7)速度8)K=KM/H9)校验和WCV位点关闭速度1234$--WCV,x.x,N,c--chh211)速度2)N=节3)位点ID4)校验和WDC位点距离-大圆格式未知WDR位点距离-恒线格式未知WNC距离-点对点1234567$--WNC,x.x,N,x.x,K,c--c,c--chh1)距离,海里2)N=海里3)距离,千米4)K=千米5)目标点6)出发点7)校验和WPL位点的位置123456$--WPL,llll.ll,a,yyyyy.yy,a,c--chh1)纬度2)N/S3)经度4)E/W5)位点名6)校验和XDR交叉轨迹错误-死帐1234n22$--XDR,a,x.x,a,c--c,.....hh1)传感器类型2)测量数据3)测量单位4)传感器名x)更多相同的n)校验和XTE交叉轨迹错误-测量123456$--XTE,A,A,x.x,a,N,hh1)状态V=罗兰-C闪烁或者SNR警告A=一般警告标志或者其它导航系统的修正不可用2)状态V=罗兰-C周期缩定警告标志A=好或者不可用3)交叉轨迹错误幅度4)航向,L/R5)交叉轨迹单位,N=海里6)校验和XTR交叉轨迹错误-死帐1234$--XTR,x.x,a,Nhh1)交叉轨迹错误幅度2)航向,L/R3)单位,N=海里4)校验和ZDA时间和日期-UTC,日,月,年与当地时区1234567$--ZDA,hhmmss.ss,xx,xx,xxxx,xx,xxhh1)本地区的时、分、秒232)本地区的描述,从00到+/-13小时3)年4)月,从01到125)天,从01到316)时间(UTC)7)校验和ZDL变动的点的时间与距离格式未知ZFOUTC与起点时间1234$--ZFO,hhmmss.ss,hhmmss.ss,c--chh1)时间(UTC)2)过去的时间3)起点ID4)校验和ZTGUTC与终点时间1234$--ZTG,hhmmss.ss,hhmmss.ss,c--chh1)时间(UTC)2)剩下的时间3)终点ID4)校验和24',)