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