摘 要: 為簡化傳統(tǒng)智能家居系統(tǒng)的復(fù)雜結(jié)構(gòu),并增強(qiáng)其擴(kuò)展性和易用性,提出了一種智能設(shè)備即插即用的智能家居系統(tǒng)。該系統(tǒng)引入智能插座,降低家庭網(wǎng)關(guān)與智能設(shè)備的依賴性,制定一種自定義即插即用協(xié)議,在設(shè)備注冊階段將設(shè)備的動作和狀態(tài)提交給網(wǎng)關(guān),并設(shè)計(jì)與該協(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ù)包的丟失率,驗(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è)備的對等互聯(lián);Jini技術(shù)是基于Java平臺的一種動態(tài)分布技術(shù)。以上技術(shù)在智能家居系統(tǒng)中都有一定的應(yīng)用,但都是針對資源豐富且有網(wǎng)絡(luò)連接能力的設(shè)備[2-3]。家庭內(nèi)智能設(shè)備(如傳感設(shè)備)數(shù)量眾多,而其存儲資源、計(jì)算能力有限,無網(wǎng)絡(luò)互聯(lián)能力,因此現(xiàn)有即插即用技術(shù)不完全適用于智能家居系統(tǒng)中。
針對即插即用技術(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è)備的網(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è)備對家庭網(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ù)據(jù)緩沖區(qū)內(nèi)可能同時存在兩個或多個交互數(shù)據(jù)包,即所謂的粘包。為區(qū)分多個數(shù)據(jù)包,解決粘包問題,HPnP協(xié)議數(shù)據(jù)包采用包頭+包體的格式。其包頭的具體結(jié)構(gòu)如表1所示。
不同的命令代碼對Value和Length字段值的意義會不一樣,表2是各種命令的結(jié)構(gòu)。
其中,Length域?yàn)?時,說明該數(shù)據(jù)包沒有包體,大于0則為該數(shù)據(jù)包的包體長度。HPnP協(xié)議的包體主要包括設(shè)備描述符、圖標(biāo)描述符、動作指令和狀態(tài)報(bào)告等,詳見下節(jié)。
家庭網(wǎng)關(guān)與智能插座及設(shè)備之間的交互需滿足一定的應(yīng)答要求,主要包括設(shè)備的注冊和設(shè)備正常工作時與家庭網(wǎng)關(guān)之間的交互。其中,智能設(shè)備還會以狀態(tài)報(bào)告形式定時發(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è)備注冊階段,要向家庭網(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è)備的圖標(biāo)和控制界面,通過在設(shè)備描述中提供其URL的方式來提供。當(dāng)家庭網(wǎng)絡(luò)沒有連入Internet時,無法添加新的智能設(shè)備,因此本文對設(shè)備的描述分成設(shè)備描述、圖標(biāo)描述及界面描述等幾部分,在設(shè)備注冊階段再一一提交給家庭網(wǎng)關(guān)。其中設(shè)備描述是必備的,其框架如圖3所示。
該設(shè)備描述文件主要包括:
?。?)設(shè)備屬性(唯一設(shè)備名、設(shè)備別名、廠商名稱等);
?。?)動作列表(動作名稱、參數(shù)、動作返回值等);
?。?)狀態(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)速度,采用多線程方式為每個插座及插座上的設(shè)備服務(wù),網(wǎng)絡(luò)及線程管理單元負(fù)責(zé)線程的創(chuàng)建與銷毀。以下是該家庭網(wǎng)關(guān)對數(shù)據(jù)的處理過程:
?。?)線程通過HPnP協(xié)議處理單元解析接收到的數(shù)據(jù)。
?。?)設(shè)備管理單元將解析結(jié)果分發(fā)到入網(wǎng)注冊管理等各個子管理單元處理,以維護(hù)設(shè)備句柄表上的數(shù)據(jù)信息。
?。?)當(dāng)解析結(jié)果為設(shè)備注冊、狀態(tài)更新或退出時,設(shè)備管理單元發(fā)出相應(yīng)信號給界面管理單元,如果為設(shè)備注冊或退出信號,則根據(jù)圖標(biāo)設(shè)備映射表維護(hù)界面圖標(biāo);如果為狀態(tài)更新信號,則通知當(dāng)前動態(tài)生成的界面更新狀態(tài)。
(4)當(dāng)用戶操控設(shè)備界面產(chǎn)生控制信息時,設(shè)備管理單元將控制信息交給網(wǎng)絡(luò)及線程管理單元。
?。?)網(wǎng)絡(luò)及線程管理單元負(fù)責(zé)把待發(fā)送消息分發(fā)到指定線程,指定線程通過HPnP協(xié)議處理單元將消息打包并發(fā)送。
動態(tài)生成的界面采用基于數(shù)據(jù)驅(qū)動的圖形界面開發(fā)方案,實(shí)現(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 實(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),并模擬一個智能插座及兩個不同智能設(shè)備,不同設(shè)備其設(shè)備描述符不同。
圖5顯示了智能插座注冊成功后,家庭網(wǎng)關(guān)上創(chuàng)建該設(shè)備的圖標(biāo)Socket和控制界面,以及家庭網(wǎng)關(guān)一側(cè)控制智能插座的交互過程。
圖6顯示了另一個智能設(shè)備(燈光集中控制設(shè)備)注冊成功后,家庭網(wǎng)關(guān)上生成該設(shè)備的圖標(biāo)Light和控制界面,以及智能設(shè)備狀態(tài)改變時與家庭網(wǎng)關(guān)的交互過程。
4.2 可行性驗(yàn)證
將上述實(shí)現(xiàn)的家庭網(wǎng)關(guān)程序交叉編譯,運(yùn)行于搭載Linux操作系統(tǒng)的S3C2440處理器上,在PC上模擬智能插座及設(shè)備。1個智能插座(包括3個設(shè)備)向家庭網(wǎng)關(guān)發(fā)起1個連接,針對不同參數(shù)進(jìn)行測試,共測試41組數(shù)據(jù),其中5組數(shù)據(jù)如表3所示。
從表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個連接共計(jì)720個設(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)即插即用。此外,可對系統(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è)備的添加、升級和撤除。
參考文獻(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ū)動的圖形界面開發(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.