林廣榮 林新榮 高時(shí)漢 褚慶昕
基于通用處理器的軟件無線電技術(shù),使用高級(jí)程序語言實(shí)現(xiàn)無線電通信中的信號(hào)處理功能,這能夠更好地復(fù)用硬件平臺(tái)和提升開發(fā)效率。文章基于開源的軟件無線電平臺(tái)GNU Radio,給出了一種軟件無線電架構(gòu)的窄帶衛(wèi)星收發(fā)信機(jī)的工程實(shí)現(xiàn)方案,并通過實(shí)際上星測(cè)試驗(yàn)證了方案的可行性,可為衛(wèi)星通信產(chǎn)品的研發(fā)提供測(cè)試和驗(yàn)證的途徑。
軟件無線電 GNU Radio 衛(wèi)星通信
1 引言
衛(wèi)星通信具有通信范圍廣、無需建設(shè)地面基站等優(yōu)點(diǎn),是重要的戰(zhàn)略通信手段。隨著通信技術(shù)的發(fā)展,衛(wèi)星通信從簡(jiǎn)單的點(diǎn)到點(diǎn)通信,逐步向復(fù)雜星狀/網(wǎng)狀組網(wǎng)、多波束移動(dòng)通信等方向發(fā)展。但由于未能像地面移動(dòng)通信一樣形成統(tǒng)一的空口標(biāo)準(zhǔn),導(dǎo)致衛(wèi)星通信的體制和設(shè)備種類繁多,終端廠商研發(fā)成本巨大。
軟件無線電(SDR)[1-2]的基本思想是以通用的硬件平臺(tái)為依托,通過軟件編程實(shí)現(xiàn)無線電臺(tái)的各種功能。因此,將軟件無線電技術(shù)應(yīng)用到衛(wèi)星通信領(lǐng)域,有助于降低衛(wèi)星設(shè)備的硬件升級(jí)成本和研發(fā)周期。此外,軟件無線電的上述特性也可用于實(shí)現(xiàn)通用的衛(wèi)星終端測(cè)試和驗(yàn)證設(shè)備/平臺(tái),支撐衛(wèi)星通信終端產(chǎn)品的研制。
本文提出了一種軟件無線電架構(gòu)的窄帶衛(wèi)星收發(fā)信機(jī)實(shí)現(xiàn)方案。本文的第2節(jié)介紹了一種基于通用處理器的軟件無線電平臺(tái)GNU Radio,并與其它常用的軟件無線電架構(gòu)/平臺(tái)進(jìn)行了比較。第3節(jié)基于上述平臺(tái),提出了一種窄帶衛(wèi)星收發(fā)信機(jī)的工程實(shí)現(xiàn)方案,在第4節(jié)通過實(shí)際上星測(cè)試,驗(yàn)證了方案的可行性。
2 GNU Radio與USRP平臺(tái)
2.1 GNU Radio軟件平臺(tái)
GNU Radio[3]是一個(gè)基于通用處理器(GPP)的軟件無線電開發(fā)平臺(tái)。得益于其開放源代碼和配套硬件外設(shè)價(jià)格低廉的特點(diǎn),GNU Radio在無線電開發(fā)社區(qū)和教育機(jī)構(gòu)得到了廣泛的應(yīng)用[4-6]。與非GPP SDR的差異在于,GNU Radio在通用處理器上實(shí)現(xiàn)絕大部分的信號(hào)處理工作,使用高級(jí)程序語言進(jìn)行開發(fā),可以運(yùn)行在通用PC上。
GNU Radio的軟件架構(gòu)如圖1所示。平臺(tái)運(yùn)行在Linux操作系統(tǒng)上,信號(hào)處理功能由底層的C++和上層的Python代碼共同實(shí)現(xiàn)[7]。其中,運(yùn)行效率較高的C++代碼實(shí)現(xiàn)信號(hào)處理的功能,Python腳本則實(shí)現(xiàn)各子模塊的連接。平臺(tái)提供了常用的信號(hào)處理模塊庫以及圖形化的編輯和仿真界面。但受限于GPP串行執(zhí)行的特點(diǎn),GNU Radio更適合對(duì)處理速度要求較低的窄帶無線通信系統(tǒng)。
2.2 USRP通用硬件外設(shè)
USRP[8]的全稱是通用軟件無線電外設(shè),是由Ettus公司開發(fā),與GNU Radio軟件搭配使用的硬件平臺(tái)。USRP同樣為開源項(xiàng)目,可獲得其硬件電路圖和FPGA源代碼。
USRP的組成框圖如圖2所示,由主板和射頻子板組成,主板的核心是Cyclone系列FPGA芯片、多個(gè)通道的高速ADC、DAC和千兆以太網(wǎng)控制器(舊型號(hào)USRP為USB控制器)。其中,F(xiàn)PGA通過級(jí)聯(lián)積分梳狀濾波器實(shí)現(xiàn)數(shù)字下變頻,上變頻器DUC則集成在DAC芯片中。射頻子板模擬中頻和射頻的變換,不同型號(hào)的射頻子板對(duì)應(yīng)不同的頻段。因此,通過USRP和PC組成的通用硬件系統(tǒng),搭配不同的軟件代碼,就能夠?qū)崿F(xiàn)不同頻段、不同體制和不同指標(biāo)的無線電設(shè)備降低硬件成本,提高使用靈活性的功能。
2.3 與SCA等其它軟件無線電技術(shù)的比較
美軍提出的軟件通信體系框架(SCA)是軟件無線電領(lǐng)域最有名的規(guī)范之一。SCA在FPGA、DSP和GPP等器件上構(gòu)建了可隔離硬件差異的軟件編程框架,使設(shè)計(jì)師可專注于通信組件的軟件實(shí)現(xiàn),大大降低了硬件細(xì)節(jié)對(duì)開發(fā)過程的影響。GNU Radio則屬于GPP-SDR,用高性能的通用處理器取代了DSP和FPGA中的大部分工作(USRP中的FPGA僅用于實(shí)現(xiàn)對(duì)處理速度要求較高、通用性較強(qiáng)的高速濾波處理)。通用處理器的開發(fā)由于采用高級(jí)程序語言進(jìn)行,開發(fā)效率和擴(kuò)展性高于DSP和FPGA,在開發(fā)對(duì)性能要求不高的原理樣機(jī)或測(cè)試設(shè)備時(shí)具有優(yōu)勢(shì)。
微軟開發(fā)的SORA[9]是另一款優(yōu)秀的GPP-SDR平臺(tái),運(yùn)行于Windows系統(tǒng)和兼容Windows的硬件平臺(tái),同樣提供配套的硬件板卡(RCB)和射頻模塊,微軟在該平臺(tái)上已實(shí)現(xiàn)了802.11a/g標(biāo)準(zhǔn)。但這一平臺(tái)并不開放源代碼,只提供軟件SDK。與之相比,GNU Radio和USRP均采用開源模式,便于開發(fā)者改進(jìn)硬件,深入優(yōu)化定制軟件。因此,本文選用GNU Radio和USRP作為窄帶衛(wèi)星收發(fā)信機(jī)的實(shí)現(xiàn)平臺(tái)。
3 窄帶衛(wèi)星收發(fā)信機(jī)設(shè)計(jì)
基于GNU Radio和USRP平臺(tái),本文設(shè)計(jì)了一個(gè)窄帶衛(wèi)星收發(fā)信機(jī)方案,用于驗(yàn)證該平臺(tái)在衛(wèi)星通信領(lǐng)域的可行性。目前,國內(nèi)窄帶衛(wèi)星通信系統(tǒng)體制以FDMA為主,寬帶衛(wèi)星廣播以TDMA為主。由于GPP平臺(tái)使用普通PC機(jī),運(yùn)算能力有限,因此收發(fā)信機(jī)的方案選擇了窄帶系統(tǒng)中經(jīng)典的單路單載波(SCPC)體制。根據(jù)USRP支持的采樣率,信道符號(hào)速率定為24.414ksps,與目前正在發(fā)展中的自主衛(wèi)星移動(dòng)通信系統(tǒng)相當(dāng)。
3.1 發(fā)射機(jī)設(shè)計(jì)
發(fā)射機(jī)主要由信道編碼、信道組幀、數(shù)字調(diào)制、成形濾波等模塊組成,組成框圖如圖3所示。圖3中,最左側(cè)的鏈路幀發(fā)送模塊為接口模塊,用于與鏈路層對(duì)接;信道編碼采用碼長為140的RS系統(tǒng)碼,每個(gè)編碼塊可承載兩個(gè)鏈路幀;信道組幀模塊的主要功能是對(duì)編碼數(shù)據(jù)插入同步頭,便于接收機(jī)進(jìn)行幀同步,同步頭為63比特的小m序列;為簡(jiǎn)化接收機(jī)設(shè)計(jì),數(shù)字調(diào)制采用差分二進(jìn)制相移鍵控;成形濾波則采用8倍插值的平方根升余弦濾波器。
圖3中的數(shù)字上變頻、數(shù)模轉(zhuǎn)換和上變頻由USRP中的FPGA、DAC芯片和射頻子板完成,僅需在GNU Radio平臺(tái)提供的圖形化開發(fā)界面中插入U(xiǎn)SRP Sink模塊,設(shè)置正確的符號(hào)率和射頻中心頻點(diǎn)即可。
3.2 接收機(jī)設(shè)計(jì)
接收機(jī)主要由非相干解調(diào)、匹配濾波、幀同步和信道解碼等模塊組成,具體如圖4所示。整個(gè)接收過程是信號(hào)發(fā)射的逆過程。
圖4中的下變頻、模數(shù)轉(zhuǎn)換和數(shù)字下變頻同樣由USRP硬件完成。由于發(fā)射機(jī)采用了差分BPSK,接收機(jī)可使用延遲相乘的方法實(shí)現(xiàn)非相干解調(diào);匹配濾波模塊采用與發(fā)射機(jī)同樣的平方根升余弦濾波器;幀同步模塊通過對(duì)同步頭進(jìn)行相關(guān)操作,確定信道幀的準(zhǔn)確起始位置;解碼模塊用于糾正因噪聲或頻偏等因素帶來的信道誤碼。
3.3 鏈路層接口設(shè)計(jì)
發(fā)射機(jī)設(shè)計(jì)中的鏈路層接口模塊用于在鏈路層和物理層間交互數(shù)據(jù)。在GNU Radio系統(tǒng)中,輸入模塊必須設(shè)為同步模塊的形式(否則難以進(jìn)行速率控制),即按照系統(tǒng)的數(shù)據(jù)流節(jié)拍(可理解為采樣節(jié)拍)調(diào)度,而鏈路層屬于異步系統(tǒng)。因此,接口模塊采用了消息隊(duì)列加軟件二選一開關(guān)的方式實(shí)現(xiàn),具體如圖5所示:
當(dāng)鏈路層需要發(fā)送數(shù)據(jù)時(shí),通過(Python腳本實(shí)現(xiàn)的)虛擬TUN接口向消息隊(duì)列中寫入數(shù)據(jù)幀。接口模塊根據(jù)系統(tǒng)的采樣節(jié)拍(在圖5中畫成了時(shí)鐘形式,以便于理解),定時(shí)檢查消息隊(duì)列是否為空。若存在鏈路幀,就將其輸出;若不存在鏈路幀,則輸出等長的全零數(shù)據(jù)。全零數(shù)據(jù)在進(jìn)行差分調(diào)制后會(huì)形成“0101”序列,因此不會(huì)導(dǎo)致直流分量。
4 上星測(cè)試與分析
4.1 基帶自環(huán)測(cè)試
GNU Radio平臺(tái)支持用戶在計(jì)算機(jī)上進(jìn)行軟件自環(huán)或連接USRP設(shè)備進(jìn)行射頻環(huán)。軟件自環(huán)時(shí),只需要在信號(hào)流圖中,將成形濾波模塊與非相干解調(diào)模塊直聯(lián)即可,等效于使用仿真軟件進(jìn)行系統(tǒng)仿真。進(jìn)行射頻環(huán)時(shí),若不連接衛(wèi)星模擬轉(zhuǎn)發(fā)器,USRP的發(fā)射和接收頻點(diǎn)應(yīng)設(shè)為相同值。
進(jìn)行兩種自環(huán)測(cè)試時(shí),窄帶衛(wèi)星發(fā)射機(jī)和接收機(jī)可成功通信。其中,軟件自環(huán)時(shí),不加噪或用噪聲模塊疊加小幅高斯白噪聲(信號(hào)幅度比白噪聲幅度高約15dB),未檢測(cè)到誤碼。由于本文并未涉及通信算法研究,且USRP平臺(tái)自身的性能指標(biāo)(包括載漏、頻偏、硬件底噪等)并不理想,本節(jié)中僅對(duì)通信功能進(jìn)行了測(cè)試,未定量測(cè)試性能指標(biāo)。
4.2 上星實(shí)測(cè)與分析
上星測(cè)試時(shí),選用了L頻段的地球同步軌道GEO衛(wèi)星進(jìn)行中轉(zhuǎn)。由于通信距離極遠(yuǎn),需要在USRP設(shè)備外級(jí)聯(lián)功放(發(fā)射端)、低噪放(接收端)、雙工器和天線,均采用商用VSAT產(chǎn)品的標(biāo)準(zhǔn)設(shè)備。射頻中心頻點(diǎn)選取在1GHz附近,收發(fā)頻差250MHz。
收發(fā)信機(jī)軟件通過USRP和整個(gè)衛(wèi)星鏈路后成功自發(fā)自收,未檢測(cè)到誤碼(共計(jì)收發(fā)400 000比特)。
在測(cè)試中,通過頻譜儀觀測(cè)衛(wèi)星下行信號(hào)發(fā)現(xiàn),USRP的射頻部分存在嚴(yán)重載漏(幅值已略大于用戶信號(hào))。為減小載漏的影響,本文改用非零中頻方案,即在發(fā)射機(jī)端添加數(shù)字上變頻模塊,將用戶信號(hào)小幅度搬移,從而使得載漏處于信號(hào)帶外。圖6、圖7即為進(jìn)行了信號(hào)搬移后的收發(fā)信號(hào)頻譜。為方便對(duì)比,發(fā)射機(jī)在調(diào)制信號(hào)頻帶的右側(cè)附加了一個(gè)等功率的單音信號(hào),如圖6中的虛線圓圈處所示。對(duì)比收發(fā)信號(hào)的頻譜可以看出,載漏信號(hào)(如圖6的點(diǎn)劃線圓圈內(nèi))的幅度已大于該單音信號(hào)幅值。但此時(shí)載漏不在有用信號(hào)帶內(nèi),可通過濾波消除其影響。
同時(shí),對(duì)比圖6、圖7可以看出,GNU Radio采樣信號(hào)計(jì)算得出的頻譜與實(shí)際頻譜基本一致。通過衛(wèi)星鏈路后,用戶信號(hào)中疊加了比信號(hào)幅度小約15dB的白噪聲,但未對(duì)接收機(jī)的接收和解碼造成影響。
5 結(jié)束語
本文提出了一種軟件無線電架構(gòu)的窄帶衛(wèi)星收發(fā)信機(jī)方案,并基于GNU Radio和USRP平臺(tái)進(jìn)行了實(shí)現(xiàn)。上星測(cè)試的結(jié)果表明,該方案能夠在實(shí)際的GEO衛(wèi)星環(huán)境下實(shí)現(xiàn)通信功能。USRP設(shè)備通過更換射頻子板,其發(fā)射/接收頻段可以從1MHz一直延伸到3GHz,具備很強(qiáng)的硬件通用性;而GNU Radio通過高級(jí)語言編程,能夠高效地實(shí)現(xiàn)不同通信體制。因此,在衛(wèi)星通信領(lǐng)域,這一技術(shù)很適合用于搭建物理層原型系統(tǒng)、驗(yàn)證體制以及輔助測(cè)試上層網(wǎng)絡(luò)協(xié)議[10],或者是用于實(shí)現(xiàn)終端測(cè)試設(shè)備,支撐衛(wèi)星終端產(chǎn)品的研發(fā)。
但在測(cè)試中,該平臺(tái)也暴露出性能方面的不足。如載漏過大、時(shí)鐘精度差等問題,難以用于對(duì)系統(tǒng)性能的評(píng)估。如何完善該平臺(tái)的射頻性能指標(biāo),也可作為后續(xù)研究的方向。
參考文獻(xiàn):
[1] MITOLA J. Software radios: survey, critical evaluation and future directions[J]. Aerospace and Electronic Systems Magazine, IEEE, 1993,8(4): 25-36.
[2] 楊小牛,樓才義,徐建良. 軟件無線電原理與應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2010.
[3] 曹瀚文,王文博. GNU Radio:開放的軟件無線電平臺(tái)[J]. 電信快報(bào), 2007(4): 31-34.
[4] 閆龍,王智海,祁兵. 基于GNU Radio的230MHz多通道主站電臺(tái)的設(shè)計(jì)[J]. 電力系統(tǒng)保護(hù)與控制, 2010,38(9): 100-104.
[5] 趙楠,武明虎,周先軍,等. 基于GNU Radio和USRP的寬頻帶并行感知平臺(tái)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用研究, 2015,32(12): 3779-3789.
[6] 楊宏,孔耀暉,茹晨光,等. 基于GNU Radio和USRP的無線通信系統(tǒng)建模仿真[J]. 現(xiàn)代電子技術(shù), 2013,36(18): 73-77.
[7] Blossom E. How to Write a Signal Processing Block[EB/OL]. [2016-03-19]. http://www.gnu.org/software/gnuradio/doc/howto-write-a-block.html.
[8] ETTUS M. Universal software radio peripheral (USRP) [EB/OL]. [2016-03-19]. http://www.ettus.com.
[9] Kun Tan, Jiansong Zhang, Ji Fang, et al. Sora: High Performance Software Radio Using General Purpose Multi-core Processors[A]. NSDI 2009[C]. Boston, MA, USA: USENIX, 2009: 75-90.
[10] 雷杰,趙熠飛,黃敏,等. 基于GPP SDR的LTE系統(tǒng)RLC協(xié)議層實(shí)現(xiàn)研究[J]. 移動(dòng)通信, 2011(2): 45-50.