在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Linux下搭建GNU Radio平臺及它的應用分析

電子設計 ? 來源:Xilinx ? 作者:judyzhong ? 2020-01-02 07:56 ? 次閱讀

GNU Radio是一個開源的軟件無線電開發平臺,可以通過圖形化界面或C++Python等文本語言快速開發軟件無線電應用,本文介紹了Linux下GNU Radio平臺的搭建及如何在該平臺下使用NI USRP設備。

1. 概念性描述

USRP設備需要固件(firmware image)和FPGA鏡像(FPGA image)且版本一致才能正常工作,此二者與上位機使用何種環境:Windows還是Linux無關,即:同一套固件和鏡像不需要更換可在Windows LabVIEW及Linux GNU Radio下使用。

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖1 兩套環境對比

在Windows系統下操作時,可通過NI-USRP Configuration Utility 軟件進行固件與FPGA鏡像的寫入/更新,如圖2 。這樣,USRP設備就能通過NI-USRP驅動與上位機通信

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖2 NI-USRP Configuration Utility – N2xx/NI-29xx Image Updater

而在Linux GNU Radio下,UHD驅動代替了NI-USRP驅動的工作 。可以通過運行 uhd_images_downloader 從網上下載鏡像到本地,uhd_image_loader 更新鏡像,之后會詳細描述。

2. 環境搭建

2.1 安裝Ubuntu系統

我們常用的電腦都是Windows系統的,有兩種方法在電腦上運行Linux。第一種方法是安裝雙系統,第二種方法是安裝虛擬機并在虛擬機中安裝Linux,由于方法二不需要額外分區、更改BIOS等操作、在操作不當時也不會導致Windows的崩潰,因此選用方法二。

這里使用了常見的虛擬機軟件 VMware Workstation。在以下鏈接中可以下載Ubuntu 16.04:https://www.ubuntu.com/download/desktop Ubuntu是一個Linux常用的發行版。下載到的文件是Ubuntu系統的鏡像.iso文件,在VMware中選擇File – New Virtual Machine 按照提示一步步點擊下一步即可,在配置虛擬機硬件時,CPU數及CPU核心數與實際CPU一致即可,內存可設的稍大一些,我設置了8G內存(共16G物理內存),硬盤設置40G(裝完Ubuntu系統、安裝完GNU Radio的所有依賴軟件后實際使用了8.1G)。

啟動虛擬機,按照第一次啟動向導簡單配置Ubuntu,進入桌面后點擊左上角的圖標,搜索terminal即命令行工具,如圖3 。

圖3 找到Ubuntu的命令行工具

打開命令行工具,輸入

sudo passwd回車

設置管理員(Supper User)密碼即root密碼,在用戶設置密碼之前,Ubuntu每次開機會產生一個隨機的root密碼。注意,輸密碼時不會顯示“****”,而是什么字符也不顯示,這一點和我們一般的認知很不一樣!

系統提示再次輸入密碼,第二次輸入密碼并確認、兩次一致后密碼設置成功。接下來輸入

sudo apt-get update回車

更新源,會提示輸入管理員密碼,輸入剛才設置的管理員密碼后點回車。之后輸入(或復制粘貼,請勿使用Ctrl C + V的快捷鍵,而是鼠標右鍵在命令行窗口中單擊 – 選擇paste)

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq回車

大約會下載1個多G的依賴庫和軟件。等待其下載完成后,下載編譯安裝UHD驅動。

2.2 安裝UHD驅動

UHD驅動是以源碼形式提供的。在命令行中輸入

git clone https://github.com/EttusResearch/uhd回車

會將uhd源碼拷貝到HOME路徑下,轉到該路徑并新建build目錄

cd uhd回車

cd host回車

mkdir build回車

cd build回車

輸入

cmake 。./回車

產生Makefile,輸入

make回車

編譯源碼,大約需要10-30min時間,可以通過開啟多線程編譯可大大縮短編譯時間,用make -j4 代替make即可,就會啟用4個線程同時編譯,但也不是越多越好,一般和計算機CPU線程數或虛擬機CPU線程數一致即可。如編譯中途死機(虛擬機可能會出現、由于內存不足),重新來過時會接著之前的編譯進度繼續。之后安裝編譯成功的庫,輸入

make test回車

sudo make install回車

更新共享庫和環境變量

sudo ldconfig回車

export LD_LIBRARY_PATH=/usr/local/lib回車

此時UHD驅動已經安裝完畢,可通過輸入

uhd_find_devices回車

查看驅動的版本,若在同一子網中已有USRP設備,可看到USRP設備的信息,如圖4

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖4 驗證UHD安裝情況

一個小技巧:在輸入上條命令時輸入uhd_fin之后按Tab鍵看看會發生什么……自動填充!對于輸一些比較長的命令時可以通過自動填充功能降低拼寫錯誤,省時省力。

在找到設備的情況下,可運行以下程序查看CDMA移動電話的上行頻譜

uhd_fft -a addr=10.144.97.123 -f 835M -s 10M回車

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖5 UHD FFT測試程序

注意,若USRP中的鏡像和UHD版本不匹配的話,無法直接運行上述測試程序,可以通過更新firmware image 和 FPGA image使之匹配。更新方法見第3節。

2.3 安裝GNU Radio

安裝GNU Radio與安裝UHD驅動的步驟類似。

首先回到home路徑

cd $HOME回車

之后下載GNU Radio源碼

git clone --recursive https://github.com/gnuradio/gnuradio回車

下載完成后新建build目錄

cd gnuradio回車

mkdir build回車

cd build回車

生成Makefile并編譯安裝

cmake 。./ 回車

make回車

make test回車

sudo make install回車

sudo ldconfig回車

完成后,可以測試安裝是否正確,輸入

gnuradio-companion回車

GNU Radio 開發環境應當可以正確打開。至此,環境搭建完成[3] 。

3. 運行一個GNU Radio程序

3.1 修改USRP IP地址并連接

這里使用的是USRP-2922,USRP設備使用固定IP,默認IP是192.168.10.2 。首先將USRP設備通過網線直連至PC,設置PC的ip為192.168.10.1,子網掩碼255.255.255.0,在Windows下可通過NI-USRP Configuration Utility軟件修改USRP設備的IP。在本次驗證中,使用了超過1臺的USRP,需要通過交換機和上位機通信,在處于同一個子網的PC上查看PC的IP地址:windows徽標鍵+R -》 輸入cmd回車 -》 輸入ipconfig回車,找到自己的本地網卡的IPv4地址,如10.144.97.17,將兩臺USRP的IP設置到同一個子網下,如10.144.97.123和10.144.97.124 。

在Linux下可通過以下方法修改設備IP [4] ,cd 到/usr/local/lib/uhd/utils目錄下,運行

sudo 。/usrp2_recovery.py --ifc=eth0 --new-ip=10.144.97.123回車

以上方法需要防火墻允許UDP廣播。需要注意的是,在虛擬機中運行Linux的話,需要將虛擬機的網卡配置為直連或者與主機共用IP。

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖6 虛擬機網卡配置

設置IP后,可以ping一下USRP,命令行輸入:

ping 10.144.97.123回車

此時應當看到ping通的信息,按Ctrl + Z可以退出ping的狀態。

3.2 更新firmware image和FPGA image

如開篇所述,這兩個鏡像在Windows和Linux下是通用的,只要版本和驅動版本一致即可。NI-USRP 15.5提供的鏡像和UHD 3.11.0提供的鏡像是一致的。如果你的USRP在Windows下更新過鏡像,可以跳過這一步。

在Ubuntu命令行中輸入:

sudo uhd_images_downloader回車

這樣可以自動地將網絡上合適的鏡像下載到本地計算機中。

再輸入

uhd_image_loader --args=“type=usrp2,addr=,reset”回車

將鏡像下載到USRP設備中并重啟設備,這里的鏡像是自動選擇版本的。

3.3在GNU Radio中編程

首先,在命令行中輸入

gnuradio-companion回車

運行GNU Radio開發環境,該環境也是使用圖形化模塊編程的,詳細使用教程可以在網絡上搜索。這里可以編寫一個程序,在兩臺USRP-2922之間傳文件。使用隨機自帶的天線,工作在915M ISM頻段上。也可通過衰減器將兩個USRP的TX/RX接口直連。注意:使用USRP發射無線電信號需遵守當地相關法律法規。

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖7 一個GRC程序

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖8 程序運行界面

如何在Linux下搭建GNU Radio平臺及它的應用分析

圖9 程序運行結果

責任編輯:gt


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21798

    瀏覽量

    606056
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210411
  • 無線電
    +關注

    關注

    60

    文章

    2149

    瀏覽量

    116815
收藏 人收藏

    評論

    相關推薦

    軟件無線電安全之GNU Radio基礎知識

    GNU Radio是一款開源的軟件工具集,專注于軟件定義無線電(SDR)系統的設計和實現。該工具集支持多種SDR硬件平臺,包括USRP、HackRF One和RTL-SDR等。用戶可以通過GN
    的頭像 發表于 02-25 10:20 ?5068次閱讀
    軟件無線電安全之<b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>基礎知識

    什么是GNU Radio開源軟件無線電平臺

    GNU Radio開源軟件無線電平臺究竟是什么?
    發表于 08-02 08:18

    什么是GNU Radio

    什么是GNU Radio? 開放的軟件無線電平臺有什么優勢?
    發表于 08-02 08:13

    GNU radio 和USRP入門指導

    GNU radio 和USRP入門指導
    發表于 12-10 13:33 ?42次下載

    GNU-Radio的安裝

    GNU-Radio的安裝
    發表于 03-27 08:44 ?1次下載

    GNU_radio_和USRP_學習手冊

    GNU_radio_和USRP_學習手冊
    發表于 03-27 09:15 ?11次下載

    LinuxGNU Radio平臺搭建以及該如何使用NI USRP設備

    GNU Radio是一個開源的軟件無線電開發平臺,可以通過圖形化界面或C++、Python等文本語言快速開發軟件無線電應用,本文介紹了Linux
    發表于 11-15 19:29 ?1w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b><b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b><b class='flag-5'>平臺</b>的<b class='flag-5'>搭建</b>以及該如何使用NI USRP設備

    了解GNU Radio

    Gilmore 發起并捐助 $320,000.00 (US) 給 Eric Blossom 用來構建代碼和維護。GNU Radio遵循 GNU 的 GPL的條款分發,的目的是給普通
    發表于 11-21 20:34 ?4593次閱讀

    何在Linux環境搭建51單片機的開發燒寫環境

    本文檔的主要內容詳細介紹的是如何在Linux環境搭建51單片機的開發燒寫環境。
    發表于 08-15 17:32 ?2次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>環境<b class='flag-5'>下</b><b class='flag-5'>搭建</b>51單片機的開發燒寫環境

    學習GNU Radio需要應該如何準備

    學習開源軟件無線電(GNU Radio)需要有一定電腦基礎和深入的通信與信號處理知識,本文列舉了一些有用的資源,包括教程、網頁鏈接和一些在線教程。本教程的目的是幫助GNU Radio
    發表于 11-18 10:31 ?2次下載
    學習<b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>需要應該如何準備

    GNU Radio開源軟件無線電平臺的簡介

    Gilmore 發起并捐助 $320,000.00 (US) 給 Eric Blossom 用來構建代碼和維護。GNU Radio遵循 GNU 的 GPL的條款分發,的目的是給普通
    發表于 10-26 10:41 ?1次下載
    <b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>開源軟件無線電<b class='flag-5'>平臺</b>的簡介

    何在Linux環境實現Python環境的搭建

    本文檔的主要內容詳細介紹的是如何在Linux環境實現Python環境的搭建
    發表于 08-24 12:12 ?14次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>環境<b class='flag-5'>下</b>實現Python環境的<b class='flag-5'>搭建</b>

    GNU Radio:開放的軟件無線電平臺

    GNU Radio:開放的軟件無線電平臺介紹。
    發表于 05-27 11:07 ?10次下載

    GNU/LinuxLinux的區別在哪?

    GNUGNU/LinuxLinux 之間到底是什么關系?什么是自由軟件?什么是GPL協議?什么是自由軟件基金會?什么是GNU恥辱榜?有多
    的頭像 發表于 02-17 09:36 ?1724次閱讀

    什么是 GNU/Linux

    Linus本人曾經爭辯說,將Linux稱為GNU/Linux簡直是荒謬的。
    發表于 06-13 09:14 ?4109次閱讀
    什么是 <b class='flag-5'>GNU</b>/<b class='flag-5'>Linux</b>?
    主站蜘蛛池模板: 丁香婷五月| 日本簧片在线观看 | 99久久99这里只有免费费精品 | 色吧亚洲欧美另类 | 婷婷丁香色 | 狠狠色综合网 | 啪啪大片| 热之国产| 亚洲黄色色图 | 国产精品乱码高清在线观看 | 成年黄网站免费大全毛片 | 成人午夜大片免费看爽爽爽 | 一区二区三区四区视频在线观看 | 天堂网站www天堂资源在线 | 欧美女人天堂 | 午夜视频福利在线观看 | 天天爽夜夜爽 | 一区在线视频 | 色偷偷.com| 天天干天天要 | 日本69xxxxx| 全免费a级毛片免费看不卡 全日本爽视频在线 | 亚洲成在人线久久综合 | 久久狠狠第一麻豆婷婷天天 | 六月丁香综合网 | 俺要操| 日韩综合图区 | 国产精品女人在线观看 | 亚洲成a人片77777潘金莲 | 2018天天干天天操 | 日本黄色片黄色片 | 久久亚洲综合中文字幕 | 超碰v| 色视频2 | 极品色天使在线婷婷天堂亚洲 | 日本三级强在线观看 | 色成人免费网站 | 国产午夜久久精品 | 天天舔夜夜操 | 精品久久久久久中文字幕欧美 | 欧美一区二区三区影院 |