在智能家居系统中,将无线网络技术应用于家庭网络已成为势不可挡的趋势。这不仅仅是因为无线网络可以提供更大的灵活性、流动性,省去花在综合布线上的费用和精力,而且更因为它符合家庭网络的通讯特点。随着无线网络技术的进一步发展,必将大大促进家庭网络智能化的进程。
本文介绍的智能家居无线网络系统采用ZigBee技术,它是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,符合IEEE802.15.4协议,是IEEE工作组专门为家庭短距离通讯制定的新标准。
ZigBee技术简介
ZigBee技术的主要优点有:(1)省电:两节五号电池可使用长达六个月到两年左右的时间;(2)可靠;采用了碰撞避免机制;(3)成本低;(4)时延短;(5)网络容量大;(6)安全:ZigBee提供了数据完整性检查和鉴权功能,加密算法采用AES-128,各种应用可以灵活确定其安全属性。
ZigBee技术的特点完全符合家庭网络通讯的需要,因此选择ZigBee技术构建智能家居无线网络系统。
智能家居无线网络系统
本系统以家庭为单位进行设计安装,每个家庭都安装一个家庭网关、若干个无线通讯ZigBee子节能模块。在家庭网关和每个子节点上都接有一个HeliLink无线网络收发模块(符号ZigBee技术标准的产品),通过这些无线网络收发模块,数据在网关和子节点之间进行传送。其系统组成如图1所示。
下面介绍各部分的结构及功能。
家庭网关的结构及功能为:
(1)采用ARM构架的32位嵌入式RISC处理器和.uClinux操作系统;
(2)通过门锁进行自动设防/解防;
(3)遇抢劫或疾病,按紧急按钮,自动向管理中心报警;
(4)每家每户配有自己的网页,通过网页显示小区通知、系统各部分工作状况及数据;
(5)水、电、气各表数据发给牧业管理中心;
(6)通过以太网与小区管理中心通讯;
(7)通过网关上的无线ZigBee(IEEE802.15.4)模块与网络中各子节点进行通讯。
ZigBee无线通讯子节点的功能为:
(1)两路脉冲量数据采集,可采集水、电、气三表数据;
(2)两路安防传感器开关量数据采集,可进行设防/撤防报警、安防报警(红外幕帘、门磁、窗磁、玻璃破碎等);
(3)一路模拟量数据采集;
(4)一路模拟量数据输出;
(5)一路继电器触点输出;
(6)通过无线通讯IEEE802.15.4协议及家庭网关通讯。
通讯协议
3.1 ZigBee协议的帧结构
采用符号ZigBee标准的HeliLink模块的数据帧由数据模式、目标地址、数据长度、数据信息与校验和五部分构成,格式如下(数据帧结构中的数据都是16进制数):
“数据模式”占用一个字节。“目标地址”表示数据帧结构要发送的目标位置(网络中的节点号),它占用一个字节。“数据长度”表示数据帧结构中从“数据1”到“数据n”所占据的字节数,它也占据了一个字节。“数据信息”表示用户要通过UART0传送的命令或者有效数据,占据的字节数由“数据长度”决定。“校验和”是对帧结构中的全部数据(校验和字节除外)进行的校验,采用字节逐位异或的方式实现。“校验和”也占据一个字节。
3.2 无线网络通讯协议帧结构
家庭网关通讯协议帧结构是建立在ZigBee协议帧结构的基础上的,相当于底层协议中的数据场部分。所以帧结构由节点号、功能编码、数据信息三部分组成,如下所示:
节点号字段数据长度为1字节,其中低四位为数据采集功能编号,高四位为子节点号,如下所示:
功能编码分为三个部分:方向位、数据类型和功能类型。其格式为:
方向位:
根据主节点作为通讯发送者还是接收者,本系统功能可分为两大类:上行和下行。方向位即决定了这一点。
数据类型:
数据信息与功能编码关系十分密切,根据功能不同,数据场中数据的内容含义不同;根据数据长度不同,数据类型也不同。
功能类型:
每一个功能类型对应一种系统功能。通过解析功能类型编码可得到系统功能,对于下行帧,子节点得到主节点通知其执行的命令和需要的数据;对于上行帧,主节点得到子节点返回的信息、数据和命令执行的情况。
数据信息存放数据,数据信息长度可根据功能编码中的数据类型而定。
无线节点硬件设计
由于无线节点使用电池供电,且需要安装在三表或电器内部,要求电池体积很小,因此电池的容量不可能太大。希望一颗钮扣电池可以有效工作一年以上。无线通讯需要电池提供足够大的电流,耗电量较大,所以低功耗设计成为子节点设计的重点和难点。
无线网络节点硬件组成如图2所示,采用TI公司的16位单片机MSP430F1232作为处理器,采用符合ZigBee标准的Heililink无线网络收发模块建立无线通讯,采用RAMTRON公司的铁电存储器FM24LC16存储数据,开关量输出使用松下公司的磁保持继电器TQ2L2—3V,PWM输出放大器采用MAXIM公司的MAX4464。使用锂离子钮扣电池供电,通过采用TI公司的电荷泵IPS60210将电压稳定至3.3V。无线子节点通过查询八位拨码开关确定其功能,可以实现两路脉冲量的计数、两路开关量的输入、两路开关量的输出、一路模拟量的输入、一路模拟量的输出、电池电量采集无线通讯等功能。
4.1 处理器
处理器采用TI公司的16位单片机MSP430F1232。该单片机突出的特点是可以实现极低的功耗,具有五种省电工作模式,而每种工作模式可以通过对时钟的控制实现不同的功耗,其工作在LPM4模式下的功耗电流只有0.1μA,非常适合采用电池供电的系统。片内FLASH ROM用于存储应用程序、通讯协议;UART接口连接无线通信模块;10位A/D转换器实现电池电压检测、模拟量输入;内部16位定时计数器实现PWM输出,经低通滤波后,再由放大器放大,实现模拟量输出;I2C接口连接铁电存储器FRAM。其余的通用输入输出端口分别实现数字量和脉冲量的输入、输出以及拨码开关状态的输入。
4.2 铁电存储器
存储器采用RAMTRON公司的FM24CL16,它是一种串行非易失性存储器,其特点是可无限次地读写,掉电数据可保护10年;写数据无延时;使用二线制串行总线及其传输规范进行双向传输,这种方式占用脚位少,占用线路板空间小,总线速度可以达到1MHz,静态工作电流仅为1μA。这些特点使其十分适合本设计对功耗低、体积小、数据读写频繁的要求。
4.3 磁保持继电路
磁保持继电器采用松下公司的TQ2-L2—3V,通过MSP430F1232的输出管脚DO_S、DO_R控制开关管Q1、Q2的开关状态,实现继电器线圈电流的通断控制,从而控制继电器触点的动作。如果采用传统继电器,需要一直提供电流来维持继电器状态,这样功耗很难降低。磁保持继电器具有锁存功能,触点动作后无需继续提供电流,从而降低了功耗。其开关两端可耐压直流220V,交流250V,满足了通断市电的要求。
4.4 无线网络收发模块
该模块特点是体积小、内嵌网络通讯协议,符合ZigBee网络层的标准,为IEEE.802.15.4标准兼容产品,可实现高效率发射、高灵敏度接收,无线数据速率高达76.8kbit/s。通过串口与MSP430F1232进行通讯,将获得的数据无线发送出去。
4.5 拨码开关
八位拨码开关的状态决定该子节点的节点号和其实现的功能。
无线节点软件设计
鉴于节点使用的通用性要求,需要上电后根据拨码开关确定子节点号及其所要完成的功能。其主要功能包括水电气三表的数据采集和存储、报警信息的获取、设防撤防状态的获取和以上信息数据的无线发送。根据拨码开关的状态确定节点需要完成的其中一项或几项工作,并调用相应的初始化程序。由于无线通讯模块的功耗较大,CPU大部分时间都处于休眠状态,通过各级中断唤醒CPU和恢复无线通讯模块的正常工作。数据的无线发送和接收要遵守家庭网关通讯协议。
系统主程序流程图如图3所示。系统上电后,先关闭看门狗定时器,开关电源进入SNOOZE节功状态,同时关闭无线通讯模块电源,进行I2C接口的初始化,读取拨码开关状态,并根据拨码开关的状态进行单片机通用I/O口的初始化,以确定其作为脉冲量输入端口还是开关量输入端口,或是撤防设防输入端口。其中,若作为脉冲量输入端口,则调用相应脉冲量初始化程序,设置其端口为上升沿触发;若作为开关量输入端口,则调用相应开关量初始化程序,设置其端口为下降触发;若作为撤防设防输入端口,则调用设防撤防初始化程序,当前端口状态为设防状态时,进行撤防初始化,设置其端口为上升沿触发。当前端口状态为撤防状态时,进行设防初始化,设置其端口为下降沿触发。
端口初始化结束之后,进行串行通讯UART接口初始化,打开UART接收中断使能,使其能响应网关发送给子节点的命令。定时器连续工作在计数模式,打开计数器溢出中断使能。
单片机各部分初始化结束后,进入LPM3休眠模式,只有ACLK始终保持工作,因此在串行通讯UART和定时器初始化中,将其工作时钟定义为ACLK是十分重要的,否则进入LPM3休眠模式后,串口和定时器将停止工作和相应中断。进入LPM3休眠模式后,系统的功耗最低。
系统可响应I/O中断,当其作为脉冲量输入端口时,脉冲量上升沿触发中断,经过去抖处理后,脉冲量计数增1,遇到进位时,调用函数处理进位,最后将计数值写入FRAM,进入LPM3休眠模式。当其作为开关量输入端口时,开关量下降沿触发中断,停止计数器计数,打开电源,打开串行通讯,重复发送报警信息,直到收到网关应答信息时才停止报警,恢复定时器计数,进入LPM3休眠模式。
数据发送要遵循通讯协议,图4所示为数据发送程序流程图。由于文章篇幅所限,这里就不多述了。
本文介绍的基于ZigBee技术的智能家居无线网络系统,由于其具有低成本、低功耗、较远的覆盖范围及通用性的特点,将成为智能家居系统中的又一亮点,必将给现代智能家居系统带来一场新的变革。