基于CC2420的ZigBee通信节点的设计与实现
2010-11-27孙锦中
孙锦中
(上海电力学院 电子信息工程系,上海 200090)
随着社会的发展,人们对通信技术的要求日益提高,无线通信技术在其中扮演着越来越重要的角色。ZigBee作为一种国际标准短距离无线通信协议,其协议栈体系结构是基于标准七层开放式系统互联参考模型(OSI),IEEE 802.15.4-2003标准定义了下面的两层:物理层(PHY)和媒体接入控制子层。网络层、应用会聚层、应用层则由ZigBee联盟制订。
IEEE 802.15.4-2003有三个PHY层,包括单个分离的频率范围:868 MHz、915 MHz和 2.4 GHz。 低频率PHY层包括868 MHz欧洲频段和915 MHz美国及澳大利亚频段,高频段PHY层为全球通用。
ZigBee协议标准具有如下特点:成本低、功耗低、时延短、网络容量大、可靠性高、安全和传输距离远。Zig-Bee技术主要应用在短距离范围内的低速率电子设备之间的数据传输,因此非常适用于家电和小型电子设备的无线控制指令传输,其典型的传输数据类型包括周期性数据、间歇性数据和重复低反应时间数据等。ZigBee联盟预测的主要应用领域包括工业控制、消费类电子设备、汽车自动化、农业自动化和医用设备控制等。
1 CC2420射频芯片
CC2420是Chipcon公司(现被美国德州仪器公司收购)推出的,用来实现 ZigBee应用的单片 RF收发器,它具有高度集成、低成本、低电压、低功耗等特点,支持2.4 GHz IEEE 802.15.4/ZigBee协议,内置数字直接序列扩频调制解调模块,其数据通信速率可达250 Kb/s。
CC2420射频芯片的特征如下:第一款真正的2.4 GHz符合IEEE 802.15.4标准的射频收发器,具备基带调制解调和MAC层支持功能:自动生成帧引导序列,插入和检测同步字,CRC-16计算和校验,空闲信道评估,接收信号强度指示(RSSI)和链路质量指示(LQI)以及三种模式的MAC安全保护;直接序列扩频(DSSS)基带调制解调,码片速率达2 MChip/s,有效数据速率达250 Kb/s;同时适用于 RFD和 FFD;超低电流消耗(RX:18.8 mA,TX:17.4 mA);片上稳压器提供2.1~3.6 V的低电压,外部稳压器提供1.6~2.0 V的低电压;可编程输出功率;无需外接滤波器,只需要接入晶振和很少的无源元器件;同相信号和正交相位信号低中频接收器和直接升频转换发送;128 B发送数据缓存,128 B接收数据缓存;CTR加密/解密,CBC-MAC验证,CCM加密/解密+验证,单独的AES加密;电源监控;QLP-48封装,芯片大小为7 mm×7 mm。
CC2420射频收发器和少量无源元件(电阻、电容、电感和PCB天线)构成CC2420射频模块,形成标准接插件,减少了与微控制器(MCU)的接口,方便研发设计和批量生产。
TI公司和Microchip公司都免费为用户提供CC2420射频模块的设计原理图和PCB版图。此外,TI公司提供CC2420射频模块 CC2420EM,Microchip公司提供 CC2420射频模块2.4 GHz RF CARD。本文采用Microchip公司的2.4 GHz RF CARD作为射频收发器。
2.4 GHz RF CARD与MCU的接口如图1所示。
图1 2.4 GHz RF CARD与微控制器接口
2 CC2420与LPC213X的硬件接口
LPC213X是NXP公司推出的支持实时仿真的ARM7TDMS-S 32位MCU。基于ARM7和CC2420的嵌入式ZigBee节点的总体硬件结构如图2所示。
射频部分选用CC2420作为IEEE 802.15.4RF芯片。MCU部分选用ARM7TDMI-SLPC213X。在设计ZigBee节点时预留了JTAG调试端口,利用JTAG接口来调试和下载程序;通过RS-232串口提供调试过程中的信息并与PC机交互ZigBee组网过程中的信息;通过SPI接口与CC2420射频模块相连,收发无线分组数据,且引出测试点以便用示波器观察各点的波形;并且预留了一些 GPIO供灵活使用,例如,与开关、蜂鸣器、LED和八段数码管等的连接。
由于功能复杂,程序代码量较大,ZigBee组网中的协调器和路由器选用LPC2138(32 KB RAM/512 KB Flash)处理器。终端设备为 RFD,因其功能单一,程序代码量较小,因此可以选用LPC2131(8 KB RAM/32 KB Flash)或者 LPC2132(16 KB RAM/64 KB Flash)处理器,以节约成本。CC2420与MCU的接口如图3所示。
图3 CC2420与微控制器接口
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嵌入式系统中,MCU通过以下方式来对CC2420进行控制和操作:MCU通过四线SPI总线(SI、SO、SCLK 和 CSn)来与 CC2420进行双 向 通信,向其发送控制指令,并通过SPI总线回读CC2420的状态信息;MCU利用中断的方式来读写CC2420的先进先出寄存器(FIFO),获取无线通信数据;通过读取CC2420的CCA引脚状态信息来进行空闲信道评估;MCU通过与CC2420的SFD引脚相连,向CC2420发送时序信息,表示一帧数据的开始(特别是对于信标网络)。
3 软件接口设计
CC2420 RF芯片在硬件上支持部分IEEE 802.15.4数据帧格式,如图4所示。
同步头包括前导序列和帧定界符(SFD)。在CC2420中,前导序列长度和帧定界符SFD是可以配置的,复位值是4 B和1 B,符合IEEE 802.15.4标准。物理头为1 B,其中帧长度域共7 bit,规定了PSDU的字节数。PSDU是一个可变长度域,承载着物理层的分组数据,包含MAC子层帧。
软件接口设计主要包括以下部分:
(1)LPC213X及板极设置。
对LPC213X的初始化包括:IRQ中断、串口、计时器以及SPI的初始化。
IRQ中断初始化包括设置:中断通道号、中断服务程序入口地址和中断使能。串口中初始化包括设置:引脚功能、字长、奇偶校验、波特率、串口中断通道号、中断服务程序入口地址和中断使能。计时器初始化包括设置:计时器的预分频,即32 bit TC每经过 PR+1个pclk周期加 1;设置计数器 TC为 0,同时对 IR写入 0xFF清除计时器的中断寄存器;设置串口中断通道号、中断服务程序入口地址和中断使能,并启动计时器。SPI初始化包括设置引脚功能和SPI时钟计数寄存器。寄存器的值表示构成一个SPI时钟的pclk周期的数据。该寄存器的值必须为偶数,且其值还必须≥8。如果寄存器的值不符合上述条件,可能导致产生不可预测的动作。SPI速率的计算:pclk速率/SPCCR值。pclk速率为CCLK/VPB的除数,由VPBDIV寄存器的内容决定。此外,还设置SPI控制寄存器 SPCR(CPHA、CPOL、MSTR、LSBF 和 SPIE)。
板级初始化包括:对一些I/O口的功能选择设置、按键和LED发光二极管以及LED八段数码管的配置。设置按键的状态位,置位或者清零I/O口来设置按键的初始状态;设置LED发光二极管的状态位,置位或者清零I/O口来设置LED发光二极管的初始状态;设置LED八段数码管的状态位,对ZLG7289进行操作及设置LED八段数码管的初始状态。
(2)CC2420内部寄存器的设置
CC2420内部有33个配置和状态寄存器、15个命令寄存器以及2个8 bit FIFO寄存器RXFIFO和TXFIFO。设置CC2420模块为自动ACK状态,设置MDMCTRL0为0x0AF2;设置CORR_THR的值为 20,即设置 MDMCTRL1的值为 0x0500;设置 FIFOP_THR的值为 127,当 RXFIFO中的字节数超过 FIFOP_THR时,FIFOP变为高电平(这是一个门限值);设置 FREQ为 357,即设置 FSCTRL为0x4165,选择2405MHz,第11信道。基准频率FC计算如下:
FC=2 048+FREQ[9:0]MHz
设置PA_LEVEL的值为31,即TXCTRL的值为0xA0FF,表示输出功率为0 dBm。PA_LEVEL和输出功率以及典型的电流消耗如表1所示。
表1 2.4 GHz RF输出功率设置
设置完LPC213X、并对CC2420寄存器进行配置后,可以自己编写程序实现节点之间的收发,也可以移植协议栈到该目标系统,实现基于ZigBee的组网技术。
本文采用NXP公司的LPC213X MCU和Chipcon公司的CC2420射频芯片,完成了符合ZigBee标准的嵌入式节点的硬件以及相应的接口软件的设计。该ZigBee嵌入式节点成本低、功耗小,可以用电池供电,具有功能强大、扩展灵活、结构简单、输出功率可编程、安全可靠等特点,对于实现无线传感器网络具有重要意义,特别适合于工业监控、消费类电子和无线传感器网络等领域。
[1]ZigBee Alliance.ZigBee specification V1.0.USA, June 27,2006.
[2]Texas Instruments.2.4GHz IEEE 802.15.4/ZigBee-ready RF transceiver V1.3.USA, October 3, 2005.
[3]金纯,罗租秋,罗凤,等.ZigBee技术基础及案例分析[M].北京:国防工业出版社,2008.