張新玉,李愷,張鳳
(北京空間機電研究所,北京 100094)
摘要:介紹了空間控制器軟件外中斷主程序循環查詢任務調度、外中斷定時器中斷查詢任務調度和外中斷串口中斷查詢任務調度三種任務調度模式,并對三種任務調度模式的適用范圍、優缺點進行了對比分析。結合工程實踐,采用外中斷串口中斷查詢任務調度模式,處理多個型號軟件任務調度,充分利用軟件資源,合理優化軟件結構,大大提高了整個軟件的響應及時性和資源利用率。
關鍵詞:空間控制器軟件;任務調度;響應及時性
0引言
當前空間控制器軟件針對不同任務需求,通常有三種任務調度方式:外中斷主程序循環查詢任務調度、外中斷定時器中斷查詢任務調度、外中斷串口中斷查詢任務調度 [14]。
本文結合實際應用,分別對三種任務調度模式及其應用范圍進行介紹,并針對當前空間控制器軟件任務現狀,在型號應用中合理利用CPU串口中斷功能,通過串口中斷解析中控計算機指令,優化軟件資源與調度,提高軟件對任務響應的及時性和工作效率[5]。
1空間控制器軟件任務調度
中控計算機與空間控制器通過總線通信[67],空間控制器軟件通過外中斷程序接收中控計算機發送過來的數據信息。在外中斷程序中,設定總線數據緩沖區,接收數據信息,設置相應的標志。軟件根據不同類型的標志,設定對應的數據處理緩沖區及緩沖區指針,將總線數據信息按類型轉存至對應數據處理緩沖區。軟件根據指針值處理對應數據緩沖區內數據信息[8]。
1.1外中斷-主程序循環查詢任務調度
外中斷-主程序循環查詢任務調度模式適用于空間控制器軟件任務較少、軟件在主程序中通過循環查詢能夠及時處理任務或中控計算機對任務響應及時性要求不高的情形。
軟件根據任務數據類型,設定不同的數據處理緩沖區及緩沖區指針。在收到中控計算機數據后,觸發CPU處理器外部中斷,在外中斷中解析收到的中控計算機數據,根據不同的數據信息,設置不同的標志,并將數據信息保存在相對應的總線數據緩沖區,退出外中斷程序。
軟件在主程序中循環查詢數據信息標志,當主程序查詢到相關標志后,根據數據信息標志,判斷收到的數據類型,提取相應的中控計算機數據,將其按類型保存在對應的數據處理緩沖區,釋放總線數據緩沖區,對應數據處理緩沖區指針加1,完成中控計算機數據通信任務的調度功能。通過主程序中其他模塊,查詢數據處理緩沖區指針值,根據指針值,處理接收到的中控計算機數據。具體操作流程如圖1所示。
1.2外中斷-定時器中斷查詢任務調度
外中斷-定時器中斷查詢任務調度模式適用于空間控制器軟件任務較復雜、對任務響應及時性要求較高、外部圖1外中斷-主程序循環查詢任務調度模式架構圖中斷資源全部被占用或定時器資源充足的情形,軟件在中斷程序中設置不同的數據信息標志并保存數據信息后,啟動定時器計時計數,再退出外中斷程序。定時時間到,進入定時器中斷程序,查詢到相關數據信息標志后,根據數據信息標志,判斷收到的數據類型,提取相應的中控計算機數據,將其按類型保存在對應的數據處理緩沖區,釋放總線數據緩沖區,對應數據處理緩沖區指針加1,退出定時器中斷程序,完成中控計算機數據通信任務調度功能。利用軟件中特定功能模塊,查詢數據處理緩沖區指針值,根據指針值,處理接收到的中控計算機數據。具體操作流程如圖2所示。
1.3外中斷-串口中斷查詢任務調度
外中斷串口中斷查詢任務調度模式適用于空間控制器軟件任務復雜、對任務響應及時性要求高、串口中斷資源閑置的情形,軟件在中斷程序中設置不同的數據信息標志并保存數據信息后,啟動串口中斷,再退出外中斷程序。在串口中斷程序中實現定時器中斷功能,完成中控計算機數據通信任務調度功能。利用軟件中特定功能模塊查詢數據處理緩沖區指針值,根據指針值,處理接收到的中控計算機數據。具體操作流程如圖3所示。
1.4三種任務調度對比
在外中斷-主程序循環查詢任務調度模式下,軟件在運行過程中,觸發外中斷,接收中控計算機發送來的數據信息,設置相應數據信息標志,退出外中斷,主程序循環,查詢到相應數據信息標志后,處理相關數據信息。具體時序關系如圖4所示。
在該模式下,軟件在主程序中循環查詢外中斷中的數據信息標志,若查詢到相關標志,則執行對應標志下的數據信息,否則執行其他非查詢標志類任務。由于軟件退出外中斷程序時機不確定,從而進入主程序位置也不確定,導致軟件執行主程序中相應的查詢數據信息標志,處理對應數據信息部分功能不一定會及時響應外中斷程序,中間可能會有一定的時間間隔。另外,若外中斷觸發頻率很高,或者軟件待處理的任務較多、較復雜,則可能會出現軟件頻繁進入外中斷或主程序循環執行周期較長的現象,從而導致主程序中循環查詢數據信息標志處理相關數據信息功能,來不及處理相關數據信息而不能滿足任務需求的情況。但是,由于整個軟件架構中中斷資源使用較少,因此對于整個軟件來說,可靠性相對較高,因此該模式適用于軟件任務較少、在主程序中通過循環查詢能夠及時響應任務處理或中控計算機對任務響應及時性要求不高、功能較簡單、對軟件可靠性要求很高的空間控制器軟件。
在外中斷定時器中斷查詢任務調度模式下,軟件在中斷程序中處理相關信息,啟動定時器,退出外中斷后,定時時間到,進入定時器中斷,處理相關數據信息。退出定時器中斷后,軟件繼續執行主程序循環,等待新的中控計算機數據信息觸發中斷,執行相應操作。由于定時時間與外中斷執行時間不能完全匹配,因此軟件可能在退出外中斷后立即進入定時器中斷程圖3外中斷串口中斷查詢任務調度模式架構圖圖4外中斷主程序循環查詢任務調度模式時序
序,也可能中間插入了一段主程序,等定時時間到后,進入定時器中斷程序,具體時序關系如圖5所示。
在該模式下,需占用一個定時器資源,由于該定時器主要用來響應外中斷中的中控計算機數據信息,為了減少外中斷數據信息的處理時間,提高對外中斷的響應速度,若設定的定時器計時時間較長,則會導致退出外中斷后,定時器定時未到,軟件無法及時進入定時器中斷;若設置較短的定時周期,使得退出外中斷后及時進入定時器中斷,則其定時周期受高級中斷影響更加不確定,導致定時器定時不準。因此該定時器不再復用作其他功能,從而占用較多軟件資源。若軟件有其他未用中斷(如串口等),會造成一定的資源浪費,另外獨占一個定時器,會增加其他定時器的任務量,導致定時器中斷處理程序復雜度提高。因此該模式通常適用于空間控制器軟件任務較復雜、對任務響應及時性要求較高、外部中斷資源全部被占用或定時器資源充足、同時中控計算機對軟件響應的實時性要求較高的空間控制器軟件。
在外中斷串口中斷查詢任務調度模式下,軟件在中斷程序中處理相關信息,啟動串口中斷,退出外中斷后,進入串口中斷,處理相關數據信息。退出串口中斷程序后,軟件繼續執行主程序循環,等待新的中控計算機數據信息觸發中斷,執行相應操作。具體時序關系如圖6所示。
在該模式下,利用通常不被使用的串口中斷,通過軟件設置串口中斷,在退出外中斷程序后,立即進入串口中斷,既不存在外中斷主程序循環查詢任務調度模式中中斷響應時機不確定的現象,也不存在外中斷定時器中斷任務調度模式中可能出現的資源浪費現象,整個系統軟件的資源得到最合理的優化配置。相對于外中斷定時器中斷任務調度模式,若軟件串口閑置,則利用軟件串口功能,可以釋放一個定時器資源,通過合理優化,實現更多更復雜的定時功能,提高整個軟件的執行效率和可靠性。因此,該模式通常適用于資源緊張、軟件功能復雜、定時要求多、響應實時性要求苛刻、同時串口中斷未被使用的空間控制器軟件。
2推廣應用
一般中控計算機與空間控制器軟件通過外部中斷來觸發通信。為了提高系統響應速度,通常在未使用的中斷中處理相應任務。考慮到各處理器中斷資源相對緊張,同時部分中斷資源(如串口、軟中斷等)不用來通信的現狀[13],可以在相關控制軟件中,利用未使用的中斷資源,滿足及時響應通信任務的要求,節省定時器資源,更好地處理相關控制任務,提高軟件控制性能。
3結論
針對當前空間控制器軟件任務現狀,本文中所述的通過串口中斷資源進行任務調度的方案已經應用于多個型號的空間控制器軟件任務調度中。該方案充分利用CPU中斷資源,避免資源浪費以及由此導致的功能較單一問題,為軟件處理更復雜任務調度及控制功能提供了資源,提高了軟件響應速度和控制性能,便于拓展系統功能。
參考文獻
[1] 顏軍.SPARC嵌入式系統設計與開發[M].北京:中國標準出版社,2013.
[2] 寧改娣,楊拴科.DSP控制器原理及應用[M].北京:科學出版社,2002.
[3] 胡乾斌,李光斌,李玲,等.單片微型計算機原理與應用[M].武漢:華中科技大學出版社,2005.
[4] 張少展,張春梅.基于軟件規模的需求優先級排序方法應用[J].微型機與應用,2015,34(1):8184
[5] 潘靈.RapidIO高性能通信中間件設計[J].電子技術應用,2014,40(12):107109.
[6] 饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN 原理與應用技術[M].北京:北京航空航天大學出版社,2004.
[7] Data Device Corp. ACE/MiniACE Series BC/RT/MT advanced communication engine intergrated 1553 teminal user’s guide [Z]. New York: Data Device Corp. 2005.
[8] 康曉軍,王勁強,王蕓.基于擴展塊的星載軟件控制流容錯評價方法[J].航天返回與遙感,2007,28(3);3339.