Android與ZigBee的遠(yuǎn)程控制無線網(wǎng)關(guān)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:將ZigBee無線個(gè)域網(wǎng)與Android智能平臺(tái)結(jié)合起來,設(shè)計(jì)出一種便于實(shí)現(xiàn)遠(yuǎn)程控制的無線網(wǎng)關(guān)。網(wǎng)關(guān)以Atmel公司ARM926EJ—S處理器SAM9M10為核心,Android為嵌入式操作系統(tǒng),結(jié)合采用TI公司CC2530芯片的ZigBee無線通信技術(shù)。該網(wǎng)關(guān)設(shè)計(jì)將ZigBee網(wǎng)絡(luò)、以太網(wǎng)和WiFi無線網(wǎng)絡(luò)相融合,有效地實(shí)現(xiàn)便攜式設(shè)備對監(jiān)控區(qū)域的實(shí)時(shí)性監(jiān)控。
關(guān)鍵詞:Android;無線網(wǎng)關(guān);ZigBee;CC2530;SAM9M10
引言
ZigBee技術(shù)是基于IEEE802.15.4標(biāo)準(zhǔn)協(xié)議的一種近距離無線通信技術(shù),具有功耗低、成本低、容量大、安全性高、抗干擾性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用在工業(yè)監(jiān)控、傳感器網(wǎng)絡(luò)、家庭控制、安全系統(tǒng)等領(lǐng)域。如何將ZigBee網(wǎng)絡(luò)與以太網(wǎng)、WiFi網(wǎng)絡(luò)連接,實(shí)現(xiàn)便攜式設(shè)備(如手機(jī)、平板電腦等)對小型區(qū)域的實(shí)時(shí)監(jiān)控?本文提出了一種基于Android系統(tǒng)的ZigBee無線網(wǎng)關(guān)設(shè)計(jì)方案。
1 系統(tǒng)概述
智能監(jiān)控系統(tǒng)設(shè)計(jì)的目的是使用戶可以通過手機(jī)或者PC機(jī)上網(wǎng)遠(yuǎn)程控制終端設(shè)備或?qū)Νh(huán)境進(jìn)行監(jiān)測。其中網(wǎng)關(guān)是系統(tǒng)的核心,主要負(fù)責(zé)上行各無線終端結(jié)點(diǎn)信息的管理和處理,以及下行控制各無線終端結(jié)點(diǎn)運(yùn)作,具有完成不同網(wǎng)絡(luò)間協(xié)議轉(zhuǎn)換的功能。本文網(wǎng)關(guān)的設(shè)計(jì)主要完成ZigBee協(xié)議與TCP/IP協(xié)議的轉(zhuǎn)換功能,利用WiFi網(wǎng)絡(luò)將手持設(shè)備連接到以太網(wǎng),用于控制家電、燈光等,分別完成手機(jī)和以太網(wǎng)信息與ZigBee信息之間的相互通信。網(wǎng)關(guān)在智能監(jiān)控系統(tǒng)中的位置如圖1所示。
網(wǎng)關(guān)設(shè)計(jì)采用模塊化方案,由硬件層、系統(tǒng)層和應(yīng)用層組成,如圖2所示。硬件層描述了網(wǎng)關(guān)的硬件組成;系統(tǒng)層是以SAM9M10為核心處理器的網(wǎng)關(guān)所移植的Android操作系統(tǒng);應(yīng)用層包括網(wǎng)關(guān)應(yīng)用程序、應(yīng)用協(xié)議層和應(yīng)用地址適配層。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)采用模塊化設(shè)計(jì)思想,主要模塊包括SAM9M10核心處理模塊、ZigBee模塊、以太網(wǎng)模塊、LCD模塊、WiFi模塊、電源模塊等。
SAM9M10核心處理模塊包括一個(gè)基于ARM926的400 MHz微處理器,支持133 MHz的雙數(shù)據(jù)率DRAM(DDR2),并且集成了高速(480 Mbps)USB主機(jī)和設(shè)備端口、片上收發(fā)器、以太網(wǎng)MAC、兩個(gè)用于MMC 4.3和SDIO/SD Card 2.0的接口,以及CMOS攝像頭、音頻接口和支持電阻式觸摸屏的LCD控制器。SAM9M10核心處理模塊負(fù)責(zé)ZigBee數(shù)據(jù)收發(fā)、以太網(wǎng)數(shù)據(jù)收發(fā)、LCD數(shù)據(jù)輸出、數(shù)據(jù)存儲(chǔ)等。
ZigBee模塊的主芯片采用TI公司的第二代片上系統(tǒng)CC2530,相比以前的產(chǎn)品,CC2530具有更卓越的RF性能、可編程的256 KB閃存、更小的封裝尺寸和IR產(chǎn)生電路。ZigBee模塊負(fù)責(zé)與ZigBee網(wǎng)絡(luò)其他無線節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)通信,采用USART或SPI與主控制器通信,本文選擇SPI方式。
以太網(wǎng)模塊采用DAVICOM的DM9161芯片。DM9161是一款單芯片快速以太網(wǎng)PHY,DM9161通過可變電壓的MII或RMII標(biāo)準(zhǔn)數(shù)字接口連接到MAC層,支持HPAuto—MDIX,是目前常見的一款物理層收發(fā)器。
WiFi模塊由AP(Access Point)和無線網(wǎng)卡組成,其主要特性為:速度快,可靠性高,在開放區(qū)域覆蓋范圍廣,方便與現(xiàn)有的有線以太網(wǎng)整合,組網(wǎng)的成本更低。
觸摸屏LCD模塊采用臺(tái)灣群創(chuàng)公司的AT102TN03模組,顯示尺寸為10.2寸,顯示比例為16:9,分辨率為800×480,采用LED背光,工作電壓為5 V。
電源模塊由外接5 V電源進(jìn)行供電,由NS公司的芯片LP38692轉(zhuǎn)換為3.3 V、LP2983AIM5—1.0轉(zhuǎn)換為1.0 V,再由Anisem公司的芯片AS1301EHT-ad轉(zhuǎn)換為1.8 V。系統(tǒng)硬件結(jié)構(gòu)如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
無線網(wǎng)關(guān)軟件設(shè)計(jì)主要從Android操作系統(tǒng)的移植、無線網(wǎng)關(guān)系統(tǒng)協(xié)議模型與網(wǎng)關(guān)應(yīng)用程序3方面介紹。
3.1 Android在SAM9M10上的移植
Atmel以32位ARM926處理器為基礎(chǔ)的SAM9M10ARM9器件為運(yùn)行Android操作系統(tǒng)的SAM9M10-G45-EK板提供完整的板級(jí)支持包(BoardSupport Package,BSP)。Atmel公司的Android端口基于2.1版本,支持?jǐn)z像頭接口、硬件視頻解碼、軟件解碼、網(wǎng)頁瀏覽,可以使用以太網(wǎng)電纜或H&.D Wireless提供的WiFi SDIO加密器。通過SAM9M10-G45-EK板的BSP,可以很方便地將Android移植到SAM9M10上,由Nand Flash啟動(dòng)。
移植方面的工作主要有兩部分:Linux驅(qū)動(dòng)和Android系統(tǒng)硬件抽象層。
Linux中的驅(qū)動(dòng)工作在內(nèi)核空問,Android系統(tǒng)硬件抽象層工作在用戶空間,有了這兩個(gè)部分的結(jié)合,就可以讓龐大的Android系統(tǒng)運(yùn)行在特定的硬件平臺(tái)上。在具有了特定的硬件系統(tǒng)之后,通常需要在Linux中實(shí)現(xiàn)其驅(qū)動(dòng)程序,這些驅(qū)動(dòng)程序通常是Linux的標(biāo)準(zhǔn)驅(qū)動(dòng)程序。主要實(shí)現(xiàn)的是Android系統(tǒng)中的硬件抽象層(Hardware Abstract Layer),硬件抽象層對下調(diào)用Linux中的驅(qū)動(dòng)程序,對上提供接口,以供Android系統(tǒng)的其他部分(通常為Android本地框架層)調(diào)用。移植的主要工作如圖4所示。
3.2 無線網(wǎng)關(guān)系統(tǒng)協(xié)議模型
3.2.1 ZigBee協(xié)議棧
ZigBee協(xié)議棧采用TI司的ZStack,具體版本號(hào)為ZStaek-CC2530-2.5.0。它支持ZigBee 2007(包括ZigBee和ZigBee PRO)協(xié)議,在本網(wǎng)關(guān)軟件設(shè)計(jì)中,采用了ZigBee PRO協(xié)議。ZigBee PRO在繼承ZigBee技術(shù)全部優(yōu)點(diǎn)的基礎(chǔ)上,增強(qiáng)了無線網(wǎng)絡(luò)的可擴(kuò)展性、易用性和安全性。Z igBee協(xié)議棧架構(gòu)如圖5所示。
3.2.2 TCP/IP協(xié)議棧
從協(xié)議分層模型方面來將,TCP/IP由4個(gè)層次組成:鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。實(shí)際上,TCP/IP協(xié)議可以通過鏈路層連接到任何網(wǎng)絡(luò)上,例如IEEES02局域網(wǎng)。TCP/IP協(xié)議棧框架如圖6所示。
3.2.3 網(wǎng)關(guān)系統(tǒng)協(xié)議模型
在網(wǎng)關(guān)系統(tǒng)層的ZigBee協(xié)議棧和TCP/IP協(xié)議棧之上添加一個(gè)應(yīng)用地址適配層和應(yīng)用協(xié)議層。應(yīng)用地址適配層的作用在于將ZigBee地址(MAC值或短地址)、以太網(wǎng)地址(IP地址)與應(yīng)用層地址形成映射關(guān)系,即將不同類型的網(wǎng)絡(luò)地址適配到應(yīng)用地址上來,使得節(jié)點(diǎn)在應(yīng)用層同屬于一個(gè)網(wǎng)絡(luò);應(yīng)用協(xié)議層是在應(yīng)用地址適配層的基礎(chǔ)上通過制定統(tǒng)一的應(yīng)用協(xié)議,規(guī)范節(jié)點(diǎn)間數(shù)據(jù)交換的格式,從而實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)與IP網(wǎng)絡(luò)之間的數(shù)字信息交換功能,即實(shí)現(xiàn)ZigBee網(wǎng)關(guān)的功能。
無線網(wǎng)絡(luò)中的ZigBee節(jié)點(diǎn)接收指令將數(shù)據(jù)打包,簡單封裝后向上發(fā)送給本地ARP,通過ARP解析出該節(jié)點(diǎn)的網(wǎng)絡(luò)MAC地址,確定要發(fā)送的以太網(wǎng)地址;然后向上發(fā)送給網(wǎng)關(guān)應(yīng)用程序,經(jīng)分析后發(fā)送到對應(yīng)的以太網(wǎng)UDP或TCP處理,向下發(fā)送到以太網(wǎng)端口MAC地址。這樣就完成了數(shù)據(jù)從ZigBee網(wǎng)絡(luò)向以太網(wǎng)協(xié)議的轉(zhuǎn)換過程。網(wǎng)關(guān)系統(tǒng)協(xié)議模型如圖7所示。
3.3 網(wǎng)關(guān)應(yīng)用程序
網(wǎng)關(guān)應(yīng)用程序主要指的是在網(wǎng)關(guān)應(yīng)用協(xié)議層的規(guī)范基礎(chǔ)上,傳遞的信息數(shù)據(jù)以Android任務(wù)的形式組織運(yùn)行,在以太網(wǎng)與ZigBee網(wǎng)絡(luò)的數(shù)據(jù)通信中,信息是以數(shù)據(jù)包的形式發(fā)送和接收的,數(shù)據(jù)包發(fā)送流程如圖8所示。
在無線WiFi網(wǎng)絡(luò)中,通過以太網(wǎng)與無線AP相連接的PC機(jī)是服務(wù)器端,而無線網(wǎng)關(guān)作為Android客戶端通過TCP/IP協(xié)議與PC服務(wù)器建立網(wǎng)絡(luò)連接,通過Socket通信,可以在實(shí)現(xiàn)服務(wù)器和客戶端網(wǎng)絡(luò)連接的基礎(chǔ)上,完成數(shù)據(jù)的轉(zhuǎn)發(fā)、傳輸和接收。
因此,無線網(wǎng)關(guān)應(yīng)用程序要實(shí)現(xiàn)下面的功能:
①建立客戶端(無線網(wǎng)關(guān))和服務(wù)器(PC機(jī))的Socket,網(wǎng)絡(luò)連接,為他們之間的數(shù)據(jù)交換提供必要條件。
②將無線ZigBee模塊接收到的來自ZigBee網(wǎng)絡(luò)的數(shù)據(jù)讀進(jìn)緩沖區(qū),然后寫入U(xiǎn)SB無線網(wǎng)卡,USB無線網(wǎng)卡會(huì)將數(shù)據(jù)打包成WiFi協(xié)議格式,送入無線WiFi網(wǎng)絡(luò)。
Android客戶端應(yīng)用程序?qū)崿F(xiàn)流程如圖9所示。
4 燈光控制功能的實(shí)現(xiàn)
ZigBee將應(yīng)用劃分為不同的域,每個(gè)應(yīng)用域都有自己的ProfiIe,ZigBee Profile為這個(gè)應(yīng)用域提供標(biāo)準(zhǔn)的接口和設(shè)備定義,使得不同生產(chǎn)商生產(chǎn)的針對同一應(yīng)用領(lǐng)域的ZigBee設(shè)備之間能互通。ZigBee在智能家居、家庭自動(dòng)化中采用的Profile是ZigBee Home Automation Pub lic Appliation Profile。通過該P(yáng)rofile及ZCL(ZigBee Cluster Library)的引入,實(shí)現(xiàn)了對ZigBee燈光家電設(shè)備的控制。例如網(wǎng)關(guān)對燈光進(jìn)行開關(guān)控制,只需調(diào)用zelGeneral-SenclOnOff_CmdToggle()函數(shù)。應(yīng)用程序、Profile及ZCL與其他層的接口的層次框圖如圖10所示。
結(jié)語
本文研究了基于Android系統(tǒng)和ZigBee技術(shù)的無線網(wǎng)關(guān),該網(wǎng)關(guān)體積小,功耗低,使ZigBee網(wǎng)絡(luò)和以太網(wǎng)以及WiFi網(wǎng)絡(luò)融合為一體,在ZigBee近距離無線通信和以太網(wǎng)遠(yuǎn)程控制之間搭建了一座橋梁。實(shí)現(xiàn)了無線傳感網(wǎng)與無線互聯(lián)網(wǎng)之間的數(shù)字信息交互,可以廣泛應(yīng)用到物聯(lián)
網(wǎng)中。