新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)

一種實(shí)用的嵌入式Web服務(wù)器設(shè)計(jì)

作者: 時(shí)間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

摘要:數(shù)字化變電站越來越多地采用以太網(wǎng)技術(shù),針對(duì)各種保護(hù)和控制IED(Integlrated Drive Electronlcs)的參數(shù)配置以及狀態(tài)監(jiān)測(cè)問題,本文通過對(duì)Linux平臺(tái)上的BOA和CGIC的源碼進(jìn)行研究和修改,了一種。它可方便地在支持TCP/IP協(xié)議的非Linux的系統(tǒng)上運(yùn)行,在不影響IED原有功能的前提下對(duì)用戶提供服務(wù),同時(shí)提出了一種適合系統(tǒng)使用的訪問權(quán)限認(rèn)證和對(duì)頁(yè)面的管理及動(dòng)態(tài)生成機(jī)制,并支持Web方式下文件的上傳與下載。它為變電站現(xiàn)場(chǎng)嵌入式IED的遠(yuǎn)端訪問與控制提供了一種新的思路和方法。
關(guān)鍵詞:數(shù)字化變電站;嵌入式IED;TCP/IP;嵌入式Web;BOA;CGIC

引言
數(shù)字化變電站是建立在網(wǎng)絡(luò)通信技術(shù)和電子技術(shù)基礎(chǔ)上的一種新型變電站自動(dòng)化系統(tǒng),其中一個(gè)重要特征就是二次設(shè)備的網(wǎng)絡(luò)化。目前在國(guó)內(nèi)的數(shù)字化變電站試點(diǎn)中,已經(jīng)出現(xiàn)了大批支持以太網(wǎng)和TCP/IP協(xié)議的嵌入式IED,在具體開發(fā)和應(yīng)用中發(fā)現(xiàn),由于現(xiàn)場(chǎng)環(huán)境的復(fù)雜多變以及客戶需求的多樣性,經(jīng)常需要對(duì)這些IED進(jìn)行參數(shù)的配置和修改。但廠家多采用專門的配置軟件來進(jìn)行,操作界面不夠統(tǒng)一,給現(xiàn)場(chǎng)操作帶來諸多不便。而采用Web服務(wù)器技術(shù),則只需要瀏覽器便可實(shí)現(xiàn)對(duì)IED參數(shù)的在線修改與配置,從而極大地方便了對(duì)設(shè)備的維護(hù)和管理。目前,Web服務(wù)器功能在數(shù)字化變電站中,多用于調(diào)度與監(jiān)控端,單純?cè)贗ED上實(shí)現(xiàn)Web服務(wù)器功能的報(bào)道尚不多見。本文通過對(duì)Linux平臺(tái)上運(yùn)行的BoA Web服務(wù)器和CGIC的研究,將原本兩個(gè)獨(dú)立運(yùn)行的程序整合為多任務(wù)系統(tǒng)中的一個(gè)任務(wù)實(shí)體,并對(duì)其進(jìn)行相應(yīng)的精簡(jiǎn)和修改;并實(shí)現(xiàn)了一種可在一般嵌入式系統(tǒng)上運(yùn)行的,既相對(duì)簡(jiǎn)單又響應(yīng)快速的嵌入式Web服務(wù)器。目前已在相關(guān)裝置上得到應(yīng)用,取得了較好的使用效果。
BOA和CGIC是兩個(gè)基于Linux的開源軟件,代碼采用C語言實(shí)現(xiàn),程序小巧靈活、執(zhí)行高效,非常適合于嵌入式系統(tǒng)的應(yīng)用環(huán)境。但目前多用于Linux或μClinux的系統(tǒng)平臺(tái)上。鮮見有用于其他系統(tǒng)的相關(guān)報(bào)道。
其中BOA是一個(gè)單任務(wù)的HTTP服務(wù)器,它的設(shè)計(jì)目標(biāo)主要是速度和安全。因此,它不像傳統(tǒng)的Web服務(wù)器,為每個(gè)訪問連接單獨(dú)開啟一個(gè)進(jìn)程,也不會(huì)為處理多個(gè)連接而開啟多個(gè)自身的拷貝。BOA對(duì)所有活動(dòng)的HTTP在內(nèi)部進(jìn)行連接處理,只為每個(gè)CGI連接啟動(dòng)新的進(jìn)程,在同等硬件下相比其他服務(wù)器具有更快的訪問速度。而CGIC是一個(gè)為支持通用網(wǎng)關(guān)接口CGI(Common Gateway Interface)而開發(fā)的C語言庫(kù),通常和BOA聯(lián)合使用,它可接收由瀏覽器通過GET或POST方法傳輸過來的表單及文件數(shù)據(jù),并提供了對(duì)這些數(shù)據(jù)進(jìn)行解析的方法,使用非常方便,且源碼也易通過因特網(wǎng)獲得。
基于以上原因,本文主要基于這兩種技術(shù)來實(shí)現(xiàn)IED裝置內(nèi)部的嵌入式web服務(wù)器功能。

1 系統(tǒng)概述
嵌入式Web服務(wù)器EWS(Embedded Web Server)是指將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瀏覽器和EWS的交互過程如圖1所示。

本文引用地址:http://butianyuan.cn/article/149122.htm

a.jpg


首先由Web瀏覽器發(fā)出HTTP請(qǐng)求報(bào)文,并建立TCP連接,然后由EWS根據(jù)其請(qǐng)求報(bào)文來提供相應(yīng)的狀態(tài)和頁(yè)面信息,若只是請(qǐng)求靜態(tài)頁(yè)面,則無需通過CGI,直接返回該對(duì)應(yīng)頁(yè)面即可;反之則需要通過CGI來進(jìn)行相關(guān)報(bào)文數(shù)據(jù)的解析,并根據(jù)解析結(jié)果來生成動(dòng)態(tài)頁(yè)面以返回給客戶端瀏覽器。這樣,完成一次交互過程后,即可釋放該TCP連接。
本文的設(shè)計(jì)目標(biāo)是將Web服務(wù)器的功能僅作為DSP/BROS中的一個(gè)任務(wù),只在監(jiān)聽到HTTP協(xié)議對(duì)應(yīng)端口(通常為80)上的TCP連接請(qǐng)求時(shí),才運(yùn)行該任務(wù)。但是傳統(tǒng)的BOA并沒有對(duì)用戶訪問權(quán)限的控制對(duì)頁(yè)面的管理也依賴于Linux系統(tǒng),因此,結(jié)合變電站運(yùn)行的特殊性,本文所設(shè)計(jì)的EWS系統(tǒng)結(jié)構(gòu)框圖如圖2所示。

b.jpg


系統(tǒng)運(yùn)行時(shí),由HTTP連接管理模塊負(fù)責(zé)對(duì)網(wǎng)絡(luò)端口進(jìn)行監(jiān)聽,當(dāng)監(jiān)聽到有連接請(qǐng)求到達(dá)后,即進(jìn)入HTTP報(bào)文解析模塊進(jìn)行處理,如果解析錯(cuò)誤,則直接返回HTTP連接管理模塊,發(fā)出相應(yīng)的響應(yīng)報(bào)文并關(guān)閉該連接;否則,則根據(jù)對(duì)報(bào)文解析的結(jié)果,提取出本次要訪問的URL,并將其交給訪問權(quán)限管理模塊,以查看該客戶端是否具有足夠的權(quán)限;然后再轉(zhuǎn)由頁(yè)面文檔管理模塊進(jìn)行處理,根據(jù)對(duì)報(bào)文的初步解析以及對(duì)訪問權(quán)限的判斷,由頁(yè)面文檔管理模塊來決定是否調(diào)用CGI,以實(shí)現(xiàn)文件的下載上傳及響應(yīng)文檔的生成,從而將正確的響應(yīng)報(bào)文及頁(yè)面文檔轉(zhuǎn)交給HTTP連接管理模塊進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的應(yīng)答回送。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉