ADI/Xilinx SDR 快速原型制作平臺:功能、優勢以及工具
無線系統的概念與設計實現之間存在巨大的差異。要縮小這種差異通常都要涉及到幾組來自各領域的工程師團隊(比如RF、SW、DSP、HDL和嵌入式Linux?),并且很多情況下項目在開發的早期階段便由于難以協調各設計團隊而偏離了原先計劃。
本系列文章分為四個部分,將討論平臺和工具的進步;這些技術進步允許開發人員快速進行無線系統的仿真與原型制作,同時建立與保持投入生產的可實現路徑。作為實際過程的一個示例,我們將對無線SDR平臺進行原型制作,該平臺可接收并解碼自動相關監視廣播 (ADS-B) 信號,以便我們檢測并匯報附近飛行中的商用飛機的位置、高度和速度。本例中需用到MATLAB?和Simulink,以及集成和內嵌硬件/軟件的技能。硬件平臺將采用ADI/Xilinx?軟件定義無線電 (SDR) 原型制作系統。使用MATLAB和Simulink?后,將執行下列任務:
設計用來解碼ADS-B消息的信號處理算法
仿真接收ADS-B信號的RF接收器
生成C語言代碼和HDL代碼
最終得到一個能夠在適于生產的硬件上實現的可行RF SDR設計,我們將把它帶到當地機場來驗證性能和功能。
該文章系列有四部分,第一部分將討論ADI/Xilinx SDR原型制作系統、該系統的功能和優勢,并簡要描述工具流程。第二部分將回顧自動相關監視廣播 (ADS-B) 信號,并解釋仿真時如何在MATLAB和Simulink中解碼它們的信息。第三部分將討論和演示如何使用環路中硬件 (HIL) 并以目標收發器捕捉信號,并同時在Simulink的主機中進行信號處理以便驗證。第四部分將說明如何通過第二部分開發并在第三部分驗證的算法,并使用MathWorks的HDL編碼器以及嵌入式編碼器生成代碼,然后在生產硬件中進行部署;最后,我們將在機場采用真正的ADS-B信號來操作平臺。
簡介
隨著人們對通信方式和手段的需求呈指數式增長,方便而經濟高效地修改無線電設備也隨之成為一項重要的業務。在這樣的背景下,軟件定義無線電技術最近得到了廣泛的部署,因為這項技術推動通信向著靈活、高性價比、功能更強大的方向發展1。SDR系統的目的是在軟件和可重復編程邏輯中部署盡可能多的調制/解調和數據處理算法,以便通信系統能夠僅通過更新軟件和可重復編程邏輯而輕松進行再配置,并且無需更改硬件平臺。
隨著片上系統 (SoC) 的出現(比如集CPU的靈活性與FPGA的處理能力于一體的Xilinx Zynq.? All Programmable SoC),設計人員終于能夠將SDR系統的數據處理功能和其它處理任務納入單個器件中。數據調制/解調算法等處理密集型任務分流至器件的可編程邏輯,而數據解碼和渲染、系統監控和診斷以及用戶界面等任務延緩至處理單元進行。
同時,無線系統的原型制作數十年來一直是個爭論不休的話題,而最近幾年才剛出現針對FPGA的完整設計流程 — 從模型創建到完整實施 — 這要歸功于像MathWorks的MATLAB和Simulink等建模和仿真工具的革命。無線系統的原型制作正在改變工程師和科學家工作的方式,它將設計任務從實驗室和現場帶到了桌面上2。現在,工程師可以對整個無線系統(比如SDR系統)進行建模,從而可觀察系統的表現,并在現場實際實施之前進行調節。這樣做有很多好處,比如加快系統集成、減少對設備的依賴。此外,完成SDR系統的Simulink模型之后,C語言代碼和HDL代碼可自動生成,然后部署到Zynq SoC上,從而節省時間并避免手動編碼錯誤。將系統模型鏈接到快速原型制作環境可進一步降低風險,因為后者允許SDR系統在實際條件下運作。
該文章系列有四部分,第一部分將討論ADI/Xilinx SDR快速原型制作系統、該系統的功能和優勢,并簡要描述工具流程。文章解釋了ADI RF IC技術和參考設計硬件與軟件如何降低設計技巧,從而使客戶減輕風險,并縮短產品上市時間。
用于SDR的Zynq
當需要執行數據處理、通信和用戶界面等具有不同處理帶寬要求和實時限制的任務組合時,需要用到高級SDR系統。為了實現這樣的系統,所選的硬件平臺必須魯棒且可擴展,同時還需為將來的系統改進和擴張創造條件。Xilinx Zynq-7000 All Programmable SoC滿足這些要求,提供高性能處理系統以及可編程邏輯,如圖1所示3。可編程邏輯配上處理系統便具有了出色的并行處理能力、實時性能、快速計算能力以及連接的多樣性。
?
圖1. Xilinx Zynq SoC功能框圖
Zynq SoC的處理系統包括一個雙核ARM? Cortex?-A9處理器和一個NEON協處理器,以及多個用于加速軟件執行的浮點擴展單元。為了完全發揮系統的能力,可以在雙核ARM處理器上采用嵌入式Linux或實時操作系統。該處理器是自足的,可在不配置可編程邏輯的情況下使用,這點對于軟件開發人員來說很重要,他們可以與設計FPGA結構的硬件開發人員同時進行代碼的開發工作。
在可編程邏輯方面,該器件擁有多達444,000個邏輯單元和2,200個DSP Slice,可提供巨大的處理帶寬,允許Zynq設備應對各種充滿挑戰的信號處理應用。5個高吞吐速率的AMBA?-4 AXI高速互連將可編程邏輯緊密地耦合到處理系統,提供相當于3,000以上引腳的有效帶寬4。
用于SDR的AD9361捷變寬帶RF收發器
近年來,ADI公司將革命性的SDR產品推向了市場,以支持不斷變化的SDR要求和系統架構。在這方面,ADI最重要的產品包括AD9361/AD9364集成式RF捷變收發器。AD9361 (2 × 2)5和AD9364 (1 × 1)6是用于SDR架構的高性能、高度集成的RF收發器IC,適合無線通信基礎設施、防務電子系統、RF測試設備和儀器,以及通用軟件定義無線電平臺等應用。這些器件集RF前端與靈活的混合信號基帶部分為一體,集成頻率合成器,為處理器或FPGA提供可配置數字接口,從而簡化設計導入。這些芯片工作頻率范圍為70 MHz至6 GHz,涵蓋大部分特許執照和免執照頻段,通過對AD9361和AD9364器件編程可改變采樣速率、數字濾波器和抽取參數,使該芯片支持的通道帶寬范圍為低于200 kHz至56 MHz7。圖2顯示了AD9361器件的功能框圖。
?
圖2. AD9361功能框圖
為了幫助客戶縮短產品上市時間并減輕整體開發負擔,ADI公司更進一步,提供的SDR解決方案可用于具有無縫FPGA連接能力的完整生態系統中,為完整的無線電系統設計提供快速原型制作和開發環境。AD-FMCOMMSx-EBZ快速開發和原型制作板屬于高速模擬FMC模塊,集成AD9361或AD9364捷變RF收發器IC或分立式信號鏈,可無縫連接Xilinx FPGA開發平臺生態系統。這些板可完全通過軟件定制,無需更改任何硬件,提供可供下載的Linux驅動程序和裸機軟件驅動程序、原理圖、電路板布局文件和有助于設計的參考材料,可前往ADI的Wiki知識庫獲取。表1總結了不同FMCOMMSx平臺的產品特性。
表1. FMCOMMSx平臺
平臺 : ?AD-FMCOMMS5-EBZ
產品特性: 該SDR快速原型制作板集成兩個AD9361 2 × 2捷變收發器IC,能夠為4個接收器通道和4個發送器通道提供完全同步能力,可創建4 × 4 MIMO系統的任意子系統。支持寬帶70 MHz至6 GHz和2.4 GHz調諧端口。AD-FMCOMMS5-EBZ資源頁面(wiki知識庫):?
平臺 :AD-FMCOMMS4-EBZ
產品特性:該1 × 1 SDR快速原型制作板集成AD9364捷變RF收發器IC,可經軟件配置在2400 MHz至2500 MHz范圍內實現最高RF性能,或者可經軟件配置工作在AD9364的70 MHz至6 GHz完整RF調諧范圍內,以進行系統原型制作和開發。AD-FMCOMMS4-EBZ資源頁面(wiki知識庫): fmcomms4-ebz
平臺 :AD-FMCOMMS3-EBZ
產品特性:該2 × 2型號的SDR快速原型制作板集成AD9361捷變RF收發器IC,支持AD9361的70 MHz至6 GHz全RF調諧范圍。該套件非常適合尋求具有寬調諧能力的統一開發平臺的無線通信系統架構師。AD-FMCOMMS3-EBZ資源頁面(wiki知識庫):
平臺 :AD-FMCOMMS2-EBZ
產品特性:該2 × 2 SDR快速原型制作板集成AD9361捷變RF收發器IC,經調諧可在2400 MHz至2500 MHz范圍內實現最高RF性能。該套件適合尋求最優系統性能,并要求在RF頻譜定義范圍內滿足AD9361數據手冊中規格的工程師使用。AD-FMCOMMS2-EBZ資源頁面(wiki知識庫):?
Zynq SDR快速原型制作平臺
參考設計
ADI公司與FMCOMMSx平臺一同提供完整的Vivado框架,采用Linux和裸機軟件基礎架構,可同時用于原型制作以及最終生產系統中。圖3顯示了ADI支持FMCOMMSx板的Zynq基礎架構。
?
圖3. ADI HDL和軟件基礎架構
該高級框圖說明了ADI參考設計在Xilinx Zynq SoC上是如何劃分的。一路HDMI輸出用于在監視器上顯示Linux界面,鼠標和鍵盤可通過USB 2.0端口連接到系統。ARM Cortex A9處理系統運行ADI公司提供的Ubuntu Linux,其中包括:與ADI公司FMCOMMS硬件接口所需的Linux IIO驅動程序,用于監測和控制的IIO Oscilloscope(示波器)8用戶空間應用程序,支持實時數據采集和通過TCP控制系統的libiio服務器9,在遠程計算機上運行的客戶端,以及整合嵌入式編碼器所生成C語言代碼的可選用戶應用程序,可用于控制器的Simulink模型。
軟件基礎架構
所有ADI Linux驅動程序均基于Linux工業I/O (IIO) 子系統,現已包含在所有主流Linux內核中。IIO Scope是ADI公司開發的一款開源Linux應用程序,運行在Xilinx Zynq中的雙核ARM Cortex-A9的內核上,能夠顯示連接到Xilinx Zynq平臺的ADI FMC卡所獲取的實時數據。這些數據可以在時域中、頻域中或以星座圖的形式顯示。支持以不同的常用文件格式(如逗號分隔值或.mat MATLAB數據文件等)保存所捕獲的數據以供進一步分析。IIO Scope提供一個圖形用戶界面,用于更改或讀取ADI FMC卡的配置。libiio服務器支持實時數據采集、通過傳輸控制協議 (TCP) 控制系統以及運行于遠程計算機上的客戶端10。服務器運行于Linux下的嵌入式目標上,通過TCP管理目標與遠程客戶端之間的實時數據交換。此庫抽取了硬件的低級詳情,提供簡單但完整的編程接口,可用于高級項目。它的模塊化架構、設計良好的API以及內置的網絡功能允許用戶創建應用,而這些應用不僅能運行在IIO設備已連接的系統中,還能運行在通過網絡遠程連接的系統中。它首先針對Linux,不過現在也能通過庫的遠程后端支持Windows。它以C語言寫成,并授權給LGPL,結合了C#、Python和MATLAB的特點。MathWorks IIO客戶端11可以作為系統對象集成到MATLAB和Simulink原生應用程序中。它設計用來配合連接FPGA/SoC平臺(運行ADI Linux發布版)的以太網進行數據交換,可讓MATLAB或Simulink模型執行下列功能:
發送數據流至目標,并從目標接收數據流
控制目標的設置
監控不同的目標參數
MATLAB和Simulink均提供IIO系統對象,具體取決于用戶從MATLAB腳本中對其進行調用,還是將其整合至MATLAB系統模塊中。ADI提供針對FMCOMMS平臺的Linux軟件和HDL基礎架構,配合MathWorks和Xilinx提供的工具后,便是進行SDR應用原型制作的絕佳環境,并且它還包含可隨時投入生產的組件,這些組件可以集成至SDR系統 — 有助于縮短從概念到生產所需的時間并降低成本。
為了幫助客戶快速而輕松地掌握IIO系統對象,我們提供了幾個基于該界面的MATLAB和Simulink示例,比如信標幀接收器12、QPSK發射器和接收器13,以及LTE發送器和接收器14。在這些示例中,FMCOMMSx平臺由IIO系統對象配置,并用作RF前端并無線發送或接收模擬信號。這些信號通過IIO系統對象以數據流的形式發送至目標,或從目標接收。所有其它信號處理均在MATLAB或Simulink中執行。圖4是信標幀接收器示例的屏幕截圖,該圖顯示了IIO系統對象和其它Simulink模塊之間的典型連接。
?
圖4. 信標幀接收器示例的屏幕截圖
MathWorks對Zynq的支持
MathWorks支持基于Zynq的SDR,具體表現在以下四個方面:
1. AD9361 Simulink模型
由于AD9361是一款集成式RF收發器芯片,信號探測和內部工作監控是不太現實的。因此,MathWorks和ADI合作開發了AD9361的SimRF?模型,可對芯片的工作進行仿真,以便客戶能夠真正了解到這其中發生了什么,并知曉在現實中難以重現的不同測試條件下芯片性能如何。SimRF使用相同的基帶或電路包絡模塊 — 比如放大器、混頻器和S-參數模塊 — 提供RF系統設計中的組件庫和仿真引擎。它是適合AD9361 RF收發器建模的有效工具。系統級AD9361捷變RF收發器模型(如圖5所示)精確重現了AD9361的功能,并以MathWorks硬件支持包的形式向用戶提供15。
SimRF模型已在實驗室中經過了功率頻譜測量驗證。不同頻率和功率水平下的收發器噪聲和非線性特性也已識別。然后,這些模型設計為生成相同的特性,并在設計范圍內得到驗證。
采用AD9361收發器SimRF模型后,用戶可以:
預測RF缺陷對測試信號的影響
使用參考音和LTE信號
生成或導入測試向量,并評估非線性、噪聲、增益和相位不平衡、頻譜泄露以及其它RF發送器和接收器缺陷導致的影響
加入干擾信號并評估時域或頻域結果
?
?
圖5. AD9361捷變RF接收器的MathWorks SimRF模型
2. 通信和DSP系統工具箱功能
MathWorks產品 — 比如Communications System Tool-box?16、Signal Processing Toolbox?17、DSP System Toolbox?18和SimRF19 — 具有業界標準算法和應用程序,可進行SDR系統的系統性分析、設計與調諧。所有這些工具均提供了創建高保真SDR模型的途徑,可在進行真實物理部署前用來驗證通信系統的表現和性能。
3. 用于Zynq的Simulink工作流程
MathWorks的MATLAB和Simulink是用于多領域仿真和基于模型設計的環境,非常適合仿真具有通信算法的SDR系統。通信算法調節增益、頻率偏移、時序偏移和其它性能變量,并經常能更好地同步發送器和接收器系統。利用仿真評估通信算法可以有效地確定SDR設計是否合適,判斷其合適后再進行昂貴的硬件測試,從而減少算法開發的時間和成本。圖6給出了設計通信算法的有效工作流程,步驟如下:
使用基于模型的設計環境提供的庫構建精確的SDR模型
仿真系統行為以驗證系統表現是否符合預期
產生C代碼和HDL進行實時測試和實施
利用原型制作硬件測試通信算法
在原型制作硬件上進行仿真和測試后,如果SDR系統的性能證明是令人滿意的,那么在最終生產系統上實施與部署系統也將是安全的。
?
圖6. 通信算法設計的工作流程
4. Simulink平臺集成至Zynq SDR套件
一旦SDR系統使用MathWorks的Embedded Coder?20和HDL Coder?21等工具完成了全面的驗證,用戶就可以利用嵌入式編碼器和VHDL或使用HDL編碼器的Verilog來生成C語言代碼,然后將代碼部署到原型制作硬件上進行測試,之后便可進入最終生產系統。此時應指定軟件和硬件實施要求,如定點和時序行為。自動生成代碼有助于縮短從概念到實際系統實施所需的時間,消除手動編程錯誤,確保實際SDR實施與模型相符。圖7給出了在Simulink中進行SDR系統建模并將其轉移到基于Xilinx Zynq SoC的最終生產系統所需的實際步驟。
?
圖7. 從仿真到生產的過程
第一步是在Simulink中對SDR系統進行建模和仿真。在這一階段,通信算法被劃分為在軟件中實現的模塊和在可編程邏輯中實現的模塊。劃分和仿真完成后,利用嵌入式編碼器和HDL編碼器將SDR模型轉換為C語言代碼和HDL代碼。基于Zynq的原型制作系統用來驗證通信算法的性能,并且幫助進一步調諧SDR模型,然后轉移到實際生產階段。在生產階段,將自動生成的C代碼和HDL集成到復雜的生產系統框架中。此工作流程確保通信算法在到達生產階段之前經過全面驗證和測試,使得系統魯棒性具有高可信度。Zynq針對嵌入式編碼器和HDL編碼器推出的硬件支持包提供集成式硬件/軟件設計、仿真和驗證框架,將基于模型的設計集成至工作流程中,簡化了Zynq平臺的編程,并實現了快速設計迭代周期,同時有助于盡早檢測和糾正設計以及規格錯誤22。
結論
本文說明了現代SDR系統的要求和趨勢,以及為滿足這些要求和幫助實現更高性能SDR解決方案而由MathWorks、Xilinx和ADI公司帶給市場的工具和系統。通過將MathWorks基于模型的設計和自動生成代碼工具與強大的Xilinx Zynq SoC和ADI集成式RF收發器結合,SDR系統設計、驗證、測試和實現可以比以前更有效率,進而提高無線電系統性能并縮短產品上市時間。ADI的FMCOMMS平臺搭配Avnet Zynq-7000 AP SoC便可提供強大的原型制作環境,供采用MathWorks MATLAB和Simulink的SDR算法設計使用。FMCOMMS平臺帶有一組開源參考設計,旨在為所有希望評估該系統的人士提供一個起點,并且幫助啟動任何新SDR項目。
在本系列的下一篇文章中,我們將進一步深入探討SDR設計過程,回顧自動相關監視廣播 (ADS-B) 信號特性,并解釋如何在MATLAB/Simulink仿真中解碼這些信息。
有關本文中所涉及話題、文檔、視頻和參考設計的更多信息,請查看"參考文獻"部分。
參考文獻
1“什么是軟件定義無線電?”無線創新論壇。
2?基于模型的設計。MathWorks。
3?Zynq-7000 All Programmable SoC。Xilinx。
4?Hill, Tom。“借助MATLAB將電機驅動遷移到Zynq SoC設計中。” Xcell雜志,第87期,2014年第二季度。
5?AD9361。
6?AD9364。
7?“ADI的軟件定義無線電解決方案”。ADI公司。
8?IIO示波器。ADI公司Wiki知識庫。
9?Simulink Libiio。ADI公司Wiki知識庫。
10?什么是Libiio?ADI公司Wiki知識庫。
11?IIO系統對象。ADI公司Wiki知識庫。
12?信標幀接收器示例。ADI公司Wiki知識庫。
13?QPSK發送器和接收器示例。ADI公司Wiki知識庫。
14?LTE發送器和接收器示例。ADI公司。
15?AD9361。
16?“Communications System Toolbox”。MathWorks公司。
17?“Signal Processing Toolbox”。MathWorks公司。
18?“DSP System Toolbox”。MathWorks公司。
19?SimRF。MathWorks公司。
20?“HDL Coder”。MathWorks公司。
21?“Embedded Coder”。MathWorks公司。
22?“Simulink支持Xilinx Zynq”。MathWorks公司。
MATLAB和Simulink是MathWorks公司的注冊商標。
作者:
Di Pu 是ADI公司的系統建模應用工程師,支持軟件定義無線電平臺和系統的設計與開發。她與MathWorks密切合作,共同解決最終客戶的難題。加入ADI公司以前,她曾于2007年獲得中國南京理工大學 (NJUST) 電氣工程本科學位,并在2009和2013年獲得美國馬薩諸塞州伍斯特理工學院 (WPI) 電氣工程碩士和博士學位。她是2013年WPI博士論文西格瑪西研究獎獲得者。
Andrei Cozma 是ADI公司工程設計經理,負責支持系統級參考設計的設計與開發。他擁有工業自動化與信息技術學士學位及電子與電信博士學位。他參與了電機控制、工業自動化、軟件定義無線電和電信等不同行業領域的項目設計與開發。
Tom Hill,Xilinx公司系統發生器產品經理Tom Hill擁有EDA行業超過18年的從業經歷。Hill監管Xilinx DSP目標設計平臺有關的所有產品、戰略和企業營銷活動。Hill最近在AccelChip公司擔任技術營銷經理,負責DSP應用的產品指導和高級設計方法與工具應用。加入AccelChip以前,Hill曾經擔任多款FPGA和ASIC頻率合成工具的產品經理、技術營銷經理、技術營銷工程師和現場應用工程師。Hill的職業生涯始于Allen-Bradley和Lockheed公司,擔任硬件和ASIC設計工程師。Hill擁有克里夫蘭州立大學電氣工程學士學位。
評論
查看更多