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