ZigBee2006协议栈的 无线传感执行网络构建
OSAL层初始化时,通过osalAddTasks函数提供任务列表,向实时操作系统中添加用户所需要的任务。在该函数中,TI公司已经添加了一些任务,如硬件应用层初始化及处理函数、网络层初始化及处理函数、应用层初始化及处理函数等。在该函数中添加自己的任务,添加任务函数如下: osalTaskAdd(CSCE_Init,CSCE_ProcessEvent,OSAL_TASK_PRIORI-TYLOW);
osalTaskAdd函数在OSAL层中的OSAL_Task.C文件中定义,其作用是添加一个任务到任务列表。其中,第1个参数CSCE_Init为用户任务的初始化函数的函数名,第2个参数CSCE_ProcessEvent为用户任务的处理函数的函数名,第3个参数 OSAL_TASK_PRlORITY_LOW为用户任务的优先级。
任务初始化函数CSCE_Init和任务处理函数CSCE_ProcessEvent都需要遵循ZigBee2006协议栈的格式。其中,CSCE_Init函数和CSCE_ProcessEvent函数需要在应用层头文件SampleApp.h中进行声明。
CSCE_Init函数有一个参数task_id,该参数为任务ID,具体值由OSAL进行分配。CSCE_ProcessEvent函数有2个参数:第 1个参数与CSCE_Init函数相同,为任务ID;第2个参数events为需要处理的事件,它是一个16位的二进制数,每一位代表一个事件。
利用OSAL层进行任务设计时,必须保留系统任务事件SYS_EVENT_MSG(0x8000),该事件为强制事件。进行任务处理时,首先要对系统任务事件是否发生进行判断,任务处理流程如图5所示。由于ZigBee2006协议栈为全功能协议栈,不需要对IEEE 802.15.4和ZigBee规范进行全面的了解,只需要在应用层进行一些设计和改动,即可实现数据的发送、接收以及网络组建功能。在终端节点的 CSCE_ProcessEvent函数的上电初始化处理部分,加入物理地址和短地址提取函数,然后调用发送函数将物理地址向协调器发送。协议栈中的物理地址获取函数为NLME_GetExtAddr(),其返回结果为一个指向节点的64位IEEE地址的指针。短地址的获取函数为 NLME_GetShortAddr(),其返回结果为一个16位的无符号整型数据。
数据发送函数在ZigBee2006规范的原语中已经规定了其参数的顺序及意义。具体到TI/Chipcon公司所提供的ZigBee2006协议栈中,该函数为AF_DataRequest,其具体形式如下:
在协调器端和路由器(或终端节点)的CSCE_Pro-cessEvent函数中接收到数据部分(即CSCE_MessageMS-GCB函数)中对数据进行处理,将所接收到的数据(即物理地址和短地址)通过串口发送到计算机端,进行显示。
ZigBee2006协议栈中设计了串口接收处理函数:
该函数在MT目录的SPIMgr.C中。实验中,在协调器端调用该函数,即可从PC机端接收数据并进行相应的处理。
4.4 传感器程序与ZigBee2006协议栈的融合
系统程序中,传感器端的物理地址及短地址的发送部分程序,添加在ZigBee2006协议栈中的CSCE_ProcessEv-ent函数的上电初始化部分,即ZDO_STATE_CHANGE消息下。协调器及传感器端的数据接收都添加在CSCE_ProcessEvent函数的数据接收部分,即AF_INCOMING_MSG_CMD消息下。系统整体工作过程如图6所示。
4.5 PC机端程序
在系统中,节点上电加入网络后,协调器会通过RS232向PC机发送新加入节点的IEEE地址。PC机将从串口接收到的物理地址和短地址进行存储,并改变计算机中所存储的房间地图中的节点颜色进行指示。该程序使用Visual C++6.O编写。
对用户而言,当想要获取房间内传感器所测量区域的温湿度、光照等情况时,只需要点击PC机所显示的地图上相应的节点。程序会调用已存储在相应位置的传感器节点的物理地址,通过串口和ZigBee网络向该节点发送测量传感器数据的指令,并等待接收传感器传回的温湿度,并在PC机界面进行显示。
5 结 论
实验表明,节点的功耗较低,每个节点使用电池供电可以工作3~6个月,可见应用ZigBee构建家庭环境的传感执行网络是可行的。
网络 构建 执行 传感 协议 无线 ZigBee2006 相关文章:
- 基于Zigbee技术家用无线网络的构架(12-14)
- 统一无线网络架构 实现高性能企业Wi-Fi服务(03-16)
- 基于GSM网络的TD-SCDMA无线网络规划(02-18)
- 基于精简协议栈的ZigBee网络节点研究(07-17)
- 分阶段实现CDMA网络优化(03-10)
- CDMA2000 1x EV-DO无线网络规划探讨(10-24)