- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于OSGI的智能家庭系统的设计与实现
摘要:为了解决普适环境下智能家庭各类设备组网困难的问题,本系统采用OSGi(Open Service Gateway INItiative)服务框架和LonWorks现场总线技术,利用低压电力线载波手段来设计和实现智能家庭系统。利用上述方法可以极大地实现不同标准设备的组网,并且可以实现对智能家庭设备管理的灵活性和便捷性。
智能家庭是指那些采用信息技术来控制电器设备,并能够与外界进行通信联系的住宅,提供给住户更好的家庭生活体验,屏蔽复杂的实现技术和模糊的用户接口,系统可靠且安全,同时保护用户的隐私。
在智能家庭系统中存在各类设备服务,这些设备服务使用的接口、网络协议也各不统一。本文使用面向智能家庭系统的OSGI中间件技术,它对智能家庭系统中大量联网的设备、服务提供发现、调度、管理,屏蔽各种设备服务的异构性,同时也对用户的情境上下文的推理计算提供支撑。采用OSGi作为基本框架,以智能服务网关作为构建智能家庭系统的核心部件。该部件除了提供统一的Internet接口、协议转化的功能外,还能对智能家庭系统的设备进行管理,同时具有上下文推理能力。
1 智能家庭系统架构
在家庭中,各种家电、多媒体系统、通信设备、保安设施等都通过计算机、网络和传感器连接在一起,它们可以通过家中的一个“通用远程控制设备”实现统一、便捷的控制。但是,嵌入众多智能设备,还不足以形成智能家庭,还需要将这些设备集成到一个统一的框架中,使其互联互通并且可以对其进行方便的管理。于是,将设备、服务映射到语义空间对智能家庭系统的构建将大有帮助。同时利用上下文感知技术是提高系统智能性的重要途径,使得人们从繁重的工作中解放出来。智能家庭系统架构如图1所示。
智能家庭服务网关的概念,对家庭网关和家庭内部网络的标准化,是智能家庭成功组建应用的关键。目前比较有影响的服务网关是开放服务网关标准组织OSGi,该规范兼容多种既有标准的特性为家庭网关的实现提供了保障,在此基础上开发的家庭服务网关支持家庭内部所有信息家电和设备的联网;而其动态自适应的机制,能自主地将家庭内部不同电气设备、通信设备、计算机组合成一个动态单一的普适的家庭网络系统。普适计算的研究体系自底向上主要包括普适计算设备、普适网络、系统软件和人机交互等多个层次,同时由于研究的侧重点和目标不同,形成了感知上下文计算、智能空间、可穿戴计算等多个热门研究领域。在智能家庭内部,手持设备、PC或者家用电器通过有线或者无线的方式连接到网络,从而形成了一个无缝、交互和普适计算的环境。
同时使用上下文感知计算技术,来实现系统的智能化程度。上下文信息中包含着丰富的信息,有利于系统对用户注意以外的任务进行智能化处理,对于系统而言,不仅要知道静态的信息还要知道动态的信息。
本系统包括三部分:
1)普适计算子系统(Pervasivc computing subsystem)
①Context Server是上下文服务中心,负责系统中上下文信息的管理和发布/订阅到匹配;
②Sensor是传感器,负责面向用户方各类数据的实时采集;
③PDA是手持电脑,可以通过以太网(Ethemet)对家庭内部电器进行控制;
2)现场总线控制子系统(Lonworks control subsystem)
①PLC是电力线载波模块,它可以通过现有的电力线进行数据的传输和交换,负责信息的转发;
②Adapter智能电力线载波适配器,负责将家用电器实时信息传递给现场总线,并且接收从上位机传递的控制信息;
③Lonworks gateway是现场总线网关,解决现场控制器之间的集成。
④scryice是将原始上下文进行组装或者推理出新服务。
3)OSGI服务网关(OSGI gataway)
其主要的功能是完成相对高速的计算机网络(Ethernet)和相对低速的现场总线网络(LonWorks)之间的互联。
2 LonWorks网络的设计与实现
本系统通过控制适配器挂接到普通家庭中的220 V电力线上,将温度、湿度、光强、压力、红外等各种传感器以及各种家用电器接入OSGi服务网关,形成一个以LonWorks现场总线为平台的控制和监测网络。而采用现场总线结构组建监控网络可方便地去除和增加控制节点,而且对电器设备的控制分散到了各个智能控制节点中,实现了真正意义上的集中管理和分散控制。使用电力线网络,不需要另外再铺设通信线路,这不仅给系统通信网络建设带来了很大的方便,克服了无线通信的弊端,如成本高、电磁污染等。LonWorks网络体系结构如图2所示。
LonWorks中心控制器通过电力线连接开关适配器、功率调节适配器、各种传感器适配器等。开关适配器子系统通过电力线收到中心控制器的控制命令,控制连接家用电器的电源通断。功率调节适配器子系统从电力线上接收来自中心控制器的控制命令,调节输出的功率,进而控制连接的各种用电设备的运行状态。中心控制器内嵌电力线载波芯片使用现代DSP技术,可以完成在高干扰、高噪声的恶劣电力线环境下提供可靠的数据传输。其兼容ANSI/EIA709.2和CENEIECEN50065-1:2001标准内嵌的协议,与此同时也与ANSI/ELA709.1、LonTalk控制网络协议兼容。
3 服务网关的实现
OSGi服务框架利用Java的平台独立和动态代码装载特性,可以更容易地开发和动态配置小内存设备的应用程序。它运行于Java虚拟机上,而各种各样的应用服务则运行于具体的OSGi服务框架软件之上。
根据图3的层次结构,需要解决3方面问题:
1)在JVM之上实现OSGi服务框架;
2)对于每个具体的设备,提供将设备服务封装成Bundle并发布的技术;
3)设备的灵活接入。
3.1 OSGi服务框架——equinox
利用eclipse的equinox实现的OSGi框架,它安装在JVM之上,是与OSGi release 3兼容的OSGi服务框架的一个实现。它提供了各种服务的执行环境,并提供一组核心服务集,负责所有服务的生命期管理,注册等功能。
3.2 设备服务的封装——Bundle的设计
OSGi兼容的具体设备通过各种本地总线(如Ethenet,Bluetooth,Lonworks,无线等)接入家庭网关,具有不同的硬件特性,只有将设备相关的服务打包成Bundle后,由服务提供商发布,家庭网关从服务提供商下载、安装并注册后,才能使用设备相应的服务,从而满足灵活接入的要求。
3.3 设备的灵活接入
服务框架中的设备管理器模块负责对接入的设备进行管理,接受服务的注册、更改和注销,这个过程对用户是透明的:设备管理器检测到某些设备服务被注册到服务网关后,利用驱动定位器服务或驱动选择器服务查找与这些服务最匹配的驱动服务,建立关联关系。如果所需的驱动服务还不存在,设备管理器会自动查找、安装并启动驱动服务对应的Bundle。若找不到,则该设备服务就处于闲置(idle)状态。
在这里,设备服务反映了设备的某一方面特性,一般可以映射到某个硬件设备,也可以体现设备在不同的抽象层上的特性,提供某个功能。它要么从属于某个特定的设备类别,要么就是通用型的。设备类别给出了这类服务必须实现的接口,即与设备服务通信的方法,以允许基于相同底层技术(如Lonworks,IEEE1394,Jini)的Bundle间进行互操作。驱动服务负责完成实际的底层通信,控制硬件设备。因此,对每个具体的设备,至少要有两个Bundle:DeviceBundle和Driver Bundle,对于同一类的设备可以连接到相同的Driver Bundle上。
4 设备封装——Bundle的具体实现
在OSGI平台上,服务是由一个iava Interface来定义的。Bundle可以实现这个接口并且把服务注册到服务注册表中去,并且OSGI框架管理Bundle的安装和更新,同时管理Bundle和服务直接的关系。
在这里,设备服务的Bundle设计流程如下:
1)编写服务接口及对应的Java类实现;
2)实现相应的BundleAetivator和ServiceListener接口。这是两个必须实现的特殊接口。其中BundleActivator接口包含start和stop两个方法,start方法注册服务和资源,而stop取消注册,start类似于普通Java类中的public main函数;
3)编写一个manifest文件描述该JAR文件的内容;
4)将上述的所有接口、Java类、manifest文件以及其他资源文件打包成一个JAR文件;
5)在需要时将该Bundle安装到OSGi服务网关,完成注册。如果要获取由其他Bundle提供的某个服务,可以从该Bundle对应的Bundle Con-text对象调用getServieeReference方法来获得特定服务的引用,然后就可以以该引用为参数调用getService方法得到服务对象。
在此基础上开发了多个场景应用程序,下面以室内光强亮度环境调节应用和红外无线自动报警为例,说明相应Bundle的开发方法。
4.1 室内光强亮度环境调节
该应用程序的功能是通过光强传感器获得环境信息,依此来调节室内照明设备的运行状态,以达到最佳环境。
1)照度传感器设备Bundle
此包主要完成对照度传感器各项属性的定义,包括:
①所属设备类型为Lonworks;
②设备名称描述为Lonworks_Illumination_Sensor;
③设备ID号标识这个设备的唯一性,满足关于设备的ID号的统一定义格式;
④设备的版本信息等;
⑤设备位置信息描述,具体描述此照度传感器的位置,是厨房还是客厅。
2)光强传感器驱动Bundle 此包主要完成光强值的定时采集,并传输到OSGi服务网关。
3)照明设备Bundle 此包主要完成对照明设备各项属性的定义,包括:
①所属设备类型为Lonworks;
②设备名称描述为Lonworks_Ligbt;
③设备ID号标识这个设备的唯一性;
④设备的版本信息等;
⑤设备位置信息描述,具体描述此照明设备的位置。
4)照明设备驱动Bundle 此包主要完成对照明设备的开关控制、亮度调节。
5)推理Bundle 此包主要完成照度值到照明设备控制方式的转换。比如,当照度值降低时,将亮度调高;当照度值继续降低时,开启更多的照明设备。
4.2 红外无线自动报警
该应用程序的功能是通过收集红外光栅传感器的数据,来确定是否有不明人员进入,并且进行报警。
1)红外光栅传感器设备Bundle 此包主要完成对红外光栅传感传感器各项属性的定义,包括:
①所属设备类型为Lonworks;
②设备名称描述为Lonworks_Echelette grating_Sensor;
③设备ID号标识这个设备的唯一性,满足关于设备的ID号的统一定义格式;
④设备的版本信息等;
⑤设备位置信息描述,具体描述此照度传感器的位置,是围墙、正门还是窗户。
2)红外光栅传感器驱动Bundle 此包主要完成红外光栅传感器数据的定时采集,并传输到OSGi服务网关。
3)报警设备Bundle 此包主要完成对照明设备各项属性的定义,包括:
①所属设备类型为Lonworks;
②设备名称描述为Lonworks_Eechelette grating Light;
③设备ID号标识这个设备的唯一性,满足关于设备的ID号的统一定义格式;
④设备的版本信息等;
⑤设备位置信息描述,具体描述此报警设备的位置(如大门报警或者围墙报警,也可设置为集中报警)。
4)报警设备驱动Bundle 此包主要完成对报警单元的开关控制、声音大小调节等。
5)推理Bundle 此包主要完成红外光栅传感器数据到报警处理过程的转换,如有可疑人员通过非法手段进入室内时,打开报警灯、报警器提醒屋主或者恐吓非法入侵者;若是误报警,则迅速重启,使各系统恢复到监测状态。
5 总结
随着家庭信息化水平的不断提高,人们对智能家庭系统中接入电器设备控制需求趋于多样性,这使得接入电器设备的个体独立性和整体的一致性等问题日益突出。本文应用OSGi服务框架,提出了一种普适计算环境下的智能家庭系统解决方案,为用户提供了一致的多样化服务,屏蔽了多种接入技术的差异。