针对传统智能家居系统中多种无线通信技术之间互联的困扰,设计了一个新的两种无线通信技术直连的智能家居网关。该网关以ARM920T嵌入式处理器S3C2440A为核心,ARMLinux为实时操作系统,采用新兴的Zigbee与Wi-Fi融合的通信技术,以满足家庭远程监控、家庭安防和家电控制的个性化需求。在ARM9处理器上构建嵌入式Web服务器,通过扩展Wi-Fi模块与Zigbee模块实现家庭内部无线网络的建立以及与Internet的连接,并给出了硬件组成结构和软件实现流程。实验结果表明,该网关在丢包率与时间响应方面优于有线网关和Wi-Fi-蓝牙网关,适合在智能家居系统中应用。
0引言
随着人们生活水平的提高以及计算机技术、通信技术和网络技术的发展,智能家居逐渐成为未来家居生活的发展方向。智能家居不仅能给用户提供安全、健康和舒适的生活环境,而且用户能够远程监控自己的家居状态和控制家庭电器设备。在智能家居系统中,采用无线网络技术可以提供更大的灵活性、流动性,更符合家庭网络简洁性、灵活性、模块化、扩展性及独立性的通信特点,将无线网络技术应用于家庭网络已经成为主流趋势。
Zigbee作为一种新兴的无线通信技术,其低速率、低成本、低功耗、自配置和灵活的网络结构,非常适合于家庭内部组网。而Wi-Fi作为一种无线联网技术,最主要的优势在于不需要布线,不受布线条件的限制,因此特别适合移动办公用户的需要,在智能家居中采用Wi-Fi技术使得家庭内部网络与Internet连接更加便捷,通过一台Wi-Fi的手持终端设备就可以直接进入家庭网关,实现对家电设备的远程监控和智能控制。系统中家庭网关为Wi-Fi-ZigBee的Web服务器,它是ZigBee协议、Wi-Fi协议和以太网之间的转换接口,并负责建立和管理无线传感器网络以及实现外网的通信连接。
1网关总体设计和工作流程
系统主要包括ARM9处理器S3C2440A(家庭网关)、Zigbee模块(协调器)、Wi-Fi模块、Zigbee终端设备(如红外探测器、门磁开关和火灾探测器和烟感燃气探测器等),其结构如图1所示。在ARM9处理器中移植Web服务器Boa作为家庭网关,负责对整个智能家居设备的管理以及远程监控。
由于智能家居中许多家电设备都是通过Zigbee无线传感网络来工作的,因此必须在处理器中保存数据并对Zigbee无线传感网络进行数据融合处理,协调器负责家庭内部Zigbee网络的管理与控制。Wi-Fi模块用来传输大容量信息,通过无线访问节点(AccessPoint,AP)路由器与以太网连接,实现家庭内部网络与Internet的通信。
图1系统结构
系统处理基本流程如下:系统内部由Zigbee星型网络组成,家中电器开关状态和传感器的控制信息在网络中自由传输,经由协调器(Zigbee模块)传送至Web服务器的网关,再由网关通过Wi-Fi经无线路由连接到外部以太网,用户可以通过远程用户界面端了解家中电器状态;家庭网关可以通过无线网络对远程用户的控制命令作出判断和响应,从而开启或关闭家中的电器。
2网关硬件平台设计
网关硬件电路主要由控制器模块(S3C2440A)、存储单元(64MBSDRAM、64MBNandFlash和2MBNorFlash)、通信模块(Zigbee模块和Wi-Fi模块)和显示模块(LCD)等组成,其硬件电路结构框图如图2所示。
图2系统硬件电路
2。1控制器模块
控制器是整个嵌入式家庭网关的核心,用来对Zigbee通信模块进行相应配置并接收Zigbee终端节点的数据,利用Wi-Fi协议将网关通过Wi-Fi模块连接到Internet网络。为了能达到高性能、低功耗的目的,设计的嵌入式网关采用以ARM920T为核心的32位的RISC微处理器S3C2440A作为主控制器,该处理器集成了LCD控制器、USBHost、NAND控制器、BUS控制器、中断控制、功率控制、存储控制、UART、SPI和GPIO等丰富的外围资源,通过外扩存储器、串口、USB接口和JTAG调试接口等构成硬件平台。
2。2Zigbee组网模块
在智能家居系统中,采用Zigbee无线通信技术将智能家电设备组成星形网络。星形网络是一个辐射状的结构,网络命令和数据都是通过协调器传输,终端设备之间通信也是通过协调器转发,终端设备不是通信的起点就是通信的终点。
Zigbee扩展模块在家庭网关中作为网络协调器,可以是通信的起点或终点,负责各子传感器节点的通信管理、动态组网与数据传输。Zigbee终端节点包括家庭内部网络中的门磁开关、红外对射探测器、玻璃破碎探测器、火灾探测器以及烟感和燃气泄露探测器等。
Zigbee模块采用JENNIC公司的JN5139,这是业界第一款与IEEE802。15。4兼容的低功耗、低成本无线控制模块。
该模块与S3C2440A中的UART1相连,S3C2440A中有三个通用异步串行接口,UART0是RS232接口,用来连接PC机,UART1和UART2是TTL接口。这里使用UART0来连接,设置相应波特率后实现数据传输。其通信接口电路如图3所示,只需连接TXD0和RXD0两根信号线即可实现两者的数据传输通信。
图3JN5139的通信接口电路
2。3Wi-Fi通信模块
该模块用来实现家庭网关与Internet连接。Wi-Fi模块采用威盛的VT6656芯片实现数据的远程传输,VT6656芯片内嵌TCP/IP协议栈,降低了设计的难度,同时大大提高了主控制器处理其他数据的能力。VT6656与S3C2440A的连接非常简单,二者可以通过标准的USB接口直接相连。VT6656芯片的主要特性:54Mbps标准802。11g无线Internet访问,比基于802。11b协议快5倍;采用USB2。0最高比USB1。1快40倍;新的天线技术支持更远距离的无线访问;支持所有标准802。11g和802。11b无线路由器及接入点;支持64/128/152位WEP加密;支持WPA/WPA2、WPA-PSK/WPA2-PSK等高级加密与安全机制。
3软件平台设计
软件平台采用一种开放源码的Linux操作系统,便于在其基础上完成各项相关应用程序的开发。软件主要涉及到操作系统的裁剪与编译、驱动程序编写和系统主程序编写。
3。1家庭网关软件体系结构
家庭网关采用模块化设计方案,如图4所示由硬件驱动层、操作系统层、网络协议层和应用程序层组成。硬件驱动层描述网关节点中Zigbee模块和Wi-Fi模块的驱动;操作系统层移植了ARMLinux实时操作系统内核;网络协议层移植了Zigbee和Wi-Fi协议栈,实现Zigbee和Wi-Fi协议双向转换;应用程序层在Linux内核上移植嵌入式Web服务器软件Boa。
图4家庭网关结构。
网关中的网络协议层主要完成从Wi-Fi和Zigbee协议的相互转换工作。对于从Zigbee设备发送到Wi-Fi的数据,在网关需要经过以下处理步骤:Zigbee设备接收到数据→去掉物理层Zigbee分组→去掉MAC层Zigbee分组→添加MAC头的Wi-Fi分组→添加物理层头的Wi-Fi分组→Wi-Fi处理或发送。Wi-Fi接收数据到发送给Zigbee设备的过程如下:
Wi-Fi接收到数据→去掉物理层Wi-Fi分组→去掉MAC层Wi-Fi分组→添加MAC头的Zigbee分组→添加物理层头的Zigbee分组→Zigbee处理或发送。Wi-Fi-Zigbee通信协议模型如图5所示。
图5Zigbee/Wi-Fi网关的通信协议模型。
3。2Zigbee组网软件设计
家庭网关集成了Zigbee网络协调器和嵌入式Web服务器,有两个主要功能。1)实现无线传感器网络的建立,传感器节点管理和数据传输。将收集到的数据存储在数据库中,使用户可以随时查询监控Zigbee终端设备的状态。2)用户可以通过Web浏览器直接访问网关,可以进行实时监测和远程管理。
为了实现家庭网关的功能,在硬件平台上移植了Linux2。6实时操作系统、Zigbee协议栈和VT6656的驱动程序,并使用基于HTTP协议的Boa服务器作为Web服务器,其中ZigBee网络协调器的软件实现包括ZigBee协议和监控管理程序的移植。该软件流程如图6所示。
图6Zigbee软件流程。
在智能家居内部ZigBee无线网络中,首先协调器进行初始化,然后协调器选择一个称为PANID的标识号码,接着启动网络,所有的设备接入CSMA-CA机制的协调器。当协调器收到数据时,首先判断是新节点加入网络的请求还是设备节点的控制请求:如果是新节点加入网络的请求则分配网络地址并绑定节点;如果是控制请求,则调用控制请求处理函数处理数据。数据处理完毕,协调器返回等待请求监听状态。
3。3家庭网关主程序设计
家庭网关是建立在传输层以上的协议转换器,通常它连接两个或多个相互独立的网络,每接收一种协议的数据包后,在转发之前将它转换为另一种协议的格式,Zigbee协议栈由一系列分层结构组成,包括物理层、数据链路层、网络层、应用支持层和应用层,每一层为上一层提供服务。采集节点将要传输的节点地址信息和监测数据以Zigbee帧的形式打包发送给网关节点。传送数据在通过物理介质进入网关后,先用Zigbee协议栈解封装得到原始数据,网关可以用操作系统上的应用软件根据需要对原始数据处理。然后再以TCP/IP协议打包后通过USB口与Wi-Fi通信模块VT6656相连,Wi-FiVT6656网卡通过AP路由器,将数据传送到Wi-Fi网络中,AP路由器接入Internet,从而实现网关与Internet相连。为实现系统的监测和控制两大功能,数据帧结构的设计由前导码、数据模式、目标地址、数据长度、数据信息与校验和等部分构成[3],其中数据信息字段又划分为方向位、功能类型和数据。
方向位分为上行和下行两种:上行传输的是监测数据,下行传输的是控制命令。
家庭网关主程序处理流程如图7所示。硬件上电系统启动以后,应用程序初始化,网关开始监听网络,有数据到来网关进入中断状态。首先判断是否Zigbee数据,如果是Zigbee数据,按照WSN协议处理数据然后打包转发给Wi-Fi模块,网关返回监听状态;如果不是Zigbee数据,网关判断是否Wi-Fi数据,如果是则以Wi-Fi协议处理数据然后打包转发给Zigbee模块,并返回监听状态;若是未知数据,网关进行丢弃处理直接返回监听网络状态。
4测试结果与分析
将设计的Wi-Fi-Zigbee网关与同样采用无线通信技术的Wi-Fi-蓝牙无线网关,以及采用综合布线的有线网关做如下比较,如表1。有线网关网络稳定性、抗干扰性方面高,但是耗时且灵活性较低,而无线网关耗费的工时少且在网络稳定、灵活和抗干扰方面均性能良好。
图7家庭网关主程序流程
表1三种网关的比较
为验证Wi-Fi-Zigbee网关在智能家居监控系统中的性能,测试了两组性能指标:1)无障碍物和干扰状态下,随着距离的增加,数据丢包率和响应时间的变化情况;2)数据传输距离分别为10m、20m、50m时,有障碍物情况下丢包率和响应时间性能变化;如图8所示,其中(a)、(b)为在无障碍物和干扰状态下测得三种网关下丢包率与响应时间的曲线:(c)、(d)为在有障碍物和干扰情况下所测得的数据。实验结果表明,在无障碍物传输距离为50m以内时,Wi-Fi-Zigbee网关较Wi-Fi-蓝牙网关的优势明显,随着传输距离增加,丢包率低维持在3%左右,相对于有线网关高出2%左右,而响应时间波动在1ms以内,完全能够充分满足正常家居环境的通信需要,而且接收功率很低,非常适合家庭的使用。在有障碍物和干扰的情况下,Wi-Fi-Zigbee网关丢包率与响应时间较有线网关稍高,却远优于Wi-Fi-蓝牙网关。
图8三种网关在不同环境下丢包率与响应时间的比较
5结语
本文提出了一种无线智能家居网关的设计和实现方案,该方案采用低功耗ARM处理器S3C2440A为核心,利用内嵌TCP/IP协议栈的模块Wi-Fi为网络的数据出口,以嵌入式Web服务器为网关,克服了传统网关架构下Zigbee传输速率较低的瓶颈,利用Wi-Fi和Zigbee全网无线无缝连接。实验表明,该系统可靠性高、协议转换效率高,抗干扰能力强,同时具有很好的通用性,非常适合在智能家居系统中应用。