在这个信息的时代,随着科学技术的飞速发展,家居智能化已经成为人们的迫切需求。因此,为了使人们的生活更绿色环保、更方便、更安全,温湿度及光照实现实时采集和家实现自动控制、室内火情和可燃性气体实现事实检测与监控变得越来越重要。在智能家居系统中,担任重要成分的控制系统和组网技术,对其的选择是十分重要。其中,在智能家居的控制系统中,无线数据传输方式的灵活等特点战胜了传统的有线数据传输的局限性,从而得到了广泛应用;为了方便用户的安装和使用,避免繁琐的有线的布线,采用无线方式进行组网。无线组网方式多种多样,其中ZigBee技术以其组网灵活性、功耗低等优异特性而得到广泛使用。
1 网络结构概述
智能家居系统采用ZigBee无线组网技术作为基层网络来实现家居系统内部网络。在多种网络拓扑结构中,星型结构的覆盖范围较小,但是结构简单、数据传输快,所以在家庭范围内,采用星型结构作为基础的网络结构。通过ZigBee无线通讯模块与传感器模块及家电构成终端设备,实现数据的采集,传输等;使用全功能设备作为家居内部ZigBee网络的中心协调器,负责建立和维护网络;通过RS232串口通信实现协调器与传感器模块之间的连接,系统结构图如图1所示。作为智能家居系统的底层基础网络,家居内部ZigBee无线网络可以实现的功能有:1)采集家庭环境的数据和信息。2)简单处理设备终端上传来的数据。3)通过串口通信协议将数据上传到中心协调器。4)协调器根据采集上的实时数据作出判断,给出控制指令。5)通过串口通信协议将数据回传给设备终端。6)设备终端作出相应的响应。
2 ZigBee技术
ZigBee技术一种短距离低速传输的无线网络协议,其功耗抵、快速、可靠、成本低、容量大、安全的特点,使其可广泛应用于各种自动控制领域。
ZigBee协议栈是在OSI七层模型的基础上根据市场和应用的实际需要定义的简化协议栈,ZigBee协议栈由物理层、MAC层、网络层和应用层四层结构组成,其中网络层和应用层是ZigBee联盟在IEEE 802.15.4标准基础上重新定义的,而物理层和MAC层则是沿用了IEEE 802.15.4标准。ZigBee协议栈结构如图2所示。
1)物理层(PHY):本层规定了物理无线信道以及MAC子层之间的接口,提供了PHY层的数据服务和管理服务。主要功能是激活/休眠无线收发设备,对当前信道进行能量检测,链接质量指示,为载波检测多址与碰撞避免(CMSA—CA)进行空闲频道评估、频道选择、数据的发送及接收等。
2)媒体介质访问层(MAC层):提供数据服务和管理服务两种服务,主要完成的功能有:网络协调者产生并发送信标帧,设备与信标同步,支持RAN网络的关联和取消关联操作,为设备的安全性提供支持,信道接入方式采用免冲突载波检测多路访问(CMSA—CA)机制,处理和维护保护时隙机制,在两个对等的 MAC实体之间提供一个可靠地通信连路。
3)网络层(NWK):负责拓扑结构的建立和维护网络连接,主要功能有设备连接和断开网络时所采用的机制,以及在帧信息传输过程中所采用的安全性机制。
4)应用层(APL):是用户根据需要自行来开发的,由应用支持子层、ZigBee设备配置层和应用架构层组成,其中,应用支持子层为网络层和应用层提供接口,把基于服务和需求相匹配的两个设备作为一个整体来进行管理的绑定服务,并未绑定服务构建和保留绑定表,在绑定设备之间传输信息;ZigBee设备配置层提供标定服务、为远程设备提供请求的任何标准的描述符信息;应用架构层是应用支持子层的应用程序的无线数据接口,应用程序使用该层提供的功能来发送和接收无线数据。
3 系统硬件设计
ZigBee系统采用的传感器模块芯片为CC2530芯片,CC2530是TI公司推出的无线片上系统(SOC)芯片,其需要极少的外接元件,片上集成了不同的构造模块,大致可分为CPU和相关的存储器模块,外设、时钟和电源管理模块,无线信收发模块3类,并通过ZigBee协议栈实现了应用。
3.1 温湿度及光照传感器硬件电路
在本设计中,STH10作为温湿度模块的主芯片,供电电压为3.3 V,负责采集室内的温度和湿度。光照传感器模块可以感应光照的强度。温湿度探头直接使用IIC接口进行控制,光敏探头经运放处理后输出电压信号到AD输入。其电路原理图如图3所示。
3.2 酒精传感器电路
酒精传感器模块是用等级来划分的,不能显示具体的数值。通过传感器输出端的电压变化来体现酒精的含有量等级。外界给传感器供5 V电压,传感器内部工作。在清洁的空气中,输出端的电压为一恒定值,若空气中含有酒精,输出端的电压会降低,根据电压降低程度来判断酒精含量等级。其原理图如图4所示。
3.3 继电器模块电路
每个继电器模块上有4个继电器,每个继电器都能单独进行工作。继电器模块采用一片带中断输出的IIC接口的GPIO扩展芯片实现,IIC总线扩展芯片使用PCA9554,作为输出是高电平有效。其原理图如图5所示。
4 系统软件设计
本设计是在IAR7.51软件的开发环境下,通过C语言编写驱动程序来进行仿真调试的。
4.1 Z—Stack协议栈软件架构
Z—Stack协议栈是基于一个轮转查询时操作系统的,ZStack从main()函数进入,首先对系统进行初始化,然后开始执行操作系统。协议栈著有流程如图6所示。
4.1.1 系统初始化
初始时,系统需要对硬件平台和软件架构所需的要的各个模块进行初始化,为操作系统的运行做好准备工作,其具体流程图和对应的函数如图7所示。
4.1.2 操作系统的执行
操作系统实体只有一行代码:
Osal_start_system();//no return from here
此函数不会返回,是一个死循环,这个函数就是轮转查询式操作系统的主体部分,这个函数会不断地查询每个任务是否有事件发生,如果发生,执行函数;如果没有发生,查询下一个任务。
任务是由优先级的,系统优先处理优先级高的任务。
程序清单:
操作系统要处理MAC层,网络层,物理层,应用层,zigbee设备应用层,应用层,这6层的任务,优先级是从MAC层具有最高优先级,到用户层具有最低优先级。如果MAC层任务有事件处理不完,用户层任务就不会得到执行。
4.2 系统网络的形成
4.2.1 协调器建立网络
ZigBee网络节点设备调用ZDO_StartDevice()函数来启动设备,然后调用它们形成网络。协调器将扫描DEFAUL_CHANLIST,从中选择一个合适的信道。这个网络会被配置一个PAN标示符和一个16位的网络地址。然后调用 NLME_JNetworkFormationRequest()函数来建立网络:
4.2.2 节点加入网络
数据采集节点首先会通过NLME_NETWORK_DISCOVERYrequest原语,启动加入网络流程。数据节点启动后,先扫描 DEFAULT_CHANLIST指定的频道。数据采集节点首先要通过信道扫描来发现2.4GHz频段的信道中存在的网络。当收到协调器发送的信标应道后,就按照信标内的协调器的网络地址和PAN_ID等信息加入网络。
5 调试结果
调试结果如图8所示。
6 结论
在协调器上显示温湿度值、光照值及反应酒精浓度的电压值,并且当温度高于23摄氏度时,自动开启继电器进而驱动电扇的开启与关闭;当光照大于250勒克斯时,步进电机上的直流电机自动运转进而驱动窗帘的开合;当酒精传感器采集的电压值大于120 V时,驱动蜂鸣器报警。