基于ZigBee技術(shù)的智能家居系統(tǒng)內(nèi)部組網(wǎng)設(shè)計(jì)
摘要:為了提高智能家居系統(tǒng)的快速部署能力、降低構(gòu)建成本,提出了一種利用ZigBee 無線組網(wǎng)技術(shù),構(gòu)建智能家居系統(tǒng)內(nèi)部基礎(chǔ)網(wǎng)絡(luò)的設(shè)計(jì)方案。該方案采用無線射頻收發(fā)CC2430 芯片和外圍電路設(shè)計(jì)終端設(shè)備與中心協(xié)調(diào)器的硬件電路。根據(jù)ZigBee 協(xié)議棧使用C 語言編寫終端設(shè)備和中心協(xié)調(diào)器的通信應(yīng)用軟件。
世界上第一幢智能建筑1984 年在美國出現(xiàn)后,家居環(huán)境智能化已成為當(dāng)前的社會主流,隨著人們生活節(jié)奏的加快和生活壓力的加大,智能家居成為人們追求舒適生活的必要途徑。智能家居網(wǎng)絡(luò)是指在家庭內(nèi)部通過一定的傳輸介質(zhì)( 如電力線、雙絞線、同軸電纜、無線電、紅外等) 將各種電氣設(shè)備和電氣子系統(tǒng)連接起來,采用統(tǒng)一的通信協(xié)議,對內(nèi)實(shí)現(xiàn)資源控制,對外能通過網(wǎng)關(guān)設(shè)備與外部互連進(jìn)行信息交換的網(wǎng)絡(luò)系統(tǒng)。文中提出了通過ZigBee 無線組網(wǎng)技術(shù)構(gòu)建智能家居系統(tǒng)底層網(wǎng)絡(luò)的方案。目的在于使智能家居系統(tǒng)的底層網(wǎng)絡(luò)構(gòu)建變得簡單快速,進(jìn)而使整個智能家居系統(tǒng)具備快速部署和易擴(kuò)展的特性。
1 網(wǎng)絡(luò)結(jié)構(gòu)概述
文中設(shè)計(jì)的智能家居系統(tǒng)基層網(wǎng)絡(luò)采用ZigBee無線組網(wǎng)技術(shù)實(shí)現(xiàn)家居系統(tǒng)內(nèi)部網(wǎng)絡(luò),基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)采用星型拓?fù)浣Y(jié)構(gòu)。通過ZigBee 無線通訊模塊與智能家電以及傳感器構(gòu)成家居內(nèi)部網(wǎng)絡(luò)的終端設(shè)備; 使用FFD( Full Function Device) 設(shè)備為家居內(nèi)部ZigBee網(wǎng)絡(luò)的中心協(xié)調(diào)器,負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò); 在中心協(xié)調(diào)器與中央控制服務(wù)器之間使用RS232 串口通信實(shí)現(xiàn)連接,并通過PC 機(jī)與互聯(lián)網(wǎng)相連,系統(tǒng)結(jié)構(gòu)如圖1 所示。作為智能家居系統(tǒng)的底層基礎(chǔ)網(wǎng)絡(luò),家居內(nèi)部ZigBee 無線網(wǎng)絡(luò)可以實(shí)現(xiàn)的功能有: ( 1) 收集家庭環(huán)境內(nèi)部的數(shù)據(jù)和信息。( 2) 對于終端設(shè)備上傳的簡單情況做初步的預(yù)處理。( 3) 匯總基礎(chǔ)網(wǎng)絡(luò)信息,通過RS232 串口通訊協(xié)議將數(shù)據(jù)上傳到中央控制服務(wù)器。
圖1 系統(tǒng)結(jié)構(gòu)圖
2 ZigBee 技術(shù)
ZigBee 是基于IEEE802. 15. 4 標(biāo)準(zhǔn)制定的一種短距離、低功耗的無線個人網(wǎng)絡(luò)通信協(xié)議,具有近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本的特點(diǎn)。
ZigBee 協(xié)議棧是以O(shè)SI(Open Systems Interconnection)七層結(jié)構(gòu)為參考建立起來的,為簡化協(xié)議棧,ZigBee 協(xié)議棧由4 個層結(jié)構(gòu)組成,即物理層、MAC 層、網(wǎng)絡(luò)層和應(yīng)用層,ZigBee 協(xié)議棧結(jié)構(gòu)如圖2 所示。
圖2 ZigBee 協(xié)議棧結(jié)構(gòu)圖。
?。?1) 物理層: 主要功能是啟動和關(guān)閉無線電收發(fā)機(jī)、當(dāng)前頻道內(nèi)的能量監(jiān)測、接收包連接質(zhì)量指示、為CSMA - CA 確認(rèn)清除頻道、頻道頻率選擇、數(shù)據(jù)傳輸和接收。
?。?2) 介質(zhì)接入控制層( MAC 層) : MAC 層負(fù)責(zé)維護(hù)物理無線電頻道的接口,任務(wù)包括: 對于協(xié)調(diào)器要負(fù)責(zé)產(chǎn)生網(wǎng)絡(luò)信標(biāo)、對網(wǎng)絡(luò)信標(biāo)進(jìn)行同步、維護(hù)個人局域網(wǎng)的加入和離開、維護(hù)設(shè)備安全、利用CSMA - CA 機(jī)制進(jìn)行頻道管理、處理與維護(hù)GTS 機(jī)制、在MAC 實(shí)體內(nèi)部保證可靠的連接等。
?。?3) 網(wǎng)絡(luò)層: ZigBee 網(wǎng)絡(luò)層由ZigBee 聯(lián)盟自行定義,負(fù)責(zé)為無線網(wǎng)絡(luò)提供建立、加入和離開網(wǎng)絡(luò),進(jìn)行路由轉(zhuǎn)發(fā)等功能。
?。?4) 應(yīng)用層: 由用戶根據(jù)需要來自行開發(fā),概括來說,應(yīng)用層要實(shí)現(xiàn)的功能為: 維持節(jié)點(diǎn)功能,發(fā)現(xiàn)該節(jié)點(diǎn)附近的其他工作節(jié)點(diǎn),維護(hù)和管理多個節(jié)點(diǎn)之間的通信。
3 ZigBee 基層網(wǎng)絡(luò)硬件
3. 1 ZigBee 數(shù)傳模塊介紹
系統(tǒng)ZigBee 基礎(chǔ)網(wǎng)絡(luò)的數(shù)傳模塊采用的芯片為CC2430 射頻芯片,CC2430 是無線SOC ( System OnChip) 設(shè)計(jì),系統(tǒng)所需的一般電路都已集成在芯片內(nèi)部,只需簡單外圍電路就能實(shí)現(xiàn)信號收發(fā)功能。
CC2430 應(yīng)用電路如圖3 所示。
圖3 CC2430 應(yīng)用電路。
電路使用非平衡天線。其中非平衡變壓器由電容C341和電感L341、L321、L331以及一個印制板微波傳輸線組成,整個結(jié)構(gòu)滿足射頻輸入、輸出匹配電阻50 Ω 的要求; R221和R261為偏置電阻,電阻R221主要用來為32 MHz的晶振提供合適的工作電流; XTAL1為32 MHz晶振,用1 個32 MHz 的石英諧振器和2 個電容( C191和C211) 構(gòu)成一個32 MHz 的晶振電路; XTAL2為32. 768 kHz 晶振,用1 個32. 768 kHz 的石英諧振器和2 個電容( C441和C431) 構(gòu)成一個32. 768 kHz 的晶振電路; 電壓調(diào)節(jié)器為所有要求1. 8 V 電壓的引腳和內(nèi)部電源供電,電容C241和C421為去耦合電容,用來電源濾波,以提高芯片工作的穩(wěn)定性。本系統(tǒng)在終端設(shè)備和中心協(xié)調(diào)器的設(shè)計(jì)中都采用標(biāo)準(zhǔn)的10 芯調(diào)試接口。
調(diào)試接口使用CC2430 的P2_1作為調(diào)試數(shù)據(jù)IO,P2_2作為調(diào)試時鐘,在非調(diào)試模式下這兩個IO 可作為GPIO.
調(diào)試接口允許片上的Flash 編程,且能訪問存儲器和寄存器、設(shè)置斷點(diǎn)、單步運(yùn)行和修改寄存器內(nèi)容。當(dāng)RESET_N輸入保持低電平時,如果強(qiáng)制調(diào)試時鐘連續(xù)經(jīng)歷兩個上升沿,系統(tǒng)便進(jìn)入調(diào)試模式。
3. 2 終端設(shè)備結(jié)構(gòu)設(shè)計(jì)
終端設(shè)備是智能家居環(huán)境內(nèi)部數(shù)據(jù)來源以及控制命令的具體執(zhí)行者,如圖4 所示,其主要由智能家電模塊、信號調(diào)制模塊和ZigBee 數(shù)傳模塊組成。一方面,終端設(shè)備通過智能家電模塊中的傳感器單元收集家居環(huán)境的內(nèi)部數(shù)據(jù)信息,通過信號調(diào)制模塊得到有用信號,然后借助無線數(shù)傳模塊將信息上傳; 另一方面,終端設(shè)備可通過無線數(shù)傳模塊接收控制命令,并傳達(dá)給智能家電模塊的命令執(zhí)行單元進(jìn)行命令執(zhí)行。
圖4 終端設(shè)備結(jié)構(gòu)。
3. 3 中心協(xié)調(diào)器結(jié)構(gòu)設(shè)計(jì)
中心協(xié)調(diào)器是智能家居無線內(nèi)部網(wǎng)絡(luò)的核心,負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò),并通過串口向PC 機(jī)發(fā)送終端設(shè)備上傳來的數(shù)據(jù)信息,同時將控制中心傳達(dá)的命令傳達(dá)到正確的終端設(shè)備,具體結(jié)構(gòu)如圖5 所示。與終端設(shè)備的不同之處在于中心協(xié)調(diào)器不包含智能家電模塊和信號調(diào)制模塊,為偵聽串口接收中斷,在中心協(xié)調(diào)器硬件平臺上擴(kuò)展了RS232 串口。
圖5 中心協(xié)調(diào)器結(jié)構(gòu)。
4 ZigBee 網(wǎng)絡(luò)通訊軟件
4. 1 信道分配
通過ZigBee 協(xié)議棧中的MAC _ RADIO _ SET _CHANEL( x) 可以配置智能家居系統(tǒng)無線ZigBee 網(wǎng)絡(luò)的無線信道,其中形參x 為信道編號,缺省值為11 頻道。在mac_radio_defs. h 文件中可定義MAC_RADIO_SET_CHANEL( x) 函數(shù)。
原語來啟動智能家居系統(tǒng)網(wǎng)絡(luò)的建立。由于文中采用星型網(wǎng)絡(luò),所以在智能家居系統(tǒng)中只允許中心協(xié)調(diào)器進(jìn)行初始的網(wǎng)絡(luò)建立。
具體過程: 應(yīng)用層通過NLME _ NETWORK _FORMATION. request 開啟網(wǎng)絡(luò)建立過程。網(wǎng)絡(luò)層接收命令后,隨即要求MAC 層進(jìn)行信道掃描; MAC 層完成第一次掃描后,將掃描結(jié)果回饋到網(wǎng)絡(luò)層,網(wǎng)絡(luò)層管理實(shí)體對接收到的信道按照能量值進(jìn)行排序,并進(jìn)一步處理,找到一條合適的信道; 隨后網(wǎng)絡(luò)層會為這個網(wǎng)絡(luò)配置一個PAN 標(biāo)識符和一個16 位的網(wǎng)絡(luò)地址來啟動網(wǎng)絡(luò)。
4. 2 加入網(wǎng)絡(luò)
首先,終端設(shè)備通過NLME_NETWORK_DISCOVERY.request 原語,啟動加入網(wǎng)絡(luò)流程。網(wǎng)絡(luò)層隨后發(fā)送MLME_SCAN. request,要求MAC 層執(zhí)行信道掃描。
當(dāng)MAC 完成掃描后就會向網(wǎng)絡(luò)層管理實(shí)體回饋掃描信息。網(wǎng)絡(luò)層管理實(shí)體隨后發(fā)送網(wǎng)絡(luò)發(fā)現(xiàn)確認(rèn)原語,將掃描到的ZigBee 版本號、堆棧結(jié)構(gòu)、各域網(wǎng)標(biāo)識符、邏輯信道以及是否允許連接等信息上傳應(yīng)用層。應(yīng)用層決定是否加入并通過發(fā)送加入原語申請加入。此時中心協(xié)調(diào)器在收到終端設(shè)備的申請加入請求后,中心協(xié)調(diào)器通過NLME_NETWORK_JOINING. request 原語向MAC 層下達(dá)允許加入的命令,并通過NLME _PERMIT_ JOINING. confirm 原語反饋命令執(zhí)行情況。
加入請求原語中的PermitDuration 參數(shù)是ZigBee 協(xié)調(diào)器允許終端設(shè)備的連接時間,有效值范圍0x00 ~0xFF.當(dāng)PermitDuration 參數(shù)被設(shè)定在0x01 到0xFE之間時,網(wǎng)絡(luò)層管理實(shí)體就會設(shè)定一個定時器,用來計(jì)時,以此進(jìn)行連接的時間限制。在智能家居系統(tǒng)中通常不需要對終端設(shè)備與中心協(xié)調(diào)器的連接進(jìn)行時間限制,所以這一參數(shù)通常設(shè)定為0xFF.
4. 3 終端設(shè)備程序流程
終端設(shè)備,通過傳感器模塊收集信息,并借助ZigBee模塊將收集來的信息上傳,當(dāng)ZigBee 模塊接收到控制命令時,控制模塊負(fù)責(zé)根據(jù)命令執(zhí)行操作。程序流程如下: 開啟電源啟動終端設(shè)備,初始化終端設(shè)備的硬件資源、并啟動協(xié)議棧、加入網(wǎng)絡(luò)。當(dāng)設(shè)備成功加入網(wǎng)絡(luò)后,開始設(shè)置循環(huán)采集時鐘,當(dāng)有數(shù)據(jù)包被收到后,終端設(shè)備隨即解讀數(shù)據(jù)信息,并執(zhí)行命令。沒有數(shù)據(jù)包接收就進(jìn)入采集過程,當(dāng)發(fā)現(xiàn)采集數(shù)據(jù)超過限制時,按預(yù)定程序進(jìn)入處理程序并向上傳達(dá)報警數(shù)據(jù)包報警,當(dāng)?shù)竭_(dá)循環(huán)采樣點(diǎn)時,系統(tǒng)將該時刻的采集數(shù)據(jù)上傳。
圖6 終端設(shè)備程序流程圖
4. 4 中心協(xié)調(diào)器程序流程
中心協(xié)調(diào)器由ZigBee 模塊接收終端設(shè)備上傳來的數(shù)據(jù)信息,并通過串口線連接PC 機(jī)器,將收集來的信息傳輸給中央控制服務(wù)器。流程如下: 開啟電源開關(guān)啟動中心協(xié)調(diào)器,其主程序啟動。通過halBoardInit( )函數(shù)初始化設(shè)備的硬件設(shè)備,系統(tǒng)進(jìn)入網(wǎng)絡(luò)建立過程。
當(dāng)網(wǎng)絡(luò)建立完成之后,中心協(xié)調(diào)器進(jìn)入一個無限的循環(huán)工作狀態(tài): 如果有無線電數(shù)據(jù),就進(jìn)入無線電接收數(shù)據(jù)過程,接收完成后還需要將接收來的信息,上傳到控制中心; 如果沒有無線電數(shù)據(jù)接入,則判斷串口控制命令,協(xié)調(diào)器隨即開始解析命令,并向下傳達(dá)。當(dāng)這兩個過程完成時,系統(tǒng)回到判斷是否有無線電數(shù)據(jù)的判斷過程,系統(tǒng)進(jìn)入再一次循環(huán)。
圖7 中心協(xié)調(diào)器程序流程圖
5 結(jié)束語
以ZigBee 無線組網(wǎng)技術(shù)構(gòu)建智能家居系統(tǒng)的底層基礎(chǔ)網(wǎng)絡(luò),通過構(gòu)建一種成本低廉、部署快捷的基礎(chǔ)無線網(wǎng)絡(luò),進(jìn)而降低智能家居系統(tǒng)的搭建成本和構(gòu)建難度。此外,以此為基礎(chǔ)的智能家居系統(tǒng)還具有良好的擴(kuò)展性,可根據(jù)具體的應(yīng)用需求,在不同的智能家電模塊與無線數(shù)傳模塊之間實(shí)現(xiàn)連接,使之接入智能家居系統(tǒng)。
評論