關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于TCP/IP協(xié)議的全自動電飯煲遠(yuǎn)程控制系統(tǒng)設(shè)計

基于TCP/IP協(xié)議的全自動電飯煲遠(yuǎn)程控制系統(tǒng)設(shè)計

作者: 時間:2016-12-22 來源:網(wǎng)絡(luò) 收藏

近年來,隨著控制技術(shù)、計算機(jī)技術(shù)和寬帶網(wǎng)絡(luò)技術(shù)的快速發(fā)展,測控技術(shù)和通信領(lǐng)域的結(jié)合應(yīng)用已經(jīng)成為大勢所趨。傳統(tǒng)的控制系統(tǒng)都是專用網(wǎng)絡(luò),控制設(shè)備及軟件也是專用的,開放程度不夠,給系統(tǒng)維護(hù)及升級帶來不便[1]。在因特網(wǎng)遍布全球,各種先進(jìn)網(wǎng)絡(luò)技術(shù)日新月異的今天,使用網(wǎng)絡(luò)技術(shù)實現(xiàn)遠(yuǎn)程控制自然成為首選。
 本文以全自動電飯煲為例,設(shè)計一種基于TCP/IP協(xié)議的全自動電飯煲遠(yuǎn)程控制系統(tǒng),該系統(tǒng)分為三個部分:一是利用網(wǎng)卡芯片實現(xiàn)網(wǎng)絡(luò)通信接口與因特網(wǎng)服務(wù)器之間的通信;二是紅外通信電路的設(shè)計,實現(xiàn)網(wǎng)卡芯片與電飯煲微控制器的通信;三是電飯煲的改造,利用微控制器實現(xiàn)電飯煲機(jī)電一體化。該系統(tǒng)的實現(xiàn),為家用電器全面接入因特網(wǎng)進(jìn)行遠(yuǎn)程控制奠定了基礎(chǔ)。
1設(shè)計方案
 本文設(shè)計的全自動電飯煲遠(yuǎn)程控制系統(tǒng)參照物聯(lián)網(wǎng)模型將系統(tǒng)分為三層:感知層、網(wǎng)絡(luò)層和應(yīng)用層[2],每層執(zhí)行特定的任務(wù)。該系統(tǒng)的整體結(jié)構(gòu)如圖1所示。應(yīng)用層包含網(wǎng)站應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,其功能是用戶利用計算機(jī)或手機(jī)通過因特網(wǎng)遠(yuǎn)程控制電飯煲或擴(kuò)展的其他電器[3]。其中,網(wǎng)站應(yīng)用程序主要實現(xiàn)人機(jī)接口,是用戶進(jìn)行賬戶管理和電飯煲控制的綜合系統(tǒng)。網(wǎng)絡(luò)應(yīng)用程序使用線程池處理來自網(wǎng)絡(luò)層通信芯片的TCP/IP數(shù)據(jù)包,同時將用戶請求通過TCP協(xié)議發(fā)送給網(wǎng)絡(luò)層的網(wǎng)卡芯片ENC28J60。這種分層結(jié)構(gòu)將大量用戶的控制請求轉(zhuǎn)由服務(wù)器CPU進(jìn)行處理,從而大大降低了網(wǎng)絡(luò)層MCU的負(fù)荷。網(wǎng)絡(luò)層處理來自應(yīng)用層的TCP/IP數(shù)據(jù)包和來自感知層的紅外數(shù)據(jù)包。該層以單片機(jī)STC89C58RD+為核心處理芯片,構(gòu)建TCP/IP協(xié)議棧,并用網(wǎng)卡芯片ENC28J60收發(fā)來自應(yīng)用層的TCP/IP數(shù)據(jù)包,最后將此數(shù)據(jù)進(jìn)行調(diào)制解調(diào)。感知層的功能是對電飯煲進(jìn)行狀態(tài)監(jiān)控,并將其實時監(jiān)控數(shù)據(jù)傳送到網(wǎng)絡(luò)層。具體地說,該層是以AT89S52單片機(jī)作為微控制器,用紅外一體化接收頭接收網(wǎng)絡(luò)層的紅外載波信號,并對該信號解調(diào)以控制電飯煲,同時將電飯煲的狀態(tài)信息調(diào)制后通過紅外一體化的發(fā)送頭傳送給網(wǎng)絡(luò)層;感知層還可以連接多個擴(kuò)展電器,從而實現(xiàn)多用戶控制多電器的方案。

2 硬件設(shè)計
  全自動電飯煲遠(yuǎn)程控制系統(tǒng)的核心是網(wǎng)絡(luò)層接口電路和電飯煲機(jī)械系統(tǒng)的設(shè)計。網(wǎng)卡芯片與現(xiàn)場控制單片機(jī)AT89S52的數(shù)據(jù)通信利用紅外傳輸,采用NEC編碼方式[4],接收端通過一體化紅外接收頭HS0038,對信號進(jìn)行放大、檢波、整形和解調(diào)等,得到TTL電平的編碼信號。HS0038將此編碼信號傳送至AT89S52的P3.2(INT0)引腳,經(jīng)AT89S52解碼后依據(jù)指令執(zhí)行相關(guān)的控制程序。全自動電飯煲系統(tǒng)包括控制系統(tǒng)和機(jī)械系統(tǒng)[5]。以AT89S52單片機(jī)為核心構(gòu)建全自動電飯煲的控制系統(tǒng)。用戶通過網(wǎng)站用戶程序輸入控制命令,通過網(wǎng)絡(luò)傳輸?shù)浆F(xiàn)場,現(xiàn)場控制單片機(jī)AT89S52接收到這些指令后,判斷指令的具體需求,再調(diào)用相關(guān)程序以控制機(jī)械裝置及電飯煲執(zhí)行相應(yīng)動作。
2.1 接口電路設(shè)計
 網(wǎng)絡(luò)層選用增強(qiáng)型的STC89C58RD+單片機(jī)作為微控芯片。STC89C58RD+內(nèi)部僅有1.28 KB的存儲空間,不能滿足處理TCP/IP數(shù)據(jù)包所需的10 KB左右的存儲空間。因此使用數(shù)據(jù)存儲器62256將其外部存儲器外擴(kuò)至32 KB,這樣也有利于提高數(shù)據(jù)的接收與發(fā)送速度。
  在網(wǎng)絡(luò)層中,紅外信號的接收、發(fā)送與感知層的設(shè)計類似,其不同點(diǎn)在于采用STC89C58RD+的INT1引腳的中斷方式處理來自外部的紅外信號,見圖2。網(wǎng)卡芯片ENC28J60是由Microchip推出的以太網(wǎng)控制器,使用串行外設(shè)接口(SPI)的引腳(SO、SI、SCK、CS)和兩個中斷引腳(INT和WOL)與主控制器進(jìn)行通信,最高速度可達(dá)到10 Mb/s。該芯片內(nèi)部有一個DMA模塊,可以實現(xiàn)數(shù)據(jù)的快速吞吐和硬件支持IP校驗和的計算。該芯片的兩個引腳LEDA、LEAB用于連接LED,用于顯示連接、發(fā)送、接收、沖突和全/半雙工等狀態(tài)。STC89C58RD+內(nèi)部不帶SPI接口,使用4個I/O引腳模擬SPI輸入輸出時序與ENC28J60進(jìn)行通信。ENC28J60的SPI有7條指令集用以實現(xiàn)讀控制寄存器、寫控制寄存器、讀緩沖器、寫緩沖器、位域置1、位域清零和軟件復(fù)位。ENC28J60中有控制寄存器、以太網(wǎng)緩沖器和PHY寄存器。SPI接口是STC89C58RD+與ENC28J60的通信通道,由總線接口對其接收的數(shù)據(jù)和命令進(jìn)行解析,可以直接對控制寄存器進(jìn)行讀寫,并對ENC28J60進(jìn)行配置、控制和狀態(tài)獲取。以太網(wǎng)緩沖器包含供以太網(wǎng)控制器使用的發(fā)送和接收存儲器,該緩沖器大小為 8 KB,分成獨(dú)立的接收和發(fā)送緩沖空間。PHY寄存器用于對 PHY模塊進(jìn)行配置、控制和狀態(tài)獲取。ENC28J60需要通過MCU的中斷處理來控制事件中斷INT和LAN,觸發(fā)中斷時會占用STC89C58RD+的外部中斷口INT0。ENC28J60的差分輸入、輸出引腳(TPIN+/-和TPOUT+/-)在以太網(wǎng)變壓器作用下經(jīng)RJ45接口與因特網(wǎng)通信,以實現(xiàn)網(wǎng)絡(luò)層以太網(wǎng)控制器與應(yīng)用層服務(wù)器物理線路的聯(lián)通。

2.2 電飯煲機(jī)械系統(tǒng)設(shè)計
 為了實現(xiàn)電飯煲機(jī)電一體化,在傳統(tǒng)電飯煲的基礎(chǔ)上,增加設(shè)計了電飯煲機(jī)械系統(tǒng),包括儲米裝置、取米裝置、淘米裝置、放米裝置以及加水裝置。機(jī)械系統(tǒng)總體設(shè)計如圖3所示。儲米裝置為框架頂端的儲米漏斗,直徑30 cm,高10 cm,可一次性存放7.5 kg大米。取米裝置由儲米漏斗底端的電磁鐵實現(xiàn),電磁鐵選用直流電磁鐵HCNE1-1039,由于卡槽采用45°傾斜設(shè)計,大大減小了電磁鐵啟閉時米粒的摩擦阻力。淘米裝置由攪拌電機(jī)和淘米漏斗構(gòu)成。其中攪拌電機(jī)選用TN-40.180/HC685G100618。放米裝置由電磁鐵和旋轉(zhuǎn)臂構(gòu)成,電磁鐵同樣選用HCNE1-1039。旋轉(zhuǎn)臂由兩個可逆電機(jī)控制,可以升降和旋轉(zhuǎn),采用行程開關(guān)限位,實現(xiàn)電飯煲鍋蓋的開閉。加水裝置由電磁閥和進(jìn)水管構(gòu)成,電磁閥選用2W160-15。

3 軟件設(shè)計
 系統(tǒng)軟件設(shè)計包括應(yīng)用層的網(wǎng)站程序和網(wǎng)絡(luò)程序、網(wǎng)絡(luò)層的TCP/IP數(shù)據(jù)包收發(fā)程序和紅外通信程序,以及感知層的紅外收發(fā)程序和全自動電飯煲控制程序。在應(yīng)用層,系統(tǒng)采用MVC模式[6]進(jìn)行軟件設(shè)計??刂破鞯腟ervlet程序分為兩部分:一部分與網(wǎng)站程序一起處理來自瀏覽器的業(yè)務(wù)邏輯,包括用戶注冊、登錄和控制電器等操作;另外一部分構(gòu)建一個獨(dú)立的線程池,以便監(jiān)聽到指定端口,等待來自網(wǎng)絡(luò)層中各個設(shè)備的TCP連接,完成與網(wǎng)絡(luò)層的會話。在感知層,考慮到紅外通信的不穩(wěn)定性, 服務(wù)器和微控制器之間的通信數(shù)據(jù)采用自定義的特殊格式,以避免因數(shù)據(jù)丟失或冗余而造成的系統(tǒng)錯誤[7]。因此在對電飯煲進(jìn)行控制時,采用自定義協(xié)議對電飯煲信息進(jìn)行封包解包。此協(xié)議的設(shè)計包括兩方面:電飯煲數(shù)據(jù)包和通信會話流程。全自動電飯煲控制程序按照取米、淘米、放米、加水、煮飯的流程進(jìn)行,實現(xiàn)電飯煲工作全自動化。
本文重點(diǎn)闡述網(wǎng)絡(luò)層的軟件設(shè)計。如圖4所示,微控制器首先進(jìn)行系統(tǒng)初始化,包括ARP、TCP、內(nèi)存、定時器和網(wǎng)卡芯片初始化。初始化完成后,設(shè)置網(wǎng)卡芯片ENC28J60的IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)和本地監(jiān)聽的端口。接著開啟中斷,以便主動連接服務(wù)器,其中外部中斷0處理來自ENC28J60的請求,以便收發(fā)來自因特網(wǎng)的數(shù)據(jù)包;外部中斷1則處理來自HS0038的請求以便接收來自感知層的紅外信號,若中斷沒有發(fā)生則進(jìn)入節(jié)電模式。

微控制器與服務(wù)器之間的通信需要在單片機(jī)內(nèi)部實現(xiàn)TCP/IP協(xié)議,當(dāng)8位MCU接入以太網(wǎng)時,由于系統(tǒng)資源的有限性很難實現(xiàn)完整的TCP/IP協(xié)議。網(wǎng)絡(luò)層微控制器的功能主要包括傳輸現(xiàn)場數(shù)據(jù)和接收遠(yuǎn)程控制命令,數(shù)據(jù)量較少且格式簡單,故對TCP/IP協(xié)議進(jìn)行裁減。精簡協(xié)議棧時只保留鏈路層的地址解析協(xié)議、網(wǎng)絡(luò)層的IP協(xié)議、差錯報文控制協(xié)議和傳輸層的TCP協(xié)議,且對需要實現(xiàn)的協(xié)議只實現(xiàn)必需的算法部分。TCP/IP協(xié)議采用了4層結(jié)構(gòu):應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和鏈路層。圖5描述了輸入輸出數(shù)據(jù)包流程和精簡的TCP/IP協(xié)議[8]。


4 系統(tǒng)測試
 全自動電飯煲遠(yuǎn)程控制系統(tǒng)硬件和軟件設(shè)計完成后,需要對系統(tǒng)進(jìn)行測試,以驗證本設(shè)計方案的有效性 [9]。網(wǎng)絡(luò)層ENC28J60芯片的RJ45接口通過網(wǎng)線與路由器連接。網(wǎng)卡設(shè)置IP為192.168.1.101,子網(wǎng)掩碼為255.255.255.0,網(wǎng)關(guān)為192.168.1.1,本地端口1001。計算機(jī)使用網(wǎng)線與路由器連接,設(shè)置為自動獲取IP,保證網(wǎng)絡(luò)層設(shè)備IP與計算機(jī)IP處于同一網(wǎng)段。路由器WAN端口連接類型設(shè)置為動態(tài)IP,LAN端口IP設(shè)置為192.168.1.1。目的服務(wù)器設(shè)置B類IP為202.115.176.195,操作系統(tǒng)為Windows Server 2003服務(wù)器。微控制器STC89C58RD+在使用12 MHz晶振時,用Sniffer抓包軟件測得其與服務(wù)器最高通信速度可達(dá)25 KB/s。使用ping命令,向192.168.1.101發(fā)送500個包,無丟包現(xiàn)象。這500個數(shù)據(jù)包中,返回速度最快為41 ms,最慢為93 ms,平均速度為53 ms,完全能滿足電飯煲遠(yuǎn)程控制的實時性要求。
 感知層的被控對象為經(jīng)過改造的全自動電飯煲。通過網(wǎng)站選擇控制電器為全自動電飯煲,并設(shè)置米量和水量,發(fā)送啟動指令。感知層的單片機(jī)AT89S52收到控制指令后,完成取米、淘米、放米、加水及煮飯的全部流程,并把控制流程中每一個運(yùn)行狀態(tài)反饋給應(yīng)用層的計算機(jī)。本文設(shè)計的電飯煲遠(yuǎn)程控制系統(tǒng)對米量和水量的計量是通過單片機(jī)對電磁鐵和電磁閥定時控制實現(xiàn)的,因此,米量和水量的計量是否準(zhǔn)確,是控制系統(tǒng)測試的重點(diǎn)。測試時設(shè)置米量400~1 000 g,間隔100 g,水量設(shè)定為米量的2倍,即米量為400 g時,水量為800 ml,依次類推。米量和水量各測試3次,測試值和設(shè)定值如表1所示。從表1可以看出,米量、水量的設(shè)定值與測試值比較接近,說明利用定時控制進(jìn)行計量是準(zhǔn)確的。通過對電飯煲遠(yuǎn)程控制系統(tǒng)的多次實驗,系統(tǒng)均能按要求完成所有動作,而且米量、水量的計量也是準(zhǔn)確的,說明該系統(tǒng)遠(yuǎn)程通信良好,電飯煲工作穩(wěn)定,計量準(zhǔn)確。
從實驗結(jié)果來看,本文設(shè)計的全自動電飯煲遠(yuǎn)程控制系統(tǒng)的方案是可行的。在該方案中,通過強(qiáng)化MCU的控制功能來弱化構(gòu)建Web服務(wù)器的應(yīng)用,將復(fù)雜業(yè)務(wù)邏輯轉(zhuǎn)移到因特網(wǎng)的服務(wù)器上,這樣就發(fā)揮了因特網(wǎng)服務(wù)器多線程處理能力,支持多用戶對多個家電的實時控制。紅外通信使系統(tǒng)在室內(nèi)控制方便且易于擴(kuò)展,從而使全部家用電器接入因特網(wǎng)絡(luò)成為可能。在傳統(tǒng)電飯煲的基礎(chǔ)上,增加設(shè)計了機(jī)械系統(tǒng),實現(xiàn)了電飯煲機(jī)電一體化。米量和水量的計量采用單片機(jī)定時控制替代了復(fù)雜的流量控制裝置,使得操作更加簡單,提高了系統(tǒng)的穩(wěn)定性,同時也使得系統(tǒng)成本更低。


通過本系統(tǒng),用戶使用計算機(jī)或手機(jī)就可以遠(yuǎn)程控制全自動電飯煲,而且通過網(wǎng)站程序還能實時掌握電飯煲的運(yùn)行狀態(tài)。本文設(shè)計的遠(yuǎn)程控制系統(tǒng)還具有很強(qiáng)的擴(kuò)展性。網(wǎng)絡(luò)層單片機(jī)通過紅外通信的方式可以擴(kuò)展控制多個其他家用電器,如冰箱、洗衣機(jī)、空調(diào)、熱水器等。當(dāng)然每一個電器必須配置一個能收發(fā)紅外信號和控制電器的微控制器。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展及手機(jī)的普及,家用電器接入因特網(wǎng)成為一種必然趨勢。本文提出的多用戶遠(yuǎn)程控制多個家電的方案,成本低,運(yùn)行穩(wěn)定,擴(kuò)展性強(qiáng),必將在智能家居中得到大量的應(yīng)用。同樣,該系統(tǒng)也可廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)的遠(yuǎn)程控制,如機(jī)器人、智能溫室等。由于因特網(wǎng)技術(shù)的介入,遠(yuǎn)程控制技術(shù)將得到進(jìn)一步發(fā)展,這勢必對人類生活及工業(yè)、農(nóng)業(yè)控制產(chǎn)生巨大影響。隨著網(wǎng)絡(luò)技術(shù)發(fā)展和物聯(lián)網(wǎng)標(biāo)準(zhǔn)的制定,遠(yuǎn)程控制系統(tǒng)必將具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1] 韋文斌,潘耀東,古田勝久.基于因特網(wǎng)技術(shù)的遠(yuǎn)程機(jī)器人控制器設(shè)計[J]. 控制工程, 2006,13(2):168-171.
[2] 陳銳. 物聯(lián)網(wǎng)——后IP時代國家創(chuàng)新發(fā)展的重大戰(zhàn)略機(jī)遇[J].中國科學(xué)院院刊, 2010,25(1): 41-49.
[3] 黃文浪. 基于因特網(wǎng)的遠(yuǎn)程控制系統(tǒng)設(shè)計[J]. 科技廣場,2010(5):53-55.
[4] 高恭嫻. 低成本學(xué)習(xí)型紅外遙控器的設(shè)計[J]. 低壓電器, 2009(22):24-26.
[5] 黃美春,汪熊海. 基于網(wǎng)絡(luò)的家電智能控制系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電氣自動化,2008,30(3):55-56.
[6] 劉中兵, 陳艷燕, 程琳梅. Web2.0動態(tài)網(wǎng)站開發(fā)—JSP技術(shù)與應(yīng)用[M]. 北京:清華大學(xué)出版社,2009.
[7] STEVENS W. TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2000.
[8] 王芳,周優(yōu)霞. 嵌入式TCP/IP協(xié)議棧在單片機(jī)上的實現(xiàn)[J]. 現(xiàn)代電子技術(shù),2010(10):198-201.
[9] 葉愛華,趙明鏡,方芳. 基于Lon Works技術(shù)的遠(yuǎn)程工業(yè)控制[J]. 控制工程,2006(13):145-148.



關(guān)鍵詞: TCPIP協(xié)

評論


技術(shù)專區(qū)

關(guān)閉