《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于存儲管理的北斗報文傳輸協(xié)議設(shè)計與應(yīng)用
基于存儲管理的北斗報文傳輸協(xié)議設(shè)計與應(yīng)用
2015年微型機與應(yīng)用第24期
李文金,蘇凱雄
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350002)
摘要: 針對特殊場景下需通過北斗短報文傳輸大量數(shù)據(jù)信息的需求,探討并設(shè)計了一種適合于北斗通信的長報文可靠傳輸協(xié)議框架。通過擴展北斗短報文傳輸協(xié)議,結(jié)合Redis應(yīng)用,提出最大重傳次數(shù)和超時等待控制因子,建立北斗長報文傳輸差錯重傳機制,從而解決了大數(shù)據(jù)量報文在北斗通道的傳輸問題。實驗結(jié)果表明,該傳輸協(xié)議可實現(xiàn)對長報文丟包的差錯重傳功能,有效控制“盲目發(fā)送”現(xiàn)象,使得有效信息率得到提高。
Abstract:
Key words :

  摘  要: 針對特殊場景下需通過北斗短報文傳輸大量數(shù)據(jù)信息的需求,探討并設(shè)計了一種適合于北斗通信的長報文可靠傳輸協(xié)議框架。通過擴展北斗短報文傳輸協(xié)議,結(jié)合Redis應(yīng)用,提出最大重傳次數(shù)和超時等待控制因子,建立北斗長報文傳輸差錯重傳機制,從而解決了大數(shù)據(jù)量報文在北斗通道的傳輸問題。實驗結(jié)果表明,該傳輸協(xié)議可實現(xiàn)對長報文丟包的差錯重傳功能,有效控制“盲目發(fā)送”現(xiàn)象,使得有效信息率得到提高。

  關(guān)鍵詞北斗衛(wèi)星;長報文;Redis;可靠傳輸

0 引言

  北斗衛(wèi)星導(dǎo)航系統(tǒng)所具備的短報文通信功能,可在我國領(lǐng)土區(qū)域內(nèi)實現(xiàn)全覆蓋、全天候服務(wù),具有傳送速度快、不受地形條件和環(huán)境氣候影響等優(yōu)勢,為解決遠(yuǎn)海、沙漠、深山等無移動網(wǎng)絡(luò)信號覆蓋地區(qū)的信息獲取和發(fā)布提供了一種有效的解決途徑。

  北斗衛(wèi)星導(dǎo)航系統(tǒng)的信道資源有限,短報文通信受到北斗卡的通信頻度和通信報文長度方面的限制。同時,受環(huán)境及設(shè)備狀態(tài)等影響,通信過程存在數(shù)據(jù)丟包現(xiàn)象。這些問題很大程度上影響了短報文的應(yīng)用效果[1]。實際應(yīng)用中,傳輸報文長度往往又是不固定的,傳輸?shù)臄?shù)據(jù)量較大時,單次北斗短報文通信無法滿足需求。如何有效利用北斗短報文通信資源,豐富其傳輸內(nèi)容并提高數(shù)據(jù)傳輸可靠性,成為北斗相關(guān)數(shù)據(jù)通信系統(tǒng)建設(shè)的一個重要課題。

  本文針對北斗報文傳輸應(yīng)用的實際需求,結(jié)合北斗數(shù)據(jù)信息服務(wù)平臺應(yīng)用,設(shè)計一種適合北斗長報文傳輸管理的方案。通過對傳輸數(shù)據(jù)進行協(xié)議約定,提出報文通信重傳控制因子和長報文信息補發(fā)請求機制,保證北斗終端與系統(tǒng)平臺之間報文的有效傳輸。

1 傳輸協(xié)議分析

  針對北斗短報文通信特點,結(jié)合信息服務(wù)平臺功能需求,設(shè)計基于存儲系統(tǒng)的長報文可靠傳輸框架協(xié)議,以解決數(shù)據(jù)信息服務(wù)系統(tǒng)的通信問題。

  1.1 系統(tǒng)組成


001.jpg


  本設(shè)計系統(tǒng)組成如圖1所示,主要包括:北斗通道端、數(shù)據(jù)處理中心、北斗終端、存儲系統(tǒng)和應(yīng)用系統(tǒng)。

  根據(jù)北斗信息服務(wù)平臺設(shè)計需求,內(nèi)存數(shù)據(jù)庫采用Redis系統(tǒng)。Redis是一款高性能的key-value存儲系統(tǒng),其讀寫效率高,可提高北斗短報文處理能力,降低響應(yīng)時間長度。配合協(xié)議設(shè)置及數(shù)據(jù)管理算法,可為長報文分包處理提供一種有效的解決方案。

  1.2 協(xié)議規(guī)約

  北斗短報文功能支持的單次傳輸長度有效,需要對北斗數(shù)據(jù)傳輸格式進行協(xié)議拓展[2],如圖2所示。

002.jpg

  本文為使短報文電文內(nèi)容攜帶控制信息,并豐富數(shù)據(jù)類型,對協(xié)議二次封裝[3],具體定義如下:

 ?。?)協(xié)議頭部:為了兼容和區(qū)分標(biāo)準(zhǔn)的北斗數(shù)據(jù)格式及平臺擴展協(xié)議格式,電文開頭設(shè)置協(xié)議編碼部分,占用半個字節(jié)。

 ?。?)數(shù)據(jù)標(biāo)識:占用半個字節(jié),每個比特字段分別代表一個標(biāo)識,如標(biāo)識是否壓縮、加密或補包數(shù)據(jù)等。

  (3)總包數(shù):占用1 B,長報文數(shù)據(jù)通過總包數(shù)大小字段來判斷數(shù)據(jù)是否需要進行數(shù)據(jù)緩存管理。

 ?。?)當(dāng)前分包編號:占用1 B,標(biāo)識當(dāng)前報文屬于分包數(shù)據(jù)的第幾個分包。如果數(shù)據(jù)不需要分包時,該數(shù)據(jù)字段的值和總包數(shù)字段的值都為1。

  (5)應(yīng)用協(xié)議編碼:占用1 B,標(biāo)識系統(tǒng)通信過程中的不同業(yè)務(wù)編碼。如語言、圖像、導(dǎo)航位置等。

 ?。?)應(yīng)用數(shù)據(jù)實體:為電文字段剩余可用部分,具體傳輸數(shù)據(jù)格式可由系統(tǒng)業(yè)務(wù)根據(jù)需要定義。

2 框架模型設(shè)計

  為解決報文發(fā)送的頻度和長度受限問題,本文采用北斗多卡機來處理報文收發(fā)工作,實現(xiàn)短報文的多卡工作模式[4],極大提高了短報文的發(fā)送頻度。

  數(shù)據(jù)處理整體流程結(jié)構(gòu)如圖3所示。

003.jpg

  2.1 協(xié)議設(shè)計

 ?。?)北斗報文協(xié)議

  北斗通道接入層設(shè)備使用的北斗用戶機接口協(xié)議包括4.0版本和2.1版本。通過軟件設(shè)計一個通用數(shù)據(jù)接入實現(xiàn)層,解決北斗數(shù)據(jù)源差異性問題。

 ?。?)數(shù)據(jù)傳輸控制

  北斗通信主要以大量的小字節(jié)數(shù)據(jù)為主,傳輸控制除對長報文數(shù)據(jù)編解碼外,還配合存儲系統(tǒng)實現(xiàn)對分包數(shù)據(jù)的重傳管理。

  下發(fā)分包數(shù)據(jù)時,先將數(shù)據(jù)存入Redis并設(shè)置有效期,分包發(fā)送結(jié)束后更新發(fā)送狀態(tài)。若在數(shù)據(jù)有效期內(nèi)收到重傳請求,則根據(jù)請求報文表明的編碼重發(fā)分包,并延長存儲數(shù)據(jù)的有效期,同時將重傳請求計數(shù)加1。若重傳超過N次,清除該存儲數(shù)據(jù),結(jié)束本條長報文的緩存管理。N值由系統(tǒng)能力設(shè)定,默認(rèn)為3。

  數(shù)據(jù)接收處理算法流程如圖4所示。

004.jpg

  2.2 緩存管理

  由于存儲的分包對象信息較多,本文采用Hash數(shù)據(jù)結(jié)構(gòu)管理數(shù)據(jù),并采用Redis默認(rèn)的數(shù)據(jù)過期策略處理無效數(shù)據(jù)。同時,本文對緩存對象結(jié)構(gòu)設(shè)置了數(shù)據(jù)發(fā)送標(biāo)識及發(fā)送次數(shù)計數(shù),以便差錯重傳過程中能有效識別重傳數(shù)據(jù)狀態(tài)。

  2.3 自適應(yīng)差錯重傳

  針對長報文數(shù)據(jù)傳輸過程中存在的丟包現(xiàn)象,參考文獻[5]中提出了反饋機制,但只有反饋機制的情況下,若通信成功率低,容易造成循環(huán)反饋或長時間等待反饋的現(xiàn)象,盲目請求重發(fā)嚴(yán)重浪費了北斗帶寬資源。參考文獻[6]提出了確認(rèn)答復(fù)機制,但在需要緩沖的數(shù)據(jù)量大時沒有提出對應(yīng)管理方式。本設(shè)計考慮北斗通信過程中實際通信流量限制等因素,差錯重傳方式參考并簡化TCP/IP傳輸機制。同時,為防止出現(xiàn)反復(fù)重復(fù)發(fā)送重傳請求或長時間等待補包數(shù)據(jù)帶來的資源開銷問題,引入了重傳控制因子,由請求計數(shù)N和補包等待時間T兩個因素共同組成。同時對重傳請求機制設(shè)定發(fā)送重傳請求次數(shù)的限制,并在接收補包數(shù)據(jù)過程中增設(shè)可動態(tài)調(diào)整等待長度機制。等待時間T=C×t,其中t為30 s的等待時間,C為丟包總數(shù)。若在N次的T時間內(nèi)都沒有收到補包數(shù)據(jù),則放棄請求重傳;若N次重傳請求中有收到補包數(shù)據(jù),但還沒接收完整且N>1時,重新賦值N為N/2,并重新執(zhí)行請求重傳過程。

  以接收端的丟包請求重傳為例,控制因子自適應(yīng)調(diào)整算法包含重傳請求控制和數(shù)據(jù)補包處理兩部分。重傳請求控制流程負(fù)責(zé)對Redis中存在的緩存數(shù)據(jù)進行重傳并管理控制因子參數(shù)N和T,具體流程如圖5所示。

005.jpg

  數(shù)據(jù)補包處理負(fù)責(zé)對補包報文進行處理,更新緩存數(shù)據(jù),并根據(jù)實際補包情況動態(tài)調(diào)整控制因子,具體流程如圖6所示。

006.jpg

3 測試分析

  測試協(xié)議框架過程采用北斗終端上報海洋漁業(yè)數(shù)據(jù)信息,測試設(shè)備均采用北斗多卡機設(shè)備,每個設(shè)備接入16張北斗卡。測試過程以發(fā)送230個漢字的長報文進行多組對比通信,部分測試數(shù)據(jù)如表1所示。

001.jpg

  從表1可看出,引入控制因子后,通信出現(xiàn)丟包時,平臺能夠自動完成補包請求報文,雖然會損耗報文用于發(fā)送重發(fā)請求,但通過控制因子的調(diào)整,避免了盲目發(fā)送請求的現(xiàn)象,提高了整體通信有效率。第二組數(shù)據(jù)有效通信率沒有得到有效提高,這是實際通信中受到環(huán)境影響,導(dǎo)致請求重發(fā)過程沒有得到有效的響應(yīng)。測試結(jié)果表明,本文的北斗報文可靠傳輸協(xié)議框架設(shè)計合理,能夠有效解決大數(shù)據(jù)量報文信息在北斗短報文傳輸過程中存在的丟包重傳問題,驗證了本方案的準(zhǔn)確性和可行性。

  4 結(jié)論

  隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)建設(shè)力度的不斷加大,基于北斗短報文通信的應(yīng)用也越來越多。本文在分析北斗衛(wèi)星導(dǎo)航短報文通信功能的特點基礎(chǔ)上,結(jié)合實際應(yīng)用需求,探討了基于存儲系統(tǒng)的報文可靠傳輸框架方案設(shè)計及實現(xiàn),對將北斗短報文通信更廣泛而深入地應(yīng)用在航空航海運輸、物聯(lián)網(wǎng)及地理監(jiān)測等方面具有一定的借鑒和參考意義,有助于北斗在信息化應(yīng)用中發(fā)揮更大作用。

  參考文獻

  [1] 史向陽.北斗系統(tǒng)在海上多媒體數(shù)據(jù)傳輸中的應(yīng)用研究[D].大連:大連海事大學(xué),2014.

  [2] 楊濤,黃森,鐘戎強,等.基于本體的北斗信息采集系統(tǒng)研究[J].電腦編程技巧與維護,2012(24):45-46,116.

  [3] Mao  Xia, Liu Xiang, Feng Tao, et al. A communication protocol of man overboard system based on BeiDou[C]. 2014 IEEE 17th International Conference on Intelligent Transportation Systems(ITSC), Qingdao, China, 2014: 1910-1911.

  [4] 繆袁泉,丁琪,胡知斌,等.基于北斗短報文功能的疏浚船舶數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].中國港灣建設(shè),2014(10):53-56.

  [5] 姚作新.基于北斗衛(wèi)星短信通信方式的無人值守自動氣象站網(wǎng)[J].氣象科技,2012,40(3):340-344.

  [6] 張維杰,陳歡,羅靜,等.基于北斗衛(wèi)星的機動衛(wèi)星通信地球站遠(yuǎn)端技術(shù)支援系統(tǒng)研究[J].微型機與應(yīng)用,2015,34(4):58-60,63.


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