《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 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亚洲国产精品_日韩亚洲一区二区
亚洲毛片视频| 国内外成人免费激情在线视频网站 | 国语自产精品视频在线看8查询8 | 国产区精品视频| 久久久久国产精品一区二区| 91久久亚洲| 一区二区三区精品久久久| 国产精品综合色区在线观看| 美日韩精品视频免费看| 一区二区三区成人精品| 亚洲欧美日韩另类精品一区二区三区 | 国产亚洲精品一区二555| 蜜臀久久久99精品久久久久久| 久久精品视频导航| 欧美一区亚洲二区| 亚洲美女精品一区| 亚洲在线一区| 亚洲国产日韩欧美在线99| 国产精品久久久久久久久久久久久| 久久精品视频亚洲| 久久久精品五月天| 美女视频一区免费观看| 欧美成人首页| 欧美亚洲网站| 亚洲免费观看在线视频| 性8sex亚洲区入口| 日韩一级网站| 伊伊综合在线| 国产精品日韩一区二区| 欧美激情中文字幕一区二区| 久久精品91久久久久久再现| 99视频一区二区| 欧美在线www| 一区二区日韩| 亚洲性视频网址| 亚洲另类一区二区| 在线亚洲电影| 欧美在线观看视频一区二区三区 | 亚洲欧美日韩综合| 亚洲伦伦在线| 中日韩视频在线观看| 亚洲国产综合91精品麻豆| 亚洲无限av看| 亚洲精品国久久99热| 国产一区二区三区丝袜| 在线欧美一区| 国内外成人在线| 91久久精品www人人做人人爽| 99精品99久久久久久宅男| 亚洲一区亚洲| 亚洲国产精品专区久久| 中国女人久久久| 久久久久久久久久码影片| 篠田优中文在线播放第一区| 久久精品视频免费播放| 欧美激情精品久久久久久黑人| 久久伊人精品天天| 欧美一区二区精品久久911| 久久人人爽人人爽爽久久| 欧美女激情福利| 欧美国产1区2区| 国产精品久久久久aaaa樱花| 雨宫琴音一区二区在线| 一区二区三区不卡视频在线观看| 久久国产精品99国产| 午夜精品久久久久久久久| 亚洲香蕉视频| 最新高清无码专区| 香蕉尹人综合在线观看| 欧美激情二区三区| 国产午夜精品视频| 国产亚洲一区在线| 日韩系列欧美系列| 亚洲国产精品尤物yw在线观看| 亚洲欧美视频| 欧美激情按摩| 激情成人综合网| 亚洲一区二区三区久久| 亚洲日本电影| 99精品国产一区二区青青牛奶 | 欧美亚洲午夜视频在线观看| 欧美高清在线视频观看不卡| 国产日韩精品一区二区三区在线| 亚洲伦理久久| 亚洲高清在线视频| 亚洲国产精品第一区二区| 亚洲一区二区三区四区中文| 亚洲午夜在线视频| 亚洲在线观看视频网站| 欧美大胆成人| 精品二区视频| 91久久精品日日躁夜夜躁国产| 亚洲欧美精品伊人久久| 亚洲视频欧美在线| 免费看成人av| 欧美久久久久久久| 一区精品在线播放| 欧美一区二区三区喷汁尤物| 亚洲欧美综合| 欧美日韩国产二区| 国产精品视频一区二区三区| av成人毛片| 午夜一区不卡| 亚洲欧美在线另类| 国产精品av一区二区| 国产一区二区精品| 亚洲专区在线| 亚洲综合999| 久久亚洲私人国产精品va| 国产精品自在欧美一区| 亚洲伊人伊色伊影伊综合网| 亚洲一区二区伦理| 欧美日韩视频不卡| 国产色综合久久| 亚洲欧美另类综合偷拍| 午夜精品亚洲| 国产精品久久久久久久app| 一本色道久久综合亚洲精品不卡| 在线亚洲欧美| 欧美日韩午夜| 99re在线精品| 亚洲无人区一区| 欧美三日本三级三级在线播放| 国产美女精品视频免费观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产情侣久久| 久久成人资源| 免费亚洲一区| 亚洲韩国精品一区| 一本一本a久久| 国产精品h在线观看| 亚洲午夜视频| 久久精品夜色噜噜亚洲a∨| 国内成人精品一区| 亚洲国产专区| 欧美精品三区| 在线一区二区日韩| 欧美影院一区| 欧美日韩ab| aa级大片欧美| 欧美一区二区高清| 黄色一区二区在线观看| 亚洲精品欧美极品| 欧美视频日韩视频| 亚洲资源在线观看| 久久尤物视频| 亚洲美女中文字幕| 亚洲欧美日韩综合aⅴ视频| 国产一区二区日韩精品欧美精品| 亚洲动漫精品| 欧美精品一区二区三区在线播放| 一区二区三区四区五区精品| 欧美在线你懂的| 亚洲第一区色| 亚洲一区自拍| 黄色在线成人| 亚洲线精品一区二区三区八戒| 国产精品自拍一区| 最新日韩在线| 国产精品视频区| 亚洲国产精品视频| 欧美天堂亚洲电影院在线播放| 亚洲欧美日韩视频二区| 欧美成人精品一区二区| 亚洲无限av看| 男女精品视频| 亚洲午夜精品久久| 玖玖视频精品| 国产综合视频| 一本色道久久99精品综合| 国产欧美日韩中文字幕在线| 亚洲三级国产| 国产欧美一区二区色老头| 亚洲卡通欧美制服中文| 国产伦精品一区二区三区照片91| 亚洲精品国产精品国自产观看| 国产精品久久久久久亚洲调教| 一区二区三区四区在线| 久久久天天操| 国产精品99久久久久久久久久久久 | 亚洲一区二区三区中文字幕在线 | 亚洲三级视频| 国产女主播一区二区| 日韩视频精品在线| 国产主播喷水一区二区| 亚洲影音先锋| 亚洲国产精品久久久久秋霞影院| 亚洲第一在线| 国产精品久久久久影院色老大| 亚洲欧洲美洲综合色网| 国产精品一区在线观看| 在线亚洲欧美| 亚洲电影中文字幕| 久久久久成人精品免费播放动漫| 亚洲最新在线视频| 欧美电影在线| 亚洲国产精品一区在线观看不卡| 国产精品视频一| 亚洲图片欧洲图片日韩av| 亚洲国产片色|