楊葉林,倪冰潔,姚傳明
(1.中國電子科技集團(tuán)公司第二十八研究所,江蘇 南京 210007;2.江蘇省測繪研究所,江蘇 南京 210013)
北斗衛(wèi)星導(dǎo)航系統(tǒng)[1](BeiDou Navigation Satellite System,簡稱北斗系統(tǒng),CNSS)是中國自行研制的全球衛(wèi)星定位與通信系統(tǒng),是繼美全球定位系統(tǒng)(GPS)、俄GLONASS之后第三個成熟的衛(wèi)星導(dǎo)航系統(tǒng)。系統(tǒng)由空間衛(wèi)星系統(tǒng)、地面中心控制系統(tǒng)和各類用戶終端等部分組成。目前在國防建設(shè)中占有越來越重要的作用,為軍兵種作戰(zhàn)提供定位、通信保障。
然而,一方面,指揮信息系統(tǒng)[2]的研制、聯(lián)試時,規(guī)模上要覆蓋部隊各級各類指揮所、諸兵種和全要素,另一方面,作戰(zhàn)指揮人員在參加各類模擬訓(xùn)練時,需要接入北斗衛(wèi)星導(dǎo)航系統(tǒng)終端的信息系統(tǒng)眾多。由于北斗卡申請困難,實裝的北斗接收機數(shù)據(jù)量有限,同時在室內(nèi)環(huán)境下,北斗信號較弱,不能提供正常定位、通信功能,滿足不了研發(fā)、聯(lián)試、訓(xùn)練的要求。因此需要研制北斗衛(wèi)星導(dǎo)航系統(tǒng)中的空間衛(wèi)星系統(tǒng)、中心控制系統(tǒng)、用戶終端的模擬系統(tǒng),即北斗網(wǎng)絡(luò)模擬器,模擬器在功能、性能和技術(shù)體制上應(yīng)與實際設(shè)備保持高度一致。
本文提供了一種基于QT、虛擬串口的北斗網(wǎng)絡(luò)模擬器設(shè)計實現(xiàn)方法,對北斗衛(wèi)星導(dǎo)航系統(tǒng)的運行進(jìn)行模擬仿真。模擬器采用虛擬串口方法,對信息系統(tǒng)使用北斗用戶終端方式進(jìn)行模擬,使信息系統(tǒng)使用模擬器和使用北斗用戶終端方式保持一致,不需要做任何適應(yīng)性改進(jìn),同時也可使模擬器軟件靈活地與信息系統(tǒng)部署于同一臺計算機或分開獨立部署。QT[3]是具備“一次編寫,隨處編譯”特點的跨平臺圖形界面應(yīng)用程序,提供了基于C++語言應(yīng)用程序開發(fā)框架,可運行于Linux、Window、MacOS等多類型操作系統(tǒng),采用QT進(jìn)行軟件研制,使模擬器具備跨平臺移植特點,滿足在各類操作系統(tǒng)下與指揮信息系統(tǒng)同時運行的需求。
北斗系統(tǒng)是集定位、授時、通信于一體的衛(wèi)星導(dǎo)航系統(tǒng)[3],比GPS以及GLONASS多一項報文通信能力。
(1)快速定位:快速確定用戶地理位置,為用戶提供導(dǎo)航信息。
(2)精確授時:具備單向和雙向2種授時功能,利用定時用戶終端,完成與北斗系統(tǒng)時間和頻率的同步。
(3)短語通信:具備用戶與用戶、用戶與地面控制中心間雙向數(shù)字報文通信能力。
北斗用戶機終端可分為普通型、定時型、數(shù)傳型、指揮型、救生型5種類型,其中不同類型用戶機側(cè)重功能點不一樣。如定時型用戶機主要提供精度可達(dá)數(shù)10 ns的時鐘校準(zhǔn)源,指揮型用戶機具備鑒別、指揮下屬其他用戶機的功能等等。根據(jù)軍用指揮信息系統(tǒng)中北斗用戶機使用情況,本文主要針對普通型、指揮型用戶機進(jìn)行軟件化模擬的實現(xiàn)方法進(jìn)行設(shè)計。
北斗系統(tǒng)通信[5]信道容量小,信道傳輸速率有限,用戶容量有限,因而北斗短語能力具備如下特點。
(1)通信頻度:北斗短語通信能力與傳統(tǒng)IP網(wǎng)絡(luò)傳輸方式不同。根據(jù)北斗用戶等級、終端類型等信息限定通信頻度,在一定時間內(nèi),只能傳輸一次數(shù)據(jù)。
(2)長度限制:北斗短語通信的數(shù)據(jù)長度根據(jù)用戶卡的等級所有差別,一般一次最大可傳輸36個漢字或72字節(jié)的字符,部分授權(quán)用戶一次最大可傳輸120個漢字,或240個字節(jié)的字符。
(3)信息監(jiān)收:普通型和指揮型用戶機之間存在上下級隸屬關(guān)系,指揮型用戶機可同時收到所屬普通型用戶機收到的通信信息、有源定位信息等信息。
北斗用戶機終端利用串口、CAN口等方式與計算機連接,各應(yīng)用系統(tǒng)軟件通過串口、CAN口通信與北斗用戶終端數(shù)據(jù)交互(圖1)。
圖1 北斗系統(tǒng)應(yīng)用結(jié)構(gòu)
北斗網(wǎng)通信模擬器是對北斗系統(tǒng)進(jìn)行軟件化的模擬,能夠?qū)崿F(xiàn)應(yīng)用系統(tǒng)接北斗設(shè)備與接北斗網(wǎng)通信模擬器的功能效果一致。模擬系統(tǒng)主要由模擬北斗中心站(以下簡稱“模擬中心站”)和模擬北斗用戶機(一下簡稱“模擬用戶機”)2部分,模擬中心站主要對北斗系統(tǒng)中北斗衛(wèi)星的功能進(jìn)行模擬,主要功能是對各北斗用戶機進(jìn)行通信、定位、隸屬關(guān)系等方面進(jìn)行管理,模擬用戶機主要是功能是與各應(yīng)用系統(tǒng)軟件進(jìn)行信息交互(圖2)。
圖2 北斗網(wǎng)通信模擬器系統(tǒng)架構(gòu)
模擬中心站與各模擬用戶機之間采用以太網(wǎng)進(jìn)行互聯(lián),既可以與模擬用戶機部署于同一臺計算機,也可分開各自獨立部署。
北斗用戶機和應(yīng)用系統(tǒng)間可使用串口、CAN口等方式進(jìn)行通信,但CAN不具備普適性,串口本身相對靈活,存在虛擬串口工具對串口進(jìn)行模擬仿真。虛擬串口[6]并不是物理上存在的,而是使用虛擬手段模擬出來的,具備物理串口全部的邏輯特征,對應(yīng)用程序來說兩者功能一樣,但虛擬串口有一個特點,即不受物理串口限制,可在同一臺計算機上虛擬出若干個串口。因而,在本設(shè)計中,模擬用戶機和應(yīng)用系統(tǒng)間采用串口方式進(jìn)行信息交互。同樣,模擬用戶機與應(yīng)用系統(tǒng)間的部署,既可分別部署于獨立的計算機,也可部署于同一臺計算機。
北斗網(wǎng)通信模擬器系統(tǒng)軟件主要由模擬中心站軟件和模擬用戶機軟件兩部分組成,兩者通過以太網(wǎng)互聯(lián),制定專用通信協(xié)議,實現(xiàn)模擬北斗衛(wèi)星與北斗用戶機之間的信息交互。
模擬中心站軟件主要功能有以下2個方面(圖3)。
(1)用戶機管理:有對網(wǎng)內(nèi)模擬用戶機進(jìn)行統(tǒng)一管理、參數(shù)配置等能力,可以對模擬用戶機間的指揮關(guān)系進(jìn)行統(tǒng)一管理控制。
(2)北斗信息交互:能夠?qū)δM用戶機間的短語通信、定位申請等進(jìn)行管理調(diào)度,并通過指揮關(guān)系確定監(jiān)收信息調(diào)度。
圖3 模擬中心站軟件架構(gòu)
模擬用戶機軟件主要功能有以下3方面(圖4)。
圖4 模擬用戶機軟件架構(gòu)
(1)設(shè)備信息模擬。模擬用戶機利用本地指令,對設(shè)備信息進(jìn)行配置;
(2)通信信息處理。接收應(yīng)用系統(tǒng)通過串口發(fā)送的通信信息請求,根據(jù)信息類型進(jìn)行相應(yīng)處理:部分信息本地處理,部分信息提交至模擬中心站進(jìn)行統(tǒng)一處理;并對通信請求進(jìn)行頻度限制,在通信頻度范圍內(nèi)的再次通信申請指令,做丟棄處理。
(3)定位授時信息模擬。對北斗定位授時信息進(jìn)行本地模擬仿真,根據(jù)需要提交至模擬中心站進(jìn)行統(tǒng)一處理。
根據(jù)北斗系統(tǒng)的通信特點,對模擬系統(tǒng)的主要信息交互流程進(jìn)行了設(shè)計(圖5)。
圖5 信息交互流程
模擬系統(tǒng)運行主要流程如下。
(1)系統(tǒng)啟動:模擬用戶機軟件,接入模擬中心站,注冊用戶機模擬器相關(guān)的身份信息,若模擬中心站軟件未運行,則模擬用戶機軟件只能提供有限功能,相關(guān)通信能力無法支撐。
(2)應(yīng)用系統(tǒng)發(fā)出指令:模擬用戶機對指令進(jìn)行解析和分流,主要包括本地處理和模擬心站軟件處理的指令。
(3)本地處理:本地處理的指令包含北斗用戶機卡信息、設(shè)備狀態(tài)、無源定位等信息,當(dāng)需處理上述信息時,本地根據(jù)北斗指令類型生成應(yīng)答信息,發(fā)送至應(yīng)用系統(tǒng)。
(4)指令上報:需要上報至模擬中心站的指令包含通信申請、有源定位申請等指令,模擬用戶機將相應(yīng)指令打包封裝,發(fā)送給模擬中心站;同時對上報指令頻度進(jìn)行管理,對上報數(shù)據(jù)進(jìn)行頻度倒計時處理,倒計時內(nèi)再次出現(xiàn)需上報數(shù)據(jù),做丟棄處理。
(5)中心站處理:模擬中心站收到信息后,對指令進(jìn)行解析,并將相應(yīng)的信息中轉(zhuǎn)調(diào)度給其他模擬用戶機,同時,根據(jù)指令類型,從用戶指揮關(guān)系中獲取監(jiān)收單位,并將信息發(fā)送至相應(yīng)用戶機軟件。
(6)提交應(yīng)用系統(tǒng):用戶機軟件收到中心站軟件發(fā)送的指令信息后,進(jìn)行處理,并發(fā)送給應(yīng)用系統(tǒng)。
為了保障模擬中心站軟件和模擬用戶機軟件之間通信可靠,對兩者間的交互信息進(jìn)行協(xié)議設(shè)計。由于北斗本身有通信格式標(biāo)準(zhǔn),本設(shè)計主要是對模擬器之間的信息交互內(nèi)容進(jìn)行設(shè)計以及對北斗原有協(xié)議的封裝?;ヂ?lián)采用TCP方式,以模擬中心站為中心,模擬用戶機為客戶端,進(jìn)行互聯(lián)(圖6—7)。
圖6 協(xié)議交互流程
圖7 通信協(xié)議格式
信息類型字段說明:
(1)狀態(tài)信息(信息類型碼0):包含模擬用戶機需要上報的各類設(shè)備信息,如當(dāng)前模擬用戶機運行的設(shè)備IP地址、模擬用戶機定位狀態(tài)等。
(2)控制信息(信息類型碼1):包含模擬中心站對模擬用戶機之間的控制信息,如更改用戶機卡號、設(shè)置用戶機定位軌跡等。
(3)通信申請(信息類型碼2):對北斗系統(tǒng)的通信申請類、有源定位類信息進(jìn)行封裝。
(4)通信信息(信息類型碼3):對北斗系統(tǒng)的通信信息、定位信息進(jìn)行封裝。
(5)監(jiān)收信息(信息類型碼4):對北斗系統(tǒng)的監(jiān)收信息進(jìn)行封裝。
長度字段說明:長度是描述信息內(nèi)容的長度,不包含信息類型;
信息內(nèi)容說明:① 信息類型0:子類型(1字節(jié))+信息內(nèi)容;② 信息類型1:子類型(1字節(jié))+信息內(nèi)容;③ 信息類型2、3、4:原始北斗交互協(xié)議數(shù)據(jù)。
本文采用QT4.8.5開發(fā)環(huán)境,選擇Win7操作系統(tǒng),對系統(tǒng)進(jìn)行模擬(圖8—9)。
系統(tǒng)啟動后,通過模擬用戶機軟件進(jìn)行北斗卡號設(shè)置,能夠?qū)⑾鄳?yīng)信息上傳至模擬中心站軟件,并可在模擬中心站軟件對模擬用戶機軟件進(jìn)行統(tǒng)一控制。同時,為驗證北斗網(wǎng)模擬器系統(tǒng)通信功能正確性,選取兩套基于VxWorks的車載指控軟件進(jìn)行互通功能驗證,分別對涉及到的北斗通信相關(guān)的漢字通信、代碼通信、定位申請等進(jìn)行互通性試驗。經(jīng)過驗證,模擬系統(tǒng)能夠代替北斗設(shè)備,完成車載指控軟件中的漢字通信、代碼通信、定位申請、信息監(jiān)收信息收發(fā),結(jié)果正確可靠。
圖8 模擬用戶機軟件界面
圖9 模擬中心站軟件界面
目前未有能夠?qū)Ρ倍吠ㄐ胚M(jìn)行模擬的模擬器。針對此問題,提出了一種可行的北斗網(wǎng)通信模擬器的設(shè)計方法,并予以實現(xiàn)。模擬器可替代北斗設(shè)備在指揮控制系統(tǒng)的研制、聯(lián)試聯(lián)調(diào)以及部隊訓(xùn)練等各項活動所發(fā)揮的功能和作用。同時,經(jīng)過驗證表明,北斗網(wǎng)模擬器設(shè)計方法可行,具備對北斗通信、定位、監(jiān)收等能力的模擬仿真,具有一定的實用價值和推廣意義。