CEBus家庭網(wǎng)絡(luò)管理器的設(shè)計與實現(xiàn)
摘要:在介紹了家庭網(wǎng)絡(luò)(HomeNet)發(fā)展概況以及消費總線(Consumer Electronic Bus)和公共應(yīng)用語言(Common Application Language-)的基礎(chǔ)上,詳細描述了基于CEBus的家庭網(wǎng)絡(luò)管理器的硬件接口和軟件設(shè)計與實現(xiàn),重點在于管理器的軟件設(shè)計。
本文引用地址:http://m.butianyuan.cn/article/252752.htm關(guān)鍵詞:CEBus 家庭網(wǎng)絡(luò) 用戶界面 個性化定制
1 家庭網(wǎng)絡(luò)概況
國外家庭網(wǎng)絡(luò)(總線)的概念始于20世紀70年代。開始時各公司自定標準,各自為政,不同公司的產(chǎn)品互不兼容,導(dǎo)致市場的開拓和技術(shù)的步極為緩慢。近十年來,遵循統(tǒng)一標準已成為業(yè)內(nèi)的共識。目前,國際上公認的有影響的家庭網(wǎng)絡(luò)標準有:美國標準X10、日本標準家庭總線(HomeBus)、歐洲標準安裝總線(EIB)、澳洲奇勝(Clipsal)公司的C-BUS等,它們都各有側(cè)重,有的總線僅僅限于燈光控制。1984年,美國電氣工業(yè)協(xié)會的消費電器小組開始著手制定家電互聯(lián)規(guī)范,并于1992年發(fā)布CEBus規(guī)范(EIA600),即消費總線[1][2]。1994年,成立了消費工業(yè)委員會,專門負責消費總線的有關(guān)事宜。CEBus得到了IBM、Honeywell、Microsoft、Intellon、Demosys、Lucent、Philips、Siements、XLSynergy等國際著名公司的支持。1999年2月,Demosys公司在美國加州展示基于CEBus的Demosys墻,以展示CEBus的Demosys墻,以展示CEBus即插即用的互操作性能。來自6個不同公司的幾十個產(chǎn)品安裝在展示墻上,通過電源線通訊,這些產(chǎn)品構(gòu)成協(xié)調(diào)一致的智能系統(tǒng),每個產(chǎn)品都能夠自動尋找到它應(yīng)用控制的相應(yīng)產(chǎn)品。由于遵循了統(tǒng)一的CEBus標準,不同廠家的產(chǎn)品達到了互聯(lián)互操、即插即用的完美境界,最大限度地滿足了家庭網(wǎng)絡(luò)用戶對易用性的苛刻要求。
國內(nèi)家庭網(wǎng)絡(luò)尚處于啟蒙狀態(tài):方正的卓越Z系列、海信的海景二代、海爾的e家庭和網(wǎng)絡(luò)家電、TCL的家庭信息顯示器(HID)以及初露端倪的聯(lián)想.home等等。這些有益的嘗試,盡管為用戶描述了一幅智能家居的美好前景,但是由于缺乏統(tǒng)一的標準、規(guī)范和接口協(xié)議,在更多意義上還只能算是一種概念性產(chǎn)品。
2 CEBus和CAL簡介
消費總線(CEBus)是美國電氣工業(yè)協(xié)會(EIA)的消費電子小組制定的家用消費產(chǎn)品的網(wǎng)絡(luò)通訊標準,它描述了一種家庭電子產(chǎn)品之間的通訊方法,通過CEBUS協(xié)議可以實現(xiàn)家庭網(wǎng)絡(luò)。CEBus采用了簡化的OSI模型,分為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層。CEBus是一個完全面向報文分組(packet)的對等網(wǎng)絡(luò),使用載波偵聽多重訪問和沖突檢測與沖突分辨協(xié)議(CSMA/CDCR)。
CEBus在應(yīng)用層定義了一種面向?qū)ο蟮?、嚴格的設(shè)備描述語言CAL(Common Application Language EIA721),簡稱公共應(yīng)用語言[1],其內(nèi)容涵蓋了家庭中可能擁有的家電。公共應(yīng)用語言采用了面向?qū)ο蟮姆椒?,把任意一個家電設(shè)備按照功能分解成幾個預(yù)定義的對象模型。在面向?qū)ο蟮木幊陶Z言中,一個對象由數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)組成。在消費總線中,這些對象也由數(shù)據(jù)(稱為實例變量)和操作(稱為方法)組成,不同的設(shè)備可以采用相同的對象,用相同的方法操作,但是控制結(jié)果隨設(shè)備的不同而有不同的意義。
CAL用一種層次關(guān)系描述設(shè)備的功能。如圖1所示。一個設(shè)備可以分成幾個上下文,它們代表了這個設(shè)備按照功能分的子系統(tǒng)。上下文又被分為幾個對象,每個對象代表了上下文中的一種控制功能,對象分為若干類,每一類代表一種共有的功能。CAL預(yù)定義了27個對象模型[1]。例如,類號為07的對象是模擬控制對象(Analog Control Object),它可以用來代表音量控制、溫度調(diào)節(jié)或調(diào)光器。一個對象的具體功能完全由他所屬的上下文決定。每個對象包含一定數(shù)量的實例變量。每個對象都能夠解釋執(zhí)行方法,更新實例變量,并完成實際操作。
3 基于CEBus的家庭網(wǎng)絡(luò)總體結(jié)構(gòu)
由浙江大學系統(tǒng)工程研究所和合作伙伴聯(lián)合開發(fā)的基于CEBus的家庭網(wǎng)絡(luò)結(jié)構(gòu)框架如圖2所示。
從網(wǎng)絡(luò)結(jié)構(gòu)不難發(fā)現(xiàn),獨立的、分散的、單體測量裝置是構(gòu)成CEBus分布式網(wǎng)絡(luò)的節(jié)點,因此CEBus家庭網(wǎng)絡(luò)是一種典型的對等(peer to peer)模型結(jié)構(gòu)。CEBus摒棄了傳統(tǒng)的控制中心的概念,任一網(wǎng)絡(luò)節(jié)點的失效都不會引起系統(tǒng)的癱瘓,換言之,系統(tǒng)具備高度自治的優(yōu)良特性。
用戶對設(shè)備有多種操作方式:通過計算機上的家庭網(wǎng)絡(luò)管理器實現(xiàn)對所設(shè)備的操作和設(shè)定;用自定義控制面板上按鈕的功能,實現(xiàn)對其它設(shè)備的控制;用PDA等手持設(shè)備控制設(shè)備;用語音控制模塊實現(xiàn)語音控制;可以在遠程與嵌入式的家庭網(wǎng)關(guān)連接,從而實現(xiàn)遠程操作。但最方便、最直觀地實現(xiàn)所有家電的監(jiān)視和控制,還是要使用可定制界面的家庭網(wǎng)絡(luò)管理器。
4 家庭網(wǎng)絡(luò)管理器的硬件接口
家庭網(wǎng)絡(luò)管理是通過一個CEBus適配器的家庭網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)通訊的。家庭網(wǎng)絡(luò)管理器硬件結(jié)構(gòu)如圖3所示。通過CEBus適配順,管理器維護一個實時數(shù)據(jù)庫來實現(xiàn)設(shè)備信息的更新和保存。借助于一個內(nèi)置的定時器,管理器每隔三分種啟動一個后臺線程,自動從家庭網(wǎng)絡(luò)上面讀取新的設(shè)備信息,來更新數(shù)據(jù)庫和用戶界面。另外,當用戶按下刷新按鈕時,系統(tǒng)也會啟動刷新線程,來更新數(shù)據(jù)庫和用戶界面。
家庭網(wǎng)絡(luò)管理器通過下述方法實現(xiàn)設(shè)備信息的更新:
(1)發(fā)送廣播消息,獲取所有設(shè)備的地址。然后根據(jù)設(shè)備個數(shù)在用戶數(shù)據(jù)的設(shè)備表中增加新記錄,并且將獲得的設(shè)備系統(tǒng)地址和單元地址[1][2]保存到新記錄的sys_ad_dr和unit_addr字段中。
(2)根據(jù)設(shè)備表中每一條記錄對應(yīng)的系統(tǒng)地址和單元地址,發(fā)送命令獲取上下文列表實例變量(Context_List)[1][2]的值。然后根據(jù)上下文的個數(shù)在上下文表中增加新記錄,同時將讀取到的各個上下文的序號和類號保存到新生成的上下文記錄相應(yīng)的字段中。
(3)根據(jù)上下文表中的每一條記錄對應(yīng)的上下文序號和類號,發(fā)送命令獲取對象列表實例變量(Object_List)[1][2]的值。然后根據(jù)對象的個數(shù)在對象表中增加新記錄,同時將讀取到的對象序號和類號保存到新生成的對象記錄相應(yīng)的字段中。
(4)根據(jù)對象表中的每一條記錄的對象類號在標準CEBus數(shù)據(jù)庫中查找所有預(yù)定義的實例變量,并且為每一個預(yù)定義實例變量在實例變量表中增加新記錄,寫入新記錄的name、label、type字段的值。然后逐個發(fā)送命令讀取實例變量的值,并且將讀取到的值保存到實例變量表中。
5 家庭網(wǎng)絡(luò)管理器的軟件設(shè)計與實現(xiàn)
這套軟件主要包括兩個功能界面:虛擬設(shè)備顯示界面、定制設(shè)備顯示界面。
在第2節(jié)介紹CAL語言時已經(jīng)提到,CAL預(yù)定義了27個對象模型。筆者給每個對象都編寫了多種界面模型,例如圖4中,(a)、(b)是對象模型二元開關(guān)(Binary Switch)的兩種界觀模型;(c)、(d)、(e)是對象模型多種元開關(guān)(Multi_state Switch)的三種界面模型。這種就可以用軟件形象地表達每一種對象了。
對于普通用戶來說,虛擬設(shè)備顯示界面是最常用到的功能界面。當切換到這個界面時,根據(jù)用戶選擇的設(shè)備標識號,從用戶數(shù)據(jù)庫讀入信息,根據(jù)組成設(shè)備對象的類型號,動態(tài)地恢復(fù)成為一個虛擬的設(shè)備控制面板,從而用戶可以對家電進行形象化的監(jiān)視和操作。如圖5(a)所示,這是當空調(diào)動態(tài)顯示時的虛擬設(shè)備面板。管理器讀取到的四個需要顯示的對象:啟動(二路開關(guān))、工作模式(多路開關(guān))、風速(多路開關(guān))、溫度設(shè)定(模擬開關(guān)),根據(jù)四個對象的類型號,取得相應(yīng)的缺省對象界面模型,從而組合成空調(diào)的虛擬控制面板。
值得一提的是,當用戶改變了設(shè)備狀態(tài)的時候,首先更新用戶數(shù)據(jù)庫的信息,然后,通過數(shù)據(jù)庫的更新事件來實現(xiàn)家庭網(wǎng)絡(luò)上實際設(shè)備的狀態(tài)控制,而不是直接對每一個狀態(tài)更新事件單獨編寫程序。這樣一方面可以提高代碼的重用率和可調(diào)試性,更為重要的是可以大大增強程序的模塊化水平,從而提高程序的可維護性。
在上一小節(jié)已經(jīng)提到,對應(yīng)CEBus預(yù)定義的27種對象,都編寫了多種顯示模型,并且為每一種對象都指定了一個缺省顯示模型,從而系統(tǒng)會自動生成缺省設(shè)備控制面板。但是由于系統(tǒng)本身不具有智能,只是根據(jù)對象的類型號來選擇對象顯示模型,因而對于某個具體的設(shè)備來說,該缺省對象顯示模型可能是不恰當甚至是不正確的,從而導(dǎo)致缺省設(shè)備顯示面板的機械性。如圖5中(a)圖所示,由于啟動(電源按鈕)本身也是一個二路開關(guān),因此在缺省控制面板中的啟動對象顯示為一個缺省二路開關(guān),顯得不是很直觀。另外由于工作模式和風速對象都是多路開關(guān)類型,從而在缺省控制面板中,都是以旋鈕開關(guān)顯示的,風速對象不太符合人的習慣。
定制設(shè)備顯示界面正是為了解決這個問題。定制設(shè)備顯示界面可以實現(xiàn)設(shè)備顯示面板的個性化定制,用戶可以通過選擇預(yù)定義的對象界面模型來定制由系統(tǒng)自動生成的缺省控制板,從而生成個性化的設(shè)備顯示面板。如圖5(b)圖所示,通過簡單的定制,啟動按鈕換成了熟悉的電源開關(guān),而風速對象換成了形象化的垂直調(diào)節(jié)桿,從而實現(xiàn)整個設(shè)備控制面板的個性化定制。
個人計算機正在成為家庭中工作、通信、教育和娛樂的強大平臺。與此同時,幾乎在一夜之間,Internet逐漸成為信息交流的基本方式之一。正如把戶外的信息和寬帶娛樂資源(如Internet和有線電視)高速接入的需要不斷增加一樣,在家庭里,把家電設(shè)備進行數(shù)字化連接的需求也在迅速增長。當然可以通過局域網(wǎng)來實現(xiàn)家庭內(nèi)部的連接,然而,在家中布置一個局域網(wǎng)成本太高,布線也比較復(fù)雜。于是,人們設(shè)計出利用現(xiàn)有的電話線或者電力線,來完成簡單、高速和廉價的家庭網(wǎng)絡(luò)。家庭網(wǎng)絡(luò)的興起和推廣應(yīng)用,將會帶來一場家電市場的革命。
物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么
評論