??? 摘 要: 設計了一個應用于多天線" title="多天線">多天線軟件無線電" title="軟件無線電">軟件無線電平臺的陣列數據采集" title="數據采集">數據采集系統,重點設計了ADC轉換和DSP之間通過EMIF總線進行數據傳輸的接口電路" title="接口電路">接口電路。提出了一種類似數字復用技術的共享總線,采用同步轉換、分時讀取的多路AD信號與FIFO存儲接口機制,取得良好的數據傳輸效率。
??? 關鍵詞: 軟件無線電? A/D" title="A/D">A/D轉換器? FPGA? DSP? EMIF
?
??? 軟件無線電的中心思想是構造一個具有開放性、標準化、模塊化的通用硬件平臺,用軟件完成各種功能,從而研制出具有高度靈活性、開放性的新一代無線通信系統[1]。本文基于軟件無線電的思想,提出并實現了一種多天線軟件無線電接收機[2]。基本思想如下:4路天線同時進行分集接收,接收信號零中頻變換后得到4路基帶I/Q信號,基帶I/Q信號同時送入4片雙通道A/D轉換器進行模數轉換,模數轉換后數據送入DSP中進行處理。本文重點研究了多天線系統中對多片ADC的控制及其與DSP之間接口電路的設計和實現。
??? 應用FPGA的可重復編程性,可以靈活地設計各種控制和接口電路。采用FPGA直接控制A/D轉換的方式可以達到高速數據采集的目的。但對于此多天線、多通道的多片并行A/D系統,如不優化設計,則接入到FPGA的管腳數太多,這樣會造成FPGA系統的資源浪費和成本增加。本設計給出一種類似于多路數字復接的共享總線,采用同步采集、分時讀取的方法,達到了對A/D進行有效控制和數據高速傳輸的目的,同時合理地應用了FPGA的資源,降低了硬件成本。
1 控制與接口電路的基本原理和設計
??? A/D數據采集與DSP接口電路的系統結構如圖1所示。由圖可知,系統主要包括A/D數據采集和控制、FIFO數據存儲、EMIF總線接口等部分。4路射頻信號經過前期的處理得到4組共8路I、Q信號。將8路I、Q信號分別送入四片雙通道A/D轉換器同時進行模數轉換,轉換數據經A/D控制單元分時,輪轉存入FPGA中的FIFO單元,由EMIF接口模塊送入DSP進行處理。
?
1.1 基本原理
??? 共享總線、同步轉換、分時讀取方法借鑒了分時操作的數字復用思想,按照時間片來對A/D轉換結果進行輪換讀取。如圖1所示:在硬件設計上,4片8路A/D轉換器的時鐘信號由DSP外部時鐘經過分頻電路提供,所有的A/D共用同一時鐘,共享數據總線,共享時鐘保證了4片A/D轉換芯片的同步,共享數據總線節約了FPGA的管腳,合理地利用了FPGA的資源。通過分別使能OE1~OE4信號,在A/D轉換完成后的數據有效時間內,分時讀取轉換結果并存入FIFO緩沖單元。當FIFO內部存儲的數據達到設定的數量時,就觸發DSP中斷,調用中斷服務程序從EMIF總線通過EDMA控制器將數據讀入DSP中。
1.2 模數轉換器AD9238簡介
??? 本文采用ADI公司的AD9238作為A/D轉換芯片。AD9238為雙通道,每個通道具有獨立的時鐘,可以靈活設置進行隔離模數變換的12位高速A/D變換芯片[4]。AD9238有20MSPS、40MSPS和65MSPS三種速度級別可供選擇。本設計最高采樣頻率20MHz,并行采集4組共8路I、Q信號。A/D采樣時序如圖2所示,AD9238的數據輸出有7個時鐘周期的流水線延遲,所以在開始采樣后前7個數據是無用的,應該在后端數字信號處理時舍棄掉。AD9238兩個通道的12bit數字信號輸出是獨立的,在本設計使用共同時鐘的條件下,各自獨立輸出轉換結果。在轉換結束后,通過控制各片A/D的輸出使能信號OEA/OEB就可以把輸出數據通過總線輸入到FPGA中的FIFO中。完成整個4片A/D采樣和讀取控制的步驟如下:
??? (1)FPGA為ADC提供采樣時鐘CLK;
??? (2)在CLK高電平時段,順次使得OE1~OE4分別有效,數據輪換讀入FIFO中;
??? (3)OE無效,進入下一個轉換周期。
?
??????????????????????????? 
1.3 EMIF總線控制原理
??? EMIF總線是C6000系列DSP與外部存儲器的接口,C6713的EMIF接口具有很強的接口能力,其數據總線為32位,可尋址空間為4GB,可以實現與SBSRAM、SDRAM、SRAM、ROM、FIFO等的無縫接口[3]。本文通過EMIF異步讀寫外部FIFO,其讀時序要求如圖3所示。每個讀/寫周期由建立、選通、保持這三個階段組成。相關的信號/CS為外部存儲器片選信號;/BE為字節選擇信號,確定數據寬度;時序設計時,先按照器件的典型參數計算讀/寫周期,并保持一定的時間裕量,然后實際測試,驗證通過。/ARE為異步讀使能;/AOE為異步輸出使能;/AWE為異步寫使能;EA為外部地址線;ED為外部數據線。
?
2 FPGA邏輯控制功能的實現
?? 本文采用ALTERA公司的ACEX1K系列FPGA完成邏輯控制功能,主要包括時鐘分頻及控制,4路并行雙通道A/D數據采集與控制,FIFO數據存儲與傳輸控制,與DSP的EMIF接口,EDMA事件觸發控制等。
2.1 A/D控制模塊
??? 根據前面介紹的A/D數據采集時序圖可知:在采樣頻率CLOCK為高電平的半個周期內,輸出轉換結果是可靠和穩定的,在時鐘信號CLOCK的半個周期內,以共享總線方式可以完成4路A/D的數據采集。圖4為4路A/D共享數據總線的控制時序圖,采用quarts II 仿真工具完成,其中EQ0為A/D采樣時鐘,EQ1~EQ4分別為4片A/D的片選信號(低電平有效),在有效時,允許A/D轉換數據輸出,輸出數據的同時,必須把數據寫入FIFO,否則數據會丟失。當EQ1-EQ4有效時,WRREQ輸出高電平作為FIFO的寫允許,CLKN的非信號WRCLK作為FIFO的寫時鐘,在WRCLK的上升沿剛好把ADC的輸出數據寫入FIFO。
?
2.2 FIFO 數據緩沖模塊
??? FIFO模塊暫存A/D轉換數據;在FIFO中開辟一定大小的數據存儲區,在每個A/D轉換周期內,通過數據總線讀入4×24bit數據;在FIFO中數據達到設定的容量后,FPGA向DSP發中斷信號,觸發DSP讀取FIFO數據。在DSP讀取數據的同時,為了防止數據的丟失,此期間內的A/D轉換數據也要同時存入到FIFO中,所以,要求使用可以同時進行讀寫的雙口FIFO實現此模塊。用MAX+Plus II自帶的可調參數模塊LPM-FIFO-DC可快速實現,此FIFO是雙時鐘同步FIFO,具有異步清零ACLR、讀時鐘RDCLK、讀允許RDREQ、寫時鐘WRCLK、寫允許可自定義容量。定義大容量可以減少DSP外部中斷次數,EDMA每次可以搬移的數據塊增大。根據DSP異步讀外部存儲器的時序[3],控制信號/CE2、/AOE、/ARE把FIFO數據讀入DSP,仿真時序如圖5所示。
???????????????? ?????? 
3 試驗測試及性能分析
??? 實測數據傳輸率及性能分析是設計數據采集系統的重要步驟。在本文中,ADC到FIFO數據傳輸和DSP讀取FIFO速度測試是兩個主要內容。
3.1 ADC 模塊數據傳輸測試
??? 本平臺的4個ADC模塊數據寫入FIFO時共用數據總線,使用74VHC541作為總線控制開關。在接口設計中,綜合考慮74VHC541的傳輸延遲,選通延遲、寫FIFO的建立和保持時間以及控制接口和ADC模塊的排線及PCB傳輸延遲。實測結果表明:4個ADC模塊同時采樣速率為2.8125MSPS時,采樣數據正確。此種情況下,相當于單板ADC采樣頻率可達11.25MSPS。圖6是該情況下一個ADC通道采樣波形,可看出采樣波形完整。
?
3.2 DSP數據傳輸測試
??? DSP通過異步方式讀取外部FIFO,在設置讀取過程的建立、選通和保持時間等時序參數后,當DSP的外部存儲器時鐘為90MHz時,實測表明:若采用CPU中斷,中斷服務程序通過執行語句的方式從FIFO中讀入512×32bit的數據塊,即使中斷服務程序經過優化,數據吞吐率也只有4.5×32Mbps。且此時CPU時間全部消耗在數據搬移工作上,無力進行數據的處理工作。
??? 若采用外部中斷觸發EDMA傳輸的機制,利用存儲器的乒乓操作,則同樣從FIFO中讀入512×32bit的數據塊,控制接口到DSP中L2的傳輸數率可以達到22.5×32Mbps的理想傳輸效率。
??? 本文設計了一種多片雙通道ADC與DSP的傳輸接口電路。實測結果表明:采用共享總線、同步轉換、分時讀取的方法,可以有效減少FPGA管腳的使用,同時達到數據高速傳輸的效果。本文中,若要進一步提高ADC的數據傳輸速率,可以選用內部自帶FIFO的ADC或者選用性能較好的緩沖器作為總線控制開關。
參考文獻
[1] 楊小牛,樓才義,徐建良.軟件無線電原理與應用.北京:電子工業出版社,2001:1-7,88-173
[2] 謝澤明,賴聲禮,龍智文.智能天線實驗平臺研究.電子技術應用,2004,30(3):39-42.
[3] Texas Instruments Incorporated.TMS320C6000 EMIF to External FIFO Interface.pdf.
[4] Analog Devices,Inc.AD9238.pdf,REV.A.




