基于ZigBee的智能家居无线数据传输系统的设计与实现

2014-08-16 09:10王韦伟
宿州学院学报 2014年7期
关键词:串口智能家居无线

王韦伟

安徽电子信息职业技术学院信息与智能工程系,安徽蚌埠,233000

基于ZigBee的智能家居无线数据传输系统的设计与实现

王韦伟

安徽电子信息职业技术学院信息与智能工程系,安徽蚌埠,233000

为提高智能家居系统在可扩展性、可维护性和成本低廉性等方面性能,提出一种基于ZigBee技术的智能家居无线数据传输系统架构,给出了无线数据传输模块的硬件结构框图,设计了系统通信协议,并进行了无线数据传输模块软件设计,最后系统通过模拟实施验证。通过ZigBee模块进行组网通信,具有组网灵活、安装尺寸小、低成本、便于维护等优点和特性。

智能家居;ZigBee;无线数据传输

目前,智能家居系统受技术条件、经济成本及通用标准与接口所制约,智能家居的普及率还不高,如何设计一套便于管理、维护、扩展性好、成本低的智能家居系统,对于智能家居的实际应用推广具有一定的借鉴意义。

ZigBee是一种新兴的短距离传输无线网络技术,它具有低功耗、低数据速率、低成本、低复杂度、可自组网等特性。因此,ZigBee技术能够广泛应用于工业控制、智能家居、楼宇自动化、消费性电子设备、汽车自动化、医用设备控制等领域,成为当前国内外无线技术研究的热点之一。

1 ZigBee技术概述

ZigBee标准堆栈架构是在IEEE 802.15.4的基础上建立的,它采用分层结构,下层为上层提供一系列特殊的服务,从底层向上层依次是物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)、应用架构(AF)、应用支持子层(APS)。

ZigBee网络层支持星型、树形和网状结构三种网络拓扑结构[1]。在ZigBee网络中,设备节点有三种类型:网络协调器(Network Coordinator)、路由器和终端设备。协调器用于初始化一个ZigBee网络,它是网络中的第一个设备,协调器节点选择一个信道和一个网络标识符(也叫PAN ID),然后启动一个网络,一旦启动并设置一个网络的工作完成,协调器将以一个路由器节点的角色运行(甚至去做其他事情),协调器也可作为与其他类型网络的通讯网关。路由器主要用于允许其他设备加入到网络中、多跳路由、协助终端子设备的通信。终端设备没有维持网络基础结构的特定责任,它可以自行选择是休眠还是激活。

ZigBee设备结点有两种物理类型:全功能设备(FFD)、精简功能设备(RFD)。FFD具备控制器的功能,可提供信息双向传输,可以充当网络协调器、路由器,也能用作终端设备,支持任何拓扑结构;RFD的内部电路比FFD少,只有很少或没有消耗能量的内存,不能完成网络协调器功能,在网络中通常用作终端设备,只能与FFD通信,两个RFD之间不能通信,只支持星型网络拓扑结构,但它们实现相对简单,利于节能,也有助于降低成本。

图1 智能家居无线数据传输系统架构图

2 系统总体架构

本文中现场智能家居设备与上位机之间的信息互传,将通过ZigBee数据传输模块节点完成。上位机将命令信息通过接口传给ZigBee数据传输主节点(协调器),数据传输主节点将收到的数据包封装到ZigBee数据帧中,数据帧通过ZigBee无线网络传送到ZigBee数据传输子节点,子节点从ZigBee数据帧中解析出相应数据包,再通过接口传给现场智能家居设备。逆向的数据传输(现场采集信息向上位机的传输)也以同样的方式进行。上位机在这里兼有家庭网关的功能,将家庭内网与Internet 相连,使客户端可以远程监控家居信息。智能家居无线数据传输系统架构如图1所示。

3 ZigBee无线数据传输模块硬件结构

ZigBee无线数据传输模块的硬件组成有微控制器、ZigBee无线数据收发电路、存储器、辅助电路、供电模块,其中辅助电路有JTAG调试电路、晶振电路、复位电路、串口转换电路等[2-3],硬件结构框图如图2所示。

图2 ZigBee无线数据传输模块硬件结构框图

无线收发电路是该模块的核心硬件,微控制器用于控制无线收发电路进行数据的转存、收发,晶振电路提供基本工作时钟,复位电路完成系统复位,JTAG调试电路主要实现对数据传输模块的编程和测试,串口转换电路用于实现该模块与上位机、家居现场监控设备的串口数据转换。

4 系统软件设计

4.1 数据通信协议设计4.1.1 串口部分数据传输格式设计

为了能够进行相关的控制或查询操作,家居现场监控设备与上位机之间收发的信息必须执行它们之间约定的通信协议。Modbus协议支持串口RS-232、RS-422、RS-485和以太网设备,许多PLC、DCS、智能仪表等都使用Modbus协议作为他们之间的通讯标准[4]。在智能家居系统中,采用Modbus协议作为串口通信的应用层报文传输协议,报文的功能码、校验码等可以直接调用协议库,但对于数据域必须自己定义。在此,本文设计数据域结构如下。

(1)帧类型:1字节,高5位为保留位,低3位表示相应的帧类型,000表示入网申请、001表示应答、010表示操作、011表示注销[5]。

(2)设备编号:1字节,高4位为设备类型,可以表示16种设备,低4位表示各种设备的编号,每种设备最多可以有16个,如00010001表示客厅的空调,00100001表示客厅的电视。

(3)操作属性:1字节,用来描述操作的不同属性,如00000001表示关闭设备,00000010表示打开设备,00000011表示设置设备值,00000101表示读取设备温度值。

(4)操作数据:1字节,用来对操作属性加载相应数据。当操作属性为打开或关闭时,操作数据为固定值,如00001111或01111111。

根据以上设计,现场监控设备或上位机通过串口传输Modbus协议数据包。

4.1.2 ZigBee无线传输模块的数据封装

ZigBee协议栈的分层结构规定了每一层为其上层提供一系列服务,包括数据传输服务和管理实体提供的其他服务。

ZigBee设备之间进行数据传输时,应用层生成的数据经逐层处理后,发送给MAC层,作为MAC层的服务数据单元(MSDU),在MSDU前添加MAC层帧头MHR,在MSDU后添加MAC层帧尾MFR,其中,MHR包括帧控制域(FCF)、数据序号和寻址信息,MFR为帧校验序列码(FCS)。由此,MHR、 MSDU和MFR构成了MAC层协议数据单元(MPDU)。MPDU发送到物理层作为物理层服务数据单元(PSDU),在PSDU前添加同步帧头(SHR) 、物理层帧头(PHR),其中,SHR包括帧引导序列和帧开始定界符(SFD),它们使接收设备与发送设备保持符号同步,PHR包含帧的长度信息。SHR、PHR 和PSDU构成了物理层协议数据单元(PPDU)[6-7]。ZigBee数据帧封装结构如图3所示。

家居现场监控设备或上位机所发送的信息通过串口传到ZigBee数据传输模块,ZigBee数据传输模块将这些信息作为MSDU封装在ZigBee数据包中进行无线传输,由对方的ZigBee数据传输模块接收并解析还原后,通过串口传到上位机或家居现场监控设备。

图3 ZigBee数据帧封装结构图

4.2 ZigBee无线数据传输模块软件设计

图4 ZigBee无线数据传输主节点程序流程图

ZigBee无线数据传输模块通信过程主要分为初始化部分、信息发送与接收部分,初始化部分包括模块定义(定义模块是FFD还是RFD)和系统参数初始化。对系统参数初始化后,ZigBee 网络方能开始组建。为了建立ZigBee 网络连接,终端节点或路由器节点需要向协调器提出请求,协调器接到连接请求后根据系统参数决定是否同意其连接,节点与协调器建立连接后,才能实现数据的收发。ZigBee具有动态自组网能力,节点随时随地可以请求入网。本系统设计的ZigBee 网络采用非信标模式,只要设备不在发送状态,就可以接收信息。ZigBee无线数据传输主节点程序流程图如图4所示。

4.2.1 系统参数初始化

系统参数初始化需要设置通信信道CHANNEL、网络类型NET_TYPE、设备类型NODE_TYPE、网络号NET_ID、数据发送模式TX_TYPE、设备地址MAC_ADDR、数据类型DATA_TYPE、数据校验DATA_PARITY等内容。

通信信道可以是指定值,也可以设置为扫描自动选择;在同一个网络中,网络类型必须设置相同;设备类型设置时,网络中必须有一个中心节点;同一个网络中网络号ID 必须相同;同一个网络不能有相同地址的节点,中心节点地址为0000;数据发送模式为广播模式时无须设置数据类型;数据校验选择匹配的校验类型。

4.2.2 信息发送与接收

发送信息首先要按照ZigBee协议规定,构建数据帧,再将数据送入缓存,发送函数中有等待中断标志的处理,当中断产生了,说明缓存内的数据已被发送出去,此时才可继续发送数据,在继续发送前还得把中断标志清零,同时清空缓存。循环调用发送函数,直至数据组发送完毕[8]。发送程序流程图如图5所示。

图5 发送程序流程图

图6 接收程序流程图

在接收使能时,接收到一数据帧,首先将其传播半径减1。判断它的传播模式与目的地址,如果是广播数据帧或者目的地址是自己,则按ZigBee协议逐层解析数据传至应用层;如果接收是广播地址帧,接收设备路由使能,传播半径不为0,则按广播传输继续传输;如果接收不是广播地址帧,目的地址不是自己,接收设备路由使能,传播半径不为0,则根据路由传输部分中继到其他设备;其他情况,则丢弃数据。传到模块应用层的数据再通过串口传到终端设备。接收程序流程图如图6所示。

4.2.3 系统模拟实现

智能家居终端设备将数据经ZigBee 无线传输系统发送到上位机(在此系统中可以是嵌入式服务器),并进行处理。当用户通过因特网发起连接后,可以监控家居终端设备的实时运行情况,用户可以看到 Web 页数据动态实时的显示,在此使用温湿度传感器代替家居设备,通过CGI编程进行系统模拟实现,运行监控页面如图7所示。

图7 智能家居无线数据传输系统模拟监控页面

5 结束语

由于Zigbee可以实现自动组网,具有自主修复能力和双向通讯功能,且成本低、架构简单、功耗低,使得基于Zigbee技术的智能家居系统在可扩展性、可维护性上具有很大的优势。以往智能家居的无线方案不成熟,有线方案又存在布线繁琐的欠缺,同时,智能家居设备没有统一的通信接口标准,致使其实用性较差、成本较高,本系统很好地解决了这些问题,为智能家居发展提供新的研究突破点,为智能家居市场的前景带来很好的契机。

[1]严萍,张兴敢,柏业超.基于物联网技术的智能家居系统[J].南京大学学报:自然科学版,2012,48(1):26-32

[2]郝永亮,杨铁梅.基于CC2430的ZigBee无线通信模块设计[J].机械工程与自动化,2012(4):198-200

[3]汪开元,洪慧,沈明华.数字家庭无线控制网络组网策略研究[J].计算机工程,2011,37(22):91-93

[4]许洪华,刘科.基于Modbus协议的ZigBee/工业以太网网关设计[J].微计算机信息,2009,25(6):281-283

[5]戴敏,王宜怀,潘启勇.基于ZigBee技术的智能家居系统设计[J].计算机测量与控制,2013,21(3):706-708

[6]赖联有.ZigBee协议分析及其实现[J].齐齐哈尔大学学报,2010,26(1):47-50

[7]陈湘平,房莉.基于ZigBee的数据采集系统设计[J].微计算机信息,2009,25(10):99-101

[8]吕鑫,王忠.ZigBee无线数据传输模块的设计与实现[J].安徽师范大学学报:自然科学版,2010,33(4):332-335

(责任编辑:汪材印)

2014-04-06

安徽省高等学校优秀青年人才基金项目“基于蓝牙与S3C2440机器人数据采集系统研究与实现”(2009SQRZ201) 。

王韦伟(1967-),女,江苏张家港人,双学士,副教授、高级工程师,主要研究方向:计算机应用技术。

10.3969/j.issn.1673-2006.2014.07.025

TN92;TP212

A

1673-2006(2014)07-0080-04

猜你喜欢
串口智能家居无线
《无线互联科技》征稿词(2021)
浅谈AB PLC串口跟RFID传感器的通讯应用
无线追踪3
基于ARM的无线WiFi插排的设计
基于Zigbee的无线通信技术在智能家居中的应用
ADF7021-N在无线寻呼发射系统中的应用
关于智能家居真正需求的探讨
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信