完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以CC2530和zstack协议栈为平台,给出了基于ZigBee技术的温度、光照度无线传感器网络的设计方法,同时对协议栈的运行机制、组网过程及应用层的数据采集进行了分析与设计。实验结果表明,该设计方法可行,各节点工作良好,能成功实现多跳网络的数据采集。
|
|
相关推荐
2个回答
|
|
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()函数启动路由器。无论子节点是传感节点还是路由节点,最后都要将加入网络的结果通知各应用端点。 协调器和路由器节点可以通过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网络,实现对环境温度、光照度等数据的无线监测。实验结果表明,本设计多跳组网成功,数据采集结果正确。 |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 04:10 , Processed in 0.676884 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号