当前位置:首页 > 电源 > 数字电源
[导读]摘要:主要介绍嵌入式Web服务器技术的设计思想和软件设计流程,以及应用程序文件系统的构造,将网页文件转化为可编译的数据结构;并以32位ARM7微处理器LPC2210为硬件平台,在源码公开的ZLG/IP软件包的支持下,给出了

摘要:主要介绍嵌入式Web服务器技术的设计思想和软件设计流程,以及应用程序文件系统的构造,将网页文件转化为可编译的数据结构;并以32位ARM7微处理器LPC2210为硬件平台,在源码公开的ZLG/IP软件包的支持下,给出了一个嵌入式Web服务器的应用实例。
关键词: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所示。

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

[!--empirenews.page--]
3.2 对动态内容和动态表单的实现
    先编写一个包含<DATA x>动态标志和表单的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()对用户请求进行解析,根据返回的内容关闭客户机套接字,然后等待另一个套接字请求。


    对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所列。当定位一个文件时,只需找到文件报头,将文件项目的文件名和源文件名进行比较。若文件匹配,则可将后来检索的元素调出。

[!--empirenews.page--]


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

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


    图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服务器的设计方法,并用一个应用实例对其进行了验证。结果表明,该方法是可行的,可用于对嵌入式设备进行远程监控的应用中。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭