《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CC2420的ZigBee通信節(jié)點的設計與實現(xiàn)
基于CC2420的ZigBee通信節(jié)點的設計與實現(xiàn)
來源:微型機與應用2010年第19期
孫錦中
(上海電力學院 電子信息工程系,上海 200090)
摘要: 介紹了利用CC2420和LPC213X搭建的符合ZigBee標準的嵌入式節(jié)點,并設計了相應的接口軟件。
Abstract:
Key words :

摘  要: 介紹了利用CC2420LPC213X搭建的符合ZigBee標準的嵌入式節(jié)點,并設計了相應的接口軟件。
關鍵詞: ZigBee;IEEE802.15.4;CC2420

    隨著社會的發(fā)展,人們對通信技術的要求日益提高,無線通信技術在其中扮演著越來越重要的角色。ZigBee作為一種國際標準短距離無線通信協(xié)議,其協(xié)議棧體系結構是基于標準七層開放式系統(tǒng)互聯(lián)參考模型(OSI),IEEE 802.15.4-2003標準定義了下面的兩層:物理層(PHY)和媒體接入控制子層。網絡層、應用會聚層、應用層則由ZigBee聯(lián)盟制訂。
    IEEE 802.15.4-2003有三個PHY層,包括單個分離的頻率范圍:868 MHz、915 MHz和2.4 GHz。低頻率PHY層包括868 MHz歐洲頻段和915 MHz美國及澳大利亞頻段,高頻段PHY層為全球通用。
    ZigBee協(xié)議標準具有如下特點:成本低、功耗低、時延短、網絡容量大、可靠性高、安全和傳輸距離遠。ZigBee技術主要應用在短距離范圍內的低速率電子設備之間的數(shù)據(jù)傳輸,因此非常適用于家電和小型電子設備的無線控制指令傳輸,其典型的傳輸數(shù)據(jù)類型包括周期性數(shù)據(jù)、間歇性數(shù)據(jù)和重復低反應時間數(shù)據(jù)等。ZigBee聯(lián)盟預測的主要應用領域包括工業(yè)控制、消費類電子設備、汽車自動化、農業(yè)自動化和醫(yī)用設備控制等。
1 CC2420射頻芯片
    CC2420是Chipcon公司(現(xiàn)被美國德州儀器公司收購)推出的,用來實現(xiàn)ZigBee應用的單片RF收發(fā)器,它具有高度集成、低成本、低電壓、低功耗等特點,支持2.4 GHz IEEE 802.15.4/ZigBee協(xié)議,內置數(shù)字直接序列擴頻調制解調模塊,其數(shù)據(jù)通信速率可達250 Kb/s。
    CC2420射頻芯片的特征如下:第一款真正的2.4 GHz符合IEEE 802.15.4標準的射頻收發(fā)器,具備基帶調制解調和MAC層支持功能:自動生成幀引導序列,插入和檢測同步字,CRC-16計算和校驗,空閑信道評估,接收信號強度指示(RSSI)和鏈路質量指示(LQI)以及三種模式的MAC安全保護;直接序列擴頻(DSSS)基帶調制解調,碼片速率達2 MChip/s,有效數(shù)據(jù)速率達250 Kb/s;同時適用于RFD和FFD;超低電流消耗(RX:18.8 mA,TX:17.4 mA);片上穩(wěn)壓器提供2.1~3.6 V的低電壓,外部穩(wěn)壓器提供1.6~2.0 V的低電壓;可編程輸出功率;無需外接濾波器,只需要接入晶振和很少的無源元器件;同相信號和正交相位信號低中頻接收器和直接升頻轉換發(fā)送;128 B發(fā)送數(shù)據(jù)緩存,128 B接收數(shù)據(jù)緩存;CTR加密/解密,CBC-MAC驗證,CCM加密/解密+驗證,單獨的AES加密;電源監(jiān)控;QLP-48封裝,芯片大小為7 mm×7 mm。
    CC2420射頻收發(fā)器和少量無源元件(電阻、電容、電感和PCB天線)構成CC2420射頻模塊,形成標準接插件,減少了與微控制器(MCU)的接口,方便研發(fā)設計和批量生產。
    TI公司和Microchip公司都免費為用戶提供CC2420射頻模塊的設計原理圖和PCB版圖。此外,TI公司提供CC2420射頻模塊CC2420EM,Microchip公司提供CC2420射頻模塊2.4 GHz RF CARD。本文采用Microchip公司的2.4 GHz RF CARD作為射頻收發(fā)器。
    2.4 GHz RF CARD與MCU的接口如圖1所示。

2 CC2420與LPC213X的硬件接口
    LPC213X是NXP公司推出的支持實時仿真的ARM7TDMS-S 32位MCU?;贏RM7和CC2420的嵌入式ZigBee節(jié)點的總體硬件結構如圖2所示。

    射頻部分選用CC2420作為IEEE 802.15.4RF芯片。MCU部分選用ARM7TDMI-S LPC213X。在設計ZigBee節(jié)點時預留了JTAG調試端口,利用JTAG接口來調試和下載程序;通過RS-232串口提供調試過程中的信息并與PC機交互ZigBee組網過程中的信息;通過SPI接口與CC2420射頻模塊相連,收發(fā)無線分組數(shù)據(jù),且引出測試點以便用示波器觀察各點的波形;并且預留了一些GPIO供靈活使用,例如,與開關、蜂鳴器、LED和八段數(shù)碼管等的連接。
    由于功能復雜,程序代碼量較大,ZigBee組網中的協(xié)調器和路由器選用LPC2138(32 KB RAM/512 KB Flash)處理器。終端設備為RFD,因其功能單一,程序代碼量較小,因此可以選用LPC2131(8 KB RAM/32 KB Flash)或者LPC2132(16 KB RAM/64 KB Flash)處理器,以節(jié)約成本。CC2420與MCU的接口如圖3所示。

    CC2420的引腳SI、SO、SCLK和CSn分別與MCU的MOSI、MISO、SCLK和GIO2引腳相連,如果微控制器有硬件SPI接口則可以更方便地操作CC2420;引腳FIFO、FIFOP與MCU的GIO0引腳以及Interrupt引腳相連;CCA與MCU的GIO1引腳相連;幀開始定界符SFD與MCV的Timer Capture引腳相連。
    在如圖3所示的ZigBee嵌入式系統(tǒng)中,MCU通過以下方式來對CC2420進行控制和操作:MCU通過四線SPI總線(SI、SO、SCLK和CSn)來與CC2420進行雙向通信,向其發(fā)送控制指令,并通過SPI總線回讀CC2420的狀態(tài)信息;MCU利用中斷的方式來讀寫CC2420的先進先出寄存器(FIFO),獲取無線通信數(shù)據(jù);通過讀取CC2420的CCA引腳狀態(tài)信息來進行空閑信道評估;MCU通過與CC2420的SFD引腳相連,向CC2420發(fā)送時序信息,表示一幀數(shù)據(jù)的開始(特別是對于信標網絡)。
3 軟件接口設計
    CC2420 RF芯片在硬件上支持部分IEEE 802.15.4數(shù)據(jù)幀格式,如圖4所示。

    同步頭包括前導序列和幀定界符(SFD)。在CC2420中,前導序列長度和幀定界符SFD是可以配置的,復位值是4 B和1 B,符合IEEE 802.15.4標準。物理頭為1 B,其中幀長度域共7 bit,規(guī)定了PSDU的字節(jié)數(shù)。PSDU是一個可變長度域,承載著物理層的分組數(shù)據(jù),包含MAC子層幀。
    軟件接口設計主要包括以下部分:
    (1)LPC213X及板極設置。
    對LPC213X的初始化包括:IRQ中斷、串口、計時器以及SPI的初始化。
    IRQ中斷初始化包括設置:中斷通道號、中斷服務程序入口地址和中斷使能。串口中初始化包括設置:引腳功能、字長、奇偶校驗、波特率、串口中斷通道號、中斷服務程序入口地址和中斷使能。計時器初始化包括設置:計時器的預分頻,即32 bit TC每經過PR+1個pclk周期加1;設置計數(shù)器TC為0,同時對IR寫入0xFF清除計時器的中斷寄存器;設置串口中斷通道號、中斷服務程序入口地址和中斷使能,并啟動計時器。SPI初始化包括設置引腳功能和SPI時鐘計數(shù)寄存器。寄存器的值表示構成一個SPI時鐘的pclk周期的數(shù)據(jù)。該寄存器的值必須為偶數(shù),且其值還必須≥8。如果寄存器的值不符合上述條件,可能導致產生不可預測的動作。SPI速率的計算:pclk速率/SPCCR值。pclk速率為CCLK/VPB的除數(shù),由VPBDIV寄存器的內容決定。此外,還設置SPI控制寄存器SPCR(CPHA、CPOL、MSTR、LSBF和SPIE)。
    板級初始化包括:對一些I/O口的功能選擇設置、按鍵和LED發(fā)光二極管以及LED八段數(shù)碼管的配置。設置按鍵的狀態(tài)位,置位或者清零I/O口來設置按鍵的初始狀態(tài);設置LED發(fā)光二極管的狀態(tài)位,置位或者清零I/O口來設置LED發(fā)光二極管的初始狀態(tài);設置LED八段數(shù)碼管的狀態(tài)位,對ZLG7289進行操作及設置LED八段數(shù)碼管的初始狀態(tài)。
    (2)CC2420內部寄存器的設置
    CC2420內部有33個配置和狀態(tài)寄存器、15個命令寄存器以及2個8 bit FIFO寄存器RXFIFO和TXFIFO。設置CC2420模塊為自動ACK狀態(tài),設置MDMCTRL0為0x0AF2;設置CORR_THR的值為20,即設置MDMCTRL1的值為0x0500;設置FIFOP_THR的值為127,當RXFIFO中的字節(jié)數(shù)超過FIFOP_THR時,F(xiàn)IFOP變?yōu)楦唠娖?這是一個門限值);設置FREQ為357,即設置FSCTRL為0x4165,選擇2 405 MHz,第11信道?;鶞暑l率FC計算如下:
    FC=2 048+FREQ[9:0]MHz
    設置PA_LEVEL的值為31,即TXCTRL的值為0xA0FF,表示輸出功率為0 dBm。PA_LEVEL和輸出功率以及典型的電流消耗如表1所示。

    設置完LPC213X、并對CC2420寄存器進行配置后,可以自己編寫程序實現(xiàn)節(jié)點之間的收發(fā),也可以移植協(xié)議棧到該目標系統(tǒng),實現(xiàn)基于ZigBee的組網技術。
    本文采用NXP公司的LPC213X MCU和Chipcon公司的CC2420射頻芯片,完成了符合ZigBee標準的嵌入式節(jié)點的硬件以及相應的接口軟件的設計。該ZigBee嵌入式節(jié)點成本低、功耗小,可以用電池供電,具有功能強大、擴展靈活、結構簡單、輸出功率可編程、安全可靠等特點,對于實現(xiàn)無線傳感器網絡具有重要意義,特別適合于工業(yè)監(jiān)控、消費類電子和無線傳感器網絡等領域。
參考文獻
[1] ZigBee Alliance. ZigBee specification V1.0. USA, June 27, 2006.
[2] Texas Instruments. 2.4 GHz IEEE 802.15.4/ZigBee-ready RF transceiver V1.3. USA, October 3, 2005.
[3] 金純,羅租秋,羅鳳,等.ZigBee技術基礎及案例分析[M].北京:國防工業(yè)出版社,2008.

此內容為AET網站原創(chuàng),未經授權禁止轉載。