ZigBee与GPRS的远程数据采集系统设计
引言
ZigBee是一种短距离、低速率无线网络技术,具有低功耗、低成本、易于组网、高可靠性等优点,在诸多场合有着广泛应用,但ZigBee仅作为现场数据采集与控制的局域网,覆盖区域十分有限,难以满足当前远距离数据采集与控制的需求。本文所设计的远程数据采集系统采用ZigBee与GPRS技术实现了远程的数据采集与控制,并结合嵌入式Web Server与RFID射频识别方案,实现了通过浏览器和射频识别卡进行关键配置数据修改和临时系统控制,具有较高的安全性与灵活性。另外,现场数据采集端的设备与数据接收/控制端的设备在硬件上具有较高的重复利用度。
1 系统结构设计
整个系统主要由ZigBee节点、GPRS模块、嵌入式Web Server以及PN532 RFID模块4个部分构成。其中ZigBee节点采用TI公司的CC2530方案实现,应用于现场的无线组网与数据采集、控制,ZigBee网络中的终端节点将采集到的数据通过自组织网络汇集到协调器节点;GPRS模块采用SIMCOM公司的SIM900A模块、ST公司的STM32 MCU,以及其他必要外围电路组成,负责将数据转发至控制终端,建立与固定IP的TCP/UDP连接;嵌入式Web Server采用TI公司的LM3S9D92实现,通过嵌入式Web Server对整个系统进行基本管理、数据显示,并将ZigBee网络中协调器节点采集的数据或GPRS模块输出的数据双向转发;PN532 RFID模块由LM3S9D92驱动,实现修改、配置系统关键信息前的授权认证管理(身份识别),以保证系统信息不被恶意篡改。整个远程数据采集系统结构如图1所示。
2 系统硬件设计
2.1 ZigBee节点
ZigBee网络节点采用CC2530F256进行设计,工作在2.4 GHz频段,是符合IEEE 802.15.4规范的SoC解决方案。片内集成高速8051内核,支持ZigBee2007 PRO协议栈;具有2~3.6 V的供电范围以及良好的电源管理功能,可实现较低的运行功耗。实际电路设计采用核心板与扩展底板结合的方式,核心板引出CC2530最小系统,未使用的GPIO供扩展底板使用,在扩展底板上实现了三线制RS-232串口、指示LED、调试接口,以及其他必备外部应用电路。
2.2 GPRS模块
GPRS模块通信部分采用了SIMCOM公司的SIM900A模块,SIM900A模块是专门面向中国大陆市场设计的双频GSM/GPRS模块,工作频段为EGSM 900MHz和DCS 1800 MHz,可以自动地搜寻两个频段,内嵌完整TCP/IP协议。徽控制器采用ST公司的STM32F103C8,该芯片具有双串口和一个硬件SPI接口,十分符合本系统GPRS模块使用要求,且具有较高的性价比,使用SPI Flash W25X16作为外部掉电存储器记录GPRS模块相关配置信息。
2.3 嵌入式Web Server与PN532 RFID模块
嵌入式Web Server采用TI公司推出的LM3S9D92Cortex—M3 MCU实现,该芯片集成以太网MAC+PHY接口,可直接连接含网络变压器的RJ45接口,大大简化了以太网部分的外围电路,十分符合设计需求。RFID模块部分采用NXP公司PN532的解决方案,PN532是一个高度集成的非接触读写芯片,它包含80C51微控制器内核,支持ISO/IEC 14443A/Mifare非接触式智能卡读写,同时还具有集成了NFCIP-1的RF接口,传输速率高达424Kk/s,便于系统后期实现与NFC设备进行点对点通信等功能。LM3S9D92使用GPIO模拟SPI与PN532进行通信。嵌入式Web Server主要部分接口连接示意图如图2所示。
3 系统软件设计
系统采用C语言进行开发,开发环境为RealviewMDK(Keil for ARM),并使用厂商所提供的片上资源驱动、库函数和第三方组件。系统软件设计分为3大主要部分;ZigBee网络数据采集部分、GPRS模块通信部分和嵌入式Web Server部分。整个系统主要流程如图3所示。
系统数据采集主要通过查询方式进行,由远程监控端发出查询请求后,现场数据采集系统才进行数据采集、传输或其他响应。查询请求到达ZigBee网络的协调器端后,协调器在网络内部通过单点传送的方式与各个终端节点进行通信。
由于现场数据采集部分的GPRS模块与数据中心的GPRS模块功能有所区别,可通过设定全局标志位GPRS_Module_Role为0或1来指定GPRS模块为现场数据采集GPRS模块还是数据中心(即接收端)的GPRS模块。现场数据采集GPRS模块为了保持连接还需在空闲时间发送心跳包。与远程IP建立连接的相关任务全部由GPRS模块中的STM32F103C8完成,并将配置信息写入SPIFlash中,外部数据可直接通过GPRS模块的串口发送。
若与数据中心IP连接出现连续3次错误(错误次数可设定),现场数据采集GPRS模块将通过固定内容短信的方式告知数据中心的GPRS模块,数据中心的GPRS模块通过回应固定内容的短信对远程控制单元实现紧急处理。
嵌入式Web Server部分主要负责将数据通过串口转发至GPRS模块或者上位机,并实现现场监控计算机可通过浏览器对监控网页进行访问和在LCD端显示数据采集信息,嵌入式Web Server主要通过公共网关接口CGI以及服务器端嵌入标签SSI Tag实现对外网页表单数据的更新与获取。同时,监控计算机进入系统配置更改前,需通过串口发送字符“authenticated_id_l00p”(也可自定义为其他)到LM3S9D92串口1,特定字符串检测主要是通过函数strstr(pstr,“authenticated_id_loop”)实现,其中pstr为待检测字符串地址,检测到目标字符串后返回该位
置的指针,否则返回空指针。LM3S9D92串口接收中断流程中检测到目标字符串后,将循环执行PN532读卡函数PN532_readPassiveTargetID(PN532_MIFARE_ISO14443A,&uid[0],&uidLength)3次,当读取到特定ID后跳出该循环,并将变量Authenticated_ID_OK置1,表明通过IC卡认证流程,可继续执行系统配置。
4 测试结果
通过对4个ZigBee终端节点I/O口P1.0控制的LED状态进行了采集和控制,并在嵌入式Web Server端及其LCD上显示其开关状态,可通过网页中的复选框对I/O状态实现控饼,具体如图4所示。嵌入式Web Server端还分别在Windows以及Ubuntu/Linux操作系统下使用系统自带浏览器进行了测试,均可正常使用,现场监控计算机接入系统十分方便。另外,测试了修改系统关键信息时的安全性,更改数据采集端的GPRS模块短信报警号码时,系统进行了身份认证,通过读取卡号识别到程序内已存的管理员1、2的信息,通过串口输出调试信息。
结语
本设计以ZigBee网络和GPRS模块为中心,结合ZigBee以及GPRS无线通信技术,使得远程数据采集与控制更易实现。经实际测试,采集和控制各个ZigBee节点CC2530 P1.0引脚输出状态,运行结果能够到达预期效果。另外,本系统还可根据实际情况在各个ZigBee终端节点添加其他数据采集电路,实现更加强大的功能或拓展网络结构,因此,本文设计的远程数据采集系统具有较高的实用参考价值。