無線通信將在多種新興技術(shù)中扮演重要角色,例如自動(dòng)駕駛汽車車隊(duì),以及連接數(shù)百萬工業(yè)傳感器的異構(gòu)網(wǎng)絡(luò)。此類應(yīng)用環(huán)境需要用到即時(shí)調(diào)整調(diào)制方案、頻帶和系統(tǒng)協(xié)議的可重配置軟件無線電 (SDR)。通過在全面驗(yàn)證的系統(tǒng)級模塊 (SOM) 中緊密集成關(guān)鍵 RF 信號路徑和高速可編程邏輯,安富利的 PicoZed SDR 能夠在一副撲克牌大小的設(shè)備中提供靈活的軟件無線電技術(shù),實(shí)現(xiàn) 70MHz-6.0GHz 頻率范圍內(nèi)的捷變頻、寬頻帶 2x2 接收和發(fā)送路徑,以滿足不同固定和移動(dòng) SDR 應(yīng)用的需求。
PicoZed SDR 將 Analog Devices AD9361 集成式 RF Agile TransceiverTM 與賽靈思 Z-7035 Zynq?-7000 All Programmable SoC 相結(jié)合。[1]這種架構(gòu)理想適用于復(fù)雜應(yīng)用的軟硬件混合實(shí)施方案,例如數(shù)字接收器,其中的數(shù)字前端(物理層)在可編程邏輯中實(shí)現(xiàn),而上面的協(xié)議層則運(yùn)行于雙 ARM? CortexTM-A9 處理器的軟件中。讓我們看一看整個(gè)開發(fā)過程中 PicoZedSDR 的軟件相關(guān)特性。
利用PICOZED SDR 環(huán)內(nèi)無線
快速進(jìn)行概念驗(yàn)證
要想充分發(fā)揮 PicoZed SDR 的潛力,需要采用穩(wěn)健可靠的多域仿真環(huán)境來對從 RF 模擬電子到基帶數(shù)字算法的整個(gè)信號鏈進(jìn)行建模。這是 MathWorks 公司基于模型的設(shè)計(jì)方法所固有的價(jià)值,系統(tǒng)模型居于開發(fā)流程的中間環(huán)節(jié),整個(gè)過程涵蓋設(shè)計(jì)的需求定義、代碼生成、實(shí)現(xiàn)和測試等。安富利攜手 Analog Devices 和 MathWorks 合作,從最初的原型設(shè)計(jì)階段開始,在設(shè)計(jì)過程從各個(gè)方面為 PicoZed SDR 開發(fā)支持架構(gòu)。[2]
面對縮短開發(fā)周期的持續(xù)壓力,工程師需要探尋合適的解決方案以便在可靠的硬件上進(jìn)行快速、精確的概念驗(yàn)證,從而演示產(chǎn)品在“真實(shí)世界”條件下的可行性。MathWorks 使用名為 System objectsTM的 MATLAB? 軟件架構(gòu)為基于賽靈思 Zynq 的無線電創(chuàng)建程序支持包,該支持包能夠?qū)⒆鳛?RF 前端的 PicoZed SDR 用來構(gòu)建開箱即用的 SDR 設(shè)計(jì)原型。System objects 軟件架構(gòu)專門針對用于處理大數(shù)據(jù)流的迭代計(jì)算而優(yōu)化,能夠在環(huán)內(nèi)無線配置中自動(dòng)實(shí)現(xiàn) PicoZed SDR 與 MATLAB 和 Simulink? 環(huán)境之間的流數(shù)據(jù)(圖 1)。類似于以對象為中心的編程概念,System objects 也是通過構(gòu)造函數(shù)調(diào)用類名稱的方式來創(chuàng)建,可采用 MATLAB 代碼或者用作Simulink 模塊。System object 實(shí)例化后,可調(diào)用各種方法在仿真過程中通過 System object發(fā)送流數(shù)據(jù)。MathWorks 提供的針對賽靈思Zynq 無線電的 Communications System ToolboxTM支持包,含有針對 PicoZed SDR 接收器和發(fā)送器預(yù)定義的類別,每個(gè)類別包含針對 AD9361 的可調(diào)節(jié)配置屬性,例如 RF 中心頻率和采樣速率。圖 2 中的代碼實(shí)例可用來創(chuàng)建一個(gè) PicoZed SDR 接收器System object,以接收單通道上的數(shù)據(jù),AD9361 本地振蕩器頻率設(shè)定為 2.5GHz,基帶采樣速率為 100Msps。使用日志保存獲取的數(shù)據(jù)。
圖 1 - 利用 System object 實(shí)現(xiàn)的 PicoZed SDR 流數(shù)據(jù)
圖 2 - PicoZed SDR 接收器 MATLAB System object
LIBIIO 庫
Analog Devices 開發(fā)了 Libiio 庫 [3, 4],可簡化用于連接 Linux Industrial I/O (IIO) 器件(例如 PicoZed SDR SOM 上的 AD9361)的軟件的開發(fā)工作。開源(GNU Lesser General Public License V2.1) 庫抽象出硬件的低層細(xì)節(jié),并提供一個(gè)可用于高級項(xiàng)目的簡單但完整的編程接口。
該庫由一個(gè)高級應(yīng)用編程接口和一套后端組成,如圖 3 所示。
圖 3 - Libiio API 和后端
您可以使用 Libiio 在項(xiàng)目原型設(shè)計(jì)階段與 PicoZED SDR進(jìn)行接口連接,以便向或從 MATLAB、Simulink 或GNURadio 等工具的模型發(fā)送或接收樣本流。
本地后端與 Linux 內(nèi)核通過內(nèi)核的 sysfs 虛擬文件系統(tǒng)進(jìn)行接口連接。這個(gè)后端具有 C、C++ 和 Python 綁定,用以支持運(yùn)行于 PicoZED SDR 上的遠(yuǎn)程部署應(yīng)用程序。
網(wǎng)絡(luò)后端通過網(wǎng)絡(luò)鏈路與 IIO Daemon (iiod) 服務(wù)器進(jìn)行接口連接。網(wǎng)絡(luò)后端支持多種操作系統(tǒng)(Linux、OS X、Windows)以在運(yùn)行 MATLAB 和 Simulink [5]、GNURadio [6] 或 IIO Oscilloscope [7]等應(yīng)用程序的更強(qiáng)大主機(jī)平臺上進(jìn)行基于 GUI 的遠(yuǎn)程調(diào)試。
用戶需要使用 Libiio 在項(xiàng)目的原型設(shè)計(jì)階段與 PicoZED SDR 進(jìn)行接口連接,以向/從 MATLAB、Simulink 或 GNURadio 等工具的模型發(fā)送或接收樣本流,這些工具可以建模物理層((QPSK、QAM、OFDM 等)或整個(gè)媒體訪問控制器 (MAC)。Libiio 支持中等數(shù)據(jù)速率(約 8Msps)下的流傳輸(不丟失樣本),以及最大數(shù)據(jù)速率(61.44 Msps)下的突發(fā)模式(獲得樣本突發(fā)傳輸流(高達(dá) 1M 左右的樣本),會(huì)在突發(fā)流之間丟失數(shù)據(jù))。 通常,當(dāng)進(jìn)行 PHY 開發(fā)時(shí)應(yīng)使用速率較低的數(shù)據(jù)流,然后,利用突發(fā)模式在生成 HDL/C 代碼之前快速驗(yàn)證設(shè)計(jì)。
利用針對 PICOZED SDR 的軟硬件協(xié)同設(shè)計(jì)進(jìn)行系統(tǒng)集成
在使用 PicoZed SDR 環(huán)內(nèi)無線完全驗(yàn)證了算法模型之后,接下來是生成 HDL/C 代碼并將 IP 核打包,以集成到更大的系統(tǒng)。例如,在 MATLAB 和Simulink 中建模的無線接收器子系統(tǒng)可能被指定用于點(diǎn)對點(diǎn)無線電鏈路,以從安裝在 PicoZed SDR 載卡上的安富利攝像機(jī)模塊傳輸實(shí)時(shí)視頻。
MathWorks HDL CoderTM 中的軟硬件協(xié)同設(shè)計(jì)流程使用戶可以探索針對 Zynq SoC 的軟件與硬件之間的最佳設(shè)計(jì)分區(qū)(圖 4)。針對可編程邏輯的部分可自動(dòng)封裝為 IP 核,包括硬件接口組件,例如 ARM AMBA? AXI4 或 AXI4-Lite 接口訪問寄存器,AXI4 或 AXI4-Lite 接口,AXI4-Stream 視頻接口,以及外部端口。MathWorks HDL Workflow AdvisorIP 核生成流程使用戶可以將生成的 IP 核插入賽靈思 Vivado? 集成設(shè)計(jì)環(huán)境中的預(yù)定義嵌入式系統(tǒng)項(xiàng)目。[8] HDL Workflow Advisor 包含 Vivado IDE 將用戶設(shè)計(jì)部署到 SoC 平臺所需的所有元素,除了用戶生成的自定義 IP 核和嵌入式軟件。
圖 4– MathWorks 軟硬件協(xié)同設(shè)計(jì)流程
如果用戶有 MathWorks Embedded Coder? 許可證,就可以自動(dòng)生成軟件接口模型,從中生成嵌入式 C/C++ 代碼,并在 Zynq SoC 中 ARM 處理器上的 Linux 內(nèi)核上構(gòu)建和運(yùn)行可執(zhí)行文件。所生成的嵌入式軟件包含 AXI 驅(qū)動(dòng)程序代碼。該代碼由AXI 驅(qū)動(dòng)程序模塊生成的,用以控制 HDL IP 核?;蛘?,用戶也可以編寫嵌入式軟件,手動(dòng)為 ARM 內(nèi)核構(gòu)建。
IIO 示波器
ADI IIO 示波器 (osc) 是一個(gè)示例應(yīng)用,用以演示如何對 Linux 系統(tǒng)中的不同 Linux IIO 設(shè)備進(jìn)行接口連接。該應(yīng)用允許用戶以四種模式(時(shí)域、頻域、星座圖和互關(guān)聯(lián))繪制捕獲的數(shù)據(jù),并查看和修改多個(gè) IIO 設(shè)備設(shè)置。
osc 應(yīng)用支持 Linux、Windows 和 OS X。由于支持 HDMI 視頻顯示,以及圖形環(huán)境,因此它可運(yùn)行于遠(yuǎn)程連接的主機(jī) PC 或 PicoZed SDR FMC 載卡上。提供有關(guān)如何在Linux 上構(gòu)建 osc 應(yīng)用的使用說明,以及預(yù)先創(chuàng)建的 Windows 二進(jìn)制文件。圖 5給出了 PicoZED SDR 的兩個(gè)通道 (I/Q) 的快速傅里葉變換 (FFT),建立了標(biāo)記以查看單音信號
圖 5 - ADI IIO 示波器
和測量諧波
直接在 PicoZED SDR 上構(gòu)建 osc 應(yīng)用只需要(1)下載源代碼:
》 git clone https://github.com/analogdevic- esinc/iio-oscilloscope.git
》 cd iio-oscilloscope
》 git checkout origin/master
(2)構(gòu)建并安裝:
rgetz@pinky:~/iio-oscilloscope$ make
rgetz@pinky:~/iio-oscilloscope$ sudo make install
憑借強(qiáng)大的處理系統(tǒng)(雙 ARM Cortex-A9 處理器,運(yùn)行頻率為 1GHz,外加 1GB DDR3 SDRAM),在 Zynq SDR SOM 上進(jìn)行本機(jī)編譯過程非??焖佟?/p>
采用 PICOZED SDR 的實(shí)時(shí)視頻捕獲系統(tǒng)
高性能視頻已成為自動(dòng)汽車、軍用視覺系統(tǒng)、監(jiān)控系統(tǒng)和無人機(jī)等無線應(yīng)用領(lǐng)域中智能系統(tǒng)的重要組成部分。這些應(yīng)用產(chǎn)品將高像素率視頻捕獲與實(shí)時(shí)分析相結(jié)合,可打破純軟件方案的性能限制。憑借 Zynq SoC 和賽靈思的 SDSoCTM 開發(fā)環(huán)境,嵌入式視覺系統(tǒng)設(shè)計(jì)人員能兼具兩者的優(yōu)勢,利用原有軟件圖像處理算法的豐富功能以及硬件加速,以高幀率實(shí)時(shí)處理高清晰視頻。安富利 ON PYTHON-1300 攝像機(jī)模塊采用安森美 (ON Semiconductor) 的 PYTHON-1300 彩色圖像傳感器,能夠達(dá)到 210 fps 下的 SXGA 分辨率(1,280 x 1,024 像素)。[9]。安富利的多個(gè)基于 Zynq SoC 的開發(fā)平臺——包括 PicoZed SDR——都支持該模塊(以實(shí)現(xiàn)視頻分析的無線傳輸)。系統(tǒng)設(shè)計(jì)人員可以使用符合 Video4Linux2 API 規(guī)范(V4L2;圖 6)的安富利軟件驅(qū)動(dòng)程序?qū)z像機(jī)模塊集成到完整的 Linux 系統(tǒng)中。V4L2 框架可以實(shí)現(xiàn)被稱為流水線的完整視頻數(shù)據(jù)路徑。典型的視頻捕獲流水線從攝像機(jī)接收器獲取視頻,選擇性地處理視頻,然后使用視頻 DMA 引擎將內(nèi)容發(fā)送至外部幀緩沖器。安富利提供與 Vivado IP Integrator 兼容的“攝像機(jī)接收器”IP 核 HDL 源代碼(不收取費(fèi)用和版權(quán)費(fèi)),以及以 Linux 補(bǔ)丁形式提供的 V4L2 子設(shè)備 Linux 驅(qū)動(dòng)程序。
圖 6 - 采用安富利 ON PYTHON-1300 攝像機(jī)模塊的 V4L2 視頻捕獲流水線
本文中我們已經(jīng)介紹過,通過安富利的 PicoZed SDR 中提供的自動(dòng)工作流程,用戶可大大縮短從概念帶部署的開發(fā)時(shí)間,同時(shí)專注于實(shí)現(xiàn) SDR 產(chǎn)品的差異化特性。
評論
查看更多