三款SDR平台对比:HackRF,bladeRF和USRP
這篇文章是Taylor Killian今年8月發(fā)表在自己的博客上的。他對比了三款平價的SDR平臺,認為這三款產品將是未來一年中最受歡迎的SDR平臺。我覺得這篇文章很有參考價值,簡單翻譯一份轉過來。
原文在這里:
http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html
翻起來才發(fā)現(xiàn),太長了。覺得這么長就沒必要翻譯了,不符合快速閱讀的習慣,深度閱讀的人顯然應該直接看原文。但是既然開了個頭,就翻完吧。
以下是原文翻譯:
今年或者明年看起來是SDR的黃金年代。將有三款新的SDR平臺面世,用戶可以有很多選擇。這篇文章將比較這三款SDR平臺:Great Scott Gadgets生產的HackRF, nuand生產的bladeRF, 和Ettus生產的USRP (B200/210)。
HackRF是Michael Ossmann開發(fā)的,他還開發(fā)過Ubertooth,這是第一款也是唯一款低價的藍牙嗅探器(Bluetooth sniffer)。HackRF已經開發(fā)了好幾個月了。Michael已經免費發(fā)放了500塊HackRF的Beta版本給世界各地的黑客們。現(xiàn)在他正在開發(fā)正式版,并且正在眾籌網站Kickstarter上銷售。這將是市場上最便宜的一款SDR平臺,而且它可以工作在很寬的頻率范圍。
bladeRF也是在Kickstarter上成功建立的項目,而且產品都已經交付給用戶了。bladeRF可以支持很寬的載頻范圍,帶有一個大容量的FPGA,還有高速的USB3接口。開發(fā)者在時鐘模塊上花了不少錢,提供了VCTCXO,可以把精度校準到50 ppb。所有的模塊都設計成同步的,因此沒有ClockTamer。這款硬件現(xiàn)在可以在nuand網站上購買。
剛開始,這篇文章是想拿Ettus的USRP B100和N210跟HackRF、bladeRF比較。但當我把初稿發(fā)給Ettus公司看的時候,他們說新的USRP B200/210很快就要發(fā)布了,而且給我寄了一塊開發(fā)版的B210。所以后來我重新修訂了這篇文章。現(xiàn)在B210已經發(fā)布了,可以從Ettus購買。
Ettus可能是最老的SDR硬件生產商了。他們已經生產了很多款不同的USRP。USRP B200/210與之前的老款產品完全不同,是“單板”設計,而不再是“母板/子板”的組合。它也使用了USB3接口,支持很寬的射頻頻段。B200/210有一個新設計的GPSDO接頭,可以通過GPS模塊把精度調整到幾個ppb。B210還是Ettus的第一款獨立支持2x2 MIMO的板卡。我會在B210上做一些測試,把測試結果發(fā)布在這個博客上。這里還有一些B210的高清晰圖片:)
下表是三款硬件的對比!(Alin:重點看這個表就夠了^_^)
Specs
| HackRF | bladeRF | USRP | ||||
| x40 | x115 | B100 Starter | B200 | B210 | ||
| Radio Spectrum | 30 MHz – 6 GHz | 300 MHz – 3.8 GHz |
50 MHz – 2.2 GHz [1] |
50MHz – 6 GHz |
||
| Bandwidth | 20 MHz | 28 MHz | 16 MHz [2] | 61.44 MHz [3] | ||
| Duplex | Half | Full | Full | Full | 2x2 MIMO | |
| Sample Size (ADC/DAC) | 8 bit | 12 bit |
12 bit / 14 bit |
12 bit | ||
| Sample Rate (ADC/DAC) | 20 Msps | 40 Msps |
64 Msps / 128 Msps |
61.44 Msps | ||
| Interface (Speed) |
USB 2 HS (480 megabit) |
USB 3 (5 gigabit) |
USB 2 HS (480 megabit) |
USB 3 (5 gigabit) |
||
| FPGA Logic Elements | [4] | 40k | 115k | 25k | 75k | 150k |
| Microcontroller | LPC43XX | Cypress FX3 | Cypress FX2 | Cypress FX3 | ||
| Open Source | Everything |
HDL + Code Schematics |
HDL + Code Schematics |
Host Code[5] | ||
| Availability | January 2014 | Now | Now | Now | ||
| Cost | $300[6] | $420 | $650 | $675 | $675 | $1100 |
[1] – Separate daughterboards are required to receive/transmit. The WBX transceiver is included in this kit
[2] – Half this if 16 bit samples are used
[3] – 56 MHz for single half duplex channel, 30.72 MHz per channel full duplex
[4] – There is a CPLD on the board, but no FPGA
[5] – Ettus confirmed that the HDL + Code + Schematics will be released for the B210/B200
[6] - Estimated retail price, cheaper though Kickstarter
射頻性能
HackRF和USRP B210的射頻范圍很寬。HackRF比B200/210還低20MHz,最高載頻都可以達到6GHz。B210/200主要基于AD9361芯片。這塊芯片其實是工作在70MHz~6GHz的,因此看起來B210/200稍微超出了一點使用范圍,降低到50MHz。HackRF則采用了另一種方案,它使用了多個不同的射頻芯片來支持寬頻段。如果你看看它的原理圖,就會發(fā)現(xiàn)它混合了幾塊芯片,每塊芯片負責一段頻譜,至少有6個頻段切換開關。希望這么多的器件沒有給系統(tǒng)引入太多噪聲。
另外,HackRF捆綁了一個上變頻器“Ham It Up”,如果通過Kickstarter把兩個東西打包購買的話,只要添$35就可以了。這個板卡可以使HackRF的載頻降低到300KHz。也可以單獨購買這個“Ham It Up”,大約$43。我覺得USRP B210/200和WBX也可以使用這個“Ham It Up”。
對于更老的USRP B100來說,它可以用不同的子板來覆蓋不同的頻段。WBX子板可以覆蓋50MHz~2.2GHz。新的CBX子板可以覆蓋到6GHz。不過這種單獨購買子板的方案的缺點是,成本會比HackRF和bladeRF高。
BladeRF可以支持300MHz到3.8GHz,它使用的芯片是LMS6002D。這款芯片提供了絕大部分射頻功能,包含所有的混頻器,ADC,DAC和其他一些功能。這款芯片與AD9361是類似的。不過,它最高只能支持3.8GHz。這意味著,不可能用bladeRF來實現(xiàn)5GHz頻段的802.11n。現(xiàn)在,bladeRF有計劃要發(fā)布一塊擴展板卡,允許載頻降低到10MHz,不過這個計劃仍然在進行當中,還沒有做出來。
雙工性能
值得注意的是,HackRF不同于其他兩款硬件,它不支持全雙工。這意味著要切換收和發(fā)的話,必須每次給控制器發(fā)送命令。微控制器處理切換可能要花費微秒級的時間。如果要算上信號到達計算機的時間,切換時間會更長。
bladeRF和USRP B210/200都可以支持全雙工。USRP B100也支持全雙工。有一些比較老的子板在B100上使用的時候,不支持全雙工。但大部分的子板都可以支持。
根據(jù)github上的文檔,B200有一個全雙工通道。而B210有兩個接收機和兩個發(fā)射機,目的是為了支持2x2 MIMO。兩個接收機可以調到同一個頻點,發(fā)射機同樣(可以與接收頻點不同)。這樣做可以利用無線信道的空間分集,傳輸更高速率的數(shù)據(jù)。MIMO技術已經在4G LTE和802.11n系統(tǒng)中實現(xiàn)了。
需要注意的是,如果同時進行接收和發(fā)送。發(fā)射機可能會對接收機產生一些噪聲,因為畢竟發(fā)射機距離接收機很近。
與主機的通信
對SDR而言,與主機的通信方式是非常重要的,因為它決定了信號的帶寬和可靠性。
USRP B100和HackRF都使用USB2.0接口。這決定了最高的數(shù)據(jù)傳輸速率是35MB/s。然而,由于我們常常會在多個USB接口上插入其他設備,他們是共享帶寬的,因此實際的數(shù)據(jù)速率比這更低。
USRP B210/200和bladeRF使用USB3.0接口。它可以支持400MB/s的傳輸速率。這對于大部分SDR應用來說,帶寬已經足夠了。與USB2.0類似,多個USB接口會共享帶寬。
有個潛在的問題是,USB3.0可能會被干擾。Intel警告說,2.4GHz頻段的信號可能會對USB3.0造成干擾,建議采取一些屏蔽措施。一個簡單的辦法是,你可以給板卡包一張錫箔。bladeRF和B210/200的開發(fā)者都做了一些測試,并認為這不算什么大問題。bladeRF的射頻模塊外面是包有外殼的。B210/200也很容易添加銅外殼。另外B210/200的電路板上還有大面積的“鋪地”,這也能起到很好的屏蔽作用。
經過我的測試,USRP B210與我的ASMedia控制器連接還是有問題的。它只能工作在USB2。實際上在我收到B210之前,Ettus的工程師就提醒過我,ASMedia USB3芯片不完全符合USB3標準。最后,我買了一個PCIe USB3接口卡,它用的是VL805芯片,價格大約$20,現(xiàn)在我可以正常工作在USB3模式了。鑒于bladeRF也用的是FX3芯片,所以我想它可能也跟ASMedia不匹配。
ADC/DAC
ADC和DAC的量化精度非常重要,增加一個bit就可以使精度加倍。因此,使用14-bit DAC的USRP B100比使用8-bit DAC的HackRF精度要好64倍。雖然說,一個便宜的8-bit精度的RTL-SDR就可以接收NOAA的氣象衛(wèi)星圖像,但是更高的精度顯然更有用。當然更好的天線和增益設置也會大有幫助。
另一個指標是ADC和DAC的轉換速度。更高的采樣率需要更大的處理帶寬。許多老的通信系統(tǒng)可以使用非常低速的ADC或DAC,但比較新的通信系統(tǒng),例如WiFi a/b/g,需要至少20MSps的ADC/DAC。在這三款硬件中,只有USRP B210/B200能夠處理40MHz的802.11n信號。不過,即使USRP能夠處理,計算機是否能夠處理如此高速的數(shù)據(jù),仍然是個巨大的挑戰(zhàn)。實際上,即使僅僅想把這樣高速的數(shù)據(jù)儲存下來,都是一件麻煩事。
帶寬
把所有的基帶數(shù)據(jù)傳到計算機,這是所有SDR硬件最主要的瓶頸,因為數(shù)據(jù)量實在太大。對使用USB2.0的USRP B100和HackRF來說,這一瓶頸非常明顯。而其他使用USB3.0的硬件,這一瓶頸就相對寬松一點。雖然bladeRF也使用USB3.0接口,但它不能達到與USRP B210/B200一樣的采樣帶寬。因為bladeRF使用了LMS6002D中的帶通濾波器。在bladeRF的論壇中,有討論如何關閉這一濾波器,這樣就可以使用外部的濾波器,從而增加采樣帶寬。關于USRP B210/B200,它的濾波器可以允許帶寬高達56MHz的信號通過。
FPGA
如何使用這些基帶信號呢?要么傳到計算機上處理,要么在板卡上處理。bladeRF和USRP B210/200都有比較強大的FPGA,還有FX3微控制器。B210使用Spartan 6 LX150 FPGA,它有150k邏輯單元;B200使用LX75 FPGA,有75k的邏輯單元。bladeRF使用Cyclone 4 FPGA,x40有40k邏輯單元,x115有115k邏輯單元。USRP B100用的是比較小的FPGA,有25k邏輯單元。而HackRF使用的是CPLD,信號處理主要依賴于板上的微控制器。
邏輯單元的數(shù)量決定了FPGA的處理能力,顯然越大越好。FPGA的長處是并行處理,短處是主頻一般比微控制器低。如果開發(fā)者不是很擅長HDL語言的話,處理效率可能會比較低。
在USRP的FAQ網頁上有FPGA的使用情況說明,說明了FPGA還剩多少資源可以使用。對B100而言,留給用戶開發(fā)的空間非常小,而B210/B200則有比較大的剩余空間可供用戶使用。關于bladeRF,據(jù)說x40 FPGA當前已使用了大約15%,因此剩余空間也非常充足。FPGA除了作為ADC/DAC與FX3之間的橋梁之外,還可以完成例如數(shù)字濾波器之類的信號處理任務。USRP中就包含了數(shù)字變頻,抽值和插值模塊等等。我沒有看bladeRF的功能,可能跟USRP差不多。
有一個差別需要注意的是,Ettus使用的是Xilinx的芯片,而nuand使用的是Altera的芯片,因此稍有不同。相比Altera,Xilinx的FPGA中有更多的DSP模塊,包括預加法器,乘法器和累加器;而Altera FPGA在DSP模塊部分只有乘法器。這意味著,加法需要用邏輯陣列來實現(xiàn),所以同樣的功能,Altera FPGA需要更多的邏輯單元。而且,Altera的RAM比Xilinx少。不過對于bladeRF,芯片上的RAM可能也夠用了。還有一點需要注意的是,B210的LX150不支持免費的Xilinx ISE,而LX75和Altera的FPGA是可以使用免費的開發(fā)軟件的。
最后強調一下FPGA的價格。x40 Cyclone IV價格大約100美元,x115 Cyclone IV大約315美元。這都是Digi-Key上的報價,可能不是廠家的成本價。不過這個芯片選型,至少說明了nuand不是一塊高質高端的硬件。
微控制器
除了較老的USRP B100,其他幾款板卡都有非常強大的微控制器。B100用的是FX2來提供USB2.0連接,只有16KB的RAM。bladeRF和B210/200都用的是FX3,提供USB3.0連接。HackRF用的是一個雙核LPC43XX芯片,處理USB2.0接口,以及控制射頻芯片。
HackRF的微控制器運行在204MHz的主頻,NXP制造,有一個ARM M4內核和一個M0協(xié)處理器。含有64KB的ROM和264KB的SRAM。這顆芯片負責很多工作:發(fā)送和接收USB鏈路上的數(shù)據(jù),控制板卡上所有的射頻芯片。還有計劃要往里面添加抽值和插值模塊。之所以選擇微控制器而不是FPGA來處理,是因為希望用戶能夠使用C語言來更快的修改代碼,而不是使用HDL語言。如果連上一個PortaPack,HackRF的這個微控制器能夠不連接計算機,就直接變身為一個頻譜分析儀。
FX3微控制器運行在200MHz主頻,有一個ARM926EJ-S內核。這個芯片有GPIF,一旦開啟,可以使ARM內核處于IDLE狀態(tài)。它有512KB的SRAM,沒有ROM。這款芯片有幾種啟動方式,包括USB啟動方式,firmware常常用這種方式加載。bladeRF有4MB的SPI Flash,它含有微控制器和FPGA的代碼,可以在脫機的情況下支持板卡的運行。B210只有32KB的EEPROM,用于存儲一些基礎配置程序,沒有Flash。因為沒有Flash,所以B210/200想要脫機運行的話,是非常困難的。nuand的開發(fā)者們希望能夠在bladeRF上脫機運行OpenBTS和OpenLTE。已經有在B210上運行LTE系統(tǒng)的例子了,但是是在連接計算機(Core i7處理器)的情況下。能否在FX3上運行LTE系統(tǒng),很值得懷疑。
開發(fā)者社區(qū)
軟件無線電是個很大的概念,已經存在了十多年。一個硬件平臺的使用者論壇或者社區(qū)是非常重要的。這些人可以相互提供技術支持,分享新創(chuàng)意。他們推動著創(chuàng)新的車輪持續(xù)前進。因此,對于一個生產SDR平臺的公司,開發(fā)者社區(qū)是非常重要的,而且應給予大力支持。最簡單的一個方法就是,開放源碼,開放硬件。下面說說這三家公司都是怎么做的。
源代碼
對SDR硬件而言,軟件是非常重要的。幸運的是,這三款硬件都支持GNU Radio,它包含大量的免費且開源的代碼。它還有非常好的圖形界面,適合快速開發(fā)和測試。HackRF和bladeRF在GNU Radio中的驅動,放在gr-osmosdr項目中,與RTL-SDR dongle的驅動包一樣。bladeRF的驅動是前幾個星期添加進去的(Alin:作者的寫作時間是2013年8月),因此如果你要用的話,請及時更新代碼。HackRF的驅動已經發(fā)布有一段時間了。而對于USRP,gr-uhd原本就是GNU Radio的一部分,需要安裝UHD驅動庫,UHD驅動可以從Ettus官網得到。
這三款硬件板卡,所有的代碼,HDL文件和電路原理圖都可以免費獲得,除了USRP B210/B200的還沒有發(fā)布。HackRF更為開放,它甚至公布了所有的KiCad制板文件,包括原始格式的電路原理圖(不是PDF)和PCB布線圖。USRP B100和bladeRF的電路原理圖是PDF格式的。我希望B210/200也能盡快開放原理圖。HackRF的開放程度,使得其他人可以繼續(xù)改進HackRF的設計,而且也是開發(fā)者社區(qū)的讀者們非常好的學習材料。我想其他人可以很容易重用其中的一些設計。
USRP有一個獨特的好處是,它的應用類代碼非常豐富。因為USRP已經有很長的歷史了,從2006年以來,已經有很多人使用過USRP。有很多的學術論文使用了USRP和GNU Radio進行實驗。也涌現(xiàn)出很多新穎的應用和代碼。UHD,是所有USRP板卡通用的接口,經過這么多年的優(yōu)化改進,已經非常穩(wěn)定成熟。一個GNU Radio應用,只要硬件滿足要求,就很容易在各種USRP板卡上使用。也就是說,USRP對GNU Radio的支持是最好的。Ettus還發(fā)布了一個免費的Linux鏡像,它包含了GNU Radio以及其他一些工具軟件,可以以最快的速度搭建出一個GNU Radio的開發(fā)環(huán)境。雖然這個鏡像目前只有UHD,但是把gr-osmosdr添加進去也應該很容易。
HackRF比USRP的歷史要短得多,才剛開始開發(fā)一套代碼(Alin:開發(fā)環(huán)境驅動什么的),不過進展很快。它應該能與GNU Radio兼容,正在測試當中。HackRF的優(yōu)勢在于,它有很多黑客型粉絲。已經有至少500塊免費的HackRF交付使用,到本文寫作的時間為止,又有1100塊HackRF已經在Kickstarter上被預定了。這些用戶可以為軟件開發(fā)做出很大的貢獻。相比USRP在學術界影響力,HackRF在黑客界有更大的影響力。當然,這兩個人群有一部分重合的地方。但我認為黑客們更有能力寫出更多更優(yōu)秀的代碼。
nuand團隊是最近才發(fā)布的bladeRF的GNU Radio驅動。我估計大約有400個用戶從Kickstarter上得到了bladeRF板卡。另外,還有相當一部分用戶直接從nuand的網站訂購了bladeRF。所有這些用戶都能夠為bladeRF的代碼開發(fā)做出貢獻。因為bladeRF跟USRP B210一樣,使用了FX3,大容量的FPGA和單芯片的射頻收發(fā)芯片,我估計兩款硬件的驅動代碼中,有相當一部分可以共享。雖然Xilinx和Altera之間的差別,給代碼重用帶來了一點麻煩,但是我想只要黑客們做出足夠的努力,bladeRF就可以與UHD接口兼容,于是可以兼容USRP已有的大量的應用程序。
硬件
在硬件的開放性方面,HackRF是做得最好的。而USRP呢,B210/B200使用的AD9361芯片可能是一個開放性的障礙。因為Analog Devices網站上只提供了1頁的datasheet。因此除了Ettus公司以外,其他人很難獲得更詳細的信息,除非你也跟AD公司簽過NDA。不過Ettus公司的人承諾說,他們會開放相關的驅動的源代碼。除了AD9361芯片以外,B210/B200上的其他芯片都有比較詳細的資料。關于bladeRF,LMS6002D芯片有長達15頁的datasheet,而且還有45頁的編程和校準指南,這些對于其他開發(fā)者來說都是現(xiàn)成的。
最后的點評
HackRF,是一款覆蓋頻率最寬,而且價格最低廉的SDR板卡。它幾乎所有的信息都是開源的,甚至包括KiCad文件。缺點是它沒有FPGA,使用的低速的USB2接口,ADC/DAC的精度比較低。總的來說,HackRF非常適合那些對開放性要求很高的黑客,和那些那些對價格敏感的用戶。
bladeRF,它的亮點在于大容量的FPGA和高速的USB3接口。它能夠支持比較寬的頻段,但是不如另外兩者。它的ADC/DAC精度也還不錯。我建議那些想脫機運行程序,并且射頻頻點不需要太高的人們,考慮選擇這款硬件,
USRP B100,這是一款比較老的板卡了,不能支持高帶寬的應用。它通過替換子板來改變射頻頻段,最高可以支持到6GHz。它支持UHD接口。B100的價格跟B200是一樣的,但能力卻比B200差很多。所以我建議,只有當你有一些很特殊的應用,或者你要使用自己開發(fā)的子板時,才考慮B100。
USRP B210/B200,可以支持很寬的頻段,也支持高速的接口帶寬。它們有大容量的FPGA和快速的USB3接口。不過AD9361這款芯片的開放性略差。B210/B200是三款硬件中價格最貴的。但它們的很多指標已經與Ettus的另一款高端的N210板卡可以媲美。而且,B210還是唯一一款直接支持2x2 MIMO的板卡。我相信B210/B200將是最近市場上,性能最強的SDR平臺,而且將得到Ettus公司的大力支持。我建議那些需要高帶寬、寬頻段,而且不需要脫機使用的應用,考慮這款硬件平臺。
最后,我希望人們能夠用這三款非常優(yōu)秀的軟件無線電平臺,開發(fā)出更多新穎的應用。我用了幾個星期的時間搜集整理這三款平臺的信息,有一些沒能收入文中,如果您有任何問題,請在評論中提出。感謝您的閱讀,并且歡迎您再回來看看我將要發(fā)表的關于B210的測試結果(Alin:到2013年11月27日為止,這個測試結果還未發(fā)表)。
Alin評論:
有兩款硬件都是USB3.0接口的,說明USB3.0將成為SDR平臺的主流接口。這與我們兩年前的看法也是一致的。USB3的優(yōu)點是USB接口數(shù)量多,而且很普及,速度也夠快。但缺點是傳輸距離可能不夠遠,所以我個人認為10G或者更高速率的以太網接口也將是另一種主流的接口。
另外我發(fā)現(xiàn)這三款硬件的電路板都印成了黑底白字,比原來綠色的酷多了。看來硬件工程師們也開始注意“柜子背面的板子也要漂亮”了。
總結
以上是生活随笔為你收集整理的三款SDR平台对比:HackRF,bladeRF和USRP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bitnami Redmine安装和插件
- 下一篇: Linux(ubuntu18)下 Qt