1.5 SDR开发工具
SDR的目的是建立开放式、标准化、模块化的通用硬件平台,将各种功能,如频率、调制方式、数据传输速率、加密模式、通信协议等都用软件来完成,因此软件无线电设备更易于重新配置,从而可灵活地进行多制式切换并适应技术的发展演进。广义上的软件无线电分为三类:
第一类是基于可控制硬件的软件无线电平台。这种平台是将多种不同制式的硬件设备集成在一起,这种方式只能在预置的几种制式下切换,要增加对新的制式的支持则意味着集成更多的电路,重配置能力十分有限。通过设备驱动程序来管理、控制硬件设备的工作模式和状态。
第二类是基于可编程硬件的软件无线电平台。这种平台基于现场可编程门阵列(FPGA)和数字信号处理器(DSP),重配置的能力得到了很大提高。但是,用于FPGA的VHDL、Verilog等编程语言都是针对特定厂商的产品,使得这种方式下的软件过分依赖于具体的硬件,可移植性较差。此外,对广大技术人员来说,FPGA和DSP开发的门槛依然较高,开发过程也相对比较烦琐。
第三类是基于通用处理器的软件无线电平台。针对以上两类的缺陷,第三类软件无线电平台采用通用处理器(例如,商用服务器、普通PC以及嵌入式系统)作为信号处理软件的平台,具有以下几方面的优势;纯软件的信号处理具有很大的灵活性;可采用通用的高级语言(如C/C++)进行软件开发,扩展性和可移植性强,开发周期短;基于通用处理器的平台,成本较低,并可享受计算机技术进步带来的各种优势(如CPU处理能力的不断提高以及软件技术的进步等)。
1.5.1 基于可控制硬件的软件无线电平台
在通用计算机系统中,设备驱动程序是用来改变无线设备功能的软件机制。当前一些针对802.11设备的驱动程序允许通过软件访问并控制设备的一些有限的内部状态(例如,传输速率、功率)、更改802.11管理层的非实时行为操作。例如,针对Atheros芯片组的Mad Wi Fi的驱动程序、针对Prism芯片组的Host AP驱动程序以及针对Ra Link芯片组的RTX200驱动程序。然而,它们不允许更改802.11协议相关的数据,如MAC(Media Access Control)层数据的格式、物理层信号处理。通过设备驱动程序控制设备,只能在一定范围内更改特定设备的功能及行为,而这种设备仅能支持某一种或几种物理层协议,并不能改变物理层信号处理流程,无法获取物理层的额外信息(如误码率、信噪比、信道状态),也就无法改进物理层算法,更不能变更物理层协议。
Soft MAC更进了一步,基于廉价的商业Wi-Fi网卡构建了一个实验平台,可以实现自定义的MAC协议。基于Mad Wi Fi驱动程序以及相关的开源硬件抽象层,Soft MAC通过控制和禁用默认的底层MAC行为,以提供更灵活性MAC功能。但是,Soft MAC并不提供一个完整的软件无线电平台,它将驱动软件和硬件的功能固件分离开,一些时间紧迫的MAC任务及物理层信号处理仍然在硬件设备上完成。因此,Soft MAC仅适合做MAC层的协议实验。
1.5.2 基于可编程硬件的SDR平台
目前较流行的基于可编程硬件的软件无线电平台有SODA(Signal Processing On Demand Architecture)、WARP(Wireless Open-Access Research Platform)和SFF(Small Form Factor),下面具体介绍这几个平台的系统参数及性能。
1.ODA系统
SODA是由密歇根大学基于DSP多处理器开发的软件无线电系统,它由多个数据处理器和一个控制处理器组成,全局存储器连接到一个共享总线。每个数据处理器由5个主要部分组成:SIMD(Single Instruction Multiple Data)单元用于支持向量操作;标量流水线用于执行顺序操作;两个本地缓存;地址生成单元(Address Generation Unit,AGU)提供为本地存储器的访问;可编程DMA(Direct Memory Access)单元用于本地存储器与外部系统之间传输数据。SIMD单元由32路16位数据通路组成,它用于处理计算密集型算法。每个数据路径包括2个读端口,1个写端口和1个16位乘法单元,乘法器运行在400MHz。处理器内部支持数据随机移动,同时SIMD单元可以直接对标量单元的结果进行处理,支持矢量数据求和、找最大值和最小值等操作。这些操作可以简化数字信号处理过程。图1.10所示为SODA系统结构。目前,基于SODA已经实现了WCDMA和802.11a协议。
2.ARP系统
WARP是Rice大学针对科研工作开发的一个无线通信开放研究平台,基于FPGA开发,可以实现物理层和网络层功能,具有可扩展性高、配置灵活的优点。一套WARP集成了一个Xilinx Virtex-6LX240TFPGA用于实现信号处理算法及子版控制逻辑、2个射频子模块、1个千兆以太网口等。每个射频模块可以工作在2.4GHz和5GHz频带,最大支持40MHz带宽。ADC与DAC的精度为12bit,ADC的转换速率为100MSPS(Million Samples Per Second),DAC的转换速率为170MSPS。各射频子版共享相同的采样和射频参考时钟,可以构成MIMO(Multiple Input Multiple Out)应用。图1.11所示为WARPv3的硬件图。
图1.10 SODA系统结构
图1.11 WARPv3硬件图
3.FF系统
SFF软件无线电平台是一个独特的新产品,如图1.12所示,由得州仪器公司研发,专门用于满足军方、公共安全以及贸易市场对便携式软件无线电平台的需要。它应用了Lyrtech专有的最新FPGA及DSP设计技术,成为一种低功耗、现货供应的软硬件集成开发解决方案。SFF开发平台有3个不同的模块——数字处理模块、数据转化模块和射频模块,它们可以为开发者提供高度灵活的开发能力。SFF体积小便于携带,功能完备且独立,平台上集成了GPP(General Purpose Pocessors)、DSP和FPGA,方便实现一个完整的、无线电系统的所有协议层。每一个处理器都配备有嵌入的、独立的功率监测系统,覆盖了从基带到天线端的处理能力。SFF提供片上系统,配备14位双通道ADC转换器,转换速率为125MSPS、16位双通道数模转换器,转换速率为500MSPS。射频模块工作在360~960MHz,可选择的带宽为5~20MHz。
图1.12 SFF软件无线电平台
1.5.3 基于通用处理器的软件无线电平台
1.SRP
USRP(Universal Software Radio Peripheral,通用软件无线电外设)是目前被广泛使用的基于通用处理器的软件无线电平台,该平台由MIT设计,由USRP硬件前端和对应的软件开发套件GNU Radio组成,下面具体介绍其功能及性能。GNU Radio是由MIT提供的免费软件开发套件,提供了信号实时处理的软件和低成本的软件无线电硬件,用它可以在低成本的射频硬件和通用处理器上实现软件无线电。这套套件广泛用于业余爱好者,学术机构和商业机构用来研究和构建无线通信系统。GNU Radio的应用主要是用Python编程语言来编写的,但是其核心信号处理模块是C++在带浮点运算的处理器上构建的。因此,开发者能够简单快速地构建一个无线通信原型系统。但是,受限于其信号处理的软件实现方式,它只能达到有限的信号处理速度,并不能满足高速无线通信协议中大计算量需求。
USRP是与GUNRadio配套的硬件前端设备,是Matt Ettus的杰作,它可以把PC连接到射频前端(Radio Frontend,RF)。本质上它充当了一个无线电通信系统的数字基带或中频部分。USRP产品系列包括多种不同的模型,使用类似的架构。母板由以下子系统组成:时钟产生器和同步器、FPGA、ADC、DAC、主机接口和电源调节。这些是基带信号处理所必需的组件。一个模块化的前端,被称为子板,用于对模拟信号的操作,如上/下变频、滤波等。这种模块化设计允许USRP为0~6GHz之间运行的应用程序提供服务。USRP在FPGA上进行一些数字信号处理操作,将从模拟信号转换为数字域的低速率、数字复信号。在大多数应用中,这些复采样信号被传输到主机内,由主机处理器执行相应的数字信号处理操作。FPGA的代码是开源的,用户可以自行修改,在FPGA上执行高速、低延迟的操作。
USRP1提供了入门级的射频处理能力,为用户和应用程序提供低成本的软件无线电开发功能。该架构包括Altera公司的Cyclone FPGA,ADC采样率为64MSPS,精度为12比特,DAC转换率为128MSPS,精度为14bit,通过USB2.0与主机相连。USRP1平台可以支持两个完整的射频子板,工作在0~6GHz。这一特性使得USRP可以隔离发送链和接收链,为双频发射/接收操作提供了理想选择。USRP1与主机之间的数据传输速率达8MSPS,并且用户可以实现在FPGA架构中的自定义功能。
USRP2是继USRP之后开发的,于2008年9月面世。之后由USRP N200和N210取代。USRP N210提供更高带宽、高动态范围处理能力。USRP N210适用于对处理速度要求严格的通信应用。产品架构包括一个Xilinx的Spartan3A-DSP3400 FPGA,100 MSPS的双通道ADC,400 MSPS的双通道DAC和千兆以太网接口用于将数字信号在主板和主机之间传递。USRP N210釆用模块化设计,工作范围为0~6GHz,利用扩展端口允许多个USRP N210系列设备进行同步,级联成为MIMO模式。一个可选GPDSO模块可以被用于将USRP N210的时钟与GPS(Global Positioning System)时钟同步,误差范围为0.01PPM(Part Per Mil-lion)。
USRP N210与主机之间的传输速率达50MSPS。用户可以在FPGA架构中实现自定义的功能,在主板上还有一个32位RISC(Reduced Instruction Set Computing)结构处理器。FPGA在接收和发送方向提供了高达100MSPS的数据处理速度。通过千兆以太网接口可以对FPGA的固件重新加载。USRP采用模块化设计,母板可以与不同的射频板连接,各射频板可工作在不同的频段,提供不同的带宽,例如:XCVR2450射频板可以工作在2.4~2.5GHz,带宽为33MHz;WBX射频板工作在50MHz~2.2GHz,带宽为40MHz。图1.13所示为USRP1、USRP N210及射频板XCVR2450的产品图。
图1.13 USRP的产品
2.ora系统
微软研究中心开发的软件无线电Sora(Microsoft Research Software Radio)是一种新型的软件无线电平台。它拥有PC架构的编程框架。Sora是高性能、高可靠性“硬件SDR”平台与灵活、可编程的“GPPSDP”平台的结合。Sora采用先进的软件和硬件技术,解决了PC架构实现“高速SDR”的这一难题。Sora项目旨在开发一个最先进的软件无线电系统,能够快捷而有效地实现当前最前沿的无线通信技术。Sora已于2015年正式通过Git Hub开源。
SDR利用软件来实现通信系统中的底层操作,从而可以快捷地开发、调试以及进行后期的更新维护。其主要挑战在于,其性能能否赶上专用硬件平台。面对这一挑战,微软研究员开发了Sora。Sora是一个完全可编程的,高性能的软件无线电系统,可以用于实现当前前沿的无线通信技术(Wi-Fi、LTE、MIMO等)。Sora运行于低成本的商用多核个人计算机上,并使用通用的Windows操作系统。一个多核商用个人计算机,一块定制的射频控制接口板(RCB),再加上第三方的射频模块,就组成了一个强大的无线通信系统。射频控制接口板负责在个人计算机主存和射频模块之间传递高速的无线采样信号(I/QSamples),而所有的底层信号处理全部运行在软件上,如图1.14所示。
图1.14 Sora的系统架构
目前,已有50多家大学和科研机构在科研和教学中使用Sora。完全开源的Sora系统具有很多特性,其中包括:
(1)支持定制的射频前端。
(2)支持定制的RCB(包括可定制的时间控制和同步机制,新的加速器等)。
(3)支持新的通信模式,例如全双工无线通信等。
Sora已经赢得了许多学术奖项,比如TV Whitespace、大规模MIMO以及分布式MIMO系统等。可以预见,开源的Sora有助于研究团队更好地利用并推动SDR技术的发展。