0 概述
家庭网络接入Internet目前主要通过PC机接入Internet和采用嵌入式产品通过以太网控制器接入Internet两种方式。前者优点是明显的,如灵活性、大量现有的可用的软件环境和高级的用户接口及软件工具。但是对于智能家庭网络来说,网络的使用者希望能方便快捷地获得服务,所需熟悉的操作要尽可能地少,并且在任何地方都能对家中设备进行监控;而PC不能随意移动,对设备的控制就会受到局限。因此,目前在智能家庭网络中,网关产品的设计主要采用嵌入式系统。
一个智能家庭网关可以看成是一个信息处理系统,组成系统的各单元就是连接在网络各节点的设备。控制平台一方面辅助不具备信息化条件的设备实现信息化,即提供信息处理的能力;另一方面又提供统一的信息交换接口及控制规则,从而实现从内部家庭网络到Internet信息的互通。目前实现信息管理和协议转换的方式有两种:一种是:浏览器+WEB Server+CGI技术;另一种是:监控软件十应用服务器+现场总线驱动技术[1]。以浏览器+WEB Server+CGI为主的技术手段只能获取单个家庭网络中的节点信息。而以监控软件+应用服务器十现场总线驱动为主的技术手段却可以同时获取多个家庭网络的节点信息,有助于实现多个家庭网络的同类节点的实时监控[2](如上网流量监控)。近几年来国内许多高校和一些知名企业所研制的智能家庭网络系统的协议转换主要以:浏览器+WEB Server+CGI技术为主,有应用范围的局限性。鉴于现有网关产品的种种缺陷,本文主要致力于:以监控软件+应用服务器+现场总线驱动技术为核心技术,而浏览器+WEB Server+CGI为辅助技术设计并实现家庭网关。
1 总体设计分析
1.1智能家庭网关的设计要求
家庭网关类似于一个庞大的计算机系统,所有的家庭设备都连接在上面,受它的集中控制。总体而言,网关要起到三个功能:
1)Internet接入功能,包括路由、NAT(地址转换)等等;
2)家庭网络中各种不同通信协议之间的转换,以及家庭网络系统与TCP/IP协议之间的转换;
3)运行家电管理软件,将使用不同通信协议的家用电器都接入到家庭网络中,并统一管理起来;
可以看出,网关是家庭网络中的物理上和逻辑上的核心。
1.2 家庭网关网络控制模型分析
根据系统的体系结构将家庭网关抽象为站点[3],将家庭内部的被控对象(智能电冰箱、智能微波炉等等)抽象为节点。其网络控制模型如图1所示。
站点:站点是通过Internet访问家庭内部网络的驿站,它可以将来自互联网络的各种信息通过协议转换的方法传递到家庭内部网络,同时提取家庭内部网络的各种信息增加TCP/IP协议报头、报尾使之可以在广域网甚至Internet上发布并向远端监控机传递,使远端监控机可以对其控制,而具备此项功能的站点我们通常称其为家庭网关。
节点:节点负责对单个家用电器实施控制使其按照使用者的要求正常运行,同时以特定的通讯协议将本地信息传送到家庭网关或者接收来自家庭网关的指令以改变现在的运行状况。所以可以把它理解为以单片机为核心的智能家用电器,由于不同的家用电器要连接到同一个网关上,要使它们相互连接又互不影响,采用现场总线是个很好的办法,所以节点还应该支持现场总线协议。
2 硬件结构
根据前面的分析,可以确定硬件系统应具备的功能特征,图2给出了智能家庭网关的硬件结构。
为保证家庭网关的实用性和可扩展性,网关平台需要选用高性能的微处理器,廉价的8位处理器己经无法满足设计的要求,考虑到以后系统的升级以及32位处理器的价格不断下降,设计中决定采用32位的MPU(S3C2410)[4]作为整个系统的核心。
由于网关要实现服务器的功能,因而需要文件系统的支持,同时需要操作系统来支持多任务,这些都决定了硬件平台中需要有扩展的SDRAM和Flash(或者EEPROM )等存储芯片。Flash中存储操作系统和文件系统,系统启动后将复制到SDRAM中运行。通用I/O接口的设计,用于完成外部信号的接入。为完成与外部信号线的连接,MPU需要支持一定数量的通用I/O口。
家庭网关要实现与Internet的连接,需要有相应的连接模块。Ethernet模块就是为了完成与外部网络的物理连接。
同时,家庭网关还要连接内部轻量级网络[5] (家庭网络中一般使用485. 232等轻量级网络互联)。一般这些网络都可以通过UART口与网关相连。而家庭网关的一些控制或调试信息也需要通过UART口输出到宿主机的虚拟平台。
JTAG接口用于实现MPU中程序的实时监控,绝大多数的32位MCU都支持JTAG格式的在线调试功能。
X10系统[6]与网关的接口是整个家庭网络控制方面至关重要的一个接口。网关通过一个普通I/0口进行过零点信号检测,通过另一个普通I/O口向电力线载波系统发出控制命令,最后达到控制大多数家电的目的(照明,空调,热水器等等)。目前所实现的控制是单向的,由于控制命令数据量少,而受控电器的状态数据可以根据控制命令进行判断,所以这种控制在目前是可以满足使用要求的。
3 软件设计
家庭网关是为家庭智能网络服务的,由于家庭网络本身的复杂性(网络种类多,终端种类多等),嵌入式网关的软件设计也要考虑诸多因素。图3是软件设计体系结构。
该系统是一个三层系统,不同层次协同工作,各层之间通过不同的协议进行信息交互。为了适应复杂的网络环境,该系统采用了以监控软件+应用服务器+现场总线为主,以浏览器+WEB Server+CGI为辅的双技术体系。该3层系统中客户子系统用来运行提供用户接口和前端处理的应用程序(即浏览器和监控软件)。中间层子系统的宿主既是家庭网关,它包括应用服务器和Web服务器用于发布信息和数据及指令的传达,另外它还包含数据库服务器提供可供客户机使用的各种资源和服务。现场控制系统是最终执行控制指令、实现控制目标和性能指标的执行机构。
在本文的三层软件体系结构中,发出数据库查询的应用可以驻留在数据库以外的任何机器上,客户子系统不论处于何地,只要能够通过网络与数据库服务器进行通讯,就可以发出查询并检索结果。如果在家庭网络内部进行查询,仅仅从本地数据库中进行检索并返回结果即可。如果在家庭网络外部进行查询那么必须通过虚拟数据库,找到目标站点及节点,由虚拟数据库发送传送参数指令,现场控制系统接到指令后进行检索,并返回查询结果给虚拟数据库最后显示在用户监控界面中。当用户发出控制指令时,无论是在家庭网络内部还是外部,控制指令都可以通过不同的网络协议可靠地到达被控对象并完成相应的操作,最后把执行结果(成功或者失败)返回给指令的发出者。在一般的C/S概念中,客户端是廉价的个人PC,服务器是价格昂贵、功能强大的专用Server。但对于本系统来讲,嵌入式家庭网关是应用服务器和Web服务器的宿主,而嵌入式系统本身资源有限,所以在事物处理时不应将过多的任务分配给服务器,避免因服务器负担过重而使整个网络性能下降,要充分发挥客户端计算机的作用,合理分配网络资源,提高数据处理的效率。
4 结语
本文首次将监控软件+应用服务器+现场总线以及浏览器+WEB Server+CGI两种技术融合到智能家庭网关产品中,较好的解决了传统产品的缺陷。通过本系统在实际家庭智能网络中的运行表明,该系统达到了设计初期的各项要求,能够通过Internet实时控制系统中的智能家电并精确的获取家电状态信息。相信在未来的信息家电、智能小区[7]等领域嵌入式智能家庭网关将得到广泛的应用。