999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式服務器在監(jiān)測控制中的應用

2011-06-01 03:21:42范郁寶
自動化儀表 2011年4期
關(guān)鍵詞:嵌入式定義結(jié)構(gòu)

范郁寶

(上海電機學院高職學院,上海 200093)

0 引言

隨著網(wǎng)絡技術(shù)的不斷發(fā)展,各種嵌入式設備進行網(wǎng)絡互聯(lián)變?yōu)楝F(xiàn)實。同時,隨著實時操作系統(tǒng)和TCP/IP協(xié)議在嵌入式設備中的廣泛應用,可使用標準瀏覽器在Internet網(wǎng)絡的遠端對這些設備進行訪問與控制。瀏覽器通過存儲在現(xiàn)場設備中的網(wǎng)頁,動態(tài)地反映現(xiàn)場設備的運行狀態(tài)以及執(zhí)行操作后的反饋信息,同時,嵌入式Web服務器與現(xiàn)場控制系統(tǒng)、儀器儀表相連結(jié),就可通過Internet實現(xiàn)遠程監(jiān)控和控制系統(tǒng)維護。因此,嵌入式Web技術(shù)對這些眾多的聯(lián)網(wǎng)設備的訪問簡單方便,易于實現(xiàn)。利用這種特性,可采用多種方式實現(xiàn)對設備狀態(tài)的實時監(jiān)測,從而達到可靠的控制效果

1 嵌入式Web技術(shù)的應用方式

在工業(yè)現(xiàn)場中,由于各種智能儀表的運算能力、儲存空間和其他各種硬件資源均有不同,因此,它們接入到網(wǎng)絡中的方式也不同,嵌入式Web技術(shù)在具體的實現(xiàn)中有以下幾種方式。

1.1 設備內(nèi)部實現(xiàn)方式

在設備內(nèi)部實現(xiàn)Web服務器的關(guān)鍵就是用純軟件來實現(xiàn)TCP/IP的協(xié)議棧[1],使嵌入式Web服務器軟件在協(xié)議棧上運行,并可以直接連接到網(wǎng)絡上。這種方式通常要求CPU具有很強的運算處理能力,TCP/IP的協(xié)議棧通常有串口與modem連接,或可通過以太網(wǎng)芯片組連接到以太網(wǎng)上。這種方式的Web服務器結(jié)構(gòu)如圖1所示。

圖1 軟件實現(xiàn)的Web服務器Fig.1 The Web server implemented by software

通過軟件實現(xiàn)Web服務器的特點是設備可以直接掛接到網(wǎng)絡上,用到的硬件只有CPU和接口芯片,不需要其他輔助硬件,硬件設計簡單。而其不足之處在于CPU處理能力要求較高,通常為32位運算能力的處理器;代碼鼠很大,需要較大的存儲空間;純軟件協(xié)議棧,軟件調(diào)試復雜。

1.2 硬件實現(xiàn)方式采用硬件實現(xiàn)Web服務器的結(jié)構(gòu)如圖2所示。

圖2 硬件實現(xiàn)的Web服務器Fig.2 The Web server implemented by hardware

在這種方式下,設備完全由硬件來實現(xiàn)TCP/IP協(xié)議棧,目前己經(jīng)有這種功能的芯片投入市場。也可以采用能實現(xiàn)TCP/IP的硬件電路板,通過串口接入到現(xiàn)場智能設備上,從而實現(xiàn)TCP/IP協(xié)議。現(xiàn)場設備的處理器只需要運行嵌入式Web服務器軟件即可。

通過硬件實現(xiàn)Web服務器的優(yōu)點是設備可以直接掛接到網(wǎng)絡上;全部的TCP/IP協(xié)議棧由外圍芯片硬件實現(xiàn),減輕了調(diào)試軟件的負擔;CPU不用運行TCP/IP協(xié)議棧軟件,減輕了處理負擔,因而對CPU的性能要求降低,減少了存儲器的使用空間。其缺點是增加了處理TCP/IP的外圍芯片成本;增加了硬件設計復雜度和硬件調(diào)試難度。

1.3 外部網(wǎng)關(guān)實現(xiàn)方式

采用外部網(wǎng)關(guān)實現(xiàn)嵌入式Web服務器的結(jié)構(gòu)如圖3所示。

圖3 外部網(wǎng)關(guān)實現(xiàn)嵌入式Web服務器Fig.3 The Web embedded implemented by external gateway

這種結(jié)構(gòu)由一臺PC機充當外部網(wǎng)關(guān)[2],Web服務器運行完整的TCP/IP協(xié)議和部分嵌入式Web服務軟件,并通過串口等方式使每臺PC機可以控制一個或多個現(xiàn)場設備。外界對現(xiàn)場設備進行訪問時,Web服務器先要通過網(wǎng)關(guān)進行解析,然后與現(xiàn)場設備交換信息,提取網(wǎng)頁等,并將最終的信息送給外部訪問者。

2 GoAhead嵌入式服務器應用研究

GoAhead服務器是源代碼公開的嵌入式Web服務器[3],是為嵌入式設備而設計的,可以在 www.GoA-head.com網(wǎng)站上下載。這個開放、免費并且標準化的產(chǎn)品可以快速地與嵌入式設備結(jié)合,實現(xiàn)Web解決方案。它在標準的Web服務器的基礎(chǔ)上將源代碼簡化,通過模塊化的方法將各個處理構(gòu)件集中到單獨的文件中,如處理與Socket有關(guān)的函數(shù)均在Sock.c和 Sock-Gen.c中[4]、處理用戶管理的函數(shù)均在 um.c中以及處理安全認證的均在security.c中等,從而使得體系結(jié)構(gòu)十分清晰,源碼也易于理解。

GoAhead嵌入式Web服務器的開放源代碼如同Linux一樣,也是開放源代碼的軟件產(chǎn)品。開發(fā)源代碼可以有助于開發(fā)者更好地理解軟件的內(nèi)部構(gòu)成,也可以得到更多的技術(shù)內(nèi)幕,這是選擇GoAhead的原因。其他一些源代碼不開放的嵌入式Web服務器通常需要利用專門的開發(fā)工具對這些軟件進行開發(fā),因此增加了軟件開發(fā)的復雜性,也提高了購買開發(fā)工具產(chǎn)品的成本。GoAhead的體系結(jié)構(gòu)如圖4所示。

圖4 GoAhead的體系結(jié)構(gòu)Fig.4 Architecture of GoAhead

2.1 動態(tài)網(wǎng)頁的支持

標準Web服務器通常含有大量的靜態(tài)存儲網(wǎng)頁,而嵌入式Web服務器則根據(jù)需求動態(tài)地生成所需的網(wǎng)頁。這些網(wǎng)頁需要實時地反映設備的狀態(tài)、采集的信號、報警的信息和反饋操作的執(zhí)行結(jié)果等。嵌入式Web服務器必須要求網(wǎng)頁能夠隨嵌入式設備的變化而動態(tài)更新和生成[5]。GoAhead采用ASP的應用和嵌入式JavaScript兩種方法實現(xiàn)動態(tài)網(wǎng)頁。

許多嵌入式Web服務器都是通過專有的方法來產(chǎn)生動態(tài)數(shù)據(jù)的,而GoAhead則更多地采用工業(yè)標準來實現(xiàn),如ASP和JavaScript。ASP是微軟開發(fā)的用于產(chǎn)生動態(tài)網(wǎng)頁的方法,允許多種腳本語言來動態(tài)地表示各種數(shù)據(jù),而不用對服務器進行重新編譯。GoA-head中的JavaScript是一種腳本語言,已經(jīng)得到了廣泛的應用。但是這種腳本語言的解釋器所需要的代碼空間為200~400 kB,不適用于嵌入式設備中,而GoA-head采用的是JavaScript的一個子集,稱之為Embedded JavaScript,它只需要完成嵌入式設備通常需要的流程控制、變量賦值和結(jié)構(gòu)測試等。

2.2 GoAhead服務器的安全保護

GoAhead嵌入式Web服務器采用安全套接層SSL(secure socket layer)協(xié)議在TCP/IP網(wǎng)絡上進行加密和認證,支持更高級的安全認證機制DAA(digest access authentication)。同時,通過用戶管理,可以給不同的用戶設置不同的訪問權(quán)限。

2.3 GoAhead服務器的系統(tǒng)設備

許多嵌入式設備通常沒有磁盤文件系統(tǒng)或其他大容量存儲設備,但仍需要通過網(wǎng)頁對其進行訪問和控制,這就要求嵌入式Web服務器能夠通過ROM或Flash這樣的存儲設備來進行網(wǎng)頁的存儲。GoAhead先對要存儲的網(wǎng)頁進行編譯,將所有的網(wǎng)頁轉(zhuǎn)換成一個大的矩陣數(shù)組,并將最終生成的可執(zhí)行文件存儲在ROM中;在網(wǎng)頁提取時,通過另外的解釋程序?qū)@些數(shù)組進行解壓縮轉(zhuǎn)換成所需的網(wǎng)頁,從而避免對文件系統(tǒng)的依賴。

2.4 GoAhead服務器與儀器的集成

嵌入式Web服務器能與現(xiàn)有的設備進行很好的集成,設計方便。這里的集成通常是指兩個方面:①嵌入式Web服務器與實時操作系統(tǒng)的集成;②嵌入式Web服務器與設備應用程序的集成。

對于前者,GoAhead提供了操作系統(tǒng)抽象層,在移植到不同的操作系統(tǒng)上時,只需對系統(tǒng)抽象層的接口函數(shù)進行修改[6],就可以使服務器程序較方便地在不同操作系統(tǒng)上運行。

目前,GoAhead操作系統(tǒng)己經(jīng)在 Linux、QNX、Vxworks和Windows CE等系統(tǒng)上得到了實現(xiàn)。對于后者,可以通過不同的途徑使與設備相關(guān)的應用程序接口API與Web服務器集成。GoAhead通過動態(tài)服務網(wǎng)頁ASP和JavaScript使設備應用程序產(chǎn)生的動態(tài)結(jié)果鏈接到網(wǎng)頁上。

2.5 GoAhead源代碼分析

GoAhead自身定義了兩個重要的結(jié)構(gòu)體,即維護每一個socket()所有信息的結(jié)構(gòu)體類型socket_t和維護每個Web訪問信息的結(jié)構(gòu)體類型WebsRec。GoA-head服務器主流程如圖5所示。

圖5 GoAhead服務器的主流程Fig.5 Main process of GoAhead server

2.6 GoAhead在操作系統(tǒng)上的移植

盡管GoAhead已經(jīng)能夠移植到很多操作系統(tǒng)上[7],如 Linux、Windows、Vxworks、和 ECOS 等,但目前還沒有Nucleus上的版本。因此,只能選擇一個與Nucleus最接近的操作系統(tǒng)ECOS,并參照GoAhead在ECOS上的軟件移植版本進行修改。GoAhead服務器的Socket接口采用的是Berkley的標準API,Nucleus的NET部分也是遵循Berkley的標準,這就增加了移植的方便性。由于Nucleus的NET部分是一個精簡的TCP/IP協(xié)議棧,有許多功能函數(shù)或者函數(shù)選項沒有實現(xiàn),同時一些結(jié)構(gòu)體的定義也經(jīng)過了簡化,這就給移植帶來了很多需要考慮的問題。

2.6.1 對Socket接口函數(shù)的替代

GoAhead總共有30多個源文件(C文件),但是其中主要的Socket接口函數(shù)所在的文件是Sock.c、Sock-Gen.c、主函數(shù)(mainfunction.c)和幾個頭文件。其中Sock.c和SockGen.c文件中的函數(shù)均需要調(diào)用TCP/UDP套接字的Socket接口函數(shù),是GoAhead集中維護的位于Socket API和Web API中間的一層。由于在這兩個文件中均是調(diào)用標準的Berkley Socket API,因此,在移植時需要把這些Socket API完全替換成Nucleus的Socket API。同時,在調(diào)用函數(shù)時,由于參數(shù)的類型有差異,需要對參數(shù)進行強制轉(zhuǎn)換。替代的API函數(shù)如表1所示。

表1 Socket API函數(shù)替代表Tab.1 Substitution for Socket API functions

2.6.2 對類型和結(jié)構(gòu)體的替代和更改

①基本類型

GoAhead自身定義了許多基本數(shù)據(jù)類型,但與Nucleus相對應定義的類型表達方式不一致,這時就需要在Nucleus的源文件 target.h中對應地增加這些定義[8],以使類型保持一致。

②與套接字和TCP/IP有關(guān)的類型

GoAhead采用Socket的結(jié)構(gòu)體定義與Nucleus不同,必須替代,而且在對Socket結(jié)構(gòu)體賦值時,必須注意要強制轉(zhuǎn)換,其相關(guān)的結(jié)構(gòu)對照如表2所示。

表2 套接字結(jié)構(gòu)體對應關(guān)系Tab.2 Correspondence relationship of the Socket structure

2.6.3 GoAhead 編譯預處理的定義

對于編譯器來說,要想正確編譯GoAhead和Nucleus移植后的源代碼,就得把各自的編譯預處理定義加在一起,且相互之間不能產(chǎn)生語義上的歧義。

此外,在GoAhead的頭文件Uemf.h中有專為移植后的操作系統(tǒng)(如Linux、WindowsCE、和EEOS等)定義的 include[9-10],所以也要為 Nucleus 移植版本定義一個條件編譯。其中,NU為編譯預處理定義,表明此版本是在Nucleus操作系統(tǒng)上運行;PLUS ucleus.h是Nucleus的內(nèi)核頭文件;netinc unet.h是Nueleus網(wǎng)絡包的頭文件,這就包含了在GoAhead中把所要用到的Nucleus頭文件,使用時就不會再出現(xiàn)問題;STX和ETX分別為數(shù)據(jù)幀的起始標志和結(jié)束標志;Data為消息正文,包含向控制器發(fā)送的控制命令以及控制器返回的數(shù)據(jù)。

3 結(jié)束語

嵌入式設備以其體積小和性能穩(wěn)定等特點成為遠程監(jiān)控系統(tǒng)的主流方向。本文主要論述了嵌入式Web服務器在遠程控制系統(tǒng)中的應用。在傳統(tǒng)的控制系統(tǒng)中引入嵌入式Web服務器,實現(xiàn)了實時、方便的遠程控制,用戶只需輸入嵌入式Web服務器的地址即可控制遠程控制系統(tǒng)[11]。軟件設計使得該系統(tǒng)程序結(jié)構(gòu)清晰,維護方便,能夠滿足系統(tǒng)對現(xiàn)場設備的控制要求,促進低端控制設備的信息化。

本系統(tǒng)的研究與實驗對遠程控制系統(tǒng)具有一定的參考價值,系統(tǒng)經(jīng)過測試,取得了比較滿意的運行效果。

[1]呂京建,肖海橋.面向二十一世紀的嵌入式系統(tǒng)綜述[J].電子質(zhì)量,2001(8):3-8.

[2]葛源,胡榮強,吳小娟.嵌入式Web服務器與plc的通信實現(xiàn)[J].電力自動化設備,2005,25(12):70 -72.

[3]賀磊.一種嵌入式實時操作系統(tǒng)Nucleus plus[J].信息工程大學學報,2000(4):12-25.

[4]張湘,肖建.嵌入式系統(tǒng)和嵌入式操作系統(tǒng)[J].世界儀表與自動化,2002,6(5):12 -16.

[5]魏忠,蔡勇,雷紅衛(wèi).嵌入式系統(tǒng)開發(fā)詳解[M].北京:電子工業(yè)出版社,2006:63-70.

[6]錢斌,徐海云,林少華.嵌入式Web服務器在CTM系統(tǒng)中的應用[J].微計算機信息,2006(17):99-101.

[7]羅蕾.嵌入式實時操作系統(tǒng)及應用開發(fā)[M].北京:北京航空航天大學出版社,2007:6-20.

[8]吳小紅,楊海濤,王萬良.基于Web的遠程控制實驗系統(tǒng)的設計[J].浙江工業(yè)大學學報,2004(6):700-705.

[9]李善平,劉文峰,王煥龍,等.Linux與嵌入式操系統(tǒng)[M].北京:清華大學出版社,2003:25-25.

[10]王傳啟,鄧文棟,金敏.工業(yè)控系統(tǒng)制中嵌入式Web服務器的設計與實現(xiàn)[J].計算機工程與應用,2002(10):227-230.

[11]劉立芳,齊小剛.遠程設備實時監(jiān)控管理系統(tǒng)的設計與實現(xiàn)[J].計算機工程,2000,26(4):91 -92.

猜你喜歡
嵌入式定義結(jié)構(gòu)
《形而上學》△卷的結(jié)構(gòu)和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
論《日出》的結(jié)構(gòu)
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 日韩一区精品视频一区二区| 欧美日韩免费观看| 国产成人综合在线观看| 欧美国产日韩在线播放| 二级毛片免费观看全程| 亚洲国产欧美目韩成人综合| 激情午夜婷婷| 狠狠躁天天躁夜夜躁婷婷| 久久香蕉国产线看观看亚洲片| 在线观看国产一区二区三区99| 成年人国产视频| 91丨九色丨首页在线播放| 免费女人18毛片a级毛片视频| 中文字幕有乳无码| 无码AV高清毛片中国一级毛片| 亚洲天堂日韩av电影| 亚洲国产欧美自拍| 亚洲国产成人精品无码区性色| 永久免费无码成人网站| 91啦中文字幕| 亚洲高清中文字幕在线看不卡| 四虎永久在线精品影院| 色婷婷成人网| 91香蕉视频下载网站| 激情六月丁香婷婷| 国产无码高清视频不卡| 国产主播福利在线观看| 色屁屁一区二区三区视频国产| 一本色道久久88| 91免费观看视频| 色精品视频| 99久久无色码中文字幕| 成年看免费观看视频拍拍| 亚洲日韩高清无码| 天天操精品| 久久一本精品久久久ー99| 色悠久久综合| 亚洲日本www| 国产成人亚洲无吗淙合青草| 国产成人1024精品| 日韩欧美国产三级| 国产熟睡乱子伦视频网站| 国产精品国产三级国产专业不| 欧美久久网| 2020最新国产精品视频| 在线看免费无码av天堂的| 国产中文一区二区苍井空| 四虎免费视频网站| 精品视频在线一区| 狠狠躁天天躁夜夜躁婷婷| 91亚洲影院| 国产成年女人特黄特色毛片免| 高清无码一本到东京热| 国产成人欧美| 亚洲欧美在线综合一区二区三区 | 青青青亚洲精品国产| 天天躁日日躁狠狠躁中文字幕| 色偷偷男人的天堂亚洲av| 99精品在线看| 国产男女免费完整版视频| 国产91熟女高潮一区二区| 成人年鲁鲁在线观看视频| 国产日本一区二区三区| 日本一区高清| 亚洲AV无码乱码在线观看代蜜桃| 日本在线国产| 国产视频只有无码精品| 中文字幕乱码中文乱码51精品| 国内精品一区二区在线观看| 中字无码av在线电影| 成人午夜视频免费看欧美| 久久午夜夜伦鲁鲁片不卡| 日韩欧美中文| 久久 午夜福利 张柏芝| 中文字幕一区二区人妻电影| 欧美a√在线| 精品午夜国产福利观看| 美女扒开下面流白浆在线试听| 国产精品久久久久鬼色| 毛片网站在线播放| 四虎精品黑人视频| 亚洲国产成人综合精品2020|