基于无线传感网络的智能机房环境监控系统的设计与实现

时间:2012-08-22来源:网络

4.2 无线传感网软件平台搭建
操作系统是通过调度各项任务来使整个系统协调的运作起来的。对不同类型设备的处理作为一个任务,把新建的任务添加到系统中,操作系统便会把新任务与协议栈融合到一起,使系统具备新的功能,即完成了无线传感器网络软件平台的搭建。
1)建立任务:任务初始化函数的建立
任务初始化函数要做两件事,首先是为任务获取系统分配的任务ID,最后是初始化运行任务所需的硬件资源及变量。
任务初始化函数的格式为:
XXX_Init(unsigned char task_id)
{
XXX_TaskID=task_id;
初始化任务运行所需的硬件资源及变量。
}
其中“XXX”表示任务的名称。“XXX_TaskID”是用户自己定义的变量,用于存储任务的ID号。
2)建立任务:任务事件处理函数的建立
对模块的各种外部变化操作系统以事件的方式来处理,不同的宏定义代表不同事件,比如:KEY_CHANGE为按键事件;ZD0_STATE_CHANGE为网络状态变化事件;AF_INCOMING_MSG CMD表示接收到其他节点发送来的数据,该事件为无线处理的重要事件。
任务事件处理函数原型为:uint16 Sample_ProcessEvent(uint8 task_id,uint16 events);形参task_id为任务ID号,events为事件代号。
3)添加任务
所有的任务添加都是在应用层App/OSAL_SampleApp.c中通过osalTaskAdd()函数添加一个OSAL任务,函数原型为:
void osalTask Add(const pTaskInitFn pfninit,
const pTaskEventHandlerFn pfnEventProcessor,
const byte taskPriority)
参数1:pfnInit(指向任务初始化函数的指针);
参数2:pfnEventProcessor(指向任务事件处理函数的指针);
参数3:taskPrioritv(任务优先级)。
4.3 ZigBee网络通讯设置与组网
4.3.1 网络通讯设置
在Tools/f8wConfig.cfg配置文件中定义了工程相关的网络通讯设置。其中比较重要的是ZigBee通信相关的信道通道的设置和PAN ID的设置。用户可以通过更改该文件中的相关宏定义,来控制ZigBee网络的通道和PAN ID,以此来解决多个ZigBee网络的冲突问题。信道是数据在物理层传输时使用的通道:PIN ID为ZigBee网络的标识符,用来区别不同的网络。
除此之外在启动网络前还需要修改模块的物理地址。在ZigBee网络中,无论是协调器还是路由器或终端节点,每个模块都有自己唯一的64位物理地址。物理地址的修改有两种方式,一种是通过Zmain/Zmain.c中的zmain_ext_addr()函数设置;另一种是使用Chipeon Flash Programmer软件。默认地址0xff ff ff ff ff ff ff ff为无效的,除此之外都是有效的,且保证在网络中的唯一性即可。
4.3.2 网络组建
1)协调器格式化网络
协调器将扫描DEFAULT_CHANLIST指定的通道,最后在其中之一上形成网络。如果ZDAPP_CONFIG_PAN_ID被定义为0xFFFF,那么协调器将根据自身的IEEE地址建立一个随机的PAN ID。如果ZDAPP_CONFIG_PAN_ID没有被定义为0xFFFF,那么协调器建立网络的PAN ID将由ZDAPP_CONFIG _PAN_ID指定,通常这个值介于0~0x3FFF。
2)路由器和终端设备加入网络
路由器和终端设备启动后,将扫描DEFAULT_CHANLIST指定的频道。如果ZDAPP_CONFIG_PAN_ID没有被定义为0xFFFF,则路由器或终端将强制加入ZDAPP_CONFIG_PAN_ID定义的网络。反之随机加入网络。
4.4 数据传输
系统中涉及的数据传输方式有两种:无线收发和串口收发。其中节点向协调器发送采集信息、协调器向控制节点发送控制信息是通过无线收发实现的;协调器将采集信息传送给网关、网关向协调器发送控制命令是通过串口收发实现的。
4.4.1 无线数据收发
1)无线发送 系统中采用短地址方式发送数据,数据以帧格式传输。在发送前按照协议规定的帧形式构建数据帧,然后调用无线发送函数。函数原型为:uint8 SendData(uint8*buf,uint16 addr,uint8 Leng);buf为发送数据指针;addr为目的地址;Leng发送数据长度。
2)无线接收 对于无线接收并没有像发送一样单独的处理函数,而是在任务处理函数中通过处理无线接收数据事件来完成处理的,具体函数如下:
h.JPG
其中AF_INCOMING_MSG_CMD为无线接收事件宏定义,SampleApp_MessageMSGCB()函数则为具体接收事件的处理函数。
4.4.2 串口数据收发
系统中所用的串口为无线芯片CC2430自带资源,通过自定义串口收发函数来使用该资源,从而实现网关与协调器节点数据传输。
串口发送函数原型为:
void UartTX_Send_String(char*Data,int len);
串口接收函数原型为:
char UartRX_Receive_Char(void);

5 结束语
随着物联网概念的普及,基于ZigBee的无线传感器网络技术得到越来越广泛的应用。文中将ZigBee网络技术应用于机房环境监控系统中,介绍了系统总体架构,无线传感器网络部分的软、硬件设计及实现过程,重点介绍了无线网络的构建与数据传输。整个系统能实时、准确地测量并显示机房内各点的数据信息,使管理者能够及时了解机器工作环境,从而及时、有效地采取措施。如果更换采集节点的传感器,该监控系统可以应用于不同的场合,可见无线传感器网络技术具有广阔的应用前景。

1 2 3 4

关键词: 环境 监控系统 设计 实现 机房 智能 无线 传感 网络 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版