|
零基礎(chǔ)學(xué)習(xí)嵌入式的路線_嵌入式WEB的工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控系統(tǒng),
隨著互聯(lián)網(wǎng)技術(shù)近年來的不斷發(fā)展,機(jī)電設(shè)備融入互連網(wǎng),并對(duì)其進(jìn)行遠(yuǎn)程監(jiān)控得到了廣泛應(yīng)用。 基于嵌入式WEB的遠(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ù)實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控,已經(jīng)越來越多地成為設(shè)備監(jiān)控系統(tǒng)不可或缺的一部分。嵌入式設(shè)備的Web服務(wù)為現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)采集、監(jiān)控、診斷和維護(hù)開辟了一個(gè)新的領(lǐng)域。 基于嵌入式Web的工業(yè)洗衣機(jī)遠(yuǎn)程監(jiān)控模型 基于嵌入式Web的遠(yuǎn)程監(jiān)控思想是在機(jī)電設(shè)備中實(shí)現(xiàn)HTTP 服務(wù),將其轉(zhuǎn)化成Web Server嵌入到被控設(shè)備中,為Internet或局域網(wǎng)用戶提供基于Web 的圖形化管理接口,從而省去了專用客戶端管理軟件,實(shí)現(xiàn)對(duì)接入到網(wǎng)絡(luò)中各種設(shè)備的統(tǒng)一管理。用戶可以通過現(xiàn)有的公共通信網(wǎng)絡(luò),不受地域限制,使用標(biāo)準(zhǔn)的Web瀏覽器作為接口直接訪問機(jī)電設(shè)備上的Web服務(wù)器,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)現(xiàn)場(chǎng)設(shè)備的遠(yuǎn)程監(jiān)控、診斷與維護(hù)。 一般工業(yè)洗衣機(jī)的基本功能有:人機(jī)接口、電機(jī)控制、閥控制、洗衣機(jī)狀態(tài)檢測(cè)、溫度檢測(cè)和水位檢測(cè)。要實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和遠(yuǎn)程故障診斷,洗衣機(jī)還應(yīng)具有網(wǎng)絡(luò)功能。要實(shí)現(xiàn)智能控制,即在洗滌過程中控制器能根據(jù)洗滌物的多少、臟污程度和臟污性質(zhì)自動(dòng)給出最佳洗滌方案,這就要求洗衣機(jī)具有渾濁度檢測(cè)和布質(zhì)布量檢測(cè)功能。通過上述分析,要實(shí)現(xiàn)工業(yè)洗衣機(jī)的基本功能以及智能化和網(wǎng)絡(luò)化,嵌入式系統(tǒng)至少要有以下接口:LCD接口、觸摸屏接口(矩陣鍵盤接口、LED指示燈接口)、RS-232或RS485接口、UART接口、3路AD輸入、21路數(shù)字量輸出、8路數(shù)字量輸入(兩個(gè)可作為中斷源)及Ethernet接口。 硬件設(shè)計(jì) 隨著嵌入式微處理器的發(fā)展,出現(xiàn)了Power PC、68K、MIPS、ARM等一系列低功耗、高性能的嵌入式CPU。因此選擇低成本的32位ARM系列嵌入式處理器,不但價(jià)格低廉,而且功耗低、處理速度快,應(yīng)用前景廣泛,比較適合遠(yuǎn)程監(jiān)控需求!≡诠I(yè)洗衣機(jī)的遠(yuǎn)程監(jiān)控的系統(tǒng)中選用韓國現(xiàn)代公司的HMS30C7202(32位RISC 微處理器),這是一款具有高性價(jià)比的芯片。該芯片內(nèi)集成了ARM7TDMI CPU核,存儲(chǔ)器管理單元(MMU),8KB的高速緩沖存儲(chǔ)器以及寫緩沖器。并具有豐富的接口:支持STN和TFT的LCD、觸摸屏、矩陣鍵盤、鼠標(biāo)、LED指示燈、LAN、CAN、USB、RS-232、RS-485、紅外、24路繼電器輸出、10路數(shù)字量輸入、3路模擬量輸入和2路PWM輸出。為實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控,系統(tǒng)底層網(wǎng)絡(luò)接口芯片采用CS8900A及外圍電路實(shí)現(xiàn),本系統(tǒng)中網(wǎng)絡(luò)接口芯片CS8900A工作于16位模式! ≤浖O(shè)計(jì) 軟件設(shè)計(jì)的核心工作是在上述硬件平臺(tái)上建立嵌入式WEB服務(wù)器,實(shí)時(shí)響應(yīng)用戶的請(qǐng)求。除此之外還要實(shí)現(xiàn)工業(yè)洗衣機(jī)的智能控制。工業(yè)洗衣機(jī)系統(tǒng)需要進(jìn)行多個(gè)參數(shù)的檢測(cè),需要使用多個(gè)傳感器,每一個(gè)傳感器的參數(shù)檢測(cè)和數(shù)據(jù)傳輸方式也各不相同。并且在洗滌過程中有很多需要控制的部件,如變頻器、各種閥等;在系統(tǒng)中各功能模塊關(guān)系復(fù)雜,任務(wù)多,而且各種需求間有并發(fā)關(guān)系。另外,還有網(wǎng)絡(luò)功能。因此有必要引入嵌入式操作系統(tǒng)!”鞠到y(tǒng)選用μC/OS-II嵌入式操作系統(tǒng),它是一個(gè)多任務(wù)強(qiáng)實(shí)時(shí)的開源操作系統(tǒng),經(jīng)裁減、移植與補(bǔ)充后形成工業(yè)洗衣機(jī)的專用實(shí)時(shí)操作系統(tǒng)。網(wǎng)絡(luò)通信協(xié)議TCP/IP采用源碼公開的1wIP協(xié)議棧,并針對(duì)具體需求進(jìn)行優(yōu)化設(shè)計(jì)。為了得到人性化的本地操作用戶界面,采用了一種開源的圖形用戶界面μC/GUI,它與μC/OS-II有很好的接口配合,功能完善。因此,工業(yè)洗衣機(jī)智能控制器軟件由四部分組成:實(shí)時(shí)操作系統(tǒng)μC/OS-II、硬件驅(qū)動(dòng)程序、API函數(shù)和應(yīng)用程序。 嵌入式操作系統(tǒng) mC/OS-II是一個(gè)源代碼公開的占先式多任務(wù)微內(nèi)核RTOS,每個(gè)任務(wù)具有不同的優(yōu)先級(jí),能夠很好的滿足實(shí)時(shí)性需求。與其它實(shí)時(shí)操作系統(tǒng)相比,mC/OS-II結(jié)構(gòu)簡單、容易移植,廣泛運(yùn)用于工業(yè)控制的各領(lǐng)域。在將mC/OS-II(V2.51)移植到HMS30C7202上的主要工作是修改三個(gè)和ARM體系結(jié)構(gòu)相關(guān)的文件,OS_CPU. H,OS_CPU_C.C和OS_CPU_A.S!S_CPU.H主要包含編譯器相關(guān)的數(shù)據(jù)類型的定義、堆棧類型的定義以及幾個(gè)宏定義和函數(shù)說明。而OS_CPU_C.C中則包含與移植有關(guān)的C函數(shù),包括堆棧的初始化函數(shù)和一些鉤子(hook)函數(shù)的實(shí)現(xiàn)。OS_CPU_A.S中則包含與移植有關(guān)的匯編語言函數(shù),包括開/關(guān)中斷、上下文切換、時(shí)鐘中斷服務(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 實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM 的占用,一般它只需要數(shù)10kB RAM 和40kB左右的ROM 就可以運(yùn)行,這使LWIP協(xié)議棧適合在低端嵌入式系統(tǒng)中使用。LWIP協(xié)議棧在設(shè)計(jì)時(shí)就考慮到了將來的移植問題,把所有與硬件、OS、編譯器相關(guān)的部分獨(dú)立出來,放在/src/arch目錄下。因此LWIP在uC/OS-Ⅱ上的實(shí)現(xiàn)就是修改這個(gè)目錄下的文件,其他的文件一般不用修改。本系統(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個(gè)外部函數(shù)(1ibarch.c),這些函數(shù)與用戶使用的系統(tǒng)或編譯器有關(guān),因此需要自己實(shí)現(xiàn)。 /src/netif/ethernetif.c文件即為網(wǎng)絡(luò)驅(qū)動(dòng)的模板,我們可以參照此模板實(shí)現(xiàn)選用的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。做完上面的移植修改工作以后,就可以在uC/0S一Ⅱ中創(chuàng)建一個(gè)任務(wù)初始化LWlP,并創(chuàng)建TCP任務(wù)、UDP任務(wù)和HTTP任務(wù)。偽代碼如下: 創(chuàng)建LWIP任務(wù)
{
■系統(tǒng)初始化;
■內(nèi)存初始化;
■包內(nèi)存初始化;
■包緩沖初始化;;
■網(wǎng)絡(luò)初始化;
■創(chuàng)建一個(gè)系統(tǒng)信號(hào)量;
■Tcpip初始化;
■等待系統(tǒng)信號(hào)量;
釋放系統(tǒng)信號(hào)量;
■設(shè)置網(wǎng)關(guān);
■設(shè)置IP地址;
■設(shè)置子網(wǎng)掩碼;
TCP初始化任務(wù);
HTTP初始化任務(wù);
UDP初始化任務(wù);
while(1)
{延時(shí);}
}
嵌入式WEB服務(wù)器 隨著Web技術(shù)的迅速發(fā)展,Brower/Server(B/S)模式已成為流行的開發(fā)模式,這種方式基本上不用開發(fā)客戶端程序,只需對(duì)服務(wù)器端程序進(jìn)行開發(fā)程序,在客戶端采用諸如IE這樣的瀏覽器對(duì)服務(wù)器上的數(shù)據(jù)進(jìn)行瀏覽。從功能上來講,WEB服務(wù)器監(jiān)聽用戶端的服務(wù)請(qǐng)求,根據(jù)用戶請(qǐng)求的類型提供相應(yīng)的服務(wù)。用戶端使用WEB瀏覽器和WEB服務(wù)器進(jìn)行通信。WEB服務(wù)器在接收到用戶端的請(qǐng)求后,處理用戶請(qǐng)求并返回需要的數(shù)據(jù)。 這些數(shù)據(jù)通常以格式固定、含有文本或圖片的頁面出現(xiàn)在用戶端瀏覽器。HTTP(Hyper Text Transfer Protocol)是WWW(World Wide Web)的核心協(xié)議,即超文本傳輸協(xié)議。WWW使用HTTP協(xié)議、超媒體技術(shù)將遍布全球的各種信息通過URL(Uniform Resource locator-統(tǒng)一資源定位)連接起來,以便于用戶瀏覽。HTTP是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議。HTTP協(xié)議有兩項(xiàng)功能,即傳輸文件和實(shí)現(xiàn)動(dòng)態(tài)交互應(yīng)用。LWIP在該源程序軟件包含HTTP1.0。LWIP運(yùn)行一個(gè)簡單的HTTP/1.0服務(wù)器至少能夠同時(shí)響應(yīng)10個(gè)以上頁面請(qǐng)求,而且占用RAM不超過4k字節(jié)。 為了減少“上下文切換”對(duì)整體性能造成的消極影響,LWIP的所有協(xié)議都在一個(gè)進(jìn)程當(dāng)中和操作系統(tǒng)內(nèi)核分開實(shí)現(xiàn)。而HTTP程序既可以是單獨(dú)的進(jìn)程也可以駐留在TCP/IP進(jìn)程中。如果HTTP是單獨(dú)的進(jìn)程,可以通過操作系統(tǒng)的郵箱,消息隊(duì)列等和TCP/IP進(jìn)程進(jìn)行通訊;如果HTTP駐留在TCP/IP進(jìn)程中,那應(yīng)用層程序就利用內(nèi)部回調(diào)函數(shù)口(Raw API)和TCP/IP協(xié)議棧通訊。 由于嵌入式系統(tǒng)的資源有限,基于嵌入式Web的工業(yè)洗衣機(jī)的遠(yuǎn)程監(jiān)控系統(tǒng)需要數(shù)據(jù)高效傳輸、圖形化監(jiān)控的人機(jī)交互界面以及自主刷新。同時(shí),對(duì)測(cè)量數(shù)據(jù)進(jìn)行分析、處理都需要實(shí)現(xiàn)采集數(shù)據(jù)的本地保存。因此,采用瀏覽器/服務(wù)器(B/S )和客戶端與服務(wù)器端(C/S)相結(jié)合的模式。在服務(wù)器端采用CGI (Common Gateway Interface)技術(shù),以實(shí)現(xiàn)瀏覽器和服務(wù)器之間的交互。CGI規(guī)定了Web服務(wù)器調(diào)用其他可執(zhí)行程序的接口協(xié)議標(biāo)準(zhǔn),提供了Web 服務(wù)器執(zhí)行外部程序的通道,這種技術(shù)使得瀏覽器和服務(wù)器之間具有交互性。 采用Java Applet技術(shù)增強(qiáng)瀏覽器的功能,實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的實(shí)時(shí)瀏覽,通過B/S 方式訪問Web 服務(wù)器上的網(wǎng)頁數(shù)據(jù),客戶端的IE瀏覽器瀏覽這個(gè)網(wǎng)頁時(shí),會(huì)把網(wǎng)頁中標(biāo)識(shí)的Java applet源程序下載到客戶端執(zhí)行。在Java applet 源程序中,創(chuàng)建了一個(gè)套接字來完成與服務(wù)器的通信(前提是Web服務(wù)器上同時(shí)運(yùn)行一個(gè)相應(yīng)的服務(wù)器監(jiān)聽程序),獲取實(shí)時(shí)數(shù)據(jù),用于在瀏覽器中顯示。事實(shí)上,在Java applet 中的socket通信是一個(gè)典型的C/S訪問方式。系統(tǒng)通過Java applet平衡了服務(wù)器端與瀏覽器端的負(fù)載狀況,將一部分從前在服務(wù)器上工作分給了瀏覽器,降低了服務(wù)器的運(yùn)行負(fù)荷。 控制系統(tǒng)軟件設(shè)計(jì) 用戶通過網(wǎng)絡(luò)傳送命令,控制洗衣機(jī)工作。根據(jù)用戶設(shè)定的水位、溫度等參數(shù)完成洗滌和脫水;洗衣機(jī)需要自動(dòng)檢測(cè)洗滌物質(zhì)量、含棉率、臟污程度和臟污性質(zhì),通過智能推理得出最佳洗滌方案,自動(dòng)完成洗滌過程。因此控制系統(tǒng)軟件設(shè)計(jì)如下任務(wù):模擬量采集任務(wù),數(shù)字量檢測(cè)任務(wù),報(bào)警任務(wù),閥控制任務(wù),混濁度檢測(cè)任務(wù),洗滌控制任務(wù),電機(jī)控制任務(wù),網(wǎng)絡(luò)任務(wù)。根據(jù)每個(gè)任務(wù)的重要程度設(shè)置不同的優(yōu)先級(jí),各個(gè)任務(wù)之間通過信號(hào)量或郵箱進(jìn)行通信。 結(jié)束語 嵌入式WEB技術(shù)是一種新興的技術(shù),它采用瘦服務(wù)器模式,大大降低了構(gòu)建的費(fèi)用。本文采取ARM+RTOS+LWIP+HTTP的架構(gòu)實(shí)現(xiàn)工業(yè)洗衣機(jī)的遠(yuǎn)程監(jiān)控,為洗衣機(jī)廠商的售后服務(wù)以及洗衣房和洗衣廠的管理帶來極大的方便。通過網(wǎng)絡(luò)可以實(shí)現(xiàn)洗衣機(jī)系統(tǒng)軟件的遠(yuǎn)程升級(jí), 進(jìn)一步改善和提高系統(tǒng)的性能 |
|