牛奕翔
(西安交通大學(xué)城市學(xué)院 計(jì)算機(jī)系,陜西 西安 710000)
目前智能家居在國(guó)內(nèi)正在進(jìn)入快速發(fā)展的階段,隨著無(wú)線網(wǎng)絡(luò)技術(shù)和傳感器的快速發(fā)展,物聯(lián)網(wǎng)在人們生活中的應(yīng)用越來(lái)越廣泛,特別是在智能家居方面,如各種家電、健康電子產(chǎn)品,智能電器廠商也紛紛推出了相關(guān)產(chǎn)品。但是,如何將各種新技術(shù)有效應(yīng)用在智能家居領(lǐng)域,成為大家關(guān)注的問(wèn)題,市場(chǎng)上也涌現(xiàn)出了許多智能家居系統(tǒng)的解決方案。雖然市場(chǎng)中智能家居的系統(tǒng)解決方案越來(lái)越多,但是大部分在性能方面都不是很高,在系統(tǒng)能源的使用,系統(tǒng)的穩(wěn)定性以及可擴(kuò)展性上并沒(méi)有很好的表現(xiàn),都有其各自的缺點(diǎn),缺少既能兼顧系統(tǒng)節(jié)能,又能提高高效性、準(zhǔn)確性和可擴(kuò)展性的智能家居系統(tǒng)解決方案。
因此,文中設(shè)計(jì)以節(jié)省能源、高效、準(zhǔn)確,可擴(kuò)展好為前提,搭建一套行之有效的智能家居系統(tǒng)解決方案,以提升智能家居的整體性能。
所設(shè)計(jì)的控制系統(tǒng)是用安裝在家居內(nèi)的智能控制端組成,主要包含以太網(wǎng)、家庭網(wǎng)關(guān)、ZigBee低功耗無(wú)線雙向通信、WiFi大功率無(wú)線通信單元以及本地控制端[1]。
家居系統(tǒng)內(nèi)部的家庭網(wǎng)關(guān)是整體家居控制系統(tǒng)最重要的組成部分,不但負(fù)責(zé)內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)間的溝通工作,而且還將使用低功率無(wú)線通信的技術(shù)手段對(duì)其終端的設(shè)備進(jìn)行實(shí)時(shí)數(shù)據(jù)的監(jiān)測(cè)與管理。在系統(tǒng)中房間內(nèi)的各種終端節(jié)點(diǎn)可以通過(guò)無(wú)線網(wǎng)連接,并在此網(wǎng)絡(luò)中實(shí)現(xiàn)信息和數(shù)據(jù)的傳遞。通過(guò)該智能家居系統(tǒng)的正常運(yùn)行,用以保證智能家居系統(tǒng)工作的整體安全性。在房間內(nèi)的不同種類的傳感器都可以通過(guò)該網(wǎng)絡(luò)與各終端節(jié)點(diǎn)控制器進(jìn)行連接,當(dāng)監(jiān)測(cè)到房間內(nèi)有不正常情況的時(shí)候,網(wǎng)絡(luò)將數(shù)據(jù)傳給相關(guān)的控制器,并由其對(duì)相關(guān)數(shù)據(jù)進(jìn)行處理[2]。最后再通過(guò)家庭網(wǎng)關(guān),用戶便能使用計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)訪問(wèn)各個(gè)房間的控制器端,并能對(duì)其進(jìn)行遠(yuǎn)程監(jiān)測(cè)與管理。
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。其中網(wǎng)關(guān)控制模塊采用了三星公司的S5PV210芯片,它是一個(gè)32位的微處理芯片,CPU采用的是ARM CortexTM-A8的內(nèi)核,相比起普通單片機(jī)的運(yùn)行速度快了很多(其主頻可以達(dá)到1 GHz的頻率),可以較好地滿足該系統(tǒng)對(duì)實(shí)時(shí)性的具體要求。此外其擁有獨(dú)立的內(nèi)存管理單元(MMU),可運(yùn)行在Linux操作系統(tǒng)上,同時(shí)還能方便地進(jìn)行各種圖形界面的簡(jiǎn)易化設(shè)計(jì),加之其具有高性能、高性價(jià)比、低功耗等特點(diǎn),使用該芯片可以大大提高系統(tǒng)的效率與準(zhǔn)確性。同時(shí)該芯片還有四通道UART、兩路全速USB主設(shè)備芯片以及兩通道SPI,可以方便地對(duì)外圍設(shè)備進(jìn)行擴(kuò)展,符合設(shè)計(jì)要求。而針對(duì)網(wǎng)關(guān)的具體設(shè)計(jì)要求,該設(shè)計(jì)加入了電源、顯示、按鍵、無(wú)線傳輸、報(bào)警、以太網(wǎng)、ZigBee協(xié)調(diào)器、環(huán)境監(jiān)測(cè)、家居安保、智能家電模塊等外圍設(shè)備。
圖1 系統(tǒng)硬件結(jié)構(gòu)
ZigBee是低功耗雙向無(wú)線通信技術(shù)中的一種。它遵守IEEE 802.15.4,擁有低復(fù)雜度、低成本、低數(shù)據(jù)速率、短距離、低功耗等特點(diǎn),用以實(shí)現(xiàn)各種不同傳感器之間的數(shù)據(jù)通信。ZigBee可以在設(shè)備不工作的時(shí)候自動(dòng)進(jìn)入到休眠狀態(tài),所以兩節(jié)普通的5號(hào)電池,就可以使其持續(xù)地工作半年時(shí)間以上。除此之外,ZigBee的通信響應(yīng)時(shí)間也非常短,基本上一次正常的響應(yīng)時(shí)間大概在30 ms左右,但是同為無(wú)線通信的藍(lán)牙技術(shù),則需要3 s,而WiFi的通信相應(yīng)時(shí)間更是需要高達(dá)10 s。綜上所述,在現(xiàn)有的各種短距離雙向無(wú)線通信技術(shù)中,ZigBee通信被公認(rèn)為是最適合應(yīng)用在智能家居的控制系統(tǒng)之中的技術(shù)手段[3],所以文中最終采用ZigBee技術(shù)進(jìn)行網(wǎng)絡(luò)的組建。
在網(wǎng)絡(luò)結(jié)構(gòu)方面,ZigBee技術(shù)支持星型、樹(shù)型和網(wǎng)型三種網(wǎng)絡(luò)拓?fù)湫问?,如圖2所示。
圖2 ZigBee拓?fù)浣Y(jié)構(gòu)
本次ZigBee無(wú)線網(wǎng)絡(luò)設(shè)計(jì)采用圖2中星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[4]。這種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)際上是用一個(gè)PAN協(xié)調(diào)器與多個(gè)終端設(shè)備組合而成。在這種拓?fù)浣Y(jié)構(gòu)當(dāng)中,首次在設(shè)備的功能全部激活時(shí),由其自動(dòng)建立起來(lái)一個(gè)特殊的網(wǎng)絡(luò),該網(wǎng)絡(luò)將用它自己作為PAN協(xié)調(diào)器,同時(shí)與現(xiàn)有的其他星形網(wǎng)絡(luò)自動(dòng)隔離。僅僅允許PAN協(xié)調(diào)器和終端設(shè)備間進(jìn)行數(shù)據(jù)通信,而各終端設(shè)備之間則需要經(jīng)過(guò)PAN協(xié)調(diào)器作為中轉(zhuǎn)站進(jìn)行數(shù)據(jù)通信。
此網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)涉及到ZigBee網(wǎng)絡(luò)中擁有兩種邏輯設(shè)備類型,第一種是協(xié)調(diào)器節(jié)點(diǎn),第二種是終端節(jié)點(diǎn)[5]。設(shè)計(jì)中所用到的協(xié)調(diào)器可以通過(guò)RS232的串口,在家庭網(wǎng)關(guān)的工作中將數(shù)據(jù)傳送出去,協(xié)調(diào)器主要負(fù)責(zé)有效信道與終端節(jié)點(diǎn)的搜索工作,同時(shí)根據(jù)搜索到的結(jié)果創(chuàng)建出相應(yīng)的無(wú)線網(wǎng)絡(luò),并通過(guò)此網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳送。各個(gè)終端節(jié)點(diǎn)接收協(xié)調(diào)器發(fā)送過(guò)來(lái)的各種指令,并通過(guò)具體指令控制相應(yīng)位置的終端節(jié)點(diǎn),讓其進(jìn)行對(duì)應(yīng)的工作,從而起到控制終端節(jié)點(diǎn)的目的,然后把終端節(jié)點(diǎn)上傳感器所得到的數(shù)值信息反饋回協(xié)調(diào)器節(jié)點(diǎn),最后再由協(xié)調(diào)節(jié)點(diǎn)一并將信息轉(zhuǎn)發(fā)到網(wǎng)關(guān)上。該系統(tǒng)采用的是美國(guó)德州儀器公司所生產(chǎn)的8051增強(qiáng)型微處理芯片,型號(hào)是CC2530,負(fù)責(zé)進(jìn)行系統(tǒng)整體數(shù)據(jù)的收發(fā)[6]。CC2530內(nèi)部集成了一個(gè)靈敏度較高,抗干擾性能較好的RF收發(fā)器,同時(shí)還集成了一個(gè)標(biāo)準(zhǔn)增強(qiáng)型的8051微處理器,運(yùn)用的是2.4 GHz SoC的片上系統(tǒng),擁有2個(gè)USART、21個(gè)通用GPIO和12位的ADC以及較為豐富的外部設(shè)備接口,支持4種供電模式,遵從IEEE802.15.4協(xié)議標(biāo)準(zhǔn),可以友好地支持低功耗無(wú)線通信。對(duì)于CC2530的射頻信號(hào)收發(fā),因?yàn)槠淠軌驅(qū)o(wú)線收發(fā)模塊和8051微處理器的內(nèi)核集成在同一個(gè)電路上,所以在很大程度上簡(jiǎn)化了它的電路設(shè)計(jì)。天線將收到的無(wú)線射頻信號(hào)經(jīng)低噪聲放大器與I/Q變頻處理之后,得到一個(gè)2 MHz的信號(hào),再將該信號(hào)經(jīng)過(guò)濾波,放大,A/D變換,自動(dòng)增益,數(shù)字解調(diào)后,最終得到一組正確的信號(hào),驅(qū)動(dòng)各終端節(jié)點(diǎn)正常工作。
電源在整個(gè)系統(tǒng)中的作用比較重要,能否針對(duì)控制要求設(shè)計(jì)出符合系統(tǒng)特點(diǎn)的電源模塊,是整個(gè)系統(tǒng)運(yùn)行穩(wěn)定的保證。按照系統(tǒng)的要求,在設(shè)計(jì)時(shí)主要考慮以下兩個(gè)因素以保證系統(tǒng)正常運(yùn)行:(1)穩(wěn)定性,主要是要確保系統(tǒng)在整個(gè)運(yùn)行過(guò)程中具有高穩(wěn)定性,以確保整個(gè)智能家居系統(tǒng)能夠長(zhǎng)期處于正常工作狀態(tài),這樣才能保證數(shù)據(jù)的實(shí)時(shí)性。為此在設(shè)計(jì)時(shí)加入了濾波穩(wěn)壓電路;(2)性價(jià)比,主要是希望用較低的成本完成更高效的工作,所以選用3.3 V直流電壓源作為輸入電壓,因?yàn)橹绷麟妷涸床坏杀镜停矢咔曳€(wěn)定性好。該系統(tǒng)采用兩種方式供電,一種是選用Linear Technology公司的LT1085-3.3型DC-AC變換器獲得3.3 V電壓,另外一種是通過(guò)電池提供3.3 V電壓[7]。由于在整體供電的無(wú)線智能家居領(lǐng)域,系統(tǒng)的電源模塊需要具備較好的供電能力與續(xù)航能力,才能滿足整個(gè)工作的需要,所以在整個(gè)系統(tǒng)的各節(jié)點(diǎn)設(shè)計(jì)中,選用充電電池與太陽(yáng)能電池板相互結(jié)合的互補(bǔ)型供電模式。這樣設(shè)計(jì)的優(yōu)點(diǎn)是在無(wú)需人工干預(yù)的條件下能夠以更加低廉和長(zhǎng)效的成本完成整個(gè)系統(tǒng)的工作。
以太網(wǎng)在網(wǎng)絡(luò)技術(shù)中是一種局域網(wǎng)技術(shù),它的技術(shù)特點(diǎn)是一種廣播型網(wǎng)絡(luò),具體應(yīng)用的技術(shù)是帶有沖突檢測(cè)的載波偵聽(tīng)多路存取(CSMA/CD技術(shù))[8]。這種網(wǎng)絡(luò)技術(shù)的應(yīng)用非常廣泛,在物聯(lián)網(wǎng)的綜合應(yīng)用中十分重要,可以通過(guò)以太網(wǎng)實(shí)現(xiàn)系統(tǒng)的遠(yuǎn)程端登錄,共享不同終端的資源,并可對(duì)其進(jìn)行異地管理,使資源可以最大程度地被統(tǒng)一調(diào)度、管理和應(yīng)用,減少了因地域的局限性而造成的信息不全面和遠(yuǎn)距離管理的不便利性[9]。由于該系統(tǒng)使用的芯片沒(méi)有自身的網(wǎng)絡(luò)接口,所以采用了以下組合方式,即DM9000加H1102(網(wǎng)絡(luò)隔離變壓器)加RJ45的結(jié)構(gòu)[10],具體如圖3所示。
圖3 S5PV210與DM9000的連接示意
如圖4所示,數(shù)據(jù)轉(zhuǎn)發(fā)端口主要由S5PV210微控制器、1個(gè)ZigBee無(wú)線模塊和1個(gè)WiFi無(wú)線模塊組成,其中ZigBee無(wú)線模塊為ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器,S5PV210微控制器通過(guò)2個(gè)串口分別與ZigBee無(wú)線模塊和WiFi無(wú)線模塊連接,透?jìng)鱖igBee網(wǎng)絡(luò)和WiFi網(wǎng)絡(luò)的數(shù)據(jù)[11]。
圖4 ZigBee-WiFi數(shù)據(jù)轉(zhuǎn)發(fā)端口結(jié)構(gòu)
如圖5所示,該模塊以STM32F107VCT芯片為中央處理單元(MCU),它的外圍電路有顯示,攝像頭監(jiān)測(cè),觸摸屏,錄像,煤氣泄漏監(jiān)測(cè),火災(zāi)監(jiān)測(cè),自來(lái)水泄漏監(jiān)測(cè),人體防盜紅外監(jiān)測(cè),室內(nèi)、外語(yǔ)音報(bào)警,遠(yuǎn)程通信報(bào)警等模塊。它的中央處理單元是該系統(tǒng)的核心[12]。
圖5 報(bào)警系統(tǒng)框圖
報(bào)警模塊主要用于語(yǔ)音實(shí)時(shí)報(bào)警。當(dāng)用戶在室內(nèi)時(shí),如果發(fā)生火災(zāi)、自來(lái)水泄漏、煤氣泄漏,這種語(yǔ)音報(bào)警功能對(duì)用戶可以起到報(bào)警的作用。對(duì)于非法入侵,該系統(tǒng)也可以起到警告盜賊已被發(fā)現(xiàn)的警示作用。室外語(yǔ)音報(bào)警模塊則主要用于用戶離家的情形下,當(dāng)用戶手機(jī)接收到來(lái)自手機(jī)的報(bào)警信息,如煤氣泄漏、火災(zāi)、自來(lái)水泄漏等緊急情況需要緊急處理災(zāi)情時(shí),用戶可能第一時(shí)間不能趕回,此時(shí)就可以通過(guò)選擇遠(yuǎn)程通信控制室外的語(yǔ)音報(bào)警模塊報(bào)警求助。以便小區(qū)內(nèi)的安防人員可以在第一時(shí)間趕到救災(zāi)現(xiàn)場(chǎng),將險(xiǎn)情控制。
系統(tǒng)流程如圖6所示。
在該系統(tǒng)中,每一個(gè)功能任務(wù)都是相對(duì)獨(dú)立工作的,因此選用這種以模塊為單位的設(shè)計(jì)方式。這種設(shè)計(jì)不但使整個(gè)系統(tǒng)工作過(guò)程層次分明、維護(hù)方便,同時(shí)大大提高了整個(gè)系統(tǒng)的工作效率。在這樣的系統(tǒng)中,各種家用電器以及各種傳感器都可以被視作一個(gè)獨(dú)立功能的節(jié)點(diǎn),各節(jié)點(diǎn)則通過(guò)ZigBee功能模塊建立起整體的網(wǎng)絡(luò)通訊系統(tǒng),實(shí)現(xiàn)了一種以中央系統(tǒng)為核心的數(shù)據(jù)控制模式對(duì)各家電進(jìn)行控制,同時(shí)也以此為通道完成了各終端節(jié)點(diǎn)的信息反饋[13]。
圖6 系統(tǒng)流程
系統(tǒng)選用Linux為開(kāi)發(fā)平臺(tái),主要因?yàn)槠鋬?nèi)核代碼龐大,程序豐富且具有可移植性,同時(shí)由于Linux系統(tǒng)屬于開(kāi)源平臺(tái),使得其支持的硬件比其他操作系統(tǒng)更多,大大簡(jiǎn)化了程序編寫(xiě)的復(fù)雜度和程序后續(xù)的可擴(kuò)展性。這使得用戶可以充分發(fā)揮主觀想法,按照自己的需求編寫(xiě)內(nèi)核程序,開(kāi)發(fā)出符合自己需求的嵌入式系統(tǒng),最大程度地提高系統(tǒng)的可擴(kuò)展性。
在整個(gè)系統(tǒng)中ZigBee協(xié)調(diào)器作為媒介,自動(dòng)組網(wǎng)將數(shù)據(jù)傳輸?shù)较鄳?yīng)的模塊中[14],其主要的目標(biāo)就是完成控制中心與各個(gè)模塊節(jié)點(diǎn)的通信功能,保證信息可以準(zhǔn)確無(wú)誤地進(jìn)行傳遞,所以整體數(shù)據(jù)信息的控制與監(jiān)測(cè)都必須在ZigBee協(xié)調(diào)器解析命令之后才可以正常進(jìn)行[15]。圖7為ZigBee協(xié)調(diào)器驅(qū)動(dòng)模塊加載的整個(gè)過(guò)程。
首先調(diào)用init_module()函數(shù)完成模塊的加載工作,然后把設(shè)備與文件注冊(cè)到系統(tǒng)的內(nèi)核中,使設(shè)備和文件在系統(tǒng)中得到確認(rèn)。在整個(gè)程序的設(shè)計(jì)過(guò)程中,選用了中斷定時(shí)方式,要求系統(tǒng)要用到request_irq去申請(qǐng)中斷,通過(guò)中斷的請(qǐng)求,用戶就可以進(jìn)行寫(xiě)數(shù)據(jù)操作或者讀數(shù)據(jù)操作。
圖7 ZigBee 協(xié)調(diào)器程序流程
ZigBee協(xié)調(diào)器建立網(wǎng)絡(luò)的過(guò)程如圖8所示。
圖8 ZigBee組網(wǎng)過(guò)程
首先需要協(xié)調(diào)器全部初始化Zstack協(xié)議棧完成ZigBee組網(wǎng)的第一個(gè)工作,再進(jìn)行信道掃描并定義網(wǎng)絡(luò)的Personal AreaNetwork ID,最后啟動(dòng)網(wǎng)絡(luò)并打開(kāi)中斷;當(dāng)中斷發(fā)送請(qǐng)求去接收數(shù)據(jù)或者發(fā)送數(shù)據(jù)時(shí),系統(tǒng)將調(diào)用與之相關(guān)的各種函數(shù)同時(shí)把數(shù)據(jù)發(fā)送出去。在整個(gè)ZigBee通信網(wǎng)絡(luò)組建的過(guò)程中,時(shí)常會(huì)伴隨著Zstack協(xié)議棧的運(yùn)行,Zstack協(xié)議棧是運(yùn)行在main()中的。主函數(shù)main()首先對(duì)SRAM、硬件驅(qū)動(dòng)、Flash閃存、MAC層模塊進(jìn)行有效的初始化工作,然后調(diào)用相關(guān)函數(shù),以此來(lái)實(shí)現(xiàn)對(duì)OSAL功能的初始化工作。該函數(shù)內(nèi)部有兩個(gè)重要的函數(shù):系統(tǒng)任務(wù)初始化函數(shù)osalInitTasks()和用戶應(yīng)用任務(wù)初始化函數(shù)SampleApp_Init()。osalInitTasks()函數(shù)是實(shí)現(xiàn)系統(tǒng)任務(wù)初始化并分配任務(wù)ID。執(zhí)行創(chuàng)建的任務(wù)SampleApp_Init()。用戶在這個(gè)函數(shù)中對(duì)自己的應(yīng)用程序?qū)ο筮M(jìn)行初始化,主要任務(wù)是對(duì)ZigBee終端中使用的端口和串口外設(shè)進(jìn)行初始化。在該設(shè)計(jì)中,涉及到初始化的內(nèi)容有系統(tǒng)所用的IO端口,在OSAL系統(tǒng)中記錄相關(guān)事件,配置串口波特率,打開(kāi)串口UART等工作。
通過(guò)對(duì)系統(tǒng)進(jìn)行測(cè)試,從所得的各項(xiàng)結(jié)論驗(yàn)證出系統(tǒng)的準(zhǔn)確性處于何種狀態(tài)。針對(duì)此項(xiàng)工作做了如下試驗(yàn):先由整個(gè)中央的控制模塊發(fā)出相關(guān)指令,然后經(jīng)PAN協(xié)調(diào)器將指令轉(zhuǎn)發(fā)到ZigBee的各個(gè)終端節(jié)點(diǎn),再在各終端節(jié)點(diǎn)接收數(shù)據(jù),然后經(jīng)過(guò)串口通訊將所有數(shù)據(jù)傳送到PC端,在PC端再將所發(fā)送的各種數(shù)據(jù)連同ZigBee終端節(jié)點(diǎn)與通過(guò)傳感器接收到的現(xiàn)實(shí)數(shù)據(jù)進(jìn)行比對(duì)。通過(guò)多次測(cè)試得到的結(jié)果如表1所示。
表1 系統(tǒng)檢測(cè)結(jié)果
從表1可以得出,節(jié)點(diǎn)之間未出現(xiàn)大的干擾,且能高效地進(jìn)行整體系統(tǒng)運(yùn)行,并使系統(tǒng)處于穩(wěn)定且通信效果準(zhǔn)確的狀態(tài)。由此可以判定,系統(tǒng)的工作很好地滿足了設(shè)計(jì)之初的各種控制要求。
該設(shè)計(jì)創(chuàng)新性地利用各種專業(yè)技術(shù)特點(diǎn)解決物聯(lián)網(wǎng)家居中的能耗、準(zhǔn)確性、穩(wěn)定性和擴(kuò)展性問(wèn)題,形成一套更為有效的智能家居系統(tǒng),使其能夠更好地為大眾家庭服務(wù)。通過(guò)對(duì)系統(tǒng)軟件結(jié)果的測(cè)試,很好地驗(yàn)證了系統(tǒng)的整體性能,各項(xiàng)指標(biāo)均可達(dá)到設(shè)計(jì)要求,為物聯(lián)網(wǎng)智能家居在低能耗,高準(zhǔn)確性,高穩(wěn)定性和易擴(kuò)張性方面提供了一套行之有效的解決方案。