1 引言
21世纪是嵌入式计算系统时代,人们日常生活和工作中所接触的仪器与设备中,都将嵌入具有强大计算能力的微处理器。嵌入式系统是任意包含一个可编程计算机的设备,但是这个设备不是作为通用计算机而设计的。即嵌入式计算系统是嵌入在其他设备中,起智能控制作用的专用计算机系统。一台通用个人电脑不能称为嵌入式计算系统,尽管有时会把它嵌入到某些设备中,而一台包含有微处理器的打印机、数码相机就可以算嵌入式计算系统。嵌入式计算系统已经广泛地应用到工业控制设备系统、信息家电、智能家庭设备等众多领域中。随着因特网的迅速发展,Web应用程序的应用也越来越广泛,它广泛地用于各种监控系统、通信设备等领域。嵌入式系统日益与Internet技术和 WWW技术结合起来发展为嵌入式Web或嵌入式Internet技术。嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。下文介绍一种嵌入式智能家庭远程监控系统,它是在Microchip公司提供硬件的基础,在功能实现上独立完成了TCP/IP协议、HTTP协议的编写,并在此基础上加载了实际的应用。
2 HTTP协议
HTTP是超文本传输协议的缩写,用于传送WWW方式的数据。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个头域结束的空行和可选的消息体组成。在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。WWW服务器运行时,一直在TCP80端口监听,等待连接的出现。
3 嵌入式远程监控系统AllLightSYS的设计与实现
3.1 功能概要
这里所提及的系统,它的芯片类型是由Microchip公司提供的PIC18F6722。该机器是通过AllLight System和Internet相连,从而对住所内的电器进行远程控制的Interface单元。它是通过Modem,Rote连接到Internet,使用手机的WEB浏览器访问AllLight系统来远程控制空调、电灯等电器的开和关,只要在手机的WEB浏览器上输入该系统的URL后,在该登陆页面上输入远程操作的AllLight的ControlUnit的编号,从而对登录WEB I/F UNIT的用户进行认证,经过认证的用户可以继续,认证不通过的转到认证错误画面。同时可以启动该系统的防盗监视功能时,当有入侵者打开被监视的电器设备时,就可以向用户手机(计算机终端)发送邮件进行提醒。这里最多可以控制的AllLightControlUnit数是32台。 (如图)
在手机的WEB浏览器上输入WEB I/F UNIT的URL后,为了防止非法登录,一旦用户登录3次失败以后,外部的登录将失效,WEB I/F UNIT将通过HTTP协议向AllLight服务器发送非法登录的警告信号。警告信息中包含了WEB I/F UNIT的MAC地址(为了和用户的邮件地址关联)。AllLight专用服务器根据WEB I/F UNIT传送警告信息中的MAC地址数据,将警告邮件发送到与MAC对应的用户手机上。外部登录的失效解除,是通过WEB I/F UNIT的外部登录无效解除按钮来实行的。
该系统还可以对和WEB I/F UNIT直接相连的AllLight Control Unit(Local Port连接)的回路进行监视。监视回路和检测状态(ON/OFF)是通过在WEBPAGE设定的,根据设定的内容对回路监视。如果是检测到防盗信息,向AllLight专用服务器发送警告信号,AllLight专用服务器向用户发送邮件。防盗监视机能的开和关是通过手机登陆页面中的一个功能键来控制的。通过“外部接点”,可以对WEB I/F UNIT的防盗监视机能进行设定。因为只能在屋内通过开关解除防盗监视机能,回路状态上的“有入侵者”通过回路状态和设定的数据(监视回路,监视状态)是否一致来判断。回路不一致的情况下,在一定时间内,如果没有解除“防盗监视机能”,判断为“有入侵者”;如果在这段时间内,解除了“防盗监视机能”,判断为“无入侵者”。上述的“一定时间”,是可以设定的数据。另外,当通过外部接点打开“防盗监视机能”时,为了避免屋内操作电器的误判为“有入侵者”,设计了延时。
另外,在AllLightSystem设计了和PC机的Interface。和计算机的Interface是通过Ethernet实现的。将AllLightSystem的通信协议数据转换成计算机使用的通信协议。只能在Local内使用。计算机和WEB I/F UNIT是靠Socket进行通信的。在WEB I/F UNIT中封装Sokect的通信服务,连接端口通过设定机能设定。计算机发出连接请求后,建立连接。连接建立后,如果Sokect存在,进行以下处理。如果是从AllLightSystem发来数据包,收到的数据包加上TCP协议的包头,向计算机发送。如果是从计算机发来的数据包,从收到的数据包(TCP数据包)中取出AllLight数据包,向AllLightSystem发送AllLight数据包。
通过外部接点(AllLight的配套机器:SX)的操作,在AllLightSystem的管理下,可以将电灯,空调等电器全关闭。
3.2 软件实现
软件构成图
HTTP服务处理
接收从手机、计算机发送过来的HTTP数据包,通过HTTP服务将HTTP数据解析。将接收到的HTTP请求解析,根据请求的内容(WEBPAGE请求或CGI请求),发送WEBPAGE的内容或进行CGI处理。生成客户端请求的WEBPAGE,将该WEBPAGE送到客户端。如果,设定模式的数据限制了该客户端请求的WEBPAGE,将错误页面发送到客户端。如果外部登录FLAG是有效的,进行HTTP协议解析;如果外部登录FLAG是无效的,为了禁止从Internet的登陆,检查HTTP请求的IP协议的发包IP和WEB I/F UNIT的IP,子网掩码是否是同一个网段,如果是同一个网段,进行HTTP协议解析,不是同网段,返回错误页面。根据HTTP请求的CGI种类可以进行各种请求,例如,进行用户认证处理是通过手机、计算机实行用户认证,和登录在WEB I/F UNIT上的内容进行一致性检查。(用户ID,PASSWORD)如果一致则认证失败计数=0,将“主菜单”画面的HTTP数据发送到客户端。如果不一致则认证失败计数+1,“登录失败”画面的HTTP数据发送到客户端。如果连续登录3次不一致,外部登录无效。进行防盗监视设定处理是将防盗监视机能FLAG设定成有效?无效,控制SL的LED(有效:红灯ON,无效:绿灯ON),更新“主菜单”画面的防盗监视状态。处理后,将“主菜单”画面的HTTP送到客户端。
这里需要说明的是,由于WEB I/F UNIT的GlobalIP地址是动态分配的,所以必须构建AllLight的专用服务器,并且在该服务器上将WEB I/F UNIT的GlobalIP登录。GlobalIP的登录需要定期执行,在AllLight专用服务器上,是将WEB I/F UNIT的IP地址和MAC地址绑定的,因此,WEB I/F UNIT必须将自己的MAC地址通过HTTP协议传送到AllLight专用服务器上。
AllLight响应的接收处理
通过PIC的UART机能,接收AllLightSystem发出的数据包。只响应AllLight ControlUnit发出的数据。(其它数据忽略。)如果远程操作机能FLAG,防盗监视机能FLAG有效,根据接收到的数据更新WEB I/F UNIT的回路状态数据。如果PC I/F机能FLAG有效,由于发送的数据是有AllLight协议的信息,为了使接受的数据能够进行PC I/F处理,除去AllLight协议的报文头。
AllLight指令发送处理
远程操作机能如果FLAG有效,实行有效回路检查。有效回路设定数据Check,如果指令控制的回路远程操作有效,实行指令发送处理。根据手机发出的要求,将“ON”,“OFF”指令转换成AllLight协议数据发送。如果是通过PC I/F处理,去掉TCP数据的报头,将取出的数据加上AllLight协议的报头,发送数据包。
4 结论
本文介绍了一个基于对嵌入式Web技术的家庭远程操作监控系统的设计与实现,主要实现通过手机或电脑对自己家用电器进行监控和远程操作,极大地保证了家庭的安全,也方便了人们的生活。本文作者的创新点就是:服务器的设计基于嵌入式WEB技术,支持动态IP,可以直接进入以太网,用户无需使用专用的操作系统和软件,可以直接通过浏览器进行操作,通过HTTP与嵌入式WEB进行通信。通过这次项目的完成,相信随着网络监控技术的发展,基于嵌入式WEB的远程操作系统必将有良好的发展前景。