嵌入式系統軟件體系結構設計
摘 要: 本文采用嵌入式實(shí)時(shí)系統軟件設計方法對星載姿軌控計算機系統進(jìn)行設計,軟件系統采用層次模塊化結構。采用嵌入式實(shí)時(shí)操作系統連接姿軌控應用程序和底層硬件,文中給出了姿軌控計算機軟件系統設計流程圖、軟件應用層縱橫結合型結構,以及任務(wù)模塊調度管理的仿真結果。
關(guān)鍵詞: 嵌入式實(shí)時(shí)操作系統; 軟件結構; 姿軌控計算機系統
引言
軟件體系結構是對軟件各高層抽象的理解,必須在較早階段對軟件進(jìn)行體系結構層的分析,其中算法和數據結構的選擇處在軟件體系結構的較低層次上。系統結構的問(wèn)題包括:用一系列組件來(lái)組織一個(gè)系統,全局控制結構,通信、同步和數據存取協(xié)議,設計元件之間功能的劃分,物理的分布方式,系統運行狀況的估計和測量,演化方向,設計模式的選擇等,這些都是設計階段的軟件體系結構。
傳統星載軟件的設計方法、開(kāi)發(fā)手段已不能適應日益復雜的需求,采用微內核的實(shí)時(shí)操作系統作為軟件的系統結構是一種縮短開(kāi)發(fā)周期、調試方便有效的快速解決方案。經(jīng)過(guò)比較,在采用32位微處理器的前提下選用Vxworks嵌入式實(shí)時(shí)操作系統。
圖1 縱橫結合型體系結構設計
軟件體系結構分析與總體設計
目前比較普遍的體系結構有:
管道和過(guò)濾器型
這種體系結構中每個(gè)組件有一系列輸入和一系列輸出,一個(gè)組件從它的入口讀取數據流,在它的出口產(chǎn)生數據流。組件就是過(guò)濾器,在組件之間傳送數據的接口即管道。
面向對象的組織方式
數據和它的原始操作是封裝在對象內部,對象通過(guò)事件驅動(dòng)來(lái)協(xié)同工作。對象要保證內部數據的正確性和對外實(shí)現方法的隱藏性。
共享存儲體型
包含兩種不同的組件,中心數據結構代表當前狀態(tài),一系列獨立的組件來(lái)操縱中心數據存儲,并通過(guò)中心存儲體相互通訊。
解釋機型
用軟件產(chǎn)生的一個(gè)虛擬機,模仿其他機器,解釋并執行特定的指令序列。
垂直型
包含一系列類(lèi),并將它們組織成層次和線(xiàn)索。層次是在相同抽象層次的一系列類(lèi)。線(xiàn)索是一類(lèi)子系統,它們之間存在調用與被調用的關(guān)系,在執行后,完成一個(gè)子系統的功能。
層次型
一個(gè)分層系統中,每一層向它的上一層提供服務(wù),同時(shí)使用它的下一層提供的服務(wù)。這種結構支持基于抽象層次的設計、演化和重用。層次型又分為橫向型、縱向型與縱橫結合型。
橫向體系結構,是指某一個(gè)軟件系統可分為多個(gè)層次,層次之間的組件關(guān)系較為簡(jiǎn)單,只有上層組件調用下層組件的關(guān)系,而同一層次內部各組件之間的聯(lián)系較為密切,相互之間傳送消息比較頻繁。在采用體系結構的基礎上,按信息流來(lái)劃分邊界,信息流內部再劃分子系統。
縱向體系結構中包含層次和線(xiàn)索兩個(gè)概念。層次是指在相同的抽象層次上的一系列組件,而線(xiàn)索是子系統的特例,指所包含的一系列組件用于完成一個(gè)功能??v向的軟件結構具有可理解性、可適應性、可重用性。
縱橫結合型體系結構中,一個(gè)組件不僅在垂直方向與其他組件發(fā)生關(guān)系,同時(shí)在水平方向也與其他組件發(fā)生作用。針對衛星姿軌控系統的需求,軟件系統采用縱橫結合型體系結構,如圖1所示。
在姿軌控軟件結構設計上要力求簡(jiǎn)單,模塊化結構的軟件易于單獨開(kāi)發(fā)而后集成,在按照共同的數據接口開(kāi)發(fā)后,便于測試,若在軌運行過(guò)程中出現問(wèn)題,易于查找錯誤和排除錯誤,從而到達提高可靠性的目的。在設計小衛星軟件系統的過(guò)程中,可以借鑒“模塊化公用艙”和“軟件總線(xiàn)”思想,對星載嵌入式軟件系統的開(kāi)發(fā)采用模塊化軟構件來(lái)設計軟件的功能模塊,從而提高軟件開(kāi)發(fā)的效率、程序的質(zhì)量,并改進(jìn)維護方式。
圖2 設計流程圖
圖3 仿真圖
圖4 仿真圖
從軟件角度,姿軌控軟件主要完成以下功能:設置系統工作模式、部件工作狀態(tài);接收星務(wù)總線(xiàn)傳來(lái)的軌道參數、在軌編程信息等;實(shí)時(shí)采集數據并進(jìn)行處理;根據控制律,計算控制指令,對太陽(yáng)或地球跟蹤定向;在軌檢測、系統重構等??蓪⑿禽d控制計算機軟件分為三部分:系統引導程序、系統軟件、應用軟件。
設計流程與任務(wù)調度方式
實(shí)時(shí)操作系統為應用軟件和其它模塊提供運行環(huán)境和多任務(wù)管理。應用軟件通過(guò)設備驅動(dòng)模塊采集敏感部件的姿態(tài)信息和GPS接收機的軌道信息,進(jìn)行控制規律的解算,并通過(guò)設備驅動(dòng)模塊控制執行機構和太陽(yáng)帆板。程序和數據注入模塊通過(guò)數據總線(xiàn)獲得地面的程序或者數據注入到應用軟件;遙測遙控數據管理模塊通過(guò)數據總線(xiàn)與地面測控系統進(jìn)行數據和指令的傳輸。軟件結構設計流程如圖2所示。
姿軌控應用程序在實(shí)現上由多個(gè)任務(wù)協(xié)同工作完成,在結構上分為多任務(wù)調度管理任務(wù)(或稱(chēng)為Schedule任務(wù))、遙測遙控任務(wù)、故障診斷及系統重構任務(wù)、程序和數據注入任務(wù)、系統工作模式管理任務(wù)、姿態(tài)確定與控制、軌道控制等應用任務(wù)模塊。
作為多任務(wù)操作系統,為了突出實(shí)時(shí)性,降低系統調度的開(kāi)銷(xiāo),它的任務(wù)并不是真正的任務(wù)而是線(xiàn)程。姿軌控系統各個(gè)任務(wù)可以工作在系統級或者應用級,而且有許多不同的運行方式,這些都可以在使用中自由選擇,軟件設計人員有很大的靈活性。因此在姿軌控軟件的設計中,要充分考慮到嵌入式軟件的設計特點(diǎn),合理利用它的特性。
在整個(gè)姿軌控系統中多任務(wù)管理任務(wù)工作于系統級,其他的任務(wù)均工作于應用級。工作于系統級的任務(wù)有更高的權限且受到操作系統的保護,這樣可以防止應用程序對系統程序的誤操作,Schedule任務(wù)負責對其他任務(wù)的管理,工作于系統級。在其他的任務(wù)中與硬件相關(guān)的底層任務(wù)優(yōu)先級較高,其中故障檢測與恢復任務(wù)級別最高,其次是遙測遙控管理任務(wù),最后是姿態(tài)系統I/O任務(wù)。
在姿軌控軟件系統中,所有的任務(wù)都被設置成可以被中斷的工作方式,以充分發(fā)揮硬件中斷的作用,在一定程度上提高了程序運行的并行度。在任務(wù)調度上,所有任務(wù)都工作在可剝奪的調度方式下,即在任何時(shí)刻,只要有一個(gè)任務(wù)進(jìn)入就緒狀態(tài)而且優(yōu)先級高于正在運行的任務(wù),則立即掛起當前的任務(wù),轉而執行新的任務(wù),直到這個(gè)任務(wù)執行完成后,再喚醒原來(lái)被掛起的低優(yōu)先級任務(wù)。
多任務(wù)調度管理的仿真實(shí)現
采用開(kāi)發(fā)工具Tornado,運用系統集成仿真器VXSIM來(lái)進(jìn)行任務(wù)模塊調度的仿真。仿真時(shí)考慮一種特殊情況:遙測遙控任務(wù)taskTelemetry打斷模式管理任務(wù)taskManager的執行,但在遙測遙控任務(wù)執行的過(guò)程中,系統發(fā)生了故障,則遙測遙控任務(wù)也被故障檢測及系統重構任務(wù)taskFaultdeal中斷,待系統故障處理完后恢復執行taskTelemetry任務(wù),完成后再恢復執行工作模式管理任務(wù)。其仿真結果如圖3所示。
針對衛星姿軌控系統的需求,應用軟件系統采用縱橫結合型層次體系結構。通過(guò)姿軌控系統工作模式管理模塊對各應用軟件任務(wù)模塊的調用來(lái)完成姿軌控應用軟件系統的功能。在每執行完一個(gè)任務(wù)后,自動(dòng)讀取任務(wù)模塊調度表中的下一個(gè)任務(wù),通過(guò)計算,確定下次任務(wù)開(kāi)始執行的時(shí)間,并開(kāi)始計時(shí),時(shí)間到達后,據飛行任務(wù)模式字等內容創(chuàng )建并運行相應的姿軌控應用任務(wù)模塊。對于需要再次調用的任務(wù)在運行完后掛起,等下次用時(shí)激活運行即可;對于不會(huì )再次調用的任務(wù)則在運行完后刪除,以免占用空間。
根據衛星的工作模式,采用二維結構體數組Table[][]來(lái)定義任務(wù)模塊調度表。作為數組元素的構體變量包括任務(wù)名taskname、任務(wù)優(yōu)先級taskpri、任務(wù)標志位taskflag等,其中任務(wù)名、任務(wù)標志位定義為字符串數組,如下所示:
struct scheduleTable
{char taskname[12];
int taskpri;
char taskflag[8];
}Table[][];
采用雙重循環(huán)語(yǔ)句來(lái)讀寫(xiě)任務(wù)模塊調度表,調用相應任務(wù)模塊,從而實(shí)現系統工作模式的管理,完成姿態(tài)軌道控制任務(wù)。模塊調度表定義為modenum
評論