《软件无线电》由会员分享,可在线阅读,更多相关《软件无线电(6页珍藏版)》请在金锄头文库上搜索。
1、北京邮电大学软件无线电USRP 和 GNU Radio 调研、GNU Radio 简介GNU Radio是一个通过最小程度地结合硬件(主要是USRP),用软件来定义 无线电波发射和接收的方式,搭建无线电通信系统的开源软件系统。也就是说, 现在那些高性能的无线电设备中所遇到的数字调制问题将变成软件问题 GNU Radio 通过提供一套信号处理软件模块和相关联硬件(自由的软件,价格合理便 宜的硬件)给大众,以图填充这个空白。GNU Radio应用程序用Python语言来 编写,真实的信息处理过程是由C+浮点扩展库来实现的。因此开发者可以获得 实时高效的可复用的应用开发环境。虽然 GNU Radio
2、 并不是主要用于仿真,但 也可以不用真实硬件,而使用预先记录或生成的数据来开发信号处理算法。图 1.1 典型的软件无线电处理流程二、USRP架构USRP (Universal Software Radio Peripheral)通用软件无线电外设,由 Ettus 等人设计。完整的 USRP 一般有母板与用户所需功能相对应的子板组成。其工作 原理如图 2.1 所示,如下用于通信系统中的数字基带和中频部分;使信号在基带或中频和射频之间作转换;所有的和波形相关的操作,比如调制解调都在CPU上执行;所有的具有普遍性的高速处理如数字上下变频,插值与降采样等都在 FPGA中实现;图 2.1USRP 硬件工
3、作原理USRP之所以具有很强的灵活性,主要是取决于FPGA的可编程特性。因此有必要 对USRP上FPGA工作原理作一阐述。简单的说, USRP 上的 FPGA 的职责就是做上下变频,在数字中频和基带信号 之间进行转换。FPGA 像一个小的、高性能的并行计算机一样,可以完成你设计的任务,设 计 FPGA 需要一些技能,并且如果不慎还会烧坏你的板子。还好我们已经提供一 个标准的适应性很广的 FPGA 配置。USRP 上 FPGA 的剩余资源可以为用户提供了更加灵活的控制方式。用户可以 利用剩余的FPGA资源自定义一些新的功能给USRP让其完成一些用户希望的新的 功能。比如,可以利用FPGA中的32
4、位RISC处理器Microblaze控制USRP摆脱 对PC上CPU的依赖,从而使USRP可以完全独立的运行用户的设计程序。母版l:SRP|N210|图 2.2 USRP N210 硬件架构图HOSTPCPacket router TXPacket router RX图 2.3 USRP N210 FPGA 固件架构图三、gnu Radio与USRP构建软件无线电开发环境GNU Radio的编程基于Python脚本语言和C+的混合模式。C+由于具有较 高的执行效率,被用于编写各种信号处理模块,如:滤波器、FFT变换、调制/ 解调器、信道编译码模块等,GNU Radio中称这种模块为block。
5、Python是一种 新型的脚本语言,具有无需编译、语法简单以及完全面向对象的特点,因此被用 来编写链接各个 block 成为完整的信号处理流程的脚本, GNU Radio 中称其为 graph 。GNU Radio的软件结构顶层是面向用户的block及其“粘合剂”graph。用户除了能够开发自己的block外,还可使用GNU Radio所包含的丰富的block, 包括各种滤波器、 FFT 变换、调制/解调模块、时频同步模块等等,其中一些利 用了 CPU的增强指令集(如:MMX、SSE、3D Now!)进行了优化,以提高性能。在用户用block和graph构造的应用程序下面是GNU Radio的
6、运行支持环境, 主要包括缓存管理、线程调度以及硬件驱动。GNU Radio中巧妙地设计了一套零 拷贝循环缓存机制,保证数据在block之间高效地流动。多线程调度主要用于对 信号处理流程进行控制以及各种图形显示, GNU Radio 对此也提供了支持。 GNU Radio的硬件驱动包括USRP、AD卡、声卡等等,用户也可根据需求进行扩充。GNU Radio 除了支持 Linux 的多种发行版本之外,还被移植到 Mac OS X、 NetBSD 以及 Windows 等操作系统上,这也意味着它也支持多种类型的计算机系 统。USRP 是 GNU Radio 最重要的硬件“伙伴”,一套 USRP 由一
7、块主板和最多四 块子板搭配构成。主板的主要功能为中频采样以及中频信号到基带信号之间的互 相转换。子板的功能在于射频信号的接收/发送以及到中频的转换。子板有多种 类型,分别覆盖不同的射频频谱范围,且具有不同的收/发能力和增益。四、USRP应用前景分析USRP可以用来开发物理层信号处理算法,MAC层甚至更上层的协议。因为所 有的通信协议,从上至下都是PC机上的软件代码。你可以像使用普通软件一样 快速自如的修改、编译和运行,可以灵活地在多个协议层之间互操作。当你撰写 学术论文的时候,这些真实的实验结果常常能够为你的论文增色不少。创业型小公司或者学校里做横向开发项目的人,他们通常用 USRP 来开发原
8、 型设备(prototype)。比如做一个支持多种制式的家庭网关,因为所有的东西都 是“软”的,所以开发起来非常快,出现问题的时候也容易修改。USRP 可以用来做高校里的教学用实验平台。比如做通信原理实验,现在大部 分实验都是用Matlab仿真来做的,当有了 GNU Radio,你就可以看到真正的信 号星座图,频率漂移等现象。而且它可以是一个远程的平台,供很多学生同时使 用。GNU Radio和USRP的应用如此广泛,最主要的原因是:相比其它昂贵的商业 硬件设备,它的“人性化”使我们在研究和学习中能够克服很多的局限性。事实 上,虽然 USRP 对于纯网络层的算法研究没有任何价值,但是在物理层研究和层 次协议设计上有举足轻重的地位。很多时候,我们在研究中需要对某个方案进行 测试,而用商业平台过于昂贵,用模拟方法又不够准确,此时的最佳选择就是 GNU Radio 和 USRP。新推出的 USRP2 解决了之前 USRP 很多局限性问题,使该平台的性能更加强 大,应用也更加广泛,在不久的将来,我们相信 GNU Radio 和 USRP 将成为探索 新规范的最佳途径。