1、軟件無(wú)線電技術(shù)發(fā)展現(xiàn)狀
J.Mitla在1992年首次提出了軟件無(wú)線電的概念,此后該技術(shù)一直受到業(yè)界的廣泛關(guān)注和研究。與傳統(tǒng)的無(wú)線電設(shè)備相比較,在軟件無(wú)線電中,諸如信號(hào)發(fā)生、調(diào)制/?解調(diào)、信道編譯碼等信號(hào)處理過(guò)程以及協(xié)議棧皆由軟件實(shí)現(xiàn),而不是固定電路,因此軟件無(wú)線電設(shè)備更易于重新配置,從而可靈活地進(jìn)行多制式切換并適應(yīng)技術(shù)的發(fā)展演進(jìn)。廣義上的軟件無(wú)線電分為三類。a)將多種不同制式的設(shè)備集成在一起,?例如現(xiàn)在市場(chǎng)上的GSM-CDMA雙模手機(jī)。顯然,這種方式只能在預(yù)置的幾種制式下切換,要增加對(duì)新的制式的支持則意味著集成更多的電路,重配置能力十分有限。b)基于現(xiàn)場(chǎng)可編程門陣列(FPGA)?和數(shù)字信號(hào)處理器(DSP),這類可編程硬件,重配置的能力得到了很大提高。但是用于FPGA的VHDL、Verilog等語(yǔ)言以及418?的匯編語(yǔ)言都是針對(duì)特定廠商的產(chǎn)品,使得這種方式下的軟件過(guò)分依賴于具體的硬件,可移植性較差。此外,對(duì)廣大技術(shù)人員來(lái)說(shuō),F(xiàn)PGA和DSP開發(fā)的門檻依然較高,開發(fā)過(guò)程也相對(duì)比較繁瑣。c)針對(duì)以上兩類缺陷,第三類軟件無(wú)線電設(shè)備采用通用硬件(例如:商用服務(wù)器、普通PC以及嵌入式系統(tǒng))作為信號(hào)處理軟件的平臺(tái),具有以下幾方面的優(yōu)勢(shì):純軟件的信號(hào)處理具有很大的靈活性;可采用通用的高級(jí)語(yǔ)言(如C/C++)進(jìn)行軟件開發(fā),擴(kuò)展性和可移植性強(qiáng),開發(fā)周期短;基于通用硬件的平臺(tái),成本較低,并可享受計(jì)算機(jī)技術(shù)進(jìn)步帶來(lái)的各種優(yōu)勢(shì)(如:CPU處理能力的不斷提高以及軟件技術(shù)的進(jìn)步等)。
盡管基于通用硬件平臺(tái)的軟件無(wú)線電具有諸多優(yōu)點(diǎn),但是目前通用硬件平臺(tái)在處理速度效率、體積和功耗以及實(shí)時(shí)性方面仍然比不上FPGA和DSP這樣的專用硬件。所以現(xiàn)在第二類軟件無(wú)線電仍然是主流,但由于微電子技術(shù)和計(jì)算機(jī)技術(shù)的快速發(fā)展,軟件無(wú)線電將越來(lái)越青睞于通用的硬件平臺(tái)。
2、GNU Radio概述
GNU Radio是由Eric Blossom發(fā)起的、完全開放的軟件無(wú)線電項(xiàng)目,旨在鼓勵(lì)全球技術(shù)人員在這一領(lǐng)域協(xié)作與創(chuàng)新,目前已經(jīng)具有一定的影響力。GNU(GNU’s Not Unix)本身是一個(gè)推進(jìn)軟件開放源代碼的著名項(xiàng)目,?由FSF(Free Softwaer Foundation)支持,目前廣泛使用的GNU/Linux操作系統(tǒng)則是來(lái)源于此。GNU Radio主要基于Linux操作系統(tǒng),也可以移植到其他操作系統(tǒng)上,采用C++結(jié)合Python腳本語(yǔ)言進(jìn)行編程,其代碼完全開放,用戶可以在其網(wǎng)站-R.上下載和參與更新維護(hù)其代碼。利用GNU Radio提供的一套軟件,再加上一臺(tái)普通PC機(jī)和廉價(jià)的硬件前端即可開發(fā)各種軟件無(wú)線電應(yīng)用。硬件前端可以是一套專用的射頻前端或者AD/DA卡,甚至是一塊普通的聲卡。Matt Ettus為GNU Radio設(shè)計(jì)了一套射頻前端USRP(Universal Software Radio Peripheral),可在0GHz~2.9GHz載頻上提供最高可達(dá)16Mhz帶寬的信號(hào)收/發(fā)能力。
除了具有第三類軟件無(wú)線電系統(tǒng)的優(yōu)點(diǎn)外,GNU Radio和USRP還具有如下優(yōu)勢(shì):
a)成本較低。軟件免費(fèi),USRP的價(jià)格大約與一臺(tái)普通PC相當(dāng),帶寬可滿足目前多數(shù)音視頻廣播和無(wú)線通信制式的要求,支持雙工和多天線應(yīng)用。
b)技術(shù)門檻較低,具有一定編程經(jīng)驗(yàn)和Linux使用經(jīng)驗(yàn)的用戶可在較短時(shí)間內(nèi)掌握其配置、使用和開發(fā)。
c)獲得來(lái)自全世界眾多GNURadio擁護(hù)者以及Eric Blossom?和Matt Ettus本人的技術(shù)支持。
3、GNU Radio的軟件結(jié)構(gòu)
GNU Radio的編程基于Python腳本語(yǔ)言和CH?的混合方式。C++由于具有較高的執(zhí)行效率,被用于編寫各種信號(hào)處理模塊,如:濾波器、FFT變換、調(diào)制/解調(diào)器、信道編譯碼模塊等,GNU Radio中稱這種模塊為block。Python是一種新型的腳本語(yǔ)言,具有無(wú)須編譯、語(yǔ)法簡(jiǎn)單以及完全面向?qū)ο蟮奶攸c(diǎn),因此被用來(lái)編寫連接各個(gè)block成為完整的信號(hào)處理流程的腳本,GNU Radio中稱其為graph。
GNU Radio的軟件結(jié)構(gòu)頂層是面向用戶的block及其“粘合劑”—— aph。用戶除了能夠開發(fā)自己的block之外,還可使用GNU Radio所包含的豐富的block,包括各種濾波器、FFT變換、調(diào)制/解調(diào)模塊、時(shí)頻同步模塊等等,其中一些利用了CPU的增強(qiáng)指令集(如:MMX、SSE、3D Now!)進(jìn)行了優(yōu)化,以提高性能。
在用戶用block和graph構(gòu)造的應(yīng)用程序下面是GNU Radio的運(yùn)行支持環(huán)境,主要包括緩存管理、線程調(diào)度以及硬件驅(qū)動(dòng)。GNU Radio中巧妙地設(shè)計(jì)了一套零拷貝循環(huán)緩存機(jī)制,保證數(shù)據(jù)在block之間高效的流動(dòng)。多線程調(diào)度主要用于對(duì)信號(hào)處理流程進(jìn)行控制以及各種圖形顯示,GNU Radio對(duì)此也提供了支持。GNU Radio的硬件驅(qū)動(dòng)包括USRP、AD卡、聲卡等等,用戶也可根據(jù)需求進(jìn)行擴(kuò)充。
GNU Radio除了支持Linux的多種發(fā)行版本之外,還被移植到Mac OS X、NetBSD以及Windows等操作系統(tǒng)上,這也意味著它也支持多種類型的計(jì)算機(jī)系統(tǒng)。
4、USRP射頻前端
USRP是GNU Radio最重要的硬件“伙伴”。與GNU Radio軟件相同,USRP也是完全開放的,其所有的電路圖、設(shè)計(jì)文檔和FPGA代碼均可從EttusResearch的網(wǎng)站下載?;贕1、radio和USRP的組合,用戶可以構(gòu)建各種具有想象力的軟件無(wú)線電應(yīng)用。
一套USRP由一快主板(Motherboard)和最多四塊子板(Daughter Board)搭配構(gòu)成。主板的主要功能為中頻采樣以及中頻信號(hào)到基帶信號(hào)之間的互相轉(zhuǎn)換。子卡的功能在于射頻信號(hào)的接收/發(fā)送以及到中頻的轉(zhuǎn)換。子卡有多種類型,分別覆蓋不同的射頻頻譜范圍,且具有不同的收/發(fā)能力和增益。
4.1? USRP主板
主板主要由以下幾個(gè)部分構(gòu)成:
1)AD/DA芯片
USRP采用兩塊Analog Device的AD9862芯片,每塊可分別提供兩路12bit、64MSample/s的AD變換和兩路14bit、128MSample/s的DA變換。那么一塊主板可提供4路模擬轉(zhuǎn)換器(ADC)和4路的數(shù)字模擬信號(hào)轉(zhuǎn)換器(DAC),也即收/發(fā)各兩路的復(fù)采樣。此外DAC單元還集成了數(shù)字上變頻(DUC)功能。
2)FPGA
FPGA有兩個(gè)主要功能:將DAC采來(lái)的中頻信號(hào)進(jìn)行數(shù)字下變頻(DDC),變換到基帶,并通過(guò)層疊梳狀濾波器(of)對(duì)樣值進(jìn)行可變速率的抽取以符合用戶對(duì)信號(hào)帶寬的要求。FPGA中同時(shí)也實(shí)現(xiàn)了針對(duì)DAC的插值率波的功能;另一個(gè)功能是作為路由器協(xié)調(diào)適配各路ADC、DAC和USB 2.0接口之間的數(shù)據(jù)交換。
3)USB 2.0接口
USRP采用USB 2.0接口與PC機(jī)連接。最高可達(dá)到32MByte/s的數(shù)據(jù)傳輸速率。如果AD和DA分別采用12bit和14bit的采樣精度,那么每個(gè)實(shí)采樣點(diǎn)占用2Bytes,每個(gè)復(fù)采樣點(diǎn)占用4Bytes。如果以一路復(fù)數(shù)采樣進(jìn)行單收或單發(fā),則最高可達(dá)到32M/4=8M?復(fù)采樣每秒,即最高發(fā)送或接收8MHz帶寬的信號(hào)。如果用8bit采樣,則最高可收/發(fā)16MHz帶寬的信號(hào)。ADC和DAC始終分別以64M和128M?的速率進(jìn)行采樣,用戶實(shí)際獲得的采樣速率是通過(guò)設(shè)置抽值率或插值率得到的。
4.2? USRP子卡
USRP的子卡有如下幾種:
USRP是GNU Radio最重要的硬件“伙伴”。與?1)Basic TX、Basic RX:這兩種子卡沒(méi)有中頻與射頻間的頻譜變換,僅僅提供主板上中頻信號(hào)與天線間的接口。盡管如此,由于ADC和DAC可進(jìn)行帶通采樣,仍然可支持2MHz~200MHz的載頻。
2)TVRX:可覆蓋50MHz一800MHz廣播電視頻段的接收子卡。
3)DBSRX:可覆蓋800MHz~2.4GHz的接受子卡。
4)RFX400、RFX900、RFX1200、RFX1800、
RFX2400:這些子卡均為支持雙工,可分別覆蓋400Ⅻ?z 500?、800?忸z一1000 m?z、1150 m?z一1450MHz、1.5MHz一2.1MHz、2.3MHz一2.9MHz頻段。
4.3? USRP的原理
主板上共有4個(gè)子板接口,可支持兩路并行的發(fā)送或接收。整套USRP的原理如圖1所示。
5、GNU Radio安裝
同多數(shù)基于Linux的軟件一樣,GNU Radio需要在將其源代碼編譯、安裝之后方可運(yùn)行。源代碼可從網(wǎng)站.org/trac/wiki?獲得,GNURadio采用SubVersion工具管理全球各地志愿者對(duì)代碼更新和擴(kuò)充,用戶利用客戶端工具SVll可隨時(shí)從網(wǎng)站上下載GNU Radio代碼的最新版本。在編譯安裝GNU Radio之前,必須首先安裝一些所依賴的軟件庫(kù),?主要有SWIG、FFTW、cppunit、numarray、Numric和wxPytholl。分別為GNU Radio提供C++與Python互操作性、快速算法和圖形界面等方面的支持。這些軟件同樣也是開源的,可分別從互聯(lián)網(wǎng)上下載安裝。GNU Radio的網(wǎng)站上有詳細(xì)的軟件編譯安裝方法,此處不再贅述。
USRP的安裝須要在軟件安裝完畢后進(jìn)行。首先在主板上插上所需子板,然后按順序接駁穩(wěn)壓電源、直流輸入和USB 2.0連接線,接著就可利用GNU Radio軟件包中自帶的實(shí)例程序初步體驗(yàn)GNU Radio了。GNU Radio提供了豐富的例程可供嘗試,其中包括FM、AM?廣播接收、信號(hào)發(fā)生器、信號(hào)頻譜和波形顯示,GMSK?/QPSK/BPSK信號(hào)收發(fā)、USB 2.0接口測(cè)速等等。其中usrp_fR.PY是一個(gè)可顯示出指定頻率附近信號(hào)頻譜的腳本。
6、GNU Radio的應(yīng)用舉例
這一部分將對(duì)基于GNU Ra dio已經(jīng)成功實(shí)現(xiàn)或者正在開發(fā)中的應(yīng)用進(jìn)行介紹,以期使讀者對(duì)GNU Radio的功能有一個(gè)更直觀的認(rèn)識(shí)。
1)MIMO(Multi—In Muti—Out)
USRP已經(jīng)為多天線應(yīng)用做好了準(zhǔn)備。一套USRP即可實(shí)現(xiàn)雙天線的發(fā)送或接收,如果要進(jìn)一步增加天線數(shù)量,可通過(guò)將多套USRP同步起來(lái)加以實(shí)現(xiàn)。此時(shí)需要對(duì)電路做一些改動(dòng)(改變幾個(gè)電阻和電容的位置)使多塊主板和子板之間達(dá)到時(shí)鐘同步和相位相關(guān)。
2)數(shù)字高清電視接收
用一塊MCA020 AD卡采集數(shù)字高清電視的信號(hào),在PC上進(jìn)行解調(diào)、解碼和播放。受PC機(jī)的運(yùn)算能力所限,目前還不能實(shí)時(shí)的收看,因此先將原始信號(hào)采集并保存在硬盤上,待采集完畢后再進(jìn)行解調(diào)和解碼,生成可播放的視頻文件。
3)TDMA和TDD
目前的GNU Radio和USRP尚不支持TDMA多址方式和TDD的雙工方式。Eric Blossom?和Matt Ettus以及BBN Technology公司正在對(duì)GNU Radio軟件體系以及USRP中的FPGA代碼進(jìn)行改進(jìn)和增強(qiáng),通過(guò)為采樣數(shù)據(jù)加上時(shí)間戳,可以對(duì)采樣流進(jìn)行更精確的時(shí)間控制,從而實(shí)現(xiàn)TDMA?和TDD。
7、結(jié)束語(yǔ)
GNU Radio可以被理解為開源軟件的自由精神在無(wú)線領(lǐng)域的延伸,開放性和低成本是其最大的優(yōu)勢(shì)。低成本使得技術(shù)人員以及資金不那么充裕的研究機(jī)構(gòu)可以像購(gòu)買PC機(jī)一樣擁有一套能自由進(jìn)入頻譜空間的軟硬件系統(tǒng),從而為更廣泛的技術(shù)創(chuàng)新打下基礎(chǔ)。在GNU Radio的郵件討論組中每天都有來(lái)自世界各地的用戶對(duì)各種相關(guān)技術(shù)問(wèn)題的討論,這些用戶包括學(xué)生、大學(xué)教師、軟硬件工程師、無(wú)線工程師、業(yè)余無(wú)線電愛(ài)好者,而這些人正是推動(dòng)技術(shù)進(jìn)步的主力。
GNU Radio的開放特性也是其具有廣泛吸引力的重要因素,同時(shí)也是其生命力的源泉。由于代碼和技術(shù)資料完全開放,人們可以了解到其運(yùn)作的所有細(xì)節(jié),并可自由地對(duì)其進(jìn)行修改和開發(fā)。在這種開放的氛圍之下,人們?nèi)〉玫闹R(shí)、成果可以得到充分的交流共享,更有益于創(chuàng)新。
自組織網(wǎng)絡(luò)、頻譜自由動(dòng)態(tài)分配、可重配置智能終端是目前無(wú)線通信領(lǐng)域幾大熱點(diǎn),不難看出,基于GNU Radio和USRP可以快速地設(shè)計(jì)出終端原型,因而在這些領(lǐng)域的研究中具有相當(dāng)?shù)臐摿?。盡管目前GNU Radio在最大頻帶寬度、PC處理能力以及軟件的易用性方面受到一定限制,但相信隨著技術(shù)的進(jìn)步,G 7 Radio必將在無(wú)線領(lǐng)域的技術(shù)創(chuàng)新中扮演更加重要的角色。
參考文獻(xiàn)
1 J.?Mitola.?The software radio architecture.?ⅢEEComlnun.Mag.vo1.33:26-38。1995.
2 Alok Shah。Vanu。Inc.An Introduction to Software Radio.wwv4.vanu.com.2002.
3 Peter G.Cook,W ayne BOIlser.Architectural Overview of theSPEAKeasy System.Volume 17,Issue 4,?April 1999:650.661 Digital Object Idemifier10.1 109/49.761042.
4?熊慶國(guó).軟件無(wú)線電技術(shù)的研究現(xiàn)狀及關(guān)鍵技術(shù).信息技術(shù),2003(5).
評(píng)論
查看更多