技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > PC based 嵌入式控制器在WWW 平臺之整合應(yīng)用

PC based 嵌入式控制器在WWW 平臺之整合應(yīng)用

時間:2007-08-02 12:04:00來源:shixiang

導(dǎo)語:?嵌入式網(wǎng)頁服務(wù)器( EWS)所指的是在嵌入式控制器上建立一個微型的網(wǎng)頁伺服的服務(wù)

嵌入式網(wǎng)頁服務(wù)器(Embedded Web Server: EWS)所指的是在嵌入式控制器上建立一個微型的網(wǎng)頁伺服的服務(wù)。結(jié)合嵌入式系統(tǒng)的優(yōu)點,使用者可以直接透過瀏覽器來取得在EWS 上的信息之外,還可以自行設(shè)計特定的控制程序。而系統(tǒng)發(fā)展者也可以使用簡便的網(wǎng)頁編輯程序來編輯要放置于EWS 上的網(wǎng)頁。本文探討如何在最簡易的方式及低廉的成本下有效的發(fā)展網(wǎng)頁服務(wù)器的系統(tǒng)平臺。并采用泓格科技公司的Ethernet 嵌入式控制器I-7188EX/I-8431/I8831 為硬件平臺,發(fā)展一具Web Server 架構(gòu)的嵌入式控制系統(tǒng),如此的系統(tǒng)不謹(jǐn)可以提供系統(tǒng)發(fā)展者用最簡單的方式去完成一個EWS 的控制系統(tǒng)的簡單模式平臺,也可以提供一個開放式的進(jìn)階控制平臺,讓控制器設(shè)計者可以加入自定的控制程序,以滿足各種工業(yè)控制上具有高效能及易于設(shè)計及維護(hù)的嵌入式服務(wù)器。

前 言

1969 年因應(yīng)冷戰(zhàn)時期,美國國防部出資BBN(Bolt, Baranet and Newman)公司架設(shè)了ARPANET 網(wǎng)絡(luò)。ARPANET 網(wǎng)絡(luò)研究計劃的目的正是希望能創(chuàng)造出一個通訊網(wǎng)路,這個網(wǎng)絡(luò)即使遭到部分的破壞,還是可以互相聯(lián)系,并強(qiáng)調(diào)「各計算機(jī)主機(jī)間平等的對等通訊」。ARPANET 網(wǎng)絡(luò)使用的是一種稱為分封交換的技術(shù),把較大的數(shù)據(jù)切割成較小的封包,并且將每個封包給予各自的目的地地址。封包可以用不同的順序及路徑到達(dá)相同的目的地。到達(dá)后,再由目的地的計算機(jī)將所收到的封包予以重新組合起來。這種觀念稱之為動態(tài)路由,在網(wǎng)絡(luò)上的每臺主機(jī)都扮演同樣的角色。如果敵人想摧毀某一網(wǎng)絡(luò)聯(lián)機(jī)的話,必須摧毀附近所有的主機(jī)才能得逞。爾后ARPANET 開始對大眾公開,吸引了更多學(xué)術(shù)單位及私人企業(yè)投入研究。一九七九年美國國家科學(xué)基金會(NSF)也開始參與網(wǎng)絡(luò)技術(shù)研究。一九八五年撥款協(xié)助近一百所大學(xué)連上網(wǎng)絡(luò),一九八六年布建 NSFNET 將全美五大超級計算機(jī)中心和各大學(xué)連結(jié)在一起,使得越來越多的學(xué)術(shù)界菁英加入了這項研究。

想讓每一臺計算機(jī)能以網(wǎng)絡(luò)相互連結(jié),必須透過某種規(guī)則,因此就有所謂的通訊協(xié)議(protocol)出現(xiàn)。ARPANET 剛開始所采用的網(wǎng)絡(luò)通訊協(xié)議是NCP(network control protocol)。在網(wǎng)絡(luò)技術(shù)越來越復(fù)雜時,不同計算機(jī)、不同軟件、不同系統(tǒng)的網(wǎng)絡(luò)之間無法兼容的問題越來越明顯。一九七四年,后來被稱為「Internet 之父」的文特•瑟夫(Vint G. Cerf)和同伴開始研發(fā)一套能通行于所有計算機(jī)上的通訊協(xié)議,那就是現(xiàn)在計算機(jī)上網(wǎng)所使用的TCP/IP(transmission control protocol and internet protocol)。漸漸地,一個能用來儲存信息、分享信息的工具產(chǎn)生了,就是由勃勒李(Tim Berners-Lee)所發(fā)明的WWW(world wide web)。一九八九年勃勒李提出了在CERN 內(nèi)部建立一套信息網(wǎng)的系統(tǒng)。起初并未獲得響應(yīng),但他依然展開自己的理想。一九九○年他完成了超文件傳輸通訊協(xié)議(HyperText Transport Protocol ,HTTP),計算機(jī)可以利用HTTP 在Internet 上傳輸超級鏈接文件。此外,為這些文件在Internet 上的地址做了設(shè)計,他稱這個地址為URI(universal resource identifier),這也就是目前我們所熟知的URL(uniform resource locator)。同時在一九九○年末,他也完成了類似瀏覽器的程序,并取名為World Wide Web,讓使用者可以透過此程序瀏覽他想要的數(shù)據(jù)。為了讓W(xué)eb能發(fā)展得更順利,第一屆WWW 研討會于一九九四年五月二十四日在CERN 舉行。會中正式將Web 定名為World Wide Web,并且超級鏈接網(wǎng)頁以勃勒李所寫的超級鏈接標(biāo)示語言HTML(hypertext markup language)來撰寫。

在美國高速計算機(jī)中心(Natiomal Center for Supercornputing, NCSA)兼任助理的馬克.安德森(Marc Andreesen),決定發(fā)展圖形化的接口,且能讓使用者輕易上手的瀏覽器。一九九二年,他和NCSA 里另一名同事艾利克.比那(Eric Bina),終于開發(fā)出一套新的瀏覽器,并且命名為Mosaic。Mosaic 比起當(dāng)時的瀏覽器更具圖形化且較容易為一般使用者接受。此外,和其它瀏覽器一樣,也可以瀏覽HTML 文件。更特別的是,Mosaic 還加入了image(影像)的語法,也就是讓W(xué)eb也可以顯示出影像圖片。雖然早先的瀏覽器也可以顯示圖片影像,但是文字與影像需要不同的檔案,而Mosaic 則可以讓文字、圖片影像都在同一個網(wǎng)頁中,圖形化接口及按鈕讓使用者可以更方便地瀏覽網(wǎng)頁。

嵌入式控制系統(tǒng)最初是為了工業(yè)計算機(jī)而設(shè)計,在信息產(chǎn)品普及與數(shù)字家電興起后,嵌入式系統(tǒng)已逐漸普及到我們?nèi)粘I钪校瑥男畔⒓译?、網(wǎng)絡(luò)產(chǎn)品,到可攜式裝置,都看得到它的蹤跡。嵌入式系統(tǒng)的特色之一是不需要很多外接的零配件,能在小面積組件上完成特定功能,具有穩(wěn)定、小尺寸等特點。過去嵌入式系統(tǒng)較難普及的原因,是因為集成電路和制程技術(shù)尚無法突破。由于近年來半導(dǎo)體電子技術(shù)發(fā)展快速,因此嵌入式系統(tǒng)逐漸變?yōu)楣δ軓?qiáng)大而價格低廉;此外,軟件技術(shù)也不斷的進(jìn)步,使得嵌入式系統(tǒng)的發(fā)展不再局限于使用匯編語言,且能使用更高階的程序語言來發(fā)展嵌入式系統(tǒng),而實現(xiàn)更多型態(tài)的應(yīng)用[1]。 近年來網(wǎng)絡(luò)快速發(fā)展,隨著WWW( World Wide Web)持續(xù)不斷的擴(kuò)張,針對WWW 發(fā)展其它方面的控制應(yīng)用是受到重視的,而瀏覽器(IE、Netscape Navigator etc.)的角色也就變成最普遍的客戶端管理及監(jiān)控程序。因為網(wǎng)頁瀏覽器可以提供圖型接口,使用者可以透過Internet 監(jiān)控系統(tǒng)狀態(tài)。此外,遠(yuǎn)程控制成為另一項重要的課題。遠(yuǎn)程控制具有許多優(yōu)點,例如:操作人員可以避免暴露在危險的工作環(huán)境中;可以對于遠(yuǎn)方控制系統(tǒng)下達(dá)指令,而工程人員不必在第一時間抵達(dá)現(xiàn)場。Web-based 嵌入式控制平臺結(jié)合了嵌入式系統(tǒng)與網(wǎng)絡(luò),除了可以提供控制系統(tǒng)的實時數(shù)據(jù)外,也能提供在線控制參數(shù)設(shè)定。而Web-based 嵌入式控制平臺亦可作為獨立的控制系統(tǒng)。使用Web-based 嵌入式控制平臺的優(yōu)點很多,例如:硬件的需求性低、低成本、高穩(wěn)定度、具可移植性、可連接多種工業(yè)控制設(shè)備,這是一般網(wǎng)頁服務(wù)器無法做到的[2][3]。 本論文不僅對嵌入式系統(tǒng)作深入探討,而且對www 的通訊技術(shù)亦有詳細(xì)討論,并且將以泓格科技公司的I-7188EX 為研究對象,賓務(wù)性的設(shè)計出一個嵌入式控制器之Web 服務(wù)器。并以嵌入式系統(tǒng)為基礎(chǔ)發(fā)展Web-based 嵌入式控制平臺,針對Web-based 嵌入式控制平臺架構(gòu)作深入研究,探討執(zhí)行效能。并以Web-based嵌入式控制平臺,實際結(jié)合分散控制模塊的整合應(yīng)用,探討Web-based 嵌入式控制平臺與控制系統(tǒng)結(jié)合的效能表現(xiàn)。最后并探討本文所建構(gòu)的Web-based 嵌入式控制平臺的特性與未來發(fā)展方向。

TCP/IP 通訊

TCP/IP 通訊協(xié)議組允許不同尺寸、不同計算機(jī)廠商出廠及執(zhí)行不同操作系統(tǒng)的計算機(jī)彼此通訊。原為60 年代由美國政府資助關(guān)于封包交換(Packet switching)網(wǎng)絡(luò)的研究計劃,90 年代已成為計算機(jī)間使用最廣的網(wǎng)絡(luò)。TCP/IP 為一開放性系統(tǒng),通訊協(xié)議組的定義及許多相關(guān)協(xié)議的實作,均可公開取得且只需少許費(fèi)用,甚至免費(fèi)。網(wǎng)絡(luò)協(xié)議通常以層(Layers)發(fā)展,TCP/IP 就是不同層協(xié)議的組合,一般認(rèn)為是四層系統(tǒng)[4],如圖1 所示: 每一層都有不同職責(zé)。以下針對每層簡略敘述:

(1)鏈接層(Link Layer):亦稱為數(shù)據(jù)鏈結(jié)層(Data-Link Layer)或網(wǎng)絡(luò)接口層(Network Interface Layers),通常包含了在操作系統(tǒng)中的裝置驅(qū)動程序,以及計算機(jī)中相對應(yīng)的網(wǎng)絡(luò)適配卡。此兩部份可以處傳輸媒介連接的所有硬件問題。

TCP/IP 架構(gòu)圖

圖1 TCP/IP 架構(gòu)圖

(2)網(wǎng)絡(luò)層(Network Layer):是扮演處里整個網(wǎng)絡(luò)中封包的移動,例如封包的繞送(Routing)。整個網(wǎng)絡(luò)層由IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Message Protocol)組成。

(3)傳輸層(Transport Layer):此層替應(yīng)用層提供了在兩個主機(jī)(Host)間的數(shù)據(jù)流。在TCP/IP 協(xié)議組中有兩個極大差異的傳輸協(xié)議:TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。TCP 提供兩主機(jī)間可靠的數(shù)據(jù)傳輸。所采用的方法如將應(yīng)用軟件傳過來的數(shù)據(jù)分割成適當(dāng)大小,再傳給網(wǎng)絡(luò)層;收到封包時發(fā)出確認(rèn)收到的信號;設(shè)定暫停時間確定另一端已送出確認(rèn)收到信號等。如此應(yīng)用層便不在需要另外確認(rèn)數(shù)據(jù)的可靠度。UDP 提供應(yīng)用層另一較簡單的方式。僅由一臺主機(jī)送出稱為數(shù)據(jù)報(Datagram)的數(shù)據(jù)封包到另一臺主機(jī),但并不保證送出的數(shù)據(jù)能夠到達(dá)另一臺主機(jī)。若需要額外增加可靠度須由應(yīng)用層加入。

(4)應(yīng)用層:此層處理應(yīng)用軟件的細(xì)節(jié)。許多普通的應(yīng)用軟件對于各層幾乎都有對應(yīng)實作。如遠(yuǎn)程登入、FTP(File Transfer Protocol)、SMTP(the Simple Mail Transfer Protocol)等。最后TCP/IP 協(xié)議組中有許多的協(xié)議,如圖2、圖3、圖4 分別表示不同情況下TCP/IP傳輸結(jié)構(gòu)。

單一主機(jī)內(nèi)部傳輸示意圖

圖2 單一主機(jī)內(nèi)部傳輸示意圖

FTP 相同網(wǎng)絡(luò)架構(gòu)傳輸示意圖

圖3 FTP 相同網(wǎng)絡(luò)架構(gòu)傳輸示意圖

不同架構(gòu)網(wǎng)絡(luò)透過TCP/IP 連結(jié)架構(gòu)圖

圖4 不同架構(gòu)網(wǎng)絡(luò)透過TCP/IP 連結(jié)架構(gòu)圖

本文采用TCP/IP 通訊協(xié)議組中的TCP 通訊協(xié)議做為傳輸層(Transport Layer)主要的通訊協(xié)議,因為TCP 具有聯(lián)機(jī)導(dǎo)向、可信賴以及字節(jié)流的特性。聯(lián)機(jī)導(dǎo)向(connection-oriented):當(dāng)Server 端與Client 端建立聯(lián)機(jī)前會作數(shù)據(jù)的交換,以確定聯(lián)機(jī)的建立。信賴度:TCP 利用以下幾種方式提供信賴度:(1)數(shù)據(jù)被分解成TCP 認(rèn)為最佳大小的區(qū)塊(chuck)后傳送。如下圖5 顯示之Server-Client 通訊流程:

Server-Client 通訊流程

圖5: Server-Client 通訊流程

HTTP(HyperText Transport Protocol)

HTTP(HyperText Transport Protocol)自1990 年以來就被全球信息網(wǎng)采用為基礎(chǔ)通訊協(xié)議,它是一種應(yīng)用階層(Application-level)的通訊協(xié)議,特性是輕便、快速,特別適合如Web 這種分布式、合作式的超媒體信息系統(tǒng)。HTTP 具通用性(generic)、無記憶性(stateless),且為對象導(dǎo)向,HTTP 特別具有數(shù)據(jù)型態(tài)(typing),并可協(xié)商數(shù)據(jù)表征(data representation),所以依此建造的系統(tǒng)可以不受傳輸數(shù)據(jù)內(nèi)容的影響。HTTP 雖早自1990 年起就已被普遍使用,但過去許多年并無統(tǒng)一規(guī)范,此項不明確的規(guī)范后來通稱為HTTP/0.9。

直到1996 年6 月一份僅供參考的文件方才由Internet Society 的HTTP Working Group 出版,稱為HTTP/1.0。HTTP/1.0 雖有正式文號(RFC1945)[5],但僅為一臨時性文件,有效期為六個月,此文件到1996 年年底已到期。到1997 年一月,一份正式的文件,HTTP/1.1(RFC2068)[5]適時出爐,至此HTTP 才算有了一份正式的標(biāo)準(zhǔn)草案。

HTTP 規(guī)范用戶(client)與服務(wù)器(server)之間的通訊,用戶是一個程序,它按照HTTP 的規(guī)范建立一個通達(dá)服務(wù)器(另一個程序)的連結(jié)(connection)以送出其「要求」(request);所謂「要求」就是對在某一服務(wù)器上的「資源」(resource)請其做某種動作,服務(wù)器收到要求后,則將其「回復(fù)」(response)送回。HTTP/0.9 是一個簡單的「Request/Response」通訊規(guī)范,其目的僅在傳輸原數(shù)據(jù)。HTTP/1.0主要的改進(jìn)在于允許所傳輸?shù)馁Y料可以采取類似MIME 的格式,也就是說,可以指定所傳輸數(shù)據(jù)的格式,信息也可以允許使用「修飾語」(modifiers)改變要求與回復(fù)的運(yùn)作意義。如此一來就大大的擴(kuò)展HTTP 可應(yīng)用的范圍。

HTTP/1.1 主要的改進(jìn)在:具分層架構(gòu)的代行者(hierarchical proxies)、傳送對象的暫存(caching)、常續(xù)的連結(jié)(persistent connections)、擬真主機(jī)(virtual hosts)。本論文主要發(fā)展并證明Web-Server 嵌入式系統(tǒng)的可行性,除了受限于硬件環(huán)境外,且絕大部分的Browser 支持HTTP/1.0,所以本論文采用HTTP/1.0 作為發(fā)展基礎(chǔ)。

HTTP/1.0 傳輸格式

就像大部分的網(wǎng)絡(luò)通訊協(xié)議,HTTP 使用client-server model:Client 端開啟1個連結(jié)(connection)并送出request message 到server 端;server 端接收到后回傳response message,此message 通常包含client 端所要求的數(shù)據(jù),在結(jié)束傳輸后server 關(guān)閉此連結(jié)。Http/1.0 使用了許多由MIME(Mutipurpose Internet Mail Extensions)定義的格式,可參照RFC1521 文件[5]。Request 和response message格式相似,包含:(1)an initial line, (2)Message header(zero or more HTTP header fields), (3)a blank line , (4)an optional message body (e.g. a file, or query data, or query output)。對于每一部分,將分別加以說明:Initial line:Initial request line:主要分為三個部分,method name(將于稍后提到)、request resource 的區(qū)域路徑、和HTTP 版本?;拘问饺缦拢篏ET /path/to/file/index.html HTTP/1.0 在此簡單介紹HTTP/1.0 的指令集(the set of common method)。指令集可以擴(kuò)充,但不能保證可以讓所有的client 端與server 端接受。而最常使用的指令有三種:GET、HEAD、POST。

(a)The GET Method:簡單來說,GET method 就是對server 端要求data(所有在request message 所要求的信息),在過程中server 端不會給予Text 型態(tài)source,而是轉(zhuǎn)換成Entity-body(message body)放入response 中;除非source 本身即是以text 文件方式儲存顯示。

(b)The HEAD Method:HEAD method 與GET method 大致相同,但是不會有Entity-Body 的部分。即使用HEAD method 對于server 端要求回傳status lines 和headers 而省略message body。若只想取得server 端source 的URI(Uniform Resource Identifier)[6]數(shù)據(jù)可使用此方法。

(c)The POST Method:在之前舊版的HTML 語法,POST method 與GET method的差異性在于前者可透過其它方式傳輸數(shù)據(jù),例如CGI script. 目前的HTML 語法GET 與POST 皆可使用CGI script。而兩者間的差異在于傳輸數(shù)據(jù)時,GET于URL 后端加入傳送數(shù)據(jù);而POST 則是放入Header,再回傳給client 端。此部分的差異將于2-4 小節(jié)CGI 的應(yīng)用部分討論。圖6 表示HTTP message 整體架構(gòu):

HTTP 通訊格式

圖6 HTTP 通訊格式

Initial response line(status line):主要分為三個部分, HTTP 版本, response status code,及status code 的英文描述。基本形式如下: HTTP/1.0 200 OK,or HTTP/1.0 404 Not Found 列出常見status code 所代表的涵義,如下表 (1)Message Headers(HTTP header fields): 整個HTTP header fields 包含:General-Header、Request-Header、Response-Header、Entity-Header。Header fields 格式遵循了一定的規(guī)范[4],基本格式如下: field-name:SP[field-value]CRLF SP 是表示a single space;[Field-value]是表不header 內(nèi)容,而CRLF 是表示結(jié)束字符(ASCII code)。 The Message Body(Entity Body): 對于request 部分,為client 端輸入的數(shù)據(jù)或上傳的檔案;對于response 部分,為接受client 端要求,回送client 端要求的資料。而當(dāng)HTTP message 包含有數(shù)據(jù)的時候,通常會有另外的Headers 描述此數(shù)據(jù)。

CGI (Common Gateway Interface)

原始的HTML 語言是設(shè)計用來展現(xiàn)靜態(tài)的數(shù)據(jù),它讓人使用一種簡單的語法展現(xiàn)出豐富的多媒體數(shù)據(jù),就像廣告廣告牌一樣。如果使用者需要的數(shù)據(jù)具有時效性,必需時常更新,這時該怎么辦呢? 又或者你想留下使用者的數(shù)據(jù),讓你的網(wǎng)頁能跟使用者達(dá)到互動的效果,這時又該如何?

由于上述種種需求,于是就誕生了CGI。CGI 是Common Gateway Interface 的縮寫,中文翻做『共通網(wǎng)關(guān)接口』。它是一種標(biāo)準(zhǔn)接口程序,能讓你的網(wǎng)頁跟WWW server 溝通,達(dá)到跟使用者互動的效果。而且透過CGI 程序,可以讓你動態(tài)的產(chǎn)生網(wǎng)頁,秀出server 上的最新數(shù)據(jù)。當(dāng)你連結(jié)到一個CGI 對象時,你取回的文件并非是一份靜態(tài)數(shù)據(jù),而是一個藉由程序動態(tài)產(chǎn)生的HTML 數(shù)據(jù)流。傳回來的資料可以隨時更改,或者針對使用者的特殊查詢而有不同的反應(yīng)。簡單來說,CGI 程序就是能夠動態(tài)產(chǎn)生WWW 網(wǎng)頁,并讓一般使用者經(jīng)由WWW 取用系統(tǒng)內(nèi)的數(shù)據(jù)。

CGI 本身制訂的標(biāo)準(zhǔn)有提到可以藉由環(huán)境變量來達(dá)成此目的,而且CGI 程序也有能力取得現(xiàn)存在各類數(shù)據(jù)庫里的數(shù)據(jù)。因此我們可以發(fā)現(xiàn),CGI 可以由任何語言程序來實現(xiàn),只要語言程序具有讀寫檔案的能力。直得一提的是這樣的方式也容易有安全性上的問題。圖7 為CGI 示意圖:

CGI 示意圖

圖7 CGI 示意圖

目前的web-server 絕大多數(shù)都有提供執(zhí)行CGI 的環(huán)境(路徑端看server 設(shè)定,一般放在cgi-bin 的路徑下)。當(dāng)使用者用瀏覽器link 到一個CGI 程序時,瀏覽器會透過HTTP 這個通訊協(xié)議,送出一個請求(require)給遠(yuǎn)程(remote)的Web server,Web server 就會跑一個HTTPd process,這個process 會去找指定的目錄下有沒有這個CGI 程序,如果有的話HTTPd 會啟動一個child process 來跑這個CGI 程序,也因此繼承了HTTPd 所有的環(huán)境變量設(shè)定。這也就是說使用者所輸入的要求會經(jīng)由HTTP 通訊協(xié)議傳送到Web server 的HTTPd,再經(jīng)由環(huán)境變量或標(biāo)準(zhǔn)輸入裝置(STDIN)傳遞給CGI 程序[6]。CGI 程序相關(guān)的環(huán)境變量列表于下:

嵌入式網(wǎng)頁服務(wù)器的設(shè)計

本節(jié)中,我們將說明嵌入式網(wǎng)頁服務(wù)器 (以下簡稱為EWS)并與一般的服務(wù)器做一比較。同時,也將說明建立以EWS 為平臺的控制系統(tǒng)的基本需求以及發(fā)展工具。

(1)一般網(wǎng)頁服務(wù)器 vs. 嵌入式網(wǎng)頁服務(wù)器:一般網(wǎng)頁服務(wù)器基本上都是為了標(biāo)準(zhǔn)用途所設(shè)計的 (例如:NT servers、Unix ),因此它們對系統(tǒng)資源的需求也相對提高,如:較多的內(nèi)存、高速的處理器、具分時多任務(wù)的操作系統(tǒng)以及其它的資源。而典型的EWS 需求則相對的少,只要數(shù)百K 的內(nèi)存、低速的處理器、單工的操作系統(tǒng),所以在成本及效益上反而占了極大的優(yōu)勢。EWS 通??梢杂脕韨鬟f嵌入式系統(tǒng)的狀況,透過瀏覽器使用者可以很容易的取得目前系統(tǒng)狀態(tài)、設(shè)定一級作業(yè)的執(zhí)行結(jié)果。EWS 同時也可以接受使用者從瀏覽其傳送過來的命令并加以執(zhí)行,達(dá)到遠(yuǎn)程控管的效果。

(2)在線設(shè)定程序:一般的服務(wù)器設(shè)定除了提供本機(jī)上的管理程序,為了管理的方便性通常也會提供遠(yuǎn)程瀏覽器端的管理程序,在EWS 上也擁有同樣的機(jī)制,使用者也可以透過瀏覽器從遠(yuǎn)程直接對EWS 做相關(guān)的參數(shù)設(shè)定。藉由EWS(嵌入式網(wǎng)頁服務(wù)器),使用者可以透過遠(yuǎn)程的瀏覽器針對現(xiàn)場的需求做不同的設(shè)定[4],例如:網(wǎng)絡(luò)通訊參數(shù)的變化以及RS-232 端的通訊方式改變,這個便利性可以免除管理者必須四處奔波的窘境。進(jìn)而達(dá)到管理的方便及人性化。

(3)EWS 的優(yōu)勢:市面上有一些嵌入式網(wǎng)頁服務(wù)器,雖然號稱功能強(qiáng)大但卻還是免不了需要使用者自行編寫程序語言來開發(fā)系統(tǒng)。本EWS 系統(tǒng)除了支持使用者在建立網(wǎng)頁服務(wù)器時不須編寫任何語言外(基本模式),它還提供更具有彈性的方式讓使用者自行去修改并產(chǎn)生自己的服務(wù)器(自訂網(wǎng)頁中的Script 規(guī)則)(進(jìn)階模式)。

EWS 的運(yùn)作的原理及系統(tǒng)需求

一般網(wǎng)頁服務(wù)器主要是設(shè)計透過快速的處理器來顯示靜態(tài)網(wǎng)頁,而EWS 的設(shè)計重點卻是如何在有限的資源中達(dá)到這些要求。因此,以下的重點是必須考慮。

(1)通訊協(xié)議的格式:HTTP/1.0 針對每一個聯(lián)機(jī)提供信息的交換,透過瀏覽器傳送相關(guān)的信息到EWS,在EWS 做出反應(yīng)后就關(guān)閉此聯(lián)機(jī)。因此,設(shè)計的過程中只要考慮傳送的信息是什么,而后續(xù)的動作待EWS 接手后,就可以不去關(guān)注,EWS 會將此一聯(lián)機(jī)需求忠實的執(zhí)行完畢并關(guān)閉此一聯(lián)機(jī)。

(2)EWS 提供的API:EWS 必須提供設(shè)計人員相關(guān)的響應(yīng)機(jī)制并且提供HTML網(wǎng)頁傳送到瀏覽器端的服務(wù)[5]。這個部份的需求的功能,可以采用CGI 的方式來達(dá)成。在這種模式下,每一個透過URL 呼叫CGI 的聯(lián)機(jī)將被導(dǎo)引到CGI 的處理程序中,透過CGI 的方式將會使得瀏覽器端可以呼叫及使用EWS 中的函式,并將執(zhí)行結(jié)果回傳到瀏覽器。為了達(dá)到這種功能,我們必須在符合標(biāo)準(zhǔn)的CGI格式下發(fā)展數(shù)個CGI 函數(shù)[6],供給瀏覽器端的不同需求。

(3)EWS 的結(jié)構(gòu):基于上一節(jié)的討論,整個發(fā)展的EWS 包含3 個部份:HTTP 服務(wù)、CGI 服務(wù)函數(shù)、設(shè)定接口。整個結(jié)構(gòu)如圖8 所示:

EWS 結(jié)構(gòu)

圖8: EWS 結(jié)構(gòu)

本結(jié)構(gòu)圖最重要的一個部份在于提供HTTP 服務(wù),此服務(wù)可以接收來自瀏覽器端的要求,而這個服務(wù)的來源則必須符合基本的HTTP 規(guī)格才可以。一般的網(wǎng)頁服務(wù)器,在接收到要求時就會立刻建立一個聯(lián)機(jī),而EWS 因為是單工操作系統(tǒng),所以它的運(yùn)作方式完全不同,它會先將要求排入一個等待隊列,然后一個一個去完成。因此,當(dāng)聯(lián)機(jī)數(shù)大于一個以上時,因為系統(tǒng)資源的關(guān)系,同時建立聯(lián)機(jī)的方式為不可行的,所以對于HTTP 的服務(wù)會采用在狀態(tài)記號方式來處理。

設(shè)定接口的部份,將會提供瀏覽器操作接口的方式以設(shè)定EWS 的網(wǎng)絡(luò)相關(guān)參數(shù),此接口提供使用者在遠(yuǎn)程可以直接的對EWS 做網(wǎng)絡(luò)參數(shù)的在線設(shè)定。CGI函數(shù),網(wǎng)頁文件分為靜態(tài)及動態(tài)顯示文件,靜態(tài)文件部分基本上可以直接由HTTP 服務(wù)透過檔案系統(tǒng)傳遞到瀏覽器端,動態(tài)文件則必須先經(jīng)過解譯的程序?qū)⒕W(wǎng)頁文件中需要以動態(tài)顯示的部份,由CGI 函數(shù)取得后傳送到瀏覽器端。檔案系統(tǒng),提供EWS 對檔案存取的權(quán)利,基本上提供檔案的開啟、讀取以及關(guān)閉這三種功能。透過這種檔案系統(tǒng),我們可以直接在EWS 上直接對以下檔案類型做這三項動作:GIF、JPG、BMP、HTM。

EWS 的處理程序

在圖9 中明顯的呈現(xiàn)出HTTP 服務(wù)對聯(lián)機(jī)所執(zhí)行的流程及步驟。為了達(dá)到在單工操作系統(tǒng)中接受多個聯(lián)機(jī)需求的目的,必須在此系統(tǒng)上架構(gòu)排程序的作業(yè)程序。在此系統(tǒng)中,采用一個隊列專門來儲存每一個要求的聯(lián)機(jī),來決定新的聯(lián)機(jī)是要阻斷或是繼續(xù)接受。而整個程序中,為了提供更大的彈性,此程序切割成兩個部份,一個是固定不變的WebL_100.Lib 另外一個是User.c。其中,WebL_100.Lib為整個嵌入式網(wǎng)頁服務(wù)器的重心,它提供了HTTP 的服務(wù)以及些其它的TCP/IP處理機(jī)制。而User.C 為此服務(wù)器開放出來讓使用者可以自行設(shè)計并決定響應(yīng)從Port 80 傳入的聯(lián)機(jī)要求[7]。

EWS 運(yùn)作方式

圖9: EWS 運(yùn)作方式

以下說明每一個狀態(tài)的功能:

Block 1: 此區(qū)塊會將所有的變量、封包信息以及網(wǎng)絡(luò)環(huán)境初始化。

Block 2: 此區(qū)塊包含兩個函數(shù),這兩個函數(shù)提供給設(shè)計者自行編寫自訂的程序。

Web_Init():設(shè)計人員可以在此函數(shù)中加入想要使用的變量或命令,而這些加進(jìn)去的程序在服務(wù)器啟動后只會被執(zhí)行一次,設(shè)計者可以加入一些只要執(zhí)行一次的動作命令。例如:初始化通訊端口。

Web_Loop():設(shè)計人員可以在此函數(shù)中加入想要使用的命令,而這些加進(jìn)去的程序在服務(wù)器啟動后會在主循環(huán)中不斷被執(zhí)行次,設(shè)計者可以加入一些要重復(fù)不斷執(zhí)行的命令在這個函數(shù)中。例如:掃描通訊端口狀態(tài)。

Block 3: 檢查TCP/IP 通訊端口是否有數(shù)據(jù),如果有數(shù)據(jù),會向下執(zhí)行Block5。否則的話程序會往Block4 執(zhí)行。

Block 4: 更新I-7188E 上的七段顯示器,并檢查看門狗機(jī)制并回到Block 2 檢查TCP/IP 是否有資料進(jìn)來。

Block 5: 根據(jù)來自不同Port 的需求聯(lián)機(jī)我們做不同的反應(yīng)機(jī)制。

Port 80: 如果連現(xiàn)需求中呼叫CGI 函數(shù)程序會執(zhí)行到 Block 6。如果只是單純的網(wǎng)頁或是圖形的話程序會執(zhí)行到 Block 7。

Others: .其它不同Port 的需求聯(lián)機(jī)。如:Ping。

Block 6: 依照瀏覽器端的呼叫函數(shù),將變量傳遞到對應(yīng)的函數(shù)中。以下為此方塊提供的CGI 函數(shù)。 CGI_DPAGE() CGI_USER() PRINT_PAGE()

Block 7: 將數(shù)據(jù)(網(wǎng)頁)傳送到瀏覽器端。完成后,程序?qū)⒒氐紹lock 2。

軟件與硬件的需求

在本研究中采用了由泓格科技公司所研發(fā)之型號I-7186EX/I-7188EX 的嵌入式控制器作為控制系統(tǒng)的執(zhí)行平臺,如圖10 所示。它的運(yùn)算核心采用了由x86 微處理器,運(yùn)算頻率為80MHz,不支持浮點運(yùn)算能力,內(nèi)建有3 個定時器 (Timer)及1 個看門狗定時器(Watchdog Timer),同時支持軟件及硬件的中斷功能。在通訊部份則支持RS232/485、Ethernet 三種接口,可透過RS232 或Ethernet 下載至嵌入式控制器上進(jìn)行應(yīng)用及驗證。至于在儲存裝置上,它提供了2Kbytes 的EEPROM 存放硬件開機(jī)時所需的相關(guān)數(shù)據(jù);512Kbytes 的Flash ROM 則規(guī)劃一部份作為嵌入式操作系統(tǒng)之用,其余的部份則用來存放使用者所自行開發(fā)的應(yīng)用程序,同時可透過軟件方式進(jìn)行更新的特性,更滿足了使用者未來在此系統(tǒng)上進(jìn)行控制器設(shè)計時,反復(fù)修改控制參數(shù)并下載至控制器驗證的需求;512Kbytes 的SRAM 則可用來存放實驗過程中所獲得的數(shù)據(jù)。

在嵌入式操作系統(tǒng)的部份,采用了由泓格科技公司所自行研發(fā)的MiniOS7(dos-like)操作系統(tǒng),整體上來說,它的系統(tǒng)架構(gòu)相似于個人計算機(jī)上的DOS 操作系統(tǒng),其單工的作業(yè)環(huán)境可以確保使用者所開發(fā)的應(yīng)用程序得以獨占系統(tǒng)的執(zhí)行權(quán),再搭配硬件上的RTC (Real-Time Clock),構(gòu)成了一實時的作業(yè)環(huán)境;I/O 的擴(kuò)充方面,I-7186EX/7188EX 嵌入式控制器提供了1 個X board 的I/O擴(kuò)充插槽,可視不同的控制應(yīng)用場合添加相關(guān)的控制子板,因此,在I/O 的擴(kuò)充能力上勢必更具有彈性,方能滿足不同的應(yīng)用需求。值得注意的是,每一EtherNet的嵌入式控制器都有RS-485 通訊端口,因此控制器都可以透過串行通訊端口去控制泓格公司之一系列之分散控制模塊DCON 系列產(chǎn)品,例如I-7000, I-8000 及I-87K 之泓格自定命令格式之模塊。

I-7188EX 嵌入式控制器及X board 子卡

圖10 I-7188EX 嵌入式控制器及X board 子卡

嵌入式網(wǎng)頁服務(wù)器的設(shè)計流程

如圖11 所示為本研究中所建立的嵌入式控制器的Web server 之開發(fā)流程。其步驟如下: Choice Hardware 選擇要與EWS 連接的硬件控制器,讓EWS 作為硬件控制器與瀏覽器端的信息交換中心 Wiring Hardware 將整個硬件線路建置好,包含網(wǎng)絡(luò)及控制器的連接 Design Web page for purpose 針對需求設(shè)計相關(guān)的網(wǎng)頁 Create the firmware of EWS 自訂由瀏覽器端接收命令時,要做的響應(yīng)機(jī)制并使用編譯器建立EWS Download files and run EWS 下載相關(guān)的檔案(HTM、Pictures)以及EWS 韌體并執(zhí)行程序

EWS 設(shè)計流程

圖11: EWS 設(shè)計流程

實作探討

本節(jié)將以為了發(fā)展嵌入式網(wǎng)頁服務(wù)器(EWS),發(fā)展工具如下:硬件部分:I-7188EX(作為EWS)、I-7021、I-7012、I-7060D(作為網(wǎng)頁服務(wù)器控制的設(shè)備)[8]。軟件部分是采用寶蘭的 Turbo C++1.01(主程序編譯器)去設(shè)計嵌入式控制器之應(yīng)用韌體程序,而微軟的FrontPage 是用一個網(wǎng)頁編輯軟件。但值得注意的是泓格科技的嵌入式控制器的MiniOS7 操作系統(tǒng)及MiniOS7 Utility(下載應(yīng)用程序)則是整個控制器的核心。在以下本論文將把EWS 的應(yīng)用架構(gòu)分為二種,即是基本模式架構(gòu)與進(jìn)階模式架構(gòu),而基本應(yīng)用模式是架構(gòu)在一個已經(jīng)設(shè)計好的內(nèi)定fireware 及使用者自行設(shè)計之網(wǎng)頁,最后只要將內(nèi)定fireware 及網(wǎng)頁透過MiniOS7 Utility 下載至目標(biāo)硬件應(yīng)用即可。而進(jìn)階應(yīng)用模式是指EWS 可以提供一個使用者自行加入控制程序,提供一個可以客制化之EWS 韌體,再加上使用者自行設(shè)計之網(wǎng)頁,即可以架構(gòu)出一個完全客制化EWS 系統(tǒng)。

基本模式架構(gòu)說明

基本模式,提供設(shè)計人員在開發(fā)的過程中完全不需要編寫到C 語言的平臺,能以最快速的時間中開發(fā)適合的EWS,圖12 為利用泓格公司所生產(chǎn)的分布式控制模塊I-7012 I-7021 I-7017 I-7060 來作為EWS 基本模式實作系統(tǒng)。

在EWS 系統(tǒng)平臺中,主要組成軟件組件有以下幾部分:

1.主程序(Firmware),提供HTTP 服務(wù)。

2.網(wǎng)頁組件。含HTM、GIF、JPG、BMP 組件。

3.CGI 函式及響應(yīng)機(jī)制,包含在Firmware 里面,提供CGI 相關(guān)函式可供應(yīng)用。

在基本模式中提供應(yīng)用系統(tǒng)的核心,使用者只需將所設(shè)計的網(wǎng)頁下載至控制器上即可。在本文中設(shè)計系統(tǒng)所需的網(wǎng)頁內(nèi)容,如圖五,Readinfo.htm。透過I-7188E內(nèi)嵌式網(wǎng)頁服務(wù)器所內(nèi)建的解譯機(jī)制,設(shè)計人員只要熟知如何設(shè)計網(wǎng)頁,也可以很簡單的透過內(nèi)建的解譯機(jī)制,直接控制或讀取連接在I-7188E 上的工業(yè)控制模塊的狀態(tài)。透過這個方式,可以快速有效建置Ethernet 嵌入式控制系統(tǒng)在網(wǎng)頁伺服技術(shù)上的應(yīng)用。圖13 為實際執(zhí)行的畫面

實作線路連接圖

圖12: 實作線路連接圖

網(wǎng)頁內(nèi)容及實際執(zhí)行解譯命令運(yùn)作圖階模式架構(gòu)說明

圖13: 網(wǎng)頁內(nèi)容及實際執(zhí)行解譯命令運(yùn)作圖階模式架構(gòu)說明

進(jìn)階模式,提供設(shè)計人員在開發(fā)的過程中想要自行控制接收到HTTP 需求聯(lián)機(jī)后所做的響應(yīng)機(jī)制,此模式開放圖14 中的User.C 部分,讓設(shè)計人員對此嵌入式網(wǎng)頁服務(wù)器有更大的彈性空間。同樣的進(jìn)階模式的EWS 主要組成軟件組件有以下幾部分:

1.主程序(Frimware)。

2.提供HTTP 服務(wù)。

3.網(wǎng)頁組件,含HTM、GIF、JPG、BMP 組件。

4.CGI 函式及響應(yīng)機(jī)制,包含在Firmware 里面,有CGI 可供呼叫以及相關(guān)的函數(shù)。

其中在主程序(Frimware)部份,另外開放User.C 供設(shè)計人員自行編寫程序。在本系統(tǒng)的實作中,會使用到發(fā)展的網(wǎng)頁直譯器,將動態(tài)網(wǎng)頁中的動態(tài)命令字符串直接解譯并執(zhí)行然后使用EWS 所取得的值或參數(shù)來取代這些動態(tài)命令,系統(tǒng)發(fā)展者可根據(jù)這些參數(shù)來做監(jiān)控系統(tǒng)的應(yīng)用。如圖14,例如:改變命令字符串并用EWS 從通訊端口中取得的值取代此動態(tài)命令。透過解譯程序,將動態(tài)命令從通訊端口輸出并取得回傳值然后產(chǎn)生一新的靜態(tài)網(wǎng)頁。最后,再將此新網(wǎng)頁回傳到瀏覽器端。執(zhí)行結(jié)果如圖 15。

客自化程序設(shè)計及對應(yīng)的網(wǎng)頁設(shè)計

圖14 客自化程序設(shè)計及對應(yīng)的網(wǎng)頁設(shè)計

進(jìn)階模式解譯命令及執(zhí)行結(jié)果

圖15: 進(jìn)階模式解譯命令及執(zhí)行結(jié)果

EWS 效能分析

由于EWS 是屬于微型的網(wǎng)頁服務(wù)器,因此其效能與下列要的變因有關(guān)系,網(wǎng)頁內(nèi)容、聯(lián)機(jī)數(shù)目,都是決定此EWS 系統(tǒng)重要的因素。以下將針對此三變因作數(shù)據(jù)上的測試。 網(wǎng)頁內(nèi)容(聯(lián)機(jī)數(shù)目為一): 測試結(jié)果 數(shù)據(jù)圖形:

聯(lián)機(jī)數(shù)目(網(wǎng)頁內(nèi)容為純文字) 測試結(jié)果

聯(lián)機(jī)數(shù)目(網(wǎng)頁內(nèi)容為純文字) 測試結(jié)果

結(jié) 論

由以上結(jié)果得知,整個網(wǎng)絡(luò)運(yùn)行的效能,影響最大的部份取決于單一網(wǎng)頁傳遞數(shù)據(jù)量的大小。如果單一網(wǎng)頁的數(shù)據(jù)龐大,針對每一個聯(lián)機(jī)從開始回映到結(jié)束響應(yīng)的時間將會大為增加。嵌入式網(wǎng)頁服務(wù)器主要的功能大多是針對顯示控制器的狀態(tài)為主,因此聯(lián)機(jī)的反應(yīng)時間快慢只要是瀏覽器端可以接受的范圍就可以。而配合I-7188E 嵌入式網(wǎng)頁服務(wù)器,有下列的優(yōu)點:

1.系統(tǒng)建置的快速,結(jié)合I-7188E所提供的函式庫,能在最短的時間中設(shè)計出需求的功能。比起傳統(tǒng)式的網(wǎng)頁服務(wù)器需要花費(fèi)大量的時間,更適合工業(yè)控制上應(yīng)用網(wǎng)頁監(jiān)控設(shè)計人員。

2.低成本與高效率,整個建置系統(tǒng)的成本,并提供WebL_100.Lib 函式庫提供系統(tǒng)發(fā)者所需的功能。因此,在軟件開發(fā)成本上已經(jīng)為設(shè)計人員做最有效的抑制。

3. 突破傳統(tǒng)的Client-Server,傳統(tǒng)的Client-Server 機(jī)制,通常必須在客戶端安裝特定的Client 軟件。在使用對象固定的狀況下,這并不會照成多大的困擾。一旦Clent對象不確定而又無法一一安裝,這時透過I-7188E 架設(shè)的網(wǎng)頁服務(wù)器就可以適時的發(fā)揮功效,目前的PC 都已內(nèi)建瀏覽器程序,只要將Client 的PC 與I-7188E內(nèi)嵌式網(wǎng)頁服務(wù)器一同架設(shè)在網(wǎng)絡(luò)上,這個問題即可迎刃而解。

本文所探討的Ethernet 嵌入式控制器之WWW 應(yīng)用平臺,不但突破以往工業(yè)控制無法直接以Web 方式操控的限制,更提供多種不同模式的發(fā)展平臺。應(yīng)用此發(fā)展平臺,除了無遠(yuǎn)弗屆的Web 操作外,還能與C 語言結(jié)合創(chuàng)造出更彈性的控制系統(tǒng)。

參考文獻(xiàn)

McCombie, B., “Embedded Web servers now and in the future,” Reat-Time Magazine, no.1 March 1998, pp. 82-83. Wilson, A., “The Challenge of embedded Internet,” Electronic Product Design,January 1998,pp. 31-2, 34. Ian Agranat, “Embedded Web Servers in Network Devices,” CommunicationSystem Design, March 1998, pp. 30-36. W.Richard Stevens, TCP/IP Illustrated Volume1, Addison-Wesley Publishing Company. ,1994. C. Wellens, K. K. Auerbach, “Towards Useful Management,” The Simple Times,4(3):1-6, July 1996. W3C,”HTML 4.0 Specification,” Internet Draft REC-html40-19980424, HTML Working Group, Apr 1998. Edwards, Nigel, Owen Rees, “Performance of HTTP and CGI,” ASNA. ICPDAS [7188E/843X/844X/883X/884X TCP/IP Library User’s Manual] , Taiwan,2001/07 ICPDAS [7188EN Hardware User’s Manual] , Taiwan, 2001/07

標(biāo)簽:

點贊

分享到:

上一篇:DCS控制技術(shù)在電氣監(jiān)控中的應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號