方思維,張盼盼
(西安工程大學(xué),西安710048)
方思維(碩士研究生),主要研究方向?yàn)闊o線傳感網(wǎng)、無線通信技術(shù)、嵌入式系統(tǒng)等;張盼盼(碩士研究生),主要研究嵌入式應(yīng)用技術(shù)。
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ì)方案。
智能監(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所示。
圖1 網(wǎng)關(guān)在智能監(jiān)控系統(tǒng)中的位置
網(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)用地址適配層。
系統(tǒng)硬件設(shè)計(jì)采用模塊化設(shè)計(jì)思想,主要模塊包括SAM9M10核心處理模塊、ZigBee模塊、以太網(wǎng)模塊、LCD模塊、WiFi模塊、電源模塊等。
SAM9M10核心處理模塊包括一個(gè)基于ARM926的400MHz微處理器,支持133MHz的雙數(shù)據(jù)率DRAM(DDR2),并且集成了高速(480Mbps)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ǔ)等。
圖2 無線網(wǎng)關(guān)結(jié)構(gòu)示意圖
ZigBee模塊的主芯片采用TI公司的第二代片上系統(tǒng)CC2530,相比以前的產(chǎn)品,CC2530具有更卓越的RF性能、可編程的256KB閃存、更小的封裝尺寸和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)公司的AT102TNO3模組,顯示尺寸為10.2寸,顯示比例為16∶9,分辨率為800×480,采用LED背光,工作電壓為5V。
電源模塊由外接5V電源進(jìn)行供電,由NS公司的芯片 LP38692 轉(zhuǎn) 換 為 3.3V、LP2983AIM5-1.0 轉(zhuǎn) 換 為1.0V,再由Anisem公司的芯片AS1301EHT-ad轉(zhuǎn)換為1.8V。系統(tǒng)硬件結(jié)構(gòu)如圖3所示。
無線網(wǎng)關(guān)軟件設(shè)計(jì)主要從Android操作系統(tǒng)的移植、無線網(wǎng)關(guān)系統(tǒng)協(xié)議模型與網(wǎng)關(guān)應(yīng)用程序3方面介紹。
Atmel以32位ARM926處理器為基礎(chǔ)的SAM9M10 ARM9器件為運(yùn)行Android操作系統(tǒng)的SAM9M10-G45-EK板提供完整的板級支持包(Board Support 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)。
圖3 無線網(wǎng)關(guān)結(jié)構(gòu)
移植方面的工作主要有兩部分: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所示。
圖4 Android系統(tǒng)移植的主要工作
3.2.1 ZigBee協(xié)議棧
ZigBee協(xié)議棧采用TI司的ZStack,具體版本號(hào)為ZStack-CC2530-2.5.0。它支持ZigBee 2007(包括 ZigBee和ZigBee PRO)協(xié)議,在本網(wǎng)關(guān)軟件設(shè)計(jì)中,采用了Zig-Bee PRO協(xié)議。ZigBee PRO在繼承ZigBee技術(shù)全部優(yōu)點(diǎn)的基礎(chǔ)上,增強(qiáng)了無線網(wǎng)絡(luò)的可擴(kuò)展性、易用性和安全性。ZigBee協(xié)議棧架構(gòu)如圖5所示。
圖5 ZigBee協(xié)議??蚣?/p>
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ò)上,例如IEEE802局域網(wǎng)。TCP/IP協(xié)議??蚣苋鐖D6所示。
圖6 TCP/IP協(xié)議??蚣?/p>
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所示。
網(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所示。
圖7 網(wǎng)關(guān)系統(tǒng)協(xié)議模型
圖8 數(shù)據(jù)包發(fā)送流程圖
在無線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所示。
圖9 Android客戶端應(yīng)用程序?qū)崿F(xiàn)流程圖
ZigBee將應(yīng)用劃分為不同的域,每個(gè)應(yīng)用域都有自己的Profile,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 Public 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)用zel-General-SendOnOff_Cmd-Toggle()函數(shù)。應(yīng)用程序、Profile及ZCL與其他層的接口的層次框圖如圖10所示。
圖10 應(yīng)用程序、Profile及ZCL與其他層接口層次框圖
本文研究了基于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)中。
[1]ZigBee Alliance.The ZigBee PRO Stack Profile,2012.
[2]蔣挺,趙成林.紫蜂技術(shù)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2006:244-247.
[3]王志賀,馬國旗,紀(jì)億.淺談 WiFi技術(shù)[J].魅力中國,2011(16).
[4]瞿稻.基于Android平臺(tái)移動(dòng)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2012.
[5]喬大雷.基于ARM9的嵌入式ZigBee網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國礦業(yè)大學(xué),2007.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2013年4期