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