陳浩瀾,張 藝,章小寧,黃 鎬,付偉達,姚雨迎
(1.電子科技大學(xué),四川 成都 611731;2.中國東方紅衛(wèi)星股份有限公司,北京 100094)
隨著分布式理論和應(yīng)用的日漸成熟,分布式概念在航空航天領(lǐng)域再次得到了廣泛關(guān)注。分布式星群由一組分布在同一或鄰近軌道上的衛(wèi)星組成。分布式星群網(wǎng)絡(luò)(Distributed Satellite Cluster Network,DSCN)利用組網(wǎng)協(xié)同、共軌控制技術(shù),整合空間上鄰近且獨立分布的衛(wèi)星資源,實現(xiàn)整體大于部分之和的效果。開展基于分布式星群的空間信息網(wǎng)絡(luò)研究具有重要的國家戰(zhàn)略意義。
微納衛(wèi)星(Micro-nano Satellite)是微型衛(wèi)星與納衛(wèi)星的統(tǒng)稱,通常是指質(zhì)量100 kg左右,具有實際功能的衛(wèi)星。它們體積小、功耗低、開發(fā)周期短、可編隊組網(wǎng),而且能以更低的成本完成很多復(fù)雜的空間任務(wù),使得微納衛(wèi)星是成為蓬勃發(fā)展的航天事業(yè)的一個重點發(fā)展方向[1]。
但是,微納衛(wèi)星本體的體積、質(zhì)量和成本大大下降,導(dǎo)致不能攜帶大的太陽電池帆板以提供大的電功率,也不能承載高增益天線以傳輸高速率數(shù)據(jù),且單星能力較弱。因此,多個微納衛(wèi)星組網(wǎng)成分布式星群統(tǒng)一完成航天任務(wù)已經(jīng)成為趨勢[2]。
本文提出一種可行的分布式星群組網(wǎng)方案,搭建仿真平臺驗證,并最終實現(xiàn)硬件平臺。本文結(jié)構(gòu)如下:第1節(jié)簡要說明分布式星群組網(wǎng)架構(gòu);第2節(jié)討論了組網(wǎng)的基本流程,包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層的一些基本技術(shù)指標(biāo)和實現(xiàn)方案;第3節(jié)展示了分布式星群組網(wǎng)仿真平臺的搭建及仿真結(jié)果;第4節(jié)展示了分布式星群組網(wǎng)硬件平臺的搭建;第5節(jié)總結(jié)全文,并提出對未來的展望。
本文主要研究的是分布式低軌微納衛(wèi)星星群組網(wǎng)。低軌微納衛(wèi)星星群的構(gòu)型為子母星群,包括一顆母衛(wèi)星和多顆子衛(wèi)星。母衛(wèi)星除了完成衛(wèi)星功能還需要釋放子衛(wèi)星。子母衛(wèi)星可以合作也可以獨立完成任務(wù)[3]。
分布式星群組網(wǎng)包括星群內(nèi)組網(wǎng)(直徑100 km左右,單個星群包括10顆小衛(wèi)星)和星群間組網(wǎng)(最多10個星簇)兩大類型。本文主要討論的是星群內(nèi)組網(wǎng)(如圖1所示),即在單個群內(nèi),群內(nèi)的衛(wèi)星節(jié)點形成本群的自組織網(wǎng)絡(luò)。星間自組織網(wǎng)絡(luò)體系架構(gòu)如圖2所示。
每個節(jié)點入網(wǎng)時,需要先進行初始時間同步。時間同步由數(shù)據(jù)鏈路層負(fù)責(zé)進行,完成時間同步后,才會進入數(shù)據(jù)通信階段,此時才可以在節(jié)點所屬的具體時隙進行數(shù)據(jù)的發(fā)送。
數(shù)據(jù)通信由不同網(wǎng)絡(luò)層次配合完成:最底層物理層是現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)實現(xiàn)的無線數(shù)據(jù)通信;數(shù)據(jù)鏈路層采用時分多址(Time division multiple access,TDMA)的同步接入方式傳遞數(shù)據(jù),并在長周期內(nèi)產(chǎn)生時間同步維護信息,完成周期性時間同步;網(wǎng)絡(luò)層和傳輸層周期性通過最優(yōu)化鏈路狀態(tài)路由協(xié)議(Optimal Link State Routing,OLSR)維護全網(wǎng)拓?fù)湫畔?,并封裝應(yīng)用層數(shù)據(jù),為數(shù)據(jù)鏈路層提供拓?fù)湫畔?;?yīng)用層產(chǎn)生數(shù)據(jù)報文。最終數(shù)據(jù)鏈路層對封裝的應(yīng)用層數(shù)據(jù)報文、網(wǎng)絡(luò)層OLSR控制報文、和時鐘同步信息提供時隙,完成通信。數(shù)據(jù)通信階段基本流程如圖3所示。
為了使用全向或?qū)挷ㄊ炀€,需要降低系統(tǒng)的頻率。經(jīng)計算在特高頻(Ultra High Frequency,UHF)頻段上較為可取[4]。擬選定600 MHz左右頻點,若有頻點沖突,則可另選。在該頻點,天線尺寸可以控制在不超過1 m,因為對于小型衛(wèi)星,尺寸不顯得過大。
在調(diào)制解調(diào)方式的選擇上,正交相移鍵控(Quadrature Phase Shift Keying,QPSK)和二進制相移鍵控(Binary Phase Shift Keying,BPSK)的解調(diào)Eb/N0門限相等,但BPSK的帶寬較大,在1/2信道糾錯編碼的情況下,使用BPSK的調(diào)制速率達到40 MBaud,使用不同滾降系數(shù),中頻/射頻帶寬達到40~80 MHz,對于UHF頻段來說,帶寬顯得很大,不利于天線和濾波器等射頻器件的設(shè)計。所以最終選用QPSK調(diào)制方式。使用0.5的滾降系數(shù),中頻/射頻帶寬為30 MHz。
在選擇FEC信道糾錯編碼時,考慮到媒體訪問控制(Medium Access Control,MAC)層使用基于TDMA的多址接入技術(shù),導(dǎo)致時序損耗較大。且低密度奇偶校驗碼(Low Density Parity Check Code,LDPC)碼具有譯碼復(fù)雜度低、可并行譯碼等優(yōu)點。因此選擇LDPC碼作為物理層的信道糾錯碼。
因此,物理層的大致參數(shù)如表1所示。
表1 物理層方案總體核心參數(shù)
鏈路預(yù)算:根據(jù)QPSK,LDPC(960,1 920),基帶峰值速率為20 Mb/s,故單天線接收靈敏度為-94 dBm;自由空間路徑損耗按單個星群最大直徑100 km,頻段600 MHz計算為128 dB;單個節(jié)點天線增益5 dB,雙邊一共10 dB;收發(fā)兩端接口及饋線損耗以2 dB計算;鏈路裕量為5 dB;
由此可得發(fā)射功率Pt=-94+128-10+2+5=31 dBm≈1.26 W。
在網(wǎng)絡(luò)初始階段,可以由全網(wǎng)內(nèi)節(jié)點編號或者MAC地址最小的節(jié)點(該節(jié)點可以被認(rèn)為是根節(jié)點)向其單跳的鄰居節(jié)點廣播同步消息,單跳的鄰居節(jié)點與根節(jié)點完成同步;然后完成新同步的節(jié)點又向它們的鄰居節(jié)點廣播同步消息,其鄰居節(jié)點完成時鐘同步。按照上述方式,全網(wǎng)的所有節(jié)點都完成了與根節(jié)點的時鐘同步。這種方式是基于樹狀拓?fù)涞臅r鐘同步機制。
同步機制采取類似于網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol,NTP)的兩階段握手機制(如圖4所示)。其交互過程如下:從節(jié)點向主節(jié)點發(fā)送時間同步請求報文,加上本地時間戳T1;主節(jié)點收到請求報文,紀(jì)錄到達時間戳T2;主節(jié)點封裝響應(yīng)報文,加上本地時間戳T3;從節(jié)點收到響應(yīng)報文,加上本地時間戳T4。因此,往返時延tdelay為:
主節(jié)點與從節(jié)點的時間偏移toffset為:
從節(jié)點計算出往返時延和時間偏移后,先檢查往返時延是否超過閾值,如果超過則認(rèn)為主節(jié)點不可達,并且不調(diào)整本地時鐘;如果不超過,從節(jié)點根據(jù)時鐘偏移調(diào)整本地時鐘,從而與主節(jié)點的時鐘同步。
時間同步后,各節(jié)點按各自固定時隙進行數(shù)據(jù)發(fā)送。時隙分配情況,如圖5所示。其中時隙1為信道申請時隙,主要用于新入網(wǎng)節(jié)點的異步入網(wǎng)申請。時隙2到時隙n是節(jié)點的發(fā)送時隙,可以按照動態(tài)或者靜態(tài)的方式將時隙分配給相應(yīng)的衛(wèi)星網(wǎng)絡(luò)節(jié)點,節(jié)點的發(fā)送時隙主要包括時鐘同步信息、路由與拓?fù)淇刂菩畔⒁约白陨淼臄?shù)據(jù)信息。任何上電啟動的自組織網(wǎng)絡(luò)節(jié)點在一開始都會先進行信道偵聽,在1~2個通信周期內(nèi)偵聽全網(wǎng)的同步包。
如果能夠收到全網(wǎng)的時隙同步報文,說明已經(jīng)有網(wǎng)絡(luò)存在并完成了全網(wǎng)時鐘建立。此時新入網(wǎng)節(jié)點就在時隙1上發(fā)起入網(wǎng)申請,通過接收相鄰節(jié)點的時鐘信息完成全網(wǎng)時鐘同步。
如果沒有收到任何時隙同步報文,說明網(wǎng)絡(luò)時鐘同步未建立,此時就使用完全的異步接入完成路由表建立和網(wǎng)絡(luò)時鐘同步過程。
路由表和全網(wǎng)時鐘同步建立之后,數(shù)據(jù)傳輸?shù)膹?fù)雜性就大為降低。為了提高系統(tǒng)運行的可靠性,故采取固定時隙的分配方案,即每個衛(wèi)星網(wǎng)絡(luò)節(jié)點在預(yù)先分配好的時隙上發(fā)送數(shù)據(jù)包。
按照路由建立的方式不同,自組織網(wǎng)絡(luò)可分為先應(yīng)式路由協(xié)議、后應(yīng)式路由協(xié)議[5-6]。先應(yīng)式路由協(xié)議需要周期性地發(fā)送Hello報文感知鄰居節(jié)點并廣播路由信息,因此需要發(fā)送大量的控制報文。后應(yīng)式路由協(xié)議雖然能夠減小控制報文的開銷,但存在不確定性,包括目的節(jié)點是否可達的不確定性以及路由建立延時的不確定性。現(xiàn)有的研究表明,后應(yīng)式路由協(xié)議的時延遠遠大于先應(yīng)式路由建立的時延[7]??紤]到本場景為單個星群,所涉及的星間自組織網(wǎng)絡(luò)節(jié)點數(shù)目少,單個星群只有10個節(jié)點,這就意味著Hello報文和拓?fù)淇刂茍笪囊?guī)模有限,故可采用先應(yīng)式的路由協(xié)議,為應(yīng)用層典型任務(wù)提供明確的可預(yù)期的時延保障[8]。
OLSR協(xié)議是先應(yīng)式的路由協(xié)議[9],其流程包括5個部分,分別是:鄰居發(fā)現(xiàn)、多點中繼(Multipoint Relays,MPR)選擇、TC分組消息擴散建立拓?fù)?、路由建立和路由維護[10]。OLSR協(xié)議流程中各部分的介紹如下。
(1)鄰居發(fā)現(xiàn)。OLSR協(xié)議通過周期性的廣播Hello分組消息來發(fā)現(xiàn)鄰居,建立鄰居表。值得注意的是,OLSR需要尋找對稱鏈路,通過對稱鏈路尋找過程(如圖6所示),網(wǎng)絡(luò)中的節(jié)點均建立起了自己的對稱一跳鄰居集合。
(2)MPR選擇。協(xié)議選擇的MPR選擇算法流程圖如圖7所示。該算法本身是一個貪婪選擇算法,當(dāng)MPR節(jié)點覆蓋所有二跳鄰居時,算法結(jié)束。
(3)TC分組消息擴散建立拓?fù)洹.?dāng)選好MPR后,每個MPR節(jié)點均會建立起自己的一個MPR Selectors表。這個表指定了在建立拓?fù)涞臅r候,MPR節(jié)點要轉(zhuǎn)發(fā)來自哪些節(jié)點的TC分組消息[11]。
(4)路由建立。當(dāng)拓?fù)浣⑵饋碇?,OLSR的路由算法采用基于跳數(shù)的Dijkstra算法,從拓?fù)浣Y(jié)構(gòu)中找到源節(jié)點到目的節(jié)點的最短路徑。
(5)路由維護。如果有新的節(jié)點加入到拓?fù)渲?,OLSR則會建立新的拓?fù)浜吐酚桑^程和前面所述步驟相同。OLSR的每一條信息均是周期更新,并且每一條目均有有效時間的概念。若節(jié)點丟失,丟失節(jié)點的中繼節(jié)點的鄰居信息表有效時間結(jié)束后,會首先更新鄰居信息,其次再通過TC分組按照上述流程更新。網(wǎng)絡(luò)會建立起新的拓?fù)洹?/p>
針對小規(guī)模星群內(nèi)組網(wǎng)(10顆節(jié)點),采用固定時隙TDMA的方式進行接入,采用OLSR進行路由。設(shè)定了一種衛(wèi)星仿真工具包(Satellite Tool Kit,STK)測試場景:半徑為100 km的拓?fù)湫∫?guī)模型群間組網(wǎng)(如圖8所示)。因為半徑為100 km的拓?fù)渲?0顆星在數(shù)據(jù)鏈路層是非全連通的,可以觀察報文的路由路徑和報文的端到端時延。
采用分層網(wǎng)絡(luò)架構(gòu)的思想對OPNET的節(jié)點模型進行設(shè)計,如圖9所示,分為物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層。物理層包含接收機模塊、發(fā)射機模塊、接受天線模塊和發(fā)射天線模塊;數(shù)據(jù)鏈路為TDMA模塊;網(wǎng)絡(luò)層為OLSR模塊,這些模塊通過OPNET的包流線相連,模擬跨層通信。
針對半徑為100 km的場景,得到10個節(jié)點的路由表,從每個節(jié)點的路由表可以發(fā)現(xiàn)半徑100 km拓?fù)涫且粋€非全連通的。如圖10所示,發(fā)現(xiàn)節(jié)點0到節(jié)點9的下一跳是節(jié)點1,節(jié)點1的下一跳才是節(jié)點9,因而如果有一個報文要從節(jié)點0到節(jié)點9,必須經(jīng)過節(jié)點1的轉(zhuǎn)發(fā)。
此外,在半徑100 km場景下,在節(jié)點0到節(jié)點9之間注入1 Mb/s的數(shù)據(jù)流時,節(jié)點0到9的端到端時延圖,如圖11所示。由圖11可以發(fā)現(xiàn),由于路由會發(fā)生切換,所以時延會有所波動。
為了更進一步驗證OLSR適應(yīng)拓?fù)渥兓募皶r性,在半徑100 km的場景中人為制造節(jié)點失效的情況。具體操作是讓節(jié)點2在某時刻失效,觀察其他節(jié)點路由表的變化。如圖12所示,在節(jié)點2失效以前,節(jié)點9到節(jié)點0的報文需要經(jīng)過節(jié)點2的轉(zhuǎn)發(fā),當(dāng)節(jié)點2失效之后,節(jié)點9不僅知曉了節(jié)點2的失效,而且還重新規(guī)劃了一條到節(jié)點0的路由,全程大約在5 s內(nèi)完成切換。
物理層硬件實現(xiàn)方案總體框圖如圖13所示。
整個硬件由以下幾個部分構(gòu)成。
(1)嵌入式處理板:負(fù)責(zé)網(wǎng)絡(luò)層協(xié)議和應(yīng)用層的功能,CPU可選ARM核心的A10或相近系列的型號,操作系統(tǒng)使用Linux。
(2)軟件無線電處理板:負(fù)責(zé)數(shù)據(jù)通信部分和測距部分的物理層和鏈路層的中頻數(shù)字化,軟件無線電處理板對外直接輸出指定頻點的射頻小信號,電平大約在-15 dBm。
(3)射頻組件:包含射頻混功放、濾波器、低噪放和雙工器。
(4)天線:使用單根收發(fā)天線。
(5)軟件無線電處理板:結(jié)構(gòu)見圖14所示。
(6)網(wǎng)口:嵌入式與軟件無線電處理板之間的接口為100 Mb/s網(wǎng)口,網(wǎng)口之間進行數(shù)據(jù)和命令的交互。
軟件無線電處理板內(nèi)部使用FPGA實現(xiàn)數(shù)據(jù)鏈路層和物理層的基帶處理。選擇Xilinx公司的高密度低功耗產(chǎn)品Artix-7系列,型號為XC7A200T。AD9361芯片在TDD雙工支持最大56 MHz射頻帶寬、數(shù)字接口處最高61 Ms/s的I/Q采樣率。而需要的基帶峰值速率為大約20 Mb/s,使用QPSK映射,1/2信道編碼,最終碼元速率大約為20 MBaud。滾降系數(shù)為0.5時,信號射頻帶寬為30 MHz左右。物理層實現(xiàn)部分包括調(diào)制解調(diào)、信道糾錯、碰撞檢測、時延測量等部分。
本文的OLSR在olsr.org OLSR daemon[12]的基礎(chǔ)上在Linux系統(tǒng)下實現(xiàn),該方案同olsr.org OLSR daemon相兼容。
OLSR協(xié)議的實現(xiàn)通過端口號為698的UDP端口收發(fā)路由控制分組,然后維護鄰居表,進行邏輯計算,最后生成路由表并反映到內(nèi)核路由表中[13-14]。數(shù)據(jù)分組和協(xié)議控制分組按照內(nèi)核路由表中的最佳匹配表項進行發(fā)送和轉(zhuǎn)發(fā)。當(dāng)網(wǎng)絡(luò)中有分組到達本節(jié)點時,內(nèi)核將判斷該分組的目的地是否是自己,如果不是,則“轉(zhuǎn)發(fā)功能模塊”根據(jù)內(nèi)核路由表轉(zhuǎn)發(fā)該分組;如果是,則根據(jù)分組的不同交給相應(yīng)的模塊進行處理,當(dāng)收到OLSR協(xié)議控制分組時,轉(zhuǎn)由OLSR路由協(xié)議模塊處理。
將每個節(jié)點依次和Linux虛擬機相連,運行OLSR協(xié)議。路由收斂后節(jié)點0路由表如下,此時全網(wǎng)有3個節(jié)點(節(jié)點0、1、2),并處于全連通??梢?,協(xié)議正常運行。
使用iperf進行單端流量測試,結(jié)果如圖18所示??梢妴味肆髁繒r延抖動jitter平均為37.5 ms左右。因為每個節(jié)點時隙為20 ms,因此較為正常。
使用ping進行往返時延(Round Trip Time,RTT)測試,可以發(fā)現(xiàn)節(jié)點0到節(jié)點1和節(jié)點1到節(jié)點0的RTT并不一致。這是因為節(jié)點0的時隙在節(jié)點1的時隙之前,如圖19所示,節(jié)點0 ping節(jié)點1可以在一個時間周期內(nèi)完成Internet控制報文協(xié)議(Internet Control Message Protocol,ICMP)的request和reply。如圖20所示,節(jié)點1 ping節(jié)點0時要等待下一個周期的節(jié)點0時隙才會收到節(jié)點0發(fā)送的ICMP reply報文。
本文對于分布式低軌微納衛(wèi)星星群組網(wǎng),提出了一種可行的通信組網(wǎng)方案:網(wǎng)絡(luò)層使用OLSR協(xié)議建立路由;數(shù)據(jù)鏈路層使用TDMA以及物理層的核心參數(shù)選?。淮罱塑浖抡嫫脚_和硬件驗證平臺進行測試,進一步確定了方案的可行性。
在仿真測試時,也發(fā)現(xiàn)了一些問題,如TDMA協(xié)議分配的時隙會影響到各個節(jié)點的交互時延,不同軌道位置的衛(wèi)星對通信的需求也有所不同。故TDMA協(xié)議的時隙分配與衛(wèi)星在軌道中不同位置的關(guān)系值得進一步思考。此外,微納衛(wèi)星自組網(wǎng)中有新節(jié)點接入時,從鏈路層接入到網(wǎng)絡(luò)層接入的過程是一個值得優(yōu)化的重要場景。
此外,本文主要討論的分布式星群場景是節(jié)點數(shù)量較少的小星群場景,當(dāng)更多的小星群聯(lián)合起來組成大規(guī)模的分布式星群系統(tǒng)時,單個衛(wèi)星節(jié)點要維護整個星群間網(wǎng)絡(luò)的拓?fù)?,比如?00個節(jié)點,對于星上載荷資源嚴(yán)重受限的微納衛(wèi)星是不現(xiàn)實的。
一種可行方案是組網(wǎng)采用分層的路由協(xié)議。由于小衛(wèi)星在執(zhí)行典型任務(wù)時已經(jīng)進行了分群。因此可以將大規(guī)模星群間組網(wǎng)分為兩個層次,第一層是星群間組網(wǎng),第二層是星群內(nèi)組網(wǎng)。每個星群的簇首節(jié)點運行簇間路由信息交互,簇內(nèi)節(jié)點使OLSR進行簇內(nèi)信息交互。星群間組網(wǎng)和星群內(nèi)組網(wǎng)可以采取相同的組網(wǎng)模式,用不同發(fā)射頻率的信道加以區(qū)分。在下一步工作中,設(shè)計組網(wǎng)方案時還要充分考慮簇首節(jié)點的負(fù)載瓶頸等問題。