嵌入式web服务器搭建讲解_第1页
嵌入式web服务器搭建讲解_第2页
嵌入式web服务器搭建讲解_第3页
嵌入式web服务器搭建讲解_第4页
嵌入式web服务器搭建讲解_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Web服务器创建随着计算机技术的发展, 嵌入式系统已成为计算机领域的一个重要组成部分。 广义讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。 所谓嵌入式设备,是指具有计算机功能, 但又不称为计算机的设备或器材, 几乎包括了我们周期的所有电路设备: PDA 、手机机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、自动取款机等。嵌入式系统可以通过各种无线形式(如 WAP 、Blue 嵌入式 Internet 技术主要包括传感器技术、 通信技术、计算机技术和集成电路技术等。 以前的设备控制系统一般是通过专用通信线中进行的, 其通信介质、通信协议、相关软件和硬件都是专用的,而 In

2、ternet 技术的发展使嵌入式设备的远程控制和管理方式有了改变。 不需要专用的通信线路, 并且传输的信息不局局于数据信号,还有声音和图像。最重要的是其通信协议是标准且公开的。随着 Web 技术的发展,几乎改变了现在的信息表达形式, 很多应用都是基于 Web 技术的。由于 HTML 语言的标准统一性,只要在嵌入式设备中有一个微型服务器,就可以使用任意一种 Web 浏览器接收和发送信息。 所以如何设计这种特别的 Web 服务器,如何在嵌入式设备中安装 Web 服务器,就成了嵌入式 Web 服务器的发展和研究方向。对于嵌入式 Web 服务器的研究和应用,其意义是重大的。它为我们管理、控制和监测各种

3、各样设备提供了一个很好的途径。 这种设备可以是具有有限内存资源的 8 位或 16 位系统,已足够提供一个用户界面, 而且这种方式是基于 Internet 的。这种设备可以在世界任何一个地方,只要它连入 Internet 就能够控制它。1.1 课题的研究意义Internet 的迅猛发展, 传统的 Client/server 体系结构 (客户机 /服务器 ),渐渐的在某些方面显示出它的局限性, Browser/server 结构 (浏览器 /服务器 )的出现恰恰弥补了这种缺陷。 B/S 方式已成为一种时尚,大部分网络应用系统都是以这种 B/S 方式与网络用户交换信息。 B/S 的基础是客户端要有一

4、个浏览器程序,服务器端要有一个与之对应的 Web 服务器。显然, Web 服务器在 B/S 方式下起着决定性的作用,因此,一般互联网站都采用功能强大的通用Web 服务器。随着网络各个核心部分业务量的提高, 其访问量和数据流量快速增长, 处理能力和计算强度也相应增大, 使得单一设备根本无法承担, 而且许多企业级应用系统的应用请求具有突发性和紧急性的特点, 当应用访问急剧上升时, 容易造成网络瓶颈。解决这一问题的办法是采用多台嵌入式 Web 服务器为一个应用服务,集群负载均衡机制就是为解决多个网络设备之间实现合理的业务量分配而提出的。1.2 论文研究内容嵌入式 Web 服务器是指将 Web 服务器

5、引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以 TCP/IP 为底层通信协议, Web 技术为核心的基于互联网的网络测试和控制设备。 EWS 系统与传统的 Web 应用相比,简化了系统结构,将信息采集和信息发布都集成到现场的测控设备中。 而有了标准的接口形式和通信协议, 内嵌于设备的从 Web 服务器同样可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,浏览器成了设备的前端控制板。由于Web 技术的开放性和独立平台特性, 大大降低了软件系统和通信系统的设计、维护工作量, 节省了人员培训费用等,提高了现场测试和控制设

6、备的管理水平。本文采用DevKit8500D/A 的硬件构架,基于超文本传输协议(HTTP1.0) 传输控制数据和用户信息,设计了简单的嵌入式Web 服务器,通过以太网和HTTP数据传输共享小型嵌入式设备的信息,实现了嵌入式系统的Internet 接入,远程用户可通过浏览器访问嵌入式Web 服务器,实现了嵌入式系统的远程控制。2.1 嵌入式 Web 服务器的硬件构成2.1.1 DevKit8500D/A开发板1.1 产品介绍DevKit8500D/A 评估套件是深圳市天漠科技有限公司推出的基于德州仪器( TI)DM3730/AM3715 处理器的评估套件。处理器集成了高达 1GHz 的 ARM

7、 Cortex? -A8 内核及高达 800MHz 的具有高级数字信号处理的 DSP 核( DM3730 only),并提供了丰富的外设接口。 DevKit8500 外扩了网口、 S-VIDEO接口、音频输入输出接口、 USB、TF 接口、串口、 SPI接口、 IIC 接口、 JTAG接口、 CAMERA 接口、 TFT屏接口、触摸屏接口、键盘接口、 HDMI 接口。Devkit8500 的应用范围:便携式数据终端导航自动化资讯娱乐游戏医用设备家庭自动化人机界面工业控制测试与测量仪器单板计算机Devkit8500 功能模块图:图 11.2 定义Devkit8500A: CPU基于 AM3715

8、,简称为“ A”的 Devkit8500 评估板;Devkit8500D: CPU基于 DM3730,简称为“ D”的 Devkit8500 评估板;AM3715 与 DM3730 相异的地方主要是DSP,AM3715 不带 DSP,而 DM3730 带 DSP;后面书面上会以“ Devkit8500”介绍为主,若遇到有 D/A 区分的地方,会以注意方式说明。1.3 特性Devkit8500评估板是基于 DM3715/DM3730处理器,同时也是集成了此芯片所有功能与特性的评估板,以下是板子的特性:电气参数工作温度: 0 70 环境湿度: 20% 90%,非冷凝机械尺寸: 136.2mm x

9、105.3mm电气指标: +5V 电源供电处理器1GHz ARM Cortex?-A8 Core800- MHz TMS320C64x+? DSP Core(DM3730 only )NEON? SIMD CoprocessorPOWERVR SGX? Graphics AcceleratorARM: 32 KB I-Cache; 32 KB D-Cache; 256KB L2 CacheOn Chip: 64KB RAM; 32KB ROM存储器512MB 32 位 DDR SDRAM512MB 16 位 NAND Flash2GB 4 位 iNAND (可选配置,默认不焊接)音频 /视频接

10、口一个 S-VIDEO 接口一个 HDMI(DVI-D) 接口一个音频 3.5mm 输入接口一个双声道音频3.5mm 输出接口液晶触摸屏接口24 位真彩色分辨率支持高达 2048x20484 线触摸屏传输接口串口:UART1 ,5 线串口, TTL 电平UART2 ,5 线串口, TTL 电平UART3 ,5 线串口, RS232 电平USB 接口:1 x USB2.0 OTG, High-speed,480Mbps4 x USB2.0 HOST, High-speed,480MbpsTF 卡接口10/100Mbps RJ45网络接口1 路 McSPI 接口(多通道 SPI 接口)1 路 Mc

11、BSP 接口(多功能串行接口)1 路 I2C 接口1 路 HDQ 接口(单总线接口)输入接口1 路 CAMERA 接口6 X 6 键盘接口14 针标准 JTAG 接口4 个按键( 2 个用户按键, 1 个复位按键, 1 个休眠唤醒按键)LED 指示灯1 个电源指示灯2 个系统指示灯2 个用户自定义灯4 个 USB Host 指示灯1 个 USB Hub 指示灯图 2: 硬件实物图2.1.2 CPU 介绍DM37x/AM37x 是高性能、增强型数字媒体的处理器,使用 TI 45 纳米的先进工业技术,而这种架构被设计用于 ARM 和图形演示的同时,也拥有低功耗的特点。2.1.3 CPU特性复位(

12、reset)复位信号是通过CPU的 SYS_NRESPWRON所决定的,低电平复位有效。通用接口设备( General-Purpose Interface)通用接口设备包括6 组通用输入输出接口( GPIO),每一 GPIO模组提供 32个专用的通用接口输入输出管脚,因此通用的GPIO可以高达192 个( 6x32)管脚。上述管脚可以根据下面应用进行配置:? 数据输入输出(驱动)? 键盘接口? 中断控制显示底层( Display Subsystem)显示底层主要在LCD或者 TV 接口下提供存储帧缓存(SDRAM 或者 SRAM)的逻辑视频图像,显示底层包括下列内容:显示控制( DISPC)模

13、组远程帧缓冲接口( RFBI)模组显示串行接口( DSI)的 I/ O 模块和 DSI协议引擎DSI PLL控制器驱动( DSI PLL和高速 HS分频器)NTSC / PAL视频编码显示控制器和 DSI协议引擎连接到 L3 和 L4 的内部总线上,而 RFBI与 TV 输出编码模组是连接到 L4 内部总线。2.2 嵌入式 Web 服务器的软件构成嵌入式Web 服务器主要解决的问题是通过制现场的设备,所以必须在嵌入式设备中配置Internet 来进行远程访问和控TCP/IP 协议和Web 服务器,以解决网络互联问题。但是嵌入式服务器系统只需要使用其中的某些基本 的功能,也要减去一些使用不到有功

14、能 ,以节省有限的嵌入式资源。 TCP/IP 此外还要用到的软件资源有嵌入式实时操作系统 、 HTTP 协议 ,同时带有 SMTP 和 SNMP 协议 ,使其具有网络管理的简单功能 ,通过网络可以对接 入到 Internet上的设备进行管理和控制。软件用到的主要开发工具以及语言技术有:(1) C 语言:大部分程序都是用C 语言编写的;(2) CGI:在 Web 上主要用到的是CGI 脚本语言(3) Keil :开发工具用到的是Keil uvision4.3.1 嵌入式 Web 技术嵌入式 Web 服务器,本身就是在嵌入式设备中运行的基于 HTTP 协议的 Web 服务器,以网页的形式为计算机提

15、供嵌入式设备的状态、 参数表示等信息川。 将 Web 服务器植入嵌入式系统后接入 Internet,嵌入式 Web 服务器不仅可以利用浏览器提供的丰富的图形用户界面实现远程管理、 监控嵌入式系统的功能, 并且可以在服务器端结合嵌入式 Web 服务器提供的接口进行进一步开发,以此丰富各种嵌入式功能。 嵌入式 Web 服务器更易于和 Internet 实现无缝连接, 它使得嵌入式设备的远程控制和管理方式都有了改变, 不再需要专用的通信线路, 传输的信息也不再局限于数据信息 5 。如图 4 所示是典型的嵌入式Web 服务器的系统模型:Web浏览器嵌入式 Web设备图形用户界面HTML 解HTML 解

16、HTML 解HTML 解静态 Web页嵌入式设备析器析器析器析器面HTML 解HTML 解析器析器HTTP 引擎HTTP引擎嵌入式 web服务器TCP/IP协议栈TCP/IP协议栈图 4 典型的嵌入式 Web 服务器系统模型Internet 可以提供多种网络服务,比如通过SMTP(简单邮件传输协议)收发邮件,通过 FTP(文件传输协议)传输文件。 Internet 能得到如此大规模的流行, WWW (World Wide Web)技术居功至伟。可以说如果没有 WWW 和 HTTP 技术就不会有这么多人使用 Internet,正是 WWW 技术把 Internet 的结构、服务和应用引上了一个新

17、台阶。嵌入式系统和 Internet 技术的结合,前景非常乐观。 嵌入式 Web 技术除了可以用于构建智能家庭外还可以用于很多工业领域。 在工业控制系统中, 采用嵌入式 Web 技术的远程监控系统和传统的基于现场总线的监控系统相比,前者更容易和 Internet 实现无缝连接,它使得嵌入式设备的远程控制和管理方式都有了改变,不再需要专用的通信线路, 传输的信息也不再局限于数据信息。 在电力系统中嵌入式 Web 技术也有用武之地。电力系统是一个包含电能生产、传输和使用的复杂系统,各种生产设备地域分布广泛,设备类型众多、数量巨大,对于这些设备的监控。诊断和维护称为提高系统管理水平的重要内容。 因此

18、可以将嵌入式Web 技术用于电力系统的远程检测与故障诊断。3.2 嵌入式 Web 服务器在 Internet方面的应用传统的通用的Web 服务器被设计用来处理成千上万个用户对普通网站的同时并发访问。它可以有强有力的数据库作为后盾来开展内容繁多的商业服务,但是由于嵌入式设备的处理器能力和有限的存储容量,这样的服务器并不能用来在嵌入式设备上面运行。 对于一般的管理信息系统或中小型应用系统,所需的 Web服务功能比较简单,如果仍然采用大型的通用Web 服务器,无疑是一种资源的浪费。解决方法是使用功能相对简单、体积更小、消耗资源更少的简单Web 服务器,于是嵌入式Web 服务器就应运而生了。WWW(W

19、orld Wide Web) 的飞速发展和广泛应用得益于其提供的大量服务,这些服务为人们的信息交流带来了极大的便利。环球信息网是一个基于超文本方式的信息查询方式。它提供了一个友好的界面,大大方便了人们对信息的浏览。而嵌入式系统链接入互联网也是大势所趋。3.3 嵌入式 Internet技术的应用前景嵌入式 Internet 技术具有广阔的应用前景,其应用领域可以包括:智能公路交通管理、车辆导航、流量控制、信息监测与汽车服务;植物工厂特种植物工场, 如实现野生名贵药材的远程监控培养和种植, 无土栽培技术应用,智能种子工程等;虚拟现实 (VR) 机器人交通警察、门卫、家用机器人等;信息家电冰箱、空调

20、等的网络化;工业制冷冷库、中央空调、超级市场冰柜;VR 库房粮库、油库、食品库等;3.4 嵌入式 Web 服务器中 TCP/IP栈的实现3.4.1 IP 协议实现IP 协议主要功能是用于主机之间发送数据报的传输,实现比较复杂,但对于 Web 服务器来说,只需完成IP 协议两项最基本的功能:第一,处理接收到的IP 数据报,向上层网络提交。第二,负责对 TCP 报文、 ICMP 报文进行封装,交给数据链路层进行装帧。当 Web 服务器收到发给自己的数据帧后,需要对以太网首部中的帧类型字段进行判断,如果该字段为 0x0800,说明后面的数据是 IP 数据报,将此数据提交 IP 层处理。 IP 协议判

21、断此数据报的 IP 头部中目的 IP 地址字段与本地 IP 地址是否一致,若不一致,则丢弃该数据报;若一致,进行 IP 头部校验和检查,当证明数据在传输中没有出现错误时,去掉 IP 头部,将 IP 数据提交上层处理,即根据 IP 首部中的协议字段决定交给 ICMP 协议还是 TCP 协议处理。在程序运行时,当所接收的数据被判定为 IP 数据报后, IP 处理程序将严格按照以上的过程接收处理数据并进行处理。3.4.2 TCP协议实现TCP 是嵌入式 Web 服务器的核心。在设计嵌入式Web 服务器时,系统应用层只需支持 HTTP 协议。嵌入式系统把要传送的数据, 参数等存入网页的相关位置。对于任

22、何 TCP 连接,每次只需支持HTTP 协议发送网页服务。在单片机这样的系统中,资源十分有限,因此要精简TCP 协议,简化的原则有两个:第一,不能改变其面向连接的特性;第二,简化必须能配合其所采用的应用层协议。作为嵌入式 Web 服务器, TCP 连接时只需处于被动服务的状态,所以将标准的 TCP 有限状态机的主动创建连接的SYN-SENT 状态,主动关闭连接的FIN-WAIT1,FIN-WAIT2,3.5HTTP协议简介HTTP 协议即超文本传送协议(HypertextTransferProtoeol)是用来构建分布式信息系统的,建立在 TCP/IP 协议之上的应用层协议。是一个属于应用层的

23、面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP 的主要特点可概括如下:1:支持客户 /服务器模式。2:简单快速,灵活。3:无连接,无状态。4.1 设计总体需求说明嵌入式 Web 服务器总体的设计思路如图5 所示:硬件设备:在这里硬件设备包括了电源, 开发板,以及开发板上已经集成的网络芯片,还有就是其他和本设计有关设备等等;嵌入式 Web 服务器:要求是已经做好的 Web 服务器,通过软件控制下载到开发板中,由此而组合成的嵌入式 Web 服务器Internet:打开浏览器通过网络访问嵌入式 Web 服务器(即打开嵌入式 Web 服务器中已经申请好的 IP 地址,输入

24、 URL 进行访问)远程控制 LED 灯:在通过网络进入 index 页面后通过按钮或者其它的方法来远程的控制 LED 的亮与灭硬件设备嵌入式 Web 服务器Internet远程控制 LED 灯图 5 整体架构图4.2 程序设计与实现4.2.1 主程序设计1、功能说明系统的总入口,也是系统的主要控制函数。分别完成如下功能:(1) 建立环境设置。(2) 设置信号处理方式。(3) 建立侦听 TCP 流方式 SOCKET 并绑定 80 端口。(4) 建立连接侦听及客户连接处理调用主循环。2、主程序流程图主程序流程图如图6 所示:开始初始化stm32初始化DP83848处理 DP83848产生DP83

25、848触及STM32的外部中断Y的中断事件NNSocket端口收到数据Y处理接受到的数据6 主程序流程图2.设计与程序说明通过 DHCP 服务器的连接成功与否来检测网络是否连接成功具体步骤如下:(1)当用户给开发板通电后,首先是 DHCP 服务器的连接,如果连接失败,服务器会分配一个程序中已经写好的 IP 地址显示在 LCD 上,用户通过得到的 IP 地址进入浏览器,进入主页面进行访问控制根据网络的连接进行选择:DHCP 服务器连接失败的部分代码如下:if (-dhcp_tout = 0) /* A timeout, disable DHCP and use static IP address

26、. */ dhcp_disable ();sprintf(char *)lcd_text1, DHCP failed );LCDupdate = _TRUE;dhcp_tout = 30 | 0x80000000;return;连接失败后的 IP 地址分配:if (dhcp_tout = 0x80000000) dhcp_tout = 0;sprintf(char *)lcd_text0,IP address:);sprintf(char *)lcd_text1,%d.%d.%d.%d, MY_IP0, MY_IP1,MY_IP2, MY_IP3);LCDupdate = _TRUE; ( 2

27、)如果 DHCP 服务器连接成功, 等待一会它会自动的分配一个 IP 地址显示在 LCD 上,用户通过此 IP 地址可直接访问主界面,并进行灯光控制DHCP 服务器连接成功的部分代码服下:if (mem_test (&MY_IP, 0, IP_ADRLEN) = _FALSE & !(dhcp_tout & 0x80000000) dhcp_tout = 0;sprintf(char *)lcd_text0,IP address:);sprintf(char *)lcd_text1,%d.%d.%d.%d, MY_IP0, MY_IP1, MY_IP2, MY_IP3);LCDupdate =

28、 _TRUE;return;( 4)其它协议的部分模块调用UDP 套接字模块控制:#if UDP_ENABLE = 1struct udp_info udp_socketUDP_NUMSOCKS; TCP 套接字模块控制:#if TCP_ENABLE = 1struct tcp_info tcp_socketTCP_NUMSOCKS+1;4.3 程序编译、运行及测试4.3.1 编译应用程序本设计的所有工程,如下图所示,而其中的 LED 是本次设计的重点,所以在其它设计上没有做详细的设计,只是针对 LED 做出了详细的设计,具体的工程模块如图 7 所示。图 7 程序结构编译的主程序主要代码如下:int main (void) init ();LEDrun = _TRUE;dhcp_tout = DHCP_TOUT;while (1) timer_poll ();main_TcpNet ();dhcp_check ();blink_led ();4.3.2 下载调试本次设计所使用的开发工具 Keil ,测试用的是通过 ULINK 仿真器来实现开发板与 PC 机相连的。将开发板连接到电脑,将写好的程序通过仿真器下载到开发板上。当程序下载完成之后,接下来需要做的就是调试(即 Debug)通过 Debug 来检测程序的错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论