首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» Web网络传感器的远程数据采集系统设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
Web网络传感器的远程数据采集系统设计
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2014-2-18 21:17
|
只看该作者
Web网络传感器的远程数据采集系统设计
Internet
,
数据采集
,
网络技术
,
传感器
,
嵌入式
在智能传感器的基础上结合了CGI和Java Applet技术,在μC/OSII操作系统下将μIP协议嵌入到传感器的ROM中。利用传感器内嵌的Web服务器,用户可以通过浏览器对远程数据进行监测。该系统解决了因距离影响被监测区域数据的获取问题,实现了真正意义上的网络化监测。
引言
随着网络技术和嵌入式技术的发展,将嵌入式系统与Internet相结合对系统进行数据、图像监控和管理,成为重要研究方向之一。嵌入式Web网络传感器技术是传感器、嵌入式、分布式信息处理和Internet等相关技术交叉结合的技术,它是在智能传感器的基础上把TCP/IP协议作为一种嵌入式应用,嵌入现成智能服务器的ROM中[12],利用传感器内建的Web服务器,用户可以通过浏览器采集远程监控对象的信息[3]。
1 Web网络传感器数据采集系统工作原理
用户通过浏览器访问Web服务器上的数据,将远程采集到的数据实时显示到Internet网页上。用户需要实时看到数据的变化,而HTML网页通常只能是静态的数据,为此在Web服务器上应用动态网页技术是必要的。动态网页的实现技术有CGI和HTML脚本嵌入技术(如ASP、PHP、JSP等),由于网络传感器嵌入式系统采用的是单片机来实现,其资源有限,为此采用CGI技术来实现动态网页。
1.1 CGI原理
CGI[4](Common Gateway InteRFace,公共网关接口)提供给Web服务器一个外部程序的通道,实现处理器与浏览器之间的通信。CGI是一种接口规范,可以处理客户端(一般是浏览器)输入的数据,完成浏览器和服务器之间的交互操作。CGI是运行在Web服务器上的程序,由浏览器的输入触发,是服务器和系统中其他程序的桥梁。CGI程序属于一个外部程序,是运行在服务器端的一个可执行文件。
CGI程序的工作原理示意图如图1所示。
图1 CGI程序工作原理示意图
客户端的Web浏览器浏览到某个主页后,利用一定的方式提交数据,并通过HTTP协议向Web服务器发出请求。服务器端的HTTP Daemon(守护进程)将描述的主页信息通过标准输入(STDIN)和环境变量(environment variable)传递给主页指定的CGI程序,并启动此应用程序进行处理(包括对数据库的处理)。处理结果通过标准输出(STDOUT)返回给HTTP Daemon,再通过HTTP协议返回给客户端的浏览器,由浏览器负责解释执行,将最终的结果显示给用户。
图2 CGI数据采集流程
1.2 基于CGI的数据采集流程
CGI的数据采集流程如图2所示。当用CGI实现远程传感器温度数据采集时,CGI程序可以通过直接访问硬件或调用驱动程序的方式获得数据。当数据采集完毕后,CGI程序将数据组织成HTTP流并发送到Web服务器上,由Web服务器负责送到客户端。
2 实时数据采集技术
2.1 连续数据采集的实现方法
由于HTTP是基于请求/响应模式的,客户端和服务端进行一次交互时,开始于客户提出的一个请求,并在服务器给出响应后结束。而一次交互只能得到一组数据,那么如何实现连续的数据采集呢?一般有两种方法:即客户端牵引和建立TCP连接。
客户端牵引就是在网页中插入定时刷新功能,它的数量级为s,可以使用户看到数据的变化,但不能满足强实时性的要求,而且其中会漏掉一些中间的数据。
建立TCP连接就是通过在网页中嵌入 ActiveX控件或 Java Applet小程序来增强客户机的功能。其中,ActiveX控件只能在Windows环境下运行,而Java Applet通用性强,可以实现跨平台操作。所以本系统采用Java Applet来进行远程数据的实时采集。
2.2 Java Applet
Applet是用Java编写的,含有可视化内容的,并被嵌入Web页面中用来产生特殊页面效果的小程序,经常被用于增加网页多媒体效果,并使网页产生互动功能[5]。
当用户访问带有Java Applet的网页时,Applet被下载到用户计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户计算机上执行的,因此它的执行速度是不受网络宽带或者MODEM存取速度的限制,用户可以更好地查看网页上Applet产生的多媒体效果。
Applet必须将HTML的<applet>和</applet>一对标记或者<object></object>嵌入到Web网页中,使用浏览器才能运行。在IE中用<objectgt;标签取代<applet>标签,在Netscape 4使用<embed>标签取代<applet>,但是<object>和<embed>都必须遵循Java Plugin中的格式。
3 实时数据采集的具体实现
3.1 硬件实现
嵌入式Web网络传感器的数据采集系统的硬件结构如图3所示。
图3 Web网络传感器数据采集系统硬件结构框图
ADuC832是ADI公司推出的混合信号单片微控制器,是真正意义上完整的数据采集系统芯片,是集数据转换电路、微控制器、闪存于一体的数据采集系统[6]。
它的主要特性有:8通道模拟I/O,247 ksps、12位 ADC,2个12位(单调的)电压输出 DAC片内温度传感器;62 KB片内闪速/电擦除程序存储器,4 KB片内闪速/电擦除数据存储器,2 304字节的片内数据 RAM。
主芯片通过74LS138译码器来进行片选外部数据存储器KM62256,或者网卡控制器RTL8019AS。通过74HC573地址锁存器进行当前地址的锁存,使得输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号到来时才改变,也是为了实现地址的复用。
在主电路上主要设计了一个信号输入接口,用来接工业现场的4~20 mA信号的变送器;设计了一个RJ45的网口接口,通过网口可以直接接到Internet上,进行现场数据的上传和共享;还设计了RS485接口和RS232接口,作为工业现场特殊情况下的数据接入和处理。
现场传感器将采集的4~20 mA信号传送给信号调理板,将其信号转换为0~25 V的电压信号,然后通过ADuC832转换为数字量,再通过程序转换为相应的温度值,实时地将温度值显示在嵌有Java Applet的网页上。
3.2 软件实现
3.2.1 操作系统和协议栈的选用
在嵌入式Web服务器上,选用μC/OSII作为嵌入式实时操作系统。它是一个可移植、可固化、可裁剪、抢占式的实时操作系统,比传统的前后台程序可靠性更高,效率更高。
TCP/IP是个协议簇,是诸多开放的协议的集合,但是单片机是个小型的微处理器,内部资源有限,因此必须要对协议进行裁剪。本系统采用精简的小型TCP/IP协议栈——μIP协议栈。μIP协议代码中包括了一些基本的通信协议:ARP协议、IP协议、ICMP协议和TCP协议,UDP协议、HTTP协议、Telnet协议、SMTP协议等。其中,ARP、IP、ICMP、TCP这4个协议就能实现网络连接和通信的最基本的功能,同时还能实现CGI技术。其应用层就是 HTTP协议,采集数据嵌入在 Web服务器网页中以网页的形式发布到 Internet。
图4 软件结构
对于μC/OSII和μIP的移植,详见参考文献[7]和[8]。整个系统的软件结构如图4所示。
3.2.2 Java Applet嵌入网页的实现
应用Applet实现嵌入式Web传感器实时监控程序RealtimeMonitor.java,主要结构如下:
public class RealtimeMonitor extends Applet implements
Runnable{
private Thread wly;//声明定义线程
……
try{
wly.start();//开启线程
……
wly.stop();//退出线程
}
}
public void run(){
try{//表示程序是每一秒请求一下连接
URL u="new" URL("
http://192.168.11.30/data.txt
");
……
wly.sleep(1000);
}
}
其中,192.168.11.30是嵌入式Web服务器的IP地址,data.txt是传感器经处理器处理后的数据,“wly.sleep(1000);”表示设置采集的时间间隔为1 s。
通过JDK软件包,使用命令javac RealtimeMonitor.java将Java程序编译成RealtimeMonitor.class,然后使用“<applet code="RealtimeMonitor" width="400" height="600"></applet>”嵌入到HTML网页中。
最后,在已加载μC/OSII和μIP程序的Web服务器上添加嵌入Applet的Monitor.html网页,将Monitor.html网页的文本转换成十六进制代码,放置在μIP的fsdata.c文件中并嵌入到处理的ROM中,通过Keil将所有程序编译生成HEX文件,下载到嵌入式Web处理器里。
打开浏览器输入IP地址192.168.11.30,访问嵌入式Web服务器上的采集数据。网络传感器实时数据采集结果如图5所示。
图5 网络传感器实时数据采集结果
结语
本文介绍了Web服务器的工作原理,将CGI和Java Applet技术内嵌在嵌入式服务器上,通过客户端的浏览器可以实现嵌入式Web网络传感器的实时数据采集,节约了诸多的硬件资源和人力资源,使得对远程数据自动采集变得更加具有通用性,同时可以适合任何内建嵌入式Web网络传感器,具有一定的现实意义。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议