基于精简协议栈的ZigBee网络节点研究

发布者:心语乐章最新更新时间:2011-03-18 来源: 中国电子设计网关键字:ZigBee  网络节点 手机看文章 扫描二维码
随时随地手机看文章

  引言

  ZigBee是一种新兴的短距离、低功耗、低数据速率、低成本、低复杂度的无线网络技术。ZigBee在整个协议栈中处于网络层的位置,其下是由IEEE 802.15.4规范实现PHY(物理层)和MAC(媒体访问控制层),对上ZigBee提供了应用层接口。

  ZigBee可以组成星形、网状、树形的网络拓扑,可用于无线传感器网络(WSN)的组网以及其他无线应用。ZigBee工作于2.4 GHz的免执照频段,可以容纳高达65 000个节点。这些节点的功耗很低,单靠2节5号电池就可以维持工作6~24个月。除此之外,它还具有很高的可靠性和安全性。这些优点使基于ZigBee的WSN广泛应用于工业控制、消费性电子设备、汽车自动化、家庭和楼宇自动化、医用设备控制等。

  ZigBee协议由ZigBee联盟制定,是ZigBee的核心。目前国外带有ZigBee协议栈的全功能开发系统的价格非常高昂,而且ZigBee/802.15.4协议栈全部只提供二进制/不可修改的目标代码库供用户使用。本文研究的ZigBee精简版协议栈代码开放,在某些应用中可以达到标准版协议栈的效果,但是费用却低很多,因此具有较高的研究价值和应用价值。

  1  ZigBee精简协议栈简介

美国密西西比州立大学的Robert Reese教授出于教学、科研目的开发出一套精简版(subset)ZigBee协议栈。标准协议栈和精简协议栈的功能对比如表1所列,可以看出,精简协议栈实现了ZigBee的主要功能。国内一些研究机构在此精简协议上进行扩充,实现了一些其原本不具备的功能。

  这里再补充一些术语概念,这有助于理解协议栈的代码结构。

  IEEE Address节点的8位802.15.4网络地址,也称为长地址。

  Network Address节点的2位网络地址,也称短地址。

  PAN个人局域网。

  PAN ID个人局域网标识符。

  PHY协议栈物理层。

  MAC协议栈媒体访问控制层。

  NWK协议栈网络层。

  APS协议栈应用支持层。

  APL协议栈应用层。

  精简协议栈的代码结构如表2所列。

  表1

  表2

  2  ZigBee协议编程

  对于实际应用来说,最重要的是协议栈的APL函数。协议栈的每一层都有自己的有限状态机(FSM)以追踪要进行的操作。顶层的状态机函数为apsFSM(),这个函数需要最早被调用以使协议栈运行,这与标准栈中的APLTask()函数等价。所有的应用层函数都以apl或者aps开头,这些函数被分为两类: 一类是对栈内数据的存取函数,一类是数据传输过程触发一系列事件的服务函数(调用)。这里需要说明的是服务调用不能重叠,这可以通过调用apsBusy()函数进行判断。

  2.1  节点程序设计

  如果节点作为协调器(coordinator),那么需要定义LRWPAN_COORDINATOR;而如果节点作为路由器(router)则需要定义LRWPAN_ROUTER;如果两者都没有定义,将作为RFD节点。

  协调器节点形成网络,然后进入一个无限循环并调用apsFSM()运行协议栈。调用aplFormNetwork()服务后调用函数aplGetStatus(),如果返回了LRWPAN_SUCCESS则表示服务调用成功。代码如下:

  main() {

  halInit();//初始化HAL 层

  evbInit();//初始化评估板

  aplInit();//初始化协议栈

  ENABLE_GLOBAL_INTERRUPT();//开中断

  aplFormNetwork();//形成网络

  while(apsBusy)()) {apsFSM();}//等待完成

  while(1) {apsFSM();}//运行协议栈栈

  }

  路由器节点通过调用aplJoinNetwork()运行协议栈。代码如下:

  main() {

  halInit();//初始化HAL 层

  evbInit();//初始化评估板

  aplInit();//初始化协议栈

  ENABLE_GLOBAL_INTERRUPT();//开中断尝试接入网络直至成功

  do { aplJoinNetwork(); //接入网络

  while(apsBusy)()) {apsFSM();}//等待完成

  }while(aplGetStatus() !=LRWPAN_SUCCESS);

  while(1) {apsFSM();}//运行协议栈

  }

  2.2  发送消息

  应用程序通过调用aplSendMSG()函数发送消息包。此函数的定义如下:

  aplSendMSG(

  BYTE dstMode,//目标地址的地址模式

  LADDR_UNION * dstADDR, //目的地址的指针

  BYTE dstEP,//目标端点(直接消息方式不用)

  BYTE cluster,//簇号(仅用于直接消息)

  BYTE scrEP,//消息源端点

  BYTE* pload,//用户数据缓冲区指针

  BYTE plen,//缓冲区字节数

  BYTE tsn,//消息的事务队列数

  BYTE reqack//如果非0则要求确认

  )

  消息从源节点的源端点发送到目标节点的目标端点。消息分直接消息(指定了目标地址)和非直接消息(仅定义了源节点、源端点和簇,没有指定目标地址)。端点号从1到255由应用程序设置(端点0由栈保留使用)。消息发送以,协议栈会向父节点路由此消息。如果收到APS的ack确认,协议栈就会将消息发送给目标端点。

  2.3  接收消息

  协议栈使用以下APL访问函数接收数据包。

  aplGetRxDstEp()返回目的端点

  aplGetRxCluster()返回簇号

  aplGetRxSrcEp()返回源端点

  aplGetRxSADDR()返回源端点的短地址

  aplGetRxMsgLen()返回消息长度

  aplGetRxMsgData()返回消息数据的指针

  aplGetRxRSSI()返回收到消息的信号强度

  而后用户回调函数usrRxPacketCallback()将被调用。这个函数将使用用户数据结构保存数据,设置已收到数据的标志位。此函数结束后消息数据的指针将会被释放,所以在函数结束之前要将数据保存以防止下一个包将数据覆盖掉。

  2.4  编写用户应用程序

  编写用户应用程序时,要确定端点的连接方式。一种简单的方式是RFD节点周期性地向

  协调器节点返回数据。这样做比较简单,因为协调器的地址总是0。

  RFD节点间使用直接方式通信比较困难。因为RFD节点的短地址是由其接入网络的顺序和深度决定的,事先并不知道。当然可以在协调器节点上增加程序告知RFD节点它们的地址,但这使复杂程度增加了。比较好的方式是使用非直接消息方式进行RFD节点间通信。RFD节点都将消息发送给协调器节点,协调器节点根据绑定表向正确的节点发送数据。

  图1  有限状态机状态转移图

  整个程序的运转是靠一个有限状态机维持的。图1给出了这个状态机的状态转移图。

  2.5  函数总结

  鉴于APL层函数接口对程序设计的重要性,将这些函数做一个总结。

  表3  APL服务调用

  表4  APL/APS访问和功能函数

  表3是APL服务,这些函数需要调用apsBusy()确定其是否完成,并且使用aplGetStatus()函数返回状态。表4是APL/APS访问及功能函数。

  结语

  无线传感器网络具有广阔的应用前景,由ZigBee协议可以方便有效地组建无线传感器网络。在整个应用中,主要硬件设备可由一个51单片机加上2.4 GHz的收发模块组成,采用CC2430是为了更加方便使用,而ZigBee的真正核心是安装在单片机中的协议栈代码。精简版协议栈不论从开发难度到使用成本都具有一定的优势。本文对精简版协议栈尤其是应用层接口、代码实现进行了详细的分析,并以此为基础给出了节点的软、硬件设计。了解协议栈的使用,就可以在其上开发适合我们需要的各种应用。

关键字:ZigBee  网络节点 引用地址:基于精简协议栈的ZigBee网络节点研究

上一篇:于蓝牙和ZigBee技术的可穿戴网络设计
下一篇:基于CC2420的ZigBee无线网络节点设计

推荐阅读最新更新时间:2024-05-07 16:21

基于ZigBee的煤矿监控系统设计
1 传感器节点功能要求及总体结构   1.1 功能要求   该系统没有设计专用的路由节点,因此传感器节点不仅要采集传感器信号,同时又要充当路由器。传感器信号主要有甲烷浓度、硫化氢浓度、氧气浓度、温度、湿度、风速、压力等信号;人员信息包括身高、体重、血型、姓名等基本信息。   1.2 总体结构   传感器节点电路结构如图1所示。主要包括传感器调理电路、A/D转换电路、报警电路、通用控制输出电路和电源电路。   2 硬件电路设计   2. 1 处理器及主要元件选择   传感器节点处理器选择了英国Jennic公司的JN5121无线模块,它是业界第一款兼容于IEEE 802.15.4的低功耗,低成本无线微控制器。该模块
[模拟电子]
基于<font color='red'>ZigBee</font>的煤矿监控系统设计
芯科购并Telegesis 扩增ZigBee/Thread模组阵容
为拓展无线联网市场版图,芯科实验室(Silicon Labs)近期宣布购并无线网状网路模组供应商Telegesis。此购并可望加速完成芯科在ZigBee和Thread-Ready模组的蓝图,同时强化该公司在物联网网状网路的领导地位。 Silicon Labs资深副总裁暨物联网产品总经理James Stansberry表示,Telegesis的模组业务强化该公司在物联网网状网路解决方案的地位。结合Telegesis模组,芯科的网状网路SoC、802.15.4软体堆叠及易于使用的无线开发工具,可为客户提供从模组到SoC,以及从ZigBee到基于Thread的网路,一个无缝迁移路径。 根据研究机构IHS指出,ZigBee模组市
[网络通信]
zigbee是什么,它为什么最适合智能家居设备?
Zigbee 是什么? 如果您的家里面有使用一款智能家居技术,那么这款技术就很有可能就是用的 zigbee 协议。Zigbee 是一种无线通信协议,是基于 IEEE820.15.4 标准的低功耗局域网协议。是根据国际标准规定的,zigbee 技术是一种短距离、低功耗的无线通信技术,该技术支持恒温器到冰箱灯泡等各种智能家居设备。 Zigbee 是由 zigbee 联盟设定的 ,该联盟成员包括亚马逊、三星、华为、高通和东芝。更重要的是,他正在迅速的成为智能家居设备用于通信的无线协议标准。 Zigbee 是如何工作的? 智能设备需要无线通信接收命令,这些命令来自智能家居集线器以及相关的应用程序,并将信息传递回这些集线器和应用程序。这些
[嵌入式]
<font color='red'>zigbee</font>是什么,它为什么最适合智能家居设备?
物联网时代即将到来 会带来哪些改变?
  现在都在谈论互联网的“下半场”,那下半场到底是什么,不同的人有不同的看法?如果PC时代诞生的早期互联网是互联网发展的第一阶段,智能手机发展后的移动互联网是互联网的第二阶段,那么现在互联网即将迎来一个新的时代,即 物联网 时代。下面就随网络通信小编一起来了解一下相关内容吧。 移动互联网的下一个阶段: 物联网 时代    物联网 (IoT:Internet of Things)这个概念早已不是一个新的概念,早在2009年温总理提出“感知中国”之后,政府工作报告就已经把物联网正式列为国家五大新兴战略性产业之一了,在这之后的很多年里,媒体也一直在向大众普及和宣传物联网的概念。    物联网是什么,不仅仅是RFID,还需要联
[网络通信]
基于ZigBee的温室监控系统网关设计
引言 温室监控系统用于实时监测室内温度、湿度、CO2浓度等环境参数,以便做出相应调整,使作物处于最佳环境中生长。现有的无线温室监控系统大多在无线局域网络覆盖范围内进行环境信息监测,传输范围有限,且功耗和成本较高。 ZigBee是一种新兴的近距离、低复杂度、低功耗、低成本的无线网络技术。2节5号电池即可使ZigBee射频芯片工作6~24个月。 本设计采用ZigBee技术组建无线局域网,并通过网关接人到以太网。不但很好地解决了功耗和成本问题,而且也有效扩展了数据的传输范围。 1 系统设计 温室监控系统的结构示意图如图1所示。系统由无线传感节点、嵌入式网关、人机交互界面3个部分组成。无线传感节点通过连接传感器来获得相应的
[单片机]
基于<font color='red'>ZigBee</font>的温室监控系统网关设计
基于Zigbee无线传感器网络的智能灯光跟随系统
目前,在我国,资源消耗高、浪费大等问题很严重,随着经济的快速增长和人口的不断增加,资源不足的矛盾更加突出,建设节约型社会已刻不容缓。节约不仅要减少消费,而且要提高利用效率。建设节约型社会的最大动力在于科技创新。节能性产品成为社会追求的目标。 ZigBee是一种便宜的,低功耗的近距离无线组网通讯技术。Zigbee无线传感器网络以其自组网,体积小,低功耗的优势已在很多地方得到应用。基于此,本文设计了一种基于Zigbee无线传感器网络的智能灯光跟随系统,该系统利用Zigbee无线传感器网络和嵌入式控制器,实现了有人时,灯光紧随人的移动而移动,无人时,灯自动熄灭。避免了长时间、大范围不必要的照明造成的电能的浪费,达到节能的效果。
[单片机]
基于<font color='red'>Zigbee</font>无线传感器<font color='red'>网络</font>的智能灯光跟随系统
基于MCF5213及Zigbee无线的无线对讲系统
硬件架构   MCF5213处理器   MCF5213是Freescale半导体公司Coldfire系列嵌入式处理器中一款低成本、低功耗的32位微处理器。它提供了一个电路设计简单的单片式处理器解决方案,最高可配置256KB高性能、近乎单点接入、隔行扫描的可靠嵌入式闪存。MCF5213具有BGA和QFP两种封装,主频最高为80MHz。   MCF521X处理器内部集成乘加器 (MAC)完成类似DSP的功能,可以实现G.726格式的语音编解码软件,码流低、音效好。同时处理器具有低功耗特性,其内部的模块化时钟可以在所有运行模式下启用和停用,内部PLL电路可以对系统时钟进行灵活的设置,其最大电流通常不超过1mA/MHz。   图1为M
[模拟电子]
基于MCF5213及<font color='red'>Zigbee</font>无线的无线对讲系统
声传感器网络节点的硬件系统设计
引 言   随着传感器技术、嵌入式计算技术、无线网络通信技术、分布式信息处理技术以及微机电技术的不断发展,出现了一种新型的网络技术无线传感器网络技术。无线传感器网络能够通过集成在网络节点上的各类微型传感器协作地实时监测、感知和采集各种环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式将信息传送到终端用户。本文主要介绍声传感器网络节点硬件系统的设计。 1 声传感器网络结构   如图1所示,声传感器网络结构通常包括声传感器节点、汇聚节点和后台监控设备等。   声传感器节点主要负责网络的形成、数据的采集,并将数据通过多跳传输到汇聚节点。汇聚节点是无线传感器网络的中心节点,负责网络
[安防电子]
声传感器<font color='red'>网络</font><font color='red'>节点</font>的硬件系统设计
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved