羅義軍,覃語豪
(武漢大學(xué)電子信息學(xué)院,武漢 430072)
數(shù)字通信環(huán)境無時(shí)無刻都需要對(duì)數(shù)據(jù)進(jìn)行采集回放處理,對(duì)這些通信射頻信號(hào)的高速采集以及回放測(cè)試具備極高的應(yīng)用價(jià)值,這不但能對(duì)復(fù)雜信號(hào)進(jìn)行采集,而且采集后的信號(hào)也可以通過回放功能進(jìn)行復(fù)雜電磁環(huán)境的模擬,非常方便通信算法研究,減少現(xiàn)場(chǎng)測(cè)試的時(shí)間。并且隨著通信技術(shù)的發(fā)展,所需的信號(hào)帶寬也越來越寬。
文獻(xiàn)[1]體現(xiàn)了高速數(shù)據(jù)采集在軍事箭載上的應(yīng)用;文獻(xiàn)[2]則設(shè)計(jì)了一種通用化的采集存儲(chǔ)設(shè)備,體現(xiàn)了高速采集設(shè)備的重要性。這兩種方案都對(duì)高速數(shù)據(jù)進(jìn)行采集存儲(chǔ),但并沒有實(shí)現(xiàn)回放功能,同時(shí)文獻(xiàn)[2]采用flash進(jìn)行緩存,相比于PCIE(peripheral component interconnect express)配合上工控機(jī),速度和存儲(chǔ)量都略有不足。文獻(xiàn)[3]加入了數(shù)據(jù)回放功能,形成了一個(gè)完整的系統(tǒng)。但是主要重點(diǎn)放在了射頻前端,如果提高中頻接收的帶寬,則可以實(shí)現(xiàn)對(duì)更高頻率的射頻前端的匹配,從而提高設(shè)備的通用性。文獻(xiàn)[4]采用國產(chǎn)器件基于FPGA(field-programmable gate array)+ADC(analog-to-digital converter)/DAC(digital-to-analog converter)搭建了一個(gè)采集存儲(chǔ)回放系統(tǒng)體現(xiàn)了國內(nèi)對(duì)于該種系統(tǒng)的迫切需求,但性能相比主流器件仍有不足。
FPGA內(nèi)部的邏輯規(guī)模擴(kuò)大,時(shí)鐘頻率高,并且擁有并行處理能力、內(nèi)部延時(shí)短、配置接口靈活等優(yōu)點(diǎn),配合以基于JESD204B傳輸協(xié)議的高速ADC/DAC器件,能很好地滿足各種系統(tǒng)的需求。
基于上述背景,現(xiàn)基于FPGA+ADC/DAC設(shè)計(jì)并實(shí)現(xiàn)中頻寬帶采集存儲(chǔ)回放系統(tǒng)??梢蕴幚?00 M帶寬的中頻信號(hào),提高設(shè)備的通用性。利用高速ADC對(duì)經(jīng)過變頻后的中頻信號(hào)進(jìn)行采集,板載存儲(chǔ)芯片緩存采集信號(hào),然后通過數(shù)據(jù)傳輸總線傳到上位機(jī)進(jìn)行分析,也可以通過DAC實(shí)現(xiàn)回放功能,將存儲(chǔ)的數(shù)據(jù)下載到系統(tǒng)上發(fā)送,為外部的測(cè)試提供場(chǎng)景模擬。
本次設(shè)計(jì)的中頻寬帶信號(hào)采集存儲(chǔ)回放系統(tǒng)硬件主要分為高速采集回放FMC(FPGA mezzanine card)子板、FPGA數(shù)字處理載板以及工控機(jī)3個(gè)部分。整個(gè)系統(tǒng)的結(jié)構(gòu)框圖如圖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
整個(gè)系統(tǒng)由采集回放子板、FPGA載板、PCIe接口、DDR3(double data rate synchronous dynamic random access memory)緩存模塊和工控機(jī)組成。采集回放部分放在子板上,與FPGA載板部分分開,采用的是FMC夾層卡設(shè)計(jì)方式。這種設(shè)計(jì)將數(shù)據(jù)采集回放與FPGA處理分開,利用FMC進(jìn)行連接,一塊載板就可以應(yīng)對(duì)多種采集需求,可以節(jié)省設(shè)計(jì)時(shí)間[5]。子板使用芯片為AD9680、AD9152和LMK04828,載板的FPGA芯片采用Xilinx公司的XC7K325TFFG900,并且外掛DDR3內(nèi)存條,PCIe接口使用金手指插槽,載板與子板實(shí)物圖如圖2所示。
圖2 載板與子板實(shí)物圖
整個(gè)系統(tǒng)的工作基本流程為:采集命令下發(fā)后,利用采集回放子板上ADC器件采集、量化和編碼組幀,通過JESD204B協(xié)議接口輸入FPGA信號(hào)處理載板,在FPGA信號(hào)處理載板內(nèi)部緩存到DDR3,再利用PCIe接口發(fā)送到工控機(jī)分析;在上位機(jī)選用128 G的內(nèi)存條來進(jìn)行采集數(shù)據(jù)的緩存,在空閑時(shí)將內(nèi)存的數(shù)據(jù)存儲(chǔ)到硬盤中?;胤艜r(shí),工控機(jī)發(fā)送命令,將上位機(jī)存儲(chǔ)的信號(hào)讀出到FPGA信號(hào)處理載板,然后再由FPGA按照J(rèn)ESD204B協(xié)議進(jìn)行映射組幀,送入DAC器件轉(zhuǎn)換成模擬信號(hào)發(fā)出[6]。
本次設(shè)計(jì)需要對(duì)400 M帶寬的中頻信號(hào)進(jìn)行采集存儲(chǔ)回放。所以對(duì)ADC/DAC的量化位數(shù)和采樣頻率有較高的需求。根據(jù)帶通采樣定理,并且采樣率越高,所采信號(hào)對(duì)頻譜混疊抑制效果更好,則采樣頻率最好達(dá)到1 GHz。量化位數(shù)越高,采集回放越精確誤差越小。同時(shí)根據(jù)帶通采樣定理,為了滿足寬帶采集的需求,采樣率要足夠高。所選的AD/DA器件選型主要從量化位數(shù)、采樣頻率和模擬輸入帶寬三個(gè)方面來仔細(xì)衡量,同時(shí)考慮到子板的尺寸問題,芯片的尺寸不能過大。AD使用AD9680,AD9680是ADI公司推出的14位、雙通道模數(shù)轉(zhuǎn)換器,其AD9680-1250款最高采樣頻率能達(dá)到1.25 GHz,支持JESD204B編碼輸出,可用于高達(dá)2 GHz的寬帶模擬信號(hào)采樣,滿足400 M帶寬的需求。DA使用AD9152,AD9152也是ADI公司推出的一款雙通道、16位高速數(shù)模轉(zhuǎn)換器,支持JESD204B子類1接口,最高采樣頻率可達(dá)2.25 GHz,同樣滿足帶寬需求,并且尺寸也不大,便于子板芯片布局。時(shí)鐘芯片使用LMK04828,LMK04828輸出時(shí)鐘頻率最高可達(dá)3 080 MHz,支持JESD204B。內(nèi)部集成了兩個(gè)PLL(phase locked loop),其中PLL2可以產(chǎn)生14個(gè)時(shí)鐘信號(hào),能夠被配置為JESD204B需要的器件時(shí)鐘和SYSREF信號(hào),使AD/DA以及JESD204B鏈路可以正常工作。
本次設(shè)計(jì)使用1 G的采樣頻率。AD9680和AD9152均為雙通道器件,但AD9680兩個(gè)通道不會(huì)同時(shí)使用,所以轉(zhuǎn)換器個(gè)數(shù)M為1,AD9152轉(zhuǎn)換器兩通道需同時(shí)使用,所以轉(zhuǎn)換器個(gè)數(shù)M為2,JESD字寬N′取16,基于式(1),選擇合適的鏈路通道數(shù)L,本次設(shè)計(jì)選擇L為4。
(1)
式(1)中:LineRate為線速率;M為轉(zhuǎn)換器個(gè)數(shù);N′為JSED字寬;fs為采樣率;L為鏈路通道數(shù)。
由式(1)可以計(jì)算得到AD9680通道線速率為5 Gb/s,AD9152通道線速率為10 Gb/s。樣本數(shù)參數(shù)S為整數(shù),通常設(shè)為1,本次設(shè)計(jì)為了提高數(shù)據(jù)的傳輸效率,選擇參數(shù)S為2。
(2)
式(2)中:F為每幀字節(jié)數(shù);S為每個(gè)轉(zhuǎn)換器每幀輸出的樣本數(shù)。
由式(2)得到AD9680每幀字節(jié)數(shù)參數(shù)F為1,AD9152每幀字節(jié)數(shù)參數(shù)F為2,即采集鏈路JESD204B參數(shù)LMFS為4 112,回放鏈路JESD204B參數(shù)LMFS為4 222。多幀幀數(shù)K的取值取最大值32,根據(jù)JESD204B的時(shí)鐘關(guān)系,在1 G采樣率下,接收鏈路的核時(shí)鐘為125 MHz,回放鏈路核時(shí)鐘為250 MHz。
整個(gè)邏輯設(shè)計(jì)可以劃分為子板配置模塊、信號(hào)接收發(fā)送模塊、數(shù)據(jù)緩存模塊、時(shí)鐘管理、控制命令解析模塊。邏輯設(shè)計(jì)頂層結(jié)構(gòu)如圖3所示。
圖3 FPGA系統(tǒng)邏輯設(shè)計(jì)頂層結(jié)構(gòu)示意圖
2.3.1 JESD204B鏈路建立
將AD/DA以及時(shí)鐘芯片按照參數(shù)需求通過SPI進(jìn)行配置,從而使其工作在需要的模式并產(chǎn)生所需的時(shí)鐘[7]。而JESD204B鏈路的實(shí)現(xiàn)在本設(shè)計(jì)中使用VIVADO的JESD204B IP核。在采集鏈路上JESD204B IP核需例化為接收器,鏈路的相關(guān)參數(shù)L、F、K以及線速率、參考時(shí)鐘等根據(jù)2.2節(jié)的介紹來設(shè)置。本次設(shè)計(jì)LMFC緩沖區(qū)選擇IP核提供的最大值1 024,使可變延遲盡可能大,AXI-Lite時(shí)鐘選擇默認(rèn)的100 MHz,一般SYSREF信號(hào)被用在上升沿對(duì)齊信號(hào),所以選擇在下降沿來采樣SYSREF信號(hào),這樣會(huì)更精確[8]?;胤沛溌烦艘O(shè)置為發(fā)送器,以及鏈路參數(shù)不同以外,其他設(shè)置與采集鏈路一致。同時(shí)由于JESD204BIP核的數(shù)據(jù)有專門的組幀格式,還需要對(duì)數(shù)據(jù)進(jìn)行映射和解映射[9]。由于AD與DA的JESD204B鏈路結(jié)構(gòu)類似,所以僅展示AD的JESD204B RTL圖,如圖4所示。
圖4 AD JESD204B IP核
2.3.2 PCIe通道與DDR3設(shè)計(jì)
PCIe鏈路功能為連接上位機(jī)和FPGA信號(hào)處理載板,傳輸采集數(shù)據(jù)和命令,DDR3模塊負(fù)責(zé)緩存AD9680采集上來的數(shù)據(jù),等待上傳命令,經(jīng)由PCIe鏈路發(fā)送至上位機(jī),可以令上位機(jī)在空閑時(shí)段處理其他事務(wù),提高處理效率。
本設(shè)計(jì)中的PCIe接口采用PCIe2.0 x4接口,可提供的帶寬最高可達(dá)2 GB/s,而AD9680采集數(shù)據(jù)帶寬約為14 bits×1 GHz/8≈1.75 GB/s,本次采用的PCIe接口可以滿足工控機(jī)和FPGA之間的數(shù)據(jù)傳輸帶寬要求。
Vivado在設(shè)計(jì)上提供XDMAIP核,包含PCIe硬核和DMA功能。XDMA核提供AXI4-MM、AXI-Stream和AXI-Lite接口,其中AXI4-MM接口針對(duì)大流量數(shù)據(jù)讀寫,AXI4-Lite接口可以傳輸吞吐量簡(jiǎn)單的命令信息,完全滿足本次設(shè)計(jì)的需求[10]。XDMA核內(nèi)部結(jié)構(gòu)總覽如圖5所示。
圖5 XDMA核內(nèi)部結(jié)構(gòu)總覽圖
對(duì)XDMA(direct memory access)核進(jìn)行配置,本次設(shè)計(jì)為4通道,配置傳輸速率為5 GT/s,AXI數(shù)據(jù)位寬為64 bit,接口輸時(shí)鐘頻率為250 MHz,外部參考時(shí)鐘設(shè)置為100 MHz,最大傳輸帶寬為2 GB/s。
DDR3方面,Vivado為7系列的FPGA芯片提供了MIG 7系列IP核,用來控制DDR3的讀寫,并且提供AXI4接口,簡(jiǎn)化了設(shè)計(jì)難度[11]。本次設(shè)計(jì)硬件上選用的DDR3芯片容量為8 GB,封裝為SODIMM。
當(dāng)采集數(shù)據(jù)需要經(jīng)DDR3緩存通過PCIe鏈路發(fā)送到上位機(jī)分析和上位機(jī)命令與數(shù)據(jù)下行到FPGA內(nèi)時(shí),需要將XDMA核與MIG 7系列IP核形成一條完整的上下行傳輸鏈路。對(duì)于DDR3的控制主要使用AXI4系列的總線,DDR3控制器映射頂層圖如圖6所示。
Memory Interface Generator為內(nèi)存接口生成器
本次設(shè)計(jì)需要上位機(jī)來作為采集回放系統(tǒng)的控制臺(tái),能夠完成FPGA的復(fù)位、識(shí)別PCIe設(shè)備、子板板卡的狀態(tài)、采集回放命令控制、上傳數(shù)據(jù)的存儲(chǔ)等功能。利用Visual Studio2017平臺(tái)開發(fā),按照需求在交互界面上顯示對(duì)應(yīng)的功能按鈕與參數(shù)設(shè)置,并在留出日志區(qū)顯示處理信息的狀態(tài),使用戶更直觀地了解上位機(jī)的運(yùn)行狀態(tài)。上位機(jī)界面如圖7所示。
圖7 上位機(jī)界面圖
上位機(jī)工作流程如下。
(1)板卡自檢,點(diǎn)擊板卡自檢按鈕,會(huì)對(duì)子板芯片工作狀態(tài)、PCIe設(shè)備號(hào)、FPGA載板狀態(tài)檢測(cè),并會(huì)在日志內(nèi)顯示。
(2)FPGA復(fù)位,包含三個(gè)復(fù)位選擇,會(huì)對(duì)FPGA系統(tǒng)、PCIe、DDR3進(jìn)行復(fù)位操作。
(3)輸入采集數(shù)據(jù)長度,開放采集緩存,然后開始采集,將采集數(shù)據(jù)寫入硬盤內(nèi),數(shù)據(jù)管理框內(nèi)會(huì)顯示采集數(shù)據(jù)量,采集數(shù)據(jù)長度與之前輸入采集數(shù)據(jù)相同時(shí),會(huì)自動(dòng)停止采集,也可以點(diǎn)擊關(guān)閉采集緩存,結(jié)束采集,關(guān)閉采集通道。
(4)選擇回放數(shù)據(jù)存儲(chǔ)文件,點(diǎn)擊開始回放緩存,然后開始回放,將數(shù)據(jù)下發(fā)到FPGA,點(diǎn)擊關(guān)閉回放緩存,結(jié)束回放,關(guān)閉回放通道。
整個(gè)系統(tǒng)組成包括采集回放子板、FPGA信號(hào)處理載板以及工控機(jī),在測(cè)試過程中,會(huì)使用信號(hào)源和頻譜儀。整個(gè)測(cè)試系統(tǒng)連接圖如圖8所示。連接實(shí)物圖如圖9所示。
圖8 測(cè)試系統(tǒng)連接圖
圖9 測(cè)試系統(tǒng)連接實(shí)物圖
信號(hào)源選擇輸出信號(hào)頻率為10 MHz~1 GHz,幅度為AD9680所支持的滿量程的單一點(diǎn)頻正弦波。經(jīng)過AD9680采集后,在FPGA信號(hào)處理載板進(jìn)行解映射,利用DDR3緩存,通過PCIe鏈路傳輸?shù)焦た貦C(jī)存儲(chǔ),利用MATLAB對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行分析,得到動(dòng)態(tài)指標(biāo)參數(shù)?;胤艛?shù)據(jù)為工控機(jī)通過PCIe鏈路下發(fā)的數(shù)據(jù),然后經(jīng)過FPGA處理映射后傳輸?shù)紸D9152轉(zhuǎn)換為模擬信號(hào)輸出。
4.2.1 ADC采樣測(cè)試
給AD模擬端口輸入70 MHz的正弦波,使用XILINX公司的VIVADO設(shè)計(jì)軟件,將采集數(shù)據(jù)保存為csv格式的文件。
對(duì)70 MHz數(shù)據(jù)截取5次,然后利用MATLAB對(duì)信號(hào)進(jìn)行64 K點(diǎn)的FFT計(jì)算得到頻譜,取結(jié)果均值,結(jié)果如圖10所示。
圖10 AD采集70 M信號(hào)頻譜圖
由于信號(hào)源在發(fā)生1 GHz以下信號(hào)時(shí),產(chǎn)生了多次諧波分量,在計(jì)算動(dòng)態(tài)指標(biāo)時(shí),這會(huì)影響到最后的計(jì)算結(jié)果,所以在MATLAB中計(jì)算實(shí)測(cè)的SNR(signal-to-noise ratio)、SFDR(spurious-free dynamic range)和ENOB(effective number of bits)之前,會(huì)剔除高次諧波[12]。由圖10可以看到信號(hào)頻譜峰值在70 MHz處,底噪處于-90 dBm。經(jīng)過計(jì)算得到SFDR為79.41 dBFS,SNR為60.03 dBFS,ENOB為9.68 bit。根據(jù)AD9680芯片手冊(cè),ENOB損失在0.5 bit以內(nèi)。輸入其他頻率時(shí),得到的頻譜性能參數(shù)70 MHz相比,相差不大。
利用多個(gè)單一點(diǎn)頻信號(hào)合成來模擬中心頻率250 MHz,帶寬400 MHz的中頻信號(hào),通過AD采集,采集到的信號(hào)通過MATLAB分析得到頻譜,如圖11所示。
圖11 采集寬帶信號(hào)頻譜圖
4.2.2 DAC回放測(cè)試
將之前AD9680采集到的單一點(diǎn)頻信號(hào)和帶通信號(hào)存儲(chǔ)到上位機(jī),在通過PCIe下發(fā)作為AD9152的回放數(shù)據(jù),以70 MHz為例數(shù)據(jù)測(cè)試結(jié)果在示波器上頻譜圖如圖12所示,圖12中單一點(diǎn)頻信號(hào)的幅度在0 dBm,雜散抑制在80 dB左右。中心頻率250 MHz,帶寬400 MHz的中頻信號(hào)回放頻譜如圖13所示。
圖12 70 MHz回放頻譜
圖13 寬帶信號(hào)輸出
設(shè)計(jì)了一個(gè)基于FPGA與AD/DA的中頻寬帶信號(hào)采集存儲(chǔ)回放系統(tǒng),經(jīng)過測(cè)試驗(yàn)證,該系統(tǒng)能夠?qū)崿F(xiàn)高采樣率、寬帶、高傳輸速率的采集功能,具有大容量存儲(chǔ),回放時(shí)抗干擾能力強(qiáng),穩(wěn)定性優(yōu)良的特點(diǎn)。此外,該系統(tǒng)還具有靈活性高,采集帶寬足夠?qū)捯约氨銛y式等特點(diǎn)??梢赃m用于雷達(dá)、通信測(cè)試等多個(gè)領(lǐng)域,具有廣泛的應(yīng)用價(jià)值。