面向对象的蓝牙分布式智能家居网络
2004年7月B版
摘 要: 本文分析了分布式蓝牙家居网络特点,提出了建立面向对象的蓝牙分布式智能家居网络的解决方案,针对该方案建立了面向对象的蓝牙通信模型,并对其在智能家居网络中的应用进行了分析,展望了面向对象的蓝牙分布式智能家居网络的发展前景。
关键词: 蓝牙技术;智能家居;分布式控制;面向对象;协议;模型
引言
随着通信技术、网络技术、控制技术和人工智能技术的发展,人们对家居环境的舒适程度和智能化程度要求也越来越高,智能网络不可阻挡的进入了家庭。近几年,随着无线网络研究在全世界范围内的兴起,对无线智能家居网络的研究已经成为新的研究热点。智能家居网络是指在家庭内部通过一定的传输介质将各种电气设备和电气子系统连接起来,采用统一的通信协议,对内实现资源共享,对外通过网关与外部网互连进行信息交换的局域网。
蓝牙技术是由蓝牙SIG(Special Interest Group)联合制定的近距离无线通信技术标准,其目的是实现最高数据传输速率1Mb/s(有效数据传输速率是721kb/s)、最大传输距离为10米(增加功率后可传输100米)的无线通信。1998年5月,爱立信、诺基亚、东芝、IBM和英特尔等五家著名厂商在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术(Bluetooth),其宗旨是提供一种短距离、低成本的无线传输应用技术。蓝牙技术具有以下几个特点:工作于2.4GHz的ISM(工业、科学、医学频段)频段,无需申请频率许可证;采用1600hop/s的快速跳频技术;采用正向纠错编码(FEC)技术;采用FM调制方式,设备简单;支持点到点、点到多点通信;协议体系完备,充分支持现有高层协议;设备体积小,便于携带或移动,成本低廉。基于蓝牙技术的家居智能网络是用近距离的无线通信技术取代线缆,构建智能化的无线家居网络。本文针对分布式蓝牙智能家居网络特点,研究了面向对象的信息处理技术应用于分布式蓝牙智能家居网络技术问题,构建了蓝牙通信控制器的面向对象的通信模型,并对该模型进行了应用研究。
蓝牙家居网络使蓝牙网络家电、蓝牙通信控制器和其它嵌入蓝牙模块的设备,利用无线方式连在一起,使之相互通信;同时,利用具有路由功能的蓝牙家庭网关和外部网络相连,构成家庭式网络系统或家庭局域网,提供集中的或异地的音频、视频通信、计算机控制和管理等,使信息在家庭内以及与外部之间充分流通和共享。蓝牙分布式智能家居网络是沿用工业控制方案,将控制功能下放到相当于工业控制中下位机的蓝牙通信控制器上,实现分散控制、集中管理的模式,其体系结构如图1所示。
蓝牙家庭网关:对下连接家庭蓝牙通信控制器,并通过线缆和局域网、电话网连接,将家居网信息通过INTERNET和电话上传管理中心和户主。
蓝牙通信控制器:与蓝牙设备通信,监控设备状态,并与其它蓝牙通信控制器交流协调,对其下位设备进行控制。执行网关发送的命令,并将蓝牙设备相关信息上传。
蓝牙设备:蓝牙设备是指内嵌蓝牙模块的家居设备,如蓝牙空调等。它们和蓝牙通信控制器进行信息交流并接受其控制,也可以和其它蓝牙设备通信。
尽管分布式系统有很多优点,但是在蓝牙分布式智能家居网络中由于蓝牙技术和信息处理技术的局限,其缺点也是不可忽视的。其表现如下:由于每台蓝牙设备最多同时只能和7台设备保持连接,而蓝牙通信控制器需要和较多的设备交互,如果想和更多的设备协调,需要工作模式的转换,影响处理效率,甚至导致通信失败;由于同一设备可能接受很多信息,如果微处理器对信息采用排队处理,时间延迟将增加;在蓝牙分布式智能家居网络中,蓝牙通信控制器之间、蓝牙通信控制器和蓝牙设备之间、蓝牙设备都有信息传递,造成串扰,同时通信路数越多,串扰越大,通信距离和传输速率都随之降低。蓝牙分布式智能家居网络系统的通信机制和信息处理机制是影响系统性能的重要因素,因此,本文提出将面向对象技术应用于蓝牙分布式智能家居网络系统方案,有助于解决上述问题,提高系统效能。
面向对象技术
面向对象技术是一种面向数据流,并集模块化、数据抽象、信息隐藏和消息传递等诸多优点于一体,既适合于系统分析又适合于程序设计的工程技术。近几年来,面向对象技术无论是在理论上还是实践上都在飞速地发展。面向对象技术中最重要的就是“对象”的概念。这种“对象”具有一定的属性和方法,这里的属性指对象本身的各种特性参数。一个具体的对象可以有许多的属性和方法,面向对象技术的重要特点就是对象的封装性,对于外界而言,并不需要知道对象有哪些属性,也不需要知道对象本身的方法是如何实现的,而只需要调用对象所提供的方法来完成特定的功能。面向对象技术有以下的优点:维护简单,模块化是面向对象编程中的一个特征,实体被表示为类和同一名字空间中具有相同功能的类,可以在名字空间中添加一个类而不会影响该名字空间的其它成员;可扩充性,面向对象编程从本质上支持扩充性,如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类;代码重用,由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就比较简单了。
蓝牙分布式智能家居网络中,信息交互和控制中心是蓝牙通信控制器。将面向对象技术应用于蓝牙分布式智能家居网络,就是在设计蓝牙通信控制器时,将程序中的对象与外部的应用对象实体相对应,通过建立程序对象与外部世界对象之间的对应关系以及程序中的函数与外部世界的过程之间的对应关系,可以为开发者提供方便的开发途径。面向对象技术与分布式家居网络系统的结合点就是端口对象通信模型。
在端口对象通信机制里,其通信的基本单位是端口对象PO(Port Object)。一个典型的PO对象如图2所示。
端口是端口对象之间信息交流的通道,按其功能可以分为三种类型: 即变量输入输出端口,它是端口对象间交换操作所需数据信息的接口;参数输入输出端口,它是端口对象间交换参数配置的接口,是系统动态重构的基础。消息输入输出端口,它是一个特殊的端口,是端口对象之间相互调用有关操作的接口。端口对象在本质上是一个消息处理机,它对由消息输入端口输入的消息作出响应,即调用相关操作,同时又可通过消息输出端口输出相应的消息以调用其它端口对象的操作。一个端口对象有多个内部状态和操作,其操作的调用遵循消息驱动的原则。但相对于其它对象而言,只有其外部端口是可见的。每个端口对象均属于某一个特定的端口对象类,该类中所有对象均具有相同的内部运行框架。端口对象支持继承机制,即子类可以继承父类的所有属性和操作,同时还可以有自己特有的属性和操作。
在蓝牙分布式智能家居网络中,蓝牙通信控制器是具有蓝牙功能的处理器,它采用单任务多线程并发执行模型,即单个应用程序可以划分为几个独立的任务,每个处理器上分配一个任务,但每个任务可以按照需要创建多个线程,分布在多个处理器上的多个线程相互作用,共同完成某一应用。线程之间通过共享对象进行通信。共享对象可以被任意蓝牙通信控制器上的线程访问,对该对象的访问(不包括对该对象的本地访问)称为模块间连接;而模型中的局部对象只能由本地蓝牙通信控制器上的线程访问,对局部对象的访问(包括对共享对象的本地访问)称为模块内连接。只有发生模块间连接时,蓝牙通信控制器之间才相互通信,从而减小了空中通信量。对于模块内连接,由于各模块支持并行处理,大大增加了处理效率。
蓝牙通信控制器是蓝牙分布式智能家居网络的核心,针对上述端口对象通信模型,通过蓝牙通信控制器来实现通信。蓝牙通信控制器之间通信模型如图3所示。
面向对象的蓝牙通信控制器主要由3层组成:硬件层,协议层,应用层。硬件层主要完成一些依赖于硬件的功能,包括无线信号收发、编解码等功能。端口对象通信机制将系统的硬件细节与上层的核心部分相隔离,当系统底层的硬件发生变化的时候,只需更改底层的硬件驱动,增强了系统的可移植性。协议层遵循蓝牙核心协议和蓝牙分布式智能家居网络所对应的协议子集(包括OBEX等)参考模型标准。应用层是实现分布式的关键。基于端口对象的通信机制在该层实现。
应用层主要由端口对象管理器、对象列表、过程接口、本地过程调用和远程过程调用模块组成。其结构如图4所示。端口对象管理器的任务是完成对端口对象的创建、删除、定位等管理工作,并为系统提供名字服务。过程接口是用户过程与应用层的接口,无论用户的过程调用是远程的或是本地的,对于用户来说是相同的。对调用的区分由过程接口来完成。它首先访问对象列表判断调用的类型,再将该过程调用送到不同的过程调用模块去处理。本地过程调用模块处理模块内连接,它直接将本地调用转由本地执行并返回结果;只有那些模块间连接才由远程调用模块负责。远程调用模块负责将消息包装,与协议层进行通信。
在蓝牙通信控制器中,每个端口对象都有自己的名字和身份识别码(ID号),通过名字或ID都可以查询到该端口对象的相应信息。在系统初始化的时候,在每个蓝牙通信控制器上都由端口对象管理器建立端口对象列表,该列表包括局部对象列表和共享对象列表。对象列表保存了所有对象的名字和ID号的映射关系及其状态。对象的状态由系统动态更新。为了维护数据的一致性,在共享对象创建、删除和更新时,蓝牙通信控制器必须广播该消息,以使共享对象表保持一致。在蓝牙通信控制器中,无论是本地对象还是远程对象,都通过统一的过程接口来访问。过程接口通过查找对象表可以得到对象的ID号,通过ID号可以定位该对象的位置。若该对象位于本地,则过程接口将该进程传至本地过程调用模块,由该模块直接调用相应过程,并将结果通过过程接口返回用户调用。若该对象为远程对象,过程接口将该进程传至远程过程调用模块,由远程过程调用模块将相关参数包装,发送到远程蓝牙通信控制器,然后挂起等待远程蓝牙通信控制器的应答;远程蓝牙通信控制器在接收到请求后,通过协议层将消息上传至位于远程蓝牙通信控制器内的远程过程调用模块,将消息解包后,由远程模块的过程接口调用位于远程模块上的本地过程,处理完成后再将结果打包后回传给请求结点。请求结点在收到消息后,返回给调用进程就可以结束挂起状态,继续执行了。在运行过程中,对象的状态需动态更新,这样虽然会增加额外的通信开销,但是在共享对象状态需要频繁访问时,系统只需访问本地对象列表中的共享对象状态即可,无需发起通信过程。
结语
自上世纪末蓝牙技术面世以来,蓝牙技术的研究和蓝牙产品的开发引起了全世界的关注。将蓝牙技术应用于智能家居网络的研究也日渐兴起,由于家居设备安装的随机性,分布式蓝牙家居网络解决了蓝牙家居设备上网的“即插即用”问题。然而,由于蓝牙技术和分布式处理的一些固有特性,影响了分布式蓝牙智能家居网络的数据传输、处理速率和安全性。本文针对这些问题,将面向对象技术应用于分布式蓝牙智能家居网络的核心—蓝牙通信控制器,建立了通信及处理机制模型,分析表明该方案解决了分布式蓝牙智能家居网络的处理速率和安全问题,这将有助于推进分布式蓝牙智能家居网络的进一步发展。■
参考文献
1. 金永贤,周家庆,'基于蓝牙的无线校园网接入模式研究',计算机科学, No.8,2003.
2. 袁明等,'面向对象技术在嵌入式开发中的应用',计算机应用研究,No.2,2003.
3. Stephen Mak, 'A Model of Information Management for Construction Using Information Technology', Automation in Construction, No.10,2001.
4. 张利华等,'基于蓝牙技术的家庭网络',电子技术,No.7,2002.
5. Chiara Petrioli, Configuring BlueStars: 'Multihop Scatternet Formation for Bluetooth Networks.' IEEE Transactions on Computers, No.6,2003.
6. 谢于俊,杨士元,'分布式智能家庭网络系统的研究',计算机工程,No.1,2002.
7. T.Salonidis, P.Bhagwat, L.Tassiulas, and R.LaMaire,'Distributed Topology Construction of Bluetooth Personal Area Networks',Proc IEEE Infocom,Apr,2001.

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码