3、軟件無線電的開發(fā)工具
軟件無線工作者希望基于一款通用的平臺將功能軟件化,并可以通過軟件升級來完成系統(tǒng)的升級。考慮到軟件無線電的軟件功能離不開硬件設(shè)備,所以關(guān)于軟件無線電的開發(fā)工具,可以分為3 類:
· 底層硬件的程序設(shè)計軟件。該軟件可以用于例如現(xiàn)場可編程邏輯門陣列(FPGA)開發(fā)Xilinx ISE 設(shè)計套件軟件、用于數(shù)字信號處理(DSP)開發(fā)的TI CCS 軟件以及Matlab/Simulink 等。· 基于特定通用平臺的開發(fā)軟件。這類工具開始具備軟件無線電的性質(zhì),例如第2 期中提到的基于通用軟件無線電外設(shè)(USRP)的開源軟件定義無線電(GNU Radio)等。
· 基于軟件通信體系架構(gòu)(SCA)的軟件無線電(SDR)開發(fā)工具。這是最接近軟件無線電思想的開發(fā)工具,例如開源軟件通信體系框架嵌入式解決方案(OSSIE)。
文章主要討論后兩種開發(fā)工具以及具有代表性的軟件,3.1 節(jié)將詳細介紹一種第3 類的SCA SDR 開發(fā)工具,而3.2 和3.3 介紹了兩種第2 類開發(fā)工具,希望能給相關(guān)工程應(yīng)用帶來一定的指導(dǎo)意義。
3.1 SDR 工具Spectra 與SCA
3.1.1 SCA SDR 的應(yīng)用前景
隨著通信設(shè)備一體化和通用化的發(fā)展,人們對SDR 軟件波形開發(fā)提出了要求,例如多種功能波形應(yīng)用,支持不同平臺的移植、模塊化等。因此,SCA SDR 的應(yīng)用優(yōu)勢逐漸凸顯,PrismTech 公司的Spectra 工具包括了模型開發(fā)工具、自動代碼生成、測試框架和操作環(huán)境(OE)4 個部分,支持SCA 2.2 和SCA 2.2.2標準的波形組件(也稱為波形的邏輯代碼的實現(xiàn))和平臺組件的開發(fā)。基于SCA 的SDR 將無線通信相關(guān)的算法(或設(shè)計者的其他算法)封裝成波形組件,而各種物理應(yīng)用平臺也被封裝成平臺組件,直接體現(xiàn)為Spectra CX 軟件中的一個組件;可裝配多種波形,每個波形應(yīng)用實現(xiàn)一組特定的功能,在硬件平臺具備的基礎(chǔ)上,各個波形應(yīng)用以組件的方式部署到系統(tǒng)的不同節(jié)點中。
3.1.2 Spectra CX 波形開發(fā)環(huán)境
基于Spectra SCA波形的開發(fā)環(huán)境包括Spectra CX 波形開發(fā)工具和針對SDR 硬件平臺的Specta OE,包含以下工具:
(1)建模工具。它為SDR 開發(fā)人員提供高層抽象、易使用和圖形化的建模工具,用于動態(tài)地設(shè)計波形和平臺開發(fā)。幫助波形設(shè)計人員高效地建立平臺獨立、可移植的波形模型,并可以映射到不同的平臺上。這些工具也能支持可插入地第三方工具,以支持完全的SDR 工具鏈集成。
(2)源代碼生成器。Spectra CX集成了特定語言組件源代碼生成器、單元測試生成器等,為波形應(yīng)用提供了一個完整的開發(fā)和測試環(huán)境。Spectra 源代碼生成器為SDR 組件的針對特定語言代碼、描述器和測試代碼生成提供了高性能的無錯工具。通過將域特定的SDR 模型映射為一系列可執(zhí)行的、語言特定的文件,這些文件包含了在Spectra OE 上運行的所需要的所有功能。多語言、高效率的自動代碼生,從圖形化模型生成源代碼、描述器和測試代碼。與手寫代碼相比,提高開發(fā)效率高達50 倍(幾個月的工作縮短到1 天或更少的時間內(nèi)完成),也使代碼具有固有的標準兼容。
(3)測試與驗證。提供模型的SCA 兼容性驗證,能對對組件或子系統(tǒng)進行SCA 兼容性、功能進行測試,并能提供部署后的實時測試。驗證包括應(yīng)用、平臺、部署的驗證:模型語法、語義驗證;組件、應(yīng)用、設(shè)備和節(jié)點的驗證;完整SCA 部署的驗證等。
(4)Spectra OE。Spectra OE 是一種高性能、低負載SDR 實時運行環(huán)境,它支持SCA OE 的要求。它能超過典型的SCA 通用處理器(GPP)邊界,為DSP/FPGA 提供一致結(jié)構(gòu)。Spectra OE 是先進和優(yōu)化的實時運行平臺,將應(yīng)用軟件和硬件分離,使應(yīng)用可以移植,同時也具有最小的可能尺寸、重量和功耗。它為開發(fā)人員大幅度減少了實時運行環(huán)境的復(fù)雜程度,提供了單一的應(yīng)用程序編程接口(API)。Spectra OE 結(jié)合了PrismTech的核心框架(CF)和先進的中間件(e*ORB 與ICO),并根據(jù)完全的實時運行結(jié)構(gòu)(CF、中間件和用戶傳輸)從尺寸、重量和性能進行優(yōu)化。
(5)波形部署監(jiān)視器。該監(jiān)視器用于將波形部署到硬件平臺上,并能在波形實時運行時,對波形組件參數(shù)進行查詢、設(shè)置等,并能監(jiān)視系統(tǒng)事件。Spectra CX 的Monitor 可以鏈接到任何SCA 兼容的操作環(huán)境,比如可以運行在裝備了PC 兼容的中間件的PC開發(fā)主機上。通過這個特點,部署的測試可以在開發(fā)周期中大大提前。這個運行時監(jiān)控器能跟嵌入式目標OE 通信,以便在真實目標上測試。監(jiān)視器可以通過點擊按鈕的方式啟動或終止多種應(yīng)用。這樣可在SCA平臺上加載多種應(yīng)用,以盡可能的描述域要發(fā)生的情況(如組件屬性的預(yù)設(shè)值可以隨時修改)。Spectra CX 還能捕獲CF 產(chǎn)生的日志,并在SpectraCX 的用戶界面中顯示出來。
3.1.3 基于Spectra CX 的SDR 開發(fā)
SCA SDR 能裝配多種波形應(yīng)用,每個波形應(yīng)用實現(xiàn)一組特定的功能。在硬件平臺具備的基礎(chǔ)上,各個波形應(yīng)用以組件的方式部署到系統(tǒng)的不同節(jié)點中。由于不同的波形應(yīng)用有不同功能和特性,需要分別對每個波形應(yīng)用依照SCA 規(guī)范進行開發(fā)。
(1)波形應(yīng)用開發(fā)流程:創(chuàng)建組件— 生成端口— 添加端口屬性— 創(chuàng)建應(yīng)用— 建立組件鏈接— 創(chuàng)建裝配控制器。
(2)節(jié)點和平臺的開發(fā)流程:創(chuàng)建設(shè)備— 生成設(shè)備接口— 創(chuàng)建設(shè)備管理器— 創(chuàng)建域管理器— 創(chuàng)建節(jié)點— 將設(shè)備管理器、域管理器、設(shè)備添加到節(jié)點— 創(chuàng)建平臺— 將節(jié)點添加到平臺。
平臺是一些節(jié)點的集合,由域管理器控制,如圖14 所示。設(shè)備管理器駐留在其中的一個節(jié)點上。節(jié)點是計算節(jié)點的抽象,是一些設(shè)備和服務(wù)的集合,由一個設(shè)備管理器控制。通過節(jié)點可以監(jiān)視和控制節(jié)點的資源狀況,實現(xiàn)OE,執(zhí)行設(shè)備管理器以及安裝OE&CF; 服務(wù),例如公共對象請求代理體系結(jié)構(gòu)(CORBA)、命名服務(wù)、FileSystem、Log、事件服務(wù)等。
圖14、Spectra SCA SDR 波形開發(fā)環(huán)境
波形在Spectra SCA 架構(gòu)上的應(yīng)用的操作步驟如下:
(1)啟動硬件平臺,啟用節(jié)點,啟動域管理器、設(shè)備管理器等;(2)打開波形部署監(jiān)視器,添加部署到監(jiān)視器中;
(3)安裝應(yīng)用程序,創(chuàng)建應(yīng)用程序,加載波形應(yīng)用;
(4)停止應(yīng)用程序,釋放應(yīng)用程序,卸載波形應(yīng)用;
(5)可以重復(fù)步驟3、4,加載、卸載其他波形應(yīng)用。
用戶按照步驟操作,可以完成基于Spectra SCA 的波形部署。以FPGA器件為例,通過上位機操作軟件配置不同功能的波形組件,可以完成底層FPGA 代碼功能的加載和重新加載,即完成通信功能的設(shè)置或變更,例如由發(fā)射改為接收或者發(fā)射不同的調(diào)制信號;從操作人員主觀上來看,我們只是修改了軟件指定的功能,就完成了底層硬件的各種應(yīng)用切換,用戶層和底層得到了較好的隔離,這就體現(xiàn)出SDR 的軟件性質(zhì)。我們通過軟件升級來實現(xiàn)更多的功能,而不必考慮底層的硬件平臺,工程師從硬件開發(fā)集中到了軟件開發(fā),有力地加速了應(yīng)用開發(fā);更有意義的是,這些軟件波形應(yīng)用對于SDR 硬件平臺具有完美的可移植性,避免了代碼的重復(fù)開發(fā),節(jié)省了時間、人力、財力、物力。
3.2 基于USRP 的LabVIEW 軟件
NI(美國國家儀器)公司的USRP是一款價位合理且靈活的軟件無線電平臺。它將一臺標準計算機轉(zhuǎn)變成一個無線通信系統(tǒng)的快速原型開發(fā)平臺。結(jié)合NI USRP 射頻收發(fā)器與NI LabVIEW 軟件的優(yōu)勢,USRP 和LabVIEW 兩者共同提供了一個可快速上手且功能強大的系統(tǒng)。以NIUSRP2920 為例,其支持頻帶可以達到50 MHz~2.2 GHz,中心頻率可調(diào),覆蓋FM 全球定位系統(tǒng)(GPS)、數(shù)字移動通信系統(tǒng)(GSM)、雷達和ISM 頻段;高達20 MHz 基帶I/Q 帶寬,讀寫速率達25 MSPS。借助NI LabVIEW軟件可進行頻譜監(jiān)測、快速開發(fā)無線通信協(xié)議、靈活的多輸入多輸出(MIMO)系統(tǒng)等應(yīng)用。
3.2.1 LabVIEW 軟件
LabVIEW開發(fā)環(huán)境提供了圖形化編程方法和前所未有的硬件集成,旨在幫助工程師和科學(xué)家快速設(shè)計和部署測量和控制系統(tǒng),加快產(chǎn)品開發(fā)。借助這一靈活的平臺,工程師可以開發(fā)大中小型系統(tǒng),完成從設(shè)計到測試等一系列流程,同時重用IP 和簡化流程,實現(xiàn)性能的最優(yōu)化。
LabVIEW 應(yīng)用程序分成前面板和程序框圖兩部分。前面板實現(xiàn)程序參數(shù)的設(shè)置以及界面可視化功能,它可以對程序進行手動控制和對結(jié)果進行圖形化顯示。在前面板單擊右鍵可以添加需要的控件,實現(xiàn)程序參數(shù)的設(shè)置或者結(jié)果圖形化顯示,如圖15 所示。
圖15、前面板控件添加過程
程序框圖是程序的功能實現(xiàn)部分,它采用圖形語言來實現(xiàn)編程,如圖16 所示。在程序框圖面板單擊右鍵添加需要的函數(shù)來實現(xiàn)程序的功能部分。
圖16、程序框圖函數(shù)添加過程
另外,LabVIEW 程序運行時是以數(shù)據(jù)流的形式運行的,這樣程序的處理流程非常清晰,對程序編寫和調(diào)試非常有用。
3.2.2 LabVIEW 的開發(fā)流程簡介
LabVIEW 和USRP 平臺上手容易,而且提供了漢化窗口,不再做案例介紹。LabVIEW 基于框架式設(shè)計,根據(jù)發(fā)射和接收程序流程框架配置即可,以下是收發(fā)通信工作流程。
(1)發(fā)射:打開設(shè)備發(fā)射會話—配置參數(shù)— 寫入指定通道— 關(guān)閉會話句柄;(2)接收:打開設(shè)備接收會話—配置參數(shù)— 接收捕獲— 讀出指定通道數(shù)據(jù)— 分析處理— 停止捕獲— 關(guān)閉句柄。
LabVIEW 和USRP 平臺,將算法集中到用戶接口界面,常被通信工作人員用來快速開發(fā)驗證算法以及自定義信號測試源,例如用于軟件無線電算法驗證、頻譜監(jiān)測、認知無線電算法驗證等。
3.3 BPS 系統(tǒng)級軟硬件協(xié)同設(shè)計工具
3.3.1 BPS 軟件簡介
BPS(BEEcube 平臺工作室)是基于MathWorks 公司Simulink 上的一個系統(tǒng)級的、軟硬件協(xié)同開發(fā)的環(huán)境。這個開發(fā)環(huán)境可以自動生成特定硬件接口和相應(yīng)軟件驅(qū)動。對于Matlab 算法設(shè)計人員,平臺中的系統(tǒng)級軟硬件協(xié)同設(shè)計工具可以隱藏所有FPGA 設(shè)計細節(jié),例如:高速I/O 的例化和配置,多時鐘域的時序收斂,軟硬件接口和IP 集成,加快了應(yīng)用設(shè)計。用戶核心算法模塊的外部連接可在BPS 用戶界面中直接訪問。對于復(fù)雜的DSP 算法工程任務(wù),以往需要數(shù)月才能完成,而現(xiàn)在利用系統(tǒng)級軟硬件協(xié)同設(shè)計工具在幾天內(nèi)就可以完成。
3.3.2 設(shè)計流程
BPS 軟件是最簡單、最快速和最可靠的,用于硬件實現(xiàn)算法,并與實際應(yīng)用相連接的軟件平臺。用戶不必是一個FPGA 專家,只需將用戶的設(shè)計輸入到Matlab/Simulink,BPS 會自動將其映射到FPGA 內(nèi),其包含了平臺上所有的接口IP。
圖17、BPS 基本設(shè)計流程
圖17 所示為BPS 基本的設(shè)計流程,其設(shè)計思路圍繞系統(tǒng)生成器(也稱作實現(xiàn)開發(fā)工具)展開。系統(tǒng)生成器是Xilinx 公司進行數(shù)字信號處理開發(fā)的一種設(shè)計工具,它通過將Xilinx開發(fā)的一些模塊嵌入到Simulink 的庫中。在BEE 系統(tǒng)中,同時也需要將硬件接口的IP 和基本的運算IP 集成到Simulink 的IP 庫中,可以在Simulink中進行定點仿真,生成HDL 文件(網(wǎng)表),可以在Xilinx FPGA 開發(fā)工具(ISE)中進行例化使用,也可以直接生成配置文件(.bit 文件)。因此,它能夠加快信號處理系統(tǒng)的開發(fā)進程。
在圖17 的設(shè)計流程中,除了可以利用Xilinx SysGen 本身提供的IP 庫和BPS 加入的硬件接口IP 庫之外,還可以將HDL 代碼借助ip_import 工具,將HDL 代碼生成BPS 的IP 庫添加到設(shè)計系統(tǒng)中。從而將BPS 可靠的接口驅(qū)動與用于核心算法聯(lián)系起來。接下來,只需執(zhí)行BPS 的相關(guān)指令,即可完成最終.bit 文件的生成。在生成.bit 的過程中,基于Simulink 的工程會生成嵌入式開發(fā)套件(EDK)的工程,系統(tǒng)自動地添加MicroBlaze 到系統(tǒng)中,利用該軟核運行NectorOS 自定義的操作系統(tǒng),可以方便的訪問預(yù)置在設(shè)計里的寄存器,完成系統(tǒng)級控制。整個過程運行于Matlab 后臺,如無特別改動之處,不必人為干預(yù)。
3.3.3 軟件配置簡介
(1)開發(fā)環(huán)境:BPS(2) 需要預(yù)裝軟件:Matlab/Simulink、Xilinx ISE Design Suite
(3)配置步驟見圖18。
圖18、配置步驟
4、結(jié)束語
軟件無線電是一種智能化無線通信技術(shù),它展現(xiàn)了一種全新的波形配置管理模式,并將自身與外部環(huán)境智能匹配,為從根本上解決日益增長的無線通信需求與有限的無線頻譜資源之間的矛盾開辟一條行之有效的途徑,并給無線通信帶來了新的發(fā)展空間。而基于盲源分離的終極無線電的概念,是對軟件無線電和認知無線電的進一步拓展,實現(xiàn)還面臨許多技術(shù)難題,需要進一步深入研究。其概念是否準確也有待商榷。
從文章對SDR 應(yīng)用發(fā)展及平臺架構(gòu)等技術(shù)的綜述中可以看出,軟件無線電技術(shù)是若干技術(shù)的高度綜合,已越來越廣泛地被人們接受,其在軍事和民用領(lǐng)域的應(yīng)用有著巨大的前景。然而,軟件無線電從概念到應(yīng)用尚面臨很多挑戰(zhàn),尤其是許多關(guān)鍵技術(shù)需要突破,實際應(yīng)用起來還有相當一段長的路要走,這也使其成為了近年來無線通信研究的熱點。該領(lǐng)域及相關(guān)領(lǐng)域的研究人員應(yīng)牢牢把握發(fā)展機遇,緊密跟蹤其發(fā)展動向,努力開展技術(shù)攻關(guān),力爭盡早研制出具有自主知識產(chǎn)權(quán)的設(shè)備,為國家的發(fā)展和富強做出應(yīng)有的貢獻。
作者:宋騰輝、竇崢、林云,哈爾濱工程大學(xué)信息與通信工程學(xué)院,中興通訊技術(shù)