瞿稻,楊繼峰,陳偉
(1.武漢理工大學信息學院,武漢430070;2.上海明波通信技術有限公司)
監控系統是與傳感技術、信息傳遞處理技術和計算機技術等緊密相關的。監控包括監視和控制,意味著系統工作在全雙工模式。按通信方式可將監控系統分為有線監控系統和無線監控系統[1]。以往由于信息在無線傳遞時容易受到干擾等一系列的原因導致其應用遠落后于有線監控系統,近年來隨著通信技術的發展,無線信息傳遞越來越穩定可靠,其抗干擾能力、糾錯能力和保密能力越來越強。而有線監控系統存在著隱蔽性差、抗破壞能力弱等問題,在一些場合難以鋪設或鋪設成本高、周期長、費時費力。可以預見,無線監控系統的應用和研究將越來越廣泛。
基于IEEE 802.15.4標準[2]的ZigBee協議具有自組織、穩定性好、抗干擾性強、功耗低等一系列優點,在無線個域網、物聯網和低功耗傳感網絡等領域得到了廣泛的應用[3]。Android是Google公司推出的一個基于Linux內核的智能移動平臺的解決方案[4],由于Android具有人機界面友好、可擴充性強、安全易用等特點,在推出后短短幾年就已經占據了移動平臺的領軍地位。
當前,將ZigBee協議和Android智能平臺技術結合起來進行研究的課題十分稀少,相關的研究成果更是少之又少。因此,本課題的研究具有良好的前瞻性和啟發性。
智能移動監控系統由兩個主要的部分組成:信息采集與傳輸子系統和信息處理與控制子系統。信息采集與傳輸子系統采用ZigBee協議作為基礎,其主要功能是采集環境信息并將其發送至信息處理與控制子系統。同時,信息采集與傳輸子系統需要及時的響應來自信息處理與控制子系統的各種命令。信息處理與控制子系統是基于Android智能平臺的,需要實時地顯示自信息采集與傳輸子系統的環境信息,并將用戶的控制操作轉換成用戶命令下達至信息采集與傳輸子系統。智能移動監控系統的整體結構如圖1所示。

圖1 智能移動監控系統整體結構
信息采集與傳輸子系統采用CC2530作為硬件結構的核心。CC2530內部集成了業界領先的射頻收發器、豐富的片內外設和強大的DMA控制器[5]。集成的射頻收發器的性能指標遠遠優于IEEE 802.15.4標準所規定的要求。豐富的片內外設,如AES協處理器、CSP協處理器和SPI等通信接口,為各種基于ZigBee、6LoWPAN和RF4CE等協議的應用提供了有力的支持。強大的DMA控制器為CC2530在高強度、高吞吐量以及實時性要求嚴格等領域的卓越表現提供了可靠的保證。LCD采用FSTN顯示模式的LM6059BCW液晶模塊。信息采集與傳輸子系統硬件結構如圖2所示。

圖2 信息采集與傳輸子系統硬件結構
信息處理與控制子系統采用基于ARM1176JZF-S內核的S3C6410微處理器[6]作為核心控制單元。ARM11系列是ARMv6架構的第一代實現。采用兩片K4X51163PC Mobile DDR SDRAM芯片構成128MB的內存系統。采用1GB的K9G8G08U0ANAND Flash芯片作為非易失性存儲設備。采用7寸TFT觸摸屏作為主要的人機交互設備。采用100M以太網芯片DM9000AE構建以太網接口,用于以太網訪問。信息處理與控制子系統的硬件結構如圖3所示。
信息采集與傳輸子系統軟件架構如圖4所示。信息采集與傳輸子系統的軟件系統設計是基于OSAL操作系統的。用戶任務和ZDO等ZigBee系統任務一起在OSAL操作系統的調度下運行,其調度機制基于優先級,用戶任務的優先級是最低的。

圖3 信息處理與控制子系統硬件結構

圖4 信息采集與傳輸子系統軟件架構
信息處理與控制子系統軟件部分的主體是Android應用程序。該Android應用程序實時地顯示環境信息并及時地響應用戶的觸摸操作。Android應用程序的運行需要底層Linux硬件驅動[7]等的支持。本子系統的軟件架構如圖5所示。

圖5 信息處理與控制子系統軟件架構
信息采集與傳輸子系統中的關鍵技術有很多,這里主要介紹ZigBee協議[8]。ZigBee協議從上到下由應用層APS、網絡層NWK、媒體訪問控制層MAC和物理層PHY組成[9]。應用層的主要功能與信息采集與傳輸密切相關。網絡層的功能包括配置設備、路由發現和維護,確保數據能安全、有效地傳輸到目的設備。媒體訪問控制層控制著設備接入無線信道的時間和方法,確保數據鏈路的可靠性。物理層主要實現數據的發送和接收,完成信道的評估和射頻信號能量的測量等。本課題物理層工作在2.4 GHz的ISM頻段,調制方式為O-QPSK。ZigBee協議數據傳遞流程如圖6所示。應用層數據從一個ZigBee設備發送到另一個ZigBee設備,它是一個層層封裝,然后層層解析的過程。

圖6 ZigBee協議數據傳遞流程
從應用層來看,信息采集與傳輸子系統中存在信息采集節點和網關節點兩種設備。信息采集系統與傳輸子系統的Profile ID為INFO_GATHER_PRF。信息采集結點和網關節點的端點號均被配置成INFO_GATHER_EPT。信息采集與傳輸子系統的兩種數據類型如圖7所示。信息采集節點和網關節點之間存在兩種數據的交互:環境信息數據和用戶命令數據。信息采集結點向網關節點發送環境信息數據時采用的簇ID為ENV_INFO_CLU,網關節點向信息采集節點傳達用戶命令時使用的簇ID為USR_CMD_CLU。

圖7 信息采集與傳輸子系統的兩種數據類型
Profile ID號、端點號和簇ID都是ZigBee協議定義的重要的配置信息,請參見ZigBee協議。
環境信息數據和用戶命令數據最終都將填充到類型為afIncomingMSGPacket_t的結構體中,其定義如下:typedef struct{
osal_event_hdr_t hdr;
uint16groupId;
uint16clusterId;
afAddrType_t srcAddr;
uint16macDestAddr;
uint8endPoint;
uint8wasBroadcast;
uint8LinkQuality;
uint8correlation;
int8rssi;
uint8SecurityUse;
uint32timestamp;
afMSGCommandFormat_t cmd;
}afIncomingMSGPacket_t;
該結構中clusterId填充的就是簇ID,endPoint填充的就是端點號,Profile ID隱藏在變量srcAddr中。變量cmd填充的就是與應用相關的數據,如環境信息編碼和用戶命令編碼。
信息處理與控制子系統是在Android智能移動平臺上研發的。Android智能平臺體系從上到下由應用程序、應用程序框架、外部庫、Android運行時庫、硬件抽象層HAL(Hardware Abstraction Layer)和Linux內核組成[10]。
Android智能移動平臺的研發需要借助Eclipse、NDK和JNI等工具和方法。信息處理與控制子系統的MVC模式如圖8所示。本文是按MVC模式研發信息處理與控制子系統的。

圖8 信息處理與控制子系統的MVC模式
Android應用程序的設計必須要遵循單線程模型。當Android應用程序啟動時,Android系統會同時啟動一個對應的主線程即UI線程,用于處理與用戶界面UI(User Interface)相關的事件。UI線程不是線程安全的。
此設計需要將環境信息實時地顯示在Android應用程序上,同時需要及時地將用戶操作轉換成用戶命令發送至信息采集與傳輸子系統。因此,為了避免阻塞UI線程,設計了一個守候線程并采用了基于zbHandler的消息傳遞機制。UI線程和守候線程的關系如圖9所示。
守候線程是借助于本地方法獲取Linux底層驅動環境信息的。信息處理與控制子系統中的本地方法被封裝在一個名為ZigBeeJni的類中,其定義如下:
public class ZigBeeJni{
static{
System.loadLibrary("zbjni");
}
public static native int init();public static native int close();
public static native int readNodeInfo(int node_id);
public static native int sendCmd(int node_id,int cmd);
}

圖9 UI線程和守候線程
本文研究了基于ZigBee網絡和Android智能移動平臺的監控系統的設計。經過嚴格的測試,本系統能夠完成對環境信息的實時監測,并能及時地響應用戶發出的各種控制命令,系統的設計達到了預期的目標。
[1]謝恒義,郭勇.基于現代通信技術的家庭無線監控系統設計[J].信息通信,2008(3).
[2]LAN/MAN Standards Committee of the IEEE Computer Society.IEEE Std 802.15.4-2006Wireless Medium Access Control(MAC)and Physical Layer(PHY)specifications for Low Rate Wireless Personal Area Networks(LR-WPANs)[S].
[3]劉建兵,蔣朝根.基于ZigBee技術的無線嵌入式溫度采樣儀設計[J].西南科技大學學報,2007(1).
[4]公磊,周聰.基于Android的移動終端應用程序開發與研究[J].計算機與現代化,2008(8).
[5]TI.CC253xSystem-on-Chip Solution for 2.4GHz IEEE 802.15.4and ZigBee Applications User's Guide[EB/OL].[2012-02-06].http://www.ti.com/.
[6]Samsung Electronics.S3C6410XRISC Microprocessor USER'S MANUAL,Rev 1.20[EB/OL].[2012-02-06].http://www.samsungsemi.com/.
[7]Jonathan Corbet,Alessandro Rubini,Greg Kroah Hartman.Linux設備驅動程序[M].魏永明,耿岳,鐘書毅,譯.3版.北京:中國電力出版社,2006.
[8]ZigBee Alliance.ZigBee Specification Datasheet,2008.
[9]Shahin Farahani.ZigBee Wireless Networks and Transceivers[M].USA:Elsevier,2008.
[10]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008(11).