1引言
經過多年的發(fā)展,互聯(lián)網技術已經在全球普及。嵌入式產品設計師也已經把嵌入式設計普遍用于專用的、非PC的設備中。嵌入式系統(tǒng)與Internet技術相互結合產生了嵌入式Internet技術。嵌入式Intemet技術已成為當今嵌入式系統(tǒng)發(fā)展的熱點之一,它的許多方案都在不斷地被提出和驗證著。嵌入式Internet技術具有廣闊的應用前景,它的應用領域主要包括智能公路、信息家電、工業(yè)自動化、電子商務和設備管理等。嵌入式WEB服務器的主要設計思想就是將嵌入式系統(tǒng)和WEB技術結合起來,將WEB技術引入到現(xiàn)場測量和控制設備中,從而實現(xiàn)基于嵌入式WEB服務器的控制系統(tǒng)。用戶可以通過現(xiàn)有的公共通信網絡,使用標準的WEB瀏覽器作為接口直接對現(xiàn)場的控制設備進行訪問,監(jiān)控和維護等操作,實現(xiàn)了異構設備之間的跨平臺互訪。
2系統(tǒng)結構與工作原理
系統(tǒng)采用當前流行的B/S結構,這種結構是隨著Internet技術的發(fā)展,對傳統(tǒng)C/S結構的擴展和改造。實質上B/S結構是一種特殊的C/S結構,所不同的是,在B/S結構中,系統(tǒng)主要功能都在服務器端實現(xiàn),瀏覽器是客戶端,提供用戶接口,將用戶的請求傳遞到服務器,并將服務器的響應展現(xiàn)給用戶。系統(tǒng)結構如圖1所示。

分析嵌入式系統(tǒng)的具體情況,發(fā)現(xiàn)對于一般的嵌入式系統(tǒng),基本的功能需求大體上分為兩大類,可以用兩個字來概括“監(jiān)控”。
(1)嵌入式服務器端包含———“監(jiān)”功能的實現(xiàn)。對于上行的數(shù)據(jù)流,通過嵌入式服務器端包含技術(ESSI)來實現(xiàn)。本系統(tǒng)中,自定義了一條ESSI指令“DATA”,用來實現(xiàn)動態(tài)信息的實時顯示,該指令的語法如下: 《 DATA var = state func = Get-State》,該指令與標準的HTML標記兼容,其屬性有兩個,分別為var和func, var表示設備的狀態(tài)名稱,一個設備可以定義多個狀態(tài)名; func管理接口函數(shù),用來獲得相應設備的狀態(tài)信息,原型為uint8* func( )。
(2)嵌入式通用網關接口———“控”功能的實現(xiàn)。對于下行的控制流,通過嵌入式通用網關接口(ECGI)來實現(xiàn),如圖2所示。在需要向嵌入式設備下達控制命令的情況下,借助表單的POST方法向服務器傳遞數(shù)據(jù),表單的語法格式如下:


表單的name屬性指定了管理接口函數(shù)名,此函數(shù)用來處理表單數(shù)據(jù),原型為void TestForm(uint8*
content), content是瀏覽器傳送過來的參數(shù);表單的另一個屬性method指定了瀏覽器向服務器傳送數(shù)據(jù)的方式。例如:

包含有上述表單的HTML文件傳送到瀏覽器之后,網頁上出現(xiàn)三個編輯框和一個submit按鈕,用戶在編輯框中輸入參數(shù),點擊submit按鈕后,瀏覽器向Web服務器傳送以下內容:
var1=value1&var2=value2&var3=value3&Go=OK
3硬件系統(tǒng)設計
3.1硬件原理框圖
系統(tǒng)的硬件原理框圖如圖3所示,嵌入式處理器LPC2292處于中心位置,設備的狀態(tài)數(shù)據(jù)經過處理器打包后,經由RTL8019AS發(fā)布到網絡上,用戶的控制命令經過RTL8019AS傳遞到處理器LPC2292,再由處理器控制相應的設備執(zhí)行相應的控制命令。

3.2嵌入式處理器
嵌入式處理器采用了Philips公司的基于ARM7TDMI內核的處理器LPC2292,該處理器具有16 kB片內靜態(tài)RAM和256 kB片內Flash程序存儲器;可以通過片內boot裝載程序實現(xiàn)在系統(tǒng)編程(ISP)和在應用編程(IAP),編程速度快, 512字節(jié)行編程時間為1ms,單扇區(qū)或整片擦除時間為400ms;同時還內置豐富的外設接口,極大的簡化和方便了應用系統(tǒng)的設計,提高了系統(tǒng)的可靠性。
3.3網絡接口芯片
網絡接口芯片采用Realtek公司的RTL8019AS,它是一種高度集成的以太網控制芯片,能簡單的實現(xiàn)Plug and Play并兼容NE2000、掉電等特性。同時還支持全雙工模式,能夠實現(xiàn)網絡數(shù)據(jù)的同時發(fā)送和接收。RTL8019AS芯片內部集成了DMA控制器、ISA總線控制器和16K SRAM、網絡PHY收發(fā)器。
3.4其它模塊
RS232電路有兩個作用,首先可以用作在系統(tǒng)編程(ISP),方便了LPC2292中軟件的升級和調試,提高了效率;其次,在系統(tǒng)運行時,充當與外界通訊的一個通道。I2C和CAN電路可以用于擴展外圍設備,完成系統(tǒng)在工業(yè)現(xiàn)場的控制任務和數(shù)據(jù)采集任務等。
4軟件系統(tǒng)設計
該系統(tǒng)的軟件主要由以下幾個部分組成:嵌入式操作系統(tǒng)、嵌入式TCP/IP協(xié)議棧、嵌入式Web服務器。
4.1嵌入式操作系統(tǒng)
為了滿足多任務和實時性的要求,本系統(tǒng)移植了嵌入式多任務實時操作系統(tǒng)μC/OS-II,并針對系統(tǒng)的具體情況和相應軟硬件資源的情況,做了適當?shù)牟眉艉托薷摹?/p>
4.2嵌入式TCP/IP協(xié)議棧
為了搭建一個Web服務器平臺,網絡協(xié)議棧是必不可少的。TCP/IP協(xié)議是目前廣泛應用的網絡協(xié)議棧,并且成了事實上的國際標準。本系統(tǒng)設計并實現(xiàn)了針對嵌入式系統(tǒng)的簡易TCP/IP協(xié)議棧,該協(xié)議棧利用μC/OS-II實時操作系統(tǒng)的信號機制來實現(xiàn)多任務和可重入的特性,并且完全使用ANSIC進行編寫,在設計實現(xiàn)時充分考慮了重用性和可移植性,可以像μC/OS-II那樣支持多種CPU。
4.3嵌入式Web服務器
在整個軟件體系中,嵌入式Web服務器處于最上層,在它之下的是上述的嵌入式操作系統(tǒng)和嵌入式TCP/IP協(xié)議棧。嵌入式Web服務器除了實現(xiàn)靜態(tài)文檔以外,還利用嵌入式服務器端包含(ESSI)技術實現(xiàn)了動態(tài)文檔,從而支持實時顯示系統(tǒng)的工作狀態(tài);此外,通過嵌入式通用網關接口(ECGI)技術實現(xiàn)了瀏覽器端數(shù)據(jù)向服務器的傳遞,從而為對系統(tǒng)的控制提供了數(shù)據(jù)通道。
4.3.1嵌入式Web服務器層次模型
如圖4所示,嵌入式Web服務器包含四個層次,分別為套接字層、協(xié)議解析層、功能模塊層和用戶定義層。套接字層負責本系統(tǒng)與網絡上的數(shù)據(jù)收發(fā);協(xié)議解析層負責解析HTTP協(xié)議,從中獲取有效數(shù)據(jù)或按照HTTP協(xié)議要求,生成HTTP協(xié)議報文;功能模塊層有三個部分,分別是嵌入式文件系統(tǒng)(EFS)、嵌入式服務器端包含(ESSI)、嵌入式通用網關接口(ECGI);用戶定義層的三個部分由用戶(開發(fā)人員)自定義,從而在不改變其他模塊的情況下,增加、減少或修改系統(tǒng)的功能,使得系統(tǒng)具有二次開發(fā)功能。

4.3.2嵌入式文件系統(tǒng)
為了方便Web服務器的實現(xiàn),設計并實現(xiàn)了一個嵌入式文件系統(tǒng)[10-12]用來存儲網頁。此文件系統(tǒng)結構簡潔、效率高,所有文件被集合成一個順序結構,文件系統(tǒng)中每個文件包含一下幾個域:HEAD,文件報頭,兩個字節(jié),標記一個文件的開始(0xFA, 0xF3);NAME,文件名,長度不定,以NULL結尾; SIZE,文件長度,四個字節(jié),指示文件長度(以字節(jié)為單位);FILE,文件內容,長度由SIZE指定。
4.3.3用戶定義層
用戶定義層為用戶開放了系統(tǒng)的編程接口,包括三個方面:
(1)文件系統(tǒng)構造。當用戶需要更改Web服務器的網頁時,只需在PC上用任何一種網頁設計工具設計好網頁,然后用ConverFile工具轉化稱fiLEData. c,即完成了文件系統(tǒng)的設計。
(2)ESSI變量定義。如需在瀏覽器上顯示設備的工作狀態(tài)等信息,可為每個狀態(tài)定義一個變量,并綁定一個能夠返回該狀態(tài)值的函數(shù)即可。
(3)ECGI句柄定義。為了在服務器端獲得用戶的命令信息,需要為每一個命令定義一個虛擬網址,并綁定該網址到一個服務器端的函數(shù),該函數(shù)獲得瀏覽器端發(fā)送過來的參數(shù),執(zhí)行相應的命令。
5實驗結果分析
為了驗證方案的可行性和實用性,在上述的軟硬件平臺的基礎上,搭建了一個測試環(huán)境:在ARM處理器上外接八個LED指示燈,通過嵌入式Web服務器顯示并控制每一個LED指示燈的亮和滅。系統(tǒng)測試的網絡環(huán)境如圖5所示,該網絡由兩個網段組成,用一臺路由器連接,網段一的地址為172. 18. 136. 0/24,段內連接終端1和嵌入式設備,網段二的地址為172.18. 135. 0/24,段內連接終端2和終端3,具體的地址分配如圖5所示。嵌入式Web服務器運行在IP地址為172. 18. 136. 8的嵌入式設備上,測試結果如圖6。結果表明,無論是在同一網段內的終端1上訪問嵌入式Web服務器,還是在不同網段的終端2和終端3上訪問嵌入式We服務器,系統(tǒng)都可以正常、穩(wěn)定地運行,并實現(xiàn)對嵌入式設備的監(jiān)控功能。


以上設計及實現(xiàn)的通用嵌入式Web服務器模塊,可移植到多種ARM7系列的處理器上,采用此模塊可簡化系統(tǒng)的設計,加快開發(fā)速度,具有一定的應用前景。
-
嵌入式
+關注
關注
5202文章
20516瀏覽量
335205 -
Web
+關注
關注
2文章
1307瀏覽量
74673 -
服務器
+關注
關注
14文章
10292瀏覽量
91585
發(fā)布評論請先 登錄
基于ARM和Linux的嵌入式Web服務器的構建及應用
如何實現(xiàn)嵌入式Web服務器的設計?
如何實現(xiàn)對嵌入式WEB服務器系統(tǒng)的控制設計
基于ARM的嵌入式uClinux系統(tǒng)設計與Web服務器應用的
基于嵌入式WEB的AllLightSYS系統(tǒng)的設計與實現(xiàn)
基于嵌入式Web服務器的智能家居主控制系統(tǒng)
嵌入式Web服務器的實現(xiàn)及其CGI應用
基于嵌入式系統(tǒng)的Web服務器建立設計
嵌入式web服務器
嵌入式web服務器系統(tǒng)設計,嵌入式Web服務器的設計與實現(xiàn)
嵌入式web服務器系統(tǒng)設計,基于-ARM簡單嵌入式WEB服務器系統(tǒng)設計.doc
嵌入式web服務器系統(tǒng),嵌入式Web服務器的設計與實現(xiàn)
基于嵌入式Web服務器的遠程控制系統(tǒng)設計
基于嵌入式的通用型WEB服務器的控制系統(tǒng)的設計
評論