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