基于GNU Radio和USRP的体域网收发机设计

2022-08-16 03:10瞿佳俊刘昌荣徐大诚
计算机工程与设计 2022年8期
关键词:物理层接收端载波

王 铭,瞿佳俊,刘昌荣,徐大诚

(苏州大学 电子信息学院,江苏 苏州 215000)

0 引 言

软件定义无线电(software defined radio,SDR)是具有可编程、可重配置能力的新型无线电结构[1],基于通用射频前端和信号处理平台(如RTL SDR、HackRF One、USRP),用软件编程实现通信系统中的数据组包和调制解调。通过在软件无线电平台中搭建通信收发机,可灵活改变基带电路结构,降低产品开发成本并缩短设计周期,为基于特定通信协议的专用集成电路设计提供算法基础。

针对WBAN无线体域网基带处理模块设计,文献[2]提出了IEEE 802.15.6窄带物理层接收机的帧同步,定时同步和载波频率同步算法,不包含完整软硬件电路实现。文献[3]提出了基于IEEE 802.15.6 NB PHY层标准的硬件电路实现,包含支持π/2-DBPSK、π/4-DQPSK两种调制的可重构符号映射、解映射器,平方根升余弦滚降滤波器和前导码粗定时、细定时同步等模块。文献[4]中同样提出一种基于802.15.6协议的NB PHY基带收发专用集成电路设计方案,提出支持DBPSK、DQPSK和D8PSK多种调制方式的可重构符号映射器。

国内在此方面研究较少,文献[5]提出针对窄带物理层前导码在接收端的分组检测、符号定时同步和载波偏移恢复的相关算法。文献[6,7]基于FPGA平台实现WBAN窄带物理层收发架构,配合射频电路,对整个通信系统进行板级测试验证。文献[7]对系统做出点对点通信验证,未从系统性能、误包率等角度展开分析。

以上论文均采用硬件实现体域网通信系统。为了满足当前无线体域网络设备高传输速率需求,结合IEEE 802.15.6协议中可重构调制方式规定,本文拟采用π/2-DBPSK调制PLCP前导码和帧头,π/8-D8PSK调制PSDU。通过开源软件无线电平台GNU Radio与通用硬件外设USRP完成基于802.15.6协议标准的软件无线电无线通信收发机,最后对系统进行性能分析。仿真和实验结果均表明本系统能在低误码率下实现可靠通信。

1 软硬件平台及协议

1.1 软件无线电平台

软件无线电平台为无线通信系统设计与开发提供一种建立多模式、多频段、多功能无线设备的有效且经济实用的解决方案,通过修改软件代码可方便切换网络协议和调制方式,极大缩短开发周期和设计成本。

Matt Ettus 开发的USRP(universal software radio peripheral)是一种低成本、灵活的软件无线电硬件平台。母板USRP N210拥有两路100 MS/s、14位模数转换器,两路400 MS/s、16位数模转换器,带可编程抽取率的数字下变频,带可编程插值率的数字上边频,千兆以太网接口,扩展用的2 Gbps高速串口,可处理带宽高达100 MHz,流信号可达50 MHz。作为USRP N210的兼容射频子板,WBX-40覆盖频段50 MHz~2.2 GHz,最大信号处理带宽可达40 MHz,可提供100 mw功率输出。

GNU Radio是一个开源的软件无线电系统开发构建平台,允许开发者运用自带信号处理模块搭建系统(也可自行编写树外模块),完成系统开发设计和功能验证。GNU Radio采用Python和C++语言混合编程的方式编写代码,SWIG(simplified wrapper and interface generator)作为Python和C++之间的接口转换,将C++编写的模块用Python粘合在一起,以便让上层Python自由调用由C++编写的信号处理模块。为简化开发难度,GNU Radio使用GRC(GNU radio-companion)图形化界面编程工具,将选用模块拖曳到GRC终端,连接并运行程序后自动生成对应Python脚本文件,实现整个信号处理系统流程。

1.2 基于802.15.6协议的WBAN无线体域网

作为线传感器网的一个分支,无线体域网(wireless body area network,WBAN)主要应用于远程医疗诊断和监护[9,10],通过在人体体表或体内植入多个传感节点,实时监控使用者的生理特征及周围环境信息,再通过无线信道将数据发送给中心节点Hub,中心节点作为中央处理单元,负责无线体域网内部的通信控制及体域网与外部互联网之间的数据通信。由于传感节点资源有限,功耗管理成为WBAN发展的主要挑战之一。

IEEE 802.15工作组于2012年3月发布了IEEE 802.15.6标准的正式版,该标准详细规定了WBAN物理层(phy-sical layer,PHY)和媒体访问控制(medium access control,MAC)层特性,提供无线体域网近距离(人体距离)、高速率、低功耗、高可靠无线通信组网的国际化标准[8]。WBAN的3种不同物理层包括窄带(narrowband,NB)、超宽带(ultra wideband,UWB)以及人体通信(human body communications,HBC)物理层,其中窄带物理层是WBAN针对医疗电子领域优化的低功耗物理层协议,强调信噪比在11 dB下系统的误包率需低于10%。窄带物理层不易受到人体自身的影响,并且小的带宽减少了多路径传输引起的码间干扰,更适用于医疗应用领域。

2 系统设计

2.1 通信系统流程

无线收发机整体框架如图1所示,上半部分为发射机,下半部分为接收机,两者通过天线通信。本文中,发射机将需要发送的数据按IEEE 802.15.6协议规定的PHY层和MAC层组包方式构成完整的协议数据帧,随后采用π/2-DBPSK和π/8-D8PSK两种调制方式将比特数据映射到星座图中,用I,Q两路信号表示星座点的横纵坐标。经调制后生成的两路信号过采样后通过平方根升余弦滤波器(SRRC),抑制码间串扰带来的误码传输,提高频带利用率。以上功能在 GNU Radio 中以模块化的形式完成后,通过以太网口将数据发送给USRP进行下一步操作。

图1 无线收发机框架

经成形滤波后的两路信号仍为基带信号,需通过上变频将基带信号频谱搬移到射频段以便用天线辐射出去。通过UHD控制USRP母板对信号进行内插、数字上边频和数模转换。内插常用半带滤波器(HBF)和积分梳状滤波器(CICF)对基带信号插值,提高采样频率,匹配输入基带信号速率和载波数据速率。内插后的两路信号分别与本地数控振荡器(NCO)产生的数字余弦信号和正弦信号混频到中频,再经DAC后转成模拟中频信号,由射频子板中的模拟混频器将信号频谱搬移到射频频段后经天线辐射完成信号发送。

接收机中,抽取及其之前工作与发射机呈镜像关系,抽取后的信号经以太网口送入GNU Radio中。通常,在接收端会存在加性噪声、多径效应、频率偏移、时钟偏移等问题影响数据解调效果,其中频率偏移是指发射端和接收端由于本地时钟不同步导致信号频率有偏差。另外,调制后信号会进行过采样和脉冲成形操作,接收端需在过采样点中寻找最适合的原始采样点,尽可能降低码间干扰影响。针对以上问题,本文采用GNU Radio中的锁相环时钟同步(polyphase clock sync)、CMA(constant modulus algorithm)均衡器和科斯塔斯环(costas loop)模块。锁相环时钟同步模块可以实现时钟恢复和降采样,内部包含的匹配滤波器用于修正码间干扰影响。系统传递函数是成形滤波器和匹配滤波器的乘积,匹配滤波使用和成形滤波一致的平方根升余弦滤波器,可使匹配滤波器的输出信号图形中,在每个符号的最佳采样点处,其它符号功率都为零。CMA均衡器是为消除电磁波沿不同路径传播导致的多径干扰,通过改变特定频率的信号增益使接收端信号变得均衡。科斯塔斯环可为DBPSK和D8PSK实现相位和频率同步。最后对同步后信号进行帧头检测和解映射,恢复数据。

2.2 802.15.6协议帧结构

本文选用402~405 MHz 医用植入通信服务(medical implant communications service,MICS)频段范围的窄带物理层结构,主要负责无线收发机的激活与失活、空闲信道评估(clear channel assessment,CCA)、数据发送与接收。传输时,将MAC层生成的物理层数据服务单元(PHY service data unit,PSDU)前加上物理层前导码(physical layer convergence procedure preamble,PLCP Prea-mble)与物理层帧头(physical layer convergence procedure preamble header,PLCP Header)组成物理层协议数据单元(physical protocol data unit,PPDU),窄带物理层及媒体访问控制层帧结构如图2所示。

图2 NB PHY层和MAC层帧结构

90 bits的PLCP前导码位于PPDU最前端,协助接收机完成定时同步以及载波偏移恢复,其中前63 bits用于包检测、粗定时同步和载波偏移恢复,后27 bits用于细定时同步。为防止邻频干扰,前63 bits数据在奇偶信道上使用两种不同的前导序列。

第二部分是PLCP帧头,其目的是传递有关PHY参数的必要信息,以便在接收端解码PSDU,包括信息数据率、PSDU帧体长度(不包括MAC头和FCS)、突发模式、扰码种子、帧头检测序列(HCS)和BCH奇偶校验位等信息。帧头检测序列(HCS)是由PLCP帧头的前15 bits数据通过循环冗余校验(cyclic redundancy check,CRC)编码形成的4 bits序列,CRC-4的生成多项式为g(x)=1+x+x4。 为满足医疗检测技术对数据可靠性的要求,设计中集成了BCH(63,51,t=2) 的缩短码BCH(31,19,t=2), PLCP帧头的前19 bits通过此编码后得到12 bits纠错码,最多能纠正2 bits数据位错误,采用BCH编码可提高PLCP帧头数据鲁棒性,并减少数据重发次数。

最后一部分PSDU由MAC层生成,MAC层实现支持连接的基本功能,不进行带有冲突避免的载波侦听多路访问(CSMA/CA)算法,而是开机后立即发送数据。PSDU包括7字节的MAC帧头、可变长度的MAC帧体和2字节的帧检测序列FCS,MAC帧头包含帧控制字、接收端ID、发送端ID和体域网ID,FCS则由CRC-16编码生成,接收时需删除MAC帧头并检查FCS 是否正确。

PLCP帧头和PSDU的调制参数见表1,本文PLCP帧头采用π/2-DBPSK调制和BCH(31,19,t=2) 编码方式;PSDU选用π/8-D8PSK调制,为简化系统设计,PSDU未进行BCH编码。

表1 PPDU调制参数

图3为完整的NB PHY层收发机流程,该流程中包含PHY层调制参数的PHY帧头经CRC-4和BCH 编码后与PLCP前导码组成完整的PLCP帧,通过π/2-DBPSK调制,与π/8-D8PSK调制后的PSDU帧合并,经成形滤波后送往射频和天线部分;接收端数据经匹配滤波后经码元同步和载波同步,将PLCP数据送往π/2-DBPSK解调,BCH解码和CRC校验,恢复PHY帧头信息,PSDU根据PHY帧头包含的解调参数和帧长度进行解调、解包。

图3 NB PHY层收发机流程

2.3 调制与解调

相移键控及其衍生的差分相移键控是新一代数字通信系统常用的调制方式,而8PSK和D8PSK调制由于其较高的信息传输速率得到广泛应用,这两种调制方式用一个符号代表3位的比特数据,理论上信息速率可达BPSK和DBPSK调制方式下信息速率的3倍。8PSK的载波相位有8种取值,输入数据每3 bits为一组满映射到8种不同的载波相位,载波相位的不同取值如下

φ=2πn/8

(1)

其中,n∈{0,1,2,3,4,5,6,7}。 二进制序列与载波相位的映射关系由星座图确定,采用格雷码对图中星座点依次编码,格雷码中相邻相位之间只有一位数据不同,即使相位判断成相邻相位时也只会产生一位数据的误判,降低了数据传输的误码率。8PSK调制将符号映射的绝对相位加到载波中传输,载波信号在发射端和接收端都需要以一个固定的基准相位作为参考相位,如果参考相位突然发生0到π或π到0的相位翻转,都会导致接下来的一串数据在解调时出现0和1之间的翻转,这种现象称为“倒π”或“反向工作”。在通信过程中由于某种突发骚动导致分频器状态的翻转或锁相环路稳定状态的翻转,都会导致倒π现象的发生,并且这种现象往往是不易被察觉的。针对这一问题,实际应用中多采用多进制差分相移键控,解调时只考虑当前相位和前一相位的差值,而不依赖载波相位的固定参考值,D8PSK的表达式可以写成

s(t)=sin(ωct+φk)

(2)

φk=φk-1+Δφk

(3)

其中,ωc表示载波频率,Δφk表示相对相位,φk表示绝对相位。由码元符号映射的相对相位值加上前一个码元的绝对相位得到当前码元的绝对相位,添加到调制载波中发送。D8PSK的相对相位星座如图4所示。

图4 D8PSK星座

对D8PSK的表达式式(2)展开可得

s(t)=cosφk·sinωct+sinφk·cosωct

(4)

令Ik=cosφk,Qk=sinφk, 分别称为s(t)的同相分量和正交分量,D8PSK信号s(t)由两路频率为ωc的正交载波信号与同相分量、正交分量分别相乘后相加组成。

关于D8PSK的解调有相干解调法,差分解调法和鉴频法。其中鉴频法实现最简单,不过因其需要检测8种电平,对带通滤波器要求较高,故不采用。差分解调又称相位比较法,属于非相干解调的一种,因其不需要提取同步载波,实现起来比相干解调容易。相干解调法需要在接收端恢复出与输入端严格同频同相的载波信号,正交相干解调在解调端恢复出两路正交的相干载波信号,即cosωct和sinωct,与s(t)相乘后滤除高频分量得到解调信号。正交相干解调较差分解调法具有更低的误码率,针对无线体域网中高传输速率的可靠性要求,本文采用正交相干解调法进行解调。具体解调过程如下

m(t)=s(t)·2sin(ωct)=2sin(ωct+φk)·sin(ωct)= cosφk-cos(2ωct+φk)

(5)

n(t)=s(t)·2cos(ωct)=2sin(ωct+φk)·cos(ωct)= sin(2ωct+φk)+sinφk

(6)

分别滤除m(t)和n(t)的高频分量可得Ik=cosφk,Qk=sinφk, 此时得到的是绝对相位的正余弦值,再通过式(7)和式(8)

I′k=cos(Δφk)=cos(φk-φk-1)=cosφk·cosφk-1+ sinφk·sinφk-1=IkIk-1+QkQk-1

(7)

Q′k=sin(Δφk)=sin(φk-φk-1)=sinφk·cosφk-1- cosφk·sinφk-1=QkIk-1-IkQk-1

(8)

可得相对相位的正余弦值,根据映射关系将此正余弦值解映射成比特流数据即可得到解调后的数据。由于传输过程中存在干扰,此时在接收端接收到的相位点会扩散在原本星座点的周围,可通过比较接收相位点与各星座点之间的距离判断应解映射的符号数据。

π/2-DBPSK调制过程中,当输入数据为0时相对相位Δφ的取值为π/2;当输入数据为1时Δφ的取值为3π/2,再加上前一个码元的绝对相位得到当前码元的绝对相位,其余调制解调过程同上。解调时由式(8)和π/2-DBPSK的星座图可知:Q′k>0时,解调数据为0;Q′k<0时,解调数据为1。

3 平台测试与验证

3.1 D8PSK调制与解调仿真

为验证D8PSK调制解调流程,本文在GNU Radio中搭建纯软件平台,通过设置模块中的参数模拟实际信道传输中诸如信道衰弱、时钟偏移等问题。图中“Random Periodic Message Source”模块用于生成随机的字节流数据,字节流数据前添加用于帧同步的前导码0xA7B8后通过“Unpack K Bits”模块转为比特流数据,随后经串并转换成3路数据,作为D8PSK调制的输入,调制后的信号经成形滤波后发送给接收端。“Channel Model”信道模块中可以设置噪声电压、频率偏移和时钟偏移,还可以仿真传输信道的多径效应,模拟真实信道传输过程中信号遭受外界因素产生的影响。锁相环时钟同步模块可以实现发送端和接收端的采样时间同步,这里使用32个滤波器;CMA均衡器用于消除多径效应,这里使用11个抽头;科斯塔斯环用于恢复接收端的相位和频率偏差,针对D8PSK调制阶数设置成8。此时经符号定时同步和载波频率同步后的数据可进行D8PSK解调,解调后的数据送往前导码判决模块“d8psk_packet_sink”中,若检测到数据流中正确的前导码则输出随后的数据流。Wireshark模块是开源网络实时数据抓包器,通过在输入端和输出端加入Wireshark模块捕获数据流信息进行比对,分析系统性能。D8PSK调制解调整体GRC流如图5所示,Wireshark在第6帧的抓包结果如图6所示,“depsk_in”界面的前5个字节为前导码,后30字节为源数据,接收端“depsk_out”捕获到和发送端同样的数据,证明调制解调和同步时钟恢复等模块正常工作。

图5 D8PSK调制解调流

图6 输入输出端数据对比

3.2 基于 802.15.6 的收发系统验证

完整的基于IEEE 802.15.6协议的收发系统验证采用USRP N210母板、WBX-40射频子板作为硬件平台,装有Ubuntu 18.04系统及GNU Radio 3.8.0.0软件的PC作为软件平台,USRP由硬件驱动UHD控制。

软件无线电系统的整体实物如图7中所示,GRC流如图8所示,其中“IEEE 802.15.6 PHY”模块封装了两种调制解调方式及切换、PHY层的组包和解包、CRC和BCH码的生成与校验、前导码的检测与判决等具体子模块。随机数据源通过app in口流入MAC模块进行MAC层组包,MAC头中的帧控制字、发送端 ID、接收端ID和体域网ID参数如图8中所示,MAC 组包好的数据进入PHY层加上PLCP后进行调制和成形滤波,送往USRP发送模块“UHD:USRP Sink”,中心频率设置为402 MHz~405 MHz。接收端将数据接收送入PHY层解调后进行PLCP头的CRC-4和BCH校验,若检验正确则将PSDU数据发送给MAC模块,MAC层对数据进行CRC-16检验,若检验正确则将MAC帧体数据流入Wireshark,否则丢弃此帧。通过在信道中加入噪声,用Wireshark捕捉输入、输出端数据分析系统性能。信噪比变化由信道注入的噪声幅值控制,图9展示了不同信噪比下系统误包率,由图可知信噪比在11 dB 时误包率低于1%,系统具有可靠的准确率。

图7 收发系统实物

图8 802.15.6收发系统流

图9 系统误包率

4 结束语

针对WBAN收发机,目前还没有非常成熟高效的基带处理模块,本文提出一种基于IEEE 802.15.6窄带物理层结构的收发机系统设计,采用π/2-DBPSK和π/8-D8PSK两种调制方式,并在软件无线电平台上实现完整的无线通信收发流程,采用CRC和BCH两种编码方式确保数据的可靠性传输。

后续工作中,将在该设计基础上加入扩频、交织、扰码等模块,以进一步提升系统鲁棒性;深入研究WBAN中通信安全问题;在FPGA硬件平台中进一步验证NB PHY层基带收发机功能,配合射频电路构成完整通信系统,进一步研究优化系统功耗。

猜你喜欢
物理层接收端载波
水声单载波扩频均衡技术研究
基于K-ML-MPWFRFT的物理层安全传输技术
基于扰动观察法的光通信接收端优化策略
基于多接收线圈的无线电能传输系统优化研究
历元间载波相位差分的GPS/BDS精密单点测速算法
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
手机无线充电收发设计
用于SAR与通信一体化系统的滤波器组多载波波形
低载波比下三电平NPC逆变器同步SVPWM算法
一种应用于5G基于LDPC码的物理层包编码