姜 斌, 徐振華, 葛振營, 楊樹國, 陳永華
基于北斗短報文的海洋觀測實時通信系統的設計與研發
姜 斌1, 2, 3, 徐振華2, 葛振營4, 楊樹國3, 陳永華2
(1. 青島科技大學機電工程學院, 山東 青島 266061; 2. 中國科學院海洋研究所, 山東 青島 266071; 3. 青島科技大學數理學院, 山東 青島 266061; 4. 青島科技大學體育學院, 山東 青島 266061)
北斗一代和北斗二代短報文每次通信數據長度只有78個字節, 每次通信后間隔60秒或者300秒才能進行下一次通信, 遠遠滿足不了海洋觀測實時通信的需求。設計了一套基于北斗短報文的海洋觀測實時通信系統, 北斗多卡機作為數據發送端, 采用哈夫曼壓縮算法將觀測數據壓縮后分成多個數據包, 通過多個北斗卡分別發送, 岸站接收系統接收到分包的數據后, 將接收的數據包解壓縮并整合成完整的觀測數據。哈夫曼壓縮算法將觀測數據壓縮50%左右, 將1組觀測數據壓縮后發送3次, 通過岸上3個月和海上1個月的測試, 觀測數據接收成功率達到了96%以上, 驗證了基于北斗短報文的海洋觀測實時通信系統的可行性和實用性。
Linux; 海洋觀測; 北斗衛星; 數據庫; 哈夫曼壓縮算法
實時海洋觀測需要將每次采集的數據實時傳回到岸站接收系統, 以幫助完成海洋科學研究和海洋預警等工作。目前, 海洋觀測的實時回傳主要依靠通信衛星完成, 常見的通信衛星包括銥星、天通和北斗衛星等[1]。相比于銥星、天通衛星, 北斗通信衛星不僅終端設備便宜, 而且沒有通信費, 做到了物美價廉。而且北斗衛星真正做到了端到端的通信, 具有很好的保密性[2], 如圖1所示, 海洋觀測數據通過北斗衛星通信模塊將觀測數據發送到北斗衛星, 北斗衛星將數據轉發到岸站接收系統的北斗衛星通信模塊, 整個過程沒有涉及地球站等地面通信設備, 保證了數據安全。

圖1 北斗衛星通信的端到端通信
目前, 海洋觀測通信還是以北斗一代和北斗二代短報文為主, 但是北斗一代和北斗二代短報文通信單條短報文長度只有78個字節, 通信頻率為60 s/條或者300 s/條, 顯然無法滿足實時海洋觀測通信需求。采用北斗多卡機作為數據發送模塊, 最多可以放置16張北斗卡, 每次最多發送16個短報文數據, 即每次通信數據長度最長為1 248個字節。根據海洋觀測數據的特點, 采用合適的壓縮算法, 可以提高北斗衛星通信數據量。北斗多卡機的功耗與單卡北斗模塊相當, 因此北斗多卡機也不存在功耗過大問題[3]。北斗短報文通訊本身可靠性較高, 但沒有反饋信息, 發送端無法知道接收端是否收到數據[4-5]。海洋觀測通過北斗多卡機將分包觀測數據發送到岸站后, 通過岸站接收系統接收分包數據, 將分拆的北斗數據重組恢復成原始的觀測數據, 再將數據分析、存儲和顯示, 以滿足海洋科學研究和海洋預警的要求。
聲學多普勒流速剖面儀(Acoustic Dopler Veloci-ty Profiler, ADCP)和溫鹽深儀(Temperature Condu-c-tivity Depth, CTD)是最常使用的海洋調查儀器, 本文將搭載2套ADCP和4套CTD的海洋觀測數據通過北斗多卡機發送回岸站, 采用哈夫曼壓縮算法對觀測數據進行壓縮, 以降低通訊帶寬, 為了保證數據接收的成功率, 每組觀測數據發送3次, 觀測數據接收成功率達到了96%以上, 驗證了基于北斗短報文的大數據量海洋觀測實時通信的可行性和實用性。
基于北斗短報文的海洋觀測實時通信系統的總體設計如圖2所示, 系統由海洋觀測設備、北斗衛星和岸基3部分組成, 海洋觀測設備由電子艙、連接纜和傳感器節點3部分組成, 在電子艙中, 電源為主控制器和北斗多卡機提供能源, 主控制器通過連接纜從傳感器獲得觀測數據, 對觀測數據處理分包后通過北斗多卡機將觀測分包數據發送到北斗衛星上, 北斗衛星再將觀測分包數據發送到岸基的岸站接收系統上。其中, 傳感器節點上的ADCP通過有線連接與實時海洋觀測電子艙連接, 傳感器節點上的CTD通過耦合連接與電子艙連接。

圖2 系統總體設計
電子艙中的主控制器采用Linux操作系統, 可以并行完成多項任務, 任務之間的數據交互通過數據庫完成, 電子艙中各個進程與傳感器節點、岸站接收系統的交互流程如圖3所示。ADCP進程、CTD進程和數據發送進程并行執行。ADCP傳感器是定時自動啟動, 觀測完多層的流速和流向后, 通過有線連接, 向主控制器發送觀測數據, 因此主控制器上的ADCP進程在ADCP傳感器開始工作時就一直等待ADCP, 接收到ADCP的觀測數據后, 將ADCP觀測數據存入數據庫中, ADCP進程結束; CTD傳感器需要喚醒后才能開始工作, 主控制器上的CTD進程開始后, 通過耦合連接喚醒CTD傳感器開始工作, 喚醒后的CTD傳感器開始采集溫度、鹽度和深度數據, 再通過耦合連接發送到主控制器, 主控制器上的CTD進程接收到CTD傳感器的數據后, 存入數據庫中, CTD進程結束; 數據發送進程開始后, 查詢數據庫中的數據是否有最新數據, 當CTD傳感器數據和ADCP傳感器新數據更新后, 將所有數據整合后壓縮, 經過數據分包, 將觀測分包數據通過北斗多卡機上的不同北斗卡發送到北斗衛星后, 數據發送進程結束。
北斗一代和北斗二代的短報文通信每次只有78個字節的通信量[6-7]。設計了1套簡單有效的數據通信格式, 在為重組觀測數據提供可靠保證的前提下, 盡量多地保留有效通信數據的字節數。如圖4所示, 北斗分包數據格式由觀測標記、包信息、有效數據和校驗組成。觀測標記由2個字節組成, 計數范圍為0~65 535, 以開始布放時間為起始時間, 每增加10 min, 觀測標記加1, 每次所有的觀測數據采用同一個觀測標記, 岸站接收系統接收到數據后, 可以根據觀測標記篩選出同一次的觀測數據, 并根據觀測標記計算出觀測時間; 包信息由1個字節組成, 由于北斗多卡機最多可以搭載16張北斗卡, 4個位即可表示完整, 因此設計包信息高4位表示1次觀測數據被分成了幾個包, 包信息低4位表示的是該包是第幾個包; 校驗由1個字節組成, 對分包數據進行CRC校驗, 以保證數據傳輸的準確性。
哈夫曼壓縮算法對出現頻率高的字符可以用較短的編碼表示, 實現壓縮效率最大化。由于海洋觀測系統的數據經常出現的字符高頻的比較多, 哈夫曼壓縮是比較適合的算法, 用于降低海洋觀測的數據量[8]。
哈夫曼壓縮算法的步驟如下:
(1)構造哈夫曼編碼表。遍歷海洋觀測數據, 得到每個字符出現的頻次, 將出現頻次最低的2個字符作為子節點, 左節點頻次大于右節點頻次, 構造分支節點, 同時將分支節點作為新字符, 頻次作為子頻數之和, 進行重新排序, 重復以上步驟直到所有字符編碼完成, 對編碼樹進行排序, 左節點為0, 右節點為1, 直到編碼樹底端, 根據編碼情況構造哈夫曼編碼表。
(2)轉碼壓縮。根據構造的哈夫曼編碼表將觀測數據轉換為0-1編碼, 每8個編碼進行1次分割, 作為1個字節數據寫入, 最后不足8位則需要補0, 直到剛好達到8位。將哈夫曼編碼表寫入。
圖5是哈夫曼壓縮算法的流程圖, 最后壓縮數據是由哈夫曼編碼表和編碼表組成的壓縮數據。解壓時, 根據哈夫曼編碼表將編碼表無損恢復成觀測數據。

圖5 哈夫曼壓縮算法流程圖
如圖6所示, 岸站接收系統通過北斗終端接收到分包的數據后, 將接收的數據包解壓整合成完整的觀測數據, 補位丟失的數據包、刪除冗余的數據包和重新排序數據包, 并將數據分析、存儲和顯示。岸站接收系統采用CS架構, 服務器端負責功能接收數據、整合數據和數據入庫, 客戶端負責從數據庫中獲得數據, 對數據分析、存儲和顯示。

圖6 實時海洋觀測的岸站接收系統
北斗終端接收到北斗衛星傳來的數據后, 將數據發送到服務器上, 服務器上的服務器端軟件首先將數據接收到數據庫A中, 數據庫A的存儲格式如表1所示。服務器上的服務器端軟件定時讀取數據庫A中的數據進行整合, 將恢復的觀測數據存儲到數據庫B中, 數據庫B的存儲格式如表2所示。

表1 數據庫A存儲格式

表2 數據庫B存儲格式
北斗分包數據整合的流程圖如圖7所示。開始后首先查找數據庫A中“已整合”標記為False的數據, 查找到后, 在數據庫B中查找該數據的觀測標記是否已經存在, 如果存在, 根據該數據的包序號將數據庫B中相同觀測標記的數據進行更新, 如果不存在, 根據觀測標記, 在數據庫B中插入該數據, 時間是根據觀測標記計算得到。在數據庫A中將該數據“已整合”標記為True, 判斷數據庫A中“已整合”標記是否全部為True, 如果不是, 繼續查找數據庫A中數據, 如果數據庫A中數據全部已經整合, 北斗分包數據整合結束。

圖7 北斗分包數據整合流程圖
實時海洋觀測系統的岸站接收系統的客戶端從服務器的數據庫B中申請到數據后, 按照解析規則, 將數據解析成有意義的參數。客戶端軟件根據功能劃分成最新數據、數據查詢和數據報表3個功能。
岸站接收系統客戶端軟件的最新數據功能如圖8所示, 將申請的最新數據解析成溫度、鹽度、深度和各層的流速、流向數據, 最新數據實時更新, 以幫助實時了解海洋的觀測情況。岸站接收系統客戶端軟件的數據查詢功能如圖9所示, 選擇任一設備的任一參數(圖9中選擇的是上海流的流速, 即ADCP朝向海面測量的各層海流流速), 再選擇任一時間段, 可以顯示該參數在該時間段內的曲線變化情況。岸站接收系統客戶端軟件的數據報表功能如圖10所示, 選擇任一設備(圖10中選擇的是上海流, 即ADCP朝向海面測量的各層海流流速), 再選擇任一時間段, 點擊導出按鈕, 即可以導出該時間段內該設備的所有數據, 并保存成文件, 為進一步的分析提供幫助。

圖8 岸站接收系統客戶端的最新數據功能

圖9 岸站接收系統客戶端的數據查詢功能

圖10 岸站接收系統客戶端的數據報表功能
聲學多普勒流速剖面儀(ADCP)和溫鹽深儀(CTD)是最常使用的海洋調查儀器, 本文將搭載2套ADCP和4套CTD的實時海洋觀測系統進行測試。ADCP觀測流速和流向, 設置觀測層數是20層, 分為向上測量和向下測量, 1套ADCP的數據量最多是250個字節, 1套CTD的數據量最多是60個字節, 因此, 2套ADCP和4套CTD的總數據量最多是
250×2+60×4=740 Bytes, (1)
每張北斗短報文卡每次發送的有效數據量是74個字節, 因此, 北斗多卡機理論上需要使用11張北斗短報文卡才可以滿足數據傳輸需求。由于海洋觀測數據中不同的觀測儀器采集頻率是不同的, 在解析數據的時候為了保持解析規則的統一性, 通常未觀測的數據補0以保證后面數據在正確的解析位置。使用哈夫曼壓縮算法, 補0后的數據不會增加數據長度, 減小了通訊數據長度。如圖11所示是使用哈夫曼壓縮算法實際測試的23 d左右的壓縮率, 測試過程中4臺觀測儀器是1次/h的觀測頻率, 1臺儀器是1次/2 h觀測頻率, 1臺儀器是12 h觀測1次, 可以明顯看到每12 h, 壓縮率會降低到40%以下, 每隔1個小時壓縮率會從54%左右降低到48%左右, 這是由于未觀測的儀器在數據位補0, 使用哈夫曼壓縮算法壓縮率增加。因此, 實際測試的過程中, 4~6張北斗卡就可以滿足測試需求。
如表3所示, 通過在岸上3個月的測試, 在相同數據只發送1次的情況下, 測試時長15 d, 數據的接收率為61.8%, 因此, 每次北斗接收數據的成功率為
=61.8%, (2)
由于一般令人滿意的數據接收率需要達到90%以上, 因此需要解(3)式中的值, 求得最小值為3, 因此, 理論上, 需要重復發送相同數據3次, 才可以達到令人滿意的接收率。

圖11 哈夫曼壓縮算法的壓縮率
(1–)≥90%, (3)
這里, 測試了相同數據重復發送2次和3次的情況。相同數據發送2次的情況下, 測試時長20 d, 數據的接收率為83.3%, 相同數據發送3次的情況下, 測試時長48 d, 數據的接收率為96.04%。可以看出, 基本每次北斗數據的接收都可以作為1個獨立的概率事件。因此, 在相同數據發送3次時, 可以達到令人滿意的接收率。圖12是海上測試的某一層的流速圖, 一共收到694條數據, 應該收到720條數據, 數據接收率為96.4%, 與岸上測試結果基本一致。
北斗短報文通訊沒有反饋信息, 通訊頻段與4G通訊頻段相近, 受到周圍環境的影響導致長時間的數據接收率在60%~70%左右。設計了一套基于北斗二代短報文的海洋觀測實時通信系統, 北斗多卡機作為數據發送端, 觀測數據接收成功率達到96%以上, 滿足絕大多數觀測業務的需求。
基于北斗短報文的海洋觀測實時通信系統通過電子艙中的主控制器將觀測數據經過哈夫曼壓縮算法壓縮后, 分包成適合北斗短報文發送的長度, 利用北斗多卡機將觀測數據發送到北斗衛星, 北斗衛星再發送到岸站接收系統的北斗終端上。岸站接收系統采用CS架構, 服務器端軟件將北斗終端接收的北斗短報文數據解壓縮后, 重新整合成觀測數據, 客戶端軟件從服務器的數據庫申請數據, 提供數據解析、存儲和顯示功能, 為進一步海洋科學分析和海洋預警提供幫助。經過實際測試, 哈夫曼壓縮算法對海洋觀測數據的壓縮率在50%左右, 可以有效解決由于采樣頻率不一致導致的補0數據占通訊帶寬的問題。由于北斗衛星屬于高軌衛星, 有一定的掉包率, 根據理論分析和實際測試, 數據重復發送3次基本可以滿足海洋數據的接收需求, 數據接收成功率達到96%以上。本文提供了1套具有實用性的基于北斗短報文的海洋觀測的實時通信方案。
[1] 孔佑迪, 門雅彬, 齊占輝, 等. 基于銥星通信的海洋環境在線監測系統[J]. 電子技術應用, 2015, 41(8): 27-29, 33.KONG Youdi, MEN Yabin, QI Zhanhui, et al. The on-line monitoring system of marine environment based on iridium satellite communication[J].Application of Electronic Technique, 2015, 41(8): 27-29, 33.
[2] 王春曉, 王旭, 劉長華, 等. 一種用于海洋綜合觀測浮標的多種通信方式集成系統[J]. 海洋科學, 2020, 44(1): 142-147. WANG Chunxiao, WANG Xu, LIU Changhua, et al. A multi-communication system used for an integrated marine observation buoy[J]. Marine Sciences, 2020, 44(1): 142-147.
[3] 汪嘉寧, 張祥光, 王凡. 基于單北斗模塊多卡數據傳輸方式的低功耗模組[P]. 中國專利: ZL201910421437.5, 2019-05-21.WANG Jianing, ZHANG Xiangguang, WANG Fan. Low power module based on single Beidou module and multi card data transmission method[P]. CN Patent: ZL201910421437.5, 2019-05-21.
[4] 賈爍, 李憲鵬, 張永輝. 基于北斗衛星的海洋水文實時監測系統[J]. 儀表技術與傳感器, 2018, 6: 109-117. JIA Shuo, LI Xianpeng, ZHANG Yonghui. Real-time marine hydrological monitoring system based on beidou satellite[J]. Instrument Technique and Sensor, 2018, 6: 109-117.
[5] 張茜, 張少永, 高超, 等. 基于北斗通信的海洋多要素觀測系統設計[J]. 海洋技術學報, 2019, 38(3): 28-33.ZHANG Qian, ZHANG Shaoyong, GAO Chao, et al. Design of a marine multi-elment observation system based on beidou communication[J]. Journal of Ocean Technology, 2019, 38(3): 28-33.
[6] 賈思洋, 劉長華, 王春曉, 等. 適用于中國近海觀測研究浮標的北斗/GPS雙模信標系統的研制與應用[J]. 海洋科學, 2022, 46(8): 137-145.JIA Siyang, LIU Changhua, WANG Chunxiao, et al. Research and application of the Beidou/GPS dual-mode beacon system for offshore marine observation and research buoys in China[J]. Marine Sciences, 2022, 46(8): 137-145.
[7] ZHANG Zhiteng, LI Bofeng, GAO Yang, et al. Asynchronous and time-differenced RTK for ocean applications using the BeiDou short message service[J]. Journal of Geodesy, 2023, 97(7): 1-14.
[8] 魏鵬, 李醒飛, 楊少波等. 嵌入式數據采集壓縮系統的設計[J]. 儀表技術與傳感器, 2020, 7(8): 122-126. WEI Peng, LI Xingfei, YANG Shaobo, et al. Design of embedded data acquisition and compression system[J]. Instrument Technique and Sensor, 2020, 7(8): 122-126.
Design and development of real-time communication system for ocean observation data based on Beidou short messages
JIANG Bin1, 2, 3, XUZhen-hua2, GE Zhen-ying4, YANG Shu-guo3, CHEN Yong-hua2
(1. College of Electromechanical and Engineering, Qingdao University of Science and Technology, Qingdao 266061, China; 2. Institute of Oceanology, Chinese Academy of Sciences, Qingdao 266071, China; 3. College of Mathematics and Physics, Qingdao University of Science and Technology, Qingdao 266061, China; 4. College of Physical Education, Qingdao University of Science and Technology, Qingdao 266061, China)
First- and second-generation Beidou short messages have a data length of only 78 bytes per communication, and the interval between successive communications is 300 s, which is insufficient for the real-time communication of ocean observations. A real-time communication system for ocean observation data based on Beidou short message is designed. The obtained data is sent through Beidou multicard machine by employing the Huffman compression algorithm to compress the observation data into multiple data packets. These subcontracted data are then transmitted through multiple Beidou cards, which are received by the shore station receiving system. Further, the received data package is decompressed and integrated into complete observation data. The Huffman compression algorithm is used to compress the observation data by about 50%. Moreover, each set of observation data is compressed and sent three times. After testing for three months on shore and one month at sea, the success rate of observation data reception was more than 96%. This verifies the feasibility and practicality of the real-time communication system for ocean observation based on Beidou short messages.
Linux; ocean survey; Beidou satellite; database; Huffman compression algorithm
May 8, 2023
[The Scientific and Technological Innovation Project Financially Supported by Laoshan Laboratory, No. LSKJ202202502; The National Natural Science Foundation of China, No. 92058202; The National Key Research and Development Program of China, No. 2022YFC3104102]
TN914-34; P715.2
A
1000-3096(2023)8-0068-07
10.11759/hykx20230508001
2023-05-08;
2023-06-27
嶗山實驗室科技創新項目(LSKJ202202502); 國家自然科學基金資助項目(92058202); 國家重點研發計劃資助項目(2022YFC3104102)
姜斌(1987—), 男, 山東煙臺人, 工程師, 博士, 主要從事海洋裝備研發與系統集成研究, E-mail: jiangbin@qdio.ac.cn; 陳永華(1976—),通信作者, 男, 山東棗莊人, 研究員, 主要從事海洋裝備研發與系統集成研究, E-mail: chenyonghua@qdio.ac.cn; 徐振華(1980—), 通信作者, 男, 山東青島人, 研究員, 主要從事海洋內波與混合研究, E-mail: xuzhenhua@qdio.ac.cn
(本文編輯: 譚雪靜)