Zigbee是為低速率控制網絡設計的標準無線網絡協議。Zigbee協議的一些應用包括建筑自動化網絡、建筑安防系統、工業控制網絡、遠程抄表以及PC外設。與其他無線協議相比,Zigbee無線協議提供了低復雜性、縮減的資源要求,最重要的是它提供了一組標準的規范,并提供了三個工作頻帶,以及一些網絡配置和可選的安全功能。 1 Zigbee協議概述 1.1 IEEE802.15.4 Zigbee協議使用IEEE802.15.4規范作為介質訪問層(MAC)和物理層(PHY)。IEEE802.15.4總共定義了3個頻帶:2.4GHz、915MHz和868MHz。每個頻帶提供固定數量的信道。例如,2.4GHz頻帶有16個信道(信道11-26)、915MHz頻帶提供10個信道(信道1-10)而868MHz頻帶提供1個信道(信道0)。 協議的比特率由所選擇的工作頻率決定。2.4GHz頻帶提供的數據速率為250kpbs,915MHz頻帶提供的數據速率為20kbps。由于數據包開銷和處理延遲,實際的數據吞吐量會小于規定的比特率。 IEEE802.15.4MAC數據包的最大長度為127字節。每個數據包都由頭字節和16位CRC值組成。16位CRC值驗證幀的完整性。此外,IEEE802.15.4還可以選擇使用應答數據傳輸機制。使用這種方法,所有特殊ACK標志位置1的幀均會被它們的接收器應答。這就可以確定幀實際上已經被傳遞了。如果發送幀的時候置位了ACK標志位而且在一定的超時期限內沒有收到應答,發送器將重復進行固定次數的發送,如仍無應答就宣布發生錯誤。注意接收到應答僅僅表示幀被MAC層正確接收,而不表示幀被正確處理,這是非常重要的。接收節點的MAC層可能正確地接收并應答了一個幀,但是由于缺乏處理資源,該幀可能被上層丟棄。因此,很多上層和應用程序要求其他的應答響應。 1.2 網絡配置 Zigbee無線網絡可采用多種類型的配置。 星型網絡配置由一個協調器節點(主設備)和一個或多個終端設備(從設備)組成。協調器是實現了一組很多Zigbee服務的一種特殊的全功能設備(FFD)。終端設備可能是FFD或簡化功能設備(RFD)。RFD是最小而且最簡單的Zigbee節點。它只實現了一組最小的Zigbee服務。在星型網絡中,所有的終端設備都只與協調器通信。如果某個終端設備需要傳輸數據到另一個終端設備,它會把數據發送給協調器,然后協調器依次將數據轉發到目標接收器終端設備。星型拓撲結構如圖1所示。 圖1星型網絡拓撲結構 群集網絡配置也是Zigbee使用的一種網絡配置結構。在群集網絡中,終端設備既可以選擇和協調器通信,也可以和路由器(router)通信。路由器有兩個功能:一是增加網絡中的節點數量,二是擴大網絡的物理范圍。有了路由器后,終端設備就不必安裝在協調器的有效射頻范圍內。群集網絡結構如圖2所示。 圖2群集網絡拓撲結構 和任何網絡一樣,Zigbee網絡也是多點接入網絡,這意味著網絡中的所有節點對通信介質的訪問是同等的。有兩種類型的多點接入機制。在沒有使能信標的網絡中,只有信道是空閑的,在任何時候都允許所有節點發送。在使能了信標的網絡中,僅允許節點在預定義的時隙內進行發送。協調器會定期以一個標知為信標幀的超級幀開始發送,并且希望網絡中的所有節點與此幀同步。在這個超級幀中為每個節點分配了一個特定的時隙,在該時隙內允許節點發送和接收數據。超級幀可能還含有一個公共時隙,在此時隙內所有節點競爭接入信道。 1.3 數據傳輸機制 傳輸數據到終端設備和從終端設備傳輸數據的確切機制隨網絡類型的不同而有所不同。在無信標的星型網絡中,當終端設備想要發送數據幀時,它只需等待信道變為空閑。在檢測到空閑信道條件時,它將幀發送到協調器。如果協調器想要將此數據發送到終端設備,它會將數據幀保存在其發送緩沖器中,直到目標終端設備明確地來查詢該數據為止。此方法確保終端設備的接收器是被開啟的,而且可從協調器接收數據。 在點對點網絡中,每個節點必須一直保持它們的接收器為開啟狀態或者同意在一個時間段內開啟它們的接收器。這將允許節點發送數據幀并確保數據幀會被其它節點接收。 2 RF收發芯片CC2420 CC2420是Chipcon公司推出的首款符合2.4GHzIEEE802.15.4標準的射頻收發器。該器件是第一款適用于Zigbee產品的RF器件。它基于Chipcon公司的SmartRF03技術,以0.18umCMOS工藝制成,只需極少外部元器件,性能穩定且功耗極低。CC2420的選擇性和敏感性指數超過了IEEE802.15.4標準的要求,可確保短距離通信的有效性和可靠性。利用此芯片開發的無線通信設備支持數據傳輸率高達250kbps,可以實現多點對多點的快速組網。 CC2420只需要極少的外圍元器件,其典型應用電路如圖3所示。 圖3CC2420典型應用電路圖 它的外圍電路包括晶振時鐘電路、射頻輸入/輸出匹配電路和微控制器接口電路三個部分。芯片本振信號既可由外部有源晶體提供,也可由內部電路提供。由內部電路提供時需外加晶體振蕩器和兩個負載電容,電容的大小取決于晶體的頻率及輸入容抗等參數。 射頻輸入/輸出匹配電路主要用來匹配芯片的輸入輸出阻抗,使其輸入輸出阻抗為50Ω,同時為芯片內部的PA及LAN提供直流偏置。CC2420可以通過4線SPI總線(SI、SO、SCLK、CSn)設置芯片的工作模式,并實現讀/寫緩存數據,讀/寫狀態寄存器等。通過控制FIFO和FIFOP管腳接口的狀態可設置發射/接收緩存器。注意:在SPI總線接口上進行的地址和數據傳輸大多是MSB優先的。CC2420片內有33個16比特狀態設置寄存器,在每個寄存器的讀/寫周期中,SI總線上共有24比特數據,分別為:1比特RAM/寄存器選擇位(0:寄存器,1:RAM),1比特讀/寫控制位(0:寫,1:讀),6比特地址選擇位、16比特數據位。在數據傳輸過程中CSn必須始終保持低電平。另外,通過CCA管腳狀態的設置可以控制清除通道估計,通過SFD管腳狀態的設置可以控制時鐘/定時信息的輸入。這些接口必須與微處理器的相應管腳相連來實現系統射頻功能的控制與管理。 如前所述,CC2420是一款符合IEEE802.15.4標準的RF收發芯片。CC2420硬件支持一部分IEEE802.15.4數據幀格式。數據幀格式示如表1所示。 表1數據通信幀格式 同步頭包括前導序列和開始幀分隔符。在CC2420中,前導序列長度和開始幀分隔符是可以配置的。默認值4字節和1字節是符合IEEE802.15.4協議的。物理頭為1字節,幀控制和序列號分別為2字節和1字節,地址包括個人區域網身份識別號碼、目的地址和源地址共6字節,待發數據段長度為幀長度減去地址和幀校驗序列。當MODEMCTRL0.AUTOCRC控制位置位時,這個幀校驗序列自動產生2字節,并由CC2420硬件自動插入。 3 配置寄存器 實際系統需要做以下配置: (1)CC2420內部寄存器的設置:CC2420內部有33個16位結構寄存器和15個命令脈沖寄存器以及2個8位訪問獨立的發射和接收緩沖器的RXFIFO、TXFIFO寄存器。這些寄存器在芯片復位時都已設置了一些初始值。例如:MDMCTRL0.AUTOCRC自動循環冗余校驗;IOCFG0.FIFOP_THR設置RXFIFO緩沖器中字節門限值;BATTMON.BATTMON_E電池監控使能;TXCTRL.PA_LEVEL輸出功率編程(輸出功率單位為dBm);IN0.XOSC16M_BYPASS使能外部晶體振蕩器等。實際使用時,應根據需要對初始值進行修改。 (2)初始化:定義信息包傳輸的基本格式;定義單片機和CC2420的端口;打開電壓調節器,復位CC2420,開啟晶體振蕩器,寫入所有必須的寄存器和地址識別(為自動地址識別準備),注意晶體振蕩器應該一直處于工作狀態。寄存器設置如下:SXOSCON打開晶體振蕩器;MDMCTRL0=0x0AF2打開自動應答;MDMCTRL1=0x0500;設置關聯門限值為20;IOCFG0=0x007F設置FIFOP門限至最大值128;SECCTRL0=0x01C4關閉安全使能。 (3)緩沖發送模式:使用IEEE802.15.4媒介訪問控制層數字格式和短地址發送一個信息包。使能發送,當信道評估顯示信道空閑時,使能校準然后發送;當沒有字節寫入,TXFIFO緩沖器發出下溢指示狀態位和下溢脈沖,發送自動停止。CTRL1.TX_MODE=0;STXON使能發送;STXONCCA信道估計顯示信道空閑,使能校準然后發送;SFLUSHTX當沒有字節寫入,TXFIFO緩沖器發出下溢脈沖;TXCTL=0xA0FF發射最大電流為1.72mA。 (4)緩沖接收模式:先使能信息包接收和FIFOP中斷,通過FIFOP中斷服務程序接收信息包,其中RXFIFO緩沖器溢出和不合法信息包格式都有中斷服務程序處理,信息包接收采用CC2420自動應答。寄存器設置如下:DMCTRL1.RX_MODE=0;SRXON使能接收;SFLUSHRXRXFIFO緩沖器溢出,復位解調器;RXCTRL0=0x12E5低噪聲放大器增益中等。 4 結論 筆者在實現此系統的過程中發現,無線網絡的鏈路層、應用層協議的性能是制約無線傳感網絡的關鍵因素。另外,制作電路板時,應采用四層板,外圍器件盡量小(采用0402封裝),耦合電容盡量靠近芯片,以提高系統性能。 |