咸立文,姚幽然,趙 揚
(中國電子科技集團公司第三十研究所,四川 成都 610041)
伴隨著移動通信手段不斷地更新迭代,人們的通信方式也發生著翻天覆地的變化。從最初解決人與外界溝通聯絡的基本需求,到近10年來智能手機的普及和不同互聯網應用的流行,整個無線網絡的流量呈指數增長,而運營商間的競爭愈加慘烈。同時,受國家宏觀“提速降費”政策和網絡愈加便利的大趨勢因素影響,運營商從單個用戶處獲取的收益正在遞減。然而,移動互聯網業務激增致使用于基建、運維和升級等方面的投入成本不斷增加,使得運營商的盈利大幅縮水。為改變這被動局面,保證盈利持續健康增長,運營商需開源節流,在提供優質無線接入業務的同時,找到有效降低成本的方案[1]。采用模塊化通用硬件平臺,盡可能利用軟件處理基站信號、工作模式切換和頻帶選擇等功能的SDR,提供了一套低成本解決方案,而軟件實現新功能模塊也為后續升級帶來了福音。這給現有通信系統指明了發展方向,給技術研究、開發與驗證創造了捷徑,大幅降低了開發成本,縮短了迭代周期,且能保持與前后代系統的互聯互通。
軟件無線電(Software Defined Radio)在標準、通用和模塊化的硬件平臺上,利用軟件編程實現了不同通信功能和應用。圖1為典型的SDR基本結構。它的關鍵在于通用硬件平臺和軟件實現兩方面。硬件平臺具有實現不同通信功能的模塊;軟件實現則是相較于傳統無線電技術而言的。傳統無線電模塊是利用硬件電路設計實現,特定電路只能實現對應的功能,且開發周期長、成本高,而軟件實現縮短了開發周期、降低了成本,且便于后期調試和維護。

圖1 典型的SDR基本結構
針對處理方式不同,SDR系統分為FPGA、DSP和GPP三類[2]。基于FPGA平臺開發的SDR系統,實時處理能力強但成本高昂;基于DSP的SDR系統,實時性稍差且成本不菲;基于GPP的SDR系統即通用處理器,可淺顯理解為PC,它可自行利用不同的編程語言、動態庫等,開發不同通信模組、系統。同時,基于GPP的SDR系統相比前兩種系統更具優勢,如門檻更低、成本更低、周期更短以及后期更好調試等,使其成為最通用的實現方式。
支持SDR的硬件平臺較多,適用范圍和作用也各不相同。RTL-SDR是極為廉價僅有接收功能的入門級硬件,一般接收電視信號;HadeRF性價比極高,是完全開源充滿黑客范的硬件;bladeRF配備ARM,可脫離主機單獨運行,頂配版能耐受極端環境;USRP則是儒雅的學院派,發展時間長且應用廣泛,成為主流SDR硬件。下面介紹下本文實現使用的USRP X310。
USRP是美國Ettus公司的產品,主要含有B、E、N、X四個系列。各系列性能與功能略不同,有興趣可訪問Ettus官方網站(www.ettus.com/product)。X系列是高性能、支持自主設計并能配置下一代無線通信系統的通用硬件。結合射頻子板的擴展,它的頻率覆蓋高達6 Hz,基帶單通道最高帶寬為120 MHz,且配備了多種高速接口(1/10G雙工以太網口、PCIe總線、外擴展卡),數字信號處理則采用高性能的FGPA高效實時處理信號。X310同樣采用開源軟件架構,有跨平臺的驅動UHD,開發時有相關的開源項目可供參考,并支持對架構增強。圖2為簡化原理圖,圖3為USRP X310實物圖[3]。

圖2 X310簡化原理

圖3 X310實物
1.3.1 OpenLTE
OpenLTE是前摩托羅拉工程師Ben Wojtowicz在2011年發起,按照3GPP通信協議開發的開源項目。它利用Linux系統,通過開源SDR軟件GNU Radio開發實現基礎的4G基站功能。最初的00.01版利用MATLAB/OCTAVE編程,實現FDD-LTE的下行鏈路和接收,并開展了相關測試。在2017年7月,它更新為00.20.05最新版本,完善和新增了許多功能[4]。
OpenLTE基于GNU Radio軟件的模塊化實現LTE協議的不同層次,主要涵蓋物理層協議(PHY)、介質訪問控制協議(MAC)、無線資源控制協議(RRC)和無線鏈路控制協議(RLC)等模塊。服務器配置由HSS模塊實現;eNode B側網關IP配置由GW模塊實現;eNode B的移動管理由MME模塊實現。調制的基帶信號通過1/10G以太網口發送至USRP,而后通過采樣、上/下變頻將數字信號轉換成電磁波發送給宿主。物理層支持LTE Release8標準協議,基礎功能完備但較為單一;MAC層采用簡單實用的輪詢調度算法,處理不盡完善,導致調度健壯性不夠,但對MAC層以上的功能都做了較完整實現。
1.3.2 srsLTE
srsLTE是愛爾蘭SoftwareRadioSystems(簡稱SRS)公司開發的開源SDR LTE平臺,網絡架構如圖4所示。它在Linux系統下利用標準C語言在GNU Radio框架下開發而成。SRS公司專門從事SDR開發,除了srsLTE外,還有AirScope、srsUE和srsENB等產品,且各產品定位不同。srsLTE最初開發時僅含有物理層下行鏈路,是開源、簡單與穩定的LTE系統,適合入門者學習;AirScope是實現LTE空口信號分析的商業軟件;srsUE是從PHY到NAS各層協議的開源LTE UE系統;srsENB是涵蓋PHY、MAC、RLC、PDCP、RRC和S1-AP等協議的商用LTE eNB軟件。后將srsUE、srsENB集成到srsLTE[5],使得srsLTE變成從PHY到IP全棧LTE系統,可惜只支持FDD雙工方式。LTE協議版本也僅有LTE Release8下行鏈路,應用場景非常有限,常與SRS公司其他產品配套使用。

圖4 srsLTE的網絡架構
1.3.3 OAI(OpenAirInterface)
OAI(即OpenAirInterface 5G,常稱為OpenAir-Interface)是由法國EURECOM組織完全按照3GPP協議棧在Linux實時內核上采用標準C語言優化實現的開源無線通信實驗平臺。它是在最初wireless 3g4 free的基礎平臺上,通過演變開發并兼容多種空中接口制式而形成。它采用3GPP標準在PC上用標準C語言完全實現LTE協議的三部分:核心網(EPC)、基站(eNB)和用戶(UE)。計算機的IP數據包通過USB或以太網口與射頻前端交互,而射頻信號在射頻首發板上做上下變頻、數模變換等再發送:將非接入層(Non-Access Straum)消息通過AT(Attention)命令和IP將eNodeB與MME間連接,再通過IP地址交互實現信息傳輸[6]。
目前,OAI已經全部實現LTE Release8協議版本,且支持LTE Release10的大部分功能,并在持續不斷更新中。近期,EURECOM組織準備基于OAI平臺添加NB-IoT模組,朝著十分具有吸引力的5G方向發展。OAI軟件主要囊括六部分:openair1具體實現3GPP LTE Release8的物理層協議;openair2實現LTE Release9數據鏈路層協議、eNodeB應用層及X2接口的功能;openair3實現IP網絡層協議及對應腳本;openair-cn實現3GPP LTE Release9/10版本的MME、NAS、HSS及eNodeB與MME間的S1接口;openairITS實現IEEE802.11p協議軟件模塊;common是OAI的附件,包括常用工具、插件和擴展口等。圖5是OAI構建無線網的結構圖[7]。幾種開源LTE項目內容對比結果如表1所示。

圖5 OAI構建無線網的結構

表1 幾種開源SDR LTE內容對比
需要兼顧三個開源項目同時在一個主機系統上完成搭建,建議主機配置——CPU至少需2個物理內核、主頻超3.0 GHz且沒有超線程的標準。大致架構是PC通過以太網口連接USRP,然后將通過USRP的射頻模塊將形成的信號外發。
主機采用聯想ThinkPad X1 CarBon,主要配置如下:CPU是Inter i7-6500U,主頻為2.5 GHz,單核是最高主頻為3.1 GHz,雙核四線程,基本能滿足使用需求。開源項目常在Linux系統下,主機安裝了win7、Ubuntu的雙系統,本文開發環境是基于Ubuntu 17.04上搭建。通用硬件平臺采用USRP X310,通過以太網口和主機相連,其搭建環境如圖6所示。具體地,主機與SDR平臺構建成“偽基站”,基站間通過無線信道實現數據交換,終端通過正常接入SDR基站。圖6是兩種基站的簡單示意對比。

圖6 兩種不同基站對比
2.2.1 OpenLTE安裝與LTE網絡接入
OpenLTE在Ubuntu17.04系統的安裝參考文獻[8]。本文采用OpenLTE最新版本V0.20.05。該版本新增了兩種編碼支持、PUCCH信道在1/1A/1B解碼功能、SR配置坐標映射、幫助查找函數和短信工具庫等,使其功能更加完善。
安裝完成后,通過以太網口測試OpenLTE與USRP X310是否連接,再編譯OpenLTE在build目錄下生成可執行文件。此外,開一新終端,通過Telnet 127.0.0.1進入OpenLTE工作終端的交互界面,如圖7所示;LTE_fdd_dl_scan將掃描dl_earfcn_list列表中的頻率信道號為25~187,并執行start對頻率做掃描。

圖7 telnet到交互界面并開始掃頻
2.2.2 srsLTE安裝并實現網絡ping
目前,srsLTE平臺包含了srsENB、srsUE組成的一套全協議棧系統。全協議棧就是利用srsLTE平臺可直接與商業手機、運營商基站互聯互通。在搭建srsLTE平臺前,需要安裝用于實時顯示圖形界面的srsGUI,而后前后安裝srsENB、srsUE開源軟件。兩者可安裝在同一臺主機上,但為了實時性,建議安裝在不同主機上。安裝兩個軟件的差異不大,都需要以下三步:①安裝USRP的通用驅動UHD;②安裝依賴庫;③下載srsLTE源碼并編譯。若要搭建一個完整的無線網,還需要EPC。SRS公司最近開發出自家的srsEPC,而本文采用開源OAI MME(或Amarisoft MME[9])更成熟的方案。
運行OpenLTE使得系統工作分為兩步:一是啟動基站——srsENB,先在build目錄下運行可執行文件,其后將配置文件復制到srsenb文件下改名并修改配置參數,最后下配srsenb參數并啟動;二是啟動用戶端——sesUE,與啟動基站過程類似。實現效果,如圖8所示。

圖8 srsLTE 顯示及ping通EPC
圖8中的左上圖為srsENB啟動界面,相關信息顯示,上行載頻為2.565 GHz,下行載頻為2.685 GHz,協議采用15.36 MHz的采樣率經系統對信號做3/4倍抽樣,提高了系統的實時性,得到的實際采樣率為11.52 MHz,而UE隨機接入并分配到RNTI 0x42信道上使用。圖8右上圖為srsUE啟動界面,srsUE側同樣做了3/4抽樣,完成了隨機接入和鑒權過程,而OAI MME也為其分配了通信的IP地址。圖8左下圖是srs系統運行的圖形界面,顯示的是srsENB和srsUE的信號幅值和相位信息。圖8右下圖是測試并驗證srsUE、srsENB及OAI MME的連通性。另開UE終端ping OAI MME發現,srsUE界面能ping通OAI MME,其平均時延約為30 ms。
2.2.3 OAI安裝并實現信號分析
OAI開源項目代碼分為兩部分:eNB模塊openairinterface5g和EPC模塊openair-cn。最初版本EPC由EPC和HSS兩部分組成,后來版本新增了SPGW模塊,最穩定版本為master branch,本文就在穩定版本上完成相關實現。圖9是經簡化概要描述而搭建OAI環境的硬件及IP配置。
OAI的安裝最復雜,不在于安裝流程,而是安裝內容太多且注意事項太多,可參考國外牛人Laurent的教程[10]。依照eNB、EPC、HSS、MME和SPGW等的次序安裝、配置并編譯后,而后配置IP參數如圖9所示,使UE、eNodeB和EPC三者能基于IP正常通信。eNodeB通過分配的IP地址與EPC相互通信,UE則通過USRP X310的射頻前端空口雙向收發與eNodeB實現數據傳輸,其他參數根據實際環境做配置。利用搭建的環境做初步測試,在eNodeB端觀察到接收信號的各種狀態,如圖10所示。

圖9 搭建OAI環境的硬件及網絡IP配

圖10 eNodeB示波信號圖
測試結果顯示了各種信號圖,為了便于敘述在截圖后對各子圖右下角做編號,1表示接收到信號的時域波形,2是信號在SRS的頻率響應,3是信道的頻率響應,4~6是在PUSCH信道上的自然對數率、I/O兩路輸出的星座圖和信道吞吐量,7是PUCCH1信道上的功率,8是PUCCH信道上I/O兩路的射頻輸出。
三個開源項目使用了相同的操作系統Ubuntu17.04、通用硬件平臺USRP X310和一些必備的基礎,如開源SDR軟件GNU Radio3.7.5、提供API接口硬件驅動UHD003.009.007,還有各種基礎的依賴庫和編譯開發工具,如MS Visual C++11.0、Python2.7.5和gettext0.18.3.2等。下面是每個項目遇到的一些問題與解決方法。
OpenLTE項目主要著重于LTE基站側的協議棧,并集成了MME功能和測試工具。安裝過程出現了以下問題:按照官方安裝過程遇到缺少polarssl庫的情況,發現改名后采用新libpolarssl可通過,但后面cmake時仍會報錯,只能找最原始的polarssl-dev文件安裝不再報該錯誤;OpenLTE編譯cmake時出現“not found gnuradio”,而當時GNU Radio是通過Ubuntu軟件中心安裝的,后經反復查找發現,從Ubuntu軟件中心安裝版本可能缺少部分文件,在終端重新安裝后問題解決;在利用“LTE_fdd_dl_files_scan.py”掃信道頻率和信道號時,運行出現“ImportError:No module name _LTE_fdd_dl_fs”,查看環境變量路徑都是正確的,后在sourceforge的OpenLTE項目討論區有類似問題,發現需要設置缺省路徑。OpenLTE由個人發起且資源有限,項目功能不夠完善和穩定,而項目人員仍在改進完善中。但總體來說,OpenLTE能夠實現LTE協議棧的基礎功能,代碼量小而精,適合入門學習。
srsLTE項目是SRS公司開發的開源軟件,也是目前最穩定的SDR LTE系統。安裝使用過程中出現了以下問題:使用過程中發現,多個公用數據網沖突時,UE不允許手機入網,與EPC機制缺少、缺省承載過程有關;由于EPC采用的OAI MME,在不同機構互融時需注意細節,如采樣率、分配機制等。SRS公司在2018初開發出輕量級的EPC,將MME、SPGW和HSS三者融為一體。srsLTE項目是由商業公司開發的開源軟件,代碼結構清晰且穩定,實現了全協議棧功能,但只支持郵件技術。
OAI項目由法國Eurecom組織發起的開源軟件,是功能最全、最繁復的系統。安裝使用過程遇到問題較多,下面列舉三個典型的問題:在安裝EPC主機時需提前、單獨安裝mysql-server和phpmyadmin兩個數據庫管理軟件,否則執行HSS會提示錯誤;寫卡過程中需要寫入IM5115、KI和OP,算法選擇Milenage,尤其要注意OP值須與HSS中設置一致,否則無法正常使用;文件和驅動安裝盡可能從官網下載安裝文件,否則會出現莫名其妙的錯誤,其次需要打官方補丁使系統高效穩定運行。OAI項目實現了LTE的全部協議棧,不停留在仿真層面,而是提供了從信源到信宿所需的雙向收發、文件傳輸等真實無線環境,故在該平臺上開發、研究人員眾多,便于交流。
這三個項目定位有差異,OpenLTE是入門級的SDR LTE,功能齊全但甚是簡單;srsLTE是商業公司開源軟件,可應用于短時集聚大量人群的無線擴容,保障高質量無線接入;OAI是典型的學院派,LTE協議棧完備且繁復,適合用于新技術研究、測試與驗證。
在未來“萬物互聯”的時代,5G相關技術正在高速發展,相關技術協議標準正在擬定中。從公開的資料得知,OpenLTE項目由于人力資源缺乏,內容暫未涉及5G和NB-IoT的相關技術應用;srsLTE在開源方面還暫未動作,但從公司成員發表的論文[11]知,SRS公司已經有成型的NB-IoT UE在MWC2017展會上展出;OAI項目在5G、NB-IoT等方面都有涉及,官方網站上面有詳細介紹軟件5G系統、5G模組和IoT等,且近期OAI基本完成NB-IoT平臺的開發并將代碼開源。此外,第一個基于SDR實現NB-IoT的Amarisoft商業軟件,并在2017年初已有集成NB-IoT的SDR LTE系統平臺在出售。從這些成果可知,未來SDR與5G、IoT等會緊密聯系在一起,使得無線通信技術發展愈加便利于人們的生活。
本文通過梳理OpenLTE、srsLTE和OAI三個開源項目的基本框架、開源程度和基本功能等,在通用硬件平臺USRP上做環境搭建,從而了解并掌握了SDR LTE系統的工作原理,知曉了一些無線通信的薄弱環節,為后續研究無線網絡安全、5G和NB-IoT等奠定了基礎。與此同時,需在動手實踐方面加強,利用現有的USRP X310搭建更多、更有挑戰的無線SDR實驗環境,為研究相關技術提供平臺支撐。
[1] 楊璘.綠色無線接入網絡架構C_RAN研究[D].北京:北京郵電大學,2012.YANG Hao.Research on C_RAN of Green Wireless Access Network Architecture[D].Beijing:Beijing University of Posts and Telecommunications,2012.
[2] 陳祝明.軟件無線電技術基礎[M].北京:高等教育出版社,2007.CHEN Zhu-ming.The Basis of Software Radio[M].Beijing:Higher Education Press,2007.
[3] USRP? X300/X310 Spec Sheet[EB/OL].(2017-08-06)[2018-03-03].https://www.ettus.com/product/details/X310-KIT.
[4] OpenLTE News[EB/OL].(2017-12-24) [2018-03-03].http://openlte.sourceforge.net/.
[5] SRS Products-srsLTE[EB/OL].(2018-01-15) [2018-03-01].http://www.softwareradiosystems.com/products/#srslte.
[6] 吳彤,張玉艷,趙慧等.基于開源SDR實現LTE系統對比[J].電信工程技術與標準化,2015,28(07):81-86.WU Tong,ZHANG Yu-yan,ZHAO Hui,et al.Comparison of LTE System Based on Open Source SDR[J].Telecom Engineering Technics and Standardization,2015,28(07):81-86.
[7] Guildford.LTE Demo with LimeSDR and OpenAirIntersface[EB/OL].(2016-07-21)[2018-03-03].https://www.crowdsupply.com/lime-micro/limesdr/updates/oai-ltedemo.
[8] Dchard.Installing OpenLTE[EB/OL].(2017-12-27)[2018-03-03].https://sourceforge.net/p/openlte/wiki/Installing%20OpenLTE/.
[9] 光光學長.srsENB+srsUE+Amarisoft MM測試[EB/OL].(2018-01-10)[2018-03-04].http://blog.csdn.net/jxwxg/article/details/73603577.GUANG Guang.srsENB+srsUE+Amarisoft MM Test [EB/OL].(2018-01-10)[2018-03-04].http://blog.csdn.net/jxwxg/article/details/73603577.
[10] Laurent.OpenAir Single Machine Ubuntu 17.04,After Major EPC Update[EB/OL].(2017-07-10)[2018-03-05].https://open-cells.com/index.php/2017/06/07/openairsingle-machine-ubuntu-17-04-after-major-epcupdate/.
[11] André P,Paul S,Ismael G.Implementing NB-IoT in Software-Experiences Using the srsLTE Library[C].Wireless Innovation Forum Europe,2017.