《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種即插即用的智能家居系統(tǒng)設(shè)計
一種即插即用的智能家居系統(tǒng)設(shè)計
2014年電子技術(shù)應(yīng)用第22期
蘇詩薦,章 杰,林培杰,戴曼娜,程樹英
(福州大學(xué) 微納器件與太陽能電池研究所,福建 福州 350108)
摘要: 為簡化傳統(tǒng)智能家居系統(tǒng)的復(fù)雜結(jié)構(gòu),并增強其擴展性和易用性,提出了一種智能設(shè)備即插即用的智能家居系統(tǒng)。該系統(tǒng)引入智能插座,降低家庭網(wǎng)關(guān)與智能設(shè)備的依賴性,制定一種自定義即插即用協(xié)議,在設(shè)備注冊階段將設(shè)備的動作和狀態(tài)提交給網(wǎng)關(guān),并設(shè)計與該協(xié)議相適應(yīng)的家庭網(wǎng)關(guān)。測試結(jié)果表明,該系統(tǒng)允許在不改動家庭網(wǎng)關(guān)的情況下連接不同類型的智能設(shè)備,雖然增加設(shè)備連接數(shù)會增加網(wǎng)關(guān)的內(nèi)存消耗,但不影響網(wǎng)關(guān)的響應(yīng)速度和數(shù)據(jù)包的丟失率,驗證了該方法的有效性和可行性。
Abstract:
Key words :

  摘  要: 為簡化傳統(tǒng)智能家居系統(tǒng)的復(fù)雜結(jié)構(gòu),并增強其擴展性和易用性,提出了一種智能設(shè)備即插即用的智能家居系統(tǒng)。該系統(tǒng)引入智能插座,降低家庭網(wǎng)關(guān)與智能設(shè)備的依賴性,制定一種自定義即插即用協(xié)議,在設(shè)備注冊階段將設(shè)備的動作和狀態(tài)提交給網(wǎng)關(guān),并設(shè)計與該協(xié)議相適應(yīng)的家庭網(wǎng)關(guān)。測試結(jié)果表明,該系統(tǒng)允許在不改動家庭網(wǎng)關(guān)的情況下連接不同類型的智能設(shè)備,雖然增加設(shè)備連接數(shù)會增加網(wǎng)關(guān)的內(nèi)存消耗,但不影響網(wǎng)關(guān)的響應(yīng)速度和數(shù)據(jù)包的丟失率,驗證了該方法的有效性和可行性。

  關(guān)鍵詞: 即插即用;自定義協(xié)議;家庭網(wǎng)絡(luò);智能插座;智能家居

0 引言

  目前市場上智能家居系統(tǒng)的智能設(shè)備通過有線或無線與家庭網(wǎng)關(guān)直接相連,智能設(shè)備與系統(tǒng)的耦合性高,且未實現(xiàn)智能設(shè)備的即插即用,擴展性和易用性差[1]。

  現(xiàn)有即插即用協(xié)議有通用即插即用(Universal Plug and Play,UPnP)和Jini(Java Intelligent Network Infrastructure),UPnP技術(shù)是基于TCP/IP協(xié)議之上,用于PC等復(fù)雜設(shè)備的對等互聯(lián);Jini技術(shù)是基于Java平臺的一種動態(tài)分布技術(shù)。以上技術(shù)在智能家居系統(tǒng)中都有一定的應(yīng)用,但都是針對資源豐富且有網(wǎng)絡(luò)連接能力的設(shè)備[2-3]。家庭內(nèi)智能設(shè)備(如傳感設(shè)備)數(shù)量眾多,而其存儲資源、計算能力有限,無網(wǎng)絡(luò)互聯(lián)能力,因此現(xiàn)有即插即用技術(shù)不完全適用于智能家居系統(tǒng)中。

  針對即插即用技術(shù)在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用,方遠[4]提出一種物聯(lián)網(wǎng)即加即用設(shè)計框架,但沒有給出實現(xiàn)方法。為此本文面向智能家居系統(tǒng),設(shè)計一種基于智能插座的家庭網(wǎng)絡(luò)拓撲結(jié)構(gòu),并自定義一種簡單的即插即用協(xié)議,使一些簡單設(shè)備也能實現(xiàn)即插即用。

1 家庭網(wǎng)絡(luò)拓撲結(jié)構(gòu)設(shè)計

  在智能家居系統(tǒng)中,一般可將智能設(shè)備分為復(fù)雜設(shè)備和簡單設(shè)備兩種,復(fù)雜設(shè)備具有網(wǎng)絡(luò)連接能力且功能復(fù)雜,簡單設(shè)備一般不具有網(wǎng)絡(luò)連接能力,且在智能家居系統(tǒng)中占多數(shù)。采用ZigBee網(wǎng)絡(luò)連接家庭設(shè)備,節(jié)點成本高且存在供電問題,因此本文引入一種帶數(shù)據(jù)交互和網(wǎng)絡(luò)通信功能的智能插座[5],為簡單設(shè)備供電的同時還解決了簡單設(shè)備的網(wǎng)絡(luò)連接問題,其所構(gòu)成的智能家居網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。

001.jpg

  采用該智能家居網(wǎng)絡(luò)拓撲結(jié)構(gòu)有如下優(yōu)勢:(1)引入智能插座,降低家庭網(wǎng)關(guān)與智能設(shè)備之間的依賴性,減少家庭網(wǎng)關(guān)和系統(tǒng)結(jié)構(gòu)的復(fù)雜度;(2)智能插座可以隨意地增加或撤除,具有良好的擴展性;(3)智能插座屏蔽了簡單設(shè)備特定的接口類型和底層通信協(xié)議,智能設(shè)備對家庭網(wǎng)關(guān)而言保持了一致性,是家庭網(wǎng)關(guān)設(shè)計的基礎(chǔ)。

2 協(xié)議規(guī)范設(shè)計

  2.1 協(xié)議設(shè)計

  要實現(xiàn)智能家居系統(tǒng)中智能設(shè)備的即插即用,智能設(shè)備與家庭網(wǎng)關(guān)之間的交互需要符合一定協(xié)議,本文將該協(xié)議稱為HPnP(Home network Plug and Play)。

  在家庭網(wǎng)關(guān)和智能插座進行交互時,數(shù)據(jù)緩沖區(qū)內(nèi)可能同時存在兩個或多個交互數(shù)據(jù)包,即所謂的粘包。為區(qū)分多個數(shù)據(jù)包,解決粘包問題,HPnP協(xié)議數(shù)據(jù)包采用包頭+包體的格式。其包頭的具體結(jié)構(gòu)如表1所示。

008.jpg

  不同的命令代碼對Value和Length字段值的意義會不一樣,表2是各種命令的結(jié)構(gòu)。

009.jpg

  其中,Length域為0時,說明該數(shù)據(jù)包沒有包體,大于0則為該數(shù)據(jù)包的包體長度。HPnP協(xié)議的包體主要包括設(shè)備描述符、圖標描述符、動作指令和狀態(tài)報告等,詳見下節(jié)。

  家庭網(wǎng)關(guān)與智能插座及設(shè)備之間的交互需滿足一定的應(yīng)答要求,主要包括設(shè)備的注冊和設(shè)備正常工作時與家庭網(wǎng)關(guān)之間的交互。其中,智能設(shè)備還會以狀態(tài)報告形式定時發(fā)送心跳包,判斷家庭網(wǎng)關(guān)與智能設(shè)備的連接狀況,具體如圖2所示。

002.jpg

  2.2 設(shè)備描述規(guī)范

  智能設(shè)備在智能家居系統(tǒng)中主要是實現(xiàn)具體功能,例如用學(xué)習(xí)型紅外遙控設(shè)備控制電視、機頂盒等,燈光集中控制器控制多盞燈。但要實現(xiàn)智能設(shè)備的即插即用,在設(shè)備注冊階段,要向家庭網(wǎng)關(guān)提交設(shè)備本身的描述信息。一般智能設(shè)備的描述信息包含了設(shè)備的基本屬性、所能執(zhí)行的動作和能夠提供的狀態(tài)。為更好地描述設(shè)備,參考UPnP協(xié)議對設(shè)備的描述[6],并提出適合本系統(tǒng)的設(shè)備描述規(guī)范。

  UPnP協(xié)議對設(shè)備的描述分成設(shè)備描述和服務(wù)描述,對于設(shè)備的圖標和控制界面,通過在設(shè)備描述中提供其URL的方式來提供。當(dāng)家庭網(wǎng)絡(luò)沒有連入Internet時,無法添加新的智能設(shè)備,因此本文對設(shè)備的描述分成設(shè)備描述、圖標描述及界面描述等幾部分,在設(shè)備注冊階段再一一提交給家庭網(wǎng)關(guān)。其中設(shè)備描述是必備的,其框架如圖3所示。

003.jpg

  該設(shè)備描述文件主要包括:

 ?。?)設(shè)備屬性(唯一設(shè)備名、設(shè)備別名、廠商名稱等);

 ?。?)動作列表(動作名稱、參數(shù)、動作返回值等);

  (3)狀態(tài)列表(狀態(tài)名稱、數(shù)據(jù)類型、有效值范圍等)。

3 家庭網(wǎng)關(guān)設(shè)計

  家庭網(wǎng)關(guān)是智能家居系統(tǒng)的核心,負責(zé)控制家庭內(nèi)部的智能設(shè)備,本文設(shè)計的家庭網(wǎng)關(guān)其軟件架構(gòu)如圖4所示。

004.jpg

  該家庭網(wǎng)關(guān)主要由網(wǎng)絡(luò)及線程管理單元、設(shè)備管理單元和界面管理單元三部分組成。為提高設(shè)備的響應(yīng)速度,采用多線程方式為每個插座及插座上的設(shè)備服務(wù),網(wǎng)絡(luò)及線程管理單元負責(zé)線程的創(chuàng)建與銷毀。以下是該家庭網(wǎng)關(guān)對數(shù)據(jù)的處理過程:

  (1)線程通過HPnP協(xié)議處理單元解析接收到的數(shù)據(jù)。

 ?。?)設(shè)備管理單元將解析結(jié)果分發(fā)到入網(wǎng)注冊管理等各個子管理單元處理,以維護設(shè)備句柄表上的數(shù)據(jù)信息。

 ?。?)當(dāng)解析結(jié)果為設(shè)備注冊、狀態(tài)更新或退出時,設(shè)備管理單元發(fā)出相應(yīng)信號給界面管理單元,如果為設(shè)備注冊或退出信號,則根據(jù)圖標設(shè)備映射表維護界面圖標;如果為狀態(tài)更新信號,則通知當(dāng)前動態(tài)生成的界面更新狀態(tài)。

 ?。?)當(dāng)用戶操控設(shè)備界面產(chǎn)生控制信息時,設(shè)備管理單元將控制信息交給網(wǎng)絡(luò)及線程管理單元。

 ?。?)網(wǎng)絡(luò)及線程管理單元負責(zé)把待發(fā)送消息分發(fā)到指定線程,指定線程通過HPnP協(xié)議處理單元將消息打包并發(fā)送。

  動態(tài)生成的界面采用基于數(shù)據(jù)驅(qū)動的圖形界面開發(fā)方案,實現(xiàn)了設(shè)備控制界面和設(shè)備邏輯功能的分離。界面生成主要有以下3種方式:(1)根據(jù)動作和狀態(tài)鏈表生成控制界面。此種方式適用于簡單設(shè)備,如環(huán)境傳感設(shè)備。通過分析動作和狀態(tài)的特征,找到與之匹配的控件。(2)根據(jù)設(shè)備提供的界面描述文檔生成控制界面[7]。此種方式適用于較復(fù)雜的和希望生成個性化界面的設(shè)備。(3)通過Web瀏覽器獲得控制界面。此種方式適用于具有提供Web服務(wù)的設(shè)備,服務(wù)地址可在設(shè)備描述中提供。

4 實驗驗證

  4.1 即插即用驗證

  為驗證該智能家居系統(tǒng)具有即插即用的特性,基于HPnP自定義協(xié)議和Qt5 SDK[8]實現(xiàn)本文所述的家庭網(wǎng)關(guān),并模擬一個智能插座及兩個不同智能設(shè)備,不同設(shè)備其設(shè)備描述符不同。

005.jpg

  圖5顯示了智能插座注冊成功后,家庭網(wǎng)關(guān)上創(chuàng)建該設(shè)備的圖標Socket和控制界面,以及家庭網(wǎng)關(guān)一側(cè)控制智能插座的交互過程。

006.jpg

  圖6顯示了另一個智能設(shè)備(燈光集中控制設(shè)備)注冊成功后,家庭網(wǎng)關(guān)上生成該設(shè)備的圖標Light和控制界面,以及智能設(shè)備狀態(tài)改變時與家庭網(wǎng)關(guān)的交互過程。

  4.2 可行性驗證

  將上述實現(xiàn)的家庭網(wǎng)關(guān)程序交叉編譯,運行于搭載Linux操作系統(tǒng)的S3C2440處理器上,在PC上模擬智能插座及設(shè)備。1個智能插座(包括3個設(shè)備)向家庭網(wǎng)關(guān)發(fā)起1個連接,針對不同參數(shù)進行測試,共測試41組數(shù)據(jù),其中5組數(shù)據(jù)如表3所示。

010.jpg

  從表3可以看出,隨著連接數(shù)的增加,該家庭網(wǎng)關(guān)對設(shè)備的響應(yīng)速度都維持在7 ms左右,且丟包率為0%,說明在通信鏈路正常連接的情況下,該家庭網(wǎng)關(guān)能及時響應(yīng)每個設(shè)備,具有較高的穩(wěn)定性和可靠性。但隨著連接數(shù)的增加,該家庭網(wǎng)關(guān)內(nèi)存消耗量幾乎呈線性增加,其趨勢如圖7所示。從圖7可推測出,當(dāng)家庭網(wǎng)關(guān)承受240個連接共計720個設(shè)備時,內(nèi)存消耗量約為20 MB左右,因此用一般的嵌入式設(shè)備充當(dāng)家庭網(wǎng)關(guān)即可滿足普通家庭的需求,具有較好的可行性。

007.jpg

5 結(jié)論

  本文設(shè)計的一種即插即用的智能家居系統(tǒng),使無 計算能力和無網(wǎng)絡(luò)連接能力的簡單設(shè)備也能實現(xiàn)即插即用。此外,可對系統(tǒng)作簡單修改,使之適用于其他物聯(lián)網(wǎng)的應(yīng)用中。實驗結(jié)果表明,該系統(tǒng)在不更新家庭網(wǎng)關(guān)的前提下,可實現(xiàn)智能設(shè)備零配置地接入系統(tǒng),方便設(shè)備的添加、升級和撤除。

  參考文獻

  [1] 趙玉民.家庭網(wǎng)絡(luò)互聯(lián)技術(shù)與數(shù)字家庭組建方案探討[J].電視技術(shù),2011,35(1):27-38.

  [2] EOM B, LEE C, LEE H. UPnP remote UI and sensor collaboration framework for cloud AV service in smart home [C]. 2013 International Conference on ICT Convergence (ICTC), USA: IEEE Press, 2013:907-908.

  [3] 肖曉霞.基于Jini技術(shù)的智能家居網(wǎng)絡(luò)應(yīng)用探討[J].湘潭師范學(xué)院學(xué)報,2009,31(2):65-67.

  [4] 方遠,劉強,趙澤,等.物聯(lián)網(wǎng)即加即用及其智能配置技術(shù)研究[J].電子學(xué)報,2013,41(9):1744-1752.

  [5] 福州大學(xué).帶數(shù)據(jù)采集和網(wǎng)絡(luò)通訊功能的智能插座:中國,201320336673.5[P].2013-12-04.

  [6] PRESSER A, FARREL L. UPnP device architecture[EB/OL].[2014-01-15](2014-06-30). http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf.

  [7] 彭順順,周傳生.基于數(shù)據(jù)驅(qū)動的圖形界面開發(fā)方案[J].微型機與應(yīng)用,2013,32(19):1-3.

  [8] DIGIA. Qt reference documentation[EB/OL]. [2014-01-10](2014-06-30). http://qt-project.org.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。