官术网_书友最值得收藏!

1.4 SDR平臺的架構

SDR的功能需求包括重新編程及重新設定的能力、提供并改變業務的能力、支持多標準的能力以及智能化頻譜利用的能力等。下面從一個相對完整的SDR平臺角度來闡述SDR平臺的架構,主要包括以軟件為中心的SDR架構和用于SDR信號處理的硬件結構兩個方面。

1.4.1 以軟件為中心的SDR架構

軟件無線電,其重點在于基于一款通用平臺來進行功能的軟件化處理。在SDR探討中,開發人員往往注重平臺的硬件開發,偏重于搭建平臺時使用器件的處理性能,以使得通用平臺盡可能地接近理想軟件無線電的設計要求。這使得一部分人忽略了SDR中軟件平臺的設計。研究人員提出了SDR軟件平臺的概念,是指在利用通用硬件平臺實現SDR功能時的一種用戶算法處理框架(或簡單認為信號處理框架),甚至是一種操作環境(如滿足軟件通信體系架構規范用戶接口環境)。SDR軟件平臺(也稱作SDR架構)負責的功能一般包括:

(1)提供用戶接口,用戶通過該接口添加、刪除功能模塊。

(2)算法封裝,將算法包裝與外界隔離。算法包括通信算法、信號處理算法、C/C++等其他算法。

(3)互連接口,以完成模塊間互連。

(4)中間信號的測試調試接口。

(5)調度器或者適配器,用來管理模塊。

SDR架構中,最受歡迎的兩類開源平臺分別是開源軟件定義無線電(GNU Radio)和開源軟件通信體系框架嵌入式解決方案(OSSIE)。二者都是著手于標準化和可移植化的代碼開發,GNU Radio的出發點是提供一種信號處理框架,而OSSIE的目標是提供一種軟件通信體系架構(SCA)操作環境。

1.GNU Radio平臺

GNU Radio是一種設計SDR的開源架構,其主要組件包括6個部分:通用框架、調度器、C++和Python工具、數字信號處理(DSP)模塊、用戶接口界面、硬件前端的接口。這6個部分詳細功能說明如下:

(1)一個為信號處理模塊準備的通用框架,并且其可以連接到一個或多個其他模塊。

(2)一個調度器,用于激活每個處理模塊并且管理模塊之間的相關數據傳輸。

(3)C++和Python工具,用于建立多個模塊間的流圖,并將該流圖連接到調度器上。

(4)一組足夠多的用于濾波器、跟蹤環等的常用DSP模塊。

(5)用戶接口界面,允許用戶拖動模塊、模塊連線來實現GNU Radio的設計。

(6)一個與商用硬件前端的接口。前端硬件包括數模/模數轉換器(DAC/ADC)和上下變頻器,來提供通用處理器(GPP)和無線物理環境的接口。

GNU Radio運行在Linux系統上。圖1.6所示為GNU Radio圖形用戶接口界面,每一個小模塊封裝了不同的信號處理功能,而且這些算法功能都是開源的。大部分算法或者信號處理模塊是基于C++語言開發的,可讀性強,同時也便于用戶開發。模塊間的通信是利用數據通道完成的,信息采用的是消息隊列形式。GNU Radio結合通用軟件無線電外設(USRP)開發板,可以認為是一種SDR平臺,研究人員可以利用這種平臺進行一些算法的快速開發和SDR研究。

圖1.6 GNU Radio圖形用戶接口界面

2.SSIE平臺

OSSIE是一種開發SCA兼容無線電的開源平臺,提供了一種SCA操作環境。OSSIE分配包括以下幾部分:

(1)用來選擇模塊和互連模塊的用戶接口。

(2)定義新模塊的用戶接口,可以創建C++程序框架,用戶根據應用需要可以增減框架內所需要的信號處理代碼。

(3)用來檢查和調試波形的用戶接口,該接口允許開發人員監視中間模塊中的信號。監控器可以在運行中添加,便于觀察中間波形,進行模塊調試。

(4)基于開源對象請求代理(ORB)的SCA兼容公共對象請求代理體系結構(CORBA)。

(5)一系列學習指南和實驗課程。Windows用戶可以直接下載相關組件并運行,不需要安裝Linux,相對于GNU Radio上手容易。

用戶接口軟件OSSIE提供了SDR架構設計、信號處理代碼封裝、接口調試、中間模塊波形調試等功能,在OSSIE上開發完整的無線電是相當可行的。基于OSSIE架構,Prismtech公司的Spectra系統提供了一個完整的用來開發SCA兼容波形的操作環境。

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的信號處理功能。

1.4.2 用于SDR信號處理的硬件結構

SDR要求硬件系統具有功能可重構、較高的實時處理能力,要求適應性廣、升級換代簡便。一般情況下,要求SDR硬件系統具備如下特點:支持多處理器系統,具有寬帶高速數據傳輸I/O接口,結構模塊化、標準化、規范化等。常見的SDR平臺就是CPU+DSP+FPGA這種形式。即使不具備全部硬件,但仍然可以進行SDR開發,因為SDR更像是一種設計理念,重在軟件和算法處理,其組件(不管是硬件平臺,還是軟件算法)滿足同一種規范,則具備SDR可重構的靈活性。目前,存在4種主流SDR硬件平臺結構:基于GPP的SDR結構、基于現場可編程門陣列(FPGA)的SDR(Non-GPP)結構、基于GPP+FPGA/SDP的混合SDR結構、多通道SDR結構。

1.基于GPP的SDR結構

基于GPP的SDR結構提供了最大的靈活性和最簡單的開發。GPP最適合用于實驗室環境的研究和開發,研究者能夠快速嘗試一系列算法和波形。一款高配PC在運行相當復雜的波形情況下,數據傳輸速率≥1Mbit/s,通過以太網、USB、PCI等標準接口可以直接處理數字基帶或者低中頻采樣數據,并且可以通過多核處理來提高數據的吞吐量。但是,對于這種結構來說更適合處理數據塊,并不擅長處理實時采樣數據,數據延時和抖動是其面臨的主要問題。操作系統會引進延時和抖動,Windows系統抖動可能超過10ms,而像Vx Works這種實時操作系統抖動可以限制在1ms內。

基于GPP的SDR結構比較簡單,其結構一般如圖1.7所示,只包括天線、ADC/DAC、數據緩沖模塊(FIFO)和GPP。這種架構對于開發人員來說,相當方便和靈活,直接接入個人PC就可以進行算法開發和測試,但它也存在缺點,如上所述,延時和數據處理的方式等。

圖1.7 基于GPP的SDR結構

ADC—模數轉換器;FIFO—數據緩沖模塊;DAC—數模轉換器;GPP—通用處理器

2.基于FPGA的SDR(Non-GPP)結構

基于FPGA的SDR結構的實現比較困難。FPGA適合于高數據傳輸速率和大帶寬信號波形應用,并且可以用于靈活實現無線電和多種多樣的波形設計,但是在結構上與GPP存在本質區別。GPP在內存中執行指令且很容易從一個指令功能轉換到另一種功能,而FPGA上的功能直接映射成了硬件電路,一個新功能需要更多的FPGA資源。同時,FPGA的高度并行結構十分適合數據流處理,但是不適合密集型控制處理。另一方面,FPGA的配置文件高達40MB,配置時間長達100ms,而且重新配置是容易丟失芯片中的數據。這些問題直接造成了多波形設計中重新加載的時間太長的問題。雖然一部分FPGA支持局部重配置的功能,但是這項技術相當困難并且嚴重受到開發工具的限制。讓人興奮的是,FPGA實現了2011年提出的三項建議:

(1)專用GPP與FPGA一同使用。

(2)通過使用可用的邏輯資源在FPGA上嵌入一個全功能的單片機。

(3)將FPGA和GPP結合制作成單一器件(如Xilinx ZYNQ系列)。

將FPGA和GPP結合制作成單一器件,并不是像嵌入了單片機模塊,這種片上單片機上電可用,并且不需要FPGA就可以進行編程設計。由此可知,基于FPGA的SDR架構時代已經到來,新一代SDR將在新技術下越來越有意義。

3.基于GPP+FPGA/DSP的混合SDR結構

基于GPP+FPGA/DSP的混合SDR結構,分為GPP+FPGA、GPP+DSP+FPGA兩種主要架構形式。這種組合結構融合不同器件的優點,取長補短,在功耗要求比較寬松的實驗室環境下,能夠給開發人員提供一種快速驗證各類算法性能高的平臺。

圖1.8所示為這種結構的互連示意圖。這種結構一般對異構器件間的數據交換的性能要求較高,不同器件間通信一般會采用PCI接口方式[(1.25Gbit/s)/1x]和串行高速輸入輸出(SRIO)接口方式[(1.5Gbit/s)/1x]。PCI Express主要用于計算機中芯片間、板卡間的數據傳輸;Rapid Io主要用于嵌入式系統內芯片間、板間數據傳輸,其目標就是嵌入式系統內的高性能互連。這種混合SDR結構,可以充分地利用各種器件的優勢,但同時也存在著接口設計復雜和能耗大的問題。

圖1.8 異構器件互連示意圖

FPGA—現場可編程門陣列;DSP—數字信號處理器;GPP—通用處理器

4.多通道SDR結構

除了上述討論的SDR基本結構,也存在多通道SDR結構,如圖1.9所示。多通道SDR旨在多并發用戶共享相同的帶寬,例如在一種互不兼容無線電模式下的無線電轉換,允許不同模式下用戶間對話。這種架構最簡單的結構就是整合一組獨立的SDR,每一個SDR支持一個或多個信道,一般這些SDR分別具有低速率、中速率、高速率處理能力。這種結構除了對多種用戶接口、復雜的算法設計、系統設計提出高要求,也對信號處理器(GPP/FPGA/DSP)和射頻模塊(ADC/DAC/放大器)的性能提出了較高的要求。

圖1.9 多通道SDR結構

ADC—模數轉換器;DSP—數字信號處理;GPP—通用處理器;DAC—數模轉換器;

SPU—通用處理器;FPGA—現場可編程門陣列;RF—射頻

目前,業界也出現了一系列支持SDR/CR的高性能開發平臺,均是基于以上討論的架構。例如,National Instruments公司的USRP、BeeCube公司的BEE3、基于Xilinx ZYNQ系列的Zing Board/Zed Board開發板等。這些現有的具有SDR開發能力的開發板大多屬于商業產品,并不是專業應用于SDR開發的產品,輔以個人PC設備才能進行一定意義上的SDR設計。

主站蜘蛛池模板: 和政县| 苏尼特左旗| 临朐县| 电白县| 通河县| 南阳市| 朝阳县| 固阳县| 汉寿县| 中方县| 互助| 张家港市| 武冈市| 闸北区| 湘西| 金阳县| 会东县| 白朗县| 阆中市| 遵义市| 南开区| 青河县| 崇左市| 永吉县| 临江市| 永川市| 玉林市| 连城县| 台中县| 界首市| 攀枝花市| 双辽市| 宽甸| 潮安县| 寿阳县| 蓬莱市| 福鼎市| 芦溪县| 麦盖提县| 同江市| 乐至县|