灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

面对日益增多的无线标准,在设计复杂型RF产品时所需考虑的因素也愈来愈多。为兼容各种无线标准,无论是方案选型、器件选购,还是电路设计布局等都对开发者提出了更加严峻的考验。这时,你是否迫切需要一种具备灵活可配置、支持“无限”升级的可编程RF平台?这样,你就无需针对不同的无线标准构建不同的硬件平台,只需单一一种方案,或者一款芯片,通过简单的软件修改,即可满足不同的市场需求,省时又省力。

说到这,可能大多数有经验的工程师都想到了SDR。SDR并不是一个新概念,相反,它很早就出现,但是,通常人们对SDR还停留在错误观念,比如“SDR是以牺牲性能和特性为代价,换取灵活性的”,真的是这样的吗?相信看完本文可以改变你的看法。今天,我们就来了解一款不同寻常的SDR产品——ADI ADALM-PLUTO SDR主动学习模块,这款产品的火爆程度直接导致了前段时间一直处于有市无价的状态。

SDR即软件定义的无线电(Software Defined Radio),简单来说,SDR设备能将接收到的信号进行数字化处理,通过软件的可重配置再将信号按照不同的通信协议需求发送出去,这样,通过软件修改我们就能产生或接收不同频率与协议的无线电信号,无论收音机的AM、FM,还是Wi-Fi、蓝牙,甚至3G、4G,还有将来的5G等都能用SDR设备进行收发调试,这种方式也打破了有史以来设备通信功能的实现仅仅依赖于硬件发展的格局,意义深远。

ADALM-PLUTO SDR主动学习模块开箱&外观(下文都简称PlutoSDR)

相比市面上动辄几万的SDR设备,PlutoSDR的价格明显要亲民多,整个套件在ADI官方代理商贸泽电子(MOUSER)上的价格为758元,但是笔者也在第三方的平台看到了99美金的价格,有点诧异,要知道,模块本身板载的RF捷变收发器单颗芯片的报价就要80美金左右(和目前高通最新旗舰SoC骁龙845的价格差不多了),99美金卖的完全是“交个朋友”的价格嘛,超高性价比的实验平台。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

从打开的包装盒来看,PlutoSDR套件自带的配件不多(相信使用的时候也会非常简单),包括:

  • ADI PlutoSDR 主动学习模块
  • 两根天线(如下图,已经安装在PlutoSDR上了,824 MHz~894MHz/1710 MHz~2170 MHz)
  • 一根 15cm SMA线
  • 一根 MicroUSB线灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

实际看到实物还是挺惊讶的,PlutoSDR非常小巧,简单对比下,还没5.5英寸屏幕的iPhone大,完全可以直接装在衣服口袋中携带。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

从ADI官方的介绍来看,千万别被PlutoSDR小巧精致的外观欺骗了,它实质是一个非常强悍的SDR RF方案,总体硬件方案采用了ADI的高集成RF捷变收发器AD9363+Xilinx Zynq Z-7010 SoC,支持:

  • RF频率范围:325 MHz至3.8 GHz
  • 瞬时带宽最高达20 MHz
  • 灵活速率、12位ADC和DAC
  • 一个发射器和一个接收器,半双工或全双工
  • 支持MATLAB、Simulink
  • GNU无线电吸电流和源电流模块
  • libiio、C、C++、C#和Python API
  • USB 2.0供电接口,带有Micro-USB 2.0连接器

具体的一些参数可以参考下表:

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

来看下PlutoSDR的一些细节,开发板用深蓝色的高质量塑料外壳包裹,两边还带防滑胶,手感出众,壳体只留出了天线以及MicroUSB电源、MicroUSB 2.0通信/供电接口、“设备”按键孔(用于实现手动进入DFU模式)。

如下图所示,值得一提的是,MicroUSB 2.0接口(下图左边)除了供电外还支持众多丰富的功能:

  • 大容量存储(用于轻松更新固件)
  • 串行(用于与 PlutoSDR 上的 Linux 内核 / 用户空间交互)
  • 联网 /RNDIS(用于加载和控制自定义 ARM应用)
  • Libiio(大容量 USB,用于 SDR 数据传输和控制)
  • 设备固件升级(用于备份固件升级)

通过更新固件的方式,此MicroUSB接口甚至还可以支持USB OTG功能,可以连接USB WiFi,USB有线网络、USB音频等设备,当然,这时供电需要通过(下图右边)MicroUSB电源接口供电。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

PlutoSDR具备独立的接收和发射通道,可在全双工模式下工作,可以实现在325MHz~3800MHz宽频率范围内以最高每秒61.44MSPS 产生或捕获RF模拟信号。PlutoSDR自带的天线为824 MHz 至 ~894MHz/1710 MHz 至 ~2170 MHz,所以要实现其它频段的RF接收发送还需要配不同的天线。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

PlutoSDR拆解

以上只是PlutoSDR外部的一些接口情况,接下来我们拆开看看内部又是如何的?

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

拆掉外壳给人第一眼的感觉就是“空旷”,除了一些IC器件外,板载的其它被动元器件很少,尤其在RF这块区域,这种情况更明显,由此不难看出板子搭载的这颗AD9363 RF捷变收发器集成度之高,另外,可能是因为采用了10层板的缘故,整个板子PCB走线看起来似乎很简单,可能会让有些硬件工程师跃跃欲试自己DIY一款SDR设备。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

PlutoSDR整个PCB上的器件布局如下图所示,泾渭分明的器件布局,很容易理解。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

背面没什么IC器件,只有一些被动电子元件。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

ADI AD9363 RF捷变收发器

再来看下板子上主要的一些芯片,ADI AD9363 RF捷变收发器。从下图实际的PCB电路上也能明显看到AD9363外围基本没什么其它器件,只需注意一些射频布线以及电源供给,硬件设计可以说是相当的简单。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

AD9363是一款高度集成的单芯片RF解决方案,要了解清楚这款芯片,可以通过以下的一个整体硬件系统框图来了解。灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

在AD9363的接收端,包括一个LNA、Mixer(混频器)、Filter(可配置的模拟滤波器)、ADC、Filter(数字滤波器)以及产生一个12bit信号的FIR,同时接收链路上还有自动增益控制或者人工增益控制、直流失调校正、正交校正,最终接收到的I和Q信号会传输到数字基带处理器,也就是板子上的Zynq FPGA;

了解了接收端,发射端相对就容易理解了,相当于反过来。在AD9363的发射端同样使用了一个直接转换的架构,从基带处理器(Zynq FPGA)出来的I和Q信号首先通过FIR、然后通过数字滤波器、DAC、模拟滤波器、混频器,最后通过PA传输到天线上去。

当然,看到实际RF电路设计如此简单就差不多能猜到,AD9363集成了完整的PLL,为发射链路和接收链路提供时钟和本地振荡器,同样也为ADC、DAC、采样提供时钟。

AD9363 RF捷变收发器主要针对各种低功耗无线应用而设计,比如毫微微蜂窝、DAS、无线视频传输等,其主要特点如下:

  • 集成12位DAC和ADC的射频(RF) 2 × 2收发器
  • 宽带宽:325 MHz至3.8 GHz
  • 支持时分双工(TDD)和频分双工(FDD)工作模式
  • 可调谐通道带宽(BW):最高20 MHz
  • 接收器:6路差分或12路单端输入
  • 出色的接收器灵敏度,噪声系数为3 dB
  • 接收(Rx)增益控制:实时监控和控制信号用于手动增益;独立的自动增益控制(AGC)
  • 双发射器:4路差分输出
  • 高线性度宽带发射器:发射(Tx)误差矢量幅度(EVM):-34 dB;Tx噪声:≤−157 dBm/Hz本底噪声;Tx监控器:66 dB动态范围,精度=1 dB
  • 集成式小数N分频频率合成器
  • 2.4 Hz本振(LO)步长
  • CMOS/LVDS数字接口

SDR无线设备通常由一个可配置的射频前端和一个用于实现数字功能的现场可编程门阵列 (FPGA) 或可编程片上系统 (SoC) 组合而成,PlutoSDR自然也不例外。在上文我们已经知晓,PlutoSDR选用了Xilinx Zynq XC7Z010作为数字基带处理器,Xilinx Zynq XC7Z010事实上已经不能简单的理解为FPGA,称之为SoC更恰当,它包含了一个ARM Cortex-A9处理器以及一个硬件可编程的FPGA,通过集成CPU,DSP,ASSP以及混合信号功能单元可以轻松实现硬件加速。关于Xilinx Zynq XC7Z010 SoC的介绍,可以参考爱板网之前的评测文章,在本文就不重复介绍了。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

FPGA与外部通信是通过SMSC USB3320C的USB收发器实现的, USB3320C与FPGA通过ULPI接口通信,可以实现诸多上文介绍的功能,如大容量存储、固件更新、串行通信等。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

靠近两个MicroUSB接口旁的则是ADI自家的功率器件ADP2114A 稳压降压器,为整个RF系统提供稳定的电压。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

下图中,AD9363RF捷变收发器下方的U1,U7为ADI的LDO ADP1755,为RF收发器提供1.3V供电。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

所以综合来看,ADI PlutoSDR的整个硬件框图如下所示:

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

PlutoSDR上电使用

了解PlutoSDR的基本参数以及硬件结构后,我们实际上电瞧瞧,看看PlutoSDR到底该怎么用?可以实现哪些功能或者实现什么样的测试评估?

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

就地取材最为方便,可以通过PlutoSDR本身自带的配件进行一些测试,套件附带的SMA线可以实现有线的接收端和发射端互联,实现类似频率发射和采集,自带的天线也可以实现无线的发射和采集,MicroUSB线即可实现供电,又能实现固件更新等功能。

前面我们已经介绍过PlutoSDR的MicroUSB 2.0接口功能众多,确实,上电后发现所需要安装的驱动也很多,唯一一个不需要安装驱动就能使用的功能就属大容量存储了,它可以支持更新固件,非常好用方便。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

其它的驱动也好在ADI官方都打包在一个安装包下,windows驱动安装:下载地址

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

安装完驱动,就可以正式开用了,串口不用多介绍,其中PlutoSDR IIO USBD则是使用ADI的IIO示波器软件所需要用到的通信接口。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

另外,PlutoSDR还有一个DFU模式,这个模式下可以更新固件。上面都说通过大容量存储更新固件比较方便,那为何还要进入DFU模式更新固件?很简单,万一PlutoSDR内部固件不小心玩坏了,都无法显示大容量存储或者通过大容量存储无法更新固件,那只能靠进入DFU模式更新了,很有必要的功能。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

笔者初始拿到的PlutoSDR的固件版本为V0.26,通过大容量存储U盘模式下的config页面可以看到最新的固件版本V0.27,所以正好测试了下通过大容量存储方式对固件的版本进行更新。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

如下图所示,更新的固件为pluto.frm,另一个pluto.dfu则为通过DFU更新的固件文件。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

文件大小8.8MB左右,更新的时间没有官方描述的4分钟左右,差不多3分钟时间就好了,毕竟内部编程交互还是受制于通信接口的。更新过程中LED1会快速闪烁,更新完会恢复原样。

  • IIO Oscilloscope

IIO Oscilloscope 可以算是一个应用程序,类似频谱分析仪的界面,可以获取时域、频域、星座、互相关这四种模式下的数据,同样,我们还可以修改一些参数来评估PlutoSDR。IIO Oscilloscope软件下载:下载地址

在连接上,IIO Oscilloscope支持USB模式和网络连接模式(通过IP),但其实使用后才发现这个软件并不是专为PlutoSDR准备的,从软件的设置上来看,是针对ADI AD9361/AD9364使用的,AD9363算是借用了这个软件平台。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

比如设置接收1800MHz的频率

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

实际接收到的1800MHz的FFT 频域显示,底噪偏高,毛刺有点多。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

另外,有一个特别有意思的事,使用这个软件在设置超过3.8GHz的频率是无法实现的,这也符合PlutoSDR这个产品的RF参数,不过我们通过串口将环境设定为AD9364(方法如下),可以实现接受6GHz的频率,不知道是个bug还是本身AD9363的性能就能达到,只不过被限制了。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

在串口打印的界面输入以下设定:

#fw_setenv attr_name compatible

#fw_setenv attr_val "ad9364"

#pluto_reboot reset

之后重启PlutoSDR重新查看设备,能明显看到已经被设置成AD9364,这才是这个套件开启牛逼之路的点睛之笔。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

附上一张AD9363与AD9364的对比图,你就能明白这种“破解”意味着什么。

    产品 型号
      RF频率范围
带宽

AD9363
325 MHz~3.8 GHz
20 MHz

AD9364
70 MHz~6.0 GHz
56 MHz

  • MATLAB&Simulink

PlutoSDR支持的开发工具非常丰富,比如开源软件gqrx/GNURadio,MATLAB,Simulink等,接下来主要来看下PlutoSDR与MATLAB&Simulink这两个主流的工具之间的使用。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

要让PlutoSDR顺利在MATLAB平台上使用,需要安装必要的支持包adalmplutoradio.mlpkginstall:下载地址

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

 

不过在硬件连接这步非常的坑,笔者原本已经将PlutoSDR的固件更新到最新的V0.27版本,结果提供的支持包只能推荐使用V0.26固件,无奈又更新了回去。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

官方也提供了4个基于MATLAB&Simulink的例程应用。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

不过笔者测试下来,目前只有Spectral Analysis with ADALM-PLUTO与FM Receiver Using ADALM-PLUTO可以无门槛的使用,其它两个,Airplane Tracking Using ADSB Signals需要Mapping Toolbox支持,Transmitting and Receiving Images Using ADALM-PLUTO需要WLAN System Toolbox支持,需要申请试用或者购买。

FM Receiver Using ADALM-PLUTO例程

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

Spectral Analysis with ADALM-PLUTO例程主要是在基带上执行基于FFT的频谱分析,并提供接收器无杂散动态范围的视图以及接收信号的SNR质量,如下图所示。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

PlutoSDR可折腾的内容实在太多了,比如可以使用shell scripts、C&C++、Python构建自己的应用,可以使用Wifi Dongles、Wired Ethernet Dongles等来扩展PlutoSDR,甚至我们还可以结合树莓派、BeagleBone、ARM认证的96Boards等平台配合PlutoSDR开发,本文不过是PlutoSDR全部功能的冰山一角,如有有兴趣的朋友不放前往ADI官方购买,目前学术的价格仅售99美金,具有超高的性价比。

小结

本文介绍了ADI推出的ADALM-PLUTO 主动学习模块 (PlutoSDR),包括硬件组成、配套的软件、资料、开发环境,PlutoSDR依托于清晰简明的上手教程,很容易上手使用,有助于向电气工程及通信相关专业学生介绍软件定义无线电 (SDR)、射频 (RF)和无线通信的基础知识,当然,对于SDR感兴趣的工程师,极客也可以通过PlutoSDR实现更多创新的设计。

面对愈加复杂多变的RF系统,PlutoSDR结合了AD9363+Xilinx Zynq Z-7010 SoC,提供可重复使用且适应未来发展的无线电开发测试平台,包括软件可配置性和控制、优化的系统性能、更小的系统尺寸以及最小化设计风险和上市时间,PlutoSDR作为ADI新一代高性价比、高度集成式SDR原型制作和开发平台是非常值得入手。

贸泽在线购买:

  • PlutoSDR购买

面对日益增多的无线标准,在设计复杂型RF产品时所需考虑的因素也愈来愈多。为兼容各种无线标准,无论是方案选型、器件选购,还是电路设计布局等都对开发者提出了更加严峻的考验。这时,你是否迫切需要一种具备灵活可配置、支持“无限”升级的可编程RF平台?这样,你就无需针对不同的无线标准构建不同的硬件平台,只需单一一种方案,或者一款芯片,通过简单的软件修改,即可满足不同的市场需求,省时又省力。

说到这,可能大多数有经验的工程师都想到了SDR。SDR并不是一个新概念,相反,它很早就出现,但是,通常人们对SDR还停留在错误观念,比如“SDR是以牺牲性能和特性为代价,换取灵活性的”,真的是这样的吗?相信看完本文可以改变你的看法。今天,我们就来了解一款不同寻常的SDR产品——ADI ADALM-PLUTO SDR主动学习模块,这款产品的火爆程度直接导致了前段时间一直处于有市无价的状态。

SDR即软件定义的无线电(Software Defined Radio),简单来说,SDR设备能将接收到的信号进行数字化处理,通过软件的可重配置再将信号按照不同的通信协议需求发送出去,这样,通过软件修改我们就能产生或接收不同频率与协议的无线电信号,无论收音机的AM、FM,还是Wi-Fi、蓝牙,甚至3G、4G,还有将来的5G等都能用SDR设备进行收发调试,这种方式也打破了有史以来设备通信功能的实现仅仅依赖于硬件发展的格局,意义深远。

ADALM-PLUTO SDR主动学习模块开箱&外观(下文都简称PlutoSDR)

相比市面上动辄几万的SDR设备,PlutoSDR的价格明显要亲民多,整个套件在ADI官方代理商贸泽电子(MOUSER)上的价格为758元,但是笔者也在第三方的平台看到了99美金的价格,有点诧异,要知道,模块本身板载的RF捷变收发器单颗芯片的报价就要80美金左右(和目前高通最新旗舰SoC骁龙845的价格差不多了),99美金卖的完全是“交个朋友”的价格嘛,超高性价比的实验平台。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

从打开的包装盒来看,PlutoSDR套件自带的配件不多(相信使用的时候也会非常简单),包括:

  • ADI PlutoSDR 主动学习模块
  • 两根天线(如下图,已经安装在PlutoSDR上了,824 MHz~894MHz/1710 MHz~2170 MHz)
  • 一根 15cm SMA线
  • 一根 MicroUSB线灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

实际看到实物还是挺惊讶的,PlutoSDR非常小巧,简单对比下,还没5.5英寸屏幕的iPhone大,完全可以直接装在衣服口袋中携带。

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

从ADI官方的介绍来看,千万别被PlutoSDR小巧精致的外观欺骗了,它实质是一个非常强悍的SDR RF方案,总体硬件方案采用了ADI的高集成RF捷变收发器AD9363+Xilinx Zynq Z-7010 SoC,支持:

  • RF频率范围:325 MHz至3.8 GHz
  • 瞬时带宽最高达20 MHz
  • 灵活速率、12位ADC和DAC
  • 一个发射器和一个接收器,半双工或全双工
  • 支持MATLAB、Simulink
  • GNU无线电吸电流和源电流模块
  • libiio、C、C++、C#和Python API
  • USB 2.0供电接口,带有Micro-USB 2.0连接器

具体的一些参数可以参考下表:

灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

  • 灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解已关闭评论
    A+
发布日期:2019年07月03日  所属分类:参考设计