USRP 套件在windows下的快速引入

2021-10-13 16:31:02 字數 3390 閱讀 6844

最近幫朋友一起研究了usrp系列硬體的上位機配置,usrp在linux下非常友好,在windows下,就不太友好了。還是踩了幾個坑,我把必要的檔案打包到雲盤。

鏈結 提取碼:1234

朋友公司有b210、n210等板子. b210不通過網路介面,因此只要驅動安裝好,供電、速率都搞定了,就妥了。另外,b210射頻部分和基帶部分是整合好的,靠ad936x系列晶元(有些相容板卡在936x的小系列上偷工減料)直接從射頻到基帶,整合化程度高。網路板,如n210,x310等,是帶子母板的,通過千兆或者萬兆網連線,可根據需求換不同的射頻子板,靈活性好。

驅動usb版,需要1. 識別usb,2.傳送fpga韌體,即編譯好的門檔案。

驅動網路版,需要1. 載入網路,用的是rfnoc,即片載射頻網路。2.傳送fpga韌體。

usrp的驅動uhd(usrp hardware driver)對各類介面支援的很好,只要環境變數設定好(在linux下預設設定無需操作),就會統一自動執行下列步驟:

列舉裝置

載入網路介面:一旦裝置相容檢查通過,根據–args=「type=***,addr=***」 引數選定的當前裝置,檢查是不是需要載入 rfnoc。如果需要,到/usr/share/uhd/rfnoc資料夾下載入。

載入韌體:如果是不帶flash的版本,則載入/usr/share/uhd/uhd/images下對應型號的韌體。一般對於帶flash的版本,這個時候裝置就ready啦。

載入校準檔案:校準檔案是執行uhd_cal_rx_iq_balance、uhd_cal_tx_dc_offset、uhd_cal_tx_iq_balance三個工具後為當前裝置產生的精確校準檔案,用於iq均衡、直流去除等等。這一步不是必須的。

這個步驟比較通用,但對於網路板的板子,有些額外的細節要注意。

[error] [tx_flow_ctrl_ack] timeout getting a send buffer
對於常見的linux發行版,usrp的驅動uhd(usrp hardware driver)基本都是傻瓜一條命令搞定,比如apt-get, yum, pacman等等,連著開發包、python、gnu-radio、gqrx等等通吃,基本沒有什麼門檻。一旦安裝完畢,預設的 /usr/share/uhd資料夾下,就有對應版本的rfnoc、images兩個資料夾,執行uhd_usrp_probe即可完成測試。

但在windows下,就很麻煩了。經過一番折騰,把較優方案寫在下面。

注意,win-10下安裝沒有問題,win7沒有試過。據說會有問題。

這篇教程也有幫助,但只看驅動部分即可。

pothossdr是一款軟體無線電的一攬子方案,可以支援市面上大部分的大眾sdr產品,免去了環境配置、編譯的大部分工作,可謂居家必備。

我安裝的是 pothossdr-2020.01.26-vc14-x64,對應的uhd 映象為 3.15。

** 注意,錯誤的映象版本會影響到使用 **

安裝後,資料夾與linux的usr資料夾類似:

環境變數基本都設定好了,不過share裡木有images資料夾,因此要把3.15版本的images拷貝過來。拷貝過來後,資料夾這個樣子:

環境變數中,已經有了

uhd_pkg_path= 路徑到\pothos安裝資料夾

volk_prefix= 路徑到\pothos安裝資料夾

如果是網路板子,還要新加上

uhd_rfnoc_dir=路徑到\rfnoc
新加入後,別忘記重啟cmd和其他程式。

如果tx沒有問題,跳過這一步。非網絡卡的也不用看。若一直報錯:

[error] [tx_flow_ctrl_ack] timeout getting a send buffer
則執行:

netsh inte***ce ipv4 show subinte***ces
netsh inte***ce ipv4 set subinte***ce "本地連線 1" mtu=1028 store=persistent
當然,如果沒有專用於usrp的網絡卡,建議把 store=persistent 去掉,以免影響上網。

安裝python2.7,用於gnuradio。

為後續方便,還要安裝

gtk2-runtime win64,在鏈結 提取碼:1234 ,檔名

gtk2-runtime-2.22.1-2014-02-01-ts-win64.exe

只有具備flash的板子要看這個步驟。b210每次uhd驅動載入時,會自己處理的,當然也可以執行。

獲取裝置

uhd_find_devices.exe
燒寫

uhd_image_loader.exe --args="type=型別名,addr=x.x.x.x"
燒完後,重啟板卡,執行uhd_usrp_probe.exe即可看到板卡的引數。如果遇到問題或者警告,其提示資訊裡會有詳細的應對說明,不用慌。

到了這一步,即可執行gqrx啦!

注意,音訊裝置裡面,我的計算機有兩個default,選擇第乙個會崩潰(bug?)

啟動開始選單裡面的 pothossdr 的 gqrx,聽聽廣播!

每個硬體在0-6g範圍內的射頻特性不一樣,由工藝決定。uhd有校準功能,可以盡可能校準各類引數。這一步比較耗時間,也可以不做。用射頻直連線連線rx,tx,把外接的gps、時鐘(如果有的話)都接好,而後執行

uhd_cal_rx_iq_balance.exe

uhd_cal_tx_dc_offset.exe

uhd_cal_tx_iq_balance.exe

進行校準。該工作不是必須,且只用做一次。做完後,在「我的文件」裡,會產生幾個csv檔案,儲存了全頻段範圍的微調引數。下次載入uhd驅動時,程式會自動讀取。

如果要使用uhd庫的底層功能,還需要vc++或者gnuc++編譯器。

設定inlcude路徑時,加入路徑

pothossdr\include

連線時,加入路徑

pothossdr\lib

最後,鏈結uhd.lib即可。

具體示例**參考

這裡需要注意的是,usrp的c++支援需要boost庫。

可以參考

我把必要的檔案打包到雲盤。

鏈結 提取碼:1234

在Windows下Hunchentoot的啟動

hunchentoot是個什麼東東呢?它是乙個common lisp web server。看完 黑客與畫家 後,受它影響就嘗試了解一下lisp,因為是在windows下進行,所以弄個環境並不是很方便。1 allegro common lisp 8.2 free express edition,簡稱...

在Windows下使用GCC

如何安裝 mingw gcc 編譯器套件 1 使用圖形化的自動安裝程式 2 使用命令列工具 mingw get 3 手動安裝 binutils mingw runtime dev and dll w32api mpc dev and dll mpfr dev and dll gmp dev and ...

在windows下安裝webpy

prerequisite 1.install python 2.download webpy steps 1.解壓webpy壓縮包 2.type win r type cmd 在webpy安裝目錄下 type python setup.py install import web urls index...