文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)08-0048-04
隨著2.5 G和3 G的出現(xiàn),,使多種通信體制并存發(fā)展,,它們在工作頻段、波形結(jié)構(gòu),、調(diào)制方式,、編碼方式、加密方式等方面的不同,,既限制了系統(tǒng)之間操作的互通性,,也影響了用戶使用的便捷性。由于軟件無線電SDR(Software Defined Radio)技術(shù)可以將模塊化,、標(biāo)準(zhǔn)化和通用化的硬件單元和軟件模塊集成在一個通用的物理平臺上,,通過軟硬件的可重構(gòu),實(shí)現(xiàn)多種無線通信功能,故以軟件無線電為基礎(chǔ),、面向多種通信體制的兼容信號處理技術(shù)成為研究熱點(diǎn),。
本文研制了一個能實(shí)現(xiàn)多種無線通信體制的軟件無線電平臺。該平臺如圖1所示,,由上位機(jī),、FPGA處理板、射頻板和天線組成,。其中,,上位機(jī)提供用戶界面,并完成基帶信號處理和系統(tǒng)控制,。FPGA處理板主要完成各種通信體制的信號預(yù)處理,。
考慮到平臺對多體制速率的兼容性、用戶遠(yuǎn)程配置處理平臺的便捷性以及平臺與現(xiàn)有網(wǎng)絡(luò)的融合和向分布式處理[1]方向的可升級性和易擴(kuò)展性等,,該平臺選用以太網(wǎng)接口作為上位機(jī)與FPGA處理板之間的連接方式,。該以太網(wǎng)接口需要支持實(shí)時(shí)的在線重配置功能。
由于平臺選用的FPGA器件是Alteral公司的CyclloneII2C70F672C8,,芯片本身沒有動態(tài)部分可重構(gòu)的功能,,不能利用文獻(xiàn)[2,3]中介紹的Xilinx的VirtexFPGA的動態(tài)部分重構(gòu)功能,,只需要重新配置FPGA的部分區(qū)域,,而FPGA其余部分正常工作。Off-Chip動態(tài)重構(gòu)[4]的重構(gòu)時(shí)間太長,。模塊的可重選擇[5]的重構(gòu)時(shí)間短,,但耗費(fèi)FPGA資源較多。為了滿足平臺的以太網(wǎng)接口對于一種配置時(shí)間較短而且耗用資源較少的配置方式的需要,,本文提出并實(shí)現(xiàn)了一種上位機(jī)和FPGA處理板之間信令驅(qū)動的,、參數(shù)可重加載的、可實(shí)時(shí)在線重配置的以太網(wǎng)接口,,并詳細(xì)介紹了該接口的數(shù)據(jù)/信令包的格式設(shè)計(jì)和FPGA中的邏輯設(shè)計(jì),。
1 可配置接口設(shè)計(jì)
1.1 接口電路原理描述
上位機(jī)和FPGA之間的接口電路如圖2所示,主要由網(wǎng)絡(luò)交換芯片BCM5325E和接口轉(zhuǎn)換芯片RTL8201組成,。其中,,BCM5325E為網(wǎng)絡(luò)交換芯片[6],工作頻率為25 MHz,。芯片集成了10/100 Mb/s切換控制器和6個端口,,除了一個MII(Media Independent Interface)端口以外,另外5個端口(port0-port4)為全雙工的10/100 Mb/s快速以太網(wǎng)收發(fā)器(滿足IEEE802.3 u標(biāo)準(zhǔn)接口),,完成以太網(wǎng)物理接口功能,。RTL8201是一個快速以太網(wǎng)物理層收發(fā)器,,工作頻率為25 MHz,可以將IEEE802.3 u標(biāo)準(zhǔn)接口轉(zhuǎn)化為MII接口,。
發(fā)送過程中,,上位機(jī)先將用戶原始數(shù)據(jù)/信令按照一定的格式封裝成網(wǎng)絡(luò)包,通過網(wǎng)口發(fā)送到交換芯片的端口(port0或者port1),,網(wǎng)絡(luò)交換芯片將該網(wǎng)絡(luò)包轉(zhuǎn)發(fā)到相應(yīng)端口(port3或者port4),,然后經(jīng)過相應(yīng)的8201進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換,最后到達(dá)相應(yīng)的FPGA,,F(xiàn)PGA再對接收到的網(wǎng)絡(luò)包進(jìn)行解析處理,,以恢復(fù)上位機(jī)發(fā)送的用戶原始數(shù)據(jù)/信令。接收過程相反,,F(xiàn)PGA發(fā)送的數(shù)據(jù)包依次經(jīng)過8201,、網(wǎng)絡(luò)交換芯片后到達(dá)上位機(jī)。
1.2 接口包格式設(shè)計(jì)
上位機(jī)與FPGA之間需要交換數(shù)據(jù)包來完成通信雙方的信息傳輸,,還需要交換信令包來完成系統(tǒng)的重配置,,因此需要接口能夠區(qū)分不同類型的包。此外,,不同通信體制下或不同傳輸業(yè)務(wù)中,,數(shù)據(jù)速率不同可能要求包的長度不同,因此還需要接口能夠靈活地識別不同長度的網(wǎng)絡(luò)數(shù)據(jù)包,。
標(biāo)準(zhǔn)EthernetII協(xié)議下的包格式如圖3所示,,其中D_MAC為數(shù)據(jù)包的目的地址,S_MAC為數(shù)據(jù)包的源地址,,TYPE為數(shù)據(jù)包的類型,,F(xiàn)CS為校驗(yàn)位。標(biāo)準(zhǔn)的EthernetII包不能滿足所需接口的要求,,需要在EthernetII協(xié)議的基礎(chǔ)上做一些改動,形成適合于統(tǒng)一平臺的網(wǎng)絡(luò)包格式,,如圖4所示,,圖4(a)為數(shù)據(jù)包格式,圖4(b)為信令包格式,。
改進(jìn)的包格式有以下特點(diǎn):首先,,將EthernetII協(xié)議的標(biāo)準(zhǔn)包格式中的數(shù)據(jù)段中劃分出一部分作為標(biāo)示域,其中長度域(Length)用來標(biāo)示包中數(shù)據(jù)/信令的長度,,時(shí)間戳域(Timestamp)用來標(biāo)示包的發(fā)送或者接收時(shí)間,。其次,通過Type域的內(nèi)容來區(qū)分?jǐn)?shù)據(jù)包和信令包,。最后,,數(shù)據(jù)包中的Data域用來裝載用戶數(shù)據(jù),信令包的Infor域用來裝載信令,如濾波器的參數(shù)配置信息,、成幀模塊的參數(shù)配置信息,、編碼模塊的參數(shù)配置信息等。每個模塊對應(yīng)的配置信令的格式為“Addr+Len+Para”,,如圖4(b)所示,。首先是4 B的信令頭信息,其中2 B表示該信令對應(yīng)的內(nèi)部模塊地址Addr,,另外2 B表示該信令的長度Len,;接下來的n B是信令的內(nèi)容,即各模塊的配置參數(shù)Para,。因此,,用戶可以靈活地選擇需要配置的模塊,也可以根據(jù)需要設(shè)定這些模塊的配置參數(shù),,而且每個模塊的配置參數(shù)的長度可以變化,。
改進(jìn)的網(wǎng)絡(luò)包為統(tǒng)一平臺,為實(shí)現(xiàn)靈活的切換方式提供了很好的基礎(chǔ),,而且由于改進(jìn)的網(wǎng)絡(luò)包保留了EthernetII協(xié)議的基本特性,,可以在現(xiàn)有的以太網(wǎng)中傳輸。
1.3 FPGA的邏輯設(shè)計(jì)
在接口電路中傳輸?shù)氖茄b載了用戶數(shù)據(jù)/信令的網(wǎng)絡(luò)包,,在接口兩端(即上位機(jī)和FPGA)都需要有相應(yīng)的接口模塊來對網(wǎng)絡(luò)包進(jìn)行解析和封裝,。本文重點(diǎn)介紹FPGA端的接口模塊,如圖5所示,,由6個子模塊組成:解包,、打包、信令/數(shù)據(jù)切換控制,、信令控制器以及FIFO,。其中,解包是從MII口收取網(wǎng)絡(luò)包,,根據(jù)網(wǎng)絡(luò)包的格式取出其中的信令/數(shù)據(jù),;打包是將信令/數(shù)據(jù)按照網(wǎng)絡(luò)包的格式封裝起來,發(fā)送到MII口,;切換控制是用來選擇控制信令通路或數(shù)據(jù)通路的開啟,;信令控制器解析信令,送往相應(yīng)模塊的配置端口,;FIFO用于緩存上行數(shù)據(jù)和下行數(shù)據(jù),。
該模塊主要完成兩項(xiàng)工作:一是從MII口收發(fā)信令包,并將解析的信令送給各基帶處理模塊,,進(jìn)行參數(shù)配置和模式切換,;二是從MII口收發(fā)數(shù)據(jù)包,,提供上位機(jī)到FPGA內(nèi)部各個基帶處理模塊之間的數(shù)據(jù)通路。
當(dāng)系統(tǒng)在某種通信體制下正常工作時(shí),,上位機(jī)與FPGA之間的數(shù)據(jù)通路開啟,,同時(shí)完成雙向數(shù)據(jù)的傳輸。待發(fā)送的下行數(shù)據(jù)經(jīng)過解包,、切換控制,、FIFO_1傳輸?shù)胶罄m(xù)模塊;接收到的上行數(shù)據(jù)經(jīng)過FIFO_2,、切換控制,、打包傳送到上位機(jī)。
當(dāng)系統(tǒng)需要切換到另一種通信體制時(shí),,上位機(jī)與FPGA之間的信令通路開啟,,完成模塊的重配置。配置信令經(jīng)過解包,、切換控制,、信令控制后,解析出各配置參數(shù)送往相應(yīng)模塊進(jìn)行參數(shù)重配置,;待各模塊配置完成后(mcu_reply有效),,啟動打包模塊發(fā)送一個信令回執(zhí)包以告知上位機(jī)。上位機(jī)收到FPGA的回執(zhí)包后,,系統(tǒng)已切換到新通信體制下,,可以進(jìn)行雙向數(shù)據(jù)(上下行數(shù)據(jù))的傳輸。
解包模塊:從MII口獲取網(wǎng)絡(luò)包后,,首先應(yīng)核對網(wǎng)絡(luò)包中D_MAC域的內(nèi)容,,若D_MAC域與本地MAC地址相同則接收該網(wǎng)絡(luò)包,否則丟棄,。然后取出網(wǎng)絡(luò)包的Type域和Length域的內(nèi)容,,并根據(jù)Length域的長度信息取出包中的信令/數(shù)據(jù),一并送往切換控制器,。
切換控制模塊:根據(jù)type端口的信息選擇開啟信令通路或者數(shù)據(jù)通路,。當(dāng)開啟信令通路時(shí),將從datain端口輸入的信令送到信令控制器,;同時(shí)當(dāng)檢測到mcu_reply端口的有效脈沖后,驅(qū)動打包模塊發(fā)送一個特定格式的信令回執(zhí),。當(dāng)開啟數(shù)據(jù)通路時(shí),,將從datain端口輸入的數(shù)據(jù)送到FIFO_1;同時(shí)將從端口fout_data輸入的FIFO_2的數(shù)據(jù)送到打包模塊,。
信令控制器:解析信令,,并將根據(jù)配置信息完成模塊的重配置,。信令控制器在mcu_en端口為高電平期間從mcu_data讀取信令,并開始按信令格式“AddrN+LenN+ParaN”解析信令,。首先根據(jù)內(nèi)部預(yù)設(shè)的一個模塊端口查找表,,查出AddrN對應(yīng)模塊的配置端口(包括configN_en,configN_data,configN_done),。配置時(shí),,configN_en為高電平,configN_data中傳送的是配置信息(ParaN),,configN_done在配置完成時(shí)會出現(xiàn)一個正脈沖,。當(dāng)信令控制器搜集完各個配置模塊的config_done有效脈沖后,才輸出一個mcu_reply有效脈沖反饋給切換控制器,。
可重配置FIFO:緩存上行數(shù)據(jù)和下行數(shù)據(jù),,可以根據(jù)當(dāng)前體制或業(yè)務(wù)需求來調(diào)整某些參數(shù),以完成數(shù)據(jù)流的控制,。例如FIFO一端連接的是固定的硬件網(wǎng)口速率(25 MHz時(shí)鐘RXCLK/TXCLK),,而另一端則需要實(shí)時(shí)改變數(shù)據(jù)速率,以匹配各種通信體制的上下行速率,。本文中,,可重配置FIFO中內(nèi)嵌了一個參數(shù)可調(diào)的PLL,該P(yáng)LL可以根據(jù)配置端口的config_data內(nèi)容來實(shí)時(shí)改變時(shí)鐘,,因此FIFO能快速可靠地實(shí)現(xiàn)不同數(shù)據(jù)速率的切換,。config_data的內(nèi)容可以由用戶在配置信令中自行設(shè)置,位寬為16 bit,,可以完成216種不同速率(基本時(shí)鐘為80 MHz,,可以在基本時(shí)鐘上倍頻或分頻)。
2 接口重配置過程的仿真
為了驗(yàn)證接口模塊的正常傳輸數(shù)據(jù)的功能以及在線重配置的功能,,對接口模塊進(jìn)行了仿真驗(yàn)證,。仿真中,數(shù)據(jù)包的長度(即Length域)設(shè)置為1 490 B,,Type1為080 A,。信令包的長度(即Length域)設(shè)置為1 490 B,Type2為080 B,,F(xiàn)IFO的配置信令長度設(shè)置為2 B,。
仿真環(huán)境選用Modelsim,仿真中需要驗(yàn)證的場景是:
(1)初始配置過程,,即在上電后,,F(xiàn)PGA中的接口模塊從MII口接收到第一個信令包(圖6中信令1),信令控制器根據(jù)其中的信令信息完成FIFO1和FIFO2的速率參數(shù)rate1的配置,,并反饋給MII口一個信令回執(zhí)包,。
(2)數(shù)據(jù)傳輸過程,,即FPGA中的接口模塊從MII口連續(xù)接收幾個數(shù)據(jù)包(圖6中數(shù)據(jù)1和數(shù)據(jù)2),數(shù)據(jù)通過切換控制器到FIFO1緩沖,,再由rate1速率輸出給后續(xù)的處理模塊,。
(3)在線重配置過程,即在系統(tǒng)工作中,,F(xiàn)PGA中的接口模塊從MII口接收到第二個信令包(圖6中信令2),,按(1)的過程配置FIFO的速率rate2,并反饋信令回執(zhí),。
(4)新的數(shù)據(jù)傳輸過程,,即同(2)的過程,數(shù)據(jù)由rate2速率輸出給后續(xù)的處理模塊,。
利用TestBentch產(chǎn)生rxdv,、rxd、rxclk等MII口的輸入信號以及sys_clk,、reset_n等系統(tǒng)全局輸入信號,,即可模擬以上網(wǎng)絡(luò)接口的運(yùn)行過程。仿真結(jié)果如圖6所示,。
通過仿真表明,,該接口能在上位機(jī)與FPGA之間準(zhǔn)確地傳輸數(shù)據(jù)包,而且通過該接口還能實(shí)現(xiàn)FPGA中各個基帶處理模塊(如FIFO)的在線重配置功能,。該接口從系統(tǒng)整體的角度出發(fā),,采用模塊化思想合理地劃分了各個模塊功能,不僅資源利用率高,,而且配置時(shí)間短,,如單個FIFO模塊的配置的時(shí)間小于1 μs,滿足設(shè)計(jì)需求,。
該接口通過在FPGA上進(jìn)一步調(diào)試,,已經(jīng)在試驗(yàn)平臺上開展測試。目前該接口可以滿足幾種主流通信體制的不同速率要求,,用戶可以自行選擇需要配置的模塊,,也可以設(shè)定這些模塊的配置參數(shù),切換過程靈活,。
該接口在軟件無線電平臺上也已經(jīng)開展測試,,可以滿足幾種主流通信體制的不同速率要求,具有很好的兼容性,、靈活性和穩(wěn)定性,,適合用于多種主流無線通信體制的不同速率要求。
參考文獻(xiàn)
[1] 粟欣,許希斌,,姚彥.基于網(wǎng)絡(luò)的軟件無線電系統(tǒng)及實(shí)現(xiàn)[J].電信科學(xué),2001(11).
[2] EDSON L.HORTA,,JOHN W.L,,DAVID P.Dynamic hardware plugins in an FPGA with partial run-time reconfiguration.In DAC 2002(New Orleans,Louisiana,,USA),,2002(6):343-348.
[3] HADLEY J.D,HUTCHINGS B.L.Designing a partially reconfigured system.In FPGAs for Fast Board Development and Reconfigurable Computing,,in Proc.SPIE 2607,,1995:210-220.
[4] 谷鑾,徐貴力,,王友仁.FPGA動態(tài)可重構(gòu)理論及其研究進(jìn)展[J].計(jì)算機(jī)測量與控制,,2007,15(11):1415-1418.
[5] 張海亮,,趙行波,,王亮,等.基于FPGA的可配置通信平臺設(shè)計(jì)[J].微計(jì)算機(jī)信息,,2006,,22(11-2):192-194.
[6] http://www.broadcom.com/collateral/pb/5325-PB05-R.pdf.