魏榮灝 ,張坤軍
(1.浙江省河海測(cè)繪院,浙江 杭州 310008;2.浙江省水利防災(zāi)減災(zāi)重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310020)
自從美國(guó)的GPS 系統(tǒng)(Global Positioning System,GPS)自20世紀(jì)80年代投入使用以來(lái),全球衛(wèi)星定位系統(tǒng)(Global Navigation Satellite System,GNSS)因其具有可為全球范圍內(nèi)數(shù)量不限的用戶提供全天候、連續(xù)實(shí)時(shí)的位置、速度和時(shí)間等優(yōu)勢(shì),已經(jīng)廣泛應(yīng)用于軍事、交通、水利、授時(shí)等多個(gè)領(lǐng)域,多個(gè)國(guó)家和組織也建設(shè)了自己的全球衛(wèi)星導(dǎo)航系統(tǒng)或者區(qū)域增強(qiáng)系統(tǒng),如我國(guó)的北斗系統(tǒng)、俄羅斯的Glonass、歐盟的Galileo、日本的QZSS 和印度的NavIC(IRNSS)等。
隨著GNSS的廣泛使用,國(guó)內(nèi)外發(fā)布了大量衛(wèi)星應(yīng)用標(biāo)準(zhǔn)用于GNSS信息的交互,與海洋測(cè)繪相關(guān)的GNSS數(shù)據(jù)格式標(biāo)準(zhǔn)主要有 NMEA 0183、RTCM SC104和RINEX[1]。其中,NMEA 0183格式主要用于GNSS 接收機(jī)與其他設(shè)備的交互,RTCM SC104主要用于差分信號(hào)的傳輸,RINEX 格式主要用于不同廠商GNSS 接收機(jī)的靜/動(dòng)態(tài)數(shù)據(jù)處理工作,而海洋測(cè)繪中主要使用 NMEA 0183格式數(shù)據(jù)將GNSS 接收機(jī)的導(dǎo)航定位和時(shí)間等信息傳輸給計(jì)算機(jī)和測(cè)深儀等多種外部設(shè)備。本文將在簡(jiǎn)單介紹NMEA機(jī)構(gòu)及協(xié)議格式發(fā)展的基礎(chǔ)上,解析海洋測(cè)繪常用的若干種格式。
NMEA 0183協(xié)議由NMEA(National Marine Electronics Association 國(guó)家海洋電子協(xié)會(huì)(美國(guó)))及IMEA(International Marine Electronics Association國(guó)際海洋電子協(xié)會(huì))共同擁有。這2個(gè)協(xié)會(huì)主要致力于制訂船用電子設(shè)備之間的數(shù)據(jù)傳輸標(biāo)準(zhǔn)。NMEA 機(jī)構(gòu)于1957年由一批電子設(shè)備銷(xiāo)售廠商在紐約成立,最初目的是為了加強(qiáng)電子設(shè)備廠商之間的聯(lián)系,隨著行業(yè)的發(fā)展逐漸吸引設(shè)備制造廠商的加入,并與美國(guó)聯(lián)邦通信委員會(huì)(FFC,F(xiàn)ederal Communications Commission)、美國(guó)海岸警衛(wèi)隊(duì)(United States Coast Guard)及國(guó)際海運(yùn)事業(yè)無(wú)線電技術(shù)委員會(huì)(RTCM,The Radio Technical Commission for Maritime Services)等組織和機(jī)構(gòu)建立緊密的聯(lián)系[2]。NMEA 當(dāng)前制訂的協(xié)議主要有NMEA 2000、NMEA 0183和NMEA 0400等。
NMEA 0183協(xié)議主要是為替換原有主要為L(zhǎng)oran C 及相關(guān)自動(dòng)導(dǎo)航系統(tǒng)使用的NMEA 0180及NMEA 0182協(xié)議而開(kāi)發(fā)的,其能為海洋電子設(shè)備、導(dǎo)航設(shè)備和通信設(shè)備間的數(shù)據(jù)傳輸提供接口,滿足將一個(gè)設(shè)備的串口數(shù)據(jù)播發(fā)給一個(gè)或多個(gè)設(shè)備接收。
NMEA 0183協(xié)議主要定義了在4 800波特率的串行數(shù)據(jù)總線上的電信號(hào)需求、傳輸協(xié)議及計(jì)時(shí)和數(shù)據(jù)格式。從1992年發(fā)布2.0版本以來(lái),已經(jīng)根據(jù)行業(yè)的發(fā)展進(jìn)行多次更新,所有更新的版本都保持對(duì)2.0版本的兼容,版本變化見(jiàn)表1。當(dāng)前最新的版本是發(fā)布于2018年11月的4.11版,其與4.10版的主要更新是數(shù)據(jù)格式完善了對(duì)現(xiàn)有衛(wèi)星定位系統(tǒng)的支持,明確包含對(duì)美國(guó)的GPS、俄羅斯的Glonass、歐盟的Galileo、我國(guó)的北斗、日本的QZSS和印度的 NavIC(IRNSS)的支持。
表1 NMEA版本變化表
在海洋測(cè)繪中,NMEA 0183協(xié)議主要應(yīng)用于各種設(shè)備間的信息傳輸與時(shí)間同步,一般使用GNSS或組合導(dǎo)航設(shè)備獲取定位和時(shí)間信息后,使用該協(xié)議將相關(guān)數(shù)據(jù)傳輸至數(shù)據(jù)采集系統(tǒng),如單頻測(cè)深儀、多波束測(cè)深系統(tǒng)、淺地層剖面儀和側(cè)掃聲吶設(shè)備等用于定位和授時(shí),這些設(shè)備將獲取定位、時(shí)間的聲納數(shù)據(jù)發(fā)送給數(shù)據(jù)采集計(jì)算機(jī),由計(jì)算機(jī)集成后進(jìn)行記錄并保存,保存的原始數(shù)據(jù)經(jīng)相關(guān)后處理便可得到各種成果。
NMEA 0183協(xié)議類(lèi)型有3種[3],分別是信息源、查詢和屬性,本文僅討論信息源。協(xié)議傳輸?shù)臄?shù)據(jù)語(yǔ)句基于ASCII碼,常用的格式為“$ttsss,c—c*hh<CR><LF>”。該語(yǔ)句最大長(zhǎng)度為82個(gè)字節(jié),除去行首的“$”和行末的“<CR><LF>”,單次最多傳輸79個(gè)字符。語(yǔ)句各個(gè)字段的意義如下:“$”代表語(yǔ)句的開(kāi)始;“tt”代表信息源的類(lèi)型,衛(wèi)星導(dǎo)航系統(tǒng)中常用的信息源類(lèi)型見(jiàn)表2;“sss”代表信息識(shí)別碼,如“GGA”、“VTG”和“ZDA”等;“c -- c”代表數(shù)據(jù)內(nèi)容,可以包含0到多個(gè)字段,采用逗號(hào)作為分隔符;“*”代表檢驗(yàn)和識(shí)別符;“hh”為校驗(yàn)和,其計(jì)算方法為“$”和“*”之間所有字符的按位異或值(不包括此2字符);“<CR><LF>”代表語(yǔ)句結(jié)束。
表2 衛(wèi)星定位系統(tǒng)信息源類(lèi)型表
GGA格式主要提供定位的時(shí)間及位置,其字符串為:
$ -- GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh<CR><LF>
其中,hhmmss.ss表示定位的UTC時(shí)間,格式為時(shí)分秒.秒;1111.11代表緯度,為ddmm.mmmm的度分格式;a可為N或S,分別代表北緯及南緯;yyyyy.yy代表經(jīng)度,為dddmm.mmmm的度分格式;a可為E或W,分別代表東經(jīng)及西經(jīng);x代表定位模式,0代表不可用,1代表標(biāo)準(zhǔn)定位模式,2代表差分模式,3代表精密定位模式,4代表RTK固定解,5代表RTK浮動(dòng)解,6代表估算模式(外推),7代表手動(dòng)輸入,8代表模擬模式;xx代表定位使用的衛(wèi)星數(shù);x.x代表平面精度衰減因子;x.x及后面的M代表平均海平面(大地水準(zhǔn)面)高度(m);隨后的x.x及M代表大地水準(zhǔn)面差距(m);之后的x.x代表差分?jǐn)?shù)據(jù)齡期;xxxx代表差分參考臺(tái)站編號(hào),取值為0 000 ~ 1 023。需要注意的是GGA格式中不提供日期信息,一般結(jié)合ZDA數(shù)據(jù)格式使用,以獲取數(shù)據(jù)完整的日期和時(shí)間。
VTG格式提供的信息主要為對(duì)地方向及速度,其字符串為:
$ -- VTG,x.x,T,x.x,M,x.x,N,x.x,K,a*hh<CR><LF>
其中,x.x,T表示相對(duì)于正北的方向;x.x,M表示相對(duì)于磁北的方向;x.x,N表示相對(duì)于地面的速度,單位為節(jié);x.x,K表示相對(duì)于地面的速度(km/h);a表示工作模式,其中A表示自主導(dǎo)航,D表示差分模式(地面站差分或星站差分),E表示估算模式(外推),M代表手動(dòng)輸入,N表示數(shù)據(jù)無(wú)效,P代表精密定位模式,S代表模擬模式。
ZDA格式提供了基于UTC的日期和時(shí)間,并可設(shè)置當(dāng)?shù)氐臅r(shí)間偏移量以獲得當(dāng)?shù)貢r(shí)間,其字符串為:
$ -- ZDA,hhmmss.ss,xx,xx,xxxx,xx,xx*hh<CR><LF>
其中,hhmmss.ss代表時(shí)間,格式為時(shí)分秒.秒;第一個(gè)xx表示日期,取值從01 ~ 31;第二個(gè)XX表示月份,取值從01 ~ 12;xxxx表示年份。以上時(shí)間系統(tǒng)都采用UTC時(shí)。之后的xx表示當(dāng)?shù)貢r(shí)區(qū)的小時(shí)改正值,取值為0 ~ ±13 h,最后一個(gè)xx表示當(dāng)?shù)貢r(shí)區(qū)的分鐘改正值,取值為0 ~ ±59 min。
本文主要介紹NMEA機(jī)構(gòu)及其制訂的NMEA 0183協(xié)議,在介紹該協(xié)議版本變化的基礎(chǔ)上解析協(xié)議的通用格式和常用的幾種協(xié)議,可為海洋測(cè)繪工作中衛(wèi)星定位設(shè)備與測(cè)深儀、計(jì)算機(jī)等多種外部設(shè)備的信息交互提供參考,有助于提高衛(wèi)星定位系統(tǒng)在海洋測(cè)繪工作中的應(yīng)用水平。