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

2020-02-28 其他范文 下载本文

基于嵌入式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)获取占空比

canf(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服务器的远程控制系统 个人报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于嵌入式web服务器的远程控制系统 个人报告
点击下载文档
相关专题 嵌入式web远程控制 控制系统 报告 嵌入式 嵌入式web远程控制 控制系统 报告 嵌入式
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文