文/董衛(wèi)珍 衡總 張磊磊
基于FPGA的多通道采集傳輸模塊的設(shè)計
文/董衛(wèi)珍 衡總 張磊磊
由于多通道體制的聲納具有高信噪比和高精度等特性,它已經(jīng)成為當(dāng)前聲納的主流。因此,多通道信號的實時、高效采集尤為關(guān)鍵。本文提出了一種基于FPGA的多通道聲納采集模塊,它利用FPGA產(chǎn)生AD芯片的控制信號,并將采集到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),最后將采集到的數(shù)據(jù)傳至信號預(yù)處理模塊。該設(shè)計具有高精度、低噪的特點,可同時對多路信號進行AD采集、處理和傳輸,采集數(shù)據(jù)有效位數(shù)達12bit,采樣頻率可達240Ksps。
FPGA AD7690 采集
對于多通道采集系統(tǒng)來說,其模數(shù)轉(zhuǎn)換的多路擴展性、實時性和高精度決定著采集系統(tǒng)的性能。一般的信號采集系統(tǒng)中,常采用單片機或DSP對AD轉(zhuǎn)換進行控制,單片機一般用于低速數(shù)據(jù)的轉(zhuǎn)換中,且接口單一,靈活性差;DSP以其高速處理、強大而又靈活的接口和通信能力已應(yīng)用于許多實際系統(tǒng),但是DSP易受干擾。
FPGA具有硬件可定制的特點,所有功能利用硬件實現(xiàn),能夠有效克服單片機和DSP的缺點。FPGA的時鐘頻率高、內(nèi)部延時小、編程配置靈活等特點,使其可以集采樣控制、處理、緩存和傳輸于一個芯片內(nèi)實現(xiàn)片上系統(tǒng),從而大大提高系統(tǒng)的可靠性,降低了系統(tǒng)成本。因此,基于FPGA進行AD采集的設(shè)計已成為了近些年的主流方向。
多通道采集模塊實現(xiàn)對60路模擬信號的同步采集和數(shù)據(jù)轉(zhuǎn)換及傳輸。它主要由三部分組成,包括60路Ad轉(zhuǎn)換模塊、FPGA處理模塊和輸出接口模塊。其中:FPGA主要產(chǎn)生AD芯片工作的控制信號,進行數(shù)據(jù)串并轉(zhuǎn)化的處理;AD轉(zhuǎn)換電路是將輸入的模擬信號進行采集、量化轉(zhuǎn)換到數(shù)字域,轉(zhuǎn)換后的數(shù)據(jù)送入FPGA進行相應(yīng)的處理;輸出接口電路負責(zé)將處理后數(shù)據(jù)傳至信號處理板進行進一步處理。多通道采集模塊的整體框圖如圖1所示。
圖1:多通道采集模塊的整體框圖
多通道采集模塊的FPGA芯片選用的是Xilinx公司Virtex系列的XC5VLX50T,它包含 28800個CLBs,480個I/O,2160kb BlockRam,48個DSP48E Slice;AD芯片選用的是AD7690,它是一款18位、逐次逼近型模數(shù)轉(zhuǎn)換器(ADC),它的最高采樣速率可達400Ksps,從而滿足項目240Ksps的采樣速率要求。
AD7690內(nèi)置一個低功耗、高速、18位不失碼的采樣ADC、一個內(nèi)部轉(zhuǎn)換時鐘和一個多功能串行接口,在CNV上升沿、AD7690對IN+與IN-引腳之間的電壓差進行采樣。這兩個引腳上的電壓擺幅為0V到REF,相位相反?;鶞孰妷海≧EF)由外部提供,最高可以設(shè)置為電源電壓。
由于AD7690是采用差分輸入的方式,所以需要對輸入信號進行單端轉(zhuǎn)差分。本設(shè)計中的單端轉(zhuǎn)差分轉(zhuǎn)換器選用的是ADA4941-1,該芯片是一款低功耗、低噪聲差分驅(qū)動器。它具有寬輸入電壓范圍(當(dāng)采用5V單電源時,可達0V至3.9V)、軌到軌輸出、高輸入阻抗和用戶可調(diào)增益,非常適合驅(qū)動AD7690。
AD7690芯片的控制信號不是特別復(fù)雜,具體控制信號的時序要求如圖2所示。其中信號的邏輯功能為:
圖2:AD7690的工作時序
圖3:AD控制模塊的仿真波形圖
(1)CNV 轉(zhuǎn)換輸入。此輸入有多項功能:在它的上升沿,它啟動轉(zhuǎn)換過程并選擇該部分的接口模式(鏈路或者片選)。當(dāng)處于片選模式時,SDO管腳在CNV為低電平時有效;當(dāng)處于鏈路模式時,數(shù)據(jù)只有在CNV為高電平時才可以進行讀取。
(2)SCK串行時鐘,邏輯輸入。串行時鐘輸入提供用于訪問AD7690 中的數(shù)據(jù)的串行時鐘。此時鐘也用作轉(zhuǎn)換過程的時鐘源。
(3)SDO 串行數(shù)據(jù)輸出。轉(zhuǎn)換數(shù)據(jù)以串行數(shù)據(jù)流的方式輸出到該管腳,并且輸出數(shù)據(jù)與SCK同步。
系統(tǒng)的邏輯功能設(shè)計主要實現(xiàn)對AD芯片的控制,將采集數(shù)據(jù)進行串并轉(zhuǎn)換,并將數(shù)據(jù)進行緩存和傳輸?shù)裙δ堋O旅鎸Ω鞑糠诌壿嫻δ苓M行詳細介紹。
本設(shè)計中,AD7690的接口方式采用的是片選模式,即在CNV為低電平時才可以進行數(shù)據(jù)的讀取。由于芯片的數(shù)據(jù)轉(zhuǎn)換時間為(0.5~2.1us),本設(shè)計中設(shè)置CNV的高電平持續(xù)時間大于2.1us,確保采集數(shù)據(jù)的正確。
控制模塊的工作流程為:當(dāng)接收到同步信號sys_start后,計數(shù)器cnt_cnv開始計數(shù),計數(shù)周期為500個120MHz時鐘;在cnt_cnv為1~265時,將CNV信號置高(保證大于2.1us);在cnt_cnv為266~480時,給出串行時鐘SCK(選用12MHz)。該模塊的仿真波形圖見圖3。
模擬信號經(jīng)AD7690轉(zhuǎn)換后得到的是串行數(shù)據(jù),而信號處理需要的是并行數(shù)據(jù),所以需要將64路信號進行串并轉(zhuǎn)換。AD數(shù)據(jù)處理模塊就是將60路數(shù)據(jù)信號進行串并轉(zhuǎn)換,并將數(shù)據(jù)傳入后端的數(shù)據(jù)緩存模塊,該模塊的邏輯框圖如圖4。
圖4:AD數(shù)據(jù)處理模塊的流程圖
以第一通道為例,描述下具體實現(xiàn)方式:
(1)在en_sck為高期間,派生以一個計數(shù)器cnt_rdad0,同時對接收到的串行數(shù)據(jù)進行移位寄存,當(dāng)計數(shù)器計到18時,將移位寄存器ad_ram0的值取出,該值din_db0即為當(dāng)前通道的串并轉(zhuǎn)換得到的位寬18bit的采樣數(shù)據(jù),該數(shù)值僅在每次轉(zhuǎn)換結(jié)束后才改變(保持一個采樣周期);
(2)當(dāng)AD數(shù)據(jù)讀取和串并轉(zhuǎn)換(en_ db)完成后:首先派生一個計數(shù)器en_cnt_ wr,將60路數(shù)據(jù)分別寫入不同的地址addr_ ram,當(dāng)60路數(shù)據(jù)寫操作結(jié)束時,將寫使能信號en_wrram拉底。
緩存AD數(shù)據(jù)模塊的功能是將AD采集數(shù)據(jù)存入RAM,并在要求讀取數(shù)據(jù)時,及時將數(shù)據(jù)讀出。該設(shè)計中開辟了一個128×18bit的RAM,采取乒乓存儲的方式,以保證讀寫數(shù)據(jù)不沖突。其具體實現(xiàn)方式:
(1)派生了一個標志信號ping_pang,該標志在每次同步信號到來時,發(fā)生改變;同時利用ping_pang和ad_data模塊傳來的地址信號addr_ram,作為寫入緩存RAM的地址,實現(xiàn)當(dāng)數(shù)據(jù)寫進地址(0~59)時,讀取地址(64~123)的數(shù)據(jù),反之亦然。
(2)當(dāng)發(fā)送模塊傳來的讀數(shù)據(jù)使能信號en_ram為高時,派生出一個讀數(shù)據(jù)計數(shù)器cnt_rdram,用于進行緩存RAM中數(shù)據(jù)的讀取。讀取的數(shù)據(jù)采用LVDS--Low Voltage Differential Signal模式傳輸至信號處理板,進行進一步的處理,圖5為數(shù)據(jù)緩存模塊的仿真波形圖。
圖5:數(shù)據(jù)緩存模塊波形圖
在ISE軟件環(huán)境下進行綜合、布局布線后,首先將程序下載到多通道采集模塊的硬件中;輸入模擬信號正弦波,使用在線邏輯分析儀ChipScope抓取串并轉(zhuǎn)換后的AD采集結(jié)果;AD采集結(jié)果畫圖后如圖6所示,可以看出采集模塊的數(shù)據(jù)采集功能是正常的。
圖6:串并轉(zhuǎn)換后的采集數(shù)據(jù)
本文通過FPGA來實現(xiàn)對AD7690的時序控制和數(shù)據(jù)傳輸,實現(xiàn)了對60路數(shù)據(jù)的同步采集。文中給出了系統(tǒng)部分功能的仿真,驗證了FPGA內(nèi)部邏輯程序的正確性;程序在線下載的測試結(jié)果,也驗證了采集模塊的工作正常。通過仿真和測試結(jié)果,可以看出系統(tǒng)的正確性和合理性,該設(shè)計已應(yīng)用于實際項目當(dāng)中。
[1]楊大偉,楊秀芳,李大偉等.基于FPGA的高速串行AD轉(zhuǎn)換器控制設(shè)計與實驗研究[J].西安理工大學(xué)學(xué)報,2014(03):91-95.
[2]劉新瑋,韓巍,張泳等.基于FPGA的多通道AD同步采集卡設(shè)計[J].工程與試驗,2013(53):75-77.
[3]郭云飛,趙冬娥,張斌等.基于FPGA的高速AD采集設(shè)計[J].山西電子技術(shù),2013(05):37-39.
[4]黃容蘭.基于FPGA的A/D轉(zhuǎn)換采集控制模塊設(shè)計[J].數(shù)據(jù)采集與處理,2009(10):237-240.
[5]何永泰.基于FPGA的多路A/D轉(zhuǎn)換控制接口設(shè)計[J].電子測量技術(shù),2006(29):78-80.
[6]趙吉成,王智勇.xilinx FPGA設(shè)計與實踐教程[M].西安:西安電子科技大學(xué)出版社,2012:26-40.
[7]田耘,徐文波.xilinx FPGA開發(fā)實用教程[M].北京:清華大學(xué)出版社,2008:295-316.
作者單位上海船舶電子設(shè)備研究所 上海市 201108