陳永昌 盛傳貞 張京奎
(中國電子科技集團公司第五十四研究所 河北省石家莊市 050002)
全球導航衛(wèi)星系統(tǒng)(GNSS)是能為地球表面或近地空間的用戶提供全天候定位、導航和授時服務的空基無線電導航定位系統(tǒng)。近年來,隨著GNSS應用的日益豐富,大眾用戶對于實時高精度的應用需求日漸增多。因此,GNSS實時服務迎來新的發(fā)展契機。
國際GNSS服務(International GNSS Service,IGS)組織于2002年成立實時工作組(Real Time Working Group,RTWG),致力于相關應用的基礎設施建設與標準規(guī)范制定,并于2007年號召多個國際分析中心參與實時飛行員項目(Real Time Polit Project,RTPP)。現(xiàn)今,GNSS提供實時服務主要依靠實時增強信息,而高效的信息傳遞是其中的重要環(huán)節(jié)。為此,國際海運事業(yè)無線電技術委員會(Radio Technical Commission for Maritime Services,RTCM)SC104協(xié)議應運而生[1-3],為實時信息的高效傳遞提供了統(tǒng)一標準。
RTCM SC104標準格式是由RTCM于1983年11月提出的GNSS差分信號格式[4,5]。SC104標準定義了GNSS實時導航定位等相關應用中,二進制數(shù)據(jù)流所包含的內(nèi)容、結構和組織方式,包括測站信息、廣播星歷、觀測數(shù)據(jù)和各類實時產(chǎn)品等[6,7]。該標準為實時GNSS應用提供了通信接口,目前已廣泛應用于實時GNSS數(shù)據(jù)的編碼和解碼中。目前,最新使用的RTCM SC104協(xié)議包括10403.3——差分GNSS服務協(xié)議、10401.2——差分Navstar GPS參考站和完好性監(jiān)測協(xié)議、10410.1——RTCM網(wǎng)絡傳輸協(xié)議(Ntrip)。
本文主要對網(wǎng)絡傳輸實時信息的Ntrip協(xié)議進行介紹,然后針對Ntrip協(xié)議在應用過程中實現(xiàn)Caster服務的幾款軟件進行實例演示,為廣大GNSS實時用戶提供實用的參考信息。
自1993年以來,RINEX格式是用于長期存儲和傳播GNSS數(shù)據(jù)的標準文件格式,但主要針對后處理模式。隨著GNSS的不斷發(fā)展和用戶對GNSS即時信息的迫切需求,德國聯(lián)邦制圖和大地測量局(Bundesamt für Kartographieund Geod?sie,BKG)與多特蒙德工業(yè)大學聯(lián)合開發(fā)了Ntrip協(xié)議,供用戶可與數(shù)據(jù)源進行通信[8,9]。
Ntrip是一種用于Internet流式傳輸GNSS數(shù)據(jù)的應用級協(xié)議,是一種基于HTTP/1.1的通用無狀態(tài)協(xié)議。作為一種RTCM標準,Ntrip主要用于通過Internet向靜態(tài)或移動用戶傳播差分改正數(shù)據(jù)(如采用RTCM-104格式)或其他類型的GNSS流數(shù)據(jù)。該協(xié)議允許同時將PC、筆記本電腦、PDA或接收機連接到廣播機,并支持通過移動IP網(wǎng)絡(如GSM、GPRS、EDGE或UMTS)進行無線Internet訪問。
Ntrip協(xié)議的實現(xiàn)主要有NtripServers、NtripCasters和Ntrip Clients三部分系統(tǒng)軟件組成,其結構如圖1所示。

圖1:Ntrip協(xié)議運作示意圖
NTRIP協(xié)議運作中的各項組成及功能如下:
(1)NtripSource指系統(tǒng)的數(shù)據(jù)源,負責提供連續(xù)的GNSS流數(shù)據(jù),如參考站觀測數(shù)據(jù)、RTCM-104差分改正信息等。
(2)NtripServer負責將NtripSource數(shù)據(jù)通過HTTP協(xié)議以數(shù)據(jù)流的形式傳輸?shù)絅tripCaster。
(3)NtripCaster是一個HTTP服務器,接受來自NtripServer或NtripClient單個端口的請求消息,并根據(jù)這些消息決定是否接收或發(fā)送數(shù)據(jù)流。
(4)NtripClient指用戶端,其向NtripCaster發(fā)送正確的請求消息,在被接受后開始接收來自NtripCaster的數(shù)據(jù)。
(5)Real-time Analysis Center即實時分析中心,其利用指定賬戶獲取實時流數(shù)據(jù),生成實時產(chǎn)品后,再將其作為數(shù)據(jù)源經(jīng)由NtripServer傳送至NtripCaster的數(shù)據(jù)中心,供其他NtripClient使用
NtripCaster作為實現(xiàn)Ntrip協(xié)議的重要一環(huán),實質(zhì)為HTTP服務器。NtripCaster軟件可從參考站接收數(shù)據(jù)和處理客戶端的請求信息,通過設置相應的測站代碼、賬號、密碼等,對NtripServer和NtripClient的數(shù)據(jù)流進行并行管理。
近年來,多家機構根據(jù)Ntrip協(xié)議規(guī)則已開發(fā)出相應的Caster軟 件。如:BKG開 發(fā) 的BKG Professional NtripCaster,SNIP公司開發(fā)的the simple NTRIP Caster,Alberding GmbH公司開發(fā)的Alberding Ntrip Caster,德國土地調(diào)查衛(wèi)星定位服務的GnssSurfer等。本節(jié)將對前兩種較常用的caster軟件進行功能介紹。
BKG Professional NtripCaster是在EUREF-IP框架內(nèi)開發(fā)的,支持Ntrip互聯(lián)網(wǎng)協(xié)議,能夠通過互聯(lián)網(wǎng)傳播GNSS實時數(shù)據(jù)流。該軟件遵循GNU通用公共許可證(GPL),并用C語言編寫,運行于Linux系統(tǒng)。歷經(jīng)多個版本的更新,該軟件能夠同時支持100多個NtripServers和監(jiān)聽2000多個NtripClients,并已在多種發(fā)行版上成功測試,如Suse、Debian、Gentoo和Red Hat等。下面就其安裝及基本運行功能進行介紹。
3.1.1 安裝
BKG的caster軟件只能安裝在linux系統(tǒng)中。開始安裝前,需檢查是否具備編譯條件,如gcc和GNU的make軟件。確定安裝條件滿足之后,在解壓后的安裝包文件夾中找到configure可執(zhí)行文件,開始安裝。通常有兩種安裝模式:
第一種是標準安裝模式,執(zhí)行命令"./configure --enable-fsstd",設置將caster軟件安裝在如下目錄中:
(1)Caster-可執(zhí)行文件:/usr/sbin
(2)啟動腳本:/usr/bin
(3)配置信息:/etc/ntripcaster
(4)運行時間測試文件:/var/run/ntripcaster
(5)日志文件:/var/log/ntripcaster
(6)模板:/usr/share/ntripcaster/templates
第二種是指定目錄安裝模式,執(zhí)行命令"./configure",設置將caster軟件安裝在"/usr/local/ntripcaster"默認目錄中。如果安裝在指定目錄中,可執(zhí)行"./configure --prefix=
(1)Caster-可執(zhí)行文件:$path/sbin
(2)啟動腳本:$path/bin
(3)配置信息:$path/conf
(4)運行時間測試文件:$path/var
(5)日志文件:$path/logs
(6)模板:$path/templates
完成路徑設置后,先后運行'make'(或者gmake)、'make install'(或者gmake install),完成caster軟件的安裝。此時,可輸入"ntripcaster start"、"ntripcaster stop"和"ntripcaster restart"命令,測試是否安裝成功。
3.1.2 配置
caster軟件成功安裝后,需對conf目錄中的配置文件進行設置,以使軟件正常運行。相關的配置文件及其配置內(nèi)容見表1。

表1:BKG Professional NtripCaster配置文件功能介紹
3.1.3 狀態(tài)顯示
配置完成后,即可執(zhí)行"ntripcaster start"命令啟動軟件,提供caster服務。軟件的運行狀態(tài)可在網(wǎng)頁中打開配置的主機地址查看。圖2和3展示了該caster軟件運行時主要的狀態(tài)信息。其中圖2展示了數(shù)據(jù)源的狀態(tài)信息,包括連接的數(shù)據(jù)源總數(shù)、掛載點ID、主機IP、連接時刻和時長、接收數(shù)據(jù)量、連接用戶數(shù)等信息;圖3展示了client用戶信息,包括用戶IP、掛載點ID、連接時長、接收數(shù)據(jù)量等信息。

圖2:BKG Professional NtripCaster運行時數(shù)據(jù)源狀態(tài)信息

圖3:BKG Professional NtripCaster運行時監(jiān)聽用戶狀態(tài)信息
主機管理員可根據(jù)caster軟件的運行信息,管理caster服務,如重啟caster、斷開特定掛載點、更新配置文件內(nèi)容等,保證ntrip服務能夠穩(wěn)定提供給下游用戶。
SNIP開發(fā)的the simple NTRIP Caster也稱作SNIP,是一款可在Windows和Ubuntu系統(tǒng)運行的caster軟件。該軟件具備Ntrip服務中的caster功能,支持單個到數(shù)百個設備的大型GNSS網(wǎng)的數(shù)據(jù)收發(fā)。下面就其安裝及基本運行功能進行介紹。
3.2.1 安裝
SNIP的安裝較為簡單。在獲取軟件安裝包后,直接運行安裝文件(如SNIP_3_01_00setup.exe),根據(jù)提示設置相應的安裝路徑即可。成功安裝后,執(zhí)行SNIP.exe測試能否正常啟動。
3.2.2 配置
設置SNIP的基本運行功能主要有表2所示內(nèi)容。

表2:the simple NTRIP Caster配置內(nèi)容
3.2.3 狀態(tài)顯示
SNIP可在軟件運行過程中直接配置,無需重啟即可生效。圖4和5展示了SNIP運行時的狀態(tài)信息。其中圖4是運行主界面,展示了掛載點的數(shù)量、活動狀態(tài)、監(jiān)聽狀態(tài)等信息;圖5是作為流數(shù)據(jù)中繼時的狀態(tài)信息,展示了各個掛載點名稱、數(shù)據(jù)接收率、接收時長等信息。管理員可根據(jù)這些狀態(tài)信息作出相應的操作,以維護caster的正常運行。

圖4:SNIP運行狀態(tài)主界面

圖5:SNIP作為流數(shù)據(jù)中繼時的狀態(tài)信息
GNSS如今在室外高精度位置、導航和授時服務中占有舉足輕重的地位。隨著實時應用的興起,如汽車安全(車與車之間)、遠程精確無人機控制、傳統(tǒng)精準農(nóng)業(yè)、戰(zhàn)術搜索和救援等,越來越多的行業(yè)開始與高精度、實時的GNSS服務接軌。NtripCaster作為Ntrip協(xié)議中的核心服務,在將來的海量并發(fā)應用中具有十分重要的意義。當前caster軟件眾多,基本能夠滿足現(xiàn)有應用需求,但考慮到即將面臨的大數(shù)據(jù)挑戰(zhàn),因此該服務和軟件仍具有可觀的開發(fā)前景。