摘 要: 針對擴(kuò)頻調(diào)制信號低功率譜密度的特點(diǎn),討論了一種基于FPGA和ADS8364的適于擴(kuò)頻通信系統(tǒng)的高速高精度數(shù)據(jù)采集方案。采用“自上而下”的設(shè)計思想和“自下而上”的實(shí)現(xiàn)流程,將整個系統(tǒng)劃分為特定功能模塊進(jìn)行優(yōu)化設(shè)計,詳細(xì)介紹了各模塊的設(shè)計方法和實(shí)現(xiàn)步驟。
關(guān)鍵詞: 數(shù)據(jù)采集; 擴(kuò)頻通信; FPGA; ADS8364?
?
無線擴(kuò)頻網(wǎng)絡(luò)技術(shù)由于具有抗干擾能力強(qiáng)、隱蔽性好、容易實(shí)現(xiàn)多址傳輸?shù)葍?yōu)點(diǎn)而在移動通信、無線數(shù)據(jù)通信等領(lǐng)域得到越來越廣泛的應(yīng)用[1]。正是由于其低功率譜密度、低幅度的特點(diǎn),因此數(shù)據(jù)采集精度格外重要;又由于其寬頻帶特性,偽碼傳輸速率很高,因此對數(shù)據(jù)采集速度也提出了較高的要求。常采用的以單片機(jī)和DSP作為控制器的數(shù)據(jù)采集方案難以同時滿足以上兩個條件。FPGA具有大量I/O管腳和較強(qiáng)的帶載能力,內(nèi)部資源豐富,處理速度快,器件內(nèi)部信號延時小、功耗低、效率高[2],從而能有效提高信號完整性并具有較強(qiáng)的抗干擾能力。因此,充分發(fā)揮FPGA的優(yōu)點(diǎn),不僅在速度上能滿足高速數(shù)字信號處理的要求,而且可編程資源也大大增加,能滿足在系統(tǒng)級集成方面的需要,可提高系統(tǒng)的靈活性和適應(yīng)性,具有廣闊的應(yīng)用前景和深遠(yuǎn)的現(xiàn)實(shí)意義。下面針對擴(kuò)頻通信的特點(diǎn)、ADS8364的工作原理和系統(tǒng)主要邏輯控制部分的FPGA實(shí)現(xiàn)方法等分別予以說明,并對整體系統(tǒng)的仿真結(jié)果和功能實(shí)現(xiàn)情況進(jìn)行分析。
1 擴(kuò)頻通信技術(shù)概述
擴(kuò)頻通信技術(shù)是以香農(nóng)(Shannon)信息論[3]作為理論基礎(chǔ)而發(fā)展的。其一般工作原理如圖1所示。
擴(kuò)頻技術(shù)具有低幅度、隱蔽性好的特點(diǎn)[4]。在擴(kuò)頻系統(tǒng)中,信息能量被擴(kuò)散,因此信號功率密度降低到近于噪聲功率,甚至能在信號淹沒于噪聲之中的條件下進(jìn)行通信,隱蔽性與可靠性都很好。
而正是由于擴(kuò)頻通信低幅度、寬頻帶的特點(diǎn),對數(shù)據(jù)采集系統(tǒng)的精度和速度都提出了較高的要求。
2 系統(tǒng)的總體設(shè)計
目前國內(nèi)廣泛應(yīng)用的A/D芯片,往往不能對采集速度和精度兩方面進(jìn)行兼顧,因此設(shè)計中選取用多片高精度A/D芯片并行采集的方案。其系統(tǒng)框圖如圖2所示。
?
由圖2可知,整個數(shù)據(jù)采集系統(tǒng)主要包括A/D轉(zhuǎn)換器、FPGA控制電路以及電源電路等幾部分。A/D為系統(tǒng)的核心芯片,負(fù)責(zé)將經(jīng)過調(diào)理通道后的模擬信號轉(zhuǎn)換成數(shù)字信號。設(shè)計方案中選擇6片ADS8364作為A/D轉(zhuǎn)換器,這種并行時間交替采樣結(jié)構(gòu)可以有效提高整個系統(tǒng)的采樣率[5]。ADS8364[6]是高速、低功耗、6通道同步采樣和轉(zhuǎn)換的16位模數(shù)轉(zhuǎn)換器。其采用+5 V工作電壓,并帶有80 dB共模抑制的全差分輸入通道、6個4 μs連續(xù)近似的模數(shù)轉(zhuǎn)換器、6個差分采樣放大器、+2.5 V參考電壓以及高速并行接口。ADS8364的6個模擬輸入分為三組(A,B、C),每個輸入端都有1個ADCs保持信號以用來保證幾個通道能同時進(jìn)行采樣和轉(zhuǎn)換。
??? ADS8364中的取樣/保持模塊是以最大吞吐率250 kb/s[7] (當(dāng)外部時鐘為5 MHz時)工作的,這樣6片6通道并行采集得到的最大數(shù)據(jù)采集速率為:
250 kHz×6×6=9 MHz
而典型的擴(kuò)頻通信系統(tǒng)如WCDMA中碼片速率為3.84 Mchip/s,調(diào)制帶寬約需要5 MHz,顯然所設(shè)計方案的數(shù)據(jù)采集速率滿足指標(biāo)要求。
FPGA主要完成一些硬件電路的設(shè)計,產(chǎn)生各部分的控制信號,包括A/D控制碼發(fā)送電路、FIFO存儲電路和時鐘電路等。FPGA控制著整個系統(tǒng)有條不紊地運(yùn)行,完成數(shù)據(jù)采集、存儲等各項功能。
通常輸入信號的量級不是A/D芯片要求的范圍,必須經(jīng)過前端信號調(diào)理電路,以縮放和平移要采樣的信號,從而使調(diào)理后的信號適合ADC的模擬輸入要求。此后A/D開始從模擬信號到數(shù)字信號的轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)送入FPGA內(nèi)部FIFO中進(jìn)行緩存,然后將FIFO存儲器中的數(shù)據(jù)讀出并由微處理器進(jìn)行解擴(kuò)等后續(xù)處理。
3 FPGA功能模塊的設(shè)計實(shí)現(xiàn)
3.1 A/D控制模塊
ADS8364的控制信號包括時鐘控制信號、啟動信號HOLDX、轉(zhuǎn)換結(jié)束信號EOC以及讀使能信號ENO。
由于采用時間交叉模數(shù)轉(zhuǎn)換,即利用6片并行的ADS8364共同對一路模擬輸入信號進(jìn)行采樣,各ADC的采樣時鐘應(yīng)依次錯開360°/6=60°的相位??梢灾苯佑肍PGA中自帶的數(shù)字時鐘管理(DCM)模塊來實(shí)現(xiàn)此功能。6片ADS8364在各自的時鐘控制下,進(jìn)行模數(shù)轉(zhuǎn)換過程。
HOLDX保持至少20 ns的低電平時,系統(tǒng)的轉(zhuǎn)換才能開始。這個低電平可使各個通道的采樣保持放大器同時處于保持狀態(tài)從而使每個通道同時開始轉(zhuǎn)換。因此,每一個循環(huán)周期的開始都要有一個啟動信號HOLDX,使其保持一個時鐘周期的低電平,以啟動A/D轉(zhuǎn)換。
當(dāng)轉(zhuǎn)換結(jié)果被存入輸出寄存器后,轉(zhuǎn)換控制信號EOC的輸出將保持半個時鐘周期的低電平。在實(shí)際中,EOC1在低電平期間要跳轉(zhuǎn)3次,以啟動A/D的讀數(shù)過程。
讀使能信號ENO控制A/D的讀數(shù)過程。在ENO為高電平期間,A/D完成1次讀數(shù)過程。ENO是由HOLDX和EOC來控制的,它需在EOC跳轉(zhuǎn)結(jié)束后和HOLDX低電平來臨前這一期間一直保持高電平。
根據(jù)以上要求建立A/D控制模塊的信號產(chǎn)生模型,其邏輯關(guān)系框圖如圖3所示。
3.2 片選、路選模塊
ADS8364的讀、寫、片選信號RD、WR、CS都是低電平有效。讀、寫過程不能同時存在,且讀、寫時片選信號CS必須有效,即一直處于低電平。寫過程中,6片AD的36個通道可以同時寫數(shù)據(jù),但讀過程中需逐片、逐通道地往外輸出數(shù)據(jù),此過程可以用有限狀態(tài)機(jī)來實(shí)現(xiàn)。
ADS8364的1次循環(huán)是20個時鐘周期,前16個時鐘周期完成寫過程,后4個時鐘周期完成讀過程[8]。在讀過程中,每個通道只能讀1次,36個通道都讀一次所占時間不到后4個時鐘周期的一半。每片ADS8364有6個通道,在A/D數(shù)據(jù)讀取過程中,具體要從哪個通道來讀取數(shù)據(jù)是由地址信號A0、A1、A2來控制的。ADS8364讀過程的地址控制表可參考文獻(xiàn)[6]。
在讀使能信號ENO為高電平過程中,A0、A1、A2一直循環(huán)變化。通過以上分析得到A/D讀過程中片選、路選的電路結(jié)構(gòu)圖如圖4所示。
3.3 FIFO控制、存儲模塊
從硬件的觀點(diǎn)可以將FIFO看成是一塊數(shù)據(jù)內(nèi)存。對于異步FIFO而言,數(shù)據(jù)是由某一個時鐘域的控制信號寫入FIFO而由另一個時鐘域的控制信號將數(shù)據(jù)讀出FIFO。也就是說,讀寫指針的變化動作是由不同的時鐘產(chǎn)生的。因此,對FIFO空或滿的判斷是跨時鐘域的。由于6片ADS8364并行采集得到的是6路并行數(shù)據(jù),所以在存儲到FIFO之前要進(jìn)行復(fù)接,即并串轉(zhuǎn)換。FIFO的寫時鐘wr_clk應(yīng)該與6片A/D的總采樣時鐘一致,而FIFO的讀時鐘rd_clk不能小于其寫時鐘wr_clk,否則會發(fā)生數(shù)據(jù)溢出丟失。
FIFO中存儲的數(shù)據(jù)應(yīng)該達(dá)到一定的深度后才開始向外讀數(shù),這可以通過一個快滿信號almost_f來啟動[9]。產(chǎn)生almost_f信號的臨界深度值可以自主設(shè)定,本文中FIFO的存儲深度為256,當(dāng)寫入128個采樣數(shù)據(jù)后將almost_f置1,開始讀操作。
FIFO數(shù)據(jù)每次讀出時,要一直將FIFO中的數(shù)據(jù)讀空為止,因此需要一個控制模塊來控制FIFO的讀過程。FIFO控制信號包括讀空信號empty、快滿信號almost_f、讀使能信號rd_en。empty、almost_f都是高電平有效,當(dāng)FIFO中數(shù)據(jù)深度達(dá)到臨界值時,即快滿信號為高電平時觸發(fā)讀使能信號為高電平;而當(dāng)讀空信號為高電平時,觸發(fā)讀使能信號為低電平。如此寫讀循環(huán),完成整個A/D的數(shù)據(jù)存儲與輸出工作[10]。FIFO引腳接口框圖如圖5所示。
3.4 FPGA系統(tǒng)的整體實(shí)現(xiàn)與仿真
用VHDL語言[11]對上述各功能模塊進(jìn)行編程描述,在對整體系統(tǒng)進(jìn)行時序設(shè)計并優(yōu)化的基礎(chǔ)上,用ModelSim SE 6.0對FPGA控制系統(tǒng)進(jìn)行布局布線后仿真得到波形圖如圖6所示。
分析圖6可知,在1個周期的20個時鐘之內(nèi),前16個時鐘周期A/D寫使能wr為低電平有效,6片ADS8364分時并行寫入數(shù)據(jù);在后4個時鐘周期內(nèi),分別選通不同A/D的不同通道,將采集數(shù)據(jù)串行緩存到FIFO中,進(jìn)而再從FIFO中將采樣數(shù)據(jù)讀出。仿真中是用存儲在ROM中的數(shù)據(jù)來代替模擬輸入信號的。
4 數(shù)據(jù)采集系統(tǒng)功能驗證
FPGA選擇Xilinx公司的Spartan3E XC3S500E,微處理器選擇TMS320C5416型號的DSP,制作電路板進(jìn)行測試。接收到的擴(kuò)頻信號經(jīng)過本數(shù)據(jù)采集系統(tǒng)以后,將緩沖后的采集數(shù)據(jù)傳送到DSP的數(shù)據(jù)存儲區(qū),用CCS軟件觀測到的數(shù)字信號波形如圖7所示。擴(kuò)頻信號波形良好(未加噪聲并歸一化),設(shè)計方案實(shí)現(xiàn)了既定功能。
?
本文完成了一種可應(yīng)用于擴(kuò)頻通信中的高速、高精度數(shù)據(jù)采集系統(tǒng)的設(shè)計。并行時間交替采樣有效地提高了整個系統(tǒng)的采樣率,用FPGA作為控制器也有效提高了系統(tǒng)的采樣速度。根據(jù)FPGA在線可編程的特點(diǎn),利用FPGA進(jìn)行設(shè)計、仿真和驗證,便于方案的修改和優(yōu)化,不僅增加了系統(tǒng)的靈活性,而且大大縮短了產(chǎn)品的開發(fā)設(shè)計周期。經(jīng)測試該設(shè)計達(dá)到了預(yù)期效果,所設(shè)計系統(tǒng)不僅可以應(yīng)用于擴(kuò)頻通信中,而且能夠通過對FPGA的靈活配置將其推廣應(yīng)用到各種對數(shù)據(jù)采集速度和精度要求都比較高的場合,是一種比較理想的多通道、高精度數(shù)據(jù)采集方案。
?
參考文獻(xiàn)
[1] 邵志偉. 直接序列擴(kuò)頻通信系統(tǒng)仿真[J]. 黑龍江科技信息, 2008(28):78.
[2] 鄭友泉. 現(xiàn)場可編程門陣列[J]. 世界電子元器件,?2005(9):40-45.
[3] 3GPP TS 25.213.Spreading and modulation(FDD)[S],2000.
[4] 張子輝. 擴(kuò)頻調(diào)制技術(shù)[J]. 通信與信息技術(shù), 1993(2):1-3.
[5] 黃孜理. 基于UWB接收的超高速數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)[D]. 江蘇: 蘇州大學(xué), 2007.
[6] Texas Instruments. ADS8364 data sheet[EB/OL].?www.ti.com, 2002.
[7] 劉書明, 聶麗斌, 余愛民. ADS8364的原理及應(yīng)用[J].?國外電子元器件,2002(10):43-45.
[8] 譚恒.高精度多通道AD芯片ADS8364及其在有源電力濾波器中的應(yīng)用[J].電子科技, 2005(7):10-13.
[9] 高禮忠. FIFO在高速數(shù)據(jù)采集系統(tǒng)的應(yīng)用[J]. 電子測量技術(shù), 2005(1):51-52.
[10] 樸現(xiàn)磊, 熊繼軍, 沈三民. 基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].微計算機(jī)信息, 2008,24(1-2):209-211.
[11]?陸峰.基于CPLD的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計[D]. 太原:中北大學(xué), 2006.
[12] 劉韜, 樓興華. FPGA數(shù)字電子系統(tǒng)設(shè)計與開發(fā)實(shí)例導(dǎo)航[M]. 北京: 人民郵電出版社, 2005.