无线传感器网络数据中转器的设计
扫描二维码
随时随地手机看文章
引言
无线传感器网络是一种全新的信息获取平台,它可借助于多样传感器来实时监测和收集网络分布区域内各种目标对象的状态信息,因而具有广阔的应用前景。本文所讨论的无线传感器网络数据中转器就是为实现远程上位机对目标区域内的各种环境参数的实时监控而设计的,它在整个系统中可实现无线传感器采集数据的上传和远程上位机控制命令的下达,对整个无线传感器网络数据采集系统的稳定应用起着承上启下的作用。
1 无线传感器网络的组成及工作原理
无线传感器网络数据采集系统的总体结构方案如图1所示。该系统由无线传感器网络,数据中转器,GPRS无线传输和上位机服务器等4部分组成。无线传感器网络(一个网络一般可包含128个采集节点)负责采集监测环境的有关数据,包括监测环境参数(空气湿度,降雨量和土壤温度等)和无线传感器网络数据(釆集节点路由表、采集节点邻居表以及釆集节点状态表),并通过ZigBee网络(监测区域内的短距离通信)发送给数据中转器保存。当存储的数据达到规定的数量以后,便可通过GPRS网络(监测区域与服务器间的远距离通信网络)传输给上位机服务器,这样可以减少数据中转器与上位机的通信次数,降低系统的功耗。上位机服务器则可通过GPRS网络发送控制命令给数据中转器,进而转发给无线传感器,用以控制传感器采集数据的类型、数据釆集间隔、数据上传间隔、网络数据上传类型等,以使无线传感器能按照用户所希望的方式来工作。
图1无线传感器网络数据采集系统结构
2 数据中转器的组成及工作原理
本文所讨论的数据中转器的硬件结构如图2所示。数据中转器以ARM处理器为核心构建而成,由双锂电池供电,通过汇聚节点和GPRS模块分别与无线传感器网络和上位机通信。ARM处理器选用32位嵌入式处理器LPC2148,该处理器内置宽范围的串行通信接口,并拥有40KB的片内静态RAM和512KB的片内Flash程序存储器,能完全满足系统的应用要求。GPRS模块选用SIM公司的SIM300C,其内部整合了TPC/IP协议,下载/上传速度分别可达85.6/42.8kB/s。汇聚节点主要由基于ZigBee协议的射频芯片CC2531来组成。数据中转器在整个数据采集系统中可起到一个承上启下的作用,它可通过汇聚节点存储和转发无线传感器网络上传的采集数据和网络信息,并通过GPRS模块接收和转发上位机下达的控制命令。ARM处理器LPC2148通过串口uartO与汇聚节点进行通信,而通过串口uartl与GPRS模块通信,同时通过串口SPI0将需要存储的大量采集数据存入内存容量为2GB的SD卡中。
图2数据中转器硬件结构图
3 数据中转器的设计
数据中转器的应用程序开发可采用ARMDeveloperSuiteV1.2开发环境。在该开发环境中,可完成程序的编辑与调试。编程语言以C语言为主,并可嵌入arm汇编语言,系统平台采用Mc/os-n嵌入式实时操作系统,以保障开发程序能够可靠稳定的运行。
3.1 数据中转器的工作流程
本文所讨论的数据中转器和无线传感器都具备休眠功能,这样可以有效的降低系统功耗。无线传感器平时处于休眠状态,当需要采集数据和上传数据时,再自动醒来联网并唤醒数据中转器。数据中转器被唤醒后,便可接收无线传感器网络的上传数据,并/34物联网技术2012年/第1期存储在SD卡中,然后判断无线传感器网络上传数据次数N(N的初始值为0),如果N小于10,数据中转器将通知无线传感器休眠,同时自己也进入休眠状态。如果N等于10,数据中转器将启动GPRS模块,再将SD卡内的大量数据上传给上位机,在供用户存储显示使用之后,上位机将下达新的数据采集控制命令,以控制无线传感器采集数据的类型、数据采集间隔、数据上传间隔、网络数据上传的类型等给数据中转器,数据中转器将新的数据采集控制命令转达给无线传感器后便进入休眠状态,无线传感器在更新采集参数后,也进入休眠状态。整个无线传感器网络数据采集系统就这样周而复始的工作,图3所示为其系统软件工作流程图。
图3系统软件流程图
3.2 数据通信协议
无线传感器网络数据采集系统中各个模块之间的通信需要制定明确的数据通信协议。数据通信协议可以保证数据安全正确的收发,便于系统中各个模块对数据的接收、解析和存储管理。该系统通信协议的数据帧格式如表1所列。
表1中:SOP为起始标志符,可用一个字节来表示数据帧的起始,将这个字节定义为0x7E;CMD表示命令ID,用一个字节的数据来标识命令消息;LEN表示DATA的长度,也用一个字节来指示DATA位的数据长度;DATA为具体要发送的数据;FCS是校验位,这里的校验使用异或校验来校验CMD、LEN、DATA中的所有数据;STOP为结束标志符,用一个字节来表示数据帧的结束,一般将这个字节定义为0xAA。
当无线传感器网络数据采集系统的各个模块接收到数据后,都是通过判别CMD来对数据帧的类型进行解析。数据帧的CMD有如下五种类型:其中,0X02为无线传感器向数据中转器上传釆集数据的命令;0X03为数据中转器告知无线传感器休眠的命令;0X04为数据中转器向上位机服务器上传采集数据的命令;0X05为上位机服务器向数据中转器下达数据釆集控制的命令;0X06为数据中转器向无线传感器转达数据采集控制的命令。
系统中各个模块之间按以上制定的数据帧格式进行通信,可以极大地排除杂乱信号的干扰,简化系统的软件设计,从而达到数据传输的安全性和可靠性。
3.3 基于AT指令的GPRS通信
GPRS模块SIM300C作为一个功能独立而且完善的模块,可以通过外接SIM手机卡实现与远端上位机的连接和通信,ARM芯片LPC2148则利用AT指令以GPRS流量的方式发送数据给上位机。ARM发送的AT指令都是以字节为单位,回车符代表指令的结束,模块接收到回车符后开始执行指令。模块执行指令后的一切返回值(无论是指令执行后的OK,还是ERROR)都是以不可打印字符“0D0A”开始和结束。LPC2148与GPRS模块之间可通过UART1通信。本系统使用表2所列指令来实现与远程上位机服务器的数据传输。
表2中第一条AT指令可使得GPRS模块附着到GPRS网络;第二条AT指令为GPRS模块联网而设置的上下文环境;第三条AT指令用于激活GPRS网络的上下文环境,并获取网络IP;第四条AT指令用于建立TCP连接。由于本设计中的数据中转器需与远程上位机相互通信,因而必须建立TCP连接,这样,首先GPRS模块会返回一个对此条指令认可的确认消息“OK”,之后,如若TCP网络连接建立成功则会返回"CONNECTOK\r”,表示物理通道已经成功建立,之后便可调用最后一条指令与远端上位机进行数据通信。
表2GPRS流量通信方式所涉及到的AT指令
AT指令 |
指令解析 |
AT+CGATT=l\r |
附着到GPRS网络 |
AT+CGDCONT=1,IP,CMNET\r |
PDP环境 |
AT+CGACT=l,l\r |
激活GPRS |
AT+CIPSTART="TCP","IPADDR","PORT" |
连接服务器IP |
AT+CIPSEND\r***\x01A |
发送数据 |
无线传感器网络数据中转器在很大程度上可以解决无线传感器网络与上位机服务器之间的远程通信问题,并能有效地降低整个系统的功耗。经过试验表明,上述设计方案具有稳定可靠,数据传输准确等优点,能够满足无线传感器网络数据采集系统在长期无人值守的情况下监测某一区域环境信息的要求。
20210828_612a1e7021423__无线传感器网络数据中转器的设计