ZigBee是一种基于IEEE802.15.4规范的无线技术,是介于无线标记技术和蓝牙之间的技术提案,主要用于近距离无线连接。它依据802.15.4 标准,在数千个微小的传感器之间实现了相互协调和通信。它具有在IEEE802.15.4规范上创建的安全和应用层接口、工作于免授权的2.4GHz频段、以年计算的超低电池寿命、极大可伸缩的网络和星型网络拓扑(每个主设备可支持4万多个节点)等诸多优点,在国防军事、工业控制、消费性电子设备等领域有很大的发展空间。
AT86RF230是Atmel公司于2007年2月新推出的一款基于ZigBee/IEEE802.15.4设计的低功率2. 4GHz无线收发芯片。
AT86RF230芯片介绍
AT86RF230单个芯片集成了除天线、晶振和去耦合电容之外的所有标准射频单元。其内部结构如图1 所示。
图1 AT86RF230芯片内部结构(略)
单片射频收发芯片为天线和微控制器之间提供了完整的无线接口。它由模拟无线模块,含有时间和频率同步及数据缓冲的数字调制模块组成。外围电路只需天线、晶振和四个去耦合电容以达到最简。双向的天线引脚可供发送和接收模块使用,无需天线转换装置。
信道滤波器由3个单边带RC回路构成的2MHz巴特沃兹带通滤波器组成。两个高优先级高通滤波器加入信号通道实现与单边带滤波器输出的电容耦合,以抑制直流偏置。三级放大器为克服后面单信道模数转换器产生的直流偏置提供足够的增益。
直接压控振荡器调制用以产生发射信号。调制模块输出单极脉冲波形和32位长块编码。当转化为合适的传输码序列时,与最小频移键控相当。
两片低跌落电压调节器提供1.8V模拟和数字电压。当调节器关闭时,串行外围设备接口和控制寄存器在休眠模式将会保持原有设置。接收和发送信号处理通道高度集成和优化以达到低耗电。
硬件设计
硬件设计结构组成
传感器节点一般由数据采集单元、数据处理单元和数据传输单元以及电源管理单元等模块组成。节点硬件结构由图2所示。微处理器ATmega128通过SPI总线与射频收发芯片AT86RF230进行通信。数据采集单元主要对外界的信息进行感知和采集,包括光、温度、湿度、加速度 、光电、液位、热释电、磁感应、压力等传感器。为适应多种应用,设计了通用接口,通用接口中有适配电路,以适应不同电参数部件直接接入系统。通常节点的输出控制器即通过该通用接口接入。数据采集模块也利用通用接口与微处理器相连结,因此可以根据多种不同应用随时更换为各类型的模拟传感部件(本文以LM60系列温度传感器为例进行介绍)。数据处理单元采用ATMEL公司的8位低功耗微处理器Atmega128L作为控制核心。Atmega128L是基于AVR RISC结构的低功耗CMOS 8位微处理器,相对于其它通用的8位微控制器来说,它具有更加丰富的资源,并且具有极低的功耗。更值得一提的是,除了正常 操作模式外,它还具有六种不同等级的低功耗操作模式。因此该微处理器非常适合于ZigBee无线通信节点这种需要低功耗的应用场合。数据传输单元采用AT86RF230芯片,并使用单极天线(有效覆盖范围70m~100m )。处理器通过 SPI 接口编程控制寄存器,同时完成与AT86RF230交换数据。为节约能源,通用接口模块与微处理器间的信号传输采用单总线方式。根据各个电路特点、设定不同的时钟周期,在自己的时钟周期到来时,方能与MCU进行通信,其余时间不工作以便降低功耗。
图2 传感器网络节点组成框图(略)
射频通信模块电路设计
单端射频连接器的应用电路如图3所示。一个非平衡SMD转换将100Ω的AT86RF230差分射频输入输出信号转换为50Ω的单端射频输出。电容C1和C2用于去除直流偏置。供电电源去耦合电容 CB2和CB4接至模拟端28引脚和数字端15引脚。电容CB1和CB3作为模拟和数字电压调节器的负载电容,用以保证低电压时,芯片工作稳定。所有的去耦合电容应连接到离芯片引脚尽可能近的位置,并且以低阻抗低电感接地,以达到最好的性能。晶振XTAL 与负载电容CX1和CX2连 接到芯片的XTAL1和XTAL2引脚构成晶振电路。为了使得参考频率达到更高的精确性和稳定性,在选择电容时,应避免与其参考值的值偏差过大。在MCU与射频单元的通信中采用并行总线制通信方式。射频单元通过SPI总线控制芯片工作模式并实现读写缓存数据。
图3 核心电路设计(略)
软件设计
软件设计是无线传感器网络节点设计的灵魂,采用C语言完成。适应层软件按功能包括主调度函数、初始化模块、系统状态处理模块和上层接口。主调度函数负责协调各模块工作、进行中断处理、调度其他模块运行。初始化函数完成MCU、AT86RF230和相关组件的初始化。上层接口负责为协议栈和其他应用程序提供底层调度接口,通过上层接口状态标识产生软件中断。系统状态处理模块依据MCU的工作状态将系统分为闲置模式、工作模式、唤醒模式、省电模式和空闲模式五种状态。状态处理模块依据模式寄存器采取有限状态机(FSM)的方式进行调度处理。系统状态处理模块中的闲置模式、工作模式为系统工作状态的模式;省电模式和空闲模式为MCU执行了休眠指令后,执行的六种体眠模式的两种,通过设置MCU CR寄存器完成。唤醒模式为瞬过模式,负责部分省电模式和空闲模式转换时对寄存器的设置和中断模式的调整。系统状态处理模块依靠自身的模式转换计时器维护其他模式间的转换。闲置模式指工作模式结束后系统未执行任何应用层指令,经过30s后转入空闲模式;系统收发数据、采集信息、执行上层指令时为工作模式。
图4 基本操作模式状态转移图(略)
基本操作模式状态机
基本操作模式状态机由电源开启、休眠模式、时钟模式、锁相环模式、 接收侦听模式、接收模式、发送侦听模式、发送模式等状态组成。基本操作模式状态转移图如图4所示。
软件设计流程图
按照硬件电路设计,系统软件编程的基本思路是:先对SPI端口、AT86RF230控制端口初始化;使能SPI端口、UART端口和ADC;对AT86RF230芯片初始化;开启接收机后,就可以运行任务程序,实现接收或发送数据。发送和接收程序流程图如图5和图6所示。
无线通信协议是软件中的一个重要问题,因为它直接关系到节点的性能。因此,在链路层,设计了一个简化的CSMA/CA协议,即任何节点在发送之前必须进行一段随机时间的侦听,在确认目前没有别的节点在进行数据传输时才进行数据发送,收发双方通过三次握手来交换数据。在系统空闲时,关闭侦听功能,以尽可能降低功耗。当然,这种协议存在着隐含节点以及侦听时的功耗损失等问题,但在一定的节点数量范围内还是很有效的。
图5 发送程序流程(略)
图6 接收程序流程图(略)
部分程序代码
初始化程序 从P_ON进入TRX_OFF
ADD = 0XC2; //选择TRX_STATE
CMD = 0X08; //打开TRX_OFF
CALL SENDREG; //发送子程序,shortmode 发送两字节
for(x = 0; x<= 180us; x++); //延时180us
PLL_ON程序 (由RX_OFF进入接收状态
RX_ON: ADD = 0XC2; //选择RX_STATE
CMD = 0X08; //打开RX_ON
CALL SENDREG;
for(x = 0; x<= 180us; x++); //延时180us
END;
总结
A T86RF230是Atmel公司2007年2月新推出的 一款基于ZigBee/IE EE802.15.4设计的低功率2. 4GHz无线收发芯片。利用此芯片开发的无线传感器网络节点成本低、功耗小,适用于电池 长期供电,具有很强的实际应用价值。同时,考虑到IPv6的巨大的地址空间、邻居发现功能、安全性好等优良特性,在网络层协议上,还可采用简化的IPv6 路由协议。此设计为无线传感网络的广泛应用提供了理想的解决方案。 |