基于嵌入式web服务器的远程控制系统 个人报告

时间:2019-05-12 22:49:20下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于嵌入式web服务器的远程控制系统 个人报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于嵌入式web服务器的远程控制系统 个人报告》。

第一篇:基于嵌入式web服务器的远程控制系统 个人报告

课程名称:嵌入式系统的软硬件设计

论文题目:基于嵌入式web服务器的远程控制系统 姓名: 设计背景

随着嵌入式系统的发展和Internet的普及,在嵌入式系统中接入网络已经成为嵌入式系统应用及网络发展的一个重要方向,也是必然结果。嵌入式系统与Internet技术的结合,正逐渐改变着每个人的生活方式、企业的生产方式以及管理方式;从信息家电,手持数码产品到设备管理,工业自动控制,嵌入式Internet技术有着广阔的应用前景。

嵌入式Web服务器是嵌入式系统网络化应用的重要方面。Web技术可跨越诸多设备和系统在硬件和软件产品间做到即连即用,任何计算机只需用Web 浏览器,不需要专门的计算机和专用的软件,即可通过以太网和TCP/IP 协议访问各种信息终端。客户机可任意设置,在全球的任何一个角落,只要能连上Internet 并有权访问Web 服务器,便可查阅现场有关信息,给维护和管理工作带来很大的方便。此外,设备信息通过网页的形式体现,可以使用数据、图表、动画等各种丰富的表现方式。可见,在工业控制领域,各式各样的嵌入式设备与Web 技术的结合,可大大降低软件系统和通信系统的设计和维护的工作量,提高现场测试和控制设备的管理水平,可实现设备远程监控,这是现代化工业生产一大亮点。

结合Web技术的嵌入式设备存在诸多的优势。研究嵌入式Web 服务器,以实现设备远程访问、监测并控制,在科技迅速发展的今天,符合人们对便捷生产、便捷生活的需求,有其重要的现实意义。系统总体方案

通过html语言编写Web控制页面,用户能在Web控制MINI2440开发板,实现对LED和蜂鸣器的控制,以及通过DS18B20温度传感器测量温度,实时传回显示的Web页面上。

蜂鸣器控制浏览器中打开web服务器IP地址占空比输入页面LED状态设置页面CGI函数数据显示页面请求服务器CGI返回PWM设置结果页面CGI返回LED设置结果页面Index主页面LED控制请求服务器温度读取ResponseRequestRequestRequestRequestResponse图1 系统流程图 系统具体设计

首先分析系统的功能需求,我们设计题目是基于嵌入式web服务器的远程控制系统,那么此系统需要完成以下几个功能:

1)WEB服务器的搭建

经过查阅资料我们选择BOA服务器作为本系统的WEB服务器,BOA服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。具体的搭建流程参考网络资料。2)控制页面的编写

控制页面主要是通过html语言编写,将页面文件放置在web服务的文件根目录下,等待浏览器访问web服务器时,服务器能够自动的返回我们所编写的页面,从而实现与远程的交互 3)服务器端CGI程序的编写

根据html和CGI调用的规范,我们将事先写好的程序编译成CGI文件放置到web服务器的相应文件夹中,当有相应的请求发生时,web服务器会自动条用相应的CGI程序。4)linux驱动的编写

linux驱动主要涉及LED驱动、PWM驱动及DS18B20驱动。

4个人承担任务

(1)蜂鸣器CGI设计

(2)LED驱动编写

5任务内容 5.1.蜂鸣器CGI 5.1.1公共网关接口CGI 公共网关接口CGI是Web 服务器的一种标准规范,用来将Web 用户的请求传递给服务器的应用程序,并将接收到的数据回送给Web 用户。每当用户向Web 服务器提交一个页面请求(例如,点击一个超链接或输入一个网站地址),Web 服务器会将用户请求的存放在服务器上的网页返回给用户。然而,当用户提交一个带有表单(form)的请求网页时,在服务器端需要接收表单内容,必要时还要根据表单内容作必要的处理。一般来说,Web 服务器并不能直接处理表单,而是把表单内容传送给服务器的一个小型应用程序,由该程序对表单数据进行处理并回送必要的确定信息。这种在Web 服务器与应用程序之间往返传递数据的方法或规范称之为“公共网关接口(Common Gateway Interface)”,简称CGI。

5.1.2蜂鸣器CGI程序任务

CGI 程序需要从Web 服务器接收用户信息,对该信息进行必要处理,最后返回处理结果.根据CGI规范以及本系统设计要求,CGI 需要完成下列任务:(1)接收用户信息

我们在蜂鸣器WEB页面设置控制蜂鸣器频率的PWM占空比,用户浏览器将请求页发送给Web 服务器,由Web 服务器创建一个子进程,在子进程中调用CGI 程序,通过环境变量将用户信息传递给CGI 程序。(2)解码用户信息并处理

用户浏览器请求页在向Web 传递过程中首先被编码,以适合于使用HTTP 协议在网络上传送.因此,当用户信息通过Web 服务器传递给CGI 程序后,CGI 程序要对接收到的用户信息进行解码,将其还原成初始信息,或者设置的占空比,并驱动蜂鸣器工作。(3)生成HTML 网页

将驱动蜂鸣器工作后的结果动态生成HTML 网页,通过Web 服务器回送给用户浏览器,因为用户浏览器要接收的必须是HTML 网页。

5.1.3蜂鸣器CGI程序

(1)获得Web 服务器传递的信息 data = getenv(“QUERY_STRING”);

Web 服务器将一些关键性信息,如请求方法(GEG、POST 等)、请求页类型、用户主机地址等设置为相应的环境变量。在CGI 程序中,调用系统函数getenv(),读取这些环境变量,获得Web 服务器传递的信息。(2)获取占空比

sscanf(data,“beep_control=%d”,&beep_control);从Web 服务器传递的信息中获取占空比值并保存在beep_contro中。(3)驱动蜂鸣器工作

set_duty(fd_beep, beep_control);调用该函数使蜂鸣器以占空比beep_control对应的频率发出声音,fd_beep是驱动设备文件的文件描述符。

voidset_duty(intfd, int duty){ ioctl(fd, PWM_IOCTL_SET_TCNTB, 1000);

ioctl(fd, PWM_IOCTL_SET_TCMPT, duty);

ioctl(fd, PWM_IOCTL_START);} 其中,ioctl是驱动中的函数,实现对PWM的一些控制,设置定时器计数值1000,占空比duty。

#define PWM_IOCTL_START

_IO(PWM_MAGIC, 0)#define PWM_IOCTL_SET_TCNTB _IOW(PWM_MAGIC, 1, int)#define PWM_IOCTL_SET_TCMPT

_IOW(PWM_MAGIC, 2, int)这三个CMD分别为启动PWM定时器、第二个为设置PWM中TCNTB寄存器的值用于设定定时器的计数值、第三个为设置PWM中TCMPT的值用于设定占空比。(4)生成HTML 网页

cgiHeaderContentType(“text/html”);//CGI响应内容格式

fprintf(cgiOut, “”);fprintf(cgiOut, “Beep CGI”);

fprintf(cgiOut, “”);fprintf(cgiOut, “

Control beep

”);fprintf(cgiOut, “
”);printf(“set the duty of beep is %d n”, beep_control);fprintf(cgiOut, “
”);fprintf(cgiOut, “ ”);

//添加返回按钮 fprintf(cgiOut, "

第二篇:基于web的嵌入式远程监控系统

基于web的嵌入式远程监控系统

第1页

共33页

基于web的嵌入式远程监控系统

学生:刘 仁

指导老师:蔡 硕

摘要: 随针对当前国内国外嵌入式服务器技术研究和发展情况的分析,本报告提出了将 WEB 服务器、嵌入式系统以及当前的一些嵌入式实验板板载功能进行融合的设计思想。设计了结合 WEB 服务器技术的嵌入式监控系统。该系统具有浏览交互式网页,对嵌入式平台进行监视和控制等功能。通过本套嵌入式WEB 服务器系统,用户可以通过 HTTP 协议方便的访问相应的嵌入式平台进行有效监视的同时还可以进行实时的有效控制。该系统对硬件要求极低、响应速度快、安全性好、可扩展性强等优点,具有较高的实际应用价值。该系统在智能家居、嵌入式组网等方面的应用将有较广阔的发展前途。

关键词:ARM 嵌入式系统;嵌入式 web 监控;boa 服务器;CGI 编程;Linux 操作系统

关键词:自动化、奏乐器、VHDL、数字电路

基于web的嵌入式远程监控系统

第2页

共33页

Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embedded internet control system basedon the Web service which integrates the web server,embedded technology and thefunctions on the embedded experiment Board.This system has the function of browsing the web pages,monitoring theembedded Board and so on.With this embedded WEB server,the users can watchthe embedded system conveniently according the HTTP protocol.At the sametime the users can also monitor the ystem.This system have a lot of longtageslike a low request of the hardware,limited time of response and a stable status.Wewill see that this kind of system used in the application of intelligent familyelectronics,embedded neting and so on would have a good development.Keywords: ARM Embedded System;Embedded Web Server System;Boa Server;CGI Programing;Linux Operating System

基于web的嵌入式远程监控系统

第3页

共33页

引 言

嵌入式系统课程设计是本专业在学习完 C 语言、LINUX 操作系统、嵌入式系统原理与接口设计、嵌入式操作系统原理之后的专业课程设计,属于专业课内容。通过课程设计建立嵌入式系统主体环节,嵌入式系统的最小结构和系统应用设计基本技能,培养分析和解决一些简单的实际问题的能力,为今后毕业设计奠定基础。随着嵌入式技术的发展和高速宽带网络的普及, 利用网络实现远程监控已为人们广泛接受, 嵌入式网络监控技术正是在此条件下逐步发展成熟起来的。用户使用 Web 浏览器, 通过以太网远程访问内置 Web 服务器的监控摄像机, 不但可以实现对现场的远程视频监控, 而且可以向监控现场发送指令。在整个系统的实现过程中, 嵌入式 Web 服务器起着十分重要的作用。本课题就是基于该项技术,最终编程实现通过网络控制下位机嵌入式控制器的电机启动和停止。

1.1研究目的和意义

1、通过嵌入式课程设计,熟练掌握 C 语言的编程方法。基于 WEB 的远程监控的实现,CGI 的编写和使用,将理论联系到实践中去,提高我们的动脑和动手的能力。

2、通过基于 WEB 的嵌入式远程监控系统的设计,掌握 S3C2410 实验箱,直流电机的工作原理,BOA 服务器的使用,CGI 的使用和简单程序的编写及调试方法,最终提高我们的动手实践能力。

3、本课题的研究目的是用 BOA 服务器、CGI、IE 浏览器设计一个通过 IE 浏览器监控电机的系统,能够通过两个简单的按键对电机进行启动和停止的控 3

基于web的嵌入式远程监控系统

第4页

共33页

制,并能够在 IE 浏览器上看到电机的当前状态。

4、由于基于 WEB 的嵌入式远程监控系统将成为今后远程监控技术发展的主流方向,所以需要设计出简单实用,让人们更满意的产品。

1.2 本设计任务和主要内容

1.基本要求

本课题主要设计和研究基于WEB的嵌入式远程监控系统,要求在保证可靠运行的前提下,电路设计尽量简洁紧凑,以减小成本、提高系统的效率和安全性。

2.应解决的问题 1)设计系统网络方案

2)分析网络程序结构和应用程序的使用方法 3)编程实现嵌入式系统服务器功能 4)编程实现嵌入式系统联网功能

5)编程实现通过网络控制下位机嵌入式控制器的电机启动和停止

3.扩展功能

演奏时可以通过按键选择是手动演奏还是自动演奏,手动演奏是通过按键进行简易乐曲的演奏。

基于web的嵌入式远程监控系统

第5页

共33页总体方案设计

2.1 整体方案设计

系统总体设计是基于嵌入式系统和 WEB 服务器结合的思想开发的,其网络拓扑结构如图 2.1 所示

图 2.1 系统网络拓扑图

针对本次课程设计提出的系统设计如图 2.2 所示

图 2.2 系统方案框图

基于web的嵌入式远程监控系统

第6页

共33页

2.2 硬件系统设计

2.3.1 核心处理器的选择

核心处理芯片需要完成处理和支持整个系统的功能需求,通过运行 BOA 服务器要实施的接收来自各个客户端的请求和信息,并根据获得的请求和信息进行相应的后台处理以及信息的反馈。为完成上述功能,实现服务器正常运行,对处理芯片进行选型,对比现有处理芯片的优缺点,选择 ARM9 S3C2410X 芯片作为设计开发嵌入式服务器系统的核心处理芯片。S3C2410X 微处理器是一款由 Samsung 公司为手持设备设计的低功耗、高集成度的基于ARM920T 核的微处理器,为了降低系统总成本和减少外围器件,这款芯片还集成了以下部件:16KB 指令 Cache、16KB 数据 Cache、MMU、外部存储器控制器、LCD 控制器、NAND FLASH 控制器、4 个 DMA 通道、3 个 UART 通道、1 个 IIC 总线控制器、1 个 IIS总线控制器、4 个 PWM 定时器、1 个内部定时器、通用 IO 口、实时时钟、8 通道 10 位ADC 和触摸屏接口、USB 主、USB 从、SD/MMC 卡接口等。

2.3 软件环境选择

2.3.1 操作系统的选择

当选定了硬件系统后,为了配合硬件达到系统的最优控制要求,对市面上常用的嵌入式系统进行分析比较。

(1)价格比较:Linux 是完全免费的操作系统,只需遵循 GPL 声明,不需支付任何费用;WinCE 是微软的商用嵌入式操作系统,使用它需要支付 WinCE 及其开发环境的费用,开发出来的每套产品也需交纳一定费用。uc/os—II 系统,可以免费用于学习或科研,但开发商使用产品或销售都是收费的。

(2)开放性比较:Linux 是源代码完全开放的操作系统,可以自由下载,并且

基于web的嵌入式远程监控系统

第7页

共33页

在遵循GPL 声明的前提下可以自由地修改、移植,为系统的开发和调试带来极大的便利;winCE是部分源码开放的商用操作系统,如果要修改其中的代码,需获得微软公司的授权;uc/os—II 也是开放的实时操作系统。

(3)文件系统的比较:Linux 支持绝大部分文件系统,只需选择相应的文件系统即可;

WinCE 仅支持 Windows 系列的 FAT16、有限文件系统;uc/os—II 本身没有包括文件系统,需购买或移植。Linux 与 ARM 处理器从以上可以看出,Linux 系统在诸多方面都存在优势,而且本身的 ARM 处理器与 Linux 也有着紧密的联系。因此采用 Linux 操作系统。2.3.2 服务器的选择

典型的嵌入式 Web 服务器有 Boa 和 thttpd 两种,它们和 Apache 等高性能的 Web 服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。Boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60KB。它是一个单任务 Web服务器,只能依次完成用户的请求,而不会 fork 出新的进程来处理并发连接请求。但 Boa支持 CGI,能够为 CGI 程序 fork 出一个进程来执行。Boa 的设计目标是速度和安全,在其站点公布的性能测验中,Boa 的性能要好于 Apache 服务器。经过上述的对比和判断,选择Boa 作为系统的嵌 入式服务器。

综合以上的讨论以及选择,根据系统的实际需求,最终确定了采用 S3C2410X 为核心处理器,Linux 为嵌入式操作系统,boa 为服务器以及相应的 http 浏览器的系统设计方案。

基于web的嵌入式远程监控系统

第8页

共33页硬件设计

3.1 系统硬件平台介绍

我们所介绍的硬件平台是基于 ARM 体系结构,由北京博创兴业科技有限公司开发的UP-NetARM2410-S 实验仪器。UP-NetARM2410-S 的 CPU 为 ARM920T 内核的三星S3c2410 芯片,由于有 MMU(内存管理单元)可以运行标准的 ARM-LINUX 内核。通过这个平台,我们可以实现嵌入式 LINUX 中的针对无 MMU 的开发过程。

3.2 s3c2410 芯片介绍

图 3.1 芯片结构图

基于web的嵌入式远程监控系统

第9页

共33页

3.3 ARM 处理器的外围设备

3.3.1 电源电路

设备提供 12v 的电源,经 LM1085-3.3V 和 AS1117-1.8V 分别得到 3.3V 和 1.8V 的工作电压。开发板上的芯片多数使用了 3.3V 电压,而 1.8V 是供给 S3C2410 内核使用的。5V 电压供给 LCD、电机、总线等电路使用。

图 3.2 电源电路

3.3.2 硬件复位电路

硬件复位电路由IMP811T构成,实现对电源电压的监控和手动复位操作。2410-S主板复位电路设置专用逻辑:IMP811T 的复位电平可以使CPU JTAG(nTRST和板级系统(nRESET)全部复位;来自仿真器的ICE_nSRST 信号只能使板级复位;来自仿真器的ICE_nTRST 可以使JTAG(nTRST)复位,通过跳线选择是否使板级nRESET复位。nRESET反相后得到RESET 信号。硬件复位电路如图3.3所示

基于web的嵌入式远程监控系统

第10页

共33页

图3.3 硬件复位

基于web的嵌入式远程监控系统

第11页

共33页软件设计

4.1 设计思想

基于 web 的嵌入式监控系统设计主要的功能有简单的网页浏览,实现简单应用功能(客户端与服务器的交互)以及服务器端的控制功能。因此软件的设计分为三个部分:boa 服务器的搭建、应用程序设计和驱动程序的加载。

4.2 BOA 服务器的简介与搭建

4.2.1 嵌入式 Web 服务器 Boa 的特点

Boa 是一款单任务的 HTTP 服务器, 与其他传统的 Web 服务器不同的是当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立 HTTP 请求列表来处理多路 HTTP 连接请求, 同时它只为 CGI 程序创建新的进程,这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要。同时它还具有自动生成目录、自动解压文件等功能, 因此 Boa 具有很高的 HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。4.2.2 Boa 的功能实现

嵌入式 Web 服务器 Boa 和普通 Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客 户端返回请求结果等任务。它的工作过程主要包括:

(a)完成 Web 服务器的初始化工作, 如创建环境变量、创建 TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;

(b)当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;

(c)在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、基于web的嵌入式远程监控系统

第12页

共33页

URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;

(d)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。嵌入式 Web 服务器 Boa 根据请求方法的不同,做出不同的响应。如果请求方法为HEAD,则直接向浏览器返回响应首部;如果请求方法为 GET,则在返回响应首部的同时,将客户端请求的 URL 目标文件从服务器上读出,并且发送给客户端浏览器;如果请求方法为 POST,则将客户发送过来的表单信息传送给相应的 CGI 程序,作为 CGI 的参数来执行 CGI 程序,并将执行结果发送给客户端浏览器。Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。4.2.3 BOA 的搭建与移植

(1)准备源代码、解压软件包,安装源代码到 boa 网站 http://www.xiexiebang.comTB0 = DCM_TCNTB0;/* less than 10ms */ TCMPB0 = DCM_TCNTB0/2;TCON &=~(0xf);TCON |=(0x2);TCON &=~(0xf);TCON |=(0x19);})在 s3c2410_dcm_ioctl 中提供调速功能接口: case DCM_IOCTRL_SETPWM: return dcm_setpwm((int)arg);应用程序 dcm_main.c 中调用:

ioctl(dcm_fd, DCM_IOCTRL_SETPWM,(setpwm * factor));实现直流电机速度的调整。a.编译直流电机模块 cd /arm2410s/kernel-2410s

基于web的嵌入式远程监控系统

第20页

共33页

make menuconfig 进入 Main Menu / Character devices 菜单,选择 DC MOTOR 为模块加载: b.编译内核模块: make dep make make modules 直流电机模块的编译结果为:

/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o c.编译应用程序

cd /arm2410s/exp/basic/10_dcmotor/ make 生成 dcm_main d.挂载驱动模块

insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o e.运行程序

mount –t nfs 192.168.0.xxx:/arm2410s /host insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o cd /host/exp/basic/10_dcmotor/./dcm_main 程序运行结果:直流电机转动 1 秒,停转 1 秒。由于是根据原有变速程序稍做改动完成的程序,所以遇到的问题不是很多,经过几次尝试就得到了期望的结果。

基于web的嵌入式远程监控系统

第21页

共33页

5.3 调试结果分析

5.3.1 调试结果

1、静态网页

图 5.1 静态网页

2、乘法网页

图 5.2 乘法网页

基于web的嵌入式远程监控系统

第22页

共33页

3、电机控制网页

图 5.3 电机控制网页

图 5.4 返回结果

5.3.2 结果分析

经过 x86 下的调试和基于 ARM 的下载与调试后,系统能够实现静态网页浏览,简单人机交互以及电机控制的功能,系统工作稳定,响应速度快,组网方便快捷,如果与 DNS 服务器或者 WINS 服务器相结合即可实现用主机名就能登录相应平台的功能。

基于web的嵌入式远程监控系统

第23页

共33页设计总结

经过三个周的学习与努力,经过系统分析、方案论证、硬件和软件设计、调试 等阶段完成了基于 web 的嵌入式远程监控系统的设计制作。在这三个周的课程设计中,我得到了老师和同学很大的帮助,有时候觉得进行不下去了,老师或同学一句话就能让我茅塞顿开。即使听不懂,他们也会耐心的讲解。

在系统的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以及目录结构的认知上存在偏差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。在问题的解决过程中,也提高了组员的动手动脑能力,学到了许多在书本上学不到的知识。在具体的设计当中解决了诸如 boa 服务器的搭建,C 程序的修改及 CGI编程的理解,程序的调试和系统的整体认识等问题,小组成员收获很大。

基于web的嵌入式远程监控系统

第24页

共33页

致谢

在这次课程设计中,学校和学院给予了大力的支持,提供了与设计有关的环境,方便了课程设计的顺利进行。在这其中我确实学到了很多知识,在此仅代表个人衷心的感谢学校和学院的大力支持。本论文是在指导老师蔡烁的悉心指导和严格要求下完成的。在整个课程设计过程中,蔡烁老师时时督促和引导,并在设计过程中进行了方向指导,在总体方向不出错的基础上,施展自己的所学,发挥个人的所长。他不仅在学习上和生活上给予了我们多方面的指导和无微不至的关怀,而且他渊博的学识、严谨的治学态度、孜孜不倦的工作作风和宽以待人的处事风格使我终身受益,并且还从中学会了分析问题和解决问题的方法此外,在本次设计过程中,还得到了其他老师和的热情关心和帮助,值此论文完成之际,谨向老师表示崇高的敬意和最诚挚的谢意。

基于web的嵌入式远程监控系统

第25页

共33页

参考文献

[1]郑灵翔编著 《嵌入式 LINUX 系统设计》 北京航空航天大学 2008 年 [2]孙纪坤、张小全编著 《嵌入式 LINUX 系统开发技术详解-基于 ARM》人民邮电出版社 2007.9、[3]王进德 编著 《嵌入式 LINUX 程序设计与应用案例》 中国电力出版社 2007.5 [4]郑慕德 编著 《嵌入式微型计算机系统实例教程-ARM 与 LINUX》 科学出版社2006.7 [5]刘淼 编著 《嵌入式系统接口设计与 LINUX 驱动程序开发》 北京航空航天大学出版社,2006.5 [6]魏洪兴等编著 《嵌入式系统设计与实例开发 II-基于 ARM9 微处理器与 LINUX 操作系统》 清华大学出版社 2005.12 [7]魏洪兴等编著 《嵌入式系统设计与实例开发实验教材 II-基于 ARM9 微处理器与LINUX 操作系统》清华大学出版社 2005.12 [8]金敏等编著 《嵌入式组成、原理与设计编程》 人民邮电出版社 2007.6

基于web的嵌入式远程监控系统

第26页

共33页

附录 1 主要程序清单

乘法网页的HTML表单: 测试

 测试

请在下面填入乘数和被乘数,按下确定后可以看到结果

第三篇:Web服务器实验3报告

操作系统实验报告三

姓名:陈玉博

学号:2011011207

日期:2013-11-24

【实验内容】:设计一段内存结构,能够缓存一定数量的网页,在客户端访问时,首先从内存中查找是否存在客户端访问的网页内容,如果存在,则直接从内存中将相应的内容返回给客户端;如果不存在,则从磁盘中将网页内容读入到内存,并返回给客户端。【实验思路】:客户端连接之后,在线程的处理函数handle()函数中,从内存中查找相应的网页内容,发送至客户端。如果在内存中找不到,则通过调用store()函数从磁盘中读取该网页到内存,当内存中的网页个数大于100的时候,通过某种算法从内存中移除某个网页,然后重新存入新的网页。在主函数中,连接成功以后调用handle()函数,然后在handle()函数中,如果找不到请求的网页,则调用store()函数。【主要代码及注释】----main函数:

void main(int argc, _TCHAR* argv[]){ //声明处理函数,作为QueueUserWorkItem的一个参数

DWORD WINAPI handle(void *);//初始化WinSock库

WORD wVersionRequested;WSADATA wsaData;

wVersionRequested = MAKEWORD(2, 2);

int wsaret=WSAStartup(wVersionRequested,&wsaData);if(wsaret)

return;//创建SOCKET

SOCKET socketSrv;

socketSrv=socket(AF_INET,SOCK_STREAM,0);if(socketSrv==INVALID_SOCKET)

return;SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(87);

//绑定套接字

if(bind(socketSrv,(struct sockaddr*)&addrSrv,sizeof(SOCKADDR))){ //关闭连接

shutdown(socketSrv,1);closesocket(socketSrv);

WSACleanup();return;} //等待客户端连接

SOCKADDR_IN addrCli;int len=sizeof(SOCKADDR);//监听端口

if(listen(socketSrv,5)==SOCKET_ERROR){ printf(“监听失败!n”);} while(true){ //接受连接

SOCKET socketconn= accept(socketSrv,(SOCKADDR*)&addrCli, &len);

if(socketconn==SOCKET_ERROR)

{

cout<<“接受连接失败!”;

return;

}

cout<<“连接成功”<

shutdown(socketSrv,1);closesocket(socketSrv);

WSACleanup();return;}----handle函数:

DWORD WINAPI handle(void *para){ //声明store函数,用来从磁盘中读取网页内容到内存

void store(string);SOCKET socketconn=(SOCKET)para;//连接成功后与客户端进行会话 char recvBuff[1024];string sendBuff;

string locDir;ifstream fp;//接收请求

if(recv(socketconn,recvBuff,1024,0)==SOCKET_ERROR)return 0;//读取http请求头

string recvBuffer=recvBuff;int posGet=recvBuffer.find(“GET”,0);int posHttp=recvBuffer.find(“HTTP”,0);for(int pos=posGet+4;pos

locDir.push_back('');

continue;} locDir.push_back(recvBuffer[pos]);} int len=locDir.length();//截取网页的文件名

string ine_str=locDir.substr(1,len-2);//从内存中获得该网页的内容

string allcontent=webhtml[ine_str];//如果在内存中找不到,则再从磁盘中把网页读入内存,然后再从内存中查找 if(allcontent==“"){ //调用store函数,从磁盘中重新读取网页内容 store(ine_str);//重新从内存中读取网页内容

allcontent=webhtml[ine_str];} //将读取的内容追加入sendBuff中 sendBuff.append(allcontent);fp.close();//响应请求,将页面信息发送到客户端

if(send(socketconn,sendBuff.c_str(),sendBuff.length(),0)==SOCKET_ERROR){

cout<<”传送文件错误!“;

return 0;} shutdown(socketconn,1);closesocket(socketconn);//关闭连接

return 0;}----Store()函数:

void store(string ine_str){

//如果内存中的网页个数大于100个,则把第一个移除

if(webhtml.size()>100){ map::iterator Iter=webhtml.begin();webhtml.erase(Iter);} string allchars=”“;//一个网页中所有的字符

char buffer[1024*10];//每次读取1024个字节到缓存 ifstream fp;//文件流

fp.open((loc_webpage+ine_str).c_str(),std::ios::binary);//打开指定文件 if(fp.fail())cout<<”存储文件失败!"<

fp.getline(buffer,1024*10);//从文件中读取1024个字节到缓冲区里面

allchars.append(buffer);//把缓存中的字节加到allchars后面

buffer[0]='';} } webhtml[ine_str]=allchars;//存储网页名字和内容,保存到内存中

fp.close();} 【运行结果】

----->客户端未请求之前

---->客户端发出请求(输入相应网址)

---->服务器端显示连接成功

客户端显示出网页内容

【出现问题】:当程序第一次执行主函数的while(true)的时候,输出“连接成功”后直接跳过QueueUserWorkItem()函数,即不执行此函数;但是当第二次执行while(true)循环的时候,却进入了QueueUserWorkItem()函数。出现的现象是第一次把网页内容送到客户端之前,显示两个”连接成功”。【原因及解决方法】:在错误的程序中,sockconn是在while(true)循环外面定义的,即执行所有的while(true)循环都是一个sockconn,这就导致了不同的客户端请求使用同一个sockconn的现象,所以出现了上面的错误。在每次的while(true)循环中都定义一个新的sockconn即可解决此问题。

【实验心得】在此次实验中,虽然编写的代码不多,但是有很多细节需要注意到。比如说空格问题,当截取网页的名称时就出现了多余空格的现象:不管我在客户端输入什么请求,服务器都不会返回内容给客户端。当我调试程序的时候才发现,每次截取网页名字的时候都会在字符串后面多余一个空格,这就导致了没有任何网页名字与之对应,所以服务器不会返回任何内容给客户端。空格问题是大问题,我已经深受其害两次了。

第四篇:基于嵌入式Web的远程监控系统设计

基于嵌入式Web的远程监控系统设计

摘 要:本文结合机房环境设备的管理需要,分析了远程监控系统的特点,提出基于嵌入式Web服务器的远程监控系统设计思路、体系架构方法,并对基于OPC技术的互联与基于嵌入式Web服务器的互联作了简要对比。文章结合CGI程序的设计,着重探讨了嵌入式Web服务器的实现方法。关键词:嵌入式平台,Web服务器,远程监控,CGI程序

⒈引言

随着计算机和网络技术的普及,计算机系统的数量与日俱增,计算机机房已成为各大型单位的信息枢纽。机房中的环境设备(如空调、UPS电源、配电柜、消防设备等)为网络系统的安全运行提供了环境保障。同时,环境设备自身的安全运行,也成为机房管理的重要内容之一。一旦机房的环境设备出现故障,就会直接影响计算机系统的正常运行,严重的还会造成机房内的相关设备损坏,甚至导致网络系统瘫痪[1]。因此,对机房环境设备的运行状态进行实时监控,是保证机房设备安全运行的关键措施。

⒉远程监控系统的需求分析

对机房环境设备的监控主要涉及以下几个方面的内容:对配电系统、UPS系统、空调系统工作状态的监视;对机房的温湿度、生活用水和供暖制冷系统漏水情况等进行监测、报警,以及对门禁系统、消防系统、保安系统等的管理。由于这些环境设备是连续工作的,因此要求监控系统也必须是长时间连续工作的。这样就对系统设计的可靠性、安全性、可维护性等方面提出了更高的要求[1],具体表现在以下几个方面:

⑴高可靠性。要求监控系统可长时间不间断运行,无故障运行时间要长,且系统的维护快速简便。

⑵高安全性。系统应能够提供多种安全保护措施,对异常状态进行分析、记录、及时报警,以便让管理人员能够尽快了解所发生的情况并及时处理。

⑶较强的实时性。监控系统对信息的传输要及时,不能有过大的延时,否则难以及时跟踪被监控对象的当前状况。

⑷易用性和易维护性。机房环境设备监控系统,应以GUI的方式提供良好的人机界面,便于人机交互。同时,监控系统要有通用性和灵活性,即可以在对系统进行少量修改或扩充就可增加新的监控项目,扩充监测点数,以满足新的监控要求。

⑸丰富的系统功能。要求监控系统不仅能够提供一般的报警功能,对采集的当前数据进行记录且保存

历史数据,并以图形方式对环境设备运行状态和参数进行直观显示。

实施监控的主要方法,即是在现场控制器的控制之下,实时地采集数据并与预设的值进行比较,如果超出相应的阀值则给出报警,以提示有关人员进行相应处理。根据对环境设备监控的位置不同,可把监控系统分为本地监控和远程监控两大类。本地监控方式往往需要派人长期现场值守,管理成本较高;而借助于公共的Internet或企业内部的Intranet网络实施远程监控则可做到无人值守,从而大幅度地节约管理成本、提高机房管理水平和效率,因此成为监控系统发展的主流方向。

⒊远程监控系统的设计

基于对远程监控系统的需求分析,进行系统设计时应重点考虑如下几种因素:首先,要考虑现场总线与数据网的互联问题。由于被监控对象的信号种类较多,所采用的现场总线标准各异,因此不同总线标准之间的转换以及现场总线与数据网之间的互联是系统设计时需要重点考虑的问题[2]。其次,实时性要求是远程监控网络系统区别于普通网络系统的基本特征。如果监控系统的实时性得不到保障,现场监控就失去了实用价值。第三,为满足监控系统的高可靠性要求,应分别对硬件系统和软件系统进行抗干扰设计。第四,根据远程连接方式不同,应采用不同的安全措施以保证信息的安全传输。3.1监控系统的功能设计

监控系统的基本功能主要包括:现场数据的实时采集、发送和显示;对采集到的数据进行处理和存储;对数据处理的结果进行分析、判断和报警;提供多种业务支持功能。3.1.1实时数据采集

实时数据采集是实施系统监控的基础。在环境设备的监控系统中,需要实时采集的数据主要包括高低压配电系统及UPS电源的电压、电流、电源开关状态等参数,空调机的冷热水温度、流量、送风量、送风温度、新风量等状态参数,以及机房内部的环境参数(如温度、湿度、水浸、烟感、门禁等)。不同的参数采用的总线标准不同(如RS232/485总线、Lonworks总线),只有把它们统一到TCP/IP协议上,才能实现真正意义上的远程监控。

3.1.2报警功能

报警是监控系统的基本功能之一。监控系统对采集到的数据进行分析、处理,如果发现相关数据超限、数据异常,则说明环境设备出现异常情况,此时应发出相应报警。设计报警功能时,需要考虑被监控对象的自身特性、优先级别等因素,对多个报警信号进行加权处理,以保证系统的所有重要报警都能被及时处理。

3.1.3多种业务支持功能

灵活的查询和丰富的报表功能是对监控系统基本功能的扩展。通过对设备运行状态的实时数据、历史数据进行对比分析,从不同角度向管理者提供设备运行和维护信息,为设备的维护、大修、更新、改造等质量管理提供可靠依据。3.2监控系统的结构设计

远程监控系统由现场数据采集设备(可以为多个设备)、本地Web服务器和远端监控主机三部分构成[3]。Web服务器通过现场总线与本地数据采集设备直接相连,并负责把本地传感器采集到的数据进行简单处理,通过网络发送到远端的监控主机上,从而为实现无人值守的管理方式创造条件。

远程监控系统在设计时需要解决的关键问题,就是将不同类型的现场总线或控制网络与以太网进行互联互通,从而实现监控信息的远程实时传输。目前,实施远程监控主要有如下几种方法:①基于PSTN的传统方法,即通过Modem连接异地的现场设备;②基于OPC技术。采用支持多种现场总线规范的OPC Server,通过OPC 接口实现现场总线到Internet或Intranet网络的无缝连接;③基于嵌入式平台实现远程监控。在嵌入式平台上完成对现场数据的实时采集,通过现场总线与数据网的互连,将Server端的数据通过TCP/IP协议提供给远端的监控主机(即Client端);④采用其它自定义方法实施远程监控。3.2.1基于OPC的监控系统

OPC 是以OLE/COM/DCOM机制作为应用程序级的通信标准,采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式向用户提供通用的接口,解决了软、硬件厂商之间的矛盾,提高了系统的开放性和互操作性[4]。基于OPC架构的监控系统结构如图1所示。其中,OPC DA Server为数据采集服务器,OPC AE Server为报警服务器。OPC Server 提供多种接口规范,应用程序和Web浏览器(即OPC Client)可以通过这些接口取得与OPC Server相连的硬件设备信息,从而实现OPC Client通过以太网对OPC Server的访问。同时OPC Server也可以将采集到的数据或报警信息通过网络发送到客户端或Web浏览器端。

在基于OPC的体系架构中,由于 COM/DCOM 已被视为网络功能的具体实现方法,使得Client对OPC Server的远程访问成为标准的网络访问方式。但是OPC技术的缺点也是非常明显的,由于LE/COM/DCOM机制是一个纯软件的架构,对系统资源配置的要求高。当系统规模较大或监控点数较多时,系统的实时性将会明显下降。

3.2.2基于嵌入式平台的监控系统

实时监控系统需要长时间不间断地工作,对系统的可靠性和实时性均有较高要求。为此必须从系统功能、体系架构、软硬件系统的稳定性、设备功耗等方面进行综合考虑(例如选用工控级的产品),设计小型化的智能型监控系统。而建立在RTOS之上的嵌入式系统为控制系统的网络化、小型化提供了有效途

径,嵌入式网络控制已成为监控系统未来发展的重点方向之一。

基于嵌入式平台的远程监控系统结构如图2所示。其中,嵌入式Web服务器既是远程监控系统的中心节点,也是控制网络与数据网络进行互联的网关,通过TCP/IP协议将其连接到以太网上,监控主机则通过以太网(或Internet)在远程实时地监视现场信号的动态变化,从而实现远程监控的目标。对于能够直接支持TCP/IP协议的现场检测设备,则可以将其直接连接到以太网上,图中的液体泄漏检测仪即是如此;对于采用其他总线标准的现场设备,则需要通过嵌入式Web服务器进行信号转换之后把现场总线连接到以太网上。

图2 远程监控系统结构图

⒋嵌入式Web服务器的设计

在基于嵌入式平台的远程监控系统中,监控系统的中心节点主要承担两方面的任务:一方面负责对现场数据的采集,即Web服务器以定时巡检的方式通过现场总线对传感器的信号进行采集;另一方面负责协议转换,把现场总线来的数据转换成TCP/IP协议的格式,通过以太网将其发送到远端的监控主机上。在本设计中实现了从RS232、RS485到TCP/IP协议之间的相互转换。4.1开发环境简介

考虑到系统开发的简便性,本方案选用uCLinux操作系统平台作为系统的OS环境,辅助开发工具选用MiceTek公司的HiTool。嵌入式Web服务器的硬件环境选用MiceTek公司的Samsung44B0X开发板,利用其丰富的接口功能,可实现嵌入式Web服务器与传感器的直接连接。4.2 嵌入式Web服务器的硬件设计

嵌入式Web服务器硬件环境的自定义,是根据监控系统的需要,重新制作嵌入式系统的主板。该主板的CPU仍选用Samsung的S3C44B0X,1M的BootFlash,8M的SDRAM,并提供10M/100M的以太网端口,2个RS232接口和6个RS485接口。如果待检测的参数较少,则选用一块嵌入式Web服务器主板即可;如果待检测的参数较多,则可选用多个同样的Web服务器主板,并对每个Web服务器进行参数配置(设置不同的IP地址),构成分布式的Web服务器。如果监控系统要求存储的数据量很大,则可以采取以下两种方法加以解决:一是嵌入式Web服务器外接硬盘;另一种方法是外加一台由工业控制级的服务器,对多台嵌入式Web服务器进行统一管理。4.3 嵌入式Web服务器的软件实现

嵌入式Web服务器的软件开发主要包括以下几项内容:首先,完成嵌入式操作系统的移植和TCP/IP协议的剪裁;第二,编写数据采集、数据处理应用子程序;第三,编写远程通信子程序;第四,报警处理子程序;第五,数据查询和报表生成子程序。这些功能应先在上述的开发环境中进行初步实现之后,再移植到自定义的环境中。

由于嵌入式系统的资源有限,因此对上述功能的实现应尽量简洁,例如对HTTP协议的移植,只需要保留基本的Get和Post方法即可,而Options、Head、Put、Delete和Trace方法在此可不考虑实现,因为对RAM(或EEPROM)中的数据存储可以采用循环覆盖的方式。

在此方案中,嵌入式Web服务器与Web浏览器及其他应用程序之间的交互,可以通过调用CGI(Common Gateway Interface)程序来实现。CGI规定了Web服务器与浏览器及其他可执行程序的接口协议标准。当Web浏览器将请求信息发送给Web服务器时,Web服务器触发一个可执行的CGI程序,该程序根据用户请求的内容做出相应的处理,并将处理结果以Web服务器可识别的方式输出,Web服务器再将该结果回送给Web浏览器[5]。

CGI程序中的信息传递是通过标准输入设备stdin和标准输出设备stdout来完成的。Web服务器在调用CGI程序之前,需要预先设置好所有的环境变量,以便把客户的请求转化为参数后存入环境变量,然后就可以调用CGI程序了。CGI程序根据不同的请求方法确定如何获取客户的请求内容,而Web服务器则通过标准输入设备stdin获得客户请求;对于CGI程序的输出结果,Web服务器则是通过标准输出设备stdout来获得,Web服务器对其进行语法分析之后,再传送给客户浏览器。至于CGI程序的实现,本方案选用C语言,以保证CGI程序的快速、高效和安全。

⒌结语

基于嵌入式平台的监控系统,以其体积小、可连续工作时间长、性能稳定等特点,得到人们的广泛认可,成为网络化远程监控系统的主流方向。在本设计中,借助于相对稳定和成熟的软硬件开发环境,设计了一套较为完整和实用化的远程监控方案并加以实现。经使用证明,该设计方案是成功的并取得了较为理想的效果。

参考文献

[1]关光富,计算机机房环境设备监控系统与设计分析,电工技术杂志,2004.2 [2]周祖德编著,基于网络环境的智能控制,国防工业出版社,2004.1,第1版 [3]宋广军,张敬,王睿,基于web的温湿度远程监控系统,微计算机信息,2004.1 [4]孙敏,顾德英,汪晋宽,基于OPC技术的监控组态程序的开发,仪器仪表学报(增刊),2003.8 [5]汤碧玉,曾楠,郑灵翔等,嵌入式系统中基于Web的远程监控设计与实现,厦门大学学报(自然科学版),vol.43(5),2004.9

第五篇:Web服务器配置与管理

实验项目18 Web服务器配置与管理

一、实验目的

● 掌握Linux系统中Apache服务器的安装与配置。

● 掌握个人主页、虚拟目录、基于用户和主机的访问控制及虚拟主机的实现方法。

二、项目背景

假如你是某学校的网络管理员,学校的域名为。

●重新启动httpd服务。

子项目3.设置基于用户认证的虚拟目录/private ●编辑httpd.conf文件,添加/private虚拟目录并设置用户访问控制。

●利用htpasswd命令生成用户密码文件,并为kingma用户设置登录密码。

子项目4.设置基于主机访问控制的虚拟目录/test ●编辑httpd.conf文件,添加/test虚拟目录并设置基于主机的访问控制。

●重新启动httpd服务,即可。

子项目5.创建基于IP地址的虚拟主机

●分别创建“/var/www/ip2”和“/var/www/ip3”两个主目录和默认首页文件。

●在httpd.conf文件中,设置基于IP地址的虚拟主机,配置内容如下。

●重新启动httpd服务,即可。

子项目6.创建基于域名的虚拟主机

●分别创建“/var/www/mlx”和“/var/www/king”两个主目录和默认文件。

●在httpd.conf文件中,设置基于域名的虚拟主机,配置内容如下。

●重新启动httpd服务,即可。

五、实验思考题

1.怎样改变Apache服务器的监听端口?如何在Apache服务器中使用SSL功能?

2.在配置用户认证的时候,如果密码文件中包含多个用户,如何设置只允许其中的某几个用户访问一个认证区域?

3.请将本实验的子项目4使用.htaccess文件重新进行配置。

六、实验报告要求

● 实验目的。● 实验内容。● 实验步骤。

● 实验中的问题和解决方法。● 回答实验思考题。● 实验心得与体会。

建议与意见。

下载基于嵌入式web服务器的远程控制系统 个人报告word格式文档
下载基于嵌入式web服务器的远程控制系统 个人报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    远程计量控制系统工作计划

    远程计量集中控制系统工作计划 一、分阶段工作计划: 1、2012年2月1日-2012年4月10日:完善105计量点试点运行工作 1)、2月15日前完成对无烟煤、部分精煤采用制卡计量、取样、收......

    计算机网络实验报告——Web服务器的配置

    实验2 web服务器配置 一、实验目的: 掌握如何使用windows 2000 server的IIS5.0配置出web服务器 二、实验内容: 1、 创建一个web站点,并且可以实现在别人的计算机上访问该站点......

    Web服务器的配置与管理

    星翼邪神一瓶酒倒出后水加满,再倒后仍水加满,再倒出后还水加满,这时瓶中纯酒比原来少几分之几倒出后 ×倒出后 ×; 倒出后 ×; ÷答 少 不要百分数 倒出后 倒出后倒出后÷ 答 少......

    关于【兼职维护WEB服务器】的协议

    关于兼职维护WEB服务器的协议甲方: 深圳市**********科技有限公司 公司代表人:_____________________ 电话:_____________________ 乙方:_____________________ 身份证编号:_____......

    建FTP、Web服务器不成功详解[范文大全]

    你可以按下面几步来自己找到问题所在: 如果你的IP是公网IP,那么就不用执行(一、)点,直接按(二、)执行即可。 一、先看内网能否登录你的FTP: 1、在本机上用本地IP:127.0.0.1试登录你自......

    公司Web服务器运维方案

    服务器运维方案(草案)为配合公司三维互联网生活社区的上线工作,也为了将来更好的对服务器进行管理维护,特制定以下草案:硬件系统管理一、服务器运行稳定性 服务器在运往托管商处......

    远程门禁管理控制系统解决方案

    远程门禁管理控制系统解决方案 一套远程门禁管理控制系统(KITOZER)须具备几个要点:首先,门禁控制硬件必须安装在客户端的站点,并通过TCP/IP协议或调制解调器,与中心控制软件相联......

    Web服务器处理404错误取决于网络管理员

    Web服务器处理404错误取决于网络管理员每一个互联网用户都会在某个地方碰到"404——无法找到文件"的错误页面。或许在非正式微软版本上会显示:"该页无法显示。"或者浏览器显......