張彥宇,吳 俊,方志軍,趙嵩源,朱伏生
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620;2.同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 201804;3.廣東省新一代通信與網(wǎng)絡(luò)創(chuàng)新研究院,廣東 廣州 510000)
SDR是一種無(wú)線(xiàn)電通信技術(shù),使用軟件設(shè)計(jì)代替?zhèn)鹘y(tǒng)的硬件電路實(shí)現(xiàn)無(wú)線(xiàn)通信協(xié)議,基于軟件的重新編程,無(wú)需改變硬件就能快速靈活地完成不同波形和協(xié)議之間的切換[1]。SDR技術(shù)的優(yōu)勢(shì)包括強(qiáng)大的互操作性、易于制造和升級(jí)及綠色節(jié)能[2],主要被應(yīng)用于互用性研究、頻譜重用和新無(wú)線(xiàn)標(biāo)準(zhǔn)的開(kāi)發(fā)等領(lǐng)域。但是當(dāng)今軟件無(wú)線(xiàn)電的性能仍受制于一些硬件組件的發(fā)展,例如理想的軟件無(wú)線(xiàn)電要求模數(shù)轉(zhuǎn)換盡可能靠近天線(xiàn),而這依賴(lài)于模數(shù)轉(zhuǎn)換器(ADC)的采樣能力[3]。文獻(xiàn)[4-5]使用軟件無(wú)線(xiàn)電平臺(tái),以較低的成本和復(fù)雜度實(shí)現(xiàn)了調(diào)頻連續(xù)波雷達(dá)系統(tǒng),但是由于其所用模數(shù)轉(zhuǎn)換器的采樣率較低,導(dǎo)致整個(gè)系統(tǒng)只適用于對(duì)距離分辨率要求不高的場(chǎng)合。文獻(xiàn)[6]使用一種傳統(tǒng)的軟件無(wú)線(xiàn)電外設(shè)HackRF結(jié)合軟件平臺(tái)GNU Radio,搭建了一種抗干擾能力強(qiáng)、兼容性突出的海上漁船數(shù)字通信系統(tǒng)。但是HackRF僅支持半雙工通信,對(duì)于環(huán)境復(fù)雜、各種意外頻發(fā)的海上來(lái)說(shuō),這種通信系統(tǒng)存在著極大的局限性。
SOUP是同濟(jì)大學(xué)通信與智能計(jì)算(CIC)實(shí)驗(yàn)室面向5G通信自主開(kāi)發(fā)的一種軟件無(wú)線(xiàn)電外設(shè)。相比當(dāng)今市面上主流的一些軟件無(wú)線(xiàn)電外設(shè),SOUP的綜合性能更加優(yōu)越,其內(nèi)置一塊FPGA處理芯片,能夠提供高性能的數(shù)字信號(hào)處理能力,所配備的ADC采樣精度高達(dá)12 bit。同時(shí)SOUP還支持多種擴(kuò)展接口,如PCIe接口、萬(wàn)兆網(wǎng)口以及USB3.0 OTG等,可以滿(mǎn)足不同通信網(wǎng)絡(luò)對(duì)基帶數(shù)據(jù)傳輸速率和實(shí)時(shí)性的要求。目前,實(shí)驗(yàn)室研究人員已經(jīng)使用SOUP取得了不少研究成果,如文獻(xiàn)[7]實(shí)現(xiàn)了一整套SoftCast廣播系統(tǒng),文獻(xiàn)[8]實(shí)現(xiàn)了云無(wú)線(xiàn)接入原型。GNU Radio是一款免費(fèi)、開(kāi)源的SDR軟件平臺(tái),也是當(dāng)前最流行的SDR應(yīng)用開(kāi)發(fā)工具,它里面封裝了非常多的可以重復(fù)使用的數(shù)字信號(hào)處理模塊,如FFT變換、濾波器、調(diào)制解調(diào)器、同步元件和編解碼器等[9]。本文嘗試基于軟件通信體系結(jié)構(gòu),將SOUP和GNU Radio結(jié)合以搭建一種新型SDR系統(tǒng),該系統(tǒng)將集成SOUP強(qiáng)大的射頻信號(hào)處理能力和GNU Radio豐富的數(shù)字信號(hào)處理軟件庫(kù),為無(wú)線(xiàn)電研究人員提供一種低成本、高靈活性且擴(kuò)展能力強(qiáng)的無(wú)線(xiàn)電開(kāi)發(fā)平臺(tái)。
SOUP主要面向移動(dòng)通信系統(tǒng)的開(kāi)發(fā)驗(yàn)證、實(shí)時(shí)通信系統(tǒng)的PHY層和MAC層開(kāi)發(fā)等,支持Xilinx Vivado/ISE開(kāi)發(fā)環(huán)境,并提供HDL編程接口,能夠利用FPGA的嵌入式設(shè)計(jì)流程開(kāi)發(fā)嵌入式軟件無(wú)線(xiàn)電系統(tǒng),并支持Matlab開(kāi)發(fā)環(huán)境以設(shè)計(jì)無(wú)線(xiàn)通信系統(tǒng)。SOUP平臺(tái)的結(jié)構(gòu)組成如圖1所示。
圖1 SOUP結(jié)構(gòu)組成
由圖1可以看出,SOUP主要由數(shù)字基帶母板、射頻無(wú)線(xiàn)電子板、數(shù)據(jù)轉(zhuǎn)接線(xiàn)以及相應(yīng)的天線(xiàn)組成,其中射頻無(wú)線(xiàn)電單元主要由高集成度的ADI捷變射頻收發(fā)器AD9361構(gòu)成,AD9361負(fù)責(zé)通過(guò)天線(xiàn)接收或發(fā)送無(wú)線(xiàn)電信號(hào),其工作頻譜范圍覆蓋極廣,支持70 MHz~6 GHz頻段,并支持模擬帶寬200 kHz~56 MHz[10];可選擇地采用PCIe2.0 X4作為與主機(jī)的通信接口,其最大吞吐量為128 Gbps和亞微秒級(jí)延遲[11-12]?;蛘卟捎萌f(wàn)兆以太網(wǎng)接口,實(shí)現(xiàn)傳輸速率和傳輸距離的平衡;基帶單元包含著一個(gè)Xilinx Virtex6 lx240T-2 FPGA,它具有1 GB DDR3 SDRAM,大容量的FPGA邏輯單元和板載緩存可以容納更復(fù)雜的功能塊,這為SOUP提供了高性能的數(shù)字信號(hào)處理能力[8],詳細(xì)信息為:支持4收4發(fā);32 G 板載 DDR3 cache;靈活的時(shí)鐘處理結(jié)構(gòu);3路時(shí)鐘自由選擇;實(shí)時(shí)頻偏矯正;高精度溫補(bǔ)壓控晶振。
目前市場(chǎng)上主流的軟件無(wú)線(xiàn)電外設(shè)有USRP,HackRF,BladeRF等。SOUP與其他幾種外設(shè)的各主要參數(shù)對(duì)比如表1所示。
表1 各外設(shè)參數(shù)對(duì)比
參數(shù)HackRFBladeRFX115USRPB210SOUP頻譜范圍30MHz~6GHz300MHz~3.8GHz50MHz~6GHz70MHz~6GHz最大帶寬/MHz202861.4456雙工HalfFullFull/2×2MIMOFull/4×4MIMO采樣率/bit(ADC/DAC)8121212接口(Speed)USB2HSUSB3USB3PCIe2.0×4FPGA邏輯元素0115000150000750000
對(duì)于軟件無(wú)線(xiàn)電而言,外設(shè)與主機(jī)的通信方式非常重要,因?yàn)樗鼪Q定了數(shù)字信號(hào)數(shù)據(jù)傳輸?shù)淖畲髱捄头€(wěn)定性。其中USB2.0接口的最高數(shù)據(jù)傳輸速率僅為35 MB/s。USB3.0接口可以實(shí)現(xiàn)最高400 MB/s的傳輸速率。而在本系統(tǒng)中,SOUP將采用PCIe2.0×4作為與主機(jī)的通信接口,其最大吞吐量能夠達(dá)到128 Gbps。
ADC的參數(shù)同樣是決定軟件無(wú)線(xiàn)電性能的重要因素之一。特別是ADC的量化精度,對(duì)于使用12 bit ADC的SOUP,其轉(zhuǎn)換精度比使用8 bit ADC的HackRF要高16倍。
同時(shí)SOUP還配備2個(gè)AD9361作為無(wú)線(xiàn)電前端,使其能夠同時(shí)支持4收4發(fā)通信[13]。用戶(hù)能夠通過(guò)PCIe背板將多臺(tái)SOUP級(jí)聯(lián)起來(lái),結(jié)合時(shí)鐘分配器,使多臺(tái)SOUP級(jí)聯(lián)構(gòu)成更大規(guī)模的MIMO系統(tǒng),以用于5G通信的大規(guī)模MIMO陣列研究。
SCA是一種日漸成熟的開(kāi)放式通用軟件無(wú)線(xiàn)電開(kāi)發(fā)框架,包含了硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)、安全體系結(jié)構(gòu)以及應(yīng)用程序接口規(guī)范。但是它并不涉及具體的實(shí)現(xiàn)技術(shù)和外部硬件,只描述了面向?qū)ο蟮某橄笥布?lèi),以及波形實(shí)現(xiàn)的軟件操作環(huán)境[14]。SCA組成結(jié)構(gòu)如圖2所示,波形組件通過(guò)CORBA提供的邏輯總線(xiàn)相互交互并與核心框架交互[15]。在SCA的應(yīng)用程序接口規(guī)范中,定義了應(yīng)用程序接口(API)由2部分組成:由接口描述語(yǔ)言(IDL)定義的接口和這些接口的繼承類(lèi),并使用統(tǒng)一建模語(yǔ)言(UML)詳細(xì)描述了這些接口之間的關(guān)系,最后被波形應(yīng)用程序調(diào)用而不用去關(guān)心波形組件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)[16]。SCA的一個(gè)關(guān)鍵特性就是它允許不同的應(yīng)用程序(波形或波形組件)在分布式處理單元上運(yùn)行并相互通信[15]。
圖2 SCA組成結(jié)構(gòu)
SOUP_GNU Radio總體設(shè)計(jì)架構(gòu)如圖3所示,分為發(fā)射機(jī)系統(tǒng)和接收機(jī)系統(tǒng)。
本系統(tǒng)將PCIe控制器橋接并在基帶母板和主機(jī)之間,并采用直接訪(fǎng)問(wèn)內(nèi)存(DMA)的方式完成SOUP與主機(jī)之間的數(shù)據(jù)傳輸。主機(jī)首先需要安裝SOUP內(nèi)核驅(qū)動(dòng)程序,此內(nèi)核驅(qū)動(dòng)程序主要實(shí)現(xiàn)設(shè)備注冊(cè)、文件操作注冊(cè)、DMA緩沖區(qū)分配和管理、中斷注冊(cè)等工作。主機(jī)安裝完內(nèi)核驅(qū)動(dòng)程序后,操作系統(tǒng)將識(shí)別SOUP作為一個(gè)字符設(shè)備,并像操作文件一樣來(lái)對(duì)此系統(tǒng)外設(shè)進(jìn)行操作[8]。同時(shí)GNU Radio也將通過(guò)內(nèi)核驅(qū)動(dòng)程序完成對(duì)SOUP的控制。
想要實(shí)現(xiàn)SOUP與GNU Radio之間的基帶信號(hào)傳輸,就需要在GNU Radio中開(kāi)發(fā)信號(hào)源模塊和信宿模塊,以用來(lái)采集和傳送I/Q采樣信號(hào),同時(shí)控制發(fā)射機(jī)和接收機(jī)的一些參數(shù),如傳輸功率、中心頻率和帶寬。
圖3 SOUP_GNU Radio系統(tǒng)組成架構(gòu)
在Ubuntu14.04 LTS操作系統(tǒng)中,首先安裝GNU Radio,再利用GNU Radio自帶的gr_modtool工具添加信號(hào)源模塊和信宿模塊。gr_mod-tool工具能夠自動(dòng)構(gòu)建信號(hào)源、信宿模塊的整體框架,再把AD9361的配置庫(kù)寫(xiě)入GNU Radio的配置庫(kù)中,并根據(jù)2個(gè)模塊的功能和內(nèi)容分別對(duì)其框架下的軟件程序進(jìn)行修改,最后還需要使用gr_modtool工具建立模塊的圖形化操作界面——GNU Radio伴侶(GNU Radio Companion,GRC),使用戶(hù)能夠直接通過(guò)圖形化界面實(shí)時(shí)地對(duì)通信傳輸?shù)南嚓P(guān)參數(shù)進(jìn)行修改。
新開(kāi)發(fā)的信號(hào)源模塊和信宿模塊如圖4所示,其中在信號(hào)源模塊中有采樣頻率、中心頻率和接收增益3個(gè)參數(shù)可以設(shè)置,接收增益可以下拉菜單進(jìn)行模式選擇,支持手動(dòng)設(shè)置增益、快速/慢速自動(dòng)增益。在信宿模塊中可以直接對(duì)采樣頻率、中心頻率和衰減系數(shù)進(jìn)行設(shè)置。
圖4 在GNU Radio中新添加的模塊
搭建的SOUP_GNU Radio軟件無(wú)線(xiàn)電系統(tǒng)包括SOUP、GNU Radio、IntelE5-1620v4 3.5 GHz處理器、Ubuntu14.04 LTS系統(tǒng)、650 MHz全向天線(xiàn)、PCIe轉(zhuǎn)接線(xiàn)和PCIe轉(zhuǎn)接卡等。
對(duì)基于上述軟件無(wú)線(xiàn)電開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)的一種傳統(tǒng)的模擬通信技術(shù)(寬帶調(diào)頻(WBFM)收發(fā)機(jī))進(jìn)行探討。
接收機(jī)系統(tǒng)中,在GNU Radio上采用WBFM接收模塊用于解調(diào)接收信號(hào),音頻接收模塊用于解析聲音,Scope Sink模塊和FFT接收器模塊分別用于查看接收信號(hào)的時(shí)域圖和頻譜圖。這里將接收機(jī)的采樣率和中心頻率分別設(shè)置為3.84 MHz和上海交通廣播電臺(tái)頻率(105.7 MHz)。實(shí)驗(yàn)結(jié)果證明,用戶(hù)可以在程序運(yùn)行過(guò)程中通過(guò)編輯信號(hào)源模塊中的Sample Rate變量的值來(lái)實(shí)時(shí)改變采樣率,也可以在接收過(guò)程中通過(guò)拖動(dòng)WX GUI Slider模塊中的滑塊或者編輯WX GUI Slider模塊中Default Value變量的值來(lái)實(shí)時(shí)改變中心頻率。調(diào)頻接收機(jī)的GRC流程圖如圖5(a)所示,接收到的實(shí)時(shí)廣播信號(hào)如圖5(b)所示。
調(diào)頻發(fā)射機(jī)的GRC流程圖和發(fā)射信號(hào)如圖6(a)和圖6(b)所示。采用.wav格式的無(wú)損本地音頻源作為發(fā)射信號(hào)源,發(fā)射機(jī)采樣率同樣設(shè)置為3.84 MHz,同時(shí)將工作中心頻率設(shè)置為109 MHz,以避開(kāi)本地其他廣播頻率。
圖5 SOUP_GNU Radio接收機(jī)
圖6 SOUP_GNU Radio發(fā)射機(jī)
使用SOUP作為軟件無(wú)線(xiàn)電系統(tǒng)的硬件平臺(tái),GNU Radio作為軟件平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了一種基于通用軟件無(wú)線(xiàn)電開(kāi)發(fā)框架SCA的新型軟件無(wú)線(xiàn)電系統(tǒng)。這種系統(tǒng)為無(wú)線(xiàn)電研究人員提供了一個(gè)門(mén)檻低、成本小、周期短、使用方便的無(wú)線(xiàn)電開(kāi)發(fā)平臺(tái)。相對(duì)于其他幾種主流的軟件無(wú)線(xiàn)電平臺(tái),SOUP_GNU Radio的綜合性能更優(yōu),研究人員可以在此平臺(tái)上快速建立無(wú)線(xiàn)電通信系統(tǒng),以開(kāi)發(fā)和驗(yàn)證通信算法和無(wú)線(xiàn)協(xié)議。為進(jìn)一步提高SOUP及本系統(tǒng)的信號(hào)處理能力,并努力向理想的軟件無(wú)線(xiàn)電靠近,下一步可使SOUP配置AD9371,并使用性能更加強(qiáng)大的內(nèi)核處理器。該系統(tǒng)已作為實(shí)驗(yàn)室無(wú)線(xiàn)電研究人員進(jìn)行無(wú)線(xiàn)通信開(kāi)發(fā)的有效工具,通信專(zhuān)業(yè)相關(guān)學(xué)生進(jìn)行傳統(tǒng)通信實(shí)驗(yàn)的便捷平臺(tái),獲得了良好的應(yīng)用效果。