系统ZigBee 基础网络的数传模块采用的芯片为CC2430 射频芯片,CC2430 是无线SOC ( System OnChip) 设计,系统所需的一般电路都已集成在芯片内部,只需简单外围电路就能实现信号收发功能。
CC2430 应用电路如图3 所示。
图3 CC2430 应用电路
电路使用非平衡天线。其中非平衡变压器由电容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 数传模块组成。一方面,终端设备通过智能家电模块中的传感器单元收集家居环境的内部数据信息,通过信号调制模块得到有用信号,然后借助无线数传模块将信息上传; 另一方面,终端设备可通过无线数传模块接收控制命令,并传达给智能家电模块的命令执行单元进行命令执行。
图4 终端设备结构
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.