《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TCP/IP協(xié)議的全自動電飯煲遠(yuǎn)程控制系統(tǒng)設(shè)計
基于TCP/IP協(xié)議的全自動電飯煲遠(yuǎn)程控制系統(tǒng)設(shè)計
來源:電子技術(shù)應(yīng)用2011年第6期
康志亮, 李開國, 許麗佳
(四川農(nóng)業(yè)大學(xué) 信息與工程技術(shù)學(xué)院,四川 雅安 625014)
摘要: 提出了一種全自動電飯煲遠(yuǎn)程控制系統(tǒng)的設(shè)計方案。采用精簡的TCP/IP協(xié)議實現(xiàn)STC89C58RD+單片機(jī)與因特網(wǎng)絡(luò)通信,STC89C58RD+單片機(jī)通過紅外通信的方法控制全自動電飯煲。網(wǎng)站接受用戶請求,網(wǎng)絡(luò)程序處理與電飯煲微控制器之間的通信,微控制器實現(xiàn)對電飯煲的全自動控制。另外,在電飯煲原有的基礎(chǔ)上,設(shè)計了儲米、取米、淘米、放米、加水等機(jī)械裝置,以實現(xiàn)電飯煲機(jī)電一體化。系統(tǒng)測試結(jié)果顯示,該系統(tǒng)操作方便,成本低,穩(wěn)定性高且擴(kuò)展性好。
中圖分類號: TP273
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-099-04
The design of remote control system for fully automatic rice cooker based on TCP/IP protocol
Kang Zhiliang, Li Kaiguo, Xu Lijia
School of Information & Engineering Technology, Sichuan Agricultural University, Ya′an 625014, China
Abstract: The paper designed a remote control system for fully automatic rice cooker. In this system a simplified TCP/IP protocol is applied to communicate internet network with STC89C58RD+, and then the rice cooker is controlled by infrared communication method. The Website can accept request from user, and then the network programs can process the communication between internet network and the microcontroller which controls the fully automatic rice cooker. Additionally, some mechanical installations for storing rice, taking rice, washing rice, placing rice and adding water, are designed to achieve mechanical-electrical integration. The proposed system is tested, and the experiment results show that the system has some advantages such as simple operation, low cost, high stability and good expansibility.
Key words : remote control;fully automatic rice cooker;TCP/IP protocol;mechanical-electrical integration


    近年來,隨著控制技術(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。