閻冬 陶濤 顧明 何熊文
(北京空間飛行器總體設計部,北京 100094)
隨著航天器星載自主處理能力和智能信息技術的發展,以及用戶應用對空間信息獲取及處理能力需求的不斷提高,經過航天器采集、處理、存儲、更新及傳輸的數據也由原來單一、固定的數據類型,變成了涉及多個星內設備的多元數據類型及各異的數據長度。作為航天器大腦的綜合電子系統,為了能夠更有效地為航天器智能自主處理能力的提高提供支持,勢必要努力開展技術創新,不斷提升能力。綜合電子系統的能力提升方面的作用要體現在豐富業務功能提供、標準軟硬件接口配置、多元信息融合、高可靠性保障等方面。
傳統的航天器數據管理系統,僅能夠提供較少種類的業務,而且這些業務也并未以一種統一的標準形式實現。它們獲取本航天器內部及載荷采集的較為單一的數據,并在航天器內部存儲、轉發,最終將其中的一部分數據下傳到地面。星載綜合電子系統相對封閉和單一的設計模式,以及非層次化的開發方式,都導致了它難以適應航天器對多種類型存儲器中數據的頻繁操作、多服務質量保證需求,以及多源數據融合、數據異地實時備份等多種應用場景。這種點對點模式的空間數據系統,航天器的動作完全由地面控制,存在著一些明顯的弊端:①星載信息處理程度較低,涉及的信息種類很少,無法實現航天器多元信息融合的需求[1];②航天器軟硬件體系沒有遵循層次化結構及模塊化的開發模式,設計開發人員在開展應用層程序設計時常常需要關注下層不同存儲設備的硬件接口和操作方法,使整個系統成為從頂層到底層的“捆綁式”結構,無法實現異構存儲設備的高效訪問和靈活管理;③當前對操作命令的安全性保障主要通過上下行鏈路的加解密及數據內容的校驗來保證,而幾乎未涉及對操作者身份驗證及權限限制,容易造成越權操作,威脅到整星的安全運行。隨著航天器硬件處理能力的提高和星載存儲設備單元的多樣化,以及衛星對異構存儲單元數據融合處理的發展趨勢,上述的缺點限制了航天器綜合電子進一步發展,亟需一種包含更先進的數據采集及處理流程的信息系統。
空間數據系統咨詢委員會(CCSDS)提出的存儲器訪問業務(Subnetwork Memory Access Service)標準[2],提供向設備的內存或寄存器讀出、寫入或者修改數據的能力,為數據采集、存儲、修改提供了豐富的服務支持,為了能夠有效提升當前航天器數據操作能力,增強對用戶應用數據的服務支持能力,并有效改善系統架構的標準化、體系化水平,本文針對該業務的特點以及在航天器綜合電子系統中的應用進行了研究。
存儲器訪問業務是CCSDS提出的航天器星載接口業務[3-4](Spacecraft Onboard Interface Service, SOIS)中亞網層的一項業務。SOIS的目的是提供一個標準的層次化星載軟件框架,每一層的業務軟件具有獨立編譯運行的能力,不同的業務軟件之間具有松耦合特性,同層或者相鄰層次之間的軟件交互則通過各個業務提供的標準業務接口完成。這種模塊化的構件設計使軟件具有較好的重用性,能夠實現快速開發。
存儲器訪問業務也遵循了這種設計理念[5-6],它所在的亞網層在SOIS的軟件架構中位于傳遞層以下,包括存儲器訪問業務、亞網包業務[7]、同步業務[8]、設備發現業務[9]及測試業務[10],該層業務對上層應用程序屏蔽底層種類繁多的存儲器或者寄存器各異的訪問模式和讀寫方法,為上層提供一個統一的數據處理和發送接口。存儲器訪問業務在SOIS層次關系中的位置如圖1所示。

圖1 存儲器訪問業務在SOIS層次關系中的位置Fig.1 Location of Subnetwork Memory Access Service in SOIS
存儲器訪問業務主要功能和特點如下[11]。
(1)整器數據讀寫管理能力:航天器存儲器類型多種多樣,所處位置以及數據讀寫交互的方式千差萬別,對于存儲器的管理方式也有所不同。如果用戶應用需要操作的存儲器為本設備內部其它模塊或者屬于其它設備,存儲器訪問業務將根據這個存儲器的特點,將讀、寫指令進行適應性操作,完成用戶應用需要的數據操作。整個過程只在亞網層內部進行動作,而應用層的用戶業務產生端根本沒有任何影響,它仍繼續按照之前指定的規則完成數據操作。
(2)區分服務的能力:綜合電子系統能夠支持的業務日益增多,系統中存在種類多樣的數據類型,而每種類型對數據操作性能有不同的要求,有的對時延要求極高,必須在特定的時間間隔內完成數據操作才能滿足應用需求。由統一的中間件管理程序對不同類型數據指定其優先級,存儲器訪問業務根據待讀寫數據的優先級關系進行區分服務。對于某些對時間性能要求更高的數據,存儲器訪問業務將對其進行優先處理,保證能夠在規定的時間內完成數據操作。
(3)數據分段能力:由于星上處于不同位置的存儲器由不同的通信線纜連接,一次數據操作可以支持的最大數據單元(MTU)也有所不同,存儲器訪問業務提供數據分段的能力,上層應用程序無須關心底層的MTU大小,可以直接按照接口統一支持的最大長度進行數據操作。以讀操作為例,存儲器訪問業務在發送端根據目標存儲器及其通信鏈路所支持的MTU,將數據讀操作指令進行分段。讀操作完成后,將接收到的分段數據包重新組裝,再發送給上層應用。
(4)數據操作可靠性保障能力:不同類型的用戶業務數據對讀寫等操作可靠性等要求有所不同,有些用戶應用對數據操作可靠性要求較高,如果數據讀寫出錯,需要數據操作源端重新發送該數據操作命令。存儲器訪問業務為這些數據操作提供可靠性保障,數據操作目的端在完成數據操作動作后,將事件動作標識以及數據操作結果發送給數據操作源端。如果數據操作未成功執行,則數據操作源端根據用戶應用指定的服務質量(QoS)要求,進行數據操作重新執行等一系列操作,并將本次執行結果上傳給上層應用進行處理。
(5)安全性:存儲器訪問業務的寫操作命令中,具有權限驗證的功能。數據操作源端設置操作密鑰,在數據操作目的端判斷發起數據操作的用戶是否有執行相應操作的權限。如果權限驗證不通過,不會進行相應的數據操作,并返回錯誤碼。
針對航天器存儲器的數據操作,按照存儲器所處位置的不同,可以分為本地模塊內數據操作、本地模塊間數據操作,以及遠程數據操作。其中,本地模塊內數據操作是指CPU模塊內的存儲區域;本地模塊間數據操作是指與CPU位于同一臺設備內部,并且與CPU通過內總線(如CPCI、ARINC 659等)連接;遠程數據操作是指與CPU位于不同設備中,并且與CPU通過外總線(如1553B、CAN等)連接,可以通過亞網層包業務[7,12]傳遞到目標設備后再進行本地存儲器訪問操作。存儲器訪問業務具體執行過程主要可以分為3個部分:事件驅動處理過程、周期性巡查處理過程和數據操作執行結果反饋過程。以本地模塊間寫數據操作為例,介紹存儲器訪問業務數據操作執行過程,如圖2所示。


圖2 存儲器訪問業務模塊間寫操作過程Fig.2 Writing process of Subnetwork Memory Access Service
1)事件驅動處理過程
WRITE.request為其中一個最主要的操作原語,從應用層發送的對屬性各異存儲器進行數據操作的指令,通過標準接口進入存儲器訪問業務處理程序。航天器內部存儲器根據所處位置、連接關系等信息進行統一標記,并賦予唯一的存儲區域標識,并且該標識與具體存儲器的操作標識具有唯一的映射關系。
存儲器訪問業務接口接受上層用戶調用,完成協議合路,將存儲器寫命令及相關控制信息進行解析。然后,命令解析識別出這是一次本地模塊間訪問,并根據指令中的協議控制信息(Protocol Control Information,PCI)中包含的優先級參數,將本次接收到的指令存入模塊間訪問命令隊列中適當的位置。模塊間訪問命令隊列按照優先級由高至低順序排列執行,如果優先級相同,按照先來后到的順序執行。
2)周期性巡查處理過程
在定時時刻到來時,首先根據優先級策略、數據操作目標端設備鎖定/開放狀態信息,從模塊間訪問命令隊列中取出寫操作指令,并完成模塊地址變換。當存儲器訪問業務正在對某目標存儲器進行讀、寫操作時,將該目標端設備置為鎖定狀態,這時其它進程或者操作無法同時對該目標端設備進行數據訪問。接下來,根據數據操作目標端的MTU實際能力,對待寫入數據進行分段處理,使每一段均不超過數據操作目標端設備驅動程序數據塊操作命令的最大長度。最后,根據本操作的安全性能要求,判斷寫操作命令中的Authorisation參數(該參數為可選命令),根據應用的實際情況選用,應用用戶設置一個密鑰值,在遠程接收端判斷用戶是否有權限執行相應的操作。如果沒有相應的權限,不會返回相應的數據,并返回錯誤碼。如果具有相應權限,則通過調用目標端設備數據操作驅動程序來操作硬件,完成數據寫操作,將數據寫入指定存儲器;若寫入的段不是本命令的最后一段,待下一個定時周期寫入下一段,直到所有段寫入完畢。當完成寫入獨立段數據或者分段命令的最后一段數據后,將該設備置為釋放狀態。
3)數據操作執行結果反饋過程
本過程對數據操作執行結果進行檢查,在寫操作命令中,參數Acknowledge 的設置決定了在完成寫操作后是否需要返回執行結果。如果需要返回執行結果,應用MEMORY_ACCESS_RESULT.indication原語,根據用戶應用所確定的QoS及可靠性性能,進行相應操作。首先,檢查驅動程序寫接口的執行狀態。如果寫操作命令已成功完成,則更新執行中命令隊列中該命令的執行狀態為寫操作完成狀態。然后,檢查模塊間訪問命令執行隊列中各成員是否有超時的情況。如果獨立命令或者分段命令的最后一段寫操作已執行完成,又或者寫操作過程出錯,表明該命令執行結束,則刪除該命令,并且設置對應設備的鎖定/開放狀態為開放狀態。最后,將操作執行結果作為數據域部分生成標準的空間包傳遞給用戶應用進行下一步處理。
1)星載文件系統
隨著航天器平臺設計及載荷能力的提升,航天器內部的數據量將大幅增加,數據的交互和操作也會變得更加的頻繁,傳統的數據操作方式將難以滿足這種發展趨勢帶來的變化。存儲器訪問業務可以提供高效的讀、寫、修改等數據操作機制,將操作方式各異存儲器訪問和操作方式對上層用戶應用提供統一的標準接口。
2)星上多源異構數據融合處理
航天器上攜帶的多種載荷和平臺設備能夠采集多種類型的異構數據,這些數據難以直接用于用戶應用中,需要進一步的數據融合和處理,傳統方式是航天器將采集獲取的數據下傳到地面,有地面進行深度處理后在傳遞到用戶端,整個數據處理鏈條較長,時效性較差。隨著航天器處理能力的提高,以及用戶對數據融合和處理時效性要求的進一步提高,在星上完成數據深度處理成為了可能,并且成為未來的標配功能。存儲器訪問業務對數據讀寫的高效操作為星上多源異構數據融合處理的實現提供了支持。
3)為不同類型用戶應用提供多樣化QoS支持
隨著航天器處理能力提高,以及應用方式靈活性的增加,未來的航天器將支持用戶定義APP的靈活加載。不同的用戶應用對數據操作的QoS及可靠性要求有所不同。存儲器訪問除了在存儲器讀、寫等操作方面具有優勢外,還能夠提供不同QoS和可靠性支持,針對不同的用戶應用提供多樣化的服務類型,并且可以及時將數據操作處理結果反饋給用戶端,以便于做進一步處理。
CCSDS存儲器訪問業務已經完成軟件實現并在樣機上完成測試驗證,并已經在某航天器中得到應用,該航天器將于近期發射并進行在軌驗證。以模擬量遙測采集為例,用戶遙測應用啟動模擬量采集,中間件設備訪問業務根據帶操作的設備訪問類型,獲得存儲器訪問業務的參數,包括目的應用過程標識(APID)、存儲器區域、起始地址等,形成存儲器訪問讀業務原語READ.request命令協議數據單元PDU對應的空間包,通過傳輸層發送給存儲器訪問業務。存儲器訪問業務根據鏈路標識得知為本地存儲器訪問鏈路,調用本地存儲器訪問鏈路進行讀操作。本地存儲器訪問鏈路依據存儲器區域得知訪問為模塊間訪問,將命令放入模塊間訪問命令隊列,同時釋放上層的包緩沖區。啟動命令讀取,該過程依據存儲器區域查表得到設備驅動程序名,調用設備驅動程序讀接口。最終獲得返回的模擬量數據,申請緩沖區,將數據存入緩沖區,并將返回狀態以及數據形成存儲器訪問業務原語Read.Indication結果PDU的空間包,發往傳輸層。
應用存儲器訪問等業務構建的協議及軟件架構,除了可以順利地完成傳統的遙測采集功能,還具有以下優勢:
(1)通過標準業務的組合,可以實現傳統的常規星載操作功能,以及實現更多的傳統功能不具備的全新功能,開發者只需要關注應用層功能的設計和處理,下層功能全部是標準化軟件中間件的形式,完全可以支持全新的上層應用。
(2)用戶應用針對特定的功能只需要調用統一的業務接口,并傳遞相應的業務參數,無需關心底層具體的實現方式,實現與底層的解耦,底層實現方式的變化不會影響到上層的應用,有利于系統的快速集成開發。
(3)用于底層鏈路和驅動程序實現方式的不同,所以對一次操作的數據長度要求有所不同,傳統的實現方式中,用戶應用需要根據具體使用的底層鏈路和驅動程序實現方式,“定制”設置數據操作的長度。使用存儲器訪問業務,用戶不需要過于關注底層不同鏈路和驅動的數據要求,只需要將64 KB 長度內的操作數據及相關參數通過標準接口發送給存儲器訪問業務,該業務會根據具體操作鏈路和驅動的完成數據轉換和適配,較大的簡化了用戶應用的操作。
表1對數據操作一些典型的性能情況進行了對比。

表1 CCSDS存儲器訪問業務應用前后性能對比
表1中選取了一些典型應用,對是否應用了存儲器訪問業務的一些關鍵技術指標進行了對比,試驗結果表明,部署了存儲器訪問業務的系統在這些關鍵指標中有了明顯的改善。隨著用戶應用的更加多樣化,對表1中的數據操作關鍵指標將會有更高的要求,應用存儲器訪問業務將能夠更好地滿足用戶應用的需求。
未來航天任務日益復雜,往往需要多源異構信息處理和融合。多種類型的數據對讀寫操作可靠性、時延、服務質量(QoS)等有不同的要求,這就要求航天器綜合電子系統能夠對不同類型的數據操作進行個性化服務。存儲器訪問業務作為CCSDS亞網層中的一項關鍵業務,能夠充分滿足上述需求,它提供了統一的數據讀、寫、修改等操作接口,將上層豐富多樣用戶應用對數據操作的需求與下層各種各樣的存儲器操作方式隔離,既適合航天器設備內部數據操作,又能夠支持多種設備之間的數據操作。對星載存儲器的訪問操作,由于可能關系到涉及安全的關鍵數據,對其安全性提出了更高的要求,存儲器訪問業務的權限驗證能力較大提升了數據操作的安全保障能力,避免無權限的人員發生誤操作。存儲器訪問業務能夠增強綜合電子系統的包容性、可靠性及服務能力,應該在未來航天器綜合電子系統中大力推廣應用。