《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 业界动态 > Zigbee技术规范与协议栈分析

Zigbee技术规范与协议栈分析

2009-05-25
作者:李战明,刘 宝,骆东松

??? 摘 要: 以Zigbee 2006協議棧為對象,研究其技術規范,使用串口調試助手及數據分析儀解讀其協議棧程序,詳細解釋OSAL(操作系統)的工作流程及整個協議棧的實現過程,以達到提高Zigbee源代碼的可讀性和可操作性的目的。
??? 關鍵詞:技術規范;Zigbee協議棧;串口調試助手;數據分析議;OSAL

?

??? 伴隨無線傳感器網絡的迅猛發展,Zigbee技術作為最近發展起來的一種短距離無線通信技術,以其低功耗、自組織、安全可靠、支持大量節點等優勢,被業界認為是最有可能應用在工控場合的無線方式。到目前為止,節點已經應用于工業監控、智能家庭、安全醫療等多個領域,具有很大的發展空間。
??? Zigbee協議棧(Z-STACK)作為Zigbee技術的核心,是開發802.15.4/Zigbee必須掌握的關鍵技術。協議棧發展至今已有四種版本(見表1),盡管實現功能越發完善,但是并未移植標準的操作系統統一任務調度,嵌套相當復雜,而顯得源代碼的可讀性和可操作性較差,開發者在理解和實現協議的過程中仍會遇到很多困難。本文通過對最典型的、起到承上啟下作用的Zigbee-2006協議棧的解讀,對協議程序的運行過程提供一種準確的解釋分析,降低開發者的閱讀難度和工作量,為協議棧自身的發展、Zigbee設備的開發及應用的推廣提供強有力的技術支持。

?


1 協議棧體系結構及規范
??? Zigbee協議棧體系結構如圖1所示[1],協議棧的層與層之間通過服務接入點(SAP)進行通信。SAP是某一特定層提供的服務與上層之間的接口。大多數層有兩個接口:數據實體接口和管理實體接口。數據實體接口的目標是向上層提供所需的常規數據服務;管理實體接口的目標是向上層提供訪問內部層參數、配置和管理數據的服務[2]

?


1.1 物理層服務規范
??? 物理層通過射頻固件和硬件提供MAC層與物理無線信道之間的接口。從概念上說,物理層還應包括物理層管理實體(PLME),以提供調用物理層管理功能的管理服務接口;同時PLME還負責維護物理層PAN信息庫(PHY PIB)。物理層通過物理層數據服務接入點(PD-SAP)提供物理層數據服務;通過物理層管理實體服務接入點(PLME-SAP)提供物理層管理服務。
1.2 MAC層服務規范
??? MAC層提供特定服務會聚子層(SSCS)和物理層之間的接口。從概念上說,MAC層還應包括MAC層管理實體(MLME),以提供調用MAC層管理功能的管理服務接口;同時MLME還負責維護MAC PAN信息庫(MAC PIB)。MAC層通過MAC公共部分子層(MCPS)的數據SAP(MCPS-SAP)提供MAC數據服務;通過MLME-SAP提供MAC管理服務。這兩種服務通過物理層PD-SAP和PLME-SAP提供了SSCS和PHY之間的接口。除了這些外部接口外,MCPS和MLME之間還隱含了一個內部接口,用于MLME調用MAC數據服務。
1.3 應用層規范
??? Zigbee應用層包括APS子層、ZDO(包含ZDO管理平臺)和廠商定義的應用對象。應用支持子層(APS)提供了網絡層(NWK)和應用層(APL)之間的接口,功能是通過ZDO和廠商定義的應用對象都可以使用的一組服務來實現。數據和管理實體分別由APSDE-SAP和APSME-SAP提供。APSDE提供的數據傳輸服務在同一網絡的兩個或多個設備之間傳輸應用層PDU;APSME提供設備發現和綁定服務,并維護管理對象數據庫——APS信息庫(AIB)。
1.4 網絡層規范
??? 網絡層應提供保證IEEE 802.15.4 MAC層正確工作的能力并為應用層提供合適的服務接口。數據和管理實體分別由NLDE-SAP和NLME-SAP提供。具體來說,NLDE提供的服務:一是在應用支持子層PDU基礎上添加適當的協議頭產生網絡協議數據單元(NPDU);二是根據路由拓撲,把NPDU發送到通信鏈路的目的地址設備或通信鏈路的下一跳。而NLME提供的服務包括配置新設備、創建新網絡、設備請求加入/離開網絡和Zigbee協調器或路由器請求設備離開網絡、尋址、近鄰發現、路由發現、接收控制等。網絡層的數據和管理服務由MCPS-SAP和MLME-SAP提供了應用層和MAC子層之間的接口。除了這些外部接口,在NWK內部NLME和NLDE之間還有一個同隱含接口,允許NLME使用NWK數據服務。
2 協議棧程序分析
2.1 運行環境

??? 軟件環境:IAR 7.20、串口調試工具、數據分析儀以及各硬件驅動軟件等。
??? 硬件環境:PC(.NET 1.1 架構, Windows 98以上,1個串口,1個USB接口)、CC2430 ZigBee開發板(至少包括一個網絡協調器和一個終端設備,驗證階段可省略路由設備)等。
2.2 程序流程
??? 將各開發板與PC正確連接,運行各軟件,當程序燒至開發板后,啟動即調用主函數ZSEG int main( void )。主函數的主要工作流程如圖2所示。需要注意的是,Zigbee協議棧的精華在于操作系統OSAL的任務調度,因此,在進入主循環處理函數之前的準備工作中,操作系統的初始化尤為重要。osalTaskInit()、osalAddTasks()、osalInitTasks()三個函數的調用構成了協議棧的七大任務列表,其具體實現結果如圖3。

?

?


??? 進入主循環處理函數以后,始終周期掃描此任務列表,這7個任務由taskID和taskPriority來決定掃描和處理順序。在循環掃描的過程中,數據的傳輸使用直接存取(DMA)控制器進行操作,可以減輕8051CPU核傳送數據時的負擔,實現CC2430在高效利用電源條件下得高性能,其操作流程如圖4所示。

?


??? 作為協調器,如果程序使用了串口調試助手,則DMA將上位機的數據按照一個字節波特率加一個字節數據的形式組裝到cfg->rxBuf中供其他函數調用,并且通過回調函數SPIMgr_ProcessZToolData ( uint8 port, uint8 event )將任務的ID和強制事件發送到任務列表中,供主循環處理函數掃描;作為終端節點和路由設備,無法使用串口調試助手,則通過回調函數SPIMgr_ProcessZAppData ( uint8 port, uint8 event ) 將任務的ID和強制事件發送到任務列表中。當掃描至參數events=1,則進入相應層的處理程序進行任務ID和events的約定比對,完成相應的功能,具體流程如圖5所示。

?


2.3 組網
??? 利用數據分析儀[3]記錄監控協調器與終端設備的組網過程如圖6所示。

?


??? 首先,Zigbee協調器上電以后,不斷周期發送空的數據包,在允許的通道內搜索其他的Zigbee協調器,并基于每個允許通道中所檢測到的通道能量及網絡號,選擇惟一的16位PAN ID,建立自己的網絡[4]。一旦一個新網絡被建立,Zigbee路由器與終端設備就可以加入到網絡中了。而終端設備上電以后,重復發送信標請求,要求加入到最近的網絡中。當協調器發現終端設備發出的信標請求,則響應一個超幀結構,用于設備間的同步,一旦同步成功,則實現圖5中的關聯過程,由終端設備向協調器發送關聯請求,協調器同意則回應終端設備并自動分配16位的短地址,至此,兩者組網成功。
??? 網絡形成后,可能會出現網絡重疊及PAN ID沖突的現象。協調器可以初始化PAN ID沖突解決程序,改變一個協調器的PAN ID與信道,同時相應修改其所有的子設備。通常,Zigbee設備會將網絡中其他節點信息存儲在一個非易失性的存儲空間——鄰居表中。加電后,若子設備曾加入過網絡,則該設備會執行孤兒通知程序來鎖定先前加入的網絡。接收到孤兒通知的設備檢查它的鄰居表,并確定設備是否是它的子,若是,設備會通知子設備它在網絡中的位置,否則子設備將作為一個新設備來加入網絡。而后,該子設備將產生一個潛在雙親表,并盡量以合適的深度加入到現存的網絡中[5]
??? 通常,設備檢測通道能量所花費的時間與每個通道可利用的網絡可通過ScanDuration 掃描持續參數來確定,一般設備要花費1 min的時間來執行一個掃描請求,對于Zigbee路由器與終端設備來說,只需要執行一次掃描即可確定加入的網絡。而協調器則需要掃描兩次,一次采樣通道能量,另一次則用于確定存在的網絡。
??? 限于篇幅,本文沒有列出各種幀結構以及消息的處理過程,對于Zigbee協議的具體應用即是對數據包的封裝與分解,這些分析、學習對于編寫上位機軟件,開發通過Zigbee協議與上位機進行交互的輕量級的現場設備,都是有意義的。已經據此以C++開發出用戶自定義的上位機程序,實現對傳感器數據的監視和現場采集、數據庫入庫、趨勢圖等功能。
參考文獻
[1]?ZigBee Alliance. ZigBee Document 053474r13 [S]. December 1, 2006
[2]?Zheng JianLiang, Lee Myung. A Comprehensive Performance Study of IEEE 802.15.4[M]. IEEE Press Book,2004.
[3]?Chipcon, Packet Sniffer for IEEE802. 15. 4 and Zigbee [S]. User Manual. Oslo, Norway, Oct. 2004.
[4]?KINNEY P. Zigbee Technology :Wireless Control that Simply Works [S] . Zigbee Alliance ,Oct . 2004.
[5]?Zigbee Alliance. Network Specification (Draft Version 1.0) [S] . 2004.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 在线观看日本一区| 久久国产精品久久精品国产| 久久99久久久久久久噜噜| 91精品国产91久久久久| 亚洲最大福利网| 91精品国产99| 国产精品99一区| 亚洲一区精品电影| 精品久久精品久久| 国产精品美女久久久久av超清| 日韩三级在线播放| 久久久国产视频| 久久久久久久久国产| 午夜精品一区二区三区在线视频| 日韩综合视频在线观看| 欧美激情亚洲自拍| 91久久国产综合久久91精品网站| 久精品国产欧美| 日本午夜在线亚洲.国产| 日韩中文字幕一区二区| 欧美日本国产精品| 欧美精品一区在线发布| 国产精品日韩在线观看| 欧美精品中文字幕一区二区| 99在线视频首页| 国产精品日韩高清| 国产日韩欧美亚洲一区| 久久久国产影院| 日韩中文字幕网站| 国产精品久久久久国产a级| 久久久久欧美| 日本久久久久久久| 97色伦亚洲国产| 国产精品视频不卡| 中文字幕久久综合| 91国内揄拍国内精品对白| 国产欧美一区二区三区视频| 日本一区二区三区视频在线播放 | 国产在线播放不卡| 国产精品日韩欧美| 久久的精品视频|