當前位置:首頁 > 消費電子 > 消費電子
[導讀]隨著計算機技術和通訊技術的不斷發(fā)展,互聯(lián)網和嵌入式智能儀器得到越來越廣泛的應用,人類社會進入后PC時代。本文主要介紹了嵌入式Web服務器設計方案,以及實現(xiàn)和主要應用。

1.引言

嵌入式Web服務器(Embedded Web Server,EWS)是指將Web服務器嵌入到現(xiàn)場測試和控制設備中,在相應的硬件平臺和軟件系統(tǒng)的支持下,使傳統(tǒng)的測試和控制設備轉變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術為核心的基于互聯(lián)網的網絡測試和控制設備。

嵌入式Web服務器簡化了傳統(tǒng)服務器的系統(tǒng)結構,在嵌入式設備上它同時實現(xiàn)信息傳輸和網絡接口的功能。嵌入式Web服務器基于HTTP協(xié)議運作,有標準的接口形式和通信協(xié)議。它可以向任何接入它所在網絡的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面。Web技術的開放性和平臺獨立特性能夠降低開發(fā)難度,減少軟件系統(tǒng)和通信系統(tǒng)的設計維護工作量,提高了現(xiàn)場測試和控制設備的管理水平。

2.嵌入式WEB服務器總體設計方案

接入Internet有很多種接入方式:電話撥號接入、ISDN,ADSL、以太網接入等,其中以太網作為一種廉價、高效的Internet接入方式,已經得到了非常廣泛的應用,本文的Internet接入采用以太網方式。

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

(1)嵌入式Web服務器的一般結構

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

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

由于嵌入式系統(tǒng)硬件資源有限,嵌入式Web服務器的硬件結構不能很復雜,實時操作系統(tǒng)的系統(tǒng)內核、TCP/IP協(xié)議棧、各種Web文檔都必須存儲在FLASH中,這對軟件系統(tǒng)設計提出了較高的要求。嵌入式Web服務器應用系統(tǒng)的硬件結構如圖1所示。

 

 

(2)系統(tǒng)的硬件設計方案

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

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

H1102是一款耦合隔離變壓器,用來對網絡上的脈沖進行轉換和濾波。H1102聯(lián)接RJ45接頭,可以直接接入以太網。

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

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

(3)系統(tǒng)的軟件設計方案

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

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

1)以太網控制器驅動程序是指LPC2132微控制器對ENC28J60芯片的驅動、控制過程。

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

3)動態(tài)網頁的實現(xiàn)。使用CGI技術,可以實現(xiàn)動態(tài)信息的交換,從而達到遠程監(jiān)視、控制的目的。

軟件設計中的另一任務是確定開發(fā)語言。對于嵌入式系統(tǒng)來說,掌握匯編語言的編程是至關重要的,即使使用高級語言來進行編程,通過閱讀編譯出來的匯編代碼,也可以發(fā)現(xiàn)高級語言編程時需要優(yōu)化的地方,從而提高高級語言所編寫代碼的執(zhí)行效率。

同時嵌入式系統(tǒng)的資源緊張,要合理利用資源,提高運行效率,關鍵部分、時間要求嚴格的部分還是需要使用匯編語言來完成。但匯編語言在代碼編寫和維護上效率較低,通用性不強,在復雜的項目上還是選用高級語言比較合理。在本設計中,采用匯編語言編寫ARM7內核的啟動代碼(boot loader),其它的程序采用C語言作為設計語言。它有很明顯的優(yōu)勢:C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,有豐富的庫函數(shù)、運算速度快,而且可以直接實現(xiàn)對系統(tǒng)硬件的控制,較匯編語言有更好的可讀性。[!--empirenews.page--]

3.嵌入式Web服務器設計的實現(xiàn)

(1)主程序流程

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

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

ARP處理模塊主要完成接收ARP請求并發(fā)送ARP響應;ICMP處理模塊主要完成接收ICMP回顯請求并發(fā)送ICMP回顯響應;TCP數(shù)據(jù)處理模塊主要完成對TCP數(shù)據(jù)報及HTTP數(shù)據(jù)的處理。

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

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

(2)嵌入式Web服務器的實現(xiàn)

1)網絡接口的實現(xiàn)

網絡接口是Web服務器與外界交流的接口。操作系統(tǒng)提供網絡協(xié)議棧的支持,最主要是TCP/IP以及socket套接字系統(tǒng)函數(shù)庫。

網絡接口使用操作系統(tǒng)提供的socket函數(shù)族建立可遠程通信的套接字。它分兩部分,一部分在系統(tǒng)初始化的時候建立,另一部分在HTTP引擎模塊里面實現(xiàn)。網絡接口模塊的功能描述為:首先建立socket.socket是BSOUnix提出的進程間通信(IPC)機制,它是一種雙向的通信接口,使得可以在兩個不同進程(通常是網絡上的不同節(jié)點的進程)之間可以直接通信。

2)中心處理模塊

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

3)動態(tài)文件預處理器

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

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

4.嵌入式Web服務器的主要應用

嵌入式Web服務器是應用在嵌入式系統(tǒng)上的Web服務器架構。它的主要應用是設備管理和應用程序的網絡擴展。

嵌入式Web服務器作為一個后臺程序直接在嵌入式設備上運行,用戶通過網絡對設備配置、控制、監(jiān)測,保證設備安全、有效地運作。

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

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉