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