随着嵌入式系统的发展和Internet的普及,嵌入式系统接入网络已经成为嵌入式系统应用的一个重要方向和必然结果,嵌入式Web服务器是嵌入式系统网络化应用的重要方面。传统的8位单片机由于其运行速度、驱动能力、功耗等问题已经越来越不能满足用户的需求。ARM处理器以其高性能、低功耗、丰富驱动等功能成为新的嵌入式电子产品开发的理想选择。同时为了实现对系统资源的更好分配、复杂任务的更好调度,引入嵌入式操作系统。ARM-Linux具有很好的移植性、稳定性、强大的协议支持功能和丰富的设备支持功能,现在被广泛应用于嵌入式操作系统。本系统采用基于INTEL Xscale架构的嵌入式处理器PXA270与ARM-Linux相结合构建一个嵌入式Web服务器。
1 嵌入式Web服务器技术
1.1 嵌入式Web服务器体系结构
嵌入式Web服务器的体系结构如图1所示。其中,客户端和Web服务器之间的通信协议采用HTTP 1.1;嵌人式实时多任务操作系统提供TCP/IP协议支持;Web服务器与数据库服务器间的交互接口为CGI(Common Gateway Interface)。
1.2 嵌入式Web服务器工作流程
客户端使用Web浏览器与Web服务器进行通信。Web服务器中使用HTTP协议,HTTP(超文本传输协议)为标准WWW传输协议,使用可靠的TCP连接,通常采用端口80。HTTP是一个简单的协议,每次连接只完成一个请求。客户端与Web服务器交换数据之前,首先用TCP/IP建立连接,服务器端程序建立TCP类型SOCKET并在80端口进行监听,服务器在接收到用户端的请求后,解析客户请求的HTTP协议头、分析客户的请求,根据客户的请求返回相应的数据。这些数据可来自静态主页和文件,也可以根据请求动态产生。由此可见,接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果是Web服务器所完成的主要任务。
2 模块功能分析
系统分为客户连接处理模块、客户请求处理模块、协议处理模块3个模块。
2.1 客户连接处理模块功能
连接处理模块如图2所示。此模块完成第一步客户连接请求的处理,并将请求信息传递给客户请求解析处理模块去处理。
模块工作流程如下:
(1)打开文件描述字,建立文件描述符;
(2)读取连接信息、获取客户信息;
(3)调用客户请求解析模块,关闭文件流。
2.2 客户请求解析处理模块功能
此模块在连接模块完成对客户请求信息进行解析、处理。模块工作流程如下:
(1)对用户信息进行解密;
(2)查找用户请求资源是否存在;
(3)判断用户请求类型,选取不同的协议进行数据回传。