【導讀】針對傳統智能家居系統中多種無線通信技術之間互聯的困擾,設計了一個新的兩種無線通信技術直連的智能家居網關。該網關以ARM920T嵌入式處理器S3C2440A為核心,ARM Linux為實時操作系統,采用新興的Zigbee與Wi-Fi融合的通信技術,以滿足家庭遠程監控、家庭安防和家電控制的個性化需求。
在ARM9處理器上構建嵌入式Web服務器,通過擴展Wi-Fi模塊與Zigbee模塊實現家庭內部無線網絡的建立以及與Internet的連接,并給出了硬件組成結構和軟件實現流程。實驗結果表明,該網關在丟包率與時間響應方面優于有線網關和Wi-Fi-藍牙網關,適合在智能家居系統中應用。
0 引言
隨著人們生活水平的提高以及計算機技術、通信技術和網絡技術的發展,智能家居逐漸成為未來家居生活的發展方向。智能家居不僅能給用戶提供安全、健康和舒適的生活環境,而且用戶能夠遠程監控自己的家居狀態和控制家庭電器設備。在智能家居系統中,采用無線網絡技術可以提供更大的靈活性、流動性,更符合家庭網絡簡潔性、靈活性、模塊化、擴展性及獨立性的通信特點,將無線網絡技術應用于家庭網絡已經成為主流趨勢。
Zigbee 作為一種新興的無線通信技術,其低速率、低成本、低功耗、自配置和靈活的網絡結構,非常適合于家庭內部組網。而Wi-Fi作為一種無線聯網技術,最主要的優勢在于不需要布線,不受布線條件的限制,因此特別適合移動辦公用戶的需要,在智能家居中采用Wi-Fi技術使得家庭內部網絡與Internet連接更加便捷,通過一臺Wi-Fi的手持終端設備就可以直接進入家庭網關,實現對家電設備的遠程監控和智能控制。系統中家庭網關為Wi-Fi-ZigBee的Web服務器,它是ZigBee協議、Wi-Fi協議和以太網之間的轉換接口,并負責建立和管理無線傳感器網絡以及實現外網的通信連接。
1 網關總體設計和工作流程
系統主要包括ARM9處理器S3C2440A(家庭網關)、Zigbee 模塊(協調器)、Wi-Fi模塊、Zigbee終端設備(如紅外探測器、門磁開關和火災探測器和煙感燃氣探測器等) ,其結構如圖1所示。在ARM9處理器中移植Web服務器Boa作為家庭網關,負責對整個智能家居設備的管理以及遠程監控。
由于智能家居中許多家電設備都是通過Zigbee無線傳感網絡來工作的,因此必須在處理器中保存數據并對Zigbee無線傳感網絡進行數據融合處理,協調器負責家庭內部Zigbee網絡的管理與控制。Wi-Fi模塊用來傳輸大容量信息,通過無線訪問節點(Access Point,AP)路由器與以太網連接,實現家庭內部網絡與Internet的通信。

圖1 系統結構
系統處理基本流程如下: 系統內部由Zigbee 星型網絡組成,家中電器開關狀態和傳感器的控制信息在網絡中自由傳輸,經由協調器(Zigbee 模塊) 傳送至Web 服務器的網關,再由網關通過Wi-Fi 經無線路由連接到外部以太網,用戶可以通過遠程用戶界面端了解家中電器狀態; 家庭網關可以通過無線網絡對遠程用戶的控制命令作出判斷和響應,從而開啟或關閉家中的電器。
2 網關硬件平臺設計
網關硬件電路主要由控制器模塊(S3C2440A) 、存儲單元(64 MB SDRAM、64 MB Nand Flash 和2 MB Nor Flash) 、通信模塊(Zigbee 模塊和Wi-Fi模塊)和顯示模塊(LCD)等組成,其硬件電路結構框圖如圖2 所示。

圖2 系統硬件電路
2.1 控制器模塊
控制器是整個嵌入式家庭網關的核心,用來對Zigbee通信模塊進行相應配置并接收Zigbee終端節點的數據,利用Wi-Fi協議將網關通過Wi-Fi模塊連接到Internet網絡。為了能達到高性能、低功耗的目的,設計的嵌入式網關采用以ARM920T為核心的32位的RISC微處理器S3C2440A作為主控制器,該處理器集成了LCD控制器、USBHost、NAND控制器、BUS控制器、中斷控制、功率控制、存儲控制、UART、SPI和GPIO等豐富的外圍資源,通過外擴存儲器、串口、USB接口和JTAG調試接口等構成硬件平臺。
2.2 Zigbee組網模塊
在智能家居系統中,采用Zigbee無線通信技術將智能家電設備組成星形網絡。星形網絡是一個輻射狀的結構,網絡命令和數據都是通過協調器傳輸,終端設備之間通信也是通過協調器轉發,終端設備不是通信的起點就是通信的終點。
Zigbee擴展模塊在家庭網關中作為網絡協調器,可以是通信的起點或終點,負責各子傳感器節點的通信管理、動態組網與數據傳輸。Zigbee終端節點包括家庭內部網絡中的門磁開關、紅外對射探測器、玻璃破碎探測器、火災探測器以及煙感和燃氣泄露探測器等。
Zigbee模塊采用JENNIC公司的JN5139,這是業界第一款與IEEE802.15.4兼容的低功耗、低成本無線控制模塊。
該模塊與S3C2440A中的UART1相連,S3C2440A中有三個通用異步串行接口,UART0是RS232($780.5000) 接口,用來連接PC機,UART1和UART2是TTL接口。這里使用UART0來連接,設置相應波特率后實現數據傳輸。其通信接口電路如圖3所示,只需連接TXD0和RXD0兩根信號線即可實現兩者的數據傳輸通信。

圖3 JN5139的通信接口電路
2.3 Wi-Fi通信模塊
該模塊用來實現家庭網關與Internet連接。Wi-Fi模塊采用威盛的VT6656芯片實現數據的遠程傳輸,VT6656芯片內嵌TCP/ IP協議棧,降低了設計的難度,同時大大提高了主控制器處理其他數據的能力。VT6656與S3C2440A的連接非常簡單,二者可以通過標準的USB接口直接相連。VT6656芯片的主要特性:54 Mbps標準802.11g無線Internet訪問,比基于802.11b協議快5倍;采用USB 2.0最高比USB 1.1 快40倍; 新的天線技術支持更遠距離的無線訪問;支持所有標準802.11g 和802.11b 無線路由器及接入點;支持64/128/152位WEP加密;支持WPA/WPA2、WPA-PSK/WPA2-PSK等高級加密與安全機制。
3 軟件平臺設計
軟件平臺采用一種開放源碼的Linux操作系統,便于在其基礎上完成各項相關應用程序的開發。軟件主要涉及到操作系統的裁剪與編譯、驅動程序編寫和系統主程序編寫。
3.1 家庭網關軟件體系結構
家庭網關采用模塊化設計方案,如圖4 所示由硬件驅動層、操作系統層、網絡協議層和應用程序層組成。硬件驅動層描述網關節點中Zigbee模塊和Wi-Fi模塊的驅動;操作系統層移植了ARM Linux實時操作系統內核;網絡協議層移植了Zigbee和Wi-Fi協議棧,實現Zigbee和Wi-Fi協議雙向轉換;應用程序層在Linux內核上移植嵌入式Web服務器軟件Boa.

圖4 家庭網關結構。
網關中的網絡協議層主要完成從Wi-Fi和Zigbee協議的相互轉換工作。對于從Zigbee設備發送到Wi-Fi的數據,在網關需要經過以下處理步驟;Zigbee設備接收到數據→去掉物理層Zigbee分組→去掉MAC層Zigbee分組→添加MAC頭的Wi-Fi分組→添加物理層頭的Wi-Fi分組→Wi-Fi處理或發送。Wi-Fi接收數據到發送給Zigbee設備的過程如下:
Wi-Fi 接收到數據→去掉物理層Wi-Fi分組→去掉MAC層Wi-Fi分組→添加MAC頭的Zigbee分組→添加物理層頭的Zigbee分組→Zigbee處理或發送。Wi-Fi-Zigbee通信協議模型如圖5所示。

圖5 Zigbee/Wi-Fi網關的通信協議模型。
3.2 Zigbee組網軟件設計
家庭網關集成了Zigbee網絡協調器和嵌入式Web服務器,有兩個主要功能。1)實現無線傳感器網絡的建立,傳感器節點管理和數據傳輸。將收集到的數據存儲在數據庫中,使用戶可以隨時查詢監控Zigbee終端設備的狀態。2)用戶可以通過Web瀏覽器直接訪問網關,可以進行實時監測和遠程管理。
為了實現家庭網關的功能,在硬件平臺上移植了Linux2.6實時操作系統、Zigbee協議棧和VT6656的驅動程序,并使用基于HTTP協議的Boa服務器作為Web服務器,其中ZigBee網絡協調器的軟件實現包括ZigBee協議和監控管理程序的移植。該軟件流程如圖6所示。

圖6 Zigbee軟件流程。
在智能家居內部ZigBee無線網絡中,首先協調器進行初始化,然后協調器選擇一個稱為PAN ID的標識號碼,接著啟動網絡,所有的設備接入CSMA-CA機制的協調器。當協調器收到數據時,首先判斷是新節點加入網絡的請求還是設備節點的控制請求:如果是新節點加入網絡的請求則分配網絡地址并綁定節點;如果是控制請求,則調用控制請求處理函數處理數據。數據處理完畢,協調器返回等待請求監聽狀態。
3.3 家庭網關主程序設計
家庭網關是建立在傳輸層以上的協議轉換器,通常它連接兩個或多個相互獨立的網絡,每接收一種協議的數據包后,在轉發之前將它轉換為另一種協議的格式,Zigbee協議棧由一系列分層結構組成,包括物理層、數據鏈路層、網絡層、應用支持層和應用層,每一層為上一層提供服務。采集節點將要傳輸的節點地址信息和監測數據以Zigbee 幀的形式打包發送給網關節點。傳送數據在通過物理介質進入網關后,先用Zigbee協議棧解封裝得到原始數據,網關可以用操作系統上的應用軟件根據需要對原始數據處理。然后再以TCP/IP協議打包后通過USB口與Wi-Fi通信模塊VT6656相連,Wi-FiVT6656網卡通過AP路由器,將數據傳送到Wi-Fi網絡中,AP路由器接入Internet,從而實現網關與Internet相連。為實現系統的監測和控制兩大功能,數據幀結構的設計由前導碼、數據模式、目標地址、數據長度、數據信息與校驗和等部分構成[3],其中數據信息字段又劃分為方向位、功能類型和數據。
方向位分為上行和下行兩種: 上行傳輸的是監測數據,下行傳輸的是控制命令。
家庭網關主程序處理流程如圖7 所示。硬件上電系統啟動以后,應用程序初始化,網關開始監聽網絡,有數據到來網關進入中斷狀態。首先判斷是否Zigbee數據,如果是Zigbee數據,按照WSN協議處理數據然后打包轉發給Wi-Fi模塊,網關返回監聽狀態; 如果不是Zigbee數據,網關判斷是否Wi-Fi數據,如果是則以Wi-Fi協議處理數據然后打包轉發給Zigbee模塊,并返回監聽狀態; 若是未知數據,網關進行丟棄處理直接返回監聽網絡狀態。
4 測試結果與分析
將設計的Wi-Fi-Zigbee網關與同樣采用無線通信技術的Wi-Fi-藍牙無線網關,以及采用綜合布線的有線網關做如下比較,如表1.有線網關網絡穩定性、抗干擾性方面高,但是耗時且靈活性較低,而無線網關耗費的工時少且在網絡穩定、靈活和抗干擾方面均性能良好。

圖7 家庭網關主程序流程

表1 三種網關的比較
為驗證Wi-Fi-Zigbee網關在智能家居監控系統中的性能,測試了兩組性能指標:1)無障礙物和干擾狀態下,隨著距離的增加,數據丟包率和響應時間的變化情況;2)數據傳輸距離分別為10 m、20 m、50 m 時,有障礙物情況下丟包率和響應時間性能變化; 如圖8所示,其中(a)、( b)為在無障礙物和干擾狀態下測得三種網關下丟包率與響應時間的曲線:(c)、(d)為在有障礙物和干擾情況下所測得的數據。實驗結果表明,在無障礙物傳輸距離為50m以內時,Wi-Fi-Zigbee網關較Wi-Fi-藍牙網關的優勢明顯,隨著傳輸距離增加,丟包率低維持在3%左右,相對于有線網關高出2%左右,而響應時間波動在1ms以內,完全能夠充分滿足正常家居環境的通信需要,而且接收功率很低,非常適合家庭的使用。在有障礙物和干擾的情況下,Wi-Fi-Zigbee網關丟包率與響應時間較有線網關稍高,卻遠優于Wi-Fi-藍牙網關。

圖8 三種網關在不同環境下丟包率與響應時間的比較
5 結語
本文提出了一種無線智能家居網關的設計和實現方案,該方案采用低功耗ARM 處理器S3C2440A為核心,利用內嵌TCP/IP 協議棧的模塊Wi-Fi為網絡的數據出口,以嵌入式Web服務器為網關,克服了傳統網關架構下Zigbee傳輸速率較低的瓶頸,利用Wi-Fi和Zigbee全網無線無縫連接。實驗表明,該系統可靠性高、協議轉換效率高,抗干擾能力強,同時具有很好的通用性,非常適合在智能家居系統中應用。
【推薦閱讀】
被外因坑慘了的智能家居何時能夠上位?
創新+互聯+一站式解決方案撐起智能家居的未來
智能家居中紅外遙控模塊的設計方案
基于Linux系統和ZigBee的智能家居系統方案
智控LED燈泡Hue拆解:最聰明智能照明,如何做到?