• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 探析嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

        時(shí)間:2024-08-28 10:50:16 網(wǎng)絡(luò)工程畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        探析嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

          一、引言

          嵌入式Web服務(wù)器(Embedded Web Server,EWS)是指將Web服務(wù)器嵌入到現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備。嵌入式Web服務(wù)器簡(jiǎn)化了傳統(tǒng)服務(wù)器的系統(tǒng)結(jié)構(gòu),在嵌入式設(shè)備上它同時(shí)實(shí)現(xiàn)信息傳輸和網(wǎng)絡(luò)接口的功能。嵌入式Web服務(wù)器基于HTTP協(xié)議運(yùn)作,有標(biāo)準(zhǔn)的接口形式和通信協(xié)議。它可以向任何接入它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面。Web技術(shù)的開放性和平臺(tái)的獨(dú)立特性能夠降低開發(fā)難度,減少軟件系統(tǒng)和通信系統(tǒng)的設(shè)計(jì)維護(hù)工作量,提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平。

          二、嵌入式WEB服務(wù)器總體設(shè)計(jì)方案

          接入Internet有很多種接入方式:電話撥號(hào)接入、ISDN, ADSL、以太網(wǎng)接入等,其中以太網(wǎng)作為一種廉價(jià)、高效的Internet接入方式,已經(jīng)得到了非常廣泛的應(yīng)用,本文的Internet接入采用以太網(wǎng)方式。

          將TCP/IP協(xié)議棧嵌入到單片機(jī)中,使用網(wǎng)絡(luò)控制芯片實(shí)現(xiàn)單片機(jī)的上網(wǎng)和數(shù)據(jù)傳輸。利用網(wǎng)絡(luò)單片機(jī)(嵌入了TCP/IP協(xié)議棧的單片機(jī))可以實(shí)現(xiàn)很多功能,嵌入式Web服務(wù)器就是其中的一種。通過(guò)Web服務(wù)器,客戶端瀏覽器可以瀏覽這些設(shè)備的動(dòng)態(tài)信息,并且還可以實(shí)現(xiàn)與系統(tǒng)的交互功能。

          (一)嵌入式Web服務(wù)器的一般結(jié)構(gòu)

          嵌入式Web服務(wù)器的設(shè)計(jì)通常以通用Web服務(wù)器系統(tǒng)結(jié)構(gòu)為藍(lán)本,根據(jù)嵌入式系統(tǒng)的特性進(jìn)行優(yōu)化。嵌入式Web服務(wù)器的硬件系統(tǒng)包含了Web通信功能的微處理器或者微控制器系統(tǒng),它可以和前端的應(yīng)用系統(tǒng)直接集成在一起,也可以通過(guò)現(xiàn)場(chǎng)總線與應(yīng)用系統(tǒng)相連。

          一個(gè)完整的硬件系統(tǒng)由微型處理器、FLASH存儲(chǔ)器、DRAM存儲(chǔ)器、網(wǎng)絡(luò)接口和前端應(yīng)用系統(tǒng)硬件所組成。微型處理器負(fù)責(zé)全局的運(yùn)行和管理,F(xiàn)LASH存儲(chǔ)器用來(lái)存儲(chǔ)實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP協(xié)議棧、各種Web文檔;DRAM存儲(chǔ)器在系統(tǒng)運(yùn)行時(shí)使用;網(wǎng)絡(luò)接口實(shí)現(xiàn)與Internet的連接;前端應(yīng)用系統(tǒng)的硬件完成傳統(tǒng)意義上的應(yīng)用功能。

          由于嵌入式系統(tǒng)硬件資源有限,嵌入式Web服務(wù)器的硬件結(jié)構(gòu)不能很復(fù)雜,實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP協(xié)議棧、各種Web文檔都必須存儲(chǔ)在FLASH中,這對(duì)軟件系統(tǒng)設(shè)計(jì)提出了較高的要求。嵌入式Web服務(wù)器應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)如圖1所示:

          網(wǎng)絡(luò)接口

          微處理器

          SDRAM

          FLASH

          前端應(yīng)用系統(tǒng)硬件

          圖1嵌入式W比服務(wù)器應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)

          (二)系統(tǒng)的硬件設(shè)計(jì)方案

          LPC2132微控制器是所設(shè)計(jì)的嵌入式Web服務(wù)器的核心,一方面LPC2132微控制器內(nèi)部要實(shí)現(xiàn)TCP/IP協(xié)議棧,并驅(qū)動(dòng)網(wǎng)絡(luò)接口控制器ENC28J60,經(jīng)耦合隔離變壓器H1102和以太網(wǎng)以實(shí)現(xiàn)Internet接入;另一方面,LPC2132微控制器又是相應(yīng)控制系統(tǒng)的控制單元。

          由于以太網(wǎng)的廣泛使用,本文選擇了最為常用的Internet接入方式,即通過(guò)以太網(wǎng)接入Internet。由美國(guó)Microchip公司生產(chǎn)的以太網(wǎng)控制芯片ENC28J60是本設(shè)計(jì)所選擇的網(wǎng)絡(luò)接口控制器,它集成了介質(zhì)訪問(wèn)控制子層和物理層的功能,主要完成網(wǎng)絡(luò)接口層中數(shù)據(jù)幀的發(fā)送和接收。

          H1102是一款耦合隔離變壓器,用來(lái)對(duì)網(wǎng)絡(luò)上的脈沖進(jìn)行轉(zhuǎn)換和濾波。H1102聯(lián)接RJ45接頭,可以直接接入以太網(wǎng)。

          串行電平轉(zhuǎn)換模塊選用了Maxim公司出品的MAXSP3232E芯片。該芯片內(nèi)部含有倍增電路和轉(zhuǎn)換電路,只需+5V電源供電即可實(shí)現(xiàn)TTL電平到RS232C電平的轉(zhuǎn)換。RS232串口一方面是作為開發(fā)調(diào)試用的,一方面可以作為相應(yīng)的通信應(yīng)用。

          I/O口擴(kuò)展包括系統(tǒng)的LED顯示電路、JTAG調(diào)試電路以及其他測(cè)試電路等。

          (三)系統(tǒng)的軟件設(shè)計(jì)方案

          Web服務(wù)器是在嵌入式TCP/IP協(xié)議棧的基礎(chǔ)上實(shí)現(xiàn)的一種應(yīng)用程序。從系統(tǒng)軟件工作過(guò)程來(lái)看,可將系統(tǒng)分三部分:第一部分,以太網(wǎng)控制器驅(qū)動(dòng)程序的實(shí)現(xiàn);第二部分:嵌入式TCP/IP協(xié)議的實(shí)現(xiàn),這部分內(nèi)容在第一部分的基礎(chǔ)上,結(jié)合系統(tǒng)具體環(huán)境,對(duì)標(biāo)準(zhǔn)TCP/IP協(xié)議進(jìn)行簡(jiǎn)化并在ARM7單片機(jī)上進(jìn)行移植;第三部分:應(yīng)用層部分,通過(guò)嵌入式TCP/IP協(xié)議對(duì)用戶數(shù)據(jù)進(jìn)行收發(fā)處理。這里是在應(yīng)用層實(shí)現(xiàn)HTTP協(xié)議來(lái)完成Web服務(wù)器功能的。

          所以系統(tǒng)軟件設(shè)計(jì)部分主要包括了以太網(wǎng)控制器的驅(qū)動(dòng)程序、嵌入式TCP/IP協(xié)議棧以及動(dòng)態(tài)web網(wǎng)頁(yè)的實(shí)現(xiàn)等幾個(gè)模塊:

          (1)以太網(wǎng)控制器驅(qū)動(dòng)程序是指LPC2132微控制器對(duì)ENC28J60芯片的驅(qū)動(dòng)、控制過(guò)程。

          (2)在LPC2132微控制器內(nèi)部嵌入TCP/IP協(xié)議棧是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵,它主要包括了ARP, ICMP, IP, TCP和HTTP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)。

          (3)動(dòng)態(tài)網(wǎng)頁(yè)的實(shí)現(xiàn)。使用CGI技術(shù),可以實(shí)現(xiàn)動(dòng)態(tài)信息的交換,從而達(dá)到遠(yuǎn)程監(jiān)視、控制的目的。

          軟件設(shè)計(jì)中的另一任務(wù)是確定開發(fā)語(yǔ)言。對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),掌握匯編語(yǔ)言的編程是至關(guān)重要的,即使使用高級(jí)語(yǔ)言來(lái)進(jìn)行編程,通過(guò)閱讀編譯出來(lái)的匯編代碼,也可以發(fā)現(xiàn)高級(jí)語(yǔ)言編程時(shí)需要優(yōu)化的地方,從而提高高級(jí)語(yǔ)言所編寫代碼的執(zhí)行效率。同時(shí)嵌入式系統(tǒng)的資源緊張,要合理利用資源,提高運(yùn)行效率,關(guān)鍵部分、時(shí)間要求嚴(yán)格的部分還是需要使用匯編語(yǔ)言來(lái)完成。但匯編語(yǔ)言在代碼編寫和維護(hù)上效率較低,通用性不強(qiáng),在復(fù)雜的項(xiàng)目上還是選用高級(jí)語(yǔ)言比較合理。在本設(shè)計(jì)中,采用匯編語(yǔ)言編寫ARM7內(nèi)核的啟動(dòng)代碼(boot loader),其它的程序采用C語(yǔ)言作為設(shè)計(jì)語(yǔ)言。它有很明顯的優(yōu)勢(shì):C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),有豐富的庫(kù)函數(shù)、運(yùn)算速度快,而且可以直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制,較匯編語(yǔ)言有更好的可讀性。

          三、嵌入式Web服務(wù)器的實(shí)現(xiàn)

          (一)主程序流程

          在主程序流程中,主要設(shè)計(jì)實(shí)現(xiàn)包括兩大部分:第一是對(duì)接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包:第二則是對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行封裝并發(fā)送。

          系統(tǒng)初始化模塊主要包括了LPC2I32微控制器的初始化、網(wǎng)絡(luò)接口芯片ENC28J60的初始化、TCP/IP協(xié)議棧中各標(biāo)志的初始化等:

          ARP處理模塊主要完成接收ARP請(qǐng)求并發(fā)送ARP響應(yīng);

          ICMP處理模塊主要完成接收ICMP回顯請(qǐng)求并發(fā)送ICMP回顯響應(yīng);

          TCP數(shù)據(jù)處理模塊主要完成對(duì)TCP數(shù)據(jù)報(bào)及HTTP數(shù)據(jù)的處理。

          當(dāng)程序運(yùn)行時(shí),首先對(duì)系統(tǒng)初始化,這時(shí)系統(tǒng)處于等待狀態(tài),直到有數(shù)據(jù)幀到達(dá)。ENC28J60接收完數(shù)據(jù)幀以后,首先去除幀頭,然后判斷該數(shù)據(jù)幀的報(bào)文是否為ARP包,若是,則進(jìn)行ARP數(shù)據(jù)包處理,若不是,則檢查數(shù)據(jù)報(bào)頭,看IP數(shù)據(jù)包的報(bào)文是否為ICMP數(shù)據(jù)包,若是ICMP數(shù)據(jù)包,則轉(zhuǎn)到ICMP數(shù)據(jù)處理子程序。若不是ICMP數(shù)據(jù)包,就繼續(xù)進(jìn)行判斷,看是否為TCP數(shù)據(jù)包,若為TCP數(shù)據(jù)包則轉(zhuǎn)入TCP數(shù)據(jù)處理子程序,若此時(shí)即不是ICMP數(shù)據(jù)包也不是TCP數(shù)據(jù)包,則將該包丟棄。

          子程序的設(shè)計(jì)是為了完成TCP/IP協(xié)議體系的每一層的功能的,TCP/IP協(xié)議的每一層都是相互聯(lián)系的,但也是相對(duì)獨(dú)立的,具體由下面7個(gè)部分實(shí)現(xiàn):以太網(wǎng)驅(qū)動(dòng)程序、以太網(wǎng)層程序、ARP協(xié)議處理程序、IP協(xié)議處理程序、ICMP協(xié)議處理程序、TCP協(xié)議處理程序、HTTP協(xié)議處理程序。

          (二)嵌入式Web服務(wù)器的實(shí)現(xiàn)

          1、網(wǎng)絡(luò)接口的實(shí)現(xiàn)

          網(wǎng)絡(luò)接口是Web服務(wù)器與外界交流的接口。操作系統(tǒng)提供網(wǎng)絡(luò)協(xié)議棧的支持,最主要是TCP/IP以及socket套接字系統(tǒng)函數(shù)庫(kù)。網(wǎng)絡(luò)接口使用操作系統(tǒng)提供的socket函數(shù)族建立可遠(yuǎn)程通信的套接字。它分兩部分,一部分在系統(tǒng)初始化的時(shí)候建立,另一部分在HTTP引擎模塊里面實(shí)現(xiàn)。網(wǎng)絡(luò)接口模塊的功能描述為:首先建立socket。socket是BSO Unix提出的進(jìn)程間通信(IPC)機(jī)制,它是一種雙向的通信接口,使得可以在兩個(gè)不同進(jìn)程(通常是網(wǎng)絡(luò)上的不同節(jié)點(diǎn)的進(jìn)程)之間可以直接通信。

          2、中心處理模塊

          中心處理模塊是嵌入式Web服務(wù)器的核心。它進(jìn)行全局的控制和管理。它通過(guò)accept()接收HTTP請(qǐng)求,調(diào)用read將請(qǐng)求接收到本地,然后進(jìn)行請(qǐng)求解析。根據(jù)請(qǐng)求的內(nèi)容,判斷是屬于動(dòng)態(tài)內(nèi)容還是靜態(tài)內(nèi)容,如果是動(dòng)態(tài)內(nèi)容則調(diào)用相應(yīng)的動(dòng)態(tài)處理函數(shù),如果是靜態(tài)內(nèi)容則訪問(wèn)VFS獲得相應(yīng)的內(nèi)容。然后將獲得的內(nèi)容包裝成為HTTP響應(yīng),返回給客戶端。中心處理模塊還實(shí)現(xiàn)控制管理信息和容錯(cuò)機(jī)制。

          3、動(dòng)態(tài)文件預(yù)處理器

          Web服務(wù)器必須有交互能力才是有實(shí)際意義的服務(wù)器程序。目前大多數(shù)的Web服務(wù)器都是利用CGI (Common Gateway Interface,通用網(wǎng)關(guān)接口)來(lái)實(shí)現(xiàn)應(yīng)用程序的接口。本論文從嵌入式系統(tǒng)的角度出發(fā),實(shí)現(xiàn)了一種內(nèi)部的應(yīng)用程序接口。

          動(dòng)態(tài)文件預(yù)處理器所實(shí)現(xiàn)的功能是將普通的Web動(dòng)態(tài)資源轉(zhuǎn)變成為可編譯的函數(shù)代碼。設(shè)動(dòng)態(tài)文檔為f.dtm,它包含內(nèi)容{x, f(a)}。其中x為靜態(tài)的內(nèi)容,F(xiàn)()為應(yīng)用程序,a為通過(guò)解析HTTP請(qǐng)求得出的參數(shù)。動(dòng)態(tài)文件預(yù)處理器將f.dtm轉(zhuǎn)變成為f_dtm.c。它的內(nèi)容為(f_dtm ( )},它是一個(gè)函數(shù),實(shí)現(xiàn)功能為輸出{x', f(a)}.其中f(a)是f(a)的實(shí)際輸出,而x'是輸出靜態(tài)內(nèi)容的動(dòng)作。

          四、嵌入式Web服務(wù)器的主要應(yīng)用

          嵌入式Web服務(wù)器是應(yīng)用在嵌入式系統(tǒng)上的Web服務(wù)器架構(gòu)。它的主要應(yīng)用是設(shè)備管理和應(yīng)用程序的網(wǎng)絡(luò)擴(kuò)展。

          嵌入式Web服務(wù)器作為一個(gè)后臺(tái)程序直接在嵌入式設(shè)備上運(yùn)行,用戶通過(guò)網(wǎng)絡(luò)對(duì)設(shè)備配置、控制、監(jiān)測(cè),保證設(shè)備安全、有效地運(yùn)作。

          Web接口使得用戶可以在任何一臺(tái)有互聯(lián)網(wǎng)接入能力的帶有Web瀏覽器的設(shè)備訪問(wèn)到該嵌入式設(shè)備。Web服務(wù)器提供應(yīng)用程序接口可以擴(kuò)展Web的應(yīng)用。這種設(shè)備管理方式不僅起到監(jiān)測(cè)、控制的功能,而且根據(jù)設(shè)備的特點(diǎn)可以更加入性化和智能化。它使對(duì)遠(yuǎn)程設(shè)備的操作從監(jiān)控(Monitor)變成為管理(Manage )。其中基于嵌入式WEB服務(wù)器的視頻監(jiān)控系統(tǒng)現(xiàn)已成為視頻監(jiān)控系統(tǒng)的主流技術(shù),在嵌入式系統(tǒng)中集成嵌入式 Web視頻服務(wù)器,采用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng);內(nèi)置一個(gè)嵌入式Web服務(wù)器。攝像頭送來(lái)的視頻信號(hào)數(shù)字化后由高效壓縮芯片壓縮,通過(guò)內(nèi)部總線送到內(nèi)置的Web服務(wù)器,網(wǎng)絡(luò)上用戶可以直接用瀏覽器觀看Web服務(wù)器上的攝像機(jī)圖像,授權(quán)用戶還可以控制攝像機(jī)、云臺(tái)、鏡頭的動(dòng)作或?qū)ο到y(tǒng)配置進(jìn)行操作。

          另一個(gè)應(yīng)用是應(yīng)用程序網(wǎng)絡(luò)擴(kuò)展。Web服務(wù)已成為支撐現(xiàn)代應(yīng)用程序技術(shù)和系統(tǒng)核心組件,現(xiàn)今約87%的企業(yè)用戶都希望為他們的程序添加上基于Web的用戶接口。嵌入式Web服務(wù)器很好地提供了Internet網(wǎng)絡(luò)的接口,將應(yīng)用程序和Web接口結(jié)合起來(lái),是應(yīng)用程序網(wǎng)絡(luò)擴(kuò)展的解決方案。

          參考文獻(xiàn):

          1嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)宋凱 計(jì)算機(jī)工程與設(shè)計(jì) 2009/04

          2嵌入式Linux下WEB服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn) 吳玉成 數(shù)據(jù)通信 2008/06

          3基于ARM-LINUX的嵌入式Web服務(wù)器設(shè)計(jì) 梁銀會(huì) 成都信息工程學(xué)院學(xué)報(bào) 2008/05

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【探析嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)】相關(guān)文章:

        基于Web的嵌入式數(shù)控系統(tǒng)實(shí)現(xiàn)03-07

        郵件服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)03-08

        短信服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)03-08

        基于嵌入式Web服務(wù)器的遠(yuǎn)程故障診斷系統(tǒng)03-18

        刑罰實(shí)現(xiàn)探析03-18

        Web搜索引擎的智能搜索設(shè)計(jì)與實(shí)現(xiàn)03-08

        嵌入式MPEG—4解碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-19

        面向網(wǎng)絡(luò)測(cè)試的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-07

        嵌入式現(xiàn)場(chǎng)智能顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-07

        探析移動(dòng)網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-20

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美在线观看免费 | 亚洲午夜欧美理论 | 欧美区一区二区三区在线视频 | 亚洲Av特级在线观看 | 亚洲一区精品人人爽人人躁 | 亚洲欧美高清在线观 |

            探析嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

              一、引言

              嵌入式Web服務(wù)器(Embedded Web Server,EWS)是指將Web服務(wù)器嵌入到現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備。嵌入式Web服務(wù)器簡(jiǎn)化了傳統(tǒng)服務(wù)器的系統(tǒng)結(jié)構(gòu),在嵌入式設(shè)備上它同時(shí)實(shí)現(xiàn)信息傳輸和網(wǎng)絡(luò)接口的功能。嵌入式Web服務(wù)器基于HTTP協(xié)議運(yùn)作,有標(biāo)準(zhǔn)的接口形式和通信協(xié)議。它可以向任何接入它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面。Web技術(shù)的開放性和平臺(tái)的獨(dú)立特性能夠降低開發(fā)難度,減少軟件系統(tǒng)和通信系統(tǒng)的設(shè)計(jì)維護(hù)工作量,提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平。

              二、嵌入式WEB服務(wù)器總體設(shè)計(jì)方案

              接入Internet有很多種接入方式:電話撥號(hào)接入、ISDN, ADSL、以太網(wǎng)接入等,其中以太網(wǎng)作為一種廉價(jià)、高效的Internet接入方式,已經(jīng)得到了非常廣泛的應(yīng)用,本文的Internet接入采用以太網(wǎng)方式。

              將TCP/IP協(xié)議棧嵌入到單片機(jī)中,使用網(wǎng)絡(luò)控制芯片實(shí)現(xiàn)單片機(jī)的上網(wǎng)和數(shù)據(jù)傳輸。利用網(wǎng)絡(luò)單片機(jī)(嵌入了TCP/IP協(xié)議棧的單片機(jī))可以實(shí)現(xiàn)很多功能,嵌入式Web服務(wù)器就是其中的一種。通過(guò)Web服務(wù)器,客戶端瀏覽器可以瀏覽這些設(shè)備的動(dòng)態(tài)信息,并且還可以實(shí)現(xiàn)與系統(tǒng)的交互功能。

              (一)嵌入式Web服務(wù)器的一般結(jié)構(gòu)

              嵌入式Web服務(wù)器的設(shè)計(jì)通常以通用Web服務(wù)器系統(tǒng)結(jié)構(gòu)為藍(lán)本,根據(jù)嵌入式系統(tǒng)的特性進(jìn)行優(yōu)化。嵌入式Web服務(wù)器的硬件系統(tǒng)包含了Web通信功能的微處理器或者微控制器系統(tǒng),它可以和前端的應(yīng)用系統(tǒng)直接集成在一起,也可以通過(guò)現(xiàn)場(chǎng)總線與應(yīng)用系統(tǒng)相連。

              一個(gè)完整的硬件系統(tǒng)由微型處理器、FLASH存儲(chǔ)器、DRAM存儲(chǔ)器、網(wǎng)絡(luò)接口和前端應(yīng)用系統(tǒng)硬件所組成。微型處理器負(fù)責(zé)全局的運(yùn)行和管理,F(xiàn)LASH存儲(chǔ)器用來(lái)存儲(chǔ)實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP協(xié)議棧、各種Web文檔;DRAM存儲(chǔ)器在系統(tǒng)運(yùn)行時(shí)使用;網(wǎng)絡(luò)接口實(shí)現(xiàn)與Internet的連接;前端應(yīng)用系統(tǒng)的硬件完成傳統(tǒng)意義上的應(yīng)用功能。

              由于嵌入式系統(tǒng)硬件資源有限,嵌入式Web服務(wù)器的硬件結(jié)構(gòu)不能很復(fù)雜,實(shí)時(shí)操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP協(xié)議棧、各種Web文檔都必須存儲(chǔ)在FLASH中,這對(duì)軟件系統(tǒng)設(shè)計(jì)提出了較高的要求。嵌入式Web服務(wù)器應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)如圖1所示:

              網(wǎng)絡(luò)接口

              微處理器

              SDRAM

              FLASH

              前端應(yīng)用系統(tǒng)硬件

              圖1嵌入式W比服務(wù)器應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)

              (二)系統(tǒng)的硬件設(shè)計(jì)方案

              LPC2132微控制器是所設(shè)計(jì)的嵌入式Web服務(wù)器的核心,一方面LPC2132微控制器內(nèi)部要實(shí)現(xiàn)TCP/IP協(xié)議棧,并驅(qū)動(dòng)網(wǎng)絡(luò)接口控制器ENC28J60,經(jīng)耦合隔離變壓器H1102和以太網(wǎng)以實(shí)現(xiàn)Internet接入;另一方面,LPC2132微控制器又是相應(yīng)控制系統(tǒng)的控制單元。

              由于以太網(wǎng)的廣泛使用,本文選擇了最為常用的Internet接入方式,即通過(guò)以太網(wǎng)接入Internet。由美國(guó)Microchip公司生產(chǎn)的以太網(wǎng)控制芯片ENC28J60是本設(shè)計(jì)所選擇的網(wǎng)絡(luò)接口控制器,它集成了介質(zhì)訪問(wèn)控制子層和物理層的功能,主要完成網(wǎng)絡(luò)接口層中數(shù)據(jù)幀的發(fā)送和接收。

              H1102是一款耦合隔離變壓器,用來(lái)對(duì)網(wǎng)絡(luò)上的脈沖進(jìn)行轉(zhuǎn)換和濾波。H1102聯(lián)接RJ45接頭,可以直接接入以太網(wǎng)。

              串行電平轉(zhuǎn)換模塊選用了Maxim公司出品的MAXSP3232E芯片。該芯片內(nèi)部含有倍增電路和轉(zhuǎn)換電路,只需+5V電源供電即可實(shí)現(xiàn)TTL電平到RS232C電平的轉(zhuǎn)換。RS232串口一方面是作為開發(fā)調(diào)試用的,一方面可以作為相應(yīng)的通信應(yīng)用。

              I/O口擴(kuò)展包括系統(tǒng)的LED顯示電路、JTAG調(diào)試電路以及其他測(cè)試電路等。

              (三)系統(tǒng)的軟件設(shè)計(jì)方案

              Web服務(wù)器是在嵌入式TCP/IP協(xié)議棧的基礎(chǔ)上實(shí)現(xiàn)的一種應(yīng)用程序。從系統(tǒng)軟件工作過(guò)程來(lái)看,可將系統(tǒng)分三部分:第一部分,以太網(wǎng)控制器驅(qū)動(dòng)程序的實(shí)現(xiàn);第二部分:嵌入式TCP/IP協(xié)議的實(shí)現(xiàn),這部分內(nèi)容在第一部分的基礎(chǔ)上,結(jié)合系統(tǒng)具體環(huán)境,對(duì)標(biāo)準(zhǔn)TCP/IP協(xié)議進(jìn)行簡(jiǎn)化并在ARM7單片機(jī)上進(jìn)行移植;第三部分:應(yīng)用層部分,通過(guò)嵌入式TCP/IP協(xié)議對(duì)用戶數(shù)據(jù)進(jìn)行收發(fā)處理。這里是在應(yīng)用層實(shí)現(xiàn)HTTP協(xié)議來(lái)完成Web服務(wù)器功能的。

              所以系統(tǒng)軟件設(shè)計(jì)部分主要包括了以太網(wǎng)控制器的驅(qū)動(dòng)程序、嵌入式TCP/IP協(xié)議棧以及動(dòng)態(tài)web網(wǎng)頁(yè)的實(shí)現(xiàn)等幾個(gè)模塊:

              (1)以太網(wǎng)控制器驅(qū)動(dòng)程序是指LPC2132微控制器對(duì)ENC28J60芯片的驅(qū)動(dòng)、控制過(guò)程。

              (2)在LPC2132微控制器內(nèi)部嵌入TCP/IP協(xié)議棧是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵,它主要包括了ARP, ICMP, IP, TCP和HTTP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)。

              (3)動(dòng)態(tài)網(wǎng)頁(yè)的實(shí)現(xiàn)。使用CGI技術(shù),可以實(shí)現(xiàn)動(dòng)態(tài)信息的交換,從而達(dá)到遠(yuǎn)程監(jiān)視、控制的目的。

              軟件設(shè)計(jì)中的另一任務(wù)是確定開發(fā)語(yǔ)言。對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),掌握匯編語(yǔ)言的編程是至關(guān)重要的,即使使用高級(jí)語(yǔ)言來(lái)進(jìn)行編程,通過(guò)閱讀編譯出來(lái)的匯編代碼,也可以發(fā)現(xiàn)高級(jí)語(yǔ)言編程時(shí)需要優(yōu)化的地方,從而提高高級(jí)語(yǔ)言所編寫代碼的執(zhí)行效率。同時(shí)嵌入式系統(tǒng)的資源緊張,要合理利用資源,提高運(yùn)行效率,關(guān)鍵部分、時(shí)間要求嚴(yán)格的部分還是需要使用匯編語(yǔ)言來(lái)完成。但匯編語(yǔ)言在代碼編寫和維護(hù)上效率較低,通用性不強(qiáng),在復(fù)雜的項(xiàng)目上還是選用高級(jí)語(yǔ)言比較合理。在本設(shè)計(jì)中,采用匯編語(yǔ)言編寫ARM7內(nèi)核的啟動(dòng)代碼(boot loader),其它的程序采用C語(yǔ)言作為設(shè)計(jì)語(yǔ)言。它有很明顯的優(yōu)勢(shì):C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),有豐富的庫(kù)函數(shù)、運(yùn)算速度快,而且可以直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制,較匯編語(yǔ)言有更好的可讀性。

              三、嵌入式Web服務(wù)器的實(shí)現(xiàn)

              (一)主程序流程

              在主程序流程中,主要設(shè)計(jì)實(shí)現(xiàn)包括兩大部分:第一是對(duì)接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包:第二則是對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行封裝并發(fā)送。

              系統(tǒng)初始化模塊主要包括了LPC2I32微控制器的初始化、網(wǎng)絡(luò)接口芯片ENC28J60的初始化、TCP/IP協(xié)議棧中各標(biāo)志的初始化等:

              ARP處理模塊主要完成接收ARP請(qǐng)求并發(fā)送ARP響應(yīng);

              ICMP處理模塊主要完成接收ICMP回顯請(qǐng)求并發(fā)送ICMP回顯響應(yīng);

              TCP數(shù)據(jù)處理模塊主要完成對(duì)TCP數(shù)據(jù)報(bào)及HTTP數(shù)據(jù)的處理。

              當(dāng)程序運(yùn)行時(shí),首先對(duì)系統(tǒng)初始化,這時(shí)系統(tǒng)處于等待狀態(tài),直到有數(shù)據(jù)幀到達(dá)。ENC28J60接收完數(shù)據(jù)幀以后,首先去除幀頭,然后判斷該數(shù)據(jù)幀的報(bào)文是否為ARP包,若是,則進(jìn)行ARP數(shù)據(jù)包處理,若不是,則檢查數(shù)據(jù)報(bào)頭,看IP數(shù)據(jù)包的報(bào)文是否為ICMP數(shù)據(jù)包,若是ICMP數(shù)據(jù)包,則轉(zhuǎn)到ICMP數(shù)據(jù)處理子程序。若不是ICMP數(shù)據(jù)包,就繼續(xù)進(jìn)行判斷,看是否為TCP數(shù)據(jù)包,若為TCP數(shù)據(jù)包則轉(zhuǎn)入TCP數(shù)據(jù)處理子程序,若此時(shí)即不是ICMP數(shù)據(jù)包也不是TCP數(shù)據(jù)包,則將該包丟棄。

              子程序的設(shè)計(jì)是為了完成TCP/IP協(xié)議體系的每一層的功能的,TCP/IP協(xié)議的每一層都是相互聯(lián)系的,但也是相對(duì)獨(dú)立的,具體由下面7個(gè)部分實(shí)現(xiàn):以太網(wǎng)驅(qū)動(dòng)程序、以太網(wǎng)層程序、ARP協(xié)議處理程序、IP協(xié)議處理程序、ICMP協(xié)議處理程序、TCP協(xié)議處理程序、HTTP協(xié)議處理程序。

              (二)嵌入式Web服務(wù)器的實(shí)現(xiàn)

              1、網(wǎng)絡(luò)接口的實(shí)現(xiàn)

              網(wǎng)絡(luò)接口是Web服務(wù)器與外界交流的接口。操作系統(tǒng)提供網(wǎng)絡(luò)協(xié)議棧的支持,最主要是TCP/IP以及socket套接字系統(tǒng)函數(shù)庫(kù)。網(wǎng)絡(luò)接口使用操作系統(tǒng)提供的socket函數(shù)族建立可遠(yuǎn)程通信的套接字。它分兩部分,一部分在系統(tǒng)初始化的時(shí)候建立,另一部分在HTTP引擎模塊里面實(shí)現(xiàn)。網(wǎng)絡(luò)接口模塊的功能描述為:首先建立socket。socket是BSO Unix提出的進(jìn)程間通信(IPC)機(jī)制,它是一種雙向的通信接口,使得可以在兩個(gè)不同進(jìn)程(通常是網(wǎng)絡(luò)上的不同節(jié)點(diǎn)的進(jìn)程)之間可以直接通信。

              2、中心處理模塊

              中心處理模塊是嵌入式Web服務(wù)器的核心。它進(jìn)行全局的控制和管理。它通過(guò)accept()接收HTTP請(qǐng)求,調(diào)用read將請(qǐng)求接收到本地,然后進(jìn)行請(qǐng)求解析。根據(jù)請(qǐng)求的內(nèi)容,判斷是屬于動(dòng)態(tài)內(nèi)容還是靜態(tài)內(nèi)容,如果是動(dòng)態(tài)內(nèi)容則調(diào)用相應(yīng)的動(dòng)態(tài)處理函數(shù),如果是靜態(tài)內(nèi)容則訪問(wèn)VFS獲得相應(yīng)的內(nèi)容。然后將獲得的內(nèi)容包裝成為HTTP響應(yīng),返回給客戶端。中心處理模塊還實(shí)現(xiàn)控制管理信息和容錯(cuò)機(jī)制。

              3、動(dòng)態(tài)文件預(yù)處理器

              Web服務(wù)器必須有交互能力才是有實(shí)際意義的服務(wù)器程序。目前大多數(shù)的Web服務(wù)器都是利用CGI (Common Gateway Interface,通用網(wǎng)關(guān)接口)來(lái)實(shí)現(xiàn)應(yīng)用程序的接口。本論文從嵌入式系統(tǒng)的角度出發(fā),實(shí)現(xiàn)了一種內(nèi)部的應(yīng)用程序接口。

              動(dòng)態(tài)文件預(yù)處理器所實(shí)現(xiàn)的功能是將普通的Web動(dòng)態(tài)資源轉(zhuǎn)變成為可編譯的函數(shù)代碼。設(shè)動(dòng)態(tài)文檔為f.dtm,它包含內(nèi)容{x, f(a)}。其中x為靜態(tài)的內(nèi)容,F(xiàn)()為應(yīng)用程序,a為通過(guò)解析HTTP請(qǐng)求得出的參數(shù)。動(dòng)態(tài)文件預(yù)處理器將f.dtm轉(zhuǎn)變成為f_dtm.c。它的內(nèi)容為(f_dtm ( )},它是一個(gè)函數(shù),實(shí)現(xiàn)功能為輸出{x', f(a)}.其中f(a)是f(a)的實(shí)際輸出,而x'是輸出靜態(tài)內(nèi)容的動(dòng)作。

              四、嵌入式Web服務(wù)器的主要應(yīng)用

              嵌入式Web服務(wù)器是應(yīng)用在嵌入式系統(tǒng)上的Web服務(wù)器架構(gòu)。它的主要應(yīng)用是設(shè)備管理和應(yīng)用程序的網(wǎng)絡(luò)擴(kuò)展。

              嵌入式Web服務(wù)器作為一個(gè)后臺(tái)程序直接在嵌入式設(shè)備上運(yùn)行,用戶通過(guò)網(wǎng)絡(luò)對(duì)設(shè)備配置、控制、監(jiān)測(cè),保證設(shè)備安全、有效地運(yùn)作。

              Web接口使得用戶可以在任何一臺(tái)有互聯(lián)網(wǎng)接入能力的帶有Web瀏覽器的設(shè)備訪問(wèn)到該嵌入式設(shè)備。Web服務(wù)器提供應(yīng)用程序接口可以擴(kuò)展Web的應(yīng)用。這種設(shè)備管理方式不僅起到監(jiān)測(cè)、控制的功能,而且根據(jù)設(shè)備的特點(diǎn)可以更加入性化和智能化。它使對(duì)遠(yuǎn)程設(shè)備的操作從監(jiān)控(Monitor)變成為管理(Manage )。其中基于嵌入式WEB服務(wù)器的視頻監(jiān)控系統(tǒng)現(xiàn)已成為視頻監(jiān)控系統(tǒng)的主流技術(shù),在嵌入式系統(tǒng)中集成嵌入式 Web視頻服務(wù)器,采用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng);內(nèi)置一個(gè)嵌入式Web服務(wù)器。攝像頭送來(lái)的視頻信號(hào)數(shù)字化后由高效壓縮芯片壓縮,通過(guò)內(nèi)部總線送到內(nèi)置的Web服務(wù)器,網(wǎng)絡(luò)上用戶可以直接用瀏覽器觀看Web服務(wù)器上的攝像機(jī)圖像,授權(quán)用戶還可以控制攝像機(jī)、云臺(tái)、鏡頭的動(dòng)作或?qū)ο到y(tǒng)配置進(jìn)行操作。

              另一個(gè)應(yīng)用是應(yīng)用程序網(wǎng)絡(luò)擴(kuò)展。Web服務(wù)已成為支撐現(xiàn)代應(yīng)用程序技術(shù)和系統(tǒng)核心組件,現(xiàn)今約87%的企業(yè)用戶都希望為他們的程序添加上基于Web的用戶接口。嵌入式Web服務(wù)器很好地提供了Internet網(wǎng)絡(luò)的接口,將應(yīng)用程序和Web接口結(jié)合起來(lái),是應(yīng)用程序網(wǎng)絡(luò)擴(kuò)展的解決方案。

              參考文獻(xiàn):

              1嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)宋凱 計(jì)算機(jī)工程與設(shè)計(jì) 2009/04

              2嵌入式Linux下WEB服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn) 吳玉成 數(shù)據(jù)通信 2008/06

              3基于ARM-LINUX的嵌入式Web服務(wù)器設(shè)計(jì) 梁銀會(huì) 成都信息工程學(xué)院學(xué)報(bào) 2008/05