新闻中心

EEPW首页>嵌入式系统>设计应用> 基于嵌入式Web服务器的远程控制系统的实现

基于嵌入式Web服务器的远程控制系统的实现

作者: 时间:2010-08-05 来源:网络 收藏

2的软件结构
系统软件主要包括操作系统的选取、网页的配置、网页的编辑、驱动程序和应用程序的配置移植,软件层次如图3所示。
由于该处理器不具有MMU(存储器管理单元)且需要完备以太网协议构建网页,故选择开源的μClinux操作系统。该操作系统从Linux2.o.发展而来,专门应用于不具备MMU的微。该操作系统提供了3个服务器:httpd,Thttpd和BOA。其中功能最简单的是httpd.不支持认证、CGI。Thttpd和BOA服务器都支持认证、CGI(Common Gateway Interface,公共网关接口)等,但由于Thttpd服务器需要的资源比BOA大得多,故该系统最终采用BOA服务器作为控制的网页服务器。
2.1 BOA服务器的配置
BOA是一个单任务的http服务器,安全性高、源代码开放、性能高。在μClinux的发行版中,在主目录下的user目录里,有BOA服务器的目录,在example子目录中,有2个文件boa.conf和mime.types,这里需要修改配置boa.conf文件,它是BOA服务器的参数配置文件,配置如下:


另外该系统将src目录下的defines.h头文件SERVER_ROOT宏定义设置为home目录,即服务器目录,配置操作系统时,boa.conf和mime-.typs都必须复制到此服务器目录下,从而完成服务器的配置。
2.2 服务器与客户端动态交互的
在动态网页交互设计中,主要有CGI(Common Gateway Interface),PHP(Personal Home Page),ASP(Active Server Page)和JSP(Java Server Page)4种技术。在Linux下动态网页通常选择CGI技术。CGI称为公共网关接口,是一段运行于服务器上的程序,可以将客户端浏览器递交的信息传递给服务器,服务器则会启动对应CGI程序去执行,最终可将结果再反馈给客户端。CGI程序的编写可以采用任何编程语言,只要这种语言具有标准输入、输出和环境变量。由于C语言具有较强的平台无关性,因此该系统采用C语言来编写CGI程序。
动态网页是通过网页内嵌表单的方式进行信息传递的。该系统首先采用网页编辑软件Dreamweaver编辑登陆界面index.html及控制界面remote.html。在编辑表单选项时由action属性指向相应CGI程序路径,由method属性决定提交数据的方式是GET方式还是POST方式。客户端传送到服务器的数据采用URL编码的方式传送,例如参数采用name=value的形式,每对之间用”&”连接。特殊字符用”%”加一个十六进制数字编码,输入的空格用”+”来表示等,所以服务器端的CGI在接收数据时需经过解码操作。
环境变量在CGI程序设计中很重要,客户端和服务器端都将信息存储在某些变量中,环境变量有3类:与服务器相关的环境变量、与客户端相关的环境变量以及与请求相关的环境变量。其中最常用的环境变量有REQUEST_METHOD记录请求方式,QUERY_STRING存储传递的数据,CO-NTENT_LENGTH传递数据的长度。
编程时先创建数据结构entry,用来记录要使用的变量和变量名。

当采用GET方式传递信息时,可使用如下代码获得传输的数据:

当采用POST方法传递信息时,可使用如下代码获得传输的数据:

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭