葛华 汤晓燕
基于CC2530的温湿度无线数据采集
葛华 汤晓燕
(沙洲职业工学院,江苏 张家港 215600)
分析ZigBee协议栈的工作流程,阐述以CC2530芯片为硬件核心构建的点对点ZigBee无线网络,分别从硬件、软件方面设计实现了基于ZigBee协议栈的温湿度无线数据采集。使用IAR开发环境,基于TI公司的Z-Stack协议栈完成无线网络协调器和终端设备的程序设计过程。终端设备和协调器之间通过ZigBee无线网络通信,协调器和PC端之间通过串口通信,协调器可执行对终端设备温湿度的检测与超限报警。
ZigBee;CC2530;Z-Stack;温湿度采集
近年来,MEMS技术、无线通信技术的不断发展推动了无线传感网的诞生和发展。2009年,温家宝总理视察了中科院物联网感知中心,提出感知中国的概念。随后,上海、无锡等城市相继成立物联网研究中心。国内众多高校成立了物联网学院或者物联网工程专业。[1]
沙洲职业工学院单独开设“物联网技术与应用”课程,作为电子信息工程技术专业、电气自动化技术专业的必修课。根据专业人才培养的需要,同时降低课程学习的难度,电子信息工程系于2017年添置了基于TI公司CC2530芯片的物联网实验设备20套。
在“物联网技术与应用”课程之前,相关专业的学生已经先修了“电路与电工技术”、“模拟电路分析与实践”、“数字电路分析与实践”、“C语言程序设计”、“单片机应用技术”等基础课程,具备了基本的专业知识。目前,该课程安排共56学时,采用理实一体的教学方式,主要学习内容:CC2530的GPIO口,外部中断,定时器/计数器,电源管理,串口通信,AD转换,ZigBee协议栈的无线网络通信。课程的教学实验分为三个层次,首先是CC2530的基础实验,了解与掌握CC2530接口的功能与使用;其次是利用传感器采集环境数据并分析;最后是基于ZigBee协议栈的组网实验,进行节点组网、数据采集与无线传输。实验难度循序渐进。温湿度无线数据采集是在完成了课程的主要学习内容后,融合“物联网技术与应用”课程的知识要点,进行的综合性ZigBee协议栈数据采集与无线网络通信训练,还可以为相关专业后续的技能训练、毕业设计提供基础平台。
CC2530实验系统的硬件主要包括CC2530单片机模块、常用传感器模块和其他模块。CC2530单片机模块主要由8051内核和无线ZigBee构成,可以完成对外设的控制和数据的无线传输。常用传感器模块主要包括温湿度传感器、烟雾传感器、人体红外传感器等。其他模块包括电源模块、串口模块、JTAG接口模块、发光二极管模块、按键模块、液晶显示模块、RFID模块、AD转换模块等。
实验系统中,无论是终端设备还是路由器、协调器,均采用相同的硬件模块结构,采用TI公司的CC2530 芯片结合ZigBee协议来完成无线通信。CC2530单片机模块的电路如图1所示,主要包括晶振电路和巴伦变换电路。图中的VCC 接3.3 V,负载电容C221与C231和32 M的振荡器X1构成32 MHz的晶振,负载电容C321、C331与32.768 k的振荡器X2构成32 kHz的晶振。电路中通过巴伦电路L252、L261和C252、C262将CC2530输出的平衡天线信号转换为实验系统板载天线所需要的非平衡天线信号。
图1 CC2530单片机模块的电路图
ZigBee采用IEEE 802.15.4标准,利用2.4 GHz频段进行通信,具有低功耗、低成本、网络容量大等特点。低速率、无线自组网的ZigBee技术,与蓝牙、WiFi并称为三大无线通信技术。[2]CC2530为一款片上系统,兼容IEEE 802.15.4标准,可以简便、快速地构建无线通信网络。
ZigBee网络中的设备按功能划分为三类:协调器(Coordinator),路由器(Router),终端设备(End Device)。协调器主要功能是启动和配置IEEE 802.15.4 ZigBee网络,一个ZigBee网络只能有一个协调器。路由器是一种支持关联的设备,将自己关联至协调器或者已在网络的其他路由器,同时允许其他的路由器和终端设备加入网络。终端设备执行具体的任务,如:数据采集,并使用ZigBee网络实现信息交互。
Z-Stack协议栈是一个小型操作系统,协议栈内有基本函数库,开发人员通过调用函数库内的入口函数来实现ZigBee组网和数据传输等功能。Z-Stack协议栈采用层结构,图2所示为Z-Stack协议栈的工程目录,从上至下各个文件夹分别是:APP文件夹,应用层;HAL文件夹,硬件层;MAC文件夹,媒介访问控制层;MT文件夹,监控测试;NWK文件夹,网络层;OSAL文件夹,操作系统层;Profile文件夹,应用工作层;Security文件夹,安全层;Tools文件夹,工程配置;ZDO文件夹,ZigBee设备对象层;Zmac文件夹,参数配置和回调处理函数;ZMain文件夹,Z-Stack的主函数入口。其中,ZigBee联盟对应用层、网络层架构进行了定义,而IEEE 802.15.4标准则对媒介访问控制层进行了定义[3]。由下至上,各层均能为上层提供满足其需要的服务。
CC2530实验系统的无线通信采用Z-Stack,用户只需调用应用层程序的入口函数来实现具体功能[4]。Z-Stack的工作流程如图3所示,主要包括初始化中断、初始化驱动和各层、各任务轮询等。Z-Stack的主入口函数在ZMain文件夹下的ZMain.c文件中。Zmain.c实现的功能主要有:初始化系统时钟、初始化电源、初始化堆栈、初始化硬件模块、初始化内存管理、初始化消息队列、初始化任务系统、初始化操作系统并启动操作系统。其中,初始化任务系统是进行任务列表和各项任务的添加,任务系统是整个协议栈中协调各个任务模块及用户应用的核心。Zmain.c最后调用了osal_start_system( )函数,启动操作系统,此后的操作权都交给OSAL操作系统。
OSAL是TI公司开发的一个轮询式操作系统。osal_start_system( )函数中有一个死循环,循环按照任务优先级查询各任务是否有事件发生,若有事件发生则转入相应的函数处理。初始化任务系统时已将HAL、MT、MAC、NWK、APP、ZDO等模块添加到操作系统中,且在操作系统中以独立任务运行。操作系统专门为任务事件分配任务数组,一个任务的所有事件存放在一个任务单元中,操作系统轮询每个任务单元是否有事件发生,若发生则进入事件处理函数,若没有则继续轮询下一任务单元。
图2 Z-Stack协议栈的工程目录
图3 Z-Stack的工作流程图
温湿度传感器采用的是DHT11,在其正常工作时温度测量范围为0℃~50℃,测量精度为±2℃,分辨度为1℃;湿度测量范围为20%~90%RH,测量精度为±5%RH。
DHT11与CC2530之间的通信为单总线格式,一次传输40位数据,一次传输时间约为4 ms(时序要求比较严格),40位数据的传输顺序为:8位湿度整数数据、8位湿度小数数据、8位温度整数数据、8位温度小数数据、8位校验位。
使用CC2530来实时无线采集传感器的数据,是极为实用的功能。传感器可以是温度传感器,湿度传感器,光敏传感器,烟雾传感器等等。使用不同的传感器,与CC2530的接口电路有所不同、驱动程序有所不同,但是对传感器数据的采集、发送和接收的流程是相同的。
如图4所示,温湿度无线数据采集系统由2个节点组成。一个CC2530单片机模块作为终端设备,与温湿度传感器DHT11相连,负责驱动传感器,间隔固定时间读取传感器的采集值,并通过点播方式将采集的数据发送给协调器。另一个CC2530单片机模块作为协调器,负责建立网络,将接收到的传感器采集值在OLED 12864液晶屏上显示,同时将数据发送给上位机的串口调试助手;在传感器采集值超过设定的上限值时,协调器向终端节点发送信号,控制终端设备点亮LED,作为报警指示。
图4 温湿度无线数据采集系统框图
温湿度无线数据采集系统选用IAR 8.10.1集成开发平台设计软件,基于ZStack-CC2530 version 2.5.1a协议栈,完成相关应用层程序的编写。
ZigBee的通讯方式主要有三种:点播、组播、广播。其中,点播就是点对点通信,即2个设备之间的通讯。采集系统选用点播的通讯方式。
采集系统的软件设计包括:CC2530终端设备节点的设计和CC2530协调器节点的设计。
(1)协调器的软件设计
协调器的软件设计主要分为三部分,包括系统初始化、网络建立与通信实现、温度超限报警控制。协调器负责ZigBee网络的建立,节点的加入允许与分配网络地址,网络维护等。在Z-Stack协议栈中设置其为协调器。
协调器选用的是自启动模式。在关闭中断情况下,先初始化硬件,再初始化操作系统,最后启动操作系统。温湿度无线数据采集系统开始工作时,ZigBee网络协调器节点根据程序定义的网络编号PANID,启动并组建ZigBee网络。Z-Stack协议栈基于ZDO初始化函数,完成网络的初始化,若完成协调器网络的构建,则触发ZDO_STATE_CHANGE事件,在OLED 12864液晶屏上显示网络建立状态。协调器网络构建完成后,等待路由器节点或终端设备节点的入网请求;组网后,温湿度传感终端开始采集信息,将检测数据发送到协调器节点。在ZigBee网络终端设备节点完成初始化后,协调器进入OSAL任务的轮询,系统在此循环中主要检查和处理事件程序,完成读取传感器信息、收发数据等任务。协调器的软件设计流程如图5所示。
(2)终端设备的软件设计
终端设备的软件设计主要分为四部分,包括系统初始化、网络加入与通信实现、传感器数据采集、报警功能。在Z-Stack协议栈中设置其为终端设备。
终端设备和路由器一样选用自启动模式。在Z-Stack协议栈中,在应用层注册报告事件,加入协调器所在网络,并完成网络通信功能。网络初始化时,调用函数NLME_Network Discovery Request( )来发现网络,网络接入成功后,触发任务的ZDO_STATE_CHANGE事件,向协调器发送网络地址。若接收到控制命令数据,则调用数据采集函数会采集实时温度值和湿度值,并发送给协调器;若发送失败,则延迟1 s后再次发送。传感器数据采集功能即设置CC2530的端口P0. 6为输入端,每隔2 s对该端口进行一次数据采集。而报警功能即设置CC2530的端口P0. 4为输出端,以高低电平作为输出控制LED,以达到温度超限报警的目的。终端设备的软件设计流程如图6所示。
图5 协调器节点程序流程图
图6 终端设备节点程序流程图
协调器模块调试:将协调器通过USB口连接至计算机,打开计算机中的串口助手软件,并设置好COM口和波特率,将终端节点通电,在计算机的串口助手软件数据区中可以看到监测的温度值和湿度值,说明协调器工作正常。
温湿度模块调试:人为调节温湿度传感器周围空气的温度和湿度,计算机的串口助手软件数据区中显示的温度值和湿度值相应变化,说明温湿度模块调试正常。
数据显示调试:温湿度无线数据采集系统运行后,计算机的串口助手软件数据区和OLED 12864液晶屏上可以看到规定格式的数据显示,说明数据显示正常。
报警模块调试:调节环境的温度,当温度超过阈值时,终端设备上的LED闪烁,说明报警模块正常。
基于CC2530和Z-Stack的温湿度无线数据采集系统实现了对温湿度的实时采集与控制,若环境温度超出阈值,则上位机控制LED闪烁,以提醒用户进行处理。实验证明,系统具有成本低、数据传输可靠、功耗低等特点。
[1] 李双,潘毅,尤越,秦宏.面向应用型高校的无线传感网课程实验平台的设计[J].电脑知识与技术, 2018 (6): 142-143.
[2] 孙占伟,赵烁,王盼星, 等.基于物联网的社区服务信息交互终端与系统[J]. 吉林大学学报(信息科学版), 2016, 34 (4): 516-519.
[3] 王小强, 欧阳骏, 黄宁淋. ZigBee无线传感器网络设计与实现[M].北京: 化学工业出版社, 2012.
[4] 高翔, 邓永莉, 吕愿愿, 等.基于Z-Stack协议栈的ZigBee网络节能算法的研究[J]. 传感器技术学报, 2014, 27 (11): 1534-1538.
Wireless Data Acquisition of Temperature and Humidity Based on CC2530
Ge Hua, Tang Xiaoyan
( Shazhou Professional Institute of Technology, Zhangjiagang 215600, Jiangsu, China )
The working process of ZigBee protocol stack is briefly analyzed, and the point-to-point ZigBee wireless network built with CC2530 chip as the hardware core is described in this paper. The temperature and humidity wireless data acquisition based on ZigBee protocol stack is designed and realized respectively from the aspects of hardware and software. With the developing environment of IAR, the programming process of wireless network coordinator and terminal device are completed based on TI's Z-Stack protocol Stack. Through ZigBee wireless network communication between terminal device and coordinator, and through serial port communication between coordinator and PC, the coordinator can perform temperature and humidity detection and over-limit alarm for terminal device.
ZigBee; CC2530; Z-Stack; temperature and humidity acquisition
TP391.44
A
1009-8429(2019)01-0011-05
2019-02-25
葛 华(1974-),女,沙洲职业工学院电子信息工程系讲师;
汤晓燕(1971-),女,沙洲职业工学院电子信息工程系副教授。