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