基于USS協(xié)議變頻器Web控制方法的設(shè)計方案
本文研究的課題就是利用Web瀏覽器監(jiān)制USS協(xié)議變頻器。要實現(xiàn)這些功能,就要在硬件上開發(fā)一個小型的Web服務(wù)器,需要在硬件平臺上完成TCP/IP的裁剪和移植。Web服務(wù)器完成對網(wǎng)絡(luò)數(shù)據(jù)的處理,根據(jù)用戶提交的命令來對USS變頻器進行相應(yīng)的控制。在瀏覽器端,如果用戶監(jiān)控網(wǎng)頁的網(wǎng)址,就會向服務(wù)器發(fā)送HTTP請求,服務(wù)器把監(jiān)控網(wǎng)頁的HTML代碼發(fā)送到瀏覽器端。服務(wù)器里有相應(yīng)的程序來接收和發(fā)送USS報文,實現(xiàn)對西門子變頻器的控制。
基于TCP/IP協(xié)議的以太網(wǎng)已成為工業(yè)標(biāo)準(zhǔn),隨著以太網(wǎng)的發(fā)展,以及嵌入式Web服務(wù)器發(fā)展為網(wǎng)絡(luò)中的越來越小的網(wǎng)絡(luò)節(jié)點,為嵌人式web在工業(yè)中的應(yīng)用提供了機會。
1 系統(tǒng)的軟硬件平臺
1.1 EasyARM8962教學(xué)實驗平臺
EasyARM8962教學(xué)實驗平臺采用了LuminaryMicro公司生產(chǎn)的Stellaris系列微控制器LM3S8962處理器,具有JTAG調(diào)試等功能。該芯片內(nèi)部具有:UART,SSI,I2C,以及256 KB FLASH和64 KBSRAM。該處理器內(nèi)部集成了網(wǎng)絡(luò)控制器,具有強大的網(wǎng)絡(luò)功能。硬件系統(tǒng)結(jié)構(gòu)如圖1所示。
1.2 μC/OS-Ⅱ的移植與嵌入式TCP/IP協(xié)議棧
μC/OS-Ⅱ是近年來發(fā)展迅速的開放源碼實時操作系統(tǒng),具有可移植性好、可裁減、可固化的優(yōu)點。將μC/OS-Ⅱ引入嵌入式網(wǎng)絡(luò)系統(tǒng),既可以實現(xiàn)系統(tǒng)的實時性要求,又可以提高系統(tǒng)的可靠性。周立功公司提供的移植代碼為使用μC/OS-Ⅱ做好了鋪墊工作,與處理器類型有關(guān)的文件OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。本文采用最新版本的μC/OS-ⅡV2.52。
本設(shè)計采用周立功公司的ZLG/IP協(xié)議棧。ZLG/IP協(xié)議棧代碼量小,是面向嵌人式系統(tǒng)開發(fā)的基于μC/OS-Ⅱ的小型TCP/IP協(xié)議棧,它支持TCP,UCP,IP,ICMP,ARP。
基于ZLG/IP“用戶可配置和裁剪”的特點,為了進一步提高代碼的運行速度,根據(jù)實際項目應(yīng)用需要可對ZLG/IP協(xié)議棧進行裁剪。對ZLG/IP協(xié)議棧的配置是通過修改軟件棧下的cfg_net.h來實現(xiàn)的。在此文件里設(shè)置使用的MAC地址、子網(wǎng)掩碼、IP地址和本地網(wǎng)關(guān)。設(shè)置的子網(wǎng)掩碼應(yīng)與客戶機的相同、IP地址要設(shè)置成與客戶機同一網(wǎng)段內(nèi),網(wǎng)關(guān)地址可以設(shè)置為客戶機的IP地址。
2 USS協(xié)議及MM440變頻器的設(shè)置
要利用USS協(xié)議實現(xiàn)對西門子MM440變頻器的遠(yuǎn)程控制,必須對其進行相應(yīng)的設(shè)置。對本設(shè)計而言,具體設(shè)置如下:
P0700[0]=5(設(shè)定命令給定源為COM鏈路的USS報文命令);
P1000[0]=5(設(shè)置頻率給定源為COM鏈路的USS報文);
P2009[0]=0(USS標(biāo)稱化);
P2010[0]=6(設(shè)定USS、通信的波特率為9 600 b/s);
P2011[0]=0(設(shè)定變頻器的惟一地址,取值范圍為0~31,這里給定地址為0);
P2012[0]=2(定義USS報文的PZD部分中16位字的數(shù)量,即USS PZD長度);
P2013[0]=127(定義USS報文的PKW部分中16位字的數(shù)量,即USS PKW長度。127是最有用的設(shè)定,此設(shè)定下PKW應(yīng)答長度視所需的信息量而變);
P0971=1(在設(shè)定為1時,從RAM向E2PROM傳送參數(shù)值)。
3 HTTP協(xié)議和嵌入式Web服務(wù)器的實現(xiàn)
3.1 HTTP協(xié)議
HTTP協(xié)議是基于請求/響應(yīng)模式的。一個客戶機與服務(wù)器建立連接后,發(fā)送一個請求給服務(wù)器。服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息。在Internet上,HTTP通信通常發(fā)生在TCP/IP連接之上,缺省端口是TCP80。
Web瀏覽器利用HTTP協(xié)議和服務(wù)器進行通信。瀏覽器向服務(wù)器發(fā)送請求之后,服務(wù)器會將所請求的網(wǎng)頁發(fā)送到瀏覽器,服務(wù)器也可以根據(jù)HTTP請求所提交的信息運行相關(guān)程序。要從Web服務(wù)器獲得網(wǎng)頁,必須輸入Web服務(wù)器的IP地址,例如:
http://210.31.192.70
瀏覽器定位IP地址然后打開TCP連接的服務(wù)器端口80,之后利用HTTP協(xié)議發(fā)送由GET行組成的請求:GET/HTTP/1.0。GET方法是獲取Web文檔的一種HTTP方法。如果服務(wù)器響應(yīng)HTTP/1.0 200OK表示連接成功,然后Web網(wǎng)頁就可以發(fā)送。GET方法把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL(統(tǒng)一資源定位符)中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。GET請求的數(shù)據(jù)會附在URL之后,以“?”分割URL和傳輸數(shù)據(jù),參數(shù)之間以“&”相連。如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為“+”。慮到本系統(tǒng)提交的信息的特點,使用GET方法來設(shè)計Web服務(wù)器。
3.2 Web服務(wù)器的設(shè)計與實現(xiàn)
在μCO/S-II操作系統(tǒng)中,根據(jù)盡量減少任務(wù)數(shù)以提高CPU利用率的原則,本設(shè)計建立了四個任務(wù)。這四個任務(wù)是:taskstart(啟動任務(wù))、taskC(接收TCP信號量任務(wù))、taskE(TCP數(shù)據(jù)處理任務(wù))、taskF(接收和發(fā)送USS報文任務(wù))。四個任務(wù)之間的關(guān)系,各自的優(yōu)先級設(shè)置及任務(wù)間的通信機制如圖2所示。
Web服務(wù)器應(yīng)用任務(wù)完成TCP通信,在此任務(wù)中網(wǎng)頁信息以HTML格式存儲于一個全局變量的Web[]數(shù)組中,這些信息通過HTTP協(xié)議沿TCP連接發(fā)送到瀏覽器,以HTML文本格式定義的全局變量Web[]數(shù)組如下:
[!--empirenews.page--]
在主監(jiān)控網(wǎng)頁中,可以任意設(shè)置變頻器的工作頻率,也可以實時監(jiān)控其工作狀態(tài)。圖3就是本系統(tǒng)的Web監(jiān)控網(wǎng)頁。
在監(jiān)控網(wǎng)頁,放置的頻率設(shè)定按鈕。它的方法都被設(shè)置為“GET”。GET將表單中提交的數(shù)據(jù)添加到URL中。如果填寫頻率值“45”然后提交,Web服務(wù)器從瀏覽器接收到的URL如下:
GET/9? text1=45&B3=%CC%E1%BD%BBHTTP/1.1
在Web服務(wù)器中,建立一個接收數(shù)據(jù)緩沖區(qū)數(shù)組tempdata[400],用它來存儲從瀏覽器發(fā)來的數(shù)據(jù)。根據(jù)URL的格式,能從URL中獲得表單中提交的數(shù)據(jù)。它們被相關(guān)程序處理后會按照USS協(xié)議保存到數(shù)組SndData[12]中。參數(shù)P2009[0]=0對USS進行了標(biāo)稱化,頻率的計算就要按照規(guī)格化進行。這個數(shù)組通過串口發(fā)送到變頻器之后,就可以使變頻器按照要求頻率工作了。
服務(wù)器會把查詢到的MM440變頻器的當(dāng)前工作頻率發(fā)送到監(jiān)控頁面上。向變頻器發(fā)送查詢工作頻率的USS指令是{02 08 00 10 15 00 00 00 00 0F}。此指令查詢的是r0021的參數(shù)值,即變頻器工作的實際值。變頻器會返回一個相應(yīng)的報文,如:
{02 0E 00 20 15 00 00 42 48 00 00 FF B4 40 00 38}
這里包含了要查詢的工作頻率,服務(wù)器在收到這個報文之后,會調(diào)用相應(yīng)的程序?qū)ζ溥M行處理,最終將工作頻率以十進制形式顯示在網(wǎng)頁上。為了實時查看變頻器的工作頻率,實現(xiàn)監(jiān)視網(wǎng)頁的實時刷新,就要在網(wǎng)頁信息里加入網(wǎng)頁更新語句:
實現(xiàn)動態(tài)網(wǎng)頁。網(wǎng)頁刷新速率為10 s/次,但由于數(shù)據(jù)處理速度的原因,刷新有一定的時延。
4 結(jié) 語
本文介紹的μC/OS-Ⅱ內(nèi)核裁剪、TCP協(xié)議應(yīng)用編程方法以及Web服務(wù)器的設(shè)計思想等內(nèi)容具有廣泛的應(yīng)用性。USS協(xié)議變頻器的Web監(jiān)控設(shè)計已經(jīng)調(diào)試通過,實現(xiàn)了遠(yuǎn)程監(jiān)控,初步達到了設(shè)計要求?,F(xiàn)在,隨著嵌入式網(wǎng)絡(luò)應(yīng)用的發(fā)展,USS協(xié)議變頻器的Web控制方法有著廣闊的應(yīng)用前景。