?

衛星圖像數據高速傳輸與處理系統的設計與驗證*

2024-02-28 03:09耿世松
電訊技術 2024年2期
關鍵詞:時鐘鏈路像素

白 玉,胡 旋,耿世松

(1.沈陽航空航天大學 電子信息工程學院,沈陽 110136;2.中國科學院軟件研究所,北京 100190)

0 引 言

當前傳統宇航級器件的開發通常是面向特定任務的專星專用器件,這一特性決定了傳統宇航級器件的開發具有硬件環境不可復用、研制成本較高且開發周期較長的弊端[1-2]。為解決上述問題,本文采用商用硬件平臺,并借鑒“軟件定義衛星”系統架構[3]。Xilinx公司ZYNQ系列產品提供了完美的SoC解決方案,其具有處理系統(Processing System,PS)與 可編程邏輯(Programmable Logic,PL)搭配高性能體系架構,這為星上系統的研制提供了無與倫比的靈活性與可拓展性。其中可重復編程、時序管腳可控制的 ZYNQ UltraScale+板卡采用 XCZU7EV 芯片作為控制和處理中心,其功能強大、性能高,更加有利于實現商用器件向宇航級產品的過渡。,

在目前國內外大多數星上數據傳輸與處理系統中,容易出現可靠性安全性不高,傳輸速率較低,兼容性通用性較差等問題。早期研究中,文獻[4-9]有人采用以太網幀協議解決了傳輸丟幀問題,但傳輸無效數據浪費帶寬。對于其中使用的數據傳輸協議,LVDS高速接口最高速率僅能達到100 Mb/s,TLK2711協議線速率可達到1.8 Gb/s但復雜度過高。且上述解決方案均未闡述使用商用開發平臺實現高速實時且可靠通用的星上數據傳輸系統。針對上述問題,本文采用Xilinx發布的一款可擴展Zynq UltraScale+ MPSoC ZCU106為商用衛星開發平臺,其不僅滿足各項數據指標需求,同時支持星上復雜軟硬件算法的快速開發與編排。本系統可用于星上設備間需要高速數據傳輸的場景,使用Xilinx器件更具商用價值且縮短研制周期,為目前開發商用衛星智能算法與軟件的更新迭代提出新的方向。

1 星上高速系統設計

1.1 系統總體設計方案

本文采用可重復編程、時序管腳可控制的 ZYNQ UltraScale+ 作為主控器件,采用其PS與PL的異步架構以滿足本系統軟件開發與硬件設計相聯合的需求。針對已有星上數據傳輸存在的不足,本文創新性地提出了一種高速實時且可靠通用的數據傳輸處理系統設計方案。本設計采用Xilinx開發平臺,從而可配置其提供的Aurora8B/10B IP以實現線速率2.5 Gb/s的接口交換速率,此方法簡單高效的實現了鏈路數據傳輸;采用自定義的幀格式對傳輸數據加密,添加幀頭構成內幀,以保證傳輸的可靠性并且節約了帶寬和資源;采用異步架構實現PS與PL數據互傳,為ARM端各類嵌入式及軟件算法的開發提供保障。最后為驗證本系統具有算法的通用性及適配性,在邏輯側以Sobel算法對圖像進行實時處理。

發送總體框圖如圖1(a)所示。大容量星上圖像數據存入DDR4內存后,PL通過直接存儲器(Direct Memory Access,DMA) 訪問PS。傳輸前對數據傳輸鏈路做自定義的幀信息添加(Frame_Gen),其對圖像數據加上專用幀標志,幀號,圖像分辨率等信息,以保證傳輸的可靠性與安全性。通過GTH并采用差分SMA接口來完成數據的高速串行發送。其中采用簡單高速的Aurora協議進行數據互傳,以通用性較強的高速串行收發器GTH基于Aurora協議來傳輸數據。在進行板間接口數據傳輸時,采用Serdes傳輸機制即可從數據中恢復出時鐘,以此保證時鐘同步。內部各IP間數據流傳輸基于AXI-Stream總線實現,相比其他星上傳輸系統接口,其具有更高的通用性及系統適配性。

圖1 衛星數據傳輸與處理系統總體設計框圖

接收總體框圖如圖1(b)所示,接收端同樣通過串行GTH接收數據,并將數據發送給幀頭信息提取模塊對幀數據進行解析。之后同樣通過DMA方式將數據送入DDR4存儲。為驗證整個系統的通用性,本文采用優化的實時Sobel算法對衛星圖像進行邊緣檢測。最后將其處理后的數據通過VGA接口在顯示器顯示以觀察處理后的圖像邊緣。

1.2 星上系統設計關鍵技術

本文將星上高速系統的設計分為星上異步架構數據傳輸、星上鏈路專用幀轉換、星上高速數據傳輸接口3個部分。

1.2.1 星上異步架構數據傳輸

采用軟硬件聯合設計的方式實現星上異步架構數據傳輸,此種方式為后續星上軟件定義開發提供基礎保證。

為實現PS與PL雙方共享內存,本文創新地采用板卡的異步架構設計,兩者通信的物理基礎是AXI高速總線協議。采用AXI DMA并配置為簡單雙工模式以實現DDR4的高速讀寫。DDR4的系統時鐘為1 067 MHz,物理接口位寬為64位,因此DDR4的理論支持的最大速度為16.66 GB/s。

本文Block Design總體框圖如圖2所示。此處數據互傳涉及跨時鐘域傳輸,因此讀寫時鐘不一致會造成傳輸數據混亂的情況。為采用最簡單的方式解決此問題,本文添加異步FIFO(AXI-Stream Data FIFO)進行不同時鐘域間的數據傳輸與緩存。在整個系統進行實時數據傳輸處理過程中,AXI DMA負責讀取DDR4中的圖像數據,同時還要負責將接收端處理后的圖像數據寫入DDR4。其中PS與PL的高速數據傳輸主要使用AXI_HP接口和AXI_GP接口完成。AXI_HP接口與PL相連后,相互獨立的讀寫通道經過FIFO緩存。通過DMA將數據存儲在DDR4存儲器,以此完成流式數據與存儲器映射數據間相互轉化。系統對 AXI DMA 的控制是在 PS 上實現,通過運行C代碼完成DMA初始化及寄存器配置。為減少CPU的空轉損耗減少星上傳輸延時,本文最終采用中斷方式實現DMA發送和接收。

圖2 Block Design示意圖

1.2.2 星上鏈路專用幀轉換

采用線性狀態機設計對星上幀信息加密成自定義專用幀,以保證星上信息傳輸的可靠性與安全性。

為了在進一步保證傳輸效率的同時提升系統的準確性與安全性。數據發送端要對接收到的PS端數據進行幀頭信息的添加構成內幀,并在接收端進行幀頭信息的提取以進行同步。為保證系統通用性,此節仍按照AXI-Stream協議與Aurora接口進行交互。本文采用自定義的幀信息格式并在接收端進行數據檢驗,以此保證系統的安全性。幀頭信息自定義格式包括2 b幀標志、6 b幀號、12 b圖像的行數、12 b圖像的列數。發送模塊幀頭信息添加采用狀態機實現,設計具體如圖3所示。

圖3 幀信息添加狀態機示意圖

復位系統后進入S_IDLE狀態,等待一幀圖像數據的到來。當檢測到一幀圖像數據第一拍信號有效時,進入S_ADD_HEAD狀態。期間添加幀頭信息,維持一個時鐘周期,進入S_WRITE_DATA狀態。一幀圖像傳輸完成后進入S_FRAME_END。此種狀態機實現幀信息添加方式,有效解決了復雜邏輯的實現。其既覆蓋了鏈路所有情況出現的可能性,又保證了系統不會重復處理,極大的提高了傳輸的效率。

同理,解幀模塊也采用狀態機實現。類似封幀模塊,用于幀標志、幀號、圖像分辨率信息的提取,并將圖像數據傳輸給Sobel Edge Detect模塊進行后續算法處理。

1.2.3 星上高速數據傳輸接口

采用Aurora協議實現星上高速數據互傳,以保證系統高速性和穩定性。

為了以簡單的方式實現星上鏈路的高速數據交互,本文以GTH收發器作為物理層、Aurora協議實現鏈路層功能。為保證星上模塊間用戶數據交互的通用性及靈活性,以AXI-Stream接口來實現各模塊銜接。此方式相比傳統專星專用的星上鏈路研制,具備可配置即插即用的功能。其具有帶寬高、支持全雙工和單工通道、幀格式幀長度可靈活定制等特點。

由于系統要求Aurora IP核通道的線速率(Line Rate)配置為3.125 Gb/s,且協議要求時鐘必須為同一bank或相鄰bank的時鐘,故此輸入參考時鐘(GT_Refclk)156.25 MHz,用戶時鐘(User_clk)78.125 MHz[10]。Aurora采用幀模式(framing)進行全雙工數據傳輸,其接口模塊如圖4所示。

圖4 Aurora與AXIS交互關系圖

發送和接收數據位寬均設計為32 b(Lane Width=4 B),這樣整個系統數據位寬相同,適配性靈活性很高。由于發送的數據經過RocketI/O 進行了8B/10B編碼,故而通道串行線速率為3.125 Gb/s×80%=2.5 Gb/s。本節各個模塊的設計均使用Aurora的輸出時鐘user_clk故沒有進行跨時鐘域處理。

2 星上圖像處理算法驗證

傳統算法在系統上實現多為一個時鐘處理單像素,而本系統傳輸時一個時鐘傳輸4個像素。為解決為各類其他傳統算法在本系統使用的通用性問題,采用Sobel圖像邊緣檢測算法驗證系統性能。同時,系統對于星上互傳的圖像數據具備實時處理能力。Sobel算法采用一階導數實現局部平均的計算方法。其優勢在于平滑去噪,提高檢測精度。同時本文提出的優化Sobel處理方案,相比現有的FPGA實現Sobel算法的思路,傳輸延時更小,性能也更加優越。相比以往Sobel算法,本設計創新的將一個時鐘輸入的4個像素同時并行處理,可將系統速率提高3倍。其對后續其他復雜星上通用性實時處理算法開發具有一定的理論及現實指導意義。

現有Sobel算法為一個時鐘輸入一個像素(一個像素為8 b),由于系統一個時鐘輸入4個像素(數據位寬32 b)。為滿足實時性需求必須將時鐘提高四倍,通過異步FIFO將數據位寬將為8 b處理。但此方法一個時鐘只能處理一個像素,不能滿足本系統高性能需求。故將32 b像素在一個時鐘同時輸入進行Sobel運算,算法的設計整體流程如圖5所示。由于Sobel算法需要3行3列矩陣運算,故需要采用雙FIFO流水線操作對兩行圖像數據進行緩存。本文采用FIFO Generator中的Common Clock Block RAM進行一行數據的緩存,數據讀寫深度設置為2 048。由于數據位寬為32 b,本文Sobel算法處理部分時鐘采用user_clk=78.125 MHz。

圖5 優化后的Sobel算法實現流程圖

以圖中Sobel1為例,把圖像每3行3列的數據分別乘上算子中對應位置的值再相加,然后進行如下運算,得到Dx和Dy。

Dx=(a2-a0)+(b2-b0)×2+(c2-c0)

Dy=(a0-c0)+(a1-c1)×2+(a2-c2)

由于數據傳輸鏈路位寬32 b即一個時鐘傳入4個像素,因此在CLK1下需要進行Sobel1和Sobel2運算,并且將第三個和第四個像素用寄存器緩存與CLK2傳入的像素進行Sobel運算。同理在后續的時鐘下,每個時鐘同時完成4次Sobel處理。

按照上文所述Sobel算法原理,對上面求得的Dx和Dy做平方和的平方根,再取近似值Dx和Dy的絕對值和得到Dxy。本文為對星上圖像進行較準確的邊緣檢測,閾值設置為100。若Dxy的值大于該閾值則表示該點為邊界點,就讓VGA顯示一個白點,否則顯示黑點。于是得到了一幅衛星圖像的輪廓,為滿足1 080P像素顯示需求,VGA接口部分模塊時鐘為148.5 MHz。

3 試驗與分析

本文實現軟件開發與硬件設計相結合的設計架構,其中Aurora高速片間傳輸及Sobel并行算法等PL端設計是基于Xilinx Vivado2019.1平臺開發的。數據源發送與接收以及DMA配置與驅動程序是PS端基于Xilinx SDK開發的。在測試中,將1 920 pixel×1 080 pixel的8 b灰度圖衛星圖像數據源放入SD卡,用于進行整個系統的性能測試。采用Xilinx專用的調試工具集成比特誤碼率測試儀(Integrated Bit Error Ratio Tester,IBERT)及在線邏輯分析儀(Integrated Logic Analyzer,ILA)驗證數據傳輸與處理的各項性能指標。本系統整個測試流程如下:

1)通過在PL端設計狀態機實現計數邏輯并且在SDK設置計時對DMA速度進行測試,通過觀測SDK界面DMA發送接收內存數據以驗證數據傳輸準確性;

2)通過集成邏輯分析儀對Frame_Gen以及De_Frame模塊信號及數據進行觀測,以驗證設計的準確性;

3)通過集成比特誤碼率測試儀對數據鏈路進行誤碼率測試;

4)通過VGA接口顯示Sobel邊緣檢測之后的數據并和Matlab實現Sobel邊緣檢測的圖像處理結果對比,驗證結果的準確性。

3.1 PS與PL互傳性能

本文DMA發送速度能達到157.3 MB/s,接收速度能達到140.7 MB/s。AXI DMA數據存儲在0x01100000中,處理完成后的數據寫入地址0x01500000。DDR內存結果顯示數據傳輸準確無誤碼,由此可見DMA實現了PS與PL數據準確且高速的互傳。

3.2 可靠性測試及安全性分析

由于測試所用圖像數據為1 080P的灰度圖,因此一幀圖像數據的幀頭為c0438780。其中frame flag=2’b11,frame ID=6’b000000,image high=1 080,image width=1 920。幀信息添加模塊將幀頭添加到由PS輸入的數據流前,輸出數據流為m_axi_tx_tdata。解幀模塊接收到幀頭信息c0438780后認為一幀數據到來,此自定義專用幀頭以保證系統的安全性。除去幀頭信息后將有效數據m_tdata傳輸給后續算法處理。圖6(a)為幀信息添加模塊輸出結果,圖6(b)為幀信息提取模塊輸出結果。經測試系統傳輸準確無誤碼,具有較高的可靠性及安全性。

圖6 數據發送接收鏈路測試結果

3.3 誤碼性評估及線速率測試

ZCU106中提供的SMA接口信號一共4個,包括一對發送數據信號txp和txn,一對接收數據信號rxp和rxn。在進行系統仿真收發測試時,對于硬件驗證單板只能進行單核自回環連接,所以將TX(txp和txn)和RX(rxp和rxn)約束至開發板SMA接口,其外部采用光纖進行自環連接,模擬光纖高速數據互傳過程。通過IBERT IP對本系統的高速收發器接口進行誤碼率發送器發送偽隨機碼,接收器接收后檢查數據傳輸的準確性。測試眼圖結果如圖7所示,可見信道質量良好,線速率達到2.5 Gb/s,眼圖張開率82.35%,沒有數據接收誤碼。

圖7 IBERT測試眼圖

3.4 邊緣檢測算法驗證結果

本次測試應用到的衛星圖像為機場圖像。在進行上板驗證之前,采用Matlab對圖像進行Sobel處理并采用Vivado自帶仿真工具進行仿真。

各個Sobel處理運行時間如表1所示,采用現有Sobel算法處理一幅圖需要32 ms,改進的并行Sobel算法用時11ms。試驗結果表明相比CPU實現圖像處理,FPGA將處理時間縮短了10倍左右。相比現有Sobel算法,采用改進的并行化Sobel算法將處理時間縮短了3倍。將Vivado仿真后的數據結果利用Matlab工具恢復可視化圖像,如圖8所示。Sobel邊緣檢測后在dell顯示器顯示結果如圖9所示。將顯示器顯示結果與Matlab仿真Sobel處理后的結果對比,表明利用本系統較好地實現了Sobel邊緣檢測功能,且呈現出的圖像邊緣信息也較為理想。

表1 Sobel處理運行時間對比圖

圖8 Sobel處理仿真顯示結果

圖9 Sobel處理后顯示器顯示結果

4 結束語

高速實時穩定可靠的商用星上數據高速傳輸與實時處理系統成為航天衛星研制的瓶頸。本文基于Xilinx ZYNQ UltraScale+設計了一種星上數據高速傳輸與實時處理系統。采用DMA方式實現PS與PL數據高速互傳,數據傳輸準確且讀寫性能優異。發送端采用幀信息添加和接收端提取模塊以保證鏈路的可靠安全傳輸,采用簡單通用的Aurora協議作為星上設備交換高速接口,并且采用兩種Sobel算法證明系統具有較好的通用性與實時性,對星上數據處理設備的研制及星上圖像算法的處理具有一定的借鑒意義。

但是,本文研究仍然有值得改進的地方:一是PS端采用C代碼對DMA進行配置以及初始化,對整體性能存在影響;二是對衛星圖像的Sobel算法可以進一步優化,以實現對衛星圖像更加有效的去噪,最大程度提取關鍵邊緣信息。

猜你喜歡
時鐘鏈路像素
趙運哲作品
家紡“全鏈路”升級
像素前線之“幻影”2000
天空地一體化網絡多中繼鏈路自適應調度技術
別樣的“時鐘”
古代的時鐘
“像素”仙人掌
有趣的時鐘
時鐘會開“花”
高像素不是全部
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合