周 轶(1973—),男,工程师,研究方向为
建筑电气。
基于嵌入式
W eb 服务器的
远程家居监控系统
周 轶
(上海经纬建筑规划设计研究院有限公司,上海 200092)摘 要:设计了一种基于嵌入式
W e b 服务器的远程家居监控系统,并对其硬件
结构及软件实现作了详细的介绍。服务器通过局域网接入I n t e rne t,允许用户在
I nte rne t 上任何一点通过浏览器访问服务器,并实现对下层家居设备的监控。
关键词:智能家居;嵌入式系统;
W e b 服务器;远程监控
中图分类号:T U 855 文献标志码:B 文章编号:167428417(2010)0420011204
0 引 言
随着信息技术与通信技术的迅速发展,局域网与广域网等取得长足发展,互联网运用正由以PC 机为中心转移到以嵌入式设备为中心,这使基于嵌入式设备的家居系统的网络化管理成为可能。另外,随着人们对居住条件和环境要求的提高,使家居系统网络化成为满足人们日益增长的需求的一种主要手段。
据网络专家预测,将来在互联网上传输的信息中有70%来自小型嵌入式系统。但利用单片机实现嵌入式互联网方案存在的技术难点是如何利用单片机本身有限的资源对信息进行TCP /I P 协议处理,使之成为可以在互联网上传输的I P 数据包。目前解决这个问题有两种方案:一种是PC 网关+专用网,缺点是需增加布线和第三方协议转换软件;另一种是32bit MCU +R T OS,弊端是开发难,成本极高。
鉴于上述两种方案存在的缺点,该系统中采用了美国Ubicom 公司提出的MCU +虚拟软件包方案。Ubicom 公司的SX52BD 微控制器进行网络控制具有其独特优势,主要体现为速度快,在M z 频率下能达到M I S ;现成的协议
模块供使用,即使对不熟悉网络协议的开发人员
也能简单套用。虽然其他8bit 单片机也能用软
件实现精简的TCP /I P 协议(如PI C16C76等),但上述两大优点是采用S X52BD MCU 的充分理由。套
用成熟的现有程序是最具效率的开发办法,这也是避免目前国内普遍存在的低水平开发的有效途径。虽然目前还没有单独的T C P /I P 软件虚拟模块提供,但在演示板程序的基础上,可以采用其成功的网络协议模块和一些适用于小型嵌入式系统的做法构筑现场监控W eb 服务器。
1 系统基本组成
图1为基于嵌入式W eb 服务器的智能家居系统的基本结构图。局域网与I nte r net 都是系统中现成部分,用户只需将嵌入式服务器配置适当的I P 地址,通过局域网接入I nternet,即可通过嵌入式W eb 服务器对家中情况进行实时监控
。
图 基于嵌入式W 服务器的智能家居系统
100H 100P 1e b 1
1
2 嵌入式W eb 服务器
2.1 硬件结构
嵌入式W eb 服务器的基本硬件结构如图2所示。S X52BD 为其核心芯片,通过它控制以太网控制芯片RTL8019AS,进而完成接入网络的工作。S X52BD 有5个I/O 口,共计40个引脚,是多功能可编程口。不但可通过软件非常容易地修改配置执行虚拟软件模块驱动普通的I/O 口
来模拟外设的功能(如UART 、SP I 、I 2
C 和FSK 等),还可通过虚拟外设功能来运行网络协议栈(如TCP 、I P 、HTTP 以及S MTP 等),另外也可以作为普通单片机控制使用。该芯片用简洁硬件构架应用平台,使原本硬件成本所需的支出可用于相
对复杂的软件开发,其I/O 接口可以自由扩展和支配
。
图2 服务器基本硬件结构图
E 2PRO M 用于存储网页内容,它通过I 2
C 接
口与SX52BD 通信。S X52BD 上必须预留I/O 口作为网页下载接口。
2.2 软件实现
该系统中嵌入式W eb 服务器的软件主要由芯片初始化设置、T CP /I P 协议栈的实现、家居监控模块组成。
T CP /I P 协议栈是S X 虚拟外设的一个重要实现,是基于S X 处理器的应用系统实现与I nter 2net 互联的基础。I nternet 上的多个计算机和应用程序的通信是通过不同的通信协议实现的。这些协议定义了解释数据传输的规则,是由不同组织来定义开发的。从根本上说,I nterne t 是基于报文分组的网络,对于每一个事件,它最后都被分成大小不同的带有数据和头的报文。然而,程序员更愿意使用基于流的数据传输机制。用户数据包协议(U D ,U D )是基于报文分组的,而T 协议是基于流的传输机制的协
议,在应用中要根据不同的要求来选用相应的、合适的协议。
S X 系列芯片之所以称为I nte r net 通信控制器,就是因为凭借它高速的处理功能,从软件上实现了I nternet 协议———TCP /I P 协议栈。通过这些协议栈,程序员可以更加方便地开发基于I nternet 的嵌入式应用系统。I nternet 协议栈包括TCP 、UDP 、PPP 等虚拟外设,这些协议通过应用程序接口(App lica tion Pr ogr a m I nterf ace,AP I ),可以方便地与应用程序连接。
图3为Ubicom 公司用汇编语言实现的以太网协议栈,即TCP /I P 软件的4层抽象分层———物理层、网络层、传输层和应用层,每一层负责不同的功能。在该系统中,物理层功能由网络接口卡(RT L8019A 芯片)完成,程序的初始化部分包含其驱动程序;网络层部分加入了地址解析协议(ARP),实现I P 地址
到物理地址的映射;考虑到实时监控系统中传输量并不大,而可靠性要求较高,传输层采用T C P 协议,不采用UDP 协议;HT 2TP 是W eb 服务器用来与浏览器通信的协议,是应用层的主要构成协议
。
图3 W e b 服务器软件TC P /I P 协议栈
由于在I nternet 中都使用约定俗成的TCP /I P 协议,因此,基于I P 的TCP 协议起着非常重要的web服务器是什么服务器
作用。SX52BD 是一种嵌入式微控制器,内存较小,不能用传统的方法实现TCP,因为它们需要很大的缓冲区来构造套接字(S ocket )。在传输层上,TCP 协议是面向流的机制;而SX 控制器具有很高的处理速度。它采用下推式的工作方式,即当收发数据时,并不是将一个完整的数据包进行处理;而是收取数据时,一边收取,一边进行应用层的处理。发数据时也是如此,应用层一边发数据,SX 的虚拟外设就同时对数据进行打包发出,直至没有数据为止。这种方式极大地节约了内存资源,有效地提高了应用程序的处理速度。
se r atagr am Pr ot ocol P CP 2
1
系统的主要功能是进行远程监控,真正传送的数据量很小,不需要巨大的缓冲空间。因此,该处理方法是非常有效的。
协议栈的实现主要分为接收数据包的解释和发送数据包的打包。以太网数据以帧格式进行传输,其格式如图4所示
。
图4 以太网数据帧格式
8Byte 的前导用于帧同步,CRC 域用于帧校
验。这些用户不必关心,其由网卡芯片自动添加。目的地址和源地址是指网卡的物理地址(即MAC 地址),具有唯一性。帧类型或协议类型是指数据包的高级协议,如果帧类型字段值为0x0806,则为ARP
包;如果为0x0800,则为I P 数据包。接收帧时,根据不同的帧类型由不同的软件模块进行处理。发送数据帧时,也根据不同的帧类型由不同的程序进行打包处理,基本方法和处理接收帧相同,只是把读操作改为写操作。帧的接收和发送都是基于物理层对网卡的操作,包括读接收缓冲区和写发送缓冲区。网卡采用8bit 工作方式,对其缓冲区的操作需要逐一读写每个8bit 组。读接收缓冲区时对不同的字段进行判断、记录处理。
2.3 工作流程
控制器工作流程如图5所示。当数据包通过RJ 245接口传送到R T L8019AS 和MCU 后,系统内部的TCP /I P 堆栈进行数据包解析和流向判断,然后进行解包或打包,以继续进行后续工作。显然,最终的处理结果都要通过W eb 服务器进行。
3 浏览器与服务器的连接
浏览器与服务器的连接采用B /S (即B r ow 2se r/Server )模式。当浏览器与服务器(即控制器)交互时,都遵循超文本传输协议(HTTP)。为了确保浏览器与服务器能够正确地相互操作,TT 定义了浏览器发送到服务器的请求格式与服务器返回的应答格式
。
图5 控制器工作流程
由于W eb 浏览器不能理解嵌入式微处理器
的内部操作,故采用程序接口CGI (Common Gate 2way I nterface )技术实现处理器与浏览器之间的通信。CGI 是一种接口规范,可以处理客户端(一般是浏览器)输入的数据,完成客户端与服务器的交互操作。当用户通过浏览器向W eb 服务器发出请求时,服务器守护进程启动相应的CGI 程序,将请求转化为服务器能够识别的格式,进行处理后,再由CGI 将结果转化为W eb 浏览器能够识别的格式,作为HTTP 应答消息回送到客户端。客户端、服务器、CGI 程序间的关系如图6
所示。
图6 浏览器与控制器连接图
CGI 程序其实就是一些应用程序,如控制灯的亮灭、处理串口数据等,只是它能由远程浏览器通过点击网页而激活,从而实现浏览器和服务器的交互功能。
4 家庭应用
智能家居的构成如图7所示。其内容包括:
(1)家用设备的数据采集。采集室内温度、灯具家电、防盗门等家用设备的状态数据。经控制器处理后反馈给用户。
(2)本地控制。用户通过控制器上的键盘和显示屏,对家用设备进行监控。
(3)远程控制。远程用户可以通过发送手机短信或通过互联网对家庭系统进行控制和查
3
H P 1
图7 智能家居系统构成
询。
(4)自动报警。当控制器检测到非法闯入或温度超高等报警信号时,及时触发室内报警装置,并通过发送报警短信等方式及时通知用户。
(5)温度查询。用户可以通过控制器查询室内温度。
(6)防盗门密码设置。用户可以通过本地或远程方式修改防盗门的密码,在门外输入正确的密码后才可开门。
(7)红外家电控制。接收用户命令,通过红外发射电路控制电视、空调等红外可控的家电设备。
(8)其他灯具等开关量控制。接收用户命令,控制灯具等开关量设备。
5 结 语
该系统可以实现远程家电(如空调、热水器等)控制(包括遥控或继电器控制)、照明控制、烟雾报警、防盗报警、可编程定时控制等多种功能和手段,使人们的生活更加舒适、
便利和安全。
[1] 吴成东.I ntra ne t技术及在住宅智能化中的应用
[M].北京:清华大学出版社,2001.
[2] 卢虎,李勇,李志芳.嵌入式W e bSe rve r技术及其
实现[J].单片机,2003(5):9210,13.
[3] 许洪华,刘科.基于嵌入式W e bS e rve r的控制器的
开发与运用[J].工业控制计算机,2004,17(4):
15216.
[4] 仲崇权,李丹,杨素英,等.工业以太网控制模块的
研究与研制[J].工业控制计算机,2002,15(11):
34236.
[5] 吕先正,张宁,宋晓红.SX微控制器的虚拟外设及
I n te rne t应用[J].单片机与嵌入式系统应用,2002
(4):14216.
收稿日期:2009-10-09
Rem ote Ho m e M on itor i ng Syste m Ba sed on Em bedded W eb Ser ver
ZHOU Yi
(Shangha i Jing wei Constr ucti on P lanning and Design Acade m y Co.,L td.,Shanghai200092,China) Ab stra ct:A remote h ome monitoring syste m ba s ed on em beddedWeb server wa s de signed,and its ha rd ware struc2 t ure and s oft w are rea lization we re intr oduced in de t a il.T he se rver wa s connected w ith Internet through L AN.It a llo wed user visiting serv e r thr ough br owser fr om any po i nt of Internet,and rea lized the control of l o w laye r ho m e equi pm en t.
Key wor d s:s m a r t ho m e;em bedded syste m;W eb server;r em ote m on itor i n g
欢迎网上投稿 mae.chinaelc
欢迎订阅 欢迎评刊 欢迎刊登广告
41
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论