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