《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 北斗通信終端軟件的設計與實現(xiàn)
北斗通信終端軟件的設計與實現(xiàn)
2017年微型機與應用第10期
柯秋立,蘇凱雄
福州大學 物理與信息工程學院,福建 福州 350002
摘要: 為了對北斗衛(wèi)星無線電測定業(yè)務(Radio Determination Satellite Service,RDSS)報文與衛(wèi)星無線電導航業(yè)務(Radio Navigation Satellite Service,RNSS)報文的控制實現(xiàn)功能集成,設計一種針對北斗用戶終端模塊的軟件系統(tǒng)?;谇昂笈_分離的設計思想來構架該軟件,即后臺線程負責使用串口與用戶終端模塊通信,包括對RDSS/RNSS數(shù)據(jù)的接收解析和對RDSS數(shù)據(jù)的封裝發(fā)送;前臺用戶界面完成數(shù)據(jù)的可視化,并實現(xiàn)靈活的人機交互。前后臺線程之間采用并發(fā)技術實現(xiàn)通信數(shù)據(jù)的快速處理。
關鍵詞: RDSS RNSS 集成 控制
Abstract:
Key words :

  柯秋立,蘇凱雄

  (福州大學 物理與信息工程學院,福建 福州 350002)

  摘要:為了對北斗衛(wèi)星無線電測定業(yè)務(Radio Determination Satellite Service,RDSS)報文與衛(wèi)星無線電導航業(yè)務(Radio Navigation Satellite Service,RNSS)報文的控制實現(xiàn)功能集成,設計一種針對北斗用戶終端模塊的軟件系統(tǒng)?;谇昂笈_分離的設計思想來構架該軟件,即后臺線程負責使用串口與用戶終端模塊通信,包括對RDSS/RNSS數(shù)據(jù)的接收解析和對RDSS數(shù)據(jù)的封裝發(fā)送;前臺用戶界面完成數(shù)據(jù)的可視化,并實現(xiàn)靈活的人機交互。前后臺線程之間采用并發(fā)技術實現(xiàn)通信數(shù)據(jù)的快速處理。

  關鍵詞:RDSS;RNSS;集成; 控制

  中圖分類號:TN927+.2文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.005

  引用格式:柯秋立,蘇凱雄.北斗通信終端軟件的設計與實現(xiàn)[J].微型機與應用,2017,36(10):15-17,22.

0引言

  北斗衛(wèi)星導航系統(tǒng)作為后起之秀,相關應用等待挖掘,具有很大的市場潛力。鑒于GPS的應用經(jīng)驗,在北斗一代系統(tǒng)導航終端的市場化過程中,有北斗系統(tǒng)RDSS業(yè)務與GPS RNSS業(yè)務相結合的導航終端案例,并且北斗二代系統(tǒng)也實現(xiàn)了與GPS類似的RNSS業(yè)務[1],因而結合了RDSS業(yè)務與RNSS業(yè)務的終端軟件將會在北斗導航系統(tǒng)的應用過程中發(fā)揮出巨大作用。

  本文針對此需求,設計一種控制軟件系統(tǒng),對北斗RDSS、RNSS綜合業(yè)務進行報文控制,包括數(shù)據(jù)通信、授時、終端移動數(shù)據(jù)獲取等功能,并且具有較好的人機交互效果。

1北斗衛(wèi)星導航終端系統(tǒng)概述

  如圖1所示,一個完整的北斗衛(wèi)星導航終端系統(tǒng),主要由北斗用戶終端模塊(該模塊同時具有北斗一代的RDSS業(yè)務功能與GPS、北斗二代的RNSS業(yè)務功能)、Windows平臺、后臺數(shù)據(jù)處理線程、人機界面四個部分組成。整個北斗導航終端系統(tǒng)的功能主要是RDSS/RNSS數(shù)據(jù)幀的接收解析與封裝發(fā)送。數(shù)據(jù)幀接收過程:北斗用戶終端首先將天線接收到的北斗信號經(jīng)過模塊內(nèi)部的信號處理,轉(zhuǎn)換成串口數(shù)據(jù)并輸出到PC。串口數(shù)據(jù)進入PC后由后臺線程根據(jù)幀協(xié)議解析,得到用戶應用數(shù)據(jù)。該應用數(shù)據(jù)將被人機界面進行可視化處理。數(shù)據(jù)幀發(fā)送過程:用戶在人機界面發(fā)送命令時,該命令對應的應用數(shù)據(jù)被后臺線程封裝成協(xié)議幀并輸出到串口。北斗用戶終端將得到的串口數(shù)據(jù)經(jīng)過內(nèi)部信號處理后,通過天線發(fā)送出去。

001.jpg

2軟件系統(tǒng)實現(xiàn)

  軟件系統(tǒng)的設計主要由兩部分組成:后臺線程設計和用戶界面設計。下面針對這兩部分的具體實現(xiàn)做詳細闡述。

  2.1后臺線程實現(xiàn)

  后臺線程的設計主要涉及RDSS/RNSS協(xié)議幀的接收、解析算法,解析與顯示快速響應算法。算法涉及RDSS/RNSS兩種報文,基于兩種不同的協(xié)議規(guī)范,一種是北斗用戶機接口協(xié)議(4.0),另一種是NMEA0183協(xié)議。

  2.1.1用戶接口協(xié)議

  用戶接口協(xié)議規(guī)范了通信應用數(shù)據(jù)幀的格式。北斗一代接口數(shù)據(jù)傳輸協(xié)議(4.0)在該控制軟件中主要用于規(guī)范北斗通信數(shù)據(jù)和定位數(shù)據(jù),而NMEA0183協(xié)議主要用于規(guī)范衛(wèi)星的位置數(shù)據(jù)和終端設備的移動數(shù)據(jù)。

  北斗用戶機接口協(xié)議(4.0)如圖2所示?!坝脩舻刂贰笔侵缸鳛榘l(fā)送方的北斗卡號碼,而接收方的北斗卡號碼被包含在“信息內(nèi)容”字段中。

 

002.jpg

  由北斗用戶機接口協(xié)議(4.0)可知,該協(xié)議數(shù)據(jù)幀是以字節(jié)為單位來表示信息,所以要將該數(shù)據(jù)幀原有的字節(jié)類型轉(zhuǎn)換為方便計算機處理的基本數(shù)據(jù)類型[2]。

  北斗用戶機接口協(xié)議(4.0)中,在北斗終端設備之間進行數(shù)據(jù)通信的方式有“代碼”、“漢字”兩種。在北斗終端設備實際通信過程中,當通信數(shù)據(jù)出現(xiàn)中英文數(shù)字混合的情況時,應選擇“代碼”方式發(fā)送;如果單純發(fā)送數(shù)字,由于數(shù)字的范圍是0~9,為了更有效地利用有限帶寬,可以在“代碼”通信方式中進行拓展,用4 bit來表示一個數(shù)字,而不是原來ASCII規(guī)范的1 B來表示一個數(shù)字。

  NMEA0183協(xié)議(National Marine Electronics Association )是為海用電子設備制定的標準格式,定義了接收機輸出信息的標準。該協(xié)議用逗點隔開數(shù)據(jù)流,數(shù)據(jù)流長度為30~100字符不等,通常以每秒間隔選擇輸出[3]。常用的NMEA0183協(xié)議語句功能如表1所示。

009.jpg

  2.1.2數(shù)據(jù)接收算法

  數(shù)據(jù)幀接收模塊的輸入為字節(jié)數(shù)據(jù)流,模塊通過不斷地讀取串口緩沖區(qū),經(jīng)內(nèi)部處理,輸出完整的協(xié)議幀語句。數(shù)據(jù)接收模塊的內(nèi)部流程圖如圖3所示。

  

003.jpg

  由于RNSS(北斗二代、GPS)數(shù)據(jù)幀采用NMEA0183協(xié)議規(guī)范,RDSS(北斗一代)數(shù)據(jù)幀采用北斗用戶機接口協(xié)議(4.0)規(guī)范,因而數(shù)據(jù)幀的接收需要適配兩種協(xié)議規(guī)范。

  根據(jù)圖2北斗用戶機接口協(xié)議(4.0)規(guī)范,該類數(shù)據(jù)幀的完整接收策略為:接收方先接收該幀的長度數(shù)據(jù),作為該幀數(shù)據(jù)量大小的標準;然后,接收幀體并計數(shù),當計數(shù)值與長度數(shù)據(jù)相等時就表示該幀接收完整。

  根據(jù)NMEA0183協(xié)議規(guī)范,該類數(shù)據(jù)幀的完整接收策略為:接收到幀頭“$”時表示有效數(shù)據(jù)開始,一直接收,直到收到幀尾“\\r\\n”時表示一個數(shù)據(jù)幀結束。

  2.1.3數(shù)據(jù)解析算法

  數(shù)據(jù)解析涉及北斗用戶機接口協(xié)議(4.0)和NMEA0183協(xié)議,而且由于兩類數(shù)據(jù)流都是由同一個串口來進行數(shù)據(jù)通信,因而數(shù)據(jù)解析時,算法必須適配兩種協(xié)議。

  部分數(shù)據(jù)解析的算法流程圖如圖4所示。

 

004.jpg

  解析即在數(shù)據(jù)幀里提取相應字段的信息并顯示。首先需要將數(shù)據(jù)幀從字節(jié)流形式通過ASCII規(guī)范轉(zhuǎn)換為字符串形式以便編程處理[4]。將數(shù)據(jù)幀轉(zhuǎn)換為字符串形式后,利用編程語言的字符串分割方法便可以很容易地得到各個字段的應用數(shù)據(jù)信息。

 

005.jpg

  對于通信信息“$TXXX”、時間信息“$SJXX”、定位信息“$DWXX”、移動數(shù)據(jù)“$RMC”直接將應用數(shù)據(jù)交付用戶界面;對于有關可見衛(wèi)星編號、衛(wèi)星俯仰角、信號載噪比的“$GSV”語句,需要將衛(wèi)星編號與其俯仰角或載噪比等數(shù)據(jù)組合成鍵值對再交付用戶界面,以便于該數(shù)據(jù)在柱狀圖、星座圖上顯示。

  2.1.4快速響應方法

  數(shù)據(jù)接收與數(shù)據(jù)解析,這兩個流程之間的同步形式直接決定了軟件響應的速度。該軟件將這兩個流程分別設計成兩個獨立的線程,并且采用緩沖技術,極大地提高了響應速度。

  首先,在內(nèi)存空間開辟n個緩存區(qū)。

  之后,數(shù)據(jù)接收線程將完整的數(shù)據(jù)幀填入緩存區(qū)1。緩存區(qū)1填完之后,數(shù)據(jù)接收線程將新的完整數(shù)據(jù)幀填入緩存區(qū)2。重復這個過程直到最后一個緩存區(qū)n被填完,又重新開始填充緩存區(qū)1。數(shù)據(jù)接收線程將一直循環(huán)這樣的流程。

  與此同時,數(shù)據(jù)解析線程首先判斷緩存區(qū)1是否填滿,如果已經(jīng)填充完成,那么就將該數(shù)據(jù)幀進行解析;如果還沒完成,那么等待。緩存區(qū)1的數(shù)據(jù)幀解析完成之后,立刻又對緩存區(qū)2的數(shù)據(jù)幀進行解析。直到最后一個緩存區(qū)n的數(shù)據(jù)幀被解析完,又重新從緩存區(qū)1開始解析數(shù)據(jù)幀。數(shù)據(jù)解析線程將一直重復這樣的流程。

  2.2前臺界面設計

  用戶界面的輸入主要有“定位申請”和“通信申請”命令,而接收的信息主要有用戶通信信息、用戶移動數(shù)據(jù)(速度、經(jīng)緯度等)和衛(wèi)星數(shù)據(jù)(衛(wèi)星數(shù)、衛(wèi)星俯仰角等)。本次用戶界面設計采用Visual Studio 2010為開發(fā)工具。利用Windows Form框架[5]將解析得到的應用數(shù)據(jù)如衛(wèi)星信號載噪比數(shù)據(jù)、衛(wèi)星俯仰角數(shù)據(jù)在柱狀圖、星座圖上進行顯示,而對于其他簡單的應用數(shù)據(jù),則使用文字顯示。最終得到如圖5所示界面。

3軟件系統(tǒng)測試

  本次軟件設計的測試平臺是PC Windows操作系統(tǒng)環(huán)境,北斗終端用戶機采用FB3511。該軟件將對用戶機的報文進行控制處理。運行軟件,待鎖定北斗衛(wèi)星信號后開始進行測試。

  (1)定位功能功能測試

  按下“單次定位”按鈕,“北斗報文顯示”框給出經(jīng)緯度信息,如圖6。輸出的經(jīng)緯度信息與測試地經(jīng)緯度一致,表明RDSS定位報文控制功能正確實現(xiàn)。圖中,“單次定位”命令未能及時響應,這是由于該北斗卡限制報文發(fā)送頻度為60秒所致。

  

007.jpg

  (2)通信功能測試

  在“收方地址”填入本機卡號307577,即發(fā)給本臺設備。在信息發(fā)送框填入“你好,北斗 hello BD”,在“北斗報文顯示”框里面就會收到該信息,如圖7。收發(fā)信息一致,表明RDSS收發(fā)報文功能正確實現(xiàn)。

008.jpg

  (3)設備移動信息功能測試

  設備的移動數(shù)據(jù)由北斗衛(wèi)星不斷地發(fā)送到用戶終端設備,如圖8。授時時間符合北京時間,定位衛(wèi)星數(shù)、視野衛(wèi)星數(shù)等與接收的報文數(shù)據(jù)一致,設備移動信息包括対地速度與航向與設備實際情況一致,表明RNSS報文解析功能正確實現(xiàn)?!?/p>

010.jpg

4結論

  該軟件系統(tǒng)采用了Windows Form框架和多線程并發(fā)技術進行軟件設計,合理規(guī)劃各個數(shù)據(jù)處理流程的分工,將數(shù)據(jù)處理的負荷合理分配到各個部分。實際測試表明,該軟件能夠?qū)DSS/RNSS兩種協(xié)議報文進行可靠、準確的控制,做到快速響應,為后續(xù)的軟件應用研究奠定基礎。

  參考文獻

 ?。?] 黃建華.北斗RDSS機制下的導航地圖更新設想及實踐[J].測繪通報,2012(5):44-46,49.

 ?。?] 文斌,寧志強,陳愛萍.基于“北斗一代”的ZigBee無線網(wǎng)關設計[J].電訊技術,2011,51(9):92-95.

  [3] 朱炳瑜,肖純賢,陳永虎,等.智能車載系統(tǒng)的設計[J].南開大學學報(自然科學版),2011,44(6):14-17.

 ?。?] 薛雅娟,陳維鋒,郭勇,等.C# .NET環(huán)境下GPS OEM板接收機數(shù)據(jù)的提取[J].成都信息工程學院學報,2006,21(5):645648.

 ?。?] 林淑真,楊秀芝,蘇凱雄,等.基于Web的鋰電池組管理系統(tǒng)[J].微型機與應用,2015,34(21): 21-23,33.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。