基于W3150A+的嵌入式Web服务器设计
时间:11-24
来源:互联网
点击:
3.3 HTML语言编写网页
由于未采用文件系统,系统的网页内容也不多,因此可以开辟1片RAM区,根据应用需要适当分配Web缓冲区。本应用中分配了20K WebBuf[]。
网页的内容以字符串的形式保存在WebBuf[]中,在需要响应时,按HTTP协议输出RAM内容。
HTML语言教程,可参考Internet网上资料。
由于没有文件系统,所有网页都是以数据(字符数组)的形式存放在RAM中的。当有超链接请求时,再重新生成响应数据同时刷新WebBuf[]。
这里提供一个简单的函数以实现html语言的编辑功能,供参考。
此函数实际上是利用sprintf()把html语言写的字符串存入RAM缓冲区WebBuf[],并得到数据正文的长度。以同样方法,将html语言网页中的其他内容全部利用sprintf()函数写入WebBuf[]缓冲区。
3.4 Web服务器的应用层实现
本应用中使用μC/OS-II操作系统,建立一个任务taskWebServer()来实现相关Web的应用,负责管理Web相关处理事务,如浏览器的访问请求、浏览器的参数提交等。
流程如图2所示,任务taskWebServer()等待接收到报文事件的触发,未接收到浏览器请求时处于挂起状态。当taskWebServer()收到HTTP请求后进行报文解析,成功解析后根据报文类型进行相应的处理。输出网页时,先进行应答头的处理,然后紧跟着的是Web正文数据,此正文数据由HTML语言构成。在处理完成后对Flag标志复位,使任务taskWebServer()重新处于挂起状态,等待下一次浏览器请求或提交参数处。
3.5 权限管理
在应用中往往需要对访问或参数的设置进行权限管理。提供密码机制是最简单有效的手段。可以在代码中加入JavaScript脚本。
用一些较简单的JavaScript脚本实现一些控制功能。此方面可参考一些相关资料。
4 系统的扩展设计及延伸
当使用软协议栈实现TCP/IP方式时,对嵌入式处理器提出了更高的要求。对于8/16位单片机,由于其所具有的资源和处理能力有限,不能保证最基本功能的TCP/IP协议栈和嵌入式操作系统的有效运行。
选用W3150A+芯片来实现TCP/IP协议栈,可以大大降低主控微处理器在处理TCP/IP软协议栈时的CPU消耗,以充分发挥微处理器对其他相关应用的处理能力。即使采用普通的单片机,也可满足一般的应用需求。
当整个系统应用不复杂时也可不采用嵌入式操作系统,以简化软件架构和缩短软件的开发周期。
结语
基于芯片W3150A+实现的Web服务器功能,缩短了软件的开发周期并降低了TCP/IP的实现难度。嵌入式操作系统和高性能的ARM处理器相配合,充分发挥了系统的各方面性能。
对于一些不复杂的Web应用,不采用文件系统而采用RAM缓冲区的方法可以很好地实现Web服务器功能。在PC电脑上,通过在IE浏览器的地址栏中输入装置的IP地址,可以访问该装置,显示其运行参数、软件版本,并进行参数的配置或一些必要的说明,等等。
由于未采用文件系统,系统的网页内容也不多,因此可以开辟1片RAM区,根据应用需要适当分配Web缓冲区。本应用中分配了20K WebBuf[]。
网页的内容以字符串的形式保存在WebBuf[]中,在需要响应时,按HTTP协议输出RAM内容。
HTML语言教程,可参考Internet网上资料。
由于没有文件系统,所有网页都是以数据(字符数组)的形式存放在RAM中的。当有超链接请求时,再重新生成响应数据同时刷新WebBuf[]。
这里提供一个简单的函数以实现html语言的编辑功能,供参考。
此函数实际上是利用sprintf()把html语言写的字符串存入RAM缓冲区WebBuf[],并得到数据正文的长度。以同样方法,将html语言网页中的其他内容全部利用sprintf()函数写入WebBuf[]缓冲区。
3.4 Web服务器的应用层实现
本应用中使用μC/OS-II操作系统,建立一个任务taskWebServer()来实现相关Web的应用,负责管理Web相关处理事务,如浏览器的访问请求、浏览器的参数提交等。
流程如图2所示,任务taskWebServer()等待接收到报文事件的触发,未接收到浏览器请求时处于挂起状态。当taskWebServer()收到HTTP请求后进行报文解析,成功解析后根据报文类型进行相应的处理。输出网页时,先进行应答头的处理,然后紧跟着的是Web正文数据,此正文数据由HTML语言构成。在处理完成后对Flag标志复位,使任务taskWebServer()重新处于挂起状态,等待下一次浏览器请求或提交参数处。
3.5 权限管理
在应用中往往需要对访问或参数的设置进行权限管理。提供密码机制是最简单有效的手段。可以在代码中加入JavaScript脚本。
用一些较简单的JavaScript脚本实现一些控制功能。此方面可参考一些相关资料。
4 系统的扩展设计及延伸
当使用软协议栈实现TCP/IP方式时,对嵌入式处理器提出了更高的要求。对于8/16位单片机,由于其所具有的资源和处理能力有限,不能保证最基本功能的TCP/IP协议栈和嵌入式操作系统的有效运行。
选用W3150A+芯片来实现TCP/IP协议栈,可以大大降低主控微处理器在处理TCP/IP软协议栈时的CPU消耗,以充分发挥微处理器对其他相关应用的处理能力。即使采用普通的单片机,也可满足一般的应用需求。
当整个系统应用不复杂时也可不采用嵌入式操作系统,以简化软件架构和缩短软件的开发周期。
结语
基于芯片W3150A+实现的Web服务器功能,缩短了软件的开发周期并降低了TCP/IP的实现难度。嵌入式操作系统和高性能的ARM处理器相配合,充分发挥了系统的各方面性能。
对于一些不复杂的Web应用,不采用文件系统而采用RAM缓冲区的方法可以很好地实现Web服务器功能。在PC电脑上,通过在IE浏览器的地址栏中输入装置的IP地址,可以访问该装置,显示其运行参数、软件版本,并进行参数的配置或一些必要的说明,等等。
- 基于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)