ZigBee和Android的智能移動監(jiān)控系統(tǒng)設計
摘要:將ZigBee無線個域網(wǎng)和Android智能平臺聯(lián)合起來進行研究,并設計出一個便于維護的智能移動監(jiān)控系統(tǒng)。它具有穩(wěn)定性強、可靠性高、擴展性好等優(yōu)點,能夠廣泛地應用于工業(yè)、農(nóng)業(yè)和服務業(yè)等各領域。系統(tǒng)采用CC2530和S3C6410等高性能處理器構建硬件平臺。數(shù)據(jù)的傳輸采用ZigBee協(xié)議,人機交互程序在Android平臺上開發(fā),能實現(xiàn)環(huán)境信息的實時顯示和用戶控制命令的及時響應。
關鍵詞:ZigBee;Android;CC2530;S3C6410
引言
監(jiān)控系統(tǒng)是與傳感技術、信息傳遞處理技術和計算機技術等緊密相關的。監(jiān)控包括監(jiān)視和控制,意味著系統(tǒng)工作在全雙工模式。按通信方式可將監(jiān)控系統(tǒng)分為有線監(jiān)控系統(tǒng)和無線監(jiān)控系統(tǒng)。以往由于信息在無線傳遞時容易受到干擾等一系列的原因?qū)е缕鋺眠h落后于有線
監(jiān)控系統(tǒng),近年來隨著通信技術的發(fā)展,無線信息傳遞越來越穩(wěn)定可靠,其抗十擾能力、糾錯能力和保密能力越來越強。而有線監(jiān)控系統(tǒng)存在著隱蔽性差、抗破壞能力弱等問題,在一些場合難以鋪設或鋪設成本高、周期長、費時費力??梢灶A見,無線監(jiān)控系統(tǒng)的應用和研究將越來越廣泛。
基于IEEE 802.15.4標準的ZigBee協(xié)議具有自組織、穩(wěn)定性好、抗干擾性強、功耗低等一系列優(yōu)點,在無線個域網(wǎng)、物聯(lián)網(wǎng)和低功耗傳感網(wǎng)絡等領域得到了廣泛的應用。Android是Google公司推出的一個基于Linux內(nèi)核的智能移動平臺的解決方案,由于Android具有人機界面友好、可擴充性強、安全易用等特點,在推出后短短幾年就已經(jīng)占據(jù)了移動平臺的領軍地位。
當前,將ZigBee協(xié)議和Android智能平臺技術結合起來進行研究的課題十分稀少,相關的研究成果更是少之又少。因此,本課題的研究具有良好的前瞻性和啟發(fā)性。
1 系統(tǒng)結構
智能移動監(jiān)控系統(tǒng)由兩個主要的部分組成:信息采集與傳輸子系統(tǒng)和信息處理與控制子系統(tǒng)。信息采集與傳輸子系統(tǒng)采用ZigBee協(xié)議作為基礎,其主要功能是采集環(huán)境信息并將其發(fā)送至信息處理與控制予系統(tǒng)。同時,信息采集與傳輸子系統(tǒng)需要及時的響應來自信息處理與控制子系統(tǒng)的各種命令。信息處理與控制子系統(tǒng)是基于Android智能平臺的,需要實時地顯示自信息采集與傳輸子系統(tǒng)的環(huán)境信息,并將用戶的控制操作轉(zhuǎn)換成用戶命令下達至信息采集與傳輸子系統(tǒng)。智能移動監(jiān)控系統(tǒng)的整體結構如圖1所示。
1.1 硬件結構
信息采集與傳輸子系統(tǒng)采用CC2530作為硬件結構的核心。CC2530內(nèi)部集成了業(yè)界領先的射頻收發(fā)器、豐富的片內(nèi)外設和強大的DMA控制器。集成的射頻收發(fā)器的性能指標遠遠優(yōu)于IEEE 802.15.4標準所規(guī)定的要求。豐富的片內(nèi)外設,如AES協(xié)處理器、CSP協(xié)處理器和SPI等通信接口,為各種基于ZigBee、6LoWPAN和RF4CE等協(xié)議的應用提供了有力的支持。強大的DMA控制器為CC2530在高強度、高吞吐量以及實時性要求嚴格等領域的卓越表現(xiàn)提供了可靠的保證。LCD采用FSTN顯示模式的LM6059BCW液品模塊。信息采集與傳輸子系統(tǒng)硬件結構如圖2所示。
[!--empirenews.page--]
信息處理與控制子系統(tǒng)采用基于ARM1176JZF-S內(nèi)核的S3C6410微處理器作為核心控制單元。ARM11系列是ARMv6架構的第一代實現(xiàn)。采用兩片K4X51163PC Mobile DDR SDRAM芯片構成128 MB的內(nèi)存系統(tǒng)。采用1GB的K9G8G08UOA NAND Flash芯片作為非易失性存儲設備。采用7寸TFT觸摸屏作為主要的人機交互設備。采用100M以太網(wǎng)芯片DM9000AE構建以太網(wǎng)接口,用于以太網(wǎng)訪問。信息處理與控制子系統(tǒng)的硬件結構如圖3所示。
1.2 軟件結構
信息采集與傳輸子系統(tǒng)軟件架構如圖4所示。信息采集與傳輸子系統(tǒng)的軟件系統(tǒng)設計是基于OSAL操作系統(tǒng)的。用戶任務和ZDO等ZigBee系統(tǒng)任務一起在OSAL操作系統(tǒng)的調(diào)度下運行,其調(diào)度機制基于優(yōu)先級,用戶任務的優(yōu)先級是最低的。
信息處理與控制子系統(tǒng)軟件部分的主體是Android應用程序。該Android應用程序?qū)崟r地顯示環(huán)境信息并及時地響應用戶的觸摸操作。Android應用程序的運行需要底層Linux硬件驅(qū)動等的支持。本子系統(tǒng)的軟件架構如圖5所示。
2 系統(tǒng)關鍵技術和實現(xiàn)
2.1 信息采集與傳輸子系統(tǒng)
信息采集與傳輸子系統(tǒng)中的關鍵技術有很多,這里主要介紹ZigBee協(xié)議。ZigBee協(xié)議從上到下由應用層APS、網(wǎng)絡層NWK、媒體訪問控制層MAC和物理層PHY組成。應用層的主要功能與信息采集與傳輸密切相關。網(wǎng)絡層的功能包括配置設備、路由發(fā)現(xiàn)和維護,確保數(shù)據(jù)能安全、有效地傳輸?shù)侥康脑O備。媒體訪問控制層控制著設備接入無線信道的時間和方法,確保數(shù)據(jù)鏈路的可靠性。物理層主要實現(xiàn)數(shù)據(jù)的發(fā)送和接收,完成信道的評估和射頻信號能量的測量等。本課題物理層工作在2.4GHz的ISM頻段,調(diào)制方式為O-QPSK。ZigBee協(xié)議數(shù)據(jù)傳遞流程如圖6所示。應用層數(shù)據(jù)從一個ZigBee設備發(fā)送到另一個ZigBee設備,它是一個層層封裝,然后層層解析的過程。
[!--empirenews.page--]
從應用層來看,信息采集與傳輸子系統(tǒng)中存在信息采集節(jié)點和網(wǎng)關節(jié)點兩種設備。信息采集系統(tǒng)與傳輸子系統(tǒng)的Profile ID為INFO_GATH ER_PRF。信息采集結點和網(wǎng)關節(jié)點的端點號均被配置成INFO_GATHER_EPT。
信息采集與傳輸子系統(tǒng)的兩種數(shù)據(jù)類型如圖7所示。信息采集節(jié)點和網(wǎng)關節(jié)點之間存在兩種數(shù)據(jù)的交互:環(huán)境信息數(shù)據(jù)和用戶命令數(shù)據(jù)。信息采集結點向網(wǎng)關節(jié)點發(fā)送環(huán)境信息數(shù)據(jù)時采用的簇ID為ENV_INFO_CLU,網(wǎng)關節(jié)點向信息采集節(jié)點傳達用戶命令時使用的簇ID為USR_CMD_CLU。
Profile ID號、端點號和簇ID都是ZigBee協(xié)議定義的重要的配置信息,請參見ZigBee協(xié)議。
環(huán)境信息數(shù)據(jù)和用戶命令數(shù)據(jù)最終都將填充到類型為aflncomingMSGPacket_t的結構體中,其定義如下:
該結構中clusterId填充的就是簇ID,endPoint填充的就是端點號,Profile ID隱藏在變量srcAddr中。變量cmd填充的就是與應用相關的數(shù)據(jù),如環(huán)境信息編碼和用戶命令編碼。[!--empirenews.page--]
2.2 信息處理與控制子系統(tǒng)
信息處理與控制子系統(tǒng)是在Android智能移動平臺上研發(fā)的。Android智能平臺體系從上到下由應用程序、應用程序框架、外部庫、Andr oid運行時庫、硬件抽象層HAL(Hardware Abstraction Laycr)和Linux內(nèi)核組成。
Android智能移動平臺的研發(fā)需要借助Eclipse、NDK和JNI等工具和方法。信息處理與控制子系統(tǒng)的MVC模式如圖8所示。本文是按MVC模式研發(fā)信息處理與控制子系統(tǒng)的。
Android應用程序的設計必須要遵循單線程模型。當Android應用程序啟動時,Android系統(tǒng)會同時啟動一個對應的主線程即UI線程,用于處理與用戶界面UI(User Interface)相關的事件。UI線程不是線程安全的。
此設計需要將環(huán)境信息實時地顯示在Android應用程序上,同時需要及時地將用戶操作轉(zhuǎn)換成用戶命令發(fā)送至信息采集與傳輸子系統(tǒng)。岡此,為了避免阻塞UI線程,設計了一個守候線程并采用了基于zbHandler的消息傳遞機制。UI線程和守候線程的關系如圖9所示。
守候線程是借助于本地方法獲取Linux底層驅(qū)動環(huán)境信息的。信息處理與控制子系統(tǒng)中的本地方法被封裝在一個名為ZigBeeJni的類中,其定義如下:
結語
本文研究了基于ZigBee網(wǎng)絡和Android智能移動平臺的監(jiān)控系統(tǒng)的設計。經(jīng)過嚴格的測試,本系統(tǒng)能夠完成對環(huán)境信息的實時監(jiān)測,并能及時地響應用戶發(fā)出的各種控制命令,系統(tǒng)的設計達到了預期的目標。