0引言
无线传感网络(Wireless Sensor Network)是由许多在空间中分布的自动装置组成的一种无线通信网络,这些装置使用传感器监控不同位置的物理或环境状况(比如温度。声音。振动。压力。运动或污染物),并相互协作,共享信息。无线传感网络最初起源于战场监测等军事应用,现已被应用于很多民用领域,如环境与生态监测。健康监护。家居自动化以及交通控制等。其应用价值,已引起世界多国军事部门。工业界和学术界的广泛关注。
无线传感网有TDMA和CSMA两种基本的MAC协议方案。其中基于TDMA的MAC协议实现信道分配的机制简单成熟,它没有CSMA竞争机制的碰撞和重传问题,而是为传感器网络中每个节点分配独立的时隙用于数据发送或接收,数据传输时不需要过多的控制信息,且节点在空闲时能够及时进入睡眠状态。因而在节点无移动且网络部署情况已知的场景,采用TDMA方式进行通信,可避免信道冲突以及冲突引起的丢包和能量损耗;保证数据传输的实时性和可靠性;令节点在不工作期间进入睡眠状态,以保存能量。这些特点很适合无线传感网中的节能要求。近年来,有很多基于TDMA的改进方案,像LEACH.BCMAC等。这些新的方案虽然在资源节约。性能提高上有了一些改进,却存在调度方式复杂。时延过大。信道利用率低。资源浪费等不合理性。因此寻求新的方案以改进存在的问题,仍然是业界面临的迫切任务。
1问题描述
现有无线传感网中,基于TDMA的MAC协议大多是与簇的组网方式相结合。将网络划分为若干个簇,每个簇选举一个簇头节点做为集中控制点,对簇内成员进行TDMA调度,各簇内成员在其分配的时隙内发送数据。
典型的有LEACH协议,该协议以轮为单位周期性执行簇的重构过程。如图1所示,每轮分为簇的形成阶段和簇的稳定阶段。簇的形成阶段,主要完成簇头节点的选择。广播。建立和调度机制的生成。簇的稳定阶段,分为调度阶段和数据传输阶段。调度阶段,簇头根据收集来的簇内节点的信息,将数据传输阶段分配为n个长度相等的帧,每个帧内的时隙又固定分配给簇内的成员,每轮只调度分配一次。数据传输阶段,根据调度结果,每个簇内成员在每帧中的固定时隙内进行数据传输。每轮数据传输阶段之后进行下一轮的簇重构过程。这种基于簇的TDMA协议,采用周期性的选举簇头的方法,使得各簇头节点的能量得到均衡,延长了网络的工作寿命;但是在每一轮中只进行一次调度,且n个帧的长度相等,各节点在帧内的时隙固定。如图1所示,假设在一个帧内只有第1.5.m三个节点有数据需要传输(图中的阴影时隙,即表示有数据传输),则无数据传送节点所占用的固定时隙就会被浪费,从而造成了信道利用率低下,时延加大。同时由于簇头起到的是转发信息的功能,因而在整个帧内,簇头都需要保持监听状态,浪费了簇头的能量。
图1 LEACH调度协议
类似的还有BCMAC协议,如图2所示,该协议与LEACH协议在簇的形成阶段相似。在稳定阶段对TDMA协议进行了一些改进,即在每帧开始时,由那些有数据传输的节点向簇头发送申请,簇头节点根据申请情况来分配时隙,并向簇内节点广播调度方法,每个需要发送数据的节点获得一个确定的发送时间,没有数据需要发送的节点则处于睡眠状态,并在下一帧开始时苏醒。假设只有三个节点有数据传输,则簇头节点将节点信息收集起来进行时隙分配。由于簇头无需在整个帧长内保持侦听且无数据传输的节点可以处于睡眠状态,因而节约了大量的能量。同时由于采用了固定帧长,仍然会有时隙被浪费,因而没有提高信道利用率,时延依然很大。该方案中,簇头需要广播各个节点的ID号及调度方案,增加了调度开销,增加了能量消耗。本文提出的IM-TDMA方案是在现有TDMA协议的基础上,通过变长帧长来适应网络流量变化,提高信道利用率,降低时延;并通过计数器管理方式来进行TDMA调度,降低调度复杂性,减少调度开销,降低能耗;同时选取合适的时隙大小,进一步优化网络性能。
图2 BCMAC调度协议
2 IM-TDMA方案描述
2.1基本算法
IM-TDMA方案与LEACH协议和BCMAC协议在簇形成阶段类似,如图3所示,仍是按轮运行的,每一轮由簇形成阶段和簇稳定阶段组成。簇形成阶段,完成成簇。簇头选举及时钟同步的任务;簇稳定阶段,根据节点的流量,分为n个长度不等的帧,即每帧有几个节点需要传输数据就分配几个时隙。如图3所示,假设一帧中有3个节点有数据传输,则该帧就只由3个时隙组成。该方案将每帧分为时隙申请。调度和数据传输三步。
图3 IM—TDMA调度方案
2.1.1时隙申请
这一阶段主要按照节点ID顺序,给每个节点分配一个信令小时隙,每个信令小时隙占用1 b用于向簇头申请时隙。有数据需要传输的节点在自己的信令小时隙内发送申请时隙的信息,触发簇头计数器,随着申请节点数的增加,计数器值依次增加,每个节点触发计数器得到的计数值即为该节点在本帧的时隙位置值。由于各节点在各自不同的信令小时隙内向簇头发送申请时隙的信息,因此不会发生碰撞。在此过程中,对上一帧中未传完的数据节点优先分配信令时隙,即在每帧开始时先给在上一帧中未传完数据的节点申请时隙,以让续传信息优先完成数据传输,然后再给在本帧中有数据传送的节点申请时隙,且每帧中每个节点只能进行一次时隙申请。具体的时隙分配过程如图4所示,每一帧信令时隙S0由两部分组成,第一部分S0为续传申请时隙,其由h个信令小时隙组成,h为前一帧数据传输所占用的总时隙数,且在每轮数据的第一帧,h值为0.第二部分S02由m个信令小时隙组成,m为该簇内的所有节点数。由于每帧每个节点只能发送一次申请时隙的信令信息,因而在S01中申请时隙的节点不会在S02中重复申请时隙。如果某个节点在上一帧中有未传输完的数据,需要在本帧中传输,假定其在上一帧中的第i个时隙传送,则在本帧中S01时隙的第S01i个信令小时隙发送申请时隙信息,触发簇头计数器加1,计数器的值即为该节点在本帧中传送的时隙位;如果某个节点在本帧中有需要传输的数据,假定其信令小时隙是第j个,则在S02时隙中的第S02j个信令小时隙中发送申请时隙信令,触发簇头计数器加1,计数器的值即为该信息在本帧中传送的时隙位。计数器在每轮开始时,初始化为0,并在每帧时隙申请完成之后立刻置0.
2.1.2调度分配
这一阶段簇头根据时隙申请及触发计数器生成的计数结果,广播一个调度结果。该调度分配结果将数据时隙分为两部分。第一部分是在S01申请续传的时隙,假设有p个;第二部分是在S02申请新传的时隙,假设有q个。
这两部分所占用的时隙数之和,即为下一帧用于申请续传信息的信令小时隙的h(h = p + q)值。
图4 帧结构图
下面以一个实例来说明:
假设有m个节点,如图5所示,用Ip表示第p个节点所传的数据信息内容,用Sq表示第q个时隙,用S01i表示S01信令时隙中第i个信令小时隙,用S02j表示S02信令时隙中第j个信令小时隙。计数器的值在系统形成时已初始化为0.假设在第一帧中节点3.5.8有数据传输,因为是第一帧,所以不存在续传信息,即没有S01信令时隙,只有S02信令时隙。节点3在S02时隙中的第S023个信令小时隙中向簇头发送申请时隙的信息,触发记数器,因为该帧开始时,计数器初始化为0,因而触发后其值为1,故节点3的数据在第1时隙中传输,可表示为I3在S1中传;同理节点5在S02时隙中第S025个信令小时隙中向簇头发送申请时隙的信息,触发记数器,记数器值增为2,表明节点5的数据在第2时隙中传输,表示为I5在S2中传;同样的道理可得节点8的数据在第3个时隙中传输,即I8在S3中传。第一帧时隙申请完之后,将计数器置为0.这样在第一帧中,节点3.5.8的数据依次在S1.S2.S3三个时隙中传输。第一帧的时隙总数为3(即下一帧的h值)。在第二帧中,假设节点3.8的数据在第一帧中未传送完,需要在第二帧中续传,同时节点1.4.9在本帧中有数据需要传输。由于前一帧的时隙总数为3,因而本帧的h值为3,即S01时隙中有3个信令小时隙,因为节点3在前一帧中所占的是第一时隙,因而节点3在S01时隙中的第S011个信令小时隙中发送申请时隙信息,触发计数器,故节点3的续传信息在本帧中的第1时隙传送,可表示为I3在S1中传;同理节点8在前一帧的第3时隙传送数据,因而节点8在该帧中的S01时隙的第S013个信令小时隙发送申请时隙信息,触发计数器,计数器值加1,故节点8在该帧中的续传信息在第2时隙传送,可表示为I8在S2中传。接着分配本帧中需要传送信息的节点的时隙位置,节点1在本帧中有数据需要传输,因而节点1在S02时隙的第S021个信令小时隙发送申请时隙信息,继续触发计数器,计数器值加1,故节点1在该帧中的第3时隙传送,可表示为I1在S3中传;同理节点4在本帧中有数据需要传输,因而在S02时隙的第S024个信令小时隙发送申请时隙信息,触发计数器,计数器值加1,故节点4在该帧中的第4时隙传送,可表示为I4在S4中传;同理可得节点9在该帧中的第5时隙传送,可表示为I9在S5中传。由于每帧中每个节点只能申请一次时隙,因而续传信息的节点不会在S02时隙中重复进行时隙申请。本帧节点申请完时隙后,计数器初始化为0.这样在第二帧中节点3.8的数据分别在第1.2时隙中进行续传,而节点1.4.9的数据分别在第3.4.5时隙中进行传输。可以看出本帧总的传输时隙数为5(为下一帧的h值)。
图5 帧结构示例
2.1.3数据传输
这一阶段各个节点按照簇头发送的调度信息,在各自分配的数据时隙中传输数据。如果节点在下一帧中仍有数据传输,则继续在下一帧信令时隙S01时隙中对应的信令小时隙进行时隙申请,完成调度,然后在分配的时隙中进行数据传输即可。
在这种调度分配中,难免会遇到需要传输的数据极少甚至无数据传输的情况,为了避免调度的频繁进行或睡眠时间过长,需要设定一个最小帧长,这个需要依据实际应用中要求的而定。本方案中依据所占用的平均时隙数而定。
2.2时隙计算
在此调度方案中,使用的是帧长不定。时隙定长的方法,需要对时隙定义一个合适的长度,过大会使空闲时间过长,浪费资源,过小又会使调度次数增多。按照节点的负载与信道容量的关系,给出如下时隙计算公式:
式中:ts表示所选的时隙大小;bavg表示各节点产生的业务通信负载的平均量;bk表示各个节点可能产生的业务负载量的值;m表示簇中的节点数;C表示信道容量。
3仿真实验及结果分析
3.1仿真参数设置
为了验证本方法的有效性和通用性,在不同负载情况下,对IM-TDMA,BCMAC和传统的TDMA协议的平均时延和平均能量消耗进行了仿真对比实验。仿真环境如下:
无线网络的覆盖范围为100 m×100 m,节点数为50,数据包大小为512 B,模拟时间为1 000 s,簇半径为30 m,数据包由CBR流量产生器产生。
3.2仿真结果分析
三种协议在平均时延方面的对比如图6所示。可以看出,IM-TDMA协议比TDMA协议和BCMAC协议的时延都小,这是因为IM-TDMA协议根据节点流量来动态调节帧长,提高了信道利用率,因而数据的传输时延较小。
图6 平均时延对比
三种协议在平均能量消耗方面的比较如图7所示。由图7可以看出,当网络数据流量较大时,TDMA协议的能耗较小;而当网络数据流量较小时,IM-TDMA协议的能耗较小。这是因为当数据量较大时,簇头调度开销所消耗的能量占主导地位,因而TDMA的能耗较BC-MAC和IM-TDMA协议较小。当网络数据较小时,由于TDMA在没有数据传输时也要保持侦听状态,因此能耗较大。而BCMAC协议虽然不用在整个过程中保持侦听,但帧长度固定,因而能耗较IM-TDMA协议大。
从仿真结果可以看出,IM-TDMA协议较TDMA协议和BCMAC协议在能耗和时延方面更优。
图7 平均能量消耗对比
4结语
本方案是对无线传感网的MAC协议方案进行的设计。传统的TDMA分配方案在时隙分配上采用固定帧长的方式,信道利用率低;在调度方法上侦听时间过长。过程复杂,造成能量的浪费。文中的IM-TDMA调度方案能够克服上述不足,在时隙分配上,采用依据即时信息,动态改变帧长的方式,提高了信道利用率;在调度方法上,采用计数器管理方式,简化了调度复杂性,节约了能量的消耗。仿真结果表明,本方案效果极好。