APP下载

无线传感器网络测试平台研究与设计

2021-10-28施伟斌

软件导刊 2021年10期
关键词:数据包射频无线

王 杰,施伟斌

(上海理工大学光电信息与计算机工程学院,上海 200093)

0 引言

无线传感器网络(Wireless Sensor Networks,WSN)通过节点间的协同合作,对网络覆盖区域内的环境或监测对象信息进行实时感知、采集和处理,并将采集到的信息处理后通过自组多跳的无线网络方式传送给监控者[1]。

研究者设计了多种适用不同应用场景的WSN 测试平台,如哈佛大学提出的MoteLab 和法国分布于6 个地方的IoT Lab 等[2]。MoteLab 平台支持通过Web 访问大型的固定网络设备,并上传自己设计的程序进行实验,加快了应用程序部署,允许离线对WSN 应用软件的性能进行验证及评估[3]。IoT Lab 是一个非常先进的大规模研究平台,总共有2 000 多节点部署在6 个地方[4]。华东师范大学信息学院研制了Enmote 物联网开发平台,该平台集成多种传感器模块以及无线组网模式,可以组成多种不同的物联网网络架构[5]。香港科技大学计算机科学与工程系研制了一个具有较强通用性和实用性,面向大规模部署的WSN 测试平台SNAP,为WSN 研究提供较好条件[6]。中南大学研发的基于组件的WSN 测试平台Com-WSN,受益于系统组件化思想,对系统资源优化合理分配,将协议各个功能组件化,较好地保证了测试平台的易用性和扩展性[7]。

上述平台虽能完成大部分研究测试任务,但存在局限性,即都不能在网络运行时实时监测节点功耗,不适于低功耗通信协议研究。本文提出一种无线传感器网络测试平台系统设计方案,其支持无线传感器网络的理论研究与应用开发调试,适用于在大规模无线传感器网络中进行诸如无线信道干扰测试、无线传感器网络定位研究以及路由协议等研究。

1 WSN 测试平台

1.1 系统架构

测试平台系统架构如图1 所示,主要由终端设备、服务器和无线传感器网络3 部分构成。终端设备的类型和功能取决于终端软件设计;服务器将无线传感器网络的各种数据进行汇总和处理,并提供数据库服务;无线传感器网络平台由网关节点、侦听节点和普通传感器节点组成,本文设计的硬件平台采用模块式方案搭建这3 种不同的节点,从而构建一套完整的测试系统,满足WSN 的测试研究需要。

Fig.1 WSN test bed system architecture图1 无线传感器网络测试平台系统架构

1.2 硬件设计

为使硬件系统能组成具有不同功能、应用于不同场景的节点,系统硬件采用可剪裁的设计方法,根据需要选择不同的模块组成不同类型的节点。测试系统硬件平台模块主要包括USB Hub 控制器、USB 转串口模块、射频控制器、调试控制器、传感器模块、电池供电模块,如网关节点采用USB Hub 控制器模块与服务器通信并由此接口供电,无需使用电池供电模块,而普通传感器节点则使用电池模块来供电。本设计方案将硬件系统分为如图2 所示的4 块板子:①底板,此板是传感器网络节点的基础电路板,是每个网络节点必须的组成部分;②射频模块,负责无线信号收发,也是每个网络节点不可或缺的组成部分;③传感器模块,负责采集数据;④调试模块,使网络节点具有在线调试和下载程序功能。

1.2.1 射频模块

射频模块负责信号收发,是无线传感器网络节点的核心模块[8]。本设计采用了TI 公司CC2531 系列带有无线射频收发器的单片机作为射频模块的主控和射频芯片,CC2531 作为一款SOC 芯片只需要很少的外围元件即可搭建一个正常工作的最小系统[9]。

Fig.2 Node physical map图2 节点实物

CC2531 单片机集成了一个低功耗且高性能的8051 微控制器和CC2520 射频收发器[10],它提供对IEEE 802.15.4协议MAC 层的硬件支持,能够自动产生多种类型的帧格式和校验,在2.4G 频率范围内工作,共有16 个通信信道,适用于低速率无线通信网络[11]。

1.2.2 传感器模块

传感器模块是无线传感器网络节点的感知部分,对用在各种无线传感器网络测试实验的测试平台而言,需根据实际设计相应的传感器模块[12]。

传感器模块接口电路与射频模块控制器的所有IO 口相连,可针对不同应用场景接入不同类型或不同通信方式的传感器模块至测试系统,提高了测试平台的延展性。节点底板对传感器模块提供3.3V 和5V 两种不同的工作电压,可满足大部分传感器处理电路的电源需求。

1.2.3 调试模块

调试模块是辅助模块,它使网络节点具有在线调试和下载程序功能。调试模块电路设计参考TI 公司的调试专用产品CC Debugger,采用CC2511 单片机作为调试模块主芯片[13]。

1.2.4 USB 延长器

考虑到实验时方便管理传感器节点,将所有通信链路和供电集中到一个USB 接口;为方便布置传感器节点,设计一种能长距离传输的USB 延长器,使传感器节点与PC 端通信不受距离限制[14]。图3 为USB 延长器原理。

Fig.3 USB extender circuit schematic diagram图3 USB 延长器电路原理

本系统设计采用芯片CH315G 作为信号变换器,将USB 信号转换成由5 类(或超5 类网线)和RJ45 接口(水晶头)传输的信号。设计一种方便操作的USB 远距离传输方案,理论上传输距离可延长至50m 以上。为使USB 信号传输的距离最大化,兼容连接网线和芯片CH315G,分别为上位机和下位机的两个CH315G 芯片设计对应的适配电路[15]。

1.3 软件设计

本系统软件主要由3 部分构成:①调试模块电流监测程序。将电流检测放大器输出的反应射频模块电流的电压信号转换成计算机能处理的数字信号,再将信号值处理后发送至PC 端;②射频模块网络侦听程序。使用射频收发器侦听被测网络中的RF 数据包,再将数据包处理后发送至PC 端;③上位机软件。能显示和保存由调试模块采集的电流信号值以及由射频模块捕获的RF 数据包。

1.3.1 调试模块电流监测程序

电流监测程序设计的电流监测功能可概括为:进行AD转换、对AD 转换得到的数据进行滤波处理以及换算成电流值、上传电流值至PC 端。实现过程分为3 个步骤:①对CC2511 的寄存器和存储器进行操作实现AD 转换;②对AD值滤波;③将AD 值换算成电流值。通过对寄存器进行赋值操作实现对电流值数据的转移;通过USB 接口与上位机进行通信,包括数据包的上传和接收上位机的命令。电流监测程序流程设计如图4 所示。

Fig.4 Flow of current monitoring program图4 电流监测程序流程

1.3.2 射频模块网络侦听程序

运行此程序的节点在无线传感器网络中充当侦听节点角色,侦听节点只接收而不转发数据包[16]。侦听节点要求捕获所有符合IEEE 802.15.4 标准的数据包,对不符合该标准的数据包应丢弃。因此,程序读取数据先对接收的数据包过滤处理,再将过滤后的数据包转化为USB 数据包,通过USB 接口将数据从缓冲区传输至PC 端的接收缓冲区,以实现数据的显示和保存[17]。

侦听节点程序设计实现网络侦听功能过程:接收被测网络中的RF 数据包、对接收到数据包进行过滤处理、上传过滤后的数据包。此实现过程分为3 个步骤:①对CC2531的寄存器和存储器进行操作,实现数据包的接收和存储;②通过对寄存器进行赋值操作实现对数据包的转移;③通过USB 接口与上位机进行通信,包括数据包的上传和接收上位机的命令。网络侦听程序流程设计如图5 所示。

Fig.5 Flow of listening program图5 侦听程序流程

1.3.3 上位机软件

上位机软件是无线传感器网络测试系统数据处理中心的终端,实现用户对测试平台USB 设备工作状态的控制,显示下位机(包括调试和射频模块)采集到的数据(包括所监控的电流值和捕获的RF 数据包)以及对数据的存储和解析等功能,并能查询历史数据。

根据通信设备和功能不同,将上位机软件分成两个窗体:

(1)CC2511 Current Monitor 窗体。显示和保存调试模块的测得电流值并对调试模块工作状态进行控制。如图6所示,窗口界面上方主要实现主机与USB 设备间进行通信之前的一些初始化操作,包括主机对USB 设备的识别、USB设备的数据传输通道选择以及数据通道的打开和关闭。窗口界面中间灰色部分主要实现USB 设备相关参数选择和工作方式设定,包括测量频率、读取电流值的启动和停止[18]。

Fig.6 CC2511 current monitor form图6 CC2511 Current monitor 窗体

(2)CC2531 Packet Sniffer 窗体。用来实现与节点底板上的射频模块交互,显示和保存射频模块捕获的RF 数据包并提供用户对射频模块工作状态的控制。实现主机与USB设备间进行通信之前的初始化操作,包括主机对USB 设备的识别、USB 设备的数据传输通道选择以及数据通道的打开和关闭。如图7 所示,窗口界面中间灰色部分主要是USB 设备相关参数及工作方式设定,包括信道的选择、通信协议的选择、接收方式、数据的显示方式以及是否写入文件,这些参数都需要在打开USB 设备后才能设置。信道可以任选16 个信道其中一个,数据包接收方式可以设置连续接收或手动点击读数据按钮接收,通常为了操作方便和确保数据的实时性而设置连续接收。若想保存接收到的数据,可以选择写入文件复选框,设置文件路径将数据写入文件。数据分析栏显示接收到的数据包信息。

Fig.7 CC2511packet sniffer form图7 CC2531 packet sniffer 窗体

2 实验结果与分析

2.1 监测电流实验

监测电流实验是为了评估测试平台系统中监控射频模块工作电流的功能,此实验不仅可以评价调试模块和节点底板硬件设计的合理性与可靠性,而且可以验证调试模块电流监测程序和上位机软件设计是否有效,以及电流测量系统的准确度。实验测量范围为0~105mA,每隔10mA选取一个测量点,使用安捷伦B2901A 精密电源设备,该设备作为电流源直接与电流监测电路串联,可以设定精准的电流值[19]。

实验数据如表1 所示,误差为电流测量值和电流实际值的差。

Table 1 Monitoring circuit test measurement value表1 监测电路实验测量值 (mA)

从表1 可知,该实验平台测量电流值的最大绝对误差为0.22mA,表明该电流监测系统的最大引用误差为0.21%,满足测试平台对测量准确度要求,验证了WSN 测试平台中调试模块、节点底板硬件设计、电流监测模块以及上位机设计的有效性。

2.2 侦听网络实验

侦听网络实验主要是评估WSN 测试平台系统侦听节点的功能,此实验不但可以评价射频模块和节点底板硬件设计的合理性与可靠性,而且可以验证射频模块侦听程序及上位机软件设计是否有效,实验结果能客观反映侦听节点是否能够捕获网络中所有的数据包。

在实验中布置一个无线传感器节点以一定时间间隔广播发送RF 数据包,用本文所设计的侦听节点去捕获广播的RF 数据包,观察上位机界面数据包的捕获情况。同时,用CC2531 USB Dongle 设备去捕获广播的RF 数据包,启动TI 官方Smart Packet Sniffer 软件开始侦听,观察数据包捕获情况[20]。将两个设备的数据包捕获情况做比较进行分析,最后得出实验结论。上位机CC2531 Packet Sniffer 在实验前设定相关参数,数据分析栏显示捕获的数据包,实验结果如图8 所示。3 次实验分别收到113、105 和124 个数据包,如表2 所示。其中数据包长度为20,PANID 为0x0001,广播节点源ID 为0x19fa,目的ID 0xffff 表示该数据包为广播数据包,无须应答,MAC 负载中第5 个字节为广播数据包计数值,其他字节内容与本实验无关,本实验所有数据包无网络层负载。

Fig.8 Data packets captured by the test bed图8 测试平台捕获的数据包

三次实验过程中分别收到113、105 和125 个数据包,如表2 所示。

Table 2 Comparative data of network listening experiments表2 网络侦听对比实验数据

在CC2531 射频模块捕获数据包的同时,CC USB Dongle 设备也在侦听网络,Smart Packet Sniffer 软件显示其捕获的数据包[21],实验结果如图9 所示。观察表2 并比较图8和图9 可以发现,两个设备捕获的数据包基本一致。实验结果表明所设计的侦听节点捕获了WSN 网络中所有的数据包,验证了WSN 测试平台侦听网络功能、射频模块以及上位机CC2531 Packet Sniffe 的有效性。

本文设计的WSN 测试平台可以模块化构建WSN 系统3 种不同节点(网关节点、侦听节点、传感器节点),USB 延长器设计可使各节点与PC 的通信不受距离影响,更方便地布置WSN 节点。实验表明,系统中加入电流监测模块使得测量硬件平台中各类节点的射频模块电流和功耗变得十分简单,大大提高了实验数据的可靠性。所设计的侦听节点、侦听程序以及上位机软件还具有捕获网络中所有数据包并显示网络数据的性能,保证了WSN 测试平台数据传输的可靠性和稳定性。

Fig.9 Data packets captured by CC USB Dongle图9 CC USB Dongle 捕获的数据包

3 结语

针对无线传感器网络特点,结合无线传感器网络研究现状及对WSN 测试平台需求,本文提出了一种WSN 测试平台系统设计方案。实验结果表明,电流测量系统的最大引用误差为0.21%,能很好地满足测试平台对测量精度的需求。比较两个设备侦听网络的实验数据,验证了测试平台侦听网络功能的有效性,该WSN 测试平台能够进行WSN 通信协议和低功耗研究。但目前设计的软件只支持监测电流和侦听网络功能,后续要进一步开发软硬件以支持更多测试平台功能。

猜你喜欢

数据包射频无线
5G OTA射频测试系统
《无线互联科技》征稿词(2021)
关于射频前端芯片研发与管理模式的思考
无线追踪3
基于ARM的无线WiFi插排的设计
SmartSniff
ADF7021-N在无线寻呼发射系统中的应用
ALLESS转动天线射频旋转维护与改造
腹腔镜射频消融治疗肝血管瘤
基于Libpcap的网络数据包捕获器的设计与实现