基于CC2530的ZigBee通信网络的应用设计

2011-10-09 09:46李俊斌胡永忠
电子设计工程 2011年16期
关键词:应用层串口天线

李俊斌,胡永忠

(电子科技大学 电子工程学院,四川 成都 611731)

为了满足人们日益对智能化生活的需求,在微电子技术、计算机技术发展推动下,无线传感网络取得长足发展,其在各方面的应用暗示着它已经成为一种新的技术趋势。Zigbee是一种介于无线标记技术和蓝牙之间的技术提案。作为一种新兴的短距离、低速率、低功耗无线网络技术,其特性预示着在消费类电子智能家庭和楼宇网络、工业控制、医疗等领域将有较大的发展。

世界上各大厂商纷纷推出实现ZigBee物理层功能的芯片, 代表性的有 Jennic的 JN5139,Freescal的 MC13192和Ember的EM250等。德州仪器也推出了一系列系统级芯片。其中CC2530是一款兼容IEEE 802.15.4的片上系统,集成了增强型8051内核,结合TI Z-STACK协议栈可方便的组建自己的无线通信网络。

1 ZigBee协议栈体系结构

ZigBee协议栈模型如图1所示,分布为层结构。主要由应用层(APL),网络层(NWK),媒介访问控制层(MAC)和物理层(PHY)组成,其中IEEE802.15.4标准定义了媒介访问控制层和物理层,ZigBee联盟定义了网络层和应用层架构。每一层为上层提供一系列特殊的服务,数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体通过服务接入点(SAP)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需要的功能[1]。在ZigBee协议中,协议本身已经定义了大部分内容。在基于ZigBee协议的应用开发中,用户只需要实现应用程序框架即可,作为应用开发者来考虑,更多关注的是应用层构架。

图1 ZigBee协议栈模型Fig.1 Model of ZigBee protocol stack

ZigBee应用层包括应用支持子层APS,ZigBee设备对象(ZDO)和用户定义的应用对象。APS主要应用于维护设备绑定表和提供绑定设备间的消息传送服务,ZDO是特殊的应用对象,负责定义设备类型、初始化绑定请求和建立安全管理等。

ZigBee网络由一序列网络节点组成,一个网络节点可以包含多个设备,每个设备可支持240个端点。端点作为网络通信中的数据通道,编号为1到240的端点对应可以定义240个应用对象。此外端点0作为ZigBee设备对象(ZDO)的数据接口。每个端点可定义多个群集(Cluster)。

在进行ZibBee产品开发中,需要遵循一个应用规范(Profile),设定Profile是一种规定不同设备对消息帧的处理行为,使不同的设备之间可以通过发送命令、数据请求来实现互操作。它由ZigBee联盟提供或用户自行建立,在从ZigBee联盟得到分配的ProfID后,就可以定义设备描述符和群集(Clusters)。其中描述符用来描述设备类型和应用方式,包括节点、电源、简单、复杂和用户描述符。简单描述符需要在节点的各个终端(endpoint)中定义,而其他描述符则适用于整个节点。

在ZibBee网络中,设备可以分为两类,即完整功能设备(FFD)和简化功能设备(RFD)。完整功能设备(FFD)可以作为协调器或路由器在任何拓扑结构中工作,能同其他FFD或RFD通信。而RFD只能作为终端网络节点,并且只能同网络中的FFD通信。FFD和RFD在硬件结构上相同,但在网络层结构中有差异。

ZigBee网络支持2种网络拓扑结构,为星型网拓扑和对等网拓扑[2]。两种拓扑结构见图2和图3。星型网络中,PAN协调器提供组织网络和路由功能,终端网络节点通过协调器进行通信。这种拓扑结构主要用在智能家居、PC外设等领域。对等网络中每个设备都可以同PAN协调器直接进行通信,因此节点可自组织网和采用多跳方式来通信。主要应用于工业控制、物流等领域[3]。

图2 星型网络Fig.2 Star network

图3 对等网络Fig.3 Mesh network

2 ZSTACK协议栈的分析

Z-Stack是德州仪器推出的ZigBee协议栈软件,其为应用开发者提供了一个模板,在其基础上进行开发可以大大加快应用开发周期[4]。

Z-Stack采用操作系统的思想来构建,采用事件轮询机制,系统按照任务优先级依次来处理事件,而在事件处理完后,进入低功耗模式,降低了系统的功耗。操作系统抽象层(OSAL)的工作就是对多个任务进行系统资源分配,核心是通过参数传递的事件类型来判断对应处理相应任务的事件。在系统中,定义tasksEvents数组存放每个任务的标志位,在OS主体循环函数中,轮询判断各任务标志位来对应执行相应的任务。进而执行事件处理函数,完成各个任务事件处理。

其中任务事件的触发有两种方式,一种是通过设置一个软件定时器osal_start_timeEx()函数等待溢出来触发,一种是调用系统消息传递机制来触发。以按键触发为例来说明,在硬件驱动抽象层的任务处理函数中,通过设定函数每隔100 ms定时向HAL任务发送HAL_KEY_EVENT事件,每次处理事件中执行 HalKeyPoll()函数,调用回调函数OnBoard_KeyCallback,通过 osal_msg_send()函数向应用层发送消息,进而调用osal_set_event()触发事件,该函数把消息msg_ptr(按键消息)传递给了task_id所指示的一个任务。表明把数据包传递给该任务,最终调用按键处理函数来执行所需操作。

在进行应用开发时,需要定义添加相应的任务。其中主要包括任务初始化函数和事件处理函数。任务初始化函数定义一个TasksArr数组,存放所有任务事件处理函数的地址,给每个任务分配唯一的任务标识号,最后注册系统服务。ZStack协议栈中按照由高到低的优先级已经定义好了MAC层、网络层、硬件驱动抽象层、应用设备对象层的任务,只需要添加用户应用层任务初始化函数到后面即可。

3 硬件设计

本次网络设计中的协调器、路由器和终端器的硬件模块结构是相同的。模块设计中,采用一片PL2303HX芯片将USB虚拟成串口。因此,通过USB接口可以方便的实现模块和PC之间的通信。

参考IT公司的评估板可以加快自行PCB设计的进程,模块设计中,PCB板采用双层板,在设计时,两层接地层会沿铜皮走线产生一个电位差,而高频电流变化速度很快,如果电流不能及时通过回路导入地面,局部的电位过高会导致信号的错误判断,因此在板子上应注意在两层地面层打回路导通孔来减少阻抗,使地面保持等电位。典型的一个导通孔距离计算公式如下。

其中c表示光的传输速率,εr表示板子的介电常数。测量得宽度为62.9 mil。在利用评估版设计天线电路时,TI公司已经提供了信号输出到天线间匹配电路,如图4所示,RF_P和RF_N是差分射频信号输出,天线是50 Ω的单端输入,之间采用分立LC元器件搭建了一个差分到单端的阻抗匹配电路。标注1表示DC模块,标注2三端口电路是巴伦电路,标注3是pi型滤波电路。

图4 匹配电路Fig.4 Matching circuit

4 天线的设计

模块设计中天线选择印制倒F天线,印制天线位于介质板与空气中间,且介质板背面无金属。结构模型如图5所示,其等效模型为长为L的终端开路传输线和长为S的终端短路传输线并联而成[5]。本文参考TI公司提供的2.4 G IFA的设计尺寸进行天线设计,其中重点分析L、S、H 3个参数对于谐振频率和输入阻抗的影响。这里采用Ansoft HFSS软件对天线进行仿真。其仿真模型如图6所示。

图5 结构模型Fig.5 Structure model

图6 IFA仿真模型Fig.6 IFA simulation model

天线采用相对介电常数为4.6,厚度为1.0 mm的FR-4板材。按照固定2个参数,改变另外一个参数的方法进行调节。其中,保持S和H不变,减少L长度可以降低谐振频率点的位置,保持S和L不变,减小H长度可以降低输入阻抗。通过微调各个参数使谐振频率落在2.45 GHz,输入阻抗接近于50 Ω。最终得到一个尺寸。设置扫描频率在2 GHz到3 GHz的回波损耗仿真结果如图7所示,可以看到天线在2.45 GHz的回波损耗为-30 dB,电压驻波比为2.0时带宽为680 MHz,完全满足ZigBee在2.405 GHz到2.483 GHz频段的要求。

图7 回波损耗曲线图Fig.7 Graph of return losses

5 软件设计

本次设计开发环境选用IAR7.60,在Z-STACK-2.4.0-1.4.0协议栈基础上编写了应用层程序[6]。系统主要由6个节点组成一个星型网络,一个协调器负责网络的建立,3个路由器和2个终端器组建网络,采集由CC2530内部自带温度传感器的温度值,并实时地传输到协调器。

协调器采用自启动模式,即在预编译选项中去除HOLD_AUTO_START。因此在ZDO初始化函数中进行网络初始化,若协调器网络建立成功,将触发任务的ZDO_STATE_CHANGE事件,后调用函数在串口调试软件上显示网络建立的状态。系统对串口进行轮询检测,若有数据写入串口,通过回调函数将串口事件传递给任务,在应用层里定义MyApp_CallBack()调用数据发送函数,这边数据即控制命令。其中发送地址模式分为单播、广播和组播3种模式,分配3种模式地址做为数据发送目标地址。

路由器和终端器也采用自启动模式.在网络初始化时,调用 NLME_NetworkDiscoveryRequest()函数来发现网络,后加入网络成功,触发任务的ZDO_STATE_CHANGE事件,把网络地址发给协调器。在接收到控制命令数据后,调用数据采集函数采集温度值,并发送数据到协调器,若发送不成功将延迟1 s后重发,如图8所示。

图8 协调器、终端器工作流程Fig.8 Coordinator,end device working process

6 测试分析

网络由6个节点组成,其中C为协调器,通过串口连接到PC。R1、R2、R3为路由器节点,E为终端器节点,构成一个星型网络。节点间距在70 m左右。上电启动后,协调器选择网络标识号PanID为0xB6F1,为路由器和终端器分配地址,分别为0x0001、0x0016、0x002B。终端器节点地址为0x0002。以上信息都通过发送状态到串口调试软件实时显示。

协调器通过串口调试软件发送温度采集命令,设置波特率为57 600 b/s,收到各个节点的温度值。若移除路由节点R3,串口调试软件显示终端节点E离开网络。再次把R3节点加入网络中,E重新加入网络。验证了网络的自动中继功能,网络自愈能力。测试网络拓扑图如图9所示。

图9 测试网络拓扑图Fig.9 Network topology of testing

7 结 论

本文从应用方面着手对Zigbee技术的网络拓扑结构进行研究和介绍,采用TI公司的Z-STACK协议栈和IAR开发环境,以CC2530芯片为核心构建了一个ZigBee通信网络,在硬件设计和软件设计方面对于需要搭建传感器网络的项目应用有一定参考价值。

[1]ZigBee Aliance.ZigBee Specification.[EB/OL].(2008).http://www.ZigBee.org.

[2]CAO Li-ting,JIANG wei,ZHANG Zhao-li.Networked wireless meter reading system based on ZigBee technology[J].Control and Decision Conference,2008:3455-3460.

[3]吕治安.ZigBee网络原理与应用开发[M].北京:北京航空航天大学出版社,2008.

[4]夏飞.基于Z-Stack协议的无线传感器网络节点研究[J].电子元器件应用,2009,11(12):74-76.

XIA Fei.Research of wireless sensor network node based on Z-Stack protocol[J]. Electronic Component & Device Application,2009,11(12):74-76.

[5]刘彤,樊宏,沈连丰.无线家庭网络印制倒F型天线的分析与设计[J].东南大学学报,2006,36(2):184-188.

LIU Tong,FAN Hong,SHEN Lian-feng.Analysis and design of printed IFA for WHAN[J].Journal of Southeast University,2006,36(2):184-188.

[6]宋国青,叶进,屈国旺,等.基于工作流的Zigbee无线抄表系统设计与实现[J].自动化与仪表,2010(4):22-25.

SONG Guo-qing,YE Jin,QU Guo-wang,et al.Design and implementation of zigbee wireless meter reading system based on workflow[J].Automation&Instrumentation,2010(4):22-25.

猜你喜欢
应用层串口天线
浅谈AB PLC串口跟RFID传感器的通讯应用
ETC相控阵天线与普通天线应用对比分析
基于分级保护的OA系统应用层访问控制研究
ALLESS转动天线射频旋转维护与改造
理论宣讲要上接天线、下接地气
新一代双向互动电力线通信技术的应用层协议研究
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
物联网技术在信息机房制冷系统中的应用