Web动态服务及控制在物联网中的应用设计

2011-03-10 11:13:37来源: 互联网

引言
    随着网络技术的不断发展,嵌入式系统将不断地和网络相结合。嵌入式Web技术是计算机领域研究的热点,其优点是开发成本低、通用性强,能运行在8位或16位MCU环境中,其丰富的Web用户图形界面使得嵌入式设备具有极好的交互性。因此,一旦在嵌入式设备中集成了Web服务,就能实现用户与嵌入式设备低成本、高通用性的信息交流,即客户端利用HTTP浏览器(如IE),在任何时间、任何地点都能实现与嵌入式设备的信息交互。可以说,嵌入式Web的应用必将极大地促进嵌入式设备,特别是低端控制设备、仪器、仪表的信息化,最终将促进物联网的各种应用。
    在MCU上开发Web服务器的难点在于其资源有限。相比台式机PC(几个GB的双核CPU,几个GB的内存和几百个GB的硬盘)来说,嵌入式系统的各种硬软件资源少得可怜。在嵌入式系统中实现复杂的Web动态服务及Web控制,既没有必要也不现实。因此,如何紧紧围绕嵌入式系统的具体应用要求,恰当地实现Web动态服务及Web控制,进而实现物联网应用是一个需要解决的技术难题。

1 嵌入式Web服务的一般实现方法
   目前,嵌入式设备中通常使用的Web服务器有Apache、httpd、Boa、Thttpd和mini-httpd等。常用的实现动态Web页面的技术主要有CGI、ASP、PHP、JSP、Java、ISPI等。其中,Boa是一个运行在类Unix系统中的小型Web Server,虽然功能比较齐全,但很多功能(如virtual hos-t,内存使用量较大)对嵌入式应用而言是冗余的;Apache功能较强大,但占用空间太多(需要几MB空间,其他Web服务器只需要几百KB);PHP 可扩展性较差,安全性不高;标准的CGI需要用到文件、进程等操作。
    为节省资源、提高效率,嵌入式环境下现应用较多的是嵌入式动态Web实现方法,一般采用“Apache+PHP”或者是“Boa+CGI”技术。然而,在低端的嵌入式设备中,特别是8位MCU的仪器、仪表中,因为受资源尤其是存储资源的限制,要用上述思路来实现嵌入式Web服务不太现实,毕竟对于低端的嵌入式设备而言,移植操作系统是一件奢侈的事情。

2 嵌入式Web动态服务的改进思路及实现
    考虑到嵌入式Web服务器的应用领域多数是专门的控制设备仪表,绝大多数控制设备仪表的工作流程都是基本固定的,所以可以考虑采用某种固定的交互模式来控制这些仪表。能否用这种思路进行设计的关键是要弄清下面两个问题:第一,嵌入式Web服务器的功能有哪些?第二,这些功能是否固定,是否需要扩展?如果这种功能既不是很复杂,又相对固定,那么就可以按照这种思路进行设计,而完全没有必要用CGI、ASP等Web动态服务技术来实现Web动态服务。遵照这一思路,本文实现如下:
    ①将显示界面不变的部分作为一个静态页面,以HTML格式存储在ROM中,以方便MCU直接操作。这样设计后,需要注意的问题是,MCU的ROM空间是否能同时存储程序代码和网页HTML代码。笔者所设计的嵌入式Web服务器的程序代码量有28 KB,而HTML代码量有2~3 KB,采用的MCU(即W78E58B)有32 KB ROM空间,因此采用这种设计思路完全可行。
    ②利用替换法提供Web动态服务。对需要动态改变的内容部分作特殊标记,例如,环境温度值为“TAG:Temperature”,网页长度为“TAG:PageLen”。程序运行时,先将静态页面由ROM读入内存,然后将环境温度值和网页长度值传送到服务器节点,服务器读取实际值并存入内存,再用实际值代替标记,生成一个新的页面并将其送给浏览器,这样用户看到的就是一个动态的页面。
    ③经过上述设计后,网页文件的值是动态的,但不是实时的。可以采用如下思路实现实时动态服务:利用HTML语言的equiv =“Refresh”content=“秒数”;url=“跳转的URL”>来实现网页内容的自动更新,其刷新时间由文件开头语句中的content的内容决定。该值可根据具体应用需求进行设置,例如笔者设计的刷新时间为2 s。
    按照这种设计实现后,网页文件就能在2 s范围内实时显示系统通过温度传感器采集来的环境温度。

3 嵌入式Web控制的实现
   按照上述思路可实现服务器对客户端的Web动态服务。然而在实际的嵌入式应用中,仅仅一个Web动态服务是不够的,它还应支持客户端数据上传到服务器,以达到通过客户端来控制服务器的目的。
    那么,如何实现客户端对服务器端的控制呢?遵照上述设计思路,并结合HTTP请求中的POST命令来实现简单的Web控制。实现过程如下:
    ①在网页文件中实现如下表单:

a.JPG
    ②在嵌入式Web服务器的HTTP接收模块中分析HTTP请求的POST数据,当LEDCtr1=0时,发送指令点亮LED灯,否则熄灭LED灯。

4 功能测试
    测试时可将嵌入式Web服务器与客户端主机直接相连,并利用PC机的IE浏览器实时读取服务器测量的环境温度,结果如图1所示。左图是测量的当前环境温度显示的结果,右图是当采用物理手段(如利用打火机烧烤传感器)以提高环境温度后显示的结果。由图可知,嵌入式Web服务器能完成正常的Web动态服务。经实践验证,服务器系统LED灯的亮/灭完全可由图1所示的亮/灭控件来控制,也就是说已成功实现了Web控制。

 b.JPG

 

5 结论
    笔者分析了当前嵌入式系统实现Web动态服务的几种思路,以采集环境温度、控制LED灯的亮/灭为例,给出一种在嵌入式设备中实现Web动态服务与Web控制的实现思路,并在给出实现结果的基础上验证了该设计思路的可行性。这为嵌入式设备,特别是低端嵌入式设备中顺利实现Web动态服务及Web控制,进而实现物联网技术打下了坚实的基础。

关键字:动态  服务  控制

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0310/article_5052.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
动态
服务
控制

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved