罗雪雪,陈 敏,朱泉水,丁真真
(南昌航空大学无损检测技术教育部重点实验室,江西 南昌 330063)
在人们的日常生活和工业领域中,往往会因不同的原因共同和持续作用而导致一些不良后果的场合,如粮食霉变、山体滑坡等,这时对多参数进行实时监测及存储就显得尤为重要。由于上述场合大多处于较为广阔的环境中,要求使用较多的传感器模块并考虑模块的低功耗特性。基于这些因素的考虑,本文以低功耗芯片CC2530 作为处理核心,采用易于扩展的ZigBee 无线传感器网络组成无线传感网络模块,对常规环境变量进行就地存储和对危险情况进行预警和无线报警。近年来,以ZigBee技术为核心的无线传感器网络发展迅猛[1],具有良好的应用前景,尤其是应用ZigBee 技术实现传感数据的存储、监测和分析[2]。
本文重点研究采用CC2530 和CH376 芯片实现温湿度数据的无线传输和存储,为数据的监测和分析奠定基础。以温湿度数据采集为例,设计的无线采集和存储的无线传感模块由监测区域的协调器节点和上位机构成。
在无线传感网络中,监测区域的终端节点主要完成广阔区域多个位置点的环境温湿度数据采集,并按照一定的格式,把经由ZigBee 无线传感网络的数据定向传输给协调器节点,协调器节点将接收的数据经过一定的处理后实时存储到数据存储模块中。无线传感模块中微控制器可使用低功耗芯片CC2530,从而延长无线传感模块的使用周期[3-5]。此外,当需要读取已存储的历史温湿度数据时,上位机可通过Wi-Fi 无线通信模块与上位机之间建立的Wi-Fi 无线网络访问数据存储模块中已存储的监测区域的历史数据,并进行监测和分析。通过这样的模块设计,实现无线温湿度数据的采集和存储。
本文以一个终端节点和一个协调器节点组成的无线传感网络为例,其硬件结构见第67 页图1。无线传感器网络节点选用的是创思通信公司生产的ZigBee 开发板,并在此基础上进行二次开发。终端节点的微控制器采用的是CC2530 芯片,它是工业标准增强型8051 微控制器,具有高达128 KB 的可编程闪存和8 KB 随机存取存储器,其遵循IEEE 802.15.4 标准,射频收发器为2.4 GHz,可控的编程输出功率最高达到4.5 dBm[6]。它还内置了较为强大和完善的ZigBee 协议栈,该协议栈是构建ZigBee无线传感网络的基础和核心[7]。
环境的温湿度数据通过使用数字温湿度传感器DHT11 采集获得,在终端节点设计中,DHT11 的DATA 引脚与 CC2530 的 P0.7 引脚连接。
图1 无线数据采集和存储硬件结构图
设计中,在协调器节点上增加了由STC12 单片机和CH376 接口芯片所构成的USB 数据存储模块。CH376 芯片是一款文件管理控制芯片,主要用于单片机或嵌入式系统读写U 盘或者SD 卡中的文件。其中,协调器节点以串口方式与STC12 单片机通信,STC12 单片机使用协调器上的+5 V 电源。
ZigBee 是当前流行的无线传感器网络的通信协议,遵循IEEE 802.15.4 和ZigBee 联盟标准,因此,采用ZigBee 协议体系对于软件平台标准化构建具有重要的意义。
基于ZigBee 的数据采集软件平台体系结构见图2。软件体系结构分为4 层:物理层 (PHY)、媒体介质访问层 (MAC)、网络层 (NWK)和应用支持子层(APS),层层相关联,下层在设计上为上层提供详细的管理和数据服务。为了保证数据的安全性还专门为网络层和应用层增加了安全服务功能[8]。
CH376 的USB 数据存储流程见图3。
协调器接收到终端无线传输来的温湿度数据后,通过串口发送给STC12 单片机,为了将数据以特定的文件格式存储到U 盘中,需要通过CH376接口芯片的管理和控制。在设计中,查询U 盘和创建文件等功能是通过CH376 文件系统库FILE_SYS实现的。数据存储功能的实现主要包括以下步骤。
图2 基于ZigBee 的数据采集软件平台体系结构图
图3 CH376 的USB 数据存储流程图
1)单片机和CH376 接口芯片的初始化。在软件设计中,STC12 单片机的初始化重点涉及与串口有关的寄存器、定时器和中断控制的资源配置,以及串口缓存区的设计。CH376 接口芯片的初始化主要是该芯片工作模式的设置及其通信接口的初始化,该过程通过调用文件系统库中的函数实现。
2)查询U 盘。南京沁恒公司提供了有关CH376 的文件系统库FILE_SYS,通过调用文件系统库中的函数来完成查询U 盘和创建文件的工作。在主机模式下,单片机设置CH376 继续调用FILE_SYS 文件系统库中的CH376DiskConnect ()函数查询U 盘连接情况。当U 盘接入时,能自动检测USB 总线中数据信号线的电平变化然后产生中断通知。当U 盘连接成功后,会调用文件系统库中的CH376DiskReady()函数来查询U 盘是否进入了准备状态。
3)创建新文件。U 盘准备就绪后,通过调用函数CH376FileCreate(),在U 盘的存储空间中创建一个名为“MY_ADC.TXT”的文本文件,等待温湿度数据写入。
4)向U 盘中写数据。当温湿度数据传输过来时会先暂存在STC12 单片机的串口缓冲区,缓冲区的设计是为了更加方便和快速地写数据,当串口缓冲区存满数据后,再把这些数据以扇区方式批量写入 U 盘中的“MY_ADC.TXT”文本文件中[9]。
在ZigBee 构建的无线传感器网络中,协调器节点把终端节点发送来的温湿度数据转化成一定的数据格式,通过串口传送给STC12 单片机,STC12 单片机通过并口以扇区方式批量把数据存储到U 盘中[10]。通过串口显示的调试结果见图4,显示的温湿度数据中,第一列为温度数据,第二列为湿度数据。
图4 串口调试系统界面
在U 盘的根目录下成功创建名为“MY_ADC.TXT”的文本文件的调试结果见图5。最后系统不断把温湿度数据以扇区方式批量写入新建的文本文件中,结果见图6。
图5 系统在U 盘根目录下创建名为“MY_ADC.TXT”的文本文件
通过构建的无线传感器网络实现了温湿度数据的采集和存储,当需要读取存储模块中已存储的历史温湿度数据而进行监测和分析时,只需要在STC12 单片机上添加一个Wi-Fi 模块ESP8266,并进行相应的串口Wi-Fi 和读U 盘存储器的软件设计,最后上位机连接ESP8266 的Wi-Fi 热点后就可以控制访问U 盘存储器中的历史温湿度数据,进一步进行监测和分析[11]。
图6 “MY_ADC.TXT”文本文件中保存的部分温湿度数据
本文论述了一种基于CC2530 处理器芯片和USB2.0 控制器CH376 的ZigBee 无线数据采集和存储模块,构建了系统的软硬件平台,同时对基于CH376 的USB 数据存储进行了详细的介绍,后期只要添加一个Wi-Fi 模块,就能够实现上位机对存储模块中历史数据的访问。实验测试证明,该平台传输可靠性好,系统可扩展性较强,前景可观,值得深入探索。