利用GNU Radio開發工具包,可快速且容易地模擬及實現軟體定義無線電(SDR)。由於它開放原始碼,用戶可以分享各自的訊號處理模組以幫助彼此加快訊號處理演算法之研究。
GNU Radio可在一個通用中央處理器上運行,要進行真實的SDR應用時,電腦須連接到一個用於接收和發送射頻(RF)數據的無線射頻設備。這在GNU Radio環境中可以透過無線射頻設備之接收器和訊號源模組來實現。要傳送的數據是在基頻(Baseband)被處理,所以無線射頻設備的目的是在射頻和基頻間執行轉換工作,換言之,將接收到的射頻訊號轉換到基頻數據,或將基頻數據轉換到射頻發送。典型的SDR開發配置如圖1所示。
|
圖1 典型的軟體定義無線電配置 |
在一個標準的GNU Radio應用程序中,I和Q數據被直接傳遞於電腦與無線射頻設備之間。在這種應用程序中,載板(Carrier Board)僅用於配置無線電設備設定,負責電腦和無線電設備(圖2)之間的數據傳輸。在此配置下,所有的運算處理皆在電腦中完成。對於一個簡單及低頻寬的應用而言,因為所有的處理代碼均在電腦上運行,這種做法可快速實施和迅速配置。
|
圖2 標準GNU Radio的應用 |
精確掌控I/Q資料流
然而,要讓應用程序能流暢運行,開發人員必須確保電腦有足夠的處理能力執行即時(Real Time)運算。此外,在無線射頻設備與電腦間的通訊網路必須能夠提供應用程序所需要的高傳輸率。例如當無線射頻設備以30.72MHz依序地以12位元精度進行I和Q訊號取樣,則各方向上的射頻前端數據量須高於368.64Mbit/s。此時,電腦及周邊的無線電間的物理網路,須有足夠的頻寬來發送內容header訊息的數據量。
對於這個數據傳輸速率的要求,即使是單一輸入單一輸出(SISO)配置的數據傳輸,也無法透過第二代通用序列匯流排(USB 2.0)裝置處理。相較之下,具有1Gbit/s全雙工帶寬的超高速乙太網路(GbE)的聯絡網路,可以處理2×2多重輸入多重輸出(MIMO)配置所要求的數據傳輸量。另外,對於處理較多數目的射頻前端或更高的取樣頻率而言,具有如PCIe此種更高速頻寬的物理網路是必要的。
在標準的SDR架構下,所需要的中央處理器即時運算處理能力和物理網路頻寬,會隨著射頻前端的數量而線性地增加。這是由於須要在處理器內依序地完成程序處理,且將處理完的數據僅透過一個物理網路來傳輸所造成。
FPGA運算處理 減輕電腦運算負載
若載板具備可編程和高度平行運算處理的現場可編程閘陣列(FPGA)晶片時,部分通訊演算法的處理可從在電腦內的GNU Radio模型移至載板上的FPGA中。但電腦和無線電之間傳輸原始I和Q數據流將比它所攜帶的有用訊息需要更多的頻寬,且當為了提高傳輸的可靠性發送冗餘訊息至不同的射頻前端時,頻寬的需求將更多。在這種情況下,部分的物理網路頻寬被浪費了,而且不必要的冗餘訊息也增加了頻寬需求。
FPGA晶片的設計能做到即時平行訊號處理,且包含一些邏輯運算資源,使FPGA作用在特定目標頻率。與常規必須在更高的頻率上運行以便處理更多取樣的中央處理器(CPU)相比,FPGA可以複製其當前的演算法於未使用的邏輯資源,在較低的工作頻率下透過平行運算處理來增加其處理能力。只要具有足夠資源,FPGA能完成更多射頻前端數據處理需求。
當FPGA晶片用於訊號處理,GNU Radio可只傳送有用的訊息給載板。該載板的FPGA將產生所需的MIMO的IQ波形,並將之發送到所有的射頻前端(圖3)。
|
圖3 FPGA訊號處理流程 |
在此配置中,因為一些訊號處理已被從GNU Radio轉移到FPGA,物理網路的傳輸速率要求不再隨著射頻前端的數量線性地增加。只傳輸有用的數據,且由FPGA演算法處理多個無線電訊號。此外,SDR的部分演算法改由FPGA處理,因此這種配置可減少電腦的運算負載。
有利SDR推展 GNU Radio受關注
因為GNU Radio環境使得SDR演算法能快速開發,因此當對於頻寬、處理能力及延遲等要求較小時,直接傳輸I和Q訊號流至射頻前端這種標準GNU Radio的應用程序,是可行的做法。然而,多射頻前端應用程序類型中,因為電腦和載板間的物理網路將成為一個瓶頸,因此不適合使用傳統的做法,而須使用載板上的FPGA進行訊號處理以解決頻寬的問題。
(本文作者任職於思渤)