王彧澤 呂良慶何睿
(1 中國科學(xué)院國家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點實驗室,北京 100190)(2 中國科學(xué)院大學(xué),北京 100049)
航天器使用的數(shù)據(jù)主要有遙測數(shù)據(jù)、遙控數(shù)據(jù)和應(yīng)用數(shù)據(jù),按照內(nèi)容或傳輸通道又可以進一步劃分工程參數(shù)、遙測通道數(shù)據(jù)、數(shù)傳通道數(shù)據(jù)、輔助數(shù)據(jù)、科學(xué)數(shù)據(jù)、上行數(shù)據(jù)注入等。不同的航天器對這些數(shù)據(jù)對象的定義不同,通常是通過特定的接口定義和接口控制文件的方式來確定。這樣會導(dǎo)致數(shù)據(jù)在任務(wù)過程中不易修改,需要有特定的基礎(chǔ)設(shè)施進行數(shù)據(jù)的處理,并在工程過程中進行測試驗證。這種做法使得數(shù)據(jù)的定義難以跨任務(wù)復(fù)用,即使能夠復(fù)用,也需要通過校對、測試驗證等手段保證其正確性,增大了系統(tǒng)的開發(fā)和維護風(fēng)險[1-2]。
針對這一問題,需要一種通用的方法來描述不同的數(shù)據(jù)對象。本文采用歐洲空間標(biāo)準(zhǔn)化合作組織(ECSS)的包應(yīng)用標(biāo)準(zhǔn)(PUS)[3]給出的航天器數(shù)據(jù)對象從數(shù)據(jù)類型、數(shù)據(jù)參數(shù)到數(shù)據(jù)格式的通用定義方法,進行了電子數(shù)據(jù)單(EDS)實例化設(shè)計和工具實現(xiàn),重點是抽象數(shù)據(jù)結(jié)構(gòu)的描述[4-5],可以用于定義任意的數(shù)據(jù)對象。
數(shù)據(jù)對象的定義需要按照定義抽象數(shù)據(jù)架構(gòu)、給出數(shù)據(jù)對象模板、生成數(shù)據(jù)對象3個過程進行[6]。信息對象是不同專業(yè)領(lǐng)域中的描述對象,表現(xiàn)為所需要素和方法的數(shù)據(jù)對象構(gòu)成的抽象數(shù)據(jù)架構(gòu),一般通過描述語言的模式(Schema)定義來實現(xiàn),例如可擴展標(biāo)記語言(XML)的Schema。在Schema基礎(chǔ)上,對數(shù)據(jù)對象的實例化描述構(gòu)成了數(shù)據(jù)對象模板,然后在實際使用過程中,通過填入數(shù)據(jù)值,生成最終的數(shù)據(jù)對象。
描述數(shù)據(jù)對象的抽象數(shù)據(jù)架構(gòu)按照UML類圖的畫法如圖1所示。
在抽象數(shù)據(jù)架構(gòu)中,對數(shù)據(jù)對象的描述分為元數(shù)據(jù)部分和數(shù)據(jù)部分。元數(shù)據(jù)部分包含數(shù)據(jù)類型,通過包域類型代碼(PTC)和包域格式代碼(PFC)的組合來定義,說明該數(shù)據(jù)類型參數(shù)的格式和所占空間大小,是后續(xù)解析和處理數(shù)據(jù)對象的主要依據(jù)。數(shù)據(jù)部分包含數(shù)據(jù)參數(shù)和數(shù)據(jù)格式。數(shù)據(jù)參數(shù)是組成數(shù)據(jù)格式的最小單元。數(shù)據(jù)格式由一系列數(shù)據(jù)參數(shù)組成,按照參數(shù)是否可重復(fù)出現(xiàn)劃分為簡單數(shù)據(jù)格式和復(fù)雜數(shù)據(jù)格式。
按照PUS的數(shù)據(jù)定義方法,采用XML語言設(shè)計的通用數(shù)據(jù)對象Schema如圖2所示。
圖2 數(shù)據(jù)對象Schema
圖2中定義一個完整的數(shù)據(jù)對象過程按照定義數(shù)據(jù)類型、數(shù)據(jù)參數(shù)、簡單數(shù)據(jù)格式、復(fù)雜數(shù)據(jù)格式的順序進行。在實際使用中,可以通過XML語言的引用機制,按需截取圖中的一部分來使用,而不必是完整的。
定義數(shù)據(jù)類型時采用PUS標(biāo)準(zhǔn)中的PTC和PFC組合來描述。PTC的取值對應(yīng)表示具體的數(shù)據(jù)類型。PFC的定義對應(yīng)PTC的取值,規(guī)定了相應(yīng)數(shù)據(jù)類型的表示格式和保存空間大小。圖2中的標(biāo)簽
定義數(shù)據(jù)參數(shù)時,需要指明數(shù)據(jù)參數(shù)所引用的數(shù)據(jù)類型,并且每個參數(shù)有且僅有一個數(shù)據(jù)類型。在之后的數(shù)據(jù)處理中,需要依據(jù)該數(shù)據(jù)參數(shù)的數(shù)據(jù)類型ID信息(屬性PTC和PFC)解析數(shù)據(jù)參數(shù)值。標(biāo)簽
數(shù)據(jù)格式又分為簡單數(shù)據(jù)格式和復(fù)雜數(shù)據(jù)格式。簡單數(shù)據(jù)格式由若干不重復(fù)的參數(shù)組成。標(biāo)簽
復(fù)雜數(shù)據(jù)格式由若干個可重復(fù)的簡單數(shù)據(jù)格式組成。標(biāo)簽
圖2復(fù)雜數(shù)據(jù)格式中不直接包含數(shù)據(jù)參數(shù)。如果一個參數(shù)要單獨出現(xiàn)在復(fù)雜數(shù)據(jù)格式中,也需要先將其定義為簡單數(shù)據(jù)格式,再引用到復(fù)雜數(shù)據(jù)格式中。這樣做是為了規(guī)范和簡化復(fù)雜數(shù)據(jù)格式的定義規(guī)則,清晰數(shù)據(jù)定義的層次關(guān)系。
數(shù)據(jù)定義工具依據(jù)數(shù)據(jù)定義方法進行設(shè)計,提供給使用者,用于按需設(shè)計生成不同的數(shù)據(jù)對象模板。數(shù)據(jù)定義工具原理如圖3所示。
圖3 數(shù)據(jù)定義工具原理圖
圖3中每定義一個數(shù)據(jù)類型、數(shù)據(jù)參數(shù)或數(shù)據(jù)格式,需要在數(shù)據(jù)定義庫中的相應(yīng)表中添加一條記錄,并生成相應(yīng)的數(shù)據(jù)對象模板文件。數(shù)據(jù)格式的定義會使用到庫中已定義的參數(shù),參數(shù)的定義會使用到已有的數(shù)據(jù)類型,以此類推,這一過程允許用戶自由定義所需的格式。生成后的模板文件也可以根據(jù)需要,按照不同領(lǐng)域的標(biāo)準(zhǔn)進行數(shù)據(jù)格式轉(zhuǎn)換,從而便于異構(gòu)系統(tǒng)之間進行數(shù)據(jù)交換,同時適用于不同領(lǐng)域的數(shù)據(jù)應(yīng)用。例如圖3中,可以按照CCSDS提出的基于XML的遙測遙控信息交換(XTCE)標(biāo)準(zhǔn)[7-10],轉(zhuǎn)換生成相應(yīng)的遙測或遙控數(shù)據(jù)的XTCE文件,按照CCSDS的航天器接口業(yè)務(wù)(SOIS)[11]電子數(shù)據(jù)單(SEDS)標(biāo)準(zhǔn)[12],轉(zhuǎn)換生成用于描述設(shè)備、業(yè)務(wù)和應(yīng)用的EDS文件。
數(shù)據(jù)定義工具的軟件架構(gòu)采用分層的思想,從上到下分別是視圖層、應(yīng)用層、業(yè)務(wù)邏輯層和數(shù)據(jù)定義庫,如圖4所示。
圖4 數(shù)據(jù)定義工具軟件架構(gòu)圖
圖4下層向上層提供調(diào)用方法,而下層方法的具體實現(xiàn)對上層來說是透明的,使得各個層之間解耦,便于后續(xù)軟件的擴展與維護。
視圖層提供了用戶可直接操作的前端界面,用戶可以通過界面查看已定義的數(shù)據(jù)對象信息,定義新的數(shù)據(jù)對象。
應(yīng)用層包括數(shù)據(jù)類型管理、數(shù)據(jù)參數(shù)管理、簡單數(shù)據(jù)格式管理、復(fù)雜數(shù)據(jù)格式管理、模板文件下載等功能,通過界面展示給用戶,供用戶操作。
業(yè)務(wù)邏輯層提供了具體的數(shù)據(jù)處理流程,包括數(shù)據(jù)對象處理、模板文件解析和模板文件生成等功能。數(shù)據(jù)對象處理提供對某一具體數(shù)據(jù)對象的增、刪、改、查方法。例如,用戶通過前端界面定義了一個數(shù)據(jù)類型信息,即PTC和PFC的值。數(shù)據(jù)對象處理功能接收到后,首先實例化一個數(shù)據(jù)類型對象,為該對象的屬性ptc和pfc賦PTC和PFC的值,自動生成數(shù)據(jù)類型名和數(shù)據(jù)類型ID,然后將這一條新記錄寫入數(shù)據(jù)庫的數(shù)據(jù)類型表中。模板文件解析是解析數(shù)據(jù)對象Schema的結(jié)構(gòu)。模板文件生成是將已定義的內(nèi)容填入Schema中,生成模板文件。
最下面一層是數(shù)據(jù)定義庫,存儲了數(shù)據(jù)類型、數(shù)據(jù)參數(shù)、數(shù)據(jù)格式的信息。
以某衛(wèi)星遙測大綱中的遙測包數(shù)據(jù)域結(jié)構(gòu)為例,使用數(shù)據(jù)定義工具進行定義,表1中展示了遙測包數(shù)據(jù)域的部分內(nèi)容。表1中的數(shù)據(jù)組織可視為一個簡單數(shù)據(jù)格式,包含5個參數(shù)。這5個參數(shù)需要使用兩種數(shù)據(jù)類型描述,分別是8 bit的無符號整型和4 bit的無符號整型。數(shù)據(jù)定義工具生成的數(shù)據(jù)對象模板文件如圖5所示。圖5標(biāo)簽
表1 遙測包數(shù)據(jù)域部分內(nèi)容
根據(jù)圖2的數(shù)據(jù)對象Schema生成了圖5的數(shù)據(jù)對象模板后,如果要在某一應(yīng)用領(lǐng)域中使用的話,可以將已定義好的數(shù)據(jù)對象模板嵌入該領(lǐng)域的標(biāo)準(zhǔn)Schema中。例如,將其轉(zhuǎn)換為XTCE形式,如圖6所示。
圖6 轉(zhuǎn)換后XTCE模板文件
圖6由上到下,第1個方框內(nèi)為數(shù)據(jù)類型信息,第2個方框內(nèi)為數(shù)據(jù)參數(shù)信息,第3個方框內(nèi)為數(shù)據(jù)格式信息。
在XTCE Schema中,以
數(shù)據(jù)模板的轉(zhuǎn)換需要分析確定數(shù)據(jù)對象模板中的標(biāo)簽與XTCE Schema標(biāo)簽的對應(yīng)關(guān)系。在數(shù)據(jù)對象模板文件中,標(biāo)簽
PUS標(biāo)準(zhǔn)給出的數(shù)據(jù)定義方法和相應(yīng)的數(shù)據(jù)定義工具可以用于地面研制過程中的設(shè)計和測試工作。在設(shè)計工作中,使用數(shù)據(jù)定義工具允許更加靈活地設(shè)計新的數(shù)據(jù)類型、參數(shù)和數(shù)據(jù)格式,方便對數(shù)據(jù)對象的增、刪、改、查,相比于傳統(tǒng)的接口控制文件方式可以提高工作效率。在測試工作中,可以將數(shù)據(jù)定義工具及其數(shù)據(jù)定義結(jié)果加入測試系統(tǒng)中,方便數(shù)據(jù)的測試對比分析,以及更改的追蹤。在跨任務(wù)使用時,相同的數(shù)據(jù)類型、格式不需要重復(fù)定義,在建立可靠的追蹤關(guān)系下,可以直接復(fù)用,從而節(jié)省了部分校對和測試驗證工作。相應(yīng)的測試系統(tǒng)設(shè)施只需要按照某種標(biāo)準(zhǔn)進行數(shù)據(jù)轉(zhuǎn)換,就可以實現(xiàn)系統(tǒng)設(shè)施的復(fù)用。
數(shù)據(jù)定義工具可以單獨使用,生成符合圖2數(shù)據(jù)對象Schema描述的數(shù)據(jù)對象模板文件。在將其應(yīng)用到某一特定領(lǐng)域時,還需要結(jié)合該領(lǐng)域的標(biāo)準(zhǔn)Schema進行轉(zhuǎn)換,完成領(lǐng)域的數(shù)據(jù)對象定義,例如前面提到的CCSDS的XTCE標(biāo)準(zhǔn)和SEDS標(biāo)準(zhǔn)描述的遙測、遙控和設(shè)備的數(shù)據(jù)信息。按照同樣的道理,只要某一應(yīng)用領(lǐng)域也有相應(yīng)的應(yīng)用數(shù)據(jù)模型的定義標(biāo)準(zhǔn),數(shù)據(jù)定義工具也可以用于應(yīng)用數(shù)據(jù)的定義,從而擴大了數(shù)據(jù)定義工具的應(yīng)用領(lǐng)域范圍。
PUS標(biāo)準(zhǔn)已經(jīng)定義了12種數(shù)據(jù)類型。在此基礎(chǔ)上,數(shù)據(jù)定義工具可以在這12種數(shù)據(jù)類型中定義所需要的各種細(xì)化數(shù)據(jù)類型,也可以將成熟的數(shù)據(jù)格式組合定義為新的數(shù)據(jù)類型,實現(xiàn)越來越復(fù)雜的數(shù)據(jù)類型和格式的增量式定義和開發(fā),以應(yīng)對越來越復(fù)雜、多樣、靈活的數(shù)據(jù)描述需求。
本文在PUS標(biāo)準(zhǔn)提出的數(shù)據(jù)定義方法基礎(chǔ)上,分析了數(shù)據(jù)對象的構(gòu)成,包括數(shù)據(jù)對象的元數(shù)據(jù)部分(數(shù)據(jù)類型)和數(shù)據(jù)部分(數(shù)據(jù)參數(shù)和數(shù)據(jù)格式),提出了通用的數(shù)據(jù)對象Schema,設(shè)計實現(xiàn)了相應(yīng)的生成數(shù)據(jù)對象模板的數(shù)據(jù)定義工具,支持對數(shù)據(jù)類型、數(shù)據(jù)參數(shù)和數(shù)據(jù)格式的靈活定義、查找、刪除和修改。數(shù)據(jù)定義方法及其工具可以更快速、高效地定義不同的數(shù)據(jù)對象,支持?jǐn)?shù)據(jù)對象的重用。數(shù)據(jù)對象模板通過明確與所屬的領(lǐng)域數(shù)據(jù)標(biāo)準(zhǔn)Schema標(biāo)簽對應(yīng)關(guān)系,即可以繼承使用數(shù)據(jù)格式,而不用再另外開發(fā)相應(yīng)的軟件。