一種 USRP 適合您?

綜覽

如果您打算開發無線應用,並且需要選擇 Software Defined Radio (SDR),您可能會有一些疑問,例如:

我該從何處著手?
哪一種通用軟體無線電週邊設備 (USRP) 才適合我?
我該使用哪一種軟體開發工具?

此技術文章說明不同 USRP 型號的主要差別,同時有助於您選出適合的無線電。 

內容

Software Defined Radio 簡介

Software Defined Radio 是一種無線裝置,常用於無線研究原型製作以及已部署的應用。SDR 常用於通訊、新一代雷達、電子作戰、空中傳輸 (OTA) 測試,以及 5G 研究。大部分 SDR 常見的硬體架構包含通用處理器 (GPP)、FPGA,以及不同效能的 RF 前端。

USRP 裝置圖

圖 1.SDR 的一般硬體架構

在開發主機應用程式碼時,工程師會使用以下這些常見的工具:

  • LabVIEW
  • C/C++ 或 Python 搭配開放原始碼的硬體驅動程式
  • 開放原始碼的 SDR 架構,例如 Redhawk 或 GNU Radio
  • MathWorks MATLAB® 軟體

您可根據所用的軟體開發工具和作業系統,判斷哪一種無線電適合您的應用。


許多應用皆需要 FPGA 裝置所提供的訊號處理硬體加速功能。有多種 USRP 提供此功能,也有許多不同的 FPGA 開發方式 (稍後會深入探討)。

圖 2 概要說明了 USRP 上可用於軟體與 FPGA 開發的常見工具流程。

圖 2:適用於 SDR 的軟體與 FPGA 選擇

NI and Ettus Research USRP 是 Software Defined Radio 產品系列,其設計可滿足各式各樣的原型製作與部署需求。現在來探索各種軟硬體相關考量,以便您能選出適合的無線電。

 

 

硬體選項

選擇適合您應用的 USRP 裝置時,建議可以先思考有關訊號參數、尺寸、重量、功率、成本 (SWaP-C)、效能,以及環境應用等需求的問題。問題 1:我需要什麼樣的中心頻率與頻寬?

這個問題不難,但下一個問題比較深入:我要如何規劃將訊號資料移到裝置上或從裝置移除?

這個問題突顯出資料介面的重要性。例如,USRP-290x 型號透過 USB 與主機連接,並且受限於該介面的最大持續頻寬;而 NI Ettus USRP X410 則具備 2 個雙 100 GbE 介面,能夠同時傳輸更多的資料。

若要深入了解 USRP 介面頻寬相關考量要點,請參閱 Ettus Research 知識庫有關 USRP 頻寬與取樣率的文章。

大部分 USRP 裝置的最大頻率上限為 6 GHz,有一些會更高;然而,NI Ettus USRP X410 的運作頻率可達 7 GHz 頻帶。根據所用的類比晶片組,有些無線電在較低的頻率端會降低至 75 MHz,有些則會降至跟 DC 一樣低。如需每個型號的分析,請參閱圖 15。

NI Ettus USRP X410 正面圖

圖 3: Ettus USRP X410 是以 RFSOC 為基礎架構的高頻率寬頻 SDR,其中心頻率高達 7.2 GHz。

成本效能之間取捨

在選擇 USRP 裝置時,有些方面需要權衡取捨,尤其是成本和效能方面。 如果您需要價格低廉的無線電,同時沒有進階 FPGA 或寬頻寬的需求,建議您選擇 NI USRP 290x 或 Ettus Research B200mini。如果您需要最寬的頻寬以及高達 7.2 GHz 的頻率,則最適合您的選擇可能是 NI Ettus USRP X410。 上述兩者僅為舉例說明,此外仍有其他許多選擇。 以下的圖 15 提供所有型號的完整分析。

USRP B200 與 USRP B200mini 的上方圖

圖 4:USRP B200 與 USRP B200mini 低 SWaP-C SDR

獨立主機連線的 SDR 選項

USRP 的設計可用作電腦週邊,並將軟體連線至電磁頻譜。自首款 USRP 推出後,相關應用便已改變,許多應用皆需要內建嵌入式處理器。如果您的應用會讓 SDR 從集中控制系統實際分散或是獨立部署,便可能需要這種獨立式配置。而如果獨立式配置是主要需求,您便需要確定 Xilinx Zynq 多處理器系統單晶片 (MPSOC) 或 RF 系統單晶片 (RFSOC) 是否夠用,或者是否需要強大的內建 Intel X86 處理器。表 1 提供各種型號及其內建處理器的分析;如需進一步的細節,請參閱 USRP 規格文件。

無線電型號內建處理器
USRP N320、USRP N321、USRP N310Xilinx Zynq 7100 MPSOC
USRP E31XXilinx Zynq 7020 MPSOC
USRP E320Xilinx Zynq 7045 MPSOC
NI Ettus USRP X410Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP-2974Intel Core i7 6822EQ (2 GHz 四核心) 

 

表 1:可獨立運作且內建處理器的 USRP 型號



NI USRP 2974 獨立式 SDR 正面圖

圖 5: 內建 Intel Core i7 的 USRP 2974 獨立式 SDR

裝置強化,因應嚴苛環境

大多數 USRP 的使用場所都是在實驗室內,但某些應用會需要在戶外或更嚴苛的環境進行作業。如果您的應用需要更廣的作業溫度範圍,或是通風散熱的方式無法滿足應用需求,您可能需要考慮選用 Ettus Research 品牌的嵌入式系列。此外,Ettus Research 品牌也提供多種選擇讓您設定 USRP B205mini,利用具有低 SWaP 作業特性的工業級鋁製機殼組件,即可擁有更廣的作業溫度範圍。 或者,如果您有極端的環境作業需求,我們也很樂意向您推薦 NI 經驗豐富的裝置強化合作夥伴;如有這方面的需求,請與我們聯絡。

Ettus Research 堅固耐用的 USRP E320

圖 6: 嵌入式系列,USRP E320

通道同步功能

許多應用需要多重輸入/多重輸出 (MIMO) 配置,以及不同程度的同步化。某些 MIMO 系統只需要 ADC 和 DAC 有共享時脈即可,其他系統則需要將每個通道鎖定為常用時脈,同時還需要局部震盪器來進行完整的相位同調作業。

常見的 MIMO 應用為具有空間多工的通訊。由於這類應用只需要時脈同步化,而大部分具有外部 10 MHz 參考時脈的 USRP 已足夠應付。 這類系統的其中一例是由布里斯托大學與隆德大學所建立,這兩所大學利用 SDR 架構的 Massive MIMO 系統,打破了無線頻譜效率的世界紀錄。 在此應用中所用到的 Massive MIMO 原型驗證系統,是由 NI USRP Software Defined Radio 裝置與內建 FPGA 所組成。

USRP N320 與 N321 的正面圖

圖 7:內建 LO 分配介面的 USRP N320 與 N321

如果需要完整的相位同調作業,您有兩種選擇可以考慮。如果您需要最多 4 個僅限接收作業的通道,則具備 2 個 TwinRx 子板的 Ettus Research USRP X310 可設定為共享 LO,並且以相位同調的方式作業。如果需要的通道數超過 4 個,建議考慮 Ettus Research USRP N320 與 N321 (如圖 7 所示)。USRP N321 內建 LO 分配硬體,可同時進行最高 128 x 128 相位同調作業:圖 8 顯示 32 x 32 設定範例。

顯示使用 Ettus Research USRP N321 進行相位同調作業的圖圖 8:USRP N320 與 N321 Multichannel 多通道相位同調系統

分散無線電同步化

在某些應用中,需要將分散各處的無線電進行同步化。在這種情況下,要進行完整的相位同調作業就相當不容易;然而,相關人員利用 GPS 式的同步化作業,透過 GPS 授時震盪器 (GPSDO) 來獲得穩定的頻率和相位。多數 USRP 型號均內建原廠的 GPSDO。如需深入了解,請參閱「NI USRP-293x Software Defined Radio 的全域同步化和時脈授時功能」

Ettus Research USRP X310 正面圖

圖 9:內建 GPS 授時震盪器的 USRP X310

訊號處理與 FPGA 的相關考量要點

某些應用需要處理功能,而最佳選擇就是內建的 FPGA。這些應用通常擁有大範圍的訊號頻寬,或是低/精確潛時需求。在這種情況下,選擇無線電的考量重點就是程式化 FPGA 的能力。多數 USB 和成本較低的 USRP 型號,例如 USRP B200mini 或 N210,均配備較小型的 FPGA 裝置,因此沒有額外空間可加入使用者程式碼。而大部分高階無線電均配備 Kintex 7 級以上的裝置,甚至有配備 Xilinx Zynq Ultrascale+ RFSOC 且最先進的 NI Ettus USRP X410。採用 Xilinx Zynq 架構的裝置會包含額外的核心,例如內建 SD-FEC、多重 Arm 處理器,以及內建的 ADC 與 DAC。

USRP 型號內建 FPGA
USRP N320、USRP N321、USRP N310Xilinx Zynq 7100 MPSOC
USRP E31XXilinx Zynq 7020 MPSOC
USRP E320Xilinx Zynq 7045 MPSOC
NI Ettus USRP X410Xilinx Zynq Ultrascale+ RFSOC ZU28DR
USRP 2974、USRP X310Xilinx Kintex 7 410T

 

表 2: 具備 FPGA 功能的 USRP 比較表

具備 FPGA 功能的 USRP 裝置

圖 10:NI FPGA 個產品的 FPGA 資源比較

 

軟體選項

​程式設計功能是 SDR 的主要功能,能夠讓使用者將無線電週邊轉換成先進的無線系統。USRP 是市面上最開放且多功能的 SDR,當中提供各式各樣的軟體開發工具,讓工程師能同時在主機和 FPGA 上建立系統。

主機程式設計相關考量要點

如上面的圖 2 所示,有多種方式可以對 SDR 架構的系統主機進行程式設計。

使用 NI-USRP 驅動程式在 LabVIEW 上進行程式設計

LabVIEW 是圖形化資料流程式設計環境,非常適合用來設計與執行通訊演算法。就最基本的層面而言,LabVIEW 使用 NI-USRP 驅動程式來指定 USRP 硬體配置,以及收發隨時可供主機端訊號處理且格式正確的基頻 I/Q 資料。

​如果您偏好 LabVIEW 開發環境,請注意,LabVIEW 確實有提供部分的 Linux 作業系統支援,但主要是採用 Microsoft Windows 架構的工具。此外,部分 Ettus Research 品牌的 USRP 型號與配置可能不受支援,請參閱圖 15。

圖 11: LabVIEW 搭配 NI-USRP 驅動程式 API 的程式方塊圖畫面

使用開放原始碼工作流程進行程式設計:USRP 硬體驅動程式 (UHD) 和 GNU Radio

多數 SDR 使用者偏好使用以 C/C++ 和 Python 為架構的文字式開放原始碼工具流程,來程式化 USRP 硬體。所有的 NI 與 Ettus Research USRP 型號均支援 USRP 硬體驅動程式 (UHD),因此能輕鬆與開放原始碼社群開發工具整合,例如 GNU Radio。

GNU Radio 是專門為 SDR 開發人員所建構的開放原始碼工具。USRP 並非唯一支援 GNU Radio 的無線電,但卻是最受歡迎且通過最多測試的無線電。如要深入了解 GNU Radio,請前往 gnuradio.org;如要查看 GNU Radio 所有現有社群共享的 IP,請前往 cgran.org

SDR 開發人員專用的開放原始碼軟體螢幕截圖

圖 12:GNU Radio Companion 流程圖

以 MATLAB 進行程式設計

如果您偏好使用 MATLAB 工具來進行程式設計,則有數種 USRP 型號支援 MathWorks Communications Toolbox™。支援的型號包含 B200、B200mini、X300、N200 以及 N300 系列。此外,工程師也可以使用 MATLAB 指令碼節點,直接將 MATLAB 程式碼嵌入 LabVIEW。

FPGA 程式設計相關考量要點

多數 USRP 均具備大型 FPGA,當中擁有充足的可用容量,可供使用者針對其應用來嵌入行內訊號處理功能。如同硬體介紹部分所述,某些 USRP 具備 Xilinx Zynq SOC 裝置,有些則搭載傳統的光纖 FPGA,例如 Kintex 7。在 USRP 存取 FPGA 的方式有兩種:LabVIEW FPGA 以及 RF 網路晶片 (RFNoC) 架構。

有別於多數 FPGA 開發機板或 COTS FPGA 機板,USRP 採用常見的 FPGA 架構,可提供較高級的抽象化功能。如此,在從最基本的 FPGA 機板支援組合建立 FPGA 式系統時,可減少相關流程的複雜性。

LabVIEW FPGA

LabVIEW FPGA 是 LabVIEW 的擴充外掛程式,可供使用者在 NI USRP RIO 裝置上以圖形化方式進行 FPGA 的程式設計。 雖然使用者必須熟悉諸如定點數學與時脈邏輯等 FPGA 概念,但 LabVIEW 提供了扼要的硬體與資料介面,並且簡化了暫存器設定與資料遷移作業。LabVIEW FPGA 的其中一項優勢,就是能透過一致的開發工具鏈,同時程式化主機和 FPGA。

您有想善加運用的舊款 IP 嗎?LabVIEW FPGA 可以透過 Component Level IP (CLIP) 節點匯入外部 VHDL 或 Verilog,並且允許匯入非 LabVIEW IP。此外,LabVIEW 還提供 Xilinx Vivado 專案匯出功能,可讓專業使用者直接在 Vivado 工具中進行作業。

​如果您選擇使用 LabVIEW FPGA 做為主機程式設計的工具,請注意,此工具僅支援 Windows 架構的作業系統。 多數 Ettus Research 裝置 (例如 USRP N300 與 USRP E300 系列) 並不受 LabVIEW 或 LabVIEW FPGA 支援。如需完整清單,請參閱圖 15。

FPGA 程式方塊圖的 LabVIEW 螢幕截圖

圖 13:簡單的 LabVIEW FPGA 程式方塊圖

RF 網路晶片 (RFNoC) 架構

如果是開放原始碼 USRP 使用者,建議透過 RFNoC 架構的方式來程式化 FPGA。 RFNoC 與 LabVIEW FPGA 同樣屬於資料介面與指令抽象化架構,能簡化將 IP 加入 USRP 的作業,而不需要從頭重建整個 FPGA 機板支援組合。其運作方式可從名稱看出一二,也就是資料會以壓縮標頭網路封裝的形式,從無線電流經 FPGA。RFNoC 的核心架構是交錯器介面,可讓使用者直接將新的 IP 插入交錯器,再將資料路由至其他 IP 區塊,或是與主機來回路由資料。此網路交錯器設計免除了與主機之間來回傳送資料與指令的繁複作業。

如果作業環境是 Vivado,並且偏好使用 RFNoC 來程式化 USRP 的 FPGA,建議可以考慮 USRP X300 系列、USRP E300 系列、USRP N300,以及 NI Ettus USRP X410。 深入了解如何使用 RFNoC、UHD 與 USRP N300 裝置來製作多通道無線通訊系統的原型。 

RFNoC 工作流程圖

圖 14: 整合 GNU Radio 的 RFNoC 概念程式方塊圖


圖 15:NI 與 Ettus Research USRP 型號矩陣

結論

SDR 是功能強大的工具,非常適合用於無線研究、設計、原型製作與部署。由於產品選擇眾多,因此需要謹慎考量諸多因素,才能選出適合您應用的無線電。然而,只要審慎評估本技術文章所述的各種軟硬體因素,您就一定能使用到市面上最受歡迎的開放式 SDR。

後續步驟