基于ZIGBEE及TCP技术的物联网网关设计

2018-11-08 02:32张勇
电子制作 2018年20期
关键词:网络层网关联网

张勇

(黄冈职业技术学院,湖北黄冈,438002)

近些年来,无线传感器网络的发展非常迅速,多种传感设备在生活中的应用正变得越来越广泛。和以往的无线传输技术相比,传感器的节点有着结构简单、成本低的特征。但是,物联网中的ZigBee协议和互联网中的TCP/IP协议不兼容。现阶段,物联网领域正研究如何将ZigBee协议接入到TCP/IP协议中去,以便能通过互联网监控环境,管理好接入点。物联网网关是连接异构的重要设备,加强对网关技术的研究非常重要。

1 物联网发展及其网关设计技术

物联网这一发展概念于20世纪90年代提出,但是由于受到技术手段的多方面限制,并未形成系统化、生态化、产业化链接,在近十年才真正得以快速发展。在互联网信息技术基础之上,推动了物联网技术的延伸及逐步拓展,最终实现的技术目标,达到了全面化感知及智能化信息传输处理。物联网技术协议明显差异于传统互联网协议,传统互联网主要是基于TCP/IP协议构建形成。在物联网网络中则主要可以借助M2M协议,或者基于Zigbee协议完成网络信息节点之间的数据传输。不同数据传输达到了近距离、数据量较小,但是整体数据传输节点密度相对较高。绝大多数的物联网系统架构,并非所有物联网节点都需要实现以太网接入,通常是部分代理节点实现类似网关功能,实现了节点内部非TCP/IP协议转换,之后传输至远端服务器。远程服务器设备实现对来自物联网数据的存储、持久化分析及ETL,由于物联网单节点之间的信息量相对较小,但是普遍存在了较高的节点密度,需要代理阶段针对数据转发能力相对较好,具备较高可靠性,便于更加完整及时的接受相关节点数据。而针对智能化节点传输,每一个物联网传输网络节点,都可能作为一个数据传输发送节点,要求服务器设备能够更加可靠的接收到智能化终端数据,且实现了每一个不同数据的合理标定,避免出现数据信息混淆情况。

现阶段,物联网网关实现技术有多种。第一,是通过通道机制实现。接收到无线传感器数据时,不经解封就作为以太网载荷,加上TCP/IP的包头传输到IP网络主机上去。主机收到数据后,对其进行解析。这种通道机制实现技术有着一定的不足之处,因为数据中的一些内容并不是必要的,带来了带宽上的浪费。第二种方式是远程过程调用RPC方式[1]。使用REST或SOAP将待发送数据转换成XML格式发送。同样的,这种方式也会带来带宽的浪费。另外,物联网实现技术还有协议转换机制等方式。

2 物联网体系架构设计以及系统需求

■2.1 体系架构

物联网具有三个特征,一是全面感知功能,能使用RFID、传感器等获取到物体的信息。二是能实现电信网络融合互联网,将物体的信息准确及时的传送出去。三是能用大量的数据和信息作出处理,其中用到了大数据等多种先进技术。通常情况下,物联网被分成三个层次。由上到下分别是应用层、网络层、感知层。物联网感知层中有传感器、传感器网络等。感知层是物联网的基础部分,其中涉及到了RFID技术、控制技术和传感技术等[2]。感知层中主要采集数据的设备包括传感器、摄像头等。物联网中的网络层是建立在互联网基础上,通过接入多种设备实现和通讯网和互联网的连接。网络层的功能非常多,如信息存储查询,实施网络管理等。物联网是以数据为中心网络层中心,网络层中的感知数据处理技术是物理网中的核心技术,包括了对数据的查询、分析、理解等。物联网网络层中有记忆存储数据的云计算平台,同时也为应用层应用存储奠定了基础。应用层是物联网发展的目的,利用分析处理过的数据,为用户提供相应的服务。物联网应用非常广泛,分为很多种类型,可用于监控,如对物流、污染状况作出监控;也可用于查询,如进行智能的检索等;也能用于控制智能家居、智能路灯等;还能用在扫描方面,如高速公路不停车收费等。物联网的网关位于中间的网络层中,连接着传感器以及传统的通信网络,有着协议转换、数据收发等多种功能。

■2.2 网关需求分析

2.2.1 协议转换

实现不同协议之间的转换是物联网网关最基础的功能。当网关受到来自ZigBee节点数据后。网关会按照ZigBee协议的规范去掉PHY层、网络层包头、MAC层,并对应用层的数据作出处理,之后物联网网关会根据TCP/IP协议的标准重新封装数据,并通过以太网发送出去。所以,网关功能的实现,要同时具有ZigBee和TCP/IP协议栈[3]。如图1所示,是协议转换的过程。

图1 协议的转换过程

2.2.2 数据收发

物联网网关起到沟通传感网和通信网络的重要作用。ZigBee网络上传数据经过网关处理后到IP网络主机中。IP网络中的数据和命令能通过网关到达ZigBee节点中去。物联网网关既要实现接受互联网终端和传感器终端发送数据的功能,也要能向两者发送数据,实现数据转发[4]。

2.2.3 管理控制

物联网网关还要具有管理控制的功能,对象是传感器的节点。物联网网关对来自应用层的命令作出处理,并下达到传感器节点上,完成对网关下层传感器网络的管理。

3 基于ZIGBEE及TCP的物联网网关设计

■3.1 硬件系统

图2 物联网网关的硬件系统设计

物联网网关硬件系统部分包括了ARM开发板、GPRS无线通信和Sink节点,这三个部分是组成物联网网关系统的三大模板。硬件系统结构如图2所示。本次设计中使用到了ARM9架构的处理器,用CC2420作为感知节点的无线通信模块。无线收发模块中,用ZigBee芯片作为基础。GPRS的无线通信模块中使用EM310,完成物理世界和传感器之间的网络联系。使用到sink,将节点收到的数据发送,网关和sink节点用网关进行连接,形成上传数据和下达命令的通道[5]。

■3.2 软件设计

物联网网关软件架构有BootLoader程序、LINUX内核、根文件系统和应用程序四个部分。BootLoader程序是系统的初始化程序,功能是加载软件环境和操作系统内核的数据。SD-Boot是网关启动BootLoader程序时首要任务,使用SD卡烧写方式,对引导程序进行移植和编译。物联网网关的应用程序设计方面,分为三个部分,ZigBee部分、TCP部分和web应用程序部分[6]。

3.2.1 ZigBee应用程序的设计

物联网网关的主要功能是对感知层的数据作出采集分析和处理。软件模块也相应的分成主动上报、查询和控制三个方面[7-8]。主动上报方面,数据格式以无线通讯协议的16进制为主,实现上调用接收程序nodedataproe.e,监听程序listenfile.e以及节点状态程序nodestatus.c。节点接收程序调用函数组能满足内存间交互,通过调用/exc/gateway/map.txt文件能将内存表初始化,对串口打开和设置时,调用串口函数int serial_init,创建fork进程。数据采集功能的实现,需用到3个系统函数,它们分别是wait、wifexited和wtermsig。监听程序的作用是监听一些较为重要的文件,通过调用组函数inotify_能将监听功能初始化,inotify_add_watch能添加监听事件,设置相应的属性。网关正常情况下,inotify_rm_watch(fd,wd)不会被调用,节点状态程序用来完成采集节点状态信息。关于传感器上报时间,设计中采集间隔为10s,系统函数有signal、alarm和pause()。

3.2.2 WEB应用程序设计

用户应用程序和物联网网关进行交互时,通讯方式使用TCP/IP方式。在对WEB应用程序进行设计时,会使用CGI的方式,融合HTML以及C语言,使得应用层能顺利访问,组网程序主要有zigbee.cgi程序实现,能对频点和ID参数进行设置。获取新节点数据时,使用到newnode_list.cgi,且调用fprintf函数。使用Map.cgi程序对节点编号、额定掉线时间等作出配置。

综上所述,随着网络技术和传感技术的发展,物联网在生活中的应用变得越来越广泛。物联网网关中,使用较为广泛的协议的ZigBee协议,和传统的TCP/IP协议存在着不兼容的现象。在物联网网关设计中,如何实现ZigBee协议和TCP/Ip协议的融合非常关键。文章简要分析了物联网应用体系架构,探讨了物联网网关系统的需求,并对物联网网关作出了设计,以为同行工作者提供相关参考资料。

猜你喜欢
网络层网关联网
“身联网”等五则
基于FPGA的工业TSN融合网关设计
《物联网技术》简介
《物联网技术》简介
一种主从冗余网关的故障模式分析与处理
简述传感器在物联网中的应用
天地一体化网络地面软网关技术及其应用
车联网网关架构的设计
论物联网安全威胁及其应对策略
物联网技术在信息机房制冷系统中的应用