微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种嵌入式Web服务器的设计方案

一种嵌入式Web服务器的设计方案

时间:01-08 来源:3721RD 点击:

随着计算机技术和通讯技术的不断发展,互联网和嵌入式智能仪器得到越来越广泛的应用,人类社会进入后PC时代。本文主要介绍了嵌入式Web服务器设计方案,以及实现和主要应用。

1.引言

嵌入式Web服务器(Embedded Web Server,EWS)是指将Web服务器嵌入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。

嵌入式Web服务器简化了传统服务器的系统结构,在嵌入式设备上它同时实现信息传输和网络接口的功能。嵌入式Web服务器基于HTTP协议运作,有标准的接口形式和通信协议。它可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面。Web技术的开放性和平台独立特性能够降低开发难度,减少软件系统和通信系统的设计维护工作量,提高了现场测试和控制设备的管理水平。

2.嵌入式WEB服务器总体设计方案

接入Internet有很多种接入方式:电话拨号接入、ISDN,ADSL、以太网接入等,其中以太网作为一种廉价、高效的Internet接入方式,已经得到了非常广泛的应用,本文的Internet接入采用以太网方式。

将TCP/IP协议栈嵌入到单片机中,使用网络控制芯片实现单片机的上网和数据传输。利用网络单片机(嵌入了TCP/IP协议栈的单片机)可以实现很多功能,嵌入式Web服务器就是其中的一种。通过Web服务器,客户端浏览器可以浏览这些设备的动态信息,并且还可以实现与系统的交互功能。

(1)嵌入式Web服务器的一般结构

嵌入式Web服务器的设计通常以通用Web服务器系统结构为蓝本,根据嵌入式系统的特性进行优化。嵌入式Web服务器的硬件系统包含了Web通信功能的微处理器或者微控制器系统,它可以和前端的应用系统直接集成在一起,也可以通过现场总线与应用系统相连。

一个完整的硬件系统由微型处理器、FLASH存储器、DRAM存储器、网络接口和前端应用系统硬件所组成。微型处理器负责全局的运行和管理,FLASH存储器用来存储实时操作系统的系统内核、TCP/IP协议栈、各种Web文档;DRAM存储器在系统运行时使用;网络接口实现与Internet的连接;前端应用系统的硬件完成传统意义上的应用功能。

由于嵌入式系统硬件资源有限,嵌入式Web服务器的硬件结构不能很复杂,实时操作系统的系统内核、TCP/IP协议栈、各种Web文档都必须存储在FLASH中,这对软件系统设计提出了较高的要求。嵌入式Web服务器应用系统的硬件结构如图1所示。

(2)系统的硬件设计方案

LPC2132微控制器是所设计的嵌入式Web服务器的核心,一方面LPC2132微控制器内部要实现TCP/IP协议栈,并驱动网络接口控制器ENC28J60,经耦合隔离变压器H1102和以太网以实现Internet接入;另一方面,LPC2132微控制器又是相应控制系统的控制单元。

由于以太网的广泛使用,本文选择了最为常用的Internet接入方式,即通过以太网接入Internet.由美国Microchip公司生产的以太网控制芯片ENC28J60是本设计所选择的网络接口控制器,它集成了介质访问控制子层和物理层的功能,主要完成网络接口层中数据帧的发送和接收。

H1102是一款耦合隔离变压器,用来对网络上的脉冲进行转换和滤波。H1102联接RJ45接头,可以直接接入以太网。

串行电平转换模块选用了Maxim公司出品的MAXSP3232E芯片。该芯片内部含有倍增电路和转换电路,只需+5V电源供电即可实现TTL电平到RS232C电平的转换。RS232串口一方面是作为开发调试用的,一方面可以作为相应的通信应用。

I/O口扩展包括系统的LED显示电路、JTAG调试电路以及其他测试电路等。

(3)系统的软件设计方案

Web服务器是在嵌入式TCP/IP协议栈的基础上实现的一种应用程序。从系统软件工作过程来看,可将系统分三部分:第一部分,以太网控制器驱动程序的实现;第二部分:嵌入式TCP/IP协议的实现,这部分内容在第一部分的基础上,结合系统具体环境,对标准TCP/IP协议进行简化并在ARM7单片机上进行移植;第三部分:应用层部分,通过嵌入式TCP/IP协议对用户数据进行收发处理。这里是在应用层实现HTTP协议来完成Web服务器功能的。

所以系统软件设计部分主要包括了以太网控制器的驱动程序、嵌入式TCP/IP协议栈以及动态web网页的实现等几个模块:

1)以太网控制器驱动程序是指LPC2132微控制器对ENC28J60芯片的驱动、控制过程。

2)在LPC2132微控制器内部嵌入TCP/IP协议栈是系统实现的关键,它主要包括了ARP,ICMP,IP,TCP和HTTP协议的设计与实现。

3)动态网页的实现。使用CGI技术,可以实现动态信息的交换,从而达到远程监视、控制的目的。

软件设计中的另一任务是确定开发语言。对于嵌入式系统来说,掌握汇编语言的编程是至关重要的,即使使用高级语言来进行编程,通过阅读编译出来的汇编代码,也可以发现高级语言编程时需要优化的地方,从而提高高级语言所编写代码的执行效率。

同时嵌入式系统的资源紧张,要合理利用资源,提高运行效率,关键部分、时间要求严格的部分还是需要使用汇编语言来完成。但汇编语言在代码编写和维护上效率较低,通用性不强,在复杂的项目上还是选用高级语言比较合理。在本设计中,采用汇编语言编写ARM7内核的启动代码(boot loader),其它的程序采用C语言作为设计语言。它有很明显的优势:C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,有丰富的库函数、运算速度快,而且可以直接实现对系统硬件的控制,较汇编语言有更好的可读性。

3.嵌入式Web服务器设计的实现

(1)主程序流程

在主程序流程中,主要设计实现包括两大部分:第一是对接收到的以太网数据帧进行解包:第二则是对要发送的数据进行封装并发送。

系统初始化模块主要包括了LPC2I32微控制器的初始化、网络接口芯片ENC28J60的初始化、TCP/IP协议栈中各标志的初始化等:

ARP处理模块主要完成接收ARP请求并发送ARP响应;ICMP处理模块主要完成接收ICMP回显请求并发送ICMP回显响应;TCP数据处理模块主要完成对TCP数据报及HTTP数据的处理。

当程序运行时,首先对系统初始化,这时系统处于等待状态,直到有数据帧到达。ENC28J60接收完数据帧以后,首先去除帧头,然后判断该数据帧的报文是否为ARP包,若是,则进行ARP数据包处理,若不是,则检查数据报头,看IP数据包的报文是否为ICMP数据包,若是ICMP数据包,则转到ICMP数据处理子程序。若不是ICMP数据包,就继续进行判断,看是否为TCP数据包,若为TCP数据包则转入TCP数据处理子程序,若此时即不是ICMP数据包也不是TCP数据包,则将该包丢弃。

子程序的设计是为了完成TCP/IP协议体系的每一层的功能的,TCP/IP协议的每一层都是相互联系的,但也是相对独立的,具体由下面7个部分实现:以太网驱动程序、以太网层程序、ARP协议处理程序、IP协议处理程序、ICMP协议处理程序、TCP协议处理程序、HTTP协议处理程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top