APP下载

基于嵌入式Web服务器和ZigBee的远程数据采集系统设计

2018-06-29王永强

唐山学院学报 2018年3期
关键词:浏览器嵌入式远程

陈 舵,王永强

(唐山学院 计算机科学与技术系,河北 唐山 063000)

0 引言

随着物联网的迅速发展,远程数据采集系统在工农业生产和日常经济生活中的应用日益广泛。嵌入式Web服务器(Embedded Web Server,EWS),是在现场测试和控制设备中嵌入的Web服务器[1],是一类基于嵌入式设备的、低资源消耗的、小型或微型的Web服务器。EWS通常采用Browse/Server的工作方式,即在嵌入式设备上运行支持脚本或通用网关接口(Common Gateway Interface,CGI)功能的Web服务器,能够生成动态页面,远端用户通过Ineternet浏览器可以对嵌入式设备进行管理和监控,使用非常方便,逐步成为嵌入式设备的主流管理与交互方式。ZigBee网络作为无线传感器网络中最具发展潜力和研究价值的网络之一,获得军界、工业界和学术届的高度关注[2]。综合应用传统的嵌入式Web服务技术和近来迅速发展的ZigBee无线传感器网络技术,完成远程数据采集和传送,是一种可靠和简洁的系统实现方案,也正是本文的研究内容。

1 系统构成

基于嵌入式Web服务器和ZigBee的远程数据采集系统结构图如图1所示。系统主要由远端客户端、嵌入式Web服务器、ZigBee传感器网络3个部分组成。本系统使用开源的GoAheadWeb服务器,基于三星Exynos4412处理器搭建嵌入式Web服务器;ZigBee传感器网络拓扑结构采用星型结构,这是一种较为简单的网络结构,只需要协调器和端节点,不需要路由器。其中,协调器负责发起和建立网络,并通过串行总线与现场嵌入式Web服务器建立联接,其他所有端节点为终端设备,终端设备中配置有相应的传感器,进行现场数据的采集,这些数据通过端节点直接上传给协调器,若端节点之间需要通信,也必须通过协调器进行转发。

图1 系统整体结构图

2 嵌入式Web服务器的实现

2.1 嵌入式Web服务器硬件方案

本文选择采用ARM Cortex-A9内核的处理器Samsung Exynos4412微处理器为主控芯片,处理器Exynos4412内部集成了Mali-400 MP高性能图形引擎,支持3D图形流畅运行,并可播放1080P大尺寸高清视频,运行主频高达1.5 GHz。提供UART,I2C,I2S,USB,SPI,SDIO等总线接口,配置1 GB的DDR3内存、4 GB的FLASH存储器。Cortex-A9处理器利用动态长度、八级超标量结构、多事件管道及推断性乱序执行机制,能在频率超过1 GHz设备的每个循环中执行多达4条指令,运行效率得到很大提高,并与其他Cortex系列处理器以及广受欢迎的ARM MPCore技术兼容,支持通用的包括操作系统、实时操作系统、中间件以及相关应用程序在内的丰富软件资源,完全满足本系统的需求。

2.2 嵌入式Web服务器软件设计

2.2.1 EWS的选择

常见的EWS有Httpd,Apache,Boa和GoAhead等[1]。其中,Httpd是一种轻量级Web服务器,提供HTTP支持;Apache是重量级服务器,成熟稳定,但体积较大,适合复杂的嵌入式应用,但在高负载的情况下,没有单进程的服务器性能高[1];Boa支持HTTP和CGI,具有较高的请求速度及效率,最多可以同时响应50个请求;GoAhead是一款面向嵌入式系统的Web服务器,主要用于解决嵌入式系统开发的相关问题,仅管它的体积非常小巧,但提供了常见的服务特性,支持HTTP,ASP,嵌入式JavaScript,CGI以及静态页面HTML格式。因此,本文选择GoAhead作为嵌入式Linux操作系统下的Web服务器。

2.2.2 EWS的移植

本系统采用的LINUX版本为2.6.32,交叉编译器为gcc version 4.5.1,移植步骤如下:

①下载服务器源码,webs218.tar.gz,下载地址:http://www.goahead.com。

②解压源码工程:tar-xzvf webs218.tar.gz。

③修改Makefile文件:进入源码目录,修改LINUX目录下的Makefile文件,

cd ws031202/LINUX/

vim Makefile

添加编译器宏定义,加入变量CC和AR的定义:

CC=arm-linux-gcc

AR=arm-linux-ar

④交叉编译:

make

编译成功后,即可生成Web服务器镜像,将其烧写到目标机后,进行相关配置并运行,即可启动嵌入式Web服务。

2.2.3 EWS服务程序设计

嵌入式Web服务器涉及的主要技术是超文本传输协议HTTP和CGI,EWS工作过程示意图如图2所示。

图2 EWS工作过程示意图

在嵌入式Web服务器的工作过程中,通过CGI实现了动态网页服务,CGI接口标准包括标准输入、环境变量、标准输出三部分,规定了嵌入式Web服务器调用其他程序的接口协议标准,Web服务器通过调用CGI程序实现和Web浏览器的交互,CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,将响应结果再回送给Web服务器及Web浏览器,完成Web网页中表单数据的处理、数据库查询和实现以及与传统应用系统的集成等工作。

常用的CGI编程语言有shell script,C,visual basic,perl等,其中C语言简洁紧凑、灵活方便、运算丰富,并允许直接访问物理地址,支持直接对硬件进行操作,执行效率高,且可移植性好,是一种广泛使用的结构化程序设计语言。本文选择C语言进行CGI程序的开发,嵌入式Web服务器算法流程图如图3所示。

图3 EWS算法流程图

3 ZigBee传感器网络的实现

ZigBee是一种基于IEEE802.15.4标准的短距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术。综合应用了ZigBee和传感器技术的ZigBee无线传感器网络,具备简单、方便、稳定和低成本等特点,应用非常广泛。

3.1 ZigBee传感器网络硬件方案

目前ZigBee的实现方案主要有三种:MCU和RF收发器分离的双芯片方案、集成RF和MCU的单芯片SOC方案以及ZigBee协处理器和MCU的双芯片方案。在主要的ZigBee芯片提供商中,德州仪器的ZigBee产品覆盖了以上三种方案,飞思卡尔,ST,Ember,Jennic可以提供单芯片方案,Atmel,Microchip等其他厂商大都提供MCU和RF收发器分离的双芯片方案。

CC2530是用于2.4 GHz IEEE 802.15.4,ZigBee和RF4CE应用的一个片上系统解决方案,结合高性DSSS射频收发器和工业级8051控制器,这种解决方案能够提高性能,并满足以ZigBee为基础的2.4 GHz ISM波段应用,具备低成本、低功耗等特点,所以本文选择这种硬件方案。

3.2 ZigBee传感器网络软件设计

Z-Stack是由美国德州仪器开发,符合IEEE 802.15.4标准的免费和半开源ZigBee协议栈,它可以运行在CC2530以及TI别的硬件体系上,支持ZigBee2007及ZigBee2007Pro协议。本文的软件设计是基于ZigBee2007协议的。

ZigBee协调器是启动和配置网络的一种设备,负责启动整个网络,先选择信道和网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。ZigBee2007协议栈规范使用了IEEE 802.15.4定义的物理层(PHY)和介质访问层(MAC),并进一步定义了网络层(NWK)和应用层(APL),开发人员需要在此协议栈的基础之上增添自己的定义来满足具体设计需求。本文采用ZigBee协调器与子节点形成星型网络的网络架构,ZigBee协调器主要功能是创建网络并进行通信。本文采用定长通信协议,一帧固定为25字节,协议的定义如下:

u8 DataHead[2]:包头0xEE,0xCC

u8 NodeAddress[4]:节点网络地址

u8 FamilyAddress[4]:根节点网络地址

u8 NodeState:节点状态

u8 NodeChannel:物理信道

u8 ConnectPort:节点ID

u8 SensorType:传感器类型

u8 SensorID:相同类型传感器ID

u8 SensorCMD:节点命令

u8 Sensordata[8]:节点传感器数据

u8 DataEnd:包尾0xFF

其中,符号“u8”表示单字节无符号整数数据类型。

ZigBee端节点既可以是全功能设备,也可以是简化功能设备,但通常只需要一个简功能设备作为端节点。在基于ZigBee的无线传感网络中,端节点的主要作用是采集传感器数据,开发人员需要在应用层中加入传感器驱动程序,实现对传感器的数据读取。

4 系统测试

本文以温度、湿度和压力为数据采集实例,实现基于嵌入式Web服务器和ZigBee的远程数据采集。选用的温湿度传感器型号为DHT95,压力传感器型号为FSR400。其中,DHT95是一款含有已校准数字信号输出的温湿度复合传感器,IIC数据总线工作方式属于数字传感器,测量范围分别为:温度-20~128 ℃和湿度0~100% RH。FSR400是一款超薄型电阻式压力传感器,测量范围为0~10 kg,属于模拟传感器。远程客户端软件平台为:Windows7及以上操作系统、IE8.0及以上Web浏览器。URL测试地址为:http://192.168.1.6/:8000。浏览器主界面如图4所示。

图4 浏览器主界面

输入要获取的物品编号和数据类型,0代表温度,1代表湿度,2代表压力。点击页面中的“获取”按钮,则服务器程序接受请求,并传回用户请求的数据。例如,用户获取“物品1”的“温度”数据,如图5所示。

图5 获取温度数据界面

用户获取湿度和压力数据等操作,与获取温度数据的操作相似,不再赘述。

5 结语

本文提出了一种综合应用嵌入式Web服务技术和ZigBee技术的远程数据采集系统的设计方案,并给出了系统硬件和软件的一种可行的实现方法。ZigBee传感器网络实时采集现场数据,通过嵌入式Web服务器实现数据上传,远端用户通过Ineternet浏览器访问嵌入式Web服务器,获取远程实时数据。本文以温度、湿度和压力为数据采集实例,进行了系统硬件和软件测试,结果表明本文提出的设计方案是可行的。今后的研究工作会进一步提高系统可靠性和可维护性,优化人机交互界面。

参考文献:

[1] 朱锦,雷娟娟,陈福才.基于CGI的嵌入式Web服务器的设计与实现[J].电子设计工程,2016,24(19):191-193.

[2] 宋璐,汪贵华,华斯亮.基于ZigBee技术的局域通讯系统设计[J].电子设计工程,2017,25(20):97-100.

猜你喜欢

浏览器嵌入式远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
TS系列红外传感器在嵌入式控制系统中的应用
远程诈骗
搭建基于Qt的嵌入式开发平台
倍福 CX8091嵌入式控制器
浏览器