天天看點

【SDR】USRP使用過程中出現“U”、“O”的意義

USRP簡單介紹

       USRP(Universal Software RadioPeripheral)通用軟體無線電外設,是構成SDR(Software Defined Radio)系統的主要部件(關于SDR系統的原理介紹,可以參考【1】),其中通用的無線電外設主要有HackRF,bladeRF和USRP三種(關于三種外設的差別,可以參考【2】)。本文中以下所說的USRP,指的是Ettus公司的産品USRP,到目前為止,其已經有衆多系列,例如B系列、E系列、N系列、X系列等,基本上字母越靠後,價格越高,目前在實驗室主要使用的是USRP B系列的産品B200/B210,其采用USB3.0與GPP(General Purpose Processor,通用處理器)連接配接,并直接使用USB供電。

       最近一直在跑OAI的代碼來進行 LTE系統的仿真工作,其所支援的無線電外設就包括了USRP,在運作LTE系統的 eNB 的代碼的時候,會列印“U”、“L”等字母,剛開始一直以為是程式中的printf輸出,而且本身列印輸出的也并不多,是以沒有太在意,但近期在仿真運作LTE系統的 1.4MHz帶寬的OAI eNB 的時候,出現了大量的“U”,而且UE側也無法接入,是以才注意到其問題(OAI 目前1.4MHz無法跑通,比較穩定的是帶寬5M以及10M),在這裡整理一番,與大家共享。

【SDR】USRP使用過程中出現“U”、“O”的意義

Figure 1 OAI eNB輸出列印“U”

USRP使用中出現“U”、“O”的意義

       在Linux系統下,USRP作為硬體裝置,是由UHD來進行驅動的,是以在使用之前,需要先安裝UHD驅動(有時間寫一下UHD的安裝教程吧!)。USRP在使用過程中,會由于與PC機之間的一些“不協調”而輸出列印一些字元,而明白這些字元的意義,有助于解決USRP與PC之間的連接配接問題。如下是經常會輸出列印的字元的意義:

(1)’a’:audio,表示聲霸卡;

(2)’u’:USRP;

(3)’O’:overrun,PC not keeping up with received data from USRP of audio card,表示“超速、溢出”,也就是說 PC無法同步地去接收USRP上的資料;

(4)’U’:underrun,PC not providing data quickly,與’O’相反,表示PC無法快速的提供資料;

(5)’L’:latency,a bunch of late packet / late transmit packet,表示PC與USRP之間的信号傳輸時延較大。

       當然,也可能會出現 ‘aU’ 、‘aO’、’uU’、’uO’等組合,了解的話也就是以上意義的組合吧。

       關于出現這些字元的解決方法,因為以上問題都是PC與USRP之間信号的速率不比對的問題,是以提高PC的性能是一種解決的方法,另外一個的話,就是修改、優化程式,減少程式的複雜度,具體可以參考【3】【4】中所提到的思路。

參考

【1】    http://blog.csdn.net/jxwxg/article/details/53446841?locationNum=5&fps=1

【2】    http://blog.sina.com.cn/s/blog_72628e9f0101c25g.html

【3】    https://www.cel.kit.edu/english/faq.php

【4】    http://blog.sina.com.cn/s/blog_66439a3e0101bf0y.html