嵌入式系統(tǒng)軟件體系結(jié)構(gòu)設(shè)計(jì)
掃描二維碼
隨時隨地手機(jī)看文章
摘?? 要:?本文采用嵌入式實(shí)時系統(tǒng)軟件設(shè)計(jì)方法對星載姿軌控計(jì)算機(jī)系統(tǒng)進(jìn)行設(shè)計(jì),軟件系統(tǒng)采用層次模塊化結(jié)構(gòu)。采用嵌入式實(shí)時操作系統(tǒng)連接姿軌控應(yīng)用程序和底層硬件,文中給出了姿軌控計(jì)算機(jī)軟件系統(tǒng)設(shè)計(jì)流程圖、軟件應(yīng)用層縱橫結(jié)合型結(jié)構(gòu),以及任務(wù)模塊調(diào)度管理的仿真結(jié)果。
關(guān)鍵詞:?嵌入式實(shí)時操作系統(tǒng); 軟件結(jié)構(gòu);? 姿軌控計(jì)算機(jī)系統(tǒng)
引言 軟件體系結(jié)構(gòu)是對軟件各高層抽象的理解,必須在較早階段對軟件進(jìn)行體系結(jié)構(gòu)層的分析,其中算法和數(shù)據(jù)結(jié)構(gòu)的選擇處在軟件體系結(jié)構(gòu)的較低層次上。系統(tǒng)結(jié)構(gòu)的問題包括:用一系列組件來組織一個系統(tǒng),全局控制結(jié)構(gòu),通信、同步和數(shù)據(jù)存取協(xié)議,設(shè)計(jì)元件之間功能的劃分,物理的分布方式,系統(tǒng)運(yùn)行狀況的估計(jì)和測量,演化方向,設(shè)計(jì)模式的選擇等,這些都是設(shè)計(jì)階段的軟件體系結(jié)構(gòu)。
傳統(tǒng)星載軟件的設(shè)計(jì)方法、開發(fā)手段已不能適應(yīng)日益復(fù)雜的需求,采用微內(nèi)核的實(shí)時操作系統(tǒng)作為軟件的系統(tǒng)結(jié)構(gòu)是一種縮短開發(fā)周期、調(diào)試方便有效的快速解決方案。經(jīng)過比較,在采用32位微處理器的前提下選用vxworks嵌入式實(shí)時操作系統(tǒng)。圖1 縱橫結(jié)合型體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)分析與總體設(shè)計(jì)
目前比較普遍的體系結(jié)構(gòu)有:
管道和過濾器型
這種體系結(jié)構(gòu)中每個組件有一系列輸入和一系列輸出,一個組件從它的入口讀取數(shù)據(jù)流,在它的出口產(chǎn)生數(shù)據(jù)流。組件就是過濾器,在組件之間傳送數(shù)據(jù)的接口即管道。
面向?qū)ο蟮慕M織方式
數(shù)據(jù)和它的原始操作是封裝在對象內(nèi)部,對象通過事件驅(qū)動來協(xié)同工作。對象要保證內(nèi)部數(shù)據(jù)的正確性和對外實(shí)現(xiàn)方法的隱藏性。
共享存儲體型
包含兩種不同的組件,中心數(shù)據(jù)結(jié)構(gòu)代表當(dāng)前狀態(tài),一系列獨(dú)立的組件來操縱中心數(shù)據(jù)存儲,并通過中心存儲體相互通訊。
解釋機(jī)型
用軟件產(chǎn)生的一個虛擬機(jī),模仿其他機(jī)器,解釋并執(zhí)行特定的指令序列。
垂直型
包含一系列類,并將它們組織成層次和線索。層次是在相同抽象層次的一系列類。線索是一類子系統(tǒng),它們之間存在調(diào)用與被調(diào)用的關(guān)系,在執(zhí)行后,完成一個子系統(tǒng)的功能。
層次型
一個分層系統(tǒng)中,每一層向它的上一層提供服務(wù),同時使用它的下一層提供的服務(wù)。這種結(jié)構(gòu)支持基于抽象層次的設(shè)計(jì)、演化和重用。層次型又分為橫向型、縱向型與縱橫結(jié)合型。
橫向體系結(jié)構(gòu),是指某一個軟件系統(tǒng)可分為多個層次,層次之間的組件關(guān)系較為簡單,只有上層組件調(diào)用下層組件的關(guān)系,而同一層次內(nèi)部各組件之間的聯(lián)系較為密切,相互之間傳送消息比較頻繁。在采用體系結(jié)構(gòu)的基礎(chǔ)上,按信息流來劃分邊界,信息流內(nèi)部再劃分子系統(tǒng)。
縱向體系結(jié)構(gòu)中包含層次和線索兩個概念。層次是指在相同的抽象層次上的一系列組件,而線索是子系統(tǒng)的特例,指所包含的一系列組件用于完成一個功能。縱向的軟件結(jié)構(gòu)具有可理解性、可適應(yīng)性、可重用性。
縱橫結(jié)合型體系結(jié)構(gòu)中,一個組件不僅在垂直方向與其他組件發(fā)生關(guān)系,同時在水平方向也與其他組件發(fā)生作用。針對衛(wèi)星姿軌控系統(tǒng)的需求,軟件系統(tǒng)采用縱橫結(jié)合型體系結(jié)構(gòu)。
在姿軌控軟件結(jié)構(gòu)設(shè)計(jì)上要力求簡單,模塊化結(jié)構(gòu)的軟件易于單獨(dú)開發(fā)而后集成,在按照共同的數(shù)據(jù)接口開發(fā)后,便于測試,若在軌運(yùn)行過程中出現(xiàn)問題,易于查找錯誤和排除錯誤,從而到達(dá)提高可靠性的目的。在設(shè)計(jì)小衛(wèi)星軟件系統(tǒng)的過程中,可以借鑒“模塊化公用艙”和“軟件總線”思想,對星載嵌入式軟件系統(tǒng)的開發(fā)采用模塊化軟構(gòu)件來設(shè)計(jì)軟件的功能模塊,從而提高軟件開發(fā)的效率、程序的質(zhì)量,并改進(jìn)維護(hù)方式。圖2? 設(shè)計(jì)流程圖圖3 仿真圖圖4? 仿真圖
從軟件角度,姿軌控軟件主要完成以下功能:設(shè)置系統(tǒng)工作模式、部件工作狀態(tài);接收星務(wù)總線傳來的軌道參數(shù)、在軌編程信息等;實(shí)時采集數(shù)據(jù)并進(jìn)行處理;根據(jù)控制律,計(jì)算控制指令,對太陽或地球跟蹤定向;在軌檢測、系統(tǒng)重構(gòu)等??蓪⑿禽d控制計(jì)算機(jī)軟件分為三部分:系統(tǒng)引導(dǎo)程序、系統(tǒng)軟件、應(yīng)用軟件。設(shè)計(jì)流程與任務(wù)調(diào)度方式
實(shí)時操作系統(tǒng)為應(yīng)用軟件和其它模塊提供運(yùn)行環(huán)境和多任務(wù)管理。應(yīng)用軟件通過設(shè)備驅(qū)動模塊采集敏感部件的姿態(tài)信息和gps接收機(jī)的軌道信息,進(jìn)行控制規(guī)律的解算,并通過設(shè)備驅(qū)動模塊控制執(zhí)行機(jī)構(gòu)和太陽帆板。程序和數(shù)據(jù)注入模塊通過數(shù)據(jù)總線獲得地面的程序或者數(shù)據(jù)注入到應(yīng)用軟件;遙測遙控數(shù)據(jù)管理模塊通過數(shù)據(jù)總線與地面測控系統(tǒng)進(jìn)行數(shù)據(jù)和指令的傳輸。
姿軌控應(yīng)用程序在實(shí)現(xiàn)上由多個任務(wù)協(xié)同工作完成,在結(jié)構(gòu)上分為多任務(wù)調(diào)度管理任務(wù)(或稱