基于TDMA的低功耗分布式介质访问控制方法与流程

文档序号:17587656发布日期:2019-05-03 21:28阅读:281来源:国知局
基于TDMA的低功耗分布式介质访问控制方法与流程

本发明属于通信技术领域,更进一步涉及一种低功耗分布式介质访问控制方法,可用于小规模、低流量的移动通信网络。



背景技术:

当前低功耗的自组织网络mac协议,研究方向主要集中在基于竞争的协议与基于调度的协议两方面,基于调度的协议主要还是基于tdma的协议。基于调度的协议与基于竞争的协议相比,优势在于无冲突,不会产生碰撞,是当前的研究热点,但基于调度的协议会产生额外的控制开销,值得关注。此外,比较这些协议,无论从节点的接入和流量自适应的链路分配,还是从数据传输的公平性以及休眠的周期方面,都有值得改进的地方。因此,一个更加高效节能的mac协议仍然是需要的。

基于竞争的低功耗mac协议,典型的有s-mac、contikimac和ta-contikimac;基于调度的协议中典型的有trama,以下具体来介绍这几个协议。

1)s-mac协议

s-mac(sensormac)是周期性启动的低功耗传感器网络协议,节点基于固定的唤醒与休眠占空比工作。在唤醒期开始时刻,节点会有一段时间的基于竞争方式的同步期,接着是同样基于竞争方式的业务数据传输期,周期最后阶段节点选择睡眠。在业务数据传输期中,有发送需求的节点通过发送rts/cts争用信道,没有争用到此次信道的节点根据rts/cts中的时间信息休眠相应时间,直到此次发送全部完成,才继续唤醒。在s-mac协议中,数据的重传以及空闲的侦听,都消耗了大量能量;

(2)contikimac协议

contikimac是一个基于异步机制的低功耗mac协议,没有信令消息与额外的报头。在contikimac协议中,接收方会周期性唤醒侦听信道。如果检测到无线电信号,接收方就会保持侦听这帧数据。如果接收到完整的数据帧,接收方会发送一个确认。发送方在唤醒期内一直会发送数据帧,直到接收方返回确认帧。由于是异步机制唤醒与休眠,contikimac协议难以精确确定邻节点的休眠与唤醒时间,从而可能出现接收方休眠,而发送方长时间发送数据的情况,消耗过多能量。

(3)ta-contikimac协议

ta-contikimac(traffic-awarecontikimac)协议,通过改进contikimac协议固定的活动周期和休眠周期的比例,使之能够动态调整,达到流量负载提出自适应的目的。ta-contikimac协议通过动态调整活动与休眠比例,降低了功耗,但同样存在contikimac协议中难以像同步型协议一样精确确定邻节点的休眠与唤醒时间,从而可能导致能量消耗过高。

(4)trama

trama(traffic.adaptivemediumaccess)协议即流量自适应协议,它分为随机接入期和调度接入期两部分。在随机接入期中中主要用于节点接入、同步以及节点拓扑信息的生成;在调度接入期中,可以根据节点自身的流量信息,自适应的选择是否接入链路,并且暂时释放多余的时隙让邻节点使用。在时隙分配与选择方面,trama协议选择了分布式的选举算法,减少了控制信息的传送,也避免了冲突的发生,但其适用于非移动性或移动性很低的场景,并不太适合移动性较高的网络,否则会降低数据输出成功率,并增加功耗。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出一种基于tdma的低功耗分布式mac协议,以降低运行能耗,并保证数据传输的成功率。

本发明的技术方案是这样在实现的:

本发明首先改进了传统tdma协议中入网节点的接入方式,采取了在接入期,无节点入网时,所有网络节点在多个预留接入时隙中只选择一个时隙进行侦听,其他时隙可休眠可复用,等到有节点入网,再增加侦听时隙的方式;其次提出了分布式场景下灵活分配节点暂时不使用的剩余固定时隙的方法,其中包括对该剩余时隙使用情况的监测及下次分配的优化;最后引入了一种保证数据发送成功率的周期可变的休眠机制。其具体实现步骤包括如下:

(1)判断是否存在已知网络:

如果在最大周期时长内没有侦听到集合控制帧,认为当前空间不存在已知网络,则需要独立建网,即执行(6);否则,选择接入期接入时隙和临时上级节点,执行(2);

(2)向网络中的节点广播集合控制帧;

(3)网络中的节点接收到新节点控制帧或接收数据出错,标志当前周期有节点正在入网,并在下一超帧的预留接入期时隙上侦听,再在下一次广播的控制帧中将正在入网标志位置1,告知复用预留接入时隙的邻节点放弃占用;同时,上级节点选择最近空闲的接入期时隙主动向入网节点发送反馈帧,或通过周期性广播的集合控制帧向入网节点反馈其时隙占用情况以及正在入网的标志;

(4)入网节点判断反馈信息中自己的占用时隙是否正确,如果正确,则执行(6);否则,执行(5);

(5)判断反馈信息中的正在入网标志位是否为1,如果是,则认为产生信道冲突,随机选取接入期,返回(2);否则,保持选取的接入时隙不变,返回(2);

(6)建网或入网:

(6a)入网后的每个节点,都占用固定的时隙,保证互不冲突;

(6b)建立空的转让监测集合,并更换上级节点,即选择邻节点中最高级别的同步节点作为上级节点。

(7)判断是否要发送调度帧或集合控制帧,如果是,则执行(10);否则,执行(8);

(8)在已预约的时隙进行侦听、休眠或者业务数据的收发,执行(9);

(9)判断是否接收到集合控制帧,如果是,则记录控制帧中的时隙请求或转让标志以及时隙请求数或转让时隙,并将控制帧中的周期信息记录到本节点的周期记录数组t2和倒计时器数组t3中,在每个超帧结束时,将数组t3中每个大于零的位自减1后,执行(18);否则,直接执行(18);

(10)判断是否要发送集合控制帧,如果是,则执行(11);否则,执行(13);

(11)判断本周期中是否有正处于休眠期的邻节点,如果是,则周期t=1,执行(13);否则,执行(12);

(12)判断前n个周期中数据帧传输的总数sum与阈值l的大小,如果sum<l,则t=a,表明周期为a个超帧时长,并置周期倒计时器t1的初始值为t,进行倒计数计时,同时将t填充到控制帧的周期字段,执行(13);否则,t=1,将t填充到控制帧,执行(13);

(13)设固定调度间隔为h,设影响因子为β,并设类比时隙数为c,在队列中选取下一跳地址不处于休眠期的数据数a,将其下一跳地址依次记录到链路级预约与剩余时隙转让号数组m的0~a-1位,并统计队列中不包括下一跳地址休眠的数据总数b、当前可用时隙数d以及过去未使用的其它节点转让时隙e,则c=d+β×e,其中,a<h,β属于实数集;

(14)判断(c-b)是否小于0,如果是,则置剩余时隙请求或转让标志x1=1,置剩余时隙请求数或起始转让时隙x2=b-c,执行(16);否则,置x1=0,x2=a+1,执行(15);

(15)判断(a+1-h)是否大于0,如果是,则执行(15);否则,分配剩余时隙,并将分配的节点号依次记录在数组m的a~h-1位,再将分配节点转移到本节点的转让监测集合中,执行(16);

(16)确定下一唤醒时间w:

判断本节点是否使用或准备请求剩余时隙,如果是,则下一唤醒时间w为本节点最近的一个发送时隙,执行(17);否则,设w为0,执行(17):

(17)将x1、x2、数组m以及w填充到调度帧或集合控制帧,并广播该帧;

(18)判断是否是调度间隔结束时刻,如果是,本轮调度结束;否则,执行(7);

本发明与现有技术相比具有以下优点:

第一,由于本发明通过动态改变可用的入网接入时隙数,减少了无节点入网时网络中节点的侦听时隙数,克服了现有tdma协议始终采用多个固定预留接入时隙侦听或接入而产生的能耗增加的问题,降低了接入期功耗;

第二,由于本发明根据相邻节点的实际时隙需求来分配本节点的剩余时隙,并通过监测剩余时隙使用情况动态调整时隙分配,减少了trama协议中剩余时隙分配的随机性,提高了剩余时隙分配的准确性;

第三,由于本发明通过记录相邻节点广播的周期信息来了解相邻节点的运行情况,减少了对处于休眠期的邻节点发送数据的可能性,克服了现有周期可变的协议中节点休眠后周边节点未知而产生的数据丢失问题,提高了数据传输成功率。

附图说明

图1是本发明的实现流程图;

图2是本发明中的集合控制帧与调度帧格式图;

图3是本发明使用的时隙格式示意图;

具体实施方式

以下结合附图,对本发明的实现方式作进一步的详细描述。

参照图1,本实例的具体实现如下:

步骤1.判断是否存在已知网络:

已知的网络表示存在已经建网的节点,网络节点传输的控制信息是图2所定义的集合控制帧和调度帧。为了避免在同一空间中存在两个网络造成的链路冲突,所以,新的节点开机时需要知道是否存在已知网络,判断如下:

判断在最大周期时长内是否侦听到集合控制帧:如果是,则根据集合控制帧选择接入期接入时隙和临时上级节点,并记录控制帧发送节点的同步级别,执行(2);否则,认为当前空间不存在已知网络,需要独立建网,即执行(6);

所述集合控制帧,如图2(a)所示,其携带有同步入网信息和调度信息:同步入网信息中包括接入时固定占用时隙表字段,接入时固定占用时隙表字段表示网络内的时隙占用情况;而调度信息是用于代替每周期起始时刻发送的第一个调度帧,以减少调度帧发送的数量。

所述控制帧中的调度信息与调度帧中的调度信息一致,如图2(b)所示,在图2(b)中可见调度信息的格式与具体内容。

所述选择接入期接入时隙和上级节点,选择的方式是:节点根据接收到的任一控制帧的接入时固定占用时隙表字段,选取未被占用的接入期预留时隙中的第一个时隙作为自己的第一次入网接入时隙,并将该节点作为临时上级节点;选取该入网接入时隙的原因是:当没有节点入网时,所有网络节点只在接入期预留接入时隙,即接入期没有被占用的时隙中的一个进行侦听;而该侦听时隙只要按统一原则选取即可,这里统一选取预留接入期时隙中的第一个时隙作为网络节点侦听时隙或入网节点第一次接入时隙。

步骤2.入网节点向网络中的节点广播集合控制帧。

步骤3.网络中的节点接收数据,上级节点对接收的数据进行反馈。

(3a)网络中的节点接收数据,并判断该数据是否是新节点的控制帧或出错的数据:如果是,则标志当前周期有节点正在入网,需要在下一超帧中的所有预留接入期时隙上进行侦听,为可能的多节点入网做准备,再在下一次广播的控制帧中将正在入网标志位置为1,并告知复用预留接入时隙的邻节点放弃占用预留接入期时隙;否则,只需要在下一超帧中的一个预留接入期时隙上进行侦听,并在下一次广播的控制帧中将正在入网标志位置为0;

(3b)网络中的节点根据接收的数据,判断该数据是否为入网控制帧:如果是,则执行(3c);否则,记录入网节点的地址及选择的接入期固定占用时隙,执行(4);

(3c)网络节点根据入网控制帧判断自己是否是被选取的上级节点:若是,则被选取的上级节点需要对入网节点进行反馈,执行(3d);否则,不反馈,执行(4);

(3d)在最近空闲的接入期时隙时刻,上级节点判断是否只接收到一个入网节点的控制帧:

若是,则上级节点要在最近空闲的接入期时隙主动向入网节点发送反馈帧,并通过周期性广播的集合控制帧向入网节点反馈其时隙占用情况以及正在入网的标志,执行(4);

否则,上级节点只通过周期性广播的集合控制帧向入网节点反馈其时隙占用情况以及正在入网的标志,执行(4)。

步骤4.入网节点判断反馈信息中自己的占用时隙是否正确,如果正确,则执行(6);否则,执行(5);

步骤5.判断反馈信息中正在入网标志位是否为1,如果是,则认为产生信道冲突,随机选取接入期时隙,返回(2);否则,保持选取的接入时隙不变,返回(2);

步骤6.改变节点状态。

节点进入网络后,建立空的转让监测集合,用于记录转让的节点号,对本节点转让的剩余时隙使用情况进行监测;

更换上级节点,即将相邻节点中最高级别的同步节点作为上级节点;

设定节点运行的时隙格式:

参照图3,节点按照设定的时隙格式运行,且占用固定的时隙,其时隙格式如图3(a)所示,从图3(a)中可以看到,节点的时隙分为接入期和调度期,一个接入期与调度期又可称为一个超帧;为了进一步说明节点时隙的划分,将图3(a)中的时隙格式作了图3(b)到图3(c)的等价变化,在图3(c)中,第一行的时隙等价于图3(a)中的接入期,其他行的时隙则等价于调度期,每个节点在入网后占用一个接入期时隙,同时,获得了该接入期时隙所在列的固定调度期时隙,以保证时隙互不冲突;

设定节点默认的发送控制帧与调度帧时隙,并设定默认的侦听时隙:

在第一个调度间隔,即接入期所在的时隙内,由于节点在所有的已经被占用的接入期固定时隙上都需要侦听或发送,故可将这些时隙默认作为已经和目的节点预约过的时隙,无需休眠;

在第一个调度间隔后,由于节点在其余每个调度间隔中自己占用的第一个固定时隙上发送调度帧,在邻节点占用的第一个固定时隙内侦听,因而这些时隙也可默认作为已经和目的节点预约过的时隙,无需休眠。

步骤7.判断是否要发送调度帧或集合控制帧,如果是,则执行(10);否则,执行(8);

步骤8.在已预约的时隙进行侦听、休眠或者业务数据的收发。

(8a)判断当前时隙是否是预约的业务数据发送时隙,如果是,则执行(8b);否则,执行(8c);

(8b)判断下次是否仍准备使用其它节点转让的剩余时隙,如果是,在数据帧中下一唤醒字段填入最近的剩余时隙所在时隙后发送数据,执行(8c);否则,在数据帧中下一唤醒字段填入0后发送数据,执行(8c);

(8c)判断时隙是否是预约的侦听时隙:

如果是预约的侦听时隙,则接收数据,并判断接收数据中下一唤醒字段的值是否大于0,若是,则将该字段值对应的时隙添加为本节点的接收时隙后,执行(8d),若否,直接执行(8d);

如果不是预约的侦听时隙,执行(8e)。

(8d)判断接收数据的时隙是否为本节点的转让时隙,如果是,则将该节点从转让监测集合中移出后,执行(8e);否则,直接执行(8e)。

(8e)判断当前时隙是否是预约的时隙,如果是,则直接执行(9),否则,节点休眠后,执行(9);。

步骤9.判断是否接收到集合控制帧,如果是,则记录控制帧中的时隙请求或转让标志以及时隙请求数或转让时隙,并将控制帧中的周期信息记录到本节点的周期记录数组t2和倒计时器数组t3中,在每个超帧结束时,将数组t3中每个大于零的位自减1后,执行(18);否则,直接执行(18);

步骤10.判断是否要发送集合控制帧。

判断是否要发送集合控制帧是判断当前时隙是否是本节点占用的接入期时隙:如果是,则表示准备发送集合控制帧,则执行(11);否则,执行(13);

步骤11.判断本周期中是否有正处于休眠期的邻节点。

判断本周期中是否有正处于休眠期的邻节点是将周期记录数组t2和倒计时器数组t3的每一位进行比较:如果数组t2的任一位大于1,且t3的对应位大于零并小于t2的这一位,则认为有邻节点处于休眠期,赋值周期t=1,并将t填充到控制帧,执行(13);否则,无邻节点处于休眠期,执行(12);

步骤12.设置阈值l>0,统计前n个周期中数据帧传输的总数sum,比较sum与阈值l的大小:如果sum<l,则t=a,表明周期为a个超帧时长,并置周期倒计时器t1的初始值置为t,进行倒计数计时,同时将t填充到控制帧,执行(13);否则,置t=1,将t填充到控制帧,执行(13);

所述进行倒计数计时,是当t1大于零时就在超帧结束时刻自减1,当t>2时,在0<t1<t-1时间内节点处于休眠期。

步骤13.统计时隙数和队列数据,计算类比时隙数c。

设置固定调度间隔为h,设置影响因子为β,在队列中选取下一跳地址不处于休眠期的数据数a,将其下一跳地址依次记录到链路级预约与剩余时隙转让号数组m的0~a-1位,并统计队列中不包括下一跳地址休眠的数据总数b、当前可用时隙数d以及过去未使用的其它节点转让时隙数e,计算类比时隙数:c=d+β×e,其中,a<h,β属于实数集,其表示过去未使用的其它节点转让时隙数e对类比时隙数c的影响程度。

所述固定调度间隔,是以复帧来计数的,节点在每个复帧中占用一个固定时隙,则节点的固定时隙数也等于固定调度间隔数,即等于h。

步骤14.判断(c-b)是否小于0,如果是,则置剩余时隙请求或转让标志x1=1,置剩余时隙请求数或起始转让时隙x2=b-c,执行(16);否则,置x1=0,x2=a+1,执行(15);

步骤15.判断(a+1-h)是否大于0,如果是,则执行(16);否则,分配剩余时隙,并将分配的节点号依次记录在数组m的a~h-1位,再将分配节点转移到本节点的转让监测集合中,执行(16);

所述分配剩余时隙,是根据转让监测集合外是否存在相邻节点的请求时隙标志来分配:

如果存在,则先选取转让监测集合外时隙请求数最多的节点,按其请求时隙数的多少分配本节点剩余的固定时隙给该节点,并将未分配完的时隙再分配给请求数次多的节点;

如果不存在,则根据转让监测集合中是否存在相邻节点的请求时隙标志来分配,若是,则先选取时隙请求数最多的节点,按其请求时隙数的多少分配本节点剩余的固定时隙给该节点,未分配完的时隙依次分配给请求数次多的节点,若否,则不分配。

步骤16.确定下一唤醒时间w。

判断本节点是否使用或准备请求剩余时隙,如果是,则将下一唤醒时间w作为本节点最近的一个发送时隙,执行(17);否则,设w为0,执行(17):

步骤17.将x1、x2、数组m以及w填充到调度帧或集合控制帧,并广播该帧。

将剩余时隙请求或转让标志x1填充到调度帧或集合控制帧的剩余时隙请求或转让标志字段;

将剩余时隙请求数或起始转让时隙x2填充到调度帧或集合控制帧的剩余时隙请求数或起始转让时隙字段;

将链路级预约与剩余时隙转让数组m填充到调度帧或集合控制帧的链路级预约与剩余时隙转让字段;

将下一唤醒时间w填充到调度帧或集合控制帧的下一唤醒时间字段;

将填充后的调度帧或集合控制帧广播出去。

步骤18.判断是否是调度间隔结束时刻,如果是,本轮调度结束;否则,返回(7);

以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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