来源:中国一卡通网 作者:不详 发布时间:2012-10-30 11:03:34 字体:[大 中 小]
摘 要: 为了提高智能家居系统的快速部署能力、降低构建成本,提出了一种利用ZigBee 无线组网技术,构建智能家居系统内部基础网络的设计方案。该方案采用无线射频收发CC2430 芯片和外围电路设计终端设备与中心协调器的硬件电路。根据ZigBee 协议栈使用C 语言编写终端设备和中心协调器的通信应用软件。
图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 无线组网技术构建智能家居系统的底层基础网络,通过构建一种成本低廉、部署快捷的基础无线网络,进而降低智能家居系统的搭建成本和构建难度。此外,以此为基础的智能家居系统还具有良好的扩展性,可根据具体的应用需求,在不同的智能家电模块与无线数传模块之间实现连接,使之接入智能家居系统。
推荐文章
论坛热帖