隨著軟件無(wú)線電技術(shù)的發(fā)展,智能無(wú)線電技術(shù)逐漸成為通信領(lǐng)域關(guān)注的熱點(diǎn),并給無(wú)線通信帶來(lái)新的發(fā)展空間。
軟件無(wú)線電架構(gòu)
軟件無(wú)線電(SDR)最初的概念是一種通信技術(shù)或者體系結(jié)構(gòu),而現(xiàn)在SDR,確切地說(shuō)是軟件定義無(wú)線電,更接近一種設(shè)計(jì)方法或者設(shè)計(jì)理念。軟件無(wú)線電在理論上有著良好的應(yīng)用前景,實(shí)際應(yīng)用中卻受到軟、硬件工藝或者處理能力的限制,但是基于軟件無(wú)線電概念基礎(chǔ)上的軟件定義無(wú)線電技術(shù)卻越來(lái)越受到人們的重視。在2001 年10 月份舉行的ITU-8F 會(huì)議上,軟件定義無(wú)線電被推薦為未來(lái)無(wú)線通信極有可能的發(fā)展方向。
軟件定義無(wú)線電的功能需求包括重新編程及重新設(shè)定的能力、提供并改變業(yè)務(wù)的能力、支持多標(biāo)準(zhǔn)的能力以及智能化頻譜利用的能力等。可見(jiàn),SDR 是可為所有技術(shù)使用的公共平臺(tái),例如認(rèn)知無(wú)線電。下面我們將從一個(gè)相對(duì)完整的SDR 平臺(tái)角度來(lái)闡述SDR 平臺(tái)的架構(gòu),主要包括以軟件為中心的SDR 架構(gòu)和SDR 硬件結(jié)構(gòu)兩個(gè)方面。
1、以軟件為中心SDR 架構(gòu)
軟件無(wú)線電,其重點(diǎn)在于基于一款通用平臺(tái)來(lái)進(jìn)行功能的軟件化處理。在SDR 探討中,開(kāi)發(fā)人員往往注重平臺(tái)的硬件開(kāi)發(fā),偏重于搭建平臺(tái)時(shí)使用器件的處理性能,以使得通用平臺(tái)盡可能的接近理想軟件無(wú)線電的設(shè)計(jì)要求。這使得一部分人忽略了SDR 中軟件平臺(tái)的設(shè)計(jì)。這里提出的SDR 軟件平臺(tái),是指在利用通用硬件平臺(tái)實(shí)現(xiàn)SDR 功能時(shí)的一種用戶算法處理框架(或簡(jiǎn)單認(rèn)為信號(hào)處理框架),甚至是一種操作環(huán)境(如滿足軟件通信體系架構(gòu)規(guī)范用戶接口環(huán)境)。SDR 軟件平臺(tái)(也稱(chēng)作SDR架構(gòu))負(fù)責(zé)的功能一般包括:
·提供用戶接口,用戶通過(guò)該接口添加、刪除功能模塊。·算法封裝,將算法包裝與外界隔離,算法包括通信算法、信號(hào)處理算法、C/C++等其他算法?!せヂ?lián)接口,以完成模塊間互聯(lián)?!ぶ虚g信號(hào)的測(cè)試調(diào)試接口?!ふ{(diào)度器或者適配器,用來(lái)管理模塊。
SDR 架構(gòu)中,最受歡迎的兩類(lèi)開(kāi)源平臺(tái)分別是開(kāi)源軟件定義無(wú)線電(GNU Radio)和開(kāi)源軟件通信體系框架嵌入式解決方案(OSSIE)。二者都是著手于標(biāo)準(zhǔn)化和可移植化的代碼開(kāi)發(fā),GNU Radio 的出發(fā)點(diǎn)是提供一種信號(hào)處理框架,而OSSIE 的目標(biāo)是提供一種軟件通信體系架構(gòu)(SCA)操作環(huán)境。
1.1 GNU Radio 平臺(tái)
GNU Radio 是一種設(shè)計(jì)SDRs 的開(kāi)源架構(gòu),其主要組件包括6 個(gè)部分:通用框架、調(diào)度器、C++ 和Python 工具、數(shù)字信號(hào)處理(DSP)模塊、用戶接口界面、硬件前端的接口。這6 個(gè)部分詳細(xì)功能說(shuō)明如下:
·一個(gè)為信號(hào)處理模塊準(zhǔn)備的通用框架,并且其可以連接到一個(gè)或多個(gè)其他模塊?!ひ粋€(gè)調(diào)度器,用于激活每個(gè)處理模塊并且管理模塊之間的相關(guān)數(shù)據(jù)傳輸?!++和Python 工具,用于建立多個(gè)模塊間的流圖,并將該流圖連接到調(diào)度器上?!ひ唤M足夠多的用于濾波器、跟蹤環(huán)等的常用DSP 模塊?!び脩艚涌诮缑?,允許用戶拖拽模塊、模塊連線來(lái)實(shí)現(xiàn)GNU Radio 的設(shè)計(jì)?!ひ粋€(gè)與商用硬件前端的接口。前端硬件包括數(shù)模/模數(shù)轉(zhuǎn)換器(DAC/ADC)和上下變頻器,來(lái)提供了通用處理器(GPP)和無(wú)線物理環(huán)境的接口。
GNU Radio 運(yùn)行在Linux 系統(tǒng)上。圖1 給出了GNU Radio 圖形用戶接口界面,每一個(gè)小模塊封裝了不同的信號(hào)處理功能,而且這些算法功能都是開(kāi)源的。大部分算法或者信號(hào)處理模塊是基于C++語(yǔ)言開(kāi)發(fā)的,可讀性強(qiáng),同時(shí)也便于用戶開(kāi)發(fā)。模塊間的通信是利用數(shù)據(jù)通道完成的,信息采用的是消息隊(duì)列形式。GNU Radio 結(jié)合通用軟件無(wú)線電外設(shè)(USRP)開(kāi)發(fā)板,可以認(rèn)為是一種SDR 平臺(tái),相關(guān)人員可以利用這種平臺(tái)進(jìn)行一些算法的快速開(kāi)發(fā)和SDR 研究。
圖1、GNU Radio 圖形用戶接口界面
1.2、OSSIE 平臺(tái)
OSSIE 是一種開(kāi)發(fā)SCA 兼容無(wú)線電的開(kāi)源平臺(tái),提供了一種SCA 操作環(huán)境。OSSIE 分配包括以下部分:
·用來(lái)選擇模塊和互聯(lián)模塊的用戶接口?!ざx新模塊的用戶接口,可以創(chuàng)建C++程序框架,用戶根據(jù)應(yīng)用需要可以增減框架內(nèi)所需要的信號(hào)處理代碼?!び脕?lái)檢查和調(diào)試波形的用戶接口,該接口允許開(kāi)發(fā)人員監(jiān)視中間模塊中的信號(hào)。監(jiān)控器可以在運(yùn)行中添加,便于觀察中間波形,進(jìn)行模塊調(diào)試?!せ陂_(kāi)源對(duì)象請(qǐng)求代理(ORB)的SCA 兼容公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA)?!ひ幌盗袑W(xué)習(xí)指南和實(shí)驗(yàn)課程。Windows 用戶可以直接下載相關(guān)組件并運(yùn)行,不需要安裝Linux,相對(duì)GNU Radio 上手容易。
從圖2 和圖3 以及OSSIE 分配上看出,用戶接口軟件OSSIE 提供了SDR 架構(gòu)設(shè)計(jì)、信號(hào)處理代碼封裝、接口調(diào)試、中間模塊波形調(diào)試等功能,在OSSIE 上開(kāi)發(fā)完整的無(wú)線電是相當(dāng)可行的?;贠SSIE 架構(gòu),Prismtech 公司的著名Spectra 系統(tǒng)提供了一個(gè)完整的用來(lái)開(kāi)發(fā)SCA 兼容波形的操作環(huán)境。
圖2、OSSIE 用來(lái)定義波形的用戶接口界面
圖3、OSSIE 用來(lái)測(cè)試和調(diào)試用戶接口界面
1.3、不同開(kāi)源SDR 平臺(tái)間對(duì)比
GNU Radio 由專(zhuān)門(mén)的業(yè)余愛(ài)好者創(chuàng)立,以節(jié)省開(kāi)支和臨時(shí)應(yīng)急驗(yàn)證為目的的一種快速開(kāi)發(fā)工具;而OSSIE符合軍方開(kāi)發(fā)標(biāo)準(zhǔn)。二者都是著手于標(biāo)準(zhǔn)化和可移植化的代碼開(kāi)發(fā)。
GNU Radio 的出發(fā)點(diǎn)是提供一種信號(hào)處理框架,與之不同的是OSSIE的目標(biāo)是提供一種SCA 操作環(huán)境。GNU Radio 運(yùn)行在Linux 平臺(tái)上,且直接訪問(wèn)文件系統(tǒng)和硬件;SCA 波形運(yùn)行在OSSIE 提供的一個(gè)良好的操作環(huán)境下,應(yīng)用程序界面抽象描述了文件系統(tǒng)和硬件。在GNU Radio 上的模塊之間通過(guò)Python 或者C++指令來(lái)互相連接,采樣數(shù)據(jù)是通過(guò)用戶自定義的循環(huán)緩沖來(lái)傳輸。OSSIE 采用可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件定義模塊連接,而實(shí)際是通過(guò)CORBA 服務(wù)完成了連接。最重要的是OSSIE 基于ORB 結(jié)構(gòu),采用了傳輸控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議(TCP/IP)傳輸采樣數(shù)據(jù)。特別說(shuō)明,ORB 允許不同的模塊運(yùn)行在不同的機(jī)器上,而GNU Radio平臺(tái)上的流圖只能在同一臺(tái)機(jī)器上運(yùn)行。通過(guò)比較發(fā)現(xiàn),GNU Radio 更像是OSSIE 中一種功能組件,完成的是OSSIE 的信號(hào)處理功能。
基于GNU Radio 和OSSIE 兩類(lèi)平臺(tái)出現(xiàn)一系列SDR 軟件架構(gòu),例如PrismTech 公司的Spectra CX 環(huán)境。這些SDR 架構(gòu)與專(zhuān)用處理器(現(xiàn)場(chǎng)可編程門(mén)陣列/DSP)相連接或者將專(zhuān)用處理器抽象成封裝組件,將無(wú)線電波形集中管理,根據(jù)需要進(jìn)行裝配組件形成波形應(yīng)用,靈活調(diào)用。這樣就完成了軟件無(wú)線電平臺(tái)開(kāi)發(fā)雛形。
2、用于SDR 信號(hào)處理的硬件結(jié)構(gòu)
SDR 要求硬件系統(tǒng)具有功能可重構(gòu)、較高的實(shí)時(shí)處理能力,要求適應(yīng)性廣、升級(jí)換代簡(jiǎn)便。在一般情況下要求SDR 硬件系統(tǒng)具備如下特點(diǎn):支持多處理器系統(tǒng),具有寬帶高速數(shù)據(jù)傳輸I/O 接口,結(jié)構(gòu)模塊化、標(biāo)準(zhǔn)化、規(guī)范化等。常見(jiàn)的SDR 平臺(tái)就是CPU+DSP+FPGA 這種形式。即便我們不具備全部硬件,但仍然可以進(jìn)行SDR 開(kāi)發(fā),因?yàn)镾DR 更像是一種設(shè)計(jì)理念,重在軟件和算法處理,其組件(不管是硬件平臺(tái),還是軟件算法)滿足同一種規(guī)范,則具備SDR 可重構(gòu)的靈活性。目前,存在3 種主流SDR 硬件平臺(tái)結(jié)構(gòu):基于GPP 的SDR 結(jié)構(gòu)、基于現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的SDR(Non- GPP)結(jié)構(gòu)、基于GPP +FPGA/SDP 的混合SDR 結(jié)構(gòu)。
2.1 基于GPP 的SDR 結(jié)構(gòu)
基于GPP 的SDR 結(jié)構(gòu)提供了最大的靈活性和最簡(jiǎn)單的開(kāi)發(fā)。GPPs最適合用于實(shí)驗(yàn)室環(huán)境的研究和開(kāi)發(fā),研究者能夠快速?lài)L試一系列算法和波形。一款高配PC 在運(yùn)行相當(dāng)復(fù)雜的波形情況下,數(shù)據(jù)率≥1 Mbit/s,并且通過(guò)以太網(wǎng)、USB、PCI 等標(biāo)準(zhǔn)接口可以直接處理數(shù)字基帶或者低中頻采樣數(shù)據(jù)。并且可以通過(guò)多核處理來(lái)提高數(shù)據(jù)的吞吐量。但是,對(duì)于這種結(jié)構(gòu)來(lái)說(shuō)更適合處理數(shù)據(jù)塊,并不擅長(zhǎng)處理實(shí)時(shí)采樣數(shù)據(jù),數(shù)據(jù)延時(shí)和抖動(dòng)是其面臨的主要問(wèn)題。操作系統(tǒng)會(huì)引進(jìn)延時(shí)和抖動(dòng),windows 系統(tǒng)抖動(dòng)可能超過(guò)10 ms,而像VxWorks這種實(shí)時(shí)操作系統(tǒng)抖動(dòng)可以限制在1 ms 內(nèi)。
基于GPP 的SDR 結(jié)構(gòu)比較簡(jiǎn)單,其結(jié)構(gòu)一般如圖4 所示,只包括天線、ADC/DAC、數(shù)據(jù)緩沖模塊(FIFO)和GPP。這種架構(gòu)對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),相當(dāng)方便和靈活,直接接入個(gè)人PC 就可以進(jìn)行算法開(kāi)發(fā)和測(cè)試,但它也存在缺點(diǎn),如上述所述,延時(shí)和數(shù)據(jù)處理的方式等。
圖4、基于GPP 的SDR
2.2 基于FPGA 的SDR(Non-GPP)結(jié)構(gòu)
基于FPGA 的SDR 結(jié)構(gòu)的實(shí)現(xiàn)比較困難。FPGA 適合于高數(shù)據(jù)速率和寬帶寬信號(hào)波形應(yīng)用,并且可以用于靈活實(shí)現(xiàn)無(wú)線電和多種多樣的波形設(shè)計(jì),但是在結(jié)構(gòu)上與GPP 存在本質(zhì)區(qū)別。GPP 在內(nèi)存中執(zhí)行指令且很容易從一個(gè)指令功能轉(zhuǎn)換到另一種功能,而FPGA 上的功能直接映射成了硬件電路,一個(gè)新功能需要更多的FPGA 資源。同時(shí),F(xiàn)PGA 的高度并行結(jié)構(gòu)十分適合數(shù)據(jù)流處理,但是不適合密集型控制處理。另一方面,F(xiàn)PGA 的配置文件高達(dá)40 MB,配置時(shí)間長(zhǎng)達(dá)100 ms,而且重新配置是容易丟失芯片中的數(shù)據(jù)。這些問(wèn)題直接造成了多波形設(shè)計(jì)中重新加載的時(shí)間太長(zhǎng)的問(wèn)題。雖然一部分FPGA 支持局部重配置的功能,但是這項(xiàng)技術(shù)相當(dāng)困難并且嚴(yán)重受到開(kāi)發(fā)工具的限制。讓人興奮的是,F(xiàn)PGA 實(shí)現(xiàn)了2011 年提出的3 項(xiàng)建議:
·專(zhuān)用GPP 與FPGA 一同使用?!ねㄟ^(guò)使用可用的邏輯資源在FPGA 上嵌入一個(gè)全功能的單片機(jī)?!PGA 和GPP 結(jié)合制作成單一器件(如Xilinx ZYNQ 系列)。
將FPGA 和GPP 結(jié)合制作成單一器件,并不是像嵌入了單片機(jī)模塊,這種片上單片機(jī)上電可用,并且不需要FPGA 就可以進(jìn)行編程設(shè)計(jì)。由此可知,基于FPGA 的SDR 架構(gòu)時(shí)代已經(jīng)到來(lái),新一代SDR 將在新技術(shù)下越來(lái)越有意義。
2.3 基于GPP+FPGA/DSP 的混合SDR結(jié)構(gòu)
基于GPP+FPGA/DSP 的混合SDR結(jié)構(gòu),分為GPP+FPGA、GPP+DSP+FPGA 兩種主要架構(gòu)形式。這種組合結(jié)構(gòu)融合不同器件的優(yōu)點(diǎn),取長(zhǎng)補(bǔ)短,在功耗要求比較寬松的實(shí)驗(yàn)室環(huán)境下,能夠給開(kāi)發(fā)人員提供一種快速驗(yàn)證各類(lèi)算法高性能平臺(tái)。
圖5 給出了這種結(jié)構(gòu)的互聯(lián)示意圖。這種結(jié)構(gòu)一般對(duì)異構(gòu)器件間的數(shù)據(jù)交換的性能要求較高,不同器件間通信一般會(huì)采用PCIe[12] 接口方式(1.25 Gb/s/1x)和串行高速輸入輸出(SRIO)接口方式(1.5 Gb/s/1x)。PCI Express 主要用于計(jì)算機(jī)中芯片間、板卡間的數(shù)據(jù)傳輸,也有部分嵌入式市場(chǎng);RapidIO 主要用于嵌入式系統(tǒng)內(nèi)芯片間、板間數(shù)據(jù)傳輸,其目標(biāo)就是嵌入式系統(tǒng)內(nèi)的高性能互聯(lián)。這種混合SDR 結(jié)構(gòu),性能上可以充分地利用各種器件的優(yōu)勢(shì),但同時(shí)也存在著接口設(shè)計(jì)復(fù)雜和能耗大的問(wèn)題。
圖5、異構(gòu)器件互聯(lián)示意
2.4、多通道SDR 結(jié)構(gòu)
除了上述討論的SDR 基本結(jié)構(gòu),也存在多通道SDR,如圖6 所示。多通道SDR 旨在多并發(fā)用戶共享相同的帶寬,例如在一種互不兼容無(wú)線電模式下的無(wú)線電轉(zhuǎn)換,允許不同模式下用戶間對(duì)話。這種架構(gòu)最簡(jiǎn)單的結(jié)構(gòu)就是整合一組獨(dú)立的SDRs,每一個(gè)SDR 支持一個(gè)或多個(gè)信道,一般的這些SDRs 分別是具有低速率、中速率、高速率處理能力。這種結(jié)構(gòu)除了對(duì)多種用戶接口、復(fù)雜的算法設(shè)計(jì)、系統(tǒng)設(shè)計(jì)提出高要求,也對(duì)信號(hào)處理器(GPP/FPGA/DSP)和射頻模塊(ADC/DAC/放大器)的性能提出了較高的要求。
圖6、多通道SDR
3、實(shí)驗(yàn)室自研平臺(tái)
目前,業(yè)界也出現(xiàn)了一系列支持SDR/CR 的高性能開(kāi)發(fā)平臺(tái),均是基于以上討論的架構(gòu)。例如National Instruments 公司的USRP、BeeCube 公司的BEE3、基于Xilinx ZYNQ 系列的ZingBoard/ ZedBoard 開(kāi)發(fā)板等。這些現(xiàn)有的具有SDR 開(kāi)發(fā)能力的開(kāi)發(fā)板,大多屬于商業(yè)產(chǎn)品,并不是專(zhuān)業(yè)應(yīng)用于SDR 開(kāi)發(fā)的產(chǎn)品,輔以個(gè)人PC(GPP)設(shè)備才能進(jìn)行一定意義上的SDR 設(shè)計(jì)。下面介紹一種自研平臺(tái),該平臺(tái)可專(zhuān)門(mén)用于軟件無(wú)線電和認(rèn)知無(wú)線電的相關(guān)研發(fā),特別適合實(shí)驗(yàn)室環(huán)境下,開(kāi)發(fā)人員對(duì)新算法的快速實(shí)現(xiàn)。
3.1 自研平臺(tái)硬件結(jié)構(gòu)
該平臺(tái)主要包含了GPP、專(zhuān)用處理器(FPGA/DSP)、射頻前端、天線等主要部件,如圖7 所示。
圖7、平臺(tái)架構(gòu)及應(yīng)用
如圖7 所示,這種SDR 實(shí)現(xiàn)結(jié)構(gòu)利用緊湊型外圍組件接口(CPCI)總線將FPGA、DSP、GPP 連接在一起,充分利用了FPGA 高速并行數(shù)據(jù)流處理能力、DSP 高效算法處理能力、上位機(jī)靈活的界面操作能力以及現(xiàn)場(chǎng)可編程能力。更有意義的是平臺(tái)支持GNU Radio/OSSIE 架構(gòu),實(shí)驗(yàn)室團(tuán)隊(duì)在平臺(tái)上實(shí)現(xiàn)了基于Spectra CX 操作環(huán)境的SCA 設(shè)計(jì),可以認(rèn)為它是一套具有SDR 電臺(tái)研發(fā)能力的通用設(shè)備。平臺(tái)主要參數(shù)如表1 所示。
表1、自研平臺(tái)部分參數(shù)
3.2 單元互聯(lián)
該平臺(tái)主要目的是用于SDR 的應(yīng)用研究,必然面臨多用戶、多波形、寬帶寬等問(wèn)題,此時(shí)FPGA、DSP、GPP這些異構(gòu)器件間的通信能力直接決定了系統(tǒng)的整體性能,即涉及不同單元間互聯(lián)方式的選擇。為了能過(guò)獲得最大數(shù)據(jù)吞吐能力,專(zhuān)用器件與GPP 間的通信采用了PCIe 接口方式,F(xiàn)PGA 與DSP 之間的通信則采用SRIO,通過(guò)提高接口的數(shù)據(jù)交換速度來(lái)保證大數(shù)據(jù)吞吐能力,進(jìn)而充分發(fā)揮各處理器強(qiáng)大的數(shù)據(jù)處理能力。
-
SDR
+關(guān)注
關(guān)注
7文章
233瀏覽量
50459 -
無(wú)線電
+關(guān)注
關(guān)注
59文章
2139瀏覽量
116427
原文標(biāo)題:從零開(kāi)始學(xué)SDR系列:詳解軟件無(wú)線電架構(gòu)
文章出處:【微信號(hào):mwrfnet,微信公眾號(hào):微波射頻網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論