<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 可移植的嵌入式WEB服務(wù)器軟件設計

可移植的嵌入式WEB服務(wù)器軟件設計

作者: 時(shí)間:2012-03-26 來(lái)源:網(wǎng)絡(luò ) 收藏

這種結構下操作系統服務(wù)函數一般不會(huì )被直接調用,而是將其包裝到一個(gè)“操作系統適配層”的庫中,把核心功能模塊與操作系統隔離開(kāi)來(lái),無(wú)論是更改底層的操作系統,還是上層的應用界面,核心功能模塊都可以做到最大限度的源代碼級兼容,當整個(gè)軟件需要移植到其他操作系統時(shí),只要簡(jiǎn)單地移植操作系統適配層,即可保證核心模塊能夠正確的在新環(huán)境下運行,實(shí)現項目之間核心模塊的代碼共享,并共同享有測試、升級和維護工作的結果。這種基于中間件的設計技術(shù)可以廣泛的應用在協(xié)議和事務(wù)軟件的編寫(xiě)過(guò)程中,歸納起來(lái)作為操作系統適配層的中間件應該包括以下幾個(gè)方面的功能:

1)任務(wù)管理,任務(wù)管理是操作系統的基本功能,包括創(chuàng )建任務(wù)、讀取和設置任務(wù)的優(yōu)先級、修改和檢查任務(wù)的狀態(tài);

2)內存管理,嵌入式軟件由于硬件的特殊性,使得內存的使用不能象Windows程序那樣隨意申請,同時(shí)也很難申請到大塊連續內存,中間件內存管理實(shí)現的功能就是將一些小的內存塊預先分配下來(lái),作為一個(gè)內存池供應用程序使用,這些小的內存塊可以進(jìn)行拼接,最終形成應用程序需要的緩沖區;

3)消息管理,主要作用是為不同操作系統的消息處理提供統一的外部接口,應用程序只需要按照中間件規定的模式進(jìn)行消息收發(fā)即可;

4)任務(wù)間同步,中間件應為多任務(wù)環(huán)境提供同步機制,可以采用底層操作系統的互斥量、信號量等;

5)定時(shí)管理,通過(guò)操作系統提供的單一定時(shí)器,實(shí)現應用程序的一些定時(shí)需求;

6)中斷管理,屏蔽不同硬件平臺對中斷處理上的差異;

7)網(wǎng)絡(luò )接口管理,屏蔽不同系統之間網(wǎng)絡(luò )操作的差異;

8)其他功能: 包括總線(xiàn)數據讀寫(xiě)、錯誤處理和可利用資源管理等;

2、基于中間件的嵌入式軟件

在工業(yè)監控應用領(lǐng)域,選擇構架的監控系統是非適合的,因為它不僅可以實(shí)現監控的目的,而且可以統一操作維護界面。在這種系統中,需要使用運行在現場(chǎng)的設備作為,在控制室則通過(guò)瀏覽器來(lái)查看現場(chǎng)的情況,還可以通過(guò)WEB服務(wù)器的CGI等接口,對現場(chǎng)設備進(jìn)行人為的控制。

WEB服務(wù)器采用HTTP協(xié)議與客戶(hù)端瀏覽器進(jìn)行信息交互,通過(guò)服務(wù)器應用程序可以實(shí)現對遠程設備的訪(fǎng)問(wèn)和控制。HTTP是應用層的協(xié)議,它于1990年提出,經(jīng)過(guò)多年的使用與發(fā)展,得到了不斷地完善和發(fā)展。

HTTP協(xié)議是基于請求/響應模式的,客戶(hù)機與服務(wù)器建立連接后,發(fā)送一個(gè)請求給服務(wù)器,請求的格式為:統一資源標識符、協(xié)議版本號,后邊是 MIME信息(包括請求修飾符、客戶(hù)機信息和可能的內容)。服務(wù)器接收到請求后,會(huì )給予相應的響應信息,其格式為一個(gè)狀態(tài)行(包括信息的協(xié)議版本號、一個(gè)成功或錯誤的代碼),后邊是MIME信息(包括服務(wù)器信息、實(shí)體信息和可能的內容)。

在WEB服務(wù)器中,客戶(hù)與服務(wù)器是一個(gè)相對的概念,只存在于一個(gè)特定的連接期間,即在某個(gè)連接中的客戶(hù)在另一個(gè)連接中可能作為服務(wù)器。WEB服務(wù)器運行時(shí),一直在TCP80端口(WEB服務(wù)器的缺省端口)監聽(tīng),等待連接的出現。下面是WEB服務(wù)器通過(guò)HTTP協(xié)議進(jìn)行信息交換的步驟:

1)建立連接:連接的建立是通過(guò)申請套接字實(shí)現的??蛻?hù)打開(kāi)一個(gè)套接字并把它綁定在一個(gè)端口上,如果成功,就可以通過(guò)這個(gè)套接字進(jìn)行數據收發(fā)了。

2)發(fā)送請求:打開(kāi)一個(gè)連接后,客戶(hù)機把請求消息送到服務(wù)器的監聽(tīng)端口上,服務(wù)器讀取數據,并從接收數據中識別請求動(dòng)作。HTTP/1.0 請求消息的典型格式為:

請求消息 = 請求行(通用信息|請求頭|實(shí)體頭) CRLF[實(shí)體內容]

請 求 行 = 方法 請求URL HTTP版本號 CRLF

方 法 = GET|HEAD|POST|擴展方法

URL = 協(xié)議名稱(chēng)+宿主名+目錄與文件名

如: GET http://192.168.1.1/index.htm HTTP/1.0

3)發(fā)送響應:服務(wù)器在處理完客戶(hù)的請求之后,要向客戶(hù)機發(fā)送響應消息。HTTP/1.0的響應消息格式如下:

響應消息 = 狀態(tài)行(通用信息頭|響應頭|實(shí)體頭) CRLF [實(shí)體內容]

狀 態(tài) 行 = HTTP版本號 狀態(tài)碼 原因敘述

狀態(tài)碼表示響應類(lèi)型

1××   保留

2××   表示請求成功地接收

3××   為完成請求,客戶(hù)需進(jìn)一步細化請求

4××   客戶(hù)錯誤

5××   服務(wù)器錯誤

4)關(guān)閉連接:通訊結束后,客戶(hù)和服務(wù)器雙方都可以通過(guò)關(guān)閉套接字來(lái)結束TCP/IP對話(huà)。

在具體的嵌入式WEB服務(wù)器軟件中,除了受制于目標硬件有限的資源外,還有一個(gè)限制就是對文件系統的支持上,因為并不是所有的目標設備都會(huì )采用文件系統,唯一可以肯定的就是中一定會(huì )有非遺失性存儲器,如FLASH,這樣在設計嵌入式WEB服務(wù)器時(shí),需要提供一種工具,將多個(gè)WEB網(wǎng)頁(yè)文件轉換成一個(gè)數組,并在WEB服務(wù)器中建立索引,當請求某個(gè)網(wǎng)頁(yè)文件時(shí),通過(guò)這個(gè)索引來(lái)查找對應的文件數據,并發(fā)送出去。嵌入式WEB服務(wù)器軟件大致可以分為四個(gè)部分:通訊模塊、HTTP請求處理模塊、ROM文件系統、CGI接口模塊。下面是嵌入式WEB服務(wù)器軟件的模塊結構圖:



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>