基于Virtex-6 FPGA的雙緩沖模式PCIe總線設(shè)計(jì)方案和
2 軟件無線電平臺(tái)設(shè)計(jì)
軟件無線電基于可編程、可重構(gòu)的通用硬件平臺(tái),通過加載不同的軟件實(shí)現(xiàn)不同的無線電功能,廣泛應(yīng)用于軍用和民用領(lǐng)域。為了能夠?qū)崿F(xiàn)復(fù)雜的算法,其平臺(tái)需要具備高速數(shù)據(jù)交換和實(shí)時(shí)信號(hào)處理的能力。該設(shè)計(jì)參考Xilinx ML605開發(fā)套件,基于Xilinx Virtex6 LX240T FPGA芯片,通過增加相應(yīng)的模塊搭建通用的軟件無線電平臺(tái)。
軟件無線電原理框圖如圖3所示。信號(hào)獲取模塊采用兩片ADC和DAC以實(shí)現(xiàn)IQ兩路信號(hào)的數(shù)模轉(zhuǎn)換;通信模塊由以太網(wǎng)和USBRS232接口組成;擴(kuò)展卡可以是射頻發(fā)射機(jī)或接收機(jī),通過擴(kuò)展卡接口與母板相連;JTAG接口提供在線編程和內(nèi)部測試功能;存儲(chǔ)器件包括512 MB DDR3內(nèi)存和128 MB平臺(tái)Flash,分別用于動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)和配置FPGA;人機(jī)接口由LED/LCD、按鍵和開關(guān)等元件組成,實(shí)現(xiàn)人機(jī)對話;200 MHz有源晶振和SMA時(shí)鐘接口組成時(shí)鐘輸入模塊,向FPGA提供時(shí)鐘基準(zhǔn);8通道PCIE接口和IP核實(shí)現(xiàn)平臺(tái)與PC間高速數(shù)據(jù)交換。
圖3 軟件無線電原理框圖
3 雙緩沖模式PCIE總線設(shè)計(jì)
3.1 PCIE驅(qū)動(dòng)設(shè)計(jì)
PC端基于Linux(Ubuntu 10.10)操作系統(tǒng)。該操作系統(tǒng)免費(fèi)開源,安全穩(wěn)定靈活,適合低成本軟件開發(fā)。驅(qū)動(dòng)程序包含數(shù)據(jù)流接口和控制接口。數(shù)據(jù)流接口用于Linux用戶空間和SRSE平臺(tái)間高速的數(shù)據(jù)交換;控制接口使用戶可以觀察和配置SRSE平臺(tái)寄存器,例如通過控制接口,用戶可以在PC端改變SRSE平臺(tái)的調(diào)諧頻率等參數(shù)。數(shù)據(jù)流接口是雙向獨(dú)立的,支持雙/單工,即可以同時(shí)讀和寫數(shù)據(jù)。以數(shù)據(jù)發(fā)送(從PC到SRSE)為例,用戶空間調(diào)用write()函數(shù)將任意數(shù)量的數(shù)據(jù)發(fā)送至驅(qū)動(dòng),驅(qū)動(dòng)整理數(shù)據(jù)碎片以滿足PCIE對數(shù)據(jù)對齊和傳輸塊數(shù)據(jù)量的要求。當(dāng)數(shù)據(jù)滿足4096字節(jié),驅(qū)動(dòng)將數(shù)據(jù)塊發(fā)送至Root Complex并保留已發(fā)送數(shù)據(jù)的列表,等待接收來自SRSE平臺(tái)的寫操作中斷。PCIE驅(qū)動(dòng)數(shù)據(jù)接收的原理如圖4所示。當(dāng)用戶空間調(diào)用read()函數(shù)或者驅(qū)動(dòng)接收到來自PCIE設(shè)備的數(shù)據(jù)時(shí),驅(qū)動(dòng)初始化讀操作。驅(qū)動(dòng)程序?qū)⒈3肿枞?blocking),直到用戶空間調(diào)用read()函數(shù),并且已接收到足夠的數(shù)據(jù)包,從而能夠填滿read()請求的數(shù)據(jù)量。碎片整理模塊對已接收的數(shù)據(jù)進(jìn)行整理,然后將數(shù)據(jù)塊返回至用戶空間,并通知其解除驅(qū)動(dòng)阻止。
圖4 PCIE驅(qū)動(dòng)中的數(shù)據(jù)接收
評論