《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實時性調(diào)度設(shè)計
基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實時性調(diào)度設(shè)計
2017年電子技術(shù)應(yīng)用第12期
趙建坤,張大松,胡愛蘭,李建宏
華北計算機系統(tǒng)工程研究所,北京100083
摘要: 在星務(wù)管理系統(tǒng)軟件的設(shè)計開發(fā)中,為了更好地滿足系統(tǒng)的高實時性、高安全性、高可靠性等要求,提出采用實時性強的操作系統(tǒng)——VxWorks操作系統(tǒng)作為衛(wèi)星星務(wù)系統(tǒng)的核心。采用VxWorks操作系統(tǒng)的多任務(wù)調(diào)度機制,并結(jié)合基于時間片輪轉(zhuǎn)調(diào)度實現(xiàn)多任務(wù)設(shè)計算法的特點,進而制定出星務(wù)管理系統(tǒng)軟件的架構(gòu)。結(jié)果表明,該設(shè)計滿足衛(wèi)星星務(wù)系統(tǒng)軟件設(shè)計的可靠性、實時性的要求。
中圖分類號: TP391.9
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.170141
中文引用格式: 趙建坤,張大松,胡愛蘭,等. 基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實時性調(diào)度設(shè)計[J].電子技術(shù)應(yīng)用,2017,43(12):116-119.
英文引用格式: Zhao Jiankun,Zhang Dasong,Hu Ailan,et al. Design of satellite management system software of multi task real time scheduling based on VxWorks[J].Application of Electronic Technique,2017,43(12):116-119.
Design of satellite management system software of multi task real time scheduling based on VxWorks
Zhao Jiankun,Zhang Dasong,Hu Ailan,Li Jianhong
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: In the process of the design and development of star management system software, in order to satisfy the requirements of high real-time performance, high security and high reliability, this paper proposes a real-time operating system VxWorks operating system as the core of the satellite service system. VxWorks operating system employs the multi-task scheduling mechanism, combined with the method of calculation based on the round robin scheduling, moreover, developing the architecture of star management system. The results manifests that in the premise of fulfilling the satellite on-board system software design requirements, the real-time performance is improved.
Key words : satellite management system;VxWorks RTOS;multi task scheduling mechanism

0 引言

    隨著科學(xué)技術(shù)的不斷進步,實時嵌入式操作系統(tǒng)得以廣泛應(yīng)用,而VxWorks操作系統(tǒng)在絕大多數(shù)的嵌入式操作系統(tǒng)中具有良好的實時性效果,它于1983年由美國的WindRiver公司設(shè)計出來。正是因為VxWorks操作系統(tǒng)的高實時性的特性,它被廣泛應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實時性要求極高的領(lǐng)域中[1]。

    目前,對于航天事業(yè)的發(fā)展不斷深入,對星務(wù)管理系統(tǒng)軟件的功能越來越多,越來越復(fù)雜,同時性能要求也越來越高,而在這樣的復(fù)雜多任務(wù)的情況下,同樣需要保證任務(wù)處理的實時性[2]。

    為此,本文以VxWorks操作系統(tǒng)為核心,分析星務(wù)管理系統(tǒng)軟件的基本功能任務(wù),結(jié)合VxWorks操作系統(tǒng)高效的實時性多任務(wù)調(diào)度、中斷管理以及實時的系統(tǒng)資源等特點,設(shè)計討論在諸多星務(wù)任務(wù)情況下,確保每個任務(wù)能夠被合理調(diào)度,提高星務(wù)管理系統(tǒng)軟件的高可實時性要求。

1 VxWorks的多任務(wù)特性

    VxWorks操作系統(tǒng)采用微內(nèi)核的設(shè)計風(fēng)格,由微內(nèi)核提供基本的多任務(wù)環(huán)境及對多任務(wù)進行管理[3]。在VxWorks操作系統(tǒng)中,每個任務(wù)都會具有就緒狀態(tài)、掛起狀態(tài)、延遲狀態(tài)、休眠狀態(tài)4種基本的狀態(tài)[4]。

    這些任務(wù)的狀態(tài)會隨著調(diào)用相應(yīng)的系統(tǒng)函數(shù)發(fā)生從當(dāng)前狀態(tài)跳轉(zhuǎn)為相應(yīng)的下一個狀態(tài),在任何狀態(tài)下的任務(wù)也都能夠被刪除。

    VxWorks提供了兩種任務(wù)調(diào)度算法:基于任務(wù)優(yōu)先級的搶占式調(diào)度算法、基于時間片輪轉(zhuǎn)的調(diào)度算法。對于具有多任務(wù)環(huán)境下的系統(tǒng),必須采用以上的其中一種調(diào)度算法,并將CPU的資源賦給處于就緒狀態(tài)的任務(wù)。而對于高實時性要求的系統(tǒng),若能將以上兩種任務(wù)調(diào)度的協(xié)調(diào)配合很好地實現(xiàn)在系統(tǒng)中,系統(tǒng)的實時性便能得到更好的保證。時間片輪轉(zhuǎn)的調(diào)度及優(yōu)先級的搶占式調(diào)度結(jié)合實例如圖1所示。

jsj3-t1.gif

    圖1中任務(wù)1和任務(wù)2的優(yōu)先級相同,任務(wù)3的優(yōu)先級高于任務(wù)1和任務(wù)2,任務(wù)4的優(yōu)先級高于任務(wù)3。任務(wù)1和任務(wù)2按照基于時間片輪轉(zhuǎn)的調(diào)度算法根據(jù)時間片的長度輪詢占用CPU資源;當(dāng)任務(wù)3來到時,搶占了任務(wù)1的資源,任務(wù)1被掛起,而任務(wù)3開始執(zhí)行;當(dāng)任務(wù)4到來時,搶占了任務(wù)3的資源,任務(wù)3被掛起,任務(wù)4開始執(zhí)行;當(dāng)任務(wù)4執(zhí)行完畢后,任務(wù)3被喚醒繼續(xù)執(zhí)行;當(dāng)任務(wù)3執(zhí)行完畢后,任務(wù)1被喚醒并繼續(xù)執(zhí)行。

2 星務(wù)管理系統(tǒng)軟件多任務(wù)設(shè)計

2.1 架構(gòu)分析

    在復(fù)雜的星務(wù)管理系統(tǒng)軟件中,需要考慮軟件的復(fù)用性、各個任務(wù)的內(nèi)聚性和耦合性,從而保證星務(wù)管理系統(tǒng)軟件高可靠性[5]。為此,結(jié)合VxWorks操作系統(tǒng)的特點,可將星務(wù)管理系統(tǒng)軟件分為4層:板級包驅(qū)動層、系統(tǒng)內(nèi)核層、由VxWorks提供的公共系統(tǒng)函數(shù)層以及應(yīng)用層。

    圖2為星務(wù)管理系統(tǒng)軟件的結(jié)構(gòu)圖。

jsj3-t2.gif

    圖2中,板級包驅(qū)動層提供與硬件接口的底層驅(qū)動程序,包括對中斷控制器的初始化、定時器的初始化、串口的初始化等其他硬件的初始化;系統(tǒng)內(nèi)核層是整個系統(tǒng)的核心層,它為多任務(wù)提供管理、任務(wù)間切換、調(diào)度分配CPU資源和對一些異常情況進行處理;公共系統(tǒng)函數(shù)層則起到了很好中間層作用,為應(yīng)用層訪問系統(tǒng)內(nèi)核層提供了系統(tǒng)接口函數(shù);應(yīng)用層實現(xiàn)復(fù)雜的任務(wù)處理,如:姿態(tài)控制任務(wù)、遙測控制任務(wù)、軌跡控制任務(wù)、載荷控制任務(wù)、溫度控制任務(wù)等。

2.2 多任務(wù)調(diào)度

2.2.1 基于任務(wù)優(yōu)先級的搶占式調(diào)度設(shè)計

    由第1節(jié)介紹有關(guān)VxWorks多任務(wù)特性的設(shè)計思想,根據(jù)星務(wù)管理系統(tǒng)軟件自身功能的需要,對任務(wù)進行合理有效的劃分和優(yōu)先級適當(dāng)?shù)脑O(shè)置,可以較好地簡化星務(wù)管理系統(tǒng)軟件的復(fù)雜度,也可以增加星務(wù)管理系統(tǒng)軟件的穩(wěn)定性。保證任務(wù)調(diào)度的正確性,則更好地保證了整個系統(tǒng)實時性[6]。

    星務(wù)管理系統(tǒng)軟件按照設(shè)置周期性地運行,通過內(nèi)部總線和網(wǎng)絡(luò)接收內(nèi)部傳感器和外部指令控制單元的命令和數(shù)據(jù),經(jīng)分析可對相應(yīng)的任務(wù)進行控制操作。根據(jù)星務(wù)管理系統(tǒng)軟件各功能特點,本文對一部分基本任務(wù)進行劃分,各個任務(wù)的優(yōu)先級由高到低分別為:(1)看門狗定時器中斷處理任務(wù);(2)遙控接收分析數(shù)據(jù)任務(wù);(3)飛行軌跡任務(wù);(4)姿態(tài)控制任務(wù);(5)載荷控制任務(wù);(6)遙測采集任務(wù);(7)溫度控制任務(wù);(8)數(shù)據(jù)存取任務(wù)。

    圖3為星務(wù)管理系統(tǒng)軟件任務(wù)運行關(guān)系圖。

jsj3-t3.gif

    圖3中,對于星務(wù)管理系統(tǒng)軟件的初始化任務(wù)也可視為父任務(wù),由父任務(wù)創(chuàng)建各個任務(wù)。設(shè)計中看門狗任務(wù)的優(yōu)先級最高,這是為了保證系統(tǒng)在運行中,當(dāng)出現(xiàn)異常情況導(dǎo)致整個系統(tǒng)死機或者癱瘓時,看門狗中斷處理函數(shù)會被觸發(fā),令整個系統(tǒng)進入重啟,保證了整個系統(tǒng)的安全性、可靠性;遙控接收分析數(shù)據(jù)任務(wù)的優(yōu)先級要高于看門狗中中斷處理任務(wù)以外的其他任務(wù),遙控接收分析數(shù)據(jù)的結(jié)果將會影響到其他任務(wù)內(nèi)的執(zhí)行流程;數(shù)據(jù)存取任務(wù)的優(yōu)先級最低,因為任何任務(wù)都可以搶占其CPU資源,所以需要為數(shù)據(jù)存取任務(wù)開辟一段較大的數(shù)據(jù)存儲緩存,保證當(dāng)被高于數(shù)據(jù)存取任務(wù)優(yōu)先級的任務(wù)搶占資源后,不會丟失需要存儲的數(shù)據(jù),保證數(shù)據(jù)的完整性、可靠性。

    通過以上分析不難得出,在對以上任務(wù)進行時間片劃分時,對于看門狗任務(wù)以及遙控接收分析數(shù)據(jù)任務(wù)的時間片設(shè)置時間應(yīng)盡量短,而其他任務(wù)的時間片設(shè)置應(yīng)適當(dāng)合理,進而保證整個系統(tǒng)的實時性。

2.2.2 基于時間片輪轉(zhuǎn)的調(diào)度設(shè)計

    在沒有接收到指令要求改變衛(wèi)星姿態(tài),或者調(diào)整衛(wèi)星運行軌跡時,姿態(tài)任務(wù)和軌跡任務(wù)應(yīng)當(dāng)會按照初始設(shè)定的姿態(tài)和軌跡執(zhí)行[7],即這每個任務(wù)按照時間片輪轉(zhuǎn)方式進行調(diào)度。

    不同型號的處理器芯片有不同的工作頻率,因此,設(shè)星務(wù)管理系統(tǒng)軟件的調(diào)度周期為TS。以飛行軌跡任務(wù)、姿態(tài)控制任務(wù)、遙測采集任務(wù)和數(shù)據(jù)存取任務(wù)為例,分別為以上4個任務(wù)分配時間片,具體參數(shù)如表1所示。

jsj3-b1.gif

    根據(jù)表1可以確定星務(wù)管理系統(tǒng)軟件的調(diào)度周期最小為:TS=20te。為了便于任務(wù)分配,可將星務(wù)管理系統(tǒng)軟件的調(diào)度周期細(xì)化成幾段小周期f。小周期f需要滿足如下條件:

    (1)小周期f≥最大執(zhí)行時間(t);

    (2)小周期f能夠被星務(wù)管理系統(tǒng)軟件的調(diào)度周期TS整除;

    (3)因為調(diào)度執(zhí)行發(fā)生在每個小周期的開始,為了便于確定在時限到達前,任務(wù)是否可以完成,要求在任務(wù)開始和到達時限之間至少有個小周期f的時間,可用式(1)表示:

jsj3-gs1-3.gif

    綜合以上3個條件得到的結(jié)構(gòu)可以得出小周期f的取值為4te。由此可以繪制出一個調(diào)度周期為TS=20te的調(diào)度結(jié)果圖,如圖4所示。

jsj3-t4.gif

    圖4中,T1、T2、T3和T4分別代表行軌跡任務(wù)、姿態(tài)控制任務(wù)、遙測采集任務(wù)和數(shù)據(jù)存取任務(wù)。根據(jù)表1和圖4中對每個任務(wù)的時間片的劃分,通過上述計算可以保證每個任務(wù)能夠被正確、合理地調(diào)度,保證了整個系統(tǒng)的實時性。

2.3 多任務(wù)間通信

    星務(wù)管理系統(tǒng)軟件的復(fù)雜多任務(wù)之間需要一些通信機制來協(xié)調(diào)各自的活動[5]。VxWorks操作體系提供任務(wù)間通信的方式包括:信號量、消息隊列、管道、共享內(nèi)存和Socket套接字等。在本系統(tǒng)軟件中采用了信號量和消息隊列兩種任務(wù)間通信方式。

2.3.1 信號量

    本文星務(wù)管理系統(tǒng)軟件采用二進制信號量的同步和互斥功能,來改變每個任務(wù)的狀態(tài)機。如圖5所示,在遙控接收分析數(shù)據(jù)任務(wù)中,根據(jù)數(shù)據(jù)分析得到需要發(fā)生變化的任務(wù)指令,進而釋放對應(yīng)任務(wù),如:姿態(tài)控制任務(wù),令姿態(tài)控制任務(wù)改變原來姿態(tài)為當(dāng)前指令需要的姿態(tài)。

jsj3-t5.gif

    在數(shù)據(jù)存取任務(wù)時,在數(shù)據(jù)緩存區(qū)二進制信號量的互斥功能,保證在寫數(shù)據(jù)時不去進行讀數(shù)據(jù)操作,讀數(shù)據(jù)時不進行寫數(shù)據(jù)操作,確保數(shù)據(jù)的準(zhǔn)確性。

2.3.2 消息隊列

    本文星務(wù)管理系統(tǒng)軟件采用消息隊列的FIFO方式,用于遙測采集任務(wù)和數(shù)據(jù)存取任務(wù)間的通信,根據(jù)需求設(shè)置消息的大小,當(dāng)遙測傳感器采集到數(shù)據(jù)后,將采集處理的數(shù)據(jù)通過消息隊列發(fā)送給數(shù)據(jù)存取任務(wù),并在數(shù)據(jù)存取任務(wù)占用CPU資源時將數(shù)據(jù)記錄存儲,如圖6所示。

jsj3-t6.gif

3 分析驗證

    根據(jù)第2節(jié)對星務(wù)管理系統(tǒng)軟件的設(shè)計分析,使用Tornado2.2開發(fā)環(huán)境中搭建星務(wù)管理系統(tǒng)軟件,實現(xiàn)遙控接收分析數(shù)據(jù)任務(wù)、飛行軌跡任務(wù)、姿態(tài)控制任務(wù)、溫度控制任務(wù)、數(shù)據(jù)存取任務(wù)等多任務(wù)之間的切換,以及多任務(wù)之間的通信。

    采用Tornado2.2開發(fā)環(huán)境的WindViwe調(diào)試工具來觀測星務(wù)管理系統(tǒng)軟件多任務(wù)并發(fā)運行的結(jié)果,如圖7所示。

jsj3-t7.gif

    圖7中顯示飛行任務(wù)、姿態(tài)控制任務(wù)以及讀取數(shù)據(jù)任務(wù)在遙控指令任務(wù)的協(xié)調(diào)下,進行任務(wù)的切換和任務(wù)之間的通信,數(shù)據(jù)采集任務(wù)和數(shù)據(jù)存儲任務(wù)的優(yōu)先級要低于其他任務(wù),并沒有影響到采集數(shù)據(jù)任務(wù)以及采集數(shù)據(jù)的分析處理任務(wù)的運行。

    在每個任務(wù)中加入輸出語句代碼來進一步驗證本系統(tǒng)能夠保證多任務(wù)合理的執(zhí)行。通過Tornado2.2開發(fā)環(huán)境的調(diào)試后臺觀察結(jié)果,如圖8所示。

jsj3-t8.gif

    從圖8中可以看出,當(dāng)姿態(tài)控制任務(wù)和軌跡任務(wù)接收到指令時,發(fā)生了姿態(tài)以及軌跡的改變;能夠?qū)崟r地檢測、采集、分析溫度變化,并根據(jù)溫度的變化反應(yīng)溫度的適度情況。

    通過以上驗證描述,表明了對于星務(wù)管理系統(tǒng)軟件的多任務(wù)的設(shè)計合理性,同時也能夠保證軟件框架的有效性,滿足星務(wù)管理系統(tǒng)軟件的實時性的要求。

4 結(jié)論

    本文描述了一個基于VxWorks實時操作系統(tǒng)的星務(wù)管理系統(tǒng)軟件多任務(wù)實時性調(diào)度設(shè)計和實現(xiàn)。根據(jù)本文描述中的設(shè)計方法,通過模擬測試結(jié)果表明了多任務(wù)調(diào)度的可靠性、整體軟件架構(gòu)的有效性,并滿足實時性的要求。本文描述的設(shè)計方法將移植到某架構(gòu)平臺上進一步進行驗證。

參考文獻

[1] 周啟平,張楊.VxWorks下設(shè)備驅(qū)動程序及BSP開發(fā)指南[M].北京:中國電力出版社,2004.

[2] 李孝同.小衛(wèi)星星務(wù)管理技術(shù)[J].中國空間科學(xué)技術(shù),2001,2(1):29-36.

[3] 包海超,楊根慶,李華旺.小衛(wèi)星星載軟件微內(nèi)核的設(shè)計[J].計算機工程,2008,34(9):81-82.

[4] 王才善,陳光武.基于VxWorks的實時多任務(wù)程序設(shè)計機制分析[J].鐵路計算機應(yīng)用,2009,18(5):12-15.

[5] 王婷,朱莊生.星務(wù)管理軟件框架設(shè)計與實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2010,22(1):30-33.

[6] 李俊.VxWorks下多任務(wù)間通信方式的比較與分析[J].科技資訊,2009(25):24-25.

[7] 張凱,趙宏坤,劉海濤.CX-l小衛(wèi)星實時多任務(wù)操作系統(tǒng)的設(shè)計[J].量子電子學(xué)報,2002,19(2):158-161.



作者信息:

趙建坤,張大松,胡愛蘭,李建宏

(華北計算機系統(tǒng)工程研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。