资讯详情

详解软件无线电架构

作者:宋腾辉、窦峥、林云

哈尔滨工程大学信息与通信工程学院,中兴通讯技术

版权归原作者所有

SDR系列开始更新,开源SDR还在怀孕。

随着软件无线电技术的发展,智能无线电技术逐渐成为通信领域的热点,为无线通信带来了新的发展空间。讲座将分为3个部分 期间介绍智能无线电技术 讲述软件无线电技术的背景和发展现状;第3 本文介绍了软件无线应用中的各种开发工具。

本文摘自《智能无线电技术》

链接:https://pan.baidu.com/s/1MoSwZla3FJZxsVQzDK0Dng

提取码:open

软件无线电(SDR)最初的概念是通信技术或系统结构,但现在SDR,确切地说,软件定义无线电,更接近设计方法或设计理念。软件无线电在理论上具有良好的应用前景,但在实际应用中受到软件、硬件技术或处理能力的限制,但基于软件无线电概念的软件定义无线电技术越来越受到重视。在2001 年10 月份举行的ITU-8F 在会议上,软件定义无线电被推荐为未来无线通信的发展方向。

软件定义无线电的功能需求包括重新编程和重新设置、提供和改变业务、支持多标准和使用智能频谱的能力。可见,SDR 可用于认知无线电等所有技术的公共平台。下面我们将从一个相对完整的SDR 从平台台角度SDR 平台架构主要包括软件SDR 架构和SDR 硬件结构有两个方面。

软件无线电,其重点在于基于一款通用平台来进行功能的软件化处理。在SDR 在讨论过程中,开发人员往往注重平台的硬件开发,的处理性能,使通用平台尽可能接近理想软件无线电的设计要求。这让一些人忽略了这一点SDR 设计中软件平台。这里提出的SDR 软件平台是指利用通用硬件平台实现的SDR 用户算法处理框架(或简单的信号处理框架),甚至操作环境(如满足软件通信系统架构规范用户接口环境)。SDR 软件平台(又称软件平台)SDR负责架构的功能一般包括:

提供用户界面,用户通过界面添加和删除功能模块。算法包装包括通信算法、信号处理算法、C/C 等待其他算法。为了完成模块间的互联。测试调试接口中间信号。用于管理模块的调度器或适配器。

SDR 开源软件定义无线电是架构中最受欢迎的两种开源平台(GNU Radio)和开源软件通信体系框架嵌入式解决方案(OSSIE)。两者都开始开发标准化和可移植的代码,GNU Radio 出发点是提供信号处理框架,OSSIE 目标是提供软件通信系统架构(SCA)操作环境。

GNU Radio 是一种设计SDRs 其主要部件包括6个开源架构 部分:通用框架、调度器C 和Python 处理工具、数字信号(DSP)模块、用户界面、硬件前端界面。 详细的功能描述如下:

一个为信号处理模块准备的通用框架,它可以连接到一个或多个其他模块。用于激活各处理模块和管理模块之间的相关数据传输的调度器。C 和Python 该工具用于在多个模块之间建立流图,并将流图连接到调度器上。一组足够常用于滤波器、跟踪环等DSP 模块。用户接口界面允许用户拖动模块和模块连接GNU Radio 的设计。与商业硬件前端的接口。前端硬件包括数模/模数转换器(DAC/ADC)和上下变频器,来提供了通用处理器(GPP)与无线物理环境接口。

GNU Radio 运行在Linux 系统上。图1 给出了GNU Radio 图形用户接口界面,每一个小模块封装了不同的信号处理功能,而且这些算法功能都是开源的。大多数算法或信号处理模块都是基于C 语言开发,可读性强,也方便用户开发。模块之间的通信是通过数据通道完成的,信息是通过息队列的形式。GNU Radio 无线电外设结合通用软件(USRP)可以认为开发板是一种SDR 平台,相关人员可以利用这个平台快速开发一些算法SDR 研究。

图1、GNU Radio 图形用户界面

OSSIE 是一种开发SCA 开源平台与无线电兼容,提供了一种SCA 操作环境。OSSIE 分配包括以下部分:

用于选择模块和互联网模块的用户界面。定义新模块的用户界面可以创建C 在程序框架中,用户可以根据应用程序需要增减框架中所需的信号处理代码。用于检查和调试波形的用户界面允许开发人员监控中间模块中的信号。可在运行过程中添加监控器,以便观察中间波形并调试模块。基于开源对象的代理请求(ORB)的SCA 与公共对象要求的代理体系结构兼容(CORBA)。一系列学习指南和实验课程。Windows 用户无需安装即可直接下载相关组件并运行Linux,相对GNU Radio 上手容易。

从图2 和图3 以及OSSIE 从用户接口软件的分配来看,OSSIE 提供了SDR 架构设计、信号处理代码包装、接口调试、中间模块波形调试等功能OSSIE 开发完整的无线电是可行的。基于OSSIE 架构,Prismtech 公司的着名Spectra 该系统为开发提供了一个完整的系统SCA 与波形操作环境兼容。

图2、OSSIE 用于定义波形用户界面

图3、OSSIE 用于测试和调试用户界面界面

GNU Radio 一种快速开发工具,旨在节约开支和临时应急验证;OSSIE符合军事发展标准。两者都开始开发标准化和可移植的代码。

GNU Radio 出发点是提供信号处理框架,与之不同OSSIE目标是提供一种SCA 操作环境。GNU Radio 运行在Linux 文件系统和硬件直接访问平台;SCA 波形运行在OSSIE 在良好的操作环境下,应用程序界面抽象地描述了文件系统和硬件。在GNU Radio 通过上模块Python 或者C 指令相互连接,采样数据通过用户定制的循环缓冲传输。OSSIE 可扩展标记语言(XML)通过文件定义模块连接,实际上是通过CORBA 连接完成了服务。最重要的是OSSIE 基于ORB 结构采用传输控制协议/互联网协议(TCP/IP)传输采样数据。特别说明,ORB 允许不同的模块在不同的机器上运行,GNU Radio平台上的流图只能在同一台机器上运行。通过比较发现,GNU Radio 更像是OSSIE 中等功能组件完成OSSIE 信号处理功能。

基于GNU Radio 和OSSIE 一系列的两种平台出现SDR 例如,软件架构PrismTech 公司的Spectra CX 环境。这些SDR 架构及专用处理器(现场可编程门阵列/DSP)相连接或者将专用处理器抽象成封装组件,将无线电波形集中管理,根据需要进行装配组件形成波形应用,灵活调用。这样,软件无线电平台的开发雏形就完成了。

SDR 硬件系统需要功能可重构,实时处理能力高,适应性广,升级简单。一般要求SDR 硬件系统具有宽带高速数据传输等特点:支持多处理器系统I/O 界面、结构模块化、标准化、标准化等。常见的SDR 平台就是CPU DSP FPGA 这种形式。即使我们没有所有的硬件,我们仍然可以这样做SDR 开发,因为SDR 它更像是一个设计概念,专注于软件和算法处理,其组件(无论是硬件平台还是软件算法)满足相同的规范SDR 可重构的灵活性。目前,存在3 种主流SDR 硬件平台结构:基础GPP 的SDR 基于现场可编程门阵列的结构(FPGA)的SDR(Non- GPP)结构、基于GPP FPGA/SDP 的混合SDR 结构。

基于GPP 的SDR 结构提供了最大的灵活性和最简单的开发。GPPs研究最适合实验室环境开发,研究者能够快速尝试一系列算法和波形。一款高配PC 在运行相当复杂的波形情况下,数据率≥1 Mbit/s,并且通过以太网、USB、PCI 等标准接口可以直接处理数字基带或者低中频采样数据。并且可以通过多核处理来提高数据的吞吐量。但是,对于这种结构来说更适合处理数据块,并不擅长处理实时采样数据,数据延时和抖动是其面临的主要问题。操作系统会引进延时和抖动,windows 系统抖动可能超过10 ms,而像VxWorks这种实时操作系统抖动可以限制在1 ms 内。

基于GPP 的SDR 结构比较简单,其结构一般如图4 所示,只包括天线、ADC/DAC、数据缓冲模块(FIFO)和GPP。这种架构对于开发人员来说,相当方便和灵活,直接接入个人PC 就可以进行算法开发和测试,但它也存在缺点,如上述所述,延时和数据处理的方式等。

图4、基于GPP 的SDR

基于FPGA 的SDR 结构的实现比较困难。FPGA 适合于高数据速率和宽带宽信号波形应用,并且可以用于灵活实现无线电和多种多样的波形设计,但是在结构上与GPP 存在本质区别。GPP 在内存中执行指令且很容易从一个指令功能转换到另一种功能,而FPGA 上的功能直接映射成了硬件电路,一个新功能需要更多的FPGA 资源。同时,FPGA 的高度并行结构十分适合数据流处理,但是不适合密集型控制处理。另一方面,FPGA 的配置文件高达40 MB,配置时间长达100 ms,而且重新配置是容易丢失芯片中的数据。这些问题直接造成了多波形设计中重新加载的时间太长的问题。虽然一部分FPGA 支持局部重配置的功能,但是这项技术相当困难并且严重受到开发工具的限制。让人兴奋的是,FPGA 实现了2011 年提出的3 项建议:

 专用GPP 与FPGA 一同使用。 通过使用可用的逻辑资源在FPGA 上嵌入一个全功能的单片机。 将FPGA 和GPP 结合制作成单一器件(如Xilinx ZYNQ 系列)。

将FPGA 和GPP 结合制作成单一器件,并不是像嵌入了单片机模块,这种片上单片机上电可用,并且不需要FPGA 就可以进行编程设计。由此可知,基于FPGA 的SDR 架构时代已经到来,新一代SDR 将在新技术下越来越有意义。

基于GPP+FPGA/DSP 的混合SDR结构,分为GPP+FPGA、GPP+DSP+FPGA 两种主要架构形式。这种组合结构融合不同器件的优点,取长补短,在功耗要求比较宽松的实验室环境下,能够给开发人员提供一种快速验证各类算法高性能平台。

公众号:OpenFPGA

图5 给出了这种结构的互联示意图。这种结构一般对异构器件间的数据交换的性能要求较高,不同器件间通信一般会采用PCIe[12] 接口方式(1.25 Gb/s/1x)和串行高速输入输出(SRIO)接口方式(1.5 Gb/s/1x)。PCI Express 主要用于计算机中芯片间、板卡间的数据传输,也有部分嵌入式市场;RapidIO 主要用于嵌入式系统内芯片间、板间数据传输,其目标就是嵌入式系统内的高性能互联。这种混合SDR 结构,性能上可以充分地利用各种器件的优势,但同时也存在着接口设计复杂和能耗大的问题。

图5、异构器件互联示意

除了上述讨论的SDR 基本结构,也存在多通道SDR,如图6 所示。多通道SDR 旨在多并发用户共享相同的带宽,例如在一种互不兼容无线电模式下的无线电转换,允许不同模式下用户间对话。这种架构最简单的结构就是整合一组独立的SDRs,每一个SDR 支持一个或多个信道,一般的这些SDRs 分别是具有低速率、中速率、高速率处理能力。这种结构除了对多种用户接口、复杂的算法设计、系统设计提出高要求,也对信号处理器(GPP/FPGA/DSP)和射频模块(ADC/DAC/放大器)的性能提出了较高的要求。

图6、多通道SDR

目前,业界也出现了一系列支持SDR/CR 的高性能开发平台,均是基于以上讨论的架构。例如National Instruments 公司的USRP、BeeCube 公司的BEE3、基于Xilinx ZYNQ 系列的ZingBoard/ ZedBoard 开发板等。这些现有的具有SDR 开发能力的开发板,大多属于商业产品,并不是专业应用于SDR 开发的产品,辅以个人PC(GPP)设备才能进行一定意义上的SDR 设计。下面介绍一种自研平台,该平台可专门用于软件无线电和认知无线电的相关研发,特别适合实验室环境下,开发人员对新算法的快速实现。

该平台主要包含了GPP、专用处理器(FPGA/DSP)、射频前端、天线等主要部件,如图7 所示。

图7、平台架构及应用

如图7 所示,这种SDR 实现结构利用紧凑型外围组件接口(CPCI)总线将FPGA、DSP、GPP 连接在一起,充分利用了FPGA 高速并行数据流处理能力、DSP 高效算法处理能力、上位机灵活的界面操作能力以及现场可编程能力。更有意义的是平台支持GNU Radio/OSSIE 架构,实验室团队在平台上实现了基于Spectra CX 操作环境的SCA 设计,可以认为它是一套具有SDR 电台研发能力的通用设备。平台主要参数如表1 所示。

表1、自研平台部分参数

该平台主要目的是用于SDR 的应用研究,必然面临多用户、多波形、宽带宽等问题,此时FPGA、DSP、GPP这些异构器件间的通信能力直接决定了系统的整体性能,即涉及不同单元间互联方式的选择。为了能过获得最大数据吞吐能力,专用器件与GPP 间的通信采用了PCIe 接口方式,FPGA 与DSP 之间的通信则采用SRIO,通过提高接口的数据交换速度来保证大数据吞吐能力,进而充分发挥各处理器强大的数据处理能力。

第2 讲对软件无线电的架构做了详细介绍,包括SDR 的软件操作环境(或用户接口)和硬件平台,并从其应用及通用平台设计角度分析各类平台的优缺点。当然,软件无线电并不只限于上述讨论内容,上述讨论只限于应用于SDR 算法开发范畴,SDR 还包括软件可调模拟无线通信组件(如软件可调滤波器、软件可调上下变频器、软件可调功率放大器等)、天线系统(如多输入多输出系统、智能天线与波束成形)、以及一系列软件无线电理论(带通采样、多速率信号处理、高效数字滤波)等。

NOW现在行动!
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado下头文件使用注意事项【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
HDL Designer Series(HDS)介绍
SystemVerilog数字系统设计_夏宇闻 PDF
Verilog 里面,always,assign和always@(*)区别
FPGA上如何求32个输入的最大值和次大值:分治一文读懂TCP/IP!《RISC-V on T-Core》学习笔记新年愿望是什么?先送大家一波开发软件谈谈FPGA(入门)学习的两种方式ZYNQ-迷恋ZYNQ-FPGA开发板资源分享
零基础入门FPGA,如何学习?
黑金全部开发板资料(FPGA+ZYNQ)分享
【Vivado那些事】FPGA配置失败,无法启动怎么办
你会在github上找项目吗?
快看,2021 IEEE Fellow出炉!这些华人科学家太强了!
为什么FPGA主频比CPU慢,但却可以用来帮CPU加速?
书写Verilog 有什么奇技淫巧
超酷的傅里叶变换视频+动图解说,妈妈再也不用担心我不懂傅里叶变换了!
首款国产7纳米GPGPU芯片在上海问世:有望打破技术垄断
如何获取 Github 上Xilinx Vitis, Vitis 库等资源
图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
点击上方字体即可跳转阅读哟

觉得内容还不错的话

给我点个“在看”呗

标签: cpci高速连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台