摘 要: 為簡化傳統(tǒng)智能家居系統(tǒng)的復(fù)雜結(jié)構(gòu),,并增強(qiáng)其擴(kuò)展性和易用性,提出了一種智能設(shè)備即插即用的智能家居系統(tǒng),。該系統(tǒng)引入智能插座,,降低家庭網(wǎng)關(guān)與智能設(shè)備的依賴性,制定一種自定義即插即用協(xié)議,,在設(shè)備注冊(cè)階段將設(shè)備的動(dòng)作和狀態(tài)提交給網(wǎng)關(guān),,并設(shè)計(jì)與該協(xié)議相適應(yīng)的家庭網(wǎng)關(guān)。測試結(jié)果表明,,該系統(tǒng)允許在不改動(dòng)家庭網(wǎng)關(guān)的情況下連接不同類型的智能設(shè)備,,雖然增加設(shè)備連接數(shù)會(huì)增加網(wǎng)關(guān)的內(nèi)存消耗,但不影響網(wǎng)關(guān)的響應(yīng)速度和數(shù)據(jù)包的丟失率,,驗(yàn)證了該方法的有效性和可行性,。
關(guān)鍵詞: 即插即用;自定義協(xié)議,;家庭網(wǎng)絡(luò);智能插座,;智能家居
0 引言
目前市場上智能家居系統(tǒng)的智能設(shè)備通過有線或無線與家庭網(wǎng)關(guān)直接相連,,智能設(shè)備與系統(tǒng)的耦合性高,且未實(shí)現(xiàn)智能設(shè)備的即插即用,,擴(kuò)展性和易用性差[1],。
現(xiàn)有即插即用協(xié)議有通用即插即用(Universal Plug and Play,UPnP)和Jini(Java Intelligent Network Infrastructure),,UPnP技術(shù)是基于TCP/IP協(xié)議之上,,用于PC等復(fù)雜設(shè)備的對(duì)等互聯(lián);Jini技術(shù)是基于Java平臺(tái)的一種動(dòng)態(tài)分布技術(shù),。以上技術(shù)在智能家居系統(tǒng)中都有一定的應(yīng)用,,但都是針對(duì)資源豐富且有網(wǎng)絡(luò)連接能力的設(shè)備[2-3],。家庭內(nèi)智能設(shè)備(如傳感設(shè)備)數(shù)量眾多,而其存儲(chǔ)資源,、計(jì)算能力有限,,無網(wǎng)絡(luò)互聯(lián)能力,因此現(xiàn)有即插即用技術(shù)不完全適用于智能家居系統(tǒng)中,。
針對(duì)即插即用技術(shù)在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用,,方遠(yuǎn)[4]提出一種物聯(lián)網(wǎng)即加即用設(shè)計(jì)框架,但沒有給出實(shí)現(xiàn)方法,。為此本文面向智能家居系統(tǒng),,設(shè)計(jì)一種基于智能插座的家庭網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并自定義一種簡單的即插即用協(xié)議,,使一些簡單設(shè)備也能實(shí)現(xiàn)即插即用,。
1 家庭網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
在智能家居系統(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é)點(diǎn)成本高且存在供電問題,因此本文引入一種帶數(shù)據(jù)交互和網(wǎng)絡(luò)通信功能的智能插座[5],,為簡單設(shè)備供電的同時(shí)還解決了簡單設(shè)備的網(wǎng)絡(luò)連接問題,,其所構(gòu)成的智能家居網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
采用該智能家居網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有如下優(yōu)勢:(1)引入智能插座,,降低家庭網(wǎng)關(guān)與智能設(shè)備之間的依賴性,,減少家庭網(wǎng)關(guān)和系統(tǒng)結(jié)構(gòu)的復(fù)雜度;(2)智能插座可以隨意地增加或撤除,,具有良好的擴(kuò)展性,;(3)智能插座屏蔽了簡單設(shè)備特定的接口類型和底層通信協(xié)議,智能設(shè)備對(duì)家庭網(wǎng)關(guān)而言保持了一致性,,是家庭網(wǎng)關(guān)設(shè)計(jì)的基礎(chǔ),。
2 協(xié)議規(guī)范設(shè)計(jì)
2.1 協(xié)議設(shè)計(jì)
要實(shí)現(xiàn)智能家居系統(tǒng)中智能設(shè)備的即插即用,智能設(shè)備與家庭網(wǎng)關(guān)之間的交互需要符合一定協(xié)議,,本文將該協(xié)議稱為HPnP(Home network Plug and Play),。
在家庭網(wǎng)關(guān)和智能插座進(jìn)行交互時(shí),數(shù)據(jù)緩沖區(qū)內(nèi)可能同時(shí)存在兩個(gè)或多個(gè)交互數(shù)據(jù)包,,即所謂的粘包,。為區(qū)分多個(gè)數(shù)據(jù)包,解決粘包問題,,HPnP協(xié)議數(shù)據(jù)包采用包頭+包體的格式,。其包頭的具體結(jié)構(gòu)如表1所示,。
不同的命令代碼對(duì)Value和Length字段值的意義會(huì)不一樣,表2是各種命令的結(jié)構(gòu),。
其中,,Length域?yàn)?時(shí),說明該數(shù)據(jù)包沒有包體,,大于0則為該數(shù)據(jù)包的包體長度,。HPnP協(xié)議的包體主要包括設(shè)備描述符、圖標(biāo)描述符,、動(dòng)作指令和狀態(tài)報(bào)告等,,詳見下節(jié)。
家庭網(wǎng)關(guān)與智能插座及設(shè)備之間的交互需滿足一定的應(yīng)答要求,,主要包括設(shè)備的注冊(cè)和設(shè)備正常工作時(shí)與家庭網(wǎng)關(guān)之間的交互,。其中,智能設(shè)備還會(huì)以狀態(tài)報(bào)告形式定時(shí)發(fā)送心跳包,,判斷家庭網(wǎng)關(guān)與智能設(shè)備的連接狀況,,具體如圖2所示。
2.2 設(shè)備描述規(guī)范
智能設(shè)備在智能家居系統(tǒng)中主要是實(shí)現(xiàn)具體功能,,例如用學(xué)習(xí)型紅外遙控設(shè)備控制電視,、機(jī)頂盒等,燈光集中控制器控制多盞燈,。但要實(shí)現(xiàn)智能設(shè)備的即插即用,,在設(shè)備注冊(cè)階段,要向家庭網(wǎng)關(guān)提交設(shè)備本身的描述信息,。一般智能設(shè)備的描述信息包含了設(shè)備的基本屬性,、所能執(zhí)行的動(dòng)作和能夠提供的狀態(tài)。為更好地描述設(shè)備,,參考UPnP協(xié)議對(duì)設(shè)備的描述[6],,并提出適合本系統(tǒng)的設(shè)備描述規(guī)范。
UPnP協(xié)議對(duì)設(shè)備的描述分成設(shè)備描述和服務(wù)描述,,對(duì)于設(shè)備的圖標(biāo)和控制界面,,通過在設(shè)備描述中提供其URL的方式來提供。當(dāng)家庭網(wǎng)絡(luò)沒有連入Internet時(shí),,無法添加新的智能設(shè)備,因此本文對(duì)設(shè)備的描述分成設(shè)備描述,、圖標(biāo)描述及界面描述等幾部分,,在設(shè)備注冊(cè)階段再一一提交給家庭網(wǎng)關(guān)。其中設(shè)備描述是必備的,,其框架如圖3所示,。
該設(shè)備描述文件主要包括:
?。?)設(shè)備屬性(唯一設(shè)備名、設(shè)備別名,、廠商名稱等),;
(2)動(dòng)作列表(動(dòng)作名稱,、參數(shù),、動(dòng)作返回值等);
?。?)狀態(tài)列表(狀態(tài)名稱,、數(shù)據(jù)類型、有效值范圍等),。
3 家庭網(wǎng)關(guān)設(shè)計(jì)
家庭網(wǎng)關(guān)是智能家居系統(tǒng)的核心,,負(fù)責(zé)控制家庭內(nèi)部的智能設(shè)備,本文設(shè)計(jì)的家庭網(wǎng)關(guān)其軟件架構(gòu)如圖4所示,。
該家庭網(wǎng)關(guān)主要由網(wǎng)絡(luò)及線程管理單元,、設(shè)備管理單元和界面管理單元三部分組成。為提高設(shè)備的響應(yīng)速度,,采用多線程方式為每個(gè)插座及插座上的設(shè)備服務(wù),,網(wǎng)絡(luò)及線程管理單元負(fù)責(zé)線程的創(chuàng)建與銷毀。以下是該家庭網(wǎng)關(guān)對(duì)數(shù)據(jù)的處理過程:
?。?)線程通過HPnP協(xié)議處理單元解析接收到的數(shù)據(jù),。
(2)設(shè)備管理單元將解析結(jié)果分發(fā)到入網(wǎng)注冊(cè)管理等各個(gè)子管理單元處理,,以維護(hù)設(shè)備句柄表上的數(shù)據(jù)信息,。
(3)當(dāng)解析結(jié)果為設(shè)備注冊(cè),、狀態(tài)更新或退出時(shí),,設(shè)備管理單元發(fā)出相應(yīng)信號(hào)給界面管理單元,如果為設(shè)備注冊(cè)或退出信號(hào),,則根據(jù)圖標(biāo)設(shè)備映射表維護(hù)界面圖標(biāo),;如果為狀態(tài)更新信號(hào),則通知當(dāng)前動(dòng)態(tài)生成的界面更新狀態(tài),。
?。?)當(dāng)用戶操控設(shè)備界面產(chǎn)生控制信息時(shí),設(shè)備管理單元將控制信息交給網(wǎng)絡(luò)及線程管理單元,。
?。?)網(wǎng)絡(luò)及線程管理單元負(fù)責(zé)把待發(fā)送消息分發(fā)到指定線程,指定線程通過HPnP協(xié)議處理單元將消息打包并發(fā)送。
動(dòng)態(tài)生成的界面采用基于數(shù)據(jù)驅(qū)動(dòng)的圖形界面開發(fā)方案,,實(shí)現(xiàn)了設(shè)備控制界面和設(shè)備邏輯功能的分離,。界面生成主要有以下3種方式:(1)根據(jù)動(dòng)作和狀態(tài)鏈表生成控制界面。此種方式適用于簡單設(shè)備,,如環(huán)境傳感設(shè)備,。通過分析動(dòng)作和狀態(tài)的特征,找到與之匹配的控件,。(2)根據(jù)設(shè)備提供的界面描述文檔生成控制界面[7],。此種方式適用于較復(fù)雜的和希望生成個(gè)性化界面的設(shè)備。(3)通過Web瀏覽器獲得控制界面,。此種方式適用于具有提供Web服務(wù)的設(shè)備,,服務(wù)地址可在設(shè)備描述中提供。
4 實(shí)驗(yàn)驗(yàn)證
4.1 即插即用驗(yàn)證
為驗(yàn)證該智能家居系統(tǒng)具有即插即用的特性,,基于HPnP自定義協(xié)議和Qt5 SDK[8]實(shí)現(xiàn)本文所述的家庭網(wǎng)關(guān),,并模擬一個(gè)智能插座及兩個(gè)不同智能設(shè)備,不同設(shè)備其設(shè)備描述符不同,。
圖5顯示了智能插座注冊(cè)成功后,,家庭網(wǎng)關(guān)上創(chuàng)建該設(shè)備的圖標(biāo)Socket和控制界面,以及家庭網(wǎng)關(guān)一側(cè)控制智能插座的交互過程,。
圖6顯示了另一個(gè)智能設(shè)備(燈光集中控制設(shè)備)注冊(cè)成功后,,家庭網(wǎng)關(guān)上生成該設(shè)備的圖標(biāo)Light和控制界面,以及智能設(shè)備狀態(tài)改變時(shí)與家庭網(wǎng)關(guān)的交互過程,。
4.2 可行性驗(yàn)證
將上述實(shí)現(xiàn)的家庭網(wǎng)關(guān)程序交叉編譯,,運(yùn)行于搭載Linux操作系統(tǒng)的S3C2440處理器上,在PC上模擬智能插座及設(shè)備,。1個(gè)智能插座(包括3個(gè)設(shè)備)向家庭網(wǎng)關(guān)發(fā)起1個(gè)連接,,針對(duì)不同參數(shù)進(jìn)行測試,共測試41組數(shù)據(jù),,其中5組數(shù)據(jù)如表3所示,。
從表3可以看出,隨著連接數(shù)的增加,,該家庭網(wǎng)關(guān)對(duì)設(shè)備的響應(yīng)速度都維持在7 ms左右,,且丟包率為0%,說明在通信鏈路正常連接的情況下,,該家庭網(wǎng)關(guān)能及時(shí)響應(yīng)每個(gè)設(shè)備,,具有較高的穩(wěn)定性和可靠性。但隨著連接數(shù)的增加,,該家庭網(wǎng)關(guān)內(nèi)存消耗量幾乎呈線性增加,,其趨勢如圖7所示。從圖7可推測出,當(dāng)家庭網(wǎng)關(guān)承受240個(gè)連接共計(jì)720個(gè)設(shè)備時(shí),,內(nèi)存消耗量約為20 MB左右,因此用一般的嵌入式設(shè)備充當(dāng)家庭網(wǎng)關(guān)即可滿足普通家庭的需求,,具有較好的可行性,。
5 結(jié)論
本文設(shè)計(jì)的一種即插即用的智能家居系統(tǒng),使無 計(jì)算能力和無網(wǎng)絡(luò)連接能力的簡單設(shè)備也能實(shí)現(xiàn)即插即用,。此外,,可對(duì)系統(tǒng)作簡單修改,使之適用于其他物聯(lián)網(wǎng)的應(yīng)用中,。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)在不更新家庭網(wǎng)關(guān)的前提下,可實(shí)現(xiàn)智能設(shè)備零配置地接入系統(tǒng),,方便設(shè)備的添加,、升級(jí)和撤除。
參考文獻(xiàn)
[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é)報(bào),,2009,,31(2):65-67.
[4] 方遠(yuǎn),劉強(qiáng),,趙澤,,等.物聯(lián)網(wǎng)即加即用及其智能配置技術(shù)研究[J].電子學(xué)報(bào),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ū)動(dòng)的圖形界面開發(fā)方案[J].微型機(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.