GNUradio和USRP入门指导

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1GNUradio和USRP入门手册同济大学电子科学与技术系信道研究组张文杰余基伟贺永宇2012年6月7日2目录前言................................................................................................................................11GNUradio及USRP简介.......................................................................................11.1软件无线电的基本思想...............................................................................................21.2GNUradio的软件架构...............................................................................................41.3Gnuradio的硬件架构...............................................................................................51.4USRP上FPGA的工作原理...........................................................................................61.5Microblaze固件编译方法.........................................................................................71.6Linux环境中USRPFPGA代码编译.........................................................................101.6.1FPGA代码的编译..........................................................................................101.6.2FPGA代码各模块功能..................................................................................122GNUradio的配置方法........................................................................................132.1Linux操作系统的安装..............................................................................................132.2GNUradio的配置方法..............................................................................................142.3GNUradio配置图文教程.........................................................................................162.3.1No-fetching模式............................................................................................162.3.2Fetching模式.................................................................................................253GNUradio的使用................................................................................................293.1GRC使用举例.............................................................................................................293.1.1初识GRC.............................................................................................................293.1.2信号源的调节.....................................................................................................383.1.3AM信号接收解调............................................................................................413.1.4使用复信号与接收SSB........................................................................................483.2GNUradio增加新的模块...........................................................................................534如何编写Python应用程序................................................................................555关于GNUradio一些有用的网站及资料............................................................561前言从2012年初接触GNUradio至今已经有四五个月了,在这期间,通过不断的搜集资料,查阅文献,安装调试,数据测试,我对于软件无线电已经有了一个初步的了解。但是软件无线电的资料在网络上犹如汗牛充栋,纷繁复杂,没有一个比较完整的、全面的介绍该项目的参考文献,再加之大部分资料都是英文的,对于国内的初学者来说难度甚大。因此,我打算根据我们实验室已有的一些经验,写一个参考或者叫索引的文档来指引初学者,以便使他们能够快速掌握GNUradio,软件无线电外设(USRP)的安装调试及其初步应用,为以后的学习科研奠定良好的基础。1GNUradio及USRP简介GNURadio是一个通过最小程度地结合硬件(主要是USRP),用软件来定义无线电波发射和接收的方式,搭建无线电通信系统的开源软件系统。也就是说,现在那些高性能的无线电设备中所遇到的数字调制问题将变成软件问题。我们都知道GNU这个非常成功的自由软件项目,它包括Linux这样的操作系统软件,也包括大批应用软件。但GNU在涉及硬件开源尤其是无线射频方面还是存在着很大的盲区。GnuRadio通过提供一套信号处理软件模块和相关联硬件(自由的软件,价格合理便宜的硬件)给大众,以图填充这个空白。GNURadio应用程序用Python语言来编写,真实的信息处理过程是由C++浮点扩展库来实现的。因此开发者可以获得实时高效的可复用的应用开发环境。虽然GNURadio并不是主要用于仿真,但也可以不用真实硬件,而使用预先记录或生成的数据来开发信号处理算法。让我们来给几个简单的例子,看看GNURadio可以用来做什么:学生和研究人员用它来开发物理层信号处理算法,MAC层甚至更上层的协议。因为所有的通信协议,从上至下都是PC机上的软件代码。你可以像使用普通软件一样快速自如的修改、编译和运行,可以灵活地在多个协议层之间互操作。当你撰写学术论文的时候,这些真实的实验结果常常能够为你的论文增色不少。创业型小公司或者学校里做横向开发项目的人,他们通常用它来开发原型设备(prototype)。比如做一个支持多种制式的家庭网关,因为所有2的东西都是“软”的,所以开发起来非常快,出现问题的时候也容易修改。用来做高校里的教学用实验平台。比如做通信原理实验,现在大部分实验都是用Matlab仿真来做的,当有了GNURadio,你就可以看到真正的信号星座图,频率漂移等现象。而且它可以是一个远程的平台,供很多学生同时使用。业余无线电爱好者,他们用GNURadio来搭建自己的电台。我猜想,它可以让你同时在多个频道上呼叫。不过我不知道这是否违反无线电使用规定。黑客!这是用户中很大的一个群体。特别是OpenBTS,也就是GNURadio上的GSM基站开发出来之后,加上GSM加密的破解算法,这吸引了很多对GSM网络感兴趣的人。当然,相反的,反黑客的人,我们的无线电监控部门,军方的实验室,也对此很有兴趣。GNURadio还可以做什么呢?发挥你的想象力吧。本章将简单从软件无线电的基本概念开始,介绍GNURadio的各个部分。(以上部分参考GNURadio入门v0.99)1.1软件无线电的基本思想软件无线电是指能够实现充分可编程通信,对信息进行有效控制,覆盖多个频段,支持大量波形和应用软件的通信设备。其含义是系统功能由软件定义,其物理层行为也能由于软件的改变而改变.软件无线电是将模块化、标准化的硬件单元以标准开放的形式连接起来,形成一个通用硬件平台,通过软件加载来实现各种无线通信功能的开放式无线通信设备,并把尽可能多的无线通信及个人通信功能用软件实现。这样无线通信新系统、新产品、新业务的开发将逐步转到软件上来,而无线通信的产品价值将越来越多地体现在软件上。3图1.1典型的软件无线电处理流程上图表示一个典型的软件无线电处理流程图。为了理解无线电的软件模块,首先需要理解和其关联的硬件。在这个图中的接收路径上,能够看到一个天线,一个神奇的RF前端,一个模拟数字转换器ADC和一堆代码。ADC是一个连接连续模拟的自然世界和离散的数字世界的桥梁。图1.2是同济大学电信学院电子科学与技术系无线信道研究实验室所使用的USRPN210母版及SBX子板。图1.2USRPN210母版和SBX子板以图1.1中接收路径为例,图1.2中的子板SBX即为射频前端(最高频率可知4.4GHz),完成射频信号的模拟下变频到模拟中频,然后由母版上的12位ADC芯片完成模数转换,之后送入FPGA完成数字下变频至基带信号,最后通过4网线传输至PC进行数据的分析处理。由于FPGA的可重构性,大部分的信号处理的工作都可以由用户编程完成信号的处理,使得无线通信系统的设计得以简化和降低成本。同时,GNUradio为开源项目GNU的正式项目之一,全世界很多的开发者都为其贡献自己的代码及成果,比较成功的有OpenBTS,利用GNUradio及USRP建立GSM通信基站,实现GSM通信。该项目在同济大学无线信道研究实验室已经成功实现,最大通话距离可达15米。1.2GNUradio的软件架构GNURadio的编程基于Python脚本语言和C++的混合方式。Python用来构造流图。C++由于具有较高的执行效率,被用于编写各种信号处理模块,如:滤波器、FFT变换、调制/解调器、信道编译码模块等,GNURadio中称这种模块为bl

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功