嵌入式教程_DSP技術(shù)_DSP實驗箱操作教程:2-28 搭建輕量級WEB服務(wù)器實驗

實驗目的
本節(jié)視頻的目的是學習TCP/IP協(xié)議的通信原理和Wed服務(wù)器的工作原理,實現(xiàn)搭建輕量級Web服務(wù)器。
官方公眾號:創(chuàng)龍教儀
官方B站號:創(chuàng)龍教儀
官方網(wǎng)站:www.tronlongtech.com
實驗原理
硬件原理圖
實驗過程中使用的是網(wǎng)口。

WEB服務(wù)器
(WORLD WIDE WEB,環(huán)球信息網(wǎng))
即萬維網(wǎng),主要功能是提供網(wǎng)上信息瀏覽服務(wù)。WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發(fā)展起來的服務(wù),也是發(fā)展最快和目前用的最廣泛的服務(wù)。正是因為有了WWW工具,才使得近年來 Internet 迅速發(fā)展,且用戶數(shù)量飛速增長。
Web服務(wù)器是在運行在物理服務(wù)器上的一個程序,它永久地等待客戶端(主要是瀏覽器,比如Chrome,F(xiàn)irefox等)發(fā)送請求。當收到請求之后,它會生成相應的響應并將其返回至客戶端。Web服務(wù)器通過HTTP協(xié)議與客戶端通信,因此也被稱為HTTP服務(wù)器。
當我們在瀏覽器輸入URL后,瀏覽器會先請求DNS服務(wù)器,獲得請求站點的 IP 地址。然后發(fā)送一個HTTP Request(請求)給擁有該 IP 的主機,接著就會接收到服務(wù)器給我們的 HTTP Response(響應),瀏覽器經(jīng)過渲染后,以一種較好的效果呈現(xiàn)給我們。這個過程中,正是Web服務(wù)器在幕后默默做貢獻。
Web工作原理
Web服務(wù)器的工作原理并不復雜,一般可分成如下4個步驟:
(1)建立連接
客戶機通過TCP/IP協(xié)議建立到服務(wù)器的TCP連接。
在HTTP工作開始之前,Web瀏覽器首先要通過網(wǎng)絡(luò)與Web服務(wù)器建立連接,該連接是通過TCP來完成的,該協(xié)議與IP協(xié)議共同構(gòu)建Internet,即著名的TCP/IP協(xié)議族,因此Internet又被稱作是TCP/IP網(wǎng)絡(luò)。HTTP是比TCP更高層次的應用層協(xié)議,根據(jù)規(guī)則,只有低層協(xié)議建立之后才能,才能進行更層協(xié)議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80。
Web瀏覽器向Web服務(wù)器發(fā)送請求命令一旦建立了TCP連接,Web瀏覽器就會向Web服務(wù)器發(fā)送請求命令。
(2)請求過程
客戶端向服務(wù)器發(fā)送HTTP協(xié)議請求包,請求服務(wù)器里的資源文檔。
瀏覽器發(fā)送其請求命令之后,還要以頭信息的形式向Web服務(wù)器發(fā)送一些別的信息,之后瀏覽器發(fā)送了一空白行來通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送。
(3)應答過程
服務(wù)器向客戶機發(fā)送HTTP協(xié)議應答包,如果請求的資源包含有動態(tài)語言的內(nèi)容,那么服務(wù)器會調(diào)用動態(tài)語言的解釋引擎負責處理“動態(tài)內(nèi)容”,并將處理得到的數(shù)據(jù)返回給客戶端。由客戶端解釋HTML文檔,在客戶端屏幕上渲染圖形結(jié)果。
(4)關(guān)閉連接
Web服務(wù)器關(guān)閉TCP連接.
一般情況下,一旦Web服務(wù)器向瀏覽器發(fā)送了請求數(shù)據(jù),它就要關(guān)閉TCP連接,然后如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼:Connection:keep-alive,TCP連接在發(fā)送后將仍然保持打開狀態(tài),于是,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。保持連接節(jié)省了為每個請求建立新連接所需的時間,還節(jié)約了網(wǎng)絡(luò)帶寬。

HTTP協(xié)議
(HyperText Transfer Protocol,超文本傳輸協(xié)議)
HTTP協(xié)議是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議,是基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)。它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。HTTP是一個應用層協(xié)議,由請求和響應構(gòu)成,永遠都是客戶端發(fā)起請求,服務(wù)器回送響應,是一個標準的客戶端服務(wù)器模型。HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。Web服務(wù)器根據(jù)接收到的請求后,向客戶端發(fā)送響應信息。
HTTP是一個無狀態(tài)的協(xié)議,同一個客戶端的這次請求和上次請求是沒有對應關(guān)系。
LwIP協(xié)議棧
LwIP是一個輕量級的TCP/IP協(xié)議棧,可用于各種嵌入式的系統(tǒng)中。LwIP協(xié)議是一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LwIP含義是light weight(輕型)IP協(xié)議,在實現(xiàn)時保持了TCP協(xié)議的主要功能基礎(chǔ)上減少對RAM的占用,一般它只需要幾十K的RAM和40K左右的ROM就可以運行,這使LwIP協(xié)議棧很適合在低端嵌入式系統(tǒng)中使用。
LwIP協(xié)議棧的設(shè)計采用分層結(jié)構(gòu)的思想,每一個協(xié)議都作為一個模塊來實現(xiàn),提供一些與其它協(xié)議的接口函數(shù)。所有的TCP/IP協(xié)議棧都在一個進程當中,這樣TCP/IP協(xié)議棧就和操作系統(tǒng)內(nèi)核分開了。而應用程序既可以是單獨的進程也可以駐留在TCP/IP進程中,它們之間利用ICP機制進行通訊。如果應用程序是單獨的線程可以通過操作系統(tǒng)的郵箱、消息隊列等,與協(xié)議棧進程通訊。如果應用程序駐留在協(xié)議棧進程中,則應用程序可以通過內(nèi)部回調(diào)函數(shù)和協(xié)議棧進程通訊。
EMAC
(Ethernet Media Access Controller,以太網(wǎng)媒體訪問控制器)
簡單介紹集成在器件中的以太網(wǎng)媒體訪問控制器(EMAC)和物理層(PHY)器件管理數(shù)據(jù)輸入/輸出(MDIO)模塊的功能描述。 EMAC 模塊用于在器件(device)和連接到同一網(wǎng)絡(luò)的其他主機(host)之間搬移數(shù)據(jù),遵從以太網(wǎng)協(xié)議。EMAC 控制從系統(tǒng)到 PHY 的包數(shù)據(jù)流。 MDIO 模塊控制 PHY 配置以及狀態(tài)監(jiān)控。EMAC 和 MDIO 模塊都是通過自定義接口連接到系統(tǒng)內(nèi)核的,它允許高效率的數(shù)據(jù)發(fā)送和接收。這個自定義接口被稱為 EMAC 控制模塊,是 EMAC/MDIO 不可或缺的外設(shè)。
EMAC/MDIO 特點
EMAC/MDIO 具有以下特點:
(1)同步 10/100 Mbps 操作。
(2)到物理層器件(PHY)的標準媒體獨立接口(MII)或簡化媒體獨立接口(RMII)。
(3)EMAC 作為到器件內(nèi)外存儲空間的 DMA 主控 。
程序流程

操作現(xiàn)象
硬件設(shè)備
本實驗使用的硬件接口為網(wǎng)口,所需硬件為實驗板、仿真器、網(wǎng)線、RS232 交叉串口母母線、USB轉(zhuǎn)RS232串口線和電源。

硬件連接
(1)使用網(wǎng)線連接實驗板的網(wǎng)口和路由器,程序默認是動態(tài)獲取IP的。如果沒有路由器,則使用網(wǎng)線連接實驗板的網(wǎng)口和電腦的網(wǎng)口,請根據(jù)實驗手冊修改程序以及設(shè)置電腦的靜態(tài)IP。
(2)使用 RS232 交叉串口母母線和 USB 轉(zhuǎn) RS232 串口線連接實驗板的UART2串口和電腦的 USB口。
(3)連接仿真器和電腦的USB接口,
(4)將撥碼開關(guān)撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關(guān)上電。

軟件操作
(1)先在設(shè)備管理器查看串口的端口號;
(2)再設(shè)置串口調(diào)試工具,波特率設(shè)置為115200。

設(shè)置好串口調(diào)試工具后,在CCS里進行相關(guān)操作。
導入工程,選擇Demo文件夾下的對應工程
編譯工程
將CCS連接實驗箱并加載程序
點擊運行程序,串口終端會打印自動獲取到的實驗箱IP地址

在 Windows 開始菜單底部輸入 cmd 進入控制臺窗口,執(zhí)行 ping 命令,確認實驗箱的網(wǎng)絡(luò)部分工作正常。
打開瀏覽器輸入網(wǎng)址 http://192.168.0.116,就可以看到網(wǎng)址內(nèi)容。
實驗結(jié)束后,先點擊黃色按鈕暫停程序運行,再點擊紅色按鈕退出CCS與實驗箱的連接,最后實驗箱斷電即可。
