摘 要: 介紹了利用CC2420和LPC213X搭建的符合ZigBee標(biāo)準(zhǔn)的嵌入式節(jié)點(diǎn),并設(shè)計(jì)了相應(yīng)的接口軟件。
關(guān)鍵詞: ZigBee;IEEE802.15.4;CC2420
隨著社會(huì)的發(fā)展,人們對(duì)通信技術(shù)的要求日益提高,無線通信技術(shù)在其中扮演著越來越重要的角色。ZigBee作為一種國際標(biāo)準(zhǔn)短距離無線通信協(xié)議,其協(xié)議棧體系結(jié)構(gòu)是基于標(biāo)準(zhǔn)七層開放式系統(tǒng)互聯(lián)參考模型(OSI),IEEE 802.15.4-2003標(biāo)準(zhǔn)定義了下面的兩層:物理層(PHY)和媒體接入控制子層。網(wǎng)絡(luò)層、應(yīng)用會(huì)聚層、應(yīng)用層則由ZigBee聯(lián)盟制訂。
IEEE 802.15.4-2003有三個(gè)PHY層,包括單個(gè)分離的頻率范圍:868 MHz、915 MHz和2.4 GHz。低頻率PHY層包括868 MHz歐洲頻段和915 MHz美國及澳大利亞頻段,高頻段PHY層為全球通用。
ZigBee協(xié)議標(biāo)準(zhǔn)具有如下特點(diǎn):成本低、功耗低、時(shí)延短、網(wǎng)絡(luò)容量大、可靠性高、安全和傳輸距離遠(yuǎn)。ZigBee技術(shù)主要應(yīng)用在短距離范圍內(nèi)的低速率電子設(shè)備之間的數(shù)據(jù)傳輸,因此非常適用于家電和小型電子設(shè)備的無線控制指令傳輸,其典型的傳輸數(shù)據(jù)類型包括周期性數(shù)據(jù)、間歇性數(shù)據(jù)和重復(fù)低反應(yīng)時(shí)間數(shù)據(jù)等。ZigBee聯(lián)盟預(yù)測(cè)的主要應(yīng)用領(lǐng)域包括工業(yè)控制、消費(fèi)類電子設(shè)備、汽車自動(dòng)化、農(nóng)業(yè)自動(dòng)化和醫(yī)用設(shè)備控制等。
1 CC2420射頻芯片
CC2420是Chipcon公司(現(xiàn)被美國德州儀器公司收購)推出的,用來實(shí)現(xiàn)ZigBee應(yīng)用的單片RF收發(fā)器,它具有高度集成、低成本、低電壓、低功耗等特點(diǎn),支持2.4 GHz IEEE 802.15.4/ZigBee協(xié)議,內(nèi)置數(shù)字直接序列擴(kuò)頻調(diào)制解調(diào)模塊,其數(shù)據(jù)通信速率可達(dá)250 Kb/s。
CC2420射頻芯片的特征如下:第一款真正的2.4 GHz符合IEEE 802.15.4標(biāo)準(zhǔn)的射頻收發(fā)器,具備基帶調(diào)制解調(diào)和MAC層支持功能:自動(dòng)生成幀引導(dǎo)序列,插入和檢測(cè)同步字,CRC-16計(jì)算和校驗(yàn),空閑信道評(píng)估,接收信號(hào)強(qiáng)度指示(RSSI)和鏈路質(zhì)量指示(LQI)以及三種模式的MAC安全保護(hù);直接序列擴(kuò)頻(DSSS)基帶調(diào)制解調(diào),碼片速率達(dá)2 MChip/s,有效數(shù)據(jù)速率達(dá)250 Kb/s;同時(shí)適用于RFD和FFD;超低電流消耗(RX:18.8 mA,TX:17.4 mA);片上穩(wěn)壓器提供2.1~3.6 V的低電壓,外部穩(wěn)壓器提供1.6~2.0 V的低電壓;可編程輸出功率;無需外接濾波器,只需要接入晶振和很少的無源元器件;同相信號(hào)和正交相位信號(hào)低中頻接收器和直接升頻轉(zhuǎn)換發(fā)送;128 B發(fā)送數(shù)據(jù)緩存,128 B接收數(shù)據(jù)緩存;CTR加密/解密,CBC-MAC驗(yàn)證,CCM加密/解密+驗(yàn)證,單獨(dú)的AES加密;電源監(jiān)控;QLP-48封裝,芯片大小為7 mm×7 mm。
CC2420射頻收發(fā)器和少量無源元件(電阻、電容、電感和PCB天線)構(gòu)成CC2420射頻模塊,形成標(biāo)準(zhǔn)接插件,減少了與微控制器(MCU)的接口,方便研發(fā)設(shè)計(jì)和批量生產(chǎn)。
TI公司和Microchip公司都免費(fèi)為用戶提供CC2420射頻模塊的設(shè)計(jì)原理圖和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公司推出的支持實(shí)時(shí)仿真的ARM7TDMS-S 32位MCU?;贏RM7和CC2420的嵌入式ZigBee節(jié)點(diǎn)的總體硬件結(jié)構(gòu)如圖2所示。
射頻部分選用CC2420作為IEEE 802.15.4RF芯片。MCU部分選用ARM7TDMI-S LPC213X。在設(shè)計(jì)ZigBee節(jié)點(diǎn)時(shí)預(yù)留了JTAG調(diào)試端口,利用JTAG接口來調(diào)試和下載程序;通過RS-232串口提供調(diào)試過程中的信息并與PC機(jī)交互ZigBee組網(wǎng)過程中的信息;通過SPI接口與CC2420射頻模塊相連,收發(fā)無線分組數(shù)據(jù),且引出測(cè)試點(diǎn)以便用示波器觀察各點(diǎn)的波形;并且預(yù)留了一些GPIO供靈活使用,例如,與開關(guān)、蜂鳴器、LED和八段數(shù)碼管等的連接。
由于功能復(fù)雜,程序代碼量較大,ZigBee組網(wǎng)中的協(xié)調(diào)器和路由器選用LPC2138(32 KB RAM/512 KB Flash)處理器。終端設(shè)備為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通過以下方式來對(duì)CC2420進(jìn)行控制和操作:MCU通過四線SPI總線(SI、SO、SCLK和CSn)來與CC2420進(jìn)行雙向通信,向其發(fā)送控制指令,并通過SPI總線回讀CC2420的狀態(tài)信息;MCU利用中斷的方式來讀寫CC2420的先進(jìn)先出寄存器(FIFO),獲取無線通信數(shù)據(jù);通過讀取CC2420的CCA引腳狀態(tài)信息來進(jìn)行空閑信道評(píng)估;MCU通過與CC2420的SFD引腳相連,向CC2420發(fā)送時(shí)序信息,表示一幀數(shù)據(jù)的開始(特別是對(duì)于信標(biāo)網(wǎng)絡(luò))。
3 軟件接口設(shè)計(jì)
CC2420 RF芯片在硬件上支持部分IEEE 802.15.4數(shù)據(jù)幀格式,如圖4所示。
同步頭包括前導(dǎo)序列和幀定界符(SFD)。在CC2420中,前導(dǎo)序列長(zhǎng)度和幀定界符SFD是可以配置的,復(fù)位值是4 B和1 B,符合IEEE 802.15.4標(biāo)準(zhǔn)。物理頭為1 B,其中幀長(zhǎng)度域共7 bit,規(guī)定了PSDU的字節(jié)數(shù)。PSDU是一個(gè)可變長(zhǎng)度域,承載著物理層的分組數(shù)據(jù),包含MAC子層幀。
軟件接口設(shè)計(jì)主要包括以下部分:
(1)LPC213X及板極設(shè)置。
對(duì)LPC213X的初始化包括:IRQ中斷、串口、計(jì)時(shí)器以及SPI的初始化。
IRQ中斷初始化包括設(shè)置:中斷通道號(hào)、中斷服務(wù)程序入口地址和中斷使能。串口中初始化包括設(shè)置:引腳功能、字長(zhǎng)、奇偶校驗(yàn)、波特率、串口中斷通道號(hào)、中斷服務(wù)程序入口地址和中斷使能。計(jì)時(shí)器初始化包括設(shè)置:計(jì)時(shí)器的預(yù)分頻,即32 bit TC每經(jīng)過PR+1個(gè)pclk周期加1;設(shè)置計(jì)數(shù)器TC為0,同時(shí)對(duì)IR寫入0xFF清除計(jì)時(shí)器的中斷寄存器;設(shè)置串口中斷通道號(hào)、中斷服務(wù)程序入口地址和中斷使能,并啟動(dòng)計(jì)時(shí)器。SPI初始化包括設(shè)置引腳功能和SPI時(shí)鐘計(jì)數(shù)寄存器。寄存器的值表示構(gòu)成一個(gè)SPI時(shí)鐘的pclk周期的數(shù)據(jù)。該寄存器的值必須為偶數(shù),且其值還必須≥8。如果寄存器的值不符合上述條件,可能導(dǎo)致產(chǎn)生不可預(yù)測(cè)的動(dòng)作。SPI速率的計(jì)算:pclk速率/SPCCR值。pclk速率為CCLK/VPB的除數(shù),由VPBDIV寄存器的內(nèi)容決定。此外,還設(shè)置SPI控制寄存器SPCR(CPHA、CPOL、MSTR、LSBF和SPIE)。
板級(jí)初始化包括:對(duì)一些I/O口的功能選擇設(shè)置、按鍵和LED發(fā)光二極管以及LED八段數(shù)碼管的配置。設(shè)置按鍵的狀態(tài)位,置位或者清零I/O口來設(shè)置按鍵的初始狀態(tài);設(shè)置LED發(fā)光二極管的狀態(tài)位,置位或者清零I/O口來設(shè)置LED發(fā)光二極管的初始狀態(tài);設(shè)置LED八段數(shù)碼管的狀態(tài)位,對(duì)ZLG7289進(jìn)行操作及設(shè)置LED八段數(shù)碼管的初始狀態(tài)。
(2)CC2420內(nèi)部寄存器的設(shè)置
CC2420內(nèi)部有33個(gè)配置和狀態(tài)寄存器、15個(gè)命令寄存器以及2個(gè)8 bit FIFO寄存器RXFIFO和TXFIFO。設(shè)置CC2420模塊為自動(dòng)ACK狀態(tài),設(shè)置MDMCTRL0為0x0AF2;設(shè)置CORR_THR的值為20,即設(shè)置MDMCTRL1的值為0x0500;設(shè)置FIFOP_THR的值為127,當(dāng)RXFIFO中的字節(jié)數(shù)超過FIFOP_THR時(shí),F(xiàn)IFOP變?yōu)楦唠娖?這是一個(gè)門限值);設(shè)置FREQ為357,即設(shè)置FSCTRL為0x4165,選擇2 405 MHz,第11信道?;鶞?zhǔn)頻率FC計(jì)算如下:
FC=2 048+FREQ[9:0]MHz
設(shè)置PA_LEVEL的值為31,即TXCTRL的值為0xA0FF,表示輸出功率為0 dBm。PA_LEVEL和輸出功率以及典型的電流消耗如表1所示。
設(shè)置完LPC213X、并對(duì)CC2420寄存器進(jìn)行配置后,可以自己編寫程序?qū)崿F(xiàn)節(jié)點(diǎn)之間的收發(fā),也可以移植協(xié)議棧到該目標(biāo)系統(tǒng),實(shí)現(xiàn)基于ZigBee的組網(wǎng)技術(shù)。
本文采用NXP公司的LPC213X MCU和Chipcon公司的CC2420射頻芯片,完成了符合ZigBee標(biāo)準(zhǔn)的嵌入式節(jié)點(diǎn)的硬件以及相應(yīng)的接口軟件的設(shè)計(jì)。該ZigBee嵌入式節(jié)點(diǎn)成本低、功耗小,可以用電池供電,具有功能強(qiáng)大、擴(kuò)展靈活、結(jié)構(gòu)簡(jiǎn)單、輸出功率可編程、安全可靠等特點(diǎn),對(duì)于實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)具有重要意義,特別適合于工業(yè)監(jiān)控、消費(fèi)類電子和無線傳感器網(wǎng)絡(luò)等領(lǐng)域。
參考文獻(xià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技術(shù)基礎(chǔ)及案例分析[M].北京:國防工業(yè)出版社,2008.