《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于TCP/IP协议的全自动电饭煲远程控制系统设计
基于TCP/IP协议的全自动电饭煲远程控制系统设计
来源:电子技术应用2011年第6期
康志亮, 李开国, 许丽佳
(四川农业大学 信息与工程技术学院,四川 雅安 625014)
摘要: 提出了一种全自动电饭煲远程控制系统的设计方案。采用精简的TCP/IP协议实现STC89C58RD+单片机与因特网络通信,STC89C58RD+单片机通过红外通信的方法控制全自动电饭煲。网站接受用户请求,网络程序处理与电饭煲微控制器之间的通信,微控制器实现对电饭煲的全自动控制。另外,在电饭煲原有的基础上,设计了储米、取米、淘米、放米、加水等机械装置,以实现电饭煲机电一体化。系统测试结果显示,该系统操作方便,成本低,稳定性高且扩展性好。
中图分类号: TP273
文献标识码: 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


    近年来,随着控制技术、计算机技术和宽带网络技术的快速发展,测控技术和通信领域的结合应用已经成为大势所趋。传统的控制系统都是专用网络,控制设备及软件也是专用的,开放程度不够,给系统维护及升级带来不便[1]。在因特网遍布全球,各种先进网络技术日新月异的今天,使用网络技术实现远程控制自然成为首选。
 本文以全自动电饭煲为例,设计一种基于TCP/IP协议的全自动电饭煲远程控制系统,该系统分为三个部分:一是利用网卡芯片实现网络通信接口与因特网服务器之间的通信;二是红外通信电路的设计,实现网卡芯片与电饭煲微控制器的通信;三是电饭煲的改造,利用微控制器实现电饭煲机电一体化。该系统的实现,为家用电器全面接入因特网进行远程控制奠定了基础。
1设计方案
 本文设计的全自动电饭煲远程控制系统参照物联网模型将系统分为三层:感知层、网络层和应用层[2],每层执行特定的任务。该系统的整体结构如图1所示。应用层包含网站应用程序和网络应用程序,其功能是用户利用计算机或手机通过因特网远程控制电饭煲或扩展的其他电器[3]。其中,网站应用程序主要实现人机接口,是用户进行账户管理和电饭煲控制的综合系统。网络应用程序使用线程池处理来自网络层通信芯片的TCP/IP数据包,同时将用户请求通过TCP协议发送给网络层的网卡芯片ENC28J60。这种分层结构将大量用户的控制请求转由服务器CPU进行处理,从而大大降低了网络层MCU的负荷。网络层处理来自应用层的TCP/IP数据包和来自感知层的红外数据包。该层以单片机STC89C58RD+为核心处理芯片,构建TCP/IP协议栈,并用网卡芯片ENC28J60收发来自应用层的TCP/IP数据包,最后将此数据进行调制解调。感知层的功能是对电饭煲进行状态监控,并将其实时监控数据传送到网络层。具体地说,该层是以AT89S52单片机作为微控制器,用红外一体化接收头接收网络层的红外载波信号,并对该信号解调以控制电饭煲,同时将电饭煲的状态信息调制后通过红外一体化的发送头传送给网络层;感知层还可以连接多个扩展电器,从而实现多用户控制多电器的方案。

2 硬件设计
  全自动电饭煲远程控制系统的核心是网络层接口电路和电饭煲机械系统的设计。网卡芯片与现场控制单片机AT89S52的数据通信利用红外传输,采用NEC编码方式[4],接收端通过一体化红外接收头HS0038,对信号进行放大、检波、整形和解调等,得到TTL电平的编码信号。HS0038将此编码信号传送至AT89S52的P3.2(INT0)引脚,经AT89S52解码后依据指令执行相关的控制程序。全自动电饭煲系统包括控制系统和机械系统[5]。以AT89S52单片机为核心构建全自动电饭煲的控制系统。用户通过网站用户程序输入控制命令,通过网络传输到现场,现场控制单片机AT89S52接收到这些指令后,判断指令的具体需求,再调用相关程序以控制机械装置及电饭煲执行相应动作。
2.1 接口电路设计
 网络层选用增强型的STC89C58RD+单片机作为微控芯片。STC89C58RD+内部仅有1.28 KB的存储空间,不能满足处理TCP/IP数据包所需的10 KB左右的存储空间。因此使用数据存储器62256将其外部存储器外扩至32 KB,这样也有利于提高数据的接收与发送速度。
     在网络层中,红外信号的接收、发送与感知层的设计类似,其不同点在于采用STC89C58RD+的INT1引脚的中断方式处理来自外部的红外信号,见图2。网卡芯片ENC28J60是由Microchip推出的以太网控制器,使用串行外设接口(SPI)的引脚(SO、SI、SCK、CS)和两个中断引脚(INT和WOL)与主控制器进行通信,最高速度可达到10 Mb/s。该芯片内部有一个DMA模块,可以实现数据的快速吞吐和硬件支持IP校验和的计算。该芯片的两个引脚LEDA、LEAB用于连接LED,用于显示连接、发送、接收、冲突和全/半双工等状态。STC89C58RD+内部不带SPI接口,使用4个I/O引脚模拟SPI输入输出时序与ENC28J60进行通信。ENC28J60的SPI有7条指令集用以实现读控制寄存器、写控制寄存器、读缓冲器、写缓冲器、位域置1、位域清零和软件复位。ENC28J60中有控制寄存器、以太网缓冲器和PHY寄存器。SPI接口是STC89C58RD+与ENC28J60的通信通道,由总线接口对其接收的数据和命令进行解析,可以直接对控制寄存器进行读写,并对ENC28J60进行配置、控制和状态获取。以太网缓冲器包含供以太网控制器使用的发送和接收存储器,该缓冲器大小为 8 KB,分成独立的接收和发送缓冲空间。PHY寄存器用于对 PHY模块进行配置、控制和状态获取。ENC28J60需要通过MCU的中断处理来控制事件中断INT和LAN,触发中断时会占用STC89C58RD+的外部中断口INT0。ENC28J60的差分输入、输出引脚(TPIN+/-和TPOUT+/-)在以太网变压器作用下经RJ45接口与因特网通信,以实现网络层以太网控制器与应用层服务器物理线路的联通。

2.2 电饭煲机械系统设计
 为了实现电饭煲机电一体化,在传统电饭煲的基础上,增加设计了电饭煲机械系统,包括储米装置、取米装置、淘米装置、放米装置以及加水装置。机械系统总体设计如图3所示。储米装置为框架顶端的储米漏斗,直径30 cm,高10 cm,可一次性存放7.5 kg大米。取米装置由储米漏斗底端的电磁铁实现,电磁铁选用直流电磁铁HCNE1-1039,由于卡槽采用45°倾斜设计,大大减小了电磁铁启闭时米粒的摩擦阻力。淘米装置由搅拌电机和淘米漏斗构成。其中搅拌电机选用TN-40.180/HC685G100618。放米装置由电磁铁和旋转臂构成,电磁铁同样选用HCNE1-1039。旋转臂由两个可逆电机控制,可以升降和旋转,采用行程开关限位,实现电饭煲锅盖的开闭。加水装置由电磁阀和进水管构成,电磁阀选用2W160-15。

3 软件设计
 系统软件设计包括应用层的网站程序和网络程序、网络层的TCP/IP数据包收发程序和红外通信程序,以及感知层的红外收发程序和全自动电饭煲控制程序。在应用层,系统采用MVC模式[6]进行软件设计。控制器的Servlet程序分为两部分:一部分与网站程序一起处理来自浏览器的业务逻辑,包括用户注册、登录和控制电器等操作;另外一部分构建一个独立的线程池,以便监听到指定端口,等待来自网络层中各个设备的TCP连接,完成与网络层的会话。在感知层,考虑到红外通信的不稳定性, 服务器和微控制器之间的通信数据采用自定义的特殊格式,以避免因数据丢失或冗余而造成的系统错误[7]。因此在对电饭煲进行控制时,采用自定义协议对电饭煲信息进行封包解包。此协议的设计包括两方面:电饭煲数据包和通信会话流程。全自动电饭煲控制程序按照取米、淘米、放米、加水、煮饭的流程进行,实现电饭煲工作全自动化。
    本文重点阐述网络层的软件设计。如图4所示,微控制器首先进行系统初始化,包括ARP、TCP、内存、定时器和网卡芯片初始化。初始化完成后,设置网卡芯片ENC28J60的IP地址、子网掩码、默认网关和本地监听的端口。接着开启中断,以便主动连接服务器,其中外部中断0处理来自ENC28J60的请求,以便收发来自因特网的数据包;外部中断1则处理来自HS0038的请求以便接收来自感知层的红外信号,若中断没有发生则进入节电模式。

    微控制器与服务器之间的通信需要在单片机内部实现TCP/IP协议,当8位MCU接入以太网时,由于系统资源的有限性很难实现完整的TCP/IP协议。网络层微控制器的功能主要包括传输现场数据和接收远程控制命令,数据量较少且格式简单,故对TCP/IP协议进行裁减。精简协议栈时只保留链路层的地址解析协议、网络层的IP协议、差错报文控制协议和传输层的TCP协议,且对需要实现的协议只实现必需的算法部分。TCP/IP协议采用了4层结构:应用层、传输层、网络层和链路层。图5描述了输入输出数据包流程和精简的TCP/IP协议[8]。


4 系统测试
 全自动电饭煲远程控制系统硬件和软件设计完成后,需要对系统进行测试,以验证本设计方案的有效性 [9]。网络层ENC28J60芯片的RJ45接口通过网线与路由器连接。网卡设置IP为192.168.1.101,子网掩码为255.255.255.0,网关为192.168.1.1,本地端口1001。计算机使用网线与路由器连接,设置为自动获取IP,保证网络层设备IP与计算机IP处于同一网段。路由器WAN端口连接类型设置为动态IP,LAN端口IP设置为192.168.1.1。目的服务器设置B类IP为202.115.176.195,操作系统为Windows Server 2003服务器。微控制器STC89C58RD+在使用12 MHz晶振时,用Sniffer抓包软件测得其与服务器最高通信速度可达25 KB/s。使用ping命令,向192.168.1.101发送500个包,无丢包现象。这500个数据包中,返回速度最快为41 ms,最慢为93 ms,平均速度为53 ms,完全能满足电饭煲远程控制的实时性要求。
 感知层的被控对象为经过改造的全自动电饭煲。通过网站选择控制电器为全自动电饭煲,并设置米量和水量,发送启动指令。感知层的单片机AT89S52收到控制指令后,完成取米、淘米、放米、加水及煮饭的全部流程,并把控制流程中每一个运行状态反馈给应用层的计算机。本文设计的电饭煲远程控制系统对米量和水量的计量是通过单片机对电磁铁和电磁阀定时控制实现的,因此,米量和水量的计量是否准确,是控制系统测试的重点。测试时设置米量400~1 000 g,间隔100 g,水量设定为米量的2倍,即米量为400 g时,水量为800 ml,依次类推。米量和水量各测试3次,测试值和设定值如表1所示。从表1可以看出,米量、水量的设定值与测试值比较接近,说明利用定时控制进行计量是准确的。通过对电饭煲远程控制系统的多次实验,系统均能按要求完成所有动作,而且米量、水量的计量也是准确的,说明该系统远程通信良好,电饭煲工作稳定,计量准确。
    从实验结果来看,本文设计的全自动电饭煲远程控制系统的方案是可行的。在该方案中,通过强化MCU的控制功能来弱化构建Web服务器的应用,将复杂业务逻辑转移到因特网的服务器上,这样就发挥了因特网服务器多线程处理能力,支持多用户对多个家电的实时控制。红外通信使系统在室内控制方便且易于扩展,从而使全部家用电器接入因特网络成为可能。在传统电饭煲的基础上,增加设计了机械系统,实现了电饭煲机电一体化。米量和水量的计量采用单片机定时控制替代了复杂的流量控制装置,使得操作更加简单,提高了系统的稳定性,同时也使得系统成本更低。


    通过本系统,用户使用计算机或手机就可以远程控制全自动电饭煲,而且通过网站程序还能实时掌握电饭煲的运行状态。本文设计的远程控制系统还具有很强的扩展性。网络层单片机通过红外通信的方式可以扩展控制多个其他家用电器,如冰箱、洗衣机、空调、热水器等。当然每一个电器必须配置一个能收发红外信号和控制电器的微控制器。随着物联网技术的发展及手机的普及,家用电器接入因特网成为一种必然趋势。本文提出的多用户远程控制多个家电的方案,成本低,运行稳定,扩展性强,必将在智能家居中得到大量的应用。同样,该系统也可广泛应用于工业、农业的远程控制,如机器人、智能温室等。由于因特网技术的介入,远程控制技术将得到进一步发展,这势必对人类生活及工业、农业控制产生巨大影响。随着网络技术发展和物联网标准的制定,远程控制系统必将具有广阔的应用前景。
参考文献
[1] 韦文斌,潘耀东,古田胜久.基于因特网技术的远程机器人控制器设计[J]. 控制工程, 2006,13(2):168-171.
[2] 陈锐. 物联网——后IP时代国家创新发展的重大战略机遇[J].中国科学院院刊, 2010,25(1): 41-49.
[3] 黄文浪. 基于因特网的远程控制系统设计[J]. 科技广场,2010(5):53-55.
[4] 高恭娴. 低成本学习型红外遥控器的设计[J]. 低压电器, 2009(22):24-26.
[5] 黄美春,汪熊海. 基于网络的家电智能控制系统的设计与实现[J]. 电气自动化,2008,30(3):55-56.
[6] 刘中兵, 陈艳燕, 程琳梅. Web2.0动态网站开发—JSP技术与应用[M]. 北京:清华大学出版社,2009.
[7] STEVENS W. TCP/IP详解卷1:协议[M].北京:机械工业出版社,2000.
[8] 王芳,周优霞. 嵌入式TCP/IP协议栈在单片机上的实现[J]. 现代电子技术,2010(10):198-201.
[9] 叶爱华,赵明镜,方芳. 基于Lon Works技术的远程工业控制[J]. 控制工程,2006(13):145-148.

此内容为AET网站原创,未经授权禁止转载。