摘 要 嵌入式Web服務器是指將Web服務器嵌入到現場測試和控制設備中,在相應的硬件平臺和軟件系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基于互聯網的網絡測試和控制設備。
關鍵詞 嵌入式Web 服務器 控制設備
中圖分類號:TN915.08 文獻標識碼:A
1 主程序流程
在主程序流程中,主要設計實現包括兩大部分:第一是對接收到的以太網數據幀進行解包:第二則是對要發送的數據進行封裝并發送。系統初始化模塊主要包括了LPC2I32微控制器的初始化、網絡接口芯片ENC28J60的初始化、TCP/IP協議棧中各標志的初始化等:ARP處理模塊主要完成接收ARP請求并發送ARP響應;ICMP處理模塊主要完成接收ICMP回顯請求并發送ICMP回顯響應;TCP數據處理模塊主要完成對TCP數據包及HTTP數據的處理。當程序運行時,首先對系統初始化,這時系統處于等待狀態,直到有數據幀到達。ENC28J60接收完數據幀以后,首先去除幀頭,然后判斷該數據幀的報文是否為ARP包,若是,則進行ARP數據包處理,若不是,則檢查數據報頭,看IP數據包的報文是否為ICMP數據包,若是ICMP數據包,則轉到ICMP數據處理子程序。若不是ICMP數據包,就繼續進行判斷,看是否為TCP數據包,若為TCP數據包則轉入TCP數據處理子程序,若此時即不是ICMP數據包也不是TCP數據包,則將該包丟棄。
子程序的設計是為了完成TCP/IP協議體系的每一層的功能的,TCP/IP協議的每一層都是相互聯系的,但也是相對獨立的,具體由下面7個部分實現:以太網驅動程序、以太網層程序、ARP協議處理程序、IP協議處理程序、ICMP協議處理程序、TCP協議處理程序、HTTP協議處理程序。
2 網絡接口的實現
網絡接口是Web服務器與外界交流的接口。操作系統提供網絡協議棧的支持,最主要是TCP/IP以及socket套接字系統函數庫。網絡接口使用操作系統提供的socket函數族建立可遠程通信的套接字。它分兩部分,一部分在系統初始化的時候建立,另一部分在HTTP引擎模塊里面實現。網絡接口模塊的功能描述為:首先建立socket。socket是BSO Unix提出的進程間通信(IPC)機制,它是一種雙向的通信接口,使得可以在兩個不同進程(通常是網絡上的不同節點的進程)之間可以直接通信。
2.1 中心處理模塊
中心處理模塊是嵌入式Web服務器的核心。它進行全局的控制和管理。它通過accept()接收HTTP請求,調用read將請求接收到本地,然后進行請求解析。根據請求的內容,判斷是屬于動態內容還是靜態內容,如果是動態內容則調用相應的動態處理函數,如果是靜態內容則訪問VFS獲得相應的內容。然后將獲得的內容包裝成為HTTP響應,返回給客戶端。中心處理模塊還實現控制管理信息和容錯機制。
2.2 動態文件預處理器
Web服務器必須有交互能力才是有實際意義的服務器程序。目前大多數的Web服務器都是利用CGI(Common Gateway Interface,通用網關接口)來實現應用程序的接口。本論文從嵌入式系統的角度出發,實現了一種內部的應用程序接口。
動態文件預處理器所實現的功能是將普通的Web動態資源轉變成為可編譯的函數代碼。設動態文檔為f.dtm,它包含內容{x,f(a)}。其中x為靜態的內容,F()為應用程序,a為通過解析HTTP請求得出的參數。動態文件預處理器將f.dtm轉變成為f_dtm.c。它的內容為(f_dtm( )},它是一個函數,實現功能為輸出{x',f(a)}.其中f(a)是f(a)的實際輸出,而x'是輸出靜態內容的動作。
3 嵌入式Web服務器的主要應用
嵌入式Web服務器是應用在嵌入式系統上的Web服務器架構。它的主要應用是設備管理和應用程序的網絡擴展。
嵌入式Web服務器作為一個后臺程序直接在嵌入式設備上運行,用戶通過網絡對設備配置、控制、監測,保證設備安全、有效地運作。
Web接口使得用戶可以在任何一臺有互聯網接入能力的帶有Web瀏覽器的設備訪問到該嵌入式設備。Web服務器提供應用程序接口可以擴展Web的應用。這種設備管理方式不僅起到監測、控制的功能,而且根據設備的特點可以更加入性化和智能化。它使對遠程設備的操作從監控(Monitor)變成為管理(Manage)。其中基于嵌入式WEB服務器的視頻監控系統現已成為視頻監控系統的主流技術,在嵌入式系統中集成嵌入式Web視頻服務器,采用嵌入式實時多任務操作系統;內置一個嵌入式Web服務器。攝像頭送來的視頻信號數字化后由高效壓縮芯片壓縮,通過內部總線送到內置的Web服務器,網絡上用戶可以直接用瀏覽器觀看Web服務器上的攝像機圖像,授權用戶還可以控制攝像機、云臺、鏡頭的動作或對系統配置進行操作。
另一個應用是應用程序網絡擴展。Web服務已成為支撐現代應用程序技術和系統核心組件,現今約87%的企業用戶都希望為他們的程序添加上基于Web的用戶接口。嵌入式Web服務器很好地提供了Internet網絡的接口,將應用程序和Web接口結合起來,是應用程序網絡擴展的解決方案。
參考文獻
[1] 宋凱.嵌入式Web服務器的設計與實現.計算機工程與設計,2009,04.
[2] 吳玉成.嵌入式Linux下WEB服務器的設計與實現.數據通信,2008,06.
[3] 梁銀會.基于ARM-LINUX的嵌入式Web服務器設計.成都信息工程學院學報,2008,05.