文獻標(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),實現(xiàn)多種無線通信功能,故以軟件無線電為基礎(chǔ)、面向多種通信體制的兼容信號處理技術(shù)成為研究熱點。
本文研制了一個能實現(xiàn)多種無線通信體制的軟件無線電平臺。該平臺如圖1所示,由上位機、FPGA處理板、射頻板和天線組成。其中,上位機提供用戶界面,并完成基帶信號處理和系統(tǒng)控制。FPGA處理板主要完成各種通信體制的信號預(yù)處理。
考慮到平臺對多體制速率的兼容性、用戶遠程配置處理平臺的便捷性以及平臺與現(xiàn)有網(wǎng)絡(luò)的融合和向分布式處理[1]方向的可升級性和易擴展性等,該平臺選用以太網(wǎng)接口作為上位機與FPGA處理板之間的連接方式。該以太網(wǎng)接口需要支持實時的在線重配置功能。
由于平臺選用的FPGA器件是Alteral公司的CyclloneII2C70F672C8,芯片本身沒有動態(tài)部分可重構(gòu)的功能,不能利用文獻[2,3]中介紹的Xilinx的VirtexFPGA的動態(tài)部分重構(gòu)功能,只需要重新配置FPGA的部分區(qū)域,而FPGA其余部分正常工作。Off-Chip動態(tài)重構(gòu)[4]的重構(gòu)時間太長。模塊的可重選擇[5]的重構(gòu)時間短,但耗費FPGA資源較多。為了滿足平臺的以太網(wǎng)接口對于一種配置時間較短而且耗用資源較少的配置方式的需要,本文提出并實現(xiàn)了一種上位機和FPGA處理板之間信令驅(qū)動的、參數(shù)可重加載的、可實時在線重配置的以太網(wǎng)接口,并詳細介紹了該接口的數(shù)據(jù)/信令包的格式設(shè)計和FPGA中的邏輯設(shè)計。
1 可配置接口設(shè)計
1.1 接口電路原理描述
上位機和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ā)送過程中,上位機先將用戶原始數(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進行數(shù)據(jù)格式的轉(zhuǎn)換,最后到達相應(yīng)的FPGA,F(xiàn)PGA再對接收到的網(wǎng)絡(luò)包進行解析處理,以恢復(fù)上位機發(fā)送的用戶原始數(shù)據(jù)/信令。接收過程相反,F(xiàn)PGA發(fā)送的數(shù)據(jù)包依次經(jīng)過8201、網(wǎng)絡(luò)交換芯片后到達上位機。
1.2 接口包格式設(shè)計
上位機與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為校驗位。標(biāo)準(zhǔn)的EthernetII包不能滿足所需接口的要求,需要在EthernetII協(xié)議的基礎(chǔ)上做一些改動,形成適合于統(tǒng)一平臺的網(wǎng)絡(luò)包格式,如圖4所示,圖4(a)為數(shù)據(jù)包格式,圖4(b)為信令包格式。
改進的包格式有以下特點:首先,將EthernetII協(xié)議的標(biāo)準(zhǔn)包格式中的數(shù)據(jù)段中劃分出一部分作為標(biāo)示域,其中長度域(Length)用來標(biāo)示包中數(shù)據(jù)/信令的長度,時間戳域(Timestamp)用來標(biāo)示包的發(fā)送或者接收時間。其次,通過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ù)的長度可以變化。
改進的網(wǎng)絡(luò)包為統(tǒng)一平臺,為實現(xiàn)靈活的切換方式提供了很好的基礎(chǔ),而且由于改進的網(wǎng)絡(luò)包保留了EthernetII協(xié)議的基本特性,可以在現(xiàn)有的以太網(wǎng)中傳輸。
1.3 FPGA的邏輯設(shè)計
在接口電路中傳輸?shù)氖茄b載了用戶數(shù)據(jù)/信令的網(wǎng)絡(luò)包,在接口兩端(即上位機和FPGA)都需要有相應(yīng)的接口模塊來對網(wǎng)絡(luò)包進行解析和封裝。本文重點介紹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ù)。
該模塊主要完成兩項工作:一是從MII口收發(fā)信令包,并將解析的信令送給各基帶處理模塊,進行參數(shù)配置和模式切換;二是從MII口收發(fā)數(shù)據(jù)包,提供上位機到FPGA內(nèi)部各個基帶處理模塊之間的數(shù)據(jù)通路。
當(dāng)系統(tǒng)在某種通信體制下正常工作時,上位機與FPGA之間的數(shù)據(jù)通路開啟,同時完成雙向數(shù)據(jù)的傳輸。待發(fā)送的下行數(shù)據(jù)經(jīng)過解包、切換控制、FIFO_1傳輸?shù)胶罄m(xù)模塊;接收到的上行數(shù)據(jù)經(jīng)過FIFO_2、切換控制、打包傳送到上位機。
當(dāng)系統(tǒng)需要切換到另一種通信體制時,上位機與FPGA之間的信令通路開啟,完成模塊的重配置。配置信令經(jīng)過解包、切換控制、信令控制后,解析出各配置參數(shù)送往相應(yīng)模塊進行參數(shù)重配置;待各模塊配置完成后(mcu_reply有效),啟動打包模塊發(fā)送一個信令回執(zhí)包以告知上位機。上位機收到FPGA的回執(zhí)包后,系統(tǒng)已切換到新通信體制下,可以進行雙向數(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)開啟信令通路時,將從datain端口輸入的信令送到信令控制器;同時當(dāng)檢測到mcu_reply端口的有效脈沖后,驅(qū)動打包模塊發(fā)送一個特定格式的信令回執(zhí)。當(dāng)開啟數(shù)據(jù)通路時,將從datain端口輸入的數(shù)據(jù)送到FIFO_1;同時將從端口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)。配置時,configN_en為高電平,configN_data中傳送的是配置信息(ParaN),configN_done在配置完成時會出現(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時鐘RXCLK/TXCLK),而另一端則需要實時改變數(shù)據(jù)速率,以匹配各種通信體制的上下行速率。本文中,可重配置FIFO中內(nèi)嵌了一個參數(shù)可調(diào)的PLL,該PLL可以根據(jù)配置端口的config_data內(nèi)容來實時改變時鐘,因此FIFO能快速可靠地實現(xiàn)不同數(shù)據(jù)速率的切換。config_data的內(nèi)容可以由用戶在配置信令中自行設(shè)置,位寬為16 bit,可以完成216種不同速率(基本時鐘為80 MHz,可以在基本時鐘上倍頻或分頻)。
2 接口重配置過程的仿真
為了驗證接口模塊的正常傳輸數(shù)據(jù)的功能以及在線重配置的功能,對接口模塊進行了仿真驗證。仿真中,數(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,仿真中需要驗證的場景是:
(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ò)接口的運行過程。仿真結(jié)果如圖6所示。
通過仿真表明,該接口能在上位機與FPGA之間準(zhǔn)確地傳輸數(shù)據(jù)包,而且通過該接口還能實現(xiàn)FPGA中各個基帶處理模塊(如FIFO)的在線重配置功能。該接口從系統(tǒng)整體的角度出發(fā),采用模塊化思想合理地劃分了各個模塊功能,不僅資源利用率高,而且配置時間短,如單個FIFO模塊的配置的時間小于1 μs,滿足設(shè)計需求。
該接口通過在FPGA上進一步調(diào)試,已經(jīng)在試驗平臺上開展測試。目前該接口可以滿足幾種主流通信體制的不同速率要求,用戶可以自行選擇需要配置的模塊,也可以設(shè)定這些模塊的配置參數(shù),切換過程靈活。
該接口在軟件無線電平臺上也已經(jīng)開展測試,可以滿足幾種主流通信體制的不同速率要求,具有很好的兼容性、靈活性和穩(wěn)定性,適合用于多種主流無線通信體制的不同速率要求。
參考文獻
[1] 粟欣,許希斌,姚彥.基于網(wǎng)絡(luò)的軟件無線電系統(tǒng)及實現(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].計算機測量與控制,2007,15(11):1415-1418.
[5] 張海亮,趙行波,王亮,等.基于FPGA的可配置通信平臺設(shè)計[J].微計算機信息,2006,22(11-2):192-194.
[6] http://www.broadcom.com/collateral/pb/5325-PB05-R.pdf.