智能无线电技术(3):软件无线电(SDR)的开发工具

2015-06-17 来源:中兴通讯技术 作者:宋腾辉、窦峥、林云 字号:

3、软件无线电的开发工具

软件无线工作者希望基于一款通用的平台将功能软件化,并可以通过软件升级来完成系统的升级。考虑到软件无线电的软件功能离不开硬件设备,所以关于软件无线电的开发工具,可以分为3 类:

· 底层硬件的程序设计软件。该软件可以用于例如现场可编程逻辑门阵列(FPGA)开发Xilinx ISE 设计套件软件、用于数字信号处理(DSP)开发的TI CCS 软件以及Matlab/Simulink 等。
· 基于特定通用平台的开发软件。这类工具开始具备软件无线电的性质,例如第2 期中提到的基于通用软件无线电外设(USRP)的开源软件定义无线电(GNU Radio)等。
· 基于软件通信体系架构(SCA)的软件无线电(SDR)开发工具。这是最接近软件无线电思想的开发工具,例如开源软件通信体系框架嵌入式解决方案(OSSIE)。

文章主要讨论后两种开发工具以及具有代表性的软件,3.1 节将详细介绍一种第3 类的SCA SDR 开发工具,而3.2 和3.3 介绍了两种第2 类开发工具,希望能给相关工程应用带来一定的指导意义。

3.1 SDR 工具Spectra 与SCA

3.1.1 SCA SDR 的应用前景

随着通信设备一体化和通用化的发展,人们对SDR 软件波形开发提出了要求,例如多种功能波形应用,支持不同平台的移植、模块化等。因此,SCA SDR 的应用优势逐渐凸显,PrismTech 公司的Spectra 工具包括了模型开发工具、自动代码生成、测试框架和操作环境(OE)4 个部分,支持SCA 2.2 和SCA 2.2.2标准的波形组件(也称为波形的逻辑代码的实现)和平台组件的开发。基于SCA 的SDR 将无线通信相关的算法(或设计者的其他算法)封装成波形组件,而各种物理应用平台也被封装成平台组件,直接体现为Spectra CX 软件中的一个组件;可装配多种波形,每个波形应用实现一组特定的功能,在硬件平台具备的基础上,各个波形应用以组件的方式部署到系统的不同节点中。

3.1.2 Spectra CX 波形开发环境

基于Spectra SCA波形的开发环境包括Spectra CX 波形开发工具和针对SDR 硬件平台的Specta OE,包含以下工具:

(1)建模工具。它为SDR 开发人员提供高层抽象、易使用和图形化的建模工具,用于动态地设计波形和平台开发。帮助波形设计人员高效地建立平台独立、可移植的波形模型,并可以映射到不同的平台上。这些工具也能支持可插入地第三方工具,以支持完全的SDR 工具链集成。

(2)源代码生成器。Spectra CX集成了特定语言组件源代码生成器、单元测试生成器等,为波形应用提供了一个完整的开发和测试环境。Spectra 源代码生成器为SDR 组件的针对特定语言代码、描述器和测试代码生成提供了高性能的无错工具。通过将域特定的SDR 模型映射为一系列可执行的、语言特定的文件,这些文件包含了在Spectra OE 上运行的所需要的所有功能。多语言、高效率的自动代码生,从图形化模型生成源代码、描述器和测试代码。与手写代码相比,提高开发效率高达50 倍(几个月的工作缩短到1 天或更少的时间内完成),也使代码具有固有的标准兼容。

(3)测试与验证。提供模型的SCA 兼容性验证,能对对组件或子系统进行SCA 兼容性、功能进行测试,并能提供部署后的实时测试。验证包括应用、平台、部署的验证:模型语法、语义验证;组件、应用、设备和节点的验证;完整SCA 部署的验证等。

(4)Spectra OE。Spectra OE 是一种高性能、低负载SDR 实时运行环境,它支持SCA OE 的要求。它能超过典型的SCA 通用处理器(GPP)边界,为DSP/FPGA 提供一致结构。Spectra OE 是先进和优化的实时运行平台,将应用软件和硬件分离,使应用可以移植,同时也具有最小的可能尺寸、重量和功耗。它为开发人员大幅度减少了实时运行环境的复杂程度,提供了单一的应用程序编程接口(API)。Spectra OE 结合了PrismTech的核心框架(CF)和先进的中间件(e*ORB 与ICO),并根据完全的实时运行结构(CF、中间件和用户传输)从尺寸、重量和性能进行优化。

(5)波形部署监视器。该监视器用于将波形部署到硬件平台上,并能在波形实时运行时,对波形组件参数进行查询、设置等,并能监视系统事件。Spectra CX 的Monitor 可以链接到任何SCA 兼容的操作环境,比如可以运行在装备了PC 兼容的中间件的PC开发主机上。通过这个特点,部署的测试可以在开发周期中大大提前。这个运行时监控器能跟嵌入式目标OE 通信,以便在真实目标上测试。监视器可以通过点击按钮的方式启动或终止多种应用。这样可在SCA平台上加载多种应用,以尽可能的描述域要发生的情况(如组件属性的预设值可以随时修改)。Spectra CX 还能捕获CF 产生的日志,并在SpectraCX 的用户界面中显示出来。

3.1.3 基于Spectra CX 的SDR 开发

SCA SDR 能装配多种波形应用,每个波形应用实现一组特定的功能。在硬件平台具备的基础上,各个波形应用以组件的方式部署到系统的不同节点中。由于不同的波形应用有不同功能和特性,需要分别对每个波形应用依照SCA 规范进行开发。

(1)波形应用开发流程:创建组件— 生成端口— 添加端口属性— 创建应用— 建立组件链接— 创建装配控制器。

(2)节点和平台的开发流程:创建设备— 生成设备接口— 创建设备管理器— 创建域管理器— 创建节点— 将设备管理器、域管理器、设备添加到节点— 创建平台— 将节点添加到平台。

平台是一些节点的集合,由域管理器控制,如图14 所示。设备管理器驻留在其中的一个节点上。节点是计算节点的抽象,是一些设备和服务的集合,由一个设备管理器控制。通过节点可以监视和控制节点的资源状况,实现OE,执行设备管理器以及安装OE&CF; 服务,例如公共对象请求代理体系结构(CORBA)、命名服务、FileSystem、Log、事件服务等。

图14、Spectra SCA SDR 波形开发环境

波形在Spectra SCA 架构上的应用的操作步骤如下:

(1)启动硬件平台,启用节点,启动域管理器、设备管理器等;
(2)打开波形部署监视器,添加部署到监视器中;
(3)安装应用程序,创建应用程序,加载波形应用;
(4)停止应用程序,释放应用程序,卸载波形应用;
(5)可以重复步骤3、4,加载、卸载其他波形应用。

用户按照步骤操作,可以完成基于Spectra SCA 的波形部署。以FPGA器件为例,通过上位机操作软件配置不同功能的波形组件,可以完成底层FPGA 代码功能的加载和重新加载,即完成通信功能的设置或变更,例如由发射改为接收或者发射不同的调制信号;从操作人员主观上来看,我们只是修改了软件指定的功能,就完成了底层硬件的各种应用切换,用户层和底层得到了较好的隔离,这就体现出SDR 的软件性质。我们通过软件升级来实现更多的功能,而不必考虑底层的硬件平台,工程师从硬件开发集中到了软件开发,有力地加速了应用开发;更有意义的是,这些软件波形应用对于SDR 硬件平台具有完美的可移植性,避免了代码的重复开发,节省了时间、人力、财力、物力。

3.2 基于USRP 的LabVIEW 软件

NI(美国国家仪器)公司的USRP是一款价位合理且灵活的软件无线电平台。它将一台标准计算机转变成一个无线通信系统的快速原型开发平台。结合NI USRP 射频收发器与NI LabVIEW 软件的优势,USRP 和LabVIEW 两者共同提供了一个可快速上手且功能强大的系统。以NIUSRP2920 为例,其支持频带可以达到50 MHz~2.2 GHz,中心频率可调,覆盖FM 全球定位系统(GPS)、数字移动通信系统(GSM)、雷达和ISM 频段;高达20 MHz 基带I/Q 带宽,读写速率达25 MSPS。借助NI LabVIEW软件可进行频谱监测、快速开发无线通信协议、灵活的多输入多输出(MIMO)系统等应用。

3.2.1 LabVIEW 软件

LabVIEW开发环境提供了图形化编程方法和前所未有的硬件集成,旨在帮助工程师和科学家快速设计和部署测量和控制系统,加快产品开发。借助这一灵活的平台,工程师可以开发大中小型系统,完成从设计到测试等一系列流程,同时重用IP 和简化流程,实现性能的最优化。

LabVIEW 应用程序分成前面板和程序框图两部分。前面板实现程序参数的设置以及界面可视化功能,它可以对程序进行手动控制和对结果进行图形化显示。在前面板单击右键可以添加需要的控件,实现程序参数的设置或者结果图形化显示,如图15 所示。

图15、前面板控件添加过程

程序框图是程序的功能实现部分,它采用图形语言来实现编程,如图16 所示。在程序框图面板单击右键添加需要的函数来实现程序的功能部分。

图16、程序框图函数添加过程

另外,LabVIEW 程序运行时是以数据流的形式运行的,这样程序的处理流程非常清晰,对程序编写和调试非常有用。

3.2.2 LabVIEW 的开发流程简介

LabVIEW 和USRP 平台上手容易,而且提供了汉化窗口,不再做案例介绍。LabVIEW 基于框架式设计,根据发射和接收程序流程框架配置即可,以下是收发通信工作流程。

(1)发射:打开设备发射会话—配置参数— 写入指定通道— 关闭会话句柄;
(2)接收:打开设备接收会话—配置参数— 接收捕获— 读出指定通道数据— 分析处理— 停止捕获— 关闭句柄。

LabVIEW 和USRP 平台,将算法集中到用户接口界面,常被通信工作人员用来快速开发验证算法以及自定义信号测试源,例如用于软件无线电算法验证、频谱监测、认知无线电算法验证等。

3.3 BPS 系统级软硬件协同设计工具

3.3.1 BPS 软件简介

BPS(BEEcube 平台工作室)是基于MathWorks 公司Simulink 上的一个系统级的、软硬件协同开发的环境。这个开发环境可以自动生成特定硬件接口和相应软件驱动。对于Matlab 算法设计人员,平台中的系统级软硬件协同设计工具可以隐藏所有FPGA 设计细节,例如:高速I/O 的例化和配置,多时钟域的时序收敛,软硬件接口和IP 集成,加快了应用设计。用户核心算法模块的外部连接可在BPS 用户界面中直接访问。对于复杂的DSP 算法工程任务,以往需要数月才能完成,而现在利用系统级软硬件协同设计工具在几天内就可以完成。

3.3.2 设计流程

BPS 软件是最简单、最快速和最可靠的,用于硬件实现算法,并与实际应用相连接的软件平台。用户不必是一个FPGA 专家,只需将用户的设计输入到Matlab/Simulink,BPS 会自动将其映射到FPGA 内,其包含了平台上所有的接口IP。

图17、BPS 基本设计流程

图17 所示为BPS 基本的设计流程,其设计思路围绕系统生成器(也称作实现开发工具)展开。系统生成器是Xilinx 公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink 的库中。在BEE 系统中,同时也需要将硬件接口的IP 和基本的运算IP 集成到Simulink 的IP 库中,可以在Simulink中进行定点仿真,生成HDL 文件(网表),可以在Xilinx FPGA 开发工具(ISE)中进行例化使用,也可以直接生成配置文件(.bit 文件)。因此,它能够加快信号处理系统的开发进程。

在图17 的设计流程中,除了可以利用Xilinx SysGen 本身提供的IP 库和BPS 加入的硬件接口IP 库之外,还可以将HDL 代码借助ip_import 工具,将HDL 代码生成BPS 的IP 库添加到设计系统中。从而将BPS 可靠的接口驱动与用于核心算法联系起来。接下来,只需执行BPS 的相关指令,即可完成最终.bit 文件的生成。在生成.bit 的过程中,基于Simulink 的工程会生成嵌入式开发套件(EDK)的工程,系统自动地添加MicroBlaze 到系统中,利用该软核运行NectorOS 自定义的操作系统,可以方便的访问预置在设计里的寄存器,完成系统级控制。整个过程运行于Matlab 后台,如无特别改动之处,不必人为干预。

3.3.3 软件配置简介

(1)开发环境:BPS
(2) 需要预装软件:Matlab/Simulink、Xilinx ISE Design Suite
(3)配置步骤见图18。

图18、配置步骤

4、结束语

软件无线电是一种智能化无线通信技术,它展现了一种全新的波形配置管理模式,并将自身与外部环境智能匹配,为从根本上解决日益增长的无线通信需求与有限的无线频谱资源之间的矛盾开辟一条行之有效的途径,并给无线通信带来了新的发展空间。而基于盲源分离的终极无线电的概念,是对软件无线电和认知无线电的进一步拓展,实现还面临许多技术难题,需要进一步深入研究。其概念是否准确也有待商榷。

从文章对SDR 应用发展及平台架构等技术的综述中可以看出,软件无线电技术是若干技术的高度综合,已越来越广泛地被人们接受,其在军事和民用领域的应用有着巨大的前景。然而,软件无线电从概念到应用尚面临很多挑战,尤其是许多关键技术需要突破,实际应用起来还有相当一段长的路要走,这也使其成为了近年来无线通信研究的热点。该领域及相关领域的研究人员应牢牢把握发展机遇,紧密跟踪其发展动向,努力开展技术攻关,力争尽早研制出具有自主知识产权的设备,为国家的发展和富强做出应有的贡献。

作者:宋腾辉、窦峥、林云,哈尔滨工程大学信息与通信工程学院,中兴通讯技术

主题阅读:软件无线电