三款SDR平台对比:HackRF,bladeRF和USRP
这篇文章是Taylor Killian今年8月发表在自己的博客上的。他对比了三款平价的SDR平台,认为这三款产品将是未来一年中最受欢迎的SDR平台。我觉得这篇文章很有参考价值,简单翻译一份转过来。
原文在这里:
http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html
翻起来才发现,太长了。觉得这么长就没必要翻译了,不符合快速阅读的习惯,深度阅读的人显然应该直接看原文。但是既然开了个头,就翻完吧。
以下是原文翻译:
今年或者明年看起来是SDR的黄金年代。将有三款新的SDR平台面世,用户可以有很多选择。这篇文章将比较这三款SDR平台:Great Scott Gadgets生产的HackRF, nuand生产的bladeRF, 和Ettus生产的USRP (B200/210)。
HackRF是Michael Ossmann开发的,他还开发过Ubertooth,这是第一款也是唯一款低价的蓝牙嗅探器(Bluetooth sniffer)。HackRF已经开发了好几个月了。Michael已经免费发放了500块HackRF的Beta版本给世界各地的黑客们。现在他正在开发正式版,并且正在众筹网站Kickstarter上销售。这将是市场上最便宜的一款SDR平台,而且它可以工作在很宽的频率范围。
bladeRF也是在Kickstarter上成功建立的项目,而且产品都已经交付给用户了。bladeRF可以支持很宽的载频范围,带有一个大容量的FPGA,还有高速的USB3接口。开发者在时钟模块上花了不少钱,提供了VCTCXO,可以把精度校准到50 ppb。所有的模块都设计成同步的,因此没有ClockTamer。这款硬件现在可以在nuand网站上购买。
Specs
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]
|
|||||
Microcontroller
|
||||||
Open Source
|
Host Code [5]
|
|||||
Availability
|
January 2014
|
Now
|
Now
|
Now
|
||
Cost
|
$300 [6]
|
射频性能
HackRF和USRP B210的射频范围很宽。HackRF比B200/210还低20MHz,最高载频都可以达到6GHz。B210/200主要基于AD9361芯片。这块芯片其实是工作在70MHz~6GHz的,因此看起来B210/200稍微超出了一点使用范围,降低到50MHz。HackRF则采用了另一种方案,它使用了多个不同的射频芯片来支持宽频段。如果你看看它的原理图,就会发现它混合了几块芯片,每块芯片负责一段频谱,至少有6个频段切换开关。希望这么多的器件没有给系统引入太多噪声。
另外,HackRF捆绑了一个上变频器“Ham It Up”,如果通过Kickstarter把两个东西打包购买的话,只要添$35就可以了。这个板卡可以使HackRF的载频降低到300KHz。也可以单独购买这个“Ham It Up”,大约$43。我觉得USRP B210/200和WBX也可以使用这个“Ham It Up”。
值得注意的是,HackRF不同于其他两款硬件,它不支持全双工。这意味着要切换收和发的话,必须每次给控制器发送命令。微控制器处理切换可能要花费微秒级的时间。如果要算上信号到达计算机的时间,切换时间会更长。
bladeRF和USRP B210/200都可以支持全双工。USRP B100也支持全双工。有一些比较老的子板在B100上使用的时候,不支持全双工。但大部分的子板都可以支持。
需要注意的是,如果同时进行接收和发送。发射机可能会对接收机产生一些噪声,因为毕竟发射机距离接收机很近。
与主机的通信
对SDR而言,与主机的通信方式是非常重要的,因为它决定了信号的带宽和可靠性。
USRP B100和HackRF都使用USB2.0接口。这决定了最高的数据传输速率是35MB/s。然而,由于我们常常会在多个USB接口上插入其他设备,他们是共享带宽的,因此实际的数据速率比这更低。
USRP B210/200和bladeRF使用USB3.0接口。它可以支持400MB/s的传输速率。这对于大部分SDR应用来说,带宽已经足够了。与USB2.0类似,多个USB接口会共享带宽。
经过我的测试,USRP B210与我的ASMedia控制器连接还是有问题的。它只能工作在USB2。实际上在我收到B210之前,Ettus的工程师就提醒过我,ASMedia USB3芯片不完全符合USB3标准。最后,我买了一个PCIe USB3接口卡,它用的是VL805芯片,价格大约$20,现在我可以正常工作在USB3模式了。鉴于bladeRF也用的是FX3芯片,所以我想它可能也跟ASMedia不匹配。
ADC和DAC的量化精度非常重要,增加一个bit就可以使精度加倍。因此,使用14-bit DAC的USRP B100比使用8-bit DAC的HackRF精度要好64倍。虽然说,一个便宜的8-bit精度的RTL-SDR就可以接收NOAA的气象卫星图像,但是更高的精度显然更有用。当然更好的天线和增益设置也会大有帮助。
另一个指标是ADC和DAC的转换速度。更高的采样率需要更大的处理带宽。许多老的通信系统可以使用非常低速的ADC或DAC,但比较新的通信系统,例如WiFi a/b/g,需要至少20MSps的ADC/DAC。在这三款硬件中,只有USRP B210/B200能够处理40MHz的802.11n信号。不过,即使USRP能够处理,计算机是否能够处理如此高速的数据,仍然是个巨大的挑战。实际上,即使仅仅想把这样高速的数据储存下来,都是一件麻烦事。
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,信号处理主要依赖于板上的微控制器。
在USRP的FAQ网页上有FPGA的使用情况说明,说明了FPGA还剩多少资源可以使用。对B100而言,留给用户开发的空间非常小,而B210/B200则有比较大的剩余空间可供用户使用。关于bladeRF,据说x40 FPGA当前已使用了大约15%,因此剩余空间也非常充足。FPGA除了作为ADC/DAC与FX3之间的桥梁之外,还可以完成例如数字滤波器之类的信号处理任务。USRP中就包含了数字变频,抽值和插值模块等等。我没有看bladeRF的功能,可能跟USRP差不多。
有一个差别需要注意的是,Ettus使用的是Xilinx的芯片,而nuand使用的是Altera的芯片,因此稍有不同。相比Altera,Xilinx的FPGA中有更多的DSP模块,包括预加法器,乘法器和累加器;而Altera FPGA在DSP模块部分只有乘法器。这意味着,加法需要用逻辑阵列来实现,所以同样的功能,Altera FPGA需要更多的逻辑单元。而且,Altera的RAM比Xilinx少。不过对于bladeRF,芯片上的RAM可能也够用了。还有一点需要注意的是,B210的LX150不支持免费的Xilinx ISE,而LX75和Altera的FPGA是可以使用免费的开发软件的。
最后强调一下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协处理器。含有64KB的ROM和264KB的SRAM。这颗芯片负责很多工作:发送和接收USB链路上的数据,控制板卡上所有的射频芯片。还有计划要往里面添加抽值和插值模块。之所以选择微控制器而不是FPGA来处理,是因为希望用户能够使用C语言来更快的修改代码,而不是使用HDL语言。如果连上一个PortaPack,HackRF的这个微控制器能够不连接计算机,就直接变身为一个频谱分析仪。
开发者社区
软件无线电是个很大的概念,已经存在了十多年。一个硬件平台的使用者论坛或者社区是非常重要的。这些人可以相互提供技术支持,分享新创意。他们推动着创新的车轮持续前进。因此,对于一个生产SDR平台的公司,开发者社区是非常重要的,而且应给予大力支持。最简单的一个方法就是,开放源码,开放硬件。下面说说这三家公司都是怎么做的。
源代码
对SDR硬件而言,软件是非常重要的。幸运的是,这三款硬件都支持GNU Radio,它包含大量的免费且开源的代码。它还有非常好的图形界面,适合快速开发和测试。HackRF和bladeRF在GNU Radio中的驱动,放在gr-osmosdr项目中,与RTL-SDR dongle的驱动包一样。bladeRF的驱动是前几个星期添加进去的(Alin:作者的写作时间是2013年8月),因此如果你要用的话,请及时更新代码。HackRF的驱动已经发布有一段时间了。而对于USRP,gr-uhd原本就是GNU Radio的一部分,需要安装UHD驱动库,UHD驱动可以从Ettus官网得到。
这三款硬件板卡,所有的代码,HDL文件和电路原理图都可以免费获得,除了USRP B210/B200的还没有发布。HackRF更为开放,它甚至公布了所有的KiCad制板文件,包括原始格式的电路原理图(不是PDF)和PCB布线图。USRP B100和bladeRF的电路原理图是PDF格式的。我希望B210/200也能尽快开放原理图。HackRF的开放程度,使得其他人可以继续改进HackRF的设计,而且也是开发者社区的读者们非常好的学习材料。我想其他人可以很容易重用其中的一些设计。
USRP有一个独特的好处是,它的应用类代码非常丰富。因为USRP已经有很长的历史了,从2006年以来,已经有很多人使用过USRP。有很多的学术论文使用了USRP和GNU Radio进行实验。也涌现出很多新颖的应用和代码。UHD,是所有USRP板卡通用的接口,经过这么多年的优化改进,已经非常稳定成熟。一个GNU Radio应用,只要硬件满足要求,就很容易在各种USRP板卡上使用。也就是说,USRP对GNU Radio的支持是最好的。Ettus还发布了一个免费的Linux镜像,它包含了GNU Radio以及其他一些工具软件,可以以最快的速度搭建出一个GNU Radio的开发环境。虽然这个镜像目前只有UHD,但是把gr-osmosdr添加进去也应该很容易。
HackRF比USRP的历史要短得多,才刚开始开发一套代码(Alin:开发环境驱动什么的),不过进展很快。它应该能与GNU Radio兼容,正在测试当中。HackRF的优势在于,它有很多黑客型粉丝。已经有至少500块免费的HackRF交付使用,到本文写作的时间为止,又有1100块HackRF已经在Kickstarter上被预定了。这些用户可以为软件开发做出很大的贡献。相比USRP在学术界影响力,HackRF在黑客界有更大的影响力。当然,这两个人群有一部分重合的地方。但我认为黑客们更有能力写出更多更优秀的代码。
nuand团队是最近才发布的bladeRF的GNU Radio驱动。我估计大约有400个用户从Kickstarter上得到了bladeRF板卡。另外,还有相当一部分用户直接从nuand的网站订购了bladeRF。所有这些用户都能够为bladeRF的代码开发做出贡献。因为bladeRF跟USRP B210一样,使用了FX3,大容量的FPGA和单芯片的射频收发芯片,我估计两款硬件的驱动代码中,有相当一部分可以共享。虽然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页的编程和校准指南,这些对于其他开发者来说都是现成的。
最后的点评
HackRF,是一款覆盖频率最宽,而且价格最低廉的SDR板卡。它几乎所有的信息都是开源的,甚至包括KiCad文件。缺点是它没有FPGA,使用的低速的USB2接口,ADC/DAC的精度比较低。总的来说,HackRF非常适合那些对开放性要求很高的黑客,和那些那些对价格敏感的用户。
bladeRF,它的亮点在于大容量的FPGA和高速的USB3接口。它能够支持比较宽的频段,但是不如另外两者。它的ADC/DAC精度也还不错。我建议那些想脱机运行程序,并且射频频点不需要太高的人们,考虑选择这款硬件,
USRP B100,这是一款比较老的板卡了,不能支持高带宽的应用。它通过替换子板来改变射频频段,最高可以支持到6GHz。它支持UHD接口。B100的价格跟B200是一样的,但能力却比B200差很多。所以我建议,只有当你有一些很特殊的应用,或者你要使用自己开发的子板时,才考虑B100。
最后,我希望人们能够用这三款非常优秀的软件无线电平台,开发出更多新颖的应用。我用了几个星期的时间搜集整理这三款平台的信息,有一些没能收入文中,如果您有任何问题,请在评论中提出。感谢您的阅读,并且欢迎您再回来看看我将要发表的关于B210的测试结果(Alin:到2013年11月27日为止,这个测试结果还未发表)。
Alin评论:
有两款硬件都是USB3.0接口的,说明USB3.0将成为SDR平台的主流接口。这与我们两年前的看法也是一致的。USB3的优点是USB接口数量多,而且很普及,速度也够快。但缺点是传输距离可能不够远,所以我个人认为10G或者更高速率的以太网接口也将是另一种主流的接口。
另外我发现这三款硬件的电路板都印成了黑底白字,比原来绿色的酷多了。看来硬件工程师们也开始注意“柜子背面的板子也要漂亮”了。