基于W3150A+的嵌入式Web服务器设计
时间:11-24
来源:互联网
点击:
通过以太网进行传输已经成为一种经济、有效的数据传输方式。越来越多的工业测控设备需要配置网络接入功能,不仅需要通过以太网来实现各类设备间数据的传输,而且需要通过浏览器来实现人与设备的交互,从而对设备进行远程监测、远程控制、远程维护和管理。内嵌于设备的Web服务器可以提供统一的基于浏览器方式的操作和控制界面,界面直观易操作,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用,提高了现场监测和控制设备的管理水平。
1 关键器件的选择
要实现Web服务器功能,需要一个可实现的TCP/IP协议栈,同时还需要一款与以太网的速度相匹配的高性能处理器。
W3150A+芯片是一款TCP/IP硬协议栈芯片,为高速的Internet连接提供了一种简易、低成本的解决方案。W3150A+芯片包含TCP、UDP、ICMP、IPv4、ARP和PPPoE等协议,内部有用来收发数据的内存空间16 KB;它提供了3种接口——直接的、间接的和SPI,同时可支持4个独立的SOCKET,每个SOCKET具有2 KB的缓冲区。
LPC2292微控制器是一款由PHILIPS公司设计的基于ARM7TTDMI-S核的16/32位RISC处理器,可实现最大为60 MHz的CPU操作频率,内部具有16 KB的RAM,128/256 KB片内FLASH程序存储器,具有可配置的外部8/16/32位总线,可进行外部RAM扩展。
2 嵌入式Web服务器硬件设计
系统硬件结构框图如图1所示。图中仅给出了与Web服务器相关的部分,电源、键盘等电路省略。
系统选择频率为12 MHz的晶振,设定LPC2292内部PLL为4倍频的工作频率,设定数据总线为16位与RAM进行接口,RAM选用2片IS61LV51216,为512K×16位的RAM。LPC2292通过8位数据总线对芯片W3150A+进行读写,芯片W3150A+通过MII(Media Independent Interface)接口连接到RTL8201。
当网络上数据到达芯片RTL8201时,通过MII接口到达芯片W3150A+。芯片W3150A+自动完成TCP/IP协议转换,把数据接收到它的硬件缓冲区,并产生中断通知LPC2292来读取硬件缓冲区数据,至此便完成1包网络数据的接收。
当通过网络发出1包数据时,LPC2292将RAM中准备好的数据写入W3150A+硬件发送缓冲区,通过发送指令,W3150A+通过MII接口发送到RTL201上,完成数据的发送。发送完成后产生中断,通知LPC2292发送完毕。
3 嵌入式Web服务器软件设计
实现原理:首先要实现W3150+芯片TCP/IP驱动接口,在建立TCP连接时装置作为TCPServer端,端口使用80,然后,在此基础上采用HTTP协议,在HTTP协议基础上采用HTML语言实现所要描述的网页功能。应用时通过浏览器与Web服务器建立的TCP连接进行信息解析、交互,以实现从网页上进行参数的配置、修改、程序在线升级与重新启动等。
由于系统应用中关于Web的应用不是很复杂,故在本设计中未采用文件系统,所有网页的数据都保存在RAM中。大约分配20 KB的RAM,通过重复利用此空间即可完成网页的浏览与配置等操作。
具体实现内容:TCP/IP的驱动接口实现;HTTP协议的实现;HTML语言的网页设计;Web服务器的应用层实现;权限管理。
3.1TCP/IP的驱动接口的实现
驱动接口主要有:
其函数原型及代码实现可参考芯片W3150A+的数据手册。
3.2 HTTP协议的简介与实现
(1) HTTP协议简介
①HTTP请求:
其中,GET/HTTP信息最为关键,此即为HTTP请求信息。
②HTTP应答:
当装置收到请求报文后就进行应答,一般都处理为正确应答。类似报文如下:
此报文表示:应答正确,内容类型为html语言,报文长度为23 056,正文就是网页内容。
③浏览器POST:
用于浏览器客户端与Web服务器的信息交互。类似报文如下:
其中,IPladdr=192.100.20.50&IP2addr=192.100.1.200&…为POST提交的表单正文。解析时,“IPladdr”为变量名,“=192.100.20.50”为变量值,“&”为变量分割符。据此可以得到从浏览器上输入的参数值。
(2)HTTP协议的实现
根据HTTP报文的特点,即HTTP请求、POST提交表单参数、HTTP应答等,提供解析函数:
bool HttpStringParse(uchaI*recvBuff);
对接收到的数据缓冲区recvBuff进行解析,以得知是HTTP请求还是POST提交参数,然后根据情况进行HTTP应答。
提交的表单参数解析则根据分隔符&对变量及变量值进行处理。
Web服务器在响应某浏览器的请求后应及时关闭其TCP连接,以便其他浏览器能够访问此Web服务器。
为了编程方便,提供以下宏定义供参考:
其中:
HTTP_ACK_HEAD为Web服务器收到HTTP请求时进行响应的正确应答头。
HTTP_ACK_CONT_TYPE为通知浏览器Web服务器的应答报文格式为HTML格式。
HTTP_ACK_CONT_LEN为Web服务器的报文长度。此长度必须与正文长度保持一致。
HTTP_ACK_CONNECT用于Web服务器在响应某浏览器的请求后关闭其TCP连接。
1 关键器件的选择
要实现Web服务器功能,需要一个可实现的TCP/IP协议栈,同时还需要一款与以太网的速度相匹配的高性能处理器。
W3150A+芯片是一款TCP/IP硬协议栈芯片,为高速的Internet连接提供了一种简易、低成本的解决方案。W3150A+芯片包含TCP、UDP、ICMP、IPv4、ARP和PPPoE等协议,内部有用来收发数据的内存空间16 KB;它提供了3种接口——直接的、间接的和SPI,同时可支持4个独立的SOCKET,每个SOCKET具有2 KB的缓冲区。
LPC2292微控制器是一款由PHILIPS公司设计的基于ARM7TTDMI-S核的16/32位RISC处理器,可实现最大为60 MHz的CPU操作频率,内部具有16 KB的RAM,128/256 KB片内FLASH程序存储器,具有可配置的外部8/16/32位总线,可进行外部RAM扩展。
2 嵌入式Web服务器硬件设计
系统硬件结构框图如图1所示。图中仅给出了与Web服务器相关的部分,电源、键盘等电路省略。
系统选择频率为12 MHz的晶振,设定LPC2292内部PLL为4倍频的工作频率,设定数据总线为16位与RAM进行接口,RAM选用2片IS61LV51216,为512K×16位的RAM。LPC2292通过8位数据总线对芯片W3150A+进行读写,芯片W3150A+通过MII(Media Independent Interface)接口连接到RTL8201。
当网络上数据到达芯片RTL8201时,通过MII接口到达芯片W3150A+。芯片W3150A+自动完成TCP/IP协议转换,把数据接收到它的硬件缓冲区,并产生中断通知LPC2292来读取硬件缓冲区数据,至此便完成1包网络数据的接收。
当通过网络发出1包数据时,LPC2292将RAM中准备好的数据写入W3150A+硬件发送缓冲区,通过发送指令,W3150A+通过MII接口发送到RTL201上,完成数据的发送。发送完成后产生中断,通知LPC2292发送完毕。
3 嵌入式Web服务器软件设计
实现原理:首先要实现W3150+芯片TCP/IP驱动接口,在建立TCP连接时装置作为TCPServer端,端口使用80,然后,在此基础上采用HTTP协议,在HTTP协议基础上采用HTML语言实现所要描述的网页功能。应用时通过浏览器与Web服务器建立的TCP连接进行信息解析、交互,以实现从网页上进行参数的配置、修改、程序在线升级与重新启动等。
由于系统应用中关于Web的应用不是很复杂,故在本设计中未采用文件系统,所有网页的数据都保存在RAM中。大约分配20 KB的RAM,通过重复利用此空间即可完成网页的浏览与配置等操作。
具体实现内容:TCP/IP的驱动接口实现;HTTP协议的实现;HTML语言的网页设计;Web服务器的应用层实现;权限管理。
3.1TCP/IP的驱动接口的实现
驱动接口主要有:
其函数原型及代码实现可参考芯片W3150A+的数据手册。
3.2 HTTP协议的简介与实现
(1) HTTP协议简介
①HTTP请求:
其中,GET/HTTP信息最为关键,此即为HTTP请求信息。
②HTTP应答:
当装置收到请求报文后就进行应答,一般都处理为正确应答。类似报文如下:
此报文表示:应答正确,内容类型为html语言,报文长度为23 056,正文就是网页内容。
③浏览器POST:
用于浏览器客户端与Web服务器的信息交互。类似报文如下:
其中,IPladdr=192.100.20.50&IP2addr=192.100.1.200&…为POST提交的表单正文。解析时,“IPladdr”为变量名,“=192.100.20.50”为变量值,“&”为变量分割符。据此可以得到从浏览器上输入的参数值。
(2)HTTP协议的实现
根据HTTP报文的特点,即HTTP请求、POST提交表单参数、HTTP应答等,提供解析函数:
bool HttpStringParse(uchaI*recvBuff);
对接收到的数据缓冲区recvBuff进行解析,以得知是HTTP请求还是POST提交参数,然后根据情况进行HTTP应答。
提交的表单参数解析则根据分隔符&对变量及变量值进行处理。
Web服务器在响应某浏览器的请求后应及时关闭其TCP连接,以便其他浏览器能够访问此Web服务器。
为了编程方便,提供以下宏定义供参考:
其中:
HTTP_ACK_HEAD为Web服务器收到HTTP请求时进行响应的正确应答头。
HTTP_ACK_CONT_TYPE为通知浏览器Web服务器的应答报文格式为HTML格式。
HTTP_ACK_CONT_LEN为Web服务器的报文长度。此长度必须与正文长度保持一致。
HTTP_ACK_CONNECT用于Web服务器在响应某浏览器的请求后关闭其TCP连接。
- 基于GPRS网络的GPS图形导航仪 (01-05)
- 基于ARM9内核Processor对外部NAND FLASH的控制实现(07-12)
- 基于ARM的局域网IP电话设计(05-11)
- Actel和ARM联合开发专为FPGA应用而优化的高性能32位处理器(02-26)
- 基于ARM的定时继电器驱动模板的设计(08-04)
- 基于ARM平台的GPRS CQT测试系统的设计(08-10)