基于ZigBee无线传感器网络的智能家居设计
扫描二维码
随时随地手机看文章
摘要 根据智能家居的特点和需求,选用基于ZigBee无线传感器网络技术,实现以其低功耗,优秀组网能力等特点,在家用系统控制、楼宇自动化、工业监控领域的应用。介绍了ZigBee网络的特点和应用前景,描述了ZigBee协议,对ZigBee无线传感器网络体系结构做了分析,对于网络的设计和节点的加入等进行了具体的分析和研究,说明了系统能够对家居环境进行良好的监控。
关键词 无线传感器网络;ZigBee协议;智能家居
现代家庭已经从追求家居的豪华装饰转向家居智能化,享受智能化带来的多元化信息,以及安全、舒适、便利的生活方式。网络通信、计算机、电子和智能传感器技术的快速发展,为智能化家居的发展提供了机遇。现有传统无线技术通常是耗电高,且占用过多的计算和通信资源,大大增加了成本。而ZigBee技术具有低复杂度、低成本、低功耗、高安全性等优点,能够满足智能家居无线传感器网络的要求。
1 ZigBee技术
1.1 ZigBee协议
ZigBee标准是基于IEEE802.15.4的标准,ZigBee协议堆栈分为两部分,IEEE802.15.4处理低级MAC层和物理层协议;应用层的标准规范由ZigBee联盟制定,ZigBee联盟对其网络层和API进行了标准化。ZigBee节省的大部分能量归功于专为低功率设计的IEEE802.15.4协议。
1.2 各层协议的功能
ZigBee协议栈架构如图1所示,各层之间通过服务接入点(SAP)实现层与层之间的数据通信和协议栈管理。层与层之间有2个服务接入点,一个提供数据传输服务,另一个实现管理。ZigBee设备在工作时,各种不同的任务在不同层次上执行,通过层的服务完成所要执行的任务,各项服务通过服务原语实现。物理层完成收发数据、激活和休眠射频收发器、信道能量检测、空闲信道评估、数据链路质量指示的功能;物理层规范了ZigBee通信频率的工作范围,即2.4 GHz和868/915 MHz。MAC层主要负责协调器产生并发送信标帧,普通设备根据协调器的信标帧与协调器同步、支持PAN网络的关联和取消关联、支持无线信道通信安全、使用CSMA-CA机制访问信道、支持时隙保障(GTs)机制、支持不同设备的MAC层间可靠传输;在MAC层上,主要沿用了WLAN中802.11系列标准的载波侦听多址接入——冲突避免机制(CSMA-CA),以提高系统的兼容性。网络层职责为加入和离开网络机制、应用安全帧的机制及发现和保持设备之间的路径;网络层方面,ZigBee联盟规定了基于ZigBee技术的网络可以采用星状和网状拓扑,也可以是两者结合。应用层由应用支持子层、应用框架、ZigBee设备对象及用户定义的应用对象组成。应用支持子层的作用是维护设备绑定表和设备发现。设备对象的职责是定义网络内其它设备的角色、发起或回应绑定请求、在网络设备间建立安全机制等。
ZigBee标准中规定在一个ZigBee无线网络一般包含3种设备:协调器、路由器、终端节点,对应有全功能设备FFD和精简功能设备RFD两类设备类型,FFD比RFD拥有更强大的计算能力和更丰富的系统资源,可以充当网络建立者、管理者或网络终端节点设备,RFD在网络中通常只作为终端设备,从FFD接收信息或将信息传送给FFD。路由器和网络协调器是FFD设备,实现标准中规定的所有功能,而终端设备一般是各个传感器节点,为RFD设备。
1.3 网络节点的设计
如图2所示,传感器网络节点的基本组成和功能包括如下几个单元:(1)传感单元,将节点与物理世界联系起来,由一组传感器、激励装置和数模转换功能模块构成。(2)处理单元,由嵌入式系统构成,包括CPU、存储器、嵌入式操作系统等。(3)通信单元,由无线通信模块组成。(4)供电装置,此外可以选择的其他功能单元包括:定位系统、移动系统以及电源自供电系统等。
在传感器网络中大量的节点部署在感知对象内部或者附近。这些节点通过自组织的方式构成无线网络,并以协作的方式感知、采集和处理网络覆盖区域中特定的信息,从而实现对任意地点信息在任意时间的采集、处理和分析。
监控节点主要完成两方面工作:将传感器放大电路输出的模拟电压转换成数字信号,再将这个数字信号通过ZigBee网络发送给网络协调器。监控节点加入网络后,一直处于睡眠状态,当收到来自外部的唤醒信号后,开始进行数据的采集或发送报警信号,完成任务后再次回到睡眠状态,直到下一次唤醒。
2 系统方案设计
2.1 网络的建立
ZigBee协议规定:只有当前还没有加入网络且具有ZigBee协调器能力的设备,可以尝试建立一个新网络。当建网过程开始后,协调器首先对协议所规定的信道或由物理层所默认的有效信道进行能量检测扫描。如果某个信道的能量低于预定值,则表示该信道是可用信道,并进行标记。然后,在可用信道中进行主动扫描,寻找信道中存在的ZigBee设备,找到一个最佳信道,即存在ZigBee设备相对较少的信道,由该信道所组建的网络即为佳ZigBee网络。这时,协调器通过一个PAN标识符来标注该信道,以识别该新建的网络。一旦选择一个PAN标识符后,协调器将会为自己分配一个0x0000的16位逻辑地址,这样就成功地启动了一个新网络,如图3所示。
(1)在网络开始建立前,首先要确定这个设备为ZigBee协调器。我们通过协议栈配置文件ZigBee.def中的#define I_AM_COORDINATOR来定义这个设备为ZigBee协调器。协调器的应用层调用NLME_NETWORK_FORMATION.request原语,发出建立网络请求,网络层收到这个原语后,要求MAC层执行信道能量扫描。
(2)MAC层调用MLME_SCAN.request,主要找到信道能量低于设定能量值的信道,标注这些信道是可用信道。通过函数NWKStartDiscovery(),对扫描的起始信道进行设置假定起始值为N。然后执行MACStartED()对信道进行能量检测扫描,得到信道能量值。
(3)通过MACStartScan(TRUE)对信道N进行主动扫描,判断是否发现网络。通过记录每次接收到的信标帧信息扫描可用信道中网络活动情况,并将扫描结果记录在个域网描述符列表中,最后找到一个最优信道。
(4)调用函数APLNetworkForm()在最优信道上建立网络,给网络随机分配一个PAN ID,通过MACSetShortAddrLSB(0x00)和MACSetShort AddrMSB(0x00)给协调器分配一个0x0000的网络地址,并把协调器的MAC地址存入邻居表中。网络层向MAC层发送MLME_START.request原语请求开始发送信标帧运行新的个域网,MAC层将运行结果通过MLME_START.confirm原语返回网络层。网络层收到个域网启动状态后,通过NL ME_NETWORK_FORMATION.confirm原语将告知应用层建立要求的网络状态。最后协调器应用层通过发送NLME_PERMIT_JOIN.request原语允许设备与网络连接。
2.2 设备入网
在一个ZigBee协调器设备建立网络后,路由器设备或者终端设备,可以加入协调器建立的网络,具体加入网络有两种方式,一种是通过关联(Association)方式,就是待加入的设备发起加入网络,另一种是直接(Direct)方式。下面重点讨论第一种方式,也是实际中用的最多的方式。
首先对于一个ZigBee终端设备,只能加入一个网络。对于新设备来说,它首先会扫描周围它可找到的网络,寻找有能力批准自己加入网络的网络协调器,并把可以找到的所有网络协调器的资料存入自己的相邻表。存入相邻表的网络协调器的资料包括ZigBee协议版本、协议栈配置文件、PAN ID、逻辑信道以及是否允许加入网络等。在相邻表中选择一个深度最小的网络协调器,并对其发出请求信息,如果出现相同最小深度的两个以上网络协调器信息,那么随机选取一个发送请求。如果相邻表中没有合适的网络协调器信息,那么表示入网失败,终止过程。如果发出的请求被批准,那么网络协调器同时会分配给它一个16位的网络地址,此时入网成功,终端设备可以开始通信。如果请求失败,那么重新查找相邻表,继续发送请求信息,直到加入网络或者相邻表中没有合适的网络器。
设备关联加入网络的具体实现如下:
(1)在加入网络前,首先要确定这个设备是ZigBee终端设备。通过协议栈配置文件ZigBee.def中的#define I_AM_END_DEVICE来定义这个设备为ZigBee终端设备。
(2)确定为终端设备后,应用层首先设定待扫描的信道以及每个信道扫描的时间,调用NLME_NE1WORK_DISCOVERY.request原语寻找合适网络,网络层收到该原语后,通过MLME_SCAN.request,原语要求MAC层执行主动扫描获得目前网络描述参数。通过函数NWKStartDiscovery(),对扫描的起始信道进行设置,假定起始值为N。然后执行MACStartScan(TRUE)对信道N进行主动扫描。
(3)完成扫描后,网络层将发送NLMF_NETWORK_DISCOVERY.confirm原语告知应用层。通过调用回调函数AppOkayToAssociate()来判断是否要加入这个网络,判断的标准是网络协调器的MAC地址是否符合终端设备的要求,这样可以使终端设备加入到指定的网络中,应用层根据情况调用NLME_JOIN.request原语从邻居表中选择所发现的网络加入。网络确定后,网络层将请求MAC层管理实体对逻辑信道,PAN标识符等有关属性进行配置,发送MLME_SYNC.request原语获取它所要连接协调器的信标,实现与协调器的同步。然后调用MLME_ASSOCIATE.request原语到MAC层。
(4)执行函数PHYPutTxData(MAC_CMD_AS_SOCIATE_REQ)向协调器发送加入请求,并等待发送加入请求的确认。协调器接收到连接请求后首先调用MACIsJoinPermitted()来判断网络是否允许任何设备关联,允许则返回给终端设备确认帧。协调器的网络层将分配惟一的16位网络地址给该设备,并根据设备提供的信息在它的邻居表中为终端设备创建新的入口,随后向MAC发送表明连接成功的MLM_ASSOCIATE.response原语表明设备已经成功同网络连接。设备的MAC层收到来自协调器的连接响应命令帧后,通过MLME_ASSOCIATE.confirm原语发送给设备应用层表明加入成功,设备的网络层将在邻居表中设置逻辑地址信息。
3 结束语
介绍了基于ZigBee无线传感器网络技术组建信息家居网络,如图4所示,能够对家居环境进行较好的监控,根据现在家居存在的问题,拟采取现有通信网络与短距离无线网络相结合的方法提高家居数据的准确性、实时性和可靠性。相对于常见的Bluetooth、Wi-Fi等具有低复杂度、低成本、低功耗、高安全性等优点,随着无线网络技术的进一步发展,它将成为智能家居发展的趋势。