基于射頻芯片CC2420的ZigBee無線通信設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:ZigBee,CC2420,通信協(xié)議,協(xié)議棧
0 引言
為滿足小型、低成本設(shè)備的無線聯(lián)網(wǎng)要求,2000年12月IEEE成立了IEEE802.15.4工作組,致力于定義一種適于固定、便攜或移動設(shè)備使用的極低復(fù)雜度、成本和功耗的低速率無線連接技術(shù)——ZigBee技術(shù)。本文針對使用PIC18系列單片機(jī)及CC2420為RF收發(fā)器,從ZigBee節(jié)點(diǎn)的硬件及ZigBee通信協(xié)議和協(xié)議棧方面,介紹了ZigBee無線通信網(wǎng)絡(luò)的組成。
1 ZigBee技術(shù)簡介
2002年8月ZigBee聯(lián)盟成立,由英國Invensys公司、日本三菱電氣公司、美國摩托羅拉公司以及荷蘭飛利浦半導(dǎo)體公司組成。IEEE802.15.4的ZigBee標(biāo)準(zhǔn)于2003年5月獲得批準(zhǔn)。
|
2 ZigBee節(jié)點(diǎn)的硬件構(gòu)成
2.1 典型的ZigBee節(jié)點(diǎn)硬件
ZigBee協(xié)議棧對系統(tǒng)微處理器的要求有:8位微處理器;完全的協(xié)議棧:ROM<32K;簡單功能節(jié)點(diǎn)協(xié)議棧:ROM約6K;協(xié)調(diào)器還需要足夠的RAM,用于保存節(jié)點(diǎn)器件數(shù)據(jù)庫、傳輸路由表等。
可供選用的單片機(jī)種類較多,本設(shè)計(jì)所選用的是PIC18系列的單片機(jī),因此要創(chuàng)建典型的ZigBee節(jié)點(diǎn)至少必須具備以下組件:一片帶SPI接口的PIC18F單片機(jī);一個帶有所需外部元件的RF收發(fā)器;一根天線,可以是PCB上的引線形成的天線或單極天線。ZigBee節(jié)點(diǎn)的構(gòu)成如圖1所示,控制器通過SPI總線和一些離散控制信號與RF收發(fā)器相連。控制器充當(dāng)SPI主器件而RF收發(fā)器充當(dāng)從器件。控制器實(shí)現(xiàn)了IEEE 802.15.4 MAC層和ZigBee協(xié)議層。
在RF收發(fā)器上,本設(shè)計(jì)選用了Chipcon公司的CC2420射頻收發(fā)器,它實(shí)現(xiàn)ZigBee協(xié)議的物理層(PHY)及媒體訪問控制器(MAC)層,具備65,000個節(jié)點(diǎn)通道并可隨時(shí)擴(kuò)充,以及低耗電、250kbps傳輸速率、快速喚醒時(shí)間(<30ms)、CSMA-CA通道狀態(tài)偵測等特性。
2.2 ZigBee節(jié)點(diǎn)硬件電路實(shí)現(xiàn)
CC2420只需要極少的外圍元器件, 其外圍電路包括晶振時(shí)鐘電路、射頻輸入/ 輸出匹配電路和微控制器接口電路三個部分。芯片本振信號既可由外部有源晶體提供,也可由內(nèi)部電路提供。由內(nèi)部電路提供時(shí)需外加晶體振蕩器和兩個負(fù)載電容, 電容的大小取決于晶體的頻率及輸入容抗等參數(shù)。射頻輸入/ 輸出匹配電路主要用來匹配芯片的輸入輸出阻抗。CC2420可以通過4線SPI總線(SI、SO、SCLK、CSn) 設(shè)置芯片的工作模式, 并實(shí)現(xiàn)讀/ 寫緩存數(shù)據(jù),讀/ 寫狀態(tài)寄存器等。通過控制FIFO和FIFOP管腳接口的狀態(tài)可設(shè)置發(fā)射/ 接收緩存器。在數(shù)據(jù)傳輸過程中CSn必須始終保持低電平。另外, 通過CCA管腳狀態(tài)的設(shè)置可以控制清除通道估計(jì), 通過SFD管腳狀態(tài)的設(shè)置可以控制時(shí)鐘/ 定時(shí)信息的輸入。
如圖2所示,為CC2420的外圍電路及與PIC18系列單片機(jī)的連接方式。此外,CC2420需要3.3V的電源電壓,可以選用PIC18系列單片機(jī)中的低壓型號,使控制器和RF收發(fā)器均使用3.3V電源電壓。
3 ZigBee通信協(xié)議
3.1 IEEE 802.15.4MAC數(shù)據(jù)包
在本文的第一部分,已經(jīng)對IEEE 802.15.4規(guī)范做了介紹,以下補(bǔ)充MAC層數(shù)據(jù)包的部分內(nèi)容。IEEE 802.15.4 MAC數(shù)據(jù)包的最大長度為127字節(jié),每個數(shù)據(jù)包都由頭字節(jié)和16位CRC 值組成,16位CRC值驗(yàn)證幀的完整性。此外,IEEE 802.15.4還可以選擇使用應(yīng)答數(shù)據(jù)傳輸機(jī)制,使用這種方法,所有特殊ACK標(biāo)志位置1的幀均會被它們的接收器應(yīng)答。如果發(fā)送幀的時(shí)候置位了ACK標(biāo)志位而且在一定的超時(shí)期限內(nèi)沒有收到應(yīng)答,發(fā)送器將重復(fù)進(jìn)行固定次數(shù)的發(fā)送,如仍無應(yīng)答就宣布發(fā)生錯誤。
3.2 網(wǎng)絡(luò)配置與網(wǎng)絡(luò)關(guān)聯(lián)
ZigBee無線網(wǎng)絡(luò)可采用多種類型的網(wǎng)絡(luò)配置。本設(shè)計(jì)使用星型網(wǎng)絡(luò)實(shí)現(xiàn)通信。星型網(wǎng)絡(luò)配置由一個協(xié)調(diào)器節(jié)點(diǎn)(主設(shè)備)和一個或多個終端設(shè)備(從設(shè)備)組成。在星型網(wǎng)絡(luò)中,所有的終端設(shè)備都只與協(xié)調(diào)器通信。
根據(jù)系統(tǒng)需求,協(xié)調(diào)器會在非易失性存儲器中存儲所有網(wǎng)絡(luò)關(guān)聯(lián),稱為鄰接表。為了連接到網(wǎng)絡(luò),終端設(shè)備可能執(zhí)行孤立通知過程來查找先前與之關(guān)聯(lián)的網(wǎng)絡(luò)或者執(zhí)行關(guān)聯(lián)過程來加入一個新網(wǎng)絡(luò)。在執(zhí)行孤立通知過程的情況下,協(xié)調(diào)器將通過查找其鄰接表來識別先前與之關(guān)聯(lián)的終端設(shè)備。
3.3 端點(diǎn)、接口及端點(diǎn)綁定
典型的ZigBee節(jié)點(diǎn)可支持多種特性和功能,為了便于在I/O節(jié)點(diǎn)和兩個控制器節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸,所有節(jié)點(diǎn)中的應(yīng)用程序必須保存多個數(shù)據(jù)鏈路。為了減少成本,ZigBee節(jié)點(diǎn)僅使用一個無線信道來和多個端點(diǎn)/ 接口來創(chuàng)建多條虛擬鏈路或信道,每個端點(diǎn)總共有8個接口。
在星型網(wǎng)絡(luò)中的終端設(shè)備總是只與協(xié)調(diào)器通信,協(xié)調(diào)器負(fù)責(zé)將端點(diǎn)發(fā)送的數(shù)據(jù)包從一個節(jié)點(diǎn)轉(zhuǎn)發(fā)到接收終端設(shè)備的相應(yīng)端點(diǎn)。所以,當(dāng)建立一個新的網(wǎng)絡(luò)時(shí),必須告知協(xié)調(diào)器如何創(chuàng)建源端點(diǎn)和目標(biāo)端點(diǎn)之間的鏈路,ZigBee協(xié)議使用了一個稱為端點(diǎn)綁定的特殊過程來實(shí)現(xiàn)鏈路的連接。
3.4 數(shù)據(jù)傳輸機(jī)制
傳輸數(shù)據(jù)到終端設(shè)備和從終端設(shè)備傳輸數(shù)據(jù)的確切機(jī)制隨網(wǎng)絡(luò)類型的不同而有所不同。在無信標(biāo)的星型網(wǎng)絡(luò)中,當(dāng)終端設(shè)備想要發(fā)送數(shù)據(jù)幀時(shí),它只需等待信道變?yōu)榭臻e。在檢測到空閑信道條件時(shí),它將幀發(fā)送到協(xié)調(diào)器。如果協(xié)調(diào)器想要將此數(shù)據(jù)發(fā)送到終端設(shè)備,它會將數(shù)據(jù)幀保存在其發(fā)送緩沖器中,直到目標(biāo)終端設(shè)備明確地來查詢該數(shù)據(jù)為止。
4 協(xié)議棧構(gòu)架
在本設(shè)計(jì)中,我們的協(xié)議棧是使用C語言編寫的,協(xié)議棧使用內(nèi)部閃存程序存儲器來存儲可配置的MAC地址、網(wǎng)絡(luò)表和綁定表,因此,必須使用可自編程的閃存存儲器單片機(jī)。
用戶應(yīng)用程序 |
ZigBee設(shè)備對象 | |
應(yīng)用層 |
應(yīng)用支持子層 | |
網(wǎng)絡(luò)層 | ||
MAC層 | ||
物理層 | ||
圖3 協(xié)議棧構(gòu)架 |
圖3為協(xié)議棧構(gòu)架,協(xié)議棧根據(jù)ZigBee規(guī)范的定義將其邏輯分為多個層。實(shí)現(xiàn)每個層的代碼位于一個獨(dú)立的源文件中,而服務(wù)和應(yīng)用程序接口(API)則在頭文件中定義。要實(shí)現(xiàn)抽象性和模塊性,頂層總是通過定義完善的API和緊接著的下一層進(jìn)行交互,該層的C頭文件定義該層所支持的所有API。 用戶應(yīng)用程序總是與應(yīng)用支持子層(APS)和應(yīng)用層(APL)交互。典型的應(yīng)用程序總是與應(yīng)用層(APL)和應(yīng)用支持子層(APS)接口,APL模塊提供高級
協(xié)議棧管理功能,用戶應(yīng)用程序使用此模塊來管理協(xié)議棧功能。
APS層主要提供ZigBee端點(diǎn)接口。應(yīng)用程序?qū)⑹褂迷搶哟蜷_或關(guān)閉一個或多個端點(diǎn)并且獲取或發(fā)送數(shù)據(jù)。它還為鍵值對(KVP)和報(bào)文(MSG)數(shù)據(jù)傳輸提供了原語。當(dāng)首次對協(xié)調(diào)器編程時(shí)綁定表為空,主應(yīng)用程序必須調(diào)用正確的綁定API來創(chuàng)建新的綁定項(xiàng)。APS還有一個間接發(fā)送緩沖器RAM,用來存儲間接幀,直到目標(biāo)接收者請求這些幀為止。MAC_MAX_ DATA _REQ_PERIOD編譯時(shí)間選項(xiàng)定義了確切的請求時(shí)間。節(jié)點(diǎn)請求數(shù)據(jù)時(shí)間越長,數(shù)據(jù)包需要保存在間接發(fā)送緩沖器里的時(shí)間也越長,數(shù)據(jù)請求時(shí)間越長需要的間接緩沖空間越大。
網(wǎng)絡(luò)層(NWK)負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò)連接,它獨(dú)立處理傳入數(shù)據(jù)請求、關(guān)聯(lián)、解除關(guān)聯(lián)和孤立通知請求。ZigBee設(shè)備對象(ZDO)負(fù)責(zé)接收和處理遠(yuǎn)程設(shè)備的不同請求。介質(zhì)訪問控制(MAC)層實(shí)現(xiàn)了IEEE 802.15.4規(guī)范所要求的功能,并負(fù)責(zé)同物理(PHY)層進(jìn)行交互。
5 結(jié)束語
ZigBee是為低速率控制網(wǎng)絡(luò)設(shè)計(jì)的標(biāo)準(zhǔn)無線網(wǎng)絡(luò)協(xié)議,ZigBee協(xié)議的一些應(yīng)用包括建筑自動化網(wǎng)絡(luò)、建筑安防系統(tǒng)、工業(yè)控制網(wǎng)絡(luò)、遠(yuǎn)程抄表以及PC外設(shè)。本文針對使用PIC18系列單片機(jī)及CC2420為RF收發(fā)器,從ZigBee節(jié)點(diǎn)的硬件及ZigBee通信協(xié)議和協(xié)議棧方面,介紹了ZigBee無線通信網(wǎng)絡(luò)的組成。
本文作者創(chuàng)新點(diǎn):將最新的ZigBee技術(shù)使用PIC18系列單片機(jī)及CC2420為RF收發(fā)器實(shí)現(xiàn)了無線通信,并從ZigBee節(jié)點(diǎn)的硬件及ZigBee通信協(xié)議和協(xié)議棧方面進(jìn)行了詳細(xì)闡述。
參考文獻(xiàn)
[1]Jelena Misic, Shairmina Shafi, Vojislav B. Misic. The impact of MAC parameters on the performance of 802.15.4 PAN. Ad Hoc Networks 3. 2005. 509-528
[2]江修波. ZigBee技術(shù)及其應(yīng)用. 低壓電器.2005-7
[3]鄭武,金純,楊致遠(yuǎn).可穿戴式無線網(wǎng)絡(luò)技術(shù)研究及應(yīng)用.微計(jì)算機(jī)信息. (2005)08-0108-03
[4]劉和平,劉林,余紅欣,鄭群英.PIC18FXXX單片機(jī)原理及接口程序設(shè)計(jì).北京航空航天大學(xué)出版社2004.8
[5]Chipcon AS SmartRF. CC2420 Preliminary Datasheet( rev 1. 2) , 2004-06-09
[6]Microchip Stack for ZigBee. V1.0-3. September 9, 2005. http://www.microchip.com
[7] ZigBee Protocol Specification. http://www.ZigBee.org.