1. 引言
轮询控制因其公平性、灵活性被广泛应用于工业制造、计算机通信等各个方面。无线传感器网络引入轮询控制机制,将传统的多跳通信变为单跳,可以有效的降低因碰撞产生的能量损耗。文献 [1] 以限定(K = 1)服务为基础,提出了一种改进的PCF轮询控制协议,将其接入无线传感器网络,在MATLAB仿真环境下验证了协议的正确性。文献 [2] 首次以FPGA (field programmable gate array)对轮询机制的接入控制协议进行了设计和实现。从软件仿真到FPGA的实现是一个巨大的跨越,但是没有将轮询系统应用于真实的无线传感器网络中。文献 [3] 选择TinyOS无线传感网络操作系统作为软件平台,以cc2538cb传感器节点作为硬件平台,在无线传感器网络中构建了一个轮询控制系统。TinyOS是一个空白的操作系统,目前没有基于TinyOS操作系统的ZigBee协议栈通过ZigBee联盟的认证,且支持的芯片较少,移植困难,因此TinyOS的应用受到很大限制。而Zstack是TI开发的通过ZigBee联盟的认证的免费协议栈,协议栈具有国际化,标准化的特点,协议栈已提供十几种应用场景剖面可以非常轻松的让用户开发出满足国际标准的产品。因此本文选取ZStack作为软件平台,以cc2530节点作为系统的硬件平台,通过开发ZStack的方式实现对无线传感器网络的轮询控制。
2. 无线传感器网络结构
无线传感器网络的结构如图1所示。主要包括传感器节点、汇聚节点、两种类型的节点。传感器节点负责数据的采集,汇聚节点负责数据的收集和转发。将传感器节点部署在一个区中,各个传感器节点就会自组织形成一个小区域的网络 [4] 。节点之间的协作通信将采集到的数据通过一条最优路径传输到汇聚节点。利用GPRS、GSM等途径将数据传送到网络服务器,用户就可以通过电脑、手机等终端远程得知监测区域的环境的变化。
3. 轮询服务
轮询系统如图2所示,按照其服务方式不同,可以分为完全服务、门限服务、限定服务 [5] [6] [7] 三种。完全服务的过程是,服务器不仅要将当前站点中存在的信息分组服务完,在服务过程中进入站点的信息分组也要服务完,直到当前站点中不存在信息分组。门限服务只服务当前站点中所存在的信息分组,对于服务过程中到达的信息分组,则缓存在站点中,等待下一次的服务。限定服务一般指限定(K = 1)服务,即每一次轮询到的站点只发送一个信息分组。

Figure 1. Wireless sensor network structure
图1. 无线传感器网络结构
轮询系统采用马尔科夫链和概率母函数的方法构建数学模型,以此来分析其性能。门限服务的平均时延如下 [3] 。
(1)
平均排队队长计算如下。
(2)
上式中,
表示信息分组的到达率;
表示服务信息分组的服务率;
表示两个站点之间的转换时间:
,
,
。
4. 系统的设计
4.1. 系统的硬件设计
本文传感器节点选择德州仪器制造的CC2530,其芯片为TI公司的CC2530。CC2530基于51内核,是一个兼容IEEE 802.15.4的真正的片上系统。相比于CC2430,其闪存达到了256K,可以满足大应用的需求,拥有强大的地址识别和数据包处理能力 [8] [9] [10] 。CC2530提供了101dB的链路质量,接收灵敏度高和抗干扰性强,完全能够满足本实验的需求。
CC2530最小系统如图3所示,主要包括电池、复位电路、收发前端、晶振电路、DC/DC稳压器、CC2530芯片6个部分。CC2530具有一个IEEE802.15.4兼容无线收发器 [11] 。RF内核控制模拟无线模块。另外,它提供了MCU和无线设备之间的一个接口,这使得其可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。
4.2. 系统的软件设计
ZigBee协议(Zstack)的架构如图4所示,包括应用层,应用支持子层、网络层、媒体访问控制层、物理层。ZigBee网络中,按照功能划分为三种设备类型:协调器、路由器、终端设备 [12] 。其中协调器负责网络的配置和维护,一个网络中只允许有一个协调器。路由器的主要功能是加入网络,起到中继和路由的作用。终端设备执行具体的任务,如数据采集等 [13] 。
基于Zstack在应用层分别对汇聚节点、传感器节点进行了程序设计。实验采用6个cc2530节点,一个汇聚节点作为轮询系统的服务器,剩余五个作为传感器节点负责数据的采集,编号为A、B、C、D、E,门限服务中参数的设计为:
,
。设计的流程如图5所示。按下汇聚节点的按键后,整个系统开始工作。具体实现如下:
1) 传感器节点初始化完成,等待接收汇聚节点发来的命令帧,同时开始采集数据,采集的数据为温度,加入代码控制,使得温度数据的到达过程近似服从泊松分布.并将采集到数据存入信息缓冲区中。
2) 汇聚节点初始化完成后发布轮询列表并按列表发送命令帧,向节点A发送一个命令帧,并产生一个合适的等待时间,若在等待时间内未收到节点A的数据,则触发跳转程序,按照列表顺序发送命令帧,转到下一个站点进行服务。若在等待时间内收到节点A的数据,则触发一个中断信号,重置等待时间,等待下一个数据的到来,如此反复,直到出现等待时间耗尽,则说明当前服务的节点已经将发送缓冲区中的信息全部发送完,此时触发跳转程序,按照列表顺序服务下一个节点。
3) 传感器节点侦听到命令帧后将信息缓冲区中的数据复制到发送缓冲区,并发送出去,直到发送缓冲区中没有数据。同时按泊松到达概率采集数据。
5. 实验分析
烧写好程序之后,按下汇聚节点的按键,系统开始工作,通过串口助手观察汇聚节点的输出,可以看到A ® B ® C ® D ® E的顺序打印出数据。
本文实验分析的方法是利用python程序记录汇聚节点串口的输出,将其存储为文本文件。再进行相

Figure 4. ZigBee protocol (Zstack) architecture
图4. ZigBee协议(Zstack)的架构
应的处理之后,可以得到相关数据。主要评估的参数轮询系统的平均时延、平均排队队长。
轮询系统的平均时延的实验值可以如下计算:
轮询的平均排队队长的实验值由下式计算:
实验中选取各个到达率的前1000个信息分组来计算相关指标,计算轮询的时延需要知道汇聚节点服务完1000个信息分组的所需的时间长度。这个时间利用串口的时间戳来记录。计算平均排队队长所需参数各节点信息的总数为1000,节点数为5,循环次数则需要利用程序记录下服务完1000个信息分组所需的循环次数。通过理论公式计算的理论值和实验值对比如表1所示。

Table 1. Average delay of polling system, theoretical value of average queue length and experimental value
表1. 轮询系统平均时延、平均排队队长理论值和实验值
从表中可以看出,实验值与理论存在一定误差,但是都在理论值附近波动。要降低误差可以通过增加节点数和信息分组的数量来实现,但是所需的实验数据的收集,需要花费更长的时间。
6. 结论
传统无线传感器网络轮询控制的接入协议的研究,大多数是理论分析和软件仿真。本文利用cc2530节点搭建了真实的无线传感器网络,结合Zstack协议栈进行了门限服务控制系统的设计,将门限服务方式应用无线传感器网络。通过实验分析,门限服务控制系统能够在真实的无线传感器网络中正确运行,性能指标和理论值一致。轮询的控制方式将无线传感器网络中多跳变为单跳,有效避免了冲突带来的能量损耗,提高了通信的质量。本系统奠定了轮询系统在硬件上实现的基础,在此基础上,可以扩展为完全服务和限定服务方式,加上两级优先级的轮询模型之后,将进一步提高通信服务质量。