面向對象的藍牙分布式智能家居網絡
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.
評論