《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實(shí)時(shí)性調(diào)度設(shè)計(jì)
基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實(shí)時(shí)性調(diào)度設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第12期
趙建坤,張大松,胡愛蘭,李建宏
華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 在星務(wù)管理系統(tǒng)軟件的設(shè)計(jì)開發(fā)中,為了更好地滿足系統(tǒng)的高實(shí)時(shí)性、高安全性、高可靠性等要求,提出采用實(shí)時(shí)性強(qiáng)的操作系統(tǒng)——VxWorks操作系統(tǒng)作為衛(wèi)星星務(wù)系統(tǒng)的核心。采用VxWorks操作系統(tǒng)的多任務(wù)調(diào)度機(jī)制,并結(jié)合基于時(shí)間片輪轉(zhuǎn)調(diào)度實(shí)現(xiàn)多任務(wù)設(shè)計(jì)算法的特點(diǎn),進(jìn)而制定出星務(wù)管理系統(tǒng)軟件的架構(gòu)。結(jié)果表明,該設(shè)計(jì)滿足衛(wèi)星星務(wù)系統(tǒng)軟件設(shè)計(jì)的可靠性、實(shí)時(shí)性的要求。
中圖分類號(hào): TP391.9
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.170141
中文引用格式: 趙建坤,張大松,胡愛蘭,等. 基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實(shí)時(shí)性調(diào)度設(shè)計(jì)[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ù)的不斷進(jìn)步,實(shí)時(shí)嵌入式操作系統(tǒng)得以廣泛應(yīng)用,而VxWorks操作系統(tǒng)在絕大多數(shù)的嵌入式操作系統(tǒng)中具有良好的實(shí)時(shí)性效果,它于1983年由美國的WindRiver公司設(shè)計(jì)出來。正是因?yàn)閂xWorks操作系統(tǒng)的高實(shí)時(shí)性的特性,它被廣泛應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中[1]。

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

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

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

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

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

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

jsj3-t1.gif

    圖1中任務(wù)1和任務(wù)2的優(yōu)先級(jí)相同,任務(wù)3的優(yōu)先級(jí)高于任務(wù)1和任務(wù)2,任務(wù)4的優(yōu)先級(jí)高于任務(wù)3。任務(wù)1和任務(wù)2按照基于時(shí)間片輪轉(zhuǎn)的調(diào)度算法根據(jù)時(shí)間片的長度輪詢占用CPU資源;當(dāng)任務(wù)3來到時(shí),搶占了任務(wù)1的資源,任務(wù)1被掛起,而任務(wù)3開始執(zhí)行;當(dāng)任務(wù)4到來時(shí),搶占了任務(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è)計(jì)

2.1 架構(gòu)分析

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

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

jsj3-t2.gif

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

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

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

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

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

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

jsj3-t3.gif

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

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

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

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

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

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

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

jsj3-gs1-3.gif

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

jsj3-t4.gif

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

2.3 多任務(wù)間通信

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

2.3.1 信號(hào)量

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

jsj3-t5.gif

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

2.3.2 消息隊(duì)列

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

jsj3-t6.gif

3 分析驗(yàn)證

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

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

jsj3-t7.gif

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

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

jsj3-t8.gif

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

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

4 結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

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

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



作者信息:

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

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

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