徐智軒,葛家瑾,梁 昊
(1.中國科學(xué)技術(shù)大學(xué) 核探測與核電子學(xué)國家重點(diǎn)實(shí)驗(yàn)室,安徽 合肥 230026;2.中國科學(xué)技術(shù)大學(xué) 近代物理系,安徽 合肥 230026)
隨著電子信息技術(shù)的高速發(fā)展,日趨復(fù)雜的信號(hào)處理需求對(duì)處理平臺(tái)提出了更高的要求。高速、高精度、高傳輸速率的數(shù)據(jù)采集卡廣泛成為多場景應(yīng)用的解決方案[1]。設(shè)計(jì)提出了一種基于Xilinx公司FPGA的200 Ms/s采樣率、16位精度的數(shù)據(jù)采集系統(tǒng),采用千兆以太網(wǎng)作為數(shù)據(jù)傳輸方案,千兆以太網(wǎng)作為局域網(wǎng)標(biāo)準(zhǔn)的一種重要形式,可提供高速、遠(yuǎn)距離的數(shù)據(jù)交互通道,已在局域網(wǎng)實(shí)現(xiàn)中得到廣泛的應(yīng)用[2]。通過千兆以太網(wǎng),設(shè)計(jì)實(shí)現(xiàn)了FPGA與上位機(jī)協(xié)同完成數(shù)據(jù)采集與性能測試。
數(shù)據(jù)采集卡的設(shè)計(jì)主要包括兩部分,作為模擬數(shù)據(jù)采集的子板部分和作為數(shù)據(jù)傳輸和存儲(chǔ)的母板部分,兩板用FPGA Mezzanine Card(FMC)連接器相連。母板上有一塊型號(hào)為XILINX Vertex-6的FPGA和一塊作為存儲(chǔ)器件的DDR3內(nèi)存條及用于數(shù)據(jù)傳輸?shù)那д滓蕴W(wǎng)接口。模擬輸入信號(hào)會(huì)先通過子板的濾波和放大電路進(jìn)入ADC,ADC對(duì)模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換后,產(chǎn)生的數(shù)字信號(hào)通過FMC進(jìn)入母板的FPGA。數(shù)據(jù)會(huì)先進(jìn)入DDR3進(jìn)行緩存,緩存的數(shù)據(jù)通過千兆以太網(wǎng)口上傳到PC端。數(shù)據(jù)的收發(fā)可通過上位機(jī)進(jìn)行控制。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)框圖
子板是數(shù)據(jù)采集板進(jìn)行模擬信號(hào)處理的部分,主要包括帶通濾波器、差分放大電路、時(shí)鐘電路、電源電路。子板電路結(jié)構(gòu)如圖2所示。子板采用AD9467作為模數(shù)轉(zhuǎn)換芯片,AD9467是一塊輸入緩沖流水線ADC,由四級(jí)閃存組成,輸入緩沖器提供線性高輸入阻抗以減少高頻輸入信號(hào)的反沖,ADC對(duì)高線性度、低噪聲和低功耗等指標(biāo)進(jìn)行了優(yōu)化,來自每一級(jí)閃存的量化輸出被組合成16位結(jié)果,通過冗余位數(shù)字校準(zhǔn)閃存錯(cuò)誤[3]。
圖2 子板電路框圖
模擬信號(hào)輸入需通過濾波和放大處理,濾波采
用高Q值的帶通濾波器,帶通濾波器可實(shí)現(xiàn)有效的選頻與濾波功能,在目標(biāo)輸入頻率范圍內(nèi)改善輸入波形的質(zhì)量。
使用ADL5562芯片來差分驅(qū)動(dòng)ADC的輸入,驅(qū)動(dòng)芯片的輸入阻抗進(jìn)行了匹配,使得共模噪聲得到抑制。在靜態(tài)工作時(shí),放大器電流的典型值是80 mA,芯片未使能時(shí)電流小于3 mA,為信號(hào)的輸入和輸出提供了有效的隔離。差分驅(qū)動(dòng)放大電路如圖3所示。
ADL5562是一款高性能全差分放大器,且對(duì)射頻信號(hào)和中頻信號(hào)處理進(jìn)行了優(yōu)化。放大器在寬頻域范圍內(nèi)有著低電平噪聲和低失真性能,是高速高性能ADC的理想驅(qū)動(dòng)器。差分放大電路的設(shè)計(jì)提供了三種增益級(jí)別:6 dB、12 dB和15.5 dB,可通過調(diào)整電路中和引腳相接的電阻的阻值進(jìn)行配置。
用低相位噪聲振蕩器來產(chǎn)生ADC的時(shí)鐘是必要的,因?yàn)椴蓸訒r(shí)鐘的抖動(dòng)會(huì)調(diào)制模擬輸入輸出信號(hào),降低信噪比,時(shí)鐘抖動(dòng)和信噪比的關(guān)系如下:
SNR=-20lg (2×π×fa×tj)
(1)
式中,孔徑抖動(dòng)的均方根表示著所有抖動(dòng)源的代數(shù)平方,包括時(shí)鐘輸入、模擬信號(hào)的輸入和ADC的內(nèi)部孔徑抖動(dòng)。內(nèi)部孔徑抖動(dòng)與采樣時(shí)鐘上的抖動(dòng)相比可以忽略,因?yàn)槎秳?dòng)對(duì)內(nèi)部中頻欠采樣影響較大,當(dāng)抖動(dòng)成為影響ADC動(dòng)態(tài)性能的主要因素時(shí),時(shí)鐘的輸入應(yīng)當(dāng)被看作是模擬信號(hào)的輸入[4]。為使ADC能工作在理想狀態(tài),設(shè)計(jì)以低抖動(dòng)的有源晶振SI545作為時(shí)鐘源。SI545采用數(shù)字phase-locked-loop(PLL)架構(gòu),在工作頻率下提供了超低的抖動(dòng)和低相位噪聲,其抖動(dòng)均方根的典型值為80 fs。
圖3 差分驅(qū)動(dòng)放大電路
圖4表示的是ADC的信噪比和抖動(dòng)的關(guān)系,一般高速ADC會(huì)同時(shí)使用兩個(gè)時(shí)鐘邊沿來產(chǎn)生內(nèi)部的定時(shí)信號(hào),因此高速ADC對(duì)時(shí)鐘信號(hào)的占空比敏感,占空比容錯(cuò)率需保持在5%以內(nèi)。AD9467內(nèi)置一個(gè)占空比穩(wěn)定器來重新排列非采樣單元,為內(nèi)部時(shí)鐘提供占空比為50%的信號(hào),使得外部輸入時(shí)鐘的占空比失真的容錯(cuò)范圍增加,提高了時(shí)鐘模塊的設(shè)計(jì)穩(wěn)定性。
圖4 時(shí)鐘抖動(dòng)與有效位關(guān)系
子板電路設(shè)計(jì)屬于模數(shù)混合電路,恰當(dāng)?shù)慕拥卦O(shè)計(jì)可以改善采集板的性能。圖5為數(shù)字返回電流干擾模擬返回電流的典型情況,接地回路電感和電阻由模擬電路和數(shù)字電路共享。因?yàn)锳DC的數(shù)字信號(hào)輸出帶有大量的諧波,會(huì)干擾到模擬型號(hào)的波形,同理模擬輸入的高頻分量也會(huì)干擾到數(shù)字信號(hào)的輸出。這里將子板的模擬地和數(shù)字地分開,中間以磁珠相隔。磁珠可用來隔離高頻信號(hào),減少數(shù)字信號(hào)對(duì)模擬信號(hào)的干擾。
圖5 流入模擬返回路徑的數(shù)字電流產(chǎn)生誤差電壓[5]
母板是采集卡作為數(shù)據(jù)傳輸和存儲(chǔ)的部分。FPGA作為母板的控制單元,DDR3用作存儲(chǔ)單元,千兆以太網(wǎng)口作為傳輸接口。FPGA的內(nèi)部邏輯結(jié)構(gòu)如圖6所示,包括Low-Voltage Differential Signaling(LVDS)數(shù)據(jù)接收模塊、數(shù)據(jù)拼接轉(zhuǎn)換模塊、SPI配置模塊、DDR3讀寫控制模塊、以太網(wǎng)傳輸控制模塊。
圖6 母板邏輯結(jié)構(gòu)框圖
DDR3控制邏輯由Xilinx公司提供的IP核和用戶接口模塊組成,IP核負(fù)責(zé)與DDR3內(nèi)存條直接通信,完成DDR3內(nèi)存條的初始化,對(duì)內(nèi)存條進(jìn)行刷新和預(yù)充電操作,并將DDR3內(nèi)存條復(fù)雜的讀寫時(shí)序翻譯為用戶可理解的讀寫時(shí)序。用戶只需根據(jù)IP核提供的狀態(tài)信號(hào)進(jìn)行讀寫操作即可。DDR3控制邏輯結(jié)構(gòu)如圖7所示,該模塊根據(jù)上位機(jī)的指令,與讀寫FIFO、DDR3 IP核配合,進(jìn)行存取操作[6]。在DDR3前一級(jí)FIFO中準(zhǔn)備一定數(shù)量現(xiàn)成的數(shù)據(jù),一組數(shù)據(jù)連續(xù)寫入IP核,同時(shí)對(duì)應(yīng)的相同數(shù)量的命令也被連續(xù)寫入IP核直到DDR3被寫滿,數(shù)據(jù)和命令的寫入過程相互獨(dú)立[7]。
圖7 DDR3內(nèi)存條控制邏輯
采集板的性能測試主要分三部分:DDR3存儲(chǔ)性能測試、以太網(wǎng)傳輸性能的測試和ADC性能測試。
DDR3性能測試的方法是將準(zhǔn)備好的數(shù)據(jù)存入內(nèi)存條中,通過以太網(wǎng)接口將數(shù)據(jù)上傳到計(jì)算機(jī),數(shù)據(jù)依據(jù)地址被連續(xù)地寫入內(nèi)存條中,再從內(nèi)存條中依次按照地址從內(nèi)存條中讀出[8],通過FPGA中的計(jì)數(shù)器進(jìn)行計(jì)數(shù)。在測試環(huán)節(jié)中,為了使得內(nèi)存條達(dá)到最大存儲(chǔ)速率,應(yīng)使DDR3在滿負(fù)荷條件下工作,因?yàn)镾DRAM在存取過程中會(huì)對(duì)存儲(chǔ)單元進(jìn)行充電、刷新產(chǎn)生額外的時(shí)間。同時(shí)需要設(shè)置FPGA內(nèi)部的計(jì)時(shí)器,以DDR3開始存儲(chǔ)的標(biāo)志位為計(jì)時(shí)起點(diǎn),以DDR3存滿標(biāo)志信號(hào)作為計(jì)時(shí)終點(diǎn),DDR3內(nèi)存條的容量為2 GB,測試存滿內(nèi)存條所需時(shí)間為278 054 μs,由此計(jì)算出最大寫速率的理論值為68.3 Gb/s。
以太網(wǎng)的傳輸測試主要分為傳輸穩(wěn)定性的測試和數(shù)據(jù)傳輸速度的測試。以太網(wǎng)的傳輸測試原理和DDR3測試原理相似,數(shù)據(jù)源是FPGA內(nèi)部設(shè)置的一個(gè)計(jì)數(shù)器,數(shù)據(jù)通過以太網(wǎng)傳輸后進(jìn)行奇偶校驗(yàn),再進(jìn)行連續(xù)性檢測,若未發(fā)現(xiàn)錯(cuò)誤,則證明經(jīng)過以太網(wǎng)傳輸?shù)臄?shù)據(jù)準(zhǔn)確[9]。
以太網(wǎng)速度測試的方法是根據(jù)上位機(jī)起始上傳數(shù)據(jù)時(shí)開始計(jì)時(shí),數(shù)據(jù)傳輸成功后終止計(jì)時(shí)。速度測試的硬件環(huán)境有型號(hào)為Intel core(TM)i5-4590的CPU、Intel 545S 128G SATA3接口的固態(tài)硬盤、型號(hào)為Intel PWLA8391GT的千兆以太網(wǎng)卡、千兆以太網(wǎng)線。測試了不同傳輸數(shù)據(jù)量下千兆以太網(wǎng)的速度,結(jié)果如表1所示,以太網(wǎng)最大傳輸速率達(dá)到了782 Mb/s。
表1 千兆以太網(wǎng)速度測試表
ADC靜態(tài)性能測試采用碼密度直方圖測試[10]。測試依據(jù)碼密度直方圖原理編寫MATLAB程序,將數(shù)據(jù)導(dǎo)入程序得到靜態(tài)性能測試結(jié)果,測試結(jié)果如圖8和圖9所示,測得ADC的DNL(微分非線性)參數(shù)為0.51/-0.43 LSB,INL(積分非線性)參數(shù)為3.92/-3.56 LSB,對(duì)比AD9467的器件手冊(cè),在未失碼的情況下ADC的INL的范圍是±9.5 LSB,測試結(jié)果在手冊(cè)范圍內(nèi)。
圖8 采集卡微分非線性
圖9 采集卡積分非線性
FFT測試方法是目前最常用的ADC動(dòng)態(tài)性能的測試方法,它是從頻域的角度去分析信號(hào)及噪聲背景的頻譜參數(shù),以此來計(jì)算ADC的各項(xiàng)動(dòng)態(tài)性能指標(biāo)[11]。一般用于定量表示ADC的動(dòng)態(tài)性能的常用指標(biāo)有6個(gè),分別是SINAD、ENOB、THD、THD+N、SFDR等,這里選取了其中三個(gè)參數(shù)進(jìn)行了測試,輸入頻率選取從1 MHz~50 MHz范圍內(nèi)的四個(gè)值進(jìn)行采樣,測量結(jié)果如表2所示。信號(hào)恢復(fù)波形如圖10所示,頻譜圖如圖11所示。
圖10 MATLAB恢復(fù)數(shù)據(jù)波形(9.9 MHz)
圖11 采集到的9.9 MHz正弦波信號(hào)頻譜圖
頻率/MHz主要?jiǎng)討B(tài)參數(shù)參考值SNRSFDRENOBENOB181.6183.4112.4912.49.9102.481.1912.4312.224.8103.3982.5312.5412.449.3101.5784.6512.6512.0
設(shè)計(jì)了一種16位200 Ms/s的ADC數(shù)據(jù)采集卡。經(jīng)測試和分析后,ADC數(shù)據(jù)采集卡的有效位在12.5左右,和器件手冊(cè)上的典型值相符。采集卡的數(shù)據(jù)傳輸性能穩(wěn)定,可以在上位機(jī)的控制下有效地收發(fā)數(shù)據(jù)。DDR3的最大傳輸速率可達(dá)到68.3 Gb/s,千兆以太網(wǎng)傳輸速率可達(dá)到782 Mb/s,數(shù)據(jù)采集卡的內(nèi)存有2 GB,所以采集卡的存儲(chǔ)深度有1 024M個(gè)采樣點(diǎn),可連續(xù)采樣5 s左右。