隨著互聯(lián)網(wǎng)技術(shù)近年來的不斷發(fā)展,機(jī)電設(shè)備融入互連網(wǎng),并對其進(jìn)行遠(yuǎn)程監(jiān)控得到了廣泛應(yīng)用?;谇度胧絯eb的遠(yuǎn)程監(jiān)控是在傳統(tǒng)遠(yuǎn)程監(jiān)控的基礎(chǔ)上又融合了Web和嵌入式技術(shù),可提供比傳統(tǒng)遠(yuǎn)程監(jiān)控更為強(qiáng)大的功能,將成為今后遠(yuǎn)程監(jiān)控技術(shù)發(fā)展的主流方向。Web技術(shù)彌補(bǔ)了傳統(tǒng)監(jiān)控系統(tǒng)的不足,致使運(yùn)用Web技術(shù)實現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控,已經(jīng)越來越多地成為設(shè)備監(jiān)控系統(tǒng)不可或缺的一部分。嵌入式設(shè)備的Web服務(wù)為現(xiàn)場設(shè)備的數(shù)據(jù)采集、監(jiān)控、診斷和維護(hù)開辟了一個新的領(lǐng)域。
基于嵌入式Web的工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控模型
基于嵌入式Web的遠(yuǎn)程監(jiān)控思想是在機(jī)電設(shè)備中實現(xiàn)HTTP 服務(wù),將其轉(zhuǎn)化成Web Server嵌入到被控設(shè)備中,為Internet或局域網(wǎng)用戶提供基于Web 的圖形化管理接口,從而省去了專用客戶端管理軟件,實現(xiàn)對接入到網(wǎng)絡(luò)中各種設(shè)備的統(tǒng)一管理。用戶可以通過現(xiàn)有的公共通信網(wǎng)絡(luò),不受地域限制,使用標(biāo)準(zhǔn)的Web瀏覽器作為接口直接訪問機(jī)電設(shè)備上的Web服務(wù)器,實現(xiàn)對網(wǎng)絡(luò)中各個節(jié)點現(xiàn)場設(shè)備的遠(yuǎn)程監(jiān)控、診斷與維護(hù)。
一般工業(yè)洗衣機(jī)的基本功能有:人機(jī)接口、電機(jī)控制、閥控制、洗衣機(jī)狀態(tài)檢測、溫度檢測和水位檢測。要實現(xiàn)遠(yuǎn)程監(jiān)控和遠(yuǎn)程故障診斷,洗衣機(jī)還應(yīng)具有網(wǎng)絡(luò)功能。要實現(xiàn)智能控制,即在洗滌過程中控制器能根據(jù)洗滌物的多少、臟污程度和臟污性質(zhì)自動給出最佳洗滌方案,這就要求洗衣機(jī)具有渾濁度檢測和布質(zhì)布量檢測功能。通過上述分析,要實現(xiàn)工業(yè)洗衣機(jī)的基本功能以及智能化和網(wǎng)絡(luò)化,嵌入式系統(tǒng)至少要有以下接口:LCD接口、觸摸屏接口(矩陣鍵盤接口、LED指示燈接口)、RS-232或RS485接口、UART接口、3路AD輸入、21路數(shù)字量輸出、8路數(shù)字量輸入(兩個可作為中斷源)及Ethernet接口,基于嵌入式WEB的工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控的總體結(jié)構(gòu)圖如圖1。
圖1:基于嵌入式WEB 的工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控的總體結(jié)構(gòu)圖
硬件設(shè)計
隨著嵌入式微處理器的發(fā)展,出現(xiàn)了Power PC、68K、MIPS、ARM等一系列低功耗、高性能的嵌入式CPU。因此選擇低成本的32位ARM系列嵌入式處理器,不但價格低廉,而且功耗低、處理速度快,應(yīng)用前景廣泛,比較適合遠(yuǎn)程監(jiān)控需求。在工業(yè)洗衣機(jī)的遠(yuǎn)程監(jiān)控的系統(tǒng)中選用韓國現(xiàn)代公司的HMS30C7202(32位RISC 微處理器),這是一款具有高性價比的芯片。該芯片內(nèi)集成了ARM7TDMI CPU核,存儲器管理單元(MMU),8KB的高速緩沖存儲器以及寫緩沖器。并具有豐富的接口:支持STN和TFT的LCD、觸摸屏、矩陣鍵盤、鼠標(biāo)、LED指示燈、LAN、CAN、USB、RS-232、RS-485、紅外、24路繼電器輸出、10路數(shù)字量輸入、3路模擬量輸入和2路PWM輸出。為實現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控,系統(tǒng)底層網(wǎng)絡(luò)接口芯片采用CS8900A及外圍電路實現(xiàn),本系統(tǒng)中網(wǎng)絡(luò)接口芯片CS8900A工作于16位模式。工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控智能控制系統(tǒng)硬件框圖如圖2。
圖2:工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控智能控制系統(tǒng)硬件框圖
軟件設(shè)計
軟件設(shè)計的核心工作是在上述硬件平臺上建立嵌入式WEB服務(wù)器,實時響應(yīng)用戶的請求。除此之外還要實現(xiàn)工業(yè)洗衣機(jī)的智能控制。工業(yè)洗衣機(jī)系統(tǒng)需要進(jìn)行多個參數(shù)的檢測,需要使用多個傳感器,每一個傳感器的參數(shù)檢測和數(shù)據(jù)傳輸方式也各不相同。并且在洗滌過程中有很多需要控制的部件,如變頻器、各種閥等;在系統(tǒng)中各功能模塊關(guān)系復(fù)雜,任務(wù)多,而且各種需求間有并發(fā)關(guān)系。另外,還有網(wǎng)絡(luò)功能。因此有必要引入嵌入式操作系統(tǒng)。本系統(tǒng)選用μC/OS-II嵌入式操作系統(tǒng),它是一個多任務(wù)強(qiáng)實時的開源操作系統(tǒng),經(jīng)裁減、移植與補(bǔ)充后形成工業(yè)洗衣機(jī)的專用實時操作系統(tǒng)。網(wǎng)絡(luò)通信協(xié)議TCP/IP采用源碼公開的1wIP協(xié)議棧,并針對具體需求進(jìn)行優(yōu)化設(shè)計。為了得到人性化的本地操作用戶界面,采用了一種開源的圖形用戶界面μC/GUI,它與μC/OS-II有很好的接口配合,功能完善。因此,工業(yè)洗衣機(jī)智能控制器軟件由四部分組成:實時操作系統(tǒng)μC/OS-II、硬件驅(qū)動程序、API函數(shù)和應(yīng)用程序。具體結(jié)構(gòu)如圖3:
圖3:工業(yè)洗衣機(jī)系統(tǒng)軟件框圖
嵌入式操作系統(tǒng)
mC/OS-II是一個源代碼公開的占先式多任務(wù)微內(nèi)核RTOS,每個任務(wù)具有不同的優(yōu)先級,能夠很好的滿足實時性需求。與其它實時操作系統(tǒng)相比,mC/OS-II結(jié)構(gòu)簡單、容易移植,廣泛運(yùn)用于工業(yè)控制的各領(lǐng)域。在將mC/OS-II(V2.51)移植到HMS30C7202上的主要工作是修改三個和ARM體系結(jié)構(gòu)相關(guān)的文件,OS_CPU. H,OS_CPU_C.C和OS_CPU_A.S。OS_CPU.H主要包含編譯器相關(guān)的數(shù)據(jù)類型的定義、堆棧類型的定義以及幾個宏定義和函數(shù)說明。而OS_CPU_C.C中則包含與移植有關(guān)的C函數(shù),包括堆棧的初始化函數(shù)和一些鉤子(hook)函數(shù)的實現(xiàn)。OS_CPU_A.S中則包含與移植有關(guān)的匯編語言函數(shù),包括開/關(guān)中斷、上下文切換、時鐘中斷服務(wù)程序等等。
TCP/IP協(xié)議棧
系統(tǒng)采用開源TCP/IP協(xié)議棧LWIP(Light Weight IP),LWIP是Swedish Institute of Computer Science開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LWIP 實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM 的占用,一般它只需要數(shù)10kB RAM 和40kB左右的ROM 就可以運(yùn)行,這使LWIP協(xié)議棧適合在低端嵌入式系統(tǒng)中使用。LWIP協(xié)議棧在設(shè)計時就考慮到了將來的移植問題,把所有與硬件、OS、編譯器相關(guān)的部分獨(dú)立出來,放在/src/arch目錄下。因此LWIP在uC/OS-Ⅱ上的實現(xiàn)就是修改這個目錄下的文件,其他的文件一般不用修改。本系統(tǒng)移植的是LWIP是1.1.0版本。LwIP的移植工作主要有:
修改與CPU 或編譯器相關(guān)的include文件:cc.h、cpu.h、perf.h,正確設(shè)置數(shù)據(jù)長度,字的高低位順序等。
修改sys__arch.h和sys__arch.c中與操作系統(tǒng)相關(guān)部分。
LWlP協(xié)議棧中用到了6個外部函數(shù)(1ibarch.c),這些函數(shù)與用戶使用的系統(tǒng)或編譯器有關(guān),因此需要自己實現(xiàn)。
/src/netif/ethernetif.c文件即為網(wǎng)絡(luò)驅(qū)動的模板,我們可以參照此模板實現(xiàn)選用的網(wǎng)絡(luò)設(shè)備驅(qū)動。做完上面的移植修改工作以后,就可以在uC/0S一Ⅱ中創(chuàng)建一個任務(wù)初始化LWlP,并創(chuàng)建TCP任務(wù)、UDP任務(wù)和HTTP任務(wù)。偽代碼如下:
創(chuàng)建LWIP任務(wù)
{
■系統(tǒng)初始化;
■內(nèi)存初始化;
■包內(nèi)存初始化;
■包緩沖初始化;;
■網(wǎng)絡(luò)初始化;