基于嵌入式Web服务器的远程家居监控系统.pdf
?智能家居?周?轶(1973),男,工程师,研究方向为建筑电气。基于嵌入式 Web服务器的远程家居监控系统周?轶(上海经纬建筑规划设计研究院有限公司,上海?200092)摘?要:设计了一种基于嵌入式 W eb 服务器的远程家居监控系统,并对其硬件结构及软件实现作了详细的介绍。服务器通过局域网接入 Interne,t 允许用户在Internet上任何一点通过浏览器访问服务器,并实现对下层家居设备的监控。关键词:智能家居;嵌入式系统;W eb服务器;远程监控中图分类号:TU 855?文献标志码:B?文章编号:1674?8417(2010)04?0011?040?引?言随着信息技术与通信技术的迅速发展,局域网与广域网等取得长足发展,互联网运用正由以PC机为中心转移到以嵌入式设备为中心,这使基于嵌入式设备的家居系统的网络化管理成为可能。另外,随着人们对居住条件和环境要求的提高,使家居系统网络化成为满足人们日益增长的需求的一种主要手段。据网络专家预测,将来在互联网上传输的信息中有 70%来自小型嵌入式系统。但利用单片机实现嵌入式互联网方案存在的技术难点是如何利用单片机本身有限的资源对信息进行 TCP/IP协议处理,使之成为可以在互联网上传输的 IP数据包。目前解决这个问题有两种方案:一种是PC网关+专用网,缺点是需增加布线和第三方协议转换软件;另一种是 32 bitMCU+RTOS,弊端是开发难,成本极高。鉴于上述两种方案存在的缺点,该系统中采用了美国 Ubicom公司提出的 MCU+虚拟软件包方案。Ubicom 公司的 SX52BD微控制器进行网络控制具有其独特优势,主要体现为速度快,在 100MHz频率下能达到 100M IPS;现成的协议模块供使用,即使对不熟悉网络协议的开发人员也能简单套用。虽然其他 8 bit单片机也能用软件实现精简的 TCP/IP协议(如 PIC16C76等),但上述两大优点是采用 SX52BDMCU的充分理由。套用成熟的现有程序是最具效率的开发办法,这也是避免目前国内普遍存在的低水平开发的有效途径。虽然目前还没有单独的 TCP/IP软件虚拟模块提供,但在演示板程序的基础上,可以采用其成功的网络协议模块和一些适用于小型嵌入式系统的做法构筑现场监控 W eb服务器。1?系统基本组成图 1为基于嵌入式 W eb服务器的智能家居系统的基本结构图。局域网与 Internet都是系统中现成部分,用户只需将嵌入式服务器配置适当的 IP地址,通过局域网接入 Interne,t 即可通过嵌入式 W eb服务器对家中情况进行实时监控。图 1?基于嵌入式 W eb服务器的智能家居系统?11?智能家居?2?嵌入式 W eb服务器2.1?硬件结构嵌入式 W eb服务器的基本硬件结构如图 2所示。SX52BD为其核心芯片,通过它控制以太网控制芯片 RTL8019AS,进而完成接入网络的工作。SX52BD有 5个 I/O口,共计 40个引脚,是多功能可编程口。不但可通过软件非常容易地修改配置执行虚拟软件模块驱动普通的 I/O口来模拟外设的功能(如 UART、SPI、I2C 和 FSK等),还可通过虚拟外设功能来运行网络协议栈(如 TCP、IP、HTTP以及 S MTP 等),另外也可以作为普通单片机控制使用。该芯片用简洁硬件构架应用平台,使原本硬件成本所需的支出可用于相对复杂的软件开发,其 I/O接口可以自由扩展和支配。图 2?服务器基本硬件结构图?E2PROM 用于存储网页内容,它通过 I2C接口与 SX52BD通信。SX52BD上必须预留 I/O口作为网页下载接口。2.2?软件实现该系统中嵌入式 W eb服务器的软件主要由芯片初始化设置、TCP/IP协议栈的实现、家居监控模块组成。TCP/IP协议栈是 SX虚拟外设的一个重要实现,是基于 SX处理器的应用系统实现与 Inter?net互联的基础。Internet上的多个计算机和应用程序的通信是通过不同的通信协议实现的。这些协议定义了解释数据传输的规则,是由不同组织来定义开发的。从根本上说,Internet是基于报文分组的网络,对于每一个事件,它最后都被分成大小不同的带有数据和头的报文。然而,程序员更愿意使用基于流的数据传输机制。用户数据包协议(UserDatagram Protoco,l UDP)是基于报文分组的,而 TCP协议是基于流的传输机制的协议,在应用中要根据不同的要求来选用相应的、合适的协议。SX系列芯片之所以称为 Internet通信控制器,就是因为凭借它高速的处理功能,从软件上实现了 Internet协议 TCP/IP 协议栈。通过这些协议栈,程序员可以更加方便地开发基于Internet的嵌入式应用系统。Internet协议栈包括TCP、UDP、PPP等虚拟外设,这些协议通过应用程序接口(Application Progra m Interface,API),可以方便地与应用程序连接。图 3为 Ubicom 公司用汇编语言实现的以太网协议栈,即 TCP/IP软件的 4层抽象分层 物理层、网络层、传输层和应用层,每一层负责不同的功能。在该系统中,物理层功能由网络接口卡(RTL8019A芯片)完成,程序的初始化部分包含其驱动程序;网络层部分加入了地址解析协议(ARP),实现 IP地址到物理地址的映射;考虑到实时监控系统中传输量并不大,而可靠性要求较高,传输层采用 TCP协议,不采用 UDP协议;HT?TP是 Web服务器用来与浏览器通信的协议,是应用层的主要构成协议。图 3?W eb服务器软件 TCP/IP协议栈?由于在 Internet中都使用约定俗成的 TCP/IP协议,因此,基于 IP的 TCP协议起着非常重要的作用。SX52BD是一种嵌入式微控制器,内存较小,不能用传统的方法实现 TCP,因为它们需要很大的缓冲区来构造套接字(Socket)。在传输层上,TCP协议是面向流的机制;而 SX控制器具有很高的处理速度。它采用下推式的工作方式,即当收发数据时,并不是将一个完整的数据包进行处理;而是收取数据时,一边收取,一边进行应用层的处理。发数据时也是如此,应用层一边发数据,SX的虚拟外设就同时对数据进行打包发出,直至没有数据为止。这种方式极大地节约了内存资源,有效地提高了应用程序的处理速度。?12?智能家居?系统的主要功能是进行远程监控,真正传送的数据量很小,不需要巨大的缓冲空间。因此,该处理方法是非常有效的。协议栈的实现主要分为接收数据包的解释和发送数据包的打包。以太网数据以帧格式进行传输,其格式如图 4所示。图 4?以太网数据帧格式?8 Byte的前导用于帧同步,CRC域用于帧校验。这些用户不必关心,其由网卡芯片自动添加。目的地址和源地址是指网卡的物理地址(即MAC地址),具有唯一性。帧类型或协议类型是指数据包的高级协议,如果帧类型字段值为0 x0806,则为 ARP包;如果为 0 x0800,则为 IP数据包。接收帧时,根据不同的帧类型由不同的软件模块进行处理。发送数据帧时,也根据不同的帧类型由不同的程序进行打包处理,基本方法和处理接收帧相同,只是把读操作改为写操作。帧的接收和发送都是基于物理层对网卡的操作,包括读接收缓冲区和写发送缓冲区。网卡采用 8bit工作方式,对其缓冲区的操作需要逐一读写每个 8 bit组。读接收缓冲区时对不同的字段进行判断、记录处理。2.3?工作流程控制器工作流程如图 5所示。当数据包通过 RJ?45接口传送到 RTL8019AS和 MCU 后,系统内部的 TCP/IP堆栈进行数据包解析和流向判断,然后进行解包或打包,以继续进行后续工作。显然,最终的处理结果都要通过 W eb 服务器进行。3?浏览器与服务器的连接浏览器与服务器的连接采用 B/S(即 Brow?ser/Server)模式。当浏览器与服务器(即控制器)交互时,都遵循超文本传输协议(HTTP)。为了确保浏览器与服务器能够正确地相互操作,HTTP定义了浏览器发送到服务器的请求格式与服务器返回的应答格式。图 5?控制器工作流程?由于 W eb浏览器不能理解嵌入式微处理器的内部操作,故采用程序接口 CGI(CommonGate?way Interface)技术实现处理器与浏览器之间的通信。CGI是一种接口规范,可以处理客户端(一般是浏览器)输入的数据,完成客户端与服务器的交互操作。当用户通过浏览器向 W eb服务器发出请求时,服务器守护进程启动相应的 CGI程序,将请求转化为服务器能够识别的格式,进行处理后,再由 CGI将结果转化为 W eb浏览器能够识别的格式,作为 HTTP应答消息回送到客户端。客户端、服务器、CGI程序间的关系如图 6所示。图 6?浏览器与控制器连接图?CGI程序其实就是一些应用程序,如控制灯的亮灭、处理串口数据等,只是它能由远程浏览器通过点击网页而激活,从而实现浏览器和服务器的交互功能。4?家庭应用智能家居的构成如图 7所示。其内容包括:(1)家用设备的数据采集。采集室内温度、灯具家电、防盗门等家用设备的状态数据。经控制器处理后反馈给用户。(2)本地控制。用户通过控制器上的键盘和显示屏,对家用设备进行监控。?(3)远程控制。远程用户可以通过发送手机短信或通过互联网对家庭系统进行控制和查?13?智能家居?图 7?智能家居系统构成询。(4)自动报警。当控制器检测到非法闯入或温度超高等报警信号时,及时触发室内报警装置,并通过发送报警短信等方式及时通知用户。(5)温度查询。用户可以通过控制器查询室内温度。(6)防盗门密码设置。用户可以通过本地或远程方式修改防盗门的密码,在门外输入正确的密码后才可开门。(7)红外家电控制。接收用户命令,通过红外发射电路控制电视、空调等红外可控的家电设备。(8)其他灯具等开关量控制。接收用户命令,控制灯具等开关量设备。5?结?语该系统可以实现远程家电(如空调、热水器等)控制(包括遥控或继电器控制)、照明控制、烟雾报警、防盗报警、可编程定时控制等多种功能和手段,使人们的生活更加舒适、便利和安全。1?吴成东.Intranet技术及在住宅智能化中的应用M.北京:清华大学出版社,2001.2?卢虎,李勇,李志芳.嵌入式 W ebServer技术及其实现 J.单片机,2003(5):9?10,13.3?许洪华,刘科.基于嵌入式 W ebServer的控制器的开发与运用 J.工业控制计算机,2004,17(4):15?16.4?仲崇权,李丹,杨素英,等.工业以太网控制模块的研究与研制 J.工业控制计算机,2002,15(11):34?36.5?吕先正,张宁,宋晓红.SX微控制器的虚拟外设及Internet应用 J.单片机与嵌入式系统应用,2002(4):14?16.收稿日期:2009-10-09?Remote HomeM onitoring Syste m Based on EmbeddedW eb ServerZ HOU Yi(Shanghai Jingwei Construction Planning and Design Acade my Co.,Ltd.,Shanghai 200092,China)?Abstract:A re mote homemonitoring syste m based on e mbeddedW eb serverwas designed,and its hardware struc?ture and software realization were introduced in detai.l The server was connected with Internet through LAN.It alloweduser visiting server through browser from any point of Internet,and realized the control of low layer ho me equipment.K ey words:s m art hom e;e mbedded syste m;W eb server;re m ote monitoring欢迎网上投稿?http:/欢 迎 订 阅?欢 迎 评 刊?欢 迎 刊 登 广 告?14?