简单嵌入式WEB服务器及网页
ARM嵌入式Web服务器Boa的软、硬件设计 毕业设计

摘要论文主要介绍了基于ARM9的嵌入式Web服务器Boa的软、硬件设计及其实现,其中硬件部分的核心是三星的S3C2410X为处理器。
最后成果形式为可以远程访问的WebServer嵌入式服务器。
Boa是一款单任务的HTTP服务器。
与其他传统的Web服务器不同的是当有连接请求到来时,它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接。
而是通过建立HTTP请求列表来处理多路HTTP连接请求。
同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统来说至关重要。
同时它还具有自动生成目录、自动解压文件等功能。
因此, Boa在嵌入式系统中具有很高的应用价值。
关键词:ARM;Linux;嵌入式Web服务器;CGIThis paper has mainly developed the software hardware design and realization of the embedded Web server Boa based on ARM. And the core of the hardware part is S3C2410X microprocessor produced by Samsung . The final achievement is the embedded webserver which can remote visit. Boa is a single-tasking HTTP server. That means that unlike traditional webservers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections. And forks only for CGI programs, this is very important to embedded system. At the same time, it also has the function of automatic directory generation、automatic file gunzipping and so on. So Boa is of highly value in the embedded system application.Keywords: ARM;Linux;Embedded Web server;CGI摘要 (1)Abstract (2)目录 (3)第一章引言 (5)第二章课题背景 (6)2.1 嵌入式系统简介 (6)2.2 嵌入式系统和Linux (6)2.3 ARM9硬件平台 (7)2.3.1 ARM简介 (7)2.3.2 JXARM9-2410 ARM嵌入式教学实验系统 (8)第三章嵌入式Web服务器 (9)3.1 概述 (9)3.2 Web服务器原理 (9)3.3 嵌入式Web服务器实现原理 (9)3.3.1 TCP/IP协议 (9)3.4 嵌入式Web服务器Boa (10)3.4.1 Boa概述 (10)3.4.2 Boa的功能实现 (11)第四章CGI技术 (12)4.1 CGI概述 (12)4.2 CGI工作原理 (12)第五章建立嵌入式系统开发环境 (14)5.1 在Vmware下安装Redhat 9.0 (14)5.2 编译配置主机开发环境 (18)5.2.1 配置以太网 (18)5.2.2 安装配置tftp服务器 (19)5.2.3 配置防火墙 (21)5.2.4 配置NFS服务器 (22)5.3 JXARM9-2410中U-boot烧写 (22)5.3.1 u-boot的功能 (22)5.3.2 使用ADT IDE烧写u-boot (23)第六章系统功能的实现 (25)6.1 GCC简介 (25)6.1.1 GCC概述 (25)6.1.2 GCC基本用法 (25)6.2 Linux内核移植 (26)6.2.1 Linux内核源代码的安装 (26)6.2.2 Linux交叉编译环境的建立和使用 (27)6.2.3 Linux内核的配置和编译 (27)6.3 加载Linux内核映像 (30)6.4 Boa Web服务器的移植 (31)6.4.1 Boa Web服务器的建立 (31)6.5 Linux下动态Web页面的实现 (32)6.5.1 CGI程序分析 (32)6.5.2 Form输入的分析和解码 (34)第七章系统功能的测试 (36)7.1 测试Web服务器 (36)7.2 动态Web页面测试 (37)结束语 (40)致谢 (41)参考文献 (42)附录 (43)第一章引言随着计算机技术的发展,嵌入式系统已成为计算机领域的一格重要组成部分。
单片机上实现web服务的方法

单片机上实现web服务的方法
在单片机上实现Web服务是一个相对复杂的过程,因为单片机通常没有足
够的计算能力和存储空间来处理Web服务器的需求。
然而,有一些方法可
以在单片机上实现基本的Web服务。
一种常见的方法是使用嵌入式Web服务器。
嵌入式Web服务器是一种专
为在小型设备上运行而设计的Web服务器。
它们通常具有较小的代码尺寸,能够处理基本的Web请求,并在单片机上运行。
常见的嵌入式Web服务
器包括Boa、Mini-HTTPD和uHTTP等。
要使用嵌入式Web服务器,您需要将Web服务器代码编译为目标单片机
的可执行文件,并将其上传到单片机上。
然后,您可以使用Web浏览器或
其他客户端来访问您的单片机上的Web服务。
另一种方法是使用MQTT协议。
MQTT是一种轻量级的发布/订阅消息传输协议,专为在低带宽和不可靠的网络上传输消息而设计。
它非常适合在单片机上使用,因为它不需要大量的计算和存储资源。
要在单片机上使用MQTT协议,您需要选择一个支持MQTT的库或框架,并将其集成到您的单片机项目中。
然后,您可以使用MQTT客户端库来编
写代码,以便将您的单片机连接到MQTT代理服务器,并发布和订阅消息。
您可以使用现有的MQTT代理服务器,如Mosquitto或Eclipse Paho,或者您也可以自己搭建一个MQTT代理服务器。
需要注意的是,要在单片机上实现Web服务,您需要具备一定的嵌入式系
统和网络编程经验。
此外,由于单片机的资源有限,您需要仔细考虑您的项目需求和限制,以确保您的Web服务能够有效地运行并满足您的要求。
嵌入式Web服务器的研究与设计

It nt用户 通过 任何 一 种 浏 览器 即可 与 服 务 器 建 ne e, r 立 连接 。We b服 务 器 根 据 用 户 请 求 选 择 调 用 静 态 H ML页面 或 C I 序 , 将 处 理结 果 通 过 We T G程 并 b服
1 系统软硬件平 台
11 硬 件平 台 .
12 软件 平 台的分析及 搭 建 .
系统软 件 平 台 由 3部 分 构 成 :otae、iu boodrLnx l
内核及驱动和根文件 系统 。系统上 电后从 固定 地
系统硬 件平 台基 于 ¥C 40 3 24 A处理器实 现 了
S R M、 A D Fah 以 太 网 接 口、 A T R 2 2 D A N N l 、 s U R S3 、
系统 的动 态交互。 重点探 讨 了 B aS Lt o 、Q i e的移植 , G 动 态网页、 户认 证机制 的 实现 方法。测试 结果表明 : CI 用 系统 运行 良好 , 在监控 领域有 良好的商业推广价值 。
关键词 : R Ln x嵌入 式 We A M;i ; u b服务 器; G ;es n C ISsi o
务器 返 回 到 浏 览 器 , 后 关 闭 与 客 户 端 的 T P连 最 C
包 括 : 择 ¥C 4 0芯 片 体 系 结 构 模 块 , 择 相 关 选 3 24 选 的协议 ( C /P 、 件 系 统 ( a s) 驱 动 等 模 块 , T P I) 文 Y f2 、 裁 剪 掉与 系统 运行 无 关 的模块 , 置 内核启 动 的方 设
收稿 日期 :0 10 —4 2 1-31
嵌入式网页设计

嵌⼊式⽹页设计主界⾯主界⾯ campus_audio.html<!DOCTYPE html><html lang="en" ><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><link rel="stylesheet" href="./style.css"><!--link rel="stylesheet" href="./index.css" /--><title>校园铃声定制</title></head><body><div><canvas id="canvas" style="position: fixed; left: 0px; top: 0px; z-index:-8; pointer-events: none; width: 1536px; height: 1000px;background: rgb(36, 31, 61);cursor: none;padding: 0;margin: 0;list-style: none;border: none;outline: none;">您 </div><div id="container0" style="position: fixed; z-index: -1;opacity: 1; width: 1500px; height: 750px"><div class="hbox" style="position: fixed; left: 0px; top: 0px;z-index: 2"><canvas id="canvas1" width="300" height="225"></canvas><img src="/tuku/ybrightness.png" id="sunormoon" width="50px" height="50" style="margin-left: 245px;margin-top: -60px;"><div width="500" height="100" style=" color: #fff;margin-left: 10px;margin-top: -50px;" class="vbox"><h1>校园⼴播站</h1></div><div class="laba" style="margin-left: 10px;margin-top: -34px;width: 90px;height: 80px;"><img src="/tuku/voice_horn.png" width="50px" height="50" ><img src="/tuku/add_music.png" width="25px" height="25" class="addm" id="addCards" style="z-index: 4;"><img src="/tuku/whitemusic.png" width="25px" height="25" class="addm1" id="insertMusic" style="z-index: 4;"></div></div><div style="position: fixed; left: 23px; top: 250px;"><div width="500" style=" color: #fff;" class="vbox ybbox"><div id="main2" style="width: 250px; height:250px ;" ></div></div></div><div style="position: fixed; left: 23px; top: 500px;"><div width="300" height="225" style=" color: #fff;" class="vbox "><h3>湿度</h3><div id="main3" style="width: 250px; height:250px ;margin-top: -20px;" ></div></div></div><div style="position: fixed; top: 130px; color: #fff;width: 100%;z-index: -2" class="hbox"><div style="width: 750px; height:700px;overflow-y:auto;margin-left: 260px;" id="audioCards" class="audioCards"></div><div style="height:700px;overflow-y:auto;margin-left: 0px;"><div id="main" style="width: 450px;height:300px;margin-left: 0px;margin-top: -50px;"></div><h2 style="margin-top: 0px;">通告:</h2><div class="noticeCard"><p>本次嵌⼊式课设由170810218-曲昭璇和170400115-⾦⽂敏完成。
嵌入式Web环境的设置(完全)

9.1 Linux环境下Web 服务器
• 9.1.1 CGI通用网关接口技术
CGI(Common Gate Interface)通用网关接口,是一 个连接外部应用程序到服务器的标准。一个简单的静态 HTML文档是没有交互后台程序,而CGI程序则可以实时执 行并输出动态信息。CGI是实现Web页面技术的关键所在, 其定义是Web服务器与外部应用程序之间通信的标准接口。 与专用编程接口相比具有以下优点: ①独立于服务器体系结构和编程语言。编程者可以自由选 择适合于特定编程任务的语言。 ②提供完整的进程隔离机制。CGI程序独立于Web服务器, 运行在自己的进程地址空间,只与服务器交换接口信息, 从而保证了服务器免受出错CGI进程的影响和用户的有意 试探,提高了安全性和稳定性。
Linux环境下Web 服务器
– 嵌入式系统已经大量应用于各种场合,网络技术的发 展使嵌入式系统的网络功能日益完善。在测控领域里, 常常需要远程查询被测控对象的实时状态,或进行某 种控制操作,采用服务器-浏览器进行工作的嵌入式 系统,可以仅通过浏览器就完成所有的测控任务而不 依赖于其他客户端程序,具有简单网络服务器功能的 嵌入式系统可以方便地提供这种功能。
9.2 基于thttpd动态服务器的实现过程
(2)把”LDFLAGS =”设置为” LDFLAGS = -static”,表 示指定静态链接二进制文件,假如你的开发板上的文件系 统是jffs2文件系统,那建议此项不要设置了。因为,设置 了此项后,编译出来的可执行文件比较大。当把可执行文 件从宿主机拷贝到开发板时,可能会提示” cp: Write Error: No space left on device”。因为采用的是 jffs2文件系统,是日志文件系统,拷贝文件不能超过文 件系统的容量,使用df -h可以查看容量的大小。 [root@localhost thttpd-2.25b]# make [root@localhost thttpd-2.25b]# du thttpd 104 thttpd
嵌入式Web服务器的实现

嵌入式Web服务器的实现1Boa程序1.1Boa简介boa是最受人喜爱的嵌入式web服务器,功能较为强大,支持认证,cgi等。
Boa 是一个单任务的HTTP SERVER,它不像传统的web服务器那样为每个访问连接开启一个进程,也不会为多个连接开启多个自身的拷贝。
Boa对所有的活动的http连接在内部进行处理,而且只为每个CGI连接(独立的进程)开启新的进程。
因此,boa在同等硬件条件下显示出更快的速度。
测试表明boa在Pentium 300MHZ下能够每秒钟处理几千次点击,在20 MHz 386/SX 下能够每秒钟处理几十次点击访问。
Boa和thttpd等,与apache等高性能的web服务器主要区别是,它们一般是单进程的服务器,只有在完成一个用户请求后才能响应另一个用户的请求,无法并发响应,但这在嵌入式设备的应用场合里已经足够了。
Boa设计主要出于速度和安全,是指不被恶意用户暗中破坏,而不是指它有很好的访问控制和通信加密。
可以添加SSL来保证数据传输中的保密和安全。
1.2Boa的功能、特点1)支持HTTP/1.0(实验性的、有条件的支持HTTP/1.1)1.12)支持CGI/1.1,编程语言除了C语言外,还支持Python, Perl, PHP,但对PHP没有直接支持,没有mod_perl, mod_snake/mod_python等。
3)Boa支持HTTP认证,但不支持多用户认证。
4)它可以配置成SSL/HTTPS和IPv6。
5)支持虚拟主机功能。
Boa服务器与其它服务器的不同:为了追求速度和简单性,boa服务器在一些方面不同于一些流行的web服务器。
1)CGI程序的REMOTE_HOST环境变量没有设置2)Boa不具有ssi(server side includes)3)Boa不具有访问控制4)没有chroot选项1.3Boa的工作原理BOA是一款非常小巧的Web服务器,源代码开放、性能优秀、支持CGI通用网关接口技术,特别适合应用在嵌入式系统中。
基于wifi的嵌入式web服务器设计

第41卷第2期2020年2月自㊀动㊀化㊀仪㊀表PROCESSAUTOMATIONINSTRUMENTATIONVol 41No 2Feb.2020收稿日期:2019 ̄04 ̄12基金项目: 核高基 国家科技重大专项基金资助项目(2017ZX01030 ̄201)作者简介:程潇黠(1985 )ꎬ男ꎬ硕士ꎬ工程师ꎬ主要从事水电自动化方向的研究ꎬE ̄mail:chengxiaoxia@sgepri.sgcc.com.cn基于WiFi的嵌入式WEB服务器设计程潇黠1ꎬ2ꎬ闫㊀丽1ꎬ2ꎬ王㊀震1ꎬ2ꎬ景波云1ꎬ2(1.国电南瑞科技股份有限公司ꎬ江苏南京211106ꎻ2.南瑞集团(国网电力科学研究院)有限公司ꎬ江苏南京211106)摘㊀要:为了满足当前工业控制和数据采集的要求ꎬ通过比较常用的嵌入式服务器技术并分析嵌入式服务器的实现原理ꎬ设计了一种全新的基于WiFi的嵌入式WEB服务器ꎮ详细介绍了基于轻量级TCP/IP协议栈(LWIP)的嵌入式WEB服务器的设计方案ꎬ阐述了系统的软硬件设计ꎮ搭建了以WiFi为传输介质的无线通信系统㊁以NANDFLASH为存储介质的FATFS文件系统ꎬ及以SRAM存储器为外部RAM的内存系统的硬件体系ꎮ该嵌入式WEB服务器功耗低㊁成本低㊁实时性好㊁处理能力强ꎮ测试结果表明ꎬ该方案可行㊁实用ꎬ在搭建嵌入式WEB服务器方面有一定的推广性ꎮ关键词:WiFiꎻ嵌入式ꎻWEB服务器ꎻ低功耗ꎻ轻量级TCP/IP协议栈中图分类号:TH393㊀㊀㊀㊀文献标志码:A㊀㊀㊀㊀DOI:10.16086/j.cnki.issn1000 ̄0380.2019040028DesignofEmbeddedWEBServerBasedonWiFiCHENGXiaoxia1ꎬ2ꎬYANLi1ꎬ2ꎬWANGZhen1ꎬ2ꎬJINGBoyun1ꎬ2(1.NARITechnologyCo.ꎬLtd.ꎬNanjing211106ꎬChinaꎻ2.NARIGroupCorporationꎬStateGridElectricPowerResearchInstituteꎬNanjing211106ꎬChina)Abstract:InordertosatisfytherequirementsofcurrentindustrialcontrolanddataacquisitionꎬanewWiFi ̄basedembeddedWEBserverisdesignedbycomparingthecommonlyusedembeddedservertechnologyandanalyzingtheimplementationprincipleofembeddedserver.ThedesignschemeofthisembeddedWEBserverbasedonlightweigintTCP/IPstack(LWIP)isintroducedindetailꎬandthesoftwareandhardwaredesignofthesystemisexpounded.AwirelesscommunicationsystemwithWiFiastransmissionmediumꎬaFatFsfilesystemwithNANDflashasstoragemediumandamemorysystemwithSRAMasexternalRAMisbuilt.TheembeddedWEBserverhaslowpowerconsumptionꎬlowcostꎬgoodreal ̄timeperformanceandpowerfulprocessingcapability.Thetestresultsshowthattheschemeisfeasibleandpractical.Keywords:WiFiꎻEmbeddedꎻWEBserverꎻLowpowerconsumptionꎻLihtweightTCP/IPstack(LWIP)0㊀引言嵌入式WEB服务器ꎬ是在嵌入式系统上实现的一个WEB服务器ꎬ可以通过浏览器访问ꎮ现有的嵌入式WEB服务器主要有两种ꎮ一种是基于Linux设计ꎬ如HTTPD㊁THTTPD和BOAꎮ其优点在于成熟㊁可靠ꎻ缺点在于嵌入式Linux对硬件的要求较高ꎬ如果硬件的性能不够强大ꎬ则服务器性能较差ꎮ另一种基于轻量级TCP/IP协议线(lightweightTCP/IPstackꎬLWIP)设计[1]ꎮ其优点在于适用性强ꎬ对操作系统的要求不高ꎻ缺点在于该服务器高度集成于LWIP中ꎬ通用性较差ꎮ本方案因成本及功耗原因ꎬ选用了北京智芯微电子科技有限公司自产的海燕610处理器作为控制核心ꎮ其性能为ARMM4级别ꎬ嵌入式Linux运行在该处理器上性能不佳ꎬ因此只能选择基于轻量级TCP/IP协议栈(lightweightTCP/IPstackꎬLWIP)开发[2]ꎮ针对LWIP通用性不强的特点ꎬ本文在硬件上扩充了LWIP在无线局域网(wirelessfidelityꎬWiFi)芯片上的使用ꎬ软件上增加了超文本传输协议(hypertexttransferprotocolꎬHTTP)图复根文的自动生成㊁application/json及多表单(multipart/formdata)等提交数据格式的处理[3]ꎮ该方案可在低功耗经济型处理器上实现嵌入式WEB服务器功能ꎬ具有无线WiFi连接㊁功耗低㊁成本低㊁性能强的特点ꎮ1㊀硬件设计本文系统硬件结构如图1所示ꎮ自㊀动㊀化㊀仪㊀表第41卷图1㊀硬件结构图Fig.1㊀Hardwarestructurediagram图1中ꎬ虚线所示为本系统硬件平台ꎮ硬件由处理器(centralprocessingunitꎬCPU)㊁静态随机存取存储器(staticrandom ̄accessmemoryꎬSRAM)㊁闪存(NANDFlashMemoryꎬNANDFLASH)㊁WiFi模块㊁RS ̄232控制器组成ꎮCPU㊁SRAM㊁NANDFLASH构成控制核心ꎮCPU选用海燕610处理器ꎬ其主频可达到150MHzꎬ内部含有丰富的接口ꎬ能运行μC/OS操作系统ꎮ大容量SRAM和NANDFLASH采用FSMC接口ꎬ传输速度快ꎮ上述器件的选用保证了系统的控制及传输性能ꎮWiFi模块用于等待手机或笔记本等WiFi终端连接ꎬ实现控制核心与WiFi终端的无线交互ꎬ其采用串行外设接口(serialperipheralinterfaceꎬSPI)实现高速传输ꎬ支持802.11b/g/nꎬ可直接作为主站接收WiFi终端的信息请求ꎮRS ̄232控制器主要用于与工业测控设备的通信ꎬ选用低功耗器件ꎬ在不使用时直接进入低功耗模式ꎬ降低系统功耗ꎮ本硬件系统结构简单㊁不需要交换机就可直接接入Internetꎬ在客户机上用标准的浏览器就可以与嵌入式WEB服务器通信ꎬ方便地以低成本实现了很多嵌入式设备与Internet直接互联互通的需求[4]ꎮ本方案依据功能ꎬ将硬件划分为电源单元㊁CORE单元㊁WiFi单元㊁RS ̄232单元ꎮ2㊀软件设计2.1㊀软件整体框架操作系统采用μC/OSꎬ应用程序分为3个任务ꎮ软件总体框架如图2所示ꎮ图2㊀软件总体框架图Fig.2㊀Softwareoverallframework①WiFi_TASK:负责和WiFi模块通信ꎬ解析/处理浏览器请求[5]ꎻ将浏览器请求的数据通过消息传递给RS ̄232_TASKꎬ由RS ̄232_TASK发送给工业测控设备ꎻ同时ꎬ接收RS ̄232_TASK返回的工业测控设备响应消息ꎬ将响应发送给浏览器ꎮ②RS ̄232_TASK:接收WiFi_TASK传递的浏览器请求ꎬ将请求转换成为工业测控设备协议的报文ꎬ发送给工业测控设备ꎻ将工业测控设备返回的结果通过消息传递给WiFi_TASKꎬ由WiFi_TASK生成符合HTTP协议的报文ꎬ返回给浏览器ꎮ③IDLE_TASK:休眠任务ꎬ检测上述2个任务的活动状态ꎻ若没有任务处于活动状态ꎬ则模块进入休眠模式ꎻ此外ꎬ负责清空看门狗计数器ꎮ2.2㊀程序入口函数程序入口主要进行硬件的初始化工作ꎬ加载工作参数以及启动μC/OS操作系统ꎬ操作系统启动之后才可以启动2.1节所述的3个任务ꎮ启动流程如图3所示ꎮ图3㊀启动流程图Fig.3㊀Startupflowchart2.3㊀WiFi_TASK任务流程WiFi_TASK任务是系统核心任务ꎬ其主要作用是实现与浏览器的交互[6 ̄8]ꎮ任务非活动超时的定义是在规定的时间内未收到浏览器的请求或工业测控设备的响应数据ꎮ当达到此条件时ꎬ即置任务非活动状态标志ꎬ表示该任务已准备好进入休眠模式ꎮWiFi_TASK调用OSQPend函数等待两种类型的消息ꎮ一种是WiFi模块产生的中断信号ꎻ当WiFi模块有数据要上送给CPU时ꎬ会在其SPI_INT引脚产生1个高电平信号ꎮ利用这个信号ꎬ在相应中断函数中调用QSQPost函数发出消息ꎬ通知WiFi_TASK响应HTTP请求ꎮ另一种是RS ̄232_TASK46第2期㊀基于WiFi的嵌入式WEB服务器设计㊀程潇黠ꎬ等任务发出的消息ꎬ通知WiFi_TASK任务将工业测控设备的串口响应数据转换为HTTP报文ꎮWiFi_TASK任务流程如图4所示ꎮ图4㊀WiFi_TASK任务流程图Fig.4㊀WiFi_TASKtaskflowchartWiFi_TASK任务中最核心的是HTTP协议解析[9]ꎬ其主要处理以下几种类型数据ꎮif(strcmp(conten_type_charꎬ"application/x ̄www ̄form ̄urlencoded")==0){content_type=1ꎻ}elseif(strcmp(conten_type_charꎬ"application/json")=㊀㊀=0){content_type=2ꎻ}elseif(strstr(conten_type_charꎬ"multipart/form ̄data")!=㊀㊀0){content_type=3ꎻ}else{returnꎻ}针对常见的POST提交数据方式ꎬ分类进行解析ꎬ满足了WEB服务器大部分的数据请求解析需求ꎬ且可扩展性较强ꎮ2.4㊀RS ̄232_TASK任务流程RS ̄232_TASK任务的主要作用是实现与工业测控设备的交互ꎮRS ̄232_TASK任务流程如图5所示ꎮ图5㊀RS ̄232_TASK任务流程图Fig.5㊀RS ̄232_TASKtaskflowchart任务非活动超时的定义是在规定的时间内未收到WiFi_TASK㊁工业测控设备或上位机通信请求ꎬ当达到56自㊀动㊀化㊀仪㊀表第41卷此条件时ꎬ即置任务非活动状态标志ꎬ表示该任务已准备好进入休眠模式ꎮRS ̄232_TASK调用OSQPend函数等待WiFi_TASK的HTTP请求数据ꎬ将其转换为符合工业测控设备的串口RS ̄232协议ꎬ实现与工业测控设备交互ꎬ并将响应数据发送至WiFi_TASK[10]ꎮ2.5㊀IDLE_TASK任务流程IDLE_TASK任务主要作用是降低系统功耗ꎮIDLE_TASK任务流程如图6所示ꎮ图6㊀IDLE_TASK任务流程图Fig.6㊀IDLE_TASKtaskflowchartWiFi_TASK与RS ̄232_TASK活动标志都无效后ꎬCPU自动进入低功耗模式ꎬ等待WiFi模块中断唤醒CPUꎮ由于看门狗使能后不能关闭ꎬ当CPU进入休眠超过设定的看门狗动作时间后ꎬ看门狗会复位CPUꎮ复位后ꎬ判断复位类型:如果是看门狗复位ꎬ则直接进入低功耗模式ꎻ如果不是ꎬ则说明WiFi有信息传输ꎬ进行正常初始化ꎮ3㊀测试结果建立基于海燕610处理器的嵌入式开发环境后ꎬ把编译好的HEX及网页文件通过串口烧入到Flash中ꎮ连接WiFi之后ꎬ在浏览器中输入网页的网址就可以登陆网页ꎬ实现参数配置㊁程序更新㊁实时及历史数据获取㊁状态查询㊁清除FLASH等功能ꎮ嵌入式Web服务器能支持GET及POST两种请求报文格式ꎮ这两种模式能满足大部分的应用需求ꎮ其中ꎬGET用于请求静态网页ꎬPOST用于动态数据交互ꎮPOST用于动态数据交互的优点在于POST比GET更安全ꎬ因为数据不会显示在URL中ꎬ且不会被保存在浏览器历史或Web服务器日志中ꎮ而且POST传输的数据容量更大ꎬ没有传输容量的限制ꎬ在传输历史数据时ꎬ能传输更多的数据ꎮ在满足普通的JSON交互的基础上ꎬ嵌入式Web服务器增加了对传输multipart/form ̄data格式文件的支持ꎮ该格式文件的优点在于能够传输二进制文件ꎬ非常适用于程序目标代码的上传更新ꎮ通过WiFi就可以实现对数据采集器及Web务器自身的程序更新ꎬ方便了用户的使用ꎮ使用高精度万用表ꎬ测试服务器在12V供电时的电流消耗情况ꎬ测试结果为:运行模式下的消耗电流为40mAꎬ休眠模式下的消耗电流为250μAꎬ满足低功耗的需求ꎮ上述测试表明ꎬ本文所设计的嵌入式Web服务器达到了预期的设计需求ꎬ能满足大部分的Web应用ꎬ处理速度快ꎬ功耗较低ꎮ4㊀结论本文开发的基于WiFi的嵌入式Web服务器ꎬ特别适用于测控系统的系统配置㊁程序更新及数据WEB展示ꎮ基于WiFi的硬件平台ꎬ简化了设备的连接ꎮ使用手机㊁IPAD等便携式设备ꎬ可以对设备进行访问ꎻ也可以连接大屏ꎬ实现数据的大屏展示ꎮ该方案无需安装任何程序ꎬ输入网址就可以实现参数配置㊁程序更新㊁实时及历史数据获取㊁状态查询㊁清除FLASH等功能ꎬ方便实用ꎮ它具有一般通用平台性能ꎬ有一定的应用推广价值ꎮ后续可以对HTTP通信请求格式进行进一步的扩充ꎬ以增强WEB服务器的通用性ꎮ参考文献:[1]谢志文ꎬ许睿ꎬ黄小雪ꎬ等.基于LwIP的嵌入式Web服务器的设计与实现[J].桂州电子科技大学学报ꎬ2014ꎬ34(8):305 ̄308.[2]梁铁ꎬ李凯ꎬ王付强ꎬ等.基于STM32和LwIP协议栈的Web网页控制系统的设计与实现[J]测控技术ꎬ2015ꎬ34(9):134 ̄137.[3]李少杰.Cortex ̄M3平台上lwIP+AJAX的Web嵌入式应用[J]电子设计工程ꎬ2018ꎬ26(6):110 ̄113.[4]李军民ꎬ祝红军.基于ARMLinux新型嵌入式WEB服务器设计[J].自动化仪表ꎬ2008ꎬ29(1):44 ̄47.[5]杜辉ꎬ舒莲卿.基于嵌入式WEB服务器的网络设备测控系统设计[J].自动化仪表ꎬ2006ꎬ27(3):7 ̄9.[6]潘应云ꎬ杨丽洁ꎬ胡玉贵ꎬ等.基于嵌入式WEB的远程声级计测控系统[J].自动化仪表ꎬ2009ꎬ30(5):31 ̄35.[7]张晓东ꎬ鲁可ꎬ李秀娟.精准农业嵌入式WEB服务器的实现[J].自动化仪表ꎬ2013ꎬ34(7):62 ̄65.[8]王树森ꎬ王希杰ꎬ刘秋菊ꎬ等.嵌入式WEB远程粮情监控系统的研究与实现[J].自动化仪表ꎬ2013ꎬ34(10):43 ̄47.[9]马浩ꎬ冯冬芹ꎬ金建祥.无纸记录仪系统的Internet扩展[J].自动化仪表ꎬ2006ꎬ27(6):55 ̄58.[10]任雯.嵌入式网关设计及其在异构系统集成中的应用[J].自动化仪表ꎬ2011ꎬ32(6):15 ̄18.66。
基于stm32的嵌入式web服务器的设计

基于stm32的嵌入式web服务器的设计摘要随着社会的进步和发展,嵌入式系统的东西也渐渐融入了我们的生活当中,比如嵌入式WEB网络服务器,LED电视机等等。
通过越来越多的人使用嵌入式系统,并且随着PC机在人群中的普及,我们开始越来越希望拥有一个系统可以远程控制和使用我们身边的设备,这里我们便有了我们现在的研究,那就是基于STM32的嵌入式WEB服务器的设计。
起初对这个设计的概念是比较模糊的,大致为通过网页和单片机互联,并且做到在TCP/IP,LWIP等协议的运行下,通过网页来控制单片机。
而现在,随着技术越来越成熟和合理,我们通过智能家居等等在TCP/IP的协议下进行远程的通讯,在线的升级和访问Internet等。
这篇文章,就是我们一STM32F4为平台所设计的WEB服务器。
我们主要是通过LWIP的应用程序接口LWIP API编写HTTP程序。
在我们所设计的程序中,WEB服务器会处理来自网页中的信息,发送给PC机,同样,PC机也可以给WEB服务器传送信息,使网页接受来自PC机的信息,实现了PC机和网页的信息交互。
关键字:STM32;嵌入式;WEBABSTRACTWith the progress and development of society, embedded systems are gradually integrated into our lives, such as embedded WEB network server, LED TV and so on. By more and more people use embedded system, and with the popularity of PC machines in the crowd, we began to increasingly want to have a system to and the use of the remote control and equipment around us. Here, we will have the we now study, which is based on STM32 embedded web server design.At first, the concept of this design is relatively vague, roughly through the Internet and the Internet, and do in TCP/IP, LWIP and other protocols running through the web to control the microcontroller.And now, as the technology is more mature and reasonable, we are through the smart home, etc. in the TCP/IP protocol for remote communications, online upgrade and access Internet, etc..This article, is through the STM32F4 development board design of embedded WEB server. We mainly through the LWIP application program interface API LWIP to prepare the HTTP program. In the program, the web server will process the information from a web page, send to the PC. Similarly, PC can also to the web server sends information to pages to accept information from PC, realize the information interaction between the PC and web.Key words: STM32;embedded;WEB第一章绪论1.1 课题的研究背景和意义如今,随着智能手机,智能家居的出现,生活越来越走向了数字化,信息化的时代。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单嵌入式WEB服务器及网页实验日志
实验题目:简单嵌入式WEB服务器及网页
:
实验步骤及结果:
1、阅读理解源码
进入/root/share/exp/basic/07_httpd目录,使用vi编辑器或其他编辑器阅读理解源代码
2、编译应用程序
运行make产生可执行文件httpd
[root@bc /]# cd /root/share/exp/basic/07_httpd/
[root@bc 07_httpd]# make
armv4l-unknown-linux-gcc -
DHTTPD_DOCUMENT_ROOT=\"/mnt/yaffs\" -c -o httpd.o httpd.c armv4l-unknown-linux-gcc -
DHTTPD_DOCUMENT_ROOT=\"/mnt/yaffs\" -c -o copy.c armv4l-unknown-linux-gcc -o ../bin/httpd httpd.o copy.o -lpthread
armv4l-unknown-linux-gcc -o httpd httpd.o copy.o -lpthread
[root@bc 07_httpd]# ls
copy.c doc httpd httpd.o Makefile
copy.o Google httpd.c index.html Makefile.bak
3、下载调试
使用NFS服务方式将HTTPD下载到开发板上,并拷贝测试用的网页进行调试,本例中用的是index测试网页。
[/mnt/yaffs]ifconfig eth0 172.16.38.100
[/mnt/yaffs]mount –t nfs 172.16.38.133:/root/share /host
[/mnt/yaffs]cd /host/exp/basic/07_httpd/
[/host/exp/basic/07_httpd]./httpd
starting httpd...
press q to quit.
wait for connection.
4、本机测试
Linux下和windows下的浏览器均可(做此实验请把杀毒软件和防火墙关闭)
在台式机的浏览器中输入http://172.16.38.100(100为UP-AMR2410-S实验板的IP地址),观察在客户机的浏览器中的连接请求结果(如图5.8)和在开发板上的服务器的打印信息。
图5.8 IE显示结果
注意:开发板的IP地址可以同过ifconfig命令来查看。