ARM7的嵌入式Web服务器设计技术

发布者:EtherealJourney最新更新时间:2011-06-06 关键字:Web服务器  应用程序文件系统  LPC2210  ZLG  IP软件包 手机看文章 扫描二维码
随时随地手机看文章

1 概述
    随着嵌入式技术和网络技术的发展,嵌入式设备通过网络接入局域网或者Internet逐步成为一种发展趋势。嵌入式Web服务器技术以其良好的通用性和交互性为嵌入式设备提供网络接口,对嵌入式设备实现远程管理和控制,是实现嵌入式设备网络化的重要技术。
    本设计提出的基于ARM7的嵌入式Web服务器设计有三大技术亮点:
    ①采用浏览器/服务器(B/S)通信架构。与客户机/服务器通信架构相比,B/S架构无需在客户端上开发专门的应用软件,只需从浏览器上输入IP地址,直接对设备进行远程监控。
    ②传统的Web服务器需要一个数据库系统的支持用来保存内容,因而对用于存储的硬件设备要求更高,增加了成本。本设计只需构建一个简单的文件系统对网页文件进行管理,通过网页转换程序将网页文件转换为十六进制的可编译的数据结构,是一种直接绑定在一个应用程序
上面的文件系统。
    ③本设计构造的Web服务器提供动态内容和动态表单的支持,能满足一般嵌入式设备的应用要求。

2 HTTP协议讨论
    HTTP(超文本传输协议)是一种应用层协议。Web服务器是基于HTTP协议运行的,Web服务器和Web客户机之间通过HTTP协议来进行通信。在进行通信前,先要建立客户机与服务器之间的连接:启动Web服务器,启动后服务器将监听80端口号,Web客户机发送一个动态随机产生的连接端口号连上服务器,从而建立一个通信通道。
    HTTP协议基于请求/响应模式。一个客户机与服务器建立好连接后,向服务器发送一个请求报文,服务器接到请求后给予相应的响应信息。响应信息的格式为一个状态行(包括信息的HTTP协议版本号、一个成功或错误的代码),再跟上MIME信息(包括某些通用且详细的有关应答的信息,如可选报头、报文报体等)。HTTP协议结构如图1所示。

3a.JPG

3 嵌入式Web服务器的设计
3.1 嵌入式Web服务器设计思想
    嵌入式Web服务器主要有以下2个用途:根据Web客户机的请求为其提供设备运行状态、参数;从客户机提取控制信息,更改设备运行参数等。由于嵌入式系统资源的有限性,本文设计的Web服务器具有很强的针对性,具体包含以下性能:
    ①对动态内容和动态表单的支持,Web服务器只需处理GET和POST请求方法,无需提供对其他请求方法的支持。
    ②用于内容保存的“应用程序”文件系统,即将内容文件转换成数据结构,直接绑定在一个应用程序上面。
    ③嵌入式Web服务器只实现与系统控制相关的页面。
    嵌入式Web服务器模型层次如图2所示。

3b.JPG

[page]

3.2 对动态内容和动态表单的实现
    先编写一个包含动态标志和表单的HTML文件,再分别编写动态内容处理功能函数和表单分析处理函数。在建立HTTP服务器套接字之前,需要先安装好自己句柄,将网页中的动态标识与其对应的动态内容处理功能函数,以及表单标识与表单分析处理函数相关联。图2中的动态内容/句柄API就是用来提供变量名/表单名与用户定义功能之间的联系。
    动态内容安装句柄:
    addDynamicContent(“temperature”,&getTemper);
    表单安装句柄:
    addDynamicHandler("/control",&myHandler);
    其中,temperature和/control分别为网页中的动态内容标识和表单标识,getTemper和myHandler分别为动态内容处理功能函数和表单分析处理函数。
    这样,每当有GET请求时,动态内容处理功能函数的返回值将替代动态标志的值嵌入到内容流中。每当有POST请求时,表单分析处理函数调用parseVarialbe功能,简单地在内容中查找变量名。一旦发现,这个值便被复制到用户缓冲器中,直到发现分界符“&”。POST构造一个包括报体的HTTP请求报文,发送给Web服务器。该报文按照键值对其进行组装,使用符号“&”分隔。
3.3 嵌入式Web服务器主程序
    嵌入式Web服务器主程序流程如图3所示。本设计中使用的Web服务器套接字是典型的TCP流套接字。通过socket()创建一个套接字,使用bind()将该套接字绑定在80端口上,通过listen()设定监听的连接数,最后调用accept()等待Web客户机的连接请求。一个套接字支持一个请求,不能支持永久型连接。当服务器接收到一个连接时,功能函数handleConnection()对用户请求进行解析,根据返回的内容关闭客户机套接字,然后等待另一个套接字请求。

3c.JPG


    对handleConneetion()功能函数(请求报文分析程序)分析如下:
    ①在HTTP请求报文中进行读操作,从该套接字循环读取,直到满足以下两个条件之一:查找到Content_Length报头,确定报文报体大小;请求若为post方法,简单地查找+QUERY文本。
    ②处理HTTP请求类型。对请求报文的第一个令牌进行识别。如果为GET请求,则从中分析请求的文件名,使用lookupFilename()功能函数查找该文件名,若没有则发送适当的状态码给请求者,若有则调用returnFile原语通过套接字来发送请求文件。如果为HTTP POST请求,则再次分析文件名,然后通过call Dynamic Handle功能函数调用一个用户定义的功能处理请求。若既非GET请求,也非POST请求,则返回状态码“not implemented”。

4 应用程序文件系统的构造
    本设计使用一个特殊的buildfs应用程序将网页文件编译为顺序的数据结构,它将网页文件所在的目录路径作为变量,将这个变量作为内容树的根。遍历内容树,将遇到的每个文件累计到应用程序文件系统结构中,并写入文件filedata.c。文件filedata.c作为工程文件的一部分,一同被编译、下载到硬件上。buildfs生成的应用程序文件系统结构如表1所列。当定位一个文件时,只需找到文件报头,将文件项目的文件名和源文件名进行比较。若文件匹配,则可将后来检索的元素调出。

3d.JPG

[page]

    本设计采用HTML语言设计的嵌入式网页文件如图4所示。使用buildfs应用程序生成该网页文件的数据结构,如图5所示。

3e.JPG

3f.JPG

5 测试HTTP服务器的应用实例
    本设计的软件平台构成如图6所示。硬件平台由NXP公司的32位ARM7微处理器LPC2210和RTL8019AS网卡芯片构成,如图7所示。LPC2210是基于一个支持实时仿真和嵌入跟踪的32/16位ARM7TDMI-SCPU。

3g.JPG

3h.JPG


    图6中TCP/IP协议栈使用周立功公司提供的ZLG/IP软件包。修改软件包中的cfg_net.h文件,子网掩码设置为与PC机相同,IP地址设置为192.168.0.174(与PC机同一网段),网关设为PC机的IP地址。用双绞线将PC机与RJ45以太网接口相连,启动微处理器LPC2210。在PC机上打开Web浏览器,在地址栏输入http://192.168.O.174/server.html,将出现如图4所示的网页文件。此时,测得的室内温度为26 ℃。
    在Parameters Setring栏中输入预设温度和开关的开或关,单击Upload按钮,在Web服务器的表单分析程序中会将预设值和开关值复制到用户缓冲器中,从而进行相应的处理。

结语
    本文介绍了基于ARM7微处理器LPC2210的嵌入式Web服务器的设计方法,并用一个应用实例对其进行了验证。结果表明,该方法是可行的,可用于对嵌入式设备进行远程监控的应用中。

 

关键字:Web服务器  应用程序文件系统  LPC2210  ZLG  IP软件包 引用地址:ARM7的嵌入式Web服务器设计技术

上一篇:ARM S3C2410驱动TFT-LCD的研究
下一篇:基于EasyARM615的分布式排队系统设计

推荐阅读最新更新时间:2024-03-16 12:36

ZLG致远电子功率分析仪 分辨率提升4倍、采样率提升10倍
由工业和信息化部、江苏省人民政府、中国电子学会、苏州市人民政府等单位指导及主办的第十三届中国电子信息技术年会在苏州吴江盛大召开,本届年会以“大数据+”为主题,广泛涉及半导体、集成电路、人工智能、生物医学大数据等关键技术和重点领域。 中国电子信息技术年会由中国电子学会主办,历经十三年,是中国电子信息领域高水准、多元化的综合性科学技术交流大会。本届会议由中国电子学会副理事长、中国工程院院士、北京理工大学校长张军担任主持,在场17位院士及百余名专家围绕各自研究领域展开了交流和讨论。ZLG集团创始人、广州致远电子有限公司董事长周立功、研发副总经理刘英斌、功率分析仪研发经理刘玉才等人应邀出席本次会议。 作为电子信息技术发展的风向标,
[测试测量]
zlg7289键盘和数码管驱动程序+应用电路
zlg7289应用电路图: zlg7289资料: zlg7289矩阵键盘的应用: 源程序: /*该程序实现的功能是在小键盘按键,在LED上显示所按的键的数值*/ #include stdio.h #include hardware.h #include zlg7289.h #define SDIO_CTRLIO 0X4 //PF2 #define SDIOOUT() (PDATF&=(~SDIO_CTRLIO)); #define SDIOIN() (PDATF|=SDIO_CTRLIO); unsigned char keymap ={ 7,4,1,0,10,0,0,0,8,5, 2,17,
[单片机]
<font color='red'>zlg</font>7289键盘和数码管驱动程序+应用电路
基于ARM和eCos的嵌入式WEB服务器设计
      引 言   随着现代通信技术和网络技术的迅猛发展,以太网技术也越来越成熟,特别是基于TCP/IP通信协议的Web技术得到了广泛应用。我们可以用微控制器加以太网接口芯片,取代PC机进行现场控制,组成嵌入式Web Serv-er系统。现场传感器自动跟踪各监测点的信息,把检测到的数据存储在非易失性存储器中,并及时发布到互联网上;相关的工作人员就可以通过Web技术对设备进行远程控制、管理和维护,从浏览器上直接监控现场设备的运行,这样就大大提高了生产效率和管理水平。   为了实现WEB服务器的功能,嵌入式操作系统和一个可实现的TCP/IP协议栈是必需的,因此对嵌入式处理器提出了更高的要求。与传统的8/16位单片机相比,A
[嵌入式]
基于SX52的嵌入式模拟系统的研究与实现
1 引言 信息家电(3C或说是IA)对人们来说已经不再是一个陌生的名字了,它是利用电脑、电信和电子技术与传统家电相结合的创新产品, 是为数字化与网络技术更广泛地深人家庭生活而设计的新型家用电器。要将它们与外部网络(如Internet)连接进行信息交互,利用家庭网关进行集中式管理无疑是一个理想的解决方案。家庭网关就是这样一种简单的、智能的、标准化的、灵活的整个家庭网络接口单元,它可以从不同的外部网络接收通讯信号,通过家庭网络传递信号给某个消费设备。但是,目前家庭网关在体系结构、功能分配等方面的标准还未确定,对其的研究正在如火如荼进行中。 本文采用SX52嵌入式网络单片机集成式开发系统主模块模拟家庭网关,并利用其外围扩展模块模拟信
[单片机]
基于SX52的嵌入式模拟系统的研究与实现
可移植的嵌入式WEB服务器软件设计
引言 随着互联网技术的飞速发展,嵌入式WEB服务器技术在工业生产的过程控制、环境监测以及远程数据采集等方面得到了广泛的应用,通过嵌入在目标设备中的WEB服务器,可以非常方便地获取远程数据,并实现对远程设备的干预,达到对远程现场进行监视和控制的目的。在实际系统中,远程设备往往千差万别,为了在这些目标设备中构建WEB服务器,必须针对不同的系统编写相应的WEB服务器代码,通过采用基于操作系统适配层的中间件技术,可以很好的解决WEB服务器软件在不同系统之间的移植问题,同时改善软件的可维护性。 1、嵌入式软件的可移植问题 可移植性主要指把同一软件放置到不同系统平台(如不同的硬件平台或操作系统)并使之正常运行的难易程度,可移植性有
[嵌入式]
基于嵌入式Web服务器的远程控制系统的实现
    随着计算机技术和网络通信技术的飞速发展,人们日常生活和工业生产等方面对基于以太网进行远程通信和控制的要求日益强烈。目前市场上虽已有成熟的Web服务器可供远程控制系统选择,但多是基于通用计算机或专用服务器,体积及成本不适合小型控制系统,尤其是在一些环境恶劣,不易值守或无法安装计算机控制系统的场所。如今嵌入式技术发展迅速,嵌入式处理器的性能不断提高,基于嵌入式的控制系统得到广泛应用。考虑到嵌入式系统高性能、低成本、低功耗等诸多特点,这里通过32位嵌入式处理器和以太网控制器构建了嵌入式Web服务器,实现设备远程控制。 1 远程控制系统的硬件结构     基于嵌入式Web服务器的远程控制系统主要由嵌入式Web服务器以及被控
[嵌入式]
基于嵌入式Web服务器的远程故障诊断系统
摘要:介绍了一种基于嵌入式Web服务器的远程故障诊断系统的硬件及软件实现。该系统主要包括远程数据采集、分析、诊断、仿真等功能。 关键词:嵌入式Web服务器 数据采集 故障诊断 仿真 远程诊断技术是通过设备诊断技术与计算机网络技术相结合,在设备上建立状态监测点,采集设备状态数据,在诊断中心对设备运行进行分析诊断的一项新技术。用于诊断的系统大致可以分为三类: %26;#183;大型的在线状态监测与诊断系统; %26;#183;以便携式数据采集器与巡检装置的计算机辅助诊断系统; %26;#183;利用Internet实现的远程诊断系统。 在线式系统适用于连续的状态监测与诊断,系统构成复杂、费用昂贵、专用性强。而便
[嵌入式]
I2C接口ZLG7289在数控信号源中的应用
数控信号源除了要求可实现正弦波、方波、锯齿波等常规波形的输出外,还要求能输出频率可调、幅度可调、相位可调的任意波形,因此,在数控信号源中,需要通过键盘控制信号的频率、幅度、相位等参数,同时需要显示当前所产生的信号的频率及调制方式等。但是,由于人机界面中的键盘、显示等慢速外设需占用系统太多的资源,从而造成处理速度下降,系统的可靠性降低。因此,本文采用具有串行接口的键盘显示智能控制芯片ZLG7289,并以它为核心设计的键盘、显示电路具有结构简洁,功能完备,可靠性高的特点,且使用方便,适于推广。 1 ZLG7289 I2C接口简介 ZLG7289 I2C键盘显示与接口是广州周立功公司研发的,具有SPI串行接口功能,可同时驱动8位共阴
[工业控制]
I2C接口<font color='red'>ZLG</font>7289在数控信号源中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved