APP下载

嵌入式web服务器的远程数据采集系统研究

2020-07-29蔡创

微型电脑应用 2020年7期
关键词:ZigBee技术实现路径

摘 要: 为有效满足远程数据采集需求,本文对远程数据采集系统进行了研究和设计。该系统基于嵌入式Web服务器,通过综合应用ZigBee技术完成了远程数据采集系统的软硬件设计。嵌入式Web服务器同ZigBee传感器之间通过串行总线实现数据通信过程,现场数据的实时采集功能通过使用ZigBee传感器网络实现,通过使用Internet浏览器远端用户即可对Web服务器进行访问并实时获取远程数据。

關键词: 远程数据采集系统; 实现路径; 嵌入式Web服务器; ZigBee技术

中图分类号: TP393.09文献标志码: A

Research on Remote Data Acquisition System Based on Embedded Web Server

CAI Chuang

(School of Information Engineering, Shanxi Polytechnic Institute, Xianyang, Shanxi 712000, China)

Abstract: In order to effectively meet the needs of remote data acquisition, this paper mainly researches and designs a remote data acquisition system. This system is based on the embedded Web server, and we complete the software and hardware design of the remote data acquisition system through the comprehensive application of ZigBee technology. The data communication process between the Web server and the ZigBee sensor is implemented through a serial bus. The real-time collection function of the field data is achieved by using the ZigBee sensor network. Remote users can access the Web server and obtain remote data in real time by using the Internet browser.

Key words: remote data acquisition system; implementing path; embedded Web server; Zigbee technology

0 引言

快速发展完善的物联网技术对远程数据采集功能提出了更高的要求,目前远程数据采集系统已经在日常生产生活中得到广泛应用,主要应用于现场测试和控制设备中的嵌入式Web服务器(Embedded Web Server,EWS,通常采用B/S的工作方式)属于一种基于嵌入式设备的小型Web服务器,具备低资源消耗、易扩展等优势,此类Web服务器需嵌入式设备支持CGI功能(Common Gateway Interface,通用网关接口),并能够生成动态页面,使用非常方便,远端用户据此可实时高效的管理和监控嵌入式设备(通过Ineternet浏览器),已经成为嵌入式设备的主要交互及管理方式。本文的研究重点在于通过综合应用基于IEEE802.15.4标准的ZigBee网络(一种最具研究价值的无线传感器网络)及嵌入式Web服务技术,构建一种可靠和简洁的远程数据采集系统实现方案,从而实现高效的数据采集和传送过程[1]。

1 远程数据采集系统的总体架构设计

本文设计的远程数据采集系统基于ZigBee和嵌入式Web服务器实现,系统主要由3个部分组成,其总体架构示意图如图1所示。

系统的服务器选用了开源的GoaheadWeb,嵌入式Web服务器通过使用三星Exynos处理器完成搭建;ZigBee传感器使用星型的网络拓扑结构,此种网络结构无需使用路由器,仅通过使用协调器(负责发起和建立网络)和端节点(作为终端设备,端节点间的通信过程需通过协调器转发完成)即可实现通信功能,协调器同现场Web服务器采用串行总线实现联接通信过程,通过将相应的传感器配置于终端设备端节点中实现现场数据的采集过程,并将采集到的数据向协调器直接上传。

2 嵌入式Web服务器的实现

2.1 硬件设计方案

系统硬件的主控芯片选用了三星Exynos微处理器(基于ARMCortex-A9内核,集成了高性能图形引擎Mail-400Mp),可有效兼容ARMMPCore技术和Cortex系列处理器,运行主频高达1.5 GHz,并配置了DDR3内存和Flash存储器,Exynos处理器支持清晰流畅的3D图形(支持1080P高清视频的播放),具备丰富的总线接口(包括SPI、UART、I2C、USB、SDIO等)。具备动态长度及八级超标量结构的Cortex-A9处理器可显著提高系统的运行效率,具体通过利用多事件管道及乱序执行机制实现了在高频率设备(大于1 GHz)各循环中多达4条指令的同时执行,支持丰富的通用软件资源(包括相关应用程序、实时操作系统、中间件等),可有效满足本文远程数据采集系统的硬件功能需求[2]。

2.2 软件设计方案

(1) 选择EWS,Goahead(体积非常小巧)、Httpd(轻量级Web服务器)、Apache(重量级服务器)等均为常用的EWS,Httpd提供Http支持;体积较大的Apache较为成熟稳定适用于复杂的嵌入式应用,但其服务器性能在高负载情况下要明显低于单进程;面向嵌入式系统的Goahead提供了丰富的服务特性,支持Http、CGI、静态页面HTML格式、ASP、JavaScript等,能够使嵌入式系统相关开发问题得到有效解决。因此本文选用了Goahead作为嵌入式Web服务器。

(2) 移植EWS,该远程数据采集系统采用了Linux操作系统,并以gccversion作为交叉编译器为,移植EWS的主要步骤为:先进入Http://www.goahead.com网页中完成服务器源码(Webs218.tar.gz)的下载,再对源码工程进行解压处理,接下来进入源码目录中对Linux目录下的Makefile文件进行修改,添加编译器宏定义(具体路径为cdws0312/Linux/vim Makefile),然后加入变量CC和AR的定义(分别为arm-Linux-gCC和ARM-Linux-AR),最后通过交叉编译make后实现Web服务器镜像的生成,并在目标机将其烧写下来,在此基础上即可配置、启动和运行嵌入式Web服务[3]。

(3) EWS服务程序设计,具体如图2所示。

嵌入式Web服务器主要涉及到Http和CGI(负责实现动态网页服务),嵌入式Web服务器在对其他程序进行调用时遵循CGI接口标准(由环境变量、标准输入及输出构成)规定的接口协议标准,其同Web浏览器间的交互构成则通过CGI程序的调用实现,Web服务器通过CGI程序接收(由Web浏览器发送)并处理信息,并且响应结果会回送给Web浏览器,从而完成Web网页中的相关操作处理(包括处理表单数据、查询数据库)及集成所需应用系统等工作。包括C语言、visualbasic、Perl等在内的CGI编程语言较为常用,考虑到灵活方便的C语言(一种结构化程序设计语言)具备运算丰富、简洁紧凑、可移植性好、可直接操作硬件、允许对物理地址进行直接访问、执行效率高等优势,因此在开发CGI程序时采用了C语言,Web服务器算法流程[3]如图3所示。

3 ZigBee传感器网络的设计与实现

3.1 硬件设计方案

目前ZigBee主要包括双芯片方案(基于MCU和ZigBee协处理器)、双芯片方案(分离了MCU和RF收发器,Atmel、Microchip等厂商均可提供)和单芯片SOC方案(集成了RF和MCU,飞思卡尔、ST等均可提供)3种实现方案,德州仪器提供上述3种ZigBee芯片产品。作为一种片上系统解决方案,用于IEEE802.15.4(2.4 GHz)的CC2530具备低成本、低功耗等特点,并适用于基于ZigBee的ISM波段应用,可有效满足ZigBee的应用需求,结合运用工业级控制器及射频收发器(DSSS)的设计方案可使数据采集系统的性能得到显著提高[4]。

3.2 软件设计方案

本文基于ZigBee協议完成了软件的设计,作为一种ZigBee协议栈Z-Stack(美国德州仪器)具备免费和半开源特点,可有效运行于CC2530硬件体系上,并且符合IEEE802.15.4标准,支持ZigBee和ZigBeePro协议。网络的启动和配置通过使用ZigBee协调器完成,在完成信道和网络ID选择的基础上对整个网络进行启动。ZigBee协议栈在进一步定义了网络层和应用层(即NWK和APL)的基础上,对介质访问层和物理层(即MAC和PHY,由IEEE802.15.4定义)进行了规范使用,开发人员基于此协议栈可根据实际需要通过自定义的增添实现设计需求的有效满足[5]。本文采用了星型网络架构和定长通信协议,具体由子节点同主要负责创建网络并进行通信的ZigBee协调器组合形成,协议的定义如表1所示。

固定为25字节每帧,无符号单字节整数数据类型由“u8”表示。端节点在ZigBee无线传感网络中主要负责对传

感器数据进行采集,可采用简化功能设备(通常只需一个作

为端节点)或全功能设备作为ZigBee端节点,读取传感器数据时需通过将传感器驱动程序添8加到应用层中实现[6]。

3.3 系统程序设计

本文以实时采集远程环境温度数据为例介绍系统软件程序设计方案,具体通过增加HTML frames(内嵌框架)并将JavaScript脚本嵌入到网页中实现,环境温度通过调用CGI脚本完成读取后由内嵌框架进行静态显示,通过结合运用JavaScript脚本的refresh()函数(将内联框架内容通过CGI脚本的调用实现重新装入,并延时2秒)实现温度变化情况的自动更新及实时动态显示(每两秒更新一次温度),温度实时显示的核心代码如下[7]。

〈html〉

〈script type="text/JavaScript"〉

var delay=2 000

function refresh

{getElementById "frame I ".src="get data";setTimeout ("refresh()",delay);}

〈/script〉

〈body="#CCCC00" onload ="refresh()"〉

〈Add an inline HTML frame〉

〈iframe id="framel" src="about:blank" scrolling="no" name="frame 1" frameborder-"0"〉

〈/iframe〉

〈/body〉

3.4 CGI脚本的程序设计

基于TCP/IP协议栈对CGI脚本进行创建和编写,具体步骤为:首先完成一个CGI脚本的函数原型的创建,并将其添加到虚拟文件系统,然后将具体读取温度应用程序代码添加到CGI脚本程序中,将读取的温度数值以HTML页面的形式向浏览器发送,主要程序代码如下[8]。

prototype:

Void get_data(PSOCKET_INFO socket_ptr);

Definition:

Void get data(socket_ptr)

{Insert application code here.}

Void main

{ Initialization Code

……

Add CGI Script to Virtual File System

Mn_pf_set_entry((byte*)"get data";

Start mn_server()}

……}

int temp_int,temp_fraction;

float t, ambient_temp;

ambient temp= ReadTemperature();

t=ambient-temp*0.0625;

temp_int =(int)(t);

temp-fraction =(int)((t-temp_int+0.05)* 10);

Static byte html_buffer;

Sprintf (html_offer,”〈HTML〉〈center〉〈span style=\" font-size: 28pt; \"〉%i.%i 〈/span〉〈/center〉〈/HTML〉",temp_int,temp_fraction);

socket_ptr-〉send_ptr=htrnl_bu}'er;

len=strlen (html_buffer);

return;

4 总结

本文所构建的远程数据采集系统主要通过综合应用嵌入式Web服务器和ZigBee技术实现,详细阐述了系统硬件构成以及软件功能的实现路徑,ZigBee传感器主要负责对现场数据进行实时采集并将其上传至嵌入式Web服务器,系统用户访问Web服务器(通过Ineternet浏览器)即可实现远程实时数据准确高效的获取,并以温度的数据采集为例详细介绍了软件功能的实现方案,该远程数据采集系统运行维护成本较低,具有较高的实时性,显著提高了远程数据采集的质量和效率。

参考文献

[1] 欧燕京.基于ARM的时间同步数据采集和远程管理系统设计[J].电信技术,2018(4):35-38.

[2] 王欣. 基于ZigBee技术的远程电力抄表数据采集器设计[J].电子技术与软件工程, 2018(8):88-89.

[3] 贺东梅. 基于ZigBee协议的无线通信网关的设计[J].  物联网技术, 2017(1):45-47.

[4] 梁涛,孙天一,姜文,等.区域性多风电场数据采集与远程集控系统设计[J].高技术通讯,2019(4):387-394.

[5] Harsh V P Singh, Qusay H Mahmoud. ViDAQ: A computer vision based remote data acquisition system for reading multi-dial gauges[J]. Journal of Industrial Information Integration,2019(5):29-41.

[6] Jiafu Wan, Daqiang Zhang, Yantao Sun, et al. VCMIA: A Novel Architecture for Integrating Vehicular Cyber-Physical Systems and Mobile Cloud Computing[J].  Mobile Networks and Applications, 2016(2):153-160.

[7] 钟志明,谭坚文,叶方伟,等. 基于统计分析的多协议单片机数据通信系统EFT抗扰度研究[J].  电子学报, 2018(2):393-400.

[8] 米翔,赵明,许希斌,等. 终端直接通信中基于统计QoS保证的资源优化[J].  清华大学学报(自然科学版), 2017(12):1296-1302.

(收稿日期: 2019.12.18)

作者简介:蔡创(1976-),男,硕士,讲师,研究方向:计算机软件开发;C语言;Java开发;数据库技术。

猜你喜欢

ZigBee技术实现路径
多传感器数据融合技术在机房监控系统中的应用
论新疆民族互嵌型社区的建设:现实背景、基本概念和实现路径
经济责任审计发挥国家治理作用的实现路径
基于ZigBee的舱内人员巡检系统的应用研究
浅议人民银行金融稳定职能的实现路径
国际私法法典化的挑战与实现路径
基于WiFi 技术的家居环境监测系统的设计与研究
我国学术期刊的价值设定与实现路径
基于ZigBee的电能无线抄表系统的设计