引言
隨著各個(gè)企業(yè)安全意識(shí)的增強(qiáng)以及現(xiàn)代化管理水平的提高,對(duì)分布式環(huán)境的遠(yuǎn)程測(cè)控在工業(yè)控制系統(tǒng)中得到了越來(lái)越廣泛的應(yīng)用。傳統(tǒng)的監(jiān)測(cè)系統(tǒng)多為遠(yuǎn)程監(jiān)控主機(jī)通過(guò)傳輸網(wǎng)絡(luò)與代理服務(wù)器進(jìn)行數(shù)據(jù)交互,此種方式需要額外的數(shù)據(jù)采集和控制設(shè)備負(fù)責(zé)現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)采集以及把采集到的實(shí)時(shí)數(shù)據(jù)發(fā)送給代理服務(wù)器,適應(yīng)性較差,內(nèi)部網(wǎng)數(shù)據(jù)傳輸速率不高,影響遠(yuǎn)程監(jiān)控的實(shí)時(shí)性,而且當(dāng)代理服務(wù)器出現(xiàn)故障時(shí),遠(yuǎn)程監(jiān)控主機(jī)將對(duì)所有的現(xiàn)場(chǎng)設(shè)備失去監(jiān)視和控制,可靠度不高。因此,筆作提出了一種基于嵌人式技術(shù)的遠(yuǎn)程集中測(cè)控系統(tǒng),它將嵌人式技術(shù)、無(wú)線通信技術(shù)和自動(dòng)控制技術(shù)有機(jī)地結(jié)合起來(lái),采用嵌人式硬件平臺(tái)和無(wú)線通信模塊,不需要額外的數(shù)據(jù)采集和控制設(shè)備。該系統(tǒng)實(shí)時(shí)性強(qiáng)、可靠性高、結(jié)構(gòu)小巧、開(kāi)發(fā)費(fèi)用低廉,更適用于現(xiàn)代工業(yè)測(cè)控系統(tǒng)川。
1、系統(tǒng)總體設(shè)計(jì)方案
嵌人式遠(yuǎn)程測(cè)控系統(tǒng)實(shí)現(xiàn)方案如圖1所示。系統(tǒng)由客戶端瀏覽器,嵌人式服務(wù)器平臺(tái),現(xiàn)場(chǎng)測(cè)控模塊3部分組成??蛻舳藶g覽器是運(yùn)行在桌面計(jì)算機(jī)中的通用瀏覽器應(yīng)用程序,嵌入式服務(wù)器是以S3 C4510B芯片為核心組建的網(wǎng)絡(luò)服務(wù)平臺(tái),現(xiàn)場(chǎng)測(cè)控模塊是以MCS-51單片機(jī)為核心構(gòu)成的測(cè)控執(zhí)行部件。其中嵌人式服務(wù)器平臺(tái)是系統(tǒng)的核心部件。負(fù)責(zé)對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行測(cè)控?cái)?shù)據(jù)的采集、存儲(chǔ)、轉(zhuǎn)發(fā)及與遠(yuǎn)程客戶端瀏覽器的數(shù)據(jù)交互。
圖1 嵌入式遠(yuǎn)程集中剛控系統(tǒng)實(shí)現(xiàn)方案
本方案中,服務(wù)器采用嵌人式硬件平臺(tái),基于uClinux操作系統(tǒng)系統(tǒng),建立嵌人式Web服務(wù)器和分布式現(xiàn)場(chǎng)的測(cè)控應(yīng)用程序。測(cè)控應(yīng)用程序通過(guò)驅(qū)動(dòng)無(wú)線模塊,以主動(dòng)輪詢方式實(shí)現(xiàn)嵌人式平臺(tái)與和分布式測(cè)控設(shè)備之間的通信。現(xiàn)場(chǎng)測(cè)控模塊負(fù)責(zé)對(duì)測(cè)控應(yīng)用程序發(fā)出命令進(jìn)行響應(yīng),以完成分布式現(xiàn)場(chǎng)的數(shù)據(jù)采集和控制動(dòng)作執(zhí)行。
通過(guò)公共網(wǎng)關(guān)接口CGI ( Common Gateway Interface)實(shí)現(xiàn)嵌人式Web服務(wù)器和分布式現(xiàn)場(chǎng)的測(cè)控應(yīng)用程序接口。CGI可以使編寫的程序處理WWW上客戶端送來(lái)的表單和數(shù)據(jù),并對(duì)此做出響應(yīng),可使編寫的程序和Web服務(wù)器間的接口標(biāo)準(zhǔn)化。
嵌人式服務(wù)器正常工作往往要引人文件系統(tǒng),uClinux操作系統(tǒng)提供了很好的文件系統(tǒng);同時(shí)利用uClinux操作系統(tǒng)自身所帶的TCP/IP ( Transport Control Protocol/Internet Protocol)協(xié)議棧,只要在應(yīng)用層上利用操作系統(tǒng)提供的網(wǎng)絡(luò)API ( Application Programming Interface)編寫服務(wù)器端程序即可,大大節(jié)省了開(kāi)發(fā)時(shí)間。
2、系統(tǒng)硬件設(shè)計(jì)
對(duì)于一個(gè)嵌入式系統(tǒng)而言,硬件系統(tǒng)設(shè)計(jì)相當(dāng)重要,一方面要考慮所選擇的器件是否適合應(yīng)用要求,硬件資源是否足夠用來(lái)編程調(diào)試并保證系統(tǒng)性能優(yōu)良;另一方面硬件資源要在滿足系統(tǒng)需求前提下盡可能降低成本?;赟3 C4510B核心芯片擴(kuò)展了必要的Flash , SDRAM ( Synchronous Dynamic Random Access Memory)以及網(wǎng)絡(luò)接口和無(wú)線通信接日模塊。
網(wǎng)絡(luò)傳輸接口由以太網(wǎng)物理層接口器DM9161、網(wǎng)絡(luò)隔離變壓器FC一巧岱和RJ45接口組成。本系統(tǒng)沒(méi)有單獨(dú)使用以太網(wǎng)控制器,因?yàn)镾3C4510B內(nèi)嵌一個(gè)以太網(wǎng)控制器支持媒體獨(dú)立接口(MII:Media Independent Interface)和帶緩沖DMA接口(BDI:Buffered DMA Interface),可在半雙工或全雙工模式下提供10 /100 Mbit/s的以太網(wǎng)接人。在全雙工模式下支持IEEE802. 3 MAC ( Media Access Control)層協(xié)議。DM9161完成物理層及數(shù)據(jù)發(fā)送/接收功能,支持100BaseT和lOBaseT網(wǎng)絡(luò)。由于S3C4510B片內(nèi)已有帶MII接口的MAC控制器,DM9161也提供了MII接口,各種信號(hào)的定義也很明確,因此DM9161與S3 C4510的連接較簡(jiǎn)單。信號(hào)發(fā)送和接收端應(yīng)通過(guò)網(wǎng)絡(luò)隔離變壓器FC-S15IS和RJ45接口接人傳輸媒質(zhì)。
數(shù)據(jù)通信采用無(wú)線數(shù)傳Modem模塊PTR2Q00完成。該器件是業(yè)界倍受推崇的一款無(wú)線數(shù)傳產(chǎn)品。它將數(shù)據(jù)的接收和發(fā)射合為一體;采用FSK調(diào)制/解調(diào)技術(shù),可直接進(jìn)行數(shù)據(jù)輸入/輸出,抗干擾能力強(qiáng);采用DDS(直接數(shù)據(jù)合成)十PLL(Phase-Locked Lo叩)頻率合成技術(shù);頻率穩(wěn)定性極好;其工作頻率穩(wěn)定可靠、外圍元件少、功耗極低且便于設(shè)計(jì)生產(chǎn)。另外,由于它采用了低發(fā)射功率、高靈敏度設(shè)計(jì),因而可滿足無(wú)線管制的要求且無(wú)需使用許可證,是目前低功率無(wú)線數(shù)傳的理想選擇。利用S3 C4510B芯片的GPIO控制PTR2001〕的D0, DI和TXEN引腳,并通過(guò)對(duì)GPIO高低電平的設(shè)置來(lái)控制TXEN從而實(shí)現(xiàn)收發(fā)轉(zhuǎn)換岡,通過(guò)驅(qū)動(dòng)GPIO(General-Purpose UO Port)模擬PTR2000的DO及DI收發(fā)時(shí)序,遵循多機(jī)通信協(xié)議,即可完成主動(dòng)方式的數(shù)據(jù)通信。
此外,在設(shè)備現(xiàn)場(chǎng),可利用MSC-51系列單片機(jī)控制PTR2000完成現(xiàn)場(chǎng)測(cè)控模塊的功能(其中包括無(wú)線信道的建立)。MSC-51的TTL電平與YTR2000的TTL電平相同,可直接將PTR2000的DO和DI與MSC-51的RXD和TXD相連。如圖2所示,現(xiàn)場(chǎng)測(cè)控的MSC-51和PTR2000的連接電路示意圖,把MSC-51的Pl. 7和PTR2000的TXEN相連,以控制模塊的發(fā)射控制、頻道轉(zhuǎn)換和低功耗模式。

圖2 現(xiàn)場(chǎng)測(cè)控MSC-51和PTR2000連接電路示意圖
3、軟件程序?qū)崿F(xiàn)
本設(shè)計(jì)的軟件程序編寫涉及到很多關(guān)鍵技術(shù),包括嵌人式HTTP(Hypertext Transfer Protocol)服務(wù)器、公共網(wǎng)關(guān)接口CGI , HTML和Java Applet技術(shù)以及在Linux下的進(jìn)程間通信。嵌人式HTTP服務(wù)器是建立在客戶端/服務(wù)器端模式下的,由守護(hù)進(jìn)程偵聽(tīng)80端口提供服務(wù),對(duì)嵌人式HTTP服務(wù)器而言,瀏覽器就是客戶端。在類linux下建立嵌人式HTTP服務(wù)器涉及到網(wǎng)絡(luò)Socket編程,Socket利用客戶端/服務(wù)器端模式在進(jìn)程之間建立通信連接。對(duì)嵌入式HTTP服務(wù)器而言,服務(wù)被提供時(shí)必然存在服務(wù)進(jìn)程和客戶進(jìn)程,它們?cè)谕ㄐ徘坝直仨殑?chuàng)建各自的套接字并建立連接,然后才能對(duì)相應(yīng)的套接字進(jìn)行“讀”和“寫”操作,實(shí)現(xiàn)數(shù)據(jù)傳輸。
公共網(wǎng)關(guān)接口CGI是建立在HTTP服務(wù)器內(nèi)的一個(gè)軟件模塊,它可以執(zhí)行存儲(chǔ)在服務(wù)器上的程序。CGI腳本與HTTP服務(wù)器一起負(fù)責(zé)響應(yīng)客戶請(qǐng)求。HTTP服務(wù)器根據(jù)請(qǐng)求調(diào)用相應(yīng)的CGI程序進(jìn)行處理,最后向客戶端返回處理結(jié)果并結(jié)束交互過(guò)程。傳統(tǒng)的純HTML文檔所包含的信息是靜止不動(dòng)的,而利用CGI腳本則可根據(jù)用戶請(qǐng)求實(shí)時(shí)運(yùn)行,并產(chǎn)生動(dòng)態(tài)信息,具有很高的效率和更大的靈活性。
HTML的實(shí)現(xiàn)比較容易,Java Applet相對(duì)比較復(fù)雜一點(diǎn)。本系統(tǒng)的Java Applet由圖形界面和網(wǎng)絡(luò)連接交互兩部分組成,當(dāng)然Java Applet的整體運(yùn)行還是按照J(rèn)ava Applet生命周期(包括3個(gè)基本循環(huán):init()、start()和stop())運(yùn)行的。
對(duì)于圖形界面,Java的抽象窗口工具集AWT中包含很多的類,以支持GUI的設(shè)計(jì),建立標(biāo)準(zhǔn)的圖形界面。利用AWT提供的基本組件,設(shè)置按鈕、復(fù)選框、標(biāo)簽、菜單、滾動(dòng)條和文本區(qū);利用容器組件,創(chuàng)建面板、窗口、框架和對(duì)話框等;利用提供的布局管理器(例如F1owLayout、BorderLayout和GridBagLayout ),AWT還提供繪圖方法和事件處理機(jī)制。
本系統(tǒng)還涉及到多個(gè)進(jìn)程。例如,無(wú)線串口模塊管理進(jìn)程要從串口接收和發(fā)送數(shù)據(jù)和指令,同時(shí)還要向CGI進(jìn)程返回測(cè)量結(jié)果。這些都必須通過(guò)兩個(gè)進(jìn)程間的通信實(shí)現(xiàn)。在Linux下進(jìn)程間通信的實(shí)現(xiàn)方式有信號(hào)、管道、System V進(jìn)程間通信(消息隊(duì)列、信號(hào)燈、共享內(nèi)存)等。
由于老版本的uClinux不支持System V進(jìn)程間通信機(jī)制,可以采用共享文件來(lái)實(shí)現(xiàn)CGI進(jìn)程與無(wú)線串口模塊管理進(jìn)程間的通信。為便于進(jìn)程間的通信,建立文本文件note. txt,無(wú)線串口模塊管理進(jìn)程向note. txt寫人從串口傳過(guò)來(lái)的數(shù)據(jù),CGI進(jìn)程從note. txt讀取數(shù)據(jù)。
但是兩個(gè)進(jìn)程對(duì)note. txt的訪問(wèn)是互斥的,即同一時(shí)刻最多只能有一個(gè)進(jìn)程訪問(wèn)這個(gè)文件。用文件write. lock可以實(shí)現(xiàn)互斥訪問(wèn),即無(wú)線串口模塊管理進(jìn)程在訪問(wèn)note. txt文件之前先判斷read. lock是否存在,若有則等待,若沒(méi)有就先創(chuàng)建write. lock文件鎖,然后就可以打開(kāi)note. txt文件進(jìn)行訪問(wèn),文件訪問(wèn)完成后刪除文件鎖。同樣,使用read. lock文件鎖可以實(shí)現(xiàn)CGI進(jìn)程從note. txt讀取數(shù)據(jù)。
當(dāng)uClinux支持System V進(jìn)程間通信機(jī)制時(shí),一般采用消息隊(duì)列、信號(hào)量、共享內(nèi)存等。這里采用信號(hào)量和共享內(nèi)存共同作用方式。共享內(nèi)存是由IPC為一個(gè)進(jìn)程創(chuàng)建的一個(gè)特殊的地址范圍,它將出現(xiàn)在進(jìn)程的地址空間中。其他進(jìn)程可把同一段共享內(nèi)存段“連接到”它們自己的地址空間。所有進(jìn)程都可以訪問(wèn)共享地址。如果一個(gè)進(jìn)程向這段共享內(nèi)存寫了數(shù)據(jù),所做的改動(dòng)會(huì)立刻被有權(quán)訪問(wèn)同一段共享內(nèi)存的其他進(jìn)程看到。共享內(nèi)存本身沒(méi)有提供任何同步功能,使用一個(gè)信號(hào)量在程序的讀、寫這兩部分之間進(jìn)行同步并利用其保護(hù)機(jī)制,防止內(nèi)存的不正確共享的現(xiàn)象。

圖3 嵌入式HTTP服務(wù)器index.html界面
4、測(cè)試結(jié)果和結(jié)論
基于上述方案對(duì)實(shí)現(xiàn)的嵌人式遠(yuǎn)程集中測(cè)控系統(tǒng)進(jìn)行了網(wǎng)絡(luò)應(yīng)用測(cè)試。測(cè)控執(zhí)行部件完成對(duì)現(xiàn)場(chǎng)的溫度的采集和顯示設(shè)備的控制等任務(wù)。在瀏覽器URL處輸入:http: //192. 168.0.2/index. html(192. 168. 0. 2是嵌人式HTTP服務(wù)器的IP地址)。嵌人式HTTP服務(wù)器index. html界面如圖3所示。雙擊“嵌人式溫測(cè)系統(tǒng)”,出現(xiàn)如圖4所示的Java Applet交互界面。該界面中給出了實(shí)際測(cè)量的溫度曲線。測(cè)試結(jié)果表明,該嵌人式遠(yuǎn)程集中測(cè)控系統(tǒng)設(shè)計(jì)方案合理,可靠性、實(shí)時(shí)性和開(kāi)發(fā)成本優(yōu)于同類相關(guān)技術(shù),同時(shí)也為嵌人式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用提供了成功的參考實(shí)例。
圖4 Java Applet交互界面
基于嵌人式系統(tǒng)的遠(yuǎn)程集中監(jiān)控系統(tǒng)是數(shù)據(jù)采集、網(wǎng)絡(luò)傳輸、計(jì)算機(jī)軟件等多種技術(shù)的綜合應(yīng)用,適用于對(duì)遠(yuǎn)端現(xiàn)場(chǎng)環(huán)境進(jìn)行實(shí)時(shí)監(jiān)控,自動(dòng)化管理,保障工業(yè)生產(chǎn)的安全穩(wěn)定運(yùn)行。它不僅具有基本的環(huán)境指標(biāo)監(jiān)測(cè)功能,而且通過(guò)無(wú)線傳輸將控制端和現(xiàn)場(chǎng)設(shè)備連接起來(lái),可在上位計(jì)算機(jī)上進(jìn)行集中監(jiān)控以及查詢和統(tǒng)計(jì)工作,具有結(jié)構(gòu)靈活、人機(jī)界面好、集現(xiàn)代化控制和管理技術(shù)于一體等優(yōu)點(diǎn),提高了生產(chǎn)效率。此系統(tǒng)也可以應(yīng)用于其他遠(yuǎn)距離分布式控制場(chǎng)合。