手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

基于XML/BAC net的家庭网关实现

王中明| 家庭网关,XML,BAC net协议,中间件| 2010-11-29
930 收藏
分享到: 
每日精选
热门推荐

【中心议题】

  • 设计并实现了一个基于XML/BAC net的家庭网关
  • 该系统具有自动维护、安全、实时、设备远程控制与信息管理等功能

【解决方案】

  • 信息采用XML文档存储
  • 信息处理采用XML技术
  • 通信平台为BAC net协议栈

0引言

XMLExtensible Markup Language)是一种中介标记语言,提供了将大量信息组织成为具有确定意义的整体结构的功能,这种具有确定意义的整体称为文档.XML文档是数据的容器,它并不关心数据的显示样式与布局效果,而是集中体现数据信息本身,使用XML可以使数据和表示分离1XML已成为家庭网关处理信息的新方法.BAC net作为开放的数据通信协议,在智能楼宇控制和家庭网络系统中得到了越来越广泛的应用,20031月被国际标准化组织采纳为正式的国际标准.不同厂家生产的控制设备,只要符合BAC net协议,就可以相互通信、协调工作,从而实现互操作2XML技术和BAC net协议结合起来应用到家庭网关中,将会简化信息的显示、处理,规范设备间的互操作.

1家庭网关的体系结构

基于XML/BACnet的家庭网关的特点是:家庭网关中上层信息采用已规范的XML文档记录,信息处理采用XML文档解析技术,通信平台为BAC net协议栈,它与其他数字设备间的通信报文为符合BAC net服务的数据报文.其体系结构如图1所示.虚线方框内的软件模块组合为家庭网络中间件.

 

家庭网络中的设备信息和联动策略储存在“设备信息XML文档”和“设备联动策略XML文档”中.与传统关系数据库相比较,XML文档具有良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特点,很适合家庭网络这个复杂的信息管理系统,同时它能将信息显示和处理有效结合起来,简化了家庭网关的实现和设备信息管理.

BAC net协议栈为通信平台3,实现了BAC net协议中的应用层、网络层和数据链路层,它可以为上层的软件模块提供33个标准的BACnet服务调用,为家庭数字设备与家庭网关之间提供了透明的信息通信,如果服务的目的设备是遵循BACnet协议的BAC net设备,则协议栈直接与设备传输数据,如果是非BAC net设备,则协议栈和这个设备间的通信需要网络代理进行协议转换.

服务处理器完成BAC net服务的处理、转发和生成,安全服务实现家庭网关的安全功能,设

备查找、设备注册器实现了网络自动维护功能.

设备服务接口XML模式规范了家庭网络中所有设备Web操作的调用接口.Web服务器与服务处理器间交换的数据符合设备服务接口XML模式,该接口不会因为下层通信平台的类型而发生变化,避免了Web服务器对通信平台的依赖性.

Web服务器实现了家庭网络的远程访问,而网关服务实现了网络连接共享、防火墙、DHCP服务器和NAT(Network Address Translation)等功能.

2家庭网关的功能设计

家庭网关在家庭网络系统中处于核心地位,它将家庭网络系统与互联网连接起来,通过家庭网关,用户可以查找、访问和控制家庭网络内部的设备.家庭网关实现如下几个基本功能:

1)自动维护功能.包括设备查找、设备状态更新等功能.家庭网络中设备会频繁地加入和退出网络,设备状态也会经常发生改变,设备信息XML文档中应及时反映这些信息.

2)安全与实时功能.家庭网络中会发生异常现象(如煤气泄漏、坏人闯入等),家庭网关可以采用联动机制来为用户提供安全,同时对这些联动控制提供实时功能.

3)设备控制与信息管理功能.包括设备的远程控制和本地控制,以及设备状态信息的相应改变和Web显示.

 

2.1自动维护的设计

BAC net协议定义的一些基本服务可以实现家庭网关的自动管理,如Who-IsWho-HasI-AmI-Have服务实现了设备间的信息查询,并定义了AtomicReadFile服务实现设备间的信息交换.Who-Has服务可以确定网络中是否含有指定设备对象标识符(DeviceID)的设备,设备使用I-Have服务响应Who-Has服务请求,通告自己为所指定设备对象标识符(DeviceID)的设备.Who-Is服务可以确定在同一个网络上的所有设备的设备对象标识符和网络地址,I-Am用于响应Who-Is服务请求,家庭网关接收到这个报文后,就能知道这个设备的设备标识符和网络地址.Atomic-ReadFile用服务可以实现设备间的信息交换,一个设备使用AtomicReadFile服务可实现对某个设备的某个文件进行一个“打开-读出-关闭”的操作,设备由设备对象标识符和设备网络地址指定,文件由文件标识符指定.

在家庭网络中,设备是动态变化的,主要体现在4方面:(1)新的设备加入网络;(2)设备退出网络;(3)设备更改位置,(4)设备本地信息发生变化.对于这4种情况,家庭网关必须能自动维护设备信息,使网关中存储的XML文档信息与实际情况相一致.

这里规定:当家庭网络设备启动时,会主动广播一个I-Am报文,当设备本地信息发生变化时,会主动广播一个I-Have报文.这样家庭网关就能更新这些信息.新设备加入的时序图如图2所示.家庭数字设备基本信息发生变化的时序图见图3.

 

2.2安全与实时性的设计

家庭网络系统安全功能主要由安全服务模块和设备联动XML文档来实现.家庭网络的安全设计是基于BACnet服务的,在BACnet协议中,如果设备的某个数据点出现异常,该设备一般使用有证实事件通告服务(ConfirmedEventNotification) 或无证实事件通告服务(UnconfirmedEventNotification)通知其他设备.有证实事件通告服务通告一个远程设备有一个事件发生,同时告知接收设备,通告服务器需要一个证实.如果不需要收到对于通告的证实,则使用无证实事件通告服务.

当服务处理器收到有证实的事件通告或无证实事件通告服务时,会把该服务转发给安全服务模块,安全服务模块根据设备联动XML文档产生联动动作.

同时由于BAC net服务具有优先级机制,服务处理器同时还实现了实时功能,它与BAC net

协议栈、Web服务、安全服务、设备查找之间的实时机制可以用图4所示数据流图表示.

BAC net服务有3种不同的优先级,BAC net协议栈根据服务的优先级将服务存放在不同的优先级队列中,服务处理器按从高优先级到低优先级的次序逐个从队列中取出服务报文,对其进行处理和分发,类型为通告类的服务转发给安全服务模块,Web控制的读写服务转发给Web服务器,查询服务和读写文件服务则转发给设备查找模块.

 

2.3设备控制与信息管理设计

在家庭网络系统内部,家庭网关与其他数字设备间的控制报文为BACnet服务报文,在BACnet协议中,定义了33个服务来实现设备间的互操作,上层应用只需调用BAC net协议栈的API函数来控制其他设备,报文的生成与解析由BACnet协议栈完成,这样实现了家庭网关与数字设备间的透明传输.

在家庭网关中,设备信息储存在XML文档中,采用DOM解析器和XSLT可以将这些XML文档和XSLT实例结合起来,实现XML文档的个性化显示和设备远程控制.

信息管理主要包括修改XML文档,使文档中的内容与家庭网络系统中设备的状态保持一致.在XML技术中,提供了多种方法来维护XML文档,如DOMSAX等.其中DOMXML文档转换为内存中的树形结构,使得程序员能够很容易地修改、查询数据;但它对内存要求很高,且运行速度较慢.由于家庭网关中XML文档相对较小,处理时间短,对内存要求不高,而且XML文档要频繁修改,所以采用DOM解析器.

3家庭网关的实现

家庭网关主板选购已有的Arbor公司Emcore-i411工控机产品,图5是整个主板芯片和接口布局图.它提供的接口有两个以太网接口,一个连接外部网络,一个连接内部以太网;两个串口,一个共本地配置使用,一个连接X-10网络;两个RS485接口,一个连接红外网控制系统,一个连接三表控制系统.

涉及到的软件主要有:Web服务器采用了Tomcat服务器,操作系统采用嵌入式Linux的分支uClinux,家庭网络中间件采用Java技术实现.

家庭网络信息采用XML文档储存,采用DOM技术管理这些文档.网络代理包括X-10网络代理、三表网络代理和红外网络代理.X-10网络代理完成X-10协议与BACnet协议的转化,实现了将所有家电设备连接到家庭网络中;三表网络代理完成了三表(煤气表,水表,电表)数据与BACnet协议的转化,实现了将所有三表设备连接到家庭网络中;红外网络代理完成了红外控制数据与BAC net协议的转化,实现了将红外网络连接到家庭网络中.

4结语

XMLBAC net引入到家庭网络中具有很强的现实意义和广阔的市场前景.随着BAC net在国内外的发展,一系列基于BAC net的家庭数字设备必将成为未来的发展趋势之一,其中也会带来基于BACnet对象和服务之上的XML信息管理的推广.笔者实现了一个基于XML/BACnet的家庭网关,通信平台为BAC net协议栈,它能直接与其他BAC net设备互联构成家庭网络系统.但还不能与其他平台如SOAPOSGi等互联,这是今后研究需要解决的主要问题之一.

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号