刘清华,李清平
(浙江育英职业技术学院,浙江 杭州 310018)
ZigBee协议使用冲突避免的载波多路侦听技术作为媒体访问机制,支持确认机制ACK(acknowledge character),保证传输可靠性,具有复杂度低、成本低、功耗低、速率低、时延短、支持多种网络拓扑和大量网络节点、工作频段灵活和安全可靠等特点[1]。
当前对ZigBee协议栈的层次原理分析[2-4]及路由算法和优化研究[5-6]较多,对利用ZigBee协议栈实现具体的工程应用案例也不少[7],但基于ZigBee无线网络在性能仿真研究方面的工作较少,尤其是仿真环境下移动节点彼此之间的干扰和对整个网络环境影响的研究还不多见。本文基于OPNET软件对相关问题进行了研究。
OPNET是由ItDecisionGuru、Modeler、Modeler/Radio三个模块层层嵌套组成的一款通信仿真软件,包括网络拓扑结构、路由设计、业务配置等。主要针对网络设计优化性价比,使用定量的方法获取网络性能数据,使用高级动画实现仿真事件的可视化。OPNET提供3层建模机制,最上层为网络模型,由网络节点和连接节点的通信链路组成,可以建立仿真网络的拓扑结构。中间层为节点模型,由协议模块和连接协议模块的连线组成。最底层为进程模型,由基于C语言的有限状态机描述协议。3层模型和实际的网络、设备、协议层次一一对应[8]。
ZigBee技术主要针对工业、农业、家庭、汽车自动化以及遥测遥控、医疗护理等应用领域,适合数据吞吐量较小、传输距离较短、自组织、自愈能力较强的场合。基于Zigbee技术的特点和适用场所,从架构简单、易于实现的原则出发,综合考虑仿真环境的稳定性、可重复性以及实验数据的可靠性、针对性,本文设置ZigBee仿真场景大小为2000 m×2000 m,4个子网分别为PAN 1、PAN 2、PAN 3和PAN 4,每个子网都包含3种仿真设备:1个ZigBee协调器、2个ZigBee路由器和2个ZigBee终端节点,另外在PAN 1和PAN 2子网中还各有1个ZigBee移动节点,同时规划了2个移动节点的运行轨迹,如图1所示。4个子网的PAN ID分别为1、2、3和4,移动节点设置为自动获取PAN ID,子网及移动节点的发射功率为2 mW,工作频率为2450 MHz,接收灵敏度为-85 dBm。
OPNET利用IEEE802.15.4协议设计网络层进程模型。网络部署后,所有节点进程都进入初始化过程,由ZigBee协调器来完成。初始化完成后,中心节点进程收到中断信号后从休眠状态激活,ZigBee协调器立即调用MAC层进行信道扫描。如果发现明确的网络标识(PAN ID),那么网络层将确保给定的PAN ID不会与所选信道的现有网络PAN ID发生冲突;如果未能选到合适的信道,那么网络层将发送错误标志。扫描完后ZigBee协调器组建网络,网络层将设置0x0000的16位网络地址并告知MAC层,指定信道上的网络建立完毕后进入激活状态,等待处理回应信标请求帧和加入请求,以完成节点入网。仿真实验的流程如图2所示。
IEEE802.15.4协议定义了ZigBee无线网络2种类型的设备:全功能设备(full-function device,FFD)和简化功能设备(reduced-function device,RFD)。FFD设备可充当任何ZigBee设备,具备路由功能,可以与RFD或其他全功能设备通信,而 RFD设备只能为终端节点,不具备数据转发、路由发现和路由维护等功能。
ZigBee协调器(coordinator)是启动及配置网络的FFD,负责网络的协调工作以及保持同网络中其他设备的数据通信,可以看作是一个无线传感器网络的汇聚节点。一个ZigBee网络只允许存在一个ZigBee 协调器。
ZigBee路由器(router)是分配网络内部逻辑地址、建立和维护邻居表等的FFD。在其通信范围内,允许其他节点直接加入或离开,并回收网络地址,无需ZigBee协调器的指挥。一个ZigBee网络允许存在多个ZigBee 路由器。
ZigBee终端设备(end device)一般是RFD,也可由FFD来充当。其存储器容量要求最少,可以用于ZigBee 低功耗设计,而且只与为其分配16位地址的父节点通信,从父节点处获得信息。
在不使用功率放大器的前提下,ZigBee节点的有效传输范围一般在10~75 m之间[7]。当前在ZigBee网络移动节点的研究中,普遍存在设置路径过长、能耗开销过大等问题,另外在ZigBee节点的移动轨迹设计中,还需考虑由于移动节点之间信号彼此重叠而导致网络性能评估精度降低的问题。
在子网PAN 1和PAN 2中分别放置一个移动节点mobile_node_1和mobile_node_2,起始坐标分别为PM1(188.31,443.67)和PM2(488.93,766.47)。考虑数据收发的稳定性和实际应用场合,设定2个移动节点均以10 km/h的速度匀速运动。mobile_node_1从子网PAN 1出发,经过表1所列的5个坐标点进入PAN 4,花费时间 9 min 0.53 s。mobile_node_2由子网PAN 2出发,经过表1所列的2个坐标点进入PAN 1,花费时间 3 min 54.43 s。
表1 移动节点的运行轨迹参数
无线通信距离与发射功率、接受灵敏度和工作频率相关。子网发射功率的绝对值为
Pz=10lgp
(1)
式中p为以mW为单位的功率值。
已知子网的发射功率为2 mW,则有
Pz=10lg2=3(dBm)
因此发射功率与接收灵敏度的差值为
3-(-85)=88(dB)
自由空间信号(光波或电磁波)传播损耗LFSP(free space path-Loss)反映了信号在理想环境中(无干扰、无障碍)传播时的损耗,其能量既不会产生反射或散射,也不会被障碍物所吸收。空气中可近似于理想环境,信号传播损耗为
(2)
式中:λ为信号波长,单位m;d为视距传播距离,单位km;f为信号频率,单位MHz;c为真空中的光速,近似于3×108m/s。
式(2)两边求对数,可得
20lgd+20lgf
(3)
已知f=2540 MHz,LFSP=88 dB,可得
d=0.224 35 km=244.35 m。
从仿真环境的部署可知各子网中终端节点的坐标,因此可以计算终端节点和协调器之间的直线距离D,如表2所示。
表2 终端节点和协调器之间的直线距离
从表2可以看出,每个子网的终端节点与相邻子网协调器之间的直线距离D>d,所以4个子网的信号覆盖区域不会重叠,不会产生丢包现象。同理,两个移动节点mobile_node_1和mobile_node_2之间的起始距离D(M1-M2)=441.10(m)>d,所以刚开始时,两个移动节点的通信信号也不会相互干扰。
仿真开始后,移动节点mobile_node_1和mobile_node_2分别花费 9 min和 4 min左右的时间穿越全网,在此过程中两个节点的丢包情况分别如图3和图4所示。
采用分带指数法对所选15种微量元素进行分析和计算(表4)。每一元素的分带指数最大值所在的标高,即为该元素在分带系列中的位置,从而排出它们之间自上而下的分带系列。再应用变异性指数及变异性指数的梯度差(表5),进一步确定元素分带系列中的先后顺序[7-8]。
从图3、4可以看出,当经过 1 min12 s的时候,mobile_node_1移到坐标PM(1-1)(336.05,578.47)处,mobile_node_2移到坐标PM(2-1)(385.57,595.24)处,此时两移动节点的直线距离为52.28 m,而mobile_node_1离协调器Coordinator 1的距离是217.73 m,离协调器Coordinator 2的距离是214.78 m;mobile_node_2离协调器Coordinator 2的距离是212.72 m,离协调器Coordinator 1的距离是235.84 m。此时两个节点都处在彼此子网信号覆盖区域的边缘,正准备离开原子网而进入到另一个子网,将瞬间中断与Coordinator的直接通信,两个节点的丢包率从此刻起开始大幅度上升。
当经过 1min21s时,mobile_node_1移到坐标PM(1-2)(383.23,595.01)处,mobile_node_2移到坐标PM(2-2)(372.90,574.25)处,此时两个节点之间的直线距离最短,为23.19 m,信号相互干扰最严重,丢包率在此时达到峰值,之后随着两个节点的移动,彼此之间的距离逐渐拉大,移动节点的丢包率随之降低。
在 1 min39 s左右,mobile_node_1和mobile_node_2分别进入子网PAN2和PAN1,其丢包率随即下降。随后mobile_node_1继续向前移动,于 4 min 30 s离开PAN2,5 min 6 s进入PAN3,7 min 3 s离开PAN3,7 min 30 s进入PAN4,这期间的丢包情况也遵循上述规律。
两个移动节点穿越ZigBee网络时的数据流量如图5所示。
从图5可以看出,移动节点mobile_node_2的总体数据流量要高于移动节点mobile_node_1,这是因为mobile_node_2穿越子网的时间要少于mobile_node_1,在协调器发射频率一致的情况下,单位时间内mobile_node_2接受的数据流量要多。两个移动节点在1 min 21 s和1 min 30 s同时达到数据接收流量的第一个峰值和谷值,此后mobile_node_2接受的数据流量基本处于稳定状态,而mobile_node_1则分别于1 min 39 s、4 min 30 s和 7 min 3 s达到第二、第三和第四个峰值,于 1 min 48 s、4 min 57 s和 7 min 21 s达到第二、第三和第四个谷值。这与两个移动节点离开原子网、进入新子网和彼此最短距离相遇的时间基本吻合。
网络延迟指报文开始进入网络到其开始离开网络之间的时间。4个子网在移动节点穿越过程中的点对点延迟曲线如图6所示。
吞吐量表示在单位时间内通过某个网络(信道、接口)的数据量。图7展示了节点在ZigBee网络中移动时子网的吞吐量变化情况。
从图中可以看出,在开始的 1 min 12 s左右的时间内,子网PAN1和PAN2的数据流量最大,这是因为最初两个子网各有一个移动节点在提供额外的数据流量。在 1 min 30 s左右,两个移动节点分别进入到新子网,子设备发送信标请求的命令帧,父设备在收到请求连接的命令帧后,立刻检查当前资源能否继续接收设备加入到PAN中。如果资源满足,那么父设备将存储子设备ID,并为子设备分配0x0000的16位网络地址,同时向子设备发送有处理数据的ACK应答帧;如果资源不能满足需求,那么父设备就直接发送无处理数据的ACK应答帧。子设备在设定的时间内进行等待,若收到有处理数据的ACK应答帧,则更新其父设备地址信息、网络地址和PAN ID;若收到无处理数据的ACK应答帧或在设定的时间内没有得到响应,则子设备退出。这段时间内移动节点未能给子网提供数据流量,子网的吞吐量迅速降低。同样的情况反映在移动节点mobile_node_1进入和退出子网PAN3和PAN4。
本文运用OPNET软件对ZigBee网络中移动节点在漫游过程中彼此之间的干扰以及对各个子网的性能影响进行了仿真分析,部署了仿真环境,设计了移动轨迹,从丢包率和数据流量分析了移动节点相互干扰的情况,从网络延迟和吞吐量分析了移动节点漫游ZigBee网络时对子网的性能影响以及产生的原因。仿真实验结果表明:
1)移动节点的空间直线距离大于视距传输距离时,节点之间的通信信号不会相互干扰。
2)移动节点在离开原子网进入新子网时,节点的丢包率开始大幅上升。
3)移动节点的空间直线距离最短时,丢包率达到最高峰值。
4)网络延迟和网络吞吐量的波峰值和波谷值与移动节点离开原子网、进入新子网以及节点间交汇的时间节点密切相关。
本文研究的ZigBee移动节点数量较少,更多移动节点相互之间的干扰和对网络性能的影响更为复杂,这是今后进一步深入探索的方向。