摘 要: 為簡(jiǎn)化傳統(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),。測(cè)試結(jié)果表明,,該系統(tǒng)允許在不改動(dòng)家庭網(wǎng)關(guān)的情況下連接不同類(lèi)型的智能設(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 引言
目前市場(chǎng)上智能家居系統(tǒng)的智能設(shè)備通過(guò)有線或無(wú)線與家庭網(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ú)網(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ì)框架,但沒(méi)有給出實(shí)現(xiàn)方法,。為此本文面向智能家居系統(tǒng),,設(shè)計(jì)一種基于智能插座的家庭網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并自定義一種簡(jiǎn)單的即插即用協(xié)議,,使一些簡(jiǎn)單設(shè)備也能實(shí)現(xiàn)即插即用,。
1 家庭網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
在智能家居系統(tǒng)中,一般可將智能設(shè)備分為復(fù)雜設(shè)備和簡(jiǎn)單設(shè)備兩種,,復(fù)雜設(shè)備具有網(wǎng)絡(luò)連接能力且功能復(fù)雜,,簡(jiǎn)單設(shè)備一般不具有網(wǎng)絡(luò)連接能力,且在智能家居系統(tǒng)中占多數(shù),。采用ZigBee網(wǎng)絡(luò)連接家庭設(shè)備,,節(jié)點(diǎn)成本高且存在供電問(wèn)題,因此本文引入一種帶數(shù)據(jù)交互和網(wǎng)絡(luò)通信功能的智能插座[5],,為簡(jiǎn)單設(shè)備供電的同時(shí)還解決了簡(jiǎn)單設(shè)備的網(wǎng)絡(luò)連接問(wèn)題,,其所構(gòu)成的智能家居網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
采用該智能家居網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有如下優(yōu)勢(shì):(1)引入智能插座,,降低家庭網(wǎng)關(guān)與智能設(shè)備之間的依賴性,,減少家庭網(wǎng)關(guān)和系統(tǒng)結(jié)構(gòu)的復(fù)雜度;(2)智能插座可以隨意地增加或撤除,,具有良好的擴(kuò)展性;(3)智能插座屏蔽了簡(jiǎn)單設(shè)備特定的接口類(lèi)型和底層通信協(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ù)包,,解決粘包問(wèn)題,,HPnP協(xié)議數(shù)據(jù)包采用包頭+包體的格式。其包頭的具體結(jié)構(gòu)如表1所示,。
不同的命令代碼對(duì)Value和Length字段值的意義會(huì)不一樣,,表2是各種命令的結(jié)構(gòu)。
其中,,Length域?yàn)?時(shí),,說(shuō)明該數(shù)據(jù)包沒(méi)有包體,,大于0則為該數(shù)據(jù)包的包體長(zhǎng)度。HPnP協(xié)議的包體主要包括設(shè)備描述符,、圖標(biāo)描述符,、動(dòng)作指令和狀態(tài)報(bào)告等,詳見(jiàn)下節(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)和控制界面,通過(guò)在設(shè)備描述中提供其URL的方式來(lái)提供,。當(dāng)家庭網(wǎng)絡(luò)沒(méi)有連入Internet時(shí),,無(wú)法添加新的智能設(shè)備,因此本文對(duì)設(shè)備的描述分成設(shè)備描述,、圖標(biāo)描述及界面描述等幾部分,,在設(shè)備注冊(cè)階段再一一提交給家庭網(wǎng)關(guān)。其中設(shè)備描述是必備的,,其框架如圖3所示,。
該設(shè)備描述文件主要包括:
(1)設(shè)備屬性(唯一設(shè)備名,、設(shè)備別名,、廠商名稱等);
(2)動(dòng)作列表(動(dòng)作名稱,、參數(shù),、動(dòng)作返回值等);
?。?)狀態(tài)列表(狀態(tài)名稱,、數(shù)據(jù)類(lèi)型、有效值范圍等),。
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)建與銷(xiāo)毀。以下是該家庭網(wǎng)關(guān)對(duì)數(shù)據(jù)的處理過(guò)程:
?。?)線程通過(guò)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īng)顟B(tài),。
(4)當(dāng)用戶操控設(shè)備界面產(chǎn)生控制信息時(shí),,設(shè)備管理單元將控制信息交給網(wǎng)絡(luò)及線程管理單元,。
(5)網(wǎng)絡(luò)及線程管理單元負(fù)責(zé)把待發(fā)送消息分發(fā)到指定線程,,指定線程通過(guò)HPnP協(xié)議處理單元將消息打包并發(fā)送,。
動(dòng)態(tài)生成的界面采用基于數(shù)據(jù)驅(qū)動(dòng)的圖形界面開(kāi)發(fā)方案,實(shí)現(xiàn)了設(shè)備控制界面和設(shè)備邏輯功能的分離,。界面生成主要有以下3種方式:(1)根據(jù)動(dòng)作和狀態(tài)鏈表生成控制界面,。此種方式適用于簡(jiǎn)單設(shè)備,如環(huán)境傳感設(shè)備。通過(guò)分析動(dòng)作和狀態(tài)的特征,,找到與之匹配的控件,。(2)根據(jù)設(shè)備提供的界面描述文檔生成控制界面[7]。此種方式適用于較復(fù)雜的和希望生成個(gè)性化界面的設(shè)備,。(3)通過(guò)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è)控制智能插座的交互過(guò)程,。
圖6顯示了另一個(gè)智能設(shè)備(燈光集中控制設(shè)備)注冊(cè)成功后,家庭網(wǎng)關(guān)上生成該設(shè)備的圖標(biāo)Light和控制界面,,以及智能設(shè)備狀態(tài)改變時(shí)與家庭網(wǎng)關(guān)的交互過(guò)程,。
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)行測(cè)試,,共測(cè)試41組數(shù)據(jù),,其中5組數(shù)據(jù)如表3所示。
從表3可以看出,,隨著連接數(shù)的增加,,該家庭網(wǎng)關(guān)對(duì)設(shè)備的響應(yīng)速度都維持在7 ms左右,且丟包率為0%,,說(shuō)明在通信鏈路正常連接的情況下,,該家庭網(wǎng)關(guān)能及時(shí)響應(yīng)每個(gè)設(shè)備,具有較高的穩(wěn)定性和可靠性,。但隨著連接數(shù)的增加,,該家庭網(wǎng)關(guān)內(nèi)存消耗量幾乎呈線性增加,其趨勢(shì)如圖7所示,。從圖7可推測(cè)出,,當(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),使無(wú) 計(jì)算能力和無(wú)網(wǎng)絡(luò)連接能力的簡(jiǎn)單設(shè)備也能實(shí)現(xiàn)即插即用,。此外,,可對(duì)系統(tǒng)作簡(jiǎn)單修改,使之適用于其他物聯(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ò)通訊功能的智能插座:中國(guó),,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)的圖形界面開(kāi)發(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.