王彧澤 呂良慶何睿
(1 中國科學院國家空間科學中心 復雜航天系統電子信息技術重點實驗室,北京 100190)(2 中國科學院大學,北京 100049)
航天器使用的數據主要有遙測數據、遙控數據和應用數據,按照內容或傳輸通道又可以進一步劃分工程參數、遙測通道數據、數傳通道數據、輔助數據、科學數據、上行數據注入等。不同的航天器對這些數據對象的定義不同,通常是通過特定的接口定義和接口控制文件的方式來確定。這樣會導致數據在任務過程中不易修改,需要有特定的基礎設施進行數據的處理,并在工程過程中進行測試驗證。這種做法使得數據的定義難以跨任務復用,即使能夠復用,也需要通過校對、測試驗證等手段保證其正確性,增大了系統的開發和維護風險[1-2]。
針對這一問題,需要一種通用的方法來描述不同的數據對象。本文采用歐洲空間標準化合作組織(ECSS)的包應用標準(PUS)[3]給出的航天器數據對象從數據類型、數據參數到數據格式的通用定義方法,進行了電子數據單(EDS)實例化設計和工具實現,重點是抽象數據結構的描述[4-5],可以用于定義任意的數據對象。
數據對象的定義需要按照定義抽象數據架構、給出數據對象模板、生成數據對象3個過程進行[6]。信息對象是不同專業領域中的描述對象,表現為所需要素和方法的數據對象構成的抽象數據架構,一般通過描述語言的模式(Schema)定義來實現,例如可擴展標記語言(XML)的Schema。在Schema基礎上,對數據對象的實例化描述構成了數據對象模板,然后在實際使用過程中,通過填入數據值,生成最終的數據對象。
描述數據對象的抽象數據架構按照UML類圖的畫法如圖1所示。
在抽象數據架構中,對數據對象的描述分為元數據部分和數據部分。元數據部分包含數據類型,通過包域類型代碼(PTC)和包域格式代碼(PFC)的組合來定義,說明該數據類型參數的格式和所占空間大小,是后續解析和處理數據對象的主要依據。數據部分包含數據參數和數據格式。數據參數是組成數據格式的最小單元。數據格式由一系列數據參數組成,按照參數是否可重復出現劃分為簡單數據格式和復雜數據格式。
按照PUS的數據定義方法,采用XML語言設計的通用數據對象Schema如圖2所示。

圖2 數據對象Schema
圖2中定義一個完整的數據對象過程按照定義數據類型、數據參數、簡單數據格式、復雜數據格式的順序進行。在實際使用中,可以通過XML語言的引用機制,按需截取圖中的一部分來使用,而不必是完整的。
定義數據類型時采用PUS標準中的PTC和PFC組合來描述。PTC的取值對應表示具體的數據類型。PFC的定義對應PTC的取值,規定了相應數據類型的表示格式和保存空間大小。圖2中的標簽
定義數據參數時,需要指明數據參數所引用的數據類型,并且每個參數有且僅有一個數據類型。在之后的數據處理中,需要依據該數據參數的數據類型ID信息(屬性PTC和PFC)解析數據參數值。標簽
數據格式又分為簡單數據格式和復雜數據格式。簡單數據格式由若干不重復的參數組成。標簽
復雜數據格式由若干個可重復的簡單數據格式組成。標簽
圖2復雜數據格式中不直接包含數據參數。如果一個參數要單獨出現在復雜數據格式中,也需要先將其定義為簡單數據格式,再引用到復雜數據格式中。這樣做是為了規范和簡化復雜數據格式的定義規則,清晰數據定義的層次關系。
數據定義工具依據數據定義方法進行設計,提供給使用者,用于按需設計生成不同的數據對象模板。數據定義工具原理如圖3所示。

圖3 數據定義工具原理圖
圖3中每定義一個數據類型、數據參數或數據格式,需要在數據定義庫中的相應表中添加一條記錄,并生成相應的數據對象模板文件。數據格式的定義會使用到庫中已定義的參數,參數的定義會使用到已有的數據類型,以此類推,這一過程允許用戶自由定義所需的格式。生成后的模板文件也可以根據需要,按照不同領域的標準進行數據格式轉換,從而便于異構系統之間進行數據交換,同時適用于不同領域的數據應用。例如圖3中,可以按照CCSDS提出的基于XML的遙測遙控信息交換(XTCE)標準[7-10],轉換生成相應的遙測或遙控數據的XTCE文件,按照CCSDS的航天器接口業務(SOIS)[11]電子數據單(SEDS)標準[12],轉換生成用于描述設備、業務和應用的EDS文件。
數據定義工具的軟件架構采用分層的思想,從上到下分別是視圖層、應用層、業務邏輯層和數據定義庫,如圖4所示。

圖4 數據定義工具軟件架構圖
圖4下層向上層提供調用方法,而下層方法的具體實現對上層來說是透明的,使得各個層之間解耦,便于后續軟件的擴展與維護。
視圖層提供了用戶可直接操作的前端界面,用戶可以通過界面查看已定義的數據對象信息,定義新的數據對象。
應用層包括數據類型管理、數據參數管理、簡單數據格式管理、復雜數據格式管理、模板文件下載等功能,通過界面展示給用戶,供用戶操作。
業務邏輯層提供了具體的數據處理流程,包括數據對象處理、模板文件解析和模板文件生成等功能。數據對象處理提供對某一具體數據對象的增、刪、改、查方法。例如,用戶通過前端界面定義了一個數據類型信息,即PTC和PFC的值。數據對象處理功能接收到后,首先實例化一個數據類型對象,為該對象的屬性ptc和pfc賦PTC和PFC的值,自動生成數據類型名和數據類型ID,然后將這一條新記錄寫入數據庫的數據類型表中。模板文件解析是解析數據對象Schema的結構。模板文件生成是將已定義的內容填入Schema中,生成模板文件。
最下面一層是數據定義庫,存儲了數據類型、數據參數、數據格式的信息。
以某衛星遙測大綱中的遙測包數據域結構為例,使用數據定義工具進行定義,表1中展示了遙測包數據域的部分內容。表1中的數據組織可視為一個簡單數據格式,包含5個參數。這5個參數需要使用兩種數據類型描述,分別是8 bit的無符號整型和4 bit的無符號整型。數據定義工具生成的數據對象模板文件如圖5所示。圖5標簽

表1 遙測包數據域部分內容
根據圖2的數據對象Schema生成了圖5的數據對象模板后,如果要在某一應用領域中使用的話,可以將已定義好的數據對象模板嵌入該領域的標準Schema中。例如,將其轉換為XTCE形式,如圖6所示。

圖6 轉換后XTCE模板文件
圖6由上到下,第1個方框內為數據類型信息,第2個方框內為數據參數信息,第3個方框內為數據格式信息。
在XTCE Schema中,以
數據模板的轉換需要分析確定數據對象模板中的標簽與XTCE Schema標簽的對應關系。在數據對象模板文件中,標簽
PUS標準給出的數據定義方法和相應的數據定義工具可以用于地面研制過程中的設計和測試工作。在設計工作中,使用數據定義工具允許更加靈活地設計新的數據類型、參數和數據格式,方便對數據對象的增、刪、改、查,相比于傳統的接口控制文件方式可以提高工作效率。在測試工作中,可以將數據定義工具及其數據定義結果加入測試系統中,方便數據的測試對比分析,以及更改的追蹤。在跨任務使用時,相同的數據類型、格式不需要重復定義,在建立可靠的追蹤關系下,可以直接復用,從而節省了部分校對和測試驗證工作。相應的測試系統設施只需要按照某種標準進行數據轉換,就可以實現系統設施的復用。
數據定義工具可以單獨使用,生成符合圖2數據對象Schema描述的數據對象模板文件。在將其應用到某一特定領域時,還需要結合該領域的標準Schema進行轉換,完成領域的數據對象定義,例如前面提到的CCSDS的XTCE標準和SEDS標準描述的遙測、遙控和設備的數據信息。按照同樣的道理,只要某一應用領域也有相應的應用數據模型的定義標準,數據定義工具也可以用于應用數據的定義,從而擴大了數據定義工具的應用領域范圍。
PUS標準已經定義了12種數據類型。在此基礎上,數據定義工具可以在這12種數據類型中定義所需要的各種細化數據類型,也可以將成熟的數據格式組合定義為新的數據類型,實現越來越復雜的數據類型和格式的增量式定義和開發,以應對越來越復雜、多樣、靈活的數據描述需求。
本文在PUS標準提出的數據定義方法基礎上,分析了數據對象的構成,包括數據對象的元數據部分(數據類型)和數據部分(數據參數和數據格式),提出了通用的數據對象Schema,設計實現了相應的生成數據對象模板的數據定義工具,支持對數據類型、數據參數和數據格式的靈活定義、查找、刪除和修改。數據定義方法及其工具可以更快速、高效地定義不同的數據對象,支持數據對象的重用。數據對象模板通過明確與所屬的領域數據標準Schema標簽對應關系,即可以繼承使用數據格式,而不用再另外開發相應的軟件。