陸嵐 孫勇 何熊文 余晟
(北京空間飛行器總體設計部,北京 100094)
隨著航天器交會對接[1-2]等各類復雜空間任務的出現和發展,使得航天器之間和航天器內部各設備之間都需進行更緊密的指令交互和協同控制。設備管理指令是大型航天器組合體內任意設備主動發往艙內或艙間其他設備的指令,往往需要進行一次或多次轉發,每次轉發都需在指令管理設備控制下進行較為復雜的交互過程。相對于以往常見的程控指令轉發,設備管理指令的轉發步驟更多,相應的轉發時延更大。以往通用的程控指令轉發方法已經不能滿足大型航天器設備之間指令交互的實時性要求。目前國內航天領域針對1553B 總線[3-6]消息的實時調度方法已經有了一定的成果[7-9],但還缺乏針對指令轉發全過程的分層優化策略研究。
基于上述現狀,本文提出了一種設備管理指令的實時性優化方法,在數據鏈路層[10]采用解析流程和總線反饋過程優化,在物理層[11]進行總線消息發送序列優化,可有效縮減設備管理指令各轉發步驟的時間延遲,并可兼容原有的硬件設計和軟件框架。
大型航天器長期在軌運行期間,由于測控區限制,地面不能隨時監測航天器組合體各艙段狀態,使得在軌自主管理成為其必備的關鍵功能。由于資源互備和共享需求,各艙段間熱控、能源等重要設備的功能關聯緊密,使得航天器自主管理過程中指令交互過程成為重中之重。其中艙段間指令交互傳輸往往需經過多次轉發,對整個傳輸途徑的時延控制成為研究重點。圖1給出了在三艙指令管理設備控制下的艙間指令交互過程模型。圖中艙段1的發令設備在進行自主故障診斷后,向艙段3的某執行機構發出設備管理指令。該指令經過三艙指令管理設備的三次轉發后到達終端的執行機構執行,其傳輸延遲主要包括三次轉發的時延T1~T3,以及執行機構從接收到執行的時延T4。三次轉發最大時延占比約為1∶1∶1,而T4的時延一般小于200 ms。大型航天器自主管理設計中多項緊急重大故障都需進行艙間設備管理指令傳輸。為進行在軌緊急故障處置和故障隔離,指令在整個傳輸途徑中的延遲不應大于1 s。因此設備管理指令的每次轉發最大時延不應大于266 ms。如果不進行優化設計,以往通用的程控指令轉發方法最大延遲一般在350 ms以上,已經不能滿足大型航天器指令交互的實時性要求。因此有必要對每次設備管理指令的轉發進行步驟分析和優化設計,以滿足大型航天器復雜和緊急的自主管理需求。

圖1 艙間指令交互模型Fig.1 Inter-cabin command interaction model
設備管理指令格式定義與遙控空間數據鏈路協議[12-13]一致:包含主導頭、幀數據域和幀差錯控制域,格式如圖2所示。幀數據域又包含了一個程控指令源包,該源包由包主導頭、副導頭、應用數據和包差錯控制域組成。傳送幀主導頭中包含航天器標識(SCID)和虛擬信道(VCID)標識。航天器標識是用于區分不同航天器的唯一標識;虛擬信道標識則用于區分同一航天器上的不同設備。設備管理指令幀長固定為22 byte,即一個指令源包加上幀主導頭長度,以減少總線額外開銷,提高系統資源利用率。

圖2 設備管理指令格式Fig.2 Format of device management command
設備管理指令轉發是在指令管理設備的控制下,從發送方設備獲取指令并轉發到接收方設備的過程。發送方設備準備好指令后,在總線上設置服務請求;指令管理設備以固定周期發出讀取服務請求消息,并對返回的消息狀態進行判斷,如發現有服務請求,則發出讀取設備管理指令的消息。在接收到設備管理指令后,對指令進行校驗和轉發;最后接收方接收指令。這是一次設備管理指令轉發的完整流程,圖3展示了轉發流程的步驟和時序。其中t1~t5為管理方在指令轉發流程中各主要步驟的時延。t6為從管理方發出指令到接收方收到指令的時延。

圖3 設備管理指令轉發流程Fig.3 Device management command forwarding process
將從發送方設置完服務請求到接收方收到指令的時間延遲記為tc,管理方的每個處理環節的平均運行時間記為to,可得tc=5to+
其中to大小由管理方設備硬件性能決定,在硬件環境不變的前提下取值固定;t1的最大值由管理方發出服務請求的間隔決定,該間隔可作為參數由軟件自行設置;而t6接收方軟硬設計決定,不屬于指令管理范疇。因此要縮減tc的時間延遲首先需考慮對t2~t5的處理時間進行優化,也就是使得取值最小。
傳送幀格式的指令解析和轉發流程通常如圖4(a)所示,對接收到的傳送幀首先進行幀校驗,如格式正確首先進行幀解析,將具備不同SCID 或VCID 的幀存入相應的緩沖區;再對其中需進一步處理的包取出進行包校驗,正確后再進行包解析、處理和轉發;最后對所有緩存中的幀一一進行判別、處理和轉發。這種方式可用于大多數實時性要求較弱的遙控注入數據和指令,但不能適應強實時性的設備管理指令轉發要求。因此考慮優化解析流程,在幀校驗正確后增加針對設備管理指令的判別,如為需要進行總線轉發的設備管理指令,則跳過后續幀解析和包解析環節,直接進行幀處理和轉發,如圖4(b)所示。該優化措施可避免不必要的大量幀、包復制過程和模塊調用操作,縮減前文描述的t4(發出讀取設備管理指令消息到接收和處理指令)時間間隔。

圖4 解析流程優化方法Fig.4 Analysis process optimization method
如圖5(a)所示,指令管理方由總線進程發出讀取服務請求消息后,與其他所有類型的總線返回消息一同處置,先讀取消息并存入緩存,再將消息數據通過進程間消息傳遞方式發送到相關處理進程去處理。相關處理進程在處理后還需發出讀取設備管理指令消息,再通過消息傳遞機制發到總線進程,由總線進程再將消息發出。
考慮到兩次進程間消息傳遞的時間開銷較大,為提高實時處理能力,設計了一種鉤子函數注冊機制。由相關進程在初始化時,在共享數據區注冊專用的鉤子函數,用于解析、處理并發出讀取設備管理指令的消息,如圖5(b)所示。總線進程在收到總線上返回的消息后,判斷消息類型為讀取服務請求消息,則調用注冊的鉤子函數進行處理。這種方式可避免兩次緩沖區拷貝和兩次進程調度的時間開銷,有效縮小前文描述的t2(從發出讀取服務請求消息到進行消息判斷)時間間隔。

圖5 總線消息反饋過程優化方法Fig.5 Optimization method of bus message feedback process
完整的設備管理指令發送周期里,需要發出三種總線消息:讀取服務請求消息、讀取設備管理指令消息和轉發指令消息。傳統方式下,總線消息最終都要通過總線進程發送出去。本文設計的物理層優化方法是設置不同的總線消息優先級:將讀取服務請求消息設為優先級3;讀取設備管理指令消息和轉發指令消息設為優先級1。如圖6所示,總線發送進程調度后,優先級2和優先級3的隊列會放在當前發送隊列的后面發送出去;而優先級1的消息可通過相關發送進程直接打斷當前隊列的消息,將優先級1的消息最先發送出去。當優先級1的消息發送完畢后,再依序將當前發送隊列、優先級2隊列和優先級3隊列發送出去。這種方式避免大量低優先級的消息占用總線,可大幅縮小前文描述的t3和t5(物理層消息發送)的時間間隔。

圖6 總線物理層優化發送序列Fig.6 Optimized sending sequence of bus physical layer
本文提出的指令管理優化方法已應用于某大型航天器組合體的指令管理設備。測試系統由組合體某艙段上指令管理設備的真實軟硬件和地面軟件構成,該軟件已采用文中所述優化方法。通過地面軟件仿真某艙段1553B的指令發送方和接收方,模擬總線上設備管理指令的發送和接收。測試時設置指令管理設備發送服務請求的間隔為80 ms,隨機選擇不同的總線終端進行多次指令發送和接收,以地面軟件記錄從發送方服務請求設置到管理方指令轉發消息發出的時間間隔為10~88 ms。即tc的最大值為88 ms,根據前文分析可知通過優化,5to+的最大時間間隔為8 ms。對指令管理設備的軟件進行修改,不采取任何優化的情況下,tc值實測為43~252 ms。即未優化的情況下5to+的最大時間間隔為172 ms。可見經過優化,設備管理指令轉發最大時延tc縮短了65%。
再對指令管理設備發送服務請求的間隔進行調整,分別設為20 ms和200 ms,實測優化后tc值為12~88 ms和13~208 ms。可見優化后5to+的最大時間間隔穩定為8 ms,優化效果與服務請求間隔的大小無關。
在指令管理設備軟件中設置優化開關,對3種優化方法分別測試其優化效果:單獨使用解析流程優化,優化后tc值縮短了2~5 ms;單獨使用總線消息反饋過程優化,使得tc值縮短了13~56 ms;單獨使用總線消息發送序列優化,使得tc值縮短了21~107 ms。可見3種優化方法的最大優化效率占比約為1∶11∶21。
本文提出的設備間指令管理優化方法相對于優化前主要優勢如下。
(1)解析流程優化前,設備管理指令解析過程由于通用設計,必須執行幀解析、包解析環節。優化后這些不必要環節省略,減少了處理時間。
(2)總線消息反饋過程優化前,發出讀取服務請求消息到進行消息判斷過程中需進行兩次消息傳遞和兩次進程調度。優化后這些時間開銷可省略。
(3)總線消息發送序列優化前,非重要的總線數據可能長時間占用總線,使得重要的指令消息不能及時發送。優化后通過高優先級消息搶占調度,可有效縮減該時間延遲。
本文中所述方法可推廣應用至其他高實時性需求任務的軟件優化設計中,可供后續借鑒和參考的設計思路如下。
(1)多層次多環節優化:在對需優化的高實時需求任務的執行環節及軟件實現層次進行全面分析并選取優化策略,爭取各環節、各層次的處理時延都進行優化,以獲得最佳優化效果。
(2)應用層優化從應用軟件和操作系統調度兩方面入手:應用軟件中對高實時需求任務的進程進行針對性流程優化;同時跟據操作系統調度策略,分析高實時需求任務的相關進程執行時序,將不必要的進程切換和進程間消息傳遞作為優化目標。
(3)面向總線接口的物理層優化基于總線調度策略展開,分析不同總線消息的傳輸實時性需求,選擇合適的總線消息調度策略以兼顧高、中、低實時性的總線消息傳輸需求。
本文描述了設備管理指令的轉發步驟和時序,對指令轉發時延產生的各個環節進行了分析,并針對每個環節給出了相應的減少時延、提高指令轉發實時性的技術措施。最后給出了針對其他高實時需求任務的推廣應用建議。大型航天器組合體的設備管理指令可能需要一次或多次轉發。本文所研究的指令轉發周期產生的時延只是一次轉發的主要時延,最終多次轉發的時間延遲還與艙間對接總線的網絡拓撲設計有關。但每次轉發過程都可參考文中方法進行優化,以達到最優的實時傳輸效果。
文中所述優化方法在提高指令轉發實時性的同時,也會帶來一定可靠性風險。總線消息發送序列優化方法采用高優先級搶占的總線調度策略,不同優先級進程搶占總線資源可能導致訪問沖突,使得總線消息內容錯誤或消息發送失敗。實際應用中可通過信號量對共享的總線資源和發送緩沖區進行保護,實現不同進程訪問的互斥,以避免訪問沖突。文中所述優化方法已在某大型航天器不同艙段的指令管理設備軟件中應用,并已通過長期綜合電測驗證了其可靠性和優化效果。