智能家居系统网关的设计与实现
2016-11-02王佳欣
王佳欣
(北京工业大学软件学院,北京 100022)
智能家居系统网关的设计与实现
王佳欣
(北京工业大学软件学院,北京100022)
针对蓝牙网络与Internet网络间通信协议不兼容的问题,本文利用低功耗蓝牙4.0技术与以太网通信技术,设计了基于蓝牙4.0技术和以太网技术的智能家居网关。硬件设计采用集成了ARM Cortex—A9核心的Zynq 7000开发平台作为核心处理器,利用平台上连接的CSR1010蓝牙模块与智能家居系统中家居设备相通信,通过双绞线将平台上的以太网网络接口与路由器相连进行远程通信。软件设计方面,基于Linux操作系统实现在蓝牙网络和Internet网络之间进行数据通信的功能。实验测试结果表明,本文所设计的网关具有较低数据丢包率、数据处理时延及功耗,可保证智能家居系统中家居蓝牙网络与Internet网络通信具有良好的准确性与实时性。
智能家居系统;蓝牙4.0通信技术;低功耗蓝牙网关;Linux系统
0 引 言
随着人们生活条件的不断改善及物联网技术的飞速发展,人们对家居环境的安全、舒适、便捷性要求越来越高。为了服务人们的日常生活,满足人们对家居生活的现代需要,组建融合自动化控制、计算机网络及网络通信等技术的物联网智能家居系统也就成为未来家居环境建设的重要方向。物联网智能家居系统虽然克服了传统的智能家居系统存在的许多缺点,但在能源使用上,却要比传统智能家居系统产生更为可见的消耗。为了能够降低能源耗费,将蓝牙低功耗技术应用到智能家居系统的家庭局域网中即已成为一种研究发展趋势。由于蓝牙通信协议与Internet通信协议的互不兼容,为了解决蓝牙与Internet异构网络之间的通信问题,本文最终分析采用了解决异构网络之间通信的典型方案,即设计协议转换网关。
目前已经有很多学者在解决异构网络之间通信方面开展了研究,提出了如基于ZigBee/TD-SCDMA无线传感器网络网关[1]、基于ZigBee/Ethernet的网关[2-5]、基于ZigBee/GPRS的无线传感器网关[6]以及基于ZigBee/WIFI的智能家居网关[7-8]。如上这些研究都是旨在解决采用了ZigBee通信技术的局域网与其他网络互连的问题。虽然ZigBee技术也是一种低功耗的无线通信技术,并具有低成本、简单易用、组网能力强等优点,但由于目前ZigBee通信技术在移动智能终端设备上并未获得应用与发展,要对智能家居设备进行控制,就需要增加中间设备,如此非但不会利于使用而且更增加了设计成本[9]。此外,针对蓝牙网关的研究,也已代表性地提出了基于蓝牙技术的嵌入式家庭网关[10]、基于Linux系统的蓝牙以太网网关[11]等技术。可这些针对蓝牙网关的研究大多采用的都是传统蓝牙通信技术,却没有考虑到功耗在智能家居领域的地位重要性。而蓝牙4.0技术通过将传统蓝牙技术、高速技术和低耗能技术3种规格集成为一体,使其与传统蓝牙技术相比最大的改进就是低功耗。而且,除了省电设计外,还进一步具有了低成本、3毫秒低延迟、100米以上超长有效连接距离、AES-128加密等特点。同时,目前大部分的移动智能终端上都已提供了有关蓝牙4.0通信的技术支持,这即为其在智能家居领域的应用上提供了自然利好的优势。
为此,针对家居蓝牙网络与Internet的可行性通信,以及完成对智能家居设备远程控制的研究开发目的,本文设计并实现了基于蓝牙4.0技术的蓝牙以太网网关。硬件上采用基于ARM Cortex-A9核心处理器的Zynq-7000开发平台,通过通用异步收发传输器(UART)与CSR1010蓝牙模块获得了连接,再用双绞线将开发平台上的以太网网络接口与路由器相连;软件上采用在Linux操作系统上和蓝牙模块上进行编程的方式,从而综合完整地实现了网关的以太网网络接口和Internet网络进行通信、蓝牙模块与家居设备的通信、网络的协议转换及对终端设备的管理等各项功能。
1 网关硬件设计
如图1所示,蓝牙-以太网网关主要由3部分组成:Zynq平台上所集成的ARM Cortex-A9 MPCore核心处理器、以太网网络接口模块以及支持蓝牙4.0通信技术的CSR1010蓝牙模块。硬件上,网关以ARM Cortex-A9 MPCore为核心处理器,该处理器通过UART串口连接蓝牙模块,而以太网网络接口模块在Zynq开发平台上则是自带性的,可直接通过双绞线与路由器相连,从而由此接入Internet网络中。
图1 网关硬件结构及系统部署Fig.1 Gateway hardware structure and system deployment
1.1CSR1010蓝牙模块
在智能家居领域中,低功耗节能至关重要。为了满足节能环保的要求,本文选用支持低功耗的蓝牙4.0通信技术的CSR1010芯片作为网关的蓝牙模块。该芯片集成了2.4 GHz射频收发器,具备包括PIO、UART、SPI、AIO、I2C等多种引出接口的硬件资源,可以充分满足网关中对蓝牙模块通信的处理性能要求。
1.2以太网网络接口模块
考虑到开发的成本及效率,以太网网络接口模块采用Xilinx公司的Zynq-7000扩展式处理平台上集成的PHY 88E1518芯片。该芯片是Marvell公司推出的能够实现10/ 100/1000 Mbps的半/全双工通信的节能以太网收发器,完全符合IEEE 802.3标准并且支持MII/RMII/SNI接口来连接不同类型的媒体访问控制器(MAC),能够完成双绞线传输的RJ45网络接口的适配,供电电源为典型3.3V,自动节电模式下功耗很低。
1.3核心控制模块
该模块是整个蓝牙-以太网网关的核心部分。一方面要与CSR1010蓝牙模块进行通信,通过串口实现数据的接收与发送,并且对数据进行处理;另一方面,需要对以太网网络接口模块进行配置,从而实现网关与Internet网络相通信的功能。智能家居网关的这些功能即使其对处理器的可靠性以及处理能力都提出了较高要求。本文采用基于Xilinx Zynq-7000扩展式处理平台(EPP)作为主控制器,该平台集成了双ARM Cortex-A9 MPCore核心处理器,工作频率为667MHz,具有32 KB的一级指令数据缓存,512 KB的二级缓存。同时,片内具有256KB的FIFO片内数据缓存,以及多个可扩展的外部存储器端口,而且还内建有多个串行收发器并设计研发了低功耗的模式,为网关提供了理论优良的硬件性能。
2 网关软件设计
蓝牙以太网网关的软件体系结构如图2所示,根据硬件的设计方法,蓝牙和以太网网关软件部分同样包含3部分:
1)使用CSR蓝牙开发套件在运行蓝牙4.0协议的CSR1010蓝牙模块上编程,实现网关与智能家居设备的通信;
2)利用Linux系统自带的TCP/IP协议通过Socket编程实现网关与Internet网络数据的交互;
3)通过在Zynq AP SoC上运行Linux操作系统,并通过编程配置实现网关核心控制模块与蓝牙模块及以太网网络接口模块进行数据交互、向两者发送控制信息、对数据进行收集与存储、对协议进行转换、对智能家居设备节点进行管理及对TCP多线程服务进行控制等功能。其中,最后一部分的设计是影响网关性能的重要核心因素。
图2 网关软件体系结构图Fig.2 Gateway software architecture
2.1网关与智能家居设备间的通信设计
网关与智能家居设备间的通信采用蓝牙4.0无线通信技术。该技术采用主从通信模式,网关作为主设备可以同时与多个智能家居设备相连接。为扩展网络中智能家居设备节点的个数,当处于连接状态的智能家居设备与网关之间在一定时间间隔之内没有发生数据交互时,则立即断开连接,这样网关便可与其他家居设备相连,构成一个星型网络拓扑结构的微微网。本文也正是采用了此网络拓扑结构。
智能家居设备与网关的蓝牙模块的通信流程如图3所示。首先,网关对蓝牙模块进行初始化配置,然后当网关中接到来自Internet的命令时,作为主设备的网关以广播的形式主动扫描周边设备,当对应的智能家居设备对主设备的发现请求进行应答后,网关可获得从设备的地址,而后网关发出建立ACL连接请求,智能家居设备同意建立连接后,网关即根据连接句柄可与智能家居设备进行数据传输,也可对智能家居设备所支持的服务和相关特性集进行查询。
图3 与Internet通信的工作流程Fig.3 Work flow with Internet communication
2.2网关与Internet间的通信设计
网关与Internet的通信是基于Zynq AP SoC上运行的Linux操作系统内置的TCP/IP协议栈。通过Vivado工具对Zynq AP SoC进行配置,并采用C/S架构设计方式通过Socket编程实现网关与Internet网络数据的交互。在通信的过程中,将网关作为服务器端,不断监听网络连接请求和数据传输请求;移动智能终端设备作为客户端,当希望进行智能家居的远程控制时,主动向网关服务器端发起Socket连接请求。
2.3网关核心控制模块的设计
网关核心控制模块主要负责协调蓝牙模块与以太网网络接口模块间的工作,是整个网关的中枢环节。网关的主要工作为:
1)将从Internet上传来的控制命令数据转发给智能家居设备,实现对智能家居设备的远程控制;
2)对智能家居设备的相关状态信息进行收集存储,以便当移动客户端连接到网关服务器端时,实现智能家居设备的状态与移动客户端所显示的状态的同步。
1)网关通过运行蓝牙4.0协议的蓝牙模块与智能家居设备进行通信,来实现对远程控制命令信息的转发及对智能家居设备的状态信息进行收集的功能。因此,网关要实时与智能家居设备保持通信。为了对数据实施高效的处理,本文采用如图4所示的多线程工作方式对来自远程移动客户端的控制命令数据进行转发操作。其中,数据接收线程负责监听及接收远程移动客户端发送来的命令数据包并将其插入到共享数据存储区,该数据区以队列形式存储。数据处理线程负责从共享存储数据区中取出数据并对数据进行处理,处理过程主要包括数据解析、格式转换以及通过串口将数据传输给蓝牙模块等。在整个过程中,对共享数据存储区中进行实时监控,只要其内部存有数据便通知数据处理线程对共享数据区中的数据进行处理,通知的方式采用消息传递的机制。然后利用蓝牙模块转发给智能家居设备。而对智能家居设备的状态信息进行收集的处理过程也采用类似的设计方式。
2)智能家居网关与Internet的通信是基于TCP/IP协议的,网关与远程客户端程序采用的是C/S架构设计方式。其中,网关作为Server端,客户端作为Client端。在整个智能家居系统中,会有多个用户拥有对智能家居设备控制的权限。为此,本文使用线程池的技术来完成对多用户并发操作的响应。首先网关成功连接到Internet网络后,开启一个TCP服务器线程用来监听是否有远程移动客户端发来的连接请求;发现有连接请求后,对获取到的用户信息进行检验以决定能否与之建立连接;若可以建立并已处于连接状态,则对会话信息进行加载,否则将对会话信息进行重新配置,并从线程池中分配一个用来与远程客户端进行数据交互的会话线程。当线程接收到远程的控制命令后,对命令进行解析,解析到正确的控制命令则执行,错误的控制命令将不进行处理。
图4 远程控制命令的多线程处理流程Fig.4 Multi thread processing flow of remote control commands
网关与Internet通信的工作流程如图5所示。
图5 网关与智能家居设备的通信流程Fig.5 The communication process between gateway and intelligent home equipment
3 数据传输格式设计
Internet网络的数据传输速率要高于蓝牙4.0网络中的数据传输速率,并且两者有着不同的数据处理能力,所以为了减少家居蓝牙网络中的数据通信量,使网关能够高效地处理数据,在数据的传输过程中,现采用2种不同的数据包格式传输数据:
1)智能家居网关与Internet网络之间的通信。当网关监听到有远程移动客户端发送给智能家居设备的命令时,网关的会话线程即对命令进行解析,将数据转化为蓝牙网络中的数据包的格式分发给家庭网络中的家居设备。现在基于XML或JSON格式的数据是使用较多的数据交换方式。而目前无论是Android还是iOS系统,对XML和JSON都有着丰富的解析手段,但考虑到JSON是轻量级的,数据的体积较小,传输速率较快,并且在解析较少的数据时相比XML更具效率优势。因此,本文采用JSON的数据格式在移动客户端和网关间进行通信。如用户控制设备标识为5的开关设备使其做“开”操作的JSON示例如下。其中,command代表控制命令;operation代表操作类型;device代表设备。
2)智能家居设备与网关蓝牙模块之间的通信。当移动客户端有命令送达至网关时,网关将进行数据处理,并以数据包的格式发送到家居蓝牙网络中。数据包格式如图6所示。
图6 与智能家居设备之间通信的数据格式Fig.6 Data format for communication with smart home devices
其中,首部2个字节为标识段,包含一个字节的设备唯一标识,一个字节的数据包类型。标识段后是数据段,包含一个字节的数据类型字段、一个字节的数据长度字段和最大长度不超过10字节的可变长度的数据内容;此外,还有一个字节的安全性校验符以及一字节的用于完整性校验的结束符。
4 实验统计与分析
本文设计定义的蓝牙-以太网网关的实物图如图7所示。
其中,y(客户的逾期情况)是二分类变量(yi=1表示第i个客户逾期,yi=-1表示第i个客户未逾期);β为待估计参数。
图7 网关硬件实物Fig.7 Gateway hardware
为了对网关的性能进行测试,对测试的实验环境给出部署方式如图8所示,将5个支持蓝牙4.0技术的智能家居开关设备节点模块设置在网关的蓝牙模块可达到的通信距离内,这一距离由蓝牙射频理论传输距离而最终确定。这样5个开关设备节点与网关的蓝牙4.0模块就组建成一个以网关为中心节点的蓝牙网络。通过在智能开关设备的运行程序上进行设置,使得开关节点每隔10 s向网关发送一次数据,同时在远程移动客户端程序中进行设置,使得移动客户端每隔15 s向网关发送一次数据,然后通过对数据进行统计分析,从而对网关接收数据丢包率、转发数据丢包率、数据处理时延大小进行测试。另外,通过对比分析ZigBee模块、WIFI模块正常运行时所需功耗的大小来测量蓝牙网关在功耗方面的性能。
4.1接收数据丢包率的实验
网关所接收的数据包含以下2种:
1)网关核心控制模块从串口接收的数据,具体就是开关设备节点发送给网关蓝牙模块的数据;
2)网关核心控制模块从以太网网络接口模块接收的来自远程移动客户端的控制命令数据。这里,考虑到网关设计中是在Zynq平台上发生的,而以太网网络接口模块是开发平台上自带的,这就使得其数据接收能力已经足够强大,所以本文将不再对其进行测试,而主要则针对第1)种接收数据的丢包率进行测试。根据上述部署的实验环境,分别在串口波特率为4 800 bit/s和9 600 bit/s时进行5次丢包统计实验测试,一次实验是指网关完成从串口读取500个数据包。而后,将对5次实验的统计结果求取平均值。最后的实验统计结果如表1所示。
表1 网关接收数据丢包率Tab.1 Receive data packet loss rate of gateway
从实验数据统计结果可以看出,在不同串口波特率的情况下,网关接收来自智能家居设备的数据丢包率都比较低,2个实验丢包率的平均值仅为0.07%,充分说明了网关具备着较好的数据接收能力。
4.2转发数据丢包率的实验
网关对数据进行转发包含2个过程:
1)将接收到的从智能家居设备节点获得的设备状态信息通过以太网网络接口模块转发到Internet的过程;
2)将接收到的远程移动客户端发送来的远程控制命令通过网关的蓝牙模块转发到智能家居设备节点的过程。
根据研究部署的实验环境,采用在网关中设置计数器的方式对网关所转发的数据包的数量以及丢包量进行统计,连续统计12 h,针对2种过程的实验统计结果如表2所示。
表2 网关转发数据丢包率Tab.2 Gateway forwarding data packet loss rate
从实验数据统计结果可以看出,网关对2种转发过程的数据都有着较低的丢包率,这也说明了网关已表现出较好的数据转发能力。
4.3处理数据时延的统计实验
网关的数据处理时延是指网关核心控制模块将一个完整的数据从串口或者Internet中读出来到完成对该数据的处理的时间间隔。这一指标是衡量蓝牙以太网网关对数据处理能力大小的重要依据。根据上述部署的实验环境,分别在串口波特率为4 800 bit/s和9 600 bit/s时对网关处理数据时延大小进行测试。当网关完成从串口读取1 000个数据包并处理完毕时对网关时延进行一次平均值的计算,计算结果则作为此测试结果,当进行了5次同样的时延计算后,再对5次的结果求得平均值,实验统计结果如表3所示。
表3 网关处理数据的时延大小Tab.3 Delay of gateway processing data
根据表3中实验数据可知,网关处理数据的时延平均值为15.68 ms,与CCSA标准所规定的100 ms相比较而言要降低很多,有效地说明了网关对数据处理的及时性。
4.4网关的功耗性能测试
功耗对于智能家居系统至关重要。为分析蓝牙以太网网关的功耗性能,本文通过对比分析的方法,在单独为ZigBee模块提供3 V、WIFI模块提供5.5 V、蓝牙4.0模块3.3 V的供电电压情况下,利用万用表分别对网关在进行数据传输状态下以及在休眠状态下功耗的大小进行测量,得到结果如表4所示。
表4 功耗对比测试Tab.4 Power consumption comparison test
从实验数据可以看出,无论在数据传输状态还是在休眠状态,与其他2个模块相比,蓝牙4.0模块的功耗都是最低的,更加符合智能家居系统对低功耗节能的要求。
5 结束语
智能家居网关是智能家居系统的重要组成部分,发挥着连通智能家居蓝牙网络和Internet网络的作用。本文通过对网关的软硬件设计和数据传输格式等方面进行介绍,实现了基于低功耗蓝牙4.0通信技术的以太网网关。该网关可以优效实现智能家居系统中家庭蓝牙网络与Internet网络互连的功能。下一步可将本文设计的智能家居网关进一步扩展为支持蓝牙mesh组网功能的蓝牙以太网网关,并可与大数据、云计算等技术相结合应用于智慧家居、智慧城市等领域。
[1]YANG F,YAN C.Design of WSN gateway based on ZigBee and TD[C]//Electronics and Information Engineering(ICEIE),2010 International Conference On.Kyoto Japan:IEEE,2010:V2-76-V2 -80.
[2]YAN S Y.Design and implementation of ZigBee gateway for Ethernet[J].Applied Mechanics&Materials,2014,571/572:438-442.
[3]QIU P,ZHAO Y,HEO U,et al.Gateway architecture for zigbee sensor network for remote control over IP network[C]//Information and Telecommunication Technologies(APSITT),2010 8thAsia-Pacific Symposium on.Kuching,Malaysia:IEEE,2010:1-4.
[4]HU G.Design and implementation of industrial wireless gateway based on ZigBeecommunication[C]//ElectronicMeasurement& Instruments,2009.ICEMI'09.9thInternational Conference on. Beijing,China:IEEE,2009:1-684-1-688.
[5]杨彦辉.基于ZigBee的无线IP网关技术研究[D].北京:北京邮电大学,2010.
[6]HE Z Y,PENG J.Design of wireless gateway based on ZigBee and GPRS technology[C]//Computational Intelligence and Software Engineering,2009.CiSE 2009.International Conference on.Wuhan,China:IEEE,2009:1-4.
[7]满莎,杨恢先,彭友,等.基于ARM9的嵌入式无线智能家居网关设计[J].计算机应用,2010,30(9):2541-2544.
[8]王铮.基于MEGA128的Wi-Fi与ZigBee相结合的无线网关设计[D].保定:河北大学,2014.
[9]杨长龙.基于蓝牙技术的智能家居控制器的研究与设计[D].北京:北京工业大学,2013.
[10]王雅志.基于蓝牙技术的嵌入式家庭网关的研究与实现[D].长沙:湖南大学,2010.
[11]孙睿,付志红.基于嵌入式Linux的蓝牙以太网关设计[J].计算机应用,2006,26(z2):27-29.
Design and implementation of smart home system gateway
WANG Jiaxin
(College of software engineering,Beijing University of Technology,Beijing 100022,China)
Aiming at the problem that the communication protocol of Bluetooth Network is incompatible with the Internet network,a smart home gateway based on Bluetooth 4.1 technology and Ethernet technology is designed.Hardware design uses the integrated Cortex A9 ARM core of the Zynq 7000 platform as the main processor,using CSR1010 Bluetooth module connected on the platform communicated with the node of the intelligent home system.The Ethernet interface of the platform is connected with the router through the two feet line to carry out the remote communication.In terms of software design,the gateway based on the Linux operating system realizes the data communication between Bluetooth network and Internet network.Experimental test results show that the design of the gateway has a lower packet loss rate,delay of data processing and power consumption,and it can ensure that in the smart home system,the communication between Bluetooth home network and Internet network has good accuracy and real-timing.
smart home system;bluetooth 4.0 communication technology;low power bluetooth gateway;Linux system
TP391
A
2095-2163(2016)03-0041-05
2016-03-30
王佳欣(1989-),女,硕士研究生、主要研究方向:嵌入式软件设计。