首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ZigBee技术的环境监测系统设计

基于ZigBee技术的环境监测系统设计

摘要:以CC2530和zstack协议栈为平台,给出了基于ZigBee技术的温度、光照度无线传感器网络的设计方法,同时对协议栈的运行机制、组网过程及应用层的数据采集进行了分析与设计。实验结果表明,该设计方法可行,各节点工作良好,能成功实现多跳网络的数据采集。
0 引言
各行各业尤其是工农业生产、环境监测等领域,都对无线数字监测系统提出了极大的需求和更高的要求。无线传感网的迅速发展并逐渐走向成熟,使得这一需求得到了较好的满足。基于ZigBee技术的无线传感网具有自组织、低功耗、以数据为中心、抗毁性强和无需架设网络设施等优势,可以在外界环境十分恶劣的条件下,完成其他监测手段无法完成的任务,代表了数字监测的一个新的发展方向。本文以TI公司的CC2530和zstack协议栈为平台,给出了基于ZigBee技术的温度及光照度无线传感器网络的设计方法。
1 系统总体设计
本文设计的基于ZigBee技术的无线传感器网络由一个协调器节点、若干路由节点和众多传感节点组成,图1所示是其系统总体结构。其中,传感节点负责对环境温度等数据的监测,然后通过路由节点以多跳方式将数据发送给协调器节点,协调器节点负责将数据上报给监测中心PC机。
2 节点硬件设计
根据节点在系统中的应用不同,可分为传感节点、路由节点和协调器节点。各节点的功能不尽相同,可分为数据采集、数据处理、无线通信、能量供应和串口通信等功能。各功能模块采用模块化的方法设计,这样可以实现各模块的并行设计、调试,缩短开发周期,同时也便于后期更换和扩展传感器,从而方便后期维护或移植到其他监测领域。
2.1 ZigBee模块
本设计中的各节点选用CC2530芯片作为ZigBee模块,实现数据处理及ZigBee无线通信功能。CC2530内部集成了一个高性能2.4 GHz射频收发器和一个增强型8051微处理器,最大256 KB可编程FLASH、8 KB的RAM并提供了一套广泛的外设集,为2.4 G IEEE 802.15.4和ZigBee应用提供了一种SOC解决方案。该模块的电路如图2所示,图2中包含了最小系统、射频前端及I/O接口电路。
2.2 数据采集模块
各传感节点通过一线制数字温度传感器DS18B20和CDS光敏电阻5 516对环境温度、光照度进行数据采集,图3所示是数据采集模块电路图。其中,DS18B20可实现-55~+125℃测量范围及最高12位测温分辨率,测温精度可达±0.062 5℃,供电电压范围为+3~+5.5 V。本设计中供电电压选择来自LD1117稳压芯片的+3.3 V输出,数据线DQ和CC2530芯片的P2.0相连实现一线接口,如图3(a)所示。5516光敏电阻的亮电阻为5~10 kΩ,暗电阻为500 kΩ,电路如图3(b)所示,输出电压为0~2 V,送至P0.5进行AD转换。
3 节点软件设计
节点软件是在TI公司的ZigBee协议栈——Z-stack基础上开发设计的。该协议栈支持ZigBee网络的建立和加入、自组网、多跳传输和动态网络拓扑。
3.1 Z-stack协议栈的运行机制
OSAL是TI公司开发的用于Z-Stack协议栈的一个轮转查询式的操作系统。OSAL把优先级放在最重要的地位,优先级高的任务中的所有事件都具有很高的优先级,只要优先级高的任务有事件没有处理完,就一直处理,直到所有事件都得到处理,才去查询下一个任务的事件。另外,即使当前在处理的任务中有两个以上事件等待处理,处理完一件后,也要回头再去查询优先级更高的任务。只有在优先级更高的任务没有事件要处理的情况下,才会处理原来任务优先级第二高的事件。如果此时发现优先级高的任务有了新的事件要处理,则立刻处理该事件。通过这种调度方式,就赋予了优先级高的任务最大的权利,尽可能保证高优先级任务的每一个事件都能得到最及时的处理。
3.2 ZigBee网络的组网过程
ZigBee网络的组网过程包括网络建立和加入网络两个方面,该部分是通过Z-Stack协议栈各层之间的原语通信实现的。协调器节点负责网络的参数配置和建立,应用层通过ZDO层调用网络层函数NLME NetworkFormationRequest(),在指定信道上进行主动扫描,即发送MAC层信标请求命令,探测该信道上已存在的网络;然后网络层根据主动扫描结果,设置PAN ID,网络地址,扩展PAN ID等参数;最后通知各应用端点一个新的ZigBee网络已经建立起来了口其网络建立过程如图4所示。
加入网络有多种方式,通过连接来加入网络,重新加入网络,孤立点加入网络,预先配置加入网络等。子节点通过连接方式加入网络的过程图如图5所示。
子节点应用层通过ZDO层调用网络层函数NLME_NetworkDiscoveryRequest(),在指定信道上进行主动扫描,然后监听一段时间看是否收到信标。通过多次发送MAC层信标请求命令,子节点可以知道周围已存在网络的有关信息,从而确定要加入网络的PAN ID,然后通过NLME_Join Request()函数向要加入的节点发送MAC层连接请求命令。如果收到成功的MAC层连接响应命令,则可获取父节点所分配的网络地址。如果子节点是终端节点,则网络加入过程到此完成。而如果子节点是路由节点,则子节点还需通过NLME_StartRouterRequest()函数启动路由器。无论子节点是传感节点还是路由节点,最后都要将加入网络的结果通知各应用端点。
返回列表