舒云龙,汤宝平,黄艺
(重庆大学 机械传动国家重点实验室,重庆 400030)
由于无线传感器网络(Wireless sensor networks,WSNs)机动灵活,部署方便,可对密闭、旋转环境中的机械装备关键部件进行振动监测等[1],已开始被应用于机械振动监测领域[2-4]。由于机械振动数据采样频率高,所采得数据量大,机械振动无线传感器网络需要对大量数据进行传输。在数据传输期间,无线传感器网络的IEEE 802.15.4协议定义了一种CSMA/CA算法,即载波侦听多路访问/冲突避免机制,存在多次载波侦听、隐藏节点所导致的高侦听能耗和高重传能耗问题[5-6]。针对 CSMA-CA在传输大量原始数据时存在的不足,国内外学者进行了大量研究。Liu Y.等人[7]提出了一种基于QTSAC的无线传感器网络自适应压缩(QTSAC)协议,可以实现无线传感器网络(WSNs)时延最小化,减少空闲侦听和冲突。Sharma N.等人[8]提出了一种基于负载的传输控制协议,通过改变负载控制数据包的传输,减少能耗,提高网络生命周期和吞吐量。这些算法[7-10]在具有物理分散性的各节点上完成时隙分配往往不易。针对以上问题,赵春华[11]提出了一种基于信标同步触发的机械振动WSNs传输休眠时序调度方法,通过周期性信息同步调度,为各节点分配时槽,降低节点间数据包冲突次数和能量开销。这种基于固定时槽节点轮询传输机制的同步调度能耗开销较大,且由于各个节点信道质量存在差异,导致传输速率不相等,部分节点提前完成数据传输后仍然会占用时槽,无法进入休眠状态,造成这些节点传输能耗升高,传输速率降低等问题。
针对上述均匀时槽分配方法[11]存在的节点传输能耗升高、传输速率降低的问题,文中提出了一种自适应时槽分配的机械振动无线传感器网络传输休眠时序调度方法。通过节点离线的时钟同步调度,与传输时槽自适应分配,实现机械状态监测无线传感器网络低功耗传输休眠时序调度。
自适应时槽分配传输休眠时序调度方法原理如图1所示。根据各个节点的数据传输链路质量,使用自适应时槽分配算法,进行传输休眠时序调度,明确各子节点的开始回传和结束回传时间,并在传输间隔进行休眠以降低功耗。在网络节点时钟同步下,各子节点可按传输时槽自主回传数据,减少子节点的侦听能量损耗,并避免无谓的时槽占用。
图1 自适应时槽分配传输休眠时序调度方法原理Fig.1 Principle of adaptive slot allocation transmission-sleeping timing scheduling method
每隔一个同步时槽周期,网关全网广播同步信标帧,子节点接收同步信标帧,并更新本地时钟,实现子节点间时钟同步,子节点回传 LQI(Link Quality Indicator,链路质量指示)、剩余的数据量等状态信息至网关。网关以子节点上传的状态信息作为传输时槽分配的依据,通过广播传输命令信标帧,通知各子节点下一个同步时槽周期内的传输时槽信息。各子节点在网络子节点时钟同步下,根据分配所得传输时槽,按序自主占用信道使用时间。在用尽传输时槽之后,进入休眠状态,将信道让出给下一个子节点使用。未进行数据回传的子节点都将处于休眠状态待机,在临近下一个同步时槽时自动唤醒,并侦听网关信标帧。
同步时槽由比例因子 P以及传输剩余时长 t决定,同步时槽Tslot=P·t。一般情况下,P设为50%,同步时槽将随着数据传输的进行逐渐递减。在初次同步时,同步时槽设为固定值1 s,在1 s内,各个子节点分别占用相同的传输时槽回传一段数据,借此测定各个子节点的LQI,为网关对子节点的传输时槽分配提供依据。传输时槽分配基于各子节点的 LQI值,LQI越低,则为子节点分配的传输时槽将越大,使各个子节点在每一个同步时槽周期内传输相同的数据量,最终同步完成各自的数据传输任务。
现有时钟同步方法需要网关频繁广播信标帧,节点接收信标帧,并进行晶振偏移补偿。虽然同步精度较高,但同步算法复杂,能耗高,不满足大量数据传输中轻量、低功耗时钟同步需求。针对这一问题,提出信标调度的自适应时槽分配时钟同步方法,网关节点仅在需要同步时钟时发送单个信标,各节点通过信标校准本地时钟误差,并在随后的同步时槽内,不再进行晶振补偿,从而极大地降低同步次数。在全网时钟同步基础上,自适应时槽分配算法既能有效避免节点在设定的传输时槽内无法完成数据传输任务的情况,又能避免节点传输完成还继续占用传输时槽的情况,同时也可避免时钟偏移导致节点间数据传输冲突造成不必要的能量消耗。
为验证该方法有效性,以7个采集节点和1个网关节点组建星型网络,使用逻辑分析仪,获取各采集节点的时钟脉冲信号,进行时钟同步误差实验。对采样时钟信号进行处理,分析其时钟时序变化,计算其同步误差。在节点网络不进行晶振偏移补偿的前提下,设置节点采样频率为50 kHz,逻辑分析仪采样频率为100 MHz,7个采集节点连续采集90 s,并以节点1的采样时钟为基准,其他节点与节点1的采样时钟偏差即为时钟同步误差,实验结果如图2所示。随着时间的推移,节点间同步误差逐步累积。当采集时间达到90 s时,最大同步误差仅为0.514 ms,能够满足对精度要求较低的机械振动数据传输时钟需求。
同步时槽内,对各节点传输时槽的自适应分配依赖于节点传输速率,而节点传输速率与传输信道链路质量直接相关。通过LQI指标评价链路质量,并通过测量LQI预测节点数据传输速率,进而为各个节点分配最优传输时槽。
为得到LQI与数据传输速率的离散模型,将采集节点置于不同的工作条件下,以改变LQI进行簇内通信。每次发送1000条与节点传输的原始振动数据长度等长的数据帧至网关节点,每个数据帧96 Bytes,网关节点记录下传输1000条数据帧的时间以及LQI并取平均,最后构造 LQI与数据传输速率,如图 3所示。
图3 数据传输速率与LQI关系Fig.3 Relations between data transmission rate and LQI
根据所得的LQI与数据传输速率的离散关系,假设满足一元线性回归模型:在数据传输阶段,初次同步时,同步时槽设为固定值1 s,并设置LQI为一个定值。网关节点广播传输命令信标帧,采集子节点开始在1 s时间内分别占用相同的传输时槽进行数据传输,并上传子节点状态信息。网关节点获取各个子节点的剩余数据量 Ni以及相应的LQI值,剩余传输阶段,所有子节点完成数据传输所需要的时间t由式(2)和式(3)可得:
式(1)中:v为数据传输速率;L为链路质量指示;a、b为回归系数。拟合得到:
下一次同步时槽将由比例因子 P以及传输剩余时长t决定,一般情况下,P设为50%,同步时槽将随着数据传输的进行逐渐递减,由式(4)重新分配下一次同步时槽Tslot:
网关节点通过广播传输命令信标帧,子节点接收同步信标帧和下一个同步时槽周期内的传输时槽信息。传输时槽分配基于各子节点的LQI值,LQI越低,则为子节点分配的传输时槽将越大。使各个子节点在每一个同步时槽周期内传输相同的数据量,各采集子节点分配的传输时槽tslot(i)由式(5)可得:
各子节点在网络时钟同步下,根据分配的传输时槽,按序自主占用信道使用时间。在用尽传输时槽之后,进入休眠状态,将信道让出给下一个子节点使用。未进行数据回传的子节点都将处于休眠状态待机,在临近下一个同步时槽时自动唤醒,并侦听网关信标帧。在一个同步时槽内,各子节点开始唤醒进行数据传输的时间相位Bi由式(6)可得:
一次同步时槽内的数据传输完成后,重复上述过程,继续下一次同步时槽分配和子节点传输时槽分配。直到Tslot小于等于1 s,则设置Tslot=1 s,直到所有采集子节点完成所有数据传输。
为了验证该自适应时槽分配的机械振动无线传感器网络传输休眠时序调度方法的性能,采用机械无线振动传感器网络节点WSNG4组成星型网络进行测试。WSNG4采用双核心处理器架构,其中核心1 STM32F405 负责信号采集、信号存储和处理,核心2 CC2530主要负责网络管理和数据传输,两者协同工作。节点支持IEPE传感器,可采用低噪声的IEPE传感器进行机械振动信号采集。实验测试平台如图4所示,分别对动力传动故障诊断综合试验台平行轴齿轮箱输入轴和输出轴的水平和垂直方向进行机械振动信号采集。测试实验以数据传输中的冲突次数、能量消耗以及传输速率作为性能指标。为测试不同LQI对测试性能指标的影响,将WSNG4 采集节点分别布置在试验台的四个角落,1、2、3、4号节点距离网关的距离分别为5、100、120、100 cm。
图4 实验测试平台Fig.4 Experimental test platform
采用1个网关和4个采集节点组成星型网络,各个子节点数据传输总量均为25.6 kB。网关节点首先下发数据传输命令信标帧,子节点接收到命令信标帧后,采用CSMA-CA机制进行数据传输,统计各个子节点完成数据传输中发生的冲突次数。然后分别采用均匀时槽分配方法以及文中提出的自适应时槽分配方法按照上述实验过程重复测试,三种方法分别重复20次实验。实验结果如图5所示。
图5 各子节点冲突次数Fig.5 Number of conflict of each child node: a) CSMA-CA mechanism; b) uniform time slot allocation; c) adaptive time slot allocation mechanism
由图5可知,各节点在相同方法下的冲突次数基本保持一致。采用CSMA-CA机制时,对于请求传输的子节点,需要请求获得信道使用权,每个节点获得使用权的几率都是相等的。对于均匀时槽分配方法和自适应时槽分配方法而言,由于冲突仅是在信标网络周期,网关将在每个长同步时槽之后广播信标帧,信道仅在此时被占用,每个子节点的数据传输总量是一致的,因此冲突次数基本相同。通过方法对比,在均匀时槽分配方法和自适应时槽分配方法下,由于各节点采用休眠和传输时序调度,不需要进行信道冲突访问,因此各节点的冲突次数基本相同,并且冲突次数较CSMA-CA机制而言大幅下降。
在上述实验过程中,测试数据传输过程各个子节点的传输能量消耗。各子节点的能量消耗如图 6所示,从四个节点的能量对比分析可知,随着距离的增加,各节点的传输能耗相应增加。这是由于各节点离数据中心距离的不同,导致节点的通信质量不同,进而通信质量差的丢包重传次数多,增加传输能耗。同时由图 6可以得到,自适应时槽分配方法的传输能耗比 CSMA-CA机制降低 23.4%,比均匀时槽分配方法降低 10.6%。这是因为在 CSMA-CA机制下,冲突次数比其他两种方法大,整体传输能量消耗大于另外两种方法。均匀时槽分配方法中,时槽是均匀的,在传输时槽中会出现因数据已经发送完毕却没有释放信道的情况,在传输能耗上比自适应时槽分配方法略高。
图6 各子节点能量消耗Fig.6 Energy consumption of each child node
通过记录各个节点数据传输的时间,分别计算三种方法下各个子节点的传输速度。靠近网关最近的节点1和最远的节点3的一次测试数据如图7所示。采用CSMA-CA机制时,传输速率比其他两种方法速率高。这是因为每个节点都有相同的几率占用信道,并且一直在请求占用信道上传数据,但是它消耗的能量是高于其他两种方法的。均匀时槽分配方法因为数据量的大小在传输时槽中数据传输完毕后依然占用着信道,因此而消耗的传输时间更多,传输速率更低。对于自适应时槽方法,由于各个子节点数据传输的时间相互错开,减少了冲突次数,在每段传输时槽保证了数据传完之后释放信道,因此传输时间更短,相比均匀时槽分配方法传输速率高。通过对距离数据的分析,节点1的平均传输速率为87.6 kbps,节点3的平均传输速率为82.7 kbps。因各节点距离的不同,导致通信质量不一样,而通信质量在较低时丢包重传次数高,因此距离较近的节点通信质量较好,传输速率更高。
图7 节点1、3传输速率与数据长度的关系Fig.7 Relationship between transmission rate and data length of nodes: a) node 1; b) node 3
文中提出了自适应时槽分配的机械振动无线传感器网络传输休眠时序调度方法,用于改进均匀时槽分配的方法在机械振动无线传感器网络大量原始数据传输需求下节点传输能耗升高、传输速率降低的不足。通过信标调度的自适应时槽分配时钟同步方法,使各节点不需要晶振补偿,就可以校准本地时钟误差,极大地降低了同步次数。通过LQI指标评价链路质量,并通过测量LQI,预测节点数据传输速率,进而为各个节点分配最优传输时槽,以充分利用信标网络下全网周期性同步。此外,未进行数据回传的子节点都将处于休眠状态待机,直到下一个同步时槽时自动唤醒,并侦听网关信标帧,使节点空闲期能耗降至最低。实验结果表明,与CSMA-CA方法和均匀时槽分配方法相比,自适应时槽分配方法能有效降低无线传感器网络的传输能耗。