创龙教仪-木江鹏 · 2023年08月10日 · 广东

嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验

实验目的

本节视频的目的是学习TCP/IP协议的通信原理和Wed服务器的工作原理,实现搭建轻量级Web服务器。
官方公众号:创龙教仪
官方B站号:创龙教仪
官方网站:www.tronlongtech.com

实验原理

硬件原理图

实验过程中使用的是网口。

image.png

WEB服务器

(WORLD WIDE WEB,环球信息网)

即万维网,主要功能是提供网上信息浏览服务。WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求。当收到请求之后,它会生成相应的响应并将其返回至客户端。Web服务器通过HTTP协议与客户端通信,因此也被称为HTTP服务器。

当我们在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址。然后发送一个HTTP Request(请求)给拥有该 IP 的主机,接着就会接收到服务器给我们的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给我们。这个过程中,正是Web服务器在幕后默默做贡献。

Web工作原理

Web服务器的工作原理并不复杂,一般可分成如下4个步骤:

(1)建立连接

客户机通过TCP/IP协议建立到服务器的TCP连接。

在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

Web浏览器向Web服务器发送请求命令一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。

(2)请求过程

客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

(3)应答过程

服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。

(4)关闭连接

Web服务器关闭TCP连接.

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive,TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

image.png

HTTP协议

(HyperText Transfer Protocol,超文本传输协议)

HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议,是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,永远都是客户端发起请求,服务器回送响应,是一个标准的客户端服务器模型。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

LwIP协议栈

LwIP是一个轻量级的TCP/IP协议栈,可用于各种嵌入式的系统中。LwIP协议是一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP含义是light weight(轻型)IP协议,在实现时保持了TCP协议的主要功能基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP协议栈很适合在低端嵌入式系统中使用。

LwIP协议栈的设计采用分层结构的思想,每一个协议都作为一个模块来实现,提供一些与其它协议的接口函数。所有的TCP/IP协议栈都在一个进程当中,这样TCP/IP协议栈就和操作系统内核分开了。而应用程序既可以是单独的进程也可以驻留在TCP/IP进程中,它们之间利用ICP机制进行通讯。如果应用程序是单独的线程可以通过操作系统的邮箱、消息队列等,与协议栈进程通讯。如果应用程序驻留在协议栈进程中,则应用程序可以通过内部回调函数和协议栈进程通讯。

EMAC

(Ethernet Media Access Controller,以太网媒体访问控制器)

简单介绍集成在器件中的以太网媒体访问控制器(EMAC)和物理层(PHY)器件管理数据输入/输出(MDIO)模块的功能描述。 EMAC 模块用于在器件(device)和连接到同一网络的其他主机(host)之间搬移数据,遵从以太网协议。EMAC 控制从系统到 PHY 的包数据流。 MDIO 模块控制 PHY 配置以及状态监控。EMAC 和 MDIO 模块都是通过自定义接口连接到系统内核的,它允许高效率的数据发送和接收。这个自定义接口被称为 EMAC 控制模块,是 EMAC/MDIO 不可或缺的外设。

EMAC/MDIO 特点

EMAC/MDIO 具有以下特点:
(1)同步 10/100 Mbps 操作。
(2)到物理层器件(PHY)的标准媒体独立接口(MII)或简化媒体独立接口(RMII)。
(3)EMAC 作为到器件内外存储空间的 DMA 主控 。

程序流程

image.png

操作现象

硬件设备

本实验使用的硬件接口为网口,所需硬件为实验板、仿真器、网线、RS232 交叉串口母母线、USB转RS232串口线和电源。

image.png

硬件连接

(1)使用网线连接实验板的网口和路由器,程序默认是动态获取IP的。如果没有路由器,则使用网线连接实验板的网口和电脑的网口,请根据实验手册修改程序以及设置电脑的静态IP。

(2)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART2串口和电脑的 USB口。

(3)连接仿真器和电脑的USB接口,

(4)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

(1)先在设备管理器查看串口的端口号;

(2)再设置串口调试工具,波特率设置为115200。

image.png

设置好串口调试工具后,在CCS里进行相关操作。

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接实验箱并加载程序

点击运行程序,串口终端会打印自动获取到的实验箱IP地址

image.png

在 Windows 开始菜单底部输入 cmd 进入控制台窗口,执行 ping 命令,确认实验箱的网络部分工作正常。

打开浏览器输入网址 http://192.168.0.116,就可以看到网址内容。

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息