论文部分内容阅读
摘 要:本文的目的是为了测试采用ZigBee协议开发的设备或者产品是否符合ZigBee协议标准,从而达到实现之间的一致性与互通性。为此,设计了一个ZigBee网络测试与验证平台,通过对接入ZigBee网络的测试节点的属性数据检测,来完成ZigBee协议的测试工作。
关键词:ZigBee;一致性与互通性;ZigBee协议;测试节点
中图分类号:TP311.52
2007年,ZigBee联盟宣布了认证计划。为了确保ZigBee[1]产品的可靠性以及在无线组网中工作的稳定性,ZigBee联盟负责实施、管理了认证测试。每一个产品都基于公共应用规范,以保证各个设备制造商的产品之间的互操作性。目前,全球只有三家实验室为ZigBee联盟指定的完整测试服务授权厂商[2]。国内还没有一个广受认可的官方ZigBee测试规范。因此,就需要一个测试规范来检测ZigBee设备是否达到ZigBee协议标准。
1 系统设计
该平台是一个专门用于测试一个采用ZigBee协议标准开发的ZigBee设备是否符合ZigBee协议标准,是为了保证ZigBee设备的一致性、互通性。平台由ZigBee测试节点、以太网、ZigBee网络和PC机控制端组成。
硬件方面,ZigBee节点的主要功能是采集和上传数据,完成数据从ZigBee协议环境下到TCP/IP协议环境下的转换,并且能在无人看管的条件下长期运行。软件方面,应具备如下功能:准确地接收节点上传的数据,进行实时的显示、存储并可随时查看历史数据,通过对数据的修改和反馈,达到验证ZigBee节点是否符合ZigBee协议标准的目的。当对ZigBee测试节点进行测试时,测试节点能自动加入协调器节点发起的网络,将节点各层属性数据上传至协调器节点,当传输距离超过一跳传输距离时,数据以多跳方式传输,触发协调器节点执行数据接收程序,该程序模块通过调用函数将接收到的数据解析成TCP/IP协议下的数据,对数据处理后,使用Socket网络编程,将数据上传至计算机软件,软件调用合适的函数对接收到的数据包进行解析,将数据实时的显示在软件界面中,采用合适的方法,完成对该节点的测试与验证。该测试平台的系统架构图如图1所示。
1.1 ZigBee网络硬件组成
一个ZigBee网络的硬件组成包含ZigBee协调器节点、路由器节点以及终端节点三种,ZigBee网络中的设备分为全功能设备(FFD)和半功能设备(RFD)。其中,FFD设备可提供全部的IEEE 802.15.4的MAC层服务,可充当ZigBee网络中的任何设备,因为FFD设备不仅可以发送和接收数据,还具备路由转发数据的功能;而RFD设备只提供部分的IEEE 802.15.4 MAC层服务,因此只能充当终端节点,而不能充当协调器节点和路由节点,因此它只负责将自身的属性数据发送给协调器节点和路由节点,并不具备数据转发、路由发现和路由维护等功能。
整个节点硬件电路主要包括射频模块、电源模块、传感器、嵌入式控制器和时钟五个部分组成。ZigBee网络测试节点采用了以ATmega128为核心控制模块,以CC2530芯片为无线收发模块的设计方法[3],ATmega128与CC2530芯片是通过SPI方式进行相互之间的通讯的,ATmega128采用主模式,CC2530采用从模式。电源采用连接式电源。时钟电路主要是采用ATmega128晶振来产生同步信号,从而实现射频模块与处理器之间的同步。
在节点上由ATmega128为主控芯片及其外围芯片及电路组成的数据转换设备,完成ZigBee协议数据到以太网TCP/IP协议数据的转换。图2为实际开发节点实物图。
1.2 系统软件设计
软件设计方面包括硬件节点的软件设计和PC机端的软件设计。
1.2.1 协调器软件设计
协调器软件设计功能主要为:(1)创建并维护ZigBee网络,实现对ZigBee网络的创建,维护节点加入和退出时的网络拓扑结构。(2)接收PC机服务器端发送来的控制指令,并将其通过ZigBee网络发送给各路由器节点和终端节点。(3)将ZigBee网络区域的节点的各层属性数据经过处理和融合,最后通过ZigBee模块发送给PC机服务器端。
1.2.2 路由器节点和终端节点软件设计
终端节点的作用是采集数据,路由器除了采集数据以外还负责建立数据路由,其主要功能如下:(1)通过扫描可用信道寻找可用网络,如果存在可用网络,则终端节点/路由器节点就开始请求加入到网络中,当成功加入网络后,终端节点/路由器节点便开始向目标服务器发送自身的各层属性数据。(2)采用中断方式,接收由ZigBee网络协调器发送过来的命令,并对命令进行判断,如果命令被判断为控制命令,终端节点/路由器节点则根据命令帧收发数据,如果命令是修改命令,则根据命令,终端节点/路由器节点完成对对应属性值的修改。
1.2.3 服务器软件设计
该平台软件是以Windows XP为操作系统,采用C++语言,选用Visual Studio 2010程序开发工具以及MFC对界面程序及其它应用程序的设计[4]。软件界面如图3所示。
PC机软件主要包含四个模块:(1)网络通信模块,对整个ZigBee网络进行监听;(2)数据处理模块,解析ZigBee网络协议,接收网络中的节点数据包,分析数据包中的数据,对解析好的数据进行分类;(3)数据显示模块,在软件中显示接收的各节点IP地址及TCP/IP模型各层数据;(4)验证模块,ZigBee节点接收服务器的修改命令,对节点属性进行修改和反馈。
(1)网络通信模块。为完成PC机软件端对整个ZigBee网络进行监听,ZigBee测试节点采用TCP/IP协议的Socket编程与服务器端建立连接,使用了IO完成端口(Completion Port)网络通信模型。实现TCP/IP协议通信所采用的临时端口号为10012。 (2)数据处理模块。与服务器端建立连接后,采用函数inet_ntoa()将一个32位数字表示的IP地址转换成点分十进制IP地址字符串,存入名为IPAddressForTreeCtrl的Vector全局容器中,以方便测试过程中更好地对IP地址查看和使用。当各个ZigBee节点的各层属性数据通过以太网传送到数据中心之后,数据中心的程序动态新建一个CNode类对象,并将接收到的数据存入Vector容器中,以便以后对数据进行分析处理,将处理后的数据实时显示在软件界面中。
(3)数据显示模块。数据显示模块一方面显示节点网络IP地址,另一方面显示节点各层的属性值。节点网络IP地址显示在界面中的网内节点列表栏中,是通过PC软件端对节点发送来的数据帧进行解析实现的,通过解析后可以得知各节点分别对应的三种设备类型:协调器节点、路由器节点和终端设备节点,然后分别显示在树控件对应的根结点下。
经过处理后的各节点的属性数据全部显示在界面中间部分的Tab控件中,通过解析数据帧,将数据分别显示在基本属性、APS层属性、NWK层属性、MAC层属性和PHY层属性五个子页面中。每个子界面中包括各层中的一些主要属性的属性名、获取的属性值以及一个确定按钮,属性值的获取采用实时更新。
1.3 数据分析与验证模块
该模块是通过对数据显示模块中的一些不符合ZigBee协议标准的属性参数进行修改,向节点发送修改数据包,通过接收节点的修改反馈,来完成验证工作,检验一个ZigBee测试节点能否适应所在的符合ZigBee协议标准的ZigBee网络。
2 测试方法
目前,协议测试一般包含一致性测试(Conformance Testing)、互操作性测试(Interoperability Testing)以及性能测试(Performance Testing)[2]。一致性测试是检测协议实现和协议描述的一致与否,互操作性测试检测一个协议规范的不同实现之间的互通性和互操作性,性能测试是检测一个协议的实现的性能是否满足要求,包括数据传输速率、吞吐率、响应时间等指标。一致性测试是其他测试的基础。
协议测试的目的就是保证协议栈软件对协议标准的正确实现以及符合协议的不同厂商的设备能够正常通信[5]。
该平台选用一致性测试来完成ZigBee测试节点测试工作。测试步骤如下:
(1)搭建一个符合ZigBee协议标准的ZigBee网络,采用有线的方式接入PC机远程控制端所在的以太网中,如下图5所示。
(2)在Windows的平台下,借助于Visual Studio 2010开发工具基于VC++完成PC机远程控制端的软件设计,采用IOCP(IO完成端口)技术实现ZigBee网络中的节点与服务器通信[6],管理测试过程;
(3)当ZigBee测试节点加入自组的ZigBee网络时,采用有线的方式连入以太网中,完成与PC机远程控制端的通信,依照协议定义的数据格式开始向PC机端发送数据包;PC机端接收到数据包后,依照协议解析数据包,将解析出来节点各层属性参数,显示在PC机控制端的界面中,观察节点的属性参数是否满足ZigBee协议标准参数指标,来分析测试结果;
(4)参照ZigBee协议标准参数指标,对测试节点中不符合ZigBee协议标准的属性参数进行修改,观察测试节点属性参数的修改状况,通过对测试节点属性参数的修改,确认该测试节点能否适应该ZigBee网络,来分析测试结果。
预测结果:软件控制端提取各层属性数据,显示在界面上,查看参数是否满足各个属性指标。若满足该属性指标,则该节点符合ZigBee协议标准;若不满足该参数指标,则对该节点属性值进行修改测试,参照ZigBee协议标准参数指标,对ZigBee节点属性值进行修改,若修改成功,节点还能适应该ZigBee网络,在网络中正常运行,则该节点符合ZigBee协议标准;若修改失败,则该节点不符合ZigBee协议标准。
3 结束语
ZigBee 技术以其低功耗、低成本、低复杂度、低速率的特点,在物联网发展中得到了广泛的应用,比如,在智能家居、楼宇自动化、工业监控领域具备都有着广阔的市场[7]。致使以ZigBee技术为基础的无线传感网的研究,在国内外的学术界以及产业界都开始蓬勃的发展。这意味着一个ZigBee测试认证对其相关产品而言至关重要。
参考文献:
[1]凌志浩,周怡颋,郑丽国.ZigBee无线通信技术及其应用研究[J].华东理工大学学报,2006(07):801-805.
[2]卓兰.ZigBee 技术及测试认证综述.中国电子技术标准化研究所,2012.
[3]江华丽,蔡暑.基于ATmega128L的ZigBee节点硬件设计与实现[J].电子测量技术,2011(4):33-35.DOI:10.3969/j.issn.1002-7300.2011.04.010.
[4]孙鑫.VC++深入详解[M].北京:电子工业出版社,2006.
[5]刘宝锺,徐欣.ZigBee协议测试平台建设分析,2012.
[6]汪晓平.Visual C++网络通信协议分析与应用实现[M].北京:人民邮电出版社,2003.
[7]秦霆镐,豆晓强,黄文彬.ZigBee技术在无线传感器网络中的应用[J].仪表技术,2007.
作者简介:申二星(1988-),男,河南焦作人,硕士研究生,主要研究方向为物联网技术;李祥攀(1985-),男,山东菏泽人,硕士研究生;许期长(1989-),男,重庆梁平人,硕士研究生,主要研究方向为物联网技术。
作者单位:重庆邮电大学 宽带泛在接入技术研究所,重庆 400065
关键词:ZigBee;一致性与互通性;ZigBee协议;测试节点
中图分类号:TP311.52
2007年,ZigBee联盟宣布了认证计划。为了确保ZigBee[1]产品的可靠性以及在无线组网中工作的稳定性,ZigBee联盟负责实施、管理了认证测试。每一个产品都基于公共应用规范,以保证各个设备制造商的产品之间的互操作性。目前,全球只有三家实验室为ZigBee联盟指定的完整测试服务授权厂商[2]。国内还没有一个广受认可的官方ZigBee测试规范。因此,就需要一个测试规范来检测ZigBee设备是否达到ZigBee协议标准。
1 系统设计
该平台是一个专门用于测试一个采用ZigBee协议标准开发的ZigBee设备是否符合ZigBee协议标准,是为了保证ZigBee设备的一致性、互通性。平台由ZigBee测试节点、以太网、ZigBee网络和PC机控制端组成。
硬件方面,ZigBee节点的主要功能是采集和上传数据,完成数据从ZigBee协议环境下到TCP/IP协议环境下的转换,并且能在无人看管的条件下长期运行。软件方面,应具备如下功能:准确地接收节点上传的数据,进行实时的显示、存储并可随时查看历史数据,通过对数据的修改和反馈,达到验证ZigBee节点是否符合ZigBee协议标准的目的。当对ZigBee测试节点进行测试时,测试节点能自动加入协调器节点发起的网络,将节点各层属性数据上传至协调器节点,当传输距离超过一跳传输距离时,数据以多跳方式传输,触发协调器节点执行数据接收程序,该程序模块通过调用函数将接收到的数据解析成TCP/IP协议下的数据,对数据处理后,使用Socket网络编程,将数据上传至计算机软件,软件调用合适的函数对接收到的数据包进行解析,将数据实时的显示在软件界面中,采用合适的方法,完成对该节点的测试与验证。该测试平台的系统架构图如图1所示。
1.1 ZigBee网络硬件组成
一个ZigBee网络的硬件组成包含ZigBee协调器节点、路由器节点以及终端节点三种,ZigBee网络中的设备分为全功能设备(FFD)和半功能设备(RFD)。其中,FFD设备可提供全部的IEEE 802.15.4的MAC层服务,可充当ZigBee网络中的任何设备,因为FFD设备不仅可以发送和接收数据,还具备路由转发数据的功能;而RFD设备只提供部分的IEEE 802.15.4 MAC层服务,因此只能充当终端节点,而不能充当协调器节点和路由节点,因此它只负责将自身的属性数据发送给协调器节点和路由节点,并不具备数据转发、路由发现和路由维护等功能。
整个节点硬件电路主要包括射频模块、电源模块、传感器、嵌入式控制器和时钟五个部分组成。ZigBee网络测试节点采用了以ATmega128为核心控制模块,以CC2530芯片为无线收发模块的设计方法[3],ATmega128与CC2530芯片是通过SPI方式进行相互之间的通讯的,ATmega128采用主模式,CC2530采用从模式。电源采用连接式电源。时钟电路主要是采用ATmega128晶振来产生同步信号,从而实现射频模块与处理器之间的同步。
在节点上由ATmega128为主控芯片及其外围芯片及电路组成的数据转换设备,完成ZigBee协议数据到以太网TCP/IP协议数据的转换。图2为实际开发节点实物图。
1.2 系统软件设计
软件设计方面包括硬件节点的软件设计和PC机端的软件设计。
1.2.1 协调器软件设计
协调器软件设计功能主要为:(1)创建并维护ZigBee网络,实现对ZigBee网络的创建,维护节点加入和退出时的网络拓扑结构。(2)接收PC机服务器端发送来的控制指令,并将其通过ZigBee网络发送给各路由器节点和终端节点。(3)将ZigBee网络区域的节点的各层属性数据经过处理和融合,最后通过ZigBee模块发送给PC机服务器端。
1.2.2 路由器节点和终端节点软件设计
终端节点的作用是采集数据,路由器除了采集数据以外还负责建立数据路由,其主要功能如下:(1)通过扫描可用信道寻找可用网络,如果存在可用网络,则终端节点/路由器节点就开始请求加入到网络中,当成功加入网络后,终端节点/路由器节点便开始向目标服务器发送自身的各层属性数据。(2)采用中断方式,接收由ZigBee网络协调器发送过来的命令,并对命令进行判断,如果命令被判断为控制命令,终端节点/路由器节点则根据命令帧收发数据,如果命令是修改命令,则根据命令,终端节点/路由器节点完成对对应属性值的修改。
1.2.3 服务器软件设计
该平台软件是以Windows XP为操作系统,采用C++语言,选用Visual Studio 2010程序开发工具以及MFC对界面程序及其它应用程序的设计[4]。软件界面如图3所示。
PC机软件主要包含四个模块:(1)网络通信模块,对整个ZigBee网络进行监听;(2)数据处理模块,解析ZigBee网络协议,接收网络中的节点数据包,分析数据包中的数据,对解析好的数据进行分类;(3)数据显示模块,在软件中显示接收的各节点IP地址及TCP/IP模型各层数据;(4)验证模块,ZigBee节点接收服务器的修改命令,对节点属性进行修改和反馈。
(1)网络通信模块。为完成PC机软件端对整个ZigBee网络进行监听,ZigBee测试节点采用TCP/IP协议的Socket编程与服务器端建立连接,使用了IO完成端口(Completion Port)网络通信模型。实现TCP/IP协议通信所采用的临时端口号为10012。 (2)数据处理模块。与服务器端建立连接后,采用函数inet_ntoa()将一个32位数字表示的IP地址转换成点分十进制IP地址字符串,存入名为IPAddressForTreeCtrl的Vector全局容器中,以方便测试过程中更好地对IP地址查看和使用。当各个ZigBee节点的各层属性数据通过以太网传送到数据中心之后,数据中心的程序动态新建一个CNode类对象,并将接收到的数据存入Vector容器中,以便以后对数据进行分析处理,将处理后的数据实时显示在软件界面中。
(3)数据显示模块。数据显示模块一方面显示节点网络IP地址,另一方面显示节点各层的属性值。节点网络IP地址显示在界面中的网内节点列表栏中,是通过PC软件端对节点发送来的数据帧进行解析实现的,通过解析后可以得知各节点分别对应的三种设备类型:协调器节点、路由器节点和终端设备节点,然后分别显示在树控件对应的根结点下。
经过处理后的各节点的属性数据全部显示在界面中间部分的Tab控件中,通过解析数据帧,将数据分别显示在基本属性、APS层属性、NWK层属性、MAC层属性和PHY层属性五个子页面中。每个子界面中包括各层中的一些主要属性的属性名、获取的属性值以及一个确定按钮,属性值的获取采用实时更新。
1.3 数据分析与验证模块
该模块是通过对数据显示模块中的一些不符合ZigBee协议标准的属性参数进行修改,向节点发送修改数据包,通过接收节点的修改反馈,来完成验证工作,检验一个ZigBee测试节点能否适应所在的符合ZigBee协议标准的ZigBee网络。
2 测试方法
目前,协议测试一般包含一致性测试(Conformance Testing)、互操作性测试(Interoperability Testing)以及性能测试(Performance Testing)[2]。一致性测试是检测协议实现和协议描述的一致与否,互操作性测试检测一个协议规范的不同实现之间的互通性和互操作性,性能测试是检测一个协议的实现的性能是否满足要求,包括数据传输速率、吞吐率、响应时间等指标。一致性测试是其他测试的基础。
协议测试的目的就是保证协议栈软件对协议标准的正确实现以及符合协议的不同厂商的设备能够正常通信[5]。
该平台选用一致性测试来完成ZigBee测试节点测试工作。测试步骤如下:
(1)搭建一个符合ZigBee协议标准的ZigBee网络,采用有线的方式接入PC机远程控制端所在的以太网中,如下图5所示。
(2)在Windows的平台下,借助于Visual Studio 2010开发工具基于VC++完成PC机远程控制端的软件设计,采用IOCP(IO完成端口)技术实现ZigBee网络中的节点与服务器通信[6],管理测试过程;
(3)当ZigBee测试节点加入自组的ZigBee网络时,采用有线的方式连入以太网中,完成与PC机远程控制端的通信,依照协议定义的数据格式开始向PC机端发送数据包;PC机端接收到数据包后,依照协议解析数据包,将解析出来节点各层属性参数,显示在PC机控制端的界面中,观察节点的属性参数是否满足ZigBee协议标准参数指标,来分析测试结果;
(4)参照ZigBee协议标准参数指标,对测试节点中不符合ZigBee协议标准的属性参数进行修改,观察测试节点属性参数的修改状况,通过对测试节点属性参数的修改,确认该测试节点能否适应该ZigBee网络,来分析测试结果。
预测结果:软件控制端提取各层属性数据,显示在界面上,查看参数是否满足各个属性指标。若满足该属性指标,则该节点符合ZigBee协议标准;若不满足该参数指标,则对该节点属性值进行修改测试,参照ZigBee协议标准参数指标,对ZigBee节点属性值进行修改,若修改成功,节点还能适应该ZigBee网络,在网络中正常运行,则该节点符合ZigBee协议标准;若修改失败,则该节点不符合ZigBee协议标准。
3 结束语
ZigBee 技术以其低功耗、低成本、低复杂度、低速率的特点,在物联网发展中得到了广泛的应用,比如,在智能家居、楼宇自动化、工业监控领域具备都有着广阔的市场[7]。致使以ZigBee技术为基础的无线传感网的研究,在国内外的学术界以及产业界都开始蓬勃的发展。这意味着一个ZigBee测试认证对其相关产品而言至关重要。
参考文献:
[1]凌志浩,周怡颋,郑丽国.ZigBee无线通信技术及其应用研究[J].华东理工大学学报,2006(07):801-805.
[2]卓兰.ZigBee 技术及测试认证综述.中国电子技术标准化研究所,2012.
[3]江华丽,蔡暑.基于ATmega128L的ZigBee节点硬件设计与实现[J].电子测量技术,2011(4):33-35.DOI:10.3969/j.issn.1002-7300.2011.04.010.
[4]孙鑫.VC++深入详解[M].北京:电子工业出版社,2006.
[5]刘宝锺,徐欣.ZigBee协议测试平台建设分析,2012.
[6]汪晓平.Visual C++网络通信协议分析与应用实现[M].北京:人民邮电出版社,2003.
[7]秦霆镐,豆晓强,黄文彬.ZigBee技术在无线传感器网络中的应用[J].仪表技术,2007.
作者简介:申二星(1988-),男,河南焦作人,硕士研究生,主要研究方向为物联网技术;李祥攀(1985-),男,山东菏泽人,硕士研究生;许期长(1989-),男,重庆梁平人,硕士研究生,主要研究方向为物联网技术。
作者单位:重庆邮电大学 宽带泛在接入技术研究所,重庆 400065