全国服务热线:40000-63966 18937659226

技术支持 PRODUCT DISPLAY

基于ZigBee的无线传感网络与互联网关的接入方式

来源: 发布时间:2020-11-04 1963 次浏览

物联网(IOT ,Internet of things)是继互联网后又一次技术的革新,代表着未来计算

ZigBee协议栈与无线传感网络的技术要点

无线传感网络(Wireless Sensor Networks, WSN)是一种技术集成度高,涉及多种前沿科学技术的信息采集变换,组网传送,融合处理,反馈调节的多信息综合采集与组网应用系统。在当前的国际信息产业界和技术研究领域里都受到广泛关注。无线传感网络由多个静止或移动的传感器以自组织和多跳的方式构成的无线网络,以协作地感知、采集、处理和传输网络覆盖地理区域内被感知对象的信息,并最终把这些信息发送给网络所有者。无线传感络并不需要较高的带宽,但是需要较低的传输延时和极低的功率消耗并且可以使用户拥有较长的电池寿命和较多的器件阵列。而ZigBee的出现正好解决了这一问题,ZigBee有着高通信效率、低复杂度、低功耗、低速率、低成本、高安全性以及全数字化等诸多优点。这些优点使得ZigBee与无线传感网络完美的结合在一起。以下将对ZigBee协议栈加以说明。

  ZigBee协议栈结构由一些层构成,每个层都有一套特定的服务方法(协议)和上一层连接。数据实体(data entity)提供数据的传输服务,而管理实体(management entity)提供所有的服务类型。每个层的服务实体通过服务接入点(SAP ,service access point)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。ZigBee协议栈基于标准的OSI七层模型,但只是在相关范围来定义一些相应层来完成特定的任务。IEEE802.15.4-2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。ZigBee联盟在此基础上建立了网络层(NWK层)以及应用层(APL层)的框架(framework)。APL层又包括应用支持子层(APS ,application support sub-layer),ZigBee的设备对象(ZDO ,zigbee device object)以及制造商定义的应用对象。ZigBee技术的整体协议架构如下图1所示。


IEEE802.15.4标准定义了物理层(PHY层)和媒介层(MAC层)。物理层是协议的更底层,承担着与外界直接作用的任务,它采用扩频通信调制方式,由图1可以看到这里定义了两个频率的物理层,这两个频率段分别为868/915MHz和2.4GHz。MAC层负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收,可选时隙,实现低延迟传输,支持各种网络拓扑结构,网络中每个设备为16位地址寻址。它可完成对无线物理信道的接入过程管理,包括以下几方面:网络协调器(coordinator)产生网络信标、网络中设备与网络信标同步、完成PAN的入网和脱离网络过程、网络安全控制、利用CSMA-CA机制进行信道接入控制、处理和维持GTS(Guaranteed Time Slot)机制、在两个对等的MAC实体间提供可靠的链路连接。

ZigBee又在以上两层的基础上提出了网络层和应用层。网络层主要负责建立新的网络、处理节点的进入和离开网络、根据网络类型设置节点的协议堆栈、使网络协调器对节点分配地址、保证节点之间的同步、提供网络的路由。网络层确保MAC子层的正确操作,并为应用层提供合适的服务接口。为了给应用层提供合适的接口,网络层用数据服务和管理服务这两个服务实体来提供必需的功能。网络层数据实体(NLDE)通过相关的服务接入点(SAP)来提供数据传输服务,即NLDE.SAP;网络层管理实体(NLME)通过相关的服务接入点(SAP)来提供管理服务,即NLME.SAP。NLME利用NLDE来完成一些管理任务和维护管理对象的数据库,通常称作网络信息库(Network Information Base,NIB)。应用层主要根据具体应用由用户开发。它维持器件的功能属性,发现该器件工作空间中其他器件的工作,并根据服务和需求在多个器件之间进行通信。应用层由应用支持子层(APS )、设备对象(ZDO,包括ZDO管理平台)以及制造商定义的应用设备对象组成。APS子层的作用包括维护绑定表(绑定表的作用是基于两个设备的服务和需要把它们绑定在一起)、在绑定设备间传输信息。ZDO的作用包括在网络中定义一个设备的作用(如定义设备为协调者或为路由器或为终端设备)、发现网络中的设备并确定它们能提供何种服务、起始或回应绑定需求以及在网络设备中建立一个安全的连接。 

2.2 TCP/IP协议与互联网络通信方式

对于互联网而言,其传输控制与因特网互联规则也就是TCP/IP协议是Internet最基本的协议。它由网络层的IP协议和传输层的TCP协议组成,此协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。可以这样说,TCP负责发现传输的问题,一旦发现有问题就会要求重新传输,直到所有的数据安全正确的传输到目的地,而IP是给了因特网的每一台电脑规定了一个地址。

TCP/IP协议由链路层、网络层、传输层以及应用层这四层组成。对于此协议的熟知程度,具体的每层协议的功能在这里将不进行详细的说明。而网关作为在传输层以上工作的,为了深入的了解此文所提出来的网关接入模式,在此将对传输层以上进行一些分析说明。传输层提供应用程序之间的通信。其功能包括:格式化信息流和提供可靠传输,为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,从而提供可靠的数据传输。而传输层的协议主要是:TCP和UDP协议。在本文所提出的的网络传输由于速率因素,我们在此采用TCP传输。在TCP传输过程中,数据从应用层到传输层,数据的报头是TCP报头,然后下到网络层,数据在之前的TCP报头前在加上IP报头,IP报头中有目标IP和源IP,然后到数据链路层后又在上层的数据中加上首部和尾部,然后经过物理层传输到目的地,经过路由器分析目标IP然后查找路由表在进行转发,来到目标计算机然后从物理层开始解封装,然后一层一层向上传输。而在此文中所涉及到的传输过程,就从应用层到传输层,数据带有TCP报头就进入网关进行协议的转换,解封装后从新封装从而传到ZigBee的应用层。

无线传感网络接入互联网络的网关模式分析

本文所提出的无线传感网络接入Internet网的网关接入模式的基本构架如图2所示。

在此基本结构模式中,我们主要对数据从ZigBee进入网关以及数据从网关到互联网进行分析。在此,数据由ZigBee进入网关采用串行传输的通信方式。ZigBee各个节点把收集的数据送到协调器,在经由协调器交给应用层,应用层通过调用串口API发到网关。网关将Internet发送来的数据进行解封装通过串口交给协调器,协调器再将数据封装,加上ZigBee的短地址发送出去。这样就实现了从ZigBee到网关的双向数据传输。网关到互联网的传输在此文中采用了以太网口传输,客户端与服务器模式的网络通信结构,并用Windows Socket网络编程实现,这样就完成了从网关到互联网的数据传输。因此,在这里我们通过此网关把基于ZigBee的无线传感网络与互联网连接起来,从而使得可以通过互联网时时控制物理世界,可以根据我们的需要对所有的节点进行控制及管理。



3.1 ZigBee模块与互联网关的通信模式

对于星形的ZigBee网络拓扑结构,所有的节点都跟协调器交互,因此要实现ZigBee网络与网关的通信,可以通过协调器跟网关通信。在本文中采用了协调器与网关通过串口进行连接。串口通信具有成本低、传输质量可靠、全双工等特点,满足嵌入式简化设备的需求,因此网关的ZigBee网络通信模块采用串口实现。

在协调器和网关之间我们采用异步串口通信方式,并且双方采用中断方式进行数据的发送和接收。由发送端向接收端发送请求是否可以发送数据命令,之后接收端收到请求命令后给发送端返回一个命令数据,发送端根据接收端发回的命令进行判断是否可以现在就开始传输数据。在每一次数据传输完毕之后,发送端都要进行新一轮的上述过程进行下一个数据包的传输,知道所有的数据传输完毕即可。

ZigBee协调器接收到其他节点发来的数据之后,就会产生一个事件,告知应用层,应用层调用相关函数进行接收,该函数返回一个类型的结构体。该结构体包括了源地址、网络地址、地址类型等相关信息。这样,在传输过程采用中断方式,当接收到一个字节后就会进入中断,从而调用接收函数进行所有数据的接收工作。而当网关接收到因特网传来的数据之后就按照所需数据的格式进行打包,保存在事先设置好的变量里。当检测到此变量非空的时候,就会跟协调器交互后发送数据。当协调器中的任务检测到有数据来的时候,就会和协调器交互后以判断对方是否真的要发送数据,然后就进行数据的接收。这样就简单的完成了协调器和网关之间的通信,完成了数据的交换,实现了从ZigBee的无线传感器网络到网关的通信。

3.2 物联网与Internet的网关接入方式

本研究报告主要采用以太网口,客户端与服务器结构的网络通信,并把网关作为服务器。采用Windows Socket编程来实现此网络传输。在此我们使用套接字I/O模型的Select模型,这样有利于对应用程序通过异步方式同时对一个或多个套接字通信加以管理。如图3所示,描述了Select模型的工作方式。在调用recv()函数接收数据之前,先调用select()函数,如果此时没有可读数据,select()函数就先阻塞在这里。当系统有了可读数据,该函数返回。这个时候应用程序就可以调用recv()函数接收数据了。网络编程选择好后就在下面具体分析客户端与服务器的相连接。


首先要初始化套接字集合,然后将套接字分配给参与操作的套接字集合之后通过调用select函数等待函数的返回,若成功返回后则对每个套接字集合进行检查,若是宏值为ture则说明此套接字可读,最后就可以通过Socket API进行数据接收和发送。接下来分析下网关(服务器)上应用流程。Select函数监听套接字是否在可读集合中,若存在,则说明客户端有连接请求,调用accept()函数接受该客户端的请求,并将新建接受套接字加入服务器套接字集合然后便利服务器套接字集合分别判断每个套接字是否可读可写。若可读,则调用输入函数读入数据,若可写,则调用输出函数发送数据。对于客户端,首先要判断是否可写套接字,若是存在就调用connect()函数请求连接,之后检查每一个套接字的可读可写性。若可读,则调用输入函数读入数据,若可写,则调用输出函数发送数据。这样就在服务器客户端两端分别完成了数据的传输,用此模式的网络编程实现了网关与PC的有效数据传输。也就是实现了网关到Internet的传输。通过此网关可以实现ZigBee无线传感器网络与因特网的互联,实现物联网系统在更广泛领域里的拓展应用。

结束语

随着物联网络技术的发展和在更加广泛领域里的应用,ZigBee无线传感网络及其拓展接入技术变得日益更要。本文针对ZigBee无线传感网络接入互联网的模式进行了分析和研究,并就其方法进行了归纳阐述。无线传感网络技术与多传感器技术及因特网领域相结合,有着十分广泛的发展和应用前景,将给社会的生产和生活方式带来空前的改变。这种基于ZigBee的无线传感网络与互联网关接入模式,为无线传感器网络的拓展应用方式提供了一种新的选择,在理论引导和实际应用方面具有重要意义。