劉聰聰 韓宇 孫鈺林 袁素春 肖化超 朱紅 袁玉 王元樂
(西安空間無線電技術(shù)研究所,西安 710071)
北京三號B衛(wèi)星是一顆高分辨率商業(yè)遙感衛(wèi)星,衛(wèi)星軌道高度約為500km,具備超高敏捷、超高穩(wěn)定及超高精度獲取影像能力,可快速高效提取大量的超高分辨率遙感衛(wèi)星數(shù)據(jù)和信息產(chǎn)品。衛(wèi)星裝載了高分辨率大寬幅全色/多光譜雙相機(jī)組合,星下點地面成像分辨率全色0.5m,多光譜2m,雙相機(jī)成像幅寬優(yōu)于23km,為國內(nèi)首顆任意航跡成像的亞米級遙感衛(wèi)星。
隨著近年來遙感衛(wèi)星分辨率的快速提升,載荷數(shù)據(jù)速率也越來越高,星載設(shè)備海量數(shù)據(jù)傳輸處理設(shè)計成為衛(wèi)星系統(tǒng)設(shè)計的關(guān)鍵技術(shù)[1]。北京三號B衛(wèi)星裝載的高分辨率相機(jī)系統(tǒng)有效載荷速率高達(dá)18.7Gbit/s,接口峰值速率高達(dá)36.04Gbit/s,基于LVDS與TLK2711技術(shù)的傳統(tǒng)數(shù)據(jù)傳輸技術(shù)已無法滿足衛(wèi)星系統(tǒng)要求[2]。因此,針對北京三號B衛(wèi)星數(shù)據(jù)路由傳輸處理需求,設(shè)計了一種基于萬兆網(wǎng)接口和高速串行GTX/GTH互聯(lián)的海量數(shù)據(jù)傳輸與處理系統(tǒng)。本文首先對系統(tǒng)的總體設(shè)計和方案設(shè)計進(jìn)行了說明,之后對系統(tǒng)設(shè)計的關(guān)鍵技術(shù)進(jìn)行了介紹,包括萬兆網(wǎng)接口傳輸技術(shù)、高速GTX/GTH互聯(lián)傳輸技術(shù)和數(shù)據(jù)路由設(shè)計。
北京三號B衛(wèi)星配備1臺綜合智能處理器完成4路高分辨率相機(jī)數(shù)據(jù)接收、數(shù)據(jù)路由分發(fā)、圖像壓縮、目標(biāo)檢測、數(shù)據(jù)存儲和下傳編碼等功能。綜合智能處理器由下位機(jī)、路由處理單元、計算單元、存儲單元和適配單元組成,其中下位機(jī)接收星務(wù)計算機(jī)遙控指令實現(xiàn)單機(jī)內(nèi)各單元的工作模式控制并將單機(jī)工作狀態(tài)遙測上報至星務(wù)計算機(jī),路由處理單元實現(xiàn)相機(jī)數(shù)據(jù)接收、數(shù)據(jù)路由分發(fā)功能,計算單元實現(xiàn)圖像壓縮與目標(biāo)檢測功能,存儲單元實現(xiàn)星載數(shù)據(jù)存儲并根據(jù)任務(wù)需求進(jìn)行數(shù)據(jù)回放功能,適配單元完成下傳數(shù)據(jù)信道編碼功能[3]。綜合智能處理器各單元連接關(guān)系如圖1所示。
綜合智能處理器路由處理單元作為單機(jī)數(shù)據(jù)處理核心節(jié)點,通過4片萬兆網(wǎng)接口接收4路探測器數(shù)據(jù),在超大規(guī)?,F(xiàn)場可編程門陣列(FPGA)中完成相機(jī)數(shù)據(jù)接收、圖像數(shù)據(jù)解析、格式編排、緩存處理,并根據(jù)系統(tǒng)總體任務(wù)要求通過高速串行收發(fā)器GTX/GTH接口與串行解串Serdes接口對計算單元、存儲單元和適配單元進(jìn)行數(shù)據(jù)路由。路由處理單元原理框圖如圖2所示。
圖2 路由處理單元設(shè)計框圖
萬兆網(wǎng)接口芯片是一種雙向點對點的高速數(shù)據(jù)傳輸接口芯片,常用于設(shè)備間數(shù)據(jù)的高速互連。單片接口芯片設(shè)計有2個冗余XAUI收發(fā)器(XAUI A和XAUI B),可通過外部控制信號進(jìn)行配置選擇。單區(qū)(XAUIA或XAUIB)包括32bit數(shù)據(jù)位、4bit標(biāo)識位,最高支持有效速率10Gbit/s獨立接口(XGMII)和線速率12.5Gbit/s的數(shù)據(jù)收發(fā)。在芯片內(nèi)部集成了時鐘恢復(fù)電路、時鐘倍頻同步電路、逗號檢測電路、并/串與串/并轉(zhuǎn)換單元、8b10b編碼/解碼器、自檢單元等功能單元[4]?;谛酒邆鬏斔俾省⒏呒啥群透呖煽啃缘奶攸c,非常適合用于星載設(shè)備間高速數(shù)據(jù)傳輸。
3.1.1 數(shù)據(jù)傳輸鏈路
芯片發(fā)送端接收XGMII端32bit并行數(shù)據(jù)和4bit數(shù)據(jù)標(biāo)識,經(jīng)先進(jìn)先出(FIFO)緩存和時鐘補(bǔ)償處理送入8b10b編碼器,再經(jīng)并/串變換后通過XAUI差分發(fā)送端口輸出,完成數(shù)據(jù)發(fā)送。芯片接收端時鐘恢復(fù)電路從XAUI端差分接收信號中恢復(fù)出隨路時鐘,并進(jìn)行串/并變換,經(jīng)過逗號檢測電路進(jìn)行字節(jié)邊界對齊后,將并行數(shù)據(jù)送入8b10b解碼器進(jìn)行校驗解碼恢復(fù)出32bit并行數(shù)據(jù)和4bit數(shù)據(jù)標(biāo)識位,從芯片XGMII并行數(shù)據(jù)端口輸出,完成數(shù)據(jù)接收。
萬兆網(wǎng)接口數(shù)據(jù)傳輸是一種基于包操作的鏈路傳輸,因此根據(jù)芯片傳輸特性,制定了一種基于K碼與D碼的鏈路傳輸協(xié)議。協(xié)議數(shù)據(jù)幀結(jié)構(gòu)由幀頭控制符(/S/)、幀尾控制符(/T/)、數(shù)據(jù)單元(/D/)和空碼(/I/)4部分組成,如圖3所示。
圖3 協(xié)議數(shù)據(jù)幀格式
在數(shù)據(jù)幀傳輸時,依次發(fā)送幀頭(/S/)、數(shù)據(jù)單元(/D/)和幀尾(/T/),數(shù)據(jù)幀發(fā)送完成后發(fā)送連續(xù)同步字符保證傳輸鏈路的同步,如表1所示。
表1 控制字符
包含幀頭的輸出D[31:0]:16進(jìn)制為/FF/FF/FF/FB/,占用4byte,對應(yīng)標(biāo)識位TXC/RXC為二進(jìn)制”0001”;包含幀尾的輸出D[31:0]:16進(jìn)制為/07/07/07/FD/,占用4byte,對應(yīng)標(biāo)識位TXC/RXC為二進(jìn)制”0001”;數(shù)據(jù)單元:數(shù)據(jù)單元是由若干個32比特數(shù)據(jù)組成的數(shù)據(jù)流,對應(yīng)標(biāo)識位TXC/RXC為二進(jìn)制”0000”。發(fā)送端在時鐘上升沿發(fā)送數(shù)據(jù)單元的第1個字節(jié)對應(yīng)列。
3.1.2 萬兆網(wǎng)接口軟件設(shè)計
萬兆網(wǎng)接口是雙時鐘沿處理芯片,芯片在發(fā)送端采用源中心對齊的時序方式,此時TCLK/RCLK的時鐘跳變沿與數(shù)據(jù)中心對齊。在FPGA內(nèi)部進(jìn)行數(shù)據(jù)處理時,為保證設(shè)計時序與設(shè)計可靠性,通常采用單時鐘沿處理。FPGA內(nèi)部接口數(shù)據(jù)接收設(shè)計框圖如圖4所示。
圖4 萬兆網(wǎng)接口數(shù)據(jù)接收設(shè)計框圖
FPGA接收到芯片發(fā)送的隨路時鐘RCLK、接收控制符RXC(3:0)、接收數(shù)據(jù)RXD(31:0)后,對RCLK進(jìn)行全局時鐘驅(qū)動和相位控制,IDDR_rx模塊將雙時鐘跳變沿的RXC(3:0)、RXD(31:0)變換為單時鐘跳變沿數(shù)據(jù),根據(jù)協(xié)議約定即可解析出有效數(shù)據(jù)及相應(yīng)的門控信號。但是由于芯片在鏈路傳輸過程中,為了匹配發(fā)送端與接收端的頻差、相位偏移等因素,會在鏈路中填充一定量的同步字符,以保持?jǐn)?shù)據(jù)鏈路穩(wěn)定。這會導(dǎo)致在發(fā)送端使用時鐘下降沿發(fā)送的幀頭,在接收端可能出現(xiàn)在時鐘上升沿位置。所以在使用IDDR將雙時鐘沿數(shù)據(jù)轉(zhuǎn)換成單時鐘沿數(shù)據(jù)后,需要根據(jù)協(xié)議幀頭在64bit數(shù)據(jù)的高位或低位自適應(yīng)解析。因此設(shè)計了一種高可靠數(shù)據(jù)自適應(yīng)協(xié)議解析方法,實時監(jiān)控鏈路數(shù)據(jù)狀態(tài),對數(shù)據(jù)進(jìn)行實時調(diào)整,保證調(diào)整后的單時鐘沿數(shù)據(jù)的協(xié)議幀頭在數(shù)據(jù)高位位置。之后根據(jù)鏈路傳輸協(xié)議進(jìn)行數(shù)據(jù)解析,當(dāng)識別到協(xié)議幀頭后固定截取相機(jī)圖像行長度數(shù)據(jù),并將有效數(shù)據(jù)對應(yīng)的門控信號置為高。設(shè)計中采用截圖固定長度數(shù)據(jù)的方式,可以有效避免因前端載荷異常輸入引起的后續(xù)數(shù)據(jù)傳輸處理錯誤,提高系統(tǒng)數(shù)據(jù)處理可靠性。
高速GTX/GTH收發(fā)器是用于FPGA之間或FPGA與SerDes芯片之間的一種高速數(shù)據(jù)傳輸接口,單個GTX串行收發(fā)器可支持500Mbit/s~12.5Gbit/s傳輸速率,GTH串行收發(fā)器最高可支持13.1Gbit/s[5]。在使用FPGA中內(nèi)置的GTX/GTH串行收發(fā)器時,僅需提供外部參考時鐘即可,不需要額外的硬件資源,降低了設(shè)計復(fù)雜度且節(jié)約單板布局面積,非常適合星載設(shè)備的短距離高速數(shù)據(jù)傳輸。FPGA根據(jù)封裝形式不同,片內(nèi)包含多個Quad高速串行收發(fā)器單元,每個Quad高速收發(fā)器中包含4路GTX/GTH收發(fā)器,4路收發(fā)器可單獨作為獨立通道使用,也可以進(jìn)行通道綁定,增加接口帶寬,提高傳輸速率[6]。同時GTX/GTH收發(fā)器使用靈活,支持Aurora、RapidI/O、PCIExpress等多種接口協(xié)議。
3.2.1 基于Aurora協(xié)議的GTX/GTH接口
Aurora協(xié)議是一種開放的、免費的輕量級的可配置數(shù)據(jù)鏈路層協(xié)議,它允許任何數(shù)據(jù)分組通過Aurora協(xié)議封裝,為私有上層協(xié)議或標(biāo)準(zhǔn)上層協(xié)議提供透明接口[7]。Aurora IP核是為方便用戶使用,將Aurora協(xié)議進(jìn)行封裝僅保留部分靈活設(shè)置參數(shù)而設(shè)計的固化模塊。Aurora IP核為用戶提供了完整的用戶接口,用戶在使用過程中無需處理繁瑣的協(xié)議控制,僅需處理用戶接口,極大提高了設(shè)計效率。根據(jù)編碼方式,可分為基于8b10b編解碼和64b66b編解碼的兩種IP核。鑒于Aurora 8b10b輕量化和易擴(kuò)展特性,在北京三號B衛(wèi)星綜合智能處理器設(shè)計中,使用基于8b10b編解碼的Aurora IP核完成路由單元與其他數(shù)據(jù)單元的全路由高速數(shù)據(jù)互聯(lián)。
Aurora 8b10b核內(nèi)部主要由用戶發(fā)送接口、用戶接收接口、通道邏輯、全局邏輯和串行收發(fā)器組成[8],如圖5所示。
圖5 Aurora 8b10b原理框圖
(1)用戶發(fā)送接口:將用戶的數(shù)據(jù)傳送至發(fā)送通道中,并執(zhí)行流控制發(fā)送功能。
(2)用戶接收接口:從Aurora通道中接收有效數(shù)據(jù)然后傳輸給用戶部分,同時執(zhí)行流量控制功能。
(3)通道邏輯:用來初始化和驅(qū)動每個高速收發(fā)器,處理控制字符的編/解碼操作以及執(zhí)行鏈路錯誤檢測功能。
(4)全局邏輯:主要用來執(zhí)行通道初始化的綁定和驗證工作,產(chǎn)生Aurora協(xié)議所需的隨機(jī)空閑字符,并檢測所有通道邏輯模塊產(chǎn)生的錯誤。
(5)串行收發(fā)器:主要用于數(shù)據(jù)串/并、并/串轉(zhuǎn)換,時鐘恢復(fù)和串行接口驅(qū)動等功能。
3.2.2 Aurora8b10b協(xié)議接口軟件設(shè)計
在進(jìn)行Aurora 8b10b核配置時,用戶接口模式可以選擇幀接口模式和流數(shù)據(jù)接口模式。幀模式用戶接口符合AMBA?AXI4-Stream協(xié)議規(guī)范,流模式用戶接口允許在沒有幀分隔符的情況下發(fā)送數(shù)據(jù),與幀模式接口相比,使用資源更少,操作更加簡單[9]。因此在航天器設(shè)計時使用流模式進(jìn)行接口設(shè)計,通道線速率設(shè)置為3.125Gbit/s,同時為滿足路由單元與計算單元、存儲單元間不小于10Gbit/s數(shù)據(jù)傳輸速率,使用4通道綁定傳輸模式。接口參數(shù)配置如表2所示。
表2 Aurora 8b10b接口參數(shù)配置
軟件設(shè)計時,對Aurora8b10b參數(shù)設(shè)置后,還需要相應(yīng)的時鐘管理、復(fù)位管理等模塊設(shè)計。Vivado開發(fā)設(shè)計套件對Aurora8b10b提供了良好的設(shè)計用例,在工程應(yīng)用時,可以調(diào)用example_design中的rtl用例,修改頂層時鐘、復(fù)位、差分輸入、差分輸出、用戶接口等參數(shù)適配型號使用的工程板卡。除此之外,關(guān)鍵在于用戶接口信號時序設(shè)計,在用戶進(jìn)行數(shù)據(jù)發(fā)送和接收時,必須按照Aurora 8b10b接口時序進(jìn)行設(shè)計。流模式接口時序如圖6所示。
圖6 Aurora 8b10b核流模式時序圖
分析流模式接口時序發(fā)現(xiàn),僅在s_axi_tx_ready為高時才可以發(fā)送數(shù)據(jù),否則數(shù)據(jù)無法正確傳輸。且由于s_axi_tx_ready信號置低具有隨機(jī)性,在星載FPGA軟件設(shè)計時往往使用時序邏輯進(jìn)行數(shù)據(jù)處理,因此設(shè)計了如圖7所示的發(fā)送接收模塊。
圖7 Aurora 8b10b設(shè)計框圖
發(fā)送預(yù)處理模塊將本地邏輯時鐘域上要發(fā)送的并行數(shù)據(jù)使用FIFO緩存,根據(jù)s_axi_tx_ready信號控制FIFO讀使能,將數(shù)據(jù)轉(zhuǎn)換至user_clk用戶接口時鐘域,并經(jīng)邏輯控制處理為符合Aurora8b10b用戶接口數(shù)據(jù)時序的數(shù)據(jù)格式發(fā)送至Aurora 8b10b核,完成數(shù)據(jù)發(fā)送。在接收端,為提高數(shù)據(jù)接收準(zhǔn)確性和可靠性,數(shù)據(jù)接收模塊將用戶接口并行數(shù)據(jù)首先經(jīng)過數(shù)據(jù)濾波處理,可濾除由于鏈路干擾引起的毛刺數(shù)據(jù),同時根據(jù)數(shù)據(jù)協(xié)議對接收數(shù)據(jù)進(jìn)行幀頭判斷后在有效門控下讀取固定長度有效數(shù)據(jù)后,再逐時鐘判斷數(shù)據(jù)幀頭進(jìn)行數(shù)據(jù)接收,之后經(jīng)過FIFO緩存將user_clk用戶接口數(shù)據(jù)恢復(fù)至本地邏輯時鐘域,完成數(shù)據(jù)可靠接收。實現(xiàn)路由單元與計算單元、存儲單元的高速數(shù)據(jù)互連。
北京三號B衛(wèi)星綜合智能處理器路由單元配置有1片超大規(guī)模FPGA作為核心處理芯片,其設(shè)計原理框圖如圖8所示。
圖8 路由單元FPGA軟件設(shè)計框圖
路由單元FPGA軟件主要完成以下功能:
(1)通過時鐘管理模塊、遙控遙測管理模塊、復(fù)位管理模塊完成軟件時鐘管理、邏輯復(fù)位、指令控制和遙測上報功能;
(2)通過萬兆網(wǎng)解析接收模塊完成4路相機(jī)載荷數(shù)據(jù)接收;
(3)通過低速數(shù)據(jù)接收模塊完成低速載荷數(shù)據(jù)接收;
(4)通過Aurora IP及Aurora發(fā)送預(yù)處理模塊、Aurora數(shù)據(jù)接收模塊完成與計算單元、固存單元的高速數(shù)據(jù)互聯(lián);
(5)通過serdes接口完成與適配單元數(shù)據(jù)互聯(lián);
(6)通過全數(shù)據(jù)路由處理模塊完成各載荷數(shù)據(jù)格式編排、路由分發(fā)、數(shù)據(jù)緩存復(fù)接等功能。
在進(jìn)行軟件配置時,單片萬兆網(wǎng)接口芯片可接收8.96Gbit/s數(shù)據(jù)速率,單個Aurora 8b10b IP配置4通道串行收發(fā)器,可處理10Gbit/s數(shù)據(jù)速率,低速載荷數(shù)據(jù)可接收200Mbit/s數(shù)據(jù)速率,單個serdes接口可完成800Mbit/s數(shù)據(jù)發(fā)送。所以單個路由單元可以實現(xiàn)36.04Gbit/s載荷數(shù)據(jù)接收、60Gbit/s內(nèi)部數(shù)據(jù)路由分發(fā)和1.6Gbit/s數(shù)據(jù)下傳,系統(tǒng)數(shù)據(jù)路由處理時延小于100ms。
基于萬兆網(wǎng)接口和GTX/GTH互聯(lián)的綜合智能處理器高速路由軟件已隨北京三號B衛(wèi)星完成了在軌試驗驗證,在軌運行穩(wěn)定,表現(xiàn)良好。高速路由軟件主要完成了相機(jī)載荷高速數(shù)據(jù)和低速載荷數(shù)據(jù)的接收,并通過板間GTX/GTH完成對3塊計算單元、3塊存儲單元與1塊適配單元的高速數(shù)據(jù)路由功能。在軌驗證了36.04Gbit/s載荷數(shù)據(jù)接收、60Gbit/s內(nèi)部數(shù)據(jù)路由和1.6Gbit/s數(shù)據(jù)下傳功能。與傳統(tǒng)數(shù)傳方案相比,系統(tǒng)數(shù)據(jù)處理能力提高一倍以上,且子板間FPGA芯片互聯(lián)采用高速串行總線傳輸,無需再使用接口芯片,大大降低了系統(tǒng)硬件成本。
本文介紹了北京三號B衛(wèi)星綜合智能處理器海量數(shù)據(jù)傳輸處理的實現(xiàn)方式和技術(shù)關(guān)鍵點。針對高分辨率遙感衛(wèi)星海量數(shù)據(jù)傳輸處理需求,設(shè)計了一種基于萬兆網(wǎng)接口和高速串行GTX/GTH互聯(lián)的海量數(shù)據(jù)傳輸與處理系統(tǒng)。系統(tǒng)測試和在軌驗證表明,該系統(tǒng)可以實現(xiàn)38.6Gbit/s載荷數(shù)據(jù)接收、60Gbit/s內(nèi)部數(shù)據(jù)路由分發(fā)和1.6Gbit/s數(shù)據(jù)下傳功能,顯著提高了北京三號B衛(wèi)星海量數(shù)據(jù)傳輸處理能力,且降低系統(tǒng)硬件成本,可為后續(xù)高速數(shù)據(jù)傳輸處理在衛(wèi)星系統(tǒng)中的大規(guī)模應(yīng)用提供設(shè)計參考。