传感器开发平台
直播中

李蛹

7年用户 186经验值
私信 关注

ZigBee环境监测系统怎么设计?

以CC2530和zstack协议栈为平台,给出了基于ZigBee技术的温度、光照度无线传感器网络的设计方法,同时对协议栈的运行机制、组网过程及应用层的数据采集进行了分析与设计。实验结果表明,该设计方法可行,各节点工作良好,能成功实现多跳网络的数据采集。

回帖(2)

刘宇

2020-4-21 11:30:49
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转换。
举报

张早

2020-4-21 11:31:14
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()函数启动路由器。无论子节点是传感节点还是路由节点,最后都要将加入网络的结果通知各应用端点。   

协调器和路由器节点可以通过NLME_PermitJoining  Request()函数决定是否允许子节点加入到自己的网络,这样可以方便地控制子节点加入到指定的一个路由节点中,从而实现多跳组网。
3.3 数据采集程序设计
采用DS18B20作为测温元件,其硬件电路相当简单,但对于单片机来说,为获取一次温度数据,需要先对其执行复位操作,发送ROM命令和RAM命令操作,启动温度的转换;等待温度转换完成后,再重复执行上述三步操作,才能实现温度的读取。根据DS18B20配置寄存器的不同,可分为9、10、11和12位的分辨率,所需转换时间最小为93.75  ms,最大为750  ms。也就是说,在启动温度转换后,必须等待较长的时间才能进行温度的读取操作。为了避免无谓的等待,本设计中将温度的测量分为两个事件:温度的“转换”和“读取”事件。温度采集时,可以设置一个“转换”事件定时器。在处理“转换”事件时,先向DS18B20发送温度转换命令,紧接着设置一个“读取”事件定时器,然后返回OSAL处理其他事件,从而保证系统能及时地响应其他事件。在处理“读取”事件时,只需要直接读取温度,然后再次设置“转换”事件定时器,实现周期性数据采集。温度传感器的“转换”和“读取”事件处理流程如图6所示。

4 实验结果分析
4.1 组网实验
组网测试时,通过TI公司的CC2531UD USB DONGLE和SmartRF  Packet_Sniffer软件对空中无线数据包进行抓包分析。子节点加入网络过程中所抓到的数据包如图7所示。子节点(IEEE地址为0x001248000201781D)先发出一个MAC层信标请求命令,接着协调器节点(网络地址为0x0000)发出了一个信标帧作为响应。然后,子节点又发出一个MAC层连接请求命令,接着协调器节点返回一个应答帧。最后,子节点向协调器节点发送一个MAC层数据请求命令,接着协调器节点发出一个MAC层连接响应命令作为响应,为子节点分配一个网络地址0x0001。通过数据包图可见子节点已成功加入网络。

4.2 数据采集实验
实验中,设定各传感节点每隔2  s进行一次数据采集,然后将采集数据经过路由节点发送至协调器,协调器通过RS232串口将数据上传给PC机,最终显示的采集数据如图8所示。图8中的采集数据分别是节点号为10  650和10 120的2个传感节点通过路由节点2 181(父节点)发送至协调器的。实验时人工测量温度值为20.3℃,与采集到的数据基本吻合。

5 结语
基于ZigBee技术的无线传感网可以较好满足各行各业对无线数字监测的需求。本文以CC2530和Z-stack协议栈为平台,组建了一个多跳ZigBee网络,实现对环境温度、光照度等数据的无线监测。实验结果表明,本设计多跳组网成功,数据采集结果正确。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分