首先得有个平台,转载个文章,三款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网站上购买。刚开始,这篇文章是想拿Ettus的USRP B100和N210跟HackRF、bladeRF比较。但当我把初稿发给Ettus公司看的时候,他们说新的USRP B200/210很快就要发布了,而且给我寄了一块开发版的B210。所以后来我重新修订了这篇文章。现在B210已经发布了,可以从Ettus购买。Ettus可能是最老的SDR硬件生产商了。他们已经生产了很多款不同的USRP。USRP B200/210与之前的老款产品完全不同,是“单板”设计,而不再是“母板/子板”的组合。它也使用了USB3接口,支持很宽的射频频段。B200/210有一个新设计的GPSDO接头,可以通过GPS模块把精度调整到几个ppb。B210还是Ettus的第一款独立支持2x2 MIMO的板卡。我会在B210上做一些测试,把测试结果发布在这个博客上。这里还有一些B210的高清晰图片:)下表是三款硬件的对比!(Alin:重点看这个表就够了_)
[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则采用了另一种方案,它使用了多个不同的射频芯片来支持宽频段。如果你看看它的原理图,就会发现它混合了几块芯片,每块芯片负责一段频谱,至少有6个频段切换开关。希望这么多的器件没有给系统引入太多噪声。另外,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来实现5GHz频段的802.11n。现在,bladeRF有计划要发布一块扩展板卡,允许载频降低到10MHz,不过这个计划仍然在进行当中,还没有做出来。
双工性能
值得注意的是,HackRF不同于其他两款硬件,它不支持全双工。这意味着要切换收和发的话,必须每次给控制器发送命令。微控制器处理切换可能要花费微秒级的时间。如果要算上信号到达计算机的时间,切换时间会更长。bladeRF和USRP B210/200都可以支持全双工。USRP B100也支持全双工。有一些比较老的子板在B100上使用的时候,不支持全双工。但大部分的子板都可以支持。根据github上的文档,B200有一个全双工通道。而B210有两个接收机和两个发射机,目的是为了支持2x2 MIMO。两个接收机可以调到同一个频点,发射机同样(可以与接收频点不同)。这样做可以利用无线信道的空间分集,传输更高速率的数据。MIMO技术已经在4G LTE和802.11n系统中实现了。需要注意的是,如果同时进行接收和发送。发射机可能会对接收机产生一些噪声,因为毕竟发射机距离接收机很近。
与主机的通信
对SDR而言,与主机的通信方式是非常重要的,因为它决定了信号的带宽和可靠性。USRP B100和HackRF都使用USB2.0接口。这决定了最高的数据传输速率是35MB/s。然而,由于我们常常会在多个USB接口上插入其他设备,他们是共享带宽的,因此实际的数据速率比这更低。USRP B210/200和bladeRF使用USB3.0接口。它可以支持400MB/s的传输速率。这对于大部分SDR应用来说,带宽已经足够了。与USB2.0类似,多个USB接口会共享带宽。有个潜在的问题是,USB3.0可能会被干扰。Intel警告说,2.4GHz频段的信号可能会对USB3.0造成干扰,建议采取一些屏蔽措施。一个简单的办法是,你可以给板卡包一张锡箔。bladeRF和B210/200的开发者都做了一些测试,并认为这不算什么大问题。bladeRF的射频模块外面是包有外壳的。B210/200也很容易添加铜外壳。另外B210/200的电路板上还有大面积的“铺地”,这也能起到很好的屏蔽作用。经过我的测试,USRP B210与我的ASMedia控制器连接还是有问题的。它只能工作在USB2。实际上在我收到B210之前,Ettus的工程师就提醒过我,ASMedia USB3芯片不完全符合USB3标准。最后,我买了一个PCIe USB3接口卡,它用的是VL805芯片,价格大约$20,现在我可以正常工作在USB3模式了。鉴于bladeRF也用的是FX3芯片,所以我想它可能也跟ASMedia不匹配。
ADC/DAC
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能够处理,计算机是否能够处理如此高速的数据,仍然是个巨大的挑战。实际上,即使仅仅想把这样高速的数据储存下来,都是一件麻烦事。
带宽
把所有的基带数据传到计算机,这是所有SDR硬件最主要的瓶颈,因为数据量实在太大。对使用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,信号处理主要依赖于板上的微控制器。逻辑单元的数量决定了FPGA的处理能力,显然越大越好。FPGA的长处是并行处理,短处是主频一般比微控制器低。如果开发者不是很擅长HDL语言的话,处理效率可能会比较低。在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的这个微控制器能够不连接计算机,就直接变身为一个频谱分析仪。FX3微控制器运行在200MHz主频,有一个ARM926EJ-S内核。这个芯片有GPIF,一旦开启,可以使ARM内核处于IDLE状态。它有512KB的SRAM,没有ROM。这款芯片有几种启动方式,包括USB启动方式,firmware常常用这种方式加载。bladeRF有4MB的SPI Flash,它含有微控制器和FPGA的代码,可以在脱机的情况下支持板卡的运行。B210只有32KB的EEPROM,用于存储一些基础配置程序,没有Flash。因为没有Flash,所以B210/200想要脱机运行的话,是非常困难的。nuand的开发者们希望能够在bladeRF上脱机运行OpenBTS和OpenLTE。已经有在B210上运行LTE系统的例子了,但是是在连接计算机(Core i7处理器)的情况下。能否在FX3上运行LTE系统,很值得怀疑。
开发者社区
软件无线电是个很大的概念,已经存在了十多年。一个硬件平台的使用者论坛或者社区是非常重要的。这些人可以相互提供技术支持,分享新创意。他们推动着创新的车轮持续前进。因此,对于一个生产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。USRP B210/B200,可以支持很宽的频段,也支持高速的接口带宽。它们有大容量的FPGA和快速的USB3接口。不过AD9361这款芯片的开放性略差。B210/B200是三款硬件中价格最贵的。但它们的很多指标已经与Ettus的另一款高端的N210板卡可以媲美。而且,B210还是唯一一款直接支持2x2 MIMO的板卡。我相信B210/B200将是最近市场上,性能最强的SDR平台,而且将得到Ettus公司的大力支持。我建议那些需要高带宽、宽频段,而且不需要脱机使用的应用,考虑这款硬件平台。最后,我希望人们能够用这三款非常优秀的软件无线电平台,开发出更多新颖的应用。我用了几个星期的时间搜集整理这三款平台的信息,有一些没能收入文中,如果您有任何问题,请在评论中提出。感谢您的阅读,并且欢迎您再回来看看我将要发表的关于B210的测试结果(Alin:到2013年11月27日为止,这个测试结果还未发表)。
Alin评论:
有两款硬件都是USB3.0接口的,说明USB3.0将成为SDR平台的主流接口。这与我们两年前的看法也是一致的。USB3的优点是USB接口数量多,而且很普及,速度也够快。但缺点是传输距离可能不够远,所以我个人认为10G或者更高速率的以太网接口也将是另一种主流的接口。另外我发现这三款硬件的电路板都印成了黑底白字,比原来绿色的酷多了。看来硬件工程师们也开始注意“柜子背面的板子也要漂亮”了。