基于STM32的串口服务器web功能实现
编制:  陈志磊    web浏览器在哪里打开
校对:         
审核:         
日期:  2014-12-30 
版本:V1.0
更改次数
更改时间
更改内容
版本
1
2014-12-30
初版
V1.0
说明:
本文主要说明通过web访问来配置串口服务器参数的功能,前提要求LWIP和uCOSII都已移植成功。实现B/S结构,须将串口服务器配置为web server。

一. Web Server 文件以及相关技术简介
1.相关文件说明
ST公司的上提供了通过LWIP完成web server配置的例程,打开我们的工程文件夹“LwIP1.4.1移植STM32 V1.8”,在LWIP-APP/ web_server_demo文件夹下的文件如图所示:
各个文件的说明见下表:
文件
说明
makefsdata
该文件夹中包含有原始网页文件和将原始的网页文件转换为网页数组的工具
fs.c
用来管理生成的网页数组
fs.h
fsdata.c
生成的网页数组
fsdata.h
httpd.c
完成了将串口服务器配置成web server。
httpd.h
httpd_cgi_ssi.c
CGI和SSI源文件,通过网页配置串口服务器参数主要是通过这个文件来完成
2.网页制作及网页数组数据转换
(1)网页制作
使用dreamweaver进行网页制作,交互方式主要是通过表单来完成,注意对于使用了需要使用SSI技术来嵌入数据的,需要将网页后缀设为shtml、shtm、stm等。ST的例程默认使用首页索引在httpd.c中g_psDefault[]数组里表示,该数组如下:
const default_ g_psDefault[] = {
  {"/index.shtml", false },
  {"/index.ssi", true },
  {"/index.shtm", true },
  {"/index.html", false },
  {"/index.htm", false }
};
该数据表示支持首页索引为index.shtml、index.html、index.htm的网页文件输入。在网页设计时,需考虑以下两个方面:
a.表单的操作设计,表单提交的方法为post,表单的处理设为对应的CGI。
b.SSI标签的嵌入。在需要嵌入信息的位置插入SSI标签。
关于CGI和SSI稍后将会简要说明。
(2)网页数组数据转换
在 makefsdata 文件夹下的 fs 文件为网页源文件,如下图:
由于网页源文件不能直接放到 STM32 里面,所以要做一个转换,这里通过 这个工具将原始网页文件转换成.c 格式的网页数组,这样就可以添加到工程中了,makefsdata 是用来将编辑好的网页文件转换成二进制数的一个工具。接下来我们讲解一下这个工具的使用方法下面我们讲解 makefsdata 工具的使用。
(1)新建一个名为 fs 的文件夹, 将编辑好的网页源文件放到 fs 文件夹下,里面包含了编辑好的 html 和.shtml 等网页文件,其中 image 文件夹里面是我们使用到的图片。
(2)将 fs 文件夹和 工具放到同一文件夹下,此处为 makefsdata 文件夹,打开
makefsdata 文件夹,如下图所示。图中的 和 T 为其他工具,这里没有使用到, 稍后我们会讲到。
(3)在 makefsdata 文件夹上点击鼠标右键,然后点击”在此位置打开 CMD”选项,打开后结果如图所示。此时会打开一个 CMD 命令窗口。如果点击右键没有”在此位置打开 CMD”选型的话,请使用makefsdata文件夹下的 文件导入注册表注册,双击打开 ,然后一路确定下去就可以了。
(4)在打开的 CMD 命令窗口中输入: makefsdata –i 命令,按回车键。就会生成fsdata.c文件,将该文件拷贝到web_server_demo文件下,然后以头文件的方式包含到工程中即可。
3.CGI技术简介
公共网关接口 CGI(Common Gateway Interface) 是 WWW 技术中最重要的技术之一,有着不可替代的重要地位。 CGI 是外部应用程序与 Web 服务器之间的接口标准,是在 CGI 程序和Web 服务器之间传递信息的规程。 CGI 规范允许 Web 服务器执行外部程序,并将它们的输出发送给 Web 浏览器, CGI 在物理上是一段程序,运行在服务器上,提供同客户端 HTML 页面的
接口。
绝大多数的 CGI 程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器, CGI 程序使网页具有交互功能。比如通过web来处理提交的数据,用的就是CGI技术。CGI示意图如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。