基于ZigBee技術(shù)的家居智能無線網(wǎng)絡(luò)系統(tǒng)
摘要:介紹了一種基于ZigBee技術(shù)的智能家居無線網(wǎng)絡(luò)系統(tǒng)。重點(diǎn)闡述了該系統(tǒng)的組成、通訊協(xié)議以及無線節(jié)點(diǎn)的軟硬件設(shè)計(jì)。該系統(tǒng)在傳統(tǒng)的有線家居網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ)上使用ZigBee技術(shù),使其具有成本低、功耗低、覆蓋范圍大的特點(diǎn)。特別是其符合IEEE802.15.4協(xié)議,利用系統(tǒng)與其它符合標(biāo)準(zhǔn)的產(chǎn)品的互聯(lián),具有良好的通用性和可擴(kuò)展性。
關(guān)鍵詞:智能家居 無線網(wǎng)絡(luò) ZigBee 低功耗
在智能家居系統(tǒng)中,將無線網(wǎng)絡(luò)技術(shù)應(yīng)用于家庭網(wǎng)絡(luò)已成為勢不可擋的趨勢。這不僅僅是因?yàn)闊o線網(wǎng)絡(luò)可以提供更大的靈活性、流動(dòng)性,省去花在綜合布線上的費(fèi)用和精力,而且更因?yàn)樗霞彝ゾW(wǎng)絡(luò)的通訊特點(diǎn)。隨著無線網(wǎng)絡(luò)技術(shù)的進(jìn)一步發(fā)展,必將大大促進(jìn)家庭網(wǎng)絡(luò)智能化的進(jìn)程。
本文介紹的智能家居無線網(wǎng)絡(luò)系統(tǒng)采用ZigBee技術(shù),它是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無線通信技術(shù),符合IEEE802.15.4協(xié)議,是IEEE工作組專門為家庭短距離通訊制定的新標(biāo)準(zhǔn)。
1 ZigBee技術(shù)簡介
ZigBee技術(shù)的主要優(yōu)點(diǎn)有:(1)省電:兩節(jié)五號電池可使用長達(dá)六個(gè)月到兩年左右的時(shí)間;(2)可靠;采用了碰撞避免機(jī)制;(3)成本低;(4)時(shí)延短;(5)網(wǎng)絡(luò)容量大;(6)安全:ZigBee提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,加密算法采用AES-128,各種應(yīng)用可以靈活確定其安全屬性。
ZigBee技術(shù)的特點(diǎn)完全符合家庭網(wǎng)絡(luò)通訊的需要,因此選擇ZigBee技術(shù)構(gòu)建智能家居無線網(wǎng)絡(luò)系統(tǒng)。
2 智能家居無線網(wǎng)絡(luò)系統(tǒng)
本系統(tǒng)以家庭為單位進(jìn)行設(shè)計(jì)安裝,每個(gè)家庭都安裝一個(gè)家庭網(wǎng)關(guān)、若干個(gè)無線通訊ZigBee子節(jié)能模塊。在家庭網(wǎng)關(guān)和每個(gè)子節(jié)點(diǎn)上都接有一個(gè)HeliLink無線網(wǎng)絡(luò)收發(fā)模塊(符號ZigBee技術(shù)標(biāo)準(zhǔn)的產(chǎn)品),通過這些無線網(wǎng)絡(luò)收發(fā)模塊,數(shù)據(jù)在網(wǎng)關(guān)和子節(jié)點(diǎn)之間進(jìn)行傳送。其系統(tǒng)組成如圖1所示。
下面介紹各部分的結(jié)構(gòu)及功能。
家庭網(wǎng)關(guān)的結(jié)構(gòu)及功能為:
(1)采用ARM構(gòu)架的32位嵌入式RISC處理器和.uClinux操作系統(tǒng);
(2)通過門鎖進(jìn)行自動(dòng)設(shè)防/解防;
(3)遇搶劫或疾病,按緊急按鈕,自動(dòng)向管理中心報(bào)警;
(4)每家每戶配有自己的網(wǎng)頁,通過網(wǎng)頁顯示小區(qū)通知、系統(tǒng)各部分工作狀況及數(shù)據(jù);
(5)水、電、氣各表數(shù)據(jù)發(fā)給牧業(yè)管理中心;
(6)通過以太網(wǎng)與小區(qū)管理中心通訊;
(7)通過網(wǎng)關(guān)上的無線ZigBee(IEEE802.15.4)模塊與網(wǎng)絡(luò)中各子節(jié)點(diǎn)進(jìn)行通訊。
ZigBee無線通訊子節(jié)點(diǎn)的功能為:
(1)兩路脈沖量數(shù)據(jù)采集,可采集水、電、氣三表數(shù)據(jù);
(2)兩路安防傳感器開關(guān)量數(shù)據(jù)采集,可進(jìn)行設(shè)防/撤防報(bào)警、安防報(bào)警(紅外幕簾、門磁、窗磁、玻璃破碎等);
(3)一路模擬量數(shù)據(jù)采集;
(4)一路模擬量數(shù)據(jù)輸出;
(5)一路繼電器觸點(diǎn)輸出;
(6)通過無線通訊IEEE802.15.4協(xié)議及家庭網(wǎng)關(guān)通訊。
3 通訊協(xié)議
3.1 ZigBee協(xié)議的幀結(jié)構(gòu)
采用符號ZigBee標(biāo)準(zhǔn)的HeliLink模塊的數(shù)據(jù)幀由數(shù)據(jù)模式、目標(biāo)地址、數(shù)據(jù)長度、數(shù)據(jù)信息與校驗(yàn)和五部分構(gòu)成,格式如下(數(shù)據(jù)幀結(jié)構(gòu)中的數(shù)據(jù)都是16進(jìn)制數(shù)):
“數(shù)據(jù)模式”占用一個(gè)字節(jié)。“目標(biāo)地址”表示數(shù)據(jù)幀結(jié)構(gòu)要發(fā)送的目標(biāo)位置(網(wǎng)絡(luò)中的節(jié)點(diǎn)號),它占用一個(gè)字節(jié)。“數(shù)據(jù)長度”表示數(shù)據(jù)幀結(jié)構(gòu)中從“數(shù)據(jù)1”到“數(shù)據(jù)n”所占據(jù)的字節(jié)數(shù),它也占據(jù)了一個(gè)字節(jié)。“數(shù)據(jù)信息”表示用戶要通過UART0傳送的命令或者有效數(shù)據(jù),占據(jù)的字節(jié)數(shù)由“數(shù)據(jù)長度”決定。“校驗(yàn)和”是對幀結(jié)構(gòu)中的全部數(shù)據(jù)(校驗(yàn)和字節(jié)除外)進(jìn)行的校驗(yàn),采用字節(jié)逐位異或的方式實(shí)現(xiàn)。“校驗(yàn)和”也占據(jù)一個(gè)字節(jié)。
3.2 無線網(wǎng)絡(luò)通訊協(xié)議幀結(jié)構(gòu)
家庭網(wǎng)關(guān)通訊協(xié)議幀結(jié)構(gòu)是建立在ZigBee協(xié)議幀結(jié)構(gòu)的基礎(chǔ)上的,相當(dāng)于底層協(xié)議中的數(shù)據(jù)場部分。所以幀結(jié)構(gòu)由節(jié)點(diǎn)號、功能編碼、數(shù)據(jù)信息三部分組成,如下所示:
節(jié)點(diǎn)號字段數(shù)據(jù)長度為1字節(jié),其中低四位為數(shù)據(jù)采集功能編號,高四位為子節(jié)點(diǎn)號,如下所示:
功能編碼分為三個(gè)部分:方向位、數(shù)據(jù)類型和功能類型。其格式為:
方向位:
根據(jù)主節(jié)點(diǎn)作為通訊發(fā)送者還是接收者,本系統(tǒng)功能可分為兩大類:上行和下行。方向位即決定了這一點(diǎn)。
數(shù)據(jù)類型:
數(shù)據(jù)信息與功能編碼關(guān)系十分密切,根據(jù)功能不同,數(shù)據(jù)場中數(shù)據(jù)的內(nèi)容含義不同;根據(jù)數(shù)據(jù)長度不同,數(shù)據(jù)類型也不同。
功能類型:
每一個(gè)功能類型對應(yīng)一種系統(tǒng)功能。通過解析功能類型編碼可得到系統(tǒng)功能,對于下行幀,子節(jié)點(diǎn)得到主節(jié)點(diǎn)通知其執(zhí)行的命令和需要的數(shù)據(jù);對于上行幀,主節(jié)點(diǎn)得到子節(jié)點(diǎn)返回的信息、數(shù)據(jù)和命令執(zhí)行的情況。
數(shù)據(jù)信息存放數(shù)據(jù),數(shù)據(jù)信息長度可根據(jù)功能編碼中的數(shù)據(jù)類型而定。
4 無線節(jié)點(diǎn)硬件設(shè)計(jì)
由于無線節(jié)點(diǎn)使用電池供電,且需要安裝在三表或電器內(nèi)部,要求電池體積很小,因此電池的容量不可能太大。希望一顆鈕扣電池可以有效工作一年以上。無線通訊需要電池提供足夠大的電流,耗電量較大,所以低功耗設(shè)計(jì)成為子節(jié)點(diǎn)設(shè)計(jì)的重點(diǎn)和難點(diǎn)。
無線網(wǎng)絡(luò)節(jié)點(diǎn)硬件組成如圖2所示,采用TI公司的16位單片機(jī)MSP430F1232作為處理器,采用符合ZigBee標(biāo)準(zhǔn)的Heililink無線網(wǎng)絡(luò)收發(fā)模塊建立無線通訊,采用RAMTRON公司的鐵電存儲器FM24LC16存儲數(shù)據(jù),開關(guān)量輸出使用松下公司的磁保持繼電器TQ2L2—3V,PWM輸出放大器采用MAXIM公司的MAX4464。使用鋰離子鈕扣電池供電,通過采用TI公司的電荷泵IPS60210將電壓穩(wěn)定至3.3V。無線子節(jié)點(diǎn)通過查詢八位撥碼開關(guān)確定其功能,可以實(shí)現(xiàn)兩路脈沖量的計(jì)數(shù)、兩路開關(guān)量的輸入、兩路開關(guān)量的輸出、一路模擬量的輸入、一路模擬量的輸出、電池電量采集無線通訊等功能。
4.1 處理器
處理器采用TI公司的16位單片機(jī)MSP430F1232。該單片機(jī)突出的特點(diǎn)是可以實(shí)現(xiàn)極低的功耗,具有五種省電工作模式,而每種工作模式可以通過對時(shí)鐘的控制實(shí)現(xiàn)不同的功耗,其工作在LPM4模式下的功耗電流只有0.1μA,非常適合采用電池供電的系統(tǒng)。片內(nèi)FLASH ROM用于存儲應(yīng)用程序、通訊協(xié)議;UART接口連接無線通信模塊;10位A/D轉(zhuǎn)換器實(shí)現(xiàn)電池電壓檢測、模擬量輸入;內(nèi)部16位定時(shí)計(jì)數(shù)器實(shí)現(xiàn)PWM輸出,經(jīng)低通濾波后,再由放大器放大,實(shí)現(xiàn)模擬量輸出;I2C接口連接鐵電存儲器FRAM。其余的通用輸入輸出端口分別實(shí)現(xiàn)數(shù)字量和脈沖量的輸入、輸出以及撥碼開關(guān)狀態(tài)的輸入。
4.2 鐵電存儲器
存儲器采用RAMTRON公司的FM24CL16,它是一種串行非易失性存儲器,其特點(diǎn)是可無限次地讀寫,掉電數(shù)據(jù)可保護(hù)10年;寫數(shù)據(jù)無延時(shí);使用二線制串行總線及其傳輸規(guī)范進(jìn)行雙向傳輸,這種方式占用腳位少,占用線路板空間小,總線速度可以達(dá)到1MHz,靜態(tài)工作電流僅為1μA。這些特點(diǎn)使其十分適合本設(shè)計(jì)對功耗低、體積小、數(shù)據(jù)讀寫頻繁的要求。
4.3 磁保持繼電路
磁保持繼電器采用松下公司的TQ2-L2—3V,通過MSP430F1232的輸出管腳DO_S、DO_R控制開關(guān)管Q1、Q2的開關(guān)狀態(tài),實(shí)現(xiàn)繼電器線圈電流的通斷控制,從而控制繼電器觸點(diǎn)的動(dòng)作。如果采用傳統(tǒng)繼電器,需要一直提供電流來維持繼電器狀態(tài),這樣功耗很難降低。磁保持繼電器具有鎖存功能,觸點(diǎn)動(dòng)作后無需繼續(xù)提供電流,從而降低了功耗。其開關(guān)兩端可耐壓直流220V,交流250V,滿足了通斷市電的要求。
4.4 無線網(wǎng)絡(luò)收發(fā)模塊
該模塊特點(diǎn)是體積小、內(nèi)嵌網(wǎng)絡(luò)通訊協(xié)議,符合ZigBee網(wǎng)絡(luò)層的標(biāo)準(zhǔn),為IEEE.802.15.4標(biāo)準(zhǔn)兼容產(chǎn)品,可實(shí)現(xiàn)高效率發(fā)射、高靈敏度接收,無線數(shù)據(jù)速率高達(dá)76.8kbit/s。通過串口與MSP430F1232進(jìn)行通訊,將獲得的數(shù)據(jù)無線發(fā)送出去。
4.5 撥碼開關(guān)
八位撥碼開關(guān)的狀態(tài)決定該子節(jié)點(diǎn)的節(jié)點(diǎn)號和其實(shí)現(xiàn)的功能。
5 無線節(jié)點(diǎn)軟件設(shè)計(jì)
鑒于節(jié)點(diǎn)使用的通用性要求,需要上電后根據(jù)撥碼開關(guān)確定子節(jié)點(diǎn)號及其所要完成的功能。其主要功能包括水電氣三表的數(shù)據(jù)采集和存儲、報(bào)警信息的獲取、設(shè)防撤防狀態(tài)的獲取和以上信息數(shù)據(jù)的無線發(fā)送。根據(jù)撥碼開關(guān)的狀態(tài)確定節(jié)點(diǎn)需要完成的其中一項(xiàng)或幾項(xiàng)工作,并調(diào)用相應(yīng)的初始化程序。由于無線通訊模塊的功耗較大,CPU大部分時(shí)間都處于休眠狀態(tài),通過各級中斷喚醒CPU和恢復(fù)無線通訊模塊的正常工作。數(shù)據(jù)的無線發(fā)送和接收要遵守家庭網(wǎng)關(guān)通訊協(xié)議。
系統(tǒng)主程序流程圖如圖3所示。系統(tǒng)上電后,先關(guān)閉看門狗定時(shí)器,開關(guān)電源進(jìn)入SNOOZE節(jié)功狀態(tài),同時(shí)關(guān)閉無線通訊模塊電源,進(jìn)行I2C接口的初始化,讀取撥碼開關(guān)狀態(tài),并根據(jù)撥碼開關(guān)的狀態(tài)進(jìn)行單片機(jī)通用I/O口的初始化,以確定其作為脈沖量輸入端口還是開關(guān)量輸入端口,或是撤防設(shè)防輸入端口。其中,若作為脈沖量輸入端口,則調(diào)用相應(yīng)脈沖量初始化程序,設(shè)置其端口為上升沿觸發(fā);若作為開關(guān)量輸入端口,則調(diào)用相應(yīng)開關(guān)量初始化程序,設(shè)置其端口為下降觸發(fā);若作為撤防設(shè)防輸入端口,則調(diào)用設(shè)防撤防初始化程序,當(dāng)前端口狀態(tài)為設(shè)防狀態(tài)時(shí),進(jìn)行撤防初始化,設(shè)置其端口為上升沿觸發(fā)。當(dāng)前端口狀態(tài)為撤防狀態(tài)時(shí),進(jìn)行設(shè)防初始化,設(shè)置其端口為下降沿觸發(fā)。
端口初始化結(jié)束之后,進(jìn)行串行通訊UART接口初始化,打開UART接收中斷使能,使其能響應(yīng)網(wǎng)關(guān)發(fā)送給子節(jié)點(diǎn)的命令。定時(shí)器連續(xù)工作在計(jì)數(shù)模式,打開計(jì)數(shù)器溢出中斷使能。
單片機(jī)各部分初始化結(jié)束后,進(jìn)入LPM3休眠模式,只有ACLK始終保持工作,因此在串行通訊UART和定時(shí)器初始化中,將其工作時(shí)鐘定義為ACLK是十分重要的,否則進(jìn)入LPM3休眠模式后,串口和定時(shí)器將停止工作和相應(yīng)中斷。進(jìn)入LPM3休眠模式后,系統(tǒng)的功耗最低。
系統(tǒng)可響應(yīng)I/O中斷,當(dāng)其作為脈沖量輸入端口時(shí),脈沖量上升沿觸發(fā)中斷,經(jīng)過去抖處理后,脈沖量計(jì)數(shù)增1,遇到進(jìn)位時(shí),調(diào)用函數(shù)處理進(jìn)位,最后將計(jì)數(shù)值寫入FRAM,進(jìn)入LPM3休眠模式。當(dāng)其作為開關(guān)量輸入端口時(shí),開關(guān)量下降沿觸發(fā)中斷,停止計(jì)數(shù)器計(jì)數(shù),打開電源,打開串行通訊,重復(fù)發(fā)送報(bào)警信息,直到收到網(wǎng)關(guān)應(yīng)答信息時(shí)才停止報(bào)警,恢復(fù)定時(shí)器計(jì)數(shù),進(jìn)入LPM3休眠模式。
數(shù)據(jù)發(fā)送要遵循通訊協(xié)議,圖4所示為數(shù)據(jù)發(fā)送程序流程圖。由于文章篇幅所限,這里就不多述了。
本文介紹的基于ZigBee技術(shù)的智能家居無線網(wǎng)絡(luò)系統(tǒng),由于其具有低成本、低功耗、較遠(yuǎn)的覆蓋范圍及通用性的特點(diǎn),將成為智能家居系統(tǒng)中的又一亮點(diǎn),必將給現(xiàn)代智能家居系統(tǒng)帶來一場新的變革。
評論