《基于TCP-IP协议的家电远程控制系统设计(共9页).doc》由会员分享,可在线阅读,更多相关《基于TCP-IP协议的家电远程控制系统设计(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上基于TCPIP协议的家电远程控制系统设计 摘要:利用STC89S52 单片机与ENC28J60网卡芯片设计了一种家电远程控制系统。该系统采用精 简的TCPIP协议(有线和无线)实现单片机与网络通信,单片机用网络通信的方法来同时控制多个家电。 接收多个用户请求,网络程序处理与对应单片机之间的通信,从而提供一种多用户远程控制多个家电 关键词:TCPIP协议;远程控制;家电;STC89S52前言:从20 世纪90年代末期开始智能小区智能家庭这两个新概念逐步走入人们的生活 。随着一些智能化家居产品的问世,人们享受智能化的家庭生活已不再是梦想中的难事我国的智能家居技术与欧美国家
2、相比大概要滞后 23 年, 国外的智能家居产品占据着国内高端产品市场例如美国海益智能家居系统在安防保护温度控制和灯光自动控制方面提供了简捷 可靠安全的操作但是没有提供远程控制方面的功能目前,国内的中低端产品在功能实现方面还比较简单, 一般只实现了家庭安防和部分控制功能, 而具有远程控制和管理功能的智能家居产品则是在一定的中高端市场中出现 。例如 , 2006年海尔公司推出的短信宝 , 可以通过手机短信来远程控制家里的各种电器虽然海尔短信宝的价格适中面向大众消费群体但是它只适用于带有网络接口和基 于 e 家佳协议的家电产品, 在应用方面还存在一定的局限性 。而其他具有远程控制功 能的高档智能家居
3、产品, 由于其价格昂贵, 又使得普通百姓望部而却步因我们此在增加智能家居系统的远程控制功能的同时求一种性价比较高的技术方案而努力 互联网的迅猛发展使得我国的上网人数显著增加,手机、笔记本等上网终端的使用率迅速攀升,其中手机增长率约为983。互联网随身化、便携化的趋势明显,同时随着3G牌照的发放以及3G业务的推广,网民使用手机上网的频率将会进一步提高。后IP时代网络社会将向信息社会迈进,物联网将是后 IP时 代的核心技术 。但是,多数家用电器仍然处于信息孤岛”状态。随着信息技术的蓬勃发展,家用电器接入互联网成为一种必然趋势,对此笔者设计了一种基于TCPIP协议的家用电器远程控制系统,该系统分为两
4、部分:一是采用STC89S52单片机为核心控制 芯片,利用网卡芯片ENC28J60来实现网络通信接口 与互联网服务器之间的通信;以此实现对家电的控制。1.连接方式;有线连接方式包含了星型连接总线连接和电力线载波连接三种方式。无线连接 方式包含了蓝牙连接红外连接和无线(RF) 连接三种方式 。从稳定性角度来看, 有线连接方式要比无线连接方式的稳定可靠性高, 在传统的安防系统中采用的都是稳定性最好的星型连接方式 。但是有线连接方式也同样存在一些缺点如布线时间长影响室内美观不便于改 动 难以满足防火要求等无线连接方式虽然在稳定性方面不如有线连接方式 , 但可以弥补有线 连接方式在其他方面的不足, 对
5、于一些在稳定性要求方面不是很高的家电设备如空调电饭 煲等的控制可采用无线连接方式 。考虑到目前蓝牙的价格还比较高 , 而红外连接又主要用于遥控, 因此本文采用的是智能家庭网关与家电设备之间的无线串口通信方案 。家庭网关是家庭网络的核心设备和集中控制中心, 对家庭网络中的电器设备进行集中的管理和控制家庭网关是家庭内网络与外部网络的连接接口, 主要实现网的接 Internet GSM寻入远程控制以及连接家庭内部网络的功能可见 家庭网关的设计是整个智能家庭系统设计的核心 。 2.总体设计:整体原理图为:在利用互联网对家用电器进行远程控制时,参照物联网的模型将系统分为3层:感知层、网络层和应用层,每层
6、执行其特定的任务。该系统的层次结构如感知层的功能是对终端电器进行状态监控,并将电器的实时监控数据传送到网络层。具体地说,该层是以AT89S52单片机作为微控芯片,用红外一体化的接收头接收来 自网络层的红外载波信号,并对该信号给予解调以此来控制电器,同时将电器的状态信息调制后通过红外一体化的发送头传送给网络层;网络层处理来自应用层的TCPIP数据包和来 自感知层的红外数据包。该层采用STC8952 单片机为核心处 。如图所示:方向为自动控制及网络技术理芯片,构建TCPIP协议栈,并用网卡芯片ENC28J60接收和发送来 自网络层的TCPIP数据包,最后将此网络层选用增强型的STC89S52单片机
7、作为微控芯片,其速度比普通的89S51芯片快812倍,工作频率为035MHz,能够满足TCPIP数据包发送速度的要求。该芯片具有32KBFlash的程序存储器,其 EPROM为8KB,用于保存IP地址、子网掩码、网关、客户账号及密码 等需要断 电保存 的数据。STC89S52内部仅有128KB的存储空间,不能满足处理TCPIP数据包所需的10KB左右的存储空问,因此使用数据存储器62256将其外部存储器外扩至32KB,这样也利于提高数据的接收与发送速度。 设计类似,其不同点在于采用中断方式处理来 自外部的红外信号使用STC89S52 的INT1引脚网卡芯片ENC28J60是由Microchip
8、推出的以太 网控制器,使用串行外设接口(SPI)的引脚 (SO、SI、 SCK、CS)和两个中断引脚(INT和WOL)与主控制器进行通信,最高速度可达到10Mbs。该芯片内部有 一 个DMA模块,可以实现数据的快速吞吐和硬件支 持IP校验和的计算。该芯片的两个引脚LEDA、LEDB 用于连接LED,以及显示连接、发送、接收、冲突和全半双工等状态。STC89S52 内部不带SPI接口,使 用4个IO引脚模拟SPI输入输出时序与ENC28J60 进行通信。ENC28J60的SPI有7条指令集用以实现 读控制寄存器、写控制寄存器、读缓冲器、写缓冲器、位域置位域清零和软件复位。ENC28J60中有3类
9、存 储器:控制寄存器、以太网缓冲器和PHY寄存器。SPI 接口是STC89S52 与ENC28J60的通信通道,由总 线接口对其接收的数据和命令进行解析,可以直接对 和状态获取。以太网缓冲器包含供以太网控制器使用 的发送和接收存储器,该缓冲器大小为8KB,分成独 立的接收和发送缓冲空间。PHY寄存器用于对PHY 模块进行配置、控制和状态获取。ENC28J60需要通过 MCU的中断处理来控制事件中断INT和LAN,触发 断时会占用 STC89S52 的外部中断 口INTO。ENC28J60的差分输入、输 出引脚 (TPIN+一和务器物理线路的连通。 头HS0038,其工作频率为38kHz,能对接
10、收到的信号进行放大、检波、整形和解调等,得到工作过程如图: 微控制器首先进行系统初始化,包括ARP初始化、TCP初始化、内存初始化、定时器初始化和网卡芯片初始化。初始化完成后,设置网卡芯片的IP地址、子网掩码、默认网关和本地监听的端口。接着就开启中断,以便主动连接服务器,其中外部中断0处理来自ENC28J60的请求,以便收发来互联网的数据包;外部 中断1则处理来 自HS0038的请求以便接收来 自感知层的红外信号,若中断没有发生则进入节电模式。微控制器与服务器之间的通信需要在单片机内部实现TCPIP协议,当8位MCU接入以太网时,由于系统资源的有限性,很难实现完整的TCPIP协议。网络层微控制
11、器的功能主要包括传输现场数据和接收远程控制命令,数据量较少且格式简单,故对TCPIP协议进行裁减。精简协议栈时只保留链路层的地址解析协议、网络层的IP协议、差错报文控制协议和传输层的TCP协议,且对需要实现的协议只实现必需的算法部分。TCPIP协议采用了4层结构:应用层、运输层网络层和链路层,反之则查看对方窗口是否能够接收IP协议 J。ARP协议、ICMP协议和 IP协议相对简单,在MCU中为实现这3个协议而进行数据包的发送时,可直接按协议的封装格式添加相应的协议首部封网络层的单片机控制流程装成的IP数据包,最后添加以太网首部和以太网尾部构成一个完整的以太网数据帧,并通过ENC28J60发送到
12、网络中去。在进行数据包的接收时,其过程与封包的过程相反:先去掉以太网数据帧的首部和尾部解析IP数据包,再逐层去掉相应的协议首部以获得用户数据TCP协议提供一种确保数据可靠传输的服务。为减少资源的占用和提高实时性,需要对TCP协议进行简化,其函数调用关系。当数据输出时,TCP层先查看unsend队列:若发现队列非空,则将数据包插入此队列;反之则查看对方窗口是否能够接收此数据包,然后填写TCP头部信息。IP层需要选择一个网络设备接口,即目的IP和该接口的子网掩码相与后等于子网掩码,然后调用驱动程序来发送,同时P32向ENC28J60发出中断请求。经ENC28J60处理后的数据包传送到目的网络中去。
13、数据输人时,Timer()函数的一个功能调用驱动函数ENC28j60PacketSend()函数。它的另一个功能是调用TCPTimer(),用于处理TCP数据包的重发等功能。Timer()函数会在短时间(20ms)内被调用一次,否则接收数据包和TCP定时等功能将停止。IP层判断IP版本、IP校验和,判断是否应该转发数据包,然后根据 IP头部的protocol字段将包传给相应的高层处理。TCP层需要判断TCP校验和,并在现有的套接字中查找,判断是否有套接字可以接收这个数据包判断TCP序号是否为希望的,并更新这个连接的状态(包括释放被应答的数据包和TCP状态机的转化等);然后调用套接字的回调函数r
14、ecv(),如果接收的TCP序号不在我方滑动窗口内,那么应该马上发送一个TCP应答包,因为这很可能是我方发送的应答包丢失了,我方接收的数据包是对方重发的TCP包。通过精简后的TCPIP协议栈对数据进行封包解包后,将此数据与ENC28J60相结合使之在网络中传输,从而单片机能够穿透IPv4下的NAT环境,并与广域网服务器实现互联工作流程图为:3 应用层的程序设计在应用层,系统采用MVC模式 进行系统设计。 控制器的Servlet程序分为两部分:一部分与网站程序一起处理来自浏览器的业务逻辑,包括用户注册、登录和控制电器等操作;另外一部分构建一个独立的线程池以便监听到指定端口,等待来 自网络层中各个
15、设备的TCP连接,完成与网络层的会话。JSP页面是人机接口,完成显示任务,其数据由Servlet和JavaBean程序产生。JavaBean程序是处理用户请求和电器控制的事务逻辑程序,读取数据库中的数据并给予存储和查询。 4 通信协议设计 考虑到无线通信的不稳定性,服务器和微控制器之间的通信数据采用自定义的特殊格式,以避免因数据丢失或冗余而造成的系统错误 。因此在对家电进行控制时,采用 自定义协议对家电信息进行封包解包。此协议的设计包括两方面:电器设备数据包和通信会话流程。为了双方的信息同步,在数据包首部定 义了会话序号,接收时对数据进行校验。电器序号由单片机根据电器类型产生,工作状态通过感知
16、层的单片机查询并以统一定义的字符来发送,控制命令在服务器回发时由感知层的单片机来处理。电器设备数据网络层的单片机在互联网上与服务器进行一次完整通信过程需要进行6次会话,详细的通信会话流程设备设置完成后,网络层的通信MCU会定时地主动连接目的服务器,以建立一个基于TCP协议的Socket连接来进行会话,并发送 自身设备的序列号和密码。服务器监听到来 自网络层通信MCU的请求后,验证序列号和密码是否在数据库中存在,并将验证后的状态返回给通信MCU,若验证通过后将进行第3次会话。网络层通过红外传感器向感知层的控制MCU发出请求,以便查询感知层的电器工作状态。当感知层接到外部中断后,则会接收请求向网络
17、层通信MCU报告电器目前的工作状态。通信MCU再将工作状态报告给服务器,服务器将工作状态与用户请求比对:若状态相同则报告处理完毕,反之则将不同工作状态发送给网络层通信MCU。网络层通信MCU再将信号发送给感知层控制MCU,感知层处理后回发工作状态,经通信MCU转发到服务器处理。服务器端断开此条TCP连接,则一次通信完成,即用户可在远端通过手机或者电脑上网登录自己的客户端,就可以完成对家电的远程控制。5:设计模块有:整体图为:5.1 继电器模块,如图所示5.2网口模块,如图所示:5.3降压模块,如图所示:5.4网络控制模块,如图所示:6 系统测试6 1 测试环境首先, 网络层与互联网连通性测试使
18、用个人电脑进行测试 网络层 ENC28J60 芯片的 RJ45 接口通过网线与路由器连接 网络层网卡设置 IP 为 211,71,234,150 (可通过上位机修改)子网掩码为 255 255 255 128, 网关为 211.71.234.154(可通过上位机更改)本地端口为8000 个人电脑使用网线与路由器连接, 设置为自动获取 IP, 保证网络层设备 IP 与个人电脑 IP 处于同一网段 其次, 路由器设置 WAN 端口连接类型设置为动态 IP, LAN 端口 IP 设置为 211,71,234,150 最后, 目的服务器设置 B 类 IP 为 IP 为 211,71,234,150 用
19、SocketTest 对端口8000 进行监听 目的服务器为Windows Server 2007 服务器操作系统 5 2 远程控制系统测试连通性测试 在网络设备端, 采用 WindowsXP 系统的 Ping 命令对网络设备进行连通性测试 网络层精简的TCP / IP 协议中同时实现了ARP 和TCP 协议, 所以也可以使用 APR Telnet 或 PathPing 命令测网络层设备的连通性 网络层设备能够被 Ping 通, 说明设备协议实现正确 通过以上各种方法进行测试都表明网络层设备与互联网连通性良好, 能够稳定进行局域网通信监听测试 在服务器端使用 SocketTest 工具软件监听
20、服务器1000 端口, 开启接收数据提示 网络层微控制器 STC89S52主动向广域网服务器1000 端口发起 TCP 连接请求, 并将此设备的 ID 和 Password封包发送给服务器 能够将数据包准确发送到服务器, 说明网络层设备与互联网连通性良好, 能够与广域网通信参数测试 微控制器STC89S52在使用6MHz 晶振时, 用 Sniffer 抓包软件测得其与服务器最高通信速度可达25 KB / s 使用 Ping 命令, 向211,71,234,150 发送 500 个包, 无丢包现象 这 500 个数据包当中, 返回速度最快耗时为41 ms, 最慢耗时为93 ms,平均耗时为53
21、ms, 完全能满足家电远程控制的实时性要求电饭煲远程控制测试 控制全自动电饭煲的单片机 AT89S52 接收到网站程序发送来的控制命令后, 把控制流程中每一个运行状态反馈给应用层的计算机,其他家电只要配置单片机等微控制器, 7结束语将本设计的方案应用于家电的远程控制并进行了多次实验, 实验结果表明该方案了家电远程控制的要求在该方案中, 通过强化 MCU的控制功能来弱化构建 Web 服务器的应用, 将复杂业务逻辑转移到互联网的服务器上, 这样就发挥了互联网服务器多线程处理能力, 支持多用户对多个家电的实时控制 另外, 该方案中的红外通信使系统在室内控制方便且易于扩展 随着 IPv6 的普及和物联网标准的制定, 该系统必将具有广阔的应用前景专心-专注-专业