<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > CEBus家庭網(wǎng)絡(luò)管理器的設(shè)計(jì)與實(shí)現(xiàn)

          CEBus家庭網(wǎng)絡(luò)管理器的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/252752.htm

          關(guān)鍵詞:CEBus 家庭網(wǎng)絡(luò) 用戶界面 個(gè)性化定制

          1 家庭網(wǎng)絡(luò)概況

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

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

          2 CEBus和CAL簡(jiǎn)介

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

          CEBus在應(yīng)用層定義了一種面向?qū)ο蟮摹?yán)格的設(shè)備描述語言CAL(Common Application Language EIA721),簡(jiǎn)稱公共應(yīng)用語言[1],其內(nèi)容涵蓋了家庭中可能擁有的家電。公共應(yīng)用語言采用了面向?qū)ο蟮姆椒ǎ讶我庖粋€(gè)家電設(shè)備按照功能分解成幾個(gè)預(yù)定義的對(duì)象模型。在面向?qū)ο蟮木幊陶Z言中,一個(gè)對(duì)象由數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)組成。在消費(fèi)總線中,這些對(duì)象也由數(shù)據(jù)(稱為實(shí)例變量)和操作(稱為方法)組成,不同的設(shè)備可以采用相同的對(duì)象,用相同的方法操作,但是控制結(jié)果隨設(shè)備的不同而有不同的意義。

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

          3 基于CEBus的家庭網(wǎng)絡(luò)總體結(jié)構(gòu)

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

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

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

          4 家庭網(wǎng)絡(luò)管理器的硬件接口

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

          家庭網(wǎng)絡(luò)管理器通過下述方法實(shí)現(xiàn)設(shè)備信息的更新:

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

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

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

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

          5 家庭網(wǎng)絡(luò)管理器的軟件設(shè)計(jì)與實(shí)現(xiàn)

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

          5.1 虛擬設(shè)備顯示界面

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

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

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

          5.2 定制設(shè)備顯示界面

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

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

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

          物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();