摘 要: 提出了采用成本较低的传统51单片机实现WebServer功能的方案,并将此设计应用于智能家居系统中。系统具有灵活方便、成本低等优点,其软件的设计方案和设计思想可以普及和推广,对未来的智能家居系统有很实用的参考价值。
关键词: 智能家居;WebServer;TCP/IP
随着生活水平的提高,人们对生活质量的要求也在逐步提高,越来越多的人希望能够生活在一个安全、舒适、节能、方便、高效的绿色环境中。随着传统家电产品与计算机、通信技术的结合,家用电器产品朝着智能家居的方向发展,使人们的愿望得以实现。而家用电器接入Internet网,使家庭与外部保持信息交流畅通,实现远程控制,也越来越多地被人们所关注。
虽然智能化家居能够为人们的生活带来很大的便利,但由于它的造价昂贵,并不适合普通的百姓阶层,且很多功能也是华而不实的,并没有得到住户的认可,用户对于一些功能甚至很少使用,这也造成了资源的浪费。
本文所设计的智能家居系统,从实用的角度出发,同时考虑到成本和日后的维护问题,充分利用现有的智能家居技术和资源为用户构建高性价比的智能家居系统,实现了以最少成本完成最实用功能的目的,使智能家居走进百姓的生活,让人们能够更好地享受现代高科技为人们带来的方便。
1 设计思路
本设计的总体思路方框图如图1所示。
在硬件方案设计上,包含主控制器和分控制器两部分。主控器中除了51内核单片机[1],还包含了一个片外存储器、无线收发模块、温度、湿度检测模块、电话拨号模块、声音报警模块[2]。分控制器负责用电设备管理。
系统以主控制器为核心,通过与分控制器无线通信[3],实现对用电设备的控制和监测的功能。同时,主控制器还负责TCP/IP协议栈的处理和解析,提供Internet网页访问功能。
在软件方案设计上,实现WebServer的功能,需要TCP/IP协议的支持。由于W77E58芯片是基于8位的微处理器,现在可获得的TCP/IP源代码一般并不为51 单片机设计,由于系统资源受限,通过有针对性的模块化裁剪,在单片机上嵌入精简的TCP/IP协议栈[4],实现嵌入式Internet接入。
2 网络通信协议设计
精简后的协议主要包括TCP/IP协议组中的四个基本协议:ARP协议、IP协议、ICMP协议、TCP协议[5]。链路层协议,作为设备驱动在链路层实现,由单片机来驱动以太网卡RTL8019AS。应用层协议,实现了HTTP协议。RTL8019AS的驱动程序主要包括4个部分: RTL8019AS芯片的复位、网卡的初始化、发送数据、接收数据。
地址解析协议(ARP)实现的功能是:当有一个IP数据包要发送到以太网上时,从ARP表中查询相应的MAC地址。在本设计的精简的TCP/IP协议栈中,ARP的执行依靠维持一张映射表来完成IP地址和MAC地址的映射。
整个IP协议可由IP数据报的接收、发送、IP数据差错校验控制三个子程序构成。
网间报文控制协议(ICMP)实现了一种类型的ICMP信息:ICMP回响信息。ICMP回响信息常常用于ping程序里的检查主机是否在线。
传输控制协议(TCP),TCP协议进行数据传输时可分为建立连接、传输数据和关闭连接三个阶段。
在本设计中,智能家居控制器实现提供Web网页浏览的功能,只需要使用HTTP协议即可。浏览器通过该协议与Web服务器交换数据。
3 WebServer的实现
WebServer的工作原理,就是在单片机内部存放指定的网页数据,当客户通过浏览器访问指定地址时,服务器分析请求信息,并相应地向浏览器中返回指定网页的HTML代码。
此系统主要包含2个页面:登录页面和控制页面。为了便于存储和访问,需要把这2个HTML文件转换为C语言的数组,存放于C文件中。
登录页面是当用户访问智能家居Web服务器时,出于安全性的考虑,需要进行身份验证,只有合法的用户才可以进入到控制页面。控制页面是通过本页面对家用电器实现远程控制。控制页面如图2所示。
在此页面中,温度和湿度的值在代码中以特殊字符替代。当Web控制器发送网页给客户端时,就用控制器将采集的值替换HTML文档中相对应的特殊字符,实现了温度和湿度的实时检测。
WebServer的实现就是HTTP通信的过程。其中包括服务器和浏览器的以下几个步骤。
(1)建立TCP连接。建立一个TCP连接,对80端口(WebServer默认端口)进行监听,接收到TCP包后即进入TCP回调函数。
(2)Web浏览器向Web服务器发送请求命令。一旦建立了连接,浏览器即向服务器发送请求命令。请求消息包括请求行,首部,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。例如:
GET/index.html HTTP/1.1
(3)Web服务器响应。客户机向服务器发出请求后,服务器会客户机回送响应。响应消息包括状态行、响应头、空行及实体内容。在响应报文中,包括协议版本号和应答状态码,关于它自己的数据及被请求的文档信息。例如:
HTTP/1.1 200 OK
Content-type:text/html
(4)关闭连接。数据传送完毕,双方通过4次握手,结束TCP/IP连接。
该智能家居控制系统,可以让智能家居的主人在任意位置,利用通用计算机的IE浏览器,上网浏览到家居中所有用电设备的工作状态和家居的安防信息。如果主控制器所管理的某个用电设备,出现了不太紧急的故障时,可以只给主人一次简单的提示,而发生紧急情况之后主控制器一直循环呼叫主人,直到主人应答为止。这样使得该系统在以太网出现故障之后,或者某些紧急情况出现时,因主人当时没有正在浏览网页,这时就可以利用电话线拨号及时快速地通知主人,从而使系统非常具有实际的应用价值。同时也是这个系统区别其他现有系统更具人性化、智能化的创新点所在。
参考文献
[1] 肖红兵,李国峰.80C51嵌入式系统教程[M].北京:北京航空航天大学出社,2007.
[2] 严天峰.单片机应用系统设计与仿真调试[M].北京:北京航空航天大学出版社,2005.
[3] 林勇,李因东,严彬彬.基于LPC2214的家庭智能终端的设计与实现[J].电子技术应用,2006.3
[4] 许华杰,明健.基于SX单片机实现WebServer和网络协议栈.单片机与嵌入式系统应用,2007.
[5] 谢希仁.计算机网络(第2版)[M].北京:电子工业出版社,2003.