亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ARM7的嵌入式Web服務(wù)器設(shè)計(jì)技術(shù)

        2010-09-25 02:58:20劉濱陳文芳王永才
        關(guān)鍵詞:客戶機(jī)表單報(bào)文

        劉濱,陳文芳,王永才

        (中國(guó)海洋大學(xué) 工程學(xué)院2332實(shí)驗(yàn)室,青島 266100)

        1 概 述

        隨著嵌入式技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,嵌入式設(shè)備通過(guò)網(wǎng)絡(luò)接入局域網(wǎng)或者Internet逐步成為一種發(fā)展趨勢(shì)。嵌入式Web服務(wù)器技術(shù)以其良好的通用性和交互性為嵌入式設(shè)備提供網(wǎng)絡(luò)接口,對(duì)嵌入式設(shè)備實(shí)現(xiàn)遠(yuǎn)程管理和控制,是實(shí)現(xiàn)嵌入式設(shè)備網(wǎng)絡(luò)化的重要技術(shù)。

        本設(shè)計(jì)提出的基于ARM7的嵌入式Web服務(wù)器設(shè)計(jì)有三大技術(shù)亮點(diǎn):

        ①采用瀏覽器/服務(wù)器(B/S)通信架構(gòu)。與客戶機(jī)/服務(wù)器通信架構(gòu)相比,B/S架構(gòu)無(wú)需在客戶端上開(kāi)發(fā)專門的應(yīng)用軟件,只需從瀏覽器上輸入IP地址,直接對(duì)設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控。

        ②傳統(tǒng)的Web服務(wù)器需要一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的支持用來(lái)保存內(nèi)容,因而對(duì)用于存儲(chǔ)的硬件設(shè)備要求更高,增加了成本。本設(shè)計(jì)只需構(gòu)建一個(gè)簡(jiǎn)單的文件系統(tǒng)對(duì)網(wǎng)頁(yè)文件進(jìn)行管理,通過(guò)網(wǎng)頁(yè)轉(zhuǎn)換程序?qū)⒕W(wǎng)頁(yè)文件轉(zhuǎn)換為十六進(jìn)制的可編譯的數(shù)據(jù)結(jié)構(gòu),是一種直接綁定在一個(gè)應(yīng)用程序上面的文件系統(tǒng)。

        ③本設(shè)計(jì)構(gòu)造的Web服務(wù)器提供動(dòng)態(tài)內(nèi)容和動(dòng)態(tài)表單的支持,能滿足一般嵌入式設(shè)備的應(yīng)用要求。

        2 HTTP協(xié)議討論

        HTTP(超文本傳輸協(xié)議)是一種應(yīng)用層協(xié)議。Web服務(wù)器是基于HTTP協(xié)議運(yùn)行的,Web服務(wù)器和Web客戶機(jī)之間通過(guò)HTTP協(xié)議來(lái)進(jìn)行通信。在進(jìn)行通信前,先要建立客戶機(jī)與服務(wù)器之間的連接:?jiǎn)?dòng)Web服務(wù)器,啟動(dòng)后服務(wù)器將監(jiān)聽(tīng)80端口號(hào),Web客戶機(jī)發(fā)送一個(gè)動(dòng)態(tài)隨機(jī)產(chǎn)生的連接端口號(hào)連上服務(wù)器,從而建立一個(gè)通信通道。

        HTTP協(xié)議基于請(qǐng)求/響應(yīng)模式。一個(gè)客戶機(jī)與服務(wù)器建立好連接后,向服務(wù)器發(fā)送一個(gè)請(qǐng)求報(bào)文,服務(wù)器接到請(qǐng)求后給予相應(yīng)的響應(yīng)信息。響應(yīng)信息的格式為一個(gè)狀態(tài)行(包括信息的HTTP協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼),再跟上MIME信息(包括某些通用且詳細(xì)的有關(guān)應(yīng)答的信息,如可選報(bào)頭、報(bào)文報(bào)體等)。HTTP協(xié)議結(jié)構(gòu)如圖1所示。

        3 嵌入式Web服務(wù)器的設(shè)計(jì)

        3.1 嵌入式Web服務(wù)器設(shè)計(jì)思想

        嵌入式Web服務(wù)器主要有以下2個(gè)用途:根據(jù)Web客戶機(jī)的請(qǐng)求為其提供設(shè)備運(yùn)行狀態(tài)、參數(shù);從客戶機(jī)提取控制信息,更改設(shè)備運(yùn)行參數(shù)等。由于嵌入式系統(tǒng)資源的有限性,本文設(shè)計(jì)的Web服務(wù)器具有很強(qiáng)的針對(duì)性,具體包含以下性能:

        圖1 HTTP協(xié)議結(jié)構(gòu)

        ①對(duì)動(dòng)態(tài)內(nèi)容和動(dòng)態(tài)表單的支持,Web服務(wù)器只需處理GET和POST請(qǐng)求方法,無(wú)需提供對(duì)其他請(qǐng)求方法的支持。

        ②用于內(nèi)容保存的“應(yīng)用程序”文件系統(tǒng),即將內(nèi)容文件轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu),直接綁定在一個(gè)應(yīng)用程序上面。

        ③嵌入式Web服務(wù)器只實(shí)現(xiàn)與系統(tǒng)控制相關(guān)的頁(yè)面。

        嵌入式Web服務(wù)器模型層次如圖2所示。

        圖2 嵌入式Web服務(wù)器模型層次

        3.2 對(duì)動(dòng)態(tài)內(nèi)容和動(dòng)態(tài)表單的實(shí)現(xiàn)

        先編寫一個(gè)包含<DATA x>動(dòng)態(tài)標(biāo)志和表單的HTM L文件,再分別編寫動(dòng)態(tài)內(nèi)容處理功能函數(shù)和表單分析處理函數(shù)。在建立HTTP服務(wù)器套接字之前,需要先安裝好自己句柄,將網(wǎng)頁(yè)中的動(dòng)態(tài)標(biāo)識(shí)與其對(duì)應(yīng)的動(dòng)態(tài)內(nèi)容處理功能函數(shù),以及表單標(biāo)識(shí)與表單分析處理函數(shù)相關(guān)聯(lián)。圖2中的動(dòng)態(tài)內(nèi)容/句柄API就是用來(lái)提供變量名/表單名與用戶定義功能之間的聯(lián)系。

        動(dòng)態(tài)內(nèi)容安裝句柄:

        addDynamicContent("temperature",&getTemper);

        表單安裝句柄:

        addDynamicHandler("/control",&myHandler);

        其中,temperature和/control分別為網(wǎng)頁(yè)中的動(dòng)態(tài)內(nèi)容標(biāo)識(shí)和表單標(biāo)識(shí),getTemper和myHandler分別為動(dòng)態(tài)內(nèi)容處理功能函數(shù)和表單分析處理函數(shù)。

        這樣,每當(dāng)有GET請(qǐng)求時(shí),動(dòng)態(tài)內(nèi)容處理功能函數(shù)的返回值將替代動(dòng)態(tài)標(biāo)志的值嵌入到內(nèi)容流中。每當(dāng)有POST請(qǐng)求時(shí),表單分析處理函數(shù)調(diào)用parseVarialbe功能,簡(jiǎn)單地在內(nèi)容中查找變量名。一旦發(fā)現(xiàn),這個(gè)值便被復(fù)制到用戶緩沖器中,直到發(fā)現(xiàn)分界符“&”。POST構(gòu)造一個(gè)包括報(bào)體的HTTP請(qǐng)求報(bào)文,發(fā)送給Web服務(wù)器。該報(bào)文按照鍵值對(duì)其進(jìn)行組裝,使用符號(hào)“&”分隔。

        3.3 嵌入式Web服務(wù)器主程序

        嵌入式Web服務(wù)器主程序流程如圖3所示。本設(shè)計(jì)中使用的Web服務(wù)器套接字是典型的TCP流套接字。通過(guò)socket()創(chuàng)建一個(gè)套接字,使用bind()將該套接字綁定在80端口上,通過(guò)listen()設(shè)定監(jiān)聽(tīng)的連接數(shù),最后調(diào)用accept()等待Web客戶機(jī)的連接請(qǐng)求。一個(gè)套接字支持一個(gè)請(qǐng)求,不能支持永久型連接。當(dāng)服務(wù)器接收到一個(gè)連接時(shí),功能函數(shù)handleConnection()對(duì)用戶請(qǐng)求進(jìn)行解析,根據(jù)返回的內(nèi)容關(guān)閉客戶機(jī)套接字,然后等待另一個(gè)套接字請(qǐng)求。

        對(duì)handleConnection()功能函數(shù)(請(qǐng)求報(bào)文分析程序)分析如下:

        ①在HTTP請(qǐng)求報(bào)文中進(jìn)行讀操作,從該套接字循環(huán)讀取,直到滿足以下兩個(gè)條件之一:查找到Content_Length報(bào)頭,確定報(bào)文報(bào)體大小;請(qǐng)求若為post方法,簡(jiǎn)單地查找+QUERY文本。

        ②處理HTTP請(qǐng)求類型。對(duì)請(qǐng)求報(bào)文的第一個(gè)令牌進(jìn)行識(shí)別。如果為GET請(qǐng)求,則從中分析請(qǐng)求的文件名,使用lookupFilename()功能函數(shù)查找該文件名,若沒(méi)有則發(fā)送適當(dāng)?shù)臓顟B(tài)碼給請(qǐng)求者,若有則調(diào)用 returnFile原語(yǔ)通過(guò)套接字來(lái)發(fā)送請(qǐng)求文件。如果為 HTTP POST請(qǐng)求,則再次分析文件名,然后通過(guò)callDynamicHandle功能函數(shù)調(diào)用一個(gè)用戶定義的功能處理請(qǐng)求。若既非GET請(qǐng)求,也非POST請(qǐng)求,則返回狀態(tài)碼“not implemented”。

        圖3 嵌入式Web服務(wù)器主程序流程

        4 應(yīng)用程序文件系統(tǒng)的構(gòu)造

        本設(shè)計(jì)使用一個(gè)特殊的buildfs應(yīng)用程序?qū)⒕W(wǎng)頁(yè)文件編譯為順序的數(shù)據(jù)結(jié)構(gòu),它將網(wǎng)頁(yè)文件所在的目錄路徑作為變量,將這個(gè)變量作為內(nèi)容樹(shù)的根。遍歷內(nèi)容樹(shù),將遇到的每個(gè)文件累計(jì)到應(yīng)用程序文件系統(tǒng)結(jié)構(gòu)中,并寫入文件filedata.c。文件filedata.c作為工程文件的一部分,一同被編譯、下載到硬件上。buildfs生成的應(yīng)用程序文件系統(tǒng)結(jié)構(gòu)如表1所列。當(dāng)定位一個(gè)文件時(shí),只需找到文件報(bào)頭,將文件項(xiàng)目的文件名和源文件名進(jìn)行比較。若文件匹配,則可將后來(lái)檢索的元素調(diào)出。

        表1 應(yīng)用程序文件系統(tǒng)結(jié)構(gòu)

        本設(shè)計(jì)采用HTM L語(yǔ)言設(shè)計(jì)的嵌入式網(wǎng)頁(yè)文件如圖4所示。使用buildfs應(yīng)用程序生成該網(wǎng)頁(yè)文件的數(shù)據(jù)結(jié)構(gòu),如圖5所示。

        圖4 Web瀏覽器打開(kāi)的網(wǎng)頁(yè)文件

        5 測(cè)試HTTP服務(wù)器的應(yīng)用實(shí)例

        本設(shè)計(jì)的軟件平臺(tái)構(gòu)成如圖6所示。硬件平臺(tái)由NXP公司的32位ARM7微處理器LPC2210和RTL8019AS網(wǎng)卡芯片構(gòu)成,如圖7所示。LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和嵌入跟蹤的32/16位ARM7TDMI-S CPU。

        圖5 網(wǎng)頁(yè)文件數(shù)據(jù)結(jié)構(gòu)

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

        圖6 服務(wù)器實(shí)例軟件平臺(tái)構(gòu)成

        圖7 服務(wù)器實(shí)例硬件平臺(tái)構(gòu)成

        結(jié) 語(yǔ)

        本文介紹了基于ARM7微處理器LPC2210的嵌入式Web服務(wù)器的設(shè)計(jì)方法,并用一個(gè)應(yīng)用實(shí)例對(duì)其進(jìn)行了驗(yàn)證。結(jié)果表明,該方法是可行的,可用于對(duì)嵌入式設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控的應(yīng)用中。

        [1]Jones M Tim.嵌入式系統(tǒng)TCP/IP應(yīng)用層協(xié)議[M].北京:電子工業(yè)出版社,2003.

        [2]周立功,等.ARM與嵌入式系統(tǒng)基礎(chǔ)編程,2004.

        [3]周立功,等.嵌入式系統(tǒng)軟件開(kāi)發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2004.

        猜你喜歡
        客戶機(jī)表單報(bào)文
        Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
        基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
        汽車電器(2022年9期)2022-11-07 02:16:24
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
        淺析反駁類報(bào)文要點(diǎn)
        淺談網(wǎng)頁(yè)制作中表單的教學(xué)
        ATS與列車通信報(bào)文分析
        基于Infopath實(shí)現(xiàn)WEB動(dòng)態(tài)表單的研究
        電子世界(2012年24期)2012-12-17 10:49:06
        動(dòng)態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
        瘦客戶機(jī):安全與便捷的選擇
        国产精品免费观看调教网| 天天中文字幕av天天爽| 欧美xxxxx精品| 五十路在线中文字幕在线中文字幕| 在线免费看91免费版.| 射精区-区区三区| 中文亚洲欧美日韩无线码| 亚洲国产欧美日韩一区二区| 国内精品久久久久久中文字幕 | 国产精品毛片一区二区三区| 亚洲av熟女少妇久久| 久久久久国产综合av天堂| 国产精品综合一区二区三区| 亚洲熟妇av乱码在线观看| 一区二区三区不卡免费av| 毛片精品一区二区二区三区| 色综合久久中文字幕综合网| 色婷婷五月综合激情中文字幕| 在线看无码的免费网站| 初女破初的视频| 四虎影库久免费视频| 国产真人无遮挡免费视频| 久久精品国产亚洲精品色婷婷| 中文日本强暴人妻另类视频| 内射人妻无套中出无码| 日本50岁丰满熟妇xxxx| 国产视频最新| 中文字幕一区,二区,三区| 中文字幕一区乱码在线观看| 人禽杂交18禁网站免费| 天天天天躁天天爱天天碰| 丰满人妻妇伦又伦精品国产 | 亚洲欧美日韩精品久久亚洲区| 亚洲人成18禁网站| 少妇性l交大片免费1一少| 精品熟人妻一区二区三区四区不卡| 97精品国产一区二区三区| 久久久精品人妻一区二区三区四| 亚洲国产精品无码久久九九大片健 | 免费国产在线精品一区二区三区免 | 国产 中文 制服丝袜 另类|