基于ZigBee無(wú)線傳感器網(wǎng)絡(luò)的智能家居設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 根據(jù)智能家居的特點(diǎn)和需求,選用基于ZigBee無(wú)線傳感器網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)以其低功耗,優(yōu)秀組網(wǎng)能力等特點(diǎn),在家用系統(tǒng)控制、樓宇自動(dòng)化、工業(yè)監(jiān)控領(lǐng)域的應(yīng)用。介紹了ZigBee網(wǎng)絡(luò)的特點(diǎn)和應(yīng)用前景,描述了ZigBee協(xié)議,對(duì)ZigBee無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)做了分析,對(duì)于網(wǎng)絡(luò)的設(shè)計(jì)和節(jié)點(diǎn)的加入等進(jìn)行了具體的分析和研究,說(shuō)明了系統(tǒng)能夠?qū)揖迎h(huán)境進(jìn)行良好的監(jiān)控。
關(guān)鍵詞 無(wú)線傳感器網(wǎng)絡(luò);ZigBee協(xié)議;智能家居
現(xiàn)代家庭已經(jīng)從追求家居的豪華裝飾轉(zhuǎn)向家居智能化,享受智能化帶來(lái)的多元化信息,以及安全、舒適、便利的生活方式。網(wǎng)絡(luò)通信、計(jì)算機(jī)、電子和智能傳感器技術(shù)的快速發(fā)展,為智能化家居的發(fā)展提供了機(jī)遇?,F(xiàn)有傳統(tǒng)無(wú)線技術(shù)通常是耗電高,且占用過多的計(jì)算和通信資源,大大增加了成本。而ZigBee技術(shù)具有低復(fù)雜度、低成本、低功耗、高安全性等優(yōu)點(diǎn),能夠滿足智能家居無(wú)線傳感器網(wǎng)絡(luò)的要求。
1 ZigBee技術(shù)
1.1 ZigBee協(xié)議
ZigBee標(biāo)準(zhǔn)是基于IEEE802.15.4的標(biāo)準(zhǔn),ZigBee協(xié)議堆棧分為兩部分,IEEE802.15.4處理低級(jí)MAC層和物理層協(xié)議;應(yīng)用層的標(biāo)準(zhǔn)規(guī)范由ZigBee聯(lián)盟制定,ZigBee聯(lián)盟對(duì)其網(wǎng)絡(luò)層和API進(jìn)行了標(biāo)準(zhǔn)化。ZigBee節(jié)省的大部分能量歸功于專為低功率設(shè)計(jì)的IEEE802.15.4協(xié)議。
1.2 各層協(xié)議的功能
ZigBee協(xié)議棧架構(gòu)如圖1所示,各層之間通過服務(wù)接入點(diǎn)(SAP)實(shí)現(xiàn)層與層之間的數(shù)據(jù)通信和協(xié)議棧管理。層與層之間有2個(gè)服務(wù)接入點(diǎn),一個(gè)提供數(shù)據(jù)傳輸服務(wù),另一個(gè)實(shí)現(xiàn)管理。ZigBee設(shè)備在工作時(shí),各種不同的任務(wù)在不同層次上執(zhí)行,通過層的服務(wù)完成所要執(zhí)行的任務(wù),各項(xiàng)服務(wù)通過服務(wù)原語(yǔ)實(shí)現(xiàn)。物理層完成收發(fā)數(shù)據(jù)、激活和休眠射頻收發(fā)器、信道能量檢測(cè)、空閑信道評(píng)估、數(shù)據(jù)鏈路質(zhì)量指示的功能;物理層規(guī)范了ZigBee通信頻率的工作范圍,即2.4 GHz和868/915 MHz。MAC層主要負(fù)責(zé)協(xié)調(diào)器產(chǎn)生并發(fā)送信標(biāo)幀,普通設(shè)備根據(jù)協(xié)調(diào)器的信標(biāo)幀與協(xié)調(diào)器同步、支持PAN網(wǎng)絡(luò)的關(guān)聯(lián)和取消關(guān)聯(lián)、支持無(wú)線信道通信安全、使用CSMA-CA機(jī)制訪問信道、支持時(shí)隙保障(GTs)機(jī)制、支持不同設(shè)備的MAC層間可靠傳輸;在MAC層上,主要沿用了WLAN中802.11系列標(biāo)準(zhǔn)的載波偵聽多址接入——沖突避免機(jī)制(CSMA-CA),以提高系統(tǒng)的兼容性。網(wǎng)絡(luò)層職責(zé)為加入和離開網(wǎng)絡(luò)機(jī)制、應(yīng)用安全幀的機(jī)制及發(fā)現(xiàn)和保持設(shè)備之間的路徑;網(wǎng)絡(luò)層方面,ZigBee聯(lián)盟規(guī)定了基于ZigBee技術(shù)的網(wǎng)絡(luò)可以采用星狀和網(wǎng)狀拓?fù)?,也可以是兩者結(jié)合。應(yīng)用層由應(yīng)用支持子層、應(yīng)用框架、ZigBee設(shè)備對(duì)象及用戶定義的應(yīng)用對(duì)象組成。應(yīng)用支持子層的作用是維護(hù)設(shè)備綁定表和設(shè)備發(fā)現(xiàn)。設(shè)備對(duì)象的職責(zé)是定義網(wǎng)絡(luò)內(nèi)其它設(shè)備的角色、發(fā)起或回應(yīng)綁定請(qǐng)求、在網(wǎng)絡(luò)設(shè)備間建立安全機(jī)制等。
ZigBee標(biāo)準(zhǔn)中規(guī)定在一個(gè)ZigBee無(wú)線網(wǎng)絡(luò)一般包含3種設(shè)備:協(xié)調(diào)器、路由器、終端節(jié)點(diǎn),對(duì)應(yīng)有全功能設(shè)備FFD和精簡(jiǎn)功能設(shè)備RFD兩類設(shè)備類型,F(xiàn)FD比RFD擁有更強(qiáng)大的計(jì)算能力和更豐富的系統(tǒng)資源,可以充當(dāng)網(wǎng)絡(luò)建立者、管理者或網(wǎng)絡(luò)終端節(jié)點(diǎn)設(shè)備,RFD在網(wǎng)絡(luò)中通常只作為終端設(shè)備,從FFD接收信息或?qū)⑿畔魉徒oFFD。路由器和網(wǎng)絡(luò)協(xié)調(diào)器是FFD設(shè)備,實(shí)現(xiàn)標(biāo)準(zhǔn)中規(guī)定的所有功能,而終端設(shè)備一般是各個(gè)傳感器節(jié)點(diǎn),為RFD設(shè)備。
1.3 網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)
如圖2所示,傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的基本組成和功能包括如下幾個(gè)單元:(1)傳感單元,將節(jié)點(diǎn)與物理世界聯(lián)系起來(lái),由一組傳感器、激勵(lì)裝置和數(shù)模轉(zhuǎn)換功能模塊構(gòu)成。(2)處理單元,由嵌入式系統(tǒng)構(gòu)成,包括CPU、存儲(chǔ)器、嵌入式操作系統(tǒng)等。(3)通信單元,由無(wú)線通信模塊組成。(4)供電裝置,此外可以選擇的其他功能單元包括:定位系統(tǒng)、移動(dòng)系統(tǒng)以及電源自供電系統(tǒng)等。
在傳感器網(wǎng)絡(luò)中大量的節(jié)點(diǎn)部署在感知對(duì)象內(nèi)部或者附近。這些節(jié)點(diǎn)通過自組織的方式構(gòu)成無(wú)線網(wǎng)絡(luò),并以協(xié)作的方式感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中特定的信息,從而實(shí)現(xiàn)對(duì)任意地點(diǎn)信息在任意時(shí)間的采集、處理和分析。
監(jiān)控節(jié)點(diǎn)主要完成兩方面工作:將傳感器放大電路輸出的模擬電壓轉(zhuǎn)換成數(shù)字信號(hào),再將這個(gè)數(shù)字信號(hào)通過ZigBee網(wǎng)絡(luò)發(fā)送給網(wǎng)絡(luò)協(xié)調(diào)器。監(jiān)控節(jié)點(diǎn)加入網(wǎng)絡(luò)后,一直處于睡眠狀態(tài),當(dāng)收到來(lái)自外部的喚醒信號(hào)后,開始進(jìn)行數(shù)據(jù)的采集或發(fā)送報(bào)警信號(hào),完成任務(wù)后再次回到睡眠狀態(tài),直到下一次喚醒。
2 系統(tǒng)方案設(shè)計(jì)
2.1 網(wǎng)絡(luò)的建立
ZigBee協(xié)議規(guī)定:只有當(dāng)前還沒有加入網(wǎng)絡(luò)且具有ZigBee協(xié)調(diào)器能力的設(shè)備,可以嘗試建立一個(gè)新網(wǎng)絡(luò)。當(dāng)建網(wǎng)過程開始后,協(xié)調(diào)器首先對(duì)協(xié)議所規(guī)定的信道或由物理層所默認(rèn)的有效信道進(jìn)行能量檢測(cè)掃描。如果某個(gè)信道的能量低于預(yù)定值,則表示該信道是可用信道,并進(jìn)行標(biāo)記。然后,在可用信道中進(jìn)行主動(dòng)掃描,尋找信道中存在的ZigBee設(shè)備,找到一個(gè)最佳信道,即存在ZigBee設(shè)備相對(duì)較少的信道,由該信道所組建的網(wǎng)絡(luò)即為佳ZigBee網(wǎng)絡(luò)。這時(shí),協(xié)調(diào)器通過一個(gè)PAN標(biāo)識(shí)符來(lái)標(biāo)注該信道,以識(shí)別該新建的網(wǎng)絡(luò)。一旦選擇一個(gè)PAN標(biāo)識(shí)符后,協(xié)調(diào)器將會(huì)為自己分配一個(gè)0x0000的16位邏輯地址,這樣就成功地啟動(dòng)了一個(gè)新網(wǎng)絡(luò),如圖3所示。
(1)在網(wǎng)絡(luò)開始建立前,首先要確定這個(gè)設(shè)備為ZigBee協(xié)調(diào)器。我們通過協(xié)議棧配置文件ZigBee.def中的#define I_AM_COORDINATOR來(lái)定義這個(gè)設(shè)備為ZigBee協(xié)調(diào)器。協(xié)調(diào)器的應(yīng)用層調(diào)用NLME_NETWORK_FORMATION.request原語(yǔ),發(fā)出建立網(wǎng)絡(luò)請(qǐng)求,網(wǎng)絡(luò)層收到這個(gè)原語(yǔ)后,要求MAC層執(zhí)行信道能量掃描。
(2)MAC層調(diào)用MLME_SCAN.request,主要找到信道能量低于設(shè)定能量值的信道,標(biāo)注這些信道是可用信道。通過函數(shù)NWKStartDiscovery(),對(duì)掃描的起始信道進(jìn)行設(shè)置假定起始值為N。然后執(zhí)行MACStartED()對(duì)信道進(jìn)行能量檢測(cè)掃描,得到信道能量值。
(3)通過MACStartScan(TRUE)對(duì)信道N進(jìn)行主動(dòng)掃描,判斷是否發(fā)現(xiàn)網(wǎng)絡(luò)。通過記錄每次接收到的信標(biāo)幀信息掃描可用信道中網(wǎng)絡(luò)活動(dòng)情況,并將掃描結(jié)果記錄在個(gè)域網(wǎng)描述符列表中,最后找到一個(gè)最優(yōu)信道。
(4)調(diào)用函數(shù)APLNetworkForm()在最優(yōu)信道上建立網(wǎng)絡(luò),給網(wǎng)絡(luò)隨機(jī)分配一個(gè)PAN ID,通過MACSetShortAddrLSB(0x00)和MACSetShort AddrMSB(0x00)給協(xié)調(diào)器分配一個(gè)0x0000的網(wǎng)絡(luò)地址,并把協(xié)調(diào)器的MAC地址存入鄰居表中。網(wǎng)絡(luò)層向MAC層發(fā)送MLME_START.request原語(yǔ)請(qǐng)求開始發(fā)送信標(biāo)幀運(yùn)行新的個(gè)域網(wǎng),MAC層將運(yùn)行結(jié)果通過MLME_START.confirm原語(yǔ)返回網(wǎng)絡(luò)層。網(wǎng)絡(luò)層收到個(gè)域網(wǎng)啟動(dòng)狀態(tài)后,通過NL ME_NETWORK_FORMATION.confirm原語(yǔ)將告知應(yīng)用層建立要求的網(wǎng)絡(luò)狀態(tài)。最后協(xié)調(diào)器應(yīng)用層通過發(fā)送NLME_PERMIT_JOIN.request原語(yǔ)允許設(shè)備與網(wǎng)絡(luò)連接。
2.2 設(shè)備入網(wǎng)
在一個(gè)ZigBee協(xié)調(diào)器設(shè)備建立網(wǎng)絡(luò)后,路由器設(shè)備或者終端設(shè)備,可以加入?yún)f(xié)調(diào)器建立的網(wǎng)絡(luò),具體加入網(wǎng)絡(luò)有兩種方式,一種是通過關(guān)聯(lián)(Association)方式,就是待加入的設(shè)備發(fā)起加入網(wǎng)絡(luò),另一種是直接(Direct)方式。下面重點(diǎn)討論第一種方式,也是實(shí)際中用的最多的方式。
首先對(duì)于一個(gè)ZigBee終端設(shè)備,只能加入一個(gè)網(wǎng)絡(luò)。對(duì)于新設(shè)備來(lái)說(shuō),它首先會(huì)掃描周圍它可找到的網(wǎng)絡(luò),尋找有能力批準(zhǔn)自己加入網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)調(diào)器,并把可以找到的所有網(wǎng)絡(luò)協(xié)調(diào)器的資料存入自己的相鄰表。存入相鄰表的網(wǎng)絡(luò)協(xié)調(diào)器的資料包括ZigBee協(xié)議版本、協(xié)議棧配置文件、PAN ID、邏輯信道以及是否允許加入網(wǎng)絡(luò)等。在相鄰表中選擇一個(gè)深度最小的網(wǎng)絡(luò)協(xié)調(diào)器,并對(duì)其發(fā)出請(qǐng)求信息,如果出現(xiàn)相同最小深度的兩個(gè)以上網(wǎng)絡(luò)協(xié)調(diào)器信息,那么隨機(jī)選取一個(gè)發(fā)送請(qǐng)求。如果相鄰表中沒有合適的網(wǎng)絡(luò)協(xié)調(diào)器信息,那么表示入網(wǎng)失敗,終止過程。如果發(fā)出的請(qǐng)求被批準(zhǔn),那么網(wǎng)絡(luò)協(xié)調(diào)器同時(shí)會(huì)分配給它一個(gè)16位的網(wǎng)絡(luò)地址,此時(shí)入網(wǎng)成功,終端設(shè)備可以開始通信。如果請(qǐng)求失敗,那么重新查找相鄰表,繼續(xù)發(fā)送請(qǐng)求信息,直到加入網(wǎng)絡(luò)或者相鄰表中沒有合適的網(wǎng)絡(luò)器。
設(shè)備關(guān)聯(lián)加入網(wǎng)絡(luò)的具體實(shí)現(xiàn)如下:
(1)在加入網(wǎng)絡(luò)前,首先要確定這個(gè)設(shè)備是ZigBee終端設(shè)備。通過協(xié)議棧配置文件ZigBee.def中的#define I_AM_END_DEVICE來(lái)定義這個(gè)設(shè)備為ZigBee終端設(shè)備。
(2)確定為終端設(shè)備后,應(yīng)用層首先設(shè)定待掃描的信道以及每個(gè)信道掃描的時(shí)間,調(diào)用NLME_NE1WORK_DISCOVERY.request原語(yǔ)尋找合適網(wǎng)絡(luò),網(wǎng)絡(luò)層收到該原語(yǔ)后,通過MLME_SCAN.request,原語(yǔ)要求MAC層執(zhí)行主動(dòng)掃描獲得目前網(wǎng)絡(luò)描述參數(shù)。通過函數(shù)NWKStartDiscovery(),對(duì)掃描的起始信道進(jìn)行設(shè)置,假定起始值為N。然后執(zhí)行MACStartScan(TRUE)對(duì)信道N進(jìn)行主動(dòng)掃描。
(3)完成掃描后,網(wǎng)絡(luò)層將發(fā)送NLMF_NETWORK_DISCOVERY.confirm原語(yǔ)告知應(yīng)用層。通過調(diào)用回調(diào)函數(shù)AppOkayToAssociate()來(lái)判斷是否要加入這個(gè)網(wǎng)絡(luò),判斷的標(biāo)準(zhǔn)是網(wǎng)絡(luò)協(xié)調(diào)器的MAC地址是否符合終端設(shè)備的要求,這樣可以使終端設(shè)備加入到指定的網(wǎng)絡(luò)中,應(yīng)用層根據(jù)情況調(diào)用NLME_JOIN.request原語(yǔ)從鄰居表中選擇所發(fā)現(xiàn)的網(wǎng)絡(luò)加入。網(wǎng)絡(luò)確定后,網(wǎng)絡(luò)層將請(qǐng)求MAC層管理實(shí)體對(duì)邏輯信道,PAN標(biāo)識(shí)符等有關(guān)屬性進(jìn)行配置,發(fā)送MLME_SYNC.request原語(yǔ)獲取它所要連接協(xié)調(diào)器的信標(biāo),實(shí)現(xiàn)與協(xié)調(diào)器的同步。然后調(diào)用MLME_ASSOCIATE.request原語(yǔ)到MAC層。
(4)執(zhí)行函數(shù)PHYPutTxData(MAC_CMD_AS_SOCIATE_REQ)向協(xié)調(diào)器發(fā)送加入請(qǐng)求,并等待發(fā)送加入請(qǐng)求的確認(rèn)。協(xié)調(diào)器接收到連接請(qǐng)求后首先調(diào)用MACIsJoinPermitted()來(lái)判斷網(wǎng)絡(luò)是否允許任何設(shè)備關(guān)聯(lián),允許則返回給終端設(shè)備確認(rèn)幀。協(xié)調(diào)器的網(wǎng)絡(luò)層將分配惟一的16位網(wǎng)絡(luò)地址給該設(shè)備,并根據(jù)設(shè)備提供的信息在它的鄰居表中為終端設(shè)備創(chuàng)建新的入口,隨后向MAC發(fā)送表明連接成功的MLM_ASSOCIATE.response原語(yǔ)表明設(shè)備已經(jīng)成功同網(wǎng)絡(luò)連接。設(shè)備的MAC層收到來(lái)自協(xié)調(diào)器的連接響應(yīng)命令幀后,通過MLME_ASSOCIATE.confirm原語(yǔ)發(fā)送給設(shè)備應(yīng)用層表明加入成功,設(shè)備的網(wǎng)絡(luò)層將在鄰居表中設(shè)置邏輯地址信息。
3 結(jié)束語(yǔ)
介紹了基于ZigBee無(wú)線傳感器網(wǎng)絡(luò)技術(shù)組建信息家居網(wǎng)絡(luò),如圖4所示,能夠?qū)揖迎h(huán)境進(jìn)行較好的監(jiān)控,根據(jù)現(xiàn)在家居存在的問題,擬采取現(xiàn)有通信網(wǎng)絡(luò)與短距離無(wú)線網(wǎng)絡(luò)相結(jié)合的方法提高家居數(shù)據(jù)的準(zhǔn)確性、實(shí)時(shí)性和可靠性。相對(duì)于常見的Bluetooth、Wi-Fi等具有低復(fù)雜度、低成本、低功耗、高安全性等優(yōu)點(diǎn),隨著無(wú)線網(wǎng)絡(luò)技術(shù)的進(jìn)一步發(fā)展,它將成為智能家居發(fā)展的趨勢(shì)。