找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 嵌入式系统Web服务器应用研究开发

[复制链接]
admin 发表于 2013-3-22 06:59:56 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 介绍了一种嵌入式Web服务器应用系统。该系统借鉴传统服务器系统架构,基于B/S结构模式设计,移植嵌入式TCP/IP协议栈,利用CGI技术以实现客户端和服务器端的动态数据交互。通过本研究可方便实现系统管理、远程终端参数设置等实际应用。
关键词: 嵌入式系统;Web服务器;B/S结构模式; TCP/IP协议栈;CGI
    信息技术、网络技术以及嵌入式技术的飞速发展和融合,在嵌入式系统中内嵌TCP/IP协议,将Web服务器技术引入到嵌入式系统中,可使其系统与现今最大的网络Internet实现无缝连接。嵌入式系统组成的三个基本要素[1]为:嵌入、专用性和计算机。根据嵌入式系统本身特性优化设计,引入开源TCP/IP协议栈,并根据需要进行裁剪,利用公共网关接口(CGI)应用开发,嵌入式Web服务器可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,提供特定交互功能。
1 嵌入式Web服务器的系统结构
 基于当前大型服务器使用的信息管理系统架构方案(数据库+Web服务器+动态网页技术),本文提出一种面向嵌入式、借助CGI网关接口开发的B/S结构模式Web服务器信息交互系统,与传统的两层C/S模式相比,其有如下优点:
 (1)系统架构维护方便,可根据需要更新客户端程序,不用像传统的两层C/S模式那样,必须更新所有客户端程序,使其保持一致,系统才可以运行管理。
 (2)客户机负载减轻,无须安装客户端软件,统一的Internet浏览器方便了用户的使用和服务端的应用开发,并提供了友好人机界面设计。
 (3)系统安全保障提高,避免了客户端与服务器的数据库直接相连。
B/S模式组成部分为:表示层:Web浏览器,显示逻辑部分,充当Client角色;功能层:Web服务器,事务处理逻辑部分;数据层:数据库服务器,数据处理逻辑部分。功能层和数据层共同充当Server角色。B/S模式架构如图1所示。
    201211070519587191221.gif
   2 Microchip TCP/IP协议栈[2]
 协议接口设计借助于Microchip公司提供的免费协议栈--Microchip TCP/IP协议栈,它是基于TCP/IP的一套应用程序,类似于TCP/IP参考模型,Microchip TCP/IP协议栈将TCP/IP协议栈分为多层,如图2所示。每层的实现代码驻留在一个独立的源文件中,而服务和应用程序编程接口(API)是通过头文件或包含文件定义的。与传统TCP/IP协议栈实现方法的不同,Microchip TCP/IP协议栈添加了StackTask和ARPTask两个新模块。StackTask管理协议栈以及所有模块的操作,而ARPTask管理地址解析协议ARP(Address ResohJtion Protocol)层的服务。
    201211070519589534922.gif
    与完整、复杂的TCP/IP协议体系相比,在嵌入式Web服务器中并不需要实现所有的协议,而是基于嵌入式要素特点的要求以及嵌入式系统资源限制进行适量裁剪。来自客户端的数据信息通过RJ-45以太网接口和网络接口芯片传递给微控制器,微控制器通过内嵌的Microchip TCP/IP协议栈实现了地址解析(ARP)协议、Internet控制报文协议(ICMP)、IP协议、用户数据报(UDP)等协议的解析和封包,应用层上负责Web页面请求和应答的HTTP协议。本文设计的协议栈管理程序基于协议的层次性,具有模块化思想。当接收到正确的以太网帧后,根据以太网的数据类型将接收的数据送至相应的模块进行进一步处理。
3 CGI技术
 由于传统的Web服务器无法实现Web数据库访问功能,CGI技术充当了访问数据库的重要媒介。CGI是使用应用相关软件增强Web服务器的一种标准方法,可以用任何语言书写。CGI根据需求更新网页,是一种公共网关接口。它通过客户提供给Web服务器的各种信息,由Web服务器启动指定CGI模块函数,完成客户端与服务器端动态的交互,从而实现静态HTML网页无法实现的功能(如表单查询、数据库查询等)。通常CGI应用程序处于休眠状态,通过使用一定的网络事件触发回调函数来实现,并显示动态页面。例如,Web服务器收到一个URL里面包含的网页请求时,将执行结果返回给HTML网页,CGI可实现处理表格、数据库查询和电子邮件等操作。
3.1 CGI接口规范数据通信方式
 CGI定义的接口规范包括[3]环境变量、标准输入和标准输出。
3.1.1 环境变量
 环境变量是Web服务器与CGI程序进行数据传递的途径,其定义了CGI程序运行的环境。客户端和服务器端都将有关数据信息转换成各种变量,CGI模块函数从环境变量中提取服务器或是浏览器提供的参数信息(网络设备参数),以此获取客户端的信息。
3.1.2 标准输入
 标准输入(STDIN)指CGI函数获取Web服务器信息的一种规范,即使用HTML表单向Web服务器发送信息,通常CGI通过两种调用方式获取客户请求[4]。
 (1)通过URL直接调用,如http://192.168.16.108。
 (2)通过交互式Form调用,通常是用户输入信息主页后,点击“确认”按钮后启动CGI程序。提交数据有Get和 Post两种模式:Get通过环境变量传递给CGI程序,Post通过环境变量和标准输入传递给CGI程序。本文采取上述两种方式调用CGI模块函数,并通过交互式Form调用,采用Post提交数据方式,进行网络参数设置。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 19:43 , Processed in 0.054576 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表