基于GNU Radio 的多速率、多种调制方式、多信道的软件无线电主站电台设计

RF/无线

1813人已加入

描述

230MHz无线电台通信系统在电力负荷管理系统和用户用电信息采集系统中有着广泛的应用。然而,随着无线通信技术的发展,在不同时期投入应用的无线电台,虽然基本结构类似,但调制方式、波形结构、调制速率都有较大差别,不同的设备占用不同频段单独组网,独立运行,十分不利于系统的维护,而且,随着对高速通信电台设备需求的增加[1],使得通信系统结构更加复杂。

为了解决上述问题,本文基于GNU Radio 系统提出了一种多信道、多传输速率、多调制方式的软件无线电多通道主站电台的系统结构。该系统在调制方式上与现有的无线电台设备全面兼容,覆盖整个电力系统230 MHz 全双工频段,可以同时在多个频点运行,以不同的速率、调制方式进行通信,很好地保证了现有业务的正常运营。此外,基于软件无线电的系统具有极强的可配置性,为将来的业务拓展和设备升级提供了可靠保障,降低了系统的维护和升级成本。

1、230 MHz 无线通信系统分析

230MHz无线通信系统由主站电台和从站电台组成,主站采用全双工电台,从站采用半双工电台。无线电管理委员会将230 MHz 频段的15 对双频频点分配给电力系统专用[2],频点分配如表1 所示。每个频点带宽为25 kHz,相邻频点间隔为50~150 kHz,15 个接收/发送频点总带宽约为2 MHz,上下行频率间隔为7 MHz。

目前电力行业中使用的大部分是模拟调频电台,电台内增加调制解调模块后进行数据传输。早期的低速电台采用FSK,MSK 等调制方式,传输速率为600~2 400 bps;高速电台采用GMSK 调制方式,实现9 600 bps 的信号收发。此外,部分地区运行着230 MHz 频段的Mobitex 系统,它直接采用GMSK 调制,避免了第二级FM 调制对信道资源的浪费,仅占用12.5 kHz 的射频带宽,实现了8 kbps数据传输。

GNU

2、GNU Radio 主站电台总体设计

GNURadio 系统是一种运行于通用处理器(GPP)上的开放的软件无线电平台,并配以USRP(Universal Software RadioPeripheral)作为硬件射频前端。GNU(GNU’s Not Unix)是一个推进软件开放源代码的著名项目,由FSF(Free SoftwareFoundation)提供支持。GNU Radio 运行于Linux操作系统,其软件代码和硬件设计完全公开,其设计的核心思想是:基带信号处理过程由通用处理器而不是DSP 实现;基带信号通过USB 2.0 接口与USRP 系统相连,由USRP 上的FPGA 实现数字上下变频,然后通过AD/DA 芯片与射频子板连接;覆盖不同频段的射频子板将模拟信号变换到射频进行信号收发。

本文设计的多通道主站电台系统的系统结构如图1 所示,由基带信号处理部分、USRP 主板、230 MHz 射频子板三个部分组成。

GNU

(1)基带信号处理部分

基带信号处理部分包括数据缓存、编解码、调制解调等模块。这部分的主要工作是基带信号处理模块和信号收发流图(Flow Graph)的设计。此外,可使用WxPython 跨平台GUI 工具库编写人机交互界面,采用MySQL 作为数据库系统。

(2)USRP 主板

USRP主板实现了信号的中频处理,主要为数字上下变频操作。板载FPGA 芯片采用了Altera 公司生产的Cyclone 系列芯片EP1C12Q240C8,设计开发工具为Quartus II 7.2,各模块逻辑采用Verilog语言描述。

(3)230 MHz 射频子板

目前 USRP 配套的全双工子板没有覆盖到230MHz 频段,本文根据USRP 主板与子板连接的接口说明,设计了收发频率覆盖200~250 MHz 的射频子板。同时,由于子板输出功率过小,发送信号需外接至大功率天线设备输出。

3、GNU Radio 主站电台基带信号处理

GNURadio 的基带信号处理编程基于C++和Python 脚本语言的混合方式。C++执行效率较高,用于编写各种底层信号处理模块。Python 是一种新型的脚本语言,用来编写连接各个信号处理模块的脚本,最终使之成为完整的信号收发流图。

3.1GNU Radio 基带信号处理模块设计

GNURadio 提供一个基带信号处理的底层模块库,含有100 多种信号处理模块,如:滤波器,FFT 变换、调制解调器、时频同步模块等[3]。

本系统同时支持多种无线通信电台,而不同电台的调制方式、信号速率可以不相同。通过分析可知,电台系统中基带信号所用的数字调制方式如FSK、MSK、GMSK 等均属于恒包络调制方式,这些信号都可以通过FM 调制器输出。

下面以 GMSK 调制模块为例简要说明GNURadio 信号处理模块的实现原理及实现方法。

从 Python 的角度来讲,GNU Radio 提供了一种信号流图的抽象,用户可以方便地使用底层信号处理模块连接各种通信模块,最终组成完整的无线通信系统。首先从gnuradio 包中导入gr 和modulation_utils 模块,并在__init__()方法的参数中定义模块中每符号的采样点个数、BT值和程序调试接口等。定义完这些参数之后,方法调用其父类gr_hier_block2 的__init__()方法设定该模块的输入输出接口类型,本模块输入为要传输的数据字节,输出为GMSK 的调制波形。

GMSK调制模块由三个底层信号处理模块构成,分别是字节到NRZ 编码变换器,高斯滤波器和FM 调制器(FM 调制器模块需自行编写,系统提供的FM 调制器输出为复采样信号,本调制器输出为实采样信号)。配置好这些模块之后,调用connect函数将这些模块连接,就形成了新的GMSK 调制模块。其结构图如图2 所示。其他调制方式如FSK、MSK 调制模块与之十分类似,不再赘述。

通过 Python 语言构造信号处理模块非常灵活,大幅提高了代码的复用度。但由于底层模块库并不完备,在执行某些数据处理时还需采用C++语言编写对应的底层模块,如纠错编码、多相滤波发送、多相滤波接收等,编写底层模块的具体方法可参考文献[4]。

GNU

3.2基带信号收发流图设计

本系统同时覆盖了230 MHz 频段的15 个双工频点,如果将这15 个支路的信号分别通过独立的载波调制解调,系统将过于复杂。因此,本文采用了信道化收发机的系统结构,即一部收发机同时处理信道带宽内所有信道上的信号。

图 3 是主站电台信道化发射机基本调制原理框图。基带信号的处理分为了两部分工作:

GNU

第一步是由N 个单通道基频发射机产生N 个基带数字信号。对于普通数传电台,首先根据不同的基带调制方式(FSK、MSK、GMSK 等)输出基带信号,再由FM 基带正交调制器进行复合调制,调制完成后的基带信号数字谱带宽为25 kHz。对于Mobitex 电台,直接输出速率为8 kbps 的GMSK 基带正交信号,数字谱带宽为12.5 kHz。

第二步将调制完成的各路基带信号进行插值滤波,并分别根据各路占用的不同频点,用移频因子ejωk t 搬移到虚频点ωk(即射频频点相差230 MHz的基带频点)处,最后将所有支路上的信号整合,得到覆盖0~2 MHz 的整合基带信号,其频谱结构如图4 所示。在具体实现时,本文采用了基于多相结构的信道化发射机模型以提高计算效率和实时处理能力,实现细节请参阅文献[5]。

GNU

合路器输出的整合基带信号的复采样频率为6 MHz,精度为8 bit,这样每个复采样点占据2 个字节,通过USB2.0 接口传输到USRP,双向收发占用的USB 带宽为24 MByte/s。在USRP 中,基带信号再通过插值和滤波变换为固定速率的中频信号并送到D/A 转换器转换为模拟信号,最后在射频子板转换为射频信号发射。

4、USRP 主板FPGA 配置

USRP主板上可支持两路信号并行收发,结构框图如图5 所示,本文中只使用其中一路。FPGA芯片处于USRP 主板中的核心位置,内部逻辑通过Verilog 语言描述。它的主要功能是将ADC 采来的中频信号进行数字下变频(DDC),并将基带信号进行插值滤波、速率匹配、输出到DAC 进行数字上变频(DUC),同时还要控制子板信号收发,适配各路ADC,DAC 与PC 机之间的数据交换。

USRP提供了标准系统的Verilog 代码供用户使用,但需要针对不同的信号带宽,信号精度和外插子板情况对Verilog 文件进行改写并重新编译后,下载到FPGA 中运行。

GNU

本系统中,AD采样输出的数据为两路12bits、64MSample/s的正交中频信号,FPGA要首先对其中有用的信号进行下变频。

数字下变频的第一步是对信号进行混频,这部分主要由乘法器和DCO组成。USRP采用坐标旋转数字计算(CORDIC)算法生成正弦和余弦信号[6],与常规的查表法不同,CORDIC算法不占用存储器空间,仅使用移位寄存器和加法器就可产生正余弦信号,具有很好的NCO的精度。

数字下变频的第二个环节是对混频后的信号进行抽取滤波,以便降低软件解调的计算复杂度。USRP使用了由一个4级CIC抽取滤波器和一个31阶半带滤波器组成的混合滤波器结构。CIC滤波器为整系数滤波器,滤波时无需乘法运算,而半带滤波器有一半系数为零,这样在滤波时大大减少了计算量[7]。滤波的同时,在CIC滤波器实现了4倍的数据抽取,在半带滤波器实现了2倍的数据抽取,这样就得到了带宽为2MHz的两路8 bits,8MSample/s的正交基带信号。

对于发送信号,FPGA将USB传输的低速率基带信号进行插值并滤波,变换为32 MSample/s的采样信号并输出到DAC单元的数字上变频模块中,最终以两路14 bits,128 MSample/s的速度转换为模拟信号。

5、230 MHz 射频子板的实现

USRP的子板有很多种规格,分别针对了基带信号处理、广播电视接收、移动通信信号处理等领域。但由于在230 MHz 频段没有可用的全双工子卡,本文根据USRP 与子卡的接口说明,设计了针对230MHz 频段应用的全双工子卡,实现信号收发。其硬件实现结构如图6 所示。

GNU

230MHz 子板采用AD8345 和AD8348 分别作为调制器和解调器。AD8345 是ANALOG DEVICES公司推出的正交调制器,其工作频率为140~1000MHz,在数字通信系统中可用作中频调制器或直接上变频器。AD8348 是ANALOG DEVICES 公司推出的正交解调器,其工作频率为50~1000 MHz,解调带宽75 MHz,内部集成中频可变增益放大器。

AD8345和AD8348 输入的本振频率是两块ADF4360-7 锁相环输出的,本振频率分别为460 MHz和446 MHz。460 MHz 的信号在ADF4360-7 内部二分频输出至AD8345,446 MHz 信号在AD8348 内部进行二分频。芯片内部VCO 的中心频率设为460 MHz,这个中心振荡频率值是由外部电感设置的,它们之间的对应关系为:

通过计算可得,外部电感的值为3.84 nH。子板系统中晶振输出的参考频率为10 MHz,通过SPI总线控制配置ADF4360中的14 位R 计数器值为200,再配置N 计数器数值,就可以以50 kHz 的步长,覆盖420~500 MHz 的频率范围。

此外,由于USRP 的板载电源功率过小,子板的天线接口只能提供了100MW 的功率输出,而一般的230MHz 主站电台的功率为15 W 左右,因此,还需要在另外加装高增益的外接天线。

6 结束语

本文提出了一种基于GNU Radio 的多速率、多种调制方式、多信道的软件无线电主站电台的系统结构。该系统基于通用硬件平台,成本较低,既充分的利用了现有的无线电台资源,实现多种电台的全面兼容,又为将来的业务拓展和设备升级提供了保证。该系统使用纯软件的信号处理具有很大的灵活性,采用高级语言(C/C++、Python)进行系统开发,扩展性和可移植性强,开发周期短,并且随着CPU 处理能力的不断提高以及软件技术的进步,系统性能还有进一步提升的空间。

参考文献

[1]周立岩,孙毅,冯小安. 提高电力负荷管理系统通信效率的新方法[J]. 电力系统通信,2008,28(128):46-49.ZHOU Li-yan,SUN Yi,FENG Xiao-an. New MethodofImproving Communication Efficiency in Power LoadManagement System[J].Telecommunications for ElectricPower System,2008,28(128):46-49.
[2]无管字5 号,民用超短波遥测遥控数据传输业务频率划分[S].Radio AdministrativeBureau No.5 , Frequency Allocations ofCivil Ultrashort Wave Telemetering and Telecontrol Data Trasmit Servies[S].
[3]曹瀚文,王文博. GNU Radio:开放的软件无线电平台[J]. 电信快报,2007(4):31-34.CAO Han-wen,WANG Wen-bo. GNU Radio:OpenSource SDRPlatform[J]. Telecommunication Information,2007(4):31-34.
[4]Blossom E. How to Write a Signal Processing Block[EB/OL]. 2006.
[5]杨小牛,楼才义,徐建良. 软件无线电原理与应用[M].北京:电子工业出版社,2001.68-85.YANG Xiao-niu,LOU Cai-yi,XU Jian-liang. Principles andApplications of Software Defined Radio[M].Beijing:Publishing House of ElectronicsIndustry,2001.68-85.
[6]Ray Andraka. A Survey of CORDIC Algorithms for FPGA Based Computers[A]. in: Proceedingsof the 1998 ACM/SIGDA Sixth International Symposium on Field Programmable GateArrays[C]. 1998. 191-200.
[7]徐以涛,沈良,王金龙. FPGA 技术在软件无线电中的应用[J]. 电信科学,2001,11:36-39. XU Yi-tao,SHEN Liang,WANG Jin-long. Applicationof FPGA Technology in Software Radio [J]. Telecommunications Science,2001,11:36-39.

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
DEDSEC123 2018-03-29
0 回复 举报
您好,想问一个问题啊,在构建gmsk调制器那部分的:为什么最后要放一个fm调制器啊? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分