世界上第一幢智能建筑1984 年在美国出现后,家居环境智能化已成为当前的社会主流,随着人们生活节奏的加快和生活压力的加大,智能家居成为人们追求舒适生活的必要途径。智能家居网络是指在家庭内部通过一定的传输介质( 如电力线、双绞线、同轴电缆、无线电、红外等) 将各种电气设备和电气子系统连接起来,采用统一的通信协议,对内实现资源控制,对外能通过网关设备与外部互连进行信息交换的网络系统。文中提出了通过ZigBee 无线组网技术构建智能家居系统底层网络的方案。目的在于使智能家居系统的底层网络构建变得简单快速,进而使整个智能家居系统具备快速部署和易扩展的特性。
1 网络结构概述
文中设计的智能家居系统基层网络采用ZigBee无线组网技术实现家居系统内部网络,基础网络结构采用星型拓扑结构。通过ZigBee 无线通讯模块与智能家电以及传感器构成家居内部网络的终端设备; 使用FFD( Full Function Device) 设备为家居内部ZigBee网络的中心协调器,负责建立和维护网络; 在中心协调器与中央控制服务器之间使用RS232 串口通信实现连接,并通过PC 机与互联网相连,系统结构如图1 所示。作为智能家居系统的底层基础网络,家居内部ZigBee无线网络可以实现的功能有: ( 1) 收集家庭环境内部的数据和信息。( 2) 对于终端设备上传的简单情况做初步的预处理。( 3) 汇总基础网络信息,通过RS232 串口通讯协议将数据上传到中央控制服务器。
图1 系统结构图
2 ZigBee 技术
ZigBee 是基于IEEE802. 15. 4 标准制定的一种短距离、低功耗的无线个人网络通信协议,具有近距离、低复杂度、自组织、低功耗、低数据速率、低成本的特点。
ZigBee 协议栈是以OSI(Open Systems Interconnection)七层结构为参考建立起来的,为简化协议栈,ZigBee 协议栈由4 个层结构组成,即物理层、MAC 层、网络层和应用层,ZigBee 协议栈结构如图2 所示。
图2 ZigBee 协议栈结构图
(1) 物理层: 主要功能是启动和关闭无线电收发机、当前频道内的能量监测、接收包连接质量指示、为CSMA - CA 确认清除频道、频道频率选择、数据传输和接收。
(2) 介质接入控制层( MAC 层) : MAC 层负责维护物理无线电频道的接口,任务包括: 对于协调器要负责产生网络信标、对网络信标进行同步、维护个人局域网的加入和离开、维护设备安全、利用CSMA - CA 机制进行频道管理、处理与维护GTS 机制、在MAC 实体内部保证可靠的连接等。
(3) 网络层: ZigBee 网络层由ZigBee 联盟自行定义,负责为无线网络提供建立、加入和离开网络,进行路由转发等功能。
(4) 应用层: 由用户根据需要来自行开发,概括来说,应用层要实现的功能为: 维持节点功能,发现该节点附近的其他工作节点,维护和管理多个节点之间的通信。
3 ZigBee 基层网络硬件
3. 1 ZigBee 数传模块介绍
系统ZigBee 基础网络的数传模块采用的芯片为CC2430 射频芯片,CC2430 是无线SOC ( System OnChip) 设计,系统所需的一般电路都已集成在芯片内部,只需简单外围电路就能实现信号收发功能。
CC2430 应用电路如图3 所示
电路使用非平衡天线。其中非平衡变压器由电容C341和电感L341、L321、L331以及一个印制板微波传输线组成,整个结构满足射频输入、输出匹配电阻50 Ω 的要求; R221和R261为偏置电阻,电阻R221主要用来为32 MHz的晶振提供合适的工作电流; XTAL1为32 MHz晶振,用1 个32 MHz 的石英谐振器和2 个电容( C191和C211) 构成一个32 MHz 的晶振电路; XTAL2为32. 768 kHz 晶振,用1 个32. 768 kHz 的石英谐振器和2 个电容( C441和C431) 构成一个32. 768 kHz 的晶振电路; 电压调节器为所有要求1. 8 V 电压的引脚和内部电源供电,电容C241和C421为去耦合电容,用来电源滤波,以提高芯片工作的稳定性。本系统在终端设备和中心协调器的设计中都采用标准的10 芯调试接口。
调试接口使用CC2430 的P2_1作为调试数据IO,P2_2作为调试时钟,在非调试模式下这两个IO 可作为GPIO.
调试接口允许片上的Flash 编程,且能访问存储器和寄存器、设置断点、单步运行和修改寄存器内容。当RESET_N输入保持低电平时,如果强制调试时钟连续经历两个上升沿,系统便进入调试模式。
3. 2 终端设备结构设计
终端设备是智能家居环境内部数据来源以及控制命令的具体执行者,如图4 所示,其主要由智能家电模块、信号调制模块和ZigBee 数传模块组成。一方面,终端设备通过智能家电模块中的传感器单元收集家居环境的内部数据信息,通过信号调制模块得到有用信号,然后借助无线数传模块将信息上传; 另一方面,终端设备可通过无线数传模块接收控制命令,并传达给智能家电模块的命令执行单元进行命令执行。
3. 3 中心协调器结构设计
中心协调器是智能家居无线内部网络的核心,负责建立和维护网络,并通过串口向PC 机发送终端设备上传来的数据信息,同时将控制中心传达的命令传达到正确的终端设备,具体结构如图5 所示。与终端设备的不同之处在于中心协调器不包含智能家电模块和信号调制模块,为侦听串口接收中断,在中心协调器硬件平台上扩展了RS232 串口。
图5 中心协调器结构。
4 ZigBee 网络通讯软件
4. 1 信道分配
通过ZigBee 协议栈中的MAC _ RADIO _ SET _CHANEL( x) 可以配置智能家居系统无线ZigBee 网络的无线信道,其中形参x 为信道编号,缺省值为11 频道。在mac_radio_defs. h 文件中可定义MAC_RADIO_SET_CHANEL( x) 函数。
原语来启动智能家居系统网络的建立。由于文中采用星型网络,所以在智能家居系统中只允许中心协调器进行初始的网络建立。
具体过程: 应用层通过NLME _ NETWORK _FORMATION. request 开启网络建立过程。网络层接收命令后,随即要求MAC 层进行信道扫描; MAC 层完成第一次扫描后,将扫描结果回馈到网络层,网络层管理实体对接收到的信道按照能量值进行排序,并进一步处理,找到一条合适的信道; 随后网络层会为这个网络配置一个PAN 标识符和一个16 位的网络地址来启动网络。
4. 2 加入网络
首先,终端设备通过NLME_NETWORK_DISCOVERY.request 原语,启动加入网络流程。网络层随后发送MLME_SCAN. request,要求MAC 层执行信道扫描。
当MAC 完成扫描后就会向网络层管理实体回馈扫描信息。网络层管理实体随后发送网络发现确认原语,将扫描到的ZigBee 版本号、堆栈结构、各域网标识符、逻辑信道以及是否允许连接等信息上传应用层。应用层决定是否加入并通过发送加入原语申请加入。此时中心协调器在收到终端设备的申请加入请求后,中心协调器通过NLME_NETWORK_JOINING. request 原语向MAC 层下达允许加入的命令,并通过NLME _PERMIT_ JOINING. confirm 原语反馈命令执行情况。
加入请求原语中的PermitDuration 参数是ZigBee 协调器允许终端设备的连接时间,有效值范围0x00 ~0xFF.当PermitDuration 参数被设定在0x01 到0xFE之间时,网络层管理实体就会设定一个定时器,用来计时,以此进行连接的时间限制。在智能家居系统中通常不需要对终端设备与中心协调器的连接进行时间限制,所以这一参数通常设定为0xFF.
4. 3 终端设备程序流程
终端设备,通过传感器模块收集信息,并借助ZigBee模块将收集来的信息上传,当ZigBee 模块接收到控制命令时,控制模块负责根据命令执行操作。程序流程如下: 开启电源启动终端设备,初始化终端设备的硬件资源、并启动协议栈、加入网络。当设备成功加入网络后,开始设置循环采集时钟,当有数据包被收到后,终端设备随即解读数据信息,并执行命令。没有数据包接收就进入采集过程,当发现采集数据超过限制时,按预定程序进入处理程序并向上传达报警数据包报警,当到达循环采样点时,系统将该时刻的采集数据上传。
图6 终端设备程序流程图
4. 4 中心协调器程序流程
中心协调器由ZigBee 模块接收终端设备上传来的数据信息,并通过串口线连接PC 机器,将收集来的信息传输给中央控制服务器。流程如下: 开启电源开关启动中心协调器,其主程序启动。通过halBoardInit( )函数初始化设备的硬件设备,系统进入网络建立过程。
当网络建立完成之后,中心协调器进入一个无限的循环工作状态: 如果有无线电数据,就进入无线电接收数据过程,接收完成后还需要将接收来的信息,上传到控制中心; 如果没有无线电数据接入,则判断串口控制命令,协调器随即开始解析命令,并向下传达。当这两个过程完成时,系统回到判断是否有无线电数据的判断过程,系统进入再一次循环。
图7 中心协调器程序流程图
5 结束语
以ZigBee 无线组网技术构建智能家居系统的底层基础网络,通过构建一种成本低廉、部署快捷的基础无线网络,进而降低智能家居系统的搭建成本和构建难度。此外,以此为基础的智能家居系统还具有良好的扩展性,可根据具体的应用需求,在不同的智能家电模块与无线数传模块之间实现连接,使之接入智能家居系统。