熊俊俏,馮進維,羅 帆
(武漢工程大學電氣信息學院,武漢 430074)
ZigBee技術是HomeRF的一個分支,是一種近距離、低復雜度、低功耗、低數據速率、低成本的雙向無線通信技術或無線網絡技術,同時又是一組基于IEEE 802.15.4無線標準研制開發的有關組網、安全和應用軟件方面的技術,適合于承載數據流量較小的業務,經過幾年的理論研究[1],目前已經轉向大規模應用階段,涌現出覆蓋不同頻段和功能結構的模塊[2-5],通過嵌入各種設備中,在工業現場、家庭以及醫學等低功耗、低成本的無線通信應用場合,具有廣闊的應用前景.JN5139是Jennic公司推出的低功耗、低成本、適合于IEEE802.15.4 和ZigBee應用的無線微控制器,集成了32位RISC處理器和全兼容的2.4GHz IEEE802.15.4收發器,為無線傳感器網絡的應用提供了更好的選擇[6].
Zigbee網絡包括設備類型、拓撲結構和路由方式.根據ZigBee標準規定,Zigbee網絡節點分為網絡協調器(Coordinator)、路由器(Router)和終端設備(End-Device)三種邏輯設備,ZigBee網絡由一個網絡協調器以及多個路由器和多個終端設備組成,其中網絡協調器負責啟動整個網絡和網絡配置,路由器根據Zigbee協議算法決定數據的路由,允許其它設備加入網絡.終端設備負責信息的發送和接收.Zigbee 網絡具有三種拓撲形式:星形拓撲、樹形拓撲、網狀拓撲(Mesh拓撲),網絡協調器和路由器管理區域內與其具有鄰接關系的設備表,如果目標設備在物理區域內可見,就可以根據路由表記錄中的路徑直接發送信息,若目標設備不具備局部的鄰接關系,就需啟動路由發現過程:一個設備發出路由請求命令幀啟動路由發現過程,對應的接收者收到該命令,給出路由回復命令幀,對潛在的各條路徑的跳轉次數、延遲時間進行評估比較,將最佳路由記錄添加到此路徑上各個設備的路由表中.因此,網狀網絡拓撲具有更加靈活的信息路由規則,在可能的情況下,路由節點之間可以直接通信,使信息的傳輸變得更有效率,而且一旦一個路由路徑出現問題,信息可以自動的沿著其它的路由路徑進行傳輸,具有很強的網絡自組織能力.
JN5139嵌入了完整的IEEE802.15.4和ZigBee網絡協議棧,具有低功耗的休眠模式、安全機制和程序加密,以及一體化收發器和微處理控制器,適用于無線傳感器網絡應用,其結構如圖1所示.

圖1 JN5139內部結構
圖1所示的JN5139內含192kB的ROM存儲了包括協議堆棧在內的系統代碼,96kB的RAM存儲系統數據和引導程序代碼,以及48bit的OTP eFuse存儲MAC ID,并提供基于AES的代碼加密,集成有4路12位ADC,2路11位DAC和2個比較器、2個應用計時器/計數器、3個系統計時器和2個UART、5種可選擇的SPI端口和2線串行接口,多達21個GPIO,以及OQPSK調制解調器和2.4GHz的射頻處理單元.
JN5139內嵌的完整ZigBee協議棧可實現網絡協調器和路由功能,具備網狀結構的無線傳感器網絡中的節點全功能,因此適合無線傳感網絡的各種網絡拓撲結構.采用JN5139的節點,可通過軟件定義為網絡協調器節點和路由節點,又可作為終端使用.其開發軟件包括代碼編輯、編譯開發平臺和下載工具.
無線傳感器網絡節點由數據采集模塊、數據處理模塊、無線數據通信模塊和能量供應模塊組成.系統采用的傳感器為數字式溫濕傳感器(型號為SHT1X),而電池電壓的監控直接進行ADC轉換.因此,以JN5139組建無線傳感器網絡的關鍵是軟件開發和功能定義.
系統初始化由Jennic提供的BOS(基本操作系統)控制Zigbee堆棧以及用戶任務的執行,首先對每個設備的Zigbee堆棧進行初始化,初始化網絡協調器,定義網絡標識,協調器通過能量掃描檢測來找到一個相對安靜的射頻通道,并利用此通道來建立自己的無線網絡,協調器建立網絡后,其它的網絡設備就可加入該網絡,從而構建復雜的Mesh網絡拓撲結構.
系統的軟件設計是在Jennic提供的開發平臺上進行的.Jennic公司在ZigBee協議棧的基礎上提供了BOS,包括一些基本的接口函數,主要有:1)初始化函數,用于在設備上電時對協議棧進行初始化;2)協議棧調用函數;3)協議棧調用應用函數,這類函數通常作為協議棧和應用程序進行通訊的接口.
路由節點負責完成現場數據的采集以及通過無線通信模塊將采集數據包無線傳送.各節點遵循休眠-被喚醒-正常工作的工作模式,如圖2(a)所示.在休眠狀態,處理器停止工作,而SPI端口和中斷系統繼續工作.當中斷產生,節點就通過控制引腳信號來實現對傳感器的控制,進行數據采集和發送.
具體的設計過程如下[6-8]:
(1) 設置基本的網絡參數:通過調用函數分別配置網絡通道和配置網絡ID號.
(2) 初始化:調用初始化函數完成包括初始化系統、指示燈、ADC,最后啟動BOS任務系統,然后程序就在系統的調度下開始工作,進入不同的事件處理函數.例如控制ADC的函數可分別設置禁止連續轉換、輸入電壓的范圍和ADC的轉換通道.
(3) 熱啟動入口:當系統處于休眠模式時,由中斷喚醒,喚醒后的系統調用入口函數,程序從入口重新開始運行.
(4) 數據采集與發送函數:該函數執行讀傳感器數據、控制顯示燈閃爍和發送數據等.
(5) 回調函數:Router使用回調函數創建周期性任務函數,使Router周期性的向網絡中發送數據,控制設備作為Router啟動,并試圖加入網絡,協議棧通過函數反饋判斷該路由是否成功加入到網絡.
Coordinator負責組網并啟動網絡,定時的接收網絡中傳來的數據,并向通過串口向上位機寫數據,其流程如圖2(b)所示.

圖2 節點工作流程
具體操作如下:
(1) 接收數據處理:Coordinator接收數據通過協議棧調用回調函數完成,并解析 其攜帶的數據內容,得到傳感器的數據.當Coordinator和Router在同一網絡中,且有數據從Router發送過來的時候,Coordinator便開始接收,收到的數據將調用串口函數向串口發送.
(2) 串口操作:調用輸出函數,向串口直接寫地址和數據.
(3) 設備運行標志:在系統運行時,通過周期性的調用函數,讓燈閃爍表示設備的運行.
(4) 回調函數:Coordinator 通過調用回調函數對網絡節點上的終端設備進行描述,使Coordinator能正確地接收其它節點發送的數據.
通過編譯軟件將上述的Coordinator和Router 的CPP文件進行編譯,并下載到不同的傳感器板中.系統配置是四個Router和一個Coordinator.并將Coordinaotr接到上位機串口,通過串口數據可以看到不同地址的路由上報的溫濕度傳感器數據和供電電池電壓.部分數據如表1所示.

表1 系統采集的數據
基于JN5139控制器,添加適當的外圍電路,設計了溫濕度監控系統.運用Jennic公司提供的軟件編輯、編譯器,以及其提供的庫函數的基礎上,通過設定不同的設備為Coordinator和Router,實現了不同設備之間消息與數據的發送與接收,并實現Mesh網絡的組網及路由.
參考文獻:
[1]劉焱驪,沈斌,胡中功,等.無線傳感器網絡分簇低延時MAC協議 [J].武漢工程大學學報,2008,30(4):85-89.
[2]余永輝,涂巧玲,彭宇興.基于CC2420的無線傳感器網絡節點低功耗研究[J].電視技術,2009,33(5):73-75.
[3]劉志東,陳彥明.基于ZigBee的無線傳感器網絡節點的設計[J].桂林電子科技大學學報,2008,28(5):399-402
[4]董方武,王紹卜,馬子余.基于ZigBee的堿液質量分數在線檢測系統設計[J].武漢工程大學學報,2010,32(1):100-103.
[5]高文華,康琳,柴婷婷.基于ZigBee的溫濕度監測系統[J]. 電子測量技術,2008,31(10):122-124.
[6]Jennic Ltd.Preliminary Data sheet JN5139-xxx-Myy.IEEE802.15.412igBee Module Family [EB/OL].[2008-5-10].http://www.jennic.com.
[7]Jennic Ltd. JN-AN-1015 ZigBeewireless sensor network[EB/OL][2007-07-13].http://www.jennic.com.
[8]Jennic Ltd.JN513x Wireless-microcontroller Datash-eet[EB/OL][2007-10-26].http://www.jennic.com.