韓冬 李泓杉 薛野
(航天東方紅衛星有限公司,北京 100094)
基于實時數據庫的小衛星數據監視工具設計
韓冬 李泓杉 薛野
(航天東方紅衛星有限公司,北京 100094)
提出了一種基于實時數據庫的小衛星數據監視工具設計方法,根據實時數據庫的技術特點,采用模塊化設計方式,將多種數據監視功能進行組合。該數據監視工具主要功能包括遙測參數、遙測幀包數據、遙控指令、遙控指令判讀數據、默認監視數據、自定義監視數據、遙測衍生數據、遙測基礎信息數據、測試過程事件等的實時監視。在數據處理方面采用共享內存和哈希算法,可保證數據讀寫的可靠性和數據刷新效率,便于測試人員快速了解衛星當前的工作狀態和健康狀態。
實時數據庫;小衛星;數據監視
航天器數據監視是指航天器在地面綜合測試過程中,依據判讀準則對航天器上行遙控指令和下行遙測數據進行相關性檢查,從而判斷航天器上各設備工作是否正常、接口是否正確、航天器功能和性能是否正常的過程[1]。航天器數據監視的特點是:①數據信息量大,航天器上行遙控令和下行遙測參數量超過數千條,參數刷新速率按照下行傳輸速率分為多種,數據的刷新量非常大;②數據及時性和準確性要求高,航天器測試系統是高精度測量系統,測試人員通過監視遙測參數,獲取航天器的工作狀態和健康狀態,遙測參數刷新顯示是否及時準確,對航天器綜合測試順利進行會產生很大影響;③數據關系復雜,航天器綜合測試過程中的遙測參數和遙控指令之間具有十分復雜的邏輯關系,參數與參數,參數與指令,指令與指令之間存在許多耦合。
以往的測試工具是按照分系統分類方式,將遙測處理結果以列表的形式顯示出來,供測試人員監視和記錄。一顆衛星的遙測參數大約在3000~5000條,遙控指令有1000~3000條。當有上行遙控指令發送時,測試人員需要根據判讀要求,查找遙控指令相關參數判據進行判讀和記錄。監視這些參數和指令對于測試人員來說需要極大的工作量。隨著航天器綜合測試技術的不斷進步,這種完全靠人工監視和判讀的方式,已不能滿足綜合測試智能化發展的需求。
本文根據小衛星數據監視需求,提出一種基于實時數據庫的小衛星數據監視工具的設計思路,按照功能模塊設計方式,將多種數據監視功能進行組合,用于整星測試過程中實時數據監視。
2.1 系統架構
基于實時數據庫的小衛星數據監視工具(以下簡稱數據監視工具)采用客戶端/服務器(C/S)架構,服務器上配置了SQL Server關系數據庫和Agilor實時數據庫。其中SQL Server關系數據庫主要用于存儲測試基礎信息數據,包括型號階段信息、遙測幀/包信息、遙測參數信息、遙控指令信息、判據信息、系統關系信息等。接口采用微軟數據對象(ActiveX Data Object,ADO)應用程序接口,數據查詢和獲取采用標準sql語句;Agilor實時庫主要用于存儲測試過程中產生的實時測試數據,包括遙測參數工程值和源碼、幀/包源碼、遙控指令、地面測試數據和指令。接口采用Agilor實時庫系統二次開發接口[2]。
實時數據庫是數據庫系統發展的一個分支,是實時系統技術和數據庫技術相綜合的產物[3]。考慮到數據監視工具對運行環境、數據處理、數據實時性的綜合要求。中國科學院軟件研究所自主開發的Agilor實時數據庫,主要功能包括管控一體化的數據集成平臺,能夠適用于Windows等主流系統平臺;采用C/S體系架構,數據庫服務器負責采集管理數據,客戶端應用程序訪問、處理來自服務器的信息;采用先進的壓縮技術,節省存儲空間的同時,保證數據存取的快捷性;良好的開放性和集成性,數據訪問和處理通過標準的應用程序接口實現。該實時數據庫具有高實時性、高數據吞吐量、通用系統平臺、接口規范的特點,完全滿足數據監視工具的需求。
2.2 功能模塊設計
數據監視工具采用模塊化設計方式[4],功能模塊包括基礎數據處理模塊、參數訂閱模塊、數據預處理模塊、包遙測顯示模塊、自定義顯示模塊、衍生處理模塊、默認參數顯示模塊、參數屬性模塊、指令通信模塊、判讀顯示模塊、事件監視模塊、配置管理模塊等。功能模塊的系統構成如圖1所示。

圖1 功能模塊的系統構成Fig.1 System structure of functional modules
(1)基礎數據處理模塊:連接外部的基礎信息數據庫,獲取測試基礎信息數據,包括遙測參數信息、遙控指令信息、指令判據信息,并且將測試基礎信息數據發送給數據預處理模塊。
(2)參數訂閱模塊:星上遙測數據進行解析后,生成實時參數工程值和源碼,再發送給實時數據庫進行存儲。參數訂閱模塊向外部的實時數據庫發送需要訂閱的參數,接收實時數據庫返回的實時參數工程值和源碼,并且將參數工程值和源碼發送給數據預處理模塊[5]。
(3)數據預處理模塊:開辟遙測結構數據緩存區,用于存儲來自基礎數據處理模塊的遙測參數信息和參數訂閱模塊的參數工程值和源碼。開辟指令結構數據緩存區,用于存儲來自基礎數據處理模塊的指令信息和指令判據信息;將遙測結構數據和指令結構數據,提供給包遙測顯示模塊、自定義顯示模塊、衍生處理模塊、默認參數顯示模塊、參數屬性模塊、判讀顯示模塊、事件監視模塊等調用。
(4)包遙測顯示模塊:首先通過數據預處理模塊獲取包遙測頁面顯示遙測參數;其次通過數據預處理模塊獲取相對應的包遙測結構數據;最后將獲取到的包遙測參數工程值和源碼實時顯示到包遙測頁面。
(5)自定義顯示模塊:首先讀取自定義頁面XML配置文件,獲取到自定義參數代號、自定義參數ID號、自定義參數描述;其次通過數據預處理模塊獲取自定義頁面相對應的遙測結構數據;最后將獲取到的自定義遙測參數工程值和源碼實時顯示到自定義頁面[6]。自定義頁面能夠將多個遙測包中的參數組合成新的遙測頁面,為測試人員提供個性化定制頁面,縮短了不同包數據監視時頁面切換和數據查找時間,提高了監視效率。
(6)衍生處理模塊:首先讀取衍生參數XML配置文件,獲取到衍生參數代號、衍生參數ID號、衍生參數描述、衍生參數表達式;其次對衍生表達式進行詞法和語法分析,判斷表達式正確后,提取表達式中相關參數信息,并從數據預處理模塊獲取相關參數的工程值;最后進行表達式的衍生計算得到衍生參數的工程值,并顯示在衍生參數頁面。衍生參數運算頁面能夠完成遙測參數二次處理并顯示,通過設置參數處理表達式可以將多個參數進行關聯處理,解決了復雜運算處理的數據監視問題。衍生參數運算頁面見圖2。
(7)默認參數顯示模塊:首先讀取默認參數XML配置文件,獲取到默認參數代號、默認參數ID號、默認參數描述;其次通過數據預處理模塊獲取默認頁面相對應的遙測結構數據;最后將獲取到的默認遙測參數工程值實時顯示到默認遙測頁面。默認參數顯示能夠將重要的遙測數據始終顯示在軟件最前端,方便測試人員對重要參數的監視,省去監視界面切換和參數查找時間。既提升了監視效率又保證了對重要參數實時監視。

圖2 衍生參數運算Fig.2 Derivative parameter calculation
(8)參數屬性模塊:首先獲取包遙測頁面和自定義遙測頁面所選取參數的參數代號;其次通過數據預處理模塊獲取該參數的遙測結構數據,最后將獲取到的遙測結構數據以列表的形式顯示在參數屬性頁面。參數屬性窗口用于快速獲取參數基礎信息,當參數處理錯誤時,能夠快速查看并分析參數處理問題。參數基礎信息包括,ID號、代號、描述、長度、屏蔽字、掩碼、處理方法、處理描述、原始值、工程值、刷新時間、參數精度。
(9)指令通信模塊:控制臺將上行遙控指令發送至MTP判讀服務器,MTP判讀服務器進行指令校驗后分發至遙控前端設備,遙控前端設備經過上行調制后發送到衛星。指令通信模塊實時接收來自外部MTP判讀服務器的指令廣播信息,并且將指令廣播信息發送給判讀顯示模塊和事件監視模塊,指令廣播信息為包含指令執行時間、指令ID號、指令碼字、指令描述、指令類型和指令執行結果的結構化數據。
(10)判讀顯示模塊:首先接收來自指令通信模塊的遙控指令廣播信息,其次通過數據預處理模塊獲取指令結構數據,再通過指令結構數據中的判據ID號獲取判據信息,從而得到和指令相關參數的遙測結構數據,最后將指令判據參數的遙測工程值和源碼實時顯示。當有下一條指令執行時,自動刷新為下一條指令的判據參數遙測工程值和源碼。同時可以選擇已執行過的指令,讀取相關判據參數參數遙測工程值和源碼。指令后判讀屬性窗口用于顯示指令執行后判據判據信息。當有指令執行時,該窗口實時顯示該條指令的后判據參數信息,便于測試人員快速查看指令相關判據遙測。可以有效提高指令判讀測試監視效率。
(11)事件監視模塊:首先接收來自指令通信模塊的事件指令廣播信息,其次通過數據預處理模塊獲取事件指令的結構化數據,最后將事件指令進行實時顯示并播報。
(12)配置管理模塊:管理監視工具的所有XML配置文件。
2.3 遙測結構化數據寫入與讀取原理
小衛星綜合測試過程中需要從實時數據庫訂閱遙測參數,衛星遙測參數刷新量約為1500個/秒,每秒需要同時完成1500個遙測參數的寫入和讀取,信息處理量約為3000次/秒,同時還要處理遙控指令和判讀數據等[7]。如果采用傳統數據處理方式,設定最大遙測數量范圍構造結構化數組,給每一個遙測參數分配一個內存空間,當有遙測參數更新時,先要找到該遙測結構數據的指針再進行寫入,遙測參數讀取時,還需要重新查找遙測結構數據指針。這種數據存取處理的效率很低、存在數據寫入和讀取沖突、數據更新不及時、容易產生內存泄漏、內存占用率高等諸多問題[8]。
本數據監視工具采用共享內存方式,以CMap類型寫入和讀取遙測結構化數據,根據遙測結構化數據個數動態分配存儲空間,提高了內存利用率。當有遙測參數更新時,按參數ID號作為索引,采用哈希查表算法快速定位遙測[9],數據寫入時采用臨界區方式處理寫入和讀取沖突。遙測結構數據讀取同樣采用哈希查表算法快速定位遙測。哈希查表法最大的優點是,把數據存儲、查找消耗的時間大大降低,是典型的內存空間換取查找時間的方法[10]。通過這種方式很好地解決了數據處理、讀寫沖突、內存泄漏方面的問題。提升數據處理效率的同時,保證了數據的準確性。
遙測結構化數據寫入過程為,當有參數更新時,參數訂閱模塊將參數更新數據發送給數據預處理模塊。數據預處理模塊通過參數ID號,將參數更新信息發送到參數CMap緩存,CMap緩存以參數ID號為索引,通過哈希查表法將更新數據發送給遙測結構數據;當數據預處理模塊需要讀取遙測結構數據時,數據預處理模塊將參數ID號發送到參數CMap緩存,CMap緩存以參數ID號為索引,通過哈希查表法找到對應的遙測結構數據,并將遙測結構數據返回給數據預處理模塊。遙測結構化數據存取原理見圖3。

圖3 遙測結構數據存取原理Fig.3 Principles of telemetry structure data access
遙測結構數據(MAIN_PARA)由遙測基礎信息結構(PARA_CFG)和遙測實時數據結構(PARA_VALUE)組成。遙測基礎信息結構數據從基礎數據庫獲取,數據內容包括參數ID號、參數代號、參數描述、參數類型、參數位置信息、參數長度、參數處理方法、參數精度、參數工程值/源碼、參數刷新時間。參數ID號為主鍵,作為參數唯一性標識;參數代號為參數結構數據自定義標識符號;參數描述為參數定義描述;參數類型為參數所屬類型,包括無符號整型、有符號整型、浮點型、字符型;參數位置信息為參數在幀遙測中的字節位置;參數長度為參數在幀遙測中字節長度;參數處理方法為參數解析為具體實數值時采用的處理方式,包括直讀、曲線、溫度、補碼、描述;遙測實時數據結構數據從實時數據庫獲取,數據內容包括參數精度為浮點型參數有效小數位數;參數工程值/源碼為參數處理完成后的工程數值與十六進制原始值,參數刷新時間為參數解析為工程值的時間。遙測結構化數據見圖4。

圖4 遙測結構化數據詳細信息Fig.4 Detailed information of telemetry structure data
基于實時數據庫的小衛星數據監視工具的設計是在現有小衛星數據監視需求的基礎上,結合未來測試數據監視發展趨勢,總結和歸納出的新型數據監視工具,對小衛星測試數據監視智能化具有重要意義。
(1)打破傳統數據監視方案,將多種數據監視功能進行整合。提供整星測試事件監視和健康狀態監視功能,使測試人員快速準確了解衛星當前工作狀態和健康狀態。
(2)有效提升了數據監視智能化水平,很好地解決了數據監視中過于依賴人工判讀和監視的問題。將大部分數據監視工作交給計算機來處理,提升工作效率的同時,增強了數據監視的準確性。
(3)強化了測試工具和測試技術的自主研發創新能力。通過對數據監視工具進行需求分析、設計、開發、調試、測試、交付使用,使自主研發經驗和能力得到進一步提升,對數據監視技術創新和發展起到積極的推進作用。
本文提出一種基于實時數據庫的小衛星數據監視工具的設計思路,通過設計基于實時數據庫的多種功能模塊,實現了衛星工作狀態和健康狀態的實時監視。
(1)將遙測參數、遙測幀包數據、遙控指令、遙控指令判讀數據、默認監視數據、自定義監視數據、遙測衍生數據、遙測基礎信息數據、測試過程事件監視等多種數據監視功能進行整合,具有功能的高集成性。通過整星測試事件監視和多種數據監視功能配合的方式,使測試人員快速準確地了解衛星當前的工作狀態和健康狀態。
(2)采用模塊化設計方式,各個功能模塊具有獨立的調用接口,便于后續二次開發和升級。
(3)參數處理采用共享內存方式,通過動態分配內存的方式解決了內存浪費的問題。通過劃分臨界區解決了內存數據同時寫入和讀取問題。將結構化數據以ID號作為索引信息,通過哈希查找方式解決了數據查找定位效率問題。這樣既保證數據寫入的可靠性,又提升了參數讀取和刷新的效率。
(4)具有較高的智能性,做到指令判讀過程實時監視,便于測試人員對當前指令的執行狀態快速判讀和記錄。遙測參數基礎信息可快速獲取和顯示,幫助測試人員快速分析遙測處理信息。具有用戶自定義和默認方式生成多種狀態顯示集合功能,幫助測試人員將不同刷新頻率的數據進行統一監視。具有遙測衍生參數計算功能,以表達式的處理方式,從多個關聯參數衍生出新的遙測參數并顯示,完善了遙測參數的關聯處理能力。
未來衛星測試數據監視發展將向著更加智能和全面的方向發展,測試人員只需要通過簡單的監視頁面即可了解衛星運行狀態。當有異常或問題發生時,判讀監視系統會自動預警和判斷,結合專家庫和推理機對異常問題進行排查,并給出分析和處理結果。
(References)
[1]王慶成.航天器電測技術[M].北京:中國科學技術出版社,2007:78-79 Wang Qingcheng.Electrical test technology of spacecraft[M].Beijing:China Science and Technology Press,2007:78-79(in Chinese)
[2]張勇,王堃,王強,等.基于實時數據庫的衛星測試平臺的設計與實現[J].計算機工程與設計,2009,30(2):336-337 Zhang Yong,Wang Fang,Wang Qiang,et al.Design and realization of satellite testing system based on realtime database[J].Computer Engineering and Design,2009,30(2):336-337(in Chinese)
[3]徐慧.實時數據庫中數據壓縮算法的研究[D].杭州:浙江大學,2006 Xu Hui.Research of data compression algorithm in real time database[D].Hangzhou:Zhejiang University,2006(in Chinese)
[4]孫瑋.實用軟件工程[M].北京:電子工業出版社,2011:15-20 Sun Wei.Applied software engineering[M].Beijing:Publishing House of Electronics and Industry,2011:15-20
[5]張維洲,蔣孟虎,楊平會,等.衛星遙測信息自動監視處理系統設計[J].航天器工程,2008,17(5):51-57 Zhang Weizhou,Jiang Menghu,Yang Pinghui,et al. System design for monitoring&processing the satellite telemetry automatically[J].Spacecraft Engineering,2008,17(5):51-57(in Chinese)
[6]羅毓芳,李強.一種在軌衛星星上事件狀態展示的實現途徑[J].飛行器測控學報,2010,29(3):39-42 Luo Yufang,Li Qiang.A method of visualized event display of satellite on-orbit status[J].Journal of Spacecraft TT&C Technology,2010,29(3):39-42(in Chinese)
[7]戴澗峰,袁媛,馮孝輝.基于工作流的小衛星自動化測試系統設計方法研究[J].計算機測量與控制,2011,19(12):2912-2915 DaiJianfeng,Yuan Yuan,Feng Xiaohui.Design of small satellite automatic test based on working flow[J]. Computer Measurement&Control,2011,19(12):2912-2915(in Chinese)
[8]侯朋朋,武延軍,謝沛東.高頻內存分配下內存泄露檢測的性能提升方法[J].計算機工程,2013,39(11):295-298 Hou Pengpeng,Wu Yanjun,Xie Peidong.Performance improvement method of memory leak detection under highly frequent memory allocation[J].Computer Engineering,2013,39(11):295-298(in Chinese)
[9]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2011:251-259 Yan Weimin,Wu Weimin.Data structure(C language)[M].Beijing:Tsinghua University Press,2011:251-259(in Chinese)
[10]趙大勇,丁振國.基于改進主動哈希的URL存儲和查找算法[J].微電子學與計算機,2008,25(4):35-38 Zhao Dayong,Ding Zhenguo.URL store and look-up algorithm based on improved aggressive hashing[J]. Microelectronics&Computer,2008,25(4):35-38(in Chinese)
(編輯:張小琳)
Design of Small Satellite's Data Monitoring Tool Based on Real-time Database
HAN Dong LI Hongshan XUE Ye
(DFH Satellite Co.Ltd.,Beijing 100094,China)
This paper introduces a design method of small satellite's monitor data tool based on real-time database.According to the technical characteristics of real-time database,this tool adopts module systematic structural design and combines multiple monitoring functions.The tool's main function is to monitor in real-time the data,including telemetry parameter,data of telemetry frame and package,telecommand data,telecommand judge information data,monitor the routine data,self-defined monitoring data,telemetry derivative data,telemetry basic information data,and the events in test process.The data processing adopts shared memory and Hash algorithm to ensure the reliability of data read/write and the efficiency of data refresh.The tool can make the testers know the satellite's current work state and health state fastly.
real-time database;small satellite;data monitoring
V557
:ADOI:10.3969/j.issn.1673-8748.2015.05.020
2015-08-24;
:2015-09-10
韓冬,男,碩士,工程師,從事小衛星綜合測試系統研發和測試工作。Email:ccechd@sina.com。