Zigbee技術(shù)規范與協(xié)議棧分析

發(fā)布時(shí)間:2009-5-25 09:56    發(fā)布者:李寬
關(guān)鍵詞: zigbee , 規范 , 技術(shù) , 協(xié)議
     伴隨無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的迅猛發(fā)展,Zigbee技術(shù)作為最近發(fā)展起來(lái)的一種短距離無(wú)線(xiàn)通信技術(shù),以其低功耗、自組織、安全可靠、支持大量節點(diǎn)等優(yōu)勢,被業(yè)界 認為是最有可能應用在工控場(chǎng)合的無(wú)線(xiàn)方式。到目前為止,節點(diǎn)已經(jīng)應用于工業(yè)監控、智能家庭、安全醫療等多個(gè)領(lǐng)域,具有很大的發(fā)展空間。

    Zigbee協(xié)議棧(Z-STACK)作為Zigbee技術(shù)的核心,是開(kāi)發(fā)802.15.4/Zigbee必須掌握的關(guān)鍵技術(shù)。協(xié)議棧發(fā)展至今已有四種版 本(見(jiàn)表1),盡管實(shí)現功能越發(fā)完善,但是并未移植標準的操作系統統一任務(wù)調度,嵌套相當復雜,而顯得源代碼的可讀性和可操作性較差,開(kāi)發(fā)者在理解和實(shí)現 協(xié)議的過(guò)程中仍會(huì )遇到很多困難。本文通過(guò)對最典型的、起到承上啟下作用的Zigbee-2006協(xié)議棧的解讀,對協(xié)議程序的運行過(guò)程提供一種準確的解釋分 析,降低開(kāi)發(fā)者的閱讀難度和工作量,為協(xié)議棧自身的發(fā)展、Zigbee設備的開(kāi)發(fā)及應用的推廣提供強有力的技術(shù)支持。

 


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

 


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

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

 

 


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

 


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

 


2.3 組網(wǎng)
    利用數據分析儀[3]記錄監控協(xié)調器與終端設備的組網(wǎng)過(guò)程如圖6所示。

 


    首先,Zigbee協(xié)調器上電以后,不斷周期發(fā)送空的數據包,在允許的通道內搜索其他的Zigbee協(xié)調器,并基于每個(gè)允許通道中所檢測到的通道能量及網(wǎng)絡(luò )號,選擇惟一的16位PAN ID,建立自己的網(wǎng)絡(luò )[4]。 一旦一個(gè)新網(wǎng)絡(luò )被建立,Zigbee路由器與終端設備就可以加入到網(wǎng)絡(luò )中了。而終端設備上電以后,重復發(fā)送信標請求,要求加入到最近的網(wǎng)絡(luò )中。當協(xié)調器發(fā) 現終端設備發(fā)出的信標請求,則響應一個(gè)超幀結構,用于設備間的同步,一旦同步成功,則實(shí)現圖5中的關(guān)聯(lián)過(guò)程,由終端設備向協(xié)調器發(fā)送關(guān)聯(lián)請求,協(xié)調器同意 則回應終端設備并自動(dòng)分配16位的短地址,至此,兩者組網(wǎng)成功。
    網(wǎng)絡(luò )形成后,可能會(huì )出現網(wǎng)絡(luò )重疊及PAN ID沖突的現象。協(xié)調器可以初始化PAN ID沖突解決程序,改變一個(gè)協(xié)調器的PAN ID與信道,同時(shí)相應修改其所有的子設備。通常,Zigbee設備會(huì )將網(wǎng)絡(luò )中其他節點(diǎn)信息存儲在一個(gè)非易失性的存儲空間——鄰居表中。加電后,若子設備曾 加入過(guò)網(wǎng)絡(luò ),則該設備會(huì )執行孤兒通知程序來(lái)鎖定先前加入的網(wǎng)絡(luò )。接收到孤兒通知的設備檢查它的鄰居表,并確定設備是否是它的子,若是,設備會(huì )通知子設備它 在網(wǎng)絡(luò )中的位置,否則子設備將作為一個(gè)新設備來(lái)加入網(wǎng)絡(luò )。而后,該子設備將產(chǎn)生一個(gè)潛在雙親表,并盡量以合適的深度加入到現存的網(wǎng)絡(luò )中[5]。
    通常,設備檢測通道能量所花費的時(shí)間與每個(gè)通道可利用的網(wǎng)絡(luò )可通過(guò)ScanDuration 掃描持續參數來(lái)確定,一般設備要花費1 min的時(shí)間來(lái)執行一個(gè)掃描請求,對于Zigbee路由器與終端設備來(lái)說(shuō),只需要執行一次掃描即可確定加入的網(wǎng)絡(luò )。而協(xié)調器則需要掃描兩次,一次采樣通道 能量,另一次則用于確定存在的網(wǎng)絡(luò )。
    限于篇幅,本文沒(méi)有列出各種幀結構以及消息的處理過(guò)程,對于Zigbee協(xié)議的具體應用即是對數據包的封裝與分解,這些分析、學(xué)習對于編寫(xiě)上位機軟件,開(kāi) 發(fā)通過(guò)Zigbee協(xié)議與上位機進(jìn)行交互的輕量級的現場(chǎng)設備,都是有意義的。已經(jīng)據此以C++開(kāi)發(fā)出用戶(hù)自定義的上位機程序,實(shí)現對傳感器數據的監視和現 場(chǎng)采集、數據庫入庫、趨勢圖等功能。
參考文獻
[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.

本文地址:http://selenalain.com/thread-2667-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
daniel2liu 發(fā)表于 2010-9-12 15:23:48
很厲害的
stevenh 發(fā)表于 2011-1-29 22:16:32
謝謝分享 !
hominidclint 發(fā)表于 2011-2-28 09:21:32
kan kan
linkai_joseph 發(fā)表于 2011-4-7 11:45:00
kankan
liqixiao 發(fā)表于 2011-8-17 23:40:38
很不錯
liuguochao 發(fā)表于 2011-11-4 18:13:03
好!
yhchu 發(fā)表于 2014-5-30 12:35:29
很厲害的,謝謝分享
lhxzui 發(fā)表于 2015-1-16 16:22:03
謝謝分享。                        
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页