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