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