一种适用于传感器网络协议的Beacon协调机制的制作方法

文档序号:11254578阅读:1405来源:国知局
一种适用于传感器网络协议的Beacon协调机制的制造方法与工艺

本发明涉及无线传感器网络。更具体地,涉及一种适用于传感器网络协议的beacon协调机制。



背景技术:

近年来,随着无线通信技术和微电子技术的发展,无线传感器网络wsn(wirelesssensornetwork)已经被列为21世纪最有影响力的技术之一。wsn是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。wsn中的传感器通过无线方式通信,因此网络设置灵活,设备位置可以随时更改,还可以跟互联网进行有线或无线方式的连接,通过无线通信方式形成的一个多跳自组织网络。wsn具有节点移动性小,节点密度大,传输距离短以及数据通信速率较低,通信链路的工作状态相对不稳定等特点。无线传感器网络的媒体控制接入(mediaaccesscontrol,mac)层设计相对于传统无线自组网(mobilead-hocnetwork,manet)最大的不同在于节点的能量有限。因此wsn的研究主要集中在其mac协议即ieee802.15.4协议。近年来对于协议中的csma机制研究较多,而对于节点数较多情况下的beacon碰撞问题分析较少。以下对于csma的现有研究进行简要介绍。

针对ieee802.11中的csma算法,2001年giuseppebianchi提出了csma算法的马尔科夫链模型,其后许多学者基于这个模型对wlan中的csma算法进行了理论研究。但由于ieee802.11中的csma算法与ieee802.15.4中有所不同,因此这个模型对ieee802.15.4并不适用,并且由于无线传感器网络速率较低,bianchi模型提出的基础条件——信道饱和也并不合理。

基于bianchi提出的模型,sofiepollin等人注意到了ieee802.15.4中的csma机制与ieee802.11中的csma机制并不相同,他们通过在模型中在每次发包结束后添加相同数量的时隙等效为非饱和信道,试图将模型推广至非饱和信道的情况。但在ieee802.15.4的csma/ca机制中,由于在实际的低速网中数据包的到达一般是poisson过程,因此这种做法并不是很切合实际。

j.misic等人又在前人的模型基础上提出了更切合实际的模型,并在模型中加入了delayline的状态和用“0”表示的buffer为空的状态。但他们的模型计算所得的数据与仿真结果相差甚远。

mustafae.等研究人员主要研究时隙(slotted)和非时隙(unslotted)两种csma/ca对网络的影响,提出了采用凸优化方法选取占空比的算法。

可以看到,近年来有大量针对csma机制的研究,无论是对基础机制的研究,还是针对应用的优化,都有了一定的进展,且出现了许多具有新机制、新想法的mac协议。但是,很少有研究人员对于节点数较多的网络场景中的不同级节点的beacon碰撞问题进行分析,由于传统的帧结构中,每个节点的beacon的发送时序都一样,当节点数增多时,就会引起beacon的严重碰撞,因此需要设计新的机制来解决节点beacon发送的碰撞问题。

因此,需要提供一种适用于传感器网络协议的beacon协调机制。



技术实现要素:

为了克服上述缺陷,针对多跳传感器网络中不同级别的ffd(full-functiondevice)节点发送beacon的碰撞问题,本发明提出一种starttime运行机制来有效降低beacon的碰撞概率。

为达到上述目的,本发明采用下述技术方案:

一种适用于传感器网络协议的beacon协调机制,包括以下步骤:

建立并重组pan网络;

进行beacon发送;

设备的入网与断连;

进行beacon同步;

基于starttime运行原则,协调beacon的发送时序。

优选地,建立pan网络包括以下步骤:

ffd发送setdefaultpib为true的mlme-reset.request原语重启mac层;

active信道扫描,选取合适的pan标识符;

ffd设置macshortaddress<0xffff;

ffd发送pancoordinator参数为true的mlme-start.request原语;

mac层更新帧结构设置和信道选项;

mac层返回状态为success的mlme-start.confirm原语。

优选地,重组pan网络包括以下步骤:

协调器接收coordrealignment参数为true的mlme-start.request原语;

协调器重组pan网络,更新设置;

判断设备是否正在发送beacon,若是,则激活间接传输并确认下次使用新的设置进行发送;若否,则设备立即发送重组命令;

判断重组命令是否发送成功,若是,则在beacon中放置新的帧结构设置和信道设置进行发送,同时mac层发送状态为success的mlme-start.confirmprimitive原语;若否,则发送状态为信道接入失败的mlme-start.confirm,上层选择重新发送mlme-start.request原语。

优选地,进行beacon发送包括以下步骤:

判断设备短地址macshortaddress是否为0xffff,若是,则ffd不能发送beacon;若否,则ffd能够发送beacon;

当信标指数bo不为15时,ffd设备使用mlme-start.request原语进行beacon发送;

基于对ffd的判断进行不同的beacon发送,包括以下情况:

1)、判断ffd是否为协调器,若是,则进行beacon发送;若否,则须与协调器进行通信后发送beacon;

2)、判断ffd是否为全网协调器,若是,则ffd忽略strattime并立即发送beacon;若否,则ffd基于strattime计算发送时间。

进一步优选地,基于strattime计算发送时间包括以下步骤:

若starttime为0,则ffd立即发送beacon;

若starttime不为0,则:

1)、若ffd未接收到小于amaxlostbeacons个连续的beacon包,则根据ffd的macbeaconorder继续发送beacon;

2)、若ffd收到了来自协调器的beacon,则根据收到的信息重新设置beacon发送设置;

3)、若ffd没有收到来自协调器的beacon,则发送mlme-sync-loss.indication原语至上层并立即停止发送beacon;

上层收到原语后发送mlme-start.request原语以重启beacon的发送;

收到mlme-start.request后,mac层重新设置macpanid并将其放入beacon包的sourcepanidentifier区;

在macbeacontxtime中记录最后一次发送beacon帧的时间。

优选地,设备的入网具体包括以下步骤:

mac层重启;

选取pan网络后,上层发送mlme-associate.request原语,获取phy和macpib参数;

对macassociationpermit进行判断,若为true,则协调器允许节点入网;若为false,则协调器忽略设备发来的入网请求。

优选地,设备的断连具体包括以下步骤:

设备发送断连命令;

对txindirect进行判断,若为true,则协调器通过间接的方式向设备发送断连命令;若为false,则协调器将直接发送断连命令;

判断设备是否收到断连命令,若是则设备回复ack;若否,则判断设备已经离开网络;

设备断连完成后,移除关于本pan网络的所有参数。

优选地,进行beacon同步包括以下步骤:

设备开启接收器并在至多[abasesuperframeduration*(2n+1)]内进行搜寻匹配pan标识符的beacon,其中n=信标指数bo;

判断搜索结果,若搜索成功,则设备将mac头中的源地址与源pan进行匹配;若搜索失败,则设备重复搜索,若达到最大尝试次数amaxlostbeacons仍搜索失败,则向上层发送mlme-sync-loss.indication原语;

判断beacon包中的信息是否等于本地保存的协调信息,若是则进行下一步判断;若否,则丢弃该beacon包;

对macautorequest进行判断,若为false,则通知上层;若为ture且beacon中有数据负载,则设备通知上层并对比包中addresslistfield的地址;

判断是否有本设备16位短地址或者64位扩展地址且macpanid相同,若是则设备开始提取间接数据;若否,则重复上述过程。

优选地,starttime运行原则包括:

通过网络规模确定需要支持的邻节点数;

基于邻节点数确定超帧指数so与信标指数bo的差值;

根据数据周期要求确定帧长的大致范围并进一步确定信标指数bo的值和超帧指数so的值;

若以时隙为单位进行偏移,starttime取偏移量的整倍数;

节点根据接收beacon的时间并与starttime相加得到发送beacon的时间。

本发明的有益效果如下:

多跳无线传感器网络中,不同级别的ffd发送beacon时,容易发生beacon碰撞问题,本发明通过引入starttime机制来对beacon的发送时序进行协调,可以有效降低beacon的碰撞概率,增强网络的鲁棒性。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。

图1示出pan网络建立过程示意图。

图2示出pan网络重组过程示意图。

图3示出基本入网过程示意图。

图4示出基本断连流程示意图。

图5示出同步过程示意图。

图6示出starttime位置示意图。

图7示出starttime选取原则原理图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

本发明是针对多跳传感器网络中,不同级别的ffd(full-functiondevice)节点发送beacon的碰撞问题,提出的一种starttime运行机制来有效降低beacon的碰撞概率,通过引入starttime机制来对beacon的发送时序进行协调,可以有效降低beacon的碰撞概率,增强网络的鲁棒性。

本发明的目的通过以下技术方案来实现:

starttime运行机制:starttime的含义如图6所示,starttime相当于一个偏移量,节点根据自己接收beacon的时间,并与starttime相加得到自己发送beacon的时间。

同步方法:beacon-enabled模式下的所有设备必须通过beacon同步,这样才能进行间接传输和追踪beacon。设备只能在beacon中含有具体pan标识符macpanid的网络中进行beacon同步,若macpanid=0xffff,那么设备将不会尝试beacon同步。收到mlme-sync.request原语后,设备将尝试进行beacon同步,设备会尝试通过周期性激活接收器跟踪beacon包。如果不允许跟踪,但是上一次的同步允许跟踪,那么设备还是将检测一个周期然后再停止跟踪。为了达到beacon同步,设备需要开启它的接收器并在至多[abasesuperframeduration*(2n+1)]内进行搜寻,其中n=信标指数bo(beaconorder)。如果在此期间未收到匹配pan标志符的beacon,设备会重复搜寻直到达到最大尝试次数amaxlostbeacons,此时设备将向上层发送mlme-sync-loss.indication原语,此时loss原因为beacon_loss。设备需要在macsyncsymboloffset参数中记录每次收到beacon帧的时间边界,这个时间戳必须与自己本身发送的beacon帧相一致,该beacon保存在macbeacontxtime中,同时也必须与本地始终一致。时间戳根据设置不同可以是相对的也可以是绝对的。收到beacon帧后,设备将匹配mac头中的源地址与源pan标识符,如果beacon包中的这些信息不等于本地保存的协调器信息,设备将直接丢弃这个beacon包。

当beacon包正确接收后,如果macautorequest选项为false,设备需要通知上层,具体为mlme-beacon-notify.indication原语。若为ture且beacon中有数据负载,那么设备还是先会通知上层,具体为mlme-beacon-notify.indication原语,然后设备会对比包中addresslistfield的地址,如果有本设备16位短地址或者64位扩展地址,并且macpanid相同,那么设备将开始提取间接数据的过程。如果beacon追踪被激活,设备必须在下一个beacon可能出现的时间之前打开接收器。

beacon发送:只有当设备短地址macshortaddress不为0xffff时,设备才能够发送beacon。当信标指数bo不为15时,一个ffd设备将使用mlme-start.request原语以开始发送beacon。无论是不是协调器节点,ffd设备都可以发送beacon。但是如果不是协调器节点,此ffd设备必须跟协调器进行过通信才能发送beacon。根据pancoordinator选项是否为true判断设备是否为全网协调器,如果ffd设备是全网协调器那么strattime将被忽略,设备将立即发送beacon。对于非全网协调器的ffd设备,发送beacon的时间由starttime决定,如果strattime=0,那么此设备同样也会立即发送beacon,若starttime不为0,那么发送时间计算方式如下:

如果设备未接收到小于amaxlostbeacons个连续的beacon包,他将根据自己的macbeaconorder继续发送自己的beacon。如果设备收到了来自协调器的beacon,即没有失去同步,那么他将根据收到的信息重新设置自己的beacon发送设置。如果失去同步了,那么设备将发送mlme-sync-loss.indication原语到上层并立即停止发送beacon,一旦上层收到原语,将立即发送mlme-start.request原语以重启beacon的发送。

收到mlme-start.request后,mac层会将重新设置macpanid并将其放入自己beacon包的sourcepanidentifier区。如果macshortaddress=0xfffe,那么beacon帧中必须包含aextendedaddress,否则可以只包含macshortaddress。最后一次发送beacon帧的时间将会被记录在macbeacontxtime中。

本发明中,beacon帧的发送有优先权,即先于所有发送与接收操作。下面,结合一个具体实施例对本发明的协调机制进行说明。

1、建网与重组:

(1)建立pan网络

由ffd发起,需要完成的工作如图1:发送setdefaultpib为true的mlme-reset.request原语重启mac层,active信道扫描,选取合适的pan标识符。该ffd设备必须将macshortaddress设为小于0xffff的值。此ffd将负责组建pan网络通过发送pancoordinator参数为true的mlme-start.request原语。收到此原语后,mac层更新帧结构设置和信道选项,完成操作后mac层会返回一个状态为success的mlme-start.confirm原语,此设备正式成为一个pan协调器开始工作。

(2)重组pan网络

如果协调器接收到一个coordrealignment参数为true的mlme-start.request原语,则协调器将尝试改变panid,逻辑信道并重组网络如图2。如果设备正在发送beacon,那么下次发送会使用新的设置进行发送,但是间接传输要被激活。如果设备此时没在发送beacon,那么此时设备将立即发送重组命令。如果重组命令由于信道问题没有发送成功,那么将发送一个状态为信道接入失败channel_access_failure的mlme-start.confirm,那么上层可以选择重新发送mlme-start.request原语。

成功发送重组命令之后,新的帧结构设置和信道设置将被放进beacon中进行发送,如果正在发送beacon,等待下一个周期的beacon,若没有发送,立即发送beacon,mac层会发送一个状态为success的mlme-start.confirmprimitive原语。

2、beacon发送:只有当设备短地址macshortaddress不为0xffff时,设备才能够发送beacon。

当信标指数bo不为15时,一个ffd设备将使用mlme-start.request原语以开始发送beacon。无论是不是协调器节点,ffd设备都可以发送beacon。但是如果不是协调器节点,此ffd设备必须跟协调器进行过通信才能发送beacon。如果ffd设备是全网协调器,那么strattime将被忽略,设备将立即发送beacon。对于非全网协调器的ffd设备,发送beacon的时间由starttime决定,如果strattime=0,那么此设备同样也会立即发送beacon,若starttime不为0,那么发送时间计算方式如下:如果设备未接收到小于amaxlostbeacons个连续的beacon包,他将根据自己的macbeaconorder继续发送自己的beacon。如果设备收到了来自协调器的beacon,即没有失去同步,那么他将根据收到的信息重新设置自己的beacon发送设置。如果失去同步了,那么设备将发送mlme-sync-loss.indication原语到上层并立即停止发送beacon,一旦上层收到原语,将立即发送mlme-start.request原语以重启beacon的发送。收到mlme-start.request后,mac层会将重新设置macpanid并将其放入自己beacon包的sourcepanidentifier区。如果macshortaddress=0xfffe,那么beacon帧中必须包含aextendedaddress,否则可以只包含macshortaddress。

最后一次发送beacon帧的时间将会被记录在macbeacontxtime中。

3、入网与断连:

(1)入网

在尝试入网之前必须经过一次mac层重启,具体为发送mlme-reset.request原语,setdefaultpib选项为true,完成activechannelscan和passivechannelscan。信道扫描的结果将会用于选取合适pan网络中。

如图3,选取pan网络后,上层将发送mlme-associate.request原语,获取以下入网所必须的phy和macpib参数:

-phycurrentchannel

-phycurrentpage

-macpanid

-maccoordextendedaddress或者maccoordshortaddress

以上参数均通过request原语获得。

当macassociationpermit为true时,协调器才会允许节点入网。同样设备只有在某一个pan网络的协调器处于允许入网的状态时(通过扫描)才会发起入网请求。当macassociationpermit为false时,协调器将忽略设备发来的入网请求。

为了优化beacon-enabled模式的入网过程,设备可以优先跟踪想要加入的网络的协调器发送的beacon包。此功能由mlme-sync.request原语(trackbeacon选项设为true)激活。

设备通过mlme-associate.request原语尝试加入已经存在的pan网络,不能尝试建立自己的pan网络。一个未入网设备的mac层将发送入网命令请求入网,但如果入网请求命令由于信道原因失败了(因为入网请求命令附带一个ackrequest,协调器将回复confirm如果收到请求),mac层将会把结果返回给上层。但是ack并不意味着设备已经入网。协调器需要时间和根据资源分配情况来决定是否让此设备入网。上层对这个时间进行设置(通过macresponsewaittime),如果上层发现该设备已经入过网,那么之前关于此设备的信息均将被移除。如果资源允许,那么上层将分配一个16位短地址给这个设备并发送包含新地址(意味着允许这次入网请求)的入网回复。同样,如果资源不允许,协调器会回复一个申请状态为失败的入网回复。如果设备的入网请求中capabilityinformation区被置为1,那么协调器将根据自己支持的地址模式给设备分配16位短地址。如果入网请求中allocateaddresssubfield为0,那么分配的短地址将为0xfffe(这是一个特殊情况,他表示设备已经入网但是并未为其分配短地址,此时设备将使用64位扩展地址工作)。

收到协调器发送的入网请求ack后,设备将等待macresponsewaittime的时间等待协调器决定是否能够入网。macresponsewaittime参数是一个基于网络拓扑的参数,它的设置间接决定了此网中能够包含多少个节点。如果设备正跟踪beacon,那么它将一直尝试从beacon包中提取入网回复。如果设备未跟踪beacon,那么它将在macresponsewaittime后跟踪入网回复。如果设备没有跟踪到入网回复,那么它将发送一个mlme-associate.confirm(状态为no_data),此次入网请求被认为是失败的,此时,上层将停止所有beacon的跟踪。

由于入网回复也包含ack请求,请求入网的设备也需要通过ack告知协调器已经收到入网回复。如果associationstatusfield标明入网成功,设备会保存16位短地址,如果原beacon通过扫描获得入网,那么将会有协调器的扩展地址,同样也要存储在maccoordextendedaddress里。

如果associationstatusfield标明入网未成功,那么设备的macpanid应该设为默认值0xffff。

(2)断连

断连请求由上层的mlmedisassociate.request原语发起。

当协调器需要某个已经在网内的节点离开网络时,设备会发送断连命令其发送方式由之前发送的txindirect选项决定,如图4:如果txindirect为true,那么协调器会用间接的方式向设备发送断连命令。例如:将设备地址加入间接传输地址,由设备来提取,如果提取不成功,协调器默认设备已经离开网络。如果txindirect为false,那么协调器将直接发送断连命令,在此种情况下,若因信道原因无法发送,mac层需要通知上层。同样断连命令也包含一个ack确认,设备收到断连命令后需要发送ack。如果直接或者间接发送都失败,那么协调器将认为设备已经离开网络。如果设备想离开网络,那么设备将向协调器发送断连请求,即断连命令。如果因为信道原因无法发送,同样要通知上层。此断连请求也包含一个ack请求,协调器再收到后要回复一个ack进行确认。如果ack没有收到,设备将认为自己已经离开网络。

如果请求中的源地址等于maccoordextendedaddress,那么设备同样认为自己已经断连。当协调器收到一个这样的断连请求时,首先它要确认这个源地址是在本网内的某个设备的,经过确认后,协调器认为设备已经断连,否则忽略这个消息。

设备断连后,必须移除关于本pan网络的所有参数。macpanid,macshortaddress,macassociatedpancoord,maccoordshortaddress以及maccoordextendedaddress均需重置为默认值。而协调器的上层只需要移除关于此设备的信息即可。

请求断连的设备需要通过mlme-disassociate.confirm原语告诉上层断连结果。

4、同步过程如图5所示:beacon-enabled模式下的所有设备必须通过beacon同步,这样才能进行间接传输和追踪beacon。设备只能在beacon中含有具体pan标识符macpanid的网络中进行beacon同步,若macpanid=0xffff,那么设备将不会尝试beacon同步。收到mlme-sync.request原语后,设备将尝试进行beacon同步,设备会尝试通过周期性激活接收器跟踪beacon包。如果不允许跟踪,但是上一次的同步允许跟踪,那么设备还是将检测一个周期然后再停止跟踪。为了达到beacon同步,设备需要开启它的接收器并在至多[abasesuperframeduration*(2n+1)]内进行搜寻,其中n=信标指数bo。如果在此期间未收到匹配pan标志符的beacon,设备会重复搜寻直到达到最大尝试次数amaxlostbeacons,此时设备将向上层发送mlme-sync-loss.indication原语,此时loss原因为beacon_loss。设备需要在macsyncsymboloffset参数中记录每次收到beacon帧的时间边界,这个时间戳必须与自己本身发送的beacon帧相一致,同时也必须与本地始终一致。时间戳根据设置不同可以是相对的也可以是绝对的。

收到beacon帧后,设备将匹配mac头中的源地址与源pan标识符,如果beacon包中的这些信息不等于本地保存的协调器信息,设备将直接丢弃这个beacon包。

当beacon包正确接收后,如果macautorequest选项为false,设备需要通知上层(mlme-beacon-notify.indication原语)。若为ture且beacon中有数据负载,那么设备还是先会通知上层(mlme-beacon-notify.indication原语),然后设备会对比包中addresslistfield的地址,如果有本设备16位短地址或者64位扩展地址,并且macpanid相同,那么设备将开始提取间接数据的过程。如果beacon追踪被激活,设备必须在下一个beacon可能出现的时间之前打开接收器。

5、stattime运行:starttime的含义如图6所示,starttime相当于一个偏移量,节点根据自己接收beacon的时间,并与starttime相加得到自己发送beacon的时间。starttime选取原则如图7,通过网络规模可以确定需要支持的邻节点数,由此可得超帧指数so(superframeorder)与信标指数bo的差值,根据数据周期要求可以得到帧长的大致范围,由此确定信标指数bo的值,从而得到超帧指数so的值。另外由于beacon有可能跨时隙,若以时隙为单位进行偏移,则需要保证starttime取偏移量的整倍数。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1