羅義軍,覃語豪
(武漢大學電子信息學院,武漢 430072)
數字通信環境無時無刻都需要對數據進行采集回放處理,對這些通信射頻信號的高速采集以及回放測試具備極高的應用價值,這不但能對復雜信號進行采集,而且采集后的信號也可以通過回放功能進行復雜電磁環境的模擬,非常方便通信算法研究,減少現場測試的時間。并且隨著通信技術的發展,所需的信號帶寬也越來越寬。
文獻[1]體現了高速數據采集在軍事箭載上的應用;文獻[2]則設計了一種通用化的采集存儲設備,體現了高速采集設備的重要性。這兩種方案都對高速數據進行采集存儲,但并沒有實現回放功能,同時文獻[2]采用flash進行緩存,相比于PCIE(peripheral component interconnect express)配合上工控機,速度和存儲量都略有不足。文獻[3]加入了數據回放功能,形成了一個完整的系統。但是主要重點放在了射頻前端,如果提高中頻接收的帶寬,則可以實現對更高頻率的射頻前端的匹配,從而提高設備的通用性。文獻[4]采用國產器件基于FPGA(field-programmable gate array)+ADC(analog-to-digital converter)/DAC(digital-to-analog converter)搭建了一個采集存儲回放系統體現了國內對于該種系統的迫切需求,但性能相比主流器件仍有不足。
FPGA內部的邏輯規模擴大,時鐘頻率高,并且擁有并行處理能力、內部延時短、配置接口靈活等優點,配合以基于JESD204B傳輸協議的高速ADC/DAC器件,能很好地滿足各種系統的需求。
基于上述背景,現基于FPGA+ADC/DAC設計并實現中頻寬帶采集存儲回放系統。可以處理400 M帶寬的中頻信號,提高設備的通用性。利用高速ADC對經過變頻后的中頻信號進行采集,板載存儲芯片緩存采集信號,然后通過數據傳輸總線傳到上位機進行分析,也可以通過DAC實現回放功能,將存儲的數據下載到系統上發送,為外部的測試提供場景模擬。
本次設計的中頻寬帶信號采集存儲回放系統硬件主要分為高速采集回放FMC(FPGA mezzanine card)子板、FPGA數字處理載板以及工控機3個部分。整個系統的結構框圖如圖1所示

ADC:analog-to-digital converter;DAC:digital-to-analog converter;FPGA:field-programmable gate array;PCIe:peripheral component interconnect express;DDR:double data rate synchronous dynamic random access memory
整個系統由采集回放子板、FPGA載板、PCIe接口、DDR3(double data rate synchronous dynamic random access memory)緩存模塊和工控機組成。采集回放部分放在子板上,與FPGA載板部分分開,采用的是FMC夾層卡設計方式。這種設計將數據采集回放與FPGA處理分開,利用FMC進行連接,一塊載板就可以應對多種采集需求,可以節省設計時間[5]。子板使用芯片為AD9680、AD9152和LMK04828,載板的FPGA芯片采用Xilinx公司的XC7K325TFFG900,并且外掛DDR3內存條,PCIe接口使用金手指插槽,載板與子板實物圖如圖2所示。

圖2 載板與子板實物圖
整個系統的工作基本流程為:采集命令下發后,利用采集回放子板上ADC器件采集、量化和編碼組幀,通過JESD204B協議接口輸入FPGA信號處理載板,在FPGA信號處理載板內部緩存到DDR3,再利用PCIe接口發送到工控機分析;在上位機選用128 G的內存條來進行采集數據的緩存,在空閑時將內存的數據存儲到硬盤中。回放時,工控機發送命令,將上位機存儲的信號讀出到FPGA信號處理載板,然后再由FPGA按照JESD204B協議進行映射組幀,送入DAC器件轉換成模擬信號發出[6]。
本次設計需要對400 M帶寬的中頻信號進行采集存儲回放。所以對ADC/DAC的量化位數和采樣頻率有較高的需求。根據帶通采樣定理,并且采樣率越高,所采信號對頻譜混疊抑制效果更好,則采樣頻率最好達到1 GHz。量化位數越高,采集回放越精確誤差越小。同時根據帶通采樣定理,為了滿足寬帶采集的需求,采樣率要足夠高。所選的AD/DA器件選型主要從量化位數、采樣頻率和模擬輸入帶寬三個方面來仔細衡量,同時考慮到子板的尺寸問題,芯片的尺寸不能過大。AD使用AD9680,AD9680是ADI公司推出的14位、雙通道模數轉換器,其AD9680-1250款最高采樣頻率能達到1.25 GHz,支持JESD204B編碼輸出,可用于高達2 GHz的寬帶模擬信號采樣,滿足400 M帶寬的需求。DA使用AD9152,AD9152也是ADI公司推出的一款雙通道、16位高速數模轉換器,支持JESD204B子類1接口,最高采樣頻率可達2.25 GHz,同樣滿足帶寬需求,并且尺寸也不大,便于子板芯片布局。時鐘芯片使用LMK04828,LMK04828輸出時鐘頻率最高可達3 080 MHz,支持JESD204B。內部集成了兩個PLL(phase locked loop),其中PLL2可以產生14個時鐘信號,能夠被配置為JESD204B需要的器件時鐘和SYSREF信號,使AD/DA以及JESD204B鏈路可以正常工作。
本次設計使用1 G的采樣頻率。AD9680和AD9152均為雙通道器件,但AD9680兩個通道不會同時使用,所以轉換器個數M為1,AD9152轉換器兩通道需同時使用,所以轉換器個數M為2,JESD字寬N′取16,基于式(1),選擇合適的鏈路通道數L,本次設計選擇L為4。
(1)
式(1)中:LineRate為線速率;M為轉換器個數;N′為JSED字寬;fs為采樣率;L為鏈路通道數。
由式(1)可以計算得到AD9680通道線速率為5 Gb/s,AD9152通道線速率為10 Gb/s。樣本數參數S為整數,通常設為1,本次設計為了提高數據的傳輸效率,選擇參數S為2。
(2)
式(2)中:F為每幀字節數;S為每個轉換器每幀輸出的樣本數。
由式(2)得到AD9680每幀字節數參數F為1,AD9152每幀字節數參數F為2,即采集鏈路JESD204B參數LMFS為4 112,回放鏈路JESD204B參數LMFS為4 222。多幀幀數K的取值取最大值32,根據JESD204B的時鐘關系,在1 G采樣率下,接收鏈路的核時鐘為125 MHz,回放鏈路核時鐘為250 MHz。
整個邏輯設計可以劃分為子板配置模塊、信號接收發送模塊、數據緩存模塊、時鐘管理、控制命令解析模塊。邏輯設計頂層結構如圖3所示。

圖3 FPGA系統邏輯設計頂層結構示意圖
2.3.1 JESD204B鏈路建立
將AD/DA以及時鐘芯片按照參數需求通過SPI進行配置,從而使其工作在需要的模式并產生所需的時鐘[7]。而JESD204B鏈路的實現在本設計中使用VIVADO的JESD204B IP核。在采集鏈路上JESD204B IP核需例化為接收器,鏈路的相關參數L、F、K以及線速率、參考時鐘等根據2.2節的介紹來設置。本次設計LMFC緩沖區選擇IP核提供的最大值1 024,使可變延遲盡可能大,AXI-Lite時鐘選擇默認的100 MHz,一般SYSREF信號被用在上升沿對齊信號,所以選擇在下降沿來采樣SYSREF信號,這樣會更精確[8]。回放鏈路除了要設置為發送器,以及鏈路參數不同以外,其他設置與采集鏈路一致。同時由于JESD204BIP核的數據有專門的組幀格式,還需要對數據進行映射和解映射[9]。由于AD與DA的JESD204B鏈路結構類似,所以僅展示AD的JESD204B RTL圖,如圖4所示。

圖4 AD JESD204B IP核
2.3.2 PCIe通道與DDR3設計
PCIe鏈路功能為連接上位機和FPGA信號處理載板,傳輸采集數據和命令,DDR3模塊負責緩存AD9680采集上來的數據,等待上傳命令,經由PCIe鏈路發送至上位機,可以令上位機在空閑時段處理其他事務,提高處理效率。
本設計中的PCIe接口采用PCIe2.0 x4接口,可提供的帶寬最高可達2 GB/s,而AD9680采集數據帶寬約為14 bits×1 GHz/8≈1.75 GB/s,本次采用的PCIe接口可以滿足工控機和FPGA之間的數據傳輸帶寬要求。
Vivado在設計上提供XDMAIP核,包含PCIe硬核和DMA功能。XDMA核提供AXI4-MM、AXI-Stream和AXI-Lite接口,其中AXI4-MM接口針對大流量數據讀寫,AXI4-Lite接口可以傳輸吞吐量簡單的命令信息,完全滿足本次設計的需求[10]。XDMA核內部結構總覽如圖5所示。

圖5 XDMA核內部結構總覽圖
對XDMA(direct memory access)核進行配置,本次設計為4通道,配置傳輸速率為5 GT/s,AXI數據位寬為64 bit,接口輸時鐘頻率為250 MHz,外部參考時鐘設置為100 MHz,最大傳輸帶寬為2 GB/s。
DDR3方面,Vivado為7系列的FPGA芯片提供了MIG 7系列IP核,用來控制DDR3的讀寫,并且提供AXI4接口,簡化了設計難度[11]。本次設計硬件上選用的DDR3芯片容量為8 GB,封裝為SODIMM。
當采集數據需要經DDR3緩存通過PCIe鏈路發送到上位機分析和上位機命令與數據下行到FPGA內時,需要將XDMA核與MIG 7系列IP核形成一條完整的上下行傳輸鏈路。對于DDR3的控制主要使用AXI4系列的總線,DDR3控制器映射頂層圖如圖6所示。

Memory Interface Generator為內存接口生成器
本次設計需要上位機來作為采集回放系統的控制臺,能夠完成FPGA的復位、識別PCIe設備、子板板卡的狀態、采集回放命令控制、上傳數據的存儲等功能。利用Visual Studio2017平臺開發,按照需求在交互界面上顯示對應的功能按鈕與參數設置,并在留出日志區顯示處理信息的狀態,使用戶更直觀地了解上位機的運行狀態。上位機界面如圖7所示。

圖7 上位機界面圖
上位機工作流程如下。
(1)板卡自檢,點擊板卡自檢按鈕,會對子板芯片工作狀態、PCIe設備號、FPGA載板狀態檢測,并會在日志內顯示。
(2)FPGA復位,包含三個復位選擇,會對FPGA系統、PCIe、DDR3進行復位操作。
(3)輸入采集數據長度,開放采集緩存,然后開始采集,將采集數據寫入硬盤內,數據管理框內會顯示采集數據量,采集數據長度與之前輸入采集數據相同時,會自動停止采集,也可以點擊關閉采集緩存,結束采集,關閉采集通道。
(4)選擇回放數據存儲文件,點擊開始回放緩存,然后開始回放,將數據下發到FPGA,點擊關閉回放緩存,結束回放,關閉回放通道。
整個系統組成包括采集回放子板、FPGA信號處理載板以及工控機,在測試過程中,會使用信號源和頻譜儀。整個測試系統連接圖如圖8所示。連接實物圖如圖9所示。

圖8 測試系統連接圖

圖9 測試系統連接實物圖
信號源選擇輸出信號頻率為10 MHz~1 GHz,幅度為AD9680所支持的滿量程的單一點頻正弦波。經過AD9680采集后,在FPGA信號處理載板進行解映射,利用DDR3緩存,通過PCIe鏈路傳輸到工控機存儲,利用MATLAB對存儲的數據進行分析,得到動態指標參數。回放數據為工控機通過PCIe鏈路下發的數據,然后經過FPGA處理映射后傳輸到AD9152轉換為模擬信號輸出。
4.2.1 ADC采樣測試
給AD模擬端口輸入70 MHz的正弦波,使用XILINX公司的VIVADO設計軟件,將采集數據保存為csv格式的文件。
對70 MHz數據截取5次,然后利用MATLAB對信號進行64 K點的FFT計算得到頻譜,取結果均值,結果如圖10所示。

圖10 AD采集70 M信號頻譜圖
由于信號源在發生1 GHz以下信號時,產生了多次諧波分量,在計算動態指標時,這會影響到最后的計算結果,所以在MATLAB中計算實測的SNR(signal-to-noise ratio)、SFDR(spurious-free dynamic range)和ENOB(effective number of bits)之前,會剔除高次諧波[12]。由圖10可以看到信號頻譜峰值在70 MHz處,底噪處于-90 dBm。經過計算得到SFDR為79.41 dBFS,SNR為60.03 dBFS,ENOB為9.68 bit。根據AD9680芯片手冊,ENOB損失在0.5 bit以內。輸入其他頻率時,得到的頻譜性能參數70 MHz相比,相差不大。
利用多個單一點頻信號合成來模擬中心頻率250 MHz,帶寬400 MHz的中頻信號,通過AD采集,采集到的信號通過MATLAB分析得到頻譜,如圖11所示。

圖11 采集寬帶信號頻譜圖
4.2.2 DAC回放測試
將之前AD9680采集到的單一點頻信號和帶通信號存儲到上位機,在通過PCIe下發作為AD9152的回放數據,以70 MHz為例數據測試結果在示波器上頻譜圖如圖12所示,圖12中單一點頻信號的幅度在0 dBm,雜散抑制在80 dB左右。中心頻率250 MHz,帶寬400 MHz的中頻信號回放頻譜如圖13所示。

圖12 70 MHz回放頻譜

圖13 寬帶信號輸出
設計了一個基于FPGA與AD/DA的中頻寬帶信號采集存儲回放系統,經過測試驗證,該系統能夠實現高采樣率、寬帶、高傳輸速率的采集功能,具有大容量存儲,回放時抗干擾能力強,穩定性優良的特點。此外,該系統還具有靈活性高,采集帶寬足夠寬以及便攜式等特點。可以適用于雷達、通信測試等多個領域,具有廣泛的應用價值。