CN105099623A - 基于子载波置零的MAC层的ZiMAC协议系统 - Google Patents
基于子载波置零的MAC层的ZiMAC协议系统 Download PDFInfo
- Publication number
- CN105099623A CN105099623A CN201510442726.5A CN201510442726A CN105099623A CN 105099623 A CN105099623 A CN 105099623A CN 201510442726 A CN201510442726 A CN 201510442726A CN 105099623 A CN105099623 A CN 105099623A
- Authority
- CN
- China
- Prior art keywords
- channel
- zigbee
- wifi
- data
- subcarrier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于子载波置零的MAC层的ZiMAC协议系统,包括载波侦听模块、计数器、分布式信道接入模块、帧封装/帧解析模块和ACK确认/超时重传模块;所述载波侦听模块,根据WiFi与ZigBee的信道宽度将单个WiFi信道划分为4个子信道,并依次在这4个子信道上进行子载波侦听,依据当前信道中ZigBee信号出现的位置检测信道空闲状态,仅在信道空闲状态下进行wifi信号发送;所述计数器,保证ZigBee节点在数据发送期间及时接入信道,同时保证WiFi利用ZigBee的数据发送间隔使用完整信道传输数据。与现有技术相比,本发明1、能够给WiFi吞吐率带来极大的提升;根据宽带传输的子信道忙闲状态,进行数据发送方式的动态调整,调整科学且灵活方便。
Description
技术领域
本发明属于Wifi/Zigbee异构网络共存的无线传感器网络技术领域,具体涉及一种基于子载波置零技术的802.11n与ZiBee共存模型的MAC层ZiMAC协议系统设计。
背景技术
各式各样的无线网络已经在城市中得到大规模部署,比如无线局域网(WirelessLocalAreaNetwork,WLAN),其中包括WiFi、Zigbee、蓝牙和WiMAX等等。IEEE802.11n是IEEE802.11WLAN(也称为WiFi,WirelessFidelity,无线保真)的主要成员,与传统的802.11b/g相比,都采用了正交频分复用(OrthogonalFrequencyDivisionMultiplexing,OFDM)技术外,802.11n对媒体访问控制(MediumAccessControl,MAC)层和物理层做了改进,主要包括多输入/多输出(Multi-InputMulti-Output)、帧聚合和信道绑定[1]。ZigBee是基于IEEE802.15.4标准的局域网协议,是一种短距离、低功耗的无线通信技术[2]。ZigBee具有近距离、低复杂度、自组织、低功耗和高数据等特点,主要适用于自动控制和远程控制领域。无论是WiFi还是ZigBee,它们都工作在无需授权的2.4GHzISM(IndustrialScientificMedical)频段,两者信道在该频段的分布情况如图1所示。不难看出,两种网络的信道可能存在重叠的情况,比如ZigBee的11信道和WiFi的1信道。当网络规模较小,通信节点密度较稀时,可以将ZigBee节点使用的信道和WiFi节点的信道错开来避免网络间的相互干扰。但在节点大规模部署的情况下,这两种网络的信道发生重叠将不可避免。现有研究表明,WiFi干扰会导致ZigBee的丢包率高达58%[3],反过来zigbee的的重业务量也会对WiFi造成严重干扰,导致约50%左右的网络丢包率[4]。
Gummadi等[5]对异构网络在同一频段的共存问题提出了一种较好的解决办法——Metronome(节拍器),它根据异构网络在吞吐率、丢包率等性能上给出的限定条件,自动合理地分配网络中发送节点的信道和带宽,选择合适的发送功率等,使得各异构网络之间的相互干扰最小化。但是,这种方法只适用于静态网络,当有移动节点加入或离开网络时,就需要对网络重新进行初始化,分配各个参数,这降低了整个网络的性能。
针对多跳ZigBee节点路径中某区域有同频段WiFi影响的情况,Won等[6]提出通过在该区域中动态改变ZigBee信道,使ZigBee与WiFi信道相互正交,进而解决两者共存问题。这种方法是在网络间发生冲突之后才进行的调整策略,因此不适合突发数据,而且也需要一定的额外时间来进行扫描和信道重新配置。
Zhang等[7]提出CooperativeBusyTone(CBT)机制:假设某WiFi发送节点工作在信道Cw,在该节点附近部署一个附加ZigBee节点A。当有其他ZigBee节点在与Cw重叠的信道i上发送信号时,ZigBee节点A就跳频到与i相邻的信道j上发送busytone,其中信道j和信道i同在WiFi信道Cw的覆盖下。该机制使得即便存在ZigBee节点在非对称区域发送信号,WiFi节点也可以通过对称区域中的ZigBee节点A得知WiFi信道Cw忙,从而提高了ZigBee节点对WiFi节点的可见性,减小了WiFi对ZigBee的影响。但在该方案中的每个WiFi节点周围都需要额外增加一个ZigBee节点,当节点密度较大时会带来了较大的额外开销。
Liang等[8]根据WiFi能否感知到ZigBee分两种情况,分别解决两者的共存问题。当WiFi能感知ZigBee时,ZigBee数据包和WiFi信号发生碰撞时只损坏头部信息。针对这种情况,作者对ZigBee数据包进行修改,使其包含多个重复的包头,则发生碰撞时ZigBee包最多只损坏一个包头信息,后面重复的包头可以使其被ZigBee节点正确接收。当WiFi感知不到ZigBee时,ZigBee通过纠错码来提高ZigBee对WiFi的容忍性,文中使用Hammingcode和Reed-Solomoncode两种编码。当然在添加多个包头和纠错码后,编解码将带来额外的延迟和能耗。
为解决WiFi和ZigBee相互干扰的问题,上述文献的主要切入点是避免两者网络信道发生重叠或者是增加冗余信息。但这会带来许多额外开销。将子载波置零技术[9]应用到WiFi与ZigBee共存场景后,通过分离信号频谱不仅可以避免信号间的相互干扰,解决两者的共存问题,同时由于不需要添加任何额外设备,还可以减少设备花销。
子载波置零技术指的是能将WiFi发送子载波置零的一项技术。通常单个WiFi信道的带宽为20MHz(在802.11n/ac中可以达到40MHz或者更高,但不失一般性,以20MHz为例讨论),而一个ZigBee信道的带宽仅仅为2MHz,若加上其信道左右保护间隔,约5MHz。由此,单个WiFi信道与ZigBee信道的带宽之比为4:1。运用子载波置零技术解决WiFi与ZigBee共存问题[10],就是从物理层考虑,根据WiFi与ZigBee信道带宽的关系将原有的WiFi信道分成四等份,称其中的一份为一个子信道。WiFi发送节点将ZigBee信号所在的信道频谱做置零(subcarriernulling)处理,使这部分频谱获得零能量,并利用余下空闲子信道传输WiFi数据包,如图2(b)所示。通过分离两者信号频谱来消除信号间的相互干扰,可实现WiFi与ZigBee网络的共存,WiFi和ZigBee信号的并行传输也使得频谱资源得到了充分利用。
在本发明之前,已经在由GNURadio/USRP软件无线电设备和ZigBee节点搭建的实验床上进行了大量的实验,验证了子载波置零技术在解决802.11n与ZigBee共存问题上的可行性,实验结果表明,采用子载波置零技术的2×2非相干MIMO可以获得全带宽发送状态下50%-70%的吞吐量,同时在数据并行传输过程中ZigBee的正确收包百分比达到90%以上。
上述子载波置零技术仅仅是物理层上的技术,如果仍采用原有的媒体访问控制(MediumAccessControl,MAC),会面临一些问题。本专利要解决的就是在基于物理层采用子载波置零技术实现802.11n与ZigBee中在MAC层设计中存在的问题,并重新设计了一个更适合基于子载波置零实现WiFi与ZigBee共存场景的MAC层协议——ZiMAC。
查阅中国专利网,关于MAC层协议设计的专利有很多,都是针对不同场景而设计的,其出发点和自足点也大相径庭,有针对无线传感器网络的MAC协议方法[11],有针对无线局域网资源预约的MAC层设计[12],但针对两者共存的MAC层协议还没有。
参考文献:
[1]TheWorkinggroupforWLANStandard.IEEEStandardforwirelesslocalareanetwork:802.11n[S/OL].[2014-07-10];
[2]IEEEP802.15WorkingGroup.StandardforPart15.4:WirelessMediumAccessControl(MAC)andPhysicalLayer(PHY)specificationsforLowRateAreaNetwork(LR-WPANs)[S/OL].[2014-07-10];
[3]THONETG,ALLARD-JACQUINP,COLLEP.ZigBee-WiFicoexistencewhitepaperandtestreport[R/QL].[2014-07-10];
[4]WHEELERA.ZigBee/802.11CoexistenceTestingandRecommendationsSanRaman:ZigBeeAlliance,2006:24-37;
[5]GUMMADIR,BALAKRISHANH,SESHANS.Metronome:Coordinationspectrumsharinginheterogeneouswirelessnetworks[C]//Proceedingofthe1stInternationalConferenceonCommunicationSystemandNetwork.Piscataway:IEEE,2009:157-166;
[6]WONC,YOUNJH,ALIH.Adaptiveradiochannelallocationforsupportingcoexistenceof802.15.4and802.11b[C]//Proceedingofthe62ndIEEEVehicularTechnologyConference.Piscataway:IEEE,2005:2522-2526;
[7]ZHANGX,SHINKG.Enablingcoexistenceofheterogeneouswirelesssystem:caseforZigBeeandWiFi[C]//Proceedingofthe12thACMInternationalSymposiumonMobileAdHocNetworkingandcomputing.NewYork:ACM,2011:6-11;
[8]CHIEH-JANMIKELIANG,NISSANKABODHIPRIYANTHA,JIELIU,etal.SurvivingWi-FiInterferenceinLowPowerZigBeeNetworks.8thACMConferenceonEmbeddedNetworkedSensorSystems.NewYork:AssociationforComputingMachinery,2010;
[9]XINYUZHANG,KANGG.SHIN.AdaptiveSubcarrierNulling:EnablingPartialSpectumSharinginWirelessLANs.19thIEEEInternationalConferenceonNetworkProtocols(ICNP).NewYork:IEEE,2011:311-320;
[10]赖新宇、赵增华、吴璇璇,802.11n与ZigBee共存:子载波置零多输入多输出物理层模型.计算机应用第34卷第12期,2014年12月;
[11]陈少华、曾洁、李佳林,一种基于无线传感器网络MAC协议方法.中国.CN102546750A;
[12]崔伟、杨博文,无线局域中基于资源预约的QosMAC协议.中国.CN102137453A。
发明内容
为了克服上述现有技术的问题,本发明提出了一种基于子载波置零的MAC层的ZiMAC协议系统,保证WiFi与ZigBee共存的前提下正确侦听各个子信道的忙闲状态,调整数据发送模式,并尽可能地减少子载波置零给WiFi带来的吞吐率的下降,解决由于退避时间长导致的ZigBee无法及时接入信道的问题。。
为了实现上述目的,本发明提出了一种基于子载波置零的MAC层的ZiMAC协议系统,该系统包括载波侦听模块、计数器、分布式信道接入模块、帧封装/帧解析模块和ACK确认/超时重传模块;分布式信道接入模块,用于管理WiFi节点,获取分布式信道媒体;帧封装/帧解析模块,分别用于将数据按照一定的格式打包封装以及将物理层获得的数据包按照一定的规则进行解析;ACK确认/超时重传模块,用于利用ACK确认或超时重传手段,保证数据的可靠传输;其中:
所述载波侦听模块,根据WiFi与ZigBee的信道宽度将单个WiFi信道划分为4个子信道,并依次在这4个子信道上进行子载波侦听,依据当前信道中ZigBee信号出现的位置及子信道上WiFi信号的子载波是否置零处理进行检测:检测结果为整个信道忙状态的条件是将4个子信道中有3个及3个以上位置出现ZigBee信号、允许1个或1个以上WiFi信号利用此信道传输数据;检测结果为整个信道忙状态的条件是将4个子信道中有3个以下位置出现ZigBee信号作为整个信道空闲状态,允许1个以上此子信道上WiFi信号的子载波进行置零处理;
所述计数器,保证ZigBee节点在数据发送期间及时接入信道,同时保证WiFi利用ZigBee的数据发送间隔使用完整信道传输数据。
所述利用ZiMAC协议依次对4个子信道的忙/闲状态进行检测的步骤,具体包括以下处理:
为每个子信道建立一个独立的流图,并为其分配一个独立的USRP设备;
在不同流图中通过UHD对USRP设备的IP地址进行指定,使得各个USRP设备完成独立功能;各个USRP设备同步运行,利用USRP设备根据用户指定的中心频率以及信道带宽对信号进行采样,经过多个信号处理块的处理后数据最终交给analog::probe::carrier_sensed()与监听门限值进行比较,获得各子信道忙/闲状态;将每个所述独立的流图定义为一个hierarchicalblock,建立一个top_block容纳hierarchicalblock,则在运行该top_block的时候,所有流图并发运行。
所述门限值最佳取值为-40dB。
所述计数器还包括以下工作流程:
WiFi节点在某次数据发送前检测到ZigBee信号并对已被占用的子载波置零,此时计数器被置为N,N为一个大于零的正整数;
上述数据发送的WiFi节点仍然采用最近一次使用的非连续子载波模式发送数据,且每发送一个数据包计数器的值减1;
当计数器递减为零值,且WiFi的4个子信道全部处于空闲状态,发送节点才使用整个信道发送数据;
若在计数器未递减到零值前WiFi节点又再次检测到ZigBee信号,无论此时检测到的信道状况与上一次的检测结果是否一致,计数器都将被复位为N,并采用与最新信道状态对应的非连续子载波模式发送数据。
与现有技术相比,本发明能够达成以下的积极效果:
1、能够给WiFi吞吐率带来极大的提升;
2、根据宽带传输的子信道忙闲状态,进行数据发送方式的动态调整,调整科学且灵活方便。
附图说明
图1为WiFi与ZigBee在2.4G频段的信道分布示意图;
图2为信道重叠技术与子载波置零技术原理示意图,其中:(a)信道重叠;(b)子载波置零;
图3为ZiMAC功能块及其整体框架;
图4为发送端的物理层结构框架示意图;
图5为改进的CS函数流程图;
图6为数据包发送队列结构示意图;
图7为zb_counter取不同值时不同带宽模式下WiFi的相对吞吐率(平均值)比较示意图;
图8为zb_counter取不同值时ZiMAC相对吞吐率提高值比较示意图;
图9为ZiMAC吞吐率测试情景模拟图;
图10为N=10时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率比较示意图;
图11为N=20时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率比较示意图;
图12为N=30时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率比较示意图;
图13为N=40时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率比较示意图;
图14为N=50时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率比较示意图;
图15为1/2带宽下ZiMAC在不同ZigBee数据发送密度下的相对吞吐率提高值示意图;
图16为3/4带宽下ZiMAC在不同ZigBee数据发送密度下的相对吞吐率提高值示意图;
图17为ZigBee信道和WiFi子信道分布示意图;
图18为不同中心频率下监听门限取值与信道接入百分比的测试结果示意图;
图19为USRP设备发送数据时信道接入检测节点的信道接入百分比示意图;
图20为ZigBee发送数据时信道接入检测节点的信道接入百分比示意图。
具体实施方式
下面将结合附图对本发明的具体实施方式进行详细描述,这些实施方式若存在示例性的内容,不应解释成对本发明的限制。
本发明提出的ZiMAC协是国内首次针对ZigBee与WiFi共存提出的MAC层协议,其物理层的实现基于子载波置零技术,该ZiMAC协议主要包括以下三个关键部分:
一、新的载波侦听机制,根据WiFi与ZigBee的信道宽度将单个WiFi信道划分为4个子信道,并依次在这4个子信道上进行载波侦听;
二、根据应用场景的需要对原有MAC协议的分布信道接入机制做了相应改进,包括信道媒体忙闲状态的重新定义和物理层发送模式的选择;
三、为保证在Duty-Cycle方式下工作的ZigBee节点在数据发送期间能够及时接入信道,同时使得WiFi能够利用ZigBee的数据发送间隔使用完整信道传输数据,ZiMAC添加了计数器机制,它在保证ZigBee通信的前提下减小了子载波置零对WiFi吞吐率的影响,相比完全使用非连续子载波发送提升了后者的性能。
现有技术中,针对基于子载波置零技术的802.11n与ZigBee共存场景如图1所示,子载波置零物理层将原来一个WiFi信道划分为4个带宽为原来1/4大小的子信道,并对每个子信道进行独立的载波侦听和接入。除NC-OFDM物理层自身特点外,还需要考虑如何在保证ZigBee及时接入信道的前提下减小子载波置零给WiFi吞吐率下降带来的影响。
基于以上出发点,本发明主要解决原有的802.11nMAC层不适用的三个关键问题:(1)无法对单个子信道的进行载波侦听;(2)原有分布式信道接入机制的不适用性;(3)由于ZigBee退避时间较长导致其接入信道的几率大大减小的问题。针对这三个关键问题,本专利提出了针对性的解决方案,重新设计了MAC层协议——ZiMAC,提出了改进的载波侦听及分布式信道接入机制,添加了一个计数器机制;除此以外,还保留了原有的MAC层中的帧封装与帧解析、ACK确认及超时重传等特性,下面详细介绍ZiMAC协议的具体结构和各个部分所实现的功能,其中关于本专利实现的实验硬件平台是USRP(UniversalSoftwareRadioPeripheral,通用软件无线电外设),软件平台是GNURadio。
如图3所示,为本发明的基于子载波置零的的MAC层协议系统的系统结构图。根据ZiMAC协议的功能,本发明分为五个主要功能模块,每个功能模块完成特定的工作,它们分别是载波侦听模块、分布式信道接入模块、计数器、帧封装/帧解析模块和ACK确认/超时重传模块。
其中,载波侦听模块与计数器共同决定了物理层所采用的发送模式,反过来载波侦听模块又是通过物理层实现的;
分布式信道接入模块用于管理WiFi节点,获取分布式信道媒体;帧封装/帧解析模块分别用于将数据按照一定的格式打包封装以及将物理层获得的数据包按照一定的规则进行解析;ACK确认/超时重传模块用于利用ACK确认或超时重传手段,保证数据的可靠传输。其中帧封装/帧解析模块还有ACK确认/超时重传模块与现有技术在802.11nMAC层相一致,就不做具体介绍,以改进的载波侦听机制模块、分布式信道接入模块、计数器三个功能模块从设计与实现的角度作详细介绍。
1、改进的载波侦听模块:
改进的载波侦听模块根据WiFi与ZigBee的信道宽度将单个WiFi信道划分为4个子信道,并依次在这4个子信道上进行载波侦听。ZiMAC协议需要依次对4个子信道的忙闲状态进行检测,以准确地反映当前信道中ZigBee信号位置。标准以太网MAC层的载波侦听功能对节点使用的信道进行状态检测是将整个信道作为一个独立的频谱资源块进行的,其得到的信道信息并不能准确地反应本文研究场景中真实的信道状态,也就是说原有的载波侦听功能并不适用了。例如,假设当前WiFi信道中存在两个ZigBee信号,则在标准以太网MAC协议中载波侦听的返回结果是信道忙。而对应用于WiFi与ZigBee共存场景的802.11n物理层而言,这两个ZigBee信号所占用的频谱仅仅为整个信道带宽的1/2,即两个子信道,WiFi仍可以利用余下的2个空闲子信道发送WiFi数据。此时ZiMAC的载波侦听应将信道状态判定为空闲,并告知发送节点ZigBee信号所处的确切位置。只有当整个WiFi信道都被ZigBee信号占用的情况下,ZiMAC的CS才将信道判定为忙。以下介绍改进的载波侦听机制在USRP和GNURadio平台上的实现。
GNURadio提供一个名为carrier_sensed()的函数供用户调用以完成信道状态检测。USRP设备根据用户指定的中心频率以及信道带宽对信号进行采样,经过多个信号处理块的处理后数据最终交给analog::probe::carrier_sensed()与监听门限值进行比较,获得信道忙/闲状态。Analog::probe::carrier_sensed()是物理层信号接收链的最后一个处理块,其获得的数据是由接收流图初始化时用户指定的中心频率以及信道带宽决定的。在标准的CSMA机制中这个结果能够满足用户的需求:发送端根据整个20MHz信道的能量情况判定当前信道的忙/闲状态。但在WiFi与ZigBee共存场景中,NC-OFDMPHY层需要根据四个带宽为5MHz的子信道的情况来决定当前信道的状态,并判定适用于当前信道的数据发送模式。这要求ZiMAC的CS功能依次对四个中心频率不同的子信道进行能量检测,也就是需要改变检测信道的中心频率。例如当前WiFi节点工作在13信道,其信道的中心频率为2472MHz,则四个子信道对应的中心频率分别为2464.5MHz、2469.5MHz、2474.5MHz和2479.5MHz。对USRP设备工作的中心频率是在UHD的初始化时进行设置的,而且这个过程也需要消耗大量时间(秒级),因此如果通过改变USRP工作的中心频率的方式依次对4个子信道进行检测,然后在发送数据阶段又将中心频率切换为13信道的2472MHz,则整个过程所要消耗的时间是巨大的而且是不能接受的。
为解决这个问题,本专利采用multiflowgraph/multiUSRP方式,即多流图与多USRP。多流图、多USRP是指为每个子信道的载波侦听功能建立一个独立的流图,并为其分配一个独立的USRP设备。如图4所示,为整个发送端物理层结构框架示意图,在GNURadio中流图被放在一个称为topblock的容器类对象中,在某些场景,比如发送/接收机以及ZiMAC载波侦听功能的实现,需要多个完整的流图来实现各个独立的功能。一般而言一个流图放到一个top_block中,则多个独立功能流图的运行则需要同时运行多个top_block。但当前版本GNURadio还无法达到这个效果,不过可以通过下述方法实现多个流图的同时运转:将每个完整的流图定义为一个hierarchicalblock,然后建立一个top_block来容纳这些hierarchicalblock,则在运行该top_block的时候,所有流图都会并发运行。在不同流图中通过UHD对USRP设备的IP地址进行指定,即可达到各个USRP设备完成独立功能的目的。这种结构的各个USRP设备间需要进行同步,通过使用外部参考时钟(ExternalPPSandReference)的方式将时钟产生器与各USRP的PPSin和REFCLOCK接口相连即能满足同步的要求。
ZiMAC载波侦听函数工作流程图如图5所示。变量busy_count用于记录当前已经检测过的状态为忙的子信道的数量,当其取值为3时,即可判定当前信道状态为繁忙,应当推迟或者挂起指数退避过程。is_busy和tx_mode分别表示整个WiFi信道忙闲状态判定结果和与当前信道状态相适应的物理层发送模式,并作为CS函数的返回值返回。
对一个子信道状态的判定结果是由用户给定的监听门限值来决定的。如果CS(CarrierSense)函数在当前子信道检测到的能量值大于该门限值,则认为子信道繁忙;反之如果检测值小于门限值,则判定信道空闲。合理的监听门限值设定非常关键,因为过大的门限值使得CS一直将子信道状态判定为空闲,导致即便当前信道中存在其他信号的干扰发送端仍然发送数据包,进而造成信号间的碰撞,或者由于噪声过大导致接收端无法从接收到的信号中恢复数据而导致系统的吞吐率严重下降;过小的门限值甚至可能低于当前信道的noise_floor水平,使得信道状态被一直判定为繁忙,节点无法获得信道媒体,这也将大大地降低系统的吞吐率。关于监听门限值的确定将在第八节最佳实施方式中介绍。
2、分布式信道接入
根据应用场景需要对原有MAC协议的分布信道接入机制也做了相应的改进,包括信道媒体忙闲状态的重新定义和物理层发送模式的选择等。
上节已经介绍,当信道中zigbee已占用了两个子信道时,对应用于WiFi与ZigBee共存场景的802.11n物理层而言,这两个ZigBee信号所占用的频谱仅仅为整个信道带宽的1/2,WiFi仍可以利用余下的2个空闲子信道发送WiFi数据。此时ZiMAC的载波侦听应将信道状态判定为空闲,并告知发送节点ZigBee信号所处的确切位置。又因为子载波置零会使WiFi吞吐率下降,从理论上分析,当实际使用的带宽减少一定比例时,吞吐率也将减小相近似的比例。例如WiFi节点采用“1000”发送模式发送数据,WiFi的实际带宽减少为原来的1/4,相应地吞吐率也应减少为原有的1/4。但子载波置零物理层相对吞吐率测量结果表明,在1/4带宽下WiFi节点的相对吞吐率仅为4%,远远低于其理论值(25%);而在1/2带宽和3/4带宽下WiFi的相对吞吐率与理论值基本相符。ZiMAC提出的初衷是在尽量减小WiFi受到影响的前提下提高ZigBee的性能,显然在整个WiFi信道同时被3个ZigBee信号占用时使用余下1/4带宽发送数据是有悖于非连续子载波物理层提出的初衷的,故在此种情况下ZiMAC将信道状态判定为忙。
综上,改进后的载波侦听机制的信道状态定义与标准CSMA判定结果的对比关系如表1所示。表的第一列给出了对应的信道情况。假设用一个“_”符号表示一个空闲的WiFi子信道,用“*”表示某个子信道上出现了ZigBee信号,则当整个WiFi信道都处于空闲状态时,可以用“____”表示;如果在WiFi信道最左边的子信道上检测到了ZigBee信号,则用字符串“*___”表示。其他情形可依次类推。
表1、ZiMAC载波侦听的信道状态与原始MAC载波侦听信道状态对比
针对上节改进的载波侦听机制的结果,可准确得知4个子信道中哪个繁忙,哪个空闲,再结合上述对于信道忙闲的定义,确定发送模式,可参照表1,在ZiMAC载波侦听判定信道状态为空闲的前提下,信道情况中“_”代表WiFi可利用此信道传输数据,“*”表示WiFi在此子信道上的子载波进行置零处理这一过程的具体实现及发送模式的确定过程如图4所示。
3、计数器机制
计数器的提出是为了保证在Duty-Cycle方式下工作的ZigBee节点在数据发送期间能够及时接入信道,同时使得WiFi能够利用ZigBee的数据发送间隔使用完整信道传输数据而提出的。其可保证ZigBee通信的前提下减小了子载波置零对WiFi吞吐率的影响,相比完全使用非连续子载波发送提升了后者的性能。
WiFi更短的退避时间使得其节点接入信道的机会更大,ZigBee则更可能“看到”信道处于忙状态。ZigBee网络节点通常以Duty-Cycle方式工作,例如在天然气泄漏检测ZigBee网络中,非突发情况下检测节点以30秒为周期向数据中心发送相应的检测信息。为改善NC-OFDM的吞吐率,考虑WiFi在ZigBee的数据发送间隔使用完整信道发送数据。假设WiFi节点在某次数据发送前检测到ZigBee信号并采用子载波置零模式发送数据,而在下一个数据包发送前检测到整个信道空闲并采用全部带宽发送,此时可能是因为ZigBee已经准备好了需要发送的数据但由于较长的退避过程使得其并未获得接入信道的机会。这虽然能够提升WiFi的吞吐率,但将导致ZigBee数据发送不断向后推迟的情况出现,对其性能造成较大的影响。
为解决这个问题,ZiMAC引入一个计数器,其核心思想是在某段时间内空出之前ZigBee节点使用的信道频谱。仍假设WiFi节点在某次数据发送前检测到ZigBee信号并对已被占用的频谱子载波置零,此时计数器被置为N,N为一个大于零的正整数。WiFi节点在后续N个数据包发送过程中,即便整个信道始终保持空闲,为保证ZigBee在需要继续发送数据时能够及时接入信道,发送节点仍然采用最近一次使用的非连续子载波模式发送数据,且每发送一个数据包计数器的值减1。只有当计数器递减为零值,且WiFi的4个子信道全部处于空闲状态,发送节点才使用整个信道发送数据。由于这N个数据包发送过程中之前被ZigBee占用的子信道的频谱一直被空出处于空闲状态,则在这段时间内若ZigBee节点需要继续传输数据,则它能够及时地获得媒体接入。若在计数器未递减到零值前WiFi节点又再次检测到ZigBee信号,无论此时检测到的信道状况与上一次的检测结果是否一致,计数器都将被复位为N,并采用与最新信道状态对应的非连续子载波模式发送数据。
表2给出了一个计数器工作的例子。假设发送端所发送的数据包都被接收端正确接收并成功收到ACK确认。开始时发送端检测到其信道内最左边的两个子信道被ZigBee占用,因此采用“0011”模式发送数据包,假设计数器值被置为N=20。其后续20个数据包发送过程中,整个WiFi信道保持空闲,但由于计数器的作用WiFi节点仍采用模式“0011”发送数据并且计数器逐次减一,如步骤21所示。在步骤22~23中计数器值已经递减到0,且整个WiFi信道保持空闲,故WiFi节点使用整个信道,即“1111”发送模式传输数据。在步骤24信道状态变为“**__”,则此时发送端采用模式“0011”发送数据,且计数器被重置为20。在步骤27,信道状态从“____”变为“__*_”,为适应信道变化WiFi的发送模式改为“1101”,计数器由步骤26的18重置为20。步骤28的信道状态与步骤27相同,则发送模式和计数器值保持不变。步骤29信道再次变化,发送端采用发送模式“1100”发送数据,计数器取值仍为20。在步骤30发送节点检测到信道状态为“____”,发送端采用“1100”模式传输数据,计数器取值减一。后续过程依次类推。需要特别说明的是,计数器减一的操作是在整个信道保持空闲并发送一个数据包后进行的。
表2、计数器工作过程示意
以上介绍了计数器的工作原理及其工作过程。此外,发送端物理层采用的发送模式不仅仅是由最新检测到的信道状态决定的,同时也受限于上述讨论的计数器的当前值。在一次指数退避过程中,如果载波侦听判定信道空闲且返回的发送模式信息为非连续子载波模式,ZiMAC需要保存该信息,并且整个退避过程中只保存最近一次的非连续子载波发送模式信息。这是因为在随机退避过程中如果节点选择的退避时间较长,则在退避过程中信道的状态可能发生了多次变化,比如由“*___”变为“**__”,需要根据后者来确定物理层的发送模式。类似地如果信道由“**__”变为“*___”,本文将采用“0111”模式发送数据,这样既能保证ZigBee节点的信道接入,至少是部分ZigBee节点(位于最左边子信道上的ZigBee节点)的信道接入,同时又不至于过大的影响WiFi的吞吐率。如果在一次指数退避过程中整个WiFi信道都保持空闲,则在计数器递减为0前WiFi节点仍然需要按照最近一次判定的非连续子载波模式发送数据包。
在MAC层生成的数据包是通过send_pkt()函数插入到物理层的数据包队列中的。与此同时还需要将该数据包对应的发送模式告知物理层。实现方法并不唯一,既可以通过新增加一个消息队列来保存数据包队列中对应位置数据包的发送模式,也可以将发送模式进行简单的打包并紧随在对应数据包后插入到同一个队列中,然后在物理层对其进行解析得到相应的发送模式。后一种方法不但易于实现,而且能较好地保证数据包与发送模式间的对应关系,故本专利采用后一种方法。对应的数据包队列如图6所示。
本专利定义了一个发送函数zimac_send_pkt(payload,backoff_nc),其主要作用有两个,一是根据指数退避过程中获得的发送模式信息以及计数器当前值决定物理层采用的发送模式;二是重新封装ZiMAC与PHY层的数据接口。该函数的伪代码如下所示:
其中nc_mode表示物理层实际采用的发送模式,backoff_nc表示指数退避过程中记录的最近一次非连续子载波发送模式,计数器记为zb_counter,发送的数据帧为payload。
上述说明的改进的载波侦听与信道接入仅仅是为了适用基于子载波置零的802.11n与ZigBee共存的物理模型,本发明最具特色的是计数器机制。以下就在基于以上共存模型的前提下分析有无计数器对ZiMAC吞吐率的影响问题。
ZiMAC针对子载波置零PHY在WiFi和ZigBee共存场景的应用加入了计数器机制,其目的是保证在某一段时间内连续发送数据的ZigBee节点能够及时接入信道,而不需要与WiFi节点展开信道竞争。当计数器递减为0后WiFi能够利用ZigBee数据发送的间隙使用全部带宽传输数据,减小由于子载波置零导致带宽减小对其吞吐率造成的影响。下面就有无计数器及计数器的不同取值对ZiMAC的吞吐率进行测试,并进行分析比较。这里所说的ZiMAC吞吐率都是用相对吞吐率进行衡量的,其计算公式见(1)
计数器的取值将会影响ZiMAC的吞吐率,这是因为其值越大,则在相同时间内WiFi使用全带宽发送的时间就越少,子载波置零对WiFi吞吐率的影响就越大。计数器取值越接近0,则计数器的影响越小,此时WiFi的吞吐率较高,但是这可能会对接下来需要继续发送数据的ZigBee节点的信道接入造成影响,甚至退化为一般CSMA信道竞争的情形。相反,计数器取值越大,则子载波置零的影响越大,WiFi的吞吐率越低,但是能保证ZigBee有足够多的时间接入信道并发送后续数据包。但计数器取值过大将导致如下情形:计数器在递减为0前ZigBee节点又开始新一轮的数据包发送,则WiFi可能一直保持非连续子载波发送状态,此时退化为无计数器情形的单纯子载波置零WiFi发送。由此,随着计数器取值的增大,WiFi吞吐率将下降,其下限为纯粹采用子载波置零模式发送时的吞吐率。
假设将计数器zb_counter的初始值记为N,本节实验测试了N分别取值10、20、30、40和50时ZiMAC的相对吞吐率,以验证上述结论。实验中选取模式“1100”和“1001”作为1/2带宽情形的测试对象,模式“1110”和“1101”作为3/4带宽的测试对象,每个发送模式进行6组测试,每次发送2000个数据包,最后求得相应比例带宽的平均相对吞吐率。本组实验中zigbee_pkts_gap的取值区间为[0.002,0.03],zigbee_tx_gap的取值区间为[1,2]。图7给出了ZiMAC在不同计数器取值条件下的相对吞吐率。为更明显的显示ZiMAC带来的性能提升,图8给出了ZiMAC相对吞吐率提高值,它表示ZiMAC在相应计数器取值时的相对吞吐率与单纯子载波置零发送情形的相对吞吐率之差。
图7中横坐标表示计数器取值Zb_counter,nocounter表示不设置计数器,即WiFi的整个发送过程都采用非连续子载波模式发送情形下的吞吐率,纵坐标表示相对吞吐率。首先对比有无计数器的情形。从图7和图8可以明显看到,无论是在1/2带宽还是在3/4带宽,带计数器功能的ZiMAC的相对吞吐率要明显高于不带计数器情形的相对吞吐率,其相对吞吐率提升最大可以达到46个百分点,最小也有16个百分点(见图8)。分析其原因,主要是因为ZigBee节点是周期性发送数据的,在其数据发送的间隙WiFi的计数器减为0后可以使用全部带宽发送数据,相比一直采用部分带宽发送的情况能够给WiFi吞吐率带来提升。再对比不同计数器取值的情形。正如前文所述,随着N的增大,1/2带宽和3/4带宽下ZiMAC的相对吞吐率都有所下降,但下降的幅度不同:对1/2带宽,ZiMAC的相对吞吐率由N取值10时的87%下降到N取值50时的58%;而3/4带宽则要相对稳定,当N取值为10时ZiMAC的相对吞吐率为96%左右,到N取值50时其相对吞吐率下降到87%左右,下降幅度为9个百分点。分析其中原因,主要是不同发送模式的实际带宽不同导致的。假设在某个时间段t内,采用子载波置零模式发送的时间长度为t1,采用全带宽模式发送的时间长度为t2,且有t=t1+t2。考虑在两次实验中相同时间内分别使用“1100”和“1110”发送模式传输数据。由于带宽较小的“1100”模式的吞吐率比“1110”要低,而在t2时间内采用全带宽发送WiFi获得的吞吐率基本相同,则在总时间t内模式“1100”的相对吞吐率将低于模式“1110”的相对吞吐率。随着N的增大,则t1占t的比例也随着增大,这样导致的结果是,在1/2带宽下ZiMAC的吞吐率越来越低于3/4带宽下的吞吐率,N的增大带来的影响也越来越明显,即前者相对吞吐率的下降幅度将更大。
综上所述,由于ZigBee节点是周期性发送数据的,在其数据发送的间隙WiFi的计数器减为0后可以使用全部带宽发送数据,相比于一直采用部分带宽发送的情况(即不设置计数器的情况)能够给WiFi吞吐率带来极大的提升。此外,也能得出额外的结论:随着计数器初始值N的增大,ZiMAC的相对吞吐率将下降;此外,3/4带宽模式下相对吞吐率受N增大而下降的影响要低于1/2带宽模式下相对吞吐率受到N增大而下降的影响。
本发明的基于子载波置零的MAC层协议系统的ZiMAC协议的仿真测试:
ZiMAC的设计不仅得考虑计数器的N的取值大小,来提高WiFi的相对吞吐率,也得知道在不同情况下WiFi与ZigBee的相互影响。以下,模拟不同ZigBee数据发送密度情形下ZiMAC吞吐率测试和ZigBee在WiFi干扰下性能测试。
1、模拟不同ZigBee数据发送密度情形下ZiMAC吞吐率测试
此部分,本专利采用仿真的方式进行测试,仿真方法如下:利用Python库提供的随机数生成函数random::uniform()生成两个数,分别赋给zigbee_pkts_gap和zigbee_tx_gap。前者表示某次ZigBee数据发送的持续时间,后者表示连续两次ZigBee数据发送过程间的时间间隔,如图9所示。其中,坐标轴表示时间,深部分表示该时间段内ZigBee节点数据发送中,浅部分表示期间信道内没有ZigBee数据信号。
ZigBee节点的数据发送密度可以理解为ZigBee数据发送量的大小,从图9来看即深色块所占比例的大小:比例越大则ZigBee发送的数据越多,WiFi采用非连续子载波模式发送的时间越长,ZiMAC的吞吐率受到的影响越大。
本节主要测试在不同ZigBee数据发送密度下WiFi的相对吞吐率,这主要是通过改变zigbee_tx_gap的取值区间范围来实现的:zigbee_tx_gap分别在区间[0.005,0.2]、[0.2,0.5]、[0.5,1]、[1,2]和[2,3]内选取随机数,模拟任意连续两次ZigBee数据发送的时间间隔,表示ZigBee的数据发送密度由高到低逐次递减。zigbee_pkts_gap的取值区间固定为[0.002,0.03]。本文分别测试了N取值10、20、30、40和50时不同ZigBee数据发送密度下ZiMAC的相对吞吐率。
N=10时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率如图10所示。图中横坐标是zigbee_tx_gap的取值区间,表示ZigBee数据发送密度由高到低减小,纵坐标表示相对吞吐率。从图中可以看到,随着ZigBee数据发送密度增大,ZiMAC的相对吞吐率逐渐下降:在3/4带宽下由[2,3]区间的98%下降到[0.005,0.2]区间的85%;在1/2带宽下,ZiMAC的相对吞吐率由区间[2,3]的91%下降到区间[0.005,0.2]的43%。图中区间[0,0]表示WiFi一直采用子载波置零的方式发送数据。通过对比区间[0,0]和区间[0.005,0.2]ZiMAC的相对吞吐率不难发现,随着ZigBee发送密度的增大,ZiMAC的性能逐渐接近单纯采用子载波置零模式发送情形下的性能。
图11是N取值20时ZiMAC在不同ZigBee数据发送密度下的相对吞吐率测量结果,可以看到其表现与图10相似,相对吞吐率也是随着ZigBee数据发送密度的增大而降低,且逐渐接近[0,0]区间的相对吞吐率。但有所不同的是,即便是在相同ZigBee发送密度下,图11中某种比例带宽的吞吐率由于受到计数器的影响要低于图11中的相应值。较为明显的例子是[0.5,1]区间上N=10时1/2带宽ZiMAC的相对吞吐率为71%,而N=20时相应带宽的相对吞吐率降至59%。类似地在3/4带宽下ZiMAC也表现出同样的规律,这与上述得到的结论是一致的。
图12、图13和图14分别是N取值30、40和50时ZiMAC相对吞吐率的测量结果。实验结果表明,在ZigBee数据发送密度相同时,随着N由30增大至50,相同带宽的ZiMAC相对吞吐率下降,而且1/2带宽情形的下降幅度比3/4带宽更明显,最后当N取值50时ZiMAC在高ZigBee数据发送密度情形中的性能基本与完全使用非连续子载波模式发送的相对吞吐率相同。除此外,各组实验中WiFi相对吞吐率随着ZigBee数据发送密度变化的变化趋势相同,即随着后者的增大而下降。
为更直观的了解在1/2带宽以及3/4带宽下ZiMAC较纯粹采用子载波置零模式发送带来的性能提升,图15和图16分别给出了在相应带宽下ZiMAC的相对吞吐率提高值,它表示ZiMAC在对应带宽下获得的相对吞吐率与纯粹采用子载波置零模式发送情形的相对吞吐率之差。
通过图15和图16,得到如下结论:
1)ZiMAC在ZigBee数据发送密度一般或者比较稀疏时能为WiFi吞吐率带来较明显的提升,且在1/2带宽下性能提升幅度更明显;
2)随着计数器取值的增大,WiFi性能提升的幅度减小;
3)ZiMAC性能的最小值为一直将WiFi子载波进行置零的情形的性能。
2、ZigBee在WiFi干扰下性能测试
本节对与NC-OFDM并行传输过程中ZigBee的性能进行测试。为保证ZigBee的性能测量结果是在与NC-OFDM并行传输过程中得到的,在这部分实验中我们移除了WiFi节点的MAC层而只保留其PHY层,即从第一个数据包发送开始直到所有数据包发送完毕,数据发送不间断,并且全部采用同一种发送模式传输。ZigBee节点则通过正常的CSMA机制接入信道,但在三次接入失败后便放弃该数据包的传输,转而发送下一个数据包。单个ZigBee数据包包长为100字节,实验中为排除实验室环境其他信号的干扰,本文将ZigBee节点的发送功率设为level31。通过USRP与ZigBee节点搭建实验床对后者的正确收到包百分比进行测量,其计算公式(2)如下:
由于USRP节点不需要在发送接收状态间转换,且其计算量相对ZiMAC而言也要小很多,本实验中USRP的工作带宽可达到8MHz。前文提到单个ZigBee信道宽度为5MHz,实际上它包含了信道间的保护间隔。若忽略这部分带宽,则一个ZigBee信道的带宽为2MHz,故8MHz带宽可以满足实验要求。本节就ZigBee在不同干扰模式下的正确收包百分比进行测量,实验结果如表3所示。表中干扰模式是指ZigBee信道与WiFi信道的分布情况,“*”表示ZigBee信道,实际使用的WiFi子信道用发送模式来表示。注意这里的干扰模式并不包括WiFi子信道与ZigBee信道重叠的情况。干扰模式9和干扰模式10的信道分布分别如图17(a)和图17(b)所示。
表3、ZigBee在不同干扰模式下成功收到包百分比
由表3可知,除模式4和模式6外,在对WiFi的与ZigBee信号重合的频谱的子载波置零后,ZigBee的正确收包百分比最高能达到99%以上。在干扰模式4和6中,尽管理论上两者的信号频谱并未重叠,但受到能量泄露等因素的影响,ZigBee的性能要远远低于其在其他干扰模式中的性能。因此足够大的频域间隔,如2MHz是保证ZigBee在NC-OFDM干扰下正确传输数据的必要条件。通过观察WiFi与ZigBee的信道分布可知,ZigBee信道与WiFi子信道间具有1MHz或2MHz的频间间隔。通过测试干扰模式9和干扰模式10的ZigBee正确收包百分比可以得到1MHz间隔下ZigBee的传输性能。调整USRP的工作中心频率即可实现图17所示的干扰模式,其中WiFi使用的发送模式分别为“0011”和“1001”,实验结果见表3中干扰模式9和干扰模式10。可以看到,在这两种干扰情形下ZigBee的性能表现相近,其平均正确收包百分比皆达到96%,相比信道紧邻时性能有了大幅度提升。
本节实验说明,在进行子载波置零后ZigBee能够及时接入信道,且实现了与WiFi信号(非连续子载波形式)的并行传输,ZigBee正确收包百分比能达到90%以上。
本发明技术方案的最佳实施方式说明如下:
对于ZiMAC的设计与实现有两个关键的参数需要通过实验得来,一是计数器N的大小的确定,二是载波侦听门限值的选择。
关于计数器N的大小可由第六节的图7中zb_counter取不同值时不同带宽模式下WiFi的相对吞吐率确定,可选择计数器N的大小为10(这里的取值10为最佳实施方式中的举例),WiFi的相对吞吐率较大。
下面重点介绍下载波侦听门限值的选择。
实现CSMA机制最为重要的前提之一是对当前信道忙闲状态进行判定,通过调用子信道监听函数carrier_sensed()可获得对应的信道状态。信道状态的判定结果与给定的监听门限值是直接相关的,因此选取合适的监听门限值尤为重要。
不同频段的信道噪声状况不同。本文分别测试了中心频率为2412MHz、2442MHz、2472MHz和2490MHz,带宽20MHz的四个信道的信道接入百分比(计算方法见公式(8-1))来反应信道噪声干扰情况。所有测试都是通过USRP设备实现的。实验中在某个特定的监听门限值(如-42dB)下利用一个USRP设备运行相应的信道状态检测代码对当前中心频率(如2490MHz)的WiFi信道状态进行判定,并记录信道被判定为空闲状态的次数。每个(中心频率,监听门限)组合进行500次状态判定,记为一次实验,每三次试验作为一组。本专利测量了从-30dB到-58dB、以-4dB为间隔的共8个监听门限值下的信道接入百分比,共32组实验,最后求得每组实验的平均值。测试结果如图18所示。
图18表明,由于不同频段噪声情况不同,或者某些频段的信道中存在其他设备的通信信号,在相同门限值设置下信道接入百分比也不尽相同。但无论是哪个频段,如果门限值设置过小,比如低于-54dB,信道都被100%地判定为繁忙,这是信道中的噪声能量高于门限值导致的。类似地,如果监听门限值设置过大,则载波侦听函数将一直判定信道为空闲,使得信道接入百分比达到100%。
为进一步验证载波侦听功能并选取合理的监听门限值,本文分别测试了只有USRP设备发送数据以及只有ZigBee节点发送数据情形下不同监听门限值与USRP设备信道接入百分比的关系。前一组实验中将一个USRP设备作为发送节点不间断地发送数据,另一个USRP设备(称为USRP信道接入测试节点)对其信道接入百分比进行测试,结果如图19所示。后一组实验中将一对ZigBee节点分别作为发送端和接收端,同时利用一台USRP设备(USRP信道接入测试节点)测试它的信道接入百分比,实验结果如图20所示。
图19对应的实验中,USRP设备工作的中心频率为2480MHz,带宽为5MHz。可以看到,在USRP发送端未发送数据时,若设置的监听门限值大于等于-50dB,信道接入测试节点检测得到的信道接入百分比为100%。如果监听门限值设置过低,载波侦听一直将信道判定为忙而导致接入失败,信道接入百分比为0%。相比而言,在USRP数据发送端数据发送过程中,由于受到发送信号的影响,当信道接入测试节点的监听门限值取值位于[-58,-10]区间时,其信道接入百分比维持在0%,即整个测试过程中节点一直判定信道媒体状态为繁忙。但如果不断地增大监听门限,必将使其值大于发送信号的能量值,如图19的-8dB,导致即便是在USRP信号发送中测试节点仍然判定信道空闲,若此时检测节点发送数据将导致两个发送信号发生碰撞,影响各自通信。综上,本文认为监听门限阈值设置在[-45,-30]区间内是比较合理的。
图20反映的是在ZigBee节点发送数据情形下监听门限值与信道接入百分比间的关系。与图19类似,监听门限值设置为-58dB时信道接入百分比为0%,但稍有不同的是在-50dB时检测节点的信道接入百分比为0%,而不是图18中的100%。这是因为这两组实验进行的时间不同,无线环境也不同导致的。同样,随着监听门限的增大,当其取值大于等于-9dB时信道接入百分比接近或者达到100%,这也是由于监听门限值大于ZigBee信号能量值造成的。由此,在ZigBee网络环境中,监听门限值在[-45,-30]区间内取值能满足实验要求。
综上,本专利认为在当前实验室环境中将监听门限值设置为-40dB是最佳的实现方式。
Claims (4)
1.一种基于子载波置零的MAC层的ZiMAC协议系统,其特征在于,该系统包括载波侦听模块、计数器、分布式信道接入模块、帧封装/帧解析模块和ACK确认/超时重传模块;其中,分布式信道接入模块,用于管理WiFi节点,获取分布式信道媒体;帧封装/帧解析模块,分别用于将数据按照一定的格式打包封装以及将物理层获得的数据包按照一定的规则进行解析;ACK确认/超时重传模块,用于利用ACK确认或超时重传手段,保证数据的可靠传输;其中:
所述载波侦听模块,根据WiFi与ZigBee的信道宽度将单个WiFi信道划分为4个子信道,并依次在这4个子信道上进行子载波侦听,依据当前信道中ZigBee信号出现的位置及子信道上WiFi信号的子载波是否置零处理进行检测:检测结果为整个信道忙状态的条件是将4个子信道中有3个及3个以上位置出现ZigBee信号、允许1个或1个以上WiFi信号利用此信道传输数据;检测结果为整个信道忙状态的条件是将4个子信道中有3个以下位置出现ZigBee信号作为整个信道空闲状态,允许1个以上此子信道上WiFi信号的子载波进行置零处理;
所述计数器,保证ZigBee节点在数据发送期间及时接入信道,同时保证WiFi利用ZigBee的数据发送间隔使用完整信道传输数据。
2.如权利要求1所述的基于子载波置零的MAC层的ZiMAC协议系统,其特征在于,所述利用ZiMAC协议依次对4个子信道的忙/闲状态进行检测的步骤,具体包括以下处理:
为每个子信道建立一个独立的流图,并为其分配一个独立的USRP设备;
在不同流图中通过UHD对USRP设备的IP地址进行指定,使得各个USRP设备完成独立功能;各个USRP设备同步运行,利用USRP设备根据用户指定的中心频率以及信道带宽对信号进行采样,经过多个信号处理块的处理后数据最终交给analog::probe::carrier_sensed()与监听门限值进行比较,获得各子信道忙/闲状态;将每个所述独立的流图定义为一个hierarchicalblock,建立一个top_block容纳hierarchicalblock,则在运行该top_block的时候,所有流图并发运行。
3.如权利要求1所述的基于子载波置零的MAC层的ZiMAC协议系统,其特征在于,所述门限值最佳取值为-40dB。
4.如权利要求1所述的基于子载波置零的MAC层的ZiMAC协议系统,其特征在于,所述计数器还包括以下工作流程:
WiFi节点在某次数据发送前检测到ZigBee信号并对已被占用的子载波置零,此时计数器被置为N,N为一个大于零的正整数;
上述数据发送的WiFi节点仍然采用最近一次使用的非连续子载波模式发送数据,且每发送一个数据包计数器的值减1;
当计数器递减为零值,且WiFi的4个子信道全部处于空闲状态,发送节点才使用整个信道发送数据;
若在计数器未递减到零值前WiFi节点又再次检测到ZigBee信号,无论此时检测到的信道状况与上一次的检测结果是否一致,计数器都将被复位为N,并采用与最新信道状态对应的非连续子载波模式发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510442726.5A CN105099623B (zh) | 2015-07-24 | 2015-07-24 | 基于子载波置零的MAC层的ZiMAC协议系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510442726.5A CN105099623B (zh) | 2015-07-24 | 2015-07-24 | 基于子载波置零的MAC层的ZiMAC协议系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105099623A true CN105099623A (zh) | 2015-11-25 |
CN105099623B CN105099623B (zh) | 2018-11-06 |
Family
ID=54579281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510442726.5A Expired - Fee Related CN105099623B (zh) | 2015-07-24 | 2015-07-24 | 基于子载波置零的MAC层的ZiMAC协议系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105099623B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658749A (zh) * | 2016-11-25 | 2017-05-10 | 南京理工大学 | 一种基于载波侦听的协议序列信道接入算法 |
CN110113819A (zh) * | 2019-04-02 | 2019-08-09 | 南京林业大学 | 一种基于Wifi通信的ZigBee节点并行传输方法 |
CN111328098A (zh) * | 2018-12-13 | 2020-06-23 | 硅实验室公司 | WIFI环境中的Zigbee、Thread和BLE信号检测 |
CN116707557A (zh) * | 2022-12-20 | 2023-09-05 | 荣耀终端有限公司 | 信道选择方法、接收机及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103079222A (zh) * | 2013-01-10 | 2013-05-01 | 上海交通大学 | WiFi通信排除ZigBee干扰的优化方法 |
CN103517293A (zh) * | 2012-06-29 | 2014-01-15 | 华为技术有限公司 | 一种ZigBee网络的抗干扰方法和设备 |
-
2015
- 2015-07-24 CN CN201510442726.5A patent/CN105099623B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103517293A (zh) * | 2012-06-29 | 2014-01-15 | 华为技术有限公司 | 一种ZigBee网络的抗干扰方法和设备 |
CN103079222A (zh) * | 2013-01-10 | 2013-05-01 | 上海交通大学 | WiFi通信排除ZigBee干扰的优化方法 |
Non-Patent Citations (2)
Title |
---|
XINYU ZHANG: "Adaptive Subcarrier Nulling:Enabling Partial Spectum Sharing in Wireless LANs", 《19TH IEEE INTERNATIONAL CONFERENCE ON NETWORK PROTOCOLS(ICNP)》 * |
赖新宇等: "802.11与Zigbee共存:子载波置零多输入多输出物理层模型", 《计算机应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658749A (zh) * | 2016-11-25 | 2017-05-10 | 南京理工大学 | 一种基于载波侦听的协议序列信道接入算法 |
CN106658749B (zh) * | 2016-11-25 | 2020-05-22 | 南京理工大学 | 一种基于载波侦听的协议序列信道接入算法 |
CN111328098A (zh) * | 2018-12-13 | 2020-06-23 | 硅实验室公司 | WIFI环境中的Zigbee、Thread和BLE信号检测 |
CN111328098B (zh) * | 2018-12-13 | 2023-05-23 | 硅实验室公司 | WIFI环境中的Zigbee、Thread和BLE信号检测 |
CN110113819A (zh) * | 2019-04-02 | 2019-08-09 | 南京林业大学 | 一种基于Wifi通信的ZigBee节点并行传输方法 |
CN110113819B (zh) * | 2019-04-02 | 2022-10-25 | 南京林业大学 | 一种基于Wifi通信的ZigBee节点并行传输方法 |
CN116707557A (zh) * | 2022-12-20 | 2023-09-05 | 荣耀终端有限公司 | 信道选择方法、接收机及存储介质 |
CN116707557B (zh) * | 2022-12-20 | 2024-05-03 | 荣耀终端有限公司 | 信道选择方法、接收机及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105099623B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178561B2 (en) | Method for radio link monitoring and corresponding user equipment | |
EP3952400A1 (en) | Communication method and apparatus | |
WO2019214611A1 (zh) | 通信方法及装置 | |
KR101889515B1 (ko) | 전력 제어를 위한 시스템 및 방법 | |
US10638341B2 (en) | Wireless environment information collection system and method | |
CN110602712B (zh) | 一种频点切换抗干扰无线局域网通信方法和装置 | |
US10536941B2 (en) | Data transmission method and system, and device having base station function | |
WO2021062843A1 (zh) | 通信方法及装置 | |
US9210055B2 (en) | Device and method for computation of channel loss rate and collision loss rate of communication link(s) in a random access network | |
CN105099623A (zh) | 基于子载波置零的MAC层的ZiMAC协议系统 | |
CN107925898A (zh) | 在包括基于争用的共享频谱的lte/lte‑a中信号传输的测量和报告 | |
CN111030791B (zh) | 一种信道质量指示cqi估计方法及装置 | |
Wang et al. | Managing channel bonding with clear channel assessment in 802.11 networks | |
WO2016119761A1 (zh) | 信道质量指示cqi估计方法及装置 | |
CN109565698A (zh) | 基于非授权载波的上行调度方法和装置 | |
Yao et al. | Mitigating interference caused by IEEE 802.11 b in the IEEE 802.15. 4 WSN within the environment of smart house | |
Morshed et al. | Distributed cognitive radio detection using waspmote sensor for windows based PC/Laptop | |
Guérin et al. | Performance Analysis of MAC Energy-saving Strategies for WLANs | |
WO2016049915A1 (zh) | 数据传输方法、传输系统、控制方法、控制系统和设备 | |
Abedi et al. | T-SIMn: A trace collection and simulation framework for 802.11 n networks | |
CN114915985B (zh) | 一种测量报文发送方法及通信装置 | |
Li et al. | Bep: Bit error pattern measurement and analysis in ieee 802.11 | |
Han et al. | Non-intrusive estimation of available throughput for IEEE 802.11 link | |
WO2017036258A1 (zh) | 竞争接入方法、竞争接入装置、站点及竞争接入系统 | |
Ben-El-Kezadri et al. | YAVISTA: A Graphical Tool for Comparing 802.11 Simulators. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181106 Termination date: 20200724 |