美章网 资料文库 物联网的数据采集研究范文

物联网的数据采集研究范文

本站小编为你精心准备了物联网的数据采集研究参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

物联网的数据采集研究

摘要:

联网技术已成为国际备受关注的前沿热点研究领域,ZigBee技术具有低功耗、高度可扩展性、低成本、易组网等特点,已成为短距离物联网技术发展的一条主线。构建了一个基于ZigBee无线网络的物联网实验平台,设计协调器节点、路由节点和终端节点,移植并修改Miracl大数运算库,成功实现RC5和AES等数据加密算法,实现数据的可靠性传输。最后,设计了上位机监控软件,在接收到数据帧后能够进行解析、存储等操作,实时地查看网络节点的运行状态和较直观地显示监测区域的采集信息。

关键词:

物联网;CortexM3;ZigBee协议;传感器;监控软件

随着科技进步与网络的发展,物联网技术已成为全球关注的焦点并应用于多个领域,这为实现物联网的数据共享和安全等服务提供了技术保障。本文设计构建了一个基于ZigBee无线网络的物联网实验平台,深入研究物联网的数据采集与信息传输技术。

1网络节点的软硬件设计

在搭建物联网实验平台时,根据网络节点在网络中的任务特点设计了三种类型的网络节点,即终端节点(又称传感器节点)、路由节点和协调器节点。三种节点相互通信协作,共同完成数据的信息化处理。

1.1网络节点的结构设计网络节点一般由传感器模块、微处理器模块、无线通信模块、能量供应等模块构成(路由节点和协调节点可没有传感器模块)。该硬件平台的网络节点采用TI公司CortexM3核的LM3S811,LM3S1138和LM3S9B96作为节点微控制器。无线收发模块是由CC2420芯片和相应的外部元器件封装而成。

1.2网络节点的软件设计网络节点的软件设计框架如图1所示。软件底层采用的是μC/OSⅡ操作系统。节点软件的操作系统之上为ZigBee协议栈,通过这个协议栈实现树簇的网络结构。在网络节点的软件设计中,整个工程创建了多个用户文件夹,分类存储程序源文件。其中μC/OSⅡ的文件夹中存放的是μC/OSⅡ操作系统源码相关文件,Stack文件夹中是有关MsstatePAN协议栈的源码等相关文件,Target文件夹中是程序目标代码,Middleware文件夹中是一些中间件的代码,主要包括微控制器外部接口的代码实现等。LM3SDriverLib是TI公司提供的针对CortexM3系列微控制器的驱动库[1]。

1.3通信协议帧设计在建设过程中,为了方便其他设备对信息的识别和统一整个监控网络的数据帧的格式,自定义用户数据帧格式,具体数据位定义如图2所示。需要注意的是,接口数据是以ASCII码形式传送的,一个字节型的整数需要两个ASCII码表示,因此以上数据都要转换成字符串的形式,按照用户自定义的数据帧与上位机PC进行数据通信。在组网过程中,根据用户数据帧协议的约定,定义了3个特殊的数据帧提供给各节点,用于向上位机汇报组网状态。

2ZigBee无线网络的信息传输

ZigBee是一种面向自动控制的低传输率、低功耗、低价格、近距离的双向无线网络通信技术,基础是IEEE802.15.4,其三个工作频段2.4GHz,915MHz和868MHz是完全免费开放的。ZigBee的传输范围依赖于输出功率和信道环境,网络节点间的传输距离可以从标准的75m扩展到几百米,甚至于几千米。

2.1ZigBee网络的技术特点与WiFi,Bluetooth,GPRS/GSM相比,ZigBee网络具有成本低、体积较小、功耗低、易于扩展、感应性强等特点,适用于控制节点较多、传输量不大、覆盖面相对较广以及造价成本比较低的无线网络应用系统中[23]。

2.2ZigBee网络节点的拓扑结构根据ZigBee网络中设备的功能不同,IEEE802.15.4把ZigBee网络中的设备分为全功能设备(FullFunctionDevice,FFD)和精简功能设备(ReducedFunctionDevice,RFD)。根据设备在网络中承担的任务不同,ZigBee网络中的节点分为三种类型,即协调器节点ZC(ZigBeeCoordinator),路由节点ZR(ZigBeeRouter)和终端节点ZE(ZigBeeEndDevice)[4]。ZigBee以一个独立的工作节点为依托,通过无线通信组成星状、串(树)状、网状等网络拓扑结构。

2.3ZigBee协议栈框架完整的ZigBee协议栈由应用层、应用支持层、网络层、数据链路、媒体接入层(MAC)和物理层(PHY)组成,协议栈中的每层都含有特定的功能和服务。中间层都为其上一层提供一系列特定的服务,其中每层的数据实体提供相对应的数据传输服务,管理实体负责其他配套服务。每层的服务实体通过相应接口与上一层进行数据交换,为上层提供数据传输服务。

2.4MsstatePAN协议栈的移植采用硬件平台的收发功能主要通过CortexM3系列微控制器控制CC2420模块实现,选用原PIC微控制器+CC2420的协议栈为模板。在对MsstatePAN协议栈的结构与工作机制大致了解的基础上,修改硬件平台有关驱动,顺利在Keil和IAR的开发平台上将MsstatePAN协议栈移植到了LM3S811,LM3S1138,LM3S4749,LM3S9B96等同系列目标开发板上。LM3S811/9B96微控制器使用串口进行通信,需充分利用其提供的UART驱动函数,在程序中只需对UART硬件资源进行简单配置和初始化,就能实现数据的传输。

3物联网的前端数据采集

本节主要介绍DS18B20温度传感器、SHT11温湿度传感器、MMA7260三维加速度传感器、TSL230光频转换器和RFID等模块。3.1DS18B20温度传感器DS18B20是美国Dallas半导体公司推出的一款支持“单总线”控制接口的温度传感器[5]。该传感器温度采集转化后得到的12位数据存储内部的两个8位高速暂存器RAM,RAM中的第一个字节存放测量温度数据的低8位,第二个字节存放数据的高8位。利用DS18B20特有的控制命令集进行操作,将数据正确读入到微控制器,命令集分为ROM操作命令集和内存操作命令集。设计中,基于TI的LM3S811/1138微控制器采用C语言程序来实现对DS18B20的操作,芯片采用默认的12位采集数据模式,转换的时间一般低于750μs。实践表明,单总线方式的温度传感器DS18B20具有控制简单、易于扩展和成本低等优点。同时,利用微控制器读取传感器数据的程序相对比较简单,读取的温度值也相对比较精确。

3.2SHT11温湿度传感器SHT11是瑞士Sensirion公司推出的一款含有已校准数字信号输出的温湿度复合传感器。该传感器内部的测湿元件、测温元件将监控区域的湿度和温度转换成相对应的电信号,同时将产生的电信号输入到信号放大器中,然后将放大的模拟电信号输送至内部的A/D转换器,转化数据存储在内部的寄存器中。传感器经过二根I/O数据线与微控制器进行通信,并将转换数据发送出去。传感器通过两线串行接口和微控制器LM3S811/1138相连接,采用普通I/O与传感器模块相连,模拟SHT11芯片能识别的时钟信号,并通过DATA数据线直接获取采集数据,无需额外A/D转换电路,大大简化了传感器和微控制器之间的硬件连接。

3.3TSL230光频转换模块TSL230使用硅光二极管测量光照强度,具有响应快、稳定性好等特点,广泛应用于照相机曝光控制、舞台灯光检测、医学光照诊断等领域。内部由光强采集、光/频转换、频率信号处理三部分组成,外部由8引脚PDIP封装。

3.4MMA7260三维加速度传感器采用LQMMA7260模块检测物体的运动状态。可以通过其本身提供的休眠模式来降低芯片功耗。具体方法为待传感器数据采集完毕后,通过SLEEP引脚来控制MMA7260是否进入休眠,当SLEEP引脚接到低电平信号时,传感器进入休眠模式,此时电流为3μA;当SLEEP接到高电平信号时,传感器便恢复工作。采用LQMMA7260模块与LM3S811微控制器进行连接,模块的三路电压分别与微控制器的A/D转换输入引脚相连,并采用ADC多通道采样的方法对三路模拟数据进行模/数转换。

3.5校园一卡通的信息采集设计一款读卡器可以快速准确地读取校园一卡通编号。读卡模块采用AKRFMOD05CD芯片,读卡器模块将采集的卡片信息按照Wiegand数据协议标准传输,通过WD0和WD1引脚进行输出。微控制器LM3S1138通过两个I/O引脚对数据进行接收,其接口电路如图3所示。读卡器模块的数据输出引脚WD0和微控制器的PB0相连,WD1和PB1相连。程序开始后,初始化PB0和PB1两引脚为输入方式,并设置为下降沿的中断触发,当两根线上有低电平出现时,进入相应的中断服务程序中接收Wiegan数据。在中断服务程序中判断触发中断的引脚编号和传输数据,同时将数据存储在用户开辟的数据缓冲区中。使用数字式示波器对读卡器的DATA0和DATA1线在协议位给出高电平时的波形图进行截取和分析,读卡器模块选择Wiegand26协议,将一张校园卡放置在读卡器上,其中上侧为WD0输出信号线波形图,下侧波形为WD1输出信号线波形图,与韦根协议理论波形对比,得出该卡的Wiegand26数据为“00000110100010010100110111”,数据波形与微控制器采集的数据保持一致。

4信息的加密传输

数据加密的本质就是对明文(文件或数据)按照预定的方法进行特殊处理,使其变为无法进行直接可读的一段代码或乱码数据。针对加入网络的节点,系统需要对申请入网的节点进行一个比较严格的入网认证。在网络的数据传输过程中,传输数据需要经过高强度密码算法进行加密处理,防止私有数据的窃听,保证数据的可靠性传输[6]。

4.1信息通信的数据加密一般数据加密可通过无线通信网络中的三个层次来实现,分别为链路加密、节点加密和端到端加密。链路加密要求网络节点之间的数据通信中的数据必须是不可读数据,包括路由信息、目的地址等数据。节点加密算法的操作方式与链路加密大体一致,在ZigBee通信链路上为传输的数据帧提供安全保障。在整个ZigBee网络数据通信过程中,端到端加密又称脱线加密或包加密,用户可以自行设计一些加密算法对数据帧中的负载数据进行加密,只有当目的网络节点接收数据帧时,才通知本节点的上次去解密数据帧。

4.2常用的无线传感网数据加密算法Miracl库是ShamusSoftwareLtd开发的一个基于大数运算的函数库,是编写密码安全方面的程序所必备的一个算法模板库,是当前应用比较广泛的基于公钥加密算法实现的大数库之一。RC5是由RSA公司的Rivest于1994年提出的一种新型的分组加密算法。结合TI公司的ARMCortexM3系列微控制器的特点,由于该类型微控制器的存储字长为32位,特设置该RC5算法的三个参数可定义为:字长为32位,加密轮数为12轮,密钥长度为16B,可用符号表示为RC532/12/16。在加密系统中,首先创建密钥组,在创建完密钥组后,开始对明文数据进行加密。针对AES加解密算法,利用Miracl开源库中的相关函数,编写适应于微控制器的特定程序。其中节点进行AES加解密数据流程如图4所示。

5上位机监控软件开发

5.1监控软件总体设计该监控软件采用VisualStudio系统平台进行开发,利用现代计算机技术、数据通信技术、图形学等技术,将分布于监控区域的各类设备的运行参数和采集信息以文字、图形、图像等形式展示给用户,实现监控软件的可视化控制,实现对远程ZigBee网络节点设备的自动化控制。本系统监控软件的框架设计模型如图5所示。

5.2监控软件与协调器节点的数据通信采用标准串口和USB两种通信模式实现微控制器与监控软件的数据通信。为了较好地完成串口通信任务,LM3S811/1138/9B96微控制器可以利用TI公司提供的驱动库配置UART资源,然后通过调用UARTCharPut和UARTCharGet等函数来实现下位机串口数据的收发。上位机监控软件利用多线程串口编程工具CserialPort类进行开发,CserialPort是由RemonSpekeijse编写的免费串口类,其内部函数完全透明,并允许对相关类的内容进行改造、补充和完善等[7],其内部重要函数如表1所示。本文对CserialPort进行修改,以满足系统的整体需求。程序设计中需要创建一个监视线程负责监视可用串口产生的各种信息。读/写串口操作需要WaitCommEvent和WaitForMultipleObjects等函数配合监视线程共同完成。一个典型的USB应用系统由USB设备、USB主机和USB电缆组成。在本课题中,协调器节点是USB设备,USB主机则是具有USB接口的计算机。上位机监控软件的USB数据通信需要调用TI公司提供的动态链接库LMUSB.dll,程序可以采用显式链接和隐式链接两种方式调用LMUSB.dll动态链接库。在USB接口程序的设计中,首先利用设备管理器查看具有USB硬件资源的协调器节点的PID,VID和GUID等相关信息,然后加载动态链接库LMUSB.dll。程序通过调用InitializeDevice函数初始化协调器节点设备,待初始化成功后,监控软件创建接收数据线程,线程中调用ReadUSBPacket()函数去接收协调器节点设备发送的数据帧。在使用完USB设备后,需要通过调用TerminateDevice函数释放USB设备。待完成数据通信以后,上位机软件需要创建专门的线程用于接收协调器节点传输的数据帧。然后根据自定义的数据帧格式,编写专门的函数对接收的数据帧进行解析,然后将数据分类存储在相对应节点设备的结构体中。用户可以自定义网络节点数据帧发送周期,监控软件根据预先设定的周期内是否收到该节点的数据帧去判断其在网络中的组网状态。

5.3绘图模块本节中将部分终端节点采集的信息以曲线等形式显示出来。本软件选用TeeChartPro作为图表、图形控件,它和VisualStudio平台具有较好的兼容性。它提供了上百种2D和3D图形风格、40余种数学统计功能以及20余种图标操作工具等,图6为添加TeeChart控件类的步骤图。5.4ZigBee组网功能测试在整个测试过程中,终端节点负责采集检测区域的数据,并按照自定义的数据帧格式进行封装,然后发送至协调器节点;协调器节点主要负责创建和维护网络,并将收集的帧发送至上位机监控软件。监控软件能够对各个网络节点的组网状态进行有效判断,路由节点和终端节点可以根据实际需要定时地向协调器节点发出成功组网状态标志数据帧。本节选用LM3S9B96作为微控制器的网络节点,或者整个测试网络的协调器节点,以LM3S811/1138作为微控制器的网络节点,终端节点或者路由节点。对协调器节点建立网络的过程、终端节点加入网络的过程、树型拓扑网络系统进行了检测,选择树型拓扑网络系统测试进行详细说明。当协调器节点组建网络,把编写好的路由节点程序下载到编号为一号和二号的路由器节点上,然后逐个按下开发板上的Reset按键,等待其加入网络。如果路由器节点成功组网后,并向协调器节点发送路由器成功组网标志数据帧,监控软件接收到该数据帧后,该路由节点设备相对应的组网图标为绿色(红色表示未加入网络);然后依次上电复位编号为1~5的传感器采集节点,待节点成功加入网络后,监控软件根据相关数据形成检测ZigBee网络拓扑图。根据形成的网络拓扑图可知,共计有1个协调器节点、2个路由器节点、5个终端节点共同组成此时的ZigBee监控网络。

6结论

本设计移植精简版ZigBee协议栈到TICortexM3系列微控制器上,实现了组网功能。成功移植μC/OSⅡ操作系统,使协调器上的任务运行于μC/OSⅡ之上,为以后协调器节点的功能扩展奠定软件基础。对基于ZigBee无线网络的短距离物联网进行了进一步的研究,编写上位机监控软件实时监控ZigBee网络。监控软件通过串口和USB通信接口接收用户自定义的数据帧,然后解析与分类存储相关数据,并及时更新网络节点运行状态与节点采集数据等信息。

作者:贾伟 单位:内江师范学院 计算机科学学院