陸嵐 劉欣 余晟 周波 朱劍冰
(北京空間飛行器總體設(shè)計部,北京 100094)
航天器間通過無線或有線鏈路進行組網(wǎng),構(gòu)建空間網(wǎng)絡(luò)已成為當(dāng)前空間信息技術(shù)發(fā)展的重要趨勢。為了在空間網(wǎng)絡(luò)上實現(xiàn)更高效和穩(wěn)定的數(shù)據(jù)傳輸,網(wǎng)絡(luò)路由技術(shù)也已成為研究的關(guān)鍵。我國空間站系統(tǒng)中,多個航天器通過交會對接構(gòu)建大型航天器組合體后,也需利用航天器間1553B總線網(wǎng)絡(luò)進行信息交換。
基于1553B總線[1-2]的星內(nèi)路由技術(shù)目前已有一定應(yīng)用[3-4];星間網(wǎng)絡(luò)技術(shù)研究一方面主要集中在導(dǎo)航衛(wèi)星[5]和微小衛(wèi)星[6]領(lǐng)域,重點關(guān)注無線星間鏈路以及相關(guān)的路由算法[7],不適用于拓撲相對穩(wěn)定的有線空間網(wǎng)絡(luò);另一方面提出了天地一體化網(wǎng)絡(luò)概念[8],將空間信息網(wǎng)[9-10]與地面通信網(wǎng)融合[11-13],但也有協(xié)議開銷大、網(wǎng)絡(luò)安全等問題。這些技術(shù)成果都不能滿足空間站系統(tǒng)航天器間信息交互需求。
在這種背景下,本文提出了一種適用于航天器間1553B總線網(wǎng)絡(luò)的數(shù)據(jù)包路由實現(xiàn)機制。該機制簡化了傳輸層和網(wǎng)絡(luò)層的協(xié)議,直接面對應(yīng)用層的數(shù)據(jù)包進行集中式靜態(tài)路由,大大提高了處理器資源和總線資源的使用效率。應(yīng)用驗證表明該機制的傳輸效率和傳輸時延均能夠滿足空間站各類平臺關(guān)鍵數(shù)據(jù)的交互需求。
圖1為空間站系統(tǒng)若干航天器間通過1553B總線網(wǎng)絡(luò)互聯(lián)拓撲示意圖。圖1中實線表示1553B總線物理連接關(guān)系,虛線表示虛擬的信息交互關(guān)系。各航天器均設(shè)置若干條平臺1553B總線,用于傳輸各分系統(tǒng)遙測、遙控、以及其他重要數(shù)據(jù)。這些平臺1553B總線的總線控制器BC作為路由節(jié)點。各航天器的路由節(jié)點之間也通過1553B總線互連。通過這些1553B總線物理連接關(guān)系將所有航天器上接入1553B總線的設(shè)備構(gòu)成一個統(tǒng)一的總線網(wǎng)絡(luò),通過若干路由節(jié)點的協(xié)同工作,可實現(xiàn)網(wǎng)絡(luò)上任意兩個設(shè)備間的數(shù)據(jù)交互。
圖1 航天器間1553B總線網(wǎng)絡(luò)互聯(lián)拓撲Fig.1 1553B bus network interconnection topology among spacecraft
在總線網(wǎng)絡(luò)上,以某一個需要在航天器間進行傳輸?shù)臄?shù)據(jù)包PKi為例,其傳輸數(shù)據(jù)流見圖2。該數(shù)據(jù)包的來源設(shè)備記為源節(jié)點,傳輸終點記為目的節(jié)點。假定源節(jié)點是路由節(jié)點1主控的某條1553B總線BUS1上的遠程終端(remote terminal,RT),地址為RT1,子地址(sub address,SA)為SA1;目的節(jié)點是路由節(jié)點3主控的某條1553B總線BUS6上的遠程終端,地址為RT6,子地址為SA6。僅以單一數(shù)據(jù)包PKi為例,該數(shù)據(jù)包傳輸途中經(jīng)過三個路由節(jié)點的三次路由描述如下:①路由節(jié)點1將PKi從總線BUS1,地址RT1,子地址SA1采集,再發(fā)送到總線BUS2,地址RT2,子地址SA2;②路由節(jié)點2將PKi從總線BUS3,地址RT3,子地址SA3采集,再發(fā)送到總線BUS4,地址RT4,子地址SA4;③路由節(jié)點3將PKi從總線BUS5,地址RT5,子地址SA5采集,再發(fā)送到總線BUS6,地址RT6,子地址SA6。
圖2 航天器間數(shù)據(jù)包路由Fig.2 Data packets routing among spacecraft
空間站信息系統(tǒng)的應(yīng)用層采用了高級在軌系統(tǒng)(AOS)的包裝業(yè)務(wù)。所有接入1553B總線網(wǎng)絡(luò)的設(shè)備在進行數(shù)據(jù)發(fā)送時,需利用包裝業(yè)務(wù)對各個應(yīng)用過程產(chǎn)生的數(shù)據(jù)按一定格式形成包裝規(guī)約數(shù)據(jù)單元,簡稱數(shù)據(jù)包。
數(shù)據(jù)包格式中包含重要的邏輯地址信息見表1。主導(dǎo)頭16 bit中包含11 bit的包應(yīng)用標識(APID)信息,與副導(dǎo)頭16 bit一起作為邏輯地址。原則是以盡量少的bit定義系統(tǒng)中數(shù)據(jù)包的邏輯信息,降低路由開銷。邏輯地址不同字段分別定義為:目的端航天器標識(3 bit)、目的端分系統(tǒng)標識(4 bit)、目的端設(shè)備標識(8 bit)、數(shù)據(jù)類型標識(4 bit)和源分系統(tǒng)標識(4 bit)。尋址范圍包括空間站組合體狀態(tài)下8個航天器、每個航天器16個分系統(tǒng)、每個分系統(tǒng)256臺設(shè)備、每臺設(shè)備接收16種數(shù)據(jù)類型、每種數(shù)據(jù)類型16種來源。根據(jù)現(xiàn)有空間站信息傳輸需求,以此方式定義的邏輯地址具備唯一性,可支持空間站系統(tǒng)全網(wǎng)范圍內(nèi)尋址。所有接入空間站總線網(wǎng)絡(luò)的設(shè)備,只需遵循同樣格式和字段定義,即可完成數(shù)據(jù)收發(fā)。
表1 數(shù)據(jù)包邏輯地址
1553B網(wǎng)絡(luò)需要由總線控制器(BC)發(fā)起消息的采集。系統(tǒng)中的路由節(jié)點都需按照給定周期發(fā)出所有總線上的采集消息,因此每個路由節(jié)點配置了一張靜態(tài)的采集表,其中每個表項對應(yīng)一個1553B上需要采集的物理地址,主要信息包含采集總線編號、地址、子地址、消息長度、采集周期等。路由節(jié)點定期遍歷采集表,按照每個表項信息,發(fā)出對應(yīng)的若干個總線消息,并完成所有總線消息的后續(xù)處理。
有線1553B網(wǎng)絡(luò)拓撲相對穩(wěn)定,數(shù)據(jù)流也具有周期性特點,因此采用了靜態(tài)路由方式,即預(yù)先分配路由路徑地址。路由的過程即靜態(tài)尋址過程,也就是邏輯地址到物理地址的轉(zhuǎn)化。數(shù)據(jù)包物理地址定義見圖3,分為路由節(jié)點內(nèi)部處理數(shù)據(jù)包和外部發(fā)送數(shù)據(jù)包:內(nèi)部包物理地址描述為內(nèi)部處理進程的編號;外部包物理地址包含目的總線編號、地址、子地址,共計24 bit。
圖3 數(shù)據(jù)包物理地址Fig.3 Physical address of data packet
該尋址方式要求數(shù)據(jù)包傳輸時,通過查找路由表,完成路由路徑選擇。因此,需要路由節(jié)點啟動時,完成一張靜態(tài)路由表的配置工作,將系統(tǒng)中各設(shè)備的邏輯地址與下一跳的物理地址進行一一對應(yīng)。路由表存儲于各路由節(jié)點的內(nèi)部存儲器中,采用哈希表結(jié)構(gòu)。通過哈希算法進行查找可提高查找速度。數(shù)據(jù)包到達路由節(jié)點時,路由節(jié)點按照數(shù)據(jù)包的邏輯地址查找路由表,若找到對應(yīng)項,則將該數(shù)據(jù)包從對應(yīng)項中所指示的下一跳物理地址轉(zhuǎn)發(fā)出去。
每個路由節(jié)點的路由過程控制見圖4。由軟件實現(xiàn)整個路由控制,主要包含輸入控制和輸出控制兩個模塊,其軟件流程參見圖5。
輸入控制模塊負責(zé)1553B總線上的數(shù)據(jù)采集。該模塊以固定周期啟動工作,啟動后即遍歷采集表,根據(jù)每一個采集表項生成若干個總線消息并發(fā)送,之后等待總線消息返回。待所有總線消息返回后,該模塊完成所有消息處理,將需要進行路由的數(shù)據(jù)包依次拷貝到一個公共的數(shù)據(jù)包緩沖區(qū)。以圖4中的某個采集表項為例,其對應(yīng)了某數(shù)據(jù)源給出的位于總線“BUS1,RT1,SA1”的n個數(shù)據(jù)包序列,記為PK1~PKn。輸入控制模塊按照這個采集表項發(fā)出了m個總線消息,在消息返回后將PK1~PKn全部數(shù)據(jù)內(nèi)容(包含導(dǎo)頭)從1553B總線存儲區(qū)拷貝到了公共數(shù)據(jù)包緩沖區(qū)。
圖4 數(shù)據(jù)包路由過程控制Fig.4 Data packets routing process control
圖5 軟件處理流程圖Fig.5 Software process flowchart
輸出控制模塊也以固定周期啟動,啟動后遍歷數(shù)據(jù)包緩沖區(qū)。針對所有數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的主導(dǎo)頭APID和副導(dǎo)頭信息計算出32 bit邏輯地址,并查找路由表信息得到對應(yīng)表項。先對數(shù)據(jù)包屬性進行判斷:如為內(nèi)部數(shù)據(jù)包,即路由節(jié)點自身為目的節(jié)點,則將該數(shù)據(jù)包發(fā)到相應(yīng)內(nèi)部進程處理;如為外部數(shù)據(jù)包,則先從數(shù)據(jù)包緩沖區(qū)中拷貝到一個臨時緩沖區(qū),再按照路由表描述的下一跳物理地址生成相應(yīng)的總線消息隊列,最后依次發(fā)送這些總線消息。以圖4中的數(shù)據(jù)包序列PK1~PKn為例,輸出控制模塊遍歷到PK1時,根據(jù)PK1的主導(dǎo)頭APID和副導(dǎo)頭信息計算出32 bit邏輯地址,再查找路由表得到物理地址“BUS2,RT2,SA2”,最后將PK1按照該地址發(fā)送出去;依次處理PK2~PKn,將PK2發(fā)送到“BUS3,RT3,SA3”,最后將PKn發(fā)送到“BUS4,RT4,SA4”。
上述路由機制除了前面描述的一對一路由,還可實現(xiàn)組播路由。即一個數(shù)據(jù)包發(fā)送到多個目的節(jié)點。這種需求在航天器上多臺設(shè)備協(xié)同工作時非常普遍。傳統(tǒng)的處理方法是數(shù)據(jù)源節(jié)點直接發(fā)送多份相同數(shù)據(jù)包到多個目的節(jié)點。這種方法顯而易見增加了鏈路開銷以及鏈路上所有路由節(jié)點的資源開銷,在系統(tǒng)資源有限的空間信息系統(tǒng)內(nèi)不是最優(yōu)選擇。
本文提出的路由機制采用了附加路由表解決組播路由問題,也就是在前文描述的主路由表之外增加一張附加路由表。附加路由表也由哈希表實現(xiàn),同一數(shù)據(jù)包可通過附加路由表映射到多個物理地址,這些地址可通過哈希沖突鏈表進行查找。如圖6所示,PK1可通過附加路由表找到3個物理地址“BUS1,RT1,SA1”、“BUS2,RT2,SA2”和“BUS3,RT3,SA3”。那么PK1從數(shù)據(jù)包緩沖區(qū)拷貝3份,每份分別對應(yīng)不同的物理地址形成總線消息并發(fā)送出去。
圖6 附加路由表示意圖Fig.6 Illustration of extra route table
附加路由表和主路由表一樣,在路由節(jié)點啟動時完成配置。一對多的拷貝只需在傳輸路徑分叉的路由節(jié)點上完成,這種方式可最大程度上節(jié)約系統(tǒng)資源,提高傳輸效率。組播路由方式?jīng)]有應(yīng)用限制,空間站系統(tǒng)全網(wǎng)范圍的所有數(shù)據(jù)包均可采用組播路由方式進行一對多路由。
本文提出的數(shù)據(jù)包路由機制已應(yīng)用于空間站組合體的信息系統(tǒng)。該組合體由3個可獨立運行的航天器組成。信息系統(tǒng)包含3個互聯(lián)的主干1553B網(wǎng)絡(luò)。每個主干1553B網(wǎng)絡(luò)包含6條1553B總線、一個路由節(jié)點和數(shù)十臺接入網(wǎng)絡(luò)的設(shè)備。
3個路由節(jié)點均采用了主頻100M的3803CPU,以軟件實現(xiàn)數(shù)據(jù)包路由機制,包括所有數(shù)據(jù)包采集和路由發(fā)送。某路由節(jié)點內(nèi)維護的采集表和路由表部分內(nèi)容如表2和表3所示。該路由節(jié)點按照采集表中每一項發(fā)出總線上的采集消息,在采集到數(shù)據(jù)包后查找路由表獲得數(shù)據(jù)包下一跳的物理地址。例如每500 ms為周期,對總線2上RT地址為26的設(shè)備A,采集到其子地址17上的62 byte數(shù)據(jù)包。再根據(jù)數(shù)據(jù)包主導(dǎo)頭APID為和副導(dǎo)頭信息匹配到路由表第一項,則將數(shù)據(jù)包發(fā)送至總線2上RT地址1的子地址20。當(dāng)系統(tǒng)中數(shù)據(jù)路由需求有變化時,可通過數(shù)據(jù)注入對采集表和路由表的相應(yīng)表項進行修改。如某設(shè)備故障可迅速將該設(shè)備輸入輸出的數(shù)據(jù)包切換至本艙段備份的設(shè)備、甚至其他艙段的同類設(shè)備。
表2 某路由節(jié)點的采集表
表3 某路由節(jié)點的路由表
測試系統(tǒng)包含航天器上3個路由節(jié)點的真實軟硬件和地面軟件。通過地面軟件仿真3個主干1553B網(wǎng)絡(luò)上的數(shù)據(jù)源節(jié)點,模擬總線上各數(shù)據(jù)包的周期性發(fā)送,數(shù)據(jù)量與真實在軌應(yīng)用需求一致。
航天器實際在軌應(yīng)用中某路由節(jié)點的數(shù)據(jù)包交互需求共50項,數(shù)據(jù)包長度12~892 byte。其中42個數(shù)據(jù)包為周期性傳輸,8個數(shù)據(jù)包為突發(fā)性傳輸。周期性數(shù)據(jù)包中含6個一對三組播數(shù)據(jù)包。
實測單一主干1553B網(wǎng)絡(luò)上的傳輸量為平均每500 ms有42個數(shù)據(jù)包,共8107 byte。每個數(shù)據(jù)包按照協(xié)議增加的報頭和報尾共10 byte,因此網(wǎng)絡(luò)上實際用戶有效數(shù)據(jù)傳輸量為7687 byte,有效數(shù)據(jù)傳輸效率達到94%;如果采用地面廣泛使用的UDP/IP協(xié)議進行路由,網(wǎng)絡(luò)中協(xié)議開銷包括各層傳輸協(xié)議所增加的報頭和報尾,共32 byte。欲達到同樣有效數(shù)據(jù)傳輸量,網(wǎng)絡(luò)上的傳輸量需達9031 byte,有效數(shù)據(jù)傳輸效率僅為85%??梢娽槍υ谲墝嶋H應(yīng)用中數(shù)據(jù)包長度變化大,特別是短數(shù)據(jù)包較多的數(shù)據(jù)傳輸需求,采用該路由機制能夠降低協(xié)議開銷,提高有效數(shù)據(jù)傳輸效率。
實際在軌應(yīng)用中周期性數(shù)據(jù)的傳輸周期要求為最小500 ms,無實時性要求;對于突發(fā)性數(shù)據(jù)包有實時性要求,最小為200 ms。通過實測發(fā)現(xiàn)單一主干1553B網(wǎng)絡(luò)內(nèi)的周期性數(shù)據(jù)包路由時間延遲平均為101 ms,在總線消息發(fā)送設(shè)置優(yōu)先級調(diào)度后,高優(yōu)先級數(shù)據(jù)包最小路由延遲可達20 ms。兩類數(shù)據(jù)的傳輸時延均能滿足使用要求并有充分余量。
針對組播路由方式進行評估:每500 ms周期傳輸6個一對三組播數(shù)據(jù)包,共228 byte,實測占用總線帶寬14 kbit/s。若采用一對一路由方式,總線帶寬為21 kbit/s??梢姴捎靡粚θM播方式在實際應(yīng)用中可節(jié)約總線帶寬30%。測試中發(fā)現(xiàn),組播路由方式的數(shù)據(jù)傳輸效率和傳輸時延與一對一路由基本一致。
綜上,實驗驗證表明該數(shù)據(jù)包路由機制的數(shù)據(jù)傳輸效率高、數(shù)據(jù)傳輸時延小,并能對長期在軌航天器的故障維修和系統(tǒng)重構(gòu)提供有力支持。
本文給出的數(shù)據(jù)包路由機制已在空間站系統(tǒng)中得到實施,并取得了良好效果。目前空間站三艙路由節(jié)點均應(yīng)用了該機制,實現(xiàn)了單艙內(nèi)部和兩艙、三艙之間的穩(wěn)定可靠數(shù)據(jù)傳輸。
后續(xù)與空間站對接的各類飛船和來訪航天器均可使用該路由機制,與空間站三艙進行數(shù)據(jù)包交互。前提是其數(shù)據(jù)源設(shè)備遵循文中所描述的數(shù)據(jù)包格式和字段定義生成數(shù)據(jù)包。來訪航天器與空間站完成交會對接后,空間站三艙路由節(jié)點可通過在軌注入方法更新其采集表和路由表,之后即可實現(xiàn)來訪航天器與三艙的數(shù)據(jù)交換。在地面支持的情況下,系統(tǒng)具有較好的擴展性。