本站小編為你精心準備了淺談小衛星可復用軟件技術參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:小衛星應用領域的不斷擴展、功能和結構的日趨復雜以及數量的急劇攀升,使得星載軟件的規模和復雜度快速增加,軟件可復用性設計變得愈加重要;首先分析了面向體系應用的星載軟件功能和技術需求,然后對星載軟件體系架構進行了分層模塊化設計,最后針對星務中心計算機軟件,詳細描述了星載軟件框架的靜態結構,動態結構以及可復用構件的運行模式;在小衛星向體系化應用發展的趨勢下,分層模塊化軟件體系架構和軟件框架技術將提高星載軟件的可復用性,為實現小衛星快速集成,快速測試和快速生產打下重要基礎。
關鍵詞:小衛星;軟件體系架構;軟件框架技術;軟件構件
引言
經過近30年的發展,小衛星在各領域的應用已全方位展開,包括遙感、通信、導航、空間探測、空間科學研究、技術演示驗證等。隨著效費比的不斷提升,小衛星逐漸成為全球航天發展熱點,發射數量急劇增長,在民用、軍用和商業航天體系中占據越來越重要的地位。小衛星應用領域的不斷擴展、功能和結構的日趨復雜,以及數量的急劇攀升,必然要求星載軟件具有與之相適應的軟件體系結構和可復用設計模式。針對這種情況,世界各個航天技術強國均在積極探索,希望找到低成本、高效率、短周期的衛星軟件開發方式。2005年,美國空軍研究實驗室提出了SPA體系結構(SpacePlug-and-PlayAvi-onics)和衛星數據模型,通過即插即用特性來支持衛星軟件快速集成[1-2]。2010年,NASAAMES航天中心提出了SMART(theSmallMulti-purposeAdvancedReconfigu-rableTechnology)架構以實現低成本可重構小衛星的設計和開發[3]。歐空局提出了基于時空劃分的模塊化綜合電子軟件架構[4]。洛克希德馬丁公司開發了基于JAVA的分布式體系結構,支持面向服務的航天器模型,通過規范化的服務來支持上層軟件的復用[52]。德國Constance大學和瑞士ETHZurich大學提出了OBS(On-BoardSoftware)軟件框架和AOCS(AttitudeandOrbitControlSystem)軟件框架等技術來提高星載軟件設計開發的可復用性和可擴展性[6-7]。在衛星標準化上,空間數據系統咨詢委員會提出了星上互聯協議和標準接口服務(SOIS:spacecraftonboardinterfaceservices)[8]。本文首先分析了面向體系應用的星載軟件功能和技術需求,然后對星載軟件體系架構進行了分層模塊化設計,最后針對星務主機軟件,詳細描述了基于軟件框架和構件技術的星載軟件靜態結構,動態結構以及可復用構件的運行模式。
1面向體系應用的星載軟件功能和技術需求
1.1功能需求和功能關系界面
面向體系應用,星載軟件應該具有如下功能:1)支持虛擬衛星的任務設計迭代過程;通過衛星數據和服務模型來支撐任務策劃階段的衛星任務仿真、開發和迭代調試過程;2)支持星載設備快速開發調試;通過通用軟件框架和衛星數據和服務模型支持星載軟件的開發、調試和虛擬聯試;3)支持整星AIT階段的快速測試;提供各分系統自測試功能實現平臺,實現各分系統的快速自測試,配合整星系統測試;4)支持衛星發射場階段的快速任務裝訂;可以根據不同優先級的發射預案,靈活快速的對任務參數進行裝訂,如任務軌道、任務位置、數據傳輸說明、臨時地面站等信息;5)實現衛星的各項在軌功能。如圖1所示,星載軟件的功能涉及空間體系中的各個組成部分和各個操作階段。
1.2星載軟件的技術需求
面向體系應用的星載軟件應該具有三個主要技術特點:軟件的可復用性;軟件運行的硬件平臺無關性;軟件開發的快速性;這三個技術特點決定著星載軟件的技術需求,主要包括:軟件框架技術、軟件中間件(即軟總線技術)技術、衛星數據和服務模型技術。軟件框架技術是實現軟件可重構,可復用的關鍵技術。軟件框架通過建立可復用的領域模型,然后依據領域模型產生出該領域應用軟件的體系結構,以此為基礎識別、提煉和開發該領域的構件,形成構件庫,同時將控制流抽象為軟件功能接口,最后通過例化實現具體的星載軟件。軟件中間件技術是實現硬件平臺無關性的關鍵途徑。中間件軟件駐留在多個星載設備節點上,屏蔽了底層硬件具體信息,管理連接到這些節點上的設備和服務。衛星數據和服務模型是面向體系應用星載軟件快速開發的重要技術。該模型對硬件設備的功能進行抽象描述,為軟件集成提供數據和服務支持。該技術從數據的角度來描述衛星,將傳統意義上衛星各個分立設備的功能用“數據模型”和“服務”來分類描述,以便于衛星軟件的設計、維護和擴展。
2星載軟件體系架構設計
2.1星上綜合電子系統介紹
國內小衛星一般采用分布式設計,如圖2所示,包括星務主機、星上網絡、嵌入式管理執行單元(managementexecutiveunit,MEU)和星上其它設備。星上網包括星上控制網和信息網兩種。星上控制網將星上各功能模塊有機地連接起來,實現星上信息交換和共享,實時地完成星上運行的管理、測量、控制和任務調度,實現衛星運行操作控制。星上信息網作為整星高速信息總線,實現星上大容量的信息交換、處理和傳送。嵌入式管理執行單元實現各設備的網絡通信的接口[9]。
2.2星載軟件體系架構設計
為了實現面向體系應用的星載軟件,需要從整星的角度對星上軟件進行設計。整星軟件的體系結構如圖3所示,包括管理層、功能層、服務層、協議層。管理層包括衛星配置管理,衛星平臺管理和衛星載荷任務管理以及系統故障診斷與恢復管理;功能層提供管理層各個模塊所需的各種服務,例如飛行動力學計算模塊、能源管理模塊、通信管理模塊等;服務層就像駐留在每個星上網節點上的軟件交換機(或軟件總線)一樣實現縱向和橫向的數據交換。協議層主要包含各種硬件設備的驅動。圖3中的軟件體系結構是從整星的角度對軟件進行分層設計,從單機角度來看,每個單機不一定具有所有的層次。如圖4所示,例如星務主機具有任務的所有層次,某些星上設備只具有中間件層和協議層。在這種軟件體系結構中,中間件層同軟件交換機一樣完成縱向和橫向的數據交換。
3星載核心控制軟件框架設計
3.1軟件靜態框架設計
星載核心控制軟件的靜態框架包括四層:管理層、功能層、服務層和協議層,如圖5所示。管理層包括同步管理構件、遙測管理構件、遙控管理構件、故障診斷恢復管理構件、控制器管理構件、在軌操作構件、數據流管理構件,這些構件主要實現各層功能構件的協調和管理。功能層主要包括各種算法構件、數據池和事件池。管理層構件是實現軟件框架技術的核心組成部分。1)同步管理構件:整個軟件的運行嚴格地遵守時間片約定,該構件用于對各層構件的同步運行管理;2)遙測管理構件:用于調度相關的功能層構件向數據池發送最新的遙測數據,或者從數據池中收集所需要的遙測數據;3)遙控管理構件:用于從事件池中讀取并解析遙控指令,根據解析結果向事件池發送消息;4)故障診斷恢復管理構件:該功能構件包括了兩部分,一部分位于管理層,用于對事件池中的故障消息進行檢測并作出相應的處理。另一部分嵌入在服務層構件和協議層構件上用于報告故障消息,并接收管理層的故障診斷恢復指令。5)控制器管理構件:用于對各個算法構件運行的管理;6)在軌操作管理構件:用于根據遙控指令和控制器管理構件運行的結果完成對各種驅動器的操作控制;7)數據流管理構件:用于對數據池和事件池的管理和更新操作。
3.2軟件動態框架設計
星載核心控制軟件的動態框架如圖6所示。在單位運行周期內,軟件運行分為若干個時隙,每個時隙中運行管理層的部分管理構件。在運行管理層構件時,該構件會完成其余三層相關功能的調用。此外,在每個時隙中都存在一個刷新存儲系統的背景任務。例如,時隙1={同步管理;遙控管理;故障診斷恢復管理;數據流管理};時隙3={同步管理;控制器管理;故障診斷恢復管理;數據流管理;在軌操作管理}。管理層中的每個構件都對應著動態變化的對象鏈表。這些對象鏈表的節點分別對應著各種算法對象,遙測數據對象,異常消息對象等。管理層構件運行時,將輪詢鏈表中的對象節點。對象節點中包括該對象的數據和對該類數據需要進行的操作。如圖7所示,以同步管理構件對應的同步對象鏈表和遙測管理構件對應的遙測數據對象鏈表為例,當同步管理構件運行時會輪詢管理層各個構件。當輪詢到遙測管理構件時,遙測管理構件調用其對應的遙測數據對象鏈表,如果有新的數據產生,遙測管理構件不對遙測數據進行操作,而是由遙測數據對象中的操作(類中的成員函數)負責將新數據送至數據池中,完成遙測數據采集的工作。這種運行機制實現了領域模型和具體特例的解耦,從而提高了軟件的可復用性。
4試驗結果與分析
以小衛星為例,其核心控制軟件即星務中心計算機軟件采用多任務加多中斷的工作模式,來滿足多狀態多功能需求的實時性操作要求。控制軟件由系統軟件和應用軟件組成,主要負責衛星運行期間的遙控數據管理、遙測數據發送管理、星上時間系統的管理、溫度測量和溫控的管理、整星各分系統和設備的管理、整星信息資源的調度和分配管理以及整星安全運行管理等,是衛星能夠正常運行的核心系統。系統軟件主要包括實時多任務操作系統和中斷服務程序。應用軟件主要由數據處理程序及運行管理程序組成,根據所需完成的功能,主要包括初始化任務、調度管理任務、遙控遙測數據處理任務、時間程控任務、內存刷新任務等模塊,各模塊構成靜態框架層中的管理層部分,管理層的實施運行完成整星功能的構建。通過將軟件靜態框架進行分層設置,應用軟件開發人員即可不必關注協議層的具體操作方式,主要通過設置各任務間的序列方式、對不同任務內部的具體功能進行具體化修改達到完成整星預設功能的目的如圖8所示。星務中心計算機軟件采用實時操作系統,為多任務運行模式。首先在初始化任務中執行初始化功能、創建各種其它的功能任務,再通過中斷機制每秒激活調度管理任務,由該任務按照一定順序和要求依次調用遙控遙測任務、時間程控任務、內存刷新等任務。軟件運行動態控制流程如圖9所示。每個任務在基于DFH-OS系統的基礎上,在軟件初始時設置好優先級,軟件開始運行后,即按照默認順序執行,完成整星的數據管理功能。為了保證在軌軟件的正確運行及應對不同突發情況導致的軟件變更,整星軟件中運行有故障診斷恢復模塊和上注任務模塊。當對遙測輪詢采集數據構成的數據池進行特定數據分析,如果選取的特征數據在一定時間達到軟件內容的預設條件,整星軟件將根據預先設計好的算法邏輯采取動作,保證軟件恢復到正確狀態;同時由于整星一些參數在前期的不確定性,并需保證軟件的可復用性和測試覆蓋性,因此在整星測試階段,首先預設好相關參數,對可變化的參數設置變更鏈接,然后進行整星測試,待最終一些參數確定后,通過上注變更相應鏈接即可達到完善最終軟件的目的,增強軟件的復用性。當無法通過更新計劃內的構件對應的對象鏈表來達到完善修改軟件的目的時,即當衛星在軌運行期間出現一些突發意外情況需要變更某些未計劃改變的軟件構件時,此時即可通過上注附加任務來完成變更,既保證了軟件的完整性和復用性,又能適應多種不同情況保證正確性。基于該靜態和動態結構設計,針對某具體小衛星星務中心計算機軟件,軟件設計師在開發軟件階段,選擇好復用軟件構件部分后,可只重點關注特定型號的特定需求及各中斷模塊、各任務模塊之間的關聯及變化,無須關注修改模塊內部的具體實施方式。以某些衛星數據為例,經統計,星務中心計算機軟件新增加的、修改的代碼行數約占代碼總行數的10%~20%,可復用的代碼行數約占代碼總行數的80%~90%,極大地提高了軟件的可復用性。
5結論
在小衛星向體系化應用發展的趨勢下,星載軟件規模和復雜性快速提高,軟件可復用性設計變得日益重要。本文在分析了面向體系應用的星載軟件功能需求和技術需求的基礎上,對小衛星典型軟件體系架構進行了設計,提出采用軟件框架技術實現軟件可復用性設計。該框架技術通過軟件構件、對象鏈表和數據池實現了領域模型和具體特例的分離,實現了星載軟件的復用性,為星載軟件的快速開發、測試和集成打下良好的基礎。
參考文獻:
[9]李孝同,施思寒,李冠群.微小衛星綜合電子系統設計[J].航天器工程.2008,17(1):30-35.
作者:郝佳寧 劉暢 韓延東 馬磊 單位:航天東方紅衛星有限公司