赵春华, 邓 蕾, 汤宝平, 肖 鑫
(重庆大学 机械传动国家重点实验室,重庆 400030)
无线传感器网络(Wireless Sensor Networks, WSNs)在许多领域有着广阔的应用前景[1-3],可弥补有线机械设备状态监测系统在某些应用中的局限性,如密封环境中轴承、齿轮等机械旋转构件的振动监测[4]。在数据传输阶段,无线传感器网络的IEEE 802.15.4协议采用载波侦听多路访问/冲突避免机制(CSMA-CA) ,会引起多次载波侦听、隐藏节点所导致的高侦听能耗和高重传能耗问题[5-6],特别是在大量机械振动数据传输时表现尤为显著,使得无线传感器网络固有的能量受限问题更加严峻[7-9]。因此,如何降低机械振动无线传感器网络能耗是亟待解决的难题。可以从低功耗节点硬件结构设计、节点运行过程以及网络传输等方面降低能耗,限于篇幅,本文从网络传输方面进行研究。
目前,为使多个设备使用同一信道进行通信,IEEE 802.15.4协议采用CSMA-CA机制,虽然解决了多个设备共享单一信道的问题,但是在机械无线传感器网络大量原始数据传输需求下将导致无谓的高能量开销。Marinkovic等[10]提出一种能量有效的时分复用MAC协议实现了小范围内的低通信开销,但是需要严格的时间同步。Gilani等[11]提出一种自适应CSMA与TDMA混合MAC协议,通过将部分竞争访问周期时间进行时分复用以改善无线传感器网络的能耗与吞吐量,Mantri等[12]提出一种冲突避免调度算法,通过结合CSMA与TDMA的各自优势来减少数据冲突。这些方法[11-14]虽然降低了无线传感器网络能耗,但是在具有物理分散性的各节点上完成时隙分配往往不易。
针对CSMA-CA在传输大量原始数据时存在的不足,提出一种基于信标同步触发的机械振动无线传感器网络数据传输休眠时序调度方法,改善并优化CSMA-CA在大量数据传输能耗浪费问题,利用信标网络下全网周期性信标同步和信标可携带负载的特点,对信标超帧结构、传输与睡眠时序调度进行设计,实现机械振动无线传感器网络低功耗传输休眠时序调度。
为使多个设备使用同一信道进行通信,IEEE 802.15.4协议采用了CSMA-CA机制。在发送数据帧之前,设备都将先执行空闲信道评估指令进行载波侦听,以此来判断该信道是否被其他设备所使用。若空闲,则进行数据发送;若信道忙,则将随机等待一段时间,再重新检测。CSMA-CA机制虽然解决了多个设备共享单一信道的问题,但将导致无谓的传输能耗开销。
如图1所示,节点A、B、C、D组成星形网络。其中,节点A、B均不在对方通信范围之内。当节点A、B同时请求数据传输时,由于双方均不在对方的通信范围之内,在执行空闲信道评估指令后,都将认为信道处于空闲状态,双方将同时向节点C发送各自数据帧,造成节点C发生数据冲突,进而导致数据重传,在同时传输大量数据时其高重传能耗表现尤为显著。
图1中,节点B、D均处于对方通信范围之内。当节点B、D同时请求数据传输时,由于双方均处于对方的通信范围之内,在执行空闲信道评估指令后,未争抢到信道使用权的一方,将随机等待一段时间,再重新检测。当数据传输总量较大时,各节点将频繁进行多次载波侦听,进而导致不必要的高侦听能耗。
图1 CSMA-CA在大量数据传输时高能耗缺陷Fig.1 High energy consumption defects of CSMA-CA during mass data transmission
通过分析可知,只有当多个节点同时请求数据传输时,才会造成隐藏节点和多次载波侦听的问题。因此,问题解决的关键在于如何将各节点请求数据传输的时间相互错开,即对各节点传输时序进行调度。由于各节点物理上的分散性,各节点无法采用统一的全局时钟,要进行传输时序调度,需首先实现各节点间的时钟同步,以保证各节点接收调度信息在时间上的一致性。
基于IEEE 802.15.4协议的无线传感器网络支持信标网络与非信标网络。在信标网络中,广播信标具有全网周期性同步的特点,使得各个子节点接收信标载荷能够保持时间一致性,相邻的两个信标帧界定了一个超帧结构,如图2所示。
图2 超帧结构Fig.2 Superframe structure
若要实现信标同步触发传输与休眠时序调度,则需要对超帧结构进行设计。超帧结构由活动周期和非活动周期组成,其中活动周期又分为竞争访问周期与无竞争访问周期,在非活动周期下,设备可关闭其收发器,以节省电池电量。信标间隔BI由macBeaconOrder(BO)和aBaseSuperframeDuration决定:BI=aBaseSuperframeDuration×2BO。 超帧结构活动周期长度SD由macSuperframeOrder(SO)决定, 即SD=aBaseSuperframeDuration×2BO。 根据IEEE 802.15.4协议规范,在信标网络中,形成一个超帧的时间aBaseSuperframeDuration为常量,信标周期BO和超帧周期SO参数设置应该满足以下关系[15]
相对于面向桥梁、环境监测等大范围状态监测应用,机械状态监测应用的覆盖范围要求更小,低复杂度、低功耗、低延迟、高同步精度的星形拓扑结构足以满足大部分机械状态监测。信标父节点活动周期时间占整个信标周期时间比例为2-(BO-SO), 最大的信标父节点个数可达2-(BO-SO)。 因此,改变(BO-SO)的值就可以调整信标父节点的活动周期时间。由于在星形拓扑网络中只有一个信标父节点即网关节点,其它皆为采集子节点,所以设置BO等于SO即可达到整个信标周期等于网关节点的活动周期,从而使在单位活动周期内数据传输量达到最大。设置BO的大小则会改变信标间隔周期的大小,设置过大,会增大子节点接收命令信标时延,过小会增大节点占用信道的次数,从而增大传输能耗。因此,根据机械振动无线传感器网络大量数据传输的需求,设置经验初值BO为5[16],因此由前文所给出的BI和SD的计算方法可计算出信标周期间隔BI和活动周期SD时间长度为491.52 ms。因此, PAN协调器(网关)以信标间隔BI周期性广播信标帧,其子节点通过接收信标帧实现周期性与网关间的时钟同步。
信标帧作为MAC通用帧的一种特殊形式,其包含了信标级数、超帧级数等关键组网信息。此外,IEEE 802.15.4协议规定信标帧最大允许携带52字节的信标载荷。因此,可以通过将调度信息载入信标发送给子节点来实现低开销的调度信息通知。
在网络建立阶段,未入网的子节点首先通过扫描信道来接收网关周期性广播的组网信标帧,待接收到组网信标帧之后向网关提出关联请求,随后网关将给发出关联请求的子节点分配网络短地址ID,每个子节点拥有全网唯一的短地址ID且网关将保存所有关联采集子节点的短地址ID信息列表Node{N1,N2,…,Ni,…,Nn},n为子节点数量,因此可将短地址作为调度信息供网关对所有子节点的传输时序进行调度。
如图3所示,在数据传输阶段,网关以信标间隔BI周期性广播传输命令信标帧,传输命令信标载荷格式如图4所示,并将子节点短地址ID按关联顺序列表Node{N1,N2,…,Ni,…,Nn}先后载入信标载荷进行发送,网关广播传输命令信标帧载荷中的节点ID依次按照Node{N1,N2,…,Ni,…,Nn}进行顺序切换。当子节点接收到传输命令信标帧后,判断信标负载中的节点ID是否为自身短地址ID。若有,则进行数据传输;若没有,则进入休眠模式,单信标时间间隔内休眠时间为ST,其中ST应略小于BI,以便提前唤醒子节点,唤醒时间为WT,为下一次接收信标帧和数据传输做准备。其计算方法如公式(1)所示
ST=BI-WT
(1)
图3 信标同步触发的传输休眠时序调度方法Fig.3 Transmission-sleep timing scheduling method based on beacon synchronous trigger
图4 传输命令信标载荷格式Fig.4 The format of beacon payload for transmission command
子节点Ni第一次接收到传输信标到第一次开始传输时间为tti和其中休眠时间为sti, 其计算方法如公式(2)所示。
(2)
此后,各个节点在大量振动数据传输过程中的单周期休眠时间为ts, 其计算方法如公式(3)所示。
ts=(n-1)·ST
(3)
当正在进行数据传输的子节点将自身所有数据传输完毕后,向网关发送一个回复包,表明数据传输完成,随后网关将下一个子节点短地址载入信标,通知相应子节点进行数据传输,直到所有子节点完成数据传输,通过对节点进行传输与休眠调度机制避免隐藏节点和过多的载波侦听所引起的高重传与高侦听能耗。
为了验证本文所提出基于信标同步触发的传输休眠时序调度方法性能,采用机械振动无线传感器网络节点WSNG4组成星形网络进行测试。WSNG4采集节点采用双核架构,由ARM Cortex M4内核的STM32F405微控制器和无线通信模块TI CC2530集成的增强型8051微处理器组成,节点支持IEPE传感器,可采用噪声较低的IEPE传感器采集机械振动信号。实验测试平台如图5所示,WSNG4采集节点分别对动力传动故障诊断综合实验台平行轴齿轮箱输入轴和输出轴两个相互垂直方向的机械振动信号进行采样,测试实验以数据传输过程中节点进行载波侦听的次数作为性能评估指标,本文将其定义为冲突次数。
图5 实验测试平台图Fig.5 The photo of experiment test platform
实验1中,由一个网关、 4个子节点组成星形网络,各子节点数据传输总量均为12.8 kB。采用CSMA-CA机制时,网关向外广播带有传输命令的信标帧,子节点接收到此信标帧后,采用竞争访问机制进行数据传输,统计各子节点完成自身所有数据传输过程中发生的冲突次数,重复10次实验,其结果如图6(a)所示。图6(b)为采用信标同步触发的传输休眠时序调度方法后,各子节点的冲突次数。
图6 各子节点冲突次数Fig.6 Collisions of each wireless sensor node
从图6(a)可知,各子节点冲突次数基本相同,这是由于在竞争访问周期内,所有请求传输的子节点都需使用CSMA-CA机制来获得信道使用权,而在同一个网络的所有子节点获得信道几率相同。图6(b)中的冲突是由于在信标网络中,网关会周期性广播信标帧,此时信道将被占用,子节点发生数据冲突,而每个子节点的数据总量一致,因此产生冲突的次数也基本相同。通过对比可知,采用信标同步触发的传输休眠时序调度方法后,各节点的冲突次数大幅减少。
实验1测试了在各子节点数据传输总量一定时,各子节点发生数据冲突的次数。为了明确当数据总量发生变化时,数据冲突次数的变化情况,进行了实验2。在实验2中,网络仍由一个网关、4个子节点以星形拓扑结构组成,但是数据传输总量从2.56 kB逐渐增加至12.8 kB。由实验1可知,各子节点的冲突次数基本相同,因此在实验2中的冲突次数重新定义为各子节点冲突次数的平均值。
由图7可知,实验2.1采用CSMA-CA机制时,冲突次数将随着数据传输总量的增加而增加,这是由于数据传输总量越大,各子节点进行数据帧发送的次数越多,每次发送之前都需进行载波侦听,而每次载波侦听都意味潜在的数据冲突。实验2.2采用信标同步触发的传输休眠时序调度方法后,冲突次数虽然仍随着数据传输总量的增加而增加,但是其增幅十分平缓。
图7 冲突次数与数据总量间关系Fig.7 Relationship between collisions and total data
实验3测试了各子节点数据传输总量为12.8 kB时,数据冲突次数随子节点数增加的变化情况。在实验3中,网络依次由一个网关、1~4个子节点组成。图8记录了3次重复实验下的冲突次数。
从图8(a)可知,采用CSMA-CA机制时,冲突次数将随着子节点数的增加而增加。这是由于在竞争访问周期,同一个网络的所有子节点获得信道几率相同,子节点数越多,单个节点获得信道使用权的概率越低,则进行载波侦听的可能性越大即发生冲突的次数越多。采用信标同步触发的传输休眠时序调度方法后,每个子节点传输数据的时间相互错开,互不重叠,因此数据冲突次数不会随着子节点数的增加而增大,如图8(b)。
图8 冲突次数与子节点数间关系Fig.8 Relationship between collisions and node number
从以上3个实验结果可知,采用信标同步触发的传输休眠时序调度方法后,数据冲突次数将大幅减少,而且不受数据传输总量及子节点数的影响。此外,在信标同步触发的传输休眠时序调度方法中,未进行数据传输的子节点将进入休眠模式,只周期性地唤醒来侦听下一次信标帧,而节点在休眠模式下工作电流较低,因此可节省大量能量。图9(a)为节点进入休眠模式时的工作电流,图9(b)为节点在空闲模式下的工作电流。通过比较可以发现,休眠电流远远小于空闲电流。表1记录了休眠模式与空闲模式下的平均电流大小。
图9 休眠模式、空闲模式电流变化情况Fig.9 Nodal current changes in sleep mode and idle mode
表1 休眠模式、空闲模式电流大小
本文提出基于信标同步触发的无线传感器网络传输休眠时序调度方法,用于改善并优化CSMA-CA在机械振动无线传感器网络大量原始数据传输需求下隐藏节点问题导致高重传能耗、多次载波侦听导致高侦听能耗的不足。通过充分利用信标网络下全网周期性同步,对超帧结构进行设计和信标可携带负载的特点,为实现数据传输时序的调度提供基本时钟同步条件及低开销的调度信息通知机制。此外,对于未进行数据传输的节点采用休眠/唤醒机制使节点空闲期能耗降至最低。与CSMA-CA进行对比,实验结果表明该优化方法能有效降低无线传感器网络数据无谓的传输能耗,且性能不受子节点数与数据传输总量的影响。