王斌 高建軍 張猛
(北京空間飛行器總體設計部,北京 100094)
傳統的星載計算機軟件系統通常嚴格根據任務的需要進行設計,當任務的軟件需求或者硬件拓撲結構、通信接口發生變化時,軟件系統需要進行大量的修改。軟件設計中重復開發的現象造成開發周期長、測試周期長、人力和財力耗費嚴重。研究新型的星載軟件體系結構,建立統一的、通用化的星載軟件系統接口,對于實現星載計算機系統“低成本、快交付、高質量、多用途”的發展要求具有重要意義[1]。
空間數據系統咨詢委員會(CCSDS)的指令與數據獲取業務(CDAS)對星載軟件的通用化設計具有良好的指導作用。指令與數據獲取業務是CCSDS航天器在軌接口業務(SOIS)[2]的重要組成部分。CDAS業務為星載軟件的指令發送與數據獲取提供了通用的服務,從而使得上層應用進行指令發送和數據獲取操作時與底層的拓撲結構和通信接口隔離。CDAS業務由3 個子業務組成:設備訪問業務[3]、設備數據池業務[4]和設備虛擬化業務[5]。除CCSDS外,歐洲航天局也提出了基于服務請求和服務報告的接口標準化包應用標準(Packet Utilisation Standard,PUS)[6],以實現航天器生產、測試和在軌飛行過程中的監視和控制。美國空軍研究實驗室(AFRL)開發了基于中間件軟件系統的衛星數據模型(SDM)系統[7],該系統提供自我配置和自我發現能力,有助于在衛星網絡中快速綜合硬件和軟件構件。
空間機械臂是深入開展航天活動必不可少的工具,是機、電、熱、控一體化的高集成度的空間機電系統。它在空間站系統中承擔著艙段捕獲與轉移、空間設備安裝與維修、輔助航天員作業等功能[8]。中央控制器是空間機械臂控制的核心,它控制機械臂依據自主路徑規劃、避障算法或者地面注入的運動規劃,實現指定運動[9]。在空間機械臂研發的初期,設計良好的軟件構架,能夠有效減少硬件拓撲結構改變對軟件造成的影響,提高軟件的可移植性和健壯性,從而,對提高軟件質量、縮短研制周期產生重要的影響。
本文首先對某空間機械臂的總線拓撲結構以及指令與數據特性進行分析,然后,研究CDAS模型的構架以及各組成部分,結合設備虛擬化業務采用面向對象的方法進行設備抽象,對設備數據池業務設計時的遙測數據更新、上層業務數據獲取、數據有效性等重要問題進行論述。最后,建立了基于CDAS模型的機械臂數據管理軟件構架。
某空間機械臂采用多總線分布式拓撲結構,如圖1所示。機械臂的內部總線通信采用CAN 總線和RS422總線,通過內部總線對空間機械臂的關節運動控制器、末端運動控制器、關節熱控控制器、末端熱控控制器、相機控制器、相機熱控控制器、供配電控制器等設備進行控制。空間機械臂通過1553B總線和RS422總線分別向空間站數管分系統和空間站在軌操作分系統發送遙測數據及接收遙控注入指令。

圖1 某空間機械臂總線的拓撲結構Fig.1 Bus topology of a space manipulator
基于上述拓撲結構和空間機械臂自身業務特點,某空間機械臂中央控制器數據管理軟件具有如下特性。
(1)通信總線類型多,接口數量多。通信總線包括1553B總線、CAN 總線和RS422 總線。通信接口數量多,其中,僅CAN 總線設備的數量就達60余個(含主份及備份設備)。
(2)遙測數據采集周期呈多樣性。與路徑規劃相關的相機控制器遙測的更新周期為100ms;中央控制器自身遙測狀態,關節控制器運動狀態(關節角度、關節速度、關節電機電流)等信息的更新周期為500ms;熱控總線遙測和其他運控總線遙測的更新周期為2000ms。
(3)多種上層應用均需要使用從總線獲取的數據。遙測相關業務需要周期性的獲取遙測數據并傳輸至空間站;路徑規劃相關業務需要在規劃開始時獲取初始關節角,在與相機相關的路徑規劃模式中,還需實時地由相機控制器獲取目標位姿參數;而健康管理相關業務需要獲取空間機械臂的運行狀態遙測,如電機電流、各種傳感器狀態等信息。
(4)多種上層應用均需要向總線發送控制指令。遙測相關業務需要周期性的發送遙測數據采集指令;在執行路徑規劃時,路徑規劃相關業務需要實時地向總線發送關節運動控制指令;遙控注入業務在接收到總線轉發數據時,需要向總線進行數據轉發;健康管理相關業務在監測到空間機械臂狀態異常時,需要實時向各個關節發送緊急停止指令等。
基于上述特點,空間機械臂數據管理軟件設計時采用的思路如下:
(1)采用面向對象的思想將底層設備進行抽象。將底層設備抽象為一個個的對象(即虛擬設備),對設備的控制指令抽象為對設備的操作方法。
(2)隔離上層應用。將上層的指令發送和數據獲取接口與底層通信接口隔離,并將所有的周期性數據獲取操作由專用業務完成。
(3)設計統一的底層驅動接口。通過統一的設備讀、寫方法對總線的訪問提供硬件無關的接口機制,以適應多種類型總線以及后續硬件配置的變化。
CCSDS指令與數據獲取業務(CDAS)提供了高效的訪問星載設備的方法。CDAS由3個子業務組成:設備虛擬化業務(DVS)、設備數據池業務(DDPS)和設備訪問業務(DAS),CDAS 模型的構架如圖2所示。

圖2 指令與數據獲取業務模型構架Fig.2 Frame of command and data acquisition services
1)設備虛擬化業務
設備虛擬化業務用于提供標準的設備驅動。同時,設備虛擬化業務向其用戶提供了設備邏輯標識,用戶通過設備邏輯標識來訪問物理設備,該業務負責維護邏輯設備與物理設備的對應關系,提供標準化的設備訪問接口,業務用戶無需關心物理設備的訪問細節。
2)設備數據池業務
設備數據池業務負責維護所有設備的狀態數據信息。多種上層應用均需要使用底層業務獲取的數據。由每個應用自行獲取數據,會造成數據的重復獲取,也會影響總線通信的實時性。使用設備數據池業務對外部設備的狀態數據進行統一維護和更新,能夠很好地解決此問題。該業務能夠根據“遙測采集配置表”,周期性地從外部設備獲取數據,并將其存放在數據緩存中。各個上層應用欲獲取數據時,不需要了解外部設備的物理位置、通信接口,就能夠從數據池中獲取數據。此業務同樣能夠降低硬件拓撲結構變化產生的影響。
3)設備訪問業務
設備訪問業務提供了一個用于軟件和硬件之間操作的標準接口。該業務的基本思想是軟件可以在不關心具體設備位置,以及不了解設備的電氣接口等詳細信息的情況下對設備進行訪問。接口標準化可以簡化星載軟件開發,適應星載硬件設計變化,增加軟件的潛在重用能力。
設備訪問業務相當于硬件設備驅動,提供基本的讀、寫功能,實現硬件隔離。
在空間機械臂數據管理軟件的設備虛擬化業務層設計中,提出了通用設備的數據結構,來維護邏輯設備與物理設備的對應關系,如表1 所示。在表1中,由設備類型、設備子類型和設備編號構成了一個設備的唯一標識,即CDAS 模型中的設備邏輯標識。通用設備預留了設備基本操作接口,如主備切換、設備復位。在系統初始化時,對這些接口進行設置,使得上層應用能夠在無需了解外部設備信息的情況下,通過設備邏輯標識來訪問物理設備。

表1 通用設備數據結構Table 1 Data structure of general device
其他虛擬設備為通用設備數據結構所派生,除具有通用設備所有屬性外,還具有專用功能。下面以運動控制器為例,介紹專用虛擬設備數據結構的設計。運動控制器數據結構如表2所示。

表2 運動控制器數據結構Table 2 Data structure of motion controller
設備虛擬化業務層的一項主要功能,是將實際物理設備的訪問操作進行抽象。運動控制器數據結構具有通用設備的所有屬性和操作。同時,運動控制器數據結構還具有自身的操作方法,包括獲取關節控制器狀態、獲取關節角度、獲取關節角速度,這些操作方法通過函數指針的方式實現。
在空間機械臂數據管理軟件中,虛擬設備通過設備數據池獲取遙測數據,實現了上層應用與設備數據訪問的隔離。當軟件需求或者硬件配置發生變化時,設備數據池中存儲數據的起始位置和數據長度等信息會發生變化。此時,僅需要重寫虛擬設備的相關操作方法就能夠適應這些變化,而不需修改所有相關的上層應用,從而有效提高軟件的可移植性和可靠性。
在空間機械臂數據管理軟件中,對設備數據池業務的設計主要涉及3個方面的內容:
1)通過遙測采集配置表周期性更新設備數據池的數據
設備數據池業務根據遙測采集配置表周期性的向指定的設備發送遙測數據采集指令。遙測采集配置表由若干表項構成,如表3所示。

表3 遙測采集配置表的表項Table 3 Configuration table of telemetry acquisition
遙測采集配置表的表項與一條遙測采集指令相對應。表項的內容包括:遙測采集指令、遙測采集周期、采集設備數量、虛擬設備結構、遙測回傳數據的存放位置和長度。
遙測采集周期亦即遙測數據的更新周期,不同設備的遙測采集指令對應數據池的更新周期相互獨立。如:相機控制器的遙測數據采集指令CA 的更新周期為100 ms,CB 更新周期為500 ms,CC、CD更新周期為2000ms。
設備數量是指接收該條遙測采集指令的設備數目。設備數據池業務根據遙測采集配置表向所有具有該種遙測數據的設備發送采集指令,并將收到的回傳數據放置于不同設備數據池的相應位置。
虛擬設備指針的主要用途是:①確定設備類型、子類型,以確定發送該條遙測采集指令使用的方式;②確定設備邏輯標識,以通過設備訪問業務獲取遙測采集指令發送的目的地址;③根據虛擬設備指針索引數據池。
2)上層業務獲取設備數據池中存儲的數據
在空間機械臂數據管理軟件以及其他類似的星載軟件中,上層業務中的遙測參數匯集與下傳業務涉及大量周期性的數據拷貝操作。如果采用由設備虛擬化業務中函數接口的方式獲取數據,將導致函數接口數量大量增加,同時也增加數據處理的時間。由遙測參數匯集與下傳業務直接從數據池中獲取數據能夠提高軟件效率。但是,本文建議為了提高軟件的可移植性,除了遙測參數匯集與下傳業務(該業務直接針對設備數據池來設計),其他上層業務不直接對設備數據池進行訪問。
遙測參數匯集與下傳業務,將同種類型設備中相同采樣周期的數據組織成一個數據包下傳,如圖3所示。

圖3 空間機械臂數據管理軟件的設備數據池Fig.3 Device data pool in the data management software of the space manipulator
3)設備數據池中數據的有效性問題
設備數據池業務將上層業務與底層設備訪問隔離,在提高軟件效率、增強可移植性的同時,也帶來了設備數據池中數據的有效性問題。在空間機械臂數據管理軟件中采用“數據有效性標志數組”管理所有設備數據池中數據的有效性。
具體方法是:“數據有效性標志數組”中的每一個數據與一個設備的某條遙測采集指令的回傳數據塊相對應。當遙測采集指令回傳數據錯誤或者發生超時,設備數據池業務將該標志置為無效。上層應用或者設備虛擬化業務在使用設備數據池中的數據時,需要先判斷數據有效性標志。
空間機械臂數據管理軟件指的是系統中央控制器的軟件,它是由三層組成(如圖4所示)。頂層為應用程序,主要包括遙測參數匯集與下傳業務、遙控注入接收與處理業務、路徑規劃算法管理業務和健康管理業務;中間層為指令與數據獲取業務;底層為硬件通信接口相關業務。
設備訪問業務為其他CDAS 提供了硬件通信訪問接口,統一地接收、發送總線數據(數據流①),設備數據池業務和設備虛擬化業務分別通過設備訪問業務發送遙測采集指令和控制指令(數據流②、③),設備數據池業務通過設備訪問業務獲取遙測數據(數據流②),設備虛擬化業務僅從設備數據池業務處獲取遙測數據(數據流⑤)。
在應用程序中,遙測參數匯集與下傳業務與設備數據池業務和設備虛擬化業務進行交互,通過設備數據池業務獲取速變遙測和緩變遙測數據(數據流④),進行組織后通過設備虛擬化業務下傳(數據流⑥)。
遙控注入接收與處理業務只與設備虛擬化業務進行交互,通過設備虛擬化業務獲取來自空間站的遙控注入數據,并向機械臂內部總線轉發指令數據(數據流⑦)。
路徑規劃算法管理業務通過設備虛擬化業務在路徑規劃開始時,從運動控制器數據結構中獲取各個關節的初始關節角度以計算空間機械臂初始位姿,在與相機相關的路徑規劃模式中,實時地由相機控制器數據結構處獲取目標位姿參數,并通過設備虛擬化業務實時發送關節控制器控制指令(數據流⑧)。健康管理業務通過設備虛擬化業務實時檢測整個空間機械臂的工作狀態,并在確認發生故障時,通過該業務發送空間機械臂緊急停止指令(數據流⑨)。

圖4 空間機械臂數據管理軟件數據流圖Fig.4 Data flow graph in the data management software of the space manipulator
本文對CCSDS-CDAS模型的構架以及各組成部分進行了研究,結合設備虛擬化業務采用面向對象的方法對某空間機械臂各設備進行設備抽象,對CDAS模型中的基于設備數據池業務的遙測數據更新、上層業務數據獲取、數據有效性等重要問題進行了闡述,并提出了基于CDAS模型的機械臂數據管理軟件構架。目前,該軟件構架已成功應用于某空間機械臂的研發過程,為空間機械臂的數據管理提供了良好的構架支持,從而有效提高了軟件產品的質量和可靠性。現階段,應重點加強對以指令與數據獲取業務為代表的CCSDS航天器在軌接口業務的研究和應用,以提高我國星載軟件的通用化設計水平。
(References)
[1]張元昭.空間機動平臺自主管理系統體系結構研究—SDM 系統的分析與標準服務的實現[D].長沙:國防科技大學,2007
Zhang Yuanzhao.Research on space maneuver vehicle autonomous management architecture-SDM analysis and realization of standard services[D].Changsha:National University of Defense Technology,2007(in Chinese)
[2]CCSDS.Spacecraft onboard interfaces services,CCSDS 850.0-G-1[S].Washington:CCSDS,2007
[3]CCSDS.Spacecraft onboard interfaces services-device access service,CCSDS 871.0-R-2.1[S].Washington:CCSDS,2010
[4]CCSDS.Spacecraft onboard interfaces services-device data pooling service,CCSDS 871.1-R-2.1[S].Washington:CCSDS,2010
[5]CCSDS.Spacecraft onboard interfaces services-device virtualisation service,CCSDS 871.2-R-0.1[S].Washington:CCSDS,2009
[6]European Cooperation for Space Standardization.Space engineering:Ground systems and operations-telemetry and telecommand packet utilization,ECSS-E-70-41A[S].Netherlands:European Cooperation for Space Standardization,2003
[7]Space Software Laboratory.The satellite data model[EB/OL].[2007-07-16].http://sdl.usu.edu/index.htm
[8]張曉東.空間柔性機械臂控制策略研究[D].北京:北京郵電大學,2008
Zhang Xiaodong.Research on control strategy of flexible space manipulator[D].Beijing:Beijing University of Posts and Telecommunications,2008(in Chinese)
[9]于登云,孫京,馬興瑞.空間機械臂技術及發展建議[J].航天器工程,2007,16(4):1-8
Yu Dengyun,Sun Jing,Ma Xingrui.Suggestion on development of Chinese space manipulator technology[J].Spacecraft Engineering,2007,16(4):1-8(in Chinese)