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