《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > CEBus家庭網絡管理器的設計與實現(xiàn)
CEBus家庭網絡管理器的設計與實現(xiàn)
王修暉 吳明光
摘要: 在介紹了家庭網絡(HomeNet)發(fā)展概況以及消費總線(Consumer Electronic Bus)和公共應用語言(Common Application Language-)的基礎上,詳細描述了基于CEBus的家庭網絡管理器的硬件接口和軟件設計與實現(xiàn),重點在于管理器的軟件設計。
Abstract:
Key words :

    摘  要: 在介紹了家庭網絡(HomeNet)發(fā)展概況以及消費總線(Consumer Electronic Bus)和公共應用語言(Common Application Language-)的基礎上,詳細描述了基于CEBus的家庭網絡管理器的硬件接口和軟件設計與實現(xiàn),重點在于管理器的軟件設計。 

    關鍵詞: CEBus  家庭網絡  用戶界面  個性化定制

 1 家庭網絡概況 

    國外家庭網絡(總線)的概念始于20世紀70年代。開始時各公司自定標準,各自為政,不同公司的產品互不兼容,導致市場的開拓和技術的進步極為緩慢。近十年來,遵循統(tǒng)一標準已成為業(yè)內的共識。目前,國際上公認的有影響的家庭網絡標準有:美國標準X10、日本標準家庭總線(HomeBus)、歐洲標準安裝總線(EIB)、澳洲奇勝(Clipsal)公司的C-BUS等,它們都各有側重,有的總線僅僅限于燈光控制。1984年,美國電氣工業(yè)協(xié)會的消費電器小組開始著手制定家電互聯(lián)規(guī)范,并于1992年發(fā)布CEBus規(guī)范(EIA600),即消費總線[1][2]。1994年,成立了消費工業(yè)委員會,專門負責消費總線的有關事宜。CEBus得到了IBM、Honeywell、Microsoft、Intellon、Demosys、Lucent、Philips、Siements、XLSynergy等國際著名公司的支持。1999年2月,Demosys公司在美國加州展示基于CEBus的“Demosys墻”,以展示CEBus即插即用的互操作性能。來自6個不同公司的幾十個產品安裝在展示墻上,通過電源線通訊,這些產品構成協(xié)調一致的智能系統(tǒng),每個產品都能夠自動尋找到它應該控制的相應產品。由于遵循了統(tǒng)一的CEBus標準,不同廠家的產品達到了互聯(lián)互操、即插即用的完美境界,最大限度地滿足了家庭網絡用戶對易用性的苛刻要求。 

    國內家庭網絡尚處于啟蒙狀態(tài):方正的卓越Z系列、海信的海景二代、海爾的e家庭和網絡家電、TCL的家庭信息顯示器(HID)以及初露端倪的聯(lián)想.home等等。這些有益的嘗試,盡管為用戶描述了一幅智能家居的美好前景,但是由于缺乏統(tǒng)一的標準、規(guī)范和接口協(xié)議,在更多意義上還只能算是一種概念性產品。 

2 CEBus和CAL簡介 

    消費總線(CEBus)是美國電氣工業(yè)協(xié)會(EIA)的消費電子小組制定的家用消費產品的網絡通訊標準,它描述了一種家庭電子產品之間的通訊方法,通過CEBUS協(xié)議可以實現(xiàn)家庭網絡。CEBus采用了簡化的OSI模型,分為物理層、數(shù)據(jù)鏈路層、網絡層和應用層。CEBus是一個完全面向報文分組(packet)的對等網絡,使用載波偵聽多重訪問和沖突檢測與沖突分辨協(xié)議(CSMA/CDCR)。 

    CEBus在應用層定義了一種面向對象的、嚴格的設備描述語言CAL(Common Application Language EIA721),簡稱公共應用語言[1],其內容涵蓋了家庭中可能擁有的家電。公共應用語言采用了面向對象的方法,把任意一個家電設備按照功能分解成幾個預定義的對象模型。在面向對象的編程語言中,一個對象由數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)組成。在消費總線中,這些對象也由數(shù)據(jù)(稱為實例變量)和操作(稱為方法)組成,不同的設備可以采用相同的對象,用相同的方法操作,但是控制結果隨設備的不同而有不同的意義。 

    CAL用一種層次關系描述設備的功能。如圖1所示。一個設備可以分成幾個上下文,它們代表了這個設備按照功能分的子系統(tǒng)。上下文又被分為幾個對象,每個對象代表了上下文中的一種控制功能,對象分為若干類,每一類代表一種共有的功能。CAL預定義了27個對象模型[1]。例如,類號為07的對象是模擬控制對象(Analog Control Object),它可以用來代表音量控制、溫度調節(jié)或調光器。一個對象的具體功能完全由他所屬的上下文決定。每個對象包含一定數(shù)量的實例變量。每個對象都能夠解釋執(zhí)行方法,更新實例變量,并完成實際操作。 

 

 

3 基于CEBus的家庭網絡總體結構 

    由浙江大學系統(tǒng)工程研究所和合作伙伴聯(lián)合開發(fā)的基于CEBus的家庭網絡結構框架如圖2所示。 

 

 

    從網絡結構不難發(fā)現(xiàn),獨立的、分散的、單體測量裝置是構成CEBus分布式網絡的節(jié)點,因此CEBus家庭網絡是一種典型的對等(peer to peer)模型結構。CEBus摒棄了傳統(tǒng)的控制中心的概念,任一網絡節(jié)點的失效都不會引起系統(tǒng)的癱瘓,換言之,系統(tǒng)具備高度自治的優(yōu)良特性。 

    用戶對設備有多種操作方式:通過計算機上的家庭網絡管理器實現(xiàn)對所有設備的操作和設定;用自定義控制面板上按鈕的功能,實現(xiàn)對其它設備的控制;用PDA等手持設備控制設備;用語音控制模塊實現(xiàn)語音控制;可以在遠程與嵌入式的家庭網關連接,從而實現(xiàn)遠程操作。但最方便、最直觀地實現(xiàn)所有家電的監(jiān)視和控制,還是要使用可定制界面的家庭網絡管理器。 

4 家庭網絡管理器的硬件接口 

    家庭網絡管理器是通過一個CEBus適配器和家庭網絡實現(xiàn)數(shù)據(jù)通訊的。家庭網絡管理器硬件結構如圖3所示。通過CEBus適配器,管理器維護一個實時數(shù)據(jù)庫來實現(xiàn)設備信息的更新和保存。借助于一個內置的定時器,管理器每隔三分鐘啟動一個后臺線程,自動從家庭網絡上面讀取新的設備信息,來更新數(shù)據(jù)庫和用戶界面。另外,當用戶按下刷新按鈕時,系統(tǒng)也會啟動刷新線程,來更新數(shù)據(jù)庫和用戶界面。 

 

 

    家庭網絡管理器通過下述方法實現(xiàn)設備信息的更新: 

    (1)發(fā)送廣播消息,獲取所有設備的地址。然后根據(jù)設備個數(shù)在用戶數(shù)據(jù)庫的設備表中增加新記錄,并且將獲得的設備系統(tǒng)地址和單元地址[1][2]保存到新記錄的sys_addr和unit_addr字段中。 

    (2)根據(jù)設備表中每一條記錄對應的系統(tǒng)地址和單元地址,發(fā)送命令獲取上下文列表實例變量(Context_List)[1][2]的值。然后根據(jù)上下文的個數(shù)在上下文表中增加新記錄,同時將讀取到的各個上下文的序號和類號保存到新生成的上下文記錄相應的字段中。 

    (3)根據(jù)上下文表中的每一條記錄對應的上下文序號和類號,發(fā)送命令獲取對象列表實例變量(Object_List)[1][2]的值。然后根據(jù)對象的個數(shù)在對象表中增加新記錄,同時將讀取到的對象序號和類號保存到新生成的對象記錄相應的字段中。 

    (4)根據(jù)對象表中的每一條記錄的對象類號在標準CEBus數(shù)據(jù)庫中查找所有預定義的實例變量,并且為每一個預定義實例變量在實例變量表中增加新記錄,寫入新記錄的name、label、type字段的值。然后逐個發(fā)送命令讀取實例變量的值,并且將讀取到的值保存到實例變量表中。 

5 家庭網絡管理器的軟件設計與實現(xiàn) 

    這套軟件主要包括兩個功能界面:虛擬設備顯示界面、定制設備顯示界面。 

5.1 虛擬設備顯示界面 

    在第2節(jié)介紹CAL語言時已經提到,CAL預定義了27個對象模型。筆者給每個對象都編寫了多種界面模型,例如圖4中,(a)、(b)是對象模型二元開關(Binary Switch)的兩種界面模型;(c)、(d)、(e)是對象模型多路元開關(Multi_state Switch)的三種界面模型。這樣就可以用軟件形象地表達每一種對象了。 

 

 

    對于普通用戶來說,虛擬設備顯示界面是最常用到的功能界面。當切換到這個界面時,根據(jù)用戶選擇的設備標識號,從用戶數(shù)據(jù)庫讀入信息,根據(jù)組成設備對象的類型號,動態(tài)地恢復成為一個虛擬的設備控制面板,從而用戶可以對家電進行形象化的監(jiān)視和操作。如圖5(a)所示,這是當空調動態(tài)顯示時的虛擬設備面板。管理器讀取到的四個需要顯示的對象:啟動(二路開關)、工作模式(多路開關)、風速(多路開關)、溫度設定(模擬開關),根據(jù)四個對象的類型號,取得相應的缺省對象界面模型,從而組合成空調的虛擬控制面板。 

 

 

    值得一提的是,當用戶改變了設備狀態(tài)的時候,首先更新用戶數(shù)據(jù)庫的信息,然后,通過數(shù)據(jù)庫的更新事件來實現(xiàn)家庭網絡上實際設備的狀態(tài)控制,而不是直接對每一個狀態(tài)更新事件單獨編寫程序。這樣一方面可以提高代碼的重用率和可調試性,更為重要的是可以大大增強程序的模塊化水平,從而提高程序的可維護性。 

5.2 定制設備顯示界面 

    在上一小節(jié)已經提到,對應CEBus預定義的27種對象,都編寫了多種顯示模型,并且為每一種對象都指定了一個缺省顯示模型,從而系統(tǒng)會自動生成缺省設備控制面板。但是由于系統(tǒng)本身不具有智能,只是根據(jù)對象的類型號來選擇對象顯示模型,因而對于某個具體的設備來說,該缺省對象顯示模型可能是不恰當甚至是不正確的,從而導致缺省設備顯示面板的機械性。如圖5中(a)圖所示,由于啟動(電源按鈕)本身也是一個二路開關,因此在缺省控制面板中的啟動對象顯示為一個缺省二路開關,顯得不是很直觀。另外由于工作模式和風速對象都是多路開關類型,從而在缺省控制面板中,都是以旋鈕開關顯示的,風速對象不太符合人的習慣。 

    定制設備顯示界面正是為了解決這個問題。定制設備顯示界面可以實現(xiàn)設備顯示面板的個性化定制,用戶可以通過選擇預定義的對象界面模型來定制由系統(tǒng)自動生成的缺省控制面板,從而生成個性化的設備顯示面板。如圖5中(b)圖所示,通過簡單的定制,啟動按鈕換成了熟悉的電源開關,而風速對象換成了形象化的垂直調節(jié)桿,從而實現(xiàn)整個設備控制面板的個性化定制。 

    個人計算機正在成為家庭中工作、通信、教育和娛樂的強大平臺。與此同時,幾乎在一夜之間,Internet逐漸成為信息交流的基本方式之一。正如把戶外的信息和寬帶娛樂資源(如Internet和有線電視)高速接入的需要不斷增加一樣,在家庭里,把家電設備進行數(shù)字化連接的需求也在迅速增長。當然可以通過局域網來實現(xiàn)家庭內部的連接,然而,在家中布置一個局域網成本太高,布線也比較復雜。于是,人們設計出利用現(xiàn)有的電話線或者電力線,來完成簡單、高速和廉價的家庭網絡。家庭網絡的興起和推廣應用,將會帶來一場家電市場的革命。 

參考文獻 

1 CEBus Industry Coucil - CIC. EIA 600.81 Common Application Language (CAL) Specification,June 29th 1992 

2 CEBus Industry Coucil - CIC.Home Plug & Play 

3 CEBus Industry Coucil - CIC.EIA 600.82 CAL Context Description, June 29th 1992 

4 Zhou Yong. CEBus Demostration System.www.hometoys.com, 2000.6 

5 鄭 奕,樂嘉錦.以數(shù)據(jù)庫為核心——工控組態(tài)軟件的設計與實現(xiàn)[J]. 蘭州大學學報,1999;35(8) 

6 馬 茜,蓋 剛,張勇.面向對象的軟件設計基礎[M].北京科海培訓中心,1992 

7 王盛青,胡正華,田忠和.Delphi高級技術在工業(yè)監(jiān)控軟件中的應用.微計算機與應用,1997;(3) 

8 周蘇.軟件工程及其應用.天津:天津科技出版社,1992. 

9 Ronald J.Norman.OBJECT_ORIENTED SYSTEMS ANALYSIS AND DESIGN.Prentice-Hall International, Inc 

10 王 荃,金海東,李福中.工控組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)的設計與實現(xiàn).化工自動化及儀表,2000;40(3)

此內容為AET網站原創(chuàng),未經授權禁止轉載。