張 毅,馬鈞元,楊校權(quán)
(重慶郵電大學(xué)通信學(xué)院,重慶 400065)
短距離通信技術(shù)在智能家居系統(tǒng)中已得到廣泛應(yīng)用,其中ZigBee技術(shù)以低成本、低功耗、較好的安全性、網(wǎng)絡(luò)容量大等特點,成為了組建智能家居網(wǎng)絡(luò)的首選[1]。在ZigBee技術(shù)大量應(yīng)用于智能家居系統(tǒng)的同時,對現(xiàn)有網(wǎng)絡(luò)終端設(shè)備如何查看、控制、管理家居現(xiàn)場的研究也在快速發(fā)展。目前基于PC方案的網(wǎng)關(guān)不僅靈活性差,不能滿足人們對家居現(xiàn)場實時監(jiān)控,而且成本較高,不便于智能家居系統(tǒng)的推廣,所以,采用廉價嵌入式CPU的網(wǎng)關(guān)對于普通家庭來說是非常適合的,但若采用8位或16位MCU,其數(shù)據(jù)處理速度、外設(shè)資源等方面不能滿足網(wǎng)關(guān)的功能需求。
因此,本文以ARM Cortex-M3為平臺,實現(xiàn)ZigBee網(wǎng)絡(luò)與以太網(wǎng)、GPRS、藍牙3種異構(gòu)網(wǎng)絡(luò)的緊密結(jié)合。
網(wǎng)關(guān)的主要功能是用戶通過其在現(xiàn)場或者遠程查詢、控制智能家居網(wǎng)絡(luò)各節(jié)點。監(jiān)控現(xiàn)場的節(jié)點將各自采集的信息傳送給網(wǎng)關(guān)上的協(xié)調(diào)器,經(jīng)過主控制器處理后,將信息通過有線或者無線方式傳送至電腦或者手機等用戶終端。而終端的控制指令也需要經(jīng)過網(wǎng)關(guān)的處理,轉(zhuǎn)換后才能下傳至監(jiān)控現(xiàn)場各節(jié)點。設(shè)計的智能家居系統(tǒng)組成結(jié)構(gòu)如圖1所示。
文中設(shè)計主要現(xiàn)實以下2個目標:
圖1 智能家居網(wǎng)絡(luò)圖
1)完成ZigBee網(wǎng)絡(luò)與以太網(wǎng)、藍牙、GPRS這3種異構(gòu)網(wǎng)絡(luò)的結(jié)合,實現(xiàn)通過多種終端完成對現(xiàn)場的監(jiān)控,滿足用戶對實時性、便捷性的要求;
2)從成本、性能上考慮硬件及軟件設(shè)計,滿足用戶對性價比的要求。
網(wǎng)關(guān)硬件電路主要由控制器模塊、供電模塊、通信模塊等組成。其結(jié)構(gòu)見圖2。
圖2 硬件設(shè)計框架圖
作為整個網(wǎng)關(guān)節(jié)點的核心,控制器負責接收、處理ZigBee協(xié)調(diào)器上傳的家居節(jié)點信息以及用戶終端下傳的控制信息,通過AT指令初始化GPRS模塊、藍牙模塊,使其分別鏈接至GPRS網(wǎng)絡(luò)、藍牙網(wǎng)絡(luò),利用基于μC/OS-Ⅱ的小型TCP/IP協(xié)議棧,實現(xiàn)網(wǎng)關(guān)與Internet的鏈接。綜合性能、功耗、成本等方面因素考慮,文中的網(wǎng)關(guān)主控制器采用以ARMv7-M為架構(gòu)的32位 Cortex-M3處理器LM3S8962,該芯片運行頻率最高可達50 MHz,片內(nèi)含256 kbyte Flash,64 kbyte SRAM,無需再外擴存儲模塊,此外該處理器還集成了 UART,GPIO,SPI,I2C,CAN,以太網(wǎng)控制器,SSI等豐富的外圍資源[2]。
LM3S8962控制器、藍牙模塊、ZigBee協(xié)調(diào)器的供電電壓為DC 3.3 V,GPRS模塊的電源范圍為3.4~4.7 V,文中采用低壓差穩(wěn)壓器SPX29302實現(xiàn)4.0 V的輸出電壓,經(jīng)過濾波處理后,即可滿足GPRS模塊的供電要求。4.0 V通過低壓差穩(wěn)壓器SPX1117M3穩(wěn)壓輸出3.3 V,為LM3S8962、ZigBee協(xié)調(diào)器、藍牙模塊進行供電。為了降低模擬電源/模擬地的噪聲,將模擬電源/模擬地與數(shù)字電源/數(shù)字地進行隔離[3],如圖3所示,模擬地AGND與數(shù)字地GND分別通過小磁珠FB1和FB2接到POWER_GND上,降低數(shù)字電源對模擬電源的噪聲干擾。
圖3 降噪電路
此部分電路包括GPRS模塊、藍牙模塊、ZigBee協(xié)調(diào)器、PC機的接口電路設(shè)計,及以太網(wǎng)接口電路設(shè)計。LM3S8962具有兩個通用異步串行接口:UARTO是TTL接口,使用RXD和TXD兩根信號線與ZigBee協(xié)調(diào)器相連傳輸數(shù)據(jù),PC機通過RS-232電平轉(zhuǎn)換芯片查看ZigBee協(xié)調(diào)器與控制器間的數(shù)據(jù)交互;UART1也是TTL接口,設(shè)計通過跳線帽選擇使用RXD和TXD兩根信號線與藍牙模塊或者GPRS模塊通信。
2.3.1 ZigBee協(xié)調(diào)器
ZigBee協(xié)調(diào)器負責整個智能家居ZigBee網(wǎng)絡(luò)的建立,以及網(wǎng)絡(luò)的相關(guān)設(shè)置,儲存各家居節(jié)點的信息,管理新節(jié)點的加入等。文中采用TI推出的2.4 GHz IEEE802.15.4/ZigBee片上系統(tǒng)(SoC)解決方案CC2430芯片作為ZigBee協(xié)調(diào)器的控制核心。該芯片具有可編程內(nèi)存以及通過認證的ZigBee TM協(xié)議棧,完全滿足ZigBee協(xié)調(diào)器功能要求。主控制器只需通過串口即可與ZigBee協(xié)調(diào)器實現(xiàn)數(shù)據(jù)交互。
2.3.2 GPRS模塊
該模塊負責網(wǎng)關(guān)與GPRS網(wǎng)絡(luò)的鏈接、數(shù)據(jù)傳輸?shù)取N闹胁捎萌A為推出的一款GSM/GPRS無線模塊EM310作為GPRS傳輸模塊,它支持電話、短信及GPRS數(shù)據(jù)傳輸?shù)饶J剑瑑?nèi)置協(xié)議棧中包含透傳命令,方便主控制器進行透傳模式數(shù)據(jù)傳輸[4]。
2.3.3 藍牙模塊
在文中設(shè)計的智能家居系統(tǒng)中,用戶可通過手機藍牙與網(wǎng)關(guān)進行通信,查看、控制家居現(xiàn)場。由于只要求藍牙技術(shù)在網(wǎng)關(guān)節(jié)點和手機藍牙之間提供無線傳輸,所以模塊只需實現(xiàn)HCI層以下的協(xié)議棧即可。文中采用的匯承公司HC-06藍牙模塊完全符合了這一點,它不僅可實現(xiàn)藍牙HCI層以下物理鏈路的建立,而且主控制器只需RXD,TXD兩組信號即可對其控制、傳輸,大大降低了設(shè)計難度。
2.3.4 以太網(wǎng)接口
網(wǎng)關(guān)的主控制器內(nèi)部已集成了一個由介質(zhì)訪問控制器(MAC)和網(wǎng)絡(luò)物理(PHY)接口器件組成的以太網(wǎng)控制器,這使得以太網(wǎng)接口外圍電路設(shè)計更加簡單,成本更低。主控制器要與外部以太網(wǎng)通信需要RJ-45接口,而RJ-45前端信號并不是理想化的,由于衰減、損耗、干擾等原因,接收端可能會出現(xiàn)丟包或者傳輸距離不夠而中斷等問題,所以在主控制器和RJ-45接口之間還需添加一個網(wǎng)絡(luò)變壓器用于解決以上問題,從成本、性能、設(shè)計難度等方面考慮,文中選用了漢仁公司的網(wǎng)絡(luò)變壓器HR601680。
文中采用開源實時操作系統(tǒng)μC/OS-Ⅱ作為應(yīng)用程序開發(fā)和運行平臺,它具有構(gòu)思巧妙、結(jié)構(gòu)簡潔、實時性好、開源、移植性好等特點[5]。運行于操作系統(tǒng)基礎(chǔ)上的各個任務(wù)即為網(wǎng)關(guān)應(yīng)用程序,系統(tǒng)根據(jù)各個任務(wù)的情況,分配優(yōu)先級,完成資源管理、任務(wù)調(diào)度等工作。網(wǎng)關(guān)程序主程序流程圖如圖4所示。
圖4 軟件流程圖
其分為三大子任務(wù),分別是使用以太網(wǎng)協(xié)議棧以及其數(shù)據(jù)收發(fā)、GPRS模塊初始化及其數(shù)據(jù)處理傳送、藍牙模塊初始化及其數(shù)據(jù)處理傳送。主任務(wù)啟動后,使用鍵盤輸入來選擇初始化子任務(wù),子任務(wù)完成數(shù)據(jù)傳輸后即可關(guān)閉鏈接,或者根據(jù)需要重新選擇啟動子任務(wù)。
文中使用的ZLG/IP是周立功公司基于μC/OS-Ⅱ的小型TCP/IP協(xié)議棧,它完成了TCP/IP的建立、通信和連接管理,能實現(xiàn)一個最簡單的TCP服務(wù)器功能。此外,還需編寫一個實現(xiàn)以太網(wǎng)與ZigBee協(xié)調(diào)器數(shù)據(jù)交互的程序,負責對來自兩種網(wǎng)絡(luò)數(shù)據(jù)的接收、處理、轉(zhuǎn)發(fā)。用戶利用PC機上的客戶機軟件,執(zhí)行連接服務(wù)器操作,一旦連接上,即可對智能家居現(xiàn)場進行查詢、控制。
該任務(wù)完成對GPRS模塊EM310(簡稱TA)的初始化,向EM310發(fā)送AT指令,建立GPRS數(shù)據(jù)無線傳輸鏈路,通過GPRS方式實現(xiàn)控制終端與智能家居控制現(xiàn)場的數(shù)據(jù)交互。GPRS模塊初始化流程如圖5所示。
圖5 GPRS模塊初始化流程圖
AT指令用于對GPRS模塊的控制,每發(fā)出一個AT指令,模塊都會返回一個OK。ATE0為命令回顯模式,使用該命令,可設(shè)置TA在命令狀態(tài)下是否回顯從TE(控制終端)接收到的字符。設(shè)置 AT%IOMODE=1,1,0,即數(shù)據(jù)模式命令,本文設(shè)置的模式為模塊對數(shù)據(jù)進行壓縮轉(zhuǎn)換(例如,當發(fā)送兩個字符“1A”/“1a”——AT%IPSEND=“1A”/“1a”時,模塊會自動將兩個有效字符的 ASCII碼0x31,0x41/0x31,0x61壓縮為一個字節(jié) 0x1A/0x1A 發(fā)送);AT+CGDCONT=1,“IP”,“CMNET”,注冊移動的CMNET 網(wǎng)關(guān);AT%ETCPIP=“user”,“gprs”注冊用戶名密碼,等待分配IP,收到ok后表示分配IP完成,這個時間根據(jù)網(wǎng)絡(luò)情況有所不同,建議等待時間可以設(shè)置為10 s,注冊過程中做其他AT操作會注冊不到IP;AT%IPOPEN=“TCP”,“219.151.168.116”,6800 設(shè)置接收服務(wù)器的協(xié)議類型、IP和端口號,返回CONNECT表示鏈接成功。
該任務(wù)實現(xiàn)藍牙模塊的初始化、模塊與智能家居網(wǎng)絡(luò)的數(shù)據(jù)交互等。主控制器通過串口發(fā)送AT指令對藍牙模塊進行初始化工作,包括將其設(shè)置為從模塊、配置串口通信波特率、獲取模塊地址、初始化SPP規(guī)范庫等。
本文提出了一種智能家居綜合網(wǎng)關(guān)節(jié)點設(shè)計與實現(xiàn)方案,該方案采用高穩(wěn)定性、高性價比的Cortex-M3處理芯片LM3S8962為核心,設(shè)計通過以太網(wǎng)、GPRS、藍牙3種通信方式使控制終端與智能家居無線網(wǎng)絡(luò)相連,用戶即可快速,便捷地實現(xiàn)對智能家居系統(tǒng)各節(jié)點的控制查詢。該網(wǎng)關(guān)節(jié)點不僅可以應(yīng)用于智能家居,在醫(yī)療自動化、酒店管理以及其他新興無線應(yīng)用領(lǐng)域,都有很廣泛的應(yīng)用價值。
[1]高守瑋,吳燦陽.ZigBee技術(shù)實踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2]周立功.ARM Cortex-M3開發(fā)指南—基于LM3S8000[M].廣州:廣州致遠電子有限公司,2007.
[3]周立功.EasyARM8962實驗教程[M].廣州:廣州致遠公司,2007.
[4]張浩靖.華為EM310產(chǎn)品(GSM 模塊)概述V1.02[M].廣州:華為公司,2009.
[5]周航慈,吳光文.基于嵌入式實時操作系統(tǒng)的程序設(shè)計技術(shù)[M].北京:北京航空航天大學(xué)出版社,2006.