《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > ARM7的嵌入式Web服務器設計技術
ARM7的嵌入式Web服務器設計技術
現代電子技術
劉 濱,陳文芳,王永才 中國海洋大學
摘要: 主要介紹嵌入式Web服務器技術的設計思想和軟件設計流程,以及應用程序文件系統的構造,將網頁文件轉化為可編譯的數據結構;并以32位ARM7微處理器LPC2210為硬件平臺,在源碼公開的ZLG/IP軟件包的支持下,給出了一個嵌入式Web服務器的應用實例。
Abstract:
Key words :

摘要:主要介紹嵌入式Web服務器技術的設計思想和軟件設計流程,以及應用程序文件系統的構造,將網頁文件轉化為可編譯的數據結構;并以32位ARM7微處理器LPC2210為硬件平臺,在源碼公開的ZLG/IP軟件包的支持下,給出了一個嵌入式Web服務器的應用實例。
關鍵詞:Web服務器;應用程序文件系統;LPC2210;ZLG/IP軟件包

1 概述
    隨著嵌入式技術和網絡技術的發展,嵌入式設備通過網絡接入局域網或者Internet逐步成為一種發展趨勢。嵌入式Web服務器技術以其良好的通用性和交互性為嵌入式設備提供網絡接口,對嵌入式設備實現遠程管理和控制,是實現嵌入式設備網絡化的重要技術。
    本設計提出的基于ARM7的嵌入式Web服務器設計有三大技術亮點:
    ①采用瀏覽器/服務器(B/S)通信架構。與客戶機/服務器通信架構相比,B/S架構無需在客戶端上開發專門的應用軟件,只需從瀏覽器上輸入IP地址,直接對設備進行遠程監控。
    ②傳統的Web服務器需要一個數據庫系統的支持用來保存內容,因而對用于存儲的硬件設備要求更高,增加了成本。本設計只需構建一個簡單的文件系統對網頁文件進行管理,通過網頁轉換程序將網頁文件轉換為十六進制的可編譯的數據結構,是一種直接綁定在一個應用程序
上面的文件系統。
    ③本設計構造的Web服務器提供動態內容和動態表單的支持,能滿足一般嵌入式設備的應用要求。

2 HTTP協議討論
    HTTP(超文本傳輸協議)是一種應用層協議。Web服務器是基于HTTP協議運行的,Web服務器和Web客戶機之間通過HTTP協議來進行通信。在進行通信前,先要建立客戶機與服務器之間的連接:啟動Web服務器,啟動后服務器將監聽80端口號,Web客戶機發送一個動態隨機產生的連接端口號連上服務器,從而建立一個通信通道。
    HTTP協議基于請求/響應模式。一個客戶機與服務器建立好連接后,向服務器發送一個請求報文,服務器接到請求后給予相應的響應信息。響應信息的格式為一個狀態行(包括信息的HTTP協議版本號、一個成功或錯誤的代碼),再跟上MIME信息(包括某些通用且詳細的有關應答的信息,如可選報頭、報文報體等)。HTTP協議結構如圖1所示。

3a.JPG

3 嵌入式Web服務器的設計
3.1 嵌入式Web服務器設計思想
    嵌入式Web服務器主要有以下2個用途:根據Web客戶機的請求為其提供設備運行狀態、參數;從客戶機提取控制信息,更改設備運行參數等。由于嵌入式系統資源的有限性,本文設計的Web服務器具有很強的針對性,具體包含以下性能:
    ①對動態內容和動態表單的支持,Web服務器只需處理GET和POST請求方法,無需提供對其他請求方法的支持。
    ②用于內容保存的“應用程序”文件系統,即將內容文件轉換成數據結構,直接綁定在一個應用程序上面。
    ③嵌入式Web服務器只實現與系統控制相關的頁面。
    嵌入式Web服務器模型層次如圖2所示。

3b.JPG


3.2 對動態內容和動態表單的實現
    先編寫一個包含動態標志和表單的HTML文件,再分別編寫動態內容處理功能函數和表單分析處理函數。在建立HTTP服務器套接字之前,需要先安裝好自己句柄,將網頁中的動態標識與其對應的動態內容處理功能函數,以及表單標識與表單分析處理函數相關聯。圖2中的動態內容/句柄API就是用來提供變量名/表單名與用戶定義功能之間的聯系。
    動態內容安裝句柄:
    addDynamicContent(“temperature”,&getTemper);
    表單安裝句柄:
    addDynamicHandler("/control",&myHandler);
    其中,temperature和/control分別為網頁中的動態內容標識和表單標識,getTemper和myHandler分別為動態內容處理功能函數和表單分析處理函數。
    這樣,每當有GET請求時,動態內容處理功能函數的返回值將替代動態標志的值嵌入到內容流中。每當有POST請求時,表單分析處理函數調用parseVarialbe功能,簡單地在內容中查找變量名。一旦發現,這個值便被復制到用戶緩沖器中,直到發現分界符“&”。POST構造一個包括報體的HTTP請求報文,發送給Web服務器。該報文按照鍵值對其進行組裝,使用符號“&”分隔。
3.3 嵌入式Web服務器主程序
    嵌入式Web服務器主程序流程如圖3所示。本設計中使用的Web服務器套接字是典型的TCP流套接字。通過socket()創建一個套接字,使用bind()將該套接字綁定在80端口上,通過listen()設定監聽的連接數,最后調用accept()等待Web客戶機的連接請求。一個套接字支持一個請求,不能支持永久型連接。當服務器接收到一個連接時,功能函數handleConnection()對用戶請求進行解析,根據返回的內容關閉客戶機套接字,然后等待另一個套接字請求。

3c.JPG


    對handleConneetion()功能函數(請求報文分析程序)分析如下:
    ①在HTTP請求報文中進行讀操作,從該套接字循環讀取,直到滿足以下兩個條件之一:查找到Content_Length報頭,確定報文報體大小;請求若為post方法,簡單地查找+QUERY文本。
    ②處理HTTP請求類型。對請求報文的第一個令牌進行識別。如果為GET請求,則從中分析請求的文件名,使用lookupFilename()功能函數查找該文件名,若沒有則發送適當的狀態碼給請求者,若有則調用returnFile原語通過套接字來發送請求文件。如果為HTTP POST請求,則再次分析文件名,然后通過call Dynamic Handle功能函數調用一個用戶定義的功能處理請求。若既非GET請求,也非POST請求,則返回狀態碼“not implemented”。

4 應用程序文件系統的構造
    本設計使用一個特殊的buildfs應用程序將網頁文件編譯為順序的數據結構,它將網頁文件所在的目錄路徑作為變量,將這個變量作為內容樹的根。遍歷內容樹,將遇到的每個文件累計到應用程序文件系統結構中,并寫入文件filedata.c。文件filedata.c作為工程文件的一部分,一同被編譯、下載到硬件上。buildfs生成的應用程序文件系統結構如表1所列。當定位一個文件時,只需找到文件報頭,將文件項目的文件名和源文件名進行比較。若文件匹配,則可將后來檢索的元素調出。

3d.JPG


    本設計采用HTML語言設計的嵌入式網頁文件如圖4所示。使用buildfs應用程序生成該網頁文件的數據結構,如圖5所示。

3e.JPG

3f.JPG

5 測試HTTP服務器的應用實例
    本設計的軟件平臺構成如圖6所示。硬件平臺由NXP公司的32位ARM7微處理器LPC2210和RTL8019AS網卡芯片構成,如圖7所示。LPC2210是基于一個支持實時仿真和嵌入跟蹤的32/16位ARM7TDMI-SCPU。

3g.JPG

3h.JPG


    圖6中TCP/IP協議棧使用周立功公司提供的ZLG/IP軟件包。修改軟件包中的cfg_net.h文件,子網掩碼設置為與PC機相同,IP地址設置為192.168.0.174(與PC機同一網段),網關設為PC機的IP地址。用雙絞線將PC機與RJ45以太網接口相連,啟動微處理器LPC2210。在PC機上打開Web瀏覽器,在地址欄輸入http://192.168.O.174/server.html,將出現如圖4所示的網頁文件。此時,測得的室內溫度為26 ℃。
    在Parameters Setring欄中輸入預設溫度和開關的開或關,單擊Upload按鈕,在Web服務器的表單分析程序中會將預設值和開關值復制到用戶緩沖器中,從而進行相應的處理。

結語
    本文介紹了基于ARM7微處理器LPC2210的嵌入式Web服務器的設計方法,并用一個應用實例對其進行了驗證。結果表明,該方法是可行的,可用于對嵌入式設備進行遠程監控的應用中。
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲一区欧美二区 | 国产偷国产偷亚洲高清午夜 | 美女被男人cao的爽视频黄 | 国产成人一区二区三区在线视频 | 日本乱人伦片中文字幕三区 | 中文字幕成人免费视频 | 久久一区二区三区不卡 | 精品在线免费观看 | 欧美成人免费全部观看天天性色 | 99久久综合狠狠综合久久一区 | 真人一级一级特黄高清毛片 | 日韩视频在线观看一区二区 | 欧美在线1 | 国产孕妇孕交大片孕 | 日本亲子乱子伦视频 | 国产人成精品综合欧美成人 | 欧美性色生活免费观看 | 热久久91| 久草视频资源在线观看 | 精品国产香蕉在线播出 | 国产欧美日韩中文久久 | 免费午夜扒丝袜www在线看 | 亚洲国产欧洲综合997久久 | 久久久久国产一级毛片高清板 | 美女很黄很黄是免费的·无遮挡网站 | 黄色天堂在线 | 国产草草影院 | 亚洲欧美日韩精品久久久 | 草草影院www色欧美极品 | 一级做a爱片特黄在线观看免费看 | 国产a国产片国产 | 国产精品亚洲精品不卡 | 亚洲看片网 | 2022年国产精品久久久久 | 99久女女精品视频在线观看 | 国产精品自在自线 | 亚洲国产精品成人综合久久久 | 高清毛片一区二区三区 | 毛片在线免费播放 | 性欧美美国级毛片 | 亚洲欧美自拍一区 |