《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
美国成人毛片| 国产日韩欧美中文| 午夜视频一区在线观看| 亚洲毛片一区| 亚洲国内精品在线| 久久精品一区二区三区中文字幕| 亚洲男人av电影| 亚洲性线免费观看视频成熟| 一区二区三区日韩欧美| 日韩亚洲国产精品| 亚洲免费观看高清在线观看| 亚洲精品美女在线观看| 最新国产成人在线观看| 亚洲精品系列| 亚洲乱码国产乱码精品精98午夜| 亚洲人成在线播放网站岛国| 亚洲经典视频在线观看| 亚洲第一色中文字幕| 136国产福利精品导航网址| 亚洲国产国产亚洲一二三| 在线欧美电影| 91久久久久久| 999亚洲国产精| 在线亚洲欧美专区二区| 日韩一级精品视频在线观看| 一区二区三区高清在线| 亚洲天堂偷拍| 性8sex亚洲区入口| 久久精品国产视频| 91久久久久| aⅴ色国产欧美| 亚洲女优在线| 久久黄色网页| 欧美**字幕| 欧美日韩国产探花| 国产精品久久久久久久久久免费| 国产精品美女久久久久av超清 | 午夜激情一区| 欧美在线播放视频| 久久免费视频一区| 欧美另类视频| 国产精品一区二区你懂得| 国产真实精品久久二三区 | 亚洲国产专区校园欧美| 亚洲免费精品| 亚洲欧美日韩直播| 亚洲国产精品一区二区尤物区| 亚洲电影专区| 一本色道综合亚洲| 性欧美xxxx视频在线观看| 久久婷婷国产麻豆91天堂| 欧美精品亚洲一区二区在线播放| 欧美特黄一区| 国内精品国语自产拍在线观看| 亚洲国产精彩中文乱码av在线播放| 亚洲毛片在线观看| 香蕉亚洲视频| 99精品欧美一区二区三区| 午夜视频一区在线观看| 两个人的视频www国产精品| 欧美日韩综合在线免费观看| 国产色综合网| 亚洲美女在线国产| 久久精品官网| 亚洲午夜精品久久| 免费美女久久99| 国产精品久久久爽爽爽麻豆色哟哟| 黄网站色欧美视频| 在线视频日本亚洲性| 亚洲成人自拍视频| 亚洲一级黄色| 久热精品在线| 国产精品美腿一区在线看| 在线观看欧美日本| 亚洲欧美国产高清| 一本久道久久久| 每日更新成人在线视频| 国产精品网站在线观看| 亚洲国产精品女人久久久| 亚洲在线成人精品| 99视频精品免费观看| 久久夜精品va视频免费观看| 国产精品乱码一区二三区小蝌蚪 | 久久影院亚洲| 国产精品另类一区| 亚洲人成在线播放| 亚洲二区在线视频| 欧美一级大片在线观看| 欧美日韩成人综合天天影院| 在线观看91精品国产入口| 亚洲男女自偷自拍图片另类| 这里只有精品丝袜| 欧美国产在线观看| 黑丝一区二区三区| 翔田千里一区二区| 欧美一区永久视频免费观看| 欧美性猛交视频| 亚洲精品午夜精品| 亚洲乱码精品一二三四区日韩在线| 久久国产精品久久w女人spa| 欧美亚洲成人免费| 亚洲美女黄色| 亚洲精品一区在线| 免费在线观看精品| 一区二区三区在线高清| 性做久久久久久久久| 亚洲欧美日韩精品| 欧美午夜不卡影院在线观看完整版免费| 亚洲高清视频在线观看| 亚洲国产日韩一区| 噜噜爱69成人精品| 国内视频一区| 久久精品亚洲国产奇米99| 久久精品91| 国产美女精品一区二区三区| 中文一区二区| 亚洲免费视频在线观看| 欧美亚洲成人精品| 国产精品99久久不卡二区| 亚洲线精品一区二区三区八戒| 欧美另类videos死尸| 亚洲精品国产精品国自产观看| 亚洲精品乱码久久久久久按摩观| 老鸭窝91久久精品色噜噜导演| 激情婷婷久久| 亚洲高清视频在线| 毛片av中文字幕一区二区| 悠悠资源网亚洲青| 亚洲欧洲精品天堂一级| 欧美成年人视频| 亚洲经典一区| 国产精品99久久久久久久久久久久| 欧美日韩和欧美的一区二区| 亚洲美女视频网| 亚洲综合欧美日韩| 国产欧美精品一区二区三区介绍| 午夜精品一区二区三区在线播放| 欧美一区二区黄| 国产在线观看精品一区二区三区| 欧美专区在线观看一区| 老司机成人网| 亚洲精品中文字幕有码专区| 亚洲一区bb| 国产美女精品人人做人人爽| 久久xxxx| 欧美国产另类| 夜夜嗨av一区二区三区四区 | 国产欧美精品日韩区二区麻豆天美| 午夜在线视频一区二区区别| 久久久久久久一区二区三区| 影音先锋日韩有码| 一区二区三区国产盗摄| 国产精品久久久亚洲一区 | 亚洲欧洲一区二区天堂久久| 欧美激情视频一区二区三区不卡| 亚洲精品中文字幕在线观看| 午夜精品影院| 狠色狠色综合久久| 一本久久知道综合久久| 国产精品一区二区你懂得| 亚洲国产精品精华液网站| 欧美极品在线视频| 亚洲一区二区三区免费视频 | 91久久国产综合久久蜜月精品| 亚洲综合大片69999| 韩国av一区二区三区在线观看| 亚洲久久一区二区| 国产精品久久久久久久9999| 久久成人一区| 欧美日韩亚洲一区三区| 欧美一区在线直播| 欧美日韩1区2区3区| 亚洲欧美日韩国产成人| 欧美ab在线视频| 中文亚洲视频在线| 免费一级欧美片在线观看| 亚洲私拍自拍| 男人的天堂亚洲| 亚洲在线视频免费观看| 美女主播一区| 亚洲综合激情| 欧美精品一区二区三区一线天视频| 亚洲字幕在线观看| 欧美二区乱c少妇| 亚洲一卡二卡三卡四卡五卡| 久久综合五月| 亚洲男人的天堂在线观看| 欧美韩日视频| 欧美一区二区三区免费视| 欧美人在线视频| 久久大香伊蕉在人线观看热2| 欧美日韩一本到| 亚洲国产你懂的| 国产欧美精品日韩区二区麻豆天美 | 亚洲精品视频免费| 国产一区二区三区在线观看网站 | 久久精品人人爽| 国产精品视频精品视频| 妖精视频成人观看www| 一区二区在线观看av|