【導讀】本文提出一種基于專用數字下變頻芯片GC5016的寬/窄帶數據下變頻解決方案,使用小規模FPGA實現對GC5016輸出數據的讀取和存儲,應用高性能DSP芯片C6455實現對下變頻后數據的分析和解調。
隨著電子技術和信號處理技術的發展,寬帶數據的應用越來越多,同時窄帶數據通信也仍然廣泛存在。同時對寬帶和窄帶數據進行處理是目前無線通信遇到的問題。由于數字接收機系統中,寬帶和窄帶數據的需求不是事先固定的,而是在信號分析和識別后,自適應地或者由用戶現場下發命令,實現寬帶或者窄帶信號的監測。在這種應用背景下,基于FPGA的數字下變頻就面臨現場編程問題,一般FPGA解決方法是將各種帶寬的參數存儲在其FLASH芯片中,隨時根據命令來調用不同帶寬下的工作參數,但需要的存儲空間較大,占用FPGA的資源也較多,基于此方法設計的系統需要大容量的FPGA芯片,系統的功耗較大,價格較高。
1 GC5016及其結構
GC5016是TI公司推出的寬帶4通道的可編程數字上下變頻器,提供160 Msps輸入速率,可以采用雙通道聯合處理最高320 Msps的輸入速率,滿足目前絕大部分A/D器件的速率要求。4個完全相同的通道可以獨立配置成上變頻、下變頻或兩個上變頻、兩個下變頻的組合通道。本文主要介紹其下變頻功能。GC5016的內部結構如圖1所示。圖中給出了GC5016在接收工作模式下的結構圖,其內部有4個通道,圖中給出了A和B兩個通道的結構圖,通道C和D具有和這兩個通道完全一致的結構。
圖1 GC5016內部結構圖
輸入數據經過數據選擇單元進入混頻器,數據選擇格式有定點16位、浮點16位以及AB雙路合成數據3種格式。數字混頻器將按照軟件配置對信號進行混頻,為了便于后面的濾波,一般轉換到零頻為中心的基帶數據。基帶數據可以兩路合成分別經過濾波器,也可以每路單獨進行濾波。濾波器組包括CIC濾波器和可編程濾波器:CIC濾波器可以實現1~256的整數抽取,降低了數據速率;可編程濾波器一般使用FIR濾波器,對信號進一步抽取和整形,這里抽取可以為1~16,可見GC5016可以實現最大的抽取為4 096(16 256)。FIR濾波后的數據經過AGC功率檢測和控制模塊,數據最后經過輸出格式化后輸出。
圖中配置口是一個并行數據接口,必須經過這個接口配置GC5016的寄存器,也可以通過配置口來讀取芯片的寄存器,查看芯片工作是否正常、初始化是否正確等;GC5016具有一個同步輸入和同步輸出口,可以用于多個GC5016的同步,也可以用于單個芯片內幾個通道的同步;JTAG口用于芯片的測試,用戶一般不需要連接;電源和時鐘復位接口是芯片正常工作的基本配置。
2硬件系統設計
硬件系統主要由ADC、GC5016、FPGA和DSP組成,如圖2所示。
圖2硬件系統
模/數轉換芯片ADC采用ADI公司的16位芯片AD9467,其采樣頻率高達200 MHz,具有75 dB的SNR和90 dB的SFDR,是一款性能較高的高速ADC.其對外接口是差分LVDS數據和時鐘總線,差分輸出不能直接連接到GC5016,需要采用FPGA將差分信號轉換成單端信號。FPGA以ADC輸出的差分時鐘為基準時鐘對差分數據進行讀取和轉換,將處理好的單端信號數據仍然在該時鐘基準下輸出給GC5016.由于FPGA的差分端口是相對應的,因此連接ADC的差分數據線和差分時鐘線要注意不能隨便連接,盡量安排在FPGA的同一Bank中,否則可能導致傳輸路徑不一致,在高速數據讀寫下容易產生相位畸變,使得輸入和傳輸數據錯誤。
DSP和FPGA之間的數據通過HPI接口,由FPGA寫入DSP,節省DSP的數據讀寫時間。DSP和FPGA之間還有EMIF接口,用于DSP對FPGA的控制,DSP和FPGA之間的控制狀態由GPIO總線傳輸。同時,DSP還連接一個EMIF接口到GC5016,用于DSP對GC5016的控制和狀態讀取。
3軟件設計
3.1 GC5016的控制寄存器設置
GC5016的控制寄存器被劃分為兩部分:8個全局寄存器和總共88頁的寄存器,每個頁包含了16個寄存器。全局寄存器的訪問地址是0x00~0x0F.頁寄存器的訪問地址需先在全局寄存器的地址2寫入頁地址,然后再訪問0x10~0x1F,就可以訪問該頁下的寄存器。每一個控制寄存器在芯片內被分配唯一的地址。這樣接口的設計就可以將GC5016作為處理器的一個外部存儲器來訪問。
3.2 GC5016的初始化
GC5016的初始化根據電路的不同可以分為三種情況:第一種是單個GC5016芯片,第二種是多個GC5016芯片配置由主GC5016芯片同步,第三種是多個GC5016芯片配置由外部源同步。而此次設計中只用一塊GC5016進行寬帶下變頻的驗證,所以屬于獨立GC5016芯片的配置。其配置步驟如下:
①寫0xFF00到地址0,復位芯片。
②寫0x0000到地址3,禁止所有輸出。
③寫0x0004到地址1,產生單觸發脈沖。
④裝載所有的配置寄存器。
⑤如果幾個通道需要同步控制,需要選擇一個同步源,可以通過在輸入文件中加入如下程序來實現同步控制:
soB_sync 4; fir_sync 4; sck_sync 4; nco_sync4; cic_sync 4;
⑥寫0x0100到地址0,清除復位。
⑦寫0x0004到地址1,產生同步脈沖,完成GC5016的設置。
3.3 GC5016的cmd5016軟件應用
可以使用專門提供的GC5016的配置軟件實現對其寄存器的設置。這些配置包括以下內容。
(1)關鍵字的類型
關鍵字的類型,共5種,分別是mandatory(M)、defaulted(D)、computed(C)、unused(X)、expert(E)。其中M是需要用戶進行選擇的變量,D是初始化默認值,C是軟件控制的變量,X是不用的變量,E一般是一個計算變量,不需要人為設置。
(2)偽指令
在配置文件中,偽指令mode AB receive和mode CD receive可以使GC5016工作在4通道DDC模式。在此模式下需要設置的偽指令有:
◆mode AB(CD)receive(定義DDC收發模式);
◆rin_rate(全局變量,接收輸入數據速率,0代表半速率,1代表全速率,2代表雙速率);
◆rin_cmplx(全局變量,接收輸入數據,0為接收的為實數數據,1為接收的為復數數據);
◆splitiq,splitiqAB,splitipCD(兩通道或者4通道模式變量);
◆freq,fck,bypass_mix(復數混頻器freq_msb,freq_mid,freq_lsb的設置);
◆bypass_cic,cic_dec(雙CIC濾波器的抽取因子);
◆bypass_fir,fir_dec,fir_diff,fir_nchan,fir_coef(PFIR模式和濾波器抽頭);
◆gain,overall_gain(手動增益設置);
◆agc_cf,agc_mode,agc_tc(AGC增益設置);
◆pwr_mtr_on(接收功率計設置);
◆routf_tdm(接收輸出格式控制通道D的TDM模式)。
3.4 DSP軟件流程
系統的DSP軟件流程如圖3所示。
DSP上電復位后,初始化相關接口,這些接口包括EMIF接口、HPI接口以及網絡和GPIO接口。初始化接口后,DSP等待從網口下發的控制命令,控制命令一般包括解調頻率、解調帶寬和解調方式等各種信息。DSP根據這些信息設置GC5016的寄存器,并將這些寄存器值寫入GC5016,使得GC5016可以正常工作,然后啟動FPGA采集GC5016輸出的數據,FPGA按照1024個數據一幀進行存儲,滿一幀后通知DSP讀取這些數據,DSP對這些數據解調后輸出到上位機顯示或者存儲。
圖3 DSP軟件流程
GC5016是一種理想的可編程4通道數字上下變頻器,根據需要可配置為兩路作為上變頻、兩路作為下變頻。當接收或發射的數據量龐大時,還可以使用多塊GC5016并行處理。再加上它的高速率、寬帶寬、高無雜散動態范圍、低功耗和靈活配置等各種優點,使得GC5016的應用非常廣泛,在CDMA/WCDMA、雷達及軟件無線電中都有強大的生命力和很好的發展前景。
相關文章
智能安防節能型視頻監控終端的設計方案
智能汽車無線車載終端播放器設計方案
智能汽車車載導航系統終端的研究方案