《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VxWorks的星務管理系統(tǒng)軟件多任務實時性調度設計
基于VxWorks的星務管理系統(tǒng)軟件多任務實時性調度設計
2017年電子技術應用第12期
趙建坤,,張大松,,胡愛蘭,李建宏
華北計算機系統(tǒng)工程研究所,,北京100083
摘要: 在星務管理系統(tǒng)軟件的設計開發(fā)中,,為了更好地滿足系統(tǒng)的高實時性,、高安全性,、高可靠性等要求,提出采用實時性強的操作系統(tǒng)——VxWorks操作系統(tǒng)作為衛(wèi)星星務系統(tǒng)的核心,。采用VxWorks操作系統(tǒng)的多任務調度機制,并結合基于時間片輪轉調度實現(xiàn)多任務設計算法的特點,,進而制定出星務管理系統(tǒng)軟件的架構,。結果表明,該設計滿足衛(wèi)星星務系統(tǒng)軟件設計的可靠性,、實時性的要求,。
中圖分類號: TP391.9
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170141
中文引用格式: 趙建坤,張大松,,胡愛蘭,,等. 基于VxWorks的星務管理系統(tǒng)軟件多任務實時性調度設計[J].電子技術應用,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 引言

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

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

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

1 VxWorks的多任務特性

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

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

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

jsj3-t1.gif

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

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

2.1 架構分析

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

    圖2為星務管理系統(tǒng)軟件的結構圖,。

jsj3-t2.gif

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

2.2 多任務調度

2.2.1 基于任務優(yōu)先級的搶占式調度設計

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

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

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

jsj3-t3.gif

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

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

2.2.2 基于時間片輪轉的調度設計

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

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

jsj3-b1.gif

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

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

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

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

jsj3-gs1-3.gif

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

jsj3-t4.gif

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

2.3 多任務間通信

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

2.3.1 信號量

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

jsj3-t5.gif

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

2.3.2 消息隊列

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

jsj3-t6.gif

3 分析驗證

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

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

jsj3-t7.gif

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

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

jsj3-t8.gif

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

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

4 結論

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

參考文獻

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

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

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

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

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

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

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



作者信息:

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

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

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