LimeSDR 中文教程 (一)

行业应用及合作请联系: [email protected]

(本文所有图片请参考Myriadrf官网原文:https://myriadrf.org/blog/limesdr-made-simple-part-1/)

这是LimeSDR平台系列教程的第一篇,这个教程的目标是帮助你实际使用SDR,在学完后你就能够有足够的信心自己写SDR程序。

 

什么是SDR?

可能大多数读者都知道SDR是什么。我们可以把它与传统无线电的对比就好像是一整个包含全套螺丝刀、锯子和打洞工具的工具箱和一把单纯的螺丝刀的区别。 

 

 

 

 

 

 

 

 

 

 

 

 

 

也许这样你还不能理解。那么可以参考维基百科的定义:

软件无线电SDR是把传统中用硬件实现的部件(比如,混频器,滤波器,放大器,调制/解调器,检波器等)用软件实现。

 

实际上,SDR还可以实现更多的功能,无法用一句话来简单概括。这个技术还刚起步,我们还在尝试开发它的新应用。我们的软件和硬件都是很灵活的。我们开发的可以不止是软件,也可以是在可编程的硬件上做开发。比如CPLD和FPGA开发,或者是ASIC实现。也可以是一部分软件和一部分硬件的混合开发。关键在于灵活性。

 

 

目前实际用途在哪里?

你可能会认为SDR是新一代的技术,但是我从来没听过实际用途。到底有没有人在使用呢?实际上世界上已经有无数SDR设备,你的屋子里可能就有。

 

我本人在机顶盒领域工作多年,我了解到目前的趋势是固定的调谐器/解调器都被“全频段捕获”前端替代。大多数高端机顶盒尤其是这样。这与我们的问题有关吗?当然,全频段捕捉的前端就相当于SDR。ADC和DSP正在取代传统的前端IC。

 

LimeSDR

尽管有多种选择,目前市场上性价比最高的还是LimeSDR。LimeSDR支持100kHz~3.8GHz的频率范围。

 

我们可以通过应用来了解一下其灵活性:

蜂窝、WiFi、蓝牙、IoT协议(LoRa/SigFox等)、导航、气象信息、航空信息、海事信息、空间通信、还有广播和电视。这只是LimeSDR支持的一部分通信方式,你还可以用于其他你想得到的领域。

 

我们现在了解了LimeSDR是低价、开源、支持现成APP的软件无线电平台,它能支持几乎所有通信标准。这意味着由于LimeSDR的开源特性,所有软硬件都可以研究和修改。原理图、布局、零件清单(BOM)和软件都可以根据Createive Commons和Apache 2.0协议使用。

 

 

LimeSDR的核心部分是LMS7002芯片,它是可编程的射频集成电路。简单说来,LMS7002是有点像射频领域的FPGA。这个教程后期我们会进一步探索LMS7002,会研究它的详细功能。

 

RF连接

LimeSDR有两对接收/发射通道,可以只用于接收,也可以实现2x2 MIMO,你可以看到一共有10个RF接口,但是IC只支持2个接收和2个发射,这是为什么?因为我们的接收和发射口都分别对低频段和高频段做了优化(所以这样就用到了8个口),然后剩余的2个口是接收通道的宽频段接口。要把每个通道的接口合并为一个是很困难的。我们目前的设计既可以保证灵活性又可以保证性能。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这些口对应的具体频率如下:

TX1_1/TX2_1=宽频段

TX1_2/TX2_2=宽频段

RX1_1/RX2_1=低频段 <1.5GHz

RX1_2/RX2_2=高频段 >1.5GHz

RX1_3/RX2_3=宽频段 100kHz~3.8GHz

 

尽管匹配电路设计,使得频率范围是现在这样,但是这是可以后期修改的。这个有一定难度,最好完整理解原理后才去着手操作。

 

还有一点,灵活性高的解决方案会导致一些性能下降。这个系统支持很多应用,因此主要着重于灵活度。

 

宽带RX口的性能一般会比高频段和低频段专用口差,低/高频段口也是专门为宽带应用设计,因此我们可能要做一些修改。比如说,对于某个特定频率需要额外的灵敏度。作为例子,你可以看一下Danny Webster写的针对短波的修改。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其它应用

板子另外一头是USB 3.1接口和可选的电源口。大多数情况下LimeSDR可以只用USB供电,只是要记住,板子的需求比USB 2.0 500mA的标准高。尽管大部分USB 2.0设备能提供足够的功率,但是还是可能不够。如果可能,还是推荐使用USB 3.x的口,它保证提供900mA电流。USB 2.0口还可能限制带宽,所以推荐USB 3.x口。

 

说到功率,对于某些应用你可能还要加功放,但是低功率的无线电应用可以不需要额外硬件。

 

对于2.4GHz频段的应用,USB 3.x可能造成很多谐波干扰。有些线缆和电脑的电磁屏蔽不好,可能会提升底噪,造成无法正常通信。最常见的情况是USB 3.x干扰了WiFi信号。如果发生这种情况,你可以考虑使用USB 2.x(带宽降低)或者想办法做屏蔽。

 

USB控制 

 

Cypress USB3.0 CYUSB3014-BZXC(EZ-USB FX3)。这个设备写入了VID/PID,会被LimeSDR驱动识别。这个芯片里的代码都是开源的,如果你有需要可以自己做修改。

 

注意在Windows中,这个设备在设备管理器中显示的是Myriad-RF LimeSDR-USB而不是LimeSDR。

 

J19可能在一些应用中很有用。它是8个GPIO口,可以用API调用,作为输入和输出。注意它们是被板载FPGA驱动的,它们电流较低,并且只支持3.3V的电压。

 

我们推荐你对连接在GPIO口上的设备单独供电。但是我们还是提供了一个3.3V电源口,可以用来给低功耗设备供电。

 

板子上还有两个JTAG口,但是大多数人不会去用,只有高级应用才会用到。

 

FPGA

LimeSDR板子上最后一个主要组件是Altera Cyclone IV,它支持一定程度上的后端处理,波形生成,并且作为这个板子上其它部分之间的接口。 

 

和EZ FX3芯片一样,FPGA内的代码也是根据Apache 2.0协议免费提供的,你可以自己修改,设计出自己的固件。

 

从哪里开始

你可以先购买一个LimeSDR。

 

接下去的教程会讲Lime Suite和Pothos的安装(Windows用户需要PothosSDR安装包)。注意安装教程可能会有更新,所以和我们的教程会有少许区别。

 

最后你可以参考快速测试一文来运行一些例子。

 

这些软件都是做什么用的?

和LimeSDR硬件一样,LimeSDR的软件提供了很高的灵活性,你可以以它们为基础来做自己的开发。我们可以简单分为3块:

 

初学者(界面/简单的程序)

中层用户(代码和API)

专家(底层API)

 

最高级开发需要你对LMS7002M芯片深入了解。这个系列教程会帮你一步步走向这个级别。

 

与SoapySDR有关的知识可以在之前的文章里找到。

 

下一篇文章,我们会讲到RF输入,以及LMS7002芯片,我们会了解到Lime Suite里的控制选项。

你可能感兴趣的:(LimeSDR中文教程)