嵌入式linux远程控制需求分析_第1页
嵌入式linux远程控制需求分析_第2页
嵌入式linux远程控制需求分析_第3页
嵌入式linux远程控制需求分析_第4页
嵌入式linux远程控制需求分析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、通过在已有嵌入式硬件基础上,利用操作系统ARMLinux建立嵌入式平台,并在PC机上由Linux操作系统编写和编译boa、CGI等一系列应用程序,并移植到嵌入式平台上,组建嵌入式家庭网关,从而构建成一个基于ARMLinux嵌入式平台的、使用Boa作为Web服务器的远程在线控制系统, 系统可以通过IE页面对各种模拟家电设备进行动态的交互控制,在真正意义上实现了通过互联网进行远程控制,实现了智能家电远程控制系统的设计目标。1、 描述系统;(1) 远程的LED控制(2) 远程步进电机控制(3) 远程电机控制要求能够通过Internet B/S(浏览器/服务器)结构进行访问。加上相应的CGI程序能够通

2、过GPRS完成控制能够通过客户端完成C/S(客户端/服务器)结构的访问2、 可行性分析(使用什么样的技术来完成)根据现有的试验硬件平台GEC2410,对其软件系统的移植,根据硬件电路图,设计相应的驱动程序。 B/S体系结构的网络控制,可以通过移植Boa server服务器和服务器端CGI(通用网关接口,用于提交客户端的请求)本文的主要研究思路本设计通过分析各种已有的嵌入式家庭网关设计事例,总体拟采用以ARM 核的32 位嵌入式微处理器为硬件平台,结合通信技术,通过移植嵌入式操作系统,并在其上开发相应的驱动程序、应用程序和嵌入式WEB 服务器实现一个方便、实用的家庭网关。主体研究内容如下:1)

3、收集、分析国内外嵌入式系统的标准文档与资料,特别是嵌入式Linux 系统的资料,对其关键技术、特点和应用前景进行比较、分析,形成自己的结论;2) 基于嵌入式开发系统硬件,通过移植、完善,建立拥有源代码的嵌入式Linux系统平台;3) 建立拥有源代码的TCP/IP 协议栈;4) 建立拥有源代码的WEB服务支持,并实现远程交互式网页访问。5) 支持远程控制的智能家电系统原型的设计与实现。系统的软件结构系统采用在嵌入式操作系统(本系统采用ARMLinux)的基础下通过WEB 方式,即利用B/S 结构,在嵌入式设备上运行一个支持脚本或CGI 功能的WEB 服务器,生成动态页面,在用户端只需要通过WEB

4、 浏览器以网页访问的方式对嵌入式设备进行查看,并进行相应控制。其基本软件结构如图3。图3 系统软件结构主要工作流程如下;1) 首先, 由客户端发出请求给WEB 服务器。2) WEB 服务器对客户请求进行判断。如果该请求是一个HTML 文件或图像等静态文件,WEB 服务器就将文件直接传送给客户端的浏览器。如果客户请求是一个动态请求, WEB 服务器将激活相应CGI 的程序。3) WEB 服务器守护进程创建一个子进程, 该子进程将CGI 请求的有关数据设置成环境变量,在外部CGI 程序与服务器间建立两条标准的I/O 数据通道。4) WEB 服务器启动URL 指定的CGI 程序。CGI 程序通过环境

5、变量和标准输人Stdin 读取客户端的输入数据并进行处理, 并可根据请求调用相应的外部程序。5) CGI 程序处理完毕后通过标准输出Stdout,将处理结果传递给服务器守护进程, 守护进程再将处理结果以HTML 格式传送回客户端。(三) 系统的软件的详细设计与实现1. 交互式WEB 服务器的实现(1)WEB 服务器技术分析常用的嵌入式WEB 服务器软件有lighttpd、thttpd、shttp 和boa。通过软件性能、CGI 功能等比较,由于boa 源代码开放、性能优秀、支持CGI,特别适合应用在嵌入式系统中,且最大的优点就是速度快,则本设计采用boa 构建WEB 服务器。Boa 是一款运行

6、在类Unix 系统中的小型WEB 服务器,特别适合在嵌入式场合使用,它是一个单任务的WEB Sever 服务器,它产生独立的进程来处理CGI 程序,因此占用较少的系统资源,boa 的优点在于其快速性和可靠性。它与其他服务器的区别是:调用返回结果调用返回结果 返回结果传递参数调用CGIStdoutStdin客户机WEB浏览器WEB服务器CGI程序驱动程序硬件设备11没有CGI 程序设置REMOTE_HOST 环境变量;在boa 中没有Server-Side(SSI)项,要产生动态的往页只有通过CGI。(2)boa 服务器的体系结构Boa 服务器处理用户请求并返回数据给浏览器,其动态的访问服务器需

7、要用到CGI,其体系结构如图4。图4 boa 服务器体系结构(3)boa 服务器的工作流程Boa 服务器首先进行初始的配置,然后建立socket 连接,调用select 函数来监视文件描述符的状态,通过调用相应函数来处理请求。其工作流程如图5。图5 boa 工作流程12(4)boa 服务器的实现boa 的实现如下:第一步,完成boa 程序的移植。从/下载Boa 源码,在Linux操作系统下将其解压并进入源码目录的src 子目录。# tar -zxvf boa-0.94.13.tar.gz# cd boa-0.94.13/src# ./configure 生成M

8、akefile 文件。然后修改Makefile 文件,找到CC=/gcc,将其改成CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc,(其作用是编辑编译器路径,而在本机上路径为:/usr/local/arm/2.95.3/bin/)找到CPP = gccE,将其改成CPP =/usr/local/arm/2.95.3/bin/ arm-linux-gccE,保存退出。运行make 进行编译,在boa-0.94.13/src 目录下就得到了boa 可执行指令,并将调试信息剥去。# make# /usr/local/arm/2.95.3/bin/arm-linu

9、x-strip boa第二步,完成boa 的配置,使其能支持CGI 程序的运行。boa 需要在/etc 目录下建立一个boa 目录,里面放入Boa 的主要配置文件boa.conf。在boa 源码目录下已有一个示例boa.conf,可以在其基础上进行修改,本文只对修改的地方做下介绍,其具体情况可参附录A。1) 作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需要在/etc/passwd 中有nobody 用户。即:User nobody但在后来的实践中发现,该用户无法实现POST(),无法上传文件,无法访问共享内存,所以在本系统中,修改 User nobody 为 User roo

10、t 。2) 作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,要在/etc/group 文件中有nogroup 组。即:Group nogroup3) 服务器名字,默认是注释掉,本系统则需要。ServerName 4) 指明CGI 脚本的虚拟路径对应的实际路径。一般所有的CGI 脚本都要13放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI 脚本名。该项默认为未打开,执行Boa 会异常退出,提示“gethostbyname:No such file ordirectory”,所以必须打开,需执行如下命令。ScriptAlias /cgi-bin/

11、 /var/www/cgi-bin/其它默认设置即可。在本系统中,还需要创建日志文件所在目录/var/log/boa,创建HTML 文档的主目录/var/www,将mime.types 文件拷贝到/etc 目录,创建CGI 脚本所在目录/var/www/cgi-bin/。mime.types 文件用来指明不同文件扩展名对应的MIME 类型,一般可以直接从Linux 主机上拷贝一个,大部分也都是在主机的/etc 目录下。第三步,测试Boa 能否正常工作,静态HTML 页面能否正常访问,CGI 脚本能否正常运行。将boa 可执行程序和其他配置文件转入到嵌入式系统中后,运行boa,即可通过其他机器就

12、可以访问了。如在IE 中输入30(嵌入式系统IP)就可以访问到index 页面了。2. 2. CGI 程序设计在大多数嵌入式WEB 应用中,都需要提供动态内容显示或交互式操作,以便对设备进行远程控制。而简单的静态页面所提供的内容是不变的,也无法完成交互操作。公共网关接口(CGI)能够从根本上解决这种情况,使WEB 的客户端和服务器之间具有交互功能,使得嵌入式系统的远程控制得以实现。CGI 是一个用于定义WEB 服务器与外部扩展应用程序之间通信方式的标准或接口规范。它规定了一组标准的环境变量和参数格式,定义了从HTML 脚本到服务器上执行进程的一个与平台无关的网关。CGI 接口提供在超文本(HTML)文件编写时,可以结合其他外部的程序语言(如C 语言),用来解释处理来自客户端输入的表单信息,并在服务器上产生相应的处理,或者将由此产生的处理结果作为响应,用恰当的信息显示一个新的客户界面,达到信息交互的目的。用户输入数据可以通过三种方式传给CGI 程序:通过环境变量(GET 方式)、通过命令行参数方式或者通过CGI 程序的标准输入方式(stdin,POST 方式)。当使用GET 方式时,CGI 通过环境变量QUERY_STRING 获取客户端传输数据,格式如“name=user”、“mima=m121”,在表单(Form)中使用GET 方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论