新闻中心

EEPW首页 > 设计应用 > GNU Radio:开放的软件无线电平台

GNU Radio:开放的软件无线电平台

作者:时间:2013-11-11来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/259666.htm

1、技术发展现状

J.Mitla在1992年首次提出了的概念,此后该技术一直受到业界的广泛关注和研究。与传统的无线电设备相比较,在中,诸如信号发生、调制/ 解调、信道编译码等信号处理过程以及协议栈皆由软件实现,而不是固定电路,因此软件无线电设备更易于重新配置,从而可灵活地进行多制式切换并适应技术的发展演进。广义上的软件无线电分为三类。a)将多种不同制式的设备集成在一起, 例如现在市场上的GSM-CDMA双模手机。显然,这种方式只能在预置的几种制式下切换,要增加对新的制式的支持则意味着集成更多的电路,重配置能力十分有限。b)基于现场可编程门阵列(FPGA) 和数字信号处理器(DSP),这类可编程硬件,重配置的能力得到了很大提高。但是用于FPGA的VHDL、Verilog等语言以及418 的汇编语言都是针对特定厂商的产品,使得这种方式下的软件过分依赖于具体的硬件,可移植性较差。此外,对广大技术人员来说,FPGA和DSP开发的门槛依然较高,开发过程也相对比较繁琐。c)针对以上两类缺陷,第三类软件无线电设备采用通用硬件(例如:商用服务器、普通PC以及嵌入式系统)作为信号处理软件的平台,具有以下几方面的优势:纯软件的信号处理具有很大的灵活性;可采用通用的高级语言(如C/C++)进行软件开发,扩展性和可移植性强,开发周期短;基于通用硬件的平台,成本较低,并可享受计算机技术进步带来的各种优势(如:CPU处理能力的不断提高以及软件技术的进步等)。

尽管基于通用硬件平台的软件无线电具有诸多优点,但是目前通用硬件平台在处理速度效率、体积和功耗以及实时性方面仍然比不上FPGA和DSP这样的专用硬件。所以现在第二类软件无线电仍然是主流,但由于微电子技术和计算机技术的快速发展,软件无线电将越来越青睐于通用的硬件平台。

2、GNU Radio概述

GNU Radio是由Eric Blossom发起的、完全开放的软件无线电项目,旨在鼓励全球技术人员在这一领域协作与创新,目前已经具有一定的影响力。GNU(GNU’s Not Unix)本身是一个推进软件开放源代码的著名项目, 由FSF(Free Softwaer Foundation)支持,目前广泛使用的GNU/Linux操作系统则是来源于此。GNU Radio主要基于Linux操作系统,也可以移植到其他操作系统上,采用C++结合Python脚本语言进行编程,其代码完全开放,用户可以在其网站-R.上下载和参与更新维护其代码。利用GNU Radio提供的一套软件,再加上一台普通PC机和廉价的硬件前端即可开发各种软件无线电应用。硬件前端可以是一套专用的射频前端或者AD/DA卡,甚至是一块普通的声卡。Matt Ettus为GNU Radio设计了一套射频前端(Universal Software Radio Peripheral),可在0GHz~2.9GHz载频上提供最高可达16Mhz带宽的信号收/发能力。

除了具有第三类软件无线电系统的优点外,GNU Radio和还具有如下优势:

a)成本较低。软件免费,的价格大约与一台普通PC相当,带宽可满足目前多数音视频广播和无线通信制式的要求,支持双工和多天线应用。
b)技术门槛较低,具有一定编程经验和Linux使用经验的用户可在较短时间内掌握其配置、使用和开发。
c)获得来自全世界众多拥护者以及Eric Blossom 和Matt Ettus本人的技术支持。

3、GNU Radio的软件结构

GNU Radio的编程基于Python脚本语言和CH 的混合方式。C++由于具有较高的执行效率,被用于编写各种信号处理模块,如:滤波器、FFT变换、调制/解调器、信道编译码模块等,GNU Radio中称这种模块为block。Python是一种新型的脚本语言,具有无须编译、语法简单以及完全面向对象的特点,因此被用来编写连接各个block成为完整的信号处理流程的脚本,GNU Radio中称其为graph。

GNU Radio的软件结构顶层是面向用户的block及其“粘合剂”—— aph。用户除了能够开发自己的block之外,还可使用GNU Radio所包含的丰富的block,包括各种滤波器、FFT变换、调制/解调模块、时频同步模块等等,其中一些利用了CPU的增强指令集(如:MMX、SSE、3D Now!)进行了优化,以提高性能。

在用户用block和graph构造的应用程序下面是GNU Radio的运行支持环境,主要包括缓存管理、线程调度以及硬件驱动。GNU Radio中巧妙地设计了一套零拷贝循环缓存机制,保证数据在block之间高效的流动。多线程调度主要用于对信号处理流程进行控制以及各种图形显示,GNU Radio对此也提供了支持。GNU Radio的硬件驱动包括USRP、AD卡、声卡等等,用户也可根据需求进行扩充。

GNU Radio除了支持Linux的多种发行版本之外,还被移植到Mac OS X、NetBSD以及Windows等操作系统上,这也意味着它也支持多种类型的计算机系统。

4、USRP射频前端

USRP是GNU Radio最重要的硬件“伙伴”。与GNU Radio软件相同,USRP也是完全开放的,其所有的电路图、设计文档和FPGA代码均可从EttusResearch的网站下载。基于G1、radio和USRP的组合,用户可以构建各种具有想象力的软件无线电应用。

一套USRP由一快主板(Motherboard)和最多四块子板(Daughter Board)搭配构成。主板的主要功能为中频采样以及中频信号到基带信号之间的互相转换。子卡的功能在于射频信号的接收/发送以及到中频的转换。子卡有多种类型,分别覆盖不同的射频频谱范围,且具有不同的收/发能力和增益。

4.1 USRP主板

主板主要由以下几个部分构成:

1)AD/DA芯片
USRP采用两块Analog Device的AD9862芯片,每块可分别提供两路12bit、64MSample/s的AD变换和两路14bit、128MSample/s的DA变换。那么一块主板可提供4路模拟转换器(ADC)和4路的数字模拟信号转换器(DAC),也即收/发各两路的复采样。此外DAC单元还集成了数字上变频(DUC)功能。

2)FPGA
FPGA有两个主要功能:将DAC采来的中频信号进行数字下变频(DDC),变换到基带,并通过层叠梳状滤波器(of)对样值进行可变速率的抽取以符合用户对信号带宽的要求。FPGA中同时也实现了针对DAC的插值率波的功能;另一个功能是作为路由器协调适配各路ADC、DAC和USB 2.0接口之间的数据交换。

3)USB 2.0接口
USRP采用USB 2.0接口与PC机连接。最高可达到32MByte/s的数据传输速率。如果AD和DA分别采用12bit和14bit的采样精度,那么每个实采样点占用2Bytes,每个复采样点占用4Bytes。如果以一路复数采样进行单收或单发,则最高可达到32M/4=8M 复采样每秒,即最高发送或接收8MHz带宽的信号。如果用8bit采样,则最高可收/发16MHz带宽的信号。ADC和DAC始终分别以64M和128M 的速率进行采样,用户实际获得的采样速率是通过设置抽值率或插值率得到的。

4.2 USRP子卡

USRP的子卡有如下几种:
USRP是GNU Radio最重要的硬件“伙伴”。与 1)Basic TX、Basic RX:这两种子卡没有中频与射频间的频谱变换,仅仅提供主板上中频信号与天线间的接口。尽管如此,由于ADC和DAC可进行带通采样,仍然可支持2MHz~200MHz的载频。

2)TVRX:可覆盖50MHz一800MHz广播电视频段的接收子卡。
3)DBSRX:可覆盖800MHz~2.4GHz的接受子卡。
4)RFX400、RFX900、RFX1200、RFX1800、

RFX2400:这些子卡均为支持双工,可分别覆盖400Ⅻ z 500 、800 忸z一1000 m z、1150 m z一1450MHz、1.5MHz一2.1MHz、2.3MHz一2.9MHz频段。

c++相关文章:c++教程


路由器相关文章:路由器工作原理


路由器相关文章:路由器工作原理


低通滤波器相关文章:低通滤波器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭