朱張林,高玉平,王平利,王惜康
(1.中國(guó)科學(xué)院國(guó)家授時(shí)中心,西安 710600;2.中國(guó)科學(xué)院時(shí)間頻率基準(zhǔn)重點(diǎn)實(shí)驗(yàn)室,西安 710600;3.中國(guó)科學(xué)院大學(xué),北京100049)
基于網(wǎng)絡(luò)的GNSS共視時(shí)間比對(duì)數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
朱張林1,2,3,高玉平1,2,王平利1,2,王惜康1,2,3
(1.中國(guó)科學(xué)院國(guó)家授時(shí)中心,西安 710600;2.中國(guó)科學(xué)院時(shí)間頻率基準(zhǔn)重點(diǎn)實(shí)驗(yàn)室,西安 710600;3.中國(guó)科學(xué)院大學(xué),北京100049)
為了實(shí)現(xiàn)遠(yuǎn)程時(shí)間同步中的共視數(shù)據(jù)自動(dòng)、連續(xù)傳輸,提出了基于TCP/IP協(xié)議來(lái)實(shí)現(xiàn)C/S模式的數(shù)據(jù)傳輸方案。闡述了數(shù)據(jù)發(fā)送端與接收端的傳輸原理和實(shí)現(xiàn)方案。發(fā)送端通過(guò)串口采集數(shù)據(jù)并通過(guò)網(wǎng)絡(luò)將其傳輸?shù)浇邮斩耍邮斩私邮瞻l(fā)送端的數(shù)據(jù)并對(duì)其檢驗(yàn)并保存。設(shè)計(jì)了發(fā)送端與接收端自動(dòng)重連接功能,實(shí)現(xiàn)了數(shù)據(jù)傳輸?shù)倪B續(xù)性。測(cè)試表明:采用基于TCP/IP協(xié)議和C/S模式的數(shù)據(jù)傳輸系統(tǒng)能夠?qū)崿F(xiàn)共視數(shù)據(jù)自動(dòng)、連續(xù)、可靠的傳輸。
時(shí)間同步;數(shù)據(jù)傳輸;GNSS共視(CV)
近年來(lái),高精度的遠(yuǎn)程時(shí)間比對(duì)在國(guó)民經(jīng)濟(jì)各領(lǐng)域中的應(yīng)用越來(lái)越廣泛。全球衛(wèi)星導(dǎo)航系統(tǒng)共視時(shí)間比對(duì)技術(shù)(GNSS CV)是應(yīng)用最廣的高精度遠(yuǎn)程時(shí)間比對(duì)方法[1]。GNSS CV是以GNSS衛(wèi)星鐘時(shí)間為公共時(shí)間參考源,相距遙遠(yuǎn)的兩個(gè)觀測(cè)站同時(shí)觀測(cè)同一顆衛(wèi)星,測(cè)定各站原子鐘時(shí)間與衛(wèi)星鐘時(shí)間的偏差,通過(guò)交換數(shù)據(jù),比較兩站的觀測(cè)結(jié)果,從而確定兩站的原子鐘間的相對(duì)偏差[2],其基本原理如圖1所示。要實(shí)現(xiàn)兩站間的時(shí)間比對(duì),除了需要兩站進(jìn)行同步觀測(cè),還需要在兩個(gè)觀測(cè)站之間進(jìn)行數(shù)據(jù)遠(yuǎn)程傳輸。遠(yuǎn)程數(shù)據(jù)的可靠、連續(xù)的傳輸直接影響GNSS CV比對(duì)的應(yīng)用。本文從數(shù)據(jù)傳輸?shù)目煽啃?、自?dòng)性和連續(xù)性出發(fā),結(jié)合現(xiàn)代計(jì)算機(jī)通信網(wǎng)絡(luò)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了基于網(wǎng)絡(luò)的GNSS CV數(shù)據(jù)傳輸系統(tǒng)。
圖1 GNSS CV 基本原理圖
在實(shí)際應(yīng)用中,基于網(wǎng)絡(luò)的GNSS CV數(shù)據(jù)傳輸要考慮3個(gè)問(wèn)題:系統(tǒng)的傳輸效率、可靠性和安全性。由于網(wǎng)絡(luò)傳輸中存在延時(shí),會(huì)造成接收數(shù)據(jù)的滯后[3-4]。對(duì)于基于網(wǎng)絡(luò)的數(shù)據(jù)傳輸系統(tǒng),傳輸?shù)臅r(shí)間是決定系統(tǒng)傳輸效率的主要因素,因此要合理地設(shè)計(jì)和選擇網(wǎng)絡(luò)傳輸協(xié)議,從而提高傳輸效率。而系統(tǒng)的可靠性取決于傳輸介質(zhì)和傳輸?shù)姆绞降纫蛩?。此外,由于?shù)據(jù)傳輸通常是通過(guò)公共網(wǎng)絡(luò)傳輸數(shù)據(jù)包,在傳輸?shù)倪^(guò)程中可能會(huì)被丟失、篡改,從而影響比對(duì)結(jié)果的準(zhǔn)確性。
從客戶端和服務(wù)器之間的編程模式來(lái)說(shuō),主要分為基于TCP協(xié)議的C/S編程和基于HTTP協(xié)議的WEB編程,前者使用專(zhuān)用的客戶端界面,后者則采用統(tǒng)一的瀏覽器為客戶端。二者各有優(yōu)缺點(diǎn):1)協(xié)議方面,C/S方式采用Winsock編程,是基于TCP或者UDP,TCP是面向連接的協(xié)議,考慮到傳輸?shù)目煽啃?,一般采用TCP協(xié)議,而HTTP協(xié)議是基于TCP協(xié)議的一種超文本協(xié)議,它的傳輸數(shù)據(jù)量大于單純的TCP協(xié)議;2)實(shí)時(shí)性方面,基于TCP協(xié)議的C/S傳輸數(shù)據(jù)的時(shí)延小于HTTP協(xié)議的WEB傳輸數(shù)據(jù)的時(shí)延;3)安全性方面,C/S方式的客戶端需要專(zhuān)門(mén)的授予,雖然不方便,但是安全性好,而B(niǎo)/S方式的客戶端不需要專(zhuān)門(mén)的授予,在任何有網(wǎng)絡(luò)的地方都可以進(jìn)行登錄,但此舉使得安全性級(jí)別降低。
TCP/IP協(xié)議實(shí)際上是一個(gè)協(xié)議簇,其中包括很多協(xié)議[5],其各層的功能如表1所示。
表1 TCP/IP網(wǎng)絡(luò)協(xié)議各層的功能
C/S編程模式是基于可靠連接的通信模型,通信的雙方必須使用各自的IP地址以及端口進(jìn)行通信。C/S編程模式如圖2所示。
圖2 C/S編程模式
綜上所述,從GNSS CV數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)傳輸量小,和實(shí)時(shí)性、安全性及可靠性考慮,認(rèn)為基于TCP/IP協(xié)議的C/S編程更合適GNSS CV數(shù)據(jù)傳輸系統(tǒng)。
要實(shí)現(xiàn)共視數(shù)據(jù)傳輸系統(tǒng),需要完成對(duì)數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端的詳細(xì)設(shè)計(jì)。下面結(jié)合VC 6.0開(kāi)發(fā)工具和網(wǎng)絡(luò)傳輸技術(shù)對(duì)二者做詳細(xì)的分析。
2.1 數(shù)據(jù)發(fā)送端實(shí)現(xiàn)
數(shù)據(jù)發(fā)送端包括:數(shù)據(jù)采集模塊、數(shù)據(jù)實(shí)時(shí)發(fā)送模塊和數(shù)據(jù)保存模塊。數(shù)據(jù)采集是采用VC中的MSComm控件實(shí)現(xiàn)串口數(shù)據(jù)接收,相比于API函數(shù)更方便、快捷,而且用較少的代碼可以實(shí)現(xiàn)相同的功能,大大提高編程效率[6]。數(shù)據(jù)實(shí)時(shí)發(fā)送模塊功能是將串口采集到的數(shù)據(jù)發(fā)送到數(shù)據(jù)接收端。由于這個(gè)模塊采用TCP/IP協(xié)議,所以需要在建立連接之前要事先知道數(shù)據(jù)接收端的IP地址和監(jiān)聽(tīng)的端口號(hào),才能完成連接,從而進(jìn)行數(shù)據(jù)傳輸。同時(shí),為了確保數(shù)據(jù)連續(xù)、可靠的傳輸,在每次數(shù)據(jù)發(fā)送之前,檢查當(dāng)前的連接狀態(tài),若是斷開(kāi),需重新建立連接。數(shù)據(jù)保存模塊功能是對(duì)串口采集到的數(shù)據(jù)檢驗(yàn)并將正確的數(shù)據(jù)保存到本地的一個(gè)文件中。發(fā)送端數(shù)據(jù)實(shí)時(shí)傳輸流程如圖3所示。
圖3 發(fā)送端數(shù)據(jù)實(shí)時(shí)傳輸流程圖
2.2 數(shù)據(jù)接收端實(shí)現(xiàn)
通常情況下,服務(wù)器需要同時(shí)向多個(gè)客戶端提供服務(wù)?;诒鞠到y(tǒng)采用C/S模式,是將數(shù)據(jù)接收端設(shè)計(jì)成服務(wù)器,所以要實(shí)現(xiàn)數(shù)據(jù)接收端能夠同時(shí)接收多個(gè)數(shù)據(jù)發(fā)送端發(fā)送來(lái)的數(shù)據(jù)的功能,就需要采用多線程技術(shù)來(lái)完成。數(shù)據(jù)接收端程序根據(jù)數(shù)據(jù)發(fā)送端的連接請(qǐng)求,為每個(gè)數(shù)據(jù)發(fā)送端創(chuàng)建一個(gè)服務(wù)線程,讓其完成數(shù)據(jù)接收和數(shù)據(jù)保存的功能。對(duì)于系統(tǒng)中的每個(gè)線程,操作系統(tǒng)都會(huì)為其分配相應(yīng)的時(shí)間片,使這些線程輪換執(zhí)行,由于時(shí)間片都很短,所以在用戶看來(lái)就像是多個(gè)線程在同時(shí)運(yùn)行[7]。圖4描述了CPU為線程分配時(shí)間片的狀態(tài)。
圖4 CPU為線程分配時(shí)間片
數(shù)據(jù)接收端實(shí)現(xiàn)的功能有:1) 在接受多個(gè)數(shù)據(jù)發(fā)送端連接請(qǐng)求的同時(shí),在已連接的客戶端模塊的界面上顯示多個(gè)數(shù)據(jù)發(fā)送端的用戶名并分別在相應(yīng)的目錄下建立以用戶名命名的文件夾,用于相應(yīng)的數(shù)據(jù)發(fā)送端發(fā)送來(lái)數(shù)據(jù)的存儲(chǔ);2) 提取接收來(lái)的數(shù)據(jù)中的MJD(約化儒略日),將相同的MJD數(shù)據(jù)保存在同一個(gè)文件中,同時(shí),在接收數(shù)據(jù)模塊的界面上顯示接收的數(shù)據(jù);3)在網(wǎng)絡(luò)暢通的情況下,當(dāng)數(shù)據(jù)發(fā)送端由于某種原因?qū)е屡c數(shù)據(jù)接收端斷開(kāi)連接,數(shù)據(jù)接收端會(huì)自動(dòng)重新接受數(shù)據(jù)發(fā)送端的連接請(qǐng)求,再次建立連接;4)通過(guò)打開(kāi)日志可以查看各個(gè)數(shù)據(jù)發(fā)送端何時(shí)與數(shù)據(jù)接收端建立連接、何時(shí)斷開(kāi)連接以及何時(shí)重新建立連接。圖5描述了數(shù)據(jù)接收端的詳細(xì)流程。
圖5 數(shù)據(jù)接收端流程圖
為了測(cè)試數(shù)據(jù)傳輸系統(tǒng)的性能,需要的測(cè)試條件有:共視接收機(jī)1臺(tái)、主鐘提供的1 PPS(秒脈沖)及2臺(tái)上網(wǎng)的PC機(jī)。測(cè)試的硬件連接如圖6所示,本文中是將數(shù)據(jù)發(fā)送軟件按安裝在PC1機(jī)上,數(shù)據(jù)接收軟件安裝在PC2機(jī)上。測(cè)試主要分為系統(tǒng)的自動(dòng)性、連續(xù)性和可靠性測(cè)試。
圖6 測(cè)試的硬件連接圖
3.1可靠性測(cè)試
本文中PC1機(jī)上的數(shù)據(jù)發(fā)送軟件是通過(guò)串口從共視接收機(jī)接收共視觀測(cè)數(shù)據(jù),然后通過(guò)Internet發(fā)送給PC2上的數(shù)據(jù)接收軟件。主要測(cè)試內(nèi)容包括:數(shù)據(jù)接收端是否正確地接收發(fā)送端發(fā)送來(lái)的數(shù)據(jù);是否正確地提取數(shù)據(jù)中的MJD,建立相應(yīng)的文件夾,保存數(shù)據(jù)。測(cè)試時(shí):先啟動(dòng)PC2機(jī)上的數(shù)據(jù)接收軟件;然后,啟動(dòng)PC1機(jī)上的數(shù)據(jù)發(fā)送軟件,并設(shè)置好相關(guān)參數(shù);最后,數(shù)據(jù)發(fā)送端與數(shù)據(jù)接收端建立連接。當(dāng)共視接收機(jī)產(chǎn)生觀測(cè)數(shù)據(jù)并通過(guò)串口發(fā)給發(fā)送端時(shí),發(fā)送端的界面如圖7所示。當(dāng)接收端接收到數(shù)據(jù)時(shí),接收端界面如圖8所示,相應(yīng)的文件保存的數(shù)據(jù)如圖9所示。
圖7 發(fā)送端界面
圖8 接收端界面
圖9 接收數(shù)據(jù)文件
從圖7~9可見(jiàn):接收端能夠可靠地接收發(fā)送端發(fā)送來(lái)的數(shù)據(jù),并對(duì)其正確地保存;滿足共視數(shù)據(jù)傳輸?shù)囊蟆?/p>
3.2 自動(dòng)性和連續(xù)性測(cè)試
依據(jù)BIPM的共視觀測(cè)標(biāo)準(zhǔn),共視觀測(cè)周期為16 min,所以在實(shí)踐應(yīng)用中觀測(cè)數(shù)據(jù)的傳輸有16 min的間隔。PC1機(jī)上的數(shù)據(jù)發(fā)送軟件會(huì)自動(dòng)地將接收到的數(shù)據(jù)發(fā)給PC2機(jī)上的數(shù)據(jù)接收軟件。而數(shù)據(jù)接收端在網(wǎng)絡(luò)暢通的情況下,自動(dòng)地檢驗(yàn)發(fā)送來(lái)的數(shù)據(jù)并對(duì)其保存,當(dāng)發(fā)送端和接收斷開(kāi)連接時(shí),在下一次發(fā)送數(shù)據(jù)時(shí)會(huì)自動(dòng)地重新建立連接。同時(shí),日志文件詳細(xì)地記錄發(fā)送端和接收端何時(shí)建立連接、何時(shí)斷開(kāi)連接及接收端何時(shí)成功接收數(shù)據(jù),其測(cè)試結(jié)果如圖10所示。
圖10 日志文件
從圖10所示的日志文件可以看出:用戶名為NTSC的發(fā)送端與數(shù)據(jù)接收端成功建立連接,之后每隔16 min接收一次數(shù)據(jù),接收第6次之后發(fā)生斷開(kāi),在第7次接收數(shù)據(jù)的時(shí)候重新建立連接。滿足系統(tǒng)的自動(dòng)性和連續(xù)性要求。
為了確保GNSS CV中共視數(shù)據(jù)的自動(dòng)、連續(xù)、可靠傳輸,本文結(jié)合面向?qū)ο笾R(shí)、計(jì)算機(jī)網(wǎng)絡(luò)傳輸技術(shù)和多線程技術(shù)實(shí)現(xiàn)了基于網(wǎng)絡(luò)的GNSS CV數(shù)據(jù)傳輸系統(tǒng)。該系統(tǒng)具有能夠自動(dòng)連續(xù)運(yùn)行、傳輸數(shù)據(jù)的時(shí)延小、安全性好等特點(diǎn),滿足GNSS CV中數(shù)據(jù)傳輸?shù)淖詣?dòng)性、連續(xù)性和近實(shí)時(shí)性的要求,可用于遠(yuǎn)程時(shí)間同步中的共視數(shù)據(jù)的傳輸,保證共視數(shù)據(jù)傳輸?shù)目煽啃院瓦B續(xù)性,從而提高了時(shí)間同步的精度。
[1] 戚素娟.GPS/GLONASS組合共視技術(shù)研究[D].北京: 中國(guó)科學(xué)院研究生院, 2008.
[2] 林思佳.時(shí)頻子系統(tǒng)遠(yuǎn)程時(shí)間同步技術(shù)研究[D].北京: 中國(guó)科學(xué)院研究生院, 2013.
[3] 鄭小寧.基于因特網(wǎng)的遠(yuǎn)程控制技術(shù)研究[D].西安: 西北工業(yè)大學(xué), 2002.
[4] 申力.基于GPRS的數(shù)據(jù)傳輸應(yīng)用[D].南京: 南京理工大學(xué), 2004.
[5] 李江全, 湯智輝, 朱東芹, 等.Visual Basic數(shù)據(jù)采集與串口通信測(cè)控應(yīng)用實(shí)戰(zhàn)[M].北京: 人民郵電出版社, 2010.
[6] 劉銳寧, 梁水, 李偉明.學(xué)通Visual C++的24課堂[M].北京: 清華大學(xué)出版社, 2011.
[7] 羅建軍, 黎波濤, 楊明, 等.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京: 清華大學(xué)出版社, 2009.
Design and implementation of GNSS CV data transmission system based on network
ZHU Zhang-lin1,2,3,GAO Yu-ping1,2,WANG Ping-li1,2,WANG Xi-kang1,2,3
(1.National Time Service Center,Chinese Academy of Sciences,Xi′an 710600,China;2.Key Laboratory of Time and Frequency Primary Standard,National Time Service Center,Chinese Academy of Sciences,Xi′an 710600,China;3.University of Chinese Academy of Sciences,Beijing 100049,China)
A design of data transmission project based on TCP/IP protocol and C/S mode is proposed for realizing the automatic and continuous transmission of GNSS common view data in the remote time synchronization.The transmission principle and implementation scheme of the data sender and the receiver are described.The sender collects the data via a serial port and sends the data to the receiver via the network,whereas the receiver receives the data from the sender and then checks and saves them.The function of reconnection between the sender and the receiver is designed for realizing the continuity of data transmission.The tests show that the data transmission system based on TCP/IP protocol and C/S model can achieve the automatic,continuous and reliable transmission of the common view data.
time synchronization; data transmission; GNSS CV
TN919.2;P19
A
1674-0637(2015)01-0013-08
10.13875/j.issn.1674-0637.2015-01-0013-08
2014-08-25
國(guó)家自然科學(xué)基金資助項(xiàng)目(11373028)
朱張林,男,碩士研究生,主要從事遠(yuǎn)程時(shí)間同步研究。